注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)計算機組織與體系結(jié)構(gòu)計算機系統(tǒng)結(jié)構(gòu)——量化研究方法

計算機系統(tǒng)結(jié)構(gòu)——量化研究方法

計算機系統(tǒng)結(jié)構(gòu)——量化研究方法

定 價:¥68.00

作 者: (美)John L.Hennessy,(美)David A.Patterson著;鄭緯民等譯
出版社: 電子工業(yè)出版社
叢編項: 國外計算機科學教材系列
標 簽: 計算機與互聯(lián)網(wǎng) 計算機組織與體系結(jié)構(gòu)

ISBN: 9787505399167 出版時間: 2004-07-01 包裝: 膠版紙
開本: 26cm 頁數(shù): 684 字數(shù):  

內(nèi)容簡介

  為什么我們寫這本書在本書的三個版本中,我們的目標一直是描述揭示未來科技發(fā)展方向的基本原理。我們關(guān)于計算機系統(tǒng)結(jié)構(gòu)的熱情沒有消退,正如同我們從第一版開始就不斷重復的那樣:“這絕不是無聊的紙上談兵式的計算機科學:這個學科閃耀著奪目的智慧火花,還需要平衡市場購買力和性能價格比,它可能導致巨大的失敗,也可能帶來偉大的成功?!痹趯懙谝话鏁r,我們的主要目標是改變?nèi)藗儗W習和認識計算機系統(tǒng)結(jié)構(gòu)的方法。我們感到這個目標依然重要。這是一個日新月異的領(lǐng)域,我們必須研究實際的例子,評估實際的機器,而不是僅僅給出一堆毫無必要的定義和設(shè)計。我們在此熱烈地歡迎那些從一開始就和我們在一起的人們,同時也熱烈歡迎現(xiàn)在加入到我們中間的人們。自始至終我們都將用定量的方法對真實的機器進行分析。和前幾個版本一樣,我們努力編寫這個新版本,使其既適用于專業(yè)的工程師和設(shè)計者,也適用于學習高等計算機系統(tǒng)結(jié)構(gòu)和設(shè)計課程的人士。同樣,這一版將致力于通過強調(diào)價格和性能的綜合考慮以及良好的工程設(shè)計,來闡明計算機系統(tǒng)結(jié)構(gòu)。我們相信這個領(lǐng)域在不斷地成熟,正在成為精確量化長期建立的科學和工程理論的基礎(chǔ)。在我們199年的第一版和1996年的第二版中描述的理論能夠成功地應(yīng)用于揭示現(xiàn)今計算機技術(shù)領(lǐng)域的狀況,這使我們得到了莫大的滿足。我們期望在未來的幾十年中,讀者能夠應(yīng)用這本書中的基本理論得到同樣滿意的結(jié)果。關(guān)于第三版本書的第三版本來應(yīng)該是很容易寫的:和前兩個版本相同,我們的量化研究方法沒有改變,我們的著眼點還是計算機設(shè)計中的基本原理。和第二版一樣,書中的例子已經(jīng)進行了更新。但這個領(lǐng)域中日新月異的進展和新出現(xiàn)的市場,以及和這些市場相關(guān)的方法,使得我們幾乎重寫了整本書。在第二版發(fā)行后的六年里,計算機系統(tǒng)結(jié)構(gòu)的發(fā)展一直沒有減緩過。當編寫第二版的時候,我們就發(fā)現(xiàn)有許多的新概念需要介紹,還有一些材料應(yīng)該有更基本的定位。我們的系列叢書從本書的第一版開始,接著是“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”(《計算機組織與設(shè)計:硬件/軟件接口》),然后是本書和“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”的第二版,現(xiàn)在出的本書第三版,已經(jīng)是我們系列叢書中的第五本了。一些過時的概念被移到了“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”這本書或者本書的附錄中。這和我們的目標是一致的,即在最新的計算機技術(shù)環(huán)境中介紹概念。所以,本書第二版中只有少量有意義的部分被保留,而第一版中幾乎所有內(nèi)容都已經(jīng)被替換了??赡茏钭屛覀兂泽@的是,現(xiàn)在計算機系統(tǒng)結(jié)構(gòu)領(lǐng)域已經(jīng)被分成了彼此相關(guān)但又有不同的三個市場部分,每一部分都有自己獨特的需求。在本書的第一版和第二版中介紹的性能價格比主題內(nèi)容仍然能夠很好地說明臺式計算機部分。另外兩個新的部分是嵌入式計算機和服務(wù)器,為了反映這些變化,這一版做了兩點比較大的改動:第一點,我們拓展了標準化的成功這一方面的內(nèi)容;第二點,我們加入了一個稱為“其他視角:……”的新部分,用視頻游戲、數(shù)碼相機和可視電話等材料補充了各章的“綜合:……”主題中的傳統(tǒng)例子。和臺式機相比,嵌入式計算機更加關(guān)注低能耗。通常情況下,它們只用來運行單個程序,采用電池供電,沒有主動制冷機制,對能量的利用率要求非常嚴格。為了闡述嵌入式處理器方面的內(nèi)容,我們增加了一些內(nèi)容,例如采用EEMBC標準來評測系統(tǒng)的性能,還有多媒體處理器和DSP指令集的一些設(shè)計準則。附錄中包含了關(guān)于最流行的嵌入式指令集結(jié)構(gòu)的材料,本書中還包括了平衡性能和能耗的一些方法,介紹了兩個強調(diào)低能耗的例子:Transmeta和低能耗MIPS處理器,還提到了嵌入式系統(tǒng)的一些例子,包括PlayStation-2視頻游戲機、Sanyo數(shù)碼相機以及Nokia移動電話。臺式機強調(diào)性能,服務(wù)器則不同,它更強調(diào)系統(tǒng)的可靠性、可擴展性和吞吐量。通常情況下,這種系統(tǒng)包含多個處理器和多塊磁盤。本書解釋了可靠性的概念,給出了很難得的組件故障率的統(tǒng)計數(shù)據(jù)。除了評測處理器性能的SPEC2基準測試,我們還介紹了文件服務(wù)器的TPC數(shù)據(jù)庫基準測試以及SPEC基準測試。本書中介紹的服務(wù)器處理器的例子包括Intel的IA-64處理器和Sun的UltraSPARCIII處理器,服務(wù)器系統(tǒng)的例子包括SunFire68,SunWildfire,EMCSymmetrix,EMCCelerra,Google集群計算機和IBM事務(wù)處理集群計算機。在第三版中,我們繼續(xù)采用真實世界的例子來說明我們的思想。另外,“綜合:……”部分的例子是1%新增的。這部分包括MIPS64指令集結(jié)構(gòu),IntelPentiumIII和Pentium4的流水線組織,IntelIA-64結(jié)構(gòu)和微結(jié)構(gòu)(microarchitecture),Alpha21264存儲器層次結(jié)構(gòu),SunWildfire多處理器,EMCSymmetrix存儲陣列,EMECelerra文件服務(wù)器和Google搜索引擎?!捌渌暯牵骸辈糠纸榻B了真實世界中的嵌入式處理器和服務(wù)器,包括TrimediaTMS多媒體處理器,PowerPC多線程處理器,SonyPlaystation-2上動畫引擎的存儲器層次結(jié)構(gòu),SunFire68/UltraSPARCIII存儲器層次結(jié)構(gòu),EmpowerTelMXP嵌入式多處理器,Sanyo數(shù)碼相機和Nokia移動電話。根據(jù)讀者的建議,我們改進了練習部分。所有的練習都經(jīng)過了復查,減少了不明確的地方,去掉了不合適的題目,同時我們還加入了許多新的習題。應(yīng)許多讀者的要求,我們在附錄B中給出了部分習題的答案。為了方便讀者的閱讀,我們加入了一些比較新的特性。例如,我們用流行的64位MIPS系統(tǒng)結(jié)構(gòu)代替了假想的32位DLX系統(tǒng)結(jié)構(gòu),因為使用現(xiàn)有的軟件顯然比我們另外開發(fā)并維護自己的編譯器更有意義。在附錄中我們包含了數(shù)十種指令集結(jié)構(gòu)的描述,還包括了它們的基本教程、流水線的簡單介紹以及向量處理器和浮點運算算法。論題的選擇和組織就如同從前一樣,我們采用保守的方法進行論題的選擇,由于在這個領(lǐng)域中有太多有意義的想法,超過了基本理論所能夠覆蓋的范圍。我們沒有去全面綜述每種結(jié)構(gòu),而是把我們的論述集中在任何新機器中都可能涉及到的核心概念。關(guān)鍵標準是選擇那些已經(jīng)成功地經(jīng)受了考驗并得到了充分的應(yīng)用,同時能夠使用定量的術(shù)語進行討論的觀點。我們確定是否選擇一個新論題時,所遇到的第一個困難就是由于某些論題已經(jīng)發(fā)展得更為重要,原來只需要幾頁篇幅的描述,而現(xiàn)在幾頁根本不能說明問題。第二個困難是某些以前我們沒有包括進來的論題已經(jīng)成長為需要基于我們的定量標準和它們成功的市場表現(xiàn)進行討論的主題了。為了討論這些新的材料,我們減少了介紹性知識所占的比例,并且假定讀者了解“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”這本書中的介紹性概念。考慮到對流水線不熟悉的讀者,我們在附錄A中包括了對流水線的基本介紹(如果讀者想要更深入地了解流水線的基本知識,請參閱“ComputerOrganizationandDesign:TheHardware/SoftwareInterface”一書)。我們的目的一直都是盡力提供從其他類似來源不能獲得的材料,所以我們在可能的時候就會重點介紹一些高級內(nèi)容。實際上有幾個本書中全面介紹的系統(tǒng),其他文獻中是找不到相關(guān)描述的。內(nèi)容概述第1章主要講計算機設(shè)計的基本量化原理和性能的評測方法。這一章指出了技術(shù)的作用和影響計算機系統(tǒng)價格的因素。本章總結(jié)了臺式機、服務(wù)器和嵌入式計算機市場中的性能評測和性價比評測,同時考慮了嵌入式處理器的能量利用率。第2章包括了指令集設(shè)計的基本原理和示例。本章除了給出基于SPEC2基準測試的指令集使用量化數(shù)據(jù),還介紹了貫穿全書的MIPS64系統(tǒng)結(jié)構(gòu)。這個版本中新加入了數(shù)字信號處理器的原理,包括其基本功能和評測方法。這一章還介紹了現(xiàn)代編譯器的結(jié)構(gòu),講述了它們?nèi)绾斡绊憘鹘y(tǒng)計算機,DSP和多媒體擴展指令集的功能。同時給出了一個和多媒體處理器對照的例子:TrimediaTM52,這個處理器的指令集混合了多媒體指令和MIPS指令。附錄C到G擴展了這一章的內(nèi)容,加入了十幾種流行的指令集。第3章和第4章主要介紹高性能處理器中的指令級并行技術(shù),包括超標量技術(shù)、分支預測、猜測執(zhí)行、動態(tài)調(diào)度以及相關(guān)的編譯器技術(shù)。這些技術(shù)發(fā)展非常迅速,盡管我們用了57頁的附錄(附錄A,以第二版第3章為基礎(chǔ)),我們?nèi)匀恍枰脙烧碌钠鶃斫榻B一些相對高級的內(nèi)容。這一版的第3章主要描述基于硬件的指令級并行技術(shù),而第4章把重點放在了與之相關(guān)的編譯技術(shù)上。第3章用IntelPentium系列處理器作為主要示例,而第4章的示例采用IntelIA-64架構(gòu)的第一個實現(xiàn)版本:Itanium。第5章首先介紹了cache的基本原理,然后討論了現(xiàn)在比較有挑戰(zhàn)性的問題:存儲器層次結(jié)構(gòu)優(yōu)化設(shè)計。除了傳統(tǒng)的例子,例如Alpha21264,AMDAthlon,IntelPentiumIII和Pentium4以外,這一章還介紹了SonyPlaystation-2視頻游戲機上的動畫引擎和使用UltraSPARCIII處理器的SunFire68服務(wù)器的存儲器層次結(jié)構(gòu)。書中描述了應(yīng)用帶寬優(yōu)化技術(shù)的DRAM芯片,例如RAMBUS,并分析了它們的性價比。另外,這一章還包括了臺式機cache的SPEC2基準測試性能數(shù)據(jù),以及cache在多媒體和服務(wù)器應(yīng)用程序中的性能。第6章討論了多處理器系統(tǒng),重點放在共享內(nèi)存的系統(tǒng)結(jié)構(gòu)上。這一章開頭討論了在線程級并行層次上不同應(yīng)用領(lǐng)域的特性,然后討論了對稱和分布式內(nèi)存結(jié)構(gòu)的基本組織原理和性能。這一章的基本論題是同步、內(nèi)存一致性模型和多線程(包括并發(fā)多線程)。另外,本章還討論并分析了采用分布式內(nèi)存結(jié)構(gòu)擴展對稱式結(jié)構(gòu)的SunWildfire設(shè)計。第7章講述存儲系統(tǒng),本章進行了極為可觀的修訂,增加了可靠性和實用性方面的內(nèi)容、RAID的基本介紹、可用性基準測試和難得的實際系統(tǒng)故障統(tǒng)計數(shù)據(jù)。這一章提供了隊列理論的介紹和I/O性能的基準測試數(shù)據(jù)。除了對傳統(tǒng)總線的介紹外,還介紹了嵌入式總線和服務(wù)器總線。這一章后面部分描述的5個設(shè)計實例,通過越來越實際的性能要求對一個I/O系統(tǒng)不斷進行改進,同時進行了平均故障時間的評估。EMC提供了把這些都綜合在一起的實例,這是這些系統(tǒng)相關(guān)文檔的首次公布。本章對數(shù)碼相機的剖析使得讀者能夠從嵌入式的視角對存儲系統(tǒng)進行理解和研究,同時從歷史的角度給出了最真切的RAID系統(tǒng)發(fā)展和普及的歷程。第8章的目標是從計算機系統(tǒng)結(jié)構(gòu)的角度介紹網(wǎng)絡(luò)。由于該領(lǐng)域發(fā)展十分迅速,因此重點介紹概念和基本原理。本章開頭提供了一個通用的框架,給出了在各種情況下網(wǎng)絡(luò)設(shè)計的基本思想,包括局域網(wǎng)、存儲區(qū)域網(wǎng)絡(luò)和廣域網(wǎng),并對因特網(wǎng)技術(shù)進行了總結(jié)。本章的后半部分深入探討了集群技術(shù)及其在科學計算和數(shù)據(jù)庫程序方面的應(yīng)用,還詳細討論了集群系統(tǒng)的性價比,包括了機房和網(wǎng)絡(luò)帶寬的價格。最后通過對Google搜索引擎使用的集群系統(tǒng)的討論,總結(jié)了這一章的內(nèi)容。本書的附錄編號從A到I。附錄A是流水線基本概念的指南,對流水線不熟悉的讀者應(yīng)該在讀第3章、第4章之前先閱讀附錄A,了解一下流水線的基本知識。附錄B是部分練習題的解答。附錄C更新了第二版中RISC附錄的內(nèi)容,加入了64位Alpha,MIPS,PowerPC和SPARC及其多媒體擴展指令的描述,同時該附錄中還包括了流行的嵌入式指令集,例如ARM,Thumb,SuperH,MIPS16和MitsubishiM32R。附錄D介紹了8x86系統(tǒng)結(jié)構(gòu)。附錄E和附錄F分別對應(yīng)兩種在系統(tǒng)結(jié)構(gòu)發(fā)展歷史上有一定意義的結(jié)構(gòu),它們是VAX(附錄E)和IBM36/37(附錄F)。附錄G包含了更新過的一些向量處理器的知識。附錄H描述計算機算法,附錄I則介紹了一致性協(xié)議的實現(xiàn)。限于篇幅,本書紙介版本附錄C到I只給出其標題,具體內(nèi)容請到www.mkp.com/CA3瀏覽或下載。總體上說,這個版本有7%的內(nèi)容是新的。如果不包含聯(lián)機的附錄,那么第三版比第一版長1%,如果包含網(wǎng)上的在線附錄,那么第三版比第一版長3%。內(nèi)容導讀對于本書其實并沒有一個最好的閱讀順序。我們編寫這本書的時候,就已經(jīng)考慮到要保證讀者能夠按照多種順序來閱讀這本書。本書中有一些章節(jié)需要按照一定先后順序閱讀::第2章、第3章、第4章和第7章、第8章這幾章。讀者應(yīng)該從第1章開始閱讀,在閱讀第6章之前先閱讀第5章。如果需要了解附錄C、附錄D、附錄E、附錄F和附錄H的內(nèi)容,應(yīng)該在第2章之前閱讀。如果讀者準備閱讀附錄A,那么應(yīng)該在第3章、第4章之前進行。附錄G的內(nèi)容和第3章、第4章的內(nèi)容形成了很有趣的對照:建議穿插閱讀。雖然有很多閱讀的方法,但我們還是建議讀者采用如下兩種主要的閱讀方法:1.由內(nèi)到外(Insideout)。這種方法的指導思想是:處理器設(shè)計是計算機系統(tǒng)結(jié)構(gòu)的基礎(chǔ),與處理器無關(guān)的章節(jié)只有在時間充足的情況下才去閱讀。先從第1章開始,然后是處理器的內(nèi)部結(jié)構(gòu)(第2章、第3章和第4章)、存儲器層次結(jié)構(gòu)(第5章),接著是多處理器(第6章)和存儲系統(tǒng)(第7章),最后是網(wǎng)絡(luò)和集群(第8章)。2.由外到內(nèi)(Outsidein)。這種方法的指導思想是:當今計算機系統(tǒng)結(jié)構(gòu)中有挑戰(zhàn)性的問題都在處理器之外,處理器內(nèi)部的知識只有在時間充足的情況下才去閱讀。先從第1章開始,然后是存儲器層次結(jié)構(gòu)(第5章)、多處理器(第6章)、存儲系統(tǒng)(第7章)、網(wǎng)絡(luò)和集群系統(tǒng)(第8章),最后用指令集和流水線來進行總結(jié)(第2章、第3章和第4章)。章節(jié)結(jié)構(gòu)和習題每個章節(jié)中,所有的內(nèi)容都按照相同的模式組織。在每一章的開始我們引入該章的主要論題。然后是相關(guān)問題部分,主要講述這章中所涉及的思想是如何和其他章節(jié)中的思想相互影響相互作用的。接著是“綜合:……”部分,描述了如何將這些思想應(yīng)用于實際的機器,并且由此來組織這些思想。接下來是“其他視角:……”部分,這是第三版的新特性,通過實際的嵌入式或者服務(wù)器系統(tǒng)的例子使讀者對本章的內(nèi)容有新的認識。下一個部分是謬誤和易犯的錯誤部分,主要目的是使讀者能夠從其他人的錯誤中得到教訓。我們指出了通常存在的誤解和非常難以避免的結(jié)構(gòu)上的陷阱,力圖使讀者對這些攔路虎保持警惕。每一章的最后是結(jié)論、歷史回顧和參考文獻幾部分,對這些章節(jié)中所提到的思想給出評價并對這些發(fā)明創(chuàng)造的歷史背景進行介紹。我覺得這就像是一部計算機設(shè)計的戲劇一樣。參考文獻是為了方便學習系統(tǒng)結(jié)構(gòu)的學生進行查找。如果讀者有時間,我們推薦閱讀一些本書提到的領(lǐng)域中的經(jīng)典論文。從原創(chuàng)作者那里直接體驗這些思想是非常有樂趣和教育意義的。謬誤和易犯的錯誤以及歷史回顧是前兩個版本中最受歡迎的部分。本書每章后面都有習題,總共有超過2道習題。每個習題號后面的括號中都會指出回答該問題所需要閱讀的主要相關(guān)章節(jié)。我們希望這能夠幫助讀者避免做那些還沒有閱讀相應(yīng)章節(jié)的練習,同時這也提供了評判結(jié)果合理與否的參考內(nèi)容。注意對于標有量號(★)的題目,我們在附錄B中給出了解答。我們還將習題分類,估計了各個問題可能需要花費的時間:[1]5分鐘以內(nèi)(閱讀和理解)[2]15到2分鐘內(nèi)寫出完整解答[25]1個小時內(nèi)寫出完整解答[3]短程序設(shè)計:少于一整天的編程[4]大程序設(shè)計:2周的時間[5]學期設(shè)計(一個小團隊2到4周的時間)[討論]和其他對計算機系統(tǒng)結(jié)構(gòu)感興趣的人進行討論的題目補充MorganKaufmann出版社還可以向使用該書的正式教員提供一本教師手冊(“Instructor誷Manual”),該手冊給出了本書所有練習題的全面解答。眾多的附錄材料可以從MorganKaufmann的主頁上得到(www.mkp.com)。由于我們使用的是標準的指令集,所以我們已經(jīng)不需要提供專用的軟件。主頁中包含了MIPS結(jié)構(gòu)的相關(guān)內(nèi)容,例如模擬器、編譯器和匯編器等。這個主頁還包括了勘誤表、書中插圖的eps版本,以及讀者可能感興趣的相關(guān)材料的鏈接。為了感謝讀者的一貫支持,出版社將經(jīng)常性地加入新的內(nèi)容,并且補充到相關(guān)站點的鏈接中。幫助改進這本書閱讀這本書還有可能掙錢。談?wù)勑阅軆r格比吧!如果你讀了后面的致謝,你就會看到在修正錯誤上,我們有很長的路要走。因為一本書會多次印刷,我們有機會進行更多的校訂。如果你發(fā)現(xiàn)了任何錯誤①,請通過電子郵件(ca3bugs@mkp.com)和出版社聯(lián)系。第一位報告某個錯誤,并且該錯誤被我們在下一次印刷中糾正的讀者將獲得1美元的獎金。請查閱http://www.mkp.com主頁的勘誤表,看看所發(fā)現(xiàn)的錯誤是否已經(jīng)有人報告了。我們將處理錯誤報告,并在一年左右發(fā)送核實結(jié)果,請耐心等待。我們也非常歡迎對于本書內(nèi)容的建議,希望讀者能把寶貴的建議發(fā)送到另一個電子郵件地址ca3comments@mkp.com②。結(jié)束語本書又是一次真正合作的結(jié)晶,我們每人寫了一半的章節(jié)和一半的附錄。我們無法想像,如果沒有另外一個人的工作,我們需要多長的時間才能完成這本書。我們在看上去沒有希望的時候相互鼓勵,共同深入地說明比較困難的概念,在周末時為長達1頁的書稿進行檢查,以及在沉重的責任和壓力使得我們難以拿起筆的時候互相寬慰。因此,我們將再次共同承擔讀者在閱讀后的各種批評。美國斯坦福大學計算機系Hennessy教授和加州大學伯克利分校計算機系Patterson教授是現(xiàn)今計算機設(shè)計領(lǐng)域非常受人尊敬的學者和開拓者。JohnHennessy精通軟硬件兩個方面,是具有傳奇色彩的MIPS編譯器和幾代MIPS硬件產(chǎn)品技術(shù)上的領(lǐng)導者。DavidPatterson是RISC的最初提倡者之一。他首創(chuàng)了RISC一詞,定義了RISC的含義,是Sun公司SPARC處理器的主要顧問。他提出了RAID(獨立/廉價磁盤冗余陣列)的概念,推動了為海量數(shù)據(jù)服務(wù)器提供磁盤存儲解決方案的工業(yè)革命,并且還提出了NOW(工作站網(wǎng)絡(luò))的概念。該書是他們對計算機組織、系統(tǒng)結(jié)構(gòu)研究和實踐的全面而系統(tǒng)的總結(jié)。目前,世界上很多大學的計算機系統(tǒng)結(jié)構(gòu)課程采用這本教材。國內(nèi)也有大學采用這本教材的英文版。與同類著作相比,這本書具有結(jié)構(gòu)清晰完整、系統(tǒng)性強、內(nèi)容新穎、行文深入淺出和可讀性強的特點。特別值得強調(diào)的是,這本書講授計算機組織和系統(tǒng)結(jié)構(gòu)的量化研究方法能夠使讀者深入、扎實地掌握基本概念和理論,同時培養(yǎng)一種科學、規(guī)范而且有效的學習和科研方法乃至思想。這也是本書能在世界范圍內(nèi)備受推崇以及我們把它翻譯成中文并極力在國內(nèi)推廣的主要原因。這是一本能使讀者在較短時間內(nèi)全面了解、熟悉和掌握當代計算機系統(tǒng)結(jié)構(gòu)發(fā)展主流技術(shù)和最新成就的優(yōu)秀教材和專業(yè)參考書。其中譯本的問世必將為我國計算機科學技術(shù)教育和研究工作帶來新的思路和靈感。感謝電子工業(yè)出版社對出版中譯本(第三版)的支持,感謝清華大學計算機系許多同學在翻譯和校對過程中所付出的辛勤努力。由于時間倉促、譯者水平有限,文中定有不當或欠妥之處,還望讀者批評指正。本書系統(tǒng)而全面地介紹了計算機系統(tǒng)的設(shè)計基礎(chǔ)、指令集系統(tǒng)結(jié)構(gòu)、流水線和指令級并行技術(shù)、層次化存儲系統(tǒng)與存儲設(shè)備、互連網(wǎng)絡(luò)以及多處理器系統(tǒng)等重要內(nèi)容。對計算機系統(tǒng)結(jié)構(gòu)的論述主要以較流行的64位MIPS結(jié)構(gòu)為基礎(chǔ),通過量化分析的方法進行。本書內(nèi)容豐富全面,既介紹了當今計算機系統(tǒng)結(jié)構(gòu)的最新研究成果,也引述了大量有影響的計算機系統(tǒng)設(shè)計開發(fā)方面的實踐經(jīng)驗。全書編排層次合理,敘述由淺入深。各章結(jié)尾還附有大量的習題和參考文獻。本書既可以作為高等院校計算機專業(yè)高年級學生和研究生學習“計算機系統(tǒng)結(jié)構(gòu)”、“計算機原理”等課程的教科書或參考書,也可供與計算機相關(guān)的專業(yè)人士學習參考。BillJoy,Sun微系統(tǒng)公司的首席科學家兼首席執(zhí)行官。非常幸運,二十多年前我能在加州大學伯克利分校的DavidPatterson教授指導下學習計算機系統(tǒng)結(jié)構(gòu)。我非常欣賞他的課程,那時正是RISC架構(gòu)發(fā)展的初期。在離開伯克利后幫助創(chuàng)建Sun微系統(tǒng)公司的過程中,我有很多想法來自于他的課程教學,以及這本非常重要的書。今天,一個好消息是,這本書的內(nèi)容覆蓋了許多當代非常重要的知識。未來的好消息是,仍然有無數(shù)激動人心的、富有挑戰(zhàn)性的工作等著我們?nèi)ネ瓿?。而本書無疑是一個很好的開始。我參加過的最成功的項目都是由簡單的想法開始,并采用從經(jīng)驗中總結(jié)來的簡單數(shù)學模型來完成的。計算機技術(shù)正在迅速地發(fā)展,各種新的應(yīng)用不斷出現(xiàn),這促使我們需要新的簡單模型來理解未來可能出現(xiàn)的新事物,理解新的應(yīng)用如何在各種不同的方面影響我們的系統(tǒng)。第1章介紹的定量方法是理解這些問題的重要工具。我們尤其希望在不遠的將來,各種或大或小的系統(tǒng)都會更加強調(diào)用最小的能耗達到應(yīng)用的要求。這方面還有許多工作需要去做。在我的職業(yè)生涯中,我接觸過許多不同的指令集。我開始編程的時候用的是PDP-8計算機,它的指令集非常簡單,我的一個朋友甚至通過打孔紙帶的數(shù)據(jù)就能理解程序。我用PDP-11的匯編器寫了許多程序,包括一個VAX上的Pascal語言解釋程序(本書第一版中的一個例子)。VAX的成功使得UNIX系統(tǒng)在早期的互聯(lián)網(wǎng)中得到了廣泛的傳播。PDP-11和VAX是非常傳統(tǒng)的復雜指令集(CISC)結(jié)構(gòu),其相對簡潔的指令集使得它幾乎無法使用流水線。在多年的公開訪談中,我都把VAX11/78的性能作為基準,它的速度廣為人知,因為在很長一段時間內(nèi),該系統(tǒng)結(jié)構(gòu)的快速實現(xiàn)一直沒有出現(xiàn)。微處理器的x86以及68x等復雜指令集出現(xiàn)后,VAX的性能就顯得很落伍了。微處理器的價格優(yōu)勢使得它們漸漸取得了統(tǒng)治地位。這個時候,精簡指令集系統(tǒng)結(jié)構(gòu)(RISC)出現(xiàn)了。這種結(jié)構(gòu)最早由IBM的JohnCocke提出,Patterson和Hennessy為它正式命名并大力提倡,并由POWERPC,MIPS和SPARC等微處理器實現(xiàn)。這些實現(xiàn)證明采用簡單的寄存器指令集能夠獲得高性能的流水線。一般來說,采用RISC的程序代碼比較長,由此需要更高的取指令(fetch)帶寬,第1章中的技術(shù)和CarverMead的經(jīng)典論斷所揭示的未來CMOS技術(shù)的發(fā)展趨勢告訴我們,這點代價是值得的。對當前所存在問題的思考和對未來計算的展望,使得我們更傾向于RISC系統(tǒng)結(jié)構(gòu),這將成為本書關(guān)注的中心。第2章(以及相關(guān)的附錄)介紹了當代以及歷史上有影響的指令集結(jié)構(gòu)。雖然經(jīng)歷了近二十年的努力,RISC結(jié)構(gòu)還遠不能成為系統(tǒng)結(jié)構(gòu)的終結(jié)者。前后有十幾年的時間里我參與了SPARC結(jié)構(gòu)的設(shè)計及其幾個版本的實現(xiàn),現(xiàn)在我正在參與另外兩種不同結(jié)構(gòu)處理器的設(shè)計,它們是:picoJava,它實現(xiàn)了大部分的JAVA虛擬機指令,這是一種簡潔的字節(jié)碼高級指令;MAJC,一種簡單的多線程超長指令字(VLIW,Verylonginstructionword)處理器,主要用于Java程序和多媒體應(yīng)用。這兩種結(jié)構(gòu)針對不同的新市場應(yīng)用,即低能耗的嵌入式設(shè)備領(lǐng)域和能夠在一定的能耗和成本下采用并行計算獲得高性能的領(lǐng)域。這兩者現(xiàn)在都還沒有取得廣泛的商業(yè)成功。但我認為未來會有許多不同的工業(yè)標準結(jié)構(gòu)(ISA)受到青睞。對歷史的深入了解可以讓我們深受啟發(fā),通過對過去成功設(shè)計的研究,可以發(fā)現(xiàn)它們是如何在幾個關(guān)鍵因素,例如程序大小、執(zhí)行速度和能耗等方面取得平衡的。這些經(jīng)驗將為我們今天的設(shè)計提供幫助。第3章和第4章講述了指令級并行(ILP),這種能力可以使計算機在同一時刻執(zhí)行多條指令。在過去的二十幾年中,RISC技術(shù)和超長指令字技術(shù)大大促進了這一領(lǐng)域的發(fā)展。但是,在IntelItanium的結(jié)構(gòu)設(shè)計中,RISC技術(shù),特別是VLIW技術(shù)需要很高的能耗。當我們試圖獲得更高的指令級并行度的時候,我們遇到了設(shè)計中的難題:如果需要同時執(zhí)行N條語句,那么晶體管數(shù)量和能耗的需求將以N2的態(tài)勢迅速增長。另一種方法是采用簡單的流水線,比較現(xiàn)實的指令級并行度,并混合使用其他的并行方法,例如每處理器多線程和每芯片多處理器技術(shù)。對于未來的高性能系統(tǒng)設(shè)計,最大的挑戰(zhàn)就是要明白并行執(zhí)行是完全可能的,但在實際中融合其他并行度低但是能耗也低也更簡單的技術(shù)才是明智的做法。在研究所的時候,我經(jīng)常開玩笑地說高速緩存是計算機科學中惟一重要的思想。事實上,高速緩存技術(shù)確實極大地影響了計算機系統(tǒng)的設(shè)計。第5章介紹了經(jīng)典的高速緩存設(shè)計和主存儲器層次結(jié)構(gòu)以及虛擬內(nèi)存技術(shù)?,F(xiàn)在,類似于Java的高級編程語言開始采用垃圾回收和內(nèi)存越界檢查技術(shù)來支持更可靠的軟件設(shè)計,這樣可以避免內(nèi)存共享錯誤和緩沖區(qū)溢出等大程序中常見的錯誤。只有類似于Java的高級語言才支持自動存儲管理,只有這樣才能實現(xiàn)真正的軟件組件。但是在現(xiàn)在的存儲器層次結(jié)構(gòu)上,要實現(xiàn)垃圾回收功能是非常困難的。設(shè)計這樣的系統(tǒng)或者設(shè)計這樣的語言是研究的熱點,雖然我們?nèi)〉昧撕艽蟪晒?,但仍然有很長的路要走。Java語言能夠很好地支持線程級并行。這是實現(xiàn)簡單、高效的高性能系統(tǒng)的關(guān)鍵,這種方法避免了前面所說的N2問題,但也帶來了新的挑戰(zhàn)。第6章將對這一領(lǐng)域進行基本的介紹。傳統(tǒng)的做法是每一個處理器放在一塊單獨的芯片上,由于存儲器層次結(jié)構(gòu)的問題以及同步操作本身的高昂代價,在不同處理器之間保持同步非常困難。Java語言試圖解決這個問題。我們的嘗試是在Java語言規(guī)范(我是作者之一)中給出用Java實現(xiàn)內(nèi)存模型的一個描述。我們清醒地看到,這個描述存在技術(shù)上的問題(可修正),我們需要對存儲器層次結(jié)構(gòu)進行仔細思考,以便使我們設(shè)計的語言能夠更好地運行在新的系統(tǒng)平臺上。我們把Java規(guī)范看做是未來將要完成的許多工作的第一步。和第7章描述的一樣,存儲系統(tǒng)由原來連接在單個計算機的一個組成部分,變成了一種獨立的網(wǎng)絡(luò)資源。這讓人想起了計算機圖形技術(shù)的發(fā)展史,隨著圖形處理重要性的增加,原來由主機處理的功能被單獨分割出來,成為了獨立的圖形處理芯片。在接下來的幾年中,一切將會發(fā)生巨大的改變,大量的并行主處理器將擁有比主板之外的圖形處理單元更好的性能。與此類似,存儲技術(shù)將會有突破性的進展,例如分子電子學和納米技術(shù)將會大大降低存儲設(shè)備的價格并縮短訪問時間。這將鼓勵人們把數(shù)據(jù)備份在不同的計算節(jié)點上,而不是通過網(wǎng)絡(luò)共享。存儲技術(shù)將發(fā)生和圖形技術(shù)類似的變化。同樣,存儲系統(tǒng)也將會有非常嚴格的健壯性要求,不僅僅是針對硬件錯誤,還要考慮軟件錯誤以及人為操作失誤。這將是近幾年一個非常有挑戰(zhàn)性的課題。第8章提供了計算機互連和網(wǎng)絡(luò)的一個基本介紹。這方面我的模型來自于Sun公司另外一位創(chuàng)始人AndyBechtolsheim,他經(jīng)常說:“以太網(wǎng)不??!”。更為合適的表述是:給出網(wǎng)絡(luò)互連的要求,不管以太網(wǎng)有什么缺點,總會有一款經(jīng)過某些修改的以太網(wǎng)協(xié)議版本在市場上獲得勝利。原因何在?很明顯,以太網(wǎng)協(xié)議具有簡單和使用廣泛的特點,然而更加有說服力的原因是,采用以太網(wǎng)協(xié)議我們能夠立即開始工作,而不需要爭論對最終結(jié)果無關(guān)緊要的細節(jié)。這個經(jīng)驗能夠適用于本書中有關(guān)計算機系統(tǒng)結(jié)構(gòu)的一切領(lǐng)域。多年以前,DavePatterson曾經(jīng)說過,對于一個新的項目,你只能獲得有限的“亮點”(clevernessbeans)。即你只能在設(shè)計中有限的幾個方面采用很“聰明”的做法,如果想在方方面面都采用“聰明”的做法,那么你的設(shè)計很可能達不到最終的目標,甚至無法工作或者無法完成。在二十多年的設(shè)計中我學到的一個教訓就是:在設(shè)計的過程中,你必須要選擇最重要的部分并且將重點放在那里。真正的智慧是知道應(yīng)該放棄什么,知道什么是無法企及的是具有這種能力的關(guān)鍵。同樣,你必須要仔細選擇你的猜想。很多年以前我參加了在夏威夷舉行的一個會議,在會上,富有傳奇色彩的計算機設(shè)計師MauriceWilkes為我們做了一次演講。他說,在他的記憶中,好的研究總是包含一些猜想,這些猜想也許在當時看來是不切實際的,但是在未來有可能實現(xiàn)。如果這些猜想實現(xiàn)了,那么你將發(fā)現(xiàn)你做了非常偉大的研究。例如,XeroxPARC的研究小組給出了一個猜想:人人都使用帶有圖形界面的個人電腦,通過互連網(wǎng)絡(luò)連接其他人的機器,并采用便宜的Xerography技術(shù)進行打印?,F(xiàn)在看來,他們的預言是多么的準確,他們的工作是多么的重要啊!在我們的時代,在計算機系統(tǒng)結(jié)構(gòu)領(lǐng)域中,我想將會有許多猜想變?yōu)楝F(xiàn)實。有一些甚至不會有爭議,例如摩爾定律將在近十年內(nèi)繼續(xù)有效,也許十年之后大規(guī)模芯片設(shè)計的復雜程度將會達到它的物理極限。更毋庸置疑的是,分子技術(shù)有可能極大地降低存儲和邏輯元件的價格,光學互連技術(shù)將極大地增加網(wǎng)絡(luò)的帶寬并減少傳輸?shù)腻e誤率,軟件仍然會因為編寫困難而不可靠,安全問題將繼續(xù)成為人們關(guān)心的重點。本書詳細介紹了計算機系統(tǒng)結(jié)構(gòu)發(fā)展的趨勢。下一代的計算機設(shè)計者能夠利用本書中的知識精華甄別優(yōu)劣,減少缺陷,從而設(shè)計出各種樣式和大小的系統(tǒng)。計算機系統(tǒng)結(jié)構(gòu)設(shè)計正變得越來越多樣化,也越來越有趣。讓我們立即啟程探索,或者再次征服這個領(lǐng)域吧,而本書將是最好的起點。芯片中見!

