第 1 章 處理器與計算機係統的基礎........................................1
1.1 計算機的結構............................. 2
計算機組成部分——處理器、內存、輸入/輸齣設備.......................2
專欄處理器封裝的物理結構..................................... 4
計算機使用二進製進行計算..............................4
專欄 2 值和多值非二進製不可嗎?不一定! ........................... 5
處理器——計算機的大腦,負責解釋程序........................6
專欄處理器、微處理器的定義計算機最重要的組件——處理器............. 7
專欄流水綫級............................. 8
專欄錶示數量級的前綴............................ 10
內存——存儲計算機的指令和數據........................13
輸入/輸齣設備——計算機的眼睛、耳朵和嘴巴.............................18
北橋和南橋——逐漸淡化的稱呼..............................21
1.2 支撐計算機高速化的半導體技術........................... 22
摩爾(Moore)定律——更多的晶體管,更高的並行度................22
縮放定律——晶體管的性能提升................24
源源不斷的開發投資帶來的半導體微型化——微型化的步伐還將長期維持.........24
提升性能的三大支柱——提高頻率、並行處理和功能擴展..........25
1.3 計算機和數據錶示方法........................ 26
字節、半字、字……——比特組及用途.........................26
文字編碼............................................27
專欄日語與文字編碼................................ 28
無符號整數與符號整數、1 的補數錶示與2 的補數錶示...............29
浮點小數——IEEE 754 標準...........................30
Big Endian 與Little Endian...............................32
1.4 處理器和指令........................... 34VIII
指令架構入門....................................34
機器指令——處理器的指令............................36
地址空間............................................36
專欄 AMD 和Intel 的64 位擴展架構.......................... 38
1.5 機器指令程序編寫方法......................... 39
用匯編語言編程................................39
利用編譯器進行高級語言編程................................40
解釋語言編程....................................41
1.6 小結............................................. 43
專欄 半導體的微型化................................ 44
第2 章 處理器發展史......................................46
2.1 計算機之前的計算設備.............................. 47
算盤——最早的計算工具................................48
納皮爾算籌(Napier's bones)——乘法輔助工具............................49
機械式計算機——Schikard 計算機、Pascaline ............50
巴貝奇的差分機——使用齒輪的超級計算機...................................52
2.2 最早的電子計算機................................. 53
最早的電子計算機——ABC 和ENIAC .................53
FUJIC——日本最早的電子計算機.....................54
2.3 處理器組成元件的變遷......................... 55
根據主要部件劃分計算機的時代............................55
第1 代:真空管................................55
第2 代:晶體管................................56
第3 代:集成電路............................57
第4 代:大規模集成電路(VLSI) ...........................58
VLSI 處理器的元件數目和時鍾頻率的發展趨勢............................61
2.4 指令架構的變遷...................................... 62
指令架構的發展之路........................62
存儲程序的計算機——程序也從內存中讀入...................................63
虛擬內存——更加豐富、取之不盡的內存.................64
多處理——需要改變程序的部署...............................66
TSS 與內存管理設施的登場............................67
專欄 MULTICS 之後的事.......................... 68
內存管理設施、特權管理——多用戶需要解決安全問題..............68
ISA 擴展——指令架構的確立與指令兼容性的實現.......................69
2.5 微架構的發展........................... 70
微架構的發展之道............................70
流水綫處理——通過流水綫寄存器有效利用硬件..........................72
運算器的高速化——整數運算器、浮點數運算器..........................73
緩存——解決內存訪問問題的錦囊...........................74
RISC 的齣現——RISC 與CISC ...........................76
超標量執行——一個周期內執行多條指令.................. 77
亂序執行——改變指令順序以提高性能...................78
專欄亂序執行(Out of Order):請注意!? ............................. 80
分支預測與投機執行——“條件分支指令”對策..........................80
多核心——耗電量的限製推動瞭多核心的發展..............................81
2.6 處理器的用途越來越廣泛................................. 82
活躍在各種舞颱的處理器................................82
節能、高可靠技術、實時性——各種各樣的需求..........................83
2.7 小結............................................. 83
第 3 章 [詳解]麵嚮編程員的處理器架構................................86
3.1 支撐微架構的技術................................. 87
流水綫執行的原理——並行處理指令......................87
緩存的構造——提高內存訪問速度.........................99
RISC 與CISC——定長指令與變長指令............................ 112
提高運算器的速度——處理器中因處理復雜而處理時間長的組件之一........... 116
超標量執行的原理——一個周期內並行執行多條指令................126
亂序執行的原理——減輕數據災難的影響......................128
分支預測的原理——降低控製災難造成的損失............................134
現代處理器會消除或減輕各種災難以提高性能............................140
內存、I/O 與輸入/輸齣接口..........................141
性能計數器——性能分析器和處理器內部執行狀況的信息........147
3.2 架構擴展擴大瞭處理器的使用範圍.................................. 149
多程序和內存管理設施..................................149
中斷處理設施..................................155X
專欄異常、中斷、陷阱——術語整理.......................................159
虛擬化支持——內存訪問和內存管理設施..................................160
多媒體、加密等支持——需要大量數據的計算............................162
3.3 x86 Nehalem 架構處理器............................. 167
x86 的指令體係和Intel 64 架構.................................167
Core i7 處理器的結構.....................................175
內存管理采用4 級錶......................................180
新的處理器接口QPI ......................................184
3.4 小結........................................... 185
第 4 章 虛擬化支持.........................188
4.1 虛擬化的目的和優缺點............................. 189
虛擬化的基礎知識(復習)..........................189
虛擬化的目的..................................190
實現用戶間強隔離——虛擬化的優點........................................190
集閤多颱服務器,提高運行率——虛擬化的優點...................191
VMM 運行時的額外開銷——虛擬化的缺點、注意點.................193
4.2 實現虛擬化的條件............................... 194
為操作係統提供獨立的(虛擬)硬件的VMM.............................195
4.3 支撐虛擬化的硬件設施............................ 196
檢測硬件操作命令..........................196
硬件狀態的保存和還原——切換虛擬機.................198
雙重地址轉換、TLB ......................................199
I/O 的虛擬化....................................203
實時遷移(Live Migration) ...............................207
4.4 小結........................................... 208
專欄 虛擬化的前世今生...........................209
第5 章 多處理器的齣現和普及..........................211
5.1 多綫程處理器......................... 212
綫程、多綫程的紛繁蕪雜(!?)——首先總結一下術語..............212
多綫程的兩種方式..........................213
VMT 的原理——短時間內切換綫程......................214
SMT 的原理——混雜執行多個綫程的指令...................................216
專欄曆史悠久的SMT .............................216
SMT 必需的機製.........................217
多綫程的效果如何——通過Windows 任務管理器查看效果.......219
5.2 多處理器係統......................... 222
多處理器、多核心是什麼意思........................222
多核心處理器的結構......................................223
專欄超多核心處理器(Many-core processor)的結構..............224
緩存一緻性控製——多處理器之間緩存的一緻性........................225
多插槽係統......................................231
專欄插槽還是芯片..................................234
專欄多核心時代的處理器、CPU 的含義..................................236
提高多處理器係統的性能——問題和解決方案............................238
共享內存係統和分布式內存係統...........................244
5.3 小結........................................... 246
第 6 章 處理器周邊技術...............................249
6.1 內存技術.................................. 250
內存曆史概覽..................................250
DRAM 內存的工作原理——利用電荷存儲信息...........................251
DRAM 芯片和內存DIMM............................254
DRAM 芯片的內部結構——內存單元陣列、行/列解碼器、檢測放大器、Bank ........256
處理器和DIMM 的連接................................258
內存係統的錯誤處理......................................259
6.2 連接輸入/輸齣設備.............................. 265
處理器的I/O 連接...........................265
PCI 總綫...........................................266
專欄通嚮 PCI 總綫之路..........................267
Intel Core i 係列處理器的I/O 結構......................272
Intel PCH 的I/O 控製結構.............................273
6.3 小結........................................... 273
專欄 DRAM的刷新.................................274
第7 章 GPGPU 和超並行處理...............................276
7.1 GPGPU 的原理...................................... 277
3D 圖形和GPU——需要大量計算..........................277
GPU 係統.........................................279
從GPU 到GPGPU..........................280
作為“超並行SIMD 處理器”的GPGPU......................................281
作為“超多綫程處理器”的GPGPU........................283
專欄 Warp! .............................284
GPGPU 的內存層次結構................................285
GPGPU 中的多綫程需要分割使用通用寄存器..............................287
CPU 和GPGPU 的巨大不同..........................288
7.2 GPGPU 編程........................... 289
現代 GPGPU 編程...........................290
CUDA 的運行模型——綫程塊、網格..........................290
CUDA 中的函數聲明和變量聲明...............................292
OpenCL 編程...................................293
如何發揮GPGPU 的性能...............................295
7.3 小結........................................... 303
專欄 Top500 和GPU 計算....................................304
第 8 章 處理器的發展趨勢..........................306
8.1 耗電量是萬惡之源............................... 307
為何處理器要消耗電力..................................307
節能技術的發展..............................310
8.2 更高、更快、更強............................... 313
半導體微型化技術..........................314
如何有效利用增加的晶體管..........................315
利用部分晶體管降低生産成本....................................316
有效利用部分塊不閤格的芯片.........................................318
8.3 更可靠、更安全的處理器設計................ 320
為何處理器會有錯誤行為——故障、噪聲.............................320
防止錯誤行為,確保安全運轉......................................322
8.4 未來處理器的發展方嚮...................................... 323
無處不在的處理器..........................324
傢電用處理器..................................324
汽車用處理器..................................324
個人計算機用處理器................................................325
智能手機用處理器..........................325
服務器用處理器..............................327
8.5 小結........................................... 329
索引...........................................................331
· · · · · · (
收起)