用于以通过式存储模式操作分级缓存系统的方法和设备的制作方法

文档序号:6614358阅读:185来源:国知局
专利名称:用于以通过式存储模式操作分级缓存系统的方法和设备的制作方法
技术领域
本发明一般地涉及处理在处理器中的可緩存数据。特别地,本申请涉及最小化由于緩存存储失败所引起的处理器中的流水线停顿
(pipeline stall)。
背景技术
现代计算机系统典型地包括若干个集成电路(IC),包括可被 用于处理计算机系统中的信息的处理器。由处理器所处理的数据可 以包括由该处理器执行的计算机指令以及由该处理器使用所述计算 机指令操作的数据。计算机指令和数据被典型地存储在所述计算机 系统中的主存储器中。
处理器典型地通过在一系列小的步骤中执行指令来处理指令。 在一些情况中,为了增加处理器处理的指令的数量(并且因此增加 处理器的速度),所述处理器可以被流水线化。流水线是指在处理 器中提供单独的级,其中每级执行一个或多个执行指令所必需的小 步骤。在一些情况中,流水线(除了其他电路)可以被置于处理器 的一部分中(称为处理器内核)。 一些处理器可以具有多个处理器 内核,并且在一些情况中,每个处理器内核可以具有多条流水线。 当处理器内核具有多条流水线的情况下,指令组(称为发布组)可 以被发布至多条并行的流水线并由每条流水线并行执行。
作为在流水线中执行指令的一个实例,当第 一指令被接收时, 第一流水线级可以处理该指令的一小部分。当第一流水线级已经完 成对该指令的一小部分的处理之后,第二流水线级可以开始处理所 述第一指令的另一小部分,而第一流水线级接收并开始处理第二指 令的一小部分。因此,所述处理器可以同时(并行地)处理两个或
更多个指令。
为了提供对数据和指令的更快访问以及处理器的更好利用,处 理器可以具有若干个高速緩存。高速緩存为一典型地小于主存储器 的存储器,并且被典型地在与处理器相同的管芯(即,芯片)上制 造。现代的处理器典型地具有若干级高速缓存。位于最接近处理器
的内核的最快高速緩存被称为一级高速緩存(Ll緩存)。除了 Ll 高速緩存之外,处理器典型地具有二级、更大的高速緩存,称为二 级高速缓存(L2緩存)。在一些情况中,所述处理器可以具有其他 的、附加的高速緩存级别(例如L3高速緩存和L4高速緩存)。
在传统的处理器中,数据高速緩存(LlD-高速缓存)以"存入 式(Store In)"方式操作, 一般意味着存储数据的副本被写入至D 高速緩存中。遗憾地,在存入式高速緩存中,流水线停顿在存储丢 失的情况下频繁发生(意味着存储指令针对的数据线的副本不在D 高速緩存中)。当从高级别高速緩存中提取目标线的副本,作为得 到的读-改-写操作的一部分存储至D高速緩存时,停顿发生。进一 步地,D高速緩存线由于存储经常只写不读(至少在一段时间)的 数据而被浪费地占用,从而导致更多的丢失。
因此,存在用于处理利用高速緩存存储器的处理器中的数据的 改进方法和设备的需要。

