进行行移位的可移位存储器的制造方法

文档序号:6763886阅读:466来源:国知局
进行行移位的可移位存储器的制造方法
【专利摘要】可移位存储器采用行移位来沿行移位数据。该可移位存储器包括被排列为多个行和多个列的存储器单元。该可移位存储器进一步包括用于将数据从第一列的输出端移位到第二列的输入端的移位逻辑。被移位的数据由选中行中的该第一列的存储器单元提供。该被移位的数据由该第二列的该选中行中的存储器单元接收并存储。该移位逻辑便于沿该选中行移位数据。
【专利说明】进行行移位的可移位存储器
[0001]相关申请的交叉引用
[0002]N/A
[0003]关于联邦资助的研究或开发的声明
[0004]N/A【背景技术】
[0005]现代计算机及相关处理系统典型地包括处理器和某一形式的存储器。处理器通常负责执行计算机的各种计算任务,而存储器存储在计算任务中使用的以及由计算任务生成的数据。在这样的系统的几乎全部历史上,由处理器进行处理以及由存储器进行数据存储的体系结构区分被证明是成功的。
[0006]例如,典型的通用计算机通常包括中央处理单元(CPU)和主存储器,中央处理单元和主存储器通过一个或多个通信信道(例如,数据总线、命令总线及地址总线)彼此通信。典型地,CPU提供设施来执行各种算法和逻辑运算、提供操作序列以及以别的方式控制通用计算机的方面。例如,实际上所有CPU为从存储器中读取数据、向存储器写数据以及运行程序提供功能或运算,该程序包括使用该数据来执行预限定任务的一组指令。此外,CPU可以应对输入/输出(1/0),该输入/输出(I/O)允许与通用计算机外部的外围设备以及子系统的通信。在一些示例中,CPU甚至可以提供图形处理,以应对生成并更新图形显示单元(例如,监视器)。
[0007]相比之下,现代计算机的主存储器典型地提供一套相对较窄的能力,该主存储器能够包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、可编程的ROM(PROM)、闪存以及多种其它存储器类型中的一个或多个。这些能力中主要的是存储由CPU运行和使用的计算机程序和数据。在可以在现代计算机的主存储器中发现的或经常与现代计算机的主存储器关联的其它有限能力中的是特定存储器管理功能。例如,主存储器的DRAM存储器子系统可以具有用于自动刷新在其内存储的数据的电路。
【专利附图】

