為啥arm架構比x86 x64省電?

燒音箱


arm的通用計算市場建立在使用電池的移動設備上,節能是首要目的,所以現存的應用很節能,傳統意義上靠性能吃飯的程序(如各種生產力軟件,3A遊戲)就不會為這些平臺開發特定版本(或提供閹割版)。

x86建立在能源不緊缺的基礎上(持續接著電源線),而穩定的能源供應確保不需要為節能設置各種限制,以榨乾性能為最大需求,所以這才是生產力的根本不同的背景造就不同的市場,這不是 Intel做個低功耗的x86芯片就能決的問題,也不是 arm 芯片性能做強就能解決的問題。

ARM架構

ARM架構過去稱作進階精簡指令集機器(AdvancedRISCMachine,更早稱作:AcornRISCMachine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。由於節能的特點,ARM處理器非常適用於移動通訊領域,符合其主要設計目標為低耗電的特性。

在今日,ARM家族佔了所有32位嵌入式處理器75%的比例,使它成為佔全世界最多數的32位架構之一。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子遊戲,和計算機)到電腦外設(硬盤、桌上型路由器)甚至在導彈的彈載計算機等軍用設施中都有他的存在。在此還有一些基於ARM設計的派生產品,重要產品還包括Marvell的XScale架構和德州儀器的OMAP系列。

X86架構

目前的PC架構絕大多數都是Intel的X86架構,貌似也是因為INTEL的這個X86架構早就了目前INTEL如日中天的地位。X86架構(The X86 architecture)是微處理器執行的計算機語言指令集,指一個intel通用計算機系列的標準編號縮寫,也標識一套通用的計算機指令集合。

兩種架構各自使用的環境不同

X86和ARM在移動平臺和傳統平臺分道揚長的結局是必然的。他們的應用場景本來就不一樣,一個是計算密集型和高度兼容性的目標,一個是超低功耗和不考慮舊軟件兼容性的目標。除非有一天電池技術和半導體工藝有巨大進步,使得硬件上的成本能夠抵消兼容性帶來的影響,那麼X86走入千家萬戶的手機是比較現實的。

總的來說:基本上芯片的性能和功耗成正相關,省電了就別指望有多高的性能。


木易ai科技


這個問題可以擴展為:為什麼arm架構的芯片都那麼省電!


引言

最初的ARM架構被設計成即使是一個相對簡單的指令譯碼器,也能以架構允許的最大速度運行。

後來的ARM版本有稍微複雜一點的指令解碼邏輯,但是每條指令都是一個或兩個單詞長。

在x86架構上,指令可以是1字節長,也可以是14字節長。

在設計最初的x86架構時,指令是按順序執行的,而且每個指令都需要多個週期才能執行。

如果執行一條指令需要三個週期,那麼找到下一條指令的起始點也需要三個週期。

另一方面,現在人們很難忍受x86代碼運行得那麼慢了。


設計能夠快速運行x86指令的硬件是有可能的

20年前,你可能會認為複雜的指令解碼會限制x86的速度,但事實並非如此。

x86架構要求英特爾和其他芯片製造商,包括一些相當複雜的轉換和緩存邏輯,以便一段代碼第一次運行時,就轉換成易於解碼的形式。

如果代碼再次運行,則可以跳過轉換。可縱然是非常快的芯片,這些邏輯也消耗能量。

相對而言,許多低功耗ARM芯片的前端邏輯要少得多。

x86有這麼緩存轉換性能,arm比不上;可是,沒有了額外技能加身的x86,比arm要遜色的多。


說說功耗

在低功耗的應用中,ARM處理器一直是首選,現在仍然是首選。

比較功耗並不是一件簡單的事情。操作系統、RAM大小和類型、閃存和使用的接口等方面需要與處理器的影響分開。

然而,一般的規則是,ARM在關閉處理器和等待喚醒的模式和可能性方面非常強大。這種空閒模式是指操作系統正在運行,但只等待輸入(例如來自鼠標、鍵盤或應用程序的輸入)。

X86處理器的預期功耗大約為1瓦特。在i.MX6處理器的功耗將是這個數字的一半。

此外,ARM高端部分得益於少數狀態/模式,這些 狀態/模式 (states/modes)的功耗低至100mW,而不犧牲合理快速喚醒的可能性。

低功耗有許多優點。

手持式和電池供電的產品,將受益於增加電池壽命。做產品設計則可以使用更小的電池。由於需要更小的冷卻裝置,材料清單、BOM成本和產品尺寸可能會進一步減少。


寫在最後

天下武功,唯快不破!小而快而全的arm架構普及也得益於其自身設計上的權衡。

Happy coding :)


我是@程序員小助手,持續分享編程故事,歡迎關注。

程序員小助手


應用場景和商業目的決定了各自產品的特點:ARM面向移動設備,從來只是設計低功耗處理器;Intel面向桌面和服務器,向來關注點在超高性能。

商業目的和芯片的架構設計決定了ARM比x86的處理器,在能耗處理上更優。


CPU是什麼東東?

ARM和x86,通常都是指CPU的架構。

CPU(Central Processing Unit,縮寫:CPU),即中央處理器,是計算機(手機也可以理解為計算機)的核心部件,功能主要是解釋計算機指令以及處理計算機軟件中的數據。1970年以前,中央處理器由多個獨立單元構成,後來發展成為由集成電路製造的中央處理器,這些高度收縮的組件就是所謂的微處理器,主要由運算器、控制器、寄存器三部分組成。

