從架構上分析,為什麼X86架構比ARM更難實現低功耗?

lu331707405


首先你要知道的是,X86架構和ARM架構的主要差距在於指令集方面,X86是複雜指令集結構,它存在很多機器指令,從設計角度來看就是為了高效完成一項專門任務而設計的,比如MMX和SSE中的指令。因此X86架構的任務處理能力先天強大,但是設計也更為複雜,僅僅是分支預測結構和長流水線的要求,就導致了X86架構CPU不管是在面積還是功耗支出上都要大於精簡指令集的ARM架構,更別說多級緩存和超線程技術的加入了。

剛才說了,ARM架構天生屬於精簡指令集,使用的晶體管數量非常少,而手機等移動平臺對計算性能的要求也較為簡單,所以ARM架構的流水線、分支預測等硬件邏輯都比較簡單。同時因為手機等移動設備對續航能力要求很高,所以大部分ARM芯片在電源管理上都下了很大功夫,比如現在流行的大核心+小核心的設計,當核心閒置時就會關掉核心來省電。

所以說從底層架構來說,ARM架構天生就能做的比X86架構省電很多,而X86架構本來就是面向桌面電腦和服務器的,所以對功耗和電源管理要求並不高,曾經英特爾也嘗試製造X86架構的ATOM芯片,結果不管是性能還是功耗兩邊都不討好;而高通也嘗試做PC端的ARM芯片,但是實際性能和兼容性表現也不盡人意。


嘟嘟聊數碼


x86是CISC架構,單個指令集成了複雜的微指令,指令集內容更加豐富,可以實現很多功能,並且強調了將多個短指令集成到一個長指令中的應用方式。這種指令集架構意味著硬件需要使用更多的結構來處理這種指令轉換,以及對每一個微指令設計其實現。

ARM是RISC指令集,由ARM開發,指令集採用標準長度指令,每次執行一個操作,不進行操作合併。因此每個短指令都會有標準化後的元件來實現,元件設計相對簡單,功耗減小。當然無法實現x86等同的計算性能和靈活性,但是對於移動設備來說,ARM指令集的性能已經可以滿足,並且功耗滿足用戶需求。


榻榻米的榻榻


指令集最終由邏輯電路實現,指令集越複雜電路越複雜,晶體管越多,功耗越大。

比如兩種指令集,一種只有一條ADD加法指令。一種有兩條指令ADD 和乘法指令MUL。雖然這兩種指令集都能運算2X2=4這個結果,前一種指令集要藉助編譯器把乘法分解成加法,後一種直接由硬件乘法器完成運算。很顯然,後一種功耗要高於前一種,因為多了乘法器電路,但運算速度更快了。

ARM是精簡指令集CPU結構比X86簡單得多,功耗自然就要低得多,性能當然也要差很多。