计算机的控制器部.ppt_第1页
计算机的控制器部.ppt_第2页
计算机的控制器部.ppt_第3页
计算机的控制器部.ppt_第4页
计算机的控制器部.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章,计算机的控制器部件,本章主要内容,控制器的功能组成与指令执行步骤 微程序控制器部件 组合逻辑控制器部件,控制器的功能与组成,1. 控制器的功能: 控制执行指令 控制各部件协调运行,即为各部件提供控制信号。 2. 控制器的组成: 程序计数器 指令寄存器 指令步骤标记线路 提供控制信号的部件 分类 : 微程序的控制器 硬布线的控制器,控制器的功能,计算机的功能是执行程序 程序是依次排列起来的指令代码 控制器的功能就在于: 正确地分步完成每一条指令规定的功能, 正确且自动地连续执行指令; 再进一步说,就是向计算机各功能部件提供 协调运行每一个步骤所需要的控制信号。,控制器的组成,程序计数器PC:存放指令地址,有+1或接收新值功能。 指令寄存器IR:存放指令内容:操作码与操作数地址。 主脉冲源与启停控制线路,按需要给出主脉冲信号。 指令执行步骤标记线路: 指明每条指令的执行步骤。 控制信号记忆或产生线路:给出计算机各功能部件部件协同运行所需要的控制信号。,运算器部件,主存储器部件,总线及输入/输出接口(输入/输出设备),控制器部件,各部件包括,也包括,设计中的难点,在于解决对运算器、控制器的控制,控制器的组成,控制信号提供方法,生成法 将操作码和微操作序号作为输入,写出控制信号和下一微操作序号的逻辑表达式,然后,用相应的逻辑器件实现。 组合逻辑控制器,也称硬布线控制器 查表法 将每一操作码的每个微操作对应的全部控制信号和下一操作步骤事先存储在控制存储器中,需要的时候从控存中读出。 微程序控制器,时序控制 信号 形成部件,译码,IR,PC,输出 设备,输入 设备,主 存,运算器 部件,时序,启停,地址寄存器械,数据总线,地址总线,控制总线,.,控制条件,控制器信号,主振,组合逻辑 方案的 控制器,控制 存储器,映射,IR,PC,输出 设备,输入 设备,主 存,运算器 部件,下地址,启停,地址寄存器械,数据总线,地址总线,控制总线,.,控制条件,微指令寄存器,主振,微程序 方案的 控制器,微程序控制器基本原理,微程序控制器指令执行流程,读当前指令到IR,且PC=PC+1; 根据指令的操作码,得到该指令的微程序入口地址; 读取该指令的微指令,并送到相应的计算机部件,完成微操作,同时,得到下一微指令的地址; 重复上一步,直到本条指令执行完毕; 判中断标志,如有,则进行中断处理; 转取指令,执行下一条指令,微程序控制器的运行原理,每条指令一个执行步骤用到的全体控制信号组成一微指令 每条指令可以包括一到多个微操作 用多条微指令解释每条指令的整个执行过程 全部微指令的集合叫做微程序 执行一条微指令所用的时间被称为一个微周期。 微指令的格式和内容: 下地址字段 控制命令字段,微程序控制器组成,clock,微程序控制器设计,定序器 根据指令操作码、指令当前步骤以及条件码,确定下一步骤的微程序地址 微指令 给出当前指令的当前步骤要完成指令规定的功能,各功能部件所需要的控制信号。对控制器本身而言,则是要给出下一步骤的微程序地址。 水平 垂直,下地址,顺序执行下一条微指令 无条件转移到某条微指令 根据微指令的某一状态结果,选择顺序执行或转向某一地址 微子程序调用,要使用到微堆栈 多路转移 根据指令操作码,转移到指令的入口地址,定序器组成,微指令设计,微指令字长 缩短控制存储器的字长 微程序的长度 控制存储器的容量 提高性能 提高整个计算机指令执行性能,微指令设计,直接控制法 直接给出各部件需要的控制信号(0或1) 字段直接编译法 将某些互斥信号进行编码,由译码器给出这些信号,可缩短微指令字长 垂直型微指令 采用对微操作码译码的方式给出控制信号,可进一步缩短微指令字长,微程序控制器特点,采用ROM存储控制信号的方式,可扩展性好 兼容性实现比较容易 容易实现复杂的指令系统 性能比较低 并行性不好 主要用在CISC中,组合逻辑控制器,采用逻辑电路直接提供全部控制信号 输入 操作码 指令状态字 指令步骤编码(节拍) 外部信号(Reset等) 输出 全部控制信号 主要解决的问题 节拍转换 控制信号生成,节拍发生器,控制每条指令的执行步骤 用触发器实现 有限状态自动机 用触发器状态表示当前执行步骤 状态自动机自动转入下一状态,节拍发生器设计举例,我们假定某机器的指令系统有两条指令A和B,其中A指令需要4个步骤完成,而B指令只需要3个步骤。为此,节拍发生器需要有2个触发器,用它形成的4个状态来标记不同的步骤。如给A指令分配的节拍状态是00011011,B指令分配的节拍状态为001011。,T0=/T0*/T1*/A*B+/T0*T1*A*/B+T0*/T1 T1=/T0*/T1*A*/B+T0*/T1,控制信号生成,直接利用逻辑电路生成控制信号 大规模集成电路 现场可编程器件 输入 节拍状态 条件码 指令操作码 输出 控制信号,组合逻辑控制器特点,直接用逻辑电路实现,用节拍标记指令步骤,性能良好 可扩展性差,兼容性不好 适合实现比较精简的指令系统 较容易实现并行 常用于实现RISC,指令的执行过程,冯. 诺依曼 结构的计算机 即存储程序的计算机,设置内存,存放程序和数据,在程序运行之前存入。 执行程序: 正确从程序首地址开始; 正确分步执行每一条指令, 并形成下条待执行指令的地址; 正确并自动地连续执行指令, 直到程序的最后一条指令。,每条指令的执行步骤,读取指令 指令地址送入主存地址寄存器 读主存,读出内容送入指定的寄存器 分析指令 按指令规定内容执行指令 不同指令的操作步骤数, 和具体操作内容差异很大, 检查有无中断请求 若有,则响应中断并转中断处理 若无,则转入下一条指令的执行过程,R_R类型指令 读写内存类型指令 输入输出类型指令 其他类型指令,可能执行 一次或多次,是一次读 内存操作,公共操作,公共操作,是每一条指令的特定操作,典型指令的执行过程举例,2000 0001 ADD r0, r1 ; 加法指令 2001 0790 MVRR r9, r0 ; 传送指令 2002 E709 STRA 2007 , r9 ; 写内存指令, 这是一条双字指令, 2007 ; 第二个字中的 807 是直接地址 2004 8280 IN 80 ; 读串行口数据到R0低8位 2005 44FA JRC 2000 ; 若C为1转移到2000,否则顺序执行 2006 8F00 RET ; 子程序返回指令 其他一些指令与这里的几条指令有相当多的共同特性,属于 同一组的指令的执行步骤非常类似。,读取指令 AR PC(注) 读主存,IR 读出内容 PC PC + 1 执行指令 ALU R0 ALU R1 执行 + R0 ALU,记忆结果特征 结束,判中断,指令执行步骤简单的文字描述 加法指令 ADD R0, R1,寄存器内容传送指令 MVRR R9, R0,读取指令 AR PC(注) 读主存,IR 读出内容 PC PC + 1 执行指令 ALU 0 ALU R0 执行 + R9 ALU 结束,判中断,写寄存器内容到主存 STRA 2007 , R9,读取指令 AR PC 读主存,IR 读出内容 PC PC + 1 执行指令 AR PC , PC PC+ 1 读主存,AR 读出内容 ALU 0 , ALU R9 ,+ 写主存, 总线 ALU , 结束,判中断,(地址 2007 存在指令的第二个字中),输入指令 IN 80,读取指令 AR PC(注) 读主存,IR 读出内容 PC PC + 1 执行指令 AR I/O Port 读外设,ALU 读出数据 ALU 0 执行 + R0 ALU 结束,判中断,相对转移指令 JRC 2000,读取指令 AR PC(注) 读主存,IR 读出内容 PC PC + 1 执行指令 若 c = 1 则: ALU PC ALU offset(IR低字节) 二者相加,结果送PC 否则,PC 不接收二者之和 结束,判中断,子程序返回指令 RET,读取指令 AR PC 读主存,IR 读出内容 PC PC + 1 执行指令 AR SP SP SP + 1 读主存, PC读出内容 结束,判中断,PC 0,AR PC PCPC+1,IR(AR),寄存器之间 运算与传送,读、写内存 AR地址,AR地址,读、写内存 或 I/O 接口,读、写内存 PC地址,16 位机的基本指令、扩展指令执行流程图,A组,B组,C组,D组,/Reset,B、C、D组,TEC-2000 教学机系统的组成,计算机 终端,PC机,微程序 控制器,运算器 (8 / 16 位),主存储器 (8 / 16位),按键 开关 指示灯,串行接口,接口实验 中断实验 内存扩展实验,电 源 +5V,硬布线 控制器,控制器应提供的控制信号,Y15Y0 用16个指示灯显示结果,D15D0,RAM15,Q15,RAM0,Q0,Cin,Cy F=0 Over F15,运 算 器 部 件 (4 片 Am2901),A30,B30,I86,用16个数据开关提供输入数据,C Z V S,SSH,SST,SCI,I53,I20,SCI SSH A口 B口,I86 I53 I20 SST,通过24位微型开关 提供控制信号,各用四个指示灯显示状态,Gal 20V8,Gal 20V8,(1)对运算器的控制,24位控制信号,同24位微型开关内容, A3A0,B3B0,I8I6, I5I3, I2I0 SST20, SSH10, SCI10 寄存器分配: R4:SP R5: PC 约定用法:R0:I/O指令约定使用,也是通用累加器,(2)读写主存储器或I/O接口,从学习指令执行步骤考虑,理解对主存储器读写的控制,分成两步: 1. 传送主存地址,以选择被读写的存储单元; 2. 给出读写命令, 读操作时,把读出数据保存起来, 写操作时,还要给出写入的数据。 从学习指令执行步骤考虑,理解对接口电路读写的控制,分成两步: 1. 传送IO端口地址,以选择被读写的芯片; 2. 给出读写命令, 读操作时,把读出数据保存起来, 写操作时,还要给出写入的数据。,对内存和 I/O接口的读写,/MIO(0:有内存或串口读写,1:无) REQ (0:读写内存, 1:读写串行口) /WE (0:写操作, 1:读操作),0 0 0 写内存,0 0 1 读内存,0 1 0 写串口,0 1 1 读串口,1 XX 无内存和串口的读写操作,(3)对总线的控制,总线是用于连接计算机各个功能部件的线路和连接线,通常由具有三态输出功能的器件构成,以便用分时地方式,在不同时刻把不同的数据发送到总线上,任何时刻仅能有一个数据发送到总线上; 总线上的数据可以被送到需要接收数据的部件或者线路,多个线路可以同时接收同一个来源数据。 计算机中总要使用 3 种类型的总线: 数据总线,地址总线,控制总线,(4)对内部总线和特定寄存器的控制,选择送内部总线的信息来源 DC120 信号名称 注释 000 /SWTOIB 来自开关 001 /RTOIB ALU的输出 010 /ETOIB 符号扩展16位 011 /FTOIB 状态位输出 100 /STOIB 符号扩展8位 101 /INTVH 中断向量的 110 /INTVL 高、低 8 位 110 NC 不用,控制指定寄存器接收信息 DC220 信号名称 注释 000 NC 不用 001 /GIR 指令寄存器 010 /GARL 地址寄存器低位 011 /GARH 地址寄存器高位 100 /INTR 取原中断优先级 101 /INTN 置新中断优先级 110 /EI 开中断 110 /DI 关中断,本章主要内容,控制器的功能组成与指令执行步骤 微程序控制器部件 组合逻辑控制器部件,微程序控制器组成与设计,(1)微程序控制器的运行原理 (2)教学计算机的微程序控制器的实际组成 (3)微程序解释的基本指令执行流程图 (4)微指令的格式设计 (5)指令执行流程举例与说明,(1) 微程序控制器的运行原理,每条指令一个执行步骤用到的全体控制信号组成一微指令 每条微指令可以包括一到多个微操作。 用多条微指令(一个微程序)解释每条指令的执行过程。 全部的微程序有机地组合在一起,被保在控制存储器中。 执行一条微指令所用的时间被称为一个微周期。 微指令的格式和内容: 下地址字段 控制命令字段,读与执行微指令的 并行流水技术,下地址字段的内容,得到下地址的方法: 1. 由指令操作码得到 2. 微指令顺序执行 3. 微指令必转或条件转移 多路微地址转移 4. 微子程序调用和返回 5. 按次数循环一段微程序 6. 其他:如特定入口微地址,在微指令下地址字段中表示清楚: 使用哪种方法, 哪个(些)判断条件, 要用的有关地址等, 并用专门电路完成必要支持和处理, 微指令的下地址是微程序设计中要重点解决的问题之一, 技术、技巧性强, 应学得好些。,在教学计算机中,解决下地址使用了 Am2910 器件,微堆桟指针 SP,5字 * 12位 微堆桟 F,微程序计数器 PC,寄存器/计数器 R / C,D R F PC 多路选择器,命令译码器,增 量 器,零检 测,D11D0,Y11Y0,CP,/FULL,CI,/CC,/CCEN,I3I0,/PL /MAP /VECT,/RLD,/OE,出栈/入栈 保持/清零,装数 减量 保持,清零 选择,R为零,Am2910器件,非零循环 零 /PL PC 弹出 PC 弹出,4 入栈与装数 注1 /PL PC 压入 PC 压入,6 读手拨开关 /VECT PC D,3 条件微转移 /PL PC D,2 功能分支 /MAP D D,1 条件转微子 /PL PC D 压入,完成 R/C R/C 使能 /CC=高 /CC=低 功能 内容 操作 信号 Y输出 堆栈 Y输出 堆栈,0 初始化 /PL 0 清除 0 清除,8 R/C 非零 减1 /PL F F,10 微子返回 /PL PC F 弹出,14 顺序执行 /PL PC PC,15 三路转移 非零 减1 /PL F PC 弹出,零 /PL D 弹出 PC 弹出,微命令字段的编码译码方法,1.直接控制法 直接用微指令字的一位作一个控制信号则简单且速度快,但会使微指令字变得很长。 2.字段直接编译法 把互斥的命令分在一组加以编码,经译码器给出命令, 速度会稍慢,但可大大减短微指令字长度,确保互斥。 3.字段间接编译法 是对直接译码的的一种改进,可进一步缩短微指令字长度,即一个字段的某些微命令还受另一字段的制约。 4.常数源字段 微指令中分配几位,用于给出特定用途的有关数值。,(2) 微程序控制器组成 56位的微指令字长, 微下地址字段16位, 控制命令字段40位, 7 片 28C64 组成控存。 1 片 28C65,从指令操 作码产生微地址, 1 片 374 存 8 位下地址, 1 片 273 存 8 位条件码, 1 片377存8位现微地址。 1 片Am2910给出下一条 微指令地址, 1 片GAL 按判断条件产 生微指令转移信号/CC; 5 片GAL用作为 5 片 8位 的 D 触发器的寄存器, 2 片GAL 实现两个4 位的 2 选 1 芯片功能。 8 或 16位的指令寄存器。,微程序控制器,Am2910,MAPROM,SCC Gal,控制存储器( ROM),指令操作码,微指令转移的控制条件,/SCC,微指令寄存器,0MRW SA I86 B口 0SST DC2 0 I20 SB I53 A口 SSHSCI DC1,CP,/G,读命令,1. 确定指令功能与格式 2. 划分指令执行步骤 3.分配微指令地址 4. 设计微指令内容 5. 把新微指令写入控存 6. 需要时修改 MAPROM 和 SCC Gal等 7. 调试并且运行,B 口二选一,A 口二选一,IR.SR,IR.DR,TEC-2000 教学机系统的组成,计算机 终端,PC机,微程序 /硬布线 控制器,运算器 (16 位),主存储器 (16位),按键 室开关 指示灯,串行接口,中断实验 接口实验 内存扩展实验,电 源 +5V,每条指令的执行步骤,读取指令 指令地址 (在程序计数器PC中) 送入主存地址寄存器 读主存,读出内容送入指令寄存器 IR 分析指令 按指令规定内容执行指令 不同指令的操作步骤数, 和具体操作内容差异很大, 检查有无中断请求 若有,则响应中断并转中断处理 若无,则转入下一条指令的执行过程,R_R类型指令 读写内存类型指令 输入输出类型指令 其他类型指令,可能执行 一次或多次 可以复合,是一次读 内存操作,公共操作,公共操作,是每一条指令的特定操作,PC 0,AR PC PCPC+1,IR(AR),/MAP,寄存器之间 运算与传送,读、写内存 AR地址,AR地址,读、写内存 或 I/O 接口,读、写内存 PC地址,(3) 基本指令、扩展指令执行流程图,A组,B组,C组,D组,/Reset,B、C、D组,加电启动时, 执行 0PC,接下来的两步, 完成取指操作,按指令操作码, 读出相应微指令,按指令具体功能, 再分别用 1、2、 3、4 步完成不同 指令组的中各条 指令的执行过程,最后检查中断请 求信号,有请求 时则响应中断, 否则开始下一条 指令的执行过程,9 位微下地址字段用于直接给出下一条微指令的地址,常用 8 位, 使用微指令字中最高8位编码 。 最高一位用于扩展功能,单独接线。,(4)TEC-2000 教学机微指令格式设计,微下地址 2910的命令码 微转移条件,8位,4位,4位,分成 3 个子字段,总共使用17位码 (微指令中用16位)。,4 位的命令码,用于选择Am2910的16个命令, 如前一页的表格内容所示。,4 位的微转移条件给出微指令转移所依据的条件,与教学机具体设计有关。,1位,微指令的下地址字段,控制命令字段,给出计算机各功能部件协同运行所需要的控制信号 划分成若干字段,分别用于控制各部件 控制运算器部件 如:运算功能,数据来源,结果处理等 控制总线 主存 入出接口(设备) 如: 指出是主存读、写还是入出设备读、写 把什么数据送到有关总线等,控制控制器部件 (下地址字段) 主要是正确给出下条微指令的地址,为每一条微指令分配微地址,需要为每一条微指令在控存中分配一个合适的地址,这是合理地组织微程序的重要工作; 1. 首先确定微指令中下地址字段的组成; 2. 再按每一条微指令在控存中的位置,来安排下地址字段各部分的编码, 这与控制器的 具体线路与方案 有关。,微指令控制信号字段编码,为每一条微指令各项微操作确定 其所要求的控制信号 如: 使 IR,AR 等寄存器接收的信号 控制 PC 增量和接收的信号 读写主存,读写外设的信号 控制运算器操作的信号 等 这要看被控制的具体对象的具体要求,下址 CI30 SCC30 0MRW 0 I20 SA I86 SB I53 B口 A口 0 SST SSH SCI DC2 DC1,00 E 0 4 3 2 0 5 5 0 1 3 0 00 E 0 1 0 1 0 0 0 0 0 1 0 00 2 0 4 0 1 0 0 0 0 0 0 0,30 3 0 4 1 B 8 0 0 1 0 0 0 3 0 4 4 B 8 0 0 0 0 0 0 3 6 4 7 1 0 0 0 0 0 3 2 30 3 0 3 7 3 0 0 0 0 0 0 0 00 E 0 4 3 2 0 5 5 0 1 3 0 00 E 0 1 7 0 0 0 0 0 0 0 0 00 E 0 4 3 3 1 4 0 0 0 3 0 30 3 0 0 2 2 0 5 5 0 0 0 1,(5) 指令执行流程举例,ADD DR, SR MVRR DR, SR IN IO-PORT CALA ADR,下址 CI30 SCC30 0MRW 0 I20 SA I86 SB I53 B口 A口 0 SST SSH SCI DC2 DC1,00 E 0 4 3 2 0 5 5 0 1 3 0 00 E 0 1 0 1 0 0 0 0 0 1 0 00 2 0 4 0 1 0 0 0 0 0 0 0,指令执行流程举例,ADD DR, SR MVRR DR, SR IN IO-PORT CALA ADR,第 1 条微指令和第 2 条微指令用于完成读取指令,具体操作功能是: PCAR ,PC+1PC;PC 是 R5,A口 和 B口 均选5, B口内容+1 送 B口;输出A口的内容送AR寄存器。读主存, 读出内容 IR ; 微指令都是顺序执行,故 2910选 14# 命令。 第 3 条微指令按读出的指令的操作码,形成相应微指令的地址,读出该条微指令并将其写入微指令寄存器, 2910选 2# 命令,控制运算器的 I8I6 选 001 码,保证运算器的各寄存器内容不变化。 无存储器和IO读写,故/MIO REQ /WE 选 100 码。,下址 CI30 SCC30 0MRW 0 I20 SA I86 SB I53 B口 A口 0 SST SSH SCI DC2 DC1,00 E 0 4 3 2 0 5 5 0 1 3 0 00 E 0 1 0 1 0 0 0 0 0 1 0 00 2 0 4 0 1 0 0 0 0 0 0 0,30 3 0 4 1 B 8 0 0 1 0 0 0 3 0 4 4 B 8 0 0 0 0 0 0,指令执行流程举例,ADD DR, SR MVRR DR, SR IN IO-PORT CALA ADR,第 3 条微指令和第 4 条微指令 用于完成两个累加器之间的相加和传送操作。具体操作是:2 累加器相加,DR+SRDR,A口和B口 编码来自指令寄存器,故SA 和 SB都给 1 值;下微指令转判中断请求, 故 2910选 3# 命令且 SCC 为 0000, 必转 30。 第 4 条微指令,完成两个累加器之间的数据传送,累加器SR的内容和 0相加,存入DR寄存器中,不保存标志位的值,故SST为000,无存储器和 IO读写。这两条微指令内容有些类似。,下址 CI30 SCC30 0MRW 0 I20 SA I86 SB I53 B口 A口 0 SST SSH SCI DC2 DC1,14 3 6 4 7 1 0 0 0 0 0 3 2 30 3 0 3 7 3 0 0 0 0 0 0 0,指令执行流程举例,ADD DR, SR MVRR DR, SR IN IO-PORT CALA ADR,第 5、6 两条微指令完成读串行接口,具体操作是:先送 IO 端口地址( 在 IR 的低 8位)到地址寄存器AR,DC1 为 2 选 IR 的低 8位送内部总线,经 ALU ( 送出 D+0 )到 AR (DC2 为 3 是 AR 接收);IN 指令时转14# 微指令(下地址 3 个字段为 14 3 6); 下一微指令完成读串口输入到内部总线,把D+0 送到 ALU并写进 R0( B 口选 0000);转判中断请求, 故 CI 选 3# 且 SCC 为 0000, 必转 30。,下址 CI30 SCC30 0MRW 0 I20 SA I86 SB I53 B口 A口 0 SST SSH SCI DC2 DC1,00 E 0 4 3 2 0 5 5 0 1 3 0 00 E 0 1 7 0 0 0 0 0 0 0 0 00 E 0 4 3 3 1 4 0 0 0 3 0 3 0 0 2 2 0 5 5 0 0 0 1,指令执行流程举例,ADD DR, SR MVRR DR, SR IN IO-PORT CALA ADR,后 4 条微指令之间顺序执行,前 3 条的 CI 都是 E,依次完成:1. PCAR,PC+1 PC;(控制命令同读取指令的第1步) ; 2. 读内存 (MRW=001) 送 Q (D+0 Q) (子程序入口); 3. 修改堆栈指针并送AR, SP-1 SP,AR;SP 是 R4,即R4 的内容-1 R4 和 AR ( DC2 为 3 是 AR 接收); 4. 写断点( PC的内容)到堆栈 , 即 A 口指定的寄存器 (R5)的内容经数据总线送到内存并写入;子程序的入口地址 (在 Q 中)(Q的内容+0)送入 PC(B 口指定 R5)。下地址控制完成转向判中断请求的微指令的地址 30 处 。,教学计算机的微程序控制器 信息流图示部分,典型指令的执行过程举例: 2000 0001 ADD r0, r1 2001 0790 MVRR r9, r0 2002 8800 MVRD r0, 2100 2100 8309 STRR R0, R9 (写内存) 8280 IN 80 (读串行口) 2006 44FB JRC 2002 2007 8F00 RET,程序 计数器,运算器,控制器,控制 存储器,用于运算器,输入/出设备,主存储器,控制总线,0 001,8F00,0790,C Z V S,接口,.,PC,AR,IR,数据总线,地址总线,ALU,乘商寄存器,6688,1234,R9,操作数 地址,操作码,寄存器组,映射,地址寄存器,指令寄存器,微程序定序器,主振 脉冲,微指令寄存器,下地址字段内容,2000,8800,2100,8309,8280,44FB,3041,2000,2007,0001,4275,42 75,AR PC,读内存,IR读出内容,R0 R0 + R1,PC PC+1,+,ADD R0,R1,2001,2000,0001,程序 计数器,运算器,控制器,控制 存储器,用于运算器,输入/出设备,主存储器,控制总线,0001,8F00,0790,C Z V S,接口,.,PC,AR,IR,数据总线,地址总线,ALU,乘商寄存器,6688,1234,R9,操作数 地址,操作码,寄存器组,映射,地址寄存器,指令寄存器,微程序定序器,主振 脉冲,微指令寄存器,下地址字段内容,2000,8800,2100,8309,8280,44FB,4725,2001,2007,2001,0790,4275,4275,AR PC,读内存,IR 读出内容,R9 R0 + 0,PC PC+1,0,+,MVRR R9, R0,2002,0790,程序计数器,运算器,控制器,控制 存储器,用于运算器,输入设备,主存储器,控制总线,0 001,78BD,0790,C Z V S,接口,.,PC,AR,IR,数据总线,地址总线,ALU,乘商寄存器,6688,1234,R9 4275,操作数 地址,操作码,寄存器组,映射,地址寄存器,指令寄存器,微程序定序器,主振 脉冲,微指令寄存器,下地址字段内容,2000,8800,2100,8309,8280,44FB,2100,802,2007,2002,8800,2003,78BD,0,8F00,ARPC, PC PC+1,读内存,IR读出内容,读内存,R0 D+0,ARPC,PC PC+1,2100,+,MVRD R0, 2100,2004,2003,程序计数器,运算器,控制器,控制 存储器,用于运算器,输入设备,主存储器,控制总线,0 001,78BD,0790,C Z V S,接口,.,PC,AR,IR,数据总线,地址总线,ALU,乘商寄存器,6688,1234,R9 4275,操作数 地址,操作码,寄存器组,映射,地址寄存器,指令寄存器,微程序定序器,主振 脉冲,微指令寄存器,下地址字段内容,2000,8800,2100,8309,8280,44FB,2100,802,2007,2004,8309,2005,78BD,0,8F00,ARPC, PC PC+1,读内存,IR读出内容,写内存,总线 R9+0,ARR0+0,2100,+,STRR R0, R9,2100,程序 计数器,运算器,控制器,控制 存储器,用于运算器,输入/出设备,主存储器,控制总线,C Z V S,接口,.,PC,AR,IR,数据总线,地址总线,ALU,乘商寄存器,6688,1234,R9,操作数 地址,操作码,寄存器组,映射,地址寄存器,指令寄存器,微程序定序器,主振 脉冲,微指令寄存器,下地址字段内容,2000,3041,2006,2007,2005,8280,A,ARPC,读内存,IR读出内容,读设备,R0读出内容,PC PC+1,ARI/O port,IN 80,0 001,0790,8800,2100,8309,8280,44FB,8F00,80,程 序计数器,运算器,控制器,控制 存储器,用于运算器,输入/出设备,主存储器,控制总线,C Z V S,接口,.,PC,AR,IR,数据总线,地址总线,ALU,乘商寄存器,6688,1234,R9,操作数 地址,操作码,寄存器组,映射,地址寄存器,指令寄存器,微程序定序器,主振 脉冲,微指令寄存器,下地址字段内容,2000,A,805,2007,2006,806,44FB,ARPC PC PC+1,若C=1, 则 PCPC+offset,读内存,IR 读出内容,否则 do nothing,2007,JRC 2002,0 001,0790,8800,2100,8309,8280,44FB,8F00,本章主要内容,控制器的功能组成与指令执行步骤 微程序控制器部件 组合逻辑控制器部件,组合逻辑(硬连线)控制器设计,组合逻辑控制器的组成和运行原理 组合逻辑控制器的设计过程与技术 (1) 指令系统与指令编码设计 (2) 控制器应提供的控制信号 (3) 指令执行步骤划分和功能确定 (4) 节拍发生器(TIMING)设计与实现 (5) 时序控制信号产生部件的设计与实现,组合逻辑控制器的组成与运行原理,在讲解过微程序的控制器之后,再来讨论组合逻辑控制器的组成和运行原理就变得容易了, 因为二者有很多共同点。 它们都用于控制指令的执行过程, 并且使用几乎相同的执行步骤和几乎完全相同的控制信号,来完成对控制器之外的其他各功能部件的控制作用,因此可以简化对这些内容设计原理和方法的论述。,两种控制器实质性的差别,表现在处理指令各执行步骤的接续关系的方案和给出时序控制信号的办法完全不同,从而造成控制器的具体组成和运行原理、运行性能上的一些差异。比较它们的逻辑图可看出两种控制器组成的主要差异: 微程序控制器中的控存变成这里的时序信号产生部件,还取消了微指令寄存器;原来的下地址部件变成了这里的节拍发生器;原来的微地址映射部件变成这里的操作码译码器;一些信号连接关系也有某些变化。,组合逻辑控制器的组成与运行原理,(1)组合逻辑控制器用节拍发生器(Timing,几个触发器构成的时序逻辑电路)不同的状态组合来区分一条指令不同的执行步骤,指令执行步骤的接续是通过变换节拍发生器的状态组合完成的,不同于微程序控制器中通过下地址部件给出不同的微指令地址来实现。这里用节拍发生器取代了原来的下地址部件。,(2)组合逻辑控制器是通过由 “与或” 两级逻辑关系构成的时序控制信号产生部件来直接给出全部的时序控制信号。送到第一级各“与门”的输入信号是指令操作码和节拍发生器的节拍状态(可能还有控制条件),每个与门产生一个与项输出,相关的与项输出信号送到第二级的 “或门” ,每个或门输出的就是一个时序控制信号。全部的时序控制信号由许多个 “与或”逻辑门给出。与用控制存储器存放全部控制信号的微程序控制方案不同,这里用时序控制信号产生部件取代了原来的控制存储器,还取消了那里的微指令寄存器线路,把控制信号直接送到被控制的部件。,时序控制 信号 形成部件,译码,OP IR,PC,输 出 设 备,输 入 设 备,主存储器 部件,运算器 部件,启停,地址寄存器,数据总线,地址总线,控制总线,.,控制条件,主振,组合逻辑控制器的组成和运行原理,节拍发生器,程序计数器,指令寄存器,教学机的组合逻辑控制器 8 或16位的指令寄存器, 1 片100引脚的MACH, 5 片 8 输出引脚的GAL, 二者互斥运行,构成时序控制信号形成部件,提供35 位的控制信号。 2 片GAL与GAL3共同提供运算器A、B口信号。 节拍发生器(1 片GAL) ,产生 4 位节拍状态信号。 2 片GAL用于启动、停止等控制电路。 GAL1GAL7公用于组合和微程序两种控制器。,TEC-2000 16位机指令与执行流程设计,TEC-2000 分为 16 位和 8 位字长的两种型号。16 位机与 8 位机,从其指令格式、指令系统和运行的软件来看,是完全不同的两种机型,但是从整体硬件组成和使用的器件来看,又有相当多的类似之处。再从设计与实现的基本原理来看,二者同样有许多类似或相同之处,例如各自对组合逻辑和微程序两种控制器使用几乎完全相同的执行步骤。 关于 16 位机组合逻辑控制器设计过程中,可以直接跳过对指令执行步骤的划分和功能确定,对使用的控制信号的选择等内容的详细讨论,直接引用微程序控制器的设计结果即可;针对两种控制器的区别,重点讲解节拍发生器的设计与实现,时序控制信号产生部件的设计与实现,并强调设计中有关的原理性知识,顺便提到一些实现中对所用电路的选择原则。,PC 0,AR PC PCPC+1,IR(AR),寄存器之间 运算与传送,读、写内存 AR地址,AR地址,读、写内存 或 I/O 接口,读、写内存 PC地址,16 位机的基本指令、扩展指令执行流程图(组合逻辑方案),A组,B组,C组,D组,/Reset,B、C、D组,1000,0000,0010,0011,0110,0100,0111,0101,加电启动时, 执行 0PC,接下来的两步, 完成取指操作,按指令具体功能, 再分别用 1、2、 3、4 步完成不同 指令组的中各条 指令的执行过程,最后检查中断请 求信号,有请求 时则响应中断, 否则开始下一条 指令的执行过程,1000,0000,0010,0011,0110,0100,0101,0111,指 令 操 作 码,指令操作码,指 令 操 作 码,16 位机组合逻辑控制器的指令执行流程设计,XXXX,XXXX,XXXX,指 令 操 作 码,(1)节拍发生器的设计原理,TEC-2000 16位机实现了29条指令,使用了 8 个节拍(不含响应中断的步骤),为此,节拍发生器至少要使用 4 位触发器,可以产生最多 24 个节拍; 使用 4个触发器(分别命名为 T3 T2 T1 T0)不同的状态组合来区分每一个节拍,例如,用T3 T2 T1 T0 =1000 来标识最顶上一行的那个节拍,如此等等,正象前页一图所示。如何为每个节拍分配 4个触发器的状态组合,需要遵循的原则是:尽量做到从当前节拍切换到下一个节拍时,只有一个触发器的状态发生变化,办不到时,也要尽量使状态发生变化的触发器数目最少。此外,还要考虑有利于对写出的节拍发生器的逻辑表达式的逻辑化简。前一页给出的设计结果已经较好地体现了上述设计要求。 接下来的工作是按上图给出的设计结果,写出设计与实现这一节拍发生器的线路所依据的逻辑表达式。,节拍发生器的设计原理,按照节拍状态转换图(有限状态图)的结果,设计这一节拍发生器的逻辑线路的首要任务,是写出该节拍发生器线路的逻辑表达式。具体要求是写出反映每一个触发器的完整的状态转换序列的逻辑表达式。在该表达式中: (1)用一个与项表示在一个节拍中该触发器取值为 1 的一种状态,参加与运算的元素是: 进到本节拍的前一个节拍的 4个触发器的取值状态 (用 Ti 和 /Ti分别表示该触发器的 1 状态和 0 状态); 从前一个节拍得以进到本节拍的限制条件(可能没有),如指令组(用代表该指令组的表达式表示)或具体的一条指令(用相应指令的操作码表示)等。 (2)再把所有节拍中该触发器取值为 1 的情形用或项表示在一个表达式中。下面看实际的例子。,PC 0,AR PC PCPC+1,IR(AR),寄存器之间 运算与传送,读、写内存 AR地址,AR地址,读、写内存 或 I/O 接口,读、写内存 PC地址,16 位机的基本指令、扩展指令执行流程图,A组,B组,C组,D组,/Reset,B C D 组,1000,0000,0010,0011,0110,0100,0111,0101,T3 := C-M# * /Reset T2 := C-M#*Reset*/T3*/T2*T1*/T0*IR15 + C-M#*Reset*/T3*T2*T1*/T0 + C-M#*Reset*/T3*T2*T1*T0 + C-M#*Reset*/T3*T2*/T1*/T0 * IR15*IR14*IR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论