一种解决混合内存读延迟不确定性的方法与流程

文档序号:11807780阅读:456来源:国知局

本发明涉及混合内存领域,尤其涉及一种解决混合内存读延迟不确定性的方法。



背景技术:

现有技术中采用混合内存的方式提高DRAM的性能,降低刷新功耗,方法是为DRAM添加非易失性的新型存储器(New Concept Memory, NCM)。在DRAM非繁忙状态下将存储在 DRAM尾端分布区的存储单元中的数据转移至新型存储器中,然后提高DRAM刷新周期,从而能够大大降低DRAM的刷新功耗,提高DRAM的性能。对混合存储器读操作的实现方式可通过地址查找转换表来存储DRAM地址和NCM地址的映射关系,通过对DRAM读操作地址的匹配查找,根据匹配结果控制数据输出来自DRAM或NCM。申请号为CN201510808165.6的发明申请公开的技术方案解决了如何对混合内存中的NCM进行写操作。

由于存储级存储器(Storage Class Memory,SCM)的读延迟与DRAM有非常大的不同,实际上,SCM的读延迟是DRAM的4倍,这使得SCM的读取无法兼容原始的DDR协议,因此,在LPDDR和移动设备的应用场景中,必须考虑如何解决SCM的读延迟太大的问题。另一个问题是读延迟的不确定性,在读操作中,如果被读取的数据来自SCM,那么,常规的DRAM时序是无法满足的,因为当前的DDR协议只支持确定的读取和写入的时序,这种不确定的读延迟将会在数据总线上造成冲突。

因此,本领域的技术人员致力于开发一种解决混合内存读延迟不确定性的方法。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何解决SCM的读延迟太大和不确定性问题。

为实现上述目的,本发明提供了一种解决混合内存读延迟不确定性的方法,包括提供一包括通信连接的DRAM和SCM的混合内存,所述DRAM按照存储单元保持时间包括主要分布区和尾端分布区,将暴读(Read-heavy)数据放入将被SCM替换的DRAM尾端分布区,且所述混合内存中预存有地址查找转换表,所述地址查找转换表中包括发生替换存储的所述 DRAM地址和所述SCM地址的映射项。

进一步地,所述SCM采用两个单元每位技术。

进一步地,所述两个单元每位技术采用差分读取,SCM编程过程被配置为使得两个差分单元的表征相反逻辑状态的物理状态尽可能地区分开,以便加速存储位逻辑值的获得。

进一步地,所述SCM为PCM或ReRAM或MRAM。

本发明还提供了一种解决混合内存读延迟不确定性的方法,包括提供一包括通信连接的DRAM和SCM的混合内存,所述DRAM按照存储单元保持时间包括主要分布区和尾端分布区,将暴写(Write-heavy)数据放入将被SCM替换的DRAM尾端分布区,且所述混合内存中预存有地址查找转换表,所述地址查找转换表中包括发生替换存储的所述 DRAM地址和所述SCM地址的映射项。

进一步地,所述PCM为基于Ge-Sb-Te技术,并通过提高Sb的百分比来提高PCM的转换速度。

进一步地,在数据中心服务器的空闲状态时,周期性地恢复SCM数据。

进一步地于,如果SCM必须被读,则可以重用“页错误中断”,带尾端存储位的地址将被MMU识别成“页丢失”,从而产生一个特定的中断。

进一步地,在中断处理程序中,特定的tRAS将被配置在存储控制器的参数寄存器中替代默认值,然后在SCM上的那个页地址将被访问,访问结束后,默认的tRAS将被重新配置回去进行后续的DRAM访问。

解决内存瓶颈和功耗瓶颈不是一件容易的事情,但是通过各个方面的交叉努力,如工艺配方,存储器新型设计,结构创新,系统支持等,还是存在可能的机会,甚至无需更改DRAM,存储控制器和操作系统。随着DRAM和SCM在页读延迟上的差别减小,在一个固定周期内的PCM访问差别将会消失。

具体实施方式

为了让具备本项发明所属领域常规知识的人员轻松实施本项发明,对本项发明的实例进行详细说明。但本项发明可按照不同的形态实施,不仅仅局限于在此说明的实例。

在本项发明的整个说明书中,某一个部分与另一个部分的“连接”,不仅包括“直接连接”,还包括通过其他元器件相连的“电气性连接”。

在本项发明的整个说明书中,某一个部件位于另一个部件的“上方”,不仅包括某一个部件与另一个部件相接处的状态,还包括两个部件之间还设有另一个部件的状态。

在本项发明的整个说明书中,某个部分“包括”某个构成要素是指,在没有特别禁止器材的前提下,并不是排除其他构成要素,而是还能包括其他构成要素。

在本项发明的整个说明书中采用的程度用语“约”、“实质上”等, 如果提示有制造及物质容许误差,就表示相应数值或接近该数值;其目的是,防止不良人员将涉及准确数值或绝对数值的公开内容用于不当用途。在本项发明的整个说明书中使用的程度用语“~(中的)阶段”或“~的阶段”,并不是“为了~的阶段”。

