王文義,王 杰
(中原工學院 并行處理技術研究所,鄭州450007)
高并行性能Intel Core i7多核處理器及其關鍵技術研究
王文義,王 杰
(中原工學院 并行處理技術研究所,鄭州450007)
介紹了Intel Nehalem多核處理器微架構的組成及其獨特的三級緩存模式,同時針對并行計算機對處理器在計算性能(Gflops)和能耗比(Mflop/W)兩方面的特殊要求,介紹了Nehalem Core i7處理器所采用的一些關鍵技術,如超線程,QPI總線,內核加速模式和SSE4.2指令集等,這些技術對高效使用并行計算機是非常必要的.
Nehalem微架構;多核多線程處理器;超線程技術;QPI總線
隨著微電子技術的飛速發展,各種新型處理器的性能變得越來越好,但“存儲器門”瓶頸問題卻始終存在.為了充分發揮處理器的性能,數據的存儲速度必須要盡可能地接近CPU性能,否則任何增加片上計算能力[1]的要求都只能是空談.
多核下的多線程或超線程與傳統的單核下的多線程有著較大的差別.在單核下,多個線程在同一個CPU上并發地執行任務,而在多核下,則是由多個線程在多個核上并行地執行任務.目前的并行處理應用對于多核的利用并沒有達到預期的效果,不僅存在著較大的資源浪費,同時還要付出巨大的能源消耗.
Intel Nehalem Corei7采用獨特技術,一反傳統的core2設計理念,明顯地提高了并行處理性能,既兼顧性地改善了多核系統必需要嚴格保持內存一致性的問題(提高了Gflops),又在能耗比(Mflop/W)上收到良好的效果.
并行處理平臺離不開多核技術[5].在不借助軟件輔助的情況下,提高處理器的亂序執行能力是增強并行處理能力的一種有效途徑.
何謂亂序執行?對于下述代碼:
(1)R1=MEM[1024]
(2)R1=R1+2
(3)MEM[1032]=R1
(4)R1=MEM[2048]
(5)R1=R1+4
(6)MEM[2056]=R1
如果處理器不按照指令順序執行,勢必就會出現差錯.比如,在(3)尚未完成之前去執行(4),那么 MEM[1032]就會因為R1寄存器改變而出現問題.
不難發現,在上面代碼中,(1)、(2)、(3)與(4)、(5)、(6)之間并沒有實際聯系,它們僅僅是都使用了R1寄存器.因此,通過重命名寄存器,就完全可以實現并行處理.比如,讓(4)、(5)、(6)指令通過使用 R2寄存器,如:
(1)R1=MEM[1024]
(2)R1=R1+2
(3)MEM[1032]=R1
(4)R2=MEM[2048]
(5)R2=R2+4
(6)MEM[2056]=R2
顯然,寄存器數量越多,其重排序工作也就越便捷.為了能夠鑒別與抽取更多的可并行處理的獨立操作,Intel在Nehalem Core i7微架構中提高了亂序指令窗口和調度器的規格,為其提供了足夠的便捷通道,從而大大提升了處理器的并行性能[2].
Nehalem微架構(如圖1所示)的緩存子系統一改之前Core 2架構的傳統模式,采用了全新的三級緩存模式.Core i7微架構引入了新的Smart Cache智能緩存技術,L1和L2兩級為內核緩存,具有超低延遲性能,其中L1緩存由32KB指令緩存和采用8路聯合設計的32KB數據緩存組成.

