奇偶校驗位

奇偶校驗位

奇偶校驗位是一個表示給定位數的二進制數中 1 的個數是奇數還是偶數的二進制數。奇偶校驗位是最簡單的錯誤檢測碼。奇偶校驗位有兩種類型:偶校驗位與奇校驗位。非奇偶校驗記憶體的每個位元組只有8位,若它的某一位存儲了錯誤的值,就會使其中存儲的相應數據發生改變而導致應用程式發生錯誤。當CPU返回讀取儲存的數據時,它會再次相加前8位中存儲的數據,計算結果是否與校驗位相一致。在貓到貓的通信中,奇偶的類型在傳輸發生之前被傳送和接受的數據機調整。

基本概況

奇偶校驗位流程圖奇偶校驗位流程圖

奇偶校驗位 (Parity)是指偶數或者奇數或甚至對一個數字的性質。奇偶校驗通常用在數據通信中來保證數據的有效性。每個設備必須決定是否它將被用為偶校驗、奇校驗、或非校驗。傳送設備添加1s在每個它傳送的每條串上或決定這個數是偶數或奇數。然後,它添加一個額外的位,叫

做校驗位,到這個串上。如果偶校驗在使用,校驗位將這些位置為偶數;如果奇校驗在使用,校驗位將這些位置為奇數。

奇偶校驗位是一個表示給定位數的二進制數中 1 的個數是奇數還是偶數的二進制數。奇偶校驗位是最簡單的錯誤檢測碼。

奇偶校驗位有兩種類型:偶校驗位與奇校驗位。如果一組給定數據位中 1 的個數是奇數,那么偶校驗位就置為 1,從而使得總的 1 的個數是偶數。如果給定一組數據位中 1 的個數是偶數,那么奇校驗位就置為 1,使得總的 1 的個數是奇數。偶校驗實際上是循環冗餘校驗的一個特例,通過多項式 x + 1 得到 1 位 CRC。

記憶體檢驗

對於記憶體的奇偶校驗工作要從比特概念說起,比特(bit)是記憶體中的最小單位,也稱“位”、它只有兩個狀態分別以1和0表示。我們將8個連續的比特叫做一個位元組(byte)。非奇偶校驗記憶體的每個位元組只有8位,若它的某一位存儲了錯誤的值,就會使其中存儲的相應數據發生改變而導致應用程式發生錯誤。而奇偶校驗記憶體在每一位元組(8位)外又額外增加了一位作為錯誤檢測之用。比如一個位元組中存儲了某一數值(1、0、0、1、1、1、1、0),把這每一位相加起來(1+0+0+1+1+1+1+0=5)。若其結果是奇數,校驗位就定義為1,反之則為0。當CPU返回讀取儲存的數據時,它會再次相加前8位中存儲的數據,計算結果是否與校驗位相一致。當CPU發現二者不同時就作出一定的反應。現在主機板都可以使用帶奇偶校驗位或不帶奇偶校驗位兩種記憶體條,但要注意兩種不能混用。

上面的敘述描述了奇偶校驗在電腦內是如何工作的。需要說明的是,外圍設備連線匯流排和I/O匯流排控制器使用的是奇數的奇偶錯誤校驗方法。奇偶位校驗不是確實可信的錯誤校驗方法,因為它可能兩個“位”在傳送時都發生可錯誤。對於個人電腦內部的傳輸,這種可能性被認為是微乎其微的。在一些大型機系統中,數據的完整性是非常重要的,三個“位”被分配用於奇偶校驗。

奇偶校驗也用於數據機之間的通訊。這裡,奇偶校驗可以被選擇是偶數的(一個連續的傳輸將形成一個偶數)還是奇數的。用戶也可以選擇沒有奇偶,意味著數據機沒有傳輸或者校驗位。當沒有奇偶可以選擇(或者默認)時,它被假定為有其它的形式的校驗以探測傳輸過程的任何錯誤。沒有奇偶通常也意味著校驗位能被用於數據和傳輸加速。在貓到貓的通信中,奇偶的類型在傳輸發生之前被傳送和接受的數據機調整。

奇偶校驗塊

一些冗餘磁碟陣列(en:RAID)使用奇偶校驗塊實現冗餘。如果陣列中的一塊磁碟出現故障,工作磁碟中的數據塊與奇偶校驗塊一起來重建丟失的數據。

下面每列表示一個磁碟,假設 A1 = 00000111、A2 = 00000101 以及 A3 = 00000000。A1、A2、A3 異或得到的 Ap 等於 00000010。如果第二個磁碟出現故障,A2 將不能被訪問,但是可以通過 A1、A3 與 Ap 的異或進行重建:

A1 XOR A3 XOR Ap = 00000101

冗餘磁碟陣列

A1 A2 A3

Ap B1 B2

Bp C1 C2

C3 C4 Cp

注意:數據塊是格式 A#,奇偶校驗塊是 Ap。

相關搜尋

熱門詞條

聯絡我們