目錄
第一部分 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 虛擬指令列表