用于对芯片多处理器的共享高速缓存器分区的设备和方法

文档序号:6641677阅读:198来源:国知局
专利名称:用于对芯片多处理器的共享高速缓存器分区的设备和方法
技术领域
本发明的一个或多个实施例通常涉及集成电路和计算机系统设计的领域,更具体地说,本发明的一个或多个实施例涉及用于对芯片多处理器的共享高速缓存器分区的方法和设备。
背景技术
芯片多处理器(CMP)包括相同管芯(die)上的几个处理器。在共享高速缓存器CMP中,高速缓存器的某一级由芯片上的一些或全部处理器共享和访问。通常,这种共享是有益的,因为处理器运行多线程软件应用,其中这些线程共享数据和指令。通过共享高速缓存器,由不止一个处理器访问的数据的字占用高速缓存器中一个位置。而且,如果其它处理器需要和允许,任何处理器可以使用所有高速缓存器。共享高速缓存器的不利之处在于,如果这些处理器共同请求的容量多于可利用的容量,它们会经历比具有较小的专用高速缓存器的情况多的总高速缓存器未命中。
在成组相联的高速缓冲存储器中,请求在高速缓冲存储器内数据的高速缓存器未命中请求从高速缓存器逐出块,在此被称为“牺牲块”,来为被请求的块腾出空位。依照高速缓存器请求的索引执行成组相联的高速缓存器的访问,该请求用于选择高速缓冲存储器内的一个集合。一旦选择了该集合,就使用高速缓存器请求的标记值来识别包含所请求高速缓存器块的所选择集合内的路径。当高速缓存器请求的标记值的比较未能识别所选择集合内的相应路径时,检测高速缓存器未命中。在共享高速缓存器中,选择要逐出的牺牲块以响应高速缓存器未命中,这随着共享高速缓存器的处理器数目而可能成问题。


