用于数据移动的设备及方法与流程

文档序号:15740360发布日期:2018-10-23 22:11阅读:162来源:国知局
用于数据移动的设备及方法与流程

本发明大体来说涉及半导体存储器及方法,且更特定来说,涉及用于数据移动的设备及方法。



背景技术:

存储器装置通常经提供作为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等),且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)以及其它存储器。非易失性存储器可通过在未供电时保留所存储的数据来提供持久数据,且可包含NAND快闪存储器、NOR快闪存储器及例如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)的电阻可变存储器,以及例如自旋转矩传递随机存取存储器(STT RAM)的磁阻式随机存取存储器(MRAM),以及其它存储器。

电子系统通常包含多个处理资源(例如,一或多个处理器),其可检索及执行指令并将所执行指令的结果存储到合适的位置。处理器可包括多个功能单元,例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及组合逻辑块,例如,其可用于通过执行运算来执行指令,例如“与(AND)”、“或(OR)”、“非(NOT)”、“非与(NAND)”、“非或(NOR)”及“异或(XOR)”,以及对数据(例如,一或多个操作数)的转化(例如,逆)运算。例如,功能单元电路可用于经由多个运算对操作数执行算术运算,例如加法、减法、乘法及除法。

电子系统中的许多组件可涉及于向功能单元电路提供指令以用于执行。例如,可通过例如控制器及主机处理器的处理资源来执行指令。数据(例如,将对其执行指令的操作数)可存储在可由功能单元电路存取的存储器阵列中。在功能单元电路开始对数据执行指令之前,可从存储器阵列检索指令及数据并对其进行排序及缓冲。此外,由于可通过功能单元电路在一或多个时钟周期中执行不同类型的运算,因此指令及数据的中间结果也可被排序及缓冲。

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

附图说明

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

图1B为根据本发明的多个实施例的存储器装置的存储体区段的框图。

图1C为根据本发明的多个实施例的存储器装置的存储体的框图。

图2为根据本发明的多个实施例说明存储器装置的感测电路的示意图。

图3为根据本发明的多个实施例说明用于向存储器装置的数据移动的电路的示意图。

图4A及4B表示根据本发明的多个实施例说明用于向存储器装置的数据移动的电路的另一示意图。

图5根据本发明的多个实施例电路说明与使用电路执行多个数据移动运算相关联的时序图。

具体实施方式

本发明包含用于数据移动的设备及方法(例如,用于存储器内处理(PIM)结构)。在至少一个实施例中,设备包含存储器装置,其经配置以包含存储器单元的多个子阵列及耦合到多个子阵列的感测电路(例如,经由多个列的存储器单元)。感测电路包含感测放大器及计算组件(例如,耦合到多个列中的每一者)。存储器装置包含多个子阵列控制器。多个子阵列控制器中的每一子阵列控制器耦合到多个子阵列中的相应子阵列,且经配置以指示关于存储在多个子阵列中的相应子阵列中的数据执行运算(例如,单个运算)。例如,对其执行运算的数据可存储在多个子阵列中的相应子阵列中的存储器单元的子组或全部中。

所述存储器装置经配置以将对应于针对存储在所述多个子阵列中的第一子阵列中的数据的运算的结果的数据值移动到所述多个子阵列的第二子阵列中的存储器单元。例如,可关于存储在第一子阵列中的数据执行第一运算,且可关于移动到第二子阵列的数据执行第二运算,其中第二运算可与第一运算不同。

大多数数据应在PIM结构内的不同存储体与子阵列之间变化(例如,PIM DRAM实施方案)。如下文更详细描述,实施例可允许主机系统在一或多个DRAM存储体中分配多个位置(例如,子阵列(sub-array或“subarray”))及子阵列的部分以保持(例如,存储)及/或处理数据。主机系统及控制器可对程序指令(例如,PIM命令指令)的整体或部分或块及数据执行地址解析并指示(例如,控制)将数据及命令分配、存储及/或流动到目的地(例如,目标)存储体内的分配位置(例如,子阵列及子阵列的部分)。写入数据及执行命令(例如,执行序列运算,如本文中所描述)可利用到DRAM装置的正常DRAM写入路径。如读者将了解,虽然关于本文中呈现的实例论述DRAM类型PIM装置,但实施例不限于PIM DRAM实施方案。

如本文中所描述,位并行单指令多数据(SIMD)功能性可经修改以运算为具有执行多指令多数据(MIMD)运算能力的脉动阵列。例如,当64个子阵列用于执行具有64个逻辑步骤的运算时,植入此架构修改可针对PIM装置的一些应用产生性能增加大约64倍(例如,通过在大约1/64的时间内执行运算)。

所述架构可使用子阵列控制器(例如,排序器、状态机、微控制器、子处理器、ALU电路或一些其它类型的控制器)执行指令集以来对数据(例如,一或多个操作数)执行运算(例如,单个运算)。如本文中所使用,运算可为,例如,布尔(Boolean)运算,例如“与”、“或”、“非”、“非”、“非与”、“非或”及“异或”,及/或其它运算(例如,转化、移位、算术、统计,及许多其它可能运算)。例如,功能单元电路可用于经由多个逻辑运算对操作数执行算术运算,例如加法、减法、乘法及除法。

每一子阵列控制器可耦合到相应的子阵列以分阶段并控制对存储在所述子阵列中的数据执行的处理(例如,其可仅为存储在所述子阵列中的所有数据的子集)。例如,每一子阵列中的每一存储器单元可涉及单个运算(也被称作为“原子运算”)的执行,所述运算可与对存储在同一子阵列中的其它存储器单元中的数据执行的运算相同(例如,完全相同)。上述情形可提供处理及/或功耗益处。

可利用流接口执行指令序列中的多个唯一运算。如本文中所描述,流接口可为存储器单元之间的共享I/O线(也被称作为数据流管线)。此数据流管线可允许关于存储在一个子阵列中的数据执行单个运算,其中对应于所述运算的结果的数据值通过数据流管线(例如,经由共享I/O线)移动(例如,传送、传输及/或馈送)到另一(例如,相邻的)子阵列的选定行中。存储器装置可经配置以对存储在另一子阵列中的数据执行下一单个运算,所述下一单个运算在各种实施例中可为相同或不同的运算。可重复此过程,直到完成指令序列以产生预期结果。

根据一或多个实施例,每一子阵列可存在一个子阵列控制器。在一些实施例中,存储器装置的存储体可具有64个子阵列。因此,存储体可能具有64个子阵列控制器。每一子阵列控制器可经配置以执行唯一定义的运算。存储器装置可经配置以将其一个运算的结果移动到另一子阵列的特定行。可基于由其相应子阵列控制器执行的指令而对存储在每一子帧中的数据执行不同运算。因为运算循环可包含花费比计算装置的一个时钟周期长的时间来执行的运算,所以在一些实施例中,运算周期可持续多于一个时钟周期。

如本文中所使用,批意欲意指在输入到第一子阵列以进行处理之前在输入数据高速缓冲存储器中累积为未处理数据的数据值单元,如本文中所述。例如,当所述批的数据值基本上等于第一子阵列(例如,在子阵列的至少一行中)的存储器单元的数目时,可将所述批的未处理数据输入到第一子阵列中。输入到第一子阵列的第一批数据值可被称作为第一批,直到在执行序列运算中的最后一个运算之后输出作为经完全处理的数据值。类似地,在第一批数据被移动(例如,传送或拷贝)到另一子阵列之后,第二批数据值可输入到第一子阵列且可被称作为第二批数据直到输出作为经完全处理的数据值,等等。

如本文中所述,脉动意欲意指输入数据以流过硬连线处理器节点的网络(例如,如本文中所描述的子阵列中的存储器单元)以将所述数据组合、处理、合并及/或分类到所导出的最终结果。每一节点可独立地计算部分结果,将部分结果存储在其自身内,且向下游移动(例如,传送及/或拷贝)部分结果以进一步处理部分结果,直到计算并输出所导出的最终结果。脉动阵列可被称作为MIMD架构。

当已输入到例如64个子阵列的序列中的第一子阵列中的第一批未处理数据已经处理并移动(例如,传送及/或拷贝)到另一(例如,第二)子阵列用于脉动处理时,可将第二批未处理数据输入到第一子阵列中,在第二批次已被移动(例如,传送及/或拷贝)到第二子阵列且第一批次已被移动时(第,传送及/或拷贝)到第三子阵列,等等时后续接着第三批。如本文中所描述,等待时间意欲意指在将第一批未处理数据输入到第一子阵列以执行第一运算与输出第一批作为经完全处理数据之间的一段时间。例如,当已执行64个指令的序列且在第64个运算周期之后输出经处理数据时(例如,在执行序列64个运算中的第64个运算之后),来自64个子阵列序列的输出的等待时间已过期。如此,因为可在每一运算循环之后输入额外批次的数据,所以在等待时间之后的存储器装置的每一运算循环可输出一批经完全处理数据,或在本文中所描述的一些实施例中,输出多于一批的经完全处理数据。

许多应用程序可能涉及输入冗长及/或连续的数据流以进行数据处理。例如,此些应用可包含信号处理、图像处理、语音辨识、分组检查、逗号分隔值(CSV)剖析、矩阵乘法及神经网络,以及可对冗长及/或连续数据流进行运算的其它应用。在一些实施例中,此未经处理的数据可被输入到经配置为子阵列堆叠的阵列的图形顶部且为通过在连续子阵列中执行指令序列来处理数据,且结果可在子阵列堆叠的底部输出。

本文中所描述的用于数据移动的设备及方法包含对例如PIM DRAM实施方案的控制器的运算的许多改变。例如,如本文中所描述,控制器可协调对序列运算的单独运算的指令分配到每一子阵列控制器,使得每一子阵列控制器关于存储在子阵列中的每一者的数据执行单独运算。例如,针对64子阵列的堆叠,可执行64个独立的运算以完成序列运算。

耦合到每一子阵列的子阵列控制器可经配置以指示(例如,通过执行指令)将运算的执行结果从如本文中所描述的感测电路移动(例如,传送及/或拷贝)到另一(例如,相邻)子阵列中的行(例如,行中的存储器单元)。例如,运算的每一执行后续可为将所得的经处理数据值从每一子阵列的感测电路移动(例如,传送及/或拷贝)到另一子阵列中的行,以便执行序列运算(例如,脉动序列)中的下一运算。经配置以在序列的开始处执行运算的子阵列控制器可耦合到输入数据高速缓冲存储器以感测其中新数据的存在且基于此起始序列运算。

