CN117472802B - 高速缓存访问方法、处理器、电子设备及存储介质 - Google Patents
高速缓存访问方法、处理器、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117472802B CN117472802B CN202311828921.2A CN202311828921A CN117472802B CN 117472802 B CN117472802 B CN 117472802B CN 202311828921 A CN202311828921 A CN 202311828921A CN 117472802 B CN117472802 B CN 117472802B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- filling
- access
- access instruction
- 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 54
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction 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/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/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
-
- 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
本发明提供一种高速缓存访问方法、处理器、电子设备及存储介质,涉及计算机技术领域,方法包括:L1 Cache在未命中访存指令的情况下,向L2 Cache发送访问请求;访问请求中包括访存指令;L2 Cache接收到访问请求后,在命中访存指令的情况下,向L1 Cache发送填充提示信号;填充提示信号用于指示填充数据的地址信息;填充数据包括L2 Cache命中访存指令的数据;L2 Cache在发送填充提示信号的n拍后,向L1 Cache发送填充数据;L1 Cache基于填充提示信号,接收填充数据;基于填充数据,执行访存指令的命中写回。本发明能够加速访存指令的写回,提高处理器性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种高速缓存访问方法、处理器、电子设备及存储介质。
背景技术
半导体工艺的迅速发展使处理器的速度和集成度越来越高,处理器设计者可以利用来实现芯片的晶体管资源的数目和种类都不断增加。数据中心、高性能计算等应用场景对处理器的性能也提出了越来越高的要求。根据应用需求以及片上集成晶体管数目不断增加的趋势,集成在处理器芯片上的高速缓冲存储器(简称“高速缓存”,Cache)的容量越来越大,并分为多级存储层次,来提高处理器读写指令和数据的速度,以利用程序访问的时间和空间局部性,使处理器能够直接从Cache中取得指令和数据,而不必访问内存,从而提高处理器的性能。
现有技术中,处理器的主流水线都是访问一级高速缓存(L1 Cache),一级高速缓存如果访问失效(miss),再访问二级高速缓存(L2 Cache);如果二级高速缓存命中(hit),则返回数据给主流水线的一级高速缓存。对于二级高速缓存填充数据给主流水线的时机,处理器主流水线预先并不知道。通常采用在二级高速缓存填充数据的同时,主流水线将所记录的一级高速缓存访问失效的地址与二级高速缓存回填数据给一级高速缓存对应的地址进行比较,才知道数据正在填充到一级高速缓存。对于访存队列存储失效的访存指令需要的填充数据的处理器,在下一时钟周期失效的访存指令拿到填充的数据,写回结果及传递数据给后面地址相关的指令。对于访存队列不存储失效的访存指令需要的填充数据的处理器,在下一时钟周期失效的访存指令才能够重新发起对数据高速缓存的访问,得到数据高速缓存的数据,再写回结果及传递数据给后面地址相关的指令。
因此,现有技术存在以下问题:访存指令写回的速度慢,影响处理器的性能。
发明内容
针对现有技术存在的问题,本发明提供一种高速缓存访问方法、处理器、电子设备及存储介质。
本发明提供一种高速缓存访问方法,应用于处理器,所述处理器包括一级高速缓存L1 Cache和二级高速缓存L2 Cache;所述方法包括:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
根据本发明提供的高速缓存访问方法,所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1 Cache发送填充提示信号,包括:
所述L2 Cache接收到所述访问请求后,读L2 Cache标签TAG,将所述L2 Cache TAG与所述访问请求进行比较,判断所述L2 Cache是否命中所述访存指令;
在所述L2 Cache命中所述访存指令的情况下,向所述L1 Cache发送所述填充提示信号;
将L2 Cache命中信号,发送给L2 Cache管理队列。
根据本发明提供的高速缓存访问方法,所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据,包括:
所述L2 Cache管理队列在接收到所述L2 Cache命中信号的下一拍,发出访问L2Cache数据的请求,读L2 Cache数据Data;
在所述L2 Cache发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据。
根据本发明提供的高速缓存访问方法,所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给发射队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述发射队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述发射队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1Cache Data,执行所述访存指令的命中写回。
根据本发明提供的高速缓存访问方法,所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给重发队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述重发队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述重发队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1Cache Data,执行所述访存指令的命中写回。
根据本发明提供的高速缓存访问方法,所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
访存队列接收到所述填充提示信号后,在第n-1拍,从所述访存队列中选出与所述填充提示信号的地址对应的所述访存指令;所述访存队列用于失效访存指令的数据获得和写回;
所述L1 Cache在第n拍,接收所述填充数据;将所述填充数据存储至所述访存队列,执行所述访存指令的命中写回。
根据本发明提供的高速缓存访问方法,在所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求之后,所述方法还包括:
所述L1 Cache侦听来自所述L2 Cache的所述填充提示信号。
本发明还提供一种处理器,包括:一级高速缓存L1 Cache和二级高速缓存L2Cache;其中:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述高速缓存访问方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述高速缓存访问方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述高速缓存访问方法。
本发明提供的高速缓存访问方法、处理器、电子设备及存储介质,通过在L2 Cache命中时,L2 Cache在真正重填数据的n拍前,向L1 Cache发送填充提示信号,以使L1 Cache提前获得L2 Cache填充数据的地址信息;从而L1 Cache基于填充提示信号可以及时接收到填充数据,完成访存指令的命中写回,通过L1 Cache和L2 Cache的协同配合优化,实现了加速访存指令的写回,能够提高处理器性能,降低处理器面积和成本的目标。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的高速缓存访问方法的流程示意图;
图2是本发明提供的L2 Cache访问流水线的示意图;
图3是本发明提供的主流水线与L2 Cache协同的示意图之一;
图4是本发明提供的主流水线与L2 Cache协同的示意图之二;
图5是本发明提供的主流水线与L2 Cache协同的示意图之三;
图6是本发明提供的主流水线与L2 Cache协同的示意图之四;
图7是本发明提供的主流水线与L2 Cache协同的示意图之五;
图8为本发明提供的处理器的结构示意图;
图9是本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合说明书附图描述本发明提供的高速缓存访问方法、处理器、电子设备及存储介质。
图1是本发明提供的高速缓存访问方法的流程示意图,如图1所示,该方法应用于处理器,所述处理器包括L1 Cache和L2 Cache,该方法包括步骤101-步骤104,其中:
步骤101,一级高速缓存(L1 Cache)在未命中访存指令的情况下,向二级高速缓存(L2 Cache)发送访问请求;所述访问请求中包括所述访存指令。
需要说明的是,本发明提供的高速缓存访问方法可适用于在L1 Cache如果访问失效(miss),再访问L2 Cache的场景中。该方法的执行主体可以为处理器,处理器包括L1Cache和L2 Cache,每级高速缓存包括Cache 标签(TAG)和Cache 数据(Data)。
可选地,处理器的主流水线是访问L1 Cache,L1 Cache如果访问失效(miss),再访问L2 Cache。
L1 Cache在访存主流水线中,访存请求在从发射队列(或保留站)发射进入主流水线到读需要的数据写回之间有一定间隔,假设间隔拍数为m。m例如为3拍,即发射、读高速缓存标签(TAG)、读高速缓存数据(Data)及命中写回。如不命中(miss),则进入访存失效队列(Miss Queue),将失效的访存请求(访存指令)发送到L2 Cache,等待L2 Cache的数据回填。
步骤102,所述二级高速缓存接收到所述访问请求后,在命中所述访存指令的情况下,向所述一级高速缓存发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述二级高速缓存命中所述访存指令的数据。
步骤103,所述二级高速缓存在发送所述填充提示信号的n拍后,向所述一级高速缓存发送填充数据;n为正整数。
可选地,所述L2 Cache接收到所述访问请求后,对于L2 Cache命中访存指令的情况,L2 Cache提前向L1 Cache给出填充提示(Refill_hint)信号,即L2 Cache在真正重填数据的n拍前,向L1 Cache发送填充提示信号,以使主流水线中L1 Cache提前获得L2 Cache填充数据的地址信息。
步骤104,所述一级高速缓存基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
可选地,在所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求之后,所述L1 Cache侦听来自所述L2 Cache的所述填充提示信号。
例如,主流水线中L1 Cache侦听填充提示信号。当L1 Cache侦听到填充提示信号后,主流水线中L1 Cache获得L2 Cache填充数据的地址信息。然后,L1 Cache基于填充提示信号及时接收到填充数据,完成访存指令的命中写回。
本发明提供的高速缓存访问方法,通过在L2 Cache命中时,L2 Cache在真正重填数据的n拍前,向L1 Cache发送填充提示信号,以使L1 Cache提前获得L2 Cache填充数据的地址信息;从而L1 Cache基于填充提示信号可以及时接收到填充数据,完成访存指令的命中写回,通过L1 Cache和L2 Cache的协同配合优化,实现了加速访存指令的写回,能够提高处理器性能,降低处理器面积和成本的目标。
需要说明的是,L2 Cache主要负责接受L1 Cache送来的L1 Cache失效请求并给出应答,向L1 Cache填充数据。L2 Cache包括Cache TAG和Cache Data 。L2 Cache容量大及路数(way)多,L2 Cache读出数据和命中数据的选择都相对L1 Cache慢。为了提高L2 Cache的访问速度,节省L2 Cache的访问功耗,现有技术中处理器的L2 Cache一般都采用先读CacheTAG,判断L2 Cache是否命中,如L2 Cache命中,再读L2 Cache Data,将数据返回L1 Cache。如L2 Cache不命中,则不再读L2 Cache Data,直接访问下一级存储系统。
可选地,上述步骤102中所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1 Cache发送填充提示信号的实现方式可以包括:
步骤(1)、所述L2 Cache接收到所述访问请求后,读L2 Cache标签TAG,将所述L2Cache TAG与所述访问请求进行比较,判断所述L2 Cache是否命中所述访存指令;
步骤(2)、在所述L2 Cache命中所述访存指令的情况下,向所述L1 Cache发送所述填充提示信号;
步骤(3)、将L2 Cache命中信号,发送给L2 Cache管理队列。
相应地,上述步骤103中所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据的实现方式可以包括:所述L2 Cache管理队列接收所述L2 Cache命中信号;所述L2 Cache管理队列在接收到所述L2 Cache命中信号的下一拍,发出访问L2Cache数据的请求,读L2 Cache数据Data。L2 Cache在所述L2 Cache发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据。
如图2所示,图2是本发明提供的L2 Cache访问流水线的示意图,在本发明中,主流水线访存指令L1 Cache访问失效(miss)后,发出访问L2 Cache请求,即访问二级高速缓存(L2 Cache)的访存指令失效请求(来自主流水线)。访问请求先访问L2 Cache标签(TAG),通过标签比较,判断L2 Cache是否命中。
若L2 Cache命中,则发送填充提示(Refill_hint)信号给主流水线,同时将L2Cache命中(hit)信号发给L2 Cache管理队列。L2 Cache管理队列在接收到L2 Cache命中信号后,控制在下一拍发出访问L2 Cache数据请求,读L2 Cache数据;L2 Cache命中数据读出后,将填充(Refill)数据发送到L1 Cache主流水线。填充提示信号比填充数据提前n拍。假设n为3,3拍包括:命中信号进入L2 Cache管理队列;L2 Cache管理队列发出访问L2 Cache数据存储体请求;从L2 Cache存储体读出数据锁存。下一拍发出Refill数据填充主流水线一级Cache。
若L2 Cache访问不命中,则将不命中的信息(L2 Cache失效(miss))发到L2 Cache管理队列,L2 Cache管理队列不再读L2 Cache Data,而是直接访问下一级存储系统。
可选地,上述步骤104中所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回的实现方式,可以包括以下至少一种方式:
方式1、针对访存队列不存储失效的访存指令所需要的填充数据,L1 Cache失效由发射队列重新发射访存指令,主流水线与L2 Cache协同的情况,方式1具体包括:
步骤1-1:L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给发射队列;
步骤1-2:在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述发射队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;m为正整数;在所述访存指令到达访问L1 Cache数据流水级时,所述L1Cache接收所述L2 Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述发射队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1Cache Data,执行所述访存指令的命中写回。
图3是本发明提供的主流水线与L2 Cache协同的示意图之一,图4是本发明提供的主流水线与L2 Cache协同的示意图之二;如图3和图4所示,针对访存队列不存储失效的访存指令所需要的填充数据,需要从发射队列重新发射访存指令,主流水线与L2 Cache协同的情况,比较m和n的大小。
若m<=n,则将Refill_hint信号送到发射队列,让主流水线的失效的访存指令在收到Refill_hint信号后距离访问L1 Cache数据流水级m拍时发起重新主流水线的访问,到真正的二级Cache填充数据发送到一级Cache时,主流水线中访存失效指令刚好执行到访问L1Cache数据流水级,失效访存指令拿到Refill的数据写回,不需要重复访问L1 Cache。
若m>n,则将Refill_hint信号送到发射队列,让主流水线的失效的访存指令在收到Refill_hint信号时重新发起主流水线的访问,主流水线中访存失效指令到达访问L1Cache数据流水级时,失效访存指令访问L1 Cache,此时二级Cache填充的数据已经完成一级Cache的填充,失效访存指令可以从一级Cache中得到命中的数据写回。
方式2、针对访存队列不存储失效的访存指令所需要的填充数据,L1 Cache失效由重发队列重新发射访存指令,主流水线与L2 Cache协同的情况,方式2具体包括:
步骤2-1:L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给重发队列;
步骤2-2:在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述重发队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2 Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述重发队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1Cache Data,执行所述访存指令的命中写回。
图5是本发明提供的主流水线与L2 Cache协同的示意图之三;如图4和图5所示,针对访存队列不存储失效的访存指令所需要的填充数据,需要从重发队列重新发射访存指令,主流水线与L2 Cache协同的情况,比较m和n的大小。
若m<=n,则将Refill_hint信号送到重发队列,让主流水线的失效的访存指令在收到Refill_hint信号后距离访问L1 Cache数据流水级m拍时发起重新主流水线的访问,到真正的二级Cache填充数据发送到一级Cache时,主流水线中访存失效指令刚好执行到访问L1Cache数据流水级,失效访存指令拿到Refill的数据写回,不需要重复访问L1 Cache。
若m>n,则将Refill_hint信号送到重发队列,让主流水线的失效的访存指令在收到Refill_hint信号时重新发起主流水线的访问,主流水线中访存失效指令到达访问L1Cache数据流水级时,失效访存指令访问L1 Cache,此时二级Cache填充的数据已经完成一级Cache的填充,失效访存指令可以从一级Cache中得到命中的数据写回。
方式3、针对访存队列存储失效的访存指令所需要的填充数据,L1 Cache失效时主流水线不重发,而是由访存队列写回,主流水线与L2 Cache协同的情况,方式3具体包括:
步骤3-1:访存队列接收到所述填充提示信号后,在第n-1拍,从所述访存队列中选出与所述填充提示信号的地址对应的所述访存指令;所述访存队列用于失效访存指令的数据获得和写回;
步骤3-2:L1 Cache在第n拍,接收所述填充数据;将所述填充数据存储至所述访存队列,执行所述访存指令的命中写回。
图6是本发明提供的主流水线与L2 Cache协同的示意图之四,图7是本发明提供的主流水线与L2 Cache协同的示意图之五;如图6和图7所示,针对访存队列存储失效的访存指令所需要的填充数据,L1 Cache失效时主流水线不重发,而是由访存队列写回,主流水线与L2 Cache协同的情况,本发明对于访存队列存储失效的访存指令需要的填充数据的情况,访存队列负责失效访存指令的数据获得和写回。访存队列收到Refill_hint信号后,在第n-1拍选出Refill_hint的地址对应的失效访存指令,第n拍Refill数据给到访存队列时,失效的访存指令刚好拿到填充Refill的数据写回。
本发明提供的高速缓存访问方法,通过L2 Cache与主流水线的协同配合优化,让主流水线提前获得L2 Cache填充数据的地址信息,加速访存指令的写回,达到提高处理器性能,降低处理器面积和成本的目标。
下面对本发明提供的处理器进行描述,下文描述的处理器与上文描述的高速缓存访问方法可相互对应参照。
图8为本发明提供的处理器的结构示意图,如图8所示,该处理器800包括:一级高速缓存(L1 Cache)801和二级高速缓存(L2 Cache)802;其中:
所述L1 Cache 801在未命中访存指令的情况下,向所述L2 Cache 802发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache 802接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1 Cache 801发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache 802命中所述访存指令的数据;
所述L2 Cache 802在发送所述填充提示信号的n拍后,向所述L1 Cache 801发送填充数据;n为正整数;
所述L1 Cache 801基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
本发明提供的处理器,通过在L2 Cache命中时,L2 Cache在真正重填数据的n拍前,向L1 Cache发送填充提示信号,以使L1 Cache提前获得L2 Cache填充数据的地址信息;从而L1 Cache基于填充提示信号可以及时接收到填充数据,完成访存指令的命中写回,通过L1 Cache和L2 Cache的协同配合优化,实现了加速访存指令的写回,能够提高处理器性能,降低处理器面积和成本的目标。
可选地,所述L2 Cache接收到所述访问请求后,读L2 Cache标签TAG,将所述L2Cache TAG与所述访问请求进行比较,判断所述L2 Cache是否命中所述访存指令;
在所述L2 Cache命中所述访存指令的情况下,向所述L1 Cache发送所述填充提示信号;
将L2 Cache命中信号,发送给L2 Cache管理队列。
可选地,所述L2 Cache管理队列在接收到所述L2 Cache命中信号的下一拍,发出访问L2 Cache数据的请求,读L2 Cache数据Data;
在所述L2 Cache发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据。
可选地,所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给发射队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述发射队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述发射队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1Cache Data,执行所述访存指令的命中写回。
可选地,所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给重发队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述重发队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述重发队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1Cache Data,执行所述访存指令的命中写回。
可选地,访存队列接收到所述填充提示信号后,在第n-1拍,从所述访存队列中选出与所述填充提示信号的地址对应的所述访存指令;所述访存队列用于失效访存指令的数据获得和写回;
所述L1 Cache在第n拍,接收所述填充数据;将所述填充数据存储至所述访存队列,执行所述访存指令的命中写回。
可选地,所述L1 Cache侦听来自所述L2 Cache的所述填充提示信号。
图9是本发明提供的电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行高速缓存访问方法,所述方法应用于处理器,所述处理器包括一级高速缓存L1 Cache和二级高速缓存L2 Cache;所述方法包括:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的高速缓存访问方法,所述方法应用于处理器,所述处理器包括一级高速缓存L1 Cache和二级高速缓存L2 Cache;所述方法包括:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的高速缓存访问方法,所述方法应用于处理器,所述处理器包括一级高速缓存L1 Cache和二级高速缓存L2 Cache;所述方法包括:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种高速缓存访问方法,其特征在于,应用于处理器,所述处理器包括一级高速缓存L1 Cache和二级高速缓存L2 Cache;所述方法包括:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
针对L1 Cache失效由发射队列重新发射访存指令的情况,所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给发射队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述发射队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2 Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述发射队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1 CacheData,执行所述访存指令的命中写回。
2.根据权利要求1所述的高速缓存访问方法,其特征在于,所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1 Cache发送填充提示信号,包括:
所述L2 Cache接收到所述访问请求后,读L2 Cache标签TAG,将所述L2 Cache TAG与所述访问请求进行比较,判断所述L2 Cache是否命中所述访存指令;
在所述L2 Cache命中所述访存指令的情况下,向所述L1 Cache发送所述填充提示信号;
将L2 Cache命中信号,发送给L2 Cache管理队列。
3.根据权利要求2所述的高速缓存访问方法,其特征在于,所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据,包括:
所述L2 Cache管理队列在接收到所述L2 Cache命中信号的下一拍,发出访问L2 Cache数据的请求,读L2 Cache数据Data;
在所述L2 Cache发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据。
4.根据权利要求1所述的高速缓存访问方法,其特征在于,所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
针对L1 Cache失效由重发队列重新发射访存指令的情况,所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给重发队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述重发队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2 Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述重发队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1 CacheData,执行所述访存指令的命中写回。
5.根据权利要求1所述的高速缓存访问方法,其特征在于,所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
访存队列接收到所述填充提示信号后,在第n-1拍,从所述访存队列中选出与所述填充提示信号的地址对应的所述访存指令;所述访存队列用于失效访存指令的数据获得和写回;
所述L1 Cache在第n拍,接收所述填充数据;将所述填充数据存储至所述访存队列,执行所述访存指令的命中写回。
6.根据权利要求1所述的高速缓存访问方法,其特征在于,在所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求之后,所述方法还包括:
所述L1 Cache侦听来自所述L2 Cache的所述填充提示信号。
7.一种处理器,其特征在于,包括:一级高速缓存L1 Cache和二级高速缓存L2 Cache;其中:
所述L1 Cache在未命中访存指令的情况下,向所述L2 Cache发送访问请求;所述访问请求中包括所述访存指令;
所述L2 Cache接收到所述访问请求后,在命中所述访存指令的情况下,向所述L1Cache发送填充提示信号;所述填充提示信号用于指示填充数据的地址信息;所述填充数据包括所述L2 Cache命中所述访存指令的数据;
所述L2 Cache在发送所述填充提示信号的n拍后,向所述L1 Cache发送填充数据;n为正整数;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回;
所述L1 Cache基于所述填充提示信号,接收所述填充数据;基于所述填充数据,执行所述访存指令的命中写回,包括:
针对L1 Cache失效由发射队列重新发射访存指令的情况,所述L1 Cache接收到所述填充提示信号后,将所述填充提示信号传输给发射队列;
在m<=n的情况下,在接收到所述填充提示信号后的n-m拍时,从所述发射队列重新发射所述访存指令;m为所述访存指令在从发射队列发射进入主流水线到数据写回之间的预设间隔;在所述访存指令到达访问L1 Cache数据流水级时,所述L1 Cache接收所述L2 Cache发送的所述填充数据,执行所述访存指令的命中写回;
或者,在m>n的情况下,在接收到所述填充提示信号后,从所述发射队列重新发射所述访存指令;所述L1 Cache接收所述填充数据,将所述填充数据写入L1 Cache Data;在所述访存指令到达访问L1 Cache数据流水级时,所述访存指令访问所述L1 Cache,读L1 CacheData,执行所述访存指令的命中写回。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述高速缓存访问方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述高速缓存访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311828921.2A CN117472802B (zh) | 2023-12-28 | 2023-12-28 | 高速缓存访问方法、处理器、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311828921.2A CN117472802B (zh) | 2023-12-28 | 2023-12-28 | 高速缓存访问方法、处理器、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472802A CN117472802A (zh) | 2024-01-30 |
CN117472802B true CN117472802B (zh) | 2024-03-29 |
Family
ID=89631593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311828921.2A Active CN117472802B (zh) | 2023-12-28 | 2023-12-28 | 高速缓存访问方法、处理器、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472802B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732242A (en) * | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
CN1955947A (zh) * | 2005-10-28 | 2007-05-02 | 中国科学院计算技术研究所 | 一种高速缓存失效的处理器访存指令处理方法 |
CN106155922A (zh) * | 2015-04-07 | 2016-11-23 | 龙芯中科技术有限公司 | 失效处理方法、系统、sfb及访存失效装置 |
CN113934655A (zh) * | 2021-12-17 | 2022-01-14 | 北京微核芯科技有限公司 | 解决高速缓冲存储器地址二义性问题的方法和装置 |
CN114579479A (zh) * | 2021-11-16 | 2022-06-03 | 中国科学院上海高等研究院 | 基于指令流混合模式学习的低污染缓存预取系统及方法 |
CN115328820A (zh) * | 2022-09-28 | 2022-11-11 | 北京微核芯科技有限公司 | 多级缓存系统的访问方法、数据存储方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1486875A1 (en) * | 2003-06-12 | 2004-12-15 | STMicroelectronics Limited | Allowing multiple simultaneous acccesses to a cache |
JP2009098934A (ja) * | 2007-10-17 | 2009-05-07 | Hitachi Ltd | プロセッサ及びキャッシュメモリ |
US11106609B2 (en) * | 2019-02-28 | 2021-08-31 | Micron Technology, Inc. | Priority scheduling in queues to access cache data in a memory sub-system |
-
2023
- 2023-12-28 CN CN202311828921.2A patent/CN117472802B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732242A (en) * | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
CN1955947A (zh) * | 2005-10-28 | 2007-05-02 | 中国科学院计算技术研究所 | 一种高速缓存失效的处理器访存指令处理方法 |
CN106155922A (zh) * | 2015-04-07 | 2016-11-23 | 龙芯中科技术有限公司 | 失效处理方法、系统、sfb及访存失效装置 |
CN114579479A (zh) * | 2021-11-16 | 2022-06-03 | 中国科学院上海高等研究院 | 基于指令流混合模式学习的低污染缓存预取系统及方法 |
CN113934655A (zh) * | 2021-12-17 | 2022-01-14 | 北京微核芯科技有限公司 | 解决高速缓冲存储器地址二义性问题的方法和装置 |
CN115328820A (zh) * | 2022-09-28 | 2022-11-11 | 北京微核芯科技有限公司 | 多级缓存系统的访问方法、数据存储方法及装置 |
Non-Patent Citations (2)
Title |
---|
提升处理器指针追逐访存性能的指令标签辅助的数据预取机制;刘天义;肖俊华;章隆兵;沈海华;;高技术通讯;20171215(第Z2期);全文 * |
结合访存失效队列状态的预取策略;郇丹丹;李祖松;胡伟武;刘志勇;;计算机学报;20070715(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117472802A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11609818B2 (en) | Pipelined read-modify-write operations in cache memory | |
US9336146B2 (en) | Accelerating cache state transfer on a directory-based multicore architecture | |
US20060282645A1 (en) | Memory attribute speculation | |
US9223717B2 (en) | Computer cache system providing multi-line invalidation messages | |
CN1673980A (zh) | 为dma控制器提供高速缓存管理命令的系统和方法 | |
CN103885908B (zh) | 一种基于外部设备可访问寄存器的数据传输系统及其方法 | |
CN103399824B (zh) | 一种高速缓存中缓存不命中的状态保持方法与装置 | |
US20090300288A1 (en) | Write Combining Cache with Pipelined Synchronization | |
CN109753445B (zh) | 一种缓存访问方法、多级缓存系统及计算机系统 | |
Qian et al. | Scalablebulk: Scalable cache coherence for atomic blocks in a lazy environment | |
US6625707B2 (en) | Speculative memory command preparation for low latency | |
CN117472802B (zh) | 高速缓存访问方法、处理器、电子设备及存储介质 | |
CN117234591A (zh) | 指令验证方法、系统、设备、介质及产品 | |
CN115712583A (zh) | 一种提升分布式缓存跨节点访问性能的方法及装置、介质 | |
US8756378B2 (en) | Broadcast protocol for a network of caches | |
CN101377788B (zh) | 一种机群文件系统中缓存管理的方法及系统 | |
US20240045607A1 (en) | Simplified raid implementation for byte-addressable memory | |
CN111124297B (zh) | 一种堆叠dram缓存的性能提升方法 | |
CN100485608C (zh) | 基于访存指令的数据流预取方法 | |
CN108920192B (zh) | 基于分布式有限目录的缓存数据一致性实现方法及装置 | |
US10877836B2 (en) | Method and apparatus for coherent interconnect recovery with protocol layer re-transmission | |
CN114020656A (zh) | 多核SOC中非阻塞L1 Cache | |
CN117478089B (zh) | 存数指令执行方法、装置及电子设备 | |
CN112748989A (zh) | 基于远程内存的虚拟机内存管理方法、系统、终端及介质 | |
CN113900816B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |