在前面的学习中我们已经知道了计算机中存储数据和读取数据都是由指挥中心统一指挥的。现在我们就谈谈微机中的这个关键部件,它的名子叫中央处理单元,也叫CPU(Central Processing Unit的缩写)。
一 CPU的结构
CPU的外形与其它大规模集成电路相仿。有40根管脚,它的外部接线如图1所示,分为三组:一组是数据线8根D\(_{0}\)~D7,线的两端都有箭头,表示数据可以双向传送,即能进入CPU,又能从CPU中送出去。另一组是16根地址线A\(_{0}\)15,线上的箭头由CPU向外指出,表示地址信号总是由CPU发出的。还有一组就是控制线,这些线都是单向传送信号的,但信号有的是进入CPU,有的是流出CPU的,如在存储器一节中讲到的读写线R/W-就是由CPU的控制线和一些逻辑电路得到的。对于图1所示的Z-80CPU,它有一根M-\(_{1}\)控制线,是用来指示当前CPU处于取操作码状态的,它一变为低电平,就说明CPU处于取操作码状态,故不会将存储器单元中的代码误认为操作数。

在微机中,把连接CPU与CPU以外的集成电路部件(如前面已介绍过的存储器等)之间的所有连线称为总统(BUS)。总线一般分为地址总线(AB)、数据总线(DB)和控制总线(CB)三组。总线可以比喻为一座大楼里的220V电源线,在这条电源线上,可以挂上几十盏灯泡,又可以接电视机,洗衣机等家用电器。微机按总线结构连接,可以按需要灵活地扩展。如图2所示,在微机总线上,可以挂少至1片,多至十几片存储器,还可以挂上打印机等外部设备。

CPU的内部结构如图3所示,在它内部有一条内部数据总线,内部总线与CPU外部总线之间,有两个寄存器作为衔接,一个是地址寄存器AR.另一个是数据寄存器DR。它们与CPU中的其它部分配合工作。现将图3中的主要部件介绍一下。

1.算术逻辑运算单元(ALU),它是执行算术和逻辑运算的装置。它有两个入口,一个出口。其中一个入口是内部数据总线,另一个入口是累加器A(也是一个寄存器),它的出口与累加器A相连。就是说,它总是以累加器A中的内容作为一个数,再从内部总线上取另一个数进行运算,结果再放回累加器A中。读者可能会问,算术运算好理解,比如加法、减法。但什么叫逻辑运算呢?逻辑运算是指与、或、非等运算这正是微机的一大特点,就是说,它可以写入软件指令来进行逻辑判断。如图4所示。这样可以在应用中节省大量与非门等硬件逻辑门,使成本降低。

2.累加器A,它是CPU中专门用来暂存运算数据的寄存器。任何要进行算术或逻辑运算的数。总有一个要送入A中。
3.指令计数器(PC),又称为程序计数器,它是标明当前CPU所执行指令的地址的。每执行完一条指令,它的内容就自动加1,并通过地址寄存器AR送到CPU外部的地址总线上去准备取下一条指令。
4.逻辑控制单元(PLA)前面已经讲过,每条微机指令至少包含一个操作码,它告诉CPU做些什么事情,进入CPU的一切操作码指令,都是送入逻辑控制单元(PLA)的人口——指令寄存器IR,经过译码之后,判断出指令的意义,再由逻辑控制单元发出相应的操作。指挥CPU取数、写数或做其它运算。
5.通用寄存器(B)。它是CPU中用来存放数据的寄存器。在CPU中这样的寄存器不止一个(这里仅画出了一个),例如,在Z-80CPU中这样的寄存器多达12个。
二 CPU是怎样工作的
有了以上基础,我们就能以2+3=?的程序执行过程为例,介绍CPU是怎样执行指令的。
首先,对微机打入该程序的首地址0000,然后按下微机的“执行”键,微机即从地址0000开始运行程序。具体过程如下:
①CPU把程序首地址0000写入指令计数器PC;②指令计数器PC将该地址送到地址寄存器AR,并经AR送到CPU外部的地址总线,访问存储器0000号单元内容,与此同时,指令计数器PC的内容加1,变为0001;③CPU发出读命令,即R/W-线变高;④0000号存储单元的内容3E被读到数据线上,并经数据总线送入CPU内部的数据寄存器DR;⑤因为是取指阶段(M-\(_{1}\)线变低)表明取到的是指令(即操作数)故数据寄存器DR将数码3E送到指令寄存器IR,经过译码后,知道这条代码的意义是将下一个存储单元内容送到累加器A中,逻辑控制器PLA便发出一系列相应的控制,以上各步的执行过程见图5。

