“计算机组成原理”是一门理论性、工程性、技术性和实践性都很强的核心专业基础课程,在计算机学科系列课程中处于承上启下的作用。 课程教学目标是通过相关的教学活动,帮助学生理解计算机基本组成部件(包括运算器、控制器、存储器、输入/输出)的结构、工作原理、内部运行机制和设计方法。加深学生对计算机软、硬件系统的整体化理解,建立硬件/软件协同的整机概念,并有效增强学生的计算机系统设计能力。课程学习为研究生考试、后续课程(如系统结构,并行编程、嵌入式系统、接口技术)的学习,参加IT企业招聘等都奠定了坚实的基础。
本MOOC 课程具有如下特点:
1.面向系统能力培养的教学设计
结合课程特点与教学目标,创造性提出基于构造观、系统观、工程观的教学设计。其中,构造观重在培养软/硬功能部件设计方法,提升部件级的设计能力;系统观强调硬件结构对软件执行正确性及性能的影响,提升学生软硬协同的系统分析与解决问题的能力;工程观训练考虑工程制约因素,选择恰当技术、优化工程的意识,提升系统实现能力。
2.精心设计实验内容
结合教学团队多年系统能力培养实践教学经验,参考国际一流计算机专业相关课程的先进经验,引入了易学易用的免费开源虚拟仿真实验平台,本着理论实践一体化、实验目标系统化、课内课外协同化等原则,建立了逐层递进、立足计算机系统、设计型实验为主导的实践教学体系开发了系列原创的课程实验,引导学生从逻辑门电路开始逐步设计运算部件、存储器、数据通路和控制器、流水线冲突冒险机制直至完整的MIPS 流水CPU来深入理解计算机软硬件系统。
通过该课程的学习,使学生全面、系统地掌握冯·诺依曼结构计算机各组成部件的基本结构、工作原理、内部运行机制和基本设计方法;加深学生对计算机软、硬件系统的整体化理解,建立硬件/软件协同的整机概念,并有效增强学生的计算机硬件素养和软件协同的系统观,有效增强学生的计算机系统设计能力。具体目标包括:
课程学习完成后,学生应该具备以下几方面的基本能力:
1)建立计算机系统的层次化观点,了解计算机系统不同层次上的抽象;
2)掌握定点数和浮点数的表示方法,理解数据表示对软/硬件系统设计的影响;
3)掌握基本算术、逻辑运算部件的工作原理及设计方法;
4)掌握存储器层次结构工作原理,理解存储器层次结构对程序执行性能的影响;
5)了解指令系统设计的基本原理,掌握不同寻址方式的特点及其对指令执行性能的影响;
6)掌握单周期数据通路、多周期数据通路和流水线数据通路及其控制部件的工作原理和设计方法,掌握硬布线控制器和微程序控制器的实现方法;
7)掌握基于Logisim仿真软件进行简单计算机系统设计的能力;
8)了解计算机系统的国内外主流技术和发展趋势;
9)增强学生软硬协同的系统观;
10)普遍提高学生的硬件素养,提升学生软硬协同的程序设计能力和计算机系统能力。
数字电路与逻辑设计、硬件描述语言、汇编语言等
1.参考网站:
1)https://inst.eecs.berkeley.edu/~cs61c/
(UC Berkeley Machine Structure)
2)https://inst.eecs.berkeley.edu/~cs150/
(UC Berkeley Components and Design Techniques for Digital System)
3)https://inst.eecs.berkeley.edu/~cs152/
(美国UC Berkeley Computer Architecture and Engineering)
4)https://www.stanford.edu/class/ee108b
(美国Stanford Digital SystemII )
5)https://www.eceNaNu.edu/~ece447/
( Carnegie Mellon Introduction to Computer Architecture )
6)https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
2.参考教材:
1)(美)帕特森,(美)亨尼斯 著,王党辉等译。计算机组成与设计:硬件/软件接口(原书第5版). 机械工业出版社,2015年7月
2) (美)布赖恩特(Bryant,R.E.).深入理解计算机系统,机械工业出版社,2016年出版
3) 袁春风. 计算机组织与结构。清华大学出版社,2010年出版
4)秦磊华.计算机组成原理。清华大学出版社,2010年出版