一种基于交叉点阵列的阻变存储器的写入方法与流程

文档序号:14475796阅读:222来源:国知局
一种基于交叉点阵列的阻变存储器的写入方法与流程

本发明属于信息存储领域,更具体地,涉及一种基于交叉点阵列的阻变存储器的写入方法。



背景技术:

dram作为内存已有数十年之久。然而,dram的工艺制程降低到十几纳米以后难以进一步缩小,并且其单元访问延迟一直维持在几十纳秒难以进一步降低。此外,dram是一种易失性的存储器,其刷新操作带来的能耗开销已经不容忽视。这些问题使得用dram构建大容量、低延迟、低能耗的内存变得愈加困难。新兴的非易失存储器的出现给内存的发展带来了希望。其中,阻变存储器(resistiverandom-accessmemory,rram)由于其较小的单元尺寸(<10nm)、较长的写耐久性(>1010cycles)、较高的开/关阻值比(>103)、良好的cmos工艺兼容性以及3维集成的潜力,有望被用来构建下一代大规模的存储级内存,并替代dram。

无源双端的rram器件由特定的材料组成(例如,金属氧化物),它以电阻的形式存储信息。rram器件至少具有两个状态:低阻态和高阻态。低阻态代表逻辑1,而高阻态代表逻辑0。从高阻态到低阻态的转变称为置位(set),从低阻态到高阻态的转变称为复位(reset)。rram器件的写延迟比其读延迟高。而对于写操作,reset的延迟比set的延迟高。rram器件的电流-电压特性曲线较高的非线性度有利于交叉点阵列中目标单元的选择。在单选择器-单电阻器结构中,每个rram器件都串联一个选择器。具有高非线性度的选择器能进一步地抑制交叉点阵列中的潜行电流,增大写电压窗口,提高能量利用效率。

如图1a所示,交叉点阵列(cross-pointarray)由两种导线互连而成:字线和位线。rram器件夹在顶层和底层导线之间。在单层交叉点阵列中,rram单元的面积达到理论最小值4f2,其中f是特征尺寸。对于芯片面积,外围电路所占的部分随着交叉点阵列尺寸的增大而减小。而且,cmos电路能够被放置在交叉点阵列的下方以进一步减小芯片面积。因此,为了构建高存储密度的内存,采用大规模小尺寸的交叉点阵列是必要的。

如图1b所示,两种电压偏置方案(半偏置和三分之一偏置)能够用于交叉点阵列中目标单元的写入。在半偏置方案中,被选择的字线和位线被偏置于v和0,而其它所有的导线都被偏置于v/2。对于半偏置方案,伏安特性曲线的非线性度定义为rram器件在v下的电流和在v/2下的电流的比值。

然而,交叉点阵列中的互连电阻随着技术结点的减小而急剧地增加,导致了导线上的电压降问题(irdropproblem),并且这种现象在大规模的阵列中尤为明显。互连导线上的电压降导致了交叉点阵列中不均匀的有效电压分布。由于rram器件两端的电压和它的状态转变时间成负指数关系,因此在大规模小尺寸的交叉点阵列中,即使是在同一行或同一列上的单元之间的写延迟差异也非常大。交叉点阵列中的写延迟分布与目标单元的位置和阵列中的数据模式有关。当数据模式一定时,离电压源越远的单元其写入延迟越高。为了在内存子系统的性能和实现的复杂度之间取得权衡,这种不同位置的写延迟差异通常以区域为单位暴露给内存控制器。为了保证正确性,每一个区域的访问延迟都由其最慢的单元所决定。因此,传统兼容dram的按行进行区域划分、编址和寻址的方案没有充分考虑交叉点阵列中不均匀的写延迟分布。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于交叉点阵列的阻变存储器的写入方法,其目的在于通过动态地使能不同方位的外围电路来最小化电压降路径长度;通过设计一种区域划分方式来缩小各个区域内的写入延迟差异;通过设计一种编址与寻址方式来在物理地址和单元位置之间建立映射,并提供了一种并行寻址电路系统来加速寻址过程;通过采用一种特定的电压偏置模式来在既不同行也不同列的单元之间重叠set和reset过程,开发了交叉点阵列中的行级并行,由此达到减小写入延迟,提升写入带宽,降低写入能耗的目的。

