运算方法和运算器(1).ppt课件_第1页
运算方法和运算器(1).ppt课件_第2页
运算方法和运算器(1).ppt课件_第3页
运算方法和运算器(1).ppt课件_第4页
运算方法和运算器(1).ppt课件_第5页
已阅读5页,还剩181页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 运算方法和运算器2.1 数据与文字的表示方法2.2 定点加法、减法运算 2.3 定点乘法运算2.4 定点除法运算2.5 定点运算器的组成2.6 浮点运算方法和浮点运算器本章小结相关链接 2.1、进位计数制2.2、带符号数的表示(编码系统)2.3、数的定点表示与浮点表示2.4、补码运算基础第一节 数据信息的表示第一节 数据信息的表示 指令 控制信息 (指挥计算机操作) 控制字 计算机数的信息 定点数 数值数据 浮点数 数据信息 (计算机加工的对象) 字符串 非数值数据 数字串数值数据有确定的数值,能表示该数的大小,能在数轴上找到确定的点。 表示一个数值数据有三个要素: 进位计数制 (数的

2、进位系统) 采用某种进位制,系统便规定了可使用的数字符号的个数 符号 (数的编码表示:原码、补码、反码、移码) 符号的处理导致机器数的编码表示的不同 小数点 (定点、浮点) 小数点位置的浮动性决定了数的表示范围第一节 数据信息的表示非数值数据不含有“值”的数据。包括两种:逻辑数据和字符数据。在机器数也用二进制数码串表示,可视做非结构化的二进制数,即没有上面三个要素含义的二进制数。第一节 数据信息的表示字符:需哪些常用标准字符?如何表示这些字符?如何信息编码的长度?信息表示的可靠性 检验码方法 信息在存储和传送过程中可能出错,能否识别并自动纠正它?第二节 数据信息的表示 2.1.1 进位计数制一

3、、 进位计数制的基本概念二、 计算机中常用的进位计数制 三、 各种数制间的互相转换返回总目录2.1.1 进位计数制的基本概念 R进位计数制的数:基数为R,按“逢R进一”的进位计数制组成的数字序列。 使用0(R-1)个数字符号。 eg:二进制数字系统:基数R=2,使用的数字符号0、1; 十进制数字系统:基数R=10,使用的数字符号0、1、2、3、48、9 权:数字序列中,一个数字符号处于不同的位置时,所含的值是不同的,这个值 等于该数字符号乘上它所在位置的权。权是一个指数,底是进位基数R,是 序号。 数K和它的值 可用下列公式表示: k= . . = = = 其中: 是第i位的权,m,n为正整数

4、,而0 R,即为0,1,.(R1) 中的1个返回2.1.2 计算机中常用的进位计数制 1.二进制 计算机采用二进制表示的理由: 二进制表示便于物理实现 具有两个稳定状态的物理器件很多,他们恰好对应表示1和0两个数字;且可以用简单的 方式存储和传送。 二进制表示能节省器材和设备 若采用十进制,需要制造具有稳定状态的物理电路,很难;而用四个具有两种状态的物 理电路就能组合表示16中二进制编码,可用其中十个编码表示十进制的数,从这个意义 上,二进制能节省设备 二进制数运算简单 数与数之间的运算用器件或电路容易实现但是二进制表示也存在着缺点:它表示数的容量较小返回二进制以2为基数,逢2进位。任意一个二

5、进制数可用多项式表示为:n位无符号二进制整数所能表示的范围是0 ;n位二进制代码所能表示的状态组合是 种。2.八进制 3.十六进制4.十进制采用二进制计数制,对计算机来说,运算、存储和传送极为方便。然而对人来说,二进制书写起来很不方便。采用八进制、十六进制,多被用于指令的书写、目的程序的输入或输出。返回2.1.3 各种数制间的互相转换1.二、八、十六进制的互相转换 由于这三种进位制的权之间有存在的联系,2, , ;这样每一位八进制数相当于三位二进制数,每一位十六进制数相当于四位二进制数。在转换中,位组的划分是以小数点为中心向左右两边延伸,八进制按三位划分,十六进制按四位划分,不够者补齐0。Eg

6、 : = =2.二进制、十进制的互相转换二进制 十进制 按权相加法:将各位数字与它的权相乘,其积相加,和数即为转换结果。 eg: 二进整数 十进整数的逐次乘基相加法 自阅 二进小数 十进小数的逐次除基相加法返回十进制 二进制 将十进制数分成整数与小数两个部分分别转换,然后再拼接起来,即可实现。 a.十进制整数 二进制整数 除基取余法 法则:由 同除2: 若余数为0,表明 =0;若余数为1,表明 =1。继续对商除以基数2,则可依次判定 等各项系数。 法则:将十进制整数除以2,得到商和余数,余数对应为二进制数低位的值;继续对 商除以2,如此继续直到商等于0为止,所求各次余数就是所求二进制数的各位

7、值(最后余数为最高位的值)。 返回 eg: 2 57 2 28 余1 底位 2 14 余0 2 7 余0 2 3 余1 2 1 余1 0 余1 高位 返回b.十进制小数 二进制小数 乘基取整法 推导:由 同乘基数2: 若 =0,则2S仍为小数;若 =1,则2S出现整数1的部分。重复上述将小数部分乘以2的操作,将能根据各次是否出现整数部分而依次判定 法则:用基数2去乘二进制纯小数;去掉乘积的整数部分,再用2去乘余下的纯小数部 分,如此继续,直到乘积部分为整数(小数部分为0)或已满足要求的精度为止 eg: 20.8125=1.625 1 20.625=1.25 1 20.25=0.5 0 20.5

