存储器形状的制作方法

文档序号:19418581发布日期:2019-12-14 01:11阅读:252来源:国知局
存储器形状的制作方法

本发明一般来说涉及半导体存储器及方法,且更特定来说,涉及经由存储器形状的使用进行的存储器装置的多维连续物理分配。



背景技术:

存储器装置通常经提供作为计算系统或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力以维持其数据(例如,用户数据、错误数据等),且包含随机存取存储器(ram)、动态随机存取存储器(dram)及同步动态随机存取存储器(sdram)以及其它易失性存储器。非易失性存储器可通过在未供电时保持所存储数据而提供持久数据且可包含非易失性随机存取存储器(nvram)、nand快闪存储器、nor快闪存储器、只读存储器(rom)、电可擦除可编程rom(eeprom)、可擦除可编程rom(eprom)及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻式随机存取存储器(rram)及磁阻式随机存取存储器(mram),例如自旋扭矩转移随机存取存储器(sttram)以及其它非易失性存储器。

计算系统通常包含可检索及执行指令且将所述所执行指令的结果存储到适合位置的若干个处理资源(例如,一或多个处理器)。处理资源可包括可执行指令以对数据(例如,一或多个操作数)执行例如and、or、not、nand、nor及xor逻辑操作的逻辑操作的若干个功能单元(例如,在本文中称为功能单元电路(fuc)),例如算术逻辑单元(alu)电路、浮动点单元(fpu)电路及/或组合逻辑块。

在将指令提供到功能单元电路以用于执行中可涉及计算系统中的若干个组件。可(例如)由例如控制器及/或主机处理资源的处理资源产生所述指令。数据(例如,将对其执行指令以执行逻辑操作的操作数)可存储于可由fuc存取的存储器阵列中。在fuc开始对数据执行指令之前,可从存储器阵列检索指令及/或数据并对其进行定序及/或缓冲。此外,由于可在一个或多个时钟周期中通过fuc执行不同类型的操作,因此还可对操作及/或数据的中间结果进行定序及/或缓冲。在许多例子中,处理资源(例如,处理器及/或相关联fuc)可在存储器阵列外部,且可存取数据(例如,经由处理资源与存储器阵列之间的总线以执行指令)。数据可经由总线从存储器阵列移动到在存储器阵列外部的寄存器。

附图说明

图1图解说明根据本发明的若干个实施例的呈包含至少一个存储器系统的计算系统的形式的设备的框图。

图2图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据存储器形状进行的多维连续物理分配。

图3图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据存储器形状进行的多维连续物理分配。

图4图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据多个存储器形状进行的多维连续物理分配。

图5图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据多个存储器形状进行多维连续物理分配以达成外回路优化。

图6图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据存储器形状阵列进行多维连续物理分配以达成外回路优化。

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

图8是根据本发明的若干个实施例图解说明由感测电路实施的可选择逻辑操作结果的逻辑表。

具体实施方式

在分配存储器的一些方法中,操作系统(os)可提供用于将所分配存储器块组织于物理空间中的方法。关于此论述,“所分配存储器块”指代物理存储器中存储有一定量的所分配存储器(例如,一定数量的字节)的位置。举例来说,calloc()函数分配规定数目个字节且将所述字节初始化到零,此确保所分配存储器块的所有字节已被初始化到零。calloc()函数可识别单个变量的字节的大小及待分配于存储器中的变量的数目。然而,存储器块组织可为一维的(例如,完全线性的)。也就是说,存储器块可经组织使得将数据存储到耦合到连续感测线而非单个存取线的多个存储器单元。一维物理存储器分配可跨越在主机上运行的多样化应用程序组支持主机处理器的带宽。为了所述目标,一维物理存储器分配可增加来自主机处理器的存储器带宽。所分配存储器块可跨越多个存储器组或存储器装置线性地分配(例如,跨越多个存储器组或存储器装置交错)。因此,用户可受限于根据一维物理存储器分配来分配存储器块。如本文中所使用,“用户”指代程序员而非终端用户。

存储器技术(举例来说,存储器中处理)的最新进展可受益于多维存储器分配。也就是说,多维存储器分配可包含耦合到单个存储器阵列的连续感测线及连续存取线的多个存储器单元。因此,在多个维度上分配存储器阵列的物理连续部分可为有利的。然而,多维存储器分配的概念不适合一维存储器分配的当前模型。如果在一个维度上物理地分配存储器,那么可由于固有的无法在同一物理存储器组件中共置数据元素的能力而使pim装置的性能降级。如果虚拟存储器分配不考虑多维存储器布置,那么也可使总体系统性能降级。为使pim装置对存储于存储器分配中的数据进行操作,数据必须物理地组织于同一物理存储器组件(例如,存储器组、存储器装置等)中或在操作之前/期间移动到所述物理组织。此可因为将感测电路耦合到存储器阵列,使得在逐列基础上对数据进行操作。因此,经单独地分配的存储器块的物理布局及定向可影响pim装置的性能。

为克服对一维存储器分配的数据的物理组织的限制,本发明与将数据存储于存储器阵列的多维连续物理分配中有关。存储器的用户定义的多维连续物理分配在本文中称为存储器形状。用户对存储器形状的定义可包含存储器阵列的连续列的数量、存储器阵列的连续行的数量及存储器形状的主要维度。所述主要维度(水平主要维度或垂直主要维度)可确定使存储于存储器形状中的数据跨越的第一维度。在下文与图2及3相关联地进一步论述主要维度的实例。用户(例如,程序员)可定义存储器形状,使得存储器形状的定义为存储器形状的用户定义。

