首页> 中国专利> 适用于DRAM/PRAM混合主存架构的页缓存方法及混合主存架构系统

适用于DRAM/PRAM混合主存架构的页缓存方法及混合主存架构系统

摘要

本发明公开了一种适用于DRAM/PRAM混合主存架构的页缓存方法及混合主存架构系统,其中,页缓存方法包括:混合主存系统接收页面操作请求,当页面操作请求是写页面请求时,将写页面请求的页面放入DRAM;当页面操作请求是读页面请求,将读页面请求的页面放入PRAM;混合主存系统根据页面的写密集型标志位来筛选出写密集型缓存页,并仅将写密集型缓存页从PRAM迁移至DRAM中进行缓存。本发明缓解了PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

著录项

  • 公开/公告号CN106909323A

    专利类型发明专利

  • 公开/公告日2017-06-30

    原文格式PDF

  • 申请/专利权人 山东大学;

    申请/专利号CN201710122207.X

  • 申请日2017-03-02

  • 分类号G06F3/06(20060101);G06F12/08(20160101);

  • 代理机构37221 济南圣达知识产权代理有限公司;

  • 代理人张勇

  • 地址 250061 山东省济南市经十路17923号

  • 入库时间 2023-06-19 02:44:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-10

    授权

    授权

  • 2017-07-25

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20170302

    实质审查的生效

  • 2017-06-30

    公开

    公开

说明书

技术领域

本发明属于数据页缓存领域,尤其涉及一种适用于DRAM/PRAM混合主存架构的页缓存方法及混合主存架构系统。

背景技术

非易失性存储器(Non-Volatile Memory,NVM)的生产技术近年来以惊人的速度飞速发展,这使得计算系统的数据存储机制获得了重大的变革和契机。计算机硬件技术不断发展,计算机体系结构也在不断的演进,然而,计算与存储间的不平衡却越来越严重。处理器与存储器间日益增大的性能差异,传统DRAM等易失性器件空间扩展性的制约,存储能耗的加剧上升,使得“存储墙”问题日益严重。研究和设计高效能的存储架构已成为刻不容缓的需求,寻求解决存储墙问题的课题已成为工业界和学术界共同关注的热点。而随着新型非易失存储器件的出现,其高密度、低功耗、非易失性的特点迅速得到广泛的关注,“存储墙”这一问题有望得到根本上的解决。

非易失存储器PRAM不仅具备媲美辅存的高密度特性,又同时兼具了内存的字节可寻址、原位更新和高速的随机访问特性。PRAM的诸多优势:非易失、高密度、极低的静态功耗等;同时,其作为主存的不足之处也非常鲜明:写能耗高、写延迟长、受限的写耐久性等。如表1所示,PRAM与DRAM相比,优势明显,但完全取代DRAM尚有限制。

表1 PRAM与DRAM对比

属性DRAMPRAM存储特点易失非易失读延迟15ns20ns写延迟15ns150ns读能耗~0.1NJ/b~0.2NJ/b写能耗~0.1NJ/b~1.0NJ/b空闲能耗~1.3W/GB~0.05W/GB密度高(约4倍于DRAM)耐久性

PRAM无论被用作辅存以优化I/O性能,还是被用作DRAM的扩展,都是可行且具有其优越性的。PRAM的特点,使得基于内外存统一编址的存储体系结构成为可能。DRAM制造工艺一直是制约主存空间扩展的瓶颈之一,可以将PRAM直接用于DRAM的扩展,形成如图1所示的DRAM/PRAM混合主存架构,统一编址,形成一个统一地址空间的主存整体。这样一来可以充分发挥两种存储器的优点:DRAM的访存延迟小、访存能耗低;PRAM的静态功耗低、非易失而无需耗费刷新能耗。虽然带来了好处,但也存在一定的弊端:DRAM的高静态能耗和周期性的刷新能耗;PRAM较大的写延迟、写能耗以及受限的写磨损。

页缓存为诸如传统硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid State Disk,SSD)等辅存装置提供透明缓存。操作系统在主存储器中维护页面的高速缓存,从而保证对缓存页内容的高速访问,以及实现系统总体性能的改善。在页缓存管理机制中,页面具有“时近性”和“频度”两个技术指标。“时近性”是指该页面最近会被再次访问,或者理解为绝对时间内是否会被再次访问;而“频度”是指该页面的在整个执行周期过程中被访问的次数,或者理解为在设定时间内页面是否会被再次访问。

传统CLOCK算法对于页面访存的“时近性”特点有很好的效果,但对页面访存的“频度”没有相应设计。对于传统空间有限的主存系统,仅考虑缓存页的“时近性”是有效的,随着非易失主存的应用,主存空间得以扩展,综合捕捉缓存页的“时近性”和“频度”属性是有效的优化方式。

发明内容

为了解决现有技术的缺点,本发明的第一目的是提供一种适用于DRAM/PRAM混合主存架构的页缓存方法,该方法能够缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

本发明的一种适用于DRAM/PRAM混合主存架构的页缓存方法,包括:

步骤1:混合主存系统接收页面操作请求,当页面操作请求是写页面请求时,将写页面请求的页面放入DRAM;当页面操作请求是读页面请求,将读页面请求的页面放入PRAM;

步骤2:混合主存系统根据页面的写密集型标志位来筛选出写密集型缓存页,并仅将写密集型缓存页从PRAM迁移至DRAM中进行缓存。

进一步的,该方法还包括:当混合主存系统接收调取缓存页请求时且待调取缓存页的写密集型标志位为1时,将待调取的缓存页放入DRAM缓存中。

其中,对于PRAM中被判定的写密集型页,本发明会将其迁移至DRAM中,有效的减少和避免“坏迁移”。所谓“坏迁移”是指:当最初在PRAM中的页被判定为写密集型而迁移到DRAM中,由于长时间未被写入又被迁移回PRAM;当最初在DRAM中的页被判定为读密集型而迁入PRAM,但很快会因为较多的写操作被迁移回DRAM中。

进一步的,在所述步骤1中,当DRAM或PRAM的缓存已满,则混合主存系统选择空闲区域分配存储。

这样避免出现DRAM或PRAM的缓存已满,无法存储缓存页的问题。

进一步的,该方法还包括:从相应缓存介质中寻找置换页,其具体过程包括:

根据待替换页的写密集型标志位的值判定:若写密集型标志位为1,则说明待替换页为写密集型页,需要从DRAM中寻找替换页;若写密集型标志位为0,则从整个缓存中寻找替换页。

本发明充分利用DRAM主存空间,隐藏PRAM的读写不均衡性,减少混合主存中PRAM上的写操作,以缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

进一步的,该方法还包括:设置历史链表,用来记录距离当前时刻预设时间间隔的被置换出来的页面。

本发明通过设置历史链表,减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

本发明的第二目的是提供一种DRAM/PRAM混合主存架构系统。

本发明的一种DRAM/PRAM混合主存架构系统,包括:

请求接收模块,其用于接收页面操作请求,当页面操作请求是写页面请求时,将写页面请求的页面放入DRAM;当页面操作请求是读页面请求,将读页面请求的页面放入PRAM;

缓存页迁移模块,其用于根据页面的写密集型标志位来筛选出写密集型缓存页,并仅将写密集型缓存页从PRAM迁移至DRAM中进行缓存。

进一步的,该系统还包括:调取模块,其用于当混合主存系统接收调取缓存页请求时且待调取缓存页的写密集型标志位为1时,将待调取的缓存页放入DRAM缓存中。

其中,对于PRAM中被判定的写密集型页,本发明会将其迁移至DRAM中,有效的减少和避免“坏迁移”。所谓“坏迁移”是指:当最初在PRAM中的页被判定为写密集型而迁移到DRAM中,由于长时间未被写入又被迁移回PRAM;当最初在DRAM中的页被判定为读密集型而迁入PRAM,但很快会因为较多的写操作被迁移回DRAM中。

进一步的,在所述请求接收模块中,当DRAM或PRAM的缓存已满,则混合主存系统选择空闲区域分配存储。

这样避免出现DRAM或PRAM的缓存已满,无法存储缓存页的问题。

进一步的,该系统还包括:寻找置换页模块,其用于从相应缓存介质中寻找置换页,其具体过程包括:根据待替换页的写密集型标志位的值判定:若写密集型标志位为1,则说明待替换页为写密集型页,需要从DRAM中寻找替换页;若写密集型标志位为0,则从整个缓存中寻找替换页。

本发明充分利用DRAM主存空间,隐藏PRAM的读写不均衡性,减少混合主存中PRAM上的写操作,以缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

进一步的,该系统还包括:历史链表设置模块,其用于设置历史链表来记录距离当前时刻预设时间间隔的被置换出来的页面。

本发明通过设置历史链表,减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

本发明的有益效果为:

(1)对比于传统缓存调度策略,本发明的该方法依据局部性原理,通过增加“历史队列”减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

