パリティビットとは

ぱりてぃびっと

データのビット列に付け加えて、1の個数の偶奇をそろえる1ビット。1の個数を偶数にするのが偶数パリティ、奇数にするのが奇数パリティで、値はデータの全ビットの排他的論理和で求められる。受信側で偶奇を調べると、奇数個のビットの誤りは検出できるが、偶数個の誤りは検出できず、どのビットが誤ったかも分からない。UARTの通信や、メモリ、レジスタの保護などで使われ、検査の範囲が重なり合う複数のパリティを組み合わせると、ハミング符号のような誤り訂正符号になる。

「パリティビット」は、8分野の14問の練習問題に出てきます(システム構成と信頼性設計, 情報理論と符号の基礎, 論理回路など)。

この用語の分野: 情報理論と符号の基礎

計算の仕方

偶数パリティでは、データの1の個数が奇数ならパリティビットを1、偶数なら0にします。例えば7ビットのデータ 1011001 は1が4個なので、偶数パリティのビットは0です。回路では、全ビットを排他的論理和のゲートの木に通すだけで求められます。

垂直水平パリティ

データを表のように並べ、各行と各列にパリティを付けると、1ビットの誤りなら、偶奇が合わない行と列の交点として位置が分かり、訂正できます。このように、検査の範囲が重なり合う複数のパリティを組み合わせることが、ハミング符号などの誤り訂正符号の基本の考え方です。

RAIDのパリティ

RAID 5は、複数のディスクの同じ位置のデータの排他的論理和をパリティとして記録します。どれか1台が壊れても、残りのデータとパリティの排他的論理和から、失われたデータを計算し直せます。どこが失われたかが分かっている場合(消失)には、1つのパリティで復元までできることを示す例です。

パリティビットの練習問題に挑戦

7ビットのデータ 1011001 に偶数パリティのビットを付けるとき、パリティビットの値はどれか。

  1. A1
  2. B0
  3. Cデータによらず常に1
答えと解説を見る

正解:B. 0

偶数パリティでは、パリティビットを含めた1の数が偶数になるようにします。1011001には1が4個あり、すでに偶数なのでパリティビットは0です。受信側で1の数が奇数なら1ビットの誤りを検出できますが、2ビット同時の誤りは検出できず、どのビットが誤ったかもわかりません。訂正まで必要なメモリでは、複数のパリティを組み合わせたECC(ハミング符号など)が使われます。

8ビットのデータに偶数パリティのビットを1つ付けた、合わせて9ビットを送る。各ビットは互いに独立に1%の確率で誤るとき、パリティの検査で検出できない誤りが起こる確率に最も近いものはどれか。

  1. A約0.01%
  2. B約0.34%
  3. C約8.6%
答えと解説を見る

正解:B. 約0.34%

パリティの検査では、奇数個のビットが誤ると検出できますが、偶数個のビットが誤ると1の個数の偶奇が変わらないので検出できません。検出できない誤りのほとんどは2ビットの誤りで、その確率は 9C2 × 0.01² × 0.99⁷ = 36 × 0.0001 × 0.932 ≈ 0.0034 です。4ビット以上の誤りの確率はこれよりはるかに小さいので、合わせても約0.34%です。

よくある質問

パリティで見逃す誤りは、どのくらい起こりますか?

各ビットが独立に誤るなら、見逃すのは主に2ビットの誤りです。ビット誤り率が小さければ、2ビットが同時に誤る確率はさらに小さいので、パリティでも多くの場合に役立ちます。ただし、雑音が続けて入るバースト誤りでは偶数個の誤りが起こりやすいので、CRCの方が向いています。

偶数パリティと奇数パリティは、どう使い分けますか?

検出の能力は同じです。奇数パリティでは、データがすべて0のときもパリティビットが1になるので、線が切れて全ビットが0に張り付いたような故障も、誤りとして検出できます。どちらを使うかは、通信の両側で取り決めておきます。

解説の中の「パリティビット」

「パリティビット」が出てくる問題(14問)

  1. 7ビットのデータ 1011001 に偶数パリティのビットを付けるとき、パリティビットの値はどれか。
  2. 8ビットのデータに偶数パリティのビットを1つ付けた、合わせて9ビットを送る。各ビットは互いに独立に1%の確率で誤るとき、パリティの検査で検出できない誤りが起こる確率に最も近いものはどれか。
  3. データのビット列に、1の個数が偶数になるように偶数パリティのビットを1つ付けて送る。受信側で1の個数を調べる検査の性質として、正しいものはどれか。
  4. 4ビットのデータ4行について、各行の右端に行の偶数パリティのビットを、最後に各列の偶数パリティを並べた行を付けて送った(垂直水平パリティ)。受信したビットは、1行目 1011 1、2行目 0100 0、3行目 1100 0、4行目 0101 0、パリティの行 0100 であった(各行の右端の1ビットが行のパリティ)。1ビットだけが誤っているとき、誤ったビットの位置はどれか。
  5. 32ビットのデータに、1ビットの誤りを訂正し、2ビットの誤りを検出できるSECDED符号を付ける。ハミング符号の検査ビットの数rは、2^r ≥ データのビット数 + r + 1 を満たす最小の値で、SECDEDではこれに全体のパリティを1ビット加える。必要な検査ビットの数はどれか。
  6. 115200 bpsのUARTで、データ8ビット・パリティなし・ストップビット1(8N1)の形式で送るとき、1秒間に送れるバイト数に最も近いものはどれか。
  7. 1台あたり毎秒200回のランダムな入出力(IOPS)ができるディスク4台でRAID5を構成した。小さなデータのランダムな書き込みを1回行うたびに、旧データと旧パリティの読み出し、新データと新パリティの書き込みの合わせて4回の入出力が必要になるとし、キャッシュの効果は考えない。書き込みだけを行うとき、RAID5全体で処理できる書き込みの回数として、正しいものはどれか。
  8. 2入力XOR(排他的論理和)ゲートの出力が1になるのはどのときか。
  9. 量子誤り訂正で、古典の誤り訂正のように「同じデータを3つコピーして多数決をとる」方法をそのまま使えない理由として、正しいものはどれか。
  10. 深さ16語の非同期FIFOで、書き込みポインタと読み出しポインタをアドレスより1ビット多い5ビットにする理由として正しいものはどれか。
  11. IEEE 754の浮動小数点数を構成する3つの部分の組み合わせとして正しいものはどれか。
  12. RAID1の説明として、適切なものはどれか。
  13. 容量4 TBのディスク4台でRAID5を構成した。データを記録できる容量として、正しいものはどれか。
  14. 容量8 TBのディスク6台でRAID6を構成した。データを記録できる容量と、データを失わずに耐えられる同時に故障するディスクの台数の組合せとして、正しいものはどれか。

情報理論と符号の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

RAID ECC(誤り訂正符号) ハミング符号 UART CRC(巡回冗長検査) 量子誤り訂正 量子ビット 量子重ね合わせ 非同期FIFO グレイコード

用語集の一覧へ