存储器可分配到存储器阵列的连续物理部分。此分配在下文中称为存储器形状。存储器形状可使得用户(例如,程序员)能够明确地定义目标存储器分配的维度结构及布局。当存储器经分配以供由存储器中处理(pim)装置使用时,存储器形状可为有利的。经由存储器形状在同一物理存储器组件(例如,存储器组、存储器装置等)中共置数据项目可改进pim装置的性能及包括pim装置的系统的总体性能。因此,存储器形状可促成pim装置的性能经优化存储器组织。

本发明的若干个实施例可通过将数据元素存储于存储器形状中而促成在数据元素之间且在所述数据元素内的经改进数据局部性。如本文中所使用,“数据元素”指代表示例如整数、浮动点或串的数据值的位群组。如本文中所使用,“将数据元素存储于存储器形状中”指代将所述数据元素存储于耦合到所述存储器形状的存取线及感测线的一或多个存储器单元中。存储器形状的定义超过一维物理组织的定义,所述一维物理组织仅包含存储器分配的大小及存储器分配的个别数据元素的大小。若干个实施例可包含将多于一个类型的数据元素(例如,整数、浮动点、串等)存储于单个存储器形状中。存储器阵列的多维连续物理部分可根据多于一个存储器形状来分配。将数据元素存储于一或多个存储器形状中可减少多个存储器组或存储器装置之间通信。因此,可增加主机处理器的带宽,因为数据元素经存储使得主机处理器不需要与多个存储器组或存储器装置通信。若干个实施例可包含对存储于存储器形状中的数据执行操作。

存储器形状可包含若干个存储器单元以将至少一个完整数据元素存储于所述存储器形状中。举例来说,如果数据元素的长度为物理存储器的四个字节,那么所述存储器形状可包含存储所述数据元素的所述四个字节所必要的若干个存储器单元。然而,所述存储器形状可包含数目超过存储所述数据元素的所述四个字节所必要的存储器单元的存储器单元。存储器形状的主要维度可与数据元素的长度对准。举例来说,如果存储器形状包含长度为一个字节的1024个数据元素,那么存储器形状的水平主要维度的列的数目或存储器形状的垂直主要维度的行的数目可为一个字节的倍数。可对存储器形状的一或多个数据元素执行操作(例如,在存储器形状内执行操作)。可对多个存储器形状的数据元素执行操作(例如,在多个存储器形状之间执行操作)。

在本发明的以下实施方式中,参考形成本发明的一部分的所附图式,且图式中以图解说明的方式展示可如何实践本发明的若干个实施例。充分详细地描述这些实施例以使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程、电及/或结构改变。如本文中所使用,指定符“a”、“b”、“c”、“m”、“n”、“s”及“x”(尤其关于图式中的参考编号)指示可包含若干个如此指定的特定特征。如本文中所使用,“若干个”特定事物可指代一或多个此类事物(例如,若干个存储器装置可指代一或多个存储器装置)。如本文中所使用,术语“第一”及“第二”用于将一个特征与另一特征区分开且未必暗示如此指定的特征之间的次序。

本文中的各图遵循其中第一个数字或前几个数字对应于图式的图编号且其余数字识别图式中的元件或组件的编号惯例。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,240可在图2中指称元件“40”,且类似元件可在图3中指称为340。可用参考编号后续接着连字符及另一编号或字母来指称一个图内的多个类似元件。举例来说,240-1可在图2中指称元件40-1且240-x可指称元件40-x,此可类似于元件440-1。一般可在不具有连字符及额外编号或字母的情况下指称此些类似元件。举例来说,元件240-1、...、240-x一般可指称为240。如将了解,本文中可添加、交换及/或去除各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,各图中所提供的元件的比例及相对标度打算图解说明本发明的特定实施例且不应视为具有限制意义。

图1图解说明根据本发明的若干个实施例的呈包含至少一个存储器系统104的计算系统100的形式的设备的框图。如本文中所使用,主机102、存储器系统104、存储器装置110、存储器阵列111及/或感测电路124还可单独被视为“设备”。

计算系统100可包含耦合到存储器系统104的主机102,存储器系统104包含存储器装置110(例如,包含存储器阵列111及/或感测电路124)。主机102可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储器读卡器以及各种其它类型的主机。在一些实施例中,主机102可为或包含存储器管理单元。存储器管理单元为执行虚拟存储器地址与物理存储器地址之间的变换的硬件组件。主机102可包含系统母板及/或背板且可包含若干个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路)。计算系统100可包含单独集成电路,或主机102及存储器系统104两者均可在同一集成电路上。计算系统100可为(例如)服务器系统及/或高性能计算系统及/或其一部分。尽管图1中所展示的实例图解说明具有冯·诺依曼(vonneumann)架构的系统,但本发明的实施例还可在非冯·诺依曼架构(例如,图灵机(turingmachine))中实施,所述非·冯诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,cpu、alu等)。

为了清晰起见,计算系统100已经简化以集中于与本发明具有特定相关性的特征。例如,存储器阵列111可为混合存储器立方体(hmc)、存储器中处理随机存取存储器(pimram)阵列、dram阵列、sram阵列、sttram阵列、pcram阵列、tram阵列、rram阵列、nvram阵列、nand快闪阵列及/或nor快闪阵列。存储器阵列111可包括存储器单元,所述存储器单元布置成通过存取线(其在本文中可被称为字线或选择线)耦合的行及通过感测线(其在本文中可被称为数字线或数据线)耦合的列。尽管单个存储器装置110展示于图1中,但实施例并不如此受限制。例如,存储器系统104可包含若干个存储器装置110(例如,若干个dram单元)。

存储器装置110可为多维随机存取存储器。存储器的维度为可用于规定存储器内的位置(例如,存储器单元或存储器的可分配部分的位置)的坐标。存储器的维度的实例包含行、列、层(例如,在混合存储器立方体的情形中)、组、芯片等。就坐标来说,存储器可具有多于三个维度。举例来说,存储器装置110可包含多个存储器通道(存储器装置的第一维度为通道),每一通道包含多个存储器裸片(存储器装置110的第二维度为裸片),每一裸片包含多个子阵列(存储器装置110的第三维度为子阵列),且每一子阵列包含多个行(存储器的第四维度为行)。为了图解说明及阐释方便,在本文中关于二维存储器装置描述一些实施例,然而实施例并不如此受限制。所属领域的技术人员在读取且理解本发明之后可将教示应用于具有多于两个维度的存储器装置110。

存储器系统104包含地址电路126,地址电路126用以锁存通过i/o电路130经由i/o总线138(例如,数据总线)提供的地址信号。地址信号可由行解码器128及列解码器134接收及解码以存取存储器装置110。可通过使用感测电路124感测在感测线上的电压及/或电流改变而从存储器阵列111读取数据。感测电路124可从存储器阵列111读取及锁存数据页(例如,行)。i/o电路130可用于经由i/o总线138与主机102进行双向数据通信。写入电路132可用于将数据写入到存储器装置110。

控制器108可解码由控制总线136从主机102提供的信号。这些信号可包含用于控制对存储器装置110执行的操作(包含数据读取、数据写入及数据擦除操作)的芯片启用信号、写入启用信号及地址锁存信号。在各种实施例中,控制器108负责执行来自主机102的指令。控制器108可为状态机、定序器、处理器及/或其它控制电路。

主机102可配置有操作系统“os”112。主机102可耦合到存储器装置110(例如,经由控制总线136及/或i/o总线138)。os112为管理硬件资源的可执行指令(软件)且提供服务在os112上运行的其它可执行指令(程序)。os112可包含用以对存储器形状的所接收用户定义做出响应的指令。存储器形状的用户定义可为存储器阵列的多维连续物理部分的分配,如本文中所描述。存储器形状的用户定义可起源于主机102(例如,在主机102上运行的应用程序)以及其它起源(例如,直接存储器存取(dma)装置)。

主机102可经配置以接收存储器形状的用户定义,接收存储器形状的数量的用户定义,根据用户定义分配存储器装置的单个物理存储器组件的存储器单元的连续列及连续行,且根据用户定义将多个数据元素连续地存储于存储器装置110的单个物理存储器组件中。主机102可经配置以分配单个物理存储器组件的存储器单元的连续列及连续行,使得存储器形状中的每一者包括耦合到共同存取线的存储器单元。主机102可经配置以对每一存储器形状单独地进行寻址(例如,向量式地址),使得对存储于特定存储器形状中的数据元素执行操作。尽管图1中未图解说明,但主机可包含经配置以接收用户定义的存储器分配应用程序接口(api)。

下文与图2相关联地进一步描述感测电路124的实例。例如,在若干个实施例中,感测电路124可包括若干个感测放大器及若干个计算组件,所述若干个计算组件可包括用作累加器的锁存器且可用于执行例如逻辑操作的操作(例如,对与互补感测线相关联的数据)。逻辑操作可包含布尔运算(例如,and、or、nor、xor等)以及布尔运算的组合以执行其它数学运算。在若干个实施例中,感测电路124可用于使用存储于存储器阵列111中的数据作为输入来执行逻辑操作且在不经由感测线地址存取进行传送的情况下(例如,在不激发列解码信号的情况下)将逻辑操作的结果存储回到存储器阵列111。如此,可使用感测电路124执行逻辑操作,而非通过在感测电路124外部的处理资源(例如,通过与主机102及/或位于存储器系统104上(例如,位于控制器108上或别处)的例如alu电路的其它处理电路相关联的处理器)执行及/或除通过在感测电路124外部的处理资源执行以外。

在各种先前方法中,(例如)将经由感测电路从存储器读取与逻辑操作相关联的数据且将所述数据提供到外部alu。外部alu电路将使用元素(其可被称为操作数或输入)执行逻辑操作且可经由局部i/o线将结果传送回到阵列。相比之下,在本发明的若干个实施例中,感测电路124可经配置以对存储于存储器阵列111中的存储器单元中的数据执行逻辑操作且在不启用耦合到感测电路的局部i/o线的情况下将结果存储回到阵列111。

感测电路124可经配置以对存储于存储器形状中的所述多个数据元素中的至少一者执行操作。感测电路124可经配置以对第一存储器形状的第一数据元素执行操作且对第二存储器形状的第二数据元素执行操作。感测电路124可经配置以对特定存储器形状的第一数据元素及第二数据元素执行操作。感测电路124可经配置以同时对所述多个数据元素执行操作。

如此,在若干个实施例中,可不需要在存储器阵列111及感测电路124外部的寄存器及/或alu来执行逻辑操作,因为感测电路124可经操作以使用存储器阵列111的地址空间执行逻辑操作。另外,可在不使用外部处理资源的情况下执行逻辑操作。

图2图解说明根据本发明的若干个实施例的存储器装置210的一部分的示意图,其图解说明根据存储器形状260进行的多维连续物理分配。存储器装置210可包含存储器阵列211,存储器阵列211包含耦合到存取线242-1、242-2、242-3、242-4、242-5、242-6、242-7、…、242-m的行及感测线244-1、244-2、244-3、244-4、244-5、244-6、244-7、244-8、…、244-n的列的存储器单元240(由经填满圆圈表示)。存储器阵列211不限于特定数目个存取线及/或感测线,且术语“行”及“列”的使用不意指存取线及/或感测线的特定物理结构及/或定向。尽管未图示,但每一存储器单元列可与对应对的互补感测线相关联。在下文与图7相关联地进一步论述其中每一存储器单元列与对应对的互补感测线相关联的实例。

存储器形状260由囊括耦合到存取线242-1到242-6及感测线244-1到244-6的存储器单元240的群组的框标示。也就是说,存储器形状260为包括存储器单元240的六个邻近行及存储器单元240的六个邻近列的6×6存储器形状。如本文中所使用,“存储器单元行”可指代耦合到存取线的存储器单元的子集且“存储器单元列”可指代耦合到感测线的存储器单元的子集。存储器形状260的主要维度为如由箭头261指示的垂直主要维度。由于主要维度为垂直主要维度,因此存储器形状260内的跨越可以将数据传送到存储器单元240-1或从存储器单元240-1传送数据来开始,接着将数据传送到存储器单元240-2或从存储器单元240-2传送数据,依此类推,使得在将数据传送到耦合到感测线244-2的以存储器单元240-7开始的存储器单元或从所述存储器单元传送数据之前将数据传送到耦合到感测线244-1的存储器单元240-1到240-6或从耦合到感测线244-1的存储器单元240-1到240-6传送数据。

可如下总结用于将存储器形状定义为编程语言数据结构(例如,c结构体)的伪代码的实例:

如上文所定义,使用户(例如,程序员)根据存储器形状分配存储器阵列的多维连续物理部分的程序功能(例如,宏)的伪代码的实例如下:

举例来说,用户可经由上文所描述的程序功能“形状”根据存储器形状260分配存储器阵列211的多维连续物理部分:

_shape(my_shape,6,6,major_vertical)

数据元素可存储于与存储器形状260的连续列中的每一者对应的存储器单元中。举例来说,数据元素可存储于与存储器形状260的第一列对应的存储器单元240-1到240-6中。所述数据元素可为数个类型的数据元素中的一者,包含但不限于整数、浮动点或串。具有与存储于第一列中的数据元素的类型相同或不同的类型的另一数据元素可存储于与存储器形状260的第二列对应的耦合到感测线244-2及存取线242-1到242-6的存储器单元240的群组中。

具有与存储于存储器形状260的第一列中的数据元素的长度相同或不同的长度的另一数据元素可存储于存储器形状260的第二列中。举例来说,第一数据元素可存储于耦合到存储器形状260的第一列的存取线242-1到242-6及感测线244-1的存储器单元240中的六个存储器单元中。第二数据元素可存储于耦合到存储器形状260的第二列的存取线242-1到242-4及感测线244-2的存储器单元240中的四个存储器单元中。

在至少一个实施例中,当长度小于存储器形状的主要维度的长度的数据元素存储于存储器形状中时,填补值可存储于存储器形状的存储器单元中。如本文中所使用,“填补值”指代存储于存储器形状的未存储数据元素的位的存储器单元中的位。举例来说,如果数据元素存储于存储器形状260的存储器单元240-1到240-4中,那么填补值可存储于存储器形状260的存储器单元240-5及240-6中。填补值的长度(例如,位的数量)可等于第一数据元素的长度与第二数据元素的长度的差。

每一存储器单元列可耦合到感测电路224,感测电路224可类似于图1中所图解说明的感测电路124。在此实例中,感测电路包含耦合到相应感测线244的若干个感测放大器246-1、246-2、246-3、246-4、246-5、246-6、246-7、246-8、…、246-n。感测放大器246经由存取装置(例如,晶体管)250-1、250-2、250-3、250-4、250-5、250-6、250-7、250-8、…、250-n耦合到输入/输出(i/o)线254(例如,局部i/o线)。在此实例中,感测电路224还包含耦合到相应感测线244的若干个计算组件248-1、248-2、248-3、248-4、248-5、248-6、248-7、248-8、…、248-n。列解码线252-1、252-2、252-3、252-4、252-5、252-6、252-7、252-8、…、252-n分别耦合到晶体管250的栅极,且可选择性地经激活以将由相应感测放大器246感测到及/或存储于相应计算组件248中的数据传送到次级感测放大器256。在若干个实施例中,计算组件248可与其对应列的存储器单元及/或与对应感测放大器246同间距地形成。

在若干个实施例中,感测电路(例如,计算组件248及感测放大器246)经配置以对存储于存储器阵列211中的数据执行若干个操作(例如,逻辑操作)。作为实例,第一数据元素可存储于耦合到特定存取线(例如,存取线242-1)且耦合到若干个感测线244的存储器单元的第一群组中,且第二数据元素可存储于耦合到不同存取线(例如,存取线242-2)及相应数目个感测线244的存储器单元的第二群组中。每一存储器单元240可存储第一数据元素或第二数据元素的位。举例来说,第一数据元素的每一位可与第二数据元素的相应位一起被执行逻辑操作。逻辑操作的结果可存储(例如,作为位向量)于耦合到特定存取线(例如,存取线242-3)且耦合到若干个感测线244的存储器单元的第三群组中。

若干个实施例可包含存储器阵列211,存储器阵列211包含许多(例如,数千个)感测线244。根据本发明,可在存储器中对与许多(例如,数千个)感测线244相关联的许多存储器元件并行地执行逻辑操作(例如,而不将数据传送到阵列以外,例如传送到处理资源)。此些实施例可节省在数据传送到处理资源以执行逻辑操作(例如,以64个位/时钟周期)的情况下原本需要的显著量的时间。额外优点可通过如下方式来实现:在执行逻辑操作之前分配存储器阵列的多维连续物理部分,使得存储器中的逻辑操作的执行不会停止以便对准数据及/或分配存储器的临时可分配部分(例如,分配存储器的临时行)。

