高速缓存分区分配的制作方法

文档序号:6478070阅读:206来源:国知局
专利名称:高速缓存分区分配的制作方法
技术领域
本发明通常涉及数据处理系统,并且更具体地涉及数据处理系统内的高速缓存 机制。更具体地,本发明涉及多分区高速缓存的高速缓存片(slice)内的高速缓存分区 (sector)分配。
背景技术
传统的多处理器数据处理系统可包括多个处理单元、系统存储器、以及耦合在处 理单元和存储器之间的一级或多级高速缓存存储器。高速缓存是用来以变化的等待时间 (latency)存储数据处理系统的整体存储器的子集的临时存储设备。各种高速缓存以定义 为级的关于处理单元的高速缓存层次配置。在各级高速缓存层次,在高速缓存的大小和访 问等待时间之间进行折衷。本领域技术人员熟知多级高速缓存层次的概念,其根据可用实 现技术优化各种高速缓存层次级的访问等待时间和大小特性,导致最优的系统性能。
处于给定层次级的高速缓存典型地包括多个组件,其包括高速缓存目录阵列、高 速缓存数据阵列、以及更新和管理高速缓存所需的功能逻辑单元。高速缓存的高速缓存数 据阵列部分是利用来存储主存储器的各部分的复本的数据存储元件的集合。高速缓存数据 阵列划分为一系列所谓的"高速缓存块"。这些高速缓存块是用来保持数据处理系统内的主 存储器的相邻部分的复本的存储区域。这些块典型地在大小上为128字节的阶,并且是二 的幂的大小。 在下面的描述中,将假设128字节的高速缓存块大小。本领域技术人员将能够将 本发明应用到具有其他高速缓存块大小的数据处理系统。此外,还对准了复制到高速缓存 块中的存储器的各部分。换句话说,映射到高速缓存块中的存储器的相邻部分的起始地址 是高速缓存块大小的整数倍。 典型地,高速缓存的数据阵列部分组织为高速缓存块的MXN矩阵。矩阵的每行称 为"同余类(congruence class)",并且同余类的数量典型地为二的幂。在给定同余类中,提 供N块以保持主存储器的相邻部分的复本。同余类中具有N块的高速缓存称为N路(Niay) 集合关联高速缓存。 通过高速缓存块映射主存储器中的每个位置以驻留在高速缓存内的特定同余类 中。主存储器地址的低阶位(对于128字节高速缓存线的七位)指示正访问高速缓存线内 的哪个字节,并且不影响高速缓存块到同余类的映射。地址的次高有效lo&(M)位称为"同 余类地址"。这些地址位用于索引(index)到高速缓存的M行中。存储器的高速缓存块大 小的并对齐的部分可驻留在寻址的同余类中的N块(条目)的任一中。地址内的剩余高阶 位称为"标签",并用于区分可能在同余类中分配的主存储器的不同块。
现在参照图1A,示出了关于下述的描述如何解释构成主存储器地址的各位,以 确定对于具有64位地址的系统和具有128字节高速缓存线的4096同余类的高速缓存,主 存储器位置可映射到高速缓存内的哪里。字段103中的低阶7位(位57-63)指示对应于 该地址的高速缓存线内的字节。由于该字段寻址高速缓存线内的字节,因此当确定高速缓存块可驻留在高速缓存内哪里时,忽略它。 同余类地址字段102中的接下来12位(位45-56)指示该存储器地址映射到的高
速缓存内的同余类。包含该地址的高速缓存块可驻留在寻址的同余类中的N块的任何中。
最后,字段101中的地址的剩余位(位0到44)称为存储器块的"标签"。 为了记录高速缓存中存在主存储器的哪些部分,高速缓存包括MXN条目高速缓
存目录阵列。该高速缓存目录阵列中的每个条目直接对应于MX N高速缓存数据阵列中的
一个条目,并且指示主存储器的哪个部分映射到高速缓存数据阵列的对应条目和在该条目
处的高速缓存线的状态。 现在参照图1B,示出了高速缓存目录条目的描述。标签字段104由映射到高速缓 存内的该条目的主存储器的块的地址的标签部分组成。状态字段105包含映射到该条目的 高速缓存块的状态。在描述的实施例中,四位用于提供高达16个可能的高速缓存状态。这 些状态之一指示该线"无效"。在存在无效状态时,忽略该目录条目的标签字段内的值,因为 高速缓存中的该条目不是有效的(该鉴定是必要的,因为一些值总是存在于标签字段中, 而不论存储器的对应部分实际是否已经驻在高速缓存条目中)。 为了确定特定地址是否存在于高速缓存中,该地址的标签部分与和该地址相关联 的同余类内的N标签条目(标签字段104)比较,忽略由状态字段105标记为无效的那些条 目。如果找到有效匹配条目,则该线存在于高速缓存中。当在高速缓存块内安装主存储器 的一部分时,对于块的目录条目更新,以指示非无效状态,并且将存储器块地址的标签部分 放置在标签字段104内。当从高速缓存解除分配块时,状态字段105设为无效,并且高速缓 存数据(如果出于一致性原因需要的话)可写回到主存储器或另一高速缓存。
现在参照图1C,示出了根据上述描述的高速缓存的描述。高速缓存IIO包括高速 缓存数据阵列120、高速缓存目录阵列130和高速缓存控制逻辑126b。高速缓存数据阵列 120包括由高速缓存成员124组成的同余类122。高速缓存目录阵列130类似于上述高速 缓存数据阵列120组织。 前面已经描述了可使用由高速缓存目录阵列、高速缓存数据阵列和一组控制逻辑 组成的单个高速缓存结构映射主存储器的整体以管理高速缓存的更新的单高速缓存结构。 然而,为了增加并行化,高速缓存经常"分片"。在分片的高速缓存中,每片包含高速缓存数 据阵列、高速缓存目录阵列和控制逻辑。典型地,在具有S片的分片的高速缓存中,每片负 责整个存储器的1/S。片数经常是二的幂,并且在下文将如此假设。 现在参照图2A,示出了由两片212a和212b组成的分片的高速缓存210的描述。 每片高速缓存数据阵列222a或222b用于保持映射到给定高速缓存片的存储器的那些区 域。每片高速缓存目录230a或230b用于跟踪映射到每个高速缓存片内的存储器的各部分。 最后,每片控制逻辑226a和226b管理给定高速缓存片的未完成的(outstanding) —致操 作。通过具有多于一个高速缓存片,可以容纳比类似图1C的单片电路高速缓存结构内将可 能容纳的未完成的操作更大数量的未完成的操作。 典型地提供额外的寻址部件以通过在高速缓存片之间分派整个系统存储器空间 来有效地管理分片的高速缓存,如图2A所示。具体地,通过高速缓存210中的每片来高速 缓存整个系统存储器空间的一半。现在参照图2B,示出了关于下面的描述构成主存储器 地址的位如何被解释,以确定对于具有64位地址的系统、以及具有128字节高速缓存线的
74096同余类的高速缓存,主存储器位置可以映射到高速缓存210内的哪里。字段203中的低阶7位(位57-63)指示对应于该地址的高速缓存线内的字节。由于该字段寻址高速缓存线内的字节,因此当确定高速缓存块可驻留在高速缓存内哪里时忽视它。
接下来的字段(SS字段214)是片选择符(selector)字段。该字段用于确定分配给定高速缓存块存储器地址到哪个片。如果SS字段具有值"O",则高速缓存块存储器地址分配给片212a。类似地,如果SS字段具有值"l",则高速缓存块存储器地址分配给片212b。基于SS字段的该映射具有这样的效果,其使得以十六进制值"OO"结束的高速缓存块地址映射到片212a,而以十六进制值"80"结束的那些高速缓存块地址映射到片212b。对于具有多于两片的高速缓存,额外位将包括在SS字段中(在4片的情况下为2位),并且将系统存储器映射到映射到每片的独特的子集(如果使用非二的幂的数量的片,则在若干位之间典型地采用散列函数以选择将给定高速缓存块地址映射到的片)。对于给定高速缓存片,同余类地址字段202和标签字段201用作与如上所述的同余类字段102和标签字段101相同的功能。 在上述高速缓存结构中,对于高速缓存数据阵列中的每个条目使用单个目录条目。高速缓存目录阵列需要电路资源的显著部分,并且有利地在可能时降低该资源需求。为此,经常利用所谓的"分区高速缓存"。在分区高速缓存中,单个目录条目用来跟踪大于存储器的一个同余类高速缓存线大小的块的状态。在两分区高速缓存中,单个目录条目将跟踪系统存储器的两同余块的状态。 现在参照图3A,示出了对于两个分区高速缓存的目录条目的描述。目录条目包括标签字段304和对应于与目录条目相关联的每个高速缓存线的一致性状态的两个分区状态字段305a和305b 。 现在参照图3B,示出了关于下面的描述如何解释构成主存储器地址的位,以确定对于利用两个分区高速缓存的、具有64位地址的系统和具有128字节高速缓存线的4096同余类的高速缓存、主存储器位置可映射到高速缓存内的哪里。字段303中的低阶7位(位57到63)指示对应于该地址的高速缓存线内的字节。由于该字段寻址高速缓存线内的字节,因此当确定高速缓存块可驻留在高速缓存内哪里时忽略它。 地址中的下一位(T字段308)用于在映射到给定目录条目的分区之间进行选择。通过利用该低阶位,系统存储器的相邻高速缓存块区域分配到给定目录条目。在此情况下,以十六进制地址00和80结束的地址映射到给定目录条目的分区。 同余类地址字段302中的接下来的十二位(位44到55)指示该存储器地址映射到高速缓存内的同余类。包含该地址的高速缓存块可驻留在寻址的同余类内的N对高速缓存块的任何中。最后,标签字段301中的地址的剩余位(位0到43)称为存储器块的"标签",并且标识唯一的相邻高速缓存块对。标签字段301包含比图1A的标签字段101少一位的位,因为两个分区高速缓存中的目录条目用于映射系统存储器的两个高速缓存块大小的区域,而不是单个高速缓存块条目。 分区的高速缓存提供了降低目录的大小的手段,但是以高速缓存的效率为代价。如果各个目录条目的分区没有并发使用,则降低了可包含在高速缓存中的存储器的有效的量。在访问模式仅涉及主存储器的每隔一块的病态情况下,可被高速缓存的有效存储器量被消减一半。实践中,由于对高速缓存分区造成的效率损失显著地小于此。经常是这样的
8情况大致与未分区的高速缓存相等区域的分区的高速缓存将执行得更好(特别对于较大较低级高速缓存)。

发明内容
本发明的各个方面在权利要求中定义,现在应当参照权利要求。 优选实施例提供了一种方法和计算机系统,其通过重新配置分区到片分配和较低
的高速缓存寻址方案,降低具有分区和分片的较低高速缓存的高速缓存子系统中的布线拥
挤、需要的面积(real estate)以及访问等待时间。利用该分配,具有不相邻地址的分区放
置在相同片内,并且基于这种在高速缓存片内的可寻址分区的重新分配,在两级较低高速
缓存之间减少布线的方案是可能的。此外,重新配置较低高速缓存有效地址标签,使得相对
于地址标签内的彼此的位置切换之前分配来标识分区和片的地址字段。这种地址位的重新
分配使得能够基于指示的分区进行直接片寻址。 在下面详细书写的描述中,本发明的上面以及其他特征和优点将变得明显。


当结合附图阅读时,通过参照下面对说明性实施例的详细描述,本发明自身以及其优选使用模式和优点将被最好地理解,附图中 图1A和1B分别描述根据现有技术的高速缓存有效地址和高速缓存目录条目的示例表示; 图1C是根据现有技术的高速缓存的内部组件的框图表示; 图2A是根据现有技术的、划分成两片的高速缓存的内部组件的框图表示; 图2B描述用于寻址如图2A的高速缓存的分片的高速缓存内的条目的高速缓存有
效地址的现有技术表示; 图3A和3B分别描述根据现有技术的、对于两路(twoiay)分区的高速缓存的高速缓存目录条目和高速缓存有效地址的示例表示; 图4是其中可有利地实现本发明特征的具有多级高速缓存的数据处理系统的框图表示; 图5A是根据现有技术的、使用相邻分区寻址的、具有支持分片的两路分区的较低
级高速缓存的传统高速缓存间数据总线布线配置的高速缓存子系统的框图表示; 图5B和5C分别描述根据现有技术的、通过图5A的高速缓存子系统图示的、对于
L2到L3高速缓存配置的L2高速缓存有效地址和L3高速缓存有效地址的示例表示; 图6A是根据本发明一个实施例的、利用不相邻分区寻址的、具有支持分片的两
路分区的较低级高速缓存的减少的高速缓存间数据总线布线的高速缓存子系统的框图表
示; 图6B描述根据本发明一个实施例的、通过图6A的高速缓存子系统图示的L3高速缓存配置的L3高速缓存有效地址的示例表示; 图7A是根据现有技术的、使用相邻分区寻址的、具有支持分片的四路分区的较低
级高速缓存的传统高速缓存间数据总线布线配置的高速缓存子系统的框图表示; 图7B是根据本发明一个实施例的、利用不相邻分区寻址的、具有支持分片的四路分区的较低级高速缓存的减少的高速缓存间数据总线布线的高速缓存子系统的框图表示; 图7C描述根据本发明一个实施例的、通过图7B的高速缓存子系统图示的L3高速缓存配置的L3高速缓存有效地址的示例表示; 图8A是根据本发明一个实施例的、都利用不相邻分区寻址的、具有支持分片的两路分区的第一较低级高速缓存和分片的四路分区的第二较低级高速缓存之间的连接的减少的高速缓存间数据总线布线的高速缓存子系统的框图表示;以及 图8B和8C分别描述根据本发明一个实施例的、对于通过图8A的高速缓存子系统图示的L2到L3高速缓存配置的L2高速缓存有效地址和L3高速缓存有效地址的示例表示。
具体实施例方式
优选实施例提供了一种方法和计算机系统,其用于通过重新配置分区到片分配和较低高速缓存寻址方案,降低在具有分区的和分片的较低高速缓存的高速缓存子系统中的布线拥挤、需要的面积、以及访问等待时间。利用该分配方案,具有不相邻地址的分区放置在相同片内,并且基于高速缓存片内的可寻址分区的重新分配,在两级较低高速缓存之间的减少布线的方案是可能的。此外,重新配置较低高速缓存有效地址标签,使得之前分配来标识分区和片的地址字段相对于地址标签内的彼此的位置而切换。该地址位的重新分配使得能够基于指示的分区进行直接片寻址。例如,以十六进制的00结束的所有地址发送到第一片,而以十六进制的80结束的所有地址发送到第二片。这里描述和图示的特征可应用到系统的高速缓存层次的任何两级。 在附图的描述中,为与之前的图类似的元件提供类似的名称和参考标号。在后一图利用不同上下文中或具有不同功能性的元件时,为该元件提供表示图号的不同开头的标号(例如,对于图4为4xx,并且对于图6为6xx)。分配给元件的特定标号仅提供来帮助描述,而不意味着暗示对本发明的(结构或功能的)任何限制。 现在参照附图,并且具体地参照图4,图示了具有多级高速缓存层次的多处理器数据处理系统(DPS)400的高级框图,其中可有利地实现本发明的特征。如所述,数据处理系统400包括多个处理单元(芯片)401A、401B,其每个耦合到系统互连440。可包括一个或多个总线或跨点开关的系统互连440用作用于在处理单元401A和401B上的组件以及耦合到系统互连440的其他窥探者(snooper)(例如,存储器430)之间传递事务的管道。
每个处理单元401A、401B是集成电路,并且可包括一个或多个处理器,其中图示了 CPU0405A和CPU1405B。除了利用来执行程序指令的寄存器、指令流程逻辑和执行单元(其都没有具体示出)夕卜,处理器单元401A和401B每个包括关联的一级(Ll)高速缓存(也没有具体示出),其暂时存储可能由关联处理器(CPU 405A、405B)访问的指令和数据。Ll高速缓存可以是存储指令和数据两者(以下将两者简称为数据)的统一的高速缓存,或替代地,L1高速缓存可实现为分为两部分的(bifurcated)指令和数据高速缓存。
如图4所示,数据处理系统400还包括耦合到互连440的系统存储器430。存储器430形成存储器层次中的最低级的易失性数据存储,所述存储器层次包括一个或多个较低级的高速缓存存储器,包括二级(L2)高速缓存420A/420B和共享的L3高速缓存425。控制总线421A/421B用于在L2高速缓存420A/420B和共享的L3高速缓存425之间传递命令和数据。L2高速缓存420a/420b和共享的L3高速缓存425用来存储从系统存储器430到处理器(405A/405B)的数据。尽管本发明特征可应用到高速缓存层次的任何两级,但是这里的进一步的描述将参考在通过互连421A/421B实现的L2高速缓存420A/420B和共享的L3高速缓存425之间的数据传输和关联的布线和寻址。 本领域技术人员将进一步认识到,数据处理系统400可包括许多额外组件,如到额外互连的桥、1/0设备、非易失性存储、以及用于与网络或附加设备连接的端口。因为这些额外组件不是对于本发明的理解所必需的,所以它们没有图示在图4中或在此进一步讨论。 现在参照图5A,描述了现有技术的高速缓存层次实现。在优选实施例中,CPU的405A和405B连接到相应的L2高速缓存420A和420B。每个L2高速缓存420A/420B是具有128字节的高速缓存线大小的两片非分区的高速缓存。L2高速缓存420A/420B的第一片(120A)用于映射具有以十六进制"00"结束的起始地址的存储器的那些高速缓存线大小的块(例如,具有等于"0"的高速缓存线地址的位56的那些128字节高速缓存线块)。类似地,L2高速缓存420A/420B的第二片(120B)用于映射具有以十六进制"80"结束的起始地址的存储器的那些高速缓存线大小的块(例如,位56等于"1")。以此方式,如上参照图2A和2B所述,跨越L2高速缓存420A/420B的两片分派多处理器数据处理系统的主存储器。
类似地,L3高速缓存525是两片高速缓存(片525A和525B),但是高速缓存片进一步两路分区。普遍地对于高速缓存层次的较大较低级使用分区的高速缓存。较大的高速缓存通过构造为分区的高速缓存,提供了硅面积的较大的相当程度的节约。在现有技术的配置中,如上根据图3A和3B所述,分配到高速缓存条目内的不同分区的存储器的高速缓存块大小的区域映射到存储器内的相邻块。因此,在所述实施例中,以十六进制"00"和"80"结束的起始高速缓存块地址映射到片525A内的条目。以类似方式,以"100"和"180"结束的起始高速缓存块地址映射到高速缓存片525B内的条目。 在图5B所示的配置中,每个L2高速缓存片必须通过互连421A和421B内的总线521连接到每个L3高速缓存。这是由于当高速缓存线地址的地址位55分别为"0"(地址以"000"结束)或"l"(地址以"100"结束)时、以十六进制"00"结束的高速缓存线可在L3片525A或L3片525B中找到的事实。这样的配置导致连接(总线和/或布线521)集合的实现复杂和困难。 现在参照图5B和5C,示出了构成主存储器地址的位如何通过图5A的L2和L3高速缓存解释的描述。地址映射584描述了通过L2高速缓存420A/420B利用的地址映射。在该映射中,位56(字段583)用来在高速缓存片120A/120B之间选择。地址映射585描述了通过L3高速缓存525利用的地址映射。与现有技术的实现一致,位56(字段580)用来在给定高速缓存条目内的地址之间选择。该分配保持与给定高速缓存条目内的分区相关联的存储器区域相邻。位55(字段581)然后用来在高速缓存片之间选择。
现在参照图6A,示出了由本发明用来减少L2和L3高速缓存之间的布线拥挤的替代寻址方案。在优选实施例的机制中,L3高速缓存片中的分区分配给不相邻的地址。具体地,L3片625A被分配以十六进制地址"00"和"100"结束的地址。类似地,L3片625B被分配以十六进制地址"80"和"180"结束的地址。以此方式,L2高速缓存片(120A或120B)仅需要与一个L3片通信,这与现有技术的实现中的两片相反。例如,与L2高速缓存片120A
11相关联的地址可以仅在L3高速缓存片625A中存在。以十六进制"00"结束的地址必须以"000"或"100"结束。类似的原因允许L2高速缓存片120B仅连接到L3高速缓存片625B。该寻址方案减少了实现互连421A和421B所需的总线和/或布线621的数量。
现在参照图6B,示出了构成主存储器地址的位如何由图6A的L3高速缓存解释的描述(L2高速缓存映射与图5B中使用的映射相同)。地址映射690描述了由L3高速缓存625使用的地址映射。在该映射中,位56(字段592)用来选择L3高速缓存625内的片。通过将位56分配给片选择,在给定高速缓存片内分配不相邻高速缓存线。位55(字段591)然后用来控制哪个地址映射到分区的高速缓存线条目内的给定条目。该高速缓存寻址机制允许L2高速缓存420A/420B和L3高速缓存625之间的极大简化的互连。
图6A和6B所示的技术可扩展到处理具有更大数量的分区的较低级高速缓存。现在参照图7A,示出了具有两片四路分区的L3高速缓存725的数据处理系统715。数据处理系统715包含与图5A需要的相同的"任何高速缓存片"到"任何高速缓存片"互连(总线和/或布线521)。现在参照图7B,示出了其中L3高速缓存725根据本发明的教导配置并将不相邻地址分配到L3高速缓存片725A和725B的改进的数据处理系统。具体地,L3高速缓存片725A包含具有递增地址的高速缓存线,其中位56等于零(0)值,并且L3高速缓存片725B包含具有递增地址的高速缓存线,其中位56等于一 (1)值。通过以此方式分配地址,可减少高速缓存布线拥挤。 现在参照图7C,示出了关于构成主存储器地址的位如何由图7B的L3高速缓存解释的描述(L2高速缓存映射等同于图5B中使用的映射)。地址映射790描述了由L3高速缓存725使用的地址映射。在该映射中,位56(字段792)用来选择L3高速缓存725内的片。通过将位56分配给片选择,在给定高速缓存片内分配不相邻的高速缓存线。位54和55(字段791)然后用来控制哪个地址映射到分区的高速缓存线条目内的给定条目。该高速缓存寻址机制允许L2高速缓存720a/720b和L3高速缓存725之间的极大简化的互连(总线和/或布线721)。 本发明的教导还可应用到减少在较高级和较低级高速缓存两者被分区和分片时的布线拥挤。例如,图8A的高速缓存安排示出了应用到高速缓存层次815的本发明的教导,在高速缓存层次815中,L2高速缓存820A/820B是两路分区和两路分片的,其中L3高速缓存825是四路分片(片825A、825B、826A和826B)和两路分区的。在该结构中,每个L2高速缓存片821A/821B必须仅连接到L3高速缓存片的两个,而不是所有四个L3高速缓存片(片825A、825B、826A和826B)。 图8B和8C描述了图8A的高速缓存配置的L2和L3地址映射。L2高速缓存映射884利用位56(字段883)作为片选择符,并且利用位55 (字段882)来确定给定分区的高速缓存条目内的分区地址。类似地,L3地址映射885利用位55和56(字段892)作为片选择符,并且利用位53和54(字段891)来确定给定分区的高速缓存条目内的分区地址。
利用上述实施例,本发明提供了一种具有至少一个处理器和改进的子系统的数据处理系统,包括可通信地耦合到第一处理器并具有两个或更多高速缓存片的第一级高速缓存;以及可通信地耦合到第一级高速缓存的第二级高速缓存,其中第二级高速缓存具有至少两路分区的两个或更多第二高速缓存片。以不相邻方式分配所述两个或更多高速缓存片内的分区地址,使得第一分区分配给两个或更多第二高速缓存片的第一个,并且与第一分区相邻的第二分区分配给两个或更多第二高速缓存片的第二个。 互连将第一级高速缓存与第二级高速缓存连接,其使得能够在第一和第二级高速缓存之间进行数据交换。所述互连包括(l)第一数据总线,其可通信地将第一级高速缓存的第一片与第二级高速缓存内的对应的第一片连接;以及(2)第二数据总线,其可通信地将第一级高速缓存的第二片与第二级高速缓存内的对应的第二片连接。 在一个实施例中,数据处理系统和/或改进的存储器子系统包括下一个第一级高速缓存,其类似第一级高速缓存配置并与第一级高速缓存共享第二级高速缓存。在该下一个第一级高速缓存的情况下,所述互连还包括((-)第三数据总线,其可通信地将下一个第一级高速缓存的第一片与第二级高速缓存内对应的第一片连接;以及(2)第四数据总线,其可通信地将下一个第一级高速缓存的第二片与第二级高速缓存内对应的第二片连接。第一级高速缓存和下一个第一级高速缓存两者将来自各个第一片的数据提供到第二级高速缓存内对应的第一片并将来自第二级高速缓存内对应的第一片的数据提供到各个第一片,并且第一级高速缓存将来自各个第二片的数据提供到第二级高速缓存内对应的第二片并将来自第二级高速缓存内对应的第二片的数据提供到各个第二片。 为了支持该新的分配方案,数据处理系统和/或改进的存储器子系统包括第二级高速缓存寻址协议,其包括用于完成下面功能的高速缓存线地址位分配逻辑(l)与高速缓存线的地址标签内的一个或更多片选择符位交换一个或更多分区位的分配,其中所述片选择符位用来指示在第二级高速缓存内要分配对应数据线的片,并且所述分区位指示高速缓存线数据分配到的特定分区;(2)将一个或更多片选择符位内的具有第一值的第一数据自动分配到通过所述一个或更多片位指示的第二级高速缓存内的第一片;以及(3)将具有一个或更多片选择符位内的第二值的第二数据自动分配到通过所述一个或更多片选择符位指示的第二级高速缓存内的第二片。 在一个实施例中,所述自动分配包括检查高速缓存线地址内的片选择符位的值;并且当高速缓存线地址的地址部分以0位值结束时,将高速缓存线分配给第二级高速缓存内的第一片。此外,当高速缓存线地址的地址部分以l位值结束时,将高速缓存线分配到第二级高速缓存内的第二片。利用这些功能,高速缓存线地址的地址部分的结束位对应于片选择符位。 通过将不相邻地址分配给分区的高速缓存条目内的分区,本发明实现了高速缓存间布线和拥挤的减少。与将分区条目分配给具有递增相邻地址的存储器的高速缓存块大小的区域的现有技术的机制相反,这种具有不相邻地址的分区的分配允许给定层次级的给定高速缓存片附接到尽可能少的其他片。 上述每片分配分区的方法允许物理设备上的降低的高速缓存间布线,因此使得能够使用芯片上下的较小的面积,甚至同时增加L3高速缓存的大小并减小等待时间。本发明因此提供了高速缓存技术中的高度期望的进展。 尽管已经参照优选实施例具体示出和描述了本发明,但是本领域技术人员将理解,其中可进行形式和细节上的各种变化,而不背离本发明的范围。 为避免疑惑,如这里遍及说明书和权利要求使用的术语"包括"不应被解释为含义"仅由...组成"。
1权利要求
一种数据处理系统,包括至少一个处理器;第一级高速缓存,通信地耦合到第一处理器,并且基于地址层次被划分成两个或更多高速缓存片;以及第二级高速缓存,通信地耦合到所述第一级高速缓存,所述第二级高速缓存具有至少两路分区的两个或更多第二高速缓存片,其中根据地址层次以不相邻方式分配所述两个或更多第二高速缓存片内的分区,使得第一分区分配给所述两个或更多第二高速缓存片的第一个,并且与第一分区相邻的第二分区分配给所述两个或更多第二高速缓存片的第二个。
2. 如权利要求l所述的数据处理系统,还包括用于将第一级高速缓存与第二级高速缓存连接的互连,其使得能够在第一和第二级高 速缓存之间进行数据交换,其中所述互连包括(a)第一数据总线,其将第一级高速缓存的 第一片与第二级高速缓存内的对应的第一片通信地连接;以及(b)第二数据总线,其将第 一级高速缓存的第二片与第二级高速缓存内的对应的第二片通信地连接;其中所述第一级高速缓存内的第一分区的数据仅分配到第二级高速缓存内的第二高 速缓存片的第一个,而所述第一级高速缓存内的第二分区的数据仅分配到第二级高速缓存 内的第二高速缓存片的第二个。
3. 如权利要求2所述的数据处理系统,还包括下一个第一级高速缓存,类似第一级高速缓存配置并与第一级高速缓存共享第二级高 速缓存;并且其中所述互连还包括(a)第三数据总线,其将下一个第一级高速缓存的第一片与第二 高速缓存片的第一个通信地连接;以及(b)第四数据总线,其将下一个第一级高速缓存的 第二片与第二高速缓存片的第二个通信地连接;其中第一级高速缓存和下一个第一级高速缓存两者将来自各个第一片的数据提供到 第二高速缓存片的第一个并将来自第二高速缓存片的第一个的数据提供到各个第一片,并 且第一级高速缓存将来自各个第二片的数据提供到第二高速缓存片的第二个并将来自第 二高速缓存片的第二个的数据提供到各个第二片。
4. 如上面任一权利要求所述的数据处理系统,还包括第二级高速缓存寻址协议,其包 括用于完成下面功能的高速缓存线地址位分配逻辑关于高速缓存线的地址标签内的一个或更多片选择符位交换一个或更多分区位的位 置,所述片选择符位用来指示其中在第二级高速缓存内要分配的对应数据线的片,并且所 述分区位指示高速缓存线数据分配到的特定分区;将一个或更多片选择符位内的具有第一值的第一数据自动分配到通过所述一个或更 多片位指示的第二级高速缓存内的第一片;以及将一个或更多片选择符位内的具有第二值的第二数据自动分配到通过所述一个或更 多片选择符位指示的第二级高速缓存内的第二片。
5. 如权利要求4所述的数据处理系统,其中所述自动分配包括 检查高速缓存线地址内的(各)片选择符位的值;当高速缓存线地址的存储器地址部分以0位值结束时,将高速缓存线分配给第二级高 速缓存内的第一片;以及当高速缓存线地址的存储器地址部分以1位值结束时,将高速缓存线分配到第二级高 速缓存内的第二片;其中高速缓存线地址内的多个位用来表示高速缓存线的存储器地址部分,并且多个位 的最后的一个或多个位对应于(各)片选择符位。
6. 如权利要求4或5所述的数据处理系统,其中 第二级高速缓存是N路分区的,其中N是2的幂;以及跨越两个或更多高速缓存片分配每对相邻分区,使得没有两个相邻分区分配给相同高 速缓存片。
7. 如权利要求4、5或6所述的数据处理系统,其中高速缓存线地址内的多个位用来表示高速缓存线的存储器地址部分,并且多个位的最 后一位或多位对应于(各)片选择符位;以及最后一位或多位对应于以十六进制的00和十六进制的80结束的存储器地址,并且完 成所述分配,使得具有以十六进制的00结束的存储器地址部分的高速缓存线安排到第一 片,并且具有以十六进制的80结束的存储器地址部分的高速缓存线安排到第二片。
8. 如前面任一权利要求所述的数据处理系统,其中第一级高速缓存是具有两片的两路 分区的高速缓存,并且所述第二级高速缓存是具有四片的两路分区的高速缓存,所述系统 还包括用于将第一级高速缓存与第二级高速缓存连接的互连,以使得能够在第一和第二级高 速缓存之间进行数据交换,其中第一级高速缓存的第一片内的每个分区分配给第二级高速 缓存内的不同分区和不同片,使得第一级高速缓存的片内的顺序的分区分配给第二级高速 缓存内的不同片,并且来自第一级高速缓存的第一片和第二片的分区分配给第二级高速缓 存内的不同片。
9. 一种存储器子系统,包括第一级高速缓存,通信地耦合到第一处理器,并且基于地址层次被划分成两个或更多 高速缓存片;以及第二级高速缓存,通信地耦合到所述第一级高速缓存,所述第二级高速缓存具有至少 两路分区的两个或更多第二高速缓存片,其中根据地址层次以不相邻方式分配所述两个或 更多第二高速缓存片内的分区,使得第一分区分配给所述两个或更多第二高速缓存片的第 一个,并且与第一分区相邻的第二分区分配给所述两个或更多第二高速缓存片的第二个。
10. 如权利要求9所述的存储器子系统,还包括用于将第一级高速缓存与第二级高速缓存连接的互连,其使得能够在第一和第二级高 速缓存之间进行数据交换,其中所述互连包括(1)第一数据总线,其将第一级高速缓存的 第一片与第二级高速缓存内的对应的第一片通信地连接;以及(2)第二数据总线,其将第 一级高速缓存的第二片与第二级高速缓存内的对应的第二片通信地连接;其中所述第一级高速缓存内的第一分区的数据仅分配到第二级高速缓存内的第二高 速缓存片的第一个,而所述第一级高速缓存内的第二分区的数据仅分配到第二级高速缓存 内的第二高速缓存片的第二个。
11. 如权利要求10所述的存储器子系统,还包括下一个第一级高速缓存,类似第一级高速缓存配置并与第一级高速缓存共享第二级高速缓存;并且其中所述互连还包括(a)第三数据总线,其将下一个第一级高速缓存的第一片与第二 高速缓存片的第一个通信地连接;以及(b)第四数据总线,其将下一个第一级高速缓存的 第二片与第二高速缓存片的第二个通信地连接;其中第一级高速缓存和下一个第一级高速缓存两者将来自各个第一片的数据提供到 第二高速缓存片的第一个并将来自第二高速缓存片的第一个的数据提供到各个第一片,并 且第一级高速缓存将来自各个第二片的数据提供到第二高速缓存片的第二个并将来自第 二高速缓存片的第二个的数据提供到各个第二片。
12. 如权利要求9到11的任一所述的存储器子系统,还包括第二级高速缓存寻址协议, 其包括用于完成下面功能的高速缓存线地址位分配逻辑关于高速缓存线的地址标签内的一个或更多片选择符位交换一个或更多分区位的位 置,所述片选择符位用来指示其中在第二级高速缓存内要分配的对应数据线的片,并且所 述分区位指示高速缓存线数据分配到的特定分区;将一个或更多片选择符位内的具有第一值的第一数据自动分配到通过所述一个或更 多片位指示的第二级高速缓存内的第一片;以及将一个或更多片选择符位内的具有第二值的第二数据自动分配到通过所述一个或更 多片选择符位指示的第二级高速缓存内的第二片。
13. 如权利要求12所述的存储器子系统,其中所述自动分配包括 检查高速缓存线地址内的(各)片选择符位的值;当高速缓存线地址的存储器地址部分以0位值结束时,将高速缓存线分配给第二级高 速缓存内的第一片;以及当高速缓存线地址的存储器地址部分以1位值结束时,将高速缓存线分配到第二级高 速缓存内的第二片;其中高速缓存线地址内的多个位用来表示高速缓存线的存储器地址部分,并且多个位 的最后的一个或多个位对应于(各)片选择符位。
14. 如权利要求12或13所述的存储器子系统,其中 第二级高速缓存是N路分区的,其中N是2的幂;以及跨越两个或更多高速缓存片分配每对相邻分区,使得没有两个相邻分区分配给相同高 速缓存片。
15. 如权利要求12、 13或14所述的存储器子系统,其中高速缓存线地址内的多个位用来表示高速缓存线的存储器地址部分,并且多个位的最 后一位或多位对应于(各)片选择符位;以及最后一位或多位对应于以十六进制的00和十六进制的80结束的存储器地址,并且完 成所述分配,使得具有以十六进制的00结束的存储器地址部分的高速缓存线安排到第一 片,并且具有以十六进制的80结束的存储器地址部分的高速缓存线安排到第二片。
16. 如权利要求9到15的任一所述的存储器子系统,其中第一级高速缓存是具有两片 的两路分区的高速缓存,并且所述第二级高速缓存是具有四片的两路分区的高速缓存,所 述系统还包括用于将第一级高速缓存与第二级高速缓存连接的互连,以使得能够在第一和第二级高速缓存之间进行数据交换,其中第一级高速缓存的第一片内的每个分区分配给第二级高速 缓存内的不同分区和不同片,使得第一级高速缓存的片内的顺序的分区分配给第二级高速 缓存内的不同片,并且来自第一级高速缓存的第一片和第二片的分区分配给第二级高速缓 存内的不同片。
17. —种用于将数据分配到具有两片或更多片的N路分区的低级高速缓存的方法,所 述方法包括关于高速缓存线的地址标签内的一个或更多片选择符位交换一个或更多分区位的位 置,所述片选择符位用来指示其中在第二级高速缓存内要分配对应数据线的片,并且所述 选择符位指示基于地址层次将高速缓存线数据分配到的特定分区;将一个或更多片选择符位内的具有第一值的第一数据自动分配到通过所述一个或更 多片位指示的第二级高速缓存内的第一片;以及将一个或更多片选择符位内的具有第二值的第二数据自动分配到通过所述一个或更 多片选择符位指示的第二级高速缓存内的第二片;其中根据地址层次,将分配给不同的顺序寻址的分区的数据分配给低级高速缓存内的 不同片。
18. 如权利要求17所述的方法,其中所述自动分配包括 检查高速缓存线地址内的(各)片选择符位的值;当高速缓存线地址的存储器地址部分以0位值结束时,将高速缓存线分配给第二级高 速缓存内的第一片;以及当高速缓存线地址的存储器地址部分以1位值结束时,将高速缓存线分配到第二级高 速缓存内的第二片;其中高速缓存线地址内的多个位用来表示高速缓存线的存储器地址部分,并且多个位 的最后的一个或多个位对应于(各)片选择符位。
19. 如权利要求17或18所述的方法,其中 第二级高速缓存是N路分区的,其中N是2的幂;以及所述分配将高速缓存线分配给分区,使得跨越两个或更多高速缓存片分配每对相邻分 区,使得没有两个相邻分区分配给相同高速缓存片。
20. 如权利要求17、 18或19所述的方法,其中高速缓存线地址内的多个位用来表示高速缓存线的存储器地址部分,并且多个位的最 后一位或多位对应于(各)片选择符位;最后一位或多位对应于以十六进制的00和十六进制的80结束的存储器地址,并且所 述分配包括检查高速缓存线地址的片选择符位的值;当高速缓存线地址的存储器地址部分以十六进制的OO结束时,将高速缓存线数据放 置到第一片内;以及当高速缓存线地址的存储器地址部分以十六进制的80结束时,将高速缓存线数据放 置到第二片内。
全文摘要
一种方法和计算机系统,用于通过重新配置分区到片分配以及较低高速缓存寻址方案,在具有分区和分片的较低高速缓存的高速缓存子系统中减少布线拥挤、需要的面积、以及访问等待时间。利用该分配,具有不相邻地址的分区放置在相同片内,并且基于高速缓存片内的可寻址分区的这种重新分配,两级较低高速缓存之间的减少的布线方案是可能的。此外,重新配置较低高速缓存有效地址标签,使得相对于地址标签内的彼此位置切换之前分配来标识分区和片的地址字段。这种地址位的重新分配使得能够基于指示的分区进行直接的片寻址。
文档编号G06F12/08GK101784994SQ200880103198
公开日2010年7月21日 申请日期2008年7月29日 优先权日2007年8月16日
发明者威廉·J·斯塔克, 小詹姆斯·S·菲尔茨, 德里克·E·威廉斯, 盖伊·L·格思里, 菲利普·威廉斯, 里奥·J·克拉克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1