第11讲校验码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
由若干位代码组成的一个字叫“码字”,一种码制是若干种 码字的组合。将两个码字逐位比较 有几个二进制位不同 两个码字逐位比较,有几个二进制位不同 两个码字逐位比较 有几个二进制位不同称为这 两个码字间的距离。 两个码字间的距离 一种码制中各码字间的最小距离称为该码制的“码距” 一种码制中各码字间的最小距离称为该码制的“码距”。 只有一位不同的,称其码距为1。例如,3位二进制代码有8种 状态,若一种码制用到全部8种码字,其码距为1。就是说,任何 一个合法码字的一位或几位出错时,就变成另一个合法码字。 000 001 010 011 100 101 110 111
2
§4.2.6 存储器的校验 在计算机系统内,由于电路故障或电磁干扰等原因,数据在存取 或传送过程中可能产生错误。为了能发现或纠正这类错误,常采 用具有能发现某些错误,或具有能确定错误的性质和准确的出错 位置乃至能自动纠正错误的能力的编码方法,即数据校验码。 Most codes are "systematic": the transmitter sends a fixed number of original data bits, followed by fixed number of check bits (usually referred to as redundancy in the literature) which are derived from the data bits by some deterministic algorithm. 其实现原理是在合法的数据编码之间加进一些不允许出现的非 法编码,使合法编码的码距增大。当合法的数据编码出现错误时, 就变成非法编码。这就可以用检测编码的合法性来发现错误。 The receiver applies the same algorithm to the received data bits and compares its output to the received check bits; if the values do not match, an error has occurred at some point during the transmission.
8
海明校验码 Hamming Code A Hamming code is a linear error-correcting code named after its inventor, Richard Hamming. Hamming codes can detect up to two simultaneous bit errors, and correct single-bit errors; 海明校验码是1种能检测1位或几位错误,又能自动纠正1位错误的 线性分组码。在数据中加入若干个校验位,把各个数据位分在几 个奇偶校验组中,把数据代码的码距比较均匀地拉大。任一位出 错都会引起有关的几个校验位的值发生变化,从而发现错误。 设m位校验码中数据为n位,校验位为k位。把校验码分成k组 作奇偶校验。 所产生的k位检错信息构成一个指误字,可指出2 k种状态。 指误字全0表示无错,其余2k-1种状态能指明k+n位中的某一 位出错。即指误字应能表示n位数据哪一位出错,k个校验位哪一 位出错和无错这k+n+1种情况。
5
根据纠错理论,编码的最小距离与编码的检测、纠错能力 的关系为:L—1 = C+D 其中:L是编码的最小距离,D是可以检测错误代码的位数,C是 可以纠正错误代码的位数,D≥C。 当L=3时,可检测出2个错误,或者可检测并纠正1位错误。 当L=4时,可检测出3个错误,或者可检测出2位并纠正1位错误。 合理的安排非法编码的数量和编码规则,增大合法码的码距 就可以提高发现错误的能力,甚至能自动纠正错误;但表示一定 数量的合法码所使用的二进制位数也增多,使数据存储和传送的 数量增大,硬件开销也相应增大。 常用的数据校验码有: 奇偶校验码、海明校验码 和 循环冗余校验码等。
计算机组成原理
Principles of Computer Organization
广义双语教学课程 青岛理工大学 校级精品课程 http://211.64.192.109/skyclass25/ /ec/C84/
第4章 存储器
Chapter 4 Storage
11
[例1]8位数据的海明码(能指出并纠正一位错)的编码和校验 ① 编码 2 k≥k+n+1 m = k+n =12 数据位n=8,按海明不等式算出k=4, = 12位海明码分成 组进行偶校验。 位海明码分成4组进行偶校验 位海明码分成 组进行偶校验。
- 按Pi的位号等于2i-1的关系,校验位P1~ P4对应的海明码的位 号分别为H1 ,H2,H4,H8 。
4
一种码制中各码字间的最小距离称为该码制的“码距”。 若增大编码的冗余度 冗余度,设计该码制时用4个二进制位来表示8 冗余度 个合法码字。由于只利用了全部16种状态中的8种来表示合法码, 就可以把其余8种状态作为非法码,则码距可能增大到2。当一个 合法码的一位出错时,将变成一个非法码而被发现。 数据 编码 非法码 000 0000 0001 001 0011 0010 010 0101 0100 011 0111 0110 出错 100 1001 1000 1010 101 1011 110 1100 1110 111 1101 1111 所增加的一位称为校验位。 所增加的一位称为校验位。 校验位
各校验位与数据位的关系(偶校验)为:
P1 = D1 ⊕ D 2 ⊕ D 4 ⊕ D5 ⊕ D7 P2 = D1 ⊕ D3 ⊕ D 4 ⊕ D6 ⊕ D7 P3 = D2 ⊕ D3 ⊕ D4 ⊕ D8 P4 = D5 ⊕ D6 ⊕ D7 ⊕ D8
每个小组只有一个校验位。每个校验位校验其自身和4~5个 数据位,不参与其它校验位的校验。 每个数据位至少出现在两个P 值的形成关系中。 每个数据位至少出现在两个 i值的形成关系中。当任一数据 位发生变化时,必将引起二或三个P 值跟着变化。 位发生变化时,必将引起二或三个 i值跟着变化。 不同信息位出现在Pi项中的次数不同。D4和D7出现3次,而D1、D2、 D3、D5、D6、D8仅出现2次,使不同代码的海明码的码距不等。
P2 = D1 ⊕ D3 ⊕ D 4 ⊕ D6 ⊕ D7 P3 = D2 ⊕ D3 ⊕ D4 ⊕ D8
P4 = D5 ⊕ D6 ⊕ D7 ⊕ D8
14
如果要求海明码能检测发现2位错并能自动纠正一位错,则推 广海明码的校验位位数k=5 。海明码的总位数m = k+n =13。 = 2 k-1≥k+n 增加的一个校验位P5只能在H13。 13位海明码分成4组进行偶校验。各位对应关系如下: 海明码位号 H13 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 数据位/校验位 P5 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 参与校验的 校验位位号 13 4, 8 1, 2, 8 2, 8 1, 8 8 1, 2, 1, 4 2, 4 4 4 1, 2 2 1
6
奇偶校验码 Parity Check Code 奇偶校验码的编码方法是给n位的合法编码增加一个奇偶校 验位,使其码距增加到 码距增加到2。任何一位出错 一位出错(包括校验位)都会使 码距增加到 一位出错 奇偶性改变 代码的奇偶性改变,从而被发现。 代码的奇偶性改变 校验位可以放在最高数据位的左边,或最低数据位的右边。 位的奇偶校验码中“ 的个数为奇数称为奇校验 的个数为奇数称为奇校验, 若n+1位的奇偶校验码中“1”的个数为奇数称为奇校验,“1” 位的奇偶校验码中 的个数为偶数称为偶校验。 的个数为偶数称为偶校验。 当n位信息代码中有偶数个 位信息代码中有偶数个1,则偶校验附加的校验位为 偶校验附加的校验位为0, 位信息代码中有偶数个 偶校验附加的校验位为 而奇校验的校验位为 。例如: 奇校验的校验位为1 奇校验的校验位为 设校验 位在最 右边 数据代码 10110 01100 奇校验码 101100 011001 偶校验码 101101 011000
9
ห้องสมุดไป่ตู้
(1) 校验位的位数 •若要求海明码能指出并纠正一位错,则数据位的位数n和校验 位的位数k应满足如下关系(海明不等式): 2 k≥k+n+1 此时码距为3 ,海明码中的每一信息位至少要参加两组奇 偶校验并至少影响两个校验位。 •若要求海明码能检测发现2位错并能自动纠正一位错,则数据 位的位数n和校验位的位数k应满足如下关系: 2 k-1≥k+n 满足这个不等式的海明码称为:扩展海明码 / 推广海明码 扩展海明码 此时码距为4 ,推广海明码中的每一信息位至少要参加3组奇 偶校验并至少影响3个校验位。
例如,数据11010011的海明码为 海明码位号
数据位/校验位
H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 D8 1 D7 1 D6 0 D5 P4 D4 D3 D2 P3 D1 P2 P1 1 1 0 0 1 0 1 0 0
海明码
P1 = D1 ⊕ D 2 ⊕ D 4 ⊕ D5 ⊕ D 7
A parity bit is an error detection mechanism that can only detect an odd number of errors.
7
交叉奇偶校验 对数据块的横向和纵向都有奇偶校验位。例如: A7 A6 A5 A4 A3 A2 A1 A0 横向校验位 1 1 0 0 1 0 1 1 → 1 第1字节 字节 0 1 1 1 1 1 0 0 → 1 第2字节 字节 1 0 0 1 1 0 1 0 → 0 第3字节 字节 第4字节 字节 1 0 0 1 0 1 0 1 → 0 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 纵向校验位 1 0 1 1 1 0 0 0 交叉奇偶校验能够发现两个位同时出错。 交叉奇偶校验能够发现两个位同时出错。 奇偶校验码广泛应用于存储器读写检查,数据传输过程中的 检查等。 奇偶校验能发现1位或者奇数个位同时出错, 奇偶校验能发现 位或者奇数个位同时出错,但不能发现偶 位或者奇数个位同时出错 数个位同时出错,也没有纠错能力。 数个位同时出错,也没有纠错能力。
各位对应关系如下: 海明码位号 数据位/校验位 参与校验的校 验位位号 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 4, 8 1, 2, 8 2, 8 1, 8 8 1, 2, 1, 4 2, 4 4 4 1, 2 2 1
10
(2) 分组原则(编码规则) 设:海明码Hm Hm-1……H2 H1的最高位号为m ,最低位号为 1。m= k+n
- ① 每个校验位Pi在海明码中被分配在位号2i-1的位置,其余各 位为数据位,并按从低向高逐位依次排列的关系分配。
② 海明码的每一位码Hi由多个校验位作校验 被校验的每一位 多个校验位作校验,被校验的每一位 多个校验位作校验 的海明码位号等于校验它的各校验位的海明码位号之和,以便 的海明码位号等于校验它的各校验位的海明码位号之和 使校验的结果能正确反映出错位的位号。 ③ 在增大合法码的码距时,尽量使所有码的码距均匀的增大 尽量使所有码的码距均匀的增大, 尽量使所有码的码距均匀的增大 以保证对所有码的检错能力平衡提高。
(3)
Error detection is the ability to detect the presence of errors caused by noise or other impairments during transmission from the transmitter to the receiver: Error correction is the additional ability to reconstruct the original, error-free data.
被校验的每一位的海明码位号等于校验它的各校验位的海明 码位号之和。
海明码位号 数据位/校验位 参与校验的校 验位位号
H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 4, 8 1, 2, 8 2, 8 1, 8 8 1, 2, 1, 4 2, 4 4 4 1, 2 2 1
相关文档
最新文档