现在转入取操作数阶段,即将0001号单元内容读到累加器A中。过程如下:
①把PC内容0001送到地址寄存器AR,并经AR送到CPU外部地址总线,访问存储器0001号单元内容,同时,指令寄数器PC内容加1,变为0002;②CPU发出读命令,R/W-线变高;③0001号存储单元的内容02被读到数据总线,并经数据总线送入CPU内部的数据寄存器DR;④因为己知此数02为操作码(M-\(_{1}\)线变高),并指定要将它送到累加器A中,于是DR将此数送入A中。以上各步如图6所示。

到此为止,第一条指令执行完毕。由此我们可以体会到上文所讲的,微机执行指令的三步曲。即“取指”——将指令读入CPU,并送到指令寄存器IR;“阅读”——指令经译码后变为逻辑控制器PLA的行动依据;“执行”——在阅读指令的基础上,执行这条指令,表现在将操作数02送到累加器A中。
现在进入了第二条指令的取指阶段。
①把PC的内容0002送到地址寄存器AR及地址总线,访问0002单元,同时PC内容加1,变为0003;②CPU发出读命令,R/W-线变高;③0002号单元内容06被读到数据总线,并被送入CPU内部的数据寄存器DR;④因为取指阶段(M-\(_{1}\)线为低电平),故数据寄存器DR,将此数码06送到指令寄存器IR,经过译码后,知道这条代码的意义是将下一个存储单元内容送到通用寄存器B中·逻辑控制器PLA便发出一系列相应的控制。以上各步过程见图7。

下一步仍是取操作数:①把PC内容0003送到地址寄存器AR及地址总线,访问存储器0003号单元,同时PC值加1,变为0004;②CPU发出读命令,R/W-线变高;③0003号单元内容03被读到数据总线,并被送入CPU内部的数据寄存器DR;④因为已知此数码02为操作数,数据寄存器DR将此值送到通用寄存器B中。上述各步过程见图8。

到此,第二条指令也执行完毕。下面执行第三条指令。①把PC内容0004送到地址寄存器AR及地址总线,访问存储器0004号单元,同时PC值加1,变为0005。②CPU发出读命令,R/W-线变高;③0004号单元中内容80被读入数据总线,并被送入CPU内部的数据寄存器DR;④因为是取指阶段,故将数码80送到指令寄存器IR,经译码后,知道这条代码的意思是将累加器A的内容与通用寄存器B的内容相加。逻辑控制器发出相应的控制;⑤做加法的过程在算术逻辑运算器中完成,运算结果仍送回累加器A。上述各步过程见图9。

这样,第三条指令也执行完毕。以下即进行第四条指令的取指操作。其过程与上面第三条指令的执行过程类似不再赘述。执行完这条停机指令后,CPU即处于暂停阶段,直到有新的命令输入为止。
在上面介绍微机的工作过程及举例时,为便于理解,尽量加以简化,实际的CPU内部结构比图3要复杂得多。以后我们还要继续介绍一些微机应用的实例,满足想进一步学习的读者的要求。
现在许多读者都希望能在短时期内掌握微机技术,为四化建设服务。这里向读者介绍一些粗浅的入门步骤。
一、了解CPU内部的寄存器
CPU内部的构造和原理虽然时分复杂,但对于微计算机的使用者来讲,只须了解CPU内部的一些与编制程序有关的寄存器及其功用就行了。
二、学习特定机型的指令形式
各种不同的CPU,其指令形势是不同的。在使用某种机型前,应先了解其特定的形式,助记符表达式及寻址方式。
三、了解可编程输入/输出接口的工作特性
对于已有无线电技术知识又进一步学习使用微机的人来讲。一般都是用微机来代替原来的硬件电子线路,既用微机来做生产过程控制或自动控制。因此,必须要掌握微机的接口技术。只有这样才能把微机用在工业现场,发挥微机的做用。(张向南)