CN117271394A - 一种基于地址存储和搜索的cache读缺失处理方法 - Google Patents
一种基于地址存储和搜索的cache读缺失处理方法 Download PDFInfo
- Publication number
- CN117271394A CN117271394A CN202311548682.5A CN202311548682A CN117271394A CN 117271394 A CN117271394 A CN 117271394A CN 202311548682 A CN202311548682 A CN 202311548682A CN 117271394 A CN117271394 A CN 117271394A
- Authority
- CN
- China
- Prior art keywords
- cache
- address
- write
- search
- 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
- 238000003672 processing method Methods 0.000 title abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 2
- 230000000903 blocking effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004075 alteration Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002123 temporal effect Effects 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/0877—Cache access modes
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/0893—Caches characterised by their organisation or structure
Abstract
本发明公开一种基于地址存储和搜索的cache读缺失处理方法,属于高速缓存和缓存一致性领域。该方法采用一种地址存储器记录所有cache写回缓冲中的脏缓存行物理地址,当CPU读cache缺失时,将缺失的缓存行物理地址在地址存储器存储的脏缓存行物理地址中进行搜索,若搜索成功则返回该结果给cache控制器,CPU等待写回缓冲将该脏缓存行数据写回到主存中,再从主存中读取缓存行数据;若搜索失败则反回该结果给cache控制器,CPU无需等待写回缓冲将脏缓存行数据写回主存中,直接从主存读取缓存行数据。该方法可以避免可能出现的读取数据错误和降低CPU读cache缺失时的阻塞延迟。
Description
技术领域
本发明涉及高速缓存和缓存一致性技术领域,特别涉及一种基于地址存储和搜索的cache读缺失处理方法。
背景技术
CPU缓存(cache)是位于CPU与内存之间的临时存储器,它的容量比内存小但访问速度快。在cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从cache中调用,从而加快读取速度。
实践表明,程序执行存在时间局部性和空间局部性。时间局部性即内存中最近访问的内容很可能在短期内被再次访问;空间局部性即内存中地址相邻的内容很可能在相近的时间被用到。因为cache访问速度远快于内存,可以将符合这两个局部性原理的数据从内存取到cache中从而加快CPU访问数据的速度。
在多核CPU中,由于存在多个CPU先后处理同一个数据的情况,特别容易出现同一个地址的数据在cache和内存中不一致,这会导致访问出错,因此要保证cache和内存数据的一致性。一种保持cache和内存数据一致性的方法是cache写回,在需要替换cache中的缓存行时将脏缓存行写回到内存中,由于CPU访问内存速度比较慢,因此写回型cache通常有一个写回缓冲用来存储要写回内存的脏缓存行,在适当的时机一次性写入内存,来避免对内存的多次写入和降低延迟。
由于带有写回缓冲的写回型cache,只在脏缓存行需要被替换时才将脏缓存行写回内存,并且不是直接写回内存而是写入一个写回缓冲,所以会存在CPU读cache缺失从而去内存读数据,但需要的最新数据在写回缓冲还没写入内存的情况,导致CPU从内存中读到错误的数据。传统的解决方法是等待写回缓冲写入内存并清空后CPU才去内存读数据来保证能从内存中读到最新数据,但是如果需要的最新数据不在写回缓冲中,就会导致不必要的阻塞和延迟。
发明内容
本发明的目的在于提供一种基于地址存储和搜索的cache读缺失处理方法,以解决目前可能出现的读数据错误和改善带有写回缓冲的写回型cache读cache缺失造成的等待写回缓冲数据写入内存延迟的问题。
为解决上述技术问题,本发明提供了一种基于地址存储和搜索的cache读缺失处理方法,基于一种地址存储器,对于写回型cache,优化CPU读cache缺失时从主存读取数据的操作,
该方法包括以下步骤:
使用一种地址存储器记录写回缓冲中所有脏缓存行的物理地址;
当CPU读cache不命中即缺失时,将该缺失的缓存行物理地址在地址存储器存储的脏缓存行物理地址中进行搜索;
若搜索成功,即地址存储器中存有和缺失缓存行相同的地址,地址存储器返回搜索成功结果给cache控制器,CPU等待写回缓冲将其中脏缓存行数据全部写回到主存中,再从主存中读取该缓存行数据;
若搜索失败,即地址存储器中没有和缺失缓存行相同的地址,地址存储器返回搜索失败结果给cache控制器,CPU不用等待写回缓冲将其中脏缓存行数据写回主存,直接从主存中读取该缓存行数据。
在一种实施方式中,所述写回型cache,为了保证cache一致性和写回效率,在cache替换脏缓存行时才会将脏缓存行写入写回缓冲。
在一种实施方式中,所述写回缓冲是一个深度小于等于cache中缓存行总数,宽度等于缓存行总位宽的FIFO,在适当的时机将其中脏缓存行数据一次性写回主存。
在一种实施方式中,所述地址存储器具有低延迟、输入输出和搜索功能的存储器,内部包括存储单元、判断逻辑单元和搜索逻辑单元。
在一种实施方式中,所述存储单元由SRAM构成,存储数据位宽等于缓存行物理地址位宽,完成缓存行物理地址数据的存储工作。
在一种实施方式中,所述判断逻辑单元接收cache控制器发送过来的缓存行物理地址,cache控制器给该地址加上一位判断位,从而判断逻辑单元判断该地址是写回缓存中的脏缓存行地址还是CPU读cache缺失地址;如果是脏缓存行地址,则去掉判断位存入到存储单元中;如果是CPU读cache缺失地址,则去掉判断位发送到搜索逻辑单元。
在一种实施方式中,所述搜索逻辑单元接收从判断逻辑单元发送过来的CPU读cache缺失地址,使用该地址搜索存储单元中的地址,如果搜索到则向cache控制器发送对比成功的结果;如果没有搜索到则向cache控制器发送对比失败结果。
在一种实施方式中,所述搜索逻辑单元由NMOS管构成,能够快速进行数据的搜索。
本发明提供的一种基于地址存储和搜索的cache读缺失处理方法,该方法采用一种地址存储器记录所有cache写回缓冲中的脏缓存行物理地址,当CPU读cache缺失时,将缺失的缓存行物理地址在地址存储器存储的脏缓存行物理地址中进行搜索,若搜索成功则返回该结果给cache控制器,CPU等待写回缓冲将该脏缓存行数据写回到主存中,再从主存中读取缺失缓存行;若搜索失败则反回该结果给cache控制器,CPU无需等待写回缓冲将脏缓存行数据写回主存中,直接从主存读取缺失缓存行。该方法可以避免可能出现的读取数据错误和降低CPU读cache缺失时的阻塞延迟。
附图说明
图1为本发明的具体实施例框图;
图2为本发明的写回缓冲结构示意图;
图3为本发明的地址存储器功能框图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种基于地址存储和搜索的cache读缺失处理方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
本发明提供一种基于地址存储和搜索的cache读缺失处理方法,基于地址存储器,对于写回型cache,优化CPU读cache缺失时从主存读取数据的操作。
如图1所示为本实施例的框图,本发明的方法包括以下步骤:
本发明基于如图2所示的一种地址存储器,使用一种地址存储器记录图3写回缓冲中所有脏缓存行的物理地址;
当CPU读cache不命中即缺失时,将该缺失的缓存行物理地址在地址存储器存储的脏缓存行物理地址中进行搜索;
若搜索成功,即地址存储器中存有和缺失缓存行相同的地址,地址存储器返回搜索成功结果给cache控制器,CPU等待写回缓冲将其中脏缓存行数据全部写回到主存中,再从主存中读取该缓存行数据;
若搜索失败,即地址存储器中没有和缺失缓存行相同的地址,存储器返回搜索失败结果给cache控制器,CPU不用等待写回缓冲将其中脏缓存行数据写回主存,直接从主存中读取该缓存行数据。
具体的,对上述方法步骤进一步解释如下:
每当cache控制器将对应cache的缓存行替换时,若该缓存行为脏,则需要将该缓存行写入到写回缓冲,同时将该缓存行的物理地址加上一位判断位写入地址存储器,地址存储器的判断逻辑单元会将根据判断位将该地址判断为脏缓存行地址,并去掉判断位后存入存储单元中,即地址存储器中存有写回缓冲中所有需要写回到内存的脏缓存行的物理地址。
当CPU读cache缺失时,即读cache不命中需要从主存中取数据。cache控制器将该缺失缓存行物理地址加上一位判断位写入地址存储器,地址存储器判断逻辑单元会根据判读位将该地址判断为CPU读cache缺失地址,并去掉判断位后发送给搜索逻辑单元,搜索逻辑单元会使用该地址在存储单元中存储的脏cacheline地址中进行搜索,若搜索到,则向cache控制器发送搜索成功的结果,CPU需要等待写回缓冲将其中的缓存行数据写入内存后再从内存中读取;若没有搜索到,则向cache控制器发送搜索失败的结果,CPU不需要等待写回缓冲将其中的缓存行数据写入内存,直接从内存中读取缺失缓存行数据。
相较于传统的写回型cache CPU读cache缺失时,从主存取数据不等待写回缓冲写回内存和等待写回缓冲写回内存两种方式,本发明的方法能够避免可能出现的读数据错误和降低CPU阻塞延迟。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (8)
1.一种基于地址存储和搜索的cache读缺失处理方法,其特征在于,基于一种地址存储器,对于写回型cache,优化CPU读cache缺失时从主存读取数据的操作,
该方法包括以下步骤:
使用一种地址存储器记录写回缓冲中所有脏缓存行的物理地址;
当CPU读cache不命中即缺失时,将该缺失的缓存行物理地址在地址存储器存储的脏缓存行物理地址中进行搜索;
若搜索成功,即地址存储器中存有和缺失缓存行相同的地址,地址存储器返回搜索成功结果给cache控制器,CPU等待写回缓冲将其中脏缓存行数据全部写回到主存中,再从主存中读取该缓存行数据;
若搜索失败,即地址存储器中没有和缺失缓存行相同的地址,地址存储器返回搜索失败结果给cache控制器,CPU不用等待写回缓冲将其中脏缓存行数据写回主存,直接从主存中读取该缓存行数据。
2.如权利要求1所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述写回型cache,为了保证cache一致性和写回效率,在cache替换脏缓存行时才会将脏缓存行写入写回缓冲。
3.如权利要求1所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述写回缓冲是一个深度小于等于cache中缓存行总数,宽度等于缓存行总位宽的FIFO,在适当的时机将其中脏缓存行数据一次性写回主存。
4.如权利要求1所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述地址存储器具有低延迟、输入输出和搜索功能的存储器,内部包括存储单元、判断逻辑单元和搜索逻辑单元。
5.如权利要求4所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述存储单元由SRAM构成,存储数据位宽等于缓存行物理地址位宽,完成缓存行物理地址数据的存储工作。
6.如权利要求4所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述判断逻辑单元接收cache控制器发送过来的缓存行物理地址,cache控制器给该地址加上一位判断位,从而判断逻辑单元判断该地址是写回缓存中的脏缓存行地址还是CPU读cache缺失地址;如果是脏缓存行地址,则去掉判断位存入到存储单元中;如果是CPU读cache缺失地址,则去掉判断位发送到搜索逻辑单元。
7.如权利要求6所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述搜索逻辑单元接收从判断逻辑单元发送过来的CPU读cache缺失地址,使用该地址搜索存储单元中的地址,如果搜索到则向cache控制器发送对比成功的结果;如果没有搜索到则向cache控制器发送对比失败结果。
8.如权利要求4所述的基于地址存储和搜索的cache读缺失处理方法,其特征在于,所述搜索逻辑单元由NMOS管构成,能够快速进行数据的搜索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311548682.5A CN117271394A (zh) | 2023-11-21 | 2023-11-21 | 一种基于地址存储和搜索的cache读缺失处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311548682.5A CN117271394A (zh) | 2023-11-21 | 2023-11-21 | 一种基于地址存储和搜索的cache读缺失处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271394A true CN117271394A (zh) | 2023-12-22 |
Family
ID=89204708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311548682.5A Pending CN117271394A (zh) | 2023-11-21 | 2023-11-21 | 一种基于地址存储和搜索的cache读缺失处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271394A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882923A (zh) * | 2003-11-18 | 2006-12-20 | 松下电器产业株式会社 | 高速缓冲存储器及其控制方法 |
CN101814039A (zh) * | 2010-02-02 | 2010-08-25 | 北京航空航天大学 | 一种基于GPU的Cache模拟器及其空间并行加速模拟方法 |
CN102999439A (zh) * | 2011-09-16 | 2013-03-27 | 株式会社东芝 | 高速缓冲存储器设备、处理器和信息处理装置 |
CN105095116A (zh) * | 2014-05-19 | 2015-11-25 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
US20180173418A1 (en) * | 2016-12-20 | 2018-06-21 | Intel Corporation | Apparatus, system and method for offloading collision check operations in a storage device |
-
2023
- 2023-11-21 CN CN202311548682.5A patent/CN117271394A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882923A (zh) * | 2003-11-18 | 2006-12-20 | 松下电器产业株式会社 | 高速缓冲存储器及其控制方法 |
CN101814039A (zh) * | 2010-02-02 | 2010-08-25 | 北京航空航天大学 | 一种基于GPU的Cache模拟器及其空间并行加速模拟方法 |
CN102999439A (zh) * | 2011-09-16 | 2013-03-27 | 株式会社东芝 | 高速缓冲存储器设备、处理器和信息处理装置 |
CN105095116A (zh) * | 2014-05-19 | 2015-11-25 | 华为技术有限公司 | 缓存替换的方法、缓存控制器和处理器 |
US20180173418A1 (en) * | 2016-12-20 | 2018-06-21 | Intel Corporation | Apparatus, system and method for offloading collision check operations in a storage device |
Non-Patent Citations (2)
Title |
---|
刘智珺等: "《计算机体系结构基础》", 华中科技大学出版社, pages: 229 - 232 * |
张骏;田泽;韩立敏;牛少平;裴希杰;: "面向替换延迟隐藏的Cache空间预约技术", 航空计算技术, no. 03 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10241919B2 (en) | Data caching method and computer system | |
US7840848B2 (en) | Self-healing cache operations | |
US5577227A (en) | Method for decreasing penalty resulting from a cache miss in multi-level cache system | |
KR100278328B1 (ko) | 캐시 미스 버퍼 | |
US5283886A (en) | Multiprocessor cache system having three states for generating invalidating signals upon write accesses | |
TWI393050B (zh) | 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統 | |
US11210020B2 (en) | Methods and systems for accessing a memory | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
JPS61156346A (ja) | 記憶階層の先取り装置 | |
KR20010101693A (ko) | 가상 메모리 시스템에서의 메모리 접근 개선 기술 | |
JPH10254772A (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
JP3236287B2 (ja) | マルチプロセッサシステム | |
US11449430B2 (en) | Key-value store architecture for key-value devices | |
CN109918131B (zh) | 一种基于非阻塞指令cache的指令读取方法 | |
JPH0616272B2 (ja) | メモリアクセス制御方式 | |
US20100332763A1 (en) | Apparatus, system, and method for cache coherency elimination | |
US20190317891A1 (en) | Ordering updates for nonvolatile memory accesses | |
CN111124297B (zh) | 一种堆叠dram缓存的性能提升方法 | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
CN109669881B (zh) | 一种基于Cache空间预约算法的计算方法 | |
CN117271394A (zh) | 一种基于地址存储和搜索的cache读缺失处理方法 | |
CN114911724B (zh) | 一种基于多bank的cache预取技术的访存结构 | |
CN112711383B (zh) | 用于电力芯片的非易失性存储读取加速方法 | |
CN112579482B (zh) | 一种非阻塞Cache替换信息表超前精确更新装置及方法 | |
CN111338987B (zh) | 快速无效组相联tlb的方法 |
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 |