天天看點

了解RISC-V指令集架構0. 基礎知識1. RISC-V的起源2. RISC-V的特點3. RISC-V的現狀4. 總結

參考資料:

ARM與RISC-V的恩愛情仇

ARM與RISC-V架構的差別

第五代精簡指令集計算機RISC-V你了解多少?

RISC-V能否“重構”晶片産業格局

淺析RISC-V指令集架構

0. 基礎知識

CPU的指令集,其實就是指令的合集,那什麼是指令呢?就是你吩咐CPU去做的事情。我在這裡給大家打個比方:你有一個傭人,你給他下指令做飯、洗碗、端茶、倒水……這就是指令。把所有的指令總結在一起就是指令集。如果指令集裡面沒有“洗腳”這個指令,那麼你下這個指令CPU也不會執行。CPU必須要有指令集才能工作,不同的CPU有不同的指令集,基本上可以分為兩種:複雜指令集CISC和精簡指令集RISC。

關于CPU的指令集架構,我們最熟悉的應該就是X86和ARM了,需要注意的是它們都不免費。Intel的X86指令集架構除了自家以外隻授權給了AMD和威盛(VIA),ARM稍微好一點不過價格也是不菲,一直有“天下苦ARM久矣”的玩笑。

那除了它們倆之外還有其他指令集架構嗎?答案當然是有,接下來要介紹的RISC-V就是一個,而且還是開源免費的。

可以說ARM 是商業授權的指令集;RISC-V 是開源的指令集。
想詳細了解指令集知識可參考此篇博文:CPU指令集科普:CISC指令集和RISC指令集;ARM指令集和X86指令集對比

1. RISC-V的起源

RISC-V起源于2010年的美國加州大學伯克利分校(USNews世界大學排名第4),當時伯克利研究團隊要研發一款CPU,上面我們說過了要研發CPU就需要有指令集,X86指令集授權嚴格,ARM指令集授權費用昂貴,其他指令集要麼老舊要麼也需要授權,在這種情況下伯克利研究團隊決定從零開始設計一套全新的指令集,也就是我們今天說的RISC-V了。據說當時團隊四個人僅用了3個月就完成并釋出了第一版指令集。當時第一個版本隻包含了不到50條指令,可以用于實作一個具備定點運算和特權模式等基本功能的處理器。

2. RISC-V的特點

  • 完全開源,對指令集使用,RISC-V基金會不收取高額的授權費。開源采用寬松的BSD協定,企業完全自由免費使用,同時也容許企業添加自有指令集拓展而不必開放共享以實作差異化發展。
  • 簡單,這也是RISC-V架構的設計哲學。在處理器領域,X86與ARM架構的發展過程也伴随了現代處理器架構技術的不斷發展成熟,為了能夠保持架構的向後相容性,其不得不保留許多過時的定義,導緻其指令數目多,指令備援嚴重,文檔數量龐大,是以作業系統或者開發應用門檻就會很高。而RISC-V架構則能完全抛棄包袱,借助計算機體系結構經過多年的發展已經成為比較成熟技術的優勢,從輕上路。RISC-V的規範文檔僅有145頁,而“特權架構文檔”的篇幅也僅為91頁。
  • 子產品化,RISC-V架構不僅短小精悍,而且其不同的部分還能以子產品化的方式組織在一起,進而試圖通過一套統一的架構滿足各種不同的應用場景。使用者能夠靈活選擇不同的子產品組合,來實作自己定制化裝置的需要,比如針對于低功耗嵌入式場景,使用者可以選擇RV32IC組合的指令集,僅使用Machine Mode(機器模式);而高性能應用作業系統場景則可以選擇譬如RV32IMFDC的指令集,使用Machine Mode(機器模式)與User Mode(使用者模式)兩種模式。

如果說 ARM 借助IP授權的商業模式,降低了 CPU 設計難度,讓資訊技術世界進入泛處理器時代,那麼 RISC-V 就是以免費開放的開源指令集模式,降低了 CPU IP的設計門檻,讓晶片行業進入到一個滿是 CPU IP 的時代。

3. RISC-V的現狀

