收藏 分享(赏)

第二章 运算方法和运算器教案.doc

上传人:gnk289057 文档编号:8158182 上传时间:2019-06-11 格式:DOC 页数:14 大小:10.28MB
下载 相关 举报
第二章 运算方法和运算器教案.doc_第1页
第1页 / 共14页
第二章 运算方法和运算器教案.doc_第2页
第2页 / 共14页
第二章 运算方法和运算器教案.doc_第3页
第3页 / 共14页
第二章 运算方法和运算器教案.doc_第4页
第4页 / 共14页
第二章 运算方法和运算器教案.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1第二章 运算方法和运算器学习重点 数据与文字的表示 定点加法、减法运算 定点运算器的组成 浮点运算的步骤2.1 数据与文字的表示方法2.1.1 数据格式计算机中使用的数据可分成两大类:数值数据:数字数据的表示(定点、浮点)符号数据:非数字符号的表示(ASCII、汉字、图形等)数值数据的表示格式有定点数、浮点数两种1.定点数的表示方法小数点的位置固定不变,通常表示成纯小数或纯整数。用 n+1 位字表示定点数 X, x= xnxn-1xn-2x1x0纯小数时表示范围:0X1-2 -n纯整数时表示范围:0X2 n-12.浮点数的表示方法任意进制数 N 表示:N=R eMM 为尾数,数的精度;e 为

2、指数( 整数),数的范围;R 为基数,二进制为 2,十进制为 10;浮点数由阶码、尾数及其符号位组成。规格化:若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。例如:0.010100102110.00101001021000.1010010210IEEE754 标准(规定了浮点数的表示格式,运算规则等 )规则规定了 32 位和 64 位两种基本格式规则中,尾数用原码,指数用移码(便于对阶和比较) ,基数为 2尾数域的最高有效位为 1,称为浮点数的规格化表示。32 位的浮点数S 数的符号位,1 位,在最高位, “0”表示正数, “1”表示负数。E 是阶码,8 位,采用移码表示。移码

3、比较大小方便。M 是尾数,23 位,在低位部分,采用纯小数表示。2规格化的浮点数尾数域最左位(最高有效位) 总是 1, 故这一位经常不予存储,而认为隐藏在小数点的左边(1.M) 。采用这种方式时,将浮点数的指数真值 e 变成阶码 E 时,应将指数 e 加上一个固定的偏移值127(01111111),即 E=e+127。一个规格化的 32 位浮点数 x 的真值表示为x=(-1)S(1.M)2E-127设 e=E-127x=(-1)S(1.M)2e例 1若浮点数 x 的 754 标准存储格式为(41360000) 16,求其浮点数的十进制数值。解:将 16 进制数展开后,可得二制数格式为0 100

4、00010 011 0110 0000 0000 0000 0000S 阶码(8 位) 尾数(23 位)指数 e=阶码 E-127=10000010-01111111=00000011=(3)10包括隐藏位 1 的尾数M=1.011 0110 0000 0000 0000 0000=1.011011于是有x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)10例 2将数(20.59375) 10 转换成 754 标准的 32 位浮点数的二进制存储格式。解:首先分别将整数和小数部分转换成二进制数: 20.59375=10100.10011然后移动小数点,使其

5、在第 1,2 位之间 10100.10011=1.01001001124e=4 于是得到: E=e+127=4+127=131 S=0, E=131=10000011, M=010010011最后得到 32 位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)16真值 x 为零表示:当阶码 E 为全 0 且尾数 M 也为全 0 时的值,结合符号位 S 为 0 或 1,有正零和负零之分。真值 x 为无穷大表示:当阶码 E 为全 1 且尾数 M 为全 0 时,结合符号位 S 为 0 或 1,也有+和-之分。这样在 32 位浮点数表示中,

6、要除去 E 用全 0 和全 1(255)表示零和无穷大的特殊情况,对于规格化浮点数,E 的范围变为 1 到 254,因为 E=e+127,所以真正的指数值 e 则为-126 到+127。因此 32 位浮点数表示的绝对值的范围是 10-3810 38(以 10 的幂表示) 。64 位的浮点数中符号位 1 位,阶码域 11 位,尾数域 52 位,指数偏移值是 1023。因此规格化的 64 位浮点数 x 的真值为:x=(-1)S(1.M)2E-1023 e=E-1023浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计3算机的使用条件来确定。一般在高档微机以上的计算机

