计算机组成原理第章运算方法与运算器.ppt

上传人:本田雅阁 文档编号:2654051 上传时间:2019-04-30 格式:PPT 页数:153 大小:4.87MB
返回 下载 相关 举报
计算机组成原理第章运算方法与运算器.ppt_第1页
第1页 / 共153页
计算机组成原理第章运算方法与运算器.ppt_第2页
第2页 / 共153页
计算机组成原理第章运算方法与运算器.ppt_第3页
第3页 / 共153页
亲,该文档总共153页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机组成原理第章运算方法与运算器.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第章运算方法与运算器.ppt(153页珍藏版)》请在三一文库上搜索。

1、第2章 运算方法和运算器,2019年4月30日星期二,2,目录,2.0 数据的类型 2.1 数据与文字的表示方法 (掌握) 2.2 定点加法、减法运算 (掌握) 2.3 定点乘法运算 (了解) 2.4 定点除法运算 (了解) 2.5 定点运算器的组成 (了解) 2.6 浮点运算方法和浮点运算器(掌握),2019年4月30日星期二,3,学习要求,掌握定点和浮点数的表示方法,表示范围; 掌握定点数的补码加减法、了解常用的乘除法运算方法; 掌握浮点数的加减运算方法; 理解数据校验的方法; 理解溢出判断方法; 了解运算器部件的组成结构及设计方法。,2019年4月30日星期二,4,2.0 数据的类型(1

2、/2),按数制分: 十进制:在微机中直接运算困难; 二进制:占存储空间少,硬件上易于实现,易于运算; 十六进制:方便观察和使用; 二-十进制:4位二进制数表示1位十进制数,转换简单。 按数据格式分: 真值:没有经过编码的直观数据表示方式,其值可带正负号,任何数制均可; 机器数:符号化后的数值(包括正负号的表示),一般位数固定(8、16、32),不能随便忽略任何位置上的0或1;,2019年4月30日星期二,5,2.0 数据的类型(2/2),按数据的表示范围分: 定点数:小数点位置固定,数据表示范围小; 浮点数:小数点位置不固定,数据表示范围较大。 按能否表示负数分: 无符号数:所有均为表示数值,

3、直接用二进制数表示; 有符号数:有正负之分,最高位为符号位,其余位表示数值。 按编码不同又可分为原码、反码、补码、移码,2019年4月30日星期二,6,2.1 数据与文字的表示方法,2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码,2019年4月30日星期二,7,定点数:小数点固定在某一位置的数据; 纯小数: 表示形式 x=xSx-1x-2x-n |x|1-2-n ;xs为符号位 数据表示范围 0.00= 0 |x| 1-2-n = 0.11 纯整数: 表示形式 x=x s x n-1 x 1 x 0 |x|2

4、n-1 ;xs为符号位 注意:小数点的位置是机器约定好的,并没有实际的保存。,x0 x-1x-2x-3 x-n,xnxn-1xn-2x1x0,2.1.1 数据格式定点数,设采用n+1位数据,2019年4月30日星期二,8,2.1.1 数据格式浮点数,浮点数:小数点位置可变,形如科学计数法中的数据表示。 浮点数格式定义: N= Re M M:尾数(mantissa) ,是一个纯小数,表示数据的全部有效数位,决定着数值的精度; R:基数(radix) ,可以取2、8、10、16,表示当前的数制; 微机中,一般默认为2,隐含表示。 e: 阶码(exponent) ,是一个整数,用于指出小数点在该数中

5、的位置,决定着数据数值的大小。 浮点数的一般表示形式,2019年4月30日星期二,9,科学计数法的表示,一个十进制数可以表示成不同的形式: 同理,一个二进制数也可以有多种表示:,2019年4月30日星期二,10,浮点数规格化,浮点数的表示 1.1120=0.11121=11.12-1 机器数的表示不同,不利于运算 规格化的目的 保证浮点数表示的唯一性; 保留更多地有效数字,提高运算的精度。 规格化要求 |尾数|0.5; 规格化处理: 尾数向左移n位(小数点右移),同时阶码减n; 尾数向右移n位(小数点左移),同时阶码加n。,规格化,右规,左规,2019年4月30日星期二,11,浮点数的规格化,

