CN112148640A - 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统 - Google Patents
一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统 Download PDFInfo
- Publication number
- CN112148640A CN112148640A CN201910560597.8A CN201910560597A CN112148640A CN 112148640 A CN112148640 A CN 112148640A CN 201910560597 A CN201910560597 A CN 201910560597A CN 112148640 A CN112148640 A CN 112148640A
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- priority
- block
- cache memory
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000003068 static effect Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
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/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
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的容量k一致的滑动窗口,通过滑动窗口对应主存储器中的数据块,在高速缓冲存储器的Cache块中存储滑动窗口所对应的主存储器中数据块以及该数据块的优先级标志;当高速缓冲存储器当前Cache块出现访问未命中,判断新访问程序块的优先级,只有当新的程序块优先级高于当前程序块,才替换Cache内容和优先级,在替换Cache块时,移动滑动窗口底端至未命中的地址,在高速缓冲存储器Cache中存储滑动窗口所对应的主存储器中数据块以及该数据块的优先级。
Description
技术领域
本发明涉及高速缓冲存储器技术领域,具体涉及一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统。
背景技术
高速缓冲存储器(Cache)是一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。Cache由标记存储器和数据存储器两个基本部分组成。标记存储器是用来储存Cache的控制位与块地址标签,控制位用于管理Cache的读写操作,而块地址标签则记录着Cache中各块的地址。这个地址包含了与主内存映射的块地址,并且都与Cache中的一块“数据”相对应。而这块“数据”正是贮存于Cache的数据存储器中。当CPU读取数据时,先通过地址总线把物理地址送到Cache中,与Cache中的块地址标签进行对比。若相符合,则表示此数据已经存在于Cache中(此情况被戏称为“命中”),这时只需把Cache中的对应数据经由数据总线直接传送给CPU即可。但如果CPU送来的物理地址无法与Cache中的块地址标签相符,则表明这一数据不在Cache中(称为“失误”),这时,需要由主内存把CPU所需的数据地址拷贝到Cache中,再由Cache把数据传送给CPU,此时就需讨论映射方式,映射方式是指Cache中的数据如何与主内存中的数据相对应的问题。映射方式通常有以下三种:
直接映射:如果主内存上的块只能映射到Cache中的特定块,我们称这种映射方式为直接映射。直接映射的存取速度最快,但失误率也最高。
完全映射:在这种映射方式下,主内存上的块可以映射到Cache的任意块之中,当CPU欲读取某一个块时,Cache会把CPU送来的地址与Cache中的所有地址标签进行对比。由于是完全对比,因此存取时间最长,但失误率也最低。
组相联映射:这种映射方式是把Cache分成若干个页面,每个页面会有相同数目的块。主内存中数据块可以映射到Cache中指定页面的任一块中。这种映射方式可以看成是直接映射与完全映射的折衷,是效率最高的映射方式。
在微控制器芯片内部加入指令Cache可以显著的提高指令运行的效率。但是加入大容量的Cache会明显增加芯片的成本和功耗。因此在成本和功耗敏感的微控制器芯片中只能使用小容量的Cache,在使用小容量的Cache时候不能直接映射、完全映射或者组相联映射这几种大容量Cache的方式来映射和替换Cache,而现有的映射方式尚未涉及该技术问题。
发明内容
发明目的:为给小容量的Cache提供一种合适的数据替换和映射方式,本发明提出一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统。本发明把整个小容量Cache当成一个块,并采用滑动窗口的方式映射和替换小容量Cache,即Cache和程序存储器的映射位置随着程序执行的过程不断变化。
技术方案:为实现上述技术效果,本发明提出以下技术方案:
一种高速缓冲存储器的数据替换方法,包括步骤:
(1)对主存储器不同的地址区间定义不同的优先级标志,即对每个主存储器中的程序块定义优先级;把中断向量表地址区间的优先级定义为最低;
(2)构建与高速缓冲存储器Cache的容量k一致的滑动窗口,初始时,窗口的低端位置对应程序存储器的0地址,高端位置对应程序存储器的地址k;通过滑动窗口对应主存储器中的数据块,在高速缓冲存储器Cache中存储滑动窗口所对应的主存储器中数据块以及该数据块的优先级;
(3)若高速缓冲存储器Cache出现访问未命中,高速缓冲存储器Cache从主存储器中读入新的程序块,高速缓冲存储器Cache判断原本存储的程序块的优先级是否低于新访问程序块的优先级,若是,则移动滑动窗口底端至未命中的地址,并替换存储内容为滑动窗口对应主存储器的数据块,更新自身优先级为新的数据块对应的优先级;若不是,则保持当前Cache块的窗口位置不变,Cache内容也不变。
进一步的,所述高速缓冲存储器Cache中存储的数据和优先级可以被清除,防止高优先级程序块锁死Cache块,导致低优先级的程序块永远不能被载入Cache。
进一步的,当CPU读取中断向量表时强制不更新Cache窗口位置和Cache缓存的内容。
本发明还提出一种高速缓冲存储器,所述高速缓冲存储器采用所述数据替换方法进行数据替换。
本发明还提出一种计算机系统,所述计算机系统中包括所述的高速缓冲存储器。
进一步的,所述高速缓冲存储器采用独立的静态存储器芯片实现,或集成在CPU芯片内部。
有益效果:与现有技术相比,本发明具有以下优势:
1.当采用小容量高速缓冲存储时,能适应各种结构的程序,并提高命中率。
2.优先级可配置,避免Cache块被频繁替换,降低芯片功耗。
附图说明
图1 为本发明所述高速缓冲存储器的数据替换方法的流程图;
图2为滑动窗口位置更新的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
高速缓冲存储器的数据替换方法包括如下的步骤(1)至步骤(3):
1)预先对主存储器不同的地址区间定义不同的优先级标志,即对每个主存储器中的程序块定义优先级;把中断向量表地址区间的优先级定义为最低;
(2)构建与高速缓冲存储器Cache的容量k一致的滑动窗口,初始时,窗口的低端位置对应程序存储器的0地址,高端位置对应程序存储器的地址k;通过滑动窗口对应主存储器中的数据块,在高速缓冲存储器Cache中存储滑动窗口所对应的主存储器中数据块以及该数据块的优先级;
(3)若高速缓冲存储器Cache出现访问未命中,高速缓冲存储器Cache从主存储器中读入新的程序块,高速缓冲存储器Cache判断原本存储的程序块的优先级是否低于新访问程序块的优先级,若是,则移动滑动窗口底端至未命中的地址,并替换存储内容为滑动窗口对应主存储器的数据块,更新自身优先级为新的数据块对应的优先级;若不是,则保持当前Cache块的窗口位置不变,Cache内容也不变。
如图2所示,为所述滑动窗口示意图,窗口大小为Cache的容量,后面的描述中假设Cache的容量为k。滑动窗口工作流程如下:
初始时,窗口的低端位置对应程序存储器的0地址,高端位置对应程序存储器的地址k;
当CPU访问程序地址y,如果y地址没有在当前Cache窗口内,则更新窗口的位置:使低端位置对应程序存储器地址y,高端位置对应程序存储器地址y+k-1;
如果CPU访问的程序地址在Cache窗口范围内,则窗口位置保持不变;
当CPU读取中断向量表时强制不更新Cache窗口位置和Cache缓存的内容。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,还提供了一种高速缓冲存储器,所述高速缓冲存储器采用所述数据替换方法进行数据替换。
本发明还提出一种计算机系统,所述计算机系统中包括所述的高速缓冲存储器。所述高速缓冲存储器采用独立的静态存储器芯片实现,或集成在CPU芯片内部。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.一种高速缓冲存储器的数据替换方法,其特征在于,包括步骤:
(1)预先对主存储器不同的地址区间定义不同的优先级标志,即对每个主存储器中的程序块定义优先级;把中断向量表地址区间的优先级定义为最低;
(2)构建与高速缓冲存储器Cache的容量k一致的滑动窗口,初始时,窗口的低端位置对应程序存储器的0地址,高端位置对应程序存储器的地址k;通过滑动窗口对应主存储器中的数据块,在高速缓冲存储器Cache中存储滑动窗口所对应的主存储器中数据块以及该数据块的优先级;
(3)若高速缓冲存储器Cache出现访问未命中,高速缓冲存储器Cache从主存储器中读入新的程序块,高速缓冲存储器Cache判断原本存储的程序块的优先级是否低于新访问程序块的优先级,若是,则移动滑动窗口底端至未命中的地址,并替换存储内容为滑动窗口对应主存储器的数据块,更新自身优先级为新的数据块对应的优先级;若不是,则保持当前Cache块的窗口位置不变,Cache内容也不变。
2.根据权利要求1所述的一种高速缓冲存储器的数据替换方法,其特征在于,所述高速缓冲存储器Cache中存储的数据和优先级可以被清除,防止高优先级程序块锁死Cache块,导致低优先级的程序块永远不能被载入Cache。
3.根据权利要求1所述的一种高速缓冲存储器的数据替换方法,其特征在于,当CPU读取中断向量表时强制不更新Cache窗口位置和Cache缓存的内容。
4.一种高速缓冲存储器,其特征在于,所述高速缓冲存储器采用如权利要求1至3任意一项所述数据替换方法进行数据替换。
5.一种计算机系统,其特征在于,所述计算机系统中包括权利要求3所述的高速缓冲存储器。
6.根据权利要求5所述一种计算机系统,其特征在于,所述高速缓冲存储器采用独立的静态存储器芯片实现,或集成在CPU芯片内部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910560597.8A CN112148640A (zh) | 2019-06-26 | 2019-06-26 | 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910560597.8A CN112148640A (zh) | 2019-06-26 | 2019-06-26 | 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148640A true CN112148640A (zh) | 2020-12-29 |
Family
ID=73869772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910560597.8A Pending CN112148640A (zh) | 2019-06-26 | 2019-06-26 | 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148640A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629720A (zh) * | 2022-12-20 | 2023-01-20 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5906000A (en) * | 1996-03-01 | 1999-05-18 | Kabushiki Kaisha Toshiba | Computer with a cache controller and cache memory with a priority table and priority levels |
US7257777B1 (en) * | 2000-07-19 | 2007-08-14 | International Business Machines Corporation | System and method for automatic control of window viewing |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
CN104063330A (zh) * | 2014-06-25 | 2014-09-24 | 华为技术有限公司 | 数据预取方法及装置 |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
CN105718386A (zh) * | 2014-12-22 | 2016-06-29 | 德克萨斯仪器股份有限公司 | 程序存储器控制器中页面窗口的本地页面转换和许可存储 |
-
2019
- 2019-06-26 CN CN201910560597.8A patent/CN112148640A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5906000A (en) * | 1996-03-01 | 1999-05-18 | Kabushiki Kaisha Toshiba | Computer with a cache controller and cache memory with a priority table and priority levels |
US7257777B1 (en) * | 2000-07-19 | 2007-08-14 | International Business Machines Corporation | System and method for automatic control of window viewing |
CN104050094A (zh) * | 2013-03-11 | 2014-09-17 | Lsi公司 | 管理高速缓存存储区的系统、方法和计算机可读介质 |
CN104063330A (zh) * | 2014-06-25 | 2014-09-24 | 华为技术有限公司 | 数据预取方法及装置 |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
CN105718386A (zh) * | 2014-12-22 | 2016-06-29 | 德克萨斯仪器股份有限公司 | 程序存储器控制器中页面窗口的本地页面转换和许可存储 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115629720A (zh) * | 2022-12-20 | 2023-01-20 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
CN115629720B (zh) * | 2022-12-20 | 2023-07-28 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10706101B2 (en) | Bucketized hash tables with remap entries | |
US10318434B2 (en) | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application | |
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其系统 | |
US9966152B2 (en) | Dedupe DRAM system algorithm architecture | |
EP2798501B1 (en) | Data migration for composite non-volatile storage device | |
US8504792B2 (en) | Methods and apparatuses to allocate file storage via tree representations of a bitmap | |
US7673105B2 (en) | Managing memory pages | |
US7962684B2 (en) | Overlay management in a flash memory storage device | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
US10496543B2 (en) | Virtual bucket multiple hash tables for efficient memory in-line deduplication application | |
CN107665095B (zh) | 存储器空间管理的设备、方法及可读存储介质 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN110196757A (zh) | 虚拟机的tlb填写方法、装置及存储介质 | |
WO2016138785A1 (zh) | 一种运行进程的方法及装置 | |
US7496722B2 (en) | Memory mapped page priorities | |
CN104504076A (zh) | 一种高并发和高空间利用率的分布式缓存方法 | |
CN110532200B (zh) | 一种基于混合内存架构的内存系统 | |
US9218294B1 (en) | Multi-level logical block address (LBA) mapping table for solid state | |
CN112148639A (zh) | 一种高效小容量高速缓冲存储器替换方法及系统 | |
CN112148640A (zh) | 一种高速缓冲存储器的替换方法、高速缓冲存储器及计算机系统 | |
CN110286859B (zh) | 基于fat文件系统的数据存储方法及装置 | |
US8356141B2 (en) | Identifying replacement memory pages from three page record lists | |
US9846653B2 (en) | Performing write operations on main memory | |
US9760488B2 (en) | Cache controlling method for memory system and cache system thereof | |
US20220147265A1 (en) | Metadata management for extent-based storage system |
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 |