パリティビット

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
7ビットのデータ
(1ビット数) パリティを含む8ビット
奇数
0000000 0 0000000 0 0000000 1
1010001 3 10100011 _ 10100010 _
1101001 4 1101001 0 1101001 1
1111111 7 11111111 _ 11111110 _

パリティビット、またはチェックビットは、バイナリコードの文字列に追加されるビットですパリティビットは、エラー検出コードの単純な形式です。パリティビットは通常、通信プロトコルの最小単位、通常は8ビットオクテット(バイト)に適用されますが、ビットのメッセージ文字列全体に個別に適用することもできます。

パリティビットは、文字列内の1ビットの総数が偶数または奇数であることを保証します。[1]したがって、パリティビットには2つのバリエーションがあります。偶数パリティビット奇数パリティビットです。。偶数パリティの場合、特定のビットセットに対して、値が1のビットの出現がカウントされます。そのカウントが奇数の場合、パリティビット値は1に設定され、セット全体(パリティビットを含む)での1の発生の総数が偶数になります。特定のビットセットの1の数がすでに偶数の場合、パリティビットの値は0です。奇数パリティの場合、コーディングは逆になります。特定のビットセットについて、値が1のビット数が偶数の場合、パリティビット値は1に設定され、セット全体(パリティビットを含む)の1の総数が奇数になります。値が1のビット数が奇数の場合、カウントはすでに奇数であるため、パリティビットの値は0です。偶数パリティは巡回冗長検査(CRC)の特殊なケースであり、1ビットCRCは次のように生成されます。 the多項式 x + 1。

ビットがパリティビット専用の任意のポイントに存在するが、パリティには使用されない場合、パリティビットが常に1の場合はマークパリティビット、ビットが常に0の場合はスペースパリティビットと呼ばれることがあります。 。ビットの値が一定である場合、その機能はパリティとは関係ありませんが、スティックパリティビットと呼ばれることがあります。[2]このようなビットの機能はシステム設計によって異なりますが、このようなビットの機能の例には、タイミング管理や、データまたはアドレスの重要性としてのパケットの識別が含まれます。[3]実際のビット値がその機能と無関係である場合、ビットはドントケア項になります。[4]

パリティ

数学では、パリティは整数の偶数または奇数を指すことがあります。これは、2進数形式で記述された場合、最下位ビットのみを調べることで判別できます

情報技術では、パリティとは、2進数の任意のセットが与えられた場合に、値が1のビット数の偶数または奇数を指します。パリティはすべてのビットの状態によって決定されるため、このパリティのプロパティは、すべてのビットに依存し、いずれかのビットが変更された場合にその値を偶数から奇数に変更します。これにより、エラー検出および訂正方式での使用が可能になります。 。

電気通信では、一部のプロトコルで参照されるパリティはエラー検出用です。伝送媒体は、両方のエンドポイントで、奇数パリティまたは偶数パリティのいずれかに同意するように事前設定されています。送信の準備ができているビットの文字列(データパケット)ごとに、送信者はパリティビット(0または1)を計算して、合意されたパリティ(偶数または奇数)に準拠させます。そのパケットの受信者は、最初にパケット全体のパリティが事前設定された合意に準拠していることを確認し、次にそのパケットにパリティエラーがあった場合は、そのパケットの再送信を要求します。

コンピュータサイエンスでは、 RAIDアレイのパリティストライプまたはパリティディスクがエラー訂正を提供しますパリティビットは、 nビットあたり1パリティビットの割合で書き込まれます。ここで、nはアレイ内のディスクの数です。読み取りエラーが発生すると、エラー領域の各ビットがnビットのセットから再計算されます。このように、1つのパリティビットを使用すると、1ビットのサイズから1つのディスクのサイズまでの領域に「冗長性」が作成されます。以下の§独立ディスクの冗長アレイを参照してください

エレクトロニクスでは、パリティ付きのデータのトランスコーディングは非常に効率的です。XORゲートは、偶数パリティを作成するチェックビットと同等のものを出力し、XORロジック設計は任意の数の入力に簡単にスケーリングできるためです。XORおよびAND構造は、ほとんどの集積回路の大部分を構成します。

エラー検出

奇数ビット(パリティビットを含む)が正しく送信されない場合、パリティビットは正しくないため、送信でパリティエラーが発生したことを示します。パリティビットは、エラーの検出にのみ適しています。どの特定のビットが破損しているかを判断する方法がないため、エラーを修正することはできません。データは完全に破棄し、最初から再送信する必要があります。したがって、ノイズの多い伝送媒体では、伝送の成功には長い時間がかかるか、まったく発生しない可能性があります。ただし、パリティには、1ビットのみを使用し、生成に必要なXORゲートの数だけが必要であるという利点があります。エラー訂正コードの例については、 ハミングコードを参照してください。

パリティビットチェックは、7ビットのASCII文字を送信するために時々使用され、8番目のビットをパリティビットとして残します。

たとえば、パリティビットは次のように計算できます。アリスとボブが通信していて、アリスがボブに単純な4ビットメッセージ1001を送信したいとします。

ビットパリティのタイプ 成功した送信シナリオ
偶数パリティ

アリスは送信したい:1001

アリスはパリティビット値を計算します:1 + 0 + 0 + 1(mod 2)= 0

アリスはパリティビットを追加して送信します:10010

ボブが受け取る:10010

ボブはパリティを計算します:1 + 0 + 0 + 1 + 0(mod 2)= 0

ボブは、期待される偶数の結果を観察した後、正しい送信を報告します。

奇数パリティ

アリスは送信したい:1001

アリスはパリティビット値を計算します:1 + 0 + 0 + 1(mod 2)= 0

アリスはパリティビットを追加して送信します:1001 1

ボブが受け取る:10011

ボブは全体的なパリティを計算します:1 + 0 + 0 + 1 + 1(mod 2)= 1

ボブは、予想される奇妙な結果を観察した後、正しい送信を報告します。

このメカニズムにより、シングルビットエラーの検出が可能になります。これは、ラインノイズが原因で1ビットが反転した場合、受信データに誤った数の1が含まれるためです。上記の2つの例では、ボブの計算されたパリティ値は、受信した値のパリティビットと一致しており、シングルビットエラーがないことを示しています。XORを使用して2番目のビットに伝送エラーがある次の例を考えてみます。

ビットパリティエラーの種類 失敗した送信シナリオ
偶数パリティ

2番目のビットのエラー

アリスは送信したい:1001

アリスはパリティビット値を計算します:1 ^ 0 ^ 0 ^ 1 = 0

アリスはパリティビットを追加して送信します:10010

...送信エラー..。

ボブが受け取る:1 1 010

ボブは全体的なパリティを計算します:1 ^ 1 ^ 0 ^ 1 ^ 0 = 1

ボブは、予期しない奇妙な結果を観察した後、誤った送信を報告します。

偶数パリティ

パリティビットのエラー

アリスは送信したい:1001

アリスは偶数のパリティ値を計算します:1 ^ 0 ^ 0 ^ 1 = 0

アリスは送信します:10010

...送信エラー..。

ボブが受け取る:1001 1

ボブは全体的なパリティを計算します:1 ^ 0 ^ 0 ^ 1 ^ 1 = 1

ボブは、予期しない奇妙な結果を観察した後、誤った送信を報告します。

パリティスキームには制限があります。パリティビットは、奇数のビットエラーを検出することのみが保証されています。偶数ビットにエラーがある場合、データが破損していても、パリティビットは正しい数の1を記録します。エラーの検出と訂正も参照してください。)偶数の破損ビットがある前と同じ例を考えてみましょう。

ビットパリティエラーの種類 失敗した送信シナリオ
偶数パリティ

2つの破損したビット

アリスは送信したい:1001

アリスは偶数のパリティ値を計算します:1 ^ 0 ^ 0 ^ 1 = 0

アリスは送信します:10010

...送信エラー..。

ボブが受け取る:1 1 01 1

ボブは全体的なパリティを計算します:1 ^ 1 ^ 0 ^ 1 ^ 1 = 0

ボブは、実際には正しくありませんが、正しい送信を報告します。

ボブは、予想どおり、偶数パリティを監視しているため、2ビットエラーをキャッチできません。

使用法

その単純さのために、パリティは、困難な場合に操作を繰り返すことができる、または単にエラーを検出することが役立つ多くのハードウェアアプリケーションで使用されます。たとえば、SCSIバスとPCIバスはパリティを使用して伝送エラーを検出し、多くのマイクロプロセッサ命令キャッシュにはパリティ保護が含まれています。Iキャッシュデータはメインメモリの単なるコピーであるため、破損していることが判明した場合は無視して再フェッチできます。

シリアル データ伝送では、一般的な形式は7データビット、偶数パリティビット、および1つまたは2つのストップビットです。この形式は、8ビットバイトのすべての7ビットASCII文字に対応します。他の形式も可能です。8ビットのデータとパリティビットは、すべての8ビットバイト値を伝達できます。

シリアル通信のコンテキストでは、パリティは通常、インターフェイスハードウェア(UARTなど)によって生成およびチェックされ、受信時に、CPUなどのプロセッサ(およびオペレーティングシステムなど)が、インターフェイスハードウェアのハードウェアレジスタステータスビットエラーからの回復は通常、データを再送信することによって行われます。データの詳細は通常、ソフトウェア(たとえば、オペレーティングシステムのI / Oルーチン)によって処理されます。

パリティビットを含む送信ビットの総数が偶数の場合、奇数パリティには、すべてゼロとすべて1のパターンの両方がエラーとして検出されるという利点があります。合計ビット数が奇数の場合、エラーとして検出されるパターンは1つだけであり、どちらがより一般的なエラーであると予想されるかに基づいて選択できます。

RAIDアレイ

パリティデータは、冗長性を実現するためにRAIDアレイ(独立た/安価なディスクの冗長アレイ)によって使用されます。アレイ内のドライブに障害が発生した場合、他のドライブの残りのデータを(ブールXOR関数を使用して)パリティデータと組み合わせて、欠落しているデータを再構築できます。

たとえば、3ドライブのRAID5アレイの2つのドライブに次のデータが含まれているとします。

ドライブ1: 01101101
ドライブ2: 11010100

2つのドライブのパリティデータを計算するために、それらのデータに対してXORが実行されます。

01101101
  XOR     11010100
10111001

結果のパリティデータ10111001は、ドライブ3に保存されます。

3つのドライブのいずれかに障害が発生した場合、残りのドライブからのデータを同じXOR演算にかけることにより、障害が発生したドライブの内容を交換用ドライブで再構築できます。ドライブ2に障害が発生した場合、残りの2つのドライブ(ドライブ1とドライブ3)の内容のXOR結果を使用してデータを再構築できます。

ドライブ1: 01101101
ドライブ3: 10111001

次のように:

10111001
  XOR     01101101
11010100

そのXOR計算の結果は、ドライブ2のコンテンツを生成します。その後、 11010100はドライブ2に保存され、アレイを完全に修復します。

XORロジックも偶数パリティと同等です(XOR b XOR c XOR ...はXOR( abc 、...として扱われる可能性があるためこれはn-ary演算子であり、奇数の引数が真です)。したがって、上記と同じXORの概念は、任意の数のディスクを使用する、パリティ付きのより大きなRAIDアレイにも同様に適用されます。12台のドライブからなるRAID3アレイの場合、11台のドライブが上記のXOR計算に参加し、値を生成して専用のパリティドライブに格納します。

RAID-DPでは、パリティビットメカニズム「ダブル」、「デュアル」、または「ダイアゴナル」パリティの拡張とバリエーションが使用されます。

歴史

パリティトラックは、1951年に最初の磁気テープデータストレージに存在しました。この形式のパリティは、複数の並列信号に適用され、横方向冗長検査として知られています。これは、単一の信号で送信される複数のビットで計算されたパリティ、縦方向の冗長性チェックと組み合わせることができますパラレルバスでは、パラレル信号ごとに1つの縦方向冗長性チェックビットがあります。

パリティは、少なくとも一部の紙テープ(パンチテープ)データ入力システム(磁気テープシステムに先行)でも使用されていました。英国の会社ICL(以前のICT)が販売したシステムでは、幅1インチ(25 mm)の紙テープに8つの穴があり、8つ目はパリティ用でした。データには7つの位置が使用されました(例:7ビットASCII)。8番目の位置には、パンチされたデータホールの数に応じて、パンチされたホールがありました。

も参照してください

参照

  1. ^ Ziemer、RodgerE。; トランター、ウィリアムH.コミュニケーションの原則:システム、変調、およびノイズ(第7版)。ニュージャージー州ホーボーケン。ISBN 9781118078914OCLC856647730 _
  2. ^ 「マークまたはスペースのパリティとパリティなしの使用の違いは何ですか」[信頼できないソース?]
  3. ^ 「スティックパリティの目的は何ですか?」
  4. ^ 「シリアル通信」土曜日-ダイジェスト、 2020年3月23日取得

外部リンク