1. 序章

このチュートリアルでは、バイナリ文字列の送信でエラーをチェックするための簡単な手法であるパリティチェックについて学習します。

その単純さと脆弱性にもかかわらず、磁気テープからのデータの読み取りやメインメモリへの情報の保存など、エラー防止のための多くのアプリケーションでこの方法を使用できます。

2. パリティ制御とパリティビット

送信者から受信者に送信される1バイト(8ビット)のバイナリ文字列として体系化されたメッセージを考えてみましょう。

   

の送信には、メッセージのエンコード、転送、およびデコードが含まれ、操作はエラーの対象となる可能性があります。 送信されたメッセージと同じメッセージを確実に受信するには、チェックが必要です。

もちろん、潜在的な制御には、元のメッセージに加えて、一定量の情報の送信が含まれます。 私たちが受け取るメッセージに存在する情報の分析を可能にするのは、この追加情報です。

最も簡単な検証方法の1つは、パリティチェックです。 パリティは、データの受信やマスメモリの読み取りのエラーを防ぎ、冗長な情報を追加するために使用できる制御コードです。

この手法では、各バイトにパリティビットを追加します。データ(ビットシーケンス)を書き込む場合、各バイトの後に0または1に設定された制御ビットを追加します。

バイト内で、1のビット数が偶数の場合、追加のビットは0に設定されます。 1のビットが奇数の場合、1のビットを追加します。

したがって、送信されたメッセージは、元のメッセージとは異なります。 それが各バイトの終わりにあると仮定すると、次のようになります。

   

3. パリティチェックによるエラーの検出

受信機が受信したビットをグループ化すると、1の数を数えるだけでチェックが実行されます。 エラーの場合(0が1になる、またはその逆)、は再送信要求を送信します。

パリティチェックの制限は、ワードの2ビット(または一般に偶数ビット)に関連するエラーが発生する場合に関係します。 この場合、パリティが維持されるため、エラーは認識されません。

4. パリティビットの計算

4.1. エラーのないメッセージ

各バイトについて、メッセージのすべてのビット間でXORを実行することにより、パリティビットを計算します。

   

仮定する 。 は:

   

送信されるメッセージは次のようになります。

   

ここでメッセージを受信し、その精度を検出するために、のすべてのビットをXORします。 結果は0または1のみになります。 0の場合は正しく到着したことを示し、そうでない場合はエラーを検出します。

4.2. エラーのあるメッセージ

代わりに、メッセージが正しく到着しないと仮定します。 たとえば、状態を1から0に変更した場合、次のような状況になります。

   

によって実行される操作は次のようになります。

   

これは、エラーが発生したことを示しています。

4.3. パリティチェックの失敗

送信エラー数が偶数のときにパリティチェックに失敗した場合を考えてみましょう。 させて:

   

2ビットの値が正確に変化し、それらの状態を1から0に反転するとします。 我々が得る:

   

したがって、によって実行される制御操作は次のとおりです。

   

これから、誤って、送信にエラーがなかったと推測されます。

これらの例では、メッセージの最初の8ビットを使用して、位置9にあるパリティビットを計算します。 実装の観点からは、パリティビットを含むのすべてのビットにXOR演算子を適用するだけで十分です。 エラーがない場合、結果は常に0です。 送信されたメッセージ内の位置を知る必要があるだけです

5. 結論

パリティチェックは、エラーを修正するのではなく、チェックする方法です。 ハミングコードなど、検出と修正の両方に役立つ手法があります。

メッセージ内の各エラーチェックシステムには、元のメッセージに加えて情報の送信が含まれます。

その単純さにもかかわらず、パリティチェックはコンピュータサイエンスで広く使用されている手法です。 ただし、エラー数が偶数の場合など、制限がないわけではありません。