8、=1 1 返回 eg: 20.5627=1.1254 1 20.1254=0.2538 0 20.2508=0.5016 0 20.5016=1.0032 1 20.0032=0.0064 0 20.0064=0.0128 0 由于实际机器所表示的数都有一定的位数,应转换到机器可能表示的精度时为止。 eg: 将转换后的整数与小数两部分拼接起来,既为所求答案。 十进制整数 二进制整数 自阅 的减权定位法 十进制小数 二进制小数返回 2.1.2 带符号数的表示(编码系统)一、 真值与机器数二、 原码表示法 三、 补码表示法四、 反码表示法返回总目录 计算机中,数是以二进制形式存放的,二进制数码1和

9、0分别对应一位寄存器的两种不同的状态。若数符也能用寄存器的两种状态来表示的话,机器就能识别和表示符号了问题:数字化后的符号能否作为数一样参加运算?解决:对计算机的数据加以定义,改造成机器内部的运算结构,即数的编码表示,为此 研究出了一套完整的处理非符号数的二进制编码表示系统码制。返回2.2.1 真值与机器数 真值按一般书写形式(用正负符号加绝对值表示数的大小)表示的原值。 机器数连同数符一起数码化的数。即:机器内部编码表示的数。返回2.2.2 原码表示法 符号位为0,表示该数为正用最高位表示符号 符号位为1,表示该数为负有效数值部分则用二进制的绝对值表示。定点小数、定点整数的原码表示定义:1.

10、定点小数:设原码形式为 ,则 x 1x0 x = 1-x=1+|x| 0 x-1 xxoo-11.1111.0000.0000.111-0+0+1原原返回讨论: 当x为正时,x 与省略了正号的真值在表示形式上完全一致; 当x为负时,x 与真值在表示形式上的区别仅是符号位为1。 真值0在原码表示中可以有两种形式:0.000与1.000。 运算方法:原码较直观,运算结果会一目了然。用原码作乘除运算时,可取其绝对 值运算而符号单独按异或逻辑运算处理,故较方便;但对用得最多的加减运算,不仅需根据操作码,还要根据两数的符号才能实际的操作性质,这时原码表示就不很方便了。2.定点整数:设原码形式为 ,则 x

11、 x0 x = 0 xxx-0+0-1+1111111000110000000000000101111原原原原返回2.2.3补码表示法1.补码表示的方法 化“减”为“加”对负数的表示方法作适当的变换 eg: 时钟 “同余”的概念:设两整数a、b可用同一个整数M去除而余数相同,则称a、b对M 同余。记做a=b(mod M) 时钟以12为模,有 ,111(mod12) 我们说1与11对模12互补,或1的补码(以12为模)是11。计算机的运算受一定字长的限制,属于有模运算。模:一个计数器的计数容量,或者溢出量。 定点小数 ,溢出量为2,以2为模; 定点整数 ,连符号位字长(n+1)位,溢出量为 ,故

12、以 为模。这种定义模的方式相当于把符号也看成一位数字。返回2.补码的定义 确定模后,我们将某数x(真值)对该模的补数称作其补码,定义如下: x =M+x (mod M) 若x0,则模M作为溢出量可以舍去,因而整数的补码就是它本身,形式上与补码相 同。 eg: x=0.101,则 x =2+0.101=0.101 (mod 2) 若xx0 x = (mod 2) 2+x=2-|x| 0 x-1若定点整数补码形式为 ,则 x x0 x = (mod 2) 0 xxx-10.1111.0011.00001.110.0000.001xx01111001100+1-1000001011补补补补返回3.补

13、码的性质 在补码表示中,最高位 表明了该数的正负。若 0,则真值x0;若 =1,则真值x0。这一点与原码表示方法相同。 正数的补码表示,其尾数在形式上与原码相同;而负数的 补码表示,尾数形式与原码不同。后面分析其变化规律。返回从上面用数轴表示的定点数补码的表示范围和可能的数码组合情况看: a.与原码不同,在补码中“0”只有一种表示形式 0.00(定点小数) , 000(定点整数) b.用补码表示负数,其范围可到-1(定点小数),或者 (定点整数),比原码表示范围多一种数码组合。 注意:原码定义式与补码定义式(定点数)在数域划分上的区别。将负数x的真值与其补码x 作一映射图,可看出:负数补码表示

14、的实质是将负数“映射”到正数域,因而实现了化“减”为“加”简化运算的目的。补返回0.111.001.0011.110-10Fig. 定点小数补码与真值运算图xx0.001o2正数 0.xx负数 1.xxReplay补开始下一步结束返回1001100111-011-100-0010Fig .定点整数补码与真值映射图xxo-10正数 0 xx负数 1xxReplay补开始下一步结束返回说明:以定点整数的映射图为例a.对于模 数轴所赋予的两种不同解释: 是全部赋予正数 0 0 赋予正数 0 赋予负数 1 正数各占一半 符号位0为正,1为负,b.在引入模 后,以x = +x表示负数x,实质上是将负数x

15、向正轴方向平 移 ,这样负数x被映射到正域中,于是减一个正数(即加一个负数)被转化为加另一个正数,这正数就是负数补码的映射值。c.从表明真值的正负这一角度,最高位x0被当作符号位;从映射结果看,x0是映射值中 的一个数位。因而在补码运算中符号位x0应当而且可以象数码部分那样参加运算,这 是补码运算法则中的一个关键补返回4.由真值、原码转换为补码 可根据补码定义式进行 eg: 1. x=0.1010 x =x =0.1010 2. x=-0.1010 x =1.1010 x =2+x=2-|x|=2-0.1010=1.0110 由原码 补码时,应注意符号位保持不变,而尾数的变化如下: 规律一:“

