本書是普通高等教育“十一五”國家級規(guī)劃教材。全書共 6 章。第 1 章簡要介紹計算機系統(tǒng)結構的基本概念,以及計算機系統(tǒng)結構的形成和發(fā)展過程。第 2 章到第 6 章以現(xiàn)代計算機系統(tǒng)結構和并行處理為主線,本著計算機系統(tǒng)結構中硬中有軟、軟中有硬、相互轉換、彼此滲透的觀點,從原理、結構、分析、設計和實現(xiàn)等方面,對 CPU 及加速部件、存儲系統(tǒng)結構、流水線結構、并行處理機、多處理機系統(tǒng)、RISC結構、集群、網(wǎng)格、云計算及虛擬化技術等進行了比較深入的分析和探討。本書是高等學校計算機專業(yè)本科生“計算機系統(tǒng)結構”課程的通用教材,也可作為有關專業(yè)研究生的教材和科技工作者的參考書。
沈文楓,上海大學計算機工程與科學學院副教授,多年來一直從事計算機系統(tǒng)結構與并行處理、計算機組成原理課程的教學;2005年上海大學優(yōu)秀青年教師,2005年獲得上大鼎正獎教金等。
目 錄
第1章 計算機系統(tǒng)結構導論 1
1.1 計算機系統(tǒng)的基本概念 1
1.2 計算機系統(tǒng)的發(fā)展 1
1.2.1 馮·諾依曼體系結構的特點 2
1.2.2 器件發(fā)展對系統(tǒng)結構的影響 3
1.2.3 應用對系統(tǒng)結構的影響 4
1.2.4 算法對系統(tǒng)結構的影響 5
1.2.5 價格對系統(tǒng)結構的影響 5
1.2.6 功耗對系統(tǒng)結構的影響 5
1.3 計算機系統(tǒng)的功能和結構 6
1.3.1 計算機系統(tǒng)的層次結構 6
1.3.2 計算機系統(tǒng)結構定義 8
1.3.3 計算機組成與實現(xiàn) 9
1.3.4 計算機系統(tǒng)結構、組成和實現(xiàn)三者的關系 9
1.3.5 計算機系統(tǒng)的特性 10
1.4 計算機系統(tǒng)設計的方法 12
1.4.1 軟、硬件取舍的基本原則 12
1.4.2 計算機系統(tǒng)設計的定量原則 12
1.4.3 計算機系統(tǒng)的設計任務 14
1.4.4 計算機系統(tǒng)的設計步驟 15
1.5 現(xiàn)代計算機系統(tǒng)結構的研究領域 16
1.5.1 計算機系統(tǒng)結構分類 16
1.5.2 現(xiàn)代計算機系統(tǒng)結構研究方向 19
1.5.3 計算機系統(tǒng)結構發(fā)展趨勢 19
1.6 小結 21
習題 22
第2章 處理器及其相關技術 24
2.1 CPU組成 24
2.2 數(shù)據(jù)表示 25
2.3 指令優(yōu)化 26
2.3.1 指令格式優(yōu)化 26
2.3.2 指令系統(tǒng)分析 28
2.4 指令集 29
2.4.1 RISC和CISC 29
2.4.2 RISC-V 30
2.5 時鐘頻率 31
2.6 并行 31
2.6.1 指令級并行 31
2.6.2 線程級并行 32
2.6.3 數(shù)據(jù)并行和SIMD指令集 32
2.7 多核技術 33
2.8 CPU內(nèi)部互連 34
2.8.1 早期的星形總線與跨Socket互連 34
2.8.2 Intel環(huán)形總線架構 35
2.8.3 Intel Mesh總線架構 37
2.8.4 AMD CCX架構和Infinity Fabric總線 37
2.9 CPU外部互連 39
2.10 OpenMP多線程并行編程 41
2.10.1 編譯制導語句 41
2.10.2 API函數(shù) 42
2.11 GPU 44
2.11.1 GPU概述 44
2.11.2 GPU硬件結構 46
2.11.3 GPU的存儲層次 48
2.12 CUDA 48
2.12.1 CUDA簡介 48
2.12.2 線程管理 49
2.12.3 CUDA編程 49
2.13 OpenMP-CUDA混合編程 51
2.14 多核CPU-GPU計算平臺任務調(diào)度 54
2.15 小結 57
習題 58
第3章 存儲系統(tǒng)結構 61
3.1 地址映像和變換 61
3.1.1 程序的定位 61
3.1.2 全相聯(lián)映像及其變換 66
3.1.3 直接映像及其變換 67
3.1.4 組相聯(lián)映像及其變換 68
3.1.5 段相聯(lián)映像及其變換 71
3.2 替換算法及其實現(xiàn) 72
3.2.1 替換算法的分析 72
3.2.2 LRU替換算法的實現(xiàn) 75
3.3 并行主存系統(tǒng) 77
3.3.1 并行主存系統(tǒng)頻寬分析 77
3.3.2 單體多字存儲器 78
3.3.3 多體交叉存儲器 79
3.3.4 地址空間的劃分和訪問周期的控制 81
3.4 高速緩沖存儲器(Cache) 84
3.4.1 Cache基本結構和工作原理 84
3.4.2 Cache的替換算法分析 86
3.4.3 Cache的透明性 87
3.4.4 任務切換對失效率的影響 88
3.4.5 多處理機系統(tǒng)的Cache結構 89
3.4.6 Cache-主存層次性能分析 90
3.4.7 Cache性能計算 92
3.5 虛擬存儲器 97
3.5.1 虛擬存儲器基本結構和工作原理 97
3.5.2 虛地址和輔存實地址的變換 98
3.5.3 多用戶虛擬存儲器 99
3.5.4 加快地址變換的方法 102
3.5.5 虛擬存儲器性能分析 105
3.6 主存保護與控制 108
3.6.1 主存保護 108
3.6.2 主存控制部件 111
3.6.3 磁盤冗余陣列 112
3.7 小結 115
習題 116
第4章 流水線結構 118
4.1 流水線結構原理 118
4.1.1 重疊方式 118
4.1.2 先行控制 121
4.1.3 流水線技術 123
4.2 線性流水線性能指標 126
4.2.1 吞吐率 126
4.2.2 加速比 127
4.2.3 效率 127
4.2.4 流水線段數(shù)選擇 128
4.3 非線性流水線 130
4.3.1 預約表和等待時間分析 130
4.3.2 無沖突調(diào)度 133
4.3.3 流水線調(diào)度優(yōu)化 135
4.4 流水線相關處理 138
4.4.1 局部相關及處理 138
4.4.2 全局相關及處理 139
4.4.3 流水線中斷處理 139
4.5 超級流水處理機 140
4.5.1 超標量處理機 140
4.5.2 超流水線處理機 143
4.5.3 超長指令字處理機 144
4.6 小結 146
習題 147
第5章 并行處理機與多處理機系統(tǒng) 150
5.1 系統(tǒng)結構中的并行性概念 150
5.2 并行處理機基本結構 151
5.2.1 分布式存儲器結構 153
5.2.2 共享式存儲器結構 159
5.2.3 并行處理機特點 160
5.3 并行處理機互連網(wǎng)絡 160
5.3.1 互連網(wǎng)絡基本概念 161
5.3.2 單級互連函數(shù) 162
5.3.3 互連網(wǎng)絡特性 165
5.3.4 靜態(tài)互連網(wǎng)絡 166
5.3.5 動態(tài)互連網(wǎng)絡 171
5.3.6 多級互連網(wǎng)絡 173
5.3.7 互連網(wǎng)絡尋徑 177
5.4 多處理機系統(tǒng) 182
5.4.1 多處理機系統(tǒng)的定義 183
5.4.2 多重處理對處理機特性的要求 183
5.5 多處理機結構 185
5.5.1 多處理機的基本結構 185
5.5.2 多處理機的互連網(wǎng)絡 186
5.5.3 多處理機系統(tǒng)的存儲器結構 192
5.5.4 多處理機系統(tǒng)的特點 196
5.6 多處理機的軟件 197
5.6.1 算術表達式的并行算法 197
5.6.2 程序并行性分析 198
5.6.3 并行程序語言 199
5.6.4 多處理機的操作系統(tǒng) 202
5.7 多處理機系統(tǒng)實例 205
5.7.1 多處理機 205
5.7.2 Cmmp多處理機 207
5.8 小結 209
習題 210
第6章 集群、網(wǎng)格和云計算 212
6.1 集群概述 212
6.2 集群系統(tǒng)的軟硬件組成 214
6.2.1 計算節(jié)點 214
6.2.2 網(wǎng)絡 215
6.2.3 存儲節(jié)點 216
6.2.4 管理節(jié)點 218
6.2.5 MPI并行編程 220
6.3 集群系統(tǒng)的設計和維護 224
6.3.1 集群系統(tǒng)的設計 224
6.3.2 集群系統(tǒng)的維護 228
6.4 集群系統(tǒng)的性能測試 230
6.4.1 性能評價和測量 230
6.4.2 Linpack測試 232
6.5 高性能集群計算機系統(tǒng)實例 233
6.6 網(wǎng)格 235
6.6.1 網(wǎng)格概述 235
6.6.2 網(wǎng)格技術簡介 235
6.7 云計算 237
6.7.1 云計算概述 237
6.7.2 云計算的關鍵技術 240
6.7.3 OpenStack開源虛擬化平臺 245
6.8 大數(shù)據(jù) 247
6.9 小結 249
習題 250
參考文獻 251