x86和arm架構有何不同?

離朱2


一臺服務器、一臺電腦、一臺手機最重要的電子零部件是什麼?沒錯,就是CPU處理器。它主要負責數據計算、控制功能,是最核心的部分。不過你又知道有多少種CPU架構嗎?主流的X86、ARM到底有什麼區別?

下面就給大家介紹一下幾種常見的CPU架構:

X86

1978年6月8日,Intel發佈了史詩級的CPU處理器8086,由此X86架構傳奇正式拉開帷幕。首次為8086引入X86作為計算機語言的指令集,定義了一些基本使用規則,X86架構使用的是CISC複雜指令集。同時8086處理器的大獲成功也直接讓Intel成為了CPU巨頭,如果你對8086不是那麼熟悉,那麼一定聽過奔騰處理器吧?況且為了紀念8086K誕生40週年,今年Intel發佈了一顆紀念限量版的處理器Core i7-8086K,這你都聽說過吧?

圖片來自Intel官網

IA64(Intel Architecture 64,英特爾架構64)

哇,IA64聽起來好陌生,是的,雖然同出Intel之手。但這可以說是失敗品。當年X86過渡到64位指令集時,一個不小心被AMD彎道超車,最後只能聯合惠普推出了屬於自己的IA64指令集,但這也僅限於服務器上,也是Itanium安騰處理器的來歷(現在已經涼了)。

圖片來自x86-guide

至於IA64究竟是RISC還是CISC指令集的延續,這個真的很難說清楚,但單純以IA64基於HP的EPIC(Explicitly Parallel Instruction Computers,精確並行指令計算機)來看,似乎更偏向於RISC體系。

MIPS(Microprocessor without interlockedpipedstages,無內部互鎖流水級的微處理器)

圖片來自龍芯官網

PowerPC

PowerPC是有藍色巨人IBM聯合蘋果、摩托羅拉公司研發的一種基於RISC精簡指令集的CPU,PowerPC架構最大優點是靈活性非常好,核心數目靈活可變,因此在嵌入式設備上具有很高效益,可以針對服務器市場做超多核,針對掌機做雙核,因此它具有優異的性能、較低的能量損耗以及較低的散熱量。

圖片來自wikimedia

ARM(Advanced RISC Machine,進階精簡指令集機器)

ARM可以說是一個異軍突起的CPU架構,採用了RISC精簡指令集,而且ARM發展到今天,架構上非常靈活,可以根據面向應用場景不同使用不同設計的內核,因此可以廣泛用於嵌入式系統中,同時它高度節能的特性,目前各種移動設備中全都是它的身影。據統計,使用ARM架構的芯片年出貨量高達200億片,隨著物聯網時代降臨,對於低功耗性ARM芯片需求量會發生爆炸性增長。

圖片來自iFixit

CISC、RISC之爭

從上面得知,歷史的長河裡面,有過許許多多的CPU架構,它們之間的差異性非常大,經過時間、用戶的檢驗,我們平常所接觸到CPU架構也就剩X86和ARM兩者,按照最核心的不同可以被分為兩大類,即“複雜指令集”與“精簡指令集”系統,也就是經常看到的“CISC”與“RISC”。

要了解X86和ARM CPU架構,就得先了解CISC複雜指令集和RISC精簡指令集 ,因為它們第一個區別就是X86使用了複雜指令集(CISC),而後者使用精簡指令集(RISC)。造成他們使用不同該指令集的原因在於,面向的設備、對象、性能要求是不一樣。手機SoC普遍都是採用ARM提供的核心作為基礎,依據自身需求改變SoC的核心架構,而ARM正正是RISC精簡指令集的代表人物。CPU巨頭Intel、AMD所採用的X86架構已經沿用了數十年,是CISC複雜指令集的典型代表。

CISC複雜指令系統就是為了增強原有指令的功能,設置更為複雜的新指令實現部分大量重複的軟件功能的硬件化。由於早期的電腦主頻低、運行速度慢,為了提高運算速度,不得已將更多的複雜指令加入到指令系統中來提高電腦的處理效率,慢慢形成以桌面電腦為首的複雜指令系統計算機。其指令集也是在不斷更新增加當中,如Intel為X299平臺上的處理器增加了AVX 512指令集,目的就是為了提高某一方面的性能。

雖然CISC可以實現高性能CPU設計,但是設計起來就相當麻煩了,要保持龐大硬件設計正確是一件不容易的事情,還要確保性能有所提升,不能開倒車,因此桌面CPU研發時間也慢慢地變長。這時候,以ARM為首的一些RISC精簡指令系統計算機開始嶄露頭角了。

