收藏 分享(赏)

计算机组成原理电子教案第2章.ppt

上传人:fcgy86390 文档编号:8024348 上传时间:2019-06-04 格式:PPT 页数:59 大小:427KB
下载 相关 举报
计算机组成原理电子教案第2章.ppt_第1页
第1页 / 共59页
计算机组成原理电子教案第2章.ppt_第2页
第2页 / 共59页
计算机组成原理电子教案第2章.ppt_第3页
第3页 / 共59页
计算机组成原理电子教案第2章.ppt_第4页
第4页 / 共59页
计算机组成原理电子教案第2章.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、第二章 计算机的数据表示,计算机组成原理电子教案 陆 遥,2.1 字符数据的表示 2.2 逻辑数据的表示 2.3 校验码2.3.1 码距与校验位的概念2.3.2 奇偶校验码2.3.3 海明校验码2.3.4 循环冗余校验码 2.4 数值数据的表示2.4.1 数的二进制真值表示2.4.2 用BCD码表示十进制数2.4.3 定点数的表示2.4.4 浮点数的表示,2.1 字符数据的表示,字符在计算机中的二进制编码称为字符代码。目前,计算机中普遍使用的字符代码是长度为7位的ASCII码(美国信息交换标准代码)。 ASCII码在存储器中存放时,需要占用存储器的一个字节(8位),其中的最高位(b7)置为0或

2、用作奇偶校验位。 字符串被看作是一种数据结构,它是若干字符组成的一个序列,属于线性结构。字符串在计算机中的存储一般采用顺序存储结构,串中每个字符都用ASCII码表示,占用一个字节 。,设字符串“Very good!”存储在从主存地址i开始的连续字节中,则其存储结果为,2.2 逻辑数据的表示,逻辑数据用于描述某种关系是否成立、某种条件是否满足、某种状态是否出现、某种控制是否有效等。 逻辑数据所描述的结果总是只有两种可能:成立或不成立,满足或不满足,出现或未出现、有效或无效等。 逻辑数据的两种值被分别称为“真”和“假”。“真”代表关系成立、条件满足、状态出现、控制有效等,“假”则反之。计算机中只需

3、用一位二进制数字的0和1两种状态,就能满足逻辑数据表示的需要:1表示“真”,0表示“假”。,2.3 校验码,数据校验码是一类能够发现甚至自动纠正某些数据错误的数据编码方法。通常,将正确的数据编码称为合法编码,而将错误的数据编码称为非法编码。校验码的设计原则:当一个合法编码中的数据位发生错误时,就变为一个非法编码,而不是变为另一个合法编码。这样,只要检测到非法编码,就能发现数据错误。,2.3.1 码距与校验位的概念 一个二进制编码系统中,当两个不同的合法编码进行对应位的比较时,会有一些位上的取值不同,这些取值不同的位的位数称为这两个编码的码距,也称海明距离。一个编码系统中任意两个合法编码的码距的

4、最小值,称为这个编码系统的最小码距。一个编码系统不仅要编出全部合法编码,还应能编出一定数量的非法编码。这样,在合法编码出错时,才有可能变成非法编码而被检出。,编码系统中包含的非法编码称为冗余码。为了形成冗余码,需要在编码中增加冗余位(校验位)。一个n位的编码系统,如果不设校验位,则无冗余码,全部2n个编码均为合法编码,最小码距必然为1,编码系统无检错能力。借助于校验位,可以使编码系统的最小码距大于1,而与某个合法编码的码距小于最小码距的编码一定是非法编码。,2.3.2 奇偶校验码 奇偶校验码是在基本编码之上增加一个校验位奇偶校验位而形成的。奇偶校验分为奇校验和偶校验两种实现方案。奇校验是通过校

