資安

初心迥異 | ARM和X86的系統架構差異分析(篇一)

作者 | 衍雲

本週項目組有探討到ARM和X86的架構最大差異點是什麼?

差異很可能在最早的時候就已經確定了,那就是他們的初“心”(體系架構)。

ARM和X86之間的體系架構分歧明顯,架構的各自優點也確定了它們各自在市場中的地位。而如今處理器的底層技術卻又不斷的在融合,市場也出現了交集。

曾經的兩條平行線,如今終於要交叉,面臨廝殺。現在ARM讓IntelX86感到了壓力,但是螳螂捕蟬黃雀在後,新出來的RISV-V卻又讓ARM難受很多。

本系列分析這三者體系架構差異和具體處理器微架構之間的差異,也是《國產處理器的架構現狀和演進》續,也是又一次探討和進一步拋磚,那麼讓“初心”開始,也迴歸技術的初心。

PS:ARM架構和優化專題:
https://www.atatech.org/specials/698?spm=ata.13269424.0.0.83c15f857Fk0zv

本系列涉及的面比較多,有些點到為止,有些則有細化討論。都是在週末連續的大塊時間中素材提煉和文字整理的,信息量個人感覺還有挺多,建議同學們進行收藏,茶餘飯後慢慢看。

初心迥異——篇一

處理器(Central Processing Unit)本身其主要由運算器、控制器、寄存器三部分組成,完成程序控制、操作控制、時間控制、數據加工,所有設備都圍繞它展開。大邏輯上其實非常簡單,但細化開來確是那麼的複雜,其主要組成部分如下圖所示。
image.png
正如很多疑難問題,從頂層設計向下看底層的時候可以抽象的相對簡單,但是當立足底層視角的時候,總會碰到一些難題。

上篇中,我們先來看看ARM和Intel,他們的迥異初心。

ARM

ARM公司最早是由赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry在1978年創立(早期全稱是 Acorn RISC Machine)。最早ARM公司在爭取英國BBC教育項目中,尋找Intel與其286處理器合作,但是被Intel拒絕, 這間接導致了早期的ARM公司開始自主研發RISC(當然得益於BSD的RISC的研究) 芯片。

不過,ARM公司實現第一枚硅片(Acorn RISC Machine),被同年Intel 386吊打。意外的是,雖然性能差了點意思,但是芯片功耗很低(是386功耗的1/20),這樣誤打誤撞從此就走入了移動市場。

1990年蘋果(2000年後蘋果公司通過出售該股票渡過了蘋果的財務危機)等入資Acorn公司,接著改名為現在的ARM公司(Advanced RISC Machine),也開始進行IP授權。授權模式是三種:處理器、POP和架構授權。處理器授權只能調整功率和功耗,POP則是定製性能優化版本,架構授權則是授權廠商使用自己的架構設計處理器(高通/蘋果/華為),當然華為目前是沒有拿到ARMv9架構的授權的。
image.png
其實在97年之前ARM也不算不上一帆風順,直到諾基亞6110(1997年上市產品)用上ARM芯片,這才讓ARM和諾基亞一飛沖天。繼而,2007年的iphone上市,及08年的android手機上市等都採用的ARM處理器,終於完成了蛻變,擁有了今天的地位。

ARM公司的初心,基於精簡指令集(RISC)架構,定位於嵌入式,輕量級、目的單一明確的程序,在移動設備上得心應手。因為指令集數量少,從而可簡化硬件邏輯的設計,減少晶體管數量,也減少了功耗,形成了一個市場閉環。

在之前的移動環境下,例如平板、ipad、智能手機。應用程序,相對邏輯簡單功能單一,“計算”較少(現在也正在發現變化,移動端的應用在不斷的複雜化)。

當前ARM公司的產品演化了幾個大系列:

系列 場景 備註
Cortex-A 最佳功率下的卓越性能 華為鯤鵬自研核,和該系列比較近
Cortex-R 可靠的關鍵任務性能
Cortex-M 最節能的嵌入式設備
Neoverse 可擴展且靈活的雲到邊緣基礎架構 安培處理器的核是基於Neoverse N1原生核
SecurCore 物理安全應用程序的解決方案
Ethos 機器學習推理的場景