发明内容
本发明一般地提供用于以通过式存储(store-through)模式操作 分级高速緩存系统的改进的方法和设备。
一个实施方式提供一种用于以通过式存储模式操作分级高速缓 存系统的方法,所述高速緩存系统至少包括能被流水线化执行单元 访问的一级(Ll)数据高速緩存和二级(L2)高速緩存。该方法一 般地包括通过所述流水线化执行单元接收存储指令以及待存储在 目标存储器地址的存储数据,以及如果包含目标存储器地址的高速 緩存行没有被包含在Ll数据高速緩存中,则在不停顿流水线化执行单元的情况下发送将存储在L2高速緩存中的存储数据。
一个实施方式提供一种集成电路设备, 一般地包括一级(L1) 数据高速緩存、二级(L2)高速緩存以及具有流水线化执行单元的 至少一个处理器内核,所述流水线化执行单元被配置成接收存储指 令以及将在目标存储器地址中存储的存储数据。高速緩存控制电路 被配置成如果包含目标存储器地址的高速緩存线没有被包含在Ll 数据高速緩存中,则在不停顿流水线化执行单元的情况下发送将在 L2高速缓存中存储的存储数据。
一个实施方式提供一种系统, 一般地包括具有一级(Ll)数据 高速緩存和二级(L2)高速緩存的处理器设备、至少三级高速緩存 以及高速緩存控制电路。所述处理器设备具有至少一个处理器内核, 所述处理器内核具有流水线化执行单元,该流水线化执行单元^皮配 置成接收存储指令以及待存储在目标存储器地址的存储数据。高速 緩存控制电路被配置成如果包含目标存储器地址的高速緩存线没 有被包含在L2数据高速緩存中,则以L3通过式存储模式发送将存 储在L3高速緩存中的存储数据。


