Appearance
海明码详解
大纲定位
本条已移出计算机组成原理大纲
不在现行 408 计组大纲内。CO「二、数据的表示和运算」现为 数制与编码 / 运算方法和运算电路 / 整数的表示和运算 / 浮点数的表示和运算四条,「三、存储器层次结构」七条中亦无校验码。
但它没有消失,只是换了科目:408 计算机网络「三、数据链路层(三)差错控制」的纠错编码仍在纲,海明码正属此列。
谁该读:① 备考 CN 差错控制的考生;② 目标院校自命题的考生;③ 想搞懂内存 ECC / SSD 纠错的读者。 谁可以跳过:只考统考 408、且 CN 部分已单独复习的考生,本篇可作选读。
考情分析
CO 侧现存真题仅 2013 年一道 2 分选择题(已加编者注说明大纲变动)。能力目标是:会算校验位数量、会写出各校验位的值、会由故障字定位出错位并判断该不该纠,以及区分 SEC 与 SEC-DED。
海明码的核心思想
海明码在数据位之间插入若干校验位,使码距
精妙之处在于:每个数据位被分配到多个校验组中,出错时各校验组的结果拼起来直接给出出错位的编号。
校验位数量
设数据
| 数据位 | 校验位 | 总码长 |
|---|---|---|
| 1 | 2 | 3 |
| 4 | 3 | 7 |
| 8 | 4 | 12 |
| 16 | 5 | 21 |
| 32 | 6 | 38 |
| 64 | 7 | 71 |
2013 年那道遗留真题要的就是这张表:问"8 位数据能纠 1 位错,至少需要几位校验位",代入
试 : ✓, 时 ✗,所以 4 位。
其余机制:一句话各表
| 机制 | 结论 |
|---|---|
| 校验位位置 | 放在编号为 |
| 分组规则 | 位编号的二进制第 |
| 编码 | 对每组做偶校验,算出各校验位的值 |
| 检错纠错 | 接收端各组重新校验,结果拼成故障字——它的值就是出错位的编号,全 0 表示无错 |
| 能力 | 标准海明码 |
| SEC-DED | 再加一个覆盖全部位的 |
交互可视化
用它把编码 → 传错 → 定位 → 纠正走一遍,比读文字快。
完整的分组走查、端到端编码例题在网络那边:见计算机网络博客的海明码一篇——那里是纲内内容。本篇只保留 CO 侧遗留真题用得上的部分。
考点清单
- [ ] 校验位数量公式:
- [ ] 校验位放在第
位 - [ ] 分组规则:位编号二进制中第
位为 1 则归入 组 - [ ] 编码时对各组做偶校验求校验位
- [ ] 故障字 = 出错位编号(全 0 表示无错)
- [ ] 标准海明码:
,纠 1 位或检 2 位(二选一) - [ ] SEC-DED:加全校验位
, ,同时检 2 纠 1