本文上接:
《大道至簡(jiǎn)——RISC-V架構(gòu)之魂(上)》
《大道至簡(jiǎn)——RISC-V架構(gòu)之魂(中)》
2.12 特權(quán)模式
RISC-V架構(gòu)定義了三種工作模式,又稱特權(quán)模式(Privileged Mode):
Machine Mode:機(jī)器模式,,簡(jiǎn)稱M Mode,。
Supervisor Mode:監(jiān)督模式,簡(jiǎn)稱S Mode,。
User Mode:用戶模式,簡(jiǎn)稱U Mode,。
RISC-V架構(gòu)定義M Mode為必選模式,,另外兩種為可選模式。通過(guò)不同的模式組合可以實(shí)現(xiàn)不同的系統(tǒng),。
RISC-V架構(gòu)也支持幾種不同的存儲(chǔ)器地址管理機(jī)制,,包括對(duì)于物理地址和虛擬地址的管理機(jī)制,使得RISC-V架構(gòu)能夠支持從簡(jiǎn)單的嵌入式系統(tǒng)(直接操作物理地址)到復(fù)雜的操作系統(tǒng)(直接操作虛擬地址)的各種系統(tǒng),。
2.13 CSR寄存器
RISC-V架構(gòu)定義了一些控制和狀態(tài)寄存器(Control and Status Register,,CSR),用于配置或記錄一些運(yùn)行的狀態(tài),。CSR寄存器是處理器核內(nèi)部的寄存器,,使用其自己的地址編碼空間和存儲(chǔ)器尋址的地址區(qū)間完全無(wú)關(guān)系。
CSR寄存器的訪問(wèn)采用專用的CSR指令,,包括CSRRW,、CSRRS、CSRRC,、CSRRWI,、CSRRSI以及CSRRCI指令。
2.14 中斷和異常
中斷和異常機(jī)制往往是處理器指令集架構(gòu)中最為復(fù)雜而關(guān)鍵的部分,。RISC-V架構(gòu)定義了一套相對(duì)簡(jiǎn)單基本的中斷和異常機(jī)制,,但是也允許用戶對(duì)其進(jìn)行定制和擴(kuò)展。
2.15 矢量指令子集
RISC-V架構(gòu)目前雖然還沒(méi)有定型矢量(Vector)指令子集,,但是從目前的草案中已經(jīng)可以看出,,RISC-V矢量指令子集的設(shè)計(jì)理念非常的先進(jìn),由于后發(fā)優(yōu)勢(shì)及借助矢量架構(gòu)多年發(fā)展成熟的結(jié)論,,RISC-V架構(gòu)將使用可變長(zhǎng)度的矢量,,而不是矢量定長(zhǎng)的SIMD指令集(譬如ARM的NEON和Intel的MMX),從而能夠靈活的支持不同的實(shí)現(xiàn),。追求低功耗小面積的CPU可以選擇使用長(zhǎng)度較短的硬件矢量進(jìn)行實(shí)現(xiàn),,而高性能的CPU則可以選擇較長(zhǎng)的硬件矢量進(jìn)行實(shí)現(xiàn),,并且同樣的軟件代碼能夠彼此兼容。
2.16 自定制指令擴(kuò)展
除了上述闡述的模塊化指令子集的可擴(kuò)展,、可選擇,,RISC-V架構(gòu)還有一個(gè)非常重要的特性,那就是支持第三方的擴(kuò)展,。用戶可以擴(kuò)展自己的指令子集,,RISC-V預(yù)留了大量的指令編碼空間用于用戶的自定義擴(kuò)展,同時(shí),,還定義了四條Custom指令可供用戶直接使用,,每條Custom指令都有幾個(gè)比特位的子編碼空間預(yù)留,因此,,用戶可以直接使用四條Custom指令擴(kuò)展出幾十條自定義的指令,。
請(qǐng)參見《實(shí)例講解進(jìn)駐Google兩位大神主推的異構(gòu)計(jì)算與RISC-V》了解更多協(xié)處理器擴(kuò)展的信息。
2.17 總結(jié)與比較
處理器設(shè)計(jì)技術(shù)經(jīng)過(guò)幾十年的衍進(jìn),,隨著大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展直至今天,,呈現(xiàn)出如下特點(diǎn):
由于高性能處理器的硬件調(diào)度能力已經(jīng)非常強(qiáng)勁且主頻很高,因此,,硬件設(shè)計(jì)希望指令集盡可能的規(guī)整、簡(jiǎn)單,,從而,,使得處理器可以設(shè)計(jì)出更高的主頻與更低的面積。
以IoT應(yīng)用為主的極低功耗處理器更加苛求低功耗與低面積,。
存儲(chǔ)器的資源也比早期的RISC處理器更加豐富,。
如上種種這些因素,使得很多早期的RISC架構(gòu)設(shè)計(jì)理念(依據(jù)當(dāng)時(shí)技術(shù)背景而誕生),,時(shí)至今日不僅不能幫助現(xiàn)代處理器設(shè)計(jì),,反而成了負(fù)擔(dān)桎梏。某些早期RISC架構(gòu)定義的特性,,一方面使得高性能處理器的硬件設(shè)計(jì)束手束腳,;另一方面又使得極低功耗的處理器硬件設(shè)計(jì)背負(fù)不必要的復(fù)雜度。
得益于后發(fā)優(yōu)勢(shì),,全新的RISC-V架構(gòu)能夠規(guī)避所有這些已知的負(fù)擔(dān),,同時(shí),利用其先進(jìn)的設(shè)計(jì)哲學(xué),,設(shè)計(jì)出一套“現(xiàn)代”的指令集,。本節(jié)再次將其特點(diǎn)總結(jié)如表2所示。
表2 RISC-V指令集架構(gòu)特點(diǎn)總結(jié)
這里寫圖片描述
一言以蔽之,,RISC-V的特點(diǎn)在于極簡(jiǎn),、模塊化以及可定制擴(kuò)展,,通過(guò)這些指令集的組合或者擴(kuò)展,你幾乎可以構(gòu)建適用于任何一個(gè)領(lǐng)域的微處理器,,比如云計(jì)算,、存儲(chǔ)、并行計(jì)算,、虛擬化/容器,、MCU、應(yīng)用處理器和DSP處理器等,。
3 RISC-V和其他開放架構(gòu)有何不同
如果僅從“免費(fèi)”或“開放”這兩點(diǎn)來(lái)評(píng)判,,RISC-V架構(gòu)并不是第一個(gè)做到免費(fèi)或開放的處理器架構(gòu)。
下文將通過(guò)論述幾個(gè)具有代表性的開放架構(gòu),,來(lái)分析RISC-V架構(gòu)的不同之處以及為什么其他開放架構(gòu)沒(méi)能取得足夠的成功,。
3.1 平民英雄——OpenRISC
OpenRISC是OpenCores組織提供的基于GPL協(xié)議的開放源代碼RISC處理器。
OpenRISC具有以下特點(diǎn):
采用免費(fèi)開放的32/64位 RISC架構(gòu),。
用Verilog HDL(硬件描述語(yǔ)言)實(shí)現(xiàn)了基于該架構(gòu)的處理器源代碼,。
具有完整的工具鏈。
OpenRISC被應(yīng)用到很多公司的項(xiàng)目之中,??梢哉f(shuō),OpenRISC是應(yīng)用非常廣泛的一種開源處理器實(shí)現(xiàn),。
OpenRISC的不足之處在于其側(cè)重于實(shí)現(xiàn)一種開源的CPU Core,,而非立足于定義一種開放的指令集架構(gòu),因此其架構(gòu)的發(fā)展不夠完整,,指令集的定義也不具備上節(jié)中提到的RISC-V架構(gòu)的優(yōu)點(diǎn),,更加沒(méi)有上升到成立專門的基金會(huì)組織的高度。OpenRISC更多的時(shí)候被認(rèn)為是一個(gè)開源的Core,,而非一種優(yōu)美的指令集架構(gòu),。此外,OpenRISC的許可證為GPL,,這意味著所有的指令集改動(dòng)都必須開源(而RISC-V則無(wú)此約束),。
3.2 豪門顯貴——SPARC
SPARC架構(gòu)作為經(jīng)典的RISC微處理器架構(gòu)之一,SPARC最早于1985年由Sun電腦所設(shè)計(jì),。SPARC也是SPARC國(guó)際公司的注冊(cè)商標(biāo)之一,,這家公司于1989年成立,目的是向外界推廣SPARC架構(gòu)以及為該架構(gòu)進(jìn)行兼容性測(cè)試,。該公司為了推廣SPARC的生態(tài)系統(tǒng),,SPARC國(guó)際公司將標(biāo)準(zhǔn)開放,并授權(quán)予多家生產(chǎn)商采用,,包括德州儀器,、Cypress半導(dǎo)體和富士通等,。由于SPARC架構(gòu)也對(duì)外完全開放,因此,,也出現(xiàn)了完全開放源碼的LEON處理器,。不僅如此,Sun公司還于1994年推動(dòng)SPARC v8架構(gòu)成為IEEE標(biāo)準(zhǔn)(IEEE Standard 1754-1994),。
由于SPARC架構(gòu)的初衷是面向服務(wù)器領(lǐng)域而設(shè)計(jì),,其最大的特點(diǎn)是擁有一個(gè)大型的寄存器窗口,符合SPARC架構(gòu)的處理器需要實(shí)現(xiàn)從72到640個(gè)之多的通用寄存器,,每個(gè)寄存器寬度為64bits,,組成一系列的寄存器組,稱之為寄存器窗口,。
這種寄存器窗口的架構(gòu),,由于可以切換不同的寄存器組快速地響應(yīng)函數(shù)調(diào)用與返回,因此,,能夠產(chǎn)生非常高的性能,,但是這種架構(gòu)由于功耗面積代價(jià)太大,而并不適用于PC與嵌入式領(lǐng)域處理器,。而SPARC架構(gòu)也不具備模塊化的特點(diǎn),,使得用戶無(wú)法裁剪和選擇。很難作為一種通用的處理器架構(gòu)對(duì)商用的x86和ARM架構(gòu)形成替代,。
設(shè)計(jì)這種超大服務(wù)器CPU芯片又非普通公司與個(gè)人所能涉足,,而有能力設(shè)計(jì)這種大型CPU的公司也沒(méi)有必要投入巨大的成本來(lái)挑戰(zhàn)x86的統(tǒng)治地位。隨著Sun公司的衰弱,,SPARC架構(gòu)現(xiàn)在基本上退出了人們的視野。感興趣的讀者請(qǐng)?jiān)诰W(wǎng)絡(luò)上自行搜索文章《再見SPARC處理器,,再見Sun》
3.3 名校優(yōu)生——RISC-V
關(guān)于RISC-V在伯克利大學(xué)誕生的經(jīng)歷,,本節(jié)在此不做重復(fù)贅述。
因?yàn)槎嗄陙?lái)在CPU領(lǐng)域已經(jīng)出現(xiàn)過(guò)多個(gè)免費(fèi)或開放的架構(gòu),,很多高校也在科研項(xiàng)目中推出過(guò)多種指令集架構(gòu),。因此,當(dāng)筆者第一次聽說(shuō)RISC-V之時(shí),,以為又是一個(gè)玩具,,或純粹學(xué)術(shù)性質(zhì)的科研項(xiàng)目而不以為意。
直到筆者親自通讀了一遍RISC-V的架構(gòu)文檔,,不禁為其先進(jìn)的設(shè)計(jì)理念所折服,。同時(shí),RISC-V架構(gòu)的各種優(yōu)點(diǎn)也得到了眾多專業(yè)人士的青睞好評(píng)和眾多商業(yè)公司的相繼加盟,。并且2016年RISC-V基金會(huì)的正式啟動(dòng)在業(yè)界引起了不小的影響,。如此種種,,使得RISC-V成為至今為止最具備革命性意義的開放處理器架構(gòu)。