根据多年的教学经验,我们总结了各章节的重点和难点问题,并给出了相应的解决办法

第1章 计算机系统概述

  主要教学目标:是让学生概要了解整个计算机系统全貌以及本课程在计算机系统中的位置,并使学生掌握如何评价系统的性能。

  重点:冯诺依曼计算机结构特点、计算机硬件的基本组成、计算机的工作过程、计算机系统的层次结构;本章没有难点问题。

第2章 数据的机器级表示

  主要教学目标:是使学生掌握计算机内部各种数据的机器级表示。主要包括:无符号整数和有符号整数的表示、IEEE754浮点数表示标准、西文字符和汉字的编码表示、十进制数的二进制编码表示、高级语言中各种类型数据的表示和转换、数据的宽度和大端/小端存放顺序及对齐方式,以及常用检/纠错码的编码表示与使用方法。

  重点:无符号数的表示、定点数的补码表示、IEEE754浮点数标准。

  难点:IEEE浮点数的表示范围、特殊数(NaN、无穷大等)的浮点数表示。对于难点问题,主要是通过程序设计例子来说明,把抽象的表示问题放到程序中具体变量的类型定义、类型转换和表达式计算中,以增强学生的感性认识。

第3章 运算方法和运算部件设计

  主要教学目标:是使学生掌握核心运算部件ALU及计算机内部各种基本运算算法和部件。

  重点:定点数的移位运算和加/减运算、浮点数加减运算、ALU的功能和实现

  难点:定点数乘法/除法运算、浮点数乘法/除法运算、快速进位链。
由于难点问题并不是重点,所以对难点问题的教学主要注重方法和思路的讲解,而不过多地强调细节上的问题,也不要求学生死记硬背递推公式。
  我们先从高级语言和机器指令中涉及的各类运算开始分析,使学生能够容易地理解计算机内部为何需要提供不同的运算部件,这样也使学生在今后编程时自然会想到程序中的运算是如何在计算机硬件上实现的,有利于提高学生的程序设计和程序调试能力。

第4章 存储器分层体系结构

  主要教学目标:是使学生掌握构成存储器分层体系结构的几类存储器的工作原理和组织形式。要求学生深刻理解程序访问局部性的意义,学会利用时间局部性和空间局部性编写高效的程序;了解指令执行过程中访问指令和访问数据的整个过程,以及存储访问过程中硬件和软件的分工和联系,并深刻理解提高各种访问命中率的意义。

  重点:存储器分层结构、高速缓冲存储器、虚拟存储器概念、地址变换

  难点:主存储器与CPU的连接、Cache和主存之间的映射、虚拟存储器概念。
对于前两个难点问题,我们通过大量有代表性的例子来建立学生的感性认识;虚拟存储器概念,对于大多数学生,甚至不少任课教师都很难理解透彻。教材中一般解释虚拟存储器是程序员编写程序时所用的逻辑地址确定的一个虚拟地址空间。这样的解释说明对学生来说相当抽象。我们在教学过程中,把虚拟存储器的概念和高级语言程序向可执行文件的转换过程结合起来介绍,并在介绍指令系统的过程调用时,结合栈帧、堆区等概念进行说明,明确告诉学生虚拟地址空间可以如何划分,怎样与磁盘交换区建立映射等等,通过一个虚拟存储器概念,使学生把指令系统、操作系统、编译器和计算机硬件等各部分内容关联起来,形成一个立体的概念网络。

第5章 指令系统设计

  主要教学目标:是使学生建立高级语言与汇编语言之间、汇编语言与机器语言之间的关系;掌握指令系统设计中指令格式、操作数类型、寻址方式、操作类型等实现方式;了解计算机硬件对过程的支持、可执行程序的生成过程;并深刻理解CISC和RISC之间的差别。

  重点:高级语言与低级语言的关系、指令表示格式、寻址方式、计算机硬件对过程的支持、可执行程序的生成过程、用户程序在虚存空间的配置和划分

  难点:硬件对过程的支持、可执行程序的生成、用户程序在虚存空间的配置和划分 对于几个难点问题,虽然对于几个难点问题,虽然目前国内教材中很少提到,但对学生全面理解高级语言程序在计算机上的实现过程,以及层次化存储器系统都非常重要,它们是使学生建立硬件和软件之间、高级语言和低级语言之间关系的重要内容。我们在讲解这部分内容时,通过图示、举例和作业练习等措施来强化学生对概念的认识。