16、变反加一” 当x0,则x0=0,x=0.x1x2xn= 若xx0 x = 相当于mod ( )+x 0 x-1 定点整数:反码形式 ,则 x x = 相当于mod ( )+x xxxx1.000-0+01.1110.0000.111-0.111+0-0+1-1100011101110000001011-11-001反反反反返回由此:在形式上反码最高位x0表明数的正反,这点与原码、补码相同;而尾数则为原码各位的反变量。 若x = 则x =反码表示中,”0“有两种表示:1.11与0.00(定点小数),一般只用负0表示0。 原反返回关于本节2.2的总结:正数的编码就是真值本身,仅符号位取0;对负数,

17、有三种不同的编码表示。或者, 正整数的三种编码都具有相同的真值;负整数的三种编码所含的真值各不相同。对负数:x 和x 符号相同,但数值恰好相反x =1000时,真值x=-8,这为特殊情况,权为 位的1既代表符号又代表数值。掌握 这点对加深和运用补码有益。数0的三种编码表示 数0作为一个数出现在正数与负数的交界。数0划在正数的范围内,记做+0,三种编 码完全一样。数0划在负数范围,记做-0,它的编码要遵循负数编码的定义。 具体地讲:+0的三种表示为数0本身。在补码表示中,+0与-0表示完全一样,机器不 需识别0的符号;在原码表示中,+0与-0表示仅只符号位相反,数值是一样的;在反 码表示中,-0

18、的表示正好是+0的反码。机器若采用后两种编码表示,会引起对数0符 号位识别的麻烦。反反原返回以4位(含符号位)整数的3种编码表示为例 X的编码 真值 原 反 补 0 1 1 1 +7 +7 +7 0 1 1 0 +6 +6 +6 0 1 0 1 +5 +5 +5 0 1 0 0 +4 +4 +4 0 0 1 1 +3 +3 +3 0 0 1 0 +2 +2 +2 0 0 0 1 +1 +1 +1 0 0 0 0 +0 +0 +0 1 0 0 0 -0 -7 -8 1 0 0 1 -1 -6 -7 1 0 1 0 -2 -5 -6 1 0 1 1 -3 -4 -5 1 1 0 0 -4 -3 -

19、4 1 1 0 1 -5 -2 -3 1 1 1 0 -6 -1 -2 1 1 1 1 -7 -0 -1返回 2.1.3 数的定点表示与浮点表示一、 定点表示法二、 浮点表示法 三、 移码(增码)四、 定点表示与浮点表示的比较返回总目录2.3.1 定点表示法 约定机器中所有数据的小数点位置固定不变 1.定点小数 约定小数点在最高数位之前,符号位之后,即参与运算的小数是纯小数,记做 三种编码的表示范围: 原码 1.11x0.111 反码 1.00 x0.111 补码 1.000 x0.111符号位小数点位置数值部分(尾数)上溢区(溢出)负数区上溢区(溢出)正数区下溢区(机器0)0.001.001

20、1.00001.1110.0010.111返回2.定点整数 约定小数点在最低位之后,即参与运算的数是纯整数,记做: 表示范围: 原码:1111x0111 反码: 1000 x0111 补码: 1000 x0111符号位整数部分(尾数)小数点位置返回3.比例因子 定点计算机在硬件设计上着眼于处理定点数,它可处理的定点数分为三类: 无符号整数(相当于不设符号位的正整数);带符号的定点整数;带符号的定点小数 选择哪一种数是在程序中约定的,硬件上并无区别。 由于实际处理的一个数可能即有整数部分又有小数部分,为将它变为约定的定点数形 式,就需在编制程序时设定一个比例因子,把数缩小为定点小数或扩大为定点整

21、数, 所得到的运算结果再根据比例因子与操作类型(缩小、扩大)还原为实际的数值。 eg:010.01+01.100 =(0.1001+0.0110) =(01001+00110)问题:比例因子选择不恰当时,数的表示范围与数的有效精度矛盾。 eg.在变为定点小数时缩小比例不够大,运算结果可能出现等于或大于参数1的情况, 即产生溢出,需要处理;反之,若缩小比例过大,将会损失有效精度。 在变为定点整数时也有同样的问题。 返回2.3.2 浮点表示法 将比例因子以恰当的形式表示在数之中(小数点位置不固定,根据需要而浮动。浮点表示法的依据:数值范围很大的数其有效数位并不一定很多。1.浮点数的格式: 浮点数的

22、真值: 其中:R阶码的“底”,是事先隐含约定的,一般选得与尾数的基数相同。 J阶码,为整数,一般用移码或补码表示。如用补码表示,则设置符号位 表示本身的正负。 :数符,表明数的正负,S1Sn构成尾数W,一般是小于1的小数,可用补码或原码表示。 阶符数符阶码J尾数返回2.浮点数的格式化操作: 数S的范围主要由阶码决定,阶码相当于定点数中所取的比例因子,但它表示为浮点 数的一部分,可以浮动。有效数字的精度则主要由尾数决定,为充分利用尾数的有 效位数(格式化),令尾数的绝对值限定在某个范围内,或者使尾数最高位具有非 0的数字。 对于正数,规格化尾数最大值为0.111 最小值为0.100 对于负数,规

23、格化尾数(以补码表示) 最小值为1.000 最大值为1.011 其中,我们把1.100除外,因为它刚好是 ,为使机器能准确判别,在补码表示 中,约定不把 列入规格化尾数。 返回格式化后的浮点数数值范围(补码格式化):上溢区下溢区上溢区负数区正数区1.00000002011111111.01111112100000000.1000000210000000.1111111201111111返回2.3.3 移码(增码) 主要用于浮点阶码的运算移码的引出:浮点表示的阶码是一个正整数或一个负整数,在对两个浮点数进行相加或 相减之前,必须先对它们的阶进行比较,用移位的方法使两阶码相等。为简化比较 操作,使

24、它不牵涉到阶码的符号,方法之一是绕过符号问题,对每个阶码都加上一 个足够大的正的常数,使所有的阶码都转化为正整数,可以形成移码,这就消除了 计算过程中阶符的影响。这个足够大的正的常数等于最负阶码的绝对值。移码的定义:设定点整数移码的形式为x0 x1x2xn,则 x 式中x 为机器数,x为真值 eg.某机浮点数的阶码共8位(含一位符号位),则用移码表示 x xx移移移移返回移码的性质:当xy0 则y =y =0.y1y2yn=|y| 由原码与真值间的关系: -y =1.y1y2yn -y =2-|y|=2-0.y1y2yn = = 0y-1 若y 由y 2y y=y -2= = =补补补补补补补

25、补补补补原原返回 -y= 0y-1 y 结论:不管y的真值为正或为负,已知y 求-y 的方法都是:将y 连同符号位 一起变反,末尾加“1”(在定点小数中这个“1”是 ) eg:1 (y) =0.10111 则(-y) =1.01001 (y) =1.01101 则(-y) =0.10011 eg:2 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 100111 x-y=0.0111 eg:3 x=-0.1101, y=-0.0110, x-y=? 解: x 1.0011 -y

26、0.0110 x-y 1.1001 x-y=-0.0111补补补补补补补补补补补补补补补补补返回2.4.2 补码运算的基本法则1.补码运算基本约定: 参与运算的各操作数均用补码表示 数符作为数的最高位参与运算 将减数变补,y -y ,以求和代替求差 运算结果为补码表示2.符号位处理规律 关键:可将符号位作为数的一部分参与运算吗? 计算机的运算是有模运算,以补码表示 数的实质是将 数映射到正数域,即较大的 负数对应的补码也较大,故符号位已看作数的一部分,因此符号位应参与运算。补补返回下面分析补码运算中的一些典型情况,归纳出符号位处理的规律。 以定点整数为例,定义最高位为符号位,次高位为最高有效位

27、(表明数值部分的最高 位),超出模的部分在运算后将被舍去。两数均为正。运算中最高有效位无进位,运算结果为正 则 两数均为正。运算中最高有效位有进位,则正溢 则 正溢两数均为负。运算中最高有效位有进位,运算结果为负 则两数均为负。运算中最高有效位无进位,则负溢 则 负溢两数异号。运算中最高有效位有进位,运算结果为正 则两数异号。运算中最高有效位无进位,运算结果为负 则返回9+3=12 11+7=18 (-9)+(-3)=-12 01001 01011 10111 +00011 +00111 +11101 01100 10010 110100(-11)+(-7)=-18 9-3=6 3-9=-6

28、10101 01001 00011 +11001 +11101 +10111 101110 100110 11010返回表明:让符号位参与运算能得到以补码表示的正确结果,包括正数或负数结果 (溢出问题下面专门讨论) 如果先不考虑符号位参与运算,上面例子也表明:可根据两数的数符 和最高有效位是否有进位C来判断结果符号,由真值表有: 上式为一全加器逻辑,与让符号位参与运算的规定完全吻合。这样我们就从补码性质和结果数符判别两个方面说明了符号位参与运算的正确性。返回2.4.3 溢出判断与变形补码溢出判断的必要性: 溢出是指计算结果超出计算装置容量。选定了字长并选定了某种数据表示格式后,所能表示的数据范

29、围也就相应确定。一旦运算结果超出所能表示的范围,溢出部分将被丢失,留下来的结果将不正确。如果只有一个符号位,溢出还将使结果符号发生错乱。所以有必要解决溢出判断问题,使计算机据此做出相应的反应,如何并显示溢出,或通过溢出处理程序自动地修改比例因子然后重新运算。溢出判断方法:1.硬件判断逻辑之一 溢出= 其中: 为参与运算的操作数数符; 为结果数符 说明:两正数相加即 ,本应得到正的和数,若由于最高有效位产生进位而使 ,表示正溢; 两负数相加即 ,本应得到负的和数,若由于最高有效位无进位而使 ,表明产生负溢。返回2.硬件判断之二 分析2.4.2节例子还可发现:当最高有效位产生进位而符号位无进位(正

30、溢),或最高有效位无进位而符号位有进位(负溢)时,表明有溢出,故:溢出3.变形补码(多符号位) 一个符号位只能表明正、负两种情况,当产生溢出时会令符号位的含义产生混乱。若将符号位扩充为两位,使其所能表示的信息量扩大,就能判断是否有溢出以及结果的正确符号。 返回分析采用双符号位后的溢出情况: 11+7=18 (-11)+(-7)=-18 001011 110101 + 000111 + 111001 010010 1101110上例表明:有溢出时结果的两个符号位将不一致。可定义双符号位的含义如下: 00结果为正,无溢出 01结果正溢 10结果负溢 11结果为负,无溢出返回采用双符号位后可得到又一

31、判断逻辑式:溢出说明:多符号位的实质是扩大了模M。 如果用双符号位的定点小数 ,其模M=4,被称做变形补码,其定 义如下: S 2S0 S (mod 4) 4+S 0S-2 或x +y =x+y (mod 4)同样成立,为了得到两数变形补码之和等于两数和的 补码,同样必须: 两个符号位都看作数码一样参与运算 两数进行以4为模的加法(仍是二进制),即最高符号位上产生进位要丢掉。补补补补返回XX0-1000.01.0010.0011.0011.11.111正溢负溢221-213补00.1100.xx11.xx开始下一步结束Replay返回由上图,采用变形补码后,任何小于1的正数,两个符号位都是“0

32、”,即 ;任何大于1的负数,两个符号位都是“1”,即 。如果两数相加后,其结果的符号出现“01”或“10”两种组合时,表示发生溢出。另:不管结果是否有溢出,第一符号位 将能指示结果的正负。类似地,双符号位的定点整数 ,其模 ,变形补码定义为: S S (mod ) 补返回XX0-10000011010010001100111111正溢负溢补开始下一步结束Replay返回2.4.4 移位 逻辑移位:只有数码位置的变化而无数量概念的变化 算术移位:数符不变,数量发生变化1.以原码表示的正、负数的移位规则(含以补码或反码表示的正数): 左移:操作前 操作后 若左移无溢出,表明原最高有效位x1=0;若

33、x1=1,左移将产生溢出,这在 算术移位中是不允许的。 右移:操作前 操作后2.以补码表示的负数 左移:符号位不变,尾数最低位补0 操作前 操作后返回若左移后不产生溢出,则x1=1,所以让x1向符号位移位,其效果相当于符号位保持1不变。若x1=0,左移会溢出,即不应左移。右移:符号位不变,最高有效位补1 操作前 操作后补码最高有效位补1 原码移位中的补0 (注意对比正数右移和负数右移)3. 以反码表示的负数 左移:末位补1 操作前 操作后 只要最高有效位为1,溢出后不会造成有效数字丢失。否则会出错。 右移:最高有效位补1(同补码) 操作前 操作后返回2.4.5 舍入 舍入原因:受位数限制 舍入

34、原则:应使本次舍入所造成的误差和按此规则产生的累计误差都较小1.原码与补码采取“0舍1入”,负数反码采取“1舍0借”2.原码与补码采取末位“恒置1”,负数反码采取末位“恒置0”返回一、补码加法返回退出下一页下一节加法公式: 补补补 (mod 2) (2.17) 加法法则:1、符号位一起参加数的运算; 2、超过2的进位要丢掉。(即在模2下相加)例8 0.1001, 0.0101,求。 解 例9 0.1011, 0.0101,求。 解例8 0.1001, 0.0101,求。解: 补0.1001, 补0.0101 补 0.1001补 0.0101补 0.1110 所以 0.1110 一、补码加法返回

35、一、补码加法补 10.0110 例9 0.1011, 0.0101,求。解:补0.1011,补1.1011 补 0.1011 + y补 1.1011 所以0.0110返回二、补码减法返回退出上一页下一页下一节例10 已知10.1110,20.1101,求:1补,1补,2补,2补。 解 例11 0.1101,0.0110,求。 解减法公式: 补补补补补 (2.18) 补 补求补=补 2n 求补法则:所有位(包括符号位)取反,末位加1.返回例10 已知10.1110,20.1101,求:1补,1补,2补,2补。解: 1补1.00101补1补2-40.11010.00010.11102补0.1101

36、2补2补2-41.00100.00011.0011二、补码减法例11 0.1101,0.0110,求。 解: 补0.1101 补0.0110,补1.1010 补0.1101补1.1010补 10.0111 所以0.0111二、补码减法返回三、溢出概念与检测方法退出上一页下一页下一节1、溢出-运算结果超出定点数的表示范围。 如:定点小数机器中,数的表示范围为|1. 因此,如果运算结果1,则超出定点小数机的 表示范围,称为上溢;如果运算结果小于-1, 也超出范围,称为下溢。上溢:两个正数相加,结果超出最大表示范围。(上限)下溢:两个负数相加,结果超出最小表示范围。(下限)例: 字长8位 -1012

37、7/128例13 0.1101, 0.1011,求。 解 例12 0.1011, 0.1001,求。 解返回例12 0.1011, 0.1001,求。解: 补0.1011 补0.1001补 0.1011 补0.1001 补1.0100 两个正数相加的结果成为负数,这显然是错误的,正溢。三、溢出概念与检测方法返回三、溢出概念与检测方法返回例13 0.1101, 0.1011,求。 解: x补1.0011 y补1.0101 x补1.0011 + y补1.0101 x+y补 0.1000 两个负数相加的结果成为正数,这同样是错误的,下溢。三、溢出概念与检测方法返回退出上一页下一页下一节2、检测溢出的

38、方法: 方法1:“双符号位法”即“变形补码”或“模4补码” 补码的符号位用两位表示。例14 0.1100, 0.1000,求。 解 例15 0.1100, 0.1000,求。 解结论:Sf1Sf2 1时,溢出; Sf1Sf2 0时,不溢出。 (其中Sf1、Sf2是最高两位符号)例14 0.1100, 0.1000,求。 解: 补00.1100,补00.1000 补 00.1100补00.1000 01.0100 两个符号位出现“01”,表示已溢出,即结果大于1。三、溢出概念与检测方法返回例15 0.1100, 0.1000,求。 解: 补11.0100,补11.1000 补 11.0100补1

39、1.1000 10.1100 两个符号位出现“10”,表示已溢出,即结果小于1。三、溢出概念与检测方法返回三、溢出概念与检测方法2、检测溢出的方法: 方法2:“单符号位法 ” CfCo 1时,溢出; CfCo 0时,不溢出; 其中:Cf为符号位产生的进位, Co为最高有效位产生的进位。在定点机中当运算结果发生溢出时,机器通过逻辑电路自动检查出溢出,并进行中断处理。返回退出上一页下一页下一节1、补码二进制加法/减法器的结构:四、基本的二进制加法/减法器图2.2(a) 全加器返回退出上一页下一页下一节由n个1位的全加器(FA)经进位位相连而成;Sn-1 S0为结果输出端;An-1 A0为操作数A,

40、直接送入FA的输入端;Bn-1 B0为另一操作数B,经异或门处理后才送入FA的输入端。返回退出上一页下一页下一节图2.2(b)行波进位的补码加法减法器动态演示四、基本的二进制加法/减法器返回退出上一页下一页下一节2、工作过程:1)M为方式控制信号 图2.2(b)中M连着起始进位C0,同时又作为异或门的一个输入信号,从而控制加法器是做加法运算还是减法运算。 当M0时, BM= B0=B,做加法(AB)运算; 当M1时, BM= B1=B且C0 =M=1, 做A+B+1=A补B补补=A补B补= A补B补,即减法运算。2)CnCn1 溢出判断信号 Cn1为最高有效位的进位,Cn为符号位进位,两位异或

