处理系统中基于传送成本的高速缓存行的传送的制作方法

文档序号:31051713发布日期:2022-08-06 07:39阅读:69来源:国知局
处理系统中基于传送成本的高速缓存行的传送的制作方法

短”,其中术语“距离”在本上下文中表示操作的完成至少部分地由于高速缓存之间的物理距离而花费的时间。因此,如果共享高速缓存要选择第二专用高速缓存来满足高速缓存行请求,则处理系统将高速缓存行的高速缓存探针从共享高速缓存路由到第二专用高速缓存、然后将所请求高速缓存行的副本从第二专用高速缓存路由到请求处理器内核所花费的时间比处理系统使用第一专用高速缓存执行相同的探针和传送过程所花费的时间多。
8.因此,本文描述通过考虑连接处理系统中的专用高速缓存的特定拓扑而改进专用高速缓存之间的高速缓存行传送的高速缓存传送效率的系统和技术。在至少一个实施方案中,处理系统包括多个计算单元,每个计算单元包括至少一个处理器内核和所述计算单元专用的至少一个高速缓存(也就是说,“专用高速缓存”)。处理系统还包括由计算单元共享的高速缓存(也就是说,“共享高速缓存”),并且所述高速缓存可访问阴影标签存储器,所述阴影标签存储器维持存储在专用高速缓存中的各种高速缓存行的状态。共享高速缓存可进一步访问表示将各种计算单元连接到共享高速缓存和彼此的一个或多个互连的拓扑的拓扑信息。
9.响应于从请求计算单元接收到高速缓存行请求,共享高速缓存确定它是否可直接满足高速缓存行请求。如果不是,则共享高速缓存使用阴影标签存储器来标识任何专用高速缓存中是否存在高速缓存行的有效副本。如果单个专用高速缓存包含有效副本,则共享高速缓存向所标识的专用高速缓存发出高速缓存探针,以指导专用高速缓存将高速缓存行的副本传送到请求计算单元。如果多个专用高速缓存包含所请求高速缓存行的有效副本,则共享高速缓存利用拓扑信息来确定标识为包含所请求高速缓存行的有效副本的专用高速缓存中的每一个的传送成本。在至少一个实施方案中,此传送成本表示通过将共享高速缓存连接到对应专用高速缓存的一个或多个互连将对高速缓存行的探针请求发送到对应专用高速缓存的“成本”,以及然后通过连接这两个部件的一个或多个互连将所请求的高速缓存行从对应专用高速缓存传输到请求计算单元的“成本”。在一些实施方案中,传送成本表示从连接部件的特定拓扑收集的共享高速缓存到专用高速缓存到请求计算单元路径的每个互连片段所需的时间或持续时间,诸如时钟周期的数量。在其他实施方案中,传送成本包括在给定拓扑下完成传送的时间的考虑以及其他考虑。例如,在一些实施方案中,基于路径所遍历的互连,对传送路径所表示的时间进行缩放或以其他方式修改。为了说明,在具有连接在计算复合体中的多个计算单元并且计算复合体通过其他部件共享的系统互连连接的处理系统中,限制系统互连上的高速缓存行传送流量可能有利于整体处理效率。因此,当给定共享高速缓存专用高速缓存请求计算单元路径遍历系统互连时,路径的传送成本可按比例增加,并且因此偏向不遍历系统互连的高速缓存行传送,即使在路径“距离”相等的情况下也是如此。
10.图1示出根据一些实施方案的采用基于传送成本的高速缓存行传送的处理系统100。处理系统100包括计算复合体102、高速缓存层次结构104、存储器控制器106和南桥108。计算复合体102包括多个计算单元110,诸如所描绘的四个计算单元110-1、110-2、110-3和110-4。如关于计算单元110-4所示,每个计算单元110包括至少一个处理器内核112和高速缓存层次结构104的为计算单元110的一个或多个处理器内核112专用的一个或多个专用高速缓存,诸如专用一级(l1)高速缓存114和专用二级(l2)高速缓存116。处理器内核112包括例如中央处理单元(cpu)内核、图形处理单元(gpu)内核、数字信号处理器(dsp)内核或其
组合。
11.存储器控制器106操作为高速缓存层次结构104与系统存储器119之间的接口。因此,要在高速缓存层次结构104中高速缓存的数据通常作为称为“高速缓存行”的数据块进行操作,并且所述数据块使用系统存储器119的物理地址在存储器层次结构中寻址或以其他方式定位。响应于来自高速缓存层次结构104的存储器请求,存储器控制器106从系统存储器119访问高速缓存行。同样,当包含经修改数据的高速缓存行从高速缓存层次结构104被逐出并且因此需要在系统存储器119中更新时,存储器控制器106管理此回写过程。南桥108操作为高速缓存层次结构104、存储器控制器106和处理系统100的一个或多个外围设备121(例如,网络接口、键盘、鼠标、显示器和其他输入/输出设备)之间的接口。
12.处理系统100的部件通过一个或多个互连来互连。在所描绘的实施方案中,计算单元110-1、110-2、110-3和110-4通过单个互连118来连接,所述互连在本文中在操作中描绘和描述为环形互连。互连118的其他示例包括网状互连、交叉开关、网格互连、二维或三维圆环互连、分层环形互连等。应注意,在其他实施方案中,多个互连用于互连一些或所有计算单元110。
13.高速缓存层次结构104包括两级或多级高速缓存。在所示示例中,高速缓存层次结构104包括三个高速缓存级别:1级(l1);2级(l2);和3级(l3)。对于l1和l2,核心复合体102分别实现计算单元110的前述专用高速缓存114和116。出于以下描述的目的,假设专用l1高速缓存114是每个计算单元110完全专用的;也就是说,高速缓存层次结构104不维持专用l1高速缓存114之间或专用l1高速缓存114与更低级别高速缓存之间的一致性,而专用l2高速缓存116中的每一个是其对应计算单元110专用的,并且高速缓存层次结构104操作以维持专用l2高速缓存116之间的一致性,并且因此允许去往和来自l2高速缓存116的高速缓存行传送。专用l2高速缓存116是例如直接映射的或n路组相关联的。
14.对于l3高速缓存级别,高速缓存层次结构104实现由核心复合体102的计算单元110共享并且因此由至少l2高速缓存116共享的l3高速缓存120。因此,l3高速缓存120在本文中也称为“共享l3高速缓存120”。共享l3高速缓存120被示出为直接连接到环形互连118,但在其他实施方案中,共享l3高速缓存120与环形互连118之间设置有一个或多个其他互连。共享l3高速缓存120实现l3控制器122、l3数据数组和l3标签数组,l3数据数组具有多个索引和多个对应路,每个路在对应索引处存储对应高速缓存行,l3标签数组存储与每个索引/路相关联的标签信息。l3数据数组和l3标签数组在本文中共同示出并且称为l3数据/标签数组124。
15.在至少一个实施方案中,l3高速缓存120包括或以其他方式访问拓扑数据存储126以存储表示互连计算单元110和l3高速缓存120的一个或多个互连(诸如环形互连118)的网络的特定拓扑的拓扑信息。在一些实施方案中,拓扑信息直接表示互连的物理拓扑,诸如表示计算单元110和l3高速缓存120中的每一个在何处连接到环形互连118、部件之间的互连片段的物理特性(诸如缓冲或其他门延迟的数量、互连片段的导线的物理距离等)的的数据结构。在其他实施方案中,拓扑信息代替地表示部件对之间的传送“成本”度量,如通过建模或模拟、经验评估等基于网络的物理拓扑部分地确定的。l3高速缓存120还包括或以其他方式访问存储l2高速缓存116的高速缓存行的地址和状态信息(即,存储表示l2高速缓存116的标签信息的“阴影标签”)的阴影标签存储器128。l3高速缓存120使用阴影标签存储器128
来监测存储在计算单元110处的相应l2高速缓存116处的高速缓存行的状态,并且因此l3高速缓存120能够使用阴影标签存储器128标识哪些l2高速缓存116包含所请求高速缓存行的有效副本。美国专利号10,073,776(名称为“shadow tag memory to monitor state of cachelines at different cache level”)中描述了阴影标签存储器的示例性实施方式及其在促进高速缓存行传送方面的用途,所述专利的全部内容通过引用并入本文。下面更详细地描述拓扑数据存储126和阴影标签存储器128的实施方式。
16.在至少一个实施方案中,l3高速缓存120操作以促进计算单元110的l2高速缓存116之间的高速缓存行的传送。因此,当计算单元110在其自己的本地l1高速缓存114和l2高速缓存116处遇到高速缓存行的高速缓存未命中时,计算单元110通过环形互连118或其他连接将高速缓存行请求(例如,高速缓存行请求130)发送到l3高速缓存120。响应于接收到高速缓存行请求并且响应于确定l3数据/标签数组124不包含所请求高速缓存行的有效副本,l3控制器122使用阴影标签存储器128来确定其他计算单元110的l2高速缓存116中的哪一个(如果有的话)具有所请求高速缓存行的有效副本。如果其他l2高速缓存116都不包含有效副本,则l3控制器122发起从系统存储器119获得所请求高速缓存行的存储器请求。如果另一个l2高速缓存116包含有效副本,则l3高速缓存120将高速缓存探针发送到具有所标识l2高速缓存116的计算单元110,以请求将高速缓存行的副本从所述计算单元110传送到请求计算单元110。
17.然而,在l3高速缓存120从阴影标签存储器128标识出多个l2高速缓存116包含所请求高速缓存行的有效副本的情况下,则l3高速缓存120操作以选择l2高速缓存116中的一个来服务高速缓存行请求。在至少一个实施方案中,此选择过程是基于对被标识为包含高速缓存行的有效副本的每个候选l2高速缓存116的执行高速缓存行传送的“传送成本”的评估。所请求高速缓存行的副本的传送涉及:将高速缓存探针(例如,高速缓存探针132)从l3高速缓存120传输到具有所选择l2高速缓存116的计算单元110(分别为“目标l2高速缓存116”和“目标计算单元110”和),然后将所请求高速缓存行的副本(例如,高速缓存行副本134)从目标计算单元110传输到请求计算单元110。因此,在一个实施方案中,将高速缓存行从目标计算单元110传送到请求计算单元的传送成本表示为l3高速缓存120和目标计算单元110之间的路径的“距离度量”与目标计算单元110和请求计算单元110之间的路径的“距离度量”之和。这些“距离度量”在拓扑数据存储126中的拓扑信息中反映为或从拓扑信息计算为例如时钟周期的数量、互连片段的数量、实际物理距离、基于传送策略的缩放或其他调整、其组合等。
18.为了说明,如果计算单元110-2请求计算单元110-1和110-4两者都具有其有效副本的高速缓存行,并且如果环形互连118是双向的,并且如果在“距离”计算中仅考虑节点互连片段的数量,则将高速缓存行副本从计算单元110-1传送到计算单元110-2的传送成本低于将高速缓存行副本从计算单元110-4传送到计算单元110-2的传送成本。前一种传送仅需要三个“跃点”(其中“跃点”是指对互连片段的遍历),其中两个跃点用于将高速缓存探针从l3高速缓存120传送到计算单元110-1,并且一个跃点用于将高速缓存行副本从计算单元110-1传送到计算单元110-2。相比之下,后一种传送需要四个跃点,其中两个跃点用于将高速缓存探针从l3高速缓存120传送到计算单元110-4,并且两个跃点用于将高速缓存行副本从计算单元110-4传送到计算单元110-2。在更复杂的实施方式中,考虑其他拓扑参数,诸如
某些互连片段上的带宽或流量、互连片段的不同传输速度等,而此类考虑可能反而导致第一传送场情形的传送成本度量比第二传送情形的传送成本度量高。
19.在基于对候选l2高速缓存116的传送成本的评估选择目标l2高速缓存116来服务高速缓存行请求之后,l3高速缓存120通过通向具有目标l2高速缓存116的目标计算单元110的环形互连118将高速缓存探针(例如,高速缓存探针132)发送到目标计算单元110。此高速缓存探针包括正在请求的高速缓存行的标识符(例如,与高速缓存行相关联的存储器地址或其一部分)、请求计算单元110的目的地标识符(或请求计算单元110的请求l2高速缓存),以及源自请求计算单元的请求的标识符。响应于接收到高速缓存探针,目标计算单元110使用所请求高速缓存行的标识符来从目标l2高速缓存116访问所请求高速缓存行的副本,然后使用数据包或其他互连包络将所请求高速缓存行的副本(例如,高速缓存行副本134)与所接收高速缓存探针132中所包括的请求计算单元110的目的地标识符和由请求计算单元110发送的请求的标识符一起转发到请求计算单元110。
20.图2更详细地示出根据一些实施方案的l3高速缓存120、拓扑数据存储126和阴影标签存储器128的示例性实施方式。阴影标签存储器128被实现为包括分层布置为多个“库(bank)”、多个索引和多个路的阴影标签条目的高速缓存、数组、表、锁存器、触发器(flop)或其他存储配置。也就是说,阴影标签存储器128中的每个条目对应于特定的库、索引和路的组合。阴影标签存储器128中的每个阴影标签条目跟踪存在于l2高速缓存116中的一个中的对应高速缓存行的信息。存储在阴影标签条目处的对应高速缓存行的信息包括例如l2高速缓存116处的高速缓存行的物理地址(或其部分)以及高速缓存行的状态。每个库包含多个索引和路,并且表示用于跟踪存在于l2高速缓存116中的一个中的高速缓存行的阴影标签条目。
21.对于其中存在各自具有对应l2高速缓存116的四个计算单元110的示例性处理系统100,阴影标签存储器128包括四个“库”,四个l2高速缓存116中的每个高速缓存一个“库”。l3高速缓存120分割成多个“片”,其中所示示例具有四个片201、202、203、204(也标示为片1-4)和基于与每个通信相关联的地址如何位于片1-4内来路由去往和来自相应片的通信的路由逻辑206。每个片表示l2高速缓存116所使用的地址的分布的对应“片”。每个片还表示阴影标签存储器128的对应“片”。因此,由于在此示例中存在四个片,片201-204中的每一个存储l2高速缓存116的地址空间的对应25%和阴影标签存储器128的条目的对应25%。为此,如片201的详细视图所示,每个片包括l3数据/标签片208、阴影标签片210和片控制器212。对于片201,l3数据/标签片208具有用于l2缓存地址范围的第一25%的数据和标签数组条目,而对于片201,这是用于l2缓存地址范围的第二25%的数据和标签数组条目,依此类推。类似地,对于片201,阴影标签片210包括阴影标签存储器128的索引的第一25%,对于片202,阴影标签片210包括阴影标签存储器128的索引的第二25%,依此类推。
22.如所指出的,阴影标签存储器128被存储为一组阴影标签片210,每个阴影标签片具有与阴影标签存储器128相关联的总体地址范围的对应部分。因此,每个阴影标签片210包括多个库、索引和路。每个阴影标签片210中的库的数量对应于l2高速缓存116的数量。因此,由于在图1的示例中存在四个l2高速缓存116,因此在此示例中,每个阴影标签片210包括分别与计算单元110-1、110-2、110-3和110-4的l2高速缓存116相关联的四个库221、222、223、224。库的关联性(也就是说,路的数量)与跟所述库相关联的l2高速缓存的关联性相
同。例如,如果l2高速缓存是八路相关联的,则阴影标签存储器128的每个库也是八路相关联的,也就是说,具有八路。相反,如果l2高速缓存116是直接映射的,则阴影标签存储器128的每个库也是直接映射的;也就是说,每个库实际上是单路组相关联高速缓存。给定库中的索引和路的特定组合表示跟踪存在于l2高速缓存116中的对应高速缓存行的阴影标签条目216。阴影标签存储器128的每个条目具有用于存储与条目216相关联的高速缓存行的地址的至少一部分(通常是物理地址的高位)的地址字段214和用于存储高速缓存行的状态信息的状态字段215。l2高速缓存的高速缓存行的存储在阴影标签存储器128的对应条目216中的状态和地址信息通常反映所述高速缓存行的存储在l2高速缓存的标签数组中的标签信息的至少一个子集,并且因此是l2高速缓存针对此高速缓存行的标签的“阴影”。因此,l3高速缓存120的阴影存储器128中的状态信息可视为l2高速缓存116中的对应标签高速缓存行标签的“阴影标签”。
23.下表1示出阴影标签条目216的示例性格式及其用于表示对应l2高速缓存行的状态信息的利用。
24.表1:阴影标签存储器位置格式
[0025][0026]
因此,如表1所示,存储在与特定内核/l2高速缓存处的特定高速缓存行相关联的阴影标签条目216中的状态信息不仅包括此l2高速缓存处的高速缓存行的物理地址的标签部分的副本,而且还包括高速缓存行的一致性状态信息,以及便于处理从l2高速缓存逐出高速缓存行的分配信息。(例如)前述美国专利号10,073,776中可找到关于实现阴影标签存储器的另外的细节。
[0027]
转向拓扑数据存储126,在一个实施方案中,片201-204中的一个(例如,片201/片
1)被指定为操作以服务计算复合体102的所有l2高速缓存行传送的“主”片。因此,指定主片的片控制器212可访问拓扑数据存储126并且实现确定特定请求计算单元/目标计算单元对的传送成本的传送成本部件230。在其他实施方案中,片201-204物理分布在一个或多个集成电路(ic)基板周围,使得一些片比其他片在物理上更靠近某些计算单元。在此类实施方式中,每个片可与一个或多个近侧计算单元相关联,使得所述片操作以服务由与所述片相关联的一个或多个计算单元发起的l2高速缓存行传送。因此,本文对执行与高速缓存行传送有关的操作(包括高速缓存行请求的接收,基于最低传送成本考虑确定目标计算单元,以及将高速缓存探针发出到目标计算单元)的l3高速缓存120的提及在集中式实施方式中是指执行这种操作的主片201,或者在分布式片实施方式中是指执行这种操作的本地片。
[0028]
如上所述,拓扑数据存储126的拓扑信息表示用于实现各种请求计算单元/目标计算单元对之间的高速缓存行传送的传送成本,或者表示链接此类对以及将l3高速缓存120链接到目标计算单元的一个或多个互连的网络的物理拓扑。为了说明,下表2将拓扑信息的一个示例描述为表,所述表示出每对计算单元110以时钟周期为单位的总传送成本度量“tf[x]”(也就是说,从l3高速缓存120到目标计算单元,然后从目标计算单元到请求计算单元)。
[0029]
表2:示例性总传送成本(列:目标计算单元,行:请求计算单元):
[0030] 110-1110-2110-3110-4110-1
‑‑‑
tf1tf2tf3110-2tf4
‑‑‑
tf5tf6110-3tf7tf8
‑‑‑
tf9110-4tf10tf11tf12
‑‑‑
[0031]
因此,用于将高速缓存行从计算单元110-2的l2高速缓存116传送到计算单元110-3的l2高速缓存的总传送成本度量是tf8,而用于将高速缓存行从计算单元110-3的l2高速缓存116传送到计算单元110-2的l2高速缓存116的总传送成本度量是tf5,tf5可大于、等于或小于tf8,这取决于这三个部件之间的路径在它们各自的方向上的特定拓扑。
[0032]
在其他实施方案中,传送的每个互连片段的传送成本度量(也就是说,从l3高速缓存120到目标计算单元110的第一互连片段和从目标计算单元110到请求计算单元110的第二互连片段)在拓扑信息中表示,并且传送成本部件230通过对每个互连片段的传送成本度量求和来确定总传送成本。应注意,给定互连片段或整个传送的传送成本度量不仅可反映在给定连接这些部件的互连的物理拓扑(即,路径中的导线长度、缓冲器或其他逻辑延迟的数量等)下探针请求从l3高速缓存120行进到目标计算单元110所需的时间(例如,以时钟周期为单位)以及高速缓存行副本从目标计算单元110行进到请求计算单元110所需的时间,而且也可反映某些策略,诸如阻止繁忙或关键互连片段上的高速缓存传送流量的传送成本的加权或缩放。在其他实施方案中,拓扑信息不是直接反映传送成本,而是直接表示部件之间的路径的物理特性(诸如前述的导线长度、门/缓冲器延迟的数量等)以及基于高速缓存行传送策略的权重或其他缩放机制,并且传送成本部件230访问此信息,然后根据这些各种参数计算传送成本。作为一个示例,连接计算单元的互连可以是栅格或其他网格,并且因此传送成本部件230使用曼哈顿距离算法或其他众所周知的栅格路径距离算法来在网格内计算从l3高速缓存120到目标计算单元的距离以及从目标计算单元和请求计算单元的距离。
[0033]
对于拓扑数据存储126的拓扑信息中的基于直接传送成本的表示或物理属性表示,拓扑信息可在例如查找表(lut)232中实现,所述lut将目标计算单元和请求计算单元的标识符作为输入,并且输出表示总传送成本的值(或输出表示每个互连片段的传送成本的值)或输出表示互连片段的物理特性和策略的一个或多个值,所述互连片段形成l3高速缓存120与目标计算单元110之间以及目标计算单元110与请求计算单元110之间的路径。替代地,拓扑信息可在硬件逻辑中实现,硬件逻辑诸如呈可编程逻辑234(例如,融合逻辑、只读存储器(rom)等)的形式或呈硬编码逻辑236的形式,所述硬件逻辑被编程或设计来表示可通过建模或模拟等凭经验确定的预先计算的传送成本,或者被编程或设计来反映表示各种可用传送路径的物理属性的成本度量。
[0034]
图3示出根据一些实施方案的在图1和图2的处理系统100中执行基于传送成本的高速缓存行传送的方法300。在框302处,计算单元110(例如,计算单元110-2,以用于以下描述目的)确定其l2高速缓存116不包含所请求高速缓存行的有效副本,并且因此将高速缓存行请求130(例如,呈高速缓存探针的形式)发出到l3高速缓存120。在框304处,l3高速缓存120确定其是否能够直接服务高速缓存行请求;也就是说,l3数据/标签数组124中是否存在所请求高速缓存行的有效副本。如果是,则在框306处,l3高速缓存120用信号通知高速缓存命中并且通过将存储在l3数据/标签数组124中的高速缓存行的副本传送到请求计算单元110-2来服务高速缓存行请求130。
[0035]
如果l3高速缓存120不能服务高速缓存行请求,则在框308处,l3高速缓存120使用阴影标签存储器128来确定其他l2高速缓存116中的任一个是否包含所请求高速缓存行的有效副本。如果其他l2高速缓存116都不包含有效副本,则在框310处,l3高速缓存120用信号通知高速缓存未命中。在至少一个实施方案中,此高速缓存未命中然后触发l3高速缓存120发起存储器请求以从系统存储器119获得所请求高速缓存行,随之将所请求高速缓存行提供到请求计算单元110-2(并且,在一些情况下,还将其插入l3高速缓存120中)。然而,如果其他l2高速缓存116中存在有效副本,则在框312处,l3高速缓存120确定多个l2高速缓存116中是否存在多个有效副本,或者是否仅在单个其他l2高速缓存116中找到有效副本。如果只有一个其他l2高速缓存116包含所请求高速缓存行的有效副本,则在框314处,l3高速缓存120将高速缓存探针转发到此所标识l2高速缓存116,其中高速缓存探针包含请求计算单元110-2的标识符和正在寻找的高速缓存行的地址部分或其他标识符。响应于接收到高速缓存探针,所标识计算单元基于包含在高速缓存探针中的标识符以所请求高速缓存行的数据对请求计算单元110-2作出响应。
[0036]
否则,如果在框312处l3高速缓存120将多个候选l2高速缓存116标识为具有所请求高速缓存行的有效副本,则在框316处,l3高速缓存120确定所标识组的每个候选l2高速缓存116的传送成本。如上所解释,候选l2高速缓存116的传送成本至少部分地表示将高速缓存行请求(例如,图1的高速缓存探针132)通过一个或多个互连从l3高速缓存120传输到候选l2高速缓存116所花费的时间与将所请求高速缓存的副本(例如,图1的高速缓存行副本134)从候选l2高速缓存116传输到计算单元110(在此示例中,为计算单元110-2)所花费的时间之和。如上进一步所述,传送成本还可反映关于高速缓存行传送的一个或多个策略,诸如支持特定互连或不支持互连的特定段的策略,这可在传送成本中体现为例如通过与初始传送成本相乘施加的缩放值或与初始传送成本相加的值。在一些实施方式中,传送成本
还包括并反映完成每个候选l2高速缓存116的高速缓存行传送所需的估计功率消耗的差异,特别是在具有不同大小或复杂性的处理器内核的情况下。传送成本计算中使用的再其他参数可包括:互连或l2高速缓存116上的使用、备份或可用带宽,目的是尝试将流量分散到不太繁忙的互连或l2高速缓存116;在l2高速缓存116或其相关联的处理器内核112处实现的时钟频率,作为高速缓存行请求周转的可能速度的指示符;各种计算单元110的当前功率/温度参数,以便偏向超过其对应功率预算的风险较小的候选l2高速缓存116;以及线程优先级、任务优先级、或各种计算单元110处的执行优先级的其他指示符,意图是使与低优先级处理器内核112相关联的候选l2高速缓存116优于与较高优先级处理器内核112相关联的候选l2缓存。此外,尽管在一个实施方案中,l2高速缓存116中的高速缓存行的状态由共享l3高速缓存120监测,但在其他实施方案中,至少一些计算单元110的l1高速缓存114的至少一些高速缓存行也由共享l3高速缓存120监测,并且在此类情况下,候选目标高速缓存可包括所监测的l1高速缓存114,并且因此在所有其他条件相同的情况下,“距离”为例如5的l1高速缓存114将优于距离为例如7的l2高速缓存116被选择。
[0037]
在一些实施方案中,l3高速缓存-目标计算单元-请求计算单元路径的每个互连片段的传送成本度量是预先计算的并且在拓扑数据存储126中实现为例如lut 232、可编程逻辑234、硬编码逻辑236,或其组合。在此类情况下,传送成本部件230提供候选计算单元和请求计算单元的标识符作为输入,并且接收整个路径的总传送成本度量或路径的每个互连片段的传送成本度量(这些度量然后相加以获得总传送成本度量)作为输出。在其他实施方案中,物理拓扑的表示在拓扑数据存储126中表示,在这种情况下,传送成本部件230提供相同的标识符,并且接收路径的拓扑数据作为输出,传送成本部件230然后根据路径的拓扑数据计算用于将所请求高速缓存行从候选计算单元传送到请求计算单元的传送成本。
[0038]
在框318处,l3高速缓存120的传送成本部件230将针对所请求高速缓存行具有最短总路径(如由最低传送成本所表示)的候选计算单元110标识为用于传送高速缓存行的副本的目标计算单元110。在两个或更多个候选计算单元110之间的最低传送成本存在平局的情况下,传送成本部件230可使用多种平局决胜选择过程中的任一种,诸如始终选择最靠近l3高速缓存120的一个,基于预定优先级顺序随机选择一个,跟踪先前选择并且选择一个以便平衡高速缓存行传送工作负载等。在框320处,l3高速缓存120然后通过环形互连118将高速缓存探针132传输到所选择目标计算单元110(图1的示例中的计算单元110-4),其中高速缓存探针132包括正在寻求的高速缓存行的标识符和请求计算单元110-2的标识符两者。
[0039]
在框322处,目标计算单元110-4通过环形互连118接收高速缓存探针132。作为响应,在框324处,目标计算单元110-4使用来自高速缓存探针132的所请求高速缓存行的标识符从目标计算单元110-4的l2高速缓存116访问所请求高速缓存行的本地副本,并且在框326处,目标计算单元110-4生成包含访问高速缓存行副本(例如,高速缓存行副本134)和作为目的地标识符的请求计算单元110-2的标识符的数据包或其他互连包络,并且通过环形互连118将此数据包传输到请求计算单元110-2。请求计算单元110-2然后从所接收数据包访问高速缓存行副本134并且将高速缓存行副本134插入其本地l2高速缓存116中以供计算单元110-2访问和使用。
[0040]
尽管图1的处理系统100示出其中使用单个互连(环形互连118)连接所有计算单元110和共享l3高速缓存120的示例性实施方式,但相同的上文描述的基于传送成本的高速缓
存行传送技术可用于具有多个互连的系统。为了说明,图4描绘具有通过系统级互连406来互连的多个核心复合体402(例如,四个核心复合体402-1、402-2、402-3和402-4)的处理系统400。每个核心复合体402又包括多个计算单元410和通过本地互连418连接的本地共享l3高速缓存420,并且其中每个l3高速缓存420包括:阴影标签存储器(例如,图1的阴影标签存储器128),其维持每个核心复合体402(或其一些分区子集)中的每个计算单元410的每个l2高速缓存(例如,图1的l2高速缓存116)的高速缓存行状态信息;和拓扑数据存储(例如,图1的拓扑数据存储126),其包含不仅表示所述核心复合体402的本地互连418而且还表示系统级互连406和其他核心复合体402的其他本地互连418的拓扑信息。在此实施方式中,处理系统400不仅在同一核心复合体402本地的计算单元410之间执行高速缓存行传送,但也在不同核心复合体402的计算单元410之间执行高速缓存行传送。因此,来自给定核心复合体402的计算单元410的高速缓存请求被路由到所述核心复合体402本地的l3高速缓存420。响应于此l3高速缓存420处的高速缓存未命中,l3高速缓存420然后标识是否有任何本地计算单元410或任何远程计算单元410维持所请求高速缓存行的有效副本,以及是否存在多个候选目标计算单元;确定每个候选目标计算单元(无论是本地的还是远程的)的传送成本;并且相应地选择适当的目标计算单元来服务高速缓存行请求。在处理系统400的上下文中,候选计算单元的传送成本的确定考虑计算单元是本地的还是远程的,并且如果是远程的,则考虑通过系统互连406并通过包含候选计算单元410的远程核心复合体402的本地互连418的路径所呈现的另外的“距离”,以及任何策略信息,诸如表示在审慎时限制系统级互连406上的高速缓存行传送流量的偏好的缩放值。
[0041]
在一些实施方案中,上文描述的装置和技术在包括一个或多个集成电路(ic)设备(也称为集成电路封装或微芯片)的系统(诸如上文参考图1至图4描述的处理系统100和400)中实现。这些ic设备的设计和制造中经常使用电子设计自动化(eda)和计算机辅助设计(cad)软件工具。这些设计工具通常表示为一个或多个软件程序。一个或多个软件程序包括代码,所述代码可由计算机系统执行以操纵计算机系统对表示一个或多个ic设备的电路的代码进行操作,以执行用于将制造系统设计或适配为制造电路的过程的至少一部分。此代码包括指令、数据或指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在可由计算系统访问的计算机可读存储介质中。同样地,表示ic设备的设计或制造的一个或多个阶段的代码存储在相同的计算机可读存储介质或不同的计算机可读存储介质中并且从其进行访问。
[0042]
计算机可读存储介质包括在使用期间可由计算机系统访问以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或者非暂时性存储介质的组合。此类存储介质包括但不限于光学介质(例如,压缩光盘(cd)、数字通用光盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或快闪存储器)或基于微机电系统(mems)的存储介质。计算机可读存储介质可嵌入在计算系统中(例如,系统ram或rom),固定地附接到计算系统(例如,磁性硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的闪存存储器),或者通过有线或无线网络耦接到计算机系统(例如,网络可访问存储装置(nas))。
[0043]
在一些实施方案中,上文描述的技术的某些方面由执行软件的处理系统的一个或
多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可包括指令和某些数据,当由一个或多个处理器执行时,所述指令和某些数据操纵所述一个或多个处理器来执行上文描述的技术的一个或多个方面。非暂时性计算机可读存储介质可包括例如磁盘或光盘存储设备、固态存储设备诸如快闪存储器、高速缓存、随机存取存储器(ram)或一种或多种其他非易失性存储器设备等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、对象代码或由一个或多个处理器解译或以其他方式执行的其他指令格式。
[0044]
根据一个方面,一种处理系统包括多个计算单元,每个计算单元包括至少一个处理器内核和多个专用高速缓存中的至少一个专用高速缓存,每个专用高速缓存被配置来存储一组对应高速缓存行。所述处理系统还包括共享高速缓存,所述共享高速缓存由所述多个计算单元共享,并且通过一个或多个互连耦接到所述多个计算单元。所述共享高速缓存被配置来:响应于接收到来自请求计算单元的对所标识高速缓存行的请求,标识所述多个专用高速缓存的具有所标识高速缓存行的有效副本的子集;标识所述子集中具有用于将所标识高速缓存行的有效副本提供到所述请求计算单元的最低传送成本的所述专用高速缓存;并且通过所述一个或多个互连中的至少一个互连将探针请求传输到具有所标识专用高速缓存的目标计算单元。响应于接收到所述探针请求,所述目标计算单元被配置来通过所述一个或多个互连中的至少一个互连将所标识高速缓存行的有效副本传送到所述请求计算单元。在一些实施方案中,所述共享高速缓存被配置来通过以下方式标识所述子集中具有所述最低传送成本的专用高速缓存:针对所述子集中的每个专用高速缓存,确定表示第一距离度量和第二距离度量之和的对应传送成本度量,所述第一距离度量表示通过所述一个或多个互连的所述共享高速缓存与所述专用高速缓存之间的距离,并且所述第二距离度量表示所述专用高速缓存与所述请求计算单元之间的距离;以及将具有所述最低对应传送成本度量的所述专用高速缓存标识为具有所述最低传送成本的所述专用高速缓存。
[0045]
根据另一个方面,提供一种用于在系统中进行高速缓存行传送的方法,所述系统包括多个计算单元和一个共享高速缓存,每个计算单元包括多个专用高速缓存中的至少一个专用高速缓存。所述方法包括:响应于来自请求计算单元的对所标识高速缓存行的请求,在所述共享高速缓存处标识所述计算单元的具有所标识高速缓存行的有效副本的子集。所述方法还包括:在所述共享高速缓存处标识所述子集中具有用于将所标识高速缓存行的有效副本提供到所述请求计算单元的最低传送成本的所述专用高速缓存,以及通过所述一个或多个互连中的至少一个互连将探针请求从所述共享高速缓存传输到具有所标识专用高速缓存的目标计算单元。所述方法还包括:响应于接收到所述探针请求,通过所述一个或多个互连中的至少一个互连将所标识高速缓存行的有效副本从所述目标计算单元传输到所述请求计算单元。在一些实施方案中,标识所述子集中具有所述最低传送成本的专用高速缓存包括:针对所述子集中的每个专用高速缓存,确定表示第一距离度量和第二距离度量之和的对应传送成本度量,所述第一距离度量表示通过所述一个或多个互连的所述共享高速缓存与所述专用高速缓存之间的距离,并且所述第二距离度量表示所述专用高速缓存与所述请求计算单元之间的距离;以及将具有所述最低对应传送成本度量的所述专用高速缓存标识为具有所述最低传送成本的所述专用高速缓存。
[0046]
根据又另一个方面,一种处理系统包括多个计算单元,每个计算单元具有多个第
一高速缓存中的相关联的第一高速缓存。所述处理系统还包括由所述多个计算单元共享的第二高速缓存。所述第二高速缓存被配置来管理所述多个第一高速缓存中的所述第一高速缓存之间的高速缓存的传送,使得当多个候选第一高速缓存包含所请求高速缓存行的有效副本时,所述第二高速缓存选择具有从所述第二高速缓存到所述候选第一高速缓存以及从所述候选第一高速缓存到发出对所请求高速缓存行的请求的所述计算单元的最短总路径的所述候选第一高速缓存。在一些实施方案中,所述最短总路径考虑所述总路径的互连片段的物理特性和与所述总路径的所述互连片段有关的一个或多个策略两者。
[0047]
应注意,并非以上在一般性描述中所描述的所有活动或元素都是需的,特定活动或设备的一部分可能不是必需的,并且除所描述的那些之外,可执行一个或多个其他活动,或者可包括一个或多个其他元素。更进一步,列出活动的次序不一定是执行活动的次序。另外,已经参考具体实施方案描述这些概念。然而,本领域普通技术人员应了解,在不脱离如所附权利要求书中所阐述的本公开范围的情况下,可作出各种修改和改变。因此,本说明书和附图将被视为说明性而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。
[0048]
以上关于具体实施方案描述了益处、其他优势以及问题的解决方案。然而,所述益处、优势、问题的解决方案,以及可导致任何益处、优势或解决方案出现或变得更加明显的任何特征,都不应被解释为是任何或所有权利要求的关键的、必需的或基本的特征。此外,以上所公开的特定实施方案仅是说明性的,因为所公开的主题可以受益于本文教义的本领域技术人员明白的不同但等效的方式进行修改和实践。除非如以下权利要求中有所描述,否则并不意图限制本文所示的构造或设计的细节。因此,显而易见的是,以上所公开的特定实施方案可进行变更或修改,并且所有此类变型都被认为是在所公开主题的范围内。因此,本文所寻求的保护如下文权利要求中所阐述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1