▼點(diǎn)擊下方名片,關(guān)注公眾號(hào)▼
我們?cè)陂_始分享今天的內(nèi)容之前,先思考一下,
為什么 Intel 會(huì)做行業(yè)第一?因?yàn)樗姓莆粘杀窘Y(jié)構(gòu)的 IDM 模式,有符合摩爾定律的 Tick-Tock 策略,這些都對(duì)。但除此之外,還有一個(gè)非常重要的因素。
那就是Intel掌握了x86指令集。想想為什么 AMD 能與 Intel 常年競爭?AMD 甚至在瀕臨破產(chǎn)的邊緣,連總部大樓都賣了還能起死回生,重新來個(gè) AMD YES?就是因?yàn)?AMD 和 Intel 分享了 x86 的指令集。專欄里講硬件的內(nèi)容偏多,今天,我們就聊聊指令集。其實(shí)如果要把指令集講清楚,估計(jì)能開設(shè)一個(gè)新的專欄,這里我把它作為拓展閱讀,就簡單聊聊
ARM 和
RISC-V 這兩個(gè)在業(yè)內(nèi)比較有話題性的指令集吧。
先來說說定義,什么叫指令集呢?業(yè)界泰斗、ACM 和 IEEE 兩院院士、2017 年圖靈獎(jiǎng)得主、 RISC-V 基金會(huì)的董事會(huì)副主席 David Patterson 給了非常
通俗易懂的定義:軟件通過一個(gè)專業(yè)詞匯上稱為指令集的東西和硬件講話。換句話說,
指令集是軟硬件之間溝通的橋梁。如果在晶體管、集成電路和摩爾定律之外,再給一個(gè)重點(diǎn)概念,那就是指令集了。可能你平時(shí)看新聞,看 ISA、架構(gòu)、指令集這些詞都混在一起用,覺得有些疑惑,其實(shí)ISA=指令集=架構(gòu),都是一個(gè)意思。而實(shí)現(xiàn)了一個(gè)指令集的CPU叫微架構(gòu)。我給你舉個(gè)例子,ARMv,這是一個(gè)指令集,也是一個(gè)架構(gòu)版本。
ARM 的 Cortex-A72 處理器,就是一個(gè)實(shí)現(xiàn)了ARMv8 指令集的具體 CPU,是一個(gè)微架構(gòu)。
ARM 的 Cortex-A72 是一個(gè)支持 ARMv8 指令集的 CPU IP,就是一堆 RTL 代碼。瑞芯微的 RK3399 芯片就是一個(gè)集成了2個(gè) Cortex- A72 之后的芯片,是一個(gè)物理體,這個(gè)芯片支持 ARMv8 指令集。凡是支持 ARMv8 的軟件,都可以在 RK3399 上運(yùn)行。當(dāng)我們說ARM的時(shí)候,我們不太關(guān)注這個(gè)擁有 6000 員工,總部在英國但被軟銀收購后已經(jīng)成為一家日本公司的企業(yè)故事,或者是在網(wǎng)上可以公開看到的那本 5000 多頁的 [ARMv8指令集手冊(cè)]。我們更多提到的是硬件側(cè)高通的驍龍、聯(lián)發(fā)科的天璣、華為的麒麟、三星的 Galaxy、AWS 的 Graviton、蘋果的全家桶,和軟件側(cè)的 Android、iOS、Red Hat、Ubuntu、SUSE、麒麟 OS,等等,
它們都在 ARM 的生態(tài)系統(tǒng)里。我們關(guān)注的是整個(gè) ARM 生態(tài)系統(tǒng)。類似的,我們?cè)谡f x86 的時(shí)候,也不僅僅指的是 Intel 和 AMD ,還有在 x86 生態(tài)系統(tǒng)里的微軟、Linux、Oracle、SAP 等等。但是
x86,并不是一個(gè)公開授權(quán)的指令集,雖然并不僅僅有 Intel 和 AMD 兩家,但是對(duì)于新入局者來說,做 x86 指令集的機(jī)會(huì)幾乎微乎其微。相對(duì)來說,ARM 和 RISC-V 都是開放授權(quán)的指令集。
- ARM 是商業(yè)授權(quán)指令集;
- RISC-V 是開源的指令集。
至于 CPU 核,也就是微架構(gòu),兩家都是商業(yè)授權(quán)模式,就是要付費(fèi)的。2017年,以微處理器分析聞名的行業(yè)分析公司 Linley Group 在一次 RISC-V 會(huì)議上做開場主題演講時(shí)展示過一頁最受歡迎的指令集,如果按照支持不同指令集的 CPU 個(gè)數(shù)來看,ARM 是最多的,從餅圖上看,這是壓倒性的優(yōu)勢。但是如果按照營收來算,x86 因?yàn)楦邌蝺r(jià)(ASP,平均銷售價(jià)格)是最賺錢的指令集。也就是說目前這兩個(gè)最流行的指令集,一個(gè)賺了錢場,一個(gè)賺了人場。當(dāng)年 Intel 推出 x86 指令集的時(shí)候,已是萬人大廠,還拿下了 PC 這個(gè)關(guān)鍵市場,而彼時(shí)微軟才剛剛創(chuàng)立,不足 10 人,因此這是一個(gè)先建硬件再建軟件的歷程。而 ARM 是靠著自己的
靈活授權(quán)模式,搭著當(dāng)年
德州儀器的大船殺入到手機(jī)市場,并在功能機(jī)年代拿下手機(jī)這個(gè)關(guān)鍵市場的。然后先有諾基亞的手機(jī)操作系統(tǒng)塞班,然后再有的 Android。在移動(dòng)互聯(lián)網(wǎng)時(shí)代,ARM 也是運(yùn)氣好,Intel 沒有答應(yīng)蘋果的定制要求,因此蘋果就選了 ARM這個(gè)現(xiàn)成的 CPU IP,也采用了既有的指令集,再搭建 iOS 系統(tǒng)。
因此 ARM 趕上的是硬件統(tǒng)一,軟件分裂,然后對(duì)齊到硬件上的過程。那么開始于 2010 年的 RISC-V 呢?我推薦你讀一下中國科學(xué)院計(jì)算技術(shù)研究所包云崗老師的解讀和介紹。包老師團(tuán)隊(duì)翻譯了 RISC-V 手冊(cè),副標(biāo)題是《一本開源指令集的指南》。在這里我就簡單從我的角度聊聊 RISC-V。RISC-V 誕生于美國 UC Berkeley 大學(xué),最初是個(gè)開放為教學(xué)服務(wù)的指令集。但 RISC-V 因?yàn)橛兄?、高效、低能耗、模塊化、可拓展、免費(fèi)開放、無歷史負(fù)累低效指令等優(yōu)勢,很快就出圈了,因此 RISC-V 團(tuán)隊(duì)在認(rèn)識(shí)到它的價(jià)值之后,就決定將之推出市場進(jìn)行商業(yè)化探索。RISC-V 架構(gòu)秉承簡單的設(shè)計(jì)哲學(xué),完全拋棄歷史包袱,從輕上路,借助計(jì)算機(jī)體系結(jié)構(gòu),經(jīng)過多年的發(fā)展已經(jīng)成為比較成熟的技術(shù)。RISC-V 基礎(chǔ)指令集則只有 40 多條,加上其他的模塊化擴(kuò)展指令總共幾十條指令。RISC-V 的規(guī)范文檔僅有 145 頁,而“特權(quán)架構(gòu)文檔”這樣重要的內(nèi)容,篇幅也僅為91頁。如果說 ARM 借助IP授權(quán)的商業(yè)模式,降低了 CPU 設(shè)計(jì)難度,讓信息技術(shù)世界進(jìn)入泛處理器時(shí)代,那么 RISC-V 就是以免費(fèi)開放的開源指令集模式,降低了 CPU IP的設(shè)計(jì)門檻,讓芯片行業(yè)進(jìn)入到一個(gè)滿是 CPU IP 的時(shí)代。RISC-V 目前已經(jīng)有 200 多家成員,你可以看這張大廠logo 云集圖片,這張圖來自 RISC-V 基金會(huì)。
不過所有的技術(shù)或者商業(yè)模式優(yōu)勢,最終還是要轉(zhuǎn)化成商業(yè)成功。目前所有參與 RISC-V 的企業(yè),其實(shí)還是小公司居多,或者是大公司的小項(xiàng)目有涉及,還沒有特別賺錢的。
那什么算是商業(yè)成功呢?依據(jù)我的經(jīng)驗(yàn)以及總結(jié)
ARM 成功的歷史,我列了三條 RISC-V 作為指令集的成功標(biāo)志:
- 最新工藝的 SoC 量產(chǎn)
- 有軟件支持的里程碑
- 支持殺手級(jí)應(yīng)用或者說核心市場的 25% 市場份額
我覺得達(dá)到任意一個(gè)即可,當(dāng)然最終肯定都會(huì)有,但是成功的起點(diǎn)是拿下其中之一。看到這里,你如果對(duì)RISC-V仍然感興趣,我建議你去讀一下 John Hennessy 和 David Patterson 這兩位圖靈獎(jiǎng)獲得者,在 2019 年發(fā)表的文章《計(jì)算機(jī)架構(gòu)的新黃金時(shí)代》(中文版(吳進(jìn):2018年圖靈講座:計(jì)算機(jī)體系結(jié)構(gòu)的黃金時(shí)代),你可能會(huì)對(duì)
RISC-V 有一個(gè)全新的認(rèn)識(shí)。如果把它當(dāng)通用 CPU,它生得晚了,可是如果把它當(dāng)作領(lǐng)域?qū)S眉軜?gòu) DSA(Domain Specific Architecture),這種模塊化的設(shè)計(jì),非常有價(jià)值,而且它是先立標(biāo)準(zhǔn)、開源開放,這樣碎片化的生態(tài)累積起來更靈活更高效,反而更有機(jī)會(huì)做大。但是我想說生態(tài)始終還是要統(tǒng)一的,要有人掌握靈活和標(biāo)準(zhǔn)之間的平衡,否則軟件投資無法得到保障,最終還是一盤散沙。最后,我用一張 1992 年微處理器論壇的老照片作為結(jié)尾。指令集并不算一個(gè)特別有技術(shù)難度的項(xiàng)目,1960 年代,IBM 的每臺(tái)計(jì)算機(jī)都有自己的指令集和工具。1992 年,那張圖上也是有滿滿的指令集。都說我們芯片這行做公司容易死,但其實(shí)圖里的公司,還是剩下了大半,而指令集就剩下兩個(gè)了。
計(jì)算機(jī)指令集的發(fā)展,是“長坡滾雪球”,要有核心,不能碎,或者說生態(tài)不能分裂,還要持續(xù)穩(wěn)定地不停地滾動(dòng),即保持演進(jìn),與時(shí)俱進(jìn)。當(dāng)然還要這個(gè)“坡”夠長夠大,才有后期的如雪山壓頂之勢,拿到容量夠大的核心市場。最后,我還想聊聊一些題外話,我不知道你在看網(wǎng)上一些信息的時(shí)候會(huì)不會(huì)完全相信別人說的,我是不會(huì)。我們現(xiàn)在看到的一些文章,有相當(dāng)一部分是某些公司宣傳部門寫的通稿,并不能直接代表真實(shí)情況。因此,一般我在閱讀的時(shí)候,是會(huì)先看一下文章來源和作者背景的。我也是普通人,在一些理解上也會(huì)加我自己的想法,因此你可以再從開篇詞里了解一下我,再確定給我加什么樣的糾偏系數(shù)。
來源:內(nèi)容來自「知乎」,作者:邵巍,謝謝。
—— The End?——推薦好文??點(diǎn)擊藍(lán)色字體即可跳轉(zhuǎn)??優(yōu)雅地用宏實(shí)現(xiàn)環(huán)形緩沖區(qū)??函數(shù)指針,這6點(diǎn)你學(xué)會(huì)了嗎???如何通俗易懂地學(xué)習(xí)網(wǎng)絡(luò)協(xié)議???你真的知道C語言里extern "C" 的作用嗎?歡迎轉(zhuǎn)發(fā)、留言、點(diǎn)贊、分享給你的朋友,感謝您的支持!長按識(shí)別二維碼關(guān)注我
你點(diǎn)的每個(gè)好看,我都認(rèn)真當(dāng)成了喜歡