7、中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示。机器码:机器中表示的数, 要解决在计算机内部数的正、负符号和小数点运算问题。原码、反码、补码、移码例 7将十进制真值( 127,1,0,1,127) 列表表示成二进制数及原码、反码、补码、移码值。例 8设机器字长 16 位,定点表示,尾数 15 位,数符 1 位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?定点原码整数表示最大正数值(2 15-1)10(32767) 10最小负数值(2 15-1)10(32767) 10定点原码小数表示 最大正数值

8、(1-2 -15)10(0.111.11) 2最小负数值(1-2 -15)10(0.11111) 2数字编码输入的优点是无重码,且输入码与内部编码的转换比较方便,缺点是代码难以记忆。拼音码是以汉字拼音为基础的输入方法。使用简单方便,但汉字同音字太多,输入重码率很高,同音字选择影响了输入速度。 为了加快输入速度,在上述方法基础上,发展了词组输入、联想输入等多种快速输入方法。更理想的输入方式是利用语音或图象识别技术“自动”将拼音或文本输入到计算机内,并将其自动转换为机内代码表示。目前这种理想已经成为现实,如语音输入、手写输入、OCR 等。 汉字内码汉字内码是用于汉字信息的存储、交换、检索等操作的机

9、内代码,一般采用两个字节表示。汉字机内代码中两个字节的最高位均规定为“1”。(一级汉字 3755 个,二级汉字 3008 个)注意:有些系统中字节的最高位用于奇偶校验,此情况下用三个字节表示汉字内码。2.1.5 校验码校验码(只介绍奇偶校验码)引入:信息传输和处理过程中受到干扰和故障,容易出错。解决方法:是在有效信息中加入一些冗余信息(校验位)奇偶校验位定义缺点其它校验方法还有 Hamming,CRC42.2 定点加法、减法运算2.2.1 补码加减法补码加法公式:x+y 补 =x补 +y补补码减法公式:x-y 补 =x补 +-y补该公式将减法转变为加法如何求-y 补?y=0.0111 y补=0

10、.0111-y补 =1.1001例: x=-0.1011,y=0.0111, 求 x+y=?解: x补=1.0101 y补=0.0111x+y补=x补+y补 =1.0101+0.0111=1.1100x+y=-0.0100例: x=0.11011,y=-0.11111, 求 x-y=?解: x补=0.11011 y补=1.00001 -y补=0.11111x-y补=x补+-y 补=1.11010课堂练习例: x0.1011, y0.1001, 求x+y 补 =?例: x0.1101,y0.1011, 求x+y 补 =?2.2.2 溢出的检测可能产生溢出的情况两正数加,变负数,上溢(大于机器所能

11、表示的最大数)两负数加,变正数,下溢(小于机器所能表示的最小数)双符号位法(参与加减运算的数采用变形补码表示)Sf1 Sf20 0 正确(正数)0 1 上溢1 0 下溢1 1 正确(负数)Sf1 和 Sf2 相同表示正确的符号,逻辑表达式为 V=Sf1S f2,可以用异或门来实现单符号位法Cf C00 0 正确0 1 上溢1 0 下溢1 1 正确V=Cf C0 其中 Cf 为符号位产生的进位,C0 为最高有效位产生检验举例:0.1100, 0.1000,求 0.1100, 0.1000,求 结果出现了 01 或 10 的情况就为溢出52.2.3 基本的加法和减法器基本的加法和减法器全加器半加器

12、全加器考虑低位进位 Ci 和向高位的进位 Ci+1半加器不考虑低位进位图 2.3 行波进位的补码加法减法器62.3 定点乘法运算乘法实现方法 在现有的加法和减法器的基础上增加适当的线路及控制逻辑可以实现 用 LSI 和 VLSI 工艺实现专用的乘法器LSI (Large-scale integration 大规模集成电路) 编制子程序(单片机等低端机器 )2.3.1 原码并行乘法人工算法与机器算法的同异性 由加法器完成乘法运算需要如下改进 n 位乘 n 位积可能为 2n 位. 乘积的最后是所有部分积之和,有 n 个数相加,而 FA 只有两个输入端 方法一:硬件实现方法(串行的 “加法和移位”)

