一种基于一致性总线扩展非易失内存的系统及方法与流程

文档序号:12664118阅读:315来源:国知局
一种基于一致性总线扩展非易失内存的系统及方法与流程

本发明涉及计算机技术领域,具体地说是一种实用性强、基于一致性总线扩展非易失内存的系统及方法。



背景技术:

近几年,全球的数据量以每年58%的速度增长,未来这个速度会更快,这使得用户对于海量数据的处理和实施分析的及时高效性越来越重视。现有的以计算为中心的技术难以满足大数据的应用需求,因此,IT架构的重构势在必行。新型非易失性存储器件的出现和成本的不断降低,为以数据为中心的大数据处理模式即内存计算创造了机会。

内存和外存之间的I/O性能不匹配一直是造成数据处理速度低下的重要原因。内存计算消除了传统计算模式中的I/O性能瓶颈,将大量的数据装载在内存中,大规模数据的处理性能得到显著提升,然而数据的快速增长和数据类型的不断扩充令内存计算平台的内存系统面临容量、能耗、可靠性等方面的巨大挑战。

NVM Express(简称NVMe)是一个针对使用PCI Express SSD的企业和普通客户端系统开发的可扩展的主机控制芯片接口标准。NVMe由Intel主导,得到了包括Cisco、Dell、EMC、NetApp、Oracle在内的众多大厂商的支持与参与,其目标是统一PCIe SSD存储装置标准,让未来的PCIe SSD可以方便的安装到所有平台使用。NVMe优化了PCIe SSD的寄存器接口和指令集,其全双工、多请求处理能力及无序处理能力可以给存储器性能带来极大的提升。NVMe中定义了若干队列的传输与管理机制,以实现主机与SSD控制器间的数据传输。

为了让主机更好地控制SSD,在NVMe中定义了若干高级命令,这些命令允许主机驱动程序向SSD控制器传递数据集属性信息,诸如数据的访问频率属性等,其设计初衷是为了主机与SSD控制器间提供更完善的传输支持,但是如何充分利用这些高级命令尚未得到充分地开发。此外,NVMe中提出的读写机制较为繁琐,对于作为内存使用的非易失性存储器软件开销较大,有待优化。采用NVMe扩展非易失性内存的方法,其本质为将非易失性存储作为一个I/O访问的块设备,而不是传统意义上的内存,因此性能上和传统的内存有较大差距。

基于此,现提供一种基于一致性总线扩展非易失内存的系统及方法,来解决DRAM、Cache中存储的数据与NVM中的数据可能存在不一致的问题,这里的DRAM是指Dynamic Random Access Memory,即动态随机访问存储器。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种实用性强、基于一致性总线扩展非易失内存的系统及方法。

一种基于一致性总线扩展非易失内存的系统,其结构包括若干通过cache一致性高速互连总线Cache Coherence Bus,即CCB互连的节点,每个节点内均配置有处理器、DRAM内存和NVM内存组成的混合内存,其中在处理器与NVM内存之间配置有NVM内存控制器,在处理器与DRAM内存之间配置有DRAM内存控制器,其中处理器与NVM内存、DRAM内存之间均通过cache一致性高速互连总线互连,且对DRAM内存和NVM内存统一编址实现异构混合内存系统的全局cache一致性。

所述NVM内存控制器采用内存代理的方式管理非易失内存NVM内存,其结构包括内存代理模块、cache一致性目录管理模块、CCB高速传输模块、请求管理模块、NVM内存接口模块、NVMe接口模块及CCB接口模块,其中,

内存代理模块负责在各个携带高速缓存Cache的处理器之间维护系统的数据一致性;

cache一致性目录管理模块负责目录cache查找及管理、目录维护;

请求管理模块负责数据缓存的管理,请求队列、完成队列的管理,和NVM内存接口模块、NVMe接口模块连接,把处理完成的请求结果保存在数据缓存,维护数据缓存和NVM内存的一致性;

CCB高速传输模块负责数据的高速传输、串并转换、错误检验、数据重传及流量控制。

处理器作为访问NVM内存请求的发起者,内存代理模块则作为访存请求的接受者,它代理了它所挂载的NVM内存空间。

所述内存代理模块包含一致性协议流水线单元、协议状态管理单元、协议转换表,首先请求队列进入一致性流水线单元进行处理,协同协议状态管理单元、协议转换表处理完成后,内存代理模块把该请求结果放入完成队列。

cache一致性目录管理模块中,每个目录项对应一个缓存行Cacheline大小的数据块,目录由多个目录项组成;目录项由两部分构成,一部分是状态信息,另一部分是共享信息,目录的状态信息用于表示目录当前所处的状态,该状态信息位是固定的,每个目录项使用2bit数据对目录状态进行记录。

所述目录状态包括:

A:最高权限,标记系统中的某个处理器有可能对数据有独占副本;

S:次高权限,标记系统中的某一个或若干处理器可能对数据有共享副本;

