运算方法与运算器.ppt

上传人:牧羊曲112 文档编号:5849746 上传时间:2023-08-27 格式:PPT 页数:131 大小:2.11MB
返回 下载 相关 举报
运算方法与运算器.ppt_第1页
第1页 / 共131页
运算方法与运算器.ppt_第2页
第2页 / 共131页
运算方法与运算器.ppt_第3页
第3页 / 共131页
运算方法与运算器.ppt_第4页
第4页 / 共131页
运算方法与运算器.ppt_第5页
第5页 / 共131页
点击查看更多>>
资源描述

《运算方法与运算器.ppt》由会员分享,可在线阅读,更多相关《运算方法与运算器.ppt(131页珍藏版)》请在三一办公上搜索。

1、第二章 运算方法和运算器,计算机组成原理,本章首先讲述计算机中数据与文字的表示方法然后讲述定点运算方法、定点运算器的组成,最后讲述浮点运算方法、浮点运算器的组成。重点掌握和了解 二进数的表数范围定点数的乘除法运算规格化浮点数的四则运算阵列乘除法器,本 章 主 要 内 容,2.1数据与文字的表示方法,计算机中使用的数据可分成两大类:1、符号数据:非数字符号的表示(ASCII、汉字、图形等)2、数值数据:数字数据的表示方式(定点、浮点),2.1数据与文字的表示方法,计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利

2、于信息处理(速度、方便)计算机在数据、文字的表示方式时,应该考虑一下几个因素:表示的数据类型(符号、小数点、数值)数值的范围数值精度存储、处理、传送的硬件代价,数据格式,三、计算机常用的数据表示格式有两种:定点表示:小数点位置固定浮点表示:小数点位置不固定,数据格式,定点表示法所有数据的小数点位置固定不变理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):纯小数纯整数定点数表示:带符号数不带符号数,1、定点纯小数,x0 x1 x2 x3 xn-1 xn表示数的范围是 0|12n(最小数、最大数、最接近0的正数、最接近0的负数),符号,量值,小数点固定于符号

3、位之后,不需专门存放位置,数据格式,数据格式,2、纯小数的表示范围,数据格式,3、定点纯整数 x0 x1 x2 x3 xn-1 xn表示数的范围是 0|2n1最小数、最大数、最接近0的正数、最接近0的负数呢,符号,量值,小数点固定于最后一位之后,不需专门存放位置,数据格式,定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限;定点表示的精度有限机器中,常用定点纯整数表示;如果用定点表示,则如何表示实数(包括小数和整数)呢?,引入浮点数,数据格式,五、浮点表示:小数点位置随阶码不同而浮动1、格式:N=RE.M2、机器中表示,指数E,基数R,取固定的值,比如10,2等,尾数M,2.1 数

4、据与文字的表示方法,K(基数):最大进位数。K i:位权。m(系数):每个数位上的值,取值范围0k-1,【例】343.43=310241013100410-1310-2,进位计数制按进位的方法进行计数,简称进位制。数字累计到最大计数时,数码长度就增加一位或数码高位数值增 1。任意进制数的表示,2.1 数据与文字的表示方法,常用数制,小数点右移(数据左移)n 位相当于乘以K n(增加K n 倍)小数点左移(数据右移)n 位相当于除以K n(为K n 分之一),数制小结:十进制数与二进制数之间的转换需计算,不直观。十二:整数部分除基取余,小数部分乘基取整。二十:按权展开。八、十六进制数与二进制数之

5、间转换方便。二八、十六:小数点向左向右3位或4位一组,合成一位。八、十六二:每一位展开成3位或4位二进制数不便于书写、阅读。十六进制数书写、阅读相对方便。,2.1 数据与文字的表示方法,十进制数的编码BCD码 Binary-Code Decimal 用四位二进制代码来表示一位十进制数。8421码:标准BCD码(NBCD-sometimes called Natural Binary-Coded Decimal)从高到低各位权值8、4、2、1。1111 1111B=255D=(0010 0101 0101)BCD2421码:各位权值2、4、2、1。前5位编码与8421码一致后5位编码与前5位编码

