數(shù)字設(shè)計(jì)和計(jì)算機(jī)體系結(jié)構(gòu)(原書第2版·ARM版)
定 價(jià):129 元
叢書名:計(jì)算機(jī)科學(xué)叢書
- 作者:[美]莎拉·L. 哈里斯(Sarah L. Harris)等
- 出版時(shí)間:2019/7/1
- ISBN:9787111629252
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TN79
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書采用ARM取代了早先使用MIPS作為核心處理器來介紹計(jì)算機(jī)組織和設(shè)計(jì)的基本概念,涵蓋了數(shù)字邏輯設(shè)計(jì)的主要內(nèi)容。本書以一種流行的方式介紹了從計(jì)算機(jī)組織和設(shè)計(jì)到更細(xì)節(jié)層次的內(nèi)容,涵蓋了數(shù)字邏輯設(shè)計(jì)的主要內(nèi)容,并通過ARM微處理器的設(shè)計(jì)強(qiáng)化數(shù)字邏輯的概念。本書的典型特色是將數(shù)字邏輯和計(jì)算機(jī)體系結(jié)構(gòu)融合,教學(xué)內(nèi)容反映了當(dāng)前數(shù)字電路設(shè)計(jì)的主流方法,并突出計(jì)算機(jī)體系結(jié)構(gòu)的工程特點(diǎn),書中的大量示例及習(xí)題也可以加強(qiáng)讀者對(duì)基本概念和技術(shù)的理解和記憶。
本書的獨(dú)特之處在于從計(jì)算機(jī)體系結(jié)構(gòu)的角度呈現(xiàn)數(shù)字邏輯設(shè)計(jì),從1和0開始,逐步引領(lǐng)讀者了解微處理器的設(shè)計(jì)。
我們相信,構(gòu)建微處理器是工程和計(jì)算機(jī)科學(xué)專業(yè)學(xué)生的特殊“儀式”。處理器的內(nèi)部工作對(duì)于不熟悉的人來說似乎是神奇的,但經(jīng)過仔細(xì)解釋后,其實(shí)是直截了當(dāng)?shù)摹?shù)字設(shè)計(jì)本身就是一個(gè)強(qiáng)大而令人興奮的主題。匯編語言編程揭示了處理器所使用的內(nèi)部語言。微體系結(jié)構(gòu)(簡(jiǎn)稱為微結(jié)構(gòu))將它們鏈接在一起。
在這本日益流行的圖書的前兩個(gè)版本中,包括了由Patterson和Hennessy所撰寫且被廣泛使用的體系結(jié)構(gòu)書籍中討論的傳統(tǒng)MIPS體系結(jié)構(gòu)。作為最初的精簡(jiǎn)指令集計(jì)算體系結(jié)構(gòu)之一,MIPS非常簡(jiǎn)潔,易于理解和構(gòu)建。今天,MIPS仍然是一個(gè)重要的體系結(jié)構(gòu),在2013年被Imagination Technologies收購(gòu)后,又被注入了新的活力。
在過去的20年中,ARM體系結(jié)構(gòu)由于其高效和豐富的生態(tài)系統(tǒng)而大受歡迎。這段時(shí)間出貨了超過500億個(gè)ARM處理器,并且全球超過75%的人都在使用帶有ARM處理器的產(chǎn)品。在撰寫本書時(shí),幾乎所有在售的手機(jī)和平板電腦都包含一個(gè)或多個(gè)ARM處理器。有報(bào)道預(yù)測(cè)數(shù)百億的ARM處理器將很快控制物聯(lián)網(wǎng)。許多公司正在構(gòu)建高性能ARM系統(tǒng),以在服務(wù)器市場(chǎng)挑戰(zhàn)Intel。由于其商業(yè)重要性和學(xué)生的興趣,我們撰寫了本書的ARM版本。
在教學(xué)上,MIPS和ARM版本的學(xué)習(xí)目標(biāo)是相同的。ARM體系結(jié)構(gòu)具有許多功能,包括尋址模式和條件執(zhí)行,這些功能有助于提高效率,但增加了少量的復(fù)雜性。它與MIPS的微體系結(jié)構(gòu)也非常相似,而條件執(zhí)行和程序計(jì)數(shù)器是它們最大的差異。關(guān)于I/O的章節(jié)提供了大量使用Raspberry Pi的示例。Raspberry Pi是一種非常流行的基于ARM的嵌入式Linux單板計(jì)算機(jī)。
只要市場(chǎng)依然有需求,我們就希望能夠同時(shí)提供MIPS和ARM兩個(gè)版本。
特點(diǎn)
并列講述SystemVerilog和VHDL語言
硬件描述語言(Hardware Description Language,HDL)是現(xiàn)代數(shù)字設(shè)計(jì)實(shí)踐的中心,而設(shè)計(jì)者分成了SystemVerilog語言和VHDL語言兩個(gè)陣營(yíng)。在介紹組合邏輯和時(shí)序邏輯設(shè)計(jì)后,本書緊接著就在第4章中介紹硬件描述語言,并將在第5章和第7章用其來設(shè)計(jì)處理器的模塊和整個(gè)處理器。然而,如果不講授硬件描述語言,第4章可以跳過去,不影響后續(xù)章節(jié)。
本書的特色在于使用并列的方式講述SystemVerilog語言和VHDL語言,使得讀者可以快速對(duì)比兩種語言。第4章描述了適用于這兩種硬件描述語言的原則,而且并列給出了這兩種語言的語法和實(shí)例。這種并列方法使得教師可以選擇其中一種硬件描述語言講述,同時(shí),讀者在專業(yè)實(shí)踐中也可以很快從一種描述語言轉(zhuǎn)到另一種描述語言。
ARM體系結(jié)構(gòu)和微體系結(jié)構(gòu)
第6章和第7章首次深入介紹了ARM體系結(jié)構(gòu)和微體系結(jié)構(gòu)。ARM是一種理想的體系結(jié)構(gòu),因?yàn)樗且环N每年應(yīng)用于數(shù)百萬種產(chǎn)品中的真實(shí)體系結(jié)構(gòu),但又十分精簡(jiǎn)且易于學(xué)習(xí)。此外,由于其在商業(yè)和業(yè)余愛好者世界中的流行,已有多種ARM體系結(jié)構(gòu)的模擬和開發(fā)工具。在本書中,所有與ARM技術(shù)相關(guān)的材料均經(jīng)ARM Limited許可復(fù)制。
現(xiàn)實(shí)世界視角
除了討論ARM體系結(jié)構(gòu)的現(xiàn)實(shí)世界視角外,第6章還介紹了英特爾x86處理器的體系結(jié)構(gòu),以提供另一種視角。第9章(在線補(bǔ)充資料)還描述了Raspberry Pi單板計(jì)算機(jī)環(huán)境中的外圍設(shè)備,這是一個(gè)非常流行的基于ARM的平臺(tái)。這些現(xiàn)實(shí)世界視角的章節(jié)展示了該章中的概念與許多PC和消費(fèi)電子產(chǎn)品中的芯片之間的關(guān)系。
高級(jí)微體系結(jié)構(gòu)概覽
第7章介紹了現(xiàn)代高性能微結(jié)構(gòu)的特征,包括分支預(yù)測(cè)、超標(biāo)量、亂序執(zhí)行、多線程和多核處理器。這些內(nèi)容對(duì)于第一次上體系結(jié)構(gòu)課程的學(xué)生比較易于理解,展示了本書中的微結(jié)構(gòu)原理是如何擴(kuò)展到現(xiàn)代處理器設(shè)計(jì)中的。
章末的習(xí)題和面試問題
學(xué)習(xí)數(shù)字設(shè)計(jì)的最佳方式是實(shí)踐。每章末尾都有很多習(xí)題用于實(shí)踐所講述的內(nèi)容。習(xí)題后面是一組由這個(gè)領(lǐng)域工業(yè)界的同事向申請(qǐng)工作的學(xué)生提出的面試問題。這些問題可以讓學(xué)生感受到面試過程中可能遇到的典型問題類型。習(xí)題的答案可以通過本書的配套網(wǎng)站和教師支持網(wǎng)站獲得。
在線補(bǔ)充資料
補(bǔ)充資料可以通過booksite.elsevier.com/9780128000564獲得。這個(gè)對(duì)所有讀者開放的配套網(wǎng)站包括以下內(nèi)容:
奇數(shù)編號(hào)習(xí)題的答案;
Altera公司專業(yè)級(jí)計(jì)算機(jī)輔助設(shè)計(jì)工具的鏈接;
鏈接到Keil的ARM微控制器開發(fā)套件(MDK-ARM),這是一個(gè)用于編譯、匯編和模擬ARM處理器的C和匯編代碼的工具;
ARM處理器的硬件描述語言(HDL)代碼;
關(guān)于Altera Quartus Ⅱ工具的提示;
PPT格式的電子教案;
簡(jiǎn)單的課程和實(shí)驗(yàn)素材;
勘誤表。
教師網(wǎng)站包括:
所有習(xí)題的答案;
鏈接到Altera的專業(yè)級(jí)計(jì)算機(jī)輔助設(shè)計(jì)(CAD)工具;
PDF格式和PPT格式的書中插圖。
在線資料提供了在課程中使用Altera、Raspberry Pi和MDK-ARM工具的指南,同時(shí)也提供了關(guān)于構(gòu)建實(shí)驗(yàn)的詳細(xì)資料。
如何在課程中使用軟件工具
Altera Quartus Ⅱ
Quartus Ⅱ Web Edition是專業(yè)級(jí)Quartu Ⅱ FPGA設(shè)計(jì)工具的免費(fèi)版本;诖塑浖瑢W(xué)生可以使用原理圖或者硬件描述語言(SystemVerilog或VHDL)完成數(shù)字邏輯設(shè)計(jì)。在完成設(shè)計(jì)后,學(xué)生可以使用Altera Quartus Ⅱ Web Edition中包含的ModelSim-Altera Star
---作者簡(jiǎn)介---
莎拉·L. 哈里斯(Sarah L. Harris) 內(nèi)華達(dá)大學(xué)電子與計(jì)算機(jī)工程系副教授,擁有斯坦福大學(xué)電子工程博士學(xué)位。她曾在惠普、圣地亞哥超算中心、英偉達(dá)公司和微軟亞洲研究院工作,擅長(zhǎng)計(jì)算機(jī)體系結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)。
戴維·莫尼·哈里斯(David Money Harris) 哈維瑪?shù)聦W(xué)院工程系教授,擁有斯坦福大學(xué)電子工程博士學(xué)位。他曾在英特爾公司從事Itanium和Pentium II處理器的邏輯和電路設(shè)計(jì),并曾擔(dān)任Sun Microsystems、惠普、Evans & Sutherland等設(shè)計(jì)公司的顧問,獲得了12項(xiàng)專利。
---譯者簡(jiǎn)介---
陳俊穎 華南理工大學(xué)軟件學(xué)院副教授,香港大學(xué)博士、浙江大學(xué)學(xué)士,教育部大數(shù)據(jù)與機(jī)器人智能粵港澳聯(lián)合實(shí)驗(yàn)室、華南理工大學(xué)智能軟件與機(jī)器人科研團(tuán)隊(duì)成員,主要從事高性能計(jì)算和智能圖像處理方面的科研及教學(xué)工作。
出版者的話
贊譽(yù)
譯者序
前言
第1章 二進(jìn)制1
1.1 課程計(jì)劃1
1.2 管理復(fù)雜性的藝術(shù)1
1.2.1 抽象1
1.2.2 約束2
1.2.3 三條原則3
1.3 數(shù)字抽象3
1.4 數(shù)字系統(tǒng)4
1.4.1 十進(jìn)制數(shù)4
1.4.2 二進(jìn)制數(shù)5
1.4.3 十六進(jìn)制數(shù)6
1.4.4 字節(jié)、半字節(jié)和字7
1.4.5 二進(jìn)制加法8
1.4.6 有符號(hào)的二進(jìn)制數(shù)8
1.5 邏輯門10
1.5.1 非門11
1.5.2 緩沖11
1.5.3 與門11
1.5.4 或門11
1.5.5 其他二輸入邏輯門12
1.5.6 多輸入門12
1.6 數(shù)字抽象之下13
1.6.1 電源電壓13
1.6.2 邏輯電平13
1.6.3 噪聲容限14
1.6.4 直流電壓傳輸特性14
1.6.5 靜態(tài)約束15
*1.7 CMOS晶體管16
1.7.1 半導(dǎo)體16
1.7.2 二極管17
1.7.3 電容17
1.7.4 nMOS和pMOS晶體管17
1.7.5 CMOS非門19
1.7.6 其他CMOS邏輯門19
1.7.7 傳輸門21
1.7.8 類nMOS邏輯21
*1.8 功耗22
1.9 總結(jié)和展望22
習(xí)題23
面試問題29
第2章 組合邏輯設(shè)計(jì)30
2.1 引言30
2.2 布爾表達(dá)式32
2.2.1 術(shù)語32
2.2.2 與或式32
2.2.3 或與式33
2.3 布爾代數(shù)34
2.3.1 公理34
2.3.2 單變量定理35
2.3.3 多變量定理36
2.3.4 定理的統(tǒng)一證明方法37
2.3.5 等式化簡(jiǎn)37
2.4 從邏輯到門38
2.5 多級(jí)組合邏輯40
2.5.1 減少硬件40
2.5.2 推氣泡41
2.6 X和Z43
2.6.1 非法值X43
2.6.2 浮空Z43
2.7 卡諾圖44
2.7.1 畫圈的原理45
2.7.2 卡諾圖化簡(jiǎn)邏輯45
2.7.3 無關(guān)項(xiàng)48
2.7.4 小結(jié)49
2.8 組合邏輯模塊49
2.8.1 多路選擇器49
2.8.2 譯碼器52
2.9 時(shí)序52
2.9.1 傳輸延遲和最小延遲53
2.9.2 毛刺55
2.10 總結(jié)57
習(xí)題57
面試問題62
第3章 時(shí)序邏輯設(shè)計(jì)63
3.1 引言63
3.2 鎖存器和觸發(fā)器63
3.2.1 SR鎖存器64
3.2.2 D鎖存器65
3.2.3 D觸發(fā)器66
3.2.4 寄存器67
3.2.5 帶使能端的觸發(fā)器67
3.2.6 帶復(fù)位功能的觸發(fā)器67
*3.2.7 晶體管級(jí)的鎖存器和觸發(fā)器的設(shè)計(jì)68
3.2.8 小結(jié)68
3.3 同步邏輯設(shè)計(jì)69
3.3.1 一些有問題的電路70
3.3.2 同步時(shí)序電路71
3.3.3 同步和異步電路72
3.4 有限狀態(tài)機(jī)72
3.4.1 有限狀態(tài)機(jī)設(shè)計(jì)實(shí)例73
3.4.2 狀態(tài)編碼77
3.4.3 Moore型狀態(tài)機(jī)和Mealy型狀態(tài)機(jī)79
3.4.4 狀態(tài)機(jī)的分解82
3.4.5 由電路圖導(dǎo)出狀態(tài)機(jī)83
3.4.6 小結(jié)86
3.5 時(shí)序邏輯電路的時(shí)序86
3.5.1 動(dòng)態(tài)約束87
3.5.2 系統(tǒng)時(shí)序87
*3.5.3 時(shí)鐘偏移91
3.5.4 亞穩(wěn)態(tài)92
3.5.5 同步器93
*3.5.6 分辨時(shí)間的推導(dǎo)95
3.6 并行97
3.7 總結(jié)99
習(xí)題100
面試問題105
第4章 硬件描述語言107
4.1 引言107
4.1.1 模塊107
4.1.2 硬件描述語言的起源108
4.1.3 模擬和綜合109
4.2 組合邏輯110
4.2.1 位運(yùn)算符110
4.2.2 注釋和空格112
4.2.3 縮減運(yùn)算符112
4.2.4 條件賦值112
4.2.5 內(nèi)部變量114
4.2.6 優(yōu)先級(jí)115
4.2.7 數(shù)字116
4.2.8 Z和X117
4.2.9 位混合118
4.2.10 延遲118
4.3 結(jié)構(gòu)建模119
4.4 時(shí)序邏輯122
4.4.1 寄存器122
4.4.2 帶復(fù)位功能的寄存器123
4.4.3 帶使能端的寄存器124
4.4.4 多寄存器124
4.4.5 鎖存器125
4.5 更多組合邏輯126
4.5.1 case語句127
4.5.2 if語句129
4.5.3 帶有無關(guān)項(xiàng)的真值表130
4.5.4 阻塞式和非阻塞式賦值131
4.6 有限狀態(tài)機(jī)134
*4.7 數(shù)據(jù)類型137
4.7.1 SystemVerilog137
4.7.2 VHDL138
*4.8 參數(shù)化模塊140
4.9 測(cè)試程序142
4.10 總結(jié)145
習(xí)題145
面試問題152
第5章 常見數(shù)字模塊153
5.1 引言153
5.2 算術(shù)電路153
5.2.1 加法153
5.2.2 減法158
5.2.3 比較器159
5.2.4 算術(shù)邏輯單元160
5.2.5 移位器和循環(huán)移位器162
*5.2.6 乘法162
*5.2.7 除法164
5.2.8 拓展閱讀164
5.3 數(shù)制系統(tǒng)165
5.3.1 定點(diǎn)數(shù)系統(tǒng)165
*5.3.2 浮點(diǎn)數(shù)系統(tǒng)166
5.4 時(shí)序電路模塊169
5.4.1 計(jì)數(shù)器169
5.4.2 移位寄存器169
5.5 存儲(chǔ)器陣列171
5.5.1 概述171
5.5.2 動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器173
5.5.3 靜態(tài)隨機(jī)訪問存儲(chǔ)器174
5.5.4 面積和延遲174
5.5.5 寄存器文件174
5.5.6 只讀存儲(chǔ)器175
5.5.7 使用存儲(chǔ)器陣列的邏輯176
5.5.8 存儲(chǔ)器HDL176
5.6 邏輯陣列178
5.6.1 可編程邏輯陣列178
5.6.2 現(xiàn)場(chǎng)可編程邏輯門陣列179
*5.6.3 陣列實(shí)現(xiàn)182
5.7 總結(jié)183
習(xí)題184
面試問題190
第6章 體系結(jié)構(gòu)191
6.1 引言191
6.2 匯編語言192
6.2.1 指令192
6.2.2 操作數(shù):寄存器、存儲(chǔ)器和常數(shù)193
6.3 編程196
6.3.1 數(shù)據(jù)處理指令196
6.3.2 條件標(biāo)志198
6.3.3 分支200
6.3.4 條件語句201
6.3.5 循環(huán)202
6.3.6 存儲(chǔ)器204
6.3.7 函數(shù)調(diào)用207
6.4 機(jī)器語言215
6.4.1 數(shù)據(jù)處理指令215
6.4.2 存儲(chǔ)器指令218
6.4.3 分支指令219
6.4.4 尋址模式220
6.4.5 解釋機(jī)器語言代碼220
6.4.6 程序存儲(chǔ)221
*6.5 編譯、匯編與加載222
6.5.1 內(nèi)存映射222
6.5.2 編譯223
6.5.3 匯編224
6.5.4 鏈接225
6.5.5 加載226
*6.6 其他主題227
6.6.1 加載文字227
6.6.2 NOP227
6.6.3 異常228
6.7 ARM體