一种相变存储器数据写入方法

文档序号:10688600阅读:578来源:国知局
一种相变存储器数据写入方法
【专利摘要】一种相变存储器数据写入方法,属于存储器的数据存储方法,解决现有相变存储器数据写入方法存在的未最大化地利用能耗预算问题,以提升相变存储器(PCM)的写性能和寿命。本发明包括读出数据步骤、分析数据步骤、写入数据步骤。本发明针对PCM写“0”和写“1”的延时及能耗的不对称性,充分利用PCM的能耗预算(power budget),通过分别记录每一个数据单元待修改的“0”和“1”的个数,对每一个数据单元写入顺序重新调度,最大化对能耗预算的利用,进一步缩短PCM的写延迟,从而提升写性能和寿命。
【专利说明】
一种相变存储器数据写入方法
技术领域
[0001 ]本发明属于存储器的数据存储方法,具体涉及一种相变存储器数据写入方法,适 用于构建高效的相变存储器存储系统,对于要求高性能、低延迟的非易失性内存系统的企 业、个人或研究机构,具有重要的使用价值。
【背景技术】
[0002] 相变存储器(PCM,Phase Change Memory)是一种由硫族化合物材料(GST, Ge2Sb2Te5)构成的新型非易失存储器,构成相变存储器的介质材料在一定条件下会在非晶 态和晶态之间发生转变,在此过程中的非晶态和晶态呈现出不同的电阻特性和光学特性, 因此,可以利用非晶态和晶态分别表示"0"和"Γ来存储数据。
[0003] 图1展示了PCM的存储架构,作为一个实例,相变存储系统由2个存储列(rank)组 成,每个存储列(rank)中包含N个存储体(bank),每个存储体(bank)由4个芯片(chips)组 成,每个芯片则包含多个存储单元阵列(cell block),每个存储单元阵列包括多个存储单 元,每个存储单元存储一位数据;数据总线的宽度决定了组成一个bank的芯片数量,由于电 源线的噪声会限制电荷栗为存储单元持续提供大的瞬时电流,因此一个芯片可以并行写入 的位数是受限制的,通常称一个芯片可以并行写入的位数为芯片写单元的大小,称一个存 储体(bank)内所有芯片可以并行写入的位数为一个PCM写单元的大小,PCM写单元的大小用 可以写入一个bank的字节数表示。
[0004] 设PCM写单元大小为N位,芯片写单元大小为K位,缓存行(cache Iine)大小为M位, 因此完成此缓存行大小的写入需要对同一个PCM写单元写入「M,/Ni次。通常,芯片写单元大 小K为16位,每个芯片封装成16位总线接口,而数据总线为64位,因此一共需要4个芯片进行 数据总线宽度对齐。一个缓存行大小为64字节,每字节8位;缓存行的数据一次可以并行写 入一个存储体(bank)的字节数为(Κ X (64/16))= 64位=8字节。
[0005] 缓存行首先会被分别存储在存储体(bank)内包含的L个(1^ = 21)芯片的芯片内缓 存当中,一个大小为M位的完整的缓存行分担到L个芯片,每个芯片的数据量Q = M/(8L)字 节,这Q字节数据需要对芯片写单元写入QX8/K次,每次写入一个数据单元(Data unit);待 写入缓存行的起始地址保存在缓存行地址寄存器当中。
[0006] 对于PCM写单元包含的4个芯片写单元而言,一个大小为64字节的完整的缓存行分 担到每个芯片的数据量Q为16字节,这16字节数据需要对芯片写单元写入Q/K(16 X 8/16 = 8)次,每次写入一个数据单元(Data unit)(2字节)。
[0007] 相变存储器有以下优点:非易失性、位可修改、读延迟短、读能耗低、无需刷新等。 此外,对比动态随机存取存储器(DRAM,Dynamic Random Access Memory)而言PCM能耗更 低,同时其非易失性和比较高的存储密度也使得它成为理想的内存替代品。PCM也有缺陷, 特别是写性能、写功耗和寿命问题,这促使研究人员提出各种方案和途径以弥补PCM的自身 缺陷。
[0008] 电源线的噪声会限制电荷栗为存储单元持续提供大的瞬时电流,因此可以并行写 入芯片的位数受限于PCM写单元大小(常数N)。而写一个缓存行需要多个连续执行的写单 元,这就大大降低了整体写性能。另外,相变存储器还有一个很重要的特征:写"0"和写"Γ 在延时和能耗方面的不对称性,如图2所示,写"Γ脉冲大致是写"0"脉冲所需的时钟周期的 八倍;写"〇"脉冲所需的电流强度约为写"Γ脉冲的两倍,写"〇"脉冲相比较写"Γ脉冲延时 更短,但所需的电流更大,这种不对称性极大地限制了 PCM写操作的性能。传统PCM系统在写 请求调度方面十分保守,其考虑的是电流需求最大和时间需求最长的情况,也就是按写入 的位都是"0"以及写入的位都是"Γ考虑。当写入一个混合有"0"和"Γ的数据块时,由于写 "0"写"Γ在响应时间方面的差异使得不必要的等待而导致写带宽未完全利用,并且由于对 能耗预算(power budget)的利用不足而浪费了并行性。
[0009] 本发明中,数据翻转是指原数据中各二进制位转换为与原二进制值相反的二进制 值,即"Γ转换为转换为"Γ。

