加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 復(fù)雜指令集VS精簡指令集
    • RISC-V與ARM的誕生
    • RISC-V VS ARM
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

都是精簡指令集,RISC-V拿什么挑戰(zhàn)ARM?

2023/01/12
3993
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

我們指揮電腦工作,不能簡單的和電腦說:“嘿,幫我運(yùn)行個(gè)程序。”因?yàn)?a class="article-link" target="_blank" href="/tag/%E8%AE%A1%E7%AE%97%E6%9C%BA/">計(jì)算機(jī)只能理解0和1組成的指令(機(jī)器語言),難道人類要想操作電腦就需要輸入成千上萬的0和1嗎?稍微了解編程的朋友知道,使用編程語言讓電腦輸出“hello,world”只需要一行簡單代碼:

printf (“hello,worldn”);? ?//c語言描述

print(hello,world)? ?#Python語音描述

這就比只有0和1的命令簡單明了的多。事實(shí)上當(dāng)計(jì)算機(jī)運(yùn)行這行代碼時(shí),CPU收到的依舊是只有0和1的命令串,這中間的變化,就是指令集(ISA)與編程語言(匯編+高級)共同幫我們翻譯的,指令集則是最接近機(jī)器語言的“翻譯官”。簡單的說,指令集就是一串串二進(jìn)制機(jī)器語言的合集,用來描述這些二進(jìn)制指令的語言叫做匯編語言,后來又出現(xiàn)了許多編譯器和高級語言來幫助程序員更方便的編程。本文將要講到的RISC-V與ARM都是指令集的一種。

Add Immediate指令(二進(jìn)制機(jī)器語言) ?圖源:維基百科

要想設(shè)計(jì)一個(gè)處理器,第一步就需要確定這這顆處理器使用的指令集是什么。指令集決定了這顆芯片在工作時(shí)具體的計(jì)算方式,芯片上數(shù)量眾多又復(fù)雜晶體管其實(shí)就是將指令集用電路固定下來。

總而言之,指令集對芯片來說十分重要,它能直接決定芯片的電路布局方式,是每一種新型的CPU在設(shè)計(jì)時(shí)就規(guī)定的一系列與硬件電路相配合的指令系統(tǒng)。而指令集的先進(jìn)與否,也關(guān)系到CPU的性能發(fā)揮,它也是CPU性能體現(xiàn)的一個(gè)重要標(biāo)志。

目前指令集也分為兩類,精簡指令集和復(fù)雜指令集,但它們的區(qū)別并不是二進(jìn)制命令的長短。

 

復(fù)雜指令集VS精簡指令集

指令集剛誕生時(shí)較為繁瑣,人們通過優(yōu)化將部分指令打包在一起,再把一些原來由軟件實(shí)現(xiàn)的、常用的功能改用硬件的指令系統(tǒng)實(shí)現(xiàn),以此來提高計(jì)算機(jī)的執(zhí)行速度,這種指令集稱為復(fù)雜指令集(Complex Instruction Set Computer,CISC)。在復(fù)雜指令集中,存儲器讀取、存儲和計(jì)算操作往往全部集中于單一指令中。復(fù)雜指令集的特點(diǎn)是指令數(shù)目多而復(fù)雜,每條指令字長并不相等,電腦必須加以判讀,并為此付出額外性能。

20世紀(jì)80年代,為了解決計(jì)算機(jī)性能不足的問題,人們找到了另一種優(yōu)化指令集的方法。芯片設(shè)計(jì)師選擇僅保留一些功能簡單,執(zhí)行快速的簡單命令,將復(fù)雜程序用用一段程序來實(shí)現(xiàn),這種指令集就被稱為精簡指令集(Reduced Instruction Set Computer,RISC)。RISC屬于等長指令集,CPU在執(zhí)行指令的時(shí)候速度較快且性能穩(wěn)定。與復(fù)雜指令集相比,精簡指令集更容易實(shí)現(xiàn)諸如程序調(diào)用和返回,循環(huán)等指令,指令并行執(zhí)行程度更好,編譯器的效率更高。

RISC與CISC指令的區(qū)別 ?圖源:Tech Journeyman

既然RISC優(yōu)勢這么明顯,那是不是RISC必然會(huì)替代所有CISC指令集了呢?

并沒有,與CISC相比,RISC指令集也有自身不足。雖然RISC指令較為簡單,但其本身擁有的指令較少,在完成某些任務(wù)的時(shí)候需要執(zhí)行更多指令,這也使得RISC在編譯時(shí)代碼長度要顯著長與CISC,因此也需要占用更多內(nèi)存,編譯難度也會(huì)增加。業(yè)內(nèi)有專家曾分析RISC的缺點(diǎn):“執(zhí)行同樣的功能,一個(gè)RISC程序比一個(gè)CISC程序長30%。同時(shí),RISC對編譯器要求較高,優(yōu)化編譯器是一項(xiàng)極其復(fù)雜且技術(shù)要求很高的工作,它必須由RISC機(jī)制造單位自身編制,因?yàn)闆]有RISC詳細(xì)原始資料不可能產(chǎn)生編譯程序的目標(biāo)代碼。因此這會(huì)讓第三方公司增加額外的軟件配套費(fèi)用?!?/p>

