一种面向低功耗的异构多核共享cache划分方法技术

技术编号:15437046 阅读:175 留言:0更新日期:2017-05-25 19:15
本发明专利技术公开一种面向低功耗的异构多核共享cache划分方法,首先进行共享末级缓存L2级Cache的静态划分,分配恒定比例50%的缓存空间给CPU应用,剩余空间留给GPU应用。均分比例划分的基础上,进行最优静态比例的划分,划分不等比例给CPU和GPU应用。最后,进行动态地自适应比例划分机制,利用面向低功耗的动态划分算法,根据IPC划分指标在运行时动态地改变CPU应用和GPU应用占有末级缓存的比例,从而达到降低系统功耗,提升系统性能的目的。

A heterogeneous multi core shared cache partition method for low power consumption

The invention discloses a low power oriented heterogeneous multi-core shared cache partitioning method, first level cache sharing static partitioning L2 level Cache, CPU used to cache space allocation constant ratio of 50%, the remaining space for GPU application. On the basis of equal proportion division, the optimal static proportion is divided, and the unequal proportion is applied to CPU and GPU. Finally, the dynamic adaptive partition mechanism, using the dynamic partitioning algorithm for low power consumption, according to the IPC classification index change dynamically at run-time CPU application and GPU application level cache share proportion, so as to reduce the power consumption of the system, improve the system performance.

【技术实现步骤摘要】
一种面向低功耗的异构多核共享cache划分方法
本专利技术属于计算机体系缓存系统结构领域,具体涉及一种面向低功耗的异构多核共享cache划分方法。
技术介绍
随着多核处理器的不断发展,传统的多核架构难以满足大规模计算的需求,工业界通过整合不同类型的处理器于同一个芯片上,形成了异构多核处理器架构。异构多核处理器(HMP-HeterogeneousMulti-coreProcessor)将具有不同计算能力的处理器融合到一起,被广泛应用于航空航天、工业控制、仪器仪表等行业,以满足系统性能需求,降低功耗和成本。HMP由于集成了不同特点和性能的处理器核,可将不同类型的计算任务分配到不同类型的处理器核上并行处理,比如,快速复杂的核能执行串行代码部分,而较简单的核则能并行处理数字,从而为不同需求的应用提供更加灵活、高效的处理机制,满足多种应用环境对系统实时性、功耗、可靠性和成本的要求,成为当今研究的热点。图形处理器(GraphicsProcessingUnit,GPU)具有相对简单的控制逻辑,集成有大量并行处理核心,具有较高的峰值效能(单位功耗的计算性能)。GPU自诞生伊始便在浮点计算性能上超越了CPU,GPU并行执行与CPU顺序执行性能之间巨大的鸿沟使得大量的程序开发人员将计算密集型的部分交给GPU进行计算,计算机体系结构也从传统的多核CPU时代驾驶跨越到多核CPU-GPU异构时代。异构多核处理器架构如AMDFusion、IntelSandyBridge和NvidiaDenver的出现表明了异构多核架构正在成为当今时代的主流。异构多核处理器上CPU和GPU集成在一个芯片中,采用共享末级缓存结构,与CPU相比,GPU线程数量更多,并行度高,GPU应用程序可以达到比CPU应用程序更多的数据访问速率,具有一定的访问延迟容忍性。由于CPU和GPU应用程序所表现出的程序局部性特征以及访存行为的不一致性,不同进程的数据会抢占共享的末级高速缓存,带来资源冲突的问题。当CPU应用程序和GPU应用程序共同执行时,由于GPU应用程序访问速率高,因此大多数可利用的末级缓存空间将会被GPU应用程序使用,使得留给CPU的空间非常有限,导致CPU应用程序对于共享LLC的访问会明显降低,对于很多CPU应用程序而言,应用程序一旦发生高速缓存尤其是末级高速缓存缺失,则需要额外地去访问片外主存,造成不必要的功耗开销。因此,在异构多核架构中,共享LLC的划分对于系统性能和功耗的影响至关重要。此时,一个合理高效的共享缓存划分方法对于降低系统的功耗开销是十分必要的。目前,已有一些研究致力于Cache缓存子系统,Xie和Loh等人提出通过使用硬件计数器对运行在同一芯片上的线程进行缓存动态地分区,使得线程间的缓存命中率最大化。Lee和Kim等人通过考虑存储级并行的应用和缓存缺失率在性能上的影响,提出了一个动态地缓存分区策略。Qureshi和Patt等人提出基于缓存利用率的共享末级高速缓存划分方法,通过利用一个性能监视器UMON(UtilityMonitor),统计不同进程的数据访问末级共享高速缓存时的命中的位置,用于指导下一个周期划分策略的执行。但是现有的缓存管理工作,主要用于同构多核系统环境中,无法适应于CPU与GPU结合的异构环境,更无法对来自CPU的请求和来自GPU的请求进行区分,导致共享末级缓存分配的不公平性,严重影响系统的性能和功耗。
技术实现思路
本专利技术提出了一种面向低功耗的异构多核共享cache划分方法。首先进行共享末级缓存L2级Cache的静态划分,分配恒定比例50%的缓存空间给CPU应用,剩余空间留给GPU应用。均分比例划分的基础上,进行最优静态比例的划分,划分不等比例给CPU和GPU应用。最后,进行动态地自适应比例划分机制,利用面向低功耗的动态划分算法,根据IPC划分指标在运行时动态地改变CPU应用和GPU应用占有末级缓存的比例,从而达到降低系统功耗,提升系统性能的目的。为达到上述目的,本专利技术采用以下技术方案。一种面向低功耗的异构多核共享cache划分方法,包括以下步骤:步骤1,实现CPU请求与GPU请求区分,跟踪访存请求,使用标志位TagID来区分不同核心的访存请求;步骤2,根据不同核心访存请求的标志位TagID决定访存请求映射到的L2Cache地址;步骤3,实现静态划分,包括以下步骤:步骤3.1,等量均分在L2Cache的请求缓冲队列L1RequestToL2Cache中,判断TagID消息标志位,如果该请求是来自GPU核心的L1级Cache,将该访存请求映射到奇地址,如果该请求是来自CPU核心的L1级Cache,将该访存请求映射到偶地址;步骤3.2,最优划分,在均分的基础上,逐步改变分配给CPU和GPU应用的缓存地址比例,统计共享缓存CPU和GPU程序各自的单位周期内执行的指令数量(InstructionsPerCycle简称IPC),找到性能最优功耗最低的划分比例;步骤4,实现动态自适应划分步骤2,3中的CPU与GPU末级缓存占比是在应用程序运行之前划分好的,在运行中不会根据应用程序的特征进行动态调整。动态划分在运行时收集CPU核和GPU核访存请求的特征,实现自适应动态划分。作为优选,步骤4具体包括:步骤4.1,监控访存请求,分别获取CPU应用程序和GPU应用程序的访存行为信息。分别统计CPU应用程序的IPC和GPU应用程序的IPC值;步骤4.2,根据GPU的IPC指标,计算应用程序的性能增益σ,将Cache列(Cacheway)划分给性能增益最大的应用;步骤4.3,周期性执行步骤4.1,4.2,根据当前周期GPU的访存信息,计算GPU应用的IPC增益值,在下一个周期开始时将分配Cache列给相应的应用程序。作为优选,步骤4.2具体包括具体方法如下:,设Thresholdlow为阈值评测的下界值,Thresholdhigh为阈值评测的上界值,1、如果所述GPU的IPC增益值σ小于阈值Thresholdlow,GPU应用程序为缓存不敏感型,将Cache列划分给CPU应用程序。2、如果所述GPU的IPC增益值σ大于等于阈值Thresholdlow,小于等于阈值Thresholdhigh,GPU应用程序为缓存敏感型,分配给GPU应用程序能带来更大的收益,将Cache列划分给GPU应用程序。3、如果所述GPU的IPC增益值σ大于等于阈值Thresholdhigh,GPU应用程序发生阶段性变化,恢复缓存划分至初始状态。与现有技术相比,本专利技术具有以下优点:GPU应用程序与CPU应用程序共享末级缓存,GPU应用程序独有的良好并行性和访存延迟容忍性,导致GPU应用程序占据大部分LLC空间,严重影响CPU程序的访存命中率,导致额外访问主存的开销,影响系统的性能和功耗。LLC静态划分和动态自适应划分方法,有效地将CPU和GPU的访问空间限制在某些Cache列上,避免GPU应用程序的不公平竞争,提高CPU应用程序对LLC的利用率,降低访存缺失率,从而达到降低功耗,提高系统性能的目的。附图说明为使本专利技术的目的,方案更加通俗易懂,下面将结合附图对本专利技术进一步说明。图1为CPU+GPU异构多核系统架构图,该异构多核系统由2个CPU核心和4个GPU核心组本文档来自技高网
...
一种面向低功耗的异构多核共享cache划分方法

