計算機組成與設計:硬件/軟件接口(原書第5版ARM版)/(美
作 者: [美]大衛·A. 帕特森David A. Patterson 約翰·L.亨尼斯Joh 著 陳微 譯 譯
定 價: 139
出?版?社: 機械工業出版社
出版日期: 2018年10月01日
頁 數: 524
裝 幀: 平裝
ISBN: 9787111608943
●出版者的話贊譽譯者序前言作者簡介章 計算機的抽像與技術 11.1 引言 11.1.1 計算機應用的分類和特點 21.1.2 歡迎來到後PC時代 31.1.3 你能從本書中學到什麼 41.2 計算機體繫結構中的8個偉大思想 61.2.1 面向摩爾定律的設計 61.2.2 使用抽像簡化設計 71.2.3 加速大概率事件 71.2.4 通過並行提高性能 71.2.5 通過流水線提高性能 71.2.6 通過預測提高性能 71.2.7 存儲器層次結構 71.2.8 通過冗餘提高可靠性 71.3 程序表像之下 81.4 硬件包裝之下 101.4.1 顯示器 111.4.2 觸摸屏 121.4.3 打開機箱 131.4.4 數據的安全存儲 151.4.5 與其他計算機通信 161.5 處理器和存儲器制造技術 171.6 性能 201.6.1 性能的定義 201.6.2 性能的度量 221.6.3 CPU的性能及其度量因素 241.6.4 指令的性能 241.6.5 經典的CPU性能公式 251.7 功耗牆 281.8 滄海巨變:從單處理器向多處理器轉變 291.9 實例:Intel Core i7基準測試 321.9.1 SPEC CPU基準測試程序 321.9.2 SPEC功耗基準測試程序 341.10 謬誤與陷阱 341.11 本章小結 361.12 歷史觀點與拓展閱讀 371.13 練習題 38第2章 指令:計算機的語言 422.1 引言 422.2 計算機硬件的操作 442.3 計算機硬件的操作數 462.3.1 存儲器操作數 472.3.2 常數或立即數操作數 502.4 有符號數和無符號數 512.5 計算機中指令的表示 562.6 邏輯操作 612.7 決策指令 642.7.1 循環 652.7.2 邊界檢查的簡便方法 672.7.3 case/switch語句 672.8 計算機硬件對過程的支持 682.8.1 使用更多的寄存器 692.8.2 過程嵌套 712.8.3 在棧中為新數據分配空間 732.8.4 在堆中為新數據分配空間 742.9 人機交互 762.10 LEGv8中的寬立即數和地址的尋址 792.10.1 寬立即數 792.10.2 分支中的尋址 802.10.3 LEGv8尋址模式總結 822.10.4 機器語言解碼 822.11 並行與指令:同步 862.12 翻譯並啟動程序 882.12.1 編譯器 882.12.2 彙編器 892.12.3 鏈接器 902.12.4 加載器 922.12.5 動態鏈接庫 922.12.6 啟動Java程序 942.13 綜合實例:C排序程序 952.13.1 swap過程 952.13.2 sort過程 972.14 數組和指針 1012.14.1 用數組實現clear 1022.14.2 用指針實現clear 1022.14.3 比較兩個版本的clear 1032.15 不錯主題:編譯C和解釋Java 1042.16 實例:MIPS指令集 1042.17 實例:ARMv7(32位)指令集 1052.18 實例:x86指令集 1062.18.1 Intel x86的演進 1072.18.2 x86寄存器和數據尋址模式 1082.18.3 x86整數操作 1102.18.4 x86指令編碼 1122.18.5 x86總結 1122.19 實例:ARMv8指令集的其他部分 1132.19.1 完整的ARMv8整數算術邏輯指令 1142.19.2 完整的ARMv8整數數據傳輸指令 1162.19.3 完整的ARMv8分支指令 1172.20 謬誤與陷阱 1182.21 本章小結 1192.22 歷史觀點與拓展閱讀 1212.23 練習題 121第3章 計算機的算術運算 1283.1 引言 1283.2 加法和減法 1283.3 乘法 1313.3.1 順序乘法算法及硬件 1313.3.2 有符號乘法 1343.3.3 更快速的乘法 1343.3.4 LEGv8中的乘法 1343.3.5 小結 1353.4 除法 1353.4.1 除法算法及硬件 1353.4.2 有符號除法 1373.4.3 更快速的除法 1383.4.4 LEGv8中的除法 1383.4.5 小結 1393.5 浮點運算 1403.5.1 浮點表示 1413.5.2 異常和中斷 1423.5.3 IEEE 754浮點標準 1423.5.4 浮點加法 1453.5.5 浮點乘法 1483.5.6 LEGv8中的浮點指令 1503.5.7 算術精確性 1543.5.8 小結 1563.6 並行與計算機算術:子字並行 1573.7 實例:x86中的流處理SIMD擴展和不錯向量擴展 1583.8 實例:其他的ARMv8算術指令 1603.8.1 完整的ARMv8整數和浮點算術指令 1603.8.2 完整的ARMv8 SIMD指令 1613.9 加速:子字並行和矩陣乘法 1633.10 謬誤與陷阱 1663.11 本章小結 1683.12 歷史觀點與拓展閱讀 1713.13 練習題 171第4章 處理器 1754.1 引言 1754.1.1 一種基本的LEGv8實現 1764.1.2 實現概述 1764.2 邏輯設計的一般方法 1784.3 建立數據通路 1804.4 一種簡單的實現機制 1874.4.1 ALU控制 1874.4.2 主的設計 1884.4.3 數據通路的操作 1914.4.4 完成 1944.4.5 為什麼不使用單周期實現 1954.5 流水線概述 1974.5.1 面向流水線的指令集設計 2004.5.2 流水線冒險 2004.5.3 流水線概述小結 2064.6 流水線數據通路及其控制 2074.6.1 圖形化表示的流水線 2154.6.2 流水線控制 2184.7 數據冒險:旁路與阻塞 2214.8 控制冒險 2314.8.1 假定分支不發生 2314.8.2 減少分支延遲 2324.8.3 動態分支預測 2344.8.4 流水線小結 2364.9 異常 2364.9.1 LEGv8體繫結構中的異常處理 2374.9.2 流水線實現中的異常 2384.10 指令級並行 2414.10.1 推測的概念 2424.10.2 靜態多發射 2434.10.3 動態多發射 2464.10.4 動態流水線調度 2474.10.5 能耗效率與不錯流水線 2494.11 實例:ARM Cortex-A53和Intel Core i7流水線 2504.11.1 ARM Cortex-A53 2514.11.2 Intel Core i7 920 2534.11.3 Intel Core i7 920的性能 2554.12 加速:指令級並行和矩陣乘法 2564.13 不錯主題:采用硬件設計語言描述和建模流水線的數字設計技術以及更多流水線示例 2584.14 謬誤與陷阱 2584.15 本章小結 2594.16 歷史觀點與拓展閱讀 2604.17 練習題 260第5章 大容量和高速度:開發存儲器層次結構 2715.1 引言 2715.2 存儲器技術 2755.2.1 SRAM技術 2755.2.2 DRAM技術 2755.2.3 閃存 2775.2.4 磁盤存儲器 2775.3 cache的基本原理 2795.3.1 cache訪問 2805.3.2 cache缺失處理 2855.3.3 寫操作處理 2855.3.4 cache實例:Intrinsity FastMATH處理器 2875.3.5 小結 2895.4 cache性能的評估和改進 2895.4.1 通過更靈活的塊放置策略來減少cache缺失 2925.4.2 在cache中查找塊 2955.4.3 替換塊的選擇 2965.4.4 使用多級cache減少缺失代價 2975.4.5 通過分塊進行軟件優化 2995.4.6 小結 3035.5 可信存儲器層次結構 3035.5.1 失效的定義 3035.5.2 糾1檢2漢明碼(SEC/DED) 3055.6 虛擬機 3085.6.1 虛擬機監視器的要求 3095.6.2 指令集體繫結構(缺乏)對虛擬機的支持 3095.6.3 保護和指令集體繫結構 3105.7 虛擬存儲器 3105.7.1 頁的存放和查找 3135.7.2 缺頁故障 3155.7.3 用於大型虛擬地址的虛擬內存 3165.7.4 關於寫 3185.7.5 加快地址轉換:TLB 3185.7.6 Intrinsity FastMATH TLB 3195.7.7 集成虛擬存儲器、TLB和cache 3225.7.8 虛擬存儲器中的保護 3235.7.9 處理TLB缺失和缺頁 3245.7.10 小結 3265.8 存儲器層次結構的一般框架 3285.8.1 問題1:塊放在何處 3285.8.2 問題2:如何找到塊 3295.8.3 問題3:cache缺失時替換哪一塊 3305.8.4 問題4:寫操作如何處理 3305.8.5 3C:一種理解存儲器層次結構行為的直觀模型 3315.9 使用有限狀態機控制簡單的cache 3325.9.1 一個簡單的cache 3335.9.2 有限狀態機 3335.9.3 一個簡單cache控制器的有限狀態機 3355.10 並行與存儲器層次結構:cache一致性 3365.10.1 實現一致性的基本方案 3375.10.2 監聽協議 3375.11 並行與存儲器層次結構:廉價冗餘磁盤陣列 3395.12 不錯主題:實現cache控制器 3395.13 實例:ARM Cortex-A53和Intel Core i7的存儲器層次結構 3395.14 實例:ARMv8繫統的剩餘部分以及特殊指令 3435.15 加速:cache分塊和矩陣乘法 3455.16 謬誤與陷阱 3465.17 本章小結 3495.18 歷史觀點與拓展閱讀 3505.19 練習題 350第6章 並行處理器:從客戶端到雲 3626.1 引言 3626.2 創建並行處理程序的難點 3646.3 SISD、MIMD、SIMD、SPMD和向量 3676.3.1 x86中的SIMD:多媒體擴展 3686.3.2 向量 3686.3.3 向量與標量 3706.3.4 向量與多媒體擴展 3706.4 硬件多線程 3726.5 多核和其他共享內存多處理器 3756.6 圖形 3786.6.1 NVIDIA GPU體繫結構簡介 3796.6.2 NVIDIA GPU存儲結構 3806.6.3 正確理解GPU 3816.7 集群、倉儲式計算機和其他消息傳遞多處理器 3836.8 多處理器網絡拓撲簡介 3866.9 與外界通信:集群網絡 3896.10 多處理器基準測試程序和性能模型 3896.10.1 性能模型 3916.10.2 Roof?line模型 3926.10.3 兩代Opteron的比較 3936.11 實例:Intel Core i7 960 和NVIDIA Tesla GPU的評測及Roof?line模型 3966.12 加速:多處理器和矩陣乘法 3996.13 謬誤與陷阱 4026.14 本章小結 4036.15 歷史觀點與拓展閱讀 4056.16 練習題 405附錄A 邏輯設計基礎 414索引 470網絡內容附錄B 圖形附錄C 控制器的硬件實現附錄D RISC指令集體繫結構術語表擴展閱讀
內容簡介
本書由2017年圖靈獎得主Patterson和Hennessy共同撰寫,是計算機體繫結構領域的經典教材,強調軟硬件協同設計及其對性能的影響。本書采用ARMv8體繫結構,講解硬件技術、彙編語言、計算機算術運算、流水線、存儲器層次結構以及I/O的基本原理。新內容涵蓋平板電腦、雲基礎設施、ARM(移動計算設備)以及x86(雲計算)體繫結構,新實例包括IntelCorei7、ARMCortex-A53以及NVIDIAFermiGPU。本書適合作為高等院校計算機專業的教材,也適合廣大專業技術人員參考。
[美]大衛·A. 帕特森David A. Patterson 約翰·L.亨尼斯Joh 著 陳微 譯 譯
戴維?A.帕特森(David A.Patterson),Patte rson與Hennessy共同榮獲了2017年度“圖靈獎”,以表彰他們在計算機體繫結構領域的開創性貢獻。Patte rson現為Google傑出工程師,之前為加州大學伯克利分校教授。他曾任ACM主席一職.目前是ACM和IEEE會士,美國藝術與科學院和計算機歷史博物館院士,並入選了美國國家工程院、國家科學院和硅谷工程名人堂。他領導了RISCI的設計與實現工作,並且是RAID項目的。
神秘是我們所能體驗的最美好的事物,它是所有真正的藝術和科學的源泉。—阿爾伯特·愛因斯坦,《我的信仰》,1930年關於本書我們學習計算機科學與工程時,不僅需要了解這個領域內的最新進展,同時也需要掌握計算技術背後的基本原理和組成結構。計算機繫統的組成決定了繫統的功能和性能,是繫統成功與否的關鍵。因此,計算領域各個方向的讀者都能從計算機繫統組成理論的學習中受益。隨著現代計算機技術的發展,計算領域的各個方向都需要對硬件和軟件均有深入理解的專業人士。硬件和軟件在各個層次上的相互關繫,為理解計算技術的基本原理提供了框架。無論你感興趣的是硬件還是軟件,是計算機科學還是電氣工程,計算機組成與設計的核心思想都是相同的。因此,本書著重展示計算機硬件與軟件間的相互關繫,並重點介紹當今計算機中的基礎概念。當前,微處理器由單核發展為多核,這一趨勢印證了本書自版就提出的觀點。過去,程序員可以忽略我們的建議,在計算機體......
"