【计算机组成原理】第2章 数据表示 笔记


注:打 荧光标记处尚未搞清楚

2.1 机器数及特点

  1. 研究机器内的数据特点
    目的:组织数据,方便计算机硬件直接使用。
    考虑因素:支持的数据类型、能表示的数据范围、能表示的数据精度、存储和处理的代价、是否有利于软件的移植等
  2. 机器内的数据表示
    1)真值:符号用“+”、“-”表示的数据表示方法。
    2)机器数:符号数值化的数据表示方法, 用0、1表示符号。
    3)三种常见的机器数:设定点数的形式为X0 X1 X2 X3 … Xn


    常见机器的特点
    原码:
    (1)表示简单 : [X]原 == 2 ^n -X
    (2)运算复杂:符号位不参加运算,要设置加法、减法器。
    (3)0的表示不唯一:[X]原 + [Y]原(不能直接判定是执行加法还是减法运算,分同号和异号)
    反码:
    (1)表示相对原码复杂: [X]反 = 2 ^(n+1) +X - 1
    (2)运算相对原码简单:符号位参加运算, 只需要设置加法器,但符号位的进位位需要加到最低位。
    (3)0的表示不唯一

    补码:
    (1)表示相对原码复杂: [X]补 = 2 ^(n+1) +X
    (2)运算简单:只需设置加法器。
    (3)0的表示唯一
    移码(增码):
    移码表示浮点数的阶码,IEEE754中阶码用移码表示。设定点整数X的移码形式为X0X1X2X3…Xn则移码的定义是:
    [X]移= 2n + X -2n < X <2n (X为真值,n为X的整数位位数)
    具体实现:数值位与X的补码相同,符号位与补码相反
    例子:
    X= +10101 [X]补=010101 [X]移=110101
    X= –10101 [X]补=101011 [X]移=001011

2.2 定点与浮点数据表示

1.定点数据表示
(1)可表示定点小数和整数
(2)表现形式见下图:
<img src=“https://imgblog.csdnimg.cn/20200225165057745.png” width=“60%”
(3)定点小数表示数的范围(补码为例): -1 ≤ x ≤ 1-2^( -n)
(4)定点整数表示数的范围(补码为例):-2n ≤ x ≤ 2n-1
(5)定点数据表示数的不足:数据表示范围受限
2. 浮点数的表示
把数的范围和精度分别表示的一种数据表示方法。
浮点数的使用场合:当数的表示范围超出了定点数能表示的范围时。
(1)格式 (一般格式)

E: 阶码位数,决定数据的范围
M: 尾数位数,决定数的精度

一般表示格式的不足:不同系统可能根据自己的浮点数格式从中提取不同位数的阶码
(2)IEEE 754格式
S 1位符号位 + 8位偏指数E + 23位有效尾数M —— 单精度
S 1位符号位 + 11位偏指数E + 52位有效尾数M —— 双精度
指数采用偏移值,其中单精度偏移值为127,双精度为1023,将浮点数的阶码值变成非负整数,便于浮点数的比较和排序
IEEE754尾数形式为1.XXXXXX,其中M部分保存的是XXXXXX(1被隐藏),从而可保留更多的有效位,提高数据表示的精确度
例子:
与上述IEEE754格式相对应的32位单精度浮点数的真值可表示为:N = (-1)S ×2 E-127 × 1.M
随E和M的取值不同,IEEE754浮点数据表示具有不同的意义。
N = (-1)S × 2 E-127 × 1.M


2.3 数据校验的基本原理

  1. 数据校验的必要性
    (1)受元器件的质量、电路故障或噪音干扰等因素的影响,数据在被处理、传输、存储的过程中可能出现错误;
    (2)若能设计硬件层面的错误检测机制,可以减少基于软件检错的代价(系统观)
  2. 校验的基本原理
    增加冗余码(校验位)
    有效信息(k位) 校验信息(r位)
  3. 码距的概念
    同一编码中,任意两个合法编码之间不同二进数位数的最小值;
    如:0011与0001 的码距为1,一位错误时无法识别;
    0000、0011、0101、0110、1001、1010、1100、1111等编码码距为2。任何一位发生改变,如0000变成1000就从有效编码变成了无效编码,容易检测到这种错误。
    校验码中增加冗余项的目的就是为了增大码距。
    (通俗来说:码距 是指两个码之间的不同位数,如1011和1101之间的码锯为 2,一种编码方式的码锯是指区分这个集合中码字的最小位数。举个例子,如8421码,只需变化一位就可以区分两个编码,如1111 变化变为 1110 。所以8421码的码距为1。)
  4. 码距与检错或纠错能力的关系

    换种方式来说:
  5. 选择码距要考虑的因素
    有效信息(k位) 校验信息(r位)
    (1)码距越大,抗干扰能力越强,纠错能力越强,数据冗余越大,编码效率低,编码电路也相对复杂;
    (2)选择码距必须考虑信息发生差错的概率和系统能容许的最小差错率。

