CN111258927B - 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法 - Google Patents

一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法 Download PDF

Info

Publication number
CN111258927B
CN111258927B CN201911309038.6A CN201911309038A CN111258927B CN 111258927 B CN111258927 B CN 111258927B CN 201911309038 A CN201911309038 A CN 201911309038A CN 111258927 B CN111258927 B CN 111258927B
Authority
CN
China
Prior art keywords
llc
cache
group
target program
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201911309038.6A
Other languages
English (en)
Other versions
CN111258927A (zh
Inventor
向耀程
肖俊
汪小林
罗英伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Peng Cheng Laboratory
Original Assignee
Peking University
Peng Cheng Laboratory
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University, Peng Cheng Laboratory filed Critical Peking University
Publication of CN111258927A publication Critical patent/CN111258927A/zh
Application granted granted Critical
Publication of CN111258927B publication Critical patent/CN111258927B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提出一种基于采样的应用程序CPU末级高速缓存缺失率曲线的预测方法,属于计算机体系结构领域,包括以下步骤:让目标程序在处理器上运行,设计一组访存模式可控的微程序来访问指定末级高速缓存LLC组,与目标程序在指定LLC组发生资源竞争;通过采样收集一段时间内不同LLC组上的缓存缺失数量;通过控制微程序的访存模式改变它所占用的缓存块数量,改变目标程序所在指定LLC组上占用的缓存大小;计算未被微程序影响的LLC组上的缓存缺失数与受影响的组上缓存缺失数之差,据此得到目标程序的缺失率曲线。本方法既能消除事离线探测方法的局限性,又能避免在线预测方法对程序性能的干扰。

Description

一种基于采样的应用程序CPU末级高速缓存缺失率曲线的预 测方法
技术领域
本发明涉及一种基于采样的应用程序CPU末级高速缓存缺失率曲线的高效探测方法,属于计算机体系结构领域。
背景技术
在现代多核处理器中,人们通常加入高速缓存(Cache)来减小应用程序的访存延迟。基本原理是利用应用程序的局部性,将可能被重用的数据放入更快的存储介质Cache中。Cache通常以层次性的结构构建,目前主流多核处理器大都采用3级Cache的结构(见图1),越靠近计算核心的Cache延迟越低同时容量也越小。计算核心在访问内存时,首先会从第一级高速缓存(L1 Cache)中寻找数据,如果发现数据缺失则从第二级高速缓存(L2Cache)中寻找,若仍然缺失则从末级高速缓存(LLC)中寻找。如果末级缓存中仍然没有目标数据则访问主存,并将该数据依次存放于各级高速缓存中方便下次使用。其中,L1和L2Cache由本地的计算核心私有,而第三级的LLC则由同一CPU芯片上的所有计算核心共享。
如何缓解各计算核心在LLC上的资源竞争一直是云计算厂商面临的重要问题。目前的主流处理器中都实现了LLC隔离机制来根据每个计算核心的需求分配LLC,例如Intel处理器的CAT(Cache Allocation Technology)和ARM处理器的MPAM(Memory SystemResource Partitioning and Monitoring)。这些技术为LLC的资源分配提供了硬件支持,但仍然需要根据每个计算核心上负载的应用程序的特征选择合适的LLC分配方案。LLC一般采用最近最少用(Least Recently Used,LRU)的替换策略,默认最近被访问的数据最可能被重新访问,而最久没被访问的数据最可能不再被访问。在多计算核心共享LLC的场景下,可能存在一个访存速度很快但没有数据重用的LLC污染型程序。它不能从更大的LLC中获益,但它会将LLC中大量的数据块替换成自己的数据,使得其他应用程序的性能下降。为解决这类问题,首先需要研究应用程序对LLC的敏感性,即程序的缓存缺失率与它所分配到的LLC大小之间的关系。业界通常用缺失率曲线(Miss Ratio Curve,MRC)来描述这种关系。MRC的横轴为程序的缓存大小,纵轴为程序在给定大小的缓存上的缺失率。
目前主要有两种探测应用程序LLC MRC的方法:(1)事先单独运行目标程序多次,每次分配给它不同大小的LLC。然后利用硬件计数器测量每次运行过程中的LLC访问次数和LLC缺失次数,从而得到不同LLC大小下应用程序的缓存缺失率。(2)在应用程序的运行过程中,收集目标程序访问LLC的地址序列,并根据这些地址序列实时预测目标程序的MRC。但这两种方法都存在明显的缺陷。方法1需要在离线环境下事先多次运行程序,它无法支持数据中心中实时调度的任务。方法2则会因为收集访存序列引入过多的额外存储开销而影响目标程序性能。并且这两种方法实时收集到的访存序列总是存在一定程度上的缺失,因此这种方法直接预测出的MRC往往不够精确。
发明内容
本发明的目的是利用访存地址采样技术,实现一种低开销、高精度的实时LLC MRC预测方法,既能消除事离线探测方法的局限性,又能避免在线预测方法对程序性能的干扰。
本方法基于应用程序在每个LLC组上的访存行为与程序整体的访存行为一致,并且少量LLC组占用量的减少不影响程序的总体性能。
据此本发明提出一种基于采样的应用程序CPU末级高速缓存缺失率曲线的预测方法,包括以下步骤:
在处理器上运行目标程序,通过一组访存模式可控的微程序来访问指定末级高速缓存LLC组,与目标程序在指定LLC组发生资源竞争;
采样收集一段时间内不同LLC组上的缓存缺失数量;
通过控制微程序的访存模式改变它所占用的缓存块数量,改变目标程序所在指定LLC组上占用的缓存大小;
计算未被微程序影响的LLC组上的缓存缺失数与受影响的组上缓存缺失数之差,据此得到目标程序的缺失率曲线。
优选地,当目标程序运行于处理器上占用整个LLC时,测量目标程序的LLC访问数和缺失数,计算目标程序占用每个LLC组时的缺失率,该缺失率等于缺失数与访问数的比值。
优选地,每个微程序只读写指定的一个缓存组,并且每次循环读写若干个缓存块的内容。
优选地,利用硬件计数器,通过硬件采样技术PEBS进行采样。
优选地,采样方法为:每隔r次缺失收集一个地址,阶段性地收集目标程序产生LLC缺失的物理地址序列,再根据处理器的地址映射规则确定这些地址所属的LLC组号,统计出目标程序在每个LLC组上的缓存缺失数。
优选地,控制微程序的访存模式包括控制其访存速度和访问的数据规模,通过改变这两个参数可以改变微程序能够占用的缓存大小,访存速度越快,访问的数据规模越大,它的缓存占用越大。由于微程序和目标程序共享缓存,即二者占用的缓存大小总和不变,所以通过改变微程序的缓存占用,可以间接地控制目标程序的缓存占用量。
本发明还提出一种基于采样的应用程序CPU末级高速缓存缺失率曲线的预测系统,包括存储器和处理器,该存储器存储计算机程序,该程序被配置为由该处理器执行,该程序包括用于执行上述方法中各步骤的指令。
本发明还提出一种存储计算机程序的计算机可读存储介质,该计算机程序包括指令,该指令当由系统的处理器执行时使得该系统执行上述方法中的各个步骤。
附图说明
图1是现代多核处理器中高速缓存结构示意图。
图2是二路组相联Cache示意图。
图3是微程序示意图。
图4是量化微程序对LLC的影响并转化为目标程序MRC的过程示意图,其中左图为每个LLC Set的缺失数统计图,右图为目标程序的MRC图。
具体实施方式
为使本发明的技术方案能更明显易懂,特举实施例并结合附图详细说明如下。
现代处理器中的LLC通常是以多路组相联的映射方式设计,如图2所示的一个2路组相联Cache的示意图。物理地址中的“组号”段决定了数据在Cache中的组号,而组内的不同路(Way)的Cache块在逻辑上是对等的,组内的每路包含一个缓存的基本单位缓存块(Cache Line),现代处理器中每个缓存块大小一般为64B。硬件通过物理地址中的“标签”段判断数据是否在Cache中,每个组(Set)内不同路(Way)的缓存块以LRU的规则进行替换。通过观察发现,现代处理器中应用程序对内存的数据访问映射到LLC后,访问量和缺失量是均匀分布在每个Set上的。换句话说,应用程序在每个LLC Set上的MRC与它在整个LLC上的MRC是匹配的。本发明方法的本质就是通过较低的代价研究目标程序在某些LLC Set上的缓存敏感性,并将这种属性转化为目标程序在整个LLC上的MRC。
如图3和图4所示,通过如下实施例对本发明方法作具体说明。
以Intel Xeon Silver 4110八核处理器作为实验用机,该机器的LLC分为8个完全一样的缓存分片,每片包含2048个缓存组,每组有11路。共有8*2048*11=180224个缓存块,每个缓存块大小为64B,总计11MB。Intel通过独特的随机化处理让应用程序的访问均匀分散到每个LLC分片上,使得程序在每个LLC分片上的性质一致。因此只需研究程序在每个LLC分片(2048组,每组11路)上的敏感性,即可获悉程序在整个LLC上的性质。为避免误解,下文中的LLC默认指代一个2048*11的LLC分片。
首先让目标程序在处理器上自由运行,在没有任何人为干涉下它将占用整个LLC(即每个LLC缓存组均被目标程序占用)。此时可以利用现代处理器自带的硬件计数器(Intel处理器中提供了名为PMU的硬件事件监控功能)测量出目标程序的LLC访问数#access和LLC缺失数#miss,继而算出目标程序在占用11个LLC路时的缺失率
Figure BDA0002323999670000041
即图4中MRC最右端的初始点(横坐标为整个LLC大小11路,纵坐标为缺失率base′)。
然后设计一组微程序,并控制其访存模式。第一个微程序只会读写1号缓存组,并且每次都循环读写3个缓存块的内容。由于控制微程序对1号缓存组的访问速度远大于目标程序,因此在LRU替换策略的作用下,微程序在1号缓存组中的数据访问总能命中。也就是说,目标程序永远无法将微程序在1号缓存组中占用的3个缓存块替换出去,实际上它只能占用1号缓存组中其他的8个缓存块。由于可用缓存量减小,目标程序在1号缓存组上会产生比其他缓存组更多的缓存缺失次数。利用Intel PMU提供的硬件采样技术(PEBS),以一定采样率1/r(每隔r次缺失收集一个地址)阶段性地收集目标程序产生LLC缺失的物理地址序列,然后根据Intel处理器的地址映射规则确定这些地址所属的LLC组号,进而统计出目标程序在每个LLC组上的缓存缺失数(如图4左图所示)。
由于微程序的影响,可以明显看出1号缓存组上的缓存缺失数大于其他不受微程序干扰的缓存组。记录其他缓存组的缺失数base同时算出这个差值d1。可以推算出在地址采样的这段时间内,1号缓存组共发生了(base+d1)×r次缓存缺失,而其他缓存组各发生了base×r次缓存缺失。换句话说,将目标程序可占用的LLC大小由11路降为8路,使得它在LLC上的缓存缺失率增大了
Figure BDA0002323999670000042
结合之前测量到目标程序占整个11路LLC时的真实缺失率base′,可以推算出它在占8路LLC时的缺失率为
Figure BDA0002323999670000043
注意,由于只需获得不同缓存组上缺失数的比例关系,采样率1/r的精度对后续结果没有实质性影响,因此可以在误差允许的范围内选择较小的采样率。而以往的方法所引入的巨大额外开销很大程度都来源于高精度地址采样导致的额外存储和计算,因此本发明方法巧妙地避免了对采样精度的要求,从而解决了这个问题。
同理,设计其他微程序,只访问某些指定的缓存组,并根据需要控制它们访问的数据量,即控制目标程序在指定缓存组上可使用的LLC路数。让这些微程序同时运行,这样便可以取得图4所示的效果。左图中缓存缺失数的比例关系和右图中缓存缺失率的比例关系是一致的,即
Figure BDA0002323999670000044
综上,便可以得到目标程序的MRC。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,本发明的保护范围以权利要求所述为准。

Claims (7)

1.一种基于采样的应用程序CPU末级高速缓存缺失率曲线的预测方法,其特征在于,包括以下步骤:
在处理器上运行目标程序,当目标程序运行于处理器上占用整个LLC时,测量目标程序的LLC访问数和缺失数,计算目标程序占用每个LLC组时的缺失率,该缺失率等于缺失数与访问数的比值;
通过一组访存模式可控的微程序来访问指定末级高速缓存LLC组,与目标程序在指定LLC组发生资源竞争;
采样收集一段时间内不同LLC组上的缓存缺失数量;
通过控制微程序的访存模式改变它所占用的缓存块数量,改变目标程序所在指定LLC组上占用的缓存大小;
计算未被微程序影响的LLC组上的缓存缺失数与受影响的组上缓存缺失数之差,据此得到目标程序的缺失率曲线。
2.如权利要求1所述的方法,其特征在于,每个微程序只读写指定的一个缓存组,并且每次循环读写若干个缓存块的内容。
3.如权利要求1所述的方法,其特征在于,利用硬件计数器,通过硬件采样技术PEBS进行采样。
4.如权利要求1所述的方法,其特征在于,采样方法为:每隔r次缺失收集一个地址,阶段性地收集目标程序产生LLC缺失的物理地址序列,再根据处理器的地址映射规则确定这些地址所属的LLC组号,统计出目标程序在每个LLC组上的缓存缺失数。
5.如权利要求1所述的方法,其特征在于,控制微程序的访存模式包括控制其访存速度和访问的数据规模。
6.一种基于采样的应用程序CPU末级高速缓存缺失率曲线的预测系统,其特征在于,包括存储器和处理器,该存储器存储计算机程序,该程序被配置为由该处理器执行,该程序包括用于执行上述权利要求1-5任一所述的方法中各步骤的指令。
7.一种存储计算机程序的计算机可读存储介质,其特征在于,该计算机程序包括指令,该指令当由系统的处理器执行时使得该系统执行上述权利要求1-5任一所述的方法中的各个步骤。
CN201911309038.6A 2019-11-13 2019-12-18 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法 Expired - Fee Related CN111258927B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019111065799 2019-11-13
CN201911106579 2019-11-13

Publications (2)

Publication Number Publication Date
CN111258927A CN111258927A (zh) 2020-06-09
CN111258927B true CN111258927B (zh) 2022-05-03

Family

ID=70946718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911309038.6A Expired - Fee Related CN111258927B (zh) 2019-11-13 2019-12-18 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法

Country Status (1)

Country Link
CN (1) CN111258927B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540934B (zh) * 2020-12-14 2022-07-29 山东师范大学 保证多个延迟关键程序共同执行时服务质量的方法及系统
CN113127065B (zh) * 2021-04-19 2022-07-08 之江实验室 一种基于纯缺失检测方法的存算一体程序划分方法及装置
CN113190350B (zh) * 2021-04-30 2022-06-14 华南理工大学 一种面向在离线容器混合部署的llc分配方法
CN113282524B (zh) * 2021-05-08 2022-08-16 重庆大学 一种缓存分片的配置方法、装置以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662863A (zh) * 2012-03-22 2012-09-12 北京北大众志微系统科技有限责任公司 粗粒度的末级高速缓存旁路方法
CN110365590A (zh) * 2019-07-12 2019-10-22 北京大学深圳研究生院 一种二级缓存方法及两阶段超时流表结构

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143550A1 (en) * 2005-12-19 2007-06-21 Intel Corporation Per-set relaxation of cache inclusion
US9396024B2 (en) * 2008-10-14 2016-07-19 Vmware, Inc. Online computation of cache occupancy and performance
CN103885815A (zh) * 2014-03-24 2014-06-25 北京大学 一种基于热页迁移的虚拟机动态缓存方法
CN104809078B (zh) * 2015-04-14 2019-05-14 苏州中晟宏芯信息科技有限公司 基于退出退让机制的共享高速缓存硬件资源访问方法
CN107577616B (zh) * 2017-09-05 2020-09-18 苏州浪潮智能科技有限公司 一种划分末级共享缓存的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662863A (zh) * 2012-03-22 2012-09-12 北京北大众志微系统科技有限责任公司 粗粒度的末级高速缓存旁路方法
CN110365590A (zh) * 2019-07-12 2019-10-22 北京大学深圳研究生院 一种二级缓存方法及两阶段超时流表结构

Also Published As

Publication number Publication date
CN111258927A (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN111258927B (zh) 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法
US6202127B1 (en) Apparatus for spatial and temporal sampling in a computer memory system
EP3129887B1 (en) Multiple data prefetchers that defer to one another based on prefetch effectiveness by memory access type
US6442585B1 (en) Method for scheduling contexts based on statistics of memory system interactions in a computer system
US8495318B2 (en) Memory page management in a tiered memory system
US6237059B1 (en) Method for estimating statistics of properties of memory system interactions among contexts in a computer system
CN111052095B (zh) 使用动态预取深度的多行数据预取
US8392657B2 (en) Monitoring cache usage in a distributed shared cache
CN105426319B (zh) 动态缓存分区设备和方法
US10025504B2 (en) Information processing method, information processing apparatus and non-transitory computer readable medium
US9471510B2 (en) System and method for cache monitoring in storage systems
EP0919920B1 (en) Method for estimating statistics of properties of memory system transactions
EP3049915B1 (en) Prefetching with level of aggressiveness based on effectiveness by memory access type
KR20160086766A (ko) 모드에 따라 선택적으로 하나 또는 복수의 셋트를 선택하도록 동적으로 구성가능한 멀티 모드 셋트 연관 캐시 메모리
US8793434B2 (en) Spatial locality monitor for thread accesses of a memory resource
KR20180114497A (ko) 하이브리드 dram/낸드 메모리에서 읽기-수정-쓰기 오버헤드를 감소시키기 위한 기술들
CN106372007B (zh) 缓存使用率估计
CN110297787B (zh) I/o设备访问内存的方法、装置及设备
CN109597771B (zh) 用于控制分层存储器系统的方法和装置
US11487671B2 (en) GPU cache management based on locality type detection
Zhang et al. Understanding the dynamic caches on intel processors: Methods and applications
Lepers et al. Johnny Cache: the End of {DRAM} Cache Conflicts (in Tiered Main Memory Systems)
Li et al. Block value based insertion policy for high performance last-level caches
CN116049036B (zh) 一种面向蒙特卡罗粒子输运的处理器缓存配置方法
US11693778B2 (en) Cache grouping for increasing performance and fairness in shared caches

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220503