誤り訂正の解説(基本情報技術者シラバス用語)

目次

誤り訂正とは

誤り訂正(Error Correction)とは、コンピュータ間でデータをやり取りしたり、データをストレージに保存したりする際に、ノイズなどによってデータの一部が書き換わって(壊れて)しまった場合、受信側や読み出し側でその誤りを発見し、自動的に正しいデータへ修復(訂正)する技術のことです。誤りを検出するだけでなく、正しい値に直すための追加情報(冗長ビット)をデータと一緒に送ることで実現されます。

具体例

「ハミング符号」が誤り訂正の代表的な例です。送信するデータビットに対して特別な計算を行い、チェック用のビットを付加します。受信側でそのチェック用ビットを検証することで、1ビットの誤りであれば、その位置を特定して自動で反転(0を1に、1を0に修復)させます。

// 誤り訂正のイメージコード
received_data = "1101001" # 送信時の「1101101」から1ビット誤りが発生
corrected_data = correct_errors(received_data) 
print(corrected_data) # 出力: "1101101" (自動で修復される)

もう少し詳しく

誤り訂正は、送信されたデータに誤りがあることを検知するだけでなく、受信側で自動的にその誤り位置を特定して元の正しいデータへと修復する技術です。これにより、通信エラー発生時にデータの再送(再送要求:ARQ)を行わずに済み、リアルタイム性が求められる通信や、再送が不可能な光ディスク(CD/DVD)の読み取り、高信頼性が求められるコンピュータのメインメモリ(ECCメモリ)などで広く使われています。代表的な技術である「ハミング符号」は、情報ビットに対して複数の重なり合うチェック用ビットを特定の規則(ハミング距離を考慮した配置)で挿入することで、1ビットの誤り位置を正確に特定し、自動反転させて訂正(0を1、1を0に修正)します。また、ECCメモリなどで一般的な「SEC-DED(1ビット誤り訂正・2ビット誤り検出)」のように、何ビットまでの誤りに対応できるかが厳密に定義されています。

試験でのポイント

試験では、誤り訂正技術の代名詞である「ハミング符号」が、どのレベルの誤りに対応できるか(一般的に1ビットの誤り訂正、および2ビットの誤り検出が可能)という能力についてよく問われます。また、誤り検出のみを行う方式(パリティチェックやCRCなど)と、誤り訂正まで行える方式(ハミング符号)の違いを区別させたり、具体的な用途(ECCメモリにはハミング符号が使われる、など)を結びつける問題が出題されます。

関連する用語

ハミング符号(誤り訂正が可能な符号化方式の代表例)、ECCメモリ(誤り訂正機能付きの信頼性の高いメインメモリ)、再送要求(ARQ、誤り検出後に再度データを要求する仕組み)。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