第五章 中央控制器2015.ppt
第五章中央控制器 第五章中央控制器 CPU的功能和组成指令周期时序产生器和控制方式微程序控制器微程序设计技术硬布线控制器流水线CPU 5 1CPU的功能和组成 什么是CPU 所谓中央处理器是控制计算机来自动完成取出指令和执行指令任务的部件 它是计算机的核心部件 通常简称为CPU 5 1CPU的功能和组成 CPU的功能 4 数据加工 所谓数据加工 就是对数据进行算术运算和逻辑运算处理 完成数据的加工处理 这是CPU的根本的任务 1 指令控制 就是保证机器按规定的顺序执行程序 2 操作控制 CPU管理并产生由内存取出的每条指令的操作信号 并把各种操作信号送往相应的部件 从而控制这些部件按指令的要求进行动作 3 时间控制 对各种操作实施时间上的控制 称为时间控制 5 1CPU的功能和组成 CPU的基本组成中央处理器由两个主要部分控制器和运算器组成 5 1CPU的功能和组成 控制器由程序计数器 指令寄存器 指令译码器 时序产生器和操作控制器组成 它是发布命令的 决策机构 控制器的主要功能有 1 从内存中取出一条指令 并指出下一条指令在内存中的位置 2 对指令进行译码或测试 并产生相应的控制信号 3 指挥并控制CPU 内存和I O之间的数据流动的方向 5 1CPU的功能和组成 运算器由算术逻辑单位 ALU 累加寄存器 数据缓冲寄存器和状态条件寄存器组成 它是数据加工处理部件 相对控制器而言 运算器接受控制器的命令而进行动作 所以它是执行部件 运算器的主要功能 1 执行所有的算术运算 2 执行所有的逻辑运算 5 1CPU的功能和组成 5 1 3CPU中的主要寄存器 累加寄存器AC累加寄存器AC通常简称为累加器 它的功能是 当运算器的算术逻辑单元 ALU 执行全部算术和逻辑运算时 为ALU提供一个工作区 累加寄存器是暂时存放ALU运算的结果信息 显然 运算器中至少要有一个累加寄存器 5 1 3CPU中的主要寄存器 2 状态条件寄存器PSW状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容 同时状态条件寄存器还保存中断和系统工作状态等信息 以便使CPU和系统能及时了解机器运行状态和程序运行状态 因此 状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器 5 1 3CPU中的主要寄存器 3 程序计数器PC程序计数器中存放的是下一条指令在内存中的地址 指令寄存器IR指令寄存器用来保存当前正在执行的一条指令 5 1 3CPU中的主要寄存器 地址寄存器AR地址寄存器用来保存当前CPU所访问的内存单元的地址 由于在内存和CPU之间存在着操作速度上的差别 所以必须使用地址寄存器来保持地址信息 直到内存的读 写操作完成为止 缓冲寄存器DR缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字 反之 当向内存存入一条指令或一个数据字时 也暂时将它们存放在缓冲寄存器中 5 1 4操作控制器和时序产生器 1 数据通路 通常把许多寄存器之间传送信息的通路 称为 数据通路 2 操作控制器 根据指令操作码和时序信号 产生各种操作信号 以便正确建立数据通路 从而完成取指令和执行指令的操作 3 时序产生器 就是对各种操作实施时间上的控制 5 2指令周期 5 2指令周期 读取指令指令地址送入主存地址寄存器读主存 读出内容送入指定的寄存器 分析指令 按指令规定内容执行指令不同指令的操作步骤数和具体操作内容差异很大 检查有无中断请求若无 则转入下一条指令的执行过程 指令的执行过程 5 2指令周期 指令周期的基本概念 指令周期 CPU每取出并执行一条指令 都要完成一系列的操作 这一系列操作所需花费的时间通常叫做一个指令周期 机器周期 通常用内存中读取一个指令字的最短时间来规定一个机器周期 指令周期常常用若干个机器周期数来表示 CPU周期也称为机器周期 时钟周期 它是处理操作的最基本单位 而一个CPU周期时间又包含有若干个时钟周期 5 2指令周期 指令周期 T周期 取指令 执行指令 5 2指令周期 执行周期许多类型主要是涉及到处理器内部的寄存器可能的操作有数据传输ALU控制指令的处理 下面以一个简单的程序来具体认识每一条指令的指令周期和执行过程 5 2指令周期 CLA指令的指令周期 一个CPU周期 一个CPU周期 取指令阶段 执行指令阶段 开始 取指令PC 1 对指令译码 执行指令 取下条指令PC 1 CLA指令的指令周期 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR CPU ALU 指令寄存器IR 指令译码器 操作控制器时序产生器 时钟 状态反馈 取指控制 执行控制 c c c c 1 000020 20 21 22 23 24 30 31 40 CLA ADD30 STA40 NOP JMP21 000006 000020 CLA CLA 000021 指令周期 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR CPU ALU 指令寄存器IR 指令译码器 操作控制器时序产生器 时钟 状态反馈 取指控制 执行控制 c c c c 1 20 21 22 23 24 30 31 40 CLA ADD30 STA40 NOP JMP21 000006 000020 CLA CLA 000021 指令周期 ADD指令的指令周期 ADD指令的指令周期由三个CPU周期组成 第一个CPU周期为取指令阶段 第二个CPU周期中将操作数的地址送往地址寄存器并完成地址译码 在第三个CPU周期中从内存取出操作数并执行相加的操作 ADD指令的指令周期 一个CPU周期 一个CPU周期 取指令阶段 执行指令阶段 开始 取指令PC 1 对指令译码 送操作数地址 取下条指令PC 1 取出操作数 执行加操作 一个CPU周期 ADD指令的指令周期 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR CPU ALU 指令寄存器IR 指令译码器 操作控制器时序产生器 时钟 状态反馈 取指控制 执行控制 c c c c 1 20 21 22 23 24 30 31 40 CLA ADD30 STA40 NOP JMP21 000006 000021 ADD ADD30 000021 000022 000030 000006 0 6 6 000006 STA指令的指令周期 STA指令的指令周期 STA指令的指令周期由三个CPU周期组成 其中第一个CPU周期仍然是取指令阶段 其过程和CLA指令 ADD指令完全一样 不同的是此阶段中程序计数器加1后变为023 因而为取第四条指令做好了准备 我们假定 第一个CPU周期后结束 STA40 指令已放入指令寄存器并完成译码测试 STA指令的指令周期 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR CPU ALU 指令寄存器IR 指令译码器 操作控制器时序产生器 时钟 状态反馈 取指控制 执行控制 c c c c 1 20 21 22 23 24 30 40 CLA ADD30 STA40 NOP JMP21 000006 000022 STA STA40 000022 000023 000040 000006 000006 000006 指令周期 NOP指令和JMP指令的指令周期 NOP指令是一条空指令 包含两个CPU周期 第一个周期取指令 第二个周期执行指令 因是空指令 所以操作控制器不发出任何控制信号 JMP指令由两个CPU周期组成 第一个周期是取指令周期 同其他指令 第二个周期为执行阶段 CPU把指令寄存器中的地址码部分21送到程序计数器 从而用新内容21代替PC原先的内容25 这样 下一条指令将不从25单元中读出 而从21电源开始读出并执行 从而改变了程序原先的执行顺序 指令周期 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR ALU 指令寄存器IR 指令译码器 操作控制器时序产生器 时钟 状态反馈 取指控制 执行控制 c c c c 1 20 21 22 23 24 30 40 CLA ADD30 STA40 NOP JMP21 000006 000024 JMP21 JMP21 000024 000021 000006 000006 000025 000021 5 2指令周期 小结 各类信息的传送路径指令 M DBUS DR DBUS IR地址 PC ABUS AR 取决于寻址方式 数据 寄存器 寄存器 总线直接传送寄存器 存储器 Ri DBUS DR DBUS M存储器 寄存器 M DBUS DR DBUS Ri 5 2 7用方框图语言表示指令周期 在进行计算机设计时 可以采用方框图语言来表示一条指令的指令周期 一个方框代表一个CPU周期 方框中的内容表示数据通路的操作或某种控制 一个菱形符号代表某种判别或测试 不过时间它依附于它前面一个方框的CPU周期 而不单独占用一个CPU周期 符号 代表一个公操作 5 2 7用方框图语言表示指令周期 PC AR ABUSDBUS DR IRPC 1 译码或测试 0 AC IR AR IR AR IR PCPC AR AR ABUSDBUS DRDR ALUALU AC AR ABUSAC DRDR DBUS CLA ADD STA JMP NOP 5 2 7用方框图语言表示指令周期 例 如图所示为双总线结构机器的数据通路 控制信号G控制的是一个门电路 画出下列的指令周期流程图 并列出相应的微操作控制信号序列 1 ADDR2 R0 指令完成 R0 R2 R0功能操作 假设该指令的地址已放入PC中 2 SUBR1 R3 指令完成 R3 R1 R3的功能操作 指令周期 AR M X Y ALU IRi IRo PCi PCo ARi DRi DRo R0i R0o R3i R3o Xi Yi A总线 B总线 G R W 指令周期 PC AR M DR DR IR R2 Y R0 X R0 R2 R0 PC AR M DR DR IR R3 Y R1 X R3 R1 R3 PC0 G ARi DR0 G IRi R2o G Yi R00 G Xi G R0I R W R R3o G Yi R1o G Xi G R3i 5 3时序产生器和控制方式 时序信号的作用和体制计算机的协调动作需要时间标志 而时间标志则是用时序信号来体现的 操作控制器发出的各种控制信号都是时间因素 时序信号 和空间因素 部件位置 的函数 组成计算机硬件的器件特性决定了时序信号最基本的体制是电位 脉冲制 5 3时序产生器和控制方式 常用的操作控制器有两种 硬布线控制器微程序控制器 5 3时序产生器和控制方式 硬布线控制器中时序信号采用主状态周期 节拍电位 节拍脉冲三级体制微程序控制中时序信号采用节拍电位 节拍脉冲二级体制 5 3时序产生器和控制方式 主状态周期 指令周期 包含若干个节拍周期 可以用一个触发器的状态持续时间来表示 节拍电位 机器周期 包含若干个节拍脉冲 表示较大的时间单位 节拍脉冲 时钟周期 表示较小的时间单位 5 3时序产生器和控制方式 节拍电位与节拍脉冲时序关系图 5 3时序产生器和控制方式 时序信号产生器的组成时钟源环形脉冲发生器节拍脉冲和读 写时序的译码启停控制逻辑 环形脉冲发生器 四 节拍脉冲和读 写时序的编码 读写时序信号的译码逻辑表达式以上带 的表示信号来自微程序控制器 持续一个CPU周期读写时序信号受到控制的信号 而节拍脉冲信号时计算机加上电源后就产生 5 3时序产生器和控制方式 启停控制逻辑 节拍脉冲和对时序译码逻辑 环形脉冲发生器 IORQMREQRDWET1T2T3T4 IORQ MREQ RD WE T1 T2 T3 T4 MERQ IORQ RD WR 时钟脉冲源 时钟脉冲源 环形脉冲发生器 节拍脉冲和对时序译码逻辑 启停控制逻辑 用来位环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号 有石英晶体振荡器组成 产生一组有序的间隔相等或不等的脉冲序列 通常采用循环移位寄存器 控制方式 当两个操作速度不同的部件或执行时间不同的指令在一起工作 怎样使计算机协调工作 这就要涉及到部件之间的通信方式及时序的控制方式方面的问题 统称为控制方式问题 按时序信号与操作的关系进行分类 控制方式可以分为同步控制 异步控制和联合控制等3种方式 控制方式 同步控制方式 其基本思想是选取部件中最长的操作时间作为统一的时间间隔标准 使所有的部件都在这个时间间隔内启动并完成操作 已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的 优点是 时序关系比较简单 控制器设计方便 缺点是 以牺牲速度为代价 控制方式 异步控制方式 又称为可变时序控制方式 其基本思想是不设立统一的时间间隔标准 各部件按本身的速度占用时间 时间上的衔接通过应答通信方式 又称握手方式 实现 每条指令 每个操作控制信号需要多少时间就占用多少时间 这意味着每条指令的指令周期可由多少不等的机器周期数组成 优点 提高了系统的速度缺点 控制器比较复杂 控制方式 联合控制方式 其基本思想是将同步控制方式和异步控制方式相结合 使计算机处于同步与异步交替工作方式 例如 对大多数需要节拍数相近的指令 用相同的节拍数来完成 即采用同步控制 而对少数需要节拍数多的指令或节拍数不固定的指令 给予必要的延长 即采用异步控制 因为是少数指令 是局部的 所以又称为局部性异步控制 实现局部性异步控制的方法有 1 节拍数可变周期法 即不同的机器周期采用不同的节拍数 由周期状态触发器来控制 2 节拍数周期固定法 即不同的机器周期采用相同的节拍数 对需要延长的周期 采用节拍插入法或周期延长法来调整 5 4微程序控制器 基本概念组成工作过程微程序举例微程序设计技术微程序控制器的设计方法 5 4微程序控制器 基本概念微命令微操作微指令微程序控制存储器微地址 5 4微程序控制器 基本概念 微程序控制器的基本思想 将微操作控制信号按一定规则进行信息编码 代码化 形成控制字 微指令 一条机器指令对应一段 程序 该程序存放在控制存储器中 因为 程序 的指令结果是实现一条机器指令的功能 所以称为 指令的微程序 5 4微程序控制器 基本概念 微命令 控制部件通过控制线向执行部件发出各种控制命令 通常把这种控制命令称为微命令 微操作 执行部件接受微命令后所进行的操作 称为微操作 5 4微程序控制器 基本概念 微指令 在机器的一个CPU周期中 一组实现一定操作功能的微命令的组合 构成一条微指令 微程序 微指令序列为微程序 5 4微程序控制器 基本概念 程序 机器指令1 机器指令2 机器指令i 机器指令n 微指令2 微指令1 微指令i 微指令n 微程序 5 4微程序控制器 基本概念 控制存储器 用来存放微程序的高速存储器 5 4微程序控制器 基本概念 微地址 人们常把全部指令的控制字存放在一个高速存储器中 即控制存储器中 简称控存 控存的一个单元的内容即控制字代表了某一个节拍的一组微操作控制信号的信息 而把控存单元的地址称为 微地址 5 4微程序控制器 组成 控制存储器 用来存放实现全部指令系统的微程序 微指令寄存器 用来存放由控制存储器读出的一条微指令信息 微地址转移逻辑 自动完成修改微地址的任务 5 4微程序控制器 组成 微程序控制器原理框图 控制存储器 地址译码 微地址寄存器 OP P字段控制字段 地址转移逻辑 状态条件 指令寄存器 微命令信号 5 4微程序控制器 工作过程 微程序控制器的工作过程实质上就是在微程序控制器的控制下 计算机执行机器指令的过程 从控存中取出一段 取机器指令 用的微程序 称为取指微程序 这是一段公用的微操作 其首址通常方在 0 号微地址单元 该微程序完成从主存中读取机器指令并送往指令寄存器 机器指令操作码通过微地址形成部件 产生对应的微程序入口地址 并送入微地址寄存器 逐条取出对应的微指令 每一条微指令提供一个微命令序列 控制有关的微操作 执行完对应于一条机器指令的一段微程序后 返回到取指微程序的入口 以便取出下一条机器指令 不断重复 直至程序执行完毕 5 4微程序控制器 微程序举例 ALU R1 R2 R3 Cy M DR 4 6 8 5 7 9 1 2 3 5 4微程序控制器 微程序举例 4567891011121314151617181920212223 微指令的格式 LDR1 LDR2 LDR3 R1 Y R2 X R2 Y R1 X DR X R3 Y M RD LDDR LDIR LDAR PC 1 P1 P2 直接地址 操作控制 顺序控制 5 4微程序控制器 微程序举例 举例 十进制加法 指令的微程序控制的过程 十进制加法 指令的功能是用BCD码来完成十进制数的加法运算 在十进制运算时 当相加二数之和大于9时 便产生进位 要进行加6修正 当相加二数之和小于等于9时 结果是正确的 5 4微程序控制器 微程序举例 假定数a和b已存放在R1和R2两寄存器中 数6存放在R3寄存器中 算法要求先进行a b 6运算 然后判断结果有无进位 当进位标志Cy 1不减6 当Cy 0 减6 从而可以获得正确的结果 5 4微程序控制器 微程序举例 PC AR ABUSDBUS DR IR PC 1 P1 R1 R2 R2 R2 R3 R2 R2 R3 R2 P2 RD 0000 0000 1010 1001 0000 0001 0000 Cy 0 Cy 0 微程序流程图 5 4微程序控制器 微程序举例 00000000000011111100000 4567891011121314151617181920212223 第一条微指令 LDR1 LDR2 LDR3 R1 Y R2 X R2 Y R1 X DR X R3 Y M RD LDDR LDIR LDAR PC 1 P1 P2 直接地址 操作控制 顺序控制 5 4微程序控制器 微程序举例 01010010010000000001001 4567891011121314151617181920212223 第二条微指令 LDR1 LDR2 LDR3 R1 Y R2 X R2 Y R1 X DR X R3 Y M RD LDDR LDIR LDAR PC 1 P1 P2 直接地址 操作控制 顺序控制 R1X R2Y LDR2 5 4微程序控制器 微程序举例 01000100110000000010000 4567891011121314151617181920212223 第三条微指令 LDR1 LDR2 LDR3 R1 Y R2 X R2 Y R1 X DR X R3 Y M RD LDDR LDIR LDAR PC 1 P1 P2 直接地址 操作控制 顺序控制 R2X R3Y LDR2 5 4微程序控制器 微程序举例 01000100100100000000000 4567891011121314151617181920212223 第四条微指令 LDR1 LDR2 LDR3 R1 Y R2 X R2 Y R1 X DR X R3 Y M RD LDDR LDIR LDAR PC 1 P1 P2 直接地址 操作控制 顺序控制 R2X R3X LDR2 T1T2T3T4T1T2T3T4 5 4微程序控制器 微指令周期 微指令周期 读出微指令的时间加上执行该条微指令的时间 执行微指令 微指令周期 CPU周期 CPU周期 读微指令 5 4机器指令和微指令的关系 程序计数器 地址寄存器 缓冲寄存器 指令寄存器 微地址寄存器 微指令寄存器 主存储器 控制存储器 微命令 例 设某计算机运算器框图如图所示 其中ALU为16位的加法器 高电平工作 SA SB为16位暂存器 4个通用寄存器由D触发器组成 Q端输出 其读 写控制功能见下表 写控制 读控制 选择 WA1 WA0 W 选择 RA1 RA0 R 不写入 0 不读出 0 R3 1 1 1 R3 1 1 1 R2 0 1 1 R2 0 1 1 R1 1 0 1 R1 1 0 1 R0 0 0 1 R0 0 0 1 机器采用串行微程序控制方式 其微指令周期见下图 b 其中读ROM是从控存中读出一条微指令时间 为1 s ALU工作是加法器做加法运算 为500ns m1是读寄存器时间 为500ns m2是写寄存器的工作脉冲宽度 为100ns 微指令字长12位 微指令格式如下 RA0RA1 读R0 R3的选择控制WA0WA1 写R0 R3的选择控制R 寄存器读命令W 寄存器写命令LDSA 打入SA的控制信号LDSB 打入SB的控制信号SB ALU 传送SB的控制信号 SB ALU 传送SB的控制信号 并使加法器最低位加1 Reset 清暂存器SB为零的信号 一段微程序结束 转入取机器指令的控制信号 要求 用二进制代码写出如下指令的微程序 1 ADDR0 R1 指令 即 R0 R1 R1 2 SUBR2 R3 指令 即 R3 R2 R3 3 MOVR2 R3 指令 即 R2 R3 解 先画出三条指令的微指令的微程序流程图 如下图所示 其中未考虑 取指周期 和顺序控制问题 也即微程序仅考虑 执行周期 微指令序列的顺序用数字标号标在每条微指令的右上角 每一框表示一条微指令 根据给定的微指令周期时间关系 完成ADD SUB指令的执行动作需要3条微指令 MOV指令只需2条微指令 用二进制代码写出的三条指令的微程序列于下表中 其中 表示代码随意设置 0或1均可 指令微程序代码ADD00 1010000001 10010000 0101001001SUB11 1010000010 10010000 1101000101MOV10 10100000 1101001011 5 4 2微程序设计技术 设计微指令结构应当追求的目标 1 有利于缩短微指令字的长度 2 有利于减少控制存储器的容量 3 有利于提高微程序的执行速度 4 有利于对微指令的修改 5 有利于提高微程序设计的灵活性 5 4 2微程序设计技术 微命令编码微地址的形成方法微指令格式微程序控制的设计方法 5 4 2微程序设计技术 微命令编码直接表示法编码表示法混合表示法 5 4 2微程序设计技术 直接表示法在微指令的操作控制字段中每一个微命令都用一位信息表示 对应于一种微操作 设计微指令时 选用或不选用某个微命令 只要将表示该微命令的相应位设置成 1 或 0 就可以了 因此 微命令的产生不必经过译码 所需的控制信号直接送到相应的控制点 5 4 2微程序设计技术 LT ALU LA 11000100 LT BUS ALU LT LA ALU BUS LA 0位 LT BUS1位 BUS LA2位 LA ALU3位 DIV4位 MUL5位 SUB6位 ADD7位 ALU LT 这种方法的优点是简单 直观 执行速度快 微命令的并行控制能力强 编制的微程序短 缺点是微指令字长 76543210 5 4 2微程序设计技术 编码表示法将微指令的控制字段分为若干个小字段 每个字段分别编码 每种编码代表一种微命令 微程序控制器 设计技术 译码 译码 译码 控制字段 地址字段 微命令 微命令 微命令 uIR 5 4 2微程序设计技术 例如 某机器指令系统总共需要256个微命令 采用直接表示法 微指令的操作控制字段需256位 采用编码表示法 如将控制字段分成4位一段 共16段 每个字段经一个译码器输出 可获得16个微命令 总共16段就可获得256个微命令 微指令的操作控制字段仅64位 5 4 2微程序设计技术 编码表示法的分段原则 相斥性微命令分在同一字段内 相容性微命令分在不同的字段内 一般将同类操作中互斥的微命令划分在同一个字段中 每个字段包含的信息位不能太多 一般不超过6位 否则将增加译码线路的复杂性和译码时间 一般每个小段还要留出一个状态 表示本字段不发出任何微命令 通常用000表示不操作 5 4 2微程序设计技术 混合表示法这种方法把直接表示法和字段编码表示法混合使用 以便能综合考虑微指令字长 灵活性 执行微程序速度等方面的要求 5 4 2微程序设计技术 微地址的形成方法1 根据机器指令操作码找到相应机器指令所对应的微程序的入口地址 2 后继微地址的产生 计数器方式 多路转移方式 5 4 2微程序设计技术 1 微程序入口地址的确定首先由 取机器指令 微程序完成将一条机器指令从内存中取出送往指令寄存器 这段程序是公用的 一般安排控制存储器的 0 号单元 然后 应根据机器指令的操作码转移到对应的微程序入口地址 5 4 2微程序设计技术 2 后继微地址的产生计数器方式多路转移方式 下址字段方式 5 4 2微程序设计技术 1 计数器方式设置一个微程序计数器uPC 在顺序执行微指令时 后继微指令地址由uPC 1来实现 顺序执行的微指令在控制存储器中要求顺序存放 5 4 2微程序设计技术 1 计数器方式当遇到转移执行时 在当前微指令后面添加一条 转移微指令 实现微指令的跳转 在微指令中专门添加 转移控制字段 将 转移微指令 或 转移控制字段 中的控制信息送到微指令地址发生器 与相应的指令操作码以及条件码等结合 生成转移地址送upc中 5 4 2微程序设计技术 用计数器方式实现的微程序控制单元结构 uPC转移部分 控制存储器 uPC 指令寄存器 入口地址及转移地址产生器 条件码 状态标志 5 4 2微程序设计技术 计数器方式优点 是微指令字段较短 便于编写微程序 后继微地址产生机构比较简单 缺点 是必须在不连续执行的微指令之间加入 转移微指令 这样既增加了微指令的条数 也严重影响指令执行速度 5 4 2微程序设计技术 2 多路转移方式 下址字段法 在这种方式中 当微程序不产生分支时 后继微指令地址直接由微指令的顺序控制字段给出 当微程序出现分支时 按顺序控制字段给出的测试判别字段和状态条件来形成后继微地址 这种方式因为要在微指令格式中设置一个字段用来指明下一条要执行的微指令地址 所以也称为下址字段法 5 4 2微程序设计技术 多路转移方式的微指令格式如下 5 4 2微程序设计技术 用多路转移方式实现的微程序控制单元结构 指令寄存器IR PLA微地址修改逻辑 控制存储器 uAR 条件码 状态标志 例题 微地址寄存器有6位 uA5 uA0 当需要修改其内容时 可通过某一位触发器的强置端S将其置 1 现有三种情况 1 执行 取指 微指令后 微程序按IR的OP字段 IR3 IR0 进行16路分支 2 执行条件转移指令微程序时 按进位标志C的状态进行2路分支 3 执行控制台指令微程序时 按IR4 IR5的状态进行4路分支 请按多路转移方法设计微地址转移逻辑 解 依题意可知 微程序有三个判断测试 设分别为P1 P2 P3 用P1和IR3 IR0修改uA3 uA0 用P2和C修改uA0 用P3和IR5 IR4修改uA5 uA4 另外考虑时间因素T4 假设CPU周期最后一个节拍脉冲 故转移逻辑表达式如下 uA5 P3 IR5 T4uA4 P3 IR4 T4uA3 P1 IR3 T4uA2 P1 IR2 T4uA1 P1 IR1 T4uA0 P1 IR0 T4 P2 C T4 5 4 2微程序设计技术 3 微指令格式水平型微指令垂直型微指令 5 4 2微程序设计技术 水平型微指令 一次能定义并执行多个并行操作微命令的微指令 叫做水平型微指令 基本特征 微指令字较长一条微指令能控制数据通路中多个功能部件并行操作 微命令的编码简单 尽可能使微命令与控制门之间具有直接对应关系 5 4 2微程序设计技术 垂直型微指令 在微指令中设置微操作码字段 采用微操作码编译法 由微操作码规定微指令的功能 称为垂直型微指令 它有操作码 在一条微指令中只有1 2个微操作命令 每条微指令的功能简单 因此 实现一条机器指令的微程序比水平型的要长 5 4 2微程序设计技术 垂直型微指令基本特征 微指令字短 微指令的并行操作能力有限 在一条微指令中只有1 2个微操作命令 微指令编码比较复杂 全部微命令组成一个微操作码字段 经过完全译码 微指令的各个二进制位与数据通路的各个控制点之间完全不存在直接对应关系 水平型微指令与垂直型微指令的比较 1 水平型微指令的并行操作能力较强 效率高 灵活性强 垂直型则较差 2 水平型微指令执行一条指令的时间短 而垂直型则时间长 3 水平型的微指令字较长而微程序短 垂直型则相反 微指令字较短而微程序长 4 水平型用户难以掌握 而垂直型则较容易掌握 5 4 2微程序设计技术 微指令的执行方式串行执行方式 取i条执行i条取i 1条执行i 1条 微周期 微周期 5 4 2微程序设计技术 并行执行方式 取i条执行i条 微程序控制器 微程序控制器举例 简单机器的微程序设计假设机器字长16位 采用单总线结构 CPU 主存和外设都挂在总线上 1 CPU运算器中以ALU为核心 输入端一个接LA 另一个来自数据总线 共由8个寄存器R0 R7 源操作数寄存器SR 目的操作数寄存器DR 暂存器TEMP 2 主存储器按字编址 主存容量64K3 总线包括16位数据线 16位地址线和若干控制线 微程序控制器 微程序控制器举例 指令格式 OPMSRSMDRD 1512119865320 OP 操作码 4位 可定义16种操作M 寻址方式MS 源操作数寻址方式MD 目的操作数寻址方式RS 源操作数寄存器RD 目的操作数寄存器 微程序控制器 微程序控制器举例 寻址方式 微程序控制器 微程序控制器举例 操作类型 LT LA SR DR TEMP MAR M MDR IR uAR ALU 地址译码器 PLA微地址修改逻辑 条件码 状态 控制存储器 译码 PC LT BUS ALU LT 1 C0 BUS LA RS BUS BUS RS RD BUS BUS RD SR BUS BUS TEMP BUS MAR MDR BUS BUS MDR BUS IR PC BUS BUS PC READ WRITE 微命令 ADD INC BUS DR DR BUS TEMP BUS BUS SR WAIT CLEAR 微程序控制器 微程序控制器举例 时序安排采用微程序控制方式后 指令分步操作是积聚不同的微指令进行的 因此 时序系统不在按指令执行的不同阶段设置不同的工作周期 而代以统一规整的微指令周期 微程序控制器 微程序控制器举例 微指令的编码 共有19个选通信号 加上ALU的控制信号 假设有16个 及其他控制信号 共40个控制信号 所以采用字段直接编译法 微程序控制器 微程序控制器举例 微程序控制器 微程序控制器举例 表中 F1字段为所有送往总线的控制信号 F2 F4字段为总线送往各寄存器的控制信号 F5字段用于控制ALU的各种运算 F6字段提供存储器的读写控制 F7字段用于暂存器LA的清除控制 F8字段用于存储器与CPU的同步控制F9字段控制进位操作 微程序控制器 微程序控制器举例 微程序流程分析这是一条双操作数加法指令的微程序流程 PC BUS CLEARLABUS MAR 1 C0READADDALU LT LT BUSBUS PCWAIT MDR BUSBUS IR RS BUSBUS SR RS BUSBUS MARREADWAIT RS BUS CLEARLABUS MAR 1 C0READADDALU LT PC BUS CLEARLABUS MAR 1 C0READADDALU LT 000 001 002 003 B 100 R102 R 112 R 122 X R 142 A 微程序控制器 微程序控制器举例 R LT BUSBUS RSWAIT LT BUSBUS PCWAIT MDR BUSBUS MARREADWAIT MDR BUSBUS LA MDR BUSBUS SR RS BUSADDALU LT LT BUSBUS MARREADWAIT 143 144 145 146 124 125 直接 间接 D 微程序控制器 微程序控制器举例 C200 RD BUSBUS LA RD BUSBUS MARREADWAIT RD BUS CLEARLABUS MAR 1 C0READ ADDALU LT PC BUS CLEARLABUS MAR 1 C0READ ADDALU LT LT BUSBUS RDWAIT LT BUSBUS PCWAIT MDR BUSBUS MARREADWAIT MDR BUSBUS LA RD BUSADDALU LT MDR BUSBUS LA LT BUSBUS MARREADWAIT 200 243 244 245 246 R202 R 212 R R 222 D R 242 224 直接 B间接 225 微程序控制器 微程序控制器举例 C SR BUSADDALU LT LT BUSBUS MDRWRITE LT BUSBUS RD 270 271272 273 微程序控制器 微程序控制器举例 F 微程序控制器 微程序控制器举例 指令 ADD RS RD 微程序实例 微程序控制器 微程序控制器举例 微指令地址的产生 微程序的顺序控制 在本例中 微程序的入口地址由PLA产生 PLA的输入为机器指令操作码 输出为该指令对应的微程序入口地址 后继微指令地址的产生分别采用计数器方式和断定方式 微程序控制器 微程序控制器举例 1 计数器方式 第二种方式 其中 转移控制字段3位 以满足微程序顺序执行和无条件转移及下列分支条件转移的要求 000顺序执行001由PLA根据机器指令操作码产生微程序入口地址010由源操作数寻址方式决定后继微指令地址011由目的操作数寻址方式决定后继微指令地址100由结果方式决定后继微指令地址101由源间接寻址方式约定后继微指令地址111无条件转移 Uop转移控制 ADD指令计数器方式的微指令表 指令 ADD RS RD 微程序 微程序控制器 微程序控制器举例 2 多路转移方式 下地址方式 Uop测试判别字段下址字段 测试字段3位 下址字段8位 ADD指令多路转移方式的微指令表 指令 ADD RS RD 微程序实例 5 5硬布线控制器 基本思想 把控制部件看成作为生产专门固定时序控制信号的逻辑电路 而此逻辑电路以使用最少元件和取得最高操作速度为设计目标 这种逻辑电路是一种由门电路和触发器构成的复杂树形网络 故称为硬布线控制器 由于门电路多是组合逻辑电路所以也称为组合逻辑控制器 5 5硬布线控制器 硬布线控制器的结构图 组合逻辑线路 指令译码器 指令寄存器 节拍电位 节拍脉冲发生器 微操作控制信号 结果反馈信息 启动停止时钟复位 IR M1Mi T1Ti 5 5硬布线控制器 设计方法模型机的数据通路全机采用总线结构 分为内部单总线和存储器总线 系统总线 算逻部件 通用寄存器组等挂在内部总线上 主存储器M I O都挂在系统总线上 R0 R3为四个通用寄存器 Y连在ALU的一个输入端上 Z是ALU的输出寄存器 以便将结果输出到内部总线上 5 5硬布线控制器 MAR MDR M Y Z R0 R1 R2 R3 IR PC ID 逻辑网络 模8计数器 ALU 系统总线 内部总线 控制信号 5 5硬布线控制器 寻址方式与指令系统 操作码OP寄存器号 Ri 地址码ADDR 5 5硬布线控制器 时序采用三级时序 设置三个机器周期 每个机器周期可以完成一次主存的读 写操作 每个机器周期可分为若干个节拍 每个节拍可分为若干个脉冲 每个微操作控制信号应是指令 时序 结果特征及状态等等的逻辑函数 微操作 周期 节拍 脉冲 指令码 其他条件 5 5硬布线控制器 硬布线控制器的设计方法绘制指令的流程图 以指令的执行过程为线索 按指令类型分类 将每条指令归纳为一个微操作序列 根据操作的先后顺序画出指令流程图 列出微操作时间