(57)【要約】  データエラーを管理するためにハミングコードを引き出すために、少なくとも４個のパリティビット位置の組が、データビットの組を保護するパリティビット用に選択される（ここで、各データビットはデータビットの組の中にデータビット位置を有する）。シンドロームが、各データビット位置に対して決定される。これは、少なくとも３個のパリティビット位置の固有のサブセットを選択する工程を含む。この固有のサブセットは、少なくとも１個のパリティビット位置を少なくとも３個のパリティビット位置の少なくとも１個の他の固有のサブセットと共有する。次に、パリティビット値が、決定されたシンドロームに基づいて各パリティビット位置に対して計算される。パケットのヘッダは、パケットの長さを定義するワード及びこのワードを用いて発生されたエラー管理コードを備えて、ワードの中のエラーが検出されて、できる限り補正される。
2009510875.tif 000002
【特許請求の範囲】
【請求項１】
データビットエラーを管理する方法であって、
データビットの組に対して、各データビットが前記データビットの組の中にデータビット位置を有し、少なくとも４個のパリティビットの組を発生し、各パリティビットが前記パリティビットの組の中にパリティビット位置を有し、前記発生するステップが所定のパリティビット位置に対して、
前記所定のパリティビット位置に対して、各データビット位置が少なくとも３個のパリティビット位置の中でパリティビットの計算に含まれるように選択されたデータビット位置におけるデータビットからパリティビットを計算するステップを含み、前記少なくとも３個のパリティビット位置が全ての可能なパリティビット位置のサブセットであり、パリティビット位置の所定のサブセットの計算の中に含まれた選択されたデータビット位置に対して、前記所定のパリティビット位置のサブセットが前記選択されたデータビット位置に対して固有であり、かつ少なくとも１個の他のデータビット位置が前記所定のパリティビット位置のサブセットの少なくとも１個のパリティビット位置に対する計算の中に含まれる、
ことを特徴とする方法。
【請求項２】
前記各データビット位置が、（２ｎ＋１）個のパリティビットの計算（ｎは正の整数）の中に含まれる、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記各データビット位置が、４ｎ個のパリティビットの計算（ｎは正の整数）の中に含まれる、ことを特徴とする請求項１に記載の方法。
【請求項４】
データビットエラーを管理する方法であって、
各データビットがデータビット位置をデータビットの組の中に有する前記データビットの組を保護するために、パリティビットに対してパリティビット位置の組を選択するステップと、
前記各データビット位置を異なるシンドロームに関連付けるステップと、
前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算するステップと、
を含み、
前記パリティビットの数が少なくとも４個であり、
前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有する、
ことを特徴とする方法。
【請求項５】
前記関連付けるステップが、低次のデータビット位置に対するシンドロームが１つ上の高次のデータビット位置のシンドロームの場合よりも低い数値のワードに一致するようになっている、ことを特徴とする請求項４に記載の方法。
【請求項６】
前記各サブセットが少なくとも（２ｎ＋１）個のパリティビット位置を有し、ｎが正の整数である、ことを特徴とする請求項４又は請求項５に記載の方法。
【請求項７】
前記サブセットが少なくとも４ｎ個のパリティビット位置を有し、ｎが正の整数である、ことを特徴とする請求項４又は請求項５に記載の方法。
【請求項８】
前記パリティビットの組内のパリティビットの数ｐが、下記の数式ｄ＋ｐ＋１＜２ｐに基づいて前記データビットの組内のデータビットの数ｄから算出される、ことを特徴とする先行する請求項のいずれか１つに記載の方法。
【請求項９】
等しい大きさのサブセットの数を最大にするために、前記各サブセットを選択するステップをさらに含む、ことを特徴とする先行する請求項のいずれか１つに記載の方法。
【請求項１０】
前記選択するステップが、低次のデータビット位置が低次のパリティビット位置の計算を行うために選択されるようになっている、ことを特徴とする先行する請求項のいずれか１つに記載の方法。
【請求項１１】
前記計算するステップが、前記選択されたデータビット位置において前記データビットに対して直列にＸＯＲ演算を実行するステップを含む、ことを特徴とする先行する請求項のいずれか１つに記載の方法。
【請求項１２】
パリティ発生器を制御するときに、前記パリティ発生器に先行する請求項のいずれか１つによる方法を実行させるコンピュータが読取り可能な命令を含むことを特徴とするコンピュータが読取り可能な媒体。
【請求項１３】
データビットの組を保護するために、少なくとも４個のパリティビットの組を発生するパリティ発生器を具備し、各パリティビットがパリティビット位置を前記パリティビットの組の中に有し、前記各データビットがデータビット位置を前記データビットの組の中に有し、
前記パリティ発生器が前記各データビット位置を異なるシンドロームに関連付け、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有し、
前記パリティ発生器が、前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算する、
ことを特徴とする送信機。
【請求項１４】
前記パリティ発生器が等しい大きさのサブセットの数を最大にする、ことを特徴とする請求項１３に記載の送信機。
【請求項１５】
前記各サブセットがｎが正の整数である少なくとも（２ｎ＋１）個のパリティビット位置を有する、ことを特徴とする請求項１３又は請求項１４に記載の送信機。
【請求項１６】
前記データビットの組及び前記パリティビットの組を受信するためのバッファをさらに備えて、前記パリティビットの組が前記データビットの組の１端部に追加される、ことを特徴とする請求項１３〜１５のいずれかに記載の送信機。
【請求項１７】
受信されたデータビットの組から少なくとも４個のパリティビットの組を発生するパリティ発生器を具備し、各パリティビットがパリティビット位置を前記パリティビットの組の中に有し、前記各受信されたデータビットがデータビット位置を前記データビットの組の中に有し、
前記パリティ発生器が前記各データビット位置を異なるシンドロームに関連付け、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有し、
前記パリティ発生器が、前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算する、
ことを特徴とする受信機。
【請求項１８】
前記パリティ発生器が等しい大きさのサブセットの数を最大にする、ことを特徴とする請求項１７に記載の受信機。
【請求項１９】
前記各サブセットが、ｎが正の整数である少なくとも（２ｎ＋１）個のパリティビット位置を有する、ことを特徴とする請求項１７又は請求項１８に記載の受信機。
【請求項２０】
前記パリティ発生器が計算したパリティビットの組を、前記受信されたデータビットの組を用いて受信されたパリティビットの組と比較する比較器をさらに備える、ことを特徴とする請求項１７〜２２のいずれかに記載の受信機。
【請求項２１】
前記比較器の出力部に動作可能に接続されたシンドローム用デコーダをさらに具備し、前記シンドローム用デコーダが前記各データビット位置を前記異なるシンドロームに関連付ける、ことを特徴とする請求項２０に記載の受信機。
【請求項２２】
補正用比較器のバンクをさらに具備し、前記各補正用比較器は入力部には１個の受信されたデータビットが入力されかつ出力部は前記シンドローム用デコーダと接続され、前記補正用比較器のバンクが前記受信機からデータビットの組を出力する、ことを特徴とする請求項２１に記載の受信機。
【請求項２３】
前記シンドローム用デコーダが、エラー無し、修正済みエラー、及び未解決エラーを表示するための出力部を有する、ことを特徴とする請求項２２に記載の受信機。
【請求項２４】
前記受信されたデータビットの組の大きさが３データビットであり、前記パリティビットの組の大きさが６パリティビットである、ことを特徴とする請求項２３に記載の受信機。
【請求項２５】
前記受信されたデータビットの組の大きさが８データビットであり、前記パリティビットの組の大きさが８パリティビットである、ことを特徴とする請求項２３に記載の受信機。
【請求項２６】
送信機と、
受信機と、
を具備し、
前記送信機が、
データビットの組を保護するために、少なくとも４個のパリティビットの組を発生する送信機用パリティ発生器を具備し、各パリティビットがパリティビット位置を前記パリティビットの組の中に有し、前記各データビットがデータビット位置を前記データビットの組の中に有し、
前記送信機用パリティ発生器が前記各データビット位置を異なるシンドロームに関連付け、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有し、
前記送信機用パリティ発生器が、前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算し、
前記受信機が、
受信されたデータビットの組から少なくとも４個のパリティビットの組を発生する受信機用パリティ発生器を具備し、各パリティビットがパリティビット位置を前記パリティビットの組の中に有し、前記各受信されたデータビットがデータビット位置を前記データビットの組の中に有し、
前記受信機用パリティ発生器が前記各データビット位置を異なるシンドロームに関連付け、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有し、
前記受信機用パリティ発生器が、前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算する、
ことを特徴とするデータエラーを管理するシステム。
【請求項２７】
データパケットをアセンブルする方法であって、
前記パケット用にペイロードデータを選択するステップと、
前記ペイロードデータの長さに基づいて、データ長ワードを得るステップと、
前記データ長ワードに依存して、エラー管理コードを得るステップと、
前記ペイロードデータ、前記データ長ワード及び前記エラー管理コードをアセンブルするステップと、
を含むことを特徴とするデータパケットをアセンブルする方法。
【請求項２８】
前記エラー管理コードが分離可能なコードである、ことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記エラー管理コードがハミングコードである、ことを特徴とする請求項２８に記載の方法。
【請求項３０】
データ長ワード及び受信されたエラー管理コードを含むヘッダとペイロードデータとを含む受信されたデータパケットを処理する方法であって、
前記データ長ワードに依存する得られたエラー管理コードを得るステップと、
前記受信されたエラー管理コードを前記得られたエラー管理コードと比較するステップ、及び前記判断に基づいて、前記データ長ワードを選択的に補正するステップと、
を含むことを特徴とする方法。
【請求項３１】
前記選択的に補正するステップの後で、前記データ長ワードに基づいて前記パケットの端部を決定するステップをさらに含む、
ことを特徴とする請求項３０に記載の方法。
【請求項３２】
データパケットを送信する装置であって、
前記データパケットがヘッダ及びペイロードデータを有し、前記ヘッダが前記ペイロードデータの長さに基づいたデータ長ワードを含み、かつエラー管理コードが前記データ長ワードに依存する状態において、
前記エラー管理コードを得るためのパリティ発生器を具備し、前記パリティ発生器が、前記データ長ワードを保護するために、少なくとも４個のパリティビットの組を発生し、各パリティビットがパリティビット位置を前記パリティビットの組の中に有し、前記データ長ワードの中の前記各データビットがデータビット位置を前記データ長ワードの中に有し、
前記パリティ発生器が前記各データビット位置を異なるシンドロームに関連付け、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有し、
前記パリティ発生器が、前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算する、
ことを特徴とする装置。
【請求項３３】
データパケットを受信する装置であって、
前記データパケットがヘッダ及びペイロードデータを有し、前記ヘッダがデータ長ワード及び受信されたエラー管理コードを含む状態において、
計算されたエラー管理コードを得るためにパリティ発生器を具備し、前記パリティ発生器が、少なくとも４個のパリティビットの組を発生し、各パリティビットがパリティビット位置を前記パリティビットの組の中に有し、前記データ長ワードの中の前記各データビットがデータビット位置を前記データ長ワードの中に有し、
前記パリティ発生器が前記各データビット位置を異なるシンドロームに関連付け、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有し、
前記パリティ発生器が、前記各パリティビット位置に対するパリティビット値を、前記各パリティビット位置に関連付けられた全てのデータビット位置から計算する、
ことを特徴とする装置。
【請求項３４】
前記受信されたエラー管理コードを前記計算されたエラー管理コードと比較するための比較器をさらに備えて、前記比較に基づいて、前記データ長ワードを選択的に補正する、ことを特徴とする請求項３３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データビットのエラー管理並びにデータパケットをアセンブルする構成及び方法に関する。
【背景技術】
【０００２】
バイナリデータを送信するときにはいつも、エラーが送信中にデータに取り込まれる可能性が存在する。このために、種々のエラー検出及びエラー補正方法が存在する。送信の間にエラーが問題を起こす可能性がある領域は、データがパケット化される場所である。データを連続的にかつ非同期で通信するシステムでは、データは一般にパケットに埋め込まれ、データを送信する場合はいつもパケットが送信される。パケットは通常パケットヘッダを有し、その後にパケットのペイロードであるデータが続き、パケットフッタで終端する。ヘッダは、例えばパケットの情報源、又はパケットに含まれたデータの種類などの、パケットに関する幾つかの情報を提供する。受信されたパケットが送信されたパケットとは異なり、これがエラー検出機構によって検出された場合は、受信機は破損されたパケットを廃棄して、送信機に対してリトライ要求を送る。しかしながら、リトライを強要すると、データ・スループットが小さくなる。さらに、パケットの終端が検出されないような方法でパケットを破損するエラーは、特別な問題を引き起こす可能性がある。
【０００３】
本発明は、データ通信の中でエラーを管理する改良された方法を提供する。
【発明の開示】
【０００４】
本発明の１つの態様は、データエラーを管理するためにハミングコードを提案する。少なくとも４個のパリティビット位置の組が、データビットの組を保護するパリティビットに対して選択される（ここで、各データビットは、データビットの組の中にデータビット位置を有する）。シンドロームが、各データビット位置に対して決定される。これには少なくとも３個のパリティビット位置の固有のサブセットを選択する工程が含まれる。この固有のサブセットは、少なくとも１個のパリティビット位置を、少なくとも３個のパリティビット位置の少なくとも１個の他の固有のサブセットと共有する。次に、パリティビット値が、決定されたシンドロームに基づいて、各パリティビット位置に対して計算される。
【０００５】
本発明の別の態様では、パケットのヘッダに対してパケットの長さを定義するワードが与えられ、エラー管理コードがこのワードを用いて発生されて、ワード内のエラーが検出され、可能な場合、補正される。
【０００６】
本発明によれば、データビットエラーを管理方法が提供される。この方法には、各データビットがデータビットの組の中にデータビット位置を有する前記データビットの組を保護するために、数が少なくとも４個のパリティビットに対するパリティビット位置の組を選択するステップ、前記各データビット位置を異なるシンドロームに関連付けるステップ、そして前記各パリティビット位置に関連した全てのデータビット位置から前記各パリティビット位置に対するパリティビット値を計算するステップが含まれ、前記各シンドロームが少なくとも３個のパリティビット位置のサブセットを含み、前記各サブセットが前記少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有する。送信機及びこの方法を実行するコンピュータが読取り可能な媒体も提供される。
【０００７】
別の態様では、受信されたデータビットの組から少なくとも４個のパリティビットの組を発生するパリティ発生器を備える受信機が提供される。ここで、各パリティビットは前記パリティビットの組の中にパリティビット位置を有し、各受信されたデータビットは前記データビットの組の中にデータビット位置を有する。前記パリティ発生器は、各データビット位置を異なるシンドロームに関連付け、各シンドロームは少なくとも３個のパリティビット位置の組を含み、前記各サブセットが前記少なくとも１個の別のサブセットと共有された少なくとも１個のパリティビット位置を有している。そして、前記パリティ発生器は、前記各パリティビット位置に関連した全てのデータビット位置から前記各パリティビット位置に対するパリティビット値を計算する。
【０００８】
さらに別の態様では、データパケットをアセンブルする方法が提供される。この方法には、前記パケットに対するペイロードデータを選択するステップ、前記ペイロードデータの長さに基づいてデータ長ワードを得るステップ、前記データ長ワードに依存するエラー管理コードを得るステップ、前記ペイロードデータ、前記データ長ワード及び前記エラー管理コードをパケットにアセンブルするステップが含まれる。そのようなパケットを送信する送信機も提供される。
【０００９】
別の態様では、受信されたデータパケットを処理する方法が提供される。ここで、前記受信されたパケットにはヘッダ及びペイロードデータが含まれ、前記ヘッダにはデータ長ワード及び受信されたエラー管理コードが含まれる。前記方法には、前記データ長ワードに依存するエラー管理コードを得るステップ、前記受信されたエラー管理コードを前記得られたエラー管理コードと比較するステップ、及び前記決定に基づいて、前記データ長ワードを選択的に補正するステップが含まれる。関連する受信機も提供される。
【００１０】
本発明の別の特徴及び利点は、図面と併せて下記の詳細な説明を検討すれば明らかになるであろう。
【００１１】
図面には、本発明の実施形態が例示されている。
【発明を実施するための最良の形態】
【００１２】
ハミングコードは、データ通信においてエラーを検出及び補正する１つの周知の方法である。標準的なハミングコードは、データビットの組の中で単一のビットエラーを補正することができるが、２個のデータビットにエラーがある場合は、間違った結果を生じることがある。この問題に対処するために、修正されたハミングコードが知られている。このコードは、単一のビットエラーを補正することができるだけでなく、単一のビットエラーと２個のビットエラーとの間を識別することもできる。このため、ハミングコードはビットエラー率（ＢＥＲ）が小さい（送信されたデータビットの任意の１個の組には恐らく多くても１個のエラーしかないような）データ通信システムでは特に有用である。
【００１３】
送信されるデータビットの組と一緒にハミングコードを使用するために、一連のパリティビット（チェックビットとしても周知である）がデータビットから計算され、次にこれらの計算されたパリティビットは送信される前にデータビットの組に加算されて、ハミング・コードワード（Hamming codeword）として周知のコードが作られる。ハミングコードに対する要点は、各パリティビットはデータビットの固有のサブセットから計算されるが、これらのサブセットは重なり合っていることである。その結果、任意の与えられたデータビットは２個以上のパリティビットの計算に寄与し、また任意の１個のパリティビットは２個以上のデータビットから計算される。パリティビットの数及びそれを計算する式を適切に選択することにより、ハミングコードはデータビットの組の中の誤ったデータビットを分離及び補正することができる。
【００１４】
ハミング・コードワードで使用されるパリティビットの最小の数は、送信されるデータビットの組内のデータビットの数に依存する。特に、周知のように、下記の式が要求される。
ｄ＋ｐ＋１＜＝２ｐ        （１）
ここで、ｄは送信されるデータビットの組の中のデータビットの数であり、ｐは加えられるパリティビットの数である。
【００１５】
標準的なハミングコードは、データビットの組内の所定のビット位置で、特に２の累乗の各ビット位置でパリティビットをインターリーブする。このため、ビット位置１、２、４、８、１６、３２、６４、．．．にパリティビットが存在し、データビットは次に高い利用可能なビット位置に移動されて、このインターリーブ動作が可能にされる。どのデータビットがどのパリティビットの計算に寄与するかを判断するために、各ビット位置は２の累乗である数の合計に分解される。次に、そのビット位置にあるデータビットは、２の累乗の位置であるビット位置に対してパリティビットを計算する数式の中で使用される。例えば、ビット位置６は４＋２の合計に分解される。このため、ビット位置６のデータビットは、ビット位置４のパリティビット及びビット位置２のパリティビットを計算するために数式の中で使用される。
【００１６】
全ての数が２の累乗の異なる合計の数に分解されるため、この方法は、全てのデータビットがパリティビットの異なるサブセットを決定することに確実に寄与するようにする。さらに、数は、項が重なった２の累乗の数に分解されることもある。例えば、７は４＋２＋１に分解されが、１３は８＋４＋１に分解されるため、これらの２個の数は２の累乗の項４及び１を共有する。
【００１７】
各パリティビットを計算する数式は、パリティビットの算出に寄与する全てのデータビット上を直列に実行する単純な排他的論理和（ＸＯＲ）演算である。
【００１８】
パリティビットが算出された後、前述したように、それらはデータワードと共にインターリーブされて、送信の準備ができているハミング・コードワードが生成される。受信機では、データビットはコードワードから抽出されて、パリティビットを計算するために使用される。全ての計算されたパリティビットがコードワードの中で実際に受信されたパリティビットと同一である場合は、受信機はエラーはなかったと結論づける。しかしながら、任意の受信されたパリティビットと計算されたパリティビットとの間に不一致がある場合は（これはＸＯＲ演算で決定される）、エラーが発生したと判断される。計算されたチェックビットを受信されたチェックビットと（ＸＯＲ）比較することから生じるワードは、シンドロームとして周知である。前述の内容は、下記の中で例示されるであろう。
【００１９】
コードワードを送信する間に、１個のデータビットＺがうまくいかなかったと仮定する（すなわち、そのビットが１から０に又は０から１に反転されたと仮定する）。そのような場合は、受信機がデータビットＺが含まれるパリティビットのそれぞれを計算すると、パリティビットのこの固有のサブセットに対して計算された値は、サブセットに対して受信された値とは全て異なるであろう。換言すると、受信機が受信されたデータビットからパリティビットを計算した後で、計算されたパリティビットのサブセットが受信されたパリティビットとは異なり、かつこのサブセットはデータビットＺが含まれるパリティビットの固有のサブセットであることが分かる。このため、「悪い」パリティビットの算出されたサブセットは、エラーのデータビットを直接指し示す。さらに、パリティビットのこの固有のサブセットは、データビットＺのビット位置の２の累乗の分解によって示されたビット位置にあるため、悪いデータビットを識別することは、悪いパリティビットの識別から直接起こることになる。
【００２０】
単純な実施例が、上記の内容を例示している。３個のデータビットの組が送信されると仮定する。式（１）から、３＋ｐ＋１＜＝２ｐであるため、ｐ＞＝３である。パリティビットの最小数３を選択すると、ビット位置１、２及び４にパリティビットが必要とされる。このため、Ｃがパリティビットを表し、Ｄがデータビットを表して、ビット位置を表すために添え字が使用される場合、３個のデータビットの組はシーケンスＣ１Ｃ２Ｄ３Ｃ４Ｄ５Ｄ６が送信されるように修正される。
【００２１】
ビット位置３は２＋１に、ビット位置５は４＋１に、そしてビット位置６は４＋２に分解される。このため、ビット位置１のパリティビットＣ１はビット位置３及び５のデータビットから、ビット位置２のパリティビットＣ２はビット位置３及び６のデータビットから、そしてビット位置４のパリティビットＣ４はビット位置５及び６のデータビットから計算される。これらのパリティビットを計算するための特定の数式は、下記のようになる。
Ｃ１＝Ｄ３＾Ｄ５        （２）
Ｃ２＝Ｄ３＾Ｄ６        （３）
Ｃ４＝Ｄ５＾Ｄ６        （４）
ここで、「＾」はＸＯＲ演算を示す。送信される３個のデータビットの組が１００の場合は、Ｃ１Ｃ２１３Ｃ４０５０６になる。３個のパリティビットが数式（２）〜（４）から計算されるため、結果として生じる送信されるコードワードは１１１０００である。
【００２２】
受信機においてビットシーケンス１１１００１が受信されて、位置６のデータビットが損傷されている場合、下記のように、ハミングコードをこのエラーを補正するために使用できる。受信されたデータビットに基づいて、受信機は数式（２）〜（４）を用いてパリティビットを計算する。そのような計算により、Ｃ１＝０；Ｃ２＝０；及びＣ４＝１となる。しかし、Ｃ２及びＣ４の受信された値は、計算された値とは異なる。このことは、ビット位置２＋４＝６のデータビットが間違っていることを意味する。そこで、ビット位置６のデータビットは、エラーを補正するために補完（反転）される。
【００２３】
１個のデータビットエラーではなく１個のパリティビットエラーがある場合、そのパリティビットに対するパリティビットの数式のみが、受信された値とは異なる計算された値に戻す。このように、１個のパリティビットエラーは、容易に識別及び無視することができる。
【００２４】
コードワードの中で最小数のパリティビットを使用することに関する問題は、ハミングコードは１ビットのエラーを分離及び補正することができるが、１ビットのエラーと２ビットのエラーとの間を識別することができないことである。このため、同じ例を用いて、送信する間にデータビット３及び６の両方がうまくいかなかった場合、シーケンス１１１０１１が受信される。ここで、パリティビットの計算によりＣ１＝０；Ｃ２＝０；及びＣ４＝１が得られるため、データビットＤ３がうまく送信されなかったと間違えて示唆する。
【００２５】
この問題を解決するために、１個の付加的なパリティビットを使用する。この付加的なパリティビットは、保護ビットと呼ばれることがあり、全てのデータビットと他の加えられたパリティビットのＸＯＲをとることから計算される。このため、送信の後でエラーがない又は２個のエラーがある場合は、コードワードから保護ビットに対して送信機で計算された値と同じ値を計算する。一方、エラーが１個の場合は、受信機は保護ビットに対して異なる値を計算する。従って、受信された保護ビットを計算された保護ビットと比較することにより、受信機は１個のエラーと２個のエラーとの間を識別することができる。
【００２６】
標準的な及び修正されたハミングコードに関する欠点は、高次エラーからエイリアシングを受けやすいことである。すなわち、修正されたハミングコードは、２個のエラーがある場合は、１個のエラーを補正し確定するが、３ビットのエラーなどの高次エラーが１ビットのエラーであると判断するようにだまされる。さらに、説明されたハミングコード技術は、受信されたコードワードを適切に解釈するために、全ての送信機及び受信機が同じように動作することを要求している。
【００２７】
説明されたハミングコードを用いて認識した問題の１つは、パリティビットの固有のサブセットをより多く選択するために、データビット位置を２の累乗の合計の数に分解する工程が、より小さいビット位置のパリティビットを使用することである。例えば、３３ビットデータワードの場合は、極めて少ないデータビット位置が数３２を含む２の累乗の数に分解されるが、多くは数１を含む２の累乗の数に分解される。その結果、位置３２においてパリティビットの計算に寄与するデータビットはほとんど無いが、ビット位置１では多くのデータビットがパリティビットの計算に寄与することになる。最も少ない数のパリティビットの決定に貢献するこれらのデータビットは、高次エラーのエイリアシングに対して最も脆弱である。その理由は、高次エラーが比較的少数のサンプル点によって決定されたエラーを模倣することは容易だからである。
【００２８】
その結果、各ビット位置内のエラーの決定についてのローバスト性がより等しくなるようにハミング・コードワードのバランスをより良く保つために、各データビットはパリティビットの数の決定ができるだけ等しくなるように寄与するようにされる。換言すると、所定のデータビットが寄与するパリティビットの各サブセットは、寸法が等しいサブセットの数が最大になるように選択される。各サブセット内の所定の数のパリティビットに対して、選択されるパリティビットのより多くの固有のサブセットがあるという単純な理由のためにより多くのパリティビットがある場合、この結果は容易に実現される。例えば、５個のパリティビットの領域の中で存在するよりも、６個のパリティビットの領域内に３個のパリティビットのより多くの固有のサブセットがある。付加的なオーバーヘッドのビットを加えることなく、前述の修正されたハミングコードと比較してパリティビットの領域を増加するためには、説明された保護ビット（ハミング・コードワード全体のＸＯＲである）が通常のパリティビットとして代わりに使用される（その決定は、幾つかのデータビットによってもたらされる）。
【００２９】
数学的には、追加のパリティビットは、パリティビットの数が、式（１）によって決定されるものではなく、下記のように、代わりに式（５）によって決定されることを意味する。
ｄ＋ｐ＋１＜２ｐ        （５）
ここで、前述したように、ｄは送信されるデータビットの組の中のデータビットの数であり、ｐは加えられるパリティビットの数である。
【００３０】
多くのデータビットが存在しても、利用可能な十分なパリティビットが存在して、各データビットがパリティビットの固有のサブセットを決定することに寄与することができ、またこれらのパリティビットのサブセットが重なり合う限り、単一のビットエラー検出が保証される。しかしながら、ハミングコードが少なくとも二重のビットエラーから単一のビットエラーを識別することも好ましい。（ｉ）各データビットが少なくとも３個のパリティビットの計算に寄与し、また（ｉｉ）全てのデータビットが奇数のパリティビットに寄与するか又は全てのデータビットが偶数のパリティビットに寄与する場合、このことは保証される。一層数学的に述べると、全てのデータビットが２ｎ＋１又は４ｎのいずれかの数のパリティビットに寄与することが好ましい（しかし、これに限定されることはない）。
【００３１】
基準（ｉ）に対する要求は、下記から理解することができる。データビットＡがＣ１及びＣ２の計算にのみ寄与し、データビットＢがＣ２及びＣ３の計算だけに寄与するものと仮定する。送信の後でＡが不良の場合、Ｃ１及びＣ２も不良の可能性がある（すなわち、Ｃ１及びＣ２に対して計算された値が受信された値とは異なる）。しかしながら、送信後にＡ及びＢが不良の場合は、Ｃ１及びＣ３は不良の可能性があるが、Ｃ２は良好と思われる。ここで、データビットＺがＣ１及びＣ３に対してのみ寄与する場合、このエラーは１ビットエラーと混同される。他方においては、各データビットが３個のパリティビットを算出する数式に寄与する場合、ＡはＣ１、Ｃ２及びＣ３に対する数式に、またＢはＣ２、Ｃ３及びＣ４に対する数式に寄与する。ここで、Ａが不良になると、Ｃ１及びＣ３は不良になるが、Ｂも不良になると、Ｃ１は不良のままであるがＣ２及びＣ３は良好と思われ、Ｃ４は不良になる。しかし、少なくとも３個のパリティビットが不良であり単一ビットエラーを示すため、２個のチェックビットだけが不良の場合は、単一ビットエラーではないエラーが存在していると結論付けることができる。
【００３２】
基準（ｉｉ）に対する要求は、下記から理解することができる。データビットがパリティビットの数式の奇数又は偶数のいずれかに寄与することができる場合は、データビットＡはＣ１、Ｃ２及びＣ３に対する数式に寄与することができ、またデータビットＢはＣ１、Ｃ２、Ｃ３及びＣ４に対する数式に寄与することができる。次に、送信の間にデータビットＡが不良になり、送信するパリティビットＣ４にエラーがある場合、受信機は、パリティビットＣ１、Ｃ２、Ｃ３及びＣ４のそれぞれが不良であるため、データビットＢが不良であると判断する。他方においては、データビットＢが５個のパリティビットの数式に寄与する場合、受信機がこの二重ビットエラーを正確に識別するであろうということが容易に理解される。
【００３３】
データビットが３、５、７、又はパリティビットの数式のより大きな任意の奇数のいずれかに寄与する場合、又はデータビットが４、６、８、又はパリティビットの数式のより大きな任意の偶数のいずれかに寄与する場合は、基準（ｉ）及び（ｉｉ）が満足される。少なくとも３個のパリティビット用の数式に寄与する各データビットに対して、３個のパリティビットの異なるサブセットが存在するように、明らかに少なくとも４個のパリティビットが必要とされる。
【００３４】
提案された方式は、二重ビットエラーだけでなく、より高次のビットエラーを検出することができる。高次エイリアシングに対するコードワードの耐性は、各データビットが寄与するパリティビットの数を増加することによってさらに高めることができる。しかしながら、これにはコンピュータのオーバーヘッドを増加するという代償がかかる（より多くのゲート）。このため、ＢＥＲが十分に低い場合は、任意の所定のデータビットの組に対して、データビットができるだけ少ないパリティビットの数式に寄与することが好ましい。このことは、最初に３個のパリティビットの数式に対する貢献の全ての可能な組合せを作り、組の中にまだデータビットが存在する場合は、次に５個のパリティビットの数式に対する貢献の全ての可能な組合せを作り、等々となることを意味する。
【００３５】
パリティビットをデータビットとインターリーブするのではなく、データビットの１端部に単に加えることが提案されている。これにより提案されたハミング・コードワードを、コードワード自体をデコードすることができない受信機が、データビット・ワードの始め又は終わりでパリティビット・ワードを単に無視することによって、使用できるようになる。このパリティビット・ワードは、エラー管理コード又は別の方法では、エラー補正コードと呼ばれる。
【００３６】
この方式は、パリティビットの数式が、送信されるデータビットの組の中のデータビットの数に基づいて、前もって決定されることを必要する。このことは、前述した標準的で修正されたハミングコードとは対照的である。このハミングコードは、アルゴリズムを基にしているため、単にアルゴリズムを適用することによって、種々の大きさのデータビットの組と一緒に使用することができる（すなわち、パリティビットを２の累乗の位置に置いて、自身の２の累乗の分解の中でその２の累乗を有するデータビットを用いて、それらの値を決定する）。それにもかかわらず、種々の大きさのデータビットの組のそれぞれに対して種々のパリティビットの数式の組を前もって決定することによって、新しい方式は種々の大きさのデータワードの組と一緒に使用される。実際に、所定のビット位置のデータビットが寄与するパリティビットの数式は、小さいデータビットの組及び大きいデータビットの組の両方に対して同じである。
【００３７】
以下に、長さが２４ビット又は６４ビットのどちらかのデータワードを保護するために、この方式を使用する実施例について記述する。
【００３８】
式（５）から、提案されたハミングコードを用いて２４データビットの組を保護するためには、少なくとも６個のパリティビットが必要とされ、６４データビットの組を保護するためには、少なくとも８個のパリティビットが必要とされる。６個のパリティビット位置の組の中に３個のパリティビット位置の１２個の固有のサブセットがあり、また６個のパリティビット位置の組の中に５個のパリティビット位置の６個の異なるサブセットがある。このように、６個のパリティビットは、２４データビットと一緒に使用するために、十分な固有の３個及び５個のパリティビットのサブセットを提供する。同様に、８個のパリティビットは、６４データビットと一緒に使用するために、十分な固有の３個及び５個のパリティビットのサブセットを提供することは理解することができる。
【００３９】
図１は、下記の１つの実施形態による表である。図１に戻ると、表１０の左側の列１２は６４ビットに対するビット位置を示し、中央の列１４はパリティビット位置Ｐ０〜Ｐ７を特定している。パリティビット位置の列１４の中のセルは、そのセルに対する行内のデータビットがそのパリティビットに対する数式に寄与する場合は１であり、そうでない場合は０である。このため、例えば、データビット位置５のデータビットは、パリティビットＰ４、Ｐ２及びＰ０の計算には寄与するが、他のパリティビットに対しては寄与しない。パリティビットの計算に対する数式が単純な直列のＸＯＲ演算であることを思い出すと、図１から、２４ビットのデータビットの組の場合、Ｐ０に対する数式は下記のようになる。
Ｐ０２４ビット＝Ｄ０＾Ｄ１＾Ｄ２＾Ｄ４＾Ｄ５＾Ｄ７＾Ｄ１０＾Ｄ１１＾Ｄ１３＾Ｄ１６＾Ｄ２０＾Ｄ２１＾Ｄ２２＾Ｄ２３        （６）
【００４０】
５個のパリティビットの組合せは、高次エラーからのエイリアシングに対してより大きな抵抗力がある。しかしながら、２４ビットワード送信しているときは６４ビットワードを送信しているときよりも、高次エラーが生じる可能性は高くない。このために、表１０は、最初の２４個のデータビット位置に対して６パリティビットワードの中の可能な３個のパリティビットの組合せの全ての２０個を使用する。このことはまた、各データビット位置が最初の２４個のデータビット位置に対してできるだけ等しくなるようにするパリティビットの数を維持する。
【００４１】
データビット位置がそのパリティビットに対する数式に寄与する場合は、各セルに１が入力されるため、各データビット位置に関連するパリティビットのサブセットは、そのデータビット位置に対するシンドロームである。このことは、下記の内容から理解できる。各データビットは、パリティビットの固有のサブセットの計算に関係している。その結果、単一ビットエラーが送信の間に発生すると、幾つかの計算されたパリティビットは受信されたパリティビットとは異なることになる。計算及び受信されたパリティビットがＸＯＲ演算を用いて比較されると、シンドロームとして周知の結果として生じた比較ワード（comparison word）は、相違が存在する各パリティビット位置では１になる。その結果、このシンドロームは、表１０の中のエラーがあるデータビットの行で発見される。シンドロームは、表１０の列１６で示されるように、１６進数（すなわち、１６ベース）で表される。このため、受信機は計算されたシンドロームの１６進値を確認し、表１０の中でこの値を簡単に探して、エラーのあるデータビットを特定することができる。
【００４２】
計算されたベース２のシンドロームが中に１個しか１を持たない場合、これは送信の間にパリティビットが悪くなったことを示しており、そのようなエラーは無視することができる。このため、シンドロームが表１０のどのシンドロームでもない場合、これはチェックビットの中のエラー又は高次エラー（例えば、２又は３ビットエラー）のいずれかを示す。
【００４３】
最初の任意の２４個のデータビット位置に対するシンドロームは交換することができるという点で、図１の表は特別なものではないということは理解されるであろう。例えば、データビット位置７及び１５に対するシンドロームは逆にすることができる。データビット位置２５〜６４に対しても、同じことが言える。これらの任意のデータビット位置に対するシンドロームは交換することができる。必要なことは、送信機及び受信機が同じ表を記憶することである。また一方で、表１０の利点は、シンドロームが昇順で示されているため、表を迅速に検索することが容易なことである。
【００４４】
図２は、６４ビットのデータワードに対して提案されたエラー補正コードを発生する送信機２０の一部を例示している。データワード２２の８バイト０〜７は、図１の表１０を実現するパリティ発生器２４を通されて、エラー補正コード２６を作る。このエラー補正コード２６は、データワードの前端部に付加される。このハミング・コードワードはバッファ２７の中に置かれて送信される。
【００４５】
図３は、ハミング・コードワードを受信する受信機３０の一部を例示している。受信されたデータワード３２の８バイトは、やはり図１の表１０を実現するパリティ発生器３４を通過される。これにより、パリティ発生器は、計算されたエラー補正コード３８を得るために、表１０が示したパリティビットの数式に基づいて受信されたデータビットからパリティビットを計算する。この受信機は受信されたエラー補正コード３６を読み取り、この値を計算されたエラー補正コード３８とＸＯＲゲート４０を用いて比較する。結果として生じたワードがシンドローム４２であり、これはやはり利用可能な表１０を有するシンドローム用デコーダ４４に送られる。このシンドローム用デコーダ４４は、表１０のエントリーを調べるためにシンドローム４２を使用する。エントリーが見つかると、エントリーが示したデータビット位置におけるデータビットは、不良と判断される。データビット・ワード３２は、ＸＯＲゲートアレイ５０に送られる。シンドローム用デコーダは、不良のデータビットを受信した１個のゲートを除いて、ＸＯＲゲートアレイ５０の中の各ゲートに０を出力する。デコーダは、不良のデータビットを補完しこれにより補正するために、そのゲートに対して１を出力する。次に、補正されたデータワード５２は、エラーが補正されているという線５４上のデコーダ４４からの指示と共に、受信機から出力される。シンドロームがゼロの場合は、デコーダ４４は線５６上でエラーなしという指示を出力する。デコーダが表１０の中でシンドロームを発見できない場合、及びシンドロームがベース２で単に１個の１も持たない場合（パリティビットエラーを示す）は、デコーダは線５８上でエラー指示を出力する。
【００４６】
図４は、２４ビットワード用の送信機６０の一部を例示している。データワード６２の３バイト０〜２は、パリティ発生器６４に送られる。このパリティ発生器６４は図１の表１０を実現して、データワードの前端部に付加されるエラー補正コード６６を作る。次に、このハミング・コードワードは送信される。
【００４７】
図５は、ハミング・コードワードを受信する受信機７０の一部を例示している。受信されたデータワード７２の３バイトは、計算されたエラー補正コード７８を得るために、やはり図１の表１０を実現するパリティ発生器７４を通過される。この受信機は受信されたエラー補正コード７６を読み取り、この値を計算されたエラー補正コード７８とＸＯＲゲート８０を用いて比較する。結果として生じたワードがシンドローム８２であり、これはやはり利用可能な表１０を有するシンドローム用デコーダ８４に送られる。図３に関連して説明されたように、シンドローム用デコーダ８４及びＸＯＲゲートアレイ９０は、シンドローム８２を使用してデータワード９４内の任意の単一データビットエラーを補正する。シンドローム８２は出力され、線９２、９６及び９８上でそれぞれ、補正されたエラー、エラー無し、又は補正されないエラーの結果を示す。
【００４８】
データビットの組はパケットヘッダの一部とすることができ、パケット内のペイロードワード用のワードカウント（すなわち、データ長カウント）を備えている。そうでない場合は、エラー補正コードもヘッダの一部とすることができ、ワードカウント内のビットエラーを管理（すなわち、検出及び場合によっては補正）する。ワードカウントを確認することは、パケットの終端を確実に正しく検出することに特に有用である。
【００４９】
当業者には明らかなように、どのようなデータ送信機も、前述のエラー補正コードを送信するためのデータビットの組に加えて、適切に構成された受信機が送信されたデータビットの組の中のエラーを管理するために、シンドロームを決定するときにエラー補正コードを使用できるように構成することができる。このように、本発明の教示は、高範囲の通信システムに適用することができる。例えば、説明されたエラー補正コードによる方法は、公開のインターネット上で通信する場合、又は周辺機器と通信する場合に、パソコンの中で使用することができる。この説明された方法は、携帯電話又は携帯形電子メールクライアント装置（portable e-mail client device）などの無線ハンドヘルド装置（wireless handheld device）から構成するシステムの中で使用することもできる。説明された方法は、Ｔ．Ｖ．信号のデータエラーを管理するために使用することもできる。これらの実施例から、説明されたエラー補正コードによる方法は、有線及び無線の両方の通信システム用の送信機及び受信機と共に使用できることは明白である。
【００５０】
図２〜図５の送信機及び受信機、及びさらに言えば、説明されたエラー補正コードによる方法を使用するように構成された任意の送信機又は受信機は、ハードウェア又はソフトウェアを用いて構成することができる。図６は、送信機１１０を例示している。この送信機のパリティ発生器１１１は、本発明によるエラー補正コード１１４を送信機が送信するデータビットの組１１６に加えるために、コンピュータが読取り可能な媒体１１２からのソフトウェアによって構成される。図６は、受信機１２０も例示している。この受信機のパリティ発生器１２１は、本発明に基づいて、データビットの組及び受信され加えられたエラー補正コードを用いてシンドロームを決定するために、コンピュータが読取り可能な媒体１２２からのソフトウェアにより構成される。コンピュータが読取り可能な媒体１１２及び１２２は、コンピュータが読取り可能なＣＤ又はフラッシュメモリ装置などの携帯用記憶装置とすることができる。媒体１１２及び１２２は、公開されたインターネットなどの離れた情報源からダウンロードされたコンピュータが読取り可能なファイルとすることもできる。
【００５１】
図７は、説明されたエラー補正コードによる方法を用いて構成された１個以上の送信機及び／又は受信機を備える通信装置又はシステム１３０の実施例を例示している。この装置又はシステム１３０は、１個以上の通信バス１３２を備えている。この通信バス１３２は、装置又はシステム１３０に対してローカルとすることができるか、又は適当な無線又は有線のネットワーク接続体を介する１個以上の有線又は無線のリンクとすることができる。装置又はシステム１３０は、例えば、ケーブル形セットトップボックス、プラズマ（又はＬＣＤ）ディスプレイ、ＨＤＴＶ、手持ち式装置、ゲームコンソール、ラップトップコンピュータ、ディスクトップコンピュータ、ビデオ（例えば、ＤＶＤ）プレイ装置、携帯形ＭＰ３プレーヤなどのオーディオ・プレイ装置、又は他の任意の適当な装置又はシステムとすることができる。この実施例では、これらの装置は１個以上の適当な通信リンク１３６（リンク１３２とすることができる）を介してバス１３２に動作的に接続されたプロセッサ１３４を備えており、また必要に応じて、望ましい装置又はシステムの種類に応じて、１個以上のディスプレイ１３８、カメラ１４０、１個以上の他の装置又は回路１４２を備えることができる。プロセッサ１３４は、１個以上のＣＰＵ、ＤＳＰ、状態マシン用個別論理素子又は任意の適当なディジタル処理構造体とすることができる。
【００５２】
他の装置又は回路１４２の実施例は、ハードドライブ、オーディオ処理エンジン（audio processing engine）、ビデオデコーダ及び／又はエンコーダ、プリンタ、リムーバブル記憶装置、セットトップボックス、別のプロセッサ、フラッシュメモリ装置又は任意の他の適当な装置又は回路を含むことができるが、これらに限定されることはない。
【００５３】
図２及び図６の送信機及び受信機１１０及び１１２、又は前述されたエラー補正コードによる方法を使用するように構成された任意の送信機又は受信機は、プロセッサ１３４、ディスプレイ１３８、カメラ１４０、又は他の装置又は回路１４２のいずれかを用いて構成することができるため、任意のこれらの装置又はシステムの構成要素は、前述されたように、上記のエラー補正コードによる方法を使用するように構成された送信機及び／又は受信機のいずれかを備えることができる。このため、開示された送信機及び／又は受信機は、本願に記載された実施例の任意の適当な装置、システム又はサブシステム、又は回路の中に含むことができる。
【００５４】
他の変形例は当業者には明らかであるため、本発明特許請求の範囲の中で定義される。
【図面の簡単な説明】
【００５５】
【図１】（図１Ａ、図１Ｂ、図１Ｃを含む）  本発明の実施形態を例示する表である。
【図２】本発明の実施形態に基づいて作られた送信機の一部の概略図である。
【図３】図２の受信機と共に使用するための受信機の一部の概略図である。
【図４】本発明の別の実施形態に基づいて作られた送信機の一部の概略図である。
【図５】図４の受信機と共に使用するための受信機の一部の概略図である。
【図６】本発明の実施形態に基づいて構成された通信システムの概略図である。
【図７】本発明の実施形態による装置又はシステムのブロック図である。
【図１Ａ】
2009510875.tif 000003
【図１Ｂ】
2009510875.tif 000004
【図１Ｃ】
2009510875.tif 000005
【図２】
2009510875.tif 000006
【図３】
2009510875.tif 000007
【図４】
2009510875.tif 000008
【図５】
2009510875.tif 000009
【図６】
2009510875.tif 000010
【図７】
2009510875.tif 000011
【国際調査報告】
2009510875.tif 000012
2009510875.tif 000013
2009510875.tif 000014
2009510875.tif 000015
2009510875.tif 000016