2.4 奇偶校验

  1. 奇偶校验的基本原理
    (1))增加冗余码(校验位)
    有效信息(k位) + 校验信息(r=1位)
    (2))编码:根据有效信息计算校验信息位,使校验码(数据+ 1位校验信息)中1的个数满足奇/偶校验的要求

    (3)检错方法与电路



  2. 改进的奇 / 偶校验
  3. 关于奇/偶校验应用的讨论
    内存条芯片为奇数的可以初步推算为采用了奇偶校验,偶数则没有;
    工程上的应用 :http://www.eepw.com.cn/article/280413.htm (关于串口奇偶校验配置的经验)
    一般在同步传输方式中常采用奇校验,异步传输方式中常采用偶校验:
    000000 -> 00000000 偶校验
    000000 -> 00000001 奇校验

2.5 CRC校验及其实现

  1. CRC校验的基本原理
    (1)
     增加冗余码(校验位)
    有效信息(k位) + 校验信息(r位) N = k+r ≤ 2r- 1
     生成多项式G(x)
    收发双方约定的一个(r + 1)位二进制数,发送方利用G(X)对信息多项式做模2除运算,生成校验码。接收方利用G(X)对收到的编码多项式做模2除运算检测差错及错误定位。
     G(x)应满足的条件
    A. 最高位和最低位必须为1;
    B. 当被传送信息(CRC码)任何一位发生错误时,被生成多项式做除后应该使余数不为0;
    C. 不同位发生错误时,模2 除运算后余数不同;
    D. 对不为0余数继续进行模2 除运算应使余数循环。
     常见生成多项式G(x)

    (2)模2运算规则
    a)加 /减运算 (异或运算,加不进位,减不借位): 0±0=0,0±1=1,1±0=1,1±1=0
    b)模2 除法: 按模2减,求部分余数,不借位。
    c)上商原则:
    ①部分余数首位为1时,商为1,减除数;
    ②部分余数首位为0时,商为0,减0;
    ③当部分余数的位数小于除数的位数时,该余数即为最后余数。

    具体理解参考:https://blog.csdn.net/qq_33411687/article/details/82593466
    (3)CRC编码方法
    ① 根据待校验信息的长度k,按照 k+r ≤ 2r-1 确定校验位r的位数如对4位信息 1100 进行CRC编码,根据 4+r ≤ 2r-1 ,得 rmin = 3
    ② 根据r 和生成多项式的选择原则,选择位数为 r +1 的生成多项式G(X)= 1011
    ③ 进行下列变化:有效信息(k位) + 校验信息(r位) -> 1100 000
    即:将待校验的二进制信息Q(X)逻辑左移 r 位,得到Q(X)’
    ==(4)==对Q(X)’按模2运算法则除G(x),求CRC编码中的r位校验信息
    ==(5)==用得到的余数替换Q(X)’的最后r位即可得到对应的CRC编码
    1100 000 -> 1100 010 即为1100 的CRC 编码

(此处不是很清楚)
接收方利用G(X)对收到的编码多项式做模2除运算, 余数为0说明传输没有错误,余数不为0说明传输有错。
(4)CRC的检错与纠错

若余数不为0,一边对余数补0继续做模2除,同时让被检测的校验码循环左移,当余数为101时,
出错位也移到A1位置。通过异运算纠正后继续循环左移和执行余数模2除法,直到修改后的出
错位回原位。不需对每一位提供纠正电路。当位数增多时,循环码校验能有效地降低硬件代价,这是它得以广泛应用的主要原因。
(5)CRC编码的实现


2.6 海明校验及其实现

  1. 海明校验的基本原理
     增加冗余码(校验位)
    有效信息(k位) + 校验信息(r位) N = k+r ≤ 2r- 1
    (1)1) 设k+r位海明码从左到右依次为第1,2,3,……, k+r位,r位校验位记为Pi(i=1,2,…,r),分别位于k+r位海明编码的第2i-1 (i=1,2,…,r)位上,其余位依次放置被校验的数据位;
    (2) (7,4)海明校验码中校验位和被校验信息位的排列如下:

    (3) Hj位的数据被编号小于j的若干个海明位号之和等于j的校验位所校验 ,如:

    海明校验编码举例:

    (4)海明校验特点分析



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值