6、是对9的自补码对9的自补码:某数的2421码,自身按位取反,得到该数对9补数的2421码。,2.1 数据与文字的表示方法,2.1 数据与文字的表示方法,常见的BCD码,数的机器码表示无符号数:正整数。带符号数:正数或负数。真值:带“+”、“”的数值本身。例:+0.01、-1000机器数(机器码):最高位为符号位,“0”表示“+”,“1”表示“”。原码反码补码,2.1 数据与文字的表示方法,2.1 数据与文字的表示方法,原码定点整数X1=+9=+1001B X1原=0000 1001.X2=9=1001B X2原=1000 1001.定点小数X1=+0.75=+0.11B X1原=0.11000

7、00X2=0.75=0.11B X2原=1.11000000的表示形式不唯一+0原=00000000 0原=10000000原码加减法运算复杂。,反码定点整数X1=+9=+1001B X1反=0000 1001.X2=9=1001B X2反=1111 0110.定点小数X1=+0.75=+0.11B X1反=0.1100000X2=0.75=0.11B X2反=1.00111110的表示形式不唯一+0反=00000000 0反=11111111,2.1 数据与文字的表示方法,补码的引入模和同余模:计量器的溢出容量,用M表示。当运算结果超出计量范围,溢出部分舍弃。字长为n+1位时定点整数的模为2

8、n+1。定点小数的模为2。同余:两整数A、B除以模M,所得的余数相同。可记作A=B(mod M)当模为12时 4和16同余,可写作 4=16(mod 12)-2和10同余,可写作 2=10(mod 12)利用补码可将减法运算转换成为加法运算,2.1 数据与文字的表示方法,4-2=4+10,补码定点整数X1=+9=+1001B X1补=0000 1001.X2=9=1001B X2补=1111 0111.定点小数X1=+0.75=+0.11B X1补=0.1100000X2=0.75=0.11B X2补=1.01000000的表示形式唯一+0补=0补=00000000,2.1 数据与文字的表示方

9、法,X真值,+/-变成 0/1数值位不变,X原,XS=0时,数值位不变XS=1时,数值位变反加1,X补,XS=0时,数值位不变XS=1时,数值位变反,X反,2.1 数据与文字的表示方法,三种不同机器数以及真值之间的转换,原码与补码的直接转换法当X为正数时,X补=X原=X;当X为负数时,由原码求补码的简便算法:符号位不变,最后面的1及其后各位保持不变,中间各位按位取反。例:X原=1.111001 1000 X补=1.000110 1000,2.1 数据与文字的表示方法,取反,三种机器数的比较正数的原、反、补码相等,负数的各自不同原码的符号位是人为定义的,不能参与运算补码的符号位是通过模运算得到的

10、,是数值的一部分,可参与运算。原、反码零的表示形式不唯一,补码零的表示形式唯一。假设字长为8位,则:+0原=00000000-0原=10000000+0反=00000000-0反=11111111+0补=-0补=00000000,2.1 数据与文字的表示方法,机器码的表数范围不同原、反码的表数范围相对于零点对称补码的表数范围,负方向比正方向宽以字长4位(含符号位)的纯整数为例,原码、反码表数范围,补码表数范围(多表示一个负数),2.1 数据与文字的表示方法,1000,-8,1000,-0,2.1 数据与文字的表示方法,真值与三种机器数间的对照,定点数的表示范围原码定点数(字长n+1位)纯小数:

11、(12-n)(1-2-n)例:字长为8位,则最小定点小数:-127/128 最大定点小数:127/128纯整数:(2n 1)(2n-1)例:字长为8位,则最小定点整数:-127 最大定点整数:127,1.1111111,0.1111111,11111111.,01111111.,2.1 数据与文字的表示方法,定点数的表示范围补码定点数(字长n+1位)纯小数:112-n 例:字长为8位,则最小定点小数:1 最大定点小数:127/128纯整数:2n 2n1例:字长为8位,则最小定点整数:128最大定点整数:127,1.0000000,0.1111111,10000000.,01111111.,2.

