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