5、验位的调节,使整个编码中包含的二进制1的位数为奇数。偶校验是通过校验位的调节,使整个编码中包含的二进制1的位数为偶数。,5位偶校验码表(最高位为校验位),增加一个校验位后,最小码距从1变为2。,表中未列出的另16种5位编码就是本编码系统的冗余码,也就是非法编码。任一非法编码均与表中某个合法编码的码距为1,且合法编码出错的位数为奇数(1、3或5)时,均会变成非法编码。奇偶校验码能够发现奇数个编码位的错误,但无法确定出错位的位置,故不能实现自动纠错。,设奇偶校验码为PDn-1Dn-2D1D0,其中,P为校验位,Dn-1Dn-2D1D0为n个数据编码位,按照奇偶校验码的编码方法,校验位与数据编码位的

6、逻辑关系为:奇校验:偶校验:奇偶校验的校验式为:对偶校验,S=1时编码有错,S=0时编码无错,对奇校验则正好相反。,2.3.3 海明校验码 海明校验码具有发现2位错误并纠正1位错误的能力,是一种广泛使用的校验码。海明校验码的设计原理:将几个校验位编入到数据码的特定位置,全部数据位被分成几个奇偶校验组,每个数据位被按一定的规则分配到其中几个组中,各校验位分别作为各组的奇偶校验(一般为偶校验)位。当某个数据位出错时,将会导致含有该数据位的几个校验组的校验结果出错。根据出错校验组的不同组合,就能确定是哪个数据位发生错误,进而自动纠正这个错误。,海明码数据位数k与校验位数r的对应关系表,设校验位的位数

7、为r,数据位的位数为k,若要能够发现2位错误并纠正1位错误,则需满足,设m = k + r,则海明码是一个m位编码,设其一般表示形式为HmHm-1H2H1,则此海明码的编码规则是:各校验位Pi(i =1,2,r)被安排在编码的第2i-1位的位置,编码中的其余位为数据位。如校验位P3在海明码中位于第4(23-1)位,即编码中的H4。海明码的每个位被分配到几个奇偶校验组中,所以,每个位均由几个校验位来校验。各被校验位与相关的校验位之间的关系是:被校验位的位号是相关各校验位的位号之和(这里的位号是指其在海明码中的位号)。,例如,当k=4时,有r =4,则海明码总位数为8,可表示为H8H7H6H5H4

8、H3H2H1。按编码规则,4个校验位P1、P2、P3、P4被分别安排在H1、H2、H4和H8。如以Di和Pi(i =1,2,3,4)分别表示数据位和校验位,则海明码的编码结果为 P4D4D3D2P3D1P2P1其中的各个编码位与相关的校验位之间的关系如下表所示:,海明码的编码位与相关校验位之间的关系,可见,P1要对数据位D1、D2、D4进行校验,P2要对数据位D1、D3、D4进行校验,P3要对数据位D2、D3、D4进行校验。,如选择偶校验,有对应的三个校验式为,编码位出错与校验式结果之间的关系,当不同的编码位(包括数据位和校验位)发生错误时,3个校验式的值组成的二进制序列S3S2S1就会不同。

9、,按S3S2S1确认出错的编码位后,只需将该编码位取反,即可纠正之。纠错时,需要针对S3S2S1的每种取值(除000外)设计相应的纠错电路,来纠正对应的出错编码位,硬件代价较大。 海明码还能检出2位错误。因为任意两个编码位出错,都将使S3S2S1000。但仅凭S3S2S1000,无法区分是2位错误还是1位错误。为此,需要增加一个总校验位P4,使得并增设一个奇偶校验式S4 =1,发生1位错误;S4 =0,发生2位错误。,2.3.4 循环冗余校验码 循环冗余校验(CRC)码因其纠错能力强,且在信息量较大的情况下,编码与解码所需的硬件代价小等优点,被广泛用于串行传送过程中的检错与纠错。 CRC码也称

10、为(n,k)码,它是在k位信息位之后拼接r位校验位而形成的n位编码(n=k+r)。1模2四则运算 CRC码的编码及校验过程均需要用到模2四则运算。模2运算是按位运算,位与位之间不产生进位或借位。,模2加/减运算:模2加与模2减是两种等效的运 算,均等同于逻辑异或运算,即模2乘运算:在对部分积求和时按模2加进行。例如1 0 1 0 1 1 0 11 0 1 00 0 0 01 0 1 01 0 1 01 1 1 0 0 1 0,模2除运算:上商时,如果上一次部分余数的最高位为1,则本次上商为1,否则上商为0;求部分余数时,按模2减进行;将每次求得的部分余数的最高位(总是0)去掉,使部分余数每次减

