【深智書摘】全新、簡單且開放地免費指令集架構--RISC-V 架構誕生

【深智書摘】全新、簡單且開放地免費指令集架構--RISC-V 架構誕生

更新於 發佈於 閱讀時間約 6 分鐘
2010 年,加州大學柏克萊分校的實驗室專案需要一個易於實施的、高效的、可擴充的且與他人分享時不受限制的指令集,但當時沒有一個現成的指令集滿足以上需求。於是,在David Patterson 教授的支援下,Krste Asanovic教授和Andrew Waterman、Yunsup Lee 等開發人員一起建立了RISC-V 架構。

2014 年,該指令集架構一經公開,便迅速在全世界得到廣泛歡迎。

在開始閱讀本書前,請您先思考看看…

  • 您是否想學習工業級 Verilog RTL 數位 IC 設計的精髓與技巧?
  • 您是否閱讀了許多電腦系統結構的圖書仍不明就裡?
  • 您是否想揭開 CPU 設計神秘的面紗,並親自設計一款處理器?
  • 您是否想學習國際一流公司真實的 CPU 設計案例?
  • 您是否想用最短的時間熟悉並掌握 RISC-V 架構?
  • 您是否想深入理解並使用一款免費可靠的開放原始碼 RISC-V 處理器和完整的SoC 平台?

如果您對上述任意一個問題感興趣,本書都將是您很好的選擇。


CPU的基礎知識、指令集架構的歷史

CPU 的全稱為中央處理器單元,簡稱為處理器,是一個不算年輕的概念。早在20 世紀60 年代第一款CPU 便已誕生了。嚴格來說,「處理器核心」(core)是指處理器內部最核心的部分,是真正的處理器核心;而「處理器」(CPU)往往是一個完整的 SoC,包含了處理器核心和其他的裝置或記憶體。但是在現實中,大多數文章往往並不會嚴格地區分兩者,時常混用,因此讀者需要根據上下文自行判別,體會其具體的含義。

經過幾十年的發展,到今天為止,幾十種不同的CPU 架構相繼誕生或消毀。什麼是CPU 架構?下面讓我們來探討區分CPU 的主要標準—指令集架構(Instruction SetArchitecture,ISA)。

指令集架構主要分為複雜指令集(Complex Instruction Set Computer,CISC)架構和精簡指令集(Reduced Instruction Set Computer,RISC)架構。

RISC-V架構及其特點

RISC-V(英文讀作「risk-five」)架構主要由美國加州大學柏克萊分校的Krste Asanovic 教授、Andrew Waterman 和Yunsup Lee 等開發人員於2010 年發明,並且獲得了電腦系統結構領域的泰斗David Patterson 的大力支持。RISC-V 是一種全新的指令集架構。「V」包含兩層意思,一是這是加州大學柏克萊分校從RISC I 開始設計的第五代指令集架構;二是它代表了變化(variation)和向量(vector)。

加州大學柏克萊分校的開發人員之所以發明一套新的指令集架構,而非使用成熟的x86 或ARM 架構,是因為這些架構經過多年的發展變得極複雜和冗繁,並且存在著高昂的專利和架構授權問題。修改ARM 處理器的RTL 程式是不被支援的,而x86 處理器的原始程式碼則根本不可能獲得。其他的開放原始碼架構(如SPARC、OpenRISC)均有著或多或少的問題(詳見第本書2章),所以加州大學柏克萊分校的教授與研發人員決定發明一種全新的、簡單且開放免費的指令集架構,於是RISC-V 架構誕生了。

RISC-V的可擴充性,訂製一款輔助處理器

RISC-V 通用架構的基礎上實現領域特定加速器,這也是RISC-V 架構相比ARM 和x86 等主流商業架構的最大優點。RISC-V 架構的可擴充性表現在以下兩個方面:預留的指令編碼空間,以及預先定義的指令。

--

RISC-V是一個開放、開放原始碼的架構,人人都可獲取,因此,企業、學校和個人都可以積極參與相關的研發。基於RISC-V的晶片產品源源不斷地被推向市場,晶片行業蓬勃發展。這樣的發展勢頭終將推動RISC-V成為ISA領域的一項開放標準。

在CPU世界,大型商業機構掌握了處理器的設計,使得我們也必須屈從於封閉式的CPU架構。這也是為什麼目前個人電腦只有AMD和Intel兩家可以選擇。然而在RISC-V的出現,我們終於嗅到了CPU世界的自由氣息。這個完全開放的CPU架構,讓你我可以直接使用,並且用於個人使用甚至是商業使用。

本書以著名的蜂鳥系統為基礎,讓你可以真的動手進入RISC-V架構的設計,就像Linux剛出來時一樣,這個完全自由的架構,讓我們在各行各業都能設入自己的低功耗、高性能產品。三國鼎立就是現在,動手設計屬於你自己的CPU,從本書開始。

--

深智數位出版:〈三國鼎立唯一開源CPU架構 - RISC-V處理器設計快速上手〉

深智數位出版:〈三國鼎立唯一開源CPU架構 - RISC-V處理器設計快速上手〉


本文取自深智數位出版之〈三國鼎立唯一開源CPU架構 - RISC-V處理器設計快速上手〉

天瓏:https://reurl.cc/a154D7

博客來:https://reurl.cc/Q47ZlZ

深智數位:https://deepmind.com.tw

avatar-img
深智數位的沙龍
9會員
25內容數
留言
avatar-img
留言分享你的想法!
深智數位的沙龍 的其他內容
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!