【发明内容】

[0010] 本发明提供一种相变存储器数据写入方法,解决现有相变存储器数据写入方法存 在的未最大化地利用能耗预算问题,以提升相变存储器(PCM)的写性能和寿命。
[0011] 本发明所提供的一种相变存储器数据写入方法,包括读出数据步骤、分析数据步 骤、写入数据步骤,其特征在于:
[0012] ⑴读出数据步骤,对待写入存储体(bank)内各芯片,均包括下述子步骤:
[0013] (1.1)将缓存行地址寄存器的值设置为待写入缓存行的起始地址;将读出计数器 RD的值设置为0;
[0014] (1.2)读出芯片内缓存的偏移地址为(K+l) XRD的旧数据段{F,Do}并将其放入读 缓存中,旧数据段{F,D〇}的大小为K+1位,为扩展后芯片写单元的大小;其中翻转位F为1位, 旧数据单元Do为K位;
[0015] (1.3)在待写入的缓存行中取出偏移地址为KXRD的新数据单元D1,将新数据单元 D1和旧数据单元Do逐位进行比较,判断具有差别的位数是否大于K/2,是则转子步骤(1.4); 否则转子步骤(1.5);
[0016] (1.4)将新数据单元D1翻转为D2,将"Γ赋值给翻转位F,将0 2赋值给待写入数据单 元D,构成待写入数据段{F,D},转子步骤(1.6)办翻转为D2时,D冲各二进制"0"位变为T 位,"Γ位变为"0"位;
[0017] (1.5)新数据单元0:保持不变,将"0"赋值给翻转位F,将0:赋值给待写入数据单元 D,构成待写入数据段{F,D},转子步骤(1.6);
[0018] (1.6)将待写入数据段{F,D},保存到偏移地址为(K+l) XRD对应的芯片内缓存中, 记录其相对于旧数据段{F,D〇}修改的"Γ和"0"的个数,分别存入对应的写"Γ数组和写"0" 数组中;
[0019] 所述写"Γ数组和写"〇"数组分别包括M/(L X K)条记录,写"Γ数组中的每条记录 均由序号和数据构成,序号与芯片内缓存的偏移地址对应,数据为待写入数据段{F,D}相对 于旧数据段{F,Do}修改的T的个数;与其相似,写"0"数组中的每条记录均由序号和数据 构成,序号与芯片内缓存的偏移地址对应,数据为待写入数据段{F,D}相对于旧数据段{F, Do}修改的"0"的个数;M为缓存行的位数,N为PCM写单元的位数,K为芯片写单元的大小,L为 一个存储体内芯片数量;
[0020] (1.7)将RD+1的值赋予RD,判断是否RD=M/ (L X K ),是则转步骤(2 ),否则转子步骤 (1.2);
[0021] 在向某特定芯片写单元写入数据之前,首先读出该芯片写单元内的旧数据,并利 用设置翻转位的方法来最小化待写入的比特数;
[0022] (2)分析数据步骤,包括下述子步骤:
[0023] (2.1)分别建立写"Γ队列和写"0"队列,写"Γ队列和写"0"队列均为先进先出队 列,写"Γ队列和写"〇"队列的每条记录均由执行编号、数据单元序号和数据构成;执行编号 对应写入执行顺序的序号,数据单元序号与芯片内缓存的偏移地址对应,数据为待写入数 据单元,多个数据单元可以有相同的执行编号,表示这些数据单元应当在同一个执行顺序 与入芯片;
[0024] 将全局能耗预算数组WU中各条记录初始化为0,所述全局能耗预算数组WU包括M/ (LXK)条记录,每条记录均由执行编号及其对应的写入芯片能耗构成,转步骤(2.2);
[0025] (2.2)对写"Γ数组,通过MaxPB算法求解,确定并行写"Γ的待写入数据单元执行 顺序,形成写"Γ队列,转子步骤(2.3);
[0026] (2.3)对写"0"数组,通过MaxPB算法求解,确定并行写"0"的待写入数据单元执行 顺序,形成写"0"队列,转步骤(3);
[0027]分析数据步骤将写"0"和写"Γ分开,并通过MaxPB算法充分利用能耗预算确定调 度方案;
[0028] (3)写"Γ步骤,包括下述子步骤:
[0029] (3.1)设置写入起始地址寄存器start,其大小为(j+m+n)位,其值为缓存行地址寄 存器后(j+m+n)位,将写入顺序计数器q的值设置为1;
[0030] (3.2)判断写"Γ队列是否为空,是则转步骤(4);否则进行子步骤(3.3);
[0031] (3.3)从写"Γ队列中取出执行编号为q的各条记录,根据它们对应的数据单元序 号选择对应的待写入数据单元,进行子步骤(3.4);
[0032] (3.4)将待写入数据单元与读缓存中偏移地址为对应的数据单元序号的数据单元 进行异或逻辑运算,得到异或逻辑运算结果,进行子步骤(3.5);
[0033] (3.5)判断是否所述异或逻辑运算结果与待写入数据单元的相应位均为"1",是则 将"Γ写入存储单元地址为(start+数据单元序号+p)的存储单元当中,否则不进行任何操 作;进行子步骤(3.6);
[0034] (3.6)将q+Ι的值赋值给写入顺序计数器q,转子步骤(3.2);
[0035] (4)写"0"步骤,包括下述子步骤:
[0036] (4.1)判断写"0"队列是否为空,是则写入操作完成;否则进行子步骤(4.2);
[0037] (4.2)从写"0"队列中取出执行编号为q的各条记录,根据它们对应的数据单元序 号选择对应的待写入数据单元,进行子步骤(4.3);
[0038] (4.3)将待写入数据单元与读缓存中偏移地址为对应的数据单元序号的数据单元 进行异或逻辑运算,得到异或逻辑运算结果,进行子步骤(4.4);;
[0039] (4.4)判断是否所述异或逻辑运算结果相应位为"Γ且待写入数据单元的相应位 为"〇",是则将"〇"写入存储单元地址为(start+数据单元序号+p)的存储单元当中,否则不 进行任何操作;进行子步骤(4.5);
[0040] (4.5)将q+Ι的值赋值给写入顺序计数器q,转子步骤(4.1)。
[0041] 所述分析数据步骤的子步骤(2.2)中,所述MaxPB算法包括下述过程:
[0042] (2A)设置芯片写单元允许的最大能耗预算PBmax,PBmax由芯片规格决定;将执行 顺序计数器w置为1;
[0043] (2B)计算每一个待写入数据单元的能耗值,并放入能耗值数组IN中;将数据单元 处理计数器i的值置为1,进行过程(2C);
[0044] 所述能耗值数组IN包括M/(LXK)条记录,每条记录均由序号和数据构成,序号与 芯片内缓存的偏移地址对应,数据为待写入数据单元的能耗值;
[0045] 所述待写入数据单元的能耗值为子步骤(1.6)中写"Γ数组中相应记录的数据(修 改的T的个数)乘以写T所需能耗;其中,写T所需能耗由芯片规格决定;
[0046] (2C)对于所述能耗值数组IN,根据每条记录的数据大小,对所有记录进行降序排 序,并将各条记录按照排序后顺序放入待处理队列,转过程(2D);
[0047] (2D)判断待处理队列是否为空,是则进行过程(2E);否则转过程(2F);
[0048] (2E)形成写"Γ队列,分析调度完成;
[0049] (2F)从待处理队列头部取出一项纪录,进行过程(2G);
[0050] (2G)遍历WU数组前W项,判断是否(IN[i] +WU[W])〈PBmax,是则转过程(2H);否则转 过程(21);上述判断式中,IN[i]表示能耗值数组IN中第i条记录的数据,WU[w]表示全局能 耗预算数组WU中执行编号为w的写入芯片能耗;
[0051] 即判断IN中第i条记录的序号对应待写入数据单元是否可以在不违背芯片最大能 耗预算情况下在执行编号w的执行顺序写入芯片;
[0052] (2H)将w作为执行编号、将IN中第i条记录的序号作为数据单元序号、将IN中第i条 记录的序号对应待写入数据单元作为数据,构成一条记录,添加到写"Γ队列队尾;
[0053] 同时,将WU[w]+IN[i]的值赋予WU[w],将i+Ι的值赋予i,转过程(2D);
[0054] (21)将w+1的值赋予w,转过程(2H)。
[0055] 所述分析数据步骤的子步骤(2.3)中,所述MaxPB算法包括下述过程:
[005?] (2A)设置芯片写单元允许的最大能耗预算PBmax,PBmax由芯片规格决定;将w+1的 值赋值给w;
[0057] (2B)计算每一个待写入数据单元的能耗值,并放入能耗值数组IN中;将数据单元 处理计数器i的值置为1,进行过程(2C);
[0058]所述能耗值数组IN包括M/(LXK)条记录,每条记录均由序号和数据构成,序号与 芯片内缓存的偏移地址对应,数据为待写入数据单元的能耗值;
[0059] 所述待写入数据单元的能耗值为子步骤(1.6)中写"0"数组中相应记录的数据(修 改的"〇"的个数)乘以写"〇"所需能耗;其中,写"〇"所需能耗由芯片规格决定;
[0060] (2C)对于所述能耗值数组IN,根据每条记录的数据大小,对所有记录进行降序排 序,并将各条记录按照排序后顺序放入待处理队列,转过程(2D);
[0061] (2D)判断待处理队列是否为空,是则进行过程(2E);否则转过程(2F);
[0062] (2E)形成写"0"队列,分析调度完成;
[0063] (2F)从待处理队列头部取出一项纪录,进行过程(2G);
[0064] (2G)遍历WU数组前w项,判断是否(IN[i] +WU[w])〈PBmax,是则转过程(2H);否则转 过程(21);上述判断式中,IN[i]表示能耗值数组IN中第i条记录的数据,WU[w]表示全局能 耗预算数组WU中执行编号为w的写入芯片能耗;
[0065] (2H)将w作为执行编号、将IN中第i条记录的序号作为数据单元序号、将IN中第i条 记录的序号对应待写入数据单元作为数据,构成一条记录,添加到写"0"队列队尾;
[0066] 同时,将WU[w]+IN[i]的值赋予WU[w],将i+Ι的值赋予i,转过程(2D);
[0067] (21)将w+1的值赋予w,转过程(2H)。
[0068] 在现有芯片数据通路的基础上,本发明采用一种相变存储器芯片,其包括J个存储 单元阵列(Cell Block)、J个行列译码器、J个写驱动器、芯片内缓存、缓存行地址寄存器、多 路选择器(DMUX)和数据输出缓存(DOUT),J个存储单元阵列分别连接J个行列译码器,J个行 列译码器分别连接J个写驱动器,芯片内缓存与多路选择器和数据输出缓存依次串联,J = 2\j = 0、l、2或3;每一个存储单元阵列为2m行、2n列的存储单元矩阵,包括2mX2 nf存储单 元;m=9~16,n=l~5,一个PCM芯片大小为X2mX2"位,存储单元地址长度为(j +m+n)位; J个行列译码器,用来选择存储单元阵列的行和列;
[0069] 对存储单元的访问根据给定的存储单元地址进行,给定j+m+n位存储单元地址,根 据前j位判断存储单元所在的存储单元阵列,根据中间m位判断存储单元所在行编号,根据 最后的η位判断存储单元所在列编号,行编号和列编号共同确定一个存储单元在存储单元 阵列中的位置;
[0070] 现有芯片内缓存为M/L位,现有芯片的多路选择器和数据输出缓存各为K位,读缓 存为K位;为了支持数据翻转操作,将数据通路扩展:数据输出缓存和多路选择器均从K位扩 展到Κ+1位(加入了一位"翻转位");原有芯片内缓存增加(1/Κ)ΧΜ/1位、扩展到(1+1/Κ)Χ M/L位,所述多路选择器、数据输出缓存均扩展成为(Κ+1)位,并增加一个(Κ+1)位的读缓存;
[0071] 本发明依据上述芯片实现读出数据、分析数据和写入数据,
[0072] 读数据从上往下依次经过存储单元阵列、行列译码器、写驱动器、芯片内缓存、多 路选择器、读模块、一直到数据输出缓存中;写数据则从下往上依次经过数据输出缓存、多 路选择器、芯片内缓存、并行写模块、写驱动器和行列译码器一直到存储单元阵列。需要注 意的是,添加的层次并不会影响读操作的路径。
[0073] 其中,读模块执行本发明读出数据步骤的所有操作;并行写模块执行本发明分析 数据步骤、写入数据步骤的所有操作。
[0074] 与现有PCM写方案相比较,本发明具有如下优点:
[0075] (1)本发明能减少待写入的总位数。利用"读出数据、分析数据和写入数据"操作替 换原有的写操作来避免一些多余重复的写操作(在"〇"上写"〇"),并通过设置一个"翻转位" 将一个数据单元里需要修改的最大位数降低至不大于(K-l)/2,进而可以提升相变存储器 寿命。
[0076] (2)本发明能降低写延迟。利用相变存储器中一个存储单元写"0"和写"Γ的相应 时间和能耗不对称性,将写操作的写"〇"和写T分开处理,对保守的传统写方案进行了优 化,从而提升写带宽,降低写延迟。
[0077] (3)本发明可以充分利用并行性,通过在分析数据步骤对待写入的数据单元进行 对写"0"和写"Γ的排序,在能耗预算限制之下调度写单元,充分利用了写操作的并行性;并 最大化利用能耗预算,显著降低写延迟,提升PCM写性能和寿命。
[0078]本发明针对PCM写"0"和写"Γ的延时及能耗的不对称性,充分利用PCM的能耗预算 (power budget),通过分别记录每一个数据单元待修改的"0"和"Γ的个数,对每一个数据 单元写入顺序重新调度,最大化对能耗预算的利用,进一步缩短PCM的写延迟,从而提升写 性能和寿命。
【附图说明】
[0079]图1为PCM的存储架构示意图;
[0080]图2为PCM写操作在延时与能耗方面的不对称性示意图;
[0081 ]图3为本发明所采用的芯片示意图;
[0082]图4为本发明流程框图;
[0083]图5为读出数据步骤流程框图;
[0084]图6分析数据步骤流程框图;
[0085]图7为写入数据步骤流程框图;
[0086]图8为形成写"Γ队列的MaxPB算法流程框图。
【具体实施方式】
[0087]以下结合附图和实施例对本发明进一步说明。
[0088]如图3所示,本发明所采用的芯片实施例,其包括存储单元阵列#0~存储单元阵 列#4、4个行列译码器、4个写驱动器、芯片内缓存、缓存行地址寄存器、多路选择器(DMUX)和 数据输出缓存(DOUT),4个存储单元阵列分别连接4个行列译码器,4个行列译码器分别连接 4个写驱动器,芯片内缓存与多路选择器和数据输出缓存依次串联,每一个存储单元阵列为 2 9行、24列的存储单元矩阵,包括29 X 24个存储单元;一个PCM芯片大小为22 X 29 X 24位,存储 单元地址长度为(2+9+4)位;4个行列译码器,用来选择存储单元阵列的行和列;
[0089]对存储单元的访问根据给定的存储单元地址进行,给定2+9+4位存储单元地址,根 据前2位判断存储单元所在的存储单元阵列,根据中间9位判断存储单元所在行编号,根据 最后的4位判断存储单元所在列编号,行编号和列编号共同确定一个存储单元在存储单元 阵列中的位置;
[0090] 现有芯片内缓存为128位,现有芯片的多路选择器和数据输出缓存各为16位,读缓 存为16位;为了支持数据翻转操作,将数据通路扩展:数据输出缓存和多路选择器均从16位 扩展到17位(加入了一位"翻转位");原有芯片内缓存增加8位、扩展到136位,所述多路选择 器、数据输出缓存均扩展成为17位,增加一个17位的读缓存。
[0091] 图4为本发明流程框图;
[0092] 图5为读出数据步骤流程框图;
[0093]图6分析数据步骤流程框图;
[0094]图7为写入数据步骤流程框图;
[0095]图8为形成写"Γ队列的MaxPB算法流程框图;形成写"0"队列的MaxPB算法流程框 图与之类似,不再赘述。
【主权项】
1. 一种相变存储器数据写入方法,包括读出数据步骤、分析数据步骤、写入数据步骤, 其特征在于: (1) 读出数据步骤,对待写入存储体内各芯片,均包括下述子步骤: (1.1) 将缓存行地址寄存器的值设置为待写入缓存行的起始地址;将读出计数器RD的 值设置为〇; (1.2) 读出芯片内缓存的偏移地址为(K+1)XRD的旧数据段{F,D〇}并将其放入读缓存 中,旧数据段{F,D〇}的大小为K+1位,为扩展后芯片写单元的大小;其中翻转位F为1位,旧数 据单元Do为K位; (1.3) 在待写入的缓存行中取出偏移地址为KXRD的新数据单元Di,将新数据单元D4P 旧数据单元Do逐位进行比较,判断具有差别的位数是否大于K/2,是则转子步骤(1.4);否则 转子步骤(1.5); (1.4) 将新数据单元Di翻转为D2,将"Γ赋值给翻转位F,将02赋值给待写入数据单元D, 构成待写入数据段{F,D},转子步骤(l.ehDi翻转为D 2时,Di中各二进制"0"位变为"Γ位, "Γ位变为位; (1.5) 新数据单元0:保持不变,将"0"赋值给翻转位F,将0:赋值给待写入数据单元D,构 成待写入数据段{F,D},转子步骤(1.6); (1.6) 将待写入数据段{F,D},保存到偏移地址为(K+l) XRD对应的芯片内缓存中,记录 其相对于旧数据段{F,D〇}修改的"Γ和"0"的个数,分别存入对应的写"Γ数组和写"0"数组 中; 所述写"Γ数组和写"0"数组分别包括M/(LXK)条记录,写"Γ数组中的每条记录均由 序号和数据构成,序号与芯片内缓存的偏移地址对应,数据为待写入数据段{F,D}相对于旧 数据段{F,D〇}修改的"Γ的个数;与其相似,写"0"数组中的每条记录均由序号和数据构成, 序号与芯片内缓存的偏移地址对应,数据为待写入数据段{F,D}相对于旧数据段{F,D〇}修 改的"〇"的个数;Μ为缓存行的位数,N为PCM写单元的位数,K为芯片写单元的大小,L为一个 存储体内芯片数量; (1.7) 将R D+1的值赋予R D,判断是否R D = Μ八L X Κ),是则转步骤(2),否则转子步骤 (1.2); (2) 分析数据步骤,包括下述子步骤: (2.1) 分别建立写"Γ队列和写"0"队列,写Τ队列和写"0"队列均为先进先出队列,写 "Γ队列和写"〇"队列的每条记录均由执行编号、数据单元序号和数据构成;执行编号对应 写入执行顺序的序号,数据单元序号与芯片内缓存的偏移地址对应,数据为待写入数据单 元,多个数据单元可以有相同的执行编号,表示这些数据单元应当在同一个执行顺序写入 芯片; 将全局能耗预算数组WU中各条记录初始化为0,所述全局能耗预算数组WU包括M/(LX K)条记录,每条记录均由执行编号及其对应的写入芯片能耗构成,转步骤(2.2); (2.2) 对写"Γ数组,通过MaxPB算法求解,确定并行写"Γ的待写入数据单元执行顺序, 形成写"Γ队列,转子步骤(2.3); (2.3) 对写"0"数组,通过MaxPB算法求解,确定并行写"0"的待写入数据单元执行顺序, 形成写"〇"队列,转步骤(3); (3) 写"Γ步骤,包括下述子步骤: (3.1) 设置写入起始地址寄存器start,其大小为(j+m+n)位,其值为缓存行地址寄存器 后(j+m+n)位,将写入顺序计数器q的值设置为1; (3.2) 判断写"Γ队列是否为空,是则转步骤(4);否则进行子步骤(3.3); (3.3) 从写"Γ队列中取出执行编号为q的各条记录,根据它们对应的数据单元序号选 择对应的待写入数据单元,进行子步骤(3.4); (3.4) 将待写入数据单元与读缓存中偏移地址为对应的数据单元序号的数据单元进行 异或逻辑运算,得到异或逻辑运算结果,进行子步骤(3.5); (3.5) 判断是否所述异或逻辑运算结果与待写入数据单元的相应位均为"1",是则将 "Γ写入存储单元地址为(start-数据单元序号+p)的存储单元当中,否则不进行任何操作; 进行子步骤(3.6); (3.6) 将q+Ι的值赋值给写入顺序计数器q,转子步骤(3.2); (4) 写"0"步骤,包括下述子步骤: (4.1) 判断写"0"队列是否为空,是则写入操作完成;否则进行子步骤(4.2); (4.2) 从写"0"队列中取出执行编号为q的各条记录,根据它们对应的数据单元序号选 择对应的待写入数据单元,进行子步骤(4.3); (4.3) 将待写入数据单元与读缓存中偏移地址为对应的数据单元序号的数据单元进行 异或逻辑运算,得到异或逻辑运算结果,进行子步骤(4.4);; (4.4) 判断是否所述异或逻辑运算结果相应位为"Γ且待写入数据单元的相应位为 "0",是则将"0"写入存储单元地址为(start-数据单元序号+p)的存储单元当中,否则不进 行任何操作;进行子步骤(4.5); (4.5) 将q+Ι的值赋值给写入顺序计数器q,转子步骤(4.1)。2.如权利要求1所述的相变存储器数据写入方法,其特征在于: 所述分析数据步骤的子步骤(2.2)中,所述MaxPB算法包括下述过程: (2A)设置芯片写单元允许的最大能耗预算PBmaX,PBmax由芯片规格决定;将执行顺序 计数器w置为1; (2B)计算每一个待写入数据单元的能耗值,并放入能耗值数组IN中;将数据单元处理 计数器i的值置为1,进行过程(2C); 所述能耗值数组IN包括M/(LXK)条记录,每条记录均由序号和数据构成,序号与芯片 内缓存的偏移地址对应,数据为待写入数据单元的能耗值; 所述待写入数据单元的能耗值为子步骤(1.6)中写"Γ数组中相应记录的数据乘以写 "Γ所需能耗;其中,写"Γ所需能耗由芯片规格决定; (2C)对于所述能耗值数组IN,根据每条记录的数据大小,对所有记录进行降序排序,并 将各条记录按照排序后顺序放入待处理队列,转过程(2D); (2D)判断待处理队列是否为空,是则进行过程(2E);否则转过程(2F); (2E)形成写"Γ队列,分析调度完成; (2F)从待处理队列头部取出一项纪录,进行过程(2G); (2G)遍历WU数组前w项,判断是否(IN[i]+WU[w])〈PBmaX,是则转过程(2H);否则转过程 (21);上述判断式中,IN[i]表示能耗值数组IN中第i条记录的数据,WU[w]表示全局能耗预 算数组WU中执行编号为W的写入芯片能耗; (2H)将w作为执行编号、将IN中第i条记录的序号作为数据单元序号、将IN中第i条记录 的序号对应待写入数据单元作为数据,构成一条记录,添加到写"Γ队列队尾; 同时,将WU[w]+IN[i]的值赋予WU[w],将i+Ι的值赋予i,转过程(2D); (21)将w+1的值赋予w,转过程(2H)。3.如权利要求1所述的相变存储器数据写入方法,其特征在于: 所述分析数据步骤的子步骤(2.3)中,所述MaxPB算法包括下述过程: (2A)设置芯片写单元允许的最大能耗预算PBmaX,PBmax由芯片规格决定;将w+1的值赋 值给w; (2B)计算每一个待写入数据单元的能耗值,并放入能耗值数组IN中;将数据单元处理 计数器i的值置为1,进行过程(2C); 所述能耗值数组IN包括M/(LXK)条记录,每条记录均由序号和数据构成,序号与芯片 内缓存的偏移地址对应,数据为待写入数据单元的能耗值; 所述待写入数据单元的能耗值为子步骤(1.6)中写"0"数组中相应记录的数据乘以写 "0"所需能耗;其中,写"0"所需能耗由芯片规格决定; (2C)对于所述能耗值数组IN,根据每条记录的数据大小,对所有记录进行降序排序,并 将各条记录按照排序后顺序放入待处理队列,转过程(2D); (2D)判断待处理队列是否为空,是则进行过程(2E);否则转过程(2F); (2E)形成写"0"队列,分析调度完成; (2F)从待处理队列头部取出一项纪录,进行过程(2G); (2G)遍历WU数组前w项,判断是否(IN[i]+WU[w])〈PBmaX,是则转过程(2H);否则转过程 (21);上述判断式中,IN[i]表示能耗值数组IN中第i条记录的数据,WU[w]表示全局能耗预 算数组WU中执行编号为w的写入芯片能耗; (2H)将w作为执行编号、将IN中第i条记录的序号作为数据单元序号、将IN中第i条记录 的序号对应待写入数据单元作为数据,构成一条记录,添加到写"0"队列队尾; 同时,将WU[w]+IN[i]的值赋予WU[w],将i+Ι的值赋予i,转过程(2D); (21)将w+1的值赋 予w,转过程(2H)。
【文档编号】G11C13/00GK106057236SQ201610348925
【公开日】2016年10月26日
【申请日】2016年5月24日
【发明人】童薇, 冯丹, 王芳, 刘景宁, 李铮, 刘翔
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1