本文中所描述的脉动数据移动的优点可包含PIM DRAM存储器装置可有效地利用其大规模并行化及计算能力。例如,PIM DRAM存储器装置可扩展其计算及执行能力,以便基本上同时执行序列运算中多个、独立及/或独特的运算同时从一个运算到下一个运算并行地输出经处理数据值。因此,例如,对于64个子阵列堆叠,可执行64个独立运算以有效地将PIM阵列中的数据移动的性能(例如,速度、速率及/或效率)提高64倍。

在本发明的以下详细描述中,参考形成本发明部分的附图,且在附图中通过说明的方式展示其中可实践本发明的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的普通技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在背离本发明的范围的情况下进行处理、电气及结构变化。

如本文中所使用,例如“X”、“Y”、“N”、“M”等的指示符,特别是关于附图中的参考编号指示可包含如此指定的许多特定特征。还应理解,本文中所使用的术语为仅出于描述特定实施例的目的且并不意欲为限制性。如本文中所使用,除非上下文另有明确指示,否则单数形式“一(a)”、“一(an)”及“所述”可包含单数与复数对象两者。另外,“多个”、“至少一个”及“一或多个”(例如,多个存储器阵列)可指代一或多个存储器阵列,而“多个”意欲指代多于一个此类事情。此外,贯穿本申请案,措词“可能”及“可以”是以允许的意义(即,具有潜在的,能够的)而不是在强制意义上(即,必须)使用。术语“包含”及其派生词意指“包含但不限于”。术语“经耦合”及“耦合”意指直接或间接地物理连接或用于存取及移动(传输)命令及数据,视上下文而定。术语“数据”及“数据值”在本文中可互换使用,且可具有相同含义,视上下文而定。

本文中的附图遵循编号惯例,其中第一个数字或前几个数字对应于图号,而其余数字标识图中的元件或组件。可通过使用类似的数字来识别不同图之间的类似元件或组件。例如,108可指代图1中的元素“08”,且类似的元素可在图2中经提及为208。如将理解,可添加、交换及消除本文中的各种实施例中所展示的元件,以便提供了本发明的多个额外实施例。另外,图中提供的元件的比例及相对比例意欲说明本发明的某些实施例,而不应被视为具有限制意义。

图1A为根据本发明的多个实施例的呈包含存储器装置120的计算机系统100形式的设备的框图。如本文中所使用,存储器装置120、控制器140、通道控制器143、存储器阵列130、包括感测放大器及计算组件的感测电路150,以及外围感测放大器及逻辑170也可各自单独被认为是“设备”。

在先前方法中,数据可从阵列及感测电路(例如,经由包括输入/输出(I/O)线的总线)传送到处理资源,例如处理器、微处理器及计算引擎,其可包括ALU电路及经配置以执行适当的运算的其它功能单元电路。然而,将数据从存储器阵列及感测电路传送到此(些)处理资源可能涉及大量功耗。即使处理资源位于与存储器阵列相同的芯片上,在将数据移出阵列到计算电路可消耗大量功率,这可能涉及执行感测线(其在本文中可被称作为数字线或数据线)地址存取(例如,触发列解码信号)以便将数据从感测线传送到I/O线(例如,局域及全局I/O线),将数据移动到阵列外围,并将数据提供给计算功能。

此外,处理资源(例如,计算引擎)的电路可能不符合与存储器阵列相关联的间距规则。例如,存储器阵列的单元可具有4F2或6F2单元大小,其中“F”为对应于单元的特征大小。如此,与先前PIM系统的ALU电路相关联的装置(例如,逻辑门)可不能按间距形成有存储器单元,这可能影响例如芯片大小及存储器密度。

作为实例,一对互补存储器单元可具有带有6F2间距的单元大小,例如,3F×2F。如果用于互补存储器单元的一对互补感测线的间距为3F,那么处于间距上的感测电路指示感测电路(例如,每相应对的互补感测线的感测放大器及对应的计算组件)经形成以装配在互补感测线的3F间距内。

本发明的多个实施例包含按间距形成有感测线的感测电路及/或存储器单元阵列的存储器单元。感测电路能够执行数据感测及计算功能以及存储(例如,高速缓存)存储器单元阵列本地的数据。

为了了解本文中所描述的经改进的数据移动技术,下面为对用于实施此些技术的设备(例如,具有PIM能力的存储器装置及相关联主机)的论述。根据各种实施例,涉及具有PIM能力的存储器装置的程序指令(例如,PIM命令)可在可实施运算的多个感测电路上分配PIM命令及数据的实施方案,且可在存储器阵列内移动及存储PIM命令及数据(例如,不必在主机与存储器装置之间的A/C及数据总线上来回传送此些)。因此,可在更短的时间内且使用更少的功率来存取并使用具有PIM能力的存储器装置的数据。例如,可通过提高在计算系统中移动及存储的数据的速度、速率及/或效率来实现时间及功率优势,以便处理所请求存储器阵列运算(例如,读取、写入、逻辑运算等)。

图1A中所说明的系统100可包含耦合(例如,连接)到存储器装置120的主机110,存储器装置包含存储器阵列130。主机110可为主机系统,例如个人膝上型计算机、桌上型计算机、平板计算机、数码相机、智能手机或存储器读卡器,及各种其它类型的主机。主机110可包含系统主板及背板,且可包含多个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路)。系统100可包含单独的集成电路,或主机110及存储器装置120两者都可在同一集成电路上。系统100可为例如服务器系统及高性能计算(HPC)系统及其一部分。尽管图1A中所展示的实例说明具有冯·诺依曼(Von Neumann)架构的系统,但本发明的实施例可在非冯·诺依曼架构中实施,其可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。

为清楚起见,已简化了系统100的描述以集中于与本发明特别相关的特征。例如,在各种实施例中,存储器阵列130可为例如DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列及NOR快闪阵列。存储器阵列130可包含存储器单元,所述存储器单元经布置成通过存取线(其在本文中可称作为字线或选择线)耦合的行及通过感测线(其在本文中可称作为数据线或数字线)耦合的列。尽管图1A中展示单个存储器阵列130,但实施例不限于此。例如,除了如本文中所描述的多个子阵列之外,存储器装置120还可包含多个存储器阵列130(例如,多个DRAM单元存储体、NAND快闪单元等)。

存储器装置120可包含地址电路142以通过I/O电路144(例如,经由局部I/O线及全局I/O线提供到外部ALU电路及DRAM DQ)锁存经由数据总线156(例如,来自主机110的I/O总线)提供的地址信号。状态及异常信息可从存储器装置120上的控制器140提供到沟道控制器143,例如,通过高速接口(HSI)带外总线157,其又可从沟道控制器143提供到主机110。沟道控制器143可包含逻辑组件160以在每一相应存储体的阵列中分配多个位置(例如,用于子阵列的控制器)以存储存储体命令、应用指令(例如,作为序列运算)及用于与多个存储器装置(例如,120-0、120-1、...、120-N)中的每一者的运算相关联的各种存储体的参数(PIM命令)。沟道控制器143可将命令(例如,PIM命令)分派给多个存储器装置120-1、...、120-N以将那些程序指令存储在存储器装置的给定存储体内。

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

控制器140(例如,存储体控制逻辑及排序器)可解码由控制总线154从主机110提供的信号(例如,命令)。这些信号可包含芯片使能信号,写入使能信号及可用于控制对存储器阵列130执行的运算(包含数据感测、数据存储、数据移动、数据写入及数据擦除运算以及其它运算)的地址锁存信号。在各种实施例中,控制器140可负责执行来自主机110的指令并存取存储器阵列130。控制器140可为状态机、排序器或一些其它类型的控制器。控制器140可控制阵列(例如,存储器阵列130)的行中的移位数据(例如,右或左)。

以下进一步描述感测电路150的实例(例如,在图2及3中)。例如,在多个实施例中,感测电路150可包含多个感测放大器及多个计算组件,其可用作累加器且可用于执行如由每一子阵列的子阵列控制器所指示的运算(例如,对与互补感测线相关的数据)。

在多个实施例中,感测电路150可用于使用存储在存储器阵列130中的数据作为输入来执行运算,且参与将用于写入、逻辑及存储运算的数据移动到存储器阵列130中的不同位置中而无需经由感测线地址存取来传送数据(例如,不触发列解码信号)。如此,各种计算功能可使用感测电路150且在所述感测电路内执行,而非(或与之相关联)由在感测电路150外部的处理资源(例如,通过与主机110相关联的处理器及位于例如控制器140或别处上的装置120的例如ALU电路的其它处理电路)执行。

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

相比之下,在本发明的多个实施例中,感测电路150经配置以对存储在存储器阵列130中的数据执行运算并将结果存储回存储器阵列130而不启用耦合到感测电路150的局部I/O线及全局I/O线。感测电路150可按间距形成有阵列的存储器单元。额外外围感测放大器及/或逻辑170(例如,各自存储用于执行运算的指令的子阵列控制器)可耦合到感测电路150。感测电路150及外围感测放大器及逻辑170可根据本文中所描述的一些实施例协作执行运算。

如此,在多个实施例中,不需要存储器阵列130及感测电路150外部的电路来执行计算功能,因为感测电路150可执行适当运算以便通过执行指令集(例如,序列)来执行此些计算功能而无需使用外部处理资源。因此,感测电路150可用于补充或至少在某种程度上替换此外部处理资源(或至少减少此外部处理资源的带宽消耗)。

在多个实施例中,除了由外部处理资源(例如,主机110)执行的运算之外,感测电路150还可用于执行运算(例如,执行指令集)。例如,主机110及感测电路150中的任一个可限于仅执行某些运算及一定数目的运算。

启用局部I/O线及全局I/O线可包含启用(例如,激活、接通)具有耦合到解码信号(例如,列解码信号)的栅极以及耦合到I/O线的源极/漏极的晶体管。然而,实施例不限于不启用局部I/O线及全局I/O线。例如,在多个实施例中,感测电路150可用于执行运算而无需启用阵列的列解码线。然而,可以启用局部I/O线及全局I/O线,以便将结果传送到除了返回到存储器阵列130之外的合适位置(例如,传送到外部寄存器)。