(2)本发明充分利用DRAM主存空间,隐藏PRAM的读写不均衡性,减少混合主存中PRAM上的写操作,以缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

(3)优化DRAM和PRAM间的数据迁移:通过对数据读写操作的记录,以区分数据读写属性,将写密集型数据迁移至DRAM中;综合数据写操作的“时近性”和“频度”,降低数据在两种主存介质间的“坏迁移”。

附图说明

图1是DRAM/PRAM混合主存架构图;

图2是本发明的适用于DRAM/PRAM混合主存架构的页缓存方法模型图;

图3是本发明的缓存页管理过程示意图;

图4是本发明的缓存页迁移过程示意图;

图5是本发明的缓存页调度过程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明在传统主存的页缓存机制研究基础上,面向由DRAM和PRAM构成的统一混合主存优化缓存管理策略,提出了一种适用于DRAM/PRAM混合主存架构的页缓存方法。

本发明的一种适用于DRAM/PRAM混合主存架构的页缓存方法,包括:

步骤1:混合主存系统接收页面操作请求,当页面操作请求是写页面请求时,将写页面请求的页面放入DRAM;当页面操作请求是读页面请求,将读页面请求的页面放入PRAM;

其中,在所述步骤1中,当DRAM或PRAM的缓存已满,则混合主存系统选择空闲区域分配存储。

这样避免出现DRAM或PRAM的缓存已满,无法存储缓存页的问题。

步骤2:混合主存系统根据页面的写密集型标志位来筛选出写密集型缓存页,并仅将写密集型缓存页从PRAM迁移至DRAM中进行缓存。

在另一实施例中,该方法还包括:当混合主存系统接收调取缓存页请求时且待调取缓存页的写密集型标志位为1时,将待调取的缓存页放入DRAM缓存中。

其中,对于PRAM中被判定的写密集型页,本发明会将其迁移至DRAM中,有效的减少和避免“坏迁移”。所谓“坏迁移”是指:当最初在PRAM中的页被判定为写密集型而迁移到DRAM中,由于长时间未被写入又被迁移回PRAM;当最初在DRAM中的页被判定为读密集型而迁入PRAM,但很快会因为较多的写操作被迁移回DRAM中。

在另一实施例中,该方法还包括:从相应缓存介质中寻找置换页,其具体过程包括:

根据待替换页的写密集型标志位的值判定:若写密集型标志位为1,则说明待替换页为写密集型页,需要从DRAM中寻找替换页;若写密集型标志位为0,则从整个缓存中寻找替换页。

在另一实施例中,该方法还包括:设置历史链表,用来记录距离当前时刻预设时间间隔的被置换出来的页面。

本发明通过设置历史链表,减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

具体地,本发明的适用于DRAM/PRAM混合主存架构的页缓存方法的原理是:采用CLOCK-HM算法。本发明对CLOCK算法的优化主要途径为:无需预设参数,动态捕捉缓存页的“时近性”和“频度”属性,以维持和提升缓存的命中率;动态检测缓存页的读/写属性,实现读/写操作的优化分配,以及迁移操作的优化管理。从页的角度进行研究,需要解决的问题如下:(1)如何提升缓存的命中率,减少因缺页引起的性能损失;(2)针对PRAM的缺陷——读写不均衡,写延迟、写能耗较大等如何尽可能避免;(3)数据在DRAM和PRAM中迁移如何进行优化,以降低数据在两种主存介质间的“坏迁移”。

根据需要解决的问题,有如下解决方案:

(1)对比于传统缓存调度策略,算法依据局部性原理,通过增加“历史队列”减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

(2)充分利用DRAM主存空间,隐藏PRAM的读写不均衡性,减少混合主存中PRAM上的写操作,以缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

(3)优化DRAM和PRAM间的数据迁移:通过对数据读写操作的记录,以区分数据读写属性,将写密集型数据迁移至DRAM中;综合数据写操作的“时近性”和“频度”,降低数据在两种主存介质间的“坏迁移”。

其中,本发明将传统CLOCK算法应用于混合页缓存管理的优化机制设计。如图2所示,本发明保留CLOCK链表结构,同时为每个缓存页增加元数据,以及用于记录历史缓存页的历史链表。

