![]() |
|
![]() |
||
二、物理寄存器文件(PRF)和執行改進
類似於AMD的推土機、山貓,Intel SNB也使用了物理寄存器文件。Core 2、Nehalem架構中,每個微指令需要的每個操作數都有一份拷貝,這就意味著亂序執行硬件(調度器/重排序緩存/關聯隊列)必須要非常大,以便容納微指令和相關數據。Core Duo時代是80-bit,加入SSE指令集後增至128-bit,現在又有了AVX指令集,按照趨勢會翻番至256-bit。
RPF在寄存器文件中存儲微指令操作數,而微指令在亂序執行引擎中只會攜帶指向操作數的指針,而非數據本身。這就大大降低了亂序執行硬件的功耗(轉移大量數據很費電的),同時也減小了流水線的核心面積,數據流窗口也增大了三分之一。
核心面積的精簡正是AVX指令(SNB最主要革新之一)集得以實現並保證良好性能的關鍵所在。以最小的核心面積代價,Intel將所有SIMD單元都轉向了256-bit。
AVX支持256-bit操作數,相當消耗晶體管與核心面積,而RPF的使用加大了亂序執行緩衝,能夠很好地滿足更高吞吐量的浮點引擎。
Nehalem架構中有三個執行端口和三個執行單元堆棧:
SNB允許256-bit AVX指令借用128-bit的整數SIMD數據路徑,這就使用最小的核心面積實現了雙倍的浮點吞吐量,每個時鍾可以進行兩個256-bit AVX操作。另外執行硬件和路徑的上位128-bit是受電源柵極(Power Gate)控制的,標准128-bit SSE操作不會因為256-bit擴展而增加功耗。
AMD推土機架構對AVX的支持則有所不同,使用了兩個128-bit SSE路徑來合並成256-bit AVX操作,即使八核心(四模塊)推土機的256-bit AVX吞吐量也要比四核心SNB少一半,不過實際影響完全取決於應用程序如何利用AVX。
SNB的峰值浮點性能翻了一番,這就對載入和存儲單元提出了更高要求。Nehalem/Westmere架構中有三個載入和存儲端口:載入、存儲地址、存儲數據。
SNB架構中載入和存儲地址端口是對稱的,都可以執行載入或者存儲地址,載入帶寬因此翻倍。
SNB的整數執行也有了改進,只是比較有限。ADC指令吞吐量翻番,乘法運算可加速25%。