图3图解说明根据本发明的若干个实施例的存储器装置310的一部分的示意图,其图解说明根据存储器形状362进行的多维连续物理分配。存储器装置310的部分可类似于图2中所图解说明的存储器装置210的部分。存储器形状362由囊括耦合到存取线342-1到342-6及感测线344-1到344-6的存储器单元340的群组的框标示(由经填满圆圈表示)。也就是说,存储器形状362为包括存储器单元340的六个连续行及存储器单元340的六个连续列的6×6存储器形状。存储器形状362的主要维度为如由箭头363指示的水平主要维度。由于主要维度为水平主要维度,因此存储器形状内的跨越可以将数据传送到存储器单元340-1或从存储器单元340-1传送数据来开始,接着将数据传送到存储器单元340-2或从存储器单元340-2传送数据,依此类推,使得在将数据传送到耦合到存取线342-2的以存储器单元340-7开始的存储器单元或从所述存储器单元传送数据之前将数据传送到耦合到存取线342-1的存储器单元340-1到340-6或从耦合到存取线342-1的存储器单元340-1到340-6传送数据。

举例来说,用户可经由上文所描述的程序功能“形状”根据存储器形状362分配存储器阵列311的多维连续物理部分:

_shape(my_shape,6,6,major_horizontal)

数据元素可存储于与存储器形状362的连续行中的每一者对应的存储器单元中。举例来说,数据元素可存储于与存储器形状362的第一行对应的存储器单元340-1到340-6中。数据元素可为数个类型的数据元素中的一者,包含但不限于整数、浮动点或串。具有与存储于第一列中的数据元素的类型相同或不同的类型的另一数据元素可存储于与存储器形状362的第二列对应的耦合到存取线342-2及感测线344-1到344-6的存储器单元340的群组中。

图4图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据多个存储器形状464-1到464-3进行的多维连续物理分配。存储器装置410的部分可类似于图2中所图解说明的存储器装置210的部分。所述多个存储器形状464-1到464-3为连续的,如由囊括耦合到存取线442-1到442-6及感测线444-1到444-9的存储器单元的群组的框标示(由经填满圆圈表示)。也就是说,所述多个存储器形状464-1到464-3中的每一者为包括存储器单元的六个连续行及存储器单元的三个连续列的6×3存储器形状,使得存储器形状464-1包含耦合到存取线442-1到442-6及感测线444-1到444-3的存储器单元,存储器形状464-2包含耦合到存取线442-1到442-6及感测线444-4到444-6的存储器单元,且存储器形状464-3包含耦合到存取线442-1到442-6及感测线444-7到444-9的存储器单元。所述多个存储器形状464-1到464-3中的每一者的主要维度为如由箭头461-1到461-3指示的垂直主要维度。

从一个存储器形状(例如,存储器形状464-1)到另一存储器形状(例如,存储器形状464-2)的存储器形状到存储器形状跨越可为水平的,如由箭头465所指示。尽管所述多个存储器形状可具有使得所述多个存储器形状垂直邻近的垂直存储器形状到存储器形状跨越,但使得所述多个存储器形状水平邻近的水平存储器形状到存储器形状跨越可克服存储器阵列的物理约束。一个此类物理约束可为:存取线的数量(例如,存储器单元行的数量)小于感测线的数量(例如,存储器单元列的数量)。举例来说,存储器阵列可具有512或1024个存取线,但具有数千个感测线444。在先前方法中,数据元素可经包装使得数据元素在一个列或行中开始,且在不同列或行中结束。与根据本发明的至少一个实施例形成对比,一些列可被掩蔽,因为数据元素可未存储于邻近列中。也就是说,可不需要进行掩蔽来使非所要数据不被操作,因为数据元素存储于邻近列或行中。

具有垂直主要维度的多个存储器形状可改进系统(例如图1中所图解说明的系统100)的总体性能。通过将数据元素存储于存储器形状的每一列中,可有效地使用例如感测电路424的感测电路,使得减少存储器装置的物理存储器组件(例如,存储器装置、存储器组等)之间通信。另外,可增加单个物理存储器组件的吞吐量,因为利用可用感测电路的较大部分。也就是说,将数据元素存储于存储器形状的每一列中会使数据元素分散在感测放大器及计算组件当中。

在至少一个实施例中,串类型数据元素(例如字符串)可存储于存储器形状中。字符串中的每一者可包括字符。字符可为包括数据字节(八个数据位)的预定义编程语言数据结构。举例来说,字符串可包括两个字符或十六个数据位。可根据存储器形状来分配存储器阵列的多维连续物理部分,使得所述存储器形状包含字符串中的四个字符串。如果存储器形状具有垂直主要维度,那么四个字符串中的每一者可存储于存储器形状的列中。因此,存储器阵列的四个连续列及十六个连续行可指派给16×4存储器形状。分配可使得能够以单指令多数据(simd)方式同时对每一存储器形状的四个数据元素执行操作。如果分配包含存储器形状中的多于一个存储器形状,那么可同时对所有存储器形状的四个数据元素执行操作。以下伪代码可用于定义四个数据元素,每一数据元素包括两个字符:

上文与图2相关联地描述的伪代码程序功能“形状”可用于根据如下的16×4存储器形状分配存储器阵列的多维连续物理部分:

_shape(my_shape,16,4,major_vertical);

