CN102662861A - 末级高速缓存插入策略软件控制方法 - Google Patents
末级高速缓存插入策略软件控制方法 Download PDFInfo
- Publication number
- CN102662861A CN102662861A CN2012100774319A CN201210077431A CN102662861A CN 102662861 A CN102662861 A CN 102662861A CN 2012100774319 A CN2012100774319 A CN 2012100774319A CN 201210077431 A CN201210077431 A CN 201210077431A CN 102662861 A CN102662861 A CN 102662861A
- Authority
- CN
- China
- Prior art keywords
- level cache
- last level
- last
- page
- strategy
- 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.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种末级高速缓存插入策略软件控制方法,首先在处理器页表项中设计末级高速缓存插入策略控制位或控制接口;其次,当数据进入末级高速缓存时,通过判断TLB记录的页一级末级高速缓存插入策略控制位的值,决定该页数据进入末级高速缓存时的位置。利用本发明软件可以控制页一级末级高速缓存插入策略,为具有不同局部性特征的区域提供不同的末级高速缓存管理方法,达到降低末级高速缓存污染的目的;本发明应用于任何具有多级高速缓存结构,同时采用虚拟存储机制的计算机系统中,具有实现简单、硬件代价低等优点。
Description
技术领域
本发明涉及到计算机系统中的末级高速缓存管理,特别是涉及到一种结合虚拟页式存储机制的计算机系统的末级高速缓存插入策略软件控制方法。
背景技术
高速缓存处于处理器访问的关键路径。随着处理器和存储器之间速度差距的不断扩大,高速缓存尤其是末级高速缓存失效产生的系统开销逐渐增大,成为制约计算机整体性能提高的重要瓶颈之一。
程序内部不同数据区域可能存在不同的访问模式和局部性特征。但是,当前处理器高速缓存大多采用LRU替换算法。该算法不能有效识别访问数据的局部性特征并根据数据局部性的变化及时调整管理策略。未来不会被使用到的数据如果不能被有效识别并同局部性良好的数据相区分,就可能会将复用度高的数据替换出高速缓存,从而引发高速缓存污染问题。在采用多级高速缓存的系统中,由于上级高速缓存的过滤作用,使得末级高速缓存污染更加严重。现代计算机普遍采用虚拟存储系统。在支持分页机制的虚拟存储系统中,程序地址空间被划分为若干大小相同的页。在程序运行过程中,不同页之间的局部性特征可能存在较大差异。限制局部性差数据页的末级高速缓存访问空间可以减少其对其对其他数据页高速缓存空间的抢占,在高速缓存中保护局部性良好的数据,从而提高末级高速缓存的性能。
针对末级高速缓存污染问题,当前解决方案通常采用末级高速缓存软件划分的方法。该方法缺少软硬件交互接口,只能将末级高速缓存划分为若干区域,通过将失效率高、局部性差的数据页限制在范围较小的区域内,提高末级高速缓存命中率。此类方法在进行高速缓存划分时需要修改虚拟地址和物理地址的映射关系,从而引入大量的数据拷贝等开销,同时还需要预留一定的物理页框,占用较多的内存资源。
发明内容
本发明要解决的技术问题是:高速缓存替换算法主要包括换出策略和插入策略两部分。当访问失效发生时,换出策略决定高速缓存中哪一部分数据被替换到下一级存储设备中;插入策略决定从下一级存储设备中得到数据存放到高速缓存后,其缓存行在替换链表中的位置。插入策略将会影响不同高速缓存行的替换优先级,进而影响高速缓存中的数据。本发明在现有处理器页表结构的基础上,通过添加控制逻辑,设计页一级末级高速缓存插入策略控制接口。软件可以通过该接口以页为单位控制和指导末级高速缓存插入策略。本方法不增加存储设备,实现代价较低。
本发明所采用的技术方案为:一种末级高速缓存插入策略软件控制方法,包括:
利用现有页表项结构设计页一级末级高速缓存插入策略控制接口,由软件根据单个页的局部性特征利用该接口控制该页数据进入末级高速缓存时采用的插入策略,进而影响其数据在末级高速缓存中的访问空间。通过和DIP策略相结合,设计控制逻辑,将页一级插入策略控制位同策略选择寄存器PSEL最高位进行逻辑判断,达到控制末级高速缓存插入策略的目的。
本发明还可以在页表项中设计页一级末级高速缓存插入策略控制位,提供软件配置接口。
具体的说,首先,本发明在页表项中设计页一级末级高速缓存插入策略控制位。现有处理器如X86系列,无论是32位还是64位平台在其页表项中均存在未被使用到的保留位。本发明提出利用页表项保留位设置页一级末级高速缓存插入策略软件控制位即Insertion位,用于以页为单位控制数据进入末级高速缓存时采用的插入策略。本发明在两种插入策略中选择,因此只需要采用1位保留位就可以实现末级高速缓存插入策略控制接口。
其次,在引入页一级插入策略控制位后设置末级高速缓存插入策略控制逻辑。本发明以DIP策略为基础在LRU和BIP两种插入策略中选择。DIP策略静态划分末级高速缓存,通过策略选择计数器PSEL动态记录采用LRU替换算法测试组和采用双模式插入策略BIP(Bimodal Insertion Policy)策略测试组的末级高速缓存失效次数比较结果。BIP策略在芯片内部维护一个伪随机数生成器用于决定该页中数据的首次插入位置。该策略以较小概率(本文设定为1/32)将新放入末级高速缓存中的数据插入到最近最多使用位置,其他情况下插入到替换链表的最近最少使用位置,从而满足颠簸访问模式的要求。该方法根据PSEL最高位变化动态调整其他末级高速缓存组的插入策略。在引入页一级插入策略控制位后,末级高速缓存新加入数据所在替换链表中的插入位置将由该位同PSEL最高位共同决定。
本发明的有益效果是:本发明仅在DIP基础上增加一个反向器和一个与门控制逻辑;同时添加的控制逻辑不在末级高速缓存访问路径上,不会增加末级高速缓存访问时延。此外,采用本接口对局部性差的数据页进行控制时不需要调整物理页框分配策略,仅需要根据剖视信息设置页一级插入策略控制位,软件改动较小。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明末级高速缓存插入策略软件控制接口的工作流程框图。
具体实施方式
现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
在图1所示的工作框图中,采用本发明提出的末级高速缓存插入策略软件控制方法后,控制页一级末级高速缓存插入策略的的实施方式主要包括:设置页一级末级高速缓存插入策略控制位1。操作系统通常可以采用软件剖视分析的方法获得页一级程序局部性特征,为配置插入策略控制位提供依据。当一个页局部性较差时,该页所在页表项Insert位配置为1;否则,该页为普通数据页,该位配置为0。将页表项中的控制位读入到旁路缓冲器TLB中2。当处理器发出访存操作时,通过TLB将虚拟地址转换为物理地址。如果TLB访问失效,系统会访问内存中的页表将页表项中的物理页框号和末级高速缓存插入策略控制位读入到TLB中。决定从内存中获取到的数据在末级高速缓存中的插入位置3。当末级高速缓存访问失效时,会从内存中读取到数据,而数据放入末级高速缓存时采用的插入策略,由策略选择寄存器PSEL最高位和插入策略控制位Insert位共同决定。当插入策略控制位为0,PSEL最高位为1时,更新末级高速缓存行时间戳,即采用LRU方法;否则,以较大概率不更新末级高速缓存时间戳,采用BIP策略。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。
Claims (5)
1.一种末级高速缓存插入策略软件控制方法,其特征在于:包括:
利用现有页表项结构设计页一级末级高速缓存插入策略控制接口,由软件根据单个页的局部性特征利用该接口控制该页数据进入末级高速缓存时采用的插入策略,进而影响其数据在末级高速缓存中的访问空间。
2.如权利要求1所述的末级高速缓存插入策略软件控制方法,其特征在于:在页表项中设计页一级末级高速缓存插入策略控制位,提供软件配置接口。
3.如权利要求2所述的末级高速缓存插入策略软件控制方法,其特征在于:通过和DIP策略相结合,设计控制逻辑,将页一级插入策略控制位同策略选择寄存器PSEL最高位进行逻辑判断,达到控制末级高速缓存插入策略的目的。
4.如权利要求3所述的末级高速缓存插入策略软件控制方法,其特征在于:与DIP策略相结合的方式为:以DIP策略为基础在LRU和BIP两种插入策略中选择。
5.如权利要求3所述的末级高速缓存插入策略软件控制方法,其特征在于:根据PSEL最高位变化动态调整其他末级高速缓存组的插入策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210077431.9A CN102662861B (zh) | 2012-03-22 | 2012-03-22 | 末级高速缓存插入策略软件控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210077431.9A CN102662861B (zh) | 2012-03-22 | 2012-03-22 | 末级高速缓存插入策略软件控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662861A true CN102662861A (zh) | 2012-09-12 |
CN102662861B CN102662861B (zh) | 2014-12-10 |
Family
ID=46772357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210077431.9A Active CN102662861B (zh) | 2012-03-22 | 2012-03-22 | 末级高速缓存插入策略软件控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662861B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942156A (zh) * | 2013-01-18 | 2014-07-23 | 华为技术有限公司 | 存储器输出页面零数据的方法及存储器 |
WO2015014302A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101023414A (zh) * | 2004-09-23 | 2007-08-22 | 英特尔公司 | 提前运行牺牲选择以减少内含式高速缓存中不合需要的置换行为的方法和装置 |
CN101866321A (zh) * | 2010-06-13 | 2010-10-20 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存管理策略的调整方法及系统 |
CN102073596A (zh) * | 2011-01-14 | 2011-05-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
US20120047330A1 (en) * | 2010-08-18 | 2012-02-23 | Nec Laboratories America, Inc. | I/o efficiency of persistent caches in a storage system |
-
2012
- 2012-03-22 CN CN201210077431.9A patent/CN102662861B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101023414A (zh) * | 2004-09-23 | 2007-08-22 | 英特尔公司 | 提前运行牺牲选择以减少内含式高速缓存中不合需要的置换行为的方法和装置 |
CN101866321A (zh) * | 2010-06-13 | 2010-10-20 | 北京北大众志微系统科技有限责任公司 | 一种高速缓存管理策略的调整方法及系统 |
US20120047330A1 (en) * | 2010-08-18 | 2012-02-23 | Nec Laboratories America, Inc. | I/o efficiency of persistent caches in a storage system |
CN102073596A (zh) * | 2011-01-14 | 2011-05-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942156A (zh) * | 2013-01-18 | 2014-07-23 | 华为技术有限公司 | 存储器输出页面零数据的方法及存储器 |
WO2015014302A1 (zh) * | 2013-07-31 | 2015-02-05 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机系统 |
US9864696B2 (en) | 2013-07-31 | 2018-01-09 | Huawei Technologies Co., Ltd. | Multilevel cache-based data read/write method and apparatus, and computer system |
Also Published As
Publication number | Publication date |
---|---|
CN102662861B (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740260B2 (en) | Cache self-clean engine | |
CN101866318B (zh) | 一种高速缓存替换策略的管理系统及方法 | |
US10019379B2 (en) | Translation lookaside buffer switch bank | |
CN101493796B (zh) | 存储器内、页面内目录高速缓存一致性配置 | |
GB2509755A (en) | Partitioning a shared cache using masks associated with threads to avoiding thrashing | |
US7793071B2 (en) | Method and system for reducing cache conflicts | |
CN109582600B (zh) | 一种数据处理方法及装置 | |
CN104050089A (zh) | 片上系统及其操作方法 | |
CN103885728A (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN108459975B (zh) | 用于有效使用地址转换缓存的技术 | |
CN101694640B (zh) | 多核架构下共享二级Cache的替换策略的实现方法 | |
CN108959113A (zh) | 用于闪存感知堆存储器管理的方法和系统 | |
CN106844232A (zh) | 一种面向多核处理器的共享末级高速缓存访存方法和装置 | |
US20220398198A1 (en) | Tags and data for caches | |
US10853262B2 (en) | Memory address translation using stored key entries | |
CN105446889A (zh) | 一种内存管理方法、装置以及内存控制器 | |
CN102323909B (zh) | 实现使用大容量高速缓存的内存管理方法及装置 | |
EP1227405A2 (en) | A method for providing a cache indexing scheme less susceptible to cache collisions | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
US10831673B2 (en) | Memory address translation | |
CN102662861B (zh) | 末级高速缓存插入策略软件控制方法 | |
KR100379993B1 (ko) | 컴퓨터 시스템에서 캐시 라인 교체를 관리하기 위한 방법및 장치 | |
US9928179B2 (en) | Cache replacement policy | |
US20140297961A1 (en) | Selective cache fills in response to write misses | |
US20100257319A1 (en) | Cache system, method of controlling cache system, and information processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |