前言“计算机组成原理”作为计算机专业核心基础课,主要讨论计算机各大功能部件的基本组成原理及其互连构成整机的技术,在计算机系统能力培养目标中起着重要的承上启下作用,其先导课程包括“数字逻辑”和“汇编语言程序设计”,后续课程为“计算机系统结构”和“计算机接口技术”。该课程的实践教学应该站在贯穿计算机硬件系列课程的角度,引导学生如何利用前导课程的基本知识,设计计算机主要功能部件并构成整机系统。与理论课程配合,实现计算机系统设计能力的培养 。
“计算机组成原理”课程理论综合性强,课程实验尤其是综合实验难度大,存在时间、场所、平台等诸多制约因素,为了从根本上解决实践教学中的困难,作者结合多年的教学经验,进行了一系列卓有成效的实践教学改革。参考国际一流计算机专业相关课程的先进经验,引入了易学易用的开源虚拟仿真实验平台,本着理论实践一体化、实验目标系统化、实验平台虚拟化、教师指导轻松化的原则,历经5年持续的实践教学改革,开发并完善了一系列内容丰富的课程实验,建立了逐层递进、立足计算机系统、设计型实验为主导的实践教学体系。本教材就是相关实践教学改革的主要成果,其主要特点如下。
(1) 理论实践一体化: 相关实验紧扣理论教学重点、难点,课程内容覆盖率达90%以上,有助于构建理论课堂中师生的共同语境,为翻转课堂提供丰富的教学素材,实验内容大多处于布鲁姆认知分类法中的运用、分析、综合、评价4个层次,学生完成系列实验,对相关知识的掌握更透彻,为理论教学提供强力的支撑。
(2) 实验目标系统化: 围绕计算机系统设计与实现的系统能力培养目标,让学生站在硬件工程师的视角,从逻辑门电路开始,逐步设计运算部件、存储器、数据通路和控制器、冲突冒险机制,直至设计完整的流水CPU来深入理解计算机软硬件系统,将系统能力培养的复杂工程问题——五段流水CPU设计的高难度任务分解成若干难度递进的子任务和单元实验。
(3) 实验平台虚拟化: 主要实验均采用跨平台开源的Logisim虚拟仿真平台,该平台简单易学、易调试且无实验成本,突破传统实验对空间和时间的要求。美国加州大学伯克利分校CS61C、康奈尔大学CS3410课程均采用了该平台。实验平台采用分离数字电路对象构建原理图的方式进行CPU系统设计和仿真,有效地延续了数字逻辑课程的设计方法,有利于培养学生硬件设计思维。无须另外开设硬件描述语言类先导课程,也回避了硬件描述语言过于抽象、硬件设计程序化、学习周期长的问题。
(4) 实验过程游戏化: 借鉴游戏闯关的设计理念,将具有高难度挑战性的实验总目标细分成若干可明确检查的学习关卡。实验内容和难度逐渐递进,通过各阶段成果实时得分增强学习的及时反馈,提高学习趣味性;为学生提供丰富的测试用例以及自动检测工具等学习装备,让学生在较短时间内体验更多的设计内容;实验完成率高,学生成就感强,有助于激发学生的持续学习热情,在985高校和普通院校的实际应用中均取得了很好的效果。
(5) 教师指导轻松化:传统硬件系列实验检查和指导难度大,教师劳动强度高,通过实验输入输出界面规范化、测试用例标准化、性能指标数据化、实验测试评分自动化等一系列手段,提升了实验的易检查性,大大降低了教师工作负担。
本书前7章按“计算机组成原理”各章节内容进行组织,每章均结合各章的重点、难点设置若干实验,各实验均明确给出学生的学习目标和实验内容,并进行适当的背景知识补充,实验思考部分可有效地引导学生进行实验。其中,第1章为数据表示实验,设计了若干程序运行验证性实验,有助于学生站在软硬协同的角度理解数据表示;另外还设计了汉字编码、海明编校验码、CRC校验码实验,其中流水传输实验创造性地模拟了一个编码传输环境,让学生理解编码传输概念的同时,提前熟悉流水线的相关知识。第2章为运算器组成实验,主要包括先行进位加法器实验、MIPS运算器设计实验、阵列乘法器设计实验、原码及补码1位乘法器设计实验。第3章为存储系统实验,主要包括存储扩展实验、MIPS RAM设计实验、MIPS寄存器文件设计实验、虚拟存储器软件仿真实验,另外还包括3个Cache相关的实验,既包括Cache性能仿真,也包括Cache硬件设计实验,填补了组成原理实验在这方面的空白。第4章为MIPS汇编程序设计实验,主要介绍MIPS指令系统以及MIPS汇编程序设计方法,并给出若干MIPS汇编程序设计实验。第5章MIPS处理器设计实验为课程实验重点,包括MIPS单周期处理器设计实验、MIPS多周期处理器硬布线控制器设计实验、多周期处理器微程序控制器设计实验、基于FPGA的单周期处理器实验。第6章为MIPS五段流水机制设计实验,包括理想流水线CPU设计实验、气泡流水线CPU设计实验、重定向流水线CPU设计实验、动态分支预测机制设计实验等。第7章为输入输出系统实验,包括中断与轮询方式编程实验、单级中断机制设计实验、多级中断机制设计实验、流水中断机制设计实验等。第8章介绍虚拟仿真平台Logisim使用说明,方便师生快速掌握Logisim使用技巧。第9章给出Logisim中常用组件库参考手册,介绍不同组件的详细使用信息。第10章简要介绍MIPS汇编仿真器MARS的主要功能和使用方法。
注意: 本书图中的逻辑电路符号与平台软件中的符号一致。
本书实验众多,内容丰富,教学过程中教师可以根据学生具体情况有针对性地选择部分内容开展实验,学生也可以根据自己的学习情况自行选择实验。本书适合作为高等学校计算机相关专业“计算机组成原理”课程的实验教材,也可供IT工程技术人员参考。
特别感谢华中科技大学计算机科学与技术学院秦磊华教授,本书正是在秦教授的策划和不断鞭策鼓励下才得以完成;感谢华中科技大学计算机卓越1201班的全体学生,是他们和老师的高度配合才有了今天的一系列成果,尤其感谢王汉杰、徐钦振对Logisim手册的翻译工作;感谢华中科技大学计算机学院2013级、2014级、2015级全体学生,本书大多数实验均经过了他们多次检验和持续改进;最后感谢在我身后默默支持的家人,谢谢他们!
由于水平有限,书中难免存在错误和疏漏之处,敬请同行和广大读者批评指正。
作者2018年7月