计算机系统的层次结构

从使用语言的角度,一台由软、硬件组成的通用计算机系统可以被看成是按功能划分的多层机器级组成的层次结构。层次结构由高到低依次为应用语言机器级、高级语言机器级,编语音机器级操作系统机器级,传统机器语言机器级和微程序机器级。具体的计算机系统,其层次数的多少可以有所不同。

对使用某一级语言编程的程序员来讲,只要熟悉和遵守该级语言的使用规定,所编程序就总能在此机器上运行并得到结果,而不用考虑这个机器级是如何实现的。就好像该程序员有了一台可以直接使用这种语言作为机器语言的机器一样。这里,“机器”被定义为能存储和执行相应语言程序的算法和数据结构的集合体。实际上,只有二进制机器指令即传统所讲的机器语言与机器硬件直接对应,方可直接被硬件识别和执行。

各机器级的实现采用翻译技术或解释技术,或者是这两种技术的结合。翻译(Trans-lation)技术是先用转换程库将高一级机器级上的程序整个地变换成低级机器级上等效的程序,然后在低一级机器级上实现的技术。解释(Interpretation)技术则是在低级机器级上用它的一串语句或指令来仿真高级机器级上的一条语句或指令的功能,是通过对高级机器级语言程序中的每条语句或指令逐条解释来实现的技术。

应用语言虚拟机器级M5是为满足专门的应用设计的。使用面向某种应用的应用语言(L5)编写的程序一般是通过应用程序包翻译成高级语言(L4)程序后,再逐级向下实现的。高级语言机器级M4上的程序可以先用编译程序整个翻译成汇编语言(L3)程序或机器语言(L1)程序,再逐级或越级向下实现;也可以用汇编语言(L3)程序、机器语言(L1)程序,甚至微指令语言(L0)程序解释实现。汇编语言(L3)源程序则是先用汇编程序整个将它变换成等效的二进制机器语言(L1)目标程序,再在传统机器语言机器级M1上实现。操作系统程序虽然已经发展成用高级语言(如C语言)编写,但最终还是要用机器语言程序或微指令程序来解释。

它提供了传统机器语言机器级MI所没有,但为汇编语言与高级语言使用和实现所用的基本操作、命令及数据结构。例如,文件管理、存储管理、进程管理、多道程序共行、多重处理、作业控制等所用到的操作命令、语句和数据结构等。

因此,操作系统机器级M2放在传统机器语言机器级Ml和汇编语言机器级M3之间是适宜的。传统机器语言机器级M1采用组合逻辑电路控制,其指令可直接用硬件来实现,也可以采用微程序控制,用微指令(0)程序来解释实现。微指令直接控制不途为其,路硬件电路的动作。

就目前的状况来看,MO用硬件实现,M1用微程序(固件)实现,M2到M5大多是用软件实现。所谓固件( Firmware),是一种具有软件功能的硬件。例如,将软件固化在只读存储器这种大规模集成电路的硬、器件上,就是一种固件。以软件为主实现的机器称为虚拟机器,以区别于由硬件或固件实现的实际机器。虚拟机器不一定全由软件实现,有些操作也可用固件或硬件实现。例如,操作系统的某些命令可用微程序或硬件实现。