首页> 中国专利> 减少DRAM Cache缺失访问的方法、装置和系统

减少DRAM Cache缺失访问的方法、装置和系统

摘要

本发明涉及一种减少DRAM?Cache缺失访问的方法,所述方法包括:MissMap接收全局预测结果为DRAM?Cache命中时,处理器发出的请求信息,其中,所述请求信息包括L2Cache缺失的访问地址对应的物理页和Cache块信息;所述MissMap查询所述物理页与本地预存的物理页是否相等,当所述物理页与预存的物理页相等时,查询Cache块对应的位向量中的状态,并根据所述Cache块对应的位向量中的状态,对所述请求信息进行处理,其中,所述预存的物理页为最近最常访问的物理页。本发明以较小的硬件开销,减少了缺失情况下对DRAM?Cache的访问,在全局预测的基础上,通过MissMap进一步预测,减少了误将缺失预测为命中的情况,减少了缺失时对DRAM?Cache的访问,因此,本发明可以提高性能并减少能耗。

著录项

  • 公开/公告号CN105279113A

    专利类型发明专利

  • 公开/公告日2016-01-27

    原文格式PDF

  • 申请/专利权人 中国科学院声学研究所;

    申请/专利号CN201410315469.4

  • 发明设计人 王琪;李佳芮;王东辉;

    申请日2014-07-03

  • 分类号G06F13/16;

  • 代理机构北京亿腾知识产权代理事务所;

  • 代理人陈霁

  • 地址 100190 北京市海淀区北四环西路21号

  • 入库时间 2023-12-18 13:52:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-30

    授权

    授权

  • 2016-02-24

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20140703

    实质审查的生效

  • 2016-01-27

    公开

    公开

说明书

技术领域

本发明涉及计算机存储技术领域,尤其涉及一种减少DRAMCache缺失访 问的方法、装置和系统。

背景技术

随着3D堆叠(3D-stacked)技术的发展,使传统的动态随机存取存储器 (DynamicRandomAccessMemory,缩写:DRAM)可以被集成到处理器中。 最有前景的应用是将DRAM作为高速缓冲存储器(Cache),置于静态随机存 储器(StaticRandomAccessMemory,缩写SRAM)缓存Cache和内存(Core) 之间,如图1所示,图1为存储层次结构示意图。和SRAM相比,DRAMCache 可以提供更大的存储容量和带宽,从而提高系统性能。由于DRAMCache的访 存延迟比片外内存的访存延迟小,所以在DRAMCache命中时可以减少访存延 迟,但在DRAMCache缺失时却比没有DRAMCache的系统访问延迟要长。因 此,减少对DRAMCache缺失时的访问可以提高系统性能,同时也可以降低系 统能耗。

Cache存储两种信息,标志位(tag)和数据,在传统的基于SRAM的Cache 中,tag和数据存储在两个不同结构的阵列中,在DRAMCache中,也有将tag 放在基于SRAM的阵列中,如图2a所示,如果DRAM的一行大小为2KB,则可 以存放32个大小为64B的数据块,与这32个数据块对应的32个tags存储 在SRAM中,该结构对于500MB的DRAMCache需要48MB的SRAM存放tag, 这是不切实际的。所以最近的研究提出将tag和数据一起存储在DRAM中,如 图2b所示,将DRAM行中的3个块用于存放29个tags,剩下的存放29个数 据块。该方法虽然解决了大容量SRAMtag结构问题,但同时又带来了两个新 问题:首先,该方法增加了对DRAMCache的访问延时,在DRAMCache命中 时,需要对DRAMCache进行两次访问,一次是读出tag,一次是读出数据; 其次,与没有DRAMCache结构的系统相比,在DRAMCache缺失时多一次读 tag的访问,增加了总的访存延时。

传统Cache的访问模式是串行的访问模式(SerialAccessModel,缩写: SAM),如图3a所示,图3a是Cache的SAM访问模式,图3a中,Cache的访 问和内存的访问是串行的,该模式下,先访问Cache,如果Cache缺失再访问 内存。图3b是另一种Cache访问模式,即Cache的并行访问模式(Parallel AccessModel,缩写:PAM),在该模式下,Cache的访问和内存访问是并行 进行的,但Cache比内存的优先级高,在PAM模式下,无论Cache是否命中 都会对内存进行访问。

为了减少缺失情况下对DRAMCache的访问,在图2b结构的基础上,现 有技术一提出了一个硬件数据结构MissMap,如图4所示,图4为MissMap结 构示意图,在图4中,每个MissMap的条目由两部分组成,用于存储物理页 号的标志位(Pagetag)和用于记录当前页中的Cache块是否存在的位向量 (Bitvector)。为了准确的跟踪DRAMCache的内容,MissMap中存储了所 有DRAMCache物理页号以及物理页中对应的Cache块信息,当每次有新的 Cache块插入DRAMCache时,MissMap中与该Cache块对应的物理页的相应 bit位会被置位;相反地,当每次有Cache块从DRAMCache被替换出去时, MissMap中对应的物理页的相应bit位被复位,这样MissMap就可以保持与当 前DRAMCache的内容一致的记录。处理器可以通过查找MissMap中一个Cache 块对应的bit位数值来判断该Cache块是否在DRAMCache中,如果要访问的 Cache块在MissMap中对应的bit位为0,说明此Cache块不在DRAMCache 中,那么直接发起对内存的访问,而无需对DRAMCache进行访问。MissMap 结构可以使处理器在不访问DRAMCache的情况下就可以正确判断出对DRAM Cache的访问是缺失还是命中。

MissMap结构虽然可以使处理器在不访问DRAMCache的情况下就可以正 确判断出对DRAMCache的访问是缺失还是命中,但该方法的缺点是面积开销 太大。MissMap结构类似于一个Cache结构,为了准确的跟踪DRAMCache的 内容,MissMap要存储DRAMCache中所有的物理页信息,比如,对于一个500MB 的DRAMCache需要一个2MB的MissMap。

PAM模式与SAM模式相比,优点是减少了Cache缺失时对Cache进行访问 的延迟,但PAM模式无论Cache是否命中都对内存进行访问增加了带宽。因 此,现有技术二提出了动态访存模式(DynamicAccessModel,缩写:DAM), 如图5所示,DAM将SAM和PAM两种模式相结合,利用SAM模式降低带宽,利 用PAM模式减少延迟。该技术提出了一个3bit的饱和计数器作为访存预测器, 根据预测结果来对两种模式进行动态选择。该计数器对二级缓存(L2Cache) 缺失时是引起一个内存访问还是一个DRAMCache命中进行记录,如果命中就 减一,如果缺失就加一。当计数器的最高位(MostSignificantBit,缩写: MSB)为1时,L2Cache缺失时采用PAM模式;如果MSB为0,L2Cache缺失 时采用SAM模式。

现有技术二采用基于历史的全局预测,通过加入一个饱和计数器来对 DRAMCache最近的访问进行计数,通过计数结果对接下来的DRAMCache访问 进行预测,但是仅仅通过一个全局计数器进行预测,预测准确度比较低。如 果将DRAMCache命中预测为缺失,则采用PAM模式,对性能影响不大,但如 果误将DRAMCache缺失预测为命中,则增加了DRAMCache缺失时对DRAMCache 进行访问的延时,降低了系统性能。

因此,现有技术中,在进行DRAMCache缺失访问时,存在着面积开销太 大,预测准确度比较低的问题。

发明内容

本发明的目的是解决进行DRAMCache缺失访问时,存在着面积开销太大, 预测准确度比较低的问题。

第一方面,本发明实施例提供了一种DRAMCache缺失访问的方法,所述 方法包括:

MissMap接收全局预测结果为DRAMCache命中时,处理器发出的请求 信息,其中,所述请求信息包括L2Cache缺失的访问地址对应的物理页和 Cache块信息,所述Cache块信息指向Cache块;

