Intel® Ivy Bridge Microarchitecture
第三代Intel Core处理器是基于Ivy Bridge微架构的。上述的Sandy Bridge微架构的特性也都适用于Ivy Bridge微架构。本节概述与Sandy Bridge不同的特性,可能会影响到程序的编码与性能。
Ivy Bridge微架构支持的新指令包括:
- 半精度浮点值与其他类型的相互转换指令
- 基于硬件的随机数生成指令RDRAND,遵循NIST SP 800-90A规范。
注:关于800-90A规范的更多信息:https://en.wikipedia.org/wiki/NIST_SP_800-90A
关于使用RDRAND指令的更多信息,可以参看:https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide
一些小的微架构增强,对软件可能有性能帮助:
- 硬件预取增强:Ivy Bridge中增加了一个下页预取器(NPP,next-page prefetcher)。当连续的缓存行访问接近页边界时,无论是上行还是下行,可以出发NPP预取下一个页面。
- 零时延寄存器move操作:对于寄存器-到-寄存器格式的MOV指令(即MOV reg1, reg2),其中一部分这样的指令可以在流水线前端执行,节省了乱序引擎的调度资源与执行资源。
- 前端增强:在Sandy Bridge微架构中,微指令队列是静态地分区成两个各有28个条目的队列,每个逻辑处理器使用一个,不管软件是单线程还是多线程的。在Ivy Bridge微架构上,微指令队列是共享竞争使用的,当一个逻辑处理器不活跃(即空闲)时,同一个核中的另一个兄弟逻辑处理器上运行的线程也可以使用所有的56个微指令队列条目。在这种情况下,循环流侦测器LSD可以处理更大的循环结构,即循环可以超过28条微指令。