《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 業(yè)界動態(tài) > 大道至簡——RISC-V架構之魂(下)

大道至簡——RISC-V架構之魂(下)

2018-09-14
關鍵詞: RISC-V 架構

  本文上接:

  《大道至簡——RISC-V架構之魂(上)》

  《大道至簡——RISC-V架構之魂(中)》

  2.12 特權模式

  RISC-V架構定義了三種工作模式,又稱特權模式(Privileged Mode):

  Machine Mode:機器模式,,簡稱M Mode,。

  Supervisor Mode:監(jiān)督模式,簡稱S Mode,。

  User Mode:用戶模式,,簡稱U Mode,。

  RISC-V架構定義M Mode為必選模式,另外兩種為可選模式,。通過不同的模式組合可以實現(xiàn)不同的系統(tǒng),。

  RISC-V架構也支持幾種不同的存儲器地址管理機制,包括對于物理地址和虛擬地址的管理機制,,使得RISC-V架構能夠支持從簡單的嵌入式系統(tǒng)(直接操作物理地址)到復雜的操作系統(tǒng)(直接操作虛擬地址)的各種系統(tǒng),。

  2.13 CSR寄存器

  RISC-V架構定義了一些控制和狀態(tài)寄存器(Control and Status Register,CSR),,用于配置或記錄一些運行的狀態(tài),。CSR寄存器是處理器核內部的寄存器,使用其自己的地址編碼空間和存儲器尋址的地址區(qū)間完全無關系,。

  CSR寄存器的訪問采用專用的CSR指令,,包括CSRRW、CSRRS,、CSRRC,、CSRRWI、CSRRSI以及CSRRCI指令,。

  2.14 中斷和異常

  中斷和異常機制往往是處理器指令集架構中最為復雜而關鍵的部分,。RISC-V架構定義了一套相對簡單基本的中斷和異常機制,但是也允許用戶對其進行定制和擴展,。

  2.15 矢量指令子集

  RISC-V架構目前雖然還沒有定型矢量(Vector)指令子集,,但是從目前的草案中已經(jīng)可以看出,RISC-V矢量指令子集的設計理念非常的先進,,由于后發(fā)優(yōu)勢及借助矢量架構多年發(fā)展成熟的結論,,RISC-V架構將使用可變長度的矢量,而不是矢量定長的SIMD指令集(譬如ARM的NEON和Intel的MMX),,從而能夠靈活的支持不同的實現(xiàn),。追求低功耗小面積的CPU可以選擇使用長度較短的硬件矢量進行實現(xiàn),而高性能的CPU則可以選擇較長的硬件矢量進行實現(xiàn),,并且同樣的軟件代碼能夠彼此兼容,。

  2.16 自定制指令擴展

  除了上述闡述的模塊化指令子集的可擴展、可選擇,,RISC-V架構還有一個非常重要的特性,,那就是支持第三方的擴展。用戶可以擴展自己的指令子集,,RISC-V預留了大量的指令編碼空間用于用戶的自定義擴展,,同時,還定義了四條Custom指令可供用戶直接使用,,每條Custom指令都有幾個比特位的子編碼空間預留,,因此,,用戶可以直接使用四條Custom指令擴展出幾十條自定義的指令。

  請參見《實例講解進駐Google兩位大神主推的異構計算與RISC-V》了解更多協(xié)處理器擴展的信息,。

  2.17 總結與比較

  處理器設計技術經(jīng)過幾十年的衍進,,隨著大規(guī)模集成電路設計技術的發(fā)展直至今天,呈現(xiàn)出如下特點:

  由于高性能處理器的硬件調度能力已經(jīng)非常強勁且主頻很高,,因此,,硬件設計希望指令集盡可能的規(guī)整、簡單,,從而,,使得處理器可以設計出更高的主頻與更低的面積。

  以IoT應用為主的極低功耗處理器更加苛求低功耗與低面積,。

  存儲器的資源也比早期的RISC處理器更加豐富,。

  如上種種這些因素,使得很多早期的RISC架構設計理念(依據(jù)當時技術背景而誕生),,時至今日不僅不能幫助現(xiàn)代處理器設計,,反而成了負擔桎梏。某些早期RISC架構定義的特性,,一方面使得高性能處理器的硬件設計束手束腳,;另一方面又使得極低功耗的處理器硬件設計背負不必要的復雜度。

  得益于后發(fā)優(yōu)勢,,全新的RISC-V架構能夠規(guī)避所有這些已知的負擔,,同時,利用其先進的設計哲學,,設計出一套“現(xiàn)代”的指令集,。本節(jié)再次將其特點總結如表2所示。

