《計算機系統結構教程(第2版)》是由張晨曦、王志英、沈立、 李江峰、 劉依、 王偉編著,清華大學出版社2014年出版的“十二五”普通高等教育本科國家規劃教材、21世紀大學本科計算機專業系列教材、國家級精品課程教材、普通高等教育精品教材。該教材可作為高等院校計算機及相關專業的教學用書,也可供相關科技人員參考。
該教材共14章,由計算機系統結構的基礎知識、指令系統的設計、流水線技術、向量處理機、指令級並行及其開發——硬體方法、指令級並行的開發——軟體方法、存儲系統、輸入輸出系統、互連網路、多處理機、多核架構與編程、機群系統、陣列處理機、數據流計算機組成。
基本介紹
- 書名:計算機系統結構教程(第2版)
- 作者:張晨曦、王志英、沈立、 李江峰、 劉依、 王偉
- ISBN:9787302360384
- 類別:“十二五”普通高等教育本科國家規劃教材等
- 出版社:清華大學出版社
- 出版時間:2014年10月1日
- 裝幀:平裝
- 開本:16開
- 字數:633千字
- CIP核字號:2014065959
成書過程
修訂情況
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
魏江、江薛陽 | 何鳳霞 | 焦麗麗 | 沈露 |
內容簡介
教材目錄
第1章 計算機系統結構的基礎知識 | 5.5.4多流出處理器受到的限制148 | 9.1互連函式268 |
1.1計算機系統結構的基本概念1 | 5.5.5超流水線處理機149 | 9.1.1互連函式的表示方法268 |
1.1.1計算機系統的層次結構2 | 習題5152 | 9.1.2幾種基本的互連函式269 |
1.1.2計算機系統結構的定義3 | 第6章 指令級並行的開發——軟體方法 | 9.2互連網路的結構參數與性能指標273 |
1.1.3計算機組成和計算機實現3 | 6.1基本指令調度和循環展開154 | 9.2.1互連網路的結構參數273 |
1.1.4計算機系統結構的分類4 | 6.1.1指令調度的基本方法154 | 9.2.2互連網路的性能指標274 |
1.2計算機系統的設計7 | 6.1.2循環展開156 | 9.3靜態互連網路275 |
1.2.1計算機系統設計的定量原理7 | 6.2跨越基本塊的靜態指令調度158 | 9.4動態互連網路281 |
1.2.2計算機系統設計者的主要任務10 | 6.2.1全局指令調度158 | 9.4.1匯流排網路281 |
1.2.3計算機系統設計的主要方法12 | 6.2.2蹤跡調度161 | 9.4.2交叉開關網路282 |
1.3計算機系統的性能評測13 | 6.2.3超塊調度163 | 9.4.3多級互連網路283 |
1.4計算機系統結構的發展17 | 6.3靜態多指令流出:VLIW技術165 | 9.4.4動態互連網路的比較286 |
1.4.1馮·諾依曼結構及其改進17 | 6.4顯式並行指令計算167 | 9.5訊息傳遞機制287 |
1.4.2軟體對系統結構的影響19 | 6.4.1非綁定分支167 | 9.5.1訊息尋徑方案287 |
1.4.3器件發展對系統結構的影響21 | 6.4.2謂詞執行168 | 9.5.2死鎖與虛擬通道290 |
1.4.4套用對系統結構的影響22 | 6.4.3前瞻執行171 | 9.5.3流控制策略291 |
1.5計算機系統結構中並行性的發展23 | 6.5開發更多的指令級並行173 | 9.5.4選播和廣播尋徑算法294 |
1.5.1並行性的概念23 | 6.5.1挖掘更多的循環級並行174 | 習題9296 |
1.5.2提高並行性的技術途徑25 | 6.5.2軟流水179 | 第10章 多處理機 |
1.5.3單機系統中並行性的發展25 | 6.6實例:IA64體系結構182 | 10.1引言298 |
1.5.4多機系統中並行性的發展25 | 6.6.1IA64的指令格式183 | 10.1.1並行計算機系統結構的分類298 |
1.5.5並行機的發展變化26 | 6.6.2IA64的謂詞執行機制185 | 10.1.2存儲器系統結構和通信機制300 |
習題128 | 6.6.3IA64的前瞻執行機制186 | 10.1.3並行處理面臨的挑戰302 |
第2章 指令系統的設計 | 習題6187 | 10.2對稱式共享存儲器的系統結構304 |
2.1指令系統結構的分類30 | 第7章 存儲系統 | 10.2.1多處理機Cache一致性304 |
2.2定址方式32 | 7.1存儲系統的層次結構189 | 10.2.2實現一致性的基本方案305 |
2.3指令系統的設計和最佳化35 | 7.1.1存儲系統的層次結構概述189 | 10.2.3監聽協定的實現308 |
2.3.2控制指令36 | 7.1.2存儲系統的性能參數190 | 10.3分散式共享存儲器的系統結構312 |
2.3.1指令系統設計的基本原則35 | 7.1.3三級存儲系統191 | 10.3.1目錄協定的基本思想312 |
2.3.3指令操作碼的最佳化37 | 7.1.4存儲層次的4個問題193 | 10.3.2目錄協定實例315 |
2.3.4指令字格式的最佳化40 | 7.2Cache的基本知識193 | 10.3.3目錄的三種結構318 |
2.4指令系統的發展和改進42 | 7.2.1基本結構和原理193 | 10.4同步320 |
2.4.1沿CISC方向發展和改進指令系統42 | 7.2.2映像規則194 | 10.4.1基本硬體原語320 |
2.4.2沿RISC方向發展和改進指令系統44 | 7.2.3查找方法196 | 10.4.2用一致性實現鎖322 |
2.5運算元的類型和大小45 | 7.2.4Cache的工作過程198 | 10.4.3同步性能問題324 |
2.6MIPS指令系統結構47 | 7.2.5替換算法200 | 10.5同時多執行緒326 |
2.6.1MIPS的暫存器47 | 7.2.6寫策略203 | 10.5.1將執行緒級並行轉換為指令級並行327 |
2.6.2MIPS的數據表示47 | 7.2.7Cache性能分析204 | 10.5.2同時多執行緒處理器的設計328 |
2.6.3MIPS的數據定址方式47 | 7.2.8改進Cache性能206 | 10.5.3同時多執行緒的性能329 |
2.6.4MIPS的指令格式48 | 7.3降低Cache的不命中率207 | 10.6大規模並行處理機331 |
2.6.5MIPS的操作49 | 7.3.1三種類型的不命中207 | 10.6.1並行計算機系統結構331 |
2.6.6MIPS的控制指令50 | 7.3.2增加Cache塊大小209 | 10.6.2大規模並行處理機333 |
2.6.7MIPS的浮點操作51 | 7.3.3增加Cache的容量210 | 10.7多處理機實例1——T1335 |
習題251 | 7.3.4提高相聯度210 | 10.8多處理機實例2——Origin2000339 |
第3章 流水線技術 | 7.3.5偽相聯Cache211 | 習題10346 |
3.1流水線的基本概念53 | 7.3.6硬體預取212 | 第11章 多核架構與編程 |
3.1.1什麼是流水線53 | 7.3.7編譯器控制的預取212 | 11.1多核架構的需求347 |
3.1.2流水線的分類55 | 7.3.8編譯最佳化213 | 11.1.1功耗與散熱問題347 |
3.2流水線的性能指標58 | 7.3.9“犧牲”Cache215 | 11.1.2並行度問題348 |
3.2.1流水線的吞吐率58 | 7.4減少Cache不命中開銷216 | 11.1.3套用軟體問題349 |
3.2.2流水線的加速比60 | 7.4.1採用兩級Cache216 | 11.2多核架構349 |
3.2.3流水線的效率61 | 7.4.2讓讀不命中優先於寫219 | 11.2.1多核的組織架構350 |
3.2.4流水線的性能分析舉例62 | 7.4.3寫緩衝合併219 | 11.2.2多核架構實例351 |
3.2.5流水線設計中的若干問題64 | 7.4.4請求字處理技術220 | 11.3基於多核的並行程式設計354 |
3.3非線性流水線的調度64 | 7.4.5非阻塞Cache技術220 | 11.3.1並行編程模型354 |
3.3.1單功能非線性流水線的最優調度65 | 7.5減少命中時間221 | 11.3.2並行語言355 |
3.3.2多功能非線性流水線的調度67 | 7.5.1容量小、結構簡單的Cache221 | 11.3.3並行算法356 |
3.4流水線的相關與衝突70 | 7.5.2虛擬Cache221 | 11.4多核編程實例357 |
3.4.1一條經典的5段流水線70 | 7.5.3Cache訪問流水化224 | 習題11359 |
3.4.2相關與流水線衝突72 | 7.5.4蹤跡Cache224 | 第12章 機群系統 |
3.5流水線的實現83 | 7.5.5Cache最佳化技術總結224 | 12.1機群的基本結構361 |
3.5.1MIPS的一種簡單實現83 | 7.6並行主存系統225 | 12.1.1機群的硬體組成361 |
3.5.2基本的MIPS流水線86 | 7.6.1單體多字存儲器226 | 12.1.2機群的軟體362 |
習題390 | 7.6.2多體交叉存儲器227 | 12.2機群的特點363 |
第4章 向量處理機 | 7.6.3避免存儲體衝突231 | 12.3機群的分類364 |
4.1向量的處理方式94 | 7.7虛擬存儲器232 | 12.4典型機群系統簡介365 |
4.2向量處理機的結構96 | 7.7.1基本概念232 | 12.4.1BerkeleyNOW365 |
4.2.1“存儲器存儲器”結構96 | 7.7.2快速地址轉換技術233 | 12.4.2Beowulf366 |
4.2.2“暫存器暫存器”結構96 | 7.7.3頁式虛擬存儲器實例:64位Opteron的存儲管理234 | 12.4.3LAMP366 |
4.3提高向量處理機性能的常用技術98 | 7.8實例:AMDOpteron的存儲器層次結構236 | 12.4.4IBMSP2367 |
4.3.1設定多個功能部件99 | 習題7240 | 習題12368 |
4.3.2連結技術99 | 第8章 輸入輸出系統 | 第13章 陣列處理機 |
4.3.3分段開採技術102 | 8.1I/O系統的性能243 | 13.1陣列處理機的操作模型和特點370 |
4.3.4採用多處理機系統102 | 8.2I/O系統的可靠性、可用性和可信性244 | 13.2陣列處理機的基本結構371 |
4.4向量處理機的性能評價103 | 8.3廉價磁碟冗餘陣列245 | 13.2.1分散式存儲器的陣列機371 |
4.4.1向量指令的處理時間Tvp103 | 8.3.1RAID0247 | 13.2.2共享存儲器的陣列機372 |
4.4.2最大性能R∞和半性能向量長度n1/2106 | 8.3.2RAID1247 | 13.3陣列處理機實例373 |
4.4.3向量長度臨界值n瘙經106 | 8.3.3RAID2248 | 13.3.1實例1:IlliacⅣ陣列處理機373 |
4.5向量處理機實例107 | 8.3.4RAID3249 | 13.3.2實例2:BSP計算機376 |
4.5.1具有代表性的向量處理機107 | 8.3.5RAID4249 | 13.4陣列處理機的並行算法舉例380 |
4.5.2CrayYMP和C90107 | 8.3.6RAID5250 | 習題13384 |
4.5.3NECSXX44109 | 8.3.7RAID6250 | 第14章 數據流計算機 |
習題4110 | 8.3.8RAID10與RAID01251 | 14.1數據流計算機的基本原理385 |
第5章 指令級並行及其開發——硬體方法 | 8.3.9RAID的實現與發展251 | 14.1.1數據驅動原理385 |
5.1指令級並行的概念112 | 8.4匯流排252 | 14.1.2數據流計算機中指令的執行過程386 |
5.2相關與指令級並行113 | 8.4.1匯流排的設計253 | 14.1.3數據流計算機的指令結構387 |
5.3指令的動態調度114 | 8.4.2匯流排標準和實例254 | 14.2數據流程式圖和數據流語言387 |
5.3.1動態調度的基本思想114 | 8.4.3與CPU的連線255 | 14.2.1數據流程式圖387 |
5.3.2記分牌動態調度方法116 | 8.5通道處理機257 | 14.2.2數據流語言及其性質391 |
5.3.3Tomasulo算法123 | 8.5.1通道的作用和功能257 | 14.3數據流計算機結構392 |
5.4動態分支預測技術133 | 8.5.2通道的工作過程258 | 14.3.1靜態數據流計算機392 |
5.4.1採用分支歷史表134 | 8.5.3通道種類259 | 14.3.2動態數據流計算機394 |
5.4.2採用分支目標緩衝器135 | 8.5.4通道流量分析261 | 14.4數據流計算機的評價397 |
5.4.3基於硬體的前瞻執行137 | 8.6I/O與作業系統263 | 14.4.1數據流計算機的優點397 |
5.5多指令流出技術142 | 8.6.1DMA和虛擬存儲器263 | 14.4.2數據流計算機的缺點398 |
5.5.1基於靜態調度的多流出技術143 | 8.6.2I/O和Cache數據一致性264 | 14.4.3數據流計算機設計中需解決的問題399 |
5.5.2基於動態調度的多流出技術144 | 習題8266 | 習題14399 |
5.5.3超長指令字技術147 | 第9章 互連網路 | 主要參考文獻400 |
教學資源
- 配套教材
- 課程資源