圖1 Nehalem Corei7微架構圖
L2級緩存的容量作了較大削減,每個核心擁有獨立的256 kB(之前的L2級緩存往往>1 MB),也不再采用共享方式,但由于它們保持了相同的Cache line,所以仍可以在同一核心內進行數據交換.L3級緩存則采用了獨特的全包含式(Full Inclusive)設計,可被片上所有核心所共享,它完全存儲了較低級別的L1級和L2級緩存中的所有內容,以確保多核心運算的效率最大化,如Core i7-920XM以及Core i7-820XM的L3容量為8 MB.Core i7三級緩存模式如圖2所示.
在單核心時代,三級緩存的設計曾被用于Intel的P4以提高性能.而在多核心時代[4-5],AMD也曾率先使用了三級共享緩存,但Intel的Nehalem則使用了多個核心共享8 MB三級緩存的設計方式,這無疑大大提高了各個核心之間的數據通信能力.
Nehalem Corei7使用了許多優秀的技術,使得處理器的性能得到了大幅提高.其中主要的技術有:
Nehalem支持超線程即第三代超線程技術,四核心時多達八個線程.Nehalem將四核心的處理器賦予八線程運算能力,明顯地提升了Core i7處理器的多任務并行處理能力.
Nehalem超線程技術來自于其架構更大的緩存及帶寬,該架構中需要靜態分配給每個線程或者需要線程共享的資源都較以前的Core 2架構有大幅增加,使得超線程技術更容易得到發揮.所采用的SMT(Simultaneous Multi-Threading)技術允許一個核心同時處理兩個軟件線程,這就極大地加強了處理器的并行處理能力[3].同時,SMT技術還有著更高的資源利用率,與其他類型的處理器相比,在同樣性能的前提下,Core i7處理器的能耗下降了20%~30%,這是難能可貴的.
Nehalem的整合內存控制器[1]最高支持三通道DDR3-1333 MHz內存,其最大帶寬可以達到32 GB/s,加上內存效能的提高,其內存帶寬達到目前其他架構內存帶寬的4倍以上.另外,Nehalem每個通道的內存均可獨立工作,控制器通過亂序執行可以使延遲最小化.由于內存帶寬的顯著增加,Nehalem每個核心都可以支持10個數據緩存錯失和總計16個未決錯失,而先前Core 2的數值則只有8個和14個.
由于采用了QPI(Quick Path Interconnect)總線技術[4],可以使處理器內的各個處理核心之間進行無間的通信.這對提高整個處理器的執行效能至關重要.其他類型的處理器,雖然內部也集成了越來越多的處理核心,但是每個處理核心的資源利用率卻不高,也就是說,試圖通過集成更多的處理核心來提高處理效能并不可行.其關鍵是如何能夠充分地利用好處理核心,讓它們盡量都處在繁忙狀態,這才是更有效的辦法.可以說,在這個問題上Nehalem Corei7處理器是做得比較成功的.
Nehalem集成內存控制器后,具備了一個與處理器內核之間通信的高速連接.Intel Nehalem把它定名為QPI,其結構如圖3所示.

圖3 Nehalem QPI技術結構圖
QPI技術不僅可以讓CPU與北橋通信,而且還能夠實現CPU內核之間的通信.Nehalem將每個核心分割為獨立的小塊,并根據具體的需求來定位分配QPI總線的條數,比如較高層次服務器級別的Nehalem就配備了2條甚至4條QPI.
由于服務器用戶的應用需求往往要高于之前一般用戶對Core2四核處理器前端總線的配置的應用需求,因此QPI總線通過每一條連接支持6.4 GB/s帶寬,使得Nehalem帶寬最高可達25.6 GB/s,于是較好地解決了核間通信問題.
對于多核[5-6]芯片,在應用中用戶可以根據需要開啟、關閉以或加速單個內核的運行.例如,在一個四核的Core i7處理器中,如果一個任務只需要兩個內核,就可以關閉另外兩個內核的運行,同時把工作的兩個內核的運行主頻提高.如果任務只需要一個內核,則可以關閉其他三個內核,同時把工作的一個內核提高到更高的主頻運行.這樣的動態調整可以提高系統和CPU整體的能效比(Mflop/W).
Intel SSE4指令集最早出現在45 nm Core 2處理器上(SSE4.1),憑借這一指令集,使處理器的多媒體性能較之65 nm產品提升了70%.Nehalem Core i7則配置了更新的SSE4指令集SSE4.2(如圖4所示),可大幅優化文本處理.

