1. 程式人生 > >Intel Sandy Bridge/Ivy Bridge架構/微架構/流水線 (20) - IvyBridge微架構

Intel Sandy Bridge/Ivy Bridge架構/微架構/流水線 (20) - IvyBridge微架構

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條微指令。