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