注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)硬件、外部設(shè)備與維護(hù)CPU設(shè)計(jì)實(shí)戰(zhàn)

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

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

定 價(jià):¥99.00

作 者: 汪文祥,邢金璋 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書(shū)可以去


ISBN: 9787111674139 出版時(shí)間: 2021-04-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 376 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)面向初學(xué)者,以實(shí)戰(zhàn)的方式帶領(lǐng)讀者了解CPU設(shè)計(jì)的流程,并從零開(kāi)始逐步開(kāi)發(fā)出自己的CPU。本書(shū)將計(jì)算機(jī)組成與體系結(jié)構(gòu)的理論知識(shí)和工業(yè)實(shí)踐充分結(jié)合,使讀者在實(shí)際的CPU設(shè)計(jì)與開(kāi)發(fā)過(guò)程中更加深入地理解計(jì)算機(jī)系統(tǒng)的工作原理,掌握CPU設(shè)計(jì)理念、方法和技術(shù)。 本書(shū)共分為三個(gè)部分,第一部分介紹CPU的研發(fā)過(guò)程以及FPGA、數(shù)字邏輯電路等相關(guān)知識(shí);第二部分先介紹簡(jiǎn)單流水線CPU設(shè)計(jì),在此基礎(chǔ)上添加指令、例外、中斷、總線、高速緩存等功能,完成一個(gè)具有基本功能的CPU;第三部分介紹如何增加各種高級(jí)功能,最終形成一個(gè)具有豐富功能的CPU。 本書(shū)深入淺出、層次清晰,并融入了典型的CPU開(kāi)發(fā)相關(guān)的技術(shù)問(wèn)題,既可以作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)本科生和研究生的CPU開(kāi)發(fā)類課程的教材,也可以作為從事CPU相關(guān)研發(fā)工作的專業(yè)人員的參考書(shū)。

作者簡(jiǎn)介

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

圖書(shū)目錄

目  錄
叢書(shū)序言