所述MissMap查询所述物理页与本地预存的物理页是否相等,当所述物 理页与预存的物理页相等时,查询所述Cache块对应的位向量中的状态,并 根据所述Cache块对应的位向量中的状态,对所述请求信息进行处理,其中, 所述预存的物理页为最近最常访问的物理页。

优选地,所述方法之前还包括:

饱和计数器对处理器发出的请求信息进行判断,当所述请求信息的类型 为L2Cache缺失引起的内存访问时,所述饱和计数器加1,当所述请求信息 的类型为L2Cache缺失引起的DRAMCache命中时,所述饱和计数器减1, 当所述饱和计数器的MSB为1时,所述处理器采用PAM模式对内存进行访 问。

优选地,以比特表示所述位向量中的状态,所述根据所述Cache块对应的 位向量中的状态,对所述请求信息进行处理具体包括:

如果所述MissMap查询到所述Cache块对应的比特位为1,则判定所述 Cache块在所述DRAMCache中,所述处理器采用SAM模式对DRAMCache 进行访问;或者

如果所述MissMap查询到所述Cache块对应的比特位为0,则判定所述 Cache块不在所述DRAMCache中,所述处理器采用PAM模式对DRAM Cache进行访问,其中,所述Cache块和比特位一一对应。

优选地,所述MissMap利用近期最少使用算法LRU获取最近最常访问 的物理页。

第二方面,本发明实施例提供了一种减少DRAMCache缺失访问的装置, 所述装置包括:接收单元,处理单元;

所述接收单元,用于接收全局预测结果为DRAMCache命中时,处理器 发送的请求信息,并将所述请求信息发送给所述处理单元,其中,所述请求 信息包括L2Cache缺失的访问地址对应的物理页和Cache块信息,所述Cache 块信息指向Cache块;

所述处理单元,用于接收所述接收单元发送的请求信息,查询所述物理 页与本地预存的物理页是否相等,当所述物理页与预存的物理页相等时,查 询所述Cache块对应的位向量中的状态,并根据所述Cache块对应的位向量 中的状态,对所述请求信息进行处理,其中,所述预存的物理页为最近最常 访问的物理页。

优选地,以比特表示所述位向量中的状态,所述处理单元具体用于:

如果查询到所述Cache块对应的比特位为1,则判定所述Cache块在所述 DRAMCache中,所述处理器采用SAM模式对DRAMCache进行访问;或 者

如果查询到所述Cache块对应的比特位为0,则判定所述Cache块不在所 述DRAMCache中,所述处理器采用PAM模式对DRAMCache进行访问, 其中,所述Cache块和比特位一一对应。

第三方面,本发明实施例提供了一种减少DRAMCache缺失访问的系统, 所述系统包括如权利要求任一项所述的装置以及全局预测器。

优选地,所述饱和计数器是3bit饱和计数器。

本发明通过减少DRAMCache缺失访问的方法,MissMap接收全局预测 结果为DRAMCache命中时,处理器发出的请求信息,其中,所述请求信息 包括L2Cache缺失的访问地址对应的物理页和Cache块信息,所述Cache块 信息指向Cache块;MissMap查询所述物理页与本地预存的物理页是否相等, 当所述物理页与预存的物理页相等时,查询所述Cache块对应的位向量中的 状态,并根据所述Cache块对应的位向量中的状态,对所述请求信息进行处 理,其中,所述预存的物理页为最近最常访问的物理页,本发明以较小的硬 件开销减少缺失情况下对DRAMCache的访问,在全局预测的基础上,通过 MissMap进一步预测看是否命中,这样就减少了误将缺失预测为命中的情况, 减少了缺失时对DRAMCache的访问,因此,本发明可以提高性能并减少能 耗。

附图说明

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

图1为图1为现有技术中存储层次结构示意图;

图2a为现有技术中基于SRAM的Cache存储示意图;

图2b为现有技术中基于DRAM的Cache存储示意图;

