同时进行数据路径中计算操作的设备及方法与流程

文档序号:16521993发布日期:2019-01-05 10:02阅读:192来源:国知局
同时进行数据路径中计算操作的设备及方法与流程

本发明大体来说涉及半导体存储器及方法,且更特定来说涉及用于同时进行数据路径中计算操作的设备及方法。



背景技术:

存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力以维持其数据(例如,主机数据、错误数据等),且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)及晶闸管随机存取存储器(tram)等等。非易失性存储器在不被供电时可通过存留所存储的数据而提供永久数据,且可包含nand快闪存储器、nor快闪存储器及电阻可变存储器(例如,相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)及磁阻式随机存取存储器(mram)(例如,自旋转矩转移随机存取存储器(sttram))等等。

电子系统通常包含一定数目个处理资源(例如,一或多个处理器),所述处理资源可检索并执行指令且将所执行指令的结果存储到适合位置。处理器可包括一定数目个功能单元,例如算术逻辑单元(alu)电路、浮点单元(fpu)电路及/或组合逻辑块,所述功能单元(举例来说)可用于通过对数据(例如,一或多个操作数)执行操作来执行指令。如本文中所使用,操作可以是(举例来说)布尔运算(例如and、or、not、nand、nor及xor),及/或其它操作(例如反转、移位、算术、统计以及许多其它可能操作)。举例来说,功能单元电路可用于经由若干种操作而对操作数执行算术运算,例如加法、减法、乘法及除法。

在将指令提供到功能单元电路以供执行时,可涉及电子系统中的一定数目个组件。所述指令可(举例来说)由例如控制器及/或主机处理器等处理资源来执行。数据(例如,将对其执行指令的操作数)可存储于可由功能单元电路存取的存储器阵列中。在功能单元电路开始对数据执行指令之前,可从存储器阵列检索指令及/或数据并对其进行定序及/或缓冲。此外,由于可在一或多个时钟循环中通过功能单元电路执行不同类型的操作,因此也可对指令及/或数据的中间结果进行定序及/或缓冲。在一或多个时钟循环中完成操作的序列可被称为操作循环。就计算设备及/或系统的处理性能及计算性能以及电力消耗来说,完成操作循环所耗用的时间很多。

在许多例子中,处理资源(例如,处理器及相关联的功能单元电路)可位于存储器阵列外部,且数据是经由在处理资源与存储器阵列之间的总线来存取以执行一组指令。处理性能可在存储器中处理(pim)装置中得以改进,其中处理资源及/或逻辑资源可被实施在存储器内部及/或附近(例如,直接与存储器阵列位于同一芯片上)。存储器中处理(pim)装置可通过减少并消除外部通信来节省时间且也可节约电力。



技术实现要素:

根据本发明的一个方面,一种设备包括:存储器单元阵列(130);感测电路(150),其可选择地耦合到所述存储器单元阵列;控制器(140),其与所述阵列相关联;及多个输入/输出(i/o)线(355、455),其作为用于与所述阵列相关联的数据路径中计算操作的数据路径而被共享,其中:所述多个共享i/o线可选择地耦合到所述数据路径中的多个逻辑条带(150、350、450)且经配置以将数据从所述存储器单元阵列移动到所述多个逻辑条带;其中所述多个逻辑条带(150、350、450)包含第一逻辑条带部分(424-a)及第二逻辑条带部分(424-b);且其中所述控制器经配置以在第一时间周期期间致使所述第一逻辑条带部分(424-a)对从所述存储器单元阵列移动到所述第一逻辑条带部分的第一数据部分执行第一数目个操作,而所述第二逻辑条带部分(424-b)对从所述存储器单元阵列移动到所述第二逻辑条带部分的第二数据部分执行第二数目个操作。

根据本发明的一个方面,一种设备包括:存储器单元阵列(130);感测电路(150),其可选择地耦合到所述存储器单元阵列;多个输入/输出(i/o)线(155、355、455),其作为用于与所述阵列相关联的数据路径中计算操作的数据路径而被共享,其中所述多个i/o线将所述感测电路可选择地耦合到所述i/o线的所述数据路径中的多个逻辑条带;及控制器,其与所述阵列相关联,所述控制器经配置以:在第一时间周期期间引导来自所述阵列的第一行(425)中的第一子行(428)的数据及来自所述阵列的第二行(425)中的第一子行(428)的数据经由所述i/o线(155、355、455)移动到第一逻辑条带(424);在第二时间周期期间引导来自所述阵列的所述第一行(425)中的第二子行(428)的数据及来自所述阵列的所述第二行(425)中的第二子行(428)的数据经由所述i/o线移动到第二逻辑条带,且使用所述第一逻辑条带(424)对来自所述阵列的所述第一行(425)中的所述第一子行(428)的所述数据及来自所述第二行(425)中的所述第一子行(428)的数据执行第一数目个操作;及在第二时间周期期间引导对来自所述阵列的所述第一行(425)中的所述第一子行(428)的所述数据及来自所述第二行(425)中的所述第一子行(428)的数据执行第二数目个操作,其中所述第一时间周期与所述第二时间周期至少部分地重叠。

根据本发明的一个方面,一种设备包括:存储器单元阵列(130);感测电路(150),其可选择地耦合到所述存储器单元阵列;多个输入/输出(i/o)线(155、355、455),其作为用于与所述阵列相关联的数据路径中计算操作的数据路径而被共享,其中所述多个i/o线将所述感测电路可选择地耦合到所述i/o线的所述数据路径中的多个逻辑条带;及控制器(140),其与所述阵列相关联,所述控制器经配置以:在第一时间周期期间引导来自所述阵列的第一数据部分经由所述多个i/o线(155、355、455)移动到所述数据路径中的第一逻辑条带部分中的第一逻辑条带(424);在第二时间周期期间引导使用所述第一逻辑条带部分中的所述第一逻辑条带(424)对所述第一数据部分执行第一操作;及在所述第二时间周期期间引导使用所述第一逻辑条带部分中的第二逻辑条带(424)对所述第一操作的结果执行第二操作。

一种用于操作存储器装置的方法包括:在第一时间周期期间使来自存储器单元阵列(130)的第一数据部分在多个输入/输出i/o线(155、355、455)上移动,所述多个i/o线作为用于与所述阵列相关联的数据路径中计算操作的数据路径而被共享;在第二时间周期期间使来自所述存储器单元阵列的第二数据部分在所述多个输入/输出i/o线(155、355、455)上移动且在所述数据路径中的多个逻辑条带的第一部分中对所述第一数据部分执行一定数目个操作;及在所述第二时间周期期间在所述多个逻辑条带(424)的第二部分中对所述第二数据部分执行第一数目个操作。

附图说明

图1a是根据本发明的若干个实施例的呈包含存储器装置的计算系统形式的设备的框图。

图1b是根据本发明的若干个实施例的呈包含存储器装置的计算系统形式的设备的另一框图,所述存储器装置具有位于在阵列的存储库区段本地的数据路径的共享输入/输出(i/o)线。

图2是图解说明根据本发明的若干个实施例的存储器装置电路的示意图,所述电路包含可包含于感测电路及/或逻辑条带中的读出放大器及计算组件。

图3是图解说明根据本发明的若干个实施例的用于在阵列的数据路径中的多个共享i/o线的电路的示意图。

图4是图解说明根据本发明的若干个实施例的阵列的多个区段的框图,所述阵列通过在阵列本地的数据路径中的多个共享i/o线而耦合到具有多个逻辑条带的计算单元。

图5图解说明根据本发明的若干个实施例的存储器装置的控制器的实例的框图。

图6是图解说明根据本发明的若干个实施例的存储器装置的控制器的另一实例的框图,所述控制器使用共享i/o线来控制数据值移动到具有多个逻辑条带的计算单元。

图7是图解说明根据本发明的若干个实施例的逻辑条带的感测电路的示意图。

图8是图解说明根据本发明的若干个实施例的由图7中所展示的感测电路实施的可选择逻辑运算结果的逻辑表。

图9a到9b是图解说明根据本发明的若干个实施例的对存储器装置中的数据值执行操作的示意图。

具体实施方式

本发明包含用于同时进行数据路径中计算操作的设备及方法。在至少一个实施例中,设备包含存储器装置,所述存储器装置具有存储器单元阵列及可选择地耦合到所述存储器单元阵列的感测电路。在各种实施例中,存储器装置可以是存储器中处理(pim)装置,且感测电路可包含读出放大器及计算组件。多个输入/输出(i/o)线可作为用于与阵列相关联的数据路径中计算操作的数据路径而被共享(例如,感测电路可以可选择地耦合到存储器单元列及/或共享i/o线)。所述多个共享i/o线可以可选择地耦合到数据路径中的多个逻辑条带,且经配置以将数据从存储器单元阵列移动到所述多个逻辑条带。所述多个逻辑条带可包含第一逻辑条带部分及第二逻辑条带部分。在第一时间周期期间,所述第一逻辑条带部分可对从存储器单元阵列移动到第一逻辑条带部分的第一数据部分执行第一数目个操作,而第二逻辑条带部分对从存储器单元阵列移动到第二逻辑条带部分的第二数据部分执行第二数目个操作。

在若干个实施例中,第一逻辑条带部分可经配置以对发送到逻辑条带的数据执行由一定数目个操作构成的第一程序,且第二逻辑条带部分可经配置以对发送到逻辑条带的数据执行所述第一程序及/或由一定数目个不同操作构成的不同程序。控制器可经配置以将数据发送到多个逻辑条带部分且对所述多个逻辑条带部分执行多个程序。可对多个逻辑条带部分同时执行多个程序。

所述多个i/o线可经由感测电路将阵列的行及/或子行可选择地耦合到数据路径中的逻辑条带,以将数据值从阵列的行及/或子行移动到逻辑条带。如本文中所使用,“子行”打算意指阵列行的存储预定数目个数据值的存储器单元的预定子集。举例来说,行的一个子行可以是具有16,384(16k)个存储器单元的一行中的预定1024(1k)个存储器单元,借此使一行含16个子行(例如,如428-1、428-2、…、428-16处所展示以及结合图4及本文中其它地方所描述)。可使用逻辑条带中的计算组件对来自阵列的行及/或子行的数据值执行(例如,如通过控制器引导)操作,基本上同时地将额外数据值从阵列的行及/或子行移动到逻辑条带。

例如第一及第二等序数在本文中用于辅助在类似组件及/或可选择耦合组件(例如,存储器单元子阵列、数据值及相关联计算组件、存储器单元子行及相关联计算组件、逻辑条带及相关联计算组件、连接电路及相关联计算组件及/或逻辑条带等)之间进行关联及/或做出区分,并不用于指示组件之间的特定次序及/或关系,除非上下文另外明确指出(例如,通过使用例如邻近等术语)。

类似地,如本文中所描述,在大约2到60纳秒(ns)的时间帧中,控制器可经配置以在第一操作循环中引导第一子行的多个数据值中的一定数目个数据值的第一并行移动(例如,经由共享i/o线)直到对应第一逻辑条带操作循环。在大约2到60纳秒(ns)的时间帧中,控制器经配置以在第二操作循环中,引导第二子行的多个数据值中的一定数目个数据值而使其第二并行移动到对应第二逻辑条带,大约2到60纳秒(ns)的时间帧可以是但未必是在执行第一操作循环之后的下一(例如)邻近2到60ns时间帧。

共享i/o线(例如,如155处所展示以及结合图1b及在本文中其它地方所描述)用作与存储器阵列(例如,如130处所展示以及结合图1a及本文中其它地方所描述)相关联的数据路径。共享i/o线将感测电路(例如,如150处所展示以及结合图1a及本文中其它地方所描述)耦合到包含在共享i/o线的数据路径中的感测电路(例如,如250处所展示以及结合图2及本文中其它地方所描述)的逻辑条带(例如,如424处所展示以及结合图4所描述)。与共享i/o线的数据路径相关联的逻辑条带具有等于数据路径的间距且随数字线(例如,如205处所展示以及结合图2及本文中其它地方所描述)到存储器单元阵列的间距而变化的间距。举例来说,计算组件具有是数字线到存储器单元阵列的间距的整数倍的间距。

如本文中所使用,“共享i/o线”打算意指在阵列本地、在数据路径中、具有随存储器单元阵列的间距而变化的间距的i/o线。共享i/o可位于存储器阵列的存储库(例如,如121-1处所展示以及结合图1b及本文中其它地方所描述)上且可经多路复用到阵列的多个列(例如,互补数字线到dram阵列)。共享i/o线与i/o电路不同且相异,所述i/o电路与阵列相关联、打算根据阵列协议(例如,ddr4)将数据移动到阵列及从所述阵列移动数据及/或将数据移动到与主机(例如,如110处所展示以及结合图1a及本文中其它地方所描述)连接的存储器装置(例如,如120处所展示以及结合图1a及本文中其它地方所描述)上及移动出所述存储器装置。

在一些实施例中,阵列可具有多个共享i/o线以用作在阵列本地的数据路径且每一逻辑条带可具有多个计算组件(例如,如431-1、431-2、…、431-z处所展示以及结合图4及本文中其它地方所描述)。所述多个计算组件中的每一者与数据路径的所述多个共享i/o线中的至少一者相关联。在一些实施例中,所述多个计算组件中的每一者中的一者可与数据路径的所述多个共享i/o线中的特定共享i/o线相关联。

在各种实施例中,所述多个计算组件中的每一者可被移位到数据路径的所述多个共享i/o线中的另一者。举例来说,一定数目个列及/或行(例如,如319处所展示以及结合图3及本文中其它地方所描述)的一定数目个存储器单元(例如,16,384个列及/或存储器单元以及其它可能配置)可经多路复用,使得(举例来说)通过选择行中的连续多个列及/或存储器单元来获得16个子行(16个子行各自具有1024个邻近列及/或存储器单元,如图4中所展示),以耦合到所述多个共享i/o线(例如,1024个别共享i/o线)且经由所述多个共享i/o线并行地移动数据值,使得可并行地移动来自连续存储器单元(例如,1024个数据值)的数据值。替代地或另外,一定数目个列及/或行的一定数目个存储器单元可经多路复用,(举例来说)使得可通过选择行中的每个第十六列及/或存储器单元来获得16个子行以耦合到共享i/o线且经由共享i/o线并行地移动数据值,使得可并行地移动来自每个第十六存储器单元的数据值(例如,1024个数据值)。在一些实施例中,阵列可以是dram阵列且用于感测及/或放大选定存储器单元中的数据值的感测电路可包含读出放大器及/或计算组件。

存储器装置120包含控制器(例如,如140处所展示以及结合图1a及本文中其它地方所描述)。控制器140可经配置以引导数据值从阵列中的一行存储器单元(例如,其选定子行)移动到与数据路径的所述多个共享i/o线中的一者相关联的逻辑条带(例如,经由与控制器相关联的移动组件171),以及其它功能。

如下文更详细地描述,实施例可允许主机系统分配一或多个dram存储库中的一定数目个位置(例如,阵列、子阵列及/或子阵列的部分,例如其行及子行)以保持(例如,存储)及/或处理数据。主机系统及控制器可对整个程序指令块(例如,pim命令指令)及数据执行地址解析,且引导(例如,控制)数据及命令到目的地(例如,目标)存储库内的所分配位置(例如,子阵列及子阵列的部分)中的分配、存储及/或移动(例如,流动)。在dram阵列中写入及/或读取数据及/或执行命令(例如,移动数据值以由逻辑条带执行操作,如本文中所描述)可利用通往dram装置的正常dram读取/写入路径。如读者将了解,虽然关于本文中所呈现的数据路径中计算操作的实例而论述用于pim装置的dram式存储器阵列,但实施例并不限于pimdram实施方案。

本文中所描述的存储器装置可针对子阵列存储库使用一定数目个控制器(用于个别子阵列的控制器及/或用于锁存组件的控制器)(例如,每一控制器是定序器、状态机、微控制器、子处理器、alu电路或一些其它类型的控制器)来执行一组指令以对数据(例如,一或多个操作数)执行操作。如本文中所使用,操作可以是(举例来说)布尔逻辑运算(例如and、or、not、nand、nor及xor)及/或其它操作(例如反转、移位、算术、统计以及许多其它可能操作)。举例来说,功能单元电路可用于经由一定数目个逻辑运算而对操作数执行算术运算,例如加法、减法、乘法及除法。

本发明描述启用将对由存储器单元存储的数据值执行的数据路径中计算操作(例如,pim操作,例如and、or、刷新、行复制、移位、加法、乘法等)(例如,当被移动到计算组件时,如本文中所描述),此举与对来自同一存储库、同一存储库中的同一子阵列及/或同一子阵列中的同一行(例如,在dram阵列中以及其它类型的存储器阵列)的数据值执行(举例来说)读取及/或写入操作基本上同时地进行。举例来说,可对存储于子阵列的行中的存储器单元子行中的数据值执行移动操作,此举与如由控制器及/或主机引导的、对先前移动到数据路径中的逻辑条带(例如,到选定逻辑条带)的同一数据值或不同数据值的(举例来说)逻辑运算的执行基本上同时地进行,如本文中所描述。

因此,当在阵列中子行被激活以供感测时,可将由所述子行的存储器单元存储的多个数据值(例如,整个子行的数据值)移动(例如,复制、传送及/或输送)到与所述阵列相关联的数据路径中的对应多个逻辑条带的感测电路。多个共享i/o线将数据值耦合到数据路径中的所述多个逻辑条带。在一些实施例中,计算单元中的多个逻辑条带可与阵列的存储库的每一存储库区段相关联。与共享i/o相关联的逻辑条带可经配置以耦合(例如,直接地或间接地连接,如本文中所描述)到在阵列本地的共享i/o的数据路径。在一些实施例中,感测电路450、逻辑条带424及/或计算单元460可进一步耦合到从存储器装置连接到主机110的数据总线及/或耦合到将阵列的存储库连接到存储器装置上的阵列的另一存储库的数据总线。

在一些实施例中,本发明描述,当行被感测时,可移动所述行中的数据值(例如,来自所述行中的全部16,384(16k)个存储器单元的数据值)以将所述数据值存储(例如,高速缓冲)于锁存组件(例如,读出放大器)中,以供进一步经由共享i/o线移动到在阵列本地的共享i/o的数据路径中的计算单元中的逻辑条带。在一些实施例中,2048(2k)个共享i/o线可被配置为2k位宽的共享i/o线。根据一些实施例,从源位置中的第一行到目的地位置中的逻辑条带移动数据的循环的数目可通过将与阵列中的存储器单元行相交的阵列中列的数目除以2k位宽的所述多个共享i/o线来确定。举例来说,阵列(例如,存储库、存储库区段或其子阵列)可具有16k个列,此可对应于一行中的16k个数据值,当所述16k个列除以与所述行相交的2k位宽的所述多个共享i/o线时,可产生八个循环,每一单独循环基本上同时地(例如,并行地)移动行中数据的每2k位份额,使得行中的所有16k个数据位在完成八个循环之后均被移动。举例来说,一次仅可将源位置的感测电路350中的多个(例如,一子集八个,如图3中所展示)读出放大器306或计算组件331中的一者耦合到相应共享i/o线355。在具有16k个共享i/o线的实施例中,可并行地移动所有16k个数据位。

在一个实例中,八路多路复用器可通过2k个共享i/o线一次(例如,并行地)将2k个数据值从16k个列(例如,数字线对)中的2k个读出放大器多路复用到计算单元的每一逻辑条带(例如,每一逻辑条带具有2k个感测电路单元)中的2k个计算组件(例如,以存储及/或处理总共2k个位)。在一些实施例中,计算单元可具有八个逻辑条带,每逻辑条带存储2k个数据值,借此每计算单元能够存储已通过2k个共享i/o线在八个循环中移动的16k个数据值。在另一实例中,十六路多路复用器可通过1k个共享i/o线一次将1k个数据值从16k个列中的1k个读出放大器多路复用到计算单元的逻辑条带(例如,每一逻辑条带具有1k个感测电路单元)中的1k个感测电路单元(例如,以存储及/或处理总共1k个位)。在一些实施例中,计算单元(例如,如460处所展示及结合图4所描述)可具有十六(16)个逻辑条带,每逻辑条带存储1k个数据值,借此每计算单元能够存储已通过1k个共享i/o线在16个循环中移动的16k个数据值。举例来说,16个逻辑条带(例如,424-1、424-2、…、424-n处所展示及结合图4所描述)中的每一者及每一逻辑条带中的1k个感测电路单元(例如,450-1、450-2、…、450-z处所展示及结合图4所描述)可对应于通过相应1k个共享i/o线将1k个数据值从中移动出(例如,经多路复用)的子行(例如428-1、428-2、…、424-16处所展示及结合图4所描述)。

如此,数据值被从中移动出的存储库、子阵列、行及/或子行中的存储器单元可用于对其中所存储的其它数据值执行操作(例如,通过将原始数据值移动到在阵列本地的共享i/o的数据路径中的计算单元中的逻辑条带)。在各种实施例中,每一逻辑条带可包含多个锁存器中的一定数目个锁存器,所述数目对应于(例如,相同或是整数倍)感测电路单元的数目,所述锁存器用以存储从另一存储库、子阵列、行及/或子行移动的多个数据值以能够对由与感测电路单元相关联的锁存器存储的数据值执行一定数目个操作(例如,逻辑运算)。

如本文中所使用,数据移动是包含性术语,其包含(举例来说)将数据值从源位置复制、传送及/或输送到目的地位置。举例来说,可将数据从子阵列的感测电路的读出放大器、计算组件及/或锁存器移动到在阵列本地的共享i/o线的数据路径中的逻辑条带中的读出放大器、计算组件及/或锁存器。复制数据值可指示,读出放大器中所存储(高速缓冲)的数据值被复制且被移动到在阵列本地的共享i/o线的数据路径中的逻辑条带,且行的子行中所存储的原始数据值可保持不变。传送数据值可指示,读出放大器中所存储(高速缓冲)的数据值被复制且被移动到在阵列本地的共享i/o线的数据路径中的逻辑条带,且行的子行中所存储的原始数据值中的至少一者可被改变(例如,通过擦除及/或通过后续写入操作,如本文中所描述)。输送数据值可用于指示,所复制及/或所传送数据值被移动的过程(例如,通过将数据值从源位置置于共享i/o线上且输送到目的地位置)。

用于数据路径中计算操作的dram架构的实施方案可在读出放大器及计算组件层级下执行处理(例如,在逻辑条带中)。用于数据路径中计算操作的dram架构的实施方案可仅允许有限数目个存储器单元(例如,如上文的一个实例中所给出的1k个存储器单元)连接到共享i/o线的数据路径中的逻辑条带中的计算组件。阵列可包含从大约8k到大约16k个列(数字线对)及相关联读出放大器。在一些实施例中,举例来说如图4中所展示,阵列的存储库区段423可被划分成四个象限且每一象限可具有多个子阵列(例如,32个子阵列)。每一子阵列可具有多个行(例如,512个行)且可耦合到16k个列。如本文中所描述,每一行可包含各自具有1k个存储器单元的16个子行(例如,通过多路复用确定选择哪些存储器单元构成经由感测电路耦合到特定共享i/o线的所述1k个存储器单元)。然而,实施例并不限于此说明性实例。

在一些实施例中,作为计算单元的一部分的多个逻辑条带可与每一象限相关联。举例来说,共享i/o线的数据路径中的计算单元中的每一逻辑条带可与存储库的每一象限中的子阵列相关联。因此,在以上实例中,在阵列本地的共享i/o线的数据路径中的计算单元可具有128个逻辑条带(4个象限,每象限的32个子阵列中的每一者使用一个逻辑条带)。然而,实施例并不限于此说明性实例。在一些实施例中,存储器(例如,dram阵列中的存储器单元)的存储库可包含dram的64k个行×16k个列以提供大约1千兆位存储器。

本发明描述在阵列本地的共享i/o线的数据路径中的逻辑条带,所述逻辑条带可包含用作读出放大器以存储(高速缓冲)从与阵列相关联的感测电路移动(例如复制、传送及/或输送)的数据值的多个锁存器。计算组件可位于在阵列本地的多个共享i/o线的数据路径中的计算单元中的多个逻辑条带,使得所述多个逻辑条带各自包含总数目个计算组件的子集。逻辑条带424-1、...、424-n(例如,如结合图4所展示及所描述)的计算组件431-1、...、431-z可具有与在阵列的存储库121-1本地的所述多个共享i/o线455的数据路径的间距相等的间距。在一些实施例中,所述多个共享i/o线455的数据路径的间距可随存储器单元阵列的数字线(例如,如图2中的205-1及205-2处以及图3中的305-1及305-2处所展示)的间距而变化。计算组件431-1、...、431-z及/或逻辑条带424-1、...、424-n可通过感测电路150(例如,感测电路的读出放大器206)及/或额外锁存器170耦合到所述多个共享i/o线455的数据路径,如图1a中所展示。

如此,用于数据路径中计算操作的架构可便于将阵列的行的子行中所存储的数据值移动(例如复制、传送及/或输送)到在阵列本地的所述多个共享i/o线的数据路径中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z。具有读出放大器、在一些实施例中也可包含如图2中所展示的计算组件的感测电路150可将来自阵列中的经多路复用存储器单元列的存储器单元耦合到所述多个共享i/o线455的数据路径中的计算单元中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z。以此方式,逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z可经由作为多路复用器操作的列选择电路(例如,如358处所展示及结合图3所描述)及相关联选择逻辑(如结合图3到7所论述)通过所述多个共享i/o线455而间接地耦合到一列存储器单元。

除了刚刚所描述的益处之外,本文中所描述的存储器阵列架构还可提供若干个益处。举例来说,可通过使得将对由存储器单元存储的数据执行的pim操作能够与其它操作的执行(例如,执行ddr4i/o操作)并行来增大总处理速度。举例来说,pim操作可在具有在阵列本地的共享i/o线455的数据路径中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z的计算单元中被执行。举例来说且不以限制方式,一旦将数据值从阵列的子行加载到计算单元中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z,便可在计算单元中将计算操作控制在2ns的速度下,而不必将数据值移动回到所述行中,此与激发阵列中的行所需的60ns的实例性时间形成对比。以此方式,逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z(以及相关联锁存器)可提供对所移动数据值的存储以执行特定功能(例如and、or、nor、xor、加法、减法、乘法、除法等),而子行的原始数据值可被保存回到行、保存在其它地方及/或被盖写。如结合图5及6所更多地论述,所述多个共享i/o线的数据路径中的计算单元中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z的操作可由存储库121的控制器140引导。

在本发明的以下详细描述中,参考形成本发明的一部分且其中以图解说明方式展示可如何实践本发明的一或多个实施例的附图。对这些实施例加以充分详细地描述以使得所属领域的技术人员能够实践本发明的实施例,且应理解可在不背离本发明的范围的情况下利用其它实施例且可做出过程改变、电性改变及/或结构改变。