可根据多个存储器形状(例如图4中所图解说明的多个存储器形状464-1到464-3)分配存储器阵列的多维连续物理部分。可利用不同方法以根据所述多个存储器形状分配存储器阵列的多维连续物理部分。第一方法可包含将现有数据映射到所述多个存储器形状。现有数据可从单个存储器装置的不同物理存储器组件、在存储器装置外部的磁盘或将存储经映射数据元素的相同存储器阵列进行映射。第一方法可利用存储器分配api来分配多个存储器形状。可如下总结用于根据多个存储器形状分配存储器阵列的多维连续物理部分的伪代码的实例:

void*mcs_shape_mmap(size_tnmemb,mcs_shape_tshape);

其中“nmemb”为先前定义的存储器形状的数量。举例来说,如上文所定义的存储器形状“my_shape”的三者可使用如下的伪代码指派给特定类型的指示器:

structdata*mydataptr=mcs_shape_mmap(3,my_shape);

第二方法可包含分配数据将存储于其中的存储器阵列的物理存储器组件的连续行及连续列。所述第二方法可称为用户-空间适应。与其中现有数据映射到所述多个存储器形状的第一方法形成对比,第二方法分配存储器形状以供未来使用。第二方法可包含使用如下的伪代码分配如上文所定义的存储器形状“my_shape”的三者:

structdata*mydata=null;

mydata=mcs_calloc_shape(3,sizeof(structdata),my_shape);

根据本发明的至少一个实施例可连同数据库(例如用于医疗记录的数据库)来使用,因为存储器形状可提供对存储器形状的可与数据库的特定字段对应的特定数据元素执行操作的能力。举例来说,与医疗记录数据库的每一字段对应的数据元素可存储于存储器形状的每一列中。多个存储器形状中的每一者可对应于患者的记录。举例来说,对应于患者的姓氏的第一串类型数据元素可存储于存储器形状的相应第一列中。对应于患者的名字的第二串类型数据元素可存储于存储器形状的相应第二列中。对应于患者的邮政编码的第一整数类型数据元素可存储于存储器形状的相应第三列中。对应于患者的电话号码的第二整数类型数据元素可存储于存储器形状的相应第四列中。如果(举例来说)仅需要居住在特定邮政编码中的那些患者的医疗记录,那么可对存储于所述多个存储器形状的相应第三列中的数据元素执行操作。

图5图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据多个存储器形状进行多维连续物理分配以达成外回路优化。所述外回路优化可包含根据用户定义的序列对所述多个存储器形状的数据元素执行操作。所述用户定义的序列可指示对哪些数据元素执行操作。所述用户定义的序列可指示所述多个存储器形状的子集及所述多个存储器形状的连续列或连续行的子集。

至少一个实施例可包含:接收存储器形状的连续行的用户定义的数量及所述存储器形状的连续列的用户定义的数量;接收存储器形状的用户定义的数量;根据所述用户定义的数量分配存储器装置的单个物理存储器组件的连续多维部分;将多个数据元素存储于所述连续多维部分中,使得所述多个数据元素在共同定向中;及根据用户定义的序列对所述多个数据元素中的每一者执行操作。所述用户定义的序列可包含:对第一存储器形状的所述多个数据元素中的每一者执行所述操作;及随后对第二存储器形状的所述多个数据元素中的每一者执行所述操作。

所述多个数据元素可经垂直定向,使得所述多个数据元素中的一者可存储于连续列中的每一者中,如图5中所图解说明。所述用户定义的序列可包含对所述第一存储器形状的相应第一列的第一数据元素执行所述操作,随后对所述相应第一存储器形状的相应第二列的第二数据元素执行所述操作,随后对所述第二存储器形状的相应第一列的第三数据元素执行所述操作,及随后对所述第二存储器形状的相应第二列的第四数据元素执行所述操作。存储器形状的所述相应第一列可邻近于所述存储器形状的所述相应第二列。

所述多个数据元素可经水平定向,使得所述多个数据元素中的一者可存储于连续行中的每一者中,如图6中所图解说明。所述用户定义的序列可包含对所述第一存储器形状的相应第一行的第一数据元素执行所述操作,随后对所述相应第一存储器形状的相应第二行的第二数据元素执行所述操作,随后对所述第二存储器形状的相应第一行的第三数据元素执行所述操作,及随后对所述第二存储器形状的相应第二行的第四数据元素执行所述操作。存储器形状的所述相应第一行可邻近于所述存储器形状的所述相应第二行。

图5图解说明三个存储器形状564-1到564-3,其可类似于图4中所图解说明的所述多个存储器形状464-1到464-3。存储器形状564-1到564-3中的每一者具有如由箭头561-1到561-3指示的垂直主要维度。第一索引(例如,“i”)可对应于存储器形状564-1到564-3中的特定一者。举例来说,i=0可对应于存储器形状564-1,i=1可对应于存储器形状564-2,且i=2可对应于存储器形状564-3。第二索引(例如,“j”)可对应于存储器形状564-1到564-3的特定句子。如本文中所使用,“句子”在存储器形状具有垂直主要维度的情况下指代所述存储器形状的列或在存储器形状具有水平主要维度的情况下指代所述存储器形状的行。如图5中所图解说明,j=0可对应于存储器形状564-1的相应第一列(例如,其中i=0,耦合到感测线544-1及存取线542-1到542-6的存储器单元(由经填满圆圈表示)),j=1可对应于存储器形状564-1的相应第二列(例如,其中i=0,耦合到感测线544-2及存取线542-1到542-6的存储器单元),且j=2可对应于存储器形状564-1的相应第三列(例如,其中i=0,耦合到感测线544-3及存取线542-1到542-6的存储器单元)。数据元素可存储于存储器形状的每一列中。

