880 likes | 1.09k Views
第 6 章. 计算机的控制器部件. 本章主要内容. 控制器的功能组成与指令执行步骤 微程序控制器部件 组合逻辑控制器部件. 控制器的功能与组成. 1. 控制器的功能 : 控制执行指令 控制各部件协调运行,即为各部件提供控制信号。 2. 控制器的组成: 程序计数器 指令寄存器 指令步骤标记线路 提供控制信号的部件 分类 : 微程序的控制器 硬布线的控制器. 控制器的功能. 计算机的功能是执行程序 程序是依次排列起来的指令代码 控制器的功能就在于 :
E N D
第6章 计算机的控制器部件
本章主要内容 • 控制器的功能组成与指令执行步骤 • 微程序控制器部件 • 组合逻辑控制器部件
控制器的功能与组成 1. 控制器的功能: 控制执行指令 控制各部件协调运行,即为各部件提供控制信号。 2. 控制器的组成: 程序计数器 指令寄存器 指令步骤标记线路 提供控制信号的部件 分类 : 微程序的控制器 硬布线的控制器
控制器的功能 计算机的功能是执行程序 程序是依次排列起来的指令代码 控制器的功能就在于: 正确地分步完成每一条指令规定的功能, 正确且自动地连续执行指令; 再进一步说,就是向计算机各功能部件提供 协调运行每一个步骤所需要的控制信号。
主存储器部件 运算器部件 各部件包括 总线及输入/输出接口(输入/输出设备) 也包括 控制器部件 设计中的难点,在于解决对运算器、控制器的控制 控制器的组成 ①程序计数器PC:存放指令地址,有+1或接收新值功能。 ②指令寄存器IR:存放指令内容:操作码与操作数地址。 主脉冲源与启停控制线路,按需要给出主脉冲信号。 ③指令执行步骤标记线路: 指明每条指令的执行步骤。 ④控制信号记忆或产生线路:给出计算机各功能部件部件协同运行所需要的控制信号。
控制信号提供方法 • 生成法 • 将操作码和微操作序号作为输入,写出控制信号和下一微操作序号的逻辑表达式,然后,用相应的逻辑器件实现。 • 组合逻辑控制器,也称硬布线控制器 • 查表法 • 将每一操作码的每个微操作对应的全部控制信号和下一操作步骤事先存储在控制存储器中,需要的时候从控存中读出。 • 微程序控制器
主振 组合逻辑 方案的 控制器 控制条件 时序控制 信号 形成部件 译码 时序 PC IR …. 启停 控制器信号 数据总线 控制总线 地址寄存器械 地址总线 输出 设备 输入 设备 主 存 运算器 部件
主振 微程序 方案的 控制器 控制条件 控制 存储器 映射 下地址 PC IR …. 启停 微指令寄存器 数据总线 控制总线 地址寄存器械 地址总线 输出 设备 输入 设备 主 存 运算器 部件
微程序控制器指令执行流程 • 读当前指令到IR,且PC=PC+1; • 根据指令的操作码,得到该指令的微程序入口地址; • 读取该指令的微指令,并送到相应的计算机部件,完成微操作,同时,得到下一微指令的地址; • 重复上一步,直到本条指令执行完毕; • 判中断标志,如有,则进行中断处理; • 转取指令,执行下一条指令
微程序控制器的运行原理 • 每条指令一个执行步骤用到的全体控制信号组成一微指令 • 每条指令可以包括一到多个微操作 • 用多条微指令解释每条指令的整个执行过程 • 全部微指令的集合叫做微程序 • 执行一条微指令所用的时间被称为一个微周期。 • 微指令的格式和内容: • 下地址字段 控制命令字段
微程序控制器组成 clock
微程序控制器设计 • 定序器 • 根据指令操作码、指令当前步骤以及条件码,确定下一步骤的微程序地址 • 微指令 • 给出当前指令的当前步骤要完成指令规定的功能,各功能部件所需要的控制信号。对控制器本身而言,则是要给出下一步骤的微程序地址。 • 水平 • 垂直
下地址 • 顺序执行下一条微指令 • 无条件转移到某条微指令 • 根据微指令的某一状态结果,选择顺序执行或转向某一地址 • 微子程序调用,要使用到微堆栈 • 多路转移 • 根据指令操作码,转移到指令的入口地址
微指令设计 • 微指令字长 • 缩短控制存储器的字长 • 微程序的长度 • 控制存储器的容量 • 提高性能 • 提高整个计算机指令执行性能
微指令设计 • 直接控制法 • 直接给出各部件需要的控制信号(0或1) • 字段直接编译法 • 将某些互斥信号进行编码,由译码器给出这些信号,可缩短微指令字长 • 垂直型微指令 • 采用对微操作码译码的方式给出控制信号,可进一步缩短微指令字长
微程序控制器特点 • 采用ROM存储控制信号的方式,可扩展性好 • 兼容性实现比较容易 • 容易实现复杂的指令系统 • 性能比较低 • 并行性不好 • 主要用在CISC中
组合逻辑控制器 • 采用逻辑电路直接提供全部控制信号 • 输入 • 操作码 • 指令状态字 • 指令步骤编码(节拍) • 外部信号(Reset等) • 输出 • 全部控制信号 • 主要解决的问题 • 节拍转换 • 控制信号生成
节拍发生器 • 控制每条指令的执行步骤 • 用触发器实现 • 有限状态自动机 • 用触发器状态表示当前执行步骤 • 状态自动机自动转入下一状态
节拍发生器设计举例 我们假定某机器的指令系统有两条指令A和B,其中A指令需要4个步骤完成,而B指令只需要3个步骤。为此,节拍发生器需要有2个触发器,用它形成的4个状态来标记不同的步骤。如给A指令分配的节拍状态是00→01→10→11,B指令分配的节拍状态为00→10→11。 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 ; 子程序返回指令 其他一些指令与这里的几条指令有相当多的共同特性,属于 同一组的指令的执行步骤非常类似。
形成下条指令地址 加法指令 ADD R0, R1 读取指令 ①AR PC(注) ②读主存,IR 读出内容 PC PC + 1 执行指令 ③ALU R0 ALU R1 执行 + R0 ALU,记忆结果特征 结束,判中断
形成下条指令地址 MVRR R9, R0 读取指令 ①AR PC(注) ②读主存,IR 读出内容 PC PC + 1 执行指令 ③ALU 0 ALU R0 执行 + R9 ALU 结束,判中断
形成下条指令地址 STRA [2007] , R9 (地址 2007 存在指令的第二个字中) 读取指令 ①AR PC ②读主存,IR 读出内容 PC PC + 1 执行指令 ③AR PC , PC PC+ 1 ④读主存,AR 读出内容 ⑤ALU 0 , ALU R9,+ 写主存, 总线 ALU , 结束,判中断
形成下条指令地址 形成下条指令地址 输入指令 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读出内容 结束,判中断
/Reset PC 0 AR PC PCPC+1 寄存器之间 运算与传送 A组 B组 AR地址 读、写内存 或 I/O 接口 IR(AR) B、C、D组 C组 D组 读、写内存 AR地址 读、写内存 PC地址 16 位机的基本指令、扩展指令执行流程图
TEC-2000 教学机系统的组成 电 源 +5V 运算器 (8 / 16 位) 计算机 终端 微程序 控制器 接口实验 中断实验 内存扩展实验 串行接口 主存储器 (8 / 16位) 硬布线 控制器 PC机 按键 开关 指示灯
控制器应提供的控制信号 Y15~Y0用16个指示灯显示结果 各用四个指示灯显示状态 SST SCI Cy F=0 Over F15 Cin C Z V S 运 算 器 部 件 (4 片 Am2901) Gal 20V8 Gal 20V8 RAM15 RAM0 Q15 Q0 SSH D15~D0 用16个数据开关提供输入数据 I8~6 I2~0 I5~3 A3~0 B3~0 通过24位微型开关 提供控制信号 I8~6I5~3I2~0SST SCI SSH A口B口
(1)对运算器的控制 24位控制信号,同24位微型开关内容, A3~A0,B3~B0,I8~I6, I5~I3, I2~I0 SST2~0, SSH1~0, SCI1~0 寄存器分配: 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 种类型的总线: 数据总线,地址总线,控制总线
选择送内部总线的信息来源 DC12~0 信号名称 注释 000 /SWTOIB 来自开关 001 /RTOIB ALU的输出 010 /ETOIB 符号扩展16位 011 /FTOIB 状态位输出 100 /STOIB 符号扩展8位 101 /INTVH 中断向量的 110 /INTVL 高、低 8 位 110 NC 不用 控制指定寄存器接收信息 DC22~0 信号名称 注释 000 NC不用 001 /GIR指令寄存器 010 /GARL地址寄存器低位 011 /GARH地址寄存器高位 100 /INTR取原中断优先级 101 /INTN置新中断优先级 110 /EI开中断 110 /DI关中断 (4)对内部总线和特定寄存器的控制
本章主要内容 • 控制器的功能组成与指令执行步骤 • 微程序控制器部件 • 组合逻辑控制器部件
微程序控制器组成与设计 (1)微程序控制器的运行原理 (2)教学计算机的微程序控制器的实际组成 (3)微程序解释的基本指令执行流程图 (4)微指令的格式设计 (5)指令执行流程举例与说明
一个微周期 接收微指令 执行第 i条微指令 形成第 i+1条微指令地址 读出第 i+1条微指令 (1) 微程序控制器的运行原理 每条指令一个执行步骤用到的全体控制信号组成一微指令 每条微指令可以包括一到多个微操作。 用多条微指令(一个微程序)解释每条指令的执行过程。 全部的微程序有机地组合在一起,被保在控制存储器中。 执行一条微指令所用的时间被称为一个微周期。 微指令的格式和内容: 下地址字段 控制命令字段 读与执行微指令的 并行流水技术
下地址字段的内容 在微指令下地址字段中表示清楚: 使用哪种方法, 哪个(些)判断条件, 要用的有关地址等, 并用专门电路完成必要支持和处理, 微指令的下地址是微程序设计中要重点解决的问题之一, 技术、技巧性强, 应学得好些。 得到下地址的方法: 1. 由指令操作码得到 2. 微指令顺序执行 3. 微指令必转或条件转移 多路微地址转移 4. 微子程序调用和返回 5. 按次数循环一段微程序 6. 其他:如特定入口微地址 在教学计算机中,解决下地址使用了 Am2910 器件
D11~D0 Am2910器件 /RLD CP /FULL 寄存器/计数器 R / C 装数 减量 保持 微堆桟指针 SP 出栈/入栈 保持/清零 R为零 零检 测 /CC 5字 * 12位 微堆桟 F 命令译码器 /CCEN 微程序计数器 PC D R F PC 多路选择器 I3~I0 清零 选择 增 量 器 /PL /MAP /VECT /OE CI Y11~Y0
完成 R/C R/C 使能 /CC=高 /CC=低 功能 内容 操作 信号 Y输出 堆栈 Y输出 堆栈 0 初始化 /PL 0 清除 0 清除 1 条件转微子 /PL PC D 压入 2 功能分支 /MAP D D 3 条件微转移 /PL PC D 4 入栈与装数 注1 /PL PC 压入 PC 压入 6 读手拨开关 /VECT PC D 8 R/C 非零 减1 /PL F F 非零循环 零 /PL PC 弹出 PC 弹出 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位的指令寄存器。