490 likes | 639 Views
样板. 取指控制. 执行控制. 时钟. 操作控制器 时序产生器. ALU. 状态反馈. ID. PSW. AC. PC. PC+1. IR. DR. RAM. AR. 指令结束. 5.2.6 用方框图语言表示指令周期. 译码或测试. CLA. ADD. JMP. NOP. STA. 0 AC. IR AR. IR AR. IR PC PC AR. 5.3.1 时序信号的作用和体制. 5.3 时序产生器和控制方式. 时序信号的作用 :保证计算机能准确、迅速、有条
E N D
样板 取指控制 执行控制 时钟 操作控制器 时序产生器 ALU 状态反馈 ID PSW AC PC PC+1 IR DR RAM AR 指令结束
5.2.6 用方框图语言表示指令周期 译码或测试 CLA ADD JMP NOP STA 0 AC IR AR IR AR IR PC PC AR
5.3.1 时序信号的作用和体制 5.3 时序产生器和控制方式 时序信号的作用:保证计算机能准确、迅速、有条 不紊地工作。 在微程序控制器中,时序信号比较简单,一般采用节拍电位—节拍脉冲二级体制。就是说,它只有严格节拍电位,在节拍电位中又包含若干个节拍脉冲(时钟周期)。节拍电位表示一个CPU周期的时间,而节拍脉冲把一个CPU周期划分成几个较小的时间间隔。根据需要,这些时间间隔可以相等,也可以不相等。
5.3.2 时序信号产生器 时序信号产生器的功能是:用逻辑电路实现时序。 IORQ MREQ RD WR T1 T2 T3 T4 启动 启停控制逻辑 停机 IORQO RDO WRO T1O T2O T3O T4O MREQO MREQ´ RD ´ 节拍脉冲和读写时序译码逻辑 IORQ ´ WR ´ Φ 环形脉冲发生器 时钟脉冲源 时序信号产生器框图
1.时钟源 由石英晶体振荡器和与非门组成的正反馈振荡电路组成。 2.环形脉冲发生器 作用产生一组有序的间隔相等或不 等的脉冲序列。 ①采用普通计数器:在节拍脉冲上带来毛刺。 环形脉冲发生器 的两种形式: ②循环移位寄存器
MREQO IORQO T1o T4o RDO T2o T3o WEO WE´ MREQ´ IORQ´ RD 环形脉冲发生器与译码逻辑 R 0 1 0 0 0 0 Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q C1 C1 C1 C2 C2 C2 C3 C3 C3 D D D D D D D D +5V 2 3 Φ Q Q CLR 脉冲时钟源 C4 S D Φ +5V 1 0 0 0 1 1 0 ① 过100 ns之后
MREQO IORQO T1o T4o RDO T2o T3o WEO WE´ MREQ´ IORQ´ RD 环形脉冲发生器与译码逻辑 R 1 1 0 0 Q Q Q Q Q Q Q Q Q Q Q Q C1 C1 C2 C2 C3 C3 D D D D D +5V 2 3 Φ Q Q CLR 脉冲时钟源 C4 S D Φ 1 0 0 +5V 1 0 1 0 ② 第二个脉冲来时
MREQO IORQO T1o T4o RDO T2o T3o WEO WE´ MREQ´ IORQ´ RD 环形脉冲发生器与译码逻辑 R 1 1 0 Q Q Q Q Q Q Q Q Q Q C1 C1 C2 C2 C3 D D D D +5V 1 Q Q C3 2 D 3 Φ Q Q CLR 脉冲时钟源 C4 S D Φ 1 1 0 +5V 1 0 1 0 ③ 第三个脉冲来时
MREQO IORQO T1o T4o RDO T2o T3o WEO WE´ MREQ´ IORQ´ RD 环形脉冲发生器与译码逻辑 R 1 0 0 0 0 0 Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q C1 C1 C1 C2 C2 C2 C3 C3 C3 D D D D D D D D +5V 2 3 Φ Q Q CLR 脉冲时钟源 C4 S D Φ 1 1 1 +5V 1 0 0 0 1 1 ④ 第五个脉冲来时 第四个脉冲来时
MREQO IORQO T1o T4o RDO T2o T3o WEO WE´ MREQ´ IORQ´ RD 环形脉冲发生器与译码逻辑 R 0 0 0 Q Q Q Q Q Q C1 C2 C3 D D D +5V 0 2 3 1 Φ 样品 Q Q CLR 脉冲时钟源 C4 S D Φ
3. 节拍脉冲和读 / 写时序的译码 根据上图得到,其译码电路逻辑可表示为: T1o= C1*C2 T2o= C2 *C2 T3o= C3 T4o= C1 根据上图,节拍电位与节拍脉冲时序关系如下: 读写时序信号的译码逻辑表达式为: RD o= C2*RD´ WE o= C3*WE´ IORQ o= C2*IORQ´ MREQ o= C2*MREQ´
1 2 3 4 5 6 7 8 9 10 C4 节拍电位与节拍脉冲时序关系图 C1 C2 C3 MREQO RD´ RD WE´ WE T1 T2 T3 T4
4.启停控制逻辑 机器一旦接通电源,就会自动产生原始的节拍脉冲信号T1O—T4O,然而只有在启动机器运行的情况,才允许时序产生器发出CPU工作所需的节拍脉冲T1—T4 。 T2 T3 MREQO T1 T4 RD WE 启停控制逻辑 MREQO T1o T2o T3o T4o RDO WEO Q Q C1 D T4o CLR 启动 停机
5.3.3 控制方式 机器指令的指令周期是由多个CPU周期组成。 控制方式有如下四种: 1. 同步控制方式:在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的,称为同步控制方式。 根据不同情况,同步控制方式可选取如下方案: (1)采用完全统一的机器周期执行各种不同指令。 (2)采用不定长机器周期。将大多数操作安排在一个较短的机器周期内完成,对于某些时间紧张的操作,则采取延长机器周期的方法。 (3)中央控制与局部控制结合。 中央控制:将大部分指令安排在固定的机器周期内完成。 局部控制:对少数复杂指令(乘、除、浮点运算)采用另外时序定时。
2. 异步控制方式:每条指令周期可由多少不等的机器周期数组成。指令周期数和时针周期数不固定。 3. 联合控制方式:同步控制和异步控制相结合的方式。 方式1:大部分操作序列安排在固定的机器整齐中,对 某些时间难以确定的操作,以执行部件的“回答”信号 作为操作的结束。 方式2:机器周期的节拍脉冲固定,但指令周期中的机 器周期数不固定。 4. 人工控制方式:为了调试机器和软件开发的需要,在计算机面板和内部设置一些开关或按键以进行人工控制。如RESET键,连续执行或单条指令执行的转换开关,符合停机开关等。
5.4 微程序控制器 微程序控制器同组合逻辑控制器相比较: 特点:具有规整性、灵活性、可维护性。 在计算机系统中,微程序设计是利用软件方法来设计硬件的一门技术。 ① 操作控制信号编成所谓的“微指令”,存放在ROM中。 微程序控制器的 基本思想: ② 运行时,一条条地读出这些微指令。 ③ 产生全机所需要的各种操作控制信号。
5.4.1 微命令和微操作 一台数字计算机基本上可以划分为两大部分: 控制命令 控制部件 执行部件 反馈 测试 微指令:控制部件通过控制线向执行部件发出的各种 控制命令。 微操作:执行部件接受微命令后所进行的操作。 ①相斥性:同一个CPU周期不能并行执行 的微操作。 微操作 ②相容性:同一个CPU周期可并行执行的 微操作。
+ ALU – CY M X Y 4 5 6 7 DR 8 9 R1 R2 R3 1 2 3 简单运算器数据通路图
上图所示,是一个简单运算器模型,其中ALU为算术逻辑单元,R1、R2、R3为三个寄存器。 CY为最高位触发器,有进位时该触发器状态为“1”。 ALU的操作(加、减、传送)在同一个CPU周期中只能选择一种,不能并行,所以以+、–、M(传送)三个微操作是互斥性的微操作。类似地,4、6、8三个微操作是互斥性的,5、7、9三个微操作也是互斥性的。 微操作1、2、3是可以同时进行的,所以是相容性的微操作。另外,ALU的X输入微操作4、6、8分别与Y输入的5、7、9任意两个微操作,也都是相容性的。
5.4.2 微指令和微程序 在机器的一个CPU周期中,一组实现一定功能的微命令的组合,构成一条微指令。 微程序:一条指令的功能是由多条微指令组成的序列实现的。 M RD’ LDIR’ LDR1’ LDR3’ R1→Y R2→Y R3→Y PC+1 - 直 接 地 址 R2→X DR→X + LDDR’ LDAR’ P1 P2 LDR2’ R1→X 操作控制 操作控制 顺序控制 每一位表示一个微指令, 当某一位为“1”时,表示发出微命令,若第2位为“1”时,表示发出LDD2’的微命令。 微指令基本格式
LDR1 LDR2 LDR3 节拍电位信号 “+” 节拍脉冲信号 200 T4 600ns LDR1 LDR1´ LDR2´ LDR3´ CPU周期 运算器操作时序与产生逻辑
5.4.3 微程序控制器原理框图 指令寄存器IR OP 状态条件 … 地址转移逻辑 地址译码 微地址寄存器 控制存储器 微指令信号 … 微程序控制器组成原理框图
5.4.3 微程序控制器原理框图 指令寄存器IR OP 状态条件 … 地址转移逻辑 地址译码 微地址寄存器 控制存储器 控制存储器 微指令信号 指令寄存器 … 微指令寄存器:它用来存放由控制存储器读出的一条微指令信息。 其中微地址寄存器:决定将要访问的下一条微指令的地址, 微指令寄存器:保存一条微指令的操作控制字段和判别测试字段的信息。 地址转移逻辑承担自动完成修改微地址的任务 如果微程序不出现分支,那么下一条微指令的地址就直接有微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。 地址转移逻辑 微地址寄存器 微命令 寄存器 微程序控制器组成原理框图 用来存放实现全部指令系统的微程序,它是一种只读存储器 ①
①控制存储器:它用来存放实现全部指令系统的微程序,它是一种只读存储器。①控制存储器:它用来存放实现全部指令系统的微程序,它是一种只读存储器。 微指令周期:是指读出一条微指令并执行微指令的时间总和称为一个微指令周期。 ②微指令寄存器:它用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微指令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。 ③地址转移逻辑:如果微程序不出现分支,那么下一条微指令的地址就直接有微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。 微地址:微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址。
5+4=9 5+6=11 RD 0000 a 0 1 0 1 PC→AR→AUS DBUS→DR→PC+1 a 0 1 0 1 b 0 1 1 0 b 0 1 0 0 P1 6 0 1 1 0 + 6 0 1 1 0 + 1010 R1 + R2 → R2 1001 0 1 1 0 修正 - R2 + R3 → R2 CY≠0 0000 P2 0001 R2 + R3→ R2 0000 例:BCD 码相加 已知:R1=a , R2=b, R3=6 若:a+b+R3≥16 不做减6修正 1 0 0 0 1 1 1 1 1 大于16 不用修正 1 0 0 1
操作控制 操作控制 顺序控制 M RD’ LDIR’ LDR1’ LDR3’ R1→Y R2→Y R3→Y PC+1 - 直 接 地 址 R2→X DR→X + LDDR’ LDAR’ P1 P2 LDR2’ R1→X 第一条微指令
操作控制 操作控制 顺序控制 第一条微指令 指令寄存器OP 的操作码为1010为加法操作 M RD’ LDIR’ LDR1’ LDR3’ R1→Y R2→Y R3→Y PC+1 - 直 接 地 址 R2→X DR→X + LDDR’ LDAR’ P1 P2 LDR2’ R1→X 第16位发出 LDAR’ 将PC内容送到地址寄存器AR 第13位 发出RD’ 第14位 发出LDDR’ 第15位 发出LDIR’ 将缓冲器中的“十进制加法”指令再送到IR 第17位 发出PC+1微指令,使程序计数器加1 微指令的顺序控制字段指明下一条微指令的地址是0000,但由于判别字段中第18位为1,表明P1测试,因此0000不是下一条微指令的真正地址。P1测试的“状态条件”是指令寄存器的操作码字段,即用OP字段作为形成下一条微指令的地址,于是微地址寄存器的内容修改成1010。 ①
操作控制 操作控制 顺序控制 第二条微指令 按照1010这个微地址读出的第二条微指令 M RD’ LDIR’ LDR1’ LDR3’ R1→Y R2→Y R3→Y PC+1 - 直 接 地 址 R2→X DR→X + LDDR’ LDAR’ P1 P2 LDR2’ R1→X 操作控制部分发出四个微命令:R1 →X,R2 →Y,+,LDR2’ 完成 R1+R2 →R1 微指令的顺序控制字段指明下一条微指令的地址是0000, 但由于判别字段测试P1和P2均为0,表示不进行测试,于是直接给 出下一条微指令的地址为1001。 ②
操作控制 操作控制 顺序控制 第三条微指令 按照1001这个微地址读出的第三条微指令 M RD’ LDIR’ LDR1’ LDR3’ R1→Y R2→Y R3→Y PC+1 - 直 接 地 址 R2→X DR→X + LDDR’ LDAR’ P1 P2 LDR2’ R1→X 操作控制部分发出四个微命令:R2 →X,R3 →Y,+,LDR2’ 完成 R2+R3 →R2 微指令的顺序控制字段中由于判别字段P2为1,表明进行P2测试,测试的“状态条件”为进位位标志 Cy。 设定: Cy=1 下一条微指令的地址是 0000 ,Cy=0 下一条微指令的地址是 0001。 若:Cy=0那么下一条微指令的地址是 0001。 ③
操作控制 操作控制 顺序控制 第四条微指令 按照0001这个微地址读出的第四条微指令 M RD’ LDIR’ LDR1’ LDR3’ R1→Y R2→Y R3→Y PC+1 - 直 接 地 址 R2→X DR→X + LDDR’ LDAR’ P1 P2 LDR2’ R1→X 操作控制部分发出四个微命令:R2 →X,R3 →Y,-,LDR2’ 完成 R2 - R3 →R2 微指令的顺序控制部分直接给出下一条微指令的地址为0000 ,按该地址取出的微指令是“取指”微指令。 若:第三条微指令进行测试 时 Cy=1那么微地址仍保持为 0000, 将不执行第四条微指令而直接由第三条微指令转向公操作。 ④
5.4.4 CPU周期与微指令周期的关系 微指令周期:等于读出微指令的时间加上执行该条 微指令的时间。 读 执行微指令 微指令周期 微指令 CPU周期 CPU周期 CPU周期与微指令周期的关系
微命令 微命令寄存器 控 制 存储器 地址译码 微地址寄存器 OP 指令寄存器 IR 数据缓冲寄存器DR 地址译码 地址寄存器AR 程序计数器PC +1 5.4.6 机器指令与 微指令 的 关系 1、一条机器指令对应一个微程序,这个微程序是由 若干条微指令序列组成的。 2、从指令与微指令,程序与微程序,地址与微地址的一一对应来看,前者与内存储器有关,后者与控制存储器有关。 3、指令周期中的每一个CPU周期对应着一条微指令。
要求:用二进制代码写出如下指令的微程序 (1) “ADD R0,R1” (2) “SUB R2,R2” (3)”MOV R2,R3”
ALU 16位 SB-ALU SB-ALU 16位 Rseet SB SA LDSB 16位 LDSA R 读选择 4个通用寄存器 RA0 RA1 RA0 RA1 W 写选择 1个微指令周期 1 us 500ns 读ROM ALU m2 m1 2us (1) “ADD R0,R1” (2) “SUB R2,R2” (3)”MOV R2,R3”
ALU 16位 SB-ALU SB-ALU 16位 Rseet SB SA LDSB 16位 LDSA R1 SB R0 SA R 读选择 4个通用寄存器 RA1 RA1 RA0 RA0 W 写选择 MOV R2 , R3指令 (R2)+(R3) → R3 取指 测试 SUB MOV ADD R2 SA R3 SA 0 SB SA+SB R3 R2 SB SA-SB R3 SA+SB R1 ①
ALU 16位 SB-ALU SB-ALU 16位 Rseet SB SA LDSB 16位 LDSA R 读选择 4个通用寄存器 RA0 RA1 RA0 RA1 W 写选择 ADD R0 , R1指令 完成 (R0)+(R1) → R1 取指 测试 SUB MOV ADD R2 SA R3 SA R0 SA 0 SB SA+SB R3 R2 SB R1 SB SA-SB R3 SA+SB R1 ②
ALU 16位 SB-ALU SB-ALU 16位 Rseet SB SA LDSB 16位 LDSA R 读选择 4个通用寄存器 RA0 RA1 RA0 RA1 W 写选择 ADD R0 , R1指令 完成 (R0)+(R1) → R1 取指 测试 SUB MOV ADD R2 SA R3 SA R0 SA 0 SB SA+SB R3 R2 SB R1 SB SA-SB R3 SA+SB R1 ③
取指 测试 SUB MOV ADD R2 SA R3 SA R0 SA R1 SB R2 SA SA+SB R3 R2 SB SA-SB R3 SA+SB R1 ③
5.5 微程序设计技术 设计微指令结构应当追求的目标 教师 (1)有利于缩短微指令字长度; (2)有利于减小控制存储器的容量; (3)有利于提高微程序的执行速度; 学生 (4)有利于对微指令的修改; (5)有利于微程序设计的灵活性。
5.5.1 微指令编码 微指令编码:对微指令中操作控制字段采用的表示方法。 通常有三种方法: 直接表示法、编码表示法、混合表示法 (1)直接表示法 特点:操作控制字段中的每一位代表一个微指令。 优点:简单直观,其输出直接用于控制。 缺点:微指令字较长,使控制存储器容量较大。 微指令 P1 P2 Pn … … … … … 译码 译码 译码 顺序控制 顺序控制 字段直接译码法
(2)编码表示法 微指令信号 3:8 译 码 指令字段 编码表示法:把一组互斥性的微指令 信号组成一个小组(即一个字段),然后通过小组译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。 特点:可用较少的二进制信息位表示较多的微指令 信号。 优点:可使微指令字大大缩短。 缺点:由于增加了译码电路,使微程序的执行速 度变慢。 (3)混合表示法 把直接表示法与字段编码法相混合使用。
5.5.2 微地址的形成方法 产生后继微地址有如下三种方法: 1.计数器方式: ①在顺序执行微指令时,后继微地址由现行微地址加上增量来产生。 ②在非顺序执行微指令时,必须通过转移方式,使现行微指令执行后,转去执行指定后继微地址的下一条微指令。在这种方法中,微地址寄存器通常改为计数器。 为此,顺序执行的微指令序列就必须安排在控制存储器的连续单元中。 特点:微指令的顺序控制字段较短,微地址产生机构简 单。但多路并行转移功能较弱,速度较慢,灵活 性较差。
2.增量方式与断定方式结合: 微指令顺序控制部分分为:条件选择字段和转移地址字段。 转移地址 外部地址 MUX 打入 外部 条件 μPC … 控制存储器 CM 条件选择 μIR … 控制字段(可编码)
3.多路转移方式: 多路转移:一条微指令具有多个转移分支的能力称为多路转移。 例如:“取指”微指令根据操作码OP产生多路微程序分支而形成多个微地址。在多路转移方式中,当微程序不产生分支时,后继微地址直接有微指令的顺序控制字段给出;当微程序产生分支时,有若干“后选”微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中严格微地址。 特点:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度快。但转移地址逻辑需要用组合逻辑方法设计。
5.5.3 微指令格式 水平型微指令 微指令格式大体分为两大类: 垂直型微指令 一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。 1.水平型微指令: 水平型微指令又分为三种: 第一种是全水平型(不译码)微指令 第二种是字段译码法水平型微指令; 第三种是直接和译码混合的水平型微指令 水平型微指令的一般格式如下:
2.垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,有微操作码规定微指令的功能,称为垂直型微指令。2.垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,有微操作码规定微指令的功能,称为垂直型微指令。 垂直型微指令 比 水平型微指令编码长,但执行一条指令的时间短 例: (1)寄存器-寄存器传送指令 (2)运算控制指令 (3)访问主存微指令 (4)条件转移微指令
3. 水平型微指令 与 垂直型微指令的比较 (1)水平型微指令并行操作能力强,效率高,灵活性强;垂直型微指令则较差。 (2)水平型微指令执行一条指令的时间短;垂直型微指令执行的时间长。 (3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点;垂直型微指令则相反,微指令字比较短而微程序长。 (4)水平型微指令用户难以掌握;而垂直型微指令比较相似,相对来说,比较容易掌握。
5.5.4 动态微程序设计 程序设计技术有两种: 1. 静态微程序设计: 对应与一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无需改变而且也不好改变,这种微程序设计技术称为静态微程序设计。 2. 动态微程序设计: 当采用EPROM作为控制存储器时,还可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。