11、少一位,当部分余数的位数少于除数位数时,即为最终的余数。例如1 0 1 商1 0 1 1 0 0 1 0 被除数也是最初的部分余数1 0 1 部分余数最高位为1,上商为10 0 1 1 0 去掉部分余数最高位的0,部分余数减少一位0 0 0 部分余数最高位为0,上商为00 1 1 0 去掉部分余数最高位的0,部分余数减少一位1 0 1 部分余数最高位为1,上商为10 1 1 去掉部分余数最高位的0,得最终余数11,2CRC码的编码方法 一个k位二进制信息码 可以用一个多项式表示:M(x)称为信息码多项式。 为了在信息位后拼接r位校验位,需将k位信息位向左移动r位,得多项式M (x)xr。 r位

12、校验位可以表示为多项式R (x),它是以下多项式运算产生的余数(按模2运算),上式中,G (x)被称为生成多项式,是一个r阶多项式;Q (x)为商多项式;R (x)是余数多项式。将R (x)拼接在M (x)之后,即得到完整的CRC码,其多项式表示形式为M (x)xrR (x)(模2加)。CRC码M (x)xrR (x)可被其生成多项式G (x)整除(模2除),即余数为r位全0。因为M (x)xrR (x) = Q (x)G (x)R (x)R (x)= Q (x)G (x)R (x)R (x)= Q (x)G (x) (模2运算),【例2.1】按(7,4)CRC码的编码规则,求4位信息码110

13、0的CRC码,生成多项式选择G (x) = x3x1。解:由(7,4)码可知r = 74 = 3,即校验位有3位。根据4位信息码1100得M (x) = x3x2;M (x)左移r位后得M (x)xr = (x3x2)x3 = x6x5 = 1100000G (x) = x3x1 = 1011。下面按模2除求3位校验位所以,R (x) = 010。由此可得CRC码为M (x)xrR (x) = 1100000010 = 1100010 (模2加),3CRC码的检错与纠错CRC码的检错原理:数据传送的接收方在接收到CRC码后,使用与发送方约定的生成多项式去除该CRC码,如果余数为r位全0,则收到

14、的CRC码无错误,否则有错误。CRC码的纠错原理:CRC码不同位上的错误将导致产生不同的余数R (x),可依据余数R (x)确定并纠正出错的编码位。,例2.1的(7,4)CRC码出错位与余数R (x)之间的对应关系 (生成多项式G (x) = 1011),可以证明,只要CRC码的码制(即(n,k)码的n、k取值)和生成多项式G (x)不变,信息码M (x)的变化不改变出错位与余数R (x)的对应关系。即上表所列,为所有以G (x)= 1011为生成多项式的(7,4)CRC码的出错模式。,CRC码还有一个重要特点:在一个不为0的余数的最低位补1个0后再除以G (x)(模2除),所得的余数就是出错

15、模式表中的下一个余数;如此继续下去,各次产生的余数将按出错模式表中的顺序循环变化。 对一个(n,k)码,在某位出错时,从对应的余数开始,按上述方法产生余数的循环变化,同时每次使整个CRC码循环左移1位,当余数变到对应于An出错的余数时,出错位也被移到An的位置,此时将An取反实现纠错,然后继续做余数的循环变化和CRC码的循环左移,直到做满一个循环(n次),就得到了一个纠正后的CRC码。,利用CRC码来纠错,不必针对每个不为0的余数来设计对应编码位的纠错电路,能有效降低校验电路的硬件代价。4生成多项式简介 生成多项式应能满足下列要求:CRC码的任何一位出错,均使余数不为0;CRC码的不同位出错时

16、,余数也应不同;对不为0的余数最低位补0后继续作模2除,应能 使余数循环。若要求余数为r位,则生成多项式应为r阶。,生成多项式的求取方法:对一个(n,k)码来说,可将(xn -1)按模2 运算规则分解为若干质因子,根据编码所要求的码距选取其中的因式或若干因式的乘积作为生成多项式。【例2.2】设n = 7,则按模2 运算规则,有选择G (x) = x1 = 11,可构成(7,6)码,只能判1位错。选择G (x) = x3x1 = 1011或G (x) = x3x21 = 1101,可构成(7,4)码,能判2位错或纠1位错。选择G (x) = (x1)(x3x1) = 11101,可构成(7,3)

17、码,能判2位错并纠1位错。,部分(n,k)码的生成多项式G (x),2.4 数值数据的表示,数值数据是计算机中用于各种算术运算的数据。计算机中表示数值数据要解决有效数字、小数点及符号的表示,还要便于数据的运算。,2.4.1 数的二进制真值表示 所谓数的“真值”表示,是相对于数在计算机中的编码表示而言的,也就是人们平时所习惯的数的书面表示形式。如+10000100 和-1111011.01。 在计算机中,无论是“+”号、“-”号还是小数点“.”,都属于字符,需要用ASCII码来表示。如果计算机中也采用真值表示数据的话,就会大大增加信息的存储量,同时也会给运算带来很大的麻烦。 计算机中的数值数据采

18、用特殊的二进制编码形式表示,称为机器数。,2.4.2 用BCD码表示十进制数BCD(binary coded decimal)码的完整意义是“用二进制编码的十进制码”,它采用4位二进制编码表示1位十进制数。BCD码分有权码与无权码两类。有权码如8421码、2421码等;无权码如余3码、格雷码等。采用8421码可以进行十进制算术运算,但运算结果可能需要修正。,典型BCD码,2.4.3 定点数的表示 计算机中实际用于数值计算的数据表示方法主要有定点数表示法和浮点数表示法两种;定点数表示法也是浮点数表示法的基础。 所谓定点数表示,是指小数点被固定在数据中某个特定位置上的数据表示方法。定点整数:定点小

19、数:其中,xs是数的符号。,定点数中,小数点的位置可以看作是默认的,因此,小数点不用表示出来。 符号的表示是定点数表示必须要解决的问题。带符号的定点数在计算机中有原码、补码、反码和移码等四种编码表示方法。1. 原码表示法 原码以0表示正号,以1表示负号,直接置于数的最左端(即最高位位置);而数的数字部分与其绝对值一致。【例2.3】 若 x = +0.1011,则 x原 = 0.1011; 若 x = -0.1011,则 x原 = 1.1011; 若 x = +1011,则 x原 = 01011; 若 x = -1011,则 x原 = 11011。,设符号位用xs表示,各数据位用xi(i = 0

20、,1,2,n1)表示,则原码的一般表示形式为 x原 = xs xn1 xn2 x1 x0用原码表示时,+0原与-0原是不同的: +0原 = 00000 -0原 = 10000原码比较适合于乘除运算。原码不适合于加减运算。,2. 补码表示法 计算机中,因为用来存储数据的存储单元或寄存器有一定的位数限制,进行数据运算的运算器也有一定的位数限制,所以,数据在计算机中表示的位数也是受限制的。当数据超过规定位数时,其处于高位的超出部分将被丢弃。 以定点整数为例,设一个寄存器的位数为n,则超出该寄存器存储能力的最小正整数是2n,它在该寄存器中的存储结果与0的存储结果是一样的。,一般地,设x为正整数,且0x

21、2n,则x与2n x在n位寄存器中的存储结果是一样的,均为x。这种现象在数学中称为“同余”,即x除以2n与2n x除以2n的余数相同,用数学公式表示为 x = 2n x (mod 2n)在同余的概念下,设x0且|x|2n,则同样有 x = 2n x (mod 2n)式中,x0而2n x0。它说明:在mod 2n的前提下,一个负数x可以用一个正数2n x来表示;也就是说,一个负数x与一个正数2n x在n位寄存器中的存储结果是一样的。,在mod 2n的前提下,设|x|2n,我们把x的同余数2n x称为x的补码,即 x补 = 2n x (mod 2n)在一个n位寄存器中存放补码时,要把最高位留作符号