在附图的图形中,通过举例的方式而不是限定的方式来描述本发明的各种实施例,其中图1是依照一个实施例描述芯片多处理器(CMP)的框图,该芯片多处理器包括用来提供共享高速缓存器的分区的控制器。
图2是依照一个实施例进一步描述共享高速缓存器和图1的控制器的框图,其提供共享高速缓存器的高速缓存器分区。
图3是依照一个实施例进一步描述图2中候选牺牲块逻辑的框图。
图4是依照一个实施例描述根据共享高速缓存器分区来选择共享高速缓存器内牺牲块的方法的流程图。
图5是依照一个实施例描述用于对芯片多处理器(CMP)的共享高速缓存器分区的方法的流程图。
图6是依照一个实施例描述用于根据共享高速缓存器的高速缓存器分区方案来选择牺牲块的方法的流程图。
图7是描述使用公知技术的用于设计的仿真、模拟和制造的多种设计表示或格式的框图。
具体实施例方式
描述用于对芯片多处理器(CMP)的共享高速缓存器分区的方法和设备。在一个实施例中,如果依照从处理器接收的请求检测共享高速缓存器内的高速缓存器未命中,那么该方法包括来自系统存储器的高速缓存器块的请求。一旦请求高速缓存器块,就依照处理器标识符和接收的请求的请求类型来选择共享高速缓存器内的牺牲块。在一个实施例中,依照处理器标识符和请求类型的牺牲块的选择是基于成组相联的共享高速缓存器的分区来限定根据高速缓存器的分区从可利用高速缓存路径的子集中牺牲块的选择。在一个实施例中,每个置换算法可以使用的高速缓存路径的子集可以因存储器请求的不同类型而不同,比如,需要和预取请求。
在下面的描述中,使用某个术语来描述本发明的特征。例如,术语“逻辑”代表配置为执行一个或多个功能的硬件和/或软件。例如,“硬件”的例子包括,但是不限于或约束为,集成电路、有限状态机或甚至组合逻辑。该集成电路可以采取诸如微处理器、专用集成电路、数字信号处理器、微控制器等处理器的形式。
“软件”的例子包括应用程序、小应用程序、例程或甚至一系列指令的形式的可执行代码。在一个实施例中,制造的产品可以包括带有在其中存储的软件的机器或计算机可读取介质,可以利用该软件来编程计算机(或者其他的电子设备)以依照一个实施例来执行处理。计算机或者机器可读取介质包括但不限于可编程电子电路、包括易失存储器(例如,随机存取存储器等)和/或非易失存储器(例如,任何类型的只读存储器“ROM”、闪存)的半导体存储器件、软盘、光盘(例如,压缩光盘或者数字视盘“DVD”)、硬盘驱动盘、磁带等。
系统图1是说明依照一个实施例的芯片多处理器(CMP)100的框图,该芯片多处理器(CMP)包括共享高速缓存器150,它带有高速缓存器分区逻辑200,用来对共享高速缓存器150分区以限制从可利用的高速缓存器路径的子集中选择牺牲块。典型地,CMP 100包含多个处理器核心110(110-1,…,110-N),其制造在相同的管芯上。如图所示,处理器核心(CPU)110连接互连网络130以访问共享高速缓存器150。在一个实施例中,每个CPU 110包括专用核心高速缓存器层次112,该层次可以用于数据的临时存储或者数据的高速缓存。
在一个实施例中,多个CPU 110通过连接到互连网络130的系统存储器互连192访问系统存储器190。在一个实施例中,系统存储器190可以包括,但是不限于包括存储模块的双面存储器封装,每个存储模块中包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态随机存取存储器(SDRAM)、双数据速率(DDR)SDRAM(DDR-SDRAM)、Rambus DRAM(RDRAM)或者任何可支持数据的高速缓冲的器件。
典型地,共享高速缓存器150被CMP 100的多个CPU 110共享。通常,这种共享是有益的,因为CPU 110执行多线程的软件应用,其中这些线程共享数据和指令,因此减少了存储需求,也依照编程需求允许单个CPU 110访问整个共享高速缓存器。不幸地是,共享高速缓存器150的不利之处在于,如果多个CPU 110共同请求的容量大于共享高速缓存器150的可利用容量,那么多个CPU 110可能经历比他们具有较小专用高速缓存器的情况更多的总高速缓存器未命中。
因此,在一个实施例中,共享高速缓存器150通过限制哪些处理器能够分配到哪些路径中来分区。在一个实施例中,共享高速缓存器150是成组相联的共享高速缓存器,依照存储器请求的高速缓存器索引访问该成组相联的共享高速缓存器,该索引标识共享高速缓存器150内的集合。基于高速缓存器索引,在选择的集合中使用请求的标记值来识别包含被请求数据块的路径。可是,如果请求数据块没有包含在集合中(高速缓存器未命中),选择数据块用于逐出共享高速缓存器150来为请求块腾出空间,该数据块在这里被称为“牺牲块”。
在一个实施例中,允许每个CPU 110在共享高速缓存器150的任何和全部路径中找到(使用)数据,无论所述CPU最初是否实际地把数据带入高速缓存器。可是,当高速缓存器控制器(未示出)检测高速缓存器未命中和需要从共享高速缓存器150中逐出牺牲块来为请求块腾出空间时,在一个实施例中,依照从其接收存储器请求的CPU 110,高速缓存器分区逻辑200限制牺牲块从可利用的高速缓存器路径的子集中的选择。在一个实施例中,如图2中所示的一样,在共享高速缓存器150的高速缓存器控制器中实现高速缓存器分区逻辑200。
如图2所示,在一个实施例中,高速缓存器分区逻辑包括置换逻辑220、连同高速缓存器控制器210和侯选牺牲块逻辑230,依照共享高速缓存器150的分区将牺牲块选择限制到可利用高速缓存器路径的子集。在一个实施例中,为不同类型的存储器请求(例如需要和预取请求)改变可以被置换逻辑220使用的高速缓存路径的子集。典型地,共享高速缓存器150可以包括M个路径(W1152-1,W2152-2,…,WM152-M)。因此,当CPU 110检测到各自专用核心高速缓存器112内的高速缓存器未命中时,CPU 110可以将高速缓存器请求发送到共享高速缓存器150的高速缓存器控制器210。
在一个实施例中,向解码器160提供与高速缓存器请求关联的索引值204来识别共享高速缓存器150内的集合。一旦识别了该集合,将与高速缓存器请求关联的标记值202与共享高速缓存器150的M个路径152(152-1,…,152-M)中每一个相比较,来识别包含被请求高速缓存器块的路径。然而,在一个实施例中,如果检测到高速缓存器未命中,候选牺牲块逻辑230和置换逻辑220限制高速缓存器控制器210在通过索引204识别的集合内选择牺牲块。
典型地,N个处理器(CPU 110-1,…,110-N)共享共享的高速缓存器150的M个路径152。在一个实施例中,高速缓存器分区逻辑200可以依照N个CPU 110和CPU 110发出的T种存储器请求对共享高速缓存器150分区。在一个实施例中,N乘T个M位的寄存器(路径寄存器)标记为D[i][j](其中i位于
范围内和j位于
范围内)。在一个实施例中,路径寄存器(用d[i][j][b]表示,b位于
范围内)中每位表示无论是(1)或者是(0)CPUi能够分配到路径b中用于j型高速缓存器请求的高速缓存器未命中。
在一个实施例中,变量“i”表示发出高速缓存器请求的CPU的处理器标识符。如在此所述,处理器标识符定义成通过它能够区分一个处理器与CMP 100的其他处理器的任何信号、数据序列或者其他机制。在一个实施例中,硬件标识符分配给CMP 100的每个处理器或者CPU 110作为处理器标识符(CPU-D)。在可选择的实施例中,处理器标识符或者CPU-ID是序号或者其他的数字器件识别手段,以将各自处理器与CMP 100内的另一个处理器区分。
如在此所述,术语“处理器标识符”还可选择地称为请求者标识符,当请求者为CMP 100的处理器时,请求者标识符等于处理器标识符。但是,所属领域的技术人员会认识到,在此描述的高速缓存器分区方案不限于由处理器发出的高速缓存器请求,以及可以包括CMP 100的其他装置发出的高速缓存器请求,比如,存储器控制器向共享高速缓存器150发出的高速缓存器请求,同样属于权利要求主题范围内。
在一个实施例中,如参照图3的描述,提供了路径寄存器的实现。典型地,依照处理器标识符(CPU ID)206和请求类型(REQ-TYPE)208为查阅表(d)240编索引。基于这两个值,查阅表240识别标识路径寄存器250的位置242,在此也称为“M位屏蔽”。在一个实施例中,M位屏蔽直接对应于共享高速缓存器150的M个路径152中的每一个。
因此,再次参看图2,在一个实施例中,向逻辑门170(170-1,…170-M)提供M位路径屏蔽250,逻辑门接收来自共享高速缓存器150的有效性位154(154-1,…154-M)。一旦收到,置换逻辑220可以依照设置的M位路径屏蔽250的相应位252(252-1,…,252-M)在高速缓存器索引204选择牺牲块。因此,当CPU i在地址a上专用核心高速缓存器112中未命中时,CPU 110-i发送对块a的请求给共享高速缓存器150。在一个实施例中,共享高速缓存器控制器210检测块a是否在共享高速缓存器150中存在。
如果块a存在,该共享高速缓存器将块a返回到处理器i。可是,如果块a不存在,共享高速缓存器将发送对块a的请求到系统存储器190。在一个实施例中,需要高速缓存器控制器210驱逐在高速缓存器索引204的M-1个块其中之一来为被请求块a腾出空间。在一个实施例中,通过共享高速缓存器150的高速缓存器分区逻辑200的置换逻辑220实现牺牲块的选择。
在一个实施例中,置换逻辑通过使用路径寄存器250(d[i][k])选择牺牲块用于CPU 110-i的类型k的存储器请求。如果寄存器d[i][k]中位b被设置(d[i][k][b]=1),那么路径b是要逐出的候选者。在一个实施例中,当设置了寄存器d[i][k]中多个位时,对于逐出的牺牲块有多个选择。在一个实施例中,当存在多个候选的牺牲块时,置换逻辑220选择最近最少使用的路径用于逐出。现在提供用于实现一个或多个上面描述的实施例的程序方法。
操作例如,依照一个实施例,如图2中描述的一样,图4是描述从分区的共享高速缓存器中选择牺牲块的方法300的流程图。在步骤块326,确定是否检测到共享高速缓存器内的高速缓存器未命中。如果没有检测到高速缓存器未命中(“高速缓存器命中”),那么在步骤块328,为请求者提供被请求块,请求者是例如处理器核心或者芯片多处理器(CMP)的CPU。否则,在步骤块330,依照接收的请求给系统存储器发出一个对于所请求块的请求。
在一个实施例中,在步骤块340,依照请求者ID和接收请求的请求类型从共享高速缓存器中为逐出选择一个牺牲块。在一个实施例中,如图2中所示,由置换逻辑220执行牺牲块的选择。在步骤块360,例如,由高速缓存器控制器从共享高速缓存器中逐出被选择的牺牲块。在步骤块370,为请求者提供所请求的高速缓存器块。在步骤块380,将所请求的高速缓存器块存储在共享高速缓存器的一部分内,牺牲块从该部分中被逐出。
图5是依照一个实施例描述用于对共享高速缓存器分区来限制牺牲块选择的方法310的流程图。在步骤块312,从共享一个高速缓存器的多个请求者中选择诸如CMP的CPU的请求者。在步骤块314,为所选择的请求者选择存储器请求类型。一旦选择了,在步骤块316,为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或一个以上路径。在一个实施例中,存储器请求类型可以包括,但是不限于,下载请求、存储请求、数据预取、数据推测、需要请求等。
在一个实施例中,在步骤块318,依照步骤块316指定的路径产生M位屏蔽。例如,与图3中描述的一样,M位路径屏蔽或者路径寄存器250包括位字段,该位字段对应于共享高速缓存器150内的每种路径。因此,当在高速缓存器索引204指示的集合中选择要逐出的牺牲块时,M位路径屏蔽250内的每个设置位标识潜在的牺牲块,可以逐出该牺牲块来为所请求的数据块腾出空间。
一旦产生M位路径屏蔽或者路径寄存器,在步骤块320,依照选择的请求者的请求者标识符(例如,CPU_ID)和请求类型在表内产生条目来标识M位路径屏蔽。在一个实施例中,例如,形成与图3中一样的一个表,该表按照CPU_ID 206和REQ_TYPE编索引。在步骤块322,为每种存储器请求类型重复步骤块314-320。在步骤块324,为每个请求者重复步骤块312-322,所述请求者是诸如芯片多处理器的每个处理器核心,其共享一个共享高速缓存器。
依照例如与图3中描述的一样的一个实施例,图6是描述共享高速缓存器内响应请求块的高速缓存器未命中从共享高速缓存器中选择牺牲块的方法350的流程图。在步骤块352,依照请求者和请求类型查询表以识别M位路径屏蔽,该M位路径屏蔽可以在寄存器或者其他的数据存储设备中实现。在步骤块354,依照接收请求的高速缓存器索引来访问共享高速缓存器的一个集合,例如,与图2描述的一样。在步骤块356,依照M位路径屏蔽的至少一个设置位识别用于该集合的至少一个牺牲块。
换句话说,与上面描述的一样,在接收请求的索引所标识的共享高速缓存器的一个集合中M位路径屏蔽内的每个设置位识别候选牺牲块。在一个实施例中,当从逻辑230收到的M位屏蔽250包括多个设置位时,图2的置换逻辑220将选择一个最近最少使用的路径152。与在此描述的一样,各种信号可以代表高态有效信号或者低态有效信号。因此,与这里描述的一样,术语“断言”、“正断言”、“已断言”、“设置”、“正设置”、“取消断言”“已取消断言”、“正取消断言”或者其他类似的术语可以指数据信号,该数据信号是高态有效信号或者是低态有效信号。因此,可交换地使用与信号有关的这种术语来要求或者暗示高态有效信号或者低态有效信号。
尽管根据芯片多处理器的共享高速缓存器描述了上述的一个或多个实施例,但是本领域的技术人员会意识到在此描述的实施例可以用于其他系统配置,在该配置中一个或多个处理器共享一个高速缓存器。此外,提供依照存储器请求和处理器ID的高速缓存器的分区,作为实现上面描述的多个实施例的一个实例。但是,共享高速缓存器的附加分区方案限制牺牲块的选择也是可能的,同样保持在上面描述的实施例的范围内。
图7是描述使用公开技术的设计的仿真、模拟和制造的各种表示或者格式的框图。表示设计的数据可以代表许多方式的设计。首先,在仿真中使用硬件描述语言或者另一种功能描述语言可以表示硬件是有用的,该功能描述语言实质上提供期望所设计硬件如何执行的计算机化模型。硬件模型410可以存储在诸如计算机存储器的存储介质400中,因此可以使用仿真软件420来仿真该模型,该仿真软件将特定的一套检验程序430应用于硬件模型,以确定它是否的确是按照预期的设计来工作。在许多实施例中,介质中没有记录、保存或者包括仿真软件。
在设计的任何表示中,数据可以以机器可读介质的任何方式存储。调制或者其它方式产生以传输这种信息的光或电波460、存储器450或者诸如盘的磁或光存储器440可以是机器可读介质。任何这些介质可以携带设计信息。术语“携带”(例如,机器可读介质携带信息)由此涵盖存储在存储设备上的信息或者编码或者调制到载波中或载波上的信息。描述设计的位组或者设计的物品是(当嵌入诸如载体或者存储介质的机器可读介质中时)可以密封在自己内、外的或者其他人用于进一步设计或制造的产品。
可选择的实施例会意识到,对于其他实施例可以使用不同的系统配置。例如,当系统100包括芯片多处理器系统时,包括至少一个CPU的计算机系统可能受益于各种实施例的高速缓存器分区和牺牲块选择方案。而且不同类型的系统或者不同类型的计算机系统,例如,诸如服务器、工作站、台式计算机系统、游戏系统、嵌入式计算机系统、叶片服务器等,可以用于其他实施例。
已经公开了实施例和最佳模式,在保持在由下面权利要求定义的本发明实施例范围内的同时,可以对公开的实施例进行修改和变形。
权利要求
1.一种方法,包括如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器请求所请求的高速缓存器块;和依照处理器标识符和所接收请求的请求类型从共享高速缓存器中选择牺牲块来逐出。
2.权利要求1的方法,还包括从共享高速缓存器中逐出所选择的牺牲块;将所请求的高速缓存器块提供给处理器;和在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
3.权利要求1的方法,其中在请求前,该方法还包括(a)依照N个处理器和T个存储器请求类型对M个路径的成组相联的共享高速缓存器分区;以及(b)依照(a)的分区,牺牲块的处理器选择被限制在M个路径的成组相联的共享高速缓存器的可利用路径的子集。
4.权利要求1的方法,其中限制牺牲块的处理器选择包括(a)选择一个处理器;(b)为所选择的处理器选择一种存储器请求类型;(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;(d)依照(c)的指定路径产生M位屏蔽;(e)依照所选择的处理器的处理器ID和请求类型在表内产生条目来标识M位屏蔽;(f)为T个存储器请求类型中每一个重复(b)-(e);和(g)为N个处理器中每一个重复(a)-(f)。
5.权利要求1的方法,其中选择还包括依照处理器标识符和请求类型来查询表以识别M位路径屏蔽;依照接收请求的高速缓存器索引来访问共享高速缓存器的一个集合;依照M位路径屏蔽中的至少一个设置位从该集合中识别至少一个牺牲块;逐出所识别的牺牲块。
6.一种制造的产品,包括上面存储了指令的机器可读介质,可以使用所述指令对系统编程以执行一个方法,包括如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器中请求所请求的高速缓存器块;和依照处理器标识符和所接收请求的请求类型从共享高速缓存器中选择牺牲块来逐出。
7.权利要求6的制造的产品,还包括从共享高速缓存器中逐出所选择的牺牲块;向处理器提供所请求的高速缓存器块;和在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
8.权利要求6的制造的产品,其中在请求之前,该方法还包括(a)依照N个处理器和T个存储器请求类型对M个路径的成组相联的共享高速缓存器分区;和(b)依照(a)的分区,牺牲块的处理器选择被限制在M个路径的成组相联的共享高速缓存器的可利用路径的子集。
9.权利要求6的制造的产品,其中限制牺牲块的处理器选择包括(a)选择一个处理器;(b)为所选择的处理器选择一种存储器请求类型;(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;(d)依照(c)的指定路径产生M位屏蔽;(e)依照所选择的处理器的处理器标识符和请求类型在表内产生条目以标识M位屏蔽;(f)为T个存储器请求类型中每一个重复(b)-(e);和(g)为N个处理器中每一个重复(a)-(f)。
10.权利要求6的制造的产品,其中选择还包括依照处理器标识符和请求类型查询表以识别M位路径屏蔽;依照所接收请求的索引来访问共享高速缓存器的一个集合;依照M位路径屏蔽中的至少一个设置位从该集合中识别至少一个牺牲块;逐出所识别的牺牲块。
11.一种方法,包括依照所接收的请求检查共享高速缓存器以确定其中是否存储了所请求的高速缓存器块;如果检测到所请求的高速缓存器块的高速缓存器未命中,则依照请求者标识符和所接收请求的请求类型从共享高速缓存器中逐出所选择的牺牲块。
12.权利要求11的方法,其中在检查共享高速缓存器之前,该方法还包括(a)选择请求者;(b)为所选择的请求者选择一种存储器请求类型;(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;(d)依照(c)的指定路径产生M位屏蔽;(e)依照所选择的请求者的请求者标识符和请求类型在表内产生条目以标识M位屏蔽;(f)为T个存储器请求类型中每一个重复(b)-(e);和(g)为N个请求者中每一个重复(a)-(f)。
13.权利要求11的方法,其中逐出所选择的牺牲块包括依照处理器标识符和请求类型查询表以识别M位路径屏蔽;其中所述M位路径屏蔽内的每个设置位在所接收请求的索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
14.权利要求13的方法,其中查询还包括如果设置了所述M位屏蔽的至少两个位,则选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
15.权利要求11的方法,还包括如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器请求高速缓存器块;向处理器提供所请求的高速缓存器块;在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
16.一种制造的产品,包括上面存储了指令的机器可读介质,可以使用所述指令对系统编程以执行一个方法,包括依照所接收的请求检查共享高速缓存器以确定其中是否存储了所请求的高速缓存器块;以及如果检测到所请求的高速缓存器块的高速缓存器未命中,则依照请求者标识符和所接收请求的请求类型从共享高速缓存器中逐出所选择的牺牲块。
17.权利要求16的制造的产品,其中在检查共享高速缓存器之前,该方法还包括(a)选择请求者;(b)为所选择的请求者选择一种存储器请求类型;(c)为所选择的存储器请求类型指定共享高速缓存器的M个路径中的一个或多个路径;(d)依照(c)的指定路径产生M位屏蔽;(e)依照所选择的请求者的请求者标识符和请求类型在表内产生条目以标识M位屏蔽;(f)为T个存储器请求类型中每一个重复(b)-(e);和(g)为N个请求者中每一个重复(a)-(f)。
18.权利要求16的制造的产品,其中逐出所选择的牺牲块包括依照处理器标识符和请求类型查询表以识别M位路径屏蔽,其中所述M位路径屏蔽内每个设置位在所接收请求的索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
19.权利要求18的制造的产品,其中查询还包括如果设置了M位屏蔽的至少两个位,则选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
20.权利要求16的制造的产品,还包括如果依照从处理器接收的请求检测到共享高速缓存器内的高速缓存器未命中,则从系统存储器请求高速缓存器块;向处理器提供所请求的高速缓存器块;在从中逐出牺牲块的共享高速缓存器的部分内存储所请求的高速缓存器块。
21.一种设备,包括控制器,用来在检测到所请求块的高速缓存器未命中的情况下从系统存储器请求所请求块,以及依照请求者标识符和所接收请求的请求类型选择牺牲块来逐出以存储所请求块。
22.权利要求21的设备,其中控制器还包括牺牲块侯选逻辑,用来依照请求者标识符和请求类型查询表以识别M位路径屏蔽;其中M位路径屏蔽内的每个设置位在所接收请求的高速缓存器索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
23.权利要求21的设备,其中控制器还包括高速缓存器分区逻辑,用来依照N个处理器和T个存储器请求类型对M个路径的成组相联的共享高速缓存器分区,以及把牺牲块的选择限制在M个路径的成组相联的共享高速缓存器的可利用路径的子集。
24.权利要求21的设备,其中控制器还包括置换逻辑,用来依照所接收请求的高速缓存器索引访问共享高速缓存器的一个集合,依照M位路径屏蔽的至少一个设置位从所述集合中识别至少一个牺牲块,并且逐出所识别的牺牲块。
25.权利要求24的设备,其中如果设置了M位屏蔽的至少两个位,则所述置换逻辑还要选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
26.一种系统,包括连接互连网络的系统存储器;包括连接互连网络的多个处理器核心的芯片多处理器;以及连接互连网络的共享高速缓存器,所述共享高速缓存器包括高速缓存器分区逻辑,所述高速缓存器分区逻辑指示高速缓存器控制器在响应从多个处理器中的处理器核心接收的请求、检测到共享高速缓存器内的高速缓存器块的高速缓存器未命中的情况下,从系统存储器请求高速缓存器块,以及依照处理器标识符和所接收请求的请求类型来选择牺牲块以从共享高速缓存器中逐出。
27.权利要求26的系统,其中系统存储器包括RDRAM。
28.权利要求26的系统,其中高速缓存器分区逻辑还包括牺牲块侯选逻辑,用来依照处理器标识符和请求类型查询表以识别M位路径屏蔽,其中M位路径屏蔽内的每个设置位在所接收请求的高速缓存器索引所指示的共享高速缓存器的一个集合中识别候选牺牲块。
29.权利要求26的系统,其中共享分区逻辑还包括置换逻辑,用来依照所接收请求的高速缓存器索引访问共享高速缓存器的一个集合,依照M位路径屏蔽的至少一个设置位从所述集合中识别至少一个牺牲块,并且逐出所识别的牺牲块。
30.权利要求29的系统,其中置换逻辑还在设置了M位屏蔽的至少两个位的情况下,选择最近最少使用的路径、最近最常使用的路径和随机路径其中之一作为所选择的牺牲块。
全文摘要
描述一种用于对芯片多处理器的共享高速缓存器分区的方法和设备。在一个实施例中,该方法包括如果依照从处理器接收的请求检测到共享高速缓存器内高速缓存器未命中,则从系统存储器请求高速缓存器块。一旦请求高速缓存器块,就依照处理器标识符和接收请求的请求类型选择共享高速缓存器内的牺牲块。在一个实施例中,依照处理器标识符和请求类型的牺牲块选择是基于成组相联的共享高速缓存器的分区,从而依照高速缓存器分区限制从可利用高速缓存器路径的子集中选择牺牲块。描述并主张了其他实施例。
文档编号G06F15/16GK1728112SQ20051009807
公开日2006年2月1日 申请日期2005年6月30日 优先权日2004年6月30日
发明者M·马蒂娜, A·胡安-奥米戈, J·埃默, R·马塔斯-纳瓦罗 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1