
计算机组成原理_数值的机器运算.ppt
184页西华师范大学第第4 4章章数值的机器运算数值的机器运算1西华师范大学西华师范大学2运算器是计算机进行算术运算和逻 辑运算的主要部件,运算器的逻辑结构 取决于机器的指令系统、数据表示方法 和运算方法等本章主要讨论数值数据 在计算机中实现算术运算和逻辑运算的 方法,以及运算部件的基本结构和工作 原理 西华师范大学运算器的设计方法• 作为计算机的核心部件——运算器,它所 具有的只是简单的算术、逻辑运算以及移 位、计数等功能,因此计算机中对数据信 息的加工的基本思想就是:将各种复杂的 运算处理分解为最基本的算术运算和逻辑 运算 *3西华师范大学(1) 如何构成一位全加器 (2)将N个一位全加器通过加法进位链连接构成N位并行 加法器; (3)将加法器扩展为多功能的算术/逻辑运算部件; (4)将加法器与移位器组合,构成定点乘法器与除法器 将计算定点整数的阶码运算器和计算定点小数的尾数 运算器组合构成浮点运算器; (5)在算术/逻辑运算部件的基础上,配合各类相关的寄 存器,构成计算机中的运算器运算器的逻辑组织结构设计分为以下层次:西华师范大学本章学习内容4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制整数的加法运算 4.8 逻辑运算与实现 4.9 运算器的基本组成与实例5西华师范大学本章学习要求掌握:定点补码加法和减法运算方法 理解:3种溢出检测方法 理解:补码移位运算和常见的舍入操作方法 了解:串行加法器与并行加法器 理解:进位产生和进位传递 掌握:定点原码、补码乘法运算方法 掌握:定点原码、补码加减交替除法运算方法 理解:浮点加减乘除运算 理解:逻辑运算 了解:运算器的基本结构及浮点协处理器 6西华师范大学4.1 基本算术运算的实现计算机中最基本的算术运算是加法运 算,不论加、减、乘、除运算最终都可以 归结为加法运算。
所以在此讨论最基本的 运算部件——加法器,以及并行加法器的 进位问题7西华师范大学4.1.1 加法器 1.全加器全加器(FA)是最基本的加法单元 ,它有三个输入量:操作数Ai和Bi、低位 传来的进位Ci-1,两个输出量:本位和Si、 向高位的进位Ci图4-1 全加器的逻辑框图 8西华师范大学全加器真值表9AiBiCi-1SiCi0 0 0 0 1 1 1 10 0 1 1 0 0 1 10 1 0 1 0 1 0 10 1 1 0 1 0 0 10 0 0 1 0 1 1 1西华师范大学西华师范大学10根据真值表,可得到全加器的逻辑表达式为:Si=Ai⊕Bi⊕Ci-1Ci=AiBi+(Ai⊕Bi)Ci-1全加器的逻辑表达式西华师范大学2.串行加法器与并行加法器加法器有串行和并行之分在串行 加法器中,只有一个全加器,数据逐位串 行送入加法器进行运算;并行加法器则由 多个全加器组成,其位数的多少取决于机 器的字长,数据的各位同时运算11西华师范大学西华师范大学12串行加法器器件少、成本低,但运算速度慢,并行加法器同时对数据的各位相加,主要解决 加法的最长运算时间问题虽然操作数的各位是同 时提供的,但低位运算所产生的进位会影响高位的 运算结果。
例如:11…11和00…01相加,最低位产生的进位将 逐位影响至最高位,并行加法器的最长运算时间主要是由进位信号 的传递时间决定的,而每个全加器本身的求和延迟 只是次要因素 • 提高并行加法器速度的关键是尽量加快进位产生和 传递的速度2.串行加法器与并行加法器西华师范大学西华师范大学13并行加法器中的每一个全加器都有一个从 低位送来的进位输入和一个传送给高位的进位 输出传递进位信号的逻辑线路连接起来构成 的进位网络称为进位链 • 每一位的进位表达式为:Ci=AiBi+(Ai⊕Bi)Ci-1其中:Gi=AiBi为进位产生函数Pi=Ai⊕Bi为进位传递函数∴进位表达式Ci=Gi+PiCi-14.1.2 进位的产生和传递西华师范大学西华师范大学14图4-3 串行进位的并行加法器 其中:C1=G1+P1C0C2=G2+P2C1┇Cn=Gn+PnCn-1 串行进位的并行加法器 西华师范大学串行进位的并行加法器的总延迟时间 与字长成正比,字长越长,总延迟时间就 越长 • 若一级“与门”、“或门”的延迟时间为ty, 每一级全加器的进位延迟时间为2ty • 在字长为n位的情况下,不考虑Gi、Pi的形成时 间,从C0→Cn的最长延迟时间为2nty。
15西华师范大学西华师范大学161.并行进位方式并行进位又叫先行进位、同时进位,其 特点是各级进位信号同时形成C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0┇4.1.3 并行加法器的快速进位 西华师范大学西华师范大学17这种进位方式是快速的,若不考虑Gi 、Pi的形成时间,从C0→Cn的最长延迟时 间仅为2ty,而与字长无关但是随着加 法器位数的增加,Ci的逻辑表达式会变得 越来越长,输入变量会越来越多,这会使 电路结构变得很复杂,所以完全采用并行 进位是不现实的 1.并行进位方式(续)西华师范大学西华师范大学18⑴单级先行进位方式(组内并行、组间串行 )以16位加法器为例,可分为4组,每组4 位第一小组组内的进位逻辑函数C1、C2、C3 、C4的表达式与前述相同,它们是同时产生的 ,实现上述进位逻辑函数的电路称之为4位先 行进位电路CLA,其延迟时间是2ty利用这种4位的CLA电路以及进位产生/传 递电路和求和电路可以构成4位的CLA加法器。
用4个这样的CLA加法器,很容易构成16位的单 级先行进位加法器 2.分组并行进位方式西华师范大学西华师范大学1916位单级先行进位加法器图4-4 16位单级先行进位加法器西华师范大学16位单级先行进位时间图图4-5 16位单级先行进位时间图20西华师范大学西华师范大学21⑵多级先行进位方式(组内并行、组间并行)仍以字长为16位的加法器作为例子,分析 两级先行进位加法器的设计方法第一小组的 进位输出C4可以变成两个与项相或:C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0=G1*+P1*C0其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1P1*=P4P3P2P1Gi*称为组进位产生函数Pi*称为组进位传递函数2.分组并行进位方式(续)西华师范大学西华师范大学22依次类推,可以得到:C8=G2*+P2*C4=G2*+P2*G1*+P2*P1*C0C12=G3*+P3*G2+P3*P2*G1*+P3*P2*P1*C0C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0西华师范大学西华师范大学23成组先行进位电路BCLA,其延迟时间 是2ty。
利用这种4位的BCLA电路以及进位 产生/传递电路和求和电路可以构成4位的 BCLA加法器16位的两级先行进位加法器 可由4个BCLA加法器和1个CLA电路组成 西华师范大学西华师范大学2416位两级先行进位加法器图4-6 16位两级先行进位加法器西华师范大学西华师范大学25若不考虑Gi、Pi的形成时间,C0经过 2ty产生第一小组的C1、C2、C3及所有组进 位产生函数Gi*和组进位传递函数Pi*;再 经过2ty,由CLA电路产生C4、C8、C12、C16 ;再经过2ty后,才能产生第二、三、四 小组内的C5~C7、C9~C11、C13~C15此时 加法器的最长进位延迟时间是6ty 2.分组并行进位方式(续)西华师范大学西华师范大学2616位两级先行进位时间图图4-7 16位两级先行进位时间图西华师范大学西华师范大学27定点数的加减运算包括原码、补码和 反码3种带符号数的加减运算,其中补码 加减运算实现起来最方便4.2 定点加减运算西华师范大学西华师范大学28原码加减运算规则:⑴参加运算的操作数取其绝对值;⑵若做加法,则两数直接相加,若做减法,则 将减数先变一次补,再进行加法运算;⑶运算之后,可能有两种情况:①有进位,结果为正,即得到正确的结果。
②无进位,结果为负,则应再变一次补,才 能得到正确的结果⑷结果加上符号位通常,把运算之前的变补称为前变补,运算之 后的变补称为后变补 4.2.1 原码加减运算 西华师范大学西华师范大学( X + Y )补 = X补 + Y补 (1)( X - Y )补 = X补 + (-Y)补 (2)4.2.2 补码加减运算根据补码加法公式可推出:[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补西华师范大学西华师范大学式(1):操作码为“加”时,两数直接相加3) X= 3Y= –2X补=0 0011Y补=1 1110 0 0001(+1补码)2) X= –3Y= –2X补=1 1101Y补=1 11101 1011(– 5补码)1) X=3Y=2X补=0 0011Y补=0 00100 0101(+5补码)4) X= –3Y= 2X补=1 1101Y补=0 00101 1111 (–1补码)例. 求(X+Y)补( X + Y )补 = X补 + Y补 (1)西华师范大学西华师范大学*31( X - Y )补 = X补 + (-Y)补 (2)式(2):操作码为“减”时,将减转换为加。
Y补 (–Y)补:将Y补变补不管Y补为正或负,将其符号连同尾数一起各 位变反,末位加1即将减数变补后与被减数相加西华师范大学西华师范大学32例3:A=0.1011,B=-0.1110,求A+B∵[A]补=0.1011 [B]补=1.00100.1011 [A]补+ 1.0010 [B]补1.1101 [A+B]补∴[A+B]补=1.1101A+B=-0.0011示例西华师范大学西华师范大学33例4:A=0.1011,B=-0.0010,求A-B∵[A]补=0.1011 [B]补=1.1110 [-B]补=0.00100.1011 [A]补+ 0.0010 [-B]补0.1101 [A-B]补∴[A-B]补=0.1101A-B=0.1101示例西华师范大学*341) X= 4Y= –5X补=0 0100Y补=1 1011(-Y)补=0 01010 1001(+9补码)2) X= –4Y= 5X补=1 1100Y补=0 0101(-Y)补=1 10111 0111(–9补码)例. 求(X – Y)补X补=0 0100Y补=1 1011X补=1 1100Y补=0 0101西华师范大学 35解:[A]补[B]补[A]补 + [B]补+= 0 . 1 0 1 1= 1 . 1 0 1 1= 1 0 . 0 1 1 0= [A + B]补验证例设 A = 0.1011,B = – 0.0101求 [A + B]补0.1011 – 0.0101 0.0110∴ A + B = 0 . 0 1 1 0[A]补[B]补[A]补 + [B]补+= 1 , 0 1 1 1= 1 , 1 0 1 1= 1 1 , 0 0 1 0= [A + B]补验证 – 1001– 1110– 0101+例设 A = –9,B = –5 求 [A+B]补解:∴ A + B = – 1110示例西华师范大学*36设机器数字长为 8 位(含 1 位符号位) 且 A = 15, B = 24,用补码求 A – B解:A = 15 = 0001111B = 24= 0011000[A]补 + [– B]补+[A。
