- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储器的校验
第五节 存储器的校验
存储器采用海明码进行数据的校验
海明码中校验码位数的确定
假定数据位数为 n,校验码为 k 位,则为了能够纠正一位错,n 和 k 必须满足下列
关系 :
K K
2 ≥1+n+k, 即:2 -1≥n+k
K
为什么?k 位故障字所能表示的状态最多是 2 ,每种状态可用来说明一种出错情
况。若只有一位错,则结果可能是数据中某一位错 (n 种)、或校验码中有一位错 (k
种) ,加上无错,则有 1+n+k 种情况。
海明校验
分组方式的确定
基本思想: 数据位和校验位按某种方式排列为一个 n+k 的码字,将该字中每一位
的出错位置与故障字的数值建立关系,通过故障字的值确定该码字中哪一位发生了错
误,并将其取反来纠正。
按以下规则来解释各故障字的值:
(1) 如果故障字各位全部是 0,则表示没有发生错误。
(2) 如果故障字中有且仅有一位为 1,则表示校验位中有一位出错,不需要纠正。
(3) 如果故障字中多位为 1,则表示有一个数据位出错,其在码字中的出错位置由
故障字的数值来确定。纠正时只要将出错位取反即可。
以8 位数据进行单个位检错和纠错为例说明。
假定一个 8 位数据 M= M M M M M M M M ,其相应的 4 位校验位为 P=P P P P 。
8 7 6 5 4 3 2 1 4 3 2 1
根据上述规则将数据 M 和校验位 P 按照一定的规律排到一个 12 位的码字中。
据规则 1,故障字为 0000 时,表示无错,因此没有和位置号 0000 对应的出错情
况,所以位置号从 0001 开始。
据规则 2,故障字中有且仅有一位为 1 时,表示校验位中有一位出错,此时,故障
字只可能是 0001、0010、0100、1000 四种情况,我们将这四种状态分别代表校验位中
第 P 、P 、P 、P 位发生错误的情况,因此,校验位 P 、P 、P 、P 应分别位于码
1 2 3 4 1 2 3 4
字的第 1、2、4、8 位。
据规则 3,将其他多位为 1 的故障字依次表示数据位 M ~M 发生错误的情况。因
1 8
此,数据位 M ~M 应分别位于码字的第 0011(3)、0101(5)、0110(6)、0111(7)、
1 8
1001(9)、1010(10)、1011(11)、1100(12)位。即码字的 排列为:
M M M M P M M M P M P P
8 7 6 5 4 4 3 2 3 1 2 1
这样,得到故障字 S=S S S S 的各个状态和出错情况的对应关系表,可根据这种
4 3 2 1
对应关系对整个数据进行分组。
校验位的生成和检错、纠错
假定采用偶校验,则:
P = M ⊕M ⊕M ⊕M ⊕M
1 1 2 4 5 7
P = M ⊕M ⊕M ⊕M ⊕M
2 1 3 4 6 7
P = M ⊕M ⊕M ⊕M
3 2 3 4 8
P = M ⊕M ⊕M ⊕M
4 5 6 7 8
问题:如何进一步判断哪位出错?
举例说明
假定一个 8 位数据 M 为:M M M M M M M M =根据上述公式求出相
文档评论(0)