为实现上述目的,提供了一种基于交叉点阵列的阻变存储器的写入方法,所述方法包括:

(1)将1个交叉点阵列划分为4个子阵,根据所访问单元的物理地址动态地配置外围电路,使得位于不同的子阵中的存储单元由其最近的电压源对其进行偏置;

(2)将每个子阵划分为m×m个子块,由各个子阵中位于同一条对角线上的子块组成一个区域,并被赋予一个区域号;

(3)将第一列的子块号作为基址,通过并行比较电路来完成子块的行号和列号的寻址;将物理地址分段,对其中三段进行并行寻址,所述三段分别代表子阵号、子块号和段号;最后综合得到交叉点阵列目标单元的行地址和列地址;

(4)将交叉点阵列中相邻的两行作为一个整体进行写入调度,同时执行set和reset操作,在对前一行需要写入的单元进行set/reset操作的同时,对后一行需要写入的单元进行互补的reset/set操作;

(5)若要进行数据交换的两个子块不在同一行并且不在同一列上,则执行对角交换;否则执行传统的数据交换操作。

进一步地,其特征在于,所述步骤(1)具体包括:

(11)将一个交叉点阵列划分成一个2×2的分块矩阵,每一块大小相等,称为一个子阵;

(12)将访存的物理地址解码,获取出其中的子阵号;

(13)若子阵号为0,则用交叉点阵列左方和下方的外围电路对其进行偏置;若子阵号为1,则用交叉点阵列右方和下方的外围电路对其进行偏置;若子阵号为2,则用交叉点阵列右方和上方的外围电路对其进行偏置;若子阵号为3,则用交叉点阵列左方和上方的外围电路对其进行偏置。

进一步地,所述步骤(13)中的偏置是指半偏置方案,且该方案用于交叉点阵列的写入。

进一步地,所述步骤(2)具体包括:

(21)将所述子阵划分成m×m个大小相等的子块,读写操作在子块内部进行;

(22)将所述每一个子块按行分割成段,子块内部采用逐行的方式进行编址与写入,段由位于同一行上并行写入的单元所组成;段是最基本的写入单位;

(23)由各个子阵中位于同一条对角线上的所有子块构成一个区域,一共有2m-1个区域。

进一步地,所述步骤(3)具体包括:

(31)在目标子阵中寻址目标子块;具体包括:

(311)在内存子系统上电时将子阵第一列的子块号写入由sram实现的基址寄存器文件中,作为参考序号;

(312)若目标子块号a大于子块数量m2的一半,则目标子块号a=m2-1-a;

(313)将目标子块号a送入并行比较电路中,该电路对目标子块号和基址寄存器文件中的参考序号进行比较,若目标子块号大于或等于参考序号,则比较器输出1;否则输出0;

(314)将并行比较器的输出结果组装成一个码字x,求出该码字的相反数-x;

(315)对-x进行译码,求其最高位0的个数,即为目标子块所在的区域号r;

(316)根据目标子块所在的区域号r查找基址寄存器文件得到该区域第一个子块号s,若目标子块号a小于或等于子块数量m2的一半,则目标子块的列号col=a-s,行号row=r-a+s;否则目标子块的列号col′=n-1-col,行号row′=n-1-row,n表示交叉点阵列的行或列的数量;

(32)基于地址分段的并行寻址过程;具体包括:

(321)将逻辑地址和物理地址分段,每一段分别表示逻辑/物理子块号、高级别单位号、子阵号、段号和阵列号;

(322)通过查找映射表来得到逻辑子块号对应的物理子块号,从逻辑地址到物理地址只需要变换子块号即可,其它地址段保持不变;

(323)对查找映射表得到的物理子块号实施步骤(31),得到目标子块的行号和列号;对子阵号实施步骤(1),得到需要使能的外围电路的方位;对段号实施传统的按行寻址,得到目标子块内部的行偏移量和列偏移量;

(324)综合目标子块的行号和列号、需要使能的外围电路的方位以及目标子块内部的行偏移量和列偏移量,得到目标单元的行地址和列地址。

进一步地,所述步骤(4)具体包括:

(41)在子块内对段进行编址时,将同一个子块中的两个段作为一组,同时写入;前一半目标单元对应前半段,后一半目标单元对应后半段;若该组被映射到前半段2k行上,则前半段在第2k行上,后半段在第2k+1行上;若该组被映射到第2k+1行上,则前半段在第2k+1行上,后半段在第2k行上;并且这两个段在列地址上是相邻的;

(42)读出这一组的两个段中的原始数据,并和需要写入的数据进行比较,计算出需要更改的位;

(43)内存控制器根据二维的reset延迟表来决定写入交叉点阵列中的目标单元所需的时间;若需要执行reset的单元个数小于或等于一个段中单元总个数的一半,那么内存控制器就采用reset一半单元所需的延迟;否则内存控制器采用reset整个段的延迟;

(44)对前半段中需要set的单元执行set操作,同时对后半段中需要reset的单元执行reset操作;

(45)对前半段中需要reset的单元执行reset操作,同时对后半段中需要set的单元执行set操作。

进一步地,所述步骤(43)中二维的reset延迟表的第一维是区域号,第二维反映了一次实际写入单元的个数。

进一步地,所述步骤(5)中对角数据交换的过程同时写入两个要交换的数据。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下技术特征及有益效果:

(1)本发明方法同时在行、列两个维度上考虑了交叉点阵列中互连导线上的电压降对目标单元写入延迟的影响;

(2)本发明方法通过一种基于写入延迟分布的区域划分方式,有效地缩小了各个区域内存储单元之间的写入延迟差异,减小了各个区域的写入延迟,同时保证了单元级并行度;并且同时将目标单元的位置以及一次并行写入的单元个数对写入延迟的影响暴露给内存控制器;

(3)本发明方法通过一种编址与寻址方法,使得写入延迟随着物理地址递增,有利于地址映射、内存分配与编译优化;

(4)本发明方法探索并开发了交叉点阵列中的行级并行,通过一种特定的电压偏置模式,将不同行且不同列的set与reset操作过程重叠起来,以降低交叉点阵列整体的写入延迟,提升吞吐率。

附图说明

图1a和1b分别是交叉点阵列结构的俯视图和半偏置方案的示意图;

图2是本发明方法的流程示意图;

图3a是基于有效电流路径的电压偏置示意图;

图3b是分块对角区域划分与分块对角寻址的整体框架示意图;

图4是在子阵的下三角中寻址目标子块示意图;

图5是分块对角寻址流程的结构图;

图6是用于对角写入与对角数据交换的四种电压偏置模式示意图;

图7是使用半偏置方案的对角写入过程示意图;

图8是组与行地址之间的映射关系图;

图9是子阵中对角数据交换的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图2所示,本发明方法包括:

(1)基于有效电流路径的电压偏置:将1个交叉点阵列划分为4个逻辑单位(子阵)。根据所访问单元的物理地址,动态配置外围电路,使得交叉点阵列中不同位置(即位于不同的子阵中)的存储单元由其最近的电压源对其进行偏置。

(2)分块对角区域划分:将1个子阵划分为m×m个逻辑单位(子块)。同一个子阵中位于同一条对角线上的子块属于同一个区域,并被赋予一个区域号。不同子阵之间具有相同区域号的子块也属于同一个区域。区域是内存控制器调度时序参数的最小单位,而子块是快慢区域之间冷热数据交换的最小单位。为了降低实现的硬件开销,内存控制器只区分区域间的写入延迟差异,而忽略区域内部的写入延迟差异。为了保证读写调度的正确性,同一个区域内最慢单元的访问延迟作为该区域的延迟暴露给内存控制器。

(3)分块对角编址与寻址:分块对角区域划分会使得不同的区域有不同的大小。为了加快子阵内目标子块的查找,通过将第一列的子块号作为基址,设计了一种并行比较电路来完成子块的行号和列号的寻址。为了进一步加快寻址过程,本方案将物理地址分段,其中三个段分别代表子阵号、子块号和段号(交叉点阵列中同一行上目标单元的集合称为段)。子阵、子块和段被并行寻址,最后综合得到交叉点阵列的目标行、列地址。

(4)对角写入:为了开发行级并行,提升写入带宽,交叉点阵列中相邻的两行作为一个整体进行调度,同时执行set和reset操作。在对前一行需要写入的单元进行set/reset操作的同时,对后一行需要写入的单元进行互补的操作(reset/set)。

(5)对角交换:为了提高快慢区冷热数据的交换速率,采用对角写入机制的电压偏置模式来完成数据交换。冷热数据交换发生在同一个子阵内,并且数据交换以子块为单位。若要进行数据交换的两个子块既不在同一行也不在同一列上,则执行对角交换;否则执行传统的数据交换。在不降低写入操作的可靠性的前提下,该方案减少了50%的写入操作。

如图3a所示,一个交叉点阵列在逻辑上被分成了4个子阵0-3。在执行写入操作时,分块对角寻址电路对物理地址中的子阵号位段进行判断,决定使能哪两个相邻边的外围电路。

若目标单元位于子阵0中,则使用左边和下边的外围电路(电压源)对交叉点阵列采用半偏置方案进行写入;

若目标单元位于子阵1中,则使用右边和下边的外围电路;

若目标单元位于子阵2中,则使用右边和上边的外围电路;

若目标单元位于子阵3中,则使用左边和上边的外围电路。

这样,四个角落位置的单元的写入延迟最低,而位于阵列中心的单元写入延迟最高。在图中标明了采用基于有效电流路径的电压偏置方案后交叉点阵列中写入延迟增加的方向。

如图3b所示,每一个子阵被划分成了若干个大小相等的子块。子块内部的单元采用逐行编址,对交叉点阵列的写入或读出操作在同一个子块内部进行,从而保证了单元级并行度。

同时,子块是冷热数据交换的基本单位。一个区域分散在同一个内存的所有交叉点阵列中,且在一个子阵中的部分由位于同一条对角线上的子块组成,这样就减小了区域内部单元之间写入延迟的差异。因此,不同的区域具有不同的大小。区域是内存控制器分辨不同位置的写入延迟的差异的最小单位,每个区域中最差数据模式下最慢单元的写入延迟作为整个区域的写入延迟暴露给内存控制器。图示在子阵0中,左下角区域写入延迟最低,右上角区域写入延迟最高。这样便使内存控制器感知到了目标单元位置对写入延迟的影响,并形成了多级延迟调度的格局。

如图4所示,为了克服不同区域内子块数目不相同给寻址带来的困难,子阵中位于第一列的子块被作为参考子块。参考子块号(rsn)和相应的区域号(rn)之间的关系可以表示为:rsni=rni(rni+1)/2。

进一步地,子阵被分为上三角和下三角。对于下三角,目标子块号(tsn)满足:rsni≤tsn<rsni+1。基址寄存器文件用于存储参考子块号,它使用sram来实现。其内容在运行时是固定的,在上电时从非易失的阻变存储器的额外空间中加载到sram。在此模块中,待查找的子块号作为输入和寄存器文件中的参考子块号进行并行比较,若待查找的子块号大于或等于参考子块号,则比较器输出为1;否则输出为0。比较器硬件模块可以通过内容可寻址存储器(cam)来实现。输出的结果组装成一个码字,对该码字求相反数,其高位0的个数即为区域号。这样,子块的行号和列号也能确定出来。对于位于上三角中的子块,则利用同一个子阵中两个中心对称的子块号互补的性质(a(i,j)=n2-1-a(n-1-i,n-1-j),其中a是子块号,n是子阵的边长)来转化寻址过程,减少了所需的寄存器和比较器的数目。

如图5所示,由于在分块对角区域划分方案中在阵列级和单元级之间引入了子阵级、子块级和段级三个内存逻辑层次结构,并且这三个地址单位是相互独立的,因此内存地址在阵列中的位段可以分为三个部分来分别表示子块号、子阵号和段号,并且它们可以被并行寻址。区域是分散在各个交叉点阵列之间的,所以子块号对应的位段高于子阵号对应的位段。地址转换过程分为两个阶段,即动态地址重映射阶段和并行寻址阶段。内存访问的地址首先通过一个地址重映射模块,以使得经常被更改的数据存储到快区域,从而加快经常性事件。子块号能反应写入延迟,并且每一个子块的大小都是相同的,因此子块被选为地址映射和数据交换的基本单位。从逻辑地址到物理地址的转换只需要变换子块号即可,即维护一个从逻辑子块号到物理子块号的映射表,其它的位段保持不变。在并行寻址阶段,对物理子块号施行如图4所示的对角寻址,得到子块行号和列号;对子阵号施行基于有效电流路径的电压偏置方案,得到子阵的方位;对段号施行传统的按行寻址,得到子块内部的行、列偏移量。综合以上这些参数便可得到目标行、列地址。分块对角寻址在物理地址和阻变存储器单元的几何位置之间建立了一种函数式的静态映射。这种物理地址布局使得写入延迟随着物理地址递增,并隐藏了交叉点阵列内部的细节。这种递增的性质有利于地址映射、内存分配与编译优化。为了利用目标单元位置对写入延迟的影响,操作系统和编译器只需要把经常更改的数据放在低地址区域,而把很少更改的数据放在高地址区域,从而加快经常性事件,降低内存的平均访问延迟。

如图6所示,在交叉点阵列中,若要进行set的单元和要进行reset的单元既不在同一行上又不在同一列上,则set和reset过程可以同时进行。这种性质称为行级并行性。图中的两行或两列不要求是相邻的。在采用半偏置方案时,其它未画出的所有行、列都接v/2的电压。

如图7所示,在对角写入方案中,为了提高交叉点阵列中写入操作的并行度,子块中的两个段被设置为一组而同时写入。其中,一个段在前一行,另一个段在后一行。由于和写操作相比,读操作的延迟较小,因此数据写入模块采用读-比较-写的机制。原始数据在写入之前被内存控制器读出,并且只有那些需要更改的位才会被写入,以避免不必要的写操作。对于双极性阻变存储器,写操作包括两个必要的阶段。第一阶段是对前半段中需要进行set操作的单元执行set操作,同时对后半段中需要进行reset操作的单元执行reset操作。第二阶段是对前半段中需要进行reset操作的单元执行reset操作,同时对后半段中需要进行set操作的单元执行set操作。由于采用半偏置方案,在图中所有未标出的行、列都接v/2的电压。内存控制器采用一个二维的延迟列表(lij)n×2来确定写入操作所需要的延迟,其中i是区域号,j反映了一次并行写入的单元个数,n是区域数目。若要进行reset单元的个数不超过段大小的一半,则内存控制器采用一个较低的延迟参数li1,否则内存控制器采用一个较高的延迟参数li2。

如图8所示,为了支持对角写入,同一个子块中相邻的两行被作为一对。每个组被分为了前半段和后半段,它们分别在两个相邻的行,相邻的列上。在此方案中,组是最小的写入单位。每个组的前半段所在的行作为该组的行号。行号较小的组地址也较小。另外,一个高速缓存行中的数据被分散到多个交叉点阵列的同一个子块中,并且同一个交叉点阵列中的数据交错地分布于相邻的两行上。

如图9所示,对角数据交换可用于不同区域的子块之间冷热数据的交换,也可用于用户自定义的数据交换操作。图7描绘了对角数据交换操作的原理。为了兼容基于有效电流路径的电压偏置方案,并加快数据交换的速率,对角数据交换被限制为只发生在同一个子阵中。对于不同区域子块之间的冷热数据交换,两个子块中对应的段被依次交换。若两个段既不在同一行上又不在同一列上,则执行对角数据交换;否则执行传统数据交换。对角数据交换的过程是先读出两个段中的原始数据,比较后再同时写入;而传统数据交换的过程是先读出两个段中的原始数据,比较后再分别写入。相比传统数据交换,对角数据交换减少了50%的写入操作次数,因此降低了数据交换的延迟。

以上内容本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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