一种融合多级缓存目录建立访问方法

文档序号:6543195阅读:164来源:国知局
一种融合多级缓存目录建立访问方法
【专利摘要】本发明涉及一种融合多级缓存目录建立访问方法,建立分级融合的层次化缓存目录机制,数个CPU和GPU处理器组成一个Quart计算单元,在CPU或GPU处理器自带的缓存内按级建立Cuckoo目录,在Quart计算单元外建立区域目录和区域目录控制器,既可以有效降低总线的通信带宽,降低仲裁冲突频率,又可以缓存三级融合Cache的数据块目录,提高三级融合缓存的访问命中率。从而,构建Quart内外分级融合的层次化Cache目录机制,能保证降低Cache失效率的同时,减少片内总线带宽,降低系统功耗,而且不必增加Cache块的新状态,对Cache一致性协议具有很好的兼容性,为构建可扩展性、高性能的异构单片千核处理器系统提供一种新的思路。
【专利说明】一种融合多级缓存目录建立访问方法
【技术领域】
[0001]本发明涉及一种计算机缓存技术,特别涉及一种融合多级缓存目录建立访问方法。
【背景技术】
[0002]缓存(Cache)目录及其一致性机制是众核处理器存储系统中的关键技术。国际上近三年对异构众核系统的Cache目录及其一致性机制的研究比较活跃。Protoza是一种自适应粒度的Cache —致性机制,它通过避免浪费通信带宽和不必要的一致性流量来实现有效的空间局部性。SPATL将共享模式从Bloom过滤器分离出来,并采用无标签(tagless)Cache目录机制消除冗余的副本。Sanchez等人针对1024核的单片多处理器提出的可扩展一致性目录,但是该目录机制只是一个单级的Cache目录,并且需要跟踪固定数量的数据块副本;其后续研究的Jigsaw是一个对更小规模单片多处理器系统的可扩展软件化Cache。WayPoint是对经典千核处理器架构Rigel进行可扩展一致性研究,通过对Cache —致性机制增加一个广播探测过滤器以达到减小片上存储开销和目录协议的维护开销。Xu等人通过整合片上光互联技术以发挥监听协议和目录协议各自的优势,提出了针对千核单片多处理器的组合型Cache —致性机制。Hechtman等人针对异构多核系统提出了基于共享虚拟内存的Cache —致性机制,该机制也仅仅依赖于共享的二级Cache,并没有共享最后一级的CPU Cache和GPU Cache,也没有扩展到异构千核系统。库Cache—致性(Library CacheCoherence)是一个基于时钟的硬件一致性,通过保存不过期的数据块来保证单品多处理器系统的顺序一致性。时间一致性(Temporal Coherence)也是基于时钟的、面向Nvidia GPU架构的Cache —致性框架。Ubik是一种支持关键路径工作流QoS的Cache共享机制。Basu等人提出的双粒度CMP目录协议是通过采用监听区域一致性机制以最大化片上目录状态精度的方法,保证单片多处理器系统Cache的一致性。HeLM是一个新颖的共享最后一级Cache的管理策略,它通过旁路最后一级Cache来容忍GPU对内存访问的延迟,线程级并行性决定了 GPU应用程序对延迟访问的容忍度。TAP是一个针对CPU-GPU异构架构的线程级并行感知的Cache管理机制,该机制主要结合基于利用率的Cache划分方法(Utility-basedCache Partitioning)和重引用间距预测技术(Re-reference Interval Prediction)。Alvarez等人提出了基于软硬件协同设计思想的的一致性协议,允许编译器消除别名问题从而只维护多个数据副本中的唯一副本,减少维护Cache —致性的成本。Kelm等人提出了一个Cohesion机制来直接迁移数据而不用直接复制副本的方法,从而实现更好的时间局部性。同时,还采用软硬件协议交错管理数据块实现基于Cache行的细粒度管理。
[0003]本发明主要面向真正的单片异构计算机系统,如AMD的Fusion架构处理器和Intel的MIC架构处理器,将数据流计算部件或向量计算部件与CPU计算核心统一集成到单个芯片。真正的单片异构计算机系统的研究前景好,可以分类应用到大规模并行计算系统、服务器、桌面计算、移动计算、云计算等。异构千核处理器的研究将对云计算基础技术和大数据应用处理提供基础支撑作用。因此,对单片异构千核处理器的关键技术开展前瞻性研究是很有必要的。

【发明内容】

[0004]本发明是针对单片异构千核处理器缓存管理的问题,提出了一种融合多级缓存目录建立访问方法,能保证降低缓存Cache失效率的同时,减少片内总线带宽,降低系统功耗,而且不必增加Cache块的新状态,对Cache —致性协议具有很好的兼容性,为构建可扩展性、高性能的异构单片千核处理器系统提供一种新的思路。
[0005]本发明的技术方案为:一种融合多级缓存目录建立方法,具体包括如下步骤:
1)数个CPU和GPU处理器组成一个Quart计算单元,在CPU或GPU处理器自带的缓存内按级建立Cuckoo目录,在Quart计算单元外建立区域目录和区域目录控制器;
2)某一个CPU或GPU处理器发射一条对地址F的操作请求,则查询CPU或GPU处理器第一级缓存的Cuckoo目录,如果查询缺失,就将该操作请求添加到第二级缓存的区域目录机制中对应的请求队列,如果查询命中,地址F对应的数据块就存在于本区域第二级缓存中,按照正常的缓存操作完成;
3)如果地址F对应的数据块不在区域缓存区内,那么就发送一个查询请求到第二级缓存目录的区域目录,如果操作请求在区域目录中命中,就表明对应的数据块至少存在有一个区域中,可能是同一个Quart计算单元内的区域或者是其他Quart计算单元的区域,区域目录控制器会比较对应的向量位T、Q、C和G位,分别对应Tiles、Quart、CPU簇和GPU簇的标识,确定地址F对应的数据块存在于那个Tile那个Quart中的那个CPU或GPU区域缓存区中;
4)区域目录控制器发送一个置无效探测请求给步骤3)明确的区域缓存区,此区域缓存区接收到置无效探测请求后,就会将对应的数据缓存中所有的有效状态的、对应于区域目录的数据块置无效,并将此区域缓存区域中对应的数据块写回到主存,如果存在各个Quart计算单元统一的三级数据缓存,则替代相应的数据块;
5)区域目录控制器通知步骤2)发出操作请求的区域缓存区并授权它直接访问主存。
[0006]本发明的有益效果在于:本发明融合多级缓存目录建立访问方法,能保证降低缓存Cache失效率的同时,减少片内总线带宽,降低系统功耗;可以交叉式直接访问统一的物理内存,避免了内存数据块复制并传送到GPU缓存区,经GPU计算并获得结果后又将新的数据块复制到共享内存的数据传输开销,从而可以打破异构处理器架构中CPU或GPU访问对方数据块的访存瓶颈;由于不需要增加Cache数据块的状态,分级融合Cache目录机制可以兼容传统的Cache—致性协议,提供了良好的系统兼容性;分级融合Cache目录机制可以扩展到千核甚至更大规模的单片众核处理器或者超级计算机系统结构,提供了良好的可扩展性。
【专利附图】

【附图说明】
[0007]图1为本发明融合多级缓存目录工作流程图。
【具体实施方式】
[0008]分级融合的层次化Cache目录机制的基本组成是在Quart级以内设计Cuckoo目录,缓存同构CPU计算核心或GPU计算核心的数据块,发挥Cuckoo目录占用Cache面积小、功耗低的优点。由于在异构千核处理器架构中有64个Quart共享高速交叉总线,总线上的通信负载大,通信的仲裁冲突会急剧增加。因此,在Quart级以外设计区域目录(RegionDirectory),既可以有效降低总线的通信带宽,降低仲裁冲突频率,又可以缓存三级融合Cache的数据块目录,提高三级融合Cache的访问命中率。从而,拟构建Quart内外分级融合的层次化Cache目录机制。
[0009]如图1所示融合多级缓存目录工作流程图,展示了一个独立的写请求操作在异构千核计算机四级存储模型中的基本操作过程。①GPU簇发射一条对地址F的独立的写操作请求,然后查询第一级Cache目录的Cuckoo目录机制。②如果查询缺失,就将该请求添加到第二级Cache目录的区域目录机制中对应的请求队列。如果查询命中,地址F对应的数据块就存在于GPU簇的L2数据Cache中,随后的写操作就可以按照传统的Cache写操作完成。③如果地址F对应的数据块不在区域缓存区内,那么就发送一个查询请求到第二级Cache目录的区域目录。如果写请求在区域目录中命中,就表明对应的数据块至少存在有一个区域中,可能是同一个Quart内的区域或者是其他Quart的区域。随后,区域目录控制器会比较对应的向量位,如T、Q、C和G位,分别对应Tiles、Quart、CPU簇和GPU簇的标识。
?假定对应的向量{T,Q,C,G}分别为{1,1,1,0},则表示地址F对应的数据块存在于同一
个Tile,同一个Quart中的CPU区域缓存区中。然后,控制器就会发送一个置无效探测请求给CPU区域缓存区。⑤CPU区域缓存区接收到置无效探测请求后,就会将CPU 二级数据Cache中所有的有效状态的、对应于区域目录的数据块置无效。⑥然后,将区域中对应的数据块将写回到主存。如果该块还存在于三级统一的数据Cache中,则需要将三级统一数据Cache中的块替换出去。⑦区域目录控制器通知GPU区域缓存区并授权它直接访问主存。⑧该GPU簇对同一个区域内的数据块的后续写操作请求如果在GPU 二级数据Cache中写缺失,采用该目录机制就能避免探测其他的GPU簇或CPU簇的二级数据Cache及发送访问权限的请求开销,从而可以直接访问内存,降低探测其他处理单元的频率,降低存储总线上的通信负载,提高访存效率。
[0010]如果写请求是从CPU簇发出的,由于对称的存储系统结构设计,访问对应数据块的流程基本与以上过程类似。读操作请求的访存过程比写操作请求简单,读请求分级查询Cuckoo目录和区域目录,如果分级命中就到对应的Cache级别读取相应的数据块,如果都没有命中,则需要直接访问统一的物理内存地址空间。因此,本项目拟进一步提出异构处理器系统结构统一的物理内存地址访问机制以优化层次化Cache目录机制。
[0011]通过设计这种层次化目录机制既可以有效避免异构千核显式地传输数据,又不会显著增加芯片的面积和功耗,从而达到降低异构千核间数据传输的开销,突破异构千核处理器的存储墙,提高单片异构千核系统整体性能的目标。由于该目录机制不会增加Cache块的新状态,也就不必修改Cache —致性协议,因此该目录机制的兼容性和扩展性好,可以推广到千核以上处理器或者超级计算机系统架构。
【权利要求】
1.一种融合多级缓存目录建立方法,其特征在于,具体包括如下步骤: 1)数个CPU和GPU处理器组成一个Quart计算单元,在CPU或GPU处理器自带的缓存内按级建立Cuckoo目录,在Quart计算单元外建立区域目录和区域目录控制器; 2)某一个CPU或GPU处理器发射一条对地址F的操作请求,则查询CPU或GPU处理器第一级缓存的Cuckoo目录,如果查询缺失,就将该操作请求添加到第二级缓存的区域目录机制中对应的请求队列,如果查询命中,地址F对应的数据块就存在于本区域第二级缓存中,按照正常的缓存操作完成; 3)如果地址F对应的数据块不在区域缓存区内,那么就发送一个查询请求到第二级缓存目录的区域目录,如果操作请求在区域目录中命中,就表明对应的数据块至少存在有一个区域中,可能是同一个Quart计算单元内的区域或者是其他Quart计算单元的区域,区域目录控制器会比较对应的向量位T、Q、C和G位,分别对应Tiles、Quart、CPU簇和GPU簇的标识,确定地址F对应的数据块存在于那个Tile那个Quart中的那个CPU或GPU区域缓存区中; 4)区域目录控制器发送一个置无效探测请求给步骤3)明确的区域缓存区,此区域缓存区接收到置无效探测请求后,就会将对应的数据缓存中所有的有效状态的、对应于区域目录的数据块置无效,并将此区域缓存区域中对应的数据块写回到主存,如果存在各个Quart计算单元统一的三级数据缓存,则替代相应的数据块; 5)区域目录控制器通知步骤2)发出操作请求的区域缓存区并授权它直接访问主存。
【文档编号】G06F12/08GK103955435SQ201410139268
【公开日】2014年7月30日 申请日期:2014年4月9日 优先权日:2014年4月9日
【发明者】裴颂文 申请人:上海理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1