產品介紹
Intel的NetBurst並不是一個成功的架構,儘管Intel在設計Pentium 4之初,目標是10GHz核心頻率。但事實證明目標難以完成。工程師難以在提升頻率的同時,將發熱量控制到一個合理的範圍。因此,Intel宣稱NetBurst產品頻率不提升到4GHz以上。畢竟誰都不想坐在一個“火爐”旁邊,誰都不想聽到嗡嗡作響的風扇聲音。
NetBurst架構的高發熱量和高能耗,不僅讓Intel手足無措,也給一些希望購買Intel產品的消費者當頭一擊。但Intel現在產品線中還是有好產品。儘管Pentium III早已退出了桌面市場,但它在移動市場很快又找到了新的位置,而現在移動市場中的Intel處理器就都是基於和Pentium III相似的架構,只不過採用了更先進的生產工藝和其他一些改進,實現了比Pentium III更小的發熱量和更高的總體性能,Pentium III在移動市場獲得重生,被命名為—Pentium M。
儘管採用了Pentium III相關的架構,不過Pentium M使用的卻是QPB 4倍前端匯流排,這個匯流排和Pentium 4的匯流排是一樣的,同時也為Pentium M通過轉接卡在Pentium 4普通主機板上面使用提供了理論基礎。華碩的工程師所開發出來的專用於Pentium M的轉接卡就實現了這個功能。
Pentium M處理器到底和其他的處理器架構上面有何不同?Intel一直都沒有過多的談論這款產品的架構。在所有發布的官方文檔中,對其性能指標和命名方法的描述也只是隻言片語,如:為移動電腦設計的架構,專用的堆疊管理,微操作融合技術(micro-ops fusion),以及增強的Intel SpeedStep技術(EIST)。但是這些描述並不能夠將Pentium M的內部架構表述清楚。看來Intel好像並不想透露太過關於Pentium M的細節信息,這裡面一定是有原因的,是什麼呢?
其實Pentium M根本就是根據P6架構作出的小幅修改而成的產品,P6架構是Intel很早以前所開發出來的架構,最早曾被用於Pentium Pro,後來Pentium II,Pentium III都使用的是這個架構。那么Pentium M看起來更像是廣告鋪天蓋地的NetBurst架構的一種倒退喔?當然不是,你不能僅將Pentium M看作是一款過時的,已經不合時宜老架構。
其實在實際的評測中,Pentium M在很多項目上得分都超過了Pentium 4。而P6架構也是Intel開發的最優秀,最成功的一款架構,僅僅從它在市場中存在的時間,以及所衍生出來的產品數量就可知一二。既然如此,同樣使用此架構的Pentium M為什麼就不能夠繼續實現其輝煌呢?現在就讓我們來看看,相比於Pentium III,Pentium M所作出的具體改進有哪些?
管線和核心
Pentium M和Pentium III一樣,都是基於RISC架構(精簡指令集架構)的處理器,不過兩款處理器的執行核心有稍有不同。例如:雖然兩款處理器都只有5個執行單元,但是兩款處理器的執行管線長度是不一樣的。Pentium III的整數管線長度為10級,而Pentium M的管線要更長些。當然Pentium M的管線長度尚遠遠不及Pentium 4,畢竟需要保證Pentium M處理器的執行效率,但是為了今後能夠進一步提升處理器的頻率,Intel的工程師還是增加了管線長度。
管線長度決定頻率提升的潛力,同時會為處理器帶來更多的能耗和發熱量,因此管線長度的選定,對移動處理器來說尤其重要。因此通過一些使用經驗數據判斷,該處理器的管線大約在12-14級左右,也就是說要比Pentium III的管線長一點點。新增加的管線級數,除了用來推升處理器的時鐘頻率外,在Pentium M處理器中的微操作融合技術也需要更長的管線。這一點將在後文中提及。
較長管線的缺點還頗多,在帶來了更高能耗和更多發熱量的同時,還會帶來因為分支預測失敗後的更多花銷。尤其對於現在的超標量體系結構且擁有亂序執行能力的處理器而言,分支預測失敗所帶來的負面影響不容忽視,而且已經成為影響處理器性能的重要因素。在研發過程中,開發人員都會儘可能降低因為增加執行管線級數而帶來的這種影響,那么現在就讓我們來看看,Pentium M中是如何改進分支預測單元的。
技術改進
當處理器中的管線開始全速運轉,突然發生執行了一個錯誤的程式分支,那么處理器就要重新查找執行正確的分支,這個過程中,一部分執行單元會出於空閒狀態,執行的延遲增加,進一步影響了最終的性能。分支預測邏輯的目的就是為了將這種情況出現的幾率最小化。在Pentium M中,分支預測邏輯是主要的改進部分。事實上,Pentium M的分支運測和Pentium 4的很相象。
準確的說,Pentium M的分支預測單元應該和Prescott核心的Pentium 4處理器相似。它增加了兩個部分:一個是識別循環,另一個是預測間接分支。正因為如此,Pentium M中的分支預測和Prescott之前的Pentium 4有明顯的不同,而且要比它們更加先進。當然,要想進一步將原本基於使用分支歷史表的傳統靜態分支預測方式改進的更好,難度非常大。但是通過下面幾個方面的分支預測單元的改進,Intel的工程師將Pentium M的預測精度整整提高了20%,當然這是和Pentium III相比。
第一個改進就是增加了循環識別邏輯。傳統的靜態分支預測方式,分支預測的循環結束條件老是出錯。當然能夠通過擴大存儲分支信息的快取器容量,使其存儲更多的分支信息,然後分析其中的數據來解決問題。但是這樣一一的分析數據會造成很長的延遲。所以Pentium M使用了稍微不同的方法,將代碼中的循環識別邏輯和循環結論信息獨立開來。這樣能夠極大的提升結束循環的條件預測精度。
第二個就是改進間接分支預測。所謂間接分支就是一個分支的分支地址,這個地址在程式編譯時是不知道的,而且是程式執行時,由相關暫存器的狀態來決定的。傳統的靜態分支預測使用兩個表:分支歷史表和分支地址表,這有這兩個表而缺少間接分支地址表,讓預測的結果正確率不超過75%。因此開發人員在Pentium M中,新添加了一個間接分支表,專門用來存儲這類型的間接分支地址。
經過上面兩方面的改進之後,由於預測精度大為提高,管線全速運行的情況比以前多了,執行單元空閒等待的情況也變少了。正因為這樣,同頻率下的Pentium M整體性能比Pentium III高了大約7%。而且隨著分支預測單元的改進,Pentium M也更新了硬體數據預取邏輯,用於從記憶體中將數據取到快取中去。Pentium M採用了和prescott核心Pentium 4處理器相類似的硬體數據預取算法,這種算法要比Pentium III的算法效率更高。
Pentium M和Pentium III、Pentium 4都一樣,是RISC處理器。這意味著執行單元在處理內部簡化命令的時候,遠比處理複雜的x86指令更有效率。換句話說,也就是在執行RISC指令的時候,要比執行通常由三個甚至更多運算元所組成的x86架構更快捷流暢。因此,x86命令在經過解碼器之後,通常會被分解成兩個甚至三個微運算元。
例如:一個存儲數據到記憶體或一個處理記憶體中數據的命令,被分別解碼成兩個指令。第一種情況,由計算地址和存儲數據到緩衝器兩個指令所組成;第二種情況,由從記憶體中讀取數據和運算元據兩個指令所組成。而現在的處理器都具備亂序執行微運算元的能力,因此一條x86指令被分解成多個微運算元之後,能夠分別送到執行管線中被處理。
如果這些微操作彼此之間無關,那么分開執行起來自然沒有什麼問題。但如果一個指令的執行需要另外一個的執行結果,那么管線就會出現等待現象,等待執行單元將處理完成的結果傳送過來,然後才能夠繼續處理。這種等待現象在NetBurst架構中並不明顯,因為它有很多執行單元,不過對於Pentium M這類型的處理器而言,性能的影響就相當明顯了,而且等待狀態下的處理器繼續浪費能源,這點對於移動處理器來說也是不可接受的。這也是為什麼Pentium M處理器要加入微操作融合技術的原因,它能夠儘可能避免出現執行單元處於空閒狀態這一情形。
這項技術的工作非常簡單,就是根據相關性將x86指令劃分成一些部分,然後通過解碼器將所有的微操作都集中到一起,然後通過之前確定的相關性劃分微操作,從而形成x86指令的子集,有相關性的微操作被劃分在一起,由同一個執行單元執行,而不同執行單元所執行的微操作彼此是無關的。因此不會再出現等待某執行單元的執行結果的情況。雖然微操作融合需要多做一些工作,不過這對於性能提升是有好處的。通過測試,使用這項技術能夠讓整數數據的處理速度提升5%,浮點數據的處理速度提升9%。
堆疊管理器
Pentium M中的另一項改進就是堆疊管理器。由於軟體使用堆疊非常頻繁,有其是當其調用子程式時更是如此。讓執行單元頻繁處理PUSH,POP,CALL和RET這樣的關於堆疊操作的指令,讓執行單元時鐘處於運行狀態,這不利於處理器控制發熱量和能耗。因此Pentium M中的專用堆疊管理器和堆疊指針暫存器一起工作,堆疊管理器能夠識別,像PUSH,POP,CALL和RET這樣的指令,在它們經過解碼器,但到達執行單元以前預處理它們,從而降低執行單元的負載。能夠在提升性能的同時,進一步控制發熱量和能耗。根據測試表明,使用專用堆疊管理器能夠減少整數執行單元5%的指令執行數量。
處理器匯流排
儘管Pentium M使用基於Pentium III的架構,但Pentium M採用了完全不同的匯流排。P6架構的系統匯流排峰值頻寬僅為1GB/s,這對於現在的標準來說太小了。同樣考慮到可能傳統的匯流排不太適合現在的套用,因此Intel工程師決定讓Pentium M使用Quad Pumped Bus匯流排。這種匯流排正是Pentium 4的匯流排標準。
事實上,QPB匯流排也是Pentium M和Pentium 4唯一的相似之處。如果細加分析的話,兩者的匯流排架構還是有一些細微的區別,Pentium M的QPB匯流排缺少一些功能。例如:最顯著的特點就是Pentium 4的系統匯流排時800MHz,而Pentium M之後533MHz;然後Pentium M的系統匯流排只支持32位定址,也就是說最多僅支持4GB的記憶體空間。最後Pentium M的匯流排不支持多處理器配置。不過這些差異之處都不太重要,反而是Pentium M和Pentium 4在匯流排之間的兼容,才奠定了移動處理器在桌面電腦中套用的基礎。
指令集
所有的Pentium M處理器都支持SSE和SSE2擴展指令集。因此這也是Pentium M針對Pentium III的一次升級。不過Pentium M並不支持SSE3指令集,畢竟這是在Prescott核心處理器上第一次採用的指令,推出的時間要比Pentium M處理器更晚。
節能措施
Pentium M配備有非常大的L2快取,容量達到2MB。使用大快取有許多好處,例如能夠減少系統匯流排和記憶體匯流排的負荷,達到降低能耗的作用。不過更為特別的一點是,Intel為Pentium M處理器本身也使用了特殊的節省能耗的方法。和Intel其他的處理器一樣,Pentium M中的快取是8路相關,並且將L2快取被進一步細分為4個部分,每一個部分都可以被獨自訪問。
也就是說,處理器在工作時,不需要讀取一個快取也運轉整個快取。因此這樣節省的L2能耗大約為4倍。不過採用這種方式L2快取的延遲會增加1個周期,如果於Pentium III相比的話。另外Pentium M的L1快取為64KB,其中代碼和數據容量各為32KB,是Pentium III L1快取容量的兩倍。
節能技術
因為Pentium M是移動處理器,那么自然會有專門的節能技術,Pentium M中的節能技術是speedstep III。根據使用中的經驗來看,處理器的能耗和處理器的頻率,處理器的工作量,以及處理器大電壓息息相關。換句話說,要想降低處理器的能耗,就要從這三個方面入手。
因此開發人員設定在處理器工作量較小的時候,通過降低工作頻率和電壓就可以減少處理器能耗。例如:處理器在處理辦公軟體的時候,就不是100%負載,而這也是大多數筆記本電腦最常見的套用。因此處理器能夠自動下調頻率和電壓,這一過程十分平滑,不會讓使用者有絲毫察覺。這就是speedstep技術的主要任務。
在Pentium III-M的第一代speedstep中,只提供了兩個處理器模式:全速模式和節能模式。當電池電量低於某一個級別或處理器空閒時,就會進入節能模式。在Pentium 4-M處理器中,採用了第二代speedstep,能夠自動在三種模式中轉化。在這一代中,節能模式和全速模式之間的性能差異巨大,這依賴於處理器的工作量。
而且工作在節能模式下的處理器,一旦CPU的工作量突然加大或者用戶執行了一個大型程式,那么處理器難以快速的提升性能和轉換狀態,從而使CPU的整體性能收到影響。在Pentium M處理器中的speedstep技術已歷三代,能夠提供7種不同的狀態,能夠根據處理器的工作量自動降低頻率和電壓,而且不同模式之間的轉化迅速,不會給用戶帶來絲毫察覺
現在市面上的Pentium M處理器都基於Dothan核心。處理器核心採用90納米製造工藝和“應變矽”技術,Dothan核心的製造工藝和Prescott核心Pentium 4處理器是一樣的。處理器核心面積為83.6平方毫米,內部含有1億4千萬個電晶體。
通過下表能夠直觀的比較Dothan核心的Pentium M處理器和Pentium 4的差別: