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

下载本文档

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

文档简介

1、2022-3-141第二章第二章 运算方法和运算器运算方法和运算器2.1数据与文字的表示2.2定点加法、减法运算2.3定点乘法运算2.4定点除法运算2.5定点运算器的组成2.6浮点运算与浮点运算器返回2022-3-1422.1数据与文字的表示方法数据与文字的表示方法2.1.1数据格式2.1.2数的机器码表示2.1.3字符的表示2.1.4汉字的表示2.1.5校验码2022-3-1432.1数据与文字的表示方法数据与文字的表示方法l计算机中使用的数据可分成两大类:l符号数据:非数字符号的表示(ASCII、汉字、图形等)l数值数据:数字数据的表示方式(定点、浮点)l计算机数字和字符的表示方法应有利于

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

3、点位置固定l浮点表示:小数点位置不固定2022-3-1472.1.1数据格式数据格式四、定点表示法l所有数据的小数点位置固定不变l理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):l纯小数l纯整数l定点数表示:l带符号数l不带符号数2022-3-1481、定点纯小数、定点纯小数 x0 x1 x2 x3 xn-1 xn表示数的范围是 0|12n(最小数、最大数、最接近0的正数、最接近0的负数)符号量值小数点固定于符号位之后,不需专门存放位置2.1.1数据格式数据格式2022-3-1492.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.01 x=2n最接近最接近0的负数的负数x=1.11.1 x=(12n ) 最小最小2、纯小数的表示范围、纯小数的表示范围2022-3-14102.1.1数据格式数据格式3、定点纯整数 x0 x1 x2 x3 xn-1 xn表示数的范围是 0|2n1最小数、最大数、最接近0的正数、最接近0的负数呢符号量值小数点固定于最后一位之后,不需专门存放位置2022-3-14112.1.1数据格式数据格式4、定点表示法的特点l定点数表示数的范围受字长限制,表示数的范围有限;l定点

5、表示的精度有限l机器中,常用定点纯整数表示; 如果用定点表示,则如何表示实数(包括小数和整数)呢? -引入浮点2022-3-14122.1.1数据格式数据格式五、浮点表示:小数点位置随阶码不同而浮动1、格式:N=RE.M2、机器中表示指数E基数R,取固定的值,比如10,2等尾数M阶符 阶码 数符 尾数 2022-3-14132.1.1数据格式数据格式3、IEEE754标准(规定了浮点数的表示格式,运算规则等)l规则规定了单精度(32)和双精度(64)的基本格式. l规则中,尾数用原码,指数用移码(便于对阶和比较)2022-3-14142.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。2022-3-14152.1.1数据格式数据格式l64位的浮点数中符号位1位,阶码域11位,尾数域52位

7、,指数偏移值是1023。因此规格化的64位浮点数x的真值为: x=(-1)S(1.M)2E-1023 e=E-1023l一个规格化的32位浮点数x的真值表示为 x=(-1)S(1.M)2E-127 e=E-1272022-3-14162.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(0111

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

9、:将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)102022-3-14192.1.1数据格式数据格式例2将数(20.59375)10转换成754标准的32位浮点数的二进制存储格式。解:首先分别将整数和分数部分转

10、换成二进制数:20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.01001001124 e=4于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)162022-3-14202.1.1数据格式数据格式4、十进制数串的表示l字符串形式lBCD(压缩)l编码方式l有权码: (8421码、2421码、5211码)l无权码: (余三码、格雷码)l自定义数据表示2022-3-14212.1.2数的机器码表

11、示数的机器码表示一、数的机器码表示l真值:一般书写的数l机器码:机器中表示的数, 要解决在计算机内部数的正、负符号和小数点运算问题。l原码l反码l补码l移码2022-3-14221、原码表示法、原码表示法l定点小数x0.x1x2xn x 1x0 0,正x原= 符号 1-x 0 x -1 1,负数l有正0和负0之分l范围2-n-11- 2-n例:x=+0.11001110 x原=0.11001110 -x原=1.110011102022-3-14231、原码表示法、原码表示法l定点整数X0X1X2Xn x 2nx0 0,正数x原= 符号 2n-x 0 x -2n 1,负数说明:l有正0和负0之分