CLOCK链表CL为所有混合架构中的缓存页维护一个表项,每个表项包括4个控制标志位:reference bit、second chance bit、R-write bit和W-intensive bit。链表指针HEADrep和TAILrep指向CL链表的首/尾,用于链表的表项增加。当CL链表包含所有缓存页表项,即缓存处于满状态下,循环指针Hrep和Hdram用于维护CL链表的页缓存管理。指针Hrep的作用类似于传统CLOCK算法,在CL链表中循环检索所有的DRAM和PRAM缓存页,用于为缓存缺页调度而搜索reference bit为0的缓存页,并且将检索过程中reference bit不为0的缓存页的reference bit设置为0。而指针Hdram仅对混合缓存中的DRAM缓存页进行维护操作,用于搜索合适的DRAM缓存页以备缺页调度或页面迁移。

为了弥补传统CLOCK算法对缓存页访存“频度”的估计不足,本算法维护一个基于LRU的历史链表HLL,用于记录被置换出去的页信息,包括页的元数据信息。当链表HLL中的页被再次调度时,设置其second chance bit(二次机会标志位)为1,以降低该页被再次置换出缓存的概率,以保证访问次数多而周期长的页面不被频繁调度,从而降低缓存调度的缺页率。

利用reference bit(引用位)和R-write bit(再次写标志位)来区分缓存页的读写属性,用W-intensive bit(写密集型标志位)标记写密集型缓存页。对于PRAM中被判定的写密集型页,算法会将其迁移至DRAM中。用三个动态的控制标志位可以有效的减少和避免“坏迁移”。

本发明提出了基于混合主存的页缓存改进策略:

为了更清楚地介绍给策略,本发明称为CLOCK-HM算法。

其中,CLOCK-HM算法包括三个组成部分:缓存页管理模块(CLOCK-HM-main)、缓存页迁移模块(Page Migrate)和缓存页调度模块(Page Replace)。

1.缓存页管理模块

本模块的设计主要针对缓存页的读写操作进行管理,根据每个页的读写请求维护该页的控制标志位,以及由此引起的缓存页迁移或缺页调度处理。

如图3所示,x是要访问的页,其中,缓存页管理模块是针对缓存区已满时的管理过程,其初始化分配过程(即缓存区仍有空闲空间,CL链表长度未达上限)是将写请求新页放入DRAM,而读请求新页放入PRAM,若有某介质缓存已满,则选择空闲区分配。算法描述的管理过程分为两个部分:访问命中管理和缺页管理。

对缓存页的命中管理分为读操作和写操作两种情况。对于缓存页的读操作,仅需修改CL链表对应条目的reference bit标志位,将该位置1,表明该页最近被访问过。

对于缓存页的写操作命中,需要对CL链表中对应条目进行相应的维护:如果该页的W-intensive bit为1,则说明该页已被标记为写密集型页的备选,若该页当前被分配在PRAM中,则此次写操作会引起该页从PRAM向DRAM的迁移操作;若该页已经是DRAM缓存页,则仅需将R-write bit和reference bit两个标志位置1。

如果该页的W-intensive bit为0,此次写操作会去判定R-write bit和referencebit两个标志位,若两个标志位为1,说明最近已发生过对该页的写操作,则将W-intensivebit置1,该页被推荐为写密集型页的候选;若R-write bit和reference bit两个标志位为0,则仅将其置1。

对缓存页的缺页管理分为有历史记录和无历史记录两种情况,并且不区分此次操作的读写属性。如果所需访问页在历史链表HLL中有记录,说明该页最近才被置换出来,此次操作使得该页被再次调度,需将其second chance bit位置1,以降低后续再次被置换出缓存的几率,而从相应缓存介质中寻找置换页的过程需要根据其W-intensive bit的值判定:若W-intensive bit为1,说明该页为写密集型页,需要从DRAM中寻找替换页;若W-intensive bit为0,则从整个缓存中寻找替换页。对于没有历史记录的新页调度,直接在整个缓存区寻找置换页,新页的标志位全部置0。

2.缓存页迁移

页面迁移仅将写密集型缓存页从PRAM迁移至DRAM中,而不涉及DRAM缓存页向PRAM的迁移,这主要基于两点原因:首先,为降低设计复杂度,本算法没有对缓存页读密集型属性的判定;其二,相比于PRAM,DRAM的读操作在能耗和延迟两方面都具有优势,充分利用DRAM空间是本算法的一个重要设计原则。

算法利用指针Hdram对链表CL循环检索,不断判定和维护R-write bit和reference bit标志位,以寻找合适的放置空间,并将该空间的页面置换出缓存。

当指针Hdram循环检索链表CL一周却未找到相应空间,则终止此次迁移操作,这主要因为当前DRAM缓存中的页比待迁移的PRAM缓存页更具有留在DRAM中的优势。这种迟滞迁移的设计有助于降低PRAM和DRAM间的“坏迁移”,如图4所示,x是写密集型(W-intensive=1)缓存页,需要从PRAM中迁移到DRAM的缓存页。q是在CL中且q=Hdram,且Hdram指向下一个缓存页。

3.缓存页调度

如图5所示,q=Hdram且Hdram指向下一个缓存页,缓存页调度是检索用以移出缓存的恰当已缓存页,并维护历史链表HLL的过程。如果待调入页是历史写密集型页,其W-intensive bit标志位为1,根据局部性原理,其较大可能仍是写密集型页,需要放入DRAM缓存中;而其他调度请求则从整个混合缓存空间检索适合的置换页。因此,将检索过程分为DRAM和NULL两种类型。指针Hdram对DRAM缓存进行检索,并且维护second chance bit和R-write bit标志位,特别是对second chance bit的维护,以使以往二次被调入的页保有再次被调出的机会。指针Hrep对整个混合缓存空间检索,仅对reference bit进行维护,这与传统CLOCK算法类似

本发明的该方法通过与CLOCK、LRU-WPAM和CLOCK-DWF做比较,在一定的页缓存大小时,CLOCK-HM算法具有略高的命中率;对于写密集型任务,LOCK-HM算法对比于CLOCK、CLOCK-DWF和LRU-WPAM算法,平均减少PRAM上写操作数量分别为72.3x%、64.6x%和70.4x%,对于CLOCK_HM算法在降低PRAM写操作上都表现出较大优势。另外CLOCK-HM算法相比于CLOCK-DWF算法,平均减少75.0x%的迁移操作;相比于LRU-WPAM算法,平均迁移数量减少71.7x%。

本发明提供的一种DRAM/PRAM混合主存架构系统,包括:

(1)请求接收模块,其用于接收页面操作请求,当页面操作请求是写页面请求时,将写页面请求的页面放入DRAM;当页面操作请求是读页面请求,将读页面请求的页面放入PRAM;

在所述请求接收模块中,当DRAM或PRAM的缓存已满,则混合主存系统选择空闲区域分配存储。这样避免出现DRAM或PRAM的缓存已满,无法存储缓存页的问题。

(2)缓存页迁移模块,其用于根据页面的写密集型标志位来筛选出写密集型缓存页,并仅将写密集型缓存页从PRAM迁移至DRAM中进行缓存。

进一步的,该系统还包括:调取模块,其用于当混合主存系统接收调取缓存页请求时且待调取缓存页的写密集型标志位为1时,将待调取的缓存页放入DRAM缓存中。

其中,对于PRAM中被判定的写密集型页,本发明会将其迁移至DRAM中,有效的减少和避免“坏迁移”。所谓“坏迁移”是指:当最初在PRAM中的页被判定为写密集型而迁移到DRAM中,由于长时间未被写入又被迁移回PRAM;当最初在DRAM中的页被判定为读密集型而迁入PRAM,但很快会因为较多的写操作被迁移回DRAM中。

进一步的,该系统还包括:寻找置换页模块,其用于从相应缓存介质中寻找置换页,其具体过程包括:根据待替换页的写密集型标志位的值判定:若写密集型标志位为1,则说明待替换页为写密集型页,需要从DRAM中寻找替换页;若写密集型标志位为0,则从整个缓存中寻找替换页。

本发明充分利用DRAM主存空间,隐藏PRAM的读写不均衡性,减少混合主存中PRAM上的写操作,以缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

进一步的,该系统还包括:历史链表设置模块,其用于设置历史链表来记录距离当前时刻预设时间间隔的被置换出来的页面。

本发明通过设置历史链表,减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

本发明对比于传统缓存调度策略,本发明的该方法依据局部性原理,通过增加“历史队列”减少常用数据被频繁置换,以此维持和提升缓存的命中率,从而减少由缺页引起的性能损失。

本发明充分利用DRAM主存空间,隐藏PRAM的读写不均衡性,减少混合主存中PRAM上的写操作,以缓解PRAM写操作引起的延迟,降低主存系统性能的损失;同时达到延长PRAM使用寿命的目的。

本发明优化了DRAM和PRAM间的数据迁移:通过对数据读写操作的记录,以区分数据读写属性,将写密集型数据迁移至DRAM中;综合数据写操作的“时近性”和“频度”,降低数据在两种主存介质间的“坏迁移”。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号