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