歡迎光臨中圖網(wǎng) 請 | 注冊

CPU設(shè)計實戰(zhàn)

出版社:機(jī)械工業(yè)出版社出版時間:2021-04-01
開本: 24cm 頁數(shù): 16,358頁
中 圖 價:¥60.4(6.1折) 定價  ¥99.0 登錄后可看到會員價
加入購物車 收藏
運(yùn)費(fèi)6元,滿39元免運(yùn)費(fèi)
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

CPU設(shè)計實戰(zhàn) 版權(quán)信息

CPU設(shè)計實戰(zhàn) 本書特色

適讀人群 :高校計算機(jī)專業(yè)的本科生、研究生,從事計算機(jī)芯片開發(fā)的技術(shù)人員、高校從事計算機(jī)組成、體系結(jié)構(gòu)課程教學(xué)的教師(1)本書按照CPU設(shè)計的實際工程過程安排內(nèi)容。全書分為三個部分:**部分從工程化的視角介紹業(yè)界進(jìn)行CPU研發(fā)的過程,并且提煉出完成CPU設(shè)計應(yīng)具備的FPGA設(shè)計、Verilog、軟硬件平臺等方面的基礎(chǔ)知識;第二部分圍繞一個基本的單周期CPU的設(shè)計,逐步引入流水線、指令、例外和中斷、總線、高速緩存等部分的設(shè)計和實現(xiàn),*終完成一個入門級的CPU設(shè)計;第三部分則在基本CPU的基礎(chǔ)上進(jìn)一步添加常見指令和功能,啟發(fā)讀者的創(chuàng)造力,使設(shè)計出的CPU更接近真實產(chǎn)品。通過這樣循序漸進(jìn)、層層深入的安排,引導(dǎo)讀者逐步掌握CPU的設(shè)計方法。 (2)書中融入大量工程實踐經(jīng)驗、設(shè)計原則、開發(fā)技巧、需要規(guī)避的設(shè)計風(fēng)險、常見錯誤等內(nèi)容,幫助讀者理解在真實的工程場景中應(yīng)該考慮的問題,學(xué)會在各種現(xiàn)實條件下進(jìn)行權(quán)衡,根據(jù)目標(biāo)找到*優(yōu)的解決方案。 (3)涵蓋設(shè)計思維、設(shè)計方法到設(shè)計工具的全面介紹,案例豐富,可操作性強(qiáng)。通過學(xué)習(xí)本書,讀者不僅可以掌握CPU的設(shè)計方法,更能在這個過程中很好地訓(xùn)練工程設(shè)計思維,為今后的工作打下堅實的基礎(chǔ)。

CPU設(shè)計實戰(zhàn) 內(nèi)容簡介

本書面向CPU設(shè)計的初學(xué)者, 采用循序漸進(jìn)、層層推進(jìn)的方式介紹CPU的完整開發(fā)過程。全書包括三部分, **部分介紹工程化CPU的研發(fā)過程以及設(shè)計CPU需要掌握的基礎(chǔ)知識 ; 第二部分從一個基本的單周期CPU設(shè)計開始, 逐步引入流水線、指令、例外、中斷等功能, 并完成總線、TLB MMU、高速緩存等功能的設(shè)計 ; 第三部分為進(jìn)階設(shè)計內(nèi)容, 涵蓋Linux內(nèi)核、提升主頻、雙發(fā)射流水、動態(tài)調(diào)度、訪存優(yōu)化、多核處理器等功能的實現(xiàn)。

CPU設(shè)計實戰(zhàn) 目錄

目  錄

叢書序言

前言

第1章CPU芯片研發(fā)過程概述 1

1.1處理器和處理器核 1

1.2芯片產(chǎn)品的研制過程 2

1.3芯片設(shè)計的工作階段 3

第2章硬件實驗平臺及FPGA設(shè)計流程 5

2.1硬件實驗平臺 5

2.1.1龍芯CPU設(shè)計與體系結(jié)構(gòu)教學(xué)實驗系統(tǒng) 5