如本文中所使用,特定来说关于图式中的参考编号的标志符(例如,“x”、“y”、“z”、“n”、“m”等)指示可包含被如此标记的特定特征的数目。还应理解,本文中所使用的术语仅出于描述特定实施例的目的,并不打算具限制性。除非上下文另外明确指出,否则本文所使用的单数形式“一(a、an)”及“所述(the)”包括单数个及复数个指示物。另外,“一定数目个”、“至少一个”及“一或多个”(例如,一定数目个存储器阵列)可指代一或多个存储器阵列,而“多个”打算指代多于一个的此类事物。此外,在本申请案通篇,词语“可(can、may)”是在许可意义上(即,在本文中所描述的一些实施例中,具有可能性及/或能够)而非在强制性意义上(即,必须)使用的。术语“包含”及其“派生词”意指“包含,但不限于”。术语“耦合(couple、coupled、coupling)”意指直接地或间接地物理连接到或存取及移动(发射)命令及/或数据,具体视上下文情况而定。术语“数据”及“数据值”在本文中可互换地使用且可具有相同含义,具体视上下文情况而定。

如本文中所描述,存储器单元的多个子阵列、存储库区段、象限、行、子行及/或特定列可经由耦合到每一阵列的选择逻辑可选择地共享所述多个共享i/o线455。举例来说,用于多路复用一定数目个列的可选择数目个子集中的每一者(例如,总数目个列的8个、16个等的列子集)的感测电路150及/或额外锁存器170(包含读出放大器及选择逻辑)可以可选择地耦合到所述多个共享i/o线455中的每一者以将数据值移动到所述多个共享i/o线455的数据路径中的计算单元460中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z。在一些实施例中,可选择地耦合到所述多个共享i/o线455中的每一者的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z可对应于可选择地耦合到所述多个共享i/o线的一定数目个列(例如1k、2k等)。由于单数形式“一(a、an)”及“所述(the)”在本文中可包含单数个及复数个指示物两者,因此“一个共享i/o线”可用于指代“一对互补共享i/o线”,除非上下文另外明确指出。此外,“共享i/o线”是“多个共享i/o线”的缩写形式。

本文中的图遵循以下编号惯例:其中第一个数字或前几个数字对应于图式的图号且其余数字识别图式中的元件或组件。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,150可指代图1a中的元件“50”,且类似元件在图2中可被指代为250。如将了解,可添加、交换及/或消除本文中的各个实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,图式中所提供的元件的比例及/或相对标度打算图解说明本发明的特定实施例,并不应被视为具限制意义。

图1a是根据本发明的若干个实施例的呈包含存储器装置120的计算系统100形式的设备的框图,存储器装置120包含存储器阵列130。如本文中所使用,存储器装置120、控制器140、存储器阵列130、感测电路150及/或一定数目个额外锁存器170也可被独立地视为“设备”。

如本文中所使用,额外锁存器打算意指额外功能性(例如,放大器、选择逻辑),其感测、耦合及/或移动(例如,读取、存储、高速缓冲)阵列中的存储器单元的数据值,且与图3到4及6到7中所展示的所述多个共享i/o线455的数据路径中的计算单元460中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z相异。如图1b中所展示的在阵列本地的多个共享i/o线155的数据路径中的逻辑条带124-1、...、124-n可与存储库121-1中的存储器单元的各个存储库区段123-1、...、123-n相关联。存储库121-1可以是存储器装置120上的多个存储库中的一者。

图1a中的系统100包含耦合(例如,连接)到存储器装置120的主机110。主机110可以是主机系统,例如个人膝上型计算机、桌上型计算机、数字相机、智能电话或存储卡读取器以及各种其它类型的主机。主机110可包含系统母板及/或底板,且可包含一定数目个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路)。系统100可包含单独集成电路,或主机110及存储器装置120两者均可在同一集成电路上。系统100可以是(例如)服务器系统及/或高性能计算(hpc)系统及/或其一部分。虽然图1a中所展示的实例图解说明具有冯·诺依曼(vonneumann)架构的系统,但可以非冯·诺依曼架构实施本发明的实施例,非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如cpu、alu等)。

为清晰起见,系统100已被简化以聚焦于与本发明特定相关的特征。存储器阵列130可以是dram阵列、sram阵列、sttram阵列、pcram阵列、tram阵列、rram阵列、nand快闪存储器阵列及/或nor快闪存储器阵列以及其它类型的阵列。阵列130可包括存储器单元,所述存储器单元被配置成通过存取线(其在本文中可被称为字线或选择线)耦合的行及通过读出线(其在本文中可被称为数字线或数字线)耦合的列。虽然图1a中展示单个阵列130,但实施例并不受此限制。举例来说,存储器装置120可包含一定数目个阵列130(例如,一定数目个dram单元库、nand快闪存储器单元库等)。

存储器装置120可包含地址电路142以锁存由i/o电路144经由数据总线156(例如,连接到主机110的i/o总线)提供的地址信号(例如,经由局部i/o线及全局i/o线提供到外部alu电路及/或dramdq)。如本文中所使用,dramdq可能够经由总线(例如,数据总线156)将数据输入到存储库及/或从所述存储库输出数据(例如,来自及/或去往控制器140及/或主机110)。在写入操作期间,可将电压(高=1,低=0)施加到dq(例如,引脚)。此电压可被转化成适当信号且由选定存储器单元存储。在读取操作期间,一旦完成存取且启用输出(例如,通过输出启用信号为低),从选定存储器单元读取的数据值便可出现在dq处。在其它时间处,dq可处于高阻抗状态中,使得dq不会产生或汇集电流且不向系统呈递信号。当两个或多于两个装置(例如,存储库)共享经组合数据总线时,此也可减小dq竞争,如本文中所描述。这些dq独立于且相异于在阵列130本地的数据路径中的所述多个共享i/o线155(在图1b中)。

可(举例来说)通过带外(oob)总线157(例如,高速接口(hsi))将状态与异常信息从存储器装置120的控制器140提供到通道控制器143,可继而将状态与异常信息从通道控制器143提供到主机110。通道控制器143可包含逻辑组件以分配每一相应存储库的阵列中的多个位置(例如,用于子阵列的控制器)以存储针对与多个存储器装置120中的每一者的操作相关联的各个存储库的存储库命令、应用程序指令(例如,用于操作序列)及变元(pim命令)。通道控制器143可将命令(例如,pim命令)分派到所述多个存储器装置120以将所述程序指令存储于存储器装置120的给定存储库121(例如,图1b的121-1)中。

通过地址电路142接收地址信号且由行解码器146及列解码器152对所接收到的地址信号进行解码以存取存储器阵列130。可通过使用如本文中所描述的感测电路150的一定数目个读出放大器来感测读出线(数字线)上的电压改变及/或电流改变而从存储器阵列130感测(读取)数据。读出放大器可读取并锁存来自存储器阵列130的数据页(例如,数据行)。如本文中所描述的额外计算电路可耦合到感测电路150且可与读出放大器结合使用以感测、存储(例如,高速缓冲及/或缓冲)、执行计算功能(例如,操作)及/或移动数据。i/o电路144可用于经由数据总线156(例如,64位宽的数据总线)与主机110进行双向数据通信。写入电路148可用于将数据写入到存储器阵列130。

控制器140(例如,图5中所展示的存储库控制逻辑、定序器及时序电路)可对由控制总线154从主机110提供的信号(例如,命令)进行解码。这些信号可包含芯片启用信号、写入启用信号及/或地址锁存信号,所述信号可用于控制对存储器阵列130执行的操作,包含数据感测、数据存储、数据移动(例如,复制、传送及/或输送数据值)、数据写入及/或数据擦除操作以及其它操作。在各种实施例中,控制器140可负责执行来自主机110的指令及/或存取存储器阵列130。控制器140可以是状态机、定序器或一些其它类型的控制器。控制器140可控制阵列(例如,存储器阵列130)的行中的数据的移位(例如,向右或向左)且执行微码指令以执行操作,例如计算操作(例如and、or、nor、xor、加法、减法、乘法、除法等)。

下文进一步描述感测电路150的实例(例如,图2及3中)。举例来说,在一些实施例中,感测电路150可包含一定数目个读出放大器。在一些实施例中,感测电路150可包含所述数目个读出放大器及对应数目个计算组件,所述计算组件可用作累加器且可用于在每一子阵列中(例如,对与互补读出线相关联的数据)执行除了本文中所描述的数据路径中计算操作之外的操作。

在一些实施例中,感测电路150可用于使用由存储器阵列130存储的数据作为输入来执行操作,且参与供复制、传送、输送、写入、逻辑及/或存储操作的数据到存储器阵列130中的不同位置及/或逻辑条带124中的移动,而不用经由读出线地址存取传送数据(例如,不激发列解码信号)。如此,在一些实施例中,可使用感测电路150且在感测电路150内执行各种计算功能,而非通过感测电路150外部的处理资源(例如,通过与主机110相关联的处理器及/或其它处理电路,例如位于装置120上(例如,位于控制器140上或其它地方)的alu电路)来执行。然而,另外,本文中所描述的实施例可对从阵列的行移动到计算单元中的多个计算组件431-1、...、431-z及/或逻辑条带124-1、...、124-n的数据值执行数据路径中计算功能及/或操作。且作为实例,根据一些实施例,可在计算单元中将计算操作控制在2ns的速度下,而不必将数据值移动回到行中,此与激发阵列中的行所需的60ns的实例性时间形成对比。

在各种先前方法中,(例如)将经由感测电路从存储器读取与操作数相关联的数据且经由i/o线(例如,经由局部i/o线及/或全局i/o线)将所述数据提供到外部alu电路。外部alu电路可包含一定数目个寄存器且将使用操作数执行计算功能,且结果将经由i/o电路144被传送回到阵列。

相比之下,本文中的实施例于在阵列本地的数据路径中的计算单元中对从阵列的行及/或子行经由多个共享i/o线155移动到逻辑条带424-1、...、424-n的多个感测电路单元450-1、...、450-z的数据值执行计算功能。另外,感测电路150可经配置以对由存储器阵列130存储的数据执行操作且将结果存储回到存储器阵列130,而不用启用耦合到感测电路150的i/o线(例如,局部i/o线)。然而,一经加载,便可在计算单元中控制计算操作使其更快(例如,在2ns的速度下)而不必将数据值移动回到行及/或子行中,此与激发阵列中的行所需的实例性时间(例如,60ns)形成对比。感测电路150可形成于阵列的存储器单元的间距上。与所述多个共享i/o线155的数据路径相关联的逻辑条带424-1、...、424-n的所述多个感测电路单元450-1、...、450-z可具有等于数据路径的间距且随存储器单元阵列的数字线间距而变化的间距。

举例来说,本文中所描述的感测电路150可与一对互补读出线(例如,数字线)形成于同一间距上。作为实例,一对互补存储器单元可具有间距为6f2的单元大小(例如,3f×2f),其中f是特征大小。如果用于互补存储器单元的一对互补读出线的间距是3f,那么位于所述间距上的感测电路指示感测电路(例如,每对相应互补读出线的读出放大器及/或对应计算组件)经形成以适合在互补读出线的3f间距内。同样地,与所述多个共享i/o线155的数据路径相关联的逻辑条带124-1、...、124-n的计算组件431-1、...、431-z具有随互补读出线的3f间距而变化的间距。举例来说,逻辑条带124-1、...、124-n的计算组件431-1、...、431-z可具有是数字线到存储器单元阵列的3f间距的整数倍的间距,此间距也可对应于所述多个共享i/o线155的间距。

相比之下,各种先前系统的处理资源的电路(例如,计算引擎,例如alu)可以不遵循与存储器阵列相关联的间距规则。举例来说,存储器阵列的存储器单元可具有4f2或6f2的单元大小。如此,与先前系统的alu电路相关联的装置(例如,逻辑门)可不能够形成于存储器单元的间距上,此可影响芯片大小及/或存储器密度,举例来说。在一些计算系统及子系统(例如,中央处理单元(cpu))的上下文中,可在不位于存储器(例如,阵列中的存储器单元)的间距上及/或芯片上的位置中处理数据,如本文中所描述。举例来说,可通过与主机相关联的处理资源处理数据,(举例来说)而非在存储器的间距上处理数据。

如此,在若干个实施例中,在阵列130及感测电路150外部的电路不必执行计算功能,此乃因感测电路150可在阵列本地的多个共享i/o线的数据路径中执行适当操作以执行这些计算功能或可执行这些操作,而不使用外部处理资源。因此,所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的感测电路150及/或所述多个感测电路单元450-1、...、450-z可用于在至少某种程度上补偿或替换此外部处理资源(或至少此外部处理资源的带宽消耗)。在一些实施例中,所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的感测电路150及/或所述多个感测电路单元450-1、...、450-z可用于执行除了由外部处理资源(例如,主机110)执行的操作之外的操作(例如,以执行指令)。例如,主机110及/或感测电路150可限于仅执行特定操作及/或特定数目个操作。

本文中所描述的操作可包含与具有pim能力的装置相关联的操作。具有pim能力的装置操作可使用基于位向量的操作。如本文中所使用,术语“位向量”打算意指在位向量存储器装置(例如,pim装置)上、物理地连续或非连续地存储于存储器单元阵列的行中的一定数目个位。因此,如本文中所使用,“位向量操作”打算意指对是虚拟地址空间(例如,由pim装置使用)的连续或非连续部分的位向量执行的操作。举例来说,pim装置中的虚拟地址空间的行可具有16k个位的位长度(例如,对应于dram配置中的16k个存储器单元互补对)。如本文中所描述,用于此16k位行的感测电路150可包含对应16k读出放大器206及/或处理元件(例如,计算组件231),所述16k读出放大器206及/或处理元件形成于可选择地耦合到16位行中的对应存储器单元的读出线的间距上。pim装置的感测电路及/或逻辑条带中的计算组件可作为一位处理元件(pe)而对由感测电路150感测(例如,由读出放大器感测及/或存储,如本文中所描述)的存储器单元的行或子行的位向量的单个位进行操作。类似地,所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的多个感测电路单元450-1、...、450-z可各自作为一位pe而对阵列中被感测存储器单元的行及/或子行的位向量的单个位进行操作。

启用i/o线可包含启用(例如,接通、激活)具有耦合到解码信号(例如,列解码信号)的栅极及耦合到i/o线的源极/漏极的晶体管。然而,实施例并不限于启用i/o线。举例来说,在若干个实施例中,感测电路(例如,150)可用于在不启用阵列的列解码线的情况下执行操作。

然而,所述多个共享i/o线155可经启用以便将数据值加载到所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的所述多个感测电路单元450-1、...、450-z,其中可控制计算操作而使其更快。举例来说,在计算单元中的逻辑条带424-1、...、424-n的所述多个感测电路单元450-1、...、450-z中,可在2ns的速度下执行计算操作。与用于激发阵列中的行的相关联时间(例如,60ns)相比,此速度提高可归因于不必将数据值移动回到行及/或子行中。

图1b是根据本发明的若干个实施例的呈包含存储器装置的计算系统形式的设备的另一框图,所述存储器装置具有位于在阵列的存储库区段123-1、123-2、...、123-n本地的数据路径中的i/o线155。举例来说,存储库121-1可表示存储器装置120的实例性存储库。如图1b中所展示,存储库121-1可包含多个主存储器列(水平地展示为x)(例如,在实例性dram存储库中,16,384个列)。另外,存储库121-1可划分成存储库区段(例如,含32个子阵列的若干象限)123-1、123-2、...、123-n。每一存储库区段可与所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的多个感测电路单元450-1、...、450-z相关联。存储库区段123-1、...、123-n中的每一者可包含多个行(垂直地展示为y)(例如,在实例性dram存储库中,每一区段可以是包含32个子阵列的象限,所述32个子阵列各自可包含512个行及每行16个子行)。实例性实施例并不限于本文所描述的列及行以及子行的实例性水平及/或垂直定向或其实例性数目。

在一些实施例中,每一存储库区段可具有与其相关联的、所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的多个感测电路单元450-1、...、450-z。存储库121-1可包含一个控制器140及/或与每一存储库区段及/或子阵列相关联的一定数目个控制器以引导加载到所述多个共享i/o线155的数据路径中的计算单元中的逻辑条带424-1、...、424-n的所述多个感测电路单元450-1、...、450-z的数据值的移动(例如,经由移动组件171)及/或对所述数据值的操作。

图2是图解说明根据本发明的若干个实施例的存储器装置120的电路的示意图,所述电路包含读出放大器206及计算组件231,在各种实施例中,读出放大器206及计算组件231可各自包含于感测电路250及/或逻辑条带124中。感测电路250可对应于图1a中所展示的感测电路150。

如图2的实例性实施例中所展示,存储器单元可包含存储元件(例如,电容器)及存取装置(例如,晶体管)。举例来说,第一存储器单元可包含晶体管202-1及电容器203-1,且第二存储器单元可包含晶体管202-2及电容器203-2等。在此实施例中,存储器阵列230是1t1b(单晶体管单电容器)式存储器单元的dram阵列,但可使用其它的配置实施例(例如,每存储器单元具有两个晶体管及两个电容器的2t2c)。在若干个实施例中,存储器单元可以是破坏性读取存储器单元(例如,读取由单元所存储的数据会破坏数据,使得原本由所述单元存储的数据在被读取之后被刷新)。

存储器阵列230的单元被配置成由存取线(字线)204-x(行x)、204-y(行y)等耦合的行以及由互补读出线对(例如,图2中所展示的数字线digit(d)及digit(d)_)耦合的列。对应于每一对互补读出线的个别读出线也可分别被称为数字线205-1,即digit(d)及205-2,即digit(d)_,或图3中的对应参考编号。虽然图2中仅展示一对互补数字线,但本发明的实施例并不受此限制,且存储器单元阵列可包含额外存储器单元列及数字线(例如4,096个、8,192个、16,384个等)。

虽然行及列被图解说明为在平面中正交定向,但实施例并不受此限制。举例来说,行与列可相对于彼此定向成任何可行的三维配置。举例来说,行与列可相对于彼此被定向成任何角度,可定向于基本上水平平面或基本上垂直平面中,及/或可定向成折叠式拓扑以及其它可能三维配置。

存储器单元可耦合到不同数字线及/或字线。举例来说,晶体管202-1的第一源极/漏极区可耦合到数字线205-1(d),晶体管202-1的第二源极/漏极区可耦合到电容器203-1,且晶体管202-1的栅极可耦合到字线204-y。晶体管202-2的第一源极/漏极区可耦合到数字线205-2(d)_,晶体管202-2的第二源极/漏极区可耦合到电容器203-2,且晶体管202-2的栅极可耦合到字线204-x。如图2中所展示之单元板可耦合到电容器203-1及203-2中之每一者。在各种存储器阵列配置中,单元板可以是可被施加参考电压(例如,接地)的共同节点。

根据本发明的若干个实施例,存储器阵列230经配置以耦合到感测电路250。在此实施例中,感测电路250包括对应于相应存储器单元列(例如,耦合到相应互补数字线对)的读出放大器206及计算组件231。然而,在一些实施例中,用于由逻辑条带的计算组件执行的数据路径中计算操作的感测电路250在感测电路250中可不包含计算组件。读出放大器206可耦合到互补数字线对205-1及205-2。如果存在,那么计算组件231可经由通过闸207-1及207-2耦合到读出放大器206。通过闸207-1及207-2的栅极可耦合到操作选择逻辑213。

操作选择逻辑213可经配置以包含:通过门逻辑,其用于控制耦合位于读出放大器206与计算组件231之间非转置的互补数字线对的通过闸;及交换门逻辑,其用于控制耦合位于读出放大器206与计算组件231之间转置的互补数字线对的交换栅极。操作选择逻辑213也可耦合到互补数字线对205-1及205-2。操作选择逻辑213可经配置以基于选定操作而控制通过闸207-1及207-2的连续性。

读出放大器206可经操作以确定由选定存储器单元存储的数据值(例如,逻辑状态)。读出放大器206可包括交叉耦合锁存器,所述交叉耦合锁存器在本文中可被称为初级锁存器。在图2中所图解说明的实例中,对应于读出放大器206的电路包括锁存器215,锁存器215包含耦合到互补数字线对d205-1及(d)_205-2的四个晶体管。然而,实施例并不限于此实例。锁存器215可以是交叉耦合锁存器,例如,一对晶体管(例如n沟道晶体管(例如,nmos晶体管)227-1及227-2)的栅极与另一对晶体管(例如p沟道晶体管(例如,pmos晶体管)229-1及229-2)的栅极交叉耦合。包括晶体管227-1、227-2、229-1及229-2的交叉耦合锁存器215可被称为初级锁存器。

在操作中,当正在感测(例如,读取)存储器单元时,数字线205-1(d)或205-2(d)_中的一者上的电压将稍大于数字线205-1(d)或205-2(d)_中的另一者上的电压。act信号及rnl*信号可被驱动为低以启用(例如,激发)读出放大器206。具有较低电压的数字线205-1(d)或205-2(d)_将接通pmos晶体管229-1或229-2中的一者到大于pmos晶体管229-1或229-2中的另一者的程度,借此将具有较高电压的数字线205-1(d)或205-2(d)_驱动为高到大于另一数字线205-1(d)或205-2(d)_被驱动为高的程度。

类似地,具有较高电压的数字线205-1(d)或205-2(d)_将接通nmos晶体管227-1或227-2中的一者到大于nmos晶体管227-1或227-2中的另一者的程度,借此将具有较低电压的数字线205-1(d)或205-2(d)_驱动为低到大于另一数字线205-1(d)或205-2(d)_被驱动为低的程度。因此,在短暂延迟之后,具有稍微较大电压的数字线205-1(d)或205-2(d)_通过源型晶体管(sourcetransistor)而被驱动到供应电压vcc的电压,且另一数字线205-1(d)或205-2(d)_通过漏型晶体管(sinktransistor)而被驱动到参考电压(例如,接地)的电压。因此,交叉耦合nmos晶体管227-1及227-2以及pmos晶体管229-1及229-2用作读出放大器对,所述读出放大器对会放大数字线205-1(d)及205-2(d)_上的差分电压且操作以锁存从选定存储器单元感测到的数据值。

实施例并不限于图2中所图解说明的读出放大器206配置。作为实例,读出放大器206可以是电流模式读出放大器及单端读出放大器(例如,耦合到一个数字线的读出放大器)。此外,本发明的实施例并不限于折叠式数字线架构,例如图2中所展示的折叠式数字线架构。

可操作读出放大器206连同计算组件231以使用来自阵列的数据作为输入来执行各种操作。在若干个实施例中,可将操作结果存储回到阵列而不用经由数字线地址存取传送数据(例如,不用激发列解码信号使得数据经由局部i/o线被传送到阵列及感测电路外部的电路)。如此,本发明的若干个实施例可能够使用比各种先前方法少的电力来执行操作及与其相关联的计算功能。另外,由于若干个实施例消除对跨越局部及全局i/o线传送数据以便执行计算功能(例如,在存储器与离散处理器之间)的需要,因此与先前方法相比,若干个实施例可实现经增加的处理能力。

读出放大器206可进一步包含平衡电路214,平衡电路214可经配置以平衡数字线205-1(d)与205-2(d)_。在此实例中,平衡电路214包括耦合于数字线205-1(d)与205-2(d)_之间的晶体管224。平衡电路214还包括晶体管225-1及225-2,其各自具有耦合到平衡电压(例如,vdd/2)的第一源极/漏极区,其中vdd是与阵列相关联的供应电压。晶体管225-1的第二源极/漏极区可耦合数字线205-1(d),且晶体管225-2的第二源极/漏极区可耦合数字线205-2(d)_。晶体管224、225-1及225-2的栅极可耦合在一起且耦合到平衡(eq)控制信号线226。如此,激活eq会启用晶体管224、225-1及225-2,此将数字线205-1(d)及205-2(d)_有效地短接在一起且短接到平衡电压(例如,vcc/2)。

虽然图2展示读出放大器206包括平衡电路214,但实施例并不受此限制,且平衡电路214可被实施成与读出放大器206离散,被实施成与图2中所展示的配置不同的配置或者根本不被实施。

如下文进一步描述,在若干个实施例中,感测电路250(例如,读出放大器206及计算组件231)可经操作以执行选定操作,且将所述结果首先存储于读出放大器206或计算组件231中的一者中,而不经由局部或全局i/o线传送来自感测电路的数据(例如,不经由(例如)激活列解码信号执行读出线地址存取)。

然而,关于本文中所描述的实施例,具有读出放大器206(在一些实施例中还可包含如图2中所展示的计算组件231)的感测电路250也可将存储器单元从阵列中的经多路复用存储器单元列耦合到在阵列本地的所述多个共享i/o线455的数据路径中的计算单元460中的逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z,如结合图4所论述。以此方式,逻辑条带424-1、...、424-n的感测电路单元450-1、...、450-z可经由选择逻辑通过所述多个共享i/o线455间接地耦合到列的存储器单元(结合图3到7所论述)。

操作的执行(例如,涉及数据值的布尔逻辑运算)是基本且常用的。布尔逻辑运算用于许多较高级操作中。因此,可通过经改进操作实现的速度及/或电力效率可转化成较高阶功能性的速度及/或电力效率。

如图2中所展示,计算组件231还可包括锁存器,所述锁存器在本文中可被称为次级锁存器264。可以与上文关于初级锁存器215所描述的方式类似的方式来配置并操作次级锁存器264,唯以下情形除外:次级锁存器中所包含的交叉耦合p沟道晶体管(例如,pmos晶体管)对可将其相应源极耦合到供应电压(例如,vdd),且次级锁存器的交叉耦合n沟道晶体管(例如,nmos晶体管)对可将其相应源极选择性地耦合到参考电压(例如接地),使得能够连续地启用次级锁存器。计算组件231的配置并不限于图2中所展示的配置,且各种其它实施例是可行的,举例来说,用作结合图4的逻辑条带424-1、…、424-n所描述的计算组件431-1、...、431-z。

如本文中所描述,存储器装置(例如,图1a中的120)可经配置以经由数据总线(例如,156)及控制总线(例如,154)耦合到主机(例如,110)。存储器装置120中的存储库121可包含存储器单元的多个存储库区段(图1b中的123-1、...、123-n)。存储库121可包含经由存储器单元的多个列(图1b)耦合到所述多个阵列的感测电路(例如,图1a中的150以及图2及3中的对应参考编号)。感测电路可包含耦合到列中的每一者的读出放大器及/或计算组件(例如,在图2中分别是206及231)。

每一存储库区段123可与在阵列230本地的多个共享i/o线(图1b中的155)的数据路径中的计算单元中的多个逻辑条带(例如,图1b中的124-0、124-1、...、124-n-1)相关联。耦合到存储库的控制器(例如,图1a及1b中的140)可经配置以如本文中所描述地引导数据值移动到在阵列230本地的共享i/o线355/455(图3及4)的数据路径中的计算单元360/460(图3及4)的逻辑条带424(图4)中的计算组件431(图4)。

存储器装置可包含具有多个感测电路单元(例如,图4中的450-1、...、450-z)的逻辑条带(例如,图1b中的124及图4中的424),所述多个感测电路单元可各自对应于子行中的存储器单元的所述多个列(图1b)中的一定数目个列(例如,图4中的428-1、...、428-16)。如结合图3所进一步论述,感测电路250中的一定数目个读出放大器206及/或计算组件231可以可选择地耦合(例如,经由图3中的列选择电路358-1及358-2被多路复用)到多个共享i/o线355(图3)。列选择电路可经配置以通过可选择地耦合到多个(例如,四个、八个及十六个以及其它可能性)读出放大器及/或计算组件来可选择地感测阵列的特定存储器单元列中的数据。

在一些实施例中,存储库中的多个逻辑条带(例如,图1b中的124-1、...、124-n)中的一定数目个逻辑条带可对应于在图1b中(例如,象限具有多个子阵列)存储库中的一定数目个存储库区段123-1、...、123-n。替代地或另外,存储库中的所述多个逻辑条带中的一定数目个逻辑条带可对应于dram阵列的行中的多个子行中的一定数目个子行。逻辑条带可在通往阵列230的共享i/o线(例如,图4中的455)的数据路径中包含多个感测电路单元(例如,图4中的450-1、…、450-z),所述多个感测电路单元可如图2中所展示的感测电路250一样被配置及/或操作。如将在图3中所展示,列选择逻辑可经由多个共享i/o线355(图3)将从阵列的行或子行感测到的数据值并行地移动到所述多个共享i/o线355/455(图3及4)的数据路径的计算单元360/460(图3及4)中的多个感测电路单元450(图4)。在一些实施例中,数据的数目可对应于所述多个共享i/o线的1k位宽度,此也可对应子行的存储器单元及/或数据值的数目。

在各种实施例中,举例来说,连接电路232-1可在217-1处耦合到初级锁存器215(例如,读出放大器206用作逻辑条带中的计算组件231相关联的锁存器)且连接电路232-2可在217-1处耦合到初级锁存器215,以移动逻辑条带的已被执行操作的所感测及/或所存储数据值。可直接(例如,作为位串行链路)经由连接电路232-1及232-2(例如,不经由共享i/o线移动)将数据值移动到另一逻辑条带中的选定锁存器及/或计算组件231,如本文中所描述。

虽然图2展示,连接电路232-1及232-2分别耦合在初级锁存器215的217-1及217-2处,但实施例并不受此限制。举例来说,连接电路232-1及232-2可(举例来说)耦合到次级锁存器264(例如,计算组件231)以经由连接电路232-1及232-2将数据值移动到另一逻辑条带中的选定锁存器及/或计算组件231。举例来说,这些连接电路232-1及232-2可使得(例如,如通过控制器140引导)一连串数据值(位)从第一逻辑条带中的锁存器及/或计算组件去往第二逻辑条带(例如,邻近逻辑条带)中的对应锁存器及/或计算组件以在多个逻辑条带中执行一系列脉动操作(例如,如结合图9a到9b所描述)。

如本文中所描述,存储器单元阵列可包含dram存储器单元的实施方案,其中控制器响应于命令而经配置以经由共享i/o线将数据从源位置移动(例如,复制、传送及/或输送)到目的地位置。在各种实施例中,源位置可为位于第一存储库中且目的地位置可为位于在阵列230本地的共享i/o线355(图3)的数据路径中的计算单元360(图3)中。

如图3中所描述,设备可经配置以将数据从源位置(包含与第一数目个读出放大器及/或计算组件相关联的特定行(例如,图3中的319)及列地址)移动(例如,复制、传送及/或输送)到共享i/o线(例如,图3中的355)。另外,设备可经配置以将数据移动到目的地位置,包含与位于共享i/o线355(图3)的数据路径中的计算单元360(图3)相关联的特定逻辑条带424(图4)。如读者将了解,每一共享i/o线355(图3)可为单个线或可包含一对互补共享i/o线(例如,图3中的共享i/o线及共享i/o线*)。在一些实施例中,2k个共享i/o线(例如,互补共享i/o线对)可被配置为2k位宽的共享i/o线。在一些实施例中,1k个共享i/o线(例如,互补共享i/o线对)可被配置为1k位宽的共享i/o线。

图3是图解说明根据本发明的若干个实施例的用于阵列的数据路径中的多个共享i/o线的电路的示意图。图3展示各自耦合到一对相应互补共享i/o线355(例如,共享i/o线与共享i/o线*)的八个读出放大器(例如,分别以306-0、306-1、…、306-7展示的读出放大器0、1、…、7)。图3还展示各自经由相应通过门307-1及307-2以及数字线305-1及305-2而耦合到相应读出放大器(例如,如针对读出放大器0以306-0所展示)的八个计算组件(例如,以331-0、331-1、…、331-7展示的计算组件0、1、…、7)。通过门可如图2中所展示而连接且可由操作选择信号pass控制。举例来说,选择逻辑的输出可耦合到通过门307-1及307-2的栅极以及数字线305-1及305-2。在一些实施例中,对应的读出放大器与计算组件对可促成以350-0、350-1、…、350-7指示的感测电路的形成。

可将存在于所述对互补数字线305-1与305-2上的数据值加载到读出放大器306-0中,如结合图2所描述。在一些实施例中,当启用通过门307-1及307-2时,可将所述对互补数字线305-1与305-2上的数据值从读出放大器传递到计算组件(例如,从306-0传递到331-0)。所述对互补数字线305-1与305-2上的数据值可为在激发读出放大器时由读出放大器306-0存储的数据值。

图3中的读出放大器306-0、306-1、…、306-7可各自对应于图2中所展示的读出放大器206。图3中所展示的计算组件331-0、331-1、…、331-7可各自对应于图2中所展示的计算组件231。个别读出放大器或一个读出放大器与一个计算组件的组合可促成dram存储器子阵列325的一部分的感测电路(例如,350-0、350-1、…、350-7),所述感测电路耦合到共享i/o线355,所述共享i/o线由共享i/o线355的数据路径中的计算单元360的一定数目个逻辑条带共享。

图3中所图解说明的实施例的配置是出于清晰的目的而展示且并不如此受限制。举例来说,图3中所图解说明的读出放大器306-0、306-1、…、306-7与计算组件331-0、331-1、…、331-7及共享i/o线355组合的配置并不限于:感测电路的读出放大器306-0、306-1、…、306-7及/或计算组件331-0、331-1、…、331-7的组合的一半形成于存储器单元(未展示)的列322上方且一半形成于存储器单元的列322下方。形成感测电路(其经配置以耦合到共享i/o线)的读出放大器及/或计算组件的此类组合也并不限于八个。举例来说,当每行的子行的数目及/或逻辑条带的数目是16个时,形成感测电路(其经配置以耦合到共享i/o线)的读出放大器及/或计算组件的数目可为16个。另外,共享i/o线355的配置并不限于被分裂成两个以用于单独地耦合两组互补数字线305-1与305-2中的每一者,共享i/o线355的定位也并不限于在形成感测电路的读出放大器及/或计算组件的组合的中间(例如,而非位于读出放大器与计算组件的组合的任一端处)。

图3中所图解说明的电路还展示列选择电路358-1及358-2,所述列选择电路经配置以相对于子阵列325的特定列322、与其相关联的互补数字线305-1及305-2以及共享i/o线355通过多路复用而实施数据移动操作(例如,如由图1a及1b中所展示的控制器140引导)。举例来说,列选择电路358-1具有经配置以与对应列(例如列0(332-0)、列2、列4及列6)耦合的选择线0、2、4及6。列选择电路358-2具有经配置以与对应列(例如列1、列3、列5及列7)耦合的选择线1、3、5及7。在各种实施例中,结合图3所描述的列选择电路358可表示由多路复用器(例如,8路多路复用器、16路多路复用器等)体现且含于所述多路复用器中的功能性的至少一部分。

控制器140可耦合到列选择电路358以控制选择线(例如,选择线0)以存取由读出放大器、计算组件存储及/或存在于所述对互补数字线(例如,305-1与305-2,当经由来自选择线0的信号激活选择晶体管359-1及359-2时)上的数据值。激活选择晶体管359-1及359-2(例如,如由控制器140引导)使得列0(322-0)的读出放大器306-0、计算组件331-0及/或互补数字线305-1及305-2的耦合能够将数字线0及数字线0*上的数据值移动到共享i/o线355。举例来说,经移动数据值可为存储(高速缓冲)于读出放大器306-0及/或计算组件331-0中的来自特定行319的数据值。来自列0到7中的每一者的数据值可类似地由控制器140选择,从而激活适当选择晶体管。

此外,启用(例如,激活)选择晶体管(例如,选择晶体管359-1及359-2)可使得特定读出放大器及/或计算组件(例如,分别306-0及/或331-0)能够与共享i/o线355耦合,使得由放大器及/或计算组件存储的数据值可被移动到共享i/o线355(例如,放置于所述共享i/o线上及/或传送到所述共享i/o线)。在一些实施例中,一次选择一列(例如,列322-0)来耦合到特定共享i/o线355以移动(例如,复制、传送及/或输送)所存储数据值。在图3的实例性配置中,将共享i/o线355图解说明为共享差分i/o线对(例如,共享i/o线与共享i/o线*)。因此,选择列0(322-0)可产生来自行(例如,行319)的子行及/或如由与互补数字线305-1及305-2相关联的读出放大器及/或计算组件存储的两个数据值(例如,具有值0及/或1的两个位)。这些数据值可并行地输入到共享差分i/o线355的每一共享差分i/o对(例如,共享i/o与共享i/o*)。

图4是图解说明根据本发明的若干个实施例的阵列130(图1a)的存储库区段423的框图,所述阵列通过位于在阵列130本地的数据路径中的多个共享i/o线455而耦合到具有多个逻辑条带424-1、…、424-z的计算单元460。在图4的实施例中,将存储库区段423(例如,具有多个存储库象限)展示为每象限具有多个子阵列425-1、…、425-32。在图4中,在存储库象限1中图解说明32个子阵列。然而,实施例并不限于此实例。此实例将存储库区段423展示为具有16k个列,所述16k个列可通过每行的16个子行428-1、…、428-16(例如,经由以358-1及358-2展示且结合图3而描述的列选择电路)而被多路复用到共享i/o线455。在一些实施例中,每个第十六列及经耦合存储器单元可提供数据值,所述数据值可作为子行移动到计算单元460作为并行的1k个位的群组。替代地或另外,连续1k个列及经耦合存储器单元可提供1k个数据值,所述1k个数据值可作为子行移动到计算单元460作为并行的1k个位的群组。在其它可能实施例当中的任一实施例中,1k个位的群组可通过共享i/o线455而在16个循环中依序移动到16个经指定逻辑条带424-1、…、424-n的1k个感测电路单元450-1、…、450-z。

举例来说,来自第一子行428-1的序列中的第一读出放大器及/或存储器单元的位可经引导(例如,通过控制器140)以由第一逻辑条带424-1中的感测电路单元的序列中的第一感测电路单元450-1存储。来自第一子行428-1的序列中的第二读出放大器及/或存储器单元的位可经引导以由第一逻辑条带424-1中的感测电路单元的序列中的第二感测电路单元450-2存储。此外,来自第二子行428-2的序列中的第一读出放大器及/或存储器单元的位可经引导以由第二逻辑条带424-2中的感测电路单元的序列中的第一感测电路单元450-1存储。来自第二子行428-2的序列中的第二读出放大器及/或存储器单元的位可经引导以由第二逻辑条带424-2中的感测电路单元的序列中的第二感测电路单元450-2存储。对应于每行的子行428-1、428-2、…、428-16的序列中的每一读出放大器及/或存储器单元的位可类似地经指定以由逻辑条带424-1、…、424-n的序列中的对应计算组件或相关联锁存器存储(例如,来自子行428-1的数据值被移动到逻辑条带424-1、来自子行428-2的数据值被移动到逻辑条带424-2等)。移动可经由共享i/o线455而被引导到所指定逻辑条带,此可向计算单元460提供1k位宽的数据路径。

在图4的实例中,每一逻辑条带424-1、…、424-n可具有多个感测电路单元450-1、…、450-z,所述多个感测电路单元具有计算组件、锁存器及/或读出放大器(例如本文中已结合图2的感测电路250所描述的读出放大器206、计算组件231及锁存器264/215)。在一些实施例中,所述多个逻辑条带424-1、…、424-n中的每一者可经配置以使用所述多个感测电路单元450-1、…、450-z来执行计算功能。在一些实施例中,所述多个逻辑条带424-1、…、424-z中的每一者可使用所述多个感测电路单元450-1、…、450-z来执行不同逻辑运算。举例来说,所述多个逻辑条带424-1、…、424-z中的至少一者可经配置以执行and运算且所述多个逻辑条带424-1、…、424-z中的至少一者可经配置以执行nor运算,以及逻辑运算的各种组合及/或序列。

在一些实施例中,所述多个逻辑条带424-1、…、424-z中的每一者可被耦合在一起,使得存储于所述多个逻辑条带424-1、…、424-z上的数据可被移动到所述多个逻辑条带424-1、…、424-z中的另一者。举例来说,在完成对所述多个逻辑条带424-1、…、424-z中的一者的逻辑运算之后,逻辑运算的结果可被移动到所述多个逻辑条带424-1、…、424-z中的另一者且可基于先前逻辑运算的结果而执行逻辑运算。

在一些实施例中,所述多个逻辑条带424-1、…、424-z可被分裂成第一逻辑条带部分424-a、第二逻辑条带部分424-b及第三逻辑条带部分424-c。第一逻辑条带部分424-a、第二逻辑条带部分424-b及第三逻辑条带部分424-c可各自经配置以执行程序。所述程序可由一定数目个操作构成。可通过使用包括所述逻辑条带部分的逻辑条带完成所述操作而执行所述程序。可从第一个到最后一个及从最后一个到第一个地使用逻辑条带部分中的逻辑条带直到完成程序的操作中的所有操作为止。

