本書包含五個部分,共18章。*部分是信息系統中的計算機導論,簡要說明組成現代計算機系統的每個組件。其余四個部分分別講述計算機體系結構的一個方面。第二部分論述計算機中數據的作用和表示方法式。第三部分介紹硬件體系結構和操作的概念,講解計算機的組件并展示這些組件如何協作起來執行計算機指令,還探討了CPU、內存和I/O外設之間的交互。第四部分對計算機網絡原理進行介紹。第五部分探討系統軟件,即用戶和應用程序可訪問的、管理計算機系統和組件資源的程序。除了教材中使用的大量實例外,網絡補充章節也提供了很多實例研究。
目前,世界上有不少便捷、有用的在線學習資源,維基百科、谷歌、各種新聞源、數以百萬計的網站和博客,甚至是YouTube,幾乎可以提供任意主題的信息訪問,這些主題能觸發你的好奇心,激發你的學習興趣。然而,我仍然認為,要深入理解某個東西,老式的紙質印刷教材仍然是一種綜合式的重要方法,并且無可替代。或許電子書可以與之媲美,但它也屬于教材。
每當我打開一本新書時,不管什么主題,我想知道的第一件事情就是這本書提供了哪些內容,是否值得去讀。對于此刻你手里拿著的或平板電腦上的這本書,我愿意試著回答這個問題。
信息系統和技術領域是一個非常令人興奮的領域,似乎每天都有新的發展,這些發展能改變我們產生和使用信息的方式。當然,這也帶來了挑戰。要成為信息系統或信息技術領域的成功人士,我們必須具有適應性和靈活性。
很多變化都是圍繞著計算機系統技術而發生的,畢竟計算機是信息技術的基礎。因此,深入理解計算機系統是取得成功的基本要素。我們必須掌握每項新技術,評估其價值,并將其放入計算機系統知識體系里。
本書的主題是計算機體系結構。計算機體系結構描述了數字計算機和基于計算機的設備的結構和操作。計算機體系結構關注的是硬件的運行方法,操作系統軟件提供的服務,數據的獲取、處理、存儲和輸出,以及基于計算機的設備之間的交互。
有這樣一種傾向,就是信息系統和技術領域內的人員常常會忽視計算機體系結構的學習。畢竟,技術變化如此之快—到我寫完本書的時候,某些技術可能已經過時,那么是否還值得去理解它們?毫無疑問,計算機技術發展非常快。智能手機的計算能力比25年前的大型計算機強很多,內存、硬盤和閃存的容量,顯示和多媒體能力以及易用性等在幾年前都是不可想象的。更重要的是,現在將系統連接在一起協同工作,也是十分平常和簡單的。
然而很有意思的是,在過去的70年里,隨著技術的快速發展,計算機體系結構的重要概念變化并不大。一些新技術仍然基于多年前提出的基本體系結構概念。現代計算機系統的體系結構是20世紀40年代開發的。現代個人計算機或智能手機里的指令集和20世紀五六十年代的計算機指令集幾乎一樣。現代操作系統技術開發于20世紀60年代,圖形用戶界面是基于20世紀60年代的一個項目而開發的,互聯網的構建也是來自40多年前提出的概念。
可見,理解計算機體系結構使我們能夠立于技術變化的浪潮之中,處理新技術時會充滿安全感、充滿樂趣。當你讀完本書時,將會掌握大量關于計算機工作原理的知識,能夠很好地理解操作概念以及組成計算機的硬件和系統軟件。你會明白計算機間以及數據和計算機間的交互。除此之外,你會學到很多專業術語,這在聚會和工作面試時能“炫耀”一下。
本書是面向各個層次的讀者設計的,既適合本科生也適合研究生,內容針對信息系統和信息技術專業。盡管本書假定學生已經熟悉個人計算機,但并不要求具有明確的預備知識。本書也假定學生掌握(并非必須掌握)一定的編程技術,盡管書中并無程序設計。書里的程序代碼有時會用作例子來澄清一些思想,程序設計的知識對于理解指令集設計和程序執行概念很有幫助。本書的內容遵照信息技術基礎建設課程和核心概念標準,同ACM、AIS標準IS2010以及IT2008描述的一樣。盡管作為系統設計和實現方案課程的教材時,本書的內容或許更有用,但在課程計劃中本書可放置在任意位置。
大部分老師在一學期內講不完本書。在組織上,本書允許老師根據經驗和學生的需求,選擇不同深度的重要模塊來講述。另一方面,我寫本書的目的是,在正規課程完成很久以后,它也可以作為學生的參考書。專業人士可借此查閱一些基本概念,了解最新發展。
本書是我在本特利大學給本科生和研究生講授30多年計算機信息系統課程的結晶。總的來說,學生對其內容和方法非常歡迎。很多學生畢業后返校時告訴我,他們的職業發展直接受益于本領域的知識。隨著時間的推移,學生的評論對我不斷改進本書也有很大的幫助。
熟悉以前版本的人會注意到,近年的版本進行了大幅修訂,以反映當前的技術實踐和趨勢。特別是,不考慮將計算機連接在一起的網絡而是一個部件一個部件地論述計算機,這種方法不再合適了。現在,計算機網絡技術已完整包含在相應的章節里;同時,作為系統整體,本書進一步強調了計算機系統各部件的集成和協同工作。當然,基本的原理、組成、方法和早期版本中的內容還是大體一樣的,這反映了基本原理不變的本質。
第5版的組織結構
作為本書的作者,對我來說最大的挑戰是既要保持第1版建立的指導思想不變,又要反映出計算機使用方式、新技術快速部署的主要變化,以及反映這些變化的信息系統/信息技術教程的演變。本書對以前版本進行了重大更新,雖然這種更新是增量式的。這反映了作為重要計算設備的平板電腦和智能手機的使用量的快速增長。網絡技術的內容有較大的變動,進行了重新組織。當然,以前版本的讀者會發現很多內容是相似的,畢竟計算機體系結構的基本原理本質上保持很多年未變了,雖然在信息系統/信息技術中,但計算機的使用方式可能已經改變了。
本書分為五個部分,總共18章,外加四個放
---作者簡介---
埃夫﹒恩格蘭德(Irv Englander) 本特利大學榮休教授。他擁有麻省理工學院(MIT)計算機科學博士學位,從事計算機方面的研究已經超過50年,涉及邏輯電路、計算機控制系統、操作系統和應用軟件等眾多領域。
---譯者簡介---
朱利 西安交通大學軟件學院副教授、博士生導師,現任教學科研副院長。主要研究方向包括高等計算機網絡和高性能計算,以及軟件度量和質量控制。
出版者的話
譯者序
前言
第一部分 計算機系統概述
第1章 計算機和系統 3
1.0 引言 3
1.1 起點 6
1.2 計算機系統的組成 8
1.2.1 硬件組件 9
1.2.2 軟件組件 11
1.2.3 通信組件 12
1.2.4 計算機系統 12
1.3 虛擬化的概念 14
1.4 協議和標準 14
1.5 本書概覽 15
1.6 計算機體系結構簡史 16
1.6.1 早期工作 17
1.6.2 計算機硬件 18
1.6.3 操作系統 20
1.6.4 通信、網絡和互聯網 24
小結與回顧 25
擴展閱讀 25
復習題 26
習題 26
第2章 系統概念和系統架構簡介 27
2.0 引言 27
2.1 系統的一般概念 27
2.2 IT系統的架構 32
2.2.1 分布式處理系統 34
2.2.2 系統架構師的作用 42
2.2.3 谷歌:系統架構實例 42
2.2.4另一個實例:Facebook的應用架構 45
小結與回顧 46
擴展閱讀 47
復習題 47
習題 47
第二部分 計算機中的數據
第3章 數值系統 51
3.0 引言 51
3.1 作為物理表示的數值 51
3.2 不同進制的計數 52
3.3 不同進制下的算術運算 55
3.4 不同進制下的數值轉換 57
3.5 十六進制數和算術 59
3.6 特殊轉換情況—相關的進制 60
3.7 小數 61
3.8 混合數值轉換 65
小結與回顧 65
擴展閱讀 66
復習題 66
習題 67
第4章 數據格式 70
4.0 引言 70
4.1 概述 70
4.2 字母字符數據 72
4.3 可視數據 77
4.3.1 位圖圖像 78
4.3.2 對象圖像 81
4.3.3 將字符表示為圖像 83
4.3.4 視頻圖像 84
4.4 音頻數據 85
4.5 數據壓縮 87
4.6 頁面描述語言 89
4.7 計算機內部的數據格式 89
小結與回顧 91
擴展閱讀 92
復習題 92
習題 93
第5章 數值數據表示 96
5.0 引言 96
5.1無符號二進制數和二進制編碼的十進制表示 96
5.2 有符號整型數的表示 99
5.2.1 符號-幅值表示法 99
5.2.2以9為基的十進制補碼表示和以1為基的二進制補碼表示 101
5.2.3 10的補碼和2的補碼 105
5.2.4 溢出條件和進位條件 107
5.2.5 其他進制 108
5.2.6 補碼數值的規則小結 109
5.3 實數 109
5.3.1 指數記數法回顧 109
5.3.2 浮點數格式 111
5.3.3 規格化和浮點數的格式化 113
5.3.4 編程實例 114
5.3.5 浮點數計算 115
5.3.6 計算機中的浮點數 117
5.3.7 十進制和二進制之間的轉換 119
5.4 編程注意事項 120
小結與回顧 120
擴展閱讀 121
復習題 121
習題 122
第三部分 計算機體系結構和硬件操作
第6章 “小伙計”計算機 129
6.0 引言 129
6.1 “小伙計”計算機的結構 129
6.2 “小伙計”計算機的操作 130
6.3 一個簡單的程序 132
6.4 一個擴展的指令集 133
6.5 指令周期 135
6.6 關于計算機體系結構的說明 138
小結與回顧 138
復習題 138
習題 139
第7章 CPU和內存 141
7.0 引言 141
7.1 CPU的組成 142
7.2 寄存器的概念 143
7.3 內存單元 145
7.3.1 內存的操作 145
7.3.2 內存容量和尋址限制 148
7.3.3 主存的特征和實現 149
7.4 “取-執行”指令周期 150
7.5 總線 153
7.6 指令類型 156
7.6.1數據移動指令 157
7.6.2 算術指令 159
7.6.3 布爾邏輯指令 159
7.6.4 單操作數操作指令 159
7.6.5 位操作指令 160
7.6.6 移位和循環移位指令 160
7.6.7 程序控制指令 161
7.6.8 棧指令 161
7.6.9 多數據指令 164
7.6.10 其他指令 164
7.7 指令字格式 165
7.8 指令字的需求和約束 166
小結與回顧 168
擴展閱讀 169
復習題 169
習題 170
第8章CPU和內存:設計、增強和實現 172
8.0 引言 172
8.1 CPU的架構 173
8.1.1 概述 173
8.1.2 傳統的現代架構 173
8.2 CPU的特征與增強 174
8.2.1 概述 174
8.2.2“取-執行”周期的時序問題 175
8.2.3 一種改進CPU性能的模型 176
8.2.4標量和超標量處理器的組成 179
8.3 內存增強 182
8.3.1 寬路徑內存訪問 183
8.3.2 內存交叉 183
8.3.3 Cache存儲器 184
8.4 現代超標量CPU 187
8.5 多處理技術 189
8.6 關于實現的幾點評述 191
小結與回顧 192
擴展閱讀 192
復習題 193
習題 194
第9章 輸入/輸出 196
9.0 引言 196
9.1 典型I/O設備的特性 197
9.2 編程式I/O 201
9.3 中斷 203
9.3.1 服務中斷 203
9.3.2 中斷的使用 204
9.3.3 多重中斷和優先次序 208
9.4 直接內存訪問 211
9.5 I/O控制器 214
小結與回顧 215
擴展閱讀 215
復習題 216
習題 216
第10章 計算機外設 218
10.0 引言 218
10.1 存儲的層次 219
10.2 固態存儲器 220
10.3 磁盤 221
10.4 光盤存儲 227
10.5 磁帶 229
10.6 顯示器 230
10.6.1 顯示器的基本設計 230
10.6.2 圖形處理單元 232
10.6.3 液晶顯示技術 234
10.6.4 OLED顯示技術 234
10.7 打印機 235
10.7.1 激光打印機 236
10.7.2 噴墨打印機 236
10.8 用戶輸入設備 237
10.8.1 鍵盤