計算機組成與設計:硬體/軟體接口(原書第5版)

《計算機組成與設計:硬體/軟體接口(原書第5版)》是2018年4月機械工業出版社出版的圖書,作者是[美]戴維A.帕特森。

基本介紹

  • 書名:計算機組成與設計:硬體/軟體接口(原書第5版)
  • 作者:[美]戴維A.帕特森
  • ISBN:978-7-111-50482-5
  • 定價:99.0
  • 出版時間:2018-04-08
  • 開本:16開
內容簡介,目錄,

內容簡介

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

目錄

目 錄
出版者的話
本書讚譽
譯者序
前言
作者簡介
第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.1 32位立即數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 i7 920236
4.11.3 Intel Core i7 920的性能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.5 3C:一種理解存儲器層次結構行為的直觀模型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 i7 960和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

相關詞條

熱門詞條

聯絡我們