2.1.2龍芯計算機(jī)系統(tǒng)能力培養(yǎng)遠(yuǎn)程實驗平臺 7

2.2FPGA的設(shè)計流程 8

2.2.1FPGA的一般設(shè)計流程 9

2.2.2基于Vivado的FPGA設(shè)計流程 10

2.2.3Vivado使用小貼士 33

2.3任務(wù)與實踐 35

第3章數(shù)字邏輯電路設(shè)計基礎(chǔ) 36

3.1數(shù)字邏輯電路設(shè)計與Verilog代碼開發(fā) 36

3.1.1面向硬件電路的設(shè)計思維方式 37

3.1.2行為描述的Verilog編程風(fēng)格 38

3.1.3自頂向下的設(shè)計劃分過程 38

3.1.4常用數(shù)字邏輯電路的Verilog描述 39

3.2數(shù)字邏輯電路功能仿真的常見錯誤及其調(diào)試方法 55

3.2.1功能仿真波形分析 56

3.2.2波形異常類錯誤的調(diào)試 60

3.3進(jìn)一步使用Vivado 66

3.3.1定制同步RAM IP核 66

3.3.2定制異步RAM IP核 68

3.3.3查看時序結(jié)果和資源利用率 69

3.4任務(wù)與實踐 69

3.4.1實踐任務(wù)一:寄存器堆仿真 70

3.4.2實踐任務(wù)二:同步RAM和異步RAM仿真、綜合與實現(xiàn) 71

3.4.3實踐任務(wù)三:數(shù)字邏輯電路的設(shè)計與調(diào)試 72

第4章簡單流水線CPU設(shè)計 74

4.1設(shè)計一個簡單的單周期CPU 75

4.1.1設(shè)計單周期CPU的總體思路 75

4.1.2單周期CPU的數(shù)據(jù)通路設(shè)計 76

4.1.3單周期CPU的控制信號生成 88

4.1.4復(fù)位的處理 91

4.2不考慮相關(guān)沖突的流水線CPU設(shè)計 92

4.2.1添加流水級間緩存 92

4.2.2同步RAM的引入 93

4.2.3調(diào)整更新PC的數(shù)據(jù)通路 96

4.2.4不考慮相關(guān)沖突情況下流水線控制信號的設(shè)計 96

4.3CPU設(shè)計開發(fā)環(huán)境(CPU_CDE) 97

4.3.1快速上手CPU設(shè)計的開發(fā)環(huán)境 97

4.3.2CPU設(shè)計開發(fā)環(huán)境的組織與結(jié)構(gòu) 99

4.3.3CPU設(shè)計開發(fā)環(huán)境使用進(jìn)階 113

4.4CPU設(shè)計的功能仿真調(diào)試技術(shù) 117

4.4.1為什么要用基于Trace比對的調(diào)試輔助手段 117

4.4.2基于Trace比對調(diào)試手段的盲區(qū)及其對策 119

4.4.3學(xué)會閱讀匯編程序和反匯編代碼 119

4.4.4CPU調(diào)試中要抓取的信號以及如何看這些信號 124

4.5指令相關(guān)與流水線沖突 125

4.5.1處理寄存器寫后讀數(shù)據(jù)相關(guān)引發(fā)的流水線沖突 126

4.5.2轉(zhuǎn)移計算未完成 127

4.6流水線數(shù)據(jù)的前遞設(shè)計 127

4.6.1前遞的數(shù)據(jù)通路設(shè)計 128

4.6.2前遞的流水線控制信號調(diào)整 130

4.6.3前遞引發(fā)的主頻下降 131

4.7任務(wù)與實踐 131

4.7.1實踐任務(wù)一:簡單CPU參考設(shè)計調(diào)試 132

4.7.2實踐任務(wù)二:用阻塞技術(shù)解決相關(guān)引發(fā)的沖突 132

4.7.3實踐任務(wù)三:用前遞技術(shù)解決相關(guān)引發(fā)的沖突 133

第5章在流水線中添加運(yùn)算類指令 134

5.1算術(shù)邏輯運(yùn)算類指令的添加 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乘除法運(yùn)算類指令的添加 136

5.2.1調(diào)用Xilinx IP實現(xiàn)乘除法運(yùn)算部件 136

5.2.2電路級實現(xiàn)乘法器 140

5.2.3電路級實現(xiàn)除法器 147

5.3乘除法配套數(shù)據(jù)搬運(yùn)指令的添加 154

5.3.1乘法運(yùn)算實現(xiàn)為單周期的情況 155

5.3.2乘法運(yùn)算實現(xiàn)為多周期流水的情況 155

5.4任務(wù)與實踐 156

第6章在流水線中添加轉(zhuǎn)移指令和訪存指令 157

6.1轉(zhuǎn)移指令的添加 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任務(wù)與實踐 164

第7章例外和中斷的支持 166

7.1例外和中斷的基本概念 166

7.1.1例外是一套軟硬件協(xié)同處理的機(jī)制 166

7.1.2精確例外 167

7.2MIPS指令系統(tǒng)中與例外相關(guān)的功能定義 168

7.2.1CP0寄存器 168

7.2.2例外產(chǎn)生條件的判定 168

7.2.3例外入口 170

7.2.4MFC0和MTC0指令 170

7.2.5ERET指令 170

7.3流水線CPU實現(xiàn)例外和中斷的設(shè)計要點(diǎn) 170

7.3.1例外檢測邏輯 170

7.3.2精確例外的實現(xiàn) 172

7.3.3CP0寄存器 173

7.3.4CP0沖突 179

7.4任務(wù)與實踐 180

7.4.1實踐任務(wù)一:添加syscall例外支持 181

7.4.2實踐任務(wù)二:添加其他例外支持 181

第8章AXI總線接口設(shè)計 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總線的設(shè)計 189

8.2.1取指設(shè)計的考慮 190

8.2.2訪存設(shè)計的考慮 195

8.3AXI總線協(xié)議 195

8.3.1AXI總線信號一覽 195

8.3.2理解AXI總線協(xié)議 197

8.3.3類SRAM總線接口信號與AXI總線接口信號的關(guān)系 202

8.4類SRAM-AXI的轉(zhuǎn)接橋設(shè)計 203

8.4.1轉(zhuǎn)接橋的頂層接口 203

8.4.2轉(zhuǎn)接橋的設(shè)計要求 204

8.4.3轉(zhuǎn)接橋的設(shè)計建議 204

8.5任務(wù)與實踐 205

8.5.1實踐任務(wù)一:添加類SRAM總線支持 205

8.5.2實踐任務(wù)二:添加AXI總線支持 208

8.5.3實踐任務(wù)三:完成AXI隨機(jī)延遲驗證 210

第9章TLB MMU設(shè)計 211

9.1TLB模塊的基礎(chǔ)知識 212

9.1.1TLB的虛實地址轉(zhuǎn)換 212

9.1.2TLB的軟件訪問 214

9.1.3TLB的軟硬件交互機(jī)制 215

9.2TLB模塊設(shè)計的分析 217

9.3TLB相關(guān)的CP0寄存器與指令的實現(xiàn) 219

9.4利用TLB進(jìn)行虛實地址轉(zhuǎn)換及TLB例外 221

9.5任務(wù)與實踐 222

9.5.1實踐任務(wù)一:TLB模塊設(shè)計 222

9.5.2實踐任務(wù)二:添加TLB相關(guān)指令和CP0寄存器 224

9.5.3實踐任務(wù)三:添加TLB相關(guān)例外支持 225

第10章高速緩存設(shè)計 226

10.1Cache模塊的設(shè)計 227

10.1.1Cache的設(shè)計規(guī)格 227

10.1.2Cache模塊的數(shù)據(jù)通路設(shè)計 228