12、1 数据与文字的表示方法,阶码,常为纯整数,尾数,常为纯小数,浮点数小数点的位置不固定,根据需要而浮动。任何一个数N的浮点表示形式为 N=M2E,2.1 数据与文字的表示方法,浮点数的表示范围若阶码数值部分为K位,尾数数值部分为n位,均用补码表示,则,2.1 数据与文字的表示方法,规格化的浮点数为了充分利用尾数的有效数位,规定尾数值应在0.51之间。补码表示时,尾数的最高位应与符号位不同当 1/2=M 1 时,应有0.1 的形式当 1=M-1/2 时,应有1.0 的形式,为什么是,而不是=?,为什么是=?,2.1 数据与文字的表示方法,补码的表示范围比原码宽,可以表示-1,-1补=1.0000

13、000,是规格化的浮点数,-1/2原=1.1000000-1/2补=1.1000000不是规格化的浮点数,浮点数的典型值:阶码和尾数均用补码表示,2.1 数据与文字的表示方法,X1移=27+1101101=10000000+1101101=11101101X1补=01101101,X2移=27+(-1101101)=10000000-1101101=00010011 X2补=10010011,移码:在真值X的基础上加一个常数,相当于X在数轴上向正方向偏移了若干单位。X移码=偏置值+X标准偏置值:字长n+1位时,偏置值为2n。例:字长8位,若偏置值为27,X1=+1101101,X2=-1101

14、101,求移码。,2.1 数据与文字的表示方法,2.1 数据与文字的表示方法,移码、补码和真值之间的关系设字长8位,偏置值为标准偏置值27,移码的特点(字长8位,偏置值为27)移码最高位为0表示负数,最高位为1表示正数。移码直观反映真值的大小。全0时,所对应的真值最小;全1时,所对应的真值最大;有利于两个浮点数进行阶码的大小比较0的移码表示形式唯一+0移=-0移=10000000移码将真值映射到正数域,可视为无符号数同一真值的补码和移码只相差符号位。,2.1 数据与文字的表示方法,IEEE754标准的浮点数:应用于80X86微机,32位短浮点数,64位长浮点数,80位临时浮点数,32位短浮点数

15、1.尾数隐含了最高位1(位权20),实际为24位,尾数采用原码表示。2.阶码采用偏置值为127的移码表示。,2.1 数据与文字的表示方法,(2)计算出阶码真值e=移码-偏置值127 e=1000 0010-111 1111=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

16、 数据与文字的表示方法,正数,阶码的移码(8位),隐含了最高数位1的尾数的原码(23位),例2:将(20.59375)10转换成短浮点数格式(1)把十进制数转换为二进制数(20.59375)10=(10100.10011)2(2)写成浮点记数形式,尾数保留最高位1,不计入。10100.10011=1.0100 10011*24(3)计算出阶码的移码 1111111+100=1000 0011(4)以短浮点数格式存储该数 41A4C000H,2.1 数据与文字的表示方法,非数值数据表示通常是指字符、字符串、图形符号和汉字等各种数据,它们通常不用来表示数值的大小,一般情况下不对它们进行算术运算。字

17、符和字符串表示ASC(美国标准信息交换码)7位基本ASC码(国际通用)可表示128种字符8位扩充ASC码(可重新定义)可表示256种字符ASC码可分为:显示字符控制字符,“0”为48“A”为65,return、backspace键的编码分别为13、8,2.1 数据与文字的表示方法,2.1 数据与文字的表示方法,汉字编码汉字是一种象形文字,无法直接用标准西文键盘输入,必须经过转换间接输入;汉字的字数也较多,不能用单字节的ASC(256个字符)来表示目前采用两个字节(可以表示64K字符)的汉字编码方案。汉字的应用范围较广(东南亚国家),但编码字符集不相同,中国大陆常用GB/GBK码,台湾BIG5。

18、,2.1 数据与文字的表示方法,外部(输入)码,机内码,字形(输出)码,汉字信息,其它系统或设备,汉字信息,键盘管理程序,汉字处理程序,交换码(国标码),汉字处理过程,2.1 数据与文字的表示方法,外部码也叫汉字输入编码,主要是从键盘(语音、手写、光电)输入计算机中的代表汉字的编码。汉字输入方案有数百种,基本上是直接利用西文标准键盘进行汉字输入,每一种汉字输入法都各自提供相应的键盘码与汉字机内码(码表)。编码方案可分四类:数码(如电报码,区位码,国标码等)音码(如全拼码,简拼码,双拼码等)形码(如五笔字型,大众码,仓吉码等)音形码(如自然码,首尾码等),2.1 数据与文字的表示方法,交换码 用