22、位,数字部分为n1位。故x的实际取值范围是 -2n1 x 2n1 -1 对定点小数,由于符号位占据了n位寄存器的最高位,相当于占据了20位,故模数应该是21。由此可得定点小数x的补码为 x补 = 21 x (mod 21) x的实际取值范围是 -1 x 1-2-(n 1),【例2.4】设寄存器位数为8位,可以存放一个8位补码(1位符号,7位数值)。设 x = +1001011,求x补 。解: x补 = 28 + x (mod 28) = 28 + (+1001011) (mod 28) = 01001011 (mod 28) 其中,最高位上的0被看作符号位。由本例可知:一个正数的补码与其原码是

23、一致的。,【例2.5】设寄存器位数为8位,x = -1001011,求x补 。解: x补 = 28 + x (mod 28) = 28 + (-1001011) (mod 28) = 10110101 (mod 28) 其中,最高位上的1被看作符号位。由本例可知:一个负数的补码,其符号位为1。显然,负数的补码与其原码是不同的。,【例2.6】设寄存器位数为8位,x = +0.1001011,求x补 。解: x补 = 21 + x (mod 21) = 21 + (+0.1001011) (mod 21) = 0.1001011 (mod 21) 最高位上的0被看作符号位。【例2.7】设寄存器位数

24、为8位,x = -0.1001011,求x补 。解: x补 = 21 + x (mod 21) = 21 + (-0.1001011) (mod 21) = 1.0110101 (mod 21) 最高位上的1被看作符号位。,与原码不同,补码的符号位(正为0,负为1)不是人为规定的,而是在求补码的运算中求出的,实际上就是运算结果的最高有效数字位。因此,在用补码进行加减运算时,符号位可以象数字位一样参加运算,给计算机的加减运算带来很大方便。,3. 反码表示法 一个数的反码可通过其原码求得,方法是:正数的反码与其原码一致;负数的反码与其原码符号位相同,数字位按位取反。反码一般不用于计算,但可用来作为

25、原码转换为补码时的中间代码。原码转换为补码的方法是:正数的原码、补码及反码均相同,无需转换;对负数,先从原码求其反码,再将反码加1,即 得其补码。补码到原码的转换也使用同样的方法。,【例2.8】设寄存器位数为8位,x = -1001011,则x原 = 11001011,x反 = 10110100,x补 = x反 +1= 10110100+1= 10110101【例2.9】在例2.8的基础上,将x补 转换为x原 的过程如下:x补 = 10110101符号位不变,数字位每位取反,得11001010加1,得11001011= x原 。,4. 移码表示法 移码只用于表示带符号定点整数。设x是一个n位二

26、进制整数,则其移码定义为 x移 = 2n + x , 2n x -2nx移 是一个n +1位的编码,最高位被看作符号。【例2.10】设 x = +1001011,为7位数,则 x移 = 27 + x = 27 + (+1001011) = 11001011【例2.11】设 x = -1001011,为7位数,则 x移 = 27 + x = 27 + (-1001011) = 00110101 移码正数的符号为1,而负数的符号为0。移码的符号能够直接参与加减运算。移码之间的大小关系可以直接反映数据真值之间的大小关系。,2.4.4 浮点数的表示 浮点数是指小数点位置未经人为约定的一般的数,其小数点

27、可以出现在数中任意位置。 一个浮点数N可以表示成 N = Re m 浮点数的三个构成要素:指数e;基数R;有效数字m。 浮点数表示的基本思想:将浮点数的三个要素分别表示出来。 在计算机中,指数是一个整数,可用定点整数表示;基数默认为2,不用表示出来;有效数字部分被规定为一个纯小数,可用定点小数表示。,指数的机器数编码称为“阶码”,有效数字的机器数编码称为“尾数”,尾数的符号就是浮点数的符号。浮点数在计算机中的一般编码表示格式为:尾数M一般用补码或原码表示;阶码E一般用移码或补码表示;数符S是浮点数的符号,也就是尾数的符号(故M不含符号位)。浮点数的表示范围取决于阶码的位数,而浮点数的表示精度则

