電腦組成與設計:硬件/軟件接口(原書第5版) 计算机组成与设计:硬件/软件接口(原书第5版)

戴維 A.帕特森 (David A.Patterson), 約翰 L.亨尼斯 (John L.Hennessy)

  • 出版商: 機械工業
  • 出版日期: 2015-07-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 536
  • 裝訂: 平裝
  • ISBN: 7111504828
  • ISBN-13: 9787111504825

無法訂購

買這商品的人也買了...

相關主題

商品描述

本書是電腦組成的經典教材,著眼於當前電腦設計中最基本的概念,詳細展示軟硬件件的關系,介紹當代電腦系統發展的主流技術和最新成就。本書以MIPS處理器為例介紹電腦硬件技術、匯編語言、電腦算術、流水線以及存儲器層次結構等基本技術。書中強調從串行處理到並行處理的最新革新,每章中都包含並行硬件和軟件的主題,以軟硬件協同設計發揮多核性能為最終目標。另外,本版與時俱進地使用瞭如ARMCortexA8和IntelCorei7等現代設計來說明電腦設計的基本原理。本書適合作為高等院校電腦專業教材,對廣大技術人員也有很高的參考價值。

作者簡介

Computer Organization and Design:The Hardware/Software Interface

David A.Patterson自從1977年在加州大學伯克利分校任職開始一直講授計算機體系結構課程,他現在是計算機科學系的執行主席。
他的教學工作獲得了加州大學優秀教學獎、ACM Karlstrom獎、IEEE的Mulligan教育獎章和本科生教學獎。因為對RISC的貢獻,Patterson獲得了IEEE技術進步獎和ACM Eckert-Mauchly獎,另外因為對RAID的貢獻,他與別人分享了IEEE Johnson信息存儲獎。他和John Hennessy分享了IEEE John von Neumann獎章與C & C獎勵。
Patterson是美國藝術與科學院、計算機歷史博物館、ACM和IEEE院士,並且入選國家工程院、國家科學院和矽谷工程名人堂。他曾任美國總統信息諮詢委員會成員、伯克利EECS系CS分會主席、計算研究學會主席和ACM主席。這個紀錄使他獲得了ACM和CRA的傑出服務獎。
在伯克利,Patterson領導了RISC I的設計與實現,這是第一款精簡指令系統計算機,並且是商用SPARC體系結構的基礎。他是廉價磁盤冗餘陣列(RAID)項目的負責人,RAID技術引導許多公司開發出了高可靠存儲系統。他也參加了工作站網絡(NOW)項目,該項目先引導互聯網公司使用集群技術,再引導了後來的雲計算。這些項目獲得了三個ACM最佳論文獎。他當前的研究包括算法-機器-人、面向可證明優化實現的高可靠高效算法與專家系統。AMP實驗室正在開發可擴展的機器學習算法、倉儲式計算機編程模型以及密集資源工具,以從雲中的大數據獲得有價值的信息。ASPIRE實驗室使用深度的硬件和軟件協同技術在移動和貨架計算系統中獲得最高性能和能效。

John L.Hennessy斯坦福大學的第十任校長,他從1977年開始任職於斯坦福大學電子工程與計算機科學系。Hennessy是ACM和IEEE會士、國家工程院成員、國家科學院成員、美國藝術與科學院院士。他獲得了許多獎項,其中包括:因為對RISC的貢獻獲得的2001年ACM Eckert-Mauchly獎,2001年Seymour Cray計算機工程獎,與Patterson分享了2000年John von Neumann獎。他還獲得了七個榮譽博士學位。
1981年,他在斯坦福大學與幾個研究生開始了MIPS項目。
在1984年完成了該項目後,他離開大學,與他人共同創建了MIPS計算機系統(現在的MIPS技術公司),該公司開發了第一款商用RISC微處理器。2006年,MIPS微處理器銷售了20億片,應用範圍從視頻遊戲和掌上計算機到激光打印機和網絡交換機。後來,Hennessy領導了DASH(共享存儲器的主導體系結構)項目,該項目建立了第一個可擴展cache一致性多處理器的原形系統,其許多關鍵思想已經應用在先進的多處理器中。除了技術活動與大學工作外,他還是多家創業公司的早期顧問和投資者。

目錄大綱

出版者的話
本書讚譽
譯者序
前言
作者簡介