41、即为单符号位法的溢出判断逻辑。 四、基本的二进制加法/减法器返回退出上一页下一页下一节3、全加器FA介绍:1)硬件结构:FA全加器结构是一个逻辑门电路组成 SiAiBiCi Ci1AiBiBiCiCiAi Si是两个1位二进制数与低位进位相加所得之和; Ci1是得到和Si的一个进位输出。 图2.2(a) 四、基本的二进制加法/减法器返回退出上一页下一页下一节2)硬件设计过程 把两个二进制数字Ai,Bi和一个进位输入Ci相加的过程写成 真值表,如表2.2; 由真值表写成逻辑表达式: SiAiBiCi Ci1AiBiBiCiCiAi (2.23) Ci+1的变换 推导过程推导过程四、基本的二进制加

42、法/减法器返回Ci+1=AiBiCi+AiBiCi+AiBiCi+AiBiCi =(AiBi)Ci+AiBi =(AiBi)Ci+AiBi =(AiBi)Ci.AiBiCi+1=(AiBi)Ci.AiBi,故得到图2.2(a)。四、基本的二进制加法/减法器表2.2 一位全加器真值表 返回返回Si=AiBiCi+AiBiCi+AiBiCi+AiBiCi =Ai(BiCi+BiCi)+Ai(BiCi+BiCi) =Ai(BiCi)+Ai(BiCi.BiCi) =Ai(BiCi)+Ai(Bi+Ci).(Bi+Ci) =Ai(BiCi)+Ai(BiCi+BiCi) =Ai(BiCi)+Ai(BiCi)

