[发明专利]一种提高PCM写性能的优化方法在审
申请号: | 202010917195.1 | 申请日: | 2020-09-03 |
公开(公告)号: | CN112068775A | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 何丹;严思香;何英;梅圆;徐文 | 申请(专利权)人: | 南昌航空大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F12/08 |
代理公司: | 南昌洪达专利事务所 36111 | 代理人: | 刘凌峰 |
地址: | 330000 江西*** | 国省代码: | 江西;36 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 提高 pcm 性能 优化 方法 | ||
1.一种提高PCM写性能的优化方法,其特征在于:所述方法包括以下步骤,
(1)读出数据步骤,对待写入存储体(bank)内各芯片,均包括下述子步骤:
(1.1)将缓存行地址寄存器的值设置为待写入缓存行的起始地址;将读出计数器RD的值设置为0;
(1.2)读出芯片内缓存的偏移地址为(K+K/8+1)×RD的旧数据段{F1,F2,D0}并将其放入读缓存中,旧数据段{F1,F2,D0}的大小为K+K/8+1位,为扩展后芯片写单元的大小;其中翻转位F1为1位,标志位F2为K/8位,旧数据单元D0为K位;
(1.3)在待写入的缓存行中取出偏移地址为K×RD的新数据单元D1,如果某一组中8位都是0,则其相对应的标志位F2为1,这8位就不需要进行新旧数据逐位比较,否则其相对应的标志位F2为0;将剩下的标志位为0的新数据单元D1和旧数据单元D0进行比较,判断具有差别的位数是否大于K/2,是则转子步骤(1.4);否则转子步骤(1.5);
(1.4)将新数据单元D1翻转为D2,将“1”赋值给翻转位F1,将D2赋值给待写入数据单元D,构成待写入数据段{F1,F2,D},转子步骤(1.6);D1翻转为D2时,D1中各二进制“0”位变为“1”位,“1”位变为“0”位;
(1.5)新数据单元D1保持不变,将“0”赋值给翻转位F1,将D1赋值给待写入数据单元D,构成待写入数据段{F1,F2,D},转子步骤(1.6);
(1.6)将待写入数据段{F1,F2,D},保存到偏移地址为(K+K/8+1)×RD对应的芯片内缓存中,记录其相对于旧数据段{F1,F2,D0}修改的“1”和“0”的个数,分别存入对应的写“1”数组和写“0”数组中;
(1.7)将RD+1的值赋予RD,判断是否RD=M/(L×K),是则转步骤(2),否则转子步骤(1.2);
(2)写“1”步骤,包括下述子步骤:
(2.1)设置写入起始地址寄存器start,其大小为(j+m+n)位,其值为缓存行地址寄存器后(j+m+n)位,将写入顺序计数器q的值设置为1;
(2.2)判断写“1”队列是否为空,是则转步骤(3);否则进行子步骤(2.3);
(2.3)从写“1”队列中取出执行编号为q的各条记录,根据它们对应的数据单元序号选择对应的待写入数据单元,进行子步骤(2.4);
(2.4)将待写入数据单元与读缓存中偏移地址为对应的数据单元序号的数据单元进行异或逻辑运算,得到异或逻辑运算结果,进行子步骤(2.5);
(2.5)判断是否所述异或逻辑运算结果与待写入数据单元的相应位均为“1”,是则将“1”写入存储单元地址为(start+数据单元序号+p)的存储单元当中,否则不进行任何操作;进行子步骤(2.6);
(2.6)将q+1的值赋值给写入顺序计数器q,转子步骤(2.2);
(3)写“0”步骤,包括下述子步骤:
(3.1)判断写“0”队列是否为空,是则写入操作完成;否则进行子步骤(3.2);
(3.2)从写“0”队列中取出执行编号为q的各条记录,根据它们对应的数据单元序号选择对应的待写入数据单元,进行子步骤(3.3);
(3.3)将待写入数据单元与读缓存中偏移地址为对应的数据单元序号的数据单元进行异或逻辑运算,得到异或逻辑运算结果,进行子步骤(3.4);
(3.4)判断是否所述异或逻辑运算结果相应位为“1”且待写入数据单元的相应位为“0”,是则将“0”写入存储单元地址为(start+数据单元序号+p)的存储单元当中,否则不进行任何操作;进行子步骤(3.5);
(3.5)将q+1的值赋值给写入顺序计数器q,转子步骤(3.1)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南昌航空大学,未经南昌航空大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010917195.1/1.html,转载请声明来源钻瓜专利网。