CPU-1运算部件(2011年09级).ppt

上传人:max****ui 文档编号:6328332 上传时间:2020-02-22 格式:PPT 页数:77 大小:2.33MB
返回 下载 相关 举报
CPU-1运算部件(2011年09级).ppt_第1页
第1页 / 共77页
CPU-1运算部件(2011年09级).ppt_第2页
第2页 / 共77页
CPU-1运算部件(2011年09级).ppt_第3页
第3页 / 共77页
点击查看更多>>
资源描述
第三章CPU子系统 运算器 控制器 本章主要讨论 运算器控制器数据通路结构与外部的连接 指令的执行过程 CPU组成 CPU工作原理 3 1CPU的基本组成 运算部件 寄存器组 微命令产生部件 时序系统 传统运算器 传统控制器 1 运算部件 输出逻辑 ALU 输入逻辑 输入逻辑 操作数操作数 运算结果 1 输入逻辑 2 算术逻辑运算部件ALU 3 输出逻辑 选择两个操作数 可以是选择器或暂存器 核心部件 完成具体运算 求和 进位传递 具有移位功能 通过斜位传送可实现左移 右移或字节交换 移位器 ALU 多路选择器 多路选择器 1 PSW R0 R1 R2 R3 IR PC MAR MDR MEMORY R0 R3 R0 R3 C D PC SP C D MDR PSW RR RM MM D C 地址寄存器 数据寄存器 C D暂存器 计算机的运算功能分为四种档次 1 普通微处理器 只设置一个ALU 软件实现乘除 浮点运算 2 高档微处理机 设置一个ALU 并且配合时序控制 硬件实现定点数乘除 浮点运算由软件 子程序 或硬件完成 浮点协处理器 3 小 中型机 只设置一个ALU 且将定点乘除部件和浮点部件作为基本配置 硬件实现 4 大 巨型机 设置多种运算部件 如标量运算 浮点运算和向量运算 2 寄存器组 1 通用寄存器组 具有2种以上功能 1 用于提供数据信息 提供处理对象的寄存器 包括累加器 地址寄存器 计数器和移位器 设计时 只有发送和接收功能 其余操作靠辅助线路完成 移位器 ALU 多路选择器 多路选择器 1 移位 左斜 右斜 计数器 累加器 寄存器 D触发器 SRAM寄存器组 中小规模的存储单元 同时I O 集成度低 单元 寄存器 单双口Ram 2 暂存器 暂存器不能被CPU直接编程访问 设置的目的是为了暂存某些中间过程所产生的信息 避免破坏通用寄存器的内容 移位器 ALU 多路选择器 多路选择器 1 PSW R0 R1 R2 R3 IR PC MAR MDR MEMORY R0 R3 R0 R3 C D PC SP C D MBR PSW RR RM MM X X Y MOVR0 Y ADDX R0 MDR R0 MDR ADDX Y C MDR MDR 有暂存器 如前页图 2 用于控制的寄存器 1 IR 指令寄存器 存放现行指令 直至本条指令结束 2 PC 程序寄存器 3 PSW 程序状态字 存放下条指令 n 的地址 提供读取指令的地址 控制执行指令序列的流向 存放前次运算结果状态 PSW 负零溢出进位 状态位 C V Z N P 控制位 IF TF DF 为衔接与流水 指令寄存器扩充成指令队列 或指令栈 提速 IRMDR 跟踪 陷阱 TF 编程设定断点 允许中断IF 编程设定 IF 1时允许响应外部终端请求 半进位AF 单步位TF 方向标志DF 地址由低到高 还是由高到低 程序优先级 程序运行过程中 可能有外部中断请求 可以根据优先级来决定CPU执行哪一部分 工作方式 用户态 管态 其它信息 不同计算机 PSW内容相差很大 如 IBM360的PSW包括系统屏蔽 保护键 AMWP字 工作方式 中断码 指令长度 条件码 程序屏蔽 指令地址等 3 用作主存接口的寄存器 对用户透明 1 地址寄存器 MAR 2 数据寄存器 MDR 双向 取指 PC内容MAR 存取操作数 地址计算结果MAR 写入 数据一般先送至MDR 再经总线送往主存 读出 数据现有总线送入MDR 再经CPU内部总线 送入指定的寄存器 3 总线 数据通路结构 总线 一组为多个部件分时共享的公共信息传送线路 可以分时接收 同时发送 和分配信息 1 CPU内部总线 ALU总线 连接寄存器与ALU 一条或多条 可能还有地址总线 2 部件间总线 设备控制器 智能型接口等部件 微处理器 LM 地址线 数据线 3 系统总线 系统内各大组成部件间 如CPU M I O 总线 地址总线 CPU DMAC提供地址 数据总线 双向 控制总线 复位 请求 应答 读 写 总线仲裁 控制权转移 4 系统外总线 一台计算机系统与其他设备 或几台计算机系统相连 总线实体 狭义 指一组传送线 广义 包含一组传送线及相应的控制逻辑 DMA控制器 5 时序系统 时序发生器 时序系统 产生周期节拍 脉冲源 主振荡器 外接晶体振荡器 一组计数分频逻辑 产生所需的周期 节拍 脉冲等时序信号的部件 4 微操作命令产生部件 在CPU中设置微命令产生部件 根据控制信息产生微命令序列 对指令功能所要求的数据传送进行控制 且在数据传送至运算部件时控制完成运算处理 6 CPU内部数据通路结构 1 单组内总线 分立寄存器结构 例 NOVA 1200 分立寄存器 一组单向 特点 数据总线 以ALU为内部 数据传送通路的中枢 独立结构 小型存储器结构 单口双口 寄存器组 独立R 双口RAM用多路选择器作为ALU的输入逻辑 单口RAM用锁存器作为ALU的输入逻辑 带多路选择器的运算器 特点 R各自独立 可同时向ALU提供两个操作数 采用单向内总线 例 要实现R0R1 R0 ALUR1 2 单组内总线 集成寄存器结构 集成化寄存器组 SRAM 一组双 特点 例 要实现R0R1 R0 暂存器R1 向数据总线 ALU输入端设暂存器 带输入锁存器的运算器 特点 单口RAM不能同时向ALU提供两个操作数 用锁存器暂存操作数 采用双向内总线 3 多组内总线 数据总线 ALU 连接ALU与寄存器组 双工数据收发器 系统数据总线 地址总线 指令部件 ALU部件 段地址处理部件 页地址处理部件 地址驱动 指令总线 收发器 指令队列 指令预译码 译码 控制ROM 内部控制总线 控制ROM 控制ALU及各有关部件 位片式运算器 特点 用双口RAM 两地址端 两数据端 作通用寄存器组 可同时提供数据 用多路选择器作输入逻辑 不需暂存操作数 ALU增加乘 除功能 用乘商寄存器存放乘数 乘积或商 例 4位片运算器粗框 G P小组进位产生 传递函数 Cn 4组间串行进位 Cn初始进位 组内并行 组间并行 第二节运算方法 3 2 1 1补码加减法 数用补码表示 符号位参加运算 实际操作能否只取决于操作码 结果需不需修正 如何将减法转换为加法 3 2 1定点加减运算 1 基本关系式 X Y 补 X补 Y补 1 X Y 补 X补 Y 补 2 式 1 操作码为 加 时 两数直接相加 3 X 3Y 2 X补 00011Y补 11110 00001 1补码 2 X 3Y 2 X补 11101Y补 11110 11011 5补码 1 X 3Y 2 X补 00011Y补 00010 00101 5补码 4 X 3Y 2 X补 11101Y补 00010 11111 1补码 例 求 X Y 补 X Y 补 X补 Y补 1 X Y 补 X补 Y 补 2 式 2 操作码为 减 时 将减转换为加 1 X 4Y 5 X补 00100Y补 11011 Y 补 00101 01001 9补码 2 X 4Y 5 X补 11100Y补 00101 Y 补 11011 10111 9补码 例 求 X Y 补 Y补 Y 补 将Y补变补 不管Y补为正或负 将其符号连同尾数一起各位变反 末位加1 即将减数变补后与被减数相加 X补 00100Y补 11011 X补 11100Y补 00101 注意 某数的补码表示与某数变补的区别 例 10101原11011 补码表示 10011补01101 变补 00101原00101 补码表示 符号位不变 负数尾数改变 正数尾数不变 00011补11101 变补 符号位改变 尾数改变 补码的机器负数 2 算法流程 操作数用补码表示 符号位参加运算 结果为补码表示 符号位指示结果正负 X补 Y补 X补 Y 补 ADD SUB 3 逻辑实现 1 1 控制信号 加法器输入端 A 打开控制门 将A送 B 打开控制门 将B送 1 控制末位加1 加法器输出端 CPA 将结果打入A 2 补码加减运算器粗框 3 2 1 2溢出判断 在什么情况下可能产生溢出 例 数A有4位尾数 1位符号SA数B有4位尾数 1位符号SB 符号位参加运算 结果符号Sf符号位进位Cf尾数最高位进位C 正确 正溢 正确 负溢 正确 正确 00111 2 A 10B 710 7 01010 10001 1 硬件判断逻辑一 SA SB与Sf的关系 溢出 SA SB Sf SA Sf SB 2 硬件判断逻辑二 Cf与C的关系 正确 正溢 正确 负溢 正确 正确 Cf 0C 0 Cf 0C 1 Cf 1C 1 Cf 1C 0 Cf 1C 1 Cf 0C 0 1 1 1 1 1 1 1 硬件判断逻辑一 SA SB与Sf的关系 2 硬件判断逻辑二 Cf与C的关系 3 硬件判断逻辑三 双符号位 第一符号位Sf1 第二符号位Sf2 1 硬件判断逻辑一 SA SB与Sf的关系 2 硬件判断逻辑二 Cf与C的关系 3 硬件判断逻辑三 双符号位 3 2 1 3移位操作 逻辑移位 数码位置变化 数值不变 1 移位类型 算术移位 10001111 循环左移 0 1001111 算术左移 1 0 0 1 1 1 1 1 0 1 1 1 1 0 15 30 1 单符号位 00111 01110 2 双符号位 001110 000111 2 正数补码移位规则 3 移位规则 00111 00011 011100 001110 000111 数符不变 单 符号位不变 双 第一符号位不变 空位补0 右移时第二符号位移至尾数最高位 1 单符号位 11011 10110 2 双符号位 101100 110110 3 负数补码移位规则 3 移位规则 11011 11101 110110 111011 数符不变 单 符号位不变 双 第一符号位不变 左移空位补0 第二符号位移至尾数最高位 右移空位补1 3 2 1 4舍入方法 1 0舍1入 原码 补码 000100原 100101原 111011补 2 末位恒置1 原码 补码 000100原 111011补 100101原 00010原 10011原 11110补 00011原 10011原 11101补 例 保留4位尾数 例 保留4位尾数 3 2 2定点乘法运算 3 2 2 1原码一位乘法每次用一位乘数去乘被乘数 1 算法分析 例 0 1101 1 1011 X原 Y原 1 手算0 1101 0 1011 1101110100001101 0 10001111上符号 1 10001111 部分积 问题 1 加数增多 由乘数位数决定 2 加数的位数增多 与被乘数 乘数位数有关 改进 将一次相加改为分步累加 2 分步乘法 每次将一位乘数所对应的部分积与原部分积的累加和相加 并移位 设置寄存器 A 存放部分积累加和 乘积高位B 存放被乘数C 存放乘数 乘积低位 步数条件操作AC 00 0000 1011 1 Cn 1 B Cn 00 1101 00 1101 00 0110 1 101 2 Cn 1 B 00 1101 01 0011 00 1001 11 10 3 Cn 0 0 00 0000 00 1001 00 0100 111 1 4 Cn 1 B 00 1101 01 0001 00 1000 1111 X原 Y原 1 10001111 2 算法流程 Y Y N N 3 运算规则 1 操作数 结果用原码表示 2 绝对值运算 符号单独处理 3 被乘数 B 累加和 A 取双符号位 4 乘数末位 Cn 为判断位 其状态决定下步操作 5 作n次循环 累加 右移 3 2 2 2补码一位乘法 算法规则 校正法只要乘数Y补为正 则可像原码乘法一样进行运算 其结果不需校正 如果乘数Y补为负 则先按原码乘法运算 结果再加一个校正量 X补 校正法算法规则 比较法校正法的两种情况统一 演变为比较法 又称Booth算法 3 2 2 2补码一位乘法1 算法分析X补 X0 X1X2 Xn 1 Y为正 Y补 0 Y1Y2 Yn XY 补 X补 0 Y1Y2 Yn 2 Y为负 Y补 1 Y1Y2 Yn XY 补 X补 0 Y1Y2 Yn X 补 3 Y符号任意 XY 补 X补 0 Y1Y2 Yn X 补Y0 符号位 4 展开为部分积的累加和形式 XY 补 X补 0 Y1Y2 Yn X 补Y0 X补 0 Y1Y2 Yn X补Y0 Yn 1 比较法 用相邻两位乘数比较的结果决定 X补 X补或 0 2 比较法算法Yn 高位 Yn 1 低位 操作 A补为部分积累加和 00011011 1 2A补1 2 A补 X补 1 2 A补 X补 1 2A补 0 1 1 0 3 运算实例X 0 1101 Y 0 1011 求 XY 补 初值 A 00 0000 B X补 11 0011 B X 补 00 1101 C Y补 1 0101 步数条件操作AC 00 00001 0101 1 10 B Cn 00 1101 00 1101 00 0110 11 0101 2 01 B 11 0011 11 1001 11 1100 111 010 3 10 B 00 1101 00 1001 00 0100 1111 01 4 01 B 11 0011 11 0111 11 1011 11111 0 0 Cn 1 CnCn 1 5 10 B 00 1101 XY 补 0 10001111 4 01 B 11 0011 11 0111 11 1011 11111 0 5 10 B 00 1101 00 1000 1111 修正 1 A B取双符号位 符号参加运算 2 C取单符号位 符号参加移位 以决定最后是否修正 3 C末位设置附加位Cn 1 初值为0 CnCn 1组成判断位 决定运算操作 4 作n步循环 若需作第n 1步 则不移位 仅修正 4 运算规则 1 0 B修正0 1 B修正0 0 不修正1 1 不修正 3 2 3定点除法运算 例 0 10110 0 11111 0 10110 1101 0 0 1 11111 0 11111 0 0 0 1 11111 10101 0 1 11111 1011 0 0 00000 0 商 0 10110余数 0 10110 2 实现除法的关键 比较余数 除数绝对值大小 以决定上商 3 2 3 1原码恢复余数法1 算法比较两数大小可用减法试探 2 余数 除数 新余数 为正 够减 商1 为负 不够减 商0 恢复原余数 2 实例 X 0 10110 Y 0 11111 求X Y 给出商Q和余数R 设置 A 被除数 余数 B 除数 C 商 初值 A X 00 10110 B Y 00 11111 C Q 0 00000 B 11 00001 步数条件操作AC 00 101100 00000 1 0 B 01 01100 11 00001 00 01101 0 00001 2 1 B 00 11010 11 00001 11 11011 0 00010 3 恢复余数 B 00 11111 00 11010 01 10100 0 00101 4 0 B 11 00001 00 10101 Cn SA Q1 Q2 Q3 r0 2r0 r1 2r1 r2 r2 2r2 r3 步数条件操作AC 00 101010 00101 5 0 B 01 01010 11 00001 00 01011 0 01011 6 1 B 00 10110 11 00001 11 10111 0 10110 7 恢复余数 B 00 11111 00 10110 Q 0 10110 Cn Q4 Q5 Q3 r3 2r3 r4 2r4 r5 r5 3 说明 3 2 3 2原码不恢复余数法 加减交替法 1 算法分析第二步 2r1 B r2 0第三步 r2 B r2 恢复余数 第四步 2r2 B r3 2r2 B 2 r2 B B 2r2 B r3 第二步 2r1 B r2 0第三步 2r2 B r3 不恢复余数 2 算法ri 1 2ri 1 2Qi Y ri为正 则Qi为1 第i 1步作2ri Y ri为负 则Qi为0 第i 1步作2ri Y 3 实例 X 0 10110 Y 0 11111 求X Y 给出商Q和余数R 初值 A X 00 10110 B Y 00 11111 C Q 0 00000 B 11 00001 步数条件操作AC 00 101100 00000 1 为正 B 01 01100 11 00001 00 01101 0 00001 2 为负 B 00 11010 11 00001 11 11011 0 00010 3 B 00 11111 11 10110 0 00101 为正 00 10101 Cn r Q1 Q2 Q3 r0 2r0 r1 2r1 r2 2r2 r3 4 为正 B 01 01010 11 00001 00 01011 0 01011 Q4 2r3 r4 步数条件操作AC 00 010110 01011 6 为负 恢复余数 B 00 11111 00 10110 Q 0 10110 Cn Q4 r4 5 为正 B 00 10110 11 00001 11 10111 0 10110 Q5 2r4 r5 r5 4 运算规则 1 A B取双符号位 X Y取绝对值运算 X Y 2 根据余数的正负决定商值及下一步操作 3 求n位商 作n步操作 若第n步余数为负 则第n 1步恢复余数 不移位 3 2 3 3补码不恢复余数法 加减交替法 如何判断是否够减 如何上商 如何确定商符 补码除法法则 1 0 1 0 3 2 3 3补码不恢复余数法 加减交替法 如何判断是否够减 如何上商 如何确定商符 1 判够减 1 同号相除减 够减 不够减 够减 不够减 够减 r与X Y同号 不够减 r与X Y异号 2 异号相除加 0 1 0 1 够减 够减 不够减 不够减 够减 r与X同号 与Y异号 不够减 r与X异号 与Y同号 3 判断规则 同号 作X补 Y补 X补 Y补 够减 r补与Y补同号 不够减 r补与Y补异号 异号 作X补 Y补 够减 r补与Y补异号 不够减 r补与Y补同号 2 求商值 同号 商为正 异号 商为负 够减商1不够减商0 够减商0不够减商1 r Y同号 r Y异号 r Y异号 r Y同号 上商规则 余数与除数同号商1 异号商0 3 算法 ri 1 补 2ri补 1 2Qi补 Y补 ri补与Y补同号 则Qi补为1 第i 1步作2ri补 Y补 ri补与Y补异号 则Qi补为0 第i 1步作2ri补 Y补 4 求商符 令X补 r0补 r0补与Y补 同号 Q0补 1异号 Q0补 0 与实际商符相反 商符 5 商的校正 商 余数 真商 假商 1 000 01 Q0 Q1Q2 Qn 1 求n 1位商 假商 第n位商 末位商 恒置1 3 1 商符变反 n位 4 余数求至rn 6 实例 X 0 10110 Y 0 11111 求X Y 给出商Q和余数R 初值 A X补 00 10110 B Y补 11 00001 C Q补 0 00000 B 00 11111 步数条件操作AC 00 101100 0000 1 异号 B 01 01100 11 00001 00 01101 0 0000 2 同号 B 00 11010 11 00001 11 11011 0 0001 Cn 1 r Y Q1 Q2 r0 2r0 r1 2r1 r2 求商符 Q0 异号 0 5 B 11 00001 00 10110 11 10111 步数条件操作AC 11 110110 0001 3 异号 B 11 10110 00 11111 00 10101 0 0010 4 异号 B 01 01010 11 00001 00 01011 0 0100 Cn 1 r Y Q3 Q2 r2 2r2 r3 2r3 r4 2r4 r5 假商 0 0100 Q4 真商 0 0100 1 00001 1 01001 Q 0 10111R 0 01001 2 5 7 运算规则 1 A B取双符号位 符号参加运算 并且X Y 2 根据余数与除数的符号决定商值及下一步操作 3 求n 1位商 作n步操作 求出rn 4 对商校正 商符变反 第n位商恒置1 3 2 4浮点四则运算 3 2 4 1浮点加减运算步骤 1 检测能否简化操作 判操作数是否为0 尾数为0阶码下溢 2 对阶例 10 01 1 对阶 使两数阶码相等 小数点实际位置对齐 尾数对应权值相同 2 对阶规则 小阶向大阶对齐 110 1 010 01 110 1 3 尾数加减 1 1 0001 0 1001 4 阶码比较 比较线路或减法 3 对阶操作 小阶阶码增大 尾数右移 例 AE BE 则BE 1BE BM 直到BE AE 1 1010 2 0 0101 0 1101 4 结果规格化 1 0010 应左移规格化 应右移规格化 若Af1 Af2 1 则右规 1 11 0001 00 1001 11 1010 2 00 0101 00 1101 01 0010 1 2除外 Af1Af2A1 Af1Af2 3 2 4 2浮点乘法运算 步骤 1 检测操作数是否为0 2 阶码相加 若阶码用移码表示 相加后要修正 3 尾数相乘 相乘前不需对阶 4 结果规格化 一般左规 3 2 4 3浮点除法运算 步骤 1 检测操作数是否为0 2 AM BM 4 尾数相除 相除前不需对阶 5 结果不再规格化 3 阶码相减 若阶码用移码表示 相减后要修正
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!