前言
第1章CPU芯片研發(fā)過(guò)程概述 1
1.1處理器和處理器核 1
1.2芯片產(chǎn)品的研制過(guò)程 2
1.3芯片設(shè)計(jì)的工作階段 3
第2章硬件實(shí)驗(yàn)平臺(tái)及FPGA設(shè)計(jì)流程 5
2.1硬件實(shí)驗(yàn)平臺(tái) 5
2.1.1龍芯CPU設(shè)計(jì)與體系結(jié)構(gòu)教學(xué)實(shí)驗(yàn)系統(tǒng) 5
2.1.2龍芯計(jì)算機(jī)系統(tǒng)能力培養(yǎng)遠(yuǎn)程實(shí)驗(yàn)平臺(tái) 7
2.2FPGA的設(shè)計(jì)流程 8
2.2.1FPGA的一般設(shè)計(jì)流程 9
2.2.2基于Vivado的FPGA設(shè)計(jì)流程 10
2.2.3Vivado使用小貼士 33
2.3任務(wù)與實(shí)踐 35
第3章數(shù)字邏輯電路設(shè)計(jì)基礎(chǔ) 36
3.1數(shù)字邏輯電路設(shè)計(jì)與Verilog代碼開(kāi)發(fā) 36
3.1.1面向硬件電路的設(shè)計(jì)思維方式 37
3.1.2行為描述的Verilog編程風(fēng)格 38
3.1.3自頂向下的設(shè)計(jì)劃分過(guò)程 38
3.1.4常用數(shù)字邏輯電路的Verilog描述 39
3.2數(shù)字邏輯電路功能仿真的常見(jiàn)錯(cuò)誤及其調(diào)試方法 55
3.2.1功能仿真波形分析 56
3.2.2波形異常類錯(cuò)誤的調(diào)試 60
3.3進(jìn)一步使用Vivado 66
3.3.1定制同步RAM IP核 66
3.3.2定制異步RAM IP核 68
3.3.3查看時(shí)序結(jié)果和資源利用率 69
3.4任務(wù)與實(shí)踐 69
3.4.1實(shí)踐任務(wù)一:寄存器堆仿真 70
3.4.2實(shí)踐任務(wù)二:同步RAM和異步RAM仿真、綜合與實(shí)現(xiàn) 71
3.4.3實(shí)踐任務(wù)三:數(shù)字邏輯電路的設(shè)計(jì)與調(diào)試 72
第4章簡(jiǎn)單流水線CPU設(shè)計(jì) 74
4.1設(shè)計(jì)一個(gè)簡(jiǎn)單的單周期CPU 75
4.1.1設(shè)計(jì)單周期CPU的總體思路 75
4.1.2單周期CPU的數(shù)據(jù)通路設(shè)計(jì) 76
4.1.3單周期CPU的控制信號(hào)生成 88
4.1.4復(fù)位的處理 91
4.2不考慮相關(guān)沖突的流水線CPU設(shè)計(jì) 92
4.2.1添加流水級(jí)間緩存 92
4.2.2同步RAM的引入 93
4.2.3調(diào)整更新PC的數(shù)據(jù)通路 96
4.2.4不考慮相關(guān)沖突情況下流水線控制信號(hào)的設(shè)計(jì) 96
4.3CPU設(shè)計(jì)開(kāi)發(fā)環(huán)境(CPU_CDE) 97
4.3.1快速上手CPU設(shè)計(jì)的開(kāi)發(fā)環(huán)境 97
4.3.2CPU設(shè)計(jì)開(kāi)發(fā)環(huán)境的組織與結(jié)構(gòu) 99
4.3.3CPU設(shè)計(jì)開(kāi)發(fā)環(huán)境使用進(jìn)階 113
4.4CPU設(shè)計(jì)的功能仿真調(diào)試技術(shù) 117
4.4.1為什么要用基于Trace比對(duì)的調(diào)試輔助手段 117
4.4.2基于Trace比對(duì)調(diào)試手段的盲區(qū)及其對(duì)策 119
4.4.3學(xué)會(huì)閱讀匯編程序和反匯編代碼 119
4.4.4CPU調(diào)試中要抓取的信號(hào)以及如何看這些信號(hào) 124
4.5指令相關(guān)與流水線沖突 125
4.5.1處理寄存器寫后讀數(shù)據(jù)相關(guān)引發(fā)的流水線沖突 126
4.5.2轉(zhuǎn)移計(jì)算未完成 127
4.6流水線數(shù)據(jù)的前遞設(shè)計(jì) 127
4.6.1前遞的數(shù)據(jù)通路設(shè)計(jì) 128
4.6.2前遞的流水線控制信號(hào)調(diào)整 130
4.6.3前遞引發(fā)的主頻下降 131
4.7任務(wù)與實(shí)踐 131
4.7.1實(shí)踐任務(wù)一:簡(jiǎn)單CPU參考設(shè)計(jì)調(diào)試 132
4.7.2實(shí)踐任務(wù)二:用阻塞技術(shù)解決相關(guān)引發(fā)的沖突 132
4.7.3實(shí)踐任務(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實(shí)現(xiàn)乘除法運(yùn)算部件 136
5.2.2電路級(jí)實(shí)現(xiàn)乘法器 140
5.2.3電路級(jí)實(shí)現(xiàn)除法器 147
5.3乘除法配套數(shù)據(jù)搬運(yùn)指令的添加 154
5.3.1乘法運(yùn)算實(shí)現(xiàn)為單周期的情況 155
5.3.2乘法運(yùn)算實(shí)現(xiàn)為多周期流水的情況 155
5.4任務(wù)與實(shí)踐 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非對(duì)齊訪存指令的說(shuō)明 160
6.2.4LWL和LWR指令的添加 162
6.2.5SWL和SWR指令的添加 164
6.3任務(wù)與實(shí)踐 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實(shí)現(xiàn)例外和中斷的設(shè)計(jì)要點(diǎn) 170
7.3.1例外檢測(cè)邏輯 170
7.3.2精確例外的實(shí)現(xiàn) 172
7.3.3CP0寄存器 173
7.3.4CP0沖突 179
7.4任務(wù)與實(shí)踐 180
7.4.1實(shí)踐任務(wù)一:添加syscall例外支持 181
7.4.2實(shí)踐任務(wù)二:添加其他例外支持 181
第8章AXI總線接口設(shè)計(jì) 184
8.1類SRAM總線 184
8.1.1主方和從方 185
8.1.2類SRAM總線接口信號(hào)的定義 185
8.1.3類SRAM總線的讀寫時(shí)序 186
8.1.4類SRAM總線的約束 189
8.2類SRAM總線的設(shè)計(jì) 189
8.2.1取指設(shè)計(jì)的考慮 190
8.2.2訪存設(shè)計(jì)的考慮 195
8.3AXI總線協(xié)議 195
8.3.1AXI總線信號(hào)一覽 195
8.3.2理解AXI總線協(xié)議 197
8.3.3類SRAM總線接口信號(hào)與AXI總線接口信號(hào)的關(guān)系 202
8.4類SRAM-AXI的轉(zhuǎn)接橋設(shè)計(jì) 203
8.4.1轉(zhuǎn)接橋的頂層接口 203
8.4.2轉(zhuǎn)接橋的設(shè)計(jì)要求 204
8.4.3轉(zhuǎn)接橋的設(shè)計(jì)建議 204
8.5任務(wù)與實(shí)踐 205
8.5.1實(shí)踐任務(wù)一:添加類SRAM總線支持 205
8.5.2實(shí)踐任務(wù)二:添加AXI總線支持 208
8.5.3實(shí)踐任務(wù)三:完成AXI隨機(jī)延遲驗(yàn)證 210
第9章TLB MMU設(shè)計(jì) 211
9.1TLB模塊的基礎(chǔ)知識(shí) 212
9.1.1TLB的虛實(shí)地址轉(zhuǎn)換 212
9.1.2TLB的軟件訪問(wèn) 214
9.1.3TLB的軟硬件交互機(jī)制 215
9.2TLB模塊設(shè)計(jì)的分析 217
9.3TLB相關(guān)的CP0寄存器與指令的實(shí)現(xiàn) 219
9.4利用TLB進(jìn)行虛實(shí)地址轉(zhuǎn)換及TLB例外 221
9.5任務(wù)與實(shí)踐 222
9.5.1實(shí)踐任務(wù)一:TLB模塊設(shè)計(jì) 222
9.5.2實(shí)踐任務(wù)二:添加TLB相關(guān)指令和CP0寄存器 224
9.5.3實(shí)踐任務(wù)三:添加TLB相關(guān)例外支持 225
第10章高速緩存設(shè)計(jì) 226
10.1Cache模塊的設(shè)計(jì) 227
10.1.1Cache的設(shè)計(jì)規(guī)格 227
10.1.2Cache模塊的數(shù)據(jù)通路設(shè)計(jì) 228
10.1.3Cache模塊內(nèi)部的控制邏輯設(shè)計(jì) 237
10.1.4Cache的硬件初始化問(wèn)題 241
10.2將Cache模塊集成至CPU中 242
10.2.1Cache命中情況下的CPU流水線適配 242
10.2.2Cache缺失情況下的CPU流水線適配 243
10.2.3Uncache訪問(wèn)的處理 243
10.3CACHE指令 245
10.3.1CACHE指令的定義 245
10.3.2CACHE指令的實(shí)現(xiàn) 247
10.4性能測(cè)試程序 247
10.4.1Dhrystone 247
10.4.2Coremark 250
10.5Cache的性能 251
10.6任務(wù)與實(shí)踐 252
10.6.1實(shí)踐任務(wù)一:Cache模塊設(shè)計(jì) 252
10.6.2實(shí)踐任務(wù)二:在CPU中集成ICache 254
10.6.3實(shí)踐任務(wù)三:在CPU中集成DCache 255
10.6.4實(shí)踐任務(wù)四:在CPU中添加CACHE指令 256
第11章進(jìn)階設(shè)計(jì) 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平衡各級(jí)流水線的延遲 261
11.2.2優(yōu)化大概率事件的處理邏輯 261
11.2.3用面積和功耗換時(shí)序 262
11.2.4進(jìn)一步切分流水線 262
11.3靜態(tài)雙發(fā)射流水線的實(shí)現(xiàn) 262
11.4動(dòng)態(tài)調(diào)度機(jī)制的實(shí)現(xiàn) 263
11.4.1一個(gè)雙發(fā)射動(dòng)態(tài)調(diào)度流水線的設(shè)計(jì)實(shí)例 263
11.4.2動(dòng)態(tài)調(diào)度中常見(jiàn)電路結(jié)構(gòu)的RTL實(shí)現(xiàn) 266
11.5硬件轉(zhuǎn)移預(yù)測(cè)技術(shù) 266
11.5.1硬件轉(zhuǎn)移預(yù)測(cè)的流水線設(shè)計(jì)框架 267
11.5.2一個(gè)輕量級(jí)轉(zhuǎn)移預(yù)測(cè)器的設(shè)計(jì)規(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多級(jí)Cache 271
11.6.5Cache預(yù)取 272
11.7多核處理器的實(shí)現(xiàn) 272
11.7.1多核互聯(lián)結(jié)構(gòu) 273
11.7.2多核編號(hào) 273
11.7.3核間中斷 273
11.7.4多核情況下的存儲(chǔ)一致性 274
11.7.5LL-SC指令對(duì)的訪存原子性 282
附錄A龍芯CPU設(shè)計(jì)與體系結(jié)構(gòu)教學(xué)實(shí)驗(yàn)系統(tǒng) 285
附錄BVivado的安裝 288
附錄C簡(jiǎn)單MIPS指令系統(tǒng)規(guī)范 301
附錄DVivado使用進(jìn)階 345

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)