一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

时空积和熔加以及相关系统、方法和装置与流程

2022-05-18 21:13:01 来源:中国专利 TAG:

时空积和熔加以及相关系统、方法和装置
1.优先权声明
2.本技术要求于2019年9月5日提交的关于“时空积和熔加以及相关系统、方法和装置(spatiotemporal fused-multiply-add,and related systems,methods and devices)”的美国临时专利申请序列号62/896,242以及于2020年5月29日提交的关于“时空积和熔加以及相关系统、方法和装置(spatiotemporal fused-multiply-add,and related systems,methods and devices)”的待决的美国专利申请序列号16/888,345的申请日的权益。
技术领域
3.本公开的实施例涉及存储器中处理(processing-in-memory),并且更具体地,涉及在存储器阵列上的存储器中处理点积操作。还更具体地,一些实施例涉及用于在存储器中处理使能存储器装置内执行点积操作的方法,以及相关的存储器装置、存储器系统和电子系统。还更具体地,一些实施例涉及在存储器中处理使能存储器装置内执行积和熔加(fused-multiply-add)操作的方法,以及相关的存储器装置、存储器系统和电子系统。


背景技术:

4.存储器装置通常作为计算机或其它电子系统中的内部、基于半导体的集成电路提供。存在许多不同类型的存储器,包含易失性存储器和非易失性存储器。非易失性存储器可以在电源循环之后检索存储的信息,除其它外,可以包含但不限于包含nand或nor闪速存储器的闪速存储器、3d xpoint存储器和reram。易失性存储器可能需要电力来维护其数据(例如,主机数据、错误数据等)并且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)、内容可寻址存储器(cam)和晶闸管随机存取存储器(tram)等。
5.电子系统通常包含多个处理资源(例如,一或多个处理器),所述多个处理资源可以检索并执行指令,并将执行指令的结果存储到合适的位置。处理器可以包含多个功能单元,如算术逻辑单元(alu)电路系统、浮点单元(fpu)电路系统和组合逻辑块,例如,所述多个功能单元可以用于通过对数据(例如,一或多个操作数)执行操作来执行指令。如本文所使用的,操作可以包含例如布尔操作(boolean operation),如and、or、not、not、nand、nor和xor,和/或其它操作(例如,反转、移位、算术、统计等许多其它可能的操作)。例如,功能单元电路系统可以用于通过多个操作对操作数执行如加、减、乘和除等算术操作。
6.电子系统中的许多组件可能涉及向功能单元电路系统提供指令以供执行。例如,所述指令可以通过如控制器和/或主机处理器等处理资源来执行。数据(例如,可以在其上执行指令的数据)可以存储在可由功能单元电路系统存取的存储器阵列中。指令和/或数据可以在功能单元电路系统开始对数据执行指令之前从存储器阵列中检索和定序和/或缓冲。
附图说明
7.为了容易地鉴定对任何特定元件或动作的讨论,附图标记中的一或多个最高有效数位是指其中首次引入所述元件的附图编号。
8.图1示出了根据本公开的多个实施例的包含存储器装置的系统的框图。
9.图2示出了根据一或多个实施例的系统200的功能框图。
10.图3示出了根据一或多个实施例的时空fma的图。
11.图4示出了根据一或多个实施例的代表电阻存储器的电路的电路图。
12.图5示出了根据一或多个实施例的读出放大器控制器的功能框图。
13.图6示出了根据一或多个实施例的用于执行时空fma的读出电路的电路图。
14.图7示出了根据一或多个实施例的用于执行时空fma的读出电路的电路图。
15.图8示出了根据一或多个实施例的代表nand串型存储器的电路的电路图。
16.图9示出了根据一或多个实施例的用于执行时空fma的读出电路的电路图。
17.图10示出了根据一或多个实施例的可以包含在用于执行时空fma的读出放大器中的集成adc的功能框图。
18.图11示出了根据一或多个实施例的用于执行时空fma的过程。
19.图12示出了根据一或多个实施例的用于执行时空fma的过程。
具体实施方式
20.积和熔加(fma)和矩阵乘法操作用于许多应用,如机器学习、图像处理、人工智能、系统建模(例如,电气系统、机械系统等)等等。这些操作的逻辑可能相对简单(例如,乘法和累加)。然而,常规的基于计算机的计算可能涉及处理器和存储器密集型操作,包含在计算核心与存储器阵列之间传输大量数据。
21.在许多情况下,处理资源(例如,处理器和相关联的功能单元电路系统)可以在存储器阵列外部,并且通过处理资源与存储器阵列之间的总线存取数据以执行指令集。可以在存储器内置处理器(pim)装置中提高处理性能,其中处理器可以在存储器内部和/或存储器附近(例如,直接在与存储器阵列相同的芯片上)实施。pim装置可以通过减少和消除外部通信来节省时间和/或节省电力。
22.本文所述的技术也可以适用于在存储中进行处理(例如,在nand或nor闪存、3dxpoint
tm
(可从美光科技公司(micron technology,inc.)商购获得3d交叉点存储器装置)中进行处理等)。pim也可以称为存储器中计算或存储中计算。换言之,本公开设想在通常如存储器或存储设备等与存储或组织数据相关联的装置中进行处理或计算,所述装置在一些架构中不同于cpu、gpu、gpgpu、fpga、asic等。
23.图1是根据本公开的多个实施例的包含存储器装置120的系统100的框图。存储器装置120,在本文中也可以称为“pim使能装置”或“pim使能存储器装置”,可以包含任何合适的存储器装置。例如,存储器装置120可以包含易失性存储器(例如但不限于ram、dram)和/或非易失性存储器(例如但不限于闪速存储器、交叉点存储器装置如3d交叉点存储器装置)。存储器装置120可以包含耦接到读出电路系统的存储器阵列130(即,包含存储器胞元),如在下文更详细地描述。根据一些实施例,存储器装置120可以包含以排、列、卡片组、平铺、块、段或某种其它形式组织的多个存储器阵列130。
24.系统100进一步包含耦接到存储器装置120的主机111。主机111可以包含主机系统,如个人膝上型计算机、台式计算机、数字相机、智能电话或存储卡读卡器以及各种其它类型的主机。主机111可以包含系统主板和/或背板并且可以包含多个处理资源(例如,一或多个处理器、微处理器或某种其它类型的控制电路系统)。系统100可以包含单独的集成电路或者主机111和存储器装置120两者可以是同一集成电路的一部分(例如,在同一芯片上)。系统100可以包含例如服务器系统和/或高性能计算(hpc)系统和/或其一部分。
25.主机111可以包含各种组件,所述组件包含pim控制组件(例如,控制逻辑131、定序器132)、通道控制器143和存储器管理单元(mmu)控制器134。控制逻辑131可以被配置成执行与正在执行的pim程序相关联的控制流命令并且向定序器132提供复合命令。控制逻辑131可以是或者可以包含risc类型控制器,所述risc类型控制器被配置成生成和发出可扩展的复合操作pim命令集,所述复合操作pim命令包含不同于发送到定序器132的ddr命令的命令。在一些实施例中,控制逻辑131可以被配置成发出复合操作命令以使位向量操操作在存储器装置120上执行。在一些实施例中,复合操作命令可以从控制逻辑131传输到存储器装置120(例如,通过定序器132和通道157)。
26.在一些实施例中,控制逻辑131可以将微码指令解码到函数调用中,所述函数调用可以是与执行位向量操作相关联的由定序器132实施的微码函数调用。微码函数调用可以是定序器132接收和/或执行以使存储器装置120使用如读出电路系统150等读出电路系统来执行特定位向量操作的操作。
27.如在图1中示出,控制逻辑131和mmu控制器134位于主机111上,所述主机可以允许控制逻辑131和/或mmu控制器134存取存储在主机111上的虚拟地址并在将指令传输到存储器装置120之前执行虚拟到物理地址的解析(例如,将与在主机111上运行的应用相关联的地址空间的虚拟地址转换为存储器装置120的实际物理地址)。可以通过查找存储在存储器装置120中的地址转换表(例如页表)或通过在存储器装置120上执行相同的操作在主机处执行转换。在一些实施例中,控制逻辑131和/或定序器132位于存储器装置120中,例如在控制器140中或行解码器146中。在其它实施例中,可以分布控制逻辑131、定序器132或mmu控制器134,使得其功能的一部分位于主机111上并且另一部分位于存储器装置120上。
28.如本文所使用的,“位向量”可以指物理上连续的位数,无论是物理上连续的行(例如,水平定向)还是列(例如,垂直定向)。pim使能装置可以被配置成对物理地址空间的多个连续部分(例如,“组块”)执行位向量操作,如逻辑操作和/或传输操作。作为非限制性实例,物理地址空间的组块可以具有256位的位长。组块可以与虚拟地址空间中的其它组块顺序地连续,也可以不顺序地连续,然而,其在存储器页的范围内是连续的。在所公开的实施例中,pim使能装置可以被配置成在将虚拟页的虚拟地址转换为物理页的物理地址之后在虚拟地址空间中执行所述操作。
29.mmu控制器134可以驻留在主机111上(如在图1中示出),所述mmu控制器可以负责执行将虚拟存储器地址(例如,与主机111相关联的地址)转换为物理地址(例如,与存储器装置120相关联的地址)。mmu控制器134还可以执行存储器保护操作、高速缓存控制和/或总线仲裁操作。
30.定时电路系统133可以提供定时以协调逻辑操作的性能并且可以负责提供对如图1中的存储器阵列130等阵列的无冲突存取。在各个实施例中,控制器140和/或定时管理电
路系统135可以生成状态信息,所述状态信息可以例如通过通道157传输到主机111或从所述主机传输。通道157可以独立于存储器接口(例如,控制总线154)(例如,与所述存储器接口分开),所述存储器接口可以用于在主机111与存储器装置120、存储器存取装置或另一个存储器接口之间传输命令。存储器接口的非限制性实例包含但不限于双倍数据速率(ddr)存储器接口、外围组件互连快速(pcie)存储器接口、相干加速器处理器接口(capi)、计算快速链路(cxl)、加速器高速缓存相干互连(ccix),以及前述的组合和子组合。
31.作为非限制性实例,ddr存储器接口(例如,控制总线154)可以用于在主机111与存储器装置120之间传输(例如,传递)ddr命令。即,在一些实施例中,通道157可以用于传输命令以引起从主机111到存储器装置120的位向量操作的执行,而控制总线154可以用于将dram命令(或另一种类型的存储器接口的命令)从主机111传输到存储器装置120。在一些实施例中,通过控制总线154传输的dram命令(或其它类型的命令)可以是用于控制dram的操作的命令(或者是用于控制其它类型的存储器、存储器存取装置或存储器接口的命令),如但不限于ddr1 sdram、ddr2 sdram、ddr3 sdram、ddr4、ddr5和ddr类型协议的其它版本。在其它实施例中,存储器装置120可以通过通道157向主机发送关于操作准备就绪的信号。在一些实施例中,通道157与控制总线154和/或数据总线156组合。进一步地,在一些实施例中,主机111可以包含具有多个通道和/或控制总线的多个存储器装置120。
32.在一些实施例中,定序器132可以包含指令控制器,如超大指令字(vliw)类型控制器或单指令多数据(simd)类型控制器,所述指令控制器被配置成对逻辑操作命令进行操作,并且控制逻辑131可以被配置成响应于来自主机111的处理资源(例如,cpu或gpu)(未示出)的信号而向定序器132发出逻辑操作命令。例如,定序器132可以被配置成对多个逻辑操作进行定序,使得可以由定序器132发出复合操作命令。
33.在一些实施例中,控制逻辑131可以被配置成生成可执行指令,如vliw类型指令或smid类型指令。在包含vliw类型指令控制器的实施例中,控制逻辑131可以被配置成生成vliw作为位向量操作命令。vliw可以包括微码指令。定序器132可以是或者可以包含vliw类型控制器,所述vliw类型控制器被配置成将vliw解码成多个单独的微码指令。例如,定序器132可以将vliw解码成指令以引起复合操作(例如但不限于加法、乘法、点积)的执行。在一些实施例中,复合操作命令可以提供进入到vliw指令的序列的入口点以引起执行此类复合操作。在包含smid类型指令控制器的实施例中,控制逻辑131可以被配置成生成数据单元,如但不限于数据向量,并且定序器132可以引起在数据单元中标识的多个数据点上并行执行单个指令。
34.定序器132可以耦接到存储器装置120并且可以通过通道157将用于协调位向量操作的命令传递到存储器装置120。微码指令可以由定序器132本身和/或由存储器装置120中的其它组件(例如,位向量操作定时电路系统139、定时电路系统133、定时管理电路系统135和/或读出电路系统150)按顺序和/或并行执行。
35.存储器阵列130可以包含例如dram阵列、sram阵列、stt ram阵列、pcram阵列、tram阵列、rram阵列、nand闪存阵列和/或nor闪存阵列。存储器阵列130可以包含存储器胞元,所述存储胞元被布置成由存取线(所述存取线在本文也可以被称为字线或选择线)耦接的行和由读出线(所述读出线在本文也可以被称为数据线或数位线或位线)耦接的列。尽管图1中示出了单个存储器阵列,但实施例不限于此。例如,存储器装置120可以包含多个存储器
阵列130(例如,dram胞元、nand闪存胞元等的多个存储体)。
36.存储器装置120包含地址电路系统142以锁存用于通过i/o电路系统144在数据总线156(例如,数据/地址总线)上提供的数据的地址信号。状态和/或异常信息可以通过包含通道157的接口(例如,高速接口(hsi))从存储器装置120上的控制器140提供给通道控制器143。地址信号通过地址电路系统142接收并且由行解码器146和列解码器152解码以存取存储器阵列130。可以通过使用读出电路系统150读出数位线上的存储器胞元的状态来从存储器阵列130读取数据。根据存储器胞元技术,存储器胞元的状态可以被读出为例如电压和/或电流变化、磁状态变化、电阻率和量子态等等。读出电路系统150可以读取和锁存来自存储器阵列130的数据页(例如,行)。i/o电路系统144可以用于通过数据总线156与主机111进行双向数据通信。写入电路系统148可以用于将数据写入存储器阵列130中。在一些实施例中,写入电路系统148与读出电路系统150组合。在其它实施例中,读出电路系统150可以是列解码器152和/或行解码器146的一部分。在一些实施例中,控制总线154可以用作dram控制和寻址的控制和地址总线(例如,根据其中控制总线154作为单向数据总线操作的ddr协议)。尽管在图1中示出为单独的总线,但在一些实施例中,控制总线154和数据总线156可以不是单独的总线。
37.控制器140(例如,存储器控制器)可以解码由控制总线154提供的来自主机111的信号。这些信号可以包含用于控制在存储器阵列130上执行的dram操作的芯片使能信号、写入使能信号和地址锁存信号,所述dram操作包含数据读取操作、数据写入操作和数据擦除操作。在各个实施例中,控制器140可以负责执行来自主机111的指令并对存储器阵列130的存取进行定序。控制器140可以包含状态机、定序器或某种其它类型的控制器并且包含专用集成电路(asic)形式的硬件和/或固件(例如,微码指令)。在多个实施例中,控制器140可以包含位向量操作定时电路系统139。控制器140可以控制例如读出电路系统150。例如,控制器140可以控制时钟信号的生成和时钟信号的应用以计算与执行位向量操作相关联的组件。
38.如在图1中示出,位向量操作时序电路系统139可以包含定时电路系统133和定时管理电路系统135。定时电路系统133可以包含fifo缓冲器以提供与和存储器胞元的存储器阵列130相关联的读出电路系统150的定时协调。在一些实施例中,定时电路系统133可以包含状态机,如原子状态机。
39.定时管理电路系统135可以被配置成协调使用与存储器阵列130相关联的行地址选通(ras)/列地址选通(cas)组件136执行的与位向量操作相关联的逻辑操作(例如,逻辑操作的序列)的定时。ras组件136可以被配置成向存储器阵列130发送信号(例如,ras/cas信号)和/或从所述存储器阵列接收信号以标识和/或选择存储器阵列130的行和/或列地址。在一些实施例中,存储器装置120可以被配置成执行如存储器阵列存取请求等dram操作,所述操作可以由主机111通过控制总线154发出。在一些实施例中,定时管理电路系统135可以被配置成执行指令以控制位向量操作的执行的定时。
40.在一或多个实施例中,控制器140的部分(例如,位向量操作定时电路系统139、定时电路系统133和/或定时管理电路系统135)可以包含对例如32和/或64位长度指令进行操作的精简指令集计算机(risc)类型控制器。在各个实施例中,定时管理电路系统135可以负责执行从定时电路系统133接收的指令以引起涉及与读出电路系统150相关联的数据值的
位向量操作的执行。
41.如以下进一步描述的,在多个实施例中,读出电路系统150可以包含多个读出组件,所述多个读出组件可以各自包含读出放大器和计算组件。计算组件可以用作累加器,并且读出电路系统150可以用于执行位向量操作(例如,对与互补数位线相关联的数据)。在多个实施例中,读出电路系统150可以用于使用存储在存储器阵列130中的数据作为输入来执行位向量操作和/或将操作的结果存储回存储器阵列130而无需通过数位线地址存取来传输数据(例如,无需发出列解码信号)。例如,各种操作(例如,位向量操作)可以使用读出电路系统150并且在所述读出电路系统内来执行,而不是通过读出电路系统150外部的处理资源(例如,通过与主机111相关联的处理资源和/或位于存储器装置120上(例如,控制器140或其它地方上)的其它处理电路系统如alu电路系统)来执行。在许多实施例中,读出电路系统150(例如,所述多个读出组件)可以用于以simd(单指令多数据)的方式执行位向量操作,其中读出组件在每列的基础上用作1-位处理元件。
42.在其它实施例中,相邻读出组件可以在彼此之间交换数据位,因此产生基于多个数据源的计算。在其它实施例中,读出组件可以根据其在读出电路系统150内的位置产生不同的计算,因此以vliw或simd方式提供计算。在读出电路系统150执行位向量操作的实施例中,读出电路系统150可以用作和/或被称为“存储器中处理器”。如下文更全面地描述的,在一些实施例中,读出电路系统150可以包含定序器(例如,类似于定序器132)。
43.在各种方法中,例如,与操作数相关联的数据可以通过读出电路系统从存储器中读取并且通过i/o线(例如,通过局部i/o线和/或全局i/o)提供到外部存储器阵列alu电路系统。外部存储器阵列alu电路系统可以包含多个寄存器,并且将使用操作数执行位向量操作,并且可以通过i/o线将结果传输回阵列。在其它实施例中,读出电路系统150被配置成对存储在存储器阵列130中的数据执行位向量操作并且将结果存储回存储器阵列130,而无需启用耦接到读出电路系统150的i/o线(例如,局部i/o线)。
44.在多个实施例中,可能不需要存储器阵列130和读出电路系统150外部的电路系统来执行操作,因为读出电路系统150可以在不使用外部处理资源的情况下执行适当的位向量操作。因此,读出电路系统150可以用于至少在一定程度上补充和/或替换此类外部处理资源(或至少此类外部处理资源的带宽消耗)。然而,在多个实施例中,读出电路系统150还可以用于执行除了由外部处理资源(例如但不限于主机111)执行的逻辑操作之外的逻辑操作(例如但不限于执行指令)。例如,主机111和/或读出电路系统150可以被限制为仅执行某些逻辑操作和/或一定数量的逻辑操作。
45.启用i/o线可以包含启用(例如但不限于接通)具有耦接到解码信号(例如但不限于列解码信号)的栅极和耦接到i/o线的源极/漏极的晶体管。然而,实施例不限于在不启用阵列的列解码线的情况下使用读出电路系统(例如但不限于读出电路系统150)执行逻辑操作。无论局部i/o线是否与通过读出电路系统150执行逻辑操作相关联使用,都可以启用局部i/o线以便将结果传输到合适的位置而不是返回到存储器阵列130(例如但不限于传输到外部寄存器)。
46.本公开的各个实施例涉及积和熔加(fma)操作,并且更具体地涉及执行存储器中处理(pim)fma操作。根据各个实施例,将在一或多个计算中使用的数据可以被存取(例如但不限于通过定序器)并在多个位上重复使用(例如但不限于通过多个数据线加载到读出放
大器阵列中)。以另一种方式说明,各个实施例可以涉及在与多条数据线相关联的多个位上重复使用定序器逻辑。因此,与常规的方法和系统相比,可以减少存储器负载和存储器存储的数量,并且因此可以增加存储器装置的效率和/或可以减少与存储器装置相关联的时延。
47.至少出于这些原因,如本文更充分地描述的本公开的各个实施例提供了一种对由可能无法由人合理地执行的技术引起的一或多个问题的技术解决方案,并且本文公开的各个实施例植根于计算机技术,以便克服上述问题和/或挑战。进一步地,本文公开的至少一些实施例可以通过允许计算机执行先前不能由计算机执行的功能来改进计算机相关技术。
48.对于矩阵乘法,中央处理单元(cpu)和图形处理单元(gpu)两者均可以将输入矩阵分解为瓦片,并且所述瓦片可以分配给处理器核。对于输出矩阵的每个瓦片,输入矩阵的瓦片确切地被提取一次,这达到了接近o(n)的计算强度(即,处理将增加线性,并且与输入数据集的大小成正比)。可以选择输出矩阵的每个瓦片的大小以匹配目标处理器的l1级高速缓存或寄存器的容量。
49.对于gpu,选择瓦片以使瓦片形成线程块瓦片、扭曲瓦片和线程瓦片的层次。这种瓦片结构为数据从全局存储器到共享存储器(即,矩阵到线程块瓦片)、从共享存储器到寄存器文件(即,线程块瓦片到扭曲瓦片)以及对于计算结果从寄存器文件到gpu核(即,扭曲瓦片到线程瓦片)创建了路径。
50.在pim中,除了存储器阵列(例如但不限于dram阵列)和一或多个寄存器(例如但不限于在读出放大器(sa)阵列内),存储器构成了存储器层次的很大一部分。然而,如本文更充分地描述的,根据各个实施例,数据可以通过在数据线上或在本地到存储器数据线寄存器内的计算在pim fma操作中重复使用。
51.图2示出了根据一或多个实施例的用于执行时空fma的系统200的功能框图。系统200可以包含存储的操作数和操作符202、位对齐器206、位量化器210和计算单元214。
52.存储的操作数和操作符202通常可以被配置成存取和接收存储在存储器阵列(例如但不限于存储器阵列130)的一部分中的操作数和/或操作符的位序列。在一或多个实施例中,存储的操作数和操作符202可以包含用于接收数据位的一或多条数据线,以及用于通过数据线对数据位进行存取的一或多条存取线。
53.位对齐器206通常可以被配置成接收包含对应于操作数和操作符的数据位的位204,响应于操作符的位而执行操作数的位的一或多个对齐,并且提供对齐的位208。对于执行的位对齐,位对齐器206可以被配置成提供对齐的位208。位量化器210通常可以被配置成确定具有预定值(例如但不限于“1”或“0”)的对齐的位208的数量位。计算单元214通常可以被配置成至少部分地基于部分结果212来确定计算结果216。
54.在系统200的预期操作中,位对齐器206可以接收位204,所述位分别包含存储的操作数和操作符202的操作数的位和操作符的位。位对齐器206可以提供对齐的位208,所述对齐的位对应于操作数的位中的一或多个位,并且更具体地,对应于操作数的对齐的位位置处的位。位量化器210可以接收对齐的位208,并且可以提供部分结果212,所述部分结果代表具有预定值的对齐的位208中的确定数量的位。计算单元214可以接收多个部分结果212,组合所述多个部分结果212(如本文稍后更全面地描述的),并且提供计算结果216。
55.图3示出了根据一或多个实施例的时空fma 300的图。对于此特定非限制性示例实施例,示出了操作数“a”的位序列、操作符“b”的位序列、包含用于时空fma 300的部分计算
结果的位值的矩阵302、包含在各种部分计算结果的计算期间计算的结转(carry-over)值的结转304,以及包含时空fma 300的结果的位序列的结果306。
56.在参考图3示出和讨论的示例实施例中,矩阵302仅仅是表示在时空fma的实施例中使用的位对齐(例如但不限于通过位对齐器206)的方便构造。值得注意的是,矩阵不一定是在时空fma的实施例期间或与时空fma的实施例相关的情况下创建的。实际上,矩阵302示出了在时空fma 300期间通过存储器中电路系统(例如但不限于通过位对齐器206)对操作数a的各个位位置和位的对齐,其中相应位值可以被量化(例如但不限于通过位量化器210)并被组合以生成计算结果(例如但不限于通过计算单元214)。
57.在图3的示例实施例中,操作数a包含位位置a3、a2、a1和a0处的位的相应位值1 1 0 1。进一步地,操作符b包含位位置b3、b2、b1和b0的位的相应位值110 1。矩阵302的每一列,即,col0到col6,表示操作数a和进位位c的位位置和相应位的对齐。每个具体的对齐响应于操作符b的位的位值。以另一种方式说明,具有位值1的操作符b的位的位位置指示操作数a的位值是否位于矩阵302的给定行/列的给定胞元中以及哪些位值位于所述矩阵的给定行/列的给定胞元中。结果306的胞元中的每个具体的位表示与矩阵302的列和进位位相对应的对齐的位的量化。
58.在图3的示例实施例中,矩阵302是n
×
m(即,n行乘以m列)矩阵。对于矩阵302的每一行,操作符b的对应位位置的位值指示a的位值是否在行的任何胞元中。如果b的对应位值为“1”,则a的位值在行的一些胞元中,但如果b的对应位值为“0”,则行的所有胞元均为“0”。值得注意的是,可以使用其它约定,如使用“0”来指示a的位值在行的胞元中并且使用“1”来指示行的所有胞元均为“0”。操作符b的位值,从最低有效位b0的位位置到最高有效位b3的位位置,分别指示row0到row3。在操作符b指示使用操作数a的位值的矩阵302的每一行处,操作数a的位值按照最低有效位a0到最高有效位a3的顺序使用。
59.在每一行中,选择a0到a3的位值的胞元位置以在每一列中,例如但不限于在col0到col7中的一或多个中将操作数a的位值对齐以进行求和。矩阵302的每一列(以及结转304的对应位位置)表示时空fma 300的部分计算结果。值得注意的是,可以通过选择行的子集并在所选的子集的列内执行求和来执行求和。此类子集选择可以以包含任意顺序的任何顺序来执行。进一步地,可以将行的子集求和成部分计算结果并且可以将所述部分计算结果求和。在一些实施例中,可以根据如但不限于对数排序算法等排序算法来选择子集。作为非限制性实例,对数排序算法可以是log_l(b)个步骤,其中l是硬件限制(例如但不限于行的子集中的2行或行的子集中的3行)并且b是与操作符的位宽相对应的数字。
60.在典型的二进制数乘法中,对于乘法器中的每个非零位,被乘数会被适当地向左移位,然后将移位的数相加。
61.结果306的位的位值是通过将结果306的相应位位置的列中的位值求和而获得的。在一个实施例中,求和包含执行异或(xor)类型的逻辑操作、确定具有值“1”的位的数量是奇数还是偶数、对具有值“1”的位对的数量进行计数等。
62.因此,如果矩阵302的每一列被认为是用于时空fma 300的部分计算的位对齐,并且结果306的每个位位置被认为是时空fma 300的部分结果,则时空fma 300包含此特定实例的八个部分结果。表1中阐明了的图3所设想的每个部分计算的对齐的位位置。
63.表1:部分计算结果中使用的位序列a的位位置
[0064][0065]
表1的第三列示出了代码,在一个实施例中,所述代码可以从第2列中的对齐的位位置确定,并且进一步与结转位c对齐。以另一种方式说明,对齐的位位置的组可以由代码表示,在此处由数字代码表示。
[0066]
图4示出了根据一或多个实施例的读出电路400的电路图。读出电路400可以包含一或多条数据线(此处为位线bl0和bl1),所述数据线操作性地耦接到一或多个读出放大器并且通过一或多条存取线操作性地耦接到一或多个定序器。在图4中示出的具体非限制性示例实施例中,读出电路400包含位线bl0和/或bl1以用于接收沿位线bl0存储在存储器阵列的一部分中的操作数a的位和沿位线bl1存储在存储器阵列中的操作数c的位。bl0和bl1通过存取线,此处为字线wl 0到wl 3操作性地耦接到定序器402。位线bl0也操作性地耦接到读出放大器404,并且位线bl1操作性地耦接到读出放大器410。操作性地将单独的存取线耦接到多条数据线是任选的,并且在图4中示出来突出若干实施例。
[0067]
使用读出电路400,可以基本上同时存取操作数a的多个位,并且可以在此类多位存取期间执行计算结果(例如但不限于量化所存取的位)。在读出电路400的预期操作中,可以通过激活与操作数a的位位置相对应的多条存取线(即,字线wl0到wl3中的一或多条)来执行多位存取。
[0068]
定序器402可以被配置成激活字线wl0到wl3中的一或多条,所述字线对应于在表1中示出的对齐的位位置的相应组的位位置以及结转c,所述结转可以由相应读出放大器(例如但不限于读出放大器404和410)本地存储。在一个实施例中,定序器402可以被配置成至少部分地基于操作数a和操作符b来确定与给定部分计算相对应的对齐的位位置的组的相应位位置。另外地或可替代地,在一些实施例中,定序器402可以被配置成响应于代码如但不限于由表1的第三列中示出的代码以及可以由每个读出放大器在本地存储的进位而激活相应的字线。
[0069]
操作符b可以用作向字线wl0-wl3提供激活模式的控制序列。在一些情况下,b可以是许多操作数的通用操作符(例如但不限于乘数)。在此类情况下,可以对多个数据单元并行(即,基本上同时)执行许多乘法操作,如本文所讨论的。
[0070]
回到读出电路400的预期操作,定序器402激活字线wl 0和wl 2以存取a0和a2(即,表1中的部分计算结果2),对于在通过位线bl0存取期间发生的计算结果,这两个位均可用于读出放大器404。操作性地耦接到bl 0的读出放大器404量化位线bl 0上在给定时刻为位值“1”的所存取的位的数量(例如但不限于对于给定的存取操作)。在位线bl0上的多个位激活时,读出放大器404可以立即提供计算结果的结果(例如但不限于响应于部分计算结果而提供的部分结果)。
[0071]
在一或多个实施例中,读出放大器(例如但不限于读出放大器404)可以被配置成区分(即,解析)数据线(例如但不限于位线bl0和bl1)上的经激活的位的一或多个状态。在
一或多个实施例中,通常,对于读出电路400的位线上的n个同时激活的位,状态真值表提供n 1个状态:当所有位为0时的第1个状态,当恰好1个位具有值1时的第2个状态,当恰好2个位具有值1时的第3个状态,...,以及当恰好n-1个位具有值1时的第n个状态,当所有n个位具有值1时的第n 1n个状态。因此,真值表主要对位线上激活多少个值为1的位进行计数,而不考虑其位置。此类真值表可以作为读出放大器之外的电路或其一部分来实施,可替代地可以作为查找表存储在存储器或每个读出放大器附近的寄存器中,可替代地定序器可以根据读出放大器的请求或无条件地传递表值。
[0072]
表2示出了根据一或多个实施例的真值表,尤其是对应于图2和3的示例实施例的真值表。
[0073]
表2:真值表
[0074][0075]
在一或多个实施例中,读出放大器404可以包含被配置成解析bl 0的所有n个状态的一或多个读出放大器。在一个实施例中,读出放大器404可以被配置成解析电路(例如但不限于读出电路400)的所有n个状态。在此类实施例中,可以同时或并发地存取bl 0的所有位。
[0076]
在另一个实施例中,读出放大器404可以被配置成解析少于n个状态(即,n-1个或更少的状态)。在此类实施例中,定序器402可以被配置成顺序地激活bl 0的位的子集。使用被配置成解析两个状态的读出放大器404的实例,定序器402可以被配置成一次激活位线bl 0处的至多两个位。以这种方式,读出放大器404可以在每次存取操作中对位线bl0上的至多两个经激活的位进行操作并且累加结果。作为非限制性实例,读出放大器404可以在表1的“代码”列中的第一两个经激活的位和代码的进位上进行操作,并且然后在相同代码的第二两个经激活的位和代码的进位上进行操作,以及然后将这些部分计算组合成组合的部分计算。
[0077]
可替代地,这些部分计算可以由两个不同的读出放大器集合同时完成,所述两个不同的读出放大器集合介接两个不同的具有相同操作数的位线集合。可以根据第一读出放大器集合中的代码的第一2个位和第二读出放大器集合中的代码的第二2个位来执行两个位集合的定序。两个读出放大器集合的部分结果的组合,或者在此情况下两个读出放大器集合的部分结果的求和,可以与通过这些集合生成部分计算同时进行或者在其之后进行。值得注意的是,可以以包含任意顺序的任何顺序执行为每个集合选择代码的位位置(例如,在一个集合中的所有第一位和所有第四位,在另一个集合中的所有第二位和所有第三位)。然后可以对部分计算结果求和。在一些实施例中,可以根据排序算法对部分计算求和。排序算法的非限制性实例包含对数排序算法。作为非限制性实例,对数排序算法可以是log_l(b)个步骤,其中l是硬件限制(例如但不限于与“代码”中的2位位置相对应的2限制性激活的2个单位或与针对读出放大器的集合所选择的“代码”中的3位位置相对应的3限制性激活的3个单位)并且b是与操作符的位宽相对应的数字。
[0078]
虽然表2的真值表是同时2位读出的实例,即,使用2位状态表确定计算结果,但应当理解,在一或多个实施例中可以使用3位、4位等直至n位状态真值表。值得注意的是,由于激活而临时形成的电路系统的复杂性通常将与真值表中使用的位数成比例。
[0079]
关于结转,结转是对从先前的同时激活中“结转”的1的数量的计数,此数量对应于从上一次同时激活中值为“1”的位对的数量(包含确定所述对时的进位值)。在一些情况下,最大进位将取决于状态表:对于2位状态表,最大进位为1,对于3位状态表,最大进位为2,对于4位状态表,最大进位为3等。因此,在部分计算期间同时激活越多,则可能结转的1的最大数量就越大。
[0080]
在一个实施例中,为了在当前部分计算中包含来自先前部分计算的结转,可以将激活驱动器(例如但不限于电流源、电压源或参考电阻器)的强度缩放为来自先前部分计算的结转的函数。
[0081]
在另一个实施例中,可以将来自先前部分计算的结转计算为具有等于结转的“1”的数量的数字值,并且将所述数字值与经激活的位位置的位求和以计算结果。作为非限制性实例,进位的数字值可以存储在查找表或电路中。数字值可以被查找,以数字方式保存在读出放大器处,并且以数字方式与随后的部分计算结果和进位组合。
[0082]
在又另一实施例中,结转可以存储为电荷或电阻值,所述电荷或电阻值基本上等于“1”的电荷或电阻值乘以结转并且然后通过一或多个编次与结果进行积分。电荷/电阻值可以存储为用此电荷/电阻值编程的存储器胞元(例如但不限于对于读出放大器而言处于本地位置)的额外数量,所述胞元的数量对应于将与结果积分的结转值。
[0083]
如上所述,在一些情况下,b可以是多个操作数的公共操作符。在此类情况下,可以使用多个操作数并行(即,基本上同时)执行多个计算或其部分。如上所述,并且根据一或多个实施例,图4示出了与第二位线bl1的任选的操作性耦接和位于bl1处的操作数c,操作数c可以存储与操作数a不同的值。
[0084]
在读出电路400的预期多存取操作中,定序器402激活wl 0和wl 2以存取a0和a2以进行第一计算,并且同时存取c0和c2以进行第二计算。在a0、a2、c0和c2处的位可用于在存取bl0和bl1的相应位位置期间出现的计算结果。类似于上述读出放大器404,操作性地耦接到bl1的读出放大器410可以被配置成量化在bl1处的所存取的位的数量(例如但不限于被配置成量化在给定瞬间为位值“1”的bl1上的所存取的位的数量)。在bl0和bl1的多个位激活时,读出放大器404和读出放大器410可以立即提供计算结果中的相应结果(例如不限于响应于部分计算结果而提供的部分结果)。
[0085]
图5示出了读出放大器控制器500的实施例的功能框图。在一或多个部分计算期间,读出放大器控制器500通常可以被配置成执行本文所述的时空fma的实施例的一或多个操作。在图5中示出的具体非限制性示例实施例中,读出放大器控制器500包含信号驱动器502、读出处理器504、结果寄存器506和结转寄存器508。读出放大器控制器500可以任选地包含其它寄存器。在一些实施例中,信号驱动器502可以与读出处理器504组合在一个功能单元中。在一些实施例中,读出放大器控制器500可以包含用于字线的第一信号驱动器502/读出处理器504对和用于位线的第二信号驱动器502/读出处理器504对。在一些实施例中,读出和驱动可以在存取线和数据线之一或两者处实施。
[0086]
信号驱动器502可以被配置成提供用于驱动数据线和/或存取线的驱动器信号
510,例如但不限于用于提供用于驱动图4的位线和/或字线的驱动信号406。在一或多个实施例中,信号驱动器502可以被配置成响应于存储在结转寄存器508中的值而提供驱动器信号510。更具体地,信号驱动器502可以被配置成响应于存储在结转寄存器508处的位值而增加或减少在部分计算期间所提供的驱动器信号510的电平(与在先前部分计算期间所提供的驱动器信号510相比)。换言之,将信号驱动器502的后续输出(无论是电流源、电压源还是参考电阻器,但不限于此)的电平缩放为传播进位(即,存储在结转寄存器508中的位值)的函数。在另一个实施例中,除了驱动器信号之外或替代驱动器信号,可以通过将读出放大器操作性地耦接到存储在读出放大器本地的多个另外的位来获得缩放值,每个此类另外的位存储逻辑“1”。另外的位的数量可以对应于要在读出放大器处整合的结转值(即,对应于表1的对齐的位位置列中的“c”)。可能需要与启用这些特征相关的另外的电路系统。
[0087]
读出处理器504可以被配置成接收来自数据线的读出信号512,例如但不限于接收来自图4的位线的读出信号408。读出处理器504可以被配置成响应于读出信号512而确定分别存储在结果寄存器506和结转寄存器508处的部分结果和结转。
[0088]
一或多个实施例通常涉及获得关于经激活的数据线(例如但不限于图4的位线bl0)的状态信息并将状态信息转换为部分计算结果和响应于部分计算结果而确定的计算结果。
[0089]
在没有存取晶体管的存储器装置的情况下,可以形成中间电路系统并且可以将所述中间电路系统用于将状态信息转换为结果。没有存取晶体管的存储器装置的非限制性实例包含电阻式交叉点存储器装置和电容式交叉点存储器。
[0090]
在电阻式交叉点存储器如但不限于电阻式随机存取存储器(reram)或3d xpoint(可从美光科技公司商购获得)的情况下,可以形成并联电阻网络并且可以将所述并联电阻网络用于将状态信息转换为结果。
[0091]
图6和图7示出了临时激活以测量数据线的状态(例如但不限于测量与在数据线上的经激活的位相关联的状态)的读出电路的示例实施例的电路图。读出电路的一或多个实施例可以通过将存取线操作性地耦接到指定电平如但不限于指定电压电平或指定电流电平来激活。
[0092]
图6示出了从图4的读出电路400临时激活的并联电阻网络(即,读出电路)的示例激活,并且更一般地对应于图3的col 2(从col 0开始从右向左)的部分计算结果。
[0093]
在图6设想的示例实施例中,经激活的读出电路602包含已经由激活元件604和激活元件608(在图6中被描绘为开关)激活的字线wl 2和wl 0,所述激活元件被配置成将wl 2和wl 0与指定的电压电平,此处为但不限于接地(gnd)操作性地耦接/解耦接。在一或多个实施例中,激活元件604和激活元件608可以是用于使电流(例如但不限于图6中的电流i)能够在如字线wl0到wl2等存取线处流动的任何合适的电子电路和/或装置,例如但不限于二极管、晶体管、电容开关、电感开关、电流源以及其组合。
[0094]
在图6中示出字线wl1仅仅是为了说明在示例操作中字线wl1未操作性地耦接到gnd(字线wl 3也未操作性地耦接到gnd,这在此附图中被省略),即,激活元件606被示出为开路开关,并且没有电流流过电阻元件614。
[0095]
两个存储器胞元(此处为电阻元件610和电阻元件612)均含有位值“1”,所述位值被预先指定为对应于10欧姆的低电阻状态(与例如但不限于1000欧姆的高电阻状态相反)。
在一或多个实施例中,电阻元件610和电阻元件612可以是被选择来影响在存取线(此处为wl3和wl0)处看到的电阻的任何合适的电子电路和/或装置,例如但不限于电阻器、电容器、导线/导体、晶体管及其组合。
[0096]
当向位线bl0提供电流i时形成电路600,所述电路包含并联电阻网络,此处为读出电路616,和分压器,此处为包含电流源620的参考节点。
[0097]
位线电阻(即,在读出和放大电路618处看到的bl0的电阻)可以被确定为r=1/(1/10 1/10)=5欧姆。在电流源620为1amp的情况下,在位线处读出的电压(即,读出电压v)可以被确定为v=r
×
i=5
×
1=5v。此类读出电压指示位线bl 0的状态,并且读出和放大电路618可以(在内部)查找读出电压并提供结果以及进位输入响应。作为非限制性实例,读出和放大电路618可以包含查找表(lut),所述查找表被配置成响应于读出电压的值而提供结果和进位信息。
[0098]
值得注意的是,在图6中示出的示例实施例中,当根据本文所讨论的图6的并联电阻网络616的激活来激活并联电阻网络时,读出电压通常会减少包含位值1的位线的更多胞元。作为非限制性实例,在单个胞元包含位值为1的位的情况下,位线电阻可以被确定为r=1/(1/10 1/1000)=9.9欧姆,并且在施加1amp的电流后,位线电压为v=9.9v。
[0099]
作为另一个非限制性实例,如果经激活的读出电路602的两个存储器胞元都处于高电阻状态,则位线电阻可以被确定为r=1/(1/1000 1/1000)=500欧姆,并且在施加1amp的电流后,位线电压为v=500v。在大多数预期的使用情况下,500v将超出电路的动态范围,并且因此读出电压将等于干线电压。
[0100]
作为参考图6所述的实施例的另外或替代方案,在一些实施例中,一或多条字线可以操作性地耦接到电源电压以激活并联电阻网络。图7示出了并联电阻网络的非限制性实例,所述并联电阻网络通过将读出电路的存取线(例如但不限于读出电路400的字线)操作性地耦接到电压源来激活,使得可以通过在参考基极电阻器节点处(例如但不限于在分压器处)读出电压来执行信号读出。
[0101]
在图7中示出的示例实施例中,字线wl 2和wl 0通过分别通过激活元件706和激活元件708操作性地耦接到电压源(例如但不限于vdd)来激活。读出和放大电路704操作性地耦接到位线bl 0,并且在内部通过内部基极电阻器718操作性地耦接到gnd。当向位线bl 0提供电流i时,形成电路700,所述电路包含并联电阻网络,此处为读出电路720,和分压器,此处为包含基极电阻器718的参考节点。
[0102]
在图7中示出字线wl1仅是为了说明一个实施例,其中字线wl1未操作性地耦接到vdd(wl 3也未操作性地耦接到vdd,这未进行描绘),即,激活元件710被示出为开路开关,并且没有电流流过电阻元件714。
[0103]
在图7中,字线wl0和wl2通过操作性地耦接到指定的电压电平来激活,此处vdd=10v(即,通过激活元件708和激活元件706)。两个存储器胞元(此处为电阻元件712和电阻元件716)均包含对应于低电阻状态10欧姆(与1000欧姆的高电阻状态相反)的位值1。位线电阻可以被确定为r=1/(1/10 1/10)=5欧姆。如果基极电阻器718为10欧姆,则在bl 0处读出的电压可以确定为v=r_div
×
vdd=(10/15)
×
10=6.67v。读出电压可以指示bl 0的状态,并且读出和放大电路704可以被配置成查找并提供进位和结果值(例如但不限于如参考图6所述,用作lut)。
[0104]
值得注意的是,读出电路720是在形成具有分压器的并联电阻网络时形成的,读出电压将增加包含位值1的位线的更多胞元。作为非限制性实例,在仅一个胞元具有位值为1的位的情况下,那么位线电阻可以被确定为r=1/(1/10 1/1000)=9.9欧姆,并且在施加分压器后,v=(10/19.9)
×
10=5v。
[0105]
作为另一个非限制性实例,如果经激活的电路702的两个存储器胞元都处于高电阻状态,则基线电阻可以被确定为r=1/(1/1000 1/1000)=500欧姆,并且在施加分压器之后,位线电压为v=(10/510)
×
10=0.19v。
[0106]
值得注意的是,包含但不限于参考图6和图7所描述的示例实施例在内的示例实施例中提供的电压、电阻和电流的值是为了说明原因而提供的。在操作中,电压、电阻和电流可能受例如但不限于噪声、装置的固有特性和寄生阻抗中的一或多种影响。
[0107]
值得注意的是,本领域的普通技术人员将理解用于创建和/或执行参考图5-7所描述的电路和操作的许多电路和等效电路。作为非限制性实例,读出和放大电路(例如但不限于读出和放大电路618和读出和放大电路704)包含分压器和电压源以及操作性地耦接到gnd的存取线(例如但不限于wl 0和wl 3)。
[0108]
值得注意的是,本领域普通技术人员将理解任何合适的电压读出技术可以用于读出与一或多条位线的一或多个状态相关联的电压,包含但不限于通过读出和放大电路618以及读出和放大电路704。在一或多个实施例中,可以使用至少部分地基于交叉点电阻存储器的对称性的用于读出电压的电压读出技术和电路系统。作为非限制性实例,至少部分地基于交叉点电阻存储器的对称性的电压读出技术可以包含但不限于双向电压电平读出技术或差分电压电平读出技术和多并联位线读出技术,以及实施所述技术的电路。
[0109]
一或多个实施例通常可以涉及将状态信息转换为在饱和模式下操作的回跳电阻存储器装置(例如但不限于1d或二极管类存储器胞元)的结果。在此类实施例中,驱动器信号可以被施加到经激活的字线并且读出和放大电路系统(例如但不限于读出和放大电路618以及读出和放大电路704)被配置成观察位线bl 0处的回跳电流的量。通常,回跳电流的量可以被转换为电压(例如但不限于通过电流到电压转换器)并且读出电压以确定回跳的装置的数量(即,包含位值为“1”的位的存储器胞元的数量),并因此执行计算结果。
[0110]
在前述示例实施例中,可以破坏性地或非破坏性地执行位的存取和读取,并且不暗示特定类型的读取(即破坏性的或非破坏性的),也不应当理解为执行所描述的实施例或其法律等效物所必需的。
[0111]
对于电容性交叉点存储器(例如但不限于动态随机存取存储器(dram)和混合随机存取存储器(hram)),可以应用上述关于电阻存储器的技术,只需稍作改动以适应电容器和电荷共享即可,而不用改变电阻器。在一些情况下,电容性交叉点存储器可能是破坏性的,尽管具体地设想电路系统可以包含在交叉点存储器中以在读取之后保存数据位。
[0112]
图8和图9示出了在存储器包含nand串型存储器(例如包含3d闪速nand的nand闪速存储器)的情况下,用于将关于数据线的所存取的位的一或多个状态信息转换为部分结果和计算结果的电路的电路图。
[0113]
如本文所使用的,“nand串”意指两个或更多个nand胞元,其中nand胞元的源极连接到下一个nand胞元的漏极。
[0114]
在一或多个实施例中,测温到二进制解码可以用于将状态信息转换为结果。nand
串800表示本公开的发明人已知的典型nand串,并且包含具有双栅极的串联连接的晶体管:一个用于记录位的浮动栅极和一个用于绕过记录在具体的nand胞元处的数据的控制栅极。
[0115]
在nand串800处,可以通过在晶体管的浮动栅极中放置一定量的电荷来记录位。晶体管传导性可通过此电荷来控制。例如,位1可以对应于低导通状态(也可表征为高电阻状态)。绕过nand胞元可以通过暂时向连接到wl的第2栅极(即,控制栅极)施加具体偏压来执行,所述偏压通过将跨胞元的电阻降低到其最小值来“盖写”浮动栅极的影响(有效地使晶体管在传输晶体管状态下导通)。
[0116]
在一个实施例中,将所有晶体管都保持在旁路操作模式下,并且然后针对所关注的具体晶体管选择性地关闭旁路模式。更具体地,选择性地关闭旁路模式以激活用于时空fma的所选位。使用包含对图8的字线0和字线2进行存取的部分计算,在上述第一种情况下,wl0和wl2保持不活动,并且所有其它字线均被置于旁路。在上述另一种情况下,所有字线最初均处于旁路操作模式,并且然后选择性地关闭wl0和wl3的旁路模式。
[0117]
在任何一种情况下,假设高阻状态(即,位1)被编码为1000欧姆,而低电阻状态(即,位0)对应于10欧姆并且等于旁路模式,因此所述低电阻状态可以被忽略(相对于1000欧姆)。因此,nand串800可以表示为包含两个串联连接的电阻器的存取电路,如在图9中示出。
[0118]
图9示出了读出电路900的电路图,所述读出电路是可以用于存取/读取来自nand串800的读出电压(例如但不限于位值)的读出电路(此处为读出电路902和读出电路904)的两个示例实施例。
[0119]
在读出电路902的预期使用中,电流源906(例如但不限于1ma)和读出电压可以在电流源906之后的位置处被读取为v=i
×
r=0.001
×
(1000 1000)=2v。
[0120]
在读出电路904的预期使用中,施加电压源(例如,1v)并且在参考电阻器908之后的位置处读取电压(rref=1000欧姆)为v=vref
×
r=1
×
(1000 1000)/(1000 1000 1000)=2/3v。
[0121]
作为非限制性实例,在所述胞元中仅一个胞元的值为1的情况下,位线电阻可以被确定为r=1000欧姆,并且输出电压将为:1v(在读出电路902的情况下)和1/2v(在904的情况下)。
[0122]
作为另一个非限制性实例,在所有胞元为0的情况下(以另一种方式说明,没有胞元为“1”),则可以确定位线电阻接近0欧姆,并且对于读出电路902和读出电路904两者,输出电压将接近0v。
[0123]
在读出电路902和读出电路904的情况下,读出放大器可以使用观察到的输出电压以(在内部)查找结果和进位。
[0124]
本公开的一或多个实施例通常涉及将读出电压转换为结果和结转。在一些实施例中,用于多级胞元nand闪速存储器(例如但不限于三级胞元(tlc)nand闪速存储器和四级胞元(qlc)nand闪速存储器)的读出放大器可以被配置成包含用于响应于读出电压而查找结果和结转的电路系统。
[0125]
在一些实施例中,读出放大器可以包含集成模数转换器(adc)。图10示出了可以被包含在如但不限于读出放大器404等读出放大器中的集成adc 1000的功能框图。在一或多个实施例中,集成adc 1000可以包含分压1004、输入量化1010和测温到二进制编码1014。
[0126]
在一或多个实施例中,分压1004通常可以被配置成执行参考电压1002的一或多个分压。分压1004可以包含用于根据所公开的实施例执行分压的任何合适的电子电路/装置中的一或多个,作为非限制性实例,包含作为包含一或多个串联的电阻元件(例如但不限于电阻器、晶体管和二极管)的电阻串。在一个实施例中,分压1004的电阻串可以是位线延续的一部分,并且与数据位线隔离。
[0127]
在一或多个实施例中,输入量化1010通常可以被配置成响应于参考电压1006执行项目输入电压1008的一或多个输入量化。输入量化1010可以包含用于根据所公开的实施例执行输入量化的任何合适的电子电路/装置中的一或多个,作为非限制性实例,包含一或多个电压比较器(例如但不限于一或多个施密特触发器)。
[0128]
在一或多个实施例中,测温到二进制编码1014通常可以被配置成响应于经量化的输入1012而提供结果和结转。测温到二进制编码1014可以包含用于根据所公开的实施例执行测温到二进制编码的一或多个电子电路/装置,作为非限制性实例,包含门阵列、查找表(luts)及其组合。
[0129]
在集成adc 1000的预期操作中,当在集成adc 1000的输入(未示出)处断言输入电压1008时,响应于输入电压1008与由分压1004的相应分压器所提供的相应参考电压1006的比较,触发输入量化1010的相应输入量化器。测温到二进制编码1014响应于经量化的输入1012而提供结果和进位位。结果和进位位可以存储为部分计算结果,所述部分计算结果(例如但不限于由图2的位量化器210)用于生成完整的计算结果(例如但不限于图2的部分结果212)。
[0130]
在一或多个实施例中,用于测温到二进制编码1014的电路系统(例如但不限于纠错电路系统和编码器电路系统)可以在存储器阵列下方、上方、周围或通过存储器阵列路由。在一个实施例中,此类电路系统可以在存储器阵列下方路由,例如但不限于以保护存储器容量不被另一路由布置降级。
[0131]
图11示出了用于执行时空fma的过程1100的实施例的流程图。
[0132]
在操作1102中,过程1100选择沿着数据线的存储器阵列的一部分中的一或多个位置以供存取,存储在存储器阵列的所述部分中的所述位置处的位可通过数据线进行存取。一或多个位置的相应位置可以对应于沿着数据线存储的操作数的一或多个位的一或多个位位置。在一或多个实施例中,操作符的位可以用于指导对包含在一或多个位位置中的位位置的选择。
[0133]
在包含交叉点存储器处的存储器中处理的实施例中,相应的第一存取线可以在与第一位位置的位位置相关联的具体位置处垂直地与数据线交叉。在包含nand串存储器处的存储器中处理的实施例中,相应的第一存取线可以包含或操作性地耦接到nand胞元的栅极。
[0134]
在操作1104中,过程1100响应于来自先前部分计算的结转而配置信号驱动器。如果不存在先前的部分计算,则可以跳过操作1104。在一个实施例中,配置信号驱动器可以包含配置电流源以提供指定电平下的电流。在另一个实施例中,配置信号驱动器可以包含配置电压源以提供指定电平下的电压。
[0135]
在操作1106中,过程1100在操作1104中配置的信号驱动器处生成驱动器信号(例如但不限于读出电流或读出电压)。在一或多个实施例中,驱动器信号可以被提供给读出电
路,所述读出电路被配置成生成指示激活数据线的状态,并且更具体地指示在经激活的数据线处具有位值=“1”的位的数量的读出信号。
[0136]
在操作1108中,过程1100激活在操作1102中选择的存取线,并且由此在数据线处提供经激活的位。激活存取线可以包含基本上同时激活与存储器阵列的所述部分中的位置中的两个或更多个位置,并且更具体地对应于所述两个或更多个位置的两个或更多个位位置相关联的两条或更多条存取线。
[0137]
在操作1110中,过程1100观察跨读出电路,即,在操作1106中接收驱动器信号的读出电路的读出信号。如本文所述,在一或多个实施例中,读出信号指示数据线上的经激活的位的数量。在一或多个实施例中,读出电路可能已经被临时激活以测量在操作1108中激活的所选存取线的状态(或指示状态的信号)。
[0138]
在操作1112中,过程1100响应于观察到的读出信号而确定部分结果并存储部分结果。
[0139]
如果存在下一个部分计算,则在操作1112中,过程1100响应于观察到的读出信号而确定结转并存储结转。所存储的结转然后可用于在后续部分计算中配置信号驱动器。
[0140]
在一些实施例中,作为非限制性示例,由于硬件限制,可以同时激活与所选位位置相对应的存取线的子集,而不是激活所有所选位位置的存取线。因此,在一些实施例中,执行部分计算并获得部分结果可以涉及执行多个中间部分计算并获得多个中间部分结果。
[0141]
图12示出了用于执行包含执行多个中间部分计算的部分计算的过程1200的实施例的流程图。作为非限制性实例,可以执行过程1200来代替过程1100的操作1108、操作1110、操作1112和操作1114。
[0142]
在操作1202中,过程1200激活与存储器阵列的一部分中的位置相关联的存取线的子集,此类位置对应于所选位位置中的位位置的子集。
[0143]
在操作1204中,过程1200观察存储器阵列的数据线处的中间读出信号。中间读出信号可以代表数据线上的经激活的位。经激活的位可以对应于存储在与在操作1202中激活的存取线相关联的存储器阵列的位置处的位,并且更具体地,对应于位序列的所选位位置处的位。
[0144]
在操作1206中,过程1200将观察到的中间读出信号与当前部分计算的先前观察到的中间读出信号(如果有的话)进行累加。
[0145]
在操作1208中,过程1200响应于从操作1206中将中间读出信号累加而获得的读出信号来确定结转。
[0146]
在操作1210中,过程1200重复操作1202、操作1204和操作1206的子过程,直到已经累加了用于存取线的所有子集的中间读出信号。以另一种方式说明,重复所述子过程,直到与用于部分计算的所有位置/所选位位置的存取线相对应的中间读出信号已经被累加。获得的读出信号基本上是累加的中间读出信号的总和。
[0147]
在操作1212中,过程1200响应于从累加中间读出信号而获得的读出信号来确定部分计算结果。
[0148]
本文所述的一或多个实施例包含一种方法。所述方法可以包含选择用于存取存储在存储器阵列中沿数据线的第一位置处的操作数的第一位的第一位位置。所述方法还包含激活与所选第一位位置相关联的第一存取线。所述方法还包含对存储在所选第一位位置处
的操作数的第一位进行存取。所述方法还包含响应于所存取的第一位而接收计算结果的至少一部分。
[0149]
本文所述的一或多个实施例包含一种系统。所述系统可以包含存取线、数据线、位量化器和计算单元。所述位量化器可以操作性地耦接到所述数据线。所述位量化器可以被配置成确定所述数据线的一或多个状态。所述计算单元可以被配置成响应于所述数据线的所述一或多个状态而提供计算结果。
[0150]
本文所述的一或多个实施例包含一种电路。所述电路可以包含第一线、多条第二线和测量电路。所述多条第二线被配置成通过沿所述第一线定位的存储器元件耦接到所述第一线。所述多条第二线中的相应线各自可以包含激活元件,所述激活元件被配置成将所述线与指定的电压电平(例如但不限于接地电压或电源电压)交替地耦接和解耦接。在一个实施例中,所述多条第二线中的一条线可以包含电阻元件。所述电路还可以包含被布置成跨通过将所述线操作性地耦接到参考节点而激活的并联电阻网络测量电压的电路。
[0151]
本公开的另外的实施例包含一种电子系统。所述电子系统可以包含至少一个输入装置、至少一个输出装置以及可操作地耦接到所述输入装置和所述输出装置的至少一个处理器装置。所述电子系统还可以包含至少一个存储器装置,所述至少一个存储器装置可操作地耦接到所述至少一个处理器装置并且包含一或多个存储器胞元阵列以及一或多个耦接到相应存储器胞元阵列的积和熔加(fma)单元。fma单元可以被配置成选择存储在数据线处的操作数的第一位的第一位位置以供存取。所述fma单元可以被进一步配置成响应于所选第一位位置而激活第一存取线。所述fma单元可以被进一步配置成响应于第一经激活的存取线而存取存储在所选第一位位置处的所述操作数的所述第一位。所述fma单元可以被进一步配置成响应于所存取的第一位而获得计算结果。
[0152]
根据惯例,附图中展示的各种特征可以不按比例绘制。本公开中呈现的图示并不意味着是任何特定设备(例如但不限于装置或系统)或方法的实际视图,而仅仅是用于描述本公开的各个实施例的理想化表示。因此,为清楚起见,可以任意扩大或减小各种特征的尺寸。另外,为清楚起见,可以简化附图中的一些附图。因此,附图可能未描绘给定设备(例如但不限于装置)的组件中的所有组件或特定方法的所有操作。
[0153]
如本文所使用的,术语“装置”或“存储器装置”可以包含具有存储器的装置,但不限于仅具有存储器的装置。例如,装置或存储器装置可以包含存储器、处理器和/或其它组件或功能。例如,装置或存储器装置可以包含片上系统(soc)。在一些实施例中,本文所述的计算方法可以适用于存储装置,如固态驱动器。因此,本文所使用的术语“存储器装置”可以包含存储装置。
[0154]
本文中并且尤其在所附权利要求(例如但不限于所附权利要求的主体)中使用的术语总体上旨在作为“开放性”术语(例如但非限制性地,术语“包含(including)”应当被理解为“包含但不限于”,术语“具有”应当被理解为“至少具有”,术语“包含(includes)”应当被理解为“包含但不限于”等)。
[0155]
另外,如果意图是特定数量的所引入的权利要求陈述,那么将在所述权利要求中明确陈述此类意图,并且在不存在此类陈述的情况下,不存在此类意图。例如,为了帮助理解,以下所附权利要求可能含有使用引入性短语“至少一个”和“一或多个”来引入权利要求陈述。然而,此类短语的使用不应当解释为暗示由不定冠词“一个”或“一种”引入的权利要
求陈述将含有此类引入的权利要求陈述的任意特定权利要求限制为仅含有一个此类陈述的实施例,即使当相同的权利要求包含引入性短语“一或多个”或“至少一个”以及不定冠词如“一个”或“一种”时亦是如此(例如但非限制性地,“一个”和/或“一种”应当被解释为意指“至少一个”或“一或多个”);这同样适用于用来介绍权利要求陈述的定冠词的用法。如本文所使用的,“和/或”包含相关联的所列项中的一或多个相关联的所列项的任何和所有组合。
[0156]
另外,即使明确陈述了特定数量的引入的权利要求陈述,也应当理解,此类陈述应当被解释为至少意指所陈述的数量(例如但非限制性地,在无其它修饰语的情况下仅陈述“两个陈述”意指至少两个陈述或两个或更多个陈述)。此外,在其中使用类似于“a、b和c等中的至少一个”或“a、b和c等中的一或多个”的惯例的情况下,此类构造通常旨在包含仅a、仅b、仅c、a和b、a和c、b和c或a、b和c等等。例如,术语“和/或”的使用旨在以此方式解释。
[0157]
进一步地,无论是在说明书、权利要求还是附图中,呈现两个或更多个替代性术语的任何分隔性词语或短语都应当被理解为考虑到了包含所述术语中的一个、所述术语中的任一个或两个术语的可能性。例如,短语“a或b”应当被理解为包含“a”或“b”或“a和b”的可能性。
[0158]
另外,术语“第一”、“第二”、“第三”等在本文中不一定用于暗示元件的具体顺序或数量。通常,术语“第一”、“第二”、“第三”等用于以通用标识符的形式区分不同的元件。在没有表明术语“第一”、“第二”、“第三”等暗示具体顺序的情况下,这些术语不应当被理解为暗示具体顺序。此外,在没有表明术语“第一”、“第二”、“第三”等暗示特定数量的元件的情况下,这些术语不应当被理解为暗示元件的具体数量。
[0159]
以上描述并且在附图中展示的本公开的实施例不限制本公开的范围,所述范围由所附权利要求和其合法等效物的范围所涵盖。任何等同实施例都处于本公开的范围内。实际上,除了本文示出和描述的那些之外,根据描述,本公开的各种修改(如所描述的元件的替代性有用组合)对于本领域的技术人员而言将变得显而易见。此类修改和实施例也落入所附权利要求和等效物的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献