帕特
阿福·佩爾特,出生於愛沙尼亞派德,20世紀愛沙尼亞作曲家。他的作品以合唱聖樂最為人所知。「神聖簡約主義」的主要作曲家之一。
維基百科
圖書介紹 - 資料來源:博客來 目前評分: 評分:
圖書名稱:計算機組成與設計:硬件/軟件接口(MIPS版)(原書第6版)
內容簡介
本書由2017年圖靈獎的兩位得主撰寫,是電腦體系結構領域的經典教材,每年被超過40000名學生使用。
新版的主要更新是在每章中添加了關於DSA的內容,並更新了所有實例,使全書更加與時俱進,滿足學生和讀者的新需求。
目錄
譯者序
前言
作者簡介
第1章電腦抽象及相關技術1
1.1引言1
1.1.1計算應用的分類及其特性2
1.1.2歡迎來到後PC時代3
1.1.3你能從本書學到什麼4
1.2電腦體系結構的7個偉大思想6
1.2.1使用抽象簡化設計6
1.2.2加速大概率事件6
1.2.3通過並行提高性能6
1.2.4通過流水線提高性能6
1.2.5通過預測提高性能7
1.2.6存儲層次7
1.2.7通過冗餘提高可靠性7
1.3程式表像之下8
1.4主機殼之內的硬體10
1.4.1顯示器11
1.4.2觸控式螢幕12
1.4.3打開主機殼13
1.4.4資料安全15
1.4.5與其他電腦通信16
1.5處理器和記憶體製造技術17
1.6性能20
1.6.1性能的定義21
1.6.2性能的度量23
1.6.3CPU性能及其因素24
1.6.4指令的性能25
1.6.5經典的CPU性能公式26
1.7功耗牆28
1.8滄海巨變:從單一處理器向多處理器轉變30
1.9實例:IntelCorei7基準32
1.9.1SPECCPU基準測試程式32
1.9.2SPEC功耗基準測試程式34
1.10加速:使用Python語言編寫矩陣乘法程式35
1.11謬誤與陷阱36
1.12本章小結38
1.13歷史觀點和拓展閱讀39
1.14自學39
1.15練習題42
第2章指令:電腦的語言46
2.1引言46
2.2電腦硬體的操作48
2.3電腦硬體的運算元50
2.3.1記憶體運算元51
2.3.2常數或立即數運算元53
2.4有符號數和無符號數54
2.5電腦中指令的表示59
2.6邏輯操作65
2.7決策指令67
2.7.1迴圈68
2.7.2case/switch語句70
2.8電腦硬體對過程的支援71
2.8.1使用多寄存器72
2.8.2嵌套過程74
2.8.3在棧中為新資料分配空間76
2.8.4在堆中為新資料分配空間76
2.9人機交互78
2.10MIPS中32位立即數和地址的定址82
2.10.132位立即數83
2.10.2分支和跳轉中的定址83
2.10.3MIPS定址模式總結85
2.10.4機器語言解碼87
2.11並行與指令:同步89
2.12翻譯並執行程式91
2.12.1編譯器91
2.12.2彙編器91
2.12.3連結器93
2.12.4載入器95
2.12.5動態連結程式庫95
2.12.6啟動一個Java程式97
2.13綜合實例:C排序程式98
2.13.1swap過程98
2.13.2sort過程100
2.14陣列與指標104
2.14.1用陣列實現clear104
2.14.2用指針實現clear106
2.14.3比較兩個版本的clear106
2.15內容:編譯C語言和解釋Java語言107
2.16實例:ARMv7(32位元)指令集107
2.16.1定址模式108
2.16.2比較和條件分支108
2.16.3ARM的特色109
2.17實例:ARMv8(64位元)指令集111
2.18實例:RISC-V指令集112
2.19實例:x86指令集112
2.19.1Intelx86的演進112
2.19.2x86寄存器和資料定址模式114
2.19.3x86整數操作115
2.19.4x86指令編碼117
2.19.5x86總結119
2.20加速:使用C語言編寫矩陣乘法程式119
2.21謬誤與陷阱120
2.22本章小結122
2.23歷史觀點和拓展閱讀124
2.24自學124
2.25練習題126
第3章電腦的算數運算132
3.1引言132
3.2加法和減法132
3.3乘法136
3.3.1順序的乘法演算法和硬體137
3.3.2有符號乘法139
3.3.3快速的乘法139
3.3.4MIPS中的乘法140
3.3.5小結140
3.4除法140
3.4.1除法演算法和硬體141
3.4.2有符號除法143
3.4.3快速的除法144
3.4.4MIPS中的除法144
3.4.5小結145
3.5浮點運算146
3.5.1浮點表示147
3.5.2浮點加法151
3.5.3浮點乘法154
3.5.4MIPS中的浮點指令156
3.5.5算術性161
3.5.6小結163
3.6並行性和電腦算術:子字並行164
3.7實例:x86中的流處理SIMD擴展和向量擴展166
3.8加速:子字並行和矩陣乘法167
3.9謬誤與陷阱168
3.10本章小結171
3.11歷史觀點和拓展閱讀174
3.12自學174
3.13練習題176
第4章處理器181
4.1引言181
4.1.1一個基本的MIPS實現182
4.1.2實現方式概述182
4.2邏輯設計的一般方法184
4.3建立資料通路187
4.4一個簡單的實現機制193
4.4.1ALU控制193
4.4.2主控制單元的設計195
4.4.3為什麼不使用單週期實現方式201
4.5多週期實現202
4.6流水線概述203
4.6.1面向流水線的指令集設計206
4.6.2流水線冒險207
4.6.3小結212
4.7流水線資料通路與控制213
4.7.1圖形化表示的流水線221
4.7.2流水線控制224
4.8數據冒險:旁路與阻塞227
4.9控制冒險237
4.9.1假定分支不發生238
4.9.2縮短分支的延遲238
4.9.3動態分支預測241
4.9.4小結244
4.10異常245
4.10.1MIPS體系結構中的異常處理245
4.10.2流水線實現中的異常246
4.11指令級並行249
4.11.1推測的概念250
4.11.2靜態多發射處理器251
4.11.3動態多發射處理器255
4.11.4能耗效率與流水線258
4.12實例:IntelCorei76700和ARMCortex-A53259
4.12.1ARMCortex-A53259
4.12.2A53流水線的性能261
4.12.3IntelCorei76700263
4.12.4IntelCorei7的性能265
4.13加速:指令級並行和矩陣乘法266
4.14主題:數位設計概述—使用硬體設計語言進行流水線建模以及多流水線示例268
4.15謬誤與陷阱268
4.16本章小結269
4.17歷史觀點和拓展閱讀269
4.18自學269
4.19練習題270
第5章大容量和高速度:開發記憶體層次結構281
5.1引言281
5.2記憶體技術285
5.2.1SRAM技術285
5.2.2DRAM技術285
5.2.3快閃記憶體287
5.2.4磁碟記憶體287
5.3cache的基本原理289
5.3.1cache訪問291
5.3.2cache缺失處理295
5.3.3寫操作處理296
5.3.4cache實例:IntrinsityFastMATH處理器297
5.3.5小結299
5.4cache性能的評估和改進299
5.4.1通過靈活地放置塊來減少cache缺失302
5.4.2在cache中查找塊305
5.4.3替換塊的選擇306
5.4.4使用多級cache結構減少缺失代價307
5.4.5通過分塊進行軟體優化309
5.4.6小結312
5.5可信記憶體層次312
5.5.1失效的定義313
5.5.2糾正一位錯、檢測兩位元錯的漢明編碼(SEC/DED)314
5.6虛擬機器317
5.6.1虛擬機器監視器的條件318
5.6.2指令集體系結構(缺乏)對虛擬機器的支援319
5.6.3保護和指令集體系結構319
5.7虛擬記憶體320
5.7.1頁的存放和查找323
5.7.2缺頁故障324
5.7.3關於寫327
5.7.4加快位址轉換:TLB327
5.7.5集成虛擬記憶體、TLB和cache331
5.7.6虛擬記憶體中的保護332
5.7.7處理TLB缺失和缺頁333
5.7.8小結337
5.8記憶體層次結構的一般框架338
5.8.1問題1:塊放在何處339
5.8.2問題2:如何找到塊340
5.8.3問題3:cache缺失時替換哪一塊340
5.8.4問題4:寫操作如何處理341
5.8.53C:一種理解記憶體層次結構行為的直觀模型342
5.9使用有限狀態機來控制簡單的cache343
5.9.1一個簡單的cache343
5.9.2有限狀態機344
5.9.3一個簡單cache控制器的有限狀態機346
5.10並行與記憶體層次結構:cache一致性347
5.10.1實現一致性的基本方案348
5.10.2監聽協議348
5.11並行與記憶體層次結構:廉價冗餘磁碟陣列350
5.12內容:實現cache控制器350
5.13實例:ARMCortex-A53和IntelCorei7的記憶體層次結構350
5.14加速:cache分塊和矩陣乘法354
5.15謬誤與陷阱355
5.16本章小結359
5.17歷史觀點和拓展閱讀359
5.18自學359
5.19練習題362
第6章從用戶端到雲的並行處理器374
6.1引言374
6.2創建並行處理常式的難點376
6.3SISD、MIMD、SIMD、SPMD和向量機379
6.3.1x86中的SIMD:多媒體擴展380
6.3.2向量機380
6.3.3向量與標量382
6.3.4向量與多媒體擴展382
6.4硬體多執行緒385
6.5多核和其他共用記憶體多處理器387
6.6圖形處理單元390
6.6.1NVIDIAGPU體系結構簡介391
6.6.2NVIDIAGPU存儲結構393
6.6.3GPU展望394
6.7領域專用體系結構396
6.8集群、倉儲級電腦和其他消息傳遞多處理器398
6.9多處理器網路拓撲簡介402
6.10與外界通信:集群網路404
6.11多處理器基準測試程式和性能模型405
6.11.1性能模型407
6.11.2Roofline模型408
6.11.3兩代Opteron的比較409
6.12實例:GoogleTPUv3電腦和NVIDIAVoltaGPU的評測413
6.12.1DNN的訓練和推理413
6.12.2DSA電腦網路414
6.12.3DSA電腦節點414
6.12.4DSA算數運算416
6.12.5TPUv3與VoltaGPU的比較417
6.12.6性能418
6.13加速:多處理器和矩陣乘法419
6.14謬誤與陷阱421
6.15本章小結423
6.16歷史觀點和拓展閱讀425
6.17自學425
6.18練習題426
附錄A彙編器、連結器和SPIM模擬器435
附錄B邏輯設計基礎486
索引544
網路內容
附錄C圖形與計算GPU
附錄D將控制映射至硬體
附錄E指令集體系結構綜述
序
神秘是我們能體驗的最美好的事物,它是所有真正的藝術和科學的源泉。
—阿爾伯特·愛因斯坦,《我的信仰》,1930
關於本書
在學習電腦科學與工程時,除了掌握計算的基本原理外,還應該瞭解該領域的最新進展。計算領域中各個方向的讀者都應學習電腦系統的組成理論,因為這是決定電腦系統的功能、性能甚至成功的關鍵。
要推動現代電腦技術的發展,需要對硬體和軟體都有深入理解的專業人士。硬體和軟體在多個層次上的相互影響成為理解計算基本原理的框架。無論你的主要興趣是硬體還是軟體,是電腦科學還是電氣工程,計算機組成與設計的基本思想都是相同的。因此,本書著重展示硬體與軟體的關係,並重點介紹當今電腦中的基礎概念。
處理器已經由單核發展為多核,且近年來更強調領域專用體系結構,該趨勢印證了本書自第1版就提出的觀點。過去,程式師可以忽略這一發展趨勢,並希望電腦體系結構專家、編譯器設計者和晶片工程師能夠説明他們,讓程式不做任何修改就可以更快、更高效地在新型處理器上運行。但是,這樣的時代已經一去不復返了。我們認為,至少在下一個十年裡,大多數程式師只有理解硬體/軟體介面,才能編寫出在現代電腦上高效運行的程式。
本書適合以下讀者閱讀:在組合語言或邏輯設計方面只有少許經驗,需要理解計算機組成的基本原理的讀者;具有組合語言或邏輯設計的基礎,需要學習如何設計電腦,或者要進一步理解電腦系統如何工作的讀者。
與本書相關的另一本書
有些讀者可能已經熟悉我們的另一本書—《電腦體系結構:量化研究方法》,該書已廣為流傳,經常以作者姓名命名,稱為“Hennessy and Patterson”(本書則常稱為“Patterson and Hennessy”)。該書的目的是用堅實的工程基礎和量化的性價比權衡來描述電腦體系結構的原理。該書基於商用系統,將案例與測量方法相結合,幫助讀者理解實際的設計。該書的目標是通過量化分析方法講解電腦體系結構,而不是僅僅對相關知識進行描述。因此,該書主要面向希望深入理解電腦系統的電腦專業人士。
本書的大多數讀者並不一定要成為電腦體系結構的設計者。軟體設計人員對系統中基本硬體技術的理解,將顯著影響未來軟體系統的性能和能效。因此,編譯器設計者、作業系統設計者、資料庫程式師以及其他大多數軟體工程師對本書所述的原理都應當有充分的瞭解。同樣,硬體設計者也必須清楚自己的工作對軟體的影響。
所以,本書的內容絕不僅僅是“Hennessy and Patterson”的子集,而是進行了大量的擴展和修訂,以滿足不同讀者的需求。我們對再版“Hennessy and Patterson”時刪除大量介紹性材料的效果感到滿意,與第1版相比,這兩本書的內容重疊度已大大降低。
第6版的變化
相比於前5版之間的變化,自本書第5版出版至今,電腦體系結構技術和商業模式發生了更大的變化。
摩爾定律放緩:Gordon Moore預測單晶片上集成的電晶體數量每18~24個月翻一番,但是半導體加工工藝按照此趨勢發展了50年之後,該預測將不再有效。雖然半導體加工工藝仍然在進步,但進步速度比以前慢了很多,且越來越不可預測。
領域專用體系結構(DSA)的出現:由於摩爾定律的放緩以及Dennard按比例縮小定律的終結,通用處理器的性能每年只有百分之幾的提升。另外,Amdahl定律限制了單晶片上處理器核數目增加所能夠帶來的收益。2020年,DSA被公認為最有發展前途的技術。與通用處理器能夠運行所有的應用程式不同,DSA能夠更高效地運行特定領域的程式。
微體系結構是安全攻擊的直接物件:Spectre(幽靈)能夠針對“推測亂序執行”和“硬體多執行緒”進行時間旁路攻擊。這些並不屬於任何一類可被修復的bug,從而為處理器設計提出了根本性的挑戰。
開放指令集和開源實現:開源軟體給電腦體系結構領域帶來了機遇和影響。任何組織機構都能夠在不簽署版權協定的情況下,使用RISC-V等開放指令集設計自己的處理器,並可以將設計實現進行開源。開源的設計實現既可被共用並自由下載,也可以作為有智慧財產權的RISC-V以供使用。開源軟體和硬體對於大學的研究、教學很有益處,可以幫助學生理解理論知識並提升產業技術能力。
資訊技術產業的再次整合(re-virticalization):雲計算使得不超過6家公司便可為所有用戶提供計算基礎設施,與20世紀六七十年代的IBM非常類似,這些公司決定軟體棧和硬體的部署。上述變化導致這些大型公司開發自己的DSA和RISC-V晶片,並將其部署到自己的雲中。
本書第6版反映了這些變化,更新了所有的實例和圖。針對用書教師提出的需求,我們對教學方法也做了進一步改進,這些改進的靈感來自給我的孫子輔導數學課時使用的教科書。
詳細資料
ISBN:9787111708865 規格:平裝 / 577頁 / 16k / 19 x 26 x 2.89 cm / 普通級 / 單色印刷 / 1-1 出版地:中國
66折: $ 950
66折: $ 231
66折: $ 508
作者:戴夫.亞斯普雷
出版社:木馬文化事業有限公司
出版日期:2022-06-08
66折: $ 297
作者:外薗健
出版社:東立出版社
出版日期:2024-11-04
$ 131
作者:蔡榮根
出版社:天下文化
出版日期:2024-10-30
$ 355
作者:愛瑞克
出版社:新樂園
出版日期:2021-07-28
$ 300
作者:施威銘研究室
出版社:旗標科技股份有限公司
出版日期:2024-08-08
$ 473
作者:龍幸伸
出版社:東立出版社
出版日期:2024-12-31
$ 247
$ 695
作者:黃蓉
出版社:千華數位文化股份有限公司
出版日期:2024-10-15
$ 549
作者:李天民
出版社:新星球
出版日期:2024-11-11
$ 294