RISC與CISC,本質(zhì)上并無優(yōu)劣之分,只有適用場景的不同。例如屬于復(fù)雜指令集的x86架構(gòu),讓英特爾AMD處理器產(chǎn)品在CPU領(lǐng)域保持著絕對優(yōu)勢。因?yàn)樽烂娑嘶?a class="article-link" target="_blank" href="/tag/%E6%9C%8D%E5%8A%A1%E5%99%A8/">服務(wù)器端處理器相比移動(dòng)端能夠較少考慮功耗與續(xù)航問題,因此它們的性能足夠強(qiáng)悍,不會(huì)被CISC的特性拖累,反而可以更高效的執(zhí)行復(fù)雜任務(wù)。但移動(dòng)端計(jì)算機(jī)(手機(jī)、平板電腦等)的處理器在設(shè)計(jì)時(shí),除了要考慮性能外,功耗與散熱同樣重要,這就給了RISC指令集發(fā)展空間,因此在移動(dòng)端市場爆發(fā)時(shí)期,屬于RISC指令集的ARM架構(gòu)脫穎而出,目前占據(jù)了最多移動(dòng)端市場,我們熟悉的高通驍龍系列與三星Exynos系列芯片均使用了ARM公司的IP核心。

8086CPU,標(biāo)志著x86架構(gòu)誕生 ?圖源:百度百科

 

RISC-V與ARM的誕生

ARM芯片的誕生十分有戲劇性。

1981年,剛成立3年的Acorn公司(橡果電腦有限公司)獲得了英國廣播公司生產(chǎn)電腦的訂單。但那時(shí)處理器正處于8位與16位的更替時(shí)期,Acorn沒有符合需求的芯片,于是它們轉(zhuǎn)頭向摩托羅拉尋求幫助 。摩托羅拉雖然提供了16位芯片產(chǎn)品,但由于芯片中斷響應(yīng)時(shí)間過長,最終沒有通過評估。Acorn決定向英特爾尋求幫助,希望對方提供一些80286處理器的設(shè)計(jì)資料和樣品,但是卻遭到回絕。Acorn一氣之下決定自己制造芯片,經(jīng)過多年的艱苦奮斗,兩位來自劍橋大學(xué)的科學(xué)家最終完成了自己的芯片設(shè)計(jì),并將它命名為Acorn RISC Machine,也就是ARM芯片,RISC就是前文提到的精簡指令集。1990年11月27日,Acorn公司正式改組為ARM計(jì)算機(jī)公司。

經(jīng)過多年的發(fā)展,如今的ARM早已不再是面對英特爾時(shí)“吃癟”的小公司。當(dāng)前ARM的Cortex核心已經(jīng)得到市場的廣泛認(rèn)可,小到兒童手表、智能手機(jī),大到數(shù)字電視、智能汽車、CT機(jī),基于ARM架構(gòu)的芯片已經(jīng)覆蓋先當(dāng)多電氣設(shè)備。ARM在移動(dòng)端儼然已獲得當(dāng)年英特爾在處理器領(lǐng)域的地位。

ARM處理器架構(gòu)分類 ?圖源:Circuit Digest

屠龍者終成“惡龍”,那RISC-V這位 “勇士”又該怎么挑戰(zhàn)ARM呢?我們先來認(rèn)識一下RISC-V,并對比一下它們有什么區(qū)別。

RISC-V是加州大學(xué)伯克利分校 RISC ISA 設(shè)計(jì)的第五版。羅馬數(shù)字“V”表示“變體”和“向量”,表示它支持一系列計(jì)算機(jī)體系結(jié)構(gòu)研究。2010年,當(dāng)時(shí)加州大學(xué)伯克利分校計(jì)算機(jī)系教授Krste Asanovi? 博士想要制定一個(gè)像Linux 一樣的開源計(jì)算機(jī)系統(tǒng)規(guī)范。在獲得了David Patterson 博士的幫助后,它們于1990 年代開始RISC 芯片的設(shè)計(jì)工作,最終形成了 RISC-V。后來,RISC-V 基金會(huì)成立,旨在維護(hù)、宣傳和管理RISC-IV IP,并協(xié)助廠商相互合作。此后由于美國對先進(jìn)芯片的出口限制,RISC-V基金會(huì)從美國加利福尼亞州轉(zhuǎn)移到瑞士工作。目前,它在 50 個(gè)國家和地區(qū)擁有約 1,000 多個(gè)會(huì)員(公司),其中包括華為、阿里巴巴、谷歌、英偉達(dá) 和 IBM 等重量級企業(yè)。

RISC-V會(huì)員 ?圖源:Circuit Digest

 

RISC-V VS ARM

RISC-V與ARM一樣,都是屬于RISC精簡指令集,目前網(wǎng)上已經(jīng)有很多媒體分析過這兩種指令集開源與封閉、免費(fèi)和收費(fèi)的區(qū)別,今天我們一起看看它們在架構(gòu)上有什么異同。

從內(nèi)存交互方式看,RISC-V與ARM都使用加載-存儲體系結(jié)構(gòu),即只有在存和取數(shù)據(jù)時(shí)可以訪問存儲器(內(nèi)存),運(yùn)算型指令操作均在CPU內(nèi)完成,最終的計(jì)算結(jié)果也將寫回內(nèi)存中。但兩種指令集的字節(jié)順序(Endianness)不同,字節(jié)順序是字節(jié)在存儲在內(nèi)存中或通過數(shù)字鏈接傳輸時(shí)被安排成更大數(shù)值的順序,可根據(jù)高位優(yōu)先與低位優(yōu)先分成兩種:大端模式(高位優(yōu)先,Big-endian)或小端模式(低位優(yōu)先,Little-endian)。ARM處理器默認(rèn)是小端模式,但也支持大端模式,而RISC-V僅支持小端模式,兩種模式?jīng)]有優(yōu)劣之分,僅在數(shù)據(jù)處理時(shí)有不同的優(yōu)點(diǎn)。

大端與小端區(qū)別 ?圖源:CSDN

從架構(gòu)復(fù)雜程度看,RISC-V本身非常簡單,基礎(chǔ)指令集則只有40多條,加上其他的模塊化擴(kuò)展指令總共幾十條指令,其規(guī)范文檔僅有145頁,而“特權(quán)架構(gòu)文檔”的篇幅也僅為91頁。ARM由于是一種封閉的指令集架構(gòu),所有廠商在采用ARM IP核心后,不能基于原有設(shè)計(jì)自行更改芯片,企業(yè)只能調(diào)整自身需求來迎合ARM核心。經(jīng)過多年的發(fā)展,ARM指令集變得極其復(fù)雜和繁瑣,相應(yīng)的架構(gòu)文檔有上千頁。這也變相導(dǎo)致了ARM處理器的研發(fā)門檻要遠(yuǎn)高于RISC-V。

從定制化方面看,RISC-V沒有針對任何功能、架構(gòu)或目標(biāo)進(jìn)行過度優(yōu)化,因此它能適用于幾乎所有計(jì)算場景。ARM針對智能手機(jī)的優(yōu)化程度要高于對筆記本電腦、臺式機(jī)和服務(wù)器的優(yōu)化程度。正因如此,ARM芯片在移動(dòng)端領(lǐng)域有著無可撼動(dòng)的統(tǒng)治力。

總結(jié)

從以上內(nèi)容可以看出,RISC-V與ARM雖然同為RISC精簡指令集,但在指令集特性上各有不同。除了開源與免費(fèi),簡單和低開發(fā)門檻也是RISC-V挑戰(zhàn)ARM的殺手锏。

而目前RISC-V和ARM的主要差距體現(xiàn)在上下游產(chǎn)業(yè)生態(tài)和規(guī)模化應(yīng)用上,這是擺在RISC-V陣營的玩家們面前最大的挑戰(zhàn)和難題。

 

參考資料:
ARM vs RISC-V
https://techjourneyman.com/blog/arm-vs-risc-v/

Understanding RISC-V Architecture and Why it could be a Replacement for ARM
https://circuitdigest.com/article/understanding-risc-v-architecture-and-why-it-could-be-a-replacement-for-arm

處理器架構(gòu)、指令集和匯編語言,三者有何關(guān)系?
https://www.zhihu.com/question/23474438

ARM芯片的發(fā)展歷史
https://zhuanlan.zhihu.com/p/370771150

維基百科:Instruction set architecture(ISA)、復(fù)雜指令集計(jì)算機(jī)、精簡指令集計(jì)算機(jī)
https://en.wikipedia.org/wiki/Instruction_set_architecture
https://zh.wikipedia.org/wiki/%E8%A4%87%E9%9B%9C%E6%8C%87%E4%BB%A4%E9%9B%86%E9%9B%BB%E8%85%A6
https://zh.wikipedia.org/wiki/%E7%B2%BE%E7%AE%80%E6%8C%87%E4%BB%A4%E9%9B%86%E8%AE%A1%E7%AE%97%E6%9C%BA
Arm

Arm

ARM公司是一家知識產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(quán)(IP)供應(yīng)商,主要為國際上其他的電子公司提供高性能RISC處理器、外設(shè)和系統(tǒng)芯片技術(shù)授權(quán)。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計(jì)算設(shè)備、多媒體數(shù)字消費(fèi)品等方案的RISC標(biāo)準(zhǔn)。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

與非網(wǎng)行業(yè)分析師。工科背景,擅長與初創(chuàng)企業(yè)打交道,帶你分析最新行業(yè)政策,解讀新聞背后的故事。