CN106354666A - Cache替换算法 - Google Patents
Cache替换算法 Download PDFInfo
- Publication number
- CN106354666A CN106354666A CN201610772874.8A CN201610772874A CN106354666A CN 106354666 A CN106354666 A CN 106354666A CN 201610772874 A CN201610772874 A CN 201610772874A CN 106354666 A CN106354666 A CN 106354666A
- Authority
- CN
- China
- Prior art keywords
- road
- cache
- count value
- data
- memorizer
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
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
本发明公开了一种Cache替换算法,适用于采用组相联映射或全相联映射关系的Cache结构和存储器,所述Cache结构中设有用于存储所述存储器的数据的若干条路,采用向下递减计数的方法统计Cache结构中每一路的最近最多使用频率,当Cache结构中无所需的存储器数据,将计数值为0的路中的存储器的数据替换为新数据。本发明可减少40%的硬件消耗,且取得同样的Cache命中率。
Description
技术领域
本发明涉及存储器领域。更具体地说,本发明涉及一种通过向下递减计数的方法来统计Cache结构中数据使用次数的Cache替换算法。
背景技术
Cache是一种根据程序局部性原则,通过小容量速度快的存储器缓存部分数据,以减少处理器对慢速大容量存储器的访问次数,从而提升处理器取指效率的机制。Cache替换算法是指当Cache缺失发生后,Cache按某种机制选中高速缓存中的某个地址进行数据更新。Cache替换算法对Cache的命中率有较大的影响。目前主流的Cache替换算法有伪随机、先进先出(FIFO——First In First Out)和最近最少使用(LRU——Least RecentlyUsed)等。相较于伪随机和先进先出算法,LRU算法更符合程序局部性原则(当前执行的程序代码,在不久后会再次访问该代码段),Cache的命中率更高,但其硬件资源消耗非常大。
传统的LRU算法对Cache的每一路进行统计,在需要替换时,将最近最少被使用的那一路替换。由于传统LRU算法的数据使用频率统计为向上计数,故其计数器计数位宽较大,且需要额外的机制来处理计数溢出的情况。
发明内容
本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。
本发明还有一个目的是提供硬件资源消耗低的Cache替换算法。
为了实现根据本发明的这些目的和其它优点,提供了一种Cache替换算法,适用于采用组相联映射或全相联映射关系的Cache结构和存储器,所述Cache结构中设有用于存储所述存储器的数据的若干条路,采用向下递减计数的方法统计Cache结构中每一路的最近最多使用频率,当Cache结构中无所需的存储器数据,将计数值为0的路中的存储器的数据替换为新数据。
本发明所述的Cache替换算法具体包括以下步骤:
a、当所述存储器的数据映射前,对所有所述路从小到大进行编号,同时对每一路增加用于记录该路使用频率的计数器,所有所述计数器的计数值由最大值递减至0;
b、当所述存储器的数据映射至计数值最大的一路时,所有所述计数器的计数值不变,当所述存储器数据映射至当前计数值非0且非最大值的一路时,所述当前计数值变为最大值,同时所有计数值大于所述当前计数值且非0的路中的计数值减1;
c、当所述Cache结构中无所需的存储器数据时,将计数值为0的路中的数据替换为所需的数据,替换后该路的计数值变为最大值,其它各路的计数值各自减1。
优选地,所述计数器的位宽为log2N,其中N为路的个数。
优选地,所述组相联映射的Cache结构设有若干组,每一组中含有若干路,所述计数器的位宽中N为每一组中路的个数。本发明至少包括以下有益效果:
1.硬件实现简单,资源消耗减少43%:
2.硬件延时减少24%,更适合高频率设计;
3.Cache命中率与传统LRU相同,性能无损失。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明所述Cache算法命中率统计流程
图2为全相联映射关系的Cache结构;
图3为组相联映射关系的Cache结构
图4为本发明所述Cache替换算法应用实例图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
需要说明的是,下述实施方案中所述实验方法,如无特殊说明,均为常规方法,所述试剂和材料,如无特殊说明,均可从商业途径获得;在本发明的描述中,术语“横向”、“纵向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,并不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
本发明提供一种Cache替换算法,适用于采用组相联映射或全相联映射关系的Cache结构和存储器,所述Cache结构中设有用于存储所述存储器的数据的若干条路,采用向下递减计数的方法统计Cache结构中每一路的最近最多使用频率,当Cache结构中无所需的存储器数据,将计数值为0的路中的存储器的数据替换为所需的新数据。全相联映射即存储器的任何一个地址可以映射到Cache缓存的任意地址。如图2所示,存储器0地址可映射到任意地址。组相联映射是是将Cache分为若干“组”(Set),又将“组”分为若干“路”(Way),组间与存储器进行直接映射(即通过Memory的某段地址偏移选定是哪一组),组内进行全映射。如图3所示,Cache结构为“2组2路”,存储器的“块3”(地址6、7)固定对应“组1”(3mod 2=1,2为“组”的总数),在“组1”中地址6、7可对应任何一路。
如图1所示,本发明所述的Cache替换算法具体包括以下步骤:
a、当所述存储器的数据映射前,对所有所述路从小到大进行编号,同时对每一路增加用于记录该路使用频率的计数器,所有所述计数器的计数值由最大值递减至0;
b、当所述存储器的数据映射至计数值最大的一路时,所有所述计数器的计数值不变,当所述存储器数据映射至当前计数值非0且非最大值的一路时,所述当前计数值变为最大值,同时所有计数值大于所述当前计数值且非0的路中的计数值减1;
c、当所述Cache结构中无所需的存储器数据时,将计数值为0的路中的数据替换为所需的数据,替换后该路的计数值变为最大值,其它各路的计数值各自减1。
其中,所述计数器的位宽为log2N,其中N为路的个数。
其中,所述组相联映射的Cache结构设有若干组,每一组中含有若干路,所述计数器的位宽中N为每一组中路的个数。
图4是本发明的一个应用案例的示意图。初始状态如图中Step 0所示,每路之前有2-bit(log24=2)计数器,各计数器初始值从2’b11至2’b00依次递减,2’b11表示该路使用频率最多,2’b00表示该路使用频率最低。当Cache命中发生后,如Step1所示,被命中的“Way2”其计数值变为2’b11,其它各路计数器进行递减;当Cache缺失发生,如Step 2所示,“Way 3”将被替换,其计数值变为2’b11,其它各路计数器进行递减。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (4)
1.一种Cache替换算法,适用于采用组相联映射或全相联映射关系的Cache结构和存储器,所述Cache结构中设有用于存储所述存储器的数据的若干条路,其特征在于,采用向下递减计数的方法统计Cache结构中每一路的最近最多使用频率,当Cache结构中无所需的存储器数据,将计数值为0的路中的存储器的数据替换为新数据。
2.如权利要求1所述的Cache替换算法,其特征在于,具体包括以下步骤:
a、当所述存储器的数据映射前,对所有所述路从小到大进行编号,同时对每一路增加用于记录该路使用频率的计数器,所有所述计数器的计数值由最大值递减至0;
b、当所述存储器的数据映射至计数值最大的一路时,所有所述计数器的计数值不变,当所述存储器数据映射至当前计数值非0且非最大值的一路时,所述当前计数值变为最大值,同时所有计数值大于所述当前计数值且非0的路中的计数值减1;
c、当所述Cache结构中无所需的存储器数据时,将计数值为0的路中的数据替换为所需的数据,替换后该路的计数值变为最大值,其它各路的计数值各自减1。
3.如权利要求2所述的Cache替换算法,其特征在于,所述计数器的位宽为log2N,其中N为路的个数。
4.如权利要求3所述的Cache替换算法,其特征在于,所述组相联映射的Cache结构设有若干组,每一组中含有若干路,所述计数器的位宽中N为每一组中路的个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610772874.8A CN106354666B (zh) | 2016-08-30 | 2016-08-30 | Cache替换算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610772874.8A CN106354666B (zh) | 2016-08-30 | 2016-08-30 | Cache替换算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106354666A true CN106354666A (zh) | 2017-01-25 |
CN106354666B CN106354666B (zh) | 2019-03-19 |
Family
ID=57857746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610772874.8A Active CN106354666B (zh) | 2016-08-30 | 2016-08-30 | Cache替换算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354666B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905528A (zh) * | 2021-02-09 | 2021-06-04 | 深圳市众芯诺科技有限公司 | 基于物联网的智能家居芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571835A (zh) * | 2009-03-26 | 2009-11-04 | 浙江大学 | 基于程序的需求来改变Cache组相联度的实现方法 |
US20110161969A1 (en) * | 2009-12-25 | 2011-06-30 | International Business Machines Corporation | Consolidating CPU - Cache - Memory Access Usage Metrics |
CN102314397A (zh) * | 2011-09-23 | 2012-01-11 | 浙江大学 | 缓存数据块的处理方法 |
US20150089143A1 (en) * | 2006-09-29 | 2015-03-26 | Intel Corporation | Method and Apparatus for Saving Power by Efficiently Disabling Ways for a Set-Associative Cache |
-
2016
- 2016-08-30 CN CN201610772874.8A patent/CN106354666B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150089143A1 (en) * | 2006-09-29 | 2015-03-26 | Intel Corporation | Method and Apparatus for Saving Power by Efficiently Disabling Ways for a Set-Associative Cache |
CN101571835A (zh) * | 2009-03-26 | 2009-11-04 | 浙江大学 | 基于程序的需求来改变Cache组相联度的实现方法 |
US20110161969A1 (en) * | 2009-12-25 | 2011-06-30 | International Business Machines Corporation | Consolidating CPU - Cache - Memory Access Usage Metrics |
CN102314397A (zh) * | 2011-09-23 | 2012-01-11 | 浙江大学 | 缓存数据块的处理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905528A (zh) * | 2021-02-09 | 2021-06-04 | 深圳市众芯诺科技有限公司 | 基于物联网的智能家居芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN106354666B (zh) | 2019-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Eisenman et al. | Flashield: a hybrid key-value cache that controls flash write amplification | |
TWI684099B (zh) | 剖析快取替代 | |
US9342458B2 (en) | Cache allocation in a computerized system | |
CN104572491B (zh) | 一种基于固态硬盘的读缓存管理方法及装置 | |
US10884928B2 (en) | Data caching | |
CN105117180B (zh) | 一种数据存储方法和装置以及固态硬盘 | |
US9372810B2 (en) | Collaborative caching | |
TW201432451A (zh) | 用於改善輸入輸出效能之調節資料快取速率之方法 | |
WO2017117734A1 (zh) | 一种缓存管理方法、缓存控制器以及计算机系统 | |
CN108255419A (zh) | 一种用于tlc类型ssd的磨损均衡方法及ssd | |
CN105302830B (zh) | 一种地图瓦片缓存方法及装置 | |
CN110297787A (zh) | I/o设备访问内存的方法、装置及设备 | |
US9699254B2 (en) | Computer system, cache management method, and computer | |
US9959060B1 (en) | Data separation during host write with storage allocated based on traffic profiles | |
CN106354666A (zh) | Cache替换算法 | |
CN106502592A (zh) | 固态硬盘缓存块回收方法及系统 | |
US8621156B1 (en) | Labeled cache system | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
CN107506156B (zh) | 一种块设备的io优化方法 | |
KR101852275B1 (ko) | 적응적 버퍼 운영 방법, 장치 및 메모리 | |
TWI551987B (zh) | 快閃記憶體模組的位址對應方法 | |
CN105868124A (zh) | 重复数据删除系统及其动态缓存的分配方法 | |
CN103970679A (zh) | 一种动态缓存污染防治系统及方法 | |
WO2017015952A1 (zh) | 一种高速缓冲存储器中存储数据的替换方法和替换装置 | |
TWI420311B (zh) | 基於集合分模組之快取記憶體之分割方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100080, Beijing, Suzhou Street, Haidian District No. 20, building 2, on the north side of the four floor Patentee after: Zhaoxun Hengda Technology Co., Ltd Address before: 100080, Beijing, Suzhou Street, Haidian District No. 20, building 2, on the north side of the four floor Patentee before: MEGAHUNT MICROELECTRONIC TECH. (BEIJING) Co.,Ltd. |