第1章 處理器與計算機系統(tǒng)的基礎
1.1 計算機的結構
計算機組成部分——處理器、內存、輸入/輸出設備
專欄 處理器封裝的物理結構
計算機使用二進制進行計算
專欄 2值和多值 非二進制不可嗎?不一定!
處理器——計算機的大腦,負責解釋程序
專欄 處理器、微處理器的定義 計算機最重要的組件
——處理器
專欄 流水線級
專欄 表示數量級的前綴
內存——存儲計算機的指令和數據
輸入/輸出設備——計算機的眼睛、耳朵和嘴巴
北橋和南橋——逐漸淡化的稱呼
1.2 支撐計算機高速化的半導體技術
摩爾(Moore)定律——更多的晶體管,更高的并行度
縮放定律——晶體管的性能提升
源源不斷的開發(fā)投資帶來的半導體微型化——微型化的步伐
還將長期維持
提升性能的三大支柱——提高頻率、并行處理和功能擴展
1.3 計算機和數據表示方法
字節(jié)、半字、字……——比特組及用途
文字編碼
專欄 日語與文字編碼
無符號整數與有符號整數、反碼與補碼表示法
浮點小數——IEEE 754標準
Big Endian與Little Endian
1.4 處理器和指令
指令架構入門
機器指令——處理器的指令
地址空間
專欄 AMD和Intel的64位擴展架構
1.5 機器指令程序編寫方法
用匯編語言編程
利用編譯器進行高級語言編程
解釋語言編程
1.6 小結
專欄 半導體的微型化
第2章 處理器發(fā)展史
2.1 計算機之前的計算設備
算盤——最早的計算工具
納皮爾算籌(Napier's bones)——乘法輔助工具
機械式計算機——Schikard計算機、Pascaline
巴貝奇的差分機——使用齒輪的超級計算機
2.2 最早的電子計算機
最早的電子計算機——ABC和ENIAC
FUJIC——日本最早的電子計算機
2.3 處理器組成元件的變遷
根據主要部件劃分計算機的時代
第1代:真空管
第2代:晶體管
第3代:集成電路
第4代:大規(guī)模集成電路(VLSI)
VLSI處理器的元件數目和時鐘頻率的發(fā)展趨勢
2.4 指令架構的變遷
指令架構的發(fā)展之路
存儲程序的計算機——程序也從內存中讀入
虛擬內存——更加豐富、取之不盡的內存
多任務——需要改變程序的部署
分時系統(tǒng)與內存管理設施的出現
專欄 MULTICS之后的事
內存管理機構、特權態(tài)——多用戶需要解決安全問題
指令架構擴展——指令架構的確立與指令兼容性的實現
2.5 微架構的發(fā)展
微架構的發(fā)展之道
流水線處理——通過流水線寄存器有效利用硬件
運算器的高速化——整數運算器、浮點數運算器
高速緩存——解決內存訪問問題的錦囊
RISC的出現——RISC與CISC
超標量執(zhí)行——一個周期內執(zhí)行多條指令
亂序執(zhí)行——改變指令順序以提高性能
專欄 亂序執(zhí)行(Out of Order):請注意???
分支預測與預測執(zhí)行——“條件分支指令”對策
多核心——耗電量的限制推動了多核心的發(fā)展
2.6 處理器的用途越來越廣泛
活躍在各種舞臺的處理器
節(jié)能、高可靠技術、實時性——各種各樣的需求
2.7 小結
第3章 [詳解]面向程序員的處理器架構
3.1 支撐微架構的技術
流水線執(zhí)行的原理——并行處理指令
高速緩存的構造——提高內存訪問速度
RISC與CISC——定長指令與變長指令
提高運算器的速度——處理器中因處理復雜而處理時間長
的組件之一
超標量執(zhí)行的原理——一個周期內并行執(zhí)行多條指令
亂序執(zhí)行的原理——減輕數據冒險的影響
分支預測的原理——降低控制冒險造成的損失
現代處理器會消除或減輕各種冒險以提高性能
內存、I/O與輸入/輸出接口
性能計數器——性能分析器和處理器內部執(zhí)行狀況的信息
3.2 架構擴展擴大了處理器的使用范圍
多任務和內存管理機構
中斷處理機構
專欄 異常、中斷、陷阱——術語整理
虛擬化支持——內存訪問和內存管理機構
多媒體、加密等支持——需要大量數據的計算
3.3 x86 Nehalem架構處理器
x86的指令體系和Intel 64架構
Core i7處理器的結構
內存管理采用4級頁表
新的處理器接口QPI
3.4 小結
第4章 虛擬化支持
4.1 虛擬化的目的和優(yōu)缺點
虛擬化的基礎知識(復習)
虛擬化的目的
實現用戶間強隔離——虛擬化的優(yōu)點
集合多臺服務器,提高利用率——虛擬化的優(yōu)點
VMM運行時的額外開銷——虛擬化的缺點、注意點
4.2 實現虛擬化的條件
為操作系統(tǒng)提供獨立的(虛擬)硬件的VMM
4.3 支撐虛擬化的硬件設施
檢測硬件操作命令
硬件狀態(tài)的保存和還原——切換虛擬機
雙重地址轉換、TLB
I/O的虛擬化
實時遷移(Live Migration)
4.4 小結
專欄 虛擬化的前世今生
第5章 多處理器的出現和普及
5.1 多線程處理器
線程、多線程的紛繁蕪雜(!?)——首先總結一下術語
多線程的兩種方式
VMT的原理——短時間內切換線程
SMT的原理——混雜執(zhí)行多個線程的指令
專欄 歷史悠久的SMT
SMT必需的機制
多線程的效果如何——通過Windows任務管理器查看效果
5.2 多處理器系統(tǒng)
多處理器、多核心是什么意思
多核心處理器的結構
專欄 眾核處理器(Many-core processor)的結構
緩存一致性控制——多處理器之間緩存的一致性
多插槽系統(tǒng)
專欄 插槽還是芯片
專欄 多核心時代的處理器、CPU的含義
提高多處理器系統(tǒng)的性能——問題和解決方案
共享內存系統(tǒng)和分布式內存系統(tǒng)
5.3 小結
第6章 處理器周邊技術
6.1 內存技術
內存歷史概覽
DRAM內存的工作原理——利用電荷存儲信息
DRAM芯片和內存DIMM
DRAM芯片的內部結構——內存單元陣列、行/列解碼器、
檢測放大器、Bank
處理器和DIMM的連接
內存系統(tǒng)的錯誤處理
6.2 輸入/輸出設備的連接
處理器的I/O連接
PCI總線
專欄 通向PCI總線之路
Intel Core i系列處理器的I/O結構
Intel PCH的I/O控制結構
6.3 小結
專欄 DRAM的刷新第7章 GPGPU和超并行處理
7.1 GPGPU的原理
3D圖形和GPU——需要大量計算
GPU系統(tǒng)
從GPU到GPGPU
作為“超并行SIMD處理器”的GPGPU
作為“超多線程處理器”的GPGPU
專欄 Warp!
GPGPU的內存層次結構
GPGPU中的多線程需要分割使用通用寄存器
CPU和GPGPU的巨大區(qū)別
7.2 GPGPU編程
現代GPGPU編程
CUDA的運行模型——線程塊、網格
CUDA中的函數聲明和變量聲明
OpenCL編程
如何發(fā)揮GPGPU的性能
7.3 小結
專欄 Top500和GPU計算
第8章 處理器的發(fā)展趨勢
8.1 耗電量是決定因素
為何處理器要消耗電力
節(jié)能技術的發(fā)展
8.2 更高、更快、更強
半導體細微化技術
如何有效利用增加的晶體管
利用部分晶體管降低生產成本
有效利用部分塊不合格的芯片
8.3 更可靠、更安全的處理器設計
為何處理器會有錯誤行為——故障、噪聲
防止錯誤行為,確保安全運轉
8.4 未來處理器的發(fā)展方向
無處不在的處理器
家電用處理器
汽車用處理器
個人計算機用處理器
智能手機用處理器
服務器用處理器
8.5 小結
索引