本書采用結(jié)構(gòu)化方法來介紹計算機系統(tǒng),書的內(nèi)容完全建立在“計算機是由層次結(jié)構(gòu)組成的,每層完成規(guī)定的功能”這一概念之上。作者對本版進行了徹底的更新,以反映當今最重要的計算機技術(shù)以及計算機組成和體系結(jié)構(gòu)方面的最新進展。書中詳細討論了數(shù)字邏輯層、微體系結(jié)構(gòu)層、指令系統(tǒng)層、操作系統(tǒng)層和匯編語言層,并涵蓋了并行體系結(jié)構(gòu)的內(nèi)容,而且每一章結(jié)尾都配有豐富的習題。
本書適合作為計算機專業(yè)本科生計算機組成與結(jié)構(gòu)課程的教材或參考書,也可供相關(guān)領(lǐng)域技術(shù)人員參考。
Structured Computer Organization, Sixth Edition
出版者的話
譯者序
前言
第1章 概述 1
1.1 結(jié)構(gòu)化計算機組成 1
1.1.1 語言、層次和虛擬機 1
1.1.2 現(xiàn)代多層次計算機 3
1.1.3 多層次計算機的演化 5
1.2 計算機體系結(jié)構(gòu)的里程碑 8
1.2.1 第零代——機械計算機(1642—1945) 8
1.2.2 第一代——電子管計算機(1945—1955) 10
1.2.3 第二代——晶體管計算機(1955—1965) 12
1.2.4 第三代——集成電路計算機(1965—1980) 14
1.2.5 第四代——超大規(guī)模集成電路計算機(1980年至今) 15
1.2.6 第五代——低功耗和無所不在的計算機 17
1.3 計算機家族 18
1.3.1 技術(shù)和經(jīng)濟推動 18
1.3.2 計算機掃視 20
1.3.3 一次性計算機 21
1.3.4 微型控制器 22
1.3.5 移動計算機和游戲計算機 23
1.3.6 個人計算機 24
1.3.7 服務器 25
1.3.8 大型主機 26
1.4 系列計算機舉例 26
1.4.1 x86體系結(jié)構(gòu)簡介 27
1.4.2 ARM體系結(jié)構(gòu)簡介 31
1.4.3 AVR體系結(jié)構(gòu)簡介 32
1.5 公制計量單位 33
1.6 本書概覽 34
習題 35
第2章 計算機系統(tǒng)組成 38
2.1 處理器 38
2.1.1 CPU組成 39
2.1.2 指令執(zhí)行 40
2.1.3 RISC和CISC 42
2.1.4 現(xiàn)代計算機設(shè)計原則 43
2.1.5 指令級并行 44
2.1.6 處理器級并行 47
2.2 主存儲器 50
2.2.1 存儲位 50
2.2.2 內(nèi)存編址 51
2.2.3 字節(jié)順序 52
2.2.4 糾錯碼 53
2.2.5 高速緩存 56
2.2.6 內(nèi)存封裝及其類型 58
2.3 輔助存儲器 59
2.3.1 層次存儲結(jié)構(gòu) 59
2.3.2 磁盤 60
2.3.3 IDE盤 62
2.3.4 SCSI盤 63
2.3.5 RAID盤 64
2.3.6 固盤 67
2.3.7 只讀光盤 68
2.3.8 可刻光盤 71
2.3.9 可擦寫光盤 73
2.3.10 DVD 73
2.3.11 Blu-Ray 74
2.4 輸入/輸出設(shè)備 75
2.4.1 總線 75
2.4.2 終端 78
2.4.3 鼠標 81
2.4.4 游戲控制器 83
2.4.5 打印機 84
2.4.6 電信設(shè)備 88
2.4.7 數(shù)碼相機 94
2.4.8 字符編碼 95
2.5 小結(jié) 99
習題 99
第3章 數(shù)字邏輯層 103
3.1 門和布爾代數(shù) 103
3.1.1 門 103
3.1.2 布爾代數(shù) 105
3.1.3 布爾函數(shù)的實現(xiàn) 107
3.1.4 等價電路 108
3.2 基本數(shù)字邏輯電路 110
3.2.1 集成電路 111
3.2.2 組合邏輯電路 111
3.2.3 算術(shù)電路 114
3.2.4 時鐘 118
3.3 內(nèi)存 119
3.3.1 鎖存器 119
3.3.2 觸發(fā)器 121
3.3.3 寄存器 122
3.3.4 內(nèi)存組成 123
3.3.5 內(nèi)存芯片 125
3.3.6 RAM和ROM 128
3.4 CPU芯片和總線 130
3.4.1 CPU芯片 130
3.4.2 計算機總線 132
3.4.3 總線寬度 134
3.4.4 總線時鐘 135
3.4.5 總線仲裁 138
3.4.6 總線操作 141
3.5 CPU芯片舉例 143
3.5.1 Intel Core i7 143
3.5.2 德州儀器的OMAP4430片上系統(tǒng) 147
3.5.3 Atmel的ATmega168微控制器 150
3.6 總線舉例 152
3.6.1 PCI總線 152
3.6.2 PCI Express 159
3.6.3 通用串行總線USB 162
3.7 接口電路 165
3.7.1 輸入/輸出接口 165
3.7.2 地址譯碼 166
3.8 小結(jié) 169
習題 169
第4章 微體系結(jié)構(gòu)層 173
4.1 微體系結(jié)構(gòu)舉例 173
4.1.1 數(shù)據(jù)通路 174
4.1.2 微指令 178
4.1.3 微指令控制:Mic-1 180
4.2 指令系統(tǒng)舉例:IJVM 183
4.2.1 棧 183
4.2.2 IJVM內(nèi)存模型 185
4.2.3 IJVM指令集 186
4.2.4 將Java編譯為IJVM 189
4.3 實現(xiàn)舉例 190
4.3.1 微指令和符號 190
4.3.2 用Mic-1實現(xiàn)IJVM 193
4.4 微體系結(jié)構(gòu)層設(shè)計 201
4.4.1 速度與價格 202
4.4.2 縮短指令執(zhí)行路徑長度 203
4.4.3 帶預取的設(shè)計:Mic-2 208
4.4.4 流水線設(shè)計:Mic-3 211
4.4.5 七段流水線設(shè)計:Mic-4 215
4.5 提高性能 217
4.5.1 高速緩存 218
4.5.2 分支預測 222
4.5.3 亂序執(zhí)行和寄存器重命名 226
4.5.4 推測執(zhí)行 230
4.6 微體系結(jié)構(gòu)層舉例 232
4.6.1 Core i7 CPU的微體系結(jié)構(gòu) 232
4.6.2 OMAP4430 CPU的微體系結(jié)構(gòu) 236
4.6.3 ATmega168微控制器的微體系結(jié)構(gòu) 240
4.7 Core i7、OMAP4430和ATmega168三種CPU的比較 241
4.8 小結(jié) 242
習題 243
第5章 指令系統(tǒng)層 246
5.1 指令系統(tǒng)層概述 247
5.1.1 指令系統(tǒng)層的性質(zhì) 247
5.1.2 存儲模式 249
5.1.3 寄存器 250
5.1.4 指令 251
5.1.5 Core i7指令系統(tǒng)層概述 251
5.1.6 OMAP4430 ARM指令系統(tǒng)層概述 253
5.1.7 ATmega168 AVR指令系統(tǒng)層概述 255
5.2 數(shù)據(jù)類型 256
5.2.1 數(shù)值數(shù)據(jù)類型 257
5.2.2 非數(shù)值數(shù)據(jù)類型 257
5.2.3 Core i7的數(shù)據(jù)類型 258
5.2.4 OMAP4430 ARM CPU的數(shù)據(jù)類型 258
5.2.5 ATmega168 AVR CPU的數(shù)據(jù)類型 259
5.3 指令格式 259
5.3.1 指令格式設(shè)計準則 260
5.3.2 擴展操作碼 261
5.3.3 Core i7指令格式 263
5.3.4 OMAP4430 ARM CPU指令格式 264
5.3.5 ATmega168 AVR指令格式 266
5.4 尋址 267
5.4.1 尋址方式 267
5.4.2 立即尋址 267
5.4.3 直接尋址 267
5.4.4 寄存器尋址 267
5.4.5 寄存器間接尋址 267
5.4.6 變址尋址 269
5.4.7 基址變址尋址 270
5.4.8 棧尋址 270
5.4.9 轉(zhuǎn)移指令的尋址方式 272
5.4.10 操作碼和尋址方式的關(guān)系 273
5.4.11 Core i7的尋址方式 274
5.4.12 OMAP4430 ARM CPU的尋址方式 276
5.4.13 ATmega168 AVR的尋址方式 276
5.4.14 尋址方式討論 276
5.5 指令類型 277
5.5.1 數(shù)據(jù)移動指令 277
5.5.2 雙操作數(shù)指令 278
5.5.3 單操作數(shù)指令 279
5.5.4 比較和條件轉(zhuǎn)移指令 280
5.5.5 過程調(diào)用指令 281
5.5.6 循環(huán)控制指令 282
5.5.7 輸入/輸出指令 283
5.5.8 Core i7指令系統(tǒng) 285
5.5.9 OMAP4430 ARM CPU指令系統(tǒng) 287
5.5.10 ATmega168 AVR指令系統(tǒng) 289
5.5.11 指令集比較 291
5.6 控制流 291
5.6.1 順序控制流和轉(zhuǎn)移 291
5.6.2 過程 292
5.6.3 協(xié)同過程 295
5.6.4 陷阱 297
5.6.5 中斷 297
5.7 詳細舉例:漢諾塔 300
5.7.1 Core i7匯編語言實現(xiàn)的漢諾塔 300
5.7.2 OMAP4430 ARM匯編語言實現(xiàn)的漢諾塔 302
5.8 IA-64體系結(jié)構(gòu)和Itanium 2 303
5.8.1 IA-32的問題 303
5.8.2 IA-64模型:顯式并行指令計算 304
5.8.3 減少內(nèi)存訪問 305
5.8.4 指令調(diào)度 305
5.8.5 減少條件轉(zhuǎn)移:判定 307
5.8.6 推測加載 308
5.9 小結(jié) 309
習題 310
第6章 操作系統(tǒng)層 314
6.1 虛擬內(nèi)存 314
6.1.1 內(nèi)存分頁 315
6.1.2 內(nèi)存分頁的實現(xiàn) 316
6.1.3 請求調(diào)頁和工作集模型 319
6.1.4 頁置換策略 320
6.1.5 頁大小和碎片 321
6.1.6 分段 322
6.1.7 分段的實現(xiàn) 324
6.1.8 Core i7的虛擬內(nèi)存 326
6.1.9 OMAP4430 ARM CPU的虛擬內(nèi)存 329
6.1.10 虛擬內(nèi)存和高速緩存 331
6.2 硬件虛擬化 331
6.3 操作系統(tǒng)層I/O指令 333
6.3.1 文件 333
6.3.2 操作系統(tǒng)層I/O指令的實現(xiàn) 335
6.3.3 目錄管理指令 337
6.4 用于并行處理的操作系統(tǒng)層指令 338
6.4.1 進程創(chuàng)建 339
6.4.2 競爭條件 339
6.4.3 使用信號量的進程同步 342
6.5 操作系統(tǒng)實例 345
6.5.1 簡介 345
6.5.2 虛擬內(nèi)存實例 350
6.5.3 操作系統(tǒng)層I/O舉例 352
6.5.4 進程管理實例 361
6.6 小結(jié) 365
習題 366
第7章 匯編語言層 371
7.1 匯編語言簡介 371
7.1.1 什么是匯編語言 372
7.1.2 為什么使用匯編語言 372
7.1.3 匯編語言語句的格式 373
7.1.4 偽指令 374
7.2 宏 376
7.2.1 宏定義、調(diào)用和擴展 376
7.2.2 帶參數(shù)的宏 377
7.2.3 高級特性 378
7.2.4 匯編器中宏處理的實現(xiàn) 378
7.3 匯編過程 379
7.3.1 兩趟匯編的匯編器 379
7.3.2 第一趟掃描 379
7.3.3 第二趟掃描 382
7.3.4 符號表 384
7.4 鏈接和加載 385
7.4.1 鏈接器的處理過程 386
7.4.2 目標模塊的結(jié)構(gòu) 388
7.4.3 綁定時間和動態(tài)重定位 389
7.4.4 動態(tài)鏈接 390
7.5 小結(jié) 393
習題 393
第8章 并行計算機體系結(jié)構(gòu) 396
8.1 片內(nèi)并行 397
8.1.1 指令級并行 397
8.1.2 片內(nèi)多線程 402
8.1.3 單片多處理器 406
8.2 協(xié)處理器 410
8.2.1 網(wǎng)絡(luò)處理器 411
8.2.2 圖形處理器 416
8.2.3 加密處理器 418
8.3 共享內(nèi)存的多處理器 418
8.3.1 多處理器與多計算機 418
8.3.2 內(nèi)存語義 424
8.3.3 UMA對稱多處理器體系結(jié)構(gòu) 426
8.3.4 NUMA多處理器系統(tǒng) 432
8.3.5 COMA多處理器系統(tǒng) 439
8.4 消息傳遞的多計算機 440
8.4.1 互聯(lián)網(wǎng)絡(luò) 441
8.4.2 MPP——大規(guī)模并行處理器 443
8.4.3 集群計算 450
8.4.4 多計算機的通信軟件 454
8.4.5 調(diào)度 456
8.4.6 應用層的共享內(nèi)存 457
8.4.7 性能 461
8.5 網(wǎng)格計算 465
8.6 小結(jié) 467
習題 468
參考文獻 471
附錄A 二進制數(shù) 479
附錄B 浮點數(shù) 487
附錄C 匯編語言程序設(shè)計 493
索引 534