经管理的指令缓存预取

上传人:ji****72 文档编号:45508941 上传时间:2018-06-17 格式:PDF 页数:11 大小:418.47KB
返回 下载 相关 举报
经管理的指令缓存预取_第1页
第1页 / 共11页
经管理的指令缓存预取_第2页
第2页 / 共11页
经管理的指令缓存预取_第3页
第3页 / 共11页
经管理的指令缓存预取_第4页
第4页 / 共11页
经管理的指令缓存预取_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《经管理的指令缓存预取》由会员分享,可在线阅读,更多相关《经管理的指令缓存预取(11页珍藏版)》请在金锄头文库上搜索。

1、 1/7 页4经管理的指令缓存预取背景技术发明领域0001 本发明的实施例通常涉及一种用于管理指令缓存预取的方法和设备。0002 相关领域的说明0003 指令缓存是现代微处理器的基本组件。 指令缓存的主要责任是为处理器流水线提供指令流。 尽管, 在很多情况下, 指令缓存未命中导致的停顿对性能没有重大的影响, 但是, 对于很多情况, 指令缓存未命中对性能确实有重大的影响。众所周知的具有负面影响性能 的弱的指令缓存行为的这些情况的类型的示例是服务器工作量和硬件 / 软件联合设计虚 拟机。0004 为了减少由于指令缓存未命中造成的性能下降, 处理器可以使用较大的缓存 ( 和/ 或较高结合性的缓存 )

2、 和 / 或硬件预取器。硬件预取器可以用于预测指令流并授权未来 指令的预取请求。然而, 存在构建的硬件预取器方案不能正确预测未来流的情形。0005 典型地, 硬件预取器预取通过分支预测引擎预测的指令地址。此分支预测引擎预测基于分支预测执行的未来指令。因为预取器紧紧地依赖于分支预测引擎, 因此只要分支 预测引擎不能正确预测分支的目标, 预取器通常就不能授权适当的预取请求。 因此, 寻求一 种改进的指令缓存预取技术。附图说明0006 从结合下述附图的下述细节描述中, 可以获得本发明的较好理解, 其中 :0007 图 1 说明了可与本发明的实施例一起利用的计算机系统结构。0008 图 2 说明了可与

3、本发明的实施例一起利用的计算机系统结构。0009 图 3 是依据本发明的一个实施例的处理器核的框图, 该处理器核包括使能指令缓存预取的动态优化器。0010 图 4 示出了依据本发明的一个实施例的表, 其用于存储简档动态信息。0011 图 5 是依据本发明的一个实施例的实现动态优化器插入预取请求的预取算法处理的流程图。0012 细节描述0013 在下面的说明中, 出于解释目的, 为了提供下面描述的本发明的实施例的彻底的理解, 提出了大量的特殊细节。然而显然, 对于本领域技术人员而言, 可以无需某些这些特 殊细节来实现本发明的实施例。 在其他例子中, 在框图形式中示出了公知的结构和设备, 以 避免

4、模糊本发明的实施例的基本原理。0014 以下是示例性的计算机系统, 在此后的讨论中, 其可以被本发明的实施例利用, 并用于在此具体地执行指令。本领域公知的用于膝上型电脑, 桌面电脑, 手持 PC, 个人数字 助理, 工程工作站, 服务器, 网络设备, 网络集线器, 交换器, 嵌入式处理器, 数字信号处理器 (DSP), 图形设备, 视频游戏设备, 置顶盒, 微控制器, 蜂窝电话, 便携媒体播放器, 手持设备,说 明 书CN 104220980 A42/7 页5以及各种其他电子设备的其他系统设计和配置也同样适用。通常, 此处公开的能够结合处 理器和 / 或其他执行逻辑的多种系统或电子设备通常是适

