第三章CPU系統 运算部件 寄存器 寄存器 控制部件 运算器控制器
第三章 CPU子系统 运 算 部 件 寄 存 器 寄 存 器 控 制 部 件 运算器 控制器
本章主要讨论: 运算器 GP组成{控制器 数据通路结构 与外部的连接 GPU工作原理 指令的执行过程
本章主要讨论: 运算器 控制器 数据通路结构 与外部的连接 指令的执行过程 CPU组成 CPU工作原理
第一节运算器组织 寄存器组/立结构 小型存储(单囗 器结构双口 独立R、双口RAM用多路选择器作为AU的 输入逻辑, 单口RAM用锁存器作为ALU的输入逻辑
第一节 运算器组织 独立结构 小型存储 器结构 单口 双口 寄存器组 独立R、双口RAM用多路选择器作为ALU的 输入逻辑, 单口RAM用锁存器作为ALU的输入逻辑
311带多路选择器的运算器 内部总线(单向) 移位器 RO ■■■■■■■ R ALU 特点: 多路选择器多路选择器 R各自独立; ■■■■■■ ■■■■■■■ R0,…RR0…R可同时向ALU提供两个操作数; 采用单向内总线
3.1.1 带多路选择器的运算器 移位器 ALU 多路选择器 多路选择器 R0 Rn R0. . . Rn R0. . . Rn 内部总线(单向) 特点: R各自独立; 可同时向ALU提供两个操作数; 采用单向内总线
312带输入锁存器的运算器 特点: 移位器 单口RAM不能同时向ALU提 供两个操作数 ALU 用锁存器暂存操作数 锁存器 锁存器 采用双向内总线。 内部总线(双向) RO 通用寄存器组(小型存储器) Rn
3.1.2 带输入锁存器的运算器 特点: 单口RAM不能同时向ALU提 供两个操作数; 用锁存器暂存操作数; 采用双向内总线。 移位器 ALU 锁存器 锁存器 内部总线(双向) R0 Rn 通用寄存器组(小型存储器)
313位片式运算器 例.4位片运算器粗框 特点: DO 用双口RAM(两地址 端、两数据端)作通 移位器|乘商寄存器用寄存器组,可同时 P 提供数据; Cn+4 ALU k Cn 控制信息 用多路选择器作输入 逻辑,不需暂存操作 多路选择器多路选择器 数 DA DB ALU增加乘、除功能, A地址 RAM B地址 用乘商寄存器存放乘 数、乘积或商。 D
3.1.3 位片式运算器 特点: 用双口RAM(两地址 端、两数据端)作通 用寄存器组,可同时 提供数据; 用多路选择器作输入 逻辑,不需暂存操作 数; ALU增加乘、除功能, 用乘商寄存器存放乘 数、乘积或商。 例. 4位片运算器粗框 移位器 ALU 多路选择器 多路选择器 DO RAM Di A 地址 B 地址 Cn DA DB G、P 控制信息 Cn+4 乘商寄存器 4 4 4 4 4 4 4 4 4 4 4 4
第二节运算方法 321定点加减运算 321.1补码加减法 数用补码表示,符号位参加运算。 实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法?
第二节 运算方法 3.2.1.1 补码加减法 数用补码表示,符号位参加运算。 实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法? 3.2.1 定点加减运算
1.基本关系式 (X+Y)补=X补+Y补(1) (X-Y)补=X补+(Y)补(2) 式(1):操作码为“加”时,两数直接相加。 例求(X+Y)补 1)ⅹ=3X补=00011 2)Ⅹ=-3X补=11101 Y=2Y补=00010 Y=-2Y补=1110 00101(+5补码) 11011(-5补码) 3)X=3X补=00011 4)Ⅹ=-3X补=11101 Y=-2Y补=11110+ Y=2Y补=00010+ 00001(+1补码) 11111(-1补码
1. 基本关系式 ( X + Y )补 = X补 + Y补 (1) ( X - Y )补 = X补 + (-Y)补 (2) 式(1):操作码为“加”时,两数直接相加。 3) X= 3 Y= –2 X补=0 0011 Y补=1 1110 0 0001(+1补码) 2) X= –3 Y= –2 X补=1 1101 Y补=1 1110 1 1011(– 5补码) 1) X=3 Y=2 X补=0 0011 Y补=0 0010 0 0101(+5补码) 4) X= –3 Y= 2 X补=1 1101 Y补=0 0010 1 1111(–1补码) 例. 求(X+Y)补
(X+Y)补=X补+Y补(1) (x-Y)补=X补+(-Y)补(2) 式(2):操作码为“减”时,将减转换为加。 即将减数变补后与被减数相加。 将Y补变补 Y衬 (Y)补:不管Y补为正或负,将其符号连同 尾数一起各位变反,末位加1。 例求(X-Y)补 1)X=4X补=00100 2)Ⅹ=-4X补=11100 Y=-5=10 Y=5补=000 (-Y补=00101 (Y)补=11011 01001(+9补码) 10111(-9补码
( X + Y )补 = X补 + Y补 (1) ( X - Y )补 = X补 + (-Y)补 (2) 式(2):操作码为“减”时,将减转换为加。 1) X= 4 Y= –5 X补=0 0100 Y补=1 1011 (-Y)补=0 0101 0 1001(+9补码) 2) X= –4 Y= 5 X补=1 1100 Y补=0 0101 (-Y)补=1 1011 1 0111(–9补码) 例. 求(X – Y)补 Y补 (–Y)补: 将Y补变补 不管Y补为正或负,将其符号连同 尾数一起各位变反,末位加1。 即将减数变补后与被减数相加。 X补=0 0100 Y补=1 1011 X补=1 1100 Y补=0 0101
注意:某数的补码表示与某数变补的区别。 例.10101原补吗表示11011符号位不变 0101补码表示00101负数尾数改变, 正数尾数不变。 10011补 变补 01101、∫符号位改变, 00011补 变补 11101尾数改变。 补码的机器负数
注意:某数的补码表示与某数变补的区别。 例. 1 0101原 1 1011 补码表示 1 0011补 0 1101 变补 0 0101原 0 0101 补码表示 符号位不变; 负数尾数改变, 正数尾数不变。 0 0011补 1 1101 变补 符号位改变, 尾数改变。 补码的机器负数