Intel Core & Enhanced Core微架构(4)

版权声明:转载必须保留原出处,没有书面许可不可用于商用目的, https://blog.csdn.net/qq_43401808/article/details/85705703

Front End

前端的主要功能是为6发射宽度的乱序引擎提供并保持微指令流。下表列出了微架构中前端的构成部件,以及他们的功能和在性能方面面临的挑战。

部件

功能

性能挑战

分支预测单元(BPU)

预测各种类型的分支指令:条件分支,无条件分支,间接分支,直接分支,调用,回返指令。预测信息辅助取指单元获取最可能执行到的指令。每种类型的分支都有专门的硬件逻辑进行预测。

  • 允许投机执行
  • 通过减少“非架构路径1”上的指令被读取到流水线中,提升投机执行的效率

指令获取单元(IFU)

  • 获取可能被执行到的指令
  • 缓存频繁使用到的指令
  • 预译码和缓存指令,保持稳定地译码带宽,缓解x86指令流长度上的不规律性
  • 可变长度的x86指令格式导致译码带宽不稳定(出现气泡现象)
  • 采纳分支和未对齐的分支目标导致取指单元的总体带宽被打断

 

指令队列IQ和译码单元

  • 译码4条x86指令,或5条(通过宏熔合)
  • 栈指针跟踪器算法,更高效的过程进入与退出
  • 实现宏熔合特性,更高的译码性能和效率
  • 指令队列也被用作循环缓存,某些循环可以以更高的带宽和更低的能耗执行
  • 译码不同的x86指令需要不同的工作量,x86指令译码后对应不同数量的微指令
  • 指令前缀的存在增加了指令译码复杂度
  • 指令长度切换前缀(LCP)会导致前端出现气泡现象。

注1:在乱序投机执行过程中,处理器认为某个路径可能会被执行到,于是投机式式地读取该路径上的指令并执行,随后发现实际上应该执行其他路径,最后不得不废弃投机执行的路径。这个被废弃的路径被称为“非架构路径”,因为最终废弃的路径并不改变处理器架构的任何状态。相应的,最终执行的路径被称为“架构路径”,因为执行结果会反映到处理器架构状态上。

猜你喜欢

转载自blog.csdn.net/qq_43401808/article/details/85705703