19、于计算机与其他系统或设备之间进行汉字代码信息交换的标准汉字代码目前最常使用的是国标码GB18030-2005收录了70244个汉字标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分采用GB/T 11383的编码结构与规则,使用000至07F码位(对应于ASCII码的相应码位)。双字节部分,首字节码位从081至0FE,尾字节码位分别是040至07E和080至0FE。四字节部分采用GB/T 11383未采用的030到039作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为081308130到0FE39FE39。其中第一、三个字节编码码位均为081至0FE,第二、四个字节编码码位均

20、为030至039。,2.1 数据与文字的表示方法,GB2312是汉字字符集和编码,每个汉字(图形符号)用两个字节表示,每个字节只用低7位,即最高位为0的二进制码()汉字分为两级:一级为使用频度高的常用汉字二级为次常用的汉字,的代号,中文全称为“信息交换用汉字编码字符集”,由中华人民共和国国家标准总局发布,一九八一年五月一日实施。GB是“国标”二字的汉语拼音缩写。GB2312 字符集(character set)只收录简化字汉字,以及一般常用字母和符号,主要通行于中国大陆地区和新加坡等地。GB2312 共收录有 7445 个字符,其中简化汉字 6763 个,字母和符号 682 个。,GB2312

21、 将所收录的字符分为 94 个区,编号为 01 区至 94 区;每个区收录 94 个字符,编号为 01 位至 94 位。GB2312 的每一个字符都由与其唯一对应的区号和位号所确定。例如:汉字“啊”,编号为 16 区 01 位。GB2312编码的范围为:高字节范围是0XA1-0XFF,低字节范围是0XA1-0XFF。,内部码 也称汉字内码或机内码,是计算机对汉字进行存储、运算、传码的实际代码。一般用两个字节表示一个汉字内码,每个字节最高位为 1。还有少数三字节、四字节等内部码。最多能表示128128=16384个汉字和图形符号 机内码目前虽未完全统一,但已趋于标准化。内部码与国标码的对应关系:

22、内码=国标码+8080 国标码每个字节最高位为1 内部码。例如:国标码 3B7A 00111011 01111010 机内码 BBFA 10111011 11111010,2.1 数据与文字的表示方法,字形码也称为字模码,用点阵表示的汉字字形代码,是汉字的输出形式。简易型 1616提高型 2424、3232等1616点阵,每个汉字占32字节。每行16点,每点0/1,16位,2个字节共16行162=32字节,2.1 数据与文字的表示方法,2.1 数据与文字的表示方法,汉字代码交换流程,奇偶校验码常用于存储器读、写检查或ASCII字符传送过程中的检查。实现方法:由有效信息位和1位奇偶校验位组成。奇

23、校验保证整个校验码中有奇数个1偶校验保证整个校验码中有偶数个1,2.1 数据与文字的表示方法,2.1 数据与文字的表示方法,简单奇偶校验仅实现横向的奇、偶校验。可检测出一位(或奇数位)错误,但不能确定出错位置。例7:假定信息位8位,奇、偶校验位在末尾。,交叉奇偶校验横向:每一个字节有一个奇、偶校验位纵向:全部字节同一位也设置奇、偶校验位可以发现两位同时出错的情况。例:纵、横均约定为偶校验,2.1 数据与文字的表示方法,1,1,补码加减法运算公式(讨论纯小数,纯整数类似)X+Y补=X补+Y补(mod 2)X-Y补=X补+-Y补(mod 2)可证,-Y补=-Y补(mod 2)所以,X-Y补=X补-

24、Y补(mod 2)-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.0011,2.2 定点加减运算,例9:x=+0.1011,y=-0.0101,利用补码加法计算x+y=?解:x补=0.1011,y补=1.1011 x补=0.1011+y补=1.1011 x+y补=10.0110 x+y=+0.0110,2.

