CN116701246B - 一种提升缓存带宽的方法、装置、设备及存储介质 - Google Patents
一种提升缓存带宽的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116701246B CN116701246B CN202310587200.0A CN202310587200A CN116701246B CN 116701246 B CN116701246 B CN 116701246B CN 202310587200 A CN202310587200 A CN 202310587200A CN 116701246 B CN116701246 B CN 116701246B
- Authority
- CN
- China
- Prior art keywords
- request
- current
- new request
- new
- cache
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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
本申请属于缓存技术领域,公开了一种提升缓存带宽的方法、装置、设备及存储介质,该方法应用于缓存微结构中,该方法包括:步骤S1,接收新请求,并获取新请求的命中情况;步骤S2,基于命中情况和新请求确定执行条件;步骤S3,将新请求与缓存微结构中的旧请求进行地址对比,得到对比结果;若对比结果满足执行条件,则执行新请求。本申请可以提高缓存的并行处理能力,使得每个请求从进入缓存到被分发到并行处理状态机中执行的延时更小、单位时间内工作的并行处理状态机的个数更多,从而提升缓存整体的带宽和吞吐量。
Description
技术领域
本申请涉及缓存技术领域,尤其涉及一种提升缓存带宽的方法、装置、设备及存储介质。
背景技术
缓存的读写带宽是影响CPU整体性能的关键指标之一。在CPU系统中,总线的位宽是固定大小的,如256bit、512bit等,在总线位宽固定的情况下,最大程度地利用总线的带宽,即等价于平均每个周期内缓存能够多发出总线的请求,多进行总线的数据读写。在缓存设计中,决定缓存读写带宽的指标是并行数(outstanding capability),决定并行数的有两点,一是并行状态机的数量,二是缓存流水线的分发结构如何解决地址冲突。缓存流水线会记录所有正在处理的缓存读写地址,并以此决定是否要执行Core(处理器核)新下发的对某个地址的缓存读写请求。在现有的缓存微结构中,相同index(缓存索引)的地址访问定义为同余项(CGC congruence class),在进行相同index访存时、或相同address(地址)访存时,需要遵循一定的顺序,后到的请求需要等待之前旧的请求完成后才能继续操作。因此,本申请解决的技术问题是如何设计缓存流水线分发结构对地址冲突的解决,以实现缓存带宽的增加。
发明内容
本申请提供了一种提升缓存带宽的方法、装置、设备及存储介质,能够提高缓存的并行处理能力,使得每个请求从进入缓存到被分发到并行处理状态机中执行的延时更小、单位时间内工作的并行处理状态机的个数更多,从而提升缓存整体的带宽和吞吐量。
第一方面,本申请提供了一种提升缓存带宽的方法,应用于缓存微结构中,该方法包括:
步骤S1,接收新请求,并获取新请求的命中情况;
步骤S2,基于命中情况和新请求确定执行条件;
步骤S3,将新请求与缓存微结构中的旧请求进行地址对比,得到对比结果;若对比结果满足执行条件,则执行新请求。
进一步的,旧请求包括正在进行的当前请求和写入队列中的暂存写入请求;该方法还包括:
在执行完步骤S1之后,判断是否缓存微结构中存在旧请求;若存在当前请求,或者存在暂存写入请求且新请求为读取请求,则执行步骤S2和步骤S3;否则直接执行新请求。
上述实施例给出了无需进行地址对比的情况,使得对新请求的执行效率进一步提高。
进一步的,在新请求命中且新请求在当前请求的预设周期外时,该执行条件包括:
新请求与当前请求全地址不相同;
若新请求为读取请求,则新请求与暂存写入请求全地址不相同。
上述实施例令在当前请求预设周期外且命中的新请求在地址满足预设条件时,不需要等待当前请求执行完毕,可直接被分发到并行处理状态机被执行,提高了缓存的并行处理能力,减小了满足执行条件的新请求被执行的延时,从而提高了缓存的带宽。
进一步的,在新请求命中且新请求在当前请求的预设周期内时,该执行条件包括:
若当前请求为当前读取请求或当前写入请求,则新请求与当前请求同余项不相同,否则新请求与当前请求全地址不相同;
若新请求为读取请求,则新请求与暂存写入请求的全地址不相同。
上述实施例令在当前请求预设周期内且命中的新请求在地址满足预设条件时,不需要等待当前请求执行完毕,可直接被分发到并行处理状态机被执行,提高了缓存的并行处理能力,减小了满足执行条件的新请求被执行的延时,从而提高了缓存的带宽。
进一步的,新请求未命中时,该执行条件包括:
若当前请求为当前读取请求或当前写入请求,则新请求与当前请求同余项不相同,否则新请求与当前请求全地址不相同;
若新请求为读取请求,则新请求与暂存写入请求的全地址不相同。
上述实施例令未命中的新请求在地址满足预设条件时,不需要等待当前请求执行完毕,可直接被分发到并行处理状态机被执行,提高了缓存的并行处理能力,减小了满足执行条件的新请求被执行的延时,从而提高了缓存的带宽。
进一步的,该执行条件还包括:若当前请求为当前替换请求或当前窥探请求,则新请求与当前请求同余项不相同,且当前请求在未命中时产生当前替换数据;该方法还包括:
在新请求未命中且产生替换请求时,若对比结果满足执行条件,则执行新请求和替换请求。
上述实施例实现了对未命中的新请求产生的替换请求的处理,使得产生替换的新请求也能够在满足执行条件下被并行处理。
进一步的,在新请求为窥探请求时,该执行条件包括:新请求与当前请求全地址不相同。
上述实施例令总线的窥探请求在地址满足预设条件时,可直接被分发到并行处理状态机被执行,提高了缓存在多个缓存互联时的并行处理能力,减小了总线的窥探请求被执行的延时,从而进一步提高了缓存的带宽。
第二方面,本申请还提供了一种提升缓存带宽的装置,应用于缓存微结构中,该装置包括:
接收模块,用于接收新请求,并获取新请求的命中情况;
条件确定模块,用于基于命中情况和新请求确定执行条件;
对比模块,用于将新请求与缓存微结构中的旧请求进行地址对比,得到对比结果;以及,在对比结果满足执行条件时,执行新请求。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时执行如上述任一实施例的一种提升缓存带宽的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种提升缓存带宽的方法的步骤。
综上,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的一种提升缓存带宽的方法,通过基于新请求及其命中情况设定其执行条件,若与旧情求地址的对比结果满足该执行条件,则无需等待旧情求完成后再操作,而是直接进入缓存微结构的并行处理状态机中执行;本申请提出的缓存请求的分发逻辑可以在面对不同请求和不同缓存命中情况下,尽可能提高缓存的并行处理能力,使得每个请求从进入缓存到被分发到并行处理状态机中执行的延时更小、单位时间内工作的并行处理状态机的个数更多,从而提升缓存整体的带宽和吞吐量。
附图说明
图1为本申请一个示例性实施例提供的一种提升缓存带宽的方法的流程图。
图2为本申请一个示例性实施例提供的缓存流水线分发结构的示意图。
图3为本申请一个示例性实施例提供的一种提升缓存带宽的装置的结构示意图。
图4为本申请一个示例性实施例提供的对处理器核下发的新请求的判断步骤流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1和图2,本申请实施例提供了一种提升缓存带宽的方法,该方法应用于缓存微结构中,该方法包括:
步骤S1,接收新请求,并获取新请求的命中情况。具体地,对命中情况的获取,即对Tag RAM(缓存标签存储器)的读取是要占时间的,因此被读取的请求是缓存流水线上来的,从Directory(缓存目录)模块中读回的命中情况也是在缓存流水线上固定延时后可以采样。
步骤S2,基于命中情况和新请求确定执行条件。
步骤S3,将新请求与缓存微结构中的旧请求进行地址对比,得到对比结果;若对比结果满足执行条件,则执行新请求。其中,执行新请求就是将其放入并行处理状态机中执行。
具体地,微结构流水线中命中情况的读取和地址对比这两个操作是同时的,对Directory模块的访问会提前预设周期(预设周期即Directory的访问延时)开始进行,这样可以提高效率。
如图2所示,缓存微结构中的缓存流水线在每个cycle(周期)都可以得知当前所有正在进行的Load(读取)/Store(写入)/Snoop(窥探)/Castout(替换)请求的地址,读取和写入会有专门的地址寄存器进行记录,Snoop会有专门的地址寄存器进行记录,Castout也有专门的地址寄存器进行记录;同时Load状态机、Store状态机、Snoop状态机和Castout状态机都有繁忙信号输出,其中包括当前请求的地址,缓存流水线每个cycle都可以得知。
上述实施例提供的一种提升缓存带宽的方法,通过基于新请求及其命中情况设定其执行条件,若与旧情求地址的对比结果满足该执行条件,则无需等待旧情求完成后再操作,而是直接进入缓存微结构的并行处理状态机中执行;本申请提出的缓存请求的分发逻辑可以在面对不同请求和不同缓存命中情况下,尽可能提高缓存的并行处理能力,使得每个请求从进入缓存到被分发到并行处理状态机中执行的延时更小、单位时间内工作的并行处理状态机的个数更多,从而提升缓存整体的带宽和吞吐量。
在一些实施例中,上述旧请求包括正在进行的当前请求和写入队列中的暂存写入请求。
该方法具体还可以包括:
在执行完步骤S1之后,判断是否缓存微结构中存在旧请求;若存在当前请求,或者存在暂存写入请求且新请求为读取请求,则执行步骤S2和步骤S3;否则直接执行新请求。
其中,写入队列即STQ,Store Queue,是缓存微结构中用于暂存Store请求的数据缓冲,目的是由于处理器可能下发多笔对同cacheline(缓存行)地址的Store操作,Store的数据之间可以合并的话(相当于两次Store两个不同或插入的byte,可以合并成一次Store这些byte),就可以实际上只进行一次总线请求、Directory模块、Cache(缓存)的访存,从而可以节省资源占用。STQ会为每一个暂存写入请求分配一个位置,即Entry,STQ中可以被发送的暂存写入请求会进入缓存流水线申请并行处理资源。
上述实施例给出了无需进行地址对比的情况,使得对新请求的执行效率进一步提高。
在一些实施例中,在新请求命中且新请求在当前请求的预设周期外时,该执行条件包括:
新请求与当前请求全地址不相同。
若新请求为读取请求,则新请求与暂存写入请求全地址不相同。
其中,预设周期为Directory的访问延时,可以为2cycle,执行条件中的内容为“和”的关系,即只有对比结果满足了执行条件中的所有内容,才能够被执行。一个请求在缓存微结构中的地址由3个字段来表示:Address Tag(地址标签)、Index(缓存索引)和offset,全地址相同即Tag+Index都相同,同余项(CGC)相同即Index相同。
offset不纳入比较,offset是在在一条cacheline内部的偏移。
具体地,若新请求hit(命中),且当前请求在新请求的2cycle以外,以下条件全不满足时,可以执行操作,否则不能执行(即下列有任意一项满足便不能执行)。
a)如果有正在进行的Load/Store操作,且全地址相同。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
d)如果STQ中暂存了Store操作,且全地址相同,且新请求是Load请求。
上述实施例令在当前请求预设周期外且命中的新请求在地址满足预设条件时,不需要等待当前请求执行完毕,可直接被分发到并行处理状态机被执行,提高了缓存的并行处理能力,减小了满足执行条件的新请求被执行的延时,从而提高了缓存的带宽。
在一些实施例中,在新请求命中且新请求在当前请求的预设周期内时,该执行条件包括:
若当前请求为当前读取请求或当前写入请求,则新请求与当前请求同余项不相同,否则新请求与当前请求全地址不相同。
若新请求为读取请求,则新请求与暂存写入请求的全地址不相同。
具体地,若新请求hit,且正在处理的当前请求在新请求的2cycle以内,以下条件全不满足时,可以执行操作,否则不能执行。
a)如果有正在进行的Load/Store操作,且CGC相同,相对于全地址的对比条件更严,因为正在进行的当前Load/Store操作是刚刚被dispatch(分发)的,是否命中要2cycle才能知道。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
d)如果STQ中暂存了Store操作,且全地址相同,且新请求是Load请求。
上述实施例令在当前请求预设周期内且命中的新请求在地址满足预设条件时,不需要等待当前请求执行完毕,可直接被分发到并行处理状态机被执行,提高了缓存的并行处理能力,减小了满足执行条件的新请求被执行的延时,从而提高了缓存的带宽。
在一些实施例中,新请求未命中时,该执行条件包括:
若当前请求为当前读取请求或当前写入请求,则新请求与当前请求同余项不相同,否则新请求与当前请求全地址不相同。
若新请求为读取请求,则新请求与暂存写入请求的全地址不相同。
具体地,若新请求miss(未命中),以下条件全不满足时,可执行新请求,否则不能执行。
a)如果有正在进行的Load/Store操作,且CGC相同。因为未命中的新请求会可能会产生被替换的cacheline,若CGC相同会形成读写冲突,需要等正在进行的读/写操作完成。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
d)如果STQ中暂存了Store操作,且全地址相同,且新请求是Load请求。
上述实施例令未命中的新请求在地址满足预设条件时,不需要等待当前请求执行完毕,可直接被分发到并行处理状态机被执行,提高了缓存的并行处理能力,减小了满足执行条件的新请求被执行的延时,从而提高了缓存的带宽。
在一些实施例中,该执行条件还包括:若当前请求为当前替换请求或当前窥探请求,则新请求与当前请求同余项不相同,且当前请求在未命中时产生当前替换数据。该方法还包括:
在新请求未命中且产生替换请求时,若对比结果满足执行条件,则执行新请求和替换请求。
具体地,若新请求miss,以下条件全不满足时,可以执行Castout操作,否则不能执行。
a)如果有正在进行的Load/Store操作,且CGC相同。
b)如有正在进行的Castout操作,且CGC相同,且当前miss的情况需产生cache替换。
c)如果有正在进行的Snoop操作,且CGC相同,且当前miss的情况需产生cache替换。
即若未命中的新请求要产生Castout,即替换请求,则需同时满足仅未命中时的执行条件和产生替换请求时的执行条件,才能够被执行和将数据替换出去。
上述实施例实现了对未命中的新请求产生的替换请求的处理,使得产生替换的新请求也能够在满足执行条件下被并行处理。
在一些实施例中,在新请求为窥探请求时,该执行条件包括:
新请求与当前请求全地址不相同。
具体地,对于总线的Snoop请求,以下条件全不满足时,可以执行,否则不能执行。
a)如果有正在进行的Load/Store操作,且全地址相同。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
上述实施例令总线的窥探请求在地址满足预设条件时,可直接被分发到并行处理状态机被执行,提高了缓存在多个缓存互联时的并行处理能力,减小了总线的窥探请求被执行的延时,从而进一步提高了缓存的带宽。
请参见图3,本申请另一实施例提供了一种提升缓存带宽的装置,该装置应用于缓存微结构中,该装置包括:
接收模块101,用于接收新请求,并获取新请求的命中情况。
条件确定模块102,用于基于命中情况和新请求确定执行条件。
对比模块103,用于将新请求与缓存微结构中的旧请求进行地址对比,得到对比结果;以及,在对比结果满足执行条件时,执行新请求。
上述实施例提供的一种提升缓存带宽的装置,通过条件确定模块102设定执行条件,若新请求与旧情求地址的对比结果满足该执行条件,则无需等待旧情求完成后再操作,而是直接进入缓存微结构的并行处理状态机中执行;本申请可以在面对不同请求和不同缓存命中情况下,提高缓存的并行处理能力,使得每个请求从进入缓存到被分发到并行处理状态机中执行的延时更小、单位时间内工作的并行处理状态机的个数更多,从而提升缓存整体的带宽和吞吐量。
本实施例中提供的关于一种提升缓存带宽的装置的具体限定,可以参见上文中关于一种提升缓存带宽的方法的实施例,于此不再赘述。上述一种提升缓存带宽的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
以一个具体的例子来说明本申请一种提升缓存带宽的方法的具体实施过程:
请参见图2和图4(图4不包括对窥探请求的新请求的判断),本申请提出的缓存流水线分发结构,使得缓存微结构能在相同时间内处理更多的并行请求,从而提升缓存的带宽。
缓存流水线会记录所有正在处理的缓存读写地址,并以此决定是否要执行Core(处理器核)新下发的对某个地址的缓存读写请求。缓存微结构中,相同index的地址访问定义为同余项(CGC,congruence class),在进行相同index访存时、或相同address访存时,需遵循一定的顺序,如果地址或index发生冲突,后到的请求需要等待之前旧的请求完成后才能继续操作。
本申请提出的缓存读写请求分发(Dispatch)逻辑如下,其中假设访问directory模块获得命中情况的延迟为2cycle。如果满足表中的情况,则不能分发当前的新请求,否则可以分发:
具体流程说明如下:
1.新请求hit,且当前请求在新请求的2cycle以外,以下条件全不满足时,可以执行操作,否则不能执行。
a)如果有正在进行的Load/Store操作,且全地址相同。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
d)如果STQ中暂存了Store操作,且全地址相同,且新请求是Load。
2.新请求hit,且当前请求在新请求的2cycle以内,以下条件全不满足时,可以执行操作,否则不能执行。
a)如果有正在进行的Load/Store操作,且CGC相同,相对于1a)而言条件更严,因为当前正在进行的Load/Store操作时刚刚dispatch,是否命中要2cycle才能知道。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
d)如果STQ中暂存了Store操作,且全地址相同,且新请求是Load。
3.新请求miss,以下条件全不满足时,可以执行新的请求操作,否则不能执行。
a)如果有正在进行的Load/Store操作,且CGC相同。因为新请求会可能会产生被替换的cacheline,从而形成读写冲突,需要等正在进行的读写操作完成。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
d)如果STQ中暂存了Store操作,且全地址相同,且新请求是Load。
4.新请求miss,以下条件全不满足时,可以执行Castout操作,否则不能执行。
a)如果有正在进行的Load/Store操作,且CGC相同。
b)如有正在进行的Castout操作,且CGC相同,且当前miss的情况需产生cache替换。
c)如果有正在进行的Snoop操作,且CGC相同,且当前miss的情况需产生cache替换。
5.总线的Snoop请求,以下条件全不满足时,可以执行,否则不能执行。
a)如果有正在进行的Load/Store操作,且全地址相同。
b)如果有正在进行的Castout操作,且全地址相同。
c)如果有正在进行的Snoop操作,且全地址相同。
其中,“CGC相同”相对于“全地址相同”而言,是更强的冲突检测条件。1a)、1b)、1c)的约束条件,使得Load/Store Hit在同一个CGC上,但是高位Tag不一致的地址上的请求,仍然可以被缓存的并行状态机处理。
虽然图4以判断流程图表示对新请求判断分发,但在实际执行过程中,各种情况下的a)、b)、c)、d)都是同步、并行执行的。缓存微结构中缓存流水线在每个cycle都可以得知当前所有正在执行的读/写/Snoop/Castout操作的地址,读写会有专门的地址寄存器进行记录,Snoop会有专门的地址寄存器进行记录,Castout也有专门的地址寄存器进行记录;同时读写状态机、Snoop状态机和Castout状态机都有繁忙信号输出,流水线每个cycle都可以得知。
上述提到的全不满足,即可以被分发。命中情况与冲突是同时进行的,无论命中与否,当前操作都会需要被并行状态机处理,命中情况是当前地址冲突检测需要参考的信息。
本申请提出的缓存读写分发逻辑可以使不同请求和不同缓存命中情况下,尽可能提高同一个index上的并行处理能力,使得每个请求进入Load/Store Queue到被分发到并行状态机的延时更小,且单位时间内工作的并行状态机个数更多,提升总体Cache读写带宽。
本申请实施例提供了一种计算机设备,该计算机设备可以包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。处计算机程序被处理器执行时,使得处理器执行如上述任一实施例的一种提升缓存带宽的方法的步骤。
本实施例提供的计算机设备的工作过程、工作细节和技术效果,可以参见上文中关于一种提升缓存带宽的方法的实施例,于此不再赘述。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种提升缓存带宽的方法的步骤。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见上文中关于一种提升缓存带宽的方法的实施例,于此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种提升缓存带宽的方法,其特征在于,应用于缓存微结构中,所述方法包括:
步骤S1,接收新请求,并获取所述新请求的命中情况;
步骤S2,基于所述命中情况和所述新请求确定执行条件;
步骤S3,将所述新请求与所述缓存微结构中的旧请求进行地址对比,得到对比结果;若所述对比结果满足所述执行条件,则执行所述新请求;
其中,所述旧请求包括正在进行的当前请求和写入队列中的暂存写入请求;所述新请求未命中时,所述执行条件包括:若所述当前请求为当前替换请求或当前窥探请求,则所述新请求与所述当前请求同余项不相同,且所述当前请求在未命中时产生当前替换数据;
具体地,在所述新请求未命中且产生替换请求时,若所述对比结果满足所述执行条件,则执行所述新请求和所述替换请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在执行完步骤S1之后,判断是否所述缓存微结构中存在所述旧请求;
若存在所述当前请求,或者存在所述暂存写入请求且所述新请求为读取请求,则执行步骤S2和步骤S3;否则直接执行所述新请求。
3.根据权利要求2所述的方法,其特征在于,在所述新请求命中且所述新请求在所述当前请求的预设周期外时,所述执行条件包括:
所述新请求与所述当前请求全地址不相同;
若所述新请求为读取请求,则所述新请求与所述暂存写入请求全地址不相同。
4.根据权利要求2所述的方法,其特征在于,在所述新请求命中且所述新请求在所述当前请求的预设周期内时,所述执行条件包括:
若所述当前请求为当前读取请求或当前写入请求,则所述新请求与所述当前请求同余项不相同,否则所述新请求与所述当前请求全地址不相同;
若所述新请求为读取请求,则所述新请求与所述暂存写入请求的全地址不相同。
5.根据权利要求2所述的方法,其特征在于,所述新请求未命中时,所述执行条件还包括:
若所述当前请求为当前读取请求或当前写入请求,则所述新请求与所述当前请求同余项不相同,否则所述新请求与所述当前请求全地址不相同;
若所述新请求为读取请求,则所述新请求与所述暂存写入请求的全地址不相同。
6.根据权利要求2所述的方法,其特征在于,在所述新请求为窥探请求时,所述执行条件包括:所述新请求与所述当前请求全地址不相同。
7.一种提升缓存带宽的装置,其特征在于,应用于缓存微结构中,所述装置包括:
接收模块,用于接收新请求,并获取所述新请求的命中情况;
条件确定模块,用于基于所述命中情况和所述新请求确定执行条件;
对比模块,用于将所述新请求与所述缓存微结构中的旧请求进行地址对比,得到对比结果;以及,在所述对比结果满足所述执行条件时,执行所述新请求;
其中,所述旧请求包括正在进行的当前请求和写入队列中的暂存写入请求;所述新请求未命中时,所述执行条件包括:若所述当前请求为当前替换请求或当前窥探请求,则所述新请求与所述当前请求同余项不相同,且所述当前请求在未命中时产生当前替换数据;
具体地,所述对比模块用于在所述新请求未命中且产生替换请求时,若所述对比结果满足所述执行条件,则执行所述新请求和所述替换请求。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310587200.0A CN116701246B (zh) | 2023-05-23 | 2023-05-23 | 一种提升缓存带宽的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310587200.0A CN116701246B (zh) | 2023-05-23 | 2023-05-23 | 一种提升缓存带宽的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116701246A CN116701246A (zh) | 2023-09-05 |
CN116701246B true CN116701246B (zh) | 2024-05-07 |
Family
ID=87830356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310587200.0A Active CN116701246B (zh) | 2023-05-23 | 2023-05-23 | 一种提升缓存带宽的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701246B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130663B (zh) * | 2023-09-19 | 2024-06-11 | 摩尔线程智能科技(北京)有限责任公司 | 一种指令读取方法及l2指令缓存、电子设备和存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0432524A2 (en) * | 1989-12-13 | 1991-06-19 | International Business Machines Corporation | Cache memory architecture |
KR20040047398A (ko) * | 2002-11-30 | 2004-06-05 | 엘지전자 주식회사 | 캐쉬 메모리를 이용한 데이터 억세스 방법 |
CN101137966A (zh) * | 2001-08-27 | 2008-03-05 | 英特尔公司 | 通用执行数据通路中软件控制的内容可寻址存储器 |
CN101149704A (zh) * | 2007-10-31 | 2008-03-26 | 中国人民解放军国防科学技术大学 | 微处理器中分段高速缓存的设计方法及分段高速缓存 |
CN102841857A (zh) * | 2012-07-25 | 2012-12-26 | 龙芯中科技术有限公司 | 缓存预测执行的处理器与装置及方法 |
CN104331377A (zh) * | 2014-11-12 | 2015-02-04 | 浪潮(北京)电子信息产业有限公司 | 一种多核处理器系统的目录缓存管理方法 |
CN104809179A (zh) * | 2015-04-16 | 2015-07-29 | 华为技术有限公司 | 访问哈希表的装置和方法 |
CN106126450A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN114253483A (zh) * | 2021-12-24 | 2022-03-29 | 深圳忆联信息系统有限公司 | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 |
CN114721844A (zh) * | 2022-03-10 | 2022-07-08 | 云和恩墨(北京)信息技术有限公司 | 数据缓存方法和装置、计算机设备、存储介质 |
CN115454887A (zh) * | 2022-08-23 | 2022-12-09 | 北京奕斯伟计算技术股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
-
2023
- 2023-05-23 CN CN202310587200.0A patent/CN116701246B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0432524A2 (en) * | 1989-12-13 | 1991-06-19 | International Business Machines Corporation | Cache memory architecture |
CN101137966A (zh) * | 2001-08-27 | 2008-03-05 | 英特尔公司 | 通用执行数据通路中软件控制的内容可寻址存储器 |
KR20040047398A (ko) * | 2002-11-30 | 2004-06-05 | 엘지전자 주식회사 | 캐쉬 메모리를 이용한 데이터 억세스 방법 |
CN101149704A (zh) * | 2007-10-31 | 2008-03-26 | 中国人民解放军国防科学技术大学 | 微处理器中分段高速缓存的设计方法及分段高速缓存 |
CN102841857A (zh) * | 2012-07-25 | 2012-12-26 | 龙芯中科技术有限公司 | 缓存预测执行的处理器与装置及方法 |
CN104331377A (zh) * | 2014-11-12 | 2015-02-04 | 浪潮(北京)电子信息产业有限公司 | 一种多核处理器系统的目录缓存管理方法 |
CN104809179A (zh) * | 2015-04-16 | 2015-07-29 | 华为技术有限公司 | 访问哈希表的装置和方法 |
CN106126450A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN114253483A (zh) * | 2021-12-24 | 2022-03-29 | 深圳忆联信息系统有限公司 | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 |
CN114721844A (zh) * | 2022-03-10 | 2022-07-08 | 云和恩墨(北京)信息技术有限公司 | 数据缓存方法和装置、计算机设备、存储介质 |
CN115454887A (zh) * | 2022-08-23 | 2022-12-09 | 北京奕斯伟计算技术股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Chameleon: A Self-adaptive cache strategy under the ever-changing access frequency in edge network;Pengmiao Li;Computer Communications;第194卷;全文 * |
一种新颖的双端口数据高速缓冲存储器;张卫新, 单睿, 侯朝焕;微电子学(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116701246A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
CN116701246B (zh) | 一种提升缓存带宽的方法、装置、设备及存储介质 | |
CN111949568A (zh) | 一种报文处理方法、装置及网络芯片 | |
CN110795171B (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN107025130B (zh) | 处理节点、计算机系统及事务冲突检测方法 | |
CN115168248B (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
CN117573574B (zh) | 一种预取方法、装置、电子设备及可读存储介质 | |
CN115048142A (zh) | 缓存访问命令处理系统、方法、装置、设备和存储介质 | |
CN114036077A (zh) | 数据处理方法及相关装置 | |
CN113867801A (zh) | 指令缓存、指令缓存组及其请求合并方法 | |
CN111694806B (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
WO2024045817A1 (zh) | 用于调度simt架构处理器的返回数据的方法及相应处理器 | |
CN115858417B (zh) | 缓存数据处理方法、装置、设备及存储介质 | |
CN115934583A (zh) | 分级缓存方法、装置及系统 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN112199400B (zh) | 用于数据处理的方法和装置 | |
CN113157738B (zh) | 堆内数据缓存同步方法、装置、计算机设备及存储介质 | |
CN114063923A (zh) | 数据读取方法、装置、处理器及电子设备 | |
CN114489480A (zh) | 高并发存储数据的方法及系统 | |
CN113467935A (zh) | 一种L1cache load forward的实现方法及系统 | |
CN110442531A (zh) | 基于固态硬盘的读性能提升方法、装置和计算机设备 | |
US11106589B2 (en) | Cache control in a parallel processing system | |
CN117609110B (zh) | 一种缓存方法、高速缓存、电子设备及可读存储介质 | |
CN113934653B (zh) | 一种嵌入式系统的Cache实现方法和装置 |
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 |