作者簡介

  斯坦福大學校長,IEEE和ACM會士,美國國家工程研究院院士及美國科學藝術(shù)研究院院士。Hennessy教授因為在RISC技術(shù)方面做出了突出貢獻而榮獲2001年的Eckert-Mauchly獎?wù)?。他也?001年SeymourCray計算機工程獎的得主,并且和本書另外一位作者DavidA.Patterson分享了2000年的JohnvonNeumann獎。

圖書目錄

第1章  計算機設(shè)計基本原理
1.1  簡介
1.2  計算方向的改變和計算機設(shè)計者的任務(wù)
1.3  技術(shù)發(fā)展趨勢
1.4  成本、價格及其發(fā)展趨勢
1.5  評價和報告計算機的性能
1.6  計算機設(shè)計的量化準則
1.7  綜合:性能和性價比
1.8  其他視角:功耗和效率的衡量
1.9  謬誤和易犯的錯誤
1.10  結(jié)論
1.11  歷史回顧和參考文獻
參考文獻
習題
第2章  指令集原理與實例
2.1  指令集簡介
2.2  指令集系統(tǒng)結(jié)構(gòu)的分類
2.3  內(nèi)存尋址
2.4  信號處理的尋址方式
2.5  操作數(shù)的大小與類型
2.6  媒體和信號處理中的操作數(shù)
2.7  指令集的操作
2.8  媒體和信號處理中的操作
2.9  控制流指令
2.10  指令集的編碼
2.11  相關(guān)問題:編譯器
2.12  綜合:MIPS系統(tǒng)結(jié)構(gòu)
2.13  其他視角:Trimedia TM32處理器
2.14  謬誤和易犯的錯誤
2.15  結(jié)論
2.16  歷史回顧和參考文獻
參考文獻
習題
第3章  指令級并行及其動態(tài)開發(fā)
3.1  指令級并行:概念及挑戰(zhàn)
3.2  采用動態(tài)調(diào)度克服數(shù)據(jù)沖突
3.3  動態(tài)調(diào)度:算法及舉例
3.4  采用動態(tài)硬件預測技術(shù)減少分支開銷
3.5  高性能指令傳送機制
3.6  采用多發(fā)射獲得更高的指令級并行度
3.7  基于硬件的猜測技術(shù)
3.8  指令級并行性限制研究
3.9  實際處理器中的指令級并行性限制
3.10  綜合:P6微結(jié)構(gòu)
3.11  其他視角:線程級并行
3.12  相關(guān)問題:使用指令級并行的數(shù)據(jù)通路開發(fā)線程級并行
3.13  謬誤和易犯的錯誤
3.14  結(jié)論
3.15  歷史回顧和參考文獻
參考文獻
習題
第4章  用軟件方法開發(fā)指令級并行
4.1  開發(fā)指令級并行的基本編譯技術(shù)
4.2  靜態(tài)分支預測
4.3  靜態(tài)多發(fā)射:VLIW方法
4.4  支持指令級并行的高級編譯器技術(shù)
4.5  編譯時開發(fā)更多并行性的硬件支持
4.6  相關(guān)問題:硬件猜測與軟件猜測的比較
4.7  綜合:Intel的IA-64系統(tǒng)結(jié)構(gòu)和安騰處理器
4.8  其他視角:嵌入式和移動市場的指令級并行
4.9  繆誤和易犯的錯誤
4.10  結(jié)論
4.11  歷史回顧和參考文獻
參考文獻
習題
第5章  存儲器層次結(jié)構(gòu)設(shè)計
5.1  簡介
5.2  cache基本知識回顧
5.3  cache性能
5.4  降低cache缺失代價
5.5  降低cache缺失率
5.6  通過并行降低cache缺失代價或缺失率
5.7  減少命中時間
5.8  內(nèi)存和提高內(nèi)存性能的組織方式
5.9  存儲器技術(shù)
5.10  虛擬存儲器
5.11  虛擬存儲器的保護和示例
5.12  相關(guān)問題:存儲器層次設(shè)計
5.13  綜合:Alpha 21264存儲層次結(jié)構(gòu)
5.14  其他視角:Sony Playstation 2的動畫引擎
5.15  其他視角:Sun Fire 6800服務(wù)器
5.16  謬誤和易犯的錯誤
5.17  結(jié)論
5.18  歷史回顧和參考文獻
參考文獻
習題
第6章  多處理器和線程級并行
6.1  簡介
6.2  應(yīng)用領(lǐng)域的特征
6.3  對稱式共享存儲器系統(tǒng)結(jié)構(gòu)
6.4  對稱式共享存儲器多處理器系統(tǒng)的性能
6.5  分布式共享存儲器系統(tǒng)結(jié)構(gòu)
6.6  分布式共享存儲多處理器系統(tǒng)的性能
6.7  同步
6.8  存儲器一致性模型介紹
6.9  多線程:在單個處理器中開發(fā)線程級并行
6.10  相關(guān)問題
6.11  綜合:Sun的Wildfire原型
6.12  其他視角:商用服務(wù)器上的多線程
6.13  其他視角:嵌入式多處理器系統(tǒng)
6.14  謬誤和易犯的錯誤
6.15  結(jié)論
6.16  歷史回顧和參考文獻
參考文獻
習題
第7章  存儲系統(tǒng)
7.1  簡介
7.2  存儲設(shè)備類型
7.3  總線—連接IO設(shè)備到CPU/存儲器
7.4  可靠性、有效性和穩(wěn)定性
7.5  RAID:廉價/獨立磁盤冗余陣列
7.6  實際系統(tǒng)中的差錯和故障
7.7  I/O 性能評測
7.8  Little 隊列理論
7.9  存儲性能和有效性基準測試程序
7.10  相關(guān)問題
7.11  I/O系統(tǒng)設(shè)計
7.12  綜合:EMC Symmetrix和Celerra
7.13  其他視角:Sanyo VPC-SX500數(shù)碼相機
7.14  謬誤和易犯的錯誤
7.15  結(jié)論
7.16  歷史回顧和參考文獻
參考文獻
練習
第8章  互連網(wǎng)絡(luò)與集群
8.1  簡介
8.2  簡單網(wǎng)絡(luò)
8.3  互連網(wǎng)絡(luò)介質(zhì)
8.4  連接多臺計算機
8.5  網(wǎng)絡(luò)拓撲結(jié)構(gòu)
8.6  商用互連網(wǎng)絡(luò)的幾個實際問題
8.7  互連網(wǎng)絡(luò)舉例
8.8  網(wǎng)際互連
8.9  互連網(wǎng)絡(luò)的幾個相關(guān)問題
8.10  集群
8.11  集群設(shè)計
8.12  綜合:Google集群介紹
8.13  其他視角:手機內(nèi)部的相關(guān)技術(shù)
8.14  謬誤和易犯的錯誤
8.15  結(jié)論
8.16  歷史回顧和參考文獻
參考文獻
習題
附錄A  流水線基礎(chǔ)和中級概念
附錄B  部分習題答案

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號