一种双层磨损均衡方法及系统技术方案

技术编号:13735010 阅读:56 留言:0更新日期:2016-09-21 23:53
本发明专利技术公开了一种双层磨损均衡方法及系统,适用于相变存储器内存。该方法具体为:外层负责整个内存存储区域逻辑地址到中间地址的映射,通过增加密钥的复杂度,可以在恶意程序探测出完整的密钥前变换密钥;内层负责在每个子区域内使用独立的代数磨损均衡方法,在低开销的情况下达到区域内的磨损均衡,解决由于相变存储器存在复位和置位操作的延时差别而泄露磨损均衡算法的密钥,降低内存系统安全性的问题。

【技术实现步骤摘要】

本专利技术属于固态存储领域,具体涉及一种双层磨损均衡方法及系统,适用于相变存储器内存。
技术介绍
随着多核技术的发展,计算机系统对内存的需求越来越高。而传统的动态随机存取存储器(DRAM)内存由于受到可扩展性和漏电功耗的约束,无法满足新环境的应用需求,其发展受到了限制。相变存储器(Phase Change Memory,PCM)具有可扩展性高、容量大、功耗低和性能高的优点,是替代DRAM作为下一代内存最有竞争力的候选者。然而,PCM面临的最大挑战是耐久性限制,即每个存储单元最多只可以承受107-108次写。在写请求均匀分布的情况下,PCM可以达到5年以上的使用寿命。但是真实应用中存在大量的不均衡分布的写请求,一些被频繁写的存储单元会在短期内(例如几周~几个月)失效,从而导致相变存储内存无法正常工作。除此之外,PCM还存在严重的安全问题,例如恶意的攻击程序持续地写入特定的行,会导致PCM在几十秒钟内失效。为了解决不均匀的写请求和恶意攻击的问题,磨损均衡技术把上层应用的不均衡的写请求均匀地重映射到各个存储单元,尽量使每个存储单元承受的写操作数量一致。已有的磨损均衡方法可以分为两类——基于表格的磨损均衡算法(TBWL)和基于代数的磨损均衡算法(AWL)。(1)基于表格的磨损均衡算法:该类算法记录了每个逻辑块和物理块的映射关系,同时也统计了每个物理块的写次数。通过周期性的
交换写次数最高和最低的行来平衡块之间的写差距。为了达到高的寿命,映射和交换块的粒度要求足够小,但是这会导致非常高的空间开销。除此之外,大部分的基于表格的磨损算法采用确定的交换策略,使得恶意的程序可以猜测出待交换区域的新位置,从而持续攻击某个特定区域,导致这个区域的所有行在短时间内都被磨穿。(2)基于代数的磨损均衡算法:典型的算法有Start-Gap和Security Refresh等。基于代数的磨损均衡算法通过代数映射,周期性的移动物理行,通过大量的行交换从概率上使得“热”的逻辑行可以移动到各个物理行上,其物理地址可以通过给定的逻辑地址和代数函数计算获得。基于代数的磨损均衡算法具有低开销,高安全性的优点。然而,近期研究者提出了一种新型的攻击算法。其核心思想是:根据相变存储器的复位和置位操作的延时存在明显的差别,即每个单元写入“0”和“1”具有显著的差别,恶意的攻击程序可以通过探测逻辑地址到物理地址映射的变化,精心安排攻击的逻辑地址序列,使写请求命中到小部分物理位置上,令PCM内存快速失效。PCM的差别写延时特征导致了代数磨损均衡算法的密钥可能泄露,内存安全性降低的问题。因此动态变换逻辑地址到物理地址的映射,并保证映射关系不为攻击者所知,是保证PCM安全的必要条件。然而,现有的磨损均衡算法不能有效抵御新型的恶意攻击程序。
技术实现思路
针对现有技术的缺陷,本专利技术提供了一种双层磨损均衡方法及系统,其目的在于,通过外层实现逻辑地址到中间地址的映射,通过增加密钥的复杂度,可以在恶意程序探测出完整的密钥前变换密钥,从而避免密钥泄露,抵
抗恶意攻击;内层负责在每个区域内使用独立的代数磨损均衡方法,在低开销的情况下达到区域内的磨损均衡,解决由于相变存储器存在复位(写“1”)和置位(写“0”)操作的延时差别而泄露磨损均衡算法的密钥,降低内存系统安全性的问题。为了实现本专利技术技术目的,本专利技术采用如下技术方案:一种双层磨损均衡方法,相变存储器内存存储区域被分为多个大小相同的子存储区域,每个子存储区域被分为多个大小相同的物理行,每一物理行对应一个逻辑地址和一个物理地址,所述逻辑地址和物理地址具有唯一映射的关系;所述方法包括以下步骤:对每个子存储区域,在其每执行P个写请求之后,使用代数磨损均衡算法移动该子存储区域中物理行的数据,从而实现子存储区域内部的磨损均衡;对整个内存存储区域,在其每执行T个写请求之后,按照如下步骤实现整个内存存储区域的磨损均衡:(S1)整个内存存储区域包含的物理行依序为第0行、第1行、……、第N行;判断当前空白行GAP是否是第N物理行,若是,跳转步骤(S2);否则,选择一个行进行重映射,跳转(S3);(S2)判定所有物理行的重映射标志是否都为true,若是,则说明所有物理行已完成本轮重映射,跳转步骤(S4),否则,跳转步骤(S5);(S3)利用本轮密钥计算当前空白行GAP所指向的逻辑地址DECKc(GAP),再利用上一轮密钥计算出该逻辑地址在上一轮映射中的物理行地址ENCKp(DECKc(GAP)),判断上一轮的物理行地址ENCKp(DECKc(GAP))是否等于需转移数据的物理行START,如果是,跳转步骤(S6),否则,跳转步骤(S7);(S4)令需转移数据的物理行START和当前空白行GAP同时为第0行;将第START物理行的数据移动到第N物理行,并为下一轮重映射生成密钥,结束;(S5)令需转移数据的物理行START为一个未重映射的行,将物理行START的数据移动到第N物理行,更新当前空白行GAP为物理行START,结束;(S6)将第N行的数据转移到当前空白行GAP,更新当前空白行GAP为第N行,将逻辑地址DECKc(GAP)所指物理行的重映射标志置为true,结束;(S7)将第ENCKp(DECKc(GAP))行的数据转移到当前空白行GAP,更新当前空白行GAP为第ENCKp(DECKc(GAP))行,将第ENCKp(DECKc(GAP))行的重映射标志置为true,结束。一种基于双层磨损均衡的内存访问方法,包括以下步骤:(T1)查找待访问逻辑地址LA所对应的重映射标志,判断其是否为true.若是,说明该逻辑行在此轮已经被重映射,跳转到(T2);否则,该逻辑行还未被重映射,跳转到(T3);(T2)使用本轮密钥Kc翻译逻辑地址LA得到中间地址IA,即中间地址IA等于ENCKc(LA),跳转到(T6);(T3)使用上一轮密钥Kp翻译逻辑地址得到中间地址IA,即中间地址IA等于ENCKp(LA),判断ENCKp(LA)是否为需转移数据的物理行START,若是,则跳转到(T4);否则跳转到(T5);(T4)判断当前空白行GAP是否为需转移数据的物理行START行,若是,说明需转移数据的物理行START的数据已被移动到第N物理行,则令中间地址IA等于N;否则,中间地址IA等于START,跳转到(T6);(T5)令中间地址IA等于ENCKp(LA),跳转到(T6);(T6)通过中间地址IA除以子区域数量获知IA所对应的物理行存储于哪个子区域中;依据中间地址IA,结合该子区域的地址映射算法,计算得到对应的物理地址PA,返回物理地址PA以作访问。一种双层磨损均衡系统,包括相变存储内存控制器和相变存储内存;所述相变存储内存包括:多个代数磨损均衡模块,以及与其一一对应和多个子存储区域,代数磨损均衡模块用于使用代数磨损均衡算法移动子存储区域中物理行的数据;所述相变存储内存控制器包括:第一组寄存器Kc,用于存储本轮密钥;第二组寄存器Kp,用于存储上一轮密钥;随机数产生器,用于产生密钥;GAP寄存器,用于记录当前空白行的位置;START寄存器,用于记录需转移数据在转移前的物理行地址;Crt寄存器,用于记录内存累计写入次数;重映射标志存本文档来自技高网
...

【技术保护点】
一种双层磨损均衡方法,其特征在于,相变存储器内存存储区域被分为多个大小相同的子存储区域,每个子存储区域被分为多个大小相同的物理行,每一物理行对应一个逻辑地址和一个物理地址,所述逻辑地址和物理地址具有唯一映射的关系;所述方法包括以下步骤:对每个子存储区域,在其每执行P个写请求之后,使用代数磨损均衡算法移动该子存储区域中物理行的数据,从而实现子存储区域内部的磨损均衡;对整个内存存储区域,在其每执行T个写请求之后,按照如下步骤实现整个内存存储区域的磨损均衡:(S1)整个内存存储区域包含的物理行依序为第0行、第1行、……、第N行;判断当前空白行GAP是否是第N物理行,若是,跳转步骤(S2);否则,选择一个行进行重映射,跳转(S3);(S2)判定所有物理行的重映射标志是否都为true,若是,则说明所有物理行已完成本轮重映射,跳转步骤(S4),否则,跳转步骤(S5);(S3)利用本轮密钥计算当前空白行GAP所指向的逻辑地址DECKc(GAP),再利用上一轮密钥计算出该逻辑地址在上一轮映射中的物理行地址ENCKp(DECKc(GAP)),判断上一轮的物理行地址ENCKp(DECKc(GAP))是否等于需转移数据的物理行START,如果是,跳转步骤(S6),否则,跳转步骤(S7);(S4)令需转移数据的物理行START和当前空白行GAP同时为第0行;将第START物理行的数据移动到第N物理行,并为下一轮重映射生成密钥,结束;(S5)令需转移数据的物理行START为一个未重映射的行,将物理行START的数据移动到第N物理行,更新当前空白行GAP为物理行START,结束;(S6)将第N行的数据转移到当前空白行GAP,更新当前空白行GAP为第N行,将逻辑地址DECKc(GAP)所指物理行的重映射标志置为true,结束;(S7)将第ENCKp(DECKc(GAP))行的数据转移到当前空白行GAP,更新当前空白行GAP为第ENCKp(DECKc(GAP))行,将第ENCKp(DECKc(GAP))行的重映射标志置为true,结束。...

【技术特征摘要】
1.一种双层磨损均衡方法,其特征在于,相变存储器内存存储区域被分为多个大小相同的子存储区域,每个子存储区域被分为多个大小相同的物理行,每一物理行对应一个逻辑地址和一个物理地址,所述逻辑地址和物理地址具有唯一映射的关系;所述方法包括以下步骤:对每个子存储区域,在其每执行P个写请求之后,使用代数磨损均衡算法移动该子存储区域中物理行的数据,从而实现子存储区域内部的磨损均衡;对整个内存存储区域,在其每执行T个写请求之后,按照如下步骤实现整个内存存储区域的磨损均衡:(S1)整个内存存储区域包含的物理行依序为第0行、第1行、……、第N行;判断当前空白行GAP是否是第N物理行,若是,跳转步骤(S2);否则,选择一个行进行重映射,跳转(S3);(S2)判定所有物理行的重映射标志是否都为true,若是,则说明所有物理行已完成本轮重映射,跳转步骤(S4),否则,跳转步骤(S5);(S3)利用本轮密钥计算当前空白行GAP所指向的逻辑地址DECKc(GAP),再利用上一轮密钥计算出该逻辑地址在上一轮映射中的物理行地址ENCKp(DECKc(GAP)),判断上一轮的物理行地址ENCKp(DECKc(GAP))是否等于需转移数据的物理行START,如果是,跳转步骤(S6),否则,跳转步骤(S7);(S4)令需转移数据的物理行START和当前空白行GAP同时为第0行;将第START物理行的数据移动到第N物理行,并为下一轮重映射生成密钥,结束;(S5)令需转移数据的物理行START为一个未重映射的行,将物理行START的数据移动到第N物理行,更新当前空白行GAP为物理行START,结
\t束;(S6)将第N行的数据转移到当前空白行GAP,更新当前空白行GAP为第N行,将逻辑地址DECKc(GAP)所指物理行的重映射标志置为true,结束;(S7)将第ENCKp(DECKc(GAP))行的数据转移到当前空白行GAP,更新当前空白行GAP为第ENCKp(DECKc(GAP))行,将第ENCKp(DECKc(GAP))行的重映射标志置为true,结束。2.一种基于双层磨损均衡的内存访问方法,其特征在于,包括以下步骤:(T1)查找待访问逻辑地址LA所对应的重映射标志,判断其是否为true.若是,说明该逻辑行在此轮已经被重映射,跳转到(T2);否则,该逻辑行还未被重映射,跳转到(T3);(T2)使用本轮密钥Kc翻译逻辑地址LA得到中间地址IA,即中间地址IA等于ENCKc(LA),跳转到(T6);(T3)使用上一轮密钥Kp翻译逻辑地址得到中间地址IA,即中间地址IA等于ENCKp(LA),判断ENCKp(LA)是否为需转移数据的物理行START,若是,则跳转到(T4);否则跳转到(T5);(T4)判断当前空白行GAP是否为需转移数据的物理行START行,若是,说明需转移数据的物理行START的数据已被移动到第N物理行,则令中间地址IA等于N;否则,中间地址IA等于START,跳转到(T6);(T5)令中间地址IA等于ENCKp(LA),跳转到(T6);(T6)通过中间地址IA除以子区域数量获知IA所对应的物理行存储于哪个子区域中;依据中间地址IA,结合该子区域的地址映射算法,计算得到对应的物理地址PA,返回物理地址PA以作访问。3.一种双层磨损均衡系统,其特征在于,包括相变存储内存控制器和相变存储内存;所述相变存储内存包括:多个代数磨损均衡模块,以及与其一一对应和多个子存储区域,代数磨损均衡模块用于使用代数磨损均衡算法移动子存储区域中物理行的数据;所述相变存储内存控制器包括:第一组寄存器Kc,用于存储本轮密钥;第二组寄存器Kp,用于存储上一轮密钥;随机数产生器,用于产生密钥;GAP寄存器,用于记录当前空白行的位置;START寄存器,用于记录需转移数据在转移前的物理行地址;Crt寄存器,用于记录内存累计写入次数;重映射标志存储器SRAM,用于标记物理行在本轮重映射是否已经被重映射;加解密电路,用于利用密钥进行物理地址与逻辑地址之间的映射转换;数据交换模块,用于负责重映射数据交换;控制电路,用于控制实现整个内存存储区域的磨损均衡;所述控制电路包括:第S1模块,用于整个内存存储区域包含的物理行依序为第0行、第1行、……、第N行;判断GAP寄存器记录的当前空白行GAP是否是第N物理行,若是,跳转第S2模块;否则,选择一个行进行重映射,跳转第S3模块;第S2模块,用于判定重映射标志存储器SRAM记录的所有物理行的重映射
\t标志是否都为true,若是,则说明所有物理行已完成本轮重映射,跳转步骤第S4模块,否则,跳转第S5模块;第S3模块,用于调用加解密电路利用本轮密钥计算当前空白行GAP所指向的逻辑地址DECKc(GAP),再利用上一轮密钥计算出该逻辑地址在上一轮映射中的物理行地址ENCKp(DECKc(GAP)),判断上一轮的物理行地址ENCKp(DECKc(GAP))是否等于需转移数据的物理行START,如果是,跳转第S6模块,否则,跳转第S7模块;第S4模块,用于令START寄存器存储的需转移数据的物理行S...

【专利技术属性】
技术研发人员:冯丹黄方亭夏文周文鄢磊张宇成付忞周玉坤
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1