资源预览内容
第1页 / 共180页
第2页 / 共180页
第3页 / 共180页
第4页 / 共180页
第5页 / 共180页
第6页 / 共180页
第7页 / 共180页
第8页 / 共180页
第9页 / 共180页
第10页 / 共180页
亲,该文档总共180页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Nanjing University of Information Science & Technology, Computer and Software Institute第二章 运算方法与运算器Nanjing University of Information Science & Technology, Computer and Software Institute1.1.计算机中的数据表示,熟悉包括定点数、浮点数、计算机中的数据表示,熟悉包括定点数、浮点数、字符、十进制数的表示方法字符、十进制数的表示方法 ; ;2.2.原码、补码、反码、移码等码制之间的关系以及各原码、补码、反码、移码等码制之间的关系以及各码制之间真值数的转换;码制之间真值数的转换;3.3.补码的加减运算,定点原码一位乘、除运算,定点补码的加减运算,定点原码一位乘、除运算,定点补码一位乘、除运算及其逻辑结构;补码一位乘、除运算及其逻辑结构;4.4.变形补码、运算方法(尤其是补码)的理解,溢出、变形补码、运算方法(尤其是补码)的理解,溢出、进位等问题的出现和解决方法;进位等问题的出现和解决方法;5.5.定点数的变形补码加减运算;定点数的变形补码加减运算;6.6.原、补码乘法和除法运算;原、补码乘法和除法运算;7.7.浮点运算方法和浮点数的规格化及其逻辑结构;浮点运算方法和浮点数的规格化及其逻辑结构;8.8.运算器的基本结构和设计方法,解已知芯片功能。运算器的基本结构和设计方法,解已知芯片功能。本章要求:本章要求:Nanjing University of Information Science & Technology, Computer and Software Institute主要内容:主要内容:n2.1 2.1 数据与文字的表示方法。数据与文字的表示方法。n2.2 2.2 定点加、减法运算。定点加、减法运算。 n2.3 2.3 定点乘法运算。定点乘法运算。n2.6 2.6 浮点运算方法与浮点运算器。浮点运算方法与浮点运算器。n2.5 2.5 定点运算器的组成与结构定点运算器的组成与结构n2.4 2.4 定点除法运算。定点除法运算。Nanjing University of Information Science & Technology, Computer and Software Institute2.1 2.1 数据信息的表示方法数据信息的表示方法2.1.1 数据数值的表示方法2.1.2 非数据数值的表示方法Nanjing University of Information Science & Technology, Computer and Software Institute2.1.1 2.1.1 数值数据的表示数值数据的表示正、负符号正、负符号二进制的绝对值二进制的绝对值真值机器数0 0 或或1 1二进制的绝对值二进制的绝对值符号数值部分n真值与机器数真值与机器数Nanjing University of Information Science & Technology, Computer and Software Institute真值与机器数真值与机器数例:设机器字为例:设机器字为8b8b字长,字长, 数数N N1 1的真值为(的真值为(+1001110+1001110)2 2, 数数N N2 2的真值为(的真值为(-1001110-1001110)2 2, 则则N N1 1 、N N2 2对应的机器数为:对应的机器数为:0 0N N1 11 1 0 0 0 0 1 1 1 1 1 1 0 01 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0N N2 2符号数值部分Nanjing University of Information Science & Technology, Computer and Software Institute2.2.数的机器码表示数的机器码表示n通常有四种表示法:通常有四种表示法:原码原码表示法表示法补码表示法补码表示法反码表示法反码表示法移码表示法移码表示法Nanjing University of Information Science & Technology, Computer and Software Institute(1)原码表示法)原码表示法0 0 或或1 1二进制的绝对值二进制的绝对值n纯小数原码表示定义纯小数原码表示定义n纯整数原码表示定义纯整数原码表示定义原码Nanjing University of Information Science & Technology, Computer and Software Institute纯小数原码表示定义n纯小数时,设纯小数时,设 x=xx=x0 0. x. x1 1 x x2 2 x xn-1 n-1 ,其中,其中x x0 0为符号为符号位,共位,共n n位字长,则位字长,则 X0X1-2-(n-1) 1-X=1+|x|-(1-2-(n-1) )X0X原原=n例如,若例如,若x1=+0.1011 x2=-0.1011x1=+0.1011 x2=-0.1011, 字长为字长为8b8b,则其原码分别为:则其原码分别为:x1x1原原=0.1011000 =0.1011000 x2x2原原=1 + 0.1011000 =1.1011000=1 + 0.1011000 =1.1011000n零的原码有正零和负零两种形式:零的原码有正零和负零两种形式:+0原原=0.0000-0原原=1.0000Nanjing University of Information Science & Technology, Computer and Software Institute纯整数原码表示定义n纯整数时,设纯整数时,设 x=xx=x0 0x x1 1 x x2 2 x xn-1 n-1 ,其中,其中x x0 0为符号位,为符号位,共共n n位字长,则位字长,则 X0X2(n-1) -1 2(n-1) -X=2(n-1) +|x|-(2(n-1) - 1)X0X原原=n例如,若例如,若x1=+1011x2=-1011,字长为字长为8b,则其,则其原码分别为:原码分别为:x1原原=00001011x2原原=27+00001011=10001011n零的原码有正零和负零两种形式:零的原码有正零和负零两种形式:+0原原=00000-0原原=10000Nanjing University of Information Science & Technology, Computer and Software Institute采用原码表示法简单易懂,但它的最大缺采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。点是加法运算复杂。当两数相加时,如果是同号则数值相加;当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。数减去小数,最后还要给结果选择符号。Nanjing University of Information Science & Technology, Computer and Software Institute(2)补码表示法补码表示法计算机中,运算结果模数时,说明该值已超出机器的表示范围,模数自然丢掉。模/模数:计算器具的容量。计算机中,机器数表示数据的字长即位数是固定的。n位数的模数= n位数全为1后,再在最末位加1n位整数的模数=2n n位小数的模数=2Nanjing University of Information Science & Technology, Computer and Software Institute纯小数补码表示定义n纯小数时,设纯小数时,设 x=xx=x0 0. x. x1 1 x x2 2 x xn-1 n-1 ,其中,其中x x0 0为符号为符号位,共位,共n n位字长,则位字长,则 X0X1-2-(n-1) 2+X=2-|x|-1X0X补补=n例如,若例如,若x1=+0.1011x2=-0.1011,字长为字长为8b,则,则其原码分别为:其原码分别为:x1补补=0.1011000x2补补=2-0.1011000=1.0101000n补码的零只有一个,即补码的零只有一个,即0.0000000。n补码补码1.0000000表示负表示负1(mod 2)Nanjing University of Information Science & Technology, Computer and Software Institute纯整数补码表示定义n纯整数时,设纯整数时,设 x=xx=x0 0x x1 1 x x2 2 x xn-1 n-1 ,其中,其中x x0 0为符号位,为符号位,共共n n位字长,则位字长,则 X0X2(n-1) -1 2n +X=2n -|x|-2(n-1) X0X补补=n例如,若例如,若x1=+1011x2=-1011,字长为字长为8b,则其,则其原码分别为:原码分别为:x1补补=00001011x2补补=28-00001011=11110100(mod 2n)Nanjing University of Information Science & Technology, Computer and Software Instituten对补码进行运算,可将加、减运算统一成加法运对补码进行运算,可将加、减运算统一成加法运算,降低了对计算机运算器的要求,因此得到广算,降低了对计算机运算器的要求,因此得到广泛的应用。泛的应用。n原码求补码的方法:原码求补码的方法:正数,不变(相同)即原码正数,不变(相同)即原码=补码;补码;负数,符号位不变,数值位按位取反加负数,符号位不变,数值位按位取反加1。n补码求真值方法:补码求真值方法:正数,正数,x补补=x原原负数,对负数,对x补补补补=x原原原码求真值:原码求真值:x原原符号位符号位0+,1。n补码的运算结果仍为补码。补码的运算结果仍为补码。Nanjing University of Information Science & Technology, Computer and Software Institute(3)反码表示法反码表示法n对于对于正数正数来说,来说,反码反码=原码原码=补码补码。n对于对于负数负数来说,来说,符号位:与原码、补码的符号位定义相同。符号位:与原码、补码的符号位定义相同。数值:将原码的数值位按位变反。数值:将原码的数值位按位变反。n例如,若例如,若x1=+0.1011x2=-0.1011,字长为字长为8b。x1反反=0.1011000=x1原原=x1补补x2反反=1.0100111x2补补=1.0101000x2原原=1.1011000n反码的零有两个反码的零有两个0.0000和和1.11111Nanjing University of Information Science & Technology, Computer and Software Institute(4)移码移码n移码也叫增码,常用来表示移码也叫增码,常用来表示整数整数形式的形式的计算机计算机浮点数的阶码浮点数的阶码(表示指数)。(表示指数)。n若纯整数若纯整数X X为为n n位(包括符号位),则其位(包括符号位),则其移码定义为:移码定义为: xx移移=2=2n-1n-1+x+x补补 -2-2n-1n-1X2X2n-1n-1-1-1n方法方法:补码将符号位求反:补码将符号位求反可得移码可得移码n设字长为设字长为8b8b,若,若x1=+1000x1=+1000(2)(2), x2=-1000x2=-1000(2)(2), x1x1补补=00001000 x1=00001000 x1移移=10001000=10001000 x2 x2补补=11111000 x2=11111000 x2移移=01111000=01111000Nanjing University of Information Science & Technology, Computer and Software Institute原、反、补、移码转换方法原、反、补、移码转换方法n正数正数原码原码=反码反码=补码补码移码移码=补码符号位取反,数值位不变补码符号位取反,数值位不变n负数负数反码反码=原码符号位不变,数值位取反原码符号位不变,数值位取反补码补码=反码末位加反码末位加1移码移码=补码符号位取反,数值位不变补码符号位取反,数值位不变Nanjing University of Information Science & Technology, Computer and Software Institute数的定点表示数的定点表示n计算机中小数的小数点并不是用某个数计算机中小数的小数点并不是用某个数字来表示的,而是用字来表示的,而是用隐含隐含的小数点的位的小数点的位置来表示。置来表示。n根据小数点的位置是否固定,又可分为根据小数点的位置是否固定,又可分为定点表示定点表示l定点小数定点小数表示形式表示形式l定点整数定点整数表示形式表示形式浮点表示浮点表示Nanjing University of Information Science & Technology, Computer and Software Institute数的定点表示数的定点表示 定点小数 将将小小数数点点固固定定在在符符号号位位d d0 0之之后后、数数值值最最高高位位d d-1-1之之前前,这就是定点小数形式。其格式如下所示:这就是定点小数形式。其格式如下所示: 定点整数 将将小小数数点点固固定定在在数数的的最最低低位位d d-(n-1-(n-1)之之后后,这这就就是是定定点点整数形式。其格式如下所示:整数形式。其格式如下所示: d d0 0 d d-1-1 d d-2-2 d d-(n-1-(n-1)d d0 0 d d-1-1 d d-2-2 . d . d-(n-1-(n-1)Nanjing University of Information Science & Technology, Computer and Software Institute设字长为设字长为8b8b,用,用原码原码表示时,其表示范围如下:表示时,其表示范围如下: 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 1.1111111 1.0000001 0.0000001 0.11111111.1111111 1.0000001 0.0000001 0.1111111- -(1-21-2) -2-27 7 2 27 7 1-21-27 7定点小数定点小数的表示范围:的表示范围:设字长为设字长为8b8b,用,用补码补码表示时,其表示范围如下:表示时,其表示范围如下: 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 1.0000000 1.1111111 0.0000001 0.11111111.0000000 1.1111111 0.0000001 0.1111111 -1 -2-1 -27 7 2 27 7 1-21-27 7Nanjing University of Information Science & Technology, Computer and Software Institute设字长为设字长为8b8b,用,用原码原码表示时,其表示范围如下:表示时,其表示范围如下: 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 11111111 10000001 00000001 0111111111111111 10000001 00000001 01111111- -(2 27 7-1-1)=-127 -1=-127 -1 +1+1 2 27 7-1=127-1=127 设字长为设字长为8b8b,用,用补码补码表示时,其表示范围如下:表示时,其表示范围如下: 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 10000000 11111111 00000001 0111111110000000 11111111 00000001 01111111 -2-27 7=-128 -1=-128 -1 +1+1 2 27 7-1=127-1=127定点整数定点整数的表示范围:的表示范围:Nanjing University of Information Science & Technology, Computer and Software Institute数的浮点表示法数的浮点表示法 浮点数的表示格式n浮点表示法把字长分成浮点表示法把字长分成阶码阶码(表示指数)(表示指数)和和尾数尾数(表示数值)(表示数值)两部分。两部分。X=DRE阶码阶码E:用用整数整数形式表示,指明小数点在数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。据中的位置,决定了浮点数的表示范围。尾数尾数D:用用定点小数定点小数表示,给出有效数字的表示,给出有效数字的位数决定了浮点数的表示精度;位数决定了浮点数的表示精度;阶码的底阶码的底R:一般为:一般为2、8或或16,且,且隐含规定,隐含规定,在浮点数表示中不出现,在浮点数表示中不出现,通常取通常取2;Nanjing University of Information Science & Technology, Computer and Software InstituteJ EJ Em-1m-1EE1 1 S D S D-1-1DD-(n-1)-(n-1)阶符阶码值数符尾数值决定范围决定精度第一种浮点格式第一种浮点格式补码定点整数形式补码定点小数表示形式Nanjing University of Information Science & Technology, Computer and Software Institute浮点数另一种格式:浮点数另一种格式: S J E S J Em-1m-1EE1 1 D D-1-1DD-(n-1)-(n-1)阶符阶码值数符尾数值存储的数X可表示为X=D2E。补码定点整数形式Nanjing University of Information Science & Technology, Computer and Software Institute 浮点数的规格化浮点数的规格化为了使浮点表示法有尽可能高的精度:为了使浮点表示法有尽可能高的精度:n措施之一,是增加位数,或者是在字长措施之一,是增加位数,或者是在字长一定的情况下,将阶码和尾数所占的位一定的情况下,将阶码和尾数所占的位数协调好;数协调好;n措施之二,是采用浮点数规格化表示。措施之二,是采用浮点数规格化表示。即即充分利用尾数的二进制数位来表示更充分利用尾数的二进制数位来表示更多的有效数字。多的有效数字。Nanjing University of Information Science & Technology, Computer and Software Institute浮点数规格化浮点数规格化原码原码规格化后规格化后 正数为正数为 0.10.1的形式。的形式。 负数为负数为 1.11.1的形式。的形式。补码补码规格化后规格化后 正数为正数为 0.10.1的形式。的形式。 负数为负数为 1.01.0的形式。的形式。通过调整阶码,使其尾数通过调整阶码,使其尾数D满足下面形式的数:满足下面形式的数:当尾数的值不为当尾数的值不为 0 0 时,时,尾数域的最高有效位应为尾数域的最高有效位应为1 1,否则以修改阶码同时左右移小数点的办法,使,否则以修改阶码同时左右移小数点的办法,使其变成这一表示形式。其变成这一表示形式。Nanjing University of Information Science & Technology, Computer and Software Institute 浮点数的表示举例浮点数的表示举例某机用某机用32b32b表示一个数,阶码部分占表示一个数,阶码部分占8b8b(含(含一位符号位),尾数部分占一位符号位),尾数部分占24b24b(含一位符(含一位符号位)。设号位)。设x1=-256.5 x1=-256.5 ,x2=127/256x2=127/256,试,试写出写出x1x1和和x2x2的两种浮点数表示格式。的两种浮点数表示格式。例2.1Nanjing University of Information Science & Technology, Computer and Software Institute x x1 1=-256.5= =-256.5= - -(100000000.1100000000.1)2 2=-=-2 29 90.10000000010.1000000001 阶码的补码为(阶码的补码为(+9+9)补补=00001001 =00001001 阶码的移码为(阶码的移码为(+9+9)移移=10001001=10001001 尾尾数数=1.01111111110000000000000 =1.01111111110000000000000 (规规格格化化补码补码) 第一种浮点表示的格式为第一种浮点表示的格式为 0000100100001001,1.011111111100000000000001.01111111110000000000000 第二种浮点表示的格式为第二种浮点表示的格式为 1 1,1000100110001001,0111111111000000000000001111111110000000000000解:解:移码补码Nanjing University of Information Science & Technology, Computer and Software Institute x x2 2=127/256=127/256=( 11111111111111)2 22 2-8 -8 = = 2 2- -1 10.11111110.1111111 阶码的补码为(阶码的补码为(-1-1)补补=11111111 =11111111 阶码的移码为(阶码的移码为(-1-1)移移=01111111=01111111 尾尾数数=0.11111110000000000000000=0.11111110000000000000000(规规格格化化补补码码) 第一种浮点表示的格式为第一种浮点表示的格式为 1111111111111111,0.111111100000000000000000.11111110000000000000000 第二种浮点表示的格式为第二种浮点表示的格式为 0 0,0111111101111111,1111111000000000000000011111110000000000000000解解Nanjing University of Information Science & Technology, Computer and Software Institute 浮点数的表示范围浮点数的表示范围 设设阶阶码码和和尾尾数数各各为为4b4b(各各包包含含一一个个符符号号位位),则则其其浮点数的表示表示范围分别为:浮点数的表示表示范围分别为: 阶码范围阶码范围 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 1000 1111 0001 01111000 1111 0001 0111 -2-27 7=-8 -1=-8 -1 +1+1 2 23 3-1=7-1=7规格化尾数表示范围规格化尾数表示范围 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 1.000 1.011 0.100 0.1111.000 1.011 0.100 0.111 -1 - -1 -(2 23 3+2+21 1 ) 2 21 1 1-21-23 3二进制补码十进制真值二进制补码十进制真值Nanjing University of Information Science & Technology, Computer and Software Institute 最小负数最小负数 最大负数最大负数 最小正数最小正数 最大正数最大正数 2 2011101111.000 21.000 2100010001.011 21.011 2100010000.100 20.100 2011101110.1110.111 2 2111111111.000 21.000 2000000001.011 21.011 2000000000.100 20.100 2111111110.1110.111 -2 -27 71 -21 -2-8-8(2 23 3+2+21 1 ) 2 2-8-8221 1 2 27 7(1-21-23 3) 规格化浮点数表示范围规格化浮点数表示范围二进制补码阶码用移码十进制真值这里规格化这里规格化尾数的最大负数的补码尾数的最大负数的补码是是1.011.011 1的形式,的形式,而而不是不是1.101.100 0的形式,是因为的形式,是因为 1.101.100 0不是规格不是规格化数,所以化数,所以规格化尾数的最大负数规格化尾数的最大负数应是应是 : - -(0.100.100 0 + + 0.0 0.00101)= - 0.10= - 0.1001 01 , 而而- 0.10- 0.1011补补=1.01=1.011 1 ,即,即 - -(2 2(n-1)(n-1) +2 +21 1 )注意:注意:Nanjing University of Information Science & Technology, Computer and Software Institute(5) (5) 溢出问题溢出问题n定点形式判断溢出的办法是对数值本身定点形式判断溢出的办法是对数值本身进行判断,进行判断,n浮点数是对规格化后的阶码进行判断。浮点数是对规格化后的阶码进行判断。当一个浮点数阶码大于机器的最大阶码,称当一个浮点数阶码大于机器的最大阶码,称为上溢;为上溢;l机器产生上溢时,不能再继续运算,一般要进行机器产生上溢时,不能再继续运算,一般要进行中断处理。中断处理。而小于最小阶码时,称为下溢。而小于最小阶码时,称为下溢。l出现下溢时,一般规定把浮点数各位强迫为零出现下溢时,一般规定把浮点数各位强迫为零(当做零处理当做零处理),机器仍可继续进行运算。,机器仍可继续进行运算。Nanjing University of Information Science & Technology, Computer and Software Institute2.1.2非数值数据的表示非数值数据的表示n非数值数据:文字和符号(非数值数据:文字和符号(字符字符)、图)、图像、声音等像、声音等n非数值数据的表示:对其进行二进制编非数值数据的表示:对其进行二进制编码码1、字符编码、字符编码2、汉字编码、汉字编码Nanjing University of Information Science & Technology, Computer and Software Institute1、字符编码、字符编码n字符的表示:采用字符编码,即用规定字符的表示:采用字符编码,即用规定的二进制数表示文字和符号的方法。的二进制数表示文字和符号的方法。nASCII码码(AmericanStandardCodeForInformationInterchange):美国标准信美国标准信息交换码,为国际标准。息交换码,为国际标准。n常用的常用的7位位ASCII码码的每个字符都由的每个字符都由7个二进制位个二进制位b6b0表示,有表示,有128个编码,最多可表示个编码,最多可表示128种字符;其种字符;其中包括:中包括:10个数字个数字09:30H39H,顺序排列,顺序排列26个小写字母个小写字母az:61H7AH,顺序排列,顺序排列26个大写字母个大写字母AZ:41H5AH,顺序排列,顺序排列各种运算符号和标点符号等。各种运算符号和标点符号等。Nanjing University of Information Science & Technology, Computer and Software InstituteASCII码编码表码编码表0000010100111001011101110000NULDLESP0Pp0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4¥4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,L、l|1101CRGS-=Mm1110SORS.Nn1111SIUS/?O_oDELNanjing University of Information Science & Technology, Computer and Software Institute其中其中95个编码个编码,对应着计算机终端,对应着计算机终端能敲入并且能敲入并且可以显示可以显示的的95个字符,打印机设备也个字符,打印机设备也能打印能打印这这95个字符,如大小写各个字符,如大小写各26个英文字母,个英文字母,09这这10个数字符,通用的运算符和标点符号,个数字符,通用的运算符和标点符号,*,/,0或或0时,时,2()2,进位进位2必丢失,必丢失,又因又因( () )0,故故补补补补补补(mod2)当当0时,时,2()2,又因又因( () )0,故故补补补补2()补补(mod2)Nanjing University of Information Science & Technology, Computer and Software Institute0,则,则0或或0。这种情况和第这种情况和第2 2种情况一样,把种情况一样,把和和的位置对调即得证。的位置对调即得证。Nanjing University of Information Science & Technology, Computer and Software Institute0,0,则,则0。相加两数都是负数,则其和也一定是相加两数都是负数,则其和也一定是负数。负数。补补2,补补2补补补补222(2)Nanjing University of Information Science & Technology, Computer and Software Institute上式右边分为上式右边分为”2”和和(2)两部分两部分。由于由于()是负数是负数,且,且其绝对值又小其绝对值又小于于1,那么那么(2)就一定是小于就一定是小于2而而大于大于1的数的数,进位进位”2”必丢失必丢失。又因又因()0,所以所以补补补补(2)2()补补(mod2)补补补补2(2)Nanjing University of Information Science & Technology, Computer and Software Institute例0.1011,0.0101,求,求y。解:补0.1011,补1.1011 补0.1011补1.1011补 10.0110 所以0.0110Nanjing University of Information Science & Technology, Computer and Software Institute数用补码表示时,减法运算的公式为数用补码表示时,减法运算的公式为补补补补补补补补补补(2-2)只要证明只要证明补补补补,上式即得证。上式即得证。(2 2)补码的减法运算)补码的减法运算Nanjing University of Information Science & Technology, Computer and Software Institute证明证明:补补补补补补(mod2)补补补补补补(2-3)补补()补补 补补补补补补 补补补补(2-4)Nanjing University of Information Science & Technology, Computer and Software Institute将式将式(2-3)与与(2-4)相加,得相加,得补补补补补补补补补补 补补补补补补补补补补补补0故故补补补补(mod2)(2-5)Nanjing University of Information Science & Technology, Computer and Software Institute另一种证明方法:利用补码加法公式, 00补补= 0= 0y补补 y补补y(y)补补yy补补0补补0故故y补补y补补对于定点小数和定点整数都适用y补补的含义: 是将y补补的各位(包括符号位)全部取反,末位加“1”。Nanjing University of Information Science & Technology, Computer and Software Institute从从补补求求补补的法则是:的法则是: 对对补补各位各位( (包括符号位包括符号位) )求反且最末求反且最末位加位加1,即可得到,即可得到补补。写成运算表达式,则为写成运算表达式,则为补补补补2n 其中:其中: 符号符号表示对表示对补补作包括符号位在内的作包括符号位在内的求反操作,求反操作,2n表示最末位的表示最末位的1。Nanjing University of Information Science & Technology, Computer and Software Institute例1已知已知10.1110,20.1101,求:求:1补补,1补补,2补补,2补补。解解:1补补1.00101补补1补补2-40.11010.00010.11102补补0.11012补补2补补2-41.00100.00011.0011Nanjing University of Information Science & Technology, Computer and Software Institute例20.1101,0.0110,求,求。解解:补补0.1101,补补0.0110,补补1.1010补补0.1101补补1.1010补补10.0111所以所以0.0111Nanjing University of Information Science & Technology, Computer and Software Institute参加运算的数都用参加运算的数都用补码补码表示。表示。数据的符号与数据一样参加运算。数据的符号与数据一样参加运算。求差时将减数求补,用求差时将减数求补,用求和代替求差求和代替求差。运运算算结结果果为为补补码码。如如果果符符号号位位为为0 0,表表明明运运算算结结果果为为正正;如如果果符符号号位位为为1 1,则则表表明明运算结果为负。运算结果为负。符号位的进位符号位的进位为模值,应该丢掉。为模值,应该丢掉。加减法运算规则Nanjing University of Information Science & Technology, Computer and Software Institute3. 溢出判断法机器定点小数表示机器定点小数表示n在定点小数机器中,数的表示范围为在定点小数机器中,数的表示范围为|1。n在运算过程中如出现大于在运算过程中如出现大于1的现象,称为的现象,称为“溢溢出出”。n在定点机中在定点机中,正常情况下溢出是不允许的。正常情况下溢出是不允许的。Nanjing University of Information Science & Technology, Computer and Software Institute例0.1011, 0.1001,求求。解:补0.1011 补0.1001 补0.1011 补0.1001 补 1.0100 两个正数相加的结果成为负数,这显然是错误的。Nanjing University of Information Science & Technology, Computer and Software Institute例0.1101, 0.1011,求求。解:补1.0011 补1.0101 补1.0011 补1.0101 补0.1000两个负数相加的结果成为正数,这同样是错误的。Nanjing University of Information Science & Technology, Computer and Software Institute之所以发生错误,是因为运算结果产生了之所以发生错误,是因为运算结果产生了溢出。溢出。 两个正数相加,结果大于机器所能两个正数相加,结果大于机器所能表示的最大正数,称为表示的最大正数,称为上溢。 而两个负数相加,结果小于机器所而两个负数相加,结果小于机器所能表示的最小负数,称为能表示的最小负数,称为下溢。Nanjing University of Information Science & Technology, Computer and Software Instituten为了判断为了判断“溢出溢出”是否发生,可采用两是否发生,可采用两种检测的方法。种检测的方法。第一种方法是采用第一种方法是采用双符号位法双符号位法(变形补码法,变形补码法,或或“模模4 4补码补码”)。)。第二种方法是第二种方法是进位判断法进位判断法(单符号位法单符号位法) 。Nanjing University of Information Science & Technology, Computer and Software Institute(1)双符号法(变形补码法)n用用两个相同的符号位两个相同的符号位S Sf1 f1 S Sf2f2表示一个数的符号。表示一个数的符号。左边第一位为第一符号位左边第一位为第一符号位S Sf1f1,相邻的为第二符号位,相邻的为第二符号位S Sf2f2。 n双符号位的含义为:双符号位的含义为:0000表示正号;表示正号;1111表示负号;表示负号;0101表示产生正向溢出;表示产生正向溢出;1010表示产生负向溢出。表示产生负向溢出。 n双符号位可用逻辑异或来判断溢出情况:双符号位可用逻辑异或来判断溢出情况:V=SV=Sf1f1SSf2 f2 ,此逻辑表达式可用,此逻辑表达式可用异或门异或门实现。实现。若若V=0V=0,则无溢出;,则无溢出;V=1V=1,则有溢出。,则有溢出。n第一符号位永远是结果的真正符号位。第一符号位永远是结果的真正符号位。Nanjing University of Information Science & Technology, Computer and Software Institute例例1 1:已知:已知 x=0.1011 x=0.1011 , y=0.0111y=0.0111, 求求x+yx+y= =?解:解:xx 补补=00.1011=00.1011,yy 补补=00.0111=00.0111 x x 补补= 00.1011= 00.1011 + y + y 补补= 00.0111= 00.0111 x+yx+y 补补= 01.0010 = 01.0010 两符号位为两符号位为0101,表示出现正向溢出。,表示出现正向溢出。例例2 2:已知:已知 x=-0.1011 x=-0.1011 , y=0.0111y=0.0111, 求求x-yx-y= =?解:解:xx 补补=11.0101=11.0101,-y-y 补补=11.1001=11.1001 x x 补补= 11.0101= 11.0101 + -y + -y 补补= 11.1001= 11.1001 x-yx-y 补补= = 1 1 10.1110 10.1110 已超出模值,丢掉已超出模值,丢掉 两符号位为两符号位为1010,表示出现负向溢出。,表示出现负向溢出。Nanjing University of Information Science & Technology, Computer and Software Institute进位判断法n判断规则:设判断规则:设C Cn-1n-1为为最高数值位向符号位的进最高数值位向符号位的进位值产生的进位位值产生的进位, C Cn n为为符号位产生的进位符号位产生的进位。当。当两补码进行加减运算(减法转化为加法进行)两补码进行加减运算(减法转化为加法进行)时,时,如果两个进位值如果两个进位值C Cn-1 n-1 C Cn n相同,则没有溢出发生相同,则没有溢出发生如果两个进位值不同,则有溢出发生。如果两个进位值不同,则有溢出发生。l若若C Cn-1n-11, C Cn n 0时,则发生正溢时,则发生正溢l若若C Cn-1n-10, C Cn n 1时,则发生负溢时,则发生负溢n其判断溢出表达式如下:其判断溢出表达式如下:V=V=C Cn nC Cn-1n-1 ,此逻式可用异或门实现此逻式可用异或门实现Nanjing University of Information Science & Technology, Computer and Software Institute例如:例如: xx 补补= 1.0101= 1.0101 + y + y 补补= 1.1001= 1.1001 x+yx+y 补补= 1 0.1110 = 1 0.1110 最最高高有有效效位位没没有有进进位位,即即C=0C=0,符符号号位位有有进进位位,即即S=1S=1,故故V=10=1V=10=1,有溢出发生。,有溢出发生。 xx 补补= 1.1101= 1.1101 + y + y 补补= 0.1001= 0.1001 x+yx+y 补补= 1 0.0110 = 1 0.0110 最最高高有有效效位位有有进进位位,即即C=1C=1,符符号号位位有有进进位位,即即S=1S=1,故故V=11=0V=11=0,无溢出发生,无溢出发生, x+yx+y= + 0.0110 = + 0.0110 。返回Nanjing University of Information Science & Technology, Computer and Software Institute2.2.2 基本的二进制加法/减法器n设字长为设字长为n n位,两个操作数分别为位,两个操作数分别为 x xx x0 0. x. x1 1 x x2 2 x xn-1n-1 y yy y0 0. y. y1 1 y y2 2 y yn-1n-1 其中其中x x0 0 ,y y0 0为符号位。为符号位。Nanjing University of Information Science & Technology, Computer and Software Instituten补码运算的二进制加法补码运算的二进制加法/减法器(采用的减法器(采用的变形补码运算)的逻辑结构图变形补码运算)的逻辑结构图2-32-3演示演示0C00000=1x0y0=1x1y1=1x2y2=1xn-2=1yn-2xn-1yn-1S0S1S2Sn-2Sn-1C1C2C3Cn-2Cn-1CnP=0 加P=1 减C0=1V一位加法器Nanjing University of Information Science & Technology, Computer and Software Institute2.3 2.3 定点乘法运算定点乘法运算n 2.3.1 2.3.1 原码一位乘法原码一位乘法n 2.3.2 2.3.2 补码一位乘法补码一位乘法n 2.3.3 2.3.3 原码两位乘法原码两位乘法n 2.3.4 2.3.4 补码两位乘法补码两位乘法Nanjing University of Information Science & Technology, Computer and Software Institute2.3.1原码一位乘法原码一位乘法例:求例:求A=0.1101B=0.1011两数乘积两数乘积0.11010.10111101A20不移位不移位1101A21左移左移1位位0000A22左移左移2位位1101A23左移左移3位位0.100011111. 1. 人工计算乘法人工计算乘法Nanjing University of Information Science & Technology, Computer and Software Institute2.计算机实现乘法运算AB=A(0.1011)=0.1A+0.00A+0.001A+0.0001A=0.1A+0.00A+0.001(A+0.1A)=0.1A+0.010A+0.1(A+0.1A)=0.1A+0.10A+0.1(A+0.1A)=2-1A+2-10A+2-1(A+2-1A)=2-1A+2-10A+2-1(A+2-1(A+0)将乘法变成将乘法变成加法和右移加法和右移的结合。的结合。Nanjing University of Information Science & Technology, Computer and Software Institute3原码一位乘法的运算规则n设设 x xx xf f.x.xx x x x n n , y yy yf f.y.yy y y y n n ,乘积为,乘积为P P,乘积的符号位为,乘积的符号位为P Pf f ,则有,则有 P Pf f= = x xf fyyf f ,|P|=|P|=|x|.|yx|.|y| |求求|P|P|的的运算规则为:运算规则为:(1 1)被乘数和乘数均取绝对值参加运算,)被乘数和乘数均取绝对值参加运算,符号位单独考虑符号位单独考虑。(2 2)被乘数取)被乘数取双符号双符号,部分积的长度与被乘数的长度相同,部分积的长度与被乘数的长度相同, 初值为初值为0 0。(3 3)从)从乘数的最低位的乘数的最低位的y yn n位开始对乘数进行判断,位开始对乘数进行判断,若若y yn n=1=1,则部分积加上被乘数,则部分积加上被乘数|x|x|,然后,然后右移一位右移一位; 若若y yn n=0=0,则部分积加上,则部分积加上0 0,然后,然后右移一位右移一位。(4 4)重复()重复(3 3)判断)判断n n次。次。Nanjing University of Information Science & Technology, Computer and Software Institute例1 x= -0.1101,y=-0.1011,求:xy原=?解:解: |x|=00.1101 |x|=00.1101 ( (用双符号表示用双符号表示) ) |y|= 0.1011 |y|= 0.1011 ( (用单符号表示用单符号表示) ) 部分积部分积 乘数乘数 y yn n 说说 明明 00.0000 0.10100.0000 0.1011 1 + 00.1101 + 00.1101 y yn n=1=1,加,加|x|x| 00.1101 00.1101 00.01101 0.10 00.01101 0.101 1 右移一位得右移一位得 P P1 1 + 00.1101 + 00.1101 y yn n=1 =1 ,加,加|x|x| 01.00111 01.00111 00.100111 0.1 00.100111 0.10 0 右移一位得右移一位得 P P2 2 + 00.0000 + 00.0000 y yn n=0=0,加,加0 0 00.100111 00.100111 00.0100111 0. 00.0100111 0.1 1 右移一位得右移一位得 P P3 3 + 00.1101 + 00.1101 y yn n=1=1,加,加 |x|x| 01.0001111 01.0001111 00.10001111 0 00.10001111 0 右移一位得右移一位得 P P4 4P P1 1P P2 2P P3 3P P4 4由于由于 P Pf f= = x xf fyyf f =11=0 =11=0,|P|=|P|=|x|.|yx|.|y| =0.10001111 | =0.10001111 所以所以 xyxy 原原=0.10001111=0.10001111Nanjing University of Information Science & Technology, Computer and Software InstituteT部分积部分积R0 R1乘积乘积yyn计数器I移位信号移位信号SR2&被乘数被乘数xyn=1Pfxfyf&F QR S结束结束 启动启动+1原码一位乘法硬件逻辑结构图R0和R1都具有右移功能并且连通Nanjing University of Information Science & Technology, Computer and Software Institute2.3.2补码一位乘法补码一位乘法n补码一位乘法方法:是在原码一位乘法的基础上发展起来的比较法,由英国Booth夫妇首先提出,故又称为Booth乘法,它是现在广泛采用的补码乘法。Nanjing University of Information Science & Technology, Computer and Software Institute2.3.2补码一位乘法补码一位乘法n补码一位乘法的运算规则补码一位乘法的运算规则符号位参与运算,运算的数均以补码表示。符号位参与运算,运算的数均以补码表示。被乘数一般取被乘数一般取双符号位双符号位参加运算,部分积初值为参加运算,部分积初值为0 0。乘乘数数可可取取单单符符号号位位,以以决决定定最最后后一一步步是是否否需需要要校校正正,即是否要加即是否要加-x-x补补。乘数末位增设附加位乘数末位增设附加位y n+1 n+1,且初值为,且初值为0。按表按表2-2所示进行操作。所示进行操作。按按照照上上述述算算法法进进行行n+1步步操操作作,但但第第n+1步步不不再再移移位位,仅根据仅根据y0与与y1的比较结果的比较结果作相应的运算即可。作相应的运算即可。补码移位规则:部分积为正,右移时有效位最高位补0;为负时最高位补1。Nanjing University of Information Science & Technology, Computer and Software Institute y yn n(高位)高位)y yn+1n+1(低位)低位) 操操作作 0 0 0 0 部分积部分积右移一位右移一位 0 1 0 1 部分积部分积加加 x x补补,右移一位右移一位 1 0 1 0 部分积部分积加加-x-x补补,右移一位右移一位 1 1 1 1 部分积部分积右移一位右移一位乘数末位 表2-2 补码一位乘法算法Nanjing University of Information Science & Technology, Computer and Software Institute解:解: xx补补=11.0011=11.0011,-x-x补补=00.1101 (=00.1101 (用双符号表示用双符号表示) ) y y补补=0.1011 (=0.1011 (用单符号表示用单符号表示) ) 部分积部分积 乘数乘数y yn ny yn+1n+1 说说 明明 00.0000 0.10100.0000 0.1011010 + 00.1101 y + 00.1101 yn ny yn+1n+1=10=10,加,加-x-x补补 00.110100.1101 00.01101 0.10 00.01101 0.101111 右移一位得右移一位得 P P1 1 00.001101 0.1 00.001101 0.10101 y yn ny yn+1n+1=11=11,右移一位得,右移一位得 P P2 2 + 11.0011 y + 11.0011 yn ny yn+1n+1=01=01,加,加xx补补 11.01100111.011001 11.1011001 0. 11.1011001 0.1010 右移一位得右移一位得 P P3 3 + 00.1101 y + 00.1101 yn ny yn+1n+1=10 =10 加加-x-x补补 00.100000100.1000001 00.01000001 00.01000001 0 0. .1 1 右移一位得右移一位得 P P4 4 + 11.0011 y + 11.0011 yn ny yn+1n+1=01=01, 加加xx补补 11.01110001 11.01110001 最后一步不移位最后一步不移位 即即 xyxy 补补=1.01110001=1.01110001例2 x= -0.1101,y=0.1011,求:xy补=?Nanjing University of Information Science & Technology, Computer and Software Instituteynyn+1T部分积部分积R0 R1乘积乘积yyn计数器I移位信号移位信号 S CI被乘数被乘数x& QR S+1多路开关多路开关R2&10ynyn+1&+1yn+101反反原原结束结束启动启动FNanjing University of Information Science & Technology, Computer and Software Institute2.3.3原码两位乘法原码两位乘法n为为了了提提高高乘乘法法的的执执行行速速度度,可可以以考考虑虑每每次次对对乘乘数数的的两两位位进行判断以确定相应的操作,这就是两位乘法。进行判断以确定相应的操作,这就是两位乘法。n原码两位乘法的运算规则为:原码两位乘法的运算规则为:1)符号位不参加运算符号位不参加运算,最后的符号,最后的符号P Pf f= = x xf fyyf f 。 2 2)部部分分积积与与被被乘乘数数均均采采用用三三位位符符号号,乘乘数数末末位位增增加加一一位位C C,其初值为,其初值为0 0。 3 3)按表)按表2.32.3所示的操作。所示的操作。 4 4)若)若尾数尾数n n为偶数为偶数,则,则乘数用双符号乘数用双符号,最后一步不移位。,最后一步不移位。 若若尾数尾数n n为奇数为奇数,则,则乘数用单符号乘数用单符号,最后一步移一位。,最后一步移一位。Nanjing University of Information Science & Technology, Computer and Software Institute表表2-3 2-3 原码两位乘法算法原码两位乘法算法 y yn-1 n-1 y yn n C C操操作作 0 0 00 0 0加加0,右移两位右移两位,0C 0 0 1 0 0 1 加加x,右移两位右移两位,0C 0 1 0 0 1 0 加加x,右移两位右移两位,0C 0 1 1 0 1 1 加加2x,右移两位右移两位,0C 1 0 0 1 0 0 加加2x,右移两位右移两位,0C 1 0 1 1 0 1 减减x,右移两位右移两位,1C 1 1 0 1 1 0 减减x,右移两位右移两位,1C 1 1 1 1 1 1 加加0,右移两位右移两位,1CNanjing University of Information Science & Technology, Computer and Software Institute 解:解: |x|=000.1101 2|x|=001.1010 (|x|=000.1101 2|x|=001.1010 (用三符号表示用三符号表示) ) |y|=00.0110 ( |y|=00.0110 (用双符号表示用双符号表示) ) 部分积部分积 乘数乘数 C C 说说 明明 000.0000 00.01000.0000 00.01100100 + 001.1010 y + 001.1010 yn-1n-1y yn nC=100C=100,加,加2|x|2|x| 001.1010 001.1010 000.011010 00. 000.011010 00.011011 右移两位右移两位 0C0C + 001.1010 y + 001.1010 yn-1n-1y yn nC=011C=011,加,加2|x|2|x| 010.000010 010.000010 000.10000010 000.10000010 00.000.0 右移两位右移两位 0C0C y yn-1n-1y yn nC=000C=000,最后一步不移位,最后一步不移位 故故xyxy原原=0.10000010=0.10000010 例3 x= -0.1101,y=0.0110,求 xy原=?Nanjing University of Information Science & Technology, Computer and Software Institute2.3.4补码两位乘法补码两位乘法n运算规则:运算规则:(1)符号位参加运算符号位参加运算,两数均用补码表示。,两数均用补码表示。(2 2)部部分分积积与与被被乘乘数数均均采采用用三三位位符符号号表表示示,乘乘数数末位增加一位末位增加一位y yn+1n+1,其初值为,其初值为0 0。(3 3)按表)按表2-42-4所示的操作。所示的操作。(4 4)若若尾尾数数n n为为偶偶数数,则则乘乘数数用用双双符符号号,最最后后一一步步不不移移位位。若若尾尾数数n n为为奇奇数数,则则乘乘数数用用单单符符号号,最最后一步移一位。后一步移一位。Nanjing University of Information Science & Technology, Computer and Software Institute表表2-4 2-4 补码两位乘法算法补码两位乘法算法 y yn-1 n-1 y yn n y yn+1 n+1 操操作作 0 0 00 0 0加加0,右移两位右移两位 0 0 1 0 0 1 加加x补补,右移两位右移两位 0 1 0 0 1 0 加加x补补,右移两位右移两位 0 1 1 0 1 1 加加2x补补,右移两位右移两位 1 0 0 1 0 0 加加2-x补补,右移两位右移两位 1 0 1 1 0 1 加加-x补补,右移两位右移两位 1 1 0 1 1 0 加加-x补补,右移两位右移两位 1 1 1 1 1 1 加加0,右移两位右移两位Nanjing University of Information Science & Technology, Computer and Software Institute解:解:xx补补=111.1101=111.1101,2-x2-x补补=001.1010=001.1010,2x2x补补=110.0110 (=110.0110 (用三符号表示用三符号表示) ) y y补补=00.0110 (=00.0110 (用双符号表示用双符号表示) ) 例4 x= -0.1101,y=0.0110,求 xy补=? 部分积部分积 乘数乘数 y yn+1n+1 说说 明明 000.0000 00.01000.0000 00.01100100 + 001.1010 y + 001.1010 yn-1n-1y yn n y yn+1 n+1 =100 =100 ,加,加2-x2-x补补 001.1010001.1010 000.011010 00. 000.011010 00.011011 右移两位右移两位 + 110.0110 + 110.0110 y yn-1n-1y yn n y yn+1 n+1 y=011y=011,加,加2x2x补补 110.110010110.110010 111.10110010 111.10110010 00.000.0 右移两位右移两位 y yn-1n-1y yn ny yn+1n+1y=000y=000,最后一步不移位,最后一步不移位故故xy补=1.10110010Nanjing University of Information Science & Technology, Computer and Software Institute2.4 定点除法运算定点除法运算n2.4.1原码一位除法原码一位除法n2.4.2补码一位除法补码一位除法Nanjing University of Information Science & Technology, Computer and Software Institute2.4.1原码一位除法原码一位除法设被除数设被除数xx原原x xf f.x.xx x x x n n , 除数除数yy原原y yf f.y.yy y y y n n ,则,则商的符号:商的符号: Q Qf f= = x xf fyyf f商的数值:商的数值: |Q|=|Q|=|x|/|yx|/|y| |两个用原码表示的数相除时,两个用原码表示的数相除时,商的符号商的符号通过两个数通过两个数的符号的符号异或异或求得,而求得,而商的数值部分商的数值部分通过两个数的数通过两个数的数值部分按正数求商得到。值部分按正数求商得到。Nanjing University of Information Science & Technology, Computer and Software Instituten设被除数设被除数0.1001,除数,除数0.1011,模仿,模仿十进制除法运算。十进制除法运算。2-1y2-2y2-3y2-4yNanjing University of Information Science & Technology, Computer and Software Institute1. 1. 判断是否小于?现在判断是否小于?现在 221 1,表示够减,小数点后第,表示够减,小数点后第一位商一位商“1 1”,作,作r r0 02 21 1,得余数,得余数r r1 1。 3. 3. 比较比较r r1 1和和2 22 2,因,因r r1 1222 2,表示够减,小数点后第,表示够减,小数点后第二位商二位商“1 1”,作,作r r1 12 22 2,得余数,得余数r r2 2。4. 4. 比较比较r r2 2和和2 23 3,因,因r r2 22224 4,表示够减,小数点后第,表示够减,小数点后第四四2 2位商位商“1 1”,作,作r r3 32 24 4,得余数,得余数r r4 4,共求四位商,共求四位商,至此除法完毕。至此除法完毕。上面的笔算过程可叙述如下:Nanjing University of Information Science & Technology, Computer and Software Institute手工除法算法手工除法算法nX=+0.1011,Y=-0.1101nXYn n改进手工算法即可适合机器改进手工算法即可适合机器改进手工算法即可适合机器改进手工算法即可适合机器运算:运算:运算:运算:计算机通过做减法测试来实现计算机通过做减法测试来实现判断:判断:结果大于等于结果大于等于0 0,表明,表明够减,商够减,商1 1;结果小于结果小于0 0,表明,表明不够减,商不够减,商0 0。计算机将余数左移一位,再直计算机将余数左移一位,再直接与不右移的除数相减。接与不右移的除数相减。Nanjing University of Information Science & Technology, Computer and Software Institute恢复余数法:先作减法,若余数为正,够先作减法,若余数为正,够减;若余数为负,不够减。不够减时必减;若余数为负,不够减。不够减时必须恢复原来的余数,以便再继续往下运须恢复原来的余数,以便再继续往下运算算。加减交替法:运算过程中出现不够减,则运算过程中出现不够减,则不必恢复余数,根据余数符号,可以继不必恢复余数,根据余数符号,可以继续往下运算。续往下运算。Nanjing University of Information Science & Technology, Computer and Software Institute求|Q|的加减交替法(不恢复余数法)运算规则为: (1 1)符号位不参加运算,并要求)符号位不参加运算,并要求|x|y|x|y| (2 2)先用被除数减去除数,先用被除数减去除数, 当余数为正时,商上当余数为正时,商上1 1,余数左移一位,再减去除数。,余数左移一位,再减去除数。 当当余余数数为为负负时时,商商上上0 0,余余数数左左移移一一位位,再再加加上上除除数数。(3 3)当当第第n+1n+1步步余余数数为为负负时时, ,需需加加上上|y|y|得得到到第第n+1n+1步步正正确确的余数。最后余数为的余数。最后余数为r rn n22-n-n( (余数与被除数同号余数与被除数同号) )。原码不恢复余数法算法流程图如图2-8所示。Nanjing University of Information Science & Technology, Computer and Software Institute解:解: |x|=00.1001|x|=00.1001,|y|=00.1011 -|y|y|=00.1011 -|y|补补= 11.0101 = 11.0101 被除数被除数x/x/余数余数r r 商数商数q q 说说 明明 000010011001 +-|y| +-|y|补补 11. 0101 11. 0101 减去除数减去除数 11111110 0 1110 0 余数为负,商上余数为负,商上0 0 11 111100 0 r1100 0 r和和q q左移一位左移一位 +|y|+|y|补补 00. 1011 00. 1011 加上除数加上除数 00000111 0.1 0111 0.1 余数为正,商上余数为正,商上1 1 00 001110 0.1 r1110 0.1 r和和q q左移一位左移一位 +-|y|+-|y|补补 11. 0101 11. 0101 减去除数减去除数 00000011 0.11 0011 0.11 余数为正,商上余数为正,商上1 1 00 000110 0.11 r0110 0.11 r和和q q左移一位左移一位 +-|y|+-|y|补补 11. 0101 11. 0101 减去除数减去除数 11111011 0.110 1011 0.110 余数为负,商上余数为负,商上0 0 11 110110 0.110 r0110 0.110 r和和q q左移一位左移一位 +|y|+|y|补补 00. 1011 00. 1011 加上除数加上除数 00000001 0.1101 0001 0.1101 余数为正,商上余数为正,商上1 1例1 x= -0.1001,y=-0.1011,求x/y原=? Q Qf f= = x xf f + + y yf f=1 + 1=0=1 + 1=0,x/yx/y原原=0.1101=0.1101, 余数余数rr原原=1.00012=1.00012-4-4( (余数与被除数同号余数与被除数同号) )。Nanjing University of Information Science & Technology, Computer and Software Institute2.4.2补码一位除法补码一位除法符号位参加运算,除数与被除数均用符号位参加运算,除数与被除数均用双符号补码双符号补码表示。表示。 被被除除数数与与除除数数同同号号时时,被被除除数数减减去去除除数数。被被除除数数与与除除数数异异号号时,被除数时,被除数加上加上除数。商符号位的取值见第除数。商符号位的取值见第步。步。 余余数数与与除除数数同同号号时时,商商上上1 1,余余数数左左移移一一位位减减去去除除数数;余余数数与除数与除数异号异号时,商上时,商上0 0,余数左移一位加上除数。,余数左移一位加上除数。 注意:注意:余数左移加上或减去除数后就得到了新余数。余数左移加上或减去除数后就得到了新余数。 采用采用校正法校正法包括符号位在内,应重复规则包括符号位在内,应重复规则(n n1 1)次。次。 1. 1. 补码不恢复余数法的算法规则(比较上商)如下:补码不恢复余数法的算法规则(比较上商)如下:补码一位除法运算规则由比较上商规则、商的校正规则和余数校正规则组成。Nanjing University of Information Science & Technology, Computer and Software Institute商的校正原则:商的校正原则: 当当刚刚好好能能除除尽尽 ( (即即运运算算过过程程其其中中任任一一步步余余数数为为0)0) 时时,如如果果除除数数为为正正,则则商商不不必必校校正正;若若除除数数为为负负,则则商商需需要校正,即加要校正,即加2 2-n-n进行修正。进行修正。 当当不不能能除除尽尽时时,如如果果商商为为正正,则则不不必必校校正正;若若商商为为负负,则商需要加,则商需要加2 2-n-n进行修正。进行修正。 求得n位商后,得到的余数往往是不正确的。正确的余数常需要根据具体情况作适当的处理才能获得,处理方法一般如下:Nanjing University of Information Science & Technology, Computer and Software Institute余数的处理 若若商为正商为正,则当,则当余数与被除数异号余数与被除数异号时,应将余数时,应将余数加上除数加上除数进行修正才能获得正确的余数。进行修正才能获得正确的余数。 若若商为负商为负,则当,则当余数与被除数异号余数与被除数异号时,余数需要时,余数需要减去除数减去除数进行校正。进行校正。 余数之所以需校正,是因为在补码不恢复余数除余数之所以需校正,是因为在补码不恢复余数除法运算过程中法运算过程中先比较后上商先比较后上商的缘故。的缘故。 可见,如果要保存余数必须根据具体情况对余数可见,如果要保存余数必须根据具体情况对余数作相应处理,否则余数不一定正确。作相应处理,否则余数不一定正确。Nanjing University of Information Science & Technology, Computer and Software Institute 例例3 x= 0.10013 x= 0.1001,y= -0.1001y= -0.1001,求,求x/yx/y补补= =? 解:解:xx补补=0.1001=0.1001,yy补补=11.0111 =11.0111 ,-y-y补补= 00.1001 (= 00.1001 (用双符号表示用双符号表示) ) 被除数被除数x/x/余数余数r r 商数商数q q 说说 明明 000010011001 +y +y补补 11. 0111 x11. 0111 x和和y y异号,异号,x x补补+ y+ y补补 00000000 0 0000 0 余数与余数与 y y异号,商上异号,商上0 0 00 000000 0 r0000 0 r和和q q左移一位左移一位 +y+y补补 11. 0111 11. 0111 加上除数加上除数 11110111 0.1 0111 0.1 余数与余数与 y y同号,商上同号,商上1 1 10 101110 0.1 r1110 0.1 r和和q q左移一位左移一位 +-y+-y补补 00. 1001 00. 1001 减去除数减去除数 11110111 0.11 0111 0.11 余数与余数与 y y同号,商上同号,商上1 1 10 101110 0.11 r1110 0.11 r和和q q左移一位左移一位 +-y+-y补补 00. 1001 00. 1001 减去除数减去除数 11110111 0.111 0111 0.111 余数与余数与 y y同号,商上同号,商上1 1 10 101110 0.111 r1110 0.111 r和和q q左移一位左移一位 +-y+-y补补 00. 1001 00. 1001 减去除数减去除数 11110111 00111 01111 1111 余数与余数与 y y同号,商上同号,商上1 1Nanjing University of Information Science & Technology, Computer and Software Institute 中中间间有有一一步步余余数数为为零零表表示示能能除除尽尽,除除数数为为负负,需校正,需校正, x/yx/y补补= 1= 11111+ 01111+ 00001= 10001= 100000000 余数与被除数异号,需校正,余数与被除数异号,需校正, 余数余数rr补补= =(11110111+0111+ 00. 100100. 1001)22-4-4 =0. 00002=0. 00002-4-4。Nanjing University of Information Science & Technology, Computer and Software Institute 例例4 x= -0.10014 x= -0.1001,y= 0.1011y= 0.1011,求,求x/yx/y补补= =? 解:解:xx补补=11.0111 y=11.0111 y补补=00.1011 =00.1011 ,-y-y补补= 11.0101 (= 11.0101 (用双符号表示用双符号表示) ) 被除数被除数x/x/余数余数r r 商数商数q q 说说 明明 111101110111 +y +y补补 00. 1011 x00. 1011 x和和y y异号,异号,xx补补+y+y补补 00000010 1 0010 1 余数与余数与 y y同号,商上同号,商上1 1 00 000100 1 r0100 1 r和和q q左移一位左移一位 +-y+-y补补 11. 0101 11. 0101 减去除数减去除数 11111001 1.0 1001 1.0 余数与余数与 y y异号,商上异号,商上0 0 11 110010 1.0 r0010 1.0 r和和q q左移一位左移一位 +y+y补补 00. 1011 00. 1011 加上除数加上除数 11111101 1.00 1101 1.00 余数与余数与 y y异号,商上异号,商上0 0 11 111010 1.00 r1010 1.00 r和和q q左移一位左移一位 +y+y补补 00. 1011 00. 1011 加上除数加上除数 00000101 1.001 0101 1.001 余数与余数与 y y同号,商上同号,商上1 1 00 001010 1.001 r1010 1.001 r和和q q左移一位左移一位 +-y+-y补补 11. 0101 11. 0101 减去除数减去除数 11111111 1.0010 1111 1.0010 余数与余数与 y y异号,商上异号,商上0 0Nanjing University of Information Science & Technology, Computer and Software Institute不能除尽,商为负,需校正,不能除尽,商为负,需校正, x/yx/y补补= 1= 10010+ 00010+ 00001= 10001= 100110011 余数与被除数同号不需校正,余数与被除数同号不需校正, 余数余数rr补补=1=11111211112-4-4( (余数与被除数同号余数与被除数同号) )。Nanjing University of Information Science & Technology, Computer and Software Institute2.5 定点运算器的组成与结构定点运算器的组成与结构 ALU(ArithmeticLogicUnit)n运运算算器器是是对对数数据据进进行行加加工工处处理理的的部部件件,它它的的具具体体任任务务是是实实现现数数据据的的算算术术运运算算和和逻逻辑辑运运算算,所所以以它它又又称称为为算算术术逻逻辑辑运运算算部部件件,简记为简记为ALU(ArithmeticLogicUnit)。Nanjing University of Information Science & Technology, Computer and Software Institute2.5.1 2.5.1 多功能算术逻辑运算单元(多功能算术逻辑运算单元(ALUALU)设设x x和和y y两个操作数分别为两个操作数分别为 x xx xf f.x.xx xx x n n , y yy yf f.y.yy yy yn n1.1.一位全加器(一位全加器(FAFA)n两个二进制数字两个二进制数字xi、yi和一个进位输入和一个进位输入Ci-1相加,相加,产生一个和输出产生一个和输出Si,以及一个进位输出,以及一个进位输出Ci。n表表2-5中中列出一位全加器进行加法运算的输入输列出一位全加器进行加法运算的输入输出真值表。出真值表。Nanjing University of Information Science & Technology, Computer and Software Institute表表2-5一位全加器真值表一位全加器真值表输入输入输出输出xiyiCi-1SiCi0000000110010100111010010101011100111111一位全加器仅能完成一位数的相加运算(如xi与yi的求和)Nanjing University of Information Science & Technology, Computer and Software InstituteCi&1&=1Si=1Ci1xiyi根据以上真值表可分别写出根据以上真值表可分别写出S Si i和和C Ci i的如下表达式:的如下表达式:S Si i= x= xi i y yi i C Ci-1i-1+ x+ xi i y yi i C Ci-1i-1+ x+ xi i y yi i C Ci-1i-1+ x+ xi i y yi i C Ci-1i-1= x= xi i y yi i C Ci-1i-1 C Ci i= x= xi i y yi i C Ci-1i-1+ x+ xi i y yi i C Ci-1i-1+ x+ xi i y yi i C Ci-1i-1+ x+ xi i y yi i C Ci-1i-1 = = x xi iy yi i + ( + (x xi i y yi i) C) Ci-1i-1 以上两式用以上两式用“异或异或”门构成一位全加器。门构成一位全加器。CiSixiyi COSi CICi1逻辑符号逻辑符号Nanjing University of Information Science & Technology, Computer and Software Institute2.并行加法器及其进位链n并行加法器使用的全加器的位数与操作并行加法器使用的全加器的位数与操作数的位数相同,它能够数的位数相同,它能够同时对操作数的同时对操作数的各位进行相加各位进行相加,所以,称为并行加法器。,所以,称为并行加法器。n这里将这里将进位信号的进位信号的产生与传递产生与传递的逻辑结的逻辑结构构称为称为进位链进位链。 Nanjing University of Information Science & Technology, Computer and Software Instituten当当操操作作数数为为n1位位长长时时,需需要要用用n1位位全全加加器器构构成成加加法法器,器,如图如图2-13所示。所示。n真真正正的的结结果果依依赖赖于于进进位位信信号号的的逐逐位位产产生生。加加法法器器求求和和的的时间时间是是进位信号的产生和传递进位信号的产生和传递所占用的时间。所占用的时间。 CnSnxnynCOS SnCICn1Sn1xn1yn1COS Sn1CICiSixiyiCOS SiCIC2S2x2y2COS S2CIC1S1x1y1COS S1CIC0(1 1)串行进位的并行加法器)串行进位的并行加法器图图2-13串行进位的并行加法器串行进位的并行加法器Nanjing University of Information Science & Technology, Computer and Software Institute 人人们们把把x xi iyyi i称称为为进进位位传传递递函函数数或或进进位位传传递递条条件件,并并以以P Pi i表表示示。而而将将x xi iy yi i称称为为进进位位产产生生函函数数或或本本地地进进位位,并并以以G Gi i表表示示。所所以以,进进位位表表达达式式又又常常表表示示为为 C Ci i= = x xi iy yi i + ( + (x xi iyyi i) C) Ci-1i-1 = = G Gi i + P + Pi i C Ci-1i-1 n从从这这组组表表达达式式中中可可以以明明显显地地看看到到,某某位位的的进进位位信信号号的的产产生生,依依赖赖于于低低位位进进位位信信号号的的产产生生。要要提提高高加加法法器器的的运运算算速速度度,就必须解决进位信号的产生和传递问题。就必须解决进位信号的产生和传递问题。 串行进位链(定义见P53)的表达式为:C C1 1= x= x1 1y y1 1 + (x + (x1 1yy1 1) C) C0 0 = G = G1 1 + P + P1 1 C C0 0C C2 2= x= x2 2y y2 2 + (x + (x2 2yy2 2) C) C1 1 = G = G2 2 + P + P2 2 C C1 1C C3 3= x= x3 3y y3 3 + (x + (x3 3yy3 3) C) C2 2 = G = G3 3 + P + P3 3 C C2 2C Cn-1n-1= x= xn-1n-1y y n-1 n-1 + (x + (x n-1 n-1yy n-1 n-1) C) C n-2 n-2 = G = G n-1 n-1 + P + P n-1 n-1 C C n-2 n-2C Cn n= = x xn ny y n n + (x + (x n nyy n n) C) C n-1 n-1 = G = G n n + P + P n n C C n-1 n-1Nanjing University of Information Science & Technology, Computer and Software Institute上式可以改写成如下形式:上式可以改写成如下形式: C C1 1= G= G1 1 + P + P1 1 C C0 0 C C2 2= G= G2 2 + P + P2 2 C C1 1= G= G2 2 + P + P2 2(G(G1 1 + P+ P1 1C C0 0) = G) = G2 2 + P + P2 2G G1 1 + P+ P2 2P P1 1C C0 0 C C3 3= G= G3 3 + P + P3 3 C C2 2 = G= G3 3 + P + P3 3(G(G2 2 + P+ P2 2C C1 1) ) = G = G3 3 + P + P3 3G G2 2 + P+ P3 3P P2 2G G1 1 + P+ P3 3P P2 2P P1 1C C0 0 以此类推,以此类推, C C4 4= G= G4 4 + P + P4 4 C C3 3= G= G4 4 + P + P4 4G G3 3 + P + P4 4P P3 3G G2 2 + P+ P4 4P P3 3P P2 2G G1 1 + P+ P4 4P P3 3P P2 2P P1 1C C0 0 C Cn-1n-1= = G G n-1n-1 + + P P n-1n-1G G n-2n-2 + + P P n-1n-1P P n-2n-2G G n-3 n-3 + + P P n-1n-1P P n-2n-2P P n-n-3 3PP4 4P P3 3P P2 2G G1 1 + P+ P n-1 n-1P P n-2 n-2P P n-3 n-3PP4 4P P3 3P P2 2P P1 1C C0 0 C Cn n= = G G n n + + P P n nG G n-1n-1 + + P P n nP P n-1n-1G G n-2n-2+ + + + P P n nP P n-1n-1P P n-2n-2PP4 4P P3 3P P2 2G G1 1 + + P P n nP P n-1 n-1P P n-2 n-2PP4 4P P3 3P P2 2P P1 1C C0 0(2)并行进位的并行加法器 各进位信号的产生不再与低位的进位信号有关,而各进位信号的产生不再与低位的进位信号有关,而只与两个参加运算的数和只与两个参加运算的数和C0有关。有关。Nanjing University of Information Science & Technology, Computer and Software Instituten这这种种进进位位链链也也称称为为单单重重分分组组跳跳跃跃进进位位。以以16b16b加加法法器器为为例例,一一般般可可分分作作4 4个个小小组组,每每小小级级4 4位位,每每组组内内部部采采用用并并行行进进位位结结构构,组组间间采采用用串串行行进进位位传传递递结结构构。 这这里里以以最最低低4b(4b(第第4b4b第第1b)1b)这一小组为例进行讨论。它们各位的进位表达式为这一小组为例进行讨论。它们各位的进位表达式为 C C1 1= G= G1 1 + P + P1 1 C C0 0 C C2 2= G= G2 2 + P + P2 2G G1 1 + P+ P2 2P P1 1C C0 0 C C3 3= G= G3 3 + P + P3 3G G2 2 + P+ P3 3P P2 2G G1 1 + P+ P3 3P P2 2P P1 1C C0 0 C C4 4= G= G4 4 + P + P4 4G G3 3 + P + P4 4P P3 3G G2 2 + P+ P4 4P P3 3P P2 2G G1 1 + P+ P4 4P P3 3P P2 2P P1 1C C0 0n在在这这个个小小组组里里,来来自自低低位位的的进进位位信信号号只只有有C C0 0 ,由由它它送送到到高高位位小组的进位信号只需送出小组的进位信号只需送出C C4 4即可。即可。n从从这这组组表表达达式式可可得得,这这个个小小组组组组内内的的并并行行进进位位线线路路( (见见图图2-2-14)14)。 图图中中用用虚虚线线围围起起来来的的部部分分可可看看成成是是一一个个逻逻辑辑网网络络,如如图图2.152.15所示。所示。组内并行、组间串行的进位链Nanjing University of Information Science & Technology, Computer and Software Institute图2-14 4位一组并行进位链逻辑图Nanjing University of Information Science & Technology, Computer and Software Institute并行进位网络并行进位网络C4C3C2C1C0G4P4G3P3G2P2G1P1图2-15 4位一组并行进位示意图Nanjing University of Information Science & Technology, Computer and Software Instituten这这种种进进位位链链又又称称为为多多重重分分组组跳跳跃跃进进位位链链。仿仿照照分分析析每每一一位位进进位位信信号号的的方方法法,将将每每个个小小组组最最高高位位的的进进位位信信号号分分成成进进位位传传送送函数和进位生成函数两个部分:函数和进位生成函数两个部分: C C4 4= G= G4 4 + P + P4 4G G3 3 + P + P4 4P P3 3G G2 2 + P+ P4 4P P3 3P P2 2G G1 1 + P+ P4 4P P3 3P P2 2P P1 1C C0 0 其其中中P P4 4P P3 3P P2 2P P1 1为为小小组组的的传传送送函函数数,记记作作P Pi i* *。而而前前面面4 4项项与与C C0 0无无关关, 只只与与本本小小组组内内的的G Gi i、P Pi i有有关关,所所以以称称它它们们为为第第一一小小组组的的进位生成函数,记作进位生成函数,记作G Gi i* *,即,即 G G1 1* *= G= G4 4 + P + P4 4G G3 3 + P + P4 4P P3 3G G2 2 + P+ P4 4P P3 3P P2 2G G1 1 P P1 1* *= P= P4 4P P3 3P P2 2P P1 1 因此因此 C C4 4= G= G1 1* *+ P+ P1 1* * C C0 0 同理同理 C C8 8= G= G2 2* *+ P+ P2 2* * C C4 4 C C1212= G= G3 3* *+ P+ P3 3* * C C8 8 C C1616= G= G4 4* *+ P+ P4 4* * C C1212 组内并行、组间并行的进位链 Nanjing University of Information Science & Technology, Computer and Software Institute这是一组递推表达式,可将其展开为这是一组递推表达式,可将其展开为 C C4 4= G= G1 1* *+ P+ P1 1* *C C0 0 C C8 8= G= G2 2* *+ P+ P2 2* *G G1 1* *+ P+ P2 2* *P P1 1* *C C0 0 C C1212= G= G3 3* *+ P+ P3 3* * G G2 2* *+ P+ P3 3* *P P2 2* *G G1 1* *+ P+ P3 3* *P P2 2* *P P1 1* *C C0 0 C C1616= G= G4 4* *+ P+ P4 4* * G G3 3* *+ P+ P4 4* *P P3 3* * G G2 2* *+ P+ P4 4* *P P3 3* *P P2 2* *G G1 1* *+ P+ P4 4* *P P3 3* *P P2 2* *P P1 1* *C C0 0用用逻逻辑辑电电路路实实现现展展开开后后的的表表达达式式,就就可可以以构构成成组组间间并并行行的进位线路的进位线路,即,即第二重分组并行进位线路第二重分组并行进位线路。 n组组内内采采用用并并行行进进位位,组组间间也也采采用用并并行行进进位位时时,每每个个小小组组应应产产生生本本小小组组的的进进位位生生成成函函数数G Gi i* *和和本本小小组组的的进进位位传传递递函函数数P Pi i* *,以以作作为为组组间间并并行行进进位位网网络络的的输输入入变变量量,所所以以,小小组组内内的的并行进位线路应作适当的修改,即:并行进位线路应作适当的修改,即: 第一小组应产生第一小组应产生G G1 1* *、 P P1 1* *、C C1 1、C C2 2、C C3 3,而不在小组内产生,而不在小组内产生C C4 4。 第二小组应产生第二小组应产生G G2 2* *、 P P2 2* *、C C5 5、C C6 6、C C7 7,而不在小组内产生,而不在小组内产生C C8 8。 第三小组应产生第三小组应产生G G3 3* *、 P P3 3* *、C C9 9、C C1010、C C1111,而不在小组内产生,而不在小组内产生C C1212。 第四小组应产生第四小组应产生G G4 4* *、 P P4 4* *、C C1313、C C1414、C C1515,而不在小组内产生,而不在小组内产生C C1616。 Nanjing University of Information Science & Technology, Computer and Software Institute 各小组的进位生成函数和进位传递函数的逻辑表达式为各小组的进位生成函数和进位传递函数的逻辑表达式为 G G1 1* *= G= G4 4 + P + P4 4G G3 3 + P + P4 4P P3 3G G2 2 + P+ P4 4P P3 3P P2 2G G1 1 G G2 2* *= G= G8 8 + P + P8 8G G7 7 + P + P8 8P P7 7G G6 6 + P+ P8 8P P7 7P P6 6G G5 5 G G3 3* *= G= G1212 + P + P1212G G1111 + P + P1212P P1111G G10 10 + P+ P1212P P1111P P1010G G9 9 G G4 4* *= G= G1616 + P + P1616G G1515 + P + P1616P P1515G G14 14 + P+ P1616P P1515P P1414G G13 13 P P1 1* *= P= P4 4P P3 3P P2 2P P1 1 P P2 2* *= P= P8 8P P7 7P P6 6P P5 5 P P3 3* *= P= P1212P P1111P P1010P P9 9 P P4 4* *= P= P1616P P1515P P1414P P1313 作如上修改后,仍以第一小组为例,作如上修改后,仍以第一小组为例,组内的逻辑电路如图组内的逻辑电路如图2-172-17所示。所示。Nanjing University of Information Science & Technology, Computer and Software Institute图2-17 组内、组间并行进位第1小组内进位链逻辑图Nanjing University of Information Science & Technology, Computer and Software Institute图2-18 16组内并行进组间并行进位链逻辑图Nanjing University of Information Science & Technology, Computer and Software Institute3.用集成电路构成ALU的原理nALU的逻辑结构原理框图的逻辑结构原理框图n常见的产品有常见的产品有SN74181SN74181,它是,它是4b4b片形的芯片,即一片能片形的芯片,即一片能完成完成4b4b数的算术运算和逻辑运算。还有数的算术运算和逻辑运算。还有8b8b、16b16b片的片的ALUALU芯片。芯片。n下面先介绍下面先介绍SN74181SN74181芯片,芯片, 然后讨论如何用它构成然后讨论如何用它构成ALUALU。 (1)SN74181(1)SN74181芯片芯片 SN74181SN74181是是一一种种具具有有并并行行进进位位的的多多功功能能ALUALU芯芯片片,每每片片4b4b,构构成成一一组组,组组内内是是并并行行进进位位,其其芯芯片片方方框框图图如如图图2.192.19所示。所示。Nanjing University of Information Science & Technology, Computer and Software InstituteALU的逻辑结构原理框图n函数发生器根函数发生器根据功能选择据功能选择控控制参数制参数S0、S1、S2、S3的不同的不同状态组合,对状态组合,对输入数据输入数据Ai和和Bi进行不同的进行不同的逻辑组合,产逻辑组合,产生不同的组合生不同的组合函数函数Xi和和Yi,然后再将然后再将Xi、Yi和和下一位进下一位进位数通过全加位数通过全加器进行全加。器进行全加。FA函数发生器函数发生器Ci+1CiCi+1XiYiAiBiS0S1S2S3FiNanjing University of Information Science & Technology, Computer and Software Institute图2-19 74181 ALU芯片示意图Nanjing University of Information Science & Technology, Computer and Software Instituten图中除了图中除了S0S3四个控制端外,还有一个控制四个控制端外,还有一个控制端端,它使用来控制,它使用来控制ALU是进行算术运算还是是进行算术运算还是进行逻辑运算的。进行逻辑运算的。算术逻辑运算的实现 当当0 0时,时,对进位信号没有任何影响。对进位信号没有任何影响。此时此时F F 不仅与本位的被操作数不仅与本位的被操作数Y Y和操作数和操作数X X 有有关,而且与本位的进位输出,即关,而且与本位的进位输出,即C C 有关,因此有关,因此0 0时,进行时,进行算术操作算术操作。 当当1 1时,封锁了各位的进位输出,即时,封锁了各位的进位输出,即C C 0 0,因此各位的运算结果,因此各位的运算结果F F 仅与仅与Y Y 和和X X 有关,有关,故故1 1时,进行时,进行逻辑操作逻辑操作。Nanjing University of Information Science & Technology, Computer and Software Instituten表表2-6列出了列出了74181ALU的运算功能表,的运算功能表,它有两种工作方式。它有两种工作方式。n对正逻辑操作数来说,算术运算称高电对正逻辑操作数来说,算术运算称高电平操作,逻辑运算称正逻辑操作平操作,逻辑运算称正逻辑操作(即高电即高电平为平为“1”,低电平为,低电平为“0”)。n对于负逻辑操作数来说,正好相反。对于负逻辑操作数来说,正好相反。Nanjing University of Information Science & Technology, Computer and Software Institute由于由于SS有有16种状态组合,因此对正逻辑种状态组合,因此对正逻辑输入与输出而言,有输入与输出而言,有16种算术运算功能种算术运算功能和和16种逻辑运算功能。种逻辑运算功能。Nanjing University of Information Science & Technology, Computer and Software Institute注意,表注意,表2.5中算术运算操作是用补码表示中算术运算操作是用补码表示法来表示的。其中法来表示的。其中“加加”是指算术加,是指算术加,运算时要考虑进位,而符号运算时要考虑进位,而符号“”是指是指“逻辑加逻辑加”。Nanjing University of Information Science & Technology, Computer and Software Institute其次,减法是用补码方法进行的,其中数其次,减法是用补码方法进行的,其中数的反码是内部产生的,而结果输出的反码是内部产生的,而结果输出“A减减B减减1”,因此做减法时需在最末位产生一,因此做减法时需在最末位产生一个强迫进位个强迫进位(加加1),以便产生,以便产生“A减减B”的的结果。结果。Nanjing University of Information Science & Technology, Computer and Software Institute另外,另外,“AB”输出端可指示两个数相等,输出端可指示两个数相等,因此它与其他因此它与其他ALU的的“AB输出端按输出端按“与与”逻辑连接后,可以检测两个数的逻辑连接后,可以检测两个数的相等条件。相等条件。Nanjing University of Information Science & Technology, Computer and Software InstituteSN74181SN74181的的结结构构很很适适合合于于将将它它们们连连成成不不同同位位数数的的ALUALU,每每片片SN74181SN74181芯芯片片作作为为一一个个4b4b的的小小组组,由由于于芯芯片片给给出出了了C Cn+4n+4、P Pi i* *和和G Gi i* *,所所以以用用该该芯芯片片既既可可构构成成组组间间串串行行进位进位的的ALUALU,也可以构成,也可以构成组间并行组间并行的的ALUALU。 组间串行进位的组间串行进位的1616位位ALUALU的构成的构成(2)(2)利用利用SN74181SN74181芯片构成芯片构成1616位位ALUALU的原理的原理Nanjing University of Information Science & Technology, Computer and Software Institute图2-20 16位组内并行、组间串行进位ALUNanjing University of Information Science & Technology, Computer and Software Instituten为了便于实现多片(组)为了便于实现多片(组)ALUALU之间的先行进位之间的先行进位, ,为此还需一个配合电路为此还需一个配合电路, ,称之为称之为先行进位发生器(CLA)(CLA)。即。即需增加一片需增加一片SN74182芯片。芯片。nSN74182与与SN74181配套的产品,是一个配套的产品,是一个产生产生并行进位信号并行进位信号的部件。由于的部件。由于SN74181提供了提供了小小组的进位传递函数组的进位传递函数Pi*和进位生成函数和进位生成函数Gi*,SN74182可以利用它们作输入参数,以可以利用它们作输入参数,以并行的并行的方式方式给出每个小组给出每个小组(芯片芯片)的的最高位进位最高位进位信号。信号。nSN74182在这里的用途是作为第在这里的用途是作为第2级并行进位系级并行进位系统。统。SN74182的逻辑框图如图的逻辑框图如图2-21所示。所示。 组间并行进位的组间并行进位的16b ALU16b ALU的构成的构成Nanjing University of Information Science & Technology, Computer and Software Institute图2-21 SN74182的逻辑框图Nanjing University of Information Science & Technology, Computer and Software Institute图2-22 16位两级并行进位ALU框图Nanjing University of Information Science & Technology, Computer and Software Institute解解: 行波进位方式的行波进位方式的32b ALU32b ALU如图如图2.252.25所示。所示。 两重进位方式的两重进位方式的32b ALU32b ALU如图如图2.242.24所示。所示。 三重进位方式的三重进位方式的32b ALU32b ALU如图如图2.252.25所示。所示。例:用例:用SN74181SN74181和和SN74182SN74182设计如下的设计如下的32b ALU32b ALU。行波进位方式,行波进位方式, 两重进位方式,两重进位方式, 三重进位方三重进位方式。式。Nanjing University of Information Science & Technology, Computer and Software Institute2.5.2定点运算器定点运算器n各各种种计计算算机机中中的的运运算算器器的的结结构构虽虽然然有有区区别别,但但它它都都必必须须包包含含如如下下几几个个基基本本部部分分:加加法法器器、通通用用寄寄存存器器、输输入入数数据据选选择择电电路路和和输出数据控制电路输出数据控制电路等。等。n运算器的基本结构如图运算器的基本结构如图2-26所示。所示。1.定点运算器的基本结构Nanjing University of Information Science & Technology, Computer and Software Institute加法器加法器输入选择电路输入选择电路将选择的将选择的系统总线系统总线(BUS)(BUS)或或寄存器组寄存器组中的中的数数据据送往送往加法器加法器进行运算处理,再将加法器的运算结果送入进行运算处理,再将加法器的运算结果送入输出数输出数据控制电路据控制电路处理,处理结果根据要求通过处理,处理结果根据要求通过系统系统BUSBUS送往内存或通送往内存或通过过内部内部BUSBUS送往寄存器暂存。送往寄存器暂存。其工作过程为:Nanjing University of Information Science & Technology, Computer and Software Institute运算器组成实例 (1 1)小型计算机的运算器)小型计算机的运算器 图图2-272-27所所示示的的是是国国产产某某小小型型机机的的运运算算器器逻逻辑辑方方框框图图,它它是是一一个个可可以以实实现现加加、减减、乘乘、除除四四则则运运算算的的并并行行定定点点运运算算器器,其其所所执执行行的的基基本本算算术术/ /逻逻辑辑运运算算有有:、求求补补、求求反反、传传送送、增增1 1、加加反反,并并可可完完成成左左移移、右移、右移、 B B交换与结果判零等。交换与结果判零等。Nanjing University of Information Science & Technology, Computer and Software Institute图2-27 小型机运算框图Nanjing University of Information Science & Technology, Computer and Software Institute1.1.图图2-282-28所所示示的的是是4b4b双双极极型型位位片片式式运运算算器器AM2901AM2901的的逻逻辑辑结结构构示示意意图图,它它将将ALUALU、通通用用寄寄存存器器组组、多多路路开开关关、移移位位器器等等逻逻辑构件集成在一个芯片内。辑构件集成在一个芯片内。2.例如采用四片例如采用四片AM2901连接,可构成连接,可构成16b字长的定点运算器,如图字长的定点运算器,如图2-29所示。所示。(2 2)位片式运算器)位片式运算器Nanjing University of Information Science & Technology, Computer and Software Institute2.6浮点运算方法和浮点运算器浮点运算方法和浮点运算器n2.6.1浮点算术运算浮点算术运算n2.6.2浮点运算器浮点运算器Nanjing University of Information Science & Technology, Computer and Software Institute2.6.1浮点算术运算浮点算术运算n设有两个浮点数设有两个浮点数x x和和y y,它们分别为,它们分别为 x x2 2m mM Mx x y y2 2n nM My y n其其中中m m和和n n分分别别为为数数x x和和y y的的阶阶码码,M Mx x和和M My y为为数数x x和和y y的的尾数尾数。n完完成成浮浮点点加加法法或或减减法法运运算算,需需要要进进行行对对阶阶、求求和和、规格化规格化、舍入舍入、判溢出判溢出等工作。等工作。浮点加法和减法Nanjing University of Information Science & Technology, Computer and Software Institute两浮点数进行加法和减法的运算规则是两浮点数进行加法和减法的运算规则是z =(M2EEM)2E,EENanjing University of Information Science & Technology, Computer and Software Institute完成浮点加减运算的操作过程大体分为四完成浮点加减运算的操作过程大体分为四步:步:1. 0 操作数的检查;操作数的检查;2. 比较阶码大小并完成对阶;比较阶码大小并完成对阶;3. 尾数进行加或减运算;尾数进行加或减运算;4. 结果规格化并进行舍入处理。结果规格化并进行舍入处理。浮点加减运算的操作流程:浮点加减运算的操作流程:Nanjing University of Information Science & Technology, Computer and Software Institute(1)0操作数检查操作数检查如果判知两个操作数如果判知两个操作数或或中有一中有一个数为个数为0,即可得知运算结果而没有必要,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时再进行后续的一系列操作以节省运算时间。间。0操作数检查步骤则用来完成这一功操作数检查步骤则用来完成这一功能。能。返回Nanjing University of Information Science & Technology, Computer and Software Institute(2)比较阶码大小并完成对阶比较阶码大小并完成对阶两浮点数进行加减,首先要看两数两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对的阶码是否相同,即小数点位置是否对齐。齐。若二数阶码相同,表示小数点是对若二数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。齐的,就可以进行尾数的加减运算。Nanjing University of Information Science & Technology, Computer and Software Instituten反之,若二数阶码不同,表示小数点位置反之,若二数阶码不同,表示小数点位置没有对齐,此时必须使二数阶码相同,这没有对齐,此时必须使二数阶码相同,这个过程叫作个过程叫作对阶对阶。n要对阶,首先应求出两数阶码要对阶,首先应求出两数阶码E和和E之差,即之差,即EEEn若若E0,表示两数阶码相等,即,表示两数阶码相等,即EE;n若若E0,表示,表示E0,表示,表示EE。Nanjing University of Information Science & Technology, Computer and Software Instituten当当EE时,要通过尾数的移动以改时,要通过尾数的移动以改变变E或或E,使之相等。,使之相等。n原则上,既可以通过原则上,既可以通过M移位以改变移位以改变E来达到来达到EE,也可以通过,也可以通过M移位移位以改变以改变E来实现来实现EE。Nanjing University of Information Science & Technology, Computer and Software Instituten对阶操作规定:对阶操作规定:使使尾数右移尾数右移,尾数右移,尾数右移后阶码作相应增加,其数值保持不变。后阶码作相应增加,其数值保持不变。n显然,一个增加后的阶码与另一个阶码显然,一个增加后的阶码与另一个阶码相等,增加的阶码的一定是小阶。相等,增加的阶码的一定是小阶。n因此在对阶时,总是使因此在对阶时,总是使小阶向大阶看齐小阶向大阶看齐,即小阶的尾数向右移位即小阶的尾数向右移位(相当于小数点左相当于小数点左移)每右移一位,其阶码加移)每右移一位,其阶码加1,直到,直到两数两数的阶码相等的阶码相等为止,右移的位数等于阶差为止,右移的位数等于阶差E。Nanjing University of Information Science & Technology, Computer and Software Instituten使两个数的阶码相等后,就完成了小数点对准使两个数的阶码相等后,就完成了小数点对准的工作,的工作,即可进行尾数的求和运算。即可进行尾数的求和运算。n不论加法运算还是减法运算,都按加法进行操不论加法运算还是减法运算,都按加法进行操作,其方法与定点加减法运算完全一样。作,其方法与定点加减法运算完全一样。返回(3) (3) 尾数求和运算尾数求和运算Nanjing University of Information Science & Technology, Computer and Software Instituten结结果果规规格格化化就就是是使使运运算算结结果果成成为为规规格格化化数。数。n为为了了运运算算处处理理方方便便,可可让让尾尾数数的的符符号号位位扩扩展展为为两两位位,当当运运算算结结果果的的尾尾数数部部分分不不是是11.0或或00.1的的形形式式时时,就就要进行规格化处理。要进行规格化处理。n根根据据运运算算结结果果的的不不同同,可可能能需需要要左左规规(尾尾数数左左移移成成规规格格化化数数),也也可可能能需需要要右右规规(尾数右移成规格化数尾数右移成规格化数)。(4) (4) 结果规格化结果规格化Nanjing University of Information Science & Technology, Computer and Software Instituten当尾数符号位当尾数符号位0101或或1010时,需要时,需要右规右规。右右规规的的方方法法:是是尾尾数数连连同同符符号号位位右右移移一一位位,和和的的阶阶码码加加1 1,经经右右规规处处理理后后得得到到11.011.0或或00.100.1的形式,即成为规格化的数的形式,即成为规格化的数。n当当运运算算结结果果的的符符号号位位和和最最高高有有效效位位为为11.111.1或或00.000.0时,需要时,需要左规左规。左左规规的的方方法法:是是尾尾数数连连同同符符号号位位一一起起左左移移一一位位,和和的的阶阶码码减减1 1, 直直到到尾尾数数部部分分出出现现11.011.0或或00.100.1的形式为止。的形式为止。Nanjing University of Information Science & Technology, Computer and Software Institute(5)舍入处理舍入处理在对阶或向右规格化时,尾数要向右移位,在对阶或向右规格化时,尾数要向右移位,这样,被右移的尾数的低位部分会被丢这样,被右移的尾数的低位部分会被丢掉,从而造成一定误差,因此要进行掉,从而造成一定误差,因此要进行舍入处理。Nanjing University of Information Science & Technology, Computer and Software Institute简单的舍入方法有两种:简单的舍入方法有两种:一种是一种是“0舍舍1入入”法,即如果右移法,即如果右移时被丢掉数位的最高位为时被丢掉数位的最高位为0则舍去,为则舍去,为1则将尾数的末位加则将尾数的末位加“1”。另一种是另一种是恒置一恒置一法,即只要数位法,即只要数位被移掉,就在尾数的末尾恒置被移掉,就在尾数的末尾恒置1。Nanjing University of Information Science & Technology, Computer and Software Institute1.0 0舍舍1 1入(原码、补码)入(原码、补码)000100原原100101原原111011补补2.末位恒置末位恒置1 1(原码、补码)(原码、补码)000100原原111011补补100101原原00010原原10011原原11110补补00011原原10011原原11101补补10011原原11101补补例例.保留保留4位尾数:位尾数:例例.保留保留4位尾数:位尾数:Nanjing University of Information Science & Technology, Computer and Software Institute(6)浮点数的溢出浮点数的溢出下图表示了浮点机器数在数轴上的分布情下图表示了浮点机器数在数轴上的分布情况。况。Nanjing University of Information Science & Technology, Computer and Software Institute当机器浮点数值大于最大正数当机器浮点数值大于最大正数A值,或小值,或小于最小负数于最小负数B值时,称为值时,称为上溢,上溢,这两种情这两种情况意味着阶码运算值超出了它所表示的况意味着阶码运算值超出了它所表示的范围,机器必须做中断处理。范围,机器必须做中断处理。Nanjing University of Information Science & Technology, Computer and Software Institute当机器浮点数值小于最小正数当机器浮点数值小于最小正数a值,或大于值,或大于最大负数最大负数b值时,称为值时,称为下溢下溢。下溢不是一。下溢不是一个严重问题,通常看作为机器零。个严重问题,通常看作为机器零。Nanjing University of Information Science & Technology, Computer and Software Institute浮点数的溢出是以其阶码溢出表现出来的。浮点数的溢出是以其阶码溢出表现出来的。在加在加减运算过程中要检查是否产生了溢减运算过程中要检查是否产生了溢出:若阶码正常,加出:若阶码正常,加(减减)运算正常结束;运算正常结束;若阶码溢出,则要进行相应处理。若阶码溢出,则要进行相应处理。Nanjing University of Information Science & Technology, Computer and Software Institute阶码上溢 超过了阶码可能表示的最大值的超过了阶码可能表示的最大值的正指数值,一般将其认为是正指数值,一般将其认为是和和。阶码下溢超过了阶码可能表示的最小值的超过了阶码可能表示的最小值的负指数值,一般将其认为是负指数值,一般将其认为是0。Nanjing University of Information Science & Technology, Computer and Software Institute尾数上溢两个同符号尾数相加产生了最高两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增位向上的进位,将尾数右移,阶码增1来来重新对齐。重新对齐。尾数下溢在将尾数右移时,尾数的最低有在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处效位从尾数域右端流出,要进行舍入处理。理。Nanjing University of Information Science & Technology, Computer and Software Institute例设设20100.11011011,2100(0.10101100),求,求。解解:Nanjing University of Information Science & Technology, Computer and Software Institute例例:设设浮浮点点数数的的阶阶码码为为4b4b(含含阶阶符符),尾尾数数为为6b6b(含含尾尾数数),x x、y y中中的指数项,小数项均为二进制真值。的指数项,小数项均为二进制真值。 x=2x=201010.11010.1101,y=2y=21111(-0.1010)(-0.1010),求,求x+y=?x+y=? x=-2x=-2-010-0100.11110.1111,y=2y=2-100-1000.11100.1110,求,求x-y=?x-y=?解解 xx补补=0001=0001,0.110100.11010,yy补补=0011=0011,1.011001.01100对对阶阶 E= E= mm 补补- - nn 补补=0001+1101=1110,=0001+1101=1110,其其真真值值为为-010-010,即即:x x的阶码比的阶码比y y的阶码小的阶码小2 2,x x的尾数应右移的尾数应右移2 2位,阶码加位,阶码加2 2,得,得xx补补=0011=0011,0.00111 0.00111 (0 0舍舍1 1入)入)尾数相加(用双符号),尾数相加(用双符号),xx尾尾 补补+y+y尾尾 补补,即,即 00.0011100.00111 + 11.01100 + 11.01100 11.10011 11.10011结结果果规规格格化化,由由于于运运算算结结果果的的尾尾数数为为 11.111.1的的形形式式,所所以以应左规,尾数左移一位,阶码减应左规,尾数左移一位,阶码减1 1,结果为,结果为 x+yx+y补补=0010=0010,1.001101.00110,x+y=2x+y=2010010(-0.11010)(-0.11010)Nanjing University of Information Science & Technology, Computer and Software Institute解解 xx补补=1110=1110,1.000101.00010,yy补补=1100=1100,0.111000.11100, -y-y补补=1100=1100,1.001001.00100对对阶阶 E= E= mm 补补- - nn 补补=1110+0100=0010,=1110+0100=0010,其其真真值值为为00100010,即即x x的的阶阶码码比比y y的的阶阶码码大大2 2,-y-y的的尾尾数数应应右右移移2 2位位,阶阶码加码加2 2,得,得 -y-y补补=1110=1110,1.11001 1.11001 (0 0舍舍1 1入)入)尾数相减(用双符号),尾数相减(用双符号),xx尾尾 补补+-y+-y尾尾 补补,即,即 11.0001011.00010 + 11.11001 + 11.11001 丢掉丢掉 1 10.110111 10.11011结结果果规规格格化化,由由于于运运算算结结果果的的尾尾数数为为 10.10.的的形形式,所以应右规,尾数右移一位,阶码加式,所以应右规,尾数右移一位,阶码加1 1,结果为,结果为 x-yx-y补补=1111=1111,1.01110 1.01110 (0 0舍舍1 1入),入),x-y=2x-y=2-001-001(-0.10010)(-0.10010)Nanjing University of Information Science & Technology, Computer and Software Institute浮点乘法运算浮点乘法运算 设设 x x2 2m mM Mx x , y y2 2n nM My y ,则则 x xy y2 2m+nm+n(M(Mx xM My y) ) 其中,其中,M Mx x、M My y分别为分别为x x和和y y的尾数。的尾数。 浮点乘法运算也可以分为如下三个步骤:Nanjing University of Information Science & Technology, Computer and Software Institute (2)尾数相乘 两个运算数的尾数部分相乘就可得到积的尾数。两个运算数的尾数部分相乘就可得到积的尾数。尾数相乘可按定点乘法运算的方法进行运算。尾数相乘可按定点乘法运算的方法进行运算。(3)结果规格化 当运算结果需要规格化时,就应进行规格化操作。当运算结果需要规格化时,就应进行规格化操作。规格化及舍入方法与浮点加减法处理的方法相同。规格化及舍入方法与浮点加减法处理的方法相同。(1)阶码相加 两个数的阶码相加可在加法器中完成。两个数的阶码相加可在加法器中完成。阶码和尾数两个部分并行操作时,可另设一个加法器专门阶码和尾数两个部分并行操作时,可另设一个加法器专门实现对阶码的求和;串行操作时,可用同一加法器分时完成阶实现对阶码的求和;串行操作时,可用同一加法器分时完成阶码求和、尾数求积的运算,并且先完成阶码求和运算。码求和、尾数求积的运算,并且先完成阶码求和运算。阶码相加后有可能产生溢出,若发生溢出,则相应部件将阶码相加后有可能产生溢出,若发生溢出,则相应部件将给出溢出信号,指示计算机作溢出处理。给出溢出信号,指示计算机作溢出处理。Nanjing University of Information Science & Technology, Computer and Software Institute浮点除法运算浮点除法运算设设 x x2 2m mM Mx x , y y2 2n nM My y ,则则 x xy y2 2m mn n(M(Mx xM My y) )(1 1)检查被除数的尾数)检查被除数的尾数 检检查查被被除除数数的的尾尾数数是是否否小小于于除除数数的的尾尾数数( (从从绝绝对对值值考考虑虑) )。如如果果被被除除数数的的尾尾数数大大于于除除数数的的尾尾数数,则则将将被被除除数数的的尾尾数数右右移移一一位位并并相相应应地地调调整整阶阶码码。由由于于操操作作数数在在运运算算前前是是规规格格化化的的数数,所所以以,最最多多只只作作一一次次调调整整。这这步操作可防止商的尾数出现混乱。步操作可防止商的尾数出现混乱。浮点除法运算也可以分如下三步浮点除法运算也可以分如下三步Nanjing University of Information Science & Technology, Computer and Software Institute (2) (2) 阶码求差阶码求差 由于商的阶码等于被除数的阶码减去除数阶码,由于商的阶码等于被除数的阶码减去除数阶码,所以,要进行阶码求差运算。阶码求差可以很简所以,要进行阶码求差运算。阶码求差可以很简单地在阶码加法器中实现。单地在阶码加法器中实现。(3) (3) 尾数相除尾数相除 商的尾数由被除数的尾数除以除数尾数获得。商的尾数由被除数的尾数除以除数尾数获得。由于操作数在运算前已规格化并且调整了尾数,由于操作数在运算前已规格化并且调整了尾数,所以尾数相除的结果是规格化定点小数。两个尾所以尾数相除的结果是规格化定点小数。两个尾数相除与定点除法相类似,这里不再讨论。数相除与定点除法相类似,这里不再讨论。Nanjing University of Information Science & Technology, Computer and Software Institute2.6.2浮点运算器浮点运算器n计算机中的浮点运算器总是由计算机中的浮点运算器总是由处理阶码处理阶码和和处理处理尾数尾数的两部分组成。的两部分组成。n微机系统中的浮点运算器目前有两种形式:微机系统中的浮点运算器目前有两种形式:浮浮点协处理器点协处理器和和微处理器芯片内集成浮点部件微处理器芯片内集成浮点部件(FPUFPU)。n如如80868086、8028680286和和8038680386微机系统可选用相应的微机系统可选用相应的浮点协处理器浮点协处理器,8048680486以上的微机系统则将以上的微机系统则将浮浮点部件点部件FPUFPU集成到微处理器芯片之中。集成到微处理器芯片之中。Nanjing University of Information Science & Technology, Computer and Software Institute、浮点运算器的一般结构、浮点运算器的一般结构 浮浮点点运运算算可可用用两两个个松松散散连连接接的的定定点点运运算算部部件件来来实实现现,这这两两个个定定点点运运算算部部件件就就是是图图2-302-30中所中所示的阶码部件和尾数部件。示的阶码部件和尾数部件。Nanjing University of Information Science & Technology, Computer and Software Institute图2-30 浮点运算器的一般结构图运算类别运算类别寄存器关系寄存器关系加法加法AC+DRAC减法减法AC-DRAC乘法乘法DRMQAC-MQ除法除法ACDRAC-MQNanjing University of Information Science & Technology, Computer and Software Institute2.2.浮点运算器实例浮点运算器实例 以以8038780387浮浮点点协协处处理理器器为为例例,说说明明其其特特点点和和内内部结构。部结构。 (1)80387(1)80387内部结构内部结构 8038780387浮浮点点协协处处理理器器内内有有三三个个主主要要功功能能部部件件:总总线线控控制制逻逻辑辑部部件件、数数据据接接口口控控制制部部件件和和浮浮点点运算部件,运算部件,其内部结构如图其内部结构如图2-312-31所示。所示。Nanjing University of Information Science & Technology, Computer and Software Institute总总线线控控制制逻逻辑辑 总总线线控控制制逻逻辑辑与与CPUCPU使使用用I/OI/O总总线线周周期期单单独独通通信信时时,总总线线控控制制逻逻辑辑以以CPU CPU 的的一个特殊外部设备出现。一个特殊外部设备出现。数数据据接接口口和和控控制制单单元元 数数据据接接口口和和控控制制单单元元中中的的指指令令译译码码器器对对由由CPUCPU送送来来的的ESCESC指指令令进进行行译译码码,并并直直接接对对浮浮点点输输入入输输出出的的数数据据流流产产生生控控制制信号。信号。浮浮点点运运算算单单元元 浮浮点点运运算算单单元元可可执执行行有有关关寄寄存存器器堆堆栈栈的的所所有有指指令令,这这些些指指令令有有算算术术指指令令、逻逻辑辑指指令令、超超越越指指令令、常常数数指指令令和和数数据据传传送送指指令等。令等。Nanjing University of Information Science & Technology, Computer and Software Institute(2)浮点数据类型n浮浮点点部部件件可可以以处处理理以以存存储储器器为为基基础础的的三三大大类类数数值值数数据据,分分别别为为二二进进制制整整数数、压压缩缩的的十十进进制整数制整数和和二进制实数二进制实数。n三类数据又可进一步分成七种数据类型。三类数据又可进一步分成七种数据类型。Nanjing University of Information Science & Technology, Computer and Software Institute1)二进制整数)二进制整数n分为分为3种数据类型:字整数、短整数和长整数,种数据类型:字整数、短整数和长整数,其格式如下其格式如下字整数字整数10416位位S1502的补码的补码短整数短整数 10932位位S3102的补码的补码长整数长整数101864位位630S2的补码的补码范围范围精度精度数据格式数据格式二进制整数格式只是在存储器中存放的格式,当微处理器使用浮点部件时,就自动地将二进制整数格式转换成80位扩展实数格式。Nanjing University of Information Science & Technology, Computer and Software Institute2)十进制整数)十进制整数n以压缩以压缩BCD形式存放,也就是一个字节存放两位十进制形式存放,也就是一个字节存放两位十进制数,用数,用4位二进制数表示一个十进制数位位二进制数表示一个十进制数位。n表示形式为表示形式为(-1)S(d17d16d0),即有,即有d17d0共共18位,用位,用72个二进制数个二进制数表示,表示,d17为最高有效位,为最高有效位,S为符号位。为符号位。n为无意义位,格式如下:为无意义位,格式如下:101818位十位十进制进制S790范围范围精度精度数据格式数据格式7872d17d16d15d14d3d2d1d07168十进制整数格式只是在存储器中存放的格式,当微处理器使用浮点部件时,就自动地将十进制整数转换成80位扩展实数格式。Nanjing University of Information Science & Technology, Computer and Software Institute3)实型数)实型数n浮点部件是以浮点部件是以(-1)S2E(b0b1b2b3bp-1)表示实型数。表示实型数。Bi为有效数字位;为有效数字位;P为精度为位数;为精度为位数;为隐含小数点位置为隐含小数点位置。n分为分为3种格式:单精度、双精度和扩展精度。种格式:单精度、双精度和扩展精度。103824位位S指数指数31053位位S6364位位范围范围精度精度数据格式数据格式单精度单精度双精度双精度扩展精度扩展精度有效数字有效数字23指数指数0有效数字有效数字5210308104932S79指数指数0有效数字有效数字63S64Nanjing University of Information Science & Technology, Computer and Software InstituteThankyou!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号