大学计算机应用基础
上QQ阅读APP看书,第一时间看更新

1.3.3 计算机的基本工作原理

按照冯·诺依曼机“存储程序”的概念,计算机的工作过程就是执行程序的过程。要了解计算机是如何工作的,首先要知道计算机指令和程序的概念。

1.计算机的指令系统

指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某种操作。例如,加、减、取数、移位等都是一个基本操作,分别用一条指令来实现。计算机指令常用二进制代码表示,指令长度是指组成二进制代码的位数。一条指令通常由“操作码”和“操作数”两个部分组成。

(1)操作码

操作码是指明该指令要完成的操作的类型或性质,如取数、做加法、输出数据等。操作码的位数决定了一个机器操作指令的条数。当使用定长操作码格式时,若操作码位数为n,则指令条数可有2n条。

(2)操作数

操作数是指明操作对象的内容或所在单元的地址,操作数在大多数情况下是地址码,地址码可以有0~3个。从地址码得到的仅是数据所在的地址,可以是源操作数的存放地址,也可以是操作结果存放的地址。

一台计算机的所有指令的集合,称为该计算机的指令系统。不同的计算机类型,其指令系统的指令条数也不同。但无论哪种类型的计算机,指令系统都应具有以下功能的指令:

①数据传送指令:负责数据在内存与CPU之间的传送。

②数据处理指令:对数据进行算术、逻辑或关系运算。

③程序控制指令:控制程序中指令的执行顺序。例如,条件转移、无条件转移、调用子程序、返回、停机等。

④输入/输出指令:用来实现外围设备与主机之间的数据传输。

⑤其他指令:对计算机的硬件进行管理等。

2.计算机的程序

程序是指能完成一定功能的指令序列,是计算机指令的有序集合。计算机按照程序设定的顺序依次执行指令,并完成对应的一系列操作,这就是程序执行的过程。

3.计算机的工作原理

基于冯·诺依曼的“存储程序”原理,计算机的工作过程就是快速执行指令的过程。计算机在工作时,有数据流和控制流这两种信息执行指令的过程中流动。

图1-3 指令的执行过程

数据流是指原始数据、中间结果、结果数据、源程序等。控制流是由控制器对指令进行分析、解释后向各部件发出的控制命令,指挥各部件协调地工作。

下面以指令的串行执行过程来说明计算机的工作原理。

1)指令串行执行过程

要执行指令,要先从存储器取出指令,然后才能执行。一般把指令执行过程分为3步:取指令、译码和执行指令,如图1-3所示。

(1)取指令

按照程序计数器中的地址,从内存中某个地址中取出指令送往控制器内部的指令寄存器暂存。

(2)译码

将指令寄存器中存放的指令送往指令译码器,对操作码进行译码,即将指令的操作码转换成相应的控制电位信号;由地址码确定操作数地址。

(3)执行指令

由操作控制线路发出完成该操作所需要的一系列控制信息,完成该指令所要求的操作。

一条指令执行完成,程序累加器加1或将转移地址码送入程序计数器,继续重复执行下一条指令。

一般把计算机完成一条指令所花费的时间称为一个指令周期,指令周期越短,指令执行越快。通常人们所说的CPU主频或工作频率,就反映了指令执行周期的长短。

2)指令的并行执行

指令的串行执行是当执行指令的3个部件依次执行完成后,才开始下一条指令的执行。在此过程中,当某一部件正在工作时,其他两个部件是不工作的。指令的并行执行就是使这3个部件并行工作,从而提高计算机执行指令的速度,现在的计算机一般采用流水线技术。

流水线技术就如同现代工厂生产流水线(如汽车生产流水线等),在流水线上将生产一个产品的过程分解成若干道工序,任何时候每一道工序都在工作,每一个工人都没有空闲,但每人只负责一道工序,流水线每隔一道工序完成的时间就生产出一个产品,这样生产的效率就大大提高了。计算机的流水线技术就是应用了这样的技术,指令的执行过程采用流水线技术,也就是指令的并行执行,可最大限度地利用CPU的资源。

总之,计算机的工作就是执行程序,即自动、连续地执行一系列指令,而程序开发人员的工作就是编制程序。每一条指令的功能虽然有限,但是在人们精心编制下的一系列指令组成的程序可完成的任务却是无限多的。