510 likes | 678 Views
微操作控制部件. 用来产生计算机各部件的所有控制信号,其复杂程度取决于指令系统的规模和机器的硬件结构。. 分类: 根据产生微操作信号的方式不同, 控制器 可分成以下类型:. 组合逻辑控制器 微程序控制器. 4.2.4 组合逻辑控制器. 定义:直接由各种类型的逻辑门产生所有微操作信号的控制器。. 注意: 每个微操作命令都是一个逻辑电路的输出。所以,微操作命令发生器就是一个庞大的组合逻辑电路。. C 0. C 1. C 2. C n. …. I 0. S 0. 状态标志. 指令译码. I 1. S 1. …. …. I m. S L.
E N D
微操作控制部件 用来产生计算机各部件的所有控制信号,其复杂程度取决于指令系统的规模和机器的硬件结构。 分类:根据产生微操作信号的方式不同,控制器可分成以下类型: • 组合逻辑控制器 • 微程序控制器
4.2.4 组合逻辑控制器 定义:直接由各种类型的逻辑门产生所有微操作信号的控制器。 注意: 每个微操作命令都是一个逻辑电路的输出。所以,微操作命令发生器就是一个庞大的组合逻辑电路。
C0 C1 C2 Cn … I0 S0 状态标志 指令译码 I1 S1 … … Im SL … T0 T1 T2 Tk 时序产生部件 微操作控制信号Ci = F( Ij ,Tk ,Sl ) Ij 指令译码产生的表示不同功能的信号 Tk 节拍时序信号 Sl 运算结果状态信息 微命令产生部件
1.设计过程 综合形成 逻辑表达式 微操作 流程分析 确定微操 作序列 用逻辑部件 实现 化简 逻辑表达式
(1)根据硬件的结构图写出每条指令的操作流程并分解成微操作序列。 (1)根据硬件的结构图写出每条指令的操作流程并分解成微操作序列。 (2)将各条指令在不同cpu周期的不同节拍中产生的同一微操作信号集中到一起形成一个逻辑表达式。 (3)将同一微操作出现的全部地方和条件进行化简,求出最简的逻辑表达式。 (4)画出每一个微操作命令的逻辑电路图,用逻辑门来实现。
微命令 发生器 模型机结构图
00H T1 PC→MAR LDAR(C16) RD M(C13) PC+1(C17) LDDR(C14) LDIR(C15) T2 RD M M1 T3 PC+1→PC uI1 T4 MDR→IR 指令译码 指令译码 82H ADD LDAR(C16) RD M(C13) LDDR(C14) T1 IR(ADR)→MAR uI2 M2 34H T2 RD M DR→X(C8) R1→ Y(C5) “+” (C10) LDR1(C1) T3 读出操作 uI3 T4 AC+MDR→AC ADD指令操作流程图 ADD指令微程序流程图
RD M = M1·T2+M2·T2·(LDA+ADD+AND) LDAR = M1·T1+M2·T1·(LDA+STA+ADD+AND) DR→X = M2·T4·(LDA+ADD+AND) LDPC = M2·(T1·JMP+T3·JZ·ZF=1)
2.组合逻辑控制器的特点 最大的优点是:产生控制信号的速度快!只需两级门或三级门的延时就可产生。 缺点是:由于一台计算机中的微操作控制信号少则几十个,多则几百个甚至更多,要设计出能实时产生这么多控制信号的逻辑线路,其设计工作量很大,设计过程复杂,并且电路形成后,很难实施修改,不利于指令系统的扩充。
4.2.5 微程序控制器 1.基本原理 用软件的方法来实现硬件的功能。 要点: a. 一条机器指令从取指令到执行都可以分解成一系列确定的微操作步骤。而每个步骤所需的控制信号也就确定了。
b.因此可以将控制信号按一定规则进行编排,形成控制字(微指令)并保存在专用的存储器中。 不同的机器指令对应不同的微指令序列(微程序)。 c. 执行一条机器指令时,只要逐条取出与其对应原微程序,就可以产生所需的微操作控制信号。
主存储器 ADD 微程序 1 2 N …. …. ADD R1,[R2] INC [R1] INC 微程序 1 2 K …. …. 机器指令对应的微程序(微指令) 控制存储器
2、基本术语 • 微操作:对于指令的执行步骤中,不能再分的操作. • 微命令:控制微操作的命令,即实现微操作的控制信号。 • 微指令:每一步操作所需的若干微命令,以代码的形式编排就构成一条微指令。
微程序:由一系列微指令的有序集合构成。一条机器指令对应多条微指令构成的微程序。微程序:由一系列微指令的有序集合构成。一条机器指令对应多条微指令构成的微程序。 • 控制存储器:集中存放所有机器指令微程序的专用存储器。每一个单元为一条微指令。通常为高速的ROM部件。
IR OP 微地址 形成部件 标志 CLK 下地址 uIR 控制存储器 微指令基本格式 控制信号 下地址 3、微程序控制单元的基本框图 至 CPU 内部和系统总线的控制信号 顺序逻辑 uMAR 地址译码
M M+1 取指周期 微程序 M+2 间址周期 微程序 中断周期 微程序 P P+1 对应LDA 操作的微程序 P+2 K K+1 对应 STA操作的微程序 K+2 … 4、微程序控制单元内容 M+1 M+2 … 转执行周期微程序 … 转取指周期微程序 P+1 P+2 M K+1 K+2 M
控存 M M+1 取指周期 微程序 M+1 M+2 主存 M+2 … P+1 P P+2 P+1 对应LDA 操 作的微程序 P+2 M LDA X 用户程序 … ADD Y Q+1 Q STA Z 对应 ADD操 作的微程序 Q+2 Q+1 STP M Q+2 … K+1 K 对应 STA操 作的微程序 K+2 K+1 M K+2 … 5、工作原理
M uMAR CM (uMAR ) uMDR 1 R PC MAR … M+1 M 1 0 0 0 0 1 Ad (uMDR ) uMAR ( PC ) + 1 PC CM (uMAR ) uMDR M ( MAR ) MDR … M + 1 M+2 0 1 0 0 1 0 Ad (uMDR ) uMAR MDR IR CM (uMAR ) uMDR … M + 2 0 0 1 0 0 0 0 (a) 取指阶段 执行取指微程序 由 uMDR 发命令 形成下条微指令地址 M + 1 由 uMDR 发命令 形成下条微指令地址 M + 2 由 uMDR 发命令
OP ( IR ) 微地址形成部件uMAR 1 R Ad ( IR ) MAR ( P uMAR ) … P+1 P 0 0 0 1 0 0 1 CM (uMAR ) uMDR Ad (uMDR ) uMAR M ( MAR ) MDR … P+2 0 1 0 0 0 P + 1 CM (uMAR ) uMDR Ad (uMDR ) uMAR MDR AC … CM (uMAR ) uMDR 0 0 0 0 0 0 1 0 M P + 2 ( M uMAR ) Ad (uMDR ) uMAR (b) 执行阶段 执行 LDA 微程序 由 uMDR 发命令 形成下条微指令地址 P + 1 由 uMDR 发命令 形成下条微指令地址 P + 2 由 uMDR 发命令 形成下条微指令地址 M
M uMAR 1 R PC MAR CM (uMAR ) uMDR M+1 M 1 0 0 0 0 1 (c) 取指阶段 执行取指微程序 由 uMDR 发命令 形成下条微指令地址 M + 1 …… 全部微指令存在 CM 中,程序执行过程中 只需读出 关键 • 微指令的 操作控制字段如何形成微操作命令 • 微指令的 后继地址如何形成
6、微指令的格式 由两部分组成: 控制字段——用于安排微命令。 下址字段——用于控制形成或直接给出下条微指令在控存中的地址。 (1)控制字段的安排又分为二种形式: 直接控制 分段编码 水平型微指令 垂直型微指令
1)水平型微指令 基本特点是在一条微指令中定义并执行多个并行操作微命令。 直接控制法:将微指令操作控制字段的每一个二进制位定义为一个微命令,直接送往相应的控制点。
顺序控制字段 操作控制字段 直接控制法举例 C1 C2 C3 . . . . . . Cm 下地址 m 1 2 3 n-2n-1n . . . 特点:控制简单,不需加微命令译码器但微命令多,使得微指令太长,因而要求控制存储器容量较大。
分段编码法 A C 下地址 B 控制部分 地址部分 00不操作 01 AY 10 BY 11 CY 1 2 3 4 56 78 9 10 11 12 13 14 15 00不操作 01 AX 10 BX 11 CX 00不操作 01 “+” 10“﹠” 11 “-”
相斥性的微命令: 指不能在同一CPU周期内出现的微命令 相容性的微操作: 指能在同一CPU周期内出现的微命令 为什么可以采用分段编码来表示微命令呢?
相斥性的微命令: +、-、﹠ AX、 BX、 CX AY、 BY、 CY 相容性的微命令: A、 B、 C 结论:将相斥的微命令编在一个字段里。 将相容的微命令编在不同字段里。
例题:某计算机有8条微指令,每条微指令发出的微命令如下表所示,试对这些微指令进行编码以使得微指令的控制字最短而且保持微程序应有的并行性。例题:某计算机有8条微指令,每条微指令发出的微命令如下表所示,试对这些微指令进行编码以使得微指令的控制字最短而且保持微程序应有的并行性。
X X X X X X X X 经分析可发现 微命令: e、f、h是互斥的, b、i、j是互斥的, 其余的微命令 a、c、d、 g是相容的。 00 不操作 01 b 10 i 11 j a c d g 00 不操作 01 e 10 f 11 h I1~I8的编码具体是多少呢?
I1~I8的编码具体是多少呢? I1 0101 1110 I2 1000 1011 I5 0110 0101 I6 1111 1000 I3 1101 0000 I4 0000 0100 I7 1100 0110 I8 1101 1000
2)垂直型微指令 在这种微指令中设置了微操作码字段,采用机器指令操作码编码方法为每一种微操作进行编码。 特点是不强调实现微指令的并行控制功能,通常一条微指令只要能控制实现一个微命令。
微指令格式 控制字段 下址 标志 • 0000 无操作 • 0001 A • 0010 B • 0011 C • 0100 AX • 0101 AY • 0110 BX • 0111 BY • C→X • 1001 C→Y • 1010 “+” • 1011 “&” • 1100 “-” 地址字段
微指令的下地址字段 控制产生后继微地址。有两种情况: 计数器方式:设置微程序计数器。 断定方式:设置下址字段,其位数取决于控制存储器的总字数。
例题: 已知某计算机有80条指令,平均每条指令由12条微指令解释执行,其中有二条取指微指令是所有指令公用的,设微指令长度为32位,请算出控制存储器的容量。 2×32位 802×32位 80×10×32位
7、微程序的执行过程 开始 完成一条机器指令 地址字段控制取下条微指令 如此循环, 直到最后一条微指令 执行判中断微程序 执行取指微程序 读出第一条微指令并用于控制各部件的操作 IR(OP) 微程序的入口地址 MAPROM 进行地址映射 P207
思考题: 某机采用微程序控制器,已知每一条机器指令的执行均可分解成8条微指令组成的微程序,该机指令系统采用6位定长操作码格式。 1)控制存储器至少应能容纳多少条微指令? 2)如何确定机器指令操作码与该微程序入口地址的对应关系。
微命令字段 判别测试字段 下地址字段 思考题: 某机采用微程序控制器,其存储器容量512×48位,微程序可在整个控制存储器中实现转移,可控制的条件共6个,微指令采用水平型格式,后继指令的控制采用断定方式。微指令的格式如下图所示。 问微指令中的三个字段分别是多少位? ------------48位----------- ---3 位--- --9位--
8. 微程序控制器举例TH-union教学计算机控制器简介
TH-union 微程序控制器结构图 微指令转移 MRW I2~0 I8~7 I6 I5~3 A3~0 的控制条件 B3~0 SST2~0 SSH SCI1~0 DC2 DC1 SCC Gal / G 微下 CI3~0 微指令寄存器 scc3~0 地址 /CC CP • 下地址控制字段16位 • 其中8位用于给出微指令转移用的转移地址。 • 4位用于微程序定序器Am2910的命令码CI3~CI0。 • 4位SCC3~SCC0用于给出微指令转移的判别条件。 Am2910 控制存储器(ROM) MAPROM 指令操作码 读命令
TH-union微指令的格式 操作控制字段: 微指令的低32位,用于给出对运算器、主存储器、I/O 等部件的控制微命令。 顺序控制字段: 微指令的高16位,用于产生微程序下地址。
操作控制字段32位 • 其中23位用于对运算器的操作控制(I8~I0、A口、B口、SST、SCI、SSH) 。 • /MIO、REQ、/WE 3位构成对读写周期的控制。 • DC1的3位形成对送往内部总线数据的选择控制。 • DC2的3位指定接收数据输入的专用寄存器。
32位控制信号 P5 ①运算器(23位) ②内存或I/O读写(3位) ③专用寄存器操作(3位) ④内部数据总线来源(3位)
23位控制信号,同23位微型开关内容, A口地址,B口地址, I8~I6,I5~I3,I2~I0 SST,SSH,SCI 寄存器使用分配:R4: SP R5: PC R6: IP 约定用法:R0:I/O 指令约定使用 R0、R1:乘、除指令约定指令用 对运算器的控制
/MIO(0:有内存和串口读写,1:无) REQ (0:读写内存,1:读写串行口) /WE (00:写操作, 1:读操作) 对内存和 I/O 接口的读写 0000写内存 0011读内存 0100写串口 0111读串口 10X 无内存和串口的读写操作 11X 特殊用法,写控存
微程序流的控制 是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址。 决定下条微指令地址的因素较多,处理的方法各不相同,要得到下一条微指令的地址,至少需要以下两点: • 在微指令字中,分配若干字段,用于给出微指令转移地址,以及转移的判定条件等信息。 • 要有相应的硬件支持。例如:加1、判真假、堆栈组织等以实现微程序中的功能分支转移。
Am2910已用命令码及其功能 注1:若测试失败则保持,否则就装数 注2:图中符号/表示保存原内容不变 PC:微指令寄存器 R/C:寄存器/计数器 D:直接输入 F:微堆栈栈顶
对控制器部件的控制:下地址字段 分成3个子字段,总共使用16位码。 8位 4位 4位 微下地址 2910的命令码 微转移条件