甄建勇編著的《深入理解OpenRISC體系結構》是一本介紹OpenRISC體系結構的圖書。通過閱讀本書,讀者不僅可以獲得計算機體系結構設計的基礎理論知識。還可以掌握動手設計處理器的基本技能,邁人CPU設計的大門, 本書大致可分為三部分,即知識儲備、實例分析和動手實踐。其中部分著重介紹了體系結構設計中的概念、并行技術、局部性原理,以及進行計算機體系結構設計的一般流程。第二部分以OpenRISC為分析對象,深入分析了開源CPU數據通路、控制通路和存儲器層次組織的實際實現,對研究體系結構設計具有很高的現實意義和實踐價值。此外本部分還介紹了以OpenRISC為基礎的ORPSoC的很多設計細節。第三部分介紹如何運用前面的積累設計一個簡單的RISC核,以及設計的仿真和FPGA驗證。 本書適合急于了解和掌握體系結構設計基礎,對開源CPU內部實現充滿好奇,并想動手設計屬于自己的CPU的讀者,以及從事嵌入式開發的技術人員。此外,本書還可作為對計算機體系結構設計感興趣的電子工程類、自動控制類、計算機類的高年級本科生和研究生的參考用書。
甄建勇,嵌入式驅動工程師,芯片設計工程師,曾在中科院體系結構重點實驗室工作。現供職君正集成電路,負責芯片架構設計。長期專注于嵌入式設備驅動開發和數字電路設計,并積累了大量理論和工程經驗。一直以開源軟件和開源硬件的發展為己任,是開源處理器OpenRISC的實踐者和推動者。2010年開始關注Opencores組織的OpenRISC開源體系結構,并在2013年年初在CSDN網站開設了OpenRISC專欄,以"關注OpenRISC開源體系結構的發展,研究OpenRISC的Verilog HDL源碼,討論學習OpenRISC中遇到的各種問題"為宗旨,短時間內就吸引了成千上萬的點擊量和回復。
前言
章 緒論
1.1 概述
1.2 計算機漫談
1.2.1 十進制計算機
1.2.2 二進制計算機
1.3 計算機體系結構
1.3.1 圖靈與圖靈機
1.3.2 馮.諾依曼與馮.諾依曼體系結構
1.3.3 改進的哈佛體系結構
1.3.4 發展趨勢
1.4 并行技術
1.4.1 流水線
1.4.2 亂序
1.4.4 單指令多數據流
1.4.5 同時多線程
1.4.6 單芯片多處理器
1.4.7 對稱多處理器
1.5 局部性原理
1.6 計算機的評價
1.7 設計流程
1.7.1 分析
1.7.2 模擬器
1.7.3 FPGA設計
1.7.4 ASIC
1.8 OpenRISC
1.8.1 概述
1.8.2 OpenRISC寄存器集
1.8.3 OpenRISC指令集
1.9 小結
1.10 習題
第2章 基于OpenRISC的開發
2.1 概述
2.2 項目描述
2.3 開發環境的構建
2.3.1 開發環境的組成
2.3.2 開發環境的選擇與安裝
2.4 硬件的開發
2.4.1 模塊劃分和編碼實現
2.4.2 功能仿真與時序仿真
2.5 驅動程序的開發
2.6 FPGA板級驗證
2.7 硬件與軟件的比較
2.8 ORPSoC與or1200
2.8.1 ORPSoC架構分析
2.8.2 ORPSoC的啟動過程
2.8.3 or1200
2.9 小結
2.10 習題
第3章 數據通路設計
3.1 概述
3.2 數據通路
3.3 OpenRISC的數據通路整體架構分析
3.4 取指
3.5 譯碼
3.6 執行
3.6.1 運算部件基礎
3.6.2 or1200的運算部件
3.7 訪存
3.7.1 流水線的訪存階段
3.7.2 or1200訪存階段的具體實現分析
3.8 寫回
3.8.1 or1200寫回階段整體功能
3.8.2 or1200寫回階段具體實現代碼分析
3.9 設計一個簡單的除法器
3.10 小結
3.11 習題
第4章 控制通路設計
4.1 概述
4.2 控制通路的復雜性
4.3 OR的控制通路設計分析
4.3.1 整體介紹
4.3.2 sprs模塊
4.4 OR的異常處理
4.4.1 except模塊
4.4.2 freeze模塊
4.5 OR的調試系統
4.5.1 調試方案的分類
4.5.2 advanceddebugsystem
4.5.3 我的調試系統
4.5.4 JTAG模塊
4.6 基于or1200的中斷實驗
4.7 小結
4.8 習題
第5章 存儲器組織
5.1 概述
5.2 TLB與Cache
5.2.1 概述
5.2.2 TLB
5.2.3 Cache
5.3 OR的存儲器組織
5.3.1 OR的MMU
5.3.2 OR的Cache
5.4 自己設計一個簡單的Cache
5.5 小結
5.6 習題
第6章 自己設計一個簡單的CPU
6.1 概述
6.2 層次建模
6.3 可綜合代碼風格
6.4 一個簡單CPU的設計、實現、仿真與綜合
6.4.1 架構設計
6.4.2 模塊劃分
6.4.3 模塊劃分與接口定義
6.4.4 RTL實現
6.4.5 ModelSim仿真
6.4.6 綜合
6.4.7 改進及優化
6.4.8 tiny_core的指令集
6.5 小結
6.6 習題
附錄A 常用公式和定律
附錄B wishbone
附錄C 狀態機的4種寫法
附錄D 跨時鐘域信號的同步
附錄E 閱讀
參考文獻
后記