收藏 分销(赏)

工学组成原理.pptx

上传人:w****g 文档编号:4615365 上传时间:2024-10-07 格式:PPTX 页数:137 大小:1.76MB
下载 相关 举报
工学组成原理.pptx_第1页
第1页 / 共137页
工学组成原理.pptx_第2页
第2页 / 共137页
工学组成原理.pptx_第3页
第3页 / 共137页
工学组成原理.pptx_第4页
第4页 / 共137页
工学组成原理.pptx_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、2024/10/7周一1第二章第二章运算方法和运算器运算方法和运算器2.1数据与文字的表示2.2定点加法、减法运算2.3定点乘法运算2.4定点除法运算2.5定点运算器的组成2.6浮点运算与浮点运算器返回2024/10/7周一22.1数据与文字的表示方法数据与文字的表示方法2.1.1数据格式2.1.2数的机器码表示2.1.3字符的表示2.1.4汉字的表示2.1.5校验码2024/10/7周一32.1数据与文字的表示方法数据与文字的表示方法l计算机中使用的数据可分成两大类:l符号数据:非数字符号的表示(ASCII、汉字、图形等)l数值数据:数字数据的表示方式(定点、浮点)l计算机数字和字符的表示方

2、法应有利于数据的存储、加工(处理)、传送;l编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便)2024/10/7周一42.1.1数据格式数据格式一、复习10进制和R进制之间的转换R进制到10进制:10进制到R进制:整数部分:除r取余,r为进制基数小数部分:乘r取整2024/10/7周一52.1.1数据格式数据格式二、数值数据计算机在数据、文字的表示方式时,应该考虑一下几个因素:表示的数据类型(符号、小数点、数值)数值的范围数值精度存储、处理、传送的硬件代价2024/10/7周一62.1.1数据格式数据格式三、计算机常用的数据表示格式有两种:l定点表示:

3、小数点位置固定l浮点表示:小数点位置不固定2024/10/7周一72.1.1数据格式数据格式四、定点表示法l所有数据的小数点位置固定不变l理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):l纯小数l纯整数l定点数表示:l带符号数l不带符号数2024/10/7周一81、定点纯小数、定点纯小数x0 x1x2x3xn-1xn表示数的范围是0|12n(最小数、最大数、最接近0的正数、最接近0的负数)符号量值小数点固定于符号位之后,不需专门存放位置2.1.1数据格式数据格式2024/10/7周一92.1.1数据格式数据格式x=0.00.0 x=1.00.0 x=0

4、正正0和负和负0都是都是0 x=0.11.1x=12n最大最大x=0.00.01x=2n最接近最接近0的正数的正数x=1.00.01x=2n最接近最接近0的负数的负数x=1.11.1x=(12n)最小最小2、纯小数的表示范围、纯小数的表示范围2024/10/7周一102.1.1数据格式数据格式3、定点纯整数x0 x1x2x3xn-1xn表示数的范围是0|2n1最小数、最大数、最接近0的正数、最接近0的负数呢符号量值小数点固定于最后一位之后,不需专门存放位置2024/10/7周一112.1.1数据格式数据格式4、定点表示法的特点l定点数表示数的范围受字长限制,表示数的范围有限;l定点表示的精度有

5、限l机器中,常用定点纯整数表示;如果用定点表示,则如何表示实数(包括小数和整数)呢?-引入浮点2024/10/7周一122.1.1数据格式数据格式五、浮点表示:小数点位置随阶码不同而浮动1、格式:N=RE.M2、机器中表示指数E基数R,取固定的值,比如10,2等尾数M阶符阶码数符尾数2024/10/7周一132.1.1数据格式数据格式3、IEEE754标准(规定了浮点数的表示格式,运算规则等)l规则规定了单精度(32)和双精度(64)的基本格式.l规则中,尾数用原码,指数用移码(便于对阶和比较)2024/10/7周一142.1.1数据格式数据格式IEEE754标准l基数R=2,基数固定,采用隐