通过使用第一索引i及第二索引j,在对存储于第二存储器形状(例如,存储器形状564-2)的列中的每一数据元素执行操作之前可对存储于第一存储器形状(例如,存储器形状564-1)的列中的每一数据元素执行操作。替代地,第一索引i及第二索引j可用于对存储器形状的子集、存储于存储器形状中的数据元素的子集或两者执行操作。因此,可对每一存储器形状单独地进行寻址,使得对所述多个存储器形状中的特定存储器形状的数据元素的群组执行操作。地址可为包含起始地址及结束地址的向量式地址。所述向量式地址可包含起始地址及偏移。

用户可使用可由编译器解译以产生单个simd操作的回路构造来达成外回路优化。通过经由存储器形状使用多维连续物理分配,编译器可对原本困难或不安全(不管编译器的跨越及寻址的明确定义如何)的代码执行转变及优化。

可如下总结用于外回路优化的伪代码的实例:

根据以上实例性伪代码的用户定义的序列,对第一存储器形状(例如,存储器形状564-1)的与每一句子j=0到j=2对应的每一数据元素、接着对第二存储器形状(例如,存储器形状564-2)的与每一句子j=0到j=2对应的每一数据元素且接着对第三存储器形状(例如,存储器形状564-3)的与每一句子j=0到j=2对应的每一数据元素执行操作。以上伪代码可与具有如图5中所图解说明的垂直主要维度或如图6中所图解说明的水平主要维度的多个存储器形状一起使用。

图6图解说明根据本发明的若干个实施例的存储器装置的一部分的示意图,其图解说明根据多个存储器形状进行多维连续物理分配以达成外回路优化。图6图解说明三个存储器形状666-1到666-3,其可类似于图4中所图解说明的所述多个存储器形状464-1到464-3,惟存储器形状666-1到666-3中的每一者具有如由箭头666-1到666-3指示的水平主要维度除外。第一索引(例如,“i”)可对应于存储器形状666-1到666-3中的特定一者。举例来说,i=0可对应于存储器形状666-1,i=1可对应于存储器形状666-2,且i=2可对应于存储器形状666-3。第二索引(例如,“j”)可对应于存储器形状666-1到666-3的特定句子。如图6中所图解说明,j=0可对应于存储器形状666-1的相应第一行(例如,其中i=0,耦合到存取线642-1及感测线644-1到644-3的存储器单元(由经填满圆圈表示)),j=1可对应于存储器形状666-1的相应第二行(例如,其中i=0,耦合到存取线642-2及感测线644-1到644-3的存储器单元),j=2可对应于存储器形状666-1的相应第三行(例如,其中i=0,耦合到存取线642-3及感测线644-1到644-3的存储器单元),j=3可对应于存储器形状666-1的相应第四列(例如,其中i=0,耦合到存取线642-4及感测线644-1到644-3的存储器单元),j=4可对应于存储器形状666-1的相应第五列(例如,其中i=0,耦合到存取线642-5及感测线644-1到644-3的存储器单元),且j=5可对应于存储器形状666-1的相应第六列(例如,其中i=0,耦合到存取线642-6及感测线644-1到644-3的存储器单元)。数据元素可存储于存储器形状的每一行中。

通过使用第一索引i及第二索引j,可在对存储于第二存储器形状(例如,存储器形状666-2)的行中的每一数据元素执行操作之前对存储于第一存储器形状(例如,存储器形状666-1)的行中的每一数据元素执行操作。替代地,第一索引i及第二索引j可用于对存储器形状的子集、存储于存储器形状中的数据元素的子集或两者执行操作。因此,可对每一存储器形状单独地进行寻址,使得对所述多个存储器形状中的特定存储器形状的数据元素的群组执行操作。地址可为包含起始地址及结束地址的向量式地址。所述向量式地址可包含起始地址及跨越。

图7是图解说明根据本发明的若干个实施例的感测电路724的示意图。感测电路724可类似于图1中所图解说明的感测电路124。感测电路724可包含感测放大器746(其可类似于图2中所图解说明的感测放大器246中的任一者)及计算组件748(其可类似于图2中所图解说明的计算组件248中的任一者)。图7展示耦合到一对互补感测线742a及742b(其作为对而可类似于图2中所图解说明的感测线242中的任一者)的感测放大器746。计算组件748经由通过晶体管770-1及770-2耦合到感测放大器746。通过晶体管770-1及770-2的栅极可受逻辑操作选择逻辑信号pass(其可从逻辑操作选择逻辑772输出)控制。图7展示标记为“a”的计算组件748及标记为“b”的感测放大器746以指示存储于计算组件748中的数据值为“a”数据值且存储于感测放大器746中的数据值为“b”数据值,如在关于图8所图解说明的逻辑表中所展示。

可选择逻辑操作选择逻辑772包含交换晶体管776,以及用以驱动交换晶体管776的逻辑。逻辑操作选择逻辑772包含四个逻辑选择晶体管:耦合于交换晶体管776的栅极与tf信号控制线之间的逻辑选择晶体管790、耦合于通过晶体管770-1及770-2的栅极与tt信号控制线之间的逻辑选择晶体管792、耦合于通过晶体管770-1及770-2的栅极与ft信号控制线之间的逻辑选择晶体管794,以及耦合于交换晶体管776的栅极与ff信号控制线之间的逻辑选择晶体管796。逻辑选择晶体管790及792的栅极通过隔离晶体管774-1(具有耦合到iso信号控制线的栅极)耦合到真实数字线742a。逻辑选择晶体管794及796的栅极通过隔离晶体管774-2(也具有耦合到iso信号控制线的栅极)耦合到互补数字线742b。

