本書系統(tǒng)地介紹了計算機的組成及其工作原理。全書共分7章,第1章概要介紹計算機的硬件結(jié)構(gòu)、工作過程及性能指標;第2章介紹數(shù)據(jù)的表示與運算方法,以及運算部件組成;第3章介紹存儲系統(tǒng)的層次結(jié)構(gòu),以及主存、Cache及虛擬存儲器的組成與工作原理;第4章介紹指令系統(tǒng)的基本組成;第5章介紹CPU的組成原理、設(shè)計方法,以及流水線技術(shù);第6~7章介紹總線互連及I/O系統(tǒng)。本書內(nèi)容全面、概念準確、通俗易懂,注重通過大量例題分析來加深對各知識點的理解與掌握,重視知識點的融合以及整機概念的形成,兼顧基本原理在新技術(shù)中的應(yīng)用。本書既可作為高等院校計算機專業(yè)計算機組成原理課程的教材,也可作為相關(guān)專業(yè)科技人員的參考書。
第2版前言
計算機組成原理是計算機專業(yè)一門重要的硬件基礎(chǔ)課程,主要討論計算機硬件的基本組成及工作原理,對深入理解計算機系統(tǒng)至關(guān)重要。本書是《計算機組成原理》(電子工業(yè)出版社,2010年)的修訂版。本書有如下三個目標:以現(xiàn)代計算機技術(shù)為背景,掌握計算機的基本組成及原理;強調(diào)指令執(zhí)行過程中硬件的協(xié)同工作過程,以形成計算機的整機概念;重視CPU等部件的邏輯設(shè)計方法,以培養(yǎng)系統(tǒng)設(shè)計能力。本書保留了第1版的框架和風格,對各章內(nèi)容進行了大幅度的調(diào)整、刪減及補充,以達到上述目標。例如,數(shù)據(jù)表示方法以C語言為例進行分析,虛擬存儲器中增加MMU相關(guān)內(nèi)容,指令系統(tǒng)兼顧RISC及CISC風格,CPU邏輯設(shè)計包含單周期及多周期數(shù)據(jù)通路、時序系統(tǒng)及中斷機構(gòu)組織,總線互連增加QPI總線、北橋等內(nèi)容。全書內(nèi)容共分7章,按照先了解計算機模型及硬件結(jié)構(gòu),再討論各個子系統(tǒng)的組成及工作原理,逐步形成硬件系統(tǒng)的思路來組織。第1章介紹現(xiàn)代計算機的硬件結(jié)構(gòu)、工作過程及性能指標;第2章介紹各種數(shù)據(jù)的表示方法,以及相應(yīng)的運算方法組織和邏輯實現(xiàn);第3章介紹存儲系統(tǒng)的層次結(jié)構(gòu),以及主存、Cache及虛擬存儲器的組成及工作原理;第4章介紹指令格式的組成,以及各種尋址方式;第5章介紹CPU的基本組成、工作原理,討論數(shù)據(jù)通路、控制單元的組織與設(shè)計方法,以及流水線的工作原理;第6章介紹總線的傳輸與控制原理,以及總線的互連結(jié)構(gòu);第7章介紹I/O系統(tǒng)的組成,以及幾種I/O方式的原理及組織方法。本書力求保持內(nèi)容全面、概念準確、通俗易懂的特點,通過大量的量化分析、邏輯設(shè)計來加深對基本概念、基本原理的理解和掌握,通過知識點的融合來逐步形成整機概念。本書編寫過程中,得到了國防科技大學沈立副教授、東南大學楊全勝副教授的大力幫助,陳衍慶等同學也為書稿的繪圖做了大量工作,在此一并表示衷心的感謝。由于計算機結(jié)構(gòu)與組成的理論及技術(shù)在不斷發(fā)展,加之作者水平有限,書中難免存在不妥及疏漏之處,敬請廣大讀者及同行專家批評指正。
作 者2017年10月
任國林,東南大學計算機科學與工程學院計算機工程系系統(tǒng)結(jié)構(gòu)教研室,副教授。 研究方向: 計算機體系結(jié)構(gòu)、嵌入式系統(tǒng)、控制系統(tǒng)及其應(yīng)用、多媒體壓縮與傳輸技術(shù)。
目 錄
第1章 計算機系統(tǒng)概述1
1.1 計算機的功能與軟硬件1
1.2 計算機的發(fā)展歷程2
1.3 計算機的硬件組成4
1.3.1 馮?諾依曼計算機4
1.3.2 計算機的結(jié)構(gòu)與部件5
1.3.3 計算機的部件互連7
1.4 計算機系統(tǒng)的層次結(jié)構(gòu)9
1.4.1 計算機的層次結(jié)構(gòu)9
1.4.2 軟件與硬件的關(guān)系11
1.4.3 計算機的結(jié)構(gòu)與組成11
1.5 計算機系統(tǒng)的工作過程12
1.5.1 計算機的工作方式12
1.5.2 程序執(zhí)行過程13
1.6 計算機系統(tǒng)的性能指標15
習題119
第2章 數(shù)據(jù)的表示與運算21
2.1 數(shù)據(jù)的編碼21
2.1.1 數(shù)制及其轉(zhuǎn)換21
2.1.2 機器數(shù)及其編碼24
2.1.3 十進制數(shù)編碼28
2.1.4 字符編碼29
2.1.5 數(shù)據(jù)校驗碼30
2.2 數(shù)據(jù)的表示37
2.2.1 數(shù)據(jù)的表示方法37
2.2.2 整數(shù)的表示38
2.2.3 實數(shù)的表示40
2.2.4 非數(shù)值數(shù)據(jù)的表示44
2.2.5 數(shù)據(jù)表示舉例46
2.3 定點數(shù)的運算48
2.3.1 常用的邏輯部件48
2.3.2 加減運算53
2.3.3 移位運算57
2.3.4 乘法運算59
2.3.5 除法運算67
2.4 浮點數(shù)的運算74
2.4.1 浮點加減運算74
2.4.2 浮點乘除運算78
2.5 十進制數(shù)的加減運算80
2.6 運算器的組成82
2.6.1 ALU的組成82
2.6.2 運算器的組織83
習題286
第3章 存儲系統(tǒng)89
3.1 存儲系統(tǒng)概述89
3.1.1 存儲器的分類89
3.1.2 存儲器的主要技術(shù)指標90
3.1.3 層次結(jié)構(gòu)存儲系統(tǒng)91
3.2 半導體存儲技術(shù)93
3.2.1 靜態(tài)存儲器93
3.2.2 動態(tài)存儲器97
3.2.3 半導體只讀存儲器101
3.3 主存儲器104
3.3.1 主存儲器的基本組成104
3.3.2 主存儲器的邏輯設(shè)計105
3.3.3 主存儲器與CPU的連接108
3.3.4 提高訪存速度的技術(shù)111
3.4 高速緩沖存儲器115
3.4.1 Cache的基本原理115
3.4.2 Cache的地址映射119
3.4.3 Cache的替換算法123
3.4.4 Cache的寫策略125
3.4.5 Pentium的Cache組織126
3.5 虛擬存儲器128
3.5.1 存儲管理的相關(guān)概念128
3.5.2 虛擬存儲器的基本原理130
3.5.3 虛擬存儲器的存儲管理131
3.5.4 頁式虛擬存儲器的實現(xiàn)133
習題3137
第4章 指令系統(tǒng)140
4.1 指令系統(tǒng)組成140
4.1.1 指令功能140
4.1.2 指令格式143
4.2 操作數(shù)的存放方式145
4.3 尋址方式148
4.3.1 指令尋址方式148
4.3.2 數(shù)據(jù)尋址方式148
4.3.3 指令格式分析及其應(yīng)用152
4.4 指令系統(tǒng)舉例154
4.4.1 MIPS指令系統(tǒng)155
4.4.2 Pentium指令系統(tǒng)160
4.5 指令系統(tǒng)發(fā)展163
習題4165
第5章 中央處理器168
5.1 CPU的組成與工作流程168
5.1.1 CPU的功能168
5.1.2 CPU的組成169
5.1.3 CPU的工作流程171
5.1.4 指令的執(zhí)行過程172
5.2 數(shù)據(jù)通路的組織175
5.2.1 數(shù)據(jù)通路的組成175
5.2.2 數(shù)據(jù)通路的設(shè)計方法182
5.2.3 單周期數(shù)據(jù)通路的設(shè)計184
5.2.4 多周期數(shù)據(jù)通路的設(shè)計190
5.3 控制器的組成193
5.3.1 控制器的基本結(jié)構(gòu)193
5.3.2 時序信號的形成195
5.3.3 OP控制信號的形成199
5.4 硬布線控制器的設(shè)計199
5.4.1 控制單元的設(shè)計步驟200
5.4.2 單周期控制單元的設(shè)計201
5.4.3 多周期控制單元的設(shè)計202
5.5 微程序控制器的設(shè)計205
5.5.1 微程序控制思想205
5.5.2 微程序控制器的組成與工作原理206
5.5.3 微指令格式208
5.5.4 微程序控制單元的設(shè)計211
5.6 異常及中斷的處理214
5.6.1 異常及中斷的基本概念214
5.6.2 異常及中斷的處理過程215
5.6.3 支持異常處理的CPU設(shè)計218
5.7 指令流水線技術(shù)219
5.7.1 指令流水線概述220
5.7.2 指令流水線的冒險處理223
5.7.3 指令流水線的設(shè)計229
5.7.4 指令流水線的并行技術(shù)234
習題5236
第6章 總線240
6.1 總線概述240
6.1.1 總線的分類240
6.1.2 總線的特性242
6.1.3 總線的性能指標242
6.1.4 總線的操作過程243
6.2 總線仲裁245
6.2.1 集中式仲裁245
6.2.2 分布式仲裁247
6.3 總線定時與傳輸248
6.3.1 總線定時方式248
6.3.2 總線傳輸模式251
6.3.3 總線標準252
6.4 總線結(jié)構(gòu)與互連254
6.4.1 總線結(jié)構(gòu)254
6.4.2 總線互連257
習題6258
第7章 輸入/輸出系統(tǒng)260
7.1 I/O系統(tǒng)概述260
7.1.1 I/O系統(tǒng)的組成260
7.1.2 外設(shè)與主機的聯(lián)系261
7.1.3 I/O的傳送控制方式263
7.2 外部設(shè)備265
7.2.1 輸入設(shè)備265
7.2.2 輸出設(shè)備267
7.2.3 存儲設(shè)備271
7.3 I/O接口280
7.3.1 I/O接口的功能280
7.3.2 I/O接口的組成280
7.3.3 對I/O接口的訪問282
7.4 程序直接控制I/O方式282
7.4.1 程序查詢方式的I/O控制流程282
7.4.2 程序查詢方式的I/O接口組織284
7.4.3 直接傳送方式的I/O組織285
7.5 程序中斷I/O方式286
7.5.1 中斷的概念286
7.5.2 中斷接口的組織291
7.5.3 中斷系統(tǒng)的結(jié)構(gòu)292
7.5.4 多重中斷與中斷屏蔽的組織294
7.6 DMA方式297
7.6.1 DMA的傳送方式297
7.6.2 DMA接口的功能與結(jié)構(gòu)299
7.6.3 DMA的傳送過程300
7.6.4 DMA接口的組織301
習題7304
參考文獻307