6、尾数用原码表示时 尾数最高数值位为1; 尾数形如0.1(正);或1.1(负); 例如,0.01125要规格化则变为0.1124; 0.01125要规格化则变为1.1124; 尾数用补码表示时 尾数最高数值位和尾数符号位相反; 尾数形如0.1(正);或1.0(负) 例如,0.01125要规格化,则变为0.1124; 0.01125要规格化,则变为1.0124;,2019年4月30日星期二,12,例:将十进制数-54表示成二进制定点数(16位)和浮点数(16位,其中数值部分10位,阶码部分4位,阶符和数符各取1位),并写出它在定点机和浮点机中的机器数形式。,令 x = -54,则x = -1101

7、10 16位定点数真值表示: x = -000 0000 0011 0110 定点机器数形式 x原: x补: 浮点数规格化表示:x = -(0.1101100000)2110 浮点机器数形式 x原: x补:,1 000 0000 0011 0110,1 111 1111 1100 1010,0 0110 ; 1 11 0110 0000,0 0110 ; 1 00 1010 0000,2019年4月30日星期二,13,浮点数的IEEE754标准表示,IEEE(Institute of Electrical and Electronics Engineers) 美国电气及电子工程师学会 IEEE

8、是一家总部在美国的工程技术和电子专家的组织; IEEE致力于电气、电子、计算机工程和与科学有关的领域的开发和研究,也是计算机网络标准的主要制定者。 为便于软件移植,按照 IEEE754 标准,实际机器内32位浮点数和64位浮点数的标准格式如下:,0,22,23,30,31,23位尾数,仅为数值部分,8位阶码,包括阶符,1位数符,32位浮点数,0,51,52,62,63,64位浮点数,2019年4月30日星期二,14,单精度浮点数与双精度浮点数,高级语言的float、double使用的即是IEEE754规定的格式。 float :32位浮点值,也叫单精度浮点数(4字节保存) double:64位

9、浮点值,也叫双精度浮点数(8字节保存) 单精度浮点数的例子:,1位 8位 7位 8位 8位,-1100,0.01,2019年4月30日星期二,15,32位浮点数的IEEE754 标准表示,数符S:表示浮点数的符号,占1位,0正数、1负数; 尾数M:23位,原码纯小数表示,小数点在尾数域的最前面; 由于原码表示的规格化浮点数要求,最高数值位始终为1,因此该标准中隐藏最高数值位(1),尾数的实际值为1.M; 阶码E:8 位,采用有偏移值的移码表示; E=e+127,其中e是指数真值 浮点数的真值:N=(-1)S(1.M)2E-127,2019年4月30日星期二,16,IEEE754 标准格式 (6

10、4位格式),其真值表示为: x=(1)S(1.M)2E1023 eE1023,2019年4月30日星期二,17,IEEE754 标准的数据表示,IEEE754 标准中的阶码E 正零、负零 E与M均为零,正负之分由数据符号确定; 正无穷、负无穷 E为全1,M为全零,正负之分由数据符号确定; 阶码E的其余值(0000 00011111 1110)为规格化数据; 真正的指数e的范围为-126+127,E=0000 0000,M=0000 0000,E=1111 1111,M=0000 0000,0000 0000 1111 1111,2019年4月30日星期二,18,IEEE754 标准对特殊数据的

11、表示,2019年4月30日星期二,19,课本P18 例1,例1 若浮点数的754标准存储格式为(41360000)16,求其浮点数的十进制数值。 解: (41360000)16 = 0100 0001 0011 0110 0000 0000 0000 0000 指数e=E-127= 1000 0010 0111 1111=0000 0011=3 尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011 浮点数 N =(-1)S(1.M)2e = (-1)0(1. 011011)23 = (11.375)10,数符S,阶码E,尾数M,2019年4月30日星期二,

12、20,课本P18 例2,例2 将(20.59375)10转换成754标准的32位浮点数的二进制存储格式。 解: (20.59375)10(10100.10011)2 将尾数规范为1.M的形式: 10100.100111.01001001124 e4 可得:M 010010011 S 0 E 41271311000 0011 故,32位浮点数的754标准格式为: 0100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16,2019年4月30日星期二,21,求解技巧,例如:将下列十进制数表示成IEEE754格式的32位浮点数二进制存储形式。 27/32

13、11/512 求解: 27/32=27*(1/32) = (0001 1011)2*2-5 尾数:1.1011 ; 阶码:e=-5+4=-1 ,E=e+127=126 IEEE754数据:0 0111 1110 1011 0000 0000 0000 0000 000 11/512= (0000 1011)2*2-9 尾数:1.011 ; 阶码:e=-9+3=-6 ,E=e+127=121 IEEE754数据:0 0111 1001 0110 0000 0000 0000 0000 00,练习: 1、将20.1875转换成32位浮点数存储? 2、若浮点数的二进制存储格式为(41A18000)1

14、6,求 其十进制值? 作业: 将十进制数17.296875转换成IEEE754格式的32位浮点数的二进制存储。,课堂练习和补充习题,2019年4月30日星期二,23,2.1.2 数的机器码表示,重点: 1、原码、补码、移码的表示形式 2、补码的定义 3、原码、补码、移码的表示范围,2019年4月30日星期二,24,1、原码表示法定义,定义: 定点小数: x原 定点整数: x原 举例: +0.110 原 0.110 -0.110原 1 - (-0.110) = 1.110 +110原 0110 -110原 23- (-110) 1000 +110 = 1110,x 1 x 0,1- x=1+|x

15、| 0x -1,x 2n x 0,2n- x=2n+|x| 0x -2n,实际机器中保存时并不保存小数点,2019年4月30日星期二,25,1、原码表示法特点,0有两种表示法 +0原 = 0000 ; -0原 = 1000 数据表示范围 定点小数:-1X1 定点整数: -2nX2n (若数值位n=3即:-8X8) 优点 与真值对应关系简单; 缺点 参与运算复杂,需要将数值位与符号位分开考虑。,2019年4月30日星期二,26,要将指向5点的时钟调整到3点整,应如何处理?,5-2=3,5+10=3(12自动丢失。12就是模),补码表示法的引入(1/3),2019年4月30日星期二,27,继续推导

16、: 5-2=5+10(MOD 12) 5+(-2)=5+10(MOD 12) -2=10(MOD 12) 结论:,在模为12的情况下,-2的补码就是10。一个负数用其补码代替,同样可以得到正确的运算结果。,补码表示法的引入(2/3),2019年4月30日星期二,28,进一步结论: 在计算机中,机器能表示的数据位数是固定的,其运算都是有模运算。 若是n位整数,则其模为2n; 若是小数,则其模为2。 若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。,补码表示法的引入(3/3),2019年4月30日星期二,29,2、补码表示法定义,定义:

17、定点小数: x补 定点整数: x补 举例: +0.110 补 0.110 -0.110 补 10 + (-0.110) = 1.010 +110补 0110 -110 补 24+(-110 ) 10000 -110 = 1010,x 1 x 0,2+x = 2 - |x| 0x -1,x 2n x 0,2n+1+x = 2n+1-|x| 0x -2n,x为n+1位,(mod 2),(mod 2n+1),实际机器中保存时并不保存小数点,2019年4月30日星期二,30,2、补码表示法特点,0有唯一的表示法 -0补 24+(-0 ) mod 24 0000 +0补 数据表示范围 定点小数:-1X1