6、含方式来表示它。l32位的浮点数:lS数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。lM是尾数,23位,在低位部分,采用纯小数表示lE是阶码,8位,采用移码表示。移码比较大小方便。l规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。尾数域最左位(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。2024/10/7周一152.1.1数据格式数据格式l64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1

7、023。因此规格化的64位浮点数x的真值为:x=(-1)S(1.M)2E-1023e=E-1023l一个规格化的32位浮点数x的真值表示为x=(-1)S(1.M)2E-127e=E-1272024/10/7周一162.1.1数据格式数据格式l真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,有正零和负零之分。l真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+和-之分。l这样在32位浮点数表示中,要除去E用全0和全1(25510)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111)。对于规格

8、化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-381038(以10的幂表示)。l浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。2024/10/7周一172.1.1数据格式数据格式浮点数表示范围如下图所示浮点数表示范围如下图所示2024/10/7周一182.1.1数据格式数据格式例1若浮点数x的754标准存储格式为(41360000)16,求其浮点数的十进制数值。解:将16进制

9、数展开后,可得二制数格式为01000001001101100000000000000000S阶码(8位)尾数(23位)指数e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.01101100000000000000000=1.011011于是有x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)102024/10/7周一192.1.1数据格式数据格式例2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:首先分别将整数和分数部分转换成二进制数:20.59375=1010

10、0.10011然后移动小数点,使其在第1,2位之间10100.10011=1.01001001124e=4于是得到:S=0,E=4+127=131,M=010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)162024/10/7周一202.1.1数据格式数据格式4、十进制数串的表示l字符串形式lBCD(压缩)l编码方式l有权码:(8421码、2421码、5211码)l无权码:(余三码、格雷码)l自定义数据表示2024/10/7周一212.1.2数的机器码表示数的机器码表示一、数的机器码表示l真值:一般书写

11、的数l机器码:机器中表示的数,要解决在计算机内部数的正、负符号和小数点运算问题。l原码l反码l补码l移码2024/10/7周一221、原码表示法、原码表示法l定点小数x0.x1x2xnx1x00,正x原=符号1-x0 x-11,负数l有正0和负0之分l范围2-n-11-2-n例:x=+0.11001110 x原=0.11001110-x原=1.110011102024/10/7周一231、原码表示法、原码表示法l定点整数X0X1X2Xnx2nx00,正数x原=符号2n-x0 x-2n1,负数说明:l有正0和负0之分l范围1-2n2n1l例:x=+11001110 x原=011001110-x原

12、=1110011102024/10/7周一241、原码表示法、原码表示法原码特点:l表示简单,易于同真值之间进行转换,实现乘除运算规则简单。l进行加减运算十分麻烦。2024/10/7周一252、补码表示法、补码表示法l定义:正数的补码就是正数的本身,负数的补码是原负数加上模。l计算机运算受字长限制,属于有模运算.定点小数x0.x1x2.xn溢出量为2,以2为模定点整数x0 x1x2.xn溢出量为2,以2n+1为模l定点小数x0.x1x2xnx1x00,正数x补=符号2+x0 x-11,负数2024/10/7周一262、补码表示法、补码表示法例:x=-0.1011lx补=10+x=10.0000

13、-0.1011=1.0101ly=-0.01111ly补=10+y=10.00000-0.01111=1,10001l定点整数x0 x1x2xnx2nx00,正数,0 x补=符号2n+1+x0 x-2n1,负数2024/10/7周一272、补码表示法、补码表示法l补码性质l高位表明正负l正数补码,尾数与原码相同l范围-2n2n-1(定点整数)l变相补码(双符号补码)l为了防止溢出而设定2024/10/7周一282、补码表示法、补码表示法l最大的优点就是将减法运算转换成加法运算。X补-Y补=X补+-Y补例如X=(11)10=(1011)2Y=(5)10=(0101)2已知字长n=5位X补-Y补=

