CN114398298A - 一种缓存流水线处理方法及装置 - Google Patents
一种缓存流水线处理方法及装置 Download PDFInfo
- Publication number
- CN114398298A CN114398298A CN202210056383.9A CN202210056383A CN114398298A CN 114398298 A CN114398298 A CN 114398298A CN 202210056383 A CN202210056383 A CN 202210056383A CN 114398298 A CN114398298 A CN 114398298A
- Authority
- CN
- China
- Prior art keywords
- request
- stack
- data
- write
- tag
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 28
- LMDZBCPBFSXMTL-UHFFFAOYSA-N 1-ethyl-3-(3-dimethylaminopropyl)carbodiimide Chemical compound CCN=C=NCCCN(C)C LMDZBCPBFSXMTL-UHFFFAOYSA-N 0.000 claims description 12
- 238000011144 upstream manufacturing Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 3
- 238000010926 purge Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请涉及一种缓存流水线处理方法及装置。所述方法重新设计缓存流水线处理框架,在缓存流水线处理框架中,清空和缺失返回处理为独立的请求类型,全部按照与常规读写请求一样的流程处理,所有类型的请求共用流水线,在请求仲裁栈判定优先级。通过这样的统一处理,使得流程一致化,可以有效减少流水线的busy停顿,同时可以明确流水线各栈的功能,避免绝大部分数据旁路。从而节省面积与开销,也可以避免传统设计中某些情况下效率低的问题。
Description
技术领域
本申请涉及缓存技术领域,特别是涉及一种缓存流水线处理方法及装置。
背景技术
随着处理器体系结构和制造工艺的飞速发展,处理器峰值性能与存储器访问带宽之间的差距与日俱增,从而导致了严重的“存储墙”问题。为了缓解“存储墙”问题,在处理器内部设置一个小容量低延迟的缓存成为了一种普遍采用的方案。通过把具有高局部性的数据存放在缓存中,既可以减少访问下游存储设备的次数,变相减少访存带宽需求,同时又为上游设备提供了低延迟获取数据的途径,大大提高了处理速度。
上游设备访问下游存储设备时,一般首先在缓存中查询,因此需要在缓存中建立一套完整的数据标记、映射、检索和存取的流程。同时,如果未能在缓存中查询到数据,还需要在缺失缓存中暂时记录缺失地址,从下游存储设备中将数据取出后,再返回上游设备。另外,为了满足用户的需求,还需要提供缓存的全局/部分清空和写回功能。
为了实现上述功能,通常在缓存中采用流水线来分别实现不同的功能模块,提高处理效率。一般情况下,按照访问缓存的流程,主要功能模块包括:请求仲裁、Tag体访问、Tag体命中判定、缺失请求处理、数据体访问、数据返回、保留处理。传统设计中,缓存把读写请求作为流水线的主要处理对象,清空以及缺失请求则作为特殊情况单独处理,而由于清空和缺失请求的优先级一般都高于读写请求,因此当产生该类情况时,会在流水线中间插入这些高优先级请求,从而不可避免地导致流水线出现大量的争用和busy停顿,而争用又进一步产生了仲裁的需求。另外,由于处理这些特殊请求时,需要使用主流水线的部分功能模块,但又并未遵循主流水线的流程,因此流水线各栈的功能无法完全独立,或是经常需要旁路数据,以保证数据一致性。同时,由于处理过程的复杂,使得维护时序变得更加困难。总的来说,传统的流水线设计,在设计复杂度、效率和开销上都有一定的缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种缓存流水线处理方法及装置。
一种缓存流水线处理方法,所述方法包括:
搭建缓存流水线处理框架;所述缓存流水线处理框架中流水线的栈包括:请求仲裁、Tag体访问、Tag体流出、Tag体命中判定、数据体访问、数据体流出以及数据返回仲裁;
请求仲裁栈中,接收上游网络发送的读写请求、清空处理请求以及Tag体命中判定栈发送的缺失请求,所述请求仲裁栈按照预设优先级依次处理所述读写请求、所述清空处理请求以及所述缺失请求;
Tag体访问栈中,接收请求仲裁栈发送的Tag体访问请求,并根据Tag体访问请求提取请求地址中Tag体索引位的Tag体数据;
Tag体流出栈中,在一个时序提供Tag存储体流出数据,以及读出Tag体数据;
Tag体命中判定栈中,接收Tag体流出栈读出的Tag体数据,将Tag体数据与请求地址的Tag值部分进行比对,若相同,则输出命中位置信息,若否则输出缺失请求;
数据体访问栈中,根据Tag体索引位和命中位置信息,读取数据体,并且根据请求类型修改对应的状态位;
数据体流出栈中,对数据体访问栈中读取的数据体进行EDAC处理;
数据返回仲裁中,根据请求类型判断数据体流出栈EDAC处理后的数据体以及是发往上游网络的返回数据还是发往下游网络的写回数据。
在其中一个实施例中,还包括:Tag体访问栈中执行读Tag的读请求、写请求、替换请求和Flush请求,以及写Tag的分配请求;
Tag体流出栈中执行读Valid的读请求、写请求、替换请求以及Flush请求;执行读Dirty的替换请求以及Flush请求;执行读LRU的读请求、写请求以及替换请求;
数据体访问栈中执行写Valid的替换请求、分配请求以及Flush请求;执行写Dirty的写请求、分配请求以及Flush请求;执行写LRU的读请求和写请求。
在其中一个实施例中,还包括:所述缓存流水线处理框架中,当前续请求为写请求时,后续请求为替换请求。
在其中一个实施例中,还包括:所述清空处理请求、所述缺失请求以及所述读写请求的优先级依次降低。
在其中一个实施例中,还包括:生成清空处理请求的步骤包括:
接收控制寄存器清空写回使能信号和写回配置信号后,判断缓存流水线处理框架是否清空,若是,则根据所述写回配置信号的地址范围,判断清空请求类型;所述清空请求包括:大范围清空和小范围清空;
若清空请求为大范围清空,则遍历缓存,逐行执行操作;
若清空请求为小范围清空,则根据地址范围,依次查找缓存行。
在其中一个实施例中,还包括:Tag体访问栈中,接收请求仲裁栈的请求,并判断请求类型;所述请求类型包括:大范围清空回写和一般类型;
当请求类型为一般类型时,根据地址映射规则,将请求数据中携带的地址的若干位作为一组缓存行的索引,流出至Tag体流出栈读取相应数据;
当请求类型为大范围清空回写时,将索引值流入至Tag体流出栈读取相应数据。
在其中一个实施例中,还包括:在Tag体命中判定栈中,接收Tag体流出栈读出的Tag体数据和请求输入,将Tag体数据与请求地址的Tag值部分进行比对,若Tag值命中,则输出命中位置信息和请求输出至数据体访问栈,若Tag值未命中,则对请求类型进行判定;请求类型包括:请求失效和确实缓存。
一种缓存流水线处理装置,所述装置包括:缓存,所述缓存中执行上述缓存流水线处理方法。
上述缓存流水线处理方法及装置,重新设计缓存流水线处理框架,在缓存流水线处理框架中,清空和缺失返回处理为独立的请求类型,全部按照与常规读写请求一样的流程处理,所有类型的请求共用流水线,在请求仲裁栈判定优先级。通过这样的统一处理,使得流程一致化,可以有效减少流水线的busy停顿,同时可以明确流水线各栈的功能,避免绝大部分数据旁路。从而节省面积与开销,也可以避免传统设计中某些情况下效率低的问题。
附图说明
图1为一个实施例中缓存流水线处理方法的结构示意图;
图2为一个实施例中不同请求类型及其读写Tag体和状态位的说明示意图;
图3为一个实施例中状态位旁路的说明示意图;
图4为一个实施例中请求仲裁栈逻辑图;
图5为一个实施例中清空处理逻辑图;
图6为一个实施例中Tag体访问栈逻辑图;
图7为一个实施例中Tag体命中判定栈逻辑图;
图8为一个实施例中缺失缓冲的结构示意图;
图9为一个实施例中请求写入子模块逻辑图;
图10为一个实施例中读下游存储设备子模块逻辑图;
图11为一个实施例中请求释放子模块逻辑图;
图12为一个实施例中数据体访问栈逻辑图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种缓存流水线处理方法,包括以下步骤:
搭建缓存流水线处理框架。
缓存流水线处理框架中流水线的栈包括:请求仲裁、Tag体访问、Tag体流出、Tag体命中判定、数据体访问、数据体流出以及数据返回仲裁。
请求仲裁栈中,接收上游网络发送的读写请求、清空处理请求以及Tag体命中判定栈发送的缺失请求,请求仲裁栈按照预设优先级依次处理读写请求、清空处理请求以及缺失请求。
Tag体访问栈中,接收请求仲裁栈发送的Tag体访问请求,并根据Tag体访问请求提取请求地址中Tag体索引位的Tag体数据。
Tag体流出栈中,在一个时序提供Tag存储体流出数据,以及读出Tag体数据。
Tag体命中判定栈中,接收Tag体流出栈读出的Tag体数据,将Tag体数据与请求地址的Tag值部分进行比对,若相同,则输出命中位置信息,若否则输出缺失请求。
数据体访问栈中,根据Tag体索引位和命中位置信息,读取数据体,并且根据请求类型修改对应的状态位。
数据体流出栈中,对数据体访问栈中读取的数据体进行EDAC处理。
数据返回仲裁中,根据请求类型判断数据体流出栈EDAC处理后的数据体以及是发往上游网络的返回数据还是发往下游网络的写回数据。
上述缓存流水线处理方法中,重新设计缓存流水线处理框架,在缓存流水线处理框架中,清空和缺失返回处理为独立的请求类型,全部按照与常规读写请求一样的流程处理,所有类型的请求共用流水线,在请求仲裁栈判定优先级。通过这样的统一处理,使得流程一致化,可以有效减少流水线的busy停顿,同时可以明确流水线各栈的功能,避免绝大部分数据旁路。从而节省面积与开销,也可以避免传统设计中某些情况下效率低的问题。
首先,针对本发明涉及到的几种请求进行说明:
读请求、写请求来源于上游网络,分别读取和修改缓存中的数据,是缓存流水线的主要处理对象,当读取或修改的目标不在缓存中时,则表示发生缺失,需要将请求暂存在缺失缓存中,等待缓存从下游存储设备中取得数据。
当缺失缓存从下游存储设备中取得数据,则需要将该数据放入某个缓存行,并将缺失缓存中读写该数据的请求释放。替换请求的作用就是寻找要被替换的缓存行,而分配请求的作用是将数据写入该缓存行。
清空(写回)请求可能包括清空或写回两种目标,作用范围可以是全局缓存,也可以是部分缓存。清空的目标是将对应范围的缓存行数据全部无效化,写回的目标则是把对应范围内的脏行写回到下游存储设备。
在其中一个实施例中,如图2所示,Tag体访问栈中执行读Tag的读请求、写请求、替换请求和Flush请求,以及写Tag的分配请求;Tag体流出栈中执行读Valid的读请求、写请求、替换请求以及Flush请求;执行读Dirty的替换请求以及Flush请求;执行读LRU的读请求、写请求以及替换请求;数据体访问栈中执行写Valid的替换请求、分配请求以及Flush请求;执行写Dirty的写请求、分配请求以及Flush请求;执行写LRU的读请求和写请求。本实施例中,读状态位都在Tag体流出栈进行,写状态位则在数据体访问栈进行。比较特殊的是读写Tag体都在Tag体流出栈,但在本设计中,仅有分配请求需要写Tag体,此时分配请求需要从替换请求的命中判定结果得知Tag体写入位置,因此需要将命中位置从数据体访问栈旁路至Tag体流出栈。
在其中一个实施例中,如图3所示,缓存流水线处理框架中,当前续请求为写请求时,后续请求为替换请求,在本设计中,仅有一种情况需要旁路,即写请求后面紧跟替换请求,此时写请求可能导致脏位发生改变,而脏位影响替换请求对Tag体的命中判定,因此需要写请求将脏位从数据体访问栈旁路至Tag体命中判定栈和Tag体流出栈。
在其中一个实施例中,清空处理请求、所述缺失请求以及所述读写请求的优先级依次降低。如图4所示,从图中可以看到,请求仲裁栈收到来自上游网络的读写请求、来自清空处理模块的清空(写回)请求,以及来自缺失缓冲的缺失返回请求。其中缺失返回请求优先级最高,读写请求最低。其中读写请求内部采用轮询机制保证读请求和写请求优先级相同。
在其中一个实施例中,如图5所示,生成清空处理请求的步骤包括:接收控制寄存器清空写回使能信号和写回配置信号后,判断缓存流水线处理框架是否清空,若是,则根据写回配置信号的地址范围,判断清空请求类型;清空请求包括:大范围清空和小范围清空;若清空请求为大范围清空,则遍历缓存,逐行执行操作;若清空请求为小范围清空,则根据地址范围,依次查找缓存行。从图中可以看到,请求仲裁栈接收来自控制寄存器的使能信号和配置信号后,需要判定流水线是否已排空,本实例中是通过发送一种特殊类型的请求,遍历流水线各栈后发回判定结果,当收到流水线全部排空的信号后,开始产生请求。若流水线未排空就执行写回操作,可能导致数据一致性出错。清空请求分为两大类,根据配置信号提供的地址范围,分为大范围清空和小范围清空,大范围清空指地址范围大于整个缓存容量,反之则为小范围清空。两种清空请求在处理逻辑上有所区别,大范围清空是遍历整个缓存,逐行执行操作;而小范围清空则是遍历配置信号提供的地址,依次查找缓存中对应的缓存行。
在其中一个实施例中,如图6所示,Tag体访问栈中,接收请求仲裁栈的请求,并判断请求类型;请求类型包括:大范围清空回写和一般类型;当请求类型为一般类型时,根据地址映射规则,将请求数据中携带的地址的若干位作为一组缓存行的索引,流出至Tag体流出栈读取相应数据;当请求类型为大范围清空回写时,将索引值流入至Tag体流出栈读取相应数据。从图中可以看到,Tag体访问栈收到来自请求仲裁栈后,需要判断请求类型,决定如何处理地址信息。接收到一般请求时,可以根据地址映射规则,将请求数据中携带的地址的若干位作为一组缓存行(由于采用组相联模式,因此访问存储体时以组为单位)的索引,流出至Tag存储体读取相应数据。其中大范围清空(写回)请求采用遍历缓存的形式,因此请求的数据部分没有携带常规的下游存储设备地址字段,而是携带的缓存行索引值。接收到该类请求时,无需解析地址,直接将索引值流入Tag存储体读取相应数据。
在其中一个实施例中,如图7所示,在Tag体命中判定栈中,接收Tag体流出栈读出的Tag体数据和请求输入,将Tag体数据与请求地址的Tag值部分进行比对,若Tag值命中,则输出命中位置信息和请求输出至数据体访问栈,若Tag值未命中,则对请求类型进行判定;请求类型包括:请求失效和确实缓存。从图中可以看到,Tag体命中判定栈主要输入请求信号、Tag存储体流出的一组Tag值信号和一组状态位信号。其中状态位信号包括有效位、数据脏位和LRU标签位。Tag体命中判定栈主要负责判定请求数据里的地址是否命中该组Tag值。如果未能命中,且为读写请求,则需要将请求写入缺失缓冲。清空(写回)请求未命中则直接失效,不再流入下一栈。如果命中,则需要记录命中的Tag值在该组的位置,用于后续访问数据体和更新状态位。
在其中一个实施例中,如图8所示,缺失缓冲的存储体结构图。从图中可以看到,缺失缓冲的存储方式为:首先需要在缺失地址缓冲中记录缺失地址,作为一组相关缺失请求的标签。与该地址相关的缺失请求,按类型存放在写缺失缓冲或读缺失缓冲中。缺失地址缓冲中的头索引指向该组相关缺失请求的第一个,以其存储体行序号作为索引值。尾索引指向该组相关缺失请求的最后一个。读缺失缓冲和写缺失缓冲需要记录缺失请求的数据,以及该组中的下一个相关缺失的索引值。当下一相关缺失索引值等于该行存储体行序号时,表示该请求为所在的相关缺失请求组中的最后一个请求。
图9、10、11是缺失缓冲的3个子模块,分别为请求写入、读下游存储设备和请求释放。当缺失缓冲未满时,即可写入新的缺失请求,此时需要判断:新的缺失请求地址是否命中缺失地址缓冲。
若是,则只需要更新缺失地址缓冲的尾索引,无需写入新的缺失地址。新请求写入时读/写缺失缓冲时还需要更新当前最后一个相关请求的下一相关缺失索引值。
若否,则需要在缺失地址缓冲中写入新的缺失地址,以及相应的头尾索引值。
缺失缓冲会按FIFO顺序依次以缺失地址缓冲中的地址向下游存储设备发起读数据请求。每次只读取一个地址,直到读数据全部返回。数据返回后暂存在缺失缓冲中,等待请求释放。
进入请求释放阶段,缺失缓冲会生成2个前导控制请求,分别称为替换请求和分配请求。其中替换请求的作用是查找需要被替换的缓存行,且如果被替换的缓存行是脏行,则需要写回该脏行。而分配请求的作用是将下游存储设备返回的读数据写入替换请求选中的缓存行。紧随分配请求的是该地址相关的相关缺失请求,从缺失地址缓冲的头索引开始链式释放全部请求,跟随替换请求和分配请求依次发往请求仲裁栈。
在其中一个实施例中,如图12所示,数据体访问栈接收请求输入和命中判定结果输入,此时需要判断是否需要写回数据,如果请求类型为写回或替换请求,命中判定结果为命中,则表示需要写回整行脏数据,若缓存行大于数据带宽,则需要停顿若干拍直至数据完全写回。如果无需写回数据,则按地址和命中位置访问数据体。
在一个实施例中,还提供一种缓存流水线处理装置,包括缓存,缓存中执行上述实施例中方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种缓存流水线处理方法,其特征在于,所述方法包括:
搭建缓存流水线处理框架;所述缓存流水线处理框架中流水线的栈包括:请求仲裁、Tag体访问、Tag体流出、Tag体命中判定、数据体访问、数据体流出以及数据返回仲裁;
请求仲裁栈中,接收上游网络发送的读写请求、清空处理请求以及Tag体命中判定栈发送的缺失请求,所述请求仲裁栈按照预设优先级依次处理所述读写请求、所述清空处理请求以及所述缺失请求;
Tag体访问栈中,接收请求仲裁栈发送的Tag体访问请求,并根据Tag体访问请求提取请求地址中Tag体索引位的Tag体数据;
Tag体流出栈中,在一个时序提供Tag存储体流出数据,以及读出Tag体数据;
Tag体命中判定栈中,接收Tag体流出栈读出的Tag体数据,将Tag体数据与请求地址的Tag值部分进行比对,若相同,则输出命中位置信息,若否则输出缺失请求;
数据体访问栈中,根据Tag体索引位和命中位置信息,读取数据体,并且根据请求类型修改对应的状态位;
数据体流出栈中,对数据体访问栈中读取的数据体进行EDAC处理;
数据返回仲裁中,根据请求类型判断数据体流出栈EDAC处理后的数据体以及是发往上游网络的返回数据还是发往下游网络的写回数据。
2.根据权利要求1所述的方法,其特征在于,Tag体访问栈中执行读Tag的读请求、写请求、替换请求和Flush请求,以及写Tag的分配请求;
Tag体流出栈中执行读Valid的读请求、写请求、替换请求以及Flush请求;执行读Dirty的替换请求以及Flush请求;执行读LRU的读请求、写请求以及替换请求;
数据体访问栈中执行写Valid的替换请求、分配请求以及Flush请求;执行写Dirty的写请求、分配请求以及Flush请求;执行写LRU的读请求和写请求。
3.根据权利要求1所述的方法,其特征在于,所述缓存流水线处理框架中,当前续请求为写请求时,后续请求为替换请求。
4.根据权利要求1所述的方法,其特征在于,所述清空处理请求、所述缺失请求以及所述读写请求的优先级依次降低。
5.根据权利要求1所述的方法,其特征在于,生成清空处理请求的步骤包括:
接收控制寄存器清空写回使能信号和写回配置信号后,判断缓存流水线处理框架是否清空,若是,则根据所述写回配置信号的地址范围,判断清空请求类型;所述清空请求包括:大范围清空和小范围清空;
若清空请求为大范围清空,则遍历缓存,逐行执行操作;
若清空请求为小范围清空,则根据地址范围,依次查找缓存行。
6.根据权利要求1所述的方法,其特征在于,Tag体访问栈中,接收请求仲裁栈的请求,并判断请求类型;所述请求类型包括:大范围清空回写和一般类型;
当请求类型为一般类型时,根据地址映射规则,将请求数据中携带的地址的若干位作为一组缓存行的索引,流出至Tag体流出栈读取相应数据;
当请求类型为大范围清空回写时,将索引值流入至Tag体流出栈读取相应数据。
7.根据权利要求1所述的方法,其特征在于,在Tag体命中判定栈中,接收Tag体流出栈读出的Tag体数据和请求输入,将Tag体数据与请求地址的Tag值部分进行比对,若Tag值命中,则输出命中位置信息和请求输出至数据体访问栈,若Tag值未命中,则对请求类型进行判定;请求类型包括:请求失效和确实缓存。
8.一种缓存流水线处理装置,其特征在于,所述装置包括:缓存,所述缓存中执行权利要求1至7任一项所述的缓存流水线处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056383.9A CN114398298B (zh) | 2022-01-18 | 2022-01-18 | 一种缓存流水线处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210056383.9A CN114398298B (zh) | 2022-01-18 | 2022-01-18 | 一种缓存流水线处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114398298A true CN114398298A (zh) | 2022-04-26 |
CN114398298B CN114398298B (zh) | 2024-07-09 |
Family
ID=81230422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210056383.9A Active CN114398298B (zh) | 2022-01-18 | 2022-01-18 | 一种缓存流水线处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398298B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331603A (zh) * | 2023-09-18 | 2024-01-02 | 中国人民解放军军事科学院国防科技创新研究院 | 基于优先级判定的深度流水线前向旁路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010029694A1 (ja) * | 2008-09-09 | 2010-03-18 | パナソニック株式会社 | キャッシュメモリ、キャッシュメモリシステム |
CN103279329A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 支持同步edac校验的高效取指流水线 |
CN104572528A (zh) * | 2015-01-27 | 2015-04-29 | 东南大学 | 一种二级Cache对访问请求的处理方法及系统 |
-
2022
- 2022-01-18 CN CN202210056383.9A patent/CN114398298B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010029694A1 (ja) * | 2008-09-09 | 2010-03-18 | パナソニック株式会社 | キャッシュメモリ、キャッシュメモリシステム |
CN103279329A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 支持同步edac校验的高效取指流水线 |
CN104572528A (zh) * | 2015-01-27 | 2015-04-29 | 东南大学 | 一种二级Cache对访问请求的处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
马鹏勇;陈书明;孙锁林;: "双簇结构DSP的数据Cache优化", 计算机工程与科学, no. 09, 15 September 2008 (2008-09-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331603A (zh) * | 2023-09-18 | 2024-01-02 | 中国人民解放军军事科学院国防科技创新研究院 | 基于优先级判定的深度流水线前向旁路 |
CN117331603B (zh) * | 2023-09-18 | 2024-04-09 | 中国人民解放军军事科学院国防科技创新研究院 | 基于优先级判定的深度流水线前向旁路 |
Also Published As
Publication number | Publication date |
---|---|
CN114398298B (zh) | 2024-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693791B2 (en) | Victim cache that supports draining write-miss entries | |
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US6339813B1 (en) | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory | |
JP3323212B2 (ja) | データプレフェッチの方法およびその装置 | |
US9251069B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
JP2000250813A (ja) | I/oキャッシュ・メモリにおけるデータ管理方法 | |
CN113342265B (zh) | 缓存管理方法、装置、处理器及计算机装置 | |
US6988167B2 (en) | Cache system with DMA capabilities and method for operating same | |
US11921650B2 (en) | Dedicated cache-related block transfer in a memory system | |
US7702875B1 (en) | System and method for memory compression | |
US7844777B2 (en) | Cache for a host controller to store command header information | |
US9996478B1 (en) | No allocate cache policy | |
CN114398298B (zh) | 一种缓存流水线处理方法及装置 | |
US6801982B2 (en) | Read prediction algorithm to provide low latency reads with SDRAM cache | |
US10990543B1 (en) | Apparatus and method for arbitrating access to a set of resources | |
JP5699854B2 (ja) | 記憶制御システムおよび方法、置換方式および方法 | |
US20020108021A1 (en) | High performance cache and method for operating same | |
US7797492B2 (en) | Method and apparatus for dedicating cache entries to certain streams for performance optimization | |
CN111124954A (zh) | 一种两级转换旁路缓冲的管理装置及方法 | |
US20020188805A1 (en) | Mechanism for implementing cache line fills | |
US7543113B2 (en) | Cache memory system and method capable of adaptively accommodating various memory line sizes | |
US9116814B1 (en) | Use of cache to reduce memory bandwidth pressure with processing pipeline | |
US11520706B2 (en) | Dram-aware caching | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |