CN112148639A - 一种高效小容量高速缓冲存储器替换方法及*** - Google Patents
一种高效小容量高速缓冲存储器替换方法及*** Download PDFInfo
- Publication number
- CN112148639A CN112148639A CN201910560598.2A CN201910560598A CN112148639A CN 112148639 A CN112148639 A CN 112148639A CN 201910560598 A CN201910560598 A CN 201910560598A CN 112148639 A CN112148639 A CN 112148639A
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- address
- sliding window
- data
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000008569 process Effects 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 abstract description 22
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000694 effects Effects 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
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
本发明提出一种高效小容量高速缓冲存储器替换方法及***,本发明把整个高速缓冲存储器当成一个块,并采用滑动窗口的方式映射和替换高速缓冲存储器,即高速缓冲存储器和主程序存储器的映射位置随着程序执行的过程不断变化。采用本发明所设计的高效小容量高速缓冲存储器替换方法能适应各种结构的程序,并提高命中率。
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提供一种合适的数据替换和映射方式,本发明提出一种高效小容量高速缓冲存储器替换方法及***。本发明把整个高速缓冲存储器当成一个块,并采用滑动窗口的方式映射和替换高速缓冲存储器,即高速缓冲存储器和主程序存储器的映射位置随着程序执行的过程不断变化。
技术方案:为实现上述技术效果,本发明提出以下技术方案:
一种高效小容量高速缓冲存储器替换方法,包括步骤:
(1)构建滑动窗口,滑动窗口的大小与高速缓冲存储器的容量K一致;初始时,滑动窗口的最低位对应主程序存储器的起始地址0,最高位对应主程序存储器的地址K-1,将滑动窗口对应的数据块缓存到高速缓冲存储器;
(2)在程序运行过程中,若CPU访问程序时高速缓冲存储器出现访问未命中,则CPU直接读与主程序存储器中的相应数据,同时,滑动窗口最低位更新至未命中的地址,替换高速缓冲存储器的存储内容为滑动窗口对应的主程序存储器的数据块;若未出现访问未命中,则保持高速缓冲存储器当前的存储内容不变,滑动窗口的位置也不变,CPU从高速缓冲存储器中读取数据;
(3)当CPU读取中断向量表时,即使中断向量表在主程序存储器中的地址不在当前滑动窗口范围内,也强制不更新滑动窗口位置和高速缓冲存储器缓存的内容。
本发明还提出一种用于实现所述高效小容量高速缓冲存储器替换方法的***,包括:CPU接口访问电路、高速缓存命中判断电路、高速缓存数据更新电路、高速缓冲存储器、主程序存储器;其中,
高速缓冲存储器包括填充标志寄存器和窗口位置地址寄存器,填充标志寄存器用来标识高速缓冲存储器里面的寄存器字存储的内容是否为有效数据,每一位标识一个寄存器字,填充标志寄存器的位宽为K,窗口位置地址寄存器用来存储窗口最低位置对应的程序存储器的地址;
高速缓存命中判断电路通过CPU接口访问电路获取CPU当前访问的程序地址,然后向高速缓冲存储器发送读缓存请求信号,高速缓冲存储器向高速缓存命中判断电路反馈缓存返回数据;高速缓存命中判断电路根据缓存返回数据判断是否命中,若未命中,则向高速缓存数据更新电路发出窗口更新请求,高速缓存数据更新电路更新滑动窗口最低位至未命中的地址,并向高速缓存命中判断电路回复更新后的滑动窗口地址信息;滑动窗口位置更新后,高速缓存数据更新电路向高速缓冲存储器发送窗口控制信号,使高速缓冲存储器中缓存的内容清空;同时,高速缓存数据更新电路向主程序存储器发送请求信号,主程序存储器将滑动窗口所对应的数据快缓存至高速缓冲存储器,此时,填充标志寄存器和窗口位置地址寄存器中的内容更新。
有益效果:与现有技术相比,本发明具有以下优势:
当采用小容量高速缓冲存储时,能适应各种结构的程序,并提高命中率。
附图说明
图1 为本发明所述高速缓冲存储器的数据替换的原理示意图;
图2为高效小容量高速缓冲存储器替换***的整体功能框架图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明所述高速缓冲存储器的数据替换包括如下的步骤(1)至步骤(3):
(1)构建滑动窗口,滑动窗口的大小与高速缓冲存储器的容量K一致;初始时,滑动窗口的最低位对应主程序存储器的起始地址0,最高位对应主程序存储器的地址K-1,将滑动窗口对应的数据块缓存到高速缓冲存储器;
(2)在程序运行过程中,若CPU访问程序时高速缓冲存储器出现访问未命中,则CPU直接读与主程序存储器中的相应数据,同时,滑动窗口最低位更新至未命中的地址,替换高速缓冲存储器的存储内容为滑动窗口对应的主程序存储器的数据块;若未出现访问未命中,则保持高速缓冲存储器当前的存储内容不变,滑动窗口的位置也不变,CPU从高速缓冲存储器中读取数据;
(3)当CPU读取中断向量表时,即使中断向量表在主程序存储器中的地址不在当前滑动窗口范围内,也强制不更新滑动窗口位置和高速缓冲存储器缓存的内容。
如图1所示,为所述高速缓冲存储器的数据替换的原理示意图,高速缓冲存储器包括填充标志寄存器和窗口位置地址寄存器,填充标志寄存器用来标识高速缓冲存储器里面的寄存器字存储的内容是否为有效数据,每一位标识一个寄存器字,填充标志寄存器的位宽为K,窗口位置地址寄存器用来存储窗口最低位置对应的程序存储器的地址;滑动窗口大小为高速缓冲存储器的容量,也就是K。滑动窗口工作流程如下:
1、初始时,窗口的最低位对应主程序存储器的0地址,最高位对应主程序存储器(大容量程序存储器)的地址K-1;然后将主程序存储器中地址0到K-1这部分数据块的内容缓存到高速缓冲存储器;
2、在程序运行过程中,如果当前窗口位于大容量程序存储器地址x开始的位置,这时如果CPU访问程序地址y,同时y地址没有在当前窗口范围内,则更新窗口的位置到大容量程序存储器地址y开始的位置,使高速缓冲存储器的最低位对应大容量程序存储器地址y,最高位对应大容量程序存储器地址y+K-1。当窗口位置从x变到y时,高速缓冲存储器的窗口位置寄存器的值也由x更新为y。这里的x地址和y地址都可以不是K的整数倍,在一般的高速缓冲存储器映射方式中,要求x,y为K的整数倍,这样当高速缓冲存储器容量较小时会降低高速缓冲存储器的命中率。
3、如果CPU访问的程序地址在当前窗口范围内,则窗口位置保持不变。如果CPU访问的程序地址的值已经存储器在高速缓冲存储器中,则从高速缓冲存储器返回值到CPU;如果CPU访问的程序地址的值还没有载入到高速缓冲存储器,则从大容量程序存储器读取数据返回给CPU,同时存储到高速缓冲存储器中。
4、如果窗口位置发生变化,清空高速缓冲存储器中的内容,同时更新填充标志寄存器和窗口位置地址寄存器。
5、当CPU读取中断向量表时,即使中断向量表在大容量程序存储器中的地址不在当前窗口范围内,也强制不更新窗口位置和高速缓冲存储器缓存的内容。这是因为CPU访问中断向量表一般没有连续性,此时不更新高速缓存可以提高命中率同时降低功耗开销。
图2所示为一种用于实现所述的高效小容量高速缓冲存储器替换方法的电路结构,包括:CPU接口访问电路、高速缓存命中判断电路、高速缓存数据更新电路、高速缓冲存储器、主程序存储器;其中,
高速缓冲存储器包括填充标志寄存器和窗口位置地址寄存器,填充标志寄存器用来标识高速缓冲存储器里面的寄存器字存储的内容是否为有效数据,每一位标识一个寄存器字,填充标志寄存器的位宽为K,窗口位置地址寄存器用来存储窗口最低位置对应的程序存储器的地址;
高速缓存命中判断电路通过CPU接口访问电路获取CPU当前访问的程序地址,然后向高速缓冲存储器发送读缓存请求信号,高速缓冲存储器向高速缓存命中判断电路反馈缓存返回数据;高速缓存命中判断电路根据缓存返回数据判断是否命中,若未命中,则向高速缓存数据更新电路发出窗口更新请求,高速缓存数据更新电路更新滑动窗口最低位至未命中的地址,并向高速缓存命中判断电路回复更新后的滑动窗口地址信息;滑动窗口位置更新后,高速缓存数据更新电路向高速缓冲存储器发送窗口控制信号,使高速缓冲存储器中缓存的内容清空;同时,高速缓存数据更新电路向主程序存储器发送请求信号,主程序存储器将滑动窗口所对应的数据快缓存至高速缓冲存储器,此时,填充标志寄存器和窗口位置地址寄存器中的内容更新。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (2)
1.一种高效小容量高速缓冲存储器替换方法,其特征在于,包括步骤:
(1)构建滑动窗口,滑动窗口的大小与高速缓冲存储器的容量K一致;初始时,滑动窗口的最低位对应主程序存储器的起始地址0,最高位对应主程序存储器的地址K-1,将滑动窗口对应的数据块缓存到高速缓冲存储器;
(2)在程序运行过程中,若CPU访问程序时高速缓冲存储器出现访问未命中,则CPU直接读与主程序存储器中的相应数据,同时,滑动窗口最低位更新至未命中的地址,替换高速缓冲存储器的存储内容为滑动窗口对应的主程序存储器的数据块;若未出现访问未命中,则保持高速缓冲存储器当前的存储内容不变,滑动窗口的位置也不变,CPU从高速缓冲存储器中读取数据;
(3)当CPU读取中断向量表时,即使中断向量表在主程序存储器中的地址不在当前滑动窗口范围内,也强制不更新滑动窗口位置和高速缓冲存储器缓存的内容。
2.一种用于实现权利要求1所述的高效小容量高速缓冲存储器替换方法的***,其特征在于,包括:CPU接口访问电路、高速缓存命中判断电路、高速缓存数据更新电路、高速缓冲存储器、主程序存储器;其中,
高速缓冲存储器包括填充标志寄存器和窗口位置地址寄存器,填充标志寄存器用来标识高速缓冲存储器里面的寄存器字存储的内容是否为有效数据,每一位标识一个寄存器字,填充标志寄存器的位宽为K,窗口位置地址寄存器用来存储窗口最低位置对应的程序存储器的地址;
高速缓存命中判断电路通过CPU接口访问电路获取CPU当前访问的程序地址,然后向高速缓冲存储器发送读缓存请求信号,高速缓冲存储器向高速缓存命中判断电路反馈缓存返回数据;高速缓存命中判断电路根据缓存返回数据判断是否命中,若未命中,则向高速缓存数据更新电路发出窗口更新请求,高速缓存数据更新电路更新滑动窗口最低位至未命中的地址,并向高速缓存命中判断电路回复更新后的滑动窗口地址信息;滑动窗口位置更新后,高速缓存数据更新电路向高速缓冲存储器发送窗口控制信号,使高速缓冲存储器中缓存的内容清空;同时,高速缓存数据更新电路向主程序存储器发送请求信号,主程序存储器将滑动窗口所对应的数据快缓存至高速缓冲存储器,此时,填充标志寄存器和窗口位置地址寄存器中的内容更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910560598.2A CN112148639A (zh) | 2019-06-26 | 2019-06-26 | 一种高效小容量高速缓冲存储器替换方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910560598.2A CN112148639A (zh) | 2019-06-26 | 2019-06-26 | 一种高效小容量高速缓冲存储器替换方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148639A true CN112148639A (zh) | 2020-12-29 |
Family
ID=73869778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910560598.2A Pending CN112148639A (zh) | 2019-06-26 | 2019-06-26 | 一种高效小容量高速缓冲存储器替换方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148639A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010419A (zh) * | 2021-03-05 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种risc处理器的程序执行方法及相关装置 |
CN115629720A (zh) * | 2022-12-20 | 2023-01-20 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040054853A1 (en) * | 2002-09-16 | 2004-03-18 | Sprangle Eric A. | Prefetching data in a computer system |
CN104063330A (zh) * | 2014-06-25 | 2014-09-24 | 华为技术有限公司 | 数据预取方法及装置 |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
CN104217019A (zh) * | 2014-09-25 | 2014-12-17 | 中国人民解放军信息工程大学 | 基于多级缓存模块的内容查询方法和装置 |
CN104486442A (zh) * | 2014-12-29 | 2015-04-01 | 成都致云科技有限公司 | 分布式存储***的数据传输方法、装置 |
CN105718386A (zh) * | 2014-12-22 | 2016-06-29 | 德克萨斯仪器股份有限公司 | 程序存储器控制器中页面窗口的本地页面转换和许可存储 |
CN106294832A (zh) * | 2016-08-18 | 2017-01-04 | 乐视控股(北京)有限公司 | 浏览器页面缓存处理方法及装置 |
-
2019
- 2019-06-26 CN CN201910560598.2A patent/CN112148639A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040054853A1 (en) * | 2002-09-16 | 2004-03-18 | Sprangle Eric A. | Prefetching data in a computer system |
CN104063330A (zh) * | 2014-06-25 | 2014-09-24 | 华为技术有限公司 | 数据预取方法及装置 |
CN104156323A (zh) * | 2014-08-07 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 |
CN104217019A (zh) * | 2014-09-25 | 2014-12-17 | 中国人民解放军信息工程大学 | 基于多级缓存模块的内容查询方法和装置 |
CN105718386A (zh) * | 2014-12-22 | 2016-06-29 | 德克萨斯仪器股份有限公司 | 程序存储器控制器中页面窗口的本地页面转换和许可存储 |
CN104486442A (zh) * | 2014-12-29 | 2015-04-01 | 成都致云科技有限公司 | 分布式存储***的数据传输方法、装置 |
CN106294832A (zh) * | 2016-08-18 | 2017-01-04 | 乐视控股(北京)有限公司 | 浏览器页面缓存处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
吴志刚, 冯丹, 张江陵: "基于RAID的适度贪婪并行预取技术", 计算机工程, no. 18, 20 September 2003 (2003-09-20), pages 164 - 165 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113010419A (zh) * | 2021-03-05 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种risc处理器的程序执行方法及相关装置 |
CN115629720A (zh) * | 2022-12-20 | 2023-01-20 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
CN115629720B (zh) * | 2022-12-20 | 2023-07-28 | 鹏钛存储技术(南京)有限公司 | 基于闪存为介质的存储设备上的非对称条带化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055230B2 (en) | Logical to physical mapping | |
US10019369B2 (en) | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
US8935484B2 (en) | Write-absorbing buffer for non-volatile memory | |
US6782453B2 (en) | Storing data in memory | |
US11726712B2 (en) | Memory system with write modes based on an internal state of a memory controller | |
US9792221B2 (en) | System and method for improving performance of read/write operations from a persistent memory device | |
US20130091331A1 (en) | Methods, apparatus, and articles of manufacture to manage memory | |
CN101689146B (zh) | 分层的高速缓存标签架构 | |
CN111858404B (zh) | 地址转换的方法和***、以及计算机可读介质 | |
CN110196757A (zh) | 虚拟机的tlb填写方法、装置及存储介质 | |
US7197605B2 (en) | Allocating cache lines | |
CN112540939A (zh) | 存储管理装置、存储管理方法、处理器和计算机*** | |
CN106354664A (zh) | 一种固态硬盘数据传输方法及装置 | |
US20220398198A1 (en) | Tags and data for caches | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
CN107562806B (zh) | 混合内存文件***的自适应感知加速方法及*** | |
CN112148639A (zh) | 一种高效小容量高速缓冲存储器替换方法及*** | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和*** | |
US9218294B1 (en) | Multi-level logical block address (LBA) mapping table for solid state | |
CN108664217B (zh) | 一种降低固态盘存储***写性能抖动的缓存方法及*** | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
CN110968527B (zh) | Ftl提供的缓存 | |
CN110162268A (zh) | 利用实时计算用于逐分块数据组织和放置的方法和*** | |
US20220358051A1 (en) | Non-volatile storage controller with partial logical-to-physical (l2p) address translation table |
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 |