計算器系統設計(上冊)--基於FPGA的RISC處理器設計與實現 | 被動收入的投資秘訣 - 2024年7月

計算器系統設計(上冊)--基於FPGA的RISC處理器設計與實現

作者:魏繼增
出版社:電子工業
出版日期:2019年01月01日
ISBN:9787121351198
語言:繁體中文

本教材為《計算機系統設計》系列教材的上冊,以基於MIPS 32位元指令集的微處理器MiniMIPS32為目標,講授主流RISC流水線微處理器的設計與實現的方法、步驟與技巧。全書將講解處理器微架構設計,資料通路的設計與實現,流水線設計與優化,軟體環境與測試環境的搭建以及基於Digilent FPGA開發板的板級設計等幾方面內容,知識點覆蓋之前的數位邏輯設計,計算機組成原理,計算機體系結構三門課程,實現對著三門課程的貫穿式教學。

魏繼增

男,天津大學計算機科學與技術學院副教授,中國計算機學會計算機工程與工業專委會委員,中國計算機學會天津分委會委員,中國計算機學會會員,IEEE會員,ACM會員。長期從事計算機系統、嵌入式、積體電路領域的科研和教學工作。

第1章 緒論 1
1.1 計算機系統概述 1
1.1.1 計算機系統的層次結構 1
1.1.2 計算機硬體系統的組成 2
1.1.3 計算機軟體系統的組成 4
1.2 計算機系統的評價指標 4
1.3 處理器概述 6
1.3.1 指令集體系結構和微體系結構 6
1.3.2 CISC和RISC 6
1.3.3 指令集體系結構中的“五朵
金花” 7
1.3.4 MIPS指令集體系結構的發展 8
1.4 本書的主要內容 10
1.4.1 目標處理器MiniMIPS32 10
1.4.2 原型系統MiniMIPS32_SYS 10

第2章 MiniMIPS32處理器的指令集
體系結構 12
2.1 運算元的資料類型 12
2.2 寄存器概述 12
2.3 MiniMIPS32存儲空間的編址方式 15
2.4 指令系統 16
2.4.1 MiniMIPS32的指令格式 16
2.4.2 MiniMIPS32指令集和具體
操作 16
2.5 MiniMIPS32指令的定址方式 36
2.6 MiniMIPS32的操作模式 38
2.7 輔助處理器CP0 38
2.8 異常處理 38

第3章 MiniMIPS32程式的機器級表示 40
3.1 從C程式到可執行目的程式 40
3.2 基於MiniMIPS32的組合語言程式
設計 42
3.2.1 組合語言程式結構 42
3.2.2 組合語言程式虛擬指令 42
3.2.3 組合語言程式巨集指令 46
3.2.4 MIPS指令集模擬器QtSpim 48
3.3 C語言程式的機器級表示 53
3.3.1 選擇結構 53
3.3.2 迴圈結構 57
3.3.3 函式呼叫 58
3.3.4 陣列 66

第4章 現場可程式設計邏輯閘陣列FPGA
及其設計流程 69
4.1 FPGA概述 69
4.1.1 Xilinx FPGA的基本結構 70
4.1.2 Digilent Nexys4 DDR FPGA
開發平臺 73
4.2 FPGA的設計流程 74
4.3 Xilinx Vivado集成設計環境 75
4.3.1 Vivado集成設計環境介紹 75
4.3.2 基於Vivado的FPGA設計
流程 77

第5章 MiniMIPS32處理器的基本流水線
設計與實現 91
5.1 流水線的基本概念 91
5.1.1 什麼是流水線 91
5.1.2 指令流水線 91
5.1.3 指令流水線的評價指標 93
5.1.4 指令流水線的特點 94
5.2 MiniMIPS32處理器的整體結構和
設計方法 94
5.2.1 MiniMIPS32處理器的整體
結構 94
5.2.2 MiniMIPS32處理器的設計
方法 96
5.3 MiniMIPS32處理器的基本
流水線設計 97
5.3.1 非轉移類R-型指令的流水線
資料通路的設計 97
5.3.2 非轉移類I-型指令的流水線
資料通路的設計 120
5.3.3 控制單元的設計 134
5.4 基於Verilog HDL的實現與測試 142
5.4.1 MiniMIPS32處理器的基本
流水線的Verilog實現 142
5.4.2 MiniMIPS32_SYS原型系統的
Verilog實現 169
5.4.3 功能測試 171

