垂直パリティ (スイチョクパリティ) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

垂直パリティ (スイチョクパリティ) の読み方

日本語表記

垂直パリティ (スイチョクパリティ)

英語表記

vertical parity (バーティカル パリティ)

垂直パリティ (スイチョクパリティ) の意味や用語解説

「垂直パリティ」とは、データ転送やデータ保存の際に発生しうる誤りを検出するための、比較的単純な方法の一つである。この技術の主要な目的は、データが破損していないか、すなわち正しく送信または記録されたかを確認することにある。具体的には、データの塊(通常はバイト単位やワード単位)ごとに、特定の規則に基づいて「パリティビット」と呼ばれる追加のビットを一つ付加する。このパリティビットは、データの内容から計算され、そのデータが持つビット列中に含まれる「1」の数が、特定の条件(偶数または奇数)を満たすように調整される。例えば、データ中の1の数が偶数になるようにパリティビットを設定する場合、それを偶数パリティと呼ぶ。もしデータ送信中に何らかの原因でビットが反転し、元のデータとは異なる状態になった場合、受信側でパリティビットを再計算し、その結果が受信したパリティビットと一致しないことで、誤りの発生を検出できる仕組みだ。垂直パリティは、特に単一ビットの誤り、つまりデータ内のたった一つのビットが「0」から「1」へ、または「1」から「0」へと反転してしまった場合に、その誤りを効率的に見つけ出す能力を持つ。しかし、複数のビットが同時に反転するような複雑な誤りに対しては、検出が困難な場合があるという限界も持つ。これは、後述するより高度な誤り検出・訂正技術と比較した際の、垂直パリティの基本的な特性である。 「垂直パリティ」の動作原理をより深く理解するためには、パリティビットの生成方法と、それを用いた誤り検出の具体的なプロセスを把握する必要がある。パリティビットを生成する際には、大きく分けて「偶数パリティ」と「奇数パリティ」の二つの方式が用いられる。偶数パリティの場合、データ本体のビット列に含まれる「1」の数を数え、その合計が偶数になるようにパリティビットを「0」または「1」に設定する。例えば、データが「10110010」である場合、含まれる「1」の数は4つであり偶数であるため、偶数パリティビットは「0」となる。もしデータが「10110000」であれば、「1」の数は3つで奇数であるため、偶数パリティビットは「1」となる。これにより、データとパリティビットを合わせた全体の「1」の数が必ず偶数になる。一方、奇数パリティは、データとパリティビットを合わせた全体の「1」の数が必ず奇数になるようにパリティビットを設定する方式である。どちらの方式を用いるかは、システムやプロトコルによって事前に定められている。 データ送信時には、送信側がこの計算によって得られたパリティビットをデータ本体に付加し、一連のビット列として受信側へ送る。受信側は、受け取ったデータ本体のビット列から、送信側と同じ規則(偶数パリティまたは奇数パリティ)に基づいて、再度パリティビットを計算する。この計算によって得られたパリティビットと、実際に受信したパリティビットとを比較し、両者が一致すればデータは正しく受信されたと判断する。もし一致しない場合は、データ転送中にどこかでビットの反転が発生し、誤りが生じたと判断される。このメカニズムにより、受信側はデータの信頼性を確認できるわけである。 垂直パリティが検出できる誤りには限界がある。最も得意とするのは、データブロック内でたった一つのビットが誤って反転した「単一ビット誤り」である。この場合、元のパリティ条件(偶数または奇数)が必ず破られるため、誤りを確実に検出できる。しかし、複数のビットが同時に反転する「多ビット誤り」の場合、検出できないケースが存在する。例えば、偶数パリティを使用している場合に、データ内で二つのビットが同時に反転すると、全体の「1」の数の偶奇性が変わらないため、誤りが発生したにもかかわらず、受信側はそれを検出できない。より一般的に言えば、偶数個のビット誤りが発生した場合は検出できないが、奇数個のビット誤りであれば検出可能である。また、垂直パリティは誤りの発生を検出できるものの、どのビットが誤ったのか、その位置を特定する能力は持たない。そのため、誤りが検出された際には、通常、データの再送を要求するか、そのデータを破棄するといった対処が取られる。 垂直パリティは、その実装の単純さとオーバーヘッドの低さから、さまざまな場面で利用されてきた。古くから使われているシリアル通信規格であるRS-232Cでは、バイト単位で垂直パリティがオプションとして用いられることが多く、データが正しく送られたかを確認するための基本的な手段として機能する。また、一部のメモリシステム、特に古いDRAMモジュールなどでは、データバス上のエラーを検出するために垂直パリティが利用されることがあった。SCSI(Small Computer System Interface)などのパラレルインターフェースにおいても、データ転送の信頼性を高めるために垂直パリティが導入されるケースが存在した。これらの用途では、高速かつ大量のデータを扱う現代のシステムと比較して、伝送速度が比較的遅かったり、単一ビット誤りの発生頻度が低いと想定される環境で、手軽な誤り検出手段として有効に機能した。 垂直パリティを理解する上で、「水平パリティ」との違いも知っておくと良いだろう。垂直パリティが「データの塊(バイトなど)ごと」にパリティビットを付加するのに対し、水平パリティは「データブロック全体(例えば、あるメッセージやファイルの一部分)」に対して一つのパリティビットを付加する。両者を組み合わせることで、より強力な誤り検出能力や、限定的ながら誤り訂正能力を持つ「二次元パリティ」という手法も存在する。この二次元パリティでは、誤りが発生した行と列の交点から、誤りビットの位置を特定し、訂正することが可能になる。 しかし、現代のシステムでは、垂直パリティよりも高度な誤り検出・訂正技術が広く用いられている。例えば、ネットワーク通信やディスクストレージでは、CRC(巡回冗長検査)と呼ばれる技術が主流である。CRCは、垂直パリティよりもはるかに高い確率で多ビット誤りを検出でき、誤りの種類に応じて異なる多項式を用いることで、非常に堅牢なデータ整合性チェックを実現する。また、メモリシステムにおいては、より高度なECC(Error Correcting Code)メモリが利用され、これは単一ビット誤りの検出と自動訂正が可能であり、二ビット誤りの検出も可能とするものが多い。垂直パリティは、これらの高度な技術と比較すると、その検出能力や機能は限定的であると言える。しかし、その単純性ゆえに、リソースが限られた組み込みシステムや、高速な検出のみを目的とするような特定の状況においては、依然として有効な選択肢となり得る。システムエンジニアを目指す上では、それぞれの誤り検出・訂正技術がどのような原理に基づき、どのような特性と限界を持つのかを理解し、適切な場面で最適な技術を選択する知識が重要となる。

垂直パリティ (スイチョクパリティ) とは | 意味や読み方など丁寧でわかりやすい用語解説