18、 定点整数: -2nX2n (若n=3,则-8X8) 加减运算规则 XY补X补 Y补 (mod 2) 只要结果不溢出,可将补码符号位与数值位一起参与运算。 x补补x原 补码除2操作,可通过算术右移实现 -0.0110补11010,则(-0.0110)/10补 = 11101,真值为-0.0011,比原码多一个负的最小值表示,其编码为1000,2019年4月30日星期二,31,由原码求补码,由原码求补码的简便原则(负数) 除符号位以外,其余各位按位取反,末位加1; 从最低位开始,遇到的第一个1以前的各位保持不变,之后各位取反。,例:X原= 1 1 0 1 1 0 1 0 0,X补=,1 0 1

19、0 0 1,1 0 0,2019年4月30日星期二,32,由X补求-X补 连符号位一起各位求反,末位加1。 例:X补=1.1010101 解:,由-X补求X补,此规则同样适用。,求相反数的补码,X补= 1 1 0 1 0 1 0 1,0 0 1 0 1 0 1 0,+,1,-X补= 0 0 1 0 1 0 1 1,2019年4月30日星期二,33,3、移码表示法,移码通常用于表示浮点数的阶码 用定点整数形式的移码 定义: x移=2n+x 2n x -2n 与x补的区别:符号位相反 优点: 可以比较直观地判断两个数据的大小; 浮点数运算时,容易进行对阶操作; 表示浮点数阶码时,容易判断是否下溢;

20、 当阶码为全0时,浮点数下溢。,4位补码与移码,2019年4月30日星期二,34,原、补、移码的编码形式,正数: 原、补码的编码完全相同; 补码和移码的符号位相反,数值位相同; 负数: 原码: 符号位为1 数值部分与真值的绝对值相同 补码: 符号位为1 数值部分与原码各位相反,且末位加1 移码: 符号位与补码相反,数值位与补码相同,2019年4月30日星期二,35,课本P22例6 以定点整数为例,用数轴形式说明原码、反码、补码、移码表示范围和可能的数码组合情况。,2019年4月30日星期二,36,2019年4月30日星期二,36,课本P22例7 将十进制真值(127,1,0,1,127)列表表

21、示成二进制数及原码、反码、补码、移码值。,符号位 +0;- 1,数值位 各位取反,数值位 末位加1,符号位(正负数)取反,负数时,2019年4月30日星期二,37,P22例8 设机器字长16位,定点表示,尾数15位,数符1位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多少?,(215-1) = +32767,-(215-1) = -32767,(1-2-15) = +(1-1/32768),-(1-2-15) = -(1-1/32768),定点原码整数 最大正数 最小负数 定点原码小数 最大正数 最小负数,2019年4

22、月30日星期二,38,补充:浮点数的数据表示范围,0,最大负数,最小正数,最小负数,最大正数,下溢区,上溢区,上溢区,负数区,正数区,浮点数的溢出:阶码溢出 上溢:阶码大于所能表示的最大值; 下溢:阶码小于所能表示的最小值; 机器零: 尾数为 0,或阶码小于所能表示的最小值;,2019年4月30日星期二,39,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最大正数:阶码正最大、尾数正最大 最大正数为0.11120111 即(129)231 该浮点数即为规格化数形式;,2019年4月30日星期二,40,【例1】设浮点

23、数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最小正数:阶码负最小、尾数正最小 非规格化数形式 最小正数为0.0012100 即29 2(25)= 29 2-32 规格化数形式 最小正数为0.12100 21 2(25) 233,2019年4月30日星期二,41,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最小负数:阶码正最大,尾数负最小 最小负数为0.112011 即(129)2(251)= (129) 231 该浮点数即为规格化数形式;,201