圖4 Nehalem SSE4.2指令集
SSE 4.1版本的指令集增加了47條指令,主要針對向量繪圖運算、3D游戲加速、視頻編碼加速及協同處理加速.在應用SSE4指令集后,45 nm Penryn核心額外提供了2個不同的32位向量整數乘法運算部件,同時在此基礎上還引入了8位無符號最小值和最大值以及16位、32位有符號和無符號的運算,能夠有效地改善編譯效率,并且提高了向量化整數和單精度運算的能力.此外,SSE4.1還改良了插入、提取、尋找、離散、跨步負載及存儲等動作,保證了向量運算的專一化.
測試表明,SSE4.1指令集的處理器比不配備此指令集的同檔次處理器的視頻編碼效能提高了70%.而SSE4.2指令集則將重點放在了文本處理上.Nehalem的SSE4.2指令集中的7條指令用途各不相同,有面向CRC-32和POP Counts的,也有特別針對XML的流式指令.特別地,SSE4.2指令集還可以將256條指令合并在一起執行,讓類似XML的工作性能大大提高.
高性能并行計算機[7-8]的結點組成離不開多核處理器,而目前一些新型多核處理器的性能又各不相同.因此,針對并行處理領域的特定需求,要想既追求并行計算機的運算性能,又達到節能目的,即盡可能地提高能效比(Mflop/W),就必需深入地對各型多核處理器進行了解.本文詳細介紹的Intel Nehalem Core i7多核處理器的微架構和關鍵技術,對在由該類處理器組成的并行系統上完成高效率的并行應用提供了幫助.
[1](美)奧魯克頓.片上多處理器結構:改善吞吐率和延遲的技術[M].汪東升等譯.北京:機械工業出版社,2008.
[2]Kai Hwang.Advanced Computer Architecture:Parallelism Scalability Programmability[M].New York:McGraw-Hill Inc,1993.
[3]Shameem Akhter,Jason Robert.Multi-core Programming:Increasing Performance Through Software Multi-threading[M].李寶峰,富弘毅,李韜譯.北京:電子工業出版社,2007.
[4]Core i7 QPI技術解密[EB/OL].[2011-08-30].http://wenku.baidu.com/view/63e77d160b4e767f5acfceae.html.
[5]Kahle J A,Day M N,Hofstee H P,e tal.Intruduction to the CELL Multiprocessor[J].IBM J.Res.Dev.,2005,49(4/5):590-605.
[6]郝文化,文自勇,王浩強,等.Windows多線程技術與實例[M].北京:中國水利水電出版社,2005.
[7]白中英,楊旭東.并行機體系結構(網絡版)[M].北京:科學出版社,2006.
[8]David E Culler,Jaswinder Pal Singh,Anoop Gupta.Parallel Computer Architecture:A Hardware/Software Approoach(Second Edition)[M].李曉明,錢德沛,程旭等譯.北京:機械工業出版社,2003.
Study on High Parallel Performance’s Intel Core i7 Mult-core Processor and Its Key Technologies
WANG Wen-yi,WANG Jie
(Institute of Parallel Processing Technology,Zhongyuan University of Technology,Zhengzhou 450007,Chnia)
The paper introduces the intel Nehalem multi-core processors’s composition of micro-architecture and it’s unique three-level cache model.At the same time,against two special requirements of parallel computer for calculating the performance(Gflops)and energy consumption ratio(Mflop/W),some key technologies used in the Nehalem Core i7 processors are introduced,such as Hyper-Threading,QPI bus,kernel speedup mode and SSE4.2 instruction set,etc.These technologies are necessary for efficient using parallel computer.
Nehalem micro-architecture;multi-threaded multi-core processors;hyper-threading technology;Quick Path Interconnect bus
TP391.7
A
10.3969/j.issn.1671-6906.2011.05.006
1671-6906(2011)05-0023-04
2011-09-16
河南省基礎與前沿技術研究計劃項目(082300410300)
王文義(1947-),男,河南洛陽人,教授.