图1B为根据本发明的多个实施例的存储器装置的存储体区段123的框图。例如,存储体区段123可表示存储器装置的存储体的多个存储体区段的实例区段(例如,存储体区段0、存储体区段1、...、存储体区段M)。如图1B中所展示,存储体架构可包含水平显示为X的多个存储器列122(例如,实例性DRAM存储体及存储体区段中的16,384个列)。另外,存储体区段123可划分成分别展示为125-0、125-1、...、125-N-1为子阵列0、子阵列1、...、及子阵列N-1(例如,32、64或128个子阵列,以及其它子阵列配置),所述子阵列分别由经配置以耦合到数据路径(例如,本文中所描述的共享I/O线)的放大区域分离。如此,子阵列125-0、125-1、...、125-N-1可各自具有在124-0、124-1、...、124-N-1中显示的放大区域,所述放大区域分别对应于感测组件条带0、感测组件条带1、...及感测组件条件N-1。

每一列122可经配置以耦合到感测电路150,如结合图1A及本文中别处所描述。如此,子阵列中的每一列可单独耦合到感测放大器及/或计算组件,其有助于所述子阵列的感测组件条带。例如,如图1B中所展示,存储体架构可包含感测组件条带0、感测组件条带1、....、感测组件条带N-1,所述感测组件条带各自具有带有感测放大器及计算组件的感测电路150,所述计算组件可在各种实施例中用作寄存器、高速缓冲存储器等且用于计算、数据缓冲等。感测组件条带可在一些实施例中耦合到相应子阵列125-0、125-1、...、125-N-1中的每一列122。耦合到存储器阵列130的感测电路150内的计算组件,如图1A中所展示,可补充与控制器140相关联的高速缓冲存储器171。

子阵列125-0、125-1、...、125-N-1中的每一者可包含垂直展示为Y的多个行119(例如,每一子阵列可在实例性DRAM存储体中包含512个行)。实例性实施例并不限于本文中所描述的列及行的实例性水平及垂直定向或其实例性编号。

如图1B中所展示,存储体架构可与控制器140相关联。图1B中所展示的控制器140可在各种实例中表示由图1A中所展示的控制器140中体现且包含在其中的功能性的至少部分。控制器140可指示(例如,控制)将命令及数据141输入到存储体架构及从存储体架构输出(例如,到主机110)以及控制存储体架构中的数据移动(例如,脉动数据移动),如本文中所描述。存储体架构可包含到DRAM DQ的数据总线156(例如,64位宽的数据总线),其可对应于结合图1A所描述的数据总线156。

图1C为根据本发明的多个实施例的存储器装置120的存储体121的框图。例如,存储体121可表示存储器装置的实例性存储体(例如,存储体0、存储体1、...、存储体M-1)。如图1C中所展示,存储体架构可包含耦合到控制器140的地址/控制(A/C)路径153(例如,总线)。同样,图1C中所展示的控制器140在各种实例中可表示由图1A及1B中所展示的控制器140体现并包含在其中的功能性的至少部分。

如图1C中所展示,存储体121可包含多个存储体区段(例如,存储体区段123)。如图1C中进一步展示,存储体区段123可被细分成多个子阵列(例如,以125-0、125-1、...、125-N-1展示的子阵列0、子阵列1、...、子阵列N-1),所述子阵列分别通过感测组件条带124-0、124-1、...、124-N-1分离,如图1B中所展示。感测组件条带可包含感测电路150及/或可耦合到逻辑电路170,如图1A中所展示且关于结合图1C到图5的子阵列控制器进一步描述。

如图1C中示意性所展示,存储体121的架构及存储体的每一区段123可包含多个共享I/O线155(例如,数据路径、总线),所述共享I/O线经配置以耦合到存储体区段123及多个存储体(未展示)的存储器单元的多个子阵列125-0、125-1、...、125-N-1。多个共享I/O线155可经由由图1B中所展示的124-0、124-1、...、124-N-1表示的感测组件条带可选择地耦合在存储器单元的子阵列、行及特定列之间。如所述,感测组件条带124-0、124-1、...、124-N-1各自包含具有感测放大器及计算组件的感测电路150,所述计算组件经配置以耦合到每一子阵列中的每一列存储器单元,如图1A中所展示且结合图2到5进一步描述。

多个共享I/O线155可用于增加PIM阵列(例如,子阵列之间)中的数据移动的速度、速率及/或效率。在至少一个实施例中,使用多个共享I/O线155通过提供至少一千位宽度来提供改进的数据路径。在一个实施例中,2048个共享I/O线耦合到16,384个列以提供2048位宽度。所说明的多个共享I/O线155可按间距形成有阵列的存储器单元。

如本文中所描述,I/O线可通过耦合到子阵列中的每一个的感测组件条带由多个子阵列、行及特定列的存储器单元选择性地共享。例如,多个列的可选子组(例如,总列数中的八列子组)中的每一个的感测放大器及/或计算组件可针对存储(高速缓存)在感测组件条带中的数据值可选择地耦合到多个共享I/O线中的每一者以移动(例如,传送、输送及/或馈送)到多个共享I/O线中的每一者。因为单数形式“一”、“一”及“所述”在本文中可包含单数及复数指示物两者,所以“共享I/O线”可用于表示“多个共享I/O线”,除非上下文另有明确规定。此外,“共享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的感测放大器及计算组件使用的指令。图1C说明与控制器140相关联且耦合到存储体121中的子阵列125-0、125-1、...、125-N-1中的每一者的写入路径149的指令高速缓冲存储器171-1。在各种实施例中,指令高速缓冲存储器171-1可为相同高速缓冲存储器,或可与输入数据高速缓冲存储器相关联,所述输入数据高速缓冲存储器经配置以从所述主机接收数据且向控制器发出接收到数据以指示执行所存储序列的多个运算的信号。

指令高速缓冲存储器171-1可用于接收及存储针对关于存储在子阵列的存储器单元中的数据执行的运算的指令序列(例如,从结合图1A描述的逻辑组件160接收)。写入路径149可用于分配关于由不同的子阵列控制器170-0、170-1、...、170-N-1执行每一运算的指令,每一子阵列控制器个别地耦合到存储器单元的不同子阵列125-0、125-1、...、125-N-1及相关联感测组件条带124-0、124-1、...、124-N-1。由子阵列控制器170-0、170-1、...、170-N-1执行的运算的指令集可形成结合图1A所描述的逻辑170的至少部分。

子阵列控制器170-0、170-1、...、170-N-1可经配置以指示通过感测电路对每一子阵列125-0、125-1、...、125-N-1中的多个存储器单元中的数据执行运算(例如,每子阵列控制器的单个运算)。例如,子阵列控制器170-0、170-1、...、170-N-1中的每一个可在一些实施例中存储用于执行单个运算的指令集。是否实际上执行运算取决于由主机110及/或控制器140选择的数据处理实施方案(例如,运算是否是为特定输入数据选择的指令序列的部分)。在各种实施例中,与存储器单元中的每一者的列或特定子阵列中的存储器单元的子组相关联的感测电路可由耦合的子阵列控制器指示以对存储在那些存储器单元中的数据执行存储在所耦合的子阵列控制器中的运算。例如,取决于未处理数据输入的速率及/或数量,子阵列序列的行及/或列的子组可用于处理数据。行及/或列的子组可位于子阵列序列中的每一者中的对应或不同位置中。

指令可由子阵列控制器170-0、170-1、...、170-N-1执行用于相对于存储在子阵列125-0、125-1、...、125-N-1中的数据依序执行或运算,如图1C中所展示。作为实例,对存储在子阵列0(125-0)中的存储器单元中的数据执行的运算可为“与(AND)”运算。可通过感测组件条带0(124-0)中的感测电路150对数据值执行“与”运算。

例如,控制器140可控制已经对其执行运算的数据值移动到子阵列1(125-1)中的特定存储器单元。如本文中所描述,数据值可从耦合的感测组件条带移动(例如,传送及/或传输)到耦合的共享I/O线。在子阵列1(125-1)中,可执行“或”运算作为序列中的第二运算等。已对其执行“或”运算的数据值可从感测组件条带1(124-1)中移动(例如,传送及/或拷贝)到子阵列2(125-2)中的特定存储器单元,其中“非或”运算可作为序列中的第三运算来执行。已对其执行“非或”运算的数据值可从感测组件条带2(124-2)中移动(例如,传送及/或拷贝)到子阵列3(125-3)中的特定存储器单元,其中“移位”运算可作为序列中的第四运算来执行。

在通过多个中间子阵列顺序移动(例如,传送及/或拷贝)数据值之后,数据值可达到序列中的最后一个子阵列以便最终处理数据值。例如,在子阵列N-1(125-N-1)中,可执行“异或”运算作为数据值的最终处理,然后可将数据值输出141的感测组件条带N-1(124-N-1)移动(例如,传送及/或拷贝)到在一些实施例中与控制器540相关联的高速缓冲存储器571-2(例如,如图5中所展示)。

序列运算“与”、“或”、“非或”、“移位”、...“异或”通过实例方式呈现为彼此全部不同的可能运算子集,但本发明的实例并不限于此。例如,可如本文中所描述实施在数据处理中可用的任何运算组合,其中一些运算可能连续地及/或在整个序列中间隔地重复及/或可能未按顺序中使用可能的运算中的一些。

在可包含特定数目个子阵列125-0、125-1、...、125-N-1(例如,32、64、128个子阵列,以及其它子阵列配置)的存储体区段123中,多个子阵列控制器及/或操作指令集可对应于子阵列的数目。例如,对于具有64个子阵列的存储体区段,可执行序列指令以通过64个单独的子阵列控制器执行64次运算,每一个别子阵列控制器耦合到不同子阵列。然而,实施例并不限于此。例如,在一些实施例中,个别子阵列控制器可经配置以存储指令集,使得所述指令集可经执行以执行单个运算或多个运算。多个运算可用于不同运算,所述不同运算可选择地应用于在不同运算(例如,针对在不同时间处执行的运算)中存储在子阵列的存储器单元中的数据及/或可选择地应用于存储子阵列的行及/或列的多个子组中的数据(例如,针对基本上同时执行的不同运算)。

在一些实施例中,存储体区段中任何位置处的任何数目个个别子阵列控制器可经配置以不存储用于运算的指令。例如,存储体区段可具有64个子阵列,但可执行序列指令以执行更少的运算,这些运算可存储在少于64个子阵列控制器中,使得一些子阵列控制器可经编程以不执行任何运算。在一些实施例中,经编程以不执行任何运算的子阵列控制器可定位在经编程以执行运算的子阵列控制器之间(例如,作为间隔件)。

