白中英第五版计算机组成原理第2章_第1页
白中英第五版计算机组成原理第2章_第2页
白中英第五版计算机组成原理第2章_第3页
白中英第五版计算机组成原理第2章_第4页
白中英第五版计算机组成原理第2章_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理计算机组成原理第二章第二章 运算方法与运算器运算方法与运算器l 2.1 数据与文字的表示方法 l 2.2 定点加法、减法运算l 2.3 定点乘法运算 l 2.4 定点除法运算l 2.5 定点运算器的组成 l 2.6 浮点运算方法和浮点运算器计算机组成原理计算机组成原理二进制数l便于计算机存储及物理实现便于计算机存储及物理实现l特点:逢二进一,由特点:逢二进一,由0 0和和1 1两个数码组成,基数两个数码组成,基数为为2 2,各个位权以,各个位权以2 2k k表示表示l二进制数:二进制数:a an na an-1n-1aa1 1a a0 0.b.b1 1b b2 2bbm ma a

2、n n2 2n na an-1n-12 2n-1n-1a a1 12 21 1a a0 02 20 0 b b1 12 2- -1 1b b2 22 2- -2 2b bm m2 2- -m m 其中其中a ai i,b bj j非非0 0即即1 1计算机组成原理计算机组成原理十六进制数l用于表达二进制数,相互转换简单用于表达二进制数,相互转换简单l基数基数1616,逢,逢1616进位,位权为进位,位权为1616k k,1616个数码:个数码:0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,A A,B B,C C,D D,E E,F Fl十六进制数:十六进制数:

3、a an na an-1n-1aa1 1a a0 0.b.b1 1b b2 2bbm ma an n1616n na an-1n-11616n-1n-1a a1 116161 1 a a0 016160 0b b1 11616- -1 1b b2 21616- -2 2b bm m1616- -m m其中其中a ai i,b bj j是是0 0F F中的一个数码中的一个数码计算机组成原理计算机组成原理二进制数或十六进制数转换为十进制数l方法:按权展开方法:按权展开l二进制数转换为十进制数二进制数转换为十进制数0011.10100011.1010B B1 12 21 11 12 20 01 12

4、 2- -1 10 02 2- -2 21 12 2- -3 33.6253.625l十六进制数转换为十进制数十六进制数转换为十进制数1.21.2H H1 116160 02 216161 11.1251.125计算机组成原理计算机组成原理十进制整数转换为二或十六进制数l整数整数部分转换:用除法部分转换:用除法十进制数整数部分不断除以基数十进制数整数部分不断除以基数2 2或或1616,并记下余,并记下余数,直到商为数,直到商为0 0为止为止由最后一个余数起逆向取各个余数,则为转换成由最后一个余数起逆向取各个余数,则为转换成的二进制和十六进制数的二进制和十六进制数12612601111110B0

5、1111110B1261267EH7EH计算机组成原理计算机组成原理十进制小数转换为二或十六进制数l小数小数部分转换:用乘法部分转换:用乘法分别乘以各自的基数,记录整数部分,直到小数分别乘以各自的基数,记录整数部分,直到小数部分为部分为0 0为止为止0.81250.81250.1101B0.1101B0.81250.81250.DH0.DHl小数转换会发生总是无法乘到为小数转换会发生总是无法乘到为0 0的情况的情况可选取一定位数(精度)可选取一定位数(精度)将产生无法避免的转换误差将产生无法避免的转换误差计算机组成原理计算机组成原理真值和机器数l真值真值:现实中真实的数值:现实中真实的数值l机

6、器数机器数:计算机中用:计算机中用0 0和和1 1数码组合表达的数值数码组合表达的数值l无符号数无符号数:只表达:只表达0 0和正整数的定点整数和正整数的定点整数l有符号数有符号数:表达负整数、:表达负整数、0 0和正整数的定点整和正整数的定点整数数符号位需要占用一个位,常用机器数的最高位符号位需要占用一个位,常用机器数的最高位0 0表示正数、表示正数、1 1表示负数表示负数具有具有原码原码、反码反码、补码补码、移码移码计算机组成原理计算机组成原理l没有符号位,使用全部字长来表示数值大小没有符号位,使用全部字长来表示数值大小l字长字长N N8 8时,编码:时,编码:00000000000000

7、001111111111111111取值范围:取值范围:0 0255255(2 28 8-1-1)l字长字长N N1616时,编码:时,编码:00000000FFFFHFFFFH取值范围:取值范围:0 06553565535(2 21616-1-1)l字长字长N N3232时,编码:时,编码:0000000000000000FFFFFFFFHFFFFFFFFH取值范围:取值范围:0 02 23232-1-1无符号数的表示计算机组成原理计算机组成原理2.1 数据与文字的表示方法l2.1.1 数据格式2.1.2 数的机器码表示2.1.3 字符与字符串的表示方法2.1.4 汉字的表示方法2.1.5

