用于存储器中数据交换网络的设备及方法与流程

文档序号:19187089发布日期:2019-11-20 01:36阅读:306来源:国知局
用于存储器中数据交换网络的设备及方法与流程

本发明一般来说涉及半导体存储器及方法,且更特定来说,涉及用于存储器中数据交换网络的设备及方法。



背景技术:

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

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

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

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

附图说明

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

图1b及1c是根据本发明的数个实施例的存储器装置的存储器库区段的框图。

图1d及1e是根据本发明的数个实施例的分别对应于图1b及1c的存储器装置的存储器库的框图。

图1f是根据本发明的数个实施例的在阵列的存储器库区段本地的数据路径中具有共享输入/输出(i/o)线的存储器装置的另一框图。

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

图3是说明根据本发明的数个实施例的用于与存储器中数据交换网络相关联的阵列的数据路径中的多个共享i/o线的电路的示意图。

图4是说明根据本发明的数个实施例的通过多个共享i/o线耦合到具有经配置为存储器中数据交换网络的多个逻辑条的计算单元的阵列的多个区段的框图。

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

图6是说明根据本发明的数个实施例的存储器装置的控制器的另一实例的框图,所述控制器用来控制数据交换协议的操作及选择。

图7是说明根据本发明的数个实施例的用于执行逻辑运算的电路的示意图。

图8是说明根据本发明的数个实施例的通过图7中所展示的电路实施的可选择逻辑运算结果的逻辑表。

图9a及9b是说明根据本发明的数个实施例的存储器中数据交换网络的示意图。

具体实施方式

本发明包含用于存储器中数据交换网络的设备及方法。在至少一个实施例中,设备包含存储器单元阵列及可选择地耦合到存储器单元阵列的感测电路。输入/输出(i/o)线是共享为与所述阵列相关联的用于存储器内数据交换的数据路径。存储器中数据交换网络可选择地耦合到相应共享i/o线。例如,感测电路可选择地耦合到存储器单元行及共享i/o线且存储器数据交换网络还可选择地耦合到共享i/o线。控制器经配置以耦合到存储器中数据交换网络且引导交换协议的启用。

如本文中所描述,存储器中数据交换网络旨在表示用来重构及/或重组(例如,调整)数据值以便交换一序列(例如,多个)数据值中的至少一个数据值(例如,所有数据值)的位置的(例如,在固定配置中及/或如选自多个替代可编程配置的)电路。如本文中所描述从其在序列中的先前位置调整数据值可提供数个优点。各种操作的性能可依靠相对于其原始序列调整数据值及/或可通过相对于其原始序列调整数据值来改善。此类操作可例如包含序列中的数据的快速傅里叶变换、分散集中功能、分类功能、交换端序(例如,最高有效位到最低有效位)以及其中数据交换可能有用的其它可能操作,以将字节压缩成向量(例如,压缩向量以用于成像)、使序列中的字节及/或位从一个位置移位及/或移动到另一位置。

序数(例如第一及第二)在本文中用来帮助使类似及/或可选择耦合的组件相互关联及/或区分开(例如,存储器单元的子阵列与相关联感测电路、数据值与相关联计算组件、存储器单元的子行与相关联计算组件、逻辑条与相关联计算组件、连接电路与相关联计算组件及/或逻辑条等)。除非上下文另有明确规定(例如,通过使用例如相邻的术语等),否则序数并不用来指示所述组件之间的特定排序及/或关系。

共享i/o线(例如,如以155所展示且结合图1d到1f及本文中别处所描述)用作与存储器阵列(例如,如以130所展示且结合图1a及本文中别处所描述)相关联的用于数据移动的数据路径。在一些实施例中,共享i/o线可将感测电路(例如,如以150所展示且结合图1a及本文中别处所描述)及/或其中的感测放大器及/或计算组件(例如,如分别以206及231所展示且结合图2及本文中别处所描述)耦合到存储器中数据交换网络(例如,如以172及372所展示且结合图1a及图3及本文中别处所描述)。在一些实施例中,共享i/o线可将逻辑条中的计算组件(例如,如以431及409所展示且结合图4及本文中别处所描述)耦合到感测电路及/或耦合到共享i/o线的数据路径中的存储器中数据交换网络。与共享i/o线的数据路径相关联的逻辑条的计算组件具有等于数据路径的节距的节距且所述节距依据存储器单元阵列的数字线(例如,如以205所展示且结合图2及本文中别处所描述)的节距而变化。例如,逻辑条的计算组件具有存储器单元阵列的数字线的节距的整数倍的节距。

如本文中所使用,“共享i/o线”旨在表示在数据路径中的阵列本地的i/o线,所述数据路径具有依据存储器单元阵列的节距而变化的节距。共享i/o可经定位在存储器阵列的存储器库(例如,如以121所展示且结合图1d到1f及本文中别处所描述)上且可经多路复用到阵列的多个列(例如,dram阵列的互补数字/感测线)及/或耦合到所述列的感测电路。如本文中所描述,共享i/o线可选择地耦合(例如,如通过控制器140控制及/或引导)到阵列的多个子阵列(例如,如以125及/或126所展示且结合图1b及1c及本文中别处所描述)、计算单元(例如,如以460所展示且结合图4及本文中别处所描述)及/或本文中所描述的存储器中数据交换网络。因为单数形式“一”、“一个”及“所述”在本文中可包含单数及复数参考物两者,所以除非上下文另有明确规定,否则“共享i/o线”可用来指代“一对互补共享i/o线”。此外,“共享i/o线”或“若干共享i/o线”可用作“多个共享i/o线”的缩写。共享i/o不同且相异于与阵列相关联的i/o电路,旨在根据阵列协议(例如ddr4)将数据移动到阵列及从阵列移动数据及/或结合主机(例如,如以110所展示且结合图1a及本文中别处所描述)将数据移入及移出存储器装置(例如,如以120所展示且结合图1a及本文中别处所描述)。

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

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

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

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

如本文中所使用,例如“x”、“y”、“z”、“n”、“m”等的指定符(尤其关于附图中的参考数字)指示可包含如此指定的数个特定特征。还应理解,本文中所使用的术语仅出于描述特定实施例的目的,且并非旨在限制性。如本文中所使用,除非上下文另有明确规定,否则单数形式“一”、“一个”及“所述”可包含单数及复数参考物两者。此外,“数个”、“至少一个”及“一或多个”(例如,数个存储器阵列)可指一或多个存储器阵列,而“多个”旨在指代一个以上此类事物。此外,贯穿本申请案在许可意义上(即,在本文中所描述的至少一些实施例中有可能及/或能够)而非在强制意义上(即,必须)使用单词“可(can及may)”。术语“包含”及其衍生词表示“包含但不限于”。如视上下文而定,术语“耦合(couple、coupled及coupling)”表示直接或间接物理连接或命令及/或数据的存取及移动(传输)。如视上下文而定,术语“数据”及“数据值”在本文中可互换使用且可具有相同含义。

本文中的图遵循编号惯例,其中首位数字或前几位数字对应于图号且剩余数字标识图中的元件或组件。可通过使用类似数字标识不同图之间的类似元件或组件。例如,108可指代图1a中的元件“08”,且类似元件可在图2中指代为208。如将明白,可添加、交换及/或消除本文中的各个实施例中所展示的元件,以便提供本发明的数个额外实施例。另外,图中所提供的元件的比例及/或相对标度旨在说明本发明的某些实施例且不应被视作限制意义。

图1a是根据本发明的数个实施例的呈包含存储器装置120(其包含存储器阵列130)的计算系统100的形式的设备的框图。如本文中所使用,存储器装置120、控制器140、交换组件171、存储器阵列130、感测电路150及/或存储器中数据交换网络172还可被单独视作“设备”。

如本文中所使用,在一些实施例中,额外“锁存器”可旨在表示感测、耦合、存储及/或移动(例如,读取、存储、高速缓冲存储)阵列中的存储器单元的数据值且相异于与图3到4及6到7中所展示的多个共享i/o线455的数据路径中的计算单元460中的多个计算组件431-1、…、431-z及/或逻辑条409-1、…、409-n相关联的锁存器(例如,如以706所展示且结合图7及本文中别处所描述)的额外功能性(例如,放大器、存储器单元、选择逻辑)。例如,在一些实施例中,锁存器可与交换节点相关联(例如,图9a中所展示且结合图9a及本文中别处所描述的交换节点966的锁存器970)。阵列本地的多个共享i/o线155的数据路径中的逻辑条(例如,如以109-0、…、109-n-1所展示且结合图1f及本文中别处所描述)可与存储器库121-1中的存储器单元的各种存储器库区段123-1、…、123-n相关联。存储器库121-1可为存储器装置120上的多个存储器库中的一者。

图1a中的系统100包含耦合(例如,连接)到存储器装置120的主机110。主机110可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、智能电话或存储卡读取器以及各种其它类型的主机。主机110可包含系统主板及/或底板且可包含数个处理资源(例如,一或多个处理器、微处理器或某个它类型的控制电路)。系统100可包含单独集成电路,或主机110及存储器装置120两者可在相同集成电路上。系统100可为例如服务器系统及/或高性能计算(hpc)系统及/或其部分。尽管图1a中所展示的实例说明具有冯·诺伊曼架构的系统,但本发明的实施例还可在非冯·诺伊曼架构中实施,其可不包含通常与冯·诺伊曼架构相关联的一或多个组件(例如,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输出数据及/或将数据输入到控制器140及/或主机110)。在写入操作期间,可将电压(高=1、低=0)施加到dq(例如,接脚)。这个电压可转变成适当信号且通过选定存储器单元存储。在读取操作期间,一旦完成存取,从选定存储器单元读取的数据值便可出现在dq处且(例如,通过输出启用信号为低)启用输出。在其它时间,dq可处于高阻抗状态,使得dq未流出或汲入电流且未向系统呈现信号。当两个或两个以上装置(例如,存储器库)共享经组合数据总线时,这还可减少dq竞争,如本文中所描述。此类dq是单独的且相异于阵列130本地的数据路径中的多个共享i/o线155(图1b及1c中)。

状态及异常信息可例如通过带外(oob)总线157(例如,高速接口(hsi))从存储器装置120的控制器140提供到信道控制器143,其又可从信道控制器143提供到主机110。信道控制器143可包含逻辑组件以将多个位置(例如,针对子阵列的控制器)分配在每一相应存储器库的阵列中以存储与多个存储器装置120中的每一者的操作相关联的各种存储器库的存储器库命令、应用指令(例如,针对操作序列)及自变量(pim命令)。信道控制器143可将命令(例如,pim命令)分派给多个存储器装置120以将所述程序指令存储在存储器装置120的给定存储器库121(图1d到1f的存储器库121及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、加法、减法、乘法、除法等)以及其它功能性。

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

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

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

相比来说,本文中的实施例在阵列本地的数据路径中的计算单元中对经由多个共享i/o线155从阵列的行及/或子行移动到多个计算组件431-1、…、431-z及/或逻辑条109-0、…、109-n-1的数据值执行计算功能。另外,感测电路150可经配置以对通过存储器阵列130存储的数据执行运算且在未启用耦合到感测电路150的i/o线(例如,局部i/o线)的情况下将结果存储回到存储器阵列130。然而,一旦经加载,随即可在计算单元中更快地(例如,以2ns的速度)(相比于触发阵列中的行所要的实例时间(例如,60ns))控制计算操作而无需将数据值移动回到行及/或子行中。感测电路150可经形成在与阵列的存储器单元的节距上。与多个共享i/o线155的数据路径相关联的多个计算组件431-1、…、431-z及/或逻辑条109-0、…、109-n-1可具有等于数据路径的节距的节距且所述节距依据存储器单元阵列的数字线的节距而变化。

例如,本文中所描述的感测电路150可经形成在与一对互补感测线(例如,数字线)相同的节距上。作为实例,一对互补存储器单元可具有拥有6f2节距(例如,3fx2f)的单元大小,其中f是特征大小。如果所述互补存储器单元的一对互补感测线的节距是3f,那么感测电路在节距上指示所述感测电路(例如,每对相应互补感测线感测放大器及/或对应计算组件)经形成以装配在所述互补感测线的3f节距内。同样地,与多个共享i/o线155的数据路径相关联的逻辑条109-0、…、109-n-1的计算组件431-1、…、431-z具有依据所述互补感测线的3f节距而变化的节距。例如,逻辑条109-0、…、109-n-1的计算组件431-1、…、431-z可具有是存储器单元阵列的数字线的3f节距的整数倍的节距,所述节距还可对应于多个共享i/o线155的节距。

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

因而,在数个实施例中,不需要阵列130及感测电路150外部的电路来执行计算功能,因为感测电路150可在不使用外部处理资源的情况下执行适当操作以执行此类计算功能或可在阵列本地的多个共享i/o线的数据路径中执行此类操作。因此,感测电路150及/或多个共享i/o线155的数据路径中的计算单元中的多个计算组件431-1、…、431-z及/或逻辑条109-0、…、109-n-1可用来至少在一定程度上补充或取代此外部处理资源(或此外部处理资源的至少带宽消耗)。在一些实施例中,感测电路150及/或多个共享i/o线155的数据路径中的计算单元中的多个计算组件431-1、…、431-z及/或逻辑条109-0、…、109-n-1可用来执行除通过外部处理资源(例如,主机110)执行的操作以外的操作(例如,执行指令)。例如,主机110及/或感测电路150可限于仅执行特定操作及/或特定数目个操作。

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

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

然而,可启用多个共享i/o线155以便将数据值加载到多个共享i/o线155的数据路径中的计算单元中的多个计算组件431-1、…、431-z及/或逻辑条109-0、…、109-n-1,其中可更快地控制计算操作。例如,在计算单元中的多个计算组件431-1、…、431-z及/或109-0、…、109-n-1中,可以2ns的速度执行计算操作。这个速度增强可归因于无须凭借用于触发阵列中的行的相关联时间(例如,60ns)将数据值移动回到行及/或子行中。

替代地或另外,可启用多个共享i/o线155以便将数据值加载到存储器中数据交换网络172。本文中描述数据交换网络的各个实施例。在一些实施例中,数据交换网络(例如,如以372所展示且结合图3所描述)可(例如,物理上)定位在具有存储器单元阵列(例如,包含如以125及/或126所展示且结合图1b及1c及本文中别处所描述的子阵列)的芯片上,数据交换网络可通过共享i/o线可选择地耦合到所述存储器单元阵列。如本文中所描述,位于具有其它事物的芯片上旨在表示形成在与对应子阵列中的存储器单元相同的芯片上。因而,在各个实施例中,数据交换网络可经形成在阵列附近及/或经形成为与阵列的控制器140相关联或经形成为阵列的控制器140的部分。在一些实施例中,数据交换网络(例如,如以472所展示且结合图4所描述)可经形成在与阵列(例如,子阵列425-1、…、425-32)的节距上及/或具有阵列的芯片上,且可为计算单元460的部分(例如,数据交换网络的层级可对应于计算单元460的一些或全部逻辑条409-1、…、409-n)。

图1b及1c是根据本发明的数个实施例的存储器装置的存储器库区段的框图。图1b是存储器装置的存储器库区段123的框图。例如,存储器库区段123可表示存储器装置的存储器库的数个存储器库区段(例如,存储器库区段0、存储器库区段1、…、存储器库区段m)的实例区段。如图1b中所展示,存储器库架构可包含多个存储器列122(水平地展示为x)(例如,在实例dram存储器库及存储器库区段中的16,384个列)。另外,存储器库区段123可划分成分别以125-0、125-1、…、125-n-1展示的子阵列0、子阵列1、…、及子阵列n-1(例如,128个子阵列),所述子阵列通过经配置以耦合到数据路径(例如,本文中所描述的共享i/o线)的放大区域而分离。因而,子阵列125-0、125-1、…、125-n-1可各自具有分别对应于感测组件条0、感测组件条1、…、及感测组件条n-1的展示为124-0、124-1、…、124-n-1的放大区域。

每一列122经配置以耦合到感测电路150,如结合图1a及本文中别处所描述。因而,子阵列中的每一列可个别地耦合到促成所述子阵列的感测组件条的感测放大器及计算组件。例如,如图1b中所展示,存储器库架构可包含各自具有拥有感测放大器及计算组件的感测电路150的感测组件条0、感测组件条1、…、感测组件条n-1,在各个实施例中所述感测放大器及计算组件可用作寄存器、高速缓冲存储器及数据缓冲区且耦合到子阵列125-0、125-1、…、125-n-1中的每一列122。

子阵列125-0、125-1、…、125-n-1中的每一者可包含多个行119(垂直地展示为y)(例如,在实例dram存储器库中,每一子阵列可包含512个行)。在一些实施例中,子阵列中的一或多者(例如,所有子阵列)中的行的数目可基本上相等(例如,全部具有128个行、256个行、512个行以及其它可能性)。例如,多个子阵列中的每一子阵列在列中可包含基本上等于相邻子阵列的列中的存储器单元的数目的数目的存储器单元(例如,全部具有128个、256个、512个存储器单元以及其它可能性)及/或每一子阵列的感测线可具有基本上等于相邻子阵列(例如,阵列中的所有子阵列)的列的感测线的长度的长度。实施例不限于本文中所描述的列及行的实例水平及垂直定向或列及行的实例数目。

如图1b中所展示,存储器库架构可与控制器140相关联。在各个实例中,图1b中所展示的控制器140可表示通过图1a中所展示的控制器140体现且在控制器140中所含有的功能性的至少部分。如结合图1a及本文中别处所描述,控制器可包含用于控制存储器中数据交换网络172的交换组件171。除本文中所描述的功能性外,控制器140可引导(例如,控制)基于命令及数据141将控制信号输入到存储器库架构及从存储器库架构输出数据(例如,到主机110)且控制存储器库架构中的数据移动,如本文中所描述。存储器库架构可包含dramdq的数据总线156(例如,64位宽数据总线),数据总线156可对应于结合图1a所描述的数据总线156。

图1c是根据本发明的数个实施例的存储器装置的存储器库区段123的框图。存储器库区段123可表示存储器装置的存储器库的数个存储器库区段(例如,存储器库区段0、存储器库区段1、…、存储器库区段m)的实例区段。如图1c中所展示,存储器库区段123可包含多个存储器列122(水平地展示为x)(例如,在实例dram存储器库及存储器库区段中的16,384个列)。另外,存储器库区段123可划分成在相同存储器库区段中如以125-0及125-1展示为两个短数字线(例如,高速缓冲存储器)子阵列的实例以及以126-0、…、126-n-1展示为数个长数字线(例如,存储装置)子阵列的实例的子阵列0、子阵列1、…、及子阵列n-1(例如,32个、64个、128个或各种奇数数目个子阵列)。图1c中所说明的实施例的配置(例如,短数字线子阵列及长数字线子阵列的数目及/或定位)仅为清楚起见而展示且不限于这些配置。

短数字线子阵列及长数字线子阵列分别通过经配置以耦合到数据路径(例如,本文中所描述的共享i/o线)的放大区域而分离。因而,短数字线子阵列125-0及125-1与长数字线子阵列126-0、…、126-n-1可各自具有分别对应于感测组件条0、感测组件条1、…、及感测组件条n-1的放大区域124-0、124-1、…、124-n-1。

每一列122可经配置以耦合到感测电路150,如结合图1a及本文中别处所描述。因而,子阵列中的每一列可个别地耦合到促成所述子阵列的感测组件条的感测放大器及/或计算组件中的至少一者。例如,如图1c中所展示,存储器库区段123可包含各自具有拥有至少感测放大器的感测电路150的感测组件条0、感测组件条1、…、感测组件条n-1,在各个实施例中所述感测放大器可用作寄存器、高速缓冲存储器及数据缓冲区等且耦合到子阵列125-0及125-1及126-0、…、126-n-1中的每一列122。

在一些实施例中,计算组件可经耦合到每一相应感测组件条(其经耦合到短数字线子阵列)中(例如,在分别耦合到短数字线子阵列125-0及125-1的感测组件条124-0及124-1中)的感测电路150内的每一感测放大器。然而,实施例不限于此。例如,在一些实施例中,感测放大器的数目与计算组件的数目之间可能不存在1:1相关性(例如,每个计算组件可存在一个以上感测放大器或每个感测放大器可存在一个以上计算组件,这可在子阵列、分区、存储器库等之间改变)。

短数字线子阵列125-0及125-1中的每一者可包含多个行119(垂直地展示为y)(例如,在实例dram存储器库中,每一子阵列可包含512个行)。长数字线子阵列126-0、…、126-n-1中的每一者可包含多个行118(垂直地展示为z)(例如,在实例dram存储器库中,每一子阵列可包含1024个行)。因而,在各个实施例中,子阵列中的一或多者(例如,所有子阵列)中的行的数目可不同于其它子阵列中的行的数目。例如,在一些实施例中,第一子集的子阵列(例如,短数字线子阵列)的列中的存储器单元的数目可至多为第二子集的子阵列(例如,长数字线子阵列)的列中的存储器单元的数目的一半,及/或第一子集的子阵列的数字线(感测线)可具有至多为第二子集的子阵列的数字线的长度的一半的长度。实施例不限于本文中所描述的列及行的实例水平及垂直定向或列及行的实例数目。

