1.6 计算机系统的抽象层次结构

1.6 计算机系统的抽象层次结构

如果我们用计算机系统解决一个具体的应用问题,就需要把它分解为如图1.24所示的抽象层次结构。解决一个具体应用问题的过程就是不同抽象层次转换的过程。

图1.24 计算机系统抽象层次结构

如图1.24所示,计算机系统由不同的抽象层构成。从上往下看,程序员将应用问题转变成算法,形成清晰的流程化步骤,并确保算法的求解能在有限步内完成。接着用各种程序设计语言来实现,目前大约有上千种程序设计语言。

程序设计语言俗称“计算机语言”。计算机每做一次动作、一个步骤,都是按照已经用计算机语言编好的程序来执行的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。计算机语言的种类非常多,总的来说可以分成机器语言、汇编语言、高级语言三大类。机器语言是指二进制编写的机器指令,是计算机可直接解读的指令。汇编语言的出现是因为机器语言的可读性和记忆性都很差,给程序员的编写和阅读带来了很大困难,因此人们用助记符的方式建立了与二进制代码的对应关系,以方便程序员编写和阅读程序。特定的汇编语言和特定的机器语言指令集是一一对应的。

高级语言和底层计算机结构关联不大,它是将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。大部分语言都是高级语言,如PASCAL、C、C++、JAVA、C#等。但高级语言不能被计算机识别,需要转换成机器语言才能被执行,因此程序员编写的程序都需要通过翻译程序转换成计算机所能识别的机器语言。翻译程序是一种系统程序,它将计算机编程语言编写的程序翻译成机器语言形式的目标程序。翻译程序主要包括编译程序和解释程序,汇编程序也被认为是翻译程序。

编译程序:编译程序(Compiler,Compiling Program)也称编译器,它把高级语言编写的源程序翻译成用机器语言表示的目标程序,然后计算机再执行该目标程序。

解释程序:解释程序是翻译程序的一种,它将高级语言书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。就像外语翻译中的“口译”一样,说一句翻一句,不产生全文的翻译文本。

汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。

再下一层即是操作系统(Operating System,OS),常见的有Window、UNIX、Linux、Mac OS、iOS(由苹果公司开发的移动操作系统)、Android(基于Linux的自由及开放源代码的移动操作系统)等。它是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。如汇编程序、编译程序、数据库管理系统等系统软件,以及大量的应用软件,都将依赖于操作系统的支持。操作系统为其提供支持和资源调用,让计算机系统所有的资源最大限度地发挥作用。

接着便是连接硬件和软件之间的桥梁——ISA(指令集体系结构),它是软件与硬件之间接口的一个完整定义。指令集是存储在CPU 内部,对CPU 运算进行指导和优化的硬程序。

具体来说,ISA 规定了如下内容:

· 可执行的指令的集合,包括指令格式、操作种类以及每种操作对应的操作数的相应规定;

· 指令可以接受的操作数的类型;

· 操作数所能存放的寄存器组的结构,包括每个寄存器的名称、编号、长度和用途;

· 操作数所能存放的存储空间的大小和编址方式;

· 操作数在存储空间存放时按照大端方式还是小端方式存放;

· 指令获取操作数的方式,即寻址方式;

· 指令执行过程的控制方式,包括程序计数器、条件码定义等。

再下一层是微体系架构层。这一层就是将上层的ISA 翻译为具体的实现。微架构又称为微体系结构或微处理器体系结构,是给定的ISA 在处理器中执行的方法。也就是说,ISA 和微架构是不同层面上的概念,ISA 是对指令系统的一种规定或结构规范,具体的实现就是微架构。注意,相同的ISA 可能具有不同的微体系结构,如Intel 80x86的ISA,具有不同的微体系架构,但具有相同的ISA。

再下一层就是数字逻辑电路层,该层就是使用微体系架构的实现,即微架构中的不同功能部件就是用不同的逻辑电路来实现的。而逻辑电路就是由不同的逻辑门电路如与门、或门、非门等构成。实现同一种逻辑电路可能有很多种选择,如使用哪种门电路,使用何种逻辑结构等,这应该在花销与性能之间进行权衡。具体内容见第2章。

最后一层就是电子器件层,即每一种逻辑门电路都是由特定的器件来实现的。不同的逻辑门电路中使用的器件也可能不同。逻辑门电路分为分立门电路(包括二极管和晶体管)以及集成门电路(包括MOS门电路和TTL门电路),具体内容可参考电子技术基础类的书籍,本书不具体展开。