目前高性能晶元的主流依然是X86,但是除了移動端,目前伺服器端也湧現出了許多ARM平台的伺服器,例如華為的鯤鵬920,蘋果在A12X、A12Z晶元上的成功更是使其產生了發布搭載自研Mac晶元的平台的野心。目前看來如果ARM架構在PC平台取得成功那麼將會擁抱移動端龐大的軟體生態,其前景是非常好的。那麼從技術上來看,ARM架構有無可能產生一批高性能桌面處理器呢?類似目前的Intel處理器一樣的可拆卸式處理器。
早就有了。你大概是不知道 ThunderX2(不過 Marvell 棄坑了,ThunderX3 團隊直接解散 Orz)、Ampere Altra(這玩意一個 80 核)和 AWS 的 Graviton,這都是正經上伺服器的 CPU。
ps. x86 真正的核心優勢是標準化、向下兼容和不積極控制生態,因此廠商之間可以充分競爭,提高性能降低售價。ARM 是完全有能力複製這些的。
當然可能。最簡單的辦法,就是把一個x86 CPU前端的解碼單元,從對x86解碼改成對ARM指令的解碼。
當然,還要在一些細節上稍微調整一下,例如執行單元補全執行arm指令的單元、寄存器,取指單元要針對arm的定長指令改一下。這樣實現出來的CPU,基本上和原來的x86 CPU性能沒有太明顯的差異——前提是執行相類似的指令,如果是執行AVX這樣的SIMD指令,目前ARM的NEON目前只有128bit,x86上AVX最寬的已經是512bit了,要獲得同等的最高吞吐性能,SIMD執行單元數量要增加到4倍,或者新增512bit的NEON指令。
事實上,業界已經有高性能的ARM CPU,例如世界排名第一的超算——富岳用的就是15萬多個A64FX CPU,單個CPU是48+4核心。雖然核心數量不如x64的EPYC 7742,但支持512位SIMD指令,吞吐性能也不差。亞馬遜雲也有採用第二代Graviton,單個CPU 64內核功耗僅僅105W,SPEC INT06-Rate成績1300+,比很多x86 CPU都高得多。
ARM64(官方名是aarch64)指令集是設計的很好的指令集,拋棄了和ARM32指令的兼容性,很多地方是重新設計的,吸收了其他指令集設計的優點。ARM64指令集相對AMD64指令集的效率是要更高的,解碼電路更好設計,解碼電路的實現更簡單,需要的邏輯門更少,佔用的晶元面積更小,功耗更低,且解碼的指令帶寬要更高。
所以當ARM64指令集的CPU的微架構設計與實現和AMD64指令集的CPU的可以相比時,且物理後端的優化,晶元工廠的製造工藝可達到的性能也可以和AMD64指令集的CPU可以相比時。ARM64指令集的CPU的性能是不會比AMD64指令集的CPU的差的,甚至可能是更好。
君不見Apple的ARM64指令集的A12Z的性能已經非常不錯了,如果放開功耗限制,A14X會有更好的性能。性能功耗比上比AMD64指令集的CPU要好多了。另外其他答案提到其他ARM的CPU也是不錯的。
指令集設計的好,對CPU的性能提高是有很大的好處的。除了前面提到的解碼電路更簡單,解碼效率(指令帶寬)更高。還有就是編譯器更好優化,能生成更高效率的指令。更短的指令字可以讓生成的程序佔用的空間更少,這樣可以更好的利用指令緩存,減少因緩存命中失敗造成的性能下降。
近年來逐漸火熱的Risc-V就是非常優秀的指令集,比ARM64指令集設計的還要更好,而且Risc-V 64和Risc-V 32是兼容的。另外其向量擴展的指令集設計是非常的優秀,其中重要的特點就是可變寬的向量寬度設計,可以動態的指定參與計算的向量的寬度,極大的減少了指令個數,不象X86的AVX指令,128位一套指令,256位一套指令,512位一套指令,指令多且難以記憶,讓人極其蛋疼。另外,在非向量寬度的倍數的數據處理時,X86的AVX指令集和ARM的Neon指令集往往需要在向量處理的循環後再加上一段非向量處理的循環用於處理尾部數據,而Risc-V的向量指令集則不需要,其向量處理的循環中會自然的處理尾部數據。
所以,採用ARM64指令集的CPU是完全可能發展出媲美X86架構的高性能晶元的,甚至會更好。
20年前,你說要想讓x86架構做高性能場景,是要被笑話的。當時我供職的企業,想要推動一個新方案用x86的伺服器替代現有基於小型機的伺服器體系,存在極大的阻力。五年都沒有完全搞定。
所以你看,x86指令集根本不存在天生的先進性。只不過酷睿橫空出世,給了intel黃金十年,該架構高性能低能耗,其他指令集的代表作相比之下都有不小差距,逐漸在伺服器端獲取了大量的份額。
知乎2012年曾經有個問題問arm能不能取代x86成為桌面處理器,我當時的回答是現在不能。
不過2013-2018年這六年,基本上x86陣營是荒廢了,而arm陣營則飛速發展,已經有趕上x86的可能性。現在的局勢看,arm要做出高性能處理器並不是不可能。——最大的難題還是操作系統以及對應的生態,沒有這個生態,就無法反哺arm高性能桌面處理器的研發。依然只能是局限在移動領域吧。
計算機歷史上有過很多指令集。
x86當年屬於屌絲級別。
IBM的大型機Z系列用的指令集是高大上的。
DEC小型機的ALPHA是高大上的。
SGI用的MIPS,當年都比X86高貴。
高性能的地方,沒有人用X86,桌面的廉價玩具指令集。
當年有很多RISC優於CISC的理論,甚至認為X86搞高性能有問題。
但是,X86從奔騰PRO開始,一步步成長,到了Athlon64之後,支持64位大內存,多路並行,再發展出集群。
反而是各種高性能的工作站,小型機被淘汰了。
X86從桌面上升到伺服器,乃至超級計算機。
arm從移動領域開始,也是逐步擴展,發展出高性能微架構。
現在ARM也上超算了。
蘋果開始用到筆記本電腦上。
蘋果A系列處理器的IPC已經超過桌面X86處理器。
未來幾年,出現性能比X86更強的ARM桌面處理器很正常。
只是生態系統不行,不一定有人做。
需求各有不同. HPC/Server/Workstation/Gaming/Common Use(就當上網吧), 側重的需求不一樣.
就比如鯤鵬920, ARMv8.2, 只能單層虛擬化, 跑點簡單的業務還可以, 但是跑 HPC 沒有足夠的 SIMD, 跑 Workstaion 同時受制於單核性能, SIMD 和奇葩的緩存設計.