pimdram架构的实施方案可在感测放大器及计算组件层级处(例如,在感测组件条中)执行处理。pimdram架构的实施方案可允许有限数目个存储器单元(例如,大约1k或1024个存储器单元)连接到每一感测放大器。感测组件条可包含从大约8k到大约16k个感测放大器。例如,用于长数字线子阵列的感测组件条可包含16k个感测放大器且可经配置以耦合到1k个行及大约16k个列的阵列,其中在所述行及列的每一交叉点处具有存储器单元以便每列产生1k(1024)个存储器单元。相比之下,用于短数字线子阵列的感测组件条可包含16k个感测放大器及计算组件且可经配置以耦合到例如具有至多为长数字线子阵列的1k个行的一半的阵列以便每列产生512个存储器单元。在一些实施例中,相应感测组件条中的感测放大器及/或计算组件的数目(例如,对应于行中的存储器单元的数目)可在至少一些短数字线子阵列之间改变(相比于长数字线子阵列)。

刚刚提出的行数目、列数目及每列的存储器单元数目及/或长数字线子阵列及短数字线子阵列中的列之间的存储器单元数目的比仅以实例且非限制的方式提供。例如,长数字线子阵列可具有各自具有相应1024个存储器单元的列且短数字线子阵列可具有各自具有相应512个、256个或128个存储器单元的列,以及小于512的其它可能数目。在各个实施例中,长数字线子阵列可具有每列少于或多于1024个存储器单元,其中短数字线子阵列中每列的存储器单元的数目如刚刚所描述那样配置。替代地或另外,高速缓冲存储器子阵列可经形成为具有小于、等于或大于长数字线子阵列(存储子阵列)的数字线长度的数字线长度使得高速缓冲存储器子阵列并非刚刚所描述的短数字线子阵列。例如,与存储子阵列的配置相比,高速缓冲存储器子阵列的数字线及/或存储器单元的配置可提供更快计算(例如,2t2c代替1t1c、sram代替dram等)。

因此,高速缓冲存储器子阵列中的存储器单元的行的数目及/或每个数字线的存储器单元的对应数目可小于、等于或大于存储子阵列中的存储器单元的行的数目及/或存储子阵列的每个数字线的存储器单元的对应数目。在一些实施例中,长数字线子阵列的行中的存储器单元的数目可不同于短数字线子阵列的行中的存储器单元的数目。例如,经配置为2t2c的短数字线子阵列的存储器单元的宽度可近似为经配置为1t1c的长数字线子阵列的存储器单元的两倍,这是因为2t2c存储器单元具有两个晶体管及两个电容器而1t1c存储器单元具有一个晶体管及一个电容器。为在芯片及/或存储器库架构上集成这两种配置的子阵列的宽度,可调整行中的存储器单元的数目(例如,使得短数字线子阵列可例如具有长数字线子阵列的行中的存储器单元的大约一半。控制器可具有用以适应在这两种配置的子阵列之间移动数据值的指令或通过所述指令引导。

在一些实施例中,长数字线子阵列126-n-1可为128个子阵列中的子阵列32且可为子阵列的四个分区中的第一分区中的在第一方向上的最后子阵列,如本文中所描述。隔离条(未展示)可包含经配置以可选择地(例如,如通过控制器140引导)连接及断开选定共享i/o线的部分的数个隔离晶体管。可选择地启用(例如,激活及取消激活)隔离晶体管连接及断开数据值经由共享i/o线在分区之间往返于感测放大器及/或计算组件(例如,在感测组件条中,如本文中所描述)的移动。

因而,多个子阵列125-0及125-1及126-0、…、126-n-1、多个感测组件条124-0、124-1、…、124-n-1及隔离条可被视作单个分区128。然而,在一些实施例中,取决于数据移动的方向,单个隔离条可由两个相邻分区共享。

如图1c中所展示,存储器库区段123可与控制器140相关联。在各个实例中,图1c中所展示的控制器140可表示通过图1a及1b中所展示的控制器140体现且在控制器140中所含有的功能性的至少部分。控制器140可引导(例如,控制)将命令及/或数据141输入到存储器库区段123及从存储器库区段123输出数据(例如,到主机110)且控制存储器库区段123中的数据移动,如本文中所描述。存储器库区段123可包含dramdq的数据总线156(例如,64位宽数据总线),数据总线156可对应于结合图1a及1b所描述的数据总线156。控制器140(例如,响应于命令)可被委派负责引导对本文中所描述的存储器中操作中的数据值执行的移动及/或操作(例如,经由交换组件171控制数据交换网络172)。

图1d及1e是根据本发明的数个实施例的分别对应于图1b及1c的存储器装置的存储器库的框图。图1d是根据本发明的数个实施例的存储器装置的存储器库121的框图。例如,存储器库121可表示存储器装置的实例存储器库(例如,存储器库0、存储器库1、…、存储器库m)。如图1d中所展示,存储器库架构可包含耦合到控制器140的地址/控制(a/c)路径153(例如,总线)。而且,在各个实例中,图1d中所展示的控制器140可表示通过图1a到1c中所展示的控制器140体现且在控制器140中所含有的功能性的至少部分。

如图1d中所展示,存储器库架构可包含特定存储器库121中的多个存储器库区段(例如,存储器库区段123)。如图1d中进一步展示,存储器库区段123可细分成分别通过如图1b中所展示的感测组件条124-0、124-1、…、124-n-1分离的多个子阵列(例如,以125-1、125-2、…、125-n-1展示的子阵列0、子阵列1、…、子阵列n-1),所述感测组件条包含感测电路150及逻辑电路,如图1a中所展示且结合图2到9进一步描述。

如本文中所描述,i/o线155可经由耦合到子阵列中的每一者的感测组件条而由存储器单元的多个分区、子阵列、行、特定列及/或存储器中数据交换网络可选择地共享。例如,数个列的可选择子集(例如,总数目个列的八个列子集)中的每一者的感测放大器及/或计算组件可选择地耦合到多个共享i/o线中的每一者以使存储(高速缓冲存储)在感测组件条中的数据值移动(例如,传送、输送及/或馈送)到多个共享i/o线中的每一者。

如图1d中示意性地展示,存储器库121的架构及所述存储器库的每一区段123可包含经配置以耦合到存储器库区段123及多个存储器库(未展示)的存储器单元的多个子阵列125-0、125-1、…、125-n-1的多个共享i/o线155(例如,数据路径、总线)。共享i/o线155可经由图1b中所展示的通过124-0、124-1、…、124-n-1表示的感测组件条可选择地耦合在存储器单元的子阵列、行、特定列及/或存储器中数据交换网络之间。如所述,感测组件条124-0、124-1、…、124-n-1各自包含具有经配置以耦合到每一子阵列中的存储器单元的每一行的感测放大器及计算组件的感测电路150,如图1a中所展示且结合图2到9进一步描述。

可利用共享i/o线155以增大pim阵列中(例如,在子阵列及/或存储器中数据交换网络之间)的数据移动的速度、速率及/或效率。在至少一个实施例中,使用共享i/o线155通过提供至少一千位宽而提供经改善数据路径。在一个实施例中,2048个共享i/o线经耦合到16,384个列以提供2048位宽。所说明的共享i/o线155可经形成在与阵列的存储器单元的节距上。

在一些实施例中,控制器140可经配置以经由共享i/o线155凭借控制及数据寄存器151及/或指令读取路径161将指令(基于命令的控制信号)及数据提供到存储器阵列130中的特定存储器库121的多个位置、到感测组件条124-0、124-1、…、124-n-1及/或到存储器中数据交换网络172。例如,控制及数据寄存器151及/或指令读取路径161可提供待通过使用感测组件条124-0、124-1、…、124-n-1中的感测电路150的感测放大器及计算组件执行的指令。图1d说明与控制器140相关联且耦合到存储器库121中的子阵列125-0、…、125-n-1中的每一者及/或数据交换网络172的写入路径149的交换组件171。

pimdram架构的实施方案可在感测放大器及计算组件层级处执行处理。pimdram架构的实施方案可允许仅有限数目个存储器单元(例如,大约512个存储器单元)连接到每一感测放大器。感测组件条124可包含从大约8,000个到大约16,000个感测放大器。例如,感测组件条124可经配置以耦合到512个行及大约16,000个列的阵列。感测组件条可用作建置块以构建较大存储器。在存储器装置阵列中,可存在对应于128个子阵列的128个感测组件条,如本文中所描述。因此,512个列乘以218个感测组件条将产生大约66,000个行乘以大约16,000个列以形成大约1千兆位的dram。

因而,当在感测放大器层级处处理时,仅存储器单元的512个行可用于互相执行逻辑函数且无法对其中数据经耦合到不同感测组件条的多个行容易地执行逻辑函数。为完成耦合到不同感测组件条的不同子阵列中的数据的处理,将所有待处理数据移动到相同子阵列中以便耦合到相同感测组件条。

然而,尚未利用dram实施方案以将数据从一个感测组件条移动到另一感测组件条及/或从存储器阵列及/或感测组件条移动到存储器中数据交换网络(例如,蝴蝶式网络,仅以说明且非限制方式)。如所提及,感测组件条可含有对应于大约16,000个列或将从每一行存储(例如,高速缓冲存储)的数据的大约16,000个数据值(例如,位)的多达16,000个感测放大器。dramdq数据总线(例如,如以图1a到1c中的156所展示)可经配置为64位部分。因而,使用dramdq数据总线将来自16,000位行的全部数据从一个感测组件条传送(移动)到另一感测组件条将花费例如256个循环(例如,16,000除以64)。

为在pimdram实施方案中实现以高速度、速率及效率进行从一个感测组件条到另一感测组件条及/或到数据交换网络172的数据移动,本文中描述共享i/o线155。例如,运用经配置为2048位宽共享i/o线155的2048个共享i/o线,如刚刚所描述的从全行的数据移动将花费8个循环,在数据移动的速度、速率及效率上增大32倍。因而,相比于其它pimdram实施方案(例如,相对于64位宽数据路径),利用本发明中所描述的结构及过程节省数据移动的时间。在各个实施例中,可例如通过无须从一个存储器库、存储器库区段及其子阵列读出数据、存储数据且接着将数据写入另一位置中及/或通过减少数据移动的循环数目而节省时间。

因此,例如,如结合图1a、1b及1d所展示及描述,存储器装置120可包含存储器单元阵列及可选择地耦合到存储器单元阵列的感测电路,其中i/o线155经共享为与所述阵列相关联的用于存储器中数据交换的数据路径。存储器装置120可包含可选择地耦合到相应共享i/o线155的存储器中数据交换网络(例如,如分别以172及372所展示且结合图1a及图3所描述)。存储器装置120可进一步包含经配置(例如,经由交换组件171)以耦合到存储器中数据交换网络且引导交换协议的启用的控制器140,如本文中所描述。

在一些实施例中,存储器中数据交换网络可选择地耦合到阵列(例如,在分别以125-0、125-1、…、125-n-1及以325展示且结合图1b及图3所描述的子阵列中)的对应存储器单元的感测线(例如,分别以205及305所展示且结合图2及图3所描述的数字线)及共享i/o线(例如,如分别以155及355所展示且结合图1b及图3所描述)。在一些实施例中,存储器中数据交换网络可选择地耦合到感测电路(例如,如分别以150及350所展示且结合图1a及图3所描述)及共享i/o线。如本文中所描述,感测电路可经形成在与阵列的对应存储器单元的互补感测线的节距上。感测电路可包含可选择地耦合到感测线的感测放大器(例如,如以206及306所展示且结合图2及3及本文中别处所描述)。

图1e是根据本发明的数个实施例的存储器装置的存储器库121的框图。存储器库121可表示存储器装置的实例存储器库(例如,存储器库0、存储器库1、…、存储器库m-1)。如图1c中所展示,存储器库121可包含耦合到控制器140的a/c路径153(例如,总线)。而且,在各个实例中,图1e中所展示的控制器140可表示由图1a到1d中所展示的控制器140体现且在控制器140中所含有的功能性的至少部分。

如图1e中所展示,存储器库121可包含多个存储器库区段(例如,存储器库区段123)。如图1e中进一步展示,存储器库区段123可细分成多个子阵列(例如,短数字线子阵列的以125-0、125-1及125-3展示及长数字线子阵列的以126-0、126-1、…、126-n-1展示的子阵列0、子阵列1…、子阵列n-1)。图1e中所说明的短数字线子阵列及长数字线子阵列的数目及/或定位的配置是为清楚目的而展示且不限于这些配置。尽管存储器库区段123可如所展示那样配置为短数字线子阵列125-0位于长数字线子阵列126-0的顶部上,接着另一短数字线子阵列125-1位于另一长数字线子阵列126-1的顶部上(其中总共四个子阵列以1:1比均匀地散布(例如,在分区128-0中)),但短数字线子阵列及/或长数字线子阵列的其它数目及/或比也是可能的。例如,任何可行数目个短数字线子阵列及/或长数字线子阵列可以确定为适于短数字线子阵列对长数字线子阵列的特定实施方案(例如,具有1:1、1:2、1:4、1:8等比)(其中一或多个短数字线子阵列的每一分组经定位在一或多个长数字线子阵列的群组附近)的任何排序布置以及其它配置而包含在存储器库区段123及/或其分区128中。因此,在一些实施例中,一个以上短数字线子阵列可彼此相邻地连续定位及/或一个以上长数字线子阵列可彼此相邻地连续定位。

短数字线子阵列的以125-0、125-1及125-3展示及长数字线子阵列的以126-0、126-1、…、126-n-1展示的多个子阵列可各自耦合到感测组件条124-0、124-1、…、124-n-1及/或通过所述感测组件条分离,所述感测组件条可包含感测电路150及逻辑电路(例如,如以713所展示且结合图7所描述)。如所述,感测组件条124-0、124-1、…、124-n-1各自包含具有经配置以耦合到每一子阵列中的存储器单元的每一列的至少感测放大器的感测电路150,如图2中所展示且结合图3到9进一步描述。子阵列及相关联感测组件条可划分成共享i/o线155的数个分区(例如,128-0、128-1、…、128-m-1),如本文中进一步描述。

如图1e中示意性地展示,存储器库121及所述存储器库的每一区段123可包含作为数据路径(例如,总线)耦合到指令及/或数据(例如,程序指令(pim命令))读取路径161中的多个控制/数据寄存器151且耦合到多个存储器库区段(例如,特定存储器库121中的存储器库区段123)的共享i/o线155。控制器140可经配置以接收命令以在给定存储器库(例如,存储器库121-1)中开始执行操作。控制器140可经配置以(例如,使用耦合到控制及数据寄存器151的共享i/o线155)从特定存储器库的多个位置检索指令及/或常量数据且使用感测电路150的计算组件执行操作。控制器140可高速缓冲存储特定存储器库本地的经检索指令及/或常量数据(例如,在交换组件171及/或逻辑电路713中)。

如本文中所描述,i/o线可经由耦合到子阵列中的每一者的感测组件条而由存储器单元的多个分区、子阵列、行、特定列及/或数据交换网络172可选择地共享。例如,数个列的可选择子集(例如,总数目个列的八个列子集)中的每一者的感测放大器及/或计算组件可选择地耦合到多个共享i/o线中的每一者以使存储(高速缓冲存储)在感测组件条中的数据值移动(例如,传送、输送及/或馈送)到多个共享i/o线中的每一者。

在一些实施例中,控制器140可经配置以通过经由耦合到控制及数据寄存器151的共享i/o线155提供指令(命令)及数据到存储器阵列130中的特定存储器库121的多个位置及到感测组件条124-0、124-1、…、124-n-1而进行引导。例如,控制及数据寄存器151可中继待由感测组件条124-0、124-1、…、124-n-1中的感测电路150的感测放大器及/或计算组件执行的指令。例如,图1e将控制器140说明为与交换组件171相关联且经由写入路径149耦合到存储器库121中的短数字线子阵列125-0、125-1及125-3、长数字线子阵列126-0、126-1、…、126-n-1及/或感测组件条124-0、124-1、…、124-n-1中的每一者及/或数据交换网络172。

然而,本文中所描述的共享i/o线155及/或连接电路232可经配置(例如,经形成及/或经启用)以将执行单个操作或多个循序操作的结果移动到合适位置而非移动回到存储器阵列130的子阵列的第一子集125及/或第二子集126。例如,在各个实施例中,结果数据值可经由共享i/o线155及/或连接电路232移动到外部寄存器。此类外部寄存器的实施例可包含与存储器装置120的存储器库121的控制器140相关联(例如,可选择地耦合到控制器140)的数个存储器库寄存器(未展示)及/或与主机110相关联的寄存器(未展示)(例如,其可通过i/o电路144经由数据总线156直接存取及/或通过带外总线157经由控制器140间接存取)。此外,可输入通过特定长数字线存储子阵列及/或特定短数字线高速缓冲存储器子阵列存储及/或处理的数据值及/或命令。所述输入可例如使用来自主机cpu的数据传送协议(例如ddr4等)通过i/o电路144经由数据总线156直接执行及/或通过控制总线154经由控制器140间接执行。

如结合图1c所描述,多个子阵列(例如,通过图1c中的实例所展示的四个子阵列125-0、125-1、126-0及126-1)及其相应感测组件条可构成第一分区128-0。隔离条(未展示)可经定位在子阵列3(126-1)与子阵列4(125-2)之间使得子阵列126-1是第一分区128-0在第一方向上(例如,在图1e的背景中向下)的最后子阵列,且子阵列125-2是第二分区128-1中在第一方向上的第一子阵列。数个子阵列及其相应感测组件条可在第一方向上进一步延伸直到第二隔离条(未展示)经定位在第二分区128-1与第三分区128-m-1的第一子阵列126-n-1之间。如先前所指示,子阵列可以任何顺序布置在每一存储器库区段123及/或分区128中使得例如短数字线子阵列125-0及125-2可分别为分区128-0及128-1中的第一子阵列,而长数字线子阵列126-n-1可为分区128-m-1中的第一子阵列,以及其它可能配置。

然而,实施例不限于此。例如,在各个实施例中,在存储器库区段123中可存在可通过隔离条分离成任何数目个分区(例如,只要在各种分区中存在至少一个短数字线子阵列与至少一个长数字线子阵列的组合)的任何数目个短数字线子阵列125及任何数目个长数字线子阵列126。在各个实施例中,取决于实施方案,分区可各自包含相同数目或不同数目个短数字线子阵列及/或长数字线子阵列、感测组件条等。

因此,例如,如结合图1a、1c及1e所展示及描述,存储器装置120可包含存储器单元阵列及可选择地耦合到存储器单元阵列的感测电路,所述感测电路包含感测放大器(例如,至少感测放大器)。存储器装置120可包含可选择地共享为与所述阵列相关联的用于存储器中数据交换及将数据值从所述阵列中的源位置移动到目的地位置的数据路径的多个i/o线155。在各个实施例中,源位置可为阵列中的第一子阵列或可在第一子阵列中且目的地位置可为阵列中的第二子阵列或可在第二子阵列中(例如,以125-0及125-1及126-0、…、126-n-1所展示且结合图1c所描述的子阵列中的任一者)。

存储器装置120可包含存储器中数据交换网络(例如,如分别以172及372所展示且结合图1a及图3所描述)。存储器装置120可进一步包含控制器140,控制器140经配置以将相应多个共享i/o线可选择地耦合到存储器中数据交换网络且引导(例如,经由交换组件171)存储器中数据交换网络的交换协议的启用(如本文中所描述)。在一些实施例中,所述控制器可经配置以可选择地启用多个交换协议。经启用交换协议可执行数个交换操作以将经由多个共享i/o线移动的数据值的序列中的数据值的位置从阵列交换到存储器中数据交换网络。

存储器装置120可经配置以使用耦合到相应多个共享i/o线的多个第一感测放大器从源位置移动多个数据值且使用耦合到多个共享i/o线的多个第二感测放大器将多个数据值移动到目的地位置。在一些实施例中,存储器装置120可进一步经配置以经由可选择地耦合到相应多个共享i/o线155的多个感测放大器将多个数据值移动到存储器中数据交换网络。在一些实施例中,存储器装置120可进一步经配置以经由可选择地耦合到相应多个共享i/o线155的多个感测线(例如,分别以205及305所展示且结合图2及图3所描述的数字线)将多个数据值移动到存储器中数据交换网络。

如本文中所描述,存储器中数据交换网络可包含各自具有多个交换节点的多个层级。数据交换网络472的所述多个层级是以409-0、…、409-n-1所展示且结合图4所描述。替代地或另外,数据交换网络972-1及972-2的多个层级是以967-0、…、967-n-1展示且结合图9a及图9b描述。在各个实施例中,交换节点(例如,如以966所展示且结合图9a所描述)可包含数个锁存器及数个交换器(例如,如分别以970及963所展示且结合图9a所描述)。在一些实施例中,每个层级的多个交换节点(例如,如以966-0、…、966-m-1所展示且结合图9a及图9b所描述)的数目可对应于耦合到阵列的多个感测放大器的数目。

在各个实施例中,交换节点的数目可与耦合到阵列的感测放大器的数目相同,或交换节点的数目可为感测放大器的数目的整数倍或分率(例如,八分之一、十六分之一等)(例如,经由运用图3中所展示且结合图3所描述的列选择电路358-1及358-2多路复用,以及其它可能性)。例如,在一些实施例中,存储器装置120可包含耦合到存储器单元阵列的对应多个列的多个感测放大器及经配置以选择感测放大器以耦合到共享i/o线以将数据值移动到存储器中数据交换网络的多路复用器。替代地或另外,在一些实施例中,存储器装置120可包含存储器单元阵列的多个列及包含列选择电路的多路复用器。多路复用器可经配置以选择列的存储器单元以耦合到共享i/o线以将数据值移动到存储器中数据交换网络。

在各个实施例中,存储器装置120可包含存储器单元的多个子阵列(例如,如以125-0、125-1…、125-n-1所展示且结合图1b所描述)。感测电路可经由存储器单元的多个列(例如,如以122所展示且结合图1b及1c所描述及以322-0所展示且结合图3所描述)耦合到多个子阵列。此感测电路可包含耦合到多个列中的每一者的感测放大器及计算组件(例如,如分别以231及331所展示且结合图2及图3所描述)。在一些实施例中,此存储器装置的相应多个子阵列的每一子阵列在列中可包含基本上等于相邻子阵列的列中的存储器单元的数目的数目的存储器单元(例如,与所有子阵列中相同)。

在各个实施例中,存储器装置120可包含存储器单元的多个子阵列的第一子集(例如,以125-0及125-1所展示且结合图1c及图1e所描述的短数字线子阵列)。在各个实施例中,存储器装置120可进一步包含相应多个子阵列的第二子集(例如,展示为126-0、…、126-n-1且结合图1c及图1e所描述的长数字线子阵列)。感测电路可选择地耦合到第一子集及第二子集。感测电路可包含耦合到第一子集(短数字线子阵列)的相应感测线的感测放大器及计算组件,及耦合到第二子集(长数字线子阵列)的相应感测线的感测放大器(无计算组件)。在一些实施例中,第一子集的子阵列的列中的存储器单元的数目可至多为第二子集的子阵列的列中的存储器单元的数目的一半。

在各个实施例中,存储器装置120可包含感测组件条(例如,如以124-0、…、124-n-1所展示且结合图1b到1e所描述),所述感测组件条可包含对应于子阵列中的存储器单元的多个列的数目的数目的多个感测放大器及/或计算组件。所述数目个多个感测放大器及/或计算组件可选择地耦合到相应多个共享i/o线以将对应多个数据值移动到存储器中数据交换网络。

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

在一些实施例中,每一存储器库区段可具有与其相关联的多个共享i/o线155的数据路径中的计算单元460中的多个计算组件431-1、…、431-z及逻辑条109-0、…、109-n-1。在各个实施例中,所述逻辑条还可包含多个交换节点(例如,如以966所展示且结合图9a及9b所描述)。在一些实施例中,多个计算组件的数目可对应于多个计算组件的数目及/或多个共享i/o线的数目。例如,用来将数据值移动到逻辑条中的计算组件的共享i/o线的数目可对应于用于将数据值移动到逻辑条中的交换节点的共享i/o线的数目。在一些实施例中,可使用相同共享i/o线以将数据值可选择地移动到计算组件或交换节点。在一些实施例中,计算组件可与交换节点或其部分相关联。存储器库121-1可包含与每一存储器库区段及/或子阵列相关联的控制器140及/或数个控制器以引导对加载到多个共享i/o线155的数据路径中的计算单元460中的逻辑条109-0、…、109-n-1中的多个计算组件431-1、…、431-z及/或交换节点966-0、966-1、…、966-m-1的数据值的移动(例如,经由共享i/o线155)及/或交换操作(例如,经由交换组件171)。

图2是说明根据本发明的数个实施例的存储器装置120的电路的示意图,所述电路包含在各个实施例中各可包含在感测电路250及/或逻辑条124中的感测放大器206及计算组件231。感测电路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-1digit(d)及205-2digit(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)_通过流出晶体管驱动到供应电压vcc的电压,且另一数字线205-1(d)或205-2(d)_通过汲入晶体管驱动到参考电压的电压(例如,接地)。因此,交叉耦合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还包括各自具有耦合到平衡电压(例如,vdd/2)的第一源极/漏极区域的晶体管225-1及225-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展示包括平衡电路214的感测放大器206,但实施例不限于此,且平衡电路214可与感测放大器206离散地实施,以呈与图2中所展示的配置不同的组态实施,或完全不实施。

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

然而,在本文中所描述的实施例中,具有感测放大器206的感测电路250(其在一些实施例中还可包含如图2中所展示的计算组件231)还可将来自阵列中的存储器单元的经多路复用列的存储器单元耦合到如结合图4所论述的阵列本地的多个共享i/o线455的数据路径中的计算单元460中的计算组件431-1、…、431-z及/或逻辑条409-0、…、409-n-1。以这种方式,计算组件431-1、…、431-z及/或逻辑条409-0、…、409-n-1可经由选择逻辑(结合图3到9所论述)通过多个共享i/o线455间接耦合到列的存储器单元。

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

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

逻辑条409-0、…、409-n-1可对应于本文中所描述的存储器中数据交换网络472。逻辑条(例如,计算单元460中的逻辑条的子集或全部)还可对应于数据交换网络472的层级(例如,如以967-0、967-1、967-n-1所展示且结合图9a及9b所描述)。

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

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

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

在一些实施例中,存储器库中的多个逻辑条(例如,图1f中的109-0、…、109-n-1)的数目可对应于存储器库中的图1b中的存储器库区段123-0、…、123-n-1(例如,具有多个子阵列的象限)的数目。替代地或另外,存储器库中的多个逻辑条的数目可对应于dram阵列的行中的多个子行的数目。逻辑条可包含阵列230本地的共享i/o455(图4)的数据路径中的多个计算组件431-1、…、431-z(图4),其可如同图2中所展示的计算组件231那样配置及/或操作。逻辑条可进一步包含多个交换节点966-0、966-1、…、966-m-1,借此多个逻辑条(例如,图1f中的109-0、…、109-n-1及/或图9a及9b中的967-0、…、967-n-1)可如本文中所描述的存储器中数据交换网络(例如,如以172及472所展示且结合图1a及4及本文中别处所描述)那样配置及/或操作。如图3中将展示,从阵列的行或子行感测的数据值可通过列选择逻辑经由多个共享i/o线355(图3)并行移动到多个共享i/o线355/455(图3及4)的数据路径的计算单元360/460(图3及4)中的多个计算组件431(图4)及/或交换节点966(图9a及9b)。在一些实施例中,数据量可对应于多个共享i/o线的1k位宽,其还可对应于子行的存储器单元及/或数据值的数目。

在各个实施例中,连接电路232-1可例如耦合在主锁存器215的217-1处且连接电路232-2可耦合在主锁存器215的217-1处(例如,感测放大器206用作与逻辑条中的计算组件231相关联的锁存器)以移动已对其执行操作的逻辑条的经感测、经存储及/或数据值。数据值可经由连接电路232-1及232-2(例如,作为位串行链路)直接移动(例如,未经由共享i/o线移动)到另一逻辑条中的选定锁存器、计算组件231及/或交换节点966,如本文中所描述。

尽管图2展示分别耦合在主锁存器215的217-1及217-2处的连接电路232-1及232-2,但实施例不限于此。例如,连接电路232-1及232-2可例如耦合到副锁存器264(例如,计算组件231)以经由连接电路232-1及232-2将数据值移动到另一逻辑条中的选定锁存器及/或计算组件231。例如,此连接电路232-1及232-2可(例如,如通过控制器140引导)实现将数据值(位)从第一逻辑条中的锁存器、计算组件及/或交换节点级联到第二逻辑条(例如,相邻逻辑条)中的对应锁存器及/或计算组件以执行多个逻辑条中的计算及/或交换操作序列(例如,如结合图9a及9b所描述)。

图3是说明根据本发明的数个实施例的用于阵列的数据路径中的多个共享i/o线的电路的示意图。如结合图3所描述,设备可经配置以将数据从包含与第一数目个感测放大器及/或计算组件相关联的特定行(例如,图3中的319)及列地址的源位置移动(例如,复制、传送及/或输送)到共享i/o线(例如,图3中的355)。另外,设备可经配置以将数据移动到包含与共享i/o线355(图3)的数据路径中的计算单元360(图3)及/或存储器中数据交换网络372相关联的特定逻辑条409(图4)的目的地位置。例如,在一些实施例中,数据交换网络372可经配置为计算单元360/460的逻辑条409的部分。然而,在一些实施例中,数据交换网络372可与存储器装置的存储器阵列相关联(例如,尽管与存储器阵列分离但位于具有存储器阵列的芯片上)(例如,在图1b到1e中所展示且结合图1b到1e所描述的实施例中)。

如读者将明白,每一共享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线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)。当触发感测放大器306-0时,互补数位线对305-1及305-2上的数据值可为通过所述感测放大器存储的数据值。

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

图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,其经配置以通过相对于特定感测电路350(例如,其感测放大器及/或计算组件)、子阵列325的特定列322、与其相关联的互补数位线305-1及305-2、数据交换网络372及/或共享i/o线355多路复用而实施数据移动操作(例如,如通过图1a到1f中所展示的控制器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的数据值。类似地可通过控制器140激活适当选择晶体管而选择来自列0到7中的每一者的数据值。

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

图4a是说明根据本发明的数个实施例的通过阵列130(图1a)本地的数据路径中的多个共享i/o线455耦合到具有多个逻辑条(409-0、…、409-n-1)的计算单元460的阵列130的存储器库区段423的框图。

如本文中所使用,序数可不用来指示组件之间的特定排序及/或关系。例如,第一数据值经由共享i/o线从存储器阵列的第一行的第一子行移动到第一逻辑条的第一计算组件旨在指示来自特定行的特定子行(其可为但不一定为子行序列中的第一子行)的特定数据值可移动到特定逻辑条的特定计算组件(其中的每一者可为但不一定为计算组件及/或逻辑条的序列中的第一者)。类似地,来自第一行的第二子行(其可为相邻先前提及的第一子行的下一子行,但可为但不一定为子行序列中的第二子行)的第二数据值的移动旨在指示来自相同行的第二子行的特定数据值可移动到不同逻辑条的特定计算组件。例如,关于将第二数据值移动到第二逻辑条的第二计算组件是用来使第二数据值与不同于先前被称为此类组件中的第一者的计算组件及逻辑条的计算组件及/或逻辑条相关联。因而,第二计算组件可为但不一定为第二逻辑条的计算组件的序列中的第一计算组件及/或第二逻辑条可为但不一定为逻辑条序列中的第二逻辑条。

类似地,如本文中所描述,控制器经配置以在第一操作循环中引导第一子行的数个多个数据值到第一逻辑条的对应数目个多个第一计算组件的第一并行移动旨在指示在特定操作循环中(例如,在大约2纳秒(ns)到60ns的时间帧中)控制器可引导对应于第一子行的多个数据值的特定数目移动到第一逻辑条的相同数目个计算组件的执行。控制器经配置以在第二操作循环中引导第二子行的数个多个数据值到第二逻辑条的对应数目个多个第二计算组件的第二并行移动旨在指示在第二操作循环(其可为但不一定为下一(例如,相邻)2ns到60ns时间帧)中控制器可引导对应于第二子行的多个数据值的特定数目到第二逻辑条的相同数目个计算组件的移动的执行。第二子行的多个数据值及/或第二逻辑条的第二计算组件的特定数目可为但不一定为与第一子行的数据值及/或第一逻辑条的第一计算组件的数目相同的数目。

如本文中所描述,多个共享i/o线455可经由耦合到每一阵列的选择逻辑而由存储器单元的多个子阵列、存储器库区段、象限、行、子行及/或特定列可选择地共享。例如,包含感测放大器及用于多路复用数个列的可选择数目个子集(例如,总数目个列的8个、16个等列子集)中的每一者的选择逻辑的感测电路150及/或额外锁存器170可选择地耦合到多个共享i/o线455中的每一者以使数据值移动到多个共享i/o线455的数据路径中的计算单元460中的多个计算组件431-1、…、431-z及/或逻辑条409-0、…、409-n-1。在一些实施例中,可选择地耦合到多个共享i/o线455中的每一者的多个计算组件431-1、…、431-z可对应于可选择地耦合到多个共享i/o线的列的数目(例如,1k、2k等)。

多个共享i/o线455可经由感测电路将阵列的行的第一子行可选择地耦合到数据路径中的第一计算组件431及/或交换节点966(例如,如结合图9a及9b所描述的每一交换节点966的数个锁存器970及/或交换器963)以将第一数据值从第一子行移动到第一计算组件431及/或交换节点966。如本文中所使用,“子行”旨在表示存储预定数目个数据值的阵列的行的存储器单元的预定子集。例如,行的一个子行可为具有16,384(16k)个存储器单元的行的预定1024(1k)个存储器单元,由此导致行的16个子行(例如,如以465-1、465-2、…、465-16所展示且结合图4及本文中别处所描述)。多个共享i/o线经由感测电路将相应行的第二子行可选择地耦合到数据路径中的第二计算组件及/或交换节点以将第二数据值从第二子行移动到第二计算组件及/或交换节点。可使用第一计算组件及/或交换节点对来自第一子行的第一数据值执行(例如,如通过控制器引导)操作,基本上同时将第二数据值从第二子行移动到第二计算组件及/或交换节点。

在一些实施例中,计算组件及/或交换节点可在与数据的共享i/o线相关联的逻辑条(例如,如以409-0、409-1、…、409-n-1所展示且结合图4及本文中别处所描述)中。阵列可具有用于阵列本地的数据路径的多个共享i/o线且每一逻辑条可具有多个计算组件(例如,如以431-1、431-2、…、431-z所展示且结合图4及本文中别处所描述)及/或多个交换节点(例如,如以966-0、966-1、…、966-m-1所展示且结合图9a及9b及本文中别处所描述)。多个计算组件及/或交换节点中的每一者可与数据路径的多个共享i/o线中的至少一者相关联。在一些实施例中,多个计算组件及/或交换节点中的每一者可与数据路径的多个共享i/o线中的特定者相关联。

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

存储器装置120包含控制器(例如,如以140所展示且结合图1a到1f及本文中别处所描述)。除其它功能外,控制器140可经配置以引导数据值从阵列中的存储器单元列(例如,其选定子行)移动到与数据路径的多个共享i/o线中的一者相关联的计算组件及/或交换节点。

本发明描述实现对通过存储器单元存储的数据值(例如,在移动到计算组件及/或交换节点时,如本文中所描述)执行如本文中所描述的数据路径中计算操作(例如,pim运算,例如and、or、更新、行复制、移位、加法、乘法等)及交换操作,基本上同时对来自相同存储器库、相同存储器库中的相同子阵列及/或相同子阵列中的相同行(例如,在dram阵列中,以及其它类型的存储器阵列中)的数据值执行例如读取及/或写入操作。例如,可对存储在子阵列的行中的存储器单元的子行中的数据值执行移动操作,基本上同时如通过控制器及/或主机引导对先前移动到数据路径中的计算组件及/或交换节点(例如,到选定逻辑条)的相同数据执行例如逻辑运算,如本文中所描述。

因此,当子行经激活以在阵列中感测时,通过子行的存储器单元存储的多个数据值(例如,整个子行的数据值)可移动(例如,复制、传送及/或输送)到与阵列相关联的数据路径中的对应多个计算组件及/或交换节点(例如,其各自形成如以460所展示且结合图4及本文中别处所描述的计算单元中的逻辑条409的至少部分)。多个共享i/o线将数据值耦合到数据路径中的多个计算组件及/或交换节点。在一些实施例中,计算单元中的数个逻辑条的多个计算组件及/或交换节点可与阵列的存储器库的每一存储器库区段相关联。与共享i/o相关联的计算组件及/或交换节点可经配置以耦合(例如,直接或间接连接,如本文中所描述)到阵列本地的共享i/o的数据路径。在一些实施例中,计算组件431、交换节点966、逻辑条409及/或计算单元460可进一步耦合到连接到远离存储器装置的主机110的数据总线及/或耦合到将存储器装置上的阵列的存储器库连接到阵列的另一存储器库的数据总线。

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

在一个实例中,2k个数据值可通过八路多路复用器通过2k个共享i/o线从16k个列(例如,数字线对)的2k个感测放大器每次(例如,并行)多路复用到计算单元的每一逻辑条(例如,每一逻辑条具有2k个计算组件及/或交换节点)中的2k个计算组件及/或交换节点(例如,以存储及/或处理总共2k个位)。在一些实施例中,所述计算单元可具有八个逻辑条以每个逻辑条存储2k个数据值,由此能够每个计算单元存储已在八个循环中通过2k个共享i/o线移动的16k个数据值。在另一实例中,1k个数据值可通过十六路多路复用器通过1k个共享i/o线从16k个列的1k个感测放大器每次多路复用到计算单元的逻辑条(例如,每一逻辑条具有1k个计算组件)中的1k个计算组件及/或交换节点(例如,以存储及/或处理总共1k个位)。在一些实施例中,所述计算单元(例如,如以460所展示且结合图4所描述)可具有十六(16)个逻辑条以每个逻辑条存储1k个数据值,由此能够每个计算单元存储已在16个循环中通过1k个共享i/o线移动的16k个数据值。例如,16个逻辑条(例如,以409-0、409-1、…、409-n-1所展示且结合图4所描述)中的每一者及各逻辑条中的1k个计算组件及/或交换节点可对应于通过相应1k个共享i/o线从其移动(例如,多路复用)1k个数据值的子行(例如,以465-1、465-2、…、465-16所展示且结合图4所描述)。

因而,从其移动数据值的存储器库、子阵列、行及/或子行中的存储器单元可用于(例如,通过使原始数据值移动到阵列本地的共享i/o的数据路径中的计算单元中的逻辑条)对经存储在其中的其它数据值执行计算及/或交换操作。在各个实施例中,每一逻辑条可包含对应于计算组件及/或交换节点的数目(例如,与计算组件及/或交换节点的数目相同或为所述数目的整数倍)的数目的多个锁存器,以存储从另一存储器库、子阵列、行及/或子行移动的多个数据值,以实现对通过与计算组件及/或交换节点相关联的锁存器存储的数据值执行数个操作(例如,逻辑运算及/或交换操作)。

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

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

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

因而,用于数据路径中计算操作的架构可促进存储在阵列的行的子行中的数据值移动(例如,复制、传送及/或输送)到阵列本地的多个共享i/o线的数据路径中的计算组件、交换节点及/或逻辑条。具有感测放大器的感测电路150(其在一些实施例中还可包含如图2中所展示的计算组件)可将来自阵列中的存储器单元的经多路复用列的存储器单元耦合到多个共享i/o线455的数据路径中的计算单元中的计算组件、交换节点及/或逻辑条。以这种方式,计算组件、交换节点及/或逻辑条可经由操作为多路复用器的列选择电路(例如,如以358所展示且结合图3所描述)及相关联选择逻辑(如结合图3到9所论述)通过多个共享i/o线455间接耦合到列的存储器单元。

存储器阵列架构可提供除刚刚所描述的益处以外的数个益处。可通过例如与其它操作(例如,执行ddr4i/o操作)的执行并行地实现对由存储器单元存储的数据执行逻辑运算及/或交换操作而增大整体处理速度。例如,可在阵列本地的共享i/o线455的数据路径中具有多个计算组件431-1、…、431-z、交换节点966-0、…、966-m-1及/或逻辑条409-0、…、409-n-1的计算单元中执行逻辑运算及/或交换操作。以实例且非限制的方式,一旦将数据值从阵列的子行加载到计算单元中的多个计算组件、交换节点及/或逻辑条,随即可在计算单元中以2ns的速度(相比于触发阵列中的行所要的60ns的实例时间)控制计算操作而无需将数据值移动回到行中。以这种方式,计算组件、交换节点及/或逻辑条(连同相关联锁存器)可提供经移动数据值的存储以执行特定功能(例如,and、or、nor、xor、加法、减法、乘法、除法、交换操作等),同时可将子行的原始数据值保存回到行,保存在别处及/或被覆写。如结合图5及6更多地论述,可通过存储器库121的控制器140引导多个共享i/o线的数据路径中的计算单元中的计算组件、交换节点及/或逻辑条的操作。

在图4的实施例中,存储器库区段423(例如,具有多个存储器库象限)被展示为每个象限具有多个子阵列425-1、…、425-32。在图4中,在存储器库象限1中说明32个子阵列。然而,实施例不限于这个实例。这个实例将存储器库区段423展示为具有16k个行,其可通过每行16个子行465-1、…、465-16(例如,经由以358-1及358-2所展示且结合图3所描述的列选择电路)多路复用到共享i/o线455。在一些实施例中,每第十六列及经耦合存储器单元可提供可作为1k个位的群组作为子行并行移动到计算单元460的数据值。替代地或另外,连续1k个列及经耦合存储器单元可提供可作为1k个位的群组作为子行并行移动到计算单元460的1k个数据值。在任一实施例以及其它可能实施例中,1k个位的群组可在16个循环中通过共享i/o线455循序地移动到16个指定逻辑条409-0、…、409-n-1的1k个指定计算组件431-1、…、431-z及/或交换节点966-0、…、966-m-1。

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

在图4的实例中,每一逻辑条409-0、…、409-n-1可具有多个计算组件431-1、…、431-z,如本文中已结合图2的感测电路250描述的计算组件231。在一些实施例中,多个逻辑条409-0、…、409-n-1中的每一者可经配置以使用多个计算组件431-1、…、431-z执行计算功能。在一些实施例中,多个逻辑条409-0、…、424-z中的每一者可使用多个计算组件431-1、…、431-z执行不同逻辑运算。例如,多个逻辑条409-0、…、409-n-1中的至少一者可经配置以执行and运算且多个逻辑条409-0、…、409-n-1中的至少一者可经配置以执行nor运算,以及逻辑运算的各种组合及/或序列。

在一些实施例中,与存储器库区段相关联的控制器140(图1a)可执行微码指令以引导1k个数据值从与多个子阵列425-1、…、425-32中的特定经存取子行连接的对应1k个经多路复用行并行移动到计算单元460中的特定逻辑条409-0、…、409-n-1的特定计算组件431-1、…、431-z及/或特定交换节点966-0、…、966-m-1。

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

如本文中所描述,例如,一旦将第一子行465-1的1k个数据值移动(例如,加载)到计算单元460的第一逻辑条409-0,随即可在来自第二子行465-2的数据值移动到计算单元460的第二逻辑条409-1之前及/或基本上同时对此类数据值起始计算及/或交换操作。可根据通过控制器140(图1a)执行的微码指令更快地(例如,以大约2ns的速度)控制计算单元的逻辑条中执行的此类操作而无需将数据值移动回到阵列130(图1a)的行中。例如,可使用计算单元460以更快速度(相比于触发及存取阵列130(图1a)中的列所要的(例如,大约60ns)的实例时间)执行计算操作。如结合图2所描述,连接电路232-1及232-2可实现已对其执行操作的逻辑条的经感测、经存储及/或数据值在未经由共享i/o线移动的情况下在逻辑条之间的移动。

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

在各个实施例中,数据路径可进一步包含:第一逻辑条(例如,409-0),其可包含对应于第一子行(例如,465-1)的多个存储器单元(未展示)的数目的数目的多个第一计算组件及/或第一交换节点;及第二逻辑条(例如,409-1),其可包含对应于第二子行(例如,465-2)的多个存储器单元的数目的数目的多个第二计算组件及/或交换节点。多个逻辑条(例如,409-0、…、424n)的数目可对应于相应行的多个子行(例如,465-1、…、465-16)的数目。计算单元(例如,460)可包含可各自包含多个计算组件(例如,431-1、…、431-z)及/或交换节点(例如,966-0、…、966-m-1)的多个逻辑条(例如,409-0、…、424n),其中多个计算组件中的每一者可与阵列本地的多个共享i/o线455中的至少一者相关联(例如,可选择地耦合到阵列本地的多个共享i/o线455中的至少一者)。多个共享i/o线的数目可对应于相应行的子行的多个存储器单元的数目(例如,个别共享i/o线用于子行或行的每8个或16个存储器单元及/或列,以及其它可能配置)。逻辑条(例如,409-0)可包含对应于耦合到相应逻辑条的子行的多个存储器单元的数目的数目的多个计算组件及/或交换节点。

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

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

控制逻辑531-0、…、531-7可将微码指令解码成通过定序器532-0、…、532-7实施的函数调用(例如,微码函数调用(ucode))。图6说明图6中被展示为642的控制器540的另一实施例,其说明根据本发明的实施例的定序器的更详细部分。微码函数调用可为定序器532-0、…、532-7接收及执行以引起存储器装置520使用感测电路(例如图1a中的感测电路150)或使用图4及6中分别展示的计算单元460及660的计算组件431-1、…、431-z及631-1、…、631-z,及/或图9a及9b中所展示的交换节点966-0、…、966-m-1,执行特定逻辑运算及/或交换操作(例如,选自此类操作的替代物,其可使指令存储在存储器中及/或可通过选择专用特定集成电路而启用,以及其它可能)的操作。时序电路533-0、…、533-7可提供时序以协调通过图4及6中分别展示的计算单元460及660的逻辑条409-0、…、409-n-1及609-0、…、609-n-1执行逻辑运算,协调执行结合图9a及9b所描述的交换操作,及/或负责提供对阵列(例如图1a中的阵列130)的无冲突存取。

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

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

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

图6是说明存储器装置520(图5)的控制器642的部分的另一实例的框图。根据本发明的数个实施例,除其它功能外,控制器642经配置以控制使用阵列130(图1a)本地的数据路径中的共享i/o线655将数据值移动到具有多个逻辑条609-0、…、609-n-1的计算单元660。在图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的给定逻辑条609-0、…、609-n-1中的给定计算组件631-1、…、631-z及/或交换节点966-0、…、966-m-1。计算单元660的掩模条641可能够选择感测线及计算组件值以用于读取或写入。

在604处,来自线or逻辑配置的条件代码可提供运用计算单元660的线or运算的位值结果。在611处,位值可提供寄存器地址作为用于计算组件操作及/或交换节点操作指令的第二寄存器源的指针。在612处,位值可指示计算单元660的逻辑条609-0、…、609-n-1的寄存器索引以及用于计算组件操作及/或交换节点操作指令的第二寄存器源的寄存器地址指针611。

图7是说明根据本发明的数个实施例的逻辑条(例如,如以109、409及609所展示且结合图1f、4及6所描述)的计算组件731的示意图。图7也是说明根据本发明的数个实施例的能够实施逻辑运算的计算单元460/660电路的示意图。

在一些实施例中,图7展示直接耦合到一对互补共享i/o线755-1及755-2(例如,如结合图3中的共享i/o线355所展示及描述)的锁存器706、及/或逻辑运算选择逻辑713及经由传递门707-1及707-2耦合到锁存器706的计算组件731。以说明且非限制的方式,锁存器706在图7中被展示为直接耦合到互补共享i/o线对755-1及755-2。例如,共享i/o线可为单个共享i/o线755或可包含图7中所展示的互补共享i/o线对。在各个实施例中,共享i/o线的任一实施例可选择地及/或直接耦合到锁存器706以加载(例如,存储)来自阵列的第一行的第一子行的第一数据值及/或可选择地及/或直接耦合到计算组件731以加载(例如,存储)来自第二行的第二子行的第二数据值以实现通过计算组件731使用两个经存储数据值执行逻辑运算。

在一些实施例中,可存在与计算组件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控制信号启用隔离晶体管750-1及750-2时存在于互补共享i/o线对755-1及755-2上的数据值而确定从多个逻辑运算的逻辑运算选择。

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

可经由传递门707-1及707-2将存在于互补共享i/o线对755-1及755-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上的数据值相反耦合(oppositely-coupled)到交换晶体管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控制信号或对应共享i/o线(例如,特定逻辑选择晶体管的栅极所耦合的共享i/o线)上的相应tt/ft控制信号或数据值并非为高,那么传递门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中所展示的计算组件731及相关联电路实施的可选择逻辑运算结果的逻辑表。可通过图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展示在844处的栏a中所展示的通过计算组件731(例如,副锁存器)存储的起始数据值及在845处的栏b中所展示的通过锁存器(例如,作为主锁存器的感测放大器706)存储的起始数据值。逻辑表8-1中的其它3栏标头是指传递门707-1及707-2以及交换晶体管742的连续性,其可取决于四个逻辑选择控制信号(例如,tf、tt、ft及ff)的状态以及存在于互补共享i/o线对755-1及755-2上的特定数据值而分别控制为开启或关闭。“notopen”栏对应于传递门707-1及707-2以及交换晶体管742皆处于非传导状态,“opentrue”对应于传递门707-1及707-2处于传导状态下且“openinvert”对应于交换晶体管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、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中所说明的实施例旨在说明实施为层级967-0、…、977-n-1的存储器中数据交换网络972-1的实例。如本文中所描述,所述层级可对应于逻辑条(例如,图4及6中所展示的计算单元460及660的409-0、…、409-n-1及609-0、…、609-n-1)及/或可为可(例如,物理上)定位在具有存储器单元阵列(例如,包含如以125及/或126所展示且结合图1b及1c及本文中别处所描述的子阵列)的芯片上的数据交换网络(例如,如以372所展示且结合图3所描述)的层级,所述数据交换网络可通过共享i/o线可选择地耦合到存储器单元阵列。以实例且非限制的方式,图9a中所展示的层级的数目被展示为六个层级。例如,尽管层级可为多个层级,但层级的实际数目可为2个、3个、4个、…、16个或更多个层级,如通过待执行以实现(例如,如通过选定交换协议确定的)预期完成交换操作的预期交换操作而确定。

层级967-0、…、977-n-1中的每一者被展示为包含多个交换节点966-0、…、966-m-1。多个交换节点966-0、…、966-m-1的数目可对应于阵列的行中的存储器单元的数目(例如,4k个、8k个、16k个等存储器单元,如结合图1b及1c所描述)及/或行的子行中的多个存储器单元的数目(例如,1k个存储器单元,如结合图4所描述)。在一些实施例中,可减少数据交换网络的层级中的交换节点的数目。例如,可经由多路复用来自行及/或子行的数据值而减少经由共享i/o线移动到第一层级967-0的数据值的数目(例如,到总数据值的八分之一或十六分之一,如结合图3及本文中别处所描述)。

可通过交换节点966的数个锁存器970存储移动到所述交换节点的数据值且可通过所述交换节点的交换器963对经存储数据值执行交换操作。在一些实施例中,可存在与交换器963相关联的多个锁存器970使得在各个实施例中所述锁存器可选择地、直接及/或间接耦合到共享i/o线以将数据值加载到所述锁存器中的每一者,所述数据值可接着通过相关联交换器可选择地使用(例如,如通过控制器引导)以执行(例如,如通过锁存器的数目的平方确定的)多个交换操作。

在一些实施例中,层级中的交换节点中的每一者可经配置以执行固定交换操作。例如,第一层级967-0中的每一交换节点966-0、…、966-m-1可经配置以(例如,经由本文中所描述的连接电路232)将经接收数据值交换到经配置以通过通过层级序列中的指定交换节点实现对数据值的预期完成交换操作的多个层级967-0、…、967-n-1(例如,序列)的第二层级967-1中的预定位置。如图9a中所展示,在一些实施例中,层级中的每一者中的对应位置处的交换节点可经配置以将数据值移动(例如,交换)到不同于数据值在前及/或后续层级中所交换的位置的位置中的交换节点。当完成交换操作时,所得数据值可经存储在其新位置中。在各个实施例中,所得数据值可通过最后层级967-n-1中的交换节点的锁存器970存储及/或所得数据值可经移动以通过耦合到最后层级967-n-1中的交换节点的锁存器968-0、…、968-m-1存储。

在一些实施例中,层级中的交换节点中的每一者可经配置以执行数据值的多个移动(例如,交换)。控制器140(例如,如结合图5及6及本文中别处所描述)可经配置以(例如,经由交换组件171)发送指令到交换节点966以将(例如,如通过选择第一交换协议而确定的)下一层级中的第一交换节点的数据值的移动方向交换到所述下一层级中的不同第二交换节点(例如,如通过选择第二交换协议而确定)。在各个实施例中,所述控制器140可经配置以执行微码指令以引导(例如,实现)通过存储器中数据交换网络中的交换节点966的每一交换器963执行特定交换操作。在各个实施例中,交换节点966的交换器963可使用图2中以232-1及232-2展示的连接电路、图5中以555-0、…、555-7展示的共享i/o线及/或例如多路复用器(未展示)的其它电路而启用。如此启用特定交换协议可导致预定交换操作通过各层级中的各交换节点执行使得通过数据交换网络的数据值中的每一者的移动将遵循预定路线以实现所述交换协议的预期完成交换操作。

在一些实施例中,每一交换节点966-0、…、966-m-1自身可被视作可编程多路复用器。例如,与实施为层级967-0、…、977-n-1的数据交换网络972-1一致的实施例(例如,在二维拓扑中,但不限于此)可具有由(k+1)2k个交换节点组成的网络拓扑。所述交换节点可经布置成k+1个等级,每一等级具有n=2k个交换节点,其中k表示网络的级数。在其中每一层级包含例如256(28)个交换节点(例如,28位宽)的数据交换网络中,可通过可在9个层级中均匀地分布的(8+1)28=2304个交换节点而确定所述数据交换网络的深度(例如,2304÷256=9)。

例如,第一层级967-0中的每一交换节点966-0、…、966-m-1可经配置以取决于从交换组件171发送哪些指令来启用特定交换协议而将经接收数据值交换到多个层级967-0、…、967-n-1(例如,序列)的第二层级967-1中的多个位置。因此,使数据值传递通过层级序列中的指定交换节点可经配置以实现多个交换操作(例如,每一层级中的不同交换操作)以实现(例如,如通过从多个交换协议选择而确定的)预期完成交换操作。

存储器装置120可包含存储器单元阵列(例如,所述阵列的包含子阵列425-1、…、425-32的以423所展示且结合图4所描述的存储器库区段)。存储器装置120可包含可选择地耦合到存储器单元阵列的感测电路,其中所述感测电路包含感测放大器。i/o线(例如,如以455所展示且结合图4所描述)可共享为与阵列相关联的用于存储器中数据交换的数据路径。共享i/o线455可将感测电路可选择地耦合到共享i/o线的数据路径中的交换节点(例如,如以966-0、…、966-m-1所展示且结合图9a及9b所描述)。存储器装置120可进一步包含数据路径中的多个逻辑条。多个逻辑条是例如以409-0、…、409-n-1及609-0、…、609-n-1所展示且结合图4及图6所描述且以967-0、…、967-n-1所展示且结合图9a及图9b所描述。第一逻辑条(例如,409-0、609-0及/或967-0)可包含例如对应于阵列的行的第一子行(例如,以465-1所展示且结合图4所描述的子行)的多个存储器单元的数目的数目的多个第一交换节点(例如,1k个交换节点),但实施例不限于此。例如,交换节点的数目可不同于子行的存储器单元的数目(例如,通过如本文中所描述那样多路复用)。

存储器装置120可进一步包含与阵列相关联的控制器(例如,如以140所展示且结合图1a到1f及5所描述及以642所展示且结合图6所描述)。在一些实施例中,所述控制器可经配置以经由感测电路引导第一数据值经由共享i/o线从阵列的第一行的第一子行移动到数据路径中的第一逻辑条的第一交换节点。控制器可经配置以引导使用第一交换节点对来自第一子行的第一数据值执行交换协议的第一交换操作。控制器可进一步经配置以引导源于第一交换操作的执行的第一经交换数据值经由连接电路从第一逻辑条移动到数据路径中的第二逻辑条的第二交换节点。

在一些实施例中,第一逻辑条(例如,图4中的409-0)可对应于用于执行交换协议的多个交换操作的存储器中数据交换网络972的多个层级的第一层级(例如,图9a及图9b中的967-0)。可通过多个层级(例如,通过使数据值循序地传递通过层级967-0、…、967-n-1)对数据值顺序执行多个交换操作。源于完成对第一数据值执行交换协议的数据值可通过耦合到存储器中数据交换网络972-1的最后层级(例如,层级967-m-1)的交换节点的锁存器(例如,如以锁存器968-0、…、968-m-1所展示且结合图9a所描述)存储。

控制器可进一步经配置以引导源于完成对第一数据值执行交换协议的数据值经由共享i/o线移动到阵列(例如,到4中所展示且结合图4所描述的子阵列425-1、…、425-32中的列的存储器单元)。可从耦合到存储器中数据交换网络的最后层级的交换节点的锁存器(例如,如以968-0、…、968-m-1所展示且结合图9a所描述)移动所得数据值。

控制器可进一步经配置以可选择地启用来自多个交换协议的第一交换协议。可通过执行(例如,经由交换组件171及结合图5及6所描述的指令)发送到分布在存储器中数据交换网络的多个层级之间的多个交换节点的指令而启用第一交换协议以通过多个交换节点可选择地实现第一交换协议的多个交换操作的执行。

在各个实施例中,第一逻辑条(例如,图4中的409-0)可进一步包含对应于阵列的行的第一子行(例如,465-1)的多个存储器单元的数目的数目的多个计算组件(例如,如以431-1、…、431z所展示)。控制器可进一步经配置以可选择地引导经由共享i/o线到用于执行逻辑运算(例如,选自布尔运算等,如本文中所描述)的选定计算组件的移动或到用于执行交换操作的选定交换节点的移动,如本文中所描述。

图9b中所说明的实施例旨在说明实施为层级967-0、…、977-n-1的存储器中数据交换网络972-2的实例。在一些实施例中,图9b中所说明的层级的数目可对应于少于图1a中所说明的层级。例如,在图9b中所说明的配置中执行交换操作的可逆性可使层级的数目减少到9a中所说明的配置中利用的层级的数目的分率(例如,1/2、1/3等)以实现预期完成交换操作。

在一些实施例中,控制器140(例如,其交换组件171)可引导层级967-0、…、966-m-1(例如,四个层级)中的每一者中的交换节点966-0、…、966-m-1经配置(例如,经启用、经编程等)以执行交换操作序列的第一部分969-1。在完成所述序列的第一部分969-1之后,可(例如,在耦合到最后层级967-n-1中的交换节点的对应数目个锁存器968-0、…、968-m-1中)存储所得数据值。

控制器140可接着引导层级967-0、…、966-m-1(例如,四个层级)中的每一者中的交换节点966-0、…、966-m-1经新配置以执行交换操作序列的第二部分969-2(例如,其中在层级中的至少一者中执行的交换操作不同于在序列的第一部分969-1中执行的交换操作)。在一些实施例中,可通过使数据值在与第一部分969-1中传递通过相反的方向上传递通过层级而执行序列的第二部分969-2。在完成序列的第二部分969-2之后,可(例如,在耦合到第一层级967-0中的交换节点的对应数目个锁存器968-0、…、968-m-1中)存储所得数据值。在一些实施例中,可通过凭借例如使所得数据值从最后层级967-n-1循环到第一层级967-0而使数据值在与在第一部分969-1中传递通过相同的方向上传递来执行序列的第二部分969-2。

如此执行的交换操作序列的部分(例如,969-1、969-2、…、969-m)的数目不受限制,这可连续使每一传递中执行的序列的分率变小。如此使数据值在多个部分中传递通过相同层级以实现预期完成交换操作可缩小芯片上用于存储器中数据交换网络的层级的区域及/或其成本。在一些实施例中,刚刚所描述的部分969可对应于阵列的分区(例如,如以128所展示且结合图1e所描述)及/或计算单元的分区(例如,分别结合图4及6所描述的计算单元460及660的分区)。

因此,如刚刚所描述的存储器装置120可经配置以经由定位在数据路径中的感测电路、共享i/o线、连接电路及/或交换节点执行交换操作。本文中所描述的交换操作由此包含不同于通过定位在数据路径外部的蝴蝶式网络(例如,包含定位在除本文中所描述的数据路径中以外的位置处的硬件、固件及/或软件组件的蝴蝶式网络)的先前实施方案执行的操作的操作。

因此,本文中所描述的实施例提供一种操作用于存储器中数据交换网络的存储器装置的方法,所述方法可通过凭借处理资源执行非暂时性指令而执行。如文本中所描述,所述方法可包含通过第一逻辑条(例如,图4中所展示且结合图4所描述的逻辑条409-0,其对应于以967-0所展示且结合图9b所描述的第一层级)对数据值执行多个交换操作的第一子集(例如,如以969-1所展示且结合图9b所描述)的第一交换操作。所述数据值可已经由由阵列及第一逻辑条共享的i/o从所述阵列的存储器单元移动。所述方法可包含经由从第一逻辑条到最后逻辑条(例如,图4中所展示且结合图4所描述的逻辑条409-n-1,其对应于以967-n-1所展示且结合图9b所描述的最后层级)可选择地耦合逻辑条的连接电路(例如,结合图2所描述的连接电路232)将数据值(对其执行多个交换操作的第一子集)循序地移动到最后逻辑条。所述方法还可包含通过最后逻辑条执行第一子集的最后交换操作及通过最后逻辑条对源于完成多个交换操作的第一子集的执行的数据值执行多个交换操作的第二子集(例如,如以969-2所展示)的第一交换操作。

所述方法可进一步包含通过将源于完成多个交换操作的第一子集的执行的数据值从最后逻辑条移动到第一逻辑条而完成多个交换操作的第二子集的执行。在一些实施例中,所述方法可进一步包含通过控制器引导通过最后逻辑条执行为第一子集的最后交换操作的交换操作不同于通过最后逻辑条执行的第二子集的第一交换操作。

所述方法可进一步包含通过耦合到最后逻辑条(例如,最后层级967-n-1)的交换节点的锁存器(例如,如以968-0、…、968-m-1所展示)存储源于通过最后逻辑条执行第一子集969-1的最后交换操作的数据值,及通过最后逻辑条起始对经存储数据值执行多个交换操作的第二子集969-2的第一交换操作。所述方法可进一步包含通过耦合到第一逻辑条(例如,第一层级967-0)的交换节点的锁存器(例如,如以968-0、…、968-m-1所展示)存储源于通过第一逻辑条执行第二子集969-2的最后交换操作的数据值,及经由共享i/o线将经存储数据值移动到阵列(例如,到图4中所展示且结合图4所描述的子阵列425-1、…、425-32中的行的存储器单元)。

虽然在本文中已说明及描述包含感测电路、感测放大器、计算组件、锁存器、逻辑条、共享i/o线、列选择电路、连接电路、多路复用器、存储器中数据交换网络、其层级、交换节点、交换器等的各种组合及配置的实例实施例,但本发明的实施例不限于本文中明确叙述的所述组合。本文中所揭示的感测电路、感测放大器、计算组件、锁存器、逻辑条、共享i/o线、列选择电路、连接电路、多路复用器、存储器中数据交换网络、其层级、交换节点、交换器等的其它组合及配置明确包含在本发明的范围内。

尽管在本文中已说明及描述特定实施例,但所属领域一般技术人员将明白,经计算以实现相同结果的布置可替代所展示的特定实施例。本发明旨在涵盖本发明的或多个实施例的调适或变动。应理解,已以说明性方式且非限制性方式作出上文描述。所属领域技术人员在查看上文描述之后将明白本文中未具体描述的上述实施例的组合及其它实施例。本发明的或多个实施例的范围包含其中使用上述结构及过程的其它应用。因此,应参考所附权利要求书以及此权利要求书所授权的等效物的全范围而确定本发明的或多个实施例的范围。

在前述实施方式中,出于简化本发明的目的,将一些特征集中于单个实施例中。本发明的这种方法不应被解释为反映本发明的所揭示实施例必须使用多于每一权利要求中明确叙述的特征的意图。而是,如所附权利要求书所反映,发明主题在于少于单个所揭示实施例的所有特征。因此,所附权利要求书特此并入实施方式中,其中每一权利要求自身独立地作为单独实施例。

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