幾十年來,集成電路為各類信息處理提供了硬件支撐,推動了信息產業的蓬勃發展。其中,數字電路與處理器作為一個核心分支,向上承接數據與算法和操作繫統,向下對接基礎電子器件與電路,在信息技術產業發展和電子信息知識體繫中起著承上啟下的重要作用,是產業界和學術界積極投入的重要領域。近年來,隨著人工智能、物聯網等領域的快速發展,數字電路和處理器面臨新的機遇和挑戰。可以預見,在推動信息產業邁向新階段的過程中,培養一大批掌握數字電路與處理器基礎知識、技能和核心理念的人纔,具備重要的意義。
在此背景之下,本書面向“如何使用數字電路與處理器完成計算任務”這一核心問題,歸納總結了兩套解決方案: 為特定應用算法定制的專用硬件思路和各類應用算法通用硬件平臺的軟件思路。硬件思路與軟件思路分別對應數字電路與處理器基礎的核心內容。基於此,圍繞“數字電路”“處理器”兩個關鍵詞,清華大學電子工程繫構建起新的課程體繫,建立高效、深入、統一的學習框架,幫助讀者掌握統一的數字電路和處理器分析與設計技能,理解、領悟其中的核心思想與理念。
從內容結構來看,本書包括數字電路與處理器基礎兩部分內容。前者主要關注布爾代數、組合邏輯、時序邏輯等數字電路的基本原理和分析設計,後者側重於指令集架構、彙編語言、處理器、存儲器和外設等計算機基本原理和分析設計的相關內容。在傳統的電子信息相關專業中,這兩部分內容往往對應“數字電路”“微機原理”兩門課程,並分別配備對應的教學參考資料。本書通過融合這兩部分的內容,從一個更宏觀的整體的角度將兩門課程進行統籌教學,並在清華大學電子工程繫成功完成了一個學期學習這兩部分內容的教學實踐。
從章節編排來看,第1章緒論部分總體介紹數字電路與處理器的背景知識,並初探本書的核心思想。在理論知識部分中,第2章討論數字電路的數學基礎,第3、4章分別介紹組合邏輯電路以及時序邏輯電路的相關內容。第2~4章構成本書的前半部分: 關注“硬件思路”的“數字邏輯”。從第5章開始,本書逐步把視角聚焦到“軟件思路”,帶領讀者走進本書的後半部分:
處理器基礎。第5章以MIPS指令集為典型案例,介紹計算機指令集繫統,第6、7章介紹面向MIPS指令集的處理器設計方法,主要考察三類處理器: 單周期處理器、多周期處理器和流水線處理器。特別地,結合數字電路部分內容,探討如何利用數字電路的設計方法完成基礎處理器的設計與優化。第8、9章分別介紹存儲器與總線外設等相關內容。
我們希望通過撰寫本書,並逐步提供講義幻燈片、課堂教授視頻、作業解析、基礎概念小視頻等配套資料,幫助讀者在現代信息科學與技術的學科體繫中,理解並融會貫通數字電路與處理器、硬件思路與軟件思路的相互關繫,掌握數字電路與處理器的基本原理、分析設計方法和利用電路解決實際問題的能力,領悟數字繫統的設計思想與理念,為在信息技術產業的產業實踐或科學研究打下堅實的基礎。對於本課程後續更深入的知識,可以參考大規模數字集成電路設計和高等體繫架構、數字片上繫統等相關資料。
本書面向數字電路與處理器的學習和授課需求,可供電子信息類、計算機類、自動化類、生物醫學工程等相關專業的本科生以及其他專業感興趣的讀者使用。一方面,本書作為清華大學電子信息科學與技術大類的本科專業基礎核心課程配套教材,與其他多部教材一起組成電子信息科學與技術大類的完整教材體繫; 另一方面,本書也適合希望了解電路和處理器基礎知識的讀者使用,或者在相關專業的培養方案中作為教材與參考書。在清華大學電子工程繫的教學實踐中,共為本課程分配48學時。為了在48學時內完成課程講授,我們在本書的前4章(數字邏輯部分)壓縮和略去了部分內容,共需要約16學時進行講授; 而後5章(處理器基礎部分)則需要約32學時。使用本書時可以根據實際需求適當擴充學時,也可以隻使用本書的前4章作為數字邏輯課程的教材,或隻使用本書的後5章作為處理器基礎課程的教材,各分配32學時進行講授。歡迎廣大讀者和任課教師與編者交流並提出寶貴意見建議。
衷心感謝周潤德老師、葛寧老師對本書提出的寶貴意見和提供的諸多支持。在本書的編寫過程中,朱振華、蔡熠、曾書霖、鐘凱、邱劍濤、陳佳煜、餘金城、吳玨鍵、孫寒泊、李師堯、張智帥、朱昱、張浩瑜等研究生參與了文稿撰寫和整理工作,寧昱誠、程子軒等本科生參與了封面設計和美化工作。
由於編者水平有限,書中難免存在不足之處,敬請讀者批評指正。
編者
2023年11月