Intel Core & Enhanced Core微架构(7)

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

Stack Pointer Tracker

Intel 64和IA32架构上有几个用于参数传递以及过程进入与退出的常用指令:PUSH,POP,CALL,LEAVE和RET。这些指令隐式得更新栈指针寄存器(ESP或RSP),无需软件介入,即可在程序栈中维护传递的参数和过程执行控制流(进入与退出)。在前几代微架构中,这些指令通常都译码为多条微指令。

栈指针跟踪器将这些指令中对栈指针的更新操作移到了译码器中专门的硬件逻辑中。这个体系提供如下的优势:

  • 提升译码带宽,在Intel Core微架构上,PUSH/POP/RET均译码为单微指令。
  • 节省执行带宽,栈指针更新不再需要竞争执行资源。
  • 增强乱序执行引擎的并行性,因为微指令间隐式地串行化依赖被消除了。
  • 提高能耗效率,因为栈指针的更新由小的专用硬件完成。

Micro-fusion

微熔合将来自于同一条x86指令的多条微指令合并成单条复杂微指令。换句话说,某条x86指令译码后生成了多条微指令,微熔合机制可以将这些微指令合并在一起生成单条复杂微指令,等价于一条x86指令在微熔合机制下译码后只生成一条微指令。微熔合具有如下的性能优势:

  • 提升从译码指到退役的指令带宽
  • 降低能耗,因为复杂微指令以较小的格式(从比特密度的角度来看)表示了较多的操作,当机器需要完成某个固定工作量的操作时,减少了机器总体需要的“比特反转”,即减少电力消耗,也实际上增加了乱序执行引擎可以存储的指令数量

许多指令有寄存器操作格式和存储器操作格式。相比起寄存器操作格式,操作存储器的指令格式通常会译码为较长的几条微指令序列。微熔合机制使得软件可以使用存储器到寄存器的指令操作格式,而无需再担心损失译码带宽。

(Todo:这个例子恰当?)例如,在Pentium II和Pentium III处理器上,对于ADD指令,ADD r8, r8(寄存器操作)对应一条微指令,但是ADD r8, m8(存储器操作)则会译码为两条微指令。但是在Intel Core及其以后的微架构上,ADD r8, m8(存储器到寄存器)则可以通过微熔合机制译码为单条复杂微指令。

猜你喜欢

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