計算機系統結構教程(第2版)

計算機系統結構教程(第2版)

本書借鑑了國內和國外最經典的相關教材,系統地論述了計算機系統結構的基本概念、基本結構、基本方法等,強調從開發並行性的角度、用量化分析(性能評價)的方法來研究和分析計算機系統。

圖書簡介

全書共有14章。第1章論述基本概念、並行性的發展和定量分析基礎。第2章論述計算機指令系統的設計和MIPS指令系統。第3章論述流水線技術,包括性能分析、調度、相關和衝突以及流水線的實現。第4章論述向量處理機的結構、特點和性能評價。第5章和第6章分別論述如何用硬體和軟體的方法來開發指令級並行性,包括記分牌和Tomasulo算法、基於硬體的前瞻執行、多指令流出技術、循環展開、VLIW、EPIC等。第7章論述存儲系統,重點論述Cache的基本知識及提高Cache性能的各種方法。第8章論述匯流排、通道處理機和RAID。第9章論述互連網路的特性參數、靜/動態互連網路以及訊息傳遞機制等。第10章論述SMP、DSM、MPP等並行計算機系統結構,論述多Cache一致性、同步、同時多執行緒。第11章論述多核架構、實例以及基於多核的並行程式設計。最後三章分別論述機群系統、陣列處理機、數據流計算機。

本書內容豐富,實例具體,語言簡練,可讀性好,可作為高等院校計算機及相關專業的教學用書,也可供相關科技人員參考。

目錄

第1章計算機系統結構的基礎知識1

1.1計算機系統結構的基本概念1

1.1.1計算機系統的層次結構2

1.1.2計算機系統結構的定義3

1.1.3計算機組成和計算機實現3

1.1.4計算機系統結構的分類4

1.2計算機系統的設計7

1.2.1計算機系統設計的定量原理7

1.2.2計算機系統設計者的主要任務10

1.2.3計算機系統設計的主要方法12

1.3計算機系統的性能評測13

1.4計算機系統結構的發展17

1.4.1馮·諾依曼結構及其改進17

1.4.2軟體對系統結構的影響19

1.4.3器件發展對系統結構的影響21

1.4.4套用對系統結構的影響22

1.5計算機系統結構中並行性的發展23

1.5.1並行性的概念23

1.5.2提高並行性的技術途徑25

1.5.3單機系統中並行性的發展25

1.5.4多機系統中並行性的發展25

1.5.5並行機的發展變化26

習題128

第2章指令系統的設計30

2.1指令系統結構的分類30

2.2定址方式32

2.3指令系統的設計和最佳化35

2.3.1指令系統設計的基本原則35目錄計算機系統結構教程(第2版)2.3.2控制指令36

2.3.3指令操作碼的最佳化37

2.3.4指令字格式的最佳化40

2.4指令系統的發展和改進42

2.4.1沿CISC方向發展和改進指令系統42

2.4.2沿RISC方向發展和改進指令系統44

2.5運算元的類型和大小45

2.6MIPS指令系統結構47

2.6.1MIPS的暫存器47

2.6.2MIPS的數據表示47

2.6.3MIPS的數據定址方式47

2.6.4MIPS的指令格式48

2.6.5MIPS的操作49

2.6.6MIPS的控制指令50

2.6.7MIPS的浮點操作51

習題251

第3章流水線技術53

3.1流水線的基本概念53

3.1.1什麼是流水線53

3.1.2流水線的分類55

3.2流水線的性能指標58

3.2.1流水線的吞吐率58

3.2.2流水線的加速比60

3.2.3流水線的效率61

3.2.4流水線的性能分析舉例62

3.2.5流水線設計中的若干問題64

3.3非線性流水線的調度64

3.3.1單功能非線性流水線的最優調度65

3.3.2多功能非線性流水線的調度67

3.4流水線的相關與衝突70

3.4.1一條經典的5段流水線70

3.4.2相關與流水線衝突72

3.5流水線的實現83

3.5.1MIPS的一種簡單實現83

3.5.2基本的MIPS流水線86

習題390

第4章向量處理機94

4.1向量的處理方式94

4.2向量處理機的結構96

4.2.1“存儲器存儲器”結構96

