具有可配置关联性的高速缓存的制作方法

文档序号:6477626阅读:182来源:国知局
专利名称:具有可配置关联性的高速缓存的制作方法
技术领域
本发明系关于微处理器缓存,且尤系关于缓存可存取性(accessibility)与关联 性(associativity)0
背景技术
由于计算机系统的主存储器典型上系针对密度来设计而非针对速度,故微处理器 设计者增加缓存到它们的设计中以减低该微处理器直接存取主存储器的需求。缓存系为相 较于该主存储器可更快存取的小存储器。缓存系典型由快速存储器单元所构成,例如相较 于使用在该主系统存储器的该存储器(典型上是动态随机存取存储器(DRAM)或同步动态 随机存取存储器(SDRAM))具有较快存取时间与频宽的静态随机存取存储器(SRAM)。近代微处理器系典型上包括芯片缓存(on-chip cache)存储器。在许多案例中, 微处理器系包括可包括一阶(Li)、二阶(L2)与在一些案例中的三阶(L3)高速缓存的芯片 阶层(hierarchical)缓存结构。典型缓存阶层系可利用可使用以储存最频繁使用的缓存 列(cache line)的小、快速的Ll缓存。该L2系可为用以储存被存取但不适于该Ll中的 缓存列的较大且可能较慢的缓存。该L3缓存系可为仍大于该L2缓存且可使用以储存被存 取但不适于该L2缓存的缓存列。具有如上所述的缓存阶层系可藉由降低与该处理器核心 所存取之存储器相关联的等待时间(latency)以改善处理器性能。因为L3缓存数据阵列在一些系统中可能相当大,故该L3缓存系可以多个向(way) 的关联性来建立。这可最小化冲突地址(conflictingaddress)或可变存取型态(access pattern)将其它方面是有用的数据片段太快地逐出(evict)的机会。然而,例如,由于需要 为了每个存取而履行的标签(tag)查找(lookup)数量的增加,所增加的关联性可能会导致 电力消耗的增加。

发明内容
本发明系揭露一种处理器高速缓存子系统的各种实施例,该子系统包含具有可配 置关联性的高速缓存。在一个实施例中,具有高速缓存的该处理器高速缓存子系统包含数 据储存阵列,该数据储存阵列包含用以储存数据区块的多个可独立存取的子区块。该高速 缓存系进一步包括储存对应于储存在该多个可独立存取的子区块内的该数据区块的地址 卷标组的卷标储存阵列。该高速缓存子系统也包括可程序化地选择该高速缓存的关联性 的多个向的缓存控制器。举例来说,在一个实作中,每个该可独立存取的子区块系实施η向 (n-way)集合关联(setassociative)的缓存。在一个具体实施中,该高速缓存系可操作在全关联(fully associative)寻址模 式与直接寻址模式。当被程序化为操作在该全关联寻址模式中时,该缓存控制器可禁止 (disable)对于每个该可独立存取的子区块的独立存取与使能(enable)所有可独立存取 的子区块的并行(concurrent)标签查找。另一方面,当被程序化为操作在该直接寻址模式 中时,该缓存控制器可使能对于该可独立存取的子区块的一个或多个子集(subset)的独
3立存取。