10.1.3Cache模塊內(nèi)部的控制邏輯設(shè)計 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指令的實現(xiàn) 247

10.4性能測試程序 247

10.4.1Dhrystone 247

10.4.2Coremark 250

10.5Cache的性能 251

10.6任務(wù)與實踐 252

10.6.1實踐任務(wù)一:Cache模塊設(shè)計 252

10.6.2實踐任務(wù)二:在CPU中集成ICache 254

10.6.3實踐任務(wù)三:在CPU中集成DCache 255

10.6.4實踐任務(wù)四:在CPU中添加CACHE指令 256

第11章進(jìn)階設(shè)計 258

11.1運(yùn)行Linux內(nèi)核 258

11.1.1復(fù)雜SoC搭建 259

11.1.2CPU的進(jìn)一步完善 259

11.1.3調(diào)試建議 260

11.2提升主頻的常用方法 261

11.2.1平衡各級流水線的延遲 261

11.2.2優(yōu)化大概率事件的處理邏輯 261

11.2.3用面積和功耗換時序 262

11.2.4進(jìn)一步切分流水線 262

11.3靜態(tài)雙發(fā)射流水線的實現(xiàn) 262

11.4動態(tài)調(diào)度機(jī)制的實現(xiàn) 263

11.4.1一個雙發(fā)射動態(tài)調(diào)度流水線的設(shè)計實例 263

11.4.2動態(tài)調(diào)度中常見電路結(jié)構(gòu)的RTL實現(xiàn) 266

11.5硬件轉(zhuǎn)移預(yù)測技術(shù) 266

11.5.1硬件轉(zhuǎn)移預(yù)測的流水線設(shè)計框架 267

11.5.2一個輕量級轉(zhuǎn)移預(yù)測器的設(shè)計規(guī)格 268

11.6訪存優(yōu)化技術(shù) 269

11.6.1store buffer 269

11.6.2Non-blocking Cache 270

11.6.3訪存亂序執(zhí)行 271

11.6.4多級Cache 271

11.6.5Cache預(yù)取 272

11.7多核處理器的實現(xiàn) 272

11.7.1多核互聯(lián)結(jié)構(gòu) 273

11.7.2多核編號 273

11.7.3核間中斷 273

11.7.4多核情況下的存儲一致性 274

11.7.5LL-SC指令對的訪存原子性 282

附錄A龍芯CPU設(shè)計與體系結(jié)構(gòu)教學(xué)實驗系統(tǒng) 285

附錄BVivado的安裝 288

附錄C簡單MIPS指令系統(tǒng)規(guī)范 301

附錄DVivado使用進(jìn)階 345


展開全部

CPU設(shè)計實戰(zhàn) 作者簡介

汪文祥 工學(xué)博士,龍芯中科技術(shù)股份有限公司首席工程師,中國科學(xué)院大學(xué)崗位教授。主要研究方向為處理器體系結(jié)構(gòu)設(shè)計、處理器驗證及計算機(jī)系統(tǒng)性能分析優(yōu)化等,參與了多項國家“核高基”、863 和 973 項目,在國內(nèi)外各種期刊會議發(fā)表文章十余篇,申請專利數(shù)十項,授權(quán)專利十余項。2012年起任龍芯中科芯片研發(fā)部IP組組長,負(fù)責(zé)龍芯系列CPU IP核的開發(fā)研制及維護(hù),參與制訂龍芯指令系統(tǒng)架構(gòu)規(guī)范。 邢金璋 碩士畢業(yè)于中國科學(xué)院計算技術(shù)研究所,2015年加入龍芯中科技術(shù)股份有限公司,從事處理器核結(jié)構(gòu)設(shè)計工作,是龍芯小、中系列處理器核演進(jìn)版本的主要結(jié)構(gòu)設(shè)計者之一。近年來,積極參與“龍芯杯”全國大學(xué)生計算機(jī)系統(tǒng)能力培養(yǎng)大賽的技術(shù)支持、培訓(xùn)等工作。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網(wǎng)
在線客服