图3a为现有技术中SAM访问模式示意图;

图3b为现有技术中PAM访问模式示意图;

图4为现有技术中MissMap结构示意图;

图5为现有技术中DAM模式示意图;

图6为本发明实施例一提供的减少DRAMCache缺失访问的结构的示意 图;

图7为本发明实施例一提供的减少DRAMCache缺失访问的方法流程图;

图8为本发明实施例二提供的减少DRAMCache缺失访问的装置示意图。

具体实施方式

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

为便于对本发明的理解,下面将结合附图以具体实施例做进一步的解释 说明,实施例并不构成对本发明实施例的限定。

图7为本发明实施例一提供的减少DRAMCache缺失访问的方法流程图, 如图7所示,本实施例的主体是MissMap,本发明的减少DRAMCache缺失 访问的方法包括:

S710,MissMap接收全局预测结果为DRAMCache命中时,处理器发出 的请求信息,其中,所述请求信息包括L2Cache缺失的访问地址对应的物理 页和Cache块信息,所述Cache块信息指向Cache块;

具体地,如图6所示,图6为本发明实施例一提供的减少DRAMCache 缺失访问的结构的示意图,处理器发出请求信息,所述请求信息包括L2Cache 缺失的访问地址对应的物理页和Cache块信息,该物理页指向DRAM中的一 行,Cache块信息指向这一行中所要访问的Cache块,饱和计数器对请求信息 进行判断,其中,该饱和计数器可以是3bit的饱和计数器,其作为全局预测 器,当所述请求信息的类型为L2Cache缺失引起内存访问时,所述饱和计数 器加1,当所述请求信息的类型为L2Cache缺失引起DRAMCache命中时, 所述饱和计数器减1,当所述饱和计数器的MSB为1时,所述处理器采用PAM 模式对内存进行访问。

当饱和计数器的MSB为0时,说明全局预测结果为DRAMCache命中, 此时,MissMap接收处理器发送的请求信息,进行下一步S720的处理。

S720,MissMap查询所述物理页与本地预存的物理页是否相等,当所述 物理页与预存的物理页相等时,查询所述Cache块对应的位向量中的状态, 并根据查询结果对所述请求信息进行处理,其中,所述预存的物理页为最近 最常访问的物理页。

具体地,MissMap可以是硬件数据结构,其包括最近最常被访问的物理 页(page),以及该物理页所对应的位向量(BlockPresenceVector)的状态, 其中,每个物理页对应的Cache块(block)有几个,则该位向量就有几比特, 比如,该Cache块可以是32个,32个Cache块中的每一个对应一比特(bit) 位,该比特位用于指示该Cache块是否存在,如果该Cache块存在,则其比 特位为1,如果该Cache块不存在,则其比特位为0,因为MissMap中存储的 是最近最常被访问的物理页,因此,其只存储了部分DRAMCache的物理页 以及该物理页所对应的Cache块的位向量的状态,本发明利用访存具有空间 局部性的特点,只将最近最常访问的页存储到MissMap中,并只对这些页对 应的Cache块信息进行记录,而不是存储和记录DRAMCache所有的页,因 此,大大减少了面积开销。

当每次有新的Cache块插入DRAMCache,MissMap中与该Cache块对 应的物理页的相应比特位会被置位;相反地,当每次有Cache块从DRAM Cache被替换出去时,MissMap中对应的物理页的相应比特位被复位,其中, MissMap可以利用近期最少使用算法(LeastRecentlyUsed,缩写:LRU), 替换掉最近不常用的物理页,从而获取到最近最常用的物理页,并用V表示 物理页是否有效,比如,可以以V=1表示物理页有效,以V=0表示物理页无 效。

