自己做发卡网站/沈阳网络seo公司
计组:CPU部件设计
1.部件说明
- ALU:逻辑算术单元
- 移位寄存器
- 寄存器及带有三态输出的寄存器
寄存器{一般的寄存器{暂存器S指令寄存器IR带有三态输出的寄存器:通用寄存器组寄存器\begin{cases}一般的寄存器\begin{cases}暂存器S\\指令寄存器IR\\\end{cases}\\ 带有三态输出的寄存器:通用寄存器组\end{cases} 寄存器⎩⎪⎨⎪⎧一般的寄存器{暂存器S指令寄存器IR带有三态输出的寄存器:通用寄存器组
带有三态输出的寄存器能否能够输出由输出允许端OE决定:假定OE为高电平时有效,即当OE为高电平时,三态门导通,寄存器内部的状态可输出到芯片外部;当OE为低电平时,输出为高阻态。
- 计数器
2.指令执行的详细说明
2.1 组合逻辑部件的组成
(1)时序信号产生器
产生三类信号:
-
指令周期
指令周期{取指周期FIC取数周期FDC执行周期EXEC指令周期\begin{cases}取指周期FIC\\取数周期FDC\\执行周期EXEC\end{cases} 指令周期⎩⎪⎨⎪⎧取指周期FIC取数周期FDC执行周期EXEC -
节拍信号
w0−−−−w3w_0----w_3w0−−−−w3
-
触发脉冲
p0~p3
时序控制采取同步控制方式,为方便描述,后面的叙述设定一个机器周期由四个时钟周期完成。
(2)指令译码器
指令译码器:将不同指令操作码不同寻址方式的指令产生不同的信号,再经过与或阵列产生控制信号。
(3)程序状态字PSW
存储CPU执行指令后的状态—>决定程序转向
(4)与或逻辑阵列
产生每一部分指令执行所需要的全部控制信号
2.2 微操作及其安排
(1)微操作命令
微操作:指令周期–>机器周期–>每一步完成一种基本的操作,这种操作称为微操作
PC->IB:微操作
PCout,BXoutPC_{out},BX_{out}PCout,BXout:微操作命令,打开三态门的信号
(2)微操作命令的安排
①取指周期FIC
从主存中读取指令码,这个过程对所有的指令都是一样的。这一取值指令码是共用的:
{W0PCout,ARinW1AR−>AB,RD,PC+1W2MD−>DB,DRinW3DRout,IRin\begin{cases} W_0\qquad PC_{out},AR_{in}\\ W_1\qquad AR->AB,RD,PC+1\\ W_2\qquad MD->DB, DR_{in}\\ W_3\qquad DR_{out}, IR_{in}\\ \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧W0PCout,ARinW1AR−>AB,RD,PC+1W2MD−>DB,DRinW3DRout,IRin
②取操作数周期FDC
举例说明:
a) MOV AX, 4000H
{W0PCout,ARinW1AR−>AB,RD,PC+1W2MD−>DB,DRinW3DRout,AXin\begin{cases}W_0\qquad PC_{out},AR_{in}\\ W_1\qquad AR->AB,RD,PC+1\\ W_2\qquad MD->DB, DR_{in}\\ W_3\qquad DR_{out}, AX_{in}\\ \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧W0PCout,ARinW1AR−>AB,RD,PC+1W2MD−>DB,DRinW3DRout,AXin
该指令一结束,取指结束,指令执行结束。
b)ADD BX, [DI]
{W0DIout,ARinW1AR−>AB,RD,PC+1W2MD−>DB,DRinW3DRout,Sin\begin{cases} W_0\qquad DI_{out},AR_{in}\\ W_1\qquad AR->AB,RD,PC+1\\ W_2\qquad MD->DB, DR_{in}\\ W_3\qquad DR_{out}, S_{in}\\ \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧W0DIout,ARinW1AR−>AB,RD,PC+1W2MD−>DB,DRinW3DRout,Sin
③指令执行周期EXEC
a) MOV AX, 4000H
取指周期和指令周期是在一起的。
b)ADD BX, [DI]
{W0S−>ALUW1BXout−>ALUW2ALU,ADD,TinW3Tout,BXin\begin{cases} W_0\qquad S->ALU\\ W_1\qquad BX_{out}->ALU\\ W_2\qquad ALU, ADD, T_{in}\\ W_3\qquad T_{out}, BX_{in}\\ \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧W0S−>ALUW1BXout−>ALUW2ALU,ADD,TinW3Tout,BXin
3.组合逻辑控制器设计
1.微操作命令的逻辑表达式
必须将所有寻址方式的所有制令的微操作命令安排写出来。
一个控制信号在若干条指令的某些机器周期中都需要,应该将他们组合起来。
PCout=FIC⋅W0+双字指令⋅FDC⋅W0+INTA⋅W2……PC_{out}=FIC·W_0+双字指令·FDC·W_0+INTA·W_2…… PCout=FIC⋅W0+双字指令⋅FDC⋅W0+INTA⋅W2……
控制信号可以由两级门电路产生:第一级为与门,第二级为或门
微操作命令的逻辑表达式需要综合化简。
构成与或逻辑阵列
4.微程序控制器设计
4.1.工作原理
可以将一条指令的执行过程顺序地由若干步骤完成。也就是将每一条指令的执行过程分解为若干状态,每一状态的操作完成时根据情况启动下一状态。
(1)概念梳理
微操作:一条指令,比如MOV AX,4000H的过程可以再分。分成如下所示的一系列微操作。
微命令:微操作命令,控制微操作产生。如a)中的PCoutPC_{out}PCout就是一个微操作。
微指令:能够产生一个或多个微命令的二进制编码称为微指令。
微程序:微指令的集合。完成一条机器指令的一系列微指令序列。
控制存储器:存放微程序的存储器。
(2)工作原理
根据微程序顺序产生一条指令执行时所需要的全部控制信号。
相当于把控制信号存起来,因此又称为存储逻辑方法。
(3)微程序控制器的构成
①控制存储器CM
CM中存放所有CPU能执行的微程序
一旦指令确定,它所对应的一段微程序也确定了——只读寄存器
②微地址形成电路
{操作码OP指令的寻址方式PSW标志后继地址控制字段……⇒形成控制寄存器CM的地址\begin{cases} 操作码OP\\ 指令的寻址方式\\ PSW标志\\ 后继地址控制字段\\ …… \end{cases}\Rightarrow形成控制寄存器CM的地址 ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧操作码OP指令的寻址方式PSW标志后继地址控制字段……⇒形成控制寄存器CM的地址
当外部有RESET信号时必然产生固定的微地址:从那里开始执行取指令操作码的微程序。
③微地址寄存器μAR\mu ARμAR
存放微地址寄存器形成电路中产生的微地址。通过这个地址在CM中寻找对应地址的微指令。
④微指令寄存器μIR\mu IRμIR
微指令寄存器用来存储从CM读出来的微指令。μIR\mu IRμIR中的指令包括两部分:控制字段,下址字段
微指令{控制字段下址字段微指令\begin{cases} 控制字段\\ 下址字段 \end{cases} 微指令{控制字段下址字段
⑤控制字段——微指令控制字段
该字段经过译码或者不译码产生CPU执行所需要的微操作控制信号
⑥后继地址控制字段NAC——下址地址
微程序一般结构:
4.2.微地址的形成
(1)后继地址的形成
下一条地址有三种可能:
-
指令寄存器确定的微程序首地址
微程序首地址在每个指令周期出现且仅出现一次,且进出现在刚刚获取一条指令之后。
-
下一条顺序地址
下一条微指令地址=当前微指令地址+1;
-
分支跳转地址
- 无条件和条件跳转
- 两分支和多分支跳转
控制存储器CM和内存中存放的程序一样,也是将顺序执行的微指令存放在连续的控存单元中。
下址地址的格式又能够划分为三种:
-
两地址格式(断定方式)
地址一和地址二分别提供下条命令的顺序地址和跳转地址。多路选择器利用地址选择控制位AC和CPU状态标志PSW在地址1和地址2之间进行选择。进一步传入微地址寄存器μAR\mu ARμAR中。
对于微程序首地址逻辑电路K:可以看做一个译码器,将输入的指令操作码映射为**微指令地址(微程序首地址)**并输出。
-
单地址格式
控制存储器CM和内存中存放的程序一样,也是将顺序执行的微指令存放在连续的控存单元中。因此顺序执行的微地址通过当前微地址+1即可获得。由计数器实现即可。
而微指令寄存器中提供的地址现在只是下一条跳转地址。
-
可变格式
可变格式从宏观上看就是设计机器指令时所说的采用固定编码和哈弗曼编码混合的形式。
S=0:控制指令;
S=1:跳转指令
- 多分支地址
不同的指令编码,不同的寻址方式对应着一段不同的微程序。这些位程序在CM中的地址也不同。
将指令操作码作为ROM1的地址,寻址方式和状态信号作为ROM2的地址,两个拼接构成微程序的首地址。
这里指令的形成采取的是拼接的形式。
4.3、微指令控制域编码
(1)分类:
- 水平型微指令:多个控制性同时有效->多个微操作同时发生——一条微指令定义和执行多个微命令
- 垂直型微指令:类似于机器指令,有操作码和操作数。不强调并行性,通常一条微指令只能实现1~2个微命令
特点在说明完之后总结。
(2)水平型微指令
-
直接表示法
直接表示法中控制字段的每一位表示为一种微命令,如上图的PCoutPC_{out}PCout和ARinAR_{in}ARin等。当某位设定为“1”时,该位有效,反之无效。也可以同时设置多个控制信号有效,实现并行。
但是由于计算机中的控制信号是非常之多的,这样的控制域指令中绝大部分都是0,只有很少的部分为1,利用率是非常之低的。
-
字段译码法
将控制域分为若干字段,段内垂直编码,字段间水平编码。
- 相容信号:能在同一时间内有效的信号具有相容性,称为相容信号
- 互斥信号:不能在同一时间内有效的信号具有互斥性,称为互斥信号
相容信号放在不同字段
互斥信号放在同一字段
各个字段的编码是相互独立的,通过各字段的独立译码可以获得全部信号——直接译码方式。
某些字段的编码相互关联,则关联字段要通过两级译码才能获得相关控制信号——间接译码方式。
注意:
- 每个字段要设计一个无效信号的编码:NOP
- 若控制域某字段有m位,则可以提供2m−12^m-12m−1个控制信号编码
(3)垂直型微指令
采用与机器指令相类似的方式
- 微操作码:指示做何种微操作
- 微操作对象:为微操作提供操作对象
特点:
- 并行能力差,微程序长,执行速度慢
- 改进:在计算机系统中引入大量的并行机制,使得少量的控制信号就可以引起较多的微操作同时完成。例如:三总线的ALU
(4)垂直型与水平型的比较
- 水平型
- 需要较长的控制域,可以表示高度并行的控制信号
- 只需要较少的译码电路,甚至不需要
- 垂直型
- 控制域较短,并行能力有限
- 对控制信息必须译码
4.4、微指令设计
下面分析均以水平型编码为例:
AC:
- 1001:多分支转移
- 0000:顺序执行
- 0001:无条件转移