計算機組成與體系結構:性能設計(原書第8版)

內容介紹

本書是介紹當代計算機體系主流技術和最新技術的優秀教材,以Intel x86和ARM兩個處理器系列為例,深入討論了計算機組成與體系結構的基本原理和概念,並將它們運用到當代計算機系統設計的問題中。
自第7版出版以來,計算機組成與體系結構領域又有了不少革新和進展。第8版堅持全面覆蓋整個領域,並在此基礎上儘量跟上新技術的步伐。
新增內容
? 互動式模擬工具:提供了20個基於Web的互動式模擬工具,為理解現代處理器的複雜機制提供了有力的支持。
? 嵌入式處理器:以ARM體系結構為例,介紹嵌入式處理器以及它們提供的獨特的設計問題。
? 多核處理器:闡述計算機體系結構最流行的新進展——單個晶片上多處理器的使用。
? 高速快取:對高速快取內容進行了全面的修訂、更新和擴充,涵蓋了更寬泛的技術領域。
? 性能評估:擴充了對性能評估的討論,增加了對基準程式和阿姆達爾定律的分析。
? 彙編語言:增加了一個關於彙編語言和彙編器的新附錄。

作者介紹

William Stallings 擁有美國麻省理工學院計算機科學博士學位,現任教於澳大利亞新南威爾斯大學國防學院(坎培拉)信息技術與電子工程系。他是世界知名計算機學者和暢銷教材作者,出版了40多本書籍,內容涉及計算機安全、計算機網路和計算機體系結構等方面,堪稱計算機界的全才。他曾十次榮獲美國“教材和學術專著作者協會”頒發的“年度最佳計算機科學教材”獎。

作品目錄

