abstract:哈工大計算機組成原理劉巨集偉, 本篇文章主要講述儲存器為什麼要校驗和漢明碼
------------------------------------------
儲存器的校驗
為什麼要校驗?
以記憶體為例, 如果記憶體所處的電磁環境比較複雜, 或者空間環境下受到帶電粒子的打擊, 那麼可能導致電容的充放電或者觸發器的翻轉(sram)。 這樣會導致儲存資訊的改變。 如果不校驗, 儲存中儲存的程式可能不會發揮它應有的作用, 甚至會發生嚴重的後果。
編碼的最小距離
任意兩組合法**之間二進位制位數的最小差異、編碼的糾錯、改錯能力與編碼的最小距離有關。 編碼的最小距離就是從一種合法**轉化成另外一種合法**所變化的最小位數。存在如下公式:
l - 1 = c + d ( d >= c)
l:編碼的最小距離
d:檢測錯誤的位數
c:糾正錯誤的位數
漢明碼是一種具有糾錯能力的編碼。
漢明碼的組成:
漢明碼採用奇偶校驗, 奇校驗就是在資料位基礎上加乙個校驗位, 使得整個**「1」的個數為奇數。偶校驗就是在資料位基礎上加乙個校驗位,使得整個**「1」的個數為偶數。
漢明碼就是採用這樣一種方式, 但是漢明碼採用分組校驗。
比如下面這個例子, 前面是資料位, 在資料位的基礎上面加乙個校驗位, 採用偶校驗的方式。
如果整個**「1」的個數為奇數, 我們就知道有一位資料發生了翻轉(因為資料位翻轉的位數越多, 可能性越小。)如果我們將
資料劃分成為兩組,每組都加乙個校驗位,那麼可以大大縮小確定發生翻轉的位數的範圍。這種劃分方式是沒有重疊的, 每個分組
的資料連在一起就是原來的資料。
漢明碼採用的是非劃分方式
對於下面這個資料, 我們採用漢明碼的方式。
將資料分為三組, 每組乙個校驗位, 每組四位資料。 按照如下方式分組
上、左、右 三個圓分別為 第一組、第二組、第三組。 如果有某組位置錯了就將它置為 1, 沒錯就是 0. 那麼有如下
可以看出p3p2p1組成的二進位制值就是出錯的位置。那麼校驗位應該放在**呢?因為校驗位都是本組獨有的, 所以容易確定為
1、 2、 4;
為什麼p3p2p1組成的二進位制資料能表示出錯的位置呢? 這就和漢明碼獨特的編碼方式有關了, 其實仔細觀察上面的分組規律會
發現乙個特點:第一組:1、 3 、5、 7; 這四個數化成二進位制之後, 最後一位都是1; 第二組:2、 3、6、 7;這四個數化成二進位制
之後, 倒數第二位都是1; 同樣第三組數碼化成二進位制之後倒數第三位都是1; 然後他們相交的地方:比如3, 倒數第二位和倒數第
一位都是1; 5, 倒數第三位和倒數第一位都是1; 7, 倒數第
一、二、三位都是1, 所以7 是三組的交點。如果是第一組和第三組
出錯 那麼 倒數第
一、三位為 1, 其他位為 0; 也就是 101 就是 5。 ^-^
這就是漢明碼的編碼方式。
下面談談漢明碼的組成(三要素)
漢明碼需要增加多少位檢測為(即分多少組)?
檢測位的位置?
這個問題前面已經提到過了。 放在 2 的整數次方的位置, 但是比組數少 1, 即第二組放在 2^1 = 2 的位置; 第三組放在
2^2 = 4的位置
檢測位的取值?
先來看看第乙個問題:漢明碼需要增加多少位檢測位? 有乙個公式:
2^k >= n + k +1
n:資訊位
k:校驗位
接受方的結果要能夠表示出錯的具體位置, 再加上一種全部正確的結果。
檢測位的取值與奇校驗還是偶校驗有關。
漢明碼詳細講解
漢明碼,是r.hamming與1940年於貝爾實驗室提出的。1.奇偶校驗碼 奇偶校驗碼。假設傳輸資訊位為k n 1位,表示為a1,an 1,加上一位奇偶校驗位 冗餘位 a0,構成乙個n位的碼字a0 an 1,在接收端校驗時,可按照關係式 s a0 a1 a2 an 1來計算。若s 0,則無錯,若s ...
計網筆記 海明碼(漢明碼)
海明碼是可以發現雙位元錯誤,並可以糾正單位元錯誤的編碼方案。一般來講,檢錯編碼不一定具有糾錯能力,但是糾錯編碼具有檢錯能力 其工作流程可以分為以下四個步驟 1 確定校驗碼位數r 2 確定校驗碼和資料的位置 3 求出校驗碼的值 4 檢錯並糾錯。在以下的工作流程中,我們要傳送的資料d 101101.我們...
海明碼(漢明碼)的工作機制
一 海明碼的形成方式 1 首先海明碼是由資訊位和校驗位組成的 2 資訊位校驗位的關係 校驗位的位數r 資訊位的位數i 2 r 1 i r 3 校驗位的位置是2的整數次方 如 1 2 4 8 4 海明碼位數分組 因為海明碼其實是分組的奇偶校驗碼,所以有個分組的概念 1 1 3 5 7 2 2 3 6 ...