計算機系統(tǒng)設計(上冊)——基于FPGA的RISC處理器設計與實現(xiàn)
定 價:55 元
- 作者:魏繼增
- 出版時間:2019/1/1
- ISBN:9787121351198
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP302.1
- 頁碼:316
- 紙張:
- 版次:01
- 開本:16開
本教材為《計算機系統(tǒng)設計》系列教材的上冊,以基于MIPS 32位指令集的微處理器MiniMIPS32為目標,講授主流RISC流水線微處理器的設計與實現(xiàn)的方法、步驟與技巧。全書將講解處理器微架構(gòu)設計,數(shù)據(jù)通路的設計與實現(xiàn),流水線設計與優(yōu)化,軟件環(huán)境與測試環(huán)境的搭建以及基于Digilent FPGA開發(fā)板的板級設計等幾方面內(nèi)容,知識點覆蓋之前的數(shù)字邏輯設計,計算機組成原理,計算機體系結(jié)構(gòu)三門課程,實現(xiàn)對著三門課程的貫穿式教學。
魏繼增,男,天津大學計算機科學與技術學院副教授,中國計算機學會計算機工程與工業(yè)專委會委員,中國計算機學會天津分委會委員,中國計算機學會會員,IEEE會員,ACM會員。長期從事計算機系統(tǒng)、嵌入式、集成電路領域的科研和教學工作。
目 錄
第1章 緒論 1
1.1 計算機系統(tǒng)概述 1
1.1.1 計算機系統(tǒng)的層次結(jié)構(gòu) 1
1.1.2 計算機硬件系統(tǒng)的組成 2
1.1.3 計算機軟件系統(tǒng)的組成 4
1.2 計算機系統(tǒng)的評價指標 4
1.3 處理器概述 6
1.3.1 指令集體系結(jié)構(gòu)和微體系結(jié)構(gòu) 6
1.3.2 CISC和RISC 6
1.3.3 指令集體系結(jié)構(gòu)中的“五朵
金花” 7
1.3.4 MIPS指令集體系結(jié)構(gòu)的發(fā)展 8
1.4 本書的主要內(nèi)容 10
1.4.1 目標處理器MiniMIPS32 10
1.4.2 原型系統(tǒng)MiniMIPS32_SYS 10
第2章 MiniMIPS32處理器的指令集
體系結(jié)構(gòu) 12
2.1 操作數(shù)的數(shù)據(jù)類型 12
2.2 寄存器概述 12
2.3 MiniMIPS32存儲空間的編址方式 15
2.4 指令系統(tǒng) 16
2.4.1 MiniMIPS32的指令格式 16
2.4.2 MiniMIPS32指令集和具體
操作 16
2.5 MiniMIPS32指令的尋址方式 36
2.6 MiniMIPS32的操作模式 38
2.7 協(xié)處理器CP0 38
2.8 異常處理 38
第3章 MiniMIPS32程序的機器級表示 40
3.1 從C程序到可執(zhí)行目標程序 40
3.2 基于MiniMIPS32的匯編程序
設計 42
3.2.1 匯編程序結(jié)構(gòu) 42
3.2.2 匯編程序偽指令 42
3.2.3 匯編程序宏指令 46
3.2.4 MIPS指令集仿真器QtSpim 48
3.3 C語言程序的機器級表示 53
3.3.1 選擇結(jié)構(gòu) 53
3.3.2 循環(huán)結(jié)構(gòu) 57
3.3.3 函數(shù)調(diào)用 58
3.3.4 數(shù)組 66
第4章 現(xiàn)場可編程邏輯門陣列FPGA
及其設計流程 69
4.1 FPGA概述 69
4.1.1 Xilinx FPGA的基本結(jié)構(gòu) 70
4.1.2 Digilent Nexys4 DDR FPGA
開發(fā)平臺 73
4.2 FPGA的設計流程 74
4.3 Xilinx Vivado集成設計環(huán)境 75
4.3.1 Vivado集成設計環(huán)境介紹 75
4.3.2 基于Vivado的FPGA設計
流程 77
第5章 MiniMIPS32處理器的基本流水線
設計與實現(xiàn) 91
5.1 流水線的基本概念 91
5.1.1 什么是流水線 91
5.1.2 指令流水線 91
5.1.3 指令流水線的評價指標 93
5.1.4 指令流水線的特點 94
5.2 MiniMIPS32處理器的整體結(jié)構(gòu)和
設計方法 94
5.2.1 MiniMIPS32處理器的整體
結(jié)構(gòu) 94
5.2.2 MiniMIPS32處理器的設計
方法 96
5.3 MiniMIPS32處理器的基本
流水線設計 97
5.3.1 非轉(zhuǎn)移類R-型指令的流水線
數(shù)據(jù)通路的設計 97
5.3.2 非轉(zhuǎn)移類I-型指令的流水線
數(shù)據(jù)通路的設計 120
5.3.3 控制單元的設計 134
5.4 基于Verilog HDL的實現(xiàn)與測試 142
5.4.1 MiniMIPS32處理器的基本
流水線的Verilog實現(xiàn) 142
5.4.2 MiniMIPS32_SYS原型系統(tǒng)的
Verilog實現(xiàn) 169
5.4.3 功能測試 171
第6章 MiniMIPS32處理器的流水線
相關問題和暫停機制 175
6.1 流水線的數(shù)據(jù)相關和消除方法 175
6.1.1 數(shù)據(jù)相關的概念 175
6.1.2 數(shù)據(jù)相關的消除辦法 177
6.1.3 支持定向前推的MiniMIPS32
處理器的設計 179
6.1.4 基于Verilog HDL的實現(xiàn)與
測試 181
6.2 流水線的控制相關和消除辦法 189
6.2.1 控制相關的概念 189
6.2.2 控制相關的消除辦法 189
6.2.3 轉(zhuǎn)移指令流水線數(shù)據(jù)通路的
設計 191
6.2.4 轉(zhuǎn)移指令流水線控制單元的
設計 193
6.2.5 基于Verilog HDL的實現(xiàn)與
測試 196
6.3 流水線的暫停機制 205
6.3.1 引起流水線暫停的原因 206
6.3.2 多周期除法指令的設計 207
6.3.3 支持暫停機制的流水線的
設計 208
6.3.4 基于Verilog HDL的實現(xiàn)與
測試 211
第7章 MiniMIPS32處理器異常處理的
設計與實現(xiàn) 225
7.1 CP0協(xié)處理器 225
7.1.1 概述 225
7.1.2 協(xié)處理器CP0中的寄存器 226
7.1.3 協(xié)處理器CP0指令及數(shù)據(jù)
相關 229
7.2 異常的基本概念 230
7.2.1 異常和中斷 230
7.2.2 異常處理的流程 231
7.3 MiniMIPS32處理器的異常處理 232
7.3.1 精確異常 232
7.3.2 支持的異常類型 233
7.3.3 MiniMIPS32處理器的異常
處理流程 234
7.3.4 支持異常處理的MiniMIPS32
處理器流水線的設計 236
7.4 基于Verilog HDL的實現(xiàn)與測試 240
7.4.1 支持異常處理的MiniMIPS32
處理器流水線的Verilog HDL
實現(xiàn) 240
7.4.2 功能測試 260
第8章 綜合測試 264
8.1 改進的MiniMIPS32_SYS原型
系統(tǒng) 264
8.1.1 原型系統(tǒng)的架構(gòu) 264
8.1.2 原型系統(tǒng)的實現(xiàn) 265
8.2 測試方法概述 272
8.3 功能點測試 273
8.4 C程測試 279
附錄A MiniMIPS32處理器交叉編譯
環(huán)境的搭建 281
A.1 虛擬機Virtual Box的安裝 281
A.2 Ubuntu Linux操作系統(tǒng)的安裝 284
A.3 MiniMIPS32交叉編譯環(huán)境的安裝
與配置 290
附錄B 指令存儲器和數(shù)據(jù)存儲器的設計 293
B.1 指令存儲器的設計 293
B.2 數(shù)據(jù)存儲器的設計 299
參考文獻 304