1. 程式人生 > >ARM和X86功耗差別的深層原因探討

ARM和X86功耗差別的深層原因探討

   ARM和X86功耗的差別一直是個很熱的話題.ARM可以做的很低,甚至1瓦都不到.而X86伺服器的晶片可以達到100-200瓦,就算是嵌入式處理器Atom系列也需要幾瓦.很多人說這是指令集的關係.ARM採用精簡指令集,X86採用複雜指令集,前者每條功能簡單,單挑指令耗電低.而後者每條指令複雜,單個指令耗電高.但是這種解釋很模糊.如果大家都做同樣的事情,完成一個大功能,精簡指令集需要指令較多,而複雜指令集需要指令少,加起來到底誰耗電多呢.還有,現在處理器普遍採用微指令,大的指令會被拆分成更小的指令,以達到更高的流水線效率.簡單指令集的單條微指令和複雜指令集的單條微指令相比的話,情況就更復雜.我手頭沒有關於比較的具體資料,但是至少前文所列出關於功耗和指令集相關的解釋不是很有說服力.

    今天碰到一個資深人士,總算找到一個比較合理的解釋.

    首先,功耗和工藝製程相關. ARM的處理器,不管是哪家,主要是靠臺積電等專業製造商生產的.而Intel的是自己的工廠製造的.一般來說後者比前者的工藝領先一代,也就是2-3年.如果同樣的設計,造出來的處理器因該是Intel的更緊湊,比如一個是22納米,一個是28納米,同樣功能肯定是22納米的耗電更少.

    那為什麼反而ARM的比X86耗電少得多呢.這就和另外一個因素相關了,那就是設計.

    設計又分為前端和後端設計,前端設計體現了處理器的構架,精簡指令集和複雜指令集的區別是通過前端設計體現的.後端設計處理電壓,時鐘等問題,是耗電的直接因素.

    先說下後端怎麼影響耗電的.我們都學過,電晶體耗電主要兩個原因,一個是動態功耗,一個是漏電功耗.動態功耗是指電晶體在輸入電壓切換的時候產生的耗電,而所有的邏輯功能的0/1切換,歸根結底都是時鐘訊號的切換.如果時鐘訊號保持不變,那麼這部分的功耗就為0.這就是所謂的門控時鐘(Clock Gating).而漏電功耗可以通過關掉某個模組的電源來控制(Power Gating).當然,其中任何一項都會使得時鐘和電源所控制的模組無法工作.他們的區別在於,門控時鐘的恢復時間較短,而電源控制的時間較長.此外,如果條單條指令使用多個模組的功能,在恢復功能的時候,並不是最慢的那個模組的時間,而可能是幾個模組時間相加,因為這牽涉到一個上電次序(Power Sequence)的問題,也就是恢復工作時候模組間是有先後次序的,不遵照這個次序,就無法恢復.而遵照這個次序,就會使得總恢復時間很長.所以在後端這塊,可以得到一個結論,為了省電,可以關閉一些暫時不會用到的處理器模組.但是也不能輕易的關閉,否則一旦需要,恢復的話會讓完成某個指令的時間會很長,總體效能顯然降低.此外,子模組的門控時鐘和電源開關通常是設計電路時就決定的,對於作業系統是透明的,無法通過軟體來優化.

    再來看前端.ARM的處理器有個特點,就是亂序執行能力不如X86.換句話說,就是使用者在使用電腦的時候,他的操作是隨機的,無法預測的,造成了指令也無法預測.X86為了增強對這種情況下的處理能力,加強了亂序指令的執行.此外,X86還增強了單核的多執行緒能力.這樣做的缺點就是,無法很有效的關閉和恢復處理器子模組,因為一旦關閉,恢復起來就很慢,從而造成低效能.為了保持高效能,就不得不讓大部分的模組都保持開啟, 並且時鐘也保持切換.這樣做的直接後果就是耗電高.而ARM的指令強在確定次序的執行,並且依靠多核而不是單核多執行緒來執行.這樣容易保持子模組和時鐘訊號的關閉,顯然就更省電.

    此外,在作業系統這個級別,個人電腦上通常會開很多執行緒,而移動平臺通常會做優化,只保持必要的執行緒.這樣使得耗電差距進一步加大.當然,如果X86用在移動平臺,肯定也會因為執行緒少而省電.凌動系列(ATOM)專門為這些特性做了優化,在一定程度上降低亂序執行和多執行緒的處理能力,從而達到省電.

    此外,現在移動處理器都是片上系統(SoC)結構,也就是說,處理器之外,圖形,視訊,音訊,網路等功能都在一個晶片裡.這些模組的開啟與關閉就容易預測的多,並且可以通過軟體來控制.這樣,整體功耗就更加取決於軟體和製造工藝而不是處理機結構.在這點上,X86的處理器佔優勢,因為Intel的工藝有很大優勢,而軟體優化只要去做肯定就可以做到.

   以上原因我覺得較好的解釋了ARM和X86的功耗差別.

   現在看看趨勢.

    Intel現在積極推進電晶體工藝革新,簡化前端設計,所以功耗劣勢會逐步減低.再有,隨著工藝的進一步發展,以後的移動裝置主要功耗會轉移到外部裝置而非處理器.比如記憶體,顯示屏,通訊模組等.這樣,效能會變的越來越重要.不過Intel有個難以跨越的鴻溝,就是成本,為了保持高利潤,就算可以降低也不會願意降低.等到不得不靠降成本維生的那一天,說明技術優勢不復存在,公司也快走到頭了,只能轉型依靠服務和平臺來掙錢.這點可以參照思科和華為的競爭史.大膽預測,如果2013之後人類仍舊存在,移動處理器會逐漸分為兩個市場,低端ARM把持,高階Intel獨佔.

 

轉自CSDN移動平臺-