CN117609110A - 一种缓存方法、高速缓存、电子设备及可读存储介质 - Google Patents
一种缓存方法、高速缓存、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117609110A CN117609110A CN202311753900.9A CN202311753900A CN117609110A CN 117609110 A CN117609110 A CN 117609110A CN 202311753900 A CN202311753900 A CN 202311753900A CN 117609110 A CN117609110 A CN 117609110A
- Authority
- CN
- China
- Prior art keywords
- request
- cache
- processing
- register
- response
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 161
- 230000004044 response Effects 0.000 claims abstract description 63
- 230000015654 memory Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 13
- 101150015860 MC1R gene Proteins 0.000 description 58
- 102100034216 Melanocyte-stimulating hormone receptor Human genes 0.000 description 58
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005192 partition Methods 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
-
- 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
-
- 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
Abstract
本发明实施例提供一种缓存方法、高速缓存、电子设备及可读存储介质,涉及计算机技术领域。该方法包括:请求缓冲区在未命中状态处理寄存器中存在请求地址与第一请求地址相同的第二请求的情况下,将第一请求传入所述未命中状态处理寄存器中,并对第一请求和第二请求进行合并处理,得到第三请求;未命中状态处理寄存器根据第三请求生成处理任务,并将处理任务发送至主流水线;主流水线根据处理任务对高速缓存的缓存行进行访问,并生成处理结果;响应缓冲区根据处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。本发明实施例可以提升缓存的整体性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种缓存方法、高速缓存、电子设备及可读存储介质。
背景技术
在支持预取技术的处理器中,存在占比较大的不及时预取,也就是预取器虽然预测到了未来需要的数据,但请求发送较晚,当预取产生的缓存未命中还在未命中状态处理寄存器(Miss Status Handling Register,MSHR)中等待数据返回时,针对同一地址的获取(Acquire)请求已经到达高速缓存(Cache)。在一般的Cache设计中,和MSHR中记录的预取任务同地址的请求会统一在 Cache 入口被阻塞,等待预取任务的数据回填完成后再进入主流水线访问缓存行。这会阻塞后续同地址的其他请求,使得Cache入口处用于缓冲阻塞请求的缓冲区(Buffer)被占用,如果Buffer被占满,则后面所有访问Cache的请求都不能进入Cache,影响Cache的整体性能。
发明内容
本发明实施例提供一种缓存方法、高速缓存、电子设备及可读存储介质,可以解决相关技术中到达Cache的请求如果与MSHR中记录的请求的地址相同,会在Cache 入口被阻塞,进而阻塞后续同地址的其他请求,影响Cache的整体性能的问题。
为了解决上述问题,本发明实施例公开了一种缓存方法,应用于高速缓存,所述高速缓存包括请求缓冲区、未命中状态处理寄存器、主流水线和响应缓冲区;所述方法包括:
所述请求缓冲区接收第一节点发送的第一请求,所述第一请求中携带第一请求地址;
所述请求缓冲区在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求;所述第三请求中携带所述第一请求的第一请求信息和所述第二请求的第二请求信息;
所述未命中状态处理寄存器根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线;
所述主流水线根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果;
所述响应缓冲区根据所述处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。
可选地,所述请求缓冲区在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求,包括:
所述请求缓冲区根据所述第一请求地址查询未命中状态处理寄存器中是否存在目标寄存器项,所述目标寄存器项用于记录第二请求的第二请求信息,所述第二请求的第二请求地址与所述第一请求地址相同;
所述请求缓冲区在所述未命中状态处理器寄存器中存在所述目标寄存器项的情况下,将所述第一请求的第一请求信息添加至所述目标寄存器项中,生成第三请求。
可选地,所述第一请求包括获取请求,所述第二请求包括预取请求;
所述未命中状态处理寄存器根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线,包括:
所述未命中状态处理寄存器根据所述第三请求中的第二请求信息从下游节点中获取目标数据块;
所述未命中状态处理寄存器根据所述第三请求生成处理任务,并在接收到所述下游节点返回的目标数据块的情况下,向主流水线发送所述处理任务。
可选地,所述主流水线根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果,包括:
所述主流水线从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行;
所述主流水线将所述目标数据块的状态更新为第一状态,所述第一状态用于指示所述获取请求已完成。
可选地,所述主流水线从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行,包括:
所述主流水线向所述高速缓存的目录发送读请求,以读取所述高速缓存中各个缓存行的状态信息,并利用缓存替换策略从所述高速缓存的各个缓存行中确定出第一缓存行;
所述主流水线将所述目标数据块写入所述第一缓存行。
可选地,所述方法还包括:
所述主流水线将所述第一缓存行中的原数据写回所述下游节点。
另一方面,本发明实施例公开了一种高速缓存,所述高速缓存包括请求缓冲区、未命中状态处理寄存器、主流水线和响应缓冲区;
所述请求缓冲区,用于接收第一节点发送的第一请求,所述第一请求中携带第一请求地址;在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求;所述第三请求中携带所述第一请求的第一请求信息和所述第二请求的第二请求信息;
所述未命中状态处理寄存器,用于根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线;
所述主流水线,用于根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果;
所述响应缓冲区,用于根据所述处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。
再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的缓存方法。
本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的缓存方法。
本发明实施例包括以下优点:
本发明实施例提供了一种缓存方法,在未命中状态处理寄存器中存在请求地址与接收到的第一请求的第一请求地址相同的第二请求的情况下,通过将第一请求与MSHR中记录的第二请求在MSHR中合并为一个第三请求,减少了请求在缓存入口阻塞的情况,使得后续的其他请求能够顺利进入缓存,有利于提升缓存的整体性能。并且,在本发明实施例中,MSHR基于合并后的第三请求生成一个处理任务,并将该处理任务发送至主流水线,也即只需要进入一次主流水线,主流水线基于该处理任务只需访问一次缓存,从而减少了主流水线的压力和缓存读写次数,提升了第一节点对缓存的访存效率,有利于提升计算机系统的整体性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种缓存方法实施例的步骤流程图;
图2是本发明的一种高速缓存的结构示意图;
图3是本发明示例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
实施例
参照图1,示出了本发明的一种缓存方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、所述请求缓冲区接收第一节点发送的第一请求,所述第一请求中携带第一请求地址;
步骤102、所述请求缓冲区在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求;所述第三请求中携带所述第一请求的第一请求信息和所述第二请求的第二请求信息;
步骤103、所述未命中状态处理寄存器根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线;
步骤104、所述主流水线根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果;
步骤105、所述响应缓冲区根据所述处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。
本发明实施例提供的缓存方法,应用于高速缓存,高速缓存是存在于内存(或主存)与处理器之间的一级存储器,通常由静态存储单元(SRAM)组成,用于提升系统的访存速度。其中,所述处理器可以包括但不限于:CPU、GPU、数据处理器(Data Processing Unit,DPU)、现场可编程门阵列(Field Programmable Gate Array,FPGA)和专用集成电路(Application Specific Integrated Circuit,ASIC)中的处理模块或处理单元,等等。
参照图2,示出了本发明实施例提供的一种高速缓存的结构示意图。如图2所示,所述高速缓存包括请求缓冲区、未命中状态处理寄存器、主流水线和响应缓冲区。
其中,请求缓冲区(Request Buffer)用于在Cache的入口处判断第一节点发送的第一请求是否需要阻塞,并在需要对第一请求进行阻塞的情况下,进一步判断第一请求是否满足合并(merge)条件。可以理解的是,第一节点通常指的是Cache的上游节点,也即在计算机存储层次中与Cache相邻,且更靠近处理器侧的节点,例如寄存器、处理器,等等。计算机存储层次即把各种存储部件(包括寄存器、高速缓存、内存、硬盘等)根据工作速度和单位成本划分成不同层次。越靠近处理器端,存储部件的工作速度越快、容量越小、单位容量的成本越高;越靠近内存端,存储部件的容量越大、工作速度越慢、单位容量的成本越低。
在本发明实施例中,第一请求可以是第一节点发送至Cache的任意一种请求,例如,第一请求可以是处理器发送至Cache的访存请求,或者计算机存储层次中其他上游节点发送至Cache的获取请求、读请求等。如果第一请求中携带的第一请求地址,与未命中状态处理寄存器中记录的第二请求的请求地址相同,就可以认为该第一请求满足合并条件。
需要说明的是,未命中状态处理寄存器(Miss Status Handling Register,MSHR)是用于处理缓存未命中(Cache misses)的一种结构。当缓存访问发生未命中时,相关的数据需要从更低级的缓存或主内存中取得,这通常需要一些时间。MSHR是为了优化这个过程而存在的,确保处理多个缓存未命中的请求时,系统可以更高效地操作。当缓存接收到上游节点的获取(Acquire)请求或释放(Release)请求,或者接收到下游节点的探针(Probe)请求时,会为该请求分配一项MSHR,同时通过读取目录获取该请求的请求地址在本层缓存以及上一层缓存中的权限信息。
在一般的Cache设计中,与MSHR中预取请求或预取任务同地址的请求会统一在Cache 入口被阻塞,等待预取请求的数据回填完成后再进入主流水线访问缓存行,MSHR会对后续与预取请求同地址的请求进行阻塞,使得Cache 入口处用于缓冲阻塞请求的请求缓冲区被占用,如果请求缓冲区被占满,则后面所有访问Cache的请求都不能进入,影响Cache的整体性能。
在本发明实施例中,请求缓冲区在确定接收到的第一请求的第一请求地址与MSHR中记录的第二请求的请求地址相同的情况下,直接将第一请求传入MSHR中,对第一请求以及MSHR中的第二请求进行合并处理,得到第三请求。可以理解的是,第三请求中同时包含第一请求的第一请求信息和第二请求的第二请求信息。示例性地,请求缓冲区可以将第一请求的第一请求信息写入MSHR中第二请求的第二请求信息之后,这样修改后的MSHR中就同时记录的第一请求的第一请求信息和第二请求的第二请求信息,无需额外为第三请求分配新的MSHR。或者,请求缓冲区也可以将第一请求的第一请求信息和第二请求的第二请求信息写入一个新的MSHR中,这个新的MSHR用于记录合并后的第三请求,然后再释放原本的第二请求占用的MSHR。
MSHR根据第三请求生成处理任务。需要说明的是,如果不对第一请求和第二请求进行合并,MSHR中的第二请求需要在数据回填过程中进入主流水线,由主流水线查找并对比缓存行,以判断是否命中;第一请求的解析过程也需要进入主流水线,由主流水线对缓存进行访问。而在本发明实施例中,MSHR直接根据第三请求生成处理任务,并将该处理任务发送至主流水线,从而将第一请求、第二请求的两次进入主流水线合并为了一次,减少了主流水线的压力。
主流水线根据MSHR发送的处理任务,对Cache的缓存行进行访问,对第一请求的第一请求信息进行处理,以及对第二请求的第二请求信息进行处理,并生成处理结果。示例性地,假设第一请求是获取请求,第二请求预取请求,则主流水线在接收到处理任务之后,先从下游节点获取预取请求所需的预取块,并将预取块写入Cache中,并根据该预取块确定获取请求所需的数据,生成对应的处理结果。或者,假设第一请求是释放请求,第二请求是预取请求,则主流水线在接收到处理任务之后,可以直接将释放请求和预取请求的请求地址对应的数据块的状态更新为释放请求和预取请求完成后的状态,等等。
需要说明的是,在本发明实施例中,主流水线基于处理任务只需要访问一次缓存,相比于合并之前,主流水线对第一请求的解析与响应过程需要访问一次缓存,对第二请求的解析与响应过程还需要访问一次缓存,本发明实施例减少了缓存读写次数,提升了第一节点对缓存的访存效率,有利于提升计算机系统的整体性能。
响应缓冲区(Grant Buffer)根据主流水线的处理结果,分别生成第一请求的第一响应,和第二请求的第二响应,并将第一响应和第二响应并行发送至第一节点。作为一种示例,假设第一请求是获取请求,第二请求预取请求,那么第一响应为获取响应,用于指示数据获取完成,且该获取响应中携带有获取的数据;第二响应为预取响应,用于指示预取完成。
本发明实施例提供的缓存方法,在未命中状态处理寄存器中存在请求地址与接收到的第一请求的第一请求地址相同的第二请求的情况下,通过将第一请求与MSHR中记录的第二请求在MSHR中合并为一个第三请求,减少了请求在缓存入口阻塞的情况,使得后续的其他请求能够顺利进入缓存,有利于提升缓存的整体性能。并且,在本发明实施例中,MSHR基于合并后的第三请求生成一个处理任务,并将该处理任务发送至主流水线,也即只需要进入一次主流水线,主流水线基于该处理任务只需访问一次缓存,从而减少了主流水线的压力和缓存读写次数,提升了第一节点对缓存的访存效率,有利于提升计算机系统的整体性能。
在本发明的一种可选实施例中,步骤102所述请求缓冲区在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求,包括:
步骤S11、所述请求缓冲区根据所述第一请求地址查询未命中状态处理寄存器中是否存在目标寄存器项,所述目标寄存器项用于记录第二请求的第二请求信息,所述第二请求的第二请求地址与所述第一请求地址相同;
步骤S12、所述请求缓冲区在所述未命中状态处理器寄存器中存在所述目标寄存器项的情况下,将所述第一请求的第一请求信息添加至所述目标寄存器项中,生成第三请求。
在MSHR中,每一个请求均对应一个MSHR项, MSHR项中记录了该请求的请求信息,其中,请求信息中可以包含该请求的请求地址、请求类型等。
请求缓冲区在接收到第一请求之后,可以根据第一请求的第一请求地址,对MSHR进行查询,判断MSHR中是否存在一个目标寄存器项,MSHR项中记录了第二请求的第二请求信息,如果该第二请求的第二请求地址与第一请求的第一请求地址相同,就可以认为该MSHR项为本发明中的目标寄存器项,请求缓冲区在查找到目标寄存器项的情况下,就可以认为在MSHR中存在请求地址与第一请求的第一请求地址相同的第二情况,也即第一请求满足合并条件,因此,对第一请求和MSHR中记录的第二请求进行合并处理:将第一请求的第一请求信息添加到第二请求所在的目标寄存器项中,此时该目标寄存器项中记录了第一请求的第一请求信息和第二请求的第二请求信息,为了便于区分,将合并后的目标寄存器项中记录的请求记作第三请求。在本发明实施例中,可以直接复用第二请求的MSHR项,也即目标寄存器项,无需为第三请求额外分配新的MSHR项。
下面以第一请求为获取请求,第二请求为预取请求为例,对本发明实施例提供的缓存方法进行举例说明。
在本发明的一种可选实施例中,所述第一请求包括获取请求,所述第二请求包括预取请求;步骤103所述未命中状态处理寄存器根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线,包括:
步骤S21、所述未命中状态处理寄存器根据所述第三请求中的第二请求信息从下游节点中获取目标数据块;
步骤S22、所述未命中状态处理寄存器根据所述第三请求生成处理任务,并在接收到所述下游节点返回的目标数据块的情况下,向主流水线发送所述处理任务。
预取指的是提前从主存储器中加载数据到缓存中,以减少处理器等待数据的时间,提升缓存命中率。当处理器能够预测到将来可能需要的数据时,就可以在实际需要数据之间就开始加载数据,从而提高整体性能。
在本发明实施例中,如果第二请求是预取请求,那么MSHR需要从下游节点,例如主存储器或下层缓存中将第二请求信息对应的目标数据块预取到缓存中。
以L2 Cache为例,L2的目录中会用一个预取(prfetch)位记录一个缓存块是否是预取上来的块。当MSHR接收到Acquire请求,如果该请求的请求地址在L2中不命中或者命中了预取上来的块,MSHR就会发起一个“触发预取”的请求,该请求会发给预取器,预取器会在请求地址的基础上,加上根据(Best-offset)算法训练出来的最佳偏移量,生成预取地址,然后预取器会将预取请求发送到该预取地址所在的缓存分片(bank),请求类型位(Intent)。MSHR为预取请求分配一项MSHR,如果预取块不在L2中,MSHR会负责从L3把预取块拿到L2中。当MSHR完成一次预取,会再发送一个响应到预取器,预取器会根据这个响应训练Best-offset算法。
接下来,MSHR根据第三请求生成处理任务,并在接收到下游节点返回的目标数据块的情况下,向主流水线发送该处理任务。主流水线在接收到该处理任务之后,对缓存行进行访问,进行读写操作。例如,将目标数据块写入缓存行,并读取写入的目标数据块,生成处理结果,处理结果中可以携带目标数据块,响应缓冲区生成针对获取请求的第一响应,通过第一响应向第一节点返回获取的数据。
可选地,步骤104所述主流水线根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果,包括:
步骤S31、所述主流水线从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行;
步骤S32、所述主流水线将所述目标数据块的状态更新为第一状态,所述第一状态用于指示所述获取请求已完成。
主流水线负责对缓存行进行读写操作。具体地,在本发明实施例中,当第一请求为获取请求,第二请求为预取请求的情况下,主流水线在接收到MSHR发送的处理任务之后,可以缓存中确定一个第一缓存行,并将预取的目标数据块写入第一缓存行。可以理解的是,在缓存未满的情况下,第一缓存行可以是未被占用的任意一个缓存行,在缓存已满的情况下,第一缓存行可以是基于缓存替换算法确定出来的待替换的缓存行,例如,第一缓存行是最近最少被访问的缓存行。
需要说明的是,由于本发明实施例中的获取请求与预取请求具有相同的请求地址,因此可以认为获取请求需要获取的数据为预取请求需要预取的目标数据块,因此,主流水线将目标数据块写入第一缓存行之后,就可以直接将目标数据块的状态更新为第一状态,以表示获取请求已经完成。
在本发明实施例中,获取请求不需要等待预取请求完成之后再进入主流水线处理,而是与MSHR中的预取请求合并后一起进入主流水线,主流水线完成数据回填之后就可以获得获取请求所需的数据进而对获取请求和预取请求同时进行响应,减少了获取请求从请求发出到完成响应之间的等待时间,加快了获取请求的响应速度,提升了处理器对缓存的访存效率。
可选地,步骤S31所述主流水线从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行,包括:
子步骤S311、所述主流水线向所述高速缓存的目录发送读请求,以读取所述高速缓存中各个缓存行的状态信息,并利用缓存替换策略从所述高速缓存的各个缓存行中确定出第一缓存行;
子步骤S312、所述主流水线将所述目标数据块写入所述第一缓存行。
在缓存已满的情况下,主流水线需要先基于缓存替换策略选择一个待替换的第一缓存行,然后再将目标数据块回填至第一缓存行中。
具体地,主流水线可以向本层缓存的目录发送读请求,以读取该缓存中各个缓存行的状态信息。其中,目录是缓存中的一个结构,会存储缓存里每个行的状态(例如:是否有效,是否被修改,替换状态等)以及地址的标签,每一次访问缓存的请求都要去读目录,查看对应的数据块是否在缓存里,如果不在则根据替换状态选择待替换的缓存行,从下游节点中获取数据块并填入待替换的缓存行中。
主流水线基于读取到的状态信息,采用缓存替换策略,例如PLRU(Pseudo LeastRecently Used,伪最近最少使用)替换算法,选出最近最少被访问到的缓存行作为第一缓存行,然后再将目标数据块写入第一缓存行中。
其中, PLRU算法使用一个位向量(bit vector),该向量的每一位对应于缓存集合中的一个缓存行。每当发生一次缓存访问时,PLRU算法会根据访问的情况更新相应的位向量,以决定哪个缓存行是最近最少使用的。实现逻辑通常包括:1)初始化:对于每个缓存集合,初始化一个位向量,其中的每一位都初始化为0。2)访问更新:每当缓存行被访问时,根据具体的访问情况更新对应的位。如果缓存行被访问,将对应的位设置为1,表示最近被使用。如果缓存行被替换,将对应的位设置为0,表示最近没有被使用。3)替换决策:当需要替换缓存行时,选择位向量中值为0的位所对应的缓存行进行替换。这样就选择了最近最少使用的缓存行。
当然,在本发明实施例中,也可以采用其他的缓存替换策略来确定第一缓存行,例如,采用LRU(Least Recently Used,最近最少使用)算法、MRU(Most Recently Used,最近使用)算法、LFU(Least-Frequently Used,最不常用)算法,等等。
可选地,所述方法还包括:
所述主流水线将所述第一缓存行中的原数据写回所述下游节点。
主流水线将目标数据块写入第一缓存行之前,可以将第一缓存行中的原数写回下游节点,以防数据丢失。
下面以高速缓存为L2缓存为例,对本发明实施例提供的缓存方法进行举例说明。
在L2缓存中,上游节点的Acquire请求会从SinkA通道进入Cache,然后在请求缓冲区(Request Buffer)中判断是否需要对该请求进行阻塞。在本发明实施例中,RequestBuffer可以获取MSHR中各个MSHR项的信息,并在需要阻塞的情况下,对Acquire请求进行合并条件的判断,如果满足合并条件,则将对应的 Acquire 请求传入同地址的 MSHR 项中,并对该项标记 mergeA,新增加一系列请求状态信息,使其包含Acquire 请求和MSHR项中记录的Prefetch请求共两个请求的内容。当下游节点返回预取的目标数据块后,唤醒MSHR项,MSHR生成处理任务并进入 主流水线(MainPipe)进行处理。此时主流水线会选出第一缓存行,并将新数据写入第一缓存行的对应位置,而目标数据块的状态则更新为Acquire 请求处理完成后应该有的状态。随后主流线针对处理任务的处理结果进入响应缓冲区(GrantBuffer),Grant Buffer负责处理两条请求的响应。对于 Prefetch 请求,L2需要对发出预取的上游节点返回预取响应,可以直接返回;而对于 Acquire 请求,L2需要对发出Acquire的上游节点返回数据和响应,可以通过响应队列(grantQueue)顺序进行响应。
综上,本发明实施例提供了一种缓存方法,在未命中状态处理寄存器中存在请求地址与接收到的第一请求的第一请求地址相同的第二请求的情况下,通过将第一请求与MSHR中记录的第二请求在MSHR中合并为一个第三请求,减少了请求在缓存入口阻塞的情况,使得后续的其他请求能够顺利进入缓存,有利于提升缓存的整体性能。并且,在本发明实施例中,MSHR基于合并后的第三请求生成一个处理任务,并将该处理任务发送至主流水线,也即只需要进入一次主流水线,主流水线基于该处理任务只需访问一次缓存,从而减少了主流水线的压力和缓存读写次数,提升了第一节点对缓存的访存效率,有利于提升计算机系统的整体性能。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例
参照图2,示出了本发明的一种高速缓存的结构框图,所述高速缓存包括请求缓冲区、未命中状态处理寄存器、主流水线和响应缓冲区;
所述请求缓冲区,用于接收第一节点发送的第一请求,所述第一请求中携带第一请求地址;在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求;所述第三请求中携带所述第一请求的第一请求信息和所述第二请求的第二请求信息;
所述未命中状态处理寄存器,用于根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线;
所述主流水线,用于根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果;
所述响应缓冲区,用于根据所述处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。
可选地,所述请求缓冲区具体用于:
根据所述第一请求地址查询未命中状态处理寄存器中是否存在目标寄存器项,所述目标寄存器项用于记录第二请求的第二请求信息,所述第二请求的第二请求地址与所述第一请求地址相同;
在所述未命中状态处理器寄存器中存在所述目标寄存器项的情况下,将所述第一请求的第一请求信息添加至所述目标寄存器项中,生成第三请求。
可选地,所述第一请求包括获取请求,所述第二请求包括预取请求;所述未命中状态处理寄存器具体用于:
根据所述第三请求中的第二请求信息从下游节点中获取目标数据块;
根据所述第三请求生成处理任务,并在接收到所述下游节点返回的目标数据块的情况下,向主流水线发送所述处理任务。
可选地,所述主流水线具体用于:
从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行;
将所述目标数据块的状态更新为第一状态,所述第一状态用于指示所述获取请求已完成。
可选地,所述主流水线具体用于:
向所述高速缓存的目录发送读请求,以读取所述高速缓存中各个缓存行的状态信息,并利用缓存替换策略从所述高速缓存的各个缓存行中确定出第一缓存行;
将所述目标数据块写入所述第一缓存行。
可选地,所述主流水线还用于:
将所述第一缓存行中的原数据写回所述下游节点。
综上,本发明实施例提供了一种高速缓存,在未命中状态处理寄存器中存在请求地址与接收到的第一请求的第一请求地址相同的第二请求的情况下,通过将第一请求与MSHR中记录的第二请求在MSHR中合并为一个第三请求,减少了请求在缓存入口阻塞的情况,使得后续的其他请求能够顺利进入缓存,有利于提升缓存的整体性能。并且,在本发明实施例中,MSHR基于合并后的第三请求生成一个处理任务,并将该处理任务发送至主流水线,也即只需要进入一次主流水线,主流水线基于该处理任务只需访问一次缓存,从而减少了主流水线的压力和缓存读写次数,提升了第一节点对缓存的访存效率,有利于提升计算机系统的整体性能。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的处理器,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
参照图3,是本发明实施例提供的一种电子设备的结构框图。如图3所示,所述电子设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述实施例的缓存方法。
所述处理器可以是CPU(Central Processing Unit,中央处理器),通用处理器、DSP(Digital Signal Processor,数字信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmble Gate Array,现场可编程门阵列)或者其他可编辑器件、晶体管逻辑器件、硬件部件或者其任意组合。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
所述通信总线可包括一通路,在存储器和通信接口之间传送信息。通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器可以是ROM(Read Only内存,只读内存)或可存储静态信息和指令的其他类型的静态存储设备、RAM(Random Access,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable Programmable ReadOnly,电可擦可编程只读内存)、CD-ROM(Compact Disa Read Only,只读光盘)、磁带、软盘和光数据存储设备等。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备(服务器或者终端)的处理器执行时,使得处理器能够执行图1所示的缓存方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种缓存方法、高速缓存、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种缓存方法,其特征在于,应用于高速缓存,所述高速缓存包括请求缓冲区、未命中状态处理寄存器、主流水线和响应缓冲区;所述方法包括:
所述请求缓冲区接收第一节点发送的第一请求,所述第一请求中携带第一请求地址;
所述请求缓冲区在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求;所述第三请求中携带所述第一请求的第一请求信息和所述第二请求的第二请求信息;
所述未命中状态处理寄存器根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线;
所述主流水线根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果;
所述响应缓冲区根据所述处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。
2.根据权利要求1所述的方法,其特征在于,所述请求缓冲区在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求,包括:
所述请求缓冲区根据所述第一请求地址查询未命中状态处理寄存器中是否存在目标寄存器项,所述目标寄存器项用于记录第二请求的第二请求信息,所述第二请求的第二请求地址与所述第一请求地址相同;
所述请求缓冲区在所述未命中状态处理器寄存器中存在所述目标寄存器项的情况下,将所述第一请求的第一请求信息添加至所述目标寄存器项中,生成第三请求。
3.根据权利要求1所述的方法,其特征在于,所述第一请求包括获取请求,所述第二请求包括预取请求;
所述未命中状态处理寄存器根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线,包括:
所述未命中状态处理寄存器根据所述第三请求中的第二请求信息从下游节点中获取目标数据块;
所述未命中状态处理寄存器根据所述第三请求生成处理任务,并在接收到所述下游节点返回的目标数据块的情况下,向主流水线发送所述处理任务。
4.根据权利要求3所述的方法,其特征在于,所述主流水线根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果,包括:
所述主流水线从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行;
所述主流水线将所述目标数据块的状态更新为第一状态,所述第一状态用于指示所述获取请求已完成。
5.根据权利要求4所述的方法,其特征在于,所述主流水线从所述高速缓存中确定第一缓存行,并将所述目标数据块写入所述第一缓存行,包括:
所述主流水线向所述高速缓存的目录发送读请求,以读取所述高速缓存中各个缓存行的状态信息,并利用缓存替换策略从所述高速缓存的各个缓存行中确定出第一缓存行;
所述主流水线将所述目标数据块写入所述第一缓存行。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述主流水线将所述第一缓存行中的原数据写回所述下游节点。
7.一种高速缓存,其特征在于,所述高速缓存包括请求缓冲区、未命中状态处理寄存器、主流水线和响应缓冲区;
所述请求缓冲区,用于接收第一节点发送的第一请求,所述第一请求中携带第一请求地址;在未命中状态处理寄存器中存在请求地址与所述第一请求地址相同的第二请求的情况下,将所述第一请求传入所述未命中状态处理寄存器中,并对所述第一请求和所述第二请求进行合并处理,得到第三请求;所述第三请求中携带所述第一请求的第一请求信息和所述第二请求的第二请求信息;
所述未命中状态处理寄存器,用于根据所述第三请求生成处理任务,并将所述处理任务发送至所述主流水线;
所述主流水线,用于根据所述处理任务对所述高速缓存的缓存行进行访问,并生成处理结果;
所述响应缓冲区,用于根据所述处理结果生成针对所述第一请求的第一响应,和所述第二请求的第二响应,并将所述第一响应和所述第二响应并行发送至所述第一节点。
8.根据权利要求7所述的高速缓存,其特征在于,所述请求缓冲区具体用于:
根据所述第一请求地址查询未命中状态处理寄存器中是否存在目标寄存器项,所述目标寄存器项用于记录第二请求的第二请求信息,所述第二请求的第二请求地址与所述第一请求地址相同;
在所述未命中状态处理器寄存器中存在所述目标寄存器项的情况下,将所述第一请求的第一请求信息添加至所述目标寄存器项中,生成第三请求。
9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至6中任一项所述的缓存方法。
10.一种可读存储介质,其特征在于,当所述可读存储介质中的指令由电子设备的处理器执行时,使得所述处理器能够执行如权利要求1至6中任一项所述的缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753900.9A CN117609110A (zh) | 2023-12-19 | 2023-12-19 | 一种缓存方法、高速缓存、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753900.9A CN117609110A (zh) | 2023-12-19 | 2023-12-19 | 一种缓存方法、高速缓存、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117609110A true CN117609110A (zh) | 2024-02-27 |
Family
ID=89951653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311753900.9A Pending CN117609110A (zh) | 2023-12-19 | 2023-12-19 | 一种缓存方法、高速缓存、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117609110A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806992A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 数据块替换方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399824A (zh) * | 2013-07-17 | 2013-11-20 | 北京航空航天大学 | 一种计算机处理器中高速缓存中缓存不命中的状态保持方法与装置 |
EP3151520A1 (en) * | 2015-10-02 | 2017-04-05 | Efficient IP SAS | Quarantining an internet protocol address |
US10754782B1 (en) * | 2019-03-30 | 2020-08-25 | Intel Corporation | Apparatuses, methods, and systems to accelerate store processing |
CN115048142A (zh) * | 2022-03-22 | 2022-09-13 | 深圳云豹智能有限公司 | 缓存访问命令处理系统、方法、装置、设备和存储介质 |
CN115185867A (zh) * | 2022-03-24 | 2022-10-14 | 海光信息技术股份有限公司 | 处理访问请求的方法 |
CN115879107A (zh) * | 2022-10-27 | 2023-03-31 | 北京奕斯伟计算技术股份有限公司 | 计算机装置及其访存方法、处理装置和存储介质 |
CN115934170A (zh) * | 2022-12-29 | 2023-04-07 | 海光信息技术股份有限公司 | 预取方法及装置、预取训练方法及装置、存储介质 |
CN116010293A (zh) * | 2022-12-30 | 2023-04-25 | 上海芷锐电子科技有限公司 | 数据请求处理电路、方法及其缓存电路和处理器 |
CN116483743A (zh) * | 2023-03-20 | 2023-07-25 | 北京奕斯伟计算技术股份有限公司 | 数据高速缓存预取装置、方法及处理器 |
-
2023
- 2023-12-19 CN CN202311753900.9A patent/CN117609110A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399824A (zh) * | 2013-07-17 | 2013-11-20 | 北京航空航天大学 | 一种计算机处理器中高速缓存中缓存不命中的状态保持方法与装置 |
EP3151520A1 (en) * | 2015-10-02 | 2017-04-05 | Efficient IP SAS | Quarantining an internet protocol address |
US10754782B1 (en) * | 2019-03-30 | 2020-08-25 | Intel Corporation | Apparatuses, methods, and systems to accelerate store processing |
CN115048142A (zh) * | 2022-03-22 | 2022-09-13 | 深圳云豹智能有限公司 | 缓存访问命令处理系统、方法、装置、设备和存储介质 |
CN115185867A (zh) * | 2022-03-24 | 2022-10-14 | 海光信息技术股份有限公司 | 处理访问请求的方法 |
CN115879107A (zh) * | 2022-10-27 | 2023-03-31 | 北京奕斯伟计算技术股份有限公司 | 计算机装置及其访存方法、处理装置和存储介质 |
CN115934170A (zh) * | 2022-12-29 | 2023-04-07 | 海光信息技术股份有限公司 | 预取方法及装置、预取训练方法及装置、存储介质 |
CN116010293A (zh) * | 2022-12-30 | 2023-04-25 | 上海芷锐电子科技有限公司 | 数据请求处理电路、方法及其缓存电路和处理器 |
CN116483743A (zh) * | 2023-03-20 | 2023-07-25 | 北京奕斯伟计算技术股份有限公司 | 数据高速缓存预取装置、方法及处理器 |
Non-Patent Citations (1)
Title |
---|
沈秀红;赵朝君;孟建熠;项晓燕;: "基于基地址寄存器映射的数据缓存研究", 计算机工程, no. 05, 15 May 2013 (2013-05-15), pages 73 - 77 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806992A (zh) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | 数据块替换方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803486B2 (en) | Write merging on stores with different privilege levels | |
CN107066396B (zh) | 用于操作虚拟索引的物理标记的缓存的装置及方法 | |
US8140759B2 (en) | Specifying an access hint for prefetching partial cache block data in a cache hierarchy | |
KR101038963B1 (ko) | 캐쉬 할당을 위한 장치, 시스템, 방법 및 기계 액세스가능 매체 | |
US7827354B2 (en) | Victim cache using direct intervention | |
US7305523B2 (en) | Cache memory direct intervention | |
US6460114B1 (en) | Storing a flushed cache line in a memory buffer of a controller | |
US7669009B2 (en) | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches | |
US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
US20110072218A1 (en) | Prefetch promotion mechanism to reduce cache pollution | |
US20170161194A1 (en) | Page-based prefetching triggered by tlb activity | |
US7194586B2 (en) | Method and apparatus for implementing cache state as history of read/write shared data | |
JP2023507078A (ja) | プリフェッチレベルの降格 | |
CN117609110A (zh) | 一种缓存方法、高速缓存、电子设备及可读存储介质 | |
US6449698B1 (en) | Method and system for bypass prefetch data path | |
US7058767B2 (en) | Adaptive memory access speculation | |
CN113448879A (zh) | 存储器管理 | |
US20010032297A1 (en) | Cache memory apparatus and data processing system | |
US8176254B2 (en) | Specifying an access hint for prefetching limited use data in a cache hierarchy | |
EP3332329B1 (en) | Device and method for prefetching content to a cache memory | |
CN110688155A (zh) | 一种访问不可缓存区域的存储指令的合并方法 |
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 |