24、9年4月30日星期二,42,【例1】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码采用补码表示,尾数采用原码表示,分析其浮点数表示范围。,最大负数:阶码负最小、尾数负最大 非规格化数形式 最大负数为0.0012100 即 29 2(25)= 29 2-32 规格化数形式 最大负数为0. 12100 即 21 2(25)= 2-1 232,2019年4月30日星期二,43,浮点数的最值,设浮点数格式为,补码表示-2m,+(2m-1),原码表示- (1-2-n) ,+(1-2-n),-(1-2-n)2+(2m-1),-2-n2-2m,+2-n2-2m,+(1-2-n)2+(2m-1

25、),0 111;1 1111,1 000;1 0001,1 000;0 0001,0 111;0 1111,同左,同左,1 000;11000,-2-12-2m,+2-12-2m,同左,同左,1 000;01000,2019年4月30日星期二,44,【例2】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。,最大正数 阶码最大、尾数最大 最大正数为0.1112111 (129)231 最小正数 最小正数为0.1000232 即2-3221 2-33 注意:不是 因为0.01 2-32不是规格化数。,2019年4月30日星期二,45,

26、【例2】设浮点数的阶码6位(含符号位),尾数为10位(含符号位),阶码和尾数均采用补码表示,分析其规格化浮点数表示范围。,最小的负数 最小负数为1.000231 即231(1)= 231 最大的负数 最大负数为0.1001232 即( 29+ 21 )232 注意:因有规格化要求,不是,2019年4月30日星期二,46,浮点数的最值,设浮点数格式为,移码表示-2m,+(2m-1),补码表示-1,+(1-2-n),-12+( 2m-1 ),-2-n2-2m,+2-n2-2m,+(1-2-n)2+(2m-1),1 111;1 0000,0 000;1 1111,0 000;0 0001,1 111

27、;0 1111,同左,同左,0 000;1 0111,-(2-1+2-n)2-2m,+2-12-2m,同左,同左,0 000;01000,2019年4月30日星期二,47,2009考研真题,12.一个C语言程序在一台32位机器上运行。程序中定义了三个变量x,y和z,其中x和z是int型,y为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x、y和z的值分别是: x=0000007FH , y=FFF9H , z=00000076H x=0000007FH , y=FFF9H , z=FFFF0076H x=0000007FH , y=FFF7H , z=FFFF0076H x

28、=0000007FH , y=FFF7H , z=00000076H,2019年4月30日星期二,48,2.1.1数据格式十进制数串的表示方法,字符串形式 每个十进制数位占用一个字节; 除保存各数位,还需要指明该数存放的起始地址和总位数; 主要用于非数值计算的应用领域。 压缩的十进制数串形式 采用BCD码表示,一个字节可存放两个十进制数位; 节省存储空间,便于直接完成十进制数的算术运算; 用特殊的二进制编码表示数据正负,如1100正、1101负,2019年4月30日星期二,49,2.1.3 字符与字符串的表示方法,ASCII码(美国国家信息交换标准字符码) 包括128个字符,共需7位编码; A

29、SCII码规定:最高位为0,余下7位作为128个字符的编码。 最高位的作用:奇偶校验;扩展编码。 字符串 指连续的一串字符, 每个字节存一个字符。 当存储字长为2、或4个字节时,在同一个存储单元中; 可按从低位字节向高位字节的顺序存放字符串的内容; 或按从高位字节向低位字节的次序顺序存放字符串的内容。,2019年4月30日星期二,50,2.1.4 汉字的表示方法,汉字的输入编码 目的:直接使用西文标准键盘把汉字输入到计算机 。 分类:主要有数字编码、拼音码 、字形编码三类。 汉字内码 用于汉字信息的存储、交换、检索等操作的机内代码 汉字字模码 用点阵表示的汉字字形代码,用于汉字的输出。,201