RISC可以說是從CISC中取其精華去其糟粕,簡化指令功能,讓指令的平均執行週期減少,達到提升計算機工作主頻的目的,同時引入大量通用寄存器減少不必要的讀寫過程,提高子程序執行速度,這樣一來程序運行時間縮短並且減少了尋址,提高了編譯效率,最終達到高性能目的。

這兩種指令集一直都在求同存異當中,都在追求在體系架構、操作運行、軟硬件、編譯時間以及運行時間等等諸多因素中做出某種平衡,以此達到當初所設計的高效運轉目的。

圖片來自新浪博客

功耗上的限制

就像我們以前所舉的例子,Core i7-8086K可以輕易跑出95W功耗,但像高通驍龍845這種最頂級的SoC也不過是5W,只有其1/19,主要是手機尺寸越來越小,電池容量、能量密度發展跟不上,手機所用ARM內核只能是低功耗。

一般來說,處理器的功耗可以隨著製造工藝的進步而降低,但近些年來,移動設備所採用的的SoC往往率先使用更小的納米工藝製程,比方說驍龍845的10nm,雖然裡面有取巧成分,但推進速度遠遠快於Intel的10nm工藝,加之SoC還會有對應的低功耗版本工藝,所以無論是設計上、還是工藝上的差別,都導致了ARM、X86功耗差異非常大。

大小核架構

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

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

bigLITTLE架構框架,圖片來自ARM官網

芯片設計廠商可以根據自己的需求,設計出有針對性的產品,比方說目前高通驍龍845、華為的麒麟970、聯發科Helio X30都是bigLITTLE架構,這樣的話如果你只是刷刷微博、朋友圈,那麼只需要動用小核心就能完成任務,玩《絕地求生》吃雞遊戲就可能大小核全開,從而保證性能、續航的平衡。

因此ARM的bigLITTLE異步多核架構非常值得參考,甚至傳聞稱英特爾將在第10代酷睿處理器Lakefield上使用這種技術,高性能大核是Ice lake(下一代Core),低功耗小核心則是Tremont(下一代Atom),因此在整體功耗上控制在35W以內,用於二合一筆記本上。

ARM、X86也能相互融合

之前我們在另一篇超能課堂《手機SoC與電腦的CPU性能究竟差多少?》就總結過,RISC、CISC各有各的優勢,目前兩者界限開始逐漸變得模糊,現代的CPU往往採用了CISC的外圍,而內部則加入了部分RISC的特性,這個也是Intel處理器的開始擁有RISC的典型例子。也就是說其實未來CPU發展方向之一就是融合CISC以及RISC,從軟件、硬件上取長補短,進一步提高處理器的並行性以及工藝水平。

X86、ARM在性能、功耗上各佔優勢,儘管ARM一直想進入高性能服務器市場上,但一直都是雷聲大雨點小,前不久想要挑戰intel服務器地位的高通,ARM服務器部門直接裁員50%,技術副總裁也不玩了;ARM處理器也期望能獲得X86處理器的高性能,以便能用在移動筆記本上,就像剛剛推出的高通驍龍835 Windows筆記本一樣,但評價、反映都是平平;Intel利用X86架構Atom做手機SoC,結果還是敗給了ARM,虧掉數十億美元,最終直接砍掉了這個項目,老老實實做X86處理器。

所以說ARM、X86都在各自領域站穩了腳跟,由於設計之初的理念不同,已經很難滲入對方的領域,只能說不斷嘗試,兩者之間的差異在將來可能會縮小,不斷借鑑改進。

圖片來自esa-automation


超能網


X86和arm是兩種完全不同的架構,此外還有MIPS(龍芯)、PowerPC等很多架構,要知道他們有什麼不同,你首先得明白什麼是架構,這裡先科普下。


說到指令集還得提到CISC(複雜指令集)和RISC(精簡指令集),X86是典型的複雜指令集(CISC),ARM則是典型的精簡指令集(RISC)。這兩類指令集有很大不同,執行效率也有區別。一般來說RISC的效率更高,功耗更好,CISC更全能,但是指令集也在不斷的演變,所以也不存在絕對的。


萌哈科技


x86是複雜指令集。ARM是精簡指令集。

所謂指令集,就是劃分一個區間,你的計算機能做的所有的事情都在這個區間之內了,當然,在這個區間之外的事情,你的計算機無論如何也無法完成。

這個區間是怎麼劃分的呢?我們小時候都學過數學吧,學過加減乘除四則運算吧?還學過代數幾何微分積分吧?

那麼簡單指令集,就相當於一個僅能進行加減乘除四則運算的CPU。

複雜指令集,就相當於一個不僅能進行四則運算,還能進行代數、幾何、微分、積分運算的CPU。


分享到:


相關文章: