前言 几十年来,集成电路为各类信息处理提供了硬件支撑,推动了信息产业的蓬勃发展。其中,数字电路与处理器作为一个核心分支,向上承接数据与算法和操作系统,向下对接基础电子器件与电路,在信息技术产业发展和电子信息知识体系中起着承上启下的重要作用,是产业界和学术界积极投入的重要领域。近年来,随着人工智能、物联网等领域的快速发展,数字电路和处理器面临新的机遇和挑战。可以预见,在推动信息产业迈向新阶段的过程中,培养一大批掌握数字电路与处理器基础知识、技能和核心理念的人才,具备重要的意义。 在此背景之下,本书面向“如何使用数字电路与处理器完成计算任务”这一核心问题,归纳总结了两套解决方案: 为特定应用算法定制的专用硬件思路和各类应用算法通用硬件平台的软件思路。硬件思路与软件思路分别对应数字电路与处理器基础的核心内容。基于此,围绕“数字电路”“处理器”两个关键词,清华大学电子工程系构建起新的课程体系,建立高效、深入、统一的学习框架,帮助读者掌握统一的数字电路和处理器分析与设计技能,理解、领悟其中的核心思想与理念。 从内容结构来看,本书包括数字电路与处理器基础两部分内容。前者主要关注布尔代数、组合逻辑、时序逻辑等数字电路的基本原理和分析设计,后者侧重于指令集架构、汇编语言、处理器、存储器和外设等计算机基本原理和分析设计的相关内容。在传统的电子信息相关专业中,这两部分内容往往对应“数字电路”“微机原理”两门课程,并分别配备对应的教学参考资料。本书通过融合这两部分的内容,从一个更宏观的整体的角度将两门课程进行统筹教学,并在清华大学电子工程系成功完成了一个学期学习这两部分内容的教学实践。 从章节编排来看,第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月