5、用的。0015 现在参见图 1, 示出了依据本发明的一个实施例的计算机系统 100 的框图。系统100 可以包括一个或多个处理元件 110, 115, 其耦合到图形存储器控制器中枢 (GMCH)120。 附加的处理元件 115 的可选属性在图 1 中用虚线表示。每个处理元件可以是单独的核, 或 者可选地, 包括多个核。 处理器元件可以可选地包括除了处理核之外的其他片上元件, 例如 集成的存储器控制器和 / 或集成的 I/O 控制逻辑。同样, 对于至少一个实施例, 处理元件的 核可以是多线程的, 其中它们可以每个核包括多于一个的硬件线程上下文。0016 图1说明了GMCH 120可以耦合到存储器

6、140, 其可以是例如, 动态随机存取存储器(DRAM)。对于至少一个实施例, DRAM 可以与非易失性缓存关联。GMCH 120 可以是芯片组, 或者是芯片组的一部分。GMCH 120 可以与处理器 110, 115 通信, 并控制处理器 110, 115 以 及存储器 140 之间的交互。GMCH 120 还可以作为处理器 110, 115 和系统 100 的其他元件 之间的加速总线接口。对于至少一个实施例, GMCH 120 通过多分支总线 ( 例如, 前端总线 (FSB)195) 与处理器 110, 115 通信。此外, GMCH 120 耦合到显示器 140( 例如平板显示器 )。

7、GMCH 120 可以包括集成的图形加速器。GMCH 120 进一步耦合到输入 / 输出 (I/O) 控制器 中枢 (ICH)150, 其可以用于将各种外围设备耦合到系统 100。例如在图 1 的实施例中所示 的是外部图形设备160以及另一个外围设备170, 外部图形设备可以是耦合到ICH 150的分 立图形设备。0017 可替代地, 附加的或不同的处理元件也可以出现在系统 100 中。例如, 附加的处理元件115可以包括附加的处理器, 其与处理器110相同, 附加的处理器对处理器110, 加速器 (例如, 图形加速器或数字信号处理(DSP)单元), 现场可编程门阵列, 或任何其他处理元件 来

8、说是异构的或不对称的。在包括体系结构, 微体系结构, 热力, 电源消耗特性等一系列优 点度量方面, 在物理源 110, 115 之间有各种不同。这些不同可以有效地表明它们在处理元 件 110, 115 之间的不对称性和异构性。对于至少一个实施例, 各种处理元件 110, 115 可以 驻留在相同的管芯封装中。0018 现在参见附图2, 示出了依据本发明的实施例的另一个计算机系统200的框图。 如图 2 所示, 多处理器系统 200 是点到点互连系统, 且包括通过点到点互连 250 耦合的第一处 理元件 270 以及第二处理元件 280。如图 2 所示, 每个处理元件 270 和 280 可以是

9、多核处 理器, 包括第一和第二处理器核 ( 即, 处理器核 274a 和 274b 以及处理器核 284a 和 284b)。 可选择地, 一或多个处理元件 270, 280 可以是元件而不是处理器, 例如加速器或现场可编 程门阵列。当只用两个处理元件 270, 280 示出时, 应该理解的是, 本发明的范围并不被这样 限制。在其他实施例中, 一或多个附加的处理元件可以存在于给定的处理器内。0019 第一处理元件270可以进一步包括存储器控制器中枢(MCH)272以及点到点(P-P,point-to-point) 接口 276 和 278。类似地, 第二处理元件 280 可以包括 MCH 282

10、 以及 P-P 接口 286 和 288。处理器 270, 280 可以通过使用 PtP 接口电路 278, 288 的点到点 (PtP, point-to-point) 接口 250 交换数据。如图 2 所示, MCH 的 272 和 282 将处理器耦合到各自 的存储器, 即存储器 242 和存储器 244, 其可以是本地的附属到各自的处理器的主存储器的 部分。0020 处理器 270, 280 可以用芯片组 290 通过使用点到点接口电路 276, 294, 286, 298 的说 明 书CN 104220980 A53/7 页6个别的 PtP 接口 252, 254 彼此交换数据。芯片