12、l范围 1 - 2n 2n 1l例:x=+11001110 x原=011001110 -x原=1110011102022-3-14241、原码表示法、原码表示法 原码特点:l表示简单,易于同真值之间进行转换,实现乘除运算规则简单。l进行加减运算十分麻烦。2022-3-14252、补码表示法、补码表示法l定义:正数的补码就是正数的本身,负数的补码是原负数加上模。l计算机运算受字长限制,属于有模运算.定点小数x0.x1x2.xn溢出量为2,以2为模定点整数x0 x1x2.xn溢出量为2,以2n+1为模l定点小数x0.x1x2xn x 1x0 0,正数x补= 符号 2+x 0 x -1 1,负数20

13、22-3-14262、补码表示法、补码表示法例: x= -0.1011 lx补=10+x=10.0000-0.1011=1.0101ly=-0.01111ly补=10+y=10.00000-0.01111=1,10001l定点整数x0 x1x2xn x 2nx0 0,正数,0 x补= 符号 2n+1+x 0 x -2n 1,负数2022-3-14272、补码表示法、补码表示法l补码性质l高位表明正负l正数补码,尾数与原码相同l范围-2n2n-1(定点整数)l变相补码(双符号补码)l为了防止溢出而设定2022-3-14282、补码表示法、补码表示法l最大的优点就是将减法运算转换成加法运算。 X补

14、-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位已经超过字长故应丢掉l无正零和负零之分l但是,在求补码还要减法,电路繁琐,下面的反码表示解决着个问题。2022-3-14293、反码表示法、反码表示法l定义:正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示。l电路容易实现,触发器的输出有正负之分。2022-3-14303、反码表示法、反码表示法l对尾数求反,它跟补码的区别在于末位少加一

15、个1,所以可以推出反码的定义l定点小数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 2022-3-14313、反码表示法、反码表示法lx 补=x 反+2-n(证明见书)l反码表示有正0和负0之分l上述公式解决了前边的问题(求补码还要减法)l定点整数的反码定义见书2022-3-14324、移码表示法、移码表示法l移码表示法(用在阶码中)l定点整数定

16、义 x移=2n+x 2n x-2n l0000000011111111(-2n2n-1)l例+1011111 原码为01011111l补码为01011111 反码为01011111l移码为 110111112022-3-14334、移码表示法、移码表示法例-1011111 原码为11011111补码为10100001 反码为10100000移码为00100001特点:移码和补码尾数相同,符号位相反范围:-2n2n-1P22 浮点IEEE754表示e=-127+12800000000阶码表示数字”0”,尾数的隐含位为011111111阶码表示数字”无穷大” ,尾数的隐含位为0p21例3-9202

17、2-3-1434例例6以定点整数为例以定点整数为例,用数轴形式说用数轴形式说明原码、反码、补码表示范围和可能明原码、反码、补码表示范围和可能的数码组合情况。的数码组合情况。 2022-3-1435例例7将十进制真值将十进制真值(127,1,0,1,127)列表表示成二进制数及原码、列表表示成二进制数及原码、反码、补码、移码值。反码、补码、移码值。2022-3-1436例例8设机器字长设机器字长16位位,定点表示定点表示,尾数尾数15位位,数数符符1位位,问:问:(1)定点原码整数表示时定点原码整数表示时,最大正数最大正数是多少是多少?最小负数是多少最小负数是多少?(2)定点原码小数表定点原码小

18、数表示时示时,最大正数是多少最大正数是多少?最小负数是多少最小负数是多少?(1)定点原码整数表示最大正数值(2151)10(32767)10最小负数值(2151)10(32767)10(2)定点原码小数表示 最大正数值(1215)10(0.111.11)2最小负数值(1215)10(0.111.11)2注:1符号,数字2022-3-1437例例9假设由假设由S,E,M三个域组成的一个三个域组成的一个32位二进制字所表示的非零规位二进制字所表示的非零规格化浮点数格化浮点数,真值表示为(非真值表示为(非IEEE754标准):标准):(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正

19、数、最大负数、最小负数问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?是多少?(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 2022-3-14382.1.3字符和字符

20、串字符和字符串(非数值非数值)的表示方法的表示方法l符号数据:字符信息用数据表示,如ASCII等;l字符表示方法ASCII:用一个字节来表示,低7位用来编码(128),最高位为校验位,参见教材P24表2.1l字符串的存放方法CAI2022-3-14392.1.4汉字的存放汉字的存放l汉字的表示方法(一级汉字3755个,二级汉字3008个)l输入码l国标码一级(1655)*94二级(5687)*94图形符号(682个)(0109)*94l拼音、五笔l汉字内码:汉字信息的存储,交换和检索的机内代码,两个字节组成,每个字节高位都为1(区别于英文字符)2022-3-14402.1.4汉字的存放汉字的存

21、放l汉字字模码:汉字字形l点阵l汉字库2022-3-14412.1.5校验码校验码l校验码(只介绍奇偶校验码)l引入:信息传输和处理过程中受到干扰和故障,容易出错。l解决方法:是在有效信息中加入一些冗余信息(校验位)l奇偶校验位定义l设(01n1)是一个n位字,则奇校验位定义为:C0 1 n1,式中 代表按位加,表明只有当中包含有奇数个1时,才使C1,即C0。同理可以定义偶校验。 l只能检查出奇数位错;不能纠正错误。lp26例10自己看一下。l其它还有Hamming,CRC2022-3-14422.2 定点加法、减法运算定点加法、减法运算2.2.1补码加减法2.2.2溢出检测2.2.3基本的加

22、法和减法器2.2.4十进制加法器2022-3-14432.2.1补码加减法补码加减法l补码加法公式:x+y补=x补+y补l补码减法 为了将减法转变为加法,需证明公式: x-y补=x补+-y补 (证明) 为了求得同时-y补,需要证明-y补=乛y补+2-n(意义是-y补等于y补取反,末位加1)2022-3-1444补补补补补补证明证明l假设1, 1, 1 l现分四种情况来证明 (1)0,0,则0 补=x, 补=y, 补=x+y所以等式成立.(2)0,0,则0或0时,2 () 2,进位2必丢失,又因()0,故补补补当0时,2 () 2,又因()0,故补补2()补所以上式成立2022-3-1445补补

23、补补补补证明证明(3)0,则0或 0 这种情况和第2种情况一样,把和的位置对调即得证。 (4)0,0,则0 相加两数都是负数,则其和也一定是负数。补2,补2补补222(2)上式右边分为”2”和(2)两部分.既然()是负数,而其绝对值又小于1,那么(2)就一定是小于2而大于1的数,进位”2”必丢失.又因()x0 x补= 4+x 0 x -2 Sf1 SF2 0 0正确(正数)01上溢10下溢11正确(负数) Sf1 表示正确的符号,逻辑表达式为V=Sf1 Sf2,可以用异或门来实现2022-3-14512.2.2 溢出的检测溢出的检测二、检验举例:l0.1100, 0.1000,求 l0.110

24、0, -0.1000,求 l结果出现了01或10的情况就为溢出2022-3-14522.2.2 溢出的检测溢出的检测2、单符号位法lCf C000正确(正数)01上溢10下溢11正确(负数)lV=Cf C0 其中Cf为符号位产生的进位,C0为最高有效位产生2022-3-14532.2.3基本的加法和减法器基本的加法和减法器l基本的加法和减法器l半加器HiAi Bi不考虑进位l全加器考虑低位进位Ci-1和向高位的进位Ci 2022-3-1454一位全加器真值表输入输出AiBiCiSiCi100000001100101001101100101010111001111112022-3-1455FA逻

25、辑方程逻辑方程iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiCBCABACBABACBABABACBABACBACBABACBABABACBABA)()()()()(因为:2022-3-1456FA逻辑方程逻辑方程l逻辑方程见下iiiiCBASiiiiCBASiiiiiiiiiiiiiiiiiCBABACBABACBCABAC).( .)(12022-3-1457FA逻辑电路和框图逻辑电路和框图FA(全加器)逻辑电路图 FA框图2022-3-1458n位行波进位加法器位行波进位加法器图2-3行波进位的补码加法/加法器2022-3-14592. 定点乘法运

26、算定点乘法运算2.3.1 定点原码乘法2.3.2 定点补码乘法2022-3-14602.3.1 定点原码乘法定点原码乘法l乘法实现方法l在现有的加法和减法器的基础上增加适当的以为线路及控制逻辑可以实现l用LSI和VLSI工艺实现专用的乘法器l编制子程序(单片机等低端机器)2022-3-14611、定点原码乘法原理、定点原码乘法原理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 11

27、01 0.10001111()2022-3-14621、定点原码乘法原理、定点原码乘法原理ln位乘n位积可能为2n位.l乘积的最后是所有部分积之和,有n个数相加,而FA只有两个输入端所以需要改造方法一:硬件实现方法(串行的“加法和移位”),硬件 结构简单,速度太慢(时间延迟太长).方法二:不带符号位的阵列乘法器2022-3-14631、定点原码乘法原理、定点原码乘法原理设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 部分积右移,前面补

28、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运算四次结束,数值部分运算2022-3-14642、不带符号位的阵列乘法器、不带符号位的阵列乘法器不带符号阵列乘法器逻辑图2022-3-1465

29、2、不带符号位的阵列乘法器、不带符号位的阵列乘法器2022-3-14663、带符号位的阵列乘法器、带符号位的阵列乘法器l求补电路原理:算前求补乘法器算后求补,见下图2022-3-14673 3、带符号的阵列乘法器、带符号的阵列乘法器l求补电路小结lE=0时,输入和输出相等lE=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0 A=A,左边各数值位按位取反1 A=乛Al可以用符号作为E 的输入l原:1.11110 补:1.00010l时间延迟分析:转换n+1位带符号的时间延迟为t=n*2T+5T,其中n*2T为或门延迟时间,5T为最高位与门和异或门的时延。不变,左边数值

30、位取反2022-3-14683 3、带符号的阵列乘法器、带符号的阵列乘法器( (间接法间接法) ) 原码补码2022-3-1469举例举例(P36)例20用带求补器原码乘法器(输入/出:为原码)Y=(+15)*(-13)例21用带求补器补码乘法器(输入/出:为补码)Y=(-15)*(-13)2022-3-14702.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 0

31、r2得余数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得余数r4w商0还是商1人可以比较后确定,计算机如何确定?w余数末位补0后,减去除数右移后的值,导致加法器尾数逐渐增多,最后要求加法器的位数必须为被除数的两倍定点原码一位除法实现方案(手工)2022-3-1471 定点原码除法的流程图 R0 0 ? 第 8 次循环? 3a. 商 1 3b. R0 + R2 R0, 商 0 4. R0, R1左移 1. R0, R1左移, 商

32、0 2. R0 - R2 R0 5. R0右移 Y N N Y R0,R1被除数/余数,商R2除数最后一步余数是负数,需要修正再加上除数.2022-3-14722、不恢复余数的除法、不恢复余数的除法l加减交替法(不恢复余数法)l当i-1次求商的余数为正时,下一次求商的办法是 Ri=2Ri-Yl若Ri0时,则I位上商0,而恢复余数作加法Ri+Y,下一次即I+1次求商作减法时Ri+1=2(Ri+Y)-Y=2Ri+Yl上述式子表明,当某一次商差为负时,本次商0,继续求下一位商不必恢复余数,而直接将商的差值左移动一位,在加Y的办法得到。2022-3-14732、不恢复余数的除法、不恢复余数的除法l法则

33、:l余数为正,商1,求下一位商的办法是余数左移,减除数l余数为负,商0,求下一位商的办法是余数左移,加除数l若最后余数与被除数X异号,则需要纠余,增加如下操作:l若X、Y同号,用+Y纠余;l若X、Y异号,用-Y纠余。l例:x=0.1011 y=0.1101 求x/yx补=001011y补=001101-y补= .l计算过程如下:2022-3-1474 001011 00000 开始 110011 -y 111110 00000 为负,商0 111100 00000 左移一位 001101 + y 001001 00001 为正,商1 010010 00010 左移一位 110011 -y 00

34、0101 00011 为正,商1 001010 00110 左移一位 110011 -y 111101 00110 为负,商0 111010 01100 左移一位 001101 + y 000111 01101 为正,商1被除数商说明2022-3-14752.不恢复余数的除法不恢复余数的除法l则x/y=0.1101余数为0.0111*2-4(左移了4次)l小结:l判断溢出/”0”l商的符号由被除数的符号和除数的符号共同决定l被除数的位数可以是除数位数的两倍,地位开始放于商的寄存器中.l最后一步余数是负数,需要修正再加上除数,移位.直到为正2022-3-1476可控的加法/减法单元CAS单元P=

35、0,作加法运算P=1,作减法运算第一行:P=1减法运算;不恢复余数算法除数右代替部分积左依x/y商Q=0.q3q2q1余数R=0.00r6r5r4r32022-3-14772.3.4 并行除法器并行除法器l可控的加法/减法单元CAS单元lP=0,作加法运算lP=1,作减法运算2022-3-14782.3.4 并行除法器并行除法器上级商,作为下一级的P(控制端)输入。2022-3-1479举例举例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 余数为

36、正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 2022-3-14802.5 定点运算器的组成定点运算器的组成2.5.1 逻辑运算2.5.2 多功能算术/逻辑运算单元ALU2.5.3 内部总线2.5.4 定点运算器的基本结构2022-3-14812.5.1 逻辑运算逻辑运算l自学P442022-3-14822.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl

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

38、2022-3-1485S0 S1 Yi S2 S3 Xi 0001101 10001101 11iAiiBAiiBA0iiBA iiBA iAiiiiiiiiiiiiASSBASSBASSSSXBASSBASSASSY32323232101010)()(XiYi 与控制参数和输入量的关系构造如下真值表2.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元ALU2022-3-14862.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUiiiiiiiiiBSBSAYBASBASX1023iniiiniiininniiiinniiiXCYXYCYXCXCCYYXCCYXF111111

39、1)(1、可以证明:Xi+Yi=Xi Xi.Yi=Yi(自己试试看)2、进一步化简得到下式2022-3-14872.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUlALU的某一位逻辑表达式见下:iniiiCYXFiniiinCXYC1iiiiiiiiiBSBSAYBASBASX10232022-3-1488例如:S3S2S0S10000代入:inininiiiiiiiiiiiiiACACACXYFABSBSAYBASBASX的时候,输出结果为所以在)设0000SS0(1100031111023则可以处理16种算术逻辑运算,每种运算只针对1位二进制编码?思考:如何设计4位ALU?1

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

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

42、2X3 G为进位发生输出 P为进位传送输出 增加P和G的目的在于实现多片(组)ALU之间的先行进位,需要配合电路,称为先行进位发生器(CLA) 器件: 741812022-3-14922.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl具有正逻辑和负逻辑两种内部逻辑结构图见下页2022-3-149374181ALU逻辑图(逻辑图(1)+iiiiiBASBASX23iiiiBSBSAY10AiS0S1AiiBS2AiBiS32022-3-149474181ALU逻辑图(逻辑图(2)XiYiCnMFi异或门1niiiCXYF2022-3-149574181ALU逻辑图(逻辑图(2)P

43、 GX3Y3X2Y2X1Y1X0Y0 C0GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X32022-3-149674181ALU逻辑图(总体)逻辑图(总体)2022-3-14972.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算单元ALUl算术逻辑运算的实现(74181)lM=L时,对进位信号没有影响,做算术运算lM=H时,进位门被封锁,做逻辑运算l说明:l74181执行正逻辑输入/输出方式的一组算术运算和逻辑运算和负逻辑输入/输出方式的一组算术运算和逻辑运算是等效的。lA=B端可以判断两个数是否相等。2022-3-14982.5.2 多功能算术多功能算术/逻辑运算单元逻辑运算

44、单元ALUl设计16位ALUlCn+x=G0+P0Cn Cn+y=G1+P1Cn+xl Cn+x=G2+P2Cn+y Cn+4=G3+P3Cn+zl片内先行进位,片间串行进位2022-3-14992.4.3 先行进位先行进位ALUl两级先行进位的ALUl4片(组)的先行进位逻辑lCn+x=G0+P0Cn lCn+y=G1+P1Cn+x=G1+G0P1+P0P1Cnl Cn+x=G2+P2Cn+yl =G2+G1P2+G0P1P2+P0P1P2Cn lCn+4=G3+P3Cn+zl =G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cnl =G*+P*CnlG*为成组先行进位发生

45、输出lP*为成组先行进位传送输出2022-3-14100成组先行进位部件成组先行进位部件CLA的逻辑图的逻辑图2022-3-141012.4.3 先行进位先行进位ALUl例:设计16位先行进位ALU(图2.13)l内先行进位,片间先行进位.2022-3-1410232位位ALU逻辑方框图逻辑方框图 2个74L1828个4位ALU74L1812022-3-141034位ALUA15-A12B15-B12F15-F12C124位ALUA11-A8B11-B8F11-F8C84位ALUA7-A4B7-B4F7-F4C44位ALUA3-A0B3-B0F3-F0C0C16G*P*7 4 L 1 8 2

46、CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0G PG PG PG P4位ALUA15-A12B15-B12F15-F12C124位ALUA11-A8B11-B8F11-F8C84位ALUA7-A4B7-B4F7-F4C44位ALUA3-A0B3-B0F3-F0C0C16G*P*7 4 L 1 8 2 CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0G PG PG PG P4位ALUA15-A12B15-B12F15-F12C124位ALUA11-A8B11-B8F11-F8C84位ALUA7-A4B7-B4F7-F4C44位ALUA3-A0B3-B0

47、F3-F0C0C16G*P*7 4 L 1 8 2 CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0G PG PG PG PG*P*7 4 L 1 8 2 CG3 P3 Cnz G2 P2 Cny G1P1 CnxG0 P0.64位组间先行进位ALU2022-3-141042.5.3内部总线内部总线l内部总线l机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。l分类l所处位置内部总线(CPU内)外部总线(系统总线)l逻辑结构单向传送总线双向传送总线l图(2-14)2022-3-14105三态门组成的双向数据总线三态门组成的双向数据总线2022-

48、3-14106由三态门组成的数据总线由三态门组成的数据总线2022-3-141072.5.4定点运算器的基本结构定点运算器的基本结构1、单总线结构的运算器2022-3-141082.5.4定点运算器的基本结构定点运算器的基本结构2、双总线结构的运算器双总线结构的运算器2022-3-141092.5.4定点运算器的基本结构定点运算器的基本结构3、三总线结构的运算器2022-3-141102.6 浮点运算方法和浮点运算器浮点运算方法和浮点运算器2.6.1 浮点加法、减法运算浮点加法、减法运算2.6.2 浮点乘法、除法运算浮点乘法、除法运算2.6.3 浮点运算流水线浮点运算流水线2.6.4 浮点运算

49、器实例浮点运算器实例2022-3-141112.6.1 浮点加法、减法运算1、浮点加减运算设有两个浮点数和,它们分别为2EM2EM其中E和E分别为数和的阶码,M和M为数和的尾数。两浮点数进行加法和减法的运算规则是(M2EEM)2E,设E0,表示EE;l若EE。l当EE 时,要通过尾数的移动以改变E或E,使之相等。2022-3-14115l原则:小阶向大阶l设E0,表示EE,则移动y的尾数,M右移E位,问题:为什么要小阶向大阶看齐?l阶差=Ex-Ey=00 010- 00 100 =11 110l即阶差为-2,Mx右移两位,Ex加2lx=00100 , 0.00110110(11)2.6.1 浮

50、点加法、减法运算2022-3-141162.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.1101 10.0001 11.

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

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

53、*2102022-3-141212.6.2 浮点乘法和除法运算浮点乘法和除法运算l设有两个浮点数和:2EM2EMl2(EE)(MM)l2(EE)(MM)l乘除运算分为四步l0操作数检查l阶码加减操作l尾数乘除操作l结果规格化和舍入处理2022-3-141222.6.2 浮点乘法和除法运算浮点乘法和除法运算l浮点数的阶码运算(移码的运算规则)lX移+Y移=2n+X+Y移)2(mod21nnxyyxyxyx补移补移移移移原因是什么呢?)2(mod1nxyyxyx补移补移移2022-3-141232.6.2 浮点乘法和除法运算浮点乘法和除法运算l移码采用双符号位,为了对溢出进行判断l01 为正 00

54、 为负l10 上溢 11 下溢011,110,求移 和 移,并判断是否溢出。 移01 011, 补00 110, 补11 010移移补10 001, 结果上溢。 移移补00 101, 结果正确,为3。2022-3-141242.6.2 浮点乘法和除法运算浮点乘法和除法运算l尾数处理l截断l舍入l尾数用原码表示时只要尾数最低为1或者移出位中有1数值位,使最低位置10舍1入l尾数用补码表示时(p57例30)丢失的位全为0,不必舍入。丢失的最高位为0,以后各位不全为0时;或者最高为1,以后各位全为0时,不必舍入。丢失的最高位为1,以后各位不全为0时,则在尾数的最低位入1的修正操作。2022-3-141252.6.2 浮点乘法和除法运算浮点乘法和除法运算 设有浮点数250.0110011,23(0.1110010),阶码用4位移码表示,尾数(含符号位)用8位补码表示。求浮。要求用补码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),并用尾数低位字长值处理舍入操作。2022-3-14126解解:移码采用双符号位,尾数补码采用单符号位,则有 M补0.0110011, M补1.0001110,E移01 011, E补00 011, E移00

温馨提示

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

评论

0/150

提交评论