理论教育 简易计算机控制器设计优化方案

简易计算机控制器设计优化方案

时间:2023-06-24 理论教育 版权反馈
【摘要】:1)简易计算机指令格式及工作过程的描述计算机是按照一定程序进行运算的,应事先将所要求的操作内容编成程序存入存储器。现以简易计算机所进行的加法运算为例说明程序的编制和一些术语。为了简化计算机的结构,简易计算机只有三条指令完成指定数的相加操作。图11.52用门电路实现控制函数当IMAR=1时,加在MAR数据输入端的PC的值在时钟脉冲到来时被送入MAR。图11.53用与非门构成的控制电路在简易计算机中控制电路是用通用阵列GAL实现的。

简易计算机控制器设计优化方案

1)简易计算机指令格式及工作过程的描述

计算机是按照一定程序进行运算的,应事先将所要求的操作内容编成程序存入存储器。现以简易计算机所进行的加法运算为例说明程序的编制和一些术语。

为了简化计算机的结构,简易计算机只有三条指令完成指定数的相加操作。例如求6+7=?,编制6和7相加的程序为:

程序 解释

LDA,6: A←6 把6送入累加器A

ADD A,7: A←A+7 把A中的6与7相加,结果送A

HALT: 运算完毕,暂停

上述每条语句称作一条指令,LD为取数指令,ADD为加法指令,HALT为暂停指令,机器逐条执行指令,得出结果。上述指令是由英文单词简化而成,便于人们记忆。但是计算机只识别“0”、“1”代码,所以需要把这些用助记符编写的指令翻译成机器码(“0”、“1”代码)指令,

第一条指令 00111110 操作码(LDA)

00000110 操作数(6)

第二条指令 11000110 操作码(ADD A)

00000111 操作数(7)

第三条指令 01110110 操作码(HALT)

每条指令的操作码和操作数分别存入地址为n及(n+1)的存储单元。指令的执行是在控制电路发出的控制信号作用下一步步完成的。控制电路发出的控制命令称为微命令,也就是控制门开或关的命令以及寄存器的送数、置位、复位命令等。一个微命令所控制实现的操作称为微操作,显然这是最基本的操作,在一个时钟周期内完成。每个时钟周期称作一个节拍,记作T0、T1、T2、…。

每条指令的执行过程都分为取指令和执行指令两个阶段。例如,执行LDA,6这条指令,取指令阶段完成从存储器中把操作码取出并送入指令寄存器,经译码器译出取数指令的操作;执行阶段则完成将操作数(6)送入A的操作。

取指令前先将程序计数器PC初始化,使其所置数据为存储器中程序的首地址。开始执行取指令操作时,计数器从首地址开始,第一步将PC中所存的首地址传送到MAR中;第二步按MAR所存地址将存储器中所对应的操作码读出并送入DR;第三步将操作码从DR送入IR,经译码器译出相应的指令,这条指令决定了接下来应完成什么操作。例如,若译出的指令为LD=1则接下来进行取数操作;若为ADD=1则进行加数操作。与此同时PC加1指向下一个存储单元的地址。可见取指令阶段要进行三个微操作,在T0~T2节拍内完成。用寄存器传送语言可描述为:

T0:MAR←PC

T1:DR←M

T2:IR←DR,PC←PC+1

在执行任何指令之前都要经过上述这一取指令过程。取指令阶段完成后则进入指令执行阶段。现以执行LDA,6这条指令为例说明指令执行过程。

取数操作可分解成四个微操作完成,由于在T2节拍PC已加1,所以PC指向的就是M中的操作数6。T3节拍将PC所存地址送入MAR;T4节拍根据MAR中所存地址将存储器中的操作数(6)取出送入DR暂存;T5节拍PC+1指向下一条指令的地址,为执行下一条指令做好准备;T6节拍将暂存于DR的操作数送到累加器A。至此完成了将被加数(6)送入累加器A的操作。

用同样的方法可将加数操作分解成四个微操作,在四个节拍内完成。

由于指令执行阶段所执行的操作受指令译码器输出信号的控制,而译码器输出端在任一时刻只能有一个为1,所以取数和加数操作都在T3~T6四个节拍内完成。当一条指令执行完毕,节拍发生器又回到初始状态,程序又回到取指令阶段。

综上所述,可将简易计算机工作过程用寄存器传送语言描述如下:

T0:MAR←PC

T1:DR←M,BOS←DR(www.daowen.com)

T2:IR←BOS,PC←PC+1

T3·LD:MAR←PC

T4·LD:DR←M,BOS←DR

T5·LD:PC←PC+1

T6·LD:A←BOS

T3·ADD:MAR←PC

T4·ADD:DR←M,BOS←DR

T5·ADD:SR←FA,PC←PC+1

T6·ADD:BOS←SR,A←BOS

符号BOS表示内部数据总线;T3·LD表示当T3=1,LD=1时,将PC的内容存入MAR。

2)控制电路设计

根据传送语句可设计出产生各种控制信号的控制电路。首先从传送语句中将与同一个寄存器执行同一个微操作的寄存器传送语句对应的控制函数找出来。例如,MAR←PC这一操作在控制函数T0、T3·LD及T3·ADD时均出现,则可将这三个控制函数组合成一句

可见控制函数是一个与或表达式。令

于是可以用与、或门实现该控制函数如图11.52所示。

图11.52 用门电路实现控制函数

当IMAR=1时,加在MAR数据输入端的PC的值在时钟脉冲到来时被送入MAR。

按上述方法将传送语句中每一类完成同种操作的传送语句中的控制函数组合起来,便可得到完成不同操作的控制函数如下:

根据上述控制函数就可以用硬件实现产生各种控制命令的控制电路逻辑图。图11.53是用与非门实现的上述各控制函数的逻辑图。

图11.53 用与非门构成的控制电路

在简易计算机中控制电路是用通用阵列GAL实现的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