当第一批未处理数据已输入到子阵列0(125-0)中且数据值已经处理并移动(例如,传送及/或拷贝)到下一个子阵列1(125-1)时,可将第二批未处理数据输入到子阵列0(125-0)中,随后接着在已将输入到子阵列0(125-0)的第二批移动(例如,传送及/或拷贝)到子阵列1(125-1)且已将第一批移动(例如,传送及/或拷贝)到子阵列2(125-2)时输入第三批数据,等等。当未处理及/或部分处理的至少两个不同批次在存储体区段的至少两个不同子阵列中时,对存储在至少两个不同自阵列的每一选定存储器单元中的数据基本上同时执行由每一子阵列的子阵列控制器执行的操作。

例如,当64个子阵列的序列的等待时间已期满时,64个指令的序列可在64个子阵列的序列中的每一者中基本上基本上同时执行的64个运算。在经执行以执行比存储体区段中的子阵列的书面更少的运算的指令序列中,可在同一存储体区段的子阵列中执行此等指令的多个序列(例如,用于不同的运算)。例如,在具有64个子阵列的存储体区段中,16个运算中的相同及/或不同的序列中的四个可作为64个子阵列控制器的四个16单元子区段中的指令集来执行。然而,实例并不限于此。例如,通过执行指令序列执行的运算的数目及/或指令序列的数目可为不同的,使得运算中的每一个可为多于或少于16及/或序列运算的总数可为多于或少于四个,只要子阵列的总数不超过64。

从存储体区段中的任何子阵列(例如,从子阵列中的存储器单元的特定行及/或列),针对指令序列完成运算的执行,在一些实施例中,可将经处理数据值输出141到与控制器140相关联的高速缓冲存储器171-2。如此,在使多个指令序列执行为耦合到存储体区段中的多个子阵列的子阵列控制器中的操作的那些实施例中,存储器装置的每一操作循环在等待时间之后可输出多于一个经完全处理批次数据。例如,控制器140可经配置以忽略在等待时间段期间输出的空数据及/或另外未输出为处理未处理数据的输入的结果的空数据,如本文中所描述。

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

如此,当以感测放大器级进行处理时,仅有512行存储器单元可用于彼此执行运算,且可能无法容易地对数据耦合到不同感测组件条带的多个行执行运算。为了完成耦合到不同感测组件条带的不同子阵列中的数据的处理,可将要处理的所有数据移动到相同子阵列中,以便耦合到相同感测组件条带。

然而,DRAM实施方案尚未用于将数据从一个感测组件条带移动到另一感测组件条带。如所提及,感测组件条带可含有多达16,000个感测放大器,其对应于要从每行存储(例如,高速缓存)的大约16,000个列或大约16,000个数据值(例如,位)的数据。DRAM DQ数据总线(例如,如图1A及1B中的156所展示)可经配置以64位部分。如此,使用DRAMDQ数据总线将来自16,000个位行的整个数据从一个感测组件条带移动(例如,传送及/或拷贝)到另一感测组件条带将花费例如256个周期(例如,16,000除以64)。

为了在PIM DRAM实施方案中实现以高速度、速率及/或效率从一个感测组件条带到另一者进行的数据移动,本文中描述了共享I/O线155。例如,在2048个共享I/O线经配置为2048位宽的共享I/O线155的情况下,正如上文所描述,来自整行的数据的移动将花费8个周期,数据移动的速度、速率及/或效率增加32倍。因此,与其它PIM DRAM实施方案相比,利用本文中所描述的结构及过程可节省数据移动的时间(例如,通过不必从一个存储体、存储体区段及其子阵列中读取数据、存储数据以及然后将数据写入于另一位置)且通过减少数据移动的周期数。

图2为说明根据本发明的多个实施例的感测电路250的示意图。感测电路250可对应于图1A中展示的感测电路150。

存储器单元可包含存储元件(例如,电容器)及存取装置(例如,晶体管)。例如,第一存储器单元可包含晶体管202-1及电容器203-1,且第二存储器单元可包含晶体管202-2及电容器203-2等。在此实施例中,存储器阵列230为1T1C(一个晶体管一个电容器)存储器单元的DRAM阵列,但可使用其它配置实施例(例如,每存储器单元具有两个晶体管及两个电容器的2T2C)。在多个实施例中,存储器单元可为破坏性读取存储器单元(例如,读取存储在单元中的数据会破坏数据,使得最初存储在单元中的数据在被读取之后被刷新)。

存储器阵列230的单元可经布置成通过存取(字)线204-X(行X)、204-Y(行Y)等耦合的行,以及通过成对的互补感测线耦合的列(例如,如图2中所展示的数字线DIGIT(D)及DIGIT(D)_,图3及4A到4B中所展示的DIGIT_0及DIGIT_0*。对应于每对互补感测线的个别感测线也可分别称为DIGIT(D)的数字线205-1及DIGIT(D)_的205-2,或图3及4A到4B中的对应参考编号。尽管在图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(例如,耦合到相应对互补数字线)。感测放大器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,锁存器包含耦合到一对互补数字线D 205-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)_上的差分电压且操作以锁存从选定存储器单元感测的数据值。如本文中所使用,感测放大器206的交叉耦合锁存器可被称作为主锁存器215。

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

感测放大器206可与计算组件231一起操作以使用来自阵列的数据作为输入来执行各种运算。在多个实施例中,运算的结果可存储回到阵列而无需通过数字线地址存取传送数据(例如,无需触发列解码信号,使得经由局部I/O线路将数据传送到在阵列外部的电路及感测电路)。如此,本发明的多个实施例可实现使用比各种先前方法更少的功率来执行运算及计算与其相关联的功能。另外,由于多个实施例消除了跨本地及全局I/O线传送数据以便执行计算功能的需要(例如,在存储器与离散处理器之间),因此多个实施例可与以前的方法相比实现增加(例如,更快)处理能力。

感测放大器206可进一步包含平衡电路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展示包括平衡电路214的感测放大器206,但实施例不限于此,且平衡电路214可从感测放大器206离散地实施,以与图2中所展示的配置不同的配置实施,或根本不实施。

如下面进一步描述,在多个实施例中,感测电路250(例如,感测放大器206及计算组件231)可操作以执行选定运算且最初将结果存储在感测放大器206或计算组件231中的一者中而无需经由本地或全局I/O线从传感电路传送数据(例如,无需经由激活列解码信号来执行传感线地址存取)。

可实施各种类型的运算的执行。例如,在许多更高级别的应用程序中使用布尔运算(例如,涉及数据值的布尔逻辑函数)。因此,可通过运算的经改进执行实现的速度及功率效率可为这些应用提供经改进的速度及/或功率效率。

如图2中所展示,计算组件231还可包括锁存器,其在本文中可被称为辅助锁存器264。辅助锁存器264可以类似于上文关于主要锁存器215所描述的方式类似的方式配置及操作,除了包含在辅助锁存器中的所述对交叉耦合的p沟道晶体管(例如,PMOS晶体管)可使其相应源极耦合到电源电压(例如,VDD),且次级锁存器的所述对交叉耦合的n沟道晶体管(例如,NMOS晶体管)可使其相应源极选择性地耦合到参考电压(例如,接地),使得次级锁存器被连续地启用。计算组件231的配置不限于图2中所展示的配置,且各种其它实施例是可行的。

在各种实施例中,连接电路232-1可例如在217-1处耦合,且连接电路232-2可在217-1处耦合到主锁存器215用于移动所感测及/或所存储的数据值。所感测及/或所存储的数据值可经由共享I/O线移动到另一子阵列的特定行及/或列中的所选定存储器单元,如本文中所描述,及/或经由连接电路232-1及232-2直接移动到其它子阵列的特定行及/或行中选定存储器单元中。尽管图2展示分别耦合在主锁存器215的217-1及217-2处的连接电路232-1及232-2,但实施例并不限于此。例如,连接电路232-1及232-2可例如耦合到辅助锁存器264,用于移动所感测及/或所存储的数据值,以及用于耦合连接电路232-1及232-2的其它可能位置。

图3为说明根据本发明的多个实施例的用于存储器装置中的数据移动的电路的示意图。图3显示各自耦合到相应的一对互补感测线(例如,数字线305-1及305-2)的八个感测放大器(例如,分别展示在306-0、306-1、...、306-7处的感测放大器0、1、...、7)。图3还展示八个计算组件(例如,展示在331-0、331-1、...331-7处的计算组件0、1、...、7),各自经由相应传输栅极及数字线307-1及307-2耦合到相应感测放大器(例如,如306-0处的感测放大器0所展示)。例如,传输栅极可如图2中所展示连接且可通过运算选择信号Pass来控制。例如,选择逻辑的输出可耦合到传输栅极及数字线307-1及和307-2的栅极。对应对的感测放大器及计算组件可有助于形成在350-0、350-1、...、350-7处指示的感测电路。

存在于所述对的互补数字线305-1及305-2上的数据值可被加载到计算组件331-0中,如结合图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,如本文中所描述。图3中所展示的感测放大器306-0、306-1、...、306-7与计算组件331-0、331-1、...、331-7的成对组合可包含在感测组件条带中,如图1B中的124处及图4A及4B中的424处所展示。

图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线的感测电路的感测放大器与计算组件的的此些组合的数目并不限于八种。另外,共享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到1C中所展示的控制器140所指示)。例如,列选择电路358-1具有选择线0、2、4及6,其经配置以与对应列(例如列0、列2、列4及列6)耦合。列选择电路358-2具有选择线1、3、5及7,其经配置以与对应列(例如列1、列3、列5及列7)耦合。结合图3所说明的列选择电路358可在各种各样实施例中表示结合图4A及4B所说明的多路复用器460所体现且包含于其中的功能性的至少一部分。

