現代計算機組成與體系結構 Modern Computer Architecture and Organization: Learn x86, ARM, and RISC-V architectures and the design of smartphones, PCs, and cloud servers

Jim Ledin 王黨輝

買這商品的人也買了...

商品描述

本書對現代計算設備進行了介紹,包括其中可能出現的每一項重要技術和子系統,並闡釋其與其他系統部件之間的關係。
全書分為三部分。
第1部分介紹計算機體系結構基礎知識,包括計算機體系結構的基本概念、數字邏輯、
處理器元件、計算機系統組件、硬件軟件接口、專用計算領域。
第二部分介紹處理器體系結構和指令集,涉及處理器和存儲器體系結構、性能增強技術、
專用處理器擴展、現代處理器體系結構和指令集、RISC-V體系結構和指令集。
第三部分介紹計算機體系結構的應用,包括處理器虛擬化、具體的應用程序類別
(包括移動設備、個人電腦、遊戲系統、互聯網搜索引擎和神經網絡)、計算機體系結構未來的方向。
讀完本書,讀者將掌握目前在廣泛多樣的數字系統中所使用的計算機體系結構。

目錄大綱

前言
一部分 計算機體系結構基礎知識
1章 計算機體系結構簡介2
1.1 自動化計算設備的演進2
1.1.1 巴貝奇分析機2
1.1.2 ENIAC3
1.1.3 IBM PC4
1.1.4 iPhone6
1.2 摩爾定律7
1.3 計算機體系結構9
1.3.1 二進制數和十六進制數9
1.3.2 6502微處理器12
1.3.3 6502指令集13
1.4 總結15
1.5 習題15
2章 數字邏輯17
2.1 電路17
2.2 晶體管18
2.3 邏輯門19
2.4 鎖存器21
2.5 觸發器23
2.6 寄存器24
2.7 加法器25
2.8 時鐘27
2.9 時序邏輯28
2.10 硬件描述語言28
2.11 總結32
2.12 習題32
3章 處理器要素33
3.1 一個簡單的處理器33
3.1.1 控制單元34
3.1.2 算術邏輯單元36
3.1.3 寄存器 39
3.2 指令集40
3.3 尋址方式40
3.3.1 立即尋址方式41
3.3.2 對尋址方式41
3.3.3 對索引尋址方式42
3.3.4 間接索引尋址方式43
3.4 指令類型44
3.4.1 內存加載指令和存儲指令 44
3.4.2 寄存器到寄存器的數據傳送指令45
3.4.3 堆棧指令45
3.4.4 算術運算指令45
3.4.5 邏輯運算指令46
3.4.6 分支指令46
3.4.7 子程序調用和返回指令46
3.4.8 處理器標誌指令47
3.4.9 中斷相關的指令47
3.4.10 空作指令47
3.5 中斷處理47
3.5.1 IRQ處理47
3.5.2 NMI處理48
3.5.3 BRK指令處理49
3.6 輸入/輸出作50
3.6.1 程序查詢I/O51
3.6.2 中斷驅動I/O51
3.6.3 直接存儲器訪問51
3.7 總結52
3.8 習題52
4章 計算機系統組件54
4.1 技術要求54
4.2 內存子系統54
4.3 MOSFET簡介55
4.4 用MOSFET構建DRAM電路56
4.4.1 電容器56
4.4.2 DRAM位單元57
4.4.3 DDR4 SDRAM58
4.4.4 GDDR60
4.4.5 預取60
4.5 I/O子系統61
4.5.1 串行數據總線和並行數據總線61
4.5.2 PCI Epress62
4.5.3 SATA63
4.5.4 M.264
4.5.5 USB64
4.5.6 Thunderbolt64
4.6 圖形顯示65
4.6.1 VGA65
4.6.2 DVI66
4.6.3 HDMI66
4.6.4 DisplayPort66
4.7 網絡接口67
4.7.1 以太網67
4.7.2 Wi-Fi67
4.8 鍵盤和鼠標68
4.8.1 鍵盤68
4.8.2 鼠標69
4.9 現代計算機系統規範69
4.10 總結70
4.11 習題70
5章 硬件-軟件接口71
5.1 設備驅動程序71
5.1.1 並行端口72
5.1.2 PCIe設備驅動程序73
5.1.3 設備驅動程序結構74
5.2 BIOS75
5.3 引導過程77
5.3.1 BIOS引導77
5.3.2 UEFI引導77
5.3.3 嵌入式設備 78
5.4 作系統78
5.5 進程和線程80
5.6 多處理84
5.7 總結84
5.8 習題85
6章 專用計算領域86
6.1 實時計算86
6.2 數字信號處理89
6.2.1 模數轉換器和數模轉換器89
6.2.2 DSP硬件特性91
6.2.3 信號處理算法92
6.3 GPU處理95
6.4 專用體系結構示例98
6.5 總結99
6.6 習題99
二部分 處理器體系結構和指令集
7章 處理器和存儲器體系結構102
7.1 技術要求102
7.2 馮·諾依曼體系結構、哈體系結構、改進型哈體系結構102
7.2.1 馮·諾依曼體系結構102
7.2.2 哈體系結構104
7.2.3 改進型哈體系結構104
7.3 物理內存和虛擬內存105
7.4 分頁虛擬內存107
7.4.1 頁面狀態位109
7.4.2 內存池110
7.5 內存管理單元111
7.6 總結113
7.7 習題113
8章 性能提陞技術114
8.1 高速緩存114
8.1.1 多級處理器緩存115
8.1.2 靜態RAM116
8.1.3 一級緩存117
8.1.4 直接映緩存117
8.1.5 組相聯映緩存119
8.1.6 全相聯映緩存120
8.1.7 處理器緩存寫策略121
8.1.8 二級緩存和三級緩存122
8.2 指令流水線123
8.2.1 流水線125
8.2.2 流水線冒險125
8.2.3 微作和寄存器重命名126
8.2.4 條件分支127
8.3 同時多線程128
8.4 SIMD處理129
8.5 總結129
8.6 習題130
9章 專用處理器擴展131
9.1 技術要求131
9.2 處理器的特權模式131
9.2.1 中斷和異常處理131
9.2.2 保護環133
9.2.3 監控模式和用戶模式135
9.2.4 系統調用135
9.3 浮點數運算136
9.3.1 8087浮點協處理器137
9.3.2 IEEE 754浮點數標準138
9.4 功耗管理139
9.5 系統安全管理140
9.6 總結142
9.7 習題142
10章 現代處理器體系結構與指令集143
10.1 技術要求143
10.2 86體系結構與指令集143
10.2.1 86寄存器集145
10.2.2 86尋址方式147
10.2.3 86指令類別149
10.2.4 86指令格式152
10.2.5 86彙編語言153
10.3 64體系結構與指令集155
10.3.1 64寄存器集156
10.3.2 64指令類別和格式156
10.3.3 64彙編語言157
10.4 32位ARM體系結構與指令集158
10.4.1 ARM寄存器集160
10.4.2 ARM尋址方式161
10.4.3 ARM指令類別162
10.4.4 ARM彙編語言164
10.5 64位ARM體系結構與指令集166
10.6 總結168
10.7 習題169
11章 RISC-V體系結構與指令集171
11.1 技術要求171
11.2 RISC-V體系結構與功能171
11.3 RISC-V基礎指令集173
11.3.1 計算指令173
11.3.2 控制流指令174
11.3.3 訪存指令174
11.3.4 系統指令175
11.3.5 偽指令176
11.3.6 特權級177
11.4 RISC-V擴展178
11.4.1 M擴展178
11.4.2 A擴展178
11.4.3 C擴展179
11.4.4 F擴展和D擴展179
11.4.5 其他擴展180
11.5 64位RISC-V180
11.6 標準RISC-V配置181
11.7 RISC-V彙編語言181
11.8 在FPGA中實現RISC-V182
11.9 總結185
11.10 習題185
三部分 計算機體系結構的應用
12章 處理器虛擬化188
12.1 技術要求188
12.2 虛擬化介紹188
12.2.1 虛擬化類型188
12.2.2 處理器虛擬化的類型190
12.3 虛擬化的挑戰193
12.3.1 不安全指令194
12.3.2 影子頁表194
12.3.3 安全性194
12.4 虛擬化現代處理器195
12.4.1 86處理器虛擬化195
12.4.2 ARM處理器虛擬化196
12.4.3 RISC-V處理器虛擬化196
12.5 虛擬化工具197
12.5.1 VirtualBo197
12.5.2 VMware Workstation197
12.5.3 VMware ESXi198
12.5.4 KVM198
12.5.5 Xen198
12.5.6 QEMU198
12.6 虛擬化和雲計算199
12.7 總結199
12.8 習題200
13章 領域專用計算機體系結構201
13.1 技術要求201
13.2 設計滿足特定需求的計算機系統201
13.3 智能手機體系結構202
13.4 PC體系結構204
13.4.1 Alienware Aurora Ryzen Edition遊戲台式機204
13.4.2 Ryzen 9 3950X的分支預測205
13.4.3 Nvidia GeForce RTX 2080 Ti GPU205
13.4.4 Aurora子系統206
13.5 倉儲式計算體系結構 207
13.5.1 WSC硬件207
13.5.2 基於機架的服務器209
13.5.3 硬件故障管理 210
13.5.4 電力消耗210
13.5.5 WSC作為多級信息緩存211
13.6 神經網絡與機器學習體系結構211
13.7 總結213
13.8 習題214
14章 計算機體系結構的未來發展方向215
14.1 計算機體系結構的發展歷程215
14.2 未來的發展趨勢216
14.2.1 重溫摩爾定律216
14.2.2 3D堆疊217
14.2.3 提高設備的專用化程度217
14.3 潛在的顛覆性技術218
14.3.1 量子物理學218
14.3.2 自旋電子學219
14.3.3 量子計算219
14.3.4 碳納米管222
14.4 培養適應未來發展的技能222
14.4.1 持續學習222
14.4.2 會議與期刊223
14.5 總結224
14.6 習題224
習題答案225
1章習題答案225
2章習題答案236
3章習題答案240
4章習題答案248
5章習題答案249
6章習題答案251
7章習題答案253
8章習題答案255
9章習題答案256
10章習題答案263
11章習題答案289
12章習題答案295
13章習題答案298
14章習題答案300