28、取决于尾数的位数。,在浮点数表示中,除了要求尾数为纯小数外,还进一步规定:当尾数的绝对值不为0时,尾数绝对值(或真值)的最高有效数字必须为1;这称为浮点数的规格化表示。如:+110.0101的规格化表示形式是 230.1100101而不能是 240.01100101 浮点数的规格化表示既消除了浮点数表示的不确定性,又可以尽量减少其精度损失。,浮点数表示中的一些特殊情况:当尾数为0时,浮点数的值为零,称为机器零。当阶码小于可表示的最小数(即绝对值最大的负数)时,浮点数的值也被看作机器零。当阶码大于可表示的最大数时,称为浮点数“溢出”,通常要作为异常情况处理(报警或中止程序执行等)。,IEEE 7

29、54标准的32位(单精度)和64位(双精度)浮点数的标准格式:其中,S为数符,0表示正数,1表示负数;E为阶码,用移码表示;M是尾数,用原码表示。 IEEE 754格式浮点数的真值x计算公式:单精度:x = (-1)S (1. M)2E127 ,e = E127双精度:x = (-1)S (1. M)2E1023 ,e = E1023其中,S、E、M即为标准格式中的数符、阶码、尾数,e是指数的真值。,IEEE 754标准浮点数的规格化尾数实际为1. M,其中的整数位1是默认的,没有表示出来,只在计算时由运算电路自动提供。 实际上,可将IEEE 754标准格式浮点数的规格化尾数,看作是一般格式浮

30、点数的规格化尾数(0除外)左移一位后所得,当然,阶码要为此减1。因此,IEEE 754标准格式浮点数的阶码也不是标准的移码表示形式,它是标准移码减1后的结果。,IEEE 754标准规定:用E和M均为全0来表示零值;根据S的不同,有正零与负零之分。用E为全1、M为全0来表示无穷大;根据S的不同,有正无穷大与负无穷大之分。当E为全1,而M不为0时,不表示任何数,而用来报告一些异常运算(如:00,0,求负数的平方根等)的发生。当E为全0,而M不为0时,表示反规格化数。当E不为全0或全1时,表示规格化非零浮点数。,【例2.12】设某种24位浮点数的机器编码格式为:其中,S为数符;阶码E和尾数M均用补码

31、表示。试将十进制数-576.625表示成这种格式的规格化数据编码。解:(-576.625)10 = (-1001000000.101)2 ,-1001000000.101 = 210 (-0.1001000000101) ,所以,指数e = (10)10 ,有效数字m = -0.10010000001010000,故 E = e补 = 001010,M = m补 = 1.01101111110110000由于M的符号作为数符S,M不再包含符号位,因此,-576.625的浮点数机器编码为 1 001010 01101111110110000,【例2.13】对例2.12中的浮点数编码格式,求其规格

32、化数据的表示范围。解:求数据表示范围需要确定最小负数、最大负数、最小正数和最大正数的值,下面分别进行:最小负数:1 011111 00000000000000000真值:-1231最大负数:1 100000 10000000000000000真值:-2-33最小正数:0 100000 10000000000000000真值:+2-33最大正数:0 011111 11111111111111111真值:+(1-2-17)231所以,该24位浮点数的规格化数据表示范围是: -1231,-2-33+2-33,+(1-2-17)231,【例2.14】若一个 IEEE 754 标准的32位浮点数编码表示为 0 10100011 01101100000000000000000求其十进制值。解:数符S = 0,因此为正数;E = 10100011,(127)10 = 01111111,所以e = E -127 = 10100011-01111111 = (36)10尾数= 1. M= 1. 01101100000000000000000 = (1.421875)10 所以,该浮点数的十进制值为 1.421875236,

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

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

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


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

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

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