第6章 MiniMIPS32處理器的流水線
相關問題和暫停機制 175
6.1 流水線的資料相關和消除方法 175
6.1.1 資料相關的概念 175
6.1.2 資料相關的消除辦法 177
6.1.3 支持定向前推的MiniMIPS32
處理器的設計 179
6.1.4 基於Verilog HDL的實現與
測試 181
6.2 流水線的控制相關和消除辦法 189
6.2.1 控制相關的概念 189
6.2.2 控制相關的消除辦法 189
6.2.3 轉移指令流水線資料通路的
設計 191
6.2.4 轉移指令流水線控制單元的
設計 193
6.2.5 基於Verilog HDL的實現與
測試 196
6.3 流水線的暫停機制 205
6.3.1 引起流水線暫停的原因 206
6.3.2 多週期除法指令的設計 207
6.3.3 支援暫停機制的流水線的
設計 208
6.3.4 基於Verilog HDL的實現與
測試 211

第7章 MiniMIPS32處理器異常處理的
設計與實現 225
7.1 CP0輔助處理器 225
7.1.1 概述 225
7.1.2 輔助處理器CP0中的寄存器 226
7.1.3 輔助處理器CP0指令及資料
相關 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的實現與測試 240
7.4.1 支援異常處理的MiniMIPS32
處理器流水線的Verilog HDL
實現 240
7.4.2 功能測試 260

第8章 綜合測試 264
8.1 改進的MiniMIPS32_SYS原型
系統 264
8.1.1 原型系統的架構 264
8.1.2 原型系統的實現 265
8.2 測試方法概述 272
8.3 功能點測試 273
8.4 C程測試 279

附錄A MiniMIPS32處理器交叉編譯
環境的搭建 281
A.1 虛擬機器Virtual Box的安裝 281
A.2 Ubuntu Linux作業系統的安裝 284
A.3 MiniMIPS32交叉編譯環境的安裝
與配置 290

附錄B 指令記憶體和資料記憶體的設計 293
B.1 指令記憶體的設計 293
B.2 資料記憶體的設計 299
參考文獻 304

計算機類專業學生的能力的重要特徵之一就是系統能力。系統能力的核心是在掌握計算系統基本原理的基礎上,深入掌握計算系統內部各軟/硬體部分的協同,以及計算系統各層次的邏輯關聯,瞭解計算系統呈現的外部特性與人機交互模式,開發、構建以計算技術為核心的高效應用系統。系統能力包括系統知識和工程實踐。系統能力的培養具有突出的工程教育特徵,是解決複雜工程問題的直接體現,應用和創新能力也會由此而得到強化與提升。

系統能力的培養和系統觀教育對計算機類所有專業及培養方向均適用。只有具備了系統能力,計算機類專業的學生才能站在系統的高度解決應用問題,才能成為我國急需的計算機領域創新型核心人才。

目前,國內高校計算機類專業對系統能力培養的研究改革和重視程度不夠,因而培養的學生在系統能力方面存在不少問題,不能滿足社會、學科技術的發展和要求,特別是在通過實踐教學提升計算機類專業學生系統能力方面存在很大不足。我們需要構造“一個體系、一個平臺、系列化實驗”的貫穿式實踐教學體系,達成對多門計算機類專業核心基礎課程的貫穿。那麼,讓學生自己動手“設計一台功能完備,可支援簡單作業系統微內核和常見應用運行的計算機系統”正是一個很好的複雜性工程問題,計算機類專業學生在這一過程中將完整地體驗計算機系統設計的全過程,實現從軟體的角度理解硬體,從硬體的角度理解軟體,最終達成對系統能力的訓練。

這本由天津大學計算機學院教師魏繼增、郭煒撰寫的《計算機系統設計(上冊)——基於FPGA的RISC處理器設計與實現》正是面向系統能力培養進行的一次有益嘗試。本書強調實踐性,以MIPS32指令集架構為切入點,基於主流FPGA開發平臺及EDA工具,詳細講解了一個具有標準5級流水線且功能完備的處理器的設計與實現過程。基於本書,學生可實現對程式設計、數位邏輯、計算機組成原理、計算機系統結構等多門課程知識點的融會貫通,並通過親自動手實踐,以更加直觀、形象的方式深刻領會諸如流水線、資料相關、控制相關、前推轉發、中斷異常等處理器設計過程中的重要概念。該教材在組織上採用循序漸進、啟發式方法,分階段完善處理器的功能,大大降低了設計難度,不但可以激發學生從事計算機系統設計工作的興趣,而且有助於幫助他們建立信心。本書除了關注處理器本身的設計之外,還講解了高階語言中常見的語法結構在計算機系統中的實現細節,有助於學生站在系統層面理解軟/硬體,真正明白計算機系統是如何運轉的。此外,本書還給出了單獨的章節來講解測試流程和方法。

在新工科建設的歷史機遇下,計算機類專業的教學改革,特別是系統能力的培養將關乎我國整個資訊產業的人才培養品質、自主創新能力、核心競爭力。希望更多的學校、教師參與到系統能力培養的改革中來,也願本書在教學實踐中不斷完善,為培養具備系統能力的計算機創新人才做出較大貢獻。
 


相關書籍