8、校验码计算机组成原理计算机组成原理n计算机中常用的数据表示格式有两种,一是计算机中常用的数据表示格式有两种,一是定点定点格式格式,二是,二是浮点格式浮点格式n定点格式定点格式容许的数值范围有限,但要求的处理容许的数值范围有限,但要求的处理硬件比较简单硬件比较简单n浮点格式浮点格式容许的数值范围很大,但要求的处理容许的数值范围很大,但要求的处理硬件比较复杂硬件比较复杂2.1.1 数据格式计算机组成原理计算机组成原理1、定点数的表示方法n定点表示定点表示:约定机器中所有数据的小数点位置是固约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成定不变的。通常将数据表示成纯小数纯小数或或纯整数纯

9、整数n定点数定点数xx0 x1x2xn 在定点机中表示如下在定点机中表示如下(x0表示表示符号位,符号位,0代表正号,代表正号,1代表负号代表负号)定点整数的小数点位置定点小数的小数点位置计算机组成原理计算机组成原理定点数例定点数例例:X=+1010110.纯整数:纯整数:X = 01010110.正数,符号位取正数,符号位取0Y= - 1101001.纯整数:纯整数:Y = 11101001. (原码)(原码)负数,符号位取负数,符号位取1X=+0.11011Y=-0.10101符号位取符号位取0纯小数:纯小数:X = 0.11011符号位取符号位取1纯小数:纯小数:X = 1.10101

10、(原码)(原码)计算机组成原理计算机组成原理定点整数的表示范围l纯整数的表示范围为(x1x2xn各位均为0时最小;各位均为1时最大,x0为符号位) 0| 2n 1l例如:n8,最大值编码:11111111表示: 111111111000000001281l目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算计算机组成原理计算机组成原理定点小数的表示范围l纯小数的表示范围为(x1x2xn各位均为0时最小;各位均为1时最大,x0为符号位) 0|12-nl例如,n8,最大值编码:0.11111111表示: 0.11111111 1.00.00000001 1-2-8计算机组成原理计

11、算机组成原理2、浮点数的表示方法l电子质量(克): 910- 2 8 = 0.910- 2 7太阳质量(克): 21033 = 0.21034 采用定点很难表示,而且不容易计算?l数的小数点位置随比例因子的不同而在一定范围内自由浮动 一个十进制数可以写成 10e一个进制数可以写成 eM尾数尾数 e指数指数R基数基数数的科学表达法数的科学表达法计算机组成原理计算机组成原理阶码和尾数n用定点小数表示,用定点小数表示,给出有效数字,决给出有效数字,决定了浮点数的表示定了浮点数的表示精度精度n表达指数部分表达指数部分n用整数形式表示,指明用整数形式表示,指明小数点在数据中的位置小数点在数据中的位置决定

12、浮点数的表示范围决定浮点数的表示范围早期计算机表达法早期计算机表达法浮点数的机器表示方法计算机组成原理计算机组成原理32位单精度浮点数:含阶符的阶码,:含阶符的阶码,8 位位阶码采用移码方式阶码采用移码方式(方便比较和对阶)来表示正负指数,采用方便比较和对阶)来表示正负指数,采用这种方式时,将浮点数的指数真值这种方式时,将浮点数的指数真值e变成阶码变成阶码E时,应将指数时,应将指数e加上一个固定的偏移值加上一个固定的偏移值127(01111111),即,即E=e+127。 :1位符号位符号位位0表示正数表示正数1表示负数表示负数 :尾数,:尾数,23位小位小数表示,小数点放数表示,小数点放在尾

13、数域最前面在尾数域最前面IEEE 754标准标准计算机组成原理计算机组成原理64位双精度浮点数:1位符号位符号位位:尾数,:尾数,52位小位小数数IEEE 754标准标准:含阶符的阶码,:含阶符的阶码,11 位位阶码采用移码方式阶码采用移码方式(方便比较和对阶)来表示正负指数,采用方便比较和对阶)来表示正负指数,采用这种方式时,将浮点数的指数真值这种方式时,将浮点数的指数真值e变成阶码变成阶码E时,应将指数时,应将指数e加上一个固定的偏移值加上一个固定的偏移值1023(01111111111),即,即E=e+1023。 计算机组成原理计算机组成原理浮点数的规格化浮点数的规格化例:156.78=

14、15.678101= 1.5678102= 0.15678103=REM对于二进制数对于二进制数1011.1101=0.10111101 2+4= 10.111101 2+2 = 1.0111101 2+3 (规格化表示法规格化表示法)= 1.0111101 2+11 (规格化表示法规格化表示法)=REM那么,计算机中究竟采用哪种数据形式?那么,计算机中究竟采用哪种数据形式?多种数据形式多种数据形式二进制数二进制数IEEE 754标准标准小数点左边这个小数点左边这个1在机器在机器里可以省略(少存一位)里可以省略(少存一位)计算机组成原理计算机组成原理l尾数最高有效位为1,隐藏,并且隐藏在小数点

