运算方法与运算器_第1页
运算方法与运算器_第2页
运算方法与运算器_第3页
运算方法与运算器_第4页
运算方法与运算器_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

运算方法与运算器本章首先讲述计算机中数据与文字的表示方法然后讲述定点运算方法、定点运算器的组成,最后讲述浮点运算方法、浮点运算器的组成。重点掌握和了解二进数的表示和数的范围IEEE754标准定点数的加减乘除法运算规格化浮点数的四则运算阵列乘除法器本章主要内容第2页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法第3页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法数据信息控制信息非数值型数据指令信息等

一、数值型数据的表示方法

数值型数据的三个要素:符号,数码,小数点数值型数据第4页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法(一)符号的表示方法

---符号数码化:0---正数;1----负数

---放在最前面

---机器数:符号数码化的数---无符号化,或用ASCII码(二)数码部分的表示由10个阿拉伯的数字构成

1。编码:BCD码,ASCII码第5页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法1。编码:BCD码,ASCII码

0000-----0;0001----1;0010---20011-----3;0100----4;0101---50110-----6;0111----7;1000---81001-----900110000---0。。。。00111001----9转换简单,编码效率低,运算器复杂第6页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法2。采用二进制数表示*日常生活中,我们采用10进制数十进制数:10个符号,逢十进一,权10i*计算机中只有两个符号可用---二进制数1)进位计数制

r进制数:用r个符号的组合表示数码部分,并且每个位置上的权为ri,计数时逢r进位的计数制。第7页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法r进制数的表示方法:(Pn-1Pn-2…Pi…P2P1P0.P-1P-2….P-m)r=Pn-1rn-1+Pn-2rn-2+…Piri…P2r2+P1r1+P0

+P-1r-1+P-2r-2….P-mr-m2)

计算机中常用的进位基数制

