本发明专利技术提供一种相变存储器的写均衡方法,包括:将一个大容量的相变存储系统分成多个存储区域,每个区域包含多个存储阵列,每个阵列又包含多个存储行,每个存储行由多个字节组成,而且在同一个区域,文件数据以条带化方法存储以增加数据地址映射的散化度,阵列内部用邻行拷贝算法进行写均衡即维护一个空白行指针,将与该指针相邻的上一行的有效数据拷贝到该指针所指向位置,以此达到这两个存储行的写均衡,而所有阵列的空白行以隔行映射的方式映射到特殊阵列上,以提高特殊阵列的散化度。本发明专利技术能加大数据地址映射的散化度,更有效地抵御重复写相同存储单元的恶意攻击,以达到整个存储系统的写均衡,从而延长存储系统的寿命和利用率。
【技术实现步骤摘要】
本专利技术属于计算机存储设备
,具体涉及一种。
技术介绍
相变存储器(PhaseChange-Random Access Memory,简称 PCRAM 或 PCM)是一种新型的电阻式非易失性半导体存储器,它以硫系化合物材料为存储介质,利用加工到纳米尺寸的相变材料在晶态(材料呈低阻状态)与非晶态(材料呈高阻状态)时所呈现出显著的阻值差异性来实现数据存储。PCRAM具有一位可变性、非易失性、读写速度快、存储密度高等诸多优良特性,非常适合作为高密度的独立式或者嵌入式的存储器。但是目前相变存储系统的寿命只能达到几年甚至更少,远不能满足用户的需求,因为相变存储器有耐写次数的限制(IO7-IO8 次)。存储器的写均衡主要是描述将从文件系统给出的数据逻辑地址(LogicalAddress,简称LA),依据一定的策略,映射到物理地址(Physical Address,简称PA)的过程,以期能最大限度地平衡各个存储单元的写次数,从而延长整个存储系统的寿命。传统的写均衡算法,在操作系统层面上维护复杂的映射机制,需要存储大量的映射表(如地址映射表、单元写次数统计表等),而这些表项所需存储容量都达到几百MB级别,消耗较多的存储空间且控制复杂。针对,目前有相邻行拷贝策略,该方法的主要优点是控制信息量少,操作简单,利于硬件实现。然而,该方法也存在一些不足,如无法抵御重复写相同存储单元的攻击;散化度不够;比较适合存储量稀而散的存储系统,不适合大容量密集型的存储系统等。
技术实现思路
本专利技术目的在于提供一种,其能加大地址映射的散化度,能更有效地抵御重复写相同存储单元的攻击,使整个存储系统写均衡,从而延长存储系统的寿命和提高其安全性及利用率。本专利技术是通过以下技术方案实现的一种,包括以下步骤(1)对相变存储器进行初始化操作将相变存储器划分为m个区域,每个区域包括η个阵列,每个阵列包括N个有效行和1个特殊行,每个有效行和特殊行均包括b个字节,前m-Ι个区域为非特殊区域,第m个区域设置为特殊区域,并包括一个特殊阵列和多个冗余阵列,阵列的有效行和特殊行的地址均包括三元组(r,1,a),其中r为区域号,1为行号,a为区域内的阵列号,阵列在相变存储器中的阵列编号U = r*m+a-l,设置下列参数区域的阵列映射表、阵列的随机密钥表、相变存储器的写次数计数器i的初值为0及其阈值、阵列的写次数计数器j的初值为0及其阈值、阵列的起始行指针Phead的初值为0并指向阵列的首行,阵列的空白行指针I3Wank的初值为N并指向阵列的空白行;(2)从相变存储器控制器获取逻辑地址LA,查找阵列映射表,以得到物理地址PA ;(3)根据物理地址PA判断对相变存储器的操作类型是读操作还是写操作,若是写操作则进入步骤(4),否则直接读出物理地址PA处的数据,结束;(4)若操作类型是写操作,则设置写次数计数器i = i+Ι ;(5)判断写次数计数器i是否不小于阈值;(6)若写次数计数器i不小于阈值,则读取阵列的起始行指针Wiead以及空白行指针I^blank,并计算第χ个阵列的总写次数wx = Phead^N+(N-Pblank);(7)计算每个非特殊区域的总写次数为η个阵列的总写次数中的最大值;(8)对非特殊区域的总写次数按照由大到小的顺序进行排序,以找到两两总写次数之间的差大于1000000的两个非特殊区域;(9)对两个非特殊区域中的执行数据和参数的互拷贝操作,并更新阵列映射表,参数包括随机密钥表的表项值、起始行指针、阵列的写次数计数器j、空白行指针;(10)查找更新的阵列映射表,以得到更新后的物理地址PA ;(11)将数据写入更新后的物理地址PA所指向的位置,并进行写后读校验检查(12)读出写入的数据,并与原数据进行比较,以判断二者是否不相同;(13)若二者不相同,则将写入的数据拷贝到冗余阵列,并更新随机密钥表的表项值、阵列映射表的表项值以及物理地址PA ;(14)设置写次数计数器j = j+1 ;(15)判断写次数计数器j是否不小于阈值;(16)若写次数计数器j不小于阈值,则将阵列中空白行指针指向的上一行的数据拷贝到空白行,更新空白行指针及写次数计数器j。本专利技术的方法还包括步骤若操作类型是读操作,则读出物理地址PA处的数据。本专利技术的方法还包括步骤若写次数计数器i小于阈值,则转入将数据写入更新后的物理地址PA所指向的位置,并进行写后读校验检查的步骤;若二者相同,则转入设置写次数计数器j = j+1的步骤。本专利技术的方法步骤O)还包括以下子步骤(2-1)根据逻辑地址LA的区域号和阵列号查找阵列映射表中对应区域的阵列通过区域号定位到数组的行地址,再通过阵列号定位到数组的列地址,取出对应的物理区域号和物理阵列号,从而找到物理阵列;(2-2)对逻辑地址的行号进行加/解密操作得出中间地址的行号IAL ;(2-3)判断行号IAL是否不小于空白行指针,若不小于则进入步骤,否则进入步骤0-6);(2-4)判断行号IAL指向的是否不是阵列的最后一个有效行,若不是则进入步骤0-5),否则进入步骤0-8)。(2-5)行号 IAL 自增 1 ; (2-6)将行号IAL赋给物理地址PA的行号;(2-7)根据物理地址PA的区域号和阵列号得到新的物理地址,并返回最终的物理地址;(2-8)将行号IAL的物理行号映射到特殊阵列上;(2-9)将行号IAL的物理行号赋给物理地址PA的行号,并查找阵列映射表中特殊阵列对应的区域号和阵列号,用区域号更新物理地址PA的区域号和阵列号,以得到最终的物理地址。本专利技术的方法中子步骤(2-8)还包括以下子步骤(2-8-1)根据阵列在相变存储器中的阵列编号U,计算出阵列的特殊行在特殊阵列的中间地址的行号IASL = 2U ;(2-8-2)判断中间地址的行号IASL是否不小于空白行指针,若不小于则进入步骤(2-8-3),否则进入步骤(2-8-4)。(2-8-3)行号 IASL 自增 1 ;(2-8-4)返回行号 IASL。本专利技术的方法中步骤(16)还包括以下子步骤(16-1)判断空白行指针值是否不为0,若是则进入步骤(16-2),否则进入步骤(16-4);(16-2)判断空白行指针值是否小于N,若是则进入步骤(16-3),否则进入步骤(16-6);(16-3)将空白行上一行的有效数据拷贝到空白行上,进入步骤(16-8);(16-4)通过阵列的阵列编号U映射到特殊阵列的物理行号来计算空白行指针的上一行的行号;(16-5)将上一行的行号所指的有效数据拷贝到空白行,更新空白行指针值为N,起始行指针Wiead加1,进入步骤(16-9);(16-6)通过阵列的阵列编号U映射到特殊阵列的物理行号来计算空白行指针的物理行号;(16-7)将阵列的最后一个有效行的数据拷贝到空白行指针的物理行号指向的位置,并对特殊阵列进行邻行拷贝操作;(16-8)将空白行指针Pblank减1 ;(16-9)将写次数计数器j置0。本专利技术的方法中子步骤(16-7)包括以下子步骤(16-7-1)写次数计数器j自增1 ;(16-7-2)判断写次数计数器j大于其阈值,若是则进入步骤(16-7-3),否则过程结束;(16-7-3)判断特殊阵列的空白行指针是否指向阵列的第0行若是则进入步骤(16-7-4),否本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:周功业,谢雅旋,章征海,陈进才,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。