计算机组织与系统结构这两部分涉及的内容相互融合,密不可分。无论是国内还是国外,很多高校都逐渐把计算机组成原理和系统结构课程的内容有机结合起来;甚至国外一些经典教材还把密切相关的软件设计的内容也融合到一起。这种方式可以加深学生对计算机软/硬件系统的整体化理解,并有效地增强对学生的计算机系统设计能力的培养。

  本课程将计算机组织和系统结构相结合,主要介绍单处理器计算机系统的组成与系统结构涉及的相关内容。在计算机系统层次结构中,这些内容位于软件和硬件的结合处,不仅涉及计算机硬件设计和指令系统设计,还涉及到操作系统、编译程序和程序设计等部分软件设计技术,是整个计算机系统中最核心的部分。

  本课程力图以“培养学生现代计算机系统设计能力”为目标,贯彻“从程序设计视角出发、强调软/硬件关联与协同、以CPU设计为核心”的组织思路,试图改变国内通常的就硬件讲硬件、软/硬件分离的传统教学方式,以系统化观点全面地介绍计算机组织和系统结构的相关知识和技术。

  为了体现以上思路和目标,本课程在以下几个方面进行了重点考虑和内容组织。

  (1)首先基于“高级语言程序→汇编语言程序→机器指令序列→控制信号”的路线展现程序从编程设计、转换翻译、到最终在CPU上运行的整个过程;在此基础上,用计算机系统层次化的观点阐述该课程在整个计算机系统中的位置、内容和作用,从而为全面建立计算机软/硬件系统的整体概念打下基础。

  (2)将指令执行过程和异常、中断、存储访问、I/O访问等重要概念和技术结合起来进行介绍,力求清晰说明CPU执行指令过程中硬件与操作系统相互切换和协同工作的处理过程,使读者深刻理解软/硬件系统之间的关系与协同工作过程。

  (3)在讲述与程序设计密切相关的系统结构内容(如数据表示、信息存放、操作数寻址、过程调用、程序访问局部性等)时,试图通过对硬件设计与程序设计的关系的说明,建立 “从程序员视角理解计算机硬件系统设计,从硬件设计的视角理解程序设计与执行”的思想,力图在提高学生硬件设计能力的同时,也增强其进行高效的和系统化的程序设计的能力。

  (4)依照“最简单的IAS计算机CPU→总线式CPU→单周期CPU→多周期CPU→基本流水线CPU→动态超标量超流水线CPU”的次序,循序渐进地介绍CPU设计技术及其发展过程,以MIPS处理器和Pentium 4处理器为蓝本,力图使学生全面深入地掌握现代计算机的CPU设计技术。

  (5)结合指令流水线技术介绍基于流水线的编译优化技术,使学生对编译技术与指令流水线实现技术之间的密切关系有一定的认识和理解。

  通过对本课程的学习,要求学生能够掌握计算机系统的各个组成部分的工作原理、组成方法及相互关系,了解计算机系统的层次化结构概念,熟悉典型的计算机结构,弄清硬件与软件之间的接口界面,建立起一个完整的计算机系统的整机概念。

  具体来说,就是:

  (1) 从最终用户的角度,对计算机系统的外部特性有一个宏观的了解。即:清楚知道利用计算机能做什么?计算机由哪几部分组成?各部件的职能是什么?

  (2) 从系统程序设计者角度对计算机的指令集体系结构有所了解。即:知道如何设计指令集,包括指令格式、寻址方式、指令的类型、操作码的编码、数据格式等的设计。

  (3) 从硬件系统设计者角度对计算机系统的内部特性有所了解。即:知道计算机硬件系统中的各功能部件的组织结构及其相互间的互连方式。包括如何设计CPU和ALU?如何构成一个低成本的高速大容量的层次化存储体系?如何实现各类外部设备与CPU或内存之间的数据传输机制?

  (4) 了解当代计算机组织与体系结构中所用的各种新技术及其发展趋势。

  该课程的先行课程是“计算机基础”和“程序设计”。在学习本课程之前,要求学生具备以下背景知识:具有高级语言程序设计方面的知识;对汇编语言程序设计有一定的了解;具有布尔代数方面的基本知识和数字逻辑电路设计基础。

  本课程的特点是内容庞杂、抽象、所学内容前后连贯性强,并且覆盖范围广。因而希望学生在学习过程中,能抓住重点,从一台整机出发,把所学的知识点定位到计算机系统中的对应位置,从而建立前后知识点的关联,并逐步形成该课程的整体内容框架结构。

  本课程内容多、课时少,所以采用在线教学课堂、网上答疑及辅助教学和课后自学相结合的方式。在线教学课堂上主要讲述主干内容和难懂的部分;网上答疑及辅助教学通过提供课程讲义、大量的自测题和习题解答、参考资料等,让学生在在线教学课堂之外,得到更多的辅助学习的机会,以巩固和加深在线课堂所学的内容。