在一些实施例中,与存储库区段相关联的控制器140(图1a)可执行微码指令以引导1k个数据值从所述多个子阵列425-1、…、425-32当中的对应1k个经多路复用列连同特定经存取子行并行地移动到计算单元460中的特定逻辑条带424-1、…、424-n的特定感测电路单元450-1、…、450-z。

在一些实施例中,共享i/o线可用于将1k个数据值连接到所述多个逻辑条带424-1、…、424-n中的相应一者中的所述多个感测电路单元450-1、…、450-z中的相应一者。以实例方式且并非以限制方式,数据值的1k个位可被并行地移动到与每一子行相关联的特定逻辑条带。在各种实施例中,举例来说,可存在与存储库区段423的4个象限中的每一者中的32个子阵列425-1、…、425-32中的每一者相关联的计算单元460,或计算单元可在子阵列、象限及/或存储库区段的各种组合之间进行共享。可根据来自控制器140(图1a)的微码指令而对加载到计算单元460的逻辑条带424-1、…、424-n中的所述多个感测电路单元450-1、…、450-z的数据值进行操作以对所述数据值执行若干操作(例如,and、or、nor、xor、加法、减法、乘法、除法、移位等),如与本文中结合图2的感测电路250所描述的相同。

如本文中所描述,举例来说,一旦第一子行(例如,子行428-1)及第二子行(例如,子行428-2)的1k个数据值被移动(例如,加载)到计算单元460的第一逻辑条带424-1,便可在来自第三子行及第四子行的数据值被移动到计算单元460的第二逻辑条带424-2之前及/或基本上与此同时对所述第一子行及第二子行的此类数据值起始计算操作。可在不必使数据值往回移动到阵列130(图1a)的行中的情况下根据由控制器140(图1a)执行的微码指令而将在计算单元的逻辑条带中所执行的此类操作控制为快得多的(例如,以大约2ns的速度)。举例来说,与激发及存取阵列130(图1a)中的行可需要的实例性时间(例如,大约60ns)相比,可以快得多的速度使用计算单元460来执行计算操作。如结合图2所描述,连接电路232-1及232-2可使得逻辑条带(已对其执行操作)的所感测及/或所存储数据值能够在不经由共享i/o线进行移动的情况下在若干逻辑条带之间进行移动。

因此,在各种实施例中,存储器装置120可包含多个i/o线,所述多个i/o线作为用于与存储器单元的阵列130相关联的数据路径中计算操作的数据路径而被共享。所述多个共享i/o线可经由感测电路(例如,350)将阵列的行中的第一子行(例如,428-1)可选择地耦合到数据路径中的第一感测电路单元(例如,450-1)以将第一数据值从第一子行移动到第一计算组件。所述多个共享i/o线可经由感测电路将相应行中的第二子行(例如,428-2)可以可选择地耦合到数据路径中的第二感测电路单元以将第二数据值从第二子行移动到第二感测电路单元。举例来说,第一逻辑条带(例如,424-1)可包含第一感测电路单元且第二逻辑条带(例如,424-2)可包含第二感测电路单元。如本文中所描述,可与第二数据值从第二子行移动到第二计算组件基本上同时地使用第一计算组件来对来自第一子行的第一数据值执行操作。

在各种实施例中,数据路径可进一步包含:第一逻辑条带(例如,424-1),其经配置以包含与第一子行(例如,428-1)的多个存储器单元(未展示)中的一定数目个存储器单元对应的多个第一感测电路单元(例如,450-1、…、450-z)中的一定数目个第一感测电路单元;及第二逻辑条带(例如,424-2),其经配置以包含与第二子行(例如,428-2)的多个存储器单元中的一定数目个存储器单元对应的多个第二感测电路单元中的一定数目个第二感测电路单元。多个逻辑条带(例如,424-1、…、424-n)中的一定数目个逻辑条带可与相应行的多个子行(例如,428-1、…、428-16)中的一定数目个子行对应。计算单元(例如,460)可经配置以包含多个逻辑条带(例如,424-1、…、424-n),每一逻辑条带经配置以包含多个感测电路单元(例如,450-1、…、450-z),其中多个计算组件中的每一者可与在阵列本地的所述多个共享i/o线455中的至少一者相关联(例如,可选择地耦合到所述至少一者)。所述多个共享i/o线中的一定数目个共享i/o线可与相应行中的子行的多个存储器单元中的一定数目个存储器单元对应(例如,个别共享i/o线用于子行或行的每8个或16个存储器单元及/或列,以及其它可能配置)。逻辑条带(例如,424-1)可经配置以包含多个感测电路单元(例如,450-1、…、450-z)中的一定数目个感测电路单元,所述一定数目个感测电路单元与耦合到相应逻辑条带的子行的所述多个存储器单元中的一定数目个存储器单元对应。在若干个实施例中,锁存器可耦合到所述多个逻辑条带(例如,424-1、…、424-n)中的一或多者。来自阵列的数据及/或为操作的结果的数据可存储于锁存器中。操作可被中断(例如,暂停或停止)且在中断操作时的操作的结果可存储于锁存器中及/或往回存储到阵列。操作可通过将来自中断操作时的数据从阵列及/或锁存器加载到逻辑条带而在稍后时间继续进行。

图5是图解说明根据本发明的若干个实施例的存储器装置520的控制器540的实例的框图。在一些实施方案中,图5的框图提供具有pim能力的装置(例如图1a及1b中的存储器装置120)的一个实例的一部分的更多细节。在图5的实例中,控制器540-1、…、540-7(一般称为控制器540)可与具有pim能力的装置520的每一存储库521-1、…、521-7(一般称为存储库521)相关联。在图5的实例中展示八个存储库。然而,实施例并不限于此实例性数目。举例来说,控制器540可表示图1a中所展示的控制器140。每一存储库可包含存储器单元(未展示)的一或多个阵列。举例来说,每一存储库可包含一或多个阵列(例如图1a中的阵列130)且可包含解码器、其它电路及/或寄存器,如图1a中所展示。在图5中所展示的实例性存储器装置520中,控制器540-1、…、540-7展示为具有控制逻辑531-1、…、531-7、定序器532-1、…、532-7及时序电路533-1、…、533-7作为存储器装置520的一或多个存储库521上的控制器540的一部分。具有pim能力的装置520可表示图1a中所展示的存储器装置120的一部分。

如图5中所展示,存储器装置520可包含用以接收在具有pim能力的装置520处的数据、地址、控制信号及/或命令的高速接口(hsi)541。在各种实施例中,hsi541可耦合到与具有pim能力的装置520相关联的存储库仲裁器545。hsi541可经配置以从主机(例如,图1a中的110)接收命令及/或数据。如图5中所展示,存储库仲裁器545可耦合到多个存储库521-1、…、521-7。

在图5中所展示的实例中的控制逻辑531-1、…、531-7可呈微码引擎的形式,所述微码引擎负责从存储器单元阵列(例如,图1a中的阵列130)(其为每一存储库521-1、…、521-7的一部分)提取并执行机器指令(例如,微码指令)。定序器532-1、…、532-7也可呈微码引擎的形式。替代地,控制逻辑531-1、…、531-7可呈极大指令字(vliw)类型处理资源的形式且定序器532-1、…、532-7及时序电路533-1、…、533-7可呈状态机及晶体管电路的形式。

控制逻辑531-1、…、531-7可将微码指令解码成由定序器532-1、…、532-7实施的函数调用(例如,微码函数调用(ucode))。图6图解说明根据本发明的实施例的控制器540的另一实施例(在图6中展示为642),其图解说明定序器的较详细部分。微码函数调用可为以下操作:定序器532-1、…、532-7接收并执行以致使存储器装置520使用感测电路(例如图1a中的感测电路150)或使用分别在图4及6中所展示的计算单元460及660的感测电路单元450-1、…、450-z及650-1、…、650-z执行特定逻辑运算。时序电路533-1、…、533-7可提供时序以协调由分别在图4及6中所展示的计算单元460及660的逻辑条带424-1、…、424-n及624-1、…、624-n对逻辑运算的执行及/或负责提供对阵列(例如图1a中的阵列130)的无冲突存取。

如结合图1a所描述,控制器540-1、…、540-7可经由在图5中展示为555-1、…、555-7的控制线及数据路径而耦合到与存储器单元阵列相关联的感测电路150、计算单元460/660及/或额外逻辑电路170(包含高速缓冲存储器、缓冲器、读出放大器、经扩展行地址(xra)锁存器及/或寄存器)。如此,图1a、4及6中所展示的感测电路150、计算单元460/660及逻辑170可与存储器单元阵列130相关联(例如,使用在图5中以555-1、…、555-7展示的共享i/o线及/或其它i/o电路)。控制器540-1、…、540-7可控制阵列的常规dram操作,例如读取、写入、复制及/或擦除操作等。然而,另外,微码指令由控制逻辑531-1、…、531-7检索并执行且微码函数调用由定序器532-1、…、532-7接收并执行以致使图1a、4及6中所展示的感测电路150及/或计算单元460/660执行额外逻辑运算(例如加法、乘法或(作为较特定实例)布尔运算(例如and、or、xor等)),所述额外逻辑运算与常规dram读取及写入操作不同(例如,比所述常规dram读取及写入操作复杂)。因此,在此实例性存储器装置520中,可对具有pim能力的装置的存储库521-1、…、521-7执行微码指令执行及/或逻辑运算。

在各种实施例中,控制逻辑531-1、…、531-7、定序器532-1、…、532-7及时序电路533-1、…、533-7可操作以产生用于dram阵列的操作循环序列及/或引导对存储器装置520(例如,对包含于共享i/o线455-1、455-7的数据路径中的计算单元460/660中的存储库521-1、…、521-7)执行操作(例如,逻辑运算)。在具有pim能力的装置实例中,每一序列可经设计以执行操作(例如布尔逻辑运算and、or、xor等),所述操作一起实现特定功能。举例来说,操作序列可重复地执行一(1)位加法的逻辑运算以便计算多位总和。在另一实例中,用于操作序列的指令可经执行以执行一定数目个α混合图形操作,以及各种其它类型的操作。每一操作序列可被馈送到耦合到时序电路533-1、…、533-7的先进/先出(fifo)缓冲器中以提供与感测电路150、计算单元460/660及/或额外逻辑电路170(其与存储器单元阵列130(例如,图1a中所展示的dram阵列)相关联)的时序协调。

在图5中所展示的实例性具有pim能力的存储器装置520中,时序电路533-1、…、533-7可提供时序且可提供对来自四(4)个fifo队列的阵列的无冲突存取及/或可协调计算单元460/660中的操作的时序。在此实例中,一个fifo队列可支持阵列计算、一个fifo队列用于微码(例如,ucode)指令提取、一个fifo队列可用于控制与共享i/o线、逻辑条带、计算单元、连接电路等有关的数据路径且一个fifo队列用于drami/o。控制逻辑531-1、…、531-7及定序器532-1、…、532-7两者均可产生状态信息,所述状态信息可经由fifo接口往回路由到存储库仲裁器545。存储库仲裁器545可聚合此状态数据且(举例来说)经由hsi541将所述状态数据往回报告到主机110。

图6是图解说明存储器装置520(图5)的控制器642的一部分的另一实例的框图。根据本发明的若干个实施例,除其它功能之外,控制器642还经配置以控制数据值使用共享i/o线655(其位于在阵列130(图1a)本地的数据路径中)进行的到计算单元660的移动,所述计算单元具有多个逻辑条带624-1、…、624-n。在图6的实例中,控制器642的部分是控制器的定序器部分(例如图5中的定序器532)的实例。

在图6的实例性实施例中,控制器642的定序器部分可对三种类别的微码指令进行操作:阵列操作、计算组件操作及控制操作。如在601处所展示,位值可提供为子阵列掩码的一部分以识别存储库区段的象限中的特定子阵列,如上文所描述。在602-1及602-2处,与初级锁存器及次级锁存器(如结合图2的感测电路250所描述且在图7中展示为731(a)及706(b))相关联的a及b地址指针提供指向阵列130(图1a)中的数据值的物理地址的指针。在603处,位值可另外将额外索引提供到阵列130(图1a)中。如图6的实例中所展示,地址指针602-1及602-2以及索引603用于存取阵列130(图1a)的特定行及感测线(例如,到行字线及位线)。

本文中所描述的所述多个共享i/o线655可将阵列130(图1a)连接到位于在所述阵列本地的共享i/o655的数据路径中的计算单元660。指令从控制器642被提供到计算单元以将数据值从共享i/o线655加载到计算单元660的给定逻辑条带624-1、…、624-n中的给定感测电路单元650-1、…、650-z。计算单元660的掩码条带641可使得能够选择感测线及计算组件值以用于读取或写入。

在604处,来自有线or逻辑配置的条件代码可向计算单元660提供有线or运算的位值结果。在611处,位值可提供寄存器地址作为指向用于计算组件操作指令的第二寄存器源的指针。在612处,位值可随同与指向用于计算组件操作指令611的第二寄存器源的寄存器地址指针一起指示计算单元660的逻辑条带624-1、…、624-n的寄存器索引。

图7是图解说明根据本发明的若干个实施例的逻辑条带(例如,如以124、424及624所展示且结合图1b、4及6所描述)的感测电路单元750的示意图。图7还是图解说明根据本发明的若干个实施例的能够实施逻辑运算的计算单元460/660电路的示意图。

