現(xiàn)代計算機組成與體系結(jié)構(gòu)
定 價:119 元
叢書名:計算機科學叢書
當前圖書已被 41 所學校薦購過!
查看明細
- 作者:王黨輝
- 出版時間:2022/3/1
- ISBN:9787111701088
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP303
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書對現(xiàn)代計算設備進行了介紹,包括其中可能出現(xiàn)的每一項重要技術和子系統(tǒng),并闡釋其與其他系統(tǒng)部件之間的關系。全書分為三部分。第1部分介紹計算機體系結(jié)構(gòu)基礎知識,包括計算機體系結(jié)構(gòu)的基本概念、數(shù)字邏輯、處理器元件、計算機系統(tǒng)組件、硬件軟件接口、專用計算領域。第二部分介紹處理器體系結(jié)構(gòu)和指令集,涉及處理器和存儲器體系結(jié)構(gòu)、性能增強技術、專用處理器擴展、現(xiàn)代處理器體系結(jié)構(gòu)和指令集、RISC-V體系結(jié)構(gòu)和指令集。第三部分介紹計算機體系結(jié)構(gòu)的應用,包括處理器虛擬化、具體的應用程序類別(包括移動設備、個人電腦、游戲系統(tǒng)、互聯(lián)網(wǎng)搜索引擎和神經(jīng)網(wǎng)絡)、計算機體系結(jié)構(gòu)未來的方向。讀完本書,讀者將掌握目前在廣泛多樣的數(shù)字系統(tǒng)中所使用的計算機體系結(jié)構(gòu)。
作為一名軟件開發(fā)人員、系統(tǒng)設計師或計算機體系結(jié)構(gòu)專業(yè)的學生,當你探索數(shù)字設備體系結(jié)構(gòu)時,是否被其復雜性擊垮?本書將幫助你學習現(xiàn)代計算機系統(tǒng)的工作原理——從晶體管開關到協(xié)作多處理器服務器。在本書中,你將深入學習處理器的內(nèi)部行為,以設計更高效、可擴展性更好的軟件系統(tǒng)。
本書全面介紹了計算機系統(tǒng)的基礎知識,包括晶體管、邏輯門、時序邏輯和指令操作。你將了解現(xiàn)代處理器體系結(jié)構(gòu)以及包括x86、x64、ARM和RISC-V在內(nèi)的指令集,還會看到如何在低成本的FPGA板上實現(xiàn)RISC-V處理器,以及如何編寫量子計算程序并在實際的量子計算機上運行。讀完本書,你將深入理解現(xiàn)代處理器和計算機體系結(jié)構(gòu),并了解其未來的發(fā)展方向。
學完本書,你將能夠:
? 掌握晶體管技術和數(shù)字電路原理。
? 理解計算機處理器的基本功能單元。
? 理解流水線和超標量執(zhí)行。
? 學會使用浮點數(shù)據(jù)格式。
? 理解管理員模式的目的和操作。
? 在低成本的FPGA板上實現(xiàn)完整的RISC-V處理器。
? 了解虛擬機實現(xiàn)的相關技術。
? 編寫量子計算程序并在量子計算機上運行。
本書介紹了在現(xiàn)代處理器和計算機體系結(jié)構(gòu)中使用的關鍵技術和組件,并針對具體需求討論了不同體系結(jié)構(gòu)的決策如何影響計算機的配置優(yōu)化。
簡單來說,現(xiàn)代計算機是一種復雜的設備。然而,當以層次化的方式來看時,每一層的復雜功能就變得明晰了。本書涵蓋了眾多主題,但只對各個主題進行有限深度的探討。本書的目標是對現(xiàn)代計算設備進行簡單明了的介紹,包括其中可能出現(xiàn)的每一項重要技術和每一個子系統(tǒng),并闡釋設備與其他系統(tǒng)組件之間的關系。
本書不會提供一份冗長的參考書單,如果讀者想深入閱讀,可以自行在互聯(lián)網(wǎng)上查找相關內(nèi)容。
學完本書,讀者將掌握目前在廣泛多樣的數(shù)字系統(tǒng)中所使用的計算機體系結(jié)構(gòu),還將了解體系結(jié)構(gòu)的發(fā)展趨勢,以及未來幾年可能出現(xiàn)的一些顛覆性技術,這些突破或許會極大地影響計算系統(tǒng)體系結(jié)構(gòu)的發(fā)展。
目標讀者
本書適用于軟件開發(fā)人員、計算機專業(yè)學生、系統(tǒng)設計師、計算機科學家、逆向工程師,以及所有希望理解現(xiàn)代計算機系統(tǒng)(從微型嵌入式設備到智能手機,再到倉儲規(guī)模的云服務器群等)的體系結(jié)構(gòu)和設計原則的人。
本書內(nèi)容
本書共14章,各章主要內(nèi)容如下:
第1章從自動化計算設備的簡史開始,介紹了推動設備性能飛躍的重大技術進步。之后討論了摩爾定律,評估了其在過去幾十年的適用性和對未來的影響。后以6502微處理器為例,介紹了計算機體系結(jié)構(gòu)的基本概念。
第2章介紹了作為開關元件的晶體管,并解釋了其在構(gòu)造邏輯門中的應用。然后介紹了如何結(jié)合簡單的門來構(gòu)建觸發(fā)器和寄存器。該章還介紹了時序邏輯(即包含狀態(tài)信息的邏輯),后討論了時鐘數(shù)字電路。
第3章從通用處理器的概念性描述開始介紹組成處理器的要素。該章討論了指令集、寄存器集、指令加載、解碼、執(zhí)行和排序的概念,還討論了內(nèi)存的加載和存儲操作。該章還涵蓋了分支指令及其在循環(huán)處理和條件處理中的應用。后介紹了導致中斷處理和I/O操作的一些實際因素。
第4章討論了包括多級緩存在內(nèi)的計算機存儲及其與處理器的接口,講述了包括中斷處理、緩沖和專用I/O處理器在內(nèi)的I/O需求。該章還討論了鍵盤、鼠標、顯示器和網(wǎng)絡接口等I/O設備的一些特定需求。后給出了這些組件在現(xiàn)代計算機應用中的實例,包括智能移動設備、個人計算機、游戲系統(tǒng)、云服務器和專用機器學習系統(tǒng)。
第5章討論了如何實現(xiàn)計算機操作系統(tǒng)必須提供的高級服務,包括磁盤I/O、網(wǎng)絡通信以及與用戶交互。該章描述了從處理器指令集和寄存器級別開始實現(xiàn)這些特性的軟件層。后介紹了引導、多處理和多線程等操作系統(tǒng)功能。
第6章探索了對大多數(shù)用戶不直接可見的計算領域,包括實時系統(tǒng)、數(shù)字信號處理和GPU處理。該章還討論了與每個計算領域相關的特定需求,并介紹了實現(xiàn)這些特性的現(xiàn)代設備。
第7章深入研究了馮·諾依曼體系結(jié)構(gòu)、哈佛體系結(jié)構(gòu)和改進型哈佛體系結(jié)構(gòu)等現(xiàn)代處理器體系結(jié)構(gòu)。該章討論了分頁虛擬內(nèi)存的實現(xiàn),介紹了內(nèi)存管理功能在計算機體系結(jié)構(gòu)中的實際實現(xiàn),并描述了內(nèi)存管理單元的功能。
第8章討論了計算機系統(tǒng)中的性能提升技術,這些技術旨在使系統(tǒng)達到峰值執(zhí)行速度。該章主要介紹提高系統(tǒng)性能的重要技術,包括緩存、指令流水線、指令并行和SIMD處理。
第9章重點關注通常在處理器指令集級別實現(xiàn)的擴展,以提供超出一般數(shù)據(jù)處理需求的附加系統(tǒng)功能。提供的擴展包括特權(quán)模式、浮點數(shù)、功耗管理和系統(tǒng)安全管理。
第10章研究了現(xiàn)代處理器(x86、x64和ARM等)設計中的體系結(jié)構(gòu)和指令集特性。處理器長達幾十年的多輪更新?lián)Q代往往面臨兼容性挑戰(zhàn),對歷史特性的支持需求往往會增加下一代處理器的復雜性。該章研究了由支持計算機歷史特性需求引起的處理器體系結(jié)構(gòu)的一些問題。
第11章介紹了RISC-V處理器體系結(jié)構(gòu)及其指令集。RISC-V是一個完全開源、免費的精簡指令集計算機體系結(jié)構(gòu)規(guī)范。其完整的用戶模式(非特權(quán))指令集規(guī)范已經(jīng)發(fā)布,并且當前有許多該體系結(jié)構(gòu)的硬件實現(xiàn)可用。對指令集進行多種擴展的規(guī)范開發(fā)工作正在進行中。該章涵蓋RISC-V體系結(jié)構(gòu)的特性和可用變體,介紹了其指令集,還討論了RISC-V體系結(jié)構(gòu)在移動設備、個人計算機和服務器中的應用。
第12章介紹了與處理器虛擬化相關的概念,闡述了虛擬化帶來的好處。該章介紹了基于開源工具和操作系統(tǒng)的虛擬化實例,這些開源工具可以在通用計算機上執(zhí)行各種計算機體系結(jié)構(gòu)和操作系統(tǒng)的指令集精確表示。該章還討論了虛擬化在開發(fā)和部署實際的應用程序中的好處。
第13章結(jié)合前幾章討論的主題,開發(fā)了一種方法來設計計算機系統(tǒng)以滿足用戶的獨特需求。該章討論了一些具體的應用程序類別,包括移動設備、個人計算機、游戲系統(tǒng)、互聯(lián)網(wǎng)搜索引擎和神經(jīng)網(wǎng)絡。
第14章展望計算機體系結(jié)構(gòu)的未來。該章回顧了計算機體系結(jié)構(gòu)發(fā)展過程中的重大進步和當前的發(fā)展趨勢,并推斷了這些趨勢可能的發(fā)展方向,還討論了可能改變計算機體系結(jié)構(gòu)未來發(fā)展的潛在顛覆性技術。后,該章為計算機架構(gòu)師的發(fā)展提供了建議,以幫助他們適應未來的發(fā)展。
如何利用本書
本書每一章的末尾都有一個習題集,建議
前言
部分 計算機體系結(jié)構(gòu)基礎知識
第1章 計算機體系結(jié)構(gòu)簡介2
1.1 自動化計算設備的演進2
1.1.1 巴貝奇分析機2
1.1.2 ENIAC3
1.1.3 IBM PC4
1.1.4 iPhone6
1.2 摩爾定律7
1.3 計算機體系結(jié)構(gòu)9
1.3.1 二進制數(shù)和十六進制數(shù)9
1.3.2 6502微處理器12
1.3.3 6502指令集13
1.4 總結(jié)15
1.5 習題15
第2章 數(shù)字邏輯17
2.1 電路17
2.2 晶體管18
2.3 邏輯門19
2.4 鎖存器21
2.5 觸發(fā)器23
2.6 寄存器24
2.7 加法器25
2.8 時鐘27
2.9 時序邏輯28
2.10 硬件描述語言28
2.11 總結(jié)32
2.12 習題32
第3章 處理器要素33
3.1 一個簡單的處理器33
3.1.1 控制單元34
3.1.2 算術邏輯單元36
3.1.3 寄存器 39
3.2 指令集40
3.3 尋址方式40
3.3.1 立即尋址方式41
3.3.2 尋址方式41
3.3.3 索引尋址方式42
3.3.4 間接索引尋址方式43
3.4 指令類型44
3.4.1 內(nèi)存加載指令和存儲指令 44
3.4.2 寄存器到寄存器的數(shù)據(jù)傳送指令45
3.4.3 堆棧指令45
3.4.4 算術運算指令45
3.4.5 邏輯運算指令46
3.4.6 分支指令46
3.4.7 子程序調(diào)用和返回指令46
3.4.8 處理器標志指令47
3.4.9 中斷相關的指令47
3.4.10 空操作指令47
3.5 中斷處理47
3.5.1 IRQ處理47
3.5.2 NMI處理48
3.5.3 BRK指令處理49
3.6 輸入/輸出操作50
3.6.1 程序查詢I/O51
3.6.2 中斷驅(qū)動I/O51
3.6.3 直接存儲器訪問51
3.7 總結(jié)52
3.8 習題52
第4章 計算機系統(tǒng)組件54
4.1 技術要求54
4.2 內(nèi)存子系統(tǒng)54
4.3 MOSFET簡介55
4.4 用MOSFET構(gòu)建DRAM電路56
4.4.1 電容器56
4.4.2 DRAM位單元57
4.4.3 DDR4 SDRAM58
4.4.4 GDDR60
4.4.5 預取60
4.5 I/O子系統(tǒng)61
4.5.1 串行數(shù)據(jù)總線和并行數(shù)據(jù)總線61
4.5.2 PCI Express62
4.5.3 SATA63
4.5.4 M.264
4.5.5 USB64
4.5.6 Thunderbolt64
4.6 圖形顯示65
4.6.1 VGA65
4.6.2 DVI66
4.6.3 HDMI66
4.6.4 DisplayPort66
4.7 網(wǎng)絡接口67
4.7.1 以太網(wǎng)67
4.7.2 Wi-Fi67
4.8 鍵盤和鼠標68
4.8.1 鍵盤68
4.8.2 鼠標69
4.9 現(xiàn)代計算機系統(tǒng)規(guī)范69
4.10 總結(jié)70
4.11 習題70
第5章 硬件-軟件接口71
5.1 設備驅(qū)動程序71
5.1.1 并行端口72
5.1.2 PCIe設備驅(qū)動程序73
5.1.3 設備驅(qū)動程序結(jié)構(gòu)74
5.2 BIOS75
5.3 引導過程77
5.3.1 BIOS引導77
5.3.2 UEFI引導77
5.3.3 嵌入式設備 78
5.4 操作系統(tǒng)78
5.5 進程和線程80
5.6 多處理84
5.7 總結(jié)84
5.8 習題85
第6章 專用計算領域86
6.1 實時計算86
6.2 數(shù)字信號處理89
6.2.1 模數(shù)轉(zhuǎn)換器和數(shù)模轉(zhuǎn)換器89
6.2.2 DSP硬件特性91
6.2.3 信號處理算法92
6.3 GPU處理95
6.4 專用體系結(jié)構(gòu)示例98
6.5 總結(jié)99
6.6 習題99
第二部分 處理器體系結(jié)構(gòu)和指令集
第7章 處理器和存儲器體系結(jié)構(gòu)102
7.1 技術要求102
7.2 馮·諾依曼體系結(jié)構(gòu)、哈佛體系結(jié)構(gòu)、改進型哈佛體系結(jié)構(gòu)102
7.2.1 馮·諾依曼體系結(jié)構(gòu)102
7.2.2 哈佛體系結(jié)構(gòu)104
7.2.3 改進型哈佛體系結(jié)構(gòu)104
7.3 物理內(nèi)存和虛擬內(nèi)存105
7.4 分頁虛擬內(nèi)存107
7.4.1 頁面狀態(tài)位109
7.4.2 內(nèi)存池110
7.5 內(nèi)存管理單元111
7.6 總結(jié)113
7.7 習題113
第8章 性能提升技術114
8.1 高速緩存114
8.1.1 多級處理器緩存115
8.1.2 靜態(tài)RAM116
8.1.3 一級緩存117
8.1.4 直接映射緩存117
8.1.5 組相聯(lián)映射緩存119
8.1.6 全相聯(lián)映射緩存120
8.1.7 處理器緩存寫策略121
8.1.8 二級緩存和三級緩存122
8.2 指令流水線123
8.2.1 超流水線125
8.2.2 流水線冒險125
8.2.3 微操作和寄存器重命名126
8.2.4 條件分支127
8.3 同時多線程128
8.4 SIMD處理129
8.5 總結(jié)129
8.6 習題130
第9章 專用處理器擴展131
9.1 技術要求131
9.2 處理器的特權(quán)模式131
9.2.1 中斷和異常處理131
9.2.2 保護環(huán)133
9.2.3 監(jiān)控模式和用戶模式135
9.2.4 系統(tǒng)調(diào)用135
9.3 浮點數(shù)運算136
9.3.1 8087浮點協(xié)處理器137
9.3.2 IEEE 754浮點數(shù)標準138
9.4 功耗管理139
9.5 系統(tǒng)安全管理140
9.6 總結(jié)142
9.7 習題142
第10章 現(xiàn)代處理器體系結(jié)構(gòu)與指令集143
10.1 技術要求143
10.2 x86體系結(jié)構(gòu)與指令集143
10.2.1 x86寄存器集145
10.2.2 x86尋址方式147
10.2.3 x86指令類別149
10.2.4 x86指令格式152
10.2.5 x86匯編語言153
10.3 x64體系結(jié)構(gòu)與指令集155
10.3.1 x64寄存器集156
10.3.2 x64指令類別和格式156
10.3.3 x64匯編語言157
10.4 32位ARM體系結(jié)構(gòu)與指令集158
10.4.1 ARM寄存器集160
10.4.2 ARM尋址方式161
10.4.3 ARM指令類別162
10.4.4 ARM匯編語言164
10.5 64位ARM體系結(jié)構(gòu)與指令集166
10.6 總結(jié)168
10.7 習題169
第11章 RISC-V體系結(jié)構(gòu)與指令集171
11.1 技術要求171
11.2 RISC-V體系結(jié)構(gòu)與功能171
11.3 RISC-V基礎指令集173
11.3.1 計算指令173
11.3.2 控制流指令174
11.3.3 訪存指令174
11.3.4 系統(tǒng)指令175
11.