11、组 290 还可以与高性能图形电路 238 通过高 性能图形接口 239 交换数据。本发明的实施例可以位于具有任意数量处理核的处理元件 中。在一个实施例中, 任意处理核可以包括或者否则与本地缓存存储器 ( 未示出 ) 相关联。 此外, 共享缓存 ( 未示出 ) 可以被包括在两个处理器之一或两个处理器之外, 仍然通过 p2p 互连与处理器连接, 因此, 如果处理器在低电源模式下, 处理器之一或者两个处理器的本地 缓存信息可以存储在共享缓存中。第一处理元件 270 和第二处理元件 280 可以通过 P-P 互 连 276, 286 以及 284 分别耦合到芯片组 290。如图 2 所示, 芯片组

12、290 包括 P-P 接口 294 和 298。此外, 芯片组 290 包括接口 292 来将芯片组 290 与高性能图形引擎 248 耦合。在一个 实施例中, 总线249可以用于耦合图形引擎248到芯片组290。 可替代地, 点到点互连249可 以耦合这些组件。进而, 芯片组 290 可以通过接口 296 耦合到第一总线 216。在一个实施例 中, 第一总线216可以是外围组件互连(PCI, Peripheral Component Interconnect)总线, 或者是总线, 例如PCI扩展(PCI Express, Peripheral Component Interconnect E

13、xpress) 总线或者另一个第三代 I/O 互连总线, 尽管本发明的范围并不被如此限制。0021 如图2所示, 各种I/O设备214可以耦合到第一总线216, 连同将第一总线216耦合到第二总线 220 的总线桥 218 一起。在一个实施例中, 第二总线 220 可以是低引脚数 (LPC, low pin count) 总线。各种设备可以耦合到第二总线 220, 包括, 例如, 键盘 / 鼠标 222, 通信设备 226 以及数据存储单元 228, 例如硬盘驱动或者其他海量存储设备, 在一个实施例 中, 其可以包括代码 230。进一步地, 音频 I/O 224 可以耦合到第二总线 220。注

14、意其他的体系结构也是可能的。 例如, 替代点到点体系结构, 系统可以实现多点总线或其他这种体系 结构。0022 在一个实施例中, 本发明的方面依赖新的指令和它的用法。这个指令可以称为“pref_i” , 它的操作将发出用于特殊地址的到指令缓存中的预取请求。此指令的有益元素 包括 : 将被预取的行的地址被标识的方式 ; 以及执行或忽略预取请求的情况。0023 现在参见图 3, 说明了依据本发明的一个实施例的处理器核 300 的框图, 处理器核300包括动态优化器310, 其使能管理指令缓存预取。 应该意识到的是, 处理器核300可以是先前描述的计算机系统 200 的很多不同的处理器核 274 和

15、 284 中的一个。动态优化器 310 可以回顾预取算法 312 以及表 314。实现预取算法 312 的动态优化器 310 可以与处理器核 300 的内核 320 共同操作, 使能管理指令缓存预取, 如下文将要详细描述的。0024 内核 320 可以包括耦合到数据缓存 324 的后端 322 和耦合到指令缓存 345 的前端330。指令缓存 345 和数据缓存 324 耦合到 MCH 以及剩下的存储器层级 326( 如先前参见图 1 和 2 描述的 ), 其进而耦合到主存储器, 设备, 以及系统组件 350( 如先前参见图 1 和 2 描 述的)。 前端330可以包括分支预测引擎或单元332

16、, 以及其他前端组件334, 其耦合到预取 引擎 340, 预取引擎 340 进而耦合到指令缓存 345。0025 如已知的, 指令缓存 (IC, instruction cache)345 用于将指令流提供给处理器。预取引擎 340 可以预测指令流, 并基于来自分支预测引擎 332 的地址预测来发出用于来自 IC 345 的未来指令的预取请求。不幸的是, 分支预测引擎 332 经常做出错误的预测。0026 本发明的实施例涉及动态优化器 310, 其采用预取算法 312 和表 314 来提供一种方法和处理来通过预取引擎 340 精确地管理到 IC 345 的指令缓存预取。在一个实施例中, 总是利用由动态优化器 310 和预取算法 312 控制的新指令, 其命名为预取指令 ( 此后称为说 明 书CN 104220980 A64/7 页7pref_i), 该指令发出用于特殊地址的到 IC 345 的预取请求。本发明的方面涉及如何标识 将被预取的行的地址, 以及在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号