![]() ![]() |
計算機體系結構 ![]()
《計算機體系結構:量化研究方法(第5版)》堪稱計算機系統(tǒng)結構學科的“圣經(jīng)”,是計算機設計領域學生和從業(yè)者的必讀經(jīng)典。在計算機體系結構的變革時期,作者在這一版中深入介紹了兩項新內容:新平臺(個人移動設備和倉庫級計算機)以及新體系結構(多核和GPU),同時還秉承了前幾版的做法,希望通過探討如何在成本、性能、能耗之間實現(xiàn)平衡,并重點關注一些優(yōu)秀的工程設計實踐,從而揭去計算機體系結構的神秘面紗。
《計算機體系結構:量化研究方法(第5版)》特色: 每章中的“融會貫通”小節(jié)關注了業(yè)界的各種最新技術,包括ARM Cortex-A8、Intel Core i7、NVIDIA GTX-280和GTX-480 GPU,以及谷歌倉庫級計算機。 · 每章最后的“案例研究和練習”由業(yè)內和學術界的專家編撰而成,主要探討該章的關鍵概念。 · “附錄”中收錄了正文內容所依賴的基本原則。
《計算機體系結構:量化研究方法(第5版)》可作為高等院校計算機專業(yè)本科生或研究生教材,也可作為從事計算機體系結構或計算機系統(tǒng)設計的工程技術人員的參考書。
本書的目的
本書到現(xiàn)在已經(jīng)是第5個版本了,我們的目標一直沒有改變,就是要闡述那些為未來技術發(fā)展奠定基礎的基本原理。計算機體系結構的各種發(fā)展機遇總是讓我們激情澎湃,不曾有絲毫消退。我們在第1版中就作出過如下的論述:“這個學科不是令人昏昏欲睡、百無一用的紙版模型。絕對不是!這是一個受到人們熱切關注的學科,需要在市場競爭力與成本·性能·能耗之間作好權衡,從事這個學科既可能導致可怕的失敗,也可能帶來顯赫的成功。” 在編寫第1版時,我們的主要目的是希望改變人們原來學習和研究計算機體系結構的方式,F(xiàn)今,我們感到這一目標依然正確,依然重要。該領域日新月異,在對其進行研究時,必須采用真實計算機上的測量數(shù)據(jù)和真實示例,而不是去研究一大堆從來都不需要實現(xiàn)的定義和設計。我們不僅熱烈歡迎過去與我們結伴而行的老讀者,同樣也非常歡迎現(xiàn)在剛剛加入我們的新朋友。不管怎樣,我們都保證將采用同樣的量化方法對真實系統(tǒng)進行分析。 和前幾版一樣,在編寫這個新版本時,我們力爭使其既適用于學習高級計算機體系結構與設計課程的學生,也適用于專業(yè)的工程師和架構師。與第1版類似,這個版本重點介紹新平臺(個人移動設備和倉庫級計算機)和新體系結構(多核和GPU)。這一版還秉承了前幾版的做法,希望能夠通過強調成本、性能、能耗之間的平衡和優(yōu)秀的工程設計,揭去計算機體系結構的神秘面紗。我們相信這一領域正在日趨成熟,發(fā)展成為一門具備嚴格量化基礎的經(jīng)典理工學科。 關于第5版 我們曾經(jīng)說過,第4版可能因為轉向討論多核芯片而成為自第1版以來的最重要版本。但我們收到了這樣的反饋意見:第4版已經(jīng)失去了第1版重點突出的優(yōu)點,它一視同仁地討論所有內容,不分重點和場合。我們非常確信,第5版不會再有這樣的評價了。 我們相信,最令人激動的地方在于計算規(guī)模的兩個極端:以移動電話和平板電腦之類的個人移動設備(PMD)為客戶端,以提供云計算的倉庫級計算機為服務器。(具有敏銳觀察力的讀者可能已經(jīng)看出本書封面上云計算的寓意。)盡管這兩個極端的規(guī)模大小不同,但它們在成本、性能和能效方面的共同主題給我們留下了深刻印象。因此,每一章的討論背景都是PMD和倉庫級計算機的計算,第6章是全新的一章,專門討論倉庫級計算機。 本書的另一條主線是討論并行的所有不同形式。我們首先在第1章指出了兩種應用級別的并行,一個是數(shù)據(jù)級并行(DLP),它的出現(xiàn)是因為有許多數(shù)據(jù)項允許同時對其進行操作;另一個是任務級并行(TLP),它的出現(xiàn)是因為創(chuàng)建了一些可以獨立執(zhí)行并在很大程度上并行的工作任務。隨后解釋4種開發(fā)DLP和TLP的體系結構樣式,分別是:第3章介紹的指令級并行(ILP),第4章介紹的向量體系結構和圖形處理器(GPU),這一章是第5版新增加的內容;第5章介紹的線程級并行;第6章通過倉庫級計算機介紹的需求級并行(RLP),這一章也是第5版中新增加的。本書中,我們將存儲器層次結構的內容提前到第2章,并將存儲系統(tǒng)那一章改作附錄D。我們對第4章、第6章的內容尤為感到自豪,第4章對GPU的解讀是目前最詳盡、最清晰的,第6章首次公布了Google倉庫級計算機的最新細節(jié)。 與前幾版相同,本書前三個附錄提供了有關MIPS指令集系統(tǒng)、存儲器層次結構和流水線的基礎知識,如果讀者沒有讀過《計算機組成與設計》之類的書籍,可用作參考。為了在降低成本的同時還能提供一些讀者感興趣的補充材料,我們在網(wǎng)絡上提供了另外9個附錄,網(wǎng)址為:http://booksite.mkp.com/9780123838728。這些附錄的頁數(shù)之和比本書還要多呢! 這一版繼續(xù)發(fā)揚“以真實示例演示概念”的傳統(tǒng),并增加了全新的“融會貫通”部分。這一版中的“融會貫通”內容包括以下各服務器的流水線組成與存儲器層次結構:ARM Cortex A8處理器、Intel core i7處理器、NVIDIA GTX-280和GTX-480 GPU,還有Google倉庫級計算機。 主題的選擇與組織 和以前一樣,我們在選擇主題時采用了一種保守的方法,畢竟這個領域中值得討論的思想實在太多了,不可能在這樣一本主要討論基本原理的書中將其全部涵蓋在內。我們沒有面面?zhèn)樀降胤治鲎x者可能遇到的所有體系結構,而是將重點放在那些在任何新計算機中都可能涉及的核心概念上。根據(jù)一貫堅持的選材標準,本書討論的思想都經(jīng)過深入研究并已被成功應用,其內容足以采用量化方法進行討論。 我們一直重點關注的內容都是無法從其他來源獲取的同類資料,因此我們將繼續(xù)盡可能討論比較高級的內容。事實上,本書介紹的有些系統(tǒng),就無法在文獻中找到相關描述。如果讀者需要了解更為基礎的計算機體系結構知識,可以閱讀《計算機組成與設計:硬件/軟件接口》(Computer Organization and Design: The Hardware/Software Interface)一書。 內容概述 這一版對第1章進行了補充,其中包括能耗、靜態(tài)功率、動態(tài)功率、集成電路成本、可靠性和可用性的計算公式。(封二上也列出了這些公式。)在本書后續(xù)部分讀者能夠一直應用這些公式。除了計算機設計與性能測量方面的經(jīng)典量化原理之外,還對PIAT一節(jié)進行了升級,采用了新的SPECPower基準測試。 我們認為,與1990年相比,指令集體系結構扮演的角色有所弱化,所以我們把這一部分內容作為了附錄A。它仍然采用MIPS64體系結構。(為便于快速查看,封三匯總了MIPS ISA相關信息。)網(wǎng)站上的附錄K介紹了10種RISC體系結構、80x86、DEC VAX和IBM 360/370,獻給ISA愛好者們。 隨后,我們在第2章開始討論存儲器層次結構,這是因為很容易針對這些內容應用成本·性能·功耗原理,而且存儲器是其余各章的關鍵內容。和上一版一樣,附錄B對緩存機制作了概述,以供讀者需要時查閱。第2章討論了對緩存的10種高級優(yōu)化方法。這一章還介紹了虛擬機,它便于提供保護、進行軟硬件管理,而且在云計算中也扮演著重要角色。除了介紹SRAM和DRAM技術之外,這一章還包括了閃存的內容。PIAT示例選擇了PMD中使用的ARM Cortex A8和服務器中使用的Intel Core i7。 第3章主要研究高性能處理器中的指令級并行開發(fā),包括超標量執(zhí)行、分支預測、推理、動態(tài)調度和多線程。前面曾經(jīng)提到,附錄C是關于流水線的一個綜述,以備隨時查閱之用。第3章還研究了ILP的局限性。和第2章一樣,PIAT示例還是ARM Cortex A8和Intel Core i7。第3版包括大量有關Itanium和VLIW的材料,現(xiàn)在這些內容放在網(wǎng)上的附錄H中,這表明了我們的觀點:這種體系結構未能達到過去所宣稱的效果。 多媒體應用程序(比如游戲和視頻處理)的重要性在提高,因此,開發(fā)數(shù)據(jù)級并行的體系結構也變得更為重要。具體來說,越來越多的人在關注利用圖形處理器(GPU)執(zhí)行的運算,但很少有架構師了解GPU到底是如何工作的。我們決定編寫新的一章,主要就是為了揭開這種新型計算機體系結構的奧秘。第4章開始介紹向量體系結構,對多媒體SIMD指令集擴展和GPU的解釋就是以此為基礎的。(網(wǎng)站上的附錄G深入地討論了向量體系結構。)GPU一節(jié)是本書最難寫的部分,需要多次反復才能給出一個既精確又容易理解的描述。一個重大挑戰(zhàn)就是術語。我們決定使用我們自己的術語,然后給出這些術語與NVIDIA官方術語之間的對應關系。這一章介紹了Roofline性能模型,然后用它來對比Intel Core i7、NVIDIA GTX 280和GTX 480 GPU。這一章還介紹了供PMD使用的Tegra 2 GPU。 第5章介紹多核處理器,探討了對稱、分布式存儲器體系結構,考查了組織原理和性能。接下來是有關同步和存儲器一致性模型的主題,所采用的示例是Intel Core i7。對片上互連網(wǎng)絡感興趣的讀者可以閱讀網(wǎng)站上的附錄F,對更大規(guī)模多處理器和科學應用感興趣的讀者可以閱讀網(wǎng)站上的附錄I。 前面曾經(jīng)提到,第6章介紹了計算機體系結構中的最新主題——倉庫級計算機(Warehouse- Scale Computer,WCS)。依靠Amazon Web服務部門和Google工程師的幫助,本章整合了有關WSC設計、成本與性能的詳細資料,而以前了解這些內容的架構師寥寥無幾。在開始描述WSC的體系結構和物理實現(xiàn)(及成本)之前,首先介紹了MapReduce編程模型。從成本的角度可以解釋為什么會有云計算,以及為何在云中使用WSC進行計算的成本要低于在本地數(shù)據(jù)中心的計算成本。PIAT實例是對Google WSC的描述,有些內容是首次公開的。 接下來就是附錄A到附錄L。 附錄A介紹ISA的原理,包括MIPS64,附錄K介紹Alpha、MIPS、PowerPC和SPARC的64位版本及其多媒體擴展。其中還包括一些經(jīng)典體系結構(80x86、VAX和IBM 360/370)和流行的嵌入指令集(ARM、Thumb、SuperH、MIPS16和Mitsubishi M32R)。附錄H與其相關,介紹了VLIW ISA的體系結構和編譯器。 前面曾經(jīng)提到,附錄B和附錄C是緩存與流水線基本概念的教程。建議對緩存不夠熟悉的讀者在閱讀第2章之前先閱讀附錄B,新接觸流水線的讀者在閱讀第3章之前先閱讀附錄C。 附錄D“存儲系統(tǒng)”包括:進一步討論可靠性和可用性,以RAID 6方案介紹為主體的RAID教程,非常珍貴的真實系統(tǒng)故障統(tǒng)計信息。接下來介紹了排隊理論和I/O性能基準測試。我們評估了一個真實集群Internet Archive的成本、性能和可靠性!叭跁炌ā辈糠忠訬etApp FAS6000文件管理程序為例。 附錄E由Thomas M. Conte撰寫,匯總了嵌入式系統(tǒng)的相關內容。 附錄F討論網(wǎng)絡互連,由Timothy M. Pinkston和José Duato進行了修訂。附錄G最初由Krste Asanovi·撰寫,其中詳細介紹了向量處理器。就我們所知,這兩個附錄是其各自相關主題的最好材料。 附錄H詳細介紹了VLIW和EPIC,也就是Itanium采用的體系結構。 附錄I詳細介紹了大規(guī)模共享存儲器多處理方面用到的并行處理應用和一致性協(xié)議。附錄J由David Goldberg撰寫,詳細介紹了計算機算法。 附錄L將第3版每一章中的“歷史回顧與參考文獻”部分集中在一起。對于各章介紹的思想,它盡量給予一個恰當?shù)脑u價,并讓讀者了解這些創(chuàng)造性思想背后的歷史。我們希望以此來展現(xiàn)人類在計算機設計方面的戲劇性發(fā)展過程。這個附錄還提供了一些參考文獻,主修體系結構的學生可能會非常喜歡它們。其中提到了本領域的一些經(jīng)典論文,如果時間允許,建議讀者閱讀這些論文。直接聽原創(chuàng)者講述他們的思想,在深受教育的同時,也是一種享受。而“歷史回顧”是以前版本中最受歡迎的章節(jié)之一。 內容導讀 所有讀者都應當從第1章開始閱讀,除此之外并不存在什么唯一的最佳順序。如果你不想閱讀全部內容,可以參考下面這些順序。 · 存儲器層次結構:附錄B、第2章、附錄D。 · 指令級并行:附錄C、第3章、附錄H。 · 數(shù)據(jù)級并行:第4章、第6章、附錄G。 · 線程級并行:第5章、附錄F、附錄I。 · 請求級并行:第6章。 · ISA:附錄A、附錄K。 附錄E可以隨時閱讀,但在ISA和緩存序列之后閱讀,效果可能會更好一些。附錄J可以在涉及運算時閱讀。附錄L的各部分內容應當在讀完正文中相應章節(jié)后閱讀。 章節(jié)安排 我們根據(jù)一種統(tǒng)一的框架安排內容,使各章在結構方面保持一致。首先會介紹一章的主題思想,然后是“交叉問題”部分,說明本章介紹的思想與其他各章有什么相互關系。接下來是“融會貫通”部分,通過展示如何在實際計算機中應用這些思想,將它們串在一起。 再下面是“謬論與易犯錯誤”,讓讀者從他人的錯誤中汲取教訓。我們將舉例說明一些常見誤解與體系結構陷阱,要避免犯錯是非常困難的,哪怕你明明知道它們就在前面等著你。“謬論與易犯錯誤”部分是本書最受歡迎的內容。每一章都以一個“結語”節(jié)結束。 案例研究與練習 每一章的最后都有案例研究和練習。這些案例研究由業(yè)內和學術界的專家編撰而成,通過難度逐漸增大的練習來探討該章的關鍵概念,檢驗讀者的理解程度。教師們會發(fā)現(xiàn)這些案例研究都非常詳盡和完善,完全可以針對它們設計出一些練習。 每個練習中用尖括號括起的內容(<章.節(jié)>)指明了做這道題應該閱讀哪部分正文內容。我們這樣做的目的,一方面是為了提供復習內容,另一方面是希望幫助讀者避免在還沒有閱讀相應正文的情況下去做一些練習。為了使讀者大致了解完成一道題需要多長時間,我們?yōu)檫@些練習劃定了不同等級: [10] 短于5分鐘(閱讀和理解時間); [15] 5~15分鐘給出完整答案; [20] 15~20分鐘給出完整答案; [25] 在1小時內給出完整的書面答案; [30] 小型編程項目:時間短于1整天; [40] 大型編程項目:耗時2周; [討論] 與他人一起討論的主題。 在textbooks.elsevier.com注冊的老師可以得到案例研究與習題的解答。 我們會定期補充新材料和網(wǎng)上其他可用資源的鏈接。 幫助改進本書 如果你閱讀后面的“致謝”部分,將會看到我們已經(jīng)下了很大的功夫來糾正錯誤。由于一本書會進行多次印刷,所以我們有機會進行更多的校訂。如果你發(fā)現(xiàn)了任何遺留錯誤,請通過電子郵件聯(lián)系出版商。 結語 本書仍然是一本真正的合著作品,我們每人編寫的章節(jié)和附錄各占一半。如果沒有對方完成另一半工作,如果沒有對方在任務似乎無望完成時給予鼓勵,如果沒有對方點透某個難以表述的復雜概念,如果沒有對方花費周末時間來審閱書稿,又如果沒有對方在自己因為其他繁重職責而難以提筆時給予寬慰(從簡歷可以看出,這些職責是隨著本書的版本號以指數(shù)形式增加的),我們無法想象這本書要花費多長時間才能完成。當然,對于你將要讀到的內容,其中若有不當之處,我們也負有同等責任。 John Hennessy David Patterson John L. Hennessy,斯坦福大學校長,IEEE和ACM會士,美國國家工程研究院院士及美國科學藝術研究院院士。Hennessy教授因為在RISC技術方面做出了突出貢獻而榮獲2001年的Eckert-Mauchly獎章,他也是2001年Seymour Cray計算機工程獎得主,并且和David A.Patterson分享了2000年約翰 · 馮 · 諾依曼獎。
第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 晶體管性能與連線的發(fā)展 1.5 集成電路中的功率和能耗趨勢 1.5.1 功率和能耗:系統(tǒng)觀點 1.5.2 微處理器內部的能耗和功率 1.6 成本趨勢 1.6.1 時間、產(chǎn)量和大眾化的影響 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種高級優(yōu)化方法 2.2.1 第一種優(yōu)化:小而簡單的第一級緩存,用以縮短命中時間、降低功率 2.2.2 第二種優(yōu)化:采用路預測以縮短命中時間 2.2.3 第三種優(yōu)化:實現(xiàn)緩存訪問的流水化,以提高緩存帶寬 2.2.4 第四種優(yōu)化:采用無阻塞緩存,以提高緩存帶寬 2.2.5 第五種優(yōu)化:采用多種緩存以提高緩存帶寬 2.2.6 第六種優(yōu)化:關鍵字優(yōu)先和提前重啟動以降低缺失代價 2.2.7 第七種優(yōu)化:合并寫緩沖區(qū)以降低缺失代價 2.2.8 第八種優(yōu)化:采用編譯器優(yōu)化以降低缺失率 2.2.9 第九種優(yōu)化:對指令和數(shù)據(jù)進行硬件預取,以降低缺失代價或缺失率 2.2.10 第十種優(yōu)化:用編譯器控制預取,以降低缺失代價或缺失率 2.2.11 緩存優(yōu)化小結 2.3 存儲器技術與優(yōu)化 2.3.1 SRAM技術 2.3.2 DRAM技術 2.3.3 提高DRAM芯片內部的存儲器性能 2.3.4 降低SDRAM中的功耗 2.3.5 閃存 2.3.6 提高存儲器系統(tǒng)的可靠性 2.4 保護:虛擬存儲器和虛擬機 2.4.1 通過虛擬存儲器提供保護 2.4.2 通過虛擬機提供保護 2.4.3 對虛擬機監(jiān)視器的要求 2.4.4 虛擬機(缺少)的指令集體系結構支持 2.4.5 虛擬機對虛擬存儲器和I/O的影響 2.4.6 VMM實例:Xen虛擬機 2.5 交叉問題:存儲器層次結構的設計 2.5.1 保護和指令集體系結構 2.5.2 緩存數(shù)據(jù)的一致性 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章 指令級并行及其開發(fā) 3.1 指令級并行:概念與挑戰(zhàn) 3.1.1 什么是指令級并行 3.1.2 數(shù)據(jù)相關與冒險 3.1.3 控制相關 3.2 揭示ILP的基本編譯器技術 3.2.1 基本流水線調度和循環(huán)展開 3.2.2 循環(huán)展開與調度小結 3.3 用高級分支預測降低分支成本 3.3.1 競賽預測器:局部預測器與全局預測器的自適應聯(lián)合 3.3.2 Intel Core i7分支預測器 3.4 用動態(tài)調度克服數(shù)據(jù)冒險 3.4.1 動態(tài)調度:思想 3.4.2 使用Tomasulo算法進行動態(tài)調度 3.5 動態(tài)調度:示例和算法 3.5.1 Tomasulo算法:細節(jié) 3.5.2 Tomasulo算法:基于循環(huán)的示例 3.6 基于硬件的推測 3.7 以多發(fā)射和靜態(tài)調度來開發(fā)ILP 3.8 以動態(tài)調度、多發(fā)射和推測來開發(fā)ILP 3.9 用于指令傳送和推測的高級技術 3.9.1 提高指令提取帶寬 3.9.2 推測:實現(xiàn)問題與擴展 3.10 ILP局限性的研究 3.10.1 硬件模型 3.10.2 可實現(xiàn)處理器上ILP的局限性 3.10.3 超越本研究的局限 3.11 交叉問題:ILP方法與存儲器系統(tǒng) 3.11.1 硬件推測與軟件推測 3.11.2 推測執(zhí)行與存儲器系統(tǒng) 3.12 多線程:開發(fā)線程級并行提高單處理器吞吐量 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體系結構中的數(shù)據(jù)級并行 4.1 引言 4.2 向量體系結構 4.2.1 VMIPS 4.2.2 向量處理器如何工作:一個示例 4.2.3 向量執(zhí)行時間 4.2.4 多條車道:每個時鐘周期超過一個元素 4.2.5 向量長度寄存器:處理不等于64的循環(huán) 4.2.6 向量遮罩寄存器:處理向量循環(huán)中的IF語句 4.2.7 內存組:為向量載入/存儲單元提供帶寬 4.2.8 步幅:處理向量體系結構中的多維數(shù)組 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體系結構中的創(chuàng)新 4.4.7 向量體系結構與GPU的相似與不同 4.4.8 多媒體SIMD計算機與GPU之間的相似與不同 4.4.9 小結 4.5 檢測與增強循環(huán)強并行 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 并行處理的挑戰(zhàn) 5.2 集中式共享存儲器體系結構 5.2.1 什么是多處理器緩存一致性 5.2.2 一致性的基本實現(xiàn)方案 5.2.3 監(jiān)聽一致性協(xié)議 5.2.4 基本實現(xiàn)技術 5.2.5 示例協(xié)議 5.2.6 基本一致性協(xié)議的擴展 5.2.7 對稱共享存儲器多處理器與監(jiān)聽協(xié)議的局限性 5.2.8 實施監(jiān)聽緩存一致性 5.3 對稱共享存儲器多處理器的性能 5.3.1 商業(yè)工作負載 5.3.2 商業(yè)工作負載的性能測量 5.3.3 多重編程和操作系統(tǒng)工作負載 5.3.4 多重編程和操作系統(tǒng)工作負載的性能 5.4 分布式共享存儲器和目錄式一致性 5.4.1 目錄式緩存一致性協(xié)議:基礎知識 5.4.2 目錄式協(xié)議舉例 5.5 同步:基礎知識 5.5.1 基本硬件原語 5.5.2 使用一致性實現(xiàn)鎖 5.6 存儲器連貫性模型:簡介 5.6.1 程序員的觀點 5.6.2 寬松連貫性模型:基礎知識 5.6.3 關于連貫性模型的最后說明 5.7 交叉問題 5.7.1 編譯器優(yōu)化與連貫性模型 5.7.2 利用推測來隱藏嚴格連貫性模型中的延遲 5.7.3 包含性及其實現(xiàn) 5.7.4 利用多重處理和多線程的性能增益 5.8 融會貫通:多核處理器及其性能 5.9 謬論與易犯錯誤 5.10 結語 5.11 歷史回顧與參考文獻 第6章 以倉庫級計算機開發(fā)請求級、數(shù)據(jù)級并行 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網(wǎng)絡 6.6.2 在服務器內部高效利用能量 6.7 融會貫通:Google倉庫級計算機 6.7.1 集裝箱 6.7.2 Google WSC中的冷卻與供電 6.7.3 Google WSC中的服務器 6.7.4 Google WSC中的聯(lián)網(wǎng) 6.7.5 Google WSC的監(jiān)控與修復 6.7.6 小結 6.8 謬論與易犯錯誤 6.9 結語 6.10 歷史回顧與參考文獻 附錄A 指令集基本原理 A.1 引言 A.2 指令集體系結構的分類 A.3 存儲器尋址 A.4 操作數(shù)的類型與大小 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種基本的緩存優(yōu)化 B.4 虛擬存儲器 B.5 虛擬存儲器的保護與示例 B.6 謬論與易犯錯誤 B.7 結語 B.8 歷史回顧與參考文獻 附錄C 流水線:基礎與中級概念 C.1 引言 C.2 流水化的主要阻礙--流水線冒險 C.3 如何實現(xiàn)流水化 C.4 妨礙流水線實現(xiàn)的難題 C.5 擴展MIPS流水線,以處理多周期操作 C.6 融會貫通:MIPS R4000流水線 C.7 交叉問題 C.8 謬論與易犯錯誤 C.9 結語 C.10 歷史回顧與參考文獻 參考文獻 索引
你還可能感興趣
我要評論
|