4.2.2“暫存器暫存器”結構96

4.3提高向量處理機性能的常用技術98

4.3.1設定多個功能部件99

4.3.2連結技術99

4.3.3分段開採技術102

4.3.4採用多處理機系統102

4.4向量處理機的性能評價103

4.4.1向量指令的處理時間Tvp103

4.4.2最大性能R∞和半性能向量長度n1/2106

4.4.3向量長度臨界值n瘙經106

4.5向量處理機實例107

4.5.1具有代表性的向量處理機107

4.5.2Cray YMP和C90107

4.5.3NEC SXX44109

習題4110

第5章指令級並行及其開發——硬體方法112

5.1指令級並行的概念112

5.2相關與指令級並行113

5.3指令的動態調度114

5.3.1動態調度的基本思想114

5.3.2記分牌動態調度方法116

5.3.3Tomasulo算法123

5.4動態分支預測技術133

5.4.1採用分支歷史表134

5.4.2採用分支目標緩衝器135

5.4.3基於硬體的前瞻執行137

5.5多指令流出技術142

5.5.1基於靜態調度的多流出技術143

5.5.2基於動態調度的多流出技術144

5.5.3超長指令字技術147

5.5.4多流出處理器受到的限制148

5.5.5超流水線處理機149

習題5152

第6章指令級並行的開發——軟體方法154

6.1基本指令調度和循環展開154

6.1.1指令調度的基本方法154

6.1.2循環展開156

6.2跨越基本塊的靜態指令調度158

6.2.1全局指令調度158

6.2.2蹤跡調度161

6.2.3超塊調度163

6.3靜態多指令流出: VLIW技術165

6.4顯式並行指令計算167

6.4.1非綁定分支167

6.4.2謂詞執行168

6.4.3前瞻執行171

6.5開發更多的指令級並行173

6.5.1挖掘更多的循環級並行174

6.5.2軟流水179

6.6實例: IA64體系結構182

6.6.1IA64的指令格式183

6.6.2IA64的謂詞執行機制185

6.6.3IA64的前瞻執行機制186

習題6187

第7章存儲系統189

7.1存儲系統的層次結構189

7.1.1存儲系統的層次結構概述189

7.1.2存儲系統的性能參數190

7.1.3三級存儲系統191

7.1.4存儲層次的4個問題193

7.2Cache的基本知識193

7.2.1基本結構和原理193

7.2.2映像規則194

7.2.3查找方法196

7.2.4Cache的工作過程198

7.2.5替換算法200

7.2.6寫策略203

7.2.7Cache性能分析204

7.2.8改進Cache性能206

7.3降低Cache的不命中率207

7.3.1三種類型的不命中207

7.3.2增加Cache塊大小209

7.3.3增加Cache的容量210

7.3.4提高相聯度210

7.3.5偽相聯Cache211

7.3.6硬體預取212

7.3.7編譯器控制的預取212

7.3.8編譯最佳化213

7.3.9“犧牲”Cache215

7.4減少Cache不命中開銷216

7.4.1採用兩級Cache216

7.4.2讓讀不命中優先於寫219

7.4.3寫緩衝合併219

7.4.4請求字處理技術220

7.4.5非阻塞Cache技術220

7.5減少命中時間221

7.5.1容量小、結構簡單的Cache221

7.5.2虛擬Cache221

7.5.3Cache訪問流水化224

7.5.4蹤跡Cache224

7.5.5Cache最佳化技術總結224

7.6並行主存系統225

7.6.1單體多字存儲器226

7.6.2多體交叉存儲器227

7.6.3避免存儲體衝突231

7.7虛擬存儲器232

7.7.1基本概念232

7.7.2快速地址轉換技術233

7.7.3頁式虛擬存儲器實例: 64位Opteron的存儲管理234

7.8實例: AMD Opteron的存儲器層次結構236

習題7240

第8章輸入輸出系統243

8.1I/O系統的性能243

8.2I/O系統的可靠性、可用性和可信性244

8.3廉價磁碟冗餘陣列245

8.3.1RAID0247

8.3.2RAID1247

8.3.3RAID2248

8.3.4RAID3249

8.3.5RAID4249

