欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    运算方法与运算器课件.ppt

    • 资源ID:2163976       资源大小:2.01MB        全文页数:137页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    运算方法与运算器课件.ppt

    第二章 运算方法和运算器,2.1数据与文字的表示2.2定点加法、减法运算2.3定点乘法运算2.4定点除法运算2.5定点运算器的组成2.6浮点运算与浮点运算器,返回,2023/1/22,1,2.1数据与文字的表示方法,2.1.1数据格式2.1.2数的机器码表示2.1.3字符的表示2.1.4汉字的表示2.1.5校验码,2023/1/22,2,2.1数据与文字的表示方法,计算机中使用的数据可分成两大类:符号数据:非数字符号的表示(ASCII、汉字、图形等)数值数据:数字数据的表示方式(定点、浮点)计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便),2023/1/22,3,2.1.1数据格式,一、复习10进制和R进制之间的转换 R进制到10进制:10进制到R进制:整数部分:除r取余,r为进制基数小数部分:乘r取整,2023/1/22,4,2.1.1数据格式,二、数值数据 计算机在数据、文字的表示方式时,应该考虑一下几个因素:表示的数据类型(符号、小数点、数值)数值的范围数值精度存储、处理、传送的硬件代价,2023/1/22,5,2.1.1数据格式,三、计算机常用的数据表示格式有两种:定点表示:小数点位置固定浮点表示:小数点位置不固定,2023/1/22,6,2.1.1数据格式,四、定点表示法所有数据的小数点位置固定不变理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):纯小数纯整数定点数表示:带符号数不带符号数,2023/1/22,7,1、定点纯小数,x0 x1 x2 x3 xn-1 xn表示数的范围是 0|12n(最小数、最大数、最接近0的正数、最接近0的负数),符号,量值,小数点固定于符号位之后,不需专门存放位置,2.1.1数据格式,2023/1/22,8,2.1.1数据格式,2、纯小数的表示范围,2023/1/22,9,2.1.1数据格式,3、定点纯整数 x0 x1 x2 x3 xn-1 xn表示数的范围是 0|2n1最小数、最大数、最接近0的正数、最接近0的负数呢,符号,量值,小数点固定于最后一位之后,不需专门存放位置,2023/1/22,10,2.1.1数据格式,4、定点表示法的特点定点数表示数的范围受字长限制,表示数的范围有限;定点表示的精度有限机器中,常用定点纯整数表示;如果用定点表示,则如何表示实数(包括小数和整数)呢?-引入浮点,2023/1/22,11,2.1.1数据格式,五、浮点表示:小数点位置随阶码不同而浮动1、格式:N=RE.M2、机器中表示,指数E,基数R,取固定的值,比如10,2等,尾数M,2023/1/22,12,2.1.1数据格式,3、IEEE754标准(规定了浮点数的表示格式,运算规则等)规则规定了单精度(32)和双精度(64)的基本格式.规则中,尾数用原码,指数用移码(便于对阶和比较),2023/1/22,13,2.1.1数据格式,IEEE754标准基数R=2,基数固定,采用隐含方式来表示它。32位的浮点数:S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。M是尾数,23位,在低位部分,采用纯小数表示E是阶码,8位,采用移码表示。移码比较大小方便。规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。,2023/1/22,14,2.1.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,2023/1/22,15,2.1.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-381038(以10的幂表示)。浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。,2023/1/22,16,2.1.1数据格式,浮点数表示范围如下图所示,2023/1/22,17,2.1.1数据格式,例1若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。解:将16进制数展开后,可得二制数格式为 0 100 00010011 0110 0000 0000 0000 0000 S 阶码(8位)尾数(23位)指数e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011于是有x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)10,2023/1/22,18,2.1.1数据格式,例2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124 e=4于是得到:S=0,E=4+127=131,M=010010011 最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)16,2023/1/22,19,2.1.1数据格式,4、十进制数串的表示字符串形式BCD(压缩)编码方式有权码:(8421码、2421码、5211码)无权码:(余三码、格雷码)自定义数据表示,2023/1/22,20,2.1.2数的机器码表示,一、数的机器码表示真值:一般书写的数机器码:机器中表示的数,要解决在计算机内部数的正、负符号和小数点运算问题。原码反码补码移码,2023/1/22,21,1、原码表示法,定点小数x0.x1x2xn x 1x0 0,正x原=符号 1-x 0 x-1 1,负数有正0和负0之分范围2-n-11-2-n例:x=+0.11001110 x原=0.11001110-x原=1.11001110,2023/1/22,22,1、原码表示法,定点整数X0X1X2Xn x 2nx0 0,正数x原=符号 2n-x 0 x-2n 1,负数说明:有正0和负0之分范围 1-2n 2n 1例:x=+11001110 x原=011001110-x原=111001110,2023/1/22,23,1、原码表示法,原码特点:表示简单,易于同真值之间进行转换,实现乘除运算规则简单。进行加减运算十分麻烦。,2023/1/22,24,2、补码表示法,定义:正数的补码就是正数的本身,负数的补码是原负数加上模。计算机运算受字长限制,属于有模运算.定点小数x0.x1x2.xn溢出量为2,以2为模定点整数x0 x1x2.xn溢出量为2,以2n+1为模定点小数x0.x1x2xn x 1x0 0,正数x补=符号 2+x 0 x-1 1,负数,2023/1/22,25,2、补码表示法,例:x=-0.1011 x补=10+x=10.0000-0.1011=1.0101y=-0.01111y补=10+y=10.00000-0.01111=1,10001定点整数x0 x1x2xn x 2nx0 0,正数,0 x补=符号 2n+1+x 0 x-2n 1,负数,2023/1/22,26,2、补码表示法,补码性质高位表明正负正数补码,尾数与原码相同范围-2n2n-1(定点整数)变相补码(双符号补码)为了防止溢出而设定,2023/1/22,27,2、补码表示法,最大的优点就是将减法运算转换成加法运算。X补-Y补=X补+-Y补例如 X=(11)10=(1011)2 Y=(5)10=(0101)2已知字长n=5位X补-Y补=X补+-Y补=01011+11011=100110=00110=(6)10 注:最高1位已经超过字长故应丢掉无正零和负零之分但是,在求补码还要减法,电路繁琐,下面的反码表示解决着个问题。,2023/1/22,28,3、反码表示法,定义:正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。电路容易实现,触发器的输出有正负之分。,2023/1/22,29,3、反码表示法,对尾数求反,它跟补码的区别在于末位少加一个1,所以可以推出反码的定义定点小数x0.x1x2xn x 1x0 x反=2+x 2-n 0 x-1X1=+0.1011011,X1 反=0.1011011X2=-0.1011011,X2 反=1.0100100 1.1 1 1 1 1 1 1 0.1 0 1 1 0 1 1 1.0 1 0 0 1 0 0,2023/1/22,30,3、反码表示法,x 补=x 反+2-n(证明见书)反码表示有正0和负0之分上述公式解决了前边的问题(求补码还要减法)定点整数的反码定义见书,2023/1/22,31,4、移码表示法,移码表示法(用在阶码中)定点整数定义 x移=2n+x 2n x-2n 0000000011111111(-2n2n-1)例+1011111 原码为01011111补码为01011111 反码为01011111移码为 11011111,2023/1/22,32,4、移码表示法,例-1011111 原码为11011111补码为10100001 反码为10100000移码为00100001特点:移码和补码尾数相同,符号位相反范围:-2n2n-1P22 浮点IEEE754表示e=-127+12800000000阶码表示数字”0”,尾数的隐含位为011111111阶码表示数字”无穷大”,尾数的隐含位为0p21例3-9,2023/1/22,33,例6以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。,2023/1/22,34,例7将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、反码、补码、移码值。,2023/1/22,35,例8设机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?,(1)定点原码整数表示最大正数值(2151)10(32767)10最小负数值(2151)10(32767)10(2)定点原码小数表示 最大正数值(1215)10(0.111.11)2最小负数值(1215)10(0.111.11)2注:1符号,数字,2023/1/22,36,例9假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数,真值表示为(非IEEE754标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?,(1)最大正数0 1111 1111 111 1111 1111 1111 1111 11111(12-23)2127(2)最小正数 000 000 000000 000 000 000 000 000 000 001.02128(3)最小负数111 111 111111 111 111 111 111 111 111 111(1223)2127(4)最大负数100 000 000000 000 000 000 000 000 000 001.02128,2023/1/22,37,2.1.3字符和字符串(非数值)的表示方法,符号数据:字符信息用数据表示,如ASCII等;字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2.1字符串的存放方法,CAI,2023/1/22,38,2.1.4汉字的存放,汉字的表示方法(一级汉字3755个,二级汉字3008个)输入码国标码一级(1655)*94二级(5687)*94图形符号(682个)(0109)*94拼音、五笔汉字内码:汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符),2023/1/22,39,2.1.4汉字的存放,汉字字模码:汉字字形点阵汉字库,2023/1/22,40,2.1.5校验码,校验码(只介绍奇偶校验码)引入:信息传输和处理过程中受到干扰和故障,容易出错。解决方法:是在有效信息中加入一些冗余信息(校验位)奇偶校验位定义设(01n1)是一个n位字,则奇校验位定义为:C01n1,式中代表按位加,表明只有当中包含有奇数个1时,才使C1,即C0。同理可以定义偶校验。只能检查出奇数位错;不能纠正错误。p26例10自己看一下。其它还有Hamming,CRC,2023/1/22,41,2.2 定点加法、减法运算,2.2.1补码加减法2.2.2溢出检测2.2.3基本的加法和减法器2.2.4十进制加法器,2023/1/22,42,2.2.1补码加减法,补码加法公式:x+y补=x补+y补补码减法 为了将减法转变为加法,需证明公式:x-y补=x补+-y补(证明)为了求得同时-y补,需要证明-y补=乛y补+2-n(意义是-y补等于y补取反,末位加1),2023/1/22,43,补补补证明,假设1,1,1 现分四种情况来证明(1)0,0,则0 补=x,补=y,补=x+y所以等式成立.(2)0,0,则0或0时,2()2,进位2必丢失,又因()0,故补补补当0时,2()2,又因()0,故补补2()补所以上式成立,2023/1/22,44,补补补证明,(3)0,则0或 0 这种情况和第2种情况一样,把和的位置对调即得证。(4)0,0,则0 相加两数都是负数,则其和也一定是负数。补2,补2补补222(2)上式右边分为”2”和(2)两部分.既然()是负数,而其绝对值又小于1,那么(2)就一定是小于2而大于1的数,进位”2”必丢失.又因()0,所以补补2()补,2023/1/22,45,2.2.1补码加减法,如:y=0.0111 y补=0.0111-y补=1.1001,从右边到左边,除了第一个1和右边的0保持不变以外,其它按位取反,很重要!,2023/1/22,46,2.2.1补码加减法,例 x=-0.1011,y=0.0111x补=1.0101 y补=0.0111x+y补=x补+y补=1.0101+0.0111=1.1100 x+y=-0.0100例 x=+0.11011,y=-0.11111x补=0.11011 y补=1.00001-y补=0.11111x-y补=x补+-y补=1.11010,2023/1/22,47,2.2.2 溢出的检测,溢出的检测可能产生溢出的情况两正数加,变负数,上溢(大于机器所能表示的最大数)两负数加,变正数,下溢(小于机器所能表示的最小数),2023/1/22,48,2.2.2 溢出的检测,课堂作业:例3:0.1011,0.1001,求例4:0.1101,0.1011,求,2023/1/22,49,2.2.2 溢出的检测,一、检测方法1、双符号位法(参与加减运算的数采用变形补码表示)x 2x0 x补=4+x 0 x-2 Sf1 SF2 0 0正确(正数)01上溢10下溢11正确(负数)Sf1 表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门来实现,2023/1/22,50,2.2.2 溢出的检测,二、检验举例:0.1100,0.1000,求 0.1100,-0.1000,求 结果出现了01或10的情况就为溢出,2023/1/22,51,2.2.2 溢出的检测,2、单符号位法Cf C000正确(正数)01上溢10下溢11正确(负数)V=Cf C0 其中Cf为符号位产生的进位,C0为最高有效位产生,2023/1/22,52,2.2.3基本的加法和减法器,基本的加法和减法器半加器HiAi Bi不考虑进位全加器考虑低位进位Ci-1和向高位的进位Ci,2023/1/22,53,一位全加器真值表,2023/1/22,54,FA逻辑方程,因为:,2023/1/22,55,FA逻辑方程,逻辑方程见下,2023/1/22,56,FA逻辑电路和框图,FA(全加器)逻辑电路图 FA框图,2023/1/22,57,n位行波进位加法器,图2-3行波进位的补码加法/加法器,2023/1/22,58,2.定点乘法运算,2.3.1 定点原码乘法2.3.2 定点补码乘法,2023/1/22,59,2.3.1 定点原码乘法,乘法实现方法在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现用LSI和VLSI工艺实现专用的乘法器编制子程序(单片机等低端机器),2023/1/22,60,1、定点原码乘法原理,x原=xf.xn-1x1x0 y原=yf.yn-1y1y0 x.y原=(xf yf)+(0.xn-1x1x0).(0.yn-1y1y0)尾数乘法如下:设0.1101,0.1011 0.1 1 0 1()0.1 0 1 1()1101 1101 0000 1101 0.10001111(),2023/1/22,61,1、定点原码乘法原理,n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端所以需要改造方法一:硬件实现方法(串行的“加法和移位”),硬件 结构简单,速度太慢(时间延迟太长).方法二:不带符号位的阵列乘法器,2023/1/22,62,1、定点原码乘法原理,设0.1101,0.1011求x*y部分积乘数部分积初始化为0.0 0 0 00 1 0 1 1 部分积右移,前面补+X0.1 1 0 1 乘数最低位为,加上被乘数-0 1 1 0 10 1 0 1 1 部分积右移,前面补0.0 1 1 01 0 1 0 1 乘数最低位为,加上被乘数+X0 1 1 0 1-1 0 0 1 11 0 1 0 1 部分积右移,前面补0 1 0 0 11 1 0 1 0 乘数最低位为,加上+00 0 0 0 0-0 1 0 0 11 1 0 1 0部分积右移,前面补0 0 1 0 01 1 1 0 1乘数最低位为,加上被乘数+X0 1 1 0 1-1 0 0 0 11 1 1 0 1部分积右移,前面补0.1 0 0 01 1 1 1 0运算四次结束,数值部分运算,2023/1/22,63,2、不带符号位的阵列乘法器,不带符号阵列乘法器逻辑图,2023/1/22,64,2、不带符号位的阵列乘法器,2023/1/22,65,3、带符号位的阵列乘法器,求补电路原理:算前求补乘法器算后求补,见下图,2023/1/22,66,3、带符号的阵列乘法器,求补电路小结E=0时,输入和输出相等E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0A=A,左边各数值位按位取反1A=乛A可以用符号作为E 的输入原:1.11110 补:1.00010时间延迟分析:转换n+1位带符号的时间延迟为t=n*2T+5T,其中n*2T为或门延迟时间,5T为最高位与门和异或门的时延。,不变,左边数值位取反,2023/1/22,67,3、带符号的阵列乘法器(间接法),原码补码,2023/1/22,68,举例(P36),例20用带求补器原码乘法器(输入/出:为原码)Y=(+15)*(-13)例21用带求补器补码乘法器(输入/出:为补码)Y=(-15)*(-13),2023/1/22,69,2.4 定点除法运算,0.1 1 0 1商q0.1 0 1 1 0.1 0 0 1 0(r0)被除数 0.0 1 0 1 121除数右移1位,减除数 0.0 0 1 1 1 0r1得余数r1 0.0 0 1 0 1 122除数右移1位,减除数 0.0 0 0 0 1 1 0r2得余数r2 0.0 0 0 1 0 1 123除数右移1位,不减除数 0.0 0 0 0 1 1 0 0r3得余数r3 0.0 0 0 0 1 0 1 124除数右移1位,减除数 0.0 0 0 0 0 0 0 1r4得余数r4,商0还是商1人可以比较后确定,计算机如何确定?余数末位补0后,减去除数右移后的值,导致加法器尾数逐渐增多,最后要求加法器的位数必须为被除数的两倍,定点原码一位除法实现方案(手工),2023/1/22,70,定点原码除法的流程图,R0 0?,第,8,次循环?,3a.,商,1,3b.R0+R2,R0,商,0,4.R0,R1,左移,1.R0,R1,左移,商,0,2.R0,-,R2,R0,5.R0,右移,Y,N,N,Y,R0,R1被除数/余数,商R2除数最后一步余数是负数,需要修正再加上除数.,2023/1/22,71,2、不恢复余数的除法,加减交替法(不恢复余数法)当i-1次求商的余数为正时,下一次求商的办法是 Ri=2Ri-Y若Ri0时,则I位上商0,而恢复余数作加法Ri+Y,下一次即I+1次求商作减法时Ri+1=2(Ri+Y)-Y=2Ri+Y上述式子表明,当某一次商差为负时,本次商0,继续求下一位商不必恢复余数,而直接将商的差值左移动一位,在加Y的办法得到。,2023/1/22,72,2、不恢复余数的除法,法则:余数为正,商1,求下一位商的办法是余数左移,减除数余数为负,商0,求下一位商的办法是余数左移,加除数若最后余数与被除数X异号,则需要纠余,增加如下操作:若X、Y同号,用+Y纠余;若X、Y异号,用-Y纠余。例:x=0.1011 y=0.1101 求x/yx补=001011y补=001101-y补=.计算过程如下:,2023/1/22,73,001011 00000 开始 110011-y 111110 00000 为负,商0 111100 00000 左移一位 001101+y 001001 00001 为正,商1 010010 00010 左移一位 110011-y 000101 00011 为正,商1 001010 00110 左移一位 110011-y 111101 00110 为负,商0 111010 01100 左移一位 001101+y 000111 01101 为正,商1,被除数,商,说明,2023/1/22,74,2.不恢复余数的除法,则x/y=0.1101余数为0.0111*2-4(左移了4次)小结:判断溢出/”0”商的符号由被除数的符号和除数的符号共同决定被除数的位数可以是除数位数的两倍,地位开始放于商的寄存器中.最后一步余数是负数,需要修正再加上除数,移位.直到为正,2023/1/22,75,可控的加法/减法单元CAS单元P=0,作加法运算P=1,作减法运算,第一行:P=1减法运算;不恢复余数算法除数右代替部分积左依x/y商Q=0.q3q2q1余数R=0.00r6r5r4r3,2023/1/22,76,2.3.4 并行除法器,可控的加法/减法单元CAS单元P=0,作加法运算P=1,作减法运算,2023/1/22,77,2.3.4 并行除法器,上级商,作为下一级的P(控制端)输入。,2023/1/22,78,举例p44,例230.101001,0.111,求。解:补1.001 除数右移被除数0.1 0 1 0 0 1减1.0 0 1 余数为负1.1 1 0 0 0 1 0q00加0.0 1 1 1 余数为正0.0 0 1 1 0 1 0q11减1.1 1 0 0 1 余数为负1.1 1 1 1 1 10q20加0.0 0 0 1 1 1余数为正0.0 0 0 1 1 0 0q31故得商 qq0.q1q2q30.101 余数 r(0.00r3r4r5r6)0.000110,2023/1/22,79,2.5 定点运算器的组成,2.5.1 逻辑运算2.5.2 多功能算术/逻辑运算单元ALU2.5.3 内部总线2.5.4 定点运算器的基本结构,2023/1/22,80,2.5.1 逻辑运算,自学P44,2023/1/22,81,2.5.2 多功能算术/逻辑运算单元ALU,多功能算术/逻辑运算单元ALU,本节介绍的是74LS181的基本逻辑结构是先行进位加法器,通过改变其输入端Ai和Bi来实现算术运算和逻辑运算功能。怎样实现呢?基本思想:一位全加器FA的逻辑表达式:为了实现多种算术逻辑运算,可将Ai和Bi输入一个函数发生器(进位传递函数和进位产生函数)得到输出Xi和Yi,作为一位全加器的输入(见下页图)。,2023/1/22,82,加法器FA、减法单元CAS和一位ALU逻辑图,一位ALU逻辑图,2023/1/22,83,ALU的逻辑图与逻辑表达式,2023/1/22,84,XiYi 与控制参数和输入量的关系构造如下真值表,2.5.2 多功能算术/逻辑运算单元ALU,2023/1/22,85,2.5.2 多功能算术/逻辑运算单元ALU,1、可以证明:Xi+Yi=Xi Xi.Yi=Yi(自己试试看)2、,进一步化简得到下式,2023/1/22,86,2.5.2 多功能算术/逻辑运算单元ALU,ALU的某一位逻辑表达式见下:,2023/1/22,87,例如:S3S2S0S10000代入:,则可以处理16种算术逻辑运算,每种运算只针对1位二进制编码?思考:如何设计4位ALU?16位呢?,2.5.2 多功能算术/逻辑运算单元ALU,2023/1/22,88,2.5.2 多功能算术/逻辑运算单元ALU,4位ALU 问题1:片内是串行进位还是并行进位?,回答:由上图结构中可以看出 Cn1Y0X0Cn Cn2Y1X1Cn1 Cn3Y2X2Cn2 Cn4Y3X3Cn3 显然是一个串行进位,速度慢,为了实现快速ALU,需加以改进。,2023/1/22,89,2.5.2 多功能算术/逻辑运算单元ALU,上述片内进位采用串行,具有延时长的缺点如何改进?思考:Cni与X、Y有关,而每一位中X、Y的产生是不是同时的?,答:由于每一位中X、Y的产生是同时的,则可以由下面方法算出并行进位的Cn4 第0位向第1位的进位公式为Cn1Y0X0Cn(1)其中C是向第0位(末位)的进位。第1位向第2位的进位公式为Cn2Y1X1Cn1Y1Y0X1X0X1Cn(Cn1用(1)式代入)第2位向第3位的进位公式为Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn第3位的进位输出(即整个4位运算进位输出)公式为Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn,2023/1/22,90,2.5.2 多功能算术/逻辑运算单元ALU,令GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3G为进位发生输出 P为进位传送输出增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA)器件:74181,2023/1/22,91,2.5.2 多功能算术/逻辑运算单元ALU,具有正逻辑和负逻辑两种,内部逻辑结构图见下页,2023/1/22,92,74181ALU逻辑图(1),2023/1/22,93,74181ALU逻辑图(2),2023/1/22,94,74181ALU逻辑图(2),P G,X3Y3,X2Y2,X1Y1,X0Y0 C0,GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3,2023/1/22,95,74181ALU逻辑图(总体),2023/1/22,96,2.5.2 多功能算术/逻辑运算单元ALU,算术逻辑运算的实现(74181)M=L时,对进位信号没有影响,做算术运算M=H时,进位门被封锁,做逻辑运算说明:74181执行正逻辑输入/输出方式的一组算术运算和逻辑运算和负逻辑输入/输出方式的一组算术运算和逻辑运算是等效的。A=B端可以判断两个数是否相等。,2023/1/22,97,2.5.2 多功能算术/逻辑运算单元ALU,设计16位ALUCn+x=G0+P0Cn Cn+y=G1+P1Cn+x Cn+x=G2+P2Cn+y Cn+4=G3+P3Cn+z片内先行进位,片间串行进位,2023/1/22,98,2.4.3 先行进位ALU,两级先行进位的ALU4片(组)的先行进位逻辑Cn+x=G0+P0Cn Cn+y=G1+P1Cn+x=G1+G0P1+P0P1Cn Cn+x=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2Cn Cn+4=G3+P3Cn+z=G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cn=G*+P*CnG*为成组先行进位发生输出P*为成组先行进位传送输出,2023/1/22,99,成组先行进位部件CLA的逻辑图,2023/1/22,100,2.4.3 先行进位ALU,例:设计16位先行进位ALU(图2.13)内先行进位,片间先行进位.,2023/1/22,101,32位ALU逻辑方框图,2个74L1828个4位ALU74L181,2023/1/22,102,64位组间先行进位ALU,2023/1/22,103,2.5.3内部总线,内部总线机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。分类所处位置内部总线(CPU内)外部总线(系统总线)逻辑结构单向传送总线双向传送总线图(2-14),2023/1/22,104,三态门组成的双向数据总线,2023/1/22,105,由三态门组成的数据总线,2023/1/22,106,2.5.4定点运算器的基本结构,1、单总线结构的运算器,2023/1/22,107,2.5.4定点运算器的基本结构,2、双总线结构的运算器,2023/1/22,108,2.5.4定点运算器的基本结构,3、三总线结构的运算器,2023/1/22,109,2.6 浮点运算方法和浮点运算器,2.6.1 浮点加法、减法运算2.6.2 浮点乘法、除法运算2.6.3 浮点运算流水线2.6.4 浮点运算器实例,2023/1/22,110,2.6.1 浮点加法、减法运算,1、浮点加减运算设有两个浮点数和,它们分别为2EM2EM其中E和E分别为数和的阶码,M和M为数和的尾数。两浮点数进行加法和减法的运算规则是(M2EEM)2E,设EE,2023/1/22,111,2.6.1 浮点加法、减法运算,2、浮点运算步骤如下:1.0 操作数的检查,看有无简化操作的可能;2.比较阶码大小并完成对阶(小阶向大阶对齐);3.尾数进行加或减运算;4.结果规格化并进行舍入处理,2023/1/22,112,2.6.1 浮点加法、减法运算,2023/1/22,113,2.6.1 浮点加法、减法运算,例28 设x220.11011011,y=-240.101011001、0操作数检查(非0)2、对阶:阶码对齐后才能加减。规则是阶码小的向阶码大的数对齐;若E0,表示两数阶码相等,即EE;若E0,表示EE;若EE。当EE 时,要通过尾数的移动以改变E或E,使之相等。,2023/1/22,114,原则:小阶向大阶设E0,表示EE,则移动y的尾数,M右移E位,问题:为什么要小阶向大阶看齐?阶差=Ex-Ey=00 010-00 100=11 110即阶差为-2,Mx右移两位,Ex加2x=00100,0.00110110(11),2.6.1 浮点加法、减法运算,2023/1/22,115,2.6.1 浮点加法、减法运算,3、尾数相加00.00110110(11)+11.01010100=11.10001010(11)4、结果规格化(1)在浮点加减运算时,尾数求和的结果也可以得到01.或10.,即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。规则:尾数右移1位,阶码加1(2)结果是00.0.01.或11.1.10.时,则向左规格化规则:尾数左移1位,阶码减1,直到规格化右规,阶码加1,左规,阶码减1刚才例子左规为11.00010101(10),阶码减1为00011练习:01.1101 10.0001 11.1001,2023/1/22,116,2.6.1 浮点加法、减法运算,舍入处理(对阶和向右规格化时)就近舍入(0舍1入):类似”四舍五入”,丢弃的最高位为1,进1朝0舍入:截尾朝舍入:正数多余位不全为”0”,进1;负数,截尾朝 舍入:负数多余位不全为”0”,进1;正数,截尾例子溢出判断和处理阶码上溢,一般将其认为是和。阶码下溢,则数值为0尾数上溢,两个同符号位的数相加。处理方法是尾数右移,阶码 加1。尾数下溢。尾数右移时,最低位从最右端流出。进行要进行舍入处理。,2023/1/22,117,设1补11.01100000,2补11.01100001,3补11.01101000,4补11.01111001,求执行只保留小数点后4位有效数字的舍入操作值。,课堂作业,2023/1/22,118,2.6.1 浮点加法、减法运算,课堂练习:x=0.1101*201 y=-0.1010*211尾数和阶符都采用补码表示,都采用双符号位表示法。求x+y,2023/1/22,119,2.6.1 浮点加法、减法运算,x浮=0001,00.1101y浮=0011,11.0110阶差=1110 即为-2Mx应当右移2位,x浮=0011,00.0011(01)尾数和为11.1001(01)左规11.0010(10),阶码减1为0010舍入(就近舍入)11.0011 丢弃10 x+y=-0.1101*210,2023/1/22,120,2.6.2 浮点乘法和除法运算,设有两个浮点数和:2EM2EM2(EE)(MM)2(EE)(MM)乘除运算分为四步0操作数检查阶码加减操作尾数乘除操作结果规格化和舍入处理,2023/1/22,121,2.6.2 浮点乘法和除法运算,浮点数的阶码运算(移码的运算规则)X移+Y移=2n+X+Y移,原因是什么呢?,2023/1/22,122,2.6.2 浮点乘法和除法运算,移码采用双符号位,为了对溢出进行判断01 为正 00 为负10 上溢 11 下溢,011,110,求移 和 移,并判断是否溢出。,移01 011,补00 110,补11 010移移补10 001,结果上溢。移移补00 101,结果正确,为3。,2023/1/22,123,2.6.2 浮点乘法和除法运算,尾数处理截断舍入尾数用原码表示时只要尾数最低为1或者移出位中有1数值位,使最低位置10舍1入尾数用补码表示时(p57例30)丢失的位全为0,不必舍入。丢失的最高位为0,以后各位不全为0时;或者最高为1,以后各位全为0时,不必舍入。丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入1的修正操作。,2023/1/22,124,2.6.2 浮点乘法和除法运算,设有浮点数250.0110011,23(0.1110010),阶码用4位移码表示,尾数(含符号位)用8位补码表示。求浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。,2023/1/22,125,解:移码采用双符号位,尾数补码采用单符号位,则有 M补0.0110011,M补1.0001110,E移01 011,E补00 011,E移00 011,浮00 011,0.0110011,浮01 011,1.0001110(1)判断操作是否为”0”,求阶码和EE移E移E补00 01100 01100 110,值为移码形式2。(2

    注意事项

    本文(运算方法与运算器课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开