-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
CPU設計實戰 版權信息
- ISBN:9787111674139
- 條形碼:9787111674139 ; 978-7-111-67413-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
CPU設計實戰 本書特色
適讀人群 :高校計算機專業的本科生、研究生,從事計算機芯片開發的技術人員、高校從事計算機組成、體系結構課程教學的教師(1)本書按照CPU設計的實際工程過程安排內容。全書分為三個部分:**部分從工程化的視角介紹業界進行CPU研發的過程,并且提煉出完成CPU設計應具備的FPGA設計、Verilog、軟硬件平臺等方面的基礎知識;第二部分圍繞一個基本的單周期CPU的設計,逐步引入流水線、指令、例外和中斷、總線、高速緩存等部分的設計和實現,*終完成一個入門級的CPU設計;第三部分則在基本CPU的基礎上進一步添加常見指令和功能,啟發讀者的創造力,使設計出的CPU更接近真實產品。通過這樣循序漸進、層層深入的安排,引導讀者逐步掌握CPU的設計方法。 (2)書中融入大量工程實踐經驗、設計原則、開發技巧、需要規避的設計風險、常見錯誤等內容,幫助讀者理解在真實的工程場景中應該考慮的問題,學會在各種現實條件下進行權衡,根據目標找到*優的解決方案。 (3)涵蓋設計思維、設計方法到設計工具的全面介紹,案例豐富,可操作性強。通過學習本書,讀者不僅可以掌握CPU的設計方法,更能在這個過程中很好地訓練工程設計思維,為今后的工作打下堅實的基礎。
CPU設計實戰 內容簡介
本書面向CPU設計的初學者, 采用循序漸進、層層推進的方式介紹CPU的完整開發過程。全書包括三部分, **部分介紹工程化CPU的研發過程以及設計CPU需要掌握的基礎知識 ; 第二部分從一個基本的單周期CPU設計開始, 逐步引入流水線、指令、例外、中斷等功能, 并完成總線、TLB MMU、高速緩存等功能的設計 ; 第三部分為進階設計內容, 涵蓋Linux內核、提升主頻、雙發射流水、動態調度、訪存優化、多核處理器等功能的實現。
CPU設計實戰 目錄
目 錄
叢書序言
序
前言
第1章CPU芯片研發過程概述 1
1.1處理器和處理器核 1
1.2芯片產品的研制過程 2
1.3芯片設計的工作階段 3
第2章硬件實驗平臺及FPGA設計流程 5
2.1硬件實驗平臺 5
2.1.1龍芯CPU設計與體系結構教學實驗系統 5
2.1.2龍芯計算機系統能力培養遠程實驗平臺 7
2.2FPGA的設計流程 8
2.2.1FPGA的一般設計流程 9
2.2.2基于Vivado的FPGA設計流程 10
2.2.3Vivado使用小貼士 33
2.3任務與實踐 35
第3章數字邏輯電路設計基礎 36
3.1數字邏輯電路設計與Verilog代碼開發 36
3.1.1面向硬件電路的設計思維方式 37
3.1.2行為描述的Verilog編程風格 38
3.1.3自頂向下的設計劃分過程 38
3.1.4常用數字邏輯電路的Verilog描述 39
3.2數字邏輯電路功能仿真的常見錯誤及其調試方法 55
3.2.1功能仿真波形分析 56
3.2.2波形異常類錯誤的調試 60
3.3進一步使用Vivado 66
3.3.1定制同步RAM IP核 66
3.3.2定制異步RAM IP核 68
3.3.3查看時序結果和資源利用率 69
3.4任務與實踐 69
3.4.1實踐任務一:寄存器堆仿真 70
3.4.2實踐任務二:同步RAM和異步RAM仿真、綜合與實現 71
3.4.3實踐任務三:數字邏輯電路的設計與調試 72
第4章簡單流水線CPU設計 74
4.1設計一個簡單的單周期CPU 75
4.1.1設計單周期CPU的總體思路 75
4.1.2單周期CPU的數據通路設計 76
4.1.3單周期CPU的控制信號生成 88
4.1.4復位的處理 91
4.2不考慮相關沖突的流水線CPU設計 92
4.2.1添加流水級間緩存 92
4.2.2同步RAM的引入 93
4.2.3調整更新PC的數據通路 96
4.2.4不考慮相關沖突情況下流水線控制信號的設計 96
4.3CPU設計開發環境(CPU_CDE) 97
4.3.1快速上手CPU設計的開發環境 97
4.3.2CPU設計開發環境的組織與結構 99
4.3.3CPU設計開發環境使用進階 113
4.4CPU設計的功能仿真調試技術 117
4.4.1為什么要用基于Trace比對的調試輔助手段 117
4.4.2基于Trace比對調試手段的盲區及其對策 119
4.4.3學會閱讀匯編程序和反匯編代碼 119
4.4.4CPU調試中要抓取的信號以及如何看這些信號 124
4.5指令相關與流水線沖突 125
4.5.1處理寄存器寫后讀數據相關引發的流水線沖突 126
4.5.2轉移計算未完成 127
4.6流水線數據的前遞設計 127
4.6.1前遞的數據通路設計 128
4.6.2前遞的流水線控制信號調整 130
4.6.3前遞引發的主頻下降 131
4.7任務與實踐 131
4.7.1實踐任務一:簡單CPU參考設計調試 132
4.7.2實踐任務二:用阻塞技術解決相關引發的沖突 132
4.7.3實踐任務三:用前遞技術解決相關引發的沖突 133
第5章在流水線中添加運算類指令 134
5.1算術邏輯運算類指令的添加 134
5.1.1ADD、ADDI和SUB指令的添加 134
5.1.2SLTI和SLTIU指令的添加 135
5.1.3ANDI、ORI和XORI指令的添加 135
5.1.4SLLV、SRLV和SRAV指令的添加 135
5.2乘除法運算類指令的添加 136
5.2.1調用Xilinx IP實現乘除法運算部件 136
5.2.2電路級實現乘法器 140
5.2.3電路級實現除法器 147
5.3乘除法配套數據搬運指令的添加 154
5.3.1乘法運算實現為單周期的情況 155
5.3.2乘法運算實現為多周期流水的情況 155
5.4任務與實踐 156
第6章在流水線中添加轉移指令和訪存指令 157
6.1轉移指令的添加 157
6.1.1BGEZ、BGTZ、BLEZ和BLTZ指令 158
6.1.2J指令 158
6.1.3BLTZAL和BGEZAL指令 158
6.1.4JALR指令 158
6.2訪存指令的添加 158
6.2.1LB、LBU、LH和LHU指令的添加 158
6.2.2SB和SH指令的添加 159
6.2.3非對齊訪存指令的說明 160
6.2.4LWL和LWR指令的添加 162
6.2.5SWL和SWR指令的添加 164
6.3任務與實踐 164
第7章例外和中斷的支持 166
7.1例外和中斷的基本概念 166
7.1.1例外是一套軟硬件協同處理的機制 166
7.1.2精確例外 167
7.2MIPS指令系統中與例外相關的功能定義 168
7.2.1CP0寄存器 168
7.2.2例外產生條件的判定 168
7.2.3例外入口 170
7.2.4MFC0和MTC0指令 170
7.2.5ERET指令 170
7.3流水線CPU實現例外和中斷的設計要點 170
7.3.1例外檢測邏輯 170
7.3.2精確例外的實現 172
7.3.3CP0寄存器 173
7.3.4CP0沖突 179
7.4任務與實踐 180
7.4.1實踐任務一:添加syscall例外支持 181
7.4.2實踐任務二:添加其他例外支持 181
第8章AXI總線接口設計 184
8.1類SRAM總線 184
8.1.1主方和從方 185
8.1.2類SRAM總線接口信號的定義 185
8.1.3類SRAM總線的讀寫時序 186
8.1.4類SRAM總線的約束 189
8.2類SRAM總線的設計 189
8.2.1取指設計的考慮 190
8.2.2訪存設計的考慮 195
8.3AXI總線協議 195
8.3.1AXI總線信號一覽 195
8.3.2理解AXI總線協議 197
8.3.3類SRAM總線接口信號與AXI總線接口信號的關系 202
8.4類SRAM-AXI的轉接橋設計 203
8.4.1轉接橋的頂層接口 203
8.4.2轉接橋的設計要求 204
8.4.3轉接橋的設計建議 204
8.5任務與實踐 205
8.5.1實踐任務一:添加類SRAM總線支持 205
8.5.2實踐任務二:添加AXI總線支持 208
8.5.3實踐任務三:完成AXI隨機延遲驗證 210
第9章TLB MMU設計 211
9.1TLB模塊的基礎知識 212
9.1.1TLB的虛實地址轉換 212
9.1.2TLB的軟件訪問 214
9.1.3TLB的軟硬件交互機制 215
9.2TLB模塊設計的分析 217
9.3TLB相關的CP0寄存器與指令的實現 219
9.4利用TLB進行虛實地址轉換及TLB例外 221
9.5任務與實踐 222
9.5.1實踐任務一:TLB模塊設計 222
9.5.2實踐任務二:添加TLB相關指令和CP0寄存器 224
9.5.3實踐任務三:添加TLB相關例外支持 225
第10章高速緩存設計 226
10.1Cache模塊的設計 227
10.1.1Cache的設計規格 227
10.1.2Cache模塊的數據通路設計 228
10.1.3Cache模塊內部的控制邏輯設計 237
10.1.4Cache的硬件初始化問題 241
10.2將Cache模塊集成至CPU中 242
10.2.1Cache命中情況下的CPU流水線適配 242
10.2.2Cache缺失情況下的CPU流水線適配 243
10.2.3Uncache訪問的處理 243
10.3CACHE指令 245
10.3.1CACHE指令的定義 245
10.3.2CACHE指令的實現 247
10.4性能測試程序 247
10.4.1Dhrystone 247
10.4.2Coremark 250
10.5Cache的性能 251
10.6任務與實踐 252
10.6.1實踐任務一:Cache模塊設計 252
10.6.2實踐任務二:在CPU中集成ICache 254
10.6.3實踐任務三:在CPU中集成DCache 255
10.6.4實踐任務四:在CPU中添加CACHE指令 256
第11章進階設計 258
11.1運行Linux內核 258
11.1.1復雜SoC搭建 259
11.1.2CPU的進一步完善 259
11.1.3調試建議 260
11.2提升主頻的常用方法 261
11.2.1平衡各級流水線的延遲 261
11.2.2優化大概率事件的處理邏輯 261
11.2.3用面積和功耗換時序 262
11.2.4進一步切分流水線 262
11.3靜態雙發射流水線的實現 262
11.4動態調度機制的實現 263
11.4.1一個雙發射動態調度流水線的設計實例 263
11.4.2動態調度中常見電路結構的RTL實現 266
11.5硬件轉移預測技術 266
11.5.1硬件轉移預測的流水線設計框架 267
11.5.2一個輕量級轉移預測器的設計規格 268
11.6訪存優化技術 269
11.6.1store buffer 269
11.6.2Non-blocking Cache 270
11.6.3訪存亂序執行 271
11.6.4多級Cache 271
11.6.5Cache預取 272
11.7多核處理器的實現 272
11.7.1多核互聯結構 273
11.7.2多核編號 273
11.7.3核間中斷 273
11.7.4多核情況下的存儲一致性 274
11.7.5LL-SC指令對的訪存原子性 282
附錄A龍芯CPU設計與體系結構教學實驗系統 285
附錄BVivado的安裝 288
附錄C簡單MIPS指令系統規范 301
附錄DVivado使用進階 345
CPU設計實戰 作者簡介
汪文祥 工學博士,龍芯中科技術股份有限公司首席工程師,中國科學院大學崗位教授。主要研究方向為處理器體系結構設計、處理器驗證及計算機系統性能分析優化等,參與了多項國家“核高基”、863 和 973 項目,在國內外各種期刊會議發表文章十余篇,申請專利數十項,授權專利十余項。2012年起任龍芯中科芯片研發部IP組組長,負責龍芯系列CPU IP核的開發研制及維護,參與制訂龍芯指令系統架構規范。 邢金璋 碩士畢業于中國科學院計算技術研究所,2015年加入龍芯中科技術股份有限公司,從事處理器核結構設計工作,是龍芯小、中系列處理器核演進版本的主要結構設計者之一。近年來,積極參與“龍芯杯”全國大學生計算機系統能力培養大賽的技術支持、培訓等工作。
- >
【精裝繪本】畫給孩子的中國神話
- >
煙與鏡
- >
隨園食單
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
小考拉的故事-套裝共3冊
- >
自卑與超越
- >
羅庸西南聯大授課錄
- >
我與地壇