
パリティチェックとは
パリティチェックは、データ伝送や記憶の際に発生する可能性のある誤りを検出するための簡単な誤り検出方式です。送信側でデータにパリティビットと呼ばれる冗長なビットを付加し、受信側でそのパリティビットを用いてデータの整合性を確認します。この技術は、データの信頼性を高めるために広く利用されています。
パリティチェックの基本的な考え方は、データ中の1のビットの数を偶数または奇数にすることです。偶数パリティの場合、データ中の1のビットの数が偶数になるようにパリティビットを設定し、奇数パリティの場合は奇数になるように設定します。受信側では、受信したデータ全体の1のビット数を数え、設定されたパリティと一致するかどうかを検証します。
もし受信したデータのパリティが期待されるものと異なる場合、データの伝送中に誤りが生じたと判断できます。ただし、パリティチェックでは、誤りの検出は可能ですが、誤りの訂正はできません。また、偶数個のビットが同時に反転した場合、パリティは変化しないため、誤りを検出できないという限界もあります。
パリティチェックの種類
「パリティチェックの種類」に関して、以下を解説していきます。
- 垂直パリティチェック
- 水平パリティチェック
垂直パリティチェック
垂直パリティチェックは、各データのまとまり(通常はバイト単位)に対してパリティビットを付加する方式です。各バイトに含まれる1のビットの数を数え、偶数パリティまたは奇数パリティになるようにパリティビットを設定します。この方式は、データの伝送エラーを比較的簡単に検出できます。
垂直パリティチェックは、実装が容易であるため、多くの通信プロトコルや記憶装置で利用されています。しかし、1つのデータ単位内で偶数個のビットエラーが発生した場合、パリティビットは変化しないため、エラーを検出できないという欠点があります。
チェック | 概要 | 特徴 |
---|---|---|
方式 | 垂直方向 | バイト単位 |
検出 | 容易 | 簡単実装 |
限界 | 偶数エラー | 検出不能 |
利用例 | 通信プロトコル | 記憶装置 |
水平パリティチェック
水平パリティチェックは、複数のデータ単位にわたってパリティビットを付加する方式です。例えば、複数のバイトの同じ位置にあるビットを集めて、それらに対してパリティビットを計算します。この方式は、垂直パリティチェックだけでは検出できないエラーを検出する能力を高めることができます。
水平パリティチェックは、垂直パリティチェックと組み合わせて使用されることが多く、二次元パリティチェックとして知られています。二次元パリティチェックでは、各バイトに対して垂直パリティチェックを行い、さらに各ビット位置に対して水平パリティチェックを行うことで、より高いエラー検出率を実現します。
チェック | 概要 | 特徴 |
---|---|---|
方式 | 水平方向 | 複数データ |
検出 | 能力が高い | 垂直と併用 |
種類 | 二次元 | エラー検出率 |
実現 | 高い | 組み合わせ |