25、2 定点加减运算,P32,+0.6875,-0.3125,+0.375,例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.0111 x-y=0.0111符号位参与运算,超出模的进位自动舍弃。自动舍弃后,结果正确吗?如何判断?,2.2 定点加减运算,P33,+0.8125,+0.375,+0.4375,补码的溢出在选定了运算字长和数的表示方法之后,计算装置所能表示的数的范围是一定的,超过此范围就称为溢出。例:运算字长 数的表示方法 定点整数的范围 n

26、=8 原码-127+127 n=8 反码-127+127 n=8 补码-128+127,2.2 定点加减运算,例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 定点加减运算,方法二:双高位判别法(单符号位补码)考察两补码相加时符号位产生的进位Cf和最高数值位产生的进位C0。OVER=CfC0=1 例14:X

27、=+0.1100,Y=+0.1000,X+Y补=?X补 0.1 1 0 0+Y补 0.1 0 0 0 X+Y补 1.0 1 0 0,CfC0=1 有上溢出产生,2.2 定点加减运算,方法三:变形补码法(双符号位补码)采用双符号位补码(模4补码)00-正数 11-负数 01-上溢 10-下溢 例15:X=-0.1100,Y=-0.1000,利用变形补码计算X+Y补 x变补 11 0100+y变补 11 1000 x+y变补 10 1100 下溢 练习:P69-6(1)X=0.11011,Y=-0.11111,用变形补码计算X-Y,并指出结果是否溢出?,2.2 定点加减运算,基本的二进制加减法器,

28、加法单元全加器:有三个输入端,是考虑低位向本位进位的加法器。,全加器真值表,基本的二进制加减法器,加法器串行加法器:只有一位全加器的加法器,它每次只能进行一位二进制数运算,整个数据需要一位一位地串行送入全加器,分时进行运算。,基本的二进制加减法器,基本的二进制加减法器,并行加法器:由多位全加器组成的加法器,各位全加器之间传递进位信号的线路组成进位链。根据进位链设置方法的不同,分为串行进位并行进位影响并行加法器速度的关键因素进位信号产生和传递的时间。进位信号的基本逻辑 Ci=AiBi+(AiBi)Ci-1,Cn=Gn+PnCn-1,C2=G2+P2C1,C1=G1+P1C0,基本的二进制加减法器

29、,串行进位:也称为行波进位各全加器由进位信号线串接在一起,每一位的进位直接依赖于前一级的进位。进位是串行的,结构简单速度慢。假设一级进位产生时间2T,n级串行进位加法器的总延迟时间约为2nT。,基本的二进制加减法器,串行进位加减法器逻辑结构图,P35,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+(PnP1)C0,基本的二进制加减法器,并行进位:先行进位、超前进位根据最高位进位,预先推算出各高位的进位关系使串行进位变成并行进位,从而实

30、现快速加法运算并行进位的逻辑表示,十进制加法器对8421BCD码直接进行加法运算在二进制加法器的基础上,加上适当的“校正”逻辑来实现。n位行波进位BCD码加法器由n级BCD码加法单元级联而成。每一级完成4位BCD数的加法运算。,基本的二进制加减法器,结果10,加6调整。(10)10=(1010)2(1 0000)BCD,P36,一位BCD码加法单元第一次近似求值时,完成4位二进数加法得到的暂时和大于10或向高位产生进位时,进行加6调整。,基本的二进制加减法器,计算机实现乘除法的方法纯软件不需要专门的硬件电路,无乘除运算指令,只能用子程序来实现乘除运算。低档微机。硬件扩充串行乘法器在原有运算器的

31、基础上增加一些硬件设备,使乘除运算变换成累加和移位操作,设有专门的乘除指令。适合中、小、微型机。专用硬件并行乘法器设置专用的乘除法器,机器中设有相应的乘除指令,运算速度快,电路复杂。适合中、大型机。,2.3 定点乘法运算,补码的移位运算补码左移一位相当于乘以2,低位补0。补码右移一位相当于除以2,高位补符号位 例:0.01左移 0.10,右移0.001 1.11左移 1.10,右移1.111,2.3 定点乘法运算,人工算法与机器算法的同异性人工算法:乘积P=|X|Y|符号PS=XSYS 引例:X=0.1101,Y=0.1011,求X*Y。0.1101 0.1011 1101 1101 0000