14、X补+-Y补=01011+11011=100110=00110=(6)10注:最高1位已经超过字长故应丢掉l无正零和负零之分l但是,在求补码还要减法,电路繁琐,下面的反码表示解决着个问题。2024/10/7周一293、反码表示法、反码表示法l定义:正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。l电路容易实现,触发器的输出有正负之分。2024/10/7周一303、反码表示法、反码表示法l对尾数求反,它跟补码的区别在于末位少加一个1,所以可以推出反码的定义l定点小数x0.x1x2xnx1x0 x反=2+x2-n0 x-1X1=+0.101101

15、1,X1反=0.1011011X2=-0.1011011,X2反=1.01001001.11111110.10110111.01001002024/10/7周一313、反码表示法、反码表示法lx补=x反+2-n(证明见书)l反码表示有正0和负0之分l上述公式解决了前边的问题(求补码还要减法)l定点整数的反码定义见书2024/10/7周一324、移码表示法、移码表示法l移码表示法(用在阶码中)l定点整数定义x移=2n+x2nx-2nl0000000011111111(-2n2n-1)l例+1011111原码为01011111l补码为01011111反码为01011111l移码为110111112

16、024/10/7周一334、移码表示法、移码表示法例-1011111原码为11011111补码为10100001反码为10100000移码为00100001特点:移码和补码尾数相同,符号位相反范围:-2n2n-1P22浮点IEEE754表示e=-127+12800000000阶码表示数字”0”,尾数的隐含位为011111111阶码表示数字”无穷大”,尾数的隐含位为0p21例3-92024/10/7周一34例例6以定点整数为例以定点整数为例,用数轴形式说明用数轴形式说明原码、反码、补码表示范围和可能的原码、反码、补码表示范围和可能的数码组合情况。数码组合情况。2024/10/7周一35例例7将十

17、进制真值将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、列表表示成二进制数及原码、反码、补码、移码值。反码、补码、移码值。2024/10/7周一36例例8设机器字长设机器字长16位位,定点表示定点表示,尾数尾数15位位,数数符符1位位,问:问:(1)定点原码整数表示时定点原码整数表示时,最大正数最大正数是多少是多少?最小负数是多少最小负数是多少?(2)定点原码小数表定点原码小数表示时示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?(1)定点原码整数表示最大正数值(2151)10(32767)10最小负数值(2151)10(32767)10(2)定点原码小数

18、表示最大正数值(1215)10(0.111.11)2最小负数值(1215)10(0.111.11)2注:1符号,数字2024/10/7周一37例例9假设由假设由S,E,M三个域组成的一个三个域组成的一个32位二进制字所表示的非零规格位二进制字所表示的非零规格化浮点数化浮点数,真值表示为(非真值表示为(非IEEE754标准):标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?是多少?(1)最大正数011111111111111111111111111111111(12-23)2127

19、(2)最小正数000000000000000000000000000000001.02128(3)最小负数111111111111111111111111111111111(1223)2127(4)最大负数100000000000000000000000000000001.021282024/10/7周一382.1.3字符和字符串字符和字符串(非数值非数值)的表示方法的表示方法l符号数据:字符信息用数据表示,如ASCII等;l字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2.1l字符串的存放方法CAI2024/10/7周一392.1.4汉字

20、的存放汉字的存放l汉字的表示方法(一级汉字3755个,二级汉字3008个)l输入码l国标码一级(1655)*94二级(5687)*94图形符号(682个)(0109)*94l拼音、五笔l汉字内码:汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符)2024/10/7周一402.1.4汉字的存放汉字的存放l汉字字模码:汉字字形l点阵l汉字库2024/10/7周一412.1.5校验码校验码l校验码(只介绍奇偶校验码)l引入:信息传输和处理过程中受到干扰和故障,容易出错。l解决方法:是在有效信息中加入一些冗余信息(校验位)l奇偶校验位定义l设(01n1)是一个n位

21、字,则奇校验位定义为:C01n1,式中代表按位加,表明只有当中包含有奇数个1时,才使C1,即C0。同理可以定义偶校验。l只能检查出奇数位错;不能纠正错误。lp26例10自己看一下。l其它还有Hamming,CRC2024/10/7周一422.2定点加法、减法运算定点加法、减法运算2.2.1补码加减法2.2.2溢出检测2.2.3基本的加法和减法器2.2.4十进制加法器2024/10/7周一432.2.1补码加减法补码加减法l补码加法公式:x+y补=x补+y补l补码减法为了将减法转变为加法,需证明公式:x-y补=x补+-y补(证明)为了求得同时-y补,需要证明-y补=乛y补+2-n(意义是-y补等

22、于y补取反,末位加1)2024/10/7周一44补补补补补补证明证明l假设1,1,1l现分四种情况来证明(1)0,0,则0补=x,补=y,补=x+y所以等式成立.(2)0,0,则0或0时,2()2,进位2必丢失,又因()0,故补补补当0时,2()2,又因()0,故补补2()补所以上式成立2024/10/7周一45补补补补补补证明证明(3)0,则0或0这种情况和第2种情况一样,把和的位置对调即得证。(4)0,0,则0相加两数都是负数,则其和也一定是负数。补2,补2补补222(2)上式右边分为”2”和(2)两部分.既然()是负数,而其绝对值又小于1,那么(2)就一定是小于2而大于1的数,进位”2”

23、必丢失.又因()x0 x补=4+x0 x-2Sf1SF200正确(正数)01上溢10下溢11正确(负数)Sf1表示正确的符号,逻辑表达式为V=Sf1Sf2,可以用异或门来实现2024/10/7周一512.2.2溢出的检测溢出的检测二、检验举例:l0.1100,0.1000,求l0.1100,-0.1000,求l结果出现了01或10的情况就为溢出2024/10/7周一522.2.2溢出的检测溢出的检测2、单符号位法lCf C000正确(正数)01上溢10下溢11正确(负数)lV=CfC0其中Cf为符号位产生的进位,C0为最高有效位产生2024/10/7周一532.2.3基本的加法和减法器基本的加

24、法和减法器l基本的加法和减法器l半加器HiAiBi不考虑进位l全加器考虑低位进位Ci-1和向高位的进位Ci2024/10/7周一54一位全加器真值表输入输出AiBiCiSiCi100000001100101001101100101010111001111112024/10/7周一55FA逻辑方程逻辑方程因为:2024/10/7周一56FA逻辑方程逻辑方程l逻辑方程见下2024/10/7周一57FA逻辑电路和框图逻辑电路和框图FA(全加器)逻辑电路图 FA框图2024/10/7周一58n位行波进位加法器位行波进位加法器图2-3行波进位的补码加法/加法器2024/10/7周一592.定点乘法运算定

25、点乘法运算2.3.1定点原码乘法2.3.2定点补码乘法2024/10/7周一602.3.1定点原码乘法定点原码乘法l乘法实现方法l在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现l用LSI和VLSI工艺实现专用的乘法器l编制子程序(单片机等低端机器)2024/10/7周一611、定点原码乘法原理、定点原码乘法原理lx原=xf.xn-1x1x0y原=yf.yn-1y1y0lx.y原=(xfyf)+(0.xn-1x1x0).(0.yn-1y1y0)l尾数乘法如下:设0.1101,0.1011 0.1 1 0 1 ()0.1 0 1 1()1101 1101 0000 1101 0.

26、10001111()2024/10/7周一621、定点原码乘法原理、定点原码乘法原理ln位乘n位积可能为2n位.l乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端所以需要改造方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(时间延迟太长).方法二:不带符号位的阵列乘法器2024/10/7周一631、定点原码乘法原理、定点原码乘法原理设0.1101,0.1011求x*y部分积 乘数部分积初始化为0.000001011部分积右移,前面补+X0.1101乘数最低位为,加上被乘数-0110101011部分积右移,前面补0.011010101乘数最低位为,加上被乘数+X

27、01101-1001110101部分积右移,前面补0100111010乘数最低位为,加上+000000-0100111010部分积右移,前面补0010011101乘数最低位为,加上被乘数+X01101-1000111101部分积右移,前面补0.100011110运算四次结束,数值部分运算2024/10/7周一642、不带符号位的阵列乘法器、不带符号位的阵列乘法器不带符号阵列乘法器逻辑图2024/10/7周一652、不带符号位的阵列乘法器、不带符号位的阵列乘法器2024/10/7周一663、带符号位的阵列乘法器、带符号位的阵列乘法器l求补电路原理:算前求补乘法器算后求补,见下图2024/10/7

28、周一673 3、带符号的阵列乘法器、带符号的阵列乘法器l求补电路小结lE=0时,输入和输出相等lE=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0A=A,左边各数值位按位取反1A=乛Al可以用符号作为E的输入l原:1.11110补:1.00010l时间延迟分析:转换n+1位带符号的时间延迟为t=n*2T+5T,其中n*2T为或门延迟时间,5T为最高位与门和异或门的时延。不变,左边数值位取反2024/10/7周一683 3、带符号的阵列乘法器、带符号的阵列乘法器(间接法间接法)原码补码2024/10/7周一69举例举例(P36)例20用带求补器原码乘法器(输入/出:为

29、原码)Y=(+15)*(-13)例21用带求补器补码乘法器(输入/出:为补码)Y=(-15)*(-13)2024/10/7周一702.4定点除法运算定点除法运算0.1101商q0.10110.10010(r0)被除数0.0101121除数右移1位,减除数0.001110r1得余数r10.00101122除数右移1位,减除数0.0000110r2得余数r20.000101123除数右移1位,不减除数0.00001100r3得余数r30.0000101124除数右移1位,减除数0.00000001r4得余数r4w商0还是商1人可以比较后确定,计算机如何确定?w余数末位补0后,减去除数右移后的值,导

30、致加法器尾数逐渐增多,最后要求加法器的位数必须位被除数的两倍定点原码一位除法实现方案(手工)2024/10/7周一71定点原码除法的流程图R00?第 8 次循环?3a.商 13b.R0+R2R0,商 04.R0,R1左移1.R0,R1左移,商 02.R0-R2R05.R0右移YNNYR0,R1被除数/余数,商R2除数最后一步余数是负数,需要修正再加上除数.2024/10/7周一722、不恢复余数的除法、不恢复余数的除法l加减交替法(不恢复余数法)l当i-1次求商的余数为正时,下一次求商的办法是Ri=2Ri-Yl若Ri0时,则I位上商0,而恢复余数作加法Ri+Y,下一次即I+1次求商作减法时Ri

31、+1=2(Ri+Y)-Y=2Ri+Yl上述式子表明,当某一次商差为负时,本次商0,继续求下一位商不必恢复余数,而直接将商的差值左移动一位,在加Y的办法得到。2024/10/7周一732、不恢复余数的除法、不恢复余数的除法l法则:l余数为正,商1,求下一位商的办法是余数左移,减除数l余数为负,商0,求下一位商的办法是余数左移,加除数l若最后余数与被除数X异号,则需要纠余,增加如下操作:l若X、Y同号,用+Y纠余;l若X、Y异号,用-Y纠余。l例:x=0.1011y=0.1101求x/yx补=001011y补=001101-y补=.l计算过程如下:2024/10/7周一7400101100000开