图7展示感测电路单元750-1、750-2及750-3,每一感测电路单元具有锁存器706(其在一些实施例中直接耦合到一对互补共享i/o线755-1与755-2(例如,如结合图3中的共享i/o线355所展示及描述))及/或逻辑运算选择逻辑713以及计算组件731(其经由通过门707-1及707-2而耦合到锁存器706)。以图解说明方式而非以限制方式,在图7中将锁存器706展示为直接耦合到所述对互补共享i/o线755-1与755-2。举例来说,共享i/o线可为单个共享i/o线755或可包含图7中所展示的所述对互补共享i/o线。在各种实施例中,共享i/o线的任一实施例可以可选择地及/或直接耦合到锁存器706以加载(例如,存储)来自阵列的数据值的第一部分,及/或可选择地及/或直接耦合到计算组件731以加载(例如,存储)来自阵列的数据值的第二部分,从而使得能够由感测电路750使用两个所存储数据值执行逻辑运算。

在一些实施例中,可存在与计算组件731相关联的多个锁存器706,使得所述锁存器可以(在各种实施例中)可选择地、直接及/或间接耦合到共享i/o线以将数据值加载到锁存器中的每一者,所述数据值可接着由相关联计算组件可选择地使用(例如,如由控制器引导)以执行多个逻辑运算(例如,如由成方形的锁存器的数目确定)。因此,在各种实施例中,通过门707-1及707-2可用于使锁存器706、计算组件731及/或逻辑运算选择逻辑713彼此直接及/或间接耦合及/或将共享i/o线755间接连接到锁存器706、计算组件731及/或逻辑运算选择逻辑713。

图7中所展示的锁存器706可以类似于在图2中展示且结合图2描述为与感测电路250相关联的读出放大器206(例如,初级锁存器)的方式起作用。图7中所展示的计算组件731可类似于在图2中展示为与感测电路250相关联的计算组件231(例如,次级锁存器)而起作用。图7中所展示的逻辑运算选择逻辑713可类似于在图2中展示为与感测电路250相关联的逻辑运算选择逻辑213而起作用。通过门707-1及707-2的栅极可由逻辑运算选择逻辑713信号(例如,pass)控制。举例来说,逻辑运算选择逻辑713的输出可耦合到通过门707-1及707-2的栅极。此外,计算组件731可包括经配置以向左及向右移位数据值的可加载移位寄存器。

根据图7中所图解说明的实施例,计算组件731可包括经配置以向左及向右移位数据值的可加载移位寄存器的相应级(例如,移位单元)。举例来说,如图7中所图解说明,移位寄存器的每一计算组件731(例如,级)包括一对右移位晶体管781与786、一对左移位晶体管789与790以及一对反转器787与788。信号phase1r、phase2r、phase1l及phase2l可施加到相应控制线782、783、791及792以根据本文中所描述的实施例启用/停用与执行逻辑运算及/或将数据移位相关联的对应计算组件731的锁存器上的反馈。

图7中所展示的计算单元460/660电路展示耦合到一定数目个逻辑选择控制输入控制线(包含iso、tf、tt、ft及ff)的运算选择逻辑713。从逻辑选择控制输入线上的逻辑选择控制信号的状况以及在经由被断言的iso控制信号启用隔离晶体管751-1及751-2时存在于所述对互补共享i/o线755-1及755-2上的数据值而确定从多个逻辑运算对一逻辑运算的选择。

根据各种实施例,运算选择逻辑713可包含四个逻辑选择晶体管:逻辑选择晶体管762,其耦合于交换晶体管742的栅极与tf信号控制线之间;逻辑选择晶体管752,其耦合于通过门707-1及707-2的栅极与tt信号控制线之间;逻辑选择晶体管754,其耦合于通过门707-1及707-2的栅极与ft信号控制线之间;及逻辑选择晶体管764,其耦合于交换晶体管742的栅极与ff信号控制线之间。逻辑选择晶体管762及752的栅极通过隔离晶体管751-1(具有耦合到iso信号控制线的栅极)耦合到真实感测线。逻辑选择晶体管764及754的栅极通过隔离晶体管751-2(也具有耦合到iso信号控制线的栅极)耦合到互补感测线。

存在于所述对互补共享i/o线755-1与755-2上的数据值可经由通过门707-1及707-2而加载到计算组件731中。计算组件731可包括可加载移位寄存器。当通过门707-1及707-2开通时,所述对互补共享i/o线755-1与755-2上的数据值(“a”)被传递到计算组件731且借此加载到可加载移位寄存器中。所述对互补共享i/o线755-1与755-2上的数据值可为在激发读出放大器706时由所述读出放大器存储的数据值(“b”)。在此实例中,逻辑运算选择逻辑信号pass为高的以将通过门707-1及707-2开通。

iso、tf、tt、ft及ff控制信号可操作以基于读出放大器706中的数据值(“b”)及计算组件731中的数据值(“a”)而选择一逻辑功能来实施。特定来说,iso、tf、tt、ft及ff控制信号经配置以独立于存在于所述对互补共享i/o线755-1与755-2上的数据值而选择逻辑功能来实施(但所实施逻辑运算的结果可取决于存在于所述对互补共享i/o线755-1与755-2上的数据值)。举例来说,iso、tf、tt、ft及ff控制信号选择逻辑运算来直接实施,这是因为存在于所述对互补共享i/o线755-1与755-2上的数据值并未通过逻辑以操作通过门707-1及707-2的栅极。

另外,图7展示经配置以在读出放大器706与计算组件731之间交换所述对互补共享i/o线755-1与755-2的定向的交换晶体管742。当交换晶体管742开通时,交换晶体管742的读出放大器706侧上的所述对互补共享i/o线755-1与755-2上的数据值反向耦合到交换晶体管742的计算组件731侧上的所述对互补共享i/o线755-1与755-2,且借此加载到计算组件731的可加载移位寄存器中。

当激活iso控制信号线且激活tt控制信号(例如,为高的)(其中真实共享i/o线上的数据值为“1”)或激活ft控制信号(例如,为高的)(其中互补共享i/o线上的数据值为“1”)时,逻辑运算选择逻辑713信号pass可经激活(例如,为高的)以将通过门707-1及707-2开通(例如,进行传导)。

真实共享i/o线上的数据值为“1”会将逻辑选择晶体管752及762开通。互补共享i/o线上的数据值为“1”会将逻辑选择晶体管754及764开通。如果iso控制信号或相应tt/ft控制信号或者对应共享i/o线(例如,特定逻辑选择晶体管的栅极耦合到其的共享i/o线)上的数据值并非为高的,那么通过门707-1及707-2将不由特定逻辑选择晶体管开通。

当激活iso控制信号线且激活tf控制信号(例如,为高的)(其中真实共享i/o线上的数据值为“1”)或激活ff控制信号(例如,为高的)(其中互补共享i/o线上的数据值为“1”)时,逻辑运算选择逻辑信号pass*可经激活(例如,为高的)以将交换晶体管742开通(例如,进行传导)。如果相应控制信号或对应共享i/o线(例如,特定逻辑选择晶体管的栅极耦合到其的共享i/o线)上的数据值并非为高的,那么交换晶体管742将不由特定逻辑选择晶体管开通。

pass*控制信号未必与pass控制信号互补。同时激活或同时去激活pass控制信号及pass*控制信号两者为可能的。然而,同时激活pass控制信号及pass*控制信号两者使所述对互补共享i/o线短接在一起,此可为待避免的破坏性配置。

图7中所图解说明的计算单元460/660电路经配置以直接从四个逻辑选择控制信号选择多个逻辑运算中的一者来实施(例如,逻辑运算选择不取决于存在于所述对互补共享i/o线上的数据值)。逻辑选择控制信号的一些组合可致使通过门707-1及707-2以及交换晶体管742均同时开通,此使所述对互补共享i/o线755-1与755-2短接在一起。根据本发明的若干个实施例,可由图7中所图解说明的计算单元460/660电路实施的逻辑运算可为在图8中所展示的逻辑表中总结的逻辑运算。

图8是图解说明根据本发明的若干个实施例的由图7中的感测电路750实施的可选择逻辑运算结果的逻辑表。可选择逻辑运算结果可由位于图7中所展示的多个共享i/o线755-1及755-2的数据路径中的计算单元460/660电路实施。四个逻辑选择控制信号(例如,tf、tt、ft及ff)连同存在于互补共享i/o线上的特定数据值一起可用于选择复数个逻辑运算中的一者来实施,涉及由计算单元460/660电路的读出放大器706(例如,初级锁存器)及计算组件731(例如,次级锁存器)存储的开始数据值(“a”及“b”)。所述四个控制信号连同存在于互补共享i/o线上的特定数据值一起控制通过门707-1及707-2以及交换晶体管742的连续性,此又在激发之前/之后影响计算组件731及/或读出放大器706中的数据值。可选择地控制交换晶体管742的连续性的能力促进实施涉及逆数据值(例如,逆操作数及/或逆结果)的逻辑运算以及其它。

图8中所图解说明的逻辑表8-1展示由计算组件731(例如,次级锁存器)存储的开始数据值(以844展示于栏a中)及由锁存器(例如,作为初级锁存器的读出放大器706)存储的开始数据值(以845展示于栏b中)。逻辑表8-1中的其它3个栏标头是指通过门707-1及707-2以及交换晶体管742的连续性,所述通过门及交换晶体管可分别取决于四个逻辑选择控制信号(例如,tf、tt、ft及ff)连同存在于所述对互补共享i/o线755-1与755-2上的特定数据值的状态而经控制以开通或关断。“未开通”栏对应于通过门707-1及707-2以及交换晶体管742均处于未传导状况中,“开通真实”对应于通过门707-1及707-2处于传导状况中,且“开通反转”对应于交换晶体管742处于传导状况中。逻辑表8-1中不反映与通过门707-1及707-2以及交换晶体管742均处于传导状况中对应的配置,这是因为此导致感测线被短接在一起。

经由对通过门707-1及707-2以及交换晶体管742的连续性的选择性控制,逻辑表8-1的上部部分的三个栏中的每一者可与逻辑表8-1的下部部分的三个栏中的每一者组合以提供对应于九个不同逻辑运算的3x3=9个不同结果组合,如通过以875所展示的各种连接路径所指示。在图8中所图解说明的逻辑表8-2中总结可通过计算单元460/660电路实施的九个不同可选择逻辑运算(包含and、or、not、nand、nor及xor逻辑运算)。

图8中所图解说明的逻辑表8-2的栏展示包含逻辑选择控制信号的状态的标头880。举例来说,第一逻辑选择控制信号的状态提供于表8-2的行876中、第二逻辑选择控制信号的状态提供于表8-2的行877中、第三逻辑选择控制信号的状态提供于表8-2的行878中且第四逻辑选择控制信号的状态提供于表8-2的行879中。在表8-2的行847中总结对应于结果的特定逻辑运算。

图9a到9b是图解说明根据本发明的若干个实施例的对存储器装置中的数据值执行操作的示意图。图9a及9b以924-1、924-2、…、924-18图解说明18个逻辑条带,所述18个逻辑条带标记为l1、l2、…、l18。如本文中所描述,存储器装置(例如,图1a及1b中的120)可包含存储器单元阵列(例如,图1a中的130)且感测电路(例如,图1a及2中的150及250)可选择地耦合到存储器单元阵列。存储器装置可进一步包含多个i/o线(例如,分别图1及3到7中的155、355、455、555、655、755),所述多个i/o线作为用于与阵列相关联的数据路径中计算操作的数据路径而被共享。所述多个共享i/o线可将感测电路可选择地耦合到共享i/o线的数据路径中的逻辑条带924-1、924-2、…、924-18。

控制器(例如,图1a及1b中的140)可与阵列相关联。控制器140可经配置以经由感测电路而引导数据值从阵列的子行(例如,图4中的428-1)经由共享i/o线移动到逻辑条带(例如,图4中的424-1)。

如此,控制器可引导对存储及/或移动到逻辑条带的数据值执行程序(例如,包括and、or、not、nand、nor及xor逻辑运算及/或其它操作(例如反转、移位、算术、统计)以及诸多其它可能操作中的任何数目个及/或组合的操作序列)。

本文中所描述的所述多个共享i/o线可经配置(如由控制器引导)以可选择地耦合到感测电路以经由多路复用器(其可包含或可为以358展示且结合图3所描述的列选择电路)而可选择地启用由对应于阵列的子行的感测电路存储的多个数据值中的一定数目个数据值的并行移动。

部分924-a、924-b及924-c各自展示为包含六个逻辑条带(例如,区域924-a中的逻辑条带924-1(l1)、…、924-6(l6)、区域924-b中的逻辑条带924-7(l7)、…、924-12(l12)及区域924-c中的逻辑条带924-13(l13)、…、924-18(l18))。逻辑条带部分924-a、924-b及924-c中的每一者可经配置以执行程序。由逻辑条带部分924-a、924-b及924-c执行的程序可为相同程序及/或每一逻辑条带部分924-a、924-b及924-c可执行不同程序。

在图9a中,可将来自阵列的数据传送到逻辑条带且可在每一逻辑条带部分924-a、924-b及924-c中同时执行程序。可在时间t1997-1期间经由共享i/o955将来自行1子阵列1(r1s1)的数据传送到逻辑条带l1924-1且可在时间t2997-2期间经由共享i/o955将来自行2子阵列1(r2s1)的数据传送到逻辑条带l1924-1。在时间t3997-3处,部分924-a可通过在逻辑条带924-1中对来自r1s1及r2s1的数据执行xor运算而开始执行程序,同时经由共享i/o955将来自行1子阵列2(r1s2)的数据传送到逻辑条带l7924-7。在时间t4997-4处,部分924-a通过在逻辑条带924-2中对来自r1s1的数据及向量0xf执行and运算而继续执行程序,同时经由共享i/o955将来自行2子阵列2(r2s2)的数据传送到逻辑条带l7924-7。

在时间t5997-5处,部分924-a通过对and运算的结果及xor运算的结果执行or运算而继续执行程序,同时部分924-b可通过在逻辑条带924-7中对来自r1s2及r2s2的数据执行xor运算而开始执行程序并且同时经由共享i/o955将来自行1子阵列3(r1s3)的数据传送到逻辑条带l13924-13。