32、+1101 0.10001111 因为PS=XSYS=00=0 所以XY=0.10001111,为适合计算机运算需要改进:1.一次进行n个数相加一次进行2个数相加;2.小数点移动小数点固定;3.需要2n个加法器只设n个加法器;,2.3 定点乘法运算,又称为比较法、Booth法参加运算的数用补码表示,符号位参加运算被乘数X与部分积取双符号位 乘数Y取单符号位,末位增设附加位Yn+1,初值0 Yn与Yn+1构成了各步运算的判断位,串行乘法补码一位乘,Yn Yn+1 操作 原部分积1 原部分积X补,1 原部分积X补,1 原部分积1,推导,进行n+1步操作,但第n+1步不移位按补码右移规则移位,补充,

33、BOOTH法的推导设Y补=Y0.Y1Y2Yn,其中Y0是符号位,可以证明 XY补=X补0.Y1Y2Yn-X补Y0 Y0=0,正数,XY补=X补0.Y1Y2Yn 不需校正 Y0=1,负数,XY补=X补0.Y1Y2Yn-X补 校正XY补=X补0.Y1Y2Yn-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-

34、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),=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补

35、(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补=XY补=X补(Y1-Y0)+Pn补,Yn Yn+1 操作 部分积1 部分积X补,1 部分积X补,1 部分积1,返回,补码一位乘法运算示例,例:X=-0.1101 Y=0.1011用补码一位乘法计算X*Y=?解:X补=11.0011-X补=00.1101 Y补=0.1011 A C 附加位 说明 00.0000 0.1011

36、 0 YnYn+1=10,+-X补+00.1101 00.1101 1 00.0110 10.101 1 YnYn+1=11,1 00.0011 010.10 1 YnYn+1=01,+X补+11.0011 11.0110 1 11.1011 0010.1 0 YnYn+1=10,+-X补+00.1101 00.1000 1 00.0100 00010.1 YnYn+1=01,+X补+11.0011 最后一步不移位 11.0111 0001 所以,XY=-0.10001111,补码一位乘法运算器框图,00或11,阵列乘法器,专用硬件并行乘法器由于乘法运算量大,采用高速乘法部件可以提高速度和效率

37、。随着大规模集成电路的问世,可由全加器阵列,构成流水式阵列乘法器,实现多个部分积并行相加,称为并行乘法器。运算速度快,电路复杂。,P38,不带符号的阵列乘法器,设有两个不带符号的二进制整数Aam1a1a0 Bbn1b1b0它们的数值分别为a和b,即设P A*B=pmn1p1p0,即,不带符号的阵列乘法器,这个过程与手工计算乘法过程非常类似,mn个aibj,可以用mn个与门并行地产生mn个aibj 相加,可用(m-1)n个全加器实现,不带符号阵列乘法器逻辑框图,全加器逻辑符号,例如:当m=n=5时,不带符号的阵列乘法器逻辑电路图,Ta:与门时间延迟 Tf:全加器进位时间延迟总时间延迟=Ta+(n

38、-1)6T+(n-1)Tf=(8n-6)T,不带符号的阵列乘法器,例16已知两个不带符号的二进制整数A11011,B 10101,求每一部分乘积项aibj的值与p9p8p0的值解,a4b01 a3b01 a2b00 a1b01 a0b01a4b10 a3b10 a2b10 a1b10 a0b10a4b21 a3b21 a2b20 a1b21 a0b20a4b30 a3b30 a2b30 a1b30 a0b30a4b41 a3b41 a2b40 a1b41 a0b41,Pp9p8p7p6p5p4p3p2p1p01000110111(56710),串行进位链的并行加法器,不带符号阵列乘法器工作过程

39、演示A*B 11011*10101,带符号的阵列乘法器,对2求补器:在带符号数与无符号数间进行转换,求补方法:设Aana1a0是n1位带符号数,负数:E=1,最右边的“1”及其后各位保持不变,其余各位按位取反。10100110正数:E=0,输出和输入相等。可利用符号位做为控制信号。,带符号阵列乘法器逻辑框图,带符号的阵列乘法器,例17 设X15,Y13,用带求补器的原码阵列乘法器求出乘积XY?解 设最高位为符号位,则输入数据为X原 01111 Y原 11101 符号位单独考虑,算前求补级后|X|1111,|Y|1101,算后经求补级输出并加上乘积符号位1,则原码乘积值为111000011。真值

40、是(11000011)2=(-195)10,手工除法示例 假定:X=0.1011,Y=0.1101,则 0.1101 0.10110 X小于Y,商0,0.,2.4 定点除法运算,0.1,0.11,0.110,0.1101,0.01101 Y右移,够减,商1,相减,0.010010 得R0,0.001101 Y再右移,够减,商1,相减,0.0001010 得R1,0.0001101 Y再右移,不够减,商0,0.00000111 得R3,商符qf=XfYf=00=0XY=0.1101+0.0111*2-4/0.1101,0.00001101 Y再右移,够减,商1,相减,0.00010100 得R2

41、,计算机实现除法的改进定点机,商应为纯小数,否则溢出。所以,只有在被除数小于除数时(X-Y0,商1,余数左移,进行下一步R0,商0恢复余数法+Y(恢复余数),余数左移,进行下一步不恢复余数法(加减交替法)Ri+1=2(Ri+Y)-Y=2Ri+Y余数左移,下一步加+Y,串行除法,串行除法补码不恢复余数法,涉及到的问题及解决 第一步,判断是否开始,不是简单地相减:补码表示时:X与Y同号,相减 X与Y异号,相加中间过程中,不同情况不同处理:R与Y同号,商1,1,+-Y补 R与Y异号,商0,1,+Y补商的校正 末尾恒置1法,补充,补码不恢复余数法示例,例:X=0.1000 Y=-0.1010 用补码不

42、恢复余数法计算 X/Y 解:A:X补=00.1000 B:Y补=11.0110,-Y补=00.1010 C:商,初值为0 A C 操作 00.1000 X与Y异号+11.0110+Y补 11.1110 1 R与Y同号,商1 11.1100 1.1+00.1010+-Y补 00.0110 1.0 R与Y异号,商0 00.1100 1.0 1+11.0110+Y补 00.0010 1.00 R与Y异号,商0 00.0100 1.00 1,补码不恢复余数法示例,例:X=0.1000 Y=-0.1010 用补码不恢复余数法计算 X/Y解:A:X补=00.1000 B:Y补=11.0110,-Y补=00

43、.1010 C:商,初值为0 A C 操作 00.0100 1.00 1,+11.0110+Y补 11.1010 1.001 R与Y同号,商1 11.0100 1.001 1+00.1010 11.1110 1.0011 末位恒置1 X/Y补=1.0011+1.1110*2-4/1.0110 X/Y=-0.1101+0.0010*2-4/0.1010,阵列除法器,采用大规模集成电路制造的并行运算部件。与串行除法器相比,运算速度高。形式多样不恢复余数阵列除法器补码阵列除法器 基本的单元电路可控加/减法单元(CAS)既可完成减法操作,又可完成加法操作适用于除法操作过程中的加减交替。,可控加/减法(

44、CAS)单元,四个输入端Ai、Bi、Ci P:控制端输入四个输出端Si、Ci+1Bi:除数右移P:控制端输出P0:CAS作加法Si=AiBi CiCi+1=AiBi+(Ai Bi)CiP1:CAS作减法,不恢复余数的阵列除法器,不恢复余数的除法加减交替法当前行应执行加法还是减法,取决于上一行余数的符号与被除数的符号是否一致:余数与被除数异号(余数为负),商“0”,除数右移,与原余数相加,得新余数;余数与被除数同号(余数为正),商“1”,除数右移,与原余数相减,得新余数。只介绍被除数、除数均为正数的情况。,阵列除法器逻辑结构图,被除数0.123456(双倍长),除数0.123(XY),商数0.q

45、1q2q3,余数0.00r3r4r5r6 字长 n14,第一行做减法(P=1),由于XY,余数0,商的个位q0上0。第二行做加法,余数加上右移一位后的Y。由余数的正负决定第二位商q1是1或0。由q1控制第三行做加法或减法,依次类推。,例20 0.101001,0.111,求。解:补1.001 被除数0.1 0 1 0 0 1 被除数x 减 1.0 0 1(-0.111)第一步减除数y 1.1 1 0 0 0 1 0 q00 余数为负 商0,下步做加法 加 0.0 1 1 1 除数右移,加 0.0 0 1 1 0 1 0q11 余数为正 商1,下步做减法 减 1.1 1 0 0 1(-0.001

46、11)除数再右移,减 1.1 1 1 1 1 1 0q20 余数为负 商0,下步做加法 加 0.0 0 0 1 1 1 除数再右移,加 0.0 0 0 1 1 0 0q31 余数为正 商1 故得 商 qq0.q1q2q30.101 余数 r(0.00r3r4r5r6)0.000110,阵列除法器完成除法运算示例,2.5 定点运算器的组成,ALU算术逻辑单元,实现基本算术、逻辑运算。寄存器组提供操作数与暂存运算结果。多路选择器或锁存器向ALU提供操作数。内部总线运算器内部的数据通路,用来传输运算过程中的数据。判别逻辑和控制电路,多功能算逻单元ALU,ALU:算逻单元,是运算器的核心。是由多个全加

47、器构成的并行加法器;既可以完成算术运算加、减、乘、除又可以完成逻辑运算与、或、非、异或每一位都是逻辑数,无符号位、数值位、阶码、阶符之分。简单位运算:位与位之间没有进/借位关系。,P51,为完成多种算/逻运算,由4位控制参数S0S3的不同组合对Ai、Bi进行控制,产生函数Xi和Yi,送全加器运算。,ALU的基本思想,ALU的进位逻辑,可以证明,Xi+Yi=Xi XiYi=Yi 将其代入进位关系式Cn+i+1=XiYi+XiCn+i+YiCn+i=Yi+XiCn+iYi既是操作数,又是进位产生函数;Xi既是操作数,又是进位传递函数。ALU芯片实例74181:能完成4位二进制数的算逻运算,组内并行

48、进位。Cn+1=Y0+X0CnCn+2=Y1+X1Cn+1=Y1+X1Y0+X1X0CnCn+3=Y2+X2Y1+X2X1Y0+X2X1X0CnCn+4=Y3+X3Y2+X3X2Y1+X3X2X1Y0+X3X2X1X0Cn,74181引脚图,74181芯片:4位组内并行ALU。可完成16种算术运算和16种逻辑运算。,74181芯片引脚图(负逻辑),74181逻辑电路图,74181算术/逻辑运算功能表,算术运算采用补码“加”:算术加,最低位的进位为0“+”:逻辑加减法利用补码方法进行的,A减B是利用“A减B减1”加上最末位产生一个强迫进位(加1)完成。,74181芯片应用举例,并行进位速度快,但

49、位数增多时,电路结构复杂,硬件费用高;而且元器件扇入系数也有限制,所以不可能完全采用并行进位方式。分组并行进位:把N位字长分为若干小组,组内并行,组间可串可并。单级先行进位:组内并行,组间串行。前片的Cn+4与下一片的Cn相连。影响运算速度例1:由4片74181组成单级先行进位的16位ALU。,多级先行进位:组内并行,组间并行。需利用74182CLA先行进位部件。例2:由4片74181组成两级先行进位的16位ALU。,74181芯片应用举例,74182CLA的进位逻辑,Cn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+P1(G0+P0Cn)=G1+P1G0+P1P0CnCn+z=G2

50、+P2Cn+y=G2+P2(G1+P1G0+P1P0Cn)=G2+P2 G1+P2 P1G0+P2 P1 P0 Cn G3+P3Cn+z=G3+P3(G2+P2 G1+P2 P1G0+P2 P1 P0 Cn)=G3+P3G2+P3P3G1+P3P2P1G0+P3P2P1P0Cn,P55,74181芯片应用举例,例3:8片74181、2片74182,组成两级先行进位32位ALU,例4:16片74181、5片74182,组成三级先行进位64位ALU,P56,内部总线,总线:能为多个部件分时共享的公共信息传送线路。外部总线:系统总线。用于连接各大部件。内部总线:芯片内各部件之间的连线按总线传送的方向

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号