發表於2024-12-21
《計算機係統:核心概念及軟硬件實現(原書第4版)》清晰、詳細、一步一步地介紹瞭計算機組成、匯編語言和計算機體係結構中的核心概念。它帶領學生用自上而下的方法探索計算機係統各個抽象層次的方方麵麵。通過說明不同的抽象層次和其他層次之間的關係,本書幫助學生將計算機係統及其組成部分看作一個統一的概念。
《計算機係統:核心概念及軟硬件實現(原書第4版)》基於Pep/8匯編器和模擬器,用來講授經典馮·諾依曼機器的基本知識。Pep/8現在包括新的符號跟蹤特性,能夠在學生單步跟蹤程序時,實時顯示全局變量和運行時棧的情況。
作者Warford教授從教30餘年,他貫穿全書強調瞭掌握基本計算機概念的重要性,是理解當前和未來技術的基礎,他還強調瞭解決問題能力的重要性。本書覆蓋瞭ACM-IEEE計算機科學課程體係指導意見中體係結構和組成原理中所有的核心概念。
《計算機係統:核心概念及軟硬件實現(原書第4版)》基於虛構的計算機Pep/8,清晰、詳細、循序漸進地介紹瞭計算機組成、匯編語言和計算機體係結構中的核心思想,圍繞7個抽象層次組織內容,詳細介紹瞭計算機係統的應用層、高級語言層、匯編層、操作係統層、指令集架構層、微代碼層和邏輯門層。本書有完整的程序示例,理論和實踐相結閤,寬度和深度相結閤,提供瞭對普適的馮·諾依曼機器架構的深入理解。
《計算機係統:核心概念及軟硬件實現(原書第4版)》可作為高等院校計算機科學專業本科生的教材,也可作為相關專業人員學習計算機基礎知識的參考書。
J. 斯坦利·沃法德(J. Stanley Warford),現為美國佩珀代因大學(Pepperdine University)大學計算機科學係教授。Warford教授在進入學術界前是航空工程師,他任教30餘年,曾擔任佩珀代因大學計算機科學係主任。他從倫斯勒理工學院獲得碩士學位,從加州大學洛杉磯分校獲得博士學位。由於傑齣的教學成果,Warford教授獲得瞭Luckman奬。
龔奕利,本科畢業於武漢大學,在中國科學院計算技術研究所獲得博士學位,曾在美國印第安納大學從事博士後工作和美國密歇根大學從事訪問學者工作,現為武漢大學計算機學院副教授。主要研究方嚮為高性能計算和分布式係統,包括雲計算和廣域文件係統。翻譯過《深入理解計算機係統》(第一、二版)等計算機專業書籍。
齣版者的話
中文版序
譯者序
前言
第一部分應用層(第7層)
第1章計算機係統2
1.1 抽象層次2
1.1.1 藝術中的抽象3
1.1.2 文檔中的抽象4
1.1.3組織中的抽象5
1.1.4機器中的抽象6
1.1.5計算機係統中的抽象6
1.2 硬件8
1.2.1輸入設備9
1.2.2輸齣設備11
1.2.3主存儲器12
1.2.4中央處理單元13
1.3軟件13
1.3.1操作係統14
1.3.2軟件分析和設計15
1.4數據庫係統16
1.4.1關係17
1.4.2查詢18
1.4.3語言結構19
總結20
練習21
第二部分高級語言層(第6層)
第2章C++24
2.1 變量24
2.1.1C++編譯器24
2.1.2 機器無關性24
2.1.3C++的內存模型25
2.1.4全局變量和賦值語句26
2.1.5局部變量28
2.2控製流29
2.2.1if/else語句29
2.2.2switch語句30
2.2.3while循環30
2.2.4do循環31
2.2.5數組和for循環31
2.3函數32
2.3.1空函數和傳值調用的參數32
2.3.2函數的例子33
2.3.3傳引用調用的參數34
2.4遞歸36
2.4.1階乘函數37
2.4.2遞歸的思考方式39
2.4.3遞歸加法40
2.4.4二項式係數函數41
2.4.5逆轉數組元素順序45
2.4.6漢諾塔45
2.4.7 相互遞歸48
2.4.8遞歸的成本48
2.5動態內存分配49
2.5.1指針49
2.5.2結構50
2.5.3鏈式數據結構51
總結52
練習53
問題54
第三部分指令集架構層(第3層)
第3章信息的錶示58
3.1 無符號二進製錶示58
3.1.1二進製存儲器58
3.1.2整數59
3.1.3基本轉換60
3.1.4無符號整數的範圍61
3.1.5無符號加法62
3.1.6 進位位62
3.2補碼二進製錶示63
3.2.1補碼的錶數範圍65
3.2.2基數轉換66
3.2.3 數軸66
3.2.4溢齣位68
3.2.5負數和零位69
3.3 二進製運算69
3.3.1邏輯運算符69
3.3.2寄存器傳送語言70
3.3.3算術運算符70
3.3.4循環移位運算符72
3.4十六進製和符號錶示72
3.4.1十六進製72
3.4.2基數轉換73
3.4.3字符75
3.5浮點數錶示77
3.5.1二進製小數77
3.5.2餘碼錶示78
3.5.3隱藏位79
3.5.4特殊值80
3.5.5IEEE 754浮點數標準83
3.6跨層的錶示方法85
3.6.1另一種錶示87
3.6.2模型88
總結90
練習90
問題95
第4章計算機體係結構97
4.1硬件97
4.1.1中央處理單元98
4.1.2主存儲器98
4.1.3 輸入設備99
4.1.4 輸齣設備99
4.1.5 數據和控製100
4.1.6 指令格式100
4.2直接尋址102
4.2.1 停止指令102
4.2.2裝入指令103
4.2.3存儲指令103
4.2.4加法指令104
4.2.5減法指令105
4.2.6與和或指令105
4.2.7按位取反和取負指令106
4.2.8裝入字節和存儲字節指令107
4.2.9字符輸入和輸齣指令108
4.3馮·諾依曼機器109
4.3.1 馮·諾依曼執行周期109
4.3.2一個字符輸齣程序110
4.3.3馮·諾依曼漏洞113
4.3.4一個字符輸入程序113
4.3.5十進製轉換為ASCII113
4.3.6一個修改自身的程序114
4.4ISA3層編程115
4.4.1隻讀內存117
4.4.2Pep/8操作係統117
4.4.3使用Pep/8係統119
總結119
練習120
問題121
第四部分匯編層(第5層)
第5章匯編語言124
5.1匯編程序124
5.1.1指令助記符124
5.1.2僞操作126
5.1.3.ASCII和.END僞操作126
5.1.4匯編器127
5.1.5.BLOCK僞操作128
5.1.6.WORD和.BYTE僞操作129
5.1.7使用Pep/8匯編器129
5.1.8交叉匯編器130
5.2立即數尋址和陷阱指令131
5.2.1立即數尋址131
5.2.2DECI、DECO和BR指令131
5.2.3STRO指令133
5.2.4解釋位模式134
5.2.5反匯編器135
5.3符號137
5.3.1帶符號的程序137
5.3.2一個馮·諾依曼示例138
5.4從HOL6層翻譯139
5.4.1cout語句139
5.4.2變量和類型140
5.4.3全局變量和賦值語句141
5.4.4類型兼容143
5.4.5Pep/8符號跟蹤器144
5.4.6 算術移位和循環移位指令145
5.4.7常量和.EQUATE147
5.4.8指令和數據的放置149
總結149
練習150
問題152
第6章編譯到匯編層155
6.1 棧尋址和局部變量155
6.1.1棧相對尋址155
6.1.2訪問運行時棧156
6.1.3局部變量158
6.2轉移指令和控製流159
6.2.1 翻譯if語句160
6.2.2 優化編譯器161
6.2.3翻譯if/else語句162
6.2.4翻譯while循環163
6.2.5翻譯do循環164
6.2.6 翻譯for循環165
6.2.7 麵條代碼166
6.2.8早期語言中的控製流168
6.2.9結構化編程定律169
6.2.10goto爭論169
6.3 函數調用和參數171
6.3.1翻譯函數調用171
6.3.2用全局變量翻譯傳值調用參數173
6.3.3 用局部變量翻譯傳值調用參數176
6.3.4翻譯非空函數調用178
6.3.5 用全局變量翻譯傳引用調用參數180
6.3.6用局部變量翻譯傳引用調用參數183
6.3.7翻譯布爾類型186
6.4 變址尋址和數組188
6.4.1 翻譯全局數組189
6.4.2翻譯局部數組191
6.4.3翻譯作為參數傳遞的數組193
6.4.4翻譯switch語句198
6.5 動態內存分配200
6.5.1翻譯全局指針200
6.5.2翻譯局部指針204
6.5.3翻譯結構207
6.5.4翻譯鏈式數據結構210
總結214
練習214
問題215
第7章語言翻譯原理222
7.1語言、語法和語法分析222
7.1.1連接223
7.1.2 語言223
7.1.3 語法224
7.1.4 C++標識符的語法225
7.1.5有符號整數的語法226
7.1.6上下文相關的語法227
7.1.7語法分析問題227
7.1.8錶達式的語法228
7.1.9C++語法的一部分229
7.1.10 C++的上下文相關性232
7.2 有限狀態機233
7.2.1用FSM來分析標識符233
7.2.2 簡化的有限狀態機234
7.2.3非確定性有限狀態機234
7.2.4 具有空轉移的狀態機235
7.2.5語言符號識彆器237
7.3實現有限狀態機239
7.3.1查找錶分析器240
7.3.2直接編碼分析器241
7.3.3輸入緩衝區類244
7.3.4多token分析器244
7.4 代碼生成249
7.4.1語言翻譯器249
7.4.2 語法分析器特性259
總結260
練習260
問題262
第五部分 操作係統層(第4層)
第8章 進程管理266
8.1 裝載器266
8.1.1 Pep/8操作係統266
8.1.2 Pep/8裝載器267
8.1.3 程序的終止269
8.2 陷阱269
8.2.1 陷阱機製269
8.2.2 RETTR指令270
8.2.3 陷阱處理程序271
8.2.4 陷阱尋址方式斷言273
8.2.5 陷阱操作數地址計算274
8.2.6 空操作陷阱處理程序277
8.2.7 DECI陷阱處理程序277
8.2.8 DECO陷阱處理程序282
8.2.9 STRO陷阱處理程序和OS嚮量284
8.3 並發進程286
8.3.1 異步中斷286
8.3.2 操作係統中的進程287
8.3.3 多處理288
8.3.4 並發處理程序289
8.3.5 臨界區290
8.3.6 第一次嘗試實現互斥291
8.3.7 第二次嘗試實現互斥291
8.3.8 Peterson互斥算法292
8.3.9 信號量293
8.3.10 帶信號量的臨界區295
8.4 死鎖296
8.4.1 資源分配圖296
8.4.2 死鎖策略298
總結298
練習299
問題302
第9章 存儲管理305
9.1 內存分配305
9.1.1 單道程序設計305
9.1.2 固定分區多道程序設計306
9.1.3 邏輯地址306
9.1.4 可變分區多道程序設計308
9.1.5 分頁310
9.2 虛擬內存312
9.2.1 大程序的行為312
9.2.2 虛擬內存313
9.2.3 按需取頁315
9.2.4 替換頁315
9.2.5 頁替換算法316
9.3 文件管理318
9.3.1 磁盤驅動器318
9.3.2 文件抽象319
9.3.3 分配技術319
9.4 錯誤檢測和糾錯碼321
9.4.1 錯誤檢測碼321
9.4.2 編碼要求322
9.4.3 糾正一位錯編碼324
9.5 RAID存儲係統325
9.5.1 RAID 0級:非冗餘條帶化326
9.5.2 RAID 1級:鏡像326
9.5.3 RAID 01級和10級:條帶化和鏡像327
9.5.4 RAID 2級:內存風格的ECC328
9.5.5 RAID 3級:位交叉奇偶校驗329
9.5.6 RAID 4級:塊交叉奇偶校驗329
9.5.7 RAID 5級:塊交叉分布奇偶校驗330
總結331
練習331
第六部分 邏輯門層(第1層)
第10章 組閤電路334
10.1 布爾代數和邏輯門334
10.1.1 組閤電路335
10.1.2 真值錶335
10.1.3 布爾代數336
10.1.4 布爾代數定理337
10.1.5 互補證明338
10.1.6 邏輯圖339
10.1.7 其他錶達方式341
10.2 組閤分析341
10.2.1 布爾錶達式和邏輯圖342
10.2.2 真值錶和布爾錶達式343
10.2.3 兩級電路345
10.2.4 無所不在的NAND346
10.3 組閤設計347
10.3.1 範式348
10.3.2 三變量卡諾圖349
10.3.3 四變量卡諾圖353
10.3.4 對偶卡諾圖355
10.3.5 無關條件356
10.4 組閤設備356
10.4.1 視角356
10.4.2 復用器358
10.4.3 二進製譯碼器358
10.4.4 多路分配器359
10.4.5 加法器359
10.4.6 加法器/減法器361
10.4.7 算術邏輯單元362
10.4.8 LG1層的抽象367
總結368
練習368
第11章 時序電路374
11.1 鎖存器和時鍾觸發器374
11.1.1 SR鎖存器374
11.1.2 鍾控SR觸發器376
11.1.3 主-從SR觸發器377
11.1.4 基本觸發器380
11.1.5 JK觸發器381
11.1.6 D觸發器382
11.1.7 T觸發器383
11.1.8 激勵錶384
11.2 時序分析和設計384
11.2.1 時序分析問題385
11.2.2 預設置和清除387
11.2.3 時序設計387
11.2.4 一個時序設計問題388
11.3 計算機子係統390
11.3.1 寄存器390
11.3.2 總綫391
11.3.3 內存子係統392
11.3.4 地址譯碼396
11.3.5 雙端口寄存器體400
總結401
練習402
第七部分 微代碼層(第2層)
第12章 計算機組成406
12.1 構造ISA3層機器406
12.1.1 中央處理單元406
12.1.2 馮·諾依曼周期408
12.1.3 實現存儲字節指令412
12.1.4 實現加法指令412
12.1.5 實現裝入指令413
12.1.6 實現算術右移指令415
12.2 性能問題416
12.2.1 總綫寬度417
12.2.2 特殊的硬件單元419
12.2.3 3個優化領域421
12.2.4 微代碼423
12.3 MIPS機器425
12.3.1 裝入/存儲體係結構425
12.3.2 指令集427
12.3.3 高速緩存431
12.3.4 MIPS的計算機組成437
12.3.5 流水綫439
12.4 結論445
12.4.1 模型簡化446
12.4.2 更大的景象446
總結447
練習448
附錄Pep/8體係結構451
部分練習參考答案457
索引468
本書清晰、詳細、循序漸進地展示瞭計算機組成、匯編語言和計算機體係結構中的核心思想。本書的很大一部分是建立在一個虛構的計算機Pep/8基礎上的,用它來講解經典的馮·諾依曼機器的基本概念。這種方法的好處是能夠講解計算機科學的核心概念,而又不必拘泥於此類課程中常見的許多不相關的細節。這種方法還能鼓勵學生思考計算機科學底層的原理。本書的範圍也比較廣泛,重點強調瞭與硬件及其相關軟件的處理有關而少有提及的計算機科學主題。
內容摘要
計算機運行在一些抽象層上,在高級抽象層上編程隻是一部分。基於圖1的層次結構,本書展示瞭計算機係統的一個統一的概念。
對應於圖1的7層,本書也分為7個部分:
App7層 應用層
HOL6層 高級語言層
ISA3層 指令集架構層
Asmb5層 匯編層
OS4層 操作係統層
LG1層 邏輯門層
Mc2層 微代碼層
本書主要是按照從上到下、從最高層到最低層的順序來書寫。ISA3層在Asmb5層之前以及LG1層在Mc2層之前講解是齣於教學的目的。在這兩種情況下,暫時用相反的從下至上的方法來講解更自然,有瞭低層的構造模塊就很容易完成上層的構建。
App7層 App7層是單獨一章,介紹瞭應用程序。本章展示瞭抽象層次的概念,建立本書剩下部分的框架。還介紹瞭一些關係數據庫的概念,作為典型計算機應用的例子。同時,還假設學生對文字編輯器或文字處理器有一定的經驗。
HOL6層 HOL6層也是一章,復習瞭C++編程語言。本章假設學生具有某種命令語言的經驗,不一定是C++,可以是Java或C。書中避免瞭C++的高級特性,包括麵嚮對象的概念。如果有必要,教師可以把C++例子翻譯成其他HOL6層的語言。
本章著重介紹瞭C++內存模型,包括全局變量和局部變量、函數參數以及動態分配的變量。也介紹瞭遞歸的問題,因為它依賴於運行時棧上的內存分配機製。還相當詳細地解釋瞭函數調用的內存分配過程,因為本書後麵還會在較低抽象層次上分析這個機製。
ISA3層 ISA3層是指令集架構層,包括兩章,描述瞭一個用於說明計算機概念的虛構的Pep/8計算機。Pep/8是經典的馮·諾依 計算機係統:核心概念及軟硬件實現(原書第4版) 下載 mobi epub pdf txt 電子書 格式
計算機係統:核心概念及軟硬件實現(原書第4版) 下載 mobi pdf epub txt 電子書 格式 2024
計算機係統:核心概念及軟硬件實現(原書第4版) 下載 mobi epub pdf 電子書發貨快
評分ok
評分非常優秀的計算機入門教材,能擴充知識
評分多 好 省 快!!!!!
評分邏輯清晰,翻譯很到位,對計算機的層次講的很清楚
評分ok
評分hAO
評分可以
評分發貨快
計算機係統:核心概念及軟硬件實現(原書第4版) mobi epub pdf txt 電子書 格式下載 2024