興迪資訊科技有限公司

New Design Information Technologies Ltd.

IBM Power6與安騰走上了同一(yī)道
來源: | 作者:pro46dade | 發布時間: 2016-12-19 | 811 次浏覽 | 分(fēn)享到:

Power6這個特立獨行的架構爲了提高時鍾頻率,從無序執行改爲有序執行。從有序技術到無序技術

直到大(dà)約15年前,大(dà)多數CPU一(yī)次隻能處理一(yī)條指令。那時,如果采用流水線設計,譬如摩托羅拉68040或者英特爾80486,那麽可以同時在不同執行階段處理不同的條指令。

到了1991年和1992年,出現了MIPS R4000、Alpha 21064和奔騰這些處理器,它們屬于面向通用市場的第一(yī)批“超标量”處理器:每個CPU周期可以處理(讀取、執行及退出)兩條指令。

後來1995年出現了Alpha 21164,我(wǒ)(wǒ)們就有了每個周期能處理四條指令的第一(yī)個CPU,時鍾頻率達到300MHz,這個速度在當時十分(fēn)驚人。Alpha21664在微處理器論壇上一(yī)亮相,就引來了台下(xià)觀衆一(yī)片贊歎,其中(zhōng)包括英特爾和IBM的設計者,更不用說設計Sun SPARC的設計者了。遺憾的是,Alpha最後沒有成功。

不管怎樣,所有這些廠商(shāng)當時采用了有條不紊的有序技術(In Order):程序指令流程執行時,按順序讀取、執行及引退操作碼,每次執行兩條或者四條指令。

現在,不同指令需要不同的執行資源,而且程序流程往往是這樣:執行需要等資源被釋放(fàng)出來,或者指令依賴性(dependency)得到解決,才能繼續執行下(xià)一(yī)條指令。更糟的是,每出現新一(yī)代CPU,就需要重新編譯代碼,針對新CPU進行優化,不然讀/寫指令之間很可能會出現太多氣泡(bubble)即空閑時間,導緻性能提升幅度不大(dà),與競争産品相比優勢也不大(dà)。

這時候,無序執行(out of order execution)出場了。CPU硬件本身在讀取指令後重新安排指令的執行順序,根據現有資源情況,提供更多的執行單元、重新命名寄存器、處理好指令依賴性等等。所以,Pentium Pro和Alpha 21264之後的幾乎所有新款CPU都是采用無序執行的處理器。

在多數情況下(xià),無序執行可以加快芯片的運行速度,有時候加速明顯。21264的速度就是21164的将近兩倍,而Pentium Pro的速度也比奔騰快了一(yī)大(dà)截。經過重大(dà)改進的最新MIPS架構R10000也采用了無序執行。


從安騰到Power6

無序執行一(yī)直風閘發良好,直到後來英特爾推出了一(yī)種全新的技術。意義重大(dà)的安騰處理器擁有真正獨一(yī)無二的引擎,并使用了重要的顯式并行指令計算(EPIC)技術。先不說安騰處理器的超過100種的指令格式組合、龐大(dà)的慢(màn)速寄存器組等,它實際上重新采用了有序執行技術。所以,編譯器不得不完成所有工(gōng)作,以确保執行單元始終處于忙碌狀态。除了浮點處理密集型應用外(wài),做到這一(yī)點并非易事,隻要看看安騰系統的基準測試結果就會明白(bái)。

在後續的發展中(zhōng),安騰架構的這以做法從來沒有變過。相反,Sun一(yī)度改用了富士通公司使用無序技術的SPARC64,而不是它自己的使用有序技術的UltraSparc IV。其他的重要架構如X86則繼續采用無序技術,使用了Core 2和K10等新引擎,并進一(yī)步改進了這種方案,以便充分(fēn)利用每MHz。

如果你出于某種原因而需要AIX,那麽Power的重要性就不言而喻了。Power4和Power5都是高速、但複雜的采用無序技術的RISC機器,它結合了四路超标量執行機制和非常高的系統帶寬。不過,Power6卻回到了有序技術時代。原因何在?

一(yī)個答案就是,如果Power6的同步多線程效果好,那麽對單一(yī)線程浪費執行資源就不用太擔心:在這種情況下(xià),隻要同步運行兩個線程就行。另外(wài),爲了進一(yī)步大(dà)幅提升性能,頻率提高一(yī)倍、二級高速緩存增加一(yī)倍、縮短算術邏輯單元(ALU)的延遲等方面恐怕更要緊。即使那樣,浮點處理部件還剩有一(yī)定的無序功能――這是通用處理器中(zhōng)首次引入十進制浮點處理單元(FPU) “同步雙線程執行、負荷預測機制以及增強的數據和指令預取功能,提升了有序執行超标量核心的性能。”IBM就是這麽評價其新芯片的。

Power5+的五路無序執行被Power6的七路有序執行所取代,但即使如此,也有幾個地方要注意:Power5+一(yī)個線程每個周期最多隻有五條指令,而Power6一(yī)個線程增加了二條指令,這對計算型線程和内存搜尋型線程組合來說更有優勢。Power5+更關注内部資源,而Power6在大(dà)部分(fēn)時候等待内存,所以每個周期兩次操作完全夠了。那麽性能方面有什麽提升呢?看一(yī)下(xià)基準測試specfp2006,頻率爲2.2GHz的Power5+在這方面能達到14.9,當然是在經過改動的Power5機器上實現的;而頻率爲4.7GHz的Power6能達到22.3,時鍾頻率提高了一(yī)倍多,性能提升卻不到一(yī)半。

所以,Power6的7.9億個晶體管分(fēn)布在尺寸比較大(dà)的341平方毫米上,超過了Barcelona/Agena的283平方毫米,僅比尺寸龐大(dà)的安騰小(xiǎo)了一(yī)點,它确實大(dà)幅提升了性能,盡管沒有了無序技術。雖然高速緩存和内存帶寬随着時鍾頻率的提高都水漲船高,但是仍然可以說,在時鍾頻率相同情況下(xià),重新使用有序技術會在處理單線程任務時導緻性能下(xià)降30%左右。

爲此,我(wǒ)(wǒ)們不得不等待更新的Power6系統以及下(xià)一(yī)版本AIX在編譯器方面的進展,以減少這種性能損耗。不過對Power6來說,采用有序技術确實明顯提升了處理器的性能。安騰同樣采用有序技術,但是至少到現在還沒有看到明顯的成效。X86恐怕再也不會出現有序技術。

不過,處理器技術的發展一(yī)日千裏,Power6設計者不會坐井觀天。再過一(yī)段時間,英特爾公司的3.6GHz的Harpertown“Penryn”和AMD公司3GHz Barcelona處理器就會陸續面試,都會對IBM Power6構成重大(dà)挑戰。IBM還必須牢記:對采用有序技術的這類處理器而言,随着每一(yī)代後續CPU的問世,在編譯器方面需要做的工(gōng)作更多。同時,并不是每個人都會有時間重新編譯自己的應用程序。