CN116472521A - 缓存暂存中继 - Google Patents
缓存暂存中继 Download PDFInfo
- Publication number
- CN116472521A CN116472521A CN202180078419.7A CN202180078419A CN116472521A CN 116472521 A CN116472521 A CN 116472521A CN 202180078419 A CN202180078419 A CN 202180078419A CN 116472521 A CN116472521 A CN 116472521A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- address
- processing unit
- processing system
- 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
- 239000000872 buffer Substances 0.000 title description 5
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 24
- 230000003139 buffering effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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
- G06F2212/1024—Latency reduction
-
- 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/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
在缓存暂存中继中,来自生产者设备的第一数据被暂存在数据处理系统的共享缓存中。该第一数据与该数据处理系统的共享存储器中的第一数据地址相关联。标识这些第一数据地址的地址模式。当从该数据处理系统的处理单元接收到对与第二数据地址相关联的第二数据的请求时,如果该第二数据地址在所标识的地址模式中,则将与所标识的地址模式中的数据地址相关联的任何数据从该共享缓存中继到该处理单元的本地缓存。该中继可包括将该数据从该共享缓存推送到该本地缓存,或者该处理单元的预取器响应于消息将该数据从该共享缓存拉取到该本地缓存。
Description
背景技术
在大多数数据处理系统中,处理速度比存储器存取速度快得多。因此,数据的可用性限制了系统的性能。高速缓存可以提供显著的改进,前提是当处理器内核需要时数据在缓存中。例如,当特定地址处的数据在首次使用时被加载到缓存中,然后在从缓存中逐出之前重用时,缓存工作良好。然而,当数据在逐出之前未重用时,没有提供改进。
当数据使用可被预测并且数据从存储器预取时,缓存也提供益处。然而,由于例如程序分支而造成的预测误差会导致不必要的存储器读取操作。
当来自输入设备的数据可被直接注入到目标处理器内核的缓存中时,缓存也提供性能益处。该方法也称为缓存暂存(cache stashing)。然而,在多处理器系统中,缓存暂存要求输入设备知道目标处理器的内核标识符。该信息可能是不可用的,或者可能不希望将该信息提供给输入设备。
附图说明
附图提供了视觉表示,这些视觉表示将用于更全面地描述各种代表性实施方案,并且可由本领域的技术人员使用以更好地理解所公开的代表性实施方案及其固有优点。在这些附图中,类似的附图标号表示对应或相似的元件。
图1是根据各种代表性实施方案的数据处理系统的框图。
图2是示出根据各种代表性实施方案的数据处理系统中的信息流的事务图。
图3是根据各种代表性实施方案的数据处理系统中的数据移动方法的流程图。
图4是根据各种代表性实施方案的数据处理系统中的数据移动方法的流程图。
图5是数据处理系统的共享缓存中的信息的逻辑布置图。
图6是根据各种代表性实施方案的数据处理系统中的地址模式信息的逻辑布置图。
图7是根据各种代表性实施方案的数据处理系统中的流信息的逻辑布置图。
图8是示出根据各种代表性实施方案的数据处理系统中的信息流的事务图。
具体实施方式
本文描述的各种装置和设备提供数据处理系统中的缓存数据注入机制。
虽然本公开能够具有许多不同形式的实施方案,但在附图中示出并将在本文详细描述具体实施方案,应当理解,本文所示和所述的实施方案应被视为提供本公开的原理的示例,而并非旨在将本公开限制于所示和所述的具体实施方案。在下面的描述中,类似的附图标号用于描述附图的若干视图中的相同、类似或对应的部件。为了说明的简单和清楚,附图标号可在附图中重复使用,以指示对应的或类似的元件。在本文档中,关系术语诸如第一和第二、顶部和底部等可仅用于将一个实体或动作与另一个实体或动作区分开,而不一定要求或暗示此类实体或动作之间的任何实际的此类关系或次序。术语“包括”、“包含”、“含有”、“具有”或它们的任何其他变型旨在涵盖非排他性的包括,使得包括一系列元素的过程、方法、制品或装置不仅包括那些要素,而且可包括未明确列出的或此类过程、方法、制品或装置固有的其他元素。前面带有“包括...一个”的元件在没有更多限制的情况下不排除在包括该元件的过程、方法、制品或装置中存在另外的相同元件。
贯穿本文档提及的“一个实施方案”、“某些实施方案”、“实施方案”、“具体实施”、“方面”或类似术语意指结合该实施方案描述的特定特征、结构或特性包括在本公开的至少一个实施方案中。因此,此类短语在本说明书内各个地方的出现不一定都是指相同的实施方案。此外,具体特征、结构或特性可以任何合适的方式无限制地组合在一个或多个实施方案中。
如本文所用,术语“或”将被解释为包含性的或意指任何一种或任何组合。因此,“A、B或C”意指“以下中的任一者:A;B;C;A和B;A和C;B和C;A、B和C”。只有当元件、功能、步骤或动作的组合以某种方式固有地相互排斥时,才会出现该定义的例外。
如本文所用,当应用于元件时,术语“被配置为”意味着该元件可被设计或构造为执行指定功能,或者该元件具有使其能够重新配置或适于执行该功能的所需结构。
图1是根据各种代表性实施方案的数据处理系统100的框图。系统100包括被配置为访问共享存储器104的多个处理内核102。存储器访问速度比处理器速度慢得多,因此系统100还包括一个或多个高速缓存。缓存可按层级布置,最高级(一级或“L1”)是最快的并且最接近处理内核。在所示的示例中,每个处理内核102具有本地或私有L1缓存106。这可被保留用于数据(L1d),而另一个L1缓存(未示出)被保留用于指令。另选地,L1缓存可用于指令和数据两者。较大、较慢的二级(L2)缓存108可由若干处理内核共享并将数据馈送到L1缓存。
另外,系统100包括共享缓存110。共享缓存是缓存层级的最低级,并被称为末级缓存(LLC)或系统缓存(SC)。共享缓存110由访问表存储器114的控制器112控制。这些将在下面更详细地讨论。
生产者设备116提供要由处理内核处理或消耗的数据。示例生产者设备包括网络接口卡(NIC)、其他处理器、输入设备、直接存储器存取(DMA)控制器等。
相干互连电路118能够使信息诸如消息和数据在数据处理系统的各个元件之间传递。
在常规数据处理系统中,将从生产者设备116接收的数据存储在共享存储器104中的指定缓冲器中。
图2是示出根据各种代表性实施方案的数据处理系统中的信息流的事务图200。该图示出了生产者设备的时间线202、共享缓存的时间线204、互连电路的时间线206、消费者处理器内核的本地缓存的时间线208以及消费者处理器内核的时间线210。在每种情况下,时间在图中从上至下流动。
在时间(1),生产者设备开始将数据暂存或注入到共享缓存中。生产者设备可具有一个或多个目标地址。例如,目标地址可以是共享缓存中预分配的数据块的地址。数据也可被发送到存储器。另选地,共享缓存中的数据可被标记为具有“脏”或“经修改”一致性状态,以指示其在从缓存逐出时应被写入存储器。
根据本公开的实施方案,在时间(2),共享缓存的控制器识别所暂存的数据的地址模式。例如,可检测到连续地址的序列。如果这是新的地址模式,则在预测表中创建该模式的条目。该条目包含地址模式的描述符,诸如开始地址和结束地址,或开始地址和大小(地址的数量或缓存行的数量)。如果模式不是新的,则可以更新现有条目。例如,可以用新的结束地址或大小来更新条目。
在时间(3),消费者内核发出对与所标识的地址模式中的地址相关联的数据的加载请求。首先,检查本地缓存,以查看数据的副本是否存储在那里。如果否,则发生缓存缺失,并向与该数据地址相关联的归属代理发送读取请求。读取请求经由互连电路发送,这引入了第一等待时间。归属代理在共享缓存中检查所请求的数据,从而引入第二等待时间,然后找到数据,经由互连电路返回数据,从而引入第三等待时间。最后,数据可通过本地缓存层级(诸如L2和L1缓存),最终在时间(4)到达消费者内核。因此,虽然已通过在共享缓存中暂存数据来避免存储器读取操作的等待时间,但是在读取操作中仍然存在相当长的等待时间。
根据本公开的实施方案,在时间(5),共享缓存的控制器识别出消费者内核已访问与所标识的地址模式相关联的数据,并在针对该地址模式的预测表条目中添加消费者内核的标识符。标识符指示消费者内核是与该模式相关联的数据的预测目标。既然消费者内核已被标识为目标,则在时间(6)将与地址模式中的其他地址相关联的数据推送到消费者内核。因此,数据首先被暂存在共享缓存中,然后在消费者内核被预测为目标时被中继到该内核的本地缓存。在接收到这些数据值时,消费者内核可选择将数据暂存在本地缓存中或将它们丢弃。
在时间(7),消费者内核发出对与所标识的地址模式中的另一个地址相关联的数据的加载请求。此时,在本地缓存中找到已在时间(6)中继到缓存的所请求数据。在时间(8)加载数据。因此,避免了经由互连电路从共享缓存请求数据的等待时间。这提供了相当大的性能优势。
在时间(9),生产者设备将附加的或新的数据暂存在共享缓存中。在时间(10)检查预测表,并揭示与所标识的地址模式中的地址相关联的数据。预测表将消费者内核标识为数据的潜在目标,并在时间(11),新数据被中继到所标识的消费者内核。
在时间(12),消费者内核发出对新数据的加载请求。在本地缓存中找到已在时间(11)中继到缓存的所请求数据。在时间(13)加载数据。再次避免了经由互连电路从共享缓存检索数据的等待时间,从而提供了相当大的性能优势。
图3是根据各种代表性实施方案的数据处理系统中的数据移动方法的流程图300。在开始框302之后,在框304处,将新数据暂存或注入到数据处理系统的共享缓存中。在决策框306处,由与共享缓存相关联的控制器电路确定与新数据相关联的地址以及与先前暂存的数据相关联的地址是否形成地址模式。如果否,如决策框306的否定分支所示,则可在框308处更新流统计信息。例如,如果先前地址是连续地址流的一部分,但新地址不是,则终止流的长度可用于更新该长度或类似长度的流的计数器。如果该地址是地址模式的一部分,如决策框306的肯定分支所示,则流程继续至决策框310。如果地址模式是新标识的模式,如决策框310的肯定分支所示,则将新条目添加到该模式的预测表。条目包括模式的描述符,诸如开始地址、停止地址、步幅等。如果所标识的模式不是新的,则访问预测表中的对应条目,以确定目标消费者内核是否作为预测目标列在表中。如果标识了目标消费者内核,如决策框314的肯定分支所示,则在框316处将数据中继到该目标消费者内核的本地缓存。
图4是根据各种代表性实施方案的数据处理系统中的数据移动方法的流程图400。在开始框402之后,在框404处,与共享缓存相关联的控制器从消费者内核接收对与指定数据地址相关联的数据的新请求。在框406处,将已从共享缓存检索到的或者如果不存在于共享缓存中则从存储器中的指定地址检索到的所请求数据返回到内核。在决策框408处,搜索预测表以确定所指定地址是否在所标识的地址模式中。如果否,如决策框408的否定分支所示,则流程返回到框404。如果所指定的地址是先前标识的地址模式的一部分,如决策框408的肯定分支所示,则在框410处将消费者内核的标识符添加到所标识地址模式的预测表中的条目,从而指示该内核是与该地址模式相关联的数据的目标。在框412处,将共享缓存中与所标识地址模式中的地址相关联的任何其他数据中继到内核的本地缓存。这样,与地址模式相关联的数据被放置在内核的本地缓存中,预期已访问模式中的一个地址的内核可能请求访问与模式中的其他地址相关联的数据。当请求该访问时,数据将在内核的本地缓存中可用,从而避免了与经由互连电路请求数据相关联的延迟。
图5是数据处理系统的共享缓存中的信息的逻辑布置图500。信息包括用于存储缓存数据的数据阵列502。数据在逻辑上被组织成若干行,每一行包含与多个地址相关联的数据。对应的地址标签存储在标签阵列504中。标签阵列能够使控制器识别出数据阵列502中的哪行数据包含与给定地址相关联的数据。当数据由生产者设备保存在共享缓存中时,其地址标签被添加到地址标签阵列504,并且数据被存储在数据阵列502的相应行中。数据行的状态被存储在状态阵列506中。这可以指示例如数据行是有效的还是无效的。另外,状态可指示行是否被暂存或与所标识的地址模式相关联。这将减少对预测表的访问数量。
图6是根据各种代表性实施方案的预测表的图600。预测表的每一逻辑行602a、602b、602c等包括相关联的所识别地址模式的若干描述符604a、604b、604c等。地址模式可具有任何数量的描述符。例如,在行602b中,描述符604a是包含连续地址流的模式的起始地址,而描述符604b是结束地址。在行602c中,描述符604a是起始地址,而描述符604b是大小(诸如地址数量、缓存行数量或数据块数量)。描述符604c是模式的“步幅”,指示数据流中连续元素之间的元素数量。
每行中的附加条目606标识已访问与地址模式中的地址相关联的数据的消费者内核。这可以是例如显式标识符的列表或位模式,其中每个位位置对应于数据处理系统中的消费者内核。在不脱离本公开的情况下,可使用其他逻辑布置或格式。
可以每隔一段时间重置预测表,以移除过时的信息。另外,消费者内核可向控制器提供关于中继数据的利用的反馈。该反馈可用于更新预测表。例如,如果发现对应的中继数据没有用,则可从表中的条目中移除内核标识符。
如上所述,与共享缓存相关联的控制器将与所暂存的数据相关联的地址流标识为地址模式。然而,由于本地缓存中的空间有限,因此对哪些地址模式应当被中继到目标消费者内核进行选择可能是有利的。例如,暂存与较长的流相关联的数据可提供更大的性能益处。根据本公开的实施方案,维护与数据流的长度有关的统计。指定多个流长度范围,并且对于每个长度范围,每当完成对应长度的流时,计数器值递增。基于该信息,控制器可选择关于流长度的阈值。例如,控制器可选择仅中继与10或更大的流长度相关联的数据。
该表可被周期性地重置。另选地,计数器值可以指定的时间间隔递减,使得它们反映更近期的内核行为。
图7是根据本公开的实施方案的数据处理系统中的流信息的逻辑布置图700。如上所述,与共享缓存相关联的控制器将与所暂存的数据相关联的地址流标识为地址模式。然而,由于本地缓存中的空间有限,因此对哪些地址模式应当被中继到目标消费者内核进行选择可能是有利的。例如,暂存与较长的流相关联的数据可提供更大的性能益处。根据本公开的实施方案,维护与数据流的长度有关的统计。在所示的示例中,指定了多个流长度范围。对于每个长度范围,每当完成对应长度的流时,计数器值递增。在所示的示例中,长度为2至4的流(缓存行或地址)已被检测到23次,长度为5至8的流已被检测到43次,长度为9至16的流已被检测到121次,等等。基于该信息,控制器可选择关于流长度的阈值。例如,控制器可选择仅中继与9或更大的流长度相关联的数据。
该表可被周期性地重置。另选地,计数器值可以指定的时间间隔递减,使得它们反映更近期的内核行为。
图8是示出根据各种代表性实施方案的数据处理系统中的信息流的事务图800。该图示出了生产者设备的时间线802、共享缓存的时间线804、互连电路的时间线806、消费者处理器内核的本地缓存的时间线808以及消费者处理器内核的时间线810。在每种情况下,时间在图中从上至下流动。
如在图2中所示并如上文所述的实施方案中,在时间(1),生产者设备开始将数据暂存到共享缓存中。生产者设备可具有一个或多个目标地址。例如,目标地址可以是共享缓存中预分配的数据块。在时间(2),共享缓存的控制器识别所暂存的数据的地址模式。例如,可检测到连续地址的序列。如果这是新的地址模式,则在预测表中创建该模式的条目。在时间(3),消费者内核经由互连电路发出对与所标识的地址模式消费者内核中的地址相关联的数据的加载请求。在时间(4),在内核处接收数据。在时间(5),共享缓存的控制器识别出消费者内核已访问与所标识的地址模式相关联的数据,并将该消费者内核的标识符存储在该地址模式的预测表条目中。这指示消费者内核是与该模式相关联的数据的预测目标。
根据本公开的实施方案,在时间(6),控制器经由互连电路向发出请求的消费者内核的预取器发送消息,指示与地址模式相关联的数据在共享缓存中可用。在时间(7),消费者内核中的预取器发出预取与地址模式相关联的数据的请求。在时间(8),将所请求的数据从共享缓存中继到消费者内核的本地缓存。当消费者内核在时间(9)执行数据的加载指令时,数据在本地缓存中是可用的并且可在时间(10)以最短等待时间被加载。
阐述了许多细节以提供对本文所述的实施方案的理解。可以在没有这些细节的情况下实践实施方案。在其他情况下,未详细描述熟知的方法、程序和部件以避免模糊所述实施方案。本公开不应被视为限于本文所述的实施方案的范围。
本领域的技术人员将认识到,已借助于示例描述了本公开。本公开可使用硬件部件等效物诸如专用硬件和/或专用处理器来实现,该专用硬件和/或专用处理器是如所描述和要求保护的本公开的等效物。类似地,专用处理器和/或专用硬连线逻辑可用于构造本公开的另选等效实施方案。
用于实施所公开机制的专用或可重新配置硬件部件可例如通过硬件描述语言(HDL)的指令来描述,诸如VHDL、Verilog或RTL(寄存器传输语言),或者通过部件和连接性的网表来描述。指令可处于功能级或逻辑级或其组合。指令或网表可被输入到自动化设计或制造过程(有时称为高级综合),其解释指令并创建实施所描述功能或逻辑的数字硬件。
HDL指令或网表可存储在非暂态计算机可读介质上,诸如电可擦除可编程只读存储器(EEPROM);非易失性存储器(NVM);海量存储装置,诸如硬盘驱动器、软盘驱动器、光盘驱动器;在不脱离本公开的情况下,光存储元件、磁存储元件、磁光存储元件、闪存存储器、磁芯存储器和/或其他等效存储技术。此类可供选择的存储设备应被视为等同物。
使用专用硬件、可配置硬件或被编程处理器执行编程指令来实现本文所述的各种实施方案,该编程指令以流程图形式广义描述,该编程指令可存储在任何合适的电子存储介质上或通过任何合适的电子通信介质传输。可使用这些元件的组合。本领域的技术人员应当理解,在不脱离本公开的情况下,上述过程和机制可以任何数量的变型来实现。例如,在不脱离本公开的情况下,执行的某些操作的顺序通常可以改变,可以添加附加操作或者可以删除操作。此类变型是可设想的并且被认为是等同的。
已在本文中详细描述的各种代表性实施方案以举例的方式而非限制的方式给出。本领域的技术人员应当理解,可对所述实施方案的形式和细节进行各种改变,从而得到保持在所附权利要求的范围内的等同实施方案。
在一个实施方案中,提供了一种缓存暂存的方法。首先,将来自数据处理系统的生产者设备的数据暂存在数据处理系统的共享缓存中。第一数据与数据处理系统的共享存储器中的多个第一数据地址相关联,并识别多个第一数据地址的地址模式。响应于从数据处理系统的处理单元接收到对与第二数据地址相关联的第二数据的请求,确定第二数据地址在所标识的地址模式中,并将与所标识的地址模式中的数据地址相关联的数据从共享缓存中继到处理单元的本地缓存。
所标识的地址模式可包括一系列连续数据地址。
在另一个实施方案中,中继与所标识的地址模式中的数据地址相关联的数据包括将数据从共享缓存推送到处理单元的本地缓存。
在另一个实施方案中,中继与所标识的地址模式中的数据地址相关联的数据包括发送消息,以向处理单元的预取器通知所标识的地址模式,并且处理单元的预取器将数据从共享缓存拉取到处理单元的本地缓存。
在另一个实施方案中,来自生产者设备的第三数据被暂存在共享缓存中,第三数据与共享存储器中的第三数据地址相关联。当确定第三数据地址在所标识的地址模式中时,预测处理单元为所标识的地址模式中的数据的目标,并且将第三数据从共享缓存中继并暂存在处理单元的本地缓存中。
在另一个实施方案中,所标识的地址模式的描述符被存储在预测表的条目中,并且处理单元的标识符作为与所标识的地址模式相关联的数据的目标被存储在预测表的条目中。
在另一个实施方案中,从生产者设备中继第三数据并将其暂存在数据处理系统的共享缓存中,第三数据与共享存储器中的第三数据地址相关联。当根据预测表确定第三数据地址在所标识的地址模式中时,根据预测表确定处理单元是所标识的地址模式中的数据的目标,并且将第三数据从共享缓存中继并暂存在处理单元的本地缓存中。
共享缓存可以是数据处理系统的系统级缓存或末级缓存,并且处理单元的本地缓存可以是处理单元的一级(L1)缓存或二级(L2)缓存。
在另一个实施方案中,提供了一种数据处理系统。该数据处理系统包括第一处理单元、一个或多个第二处理单元、共享缓存、生产者设备和控制器。第一处理单元具有本地缓存,并且共享缓存能够由第一处理单元访问。所暂存的数据与数据处理系统的共享存储器中的多个第一数据地址相关联。生产者设备被配置为在共享缓存中暂存数据。控制器被配置为标识所述多个第一数据地址的地址模式。响应于从第一处理单元接收到对与第二数据地址相关联的第二数据的请求,控制器确定第二数据地址在所标识的地址模式中,并将与所标识的地址模式中的数据地址相关联的数据从共享缓存中继到第一处理单元的本地缓存。
在另一个实施方案中,控制器被配置为将与所标识的地址模式中的数据地址相关联的数据从共享缓存推送到第一处理单元的本地缓存。
在另一个实施方案中,控制器被配置为当确定共享缓存中暂存的数据是所标识的地址模式时,向第一处理单元的预取器发送消息。然后第一处理单元的预取器响应于该消息,将与所标识的地址模式中的数据地址相关联的数据从共享缓存拉取到第一处理单元的本地缓存。
例如,共享缓存可以是系统缓存或末级缓存,并且第一处理单元的本地缓存可以是一级(L1)缓存或二级(L2)缓存。
例如,所标识的地址模式可以是一系列连续数据地址。
在另一个实施方案中,数据处理系统包括存储器,并且控制器被配置为将所标识的地址模式的描述符存储在存储器中存储的预测表条目中。
控制器可被配置为将第一处理单元的标识符作为与所标识的地址模式相关联的数据的目标存储在预测表的条目中。另外,控制器还可被配置为根据预测表确定与由生产者设备暂存在共享缓存中的第三数据相关联的第三数据地址在所标识的地址模式中,并且根据预测表确定第一处理单元是与所标识的地址模式相关联的数据的目标。在这种情况下,将第三数据从共享缓存中继到第一处理单元的本地缓存。
生产者设备可以是例如网络接口卡、输入设备、照相机、硬件加速器或直接存储器存取(DMA)设备。
生产者设备可以是一个或多个第二处理单元中的处理单元或某个其他设备。
在另一个实施方案中,数据处理系统包括互连电路,其中第一处理单元和共享缓存经由互连电路操作地耦合。
Claims (20)
1.一种方法,包括:
将来自数据处理系统的生产者设备的第一数据暂存在所述数据处理系统的共享缓存中,所述第一数据与所述数据处理系统的共享存储器中的多个第一数据地址相关联;
标识所述多个第一数据地址的地址模式;
响应于从所述数据处理系统的处理单元接收到对与第二数据地址相关联的第二数据的请求:
确定所述第二数据地址在所标识的地址模式中;以及
将与所标识的地址模式中的数据地址相关联的数据从所述共享缓存中继到所述处理单元的本地缓存。
2.根据权利要求1所述的方法,其中所标识的地址模式包括一系列连续数据地址。
3.根据权利要求1所述的方法,其中中继与所标识的地址模式中的数据地址相关联的所述数据包括将所述数据从所述共享缓存推送到所述处理单元的所述本地缓存。
4.根据权利要求1所述的方法,其中中继与所标识的地址模式中的数据地址相关联的所述数据包括所述处理单元的预取器将所述数据从所述共享缓存拉取到所述处理单元的所述本地缓存。
5.根据权利要求4所述的方法,还包括发送消息,以向所述处理单元的所述预取器通知所标识的地址模式。
6.根据权利要求1所述的方法,还包括:
响应于将来自所述生产者设备的第三数据暂存在所述共享缓存中,所述第三数据与所述共享存储器中的第三数据地址相关联:
确定所述第三数据地址在所标识的地址模式中;
预测所述处理单元是所标识的地址模式中的数据的目标;以及
将来自所述共享缓存的所述第三数据暂存在所述处理单元的所述本地缓存中。
7.根据权利要求1所述的方法,还包括:
将所标识的地址模式的描述符存储在预测表的条目中;以及
将所述处理单元的标识符作为与所标识的地址模式相关联的所述数据的目标存储在所述预测表的所述条目中。
8.根据权利要求7所述的方法,还包括:
响应于将来自所述生产者设备的第三数据暂存在所述数据处理系统的所述共享缓存中,所述第三数据与所述共享存储器中的第三数据地址相关联:
根据所述预测表确定所述第三数据地址在所标识的地址模式中;
根据所述预测表确定所述处理单元是所标识的地址模式中的数据的目标;以及
将来自所述共享缓存的所述第三数据暂存在所述处理单元的所述本地缓存中。
9.根据权利要求1所述的方法,其中所述共享缓存包括所述数据处理系统的系统级缓存或末级缓存,并且所述处理单元的所述本地缓存包括所述处理单元的一级(L1)缓存或二级(L2)缓存。
10.一种数据处理系统,包括:
具有本地缓存的第一处理单元;
能够由所述数据处理系统的所述第一处理单元和一个或多个第二处理单元访问的共享缓存;
被配置为在所述共享缓存中暂存数据的生产者设备,所暂存的数据与所述数据处理系统的共享存储器中的多个第一数据地址相关联;和
控制器,所述控制器被配置为:
标识所述多个第一数据地址的地址模式;
响应于从所述第一处理单元接收到对与第二数据地址相关联的第二数据的请求:
确定所述第二数据地址在所标识的地址模式中;以及
将与所标识的地址模式中的数据地址相关联的数据从所述共享缓存中继到所述第一处理单元的本地缓存。
11.根据权利要求10所述的数据处理系统,其中所述控制器还被配置为将与所标识的地址模式中的数据地址相关联的所述数据从所述共享缓存推送到所述第一处理单元的所述本地缓存。
12.根据权利要求10所述的数据处理系统,其中所述控制器还被配置为当暂存在所述共享缓存中的数据被确定为所标识的地址模式时,向所述第一处理单元的预取器发送消息,并且所述第一处理单元的所述预取器被配置为将与所标识的地址模式中的数据地址相关联的所述数据从所述共享缓存拉取到所述第一处理单元的所述本地缓存。
13.根据权利要求10所述的数据处理系统,其中所述共享缓存包括系统缓存或末级缓存,并且所述第一处理单元的所述本地缓存包括一级(L1)缓存或二级(L2)缓存。
14.根据权利要求10所述的数据处理系统,其中所标识的地址模式包括一系列连续数据地址。
15.根据权利要求10所述的数据处理系统,还包括存储器,其中所述控制器被配置为将所标识的地址模式的描述符存储在所述存储器中存储的预测表的条目中。
16.根据权利要求15所述的数据处理系统,其中所述控制器还被配置为将所述第一处理单元的标识符作为与所标识的地址模式相关联的所述数据的目标存储在所述预测表的所述条目中。
17.根据权利要求16所述的数据处理系统,其中所述控制器还被配置为:
根据所述预测表确定与由所述生产者设备暂存在所述共享缓存中的第三数据相关联的第三数据地址在所标识的地址模式中;
根据所述预测表确定所述第一处理单元是与所标识的地址模式相关联的数据的目标;以及
将所述第三数据从所述共享缓存中继到所述第一处理单元的所述本地缓存。
18.根据权利要求10所述的数据处理系统,其中所述生产者设备包括网络接口卡、输入设备、照相机、硬件加速器或直接存储器存取(DMA)设备。
19.根据权利要求10所述的数据处理系统,其中所述生产者设备包括所述一个或多个第二处理单元中的处理单元。
20.根据权利要求10所述的数据处理系统,还包括互连电路,其中所述第一处理单元和所述共享缓存经由所述互连电路操作地耦合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/123,527 | 2020-12-16 | ||
US17/123,527 US11314645B1 (en) | 2020-12-16 | 2020-12-16 | Cache stash relay |
PCT/GB2021/053222 WO2022129869A1 (en) | 2020-12-16 | 2021-12-09 | Cache stash relay |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116472521A true CN116472521A (zh) | 2023-07-21 |
Family
ID=79025107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180078419.7A Pending CN116472521A (zh) | 2020-12-16 | 2021-12-09 | 缓存暂存中继 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11314645B1 (zh) |
CN (1) | CN116472521A (zh) |
GB (1) | GB2616399A (zh) |
WO (1) | WO2022129869A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12001722B2 (en) * | 2022-08-18 | 2024-06-04 | Arm Limited | Technique for controlling stashing of data |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3969009B2 (ja) * | 2001-03-29 | 2007-08-29 | 株式会社日立製作所 | ハードウェアプリフェッチシステム |
US6813694B2 (en) * | 2002-08-08 | 2004-11-02 | International Business Machines Corporation | Local invalidation buses for a highly scalable shared cache memory hierarchy |
US7082500B2 (en) * | 2003-02-18 | 2006-07-25 | Cray, Inc. | Optimized high bandwidth cache coherence mechanism |
US7730263B2 (en) * | 2006-01-20 | 2010-06-01 | Cornell Research Foundation, Inc. | Future execution prefetching technique and architecture |
US9304920B2 (en) * | 2013-05-23 | 2016-04-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for providing cache-aware lightweight producer consumer queues |
US9720830B2 (en) * | 2015-07-10 | 2017-08-01 | Macom Connectivity Solutions, Llc | Systems and methods facilitating reduced latency via stashing in system on chips |
GB2567466B (en) * | 2017-10-12 | 2020-01-22 | Advanced Risc Mach Ltd | Cache stashing in a data processing system |
US10664419B2 (en) * | 2017-11-02 | 2020-05-26 | Arm Limited | I/O driven data transfer in a data processing network |
CN109753445B (zh) * | 2017-11-02 | 2022-12-27 | 华为技术有限公司 | 一种缓存访问方法、多级缓存系统及计算机系统 |
US10713053B2 (en) * | 2018-04-06 | 2020-07-14 | Intel Corporation | Adaptive spatial access prefetcher apparatus and method |
US10452593B1 (en) * | 2018-05-03 | 2019-10-22 | Arm Limited | High-performance streaming of ordered write stashes to enable optimized data sharing between I/O masters and CPUs |
US10860487B2 (en) * | 2019-04-17 | 2020-12-08 | Chengdu Haiguang Integrated Circuit Design Co. Ltd. | Multi-core processing device and method of transferring data between cores thereof |
-
2020
- 2020-12-16 US US17/123,527 patent/US11314645B1/en active Active
-
2021
- 2021-12-09 CN CN202180078419.7A patent/CN116472521A/zh active Pending
- 2021-12-09 GB GB2309698.5A patent/GB2616399A/en active Pending
- 2021-12-09 WO PCT/GB2021/053222 patent/WO2022129869A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022129869A1 (en) | 2022-06-23 |
GB2616399A (en) | 2023-09-06 |
US11314645B1 (en) | 2022-04-26 |
GB202309698D0 (en) | 2023-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111344684B (zh) | 多层缓存安置机制 | |
US8140759B2 (en) | Specifying an access hint for prefetching partial cache block data in a cache hierarchy | |
US7669009B2 (en) | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches | |
JP4028875B2 (ja) | メモリを管理するためのシステムおよび方法 | |
US6078992A (en) | Dirty line cache | |
JP5445581B2 (ja) | コンピュータシステム、制御方法、記録媒体及び制御プログラム | |
JP6008362B2 (ja) | データ処理システムのシステムメモリへのデータの書き込み | |
US9727469B2 (en) | Performance-driven cache line memory access | |
JPS61156346A (ja) | 記憶階層の先取り装置 | |
CN110362506B (zh) | 高速缓存存储器及其中实现的方法 | |
JP2002049528A (ja) | キャッシュからデータをデモートする方法、システム及びプログラム | |
JP2023507078A (ja) | プリフェッチレベルの降格 | |
CN111324556A (zh) | 高速缓存预取 | |
EP1304619A1 (en) | Cache memory operation | |
CN117609110A (zh) | 一种缓存方法、高速缓存、电子设备及可读存储介质 | |
TWI793812B (zh) | 微處理器、快取記憶體存儲器系統及其中實現的方法 | |
CN116472521A (zh) | 缓存暂存中继 | |
KR20230017244A (ko) | 코어 대 코어 캐시 스태싱 및 타깃 발견 | |
US7610458B2 (en) | Data processing system, processor and method of data processing that support memory access according to diverse memory models | |
WO2008068797A1 (ja) | キャッシュシステム | |
US20010032297A1 (en) | Cache memory apparatus and data processing system | |
US9886212B2 (en) | Mechanism for copying data in memory | |
KR101976320B1 (ko) | 라스트 레벨 캐시 메모리 및 이의 데이터 관리 방법 | |
US8176254B2 (en) | Specifying an access hint for prefetching limited use data in a cache hierarchy | |
US12013784B2 (en) | Prefetch state cache (PSC) |
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 |