現(xiàn)代計(jì)算機(jī)組成與體系結(jié)構(gòu)
定 價:119 元
叢書名:計(jì)算機(jī)科學(xué)叢書
- 作者:王黨輝
- 出版時間:2022/3/1
- ISBN:9787111701088
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP303
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書對現(xiàn)代計(jì)算設(shè)備進(jìn)行了介紹,包括其中可能出現(xiàn)的每一項(xiàng)重要技術(shù)和子系統(tǒng),并闡釋其與其他系統(tǒng)部件之間的關(guān)系。全書分為三部分。第1部分介紹計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)知識,包括計(jì)算機(jī)體系結(jié)構(gòu)的基本概念、數(shù)字邏輯、處理器元件、計(jì)算機(jī)系統(tǒng)組件、硬件軟件接口、專用計(jì)算領(lǐng)域。第二部分介紹處理器體系結(jié)構(gòu)和指令集,涉及處理器和存儲器體系結(jié)構(gòu)、性能增強(qiáng)技術(shù)、專用處理器擴(kuò)展、現(xiàn)代處理器體系結(jié)構(gòu)和指令集、RISC-V體系結(jié)構(gòu)和指令集。第三部分介紹計(jì)算機(jī)體系結(jié)構(gòu)的應(yīng)用,包括處理器虛擬化、具體的應(yīng)用程序類別(包括移動設(shè)備、個人電腦、游戲系統(tǒng)、互聯(lián)網(wǎng)搜索引擎和神經(jīng)網(wǎng)絡(luò))、計(jì)算機(jī)體系結(jié)構(gòu)未來的方向。讀完本書,讀者將掌握目前在廣泛多樣的數(shù)字系統(tǒng)中所使用的計(jì)算機(jī)體系結(jié)構(gòu)。
作為一名軟件開發(fā)人員、系統(tǒng)設(shè)計(jì)師或計(jì)算機(jī)體系結(jié)構(gòu)專業(yè)的學(xué)生,當(dāng)你探索數(shù)字設(shè)備體系結(jié)構(gòu)時,是否被其復(fù)雜性擊垮?本書將幫助你學(xué)習(xí)現(xiàn)代計(jì)算機(jī)系統(tǒng)的工作原理——從晶體管開關(guān)到協(xié)作多處理器服務(wù)器。在本書中,你將深入學(xué)習(xí)處理器的內(nèi)部行為,以設(shè)計(jì)更高效、可擴(kuò)展性更好的軟件系統(tǒng)。
本書全面介紹了計(jì)算機(jī)系統(tǒng)的基礎(chǔ)知識,包括晶體管、邏輯門、時序邏輯和指令操作。你將了解現(xiàn)代處理器體系結(jié)構(gòu)以及包括x86、x64、ARM和RISC-V在內(nèi)的指令集,還會看到如何在低成本的FPGA板上實(shí)現(xiàn)RISC-V處理器,以及如何編寫量子計(jì)算程序并在實(shí)際的量子計(jì)算機(jī)上運(yùn)行。讀完本書,你將深入理解現(xiàn)代處理器和計(jì)算機(jī)體系結(jié)構(gòu),并了解其未來的發(fā)展方向。
學(xué)完本書,你將能夠:
? 掌握晶體管技術(shù)和數(shù)字電路原理。
? 理解計(jì)算機(jī)處理器的基本功能單元。
? 理解流水線和超標(biāo)量執(zhí)行。
? 學(xué)會使用浮點(diǎn)數(shù)據(jù)格式。
? 理解管理員模式的目的和操作。
? 在低成本的FPGA板上實(shí)現(xiàn)完整的RISC-V處理器。
? 了解虛擬機(jī)實(shí)現(xiàn)的相關(guān)技術(shù)。
? 編寫量子計(jì)算程序并在量子計(jì)算機(jī)上運(yùn)行。
本書介紹了在現(xiàn)代處理器和計(jì)算機(jī)體系結(jié)構(gòu)中使用的關(guān)鍵技術(shù)和組件,并針對具體需求討論了不同體系結(jié)構(gòu)的決策如何影響計(jì)算機(jī)的配置優(yōu)化。
簡單來說,現(xiàn)代計(jì)算機(jī)是一種復(fù)雜的設(shè)備。然而,當(dāng)以層次化的方式來看時,每一層的復(fù)雜功能就變得明晰了。本書涵蓋了眾多主題,但只對各個主題進(jìn)行有限深度的探討。本書的目標(biāo)是對現(xiàn)代計(jì)算設(shè)備進(jìn)行簡單明了的介紹,包括其中可能出現(xiàn)的每一項(xiàng)重要技術(shù)和每一個子系統(tǒng),并闡釋設(shè)備與其他系統(tǒng)組件之間的關(guān)系。
本書不會提供一份冗長的參考書單,如果讀者想深入閱讀,可以自行在互聯(lián)網(wǎng)上查找相關(guān)內(nèi)容。
學(xué)完本書,讀者將掌握目前在廣泛多樣的數(shù)字系統(tǒng)中所使用的計(jì)算機(jī)體系結(jié)構(gòu),還將了解體系結(jié)構(gòu)的發(fā)展趨勢,以及未來幾年可能出現(xiàn)的一些顛覆性技術(shù),這些突破或許會極大地影響計(jì)算系統(tǒng)體系結(jié)構(gòu)的發(fā)展。
目標(biāo)讀者
本書適用于軟件開發(fā)人員、計(jì)算機(jī)專業(yè)學(xué)生、系統(tǒng)設(shè)計(jì)師、計(jì)算機(jī)科學(xué)家、逆向工程師,以及所有希望理解現(xiàn)代計(jì)算機(jī)系統(tǒng)(從微型嵌入式設(shè)備到智能手機(jī),再到倉儲規(guī)模的云服務(wù)器群等)的體系結(jié)構(gòu)和設(shè)計(jì)原則的人。
本書內(nèi)容
本書共14章,各章主要內(nèi)容如下:
第1章從自動化計(jì)算設(shè)備的簡史開始,介紹了推動設(shè)備性能飛躍的重大技術(shù)進(jìn)步。之后討論了摩爾定律,評估了其在過去幾十年的適用性和對未來的影響。后以6502微處理器為例,介紹了計(jì)算機(jī)體系結(jié)構(gòu)的基本概念。
第2章介紹了作為開關(guān)元件的晶體管,并解釋了其在構(gòu)造邏輯門中的應(yīng)用。然后介紹了如何結(jié)合簡單的門來構(gòu)建觸發(fā)器和寄存器。該章還介紹了時序邏輯(即包含狀態(tài)信息的邏輯),后討論了時鐘數(shù)字電路。
第3章從通用處理器的概念性描述開始介紹組成處理器的要素。該章討論了指令集、寄存器集、指令加載、解碼、執(zhí)行和排序的概念,還討論了內(nèi)存的加載和存儲操作。該章還涵蓋了分支指令及其在循環(huán)處理和條件處理中的應(yīng)用。后介紹了導(dǎo)致中斷處理和I/O操作的一些實(shí)際因素。
第4章討論了包括多級緩存在內(nèi)的計(jì)算機(jī)存儲及其與處理器的接口,講述了包括中斷處理、緩沖和專用I/O處理器在內(nèi)的I/O需求。該章還討論了鍵盤、鼠標(biāo)、顯示器和網(wǎng)絡(luò)接口等I/O設(shè)備的一些特定需求。后給出了這些組件在現(xiàn)代計(jì)算機(jī)應(yīng)用中的實(shí)例,包括智能移動設(shè)備、個人計(jì)算機(jī)、游戲系統(tǒng)、云服務(wù)器和專用機(jī)器學(xué)習(xí)系統(tǒng)。
第5章討論了如何實(shí)現(xiàn)計(jì)算機(jī)操作系統(tǒng)必須提供的高級服務(wù),包括磁盤I/O、網(wǎng)絡(luò)通信以及與用戶交互。該章描述了從處理器指令集和寄存器級別開始實(shí)現(xiàn)這些特性的軟件層。后介紹了引導(dǎo)、多處理和多線程等操作系統(tǒng)功能。
第6章探索了對大多數(shù)用戶不直接可見的計(jì)算領(lǐng)域,包括實(shí)時系統(tǒng)、數(shù)字信號處理和GPU處理。該章還討論了與每個計(jì)算領(lǐng)域相關(guān)的特定需求,并介紹了實(shí)現(xiàn)這些特性的現(xiàn)代設(shè)備。
第7章深入研究了馮·諾依曼體系結(jié)構(gòu)、哈佛體系結(jié)構(gòu)和改進(jìn)型哈佛體系結(jié)構(gòu)等現(xiàn)代處理器體系結(jié)構(gòu)。該章討論了分頁虛擬內(nèi)存的實(shí)現(xiàn),介紹了內(nèi)存管理功能在計(jì)算機(jī)體系結(jié)構(gòu)中的實(shí)際實(shí)現(xiàn),并描述了內(nèi)存管理單元的功能。
第8章討論了計(jì)算機(jī)系統(tǒng)中的性能提升技術(shù),這些技術(shù)旨在使系統(tǒng)達(dá)到峰值執(zhí)行速度。該章主要介紹提高系統(tǒng)性能的重要技術(shù),包括緩存、指令流水線、指令并行和SIMD處理。
第9章重點(diǎn)關(guān)注通常在處理器指令集級別實(shí)現(xiàn)的擴(kuò)展,以提供超出一般數(shù)據(jù)處理需求的附加系統(tǒng)功能。提供的擴(kuò)展包括特權(quán)模式、浮點(diǎn)數(shù)、功耗管理和系統(tǒng)安全管理。
第10章研究了現(xiàn)代處理器(x86、x64和ARM等)設(shè)計(jì)中的體系結(jié)構(gòu)和指令集特性。處理器長達(dá)幾十年的多輪更新?lián)Q代往往面臨兼容性挑戰(zhàn),對歷史特性的支持需求往往會增加下一代處理器的復(fù)雜性。該章研究了由支持計(jì)算機(jī)歷史特性需求引起的處理器體系結(jié)構(gòu)的一些問題。
第11章介紹了RISC-V處理器體系結(jié)構(gòu)及其指令集。RISC-V是一個完全開源、免費(fèi)的精簡指令集計(jì)算機(jī)體系結(jié)構(gòu)規(guī)范。其完整的用戶模式(非特權(quán))指令集規(guī)范已經(jīng)發(fā)布,并且當(dāng)前有許多該體系結(jié)構(gòu)的硬件實(shí)現(xiàn)可用。對指令集進(jìn)行多種擴(kuò)展的規(guī)范開發(fā)工作正在進(jìn)行中。該章涵蓋RISC-V體系結(jié)構(gòu)的特性和可用變體,介紹了其指令集,還討論了RISC-V體系結(jié)構(gòu)在移動設(shè)備、個人計(jì)算機(jī)和服務(wù)器中的應(yīng)用。
第12章介紹了與處理器虛擬化相關(guān)的概念,闡述了虛擬化帶來的好處。該章介紹了基于開源工具和操作系統(tǒng)的虛擬化實(shí)例,這些開源工具可以在通用計(jì)算機(jī)上執(zhí)行各種計(jì)算機(jī)體系結(jié)構(gòu)和操作系統(tǒng)的指令集精確表示。該章還討論了虛擬化在開發(fā)和部署實(shí)際的應(yīng)用程序中的好處。
第13章結(jié)合前幾章討論的主題,開發(fā)了一種方法來設(shè)計(jì)計(jì)算機(jī)系統(tǒng)以滿足用戶的獨(dú)特需求。該章討論了一些具體的應(yīng)用程序類別,包括移動設(shè)備、個人計(jì)算機(jī)、游戲系統(tǒng)、互聯(lián)網(wǎng)搜索引擎和神經(jīng)網(wǎng)絡(luò)。
第14章展望計(jì)算機(jī)體系結(jié)構(gòu)的未來。該章回顧了計(jì)算機(jī)體系結(jié)構(gòu)發(fā)展過程中的重大進(jìn)步和當(dāng)前的發(fā)展趨勢,并推斷了這些趨勢可能的發(fā)展方向,還討論了可能改變計(jì)算機(jī)體系結(jié)構(gòu)未來發(fā)展的潛在顛覆性技術(shù)。后,該章為計(jì)算機(jī)架構(gòu)師的發(fā)展提供了建議,以幫助他們適應(yīng)未來的發(fā)展。
如何利用本書
本書每一章的末尾都有一個習(xí)題集,建議
前言
部分 計(jì)算機(jī)體系結(jié)構(gòu)基礎(chǔ)知識
第1章 計(jì)算機(jī)體系結(jié)構(gòu)簡介2
1.1 自動化計(jì)算設(shè)備的演進(jìn)2
1.1.1 巴貝奇分析機(jī)2
1.1.2 ENIAC3
1.1.3 IBM PC4
1.1.4 iPhone6
1.2 摩爾定律7
1.3 計(jì)算機(jī)體系結(jié)構(gòu)9
1.3.1 二進(jìn)制數(shù)和十六進(jìn)制數(shù)9
1.3.2 6502微處理器12
1.3.3 6502指令集13
1.4 總結(jié)15
1.5 習(xí)題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 習(xí)題32
第3章 處理器要素33
3.1 一個簡單的處理器33
3.1.1 控制單元34
3.1.2 算術(shù)邏輯單元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 算術(shù)運(yùn)算指令45
3.4.5 邏輯運(yùn)算指令46
3.4.6 分支指令46
3.4.7 子程序調(diào)用和返回指令46
3.4.8 處理器標(biāo)志指令47
3.4.9 中斷相關(guān)的指令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 習(xí)題52
第4章 計(jì)算機(jī)系統(tǒng)組件54
4.1 技術(shù)要求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 預(yù)取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)絡(luò)接口67
4.7.1 以太網(wǎng)67
4.7.2 Wi-Fi67
4.8 鍵盤和鼠標(biāo)68
4.8.1 鍵盤68
4.8.2 鼠標(biāo)69
4.9 現(xiàn)代計(jì)算機(jī)系統(tǒng)規(guī)范69
4.10 總結(jié)70
4.11 習(xí)題70
第5章 硬件-軟件接口71
5.1 設(shè)備驅(qū)動程序71
5.1.1 并行端口72
5.1.2 PCIe設(shè)備驅(qū)動程序73
5.1.3 設(shè)備驅(qū)動程序結(jié)構(gòu)74
5.2 BIOS75
5.3 引導(dǎo)過程77
5.3.1 BIOS引導(dǎo)77
5.3.2 UEFI引導(dǎo)77
5.3.3 嵌入式設(shè)備 78
5.4 操作系統(tǒng)78
5.5 進(jìn)程和線程80
5.6 多處理84
5.7 總結(jié)84
5.8 習(xí)題85
第6章 專用計(jì)算領(lǐng)域86
6.1 實(shí)時計(jì)算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 習(xí)題99
第二部分 處理器體系結(jié)構(gòu)和指令集
第7章 處理器和存儲器體系結(jié)構(gòu)102
7.1 技術(shù)要求102
7.2 馮·諾依曼體系結(jié)構(gòu)、哈佛體系結(jié)構(gòu)、改進(jìn)型哈佛體系結(jié)構(gòu)102
7.2.1 馮·諾依曼體系結(jié)構(gòu)102
7.2.2 哈佛體系結(jié)構(gòu)104
7.2.3 改進(jìn)型哈佛體系結(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 習(xí)題113
第8章 性能提升技術(shù)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 習(xí)題130
第9章 專用處理器擴(kuò)展131
9.1 技術(shù)要求131
9.2 處理器的特權(quán)模式131
9.2.1 中斷和異常處理131
9.2.2 保護(hù)環(huán)133
9.2.3 監(jiān)控模式和用戶模式135
9.2.4 系統(tǒng)調(diào)用135
9.3 浮點(diǎn)數(shù)運(yùn)算136
9.3.1 8087浮點(diǎn)協(xié)處理器137
9.3.2 IEEE 754浮點(diǎn)數(shù)標(biāo)準(zhǔn)138
9.4 功耗管理139
9.5 系統(tǒng)安全管理140
9.6 總結(jié)142
9.7 習(xí)題142
第10章 現(xiàn)代處理器體系結(jié)構(gòu)與指令集143
10.1 技術(shù)要求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 習(xí)題169
第11章 RISC-V體系結(jié)構(gòu)與指令集171
11.1 技術(shù)要求171
11.2 RISC-V體系結(jié)構(gòu)與功能171
11.3 RISC-V基礎(chǔ)指令集173
11.3.1 計(jì)算指令173
11.3.2 控制流指令174
11.3.3 訪存指令174
11.3.4 系統(tǒng)指令175
11.