控制器140可耦合到列选择电路358以控制选择线(例如,选择线0)以存取存储在感测放大器、计算组件中及/或存在于所述对互补数字线上(例如,在选择晶体管359-1及359-2经由来自列选择线0的信号激活时为305-1及305-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。在一些实施例中,一次选择一列(例如,列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*)。

如本文中所描述,存储器装置(例如,图1A中的120)可经配置以经由数据总线(例如,156)及控制总线(例如,154)耦合到主机(例如,110)。存储器装置中的存储体(例如,图1B中的123)可包含存储器单元的多个子阵列(例如,图1B及1C中的125-0、125-1、...、125-N-1)及通过存储器单元的多个列(例如,图1B中的122)耦合到多个子阵列的感测电路(例如,图1A中的150)。感测电路可以包括感测放大器和耦合到每个列的计算组件(例如,分别在图2中的206及231)。

存储体可包含多个子阵列控制器(例如,图1C中的170-0、170-1、...、170-N-1)。每一子阵列控制器可耦合到多个子阵列中的相应子阵列(例如,图1B及1C中的125-0、125-1、...、125-N-1)且每一子阵列控制器可经配置以针对存储在多个子阵列中的相应子阵列中的数据来指示运算的执行。例如,子阵列控制器可单独地耦合到多个子阵列中的每一个,以指示对存储在多个子阵列中的每一个中的多个(例如,选定子组或全部)存储器单元中的数据执行运算(例如,单个运算)。

在各种实施例中,存储器装置可经配置以将对应于关于存储在多个子阵列的第一子阵列中的数据的运算结果的数据值移动到多个子阵列的第二子阵列中的存储器单元。例如,感测电路150可经配置以耦合到多个子阵列(例如,经由共享I/O线355,列选择电路358及/或本文中所描述的多路复用器460)以将已在第一子阵列中对其执行第一操作的数据值移动到第二子阵列中的存储器单元以执行第二运算。

在各种实施例中,关于第一子阵列执行的第一运算及关于第二子阵列执行的第二运算可为序列(例如,序列的部分)多个运算,其中指令由个别耦合到多个子阵列中的每一个的多个子阵列控制器执行。第一指令集在被执行时可指示对存储在第一子阵列中的数据执行第一运算,在一些实施例中,所述第一子运算可不同于对存储在第二子阵列中的数据执行的第二运算(如由执行第二指令集指示)。感测电路可经配置以耦合到多个子阵列以将存储在第一子阵列中的已对其执行第一运算的数据值并行移动到第二子阵列中的多个存储器单元。

存储器装置可包含共享I/O线(例如,图1C中的155),其经配置以耦合到多个子阵列中的每一个的感测电路以可选择地将存储在第一子阵列中的已对其执行第一运算的数据值移动到第二子阵列中的存储器单元。在各种实施例中,存储器装置可包含多个共享I/O线(例如,图3中的355及图4A及4B中的455-1、455-2、...、455-M),所述共享I/O线经配置以耦合到多个子阵列中的每一个的感测电路以可选择地将存储在第一子阵列中的已对其执行第一操作的多个数据值并行移动到第二子阵列中的多个存储器单元。

存储器装置可包含感测组件条带(例如,图1B中的124及图4A与4B中的424),其经配置以包含可对应于存储器单元的多个列中的多个(例如,305-1及305-2)的多个感测放大器及计算组件中的多个(例如,分别如图3中所展示的306-0、306-1、...、306-7及331-0、331-1、...331-7),其中多个感测放大器及计算组件可选择地耦合到多个共享I/O线(例如,经由列选择电路358-1及358-2)。列选择电路可经配置以通过可选择地耦合到多个(例如,八个)感测放大器及计算组件来选择性地感测子阵列的存储器单元中的特定列中的数据。

在一些实施例中,存储器装置的存储体中的多个感测组件条带中的多个(例如,图1B及1C中的124-0、...、124-N)可对应于存储体中的多个子阵列中的多个(例如,图1B及1C中的125-0、125-1、...、125-N-1)。感测组件条带可包含多个感测放大器及计算组件,感测组件条带经配置以将从第一子阵列的行感测的一定量的数据并行地移动(例如,传送及/或传输)到多个共享I/O线。在一些实施例中,数据量可对应于多个共享I/O线的至少一千位宽度。

如本文中所描述,存储器单元阵列可包含DRAM存储器单元的实施方案,其中控制器响应于命令而经配置以经由共享I/O线将数据从源位置移动到目的地位置。源位置可在第一存储体中,且目的地位置可在存储器装置中的第二存储体中及/或源位置可在存储器装置中的一个存储体的第一子阵列中,且目的地位置可在同一存储体的第二子阵列中。第一子阵列及第二子阵列可在存储体的相同区段中,或子阵列可在存储体的不同区段中。

如本文中所描述,所述装置可经配置以将来自源位置的数据(包含与子阵列0(425-0)中的第一数目个感测放大器及计算组件(例如,分别为406-0及431-0)相关联的特定行(例如,图3中的319)及列地址)移动到共享I/O线(例如,455-1)。此外,所述设备可经配置以使用共享I/O线(例如,455-1)将数据移动到目的地位置,包含与第二数目个感测放大器及计算组件相关联的特定行及列地址(例如,分别在子阵列N-1(425-N-1)中的406-0及431-0))。如读者将了解,每一共享I/O线(例如,455-1)可实际上包含互补的一对共享I/O线(例如,共享I/O线及共享I/O线*,如图3的实例配置)。在本文中所描述的一些实施例中,2048个共享I/O线(例如,互补的共享I/O线对)可经配置为2048位宽的共享I/O线。

图4A及4B表示根据本发明的多个实施例说明用于存储器装置中的数据移动的电路的另一示意图。如图1B及1C中所说明且在图4A及4B中更详细地展示,DRAM存储器装置的存储体区段可包含多个子阵列,其在图4A及4B中在425-0处指示为子阵列0且在425-N-1指示为子阵列N-1。

被认为是水平连接的图4A及4B说明图4A中部分展示且在图4B中部分展示的每一子阵列(例如,子阵列425-0)可具有多个相关联感测放大器406-0、406-1、...、406-X-1及计算组件431-0、431-1、...、431-X-1。例如,每一子阵列425-0、...、425-N-1可具有一或多个相关联感测组件条带(例如,图1B中的124-0、...、124-N-1)。根据本文中所描述的实施例,每一子阵列425-0、...、425-N-1可分裂成部分462-1(在图4A中展示)、462-2、...、462-M(在图4B中展示)。部分462-1、...、462-M可通过将可选择数目(例如,2、4、8、16等)个感测放大器及计算组件(例如,感测电路150)以及列422-0、...、422-X-1当中的对应列(例如,422-0、422-1、...、422-7)耦合到给定共享I/O线(例如,455-M)来定义。对应对的感测放大器及计算组件可有助于形成在图4A及4B中的450-0、450-1、...、450-X-1指示的感测电路。

在一些实施例中,如图3、4A及4B中所展示,可选择性地耦合到共享I/O线455(其可为一对共享差分线)的感测放大器及计算组件以及对应列的特定数目可为八个。子阵列的462-1、462-2、...、462-M的数目可与可耦合到子阵列的共享I/O线455-1、455,2、...、455-M的数目相同。可根据各种DRAM架构来安排子阵列,用于在子阵列425-0、425-1、...、425-N-1之间耦合共享I/O线455-1、455,2、...、455-M。

例如,图4A中的子阵列0(425-0)的部分462-1可对应于图3中所说明的子阵列的部分。因此,感测放大器0(406-0)及计算组件0(431-0)可耦合到列422-0。如本文中所描述,列可经配置以包含被称作为数字线0及数字线0*的一对互补数字线。然而,替代实施例可包含用于单列存储器单元的单个数字线405-0(感测线)。实施例并不限于此。图3中所说明的列选择电路358及/或图4A及4B中所说明的多路复用器可通过可选择地耦合到经耦合到子阵列的存储器单元中的特定列的相应感测线的感测放大器及计算组件中的至少一者来选择性地感测特定列中的数据。

如图1B及1C中所说明且在图4A及4B中更详细地展示,在各种实施例中,感测组件条带可从子阵列的一端延伸到子阵列的相对端。例如,如针对子阵列0(425-0)所展示,感测组件条带0(424-0),其在折叠的感测线架构中在DRAM列的上方及下方示意性地展示可包含部分462-1中的感测放大器0(406-0)及计算组件0(431-0)并从其延伸到子阵列0(425-0)的部分462-M中的感测放大器X-1(406-X-1)及计算组件X-1(431-X-1)。

如结合图3所描述,图4A及4B中所说明的用于感测放大器406-0、406-1、...、406-X-1与计算组件431-0、431-1、...、431-X-1及共享I/O线0(455-1)到共享I/O线M-1(455-M)组合的配置不限于感测放大器与感测电路(450)的计算组件的组合一半形成在存储器单元列的上面,且一半形成在折叠DRAM架构中的存储器单元422-0、422-1、...、422-X-1的列下面。例如,在各种实施例中,用于特定子阵列425的感测组件条带424可形成为具有任何数目个感测放大器,且感测组件条带的计算组件形成在存储器单元列的上面及下面。因此,在如图1B及1C中所说明的一些实施例中,感测电路及相应的感测组件条带的所有感测放大器及计算组件可形成在存储器单元列的上面或下面。

如结合图3所描述,每一子阵列可具有列选择电路(例如,358),其经配置以对子阵列(例如子阵列0(425-0))的特定列422及其互补数字线实施数据移动运算,将所存储的数据值从感测放大器406及/或计算组件431耦合到给定的共享I/O线455-1、...、455-M(例如,图3中的互补共享I/O线355)。例如,控制器140可指示感测子阵列0(425-0)的特定行(例如,行319)中的存储器单元的数据值并将其移动到相同或不同列中的子阵列425-1、425-2、...、425-N-1的相同或不同编号的行。例如,在一些实施例中,数据值可从第一子阵列的一部分移动到第二子阵列的不同部分(例如,未必从子阵列0的部分462-1到子阵列N-1的部分462-1)。例如,在一些实施例中,可使用移位技术将数据值从部分462-1中的列移动到部分462-M中的列。

列选择电路(例如,图3中的358)可指示子阵列的部分(例如,子阵列425-0的部分462-1)中的八列(例如,digit/digit*)中的每一者针对特定行移动(例如,顺序移动),且使得所述部分的感测组件条带(例如,424-0)的感测放大器及计算组件可存储(高速缓存)所有数据值并以特定顺序(例如,按照感测列的顺序)将其移动到共享I/O线中。利用互补数字线digit/digit*及互补共享I/O线355,针对八列中的每一者,可存在从子阵列的一部分排序到共享I/O线的16个数据值(例如,位),使得一个数据值(例如,位)一次从感测放大器及计算组件中的每一个移动(例如,传送,传输及/或馈送)到互补共享I/O线中的每一者。

如此,具有2048个子阵列的部分,每一者具八个列(例如,子阵列425-0、425-1、...、425-N-1中的每一者的子阵列部分462-1),且每一者经配置以耦合到不同共享I/O线(例如,455-1到455-M),2048个数据值(例如,位)可基本上在相同的时间点(例如,并行)移动到多个共享I/O线。因此,多个共享I/O线可为例如至少一千位宽(例如,2048位宽),以便提高DRAM实施方案中的数据移动的速度、速率及/或效率(例如,相对于64位宽的数据路径)。