32、始110011-y11111000000为负,商011110000000左移一位001101+y00100100001为正,商101001000010左移一位110011-y00010100011为正,商100101000110左移一位110011-y11110100110为负,商011101001100左移一位001101+y00011101101为正,商1被除数商说明2024/10/7周一752、不恢复余数的除法、不恢复余数的除法l则x/y=0.1101余数为0.0111*2-4(左移了4次)l小结:l判断溢出/”0”l商的符号由被除数的符号和除数的符号共同决定l被除数的位数可以是除数位数

33、的两倍,地位开始放于商的寄存器中.l最后一步余数是负数,需要修正再加上除数,移位.直到为正2024/10/7周一76可控的加法/减法单元CAS单元P=0,作加法运算P=1,作减法运算第一行:P=1减法运算;不恢复余数算法除数右代替部分积左依x/y商Q=0.q3q2q1余数R=0.00r6r5r4r32024/10/7周一772.3.4并行除法器并行除法器l可控的加法/减法单元CAS单元lP=0,作加法运算lP=1,作减法运算2024/10/7周一782.3.4并行除法器并行除法器上级商,作为下一级的P(控制端)输入。2024/10/7周一79举例举例p44例例230.101001,0.111,

34、求。解解:补1.001除数右移被除数0.101001减1.001余数为负1.1100010q00加0.0111余数为正0.0011010q11减1.11001余数为负1.1111110q20加0.000111余数为正0.0001100q31故得商qq0.q1q2q30.101余数r(0.00r3r4r5r6)0.0001102024/10/7周一802.5定点运算器的组成定点运算器的组成2.5.1逻辑运算2.5.2多功能算术/逻辑运算单元ALU2.5.3内部总线2.5.4定点运算器的基本结构2024/10/7周一812.5.1逻辑运算逻辑运算l自学P442024/10/7周一822.5.2多功

35、能算术多功能算术/逻辑运算单元逻辑运算单元ALUl多功能算术/逻辑运算单元ALU,本节介绍的是74LS181的基本逻辑结构是先行进位加法器,通过改变其输入端Ai和Bi来实现算术运算和逻辑运算功能。怎样实现呢?l基本思想:一位全加器FA的逻辑表达式:l为了实现多种算术逻辑运算,可将Ai和Bi输入一个函数发生器(进位传递函数和进位产生函数)得到输出Xi和Yi,作为一位全加器的输入(见下页图)。2024/10/7周一83加法器FA、减法单元CAS和一位ALU逻辑图一位ALU逻辑图2024/10/7周一84ALU的逻辑图与逻辑表达式的逻辑图与逻辑表达式2024/10/7周一85S0 S1 Yi S2

36、S3 Xi 0 00 11 01 10 00 11 01 11XiYi 与控制参数和输入量的关系构造如下真值表2.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALU2024/10/7周一862.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALU1、可以证明:Xi+Yi=Xi Xi.Yi=Yi(自己试试看)2、进一步化简得到下式2024/10/7周一872.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUlALU的某一位逻辑表达式见下:2024/10/7周一88例如:S3S2S0S10000代入:则可以处理16种算术逻辑运算,每种运算只针对1位二进制编码?思考:如何设计

37、4位ALU?16位呢?2.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALU2024/10/7周一892.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl4位ALUl 问题1:片内是串行进位还是并行进位?回答:由上图结构中可以看出 Cn1Y0X0Cn Cn2Y1X1Cn1 Cn3Y2X2Cn2 Cn4Y3X3Cn3 显然是一个串行进位,速度慢,为了实现快速ALU,需加以改进。2024/10/7周一902.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl上述片内进位采用串行,具有延时长的缺点如何改进?l思考:Cni与X、Y有关,而每一位中X、Y的产生是不是同时的?

38、答:由于每一位中X、Y的产生是同时的,则可以由下面方法算出并行进位的Cn4 第0位向第1位的进位公式为Cn1Y0X0Cn(1)其中C是向第0位(末位)的进位。第1位向第2位的进位公式为Cn2Y1X1Cn1Y1Y0X1X0X1Cn(Cn1用(1)式代入)第2位向第3位的进位公式为Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn第3位的进位输出(即整个4位运算进位输出)公式为Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn 2024/10/7周一912.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALU令GY3Y2X3Y1X2X3Y0X1X2X3

39、 PX0X1X2X3G为进位发生输出P为进位传送输出增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA)器件:741812024/10/7周一922.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl具有正逻辑和负逻辑两种内部逻辑结构图见下页2024/10/7周一9374181ALU逻辑图(逻辑图(1)2024/10/7周一9474181ALU逻辑图(逻辑图(2)2024/10/7周一9574181ALU逻辑图(逻辑图(2)P GX3Y3X2Y2X1Y1X0Y0 C0GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X32024/1

40、0/7周一9674181ALU逻辑图(总体)逻辑图(总体)2024/10/7周一972.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl算术逻辑运算的实现(74181)lM=L时,对进位信号没有影响,做算术运算lM=H时,进位门被封锁,做逻辑运算l说明:l74181执行正逻辑输入/输出方式的一组算术运算和逻辑运算和负逻辑输入/输出方式的一组算术运算和逻辑运算是等效的。lA=B端可以判断两个数是否相等。2024/10/7周一982.5.2多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl设计16位ALUlCn+x=G0+P0CnCn+y=G1+P1Cn+xlCn+x=G2+P2C

41、n+yCn+4=G3+P3Cn+zl片内先行进位,片间串行进位2024/10/7周一992.4.3先行进位先行进位ALUl两级先行进位的ALUl4片(组)的先行进位逻辑lCn+x=G0+P0CnlCn+y=G1+P1Cn+x=G1+G0P1+P0P1CnlCn+x=G2+P2Cn+yl=G2+G1P2+G0P1P2+P0P1P2CnlCn+4=G3+P3Cn+zl=G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cnl=G*+P*CnlG*为成组先行进位发生输出lP*为成组先行进位传送输出2024/10/7周一100成组先行进位部件成组先行进位部件CLA的逻辑图的逻辑图2024

42、/10/7周一1012.4.3先行进位先行进位ALUl例:设计16位先行进位ALU(图2.13)l内先行进位,片间先行进位.2024/10/7周一10232位位ALU逻辑方框图逻辑方框图2个74L1828个4位ALU74L1812024/10/7周一10364位组间先行进位ALU2024/10/7周一1042.5.3内部总线内部总线l内部总线l机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。l分类l所处位置内部总线(CPU内)外部总线(系统总线)l逻辑结构单向传送总线双向传送总线l图(2-14)2024/10/7周一105三态门组成的双向数据总线三态门组成的双向

43、数据总线2024/10/7周一106由三态门组成的数据总线由三态门组成的数据总线2024/10/7周一1072.5.4定点运算器的基本结构定点运算器的基本结构1、单总线结构的运算器2024/10/7周一1082.5.4定点运算器的基本结构定点运算器的基本结构2、双总线结构的运算器双总线结构的运算器2024/10/7周一1092.5.4定点运算器的基本结构定点运算器的基本结构3、三总线结构的运算器2024/10/7周一1102.6浮点运算方法和浮点运算器浮点运算方法和浮点运算器2.6.1浮点加法、减法运算浮点加法、减法运算2.6.2浮点乘法、除法运算浮点乘法、除法运算2.6.3浮点运算流水线浮点

44、运算流水线2.6.4浮点运算器实例浮点运算器实例2024/10/7周一1112.6.1浮点加法、减法运算1、浮点加减运算设有两个浮点数和,它们分别为2EM2EM其中E和E分别为数和的阶码,M和M为数和的尾数。两浮点数进行加法和减法的运算规则是(M2EEM)2E,设E0,表示EE;l若EE。l当EE 时,要通过尾数的移动以改变E或E,使之相等。2024/10/7周一115l原则:小阶向大阶l设E0,表示EE,则移动y的尾数,M右移E位,问题:为什么要小阶向大阶看齐?l阶差=Ex-Ey=00010-00100=11110l即阶差为-2,Mx右移两位,Ex加2lx=00100,0.00110110(

45、11)2.6.1浮点加法、减法运算2024/10/7周一1162.6.1浮点加法、减法运算3、尾数相加l00.00110110(11)+11.01010100=11.10001010(11)4、结果规格化l(1)在浮点加减运算时,尾数求和的结果也可以得到01.或10.,即两符号位不等,此时将运算结果右移以实现规格化表示,称为向右规格化。l规则:尾数右移1位,阶码加1l(2)结果是00.0.01.或11.1.10.时,则向左规格化l规则:尾数左移1位,阶码减1,直到规格化l右规,阶码加1,左规,阶码减1l刚才例子左规为11.00010101(10),阶码减1为00011l练习:01.110110

46、.000111.10012024/10/7周一1172.6.1浮点加法、减法运算l舍入处理(对阶和向右规格化时)l就近舍入(0舍1入):类似”四舍五入”,丢弃的最高位为1,进1l朝0舍入:截尾l朝舍入:正数多余位不全为”0”,进1;负数,截尾l朝舍入:负数多余位不全为”0”,进1;正数,截尾l例子l溢出判断和处理l阶码上溢,一般将其认为是和。l阶码下溢,则数值为0l尾数上溢,两个同符号位的数相加。处理方法是尾数右移,阶码加1。l尾数下溢。尾数右移时,最低位从最右端流出。进行要进行舍入处理。2024/10/7周一118l设1补11.01100000,2补11.01100001,3补11.0110

47、1000,4补11.01111001,求执行只保留小数点后4位有效数字的舍入操作值。课堂作业课堂作业2024/10/7周一1192.6.1浮点加法、减法运算l课堂练习:x=0.1101*201y=-0.1010*211l尾数和阶符都采用补码表示,都采用双符号位表示法。l求x+y2024/10/7周一1202.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

48、.1101*2102024/10/7周一1212.6.2浮点乘法和除法运算浮点乘法和除法运算l设有两个浮点数和:2EM2EMl2(EE)(MM)l2(EE)(MM)l乘除运算分为四步0操作数检查阶码加减操作尾数乘除操作结果规格化和舍入处理2024/10/7周一1222.6.2浮点乘法和除法运算浮点乘法和除法运算l浮点数的阶码运算(移码的运算规则)lX移+Y移=2n+X+Y移原因是什么呢?2024/10/7周一1232.6.2浮点乘法和除法运算浮点乘法和除法运算l移码采用双符号位,为了对溢出进行判断l01为正00为负l10上溢11下溢011,110,求移和移,并判断是否溢出。移01011,补00

49、110,补11010移移补10001,结果上溢。移移补00101,结果正确,为3。2024/10/7周一1242.6.2浮点乘法和除法运算浮点乘法和除法运算l尾数处理l截断l舍入l尾数用原码表示时只要尾数最低为1或者移出位中有1数值位,使最低位置10舍1入l尾数用补码表示时(p57例30)丢失的位全为0,不必舍入。丢失的最高位为0,以后各位不全为0时;或者最高为1,以后各位全为0时,不必舍入。丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入1的修正操作。2024/10/7周一1252.6.2浮点乘法和除法运算浮点乘法和除法运算设有浮点数250.0110011,23(0.1110010)

50、,阶码用4位移码表示,尾数(含符号位)用8位补码表示。求浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。2024/10/7周一126解解:移码采用双符号位,尾数补码采用单符号位,则有M补0.0110011,M补1.0001110,E移01011,E补00011,E移00011,浮00011,0.0110011,浮01011,1.0001110(1)判断操作是否为”0”,求阶码和EE移E移E补000110001100110,值为移码形式2。(2)尾数乘法运算可采用补码阵列乘法器实现,即有M补M补0.0110011补1.0001110补1.101

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服