《手把手教你設計CPU——RISC-V處理器篇》
鬍振波 著
(2018年5月齣版)
這本書講什麼?
《手把手教你設計CPU》以極為通俗易懂的語言對RISC-V架構進行瞭係統而全麵地介紹,並且結閤蜂鳥E200係列開源處理器核對CPU設計技術進行瞭深入淺齣的講解,圖文並茂,生動活潑,體現瞭作者深厚的專業技能以及將專業知識進行通俗化錶述的優秀能力。令人印象深刻的是,本書作者在對RISC-V架構進行介紹的過程中,加入瞭大量的背景知識解讀以及個人注解,使得枯燥的專業知識變得非常易於理解,可以說是難能可貴。這是一本凝聚瞭作者多年所學的精心之作,非常值得一讀,對於RISC-V架構在國內的傳播也將具有巨大的推動作用。本書作為國內不可多得的介紹RISC-V的中文書籍,相信一定會成為該領域的經典之作。
這本書目錄
第一部分 CPU與RISC-V綜述
第1章 一文讀懂CPU之三生三世 2
1.1 眼看他起高樓,眼看他宴賓客,眼看他樓塌瞭——CPU眾生相 3
1.1.1 ISA——CPU的靈魂 4
1.1.2 CISC與RISC 5
1.1.3 32位與64位架構 6
1.1.4 ISA眾生相 6
1.1.5 CPU的領域之分 10
1.2 ISA請扛起這口鍋——為什麼國産CPU尚未足夠成功 12
1.2.1 MIPS係——龍芯和君正 12
1.2.2 x86係——北大眾誌、兆芯和海光 13
1.2.3 Power係——中晟宏芯 13
1.2.4 Alpha係——申威 14
1.2.5 ARM係——飛騰、華為海思、展訊和華芯通 14
1.2.6 背鍋俠ISA 15
1.3 人生已是如此艱難,你又何必拆穿——CPU從業者的無奈 17
1.4 無敵是多麼寂寞——ARM統治著的世界 18
1.4.1 獨樂樂與眾樂樂——ARM公司的盈利模式 18
1.4.2 小個子有大力量——無處不在的Cortex-M係列 21
1.4.3 移動王者——Cortex-A係列在手持設備領域的巨大成功 23
1.4.4 進擊的巨人——ARM進軍PC與服務器領域的雄心 25
1.5 東邊日齣西邊雨,道是無晴卻有晴——RISC-V登場 25
1.6 原來你是這樣的“薯片”——ARM的免費計劃 28
1.7 舊時王謝堂前燕,飛入尋常百姓傢——你也可以設計自己的處理器 28
第2章 大道至簡——RISC-V架構之魂 29
2.1 簡單就是美——RISC-V架構的設計
哲學 30
2.1.1 無病一身輕——架構的篇幅 30
2.1.2 能屈能伸——模塊化的
指令集 32
2.1.3 濃縮的都是精華——指令的數量 32
2.2 RISC-V指令集架構簡介 33
2.2.1 模塊化的指令子集 33
2.2.2 可配置的通用寄存器組 34
2.2.3 規整的指令編碼 34
2.2.4 簡潔的存儲器訪問指令 34
2.2.5 高效的分支跳轉指令 35
2.2.6 簡潔的子程序調用 36
2.2.7 無條件碼執行 37
2.2.8 無分支延遲槽 37
2.2.9 零開銷硬件循環 38
2.2.10 簡潔的運算指令 38
2.2.11 優雅的壓縮指令子集 39
2.2.12 特權模式 40
2.2.13 CSR寄存器 40
2.2.14 中斷和異常 40
2.2.15 矢量指令子集 40
2.2.16 自定製指令擴展 41
2.2.17 總結與比較 41
2.3 RISC-V軟件工具鏈 42
2.4 RISC-V和其他開放架構有何不同 44
2.4.1 平民英雄——OpenRISC 44
2.4.2 豪門顯貴——SPARC 44
2.4.3 名校優生——RISC-V 45
第3章 亂花漸欲迷人眼——盤點RISC-V商業版本與開源版本 46
3.1 各商業與開源版本綜述 47
3.1.1 Rocket Core(開源) 47
3.1.2 BOOM Core(開源) 49
3.1.3 Freedom SoC(開源) 50
3.1.4 LowRISC SoC(開源) 50
3.1.5 PULPino Core and SoC(開源) 50
3.1.6 PicoRV32 Core(開源) 51
3.1.7 SCR1 Core(開源) 51
3.1.8 ORCA Core(開源) 51
3.1.9 Andes Core(商業IP) 52
3.1.10 Microsemi Core(商業IP) 52
3.1.11 Codasip Core(商業IP) 53
3.1.12 蜂鳥E200 Core & SoC(開源) 53
3.2 總結 53
第4章 中國第一個開源RISC-V——蜂鳥E200係列超低功耗Core & SoC 54
4.1 與眾不同的蜂鳥E200處理器 55
4.2 蜂鳥E200簡介——蜂鳥雖小,
五髒俱全 56
4.3 蜂鳥E200型號係列 57
4.4 蜂鳥E200性能指標 58
4.5 蜂鳥E200配套SoC 59
4.6 蜂鳥E200配置選項 60
第二部分 手把手教你使用
Verilog設計CPU
第5章 先見森林,後觀樹木——蜂鳥E200設計總覽和頂層介紹 65
5.1 處理器硬件設計概述 66
5.1.1 架構和微架構 66
5.1.2 CPU、處理器、Core和
處理器核 66
5.1.3 處理器設計和驗證的特點 66
5.2 蜂鳥E200處理器核設計哲學 67
5.3 蜂鳥E200處理器核RTL代碼風格
介紹 68
5.3.1 使用標準DFF模塊例化生成
寄存器 68
5.3.2 推薦使用assign語法替代if-else和case語法 70
5.3.3 其他若乾注意事項 71
5.3.4 小結 72
5.4 蜂鳥E200模塊層次劃分 72
5.5 蜂鳥E200處理器核源代碼 73
5.6 蜂鳥E200處理器核配置選項 73
5.7 蜂鳥E200處理器核支持的RISC-V
指令子集 74
5.8 蜂鳥E200處理器流水綫結構 74
5.9 蜂鳥E200處理器核頂層接口介紹 74
5.10 總結 77
第6章 流水綫不是流水賬——蜂鳥E200
流水綫介紹 78
6.1 處理器流水綫概述 79
6.1.1 從經典的五級流水綫說起 79
6.1.2 可否不要流水綫——流水綫和狀態機的關係 81
6.1.3 深處種菱淺種稻,不深不淺種荷花——流水綫的深度 81
6.1.4 嚮上生長——越來越深的
流水綫 82
6.1.5 嚮下生長——越來越淺的
流水綫 83
6.1.6 總結 83
6.2 處理器流水綫中的亂序 83
6.3 處理器流水綫中的反壓 84
6.4 處理器流水綫中的衝突 84
6.4.1 流水綫中的資源衝突 84
6.4.2 流水綫中的數據衝突 85
6.5 蜂鳥E200處理器的流水綫 86
6.5.1 流水綫總體結構 86
6.5.2 流水綫中的衝突 87
6.6 總結 87
第7章 萬事開頭難嗎——一切從取指令 開始 88
7.1 取指概述 89
7.1.1 取指特點 89
7.1.2 如何快速取指 90
7.1.3 如何處理非對齊指令 91
7.1.4 如何處理分支指令 92
7.2 RISC-V架構特點對於取指的簡化 97
7.2.1 規整的指令編碼格式 97
7.2.2 指令長度指示碼放於低位 97
7.2.3 簡單的分支跳轉指令 98
7.2.4 沒有分支延遲槽指令 100
7.2.5 提供明確的靜態分支預測依據 100
7.2.6 提供明確的RAS依據 101
7.3 蜂鳥E200處理器的取指實現 101
7.3.1 IFU總體設計思路 102
7.3.2 Mini-Decode 103
7.3.3 Simple-BPU分支預測 105
7.3.4 PC生成 109
7.3.5 訪問ITCM和BIU 111
7.3.6 ITCM 115
7.3.7 BIU 116
7.4 總結 116
第8章 一鼓作氣,執行力是關鍵—— 執行 117
8.1 執行概述 118
8.1.1 指令譯碼 118
8.1.2 指令執行 118
8.1.3 流水綫的衝突 119
8.1.4 指令的交付 119
8.1.5 指令發射、派遣、執行、寫迴的順序 119
8.1.6 分支解析 121
8.1.7 小結 121
8.2 RISC-V架構特點對於執行的簡化 122
8.2.1 規整的指令編碼格式 122
8.2.2 優雅的16位指令 122
8.2.3 精簡的指令個數 122
8.2.4 整數指令都是兩操作數 123
8.3 蜂鳥E200處理器的執行實現 123
8.3.1 執行指令列錶 123
8.3.2 EXU總體設計思路 123
8.3.3 譯碼 124
8.3.4 整數通用寄存器組 130
8.3.5 CSR寄存器 133
8.3.6 指令發射派遣 134
8.3.7 流水綫衝突、長指令和OITF 139
8.3.8 ALU 145
8.3.9 高性能乘除法 157
8.3.10 浮點單元 158
8.3.11 交付 159
8.3.12 寫迴 159
8.3.13 協處理器擴展 160
8.3.14 小結 160
第9章 善始者實繁,剋終者蓋寡——交付 161
9.1 處理器交付、取消、衝刷 162
9.1.1 處理器交付、取消、衝刷簡介 162
9.1.2 處理器交付常見實現策略 163
9.2 RISC-V架構特點對於交付的簡化 164
9.3 蜂鳥E200處理器交付硬件實現 164
9.3.1 分支預測指令的處理 165
9.3.2 中斷和異常的處理 168
9.3.3 多周期執行指令的交付 169
9.3.4 小結 169
第10章 讓子彈飛一會兒——寫迴 170
10.1 處理器的寫迴 171
10.1.1 處理器寫迴功能簡介 171
10.1.2 處理器寫迴常見策略 171
10.2 蜂鳥E200處理器的寫迴硬件實現 171
10.2.1 最終寫迴仲裁 172
10.2.2 OITF和長指令寫迴仲裁 174
10.2.3 小結 177
第11章 哈弗還是比亞迪—— 存儲器架構 178
11.1 存儲器架構概述 179
11.1.1 誰說處理器一定要有緩存 179
11.1.2 處理器一定要有存儲器 180
11.1.3 ITCM和DTCM 182
11.2 RISC-V架構特點對於存儲器訪問指令的簡化 183
11.2.1 僅支持小端格式 183
11.2.2 無地址自增自減模式 183
11.2.3 無“一次讀多個數據”和“一次寫多個數據”指令 183
11.3 RISC-V架構的存儲器相關指令 184
11.3.1 Load和Store指令 184
11.3.2 Fence指令 184
11.3.3 “A”擴展指令 184
11.4 蜂鳥E200處理器存儲器子係統硬件實現 185
11.4.1 存儲器子係統總體設計思路 185
11.4.2 AGU 186
11.4.3 LSU 190
11.4.4 ITCM和DTCM 192
11.4.5 “A”擴展指令處理 195
11.4.6 Fence與Fence.I指令處理 200
11.4.7 BIU 202
11.4.8 ECC 202
11.4.9 小結 202
第12章 黑盒子的窗口——總綫接口單元BIU 203
12.1 片上總綫協議概述 204
12.1.1 AXI 204
12.1.2 AHB 204
12.1.3 APB 205
12.1.4 TileLink 205
12.1.5 總結比較 205
12.2 自定義總綫協議ICB 206
12.2.1 ICB總綫協議簡介 206
.....................
評分
評分
評分
評分
評分
評分
評分
評分
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有