当前位置: 首页 > 专利查询>重庆大学专利>正文

一种考虑制程差异的持久内存的分配方法组成比例

技术编号:32031590 阅读:19 留言:0更新日期:2022-01-27 13:05
本发明专利技术涉及内存分配技术领域,具体公开了一种考虑制程差异的持久内存的分配方法,包括步骤:将整个持久内存空间划分为大小相等的内存域,同一内存域具有相同的耐久性;结合不同内存域的耐久性,将整个持久内存空间划分为多个批次,不同批次中的页面设置有不同的分配优先级;在每个批次中,将最大可用内存段相同的页面用链表组织在一起成为一个桶,而得到不同的桶;在分配内存时,先分配优先级最高的批次,再在最优适配的桶中分配内存单元。最后将被分配了内存单元的页面放回到合适的批次和桶中。本发明专利技术充分考虑了页面之间和页面内部的磨损均衡,能够感知耐久差异,做到每一个页面的内存单元都能够被均匀地磨损,可最大程度地提高PM的使用寿命。PM的使用寿命。PM的使用寿命。

【技术实现步骤摘要】
一种考虑制程差异的持久内存的分配方法


[0001]本专利技术涉及内存分配
,尤其涉及一种考虑制程差异的持久内存的分配方法。

技术介绍

[0002]持久内存(Persistent Memory,PM)具有低延迟、高密度、大容量等优点,是动态随机存取存储器(Dynamic Random Access Memory,DRAM)的潜在替代对象。然而,与DRAM相比,PM的寿命远远不及DRAM。同时,PM内存单元具有巨大的制程差异,即电路的变化,例如底部电极接触直径、加热器厚度和存取晶体管长度。因此,持久内存单元的编程电流会发生变化,导致了持久内存单元的耐久性在生产过程中会发生变化,从而产生相对较弱和较强的内存单元,制程差异会带来PM页面间的耐久不均衡,使PM某些内存单元过早老化,导致其寿命更短。
[0003]内存分配器主要用于分配物理内存或虚拟内存,其目的在于对内存空间的管理和回收。基于PM耐久低的特性,现有的持久内存分配器会设计磨损均衡机制来延缓PM的老化。但大多数现有的PM内存分配忽略了页内磨损均衡,导致有些内存单元被磨损严重,仍然会减少PM设备的使用寿命。还有的磨损均衡的PM内存分配器不能感知存储单元的耐久差异,其磨损均衡算法并不一定能使其磨损得更均衡。因为不能感知耐久差异的磨损均衡算法可能导致耐久低的内存单元被过度磨损,也会导致PM的使用寿命被明显缩短。

技术实现思路

[0004]本专利技术提供一种考虑制程差异的持久内存的分配方法,解决的技术问题在于:如何在对持久内存进行内存分配时,克服持久内存的制程差异所带来的耐久不均衡的问题,使得各个内存单元被均匀磨损,以充分延长PM的使用寿命。
[0005]为解决以上技术问题,本专利技术提供一种考虑制程差异的持久内存的分配方法,包括步骤:
[0006]S1、将整个持久内存空间划分为大小相等的内存域,同一内存域具有相同的耐久性,而不同内存域具有不同的耐久性;
[0007]S2、结合不同内存域的耐久性,将整个持久内存空间根据其磨损情况划分为多个批次,不同批次中的页面根据其与磨损率上界的距离设置有不同的分配优先级;
[0008]S3、在每个批次中,将最大可用内存段相同的页面用链表组织在一起成为一个桶,而得到该批次中不同最大可用内存段所对应的不同的桶;
[0009]S4、在分配内存单元时,先分配优先级最高的批次,再在最优适配的桶中分配内存单元,最后将被分配了内存单元的页面放回到合适的批次和桶中。
[0010]进一步地,在步骤S2中,页面与磨损率上界的距离定义为页面到磨损率上界的可磨损次数wt,计算方式为:
[0011][0012]其中,T表示所有页面统一的磨损率上界,E
max
和E
min
分别表示持久内存空间中耐久最大和最小的内存域的磨损次数的理论上限,D
num
表示内存域的数量,D
x
表示该页面所在内存域的序号,C表示该页面的平均磨损次数。
[0013]进一步地,在所述步骤S2中,还包括步骤:
[0014]为了记录每个批次的情况,用一个指针指向该批次所在的逻辑空间,用第一个变量记录该批次中页面的数量,用第二个变量记录该批次到磨损率上界的可磨损次数下界;可磨损次数下界是批次之间的分界线,意味着该批次中的页面到磨损率上界的可磨损次数要大于其可磨损次数下界,否则将会被放到下一个批次中。
[0015]进一步地,在所述步骤S3中,还包括步骤:
[0016]S31、将每个批次中的每一个页面划分成64个基本的内存单元,其中最后一个内存单元用于存储该页面的元数据,则每个批次用64个链表组织得到64个桶;
[0017]S32、在一个页面的最后一个内存单元中,用第一段内存作为第一个位图Use bitmap记录每个内存单元是否空闲,用第二段内存作为第二个位图Size bitmap记录每次分配出去的内存单元的大小;用第三段内存C
FU
记录该页面内部空闲的内存单元的总数量,用第四段内存S
MS
记录最大可用内存段,用第五段内存S
FF
记录下一个将要分配的内存单元的序号,用第六段内存Pre作为第一个指针用以指向前一个具有相同的最大可用内存段的页面,用第七段内存Next作为第二个指针用以指向后一个具有相同的最大可用内存段的页面。
[0018]进一步地,在所述步骤S4中,所述在最优适配的桶中分配空闲页中可以被分配的内存段,具体包括步骤:
[0019]S41、在选定的批次中选择最优适配的桶,并判断该桶中是否有空闲页,若是则选择该空闲页,若否则选择该批次中下一个最大可用内存段更大的桶,再重新判断;若该批次中所有的桶都为空,那么配置内存页,再重新判断;如果配置内存页失败,则需要重新进行批次选择,再重新判断;
[0020]S42、分配内存单元,得到被分配空间的首地址。
[0021]进一步地,在所述步骤S4后还包括步骤:
[0022]S5、更新被分配页面的元数据,包括Use bitmap、Size bitmap、C
FU
、S
MS
、S
FF
、Pre和Next;
[0023]S6、利用公式(1)重新计算被分配页面的批次并根据更新后的S
MS
将该被分配页面放到对应的批次和桶中。
[0024]进一步地,在步骤S1~S6的分配过程中,整个持久内存空间会老化,随着持久内存空间的老化,磨损率上界则被动态地调整,则所有页面到磨损率上界的可磨损次数被改变,需要重新划分批次;
[0025]依据磨损率上界的更新次数N来计算现有的磨损率上界;
[0026]依据页面所在内存域的磨损率上界对应的可磨损次数上界和该页面已经被磨损的次数来计算得到该页面的可磨损次数。
[0027]进一步地,用大小为8Bytes即64bits的位图Size bitmap来记录整个页面的分配情况,在该位图中,每个bit表示一个内存单元的分配情况,用连续的0或1表示每次被分配出去的内存单元,用连续的0或1的数量n计算此次被分配出去的内存空间大小为n*64Bytes;
[0028]记录分配空间的步骤包括:
[0029]A1、计算此次分配出去的内存空间对应在Size bitmap中的起始位置和偏移量,这段bits被称为待着色空间;
[0030]A2、计算待着色空间的bits对应的着色值,为0或者1,其值和待着色空间的前一个bit值相反;
[0031]A3、对待着色空间的bits赋值;如果待着色空间后一位bit值和所赋值的bits值不相同,将后续的bits全部翻转;
[0032]在步骤A2中,利用两个辅助数组来得到Size bitmap的着色值,每一个辅助数组中的元素都是大小为64bits的0和1向量,第一个辅助数组aleft存储了值为1的下三角矩阵,第二个辅助数组aright存储了值为1的上本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种考虑制程差异的持久内存的分配方法,其特征在于,包括步骤:S1、将整个持久内存空间划分为大小相等的内存域,同一内存域具有相同的耐久性,而不同内存域具有不同的耐久性;S2、结合不同内存域的耐久性,将整个持久内存空间根据其磨损情况划分为多个批次,不同批次中的页面根据其与磨损率上界的距离设置有不同的分配优先级;S3、在每个批次中,将最大可用内存段相同的页面用链表组织在一起成为一个桶,而得到该批次中不同最大可用内存段所对应的不同的桶;S4、在分配内存单元时,先分配优先级最高的批次,再在最优适配的桶中分配内存单元,最后将被分配了内存单元的页面放回到合适的批次和桶中。2.根据权利要求1所述的一种考虑制程差异的持久内存的分配方法,其特征在于,在步骤S2中,页面与磨损率上界的距离定义为页面到磨损率上界的可磨损次数wt,计算方式为:其中,T表示所有页面统一的磨损率上界,E
max
和E
min
分别表示持久内存空间中耐久最大和最小的内存域的磨损次数的理论上限,D
num
表示内存域的数量,D
x
表示该页面所在内存域的序号,C表示该页面的平均磨损次数。3.根据权利要求2所述的一种考虑制程差异的持久内存的分配方法,其特征在于,在所述步骤S2中,还包括步骤:为了记录每个批次的情况,有相应空间用于保存变量,用一个指针指向该批次所在的逻辑空间,用第一个变量记录该批次中页面的数量,用第二个变量记录该批次到磨损率上界的可磨损次数下界;可磨损次数下界是批次之间的分界线,意味着该批次中的页面到磨损率上界的可磨损次数要大于其可磨损次数下界,否则将会被放到下一个批次中。4.根据权利要求3所述的一种考虑制程差异的持久内存的分配方法,其特征在于,在所述步骤S3中,还包括步骤:S31、将每个批次中的每一个页面划分成64个基本的内存单元,其中最后一个内存单元用于存储该页面的元数据,则每个批次用64个链表组织得到64个桶;S32、在一个页面的最后一个内存单元中,用第一段内存作为第一个位图Use bitmap记录每个内存单元是否空闲,用第二段内存作为第二个位图Size bitmap记录每次分配出去的内存单元的大小;用第三段内存C
FU
记录该页面内部空闲的内存单元的总数量,用第四段内存S
MS
记录最大可用内存段,用第五段内存S
FF
记录下一个将要分配的内存单元的序号,用第六段内存Pre作为第一个指针用以指向前一个具有相同的最大可用内存段的页面,用第七段内存Next作为第二个指针用以指向后一个具有相同的最大可用内存段的页面。5.根据权利要求4所述的一种考虑制程差异的持久内存的分配方法,其特征在于,在所述步骤S4中,所述在最优适配的桶中分配空闲页中可以被分配的内存段,具体包括步骤:S41、在选定的批次中选择最优适配的桶,并判断该桶中是否有空闲页,若是则选择该空闲页,若否则选择该批次中下一个最大可用内存段更大的桶,再重新判断;若该批次中所有的桶都为空,那么配置内存页,再重新判断;如果配置内存页失败,则需要重新进行批次选择,再重新判断;
S42、分配内存单元,得到被分配空间的首地址。6.根据权利要求5所述的一种考虑制程差异的持久内存的分配方法,其特征在于,在所述步骤S4后还包括步骤:S5、更新被分配页面的元数据,包括Use bitmap、Size bitmap、C
FU
、S
MS
、S
FF
、Pre和Next;S6、利用公式(1)重新计算被分配页面的批次并根据更新后的S
MS
将该被分配页面放到对应的批次和桶中。7.根据权利要求6所述的一种考虑制程差异的持久内存的分配方法,其特征在于,在步骤S1~S6的分配过程中,整个持久内存空间会老化,随着持久内存空间的老化,磨损率上界则被动态地调整,则所有页面到磨损率上界的可磨损次数被改变,需要重新划分批次;依据磨损率上界的更新次数N来计算现有的磨损率上界;依据页面所在内存域的磨损率上界对应的可磨损次数上界和该页面已经被磨损的次数来计算得到该页面的可磨损次数。8.根据权利要求7所述的一种考虑制程差异的持久内存的分配方法,其特征在于:用大小为8Bytes即64bits的位图Size bitmap来记录整个页面的分配情况,在该位图中,每个bit表示一个内存单元的分配情况,用连续的0或1表示每次被分配出去的内存单元,用连续的0或1的数量n计算此次被分配出去的内存空间大小为n*64Bytes;记录分配空间的步骤包括:A1、计算此次分配出去的内存空间对应在Size bitmap中的起始位置和偏移量,这段bits被称为待着色空间;A2、计算待着色空间的bits对应的着色值,为0或者1,其值和待着色空间的前一个bit值相反;A3、对待着色空间的bits赋值;如果...

【专利技术属性】
技术研发人员:陈咸彰冯筱柳刘铎谭玉娟任骜汪成亮乔磊
申请(专利权)人:重庆大学
类型:发明
国别省市:

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

1