8.3.6RAID5250

8.3.7RAID6250

8.3.8RAID10與RAID01251

8.3.9RAID的實現與發展251

8.4匯流排252

8.4.1匯流排的設計253

8.4.2匯流排標準和實例254

8.4.3與CPU的連線255

8.5通道處理機257

8.5.1通道的作用和功能257

8.5.2通道的工作過程258

8.5.3通道種類259

8.5.4通道流量分析261

8.6I/O與作業系統263

8.6.1DMA和虛擬存儲器263

8.6.2I/O和Cache數據一致性264

習題8266

第9章互連網路268

9.1互連函式268

9.1.1互連函式的表示方法268

9.1.2幾種基本的互連函式269

9.2互連網路的結構參數與性能指標273

9.2.1互連網路的結構參數273

9.2.2互連網路的性能指標274

9.3靜態互連網路275

9.4動態互連網路281

9.4.1匯流排網路281

9.4.2交叉開關網路282

9.4.3多級互連網路283

9.4.4動態互連網路的比較286

9.5訊息傳遞機制287

9.5.1訊息尋徑方案287

9.5.2死鎖與虛擬通道290

9.5.3流控制策略291

9.5.4選播和廣播尋徑算法294

習題9296

第10章多處理機298

10.1引言298

10.1.1並行計算機系統結構的分類298

10.1.2存儲器系統結構和通信機制300

10.1.3並行處理面臨的挑戰302

10.2對稱式共享存儲器的系統結構304

10.2.1多處理機Cache一致性304

10.2.2實現一致性的基本方案305

10.2.3監聽協定的實現308

10.3分散式共享存儲器的系統結構312

10.3.1目錄協定的基本思想312

10.3.2目錄協定實例315

10.3.3目錄的三種結構318

10.4同步320

10.4.1基本硬體原語320

10.4.2用一致性實現鎖322

10.4.3同步性能問題324

10.5同時多執行緒326

10.5.1將執行緒級並行轉換為指令級並行327

10.5.2同時多執行緒處理器的設計328

10.5.3同時多執行緒的性能329

10.6大規模並行處理機331

10.6.1並行計算機系統結構331

10.6.2大規模並行處理機333

10.7多處理機實例1——T1335

10.8多處理機實例2——Origin 2000339

習題10346

第11章多核架構與編程347

11.1多核架構的需求347

11.1.1功耗與散熱問題347

11.1.2並行度問題348

11.1.3套用軟體問題349

11.2多核架構349

11.2.1多核的組織架構350

11.2.2多核架構實例351

11.3基於多核的並行程式設計354

11.3.1並行編程模型354

11.3.2並行語言355

11.3.3並行算法356

11.4多核編程實例357

習題11359

第12章機群系統360

12.1機群的基本結構361

12.1.1機群的硬體組成361

12.1.2機群的軟體362

12.2機群的特點363

12.3機群的分類364

12.4典型機群系統簡介365

12.4.1Berkeley NOW365

12.4.2Beowulf366

12.4.3LAMP366

12.4.4IBM SP2367

習題12368

第13章陣列處理機370

13.1陣列處理機的操作模型和特點370

13.2陣列處理機的基本結構371

13.2.1分散式存儲器的陣列機371

13.2.2共享存儲器的陣列機372

13.3陣列處理機實例373

13.3.1實例1: Illiac Ⅳ陣列處理機373

13.3.2實例2: BSP計算機376

13.4陣列處理機的並行算法舉例380

習題13384

第14章數據流計算機385

14.1數據流計算機的基本原理385

14.1.1數據驅動原理385

14.1.2數據流計算機中指令的執行過程386

14.1.3數據流計算機的指令結構387

14.2數據流程式圖和數據流語言387

14.2.1數據流程式圖387

14.2.2數據流語言及其性質391

14.3數據流計算機結構392

14.3.1靜態數據流計算機392

14.3.2動態數據流計算機394

14.4數據流計算機的評價397

14.4.1數據流計算機的優點397

14.4.2數據流計算機的缺點398

14.4.3數據流計算機設計中需解決的問題399

習題14399

主要參考文獻400

相關詞條

熱門詞條

聯絡我們