出版者的話
譯者序
前言
第0章讀者指南1
0.1本書概要1
0.2導讀1
0.3為何要學習計算機組成和體系結構1
0.4網際網路與Web資源2
0.4.1本書的Web站點2
0.4.2其他Web站點3
0.4.3USENET新聞組3
第一部分概論
第1章導論6
1.1計算機組成與體系結構6
1.2結構和功能7
1.2.1功能7
1.2.2結構8
1.3關鍵字和思考題9
第2章計算機的演變和性能10
2.1計算機簡史10
2.1.1第一代:真空管10
2.1.2第二代:電晶體15
2.1.3第三代:積體電路16
2.1.4後續幾代20
2.2性能設計22
2.2.1微處理器的速度23
2.2.2性能平衡23
2.2.3晶片組成和體系結構的改進25
2.3Intel x86體系結構的進展26
2.4嵌入式系統和ARM27
2.4.1嵌入式系統27
2.4.2ARM的進展29
2.5性能評價30
2.5.1時鐘速度和每秒指令數30
2.5.2基準程式32
2.5.3阿姆達爾定律34
2.6推薦的讀物和Web站點35
2.7關鍵字、思考題和習題36
第二部分計算機系統
第3章計算機功能和互連的頂層視圖42
3.1計算機的部件42
3.2計算機的功能44
3.2.1指令的讀取和執行44
3.2.2中斷46
3.2.3I/O功能51
3.3互連結構51
3.4匯流排互連52
3.4.1匯流排結構52
3.4.2多匯流排層次結構54
3.4.3匯流排的設計要素55
3.5PCI58
3.5.1匯流排結構58
3.5.2PCI命令61
3.5.3數據傳送62
3.5.4仲裁63
3.6推薦的讀物和Web站點64
3.7關鍵字、思考題和習題64
附錄3A時序圖67
第4章cache存儲器69
4.1計算機存儲系統概述69
4.1.1存儲系統的特性69
4.1.2存儲器層次結構71
4.2cache存儲器原理73
4.3cache的設計要素75
4.3.1cache地址75
4.3.2cache容量76
4.3.3映射功能77
4.3.4替換算法85
4.3.5寫策略85
4.3.6行大小86
4.3.7cache數目86
4.4Pentium 4的cache組織88
4.5ARM的cache組織90
4.6推薦的讀物91
4.7關鍵字、思考題和習題91
附錄4A兩級存儲器的性能特點95
第5章內部存儲器100
5.1半導體主存儲器100
5.1.1組織100
5.1.2DRAM和SRAM100
5.1.3ROM類型102
5.1.4晶片邏輯103
5.1.5晶片封裝104
5.1.6模組組織105
5.1.7多體交叉存儲器106
5.2糾錯107
5.3高級DRAM組織110
5.3.1同步DRAM111
5.3.2Rambus DRAM112
5.3.3DDR DRAM113
5.3.4cache DRAM114
5.4推薦的讀物和Web站點114
5.5關鍵字、思考題和習題115
第6章外部存儲器118
6.1磁碟118
6.1.1磁讀寫機制118
6.1.2數據組織和格式化119
6.1.3物理特性121
6.1.4磁碟性能參數122
6.2RAID124
6.2.1RAID 0級125
6.2.2RAID 1級128
6.2.3RAID 2級128
6.2.4RAID 3級128
6.2.5RAID 4級129
6.2.6RAID 5級130
6.2.7RAID 6級130
6.3光存儲器131
6.3.1光碟131
6.3.2數字多功能光碟133
6.3.3高清晰光碟134
6.4磁帶135
6.5推薦的讀物和Web站點136
6.6關鍵字、思考題和習題137
第7章輸入/輸出140
7.1外部設備140
7.1.1鍵盤/監視器141
7.1.2磁碟驅動器142
7.2I/O模組142
7.2.1模組功能142
7.2.2I/O模組結構143
7.3編程式I/O143
7.3.1編程式I/O概述144
7.3.2I/O命令144
7.3.3I/O指令144
7.4中斷驅動式I/O146
7.4.1中斷處理146
7.4.2設計問題148
7.4.3Intel 82C59A中斷控制器149
7.4.4Intel 82C55A可程式外部接口150
7.5直接存儲器存取151
7.5.1編程式I/O和中斷驅動式I/O的缺點151
7.5.2DMA功能151
7.5.3Intel 8237A DMA控制器153
7.6I/O通道和處理器155
7.6.1I/O功能的演變155
7.6.2I/O通道的特點155
7.7外部接口:FireWire和InfiniBand156
7.7.1接口類型156
7.7.2點對點和多點配置156
7.7.3FireWire串列匯流排157
7.7.4InfiniBand159
7.8推薦的讀物和Web站點162
7.9關鍵字、思考題和習題162
第8章作業系統支持166
8.1作業系統概述166
8.1.1作業系統的目標與功能166
8.1.2作業系統的類型168
8.2調度173
8.2.1長期調度173
8.2.2中期調度173
8.2.3短期調度173
8.3存儲器管理176
8.3.1交換177
8.3.2分區177
8.3.3分頁179
8.3.4虛擬存儲器180
8.3.5快表182
8.3.6分段183
8.4Pentium存儲器管理184
8.4.1地址空間184
8.4.2分段184
8.4.3分頁186
8.5ARM存儲器管理187
8.5.1存儲器系統組織187
8.5.2虛擬存儲器地址轉換187
8.5.3存儲器管理格式189
8.5.4存取控制190
8.6推薦的讀物和Web站點191
8.7關鍵字、思考題和習題191
第三部分中央處理器
第9章計算機算術196
9.1算術邏輯單元196
9.2整數表示196
9.2.1符號-幅值表示法197
9.2.22的補碼錶示法197
9.2.3不同位長間的轉換199
9.2.4定點表示法200
9.3整數算術200
9.3.1取負200
9.3.2加法和減法201
9.3.3乘法203
9.3.4除法207
9.4浮點表示208
9.4.1原理208
9.4.2二進制浮點表示的IEEE標準211
9.5浮點算術212
9.5.1浮點加法和減法213
9.5.2浮點乘法和除法214
9.5.3精度考慮215
9.5.4二進制浮點算術的IEEE標準216
9.6推薦的讀物和Web站點218
9.7關鍵字、思考題和習題219
第10章指令集:特徵和功能222
10.1機器指令特徵222
10.1.1機器指令要素222
10.1.2指令表示223
10.1.3指令類型224
10.1.4地址數目225
10.1.5指令集設計226
10.2運算元類型226
10.2.1數值227
10.2.2字元227
10.2.3邏輯數據228
10.3Intel x86和ARM數據類型228
10.3.1x86數據類型228
10.3.2ARM數據類型229
10.4操作類型230
10.4.1數據傳送232
10.4.2算術運算233
10.4.3邏輯運算233
10.4.4轉換234
10.4.5輸入/輸出235
10.4.6系統控制235
10.4.7控制轉移235
10.5Intel x86和ARM操作類型238
10.5.1x86操作類型238
10.5.2ARM操作類型244
10.6推薦的讀物246
10.7關鍵字、思考題和習題246
附錄10A棧250
附錄10B小端、大端和雙端253
第11章指令集:定址方式和指令格式256
11.1定址方式256
11.1.1立即定址257
11.1.2直接定址257
11.1.3間接定址257
11.1.4暫存器定址258
11.1.5暫存器間接定址258
11.1.6偏移定址258
11.1.7棧定址260
11.2x86和ARM定址方式260
11.2.1x86定址方式260
11.2.2ARM定址方式262
11.3指令格式264
11.3.1指令長度264
11.3.2位的分配265
11.3.3變長指令267
11.4x86和ARM指令格式269
11.4.1x86指令格式269
11.4.2ARM指令格式271
11.5彙編語言272
11.6推薦的讀物274
11.7關鍵字、思考題和習題274
第12章CPU結構和功能277
12.1CPU組成277
12.2暫存器組成278
12.2.1用戶可見暫存器278
12.2.2控制和狀態暫存器280
12.2.3微處理器暫存器組成的例子281
12.3指令周期282
12.3.1間接周期282
12.3.2數據流283
12.4指令流水線技術283
12.4.1流水線策略284
12.4.2流水線性能286
12.4.3流水線冒險288
12.4.4處理分支指令289
12.4.5Intel 80486的流水線292
12.5x86系列處理器293
12.5.1暫存器組成294
12.5.2中斷處理298
12.6ARM處理器299
12.6.1處理器組成300
12.6.2處理器模式301
12.6.3暫存器組成301
12.6.4中斷處理303
12.7推薦的讀物304
12.8關鍵字、思考題和習題304
第13章精簡指令集計算機308
13.1指令執行特徵309
13.1.1操作309
13.1.2運算元310
13.1.3過程調用311
13.1.4推論311
13.2大暫存器組方案的使用311
13.2.1暫存器視窗312
13.2.2全局變數313
13.2.3大暫存器組與高速快取的對比313
13.3基於編譯器的暫存器最佳化314
13.4精簡指令集體系結構315
13.4.1採用CISC的理由315
13.4.2精簡指令集體系結構特徵317
13.4.3CISC與RISC特徵對比318
13.5RISC流水線技術319
13.5.1使用規整指令的流水線技術319
13.5.2流水線的最佳化320
13.6MIPS R4000322
13.6.1指令集322
13.6.2指令流水線324
13.7SPARC327
13.7.1SPARC暫存器組327
13.7.2指令集328
13.7.3指令格式329
13.8RISC與CISC的爭論330
13.9推薦的讀物331
13.10關鍵字、思考題和習題331
第14章指令級並行性和超標量處理器335
14.1概述335
14.1.1超標量與超級流水線的對比336
14.1.2限制337
14.2設計考慮338
14.2.1指令級並行性和機器並行性338
14.2.2指令發射策略339
14.2.3暫存器重命名341
14.2.4機器並行性342
14.2.5分支預測342
14.2.6超標量執行343
14.2.7超標量實現343
14.3Pentium 4343
14.3.1前端347
14.3.2亂序執行邏輯348
14.3.3整數和浮點執行單元349
14.4ARM CORTEX?A8349
14.4.1指令取指單元349
14.4.2指令解碼單元351
14.4.3整數執行單元353
14.4.4SIMD和浮點流水線354
14.5推薦的讀物355
14.6關鍵字、思考題和習題356
第四部分控制器
第15章控制器操作362
15.1微操作362
15.1.1取指周期363
15.1.2間接周期364
15.1.3中斷周期365
15.1.4執行周期365
15.1.5指令周期366
15.2處理器控制367
15.2.1功能需求367
15.2.2控制信號367
15.2.3控制信號舉例368
15.2.4處理器內部的組織369
15.2.5Intel 8085370
15.3硬布線實現373
15.3.1控制器輸入373
15.3.2控制器邏輯374
15.4推薦的讀物374
15.5關鍵字、思考題和習題375
第16章微程式控制376
16.1基本概念376
16.1.1微指令376
16.1.2微程式控制器378
16.1.3Wilkes控制379
16.1.4優缺點382
16.2微指令定序382
16.2.1設計考慮382
16.2.2定序技術382
16.2.3地址生成384
16.2.4LSI?11微指令定序384
16.3微指令執行385
16.3.1微指令的分類法385
16.3.2微指令編碼387
16.3.3LSI?11微指令執行388
16.3.4IBM 3033微指令執行390
16.4TI 8800391
16.4.1微指令格式391
16.4.2微定序器393
16.4.3暫存器式ALU395
16.5推薦的讀物397
16.6關鍵字、思考題和習題397
第五部分並 行 組 織
第17章並行處理400
17.1多處理器組織401
17.1.1並行處理器系統的類型401
17.1.2並行組織402
17.2對稱多處理器402
17.2.1組織403
17.2.2多處理器作業系統設計考慮405
17.2.3大型機SMP405
17.3cache一致性和MESI協定407
17.3.1軟體解決方案408
17.3.2硬體解決方案408
17.3.3MESI協定409
17.4多執行緒和片上多處理器411
17.4.1隱式和顯式多執行緒412
17.4.2顯式多執行緒的方式413
17.4.3示例系統415
17.5集群416
17.5.1集群配置417
17.5.2作業系統設計問題418
17.5.3集群計算機體系結構419
17.5.4刀片伺服器420
17.5.5集群與SMP的對比421
17.6非均勻存儲器訪問421
17.6.1動機421
17.6.2組織422
17.6.3NUMA的優缺點423
17.7向量計算424
17.7.1向量計算的方法424
17.7.2IBM 3090向量機制427
17.8推薦的讀物和Web站點432
17.9關鍵字、思考題和習題433
第18章多核計算機437
18.1硬體性能問題437
18.1.1增加並行437
18.1.2功耗439
18.2軟體性能問題440
18.2.1多核軟體440
18.2.2套用實例:Valve遊戲軟體441
18.3多核組織結構442
18.4Intel x86多核結構443
18.4.1Intel Core Duo443
18.4.2Intel Core i7445
18.5ARM11 MPCore445
18.5.1中斷處理446
18.5.2cache一致性448
18.6推薦的讀物和Web站點448
18.7關鍵字、思考題和習題449
附錄A計算機組成與體系結構的教學課題451
附錄B彙編語言及相關主題455
術語表473
參考文獻480

熱門詞條

聯絡我們