计算机组成原理第03章.ppt
定点数除法运算——阵列除法 阵列除法器(不恢复余数法) * 定点数除法运算——阵列除法 ①Ri≥0, C=1(够减,补数相加有进位);商上1,q=1;Ri+1=2Ri-Y,作减法,p=1;即p=C=q=1。 ② Ri<0, C=0(不够减,补数相加无进位);商上0,q=0;Ri+1=2Ri+Y,作加法,p=0;即p=C=q=0。 * 算术逻辑单元 1. 单元电路 8D锁存器 S CP DX QX 0 1 1 X ↑ ↑ X 1 0 0 1 0 74XX273功能表 * 算术逻辑单元 DX CP OE QX 1 0 X ↑ ↑ X 0 0 1 1 0 Z 74374功能表 三态锁存器 * 算术逻辑单元 计数器 * 算术逻辑单元 移位寄存器 * 算术逻辑单元 2. 算术逻辑单元ALU * 算术逻辑单元 * 算术逻辑单元 级联工作 * 算术逻辑单元 * 算术逻辑单元 加减器 S=X±Y M=0,加法 M=1,减法 加法器 S X Y M C0 异或 * 算术逻辑单元 ALU 将加减器、乘法器、除法器、移位器、与/或/非/异或逻辑部件、计数器、求补器等集合在一起构成ALU。 ALU X Y Z ADD SUB NEG 控制信号 * 算术逻辑单元 运算器的结构 * 算术逻辑单元 计算机简单框图 * 浮点运算 两个浮点数:X=Mx·2Ex ,Y=My·2Ey X、Y为规格化浮点数 尾数:小数 阶码:整数 * 浮点加减运算 1. 对阶 就是小数点对齐,只有当两者的阶码相同时才能进行加减运算。 对阶的原则是小阶对大阶,即小阶码每增加1,其尾数右移一位,直到增大到与大阶码相同。 2. 尾数加(减)运算 对阶之后,尾数进行加(减)运算。 减法可以用加法实现。 * 浮点加减运算 3. 规格化 如果结果是非规格化数(尾数和(差)的绝对值可能小于1/2,也可能大于1),则需要规格化。 有两种情况: (1)左规: 如果运算结果尾数为双符号补码11.1XX…X或者是00.0XX…X(尾数未溢出)时,规格化需将尾数左移。每左移一位,阶码减1,直到使尾数成为规格化数为止。 阶码减1时,需判断是否下溢。若发生下溢出,认为结果为0。 * 浮点加减运算 (2)右规 若尾数加/减时,结果(尾数)发生溢出,即出现10.XX…X或者01.XX…X时,表明尾数有溢出,整个浮点数结果未必溢出。 可将尾数右移一位,阶码加1,即右规。右规最多1次。 阶码加1时,需判断是否上溢。若发生上溢出,认为结果为∞。 * 浮点加减运算 4. 舍入处理 在对阶及规格化时需要将尾数右移,右移将丢掉尾数的最低位,这就出现舍入的问题。 截(尾)断法 此法最简单,就是将需丢弃的尾数低位丢弃。 末位恒置1法 无论尾数右移丢弃的是0还是1,此法将保证要保留的尾数的最低位永远为1。 0舍1入法 当尾数右移丢弃的是1时,要保留的最末位加1;当尾数右移丢弃的是0时,要保留的最末位不变。 * 浮点加减运算 * 浮点加减运算 例22 两浮点数为: X=0.110101×2-010,Y=-0.101010×2-001 求两数之和及差。 解:设两浮点数阶码为4位,用补码表示。尾数用8位,均用双符号位补码表示。则两数可表示为: [X]浮=1110;00.110101 [Y]浮=1111;11.010110 * 浮点加减运算 ① 对阶 求阶差:[△E]补=[Ex]补 +[-Ey]补 ﹦1110+0001﹦1111。即X的阶码比Y的阶码小。 因此,X尾数右移一位,使两者阶码相同。这时的X为: [X]′浮=1111;00.011011(0舍1入法) ?尾数求和: 尾数求差: 00.011011 00.011011 + 11.010110 + 00.101010 11.110001 01.000101 ③ 规格化 相加结果为非规格化尾数,需左规。将尾数左移2位,变为11.000100。同时,阶码减2,则阶码变为1101。两数相加结果为:[X+Y]浮=1101;11.000100。 相减结果也为非规格化尾数,需右规。将尾数右移1位,变为00.100011,采用0舍1入法。阶码加1,则阶码为0000。两数相减结果为:[X-Y]浮=0000;00.100011。 * 浮点乘除运算 1. 浮点乘法运算 两个规格化