技术新讯 > 计算推算,计数设备的制造及其应用技术 > 将L3高速缓存数据逐出的数据重新找取到末级高速缓存中的制作方法  >  正文

将L3高速缓存数据逐出的数据重新找取到末级高速缓存中的制作方法

  • 国知局
  • 2024-10-09 15:40:42

背景技术:

1、为了支持指令的执行,处理系统通常实现一个或多个计算复合体,每个计算复合体具有一个或多个处理器核心并且存储器分级结构具有存储器模块以存储要由执行指令访问的数据。每个处理器核心与对于对应处理器核心是本地的一级或多级高速缓存以及存储可由对应处理器核心处的执行指令访问的较大量数据的主存储器相关联。例如,具有多个处理器核心的许多处理系统采用多个高速缓存级别的分级结构,该多个高速缓存级别包括1级(l1)高速缓存、2级(l2)高速缓存和3级(l3)高速缓存,该1级(l1)高速缓存、2级(l2)高速缓存和3级(l3)高速缓存具有变化的存储容量和到相关联处理器核心的邻近度。在一些处理系统中,每个处理器核心在1级处具有独立的指令专用高速缓存和数据专用高速缓存。在高速缓存分级结构中,每个处理器核心与对于对应核心是私有的一级或多级高速缓存(下文中称为“私有高速缓存”)相关联。处理系统在高速缓存分级结构的另一级处进一步实现共享高速缓存(常常被称为l3高速缓存),其中l3高速缓存在计算复合体的处理器核心之间共享(下文中称为“共享高速缓存”)。在一些处理系统中,独立于l3高速缓存的最低级或末级高速缓存(llc)也在计算复合体的处理器核心之间共享。

2、常规上,数据以固定大小的块在存储器和高速缓存之间传送。此类块包括存储在高速缓存中的数据(本文中称为高速缓存行)以及其他信息。此外,此类块可包括存储在多个高速缓存行中的数据。当将一个或多个高速缓存行从存储器复制到高速缓存中时,创建高速缓存条目。该高速缓存条目通常包括所复制的数据以及所请求的存储器位置。为了确保存储器一致性,高速缓存分级结构通常被配置为实现一致性协议,其中分级结构的高速缓存维持用于它们的相应高速缓存行的一致性状态信息并且将高速缓存探测传达到分级结构的其他高速缓存以确保遵循一致性协议的规则。

3、当处理器核心对存储器中的位置进行读取或写入,其首先检查高速缓存中的对应条目。高速缓存检查可能包含地址的任何高速缓存行中所请求的存储器位置的内容。如果处理器发现存储器位置在高速缓存中,则已发生高速缓存命中。然而,如果处理器未在高速缓存中找到存储器位置,则已发生高速缓存未命中。就高速缓存命中而言,处理器立即对高速缓存行中的数据进行读取或写入。对于高速缓存未命中,高速缓存分配新的条目并且将数据从主存储器复制到高速缓存中新分配的条目(即,高速缓存将从存储器位置处的主存储器“找取”数据到高速缓存),并且从高速缓存的内容完成请求。为了在高速缓存未命中时为新条目腾出空间,高速缓存可能必须将现有条目中的一个现有条目逐出。

4、所逐出的数据在本文中被称为“受害者数据”或“受害数据”。未被立即镜像到主存储器的对高速缓存的写入被标记为“脏数据”,并且高速缓存跟踪哪些位置已被写入覆盖(例如,经由写入指令或修改指令)。因此,在主存储器中不再是当前的受害数据(即,在高速缓存处已被修改但在主存储器处未被修改的数据)在本文中被称为“脏数据”,而当前的(即,在高速缓存处不被修改的)数据在本文中被称为“干净数据”。此外,常规的排他性高速缓存需要将干净受害者数据(例如,从l3)逐出以维持一致性和高速缓存排他性,这增加了结构中的数据移动,消耗了额外的电力和带宽。

技术实现思路

1、在一个示例中,一种方法包括:响应于从中间级别的高速缓存对第一干净数据块的逐出,访问第一干净数据块的地址。该方法还包括使用地址发起从系统存储器中将第一干净数据块找取到末级高速缓存(llc)中。

2、在另一个示例中,该方法还包括将第一干净数据块的地址从中间级别的高速缓存传播到llc。该方法还可以包括响应于从中间级别的高速缓存对第一脏数据块的逐出,将第一脏数据块从中间级别的高速缓存传播到llc。在一些示例中,第一脏数据块包括经由写入指令或修改指令中的一者或多者已被写入到高速缓存分级结构的一个或多个高速缓存的数据。

3、在一些示例中,响应于从中间级别的高速缓存对第二干净数据块的逐出,该方法包括基于确定llc的命中率低于预先确定的阈值或者确定系统存储器与llc之间的接口当前具有低于用于找取数据的预先确定的阈值的容量,绕过将第二干净数据块存储在llc中。在一些示例中,该方法包括响应于从中间级别的高速缓存对第二干净数据块的逐出,基于确定中间级别的高速缓存与llc之间的一致性互连当前具有高于用于传播数据的预先确定的阈值的容量或者确定当前电力使用水平小于预先确定的阈值电力使用水平,将第二干净数据块从中间级别的高速缓存传播到llc。

4、在一些示例中,该方法包括发起从系统存储器对第一干净数据块的找取包括访问存储器控制器。在一些示例中,该方法还包括绕过将第一干净数据块从中间级别的高速缓存传播到llc。

5、在另一个示例中,一种处理系统包括处理器、系统存储器、多高速缓存分级结构和高速缓存控制器,该高速缓存控制器用以响应于从多高速缓存分级结构中的中间级别的高速缓存对第一干净数据块的逐出,访问第一干净数据块的地址,以及使用地址发起从系统存储器中将第一干净数据块找取到末级高速缓存(llc)中。在一些示例中,该高速缓存控制器进一步用以将第一干净数据块的地址从中间级别的高速缓存传播到llc。

6、在一些示例中,该高速缓存控制器进一步用以响应于从中间级别的高速缓存对第一脏数据块的逐出,将第一脏数据块从中间级别的高速缓存传播到llc。在一些示例中,该第一脏数据块包括经由写入指令或修改指令中的一者或多者已被写入到多高速缓存分级结构的一个或多个高速缓存的数据。

7、在一些示例中,该高速缓存控制器进一步用以基于确定llc的命中率低于预先确定的阈值或者确定系统存储器与llc之间的接口当前具有低于用于找取数据的预先确定的阈值的容量,响应于从中间级别的高速缓存对第二干净数据块的逐出来绕过将第二干净数据块存储在llc中。在一些示例中,该高速缓存控制器进一步用以基于确定中间级别的高速缓存与llc之间的一致性互连当前具有高于用于传播数据的预先确定的阈值的容量或者确定当前电力使用水平小于预先确定的阈值电力使用水平,响应于从中间级别的高速缓存对第二干净数据块的逐出来将第二干净数据块从中间级别的高速缓存传播到llc。

8、在一些示例中,发起从系统存储器对第一干净数据块的读取包括访问存储器控制器。在一些示例中,该高速缓存控制器进一步用以绕过将第一干净数据块从中间级别的高速缓存传播到llc。

9、在另一个示例中,一种方法包括响应于将第一高速缓存数据存储在处理系统的多高速缓存分级结构中的中间级别的高速缓存中的请求,确定超过中间级别的高速缓存的存储容量。该方法还包括:发起从中间级别的高速缓存对第一干净数据块的逐出,该逐出包括将第一干净数据块的地址发送到末级高速缓存(llc),以及响应于在llc处接收到地址,通过使用从中间级别的高速缓存发送的地址从系统存储器找取第一干净数据块,将所逐出的第一干净数据块高速缓存在llc中。

10、在一些示例中,该方法还包括响应于从中间级别的高速缓存对第一脏数据块的逐出,将第一脏数据块从中间级别的高速缓存发送到llc。在一些示例中,该方法包括绕过将第一干净数据块从中间级别的高速缓存发送到llc。在一些示例中,该方法包括从存储在中间级别的高速缓存中的系统探测信息获得第一干净数据块的地址。

本文地址:https://www.jishuxx.com/zhuanli/20241009/309588.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。