1、2. 微地址的形成方式,关于公共入口问题:,不同机器指令存在一些公共的微操作, 如:,取指所需微操作、取操作数所需微操作等。,因此, 不是将所有机器指令所需微操作顺序排列存入微程序库(微程序存储器-CM),而是将公共操作构成微子程序存入CM, 并在需要执行该操作时, 转入该微子程序。,(1) 形成初始地址,所有指令的取指阶段所需微操作构成一段公共微程序(即微子程序) , 并约定一个公共入口地址(如从地址0开始)。 取指阶段结束后, 经过指令译码, 再转入指令各自的微程序段。 如下图所示:,1) 取机器指令,机器语言程序,CM中微程序,取指, 公共微程序段,机器指令1的微操作,机器指令2的微操作
2、,机器指令m的微操作,将“取指”作为微子程序段, 否则, 对应于上述m条机器指令, 微程序的长度将增加(m 1) n条微指令。,例:,入口地址=000FH,0页,入口地址=0010H, 一级功能转移:,各操作码的位置、位数固定, 一次转换成功。,指令操作码,微程序入口,功能转移,2) 功能转移,即:,即:,000F,0010,Ins1第一条微命令,Ins2第一条微命令,Ins1,Ins2,问题: 机器指令系统的操作码是连续代码, 采用该地址形成方法, 形成的地址也是连续的, 只能形成一条机器指令所对应的多条微命令的第一条微命令的地址。,解决方法:,采用再次转移,如下图所示:,微地址1,微程序1
3、,微地址2,微程序2,功能转移,功能转移,000F,Ins1,0010,Ins2,采用一级功能转移的前提条件:,各操作码的位置固定和位数固定,才能方便获得该操作码,才能获得定长地址码, 二级功能转移(多级转移),各类指令操作码位置、位数不固定, 需两次转换。,分类转移:,指令类型标志,区分指令类型,功能转移:,指令操作码,区分操作类型,如加法、减法等,如双操作数指令、单操作数指令等,例. 某指令系统: 双操作数指令的操作码4位, 其中:高两位为00, 作为双操作数指令类型标志; 单操作数指令的操作码6位, 其中:高两位为01, 作为单操作数指令类型标志。,假设微程序库的地址长度为10位:,假设
4、微程序库的地址长度为10位, 则转移过程可描述为:,根据指令类型(如双操作数指令、单操作数指令)转入一个固定地址,给定一个地址的高位, 操作码为地址低位, 形成一个10位地址码进行功能转移,如下图所示:,再次转移到该指令所对应的微程序段,加法指令,减法指令,1000000001,功能转移,功能转移,求补指令,(1K),分类转移,给定入口高6位,1000000010,分类转移,给定入口高4位,1000011100,加法地址,加法微程序, 用可编程逻辑阵列PLA实现功能转移,入口地址 1,IR,入口地址 2,(2) 后续微地址的形成, 增量方式,快速译码/编码阵列,实现各种地址形成条件的快速译码,
5、并形成入口地址。, 指定某个位置提供后继地址,顺序: 现行微地址+1。,跳步: 现行微地址+2。,无条件转移: 现行微指令给出转移微地址。,A,A+1,A+2,B,B,条件转移: 现行微指令给出转移微地址和转移条件。,B,C,(条件满足),(条件不满足),转微子程序: 现行微指令给出微子程序入口。,转移条件 C,D,D,微子程序,返回微主程序: 现行微指令给出寄存器号, 该寄存器的内容为返回地址,R,例: 实现条件转移的一种方法,条件转移指令,微地址寄存器,转移条件不成立(控制条件),CM,控制门,控制门,转移条件成立,转移条件,微指令,给定后续微地址高位部分, 断定方式,由直接给定地址和测试
6、断定相结合形成微地址。,指明后续微地址低位部分的形成方式,例:,微指令,非因变分量或非测试段,因变分量或测试段,A=,01,10,操作码作为微地址低4位为, D给定高6位;,微地址低3位为机器指令目的寻址方式编码, D给定高7 位。,微地址低3位为机器指令源寻址方式编码, D给定高7 位;,11,8路分支,16路分支,8路分支,假设微地址10位, 约定:,3.6.3 模型机微指令格式, 用与组合逻辑设计相同的指令系统, 用与组合逻辑设计相同的硬件数据通路, 微程序设计的假设前提, 确定后继微地址形成方式: 增量与断定, 拟定微命令的格式以及编码方式;, 本节的主要内容, 格式设置原则:,按数据
7、通路各段操作划分字段, 同类操作中互斥的微命令放同一字段。, 微命令字段划分: 由三个部分组成, 数据通路操作部分, 访存操作部分, 辅助操作部分, 后继地址形成的断定方法的变形,将断定依据的代码作为微程序库的地址输入, 以该地址读取的单元内容为后继地址,模型机的微指令格式如下:, 命令字段共27位, D26D0, 分字段编码与直接控制(不译法)混合 假设微程序库地址长度为8位,数据通路操作,辅助操作,顺序控制,访存操作,(后续微地址形成方式),1. 数据通路控制字段,AI: A输入选择,000 无输入,001 RiA,010 CA,011 DA,100 PCA,R0R3、SP、PC,BI:
8、B输入选择,000 无输入,001 RiB,010 CB,011 DB,100 MDRB,R0R3、PSW,SM:,ALU功能选择,S3S2S1S0M,C0:,初始进位设置,S:,移位器控制,ZO:,内总线输出分配,该5位采用直接控制法, 不译码。,00 C0=0 01 C0=1,00 DM直传 01 SL左移 10 SR右移 11 EX字节交换,产生打入脉冲: ZO的8个编码表示不发打入脉冲和分别打入不同的寄存器的脉冲,000 不发打入脉冲 001 CPRi (R0R3, SP, PC, PSW(寄存器号指明) 010 CPC 011 CPD 100 CPIR 101 CPMAR 110 C
9、PMBR 111 CPPC,逻辑实现原理,为了与组合逻辑设计的假设一致, 可仍然采用SIR微命令,001,CPR0 CPR3 . CPPC,2. 访存操作,1 与地址总线连通,0 与地址总线断开,R=1,读主存, 同时作为SMDR,写入主存,W=1,该3位采用直接控制法, 不译码,3. 辅助操作 ST,00 无操作,01 开中断,10 关中断,11 SIR,0000 顺序执行,SC:,0001 无条件转移(由D26D19提供8位转移地址),0010 按操作码分支,增量,断定,4. 顺序控制 SC,增量 断定,9种,指明微地址形成方式,0011 按操作码和目的寻址方式是寄存器型还是非寄存器型来断
10、定, 实现分支,0100 按转移成功与否和是否PC型寻址断定, 实现分支,0111 转微子程序(由D26D19提供8位转移地址),1000 返回微主程序, 由返回微地址寄存器提供返回地址,增量,0101 按源操作数寻址方式断定, 实现分支,0110 按目的操作数寻址方式断定, 实现分支,断定,3.6.4 模型机微程序设计,采用同步控制方式, 用统一微指令周期控制各条微指令执行。,1. 微程序控制器的时序系统,基本时序单位:,微指令周期(微周期) ,时间长度为从取微指令到微指令执行完成的时间,时序安排如下:,P,微指令周期,微指令 打入IR,控制数据 通路操作,结果打入目的地, 后续微地址打入A
11、R,读取后续 微指令,或者: (教材假设),P,微指令 打入IR,结果打入目的地, 后续微地址打入AR,取下条微指令,2. 微程序的编制,(1) 编写顺序,按指令执行顺序编写:,取机器指令,功能转移,执行,按操作码编码顺序, 逐级分类编写:,程序控制类(转移、转子指令等),MOV指令,双操作数指令,单操作数指令,(2) 实现转移和多路分支(假设微地址长度为8位),实现转移,按增量方式实现。,SC=0000,顺序执行,现行微地址+1,SC=0001,无条件转,现行微指令给出转移微地址,SC=0111,转微子程序,现行微指令给出微子程序入口,SC=1000,返回微主程序,从寄存器取返回微地址,微地
12、址形成表:,SC=0010,按操作码分支(4路),实现分支,将同类断定依据所对应的微地址放在相应的微地址形成表(P.161162)中, 用SC字段选取。即:,按本教材给出的四大类指令:,MOV指令, 双操作数指令, 单操作数指令, 程序控制类指令进行分支转移,断定依据,MOV,双操作数,单元内容(微地址),单操作数,JMP/JSR,03H,取源数、目的地址,0CH,取源数、目的数,24H,取目的数,按J、PC分支,3FH,转移成功与否,微地址形成表:,SC=0010,按操作码分支(4路),相当于微指令二级功能转移中按指令类型、指令功能实现转移,SC=0011,执行规定操作 后转取指入口,06H
13、,0AH,双操作数,单操作数,3DH,0CH,断定依据,单元内容(微地址),见P.162 ,SC=0100,按转移成功与否(J)、PC分支(4路),40H、41H、 43H、46H,见P.162 ,SC=0110,从60H开始, 断定分支的方式与按源寻址方式相同见P.162 ,SC=0101,按源寻址方式断定分支(7路),4DH、4EH、 50H、52H、55H、59H、5EH,按目的寻址方式分支,对应7中不同的寻址方式见P.162 ,SC=0111,转微子程序, 微指令高8位提供微子程序入口。,SC=1000,返回微子程序, 由返回微子程序寄存器提供返回地址。,1) 取指微指令代码(微指令的
14、二进制代码),(3) 微指令编程实例,MIR:,微地址00,000 000 00000 00 00 000 1 1 0 11 0000,运算器功能选择,初始进位为0,移位器直传,不发寄存器打入脉冲,发读命令,不发写命令,顺序执行,微地址01,PC+1PC:,100 000 11110 01 00 111 0 0 0 00 0000,初始进位为1,移位器直传,不发读命令,不发写命令,顺序执行,微地址02,按操作码实现分支,000 000 00000 00 00 000 0 0 0 00 0010,初始进位为0,移位器直传,不发读命令,不发写命令,无操作,按操作码分支,不发打入脉冲,即: 取指微地
15、址及微命令代码:,00 000000000000000000110110000 01 100000111100100111000000000 02 000000000000000000000000010,微命令编写例: MMDRD,000 100 10101 0 00 011 1 1 0 00 0000,产生CPD,MDRB,运算器输出B,直传,读命令, 置入SMDR,初始进位为0,EMAR连通地址总线,不发写命令,无操作,顺序执行,即: MMDRD 的微命令 00010010101000011110000000,2) 机器指令的微程序实现,例: MOV R1, (R0) ; 按流程写出微地址
16、,00,01,02,03,4C,4E,4F,04,60,05,0A,0B,08,09,00,取源操作数微子程序,返回,取目的操作数微子程序,返回,转指令结束时的公共操作 PCMAR,执行PCMAR,转取指入口,上述数字串是微地址, 每一个地址内的微命令见P.158160 表3-13,03,根据上述地址流程, 对每一步的微操作进行编码,形成微指令: (每一步所需微操作由3.5.2节的数据通路操作和指令流程可得到),即:,010011000000000000000000111,地址,微程序库中的微指令,取指微命令,转地址4C,4C,即:,000000000000000000000000101,按源
17、寻址(R), 转到4E,4E,即:,001000111100000101000000000,顺序执行到地址4F,4F,即:,000100101010000010110001000,04,即:,011000000000000000000000111,返回到地址04,转到地址60,60,即:,000000000000000000000000110,按目的寻址方式转移,05,从微子程序返回到地址05,即:,000000000000000000000000011,按OPDR, 转到0A,0A,即:,010000111100000001000000000,顺序执行到0B,0B,即:,0000100000
18、00000000000000001,无条件转移到08,08,100000111100000101000000000,顺序执行到09,即:,09,000000000000000000000000001,顺序执行到00,即:,00,01,02,03,4F,4C,04,60,开始,05,0A,0B,08,09,本条指令结束,本章部分小结,1、建立CPU整机概念,组成和结构,工作机制,(1) 逻辑组成,寄存器、ALU设置, 数据通路结构,(2) 工作机制,寄存器传送级:,微操作控制级:,各类指令的流程,微命令序列,指令的执行过程:, 拟定流程的关键:,熟练掌握模型机寻址方式,熟练掌握数据通路结构,2、
19、基于模型机的控制器设计,(1) 组合逻辑设计,以下面四个方面为基础: 寄存器、ALU设置、数据通路结构 时序安排 各类指令的寻址方式和执行流程 微操作控制级微命令序列,综合微操作信号、写出产生每一微操作信息的逻辑表达式, 简化表达式并用逻辑电路实现。,(2) 微程序设计,以下面四个方面为基础: 寄存器、ALU设置, 数据通路结构 时序安排 各类指令的寻址方式和执行流程 微操作控制级微命令序列, 拟定微命令的格式以及编码方式; 确定后续微地址形成方式; 按指令类型和所有指令执行过程所需微操作进行编码(包括后续地址或后继地址形成方式), 形成微指令。,(1) 微命令的产生方式,3、有关的基本概念,
20、 组合逻辑控制方式:,基本思想 、优缺点、应用场合, 微程序控制方式:,基本思想 、优缺点、应用场合,(2) 时序控制方式,定义、特点、应用场合,同步控制方式:,异步控制方式:,定义、特点、应用场合,同步控制的变形(半同步方式):,定义、特点、应用场合,(3) 主机与外设的信息传送控制方式, 中断方式:, DMA方式:,定义 、流程、应用场合,定义 、流程、应用场合,复习提纲(部分),1. CPU组成(重点是数据通路结构)。 2. 组合逻辑设计: 指令流程(寄存器传送级), 操作时间表(微命令序列)。 3. 微指令设计方法: 分段原则、各段功能、编码方法、微地址形成方法)。 4. 基本概念如: 同步控制与异步控制(含义、应用场合), 组合逻辑控制与微程序控制(基本思想、优缺点、应用场合), I/O传送控制方式(定义、应用场合), 控制字, 状态字, 程序状态字, 主设备, 从设备等。,