RISC-V這幾年一直都是比較火的話題,因為同為開源項目,很多人都把他上升到了晶片設計領域的“Linux”地位,在這兩年見到的很多晶片設計商業計劃書中,RISC-V也是一個頻頻出現的名詞。

依靠開源和免費,RISC-V 非常受大學和科研院所青睐,并有望在教學領域大展拳腳,而這又會給 RISC-V 培養源源不斷的後備軍。對于商業公司來說,由于 ARM 的授權費昂貴,也有較強的動力去做 RISC-V,避免被綁死在 ARM 上。

RISC-V 目前已經有 200 多家成員,不過所有的技術或者商業模式優勢,最終還是要轉化成商業成功。目前所有參與 RISC-V 的企業,其實還是小公司居多,或者是大公司的小項目有涉及,還沒有特别賺錢的。

不過,RISC-V 也存在一個隐憂,那就是缺乏強有力的主導者,進而導緻破碎化的問題。當年的MIPS其實也非常學院派,MIPS陣營的商業公司可以自由添加指令,比如龍芯就以MIPS為基礎添加了1000多條新指令,進而形成了自己的指令集 LoongISA。這又使開發軟體的時候,即便同樣屬于MIPS,也必須分為龍芯版和普通MIPS版。

由于RISC-V也允許使用者自己加新指令,這就有可能使RISC-V破碎化,也許未來華為、高通、谷歌開發出的 RISC-V 處理器雖然都屬于 RISC-V,但卻不能跑同樣一套軟體。畢竟完全開放與自成一脈是一對沖突,如果無法解決這個問題,恐怕RISC-V很難成長到能與X86和ARM争雄的水準。

4. 總結

最後,引用步日欣老師文章的段落作為最後總結。

關于RISC-V在國内的消息,較為引人關注的是2019年7月,阿裡“平頭哥”推出的“玄鐵910”,屬于嵌入式CPU,正是基于RISC-V指令集架構,主要應用場景将會集中在5G、AI人工智能、自動駕駛以及網絡通信方面。

當然了,對于一款新型晶片的推出,特别是CPU核心晶片,光有晶片是不夠的,更要有産業的支援,形成生态。

生态問題,也是RISC-V同其他RISC,以及CSIC在市場競争中的焦點所在。這個焦點,也是回答RISC-V究竟面臨什麼樣的機會,能夠颠覆或者重構晶片設計行業的終極答案。

就如同Linux,就算功能很完善了,迄今為止也沒有颠覆Windows的一統PC的局面。RISC-V也是一樣的。

開源,硬體領域的開源,是RISC-V的一個大膽嘗試,也是優勢所在,借助開源的力量,将從CPU設計、軟體開發和支援、外圍接口電路,片上系統設計等各個方面促進RISC-V在産業界的推廣使用。除了前面提到的“平頭哥”,西部資料、英偉達、華米等也都在将RISC-V用在自己的晶片中。

生态正在逐漸形成,但任重道遠。畢竟面對的競争對手不但包括獨霸天下的X86(CSIC),還有其他RISC強悍廠商(ARM),他們就如同作業系統領域中的微軟,已經憑借Windows,建立了穩固的城池。如果沒有劃時代的産業變革,很難攻城拔寨,隻能慢慢滲透。

是以,目前的RISC-V風生水起的,還主要在一些非主流的CPU應用中,比如平頭哥的“玄鐵910”,屬于嵌入式CPU;比如一些低成本、超低功耗應用設計等等。

正如芯原微在招股說明書中說的那樣,RISC-V、MIPS和PowerPC相繼開放其指令集架構,由于三種指令集各有自己的特色和典型應用領域,三者既有一定的競争,也可互相依存。這種前所未有的指令集開源模式,給晶片設計者帶來了廣泛的自由和選擇的機會,除了降低晶片的設計門檻,并從一定程度上降低晶片的設計成本之外,會給半導體工業帶來前所未有的發展活力,促進半導體設計領域的重大創新和發展。

大而全有其存在的理由,小而精也有其生存空間,這就是RISC-V的未來。

繼續閱讀