第1章計算機概要與技術1 
1.1引言1 
1.1.1計算應用的分類及其特性2 
1.1.2歡迎來到後PC時代3 
1.1.3你能從本書學到什麼4 
1.2計算機系統結構中的8個偉大思想6 
1.2.1面向摩爾定律的設計6 
1.2.2使用抽像簡化設計6 
1.2.3加速大概率事件6 
1.2.4通過並行提高性能7 
1.2.5通過流水線提高性能7 
1.2.6通過預測提高性能7 
1.2.7存儲器層次7 
1.2.8通過冗餘提高可靠性7 
1.3程序概念入門7 
1.4硬件概念入門10 
1.4.1顯示器11 
1.4.2觸摸屏12 
1.4.3打開機箱12 
1.4.4數據安全15 
1.4.5與其他計算機通信16 
1.5處理器和存儲器製造技術17 
1.6性能20 
1.6.1性能的定義20 
1.6.2性能的度量22 
1.6.3 CPU性能及其因素23
1.6.4指令的性能24 
1.6.5經典的CPU性能公式25 
1.7功耗牆27 
1.8滄海巨變:從單處理器向多處理器轉變29 
1.9實例:Intel Core i7基準31 
1.9.1 SPEC CPU基準測試程序31 
1.9.2 SPEC功耗基準測試程序32 
1.10謬誤與陷阱33 
1.11本章小結35 
1.12歷史觀點和拓展閱讀36 
1.13練習題36 

第2章指令:計算機的語言40 
2.1引言40 
2.2計算機硬件的操作43 
2.3計算機硬件的操作數44 
2.3.1存儲器操作數45 
2.3.2常數或立即數操作數47 
2.4有符號數和無符號數48 
2.5計算機中指令的表示53 
2.6邏輯操作58 
2.7決策指令60 
2.7. 1循環61 
2.7.2 case/switch語句63 
2.8計算機硬件對過程的支持64 
2.8.1使用更多的寄存器66 
2.8.2嵌套過程67 
2.8.3在棧中為新數據分配空間69 
2.8.4在堆中為新數據分配空間70 
2.9人機交互72
2.10 MIPS中32位立即數和尋址75 
2.10.132位立即數75 
2.10.2分支和跳轉中的尋址76 
2.10.3 MIPS尋址模式總結78 
2.10.4機器語言解碼79 
2.11並行與指令:同步81 
2.12翻譯並執行程序83 
2.12.1編譯器83 
2.12.2彙編器84 
2.12.3鏈接器85 
2.12.4加載器87 
2.12.5動態鏈接庫87 
2.12.6啟動一個Java程序89 
2.13以一個C排序程序作為完整的例子90 
2.13.1 swap過程90 
2.13.2 sort過程91 
2.14數組與指針96 
2.14.1用數組實現clear96 
2.14.2用指針實現clear97 
2.14.3比較兩個版本的clear97 
2.15高級內容:編譯C語言和解釋Java語言98 
2.16實例:ARMv7(32位)指令集98 
2.16.1尋址模式99 
2.16.2比較和條件分支100 
2.16.3 ARM的特色100 
2.17實例:x86指令集102 
2.17.1 Intel x86的改進102
2.17.2 x86寄存器和數據尋址模式103 
2.17.3 x86整數操作105 
2.17.4 x86指令編碼107 
2.17.5 x86總結108 
2.18實例:ARMv8(64位)指令集108 
2.19謬誤與陷阱109 
2.20本章小結110 
2.21歷史觀點和拓展閱讀111 
2.22練習題112 

第3章計算機的算術運算117 
3.1引言117 
3.2加法和減法117 
3.3乘法121 
3.3.1順序的乘法算法和硬件121 
3.3.2有符號乘法124 
3.3. 3更快速的乘法124 
3.3.4 MIPS中的乘法124 
3.3.5小結125 
3.4除法125 
3.4.1除法算法及其硬件結構125 
3.4.2有符號除法128 
3.4.3更快速的除法128 
3.4.4 MIPS中的除法129 
3.4.5小結129 
3.5浮點運算130 
3.5.1浮點表示131 
3.5.2浮點加法135 
3.5.3浮點乘法138 
3.5.4 MIPS中的浮點指令139 
3.5.5算術精確性145
3.5.6小結146 
3.6並行性和計算機算術:子字並行148 
3.7實例:x86中流處理SIMD擴展和高級向量擴展149 
3.8加速:子字並行和矩陣乘法150 
3.9謬誤與陷阱153 
3.10本章小結155 
3.11歷史觀點和拓展閱讀158 
3.12練習題159 