I:最低权限,标记系统中没有任何处理器对数据有副本。

一种基于一致性总线扩展非易失内存的方法,基于上述系统,该系统配置有处理器、DRAM内存和NVM内存组成的混合内存,非易失内存的扩展过程为:

处理器与NVM内存、DRAM内存之间均通过cache一致性高速互连总线互连,且对DRAM内存和NVM内存统一编址实现异构混合内存系统的全局cache一致性,即处理器通过cache一致性高速互连总线连接NVM内存控制器,该NVM内存控制器扩展连接若干NVM内存;处理器通过cache一致性高速互连总线连接DRAM内存控制器,该DRAM内存控制器扩展连接若干DRAM内存。

所述NVM内存地址空间由两个部分构成:PCM区域和NVMe区域,用户程序按需请求不同区域的页面;即,

所述异构混合内存系统,可以是一个由三种存储介质构成的统一内存空间,也可以是一个只有PCM和Flash构成的非易失内存空间,或者处于二者之间。

所述异构混合内存系统对DRAM内存和非易失存储内存统一编址、统一管理,其地址的范围为0~n,即将其视作为一个整体的内存,非易失存储内存部分的地址为统一编址的一部分,该部分地址固定不变;DRAM内存的地址为统一编址的另一部分,该部分动态变化;Cache占用DRAM内存的地址范围A为0~X,X为DRAM内存的最大地址,地址范围A根据需求而调整。

当处理器访问NVM内存时,其具体实现过程为:

首先将从高速串行总线接收的命令及其数据存放在请求队列中;

然后从请求队列中读取命令;

当为读命令时,由缓存管理确定所请求数据是否在NVM内存的缓存中命中,若在NVM内存的缓存中命中则读取数据,发送到完成队列中,通过高速串行总线返回;若未在NVM内存的缓存中命中,读命令地址在PCM内存区域内时,由地址映射模块执行转换获得物理地址,随后将物理地址发送给PCM接口,从PCM区域读取的数据将送入NVM内存缓存,发送到完成队列中,通过高速串行总线返回;若未在NVM内存缓存中命中,读命令地址在NVMe内存区域内时,命令将发送给NVMe接口,从NVMe区域读取的将送入NVM内存缓存,发送到完成队列中,通过高速串行总线返回;

当为写命令时,数据将送入NVM内存缓存中,将确认信息发送到完成队列中;当NVM内存缓存的数据块需写回PCM区域时,由地址映射模块执行转换获得物理地址,随后将地址和数据发送给PCM接口;当NVM内存缓存的数据块需写回NVMe区域时,地址和数据将发送给NVMe接口。

本发明的一种基于一致性总线扩展非易失内存的系统及方法,具有以下优点:

本发明的一种基于一致性总线扩展非易失内存的系统及方法,设计了面向非易失存储器的异构混合内存系统架构,能够对异构混合内存统一编址,进行统一管理,通过新型非易失存储器与传统DRAM内存混合应用,解决DRAM内存现有的技术瓶颈,提升NVM内存访问性能,提高整系统数据处理能力,实用性强,适用范围广泛,易于推广。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图1为本发明的异构混合内存系统架构图。

附图2为异构混合内存空间地址分布图。

附图3为NVM控制芯片内存代理模块图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图及具体实施例对本发明作进一步说明。

由于NVM内存具有非易失性,在DRAM内存与NVM内存进行混合组成混合内存时,如果采用DRAM内存作为NVM内存的Cache架构,那么由于NVM内存的非易失性,DRAM内存、Cache中存储的数据与NVM内存中的数据可能存在不一致的问题。

基于此,如附图1-3所示,本发明提供一种基于一致性总线扩展非易失内存的系统,基于一致性总线扩展非易失内存,采用cache一致性高速互连总线(CCB)对NVM内存介质的系统内存进行扩展,对DRAM内存和NVM内存统一编址实现异构混合内存系统的全局cache一致性,采用多队列管理,粗细颗粒度自适应等NVM内存访存优化技术。异构混合内存系统架构图如附图1所示,每个节点通过cache一致性高速互连总线(CCB)彼此互连,每个节点有两个内存控制器,对应DRAM内存和NVM内存,实现对不同内存介质的访问。

其结构包括若干通过cache一致性高速互连总线互连的节点,每个节点内均配置有处理器、DRAM内存和NVM内存组成的混合内存,其中在处理器与NVM内存之间配置有NVM内存控制器,在处理器与DRAM内存之间配置有DRAM内存控制器,其中处理器与NVM内存、DRAM内存之间均通过cache一致性高速互连总线互连,且对DRAM内存和NVM内存统一编址实现异构混合内存系统的全局cache一致性。

所述NVM内存控制器采用内存代理的方式管理非易失内存NVM内存,其结构包括内存代理(Home Agent)的方式管理非易失内存,主要功能模块有内存代理模块、cache一致性目录管理模块、CCB高速传输模块、请求管理模块、NVM内存接口模块、NVMe接口模块及CCB接口模块。

内存代理模块负责在各个携带高速缓存Cache的处理器(Cache Agent)之间维护系统的数据一致性,处理器作为访存(NVM内存)请求的发起者,非易失性内存代理单元(Home Agent)则作为访存请求的接受者,它代理了它所挂载的这一片NVM内存空间。如附图2内存代理包含了一致性流水线、协议状态管理、协议转换表,请求队列进入一致性流水线进行处理,处理完成后,HA把该请求结果放入完成队列。对于每个内存代理而言,其实现的一致性协议必须与处理器CA一端所支持的协议兼容,因此HA的一致性协议实现了资源预分配机制,如附图3所示,即每个HA必须能够全部接收CA所发送的最大请求数,以解决不同CA对同地址的访存冲突,避免造成CA一侧请求信道阻塞导致死锁。

cache一致性目录管理模块负责目录cache查找及管理,目录维护,每个目录项对应一个Cacheline大小的数据块,目录由多个目录项组成,目录项的数目与存储器的总容量成正比关系。目录项由两部分构成,一部分是状态信息(State),另一部分是共享信息。目录的状态信息用于表示目录当前所处的状态,该状态信息位基本是固定的,不会随着系统规模的增长而变化。本系统中每个目录项使用2bit数据对目录状态进行记录,目录状态描述如下:

A:最高权限,标记系统中的某个CA有可能对数据有独占副本

S:次高权限,标记系统中的某一个或若干CA可能对数据有共享副本

I:最低权限,标记系统中没有任何CA对数据有副本

请求管理模块负责数据缓存的管理,请求队列、完成队列的管理,和NVM内存接口、NVMe接口连接,把处理完成的请求结果保存早数据缓存,维护数据缓存和NVM内存的一致性。NVM内存接口模块和NVM内存连接,NVMe接口和NVM内存子卡相连,通过NVM内存子卡可扩展多个NVM内存单元。

CCB高速传输模块负责数据的高速传输,串并转换,错误检验,数据重传及流量控制。

一种基于一致性总线扩展非易失内存的方法,基于上述系统,该系统配置有处理器、DRAM内存和NVM内存组成的混合内存,非易失内存的扩展过程为:

处理器与NVM内存、DRAM内存之间均通过cache一致性高速互连总线互连,且对DRAM内存和NVM内存统一编址实现异构混合内存系统的全局cache一致性,即处理器通过cache一致性高速互连总线连接NVM内存控制器,该NVM内存控制器扩展连接若干NVM内存;处理器通过cache一致性高速互连总线连接DRAM内存控制器,该DRAM内存控制器扩展连接若干DRAM内存。

所述NVM内存地址空间由两个部分构成:PCM区域和NVMe区域,用户程序按需请求不同区域的页面;即,

所述异构混合内存系统,可以是一个由三种存储介质构成的统一内存空间,也可以是一个只有PCM和Flash构成的非易失内存空间,或者处于二者之间,其整个地址空间分布如附图2所示。

所述异构混合内存系统对DRAM内存和非易失存储内存统一编址、统一管理,其地址的范围为0~n,即将其视作为一个整体的内存,具体器件类型不可见。非易失存储内存部分的地址为统一编址的一部分,该部分地址固定不变;DRAM内存的地址为统一编址的另一部分,该部分动态变化;Cache占用DRAM内存的地址范围A为0~X,X为DRAM内存的最大地址,地址范围A根据上层请求的特性而调整。例如,如果请求是读多写少的类型,则A将会变小,即直接让读请求发生在非易失存储器上;相反,如果请求是读少写多的类型,则A会变大,也即利用更多的DRAM内存来充当非易失存储器的Cache,以掩盖它的写速度,并提高寿命。

当处理器访问NVM内存时,其具体实现过程为:

首先将从高速串行总线接收的命令及其数据存放在请求队列中;

然后从请求队列中读取命令;

当为读命令时,由缓存管理确定所请求数据是否在NVM内存的缓存中命中,若在NVM内存的缓存中命中则读取数据,发送到完成队列中,通过高速串行总线返回;若未在NVM内存的缓存中命中,读命令地址在PCM内存区域内时,由地址映射模块执行转换获得物理地址,随后将物理地址发送给PCM接口,从PCM区域读取的数据将送入NVM内存缓存,发送到完成队列中,通过高速串行总线返回;若未在NVM内存缓存中命中,读命令地址在NVMe内存区域内时,命令将发送给NVMe接口,从NVMe区域读取的将送入NVM内存缓存,发送到完成队列中,通过高速串行总线返回;

当为写命令时,数据将送入NVM内存缓存中,将确认信息发送到完成队列中;当NVM内存缓存的数据块需写回PCM区域时,由地址映射模块执行转换获得物理地址,随后将地址和数据发送给PCM接口;当NVM内存缓存的数据块需写回NVMe区域时,地址和数据将发送给NVMe接口。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于一致性总线扩展非易失内存的系统及方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

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