TOP
0
0
魅麗。花火原創小說66折起
計算機系統設計‧上冊:基於FPGA的RISC處理器設計與實現(簡體書)
滿額折

計算機系統設計‧上冊:基於FPGA的RISC處理器設計與實現(簡體書)

人民幣定價:55 元
定  價:NT$ 330 元
優惠價:87287
領券後再享89折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:8 點
相關商品
商品簡介
作者簡介
目次

商品簡介

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

作者簡介

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

序 言
計算機類專業學生的能力的重要特徵之一就是系統能力。系統能力的核心是在掌握計算系統基本原理的基礎上,深入掌握計算系統內部各軟/硬件部分的協同,以及計算系統各層次的邏輯關聯,瞭解計算系統呈現的外部特性與人機交互模式,開發、構建以計算技術為核心的高效應用系統。系統能力包括系統知識和工程實踐。系統能力的培養具有突出的工程教育特徵,是解決複雜工程問題的直接體現,應用和創新能力也會由此而得到強化與提升。
系統能力的培養和系統觀教育對計算機類所有專業及培養方向均適用。只有具備了系統能力,計算機類專業的學生才能站在系統的高度解決應用問題,才能成為我國急需的計算機領域創新型核心人才。
目前,國內高校計算機類專業對系統能力培養的研究改革和重視程度不夠,因而培養的學生在系統能力方面存在不少問題,不能滿足社會、學科技術的發展和要求,特別是在通過實踐教學提升計算機類專業學生系統能力方面存在很大不足。我們需要構造“一個體系、一個平臺、系列化實驗”的貫穿式實踐教學體系,達成對多門計算機類專業核心基礎課程的貫穿。那麼,讓學生自己動手“設計一台功能完備,可支持簡單操作系統微內核和常見應用運行的計算機系統”正是一個很好的複雜性工程問題,計算機類專業學生在這一過程中將完整地體驗計算機系統設計的全過程,實現從軟件的角度理解硬件,從硬件的角度理解軟件,最終達成對系統能力的訓練。
這本由天津大學計算機學院教師魏繼增、郭煒撰寫的《計算機系統設計(上冊)――基於FPGA的RISC處理器設計與實現》正是面向系統能力培養進行的一次有益嘗試。本書強調實踐性,以MIPS32指令集架構為切入點,基於主流FPGA開發平臺及EDA工具,詳細講解了一個具有標準5級流水線且功能完備的處理器的設計與實現過程。基於本書,學生可實現對程序設計、數字邏輯、計算機組成原理、計算機系統結構等多門課程知識點的融會貫通,並通過親自動手實踐,以更加直觀、形象的方式深刻領會諸如流水線、數據相關、控制相關、前推轉發、中斷異常等處理器設計過程中的重要概念。該教材在組織上採用循序漸進、啟發式方法,分階段完善處理器的功能,大大降低了設計難度,不但可以激發學生從事計算機系統設計工作的興趣,而且有助於幫助他們建立信心。本書除了關注處理器本身的設計之外,還講解了高級語言中常見的語法結構在計算機系統中的實現細節,有助於學生站在系統層面理解軟/硬件,真正明白計算機系統是如何運轉的。此外,本書還給出了單獨的章節來講解測試流程和方法。
在新工科建設的歷史機遇下,計算機類專業的教學改革,特別是系統能力的培養將關乎我國整個信息產業的人才培養質量、自主創新能力、核心競爭力。希望更多的學校、教師參與到系統能力培養的改革中來,也願本書在教學實踐中不斷完善,為培養具備系統能力的計算機創新人才做出較大貢獻。



前 言
本教材的寫作背景和意義
經過“復旦共識、天大行動、北京指南”,具有中國特色工程教育的新工科(Emerging Engineering Education)建設全面啟動。面向新工科,計算機類專業的教學改革也勢在必行。在過去的20年間,計算機類專業在移動互聯網、雲計算、人工智能等領域已為我國培養了大量人才。但這些人才主要集中在計算機應用領域,而在計算機系統設計方面,包括處理器、操作系統和編譯系統等,卻是人才緊缺,導致我國在各類型計算機設計中所使用的核心器件、高端芯片、基礎軟件長期依賴進口,受制於人,嚴重影響了“自主可控”國家信息產業戰略的實施,嚴重危害國家安全,也是我國計算機領域自主創新不足的重要原因。國外先進的處理器、平臺和操作系統就好比武器,而我們的學生喜歡拿別人給的先進武器去“打仗”(做應用層開發),一旦有一天我們和外國人“打”起來,人家拿走了我們的武器,我們就真的一籌莫展了。造成這一問題的根本原因是,目前的計算機教育缺乏對學生進行“系統能力”的培養。所謂“系統能力”,是指能夠理解計算機系統的整體性、關聯性、層次性、動態性和開放性,掌握計算機軟/硬件協同工作及相互作用機制,並綜合運用多種知識與技術完成全系統開發的能力。只有具備了“系統能力”,計算機類專業的學生才能站在系統高度解決應用問題,才能成為我國急需的創新型核心人才。
讓學生自己動手“設計一台功能完備,可支持簡單操作系統和常見應用運行的計算機系統”將十分有助於“系統能力”的培養,同時還可激發學生從事計算機系統開發的興趣和激情。但目前,我國計算機教學中存在知識銜接脫節、缺乏工程性和綜合性教學方法、缺乏具有工程規模的系統性實驗等問題,無法保證學生解決這樣一個極具難度和挑戰性的工程問題,自然也就談不上“系統能力”的培養。因此,我們需要建設一系列全新的課程、教材對其進行嘗試和探索。
作者以踐行“系統能力”培養為目標,基於Digilent公司的FPGA開發平臺,利用軟/硬件協同設計與驗證方法學,圍繞“設計一台功能完備,可支持操作系統微內核和常見應用運行的計算機系統”這個複雜工程問題,編寫了這套計算機系統設計系列教材。這套教材由上、下兩冊組成,上冊專注於主流RISC處理器的設計與實現,下冊使用所設計的處理器結合總線和常見外設構建一個完整的計算機系統,並完成開源操作系統的移植和常見應用的開發。
本教材的適用範圍和課程
不同於國內很多高校已開設的“計算機系統基礎”或“計算機系統導論”等課程,這些課程一般開設在本科低年級,旨在開始計算機各專業課學習之前對計算機系統形成初步認識。而本系列教材更加專注於計算機系統的設計過程,通過真正的動手實踐使學生做到對數字邏輯、計算機組成原理、匯編程序設計、操作系統、計算機系統結構等課程所學知識的有序銜接和綜合運用,形成對計算機系統更直觀、更形象、更全面的認識。因此本教材適用於計算機類專業(也包括微電子、集成電路與集成系統專業)本科高年級(大三、大四)或研究生階段。在使用本教材之前,學生應至少修完數字邏輯、計算機組成原理、計算機系統結構、操作系統等基礎課程,此外,如果具備硬件描述語言和FPGA開發知識,則將更加事半功倍。
使用本教材開設的課程名稱可以是“計算機系統設計”、“計算機系統綜合實驗”或類似名稱;也可將本教材選為“計算機組成原理”、“計算機系統結構”等課程的實驗教材,或短學期綜合實踐類教材。
此外,書中並非所有章節都是必需的,在教學過程中,可根據學生的實際情況有所取捨。例如,如果學生在之前的計算機組成原理或相關課程中已經學習了MIPS匯編語言、高級語言的機器級表示等內容,則可以跳過第2、3章,只關注處理器的硬件設計與實現;如果學生之前已經使用過Xilinx FPGA和Vivado進行過開發,則可以跳過第4章;如果只需要瞭解基本流水線的設計細節,則可以跳過第5、6章。
本書的寫作思路和特色
本書為《計算機系統設計》系列教材的上冊。雖然處理器及指令集體系結構的種類繁多、千差萬別,但其設計原理和實現方法是相同的。因此,本書以設計基於MIPS 32位指令集的處理器MiniMIPS32為主線,講授主流RISC流水線處理器的設計與實現的方法、步驟與技巧。本書將講解處理器微架構設計、數據通路的設計與實現、流水線設計與優化、軟件環境與測試環境的搭建及基於Digilent FPGA開發板的板級設計等內容。書中將處理器及原型系統設計過程中每個環節所涉及的硬件和軟件的基本概念關聯起來,力爭給讀者建立一個功能完備、層次分明的處理器架構,也為下冊教材開展SoC的軟/硬件設計奠定重要基礎。本書的特色表現在以下幾個方面:
? 更精簡的處理器結構:雖然有很多開源項目也提供基於MIPS指令集的處理器,但畢竟是商業級代碼,對大多數無處理器設計經驗的老師和剛接觸處理器結構的學生而言,實踐難度較大。本書所設計的MiniMIPS32處理器採用更精簡的指令集(共56條指令),但功能完備,可支持操作系統內核等中、大規模程序的運行。
? 與前序課程的教學內容結合緊密:本書構建的MiniMIPS32處理器採用經典5級流水線,支持定向前推、相關性處理、延遲轉移、暫停等常見流水線技術及異常處理機制,與多數主流的計算機組成原理、計算機系統結構教材書中的理論內容保持一致。
? “增量式”教學:本書借鑒軟件工程中的“增量模型”開發方法,學生無須全部從零開始,選取MiniMIPS32處理器中的26條指令為例,採用循序漸進的方式,逐步添加處理器的功能,並為學生提供了詳盡的軟/硬件源碼。學生通過參考已有代碼,根據具體設計需求和目標即可完成剩餘指令的設計,在降低設計難度的同時,可激發學生從事計算機系統設計的興趣,幫助他們建立信心,也使學生更關注系統設計過程中的關鍵環節。
本書的內容安排
本書共由8章組成,分為3個部分:
(1)基礎理論部分
第1章:緒論,重點介紹計算機系統的基本概念,涉及計算機系統的層次結構、計算機系統的組成、評價方法及指令集體系結構。
第3章:MiniMIPS32處理器的指令集體系結構,著重介紹MiniMIPS32指令集體系結構的構成要素。
第3章:MiniMIPS32程序的機器級表示,講解基於MiniMIPS32的匯編程序設計和常見的C語言語法結構在機器級的表示,做到從軟件的層面瞭解MiniMIPS32處理器的硬件結構。
第4章:現場可編程邏輯門陣列FPGA及其設計流程,重點介紹基於Xilinx Vivado的FPGA設計流程,為後續處理器及系統設計奠定工具使用的基礎。
(2)處理器設計部分
第5章:MiniMIPS32處理器的基本流水線設計與實現,重點講述基於5級理想流水線的處理器設計方案,並給出基於Verilog HDL的實現。
第6章:MiniMIPS32處理器的流水線相關問題和暫停機制,針對流水線中常見的相關性問題,給出MiniMIPS32處理器的解決方案,在無法消除相關時,則設計暫停機制,並給出基於Verilog HDL的實現。
第7章:MiniMIPS32處理器異常處

目次

目 錄

第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

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 287
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區