43、 =AiBiCi返回Ci+1=AiBiCi+AiBiCi+AiBiCi+AiBiCi =AiBiCi+AiBiCi+AiBiCi+AiBiCi+AiBiCi+AiBiCi =BiCi+AiCi+AiBi五、十进制加法器1、n位BCD码行波式进位加法器的一般结构:由n个一位BCD码加法单元经进位位相连而成。2、一位十进制数字的BCD加法器单元的逻辑结构: 一位BCD加法器单元=4位二进制加法器+修正逻辑电路+第二级加法器返回退出上一页下一页下一节图2.3五、十进制加法器设i和i是普通4位二进制数,Si代表得到的4位二进制数和,Ci1为输出进位,而Si代表正确的BCD和,Ci1代表正确的进位,则:

44、 当iiCi9时,产生进位, 但在BCD码运算中,两数之和15时,才产生进位。必须对BCD码形式的十进制数加6修正,帮助其产生 进位,才能产生正确的BCD码形式的十进制数。 或16有进位用多一个6,则个位+6修正。继续返回 当Si|x|,使商|q|1,否则溢出。手动算法返回退出上一页下一页上一节下一节一、原码除法运算原理在计算机中,小数点是固定的,不能简单地采用手算的办法。为便于机器操作,使“除数右移”和“右移上商”的操作统一起来。事实上,机器算法与手动算法不同,人会心算,一看就知道,够不够减。但机器却不会心算,必须先做减法,若余数为正,才知道够减;若余数为负,才知道不够减。恢复余数法:不够减

45、时必须恢复原来的余数,以便再继续往下运 算。加减交替法:运算过程中如出现不够减,不恢复余数,根据余数符号, 继续往下运算。返回退出上一页下一页上一节下一节手动算法设被除数0.1001,除数0.1011,求。0.1 1 0 1商q0.1 0 1 1 0.1 0 0 1 0(r0)被除数小于除数,商00.0 1 0 1 121除数右移1位,减除数,商10.0 0 1 1 1 0r1得余数r10.0 0 1 0 1 122除数右移1位,减除数,商10.0 0 0 0 1 1 0r2得余数r20.0 0 0 1 0 1 123除数右移1位,不减除数,商00.0 0 0 0 1 1 0 0r3得余数r3

