本書論述比較成熟的現(xiàn)代計算機體系結構的基本概念、基本原理和基本分析方法,并特別強調采用量化評測的分析技術和方法。本書共8章,主要內容包括計算機體系結構的基本概念、指令系統(tǒng)、流水線技術、指令級并行、存儲層次、輸入輸出系統(tǒng)、多處理機、集群計算機。
本書語言簡練,深入淺出,通俗易懂,適合作為高等學校計算機科學與技術學科各專業(yè)以及自動化、電子工程等相關專業(yè)本科生、研究生的教材,也可作為計算機領域工程技術人員的參考書。
本書由獲首屆全國優(yōu)秀教材建設獎一等獎作者團隊傾力寫作!本書是國家101計劃計算機領域核心課教材!是國家精品課程計算機體系結構的指定教材,同時也是高等學校計算機專業(yè)本科生及研究生計算機體系結構課程的通用教材。本書重點論述了現(xiàn)代大多數(shù)計算機都采用的比較成熟的思想、結構和方法等,同時借鑒了國際上公認的計算機系統(tǒng)結構高水平教材。
計算機體系結構強調從總體結構、系統(tǒng)分析的角度來研究計算機系統(tǒng),因此本書特別強調從系統(tǒng)層次上學習和了解計算機。通過本書的學習,讀者能把在計算機組成原理、數(shù)據(jù)結構、操作系統(tǒng)、匯編語言程序設計等課程中所學的軟件、硬件知識有機地結合起來,從而建立起計算機系統(tǒng)的完整概念。
本書除了著重論述體系結構的基本概念、基本原理、基本結構和基本分析方法以外,還特別強調了采用量化的分析方法。這種方法能更具體、實際地分析和設計計算機體系結構。書中用了大量的例題說明如何進行量化分析。在本書中,體系結構的概念用于描述計算機系統(tǒng)設計的技術、方法和理論。主要包括計算機指令系統(tǒng)、計算機組成和計算機硬件實現(xiàn)三個方面。涵蓋了處理器和多處理器、存儲器、輸入輸出系統(tǒng)、互連與通信等計算機系統(tǒng)設計的主要內容,同時還涉及性能評價、編譯和操作系統(tǒng)技術。
本書是國家一流課程計算機體系結構的指定教材,同時也是高等學校計算機專業(yè)本科生及研究生計算機體系結構課程的通用教材。本書重點論述了現(xiàn)代大多數(shù)計算機采用的比較成熟的思想、結構和方法等,同時借鑒了國際上公認的計算機系統(tǒng)結構高水平教材。
計算機體系結構強調從總體結構、系統(tǒng)分析的角度研究計算機系統(tǒng),因此本書特別強調從系統(tǒng)層次上學習和了解計算機。通過本書的學習,讀者能把前期學習的數(shù)理知識和在計算機組成原理數(shù)據(jù)結構操作系統(tǒng)編譯原理匯編語言程序設計等課程中所學的軟件、硬件知識融合起來,從而建立計算機系統(tǒng)的完整概念,并進行計算機系統(tǒng)設計和分析方法的訓練。
計算機體系結構的概念用于描述計算機系統(tǒng)設計的技術、方法和理論,涵蓋計算機指令系統(tǒng)、計算機組成和計算機硬件實現(xiàn)3方面。本書涵蓋處理器、多處理機、多計算機、存儲器、輸入輸出系統(tǒng)、互連與通信等計算機系統(tǒng)設計的主要內容,同時還涉及性能評價、編譯和操作系統(tǒng)技術。本書除了完整論述體系結構的知識,還包含計算機系統(tǒng)研究和設計的技術方法,特別是基于性能評測的量化分析技術,這部分是現(xiàn)代計算機體系結構設計科學化的核心之一,書中使用了大量量化分析的實例。
本書可讀性好,語言簡練,深入淺出,通俗易懂。全書共8章。
第1章論述計算機體系結構的基本概念以及體系結構和并行性概念的發(fā)展,討論影響計算機系統(tǒng)設計的成本與價格因素,并介紹性能評測的技術方法,對系統(tǒng)可靠性的概念進行了討論。
第2章論述計算機指令系統(tǒng)設計中的基礎問題,包括指令系統(tǒng)的分類、尋址方式、指令系統(tǒng)的設計和優(yōu)化、操作數(shù)的類型和大小、RISCⅤ指令系統(tǒng),對編譯器和體系結構的關系進行初步討論。
第3章論述流水線的基本概念和性能分析、典型流水線的結構設計和改進、流水線中的依賴關系問題和提高性能的基本技術,并對向量處理機的結構、特點、關鍵技術及性能評價方法進行討論。
第4章討論指令級并行,論述利用軟件、硬件技術開發(fā)程序中存在的指令間并行性的技術和方法,包括指令的靜態(tài)和動態(tài)調度、分支處理技術、超標量技術和超長指令字技術等,本次修訂增加了軟件流水的內容。
第5章討論存儲層次,論述Cache的基本知識、降低Cache失效率的方法、減少Cache失效開銷的方法以及減少命中時間的方法,并對主存的結構和組織以及虛擬存儲器的設計進行深入討論。
第6章討論輸入輸出系統(tǒng),論述外部存儲設備、I/O系統(tǒng)性能分析與評測、廉價磁盤冗余陣列RAID、I/O設備與CPU和存儲器的連接。
第7章討論多處理機,論述了多處理機的存儲器體系結構、互連網絡(包括片上網絡)、同步機制以及同時多線程技術,并討論了多處理機實例。
第8章討論集群計算機,講述集群的結構、軟件模型以及集群的分類,并介紹了典型的集群系統(tǒng)。
如果課時不多于60學時,本書的第4章和第8章的內容作為高級并行處理技術在本科學習中可以略過,對課程內容學習的完整性影響不大。同時,對于側重系統(tǒng)設計的本科專業(yè),建議將課堂教學課時安排為60小時以上,可以考慮將這兩章納入教學內容。在國防科技大學計算機專業(yè)本科80學時的計劃中,并沒有將第4章和第8章的內容系統(tǒng)化地納入,而是將相關內容進一步擴展后安排在研究生的高級計算機體系結構課程中學習和研究。
本書分工如下: 張春元編寫了第1章、第4章和第3章的部分內容,王志英編寫了第7章,沈立編寫了第2章、第8章和第3章的部分內容,肖曉強編寫了第6章,馬勝編寫了第5章。感謝王瓊對全書的習題和編排做出的貢獻。
本書每章后均有習題,供學習過程中進行基礎性、知識性訓練。
計算機體系結構課程是計算機大類專業(yè)的高階課程,在教學中,除了完成專業(yè)性知識學習和習題以外,還可以從問題出發(fā),研討計算機體系結構技術的產生和發(fā)展。如果有條件,可以結合當前計算機體系結構的前沿和熱點開展專題研討,以提升課程的高階性和吸引力。
本書配套資源包括習題、實驗、大作業(yè)等內容,作者為本次修訂更新了教學PPT,錄制了核心內容的視頻。無論是高校教師還是本科生或者研究生,均可從中找到適合的內容。
作者2025年3月
張春元,國防科技大學計算機學院教授、博導,國家計算機類專業(yè)工程教育專業(yè)認證專家組副秘書長,軍隊計算機專業(yè)教學聯(lián)席會主任委員。享有國務院頒發(fā)的政府特殊津貼。長期從事計算機體系結構、計算機應用等科研和教學工作。主持國家重點研發(fā)幾乎按項目、國家自然科學基金、國家自然科學基金重點項目、國家863高技術研究項目、國家973安全重大基礎研究項目、國家重點型號項目及企業(yè)合作等20多項,發(fā)表科研論文100余篇,出版學術專著2部,已獲授權專列10項。主講過10多門本科生和研究生課程,是國家精品課程計算機體系結構主講人之一、軍隊優(yōu)質課程和湖南省一流線下課程計算機體系結構負責人。撰寫教材3種,其中《計算機體系結構》獲得2021年全國首屆優(yōu)秀教材獎一等獎、2002年全國普通高等學校優(yōu)秀教材二等獎,發(fā)表教學論文10余篇,主編出版有《學位與研究生教育信息管理實踐與探索》。獲得國家科技進步二等獎1次,省部級科技進步獎多次,國家教學成果二等獎2次,省部級教學成果獎多次。
第1章計算機體系結構概述1
1.1計算機體系結構的概念1
1.1.1存儲程序計算機3
1.1.2計算機體系結構、組成和實現(xiàn)5
1.1.3計算機系統(tǒng)中的層次概念8
1.1.4系列機和兼容10
1.2計算機體系結構的發(fā)展12
1.2.1計算機分代、分型與分類13
1.2.2軟件的發(fā)展14
1.2.3應用的發(fā)展16
1.2.4相關核心技術產品的發(fā)展17
1.2.5計算機體系結構的發(fā)展20
1.2.6并行處理技術的發(fā)展22
1.2.7體系結構技術的挑戰(zhàn)28
1.3計算機系統(tǒng)設計和分析31
1.3.1成本和價格31
1.3.2性能評測的技術方法34
1.3.3基準測試程序36
1.3.4量化設計的基本原則39
1.4基本的可靠性模型43
1.4.1可靠性的基本概念43
1.4.2多部件系統(tǒng)的可靠性45
1.5小結48
習題148
第2章指令系統(tǒng)51
2.1指令系統(tǒng)的分類51
2.2尋址方式53
2.3指令系統(tǒng)的設計和優(yōu)化56
2.3.1指令系統(tǒng)設計的基本原則56
2.3.2控制指令57
2.3.3指令操作碼的優(yōu)化58
2.4指令系統(tǒng)的發(fā)展和改進592.4.1沿CISC方向發(fā)展和改進指令系統(tǒng)59
2.4.2沿RISC方向發(fā)展和改進指令系統(tǒng)61
2.5操作數(shù)的類型和大小63
2.6RISCⅤ指令系統(tǒng)64
2.6.1RISCⅤ的寄存器65
2.6.2RISCⅤ的數(shù)據(jù)類型65
2.6.3RISCⅤ的數(shù)據(jù)尋址方式66
2.6.4RISCⅤ的指令格式66
2.6.5RISCⅤ的操作67
2.6.6RISCⅤ的控制指令68
2.6.7RISCⅤ的浮點操作69
2.7小結70
習題271
第3章流水線技術73
3.1流水線概述73
3.1.1流水線的基本概念73
3.1.2流水線的分類75
3.2RISCⅤ基本流水線78
3.2.1RISCⅤ的一種簡單實現(xiàn)78
3.2.2基本RISCⅤ流水線82
3.2.3流水線性能分析85
3.3流水線中的依賴90
3.3.1流水線的結構依賴91
3.3.2流水線的數(shù)據(jù)依賴93
3.3.3流水線的控制依賴102
3.4流水線計算機實例分析109
3.4.1MIPS R4000的整型流水線109
3.4.2MIPS R4000的浮點流水線111
3.4.3MIPS R4000流水線的性能分析112
3.5向量處理機113
3.5.1向量處理方式和向量處理機113
3.5.2向量處理機實例分析116
3.6小結118
習題3119
第4章指令級并行性121
4.1指令級并行性的概念121
4.1.1循環(huán)展開調度的基本方法122
4.1.2依賴關系127
4.2指令的動態(tài)調度131
4.2.1動態(tài)調度的原理132
4.2.2動態(tài)調度算法之一: 記分牌133
4.2.3動態(tài)調度算法之二: Tomasulo算法140
4.3控制依賴的動態(tài)解決技術150
4.3.1分支預測緩沖151
4.3.2分支目標緩沖154
4.3.3前瞻執(zhí)行的硬件實現(xiàn)156
4.4多指令流出技術160
4.4.1靜態(tài)超標量技術161
4.4.2動態(tài)多指令流出技術163
4.4.3超長指令字技術165
4.4.4多指令流出處理器受到的限制167
4.5軟件流水168
4.6小結171
習題4172
第5章存儲層次175
5.1存儲器的層次結構175
5.1.1多級存儲層次175
5.1.2存儲層次的性能指標177
5.1.3兩種存儲層次關系177
5.1.4存儲層次的4個關鍵問題178
5.2Cache基本知識178
5.2.1映射規(guī)則178
5.2.2查找方法180
5.2.3替換算法182
5.2.4寫策略183
5.2.5Cache結構184
5.2.6Cache性能分析187
5.2.7改進Cache性能190
5.3降低Cache失效率的方法190
5.3.1調節(jié)Cache塊大小192
5.3.2提高相聯(lián)度194
5.3.3犧牲Cache195
5.3.4硬件預取196
5.3.5編譯器控制的預取197
5.3.6編譯器優(yōu)化199
5.4減少Cache失效開銷的方法203
5.4.1寫緩沖及寫合并203
5.4.2讓讀失效優(yōu)先于寫204
5.4.3請求字處理204
5.4.4多級Cache205
5.4.5非阻塞Cache208
5.5減少Cache命中時間的方法210
5.5.1容量小、結構簡單的Cache210
5.5.2虛擬Cache211
5.5.3訪問流水化213
5.5.4多體Cache213
5.5.5路預測213
5.5.6蹤跡Cache214
5.5.7Cache優(yōu)化技術總結214
5.6主存215
5.6.1存儲器組織技術215
5.6.2存儲器芯片技術219
5.7虛擬存儲器227
5.7.1虛擬存儲器基本原理227
5.7.2快表229
5.7.3虛存和Cache關系的例子230
5.8虛存保護和虛存實例231
5.8.1進程保護技術231
5.8.2頁式虛存舉例: 64位Opteron232
5.8.3虛擬機保護234
5.9綜合例子239
5.9.1AMD Opteron存儲層次239
5.9.2Intel Core i7 6700存儲層次241
5.10小結245
習題5246
第6章輸入輸出系統(tǒng)249
6.1引言249
6.1.1I/O處理對計算機總體性能的影響249
6.1.2I/O系統(tǒng)的可靠性250
6.2外部存儲設備251
6.2.1磁盤設備251
6.2.2Flash存儲器與固態(tài)硬盤255
6.2.3磁帶設備256
6.2.4光盤設備258
6.3I/O系統(tǒng)性能分析與評測260
6.3.1I/O性能與系統(tǒng)響應時間260
6.3.2Little定律262
6.3.3M/M/1排隊系統(tǒng)263
6.3.4M/M/m排隊系統(tǒng)264
6.3.5I/O基準測試程序265
6.4I/O系統(tǒng)的可靠性、可用性和可信性267
6.5廉價磁盤冗余陣列269
6.5.1RAID0271
6.5.2RAID1272
6.5.3RAID2273
6.5.4RAID3274
6.5.5RAID4275
6.5.6RAID5276
6.5.7RAID6277
6.5.8RAID的實現(xiàn)與發(fā)展278
6.6I/O設備與CPU、存儲器的連接總線279
6.6.1總線設計應考慮的因素279
6.6.2總線標準和實例281
6.6.3設備的總線連接282
6.7通道283
6.7.1通道的功能284
6.7.2通道的工作過程284
6.7.3通道的種類286
6.8I/O與操作系統(tǒng)286
6.8.1DMA和虛擬存儲器287
6.8.2I/O和Cache數(shù)據(jù)一致性287
6.8.3異步I/O289
6.8.4文件信息的維護289
6.9小結289
習題6290
第7章多處理機293
7.1引言293
7.1.1并行計算機體系結構的分類293
7.1.2通信模型和存儲器的結構模型295
7.1.3并行處理面臨的挑戰(zhàn)297
7.2集中式共享存儲器體系結構299
7.2.1多處理機Cache一致性299
7.2.2實現(xiàn)一致性的基本方案300
7.2.3監(jiān)聽協(xié)議及其實現(xiàn)302
7.3分布式共享存儲器體系結構303
7.3.1基于目錄的Cache一致性304
7.3.2目錄協(xié)議及其實現(xiàn)306
7.4互連網絡307
7.4.1互連網絡的性能參數(shù)307
7.4.2靜態(tài)互連網絡310
7.4.3動態(tài)連接網絡313
7.4.4片上網絡317
7.5同步320
7.5.1基本硬件原語320
7.5.2用一致性實現(xiàn)鎖321
7.5.3同步性能問題323
7.5.4大規(guī)模計算機的同步325
7.6同時多線程328
7.6.1將線程級并行轉換為指令級并行329
7.6.2同時多線程處理器的設計330
7.6.3同時多線程的性能331
7.7并行處理器的性能評測333
7.8多處理機實例334
7.8.1多核處理器及性能對比334
7.8.2實例: Origin 2000339
7.9小結340
習題7341
第8章集群計算機343
8.1集群的基本概念和結構343
8.1.1集群的基本結構343
8.1.2集群的軟件模型344
8.2集群的特點346
8.3集群的分類346
8.4典型集群系統(tǒng)簡介348
8.4.1Berkeley NOW348
8.4.2Beowulf348
8.4.3LAMP349
8.4.4IBM SP2349
8.4.5天河二號351
8.5小結355
習題8355
參考文獻356