可用数码进位基数0~K-10~9ABCDEF01234567010~9逢K进1逢16进1逢8进1逢2进1逢10进1K168210K进制十六进制八进制二进制十进制第8页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法(1)二←→八,十六进制之间的转换*23=8;24=16---分组合并,扩展表示方法例:(100010001)B=421O=111H(2)二、八、十六→十。按权相加法:。逐次乘基/除基相加法3)不同进制数之间的相互转换Pn-1rn-1+Pn-2rn-2+…Piri…P2r2+P1r1+P0+P-1r-1+P-2r-2….P-mr-m=(((((…Pn-1r1+Pn-2)r1+。。。)r1+P0+

(((((…(P-mr-1+P-m-1)r-1…….P-2)r-1+P-1)r-1第9页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法(3)十→二、八、十六减权定位法例(326)10=(101000110)B。除基取余法(整数部分)/乘基取整法(小数部分)例:(326.625)10=(?)B*采用二进制数表示,可以直接使用人们习惯的计数和计算规则。第10页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法(三)小数点处理1。定点处理

1)无符号整数:省略符号位,适应只有正整数的运算

2)带符号定点整数:小数点默认为在末尾,适应只有整数的运算

3)带符号定点小数:小数点默认为在最前面,适应只有小数的运算第11页,共130页,2024年2月25日,星期天三、小数点处理2。浮点处理

---用一组0/1组合表示小数点的位置—阶码。浮点数的定义

N=+/-RE×M;E:阶码;M:尾数;R:基数(2)例:+111.1101=0.1111101×23-111.1101=-0.1111101×23第12页,共130页,2024年2月25日,星期天(四)数的机器码表示无符号数:正整数。带符号数:正数或负数。真值:带“+”、“–”的数值本身。例:+0.01、-1000机器数(机器码):最高位为符号位,“0”表示“+”,“1”表示“–”。原码反码补码2.1数据与文字的表示方法第13页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法原码定点整数X1=+9=+1001B[X1]原=00001001.X2=–9=–1001B[X2]原=10001001.定点小数X1=+0.75=+0.11B[X1]原=0.1100000X2=–0.75=–0.11B[X2]原=1.11000000的表示形式不唯一[+0]原=00000000[–0]原=10000000原码加减法运算复杂。第14页,共130页,2024年2月25日,星期天反码定点整数X1=+9=+1001B[X1]反=00001001.X2=–9=–1001B[X2]反=11110110.定点小数X1=+0.75=+0.11B[X1]反=0.1100000X2=–0.75=–0.11B[X2]反=1.00111110的表示形式不唯一[+0]反=00000000[–0]反=111111112.1数据与文字的表示方法第15页,共130页,2024年2月25日,星期天补码的引入模和同余模:计量器的溢出容量,用M表示。当运算结果超出计量范围,溢出部分舍弃。字长为n+1位时定点整数的模为2n+1

。定点小数的模为2。同余:两整数A、B除以模M,所得的余数相同。可记作A=B(modM)当模为12时

4和16同余,可写作4=16(mod12)

-2和10同余,可写作–2=10(mod12)利用补码可将减法运算转换成为加法运算2.1数据与文字的表示方法n+11000…0n+110.00…04-2=4+10第16页,共130页,2024年2月25日,星期天补码定点整数X1=+9=+1001B[X1]补=00001001.X2=–9=–1001B[X2]补=11110111.定点小数X1=+0.75=+0.11B[X1]补=0.1100000X2=–0.75=–0.11B[X2]补=1.01000000的表示形式唯一[+0]补=[–0]补=000000002.1数据与文字的表示方法第17页,共130页,2024年2月25日,星期天X真值+/-变成0/1数值位不变[X]原XS=0时,数值位不变XS=1时,数值位变反加1[X]补XS=0时,数值位不变XS=1时,数值位变反[X]反2.1数据与文字的表示方法三种不同机器数以及真值之间的转换第18页,共130页,2024年2月25日,星期天原码与补码的直接转换法当X为正数时,[X]补=[X]原=X;当X为负数时,由原码求补码的简便算法:符号位不变,最后面的1及其后各位保持不变,中间各位按位取反。例:[X]原=1.111001

1000[X]补=1.00011010002.1数据与文字的表示方法不变不变取反第19页,共130页,2024年2月25日,星期天三种机器数的比较正数的原、反、补码相等,负数的各自不同原码的符号位是人为定义的,不能参与运算补码的符号位是通过模运算得到的,是数值的一部分,可参与运算。原、反码零的表示形式不唯一,补码零的表示形式唯一。假设字长为8位,则:[+0]原=00000000[-0]原=10000000[+0]反=00000000[-0]反=11111111[+0]补=[-0]补=000000002.1数据与文字的表示方法第20页,共130页,2024年2月25日,星期天机器码的表数范围不同原、反码的表数范围相对于零点对称补码的表数范围,负方向比正方向宽以字长4位(含符号位)的纯整数为例原码、反码表数范围

补码表数范围(多表示一个负数)0+1+2+3+4+5+6+7-1-2-3-4-5-6-7+0-07个正数7个负数0+1+2+3+4+5+6+7-1-2-3-4-5-6-7-87个正数8个负数-82.1数据与文字的表示方法第21页,共130页,2024年2月25日,星期天1000-81000-02.1数据与文字的表示方法真值与三种机器数间的对照第22页,共130页,2024年2月25日,星期天定点数与浮点数定点数约定机器中所有数据的小数点位置是固定不变的。小数点隐含表示。可表示成纯小数或纯整数。定点数X=X0X1X2…Xn表示形式2.1数据与文字的表示方法第23页,共130页,2024年2月25日,星期天定点数的表示范围原码定点数(字长n+1位)纯小数:–(1-2-n)~(1-2-n)例:字长为8位,则最小定点小数:-127/128最大定点小数:127/128纯整数:–(2n-1)~(2n-1)例:字长为8位,则最小定点整数:-127最大定点整数:1271.11111110.111111111111111.01111111.2.1数据与文字的表示方法第24页,共130页,2024年2月25日,星期天定点数的表示范围补码定点数(字长n+1位)纯小数:-1~1-2-n

例:字长为8位,则最小定点小数:-1最大定点小数:127/128纯整数:-2n~2n-1例:字长为8位,则最小定点整数:-128最大定点整数:1271.00000000.111111110000000.01111111.2.1数据与文字的表示方法第25页,共130页,2024年2月25日,星期天阶码,常为纯整数尾数,常为纯小数浮点数小数点的位置不固定,根据需要而浮动。任何一个数N的浮点表示形式为

N=M×2E2.1数据与文字的表示方法0+–0+1-1+–第26页,共130页,2024年2月25日,星期天第n位K个0K个1n个0n个1K个1浮点数的表示范围若阶码数值部分为K位,尾数数值部分为n位,均用补码表示,则2.1数据与文字的表示方法第27页,共130页,2024年2月25日,星期天规格化的浮点数为了充分利用尾数的有效数位,规定尾数值应在0.5~1之间。补码表示时,尾数的最高位应与符号位不同当1/2<=M<1时,应有0.1…的形式当–1<=M<-1/2时,应有1.0…的形式为什么是<,而不是<=?为什么是<=?2.1数据与文字的表示方法补码的表示范围比原码宽,可以表示-1,[-1]补=1.0000000,是规格化的浮点数[-1/2]原=1.1000000[-1/2]补=1.1000000不是规格化的浮点数第28页,共130页,2024年2月25日,星期天浮点数的典型值:阶码和尾数均用补码表示浮点数代码真值阶码尾数最大正数最小正数规格化的最小正数绝对值最大负数绝对值最小负数规格化的绝对值最小负数01…110…010…001…110…010…00.11…110.00…010.10…001.00…001.11…111.01…112.1数据与文字的表示方法第29页,共130页,2024年2月25日,星期天[X1]移=27+1101101=10000000

+1101101=11101101[X1]补=01101101[X2]移=27+(-1101101)=10000000

-1101101=00010011

[X2]补=10010011移码:在真值X的基础上加一个常数,相当于X在数轴上向正方向偏移了若干单位。[X]移码=偏置值+X标准偏置值:字长n+1位时,偏置值为2n。例:字长8位,若偏置值为27,X1=+1101101,X2=-1101101,求移码。2.1数据与文字的表示方法P26第30页,共130页,2024年2月25日,星期天真值X(十进制)真值X(二进制)[X]补[X]移-128-127……-101127-10000000-1111111……-00000010000000000000111111111000000010000001……111111110000000000000001011111110000000000000001……011111111000000010000001111111112.1数据与文字的表示方法移码、补码和真值之间的关系设字长8位,偏置值为标准偏置值——27第31页,共130页,2024年2月25日,星期天移码的特点(字长8位,偏置值为27)移码最高位为0表示负数,最高位为1表示正数。移码直观反映真值的大小。全0时,所对应的真值最小;全1时,所对应的真值最大;有利于两个浮点数进行阶码的大小比较0的移码表示形式唯一[+0]移=[-0]移=10000000移码将真值映射到正数域,可视为无符号数同一真值的补码和移码只相差符号位。2.1数据与文字的表示方法第32页,共130页,2024年2月25日,星期天IEEE754标准的浮点数:应用于80X86微机182332位短浮点数数符阶码尾数64位长浮点数11152数符阶码尾数80位临时浮点数数符阶码尾数1156432位短浮点数1.尾数隐含了最高位1(位权20),实际为24位,尾数采用原码表示。2.阶码采用偏置值为127的移码表示。2.1数据与文字的表示方法P20第33页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法IEEE754标准基数R=2,基数固定,采用隐含方式来表示它。32位的浮点数:S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。M是尾数,23位,在低位部分,采用纯小数表示E是阶码,8位,采用移码表示。移码比较大小方便。规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。第34页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数x的真值为:

x=(-1)S×(1.M)×2E-1023

e=E-1023一个规格化的32位浮点数x的真值表示为

x=(-1)S×(1.M)×2E-127

e=E-127第35页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,有正零和负零之分。真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+∞和-∞之分。这样在32位浮点数表示中,要除去E用全0和全1(25510)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111)。对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-38~1038(以10的幂表示)。浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。

第36页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法浮点数表示范围如下图所示第37页,共130页,2024年2月25日,星期天(2)计算出阶码真值e=移码-偏置值127

e=10000010-1111111=011=(3)10(3)写出尾数(包括隐含的最高位1)1.M=1.011011(4)写出此数的浮点记数形式X=(-1)s×1.M×2e

=+1.011011*23=1011.011(5)转换成十进制数,并加上符号位

11.375例1:若短浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。

(1)将十六进制数转换成二进制数,写成短浮点数格式2.1数据与文字的表示方法01101100000000000000000100000100s阶码(8位)尾数(23位)第38页,共130页,2024年2月25日,星期天01000001101001001100000000000000正数阶码的移码(8位)隐含了最高数位1的尾数的原码(23位)例2:将(20.59375)10转换成短浮点数格式

(1)把十进制数转换为二进制数

(20.59375)10=(10100.10011)2(2)写成浮点记数形式,尾数保留最高位1,不计入。

10100.10011=1.010010011*24

(3)计算出阶码的移码

1111111+100=10000011

(4)以短浮点数格式存储该数41A4C000H2.1数据与文字的表示方法第39页,共130页,2024年2月25日,星期天二、非数值数据表示通常是指字符、字符串、图形符号和汉字等各种数据,它们通常不用来表示数值的大小,一般情况下不对它们进行算术运算。字符和字符串表示ASCⅡ(美国标准信息交换码)7位基本ASCⅡ码(国际通用)可表示128种字符8位扩充ASCⅡ码(可重新定义)可表示256种字符ASCⅡ码可分为:显示字符控制字符“0”为48“A”为65return、backspace键的编码分别为13、82.1数据与文字的表示方法P27第40页,共130页,2024年2月25日,星期天2.1数据与文字的表示方法第41页,共130页,2024年2月25日,星期天256列256行1024个1024个1024行1024列统一代码(Unicode)

能够表示6800种语言中任意一种语言里使用的所有符号。UCS-2用16位数来表示可表示65536个符号UCS-4用32位数来表示每个16位数都来自于对UCS-2的进一步扩展可表示220个字符2.1数据与文字的表示方法第42页,共130页,2024年2月25日,星期天汉字编码汉字是一种象形文字,无法直接用标准西文键盘输入,必须经过转换间接输入;汉字的字数也较多,不能用单字节的ASCⅡ(256个字符)来表示目前采用两个字节(可以表示64K字符)的汉字编码方案。汉字的应用范围较广(东南亚国家),但编码字符集不相同,中国大陆常用GB/GBK码,台湾BIG5。2.1数据与文字的表示方法第43页,共130页,2024年2月25日,星期天外部(输入)码机内码字形(输出)码汉字信息其它系统或设备汉字信息键盘管理程序汉字处理程序交换码(国标码)汉字处理过程2.1数据与文字的表示方法第44页,共130页,2024年2月25日,星期天外部码也叫汉字输入编码,主要是从键盘(语音、手写、光电)输入计算机中的代表汉字的编码。汉字输入方案有数百种,基本上是直接利用西文标准键盘进行汉字输入,每一种汉字输入法都各自提供相应的键盘码与汉字机内码(码表)。编码方案可分四类:数码(如电报码,区位码,国标码等)音码(如全拼码,简拼码,双拼码等)形码(如五笔字型,大众码,仓吉码等)音形码(如自然码,首尾码等)2.1数据与文字的表示方法第45页,共130页,2024年2月25日,星期天交换码用于计算机与其他系统或设备之间进行汉字代码信息交换的标准汉字代码目前最常使用的是国标码2000年的GB18030-2000每个汉字(图形符号)用两个字节表示,每个字节只用低7位,即最高位为0的二进制码汉字分为两级:一级为使用频度高的常用汉字二级为次常用的汉字2.1数据与文字的表示方法第46页,共130页,2024年2月25日,星期天内部码

也称汉字内码或机内码,是计算机对汉字进行存储、运算、传码的实际代码。一般用两个字节表示一个汉字内码,每个字节最高位为1。还有少数三字节、四字节等内部码。最多能表示128×128=16384个汉字和图形符号机内码目前虽未完全统一,但已趋于标准化。内部码与国标码的对应关系:内码=国标码+8080国标码每个字节最高位为1→内部码。例如:国标码3B7A→0011101101111010

机内码BBFA→10111011111110102.1数据与文字的表示方法第47页,共130页,2024年2月25日,星期天字形码也称为字模码,用点阵表示的汉字字形代码,是汉字的输出形式。简易型16×16提高型24×24、32×32等16×16点阵,每个汉字占32字节。每行16点,每点0/1,16位,2个字节共16行16×2=32字节2.1数据与文字的表示方法第48页,共130页,2024年2月25日,星期天各种输入码交换码(国标码)内码字形码显示汉字打印汉字2.1数据与文字的表示方法汉字代码交换流程第49页,共130页,2024年2月25日,星期天奇偶校验码常用于存储器读、写检查或ASCII字符传送过程中的检查。实现方法:由有效信息位和1位奇偶校验位组成。奇校验保证整个校验码中有奇数个1偶校验保证整个校验码中有偶数个12.1数据与文字的表示方法第50页,共130页,2024年2月25日,星期天有效信息偶校验码奇校验码10101010101010100101010101010101000101010010101010000000000000000000000000000101111111011111111011111110111111111111111101111111112.1数据与文字的表示方法简单奇偶校验仅实现横向的奇、偶校验。可检测出一位(或奇数位)错误,但不能确定出错位置。例7:假定信息位8位,奇、偶校验位在末尾。第51页,共130页,2024年2月25日,星期天交叉奇偶校验横向:每一个字节有一个奇、偶校验位纵向:全部字节同一位也设置奇、偶校验位可以发现两位同时出错的情况。例:纵、横均约定为偶校验2.1数据与文字的表示方法有效信息横向校验第一字节101010100第二字节010101001第三字节000000000第四字节011111111第五字节111111110纵向校验0111111011第52页,共130页,2024年2月25日,星期天补码加减法运算公式(讨论纯小数,纯整数类似)[X+Y]补=[X]补+[Y]补(mod2)[X-Y]补=[X]补+[-Y]补(mod2)可证,[-Y]补=-[Y]补(mod2)所以,[X-Y]补=[X]补-[Y]补(mod2)[-Y]补=¬[Y]补+2-n

([Y]补连同符号位变反,末位加1)简便方法:[Y]补最右边的1及其后各位保持不变,连同符号位在内一起变反。例10:已知X1=-0.1110,X2=+0.1101,

求:[X1]补,[-X1]补,[X2]补,[-X2]补解:[X1]原=1.1110[X2]原=0.1101[X1]补=1.0010[X2]补=0.1101[-X1]补=0.1110[-X2]补=1.00112.2定点加减运算第53页,共130页,2024年2月25日,星期天例9:x=+0.1011,y=-0.0101,利用补码加法计算x+y=?解:

[x]补=0.1011,[y]补=1.1011[x]补=0.1011

+[y]补=1.1011[x+y]补=10.0110x+y=+0.01102.2定点加减运算P32自动舍弃+0.6875-0.3125+0.375第54页,共130页,2024年2月25日,星期天例11:x=+0.1101,y=+0.0110,利用补码减法计算x-y=?解:[x]补=0.1101,[y]补=0.0110,[-y]补=1.1010[x]补=0.1101

+[-y]补=1.1010[x-y]补=10.0111x-y=0.0111符号位参与运算,超出模的进位自动舍弃。自动舍弃后,结果正确吗?如何判断?2.2定点加减运算P33自动舍弃+0.8125+0.375+0.4375第55页,共130页,2024年2月25日,星期天补码的溢出在选定了运算字长和数的表示方法之后,计算装置所能表示的数的范围是一定的,超过此范围就称为溢出。例:运算字长数的表示方法定点整数的范围

n=8原码-127——+127n=8反码-127——+127n=8补码-128——+1272.2定点加减运算第56页,共130页,2024年2月25日,星期天例12:X=0.1011,Y=0.1001,[X+Y]补=?[X]补

0.1011

+[Y]补

0.1001

[X+Y]补1.0100两正数相加,结果为负,上溢。溢出检测方法方法一:常识判别法补码加法运算时,仅在两数同号时才可能产生溢出。

OVER=XsYsZs+XsYsZs=1两正数相加,结果为负,产生上溢;两负数相加,结果为正,产生下溢。2.2定点加减运算第57页,共130页,2024年2月25日,星期天方法二:双高位判别法(单符号位补码)考察两补码相加时符号位产生的进位Cf和最高数值位产生的进位C0。

OVER=Cf⊕C0=1

例14:X=+0.1100,Y=+0.1000,[X+Y]补=?[X]补0.1100

+[Y]补

0.1000

[X+Y]补

1.0100

Cf=0C0=1Cf⊕C0=1有上溢出产生2.2定点加减运算第58页,共130页,2024年2月25日,星期天方法三:变形补码法(双符号位补码)采用双符号位补码(模4补码)00-正数11-负数01-上溢10-下溢例15:X=-0.1100,Y=-0.1000,利用变形补码计算[X+Y]补

[x]变补110100

+[y]变补111000[x+y]变补

101100下溢

练习:P69-6(1)X=0.11011,Y=-0.11111,用变形补码计算X-Y,并指出结果是否溢出?2.2定点加减运算第59页,共130页,2024年2月25日,星期天基本的二进制加减法器加法单元全加器:有三个输入端,是考虑低位向本位进位的加法器。FAAiBiCi-1CiSiSi=Ai⊕Bi⊕Ci-1Ci=AiBi+(Ai

⊕Bi)Ci-1本位进位传送进位3T3TTTT6T5T第60页,共130页,2024年2月25日,星期天全加器真值表AiBiCi-1SiCi0000111100110011010101010110100100010111本位进位传送进位基本的二进制加减法器第61页,共130页,2024年2月25日,星期天加法器串行加法器:只有一位全加器的加法器,它每次只能进行一位二进制数运算,整个数据需要一位一位地串行送入全加器,分时进行运算。AiBi本位和Ci→→QCCPD移位寄存器A移位寄存器B进位触发器全加器CP基本的二进制加减法器第62页,共130页,2024年2月25日,星期天本位进位,记为Gi传送进位,记为PiCi-1基本的二进制加减法器并行加法器:由多位全加器组成的加法器,各位全加器之间传递进位信号的线路组成进位链。根据进位链设置方法的不同,分为串行进位并行进位影响并行加法器速度的关键因素进位信号产生和传递的时间。进位信号的基本逻辑Ci=AiBi+(Ai⊕Bi)Ci-1第63页,共130页,2024年2月25日,星期天FAAnBnCn-1CnSn…FAA2B2C2S2C0C1FAA1B1S1Cn=Gn+PnCn-1,…,C2=G2+P2C1,

C1=G1+P1C0基本的二进制加减法器串行进位:也称为行波进位各全加器由进位信号线串接在一起每一位的进位直接依赖于前一级的进位。进位是串行的,结构简单速度慢。假设一级进位产生时间2T,n级串行进位加法器的总延迟时间约为2nT。第64页,共130页,2024年2月25日,星期天基本的二进制加减法器串行进位加减法器逻辑结构图P35第65页,共130页,2024年2月25日,星期天C1=G1+P1C0C2=G2+P2

(G1+P1C0)=G2+P2G1+P2P1C0

C3=G3+P3

(G2+P2

(G1+P1C0

))=G3+P3G2+P3P2G1+P3P2P1C0

…Cn=Gn+PnGn-1+…+(Pn…P1)C0

基本的二进制加减法器并行进位:先行进位、超前进位根据最高位进位,预先推算出各高位的进位关系使串行进位变成并行进位,从而实现快速加法运算并行进位的逻辑表示第66页,共130页,2024年2月25日,星期天十进制加法器对8421BCD码直接进行加法运算在二进制加法器的基础上,加上适当的“校正”逻辑来实现。n位行波进位BCD码加法器由n级BCD码加法单元级联而成。每一级完成4位BCD数的加法运算。基本的二进制加减法器结果≥10,加6调整。(10)10=(1010)2→(10000)BCD+6P36第67页,共130页,2024年2月25日,星期天一位BCD码加法单元第一次近似求值时,完成4位二进数加法得到的暂时和大于10或向高位产生进位时,进行加6调整。基本的二进制加减法器第68页,共130页,2024年2月25日,星期天计算机实现乘除法的方法纯软件不需要专门的硬件电路,无乘除运算指令,只能用子程序来实现乘除运算。低档微机。硬件扩充——串行乘法器在原有运算器的基础上增加一些硬件设备,使乘除运算变换成累加和移位操作,设有专门的乘除指令。适合中、小、微型机。专用硬件——并行乘法器设置专用的乘除法器,机器中设有相应的乘除指令,运算速度快,电路复杂。适合中、大型机。2.3定点乘法运算第69页,共130页,2024年2月25日,星期天补码的移位运算补码左移一位相当于乘以2,低位补0。补码右移一位相当于除以2,高位补符号位

例:0.01左移0.10,右移0.001

1.11左移1.10,右移1.111+0.5+0.25+0.125-0.5-0.25-0.1252.3定点乘法运算第70页,共130页,2024年2月25日,星期天人工算法与机器算法的同异性人工算法:乘积P=|X|·|Y|符号PS=XS⊕YS

引例:X=0.1101,Y=0.1011,求X*Y。

0.1101

×0.1011110111010000+11010.10001111因为PS=XS⊕YS=0⊕0=0所以X×Y=0.10001111为适合计算机运算需要改进:1.一次进行n个数相加→一次进行2个数相加;2.小数点移动→小数点固定;3.需要2n个加法器→只设n个加法器;2.3定点乘法运算第71页,共130页,2024年2月25日,星期天又称为比较法、Booth法参加运算的数用补码表示,符号位参加运算被乘数X与部分积取双符号位乘数Y取单符号位,末位增设附加位Yn+1,初值0Yn与Yn+1构成了各步运算的判断位串行乘法——补码一位乘

YnYn+1

操作

00原部分积→1

01原部分积+[X]补,→1

10原部分积+[-X]补,→1

11原部分积→1推导进行n+1步操作,但第n+1步不移位按补码右移规则移位补充第72页,共130页,2024年2月25日,星期天BOOTH法的推导设[Y]补=Y0.Y1Y2…Yn,其中Y0是符号位,可以证明

[X·Y]补=[X]补·{0.Y1Y2…Yn}-[X]补·Y0Y0=0,正数,[X·Y]补=[X]补·{0.Y1Y2…Yn}不需校正

Y0=1,负数,[X·Y]补=[X]补·{0.Y1Y2…Yn}-[X]补校正[X·Y]补=[X]补·{0.Y1Y2…Yn}-[X]补·Y0

=[X]补·[2-1Y1+2-2Y2+…+2-(n-1)Yn-1+2-nYn]-[X]补·Y0

=[X]补·[-Y0+2-1Y1+2-2Y2+…+2-(n-1)Yn-1+2-nYn]又因为,2-1Y1=Y1-2-1Y1,2-2Y2=2-1Y2-2-2Y2…,可得[X]补·[-Y0+Y1-2-1Y1+2-1Y2-2-2Y2+…+2-(n-2)Yn-1-2-(n-1)Yn-1+2-(n-1)Yn-2-nYn]=[X]补·[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+…2-(n-1)(Yn-Yn-1)+2-n(0-Yn)]第73页,共130页,2024年2月25日,星期天=[X]补·[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+…2-(n-1)(Yn-Yn-1)+2-n(0-Yn)]设Yn+1=0=[X]补·[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+…2-(n-1)(Yn-Yn-1)+2-n(Yn+1-Yn)]=[X]补·[(Y1-Y0)+2-1((Y2-Y1)+2-1((Y3-Y2)+…2-1(Yn+1-Yn)…)]=[X]补·(Y1-Y0)+2-1([X]补(Y2-Y1)+2-1([X]补(Y3-Y2)+…2-1([X]补(Yn+1-Yn)…))=[X]补·(Y1-Y0)+2-1([X]补(Y2-Y1)+2-1([X]补(Y3-Y2)+…2-1([X]补(Yn+1-Yn+0)…))设[P0]补=0[P1]补=2-1([X]补(Yn+1-Yn)

+[P0]补)[P2]补=2-1([X]补(Yn-Yn-1)

+[P1]补)…[Pn]补=2-1([X]补(Y2-Y1

)

+[Pn-1]补)[Pn+1]补=[X·Y]补=

[X]补(Y1-Y0)+[Pn]补YnYn+1操作00部分积→101部分积+[X]补,→110部分积+[-X]补,→111部分积→1返回第74页,共130页,2024年2月25日,星期天补码一位乘法运算示例例:X=-0.1101Y=0.1011用补码一位乘法计算X*Y=?解:[X]补=11.0011[-X]补=00.1101[Y]补=0.1011AC附加位说明00.00000.10110YnYn+1=10,+[-X]补+00.110100.1101→100.011010.1011YnYn+1=11,→100.0011010.10

1YnYn+1=01,+[X]补+11.0011

11.0110→111.10110010.1

0

YnYn+1=10,+[-X]补+00.1101

00.1000→100.010000010.

1

YnYn+1=01,+[X]补+11.0011

最后一步不移位11.01110001所以,X×Y=-0.10001111第75页,共130页,2024年2月25日,星期天补码一位乘法运算器框图反变量原变量右移A寄存器加法器与或门B寄存器Yn+1C寄存器Yn部分积被乘数乘数

附加位计数器+1加法01减法1000或11+1第76页,共130页,2024年2月25日,星期天阵列乘法器专用硬件——并行乘法器由于乘法运算量大,采用高速乘法部件可以提高速度和效率。随着大规模集成电路的问世,可由全加器阵列,构成流水式阵列乘法器,实现多个部分积并行相加,称为并行乘法器。运算速度快,电路复杂。P38第77页,共130页,2024年2月25日,星期天不带符号的阵列乘法器设有两个不带符号的二进制整数A=am-1…a1a0B=bn-1…b1b0它们的数值分别为a和b,即设P=A*B=pm+n-1…p1p0

,即第78页,共130页,2024年2月25日,星期天不带符号的阵列乘法器这个过程与手工计算乘法过程非常类似m×n个aibj,可以用m×n个与门并行地产生m×n个aibj相加,可用(m-1)×n个全加器实现第79页,共130页,2024年2月25日,星期天不带符号阵列乘法器逻辑框图第80页,共130页,2024年2月25日,星期天FACiAiBiSiCi+1来自低位的进位加数加数向高位产生的进位和全加器逻辑符号第81页,共130页,2024年2月25日,星期天例如:当m=n=5时a0b0FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAp8p7p6p5p4p3p2p1p0p9a1b0a2b0a3b0a4b0a0b1a1b1a2b1a3b1a4b1a0b2a1b2a2b2a3b2a4b2a0b3a1b3a2b3a3b3a4b3a0b4a1b4a2b4a3b4a4b400000不带符号的阵列乘法器逻辑电路图Ta:与门时间延迟Tf:全加器进位时间延迟总时间延迟=Ta+(n-1)×6T+(n-1)×Tf=(8n-6)T第82页,共130页,2024年2月25日,星期天不带符号的阵列乘法器[例16]已知两个不带符号的二进制整数A=11011,B

=10101,求每一部分乘积项aibj的值与p9p8……p0的值[解]a4b0=1

a3b0=1

a2b0=0a1b0=1

a0b0=1a4b1=0

a3b1=0

a2b1=0

a1b1=0

a0b1=0a4b2=1

a3b2=1

a2b2=0

a1b2=1

a0b2=0a4b3=0

a3b3=0

a2b3=0

a1b3=0

a0b3=0a4b4=1

a3b4=1

a2b4=0a1b4=1

a0b4=1第83页,共130页,2024年2月25日,星期天10000111010100FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA11011000001101100000110110110101P=p9p8p7p6p5p4p3p2p1p0=1000110111(56710)0000001100010011011010011

串行进位链的并行加法器不带符号阵列乘法器工作过程演示A*B=11011*10101第84页,共130页,2024年2月25日,星期天带符号的阵列乘法器对2求补器:在带符号数与无符号数间进行转换求补方法:设A=an…a1a0是n+1位带符号数,负数:E=1,最右边的“1”及其后各位保持不变,其余各位按位取反。1010→0110正数:E=0,输出和输入相等。可利用符号位做为控制信号。第85页,共130页,2024年2月25日,星期天带符号阵列乘法器逻辑框图将A和B变成正整数当A和B异号时,把运算结果变成带符号的数第86页,共130页,2024年2月25日,星期天带符号的阵列乘法器[例17]

设X=+15,Y=-13,用带求补器的原码阵列乘法器求出乘积X×Y=?[解]设最高位为符号位,则输入数据为

[X]原=01111

[Y]原=11101符号位单独考虑,算前求补级后

|X|=1111,|Y|=1101算后经求补级输出并加上乘积符号位1,则原码乘积值为111000011。真值是(-11000011)2=(-195)10第87页,共130页,2024年2月25日,星期天手工除法示例假定:X=0.1011,Y=0.1101,则

0.11010.10110

X小于Y,商00.2.4定点除法运算0.10.110.1100.11010.01101

Y右移,够减,商1,相减0.010010

得R0

0.001101

Y再右移,够减,商1,相减0.0001010

得R1

0.0001101

Y再右移,不够减,商00.00000111得R3

商符qf=Xf⊕Yf=0⊕0=0X÷Y=0.1101+0.0111*2-4/0.11010.00001101

Y再右移,够减,商1,相减0.00010100

得R2

第88页,共130页,2024年2月25日,星期天计算机实现除法的改进定点机,商应为纯小数,否则溢出。所以,只有在被除数小于除数时(X-Y<0),运算才能开始。将除数右移改为余数左移。中间过程判断是否够减,直接进行相减R-YR>0,商1,余数左移,进行下一步R<0,商0恢复余数法+Y(恢复余数),余数左移,进行下一步不恢复余数法(加减交替法)∵Ri+1=2(Ri+Y)-Y=2Ri+Y∴余数左移,下一步加+Y串行除法第89页,共130页,2024年2月25日,星期天串行除法——补码不恢复余数法涉及到的问题及解决第一步,判断是否开始,不是简单地相减:

——补码表示时:X与Y同号,相减

X与Y异号,相加中间过程中,不同情况不同处理:——R与Y同号,商1,1←,+[-Y]补

R与Y异号,商0,1←,+[Y]补商的校正

——末尾恒置1法补充第90页,共130页,2024年2月25日,星期天补码不恢复余数法示例例:X=0.1000Y=-0.1010用补码不恢复余数法计算X/Y解:A:[X]补=00.1000B:[Y]补=11.0110,[-Y]补=00.1010

C:商,初值为0AC操作00.1000X与Y异号

+11.0110+[Y]补11.11101R与Y同号,商111.1100

1.1←

+00.1010+[-Y]补

00.01101.0

R与Y异号,商000.11001.01←

+11.0110+[Y]补

00.00101.00

R与Y异号,商000.01001.001←第91页,共130页,2024年2月25日,星期天补码不恢复余数法示例例:X=0.1000Y=-0.1010用补码不恢复余数法计算X/Y解:A:[X]补=00.1000B:[Y]补=11.0110,[-Y]补=00.1010

C:商,初值为0AC操作

00.01001.001←

+11.0110+[Y]补

11.10101.001R与Y同号,商111.0100

1.0011←+00.101011.11101.0011

末位恒置1

[X/Y]补=1.0011+1.1110*2-4/1.0110

[X/Y]=-0.1101+0.0010*2-4/0.1010第92页,共130页,2024年2月25日,星期天阵列除法器采用大规模集成电路制造的并行运算部件。与串行除法器相比,运算速度高。形式多样不恢复余数阵列除法器补码阵列除法器基本的单元电路——可控加/减法单元(CAS)既可完成减法操作,又可完成加法操作适用于除法操作过程中的加减交替。第93页,共130页,2024年2月25日,星期天可控加/减法(CAS)单元CASAiBiPPCiCi+1SiBi四个输入端Ai、Bi、CiP:控制端输入四个输出端Si、Ci+1Bi:除数右移P:控制端输出P=0:CAS作加法Si=Ai⊕Bi⊕CiCi+1=AiBi+(Ai

⊕Bi)CiP=1:CAS作减法Si=Ai⊕Bi⊕Ci(

Bi=Bi⊕1)Ci+1=AiCi+(Ai

⊕Ci)Bi第94页,共130页,2024年2月25日,星期天不恢复余数的阵列除法器不恢复余数的除法——加减交替法当前行应执行加法还是减法,取决于上一行余数的符号与被除数的符号是否一致:余数与被除数异号(余数为负),商“0”,除数右移,与原余数相加,得新余数;余数与被除数同号(余数为正),商“1”,除数右移,与原余数相减,得新余数。只介绍被除数、除数均为正数的情况。第95页,共130页,2024年2月25日,星期天阵列除法器逻辑结构图被除数

x=0.x1x2x3x4x5x6

(双倍长)除数y=0.y1y2y3(X<Y)商数q=0.q1q2q3余数r=0.00r3r4r5r6字长n+1=4第一行做减法(P=1),由于X<Y,余数<0,商的个位q0上0。第二行做加法,余数加上右移一位后的Y。由余数的正负决定第二位商q1是1或0。由q1控制第三行做加法或减法,依次类推。第96页,共130页,2024年2月25日,星期天[例20]x=0.101001,y=0.111,求x÷y。[解:]

[-y]补=1.001

被除数x

0.101001被除数x

减y

温馨提示

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

评论

0/150

提交评论