如图7中所图解说明,逻辑选择控制信号可施加到逻辑选择晶体管790、792、794及796以执行特定逻辑操作。逻辑选择晶体管790及796的操作基于tf及ff选择信号的状态及在将iso信号激活/撤销激活时相应互补数字线上的数据值。逻辑选择晶体管790及796还以用以控制交换晶体管776的方式来操作。例如,为开启(例如,接通)交换晶体管776,激活tf控制信号(例如,高),其中真实数字线742a上的数据值为“1”,或激活ff控制信号(例如,高),其中互补数字线742b上的数据值为“1”。如果对应数字线(例如,特定逻辑选择晶体管的栅极耦合到的数字线)上的相应控制信号或数据值不高,那么将不开启交换晶体管776,无论特定逻辑选择晶体管790及796是否导通。

pass*控制信号未必与pass控制信号互补。pass控制信号及pass*控制信号两者可能同时被激活或同时被撤销激活。然而,pass控制信号及pass*控制信号两者的同时激活将所述对互补数字线742a及742b短接在一起。在于图8中图解说明的逻辑表中总结图7中图解说明的感测电路的逻辑操作结果。

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

感测放大器746可进一步包含均衡电路,所述均衡电路可经配置以使所述对互补数字线742a及742b均衡。在此实例中,均衡电路包括耦合于所述对互补数字线742a与742b之间的晶体管。均衡电路还包括各自具有耦合到均衡电压(例如,vdd/2)的第一源极/漏极区域的晶体管,其中vdd为与阵列相关联的供应电压。晶体管的第二源极/漏极区域可耦合到数字线742a,且晶体管的第二源极/漏极区域可耦合到数字线742b。晶体管的栅极可耦合在一起,且耦合到均衡(eq)控制信号线。如此,激活eq会启用晶体管,此将所述对互补数字线742a及742b有效地短接在一起且短接到均衡电压(例如,vdd/2)。

尽管图5展示包括均衡电路的感测放大器746,但实施例并不如此受限制,且均衡电路可与感测放大器746离散地经实施,以不同于图7中展示的配置的配置来实施,或者根本不实施。

如图7中所展示,计算组件748还可包括锁存器791。锁存器791可包含使其相应源极耦合到供应电压(例如,vdd)的一对交叉耦合的p沟道晶体管(例如,pmos晶体管)。锁存器791可包含使其相应源极选择性地耦合到参考电压(例如,接地)的一对交叉耦合的n沟道晶体管(例如,nmos晶体管),使得连续地启用锁存器791。计算组件748的配置不限于图7中所展示的配置。

图8是图解说明根据本发明的若干个实施例的通过感测电路(例如,图7中所展示的感测电路724)实施的可选择逻辑操作结果的逻辑表。四个逻辑选择控制信号(例如,tf、tt、ft及ff)连同存在于互补数字线(例如,图7中所展示的所述对互补数字线742a及742b)上的特定数据值可用于选择多个逻辑操作中的一者以涉及存储于感测放大器746及计算组件748中的起始数据值而实施。四个逻辑选择控制信号(例如,tf、tt、ft及ff)连同存在于互补数字线上(例如,存在于节点s及s*上)的特定数据值来控制通过晶体管770-1及770-2以及交换晶体管776,此又在激发之前/之后影响计算组件748及/或感测放大器746中的数据值。可选择地控制交换晶体管776的能力促进实施尤其涉及逆数据值(例如,逆操作数及/或逆结果)的逻辑操作。

图8中所图解说明的逻辑表8-1展示存储于计算组件748中的起始数据值(在871处的行a中展示),及存储于感测放大器746中的起始数据值(在873处的行b中展示)。逻辑表8-1中的其它三个列标头指代通过晶体管770-1及770-2以及交换晶体管776的状态,其可在iso控制信号被断言时,取决于四个逻辑选择控制信号(例如,tf、tt、ft及ff)连同所述对互补数字线742a及742b上所存在的特定数据值的状态而分别经控制为open或closed。“notopen”列875对应于通过晶体管770-1及770-2以及交换晶体管776两者均处于非导通条件中。“opentrue”列877对应于通过晶体管770-1及770-2处于导通条件中。“openinvert”列879对应于交换晶体管776处于导通条件中。逻辑表8-1中不反映与通过晶体管770-1及770-2以及交换晶体管776两者均处于导通条件中对应的配置,因为此导致数字线被短接在一起。

经由通过晶体管770-1及770-2以及交换晶体管776的选择性控制,逻辑表8-1的上部分的三个列875、877及879中的每一者可与逻辑表8-1的下部分的三个列875、877及879中的每一者组合以提供对应于九个不同逻辑操作的九个(例如,3x3)不同结果组合,如由在881处所展示的各种连接路径所指示。在逻辑表8-2中概述可由感测电路724实施的九个不同可选择逻辑操作。

逻辑表8-2的列展示包含逻辑选择控制信号(例如,ff、ft、tf、tt)的状态的标头883。举例来说,在行884中提供第一逻辑选择控制信号(例如,ff)的状态,在行885中提供第二逻辑选择控制信号(例如,ft)的状态,在行886中提供第三逻辑选择控制信号(例如,tf)的状态,且在行887中提供第四逻辑选择控制信号(例如,tt)的状态。在行888中总结对应于所述结果的特定逻辑操作。

将理解,当将元件称为“在”另一元件“上”、“连接到”另一元件或“与”另一元件“耦合”时,其可直接在另一元件上、直接连接到另一元件或直接与另一元件耦合,或者可存在介入元件。相比来说,当将元件称为“直接在”另一元件“上”、“直接连接到”另一元件或“直接与”另一元件“耦合”时,不存在介入元件或层。

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

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

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