第6章 中央处理器设计

  主要教学目标:是使学生了解CPU的主要功能、CPU的内部结构、指令的执行过程、数据通路的基本组成、数据通路的定时、数据通路中信息的流动过程、控制器的实现方式、硬连线路控制器的设计、微程序控制器的设计、异常和中断的概念等,为进一步深入理解流水线CPU的设计原理和高级流水线技术打下基础。

  重点:数据通路的定时、单周期数据通路、单周期控制器、微程序概念、带异常和中断处理的处理器实现

  难点:数据通路的定时、多周期数据通路、硬连线路控制器、微程序设计、带异常和中断处理的处理器实现。
由于这部分内容比较细节和琐碎,特别是有关多周期数据通路及其控制器的设计部分,如果上课时一步一步展开来讲解,会使学生感到冗长乏味,所以,我们在上课时主要对基本思想、基本步骤和结论进行说明,而在教材和讲义中把每条指令的每个周期的情况详细进行了描述,让学生课后自己看书和讲义。

第7章 指令流水线设计

  主要教学目标:是使学生深刻理解现代计算机的CPU是如何执行指令的,包括:指令流水线基本原理、流水段寄存器的概念、流水线数据通路的设计、流水线的控制信号、结构冒险及其处理、数据冒险及其处理、转发技术、控制冒险及其处理、分支预测原理、超标量和动态流水线的概念;并让学生初步了解在指令流水线中如何处理异常和中断,以及各种存储器访问缺失对指令流水线的影响。

  重点:指令流水线基本原理、流水段寄存器的概念、流水线数据通路的设计、流水线冒险、转发技术、分支预测原理、超标量和动态流水线。

  难点:数据冒险及其处理、转发技术、控制冒险及其处理、分支预测原理、超标量和动态流水线。
  对于数据冒险和数据转发技术,通过在流水线数据通路中用动画演示具体指令的执行过程来进行说明,使难懂的概念变得容易理解;对于控制冒险,也是通过例子来引入问题,再通过图示说明预测错误时的冲刷过程;对于分支预测原理,通过将一个循环结构的高级语言程序段转换为一个循环结构的指令序列来具体说明每次循环中分支指令的预测情况,使学生能从程序员的角度来理解流水线处理器中分支指令的执行;对于超标量和动态流水线,采用从一般到具体的方式来说明,首先给出一个动态超标量处理器的框架,然后通过Pentium 4的具体结构展开说明,使学生既有宏观上的认识,又和具体的现实联系起来。因此,学起来不会感到是空中楼阁。

第8章 系统总线

  主要教学目标:是使学生掌握现代计算机中各主要模块之间的总线互连方式。包括:总线基本概念、总线设计考虑的因素、总线标准及其现代计算机内部的总线互连结构。

  重点:总线的基本概念、总线组成及性能指标、总线互连结构

  难点:总线通信控制。
  总线的通信控制属于比较细节性的概念,其技术性也较强,所以,在本课程中不应该是重点内容,因此,在教学过程中,我们通过图示重点介绍了几种通信控制方式的基本原理,并通过例子来说明不同通信控制方式得到的带宽不同。

第9章 输入输出组织

  主要教学目标:是使学生了解输入/输出系统的涉及到的软件和硬件结构,为学生进一步学习操作系统打下良好的基础。

  重点:磁盘存储器、I/O接口的结构、I/O端口编址方式、中断I/O过程、DMA方式

  难点:I/O端口编址方式、中断接口电路、中断I/O过程、DMA过程
I/O端口的编址方式问题因为比较抽象,所以是学生经常问的问题,对于该难点问题,我们在课堂上通过用Intel体系结构中具体I/O端口地址作为例子让学生来理解独立编址的概念;而在实验中规定用两个特定的主存单元作为I/O端口来让学生实现统一编址方式。因此,最终基本上所有学生都能很好地理解I/O端口的编址问题。对于中断I/O方式和DMA方式的输入/输出过程,我们通过一些具体的例子来对这两种方式进行对比,使学生深刻理解这两种I/O方式的不同特点。