在时间t6997-6处,部分924-a通过在逻辑条带l4924-4中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序且部分924-b通过在逻辑条带924-8中对来自r1s2的数据及向量0xf执行and运算而继续执行程序,同时经由共享i/o955将来自行2子阵列2(r2s2)的数据传送到逻辑条带l13924-13。

在时间t7997-7处,部分924-a通过在逻辑条带l5924-5中对shl操作的结果及向量0x1执行xor运算而继续执行程序且部分924-b通过在逻辑条带924-9中对and运算的结果及xor运算的结果执行or运算而继续执行程序并且部分924-c可通过在逻辑条带924-13中对来自r1s3及r2s3的数据执行xor运算而开始执行程序,同时经由共享i/o955将来自行1子阵列4(r1s4)的数据传送到逻辑条带l1924-1。

在时间t8997-8处,部分924-a通过在逻辑条带l6924-6中对xor运算的结果及来自r1s1的数据执行and运算而继续执行程序,部分924-b通过在逻辑条带l10924-10中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序,且部分924-c可通过在逻辑条带924-14中对来自r1s3的数据及向量0xf执行and运算而开始执行程序,同时经由共享i/o955将来自行2子阵列4(r2s4)的数据传送到逻辑条带l1924-1。

可在t8997-8期间完成在部分924-a中执行的程序且可将数据存储于逻辑条带924-6的额外锁存器中及/或经由共享i/o955往回发送到阵列。部分924-a可在t9997-9期间对在t7997-7及t8997-8期间被传送到逻辑条带924-1的数据开始执行程序。部分924-a、924-b及924-c可经配置使得以一调度经由共享i/o955而传送数据,使得连续且同时地执行其相应程序。

在时间t9997-9处,部分924-a可通过在逻辑条带924-1中对来自r1s4及r2s4的数据执行xor运算而开始执行程序,部分924-b通过在逻辑条带l11924-11中对shl操作的结果及向量0x1执行xor运算而继续执行程序且部分924-c通过在逻辑条带924-15中对and运算的结果及xor运算的结果执行or运算而继续执行程序,同时经由共享i/o955将来自行1子阵列5(r1s5)的数据传送到逻辑条带l7924-7。

在时间t10997-10处,部分924-a通过在逻辑条带924-2中对来自r1s4的数据及向量0xf执行and运算而继续执行程序,部分924-b通过在逻辑条带l12924-12中对xor运算的结果及来自r1s2的数据执行and运算而继续执行程序,且部分924-c通过在逻辑条带l16924-16中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序,同时经由共享i/o955将来自行2子阵列5(r2s5)的数据传送到逻辑条带l7924-7。

可在t10997-10期间完成在部分924-b中执行的程序且可将数据存储于逻辑条带924-12的额外锁存器中及/或经由共享i/o955往回发送到阵列。部分924-b可在t11997-11期间对在t9997-9及t10997-10期间被传送到逻辑条带924-7的数据开始执行程序。

在时间t11997-11处,部分924-a通过对and运算的结果及xor运算的结果执行or运算而继续执行程序,部分924-b可通过在逻辑条带924-7中对来自r1s5及r2s5的数据执行xor运算而开始执行程序,且部分924-c通过在逻辑条带l17924-17中对shl操作的结果及向量0x1执行xor运算而继续执行程序。

在时间t12997-12处,部分924-a通过在逻辑条带l4924-4中对由向量0x1进行的or运算结果执行向左移位(shl)操作而继续执行程序,部分924-b通过在逻辑条带924-8中对来自r1s5的数据及向量0xf执行and运算而继续执行程序,且部分924-c通过在逻辑条带l18924-18中对xor运算的结果及来自r1s5的数据执行and运算而继续执行程序。

可在t10997-12期间完成在部分924-c中执行的程序且可将数据存储于逻辑条带924-18的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在时间t13997-13处,部分924-a通过在逻辑条带l5924-5中对shl操作的结果及向量0x1执行xor运算而继续执行程序且部分924-b通过在逻辑条带924-9中对and运算的结果及xor运算的结果执行or运算而继续执行程序。

在时间t14997-14处,部分924-a通过在逻辑条带l6924-6中对xor运算的结果及来自r1s4的数据执行and运算而继续执行程序且部分924-b通过在逻辑条带l10924-10中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序。

可在t14997-14期间完成在部分924-a中执行的程序,所述程序在此实例中为由部分924-a完成的第二程序,且可将数据存储于逻辑条带924-6的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在时间t15997-15处,部分924-b通过在逻辑条带l11924-11中对shl操作的结果及向量0x1执行xor运算而继续执行程序且在时间t16997-16处,部分924-b通过在逻辑条带l12924-12中对xor运算的结果及来自r1s5的数据执行and运算而继续执行程序。

可在t16997-16期间完成在部分924-b中执行的程序,所述程序在此实例中为由部分924-b完成的第二程序,且可将数据存储于逻辑条带924-12的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在图9a中所图解说明的实例中,可在部分924-a、924-b及924-c中同时执行程序且数据可被发送到部分924-a、924-b及924-c,使得一旦完成程序,部分可再次开始执行程序。

在图9b中,可将数据传送到逻辑条带且可由逻辑条带部分924-a、924-b及924-c同时执行程序,并且可由特定逻辑条带部分执行一程序及/或若干程序。可在时间t1997-1期间经由共享i/o955将来自行1子阵列1(r1s1)的数据传送到逻辑条带l1924-1且可在时间t2997-2期间经由共享i/o955将来自行2子阵列1(r2s1)的数据传送到逻辑条带l1924-1。在时间t3997-3处,部分924-a可通过在逻辑条带924-1中对来自r1s1及r2s1的数据执行xor运算而开始执行程序,同时经由共享i/o955将来自行1子阵列2(r1s2)的数据传送到逻辑条带l7924-7。在时间t4997-4处,部分924-a通过在逻辑条带924-2中对来自r1s1的数据及向量0xf执行and运算而继续执行程序,同时经由共享i/o955将来自行2子阵列2(r2s2)的数据传送到逻辑条带l7924-7。

在时间t5997-5处,部分924-a通过对and运算的结果及xor运算的结果执行or运算而继续执行程序,同时部分924-b可通过在逻辑条带924-7中对来自r1s2及r2s2的数据执行xor运算而开始执行程序并且同时经由共享i/o955将来自行1子阵列3(r1s3)的数据传送到逻辑条带l13924-13。

在时间t6997-6处,部分924-a通过在逻辑条带l4924-4中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序且部分924-b通过在逻辑条带924-8中对来自r1s2的数据及向量0xf执行and运算而继续执行程序,同时经由共享i/o955将来自行2子阵列2(r2s2)的数据传送到逻辑条带l13924-13。

在时间t7997-7处,部分924-a通过在逻辑条带l5924-5中对shl操作的结果及向量0x1执行xor运算而继续执行程序且部分924-b通过在逻辑条带924-9中对and运算的结果及xor运算的结果执行or运算而继续执行程序并且部分924-c可通过在逻辑条带924-13中对来自r1s3及r2s3的数据执行xor运算而开始执行程序,同时经由共享i/o955将来自行1子阵列4(r1s4)的数据传送到逻辑条带l1924-1。

在时间t8997-8处,部分924-a通过在逻辑条带l6924-6中对xor运算的结果及来自r1s1的数据执行and运算而继续执行程序,部分924-b通过在逻辑条带l10924-10中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序,且部分924-c可通过在逻辑条带924-14中对来自r1s3的数据及向量0xf执行and运算而开始执行程序,同时经由共享i/o955将来自行2子阵列4(r2s4)的数据传送到逻辑条带l1924-1。

在时间t9997-9处,部分924-a通过在逻辑条带l5924-5中对and运算的结果及向量0x1执行xor运算而继续执行程序且可通过在逻辑条带924-1中对来自r1s4及r2s4的数据执行xor运算而开始执行程序。因此,部分924-a正同时执行两个程序。部分924-b通过在逻辑条带l11924-11中对shl操作的结果及向量0x1执行xor运算而继续执行程序且部分924-c通过在逻辑条带924-15中对and运算的结果及xor运算的结果执行or运算而继续执行程序,同时经由共享i/o955将来自行1子阵列5(r1s5)的数据传送到逻辑条带l7924-7。

在时间t10997-10处,部分924-a通过在逻辑条带924-2中对来自r2s4的数据及向量0xf执行and运算且在逻辑条带924-4中对来自r1s4的数据及xor运算的结果执行and运算而继续执行程序,部分924-b通过在逻辑条带l12924-12中对xor运算的结果及来自r1s2的数据执行and运算而继续执行程序,且部分924-c通过在逻辑条带l16924-16中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序,同时经由共享i/o955将来自行2子阵列5(r2s5)的数据传送到逻辑条带l7924-7。可在t10997-10期间完成在部分924-a中执行的第一程序且可将数据存储于逻辑条带924-4的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在时间t11997-11处,部分924-a通过对and运算的结果及xor运算的结果执行or运算而继续执行程序,部分924-b通过在逻辑条带l11924-11中对and运算的结果及向量0x1执行xor运算而继续执行程序且可通过在逻辑条带924-7中对来自r1s5及r2s5的数据执行xor运算而开始执行程序。因此部分924-b正同时执行两个程序。部分924-c通过在逻辑条带l17924-17中对shl操作的结果及向量0x1执行xor运算而继续执行程序。

在时间t12997-12处,部分924-a通过在逻辑条带l4924-4中对由向量0x1进行的or运算结果执行向左移位(shl)操作而继续执行程序,部分924-b通过在逻辑条带924-8中对来自r1s5的数据及向量0xf执行and运算以及在逻辑条带924-10中对来自r2s5的数据及xor运算的结果执行and运算而继续执行程序,且部分924-c通过在逻辑条带l18924-18中对xor运算的结果及来自r1s5的数据执行and运算而继续执行程序。可在t12997-12期间完成在部分924-b中执行的第一程序且可将数据存储于逻辑条带924-10的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在时间t13997-13处,部分924-a通过在逻辑条带l5924-5中对shl操作的结果及向量0x1执行xor运算而继续执行程序且部分924-b通过在逻辑条带924-9中对and运算的结果及xor运算的结果执行or运算而继续执行程序。部分924-c通过在逻辑条带l17924-17中对and运算的结果及向量0x1执行xor运算而继续执行程序。

在时间t14997-14处,部分924-a通过在逻辑条带l6924-6中对xor运算的结果及来自r1s4的数据执行and运算而继续执行程序,部分924-b通过在逻辑条带l10924-10中对由向量0x1进行的or运算的结果执行向左移位(shl)操作而继续执行程序,且部分924-c在逻辑条带924-17中对来自r2s6的数据及xor运算的结果执行and运算。可在t14997-14期间完成在部分924-c中执行的程序且可将数据存储于逻辑条带924-17的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在时间t15997-15处,部分924-a通过在逻辑条带l5924-5中对and运算的结果及向量0x1执行xor运算而继续执行程序且部分924-b通过在逻辑条带l11924-11中对shl操作的结果及向量0x1执行xor运算而继续执行程序。

在时间t16997-16处,部分924-a继续在逻辑条带924-4中对来自r2s4的数据及xor运算的结果执行and运算且部分924-b通过在逻辑条带l12924-12中对xor运算的结果及来自r1s5的数据执行and运算而继续执行程序。可在t16997-16期间完成在部分924-a中执行的第二程序且可将数据存储于逻辑条带924-4的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在时间t17997-17处,部分924-b通过在逻辑条带l11924-11中对and运算的结果及向量0x1执行xor运算而继续执行程序,且在时间t18997-18处,部分924-b继续在逻辑条带924-10中对来自r2s5的数据及xor运算的结果执行and运算。可在t18997-18期间完成在部分924-b中执行的第二程序且可将数据存储于逻辑条带924-10的额外锁存器中及/或经由共享i/o955往回发送到阵列。

在图9b中所图解说明的实例中,可在部分924-a、924-b及924-c中同时执行程序且可将数据发送到部分924-a、924-b及924-c,使得特定逻辑条带部分可同时执行程序。

因此,本文中所描述的实施例提供用于操作存储器装置以进行数据路径中计算操作的方法,所述数据路径中计算操作由处理资源通过执行非暂时性指令而执行。如本文中所描述,可由控制器及/或子控制器经由用于阵列、共享i/o线、所述多个逻辑条带及/或连接电路以及其它组件的处理资源而执行一组非暂时性指令。

尽管本文中已图解说明及描述包含感测电路、读出放大器、计算组件、锁存器、逻辑条带、共享i/o线、列选择电路、连接电路、多路复用器等的各种组合及配置的实例性实施例,但本发明的实施例并不限于本文中明确陈述的那些组合。本文中所揭示的感测电路、读出放大器、计算组件、锁存器、逻辑条带、共享i/o线、列选择电路、连接电路、多路复用器等的其它组合及配置明确地包含于本发明的范围内。

虽然本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的特定实施例。本发明打算涵盖本发明的一或多个实施例的更改或变化形式。应理解,已以说明性方式而非限制性方式做出以上描述。在审阅以上描述后,所属领域的技术人员将即刻明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的一或多个实施例的范围包含其中使用以上结构及过程的其它应用。因此,本发明的一或多个实施例的范围应参考所附权利要求书连同授权此类权利要求书的等效内容的全部范围来确定。

在前述实施方式中,出于简化本发明的目的,将一些特征一起集合于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如所附权利要求书所反映,发明性标的物在于少于单个所揭示实施例的所有特征。因此,据此将所附权利要求书并入到实施方式中,其中每一权利要求独立地作为单独实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1