CN108132893A - 一种支持流水的常量Cache - Google Patents
一种支持流水的常量Cache Download PDFInfo
- Publication number
- CN108132893A CN108132893A CN201711280911.4A CN201711280911A CN108132893A CN 108132893 A CN108132893 A CN 108132893A CN 201711280911 A CN201711280911 A CN 201711280911A CN 108132893 A CN108132893 A CN 108132893A
- Authority
- CN
- China
- Prior art keywords
- cache
- module
- hit
- memory
- constant
- 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
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及计算机硬件技术领域,尤其涉及一种支持流水的常量Cache,包含:PLRU算法模块2根据各个Cache块的历史访问信息,产生要更新的Cache块地址,发送给标签控制模块1;标签控制模块1用来判断当前的cache请求是否命中,并将判断结果发送至PLRU算法模块2,若命中,则直接从存储器模块4中读取内存映射到常量Cache中的数据,返回给请求发起方;如若未命中,则将参数地址缓存至FIFO模块3,等待从内存中取回数据后,根据所述要更新的Cache块地址将所述数据写入存储器模块4,再从FIFO模块3中读出所述参数地址处理;FIFO模块3用来存储没有命中的参数地址;存储器模块4用于存放映射到常量Cache中的数据,以待命中常量Cache后的读取。
Description
技术领域
本发明涉及计算机硬件技术领域,尤其涉及一种支持流水的常量Cache。
背景技术
随着计算机系统的迅速发展,现代计算机系统越来越受主存储器性能的限制。处理器的性能以每年60%的速度在增长,而主存储器芯片带宽仅仅以每年10%的速度在增长。在速度方面,主存储器和处理器一直保持了大约一个数量级的差距。由于CPU和存储器的速度差距越来越大,于是出现了Cache,介于CPU与主存之间,他的存取速度接近于CPU速度,但是容量小,价格高昂。
Cache的出现是一种无奈的妥协,也成为了影响系统性能的关键因素之一。如今嵌入式系统正成为计算机工业中的重要组成部分,在汽车电子、音视频处理、工业自动化等领域都有着广泛的应用。嵌入式系统的一个重要特征就是它的实时性,需要对数据进行实时的传输和处理,因此对于cache结构的组织和设计也有着更高的要求。如果一次访存的数据在cache中命中,那么只需要1或2个处理器周期就能够得到数据;但如果所需要的数据不在cache中,那么往往需要高一个数量级的处理器周期来得到数据。
所以,设计实现高性能指令Cache有着深远意义。
发明内容
本发明公开了一种支持流水的常量Cache,不但能够提升命中概率,还能在保证性能的情况下,简化常量Cache的设计难度。
本发明的技术解决方案是:
一种支持流水的常量Cache,包含标签控制模块1、PLRU算法模块2、FIFO模块3和存储器模块4;
所述的PLRU算法模块2根据各个Cache块的历史访问信息,产生要更新的Cache块地址,发送给标签控制模块1;
所述的标签控制模块1用来判断当前的cache请求是否命中,并将判断结果发送至PLRU算法模块2,若命中,则直接从存储器模块4中读取内存映射到常量Cache中的数据,返回给请求发起方;如若未命中,则将参数地址缓存至FIFO模块3,等待从内存中取回数据后,根据所述要更新的Cache块地址将所述数据写入存储器模块4,再从FIFO模块3中读出所述参数地址处理;
所述的FIFO模块3用来存储没有命中的参数地址;
所述的存储器模块4用于存放映射到常量Cache中的数据,以待命中常量Cache后的读取。
映射采用二路组相联的地址映射方式。
所述二路组相联映射方式将参数地址空间按照Cache大小等分成区,再将Cache空间与参数地址空间中的每一个区等分成大小相同的组。
本发明的技术效果是:
通常来讲,已有的Cache设计实现方案多是通过增大Cache的容量或者优化替换算法等以减小Cache的缺失率。考虑到Cache容量增加带来的成本问题,以及指令Cache在整个处理器运行中所处的重要地位,本发明通过优化替换算法、优化标签控制逻辑、支持流水操作、采用组相联的地址映射方式,在不增加Cache容量的前提下提升性能,控制成本,还一定程度上降低了设计难度。
附图说明
图1是本发明结构示意图;
图2是本发明一种支持流水的常量Cache的设计实现结构图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其它实施例,都属于本发明的保护范围。
一种支持流水的常量Cache,如图1所示,包含标签控制模块1、PLRU算法模块2、FIFO模块3和存储器模块4;
所述PLRU算法模块2,是利用访问Cache块的历史信息来预测未来的数据使用情况,产生要更新的Cache块地址,发送给标签控制模块1,将最长时间内没有被访问的Cache块替换掉。相较于LRU算法,本预测算法相对简单,简化了设计复杂度。
所述的标签控制模块1用来判断当前的cache请求是否命中,并将判断结果发送至PLRU算法模块2,若命中,则直接从存储器模块4中读取内存映射到常量Cache中的数据,返回给请求发起方;如若未命中,则将参数地址缓存至FIFO模块3,等待从内存中取回数据后,根据所述要更新的Cache块地址将所述数据写入存储器模块4,再从FIFO模块3中读出所述参数地址处理。
所述的FIFO模块3用来存储没有命中的参数地址;当检测到FIFO非空时,逻辑会读出FIFO中的参数访问地址,进行第二次的cache命中检测,若命中,则直接访问存储器模块读取数据并返回;若不命中,则向参数空间发出读请求并等待返回数据。对于未直接命中的请求,进行了两次比较,增加了命中概率,提升了Cache性能;
所述的存储器模块4用于存放映射到常量Cache中的数据,以待命中常量Cache后的读取。
映射采用二路组相联的地址映射方式。
所述二路组相联映射方式将参数地址空间按照Cache大小等分成区,再将Cache空间与参数地址空间中的每一个区等分成大小相同的组,这样参数地址空间各区中某一组均可以直接映射装入Cache对应组的对应位置上。这种映射方式较为灵活,Cache块冲突概率较低、空间利用率较高,实现难度较低。
实施例
如图1所示,当常数Cache接收到参数请求时,标签控制模块会将参数请求的地址与标签寄存器中保存的映射地址进行比较,如若命中,则直接从存储器中读取数据,返回给请求方;如若未命中,则将该请求保存至FIFO中。一旦检测到FIFO模块非空,标签寄存器模块就会读取FIFO,进行第二次比较,若仍未命中,则产生对参数空间的读请求,待读回数据后,根据PLRU算法产生的更新地址,更新相应的存储器和标签寄存器。在进行上述过程时,Cache仍可接收参数请求,未命中的请求将保存在FIFO中,等候处理。
而对于PLRU模块,通过使用MRU(Most Recently Used)位来标记每个组每个Cache块的历史访问情况,Cache中的块与参数空间中的每个区每个组中的块按相对地址一一对应,当需要进行Cache替换时,选择在相对地址相同的Cache块中进行更新,再根据历史访问情况,选择最长时间未被访问的Cache块进行替换。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (3)
1.一种支持流水的常量Cache,其特征在于:包含标签控制模块(1)、PLRU算法模块(2)、FIFO模块(3)和存储器模块(4);
所述的PLRU算法模块(2)根据各个Cache块的历史访问信息,产生要更新的Cache块地址,发送给标签控制模块(1);
所述的标签控制模块(1)用来判断当前的cache请求是否命中,并将判断结果发送至PLRU算法模块(2),若命中,则直接从存储器模块(4)中读取内存映射到常量Cache中的数据,返回给请求发起方;如若未命中,则将参数地址缓存至FIFO模块(3),等待从内存中取回数据后,根据所述要更新的Cache块地址将所述数据写入存储器模块(4),再从FIFO模块(3)中读出所述参数地址处理;
所述的FIFO模块(3)用来存储没有命中的参数地址;
所述的存储器模块(4)用于存放映射到常量Cache中的数据,以待命中常量Cache后的读取。
2.根据权利要求1所述的支持流水的常量Cache,其特征在于:映射采用二路组相联的地址映射方式。
3.根据权利要求2所述的支持流水的常量Cache,其特征在于:所述二路组相联映射方式将参数地址空间按照Cache大小等分成区,再将Cache空间与参数地址空间中的每一个区等分成大小相同的组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711280911.4A CN108132893A (zh) | 2017-12-06 | 2017-12-06 | 一种支持流水的常量Cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711280911.4A CN108132893A (zh) | 2017-12-06 | 2017-12-06 | 一种支持流水的常量Cache |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108132893A true CN108132893A (zh) | 2018-06-08 |
Family
ID=62389077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711280911.4A Pending CN108132893A (zh) | 2017-12-06 | 2017-12-06 | 一种支持流水的常量Cache |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108132893A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990299A (zh) * | 2020-03-03 | 2020-04-10 | 江苏华创微系统有限公司 | 非规整组相联cache组地址映射方法 |
CN111045960A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多像素格式存储的Cache电路 |
CN111414321A (zh) * | 2020-02-24 | 2020-07-14 | 中国农业大学 | 一种基于动态映射机制的cache防护方法及装置 |
CN112579482A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN113835673A (zh) * | 2021-09-24 | 2021-12-24 | 苏州睿芯集成电路科技有限公司 | 一种用于降低多核处理器加载延时的方法、系统及装置 |
CN117132446A (zh) * | 2023-05-26 | 2023-11-28 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
CN117217977A (zh) * | 2023-05-26 | 2023-12-12 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488461A (zh) * | 2012-06-12 | 2014-01-01 | 国际商业机器公司 | 使用快速索引树实现加速分支预测的系统和方法 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
CN104426770A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN104636268A (zh) * | 2013-11-08 | 2015-05-20 | 上海芯豪微电子有限公司 | 一种可重构缓存组织结构 |
CN104834607A (zh) * | 2015-05-19 | 2015-08-12 | 华中科技大学 | 一种提高分布式缓存的命中率并减少固态硬盘磨损的方法 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN105843664A (zh) * | 2016-04-20 | 2016-08-10 | 中国工程物理研究院计算机应用研究所 | 一种动态二进制翻译中基于代码热度的翻译缓存管理方法 |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN107221351A (zh) * | 2017-05-27 | 2017-09-29 | 华中科技大学 | 一种固态盘系统中纠错码的优化处理方法及其应用 |
-
2017
- 2017-12-06 CN CN201711280911.4A patent/CN108132893A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488461A (zh) * | 2012-06-12 | 2014-01-01 | 国际商业机器公司 | 使用快速索引树实现加速分支预测的系统和方法 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
CN104426770A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 路由查找方法及装置、B-Tree树结构的构建方法 |
CN104636268A (zh) * | 2013-11-08 | 2015-05-20 | 上海芯豪微电子有限公司 | 一种可重构缓存组织结构 |
CN104834607A (zh) * | 2015-05-19 | 2015-08-12 | 华中科技大学 | 一种提高分布式缓存的命中率并减少固态硬盘磨损的方法 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN105843664A (zh) * | 2016-04-20 | 2016-08-10 | 中国工程物理研究院计算机应用研究所 | 一种动态二进制翻译中基于代码热度的翻译缓存管理方法 |
CN106844232A (zh) * | 2016-12-23 | 2017-06-13 | 北京北大众志微系统科技有限责任公司 | 一种面向多核处理器的共享末级高速缓存访存方法和装置 |
CN107221351A (zh) * | 2017-05-27 | 2017-09-29 | 华中科技大学 | 一种固态盘系统中纠错码的优化处理方法及其应用 |
Non-Patent Citations (1)
Title |
---|
刘和平等: "《32位单片机原理及应用: 基于PIC32MX1XX/2XX 系列 便携式实验开发版》", 31 January 2014 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045960A (zh) * | 2019-11-21 | 2020-04-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多像素格式存储的Cache电路 |
CN111045960B (zh) * | 2019-11-21 | 2023-06-13 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多像素格式存储的Cache电路 |
CN111414321A (zh) * | 2020-02-24 | 2020-07-14 | 中国农业大学 | 一种基于动态映射机制的cache防护方法及装置 |
CN110990299A (zh) * | 2020-03-03 | 2020-04-10 | 江苏华创微系统有限公司 | 非规整组相联cache组地址映射方法 |
CN112579482A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN112579482B (zh) * | 2020-12-05 | 2022-10-21 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN113835673A (zh) * | 2021-09-24 | 2021-12-24 | 苏州睿芯集成电路科技有限公司 | 一种用于降低多核处理器加载延时的方法、系统及装置 |
CN113835673B (zh) * | 2021-09-24 | 2023-08-11 | 苏州睿芯集成电路科技有限公司 | 一种用于降低多核处理器加载延时的方法、系统及装置 |
CN117132446A (zh) * | 2023-05-26 | 2023-11-28 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
CN117217977A (zh) * | 2023-05-26 | 2023-12-12 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
CN117217977B (zh) * | 2023-05-26 | 2024-07-19 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
CN117132446B (zh) * | 2023-05-26 | 2024-07-23 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132893A (zh) | 一种支持流水的常量Cache | |
US11074190B2 (en) | Slot/sub-slot prefetch architecture for multiple memory requestors | |
US6542968B1 (en) | System and method for managing data in an I/O cache | |
KR100578436B1 (ko) | 내용 인식 프리페처의 후보 가상 주소 식별 방법 및 장치 | |
EP1573555B1 (en) | Page descriptors for prefetching and memory management | |
WO2007068122A1 (en) | System and method for cache management | |
EP1388065A2 (en) | Method and system for speculatively invalidating lines in a cache | |
KR20160141735A (ko) | 캐시 오염을 감소시키기 위해서 전용 캐시 세트들에서의 경합 전용 프리페치 정책들에 기초한 적응형 캐시 프리페칭 | |
CN113407119B (zh) | 数据预取方法、数据预取装置、处理器 | |
CN112416437B (zh) | 信息处理方法、信息处理装置和电子设备 | |
US12099451B2 (en) | Re-reference interval prediction (RRIP) with pseudo-LRU supplemental age information | |
US11599483B2 (en) | Dedicated cache-related block transfer in a memory system | |
US20030105939A1 (en) | Method and apparatus for next-line prefetching from a predicted memory address | |
CN112840331A (zh) | 分层缓存系统中的预取管理 | |
CN112840330A (zh) | 指令高速缓存中的预取终止和恢复 | |
CN112416436B (zh) | 信息处理方法、信息处理装置和电子设备 | |
KR20100005539A (ko) | 캐시 메모리 시스템 및 캐시의 프리페칭 방법 | |
CN108255744A (zh) | 一种全相联指令Cache | |
US7797492B2 (en) | Method and apparatus for dedicating cache entries to certain streams for performance optimization | |
US20210073132A1 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
US11762777B2 (en) | Method and apparatus for a dram cache tag prefetcher | |
JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
US20220100653A1 (en) | Page table walker with page table entry (pte) physical address prediction | |
CN111045960B (zh) | 一种多像素格式存储的Cache电路 | |
CN117971731A (zh) | Lru近似算法的硬件实现装置、lru值的更新方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180608 |
|
RJ01 | Rejection of invention patent application after publication |