☆★☆ AIoT 時代三國鼎立,動手設計屬於自己的 CPU 開闢新時代,從本書開始!☆★☆RISC-V是一個開放、開源的架構,人人都可獲取,因此,企業、學校和個人都可以主動參與相關的研發,這勢必能夠帶來更多的創新。
憑藉著簡潔、模組化且擴充性強的特點,RISC-V的晶片產品源源不絕地被推向市場,使得晶片產業得以蓬勃發展。這樣的發展趨勢終將推動RISC-V成為ISA領域的一項開放標準。每一次技術變遷都會帶來一個新生產業的崛起。從主機時代到PC時代,成就了Intel;從PC時代到行動時代,成就了ARM;從行動時代到AIoT時代,我們能否抓住RISC-V的機遇?
本書作者是著名RISC-V公司芯來科技的創辦人,曾在世界最大的半導體公司擔任高級工程師,也是華人地區少見專注於RISC-V的硬體公司。
本書以蜂鳥E203,為開發平台,這是中文地區最早被RISC-V基金會官方首页收錄的開放原始碼核心。在X86、ARM、之外,我們是否能靠著RISC-V再開闢出一條新的捷徑?看看Linux的成功,或許你已經參與了一個新時代的降臨。
【本書特點】● CPU 的基礎知識、指令集架構的歷史。
● RISC-V 架構及其特點。
● 當前全世界的商業或開放原始碼 RISC-V 處理器。
● RISC-V 處理器核心的整體設計思想和頂層介面。
● RISC-V 處理器單選指單元、執行單元、交付單元微架構和原始程式。
● RISC-V 匯流排協定,以及該模組的微架構和原始程式、處理器的記憶體架構。
● RISC-V 的中斷和異常機制,硬體實現微架構和原始程式。
● RISC-V 架構定義的偵錯方案,硬體實現微架構和原始程式。
● RISC-V 的可擴充性,訂製一款輔助處理器。
作者簡介:
胡振波
上海交通大學電子工程系本科、微電子學院碩士。擁有業界多年 ASIC 和 CPU 設計與驗證經驗,先後在 Marvell 任職 ARM 架構 CPU 設計高級工程師、在 Synopsys 任職研發經理、在比特大陸任職 IC 設計總監、在武漢聚芯微電子任職架構師,現致力於推動 RISC-V 架構在國內的傳播和發展。
作者序
【前言】
● 您是否想學習工業級 Verilog RTL 數位 IC 設計的精髓與技巧?
● 您是否閱讀了許多電腦系統結構的圖書仍不明就裡?
● 您是否想揭開 CPU 設計神秘的面紗,並親自設計一款處理器?
● 您是否想學習國際一流公司真實的 CPU 設計案例?
● 您是否想用最短的時間熟悉並掌握 RISC-V 架構?
● 您是否想深入理解並使用一款免費可靠的開放原始碼 RISC-V 處理器和完整的SoC 平台?
如果您對上述任意一個問題感興趣,本書都將是您很好的選擇。
芯來科技公司的團隊彙整了國際一流公司多年從事CPU設計工作的豐富經驗,開發了一款超低功耗RISC-V處理器(蜂鳥E203),蜂鳥E203處理器也是一款開放原始碼的RISC-V處理器。
本書將用通俗易懂的語言,深入淺出地剖析RISC-V處理器的微架構以及程式實現,為讀者揭開CPU設計的神秘面紗,打開深入了解電腦系統結構的大門。
作為一本系統介紹RISC-V架構且結合實際RISC-V開放原始碼範例進行講解的技術圖書,本書對配套的開放原始碼實例蜂鳥E203專案進行全面介紹。透過對本書的學習,讀者能夠快速掌握並輕鬆使用RISC-V處理器。本書旨在為推廣RISC-V架構造成促進作用,同時透過對蜂鳥E203處理器的開放原始碼與解析,為RISC-V 處理器的普及貢獻綿薄之力。
本書共分3部分,各部分主要內容如下。
第一部分概述CPU與RISC-V,包括第1 ∼ 4章。該部分將介紹CPU的一些基礎背景知識、RISC-V架構的誕生和特點。
第1章主要介紹CPU的基礎知識、指令集架構的歷史、自主研發CPU的發展現狀及原因、CPU的應用領域、各領域的主流架構、RISC-V架構的誕生背景等。
第2章主要介紹RISC-V架構及其特點,著重分析其大道至簡的設計理念,並闡述RISC-V和以往曾經出現過的開放架構有何不同。
第3章主要對當前全世界的商業或開放原始碼RISC-V處理器進行盤點,分析其優缺點。
第4章主要對蜂鳥E203處理器核心和SoC的特性介紹。
第二部分主要講解如何使用Verilog設計CPU,包括第5 ∼ 16章。該部分將對蜂鳥E203處理器核心的微架構和原始程式碼進行深度剖析,結合該處理器核心進行處理器設計案例分析。
第5章主要從宏觀的角度著手,介紹若干處理器設計的技巧、蜂鳥E203處理器核心的整體設計思想和頂層介面,幫助讀者整體認識蜂鳥E203處理器的設計要點,為後續各章針對不同部分展開詳述奠定基礎。
第6章說明處理器的一些常見管線結構,並介紹蜂鳥E203處理器核心的管線結構。
第7章說明處理器的取指功能,並介紹蜂鳥E203處理器單選指單元的微架構和原始程式。
第8章說明處理器的執行功能,並介紹蜂鳥E203處理器核心執行單元的微架構和原始程式。
第9章說明處理器的交付功能和常見策略,並介紹蜂鳥E203處理器核心交付單元的微架構和原始程式。
第10章說明處理器的寫回功能和常見策略,並介紹蜂鳥E203處理器核心的寫回硬體實現和原始程式。
第11章說明處理器的記憶體架構,並介紹蜂鳥E203處理器核心記憶體子系統的微架構和原始程式。
第12章說明蜂鳥E203處理器核心的匯流排界面模組,介紹其使用的匯流排協定,以及該模組的微架構和原始程式。
第13章說明RISC-V架構定義的中斷和異常機制,討論蜂鳥E203處理器核心中斷和異常的硬體微架構及其原始程式。
第14章說明處理器的偵錯機制,介紹RISC-V架構定義的偵錯方案、蜂鳥E203處理器偵錯機制的硬體實現微架構和原始程式。
第15章說明處理器的低功耗技術,並以蜂鳥E203處理器為例闡述其低功耗設計的訣竅。
第16章說明如何利用RISC-V的可擴充性,並以蜂鳥E203的輔助處理器介面為例詳細闡述如何訂製一款輔助處理器。
第三部分是開發實戰,包括第17章和第18章。該部分將對蜂鳥E203開放原始碼專案結構及內容介紹,並詳細講解蜂鳥E203的系統模擬平台以及如何進行Verilog模擬測試。
第17章主要介紹在蜂鳥E203開放原始碼平台上如何運行Verilog模擬測試。
第18章主要概括基於蜂鳥E203 SoC進行嵌入式開發與工程實踐的大綱。
附錄A∼附錄G將對RISC-V 架構進行詳細介紹,對RISC-V架構細節感興趣的讀者可以先行閱讀附錄部分。
附錄A主要介紹RISC-V架構的指令集。
附錄B主要介紹RISC-V架構的CSR。
附錄C主要介紹RISC-V架構定義的平台級中斷控制器(Platform Level Interrupt Controller,PLIC)。
附錄D主要介紹記憶體模型(memory model)的相關背景知識,幫助讀者更深入地理解RISC-V架構的記憶體模型。
附錄E主要結合多執行緒「鎖」的範例對記憶體原子操作指令的應用背景進行簡介。
附錄F和附錄G分別介紹RISC-V指令編碼清單和RISC-V虛擬指令列表。
【前言】
● 您是否想學習工業級 Verilog RTL 數位 IC 設計的精髓與技巧?
● 您是否閱讀了許多電腦系統結構的圖書仍不明就裡?
● 您是否想揭開 CPU 設計神秘的面紗,並親自設計一款處理器?
● 您是否想學習國際一流公司真實的 CPU 設計案例?
● 您是否想用最短的時間熟悉並掌握 RISC-V 架構?
● 您是否想深入理解並使用一款免費可靠的開放原始碼 RISC-V 處理器和完整的SoC 平台?
如果您對上述任意一個問題感興趣,本書都將是您很好的選擇。
芯來科技公司的團隊彙整了國際一流公司多年從事CPU設計工作的豐富經驗,開發...
目錄
第一部分 CPU 與RISC-V 整體說明
第1章 CPU 之三生三世
1.1 眼看他起高樓,眼看他宴賓客,眼看他樓塌了——CPU 眾生相
1.2 人生已如此艱難,你又何必拆穿——CPU 從業者的無奈
1.3 無敵者是多麼寂寞——ARM 統治著的世界
1.4 東邊日出西邊雨,道是無晴卻有晴—RISC-V 登場
1.5 舊時王謝堂前燕,飛入尋常百姓家——你也可以設計自己的處理器
第2章 大道至簡——RISC-V 架構之魂
2.1 簡單就是美——RISC-V 架構的設計理念
2.2 RISC-V 架構簡介
2.3 RISC-V 軟體工具鏈
2.4 RISC-V 和其他開放架構有何不同
第3章 亂花漸欲迷人眼——盤點RISC-V 商業版本與開放原始碼版本
3.1 各商業版本與開放原始碼版本整體說明
3.2 小結
第4章 開放原始碼RISC-V——蜂鳥E203 處理器核心與SoC
4.1 與眾不同的蜂鳥E203 處理器
4.2 蜂鳥E203 處理器簡介——蜂鳥雖小,五臟俱全
4.3 蜂鳥E203 處理器的性能指標
4.4 蜂鳥E203 處理器的搭配SoC
4.5 蜂鳥E203 處理器的設定選項
第二部分 一步步教你使用Verilog 設計CPU
第5章 先見森林,後觀樹木——蜂鳥E203 處理器核心設計總覽和頂層
5.1 處理器硬體設計概述
5.2 蜂鳥E203 處理器核心的設計理念
5.3 蜂鳥E203 處理器核心的RTL程式風格
5.4 蜂鳥E203 模組層次劃分
5.5 蜂鳥E203 處理器核心的原始程式碼
5.6 蜂鳥E203 處理器核心的設定選項
5.7 蜂鳥E203 處理器核心支援的RISC-V指令子集
5.8 蜂鳥E203 處理器核心的管線結構
5.9 蜂鳥E203 處理器核心的頂層介面
5.10 小結
第6章 管線不是流水帳——蜂鳥E203 處理器核心管線
6.1 處理器管線概述
6.2 處理器管線中的亂數
6.3 處理器管線中的反壓
6.4 處理器管線中的衝突
6.5 蜂鳥E203 處理器的管線
6.6 小結
第7章 萬事開頭難——一切從取指令開始
7.1 取指概述
7.2 RISC-V 架構特點對於取指的簡化
7.3 蜂鳥E203 處理器的取指實現
7.4 小結
第8章 一鼓作氣,執行力是關鍵——執行
8.1 執行概述
8.2 RISC-V 架構的特點對於執行的簡化
8.3 蜂鳥E203 處理器的執行實現
8.4 小結
第9章 善始者實繁,克終者蓋寡——交付
9.1 處理器中指令的交付、取消、更新
9.2 RISC-V 架構特點對於交付的簡化
9.3 蜂鳥E203 處理器中指令交付的硬體實現
9.4 小結
第10章 讓子彈飛一會兒——寫回
10.1 處理器的寫回
10.2 蜂鳥E203 處理器的寫回硬體實現
10.3 小結
第11章 記憶體
11.1 記憶體概述
11.2 RISC-V 架構特點對於記憶體存取指令的簡化
11.3 RISC-V 架構的記憶體存取指令
11.4 蜂鳥E203 處理器核心的記憶體子系統硬體實現
11.5 小結
第12章 黑盒子的視窗—匯流排界面單元
12.1 單晶片匯流排協定概述
12.2 自訂匯流排協定ICB
12.3 ICB 的硬體實現
12.4 蜂鳥E203 處理器核心BIU
12.5 蜂鳥E203 處理器SoC 匯流排
12.6 小結
第13章 不得不說的故事—中斷和異常
13.1 中斷和異常概述
13.2 RISC-V 架構異常處理機制
13.3 RISC-V 架構中斷定義
13.4 RISC-V 架構中與中斷和異常相關的CSR
13.5 蜂鳥E203 處理器中異常處理的硬體實現
13.6 小結
第14章 最不起眼的其實是最難的—偵錯機制
14.1 偵錯機制概述
14.2 RISC-V 架構的偵錯機制
14.3 蜂鳥E203 處理器中的偵錯機制
14.4 小結
第15章 動如脫兔,靜若處子—低功耗的訣竅
15.1 處理器低功耗技術概述
15.2 RISC-V 架構的低功耗機制
15.3 蜂鳥E203 處理器低功耗機制的硬體實現
15.4 小結
第16章 工欲善其事,必先利其器—RISC-V 可擴充輔助處理器
16.1 領域特定架構
16.2 RISC-V 架構的可擴充性
16.3 蜂鳥E203 處理器的輔助處理器擴充機制——NICE
16.4 蜂鳥E203 處理器的輔助處理器參考範例
第三部分 開發實戰
第17章 先冒個煙——執行Verilog 模擬測試
17.1 E203 開放原始碼專案的程式層次結構
17.2 E203 開放原始碼專案的測試用例
17.3 E203 開放原始碼專案的測試平台
17.4 在測試平台中執行測試用例
第18章 套上殼子上路—更多實踐
附錄A RISC-V 架構的指令集
A.1 RV32GC 架構概述
A.2 RV32E 架構概述
A.3 蜂鳥E203 處理器支援的指令清單
A.4 暫存器組
A.5 指令的PC
A.6 定址空間劃分
A.7 大端格式或小端格式
A.8 工作模式
A.9 Hart
A.10 重定模式
A.11 中斷和異常
A.12 記憶體位址管理
A.13 記憶體模型
A.14 指令類型
A.15 虛擬指令
A.16 指令編碼
附錄B RISC-V 架構的CSR
B.1 蜂鳥E203 處理器支援的CSR 列表
B.2 RISC-V 標準CSR
B.3 蜂鳥E203 處理器自訂的CSR
附錄C RISC-V 架構的PLIC
C.1 概述
C.2 PLIC 中斷目標
C.3 PLIC 中斷源
C.4 PLIC 中斷處理機制
C.5 PLIC 暫存器小結
C.6 複習與比較
附錄D 記憶體模型背景
D.1 為何要有記憶體模型的概念
D.2 記憶體模型定義的內容
D.3 記憶體模型應用實例
D.4 RISC-V 架構的記憶體模型
附錄E 記憶體原子操作指令背景
E.1 上鎖問題
E.2 透過原子操作解決上鎖問題
E.3 透過互斥操作解決上鎖問題
E.4 RISC-V 架構的相關指令
附錄F RISC-V 指令編碼清單
附錄G RISC-V 虛擬指令列表
第一部分 CPU 與RISC-V 整體說明
第1章 CPU 之三生三世
1.1 眼看他起高樓,眼看他宴賓客,眼看他樓塌了——CPU 眾生相
1.2 人生已如此艱難,你又何必拆穿——CPU 從業者的無奈
1.3 無敵者是多麼寂寞——ARM 統治著的世界
1.4 東邊日出西邊雨,道是無晴卻有晴—RISC-V 登場
1.5 舊時王謝堂前燕,飛入尋常百姓家——你也可以設計自己的處理器
第2章 大道至簡——RISC-V 架構之魂
2.1 簡單就是美——RISC-V 架構的設計理念
2.2 RISC-V 架構簡介
2.3 RISC-V 軟體工具鏈
2.4 RISC-V 和其他開放架構有何不同
第3章 亂花漸欲...