【技术保护点】
一种面向低功耗的异构多核共享cache划分方法,其特征在于,包括以下步骤:步骤1,实现CPU请求与GPU请求区分,跟踪访存请求,使用标志位TagID来区分不同核心的访存请求;步骤2,根据不同核心访存请求的标志位TagID决定访存请求映射到的L2Cache地址;步骤3,实现静态划分,包括以下步骤:步骤3.1,等量均分在L2Cache的请求缓冲队列L1RequestToL2Cache中,判断TagID消息标志位,如果该请求是来自GPU核心的L1级Cache,将该访存请求映射到奇地址,如果该请求是来自CPU核心的L1级Cache,将该访存请求映射到偶地址;步骤3.2,最优划分,在均分的基础上,逐步改变分配给CPU和GPU应用的缓存地址比例,统计共享缓存CPU和GPU程序各自的单位周期内执行的指令数量(Instructions Per Cycle简称IPC),找到性能最优功耗最低的划分比例;步骤4,实现动态自适应划分步骤2,3中的CPU与GPU末级缓存占比是在应用程序运行之前划分好的,在运行中不会根据应用程序的特征进行动态调整。动态划分在运行时收集CPU核和GPU核访存请求的特征,实现自适应动态划分。...

【技术特征摘要】
1.一种面向低功耗的异构多核共享cache划分方法,其特征在于,包括以下步骤:步骤1,实现CPU请求与GPU请求区分,跟踪访存请求,使用标志位TagID来区分不同核心的访存请求;步骤2,根据不同核心访存请求的标志位TagID决定访存请求映射到的L2Cache地址;步骤3,实现静态划分,包括以下步骤:步骤3.1,等量均分在L2Cache的请求缓冲队列L1RequestToL2Cache中,判断TagID消息标志位,如果该请求是来自GPU核心的L1级Cache,将该访存请求映射到奇地址,如果该请求是来自CPU核心的L1级Cache,将该访存请求映射到偶地址;步骤3.2,最优划分,在均分的基础上,逐步改变分配给CPU和GPU应用的缓存地址比例,统计共享缓存CPU和GPU程序各自的单位周期内执行的指令数量(InstructionsPerCycle简称IPC),找到性能最优功耗最低的划分比例;步骤4,实现动态自适应划分步骤2,3中的CPU与GPU末级缓存占比是在应用程序运行之前划分好的,在运行中不会根据应用程序的特征进行动态调整。动态划分在运行时收集CPU核和GPU核访存请求的特征,实现自适应动态划分。2.如权利要求1所述的面向低功耗的异构多核共享cache划分方法,其特征在于,步骤4具体包...

【专利技术属性】
技术研发人员:方娟刘士建程妍瑾常泽清
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1