這個問題可以擴展為:為什么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也不再是RISC精簡指令集了,指令越來越龐大,變種,派生出太多類型,還可以同時支持16位thumb,32位thumb-2,32位ARM指令,64位,不斷擴展的NEON,VFP,……等等。最后精簡指令集\nRISC與復雜指令集CISC的界限越來越模糊
其實并不省電,算能低罷了。指令集少。真的達到高負荷應用,arm卡死
是不是有點像機車和汽車發動機的差別。
日常應用ARM這種精簡指令集處理器夠用,但是大型軟體或者大數據處理,真的夠嗆。比如PS CAD這些軟體,ARM運行很卡很卡很卡。
精簡指令集的好處就是干通用計算很快,但是搞專業計算沒有復雜流水線的特殊指令,所以精簡指令跑一些小游戲沒問題,但是大型游戲的計算就不足了。舉例mysql的arm就比x86性能差了很遠
為什么巨型計算機不用arm
arm是華為的架構,比英特爾的要先進的多,最新的麒麟9000用的就是armA77,英特爾差的遠
Arm更多的受益于不用向前兼容的歷史負擔!并不是intel設計師不如arm的聰明,也不是risc全面吊打cisc
行動電話cpu跑45w功耗看到底有多省電
ARM只對功耗控制方便做的好,性能跟x86還是差很遠,桌面應用開多個窗口都不會卡頓,行動電話兩個窗口就有點受不了