產品介紹
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的差別: