有兩個原因讓我在為本書寫序時有些猶豫。一是我沒有給書寫序的經驗;二是恐自己水平有限,寫的序不能充分表述或突出這樣一本優秀教材的獨特之處而影響該書的推廣和營銷。不過,在經過慎重考慮后,我還是接受了這個挑戰。凡事總有頭一回吧,沒有經驗不是推脫的理由。另外,筆者在密歇根大學安阿伯分校的三年間曾耳聞目睹本書第一作者Yale Patt的過人學識與非凡個性,寫起序來總會比不認識他的人有些優勢。鑒于筆者水平有限,不當之處還請讀者多多包涵。
Yale Patt曾是美國密歇根大學計算機體系結構實驗室主任,被IEEE Spectrum稱為美國計算機界的兩位卓越泰斗(Luminary)之一(另一獲此稱號的是斯坦福大學的Donald Knuth),在計算機體系結構領域有著廣泛的影響。本書不光是密歇根大學計算機專業的經典基礎教材,也是多所美國知名大學,如得克薩斯大學奧斯汀分校、萊斯大學、明尼蘇達大學雙子城分校、喬治亞理工學院、伊利諾伊大學和西北大學的計算機專業基礎教材。
也許你聽過這樣一個故事:在20世紀50~60年代,美國通用公司的一個大型發電機出了問題,所有的操作人員及工程技術人員面對一大堆的儀表和旋鈕一籌莫展。于是,他們叫來了一位專家。該專家看了一下,便拿出一把螺絲刀,將一個旋鈕逆時針轉動了35度,發電機就正常運轉了。這個專家開出的賬單為1000美元。通用公司覺得為這位專家僅花兩分鐘轉動一個旋鈕就完成的工作就支付1000美元太多,便要求一份更詳細的說明。兩天后,這位專家寄來了新的賬單:
·將旋鈕逆時針方向轉動35度:0.75美元
·知道應轉動哪個旋鈕及轉動幅度:999.25美元
一本好的教科書不應只教導學生轉動A旋鈕35度,而是應教會學生為什么要轉動A旋鈕及為什么只能轉動不多不少的35度。這也正是本書的優點所在。
與大多數講述計算機組成原理或程序設計語言的書不同,本書并不是簡單地討論計算機組成原理或程序設計語言,而是從計算機整體系統的高度將軟硬件連貫起來進行闡述。它強調的是理解,而不是死記硬背;強調的是軟件與硬件結合,而不是軟硬件的分別教授與學習。本書本著軟件與硬件齊頭并進的思路,從硬件的基本構件一直講到軟件的高級程序設計與構造,使學生在學習過程中能夠軟硬件融會貫通,相互印證,從而提高學習的廣度、深度和效果,為后續的計算機專業課(如操作系統、計算機系統設計與結構、算法設計與分析、高可靠軟件工程理論等)打下基礎。
本書最大的特點是其提倡的層次轉換概念,即從問題開始到計算機運算出結果可以分為七個層次。通過七個層次的轉換,即可完成問題到結果的轉變。這七個層次及其轉換是:問題到算法的轉換、算法到程序設計語言的轉換、程序到指令集結構(ISA)的轉換、指令集結構到微觀結構的轉換、微觀結構到電路的轉換和電路到電路組件的轉換。全書對每個層次轉換都進行了深入的闡述,講解了為什么需要這些轉換和沒有這些轉換會帶來什么困難。美國多所大學的教學實踐表明,在教學中加入這種層次轉換的概念會極大地提高學生對計算機軟硬件的理解。
本書采取的策略是由底至上。在對計算機的哲學原理進行了簡要綜述后,即從晶體管開始,對邏輯門、觸發器、邏輯結構和內存實現進行分別詳細的討論。在此基礎上,再對馮·諾依曼執行模式進行剖析,構建一個簡單的LC計算機。然后上升到軟件層,對計算機匯編語言和高級程序設計語言C進行講解,重點將程序設計語言的各種數據類型和構造與底層的硬件構造聯系起來,從而使學生在深層次上理解程序設計語言里各種構造的來龍去脈以及計算機軟硬件之間有機且千絲萬縷的聯系。
本書的使用方式有多種,我推薦以下四種比較適合國內教學體系的使用方式:
1. 密歇根模式:作為計算機軟硬件原理的入門教材,無需先修課程。該模式在一個學期覆蓋本書全部內容,時間安排為本科第一學年的第一學期。該模式要求學生自學的量很大,挑戰性高,非常適用于有才華、進取心強的學生。
2. 正常模式:作為軟硬件專業入門教材,無需先修課程,在一個學期覆蓋大部分內容,但跳過第10章第3節和第10章第4節、第16章、第18章和第19章。時間安排為本科第一年的第二學期。該模式較密歇根模式來說負擔稍輕,但仍具有相當的挑戰性。
3. 第二模式:在學生已經進行了專業入門教育(如程序設計、數據結構和數字電路等)后使用本書作為第二課程的教材。這種模式在一個學期覆蓋本書全部內容。而講課時間則安排在本科二年級上學期。該模式適合于計算機專業的大多數學生。
4. 分治模式:將本書的內容分為兩個學期講授。第一學期講授1~10章,第二學期講授11~19章。時間安排為本科一年級下學期和二年級上學期。這是使用本書的最優方式。
本書結構緊湊、風格鮮明、內容精辟、條理清晰、文筆流暢、語言優美,閱讀起來引人入勝,令人愛不釋手。本書還引入了大量的典故和比喻(當然,有些典故和比喻需要讀者事先了解西方文化背景才能完全領悟),讓人感覺不到是在讀一本計算機教科書,而像是在讀一本幽默有趣的長篇小說,或者借用Donald Knuth的話,“本書就像是一部藍色的詩歌”。
好咖啡要和朋友一起品嘗,好書也要和朋友一起分享。筆者強力推薦國內高校計算機專業的師生和所有對計算機軟硬件有著濃厚興趣的人士都讀一讀本書。讀完本書后,你對計算機系統的理解將會達到一個嶄新的境界。相信我,你不會失望的。