第4章處理器162 
4.1引言162 
4.2邏輯設計的一般方法165 
4.3建立數據通路167 
4.4一個簡單的實現機制173 
4.4.1 ALU控制173 
4.4.2主控制單元的設計175 
4.4.3為什麼不使用單週期實現方式181 
4.5流水線概述182 
4.5.1面向流水線的指令集設計186 
4.5.2流水線冒險186 
4.5.3對流水線概述的小結191 
4.6流水線數據通路及其控制192 
4.6.1圖形化表示的流水線200 
4.6.2流水線控制203 
4.7數據冒險:旁路與阻塞206 
4.8控制冒險214 
4.8.1假定分支不發生215 
4.8.2縮短分支的延遲215 
4.8.3動態分支預測216 
4.8.4流水線小結220
4.9異常221 
4.9.1 MIPS體系結構中的異常處理221 
4.9.2在流水線實現中的異常222 
4.10指令級並行226 
4.10.1推測的概念227 
4.10.2靜態多發射處理器227 
4.10.3動態多發射處理器231 
4.10.4能耗效率與高級流水線233 
4.11實例:ARM Cortex—A8和Intel Core i7流水線234 
4.11.1 ARM Cortex—A8235 
4.11.2 Intel Core i7920236 
4.11.3 Intel Core i7920的性能238 
4.12運行更快:指令級並行和矩陣乘法240 
4.13高級主題:通過硬件設計語言描述和建模流水線來介紹數字設計以及更多流水線示例242 
4.14謬誤與陷阱242 
4.15本章小結243 
4.16歷史觀點和拓展閱讀243 
4.17練習題243 

第5章大容量和高速度:開發存儲器層次結構252 
5.1引言252 
5.2存儲器技術255 
5.2.1 SRAM技術256 
5.2.2 DRAM技術256 
5.2.3閃存258 
5.2.4磁盤存儲器258 
5.3 cache的基本原理259
5.3.1 cache訪問261 
5.3.2 cache缺失處理265 
5.3.3寫操作處理266 
5.3.4一個cache的例子:內置FastMATH處理器267 
5.3.5小結269 
5.4 cache性能的評估和改進270 
5.4.1通過更靈活地放置塊來減少cache缺失272 
5.4.2在cache中查找一個塊275 
5.4.3替換塊的選擇276 
5.4.4使用多級cache結構減少缺失代價277 
5.4.5通過分塊進行軟件優化280 
5.4.6小結283 
5.5可信存儲器層次283 
5.5.1失效的定義283 
5.5.2糾正一位錯、檢測兩位錯的漢明編碼(SEC/DED)284 
5.6虛擬機287 
5.6.1虛擬機監視器的必備條件289 
5.6.2指令集系統結構(缺乏)對虛擬機的支持289 
5.6.3保護和指令集系統結構289 
5.7虛擬存儲器290 
5.7.1頁的存放和查找293 
5.7.2缺頁故障294 
5.7.3關於寫297 
5.7.4加快地址轉換:TLB297 
5.7.5集成虛擬存儲器、TLB和cache 300 
5.7.6虛擬存儲器中的保護302
5.7.7處理TLB缺失和缺頁303 
5.7.8小結307 
5.8存儲器層次結構的一般框架309 
5.8.1問題1:一個塊可以被放在何處309 
5.8.2問題2:如何找到一個塊310 
5.8 .3問題3:當cache缺失時替換哪一塊311 
5.8.4問題4:寫操作如何處理311 
5.8.53C:一種理解存儲器層次結構行為的直觀模型312 
5.9使用有限狀態機來控制簡單的cache314 
5.9 .1一個簡單的cache314 
5.9.2有限狀態機315 
5.9.3一個簡單的cache控制器的有限狀態機316 
5.10並行與存儲器層次結構:cache一致性317 
5.10.1實現一致性的基本方案318 
5.10. 2監聽協議319 
5.11並行與存儲器層次結構:冗餘廉價磁盤陣列320 
5.12高級內容:實現cache控制器320 
5.13實例:ARM Cortex—A8和Intel Core i7的存儲器層次結構320 
5.14運行更快:cache分塊和矩陣乘法324 
5.15謬誤和陷阱326 
5.16本章小結329 
5.17歷史觀點和拓展閱讀329 
5.18練習題329
 
第6章從客戶端到雲的並行處 器340
6.1引言340 
6.2創建並行處理程序的難點342 
6.3 SISD、MIMD、SIMD、SPMD和向量機345 
6.3.1在x86中的SIMD:多媒體擴展346 
6.3.2向量機346 
6.3.3向量與標量的對比347 
6.3.4向量與多媒體擴展的對比348 
6.4硬件多線程350 
6.5多核和其他共享內存多處理器352 
6.6圖形處理單元簡介355 
6.6.1 NVIDIA GPU體系結構簡介356 
6.6.2 NVIDIA GPU存儲結構357 
6.6. 3 GPU展望358 
6.7集群、倉儲級計算機和其他消息傳遞多處理器360 
6.8多處理器網絡拓撲簡介363 
6.9與外界通信:集群網絡366 
6.10多處理器測試集程序和性能模型366 
6.10.1性能模型368 
6.10.2 Roofline模型369 
6.10.3兩代Opteron的比較370 
6.11實例:評測Intel Core i7960和NVIDIA Tesla GPU的Roofline模型373 
6.12運行更快:多處理器和矩陣乘法376 
6.13謬誤與陷阱378 
6.14本章小結379 
6.15歷史觀點和拓展閱讀381
6.16練習題382 

附錄A彙編器、鏈接器和SPIM仿真器389 
附錄B邏輯設計基礎437 
索引494