如图4A及4B中所说明,在每一子阵列(例如,子阵列425-0)中,一或多个多路复用器460-1及460-2可耦合到子阵列的感测部件条带424-0的每一部分462-1、462-2、462-M的感测放大器及计算组件。在各种实施例中,结合图4A及4B所说明的多路复用器460可至少包含结合图3所说明的列选择电路358所体现及包含的功能性。多路复用器460-1及460-2可经配置以存取、选择、接收、协调、组合由子阵列的部分(例如,部分462-1)中的多个选定感测放大器及计算组件存储((高速缓存)的数据值(例如,位)并将其移动(例如,传送及/或传输)到共享I/O线(例如,共享I/O线455-1)。如此,如本文中所描述,共享I/O线可经配置以在成对的存储体区段子阵列之间耦合源位置与目的地位置以改进数据移动。

如本文中所描述,控制器(例如,140)可耦合到存储器装置的存储体(例如,121)以执行命令以将存储体中的数据从源位置(例如,子阵列425-0)移动到目的地位置(例如,子阵列425-N-1)。在各种实施例中,存储体区段可包含存储体区段中的存储器单元的多个子阵列(例如,子阵列125-0到125-N-1及425-0到425-N-1)。在各种实施例中,存储体区段可进一步包含经由存储器单元的多个列(例如,322-0、422-0及422-1)耦合到多个子阵列的感测电路(例如,150)。感测电路可包含耦合到列中的每一个且经配置以实施命令以移动数据的感测放大器及计算组件(例如,分别在图2中的206及231以及在图3、4A及4B中的相应参考标号)。

在各种实施例中,存储体区段可进一步包含共享I/O线(例如,155、355、455-1及455-M)以耦合源位置及目的地位置以移动数据。另外,控制器可经配置以指示多个子阵列及感测电路对移动数据执行数据写入运算到存储体区段中的目的地位置(例如,不同选定子阵列的特定行及/或列中的选定存储器单元)。

根据各种实施例,设备可包含感测组件条带(例如,124及424),其包含对应于存储器单元的多个列的多个感测放大器及计算组件(例如,其中存储器单元的每一列经配置以耦合到感测放大器及计算组件)。存储体区段中的多个感测组件条带(例如,424-0到424-N-1)可对应于存储体区段中的多个子阵列(例如,425-0到425-N-1)。

多个感测放大器及计算组件可选择性地(例如,顺序地)耦合到共享I/O线(例如,如由图3中358-1、358-2、359-1及359-2处的列选择电路所展示)。列选择电路可经配置以可选择地将共享I/O线耦合到例如源位置中的八个感测放大器及计算组件中的一或多个(例如,如图3中的子阵列325及图4A及4B中的子阵列部分462-1到462-M中所展示)。如此,源位置中的八个感测放大器及计算组件可顺序地耦合到共享I/O线。根据一些实施例,在阵列中形成的共享I/O线的数目可对应于将阵列中的列的数目除以可选择地耦合到共享I/O线中的每一者的八个感测放大器及计算组件。例如,当阵列中存在16,384个列(例如,库部分)或其每一子阵列中,且每列有一个感测放大器及计算组件时,16,384个列除以8产生2048个共享I/O线。设备可在各种实施例中包含多个多路复用器(例如,如在图4A及4B中的各种子阵列的部分462-1到462-M中的460-1及460-2处所示)。这样,根据各种实施例,设备可包含多个感测放大器及计算组件以及多路复用器以选择感测放大器及计算组件以耦合到共享I/O线。可在感测放大器与计算组件以及共享I/O线之间形成多路复用器以存取、选择、接收、协调、组合及移动(例如,传送及/或传输)所选数据到耦合的共享I/O线。

如本文中所描述,存储器单元阵列可包含具有一对互补感测(数字)线(例如,图3中的305-1及305-2)的一列存储器单元。在一些实施例中,感测电路可包含可选择地耦合到所述对互补感测(数字)线中的每一个的感测放大器(例如,306-0)及经由传输栅极(例如,307-1及307-2)耦合到感测放大器的计算组件(例如,331-0)。

根据一些实施例,源感测组件条带(例如,124及424)可包含多个感测放大器及计算组件,其可经选择及配置以将从源位置的行并行感测的数据值(例如,位的数目)移动(例如,传送及/或传输)到多个共享I/O线。例如,响应于通过列选择电路的顺序感测的命令,存储在子阵列的行的选定列的存储器单元中的数据值可被感测组件条带中的感测放大器及计算组件感测并存储(高速缓存)直到多个数据值(例如,位数)达到存储在所述行中的数据值的数目及/或阈值(例如,感测组件条带中的感测放大器及计算组件的数目)且然后经由多个共享I/O线移动(例如,传送及/或传输)数据值。在一些实施例中,数据阈值量可对应于多个共享I/O线的至少一千位宽度。

在一些实施例中,源感测组件条带可包含多个感测放大器及计算组件,其可经选择并配置以存储当所感测的数据值的量(例如,数据位的数目)超过多个共享I/O线的至少一千位宽时从源位置的行感测的数据值(例如,位)。在此实施例中,源感测组件条带可经配置以当耦合到多个共享I/O线作为多个子组时移动(例如,传送及/或传输)从源位置的行感测的数据值。例如,数据值的至少第一子组的量可对应于多个共享I/O线的至少一千位宽度。

如本文中所描述,控制器可经配置以经由共享I/O线将数据值从源位置中的选定行及选定感测线移动到目的地位置中的选定行及选定感测线。在各种实施例中,可响应于控制器140及/或耦合到特定子阵列125-0、125-1、...、125-N-1及/或子阵列的特定传感组件条带125-0、125-1、...、125-N-1的特定子阵列控制器170-0、170-1、...、170-N-1的命令来移动数据值。根据各种实施例,输入到控制器的源位置(例如,第一子阵列)中的选定行及选定感测线可与目的地位置(例如,第二子阵列)中的选定行及选定感测线不同。

如本文中所描述,源阵列中选定行的存储器单元及选定感测线中的数据的位置可不同于移动到目的地子阵列中的所选行及选定源线的存储器单元的数据的位置。例如,源位置可为图4A中的子阵列0(425-0)的部分462-1的特定行及数字线,且目的地可为图4B中的子阵列N-1(425-N-1)中的部分462-M的不同行及数字线。

如本文中所描述,目的地感测组件条带(例如,124及424)可与源感测组件条带相同。例如,多个感测放大器及/或计算组件可经选择及配置(例如,取决于来自控制器及/或子阵列控制器170-0、170-1、...、170-N-1的命令)以可选择地将所感测的数据移动(例如,传送及/或传输)到所耦合的共享I/O线,且可选择地从多个所耦合的共享I/O线中的一者接收数据(例如,被移动到目的地位置)。可使用列选择电路(例如,图3中的358-1、358-2、359-1及359-2)及/或本文中所描述的多路复用器(例如,图4A及4B中的460-1及460-2)来执行目的地感测组件条带中的感测放大器及计算组件的选择。

根据一些实施例,控制器可经配置以将由目的地感测组件条带中的多个选定感测放大器及/或计算组件可选择地接收的数据量(例如,多个数据位)写入到目的地子阵列中的目的地位置的选定行及选定感测线。在一些实施例中,要写入的数据量对应于多个共享I/O线的至少一千位宽度。

根据一些实施例,目的地感测组件条带可包含多个选定感测放大器及计算组件,其经配置以当所接收数据值的量(例如,数据位的数目)超过多个共享I/O线的至少一千位宽度时存储所接收的数据值(例如,位)。根据一些实施例,控制器可经配置以将所存储的数据值(例如,数据位的数目)写入到目的地位置中的选定行及多个选定感测线作为多个子组。在一些实施例中,写入数据的至少第一子组的数据值的量可对应于多个共享I/O线的至少一千位宽度。根据一些实施例,控制器可经配置以将所存储的数据值(例如,数据位的数目)写入到目的地位置中的选定行及选定感测线作为单个集合(例如,不作为数据值的子集)。

如本文中所描述,控制器(例如,140)可耦合到存储器装置(例如,120)的存储体(例如,121)以执行用于移动存储体中的数据的命令。存储器装置中的存储体可包含存储器单元中的多个子阵列(例如,如图1B及1C中所展示的125-0、125-1、...、125-N-1及如图4A及4B中所展示的425-0、425-1、...、425-N-1),个别地耦合到多个子阵列中的每一者的多个子阵列控制器(例如,图1C中的170-0、170-1、...、170-N-1)以指示通过多个子阵列中的每一者中的感测电路对存储在多个(例如,选定子组或全部)存储器单元中的数据执行运算(例如,单个运算)。

存储体还可包含按间距具有多个子阵列且耦合到多个子阵列的感测电路(例如,图1A中的150及图2中的250)(例如,经由图2中的多个感测线205-1及205-2、图3、4A及4B中的305-1及305-2以及对应参考标号)。感测电路可包含耦合到感测线的感测放大器及计算组件(例如,分别在图2中的206及231以及在图3、4A及4B中的相应参考标号)。

控制器140可经配置以向多个子阵列控制器中的每一个提供相应的指令集(例如,170-0、170-1、...、170-N-1)。例如,控制器可经配置以耦合到多个子阵列控制器以输入将由多个子阵列控制器中的每一个执行的相应指令集以指示由感测电路执行相应运算。

存储器单元的多个子阵列可为DRAM单元的子阵列。控制器可经配置以响应于命令,使用DRAM协议及DRAM逻辑及电接口在存储器单元的存储体中的顺序子阵列之间以脉动方式移动数据值,如本文中所描述。在一些实施例中,主机(例如,图1A中的110)可向控制器提供数据,以供控制器执行用于数据的脉动移动的命令。

第一高速缓冲存储器(例如,图1C中的171-1)可与控制器相关联。第一高速缓冲存储器可经配置以从主机接收数据且向控制器140发出接收到数据以起始多个运算的存储序列的执行的信号。控制器可经配置以基于数据的输入(例如,分析高速缓冲存储器中未经处理的数据的类型及/或内容)来确定由耦合到多个子阵列的子阵列控制器执行的多个序列运算中的哪一个运算适于处理数据。因此,控制器可经配置以基于耦合到特定子阵列的特定子阵列控制器以适当的所存储连续序列运算执行第一运算向特定子阵列提供(例如,输入)数据。例如,特定子阵列可耦合到特定子阵列控制器,所述子阵列控制器经配置以执行第一指令集,以指示对存储在多个存储器单元中的数据以在适当的所存储连续序列运算执行第一运算。

在各种实施例中,连接电路(例如,图2中的232-1及232-2)可经配置以将耦合到第一子阵列中的特定列的感测电路连接到第二(例如,相邻)子阵列中的对应列中的多个行。如此,连接电路可经配置以将数据值(例如,从选定行及特定列)移动(例如,传送及/或传输)到第二子阵列中的选定行及对应列(例如,数据值可经拷贝到其中的选定存储器单元)执行序列操作中的下一个运算。在一些实施例中,当数据值存储在感测电路中且控制器可选择与第二子阵列中的对应列相交的特定行及/或特定存储器以通过数据值的移动(例如,传送及/或传输)接收数据值时,可通过第一子阵列的子阵列控制器执行指令集指示数据值的移动。

控制器(例如,140)可耦合到存储器装置的存储体以执行用于将数据从存储体中的起始位置移动到结束位置的命令。多个子阵列控制器(例如,图1C中的170-0、170-1、...、170-N-1)可经配置以耦合到控制器以通过多个子阵列控制器中的每一者接收相应的指令集以指示关于存储在多个子阵列中的每一者中的数据执行运算。例如,多个子阵列控制器可经配置以耦合到控制器以接收指令集的输入到多个子阵列控制器中的每一者中,以在经执行时指示对多个子阵列(例如,图1B和1C中的125-0、125-1、...、125-N-1及图4A及4B中的相应参考标号)中的每一相应子阵列的数据执行运算。在各种实施例中,多个子阵列可包含多个指令集以对子阵列(例如,经配置用于处理不同数据内容)的多个连续子组执行由子阵列控制器存储的不同顺序的运算。

控制器可经配置以基于耦合到特定子阵列的特定子阵列控制器经配置以执行用于适当的连续序列运算的第一指令集而向特定子阵列提供(例如,输入)数据。耦合到特定子阵列的特定子阵列控制器可为存储体中的用于执行适当的所存储连续序列运算的起始位置(例如,基于对高速缓冲存储器中未处理数据的类型及/或内容的分析)。

在各种实施例中,作为起始位置的特定子阵列可具有存储在存储体中的起始位置与第一子阵列的开始之间的多个子阵列的至少一个连续序列运算。例如,由控制器确定为适合于未处理数据的起始位置可为图1C中的子阵列125-3,其中三个子阵列125-0、125-1及125-2为存储体中的前几个子阵列。

在各种实施例中,连续序列的多个运算的完整执行可经配置以在存储体的子阵列中的结束位置处产生输出,其中在结束位置处的特定子阵列在结束位置与存储体中最后一个子阵列的末端之间具有至少一个子阵列。例如,完成运算次数以产生输出的结束位置可为图1C中的子阵列125-3,其中子阵列125-N-1为存储体中的最后一个子阵列。经确定为适合作为输入未处理数据的起始位置的所存储连续序列运算可在第一子阵列的起始位置及开头与最后一个子阵列的结束位置及末端之间具有多个子阵列。例如,如本文中所描述,被确定为适当的且输入未处理数据的所存储连续序列运算可位于子阵列堆叠的中间中。

第二高速缓冲存储器(例如,图5中的571-2)可与控制器相关联。第二高速缓冲存储器可经配置以从多个子阵列接收已完成执行序列运算的输出。第二高速缓冲存储器可经配置以向控制器(例如,图5中的540)发出信号以在等待时间已期满之后通过将新接收的数据输入到子阵列中的选定存储器单元(例如,在子阵列的特定列及行中)在开始位置处来起始执行序列运算的另一次迭代。在等待时间期满之前,可输入新接收的数据。例如,如结合图5所描述,可将第二批未处理的数据输入到第一子阵列525-0中以在第一批未处理数据已在其中经处理并作为供第二子阵列525-1处理的第一组数据值以产生第二组数据值移动(例如,传送及/或拷贝)之后通过执行“与”运算来进行处理。

可从控制器接收命令以将数据从源位置移动到目的地位置(例如,存储器单元的DRAM阵列)。可经由多个共享I/O线使用感测放大器及计算组件将数据从源位置移动到(例如,DRAM阵列的)目的地位置。

在一些实施例中,2048个共享I/O线可经配置为2048位宽的共享I/O线。根据一些实施例,用于将数据从源位置中的第一行移动到目的地位置中的第二行的多个循环可通过使与阵列中的存储器单元行相交的阵列中的行的数目除以多个共享I/O线的2048位宽度来确定。例如,阵列(例如,存储体、存储体区段及其子阵列)可具有16,384个列,其可对应于一行中的16,384个数据值,其在除以与行相交的多个共享I/O线的2048位宽度时可产生八个周期,每一单独的周期在基本上相同的时间点(例如,并行)以用于移动所述行中的所有数据。替代地或另外地,用于将数据从源位置中的第一行移动到目的地位置中的第二行的带宽可通过使与阵列中的存储器单元行相交的阵列中的列的数目除以多个共享I/O线的2048位宽度并将结果乘以控制器的时钟速率来确定。在一些实施例中,确定阵列的行中的多个数据值可基于阵列中的多个感测(数字)线。

存储器单元的第一子阵列中的源位置可经配置以经由多个共享I/O线耦合到存储器单元的第二子阵列中的目的地位置,其中多个共享I/O线可经配置为至少一千位宽的共享I/O线。用于第一子阵列(例如,425-0)的第一感测组件条带(例如,424-0)及用于第二子阵列(例如,425-N-1)的第二感测组件条带(例如,424-N-1)可经配置以包含耦合到第一及第二子阵列(例如,422-0到422-X-1)中的存储器单元的每一对应列的感测放大器及计算组件(例如,分别为406-0及431-0)。控制器可经配置以耦合到第一及第二子阵列以及第一及第二感测组件条带的存储器单元(例如,经由列选择电路358-1、358-2、359-1及359-2)。

可使用用于第一子阵列的第一感测组件条带及用于第二子阵列的第二感测组件条带经由多个共享I/O线将数据从第一子阵列中的源位置移动到第二子阵列中的目的地位置。用于第一子阵列的第一放大器条带及用于第二子阵列的第二感测组件条带可相应于各种实施例经配置以耦合到多个共享I/O线(例如,经由图3中的列选择电路358-1、358-2、359-1及359-2及/或图4A及4B中的多路复用器460-1及460-2)。

根据一些实施例,第一子阵列中的源位置及第二子阵列中的目的地位置可在存储器装置的单个存储体区段中(例如,如图1B及1C以及图4A及4B中所展示)。替代地或另外地,第一子阵列中的源位置及第二子阵列中的目的地位置可在耦合到多个共享I/O线的存储器装置的单独的存储体及存储体区段中。如此,所述方法可包含将数据(例如,并行地)经由多个共享I/O线从用于第一子阵列的第一感测组件条带移动到用于第二子阵列的第二感测组件条带。

感测组件条带(例如,所有感测组件条带424-0到424-N-1)可经配置在多个子阵列(例如,子阵列425-0到425-N-1)中的每一个中以耦合到多个共享I/O线(例如,共享I/O线455-1)。在一些实施例中,第一子阵列中一次只有八列互补感测线中的一者可使用第一感测组件条带(例如,感测组件条带424-0)耦合到多个共享I/O线中的一者且第二子阵列中一次只有八列互补感测线中的一者可使用第二感测组件条带(例如,感测组件条带424-N-1)耦合到多个共享I/O线中的一个。

数据可经由多个共享I/O线从第一感测组件条带的多个感测放大器及计算组件移动到第二感测组件条带的相应数目个感测放大器及计算组件。例如,从源位置的每一感测放大器及/或计算组件感测的数据可被移动到目的地位置中的对应的感测放大器及/或计算组件。

根据各种实施例,控制器及/或子阵列控制器可选择(例如,通过适当的选择线打开)第一存储器单元行,其对应于源位置,用于第一感测组件条带以感测存储在其中的数据,将多个共享I/O线耦合(例如,向其开放)到第一感测组件条带,且将第二感测组件条带耦合(例如,打开)到多个共享I/O线(例如,经由列选择电路358-1、358-2、359-1及359-2及/或多路复用器460-1及460-2)。如此,数据可经由多个共享I/O线从第一感测组件条带并行移动到第二感测组件条带。第一感测组件条带可存储(例如,高速缓存)所感测的数据,且第二感测组件条带可存储(例如,高速缓存)所移动的数据。

控制器及/或子阵列控制器可为第二感测组件条带(例如,经由列选择电路358-1、358-2、359-1及359-2及/或多路复用器460-1及460-2)选择(例如,经由适当的选择线开放)第二存储器单元行,其对应于目的地位置。然后,控制器及/或子阵列控制器可将移动到第二感测组件条带的数据直接写入到第二存储器单元行中的目的地位置。

在DRAM实施方案中,共享I/O线可用作数据路径(例如,数据流管线),以在阵列中的各个位置(例如,子阵列)之间移动存储器单元阵列中的数据。共享I/O线可在所有感测组件条带之间共享。在各种实施例中,一个感测组件条带或一对感测组件条带(例如,耦合源位置及目的地位置)可在任何给定时间与共享I/O线通信。共享I/O线用于完成将数据从一个感测组件条带移动到另一感测组件条带。

可为第一感测组件条带选择(例如,通过控制器及/或子阵列控制器经由适当的选择线开放)行,且可感测行中的存储器单元的数据值。在感测之后,第一感测组件条带可耦合到共享I/O线,以及将第二感测组件条带耦合到相同的共享I/O线。第二感测组件条带仍然可处于预充电状态(例如,准备接受数据)。在来自第一感测组件条带的数据已移动(例如,驱动)到第二感测组件条带中之后,第二感测组件条带可触发(例如,锁存)以将数据存储到相应的感测放大器及计算组件中。可打开耦合到第二感测组件条带的行(例如,在锁存数据之后),且可将驻留在感测放大器及计算组件中的数据写入到所述行的目的地位置中。

图5根据本发明的多个实施例电路说明与使用电路执行多个数据移动运算相关联的时序图533。图5中示意性说明的时序图533经展示为与数据的脉动移动相关联的序列运算的实例,如本文中所描述(例如,相邻子阵列525-0、525-1、525-2、525-3及525-4之间的数据的顺序移动)。任意长度(例如,运算周期及/或时钟周期)的时间标度(例如,时间点1、2、3、4及5)被水平划分且作为实例展示。

在每一时间点处,下面所描述的功能可在执行指令序列的子阵列中基本上同时执行(例如,考虑到连续长度的共享I/O线一次移动一个数据值(例如,位)。例如,对于第一子阵列,数据的输入、利用运算处理数据,以及将数据移动到下一子阵列等可与第二子阵列、第三子阵列等等中的对应函数基本上同时发生,直到在子阵列控制器中存储的指令序列的最后一个子阵列中执行对应功能。

要存储在子阵列控制器中及/或由子阵列控制器(例如,对应于结合图1C所描述的170-0、170-1、...、170-N-1的子阵列控制器)执行且执行为序列运算的指令序列在图5中通过实例展示为五种不同运算。然而,本发明的实施例不限于五个运算的序列,但所有运算都不同,及/或任何或所有运算为图5中所展示的特定运算。

在时间点1,当第一批未处理数据已被输入到第一子阵列525-0时,可通过第一子阵列控制器(例如,结合图1C描述的子阵列控制器170-0)执行“与”运算来处理存储在其一些或所有存储器单元中的第一数据值以产生第一组数据值。在对第一组数据值进行此处理之后,可通过经由多个共享I/O线155、355及455移动(例如,传送及/或传输)从第一感测组件条带(例如,结合图1C所描述的感测组件条带124-0)移动(例如,传送及/或拷贝)第一组数据值,如分别结合图1C、3、4A及4B所描述用于输入到另一(例如,第二)子阵列525-1的选定存储器单元(例如,一些或所有存储器单元)。

在子阵列525-1中的时间点2,可通过第二子阵列控制器(例如,结合图1C描述的子阵列控制器170-2)执行“或”运算来进一步处理存储在子阵列525-1中的一些或所有存储器单元中的第一组数据值。在对第一组数据值进行此处理之后,可通过经由多个共享I/O线移动(例如,传送及/或传输)以输入到下一个(例如,第三)子阵列525-2的选定存储器单元从第二感测组件条带(例如,结合图1C所描述的感测组件条带124-1)移动(例如,传送及/或拷贝)第一组数据值。在时间点2基本上与第二子阵列525-1的选定存储器单元(例如,一些或所有存储器单元)的输入基本上同时,可将第二批未处理数据输入到第一子阵列525-0的一些或所有存储器单元中以通过执行“与”运算来处理以产生第二组数据值。在对第二组数据值进行此处理之后,可通过经由多个共享I/O线移动(例如,传送及/或传输)从第二感测组件条带(例如,结合图1C所描述的感测组件条带124-0)移动(例如,传送及/或拷贝)第一组数据值,用于输入到第二子阵列525-1的选定存储器单元(例如,一些或所有存储器单元)。

在子阵列525-2中的时间点3,可通过第三子阵列控制器(例如,结合图1C描述的子阵列控制器170-2)执行“非或”运算来进一步处理存储在子阵列525-2中的一些或所有存储器单元中的第一组数据值。在对第一组数据值进行此处理之后,可通过经由多个共享I/O线移动(例如,传送及/或传输)从第三感测组件条带(例如,感测组件条带124-2)移动(例如,传送及/或拷贝)第一组数据值,用于输入到下一(例如,第四)子阵列525-3的选定存储器单元。

在时间点3基本上与第三子阵列525-2的选定存储器单元(例如,一些或所有存储器单元)的输入同时,可以将第三批未处理数据输入到一些或所有存储器单元中。通过执行AND运算来处理第一子阵列525-0以产生第三组数据值。在对第三组数据值进行此处理之后,可通过经由多个共享I/O线移动(例如,传送及/或传输)从第三感测组件条带(例如,感测组件条带124-0)移动(例如,传送及/或拷贝)第一组数据值,用于输入到第二子阵列525-1的选定存储器单元(例如,一些或所有存储器单元)。

与在时间点3处将第一组数据值输入到第三子阵列525-2的选定存储器单元(例如,一些或所有存储器单元)及将第三组数据值输入到第一子阵列525-0的选定存储器单元基本上同时,可将第二批数据值输入到第二子阵列525-1的选定存储器单元以通过执“或”运算来处理。在对第二组数据值进行此处理之后,可通过经由多个共享I/O线移动(例如,传送及/或传输)从第二感测组件条带(例如,感测组件条带124-1)移动(例如,传送及/或拷贝)第二组数据值,用于输入到第三子阵列525-2的选定存储器单元。

在图5中所展示的实例中,刚刚描述的脉动数据移动运算可通过在时间点5执行运算周期的最后一个运算(例如,“异或”运算)而继续。在用于按运算序列完成的五个运算的五个时间点(例如,五个运算周期及/或时钟周期)的等待时间之后,可在此后的每个时间点输出完整经处理的一批数据,直到输入到第一子阵列525-0的最后一批未处理数据已经完全处理为止。

从运算序列中的最后一个(例如,第五)子阵列525-4,可输出每批的完全处理的数据值(例如,如141处所展示且结合图1B所描述),在一些实施例中,与控制器540相关联的高速缓冲存储器571-2。在图5中所展示的控制器540可在各种实例中表示由图1A到1C中所展示的控制器140体现且包含在其中的功能性的至少部分。控制器540可经配置以经由例如HSI带外总线157(例如,如结合图1A所描述的)将每批经完全处理的数据值从高速缓冲存储器571-2输出到主机110。

因此,本文中所描述的实施例提供了一种用于运算存储器装置以实施由处理资源执行非暂时性指令执行的数据移动(例如,如本文中所描述的脉动数据移动)的方法。如本文中所描述,所述方法可包含通过执行第一指令集对第一子阵列中的特定行中的存储器单元存储的数据值执行第一运算,其中第一指令集可位于第一子阵列的第一子阵列控制器中。所述方法可包含使用用于第一子阵列的第一感测组件条带将已执行了第一运算的数据值移动到第二子阵列中的选定存储器单元行。所述方法可包含通过执行第二指令集对移动到第二子阵列的选定行的数据值执行第二运算,其中第二指令集可在第二子阵列的第二子阵列控制器中。

例如,在一些实施例中,第一指令集可存储在第一子阵列控制器中,其中第一子阵列控制器耦合到第一子阵列,且第二指令集可存储在第二子阵列控制器中,其中第二子阵列控制器耦合到第二子阵列。替代地及/或另外地,第一及第二指令集可分别通过第一子阵列控制器及第二子阵列控制器从例如控制器140存取(例如,未被存储)以执行用于执行特定运算。如此,所述方法可包含控制器通过执行第一指令集来指示关于存储在第一子阵列中的数据的第一运算的执行,且通过执行第二指令集来指示关于存储在第二子阵列中的数据的第二运算的执行。

如本文中所描述,所述方法可包含经由共享I/O线(例如,455-1、455-2、...、455-M)将第一子阵列(例如,125-0)的第一感测放大器条带(例如,124-0)耦合到第二子阵列(例如,125-1)中的存储器单元的选定行(例如,319)。数据值可经由共享I/O线从已对其执行第一运算的第一子阵列中的特定行移动(例如,传送及/或传输)到使用耦合的第一感测放大器条带的第二子存储器单元中的选定存储器单元行。来自第一子阵列中的特定行的数据值可通过执行第一运算来处理,如第一子阵列控制器对第一子阵列执行指令所指示的,且可通过执行第二子阵列的选定行中的第二运算处理(例如,以脉动方式处理)数据值,如由通过第二子阵列的第二子阵列控制器执行指令所指示。在各种实施例中,所述方法可包含使用第一感测组件条带在第一子阵列中一次仅将多个(例如,八个)列(例如,互补感测线305-1及305-2的列)中的一者耦合到多个共享I/O线中的每一个。

控制器(例如,140)可耦合到第一及第二子阵列的子阵列控制器。控制器可向第一子阵列的子阵列控制器提供(例如,输入)第一指令集以指示通过第一感测组件条带执行第一运算。控制器还可向第二子阵列的子阵列控制器提供(例如,输入)第二指令集以指示通过第二感测组件条带执行第二运算。所述方法可包含控制器选择第一子阵列中的第一存储器行以供第一感测组件条带单元感测存储在其中的数据,将多个共享I/O线耦合到第一感测组件条带,将第二子阵列中的选定存储器单元行耦合到多个共享I/O线,且经由多个共享I/O线将数据从第一感测组件条带并行地移动到第二子阵列中的选定存储器单元行。第一感测组件条带可存储(例如,高速缓存)已对其执行第一运算的数据值,且移动的数据值可被存储(例如,高速缓存及/或保存)在第二子阵列中的选定存储器单元行中。

如结合图5所描述,所述方法可包含通过由耦合到第一子阵列的第一子阵列控制器执行第一指令集且通过由耦合到第二子阵列的第二子阵列控制器执行第二指令集基本上同时执行序列运算的每一运算。在存在数据以用于在第一子阵列中的特定行及第二子阵列中的选定存储器单元行中进行处理之后,可执行序列运算(例如,基本上同时执行至少两个运算)。在各种实施例中,通过由第一子阵列控制器执行指令的第一运算的执行可经配置成与通过由第二子阵列控制器执行指令而执行的第二运算不同的运算。然而,当适合于在第一及第二子阵列中执行的指令序列时,第一及第二子阵列控制器可经配置以执行相同的运算。

虽然本文中已说明及描述了包含感测电路、感测放大器、计算组件、感测组件条带、子阵列控制器、共享I/O线、列选择电路、多路复用器、时序序列等的各种组合及配置的实例性实施例,但本发明的实施例不限于本文中明确叙述的那些组合。本文中所揭示的感测电路、感测放大器、计算组件、感测组件条带、子阵列控制器、共享I/O线、列选择电路、多路复用器、定时序列等的其它组合及配置明确地包括在本发明的范围内。

尽管本文中已说明并描述了特定实施例,但所属领域的技术人员将了解,经计算以实现相同结果的布置可替代所展示的特定实施例。本发明旨在涵盖本发明的一或多个实施例的变更或变化。应理解,上述描述是以说明性方式进行的,而非限制性的。在阅读以上描述后,上述实施例的组合以及本文未具体描述的其它实施例对于所属领域的技术人眼来说将是显而易见的。本发明的一或多个实施例的范围包含括使用上述结构及过程的其它应用。因此,应当参考所附权利要求以及这些权利要求所赋予的等价物的全部范围来确定本发明的一或多个实施例的范围。

在前面的具体实施方式中,出于简化本发明的目的,一些特征在单个实施例中被组合在一起。本发明的此方法不应被解释为反映本发明的公开实施例必须使用比每个权利要求中明确记载的更多特征的意图。确切来说,如以下权利要求书反映,发明性标的物在于不足单个前所揭示实施例的所有特征。因此,以下权利要求书特此明确并入详细说明中,其中每一权利要求独自作为单独实施例。

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