【附图说明】
[0008]参照结合附图进行的下面详细描述,根据本文描述的原理的示例的各特征可以更容易被理解,其中相同的附图标记表示相同的结构部件,并且其中:
[0009]图1A示出根据本文描述的原理的示例的、在可移位存储器内的水平行中存储的数据的连续子集的右移位的示例。
[0010]图1B示出根据本文描述的原理的示例的、在可移位存储器内的行中存储的数据的连续子集的左移位的示例。
[0011]图2示出根据依照本文描述的原理的示例的、采用行移位的可移位存储器的框图。
[0012]图3A示出根据依照本文描述的原理的示例的、示例性SRAM存储器单元的示意图。
[0013]图3B示出根据依照本文描述的原理的示例的、示例性DRAM存储器单元的示意图。[0014]图4A示出根据依照本文描述的原理的示例的、包括复用器的移位逻辑的示意图。
[0015]图4B示出根据依照本文描述的原理的另一示例的、包括复用器的移位逻辑的示意图。
[0016]图5A示出根据依照本文描述的原理的示例的、可移位存储器中的字大小的移位的示例的示意框图。
[0017]图5B示出根据依照本文描述的原理的另一示例的、可移位存储器中的字大小的移位的示例的示意框图。
[0018]图5C示出根据依照本文描述的原理的另一示例的、使用重映射来动态控制移位距离的可移位存储器中的移位的示例的示意框图。
[0019]图6示出根据本文描述的原理的示例的、在可移位存储器中移位数据的方法的流程图。
[0020]特定示例具有其它特征,该其它特征是除上面参考的附图中图示的特征以外和替代上面参考的附图中图示的特征中的一个特征。下面参照上面参考的附图详细描述这些及其它特征。
【具体实施方式】
[0021]根据本文描述的原理的示例提供一种采用行移位的、具有内置的移位能力的可移位存储器。特别地,存储在该可移位存储器的选中行中的数据的连续子集被该可移位存储器移位,以实现内置的移位能力。内置的数据移位能力提供数据的连续子集沿选中行的横向平移。根据各个示例,横向平移提供存储数据的右移位和左移位中的一种或两种。另外,例如,移位的方向(即,右或左)以及移动的量或距离是可选的。根据本文描述的原理的示例在计算机系统和相关数据处理系统中有应用。特别地,本文描述的示例提供可用于各种各样数据处理任务的、具有内置的移位能力的可移位存储器。
[0022]根据各个示例,所存储的数据(例如,数据字)的连续子集可以在存储器中从第一存储器位置沿行移位至第二存储器位置。根据一些示例,当被移位到行中的第二个位置时,被移位的数据保持连续子集内的有序关系。此外,移位完全发生在存储器(例如,存储器芯片或芯片组)内,并且移位通常在不需要利用诸如处理器的位于存储器外部的资源的情况下被实现。特别地,根据各个示例,移位利用可移位存储器的包括电路(例如,移位电路)的移位逻辑来实现。进一步地,根据各个示例,移位不涉及在处理器和存储器之间移动的数据。因此,具有内置的移位能力的存储器在本文中被称为“可移位存储器”。
[0023]在一些示例中,由本文的可移位存储器提供的移位可以用来“打开”存储器中的位置,在该位置中可以插入新的数据。特别地,当在可移位存储器内通过移位移动所存储的数据的连续子集时,可以使所存储的数据的该连续子集左侧或右侧的存储器位置可用于数据插入。在一些示例中,连续子集包括整个行的数据。在这些示例中,通过移位打开的存储器位置可以在行的左端(例如,开头)和行的右端(例如,末端)中的一个。在其它示例中,连续子集仅包括行的数据中的一部分。在这样的示例中,通过移位打开的位置可以被置于行的开头或末端。
[0024]根据其它示例,移位可以用来删除或“重写”在该连续子集的开头的前面和在该连续子集的末尾的后面中的一处存储的数据。特别地,当由可移位存储器移位该连续数据时,可以用该连续子集本身的一部分重写在该连续子集左侧或右侧存储的数据。在其它示例中,当连续子集包括整个行的数据时,移位该连续子集可以实质上将数据的一部分从行的一端移开。例如根据移位的方向,可以将数据从左端或右端移开。根据一些示例,从行的一端被移开的数据可基本上从可移位存储器被“丢弃”或删除,从而可以被视为已删除。在一些示例中,当数据通过从行的一端移开而被删除时,数据删除可以在不覆盖其它数据的情况下发生。在其它示例中,从行的一端被移开的数据可以被顺序地转移到另一行(例如,可以被加到相邻行的开头)。例如,从行的一端被移开且被转移到另一行的数据可由于覆盖另一行中的数据而导致另一行中的数据的删除。
[0025]根据一些示例,在可移位存储器中移位数据来插入数据或删除数据可以在比不使用可移位存储器通常可能的时间更短的时间内实现,并且在一些示例中在显著更短的时间内实现。事实上,根据一些示例,移位可以使用可移位存储器在基本恒定的时间(例如,固定数量的时钟周期)内实现。例如,移位可以在可移位存储器的一个时钟周期内实现。
[0026]相比之下,传统的(例如用于执行移位的)依赖处理器的存储器通常需要与待移位的数据量成比例的时间量。例如,在传统的存储器中移位数据典型地涉及处理器读取待移位的数据以及然后将该数据写回到另一位置的存储器。由于传统存储器的结构和功能,读写可例如由处理器以逐字为基础执行。由于首先由处理器从该传统的存储器读取正被移位的数据中的每个数据单元(例如,数据字),然后接着写回该传统的存储器,因此移位该数据的时间通常例如与正被移位的数据的数量或长度(例如,数据字的数量)成比例。数据的数量越大,移位操作花费的时间越长。
[0027]此外,传统的存储器依赖于位于该传统的存储器外部的资源(例如,处理器),以在移位数据时执行读写。由于执行移位的资源位于传统的存储器外部,因此在逐字移位中涉及的每个数据字必须通过一些形式的数据总线或类似的通信信道在该外部资源和该传统的存储器之间传递。数据总线或类似的通信信道实际上会限制读写操作的速度,且结果,会限制移位的总体时间。因此,由于使用传统的存储器执行移位的数据总线速度和/或成比例的时间方面的影响,移位较大的数据子集在处理时间方面会变得非常昂贵。
[0028]依照本文描述的原理,可移位的存储器具有内置的移位能力,使得为执行移位,数据例如不由外部资源读取并然后写入。将所存储的数据的连续子集被识别(例如,使用地址和长度)给可移位的存储器,并且指示该可移位的存储器对该连续子集进行移位。然后,由该可移位的存储器实现移位,并且该移位完全地在该可移位的存储器中发生。根据本文描述的原理的示例,该可移位的存储器基本上消除了与向外部资源传送数据或从外部资源传送数据关联的速度限制。此外,用于移位的时间可以基本上独立于例如连续子集的长度。
[0029]特别地,根据本文描述的原理,可用该可移位存储器本身的电路实现该可移位存储器中内的移位。这样,使用可移位存储器的移位不需要依次读写连续子集的每个数据字。例如,使用可移位的存储器的移位可以沿行以基本上同时的方式移位该连续子集中所有的数据。因此,该可移位的存储器可以在基本上独立于该连续子集的长度的时间内实现该连续子集的移位。
[0030]如上所述,在一些示例中,根据描述的原理的示例,可移位的存储器可以以基本上恒定的时间执行移位。“恒定的时间”指不论所存储的数据的连续子集的长度如何,移位该连续子集需要基本上类似的时间量。例如,根据一些示例,可以在单个时钟周期内移位任意长度的连续子集。在另一示例中,较短的连续子集可能仅需要单个时钟周期,而较长的连续子集可能需要两个或更多个时钟周期。但是,根据一些示例,尽管对于比相对较短的子集更长的子集来说,可移位存储器可能使用更多的时间,但是由于所需要的时间与该连续子集的长度不严格成比例,移位仍然被足够快地进行,从而可以被视为在基本上恒定的时间内发生。
[0031]在本文中,术语“存储器”指能够接收并存储数据的基本上任意种类的存储器。该存储器通常与可以由例如计算机处理器使用或在计算机系统中使用的存储器一致。特别地,按照本文的限定,存储器指能够在使用该存储器的计算机的操作期间被读取和写入的任意种类的存储器。例如,存储器可包括随机存取存储器(RAM)。随机存取存储器可例如为静态RAM (SRAM)。其它类型的存储器包括,但不限于,动态随机存取存储器(DRAM)和基于锁存器、触发器和其它双稳态结构(例如忆阻器)的各种存储器结构。
[0032]在本文中还限定,根据一些示例,存储器可以包括被排列为阵列的多个存储器单元。例如,存储器单元可以被排列为二维(2-D)阵列。还可使用更高阶(例如,三维或更多维)的阵列。在一些示例中,较低阶的阵列(例如,线性阵列)限定具有较大尺寸的阵列(例如,2-D阵列)。例如,2-D阵列可以被排列为包括行和列的矩形2-D存储器单元阵列(即,线性阵列)。根据一些示例,可以利用多个相邻2-D阵列实现存储器单元的三维(3-D)排列。此外,可将阵列分为子阵列。例如,2-D矩形阵列可四分成四个子阵列。
[0033]如本文所限定和使用的,存储器单元为用于保存或存储数据的电路或相关结构。此外,依照本文的限定,存储器单元通常可存储一“位”或多“位”数据。例如,位可以是或可以表示二进制值(例如,“O”或“I”),且存储器单元可保存一个位。在另一个示例中,存储器单元可保存多个二进制值位。例如,存储器单元可保存4、8、16、32或64位二进制位。特别地,如本文所限定的,存储器单元可保存或存储包括多位的完整的数据字。在另一种示例中,存储器单元可保存其它形式(例如,十六进制值、模拟值,等等)的数据。特别地,如本文所限定的,各存储器单元不限于用于存储二进制格式的数据,在一些示例中,还可保存或存储任意数据结构。但是,本文为了讨论的目的,除非另有规定,通常自始至终以示例但不限制的方式使用二进制数据和保存一个数据位的存储器单元。
[0034]如在本文中使用地,“行”被限定为被排列为一维(1-D)阵列(即,线性阵列)的存储器单元的集合或分组。2-D阵列可包括以例如基本平行的方式排列的多个行。进一步地,在本文中,包括一组存储器单元的行可保存构成特定计算机系统的一个或多个数据字的数据(例如,多个数据位)。根据各个示例,行的存储器单元物理地彼此相邻。例如,行的第一个存储器单元可以紧邻行的第二个存储器单元设置,如此,从行的开头(例如,左端)到行的末端(例如右端)。行可以包括数目较多的存储器单元。例如,根据本文描述的原理的示例,在各个实际的实施方式中,行的长度可以为1024数据位、2048数据位、4096数据位或更多。
[0035]在本文中,存储器单元还经常被称为“存储器位置”。严格地说,存储器位置为位于该存储器内的特定位置的存储器单元,该位置由地址表示或确定。例如,使用该地址访问该存储器单元。但是,本文为了讨论的简便,存储器单元通常被称为具有一个地址或在一个地址处。例如,地址或位置可与可移位存储器的可移位单元(例如,数据字或数据字的组)关联。这样,“位置”和地址可在本文中互换使用。此外,根据一些示例,“位置”可用于指由起始地址和末尾地址表示的数据的连续子集的位置。在其它示例中,该连续子集的位置可由起始(或末尾)地址以及该连续子集的长度表示。在其它示例中,连续子集基本上包括行中的所有数据。因此,可以由行来表示该连续子集,而无需诉诸地址对或地址和长度。
[0036]进一步地,在本文中且如上面提到的,除非另有规定,可移位存储器执行的移位限定为该可移位存储器内存储的数据的连续子集的横向平移。特别地,依照本文的限定,使用可移位存储器的移位构成从该可移位存储器内行中的第一位置到第二位置的连续子集内所存储的数据位的横向平移(例如,沿行向左或向右)。此外,当应用到所存储的数据的连续子集时,移位平移该连续子集内的所有所存储的数据。此外,依照本文的限定,可移位存储器进行的移位不会产生该移位涉及的数据的连续子集外的数据的横向平移或移位。通常,移位可将数据在行中移动一个或多个存储器位置或存储器地址的距离。例如,移位可将数据在行内向右或向左移位动一个存储器位置。在另一个示例中,移位可将数据向右或向左移位动两个或更多个存储器位置。
[0037] 在本文中,关于沿可移位存储器内的行的存储器位置,方向“向左”被限定为朝向通常具有较小地址的位置的方向。方向“向右”被限定为沿行朝向通常具有较大地址的位置的方向。因此,根据一些示例,“左移位”被限定为将数据移动到具有比行中的第一位置或开始位置的地址小的地址的、行中的第二位置。相反地,“右移位”引起将数据从具有较小地址的第一位置到具有较大地址的第二位置移动。但是,根据一些示例,如本文所用的,尽管移位方向是可控的或可选的,移位方向(例如,向右或向左)可完全任意。进一步地,本文中“左移位”和“右移位”的具体使用以及较小和较大的地址的概念是为了便于讨论,而非为了限制。
[0038]图1A示出了根据本文描述的原理的示例的、存储在可移位存储器内的水平行中的数据的连续子集的右移位的示例。特别地,图1A示出了多个存储器单元,每个存储器单元都能够存储数据位。例如,存储器单元存储的数据位可以包括二进制位(例如,“O”或“1”)。进一步如所示出的,每个所示出的存储器单元都由范围为从00到11的十进制地址确定。图1A的上部示出右移位之前的多个存储器单元,而下部示出右移位之后的相同的多个存储器单元。
[0039]如在图1A中示出的,可移位存储器内的示例右移位包括选择所存储的数据位的连续子集,例如,选择始于地址03的存储器单元且结束于地址07的存储器单元的连续子集。在示出的示例中,选择的连续子集包含数据位{’1’,'0','1'.'1','1'} 然后,如在图1A的下部所示出的,通过向右移位动所存储的数据位一个地址位置,可移位存储器右移位数据位的所选择的连续子集。该右移位保持该连续子集内各数据位的顺序,并将该连续子集存在地址04和地址08之间的存储器单元中。右移位所存储的数据覆盖了紧接到连续子集的原始位置(即,在地址08)的右侧的存储器单元的内容,并且以被右移位的连续子集的最后数据位(即,“1”)代替该存储器单元的内容。进一步地,原本保存该连续子集的第一个数据位的地址03处的存储器单元开放为不确定,用“X”表示。根据各个示例,地址03处的存储器单元可保留在右移位之前存在的数据位(例如,“I”)的副本,或可作为右移位的结果被清零(例如,设置为“O”)。在一些示例中,地址03处的存储器单元可用于例如来自外部资源的数据位的插入。
[0040]图1B示出根据本文描述的原理的示例的、存储在可移位存储器内的行中的数据的连续子集的左移位的示例。特别地,图1B示出了多个存储器单元,该多个存储器单元中的每一个都存储数据位(例如,'i'、' O'、' O'、' i'、' O'等)。进一步如所示出的,每个所示出的存储器单元都由范围为从OO到11的地址确定。图1B的上部示出左移位之前的多个存储器单元,而下部示出左移位之后的相同的多个存储器单元。
[0041]如在图1B中示出的,可移位存储器内的左移位包括选择所存储的数据位的连续子集,例如,选择始于地址04处的存储器单元且结束于地址07处的存储器单元的连续子集。然后,如在图1B的下部所说明的,通过向左移位动所选的连续子集中的数据位,可移位存储器左移位所选的连续子集。该左移位保持该连续子集内各数据字的顺序,并将该连续子集存在地址03和地址03之间的存储器单元中。左移位所存储的数据位覆盖了紧接到连续子集的原始位置(即,在地址03)的左侧的存储器单元的内容,并且以被左移位的连续子集的第一数据位(即,“O”)代替该存储器单元的内容。
[0042]进一步地,原本保存该连续子集的最后数据位的地址07处的存储器单元开放为不确定,用“X”表示。根据一些示例,地址07处的存储器单元可保留在右移位之前存在的数据位(例如,“I”)的副本,或在左移位之后被清零(例如,设置为“O”)。在一些示例中,地址07处的存储器单元可用于例如来自外部源的数据的插入。
[0043]根据各种示例,可移位存储器可为通用计算机系统的主存储器的一部分。例如,可移位存储器可代表构成主存储器的存储器的子集。
[0044]此外,根据各个示例,可移位存储器与存储器单元、缓存以及通常与例如微处理器中的其它组件(例如,运算逻辑单元、控制器等)集成的其它相对较小的存储器结构不同。特别地,根据各个示例,依照本文的限定的可移位存储器为主存储器的一部分,且这样,与通用计算机系统的处理器或相关的处理系统分离。此外,根据一些示例,可移位存储器通常包含一个数量级或比处理器中存在或可存在的更多的数量的存储装置。例如,可移位存储器可包括许多兆字节或甚至千兆字节的存储装置,而处理器存储装置典型地被限制少于几十字节(例如,处理器寄存器)到几兆字节(例如,LI缓存、L2缓存,等)。根据一些示例,可移位存储器可为主存储器或其子系统的专有划分。
[0045]此外,如本文所使用的,冠词“一”意在具有其在专利领域的通用意义,也就是“一个或多个”。例如,在本文中,“存储器单元”指一个或多个存储器单元,且这样,“该存储器单元”指“该一个或多个存储器单元”。此外,本文中的任意参照:“上”、“下”、“上部”、“下部”、“向上”、“向下”、“前”、“后”、“左”、“右”意图不在于限制。在本文中,除非另有规定,当用在值时,术语“大约”通常指在用于产生该值的设备的公差范围内,或在一些示例中,指±10%,或±5%,或±1%。此外,本文的各示例仅意在说明,且提供用于讨论的目的,不作为限制。
[0046]图2示出根据依照本文描述的原理的示例的、采用行移位的可移位存储器100的框图。根据各个示例,可移位存储器100的行移位沿可移位存储器100的行移动或移位数据。在一些示例中,行移位将行中所有的数据移位。在其它示例中,行移位将行中部分数据移位。进一步地,由行移位所移位的数据为可移位存储器100中的数据的连续子集。特别地,根据各个示例,行移位仅当连续子集外部的数据不被移位时,才移位连续子集的数据。
[0047]例如,当整个行在可移位存储器100内被行移位时,连续子集包括正被移位的整个行,并且仅该行内的数据被移位。然而,例如,当行移位仅移位行中部分数据时,连续子集可以仅当行中剩余部分数据(即,尽管,在连续子集的外部)不被移位时,才包括被移位的部分。在其它示例中,连续子集可以跨越多于一行。
[0048]根据一些示例,可移位存储器100包括存储器单元阵列110。特别地,根据一些示例,阵列的存储器单元110被排列为多行112。如作为示例示出的,多个行112可以相邻并且彼此基本平行,以形成2-D阵列。另外,根据一些示例,阵列的存储器单元110被进一步排列为多列114。例如,列114可以相邻并且彼此基本平行。根据各个示例,行112和列114一般彼此交叉。例如,如图2中示出的,行112水平行进,并且列114垂直行进。进一步地,根据各个示例,一具体的存储器单元110通常既被设置在可移位存储器100的特定的行112中,也被设置在特定的列114中,因此既是该特定行112的成员,也是特定列114的成员。此外,根据各个示例,各存储器单元110可以根据它们被设置在哪个行112和哪个列114来表示或寻址。
[0049]例如,如示出的,第一存储器单元110可以被设置在第一行112'和第一列Ilf中。例如,第二存储器单元Iio可以被设置在第一行112'中,但是在第二列Ilf '中。在另一示例中,第三存储器单元110可以被设置在第一列Ilf中,但是在第二行112',中,而第四存储器单元110可以被设置在第二行112 ^ ,中,也在第二列Ilf ,中。如示出的,沿给定行112的每一个存储器单元110都在多个列114中的一个不同列中。同样地,沿特定列114的每一个存储器单元都在多个行112中的一个不同行112中。
[0050]根据各个示例,每个列114都具有输入端口、连接点或信道(即,“输入端”)和输出端口、连接点或信道(即,“输出端”)。列114的输出端可以用来将数据传递或传送出列114的存储器单元110。例如,被传送出的数据可以是存储器单元110存储的数据。列114的输入端可以用来将数据传送到列114的存储器单元110中。例如,被传送到存储器单元110中的数据可以被接收并被存储器单元110存储。根据一些示例,被接收并存储的数据可以覆盖或代替已经被存储器单元110存储的数据。在一些示例中,输入端和输出端可以是公共的或共享的连接点或信道。例如,列114的所有存储器单元110都被连接到充当列114的输入端和输出端中的一种或两种的总线、线路或导线上。在另一示例中,列114的输入端和输出端是分离的连接点或信道。
[0051]特别地,如图2中示出的,列114的存储器单元110共同地被连接到既充当列114的输入端、又充当输出端的位线116上。例如,列114的位线116可以被用来从列114的存储器单元110读取数据(即,将数据传送出)和将数据写到(即,将数据传送入)列114的存储器单元110中。在一些示例(未示出)中,位线116包括位线对。例如,位线对116可以是差分对,其中位线上的数据由差分对的位线116之间的差别(例如,电压差别)表示。此外,根据一些示例(例如,参见下面关于SRAM的),虽然在一些示例中可以使用位线对116,但是该对可以既充当列114的输入端、又可以充当输出端。
[0052]根据一些示例,在特定时刻,仅列112的单个存储器单元110被有效地连接到列114的位线116上,而在该特定时刻,列114的其它存储器单元110被基本断开。例如,充当开关的晶体管可以提供与位线116的连接和断开。当存储器单元110被访问或激活时,晶体管开关导通,以将存储器单元110连接到位线116上。存储器单元110到位线的连接将存储在存储器单元110中的数据传送到位线116上(即,将存储的数据“放置”到位线116上),或将数据从位线116传送到存储器单元110中以存储在那里。
[0053]本文中,将数据从存储器单元110传送到位线116上经常被称为“读取”数据或进行“读操作”,而将数据从位线116传送到存储器单元110以存储经常被称为“写”数据或进行“写操作”。在一些示例(未示出)中,写使能控制线被用来控制是将数据传送到数据线116(读),还是将数据线116上的数据传送到存储器单元110中并由存储器单元110存储(写)。根据各个示例,写使能可以是内置到存储器单元110自身(例如,如示出的)的功能,或者也可以是由列114提供的功能。
[0054]在一些示例中,行112的存储器单元110被共同地连接到字线118上。在一些示例中,与字线118的连接实质上限定了行112。如图2中示出的,特定字线118访问特定行118的所有存储器单元110。进一步地,例如,每一行112都具有各自的字线118,以允许各个行112在不访问其它行112的情况下被访问。生效特定行112的字线118(例如,设置逻辑“高”)访问或激活被连接到该行112上的存储器单元110。例如,访问或激活行112的存储器单元110可以被用来读取之前存储在行112的存储器单元110中的数据,或将数据写到行112的存储器单元110中。
[0055]在一些示例中,存储器单元110包括静态随机存取存储器(SRAM)存储器单元200。图3A示出根据依照本文描述的原理的示例的、示例性SRAM存储器单元200的示意图。图3A中示出的SRAM存储器单元200包括6个晶体管202。SRAM存储器单元200被配置为通过一对晶体管202a、202b与一对差分位线116连接。如示出的,差分位线116提供作为差
分输出的信号dout和,或提供作为给SRAM存储器单兀200的差分输入的信号din和。
该对晶体管202a、202b的栅极被连接到可以由字线信号W驱动的字线118上。如示出的,SRAM存储器单元200通过与电压源Vdd的连接被供电。
[0056]生效字线信号W激活该对晶体管202a、202b,以将SRAM存储器单元200连接到位线116上。特别地,根据一些示例,表示字线118上的逻辑“高”的字线信号使该对晶体管202a、202b导通或激活。该对晶体管202a、202b充当开关对,当被激活时,将SRAM存储器单元200的剩余的四个开关202连接到位线116上。被激活的开关202a、202b提供的连接允许将SRAM存储器单元200的剩余四个晶体管202存储的数据传送到位线116上,或者允许将位线116上的数据(例如,电压)传送到SRAM存储器单元200的剩余四个晶体管202处,以由那些晶体管202存储。
[0057]在一些示例中,存储器单元110包括动态随机存取存储器(DRAM)存储器单元210。图3B示出根据依照本文描述的原理的示例的、示例性DRAM存储器单元210的示意图。如示出的,DRAM存储器单元200包括晶体管212和电容器214。当生效字线118时,字线118被连接到晶体管212的栅极上以激活晶体管。特别地,当通过生效字线118上的字线信号W而将电压施加到晶体管212的栅极上时,晶体管212充当将电容器连接到列114的位线116上的开关。被激活的晶体管212提供的连接允许通过晶体管212将DRAM存储器单元210中存储的数据(例如,电容器214上的电压)传送到位线上,或者允许将位线116上的数据(例如,电压)传送到DRAM存储器单元210的电容器214中以存储在那里。
[0058]再次参见图2,可移位存储器100进一步包括移位逻辑120。如示出的,移位逻辑120被连接在列114之间。例如,移位逻辑120被连接在可移位存储器100的第一列Ilf和第二列114' !之间(或者,例如在列114和列114'之间,或列114和列114' !之间)。根据一些示例,可移位存储器100可以包括用于提供成对甚至成组的列114之间的多个连接的移位逻辑120。例如,除上述第一列114'和第二列114''之间的连接外,图2的移位逻辑120还提供其它的列114的对之间的连接。然而,由于这些其它连接可以与第一到第二列的连接基本类似的方式起作用,为了简单且不失一般性,本文的讨论可以限于第一到第二列的连接。
[0059]移位逻辑120被配置为将数据从第一列114'的输出端移位到第二列114',的输入端。例如,图2中示出的移位逻辑120可以被配置为将数据从第一列114'的位线116移位到第二列114',的位线116。根据各个示例,被移位的数据由多个行中的选中行112中的第一列Ilf的存储器单元110提供。例如,可以通过生效该行112的字线118来选择选中行112。根据各个示例,被移位的数据由第二列Ilf '的选中行112中的存储器单元110接收并存储。
[0060]在一些示例中,在被第一列Ilf的选中行112中的存储器单元110输出后,且在被移位逻辑120提供给第二列Ilf '的选中行112中的存储器单元110之前,被移位的数据可以被锁存或暂时存储。例如,可以利用锁存来便于数据通过单个的位线116的输入端和输出端(例如,如图2中示出的)。特别地,根据各个示例,被移位数据的锁存或相当的暂时存储可以避免在尝试利用位线116同时读和写数据时可能发生的冲突。例如,当同一位线116被既用于从存储器单元110输入、又用于输出时(例如,与具有分别的输入和输出信道的存储器单元相比),在第二列存储器单元110 (例如,也已经向另一存储器单元提供被移位数据的存储器单元110)做好接收并存储被移位数据的准备时,由第一列存储器单元110输出的被移位的数据可以被锁存。例如,一旦第二列存储器单元110准备好了,被锁存的被移位数据可以被释放,并由移位逻辑120施加到第二列存储器单元110上。
[0061]在一些示例中,移位逻辑120是集成到可移位存储器100中的电路。例如,移位逻辑120可以被实现为被内置到可移位存储器100的电路中的多个移位电路。例如,移位电路可以被集成到可移位存储器100的集成电路中。多个移位电路可以被连接在第一列114'位线116和第二列114''位线116之间,以将第一列114'输出的数据移位到第二列Ilf '中。例如,被移位的数据可以被存储在第二列Ilf '的选中行112中的存储器单元110中。在一些示例中,移位逻辑120可以包括用于暂时存储被移位数据的锁存器。在其它示例中,例如当使用波流水线读取和移位数据时,可以省略位线116上的专用锁存器。
[0062]在一些示例中,第一列Ilf和第二列Ilf '彼此相邻。例如,在图2中,第一列114'和第二列114''被示出为彼此相邻。当第一列114'和第二列114''彼此相邻时,例如,可移位存储器100所进行的数据移位可以引起选中行112中的数据移动单个数据位/移位(例如,单个存储器位置)。根据一些示例,多于一位的移位可以提供重复移位来完成。例如,可以通过8次一位移位来提供一个数据字(例如,8数据位)的移位距离。
[0063]在其它示例中,第一列114'和第二列114',可以被分开一个或多个列,以产生多于一个数据位的移位距离。特别地,根据一些示例,第一列114'和第二列114',之间的列的数目的范围可以从零(例如,对于相邻的列114来说)到比可移位存储器100的列114的总数小的数。例如,第一列Ilf和第二列Ilf '之间的距离可以表示一个数据位,或两个数据位,三个数据位,四个数据位,等等(未示出)的移位距离。此外,移位距离是可选的。具体地说,移位逻辑120可以提供对第一列114'和第二列114''之间的列114的数目的选择。例如,可选的列114的数目的范围可以从零到比可移位存储器100的列114的总数小的数(如上面所提到的)。[0064]在一些示例中,移位的方向可以提供左移位和右移位中的一种或两种。特别地,移位逻辑120可以被配置为将数据在沿选中行112的朝向选中行的开头(例如,左端)和朝向选中行112的末端(例如,右端)中的一个方向上,移位数据。图2中显示数据流的方向的箭头示出了用于既提供左移位、又提供右移位的移位逻辑120的能力。在一些示例中,移位逻辑120的移位方向被固定为左移位或右移位。在其它示例中,移位方向可以是现场可选的。例如,移位逻辑120可以具有在其它事项外,确定移位方向(即,左移位或右移位)的控制输入。
[0065]在一些示例中,移位逻辑120包括复用器。例如,复用器可以被连接为选择性地将数据从第一列114'路由到第二列114''。图4A示出根据依照本文描述的原理的示例的、包括复用器122的移位逻辑120的示意图。如示出的,复用器122具有从第一列114'的输出端或位线116接收数据的输入端。例如,复用器122的输入端可以被连接到第一列114'的检测放大器130 (下文中说明)的输出端。例如,复用器122的另一个输入端可以被连接到可移位存储器100的外部数据端口,以从外部源接收数据。进一步地,如示出的,复用器122的输出端被连接为将数据指引到第二列114',的输入端或位线116处。例如,复用器122的输出端可以被连接为将数据通过第二列114',的位线驱动器140 (下文中说明)的输入端指引到第二列114',的位线116。
[0066]如示出的,复用器122被配置为在外部来源的数据din和第一列Ilf的位线116提供的数据之间作出选择。进一步地,复用器122被配置为将所选择的数据路由到第二列IW '的输入端(例如,位线116),以存储在第二列Ilf '的选中行112(图4A中未示出)中的存储器单元110中。
[0067]根据一些示例,第一列Ilf离选中行112的开头比第二列Ilf '近。在一些示例中,复用器122实现的移位构成右移位。在其它示例中,第一列Ilf离选中行的末端(例如,右端)比第二列Ilf '近,使得复用器122实现的移位构成左移位。如图4A中示出的,由移位信号提供对复用器122的控制(即,选择哪个输入端)。例如,第一列114'和第二列114',输出的数据也可以被提供在用于外部使用的输出cLt。
[0068]图4B示出根据依照本文描述的原理的另一示例的、包括复用器122的移位逻辑120的示意图。特别地,如图4B中示出的,复用器122具有三个输入端。如上所述,第一输入端被连接为路由来自第一列114'的位线116的数据。同样地,如上所述,第二输入端被连接到可移位存储器100的外部数据端口(例如,din)。如图4B中示出的,复用器122的第三输入端被连接为从在第二列Ilf '的与第一列114'的一侧相对的一侧的第三列114',,的位线接收数据。例如,第三输入端可以被连接到第三列114',,的检测放大器130的输入端。
[0069]例如,如示出的,复用器122选择第一输入端可以提供数据的右移位(例如,将数据向右移动),选择第三输入端可以带来沿选中行112(未示出)的数据的左移位(例如,将数据向左移动)。如图4B中示出的,可以由一对线来提供移位信号以允许在三个输入端之间作出选择。
[0070]在一些示例中,移位逻辑进一步包括锁存器124。如图4A和4B中示出的,锁存器124可以沿位线116被设置在复用器122之前。根据一些示例,锁存器124可以在读操作期间,暂时存储位线116上的数据输出。根据一些示例,当移位时,锁存器124可以将位线116上的数据传递给下一阶段的复用器122。例如,如示出的,移位信号可以被用来控制锁存器124。
[0071]再次参见图2,可移位存储器100进一步包括检测放大器130和位线驱动器140中的一种或两种。如示出的,检测放大器130和位线驱动器140被设置在存储器单元110的多个行112和移位逻辑120之间。例如,检测放大器130可以充当列114的存储器单元110和被连接到列114上的其它组件(例如,移位逻辑120)之间的输出接口。例如,位线驱动器140可以充当其它组件(例如,移位逻辑120)和列114的存储器单元110之间的输入接□。
[0072]根据各个示例,检测放大器130放大选中行的存储器单元110产生的信号。例如,检测放大器130可以放大存储器单元110在被激活时产生的电压,并将放大的电压作为列114的输出提供。例如,电压可以被放大到与一个或多个移位逻辑120、与可移位存储器100连接的其它组件和可移位存储器100自身的其它电路兼容的电压电平。
[0073]在一些示例(例如,DRAM)中,检测放大器130也可以将放大的信号作为逻辑电平(例如,逻辑“O”或“I”)锁存。例如,即使当DRAM存储器单元的电压(例如,电容器上的电压)随时间衰减时,DRAM存储器单元的放大的信号也可以被锁存来提供来自列114的稳定输出。检测放大器130提供的锁存的输出也可以采取行动保持来自第一列Ilf的被移位的数据,直到数据可以被写到第二列114',中。根据一些示例,三态缓冲器(未示出)或基本等同的设备可以被用在检测放大器130的输出上,以将检测放大器130与下游的组件(例如,位线驱动器)隔离。例如,可以由充当使能信号的移位信号控制三态缓冲器。
[0074]根据各个示例,位线驱动器140驱动列114的位线116,以提供给列的存储器单元110的足够的输入信号电平。例如,位线驱动器140可以向位线116提供足够在数据要被选中行112的存储器单元110存储时,改变该存储器单元110状态的电压。在一些示例中,移位逻辑120包括被连接为选择性地将在第一列114'的位线116的检测放大器130的输出端处产生的数据路由到第二列114''的位线116的位线驱动器140的输入端的复用器122 (例如,参见图4A,4B)。例如,复用器122可以被配置为在数据要被移位时,选择性地路由数据。
[0075]参见图3A,包含多个SRAM存储器单元200的每一列114都可以包括检测放大器130和电压均衡器电路204。在一些示例中,电压均衡器电路204可以作为检测放大器130的部分被包括。例如,图3A中示出的检测放大器130可以由提供驱动信号SAN和SAP的检测放大器驱动器(未示出)驱动。如示出的,电压均衡器电路204被连接到信号EQ并由EQ驱动,并且由电压VDD/2供电。进一步地,如示出的,每一列114都包括一对位线驱动器140。位线驱动器140可以通过一对晶体管208被连接到位线116上。例如,晶体管208可以由写使能信号激活。例如,位线驱动器140可以被配置为以差分输入信号对din和驱动位线 116。
[0076]再次参见图2,根据一些示例,可移位存储器100被提供在进一步包括控制器150的系统中。根据各个示例,控制器150利用与行112相关的字线118选择行,和/或控制移位逻辑120以便于移位。例如,控制器150可以包括接收将被选择和移位的行112的地址的解码器。例如,行地址可以从可移位存储器100外部的系统(例如,处理器)接收。根据一些示例,控制器150可以进一步控制移位逻辑120。例如,控制器150可以提供移位信号(图4A和4B中所示)。例如,控制器150可以进一步包括选择移位逻辑120的部分以影响选中行112中的数据中的仅部分数据的移位的另一解码器。根据各个示例,控制器150可以被进一步配置来控制移位方向(例如,左移位和右移位)、移位距离和移位是否要发生中的一种或两种。
[0077]根据各个示例,可移位存储器100可以被配置为根据字大小的移位距离对数据进行移位。例如,可移位存储器100可以被配置为根据作为8位、16位、32位、64位等中的一种或多种的数据字大小对数据进行移位。例如,可以由采用可移位存储器100的系统定义数据字大小。根据一些示例,数据字沿可移位存储器100的行112被顺序存储。在这些示例中,例如,可以由用于将行112的数据位移位等于数据字大小的距离的移位逻辑来实现数据字大小的移位。
[0078]图5A示出根据依照本文描述的原理的示例的、可移位存储器100中的字大小的移位的示例的示意框图。如示出的,存储器单元110的行112中的数据位在移位期间被移位逻辑移位对应于8位数据字(例如,“10110101”)的8位。例如,对于数据位的连续集合来说,在行112中的第一存储器位置处的数据位可以被移位逻辑120移位到第八位置,在第二存储器位置处的数据位可以被移位逻辑120移位到第九存储器位置,等等。例如,将第一列114;与被从第一列Ilf开始的8列114替换的第二列Ilf ,连接的移位逻辑120可以被用来完成图5A中示出的移位。利用图5A中弯曲的箭头示出了移位。
[0079]图5B示出根据依照本文描述的原理的另一示例的、可移位存储器100中的字大小的移位的示例的示意框图。特别地,如图5B中所示,一个数据字被分布跨越多个行112。进一步地,当可移位存储器100移位数据时,以基本同时的方式移位图5B中示出的所有多个行112。例如,多个行112可以在分离的、基本平行的可移位存储器100的阵列中(例如,3-D阵列)。如图5B中弯曲的箭头示出的,数据字的数据位沿着每一行112被移位一个存储器位置(例如,一个存储器单元110)。然而,由于数据字被分布为跨越被基本同时移位的多个被移位的行112,因此移位引起将数据字在存储器中移动一个完整的字大小的距离。例如,将第一列Ilf与相邻的第二列Ilf '连接的移位逻辑120可以被用来实现图5B中示出的移位。在一些示例中,数据可被存储为具有不同粒度的、交叉的数据块,以提供对移位的控制。进一步地,如图5B中示出的,数据的连续子集包括多个连续子集,一个连续子集用于多个行112中的每一个。
[0080]图5C示出根据依照本文描述的原理的另一示例的、使用重映射来动态控制移位距离的、可移位存储器100中的移位的示例的示意框图。特别地,根据一些示例,重映射可以用来动态地改变具有固定移位距离的可移位存储器100中的移位距离。例如,如图5C中弯曲的箭头示出的,可移位存储器100可以提供一个存储器位置的固定物理移位距离。如果一组顺序数据被存储在一个第一阵列的行112中,那么可移位存储器100提供的移位距离等于固定的物理移位距离(例如,距离为I)。然而,例如,如果数据被重映射并且被存储在一对阵列中,那么移位一个存储器位置的固定物理距离可以提供为2的“逻辑”移位距离。
[0081]如图5C中示出的,如果一组顺序数据(例如,编号“1”、“2”、“3”等等)被重映射使得奇数编号的数据位被设置在第一阵列502的行112中而偶数编号的位被设置在第二阵列的对应行112中,那么2个存储器位置的逻辑移位距离由一个存储器单元的物理移位距离提供。重映射可以用来通过增加额外的阵列(未示出)并将一组顺序数据跨越增加的额外阵列分布来提供逻辑移位距离。此外,重映射可以被动态地用来改变具有固定物理移位距离的已部署的可移位存储器100中的移位距离。例如,可选的重映射可以由地址线(未示出)上的复用器来提供。
[0082]图6示出根据本文描述的原理的示例的、在可移位存储器中移位数据的方法300的流程图。如示出的,移位数据的方法300包括选择310可移位存储器的一行存储器单元。根据各个示例,可移位存储器的存储器单元被排列为多个行和多个列。根据一些示例,可移位存储器的存储器单元以及可移位存储器自身分别基本与如上所述的存储器单元110和存储器100相同。
[0083]移位数据的方法300进一步包括利用从多个列中的第一列到第二列的可移位存储器的移位逻辑,在列间传送320数据。在一些示例中,移位逻辑连接第一列的位线和第二列的位线,并将数据从第一列的位线移位到第二列的位线。例如,被传送的数据可以是选中行中的第一列的存储器单元提供的数据。根据一些示例,移位逻辑可基本上与上面关于可移位存储器100说明的移位逻辑120相同。
[0084]移位数据的方法300进一步包括将被传送的数据存储330到选中行的第二列的存储器单元中。例如,存储330被传送的数据可以由存储器单元以与存储器单元的运行特性一致的方式实现。根据各个示例,被传送的数据被沿选中行从第一列存储器单元移位到第二列存储器单元。
[0085]在一些示例(未示出),传送320数据包括放大来自第一列的存储器单元的信号。例如,放大可以利用检测放大器实现,以在检测放大器的输出端处产生数据。根据一些示例,检测放大器可基本上与上面关于可移位存储器100说明的检测放大器130相同。
[0086]在一些示例中,传送320数据进一步包括选择性地将数据从检测放大器的输出端传送到第二列的位线驱动器的输入端。例如,选择性地传送数据可以由可移位存储器的移位逻辑在数据被移位时实现。在一些示例中,传送320数据进一步包括利用位线驱动器驱动第二列的位线,以产生便于将数据存储到选中行中的第二列的存储器单元中的信号。
[0087]如此,说明了可移位存储器、可移位存储器系统和在使用行移位的可移位存储器中移位数据的方法的示例。应理解,上面描述的各示例仅为表示本文描述的原理的许多具体示例的一些说明。显然,本领域的技术人员可容易想出许多其它设置而不脱离由权利要求限定的精神。
【权利要求】
1.一种可移位存储器,包括: 存储器单元,被排列为多个行和多个列;和 移位逻辑,用于将数据从第一列的输出端移位到第二列的输入端,被移位的数据由选中行中的所述第一列的存储器单元提供,并且被移位的数据由所述第二列的所述选中行中的存储器单元接收和存储, 其中所述移位逻辑是为了便于沿所述选中行移位数据。
2.根据权利要求1所述的可移位存储器,其中所述第一列和所述第二列彼此相邻,并且所述选中行内的所有数据都被所述移位逻辑移位。
3.根据权利要求1所述的可移位存储器,其中所述第一列与所述第二列之间的列的数目在零和小于所述可移位存储器的列的总数的数之间可选。
4.根据权利要求1所述的可移位存储器,其中所述移位逻辑用于将数据在沿所述选中行的方向上移位,沿所述选中行的所述方向为朝向所述选中行的开头和朝向所述选中行的末端中的一个。
5.根据权利要求1所述的可移位存储器,其中所述移位逻辑包括具有连接到所述第一列的所述输出端的输入端并且具有连接到所述第二列的所述输入端的复用器输出端的复用器,所述复用器用于在来自所述复用器的另一输入端的数据与所述第一列的输出端上的数据之间进行选择,并且所述复用器进一步用于将所选择的数据路由到所述第二列的所述输入端,以存储到所述第 二列的所述选中行中的存储器单元中。
6.根据权利要求1所述的可移位存储器,进一步包括位于所述第一列和所述第二列的位线上的检测放大器和位线驱动器中的一种或两种,所述检测放大器和所述位线驱动器位于所述多个行的存储器单元与所述移位逻辑之间。
7.根据权利要求6所述的可移位存储器,其中所述移位逻辑包括复用器,所述复用器被连接为选择性地将在所述第一列的位线的所述检测放大器的输出端处产生的数据路由到所述第二列的位线的所述位线驱动器的输入端,所述复用器用于当数据将被移位时,选择性地路由数据。
8.根据权利要求1所述的可移位存储器,其中所述存储器单元包括动态随机存取存储器(DRAM)存储器单元和静态随机存取存储器(SRAM)存储器单元中的一种,所述列的输出端和输入端包括与所述DRAM存储器单元或所述SRAM存储器单元相关的位线。
9.根据权利要求1所述的可移位存储器,进一步包括控制器,所述控制器用于利用与所述行相关的字线选择所述行和用于控制所述移位逻辑以便于移位数据这两者中的一种或两种。
10.一种可移位存储器系统,包括: 被排列为行和列的存储器单元阵列,每一行的存储器单元被共同地连接到所述行的字线,并且所述列的存储器单元被共同地连接到所述列的位线; 多个移位电路,所述多个移位电路中的一个移位电路被连接在第一列位线与第二列位线之间,以将所述第一列输出的数据移位到所述第二列中,被移位的数据将被存储到所述第二列的选中行中的存储器单元中;和 控制器,用于利用所述字线选择所述行,并且用于控制所述移位逻辑电路便于移位数据。
11.根据权利要求10所述的可移位存储器系统,进一步包括位于所述存储器单元阵列与所述移位电路之间的检测放大器和位线驱动器中的一种或两种,所述检测放大器用于根据所述选中行中的所述第一列的存储器单元生成的位于所述第一位线上的信号产生所输出的数据,并且所述位线驱动器用于将所输出的数据提供到所述第二列的所述选中行中的存储器单元。
12.根据权利要求10所述的可移位存储器系统,其中所述存储器单元包括动态随机存取存储器(DRAM)存储器单元和静态随机存取存储器(SRAM)存储器单元中的一种,所述位线包括与所述DRAM存储器单元或所述SRAM存储器单元相关的位线对。
13.根据权利要求10所述的可移位存储器系统,其中所述数据包括数据字,所述数据字被顺序地沿所述多个行中的一个或多个行存储或被跨越对应行中的多个相邻阵列分布。
14.一种在可移位存储器中移位数据的方法,所述方法包括: 选择所述可移位存储器的一行存储器单元,所述可移位存储器的所述存储器单元被排列为多个行和多个列; 利用所述可移位存储器的移位逻辑在各列之间传送数据,传送数据是从第一列到第二列,所述数据由选中行中的第一列的存储器单元提供;以及 将被传送的数据存储到所述选中行的第二列的存储器单元中, 其中被传送的数据沿所述选中行从所述第一列的存储器单元被移位到所述第二列的存储器单元。
15.根据权利要求14所述的在可移位存储器中移位数据的方法,其中在各列之间传送数据包括: 利用检测放大器放大来自所述第一列的所述存储器单元的位线上的信号,以在所述检测放大器的输出端处产生所述数据; 选择性地将来自所述检测放大器的所述输出端的所述数据传送到所述第二列的位线驱动器的输入端;以及 利用所述位线驱动器驱动所述第二列的所述位线,以产生便于将所述数据存储到所述选中行中的所述第二列的所述存储器单元中的信号, 其中选择性地传送所述数据由所述可移位存储器的移位逻辑在数据被移位时进行。
【文档编号】G11C19/00GK103907157SQ201180074489
【公开日】2014年7月2日 申请日期:2011年10月28日 优先权日:2011年10月28日
【发明者】纳温·穆拉利马诺哈尔, 汉斯·伯姆 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1