44.jpg

  表2 RISC-V指令集架構特點總結

  這里寫圖片描述

  一言以蔽之,,RISC-V的特點在于極簡,、模塊化以及可定制擴展,通過這些指令集的組合或者擴展,,你幾乎可以構建適用于任何一個領域的微處理器,,比如云計算、存儲,、并行計算,、虛擬化/容器、MCU,、應用處理器和DSP處理器等。

  3 RISC-V和其他開放架構有何不同

  如果僅從“免費”或“開放”這兩點來評判,,RISC-V架構并不是第一個做到免費或開放的處理器架構,。

  下文將通過論述幾個具有代表性的開放架構,,來分析RISC-V架構的不同之處以及為什么其他開放架構沒能取得足夠的成功。

  3.1 平民英雄——OpenRISC

  OpenRISC是OpenCores組織提供的基于GPL協(xié)議的開放源代碼RISC處理器,。

  OpenRISC具有以下特點:

  采用免費開放的32/64位 RISC架構,。

  用Verilog HDL(硬件描述語言)實現(xiàn)了基于該架構的處理器源代碼。

  具有完整的工具鏈,。

  OpenRISC被應用到很多公司的項目之中,。可以說,,OpenRISC是應用非常廣泛的一種開源處理器實現(xiàn),。

  OpenRISC的不足之處在于其側重于實現(xiàn)一種開源的CPU Core,而非立足于定義一種開放的指令集架構,,因此其架構的發(fā)展不夠完整,,指令集的定義也不具備上節(jié)中提到的RISC-V架構的優(yōu)點,更加沒有上升到成立專門的基金會組織的高度,。OpenRISC更多的時候被認為是一個開源的Core,,而非一種優(yōu)美的指令集架構。此外,,OpenRISC的許可證為GPL,,這意味著所有的指令集改動都必須開源(而RISC-V則無此約束)。

  3.2 豪門顯貴——SPARC

  SPARC架構作為經(jīng)典的RISC微處理器架構之一,,SPARC最早于1985年由Sun電腦所設計,。SPARC也是SPARC國際公司的注冊商標之一,這家公司于1989年成立,,目的是向外界推廣SPARC架構以及為該架構進行兼容性測試,。該公司為了推廣SPARC的生態(tài)系統(tǒng),SPARC國際公司將標準開放,,并授權予多家生產商采用,,包括德州儀器、Cypress半導體和富士通等,。由于SPARC架構也對外完全開放,,因此,也出現(xiàn)了完全開放源碼的LEON處理器,。不僅如此,,Sun公司還于1994年推動SPARC v8架構成為IEEE標準(IEEE Standard 1754-1994)。

  由于SPARC架構的初衷是面向服務器領域而設計,,其最大的特點是擁有一個大型的寄存器窗口,,符合SPARC架構的處理器需要實現(xiàn)從72到640個之多的通用寄存器,每個寄存器寬度為64bits,,組成一系列的寄存器組,,稱之為寄存器窗口,。

  這種寄存器窗口的架構,由于可以切換不同的寄存器組快速地響應函數(shù)調用與返回,,因此,,能夠產生非常高的性能,但是這種架構由于功耗面積代價太大,,而并不適用于PC與嵌入式領域處理器,。而SPARC架構也不具備模塊化的特點,使得用戶無法裁剪和選擇,。很難作為一種通用的處理器架構對商用的x86和ARM架構形成替代,。

  設計這種超大服務器CPU芯片又非普通公司與個人所能涉足,而有能力設計這種大型CPU的公司也沒有必要投入巨大的成本來挑戰(zhàn)x86的統(tǒng)治地位,。隨著Sun公司的衰弱,,SPARC架構現(xiàn)在基本上退出了人們的視野。感興趣的讀者請在網(wǎng)絡上自行搜索文章《再見SPARC處理器,,再見Sun》

  3.3 名校優(yōu)生——RISC-V

  關于RISC-V在伯克利大學誕生的經(jīng)歷,,本節(jié)在此不做重復贅述。

  因為多年來在CPU領域已經(jīng)出現(xiàn)過多個免費或開放的架構,,很多高校也在科研項目中推出過多種指令集架構,。因此,當筆者第一次聽說RISC-V之時,,以為又是一個玩具,,或純粹學術性質的科研項目而不以為意。

  直到筆者親自通讀了一遍RISC-V的架構文檔,,不禁為其先進的設計理念所折服,。同時,RISC-V架構的各種優(yōu)點也得到了眾多專業(yè)人士的青睞好評和眾多商業(yè)公司的相繼加盟,。并且2016年RISC-V基金會的正式啟動在業(yè)界引起了不小的影響,。如此種種,使得RISC-V成為至今為止最具備革命性意義的開放處理器架構,。


本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章,、圖片、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]