データの伝送過程で発生するビットエラーは、情報の整合性を損なう大きな要因となります。単純な縦方向のパリティチェックだけでは、エラーが発生したこと自体は検知できても、どこを修正すべきかまでは特定できません。そこで活用されるのが、縦横二方向からアプローチする矩形コード(Rectangular Code)という手法です。
Key Facts
- 縦方向のパリティ(LRC)と横方向の冗長チェック(TRC)を組み合わせることでエラー訂正が可能になる。
- TRCは専用の「パリティトラック」に保存される。
- 単一ビットエラーが発生した場合、エラー箇所の正確な特定と自動修正が行える。
- 修正方法は、特定された誤りビットを反転させることで実現する。
二次元パリティチェックの仕組み
矩形コードの核心は、データを行列形式で捉え、縦と横の両軸にチェック用の情報を付加することにあります。まず、縦方向のパリティチェック(LRC: Longitudinal Redundancy Check)により、どのトラックでエラーが起きたかを絞り込みます。
これに加えて、横方向の冗長チェック(TRC: Transverse Redundancy Check)を導入します。TRCは専用のパリティトラックに格納されており、データブロック内のどのバイトに不整合があるかを検出する役割を担います。
エラー特定から修正までのプロセス
この「二座標パリティチェック」と呼ばれる手法を用いると、受信側で極めて精緻なエラー特定が可能になります。具体的には、TRCで「エラーがあるバイト」を特定し、同時にLRCで「エラーがあるトラック」を特定します。この二つの情報の交差点こそが、誤ったビットの正確な位置となります。
位置が特定された後は、そのビットの値を反転(フリップ)させることで、元の正しいデータへと復元します。これにより、単なるエラー検知に留まらず、能動的なエラー訂正が実現します。
エラー制御手法の比較まとめ
| 手法 | チェック方向 | 主な機能 | 訂正能力 |
|---|---|---|---|
| 単純縦方向パリティ | 縦方向のみ | エラーの検出 | 不可 |
| 矩形コード(二次元パリティ) | 縦・横の両方向 | エラーの検出および特定 | 単一ビットエラーの修正可能 |
Frequently Asked Questions
単純なパリティチェックではなぜ訂正ができないのですか?
単純な縦方向のパリティチェックは、データの不整合があること(エラーの発生)は分かりますが、具体的にどのビットが誤っているかを特定する情報が不足しているため、修正まで行うことはできません。
TRC(横方向冗長チェック)はどこに保存されますか?
TRCの情報は、データ本体とは別に設けられた専用の「パリティトラック」に保存されます。
どのようなエラーであればこの方法で修正できますか?
伝送ブロック内で発生した単一ビットのエラーであれば、この二次元的なチェックによって正確に特定し、修正することが可能です。
ビットの「反転」とは具体的に何をすることですか?
エラー箇所として特定されたビットが「0」であれば「1」に、「1」であれば「0」に書き換えることを指します。これにより、正しい値に復元されます。