因此以本发明的上述特征、优点和目标可以达到并详细理解的方式,上面简要概括的本发明的更具体的说明可以通过参考所附附图中显示的本发明的实施方式得到。
然而应该注意到,所附附图仅显示了本发明的典型实施方式,并且因此不应该被认为是本发明的范围的限定,对于本发明可以允 许其他等同效果的实施方式。
图1是图示了根据本发明的一个实施方式的系统的框图2是图示了根据本发明的一个实施方式的计算机处理器的框图3是图示了根据本发明的一个实施方式的处理器的内核之一 的框图4示出根据本发明的一个实施方式的用于以通过式存储方式 操作Ll/L2高速緩存分级的示例性操作;
图5示出根据本发明的一个实施方式的示例性通过式存储L2高 速緩存和对应的数据路径;
图6示出根据本发明的一个实施方式的示例性通过式存储L3高 速緩存和对应的数据路径。
具体实施例方式
本发明 一般地提供了用于以通过式存储方式操作L2高速緩存 (以及可能的更高级别高速緩存)的方法和设备。这里描述的技术 可以导致更少的由于D高速缓存丟失所引起的流水线停顿量。另外,: 以通过式存储方式操作L2高速緩存,同样可以导致更少的Ll D高 速緩存行被用于存储只写但不会被很快读取的数据而被浪费,最终 可以导致L1加载丢失量的减少以及进 一 步减少流水线停顿。
在下文中,将参考本发明的实施方式。但是,应该理解到本发 明并不限于特定描述的具体实施方式
。可取代地,不管是否涉及不 同的实施方式,可预期下面的特征和元素的任意组合用于实施并实 践本发明的。进一步,在不同实施方式中,本发明提供了相对于现 有技术的许多优点。然而,尽管本发明的实施方式可以获取相对于 其他可能的解决方案和/或相对于现有技术的优点,但是对于给定实 施方式特定优点有没有达到并不是对本发明的限制。因此,以下的 本发明的方面、特征、实施方式和优点仅仅用于示例,并不应被认 为是除了权利要求中明示出的之外的所附权利要求的元素或限定。 同样,对"本发明"的参考应该不被解释成这里公开的任何所发明 的主题的概括,也不能被认为是除了权利要求中明示出的之外的所 附权利要求的元素或限定。
下面是参考所附附图描述的本发明的具体实施方式
。这些实施 方式是示例性的并足够详细以清楚地传达本发明。然而,所提供的 细节的数量并不旨在限定实施方式的可预期的变形,相反,本发明 旨在覆盖所有落入如所附权利要求所定义的本发明的实质和范围的改变、等同和替换。
本发明的实施方式可以参考系统(例如计算机系统)而被利用及描述。这里使用的系统可以包括任何利用处理器和高速緩存存储器的系统,包括个人计算机、因特网装置、数字媒体装置、便携数字助理(PDA)、便携音乐/视频播放器以及视频游戏控制台。尽管高速緩存存储器可以位于与利用该高速缓存存储器的处理器相同的管芯上,在一些情况中,该处理器和高速緩存存储器也可以位于不同的管芯(例如分离的模块内的分离芯片或单个模块内的分离芯片)。
下面参考具有多个处理器内核和多个L1高速緩存的处理器,其中每个处理器内核使用多条流水线以执行指令,本发明的实施方式可以被任何利用高速缓存的处理器利用,包括具有单个处理内核的限于任何特定配置。更进一步地,参考具有将L1高速緩存划分为 Ll指令高速緩存(L1 I高速緩存或I高速緩存)和Ll数据高速緩存 (Ll D高速緩存或D高速緩存)的处理器,本发明的实施方式可以在其中使用统一的L1高速緩存的配置中使用。
示例系统的概述
图1是图示根据本发明的一个实施方式的系统100的框图。该系统100可以包括用于存储指令和数据的系统存储器102、用于图形处理的图形处理单元104、用于与外部设备通信的1/0接口 、用于长期存储指令和数据的存储设备108以及用于处理指令和数据的处理器110。
根据本发明的一个实施方式,处理器110可以具有L2高速緩存 112以及多个Ll高速緩存116,每个Ll高速緩存116由多个处理器内核114中的一个使用。根据一个实施方式,每个处理器内核114 可以被流水线化,其中每个指令在一系列小步骤中被执行,其中每个步骤由不同的流水线级执行。
图2是示出根据本发明的一个实施方式的处理器110的框图。
为了简单起见,图2图示并参考处理器110的单个内核114来描述。 在一个实施方式中,每个内核114可以相同(例如包含具有相同流 水线级的相同流水线)。在另一实施方式中,每个内核114可以不 同(例如包含具有不同级的不同流水线)。
在本发明的一个实施方式中,L2高速緩存可以包含由处理器110 使用的一部分指令和数据。在一些情况中,处理器110可以请求没 有被包含在L2高速緩存112中的指令和数据。当所请求的指令和数 据没有被包含在L2高速緩存112中时,所请求的指令和数据可以被 重新获取(从更高层高速緩存或者系统存储器102)并被置于L2高 速緩存中。当处理器内核114从L2高速緩存112请求指令时,这些 指令可以由预解码器和调度器220首先处理(下面将详细描述)。
在本发明的一个实施方式中,指令可以成组地从L2高速緩存 112中取得,称为I行(Iline)。类似地,数据可以成组从L2高速 緩存112中取得,称为D行(Dline)。图1中示出的L1高速緩存 116可以被划分成两部分用于存储I行的Ll指令高速緩存222 (I 高速緩存222)以及用于存储D行的Ll数据高速緩存224 (D高速 緩存224 ) 。 I行和D行可以使用L2访问电路210从L2高速緩存 112中取得。
在本发明的一个实施方式中,从L2高速緩存112中重新获取的 I行可以由预解码器和调度器220处理,并且I行可以被置于I高速 緩存222中。为了进一步改善处理器性能,指令通常被预解码,例 如I行从L2(或更高)高速緩存中重新获取。这样的预解码可以包 含各种功能,诸如地址生成、支路预测以及调度(确定指令应该被 发布的顺序),其作为控制指令执行的分派信息(一组标志)而被 捕获。在一些情况中,所述预解码和调度器220可以在多个内核114 和L1高速緩存中共享。类似地,从L2高速緩存112中提取的D行 可以被置于D高速緩存224中。每个I行和D行中的一个比特位可 以用于跟踪L2高速緩存112中的信息的行是I行还是D行。可选地,
取代于以I行或D行方式从L2高速緩存112中提取数据,数据可以 以其它方式(例如通过提取更小、更大或可变量的数据)从L2高速 緩存112提取。
在一个实施方式中,I高速緩存222和D高速緩存224可以分别 具有I高速緩存目录223和D高速緩存目录225,分别用于跟踪哪些 I行和D行当前处于I高速緩存222和D高速緩存224中。当I行或 D行被加入至I高速緩存222或D高速緩存224中时,对应的条目 可以被置于I高速緩存目录223或D高速緩存目录225中。当从I 高速緩存222或D高速緩存224中移除I行或D行时,I高速緩存目 录223或D高速緩存目录225中的对应条目可以被移除。尽管下面 参考利用D高速緩存目录225的D高速缓存224进行描述,但是本 发明的实施方式也可以被用在没有使用D高速缓存目录225的情况 中。在这些情况中,存储在D高速緩存224中的数据自身可以指示 什么D^亍当前在D高速緩存224中。
在一个实施方式中,取指电路236可以被用于为内核114提取 指令。例如,取指电路236可以包括程序计数器,其追踪在内核中 被执行的当前指令。内核中的分支单元可以被用于当遇到分支指令 时改变程序计数器。I行緩沖器232可以被用于存储从LI I高速缓存 222中提取的指令。发布和分派电路234可以被用于将从I行緩沖器 232中取得的指令分组成指令组,这些指令组然后将如下所述被并行 发布至内核114。在一些情况中,发布和分派电路可以使用预编码器 和调度器220提供的信息以形成合适的指令组。
除了从发布和分派电路234接收指令之外,内核114还可以从 各种位置接收数据。当内核114需要来自数据寄存器的数据时,寄 存器文件240可以被用于获取数据。当内核114需要来自存储器位 置的数据时,高速緩存加载和存储电路250可以被用于加载来自D 高速緩存224中的数据。当执行这样的加载时,针对所需要的数据 的请求可以被发布至D高速緩存224。与此同时,D高速緩存目录 225可以被检查以确定所需要的数据是否位于D高速緩存224中。
当D高速緩存224包含所需要的数据时,D高速緩存目录225可以 指示D高速緩存224包含所需要的数据,并且D高速緩存访问可以 在之后的某时刻完成。当D高速緩存224不包含所需要的数据时, D高速緩存目录225可以指示D高速緩存224不包含所需要的数据。 因为D高速緩存目录225可以比D高速緩存224更快地访问,所以 对于所需要的数据的请求可以在D高速緩存目录225被访问之后但 在D高速緩存访问完成之前被发布至L2高速緩存112 (例如使用 L2访问电路各210)。
在一些情况中,数据可以在内核114中修改。修改的数据可以 被写入到寄存器文件中或者存储在存储器中。写回电路238可以用 于将数据写回至寄存器文件240。在一些情况中,写回电路238可以 使用高速緩存加载和存储电路250以将数据写回至D高速緩存224 中。可选地,内核114可以直接访问所述高速緩存加载和存储电路 250以执行存储。在一些情况中,如下面描述的,写回电路238也可 以被用于将指令写回至I高速緩存222。
如上所述,所述发布和分派电路234可以;故用于形成指令组, 并将所形成的指令组发布至内核114。所述发布和分派电路234也可 以包括用于循环以及合并I行中的指令并由此形成合适的指令组的 电路。发布组的形成可以考虑若干考虑因素,诸如发布组中指令之 间的依赖性以及可以从将在下面详细描述的指令的排序中达到的优 化。 一旦形成发布组,该发布组可以被并行分派至处理器内核114。 在一些情况中,指令组可以包含用于内核114中的每条流水线的一 个指令。可选地,指令组可以是小数量的指令。
根据本发明的一个实施方式, 一个或多个处理器内核114可以 使用级联、延迟的执行流水线结构。在图3中图示的实例中,内核 114包括级联结构的四条流水线。可选地,这样的结构中可以使用更 小数量(两条或更多条流水线)或者更大数量(多于四条流水线)。 更进一步,图3中图示的流水线的物理布局为示例性的,并不必然 地暗示级联、延迟的执行流水线单元的实际物理布局。
在一个实施方式中,在级联、延迟的流水线结构中的每条流水
线(P0、 Pl、 P2、 P3)可以包括执行单元310。该执行单元310可 以包括若干个流水线级,这些流水线级执行针对给定流水线的一个 或多个功能。例如,执行单元310可以执行指令的提取和解码的所 有或一部分。由执行单元执行的解码可以与预解码器和调度器220 共享,所述预解码器和调度器220在多个内核114之间共享或可选 地由单个内核114使用。执行单元也可以从寄存器文件中读取数据, 计算地址,执行整数算术功能(例如使用算术逻辑单元或ALU), 执行浮点算术功能,执行指令分支,执行数据访问功能(例如从存 储器中加载和存储),以及将数据存回寄存器(例如至寄存器文件 240中)。在一些情况中,内核114可以利用提取电路236、寄存器 文件240、緩存加载和存储电路250和写回电路以及任何其他电路以 执行这些功能。
在一个实施方式中,每个执行单元310可以执行相同的功能。 可选地,每个执行单元310 (或不同组执行单元)可以执行不同组的 功能。同样,在一些情况中,每个内核114中的执行单元310可以核中,执行单元310。和3102可以寺丸行加载/存储和算术功能,而^丸行 单元310j口 3102可以仅执行算术功能。
在一个实施方式中,如图所示,执行单元310中的4丸行可以以 相对于其他执行单元310来说延迟的方式完成。图示的布置也可以 被称为级联、延迟的结构,但是图示的布局并不必然地表明执行单 元的实际物理布局。在这样的结构中,指令组中的指令(方便起见 称为10、 II、 12、 13 )被并行发布至流水线P0、 Pl、 P2、 P3,每个 指令可以以相对于每个其他指令延迟的方式被执行。例如,指令IO 可以首先在用于流水线P0的执行单元310o中被执行,指令Il可以 在用于流水线P1的执行单元31(h中被第二个执行,以此类推。
在一个实施方式中,当将发布组发布到处理器内核114时,10 可以在执行单元31 Oo中被立即执行。稍后,在指令10在执行单元3100中已经被执行完成之后,执行单元31(^可以开始执行指令I1,以此 类推,从而并行发布至内核114的指令以相对于彼此之间延迟的方 式被执行。
在一个实施方式中,某个执行单元310可以相对于彼此之间被延迟,而其他执行单元310相对于彼此之间没有被延迟。当第二指令的执行取决于第 一指令的执行时,转发路径312可以被用于将结 果从第一指令转发至第二指令。图示的转发路径312仅仅是示例性 的,内核114可以包含从执行单元310中的不同点至其他执行单元 310或相同执行单元310的更多的转发路径。
在一个实施方式中,没有被执行单元310执行的指令(例如被 延迟的指令)可以在延迟队列320或目标延迟队列330中保持。延 迟队列320可以被用于保持指令组中还没有被执行单元310执行的 指令。例如,当指令IO在执行单元310o中被执行,指令Il、 12和13 可以被保持在延迟队列330中。 一旦指令已经移动穿过延迟队列 330,则指令可以被发布到合适的执行单元310并被执行。目标延迟 队列330可以被用于保持已经由执行单元310执行的指令的结果。 在一些情况中,在目标延迟队列330中的结果可以被转发至执行单 元310,用于处理或在适当时4吏之无效。类似地,如下所述,在一些 情况中,延迟队列320中的指令可以被无效。
在一个实施方式中,在指令组中的每个指令已经经过延迟队列 320、执行单元310和目标延迟队列330之后,结果(例如数据和如 下所述的指令)可以被写回至寄存器文件或LI I高速緩存222和/或 D高速緩存224。在一些情况中,写回电路238可以用于写回寄存器 最近修改的值(从目标延迟队列330中的一个接收到的)并丢弃无 效的结果。
通过式存储L2緩存模式 对于一些实施方式,L2高速緩存可以以通过式存储的方式来操 作, 一般意味着存储数据可以被发送至L2高速緩存而不考虑存储操 作在D高速緩存中是命中还是丢失。如前所述,通过忽略D高速緩 存存储丟失,特别是对于那些仅被写入的数据,流水线停顿可以被 避免。另外,通过释放常规用于存储只写数据的D高速緩存行的数 量,加载丟失的数量可以被显著降低,例如,导致可能等于或超过更大尺寸的常规操作的(存入)D高速緩存的加载丢失率的加载丟失率。结果,整体处理器性能可以以最小的成本而被显著改善。
对于一些实施方式,"通过式存储模式"可以在软件和/或硬件 控制下被启用/禁用。例如,软件可控制位可以在被设置时提供(例 如通过操作系统码)以启用这里所描述的通过式存储操作。另外, 或者作为替换,通过式存储模式可以在硬件控制下被启用/禁用,例 如,利用监视流水线性能的某种类型的装置逻辑。这些逻辑可以监视并记录加载丢失以及例如如果超过了阈值丢失率,则启用对于L2 高速缓存和/或更高级别的高速緩存的通过式存储模式。
图4示出根据本发明的一个实施方式的用于实施通过式存储L2 高速緩存模式的示例性操作400。该操作400可以由例如图3中所示 的加载/存储电路250或任何其他适用的逻辑执行。尽管通过式存储 L2高速緩存模式运行可以被执行以有利于如图3所示的使用级联、 延迟的才丸行流水线单元114的处理器内核,但本领域技术人员会意 识到可以通过在其他类型的处理器内核中实施通过式存储模式而得 到类似的益处。
操作400通过接收存储指令而在步骤402开始。在步骤404,确 定通过式存储模式是否被启用(例如通过校验控制位)。如果通过 式存储模式没有被启用,则在步骤405存储数据可以被发送至Ll, 例如以常规方式处理,这将导致在存储丢失情况下流水线停顿。
然而,如果通过式存储模式被启用,则在步骤410存储数据可 以被发送穿过至L2高速緩存,而不考虑存储在D高速緩存中是命中 还是丢失。换句话说,任何丟失可以被忽略并且流水线可以继续操作而不停顿。
如图所示,对于一些实施方式,如步骤406所确定的,如果数 据在D高速緩存中命中(在D高速緩存中已经包含有目标地址的高速緩存行),则在步骤408,存储数据也可以被写入至D高速緩存。 以这样的方式更新Ll可能是有益的,例如避免如果数据被相对快的读取时的加载丟失。进一步,对于一些实施方式,合并了存入式存储和通过式存储技术的"混合式"方法可以被结合。例如,如果在D高速緩存中找到数据,则其将被存储在D高速緩存中并仅经由常规舍去老化(cast-out aging )机制而发送至L2,该机制可以将总线上的带宽保存至L2。但是,如果没有在D高速缓存中找到数据,则数据可以被通过式存储至L2以避免停顿。
图5显示了根据本发明的一个实施方式的通过式存储L2高速缓 存模式和相应的数据路径的示例图。如图所示,在存储丢失的情况下,存储数据(例如来自加载/存储电路250 )可以被"通过式存储" 至L2高速緩存112,绕过L1 D高速緩存224。如上所述,如果目标 高速緩存行已经被包含在其中(即,存储命中),则数据可以仍然在D高速緩存224中被更新。
对于一些实施方式,单独的存储总线可以被提供以通过式存储 至L2。单独的存储总线可以与提取总线一样宽,或者对于一些实施方式,比提取总线的宽度小(例如,一半宽度)。对于其他实施方 式,如果具有足够的带宽,则提取总线(或者其一部分)可以被共 享和用于通过式存储至L2。
在一些应用中,数量少于整个高速緩存行的数据可以被写出。 例如,在具有主要是整数指令的应用中,存在若干(部分)至相同的高速緩存行的存储。这类部分存储可能的问题在于,因为单个字节不能够在没有使误差校正码(ECC)无效的情况下被单独地写入, 所以它们可能对于每个部分存储造成一 系列的读-改-写操作。这些多个读_改_写将导致相当大的信息量和等待时间。
为了降低存储总线(无论其是单独的还是共享的)上的这种信 息量,集合緩冲器512可以被提供以合并待写到一起的多个部分存储(不是针对全高速緩存行或子行)。集合缓冲器512可以是任意 合适的深度以处理多个緩冲行。在具有至相同緩沖行的多个存储的
情况下,集合緩沖器512中的高速緩沖行的副本可以被修改,而不
需要生成对L2的写入。 一旦这些写入已经被合并,它们可以作为单 个高速缓冲行被写出。
根据实施方式,当写入的阈值量已经被累积时或者基于时间(老 化),数据可以被写出。对于一些实施方式,集合緩冲器512可以 筒单的先入先出(FIFO)方式操作。当数据将被存储至新的高速緩 冲行时,该高速缓冲行可以从L2中提取并被带入到緩沖器512中, 引起最老的(先入)最后被写出至L2。这些行可以简单地按顺序平 移(例如假定是3-深度的FIFO,则第二行变成第三行,第一行变成 第二行,新行变成第一行)。各种其他才支术也可以被Y吏用,例如, 写出緩存器512中最近最少使用的(LRU)高速缓存行。
对于一些实施方式,通过式存储技术可以在更高级别的高速緩 存上被应用以达到类似的优点。例如,图6显示了根据本发明的一 个实施方式至L3高速緩存602的通过式存储和对应的数据路径。如 上参考L1高速緩存所述,至L3高速緩存的通过式存储可以使L2 中的存储丢失更少以及使L2中的更多行可用于加载,从而导致更少 的加载丟失。
数据可以被存储至L3高速緩存603,而不考虑在L2中是否命中。 可选地,在命中的情况中,则数据可以在L2高速緩存112中^皮更新。 进一步,对于一些实施方式,可以应用混合式方法,其中当成功时 数据在L2高速緩存112中被更新(写入式存储),而当丟失时数据 被通过式存储至L3高速緩存602。对于一些实施方式,可以提供单 独存储总路线以通过式存储至L3。然而,在L3高速緩存为片外(例 如外部DRAM)的情况下,则存^f诸总线可以被共享。
如图所示,集合緩沖器610也可以被提供以在将整个块一次性 写出至L3高速緩存602之前将多个写入累积至具有预定块大小(例 如对应于页面大小)的公共数据块。集合緩沖器610可以以上面描 述的任何方式祐:操作,例如作为FIFO或者任何其它类型的技术以控 制可能已经被多次修改的数据块的写出。
尽管上述针对于本发明的实施方式,但是本发明的其他以及进 一步的实施方式可以在不偏离本发明的基本范围的情况下想出,而 本发明的范围是由所附权利要求书所确定。
权利要求
1.一种用于以通过式存储模式操作分级高速缓存系统的方法,所述高速缓存系统至少包括能被流水线化执行单元访问的一级(L1)数据高速缓存和二级(L2)高速缓存,该方法包括通过所述流水线化执行单元接收存储指令以及将存储在目标存储器地址的存储数据;以及如果包含目标存储器地址的高速缓存行没有被包含在L1数据高速缓存中,则在不停顿所述流水线执行单元的情况下发送将存储在L2高速缓存中的存储数据。
2. 根据权利要求1所述的方法,另外包括如果包含所述目标存储器地址的高速緩存行被包含在Ll数据高 速緩存中,则将所述存储数据写入至Ll数据高速緩存。
3. 根据权利要求1所述的方法,其中 所述通过式存储模式可被启用和禁用;以及当所述通过式存储模式被禁用时,如果包含所述目标存储器地 址的高速緩存行没有被包含在Ll数据高速緩存中,则当提取包含所 述目标存储器地址的高速緩存行时,使所述流水线化执行单元停顿。
4. 根据权利要求3所述的方法,另外包括在软件控制下启用所 述通过式存储模式。
5. 根据权利要求3所述的方法,另外包括基于与流水线化执行 单元的性能有关的一个或多个参数、在硬件控制下启用所述通过式 存储模式。
6. 根据权利要求1所述的方法,其中发送将存储在L2高速緩 存中的存储数据包括在将存储数据存储在L2高速緩存中之前,在緩沖器中更新包含 所述目标存储器地址的高速緩存行;以及其中在将所述高速緩沖行从所述緩冲器发送至L2高速緩存之 前,所述高速緩存行在缓沖器中被多次更新。
7. 根据权利要求1所述的方法,其中发送将存储在L2緩存中 的存储数据包括使用用于从L2高速緩存提取得数据的总线的至少 某些部分。
8. —种集成电路设备,包括 一级(Ll )数据高速緩存; 二级(L2)高速緩存;具有流水线化执行单元的至少 一 个处理器内核,所述流水线化 执行单元被配置成接收存储指令以及将存储在目标存储器地址的存 储数据;以及高速緩存控制电路,被配置成如果包含所述目标存储器地址的 高速緩存行没有被包含在Ll数据高速緩存中,则在不停顿流水线化 执行单元的情况下发送将在L2高速緩存中存储的存储数据。
9. 根据权利要求8所述的设备,其中所述高速緩存控制电路被 配置成如果包含所述目标存储器地址的緩存行被包含在L1数据高速緩 存中,则将存储数据写入至Ll数据高速緩存。
10. 根据权利要求8所述的设备,其中 所述通过式存储模式可被启用和禁用;以及 当所述通过式存储模式被禁用时,如果包含所述目标存储器地址的高速緩存行没有被包含在L1数据高速緩存中,则当提取包含所 述目标存储器地址的高速緩存行时,停顿所述流水线化执行单元。
11,根据权利要求8所述的设备,还包括寄存器,该寄存器具 有用于允许在软件控制下启用所述通过式存储模式的位。
12. 根据权利要求8所述的设备,还包括逻辑电路,其被配置 成基于与流水线化执行单元的性能有关的一个或多个监视的参数而 自动地启用所述通过式存储模式。
13. 根据权利要求8所述的设备,另外包括 緩沖器,用于存储一个或更多个高速緩存行;以及 其中所述高速緩存控制电路被配置成,在将所述存储数据存储 在L2高速緩存中之前,在所述緩冲器中更新包含所述目标存储器地 址的高速緩存行。
14. 根据权利要求8所述的设备,其中发送将在L2緩存中存储 的存储数据包括利用用于从L2高速緩存中提取数据的总线的至少 某些部分。
15. 根据权利要求8所述的设备,其中所述处理器内核包括 一个或更多个级联延迟的执行流水线单元,每个执行流水线单元至少具有第一和第二执行流水线,其中在发布至执行流水线单元 的公共发布组中的指令由第一执行流水线中在第二执行流水线之前 执行;以及转发路径,用于将在第一执行流水线中执行第一指令所 生成的结果转发至第二执行流水线,以用于执行第二指令。
16. —种系统,包括处理器设备,具有一级(Ll)数据高速緩存和二级(L2)高速 緩存以及具有流水线化执行单元的至少 一个处理器内核,所述流水 线化执行单元被配置成接收存储指令以及将存储在目标存储器地址 的存储数据;至少三级(L3)高速緩存;以及高速緩存控制电路,被配置成如果包含所述目标存储器地址的 高速緩存行没有被包含在L2数据高速緩存中,则以L3通过式存储 模式发送待存储在L3高速緩存中的存储数据。
17. 根据权利要求16所述的系统,其中所述L3高速緩存位于 处理器设备的外部。
18. 根据权利要求16所述的系统,其中所述L3通过式存储模 式可在硬件控制和软件控制中的至少一个的控制下被启用和禁用。
19. 根据权利要求16所述的系统,其中所述高速緩存控制电路 被配置成如果包含所述目标存储器地址的緩存行被包含在L2数据高速緩 存中,则将存储数据写入至L2高速緩存。
20.根据权利要求16所述的系统,另外包括緩冲器,用于存储将写出至L3高速缓冲的一个或多个数据块;以及其中所述高速緩存控制电路被配置成在将存储数据存储在L3高 速缓存之前,在所述緩沖器中更新包含所述目标存储器地址的数据块。
全文摘要
提供一种用于以通过式存储模式操作分级缓存系统的方法和设备,即一种用于最小化未调度的D高速缓存丢失流水线停顿的方法和设备。在一个实施方式中,L2高速缓存可以以通过式存储模式被操作,从而引起L1丢失的来自存储指令的数据被直接发送至L2高速缓存,而不需要引起流水线停顿。通过式存储模式可以被启用或禁用(例如在软件和/或硬件控制下)。更高级别的高速缓存(例如L3和L4)也可以以通过式存储模式被操作。
文档编号G06F9/38GK101201735SQ20071018709
公开日2008年6月18日 申请日期2007年11月23日 优先权日2006年12月11日
发明者D·A·卢依克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1