30、9年4月30日星期二,51,中文编码,字符代码化(输入),数字码 拼音码 字形码,2019年4月30日星期二,52,汉字字模码,2019年4月30日星期二,53,2.1.5 校验码(数据校验),数据校验原因 为减少和避免数据在计算机系统运行或传送过程中发生错误,在数据的编码上提供了检错和纠错的支持。 数据校验码的定义 能够发现某些错误或具有自动纠错能力的数据编码; 也称检错码; 数据校验的基本原理是扩大码距; 码距:任意两个合法码之间不同的二进制位的最少位数; 仅有一位不同时,称其码距为1。,2019年4月30日星期二,54,码距及作用,设用四位二进制表示16种状态 16种编码都用到了,此时码

31、距为1; 任何一种状态的四位码中的一位或几位出错,就变成另一个合法码; 无查错能力。 若用四位二进制表示8个状态 只用其中的8种编码,而把另8种编码作为非法编码; 可使码距扩大为2;,2019年4月30日星期二,55,校验码的类型,奇偶校验码 判断数据中1的个数设置1位校验位; 分奇校验和偶校验两种,只能检错,无纠错能力; 海明校验码(有兴趣自学) 在奇偶校验的基础上增加校验位而得; 具有检错和纠错的能力; 循环冗余校验码(CRC)(有兴趣自学) 通过模2的除法运算建立数据信息和校验位之间的约定关系; 具有很强的检错纠错能力。,2019年4月30日星期二,56,奇偶校验码概念,奇偶校验原理 在

32、数据中增加1个冗余位,使码距由1增加到2; 如果合法编码中有奇数个位发生了错误,就将成为非法代码。 增加的冗余位称为奇偶校验位。 校验的类型 偶校验:每个码字(包括校验位)中1的数目为偶数。 奇校验:每个码字(包括校验位)中1的数目为奇数。 校验过程 发送端:按照校验类型,在发送数据后添加校验位P; 接收端:对接收到的数据(包括校验位)进行同样类型的校验,决定数据传输中是否存在错误;,2019年4月30日星期二,57,奇偶校验码校验原理,偶校验:在接收端求校验位 P=D7D6D5D4D3D2 D1 D0 P 若P0,则无错;若P1,则有错。 奇校验:在接收端求校验位 P=D7D6D5D4D3D

33、2 D1 D0 P 若P1,则无错;若P0,则有错。 电路实现: 一般采用异或电路得到校验位。,1010 1011,求校验码,偶校验码 1010 1011 1,奇校验码 1010 1011 0,2019年4月30日星期二,58,接收端,字,校验位,校验码,例1: 数据 0010 0001,奇校验码,0010 0001,1,偶校验码,0010 0001,0,例2:数据 : 0111 0101,偶校验码,0111 0101,1,发送端,(门电路),0110 0101,1,出错!,奇偶校验码 例题(1/2),2019年4月30日星期二,59,例3:数据 : 0111 0101,奇校验码,0111 0

34、101,0,发送端,(门电路),0110 0111,0,接收端,正确,奇偶校验只能发现 奇数个错误,且不能 纠正错误!,奇偶校验码例题(1/2),2019年4月30日星期二,60,海明码(PPT 58PPT67自学),海明码是1950年提出的; 只要增加少数的几位校验码,即可检测出多位出错,并能自动恢复一或几位出错信息; 实现原理: 在一个数据中加入几个校验位,每个校验位和某几个特定的信息位构成偶校验的关系; 接收端对每个偶关系进行校验,产生校验因子; 通过校正因子区分无错和码字中的n个不同位置的错误; 不同代码位上的错误会得出不同的校验结果;,2019年4月30日星期二,61,海明码确定校验

35、位的位数,设K为有效信息的位数,r为校验位的位数,则整个码字的位数N应满足不等式: NKr2r1 通常称为(N,K)海明码 设某(7,4)海明码表示的码字长度为 位,校验位数为 位。 例如:数据D3D2D1D0 =1001 K=4,r+5 2r ; 可知,需要校验位3位P3P2P1 ;,7,3,2019年4月30日星期二,62,海明码确定校验位的位置,数据表示 数据位D(DiDi-1D1D0) 、校验位P(PjPj-1P2P1) 海明码H (包括数据位和校验位):HmHm-1H2H1; 分组原则 每个校验位Pi从低到高被分在海明码中位号2i-1的位置; 例如:数据D3D2D1D0 =1001,

36、校验位P3P2P1 海明码共7位H7H6H2H1 ,各位分配如下:,P1,P2,P3,D0,D1,D2,D3,2019年4月30日星期二,63,海明码校验分组,校验原则 海明码的每一位Hi有多个校验位校验,其关系是被校验的每一位位号等于校验它的各校验位的位号之和; 每个信息位的位置写成用2的幂次之和的形式 ; 例如 H7参与H1、H2、H4的校验; H6参与H2、H4的校验; H5参与H1、H4的校验; H3参与H1、H2的校验; 分组情况,P1,P2,P3,D0,D1,D2,D3,第一组P1,第二组P2,第三组P3,第一组(P1、D3、D1、D0) 第二组(P2、D3、D2、D0 ) 第三组

37、(P3、D3、D2、D1 ),2019年4月30日星期二,64,海明码校验位的形成,校验位形成公式 P1第一组中所有位(除P1)求异或 Pj 第j组中所有位(除Pj)求异或 为了能检测两个错误,增加一位校验Pj1,放在最高位。 Pj 1所有位(包括P1,P2 , , Pj)求异或 例如: P1D3D1 D0 =1 0 1=0 P2D3D2 D0 =1 0 1=0 P3D3D2 D1 =1 0 0=1 P4D3D2D1D0P3P2P1=1001001=1,第一组(P1、D3、D1、D0) 第二组(P2、D3、D2、D0 ) 第三组(P3、D3、D2、D1 ),但不能纠错!,2019年4月30日星

38、期二,65,海明码接收端校验(1/2),接收端接收到数据后,分别求S1,S2,S3,Sj S1第一组中所有位(包括P1)求异或 Sj第j组中所有位(包括Pj)求异或 Sj 1 Pj 1 所有位(包括P1,P2 , , Pj)求异或 当Sj 11时,有一位出错; 由Sj S3 S2S1 的编码指出出错位号,将其取反,即可纠错。 当Sj 10时,无错或有偶数个错(两个错的可能性比较大); 当Sj S3 S2S1 0 0 00时,接收的数无错,否则有两个错。,2019年4月30日星期二,66,同上例,接收端接收的数据为 接收端求S S10101=0 S20101=0 S31100=0 S411001

39、 100 =0 若接收端接收到错误的数据 S10101=0 S20111=1 S31110=1 S411101 100 =1,海明码接收端校验(2/2),第一组(P1、D3、D1、D0) 第二组(P2、D3、D2、D0 ) 第三组(P3、D3、D2、D1 ),无错误!,1,S4=1,有错误! S3S2S1=110,H6位有错,应取反!,2019年4月30日星期二,67,【练习】设待校验的数据为 D7D010101011,写出其海明校验码。,【解】 确定海明校验位的位数 因为K8, 由NKr 2r1,得9r 2r,校验位的位数为r4。 确定校验位的位置 i:12 11 10 9 8 7 6 5

40、4 3 2 1 D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1 分组(N位分r组),2019年4月30日星期二,68,【练习】设待校验的数据为 D7D010101011,写出其海明校验码。,校验位的形成 P1=D6 D4 D3 D1 D0 1; P2=D6 D5 D3 D2 D0 1 P3=D7 D3 D2 D1 1 ; P4=D7 D6 D5 D4 0 所以,信息码10101011的海明校验码为:1010 0 101 1 1 11,2019年4月30日星期二,69,海明码的纠错与检错能力,一个系统能纠正一位差错时,码距最小是3; 码距为3时,或能纠正一位错,或能检测二

41、位错; 但不能同时纠正一位错并检测二位错。 码距为1至7时,海明码的纠错和检错能力如右表: 码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。,2019年4月30日星期二,70,CRC校验(自学),CRC的工作方法 在发送端产生一个循环冗余码,附加在信息位后面一起发送到接收端; 接收端收到的信息按发送端形成循环冗余码同样的算法进行校验; 若无错,则接收;若有错,需重发。 CRC的特点 可检测出所有奇数位错; 可检测出所有双比特的错; 可检测出所有小于、等于校验位长度的突发错。 CRC码的信息字段和校验字段的长度可以任意选定。,2019年4月30日星期二,71,2.2 定点加法、减法运算

42、,2.2.1 补码加法 2.2.2 补码减法 2.2.3 溢出概念与检验方法 2.2.4 基本的二进制加法、减法器,2019年4月30日星期二,72,2.2.1 补码加法,补码加法运算基本公式 定点整数: x+y补 x补 + y补 (mod 2n+1) 定点小数: x+y补 x补 + y补 (mod 2) 证明 (1)证明依据:补码的定义(以定点小数为例) (2)证明思路:分三种情况。 (a) x、y均为正值(0,0) (b) x、y均为负值(0),2019年4月30日星期二,73,补码加法公式证明(1/2),证明: (a)0,0 补补补 (mod 2) (b)0,0 x补=2+x , y补=

43、2+y x补+ y补= 2+x+2+y =2+ (2+x+y) = 2+x+y补 (mod 2) = x+y补,2019年4月30日星期二,74,补码加法公式证明(2/2),(c)0,0 (0的证明与此相同) x补=x , y补=2+y x补+ y补= x+2+y =2+ (x+y) 当x+y0时,2+(x+y) 2 ,进位2必丢失; 因(x+y) 0 ,故x补+y补= x+y =x+y补 (mod 2) 当x+y0时,2+(x+y) 2 因(x+y) 0 ,故x补+ y补= 2+(x+y) =x+y补 (mod 2),2019年4月30日星期二,75,定点数补码加法举例,例11 +1001,

44、 +0101, 求。 解: 补0 1001, 补0 0101 补 0 1001 补 0 0101 补 0 1110 所以 1110,例12 x1011, 0101, 求。 解: 补0 1011, 补1 1011 补 0 1011 补 1 1011 补 10 0110 所以 + 0110,2019年4月30日星期二,76,2.2.2 补码减法,补码减法运算基本公式 定点整数:x - y补x补 - y补x补 + -y补 (mod 2n+1) 定点小数:x - y补x补 - y补x补 + -y补 (mod 2) 证明:只需要证明 补补 已证明x+y补 x补 + y补 ,故y补x+y补x补 又xy补

45、x补 + y补 ,故y补xy补x补 可得y补 + y补x+y补+ xy补x补 x补 x + y + xy补x补 x补 x + x补x补 x补0 补等于补的各位取反,末位加1。,2019年4月30日星期二,77,定点数补码减法举例 例13 已知1 1110,2 + 1101, 求:1补,1补,2补,2补。,解: 1补 1 0010 1补 1补1 0 11010 00010 1110 2补 0 1101 2补2补1 1 00100 00011 0011,注意课本上的错误!,注意课本上的错误!,2019年4月30日星期二,78,定点数补码减法举例 例14 1101,0110,求。,解: 补0 1101,补0 0110,补1 1010 补 补补 0 1101 1 1010 10 0111 0 0111 0111,0 1101,) 1 1010,1 0 0111,2019年4月30日星期二,79,2019年4月30日星期二,79,定点数补码加减法运算,基本公式 定点整数: x y补 x补 + y补 (mod 2n+1) 定点小数: x y补 x补 + y补 (mod 2) 定点数补码加

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1