当MissMap接收到处理器发出的请求信息时,该请求信息携带有L2 Cache缺失的访问地址对应的物理页以及Cache块信息,该Cache块信息指向 要访问的Cache块,其中,该物理页可以以物理页号进行区分,首先,MissMap 判断该物理页号是否与本地预存的物理页号相等,如果该物理页号与本地预 存的物理页号相等,则将要访问的Cache块定位到DRAM中的一行,接着, 继续判断在这一行中,Cache块信息指向的Cache块所对应的比特位是否为1, 当比特位为1时,进一步的说明了要访问的地址中的Cache块在DRAMCache 中,此时,可以使得处理器采用SAM方式,访问DRAMCache。

如果比特位为0,则说明Cache块不在DRAMCache中,此时,处理器 采用PAM方式,访问DRAMCache。

应用本发明实施例提供的减少DRAMCache缺失访问的方法,MissMap 接收全局预测结果为DRAMCache命中时,处理器发出的请求信息,其中, 所述请求信息包括L2Cache缺失的访问地址对应的物理页和Cache块信息, 所述Cache块信息指向Cache块,MissMap查询所述物理页与本地预存的物 理页是否相等,当所述物理页与预存的物理页相等时,查询所述Cache块对 应的位向量中的状态,并根据Cache块对应的位向量中的状态,对所述请求 信息进行处理,其中,所述预存的物理页为最近最常访问的物理页,以较小 的硬件开销减少缺失情况下对DRAMCache的访问,在全局预测结果为 DRAMCache命中的基础上,通过MissMap进一步预测看是否命中,这样就 减少了误将缺失预测为命中的情况,减少了缺失时对DRAMCache的访问, 因此,本发明可以提高性能并减少能耗。

图8为本发明实施例二提供的减少DRAMCache缺失访问的装置,如图 8所示,在本实施例中,包括:接收单元810,处理单元820;

接收单元810,用于接收全局预测结果为DRAMCache命中时,处理器 发出的请求信息,并将所述请求信息发送给所述处理单元,其中,所述请求 信息包括L2Cache缺失的访问地址对应的物理页和Cache块信息,所述Cache 块信息指向Cache块;所述处理单元820,用于接收所述接收单元发送的请求 信息,查询所述物理页与本地预存的物理页是否相等,当所述物理页与预存 的物理页相等时,查询所述Cache块对应的位向量中的状态,并根据所述Cache 块对应的位向量中的状态,对所述请求信息进行处理,其中,所述预存的物 理页为最近最常访问的物理页。

可选地,以比特表示所述位向量中的状态,所述处理单元具体用于,如果 查询到所述Cache块对应的比特位为1,则判定所述Cache块在所述DRAM Cache中,所述处理器采用SAM模式对DRAMCache进行访问;或者

如果查询到所述Cache块对应的的比特位为0,则判定所述Cache块不在 所述DRAMCache中,所述处理器采用PAM模式对DRAMCache进行访问, 其中,所述Cache块和比特位一一对应。

通过应用本发明实施例提供的减少DRAMCache缺失访问的装置,接收 单元接收全局预测结果为DRAMCache命中时,处理器发送的请求信息,并 将所述请求信息发送给所述处理单元,其中,所述请求信息包括L2Cache缺 失的访问地址对应的物理页和Cache块信息,所述Cache块信息指向Cache 块;处理单元接收所述接收单元发送的请求信息,查询所述物理页与本地预 存的物理页是否相等,当所述物理页与预存的物理页相等时,查询所述Cache 块对应的位向量中的状态,并根据所述Cache块对应的位向量中的状态,对 所述请求信息进行处理,其中,所述预存的物理页为最近最常访问的物理页, 以较小的硬件开销减少缺失情况下对DRAMCache的访问,在全局预测的基 础上,通过MissMap进一步预测看是否命中,这样就减少了误将缺失预测为 命中的情况,减少了缺失时对DRAMCache的访问,因此,本发明可以提高 性能并减少能耗。

本发明还包括一种减少DRAMCache缺失访问的系统,所述系统包括图 8所述的装置以及饱和计数器。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的 各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来 实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能 一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来 执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每 个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为 超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理 器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器 (RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、 寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式 的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而 已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做 的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号