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