CN106354666A - Cache替换算法 - Google Patents

Cache替换算法 Download PDF

Info

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
Application number
CN201610772874.8A
Other languages
English (en)
Other versions
CN106354666B (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.)
Zhaoxun Hengda Technology Co., Ltd
Original Assignee
ZHAOXUN HENGDA MICROELECTRONICS TECHNOLOGY (BEIJING) Co Ltd
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 ZHAOXUN HENGDA MICROELECTRONICS TECHNOLOGY (BEIJING) Co Ltd filed Critical ZHAOXUN HENGDA MICROELECTRONICS TECHNOLOGY (BEIJING) Co Ltd
Priority to CN201610772874.8A priority Critical patent/CN106354666B/zh
Publication of CN106354666A publication Critical patent/CN106354666A/zh
Application granted granted Critical
Publication of CN106354666B publication Critical patent/CN106354666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement 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的命中率有较大的影响。目前主流的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为每一组中路的个数。
CN201610772874.8A 2016-08-30 2016-08-30 Cache替换算法 Active CN106354666B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112905528A (zh) * 2021-02-09 2021-06-04 深圳市众芯诺科技有限公司 基于物联网的智能家居芯片

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.