Cortex-A主要面向手機平板市場,看重能效比。Neoverse-N主打服務器、網絡市場,要求更高的性能和更高的可靠性。Neoverse N1面向高性能設備,是平臺名稱,與之對應的CPU核心架構名稱也是Neoverse N1處理器。平臺包含處理器、總線、多核心繫統等。Neoverse N1和相對應的處理器代表了ARM首款專為服務器和基礎設施市場設計的專用IP,面向消費市場以Cortex為主,面向行業客戶則由Neoverse披掛上陣。安培服務器就是基於Neoverse N1核的。

當前最新的基於ARMv8-a微架構處理器是A78。下圖比較老,但是比較直觀。
image.png
這幾年Arm成功地兌現了其所有性能、效率和麵積承諾,為大多數手機旗艦設備提供了一些出色的SoC和器件。2018年Cortex-A76的推出以及隨後產生的華為麒麟980以及Snap dragon 855芯片。2019年推出Cortex-A77。目前Arm的發展趨勢,每一代Arm的系列CPU都將帶來持續穩定的20-25%的性能提升。當然目前Arm真正的競爭對手是蘋果的CPU設計團隊:今年iphone 12應該是會採用5nm的A14,保持著巨大的性能和效率領先優勢,可能是領先了兩代微架構。

去年(2019)6月ARM發佈了下一代架構設計方案其中包括:Cortex-A77 CPU/Mali-G77 GPU/ARM ML處理器。而今年的微架構就已經到A78了。

目前最新的ARM是cortex-a78微架構處理器,採用了5nm,不過規模上市預計在2022年。相比a77在性能和功耗上具有提升,如下圖。
image.png

Intel

從1978年Intel發佈一款新型的微處理器“8086”(16位)開始。Intel蹭著IBM的PC機大賣,一票走紅,創造了一個PC處理器的時代(IBM當時也為了防止Intel壟斷要求Intel授權給第二家公司可製造8086處理器,那就是AMD)。8086這塊處理器也意味著x86架構的誕生,而x86也成為了一個特定的CISC計算機指令集,定義了芯片的基本使用規則。由於IBM PC機大賣,隨後的各大廠家爭紛開發IBM PC兼容機(都要求使用Intel處理器),以及Intel 386從16位到32位的提升,進一步為Intel處理器的起飛推波助瀾。後來Intel與微軟聯盟組成Wintel,相互綁定(狼狽為奸)(PC處理器和PC操作系統,直到2011年微軟才宣佈支持ARM)。所以從開始,Intel就是在PC機市場。
image.png
所以,Intel x86從開始就定位於PC機,應用多是計算密集型的,如多媒體、科研計算、模擬等(在1999年市值突破了5000億美金,當然沒有一家企業是順風順水的,在Intel 奔騰四(高頻、高壓、高功耗)年代(2005年+),基本是被AMD的速龍XP摁在地上打,而且後來的奔騰四雙核為了追進度也是直接是膠水雙核,就是將兩個DIE直接封裝在一起,沒有專用總線,成為其歷史上最愚蠢的決定之一)。從2006年的酷睿架構開始搭載筆記本電腦,Intel才開始再次的騰飛,並開始甩開AMD。

X86處理器的高效執行一直是Intel發展道路上的追求目標。另外,X86是複雜指令集(CISC)架構,本身存在很多機器指令,可以高效地完成一項專門任務(比如MMX, SSE中的指令)。

當然CISC架構也會使得硬件的邏輯複雜,晶體管數量龐大。為了進一步高效地進行運算,x86架構會有較長的流水線以達到指令級並行(ILP),而長流水線也會帶來了弊端,當遇到分支時,如果預載入分支指令不是未來真實的分支,那麼要清空整個流水。因此,x86有引入了複雜的分支預測機構,來確保流水線的效率。再加上多級cache,超線程、虛擬化等等技術,使得x86的複雜度越來越高,而向後兼容性也使得Intel歷史包袱越來越大。

另外,AMD也會通過X86指令集的創新來反逼Intel,迫使Intel x86進行改變。而激烈的市場競爭也會不斷的促進的處理器微架構升級,例如核顯。從Sandy Bridge開始酷睿增加了核顯,而且面積超大如下圖。
image.png
而在服務器市場主要是至強系列(從1998年就開始命名服務器市場的至強處理器),不可置疑的是,通過幾十年的技術積累,x86服務器在服務器領域的地位已經獨孤求敗,而Intel 處理器也成為了PC處理器的代名詞。
image.png
下篇ARM和X86的狹路相逢

Leave a Reply

Your email address will not be published. Required fields are marked *