第一编 概  论

  本篇主要介绍计算机系统的基本组成、应用与发展。

第一章 计算机系统概论


第一节 计算机系统简介


一、计算机的软硬件概念

  计算机系统由“硬件”和“软件”两大部分组成。
  硬件是指计算机的实体部分,它由看得见、摸得着的各种电子元器件,各类光、电、机设备的实物组成,如主机、外设等。
  软件是看不见摸不着的,由人们事先编制成具有各类特殊功能的信息组成。通常把这些信息,如各类程序寄寓于各类媒体中,如RAM、ROM、磁带、磁盘、光盘甚至纸带等。
  计算机性能的好坏,取决于软硬件功能的总和。
  计算机的软件通常又分为两大类:系统软件和应用软件。
  系统软件又称为系统程序,主要用来管理整个计算机系统,监视服务,使系统资源得到合理调度,确保高效运行。它包括:标准程序库、语言处理程序、操作系统、服务性程序、数据库管理系统、网络软件等等。
  应用软件又称为应用程序,它是用户根据任务所编制的各种程序,如科学计算程序、数据处理程序、过程控制程序、事务处理程序等。

二、计算机系统的层次结构

  现代计算机的解题过程通常是先由用户用高级语言编写程序(称作源程序),然后将它和数据一起送入计算机内,再由计算机将其翻译成机器能识别的机器语言程序(称作目标程序),机器自动执行该机器语言程序,并将计算机结果输出。


  1.一级层次结构的计算机系统
  早期的计算机只有机器语言(即用0/1代码表示的语言),用户必须用二进制0/1代码来编写程序(即机器语言程序)。这就要求程序员对他们所使用的计算机硬件及指令系统十分熟悉,编写程序难度很大,操作过程也极易出错。但用户编写的机器语言程序,可以直接在机器上执行。
  其层次结构如下:

  2.两级层次结构的计算机系统
  20世纪50年代开始出现了符号式的程序设计语言,即汇编语言。它用符号ADD、SUB、MUL、DIV等分别表示加、减、乘、除等操作,并用符号表示指令或数据所在存储空间的地址,这就使程序员摆脱了用繁杂而又易错的二进制代码编写程序。但是,实际上没有一种机器能直接识别这种汇编语言程序,必须先将汇编语言程序翻译成机器语言程序后。才能被机器接受并自动运行。这个翻译过程是由机器系统软件中的汇编程序来完成的。如果把具有翻译功能的汇编程序的计算机看作是一台虚拟机,则整个计算机系统便具有两级层次结构。
  其结构如下所示:

  尽管使用汇编语言使用户编程更为方便,但从本质上看,汇编语言仍是一种面向实际机器的语言,它的每一条语句都与机器语言的某一条语句(0/1代码)一一对应。因此,使用汇编语言编写程序时,仍要求程序员对实际机器的内部组成和指令系统非常熟悉。另一方面,由于汇编语言摆脱不了实际机器的指令系统,因此,汇编语言没有通用性,每台机器必须有一种与之相对应的汇编语言。这就大大阻碍了计算机的广泛使用。

   3.三级层次结构的计算机系统
  20世纪60年代开始出现了各种面向问题的高级语言,如FORTRAN、BASIC、Pascal、C等等。这类高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性。程序员完全可以不必了解掌握实际机器M1的机型、内部的具体组成及其自身的指令系统,只要掌握这类高级语言本身所赋予的语法和语义,便可以直接用高级语言来编程,这给程序员带来了极大的方便。同样,M1机器本身是不能识别高级语言的,因此,在进入M1机器运行前,必须先将高级语言程序翻译成汇编语言程序(或其他中间语言程序),然后再将其翻译成机器语言程序。也可将高级语言程序直接翻译成机器语言程序。这些工作都是由M3来完成的,因此我们又可得出具有三级层次结构的计算机系统。
  其结构如下所示:




  4.四级层次结构的计算机系统
  随着软件的发展,实际机器M1向上延伸构成了各级虚拟机器。同理M1机器内部也可向下延伸而形成下一级的微程序机器M0。M0是直接将M1机器中的每一条机器指令翻译成一组微指令,即构成一个微程序。M0机器每执行完对应于一条机器指令的一个微程序后,便由M1机器中的下一条机器指令,使M0机器自动进入与其相对应的另一个微程序的执行。因此,微程序机器M0可看作是对实际机器M1的分解,即用M0的微程序解释并执行M1和每一条机器指令。我们将M0称作微程序机器。这样计算机系统可认为具有四级层次结构,其结构如下所示:



   5.多级计算机系统
  在上述四级层次结构的系统中,在实际机器M1与虚拟机器M2之间,还有一级虚拟机器,它是由操作系统软件构成的。操作系统提供了在汇编语言和高级语言的使用和实现过程中所需的某些操作,还起到控制并管理系统硬件和软件全部资源的作用,为用户使用计算机系统提供极为方便的条件。操作系统的功能是通过其控制语言来实现的。下图是一个常见的五级计算机系统的层次结构。

  从计算机系统的多级层次结构来看,可以将硬件研究的主要对象归结为传统机器M1和微程序机器M0。软件的研究对象主要是操作系统以上的各级虚拟机。但软硬件交界面的划分并不是一成不变的。随着超大规模集成电路技术的不断发展,一部分软件功能将由硬件来实现,如目前操作操作系统已实现了部分固化等。
  本课程主要讲述传统机器M1和微程序机器M0的组成原理及设计思想。