13、,硬件结构简单,速度太慢(已经淘汰). 方法二:不带符号位的阵列乘法器要实现 n 位 n 位时,需要 n(n1) 个全加器和 n2 个“与” 门。 图 2.4 mn 位不带符号的阵列乘法器逻辑图7带符号位的阵列乘法器计算机中定点数通常用补码表示,而前面介绍的不带符号阵列乘法器是用原码计算乘法的,为了能进行补码乘法,需要在计算乘法之前和之后增加求补电路。原理:算前求补乘法器算后求补求补电路工作特点E=0 时,输入和输出相等E=1 时,则从数最右端往左边扫描,直到第一个 1 的时候,该位和右边各位保持不变0A=A ,左边各数值位按位取反 1A=A8例 17 设 15, 13,用带求补器的原码阵列乘

14、法器求出乘积 ?解: 设最高位为符号位,则输入数据为 原 01111 原 11101 符号位单独考虑,算前求补级后 | 1111,|1101 算后经求补级输出并加上乘积符号位 1,则原码乘积值为 111000011。换算成二进制数真值是 (11000011)2=(-195)10十进制数验证: 15(13) 195 相等。2.4 定点运算器的组成2.4.1 多功能算术/逻辑运算单元 (ALU)一位全加器(FA)的逻辑表达式为FiXiYiCn+i (2.30) Cn+i+1XiYiYiCn+iCn+iXi94 位 ALU图 2.10 ALU 的逻辑结构原理框图问题:片内是串行进位还是并行进位?4

15、位之间采用先行进位公式,根据式(2.30),每一位的进位公式可递推如下:第 0 位向第 1 位的进位公式为Cn1Y0X0Cn其中 Cn 是向第 0 位(末位)的进位。第 1 位向第 2 位的进位公式为Cn2Y1X1Cn1Y1Y0X1X0X1Cn 第 2 位向第 3 位的进位公式为Cn3Y2X2Cn2Y2Y1X1Y0X1X2 X0X1X2Cn第 3 位的进位输出(即整个 4 位运算进位输出)公式为Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn 设GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3 则 Cn4GPCn这样,对一片 ALU 来说,可有三个进

16、位输出。其中 G 称为进位发生输出,P 称为进位传送输出。在电路中多加这两个进位输出的目的,是为了便于实现多片(组)ALU 之间的先行进位,为此还需一个配合电路,称之为先行进位发生器(CLA)74181ALU 逻辑电路图(总体)1074181ALU 逻辑电路图(总体)表 2.5 74181ALU 算术/ 逻辑运算功能表11设计 16 位 ALUCn+4=G0+P0CnCn+8=G1+P1Cn+4Cn+12=G2+P2Cn+8Cn+16=G3+P3Cn+12片内先行进位,片间串行进位Cn+4=G0+P0Cn Cn+8=G1+P1Cn+4=G1+G0P1+P0P1CnCn+12=G2+P2Cn+8

17、=G2+G1P2+G0P1P2+P0P1P2Cn Cn+16=G3+P3Cn+12=G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cn=G*+P*CnG*为成组先行进位发生输出P*为成组先行进位传送输出12成组先行进位部件 CLA 的逻辑图16 位先行进位 ALU图 2.13 用两个 16 位全先行进位部件级联组成的 32 位 ALU13三态门组成的双向数据总线2.5 浮点运算方法和浮点运算器2.5.1 浮点加法、减法运算浮点加减运算设有两个浮点数和,它们分别为2 E M2 E M其中 E和 E分别为数和的阶码,M和 M为数和的尾数。两浮点数进行加法和减法的运算规则是(M 2EE M )2E , 设 E E 浮点运算步骤如下:(1)0 操作数的检查,看有无简化操作的可能;比较阶码大小并完成对阶(小阶向大阶对齐) ;尾数进行加或减运算;结果规格化并进行舍入处理。2.5.2 定点运算器的基本结构141、单总线结构的运算器2、双总线结构的运算器3、三总线结构的运算器作业P63: 4; 5; 6

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报