最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【知乎】 為啥arm架構(gòu)比x86 x64省電?

2023-10-30 02:09 作者:小林家的垃圾王R  | 我要投稿

?為啥arm架構(gòu)比x86 x64省電?


木頭龍


開了個新專欄,收錄些老回答

GreatPie、dumplingpro、嗜金水狙等人贊同

反對?

@昌維

?的高贊答。x86的兼容性負(fù)擔(dān)是很重沒錯,但這并非ARM省電的原因。


如果生產(chǎn)工藝相同,頻率相同的兩個CPU,功耗的由參與計算的晶體管數(shù)量決定。今天的CPU,以Intel的Skylake架構(gòu)為例,單個核心(不含LLC)晶體管數(shù)量大概在150M左右,而x86的幾個里程碑產(chǎn)品,晶體管數(shù)量分別是:

  • 8086:29K[1]

  • 80386:275K[2]

  • P5:3.1M-4.5M(P55C)[3]

所謂的兼容性負(fù)擔(dān),也就是早期使用現(xiàn)在幾乎不用的指令,基本是P5之前已經(jīng)出現(xiàn),而且386之前占大部分,整個CPU才這么點晶體管,這幾個指令才用了幾個?另外80386以及之前的CPU都是不帶FPU的,實現(xiàn)FPU消耗的晶體管更多。今天的CPU,整數(shù)指令的執(zhí)行單元消耗的晶體管,大概占不到2%,具體到這些因為兼容性而保留下來的指令的實現(xiàn)部分,真沒有幾個。


此外今天CPU的功耗控制粒度非常細(xì),每個指令的實現(xiàn)電路的晶體管,在沒有對應(yīng)指令執(zhí)行時消耗的功耗完全可以忽略。從這個角度來說,這些老舊指令的實現(xiàn)并不會影響CPU功耗,即便在執(zhí)行對應(yīng)指令時,因為都是早期的16位指令和極個別32位指令,功耗比流行的64位整數(shù)/浮點指令、128-512位的SIMD指令更低。

正面回答一下題目:

ARM架構(gòu)不一定比x86省電。


嚴(yán)格來說,ARM和x86都是指令集架構(gòu),說白了就是硬件和軟件之間的接口定義,本身并沒有功耗一說。而即便是具體實現(xiàn)這些指令集的CPU微架構(gòu),不同的微架構(gòu)CPU的功耗,或者相同微架構(gòu)但使用不同生產(chǎn)工藝生產(chǎn)的CPU,甚至同一個CPU設(shè)定了不同的工作頻率,功耗都是不同的。一定要說ARM和x86兩種指令集對于功耗的影響,也就是x86是變長指令,解碼單元的實現(xiàn)需要消耗更多的晶體管而已。但反過來,因為x86是變長指令,指令更緊湊,大量指令吞吐時,F(xiàn)ETCH單元的負(fù)載要比ARM低一些。


x86和ARM相對比較接近的兩個微架構(gòu),是Cortex-A77和AMD的Zen2,雖然細(xì)節(jié)上有很多差異,但都是取指、譯碼、調(diào)度、執(zhí)行、回寫幾個大模塊,最核心的執(zhí)行單元部分都是整數(shù)、浮點、LS分離,整數(shù)部分都是4ALU,浮點都是2個SIMD單元。


同樣是臺積電7nm工藝,AMD的3990X,64核心滿載,頻率3.46GHz。Core耗電197W,平均單個核心3.078W;整體耗電279W,平均單個核心4.36W[4]。而2.845GHz的驍龍865,跑單線程的SPECfp2006,功耗是3.06W[5]。按照功耗和頻率的立方成正比關(guān)系,假設(shè)3990X和865一樣以2.845GHz運行,3990X單個核心功耗1.711W,整體平均2.423W。這樣算下來x86的3990比ARM的865更省電。性能方面,如果直接按照頻率和SPEC2006得分計算的話,2.845GHz的865略強(qiáng)于單核睿頻最高4.7GHz的同樣是Zen2架構(gòu)的3950X,大概是整數(shù)高10%,浮點高5%,但功耗比3990X高25%。


當(dāng)然,這樣計算相當(dāng)不嚴(yán)謹(jǐn),因為除了核心外的部分,3990X是四通道DDR4,64個核心共享;而865跑SPEC是單個核心獨占LPDDR5。但反過來,3990X的設(shè)計還需要考慮核心睿頻到4.35GHz時候運行,使用了19級流水線;而865不超過3GHz,只用了13級流水線。


事實上,ARM在移動端因為電池容量無法做到高頻,服務(wù)器端不少場合更看重Throughput性能也可以用低主頻換取更低的功耗來容納更多的核心;而x86大量的桌面應(yīng)用更看重響應(yīng)時間而不得不犧牲功耗來換取高頻,所以給大家的印象就是x86更耗電而已。這是生態(tài)問題,而不是指令集架構(gòu)問題。


此外,ARM天才的大小核設(shè)計,在處理一些簡單任務(wù)以及待機(jī)時功耗更低,對于使用電池的移動設(shè)備來說可以大幅延長續(xù)航時間,這才是微軟Surface X使用ARM CPU最重要的原因——也因此Intel也在學(xué)習(xí)模仿,已經(jīng)流出的消息中LakeField、Alder Lake都是大小核搭配的架構(gòu)。


參考

  1. ^WiKi:Intel 8086?https://en.wikipedia.org/wiki/Intel_8086

  2. ^WiKi:Intel 80386?https://en.wikipedia.org/wiki/Intel_80386

  3. ^WiKi:P5 (microarchitecture)?https://en.wikipedia.org/wiki/P5_(microarchitecture)

  4. ^AnandTech: The 64 Core Threadripper 3990X CPU Review?https://www.anandtech.com/show/15483/amd-threadripper-3990x-review/2

  5. ^Anandtech:The Snapdragon 865 Performance Preview?https://www.anandtech.com/show/15207/the-snapdragon-865-performance-preview-setting-the-stage-for-flagship-android-2020/2


編輯于 2020-06-05 16:28


【知乎】 為啥arm架構(gòu)比x86 x64省電?的評論 (共 條)

分享到微博請遵守國家法律
桓仁| 萨嘎县| 策勒县| 义乌市| 洛浦县| 东方市| 都匀市| 东兰县| 柘城县| 平邑县| 雅江县| 东安县| 体育| 南和县| 仁化县| 北安市| 江达县| 义马市| 南丹县| 天峨县| 谢通门县| 太康县| 九龙坡区| 城市| 遵化市| 黎平县| 慈利县| 安仁县| 汕尾市| 太仆寺旗| 马公市| 中宁县| 新泰市| 循化| 嘉禾县| 沿河| 灌阳县| 加查县| 化德县| 黄陵县| 华池县|