图1系为包括多核心处理节点的计算机系统的一个实施例的方块图。图2系为图示出图1的L3缓存子系统的实施例的更详细态样的方块图。图3系为描述L3缓存子系统的一个实施例的操作的流程图。虽然本发明系容许有许多修改形式与替代形式,但在此将以在该图式中的例子的 方式来显示其具体实施例以详细描述。然而应该要了解的是,该图式与其详细描述并不是 要来限制本发明为揭露的特定形式,而相反地,其目的是要涵盖在如在附加的申请专利范 围所定义的本发明的精神和范围内的所有修改形式、相等物、与替代形式。要注意的是,使 用遍及在本申请案中的词「可(may)」系为许可的意思(也就是具有可能(the potential to)、可以(being able to)),而不是强制的意思(也就是必须)。现在翻到图1,其显示计算机系统10的一个实施例的方块图。在该图式的实施例 中,该计算机系统10系包括耦接到存储器14与耦接到周边装置13A至13B的处理节点12。 该节点12系包括耦接到节点控制器20的处理器核心15A至15B,该节点控制器20进一步 耦接到存储器控制器22、多个HyperTransport (HT)接口电路24A至24C、以及共享的三 阶(L3)高速缓存60。该HT电路24C系耦接到该周边装置13A,该周边装置13A系以菊炼 (daisy-chain)配置(在本实施例中使用HT接口)耦接至该周边装置13B。剩余的HT电 路24A至B系可经由其它HT接口(未显示)来连接到其它相似的处理节点(未显示)。该 存储器控制器22系耦接到该存储器14。在一个实施例中,节点12系可为包括显示在图1 中的该电路系统的单一集成电路芯片。也就是,节点12可为芯片多处理器(CMP)。可使用 任何阶的整合(integration)或分立(discrete)组件。要注意的是,处理节点12系可包 括已经为了简化而省略的许多其它电路。在许多实施例中,节点控制器20系也可包括用以令处理器核心15A和15B彼此互 连、互连到其它节点、与互连到存储器的各种互连电路(未显示)。节点控制器20系也可包括用以选择与控制例如该节点的最大和最小操作频率、以及该节点的最大和最小电力供 应电压的功能性。该节点控制器20系可依据通讯类型、在通讯中的地址等等而大致配置成 排定(route)在该处理器核心15A至15B、该存储器控制器22、与该HT电路24A至24C之 间的通讯。在一个实施例中,该节点控制器20系可包括由该节点控制器20所写入到接受 的通讯的系统请求队列(system request queue) (SRQ)(未显示)。该节点控制器20系可 排程(schedule)来自该SRQ的通讯用来排定到在该处理器核心15A至15B、该HT电路24A 至24C、与该存储器控制器22之中的目的地。一般来说,该处理器核心15A至15B可使用到该节点控制器20的该接口以与该计 算机系统10的其它组件(例如周边装置13A至13B、其它处理器核心(未显示)、该存储器 控制器22等等)进行通讯。该接口系可以任何想要的方式来设计。在一些实施例中,该接 口可界定为缓存同调(coherent)通讯。在一个实施例中,在该节点控制器20和该处理器 核心15A至15B之间的该接口上的通讯系可为相似于那些使用在该HT接口上的封包形式。 在其它实施例中,可使用任何想要的通讯(例如在总线接口上的处置(transaction)、不同 形式的封包等等)。在其它实施例中,该处理器核心15A至15B系可共享到该节点控制器 20的接口(例如共享的总线接口)。一般来说,来自该处理器核心15A至15B的该通讯可 包括例如读取操作(读取存储器位置或该处理器核心外的寄存器)与写入操作(写入到存 储器位置或外部寄存器)的请求、对于探查(probe)的响应(用于缓存同调实施例)、中断 应答(acknowledgement)、与系统管理讯息等等。如上所述,该存储器14可包括任何适合的存储器装置。举例来说,存储器14可 包括在例如RAMBUS DRAM (RDRAM)、同步DRAM (SDRAM)、双倍数据速率(DDR) SDRAM的动态 RAM(DRAM)家族中的一个或多个随机存取存储器(RAM)。或者,存储器14可使用静态RAM 等等来实施。该存储器控制器22可包括用以作为与该存储器14的接口的控制电路系统 (circuitry)。此外,该存储器控制器22可包括用以队列存储器请求的请求队列等等。该HT电路24A至24C可包括用以接收来自HT链接的封包与用以在HT链接上传 送封包的各种缓冲器和控制电路系统。该HT接口包括用以传送封包的单向链接。每个HT 电路24A至24C可耦接到两个这样的链接(一个用来传送而一个用来接收)。给定的HT接 口可以缓存同调方式(例如在处理节点之间)或非同调方式(例如到/从周边装置13A至 13B)来操作。在该说明的实施例中,该HT电路24A至24B并不使用,且该HT电路24C系经 由非同调链接而耦接到该周边装置13A至13B。该周边装置13A至13B可为任何类型的周边装置。举例来说,该周边装置13A 至13B可包括用以与可耦接装置的另一计算机系统通讯的装置(例如网络适配卡、相 似于整合到计算机系统的主要电路板上的网络适配卡的电路系统、或调制解调器)。此 外,该周边装置13A至13B系可包括影像加速器、声卡、硬或软盘机或驱动控制器(drive controller)、SCSI (小型计算机系统接口)转接器与电话卡(tel印hony card)、声卡、与例 如GPIB或区域(field)总线适配卡的各种数据撷取卡。要注意的是,该名称「周边装置」 是要包含输入/输出(1/0)装置。一般来说,处理器核心15A至15B可包括设计成执行界定在给定指令集架构中的 指令的电路系统。也就是,该处理器核心电路系统可配置成提取(fetch)、译码、执行、与储 存界定在该指令集架构中的该指令的结果。举例来说,在一个实施例中,处理器核心15A至15B可实施x86架构。该处理器核心15A至15B系可包括任何想要的配置,包括超管线的 (superpipelined)、超纯量(superscalar)、或其组合。其它的配置可包括纯量的、管线的、 非管线的等等。许多实施例可利用无序(outof order)臆测执行(speculative execution) 或按序(in order)执行。该处理器核心可包括微编码(microcode) —个或多个指令并结 合任何该上述架构的其它功能。许多实施例可实施各种其它设计特征,例如缓存、转译后备 缓冲器(translation look-aside buffer,简称TLB)等等。因此,在该图示的实施例中,除 了由处理器核心两者都分享的L3缓存60之外,处理器核心15A还包括Ll缓存16A与L2 缓存17A。同样地,处理器核心15B包括Ll缓存16B和L2缓存17B。各别的Ll和L2缓存 可代表在微处理器中所找到的任何Ll和L2缓存。 要注意的是,虽然本实施例使用的是用以在节点之间与在节点和周边装置之间通 讯的HT接口,但是其它实施例可使用任何想要的接口或用于任一通讯的接口。举例来说, 可使用其它以封包为基础的接口、可使用总线接口、可使用许多标准周边接口(例如周边 组件互连(peripheral component interconnect) (PCI)、高速PCI (PCI express)等等)等等。 在该图示的实施例中,L3缓存子系统30包括缓存控制器单元21 (其显示为节点控 制器20的一部份)和L3缓存60。缓存控制器21可配置成控制该L3缓存60的操作。举 例来说,缓存控制器21可藉由配置该L3缓存60的关联性的向(way)的数量以配置该L3 缓存60可存取性(accessibility)。更具体来说,如同将在下面更详细叙述地,该L3缓存 60系可分成许多个别可独立存取的缓存区块或子缓存(sub-cache)(显示在图2中)。每 个子缓存可包括用在卷标组的卷标储存器(tag storage)与相关联的数据储存器。此外, 每个子缓存可实施η向关系型缓存,其中,「η」可为任何数量。在许多实施例中,子缓存的 数量、与因此的该L3缓存60的关联性的路之数量系可配置的。要注意的是,虽然图示在图1中的计算机系统10包括一个处理节点12,但其它实 施例可实施任何数量的处理节点。同样地,在许多实施例中,如节点12的处理节点可包括 任何数量的处理器核心。该计算机系统10的许多实施例也可包括每个节点12具有不同数 量的HT接口、以及耦接到该节点之不同数量的周边装置13,等等。图2系为图示出图1的该L3缓存子系统的实施例的更详细态样的方块图,而图3 系为描述图1和图2的该L3缓存子系统30的一个实施例的操作的流程图。对应于那些显 示在图1中的组件系编号相同以求清楚和简化。共同参照图1至图3,该L3缓存子系统30 包括耦接到L3缓存60的缓存控制器21。该L3缓存60包括卷标逻辑单元262、卷标储存阵列263、和数据储存阵列265。如 上所提到的,该L3缓存60可以许多可独立存取的子缓存来实施。在该说明的实施例中,虚 线指出该L3缓存60系可以两个或四个可独立存取的片段(segment)或子缓存来实施。该 数据储存阵列265子缓存系定名为0、1、2和3。同样地,该卷标储存阵列263子缓存系也定 名为0、1、2和3。举例来说,在具有两个子缓存的实施中,该数据储存阵列265可被分开以至于顶 端(子缓存0和1 一起)与底端(子缓存2和3 —起)可各代表16向的关系型子缓存。或 者,左端(子缓存0和2 —起)和右端(子缓存1和3 —起)可各代表16路的关系型子缓 存。在具有四个子缓存的实施中,每个该子缓存可代表16路向的关联的式子缓存。在此图示中,该L3缓存60可具有16、32、或64向的关联性。该卷标储存阵列263的每个部分可配置以储存在对应于储存在该数据储存阵列 265的相关子缓存内所储存的数据的缓存列的许多地址位(也就是卷标)的每个多个位置 之中。在一个实施例中,依据该L3缓存60的配置,卷标逻辑262可搜寻该卷标储存阵列 263的一个或多个子缓存以判定请求的缓存列是否存在于该数据储存阵列265的任何子缓 存之中。如果该卷标逻辑262与请求的地址匹配,则该卷标逻辑262系可传回命中(hit) 指示给该缓存控制器21,而如果在该卷标阵列263中没有匹配则传回未命中(miss)指示。在一个具体的实施中,每个子缓存系可对应于实施16向关系型缓存的卷标组和 数据。该子缓存可被平行地存取以至于送到该卷标逻辑262的缓存存取请求可导致在实质 上相同时间上的在该卷标阵列263的每个子缓存中的标签查找。如此,该关联性是相加的 (additive)。因此,配置成具有两个子缓存的L3缓存60将具有高达32向的关联性,而配 置成具有四个子缓存的L3缓存60将具有高达64向的关联性。在该图示的实施例中,缓存控制器21包括具有指定为位0和位1的两个位的配置 寄存器223。该关联性位系可界定L3缓存60的操作。更具体地说,在配置寄存器223内 的该关联性位0和1系可判定由该卷标逻辑262所使用来存取该子缓存的地址位或散列 (hashed)地址位的数量,因此该缓存控制器21可配置具有关联性的任何数量的向的该L3 缓存60。更具体地说,该关联性位系可使能或禁止该子缓存,且因此不论该L3缓存60是在 直接地址模式中存取(也就是全关联(fully-associative)模式关闭)、或在全关联模式中 存取(见图3方块305)。在具有可有32向关联性的能力(例如各具有16向关联性的能力的顶端与底端) 的两个子缓存的实施例中,可只有一个有效的(active)关联性位。该关联性位可使能「水 平的(horizontal)」或「垂直的(vertical)」寻址模式。举例来说,如果关联性位0被判 定(assert),则一个地址位可选择该顶端对(top pair)或底端对(bottom pair)、或者是 该左端对(Ieftpair)或右端对(right pair)(举例来说,在两个子缓存的实施中时)。然 而如果该关联性位被解除判定(deassert),则该卷标逻辑262系可如32向缓存地来存取该 子缓存。在具有可有高达64向关联性的能力(例如每个方形(square)具有16向关联性 的能力)的四个子缓存的实施例中,关联性位0和1两者皆可使用。该关联性位系可使能 「水平的」和「垂直的」寻址模式,其中,在该顶端部分和底端部分中的两子缓存都可以一对 的方式来使能,或是在该左端部分和右端部分中的两子缓存都可以一对的方式来使能。举 例来说,如果关联性位0被判定,则卷标逻辑262系可使用一个地址位以从该顶端或底端对 之间做选择,而如果关联性位1被判定,则卷标逻辑262系可使用一个地址位以从该左端或 右端对之间做选择。在任一情况中,该L3缓存60可具有32向关联性。如果关联性位0和 1两者皆被判定,则该卷标逻辑262系可使用两个该地址位以选择该四个子缓存中的单一 子缓存,因此使得该L3缓存60具有16向关联性。然而,如果该关联性位两者皆被解除判 定,则该L3缓存60系如同使能所有子缓存地处在全关联模式中,而卷标逻辑262系可平行 地存取所有子缓存且该L3缓存60具有64向关联性。要注意的是,在其它实施例中可使用其它数量的关联性位。此外,与该位的判定和 解除判定相关的功能系可颠倒。再者,可设想到与每个关联性位相关的功能系可不同。举例来说,位0可对应于使能左端和右端对,而位1可对应于使能顶端和底端对,等等。因此,当接收到缓存请求时,该缓存控制器21系可发送包含该缓存列地址的请求 给该卷标逻辑262。该卷标逻辑262系接收该请求且如图3的方块310和315中所显示地 依照哪个L3缓存60子缓存是使能的而可使用该地址位的其一或其二。在许多案例中,在运算平台上运行的应用程序类型或运算平台的类型系可判定哪 一阶的关联性可具有最佳的性能。举例来说,在增加关联性的一些应用程序中系可导致较 佳的性能。然而,在减低关联性的一些应用程序中系可不仅提供较佳的电力消耗,而且因为 允许以较低等待时间中有较大的通量(throughput)而使对等存取(peer access)可消耗 较少资源,所以改善了性能。因此,在一些实施例中,系统供货商系可提供以合适的预设缓 存配置来程序化该配置寄存器223的系统基本输入输出系统(BIOS)给运算平台,如图3的 方块300中所示。然而,在其它实施例中,该操作系统系可包括可允许该预设缓存配置被修改的驱 动程序(driver)或公用程序(utility)。举例来说,在可能容易电力消耗的膝上型计算机 (laptop)或其它可携的运算平台中,降低的关联性可产生较佳的电力消耗,而因此该BIOS 可将该预设缓存配置设定为较少关联的。然而,如果特定应用程序可在较大关联性下较佳 地履行,则使用者可存取该公用程序并人为地改变该配置寄存器设定值。在另一实施例中,如该虚线所标明的,缓存控制器21包括缓存监视器224。在操作 过程中,该缓存监视器224可使用各种方法来监视缓存性能(见图3方块320)。缓存监视 器224可配置以基于其性能与/或性能和电力消耗的组合来自动地再配置该L3缓存60配 置。举例来说,在一个实施例中,如果该缓存性能没有在某些预定限制之内,则缓存监视器 224可直接地操纵该关联性位。或者,缓存监视器224可通知该OS有性能的改变。响应于 该通知,该OS之后可依需要执行该驱动程序以程序化该关联性位(见图3方块325)。在一个实施例中,当依照如L3资源可用性、和L3缓存频宽使用的这类因素而藉由 从使用隐含请求(implicit request)、非隐含请求(ηοη-implicit request)、或明显型请 求(explicit request)的该L3缓存60中选择性地请求数据以维持缓存频宽时,该缓存控 制器21系可配置以减低与存取L3缓存60有关联的该等待时间。举例来说,缓存控制器21 可配置以监视与追踪未完成的(outstanding)!^请求和可用的L3资源,例如该L3数据总 线、与L3储存阵列记忆库(bank)存取。在这样的实施例中,在每个子缓存内的数据系可被支持两个并行数据转换的两个 读取总线来存取。该缓存控制器21可配置以记录哪个读取总线与哪个数据记忆库由于任 何臆测读取而忙碌或被认为是忙碌的。当接收到新的读取请求时,响应于判定在所有子缓 存中的目的记忆库是可用的且数据总线是可用的,缓存控制器21可发出隐含使能请求给 该卷标逻辑262。当判定有标签命中时,隐含读取请求系为由造成起始对于该数据储存阵 列265的数据存取的该卷标逻辑262的该缓存控制器21所发出的请求,而不会有该缓存控 制器21的介入。一旦发出该隐含请求,该缓存控制器21可内部地标示那些资源对于所有 子缓存是忙碌的。在固定的预定时间周期后,缓存控制器21可标示那些资源为准备好的, 因为即使该资源实际上是被使用(在命中的事件中),它们将不再忙碌。然而,如果任何所 需要的资源都是忙碌的,则缓存控制器21可发出请求给卷标逻辑262作为非隐含请求。当 资源变成可用的时候,缓存控制器21可直接发出给已知包含该请求的数据、对应于传回命中的该非隐含请求的明显型请求的该数据储存阵列265子缓存。非隐含请求系为导致该卷 标逻辑262只传回该标签结果给该缓存控制器21的请求。因此,只有在那子缓存中的记 忆库和数据总线会成为非可用的(忙碌)。因此,当绝大多数的请求发布为明显型请求时, 在所有子缓存中可支持更多并行数据转换。关于使用隐含和明显型请求的实施例的更多 信息系可在2007年6月28日提出之美国专利申请案号11/769,970中找到,其标题为「在 处理器之缓存子系统中用以减低缓存等待时间同时维持缓存频宽的设备(APPARATUS FOR REDUCINGCACHE LATENCY WHILE PRESERVING CACHE BANDWIDTH IN ACACHE SUBSYSTEM OF A PROCESSOR)」,其全文内容在此并入作为参考。要注意的是,虽然上述的实施例包括具有多处理器核心的节点,但是可设想与L3 缓存子系统30相关联的功能系可使用在任何类型的处理器,包括单一核心处理器。此外, 上述功能并不限制在L3缓存子系统,而是可依需要实施在其它缓存阶与阶层。虽然上面的该实施例已经以相当多的细节来描述,一旦完全体会该上述揭露,许 多变化型式和修改型式对于熟习此技艺之人士将变得显而易见的。下列申请专利范围系用 以说明来包含所有如此的变化型式和修改型式。产业利用件本发明一般可应用微处理器与其缓存系统。
权利要求
一种处理器高速缓存子系统(30),包括高速缓存(60),其具有可配置关联性,其中,该高速缓存包含数据储存阵列(265),包含用以储存数据区块的多个可独立存取的子区块(0、1、2、3);以及卷标储存阵列(263),用以储存对应于储存在该多个可独立存取的子区块内的该数据区块的地址卷标组;缓存控制器(21),其配置以可程序化地选择该高速缓存的关联性的多个向。
2.如权利要求1所述的高速缓存子系统,其中,每个该可独立存取的子区块实施η向集 合关联的缓存。
3.如权利要求1所述的高速缓存子系统,其中,该高速缓存配置以操作在全关联的寻 址模式与直接寻址模式中。
4.如权利要求3所述的高速缓存子系统,其中,当程序化以操作在该全关联的寻址模 式中时,该缓存控制器配置以禁止对于每个该可独立存取的子区块的独立存取并且使能所 有可独立存取的子区块的并行标签查找,以及当程序化以操作在该直接寻址模式中时,该 缓存控制器配置以使能对于该可独立存取的子区块的一个或多个子集的独立存取。
5.如权利要求4所述的高速缓存子系统,其中,该缓存控制器包含包括一个或多个关 联性位的配置寄存器(223),其中,每个关联性位与该可独立存取的子区块的子集相关联。
6.如权利要求5所述的高速缓存子系统,其中,该缓存控制器还包括缓存监视器 (224),该缓存监视器配置以监视缓存子系统性能并且根据该缓存子系统性能来让该配置 寄存器自动地再程序化。
7.一种配置处理器高速缓存子系统(30)的方法,该方法包括将数据区块储存在具有多个可独立存取的子区块(0、1、2、3)中的高速缓存的数据储 存阵列(265)内;将地址卷标组储存在卷标储存阵列(263)内,该地址卷标组对应于储存在该多个可独 立存取的子区块内的该数据区块;可程序化地选择该高速缓存的关联性的多个向。
8.如权利要求7所述的方法,其中,每个该可独立存取的子区块实施η向集合关联的缓存。
9.如权利要求7所述的方法,还包括操作该高速缓存在全关联的寻址模式与直接寻址 模式中。
10.如权利要求9所述的方法,还包括当操作在该直接寻址模式中时经由包含一个或多个关联性位的配置寄存器(223),使能对于该可独立存取的子区块 的一个或多个子集的独立存取,其中,每个关联性位与该可独立存取的子区块的子集相关 联;自动地监视缓存子系统性能并且根据该缓存子系统性能来让配置寄存器自动地再程序化。
全文摘要
本发明提供一种包括具有可配置关联性的高速缓存(60)的处理器高速缓存子系统(30)。该高速缓存可操作在全关联(fully associative)的寻址模式与具有降低的关联性的直接寻址模式中。该高速缓存包括包含用以储存数据区块的多个可独立存取的子区块(0、1、2、3)的数据储存阵列(265)。举例来说,每个该子区块实施n向(n-way)集合关联(set associative)的缓存。该高速缓存子系统也可包括可程序化地选择该高速缓存的关联性的多个向的缓存控制器(21)。当程序化以操作在该全关联的寻址模式中时,该缓存控制器可禁止对于每个该可独立存取的子区块的独立存取与使能所有可独立存取的子区块的并行(concurrent)标签查找,而当程序化以操作在该直接寻址模式中时,该缓存控制器系可使能对于该可独立存取的子区块的一个或多个子集的独立存取。
文档编号G06F12/08GK101896891SQ200880022060
公开日2010年11月24日 申请日期2008年6月26日 优先权日2007年6月29日
发明者G·D·唐利 申请人:格罗方德半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1