本说明书中的‘部件’是指,由硬件构成的单元(unit)、由软件构成的单元、由软件和硬件构成的单元。

另外,一个单元可由两个以上的硬件构成或者两个以上的单元由一个硬件构成。本说明书中,通过终端、装置或设备实施的操作或功能,其中的一部分可利用与相应终端、装置或设备相连的服务器代替实施。同样,通过服务器实施的操作或功能,其中的一部分也可以利用与该服务器相连的终端、装置或设备代替实施。

下面对本发明做进一步详细的阐述:

由于SCM的访问延迟比DRAM大,因此,无论串行还是并行,存储控制器必须重新设计来支持混合存储器构架。举例来说,和DDR4标准协议并不完全兼容的DDR4扩展协议据说用来支持3DxPoint作为主存储器。当然,混合存储器要被工业界接受还存在很大障碍,但是,由于基于多DRAM少SCM的混合存储器,超高容量的SCM并不是目标。如果尾端存储单元的IO级数据已经存在于SCM的读缓存中,这便不会影响保持时间敏感的混合存储器(Retention-Aware Hybrid Main Memory, RAHMM)的性能,也就是说在DRAM的某一行上的要被SCM替代的尾端存储单元的IO级数据必须全部被分配在SCM中的某一页上。如果超出了SCM的页长度,则DRAM的那行应当被无效。于是在RAHMM的优点和DRAM的无效行中存在一个平衡点,这个数字将会非常小。

最坏情况是被访问的尾端存储单元的IO级数据都不在SCM的读缓存中。因此,对于最坏情况,需要更长的tRAS或页读延迟。比如,对于一个8Gb DDR SDRAM,最小的tRAS是32ns,而对于一个4GB PCM,页读延迟是50ns。因此,基于这两个工业界的数据,下面来解释,在暴读和暴写的情况下,如何在不改变存储控制器的情况下支持RAHMM:

暴读(read-heavy)情况:

当使用两单元每位(2 cell per bit)技术设计小密度SCM时,对两个单元采用差分读取将大大提高SCM的读取性能。举例来说,如果两个PCM或ReRAM单元被设计成表示一个存储位,在任何时候,一个单元被编程处于高阻态,如1M欧,而另一个为低阻态,如3k欧。在差分读取的过程中,两个单元上的巨大的电流差将很快被翻译成这个存储位的逻辑值。于此同时,利用隐藏缓存策略(Hidden Buffer Strategy)的优势,在SCM编程上可以花费更多时间来使得两个差分单元的阻值尽可能地区分开,以便加速差分读取的操作。1.56x的页读延迟可以缩减几乎一半,如减至32ns。同时,利用“数据重排”技术,将“比较暴读”的数据移出SCM,把它们分配到尾端存储单元的DRAM行中,因此写SCM的可能性将大大下降,甚至没有。“最暴读”的数据仍存储和安排在没有尾端存储单元的DRAM行中。结合两单元每位技术、隐藏缓存策略以及“数据重排”,可以提高RAHMM的性能,减小RAHMM的功耗,甚至不改变当前主内存接口协议。另外,读延迟几乎和DRAM一样的MRAM,也可以被用来作为SCM使用。

暴写(write-heavy)情况:

总所周知,SCM的写延迟是个大问题,但是这样的结论是基于SCM的数据保持必须像传统的Flash(10年)。基于Ge-Sb-Te的PCM中增加Sb的比例将极大地加快转换速度。快速的编程速度意味着较低的写功耗,但是数据保持将变得非常短,如6个月,但这不是个大问题,在数据中心服务器的空闲状态时,可以周期性地恢复SCM数据。将“比较暴写”的数据分配到尾端存储单元的DRAM行中,因此读SCM的可能性将大大下降,甚至没有。“最暴写”的数据仍存储和安排在没有尾端存储单元的DRAM行中。如果SCM必须被读,则可以重用“页错误中断”,这些带尾端存储位的地址将被MMU识别成“页丢失”,从而产生一个特定的中断。在中断处理程序中,如50ns tRAS,将被配置在存储控制器的参数寄存器中替代默认值,然后在RAHMM上的那个页地址将被访问,访问结束后,默认的 32ns tRAS将被重新配置回去进行后续的DRAM访问。由于读SCM的机会非常低,因此对性能的影响可以被忽略。

前面所述的本项发明相关说明只限于某一个实例;只要是具备本项发明所属技术领域的常规知识,在无需变更本项发明技术性思想或者必要特点,就能将本项发明变更为其他形态。因此,前面所述的实例涵盖本项发明的任何一种实施形态,并不仅仅局限于本说明书中的形态。例如,定义为单一型的各构成要素可分散实施;同样,定义为分散的构成要素,也能以结合形态实施。

本项发明的范畴并不局限于上述详细说明,可涵盖后面所述的专利申请范围;从专利申请范围的定义、范围以及同等概念中导出的所有变更或者变更形态均包括在本项发明的范畴内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1