CPU的主要運作原理,不論採用什麼架構,都遵循馮·諾伊曼結構設計。程序以一系列數字儲存在計算機存儲器中,CPU的運作原理可分為四個階段:提取、解碼、執行和寫回。

由於CPU發展經歷了太多的階段,太多的架構(ARM、X86、MIPS、PowerPC等),彼此差距都非常的大,但是從邏輯的角度可以分為兩大類:複雜指令集(CISC)和精簡指令集(RISC)。

ARM處理器

說起ARM有兩個含義:ARM公司和ARM架構處理器,ARM公司是一家英國的公司(已被軟銀收購),是全球領先的半導體知識產權(IP)提供商——只賣IP,不賣芯片。所以ARM(Advanced RISC Machine)架構處理器是ARM公司設計的處理器及附帶的相關技術及軟件。

ARM通常是用於為移動設備構建CPU的體系結構,所以它的特點是性價比高、耗能低。基於ARM(32位)的處理器採用RISC體系結構。大多數指令都很簡單,並在一個時鐘週期內執行。

ARM64處理器

業務的發展對CPU的處理能力提出了挑戰,為了提升性能,CPU的地址空間從32擴展到了64位,這樣可以提升性能,用以保存和處理更多的信息。ARM64只是對支持64位處理的ARM體系結構的擴展或發展。

ARMv8-A於2011年10月發佈,代表了ARM體系結構的根本變化。它增加了可選的64位體系結構,蘋果公司是第一個在消費類產品(iPhone 5S)中發佈ARMv8-A兼容內核(Apple A7)的公司。


x86處理器

1978年6月8日,Intel發佈了史詩級的CPU處理器8086,由此X86架構傳奇正式拉開帷幕。X86架構使用的是CISC複雜指令集。同時8086處理器的大獲成功也直接讓Intel成為了CPU巨頭。使用x86架構製造的處理器通常用於臺式機和筆記本電腦。即使是AMD,英特爾的競爭對手,也使用Intel的x86和x64(x86體系結構的64位版本)體系結構來創建其CPU。x86處理器上的指令大多很複雜。因此,它們佔用多個CPU週期來執行每個指令。


是什麼使基於ARM的芯片具有相對較高的電源效率和較低的功耗

雖然處理器的功耗還取決於許多其他因素,例如緩存,總線寬度等,但是ARM處理器總體佔優。Intel i7處理器平均發熱率為45瓦。基於ARM的片上系統的發熱率最大瞬間峰值大約是3瓦,約為Intel i7處理器的1/15。

以下設計功能使ARM處理器具有比x86處理器更高的性能優勢:它們更慢,更小,花費更多的時間在睡眠中,並且沒有很多遺留的支持。

(1)它們的速度較慢:由於低功率操作通常比性能更重要,因此可以使用低速晶體管,從而改善漏電流並降低最低電壓。儘管使用的製造技術落後於現代x86一代或兩代,但結果是功耗明顯降低。

(2)它們更小:使用的晶體管更少,部分原因是ARM是精簡指令集計算(RISC)架構。這意味著大型操作將以小的,簡單的塊進行處理,但要付出更多的機器代碼。這意味著ARM具有較少的一次性部件,這些部件在不使用時會消耗功率,並且體積更小/成本更低。

(3)低功耗睡眠模式:ARM處理器採用無時鐘的內核設計。處理器通過停止內核直到收到執行某項操作的指令來節省功耗。目前,X86僅支持降低核心頻率以在較低電壓下運行,並關閉處理器的外圍部件。

(4)指令執行方式:指令集簡單,通用,最小限度,並且可能會保持這種狀態;擴展指令集是通過與類似內存進行交互的協處理器完成的。

(5)採用了更多的寄存器:ARM擁有更多的寄存器,還具有加載指令,該指令可以一次將多個值加載到多個寄存器中。同時因為ARM在一條指令中比傳統的RISC指令集執行的功能要多得多,從而提供了良好的指令高速緩存命中率,並在提取指令時節省了功率。

(6)大小核架構:從前的X86傳統CPU,如果是四核或者是雙核,內部的四個、兩個核心都是一模一樣的,這樣的話,由於一旦軟件只能調度一個核心,處於高頻工作,但由於架構限制,其餘核心也要保持同樣的高頻率和高電壓狀態,這樣就浪費了大量的能量在做無用功。後來才發展出了異步多核,允許不同核心工作在不同頻率上,以此換來更低功耗。

由於移動設備更加在意功耗,所以ARM採用了更加激進的做法,八個核裡面允許有不同Cortex-A架構核心,那就是著名的ARM big LITTLE。這樣的大小核設計目的很明確,就是在有限的電池容量中,兼顧性能、續航的需求,因此SoC內部的CPU是採用異構計算,既有高性能大核心,也有低功耗小核心。


最後

ARM和X86架構孰優孰劣,一直以來紛爭不斷,X86無法做到ARM的功耗,而ARM也無法做到X86的性能。公平地說,過去英特爾的不斷努力,通過推動製造低功率晶體管的新技術的開發以及採用類似RISC的內核設計,已經實現了巨大的效率提升,下一代x86和ARM處理器的功耗差異將越來越小。

處理器的選擇取決於應用程序要求和預期的性能水平。雖然英特爾已經失去了移動市場,但是未來5G的物聯網市場呢?我們拭目以待吧。


以上是我的淺薄之見,歡迎指正,謝謝!


分享到:


相關文章: