編輯推薦
《計算機體係結構:量化研究方法(第5版)》可作為高等院校計算機專業本科生或研究生教材,也可作為從事計算機體係結構或計算機係統設計的工程技術人員的參考書。
內容簡介
《計算機體係結構:量化研究方法(第5版)》堪稱計算機係統結構學科的“聖經”,是計算機設計領域學生和從業者的必讀經典。在計算機體係結構的變革時期,作者在這一版中深入介紹瞭兩項新內容:新平颱(個人移動設備和倉庫級計算機)以及新體係結構(多核和GPU),同時還秉承瞭前幾版的做法,希望通過探討如何在成本、性能、能耗之間實現平衡,並重點關注一些優秀的工程設計實踐,從而揭去計算機體係結構的神秘麵紗。
《計算機體係結構:量化研究方法(第5版)》特色:
每章中的“融會貫通”小節關注瞭業界的各種新技術,包括ARM Cortex-A8、Intel Core i7、NVIDIA GTX-280和GTX-480 GPU,以及榖歌倉庫級計算機。
· 每章最後的“案例研究和練習”由業內和學術界的專傢編撰而成,主要探討該章的關鍵概念。
· “附錄”中收錄瞭正文內容所依賴的基本原則。
作者簡介
John L. Hennessy,斯坦福大學校長,IEEE和ACM會士,美國國傢工程研究院院士及美國科學藝術研究院院士。Hennessy教授因為在RISC技術方麵做齣瞭突齣貢獻而榮獲2001年的Eckert-Mauchly奬章,他也是2001年Seymour Cray計算機工程奬得主,並且和David A.Patterson分享瞭2000年約翰 · 馮 · 諾依曼奬。
David A. Patterson,加州大學伯剋利分校計算機科學係教授,美國國傢工程研究院院士,IEEE和ACM會士。他因為對RISC技術的貢獻而榮獲1995年IEEE技術成就奬,而在RAID技術方麵的成就為他贏得瞭1999年IEEE Reynold Johnson信息存儲奬。2000年他和John L. Hennessy分享瞭約翰 · 馮 · 諾依曼奬。
內頁插圖
精彩書評
“《計算機體係結構:量化研究方法(第5版)》繼續發揚傳統,為學習計算機體係結構的學生提供瞭當前計算平颱的信息,使他們能夠洞悉體係結構,便於設計未來係統。這一版的亮點在於大幅修訂瞭數據級並行那一章,用傳統的體係結構術語清晰地解讀瞭GPU體係結構。”
——Krste Asanovi·,加州大學伯剋利分校
“《計算機體係結構:量化研究方法》是一部經典,猶如美酒,曆久而彌醇。我在本科畢業時一次購買瞭本書,它到現在仍然是我經常參考的書籍之一。第4版問世時,我發現其中包含瞭如此之多的新材料,為瞭跟上這一領域的趨勢,我必須得再買一本。而當審閱第5版時,我發現Hennessy和Patterson再現神奇。全書內容都進行瞭大量更新,對於希望真正理解雲和倉庫級計算的人們來說,單憑第6章的內容,這個新版本就值得一讀。隻有Hennessy和Patterson纔可能接觸到榖歌、微軟等雲計算與互聯網規模的應用提供商的內部人士,對這一重要領域,業內的介紹材料無齣其右。”
——James Hamilton
“Hennessy和Patterson撰寫本書的第一版時,研究生們是在用50 000個晶體管組裝計算機。今天,倉庫級的計算機集群會包含50 000個服務器,每個服務器中包含數十個處理器和數十億個晶體管。計算機體係結構一直在不停地快速發展,而《計算機體係結構:量化研究方法》緊跟它的步伐,每個版本都準確地解釋和分析瞭這一領域激動人心的重要思想。”
——James Larus,微軟研究院
“這一版新增加瞭一章非常豐富的內容,用來討論嚮量、SIMD和GPU體係結構中的數據級並行技術。它解釋瞭應用於大眾市場的GPU內部的關鍵體係結構概念,給齣這些概念與傳統術語的對應關係,並與嚮量和SIMD體係結構進行瞭對比。這一內容非常及時,與業內轉嚮GPU並行計算的潮流相適應。《計算機體係結構:量化研究方法》繼續獨領風騷,全麵地介紹瞭體係結構方麵的重大新進展!”
——John Nickolls,NVIDIA
“本書已經成為一本經典教科書瞭,這一版突齣介紹瞭各種顯式並行技術(數據、綫程、請求)的興起,各用整整一章來描述。數據並行一章尤為奪目:通過嚮量SIMD、指令級SIMD和GPU的對比,避開每種體係結構的專用術語,揭示瞭這些體係結構之間的相似與區彆。”
——Kunle Olukotun,斯坦福大學
“《計算機體係結構:量化研究方法(第5版)》探討瞭各種並行概念和它們各自的技術權衡。和過去的幾個版本一樣,這一新版本中同樣涵蓋瞭技術發展趨勢。兩個重點是個人移動設備(PMD)和倉庫級計算(WSC)的爆炸性增長——與原來一味追求性能相比,這裏的焦點已經轉為更全麵地尋求性能與能效之間的平衡。這些趨勢刺激瞭人們不斷追求更強勁的處理能力,而這種追求又推動人們在並行道路上走得更遠。”
——Andrew N. Sloss,實施顧問,ARM公司 ARM System Developer’s Guide一書的作者
目錄
第1章 量化設計與分析基礎
1.1 引言
1.2 計算機的分類
1.2.1 個人移動設備
1.2.2 桌麵計算
1.2.3 服務器
1.2.4 集群/倉庫級計算機
1.2.5 嵌入式計算機
1.2.6 並行度與並行體係結構的分類
1.3 計算機體係結構的定義
1.3.1 指令集體係結構:計算機體係結構的近距離審視
1.3.2 真正的計算機體係結構:設計滿足目標和功能需求的組成和硬件
1.4 技術趨勢
1.4.1 性能趨勢:帶寬勝過延遲
1.4.2 晶體管性能與連綫的發展
1.5 集成電路中的功率和能耗趨勢
1.5.1 功率和能耗:係統觀點
1.5.2 微處理器內部的能耗和功率
1.6 成本趨勢
1.6.1 時間、産量和大眾化的影響
1.6.2 集成電路的成本
1.6.3 成本與價格
1.6.4 製造成本與運行成本
1.7 可信任度
1.8 性能的測量、報告和匯總
1.8.1 基準測試
1.8.2 報告性能測試結果
1.8.3 性能結果匯總
1.9 計算機設計的量化原理
1.9.1 充分利用並行
1.9.2 局域性原理
1.9.3 重點關注常見情形
1.9.4 Amdahl定律
1.9.5 處理器性能公式
1.10 融會貫通:性能、價格和功耗
1.11 謬論與易犯錯誤
1.12 結語
1.13 曆史迴顧與參考文獻
第2章 存儲器層次結構設計
2.1 引言
2.2 緩存性能的10種高級優化方法
2.2.1 第一種優化:小而簡單的第一級緩存,用以縮短命中時間、降低功率
2.2.2 第二種優化:采用路預測以縮短命中時間
2.2.3 第三種優化:實現緩存訪問的流水化,以提高緩存帶寬
2.2.4 第四種優化:采用無阻塞緩存,以提高緩存帶寬
2.2.5 第五種優化:采用多種緩存以提高緩存帶寬
2.2.6 第六種優化:關鍵字優先和提前重啓動以降低缺失代價
2.2.7 第七種優化:閤並寫緩衝區以降低缺失代價
2.2.8 第八種優化:采用編譯器優化以降低缺失率
2.2.9 第九種優化:對指令和數據進行硬件預取,以降低缺失代價或缺失率
2.2.10 第十種優化:用編譯器控製預取,以降低缺失代價或缺失率
2.2.11 緩存優化小結
2.3 存儲器技術與優化
2.3.1 SRAM技術
2.3.2 DRAM技術
2.3.3 提高DRAM芯片內部的存儲器性能
2.3.4 降低SDRAM中的功耗
2.3.5 閃存
2.3.6 提高存儲器係統的可靠性
2.4 保護:虛擬存儲器和虛擬機
2.4.1 通過虛擬存儲器提供保護
2.4.2 通過虛擬機提供保護
2.4.3 對虛擬機監視器的要求
2.4.4 虛擬機(缺少)的指令集體係結構支持
2.4.5 虛擬機對虛擬存儲器和I/O的影響
2.4.6 VMM實例:Xen虛擬機
2.5 交叉問題:存儲器層次結構的設計
2.5.1 保護和指令集體係結構
2.5.2 緩存數據的一緻性
2.6 融會貫通:ARM Cortex-A8和Intel Core i7中的存儲器層次結構
2.6.1 ARM Cortex-A8
2.6.2 Intel Core i7
2.7 謬論與易犯錯誤
2.8 結語:展望
2.9 曆史迴顧與參考文獻
第3章 指令級並行及其開發
3.1 指令級並行:概念與挑戰
3.1.1 什麼是指令級並行
3.1.2 數據相關與冒險
3.1.3 控製相關
3.2 揭示ILP的基本編譯器技術
3.2.1 基本流水綫調度和循環展開
3.2.2 循環展開與調度小結
3.3 用高級分支預測降低分支成本
3.3.1 競賽預測器:局部預測器與全局預測器的自適應聯閤
3.3.2 Intel Core i7分支預測器
3.4 用動態調度剋服數據冒險
3.4.1 動態調度:思想
3.4.2 使用Tomasulo算法進行動態調度
3.5 動態調度:示例和算法
3.5.1 Tomasulo算法:細節
3.5.2 Tomasulo算法:基於循環的示例
3.6 基於硬件的推測
3.7 以多發射和靜態調度來開發ILP
3.8 以動態調度、多發射和推測來開發ILP
3.9 用於指令傳送和推測的高級技術
3.9.1 提高指令提取帶寬
3.9.2 推測:實現問題與擴展
3.10 ILP局限性的研究
3.10.1 硬件模型
3.10.2 可實現處理器上ILP的局限性
3.10.3 超越本研究的局限
3.11 交叉問題:ILP方法與存儲器係統
3.11.1 硬件推測與軟件推測
3.11.2 推測執行與存儲器係統
3.12 多綫程:開發綫程級並行提高單處理器吞吐量
3.12.1 細粒度多綫程在Sun T1上的效果
3.12.2 同時多綫程在超標量處理器上的效果
3.13 融會貫通:Intel Core i7和ARMCortex-A8
3.13.1 ARM Cortex-A8
3.13.2 Intel Core i7
3.14 謬論與易犯錯誤
3.15 結語:前路何方
3.16 曆史迴顧與參考文獻
第4章 嚮量、SIMD和GPU體係結構中的數據級並行
4.1 引言
4.2 嚮量體係結構
4.2.1 VMIPS
4.2.2 嚮量處理器如何工作:一個示例
4.2.3 嚮量執行時間
4.2.4 多條車道:每個時鍾周期超過一個元素
4.2.5 嚮量長度寄存器:處理不等於64的循環
4.2.6 嚮量遮罩寄存器:處理嚮量循環中的IF語句
4.2.7 內存組:為嚮量載入/存儲單元提供帶寬
4.2.8 步幅:處理嚮量體係結構中的多維數組
4.2.9 集中-分散:在嚮量體係結構中處理稀疏矩陣
4.2.10 嚮量體係結構編程
4.3 SIMD指令集多媒體擴展
4.3.1 多媒體SIMD體係結構編程
4.3.2 Roofline可視性能模型
4.4 圖形處理器
4.4.1 GPU編程
4.4.2 NVIDIA GPU計算結構
4.4.3 NVIDA GPU指令集體係結構
4.4.4 GPU中的條件分支
4.4.5 NVIDIA GPU存儲器結構
4.4.6 Fermi GPU體係結構中的創新
4.4.7 嚮量體係結構與GPU的相似與不同
4.4.8 多媒體SIMD計算機與GPU之間的相似與不同
4.4.9 小結
4.5 檢測與增強循環強並行
4.5.1 查找相關
4.5.2 消除相關計算
4.6 交叉問題
4.6.1 能耗與DLP:慢而寬與快而窄
4.6.2 分組存儲器和圖形存儲器
4.6.3 步幅訪問和TLB缺失
4.7 融會貫通:移動與服務器GPU、Tesla與Core i7
4.8 謬論與易犯錯誤
4.9 結語
4.10 曆史迴顧與參考文獻
第5章 綫程級並行
5.1 引言
5.1.1 多處理器體係結構:問題與方法
5.1.2 並行處理的挑戰
5.2 集中式共享存儲器體係結構
5.2.1 什麼是多處理器緩存一緻性
5.2.2 一緻性的基本實現方案
5.2.3 監聽一緻性協議
5.2.4 基本實現技術
5.2.5 示例協議
5.2.6 基本一緻性協議的擴展
5.2.7 對稱共享存儲器多處理器與監聽協議的局限性
5.2.8 實施監聽緩存一緻性
5.3 對稱共享存儲器多處理器的性能
5.3.1 商業工作負載
5.3.2 商業工作負載的性能測量
5.3.3 多重編程和操作係統工作負載
5.3.4 多重編程和操作係統工作負載的性能
5.4 分布式共享存儲器和目錄式一緻性
5.4.1 目錄式緩存一緻性協議:基礎知識
5.4.2 目錄式協議舉例
5.5 同步:基礎知識
5.5.1 基本硬件原語
5.5.2 使用一緻性實現鎖
5.6 存儲器連貫性模型:簡介
5.6.1 程序員的觀點
5.6.2 寬鬆連貫性模型:基礎知識
5.6.3 關於連貫性模型的最後說明
5.7 交叉問題
5.7.1 編譯器優化與連貫性模型
5.7.2 利用推測來隱藏嚴格連貫性模型中的延遲
5.7.3 包含性及其實現
5.7.4 利用多重處理和多綫程的性能增益
5.8 融會貫通:多核處理器及其性能
5.9 謬論與易犯錯誤
5.10 結語
5.11 曆史迴顧與參考文獻
第6章 以倉庫級計算機開發請求級、數據級並行
6.1 引言
6.2 倉庫級計算機的編程模型與工作負載
6.3 倉庫級計算機的計算機體係結構
6.3.1 存儲
6.3.2 陣列交換機
6.3.3 WSC存儲器層次結構
6.4 倉庫級計算機的物理基礎設施與成本
6.4.1 測量WSC的效率
6.4.2 WSC的成本
6.5 雲計算:公用計算的迴報
6.6 交叉問題
6.6.1 成為瓶頸的WSC網絡
6.6.2 在服務器內部高效利用能量
6.7 融會貫通:Google倉庫級計算機
6.7.1 集裝箱
6.7.2 Google WSC中的冷卻與供電
6.7.3 Google WSC中的服務器
6.7.4 Google WSC中的聯網
6.7.5 Google WSC的監控與修復
6.7.6 小結
6.8 謬論與易犯錯誤
6.9 結語
6.10 曆史迴顧與參考文獻
附錄A 指令集基本原理
A.1 引言
A.2 指令集體係結構的分類
A.3 存儲器尋址
A.4 操作數的類型與大小
A.5 指令集中的操作
A.6 控製流指令
A.7 指令集編碼
A.8 交叉問題:編譯器的角色
A.9 融會貫通:MIPS體係結構
A.10 謬論和易犯錯誤
A.11 結語
A.12 曆史迴顧與參考文獻
附錄B 存儲器層次結構迴顧
B.1 引言
B.2 緩存性能
B.3 6種基本的緩存優化
B.4 虛擬存儲器
B.5 虛擬存儲器的保護與示例
B.6 謬論與易犯錯誤
B.7 結語
B.8 曆史迴顧與參考文獻
附錄C 流水綫:基礎與中級概念
C.1 引言
C.2 流水化的主要阻礙--流水綫冒險
C.3 如何實現流水化
C.4 妨礙流水綫實現的難題
C.5 擴展MIPS流水綫,以處理多周期操作
C.6 融會貫通:MIPS R4000流水綫
C.7 交叉問題
C.8 謬論與易犯錯誤
C.9 結語
C.10 曆史迴顧與參考文獻
參考文獻
索引
前言/序言
本書的目的
本書到現在已經是第5個版本瞭,我們的目標一直沒有改變,就是要闡述那些為未來技術發展奠定基礎的基本原理。計算機體係結構的各種發展機遇總是讓我們激情澎湃,不曾有絲毫消退。我們在第1版中就作齣過如下的論述:“這個學科不是令人昏昏欲睡、百無一用的紙版模型。絕對不是!這是一個受到人們熱切關注的學科,需要在市場競爭力與成本·性能·能耗之間作好權衡,從事這個學科既可能導緻可怕的失敗,也可能帶來顯赫的成功。”
在編寫第1版時,我們的主要目的是希望改變人們原來學習和研究計算機體係結構的方式。現今,我們感到這一目標依然正確,依然重要。該領域日新月異,在對其進行研究時,必須采用真實計算機上的測量數據和真實示例,而不是去研究一大堆從來都不需要實現的定義和設計。我們不僅熱烈歡迎過去與我們結伴而行的老讀者,同樣也非常歡迎現在剛剛加入我們的新朋友。不管怎樣,我們都保證將采用同樣的量化方法對真實係統進行分析。
和前幾版一樣,在編寫這個新版本時,我們力爭使其既適用於學習高級計算機體係結構與設計課程的學生,也適用於專業的工程師和架構師。與第1版類似,這個版本重點介紹新平颱(個人移動設備和倉庫級計算機)和新體係結構(多核和GPU)。這一版還秉承瞭前幾版的做法,希望能夠通過強調成本、性能、能耗之間的平衡和優秀的工程設計,揭去計算機體係結構的神秘麵紗。我們相信這一領域正在日趨成熟,發展成為一門具備嚴格量化基礎的經典理工學科。
關於第5版
我們曾經說過,第4版可能因為轉嚮討論多核芯片而成為自第1版以來的最重要版本。但我們收到瞭這樣的反饋意見:第4版已經失去瞭第1版重點突齣的優點,它一視同仁地討論所有內容,不分重點和場閤。我們非常確信,第5版不會再有這樣的評價瞭。
我們相信,最令人激動的地方在於計算規模的兩個極端:以移動電話和平闆電腦之類的個人移動設備(PMD)為客戶端,以提供雲計算的倉庫級計算機為服務器。(具有敏銳觀察力的讀者可能已經看齣本書封麵上雲計算的寓意。)盡管這兩個極端的規模大小不同,但它們在成本、性能和能效方麵的共同主題給我們留下瞭深刻印象。因此,每一章的討論背景都是PMD和倉庫級計算機的計算,第6章是全新的一章,專門討論倉庫級計算機。
本書的另一條主綫是討論並行的所有不同形式。我們首先在第1章指齣瞭兩種應用級彆的並行,一個是數據級並行(DLP),它的齣現是因為有許多數據項
計算機體係結構:量化研究方法(第5版) [Computer Architecture:A Quantitative] 下載 mobi epub pdf txt 電子書 格式
計算機體係結構:量化研究方法(第5版) [Computer Architecture:A Quantitative] 下載 mobi pdf epub txt 電子書 格式 2024
計算機體係結構:量化研究方法(第5版) [Computer Architecture:A Quantitative] mobi epub pdf txt 電子書 格式下載 2024