15、的左边(即:1M2)l32位单精度浮点数规格化表示 (-1)s(1.) 2E-127e127(e127)l64位双精度浮点数规格化表示 (-1)s (1.) 2E-1023e1023(e1023)指数真值指数真值e 用移码形式表示为阶码用移码形式表示为阶码尾数规格化表示原则尾数规格化表示原则IEEE 754标准标准计算机组成原理计算机组成原理 X(-1)s1.M2e (1.011011)231011.011(11.375)10 指数指数e阶码阶码127 1000 00100111111100000011=(3)10 包括隐藏位包括隐藏位1的尾数的尾数1.M 1.011011例1:浮点机器数 (

16、41360000)16,求真值 十六进制数展开成二进制数十六进制数展开成二进制数0 100 0001 0011 0110 0000 0000 0000 0000S阶码阶码E(8位位)尾数尾数M(23位位)计算机组成原理计算机组成原理例例2:真值:真值20.59375,求,求32位单精度浮点数位单精度浮点数 分别将整数和分数部分转换成二进制数分别将整数和分数部分转换成二进制数 20.5937510100.10011 移动小数点,使其在第移动小数点,使其在第1、2位之间位之间10100.100111.01001001124e4S0E4+12713110000011M010010011 得到得到32

17、位浮点数的二进制存储格式为:位浮点数的二进制存储格式为:0 100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16计算机组成原理计算机组成原理l二进制:二进制:0100 0001 1010 0001 1000 0000,0100 0001 1010 0001 1000 0000,lS=0 e= 10000011-01111111=100=4S=0 e= 10000011-01111111=100=4lM=1.01000011M=1.01000011l真值真值(1.01000011)(1.01000011)2 24 4l10100.001110100

18、.001120.187520.18751010练习题:若浮点机器为(41A18000)1616,求真值?计算机组成原理计算机组成原理3、十进制数据表示&人们习惯于用十进制表示数据,而计算机则采用二进制表示人们习惯于用十进制表示数据,而计算机则采用二进制表示和处理数据。所以向计算机输入数据时,需要进行十进制数和处理数据。所以向计算机输入数据时,需要进行十进制数到二进制数的转换;输出数据时,则要进行二进制数到十进到二进制数的转换;输出数据时,则要进行二进制数到十进制数的转换处理。在数据量较小的情况下,这样的转换对机制数的转换处理。在数据量较小的情况下,这样的转换对机器运行效率的影响不是很大

19、。但是,在某些应用领域,运算器运行效率的影响不是很大。但是,在某些应用领域,运算简单而数据量很大,进行这些转换所占用的时间比例比较大。简单而数据量很大,进行这些转换所占用的时间比例比较大。所以为了提高机器的运行效率,计算机可以用十进制来表示所以为了提高机器的运行效率,计算机可以用十进制来表示和处理数据。和处理数据。&一个十进制数位是用若干位二进制编码表示。用四位二进制一个十进制数位是用若干位二进制编码表示。用四位二进制代码的不同组合来表示一个十进制数码的编码方法,称为代码的不同组合来表示一个十进制数码的编码方法,称为二二十进制编码,也称十进制编码,也称BCDBCD码(码(Binary

20、Coded DecimalBinary Coded Decimal)。)。 常用这种编码作为十进制数转换成二进制数的中间过渡。即常用这种编码作为十进制数转换成二进制数的中间过渡。即先将一个十进制数用先将一个十进制数用BCDBCD码来表示,再把它们送入机器。码来表示,再把它们送入机器。计算机组成原理计算机组成原理BCD码(Binary Coded Decimal)l二进制编码的十进制数二进制编码的十进制数一个十进制数位用一个十进制数位用4 4位二进制编码来表示位二进制编码来表示常用常用8421 BCD8421 BCD码:低码:低1010个个4 4位二进制编码表示位二进制编码表示0 09 9lBC

21、DBCD码很直观码很直观BCDBCD码:码:0100 1001 0111 1000.0001 0100 10010100 1001 0111 1000.0001 0100 1001十进制真值:十进制真值: 4978.1494978.149BCD码便于输入输出,表达数值准确码便于输入输出,表达数值准确计算机组成原理计算机组成原理 十进制数串的表示方法1.字符串形式每个十进制的数位或符号位都用一个字节存放+12-38-382.2.压缩的十进制数串形式压缩的十进制数串形式一个字节存放两个十进制的数位,符号位占半个字节,一个字节存放两个十进制的数位,符号位占半个字节,数位加符号位之和必须为偶数(例如用

22、数位加符号位之和必须为偶数(例如用C表示正,表示正,D表示负)表示负)+1212 3 C012D123-12 每个数位可用每个数位可用BCD码码1.1.原码表示法原码表示法l定点整数的原码形式为x0 x1x2 xn X 2n X 0 X原原2nX2n|X|0X2nl使用8位二进制:105 10=011010012X+105,则 X原 01101001X-105, 则 X原 11101001l0使用原码有两种表达形式 +0原 =00000000 -0原 =10000000符号位符号位2.1.2数的机器码表示具有具有原码、反码、补码、移码原码、反码、补码、移码计算机组成原理计算机组成原理原码缺点l

23、进行加减运算十分麻烦进行加减运算十分麻烦比较数的绝对值的大小比较数的绝对值的大小大数减小数大数减小数符号跟大数符号跟大数计算机组成原理计算机组成原理2022年3月14日17时01分 现在是北京时间现在是北京时间3点整,而时钟却指向点整,而时钟却指向5点。点。5-2=35+10=15=3(12自动丢失。12就是模)2 2、补码表示法、补码表示法计算机组成原理计算机组成原理2022年3月14日17时01分l继续推导: 5-2=5+10(MOD 12) -2=10(MOD 12)l结论:可以说:在模为12的情况下,-2的补码就是10。 一个负数用其补码代替,可以把减法转换为加法来实现。计算机组成原理

24、计算机组成原理2.2.补码表示法补码表示法l定点整数定点整数的补码形式为的补码形式为x0 x1x2 xn X 2n X 0 X补补2n+1+X2n+1-|X| 02n计算机组成原理计算机组成原理定点整数的补码方法l有符号整数在计算机中默认采用补码有符号整数在计算机中默认采用补码最高位表示符号:正数用最高位表示符号:正数用0 0,负数用,负数用1 1正数补码:直接表示数值大小(原码无符号正数补码:直接表示数值大小(原码无符号数)数)负数补码:符号位不变,将对应数值取反加负数补码:符号位不变,将对应数值取反加1 1105105补码补码110100111010010110100101101001-1

25、05-105补码补码11010011101001取反取反1 1001011000101101 1001011100101111001011110010111为什么是补码为什么是补码证明:-105补= 2n+1+X =28 +(- 1101001)=100000000+(- 1101001)= 10010111计算机组成原理计算机组成原理3、定点整数的反码l反码:二进制的各位数码反码:二进制的各位数码 0 0 变为变为1 1,1 1变为变为0 0l有符号整数采用反码有符号整数采用反码最高位表示符号:正数用最高位表示符号:正数用0 0,负数用,负数用1 1正数反码:直接表示数值大小(原码补码)正数

26、反码:直接表示数值大小(原码补码)负数反码:将对应正数反码取反负数反码:将对应正数反码取反105105反码反码0110100101101001-105-105反码反码11010011101001取反取反1001011010010110计算机组成原理计算机组成原理4、定点整数的移码(偏移码)l移码通常用于表示浮点数的阶码移码通常用于表示浮点数的阶码l有符号整数采用移码有符号整数采用移码最高位表示符号:正数用最高位表示符号:正数用1 1,负数用,负数用0 0(跟其他码(跟其他码相反)相反)移码的传统定义:移码的传统定义: XX移码移码 2 2n n X X 2 2n n XX2 2n n10510

27、5移码移码1000000010000000110100111010011 1,11010011101001-105-105移码移码1000000010000000110100111010010 0,00101110010111相对于偏移一半相对于偏移一半传统定义与标准浮点数阶码的定义不同传统定义与标准浮点数阶码的定义不同计算机组成原理计算机组成原理真值原码反码补码移码-128 1000000000000000-12711111111 100000001000000100000001.-110000001 11111110 1111111101111111-010000000 111111110

28、000000010000000+000000000 000000000000000010000000+100000001 000000010000000110000001计算机组成原理计算机组成原理例例8 8设机器字长16位,定点表示,尾数15位,数符1位,问: 定点原码整数表示时,最大正数是多少?最小负数是多少? 定点原码小数表示时,最大正数是多少?最小负数是多少?计算机组成原理计算机组成原理例8之解定点原码整数表示最大正数值 (21 51)1 0(32767) 1 0 最小负数值 -(21 51) 1 0 (-32767) 1 0 定点原码小数表示最大正数值(0.111.11)2 (1 2

29、-15) 10最小负数值(0.111.11)2(1 2-15)10 0 111 1111 1111 1111 1 111 1111 1111 1111 计算机组成原理计算机组成原理例例9 9假设由假设由S S, ,E E, ,M M三个域组成的一个三个域组成的一个3232位二进制字所表示的非零规格化浮点位二进制字所表示的非零规格化浮点数数, ,真值表示为(非真值表示为(非IEEE754IEEE754标准):标准):( (1)1)s s(1.(1.M M) )2 2E E128128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?问:它所表示的规格化的最大正数、最小正数、最大