46、0.0 0 0 0 1 0 1 124除数右移1位,减除数,商10.0 0 0 0 0 0 0 1r4得余数r4得的商q0.1101,余数为r0.00000001。返回二、并行除法器 1.可控加法/减法(CAS)单元逻辑方程: SiAi(BiP)Ci Ci1(AiCi)(BiP)AiCi (2.32) 返回退出上一页下一页上一节下一节逻辑图二、并行除法器 当P0时, CAS作加法运算: SiAiBiCi Ci1AiBiBiCiAiCi 当P1时, CAS作减法运算: SiAiBiCi Ci1AiBiBiCiAiCi (2.33) 其中BiBi1。返回退出上一页下一页上一节下一节逻辑图二、并行除

47、法器 返回(a) 可控加法/减法(CAS)单元的逻辑图返回退出上一页下一页上一节下一节2.不恢复余数的阵列除法器演示图中,最上面一行所执行的初始操作经常是减法。因此最上面一行的控制线P固定置成“1”。减法是用2的补码运算来实现的,这时右端各CAS单元上的反馈线用作初始的进位输入,即最低位上加“1”。每行最左边的单元的进位决定着商的数值。将当前的商反馈到下一行,我们就能确定下一行的操作。 例20 0.101001, 0.111, 求。动态演示解二、并行除法器 解: 补1.001被除数0.1 0 1 0 0 1减1.0 0 1 余数为负1.1 1 0 0 0 1 0q00余数左移1.1 0 0 0

48、 1加0.1 1 1 余数为正0.0 1 1 0 1 0q11余数左移0.1 1 0 1减1.0 0 1 余数为负1.1 1 1 1 0q20余数左移1.1 1 1加0.1 1 1 余数为正0.1 1 0 0q31 故得: 商 qq0.q1q2q30.101 余数 r(0.00r3r4r5r6)0.000110 返回例20 0.101001, 0.111, 求。一、逻辑运算 1.逻辑非运算设一个数表示成:012n对求逻辑非,则有012n ii (i0,1,2,n)例如: 1=0 0=1_返回退出上一页下一页上一节下一节_一、逻辑运算 2.逻辑加运算设有两数 ,它们表示为01n01n 若 012

49、n则iii (i0,1,2,n)例如: 0+0=0 0+1=1 1+0=1 1+1=1 返回退出上一页下一页上一节下一节一、逻辑运算 3.逻辑乘运算设有两数和,它们表示为 01n01n 若 012n则 iii (i0,1,2,n) 例如: 01=0 00=0 10=0 11=1返回退出上一页下一页上一节下一节一、逻辑运算 4.逻辑异运算设有两数和: 01n01n 若和的逻辑异为: 012n则 iii (i0,1,2,n) 例如: 10=1 11=0 01=1 00=0返回退出上一页下一页上一节下一节1.基本思想一位全加器(FA)的逻辑表达式为 FiAiBiCi Ci1AiBiBiCiCiAi

50、(2.35) 将Ai和Bi先组合成由控制参数S0,S1,S2,S3控制的组合函数Xi和Yi,然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。一位算术/逻辑运算单元的逻辑表达式为(图2.10) FiXiYiCni Cni1XiYiYiCniCniXi二、多功能算术/逻辑运算单元(ALU)返回退出上一页下一页上一节下一节二、多功能算术/逻辑运算单元(ALU)返回二、多功能算术/逻辑运算单元(ALU)2.逻辑表达式控制参数S0 ,S1 ,S2 ,S3 分别控制输入Ai 和Bi ,产生Y和X的函数。其中Yi是受S0 ,

51、S1控制的Ai和Bi的组合函数,而Xi是受S2 ,S3控制的Ai和Bi组合函数,其函数关系如表2.4所示。 表2.4 Xi,Yi与控制参数和输入量的关系返回退出上一页下一页上一节下一节二、多功能算术/逻辑运算单元(ALU)返回退出上一页下一页上一节下一节2.逻辑表达式可得Xi和Yi的逻辑表达式:XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3AiYiS0S1AiS0S1AiBiS0S1AiBi二、多功能算术/逻辑运算单元(ALU)返回退出上一页下一页上一节下一节进一步化简并代入前面的求和与进位表达式得:(2.36)Xi=S3AiBi+S2AiBi Yi=Ai+S0Bi+S1BiFi

52、=YiXiCiCn+i+1=Yi+XiCn+i化简推导过程Xi、Yi表达式运用摩根定律a+b=ab,可以化简得:XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3Ai (S2+S3)(S2+S3+AiBi)(S2+S3+AiBi)(S2+S3+Ai) (S2+S3(AiBi)(S2+S3+AiBi)(S2+S3+Ai) (S2S3+S2AiBi+S2S3AiBi+S3AiBi)(S2+S3+Ai) S2S3Ai+S2S3AiBi+S2AiBi+S3S2AiBi+S3AiBi S2S3Ai+S2AiBi+S3AiBi S2AiBi+S3AiBi继续返回继续Xi、Yi表达式运用摩根定律a

53、+b=ab,可以化简得:YiS0S1AiS0S1AiBiS0S1AiBi (S0+S1+Ai)(S0+S1+Ai+Bi)(S0+S1+Ai+Bi) (S0+S1Bi+Ai)(S0+S1+Ai+Bi) S0S1+S0Ai+S0Bi+S1S0Bi+S1Bi+Ai Ai+S0Bi+S1Bi返回Xi、Yi表达式运用摩根定律a+b=ab,可以化简得:Xi*Yi=S2AiBi+S3AiBiAi+S0Bi+S1Bi =S2AiBi+S3AiBi+Ai+S0Bi+S1Bi =Ai+S0Bi+S1Bi =Yi Cni1XiYiYiCniCniXi Yi CniXi返回二、多功能算术/逻辑运算单元(ALU)2.逻

54、辑表达式根据式(2.36),每一位的进位公式可递推如下:第0位向第1位的进位公式为Cn1Y0X0Cn第1位向第2位的进位公式为Cn2Y1X1Cn1Y1Y0X1X0X1Cn第2位向第3位的进位公式为Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn返回退出上一页下一页上一节下一节二、多功能算术/逻辑运算单元(ALU)2.逻辑表达式第3位进位输出:Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn设GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3则 Cn4GPCn (2.37) 返回退出上一页下一页上一节下一节二、多功能算术/逻辑运算单元(ALU

55、)3.算术逻辑运算的实现控制端,用来控制ALU是进行算术运算还是进行逻辑运算。 0时,进行算术操作。 1时,进行逻辑操作。 返回退出上一页下一页上一节下一节ALU逻辑电路图演示表2.5 74181ALU算术/逻辑运算功能表退出上一页下一页上一节下一节返回二、多功能算术/逻辑运算单元(ALU)4.两级先行进位的ALU假设4片(组)74181的先行进位输出依次为P0,G0,P1,G1,P2,G2,P3,G3,那么先行进位部件74182CLA所提供的进位逻辑关系如下:CnG0P0CnCnG1P1CnG1G0P1P0P1CnCnG2P2CnG2G1P2G0P1P2P0P1P2CnCn4 G3P3CnG

56、3G2P3G1P1P2G0P1P2P3P0P1P2P3Cn G*P*Cn其中 P*P0P1P2P3 G*G3G2P3G1P1P2G0P1P2P3返回退出上一页下一页上一节下一节二、多功能算术/逻辑运算单元(ALU)用两个16位全先行进位部件级联组成的32位ALU逻辑方框图: 图2.13用两个6位全先行进位部件级联组成的32位ALU返回退出上一页下一页上一节下一节三、内部总线 图2.14由三态门组成的双向数据总线返回工作原理返回图2.14(a)是带有缓冲驱动器的4位双向数据总线。基本电路就是三态逻辑电路。当“发送”信号为高电平有效时,数据从左向右传送。反之,当“接收”信号为高电平有效时,数据从右

57、向左传送。这种类型的缓冲器通常根据它们如何使用而叫作总线扩展器、总线驱动器、总线接收器等等。返回图2.14(b)所示的是带有锁存器的4位双向数据总线。它主要由一个DE触发器和一个三态缓冲器组成。DE触发器是在一个普通D触发器上另加一个E输入端(允许端)而构成的。此处E输入端用以控制D的输入。若E0,即使D为“1”,也不能输入。当接收数据时,E1允许接收,发送信号为低电平,三态门被禁止,因而数据总线上的数据被接收到锁存器。当发送数据时,E0禁止接收,发送信号为高电平,三态门被允许,因而锁存器的数据发送至数据总线上。 三、内部总线 返回退出上一页下一页上一节下一节总线多个部件之间传送信息的公共通路

58、。总线内部总线指CPU内各部件的连线。外部总线指CPU与存储器、I/O系统之间的连线。 即系统总线。总线的三态:逻辑“1”,逻辑“0”,浮空高阻状态。双向数据总线往往带有三态缓冲器,称总线扩展。三态缓冲图四、定点运算器的基本结构 按总线结构划分运算器结构:单、双、三总线结构。1.单总线结构的运算器 图2.15(a) 所有部件都接到同一总线上,数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送。在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU,需要分两次来做,而且还需要A,B两个缓冲寄存器。返回退出上一页下一页上一节下一节四、定点运算器的基本结构 2.双总线

59、结构的运算器 图2.15(b)两个操作数一次送出,故分两步完成:加法传送操作1、操作数+操作数 缓冲器2、结果 特殊寄存器返回退出上一页下一页上一节下一节四、定点运算器的基本结构 按总线结构划分运算器结构:单、双、三总线结构。3.三总线结构的运算器 图2.15(c)一步传送操作内完成输入两操作数和输出结果;多总线旁路器,直接传送,不经ALU加工时间;操作速度快。返回退出上一页下一页上一节下一节一、浮点加法、减法运算 返回退出上一页下一页上一节设有两个浮点数和:(Ex、Ey、Mx、My均为补码) 2EM 2EM加法和减法的运算规则: (M2EEM)2E, EE (2.39) 一、浮点加法、减法运

60、算 返回退出上一页下一页上一节完成浮点加减运算的操作步骤:1、对阶 (小阶 大阶对齐)为什么:若大阶向小阶对齐,则大阶的尾数要作相应的左移才能保持原值。但我们说左移会丢失最高有效位,造成较大的误差。故不用大 小。而尾数右移只会丢失最低有效位,造成较小的误差,故用小 大。法则:阶码增加多少位,则小阶的尾数相应右移多少位。一、浮点加法、减法运算 返回退出上一页下一页上一节2、尾数求和3、规格化 (1/2|M|1) 当出现00.0 xxx或11.1xxx时,则需要左规。 (左移n位,阶码减n) 当出现01.xxxx或10.1xxx时,溢出,则需要右规。 (右移n位,阶码加n)4、舍入处理 由于在右移

温馨提示

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

评论

0/150

提交评论