水平パリティ (スイヘイパリティ) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

水平パリティ (スイヘイパリティ) の読み方

日本語表記

水平パリティ (スイヘイパリティ)

英語表記

horizontal parity (ホリゾンタルパリティ)

水平パリティ (スイヘイパリティ) の意味や用語解説

水平パリティとは、データ伝送やデータ保存の際に発生し得るエラーを検出するための、最も基本的な検査方式の一つである。この方式では、元のデータビット列(データブロック)に対して、特定のルールに基づいて1ビットの検査用データ、すなわちパリティビットを追加する。このパリティビットは、データブロック内の「1」のビットが偶数個になるか、または奇数個になるかのいずれかの条件を満たすように設定される。データがネットワークを通じて送受信されたり、ストレージから読み出されたりする際に、付加されたパリティビットを利用してデータの正当性を確認し、意図しないビット反転などのエラーが発生していないかを検出することが主要な目的となる。データ全体を「水平方向」に走査し、その合計からパリティビットを生成・検査する仕組みであるため、水平パリティと呼ばれる。 データは、通信回線や記憶媒体を介する過程で、ノイズ、電磁干渉、媒体の劣化など多岐にわたる要因により、ビットの値が予期せず反転してしまう現象に直面することがある。例えば、本来「0」であるべきビットが「1」に変わったり、逆に「1」であるべきビットが「0」に変化したりする。このようなデータエラーは、情報の正確性を損ない、システムの誤動作やデータ破損を引き起こす可能性があるため、エラーを検出し、適切に対処する仕組みが必要となる。水平パリティは、このエラー検出の要求に応えるための、簡潔で効果的な手法の一つとして古くから利用されてきた。 パリティビットの生成方法は、主に「偶数パリティ」と「奇数パリティ」の二つの方式に大別される。偶数パリティ方式を採用する場合、データビットとそれに付加されるパリティビットを合わせた全体のビット列において、「1」の数が偶数になるようにパリティビットの値を決定する。例えば、元のデータビット列内の「1」の数がすでに偶数であればパリティビットは「0」となり、全体の「1」の数は偶数のままである。もし元のデータビット列内の「1」の数が奇数であれば、パリティビットは「1」となり、全体の「1」の数は偶数に調整される。これに対し、奇数パリティ方式では、データビットとパリティビットを合わせた全体のビット列において、「1」の数が奇数になるようにパリティビットが設定される。元のデータ内の「1」の数が偶数であればパリティビットは「1」、奇数であればパリティビットは「0」となる。データの送受信を行う双方で、どちらのパリティ方式を使用するかを事前に取り決めておくことが重要である。 データが送信される際、送信側は元のデータビット列に対し、合意されたパリティ方式に基づいてパリティビットを計算し、元のデータと共に送信する。受信側は、受信したデータビット列と付加されたパリティビットを受け取り、再度、受信したデータビット列に対して同じパリティ方式でパリティビットを計算し直す。この再計算されたパリティビットと、実際に受信したパリティビットとを比較することで、データ転送中にエラーが発生したかどうかを判断する。両者の値が一致しなければ、データに1ビット以上の反転エラーが発生したと判断される。 水平パリティは、その実装のシンプルさから、1ビットのエラー検出には非常に有効な手段である。なぜなら、1つのビットが反転すると、全体の「1」の偶奇性が必ず変化するため、パリティビットの不一致として確実に検出されるからである。しかし、水平パリティには明確な限界も存在する。最も重要なのは、複数ビットのエラー、特に偶数個のビットが同時に反転するエラーを検出できない可能性が高い点である。例えば、データビット列中の2つのビットが反転した場合、全体の「1」の偶奇性が偶然変わらない可能性があり、その結果、パリティビットが一致してしまい、エラーを見落としてしまうことがある。また、水平パリティはエラーを検出することに特化しており、どのビットがエラーを起こしたのかを特定したり、エラーを自動的に訂正したりする能力は持たない。エラーが検出された場合、多くの場合、データの再送を要求するといった、より上位層でのリカバリ処理が必要となる。 このような特性から、水平パリティは、エラー発生率が比較的低いと想定される環境や、厳密なデータ保全よりも実装の簡潔性や処理速度が優先される場面で主に利用されてきた歴史がある。初期のコンピューターシステムのメインメモリのチェック機能や、簡単なデータ通信プロトコルの一部で採用された例が見られる。現代のシステムにおいては、より高度な信頼性やデータ保全が求められるため、水平パリティ単体で利用されることは少なく、複数ビットのエラー検出に加え、エラー訂正能力も持つ巡回冗長検査(CRC)、ハミングコード、リード・ソロモンコードといった、より複雑で強力なエラー検出訂正符号が広く用いられている。しかしながら、水平パリティはエラー検出の基本的な概念を理解するための出発点として極めて重要であり、これらのより高度な方式の基礎的な発想の一部を形成している。システムエンジニアを目指す上で、データの信頼性を確保するための技術の基礎として、水平パリティの原理とその限界を正しく理解しておくことは不可欠である。

水平パリティ (スイヘイパリティ) とは | 意味や読み方など丁寧でわかりやすい用語解説