30、负数、最小负数是多少?(1)(1)最大正数最大正数0 1111 1111 111 1111 1111 1111 1111 11110 1111 1111 111 1111 1111 1111 1111 111111(1(12 2-23)2 2127(2)(2)最小正数最小正数 000 000 000000 000 000 000 000 000 000 00000 000 000000 000 000 000 000 000 000 001.01.02 2128(3)(3)最小负数最小负数111 111 111111 111 111 111 111 111 111 11111 111 1111

31、11 111 111 111 111 111 111 1111(1(12 223)2 2127(4)(4)最大负数最大负数100 000 000000 000 000 000 000 000 000 00100 000 000000 000 000 000 000 000 000 001.01.02 2128 计算机组成原理计算机组成原理同一代码的不同含义n一个代码,采用不同编码,其数值不一样一个代码,采用不同编码,其数值不一样n计算机内一个二进制数:计算机内一个二进制数:1000 0001n不同的含义不同的含义n无符号二进制数:无符号二进制数:129n8421 BCD码:码:81n有符号整数

32、的原码:有符号整数的原码:-1n有符号整数的反码:有符号整数的反码:-126n有符号整数的补码:有符号整数的补码:-127计算机组成原理计算机组成原理数的机器码表示小结l正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法l采用补码,减法运算可以用加法运算实现,节省硬件,目前机器中广泛采用补码表示法l有些机器用原码进行存储和传送,运算时改用补码l有些机器做加减法时用补码,做乘除法时用原码l移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反计算机组成原理计算机组成原理ASCII码(美国标准信息交换码)l标准标准ASCIIASCII码用码用8 8位二

33、进制编码,最高位为偶校验位,其余位二进制编码,最高位为偶校验位,其余7 7位位构成构成128128个编码个编码l可显示和打印的字符:可显示和打印的字符:20H20H后的后的9494个编码个编码数码数码0 09 9:30H30H39H39H大写字母大写字母A AZ Z:41H41H5AH5AH小写字母小写字母a az z:61H61H7AH7AH空格:空格:20H20H2.1.3字符和字符串(非数值)的表示方法表表2.1 ASCII字符编码表字符编码表0000010100111001011101110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC22BRbr001

34、1ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?O_oDEL0-3位位4-6位位字符串的表示方法l字符串是指连续的一串字符,通常占用主存中连续的多个字节,每个字节存一个字符IF AB THEN READ(C)字符串的存放方法计算机组成原理计算机组成原理1.汉字的输入编码l数字编码国标区位码,用数字串代表一个汉字输入 l拼音码以汉字

35、拼音为基础的输入方法l字形编码用汉字的形状(笔划)来进行的编码例如五笔字形2.1.4 2.1.4 汉字的表示方法汉字的表示方法 计算机组成原理计算机组成原理2 2、汉字内码、汉字内码l汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示l汉字内码有多种方案,常以国标码为基础进行编码l例如,将国标码两字节的最高位置1后形成汉字“啊”的CCDOS系统汉字内码 3021H (0011 0000 0010 0001)对应的汉字内码 B0A1H (1011 0000 1010 0001)计算机组成原理计算机组成原理字模码字模码汉字的字模码为:汉字的字模码为:16位位 16位位=32字

36、节字节汉字字模点阵及编码汉字字模点阵及编码3、汉字字模码、汉字字模码 用于对汉字进行显示输出用于对汉字进行显示输出计算机组成原理计算机组成原理汉字的表示方法汉字的输入编码、汉字汉字的输入编码、汉字内码、字模码是计算机内码、字模码是计算机中用于输入、内部处理、中用于输入、内部处理、交换、输出四种不同用交换、输出四种不同用途的编码,不要混为一途的编码,不要混为一谈谈 显示输出显示输出打印输出打印输出机内码向字形码转换机内码向字形码转换机内码机内码输入码向机内码转换输入码向机内码转换字符代码化(输入)字符代码化(输入)计算机组成原理计算机组成原理2.1.52.1.5校验码校验码l校验码:能够发现甚至

37、纠正信息传输或存储过程中出现错误的编码l检错码:仅能检测出错误的编码l纠错码:能够发现并纠正错误的编码l最简单且应用广泛的检错码:奇偶校验码l奇校验:使包括校验位在内的数据中为“1”的个数恒为奇数l偶校验:使包括校验位在内的数据中为“1”的个数恒为偶数(包括0)l只能检测出奇数个位出错的情况,不能纠错计算机组成原理计算机组成原理例7:用奇校验和偶校验进行编码用奇校验和偶校验进行编码数据1010101001010100000000000111111111111111偶校验码10101010 001010100 100000000 001111111 111111111 0奇校验码10101010

38、 101010100 000000000 101111111 011111111 1计算机组成原理计算机组成原理2.22.2运算方法和运算器运算方法和运算器l2.2 2.2 定点加法、减法运算定点加法、减法运算l2.3 2.3 定点乘法运算定点乘法运算l2.4 2.4 定点除法运算定点除法运算l2.5 2.5 定点运算器的组成定点运算器的组成l2.6 2.6 浮点运算方法和浮点运算器浮点运算方法和浮点运算器计算机组成原理计算机组成原理2.2.1补码加法l补码加法公式补码加法公式 x补补+y补补=x+y补补 (mod 2 2n+1n+1)在模在模2 2n+1n+1意义下,任意两数的补码之和等于意

39、义下,任意两数的补码之和等于该两数之和的补码。该两数之和的补码。计算机组成原理计算机组成原理补码加法特点l符号位要作为数的一部分一起参加运算符号位要作为数的一部分一起参加运算l要在模要在模2 2n+1n+1的意义下相加,即超过的意义下相加,即超过2 2n+1n+1的进位要的进位要丢掉丢掉计算机组成原理计算机组成原理补补补证明l假设采用定点整数表示假设采用定点整数表示 l现分四种情况来证明现分四种情况来证明 (1)(1)0,0,0,0,则则0 0 补补=x, =x, 补补=y, =y, 补补=x+y=x+y所以等式成立所以等式成立. .(2)(2)0,0,0,0,则则00或或0 00时时, ,

40、2 2n+1n+1 ( () ) 2 2n+1n+1, ,进位进位2 2n+1n+1必丢失必丢失, ,又因又因( ()0)0,故故 补补 补补 补补当当00时时, , 2 2n+1n+1 ( () ) 2 2n+1n+1, ,又因又因( ()0)0,故故 补补 补补 2 2n+1n+1 ( () ) 补补所以上式成立所以上式成立计算机组成原理计算机组成原理补补补证明(3)(3)0,0,0,则则00或或 0 0 这种情况和第这种情况和第2 2种情况一样种情况一样, ,把把和和的位置的位置对调即得证。对调即得证。 (4)(4)0,0,0,0,则则0 0 相加两数都是负数相加两数都是负数, ,则其和

41、也一定是负数。则其和也一定是负数。 补补 2 2n+1n+1 , , 补补 2 2n+1n+1 补补 补补 2 2n+1n+12 2n+1n+1 2 2n+1n+1( (2 2n+1n+1 ) )上式右边分为上式右边分为”2 2n+1n+1”和和( (2 2n+1n+1) )两部分两部分. .既然既然( () )是负数是负数, , 那么那么( (2 2n+1n+1 ) ) 进位进位” ” 2 2n+1n+1”必必丢失丢失. .又因又因( ()0, )0, 所以所以 补补 补补 2 2n+1n+1 ( () ) 补补计算机组成原理计算机组成原理例11:+1001,+0101,求x 补01001,

42、y 补00101 x 补 01001 y 补00101+ 补 01110 所以01110 计算机组成原理计算机组成原理例9:1011,0101,求x 补01011,y 补11011 x 补 01011 y 补 11011+ 补 100110 所以00110计算机组成原理计算机组成原理2.2.2补码减法l补码减法运算公式补码减法运算公式x-yx-y补补=x=x补补-y-y补补=x=x补补+-y+-y补补计算机组成原理计算机组成原理x-y补=x补-y补=x补+-y补只要证明只要证明 补补 补补, ,上式即得证。现证明如下:上式即得证。现证明如下: 补补 补补 补补(mod 2(mod 2n+1n+

43、1) ) 补补 补补 补补 (2.19a)(2.19a) 补补 ( ()补补 补补 补补 补补 补补 补补 (2.19b)(2.19b)将式将式(2.19a)(2.19a)与与(2.19b)(2.19b)相加相加, ,得得 补补 补补 补补 补补 补补 补补 补补 补补 补补 补补 补补 补补0 0故故 补补 补补(mod 2(mod 2n+1n+1)(2.20) )(2.20) 从从 补求补求 补的法则补的法则是:对是:对 补包括符号位补包括符号位“求反且最末位加求反且最末位加1”,1”,即可得到即可得到 补。补。 写成运算表达式,则为写成运算表达式,则为 补补 补补2 2n n 其中符号表

44、示对其中符号表示对 补作包括符号位在内的求反操作补作包括符号位在内的求反操作,2,2n n表示最末位的表示最末位的1 1计算机组成原理计算机组成原理x1补10010 - x1补x1补 2-4 011010000101110 x2补01101 -x2补x2补 2-4 100100000110011 例例13:已知已知11110,21101求:求: x1补补 ,-x1补补 ,x2补补 ,-x2补补计算机组成原理计算机组成原理例14:+1101,+0110,求-x补01101, y补00110-y补11010 x 补 01101 -y 补 11010 - 补 100111 所以0111计算机组成原理

45、计算机组成原理2.2.3 溢出概念与检验方法u两个正数相加两个正数相加, ,结果为负(即:结果为负(即:大于机器所能表示的大于机器所能表示的最大正数最大正数), ,称为称为正溢正溢。u两个负数相加两个负数相加, ,结果为正(即:结果为正(即:小于机器所能表示的小于机器所能表示的最小负数最小负数),),称为称为负溢负溢。u运算出现溢出,结果就是错误的运算出现溢出,结果就是错误的计算机组成原理计算机组成原理 例例1515 10111011, , 10011001,求求。解:补01011 , 补01001 补01011 补 01001 补10100 两正数相加,结果为负,显然错误。运算中出现了“正溢

46、”计算机组成原理计算机组成原理l 例例16 x=-1101 , y=-1011 , 16 x=-1101 , y=-1011 , 求求 x+y x+y 。解 :解 : x x 补补= 1 0 0 1 1 , y = 1 0 0 1 1 , y 补补= 1 0 1 0 1= 1 0 1 0 1 x x 补补 1 0 0 1 11 0 0 1 1 x x 补补 1 0 1 0 11 0 1 0 1 x + y x + y 补补 0 1 0 0 00 1 0 0 0两个负数相加的结果成为正数,表示负溢。两个负数相加的结果成为正数,表示负溢。 计算机组成原理计算机组成原理2022年3月14日17时01

47、分1)两个数太大:)两个数太大:产生进位而改变了符号位; 1、两异号数相加或两同号数相减是否两异号数相加或两同号数相减是否 会产生溢出?会产生溢出?2、仅当两同号数相加或两异号数相减、仅当两同号数相加或两异号数相减 时才有可能产生溢出?时才有可能产生溢出?问题:问题:决不会产生溢出决不会产生溢出正确正确2、溢出原因:、溢出原因:计算机组成原理计算机组成原理“溢出溢出”检测方法:检测方法:第一种方法:采用双符号位法, 称为“变形补码”或“模4补码”。 用“00”表示正数,“11”表示负数,两个符号位同时参加运算,如果运算结果两符号位相同,则没有溢出发生。如果运算结果两符号位不同,则表明产生了溢出

48、。“10”表示负溢出(下溢出),说明运算结果为负数,“01”表示正溢出(上溢出),说明运算结果为正数。 计算机组成原理计算机组成原理例17 x=+1100 , y=+1000 , 求 x+y 。l解:解: xx补补 = = 00001100 , y1100 , y补补 = = 000010001000 x x 补 补 0 00 0 1 1 0 0yy补补0 00 0 1 0 0 0 1 0 0 0 x+yx+y补补0 10 1 0 1 0 0 0 1 0 0l( (表示正溢表示正溢) )计算机组成原理计算机组成原理例18 x=-1100 , y=-1000 , 求 x+y 。l解:解: xx补

49、补 = = 11110100 , y0100 , y补补 = = 111110001000 x x 补 补 1 11 1 0 1 0 0 0 1 0 0yy补补1 11 1 1 0 0 0 1 0 0 0 x+yx+y补补 1 01 0 1 1 0 0 1 1 0 0( (表示负溢表示负溢) )计算机组成原理计算机组成原理第二种方法:单符号位法l当最高有效位产生进位而符号位无进位时当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位产生上溢;当最高有效位无进位而符号位有进位时有进位时,产生下溢。产生下溢。l故溢出逻辑表达式为故溢出逻辑表达式为VCf C0,其中其中Cf为为

50、符号位产生的进位符号位产生的进位,C0为最高有效位产生的为最高有效位产生的进位。(见例进位。(见例15、16)计算机组成原理计算机组成原理2.2.4 基本的二进制加法/减法器l在计算机中完成两个二进制数相加的基本加法器有半加器和全加器。l半加器在完成两数相加时,不需要考虑低位进位。l全加器用来完成两个二进制数相加,并且同时考虑低位的进位,即全加器完成三个一位数相加的功能。计算机组成原理计算机组成原理2.2.4 基本的二进制加法/减法器全加器逻辑图CiAiBiSiCi+1FACiAiBiSiCi+1输 出输 入0 11 01 00 00 1 10 1 00 0 10 0 01 01 0 00 1

51、0 11 1 01 0 11 11 1 1表2-2 全加器真值表计算机组成原理计算机组成原理2.2.4 基本的二进制加法/减法器l全加器的表达式为:全加器的表达式为: S Si i = A = Ai i B Bi i C Ci i C Ci+1i+1 = A = Ai iB Bi i + B + Bi iC Ci i + A+ Ai iC Ci i 一位全加器内部逻辑图一位全加器内部逻辑图BCSiCi+1ABCAAiBiCi计算机组成原理计算机组成原理2.2.4 基本的二进制加法/减法器利用全加器可以实现两数的和或差1、串行加法:从低位开始,每步只完成一位运算的加法。串行加法器只需要全加器计算

52、两个n位数之和,需要n+1步(1位符号位),或n+2步(2位符号位)运算。高位运算只有等低位运算完成后才能进行,速度较慢计算机组成原理计算机组成原理2.2.4 基本的二进制加法/减法器图图2-22-2 行波进位补码加法行波进位补码加法/ /减法器减法器FAFAFAFAFAS0S1Sn-1Bs1As1Bs2As2Cs2Cs1Ss2Ss1Bn-1An-1Cn-1Cn-2B1A1B0A0C1C2C0溢出溢出M方式方式控制控制M=1 减减M=0 加加计算机组成原理计算机组成原理2.3 定点乘法运算l2.3.1 2.3.1 原码并行乘法原码并行乘法l2.3.2 2.3.2 补码并行乘法补码并行乘法计算机

53、组成原理计算机组成原理2.3.1 原码并行乘法l1. 1.人工算法与机器算法的同异性人工算法与机器算法的同异性设设n位被乘数和乘数用定点整数表示位被乘数和乘数用定点整数表示 被乘数被乘数 原原f n110 乘数乘数 原原f n110 则乘积则乘积 原原(f f)(n110)(n110)计算机组成原理计算机组成原理两个原码表示的数相乘的运算规则是两个原码表示的数相乘的运算规则是: :乘积的符号位由两数的乘积的符号位由两数的符号位按异或运算符号位按异或运算得到得到, ,而乘积的数值部分则而乘积的数值部分则是两个是两个正数相乘正数相乘之积。之积。数值部分的运算方法与普通的十进制乘法类似。数值部分的运

54、算方法与普通的十进制乘法类似。设设1101,1011.让我们用人工算法求其乘积让我们用人工算法求其乘积,其过程如下其过程如下:2022年3月14日17时01分l人工算法 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1+ 1 0 0 0 1 1 1 1 计算机组成原理计算机组成原理2.3.1 原码乘法l缺点缺点l将多个数一次相加,机器难以实现。一般的加法器,只能把两个输入数相加,多个位积的同时输入是无法实现的。l乘积位数增长了一倍,即2n,而机器字长只有n位l所以需要改进所以需要改进方法一:硬件实现方法方法一:硬件实现方法( (串行的串行的“加法和

55、移位加法和移位”),),硬件硬件 结构简单结构简单, ,速度太慢速度太慢( (时间延迟太长时间延迟太长).).(a)(a)方法二:不带符号位的阵列乘法器方法二:不带符号位的阵列乘法器计算机组成原理计算机组成原理2. 2.不带符号的阵列乘法器不带符号的阵列乘法器mn位不带符号的阵列乘法器逻辑图位不带符号的阵列乘法器逻辑图 每一个部分乘积项每一个部分乘积项aibj叫做一个叫做一个被加数。这被加数。这mn个被加数可以用个被加数可以用mn个个“与与”门并行地产生。门并行地产生。 计算机组成原理计算机组成原理不带符号的全加器(不带符号的全加器(FAFA)阵列)阵列斜线为进位输出和输入行波进位加法器n(n

56、-1)个全加器nn个与门play5位5位阵列乘法器的逻辑电路图计算机组成原理计算机组成原理例19 已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8p0的值。解:解: 1 1 0 1 1 1 1 0 1 1 A (27A (271010) ) 1 0 1 0 1 1 0 1 0 1 B ( 2 1B ( 2 11010) )1 1 0 1 11 1 0 1 1 a4b0=1, a3b0=1, a2b0=0, a1b0=1, a0b0=1 a4b0=1, a3b0=1, a2b0=0, a1b0=1, a0b0=1 0 0 0 0 00 0 0 0 0

57、 a4b1=0, a3b1=0, a2b1=0, a1b1=0, a0b1=0 a4b1=0, a3b1=0, a2b1=0, a1b1=0, a0b1=0 1 1 0 1 11 1 0 1 1 a4b2=1, a3b2=1, a2b2=0, a1b2=1, a0b2=1 a4b2=1, a3b2=1, a2b2=0, a1b2=1, a0b2=1 0 0 0 0 00 0 0 0 0 a4b3=0, a3b3=0, a2b3=0, a1b3=0, a0b3=0 a4b3=0, a3b3=0, a2b3=0, a1b3=0, a0b3=0 1 1 0 1 11 1 0 1 1 a4b4=1,

58、a3b4=1, a2b4=0, a1b4=1, a0b4=1 a4b4=1, a3b4=1, a2b4=0, a1b4=1, a0b4=1 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 0 1 1 1 P PP = p 9 p 8 p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 = 1 0 0 0 1 1 0 1 1 1 ( 5 6 7P = p 9 p 8 p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0 = 1 0 0 0 1 1 0 1 1 1 ( 5 6 71 01 0) )计算机组成原理计算机组成原理3、带符号位的阵列乘法器l阵列乘法器

59、使用的求补电路阵列乘法器使用的求补电路 原理:采用按位扫描技术,则从数最右端往左边扫原理:采用按位扫描技术,则从数最右端往左边扫描,直到第一个描,直到第一个1 1的时候,该位和右边各位保持不变,的时候,该位和右边各位保持不变,左边各数值位按位取反。左边各数值位按位取反。计算机组成原理计算机组成原理 3. 3.带符号的阵列乘法器带符号的阵列乘法器 l(1) (1) 对对2 2求补器电路求补器电路 进行求补的方法就是从数的最右端进行求补的方法就是从数的最右端a0开始,由右向左,开始,由右向左,直到直到找出第一个找出第一个“1” ,其以左的每一个输入位都求反,其以左的每一个输入位都求反。 E为为“1

60、” 对对a求补求补 E为为“0” 输出输输出输入入 符号位符号位可作控制信号可作控制信号E数值位数值位play计算机组成原理计算机组成原理 1 0 1 0 0 1 1 01计算机组成原理计算机组成原理 3. 3.带符号的阵列乘法器带符号的阵列乘法器 当乘积为负时,将运算结果变成带符号数(补码)符号位用做使能控制信号符号位异或的结果,用做使能控制 既适用于原码乘法既适用于原码乘法 输入为原码,输入为原码,算前和算后求补不做任何动作。算前和算后求补不做任何动作。 也适用于补码乘法也适用于补码乘法 输入为补码,算输入为补码,算前转换为原码和算后求补。前转换为原码和算后求补。 符号单独处理。符号单独处理。 ABPp2n1p1p0 p2n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论