(57)【要約】【課題】   最大遷移ハミングコードの提供。【解決手段】   複数のデータを受信するように構成された入力部と、複数の符号化ビットを生成するためにハミングコード符号化演算を用いて前記データを符号化するように構成されたプロセッサと、前記複数の符号化ビットを出力するための出力部と、を備え、前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを標準ハミングコードに対応する符号化ビットと比較して減少させるように構成されることを特徴とするエンコーダ。【選択図】  図３
2015089132.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータビットに対してハミングコード符号化演算を用いて複数のパリティビットを計算し、このとき、前記パリティビットの第１パリティビットは偶数パリティを用いて計算し、前記パリティビットの第２パリティビットは奇数パリティを用いて計算するステップと、
前記データビットと前記計算されたパリティビットを出力するステップと、
を含むデータ符号化方法。
【請求項２】
前記第２パリティビットは、前記複数のパリティビットのシーケンスにおける最後のパリティビットであることを特徴とする請求項１に記載のデータ符号化方法。
【請求項３】
前記第１パリティビットは、前記複数のパリティビットのシーケンスにおける最後から２番目のパリティビットであることを特徴とする請求項１に記載のデータ符号化方法。
【請求項４】
前記ハミングコード符号化演算はＨＣ（１２７，１２０）に対応し、前記第１パリティビットは６番目のパリティビットであり、前記第２パリティビットは７番目のパリティビットであることを特徴とする請求項１に記載のデータ符号化方法。
【請求項５】
複数のデータビットに対してハミングコード符号化演算を用いて複数のパリティビットを計算するステップと、
前記計算されたパリティビットを前記複数のデータビットとインターリービングして複数の符号化データビットを生成するステップと、
前記複数のデータビットのデータシーケンスの連続した同一値の最大の長さを減少させるために前記複数の符号化データビットを再配置するステップと、
を含むことを特徴とするデータ符号化方法。
【請求項６】
前記複数の符号化データビットを再配置するステップは、前記符号化データビットの先頭の部分にある多数の前記複数の符号化データビットを前記符号化データビットの最後のビット以降に移動させるステップを含むことを特徴とする請求項５に記載のデータ符号化方法。
【請求項７】
前記ハミングコード符号化演算はＨＣ（１２７，１２０）に対応し、多数の前記先頭の部分の複数の符号化データビットは３２ビットを含むことを特徴とする請求項６に記載のデータ符号化方法。
【請求項８】
前記ハミングコード符号化演算は、奇数パリティを用いることを特徴とする請求項５に記載のデータ符号化方法。
【請求項９】
複数のデータビットを受信するように構成された入力部と、
複数の符号化ビットを生成するためにハミングコード符号化演算を用いて前記データを符号化するように構成されたプロセッサと、
前記複数の符号化ビットを出力するための出力部と、
を備え、
前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを標準ハミングコードに対応する符号化ビットと比較して減少させるように構成されることを特徴とするエンコーダ。
【請求項１０】
前記プロセッサは、前記複数のデータビットに対するハミングコード符号化演算を用いて複数のパリティビットを計算し、このとき、前記パリティビットの第１パリティビットは偶数パリティを用いて計算し、前記パリティビットの第２パリティビットは奇数パリティを用いて計算し、前記複数の符号化ビットは前記データビットと前記計算されたパリティビットを含むように構成されることを特徴とする請求項９に記載のエンコーダ。
【請求項１１】
前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを減少させるために前記複数の符号化ビットを再配置するように構成されることを特徴とする請求項９に記載のエンコーダ。
【請求項１２】
先頭の部分にある多数の前記複数の符号化データビットを前記符号化ビットの最後のビット以降に移動させることにより前記複数の符号化ビットを再配置することを特徴とする請求項１１に記載のエンコーダ。
【請求項１３】
前記ハミングコード符号化演算はＨＣ（１２７，１２０）に対応し、先頭の部分にある多数の前記複数の符号化ビットは３２ビットを含むことを特徴とする請求項１２に記載のエンコーダ。
【請求項１４】
複数のデータビットと複数のパリティビットから構成された複数の符号化ビットを受信するように構成された入力部と、
複数のハミングコード符号化ビットを生成するために受信された符号化ビットを修正し、複数の復号化ビットを生成するためにハミングコード復号化演算を用いて前記ハミングコード符号化ビットを復号化するように構成されたプロセッサと、
前記複数の復号化ビットを出力するように構成された出力部と、
を備え、
前記受信された複数の符号化ビットは、標準ハミングコードに対応する符号化ビットと比較して減少された長さの連続した同一値を有することを特徴とするデコーダ。
【請求項１５】
前記プロセッサは、先頭の部分にある多数の符号化データビットを前記符号化ビットの最後のビット以降に移動させて前記複数の受信された符号化ビットを再配置することにより前記受信された符号化ビットを修正するように構成されることを特徴とする請求項１４に記載のデコーダ。
【請求項１６】
前記プロセッサは、前記パリティビットのパリティビット値をトグルさせることにより前記受信された符号化ビットを修正するように構成されることを特徴とする請求項１４に記載のデコーダ。
【請求項１７】
データソースと、
直列リンクと、
前記データソースと前記直列リンクとの間に連結され、前記データソースから複数のビットを受信するように構成された入力部と、
複数の符号化ビットを生成するためにハミングコード符号化演算を用いてビットを符号化するように構成されたプロセッサと、
前記複数の符号化ビットを前記直列リンクに出力するように構成された出力部と、
を有するエンコーダを備え、
前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを標準ハミングコードに対応する符号化ビットと比較して減少させるように構成されることを特徴とする通信システム。
【請求項１８】
前記プロセッサは、前記複数のデータビットに対してハミングコード符号化演算を用いて複数のパリティビットを計算し、このとき、前記パリティビットの第１パリティビットは偶数パリティを用いて計算し、前記パリティビットの第２パリティビットは奇数パリティを用いて計算し、前記複数の符号化ビットは前記データビットと前記計算されたパリティビットを含むように構成されることを特徴とする請求項１７に記載の通信システム。
【請求項１９】
前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを減少させるために先頭の部分にある多数の前記複数の符号化ビットを前記符号化ビットの最後のビット以降に移動させることにより前記複数の符号化ビットを再配置するように構成されることを特徴とする請求項１７に記載の通信システム。
【発明の詳細な説明】
【背景技術】
【０００１】
データ通信において、送信機と受信機との間の伝送は、ハミングコード（Ｈａｍｍｉｎｇｃｏｄｅｓ:ＨＣ）により認証されて訂正される。一般に言えば、ハミングコードは複数のパリティ（ｐａｒｉｔｙ）ビットを含むことにより複数のデータビットに対するエラーの探知と訂正を提供し、このとき、前記パリティビットはデータビットの間に混ざり込む。
【０００２】
また、直列データリンクなどの電子的データ通信においては、送信機と受信機との間の通信をクロック（ｃｌｏｃｋ）修復またはクロックデータ修復（ｃｌｏｃｋ−ｄａｔａ ｒｅｃｏｖｅｒｙ:ＣＤＲ）過程を用いて同期化する。例えば、受信機は位相ロックループ（ｐｈａｓｅ−ｌｏｃｋｅｄ ｌｏｏｐ:ＰＬＬ）を用いて適切な周波数参照（frequency reference）からクロックを生成することができ、次いで、ＣＤＲを用いて、生成された信号をデ−タ列における遷移に対して位相整列（ｐｈａｓｅ−ａｌｉｇｎ）することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、遷移の個数が、受信機がデータを探知するには不十分であるため、データにおいて連続した同一値の長さ（例えば、連続した１または０の列）が特定の長さを超える場合、クロック信号の修復が失敗することがある。そこで、本発明は、同一値の長さを抑制することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００４】
本発明の一実施形態に係るデータ符号化方法は、複数のデータビットに対してハミングコード符号化演算を用いて複数のパリティビットを計算し、このとき、前記パリティビットの第１パリティビットは偶数パリティを用いて計算し、前記パリティビットの第２パリティビットは奇数パリティを用いて計算するステップと、前記データビットと前記計算されたパリティビットを出力するステップと、を含む。
【０００５】
前記第２パリティビットは、前記複数のパリティビットのシーケンスにおける最後のパリティビットであってもよい。
【０００６】
前記第１パリティビットは、前記複数のパリティビットのシーケンスにおける最後から２番目のパリティビットであってもよい。
【０００７】
前記ハミングコード符号化演算はＨＣ（１２７，１２０）に対応してもよく、前記第１パリティビットは６番目のパリティビットであり、前記第２パリティビットは７番目のパリティビットであってもよい。
【０００８】
本発明の一実施形態に係る方法は、複数のデータビットに対してハミングコード符号化演算を用いて複数のパリティビットを計算するステップと、前記計算されたパリティビットを前記複数のデータビットとインターリービング（interleaving：交互配置）して複数の符号化データビットを生成するステップと、前記複数のデータビットのデータシーケンスの連続した同一値の最大の長さを減少させるために前記複数の符号化データビットを再配置するステップと、を含む。
【０００９】
前記複数の符号化データビットを再配置するステップは、前記符号化データビットの先頭の部分にある多数の前記複数の符号化データビットを前記符号化データビットの最後のビット以降に移動させるステップを含んでいてもよい。
【００１０】
前記ハミングコード符号化演算はＨＣ（１２７，１２０）に対応し、多数の前記先頭の部分の複数の符号化データビットは３２ビットを含んでいてもよい。
【００１１】
前記ハミングコード符号化演算は、奇数パリティを用いてもよい。
【００１２】
本発明の一実施形態に係るエンコーダは、複数のデータビットを受信するように構成された入力部と、複数の符号化ビットを生成するためにハミングコード符号化演算を用いて前記データを符号化するように構成されたプロセッサと、前記複数の符号化ビットを出力するための出力部と、を備え、前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを標準ハミングコードに対応する符号化ビットと比較して減少させるように構成される。
【００１３】
前記プロセッサは、前記複数のデータビットに対するハミングコード符号化演算を用いて複数のパリティビットを計算し、このとき、前記パリティビットの第１パリティビットは偶数パリティを用いて計算し、前記パリティビットの第２パリティビットは奇数パリティを用いて計算し、前記複数の符号化ビットは前記データビットと前記計算されたパリティビットを含むように構成されてもよい。
【００１４】
前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを減少させるために前記複数の符号化ビットを再配置するように構成されてもよい。
【００１５】
前記複数の符号化ビットは、先頭の部分にある多数の前記複数の符号化データビットを前記符号化ビットの最後のビット以降に移動させることにより再配置されてもよい。
【００１６】
前記ハミングコード符号化演算はＨＣ（１２７，１２０）に対応し、先頭の部分にある多数の前記複数の符号化ビットは３２ビットを含んでいてもよい。
【００１７】
本発明の一実施形態に係るデコーダは、複数のデータビットと複数のパリティビットから構成された複数の符号化ビットを受信するように構成された入力部と、複数のハミングコード符号化ビットを生成するために受信された符号化ビットを修正し、複数の復号化ビットを生成するためにハミングコード復号化演算を用いて前記ハミングコード符号化ビットを復号化するように構成されたプロセッサと、前記複数の復号化ビットを出力するように構成された出力部と、を備え、このとき、前記受信された複数の符号化ビットは、標準ハミングコードに対応する符号化ビットと比較して減少された長さの連続した同一値を有する。
【００１８】
前記プロセッサは、先頭の部分にある多数の符号化データビットを前記符号化ビットの最後のビット以降に移動させて前記複数の受信された符号化ビットを再配置することにより前記受信された符号化ビットを修正するように構成されてもよい。
【００１９】
前記プロセッサは、前記パリティビットのパリティビット値をトグルさせることにより前記受信された符号化ビットを修正するように構成されてもよい。
【００２０】
本発明の一実施形態に係る通信システムは、データソースと、直列リンクと、前記データソースと前記直列リンクとの間に連結され、前記データソースから複数のビットを受信するように構成された入力部と、複数の符号化ビットを生成するためにハミングコード符号化演算を用いてビットを符号化するように構成されたプロセッサと、前記複数の符号化ビットを前記直列リンクに出力するように構成された出力部と、を有する。ここで、前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを標準ハミングコードに対応する符号化ビットと比較して減少させるように構成される。
【００２１】
前記プロセッサは、前記複数のデータビットに対してハミングコード符号化演算を用いて複数のパリティビットを計算し、このとき、前記パリティビットの第１パリティビットは偶数パリティを用いて計算し、前記パリティビットの第２パリティビットは奇数パリティを用いて計算し、前記複数の符号化ビットは前記データビットと前記計算されたパリティビットを含むように構成されてもよい。
【００２２】
前記プロセッサは、前記複数の符号化ビットの連続した同一値の最大の長さを減少させるために、先頭の部分にある多数の前記複数の符号化ビットを前記符号化ビットの最後のビット以降に移動させることにより前記複数の符号化ビットを再配置するように構成されてもよい。
【図面の簡単な説明】
【００２３】
本明細書と一緒に添付された図面は本発明の実施形態を示し、発明の詳細な説明と共に本発明の原理を説明する役割を果たす。
【図１】入力データを受信し、ハミングコード符号化されたデータを生成するように構成された構成要素を示す概略的ブロック図である。
【図２】７個のパリティビット（または、ＨＣ（１２７，１２０））による１２０個のデータビットのハミングコード符号化を概略的に示す。
【図３】本発明の一実施形態に係る修正されたハミングコードを用いて符号化したデータを概略的に示す。
【図４】本発明の一実施形態に係る、修正されたハミングコードを用いてデータを符号化するように構成されたシステムを示すブロック図である。
【図５】本発明の一実施形態に係るデータ符号化方法のフローチャートである。
【図６】本発明の一実施形態に係る、修正されたハミングコードを用いてデータを復号化するように構成されたシステムを示すブロック図である。
【図７】本発明の一実施形態に係るデータ復号化方法のフローチャートである。
【図８Ａ】本発明の追加的な実施形態に係る、修正されたハミングコードを用いて符号化したデータを概略的に示す。
【図８Ｂ】本発明の追加的な実施形態に係る、修正されたハミングコードを用いて符号化したデータを概略的に示す。
【図９】本発明の追加的な実施形態に係る、修正されたハミングコードを用いてデータを符号化するように構成されたシステムを示すブロック図である。
【図１０】本発明の他の実施形態に係るデータ符号化方法のフローチャートである。
【図１１】本発明の一実施形態に係る、修正されたハミングコード符号化ビットを出力するように構成された送信機を示す概略的なブロック図である。
【図１２】本発明の一実施形態により入力データから修正されたハミングコード符号化ビットを計算する方法を示すフローチャートである。
【図１３】本発明の一実施形態に係る修正されたハミングコード符号化ビットを受信するように構成された受信機を示す概略的ブロック図である。
【図１４】本発明の一実施形態に係る修正されたハミングコードにおいてビットを符号化する方法を示すフローチャートである。
【発明を実施するための形態】
【００２４】
関連出願に対する相互参照
本特許出願は２０１３年１０月３１日付けで出願され、タイトルが「最大遷移ハミングコード（Ｍａｘｉｍａｌ Ｔｒａｎｓｉｔｉｏｎ Ｈａｍｍｉｎｇ Ｃｏｄｅｓ）」である米国仮出願第６１/８９８，４１５号に対する優先権を主張し、これに伴う利益を受けることを希望し、前記出願の全体的な内容は本明細書に参照として取り込まれている。
【００２５】
以下の詳細な説明においては、本発明の実施形態の特定の例のみを説明し、これを例示を通じて記述する。当該分野の通常の技術者であれば理解できるように、本発明は種々の他の形態に実現可能であり、本明細書に開示されている実施形態に制限されるものと考えられてはならない。同じ図面符号は、明細書全体に亘って同じ要素を示す。
【００２６】
本発明の実施形態の側面は、通信システムにおいてデジタルデータの連続した同一値の長さを減少させて最小化させることのできるシステムおよび方法に関するものである。
【００２７】
デジタル通信において、送信機と受信機はクロック（ｃｌｏｃｋ）修復またはクロックデータ修復（ｃｌｏｃｋ−ｄａｔａ ｒｅｃｏｖｅｒｙ:ＣＤＲ）過程を用いて同期化することができる。ＣＤＲ過程を使用する受信機は、一般に、電圧レベル間の遷移時間を探知することにより作動し、受信機のクロックを、探知された遷移に基づいて位相整列（ｐｈａｓｅ−ａｌｉｇｎ）する。
【００２８】
しかしながら、受信された信号が過度に長い長さの連続した同一値を含む場合（例えば、同じ電圧レベルを有する長いデータシンボルのシーケンス）、このようなＣＤＲ過程は、受信された信号内の遷移の個数が不十分であるため失敗することがあり、これは、クロックの修復において問題を引き起こすことがある。
【００２９】
また、通常のデータ通信においては、送信機と受信機との間の伝送上のエラーを、ビット列を符号化することにより探知して訂正することができる。このようなコーディング技術の一つはハミングコード（Ｈａｍｍｉｎｇ Ｃｏｄｅ:ＨＣ）と呼ばれ、通信ストリーム内に複数のパリティビットを含むことにより（または、インタリーブを通じて）、複数のデータビットに対する１ビットのエラー探知および訂正を提供する。標準的なハミングコードシステムにおいては、これらのパリティビットがデータビット内において混じり合う。
【００３０】
図１は、ハミングコード符号化されたデータを計算するように構成された装置１０を示す概略的なブロック図である。前記装置１０は、データソースに接続された入力を通じてデータビットを受信するように構成されたパリティ生成器１２およびマルチプレクサ１４を備える。前記パリティ生成器１２は、データビットに対するハミングコード符号化演算を用いてパリティビットを計算し、前記マルチプレクサ１４は、生成されたパリティビットを、受信されたデータビットと結合してハミングコード符号化データを生成する。前記パリティ生成器１２は、偶数パリティ生成器または奇数パリティ生成器であってもよい。前記マルチプレクサ１４は、例えば、前記ハミングコード符号化データを出力装置（例えば、直列リンクに接続された直列通信装置）に出力する前に、前記生成されたパリティビットとデータビットを保存するように構成されたバッファであってもよい。
【００３１】
パリティビットの個数（Ｍ）は、ビット列内のデータビットの個数（Ｎ）に応じて異なる。特に、Ｎ個のデータビットに対してパリティビットの個数（Ｍ）は、下記を満たす:
【００３２】
【数１】
2015089132.tif 000003
【００３３】
図２は、７個のパリティビット（ＨＣ（１２７，１２０）で表わされる）を用いた１２０個のデータビットの符号化を示す。図２に示すように、７個のパリティビットｐｊ（ここで、ｊ＝１，２，．．．，７）は、１２０個のデータビットｄｋ（ここで、ｋ＝１，２，．．．，１２０）の間に混ざり合う。特に、標準的ハミングコードにおいて、パリティビットは２の累乗の位置にある。例えば、図２に示すように、標準（１２７，１２０）ハミングコード２０においてパリティビットは１、２、４、８、１６、３２および６４の位置にある。トグル（ｔｏｇｇｌｅ）ビット、Ｔ（または、ｂＴ）もまた最尾に含まれ、このとき、トグルビットは最後のビットの逆となる。例えば、ＨＣ（１２７，１２０）において、ｄ１２０＝０である場合、Ｔ＝１であり、ｄ１２０＝１である場合、ｂＴ＝０である。
【００３４】
ハミングコード符号化動作において、それぞれのパリティビットはデータビットの特定の集合に対するＸＯＲ演算に基づいて計算される。例えば、ｐ１は、次のようにビット列内のそれぞれの全てのビットに対するＸＯＲ演算から計算される。
【００３５】
【数２】
2015089132.tif 000004
【００３６】
p２を求めるために、２つのビットを維持し、２つのビットを除去することにより類似のＸＯＲ演算が行われる。
【００３７】
【数３】
2015089132.tif 000005
【００３８】
他のパリティビットも類似の方式により求められる。
【００３９】
一部の場合には、ハミングコードに符号化されたデータの伝送の結果、非常に長い連続した同一値が現れる。例えば、偶数パリティを使用するＨＣ（１２７，１２０）において、ｋ＝１，２，．．．，１２０に対してｄｋ＝０である場合、ｊ＝１，２，．．．，７に対してｐｊ＝０となる。したがって、偶数パリティを使用するこのシーケンスは、１２７個の０の値が連続して現れる（このとき、トグルビットｂＴは、中間介入値１を提供する）。また、前フレームのトグルビットが０である場合、連続した同一値の長さは１２８になる筈である。奇数パリティを使用するＨＣ（１２７，１２０）の他の例において、ｋ＝１，２，．．．，１１９に対してｄｋ＝０であり、ｄ１２０＝１であり、このとき、ｊ＝１，２，．．．，７に対してｐｊ＝０である。このため、奇数パリティを使用するこのシーケンスは、１２６個の０の値が連続して現れる（このとき、データビットｄ１２０は、中間介入値１を提供する）。なお、前フレームのトグルビットが０である場合、連続した同一値の長さは１２７になる筈である。
【００４０】
本発明の実施形態は、送信機の出力における遷移の個数が増加したり最大化されたりする（例えば、データシンボルの連続した同一値の最大の長さが減少する）修正されたハミングコード（ＨＣ）に基づく修正されたエラー訂正システムを使用するシステムおよび方法に関するものである。
【００４１】
図３は、本発明の一実施形態に係るＨＣ（１２７，１２０）符号化ビットの修正された出力符号化ビット２２の生成を概略的に示す。図３を参照すると、連続した同一値の長さは、元の符号化ビットを再配置することにより減少される。例えば、元の符号化ビット２０の最初のＬビットは、修正された符号化ビット２２が、元の符号化ビット２０の最後のＫ−Ｌ（Ｋ＝Ｍ＋Ｎは、フレーム内のビットの総数）ビットから始まるようにシーケンスの最後に移動される。Ｋ＝１２７、Ｌ＝３２のハミングコードＨＣ（１２７，１２０）について説明する一般に、Ｌは、ｐＭ−１の以前の位置（ｐＭ−１の位置を含む）にあるビットの個数である。（ＨＣ（１２７，１２０）においてＭ＝７であるため、ｐＭ−１＝ｐ６であり、このときの位置は３２であり、このため、Ｌ＝３２である）。
【００４２】
例えば、奇数パリティを使用する場合、前記パリティビットは、ＨＣ（１２７，１２０）において符号化ビット２０を生成する通常の方法を用いて計算することができる。出力の最初の３２ビットは、修正された出力符号化ビット２２を生成するために最後に移動される（例えば、ｂ１，ｂ２，．．．，ｂ３２，ｂ３３，．．．，ｂ１２７＝＝>ｂ３３，．．．，ｂ１２７，ｂ１，ｂ２，．．．，ｂ３２）。（一部の実施形態において、前記トグルビットは最後の位置にある。）このような技術を用いて、ｋ＝１，２，．．．，１２０に対してｄｋ＝０である場合、最大９５ビットの連続した同一値の長さが達成され（例えば、ｂ３３〜ｂ１２７が９５個の０であるが、ｂＴはｂ１２７の逆、すなわち、ｂＴ＝１である）、これは、１２６ビットである標準ＨＣ（１２７，１２０）の最大の連続した同一値の長さから減少したものである。
【００４３】
図４は、本発明の一実施形態により送信されるデータの連続した同一値の長さを減らすように構成された符号化システムまたは送信システム（または、送信機）１００を示す概略的なブロック図である。前記符号化システム１００は、入力からデータビットを受信し、受信されたデータビットに対してハミングコード符号化動作を行い、ハミングコード符号化出力を生成するように構成されたハミングコーダ１０（例えば、当該技術分野における周知の適切なハミングコーダ）と、前記ハミングコーダからの最初のＬビットの出力を保存するように（例えば、ＨＣ（１２７，１２０）を使用する場合、Ｌ＝３２）構成されたバッファ１０２と、前記バッファ１０２へのハミングコーダ１０の最初のＬビットの出力を選択的に保存し、最初のＬビット後の残りのビットを出力し（例えば、ＨＣ（１２７，１２０）を使用する場合、次の９６ビット）、残っているビットを出力した後に保存されたＬビットを出力するように構成された選別器１０４と、を備える。例えば、前記選別器１０４は、前記バッファ１０２内の出力ビット（例えば、ＨＣ（１２７，１２０）における最初の３２ビット）をいつ保存するか、ハミングコーダ１０から受信したビット（例えば、ＨＣ（１２７，１２０）における次の９５ビット）をいつ直接的に出力するか、且つ、保存されたビットをいつ出力するか（例えば、ＨＣ（１２７，１２０）内の９５ビットを出力した後）を決定するためにハミングコーダ１０から受信されるビットの個数を計数するための（または、クロックサイクルの個数を計数するための）カウンタを備えていてもよい。図４のブロック図における様々な構成要素は、例えば、プロセッサ、特定用途向け集積回路（ＡＳＩＣ）半導体、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）およびこれらの組み合わせ（例えば、ブロック図の他の部分に他の構成要素を用いて）を用いて実現することができる。
【００４４】
図５は、本発明の一実施形態により符号化ビット２０から修正された符号化ビット２２を生成する方法２００を示すフローチャートであり、このとき、前記修正された符号化ビット２２は、減少された長さの連続した同一値を有する。動作２０２において、長さＫを有するハミングコード符号化ビット２０は、受信されたデータビットに対してハミングコード符号化動作を行ったハミングコーダ１０から受信される。符号化ビット２０の最初のＬビットは、後続する動作２０４においてバッファ１０２にバッファリングされる。後続する動作２０６において、符号化ビット２０の次のＫ−Ｌビットは、修正された符号化ビット２２の最初の部分として出力され、動作２０８において、Ｌ個のバッファリングされたビットは、修正された符号化ビット２２の第２の部分として出力される。前記ビットは直接的に出力されてもよく、送信機１００から出力される前に第２バッファに出力されてもよい。
【００４５】
図６は、本発明の一実施形態に係る受信システム（または、受信機）１５０を示すブロック図である。前記受信機１５０は、いかなるビットをバッファ１５２に保存するかを識別し、ハミングデコーダ４０にビットを出力するように構成された選別器１５４を備える。このとき、前記ハミングデコーダ４０は、復号化されたデータを出力する。
【００４６】
図７は、本発明の一実施形態により元の符号化ビット２０を復元するために、修正された符号化ビット２２を受信して復号化する方法２５０を示すフローチャートである。動作２５２において、長さＫの修正された符号化ビットが受信される。受信された修正された符号化ビットの最初のＫ−Ｌビットはバッファ１５２にバッファリングされる。この後、受信された修正された符号化ビットの次のＬビットは動作２５６において出力され、次いで、バッファリングされたＫ−Ｌビットが動作２５８において出力される。出力ビットは、ハミング復号化演算を行うためにハミングデコーダ４０に供給される前にバッファリングされてもよい。
【００４７】
本発明の他の実施形態によれば、連続した同一値の最大の長さは、最後の二つのパリティビットに対して異なるパリティ類型（例えば、奇数対偶数）を用いて減少されたり最小化されたりする。換言すると、Ｍ個のパリティビットのシーケンスを使用するハミングコードにおいて、パリティビットシーケンスの最後（または、最終）のパリティビットpMは第１パリティを用いて計算し、パリティビットシーケンスの最後から２番目（または、最終から２番目）のパリティビットpM−1は、第１パリティとは異なる第２パリティを用いて計算する。図８Ａは、最終パリティビットpM（この場合には、ｐ７）は奇数パリティを用いて計算し（例えば、ｐ７＝ｄ５８からｄ１２０までのビットのＸＯＲ演算結果に１を加算する、より簡潔には、
【００４８】
【数４】
2015089132.tif 000006
【００４９】
）、最後から２番目のパリティビットpM−1（この場合には、ｐ６）は、偶数パリティを用いて計算する（例えば、ｐ６＝ｄ２７からｄ５７までのビットとｄ８９からｄ１２０までのビットのＸＯＲ演算結果、より簡潔に、ｐ６＝ＸＯＲ（ｄ２７:ｄ５７、ｄ８９:ｄ１２０））本発明の一実施形態に係るＨＣ（１２７，１２０）符号化ビットの修正された出力符号化ビット２４を例示する構成図である。修正された符号化ビットのパリティビットを偶数および奇数パリティを併用して計算することにより、９４ビットの連続した同一値の最大の長さが達成される。
【００５０】
図８（Ｂ）は、パリティビットのシーケンスの最終パリティビットｐＭ（この場合には、ｐ７）は偶数パリティを用いて計算し（例えば、ｐ７＝ＸＯＲ（ｄ５８:ｄ１２０））、パリティビットの最後から２番目のパリティビットｐＭ−１（この場合には、ｐ６）は奇数パリティを用いて計算する（例えば、
【００５１】
【数５】
2015089132.tif 000007
【００５２】
）本発明の他の実施形態に係るＨＣ（１２７，１２０）符号化ビットの修正された出力符号化ビット２４を例示する構成図である。偶数および奇数パリティを併用して修正された符号化ビットのパリティビットシーケンスを計算することにより、９４ビットの連続した同一値の最大の長さが達成される。
【００５３】
本発明の実施形態によれば、パリティビットシーケンスの他のパリティビットｐ１〜ｐＭ−２（例えば、ｐ１〜ｐ５）は、偶数または奇数のパリティを有する。パリティビットｐ１〜ｐＭ−２の他のパリティビットは、異なる（偶数または奇数）パリティを用いて計算することができる。
【００５４】
図９は、本発明の一実施形態により修正されたハミングコード符号化ビット２４または２６を出力するように構成された送信機３００を示す概略的なブロック図である。前記システム３００は、修正されたハミングコードを計算するように構成された修正されたハミングコーダ３１０を備え、前記修正されたハミングコーダ３１０は、パリティ選別器１６と、第１パリティ生成器１２ａと、第２パリティ生成器１２ｂおよびマルチプレクサ１４を備える。一実施形態において、前記第１パリティ生成器および第２パリティ生成器は、それぞれ偶数パリティと奇数パリティを計算するように（または、ハミングコード符号化演算を行うように）構成される。前記パリティ選別器１６は、特定のパリティビットを計算するために必要なデータビットにより入力データのデータビットを識別してこれを前記第１パリティ生成器および第２パリティ生成器に供給する。
【００５５】
例えば、パリティビットｐ７は奇数パリティを用いて計算し、パリティビットｐ６は偶数パリティを用いて計算する実施形態において、前記パリティ選別器１６は、パリティビットｐ７を計算するためにデータビットｄ５８:ｄ１２０を第２パリティ生成器１２ｂ（奇数パリティを計算するように構成される）に供給し、パリティビットｐ６を計算するためにデータビットｄ２７:ｄ５７とｄ８９:ｄ１２０を第１パリティ生成器１２ａに供給する。
【００５６】
図１０は、入力データから修正されたハミングコード符号化ビットを計算するための方法を示すフローチャートである。動作４０２において、（例えば、直列リンクを介して送信されるデータを出力する装置または構成要素から）データ２０が受信される。動作４０４において、パリティビットを計算するためにビットの群が識別される。例えば、ＨＣ（１２７，１２０）において、ビットｄ５８:ｄ１２０はパリティビットｐ７に関連しているものとして識別され、データビットｄ２７:ｄ５７およびｄ８９:ｄ１２０はパリティビットｐ６を計算するために用いられたものとして識別される。動作４０６において、特定のパリティビットのパリティは偶数または奇数であると識別される。例えば、一実施形態において、ｐ６は偶数パリティを用いて計算し、ｐ７は奇数パリティを用いて計算する。特定のパリティビットに対して用いられる識別されたパリティに基づいて、前記パリティビットに対応するデータビットは動作４０８において偶数パリティを用い、または、動作４１０において奇数パリティを用いて計算する。例えば、パリティビットｐ６を偶数パリティを用いて計算する場合、データビットｄ２７:ｄ５７およびｄ８９:ｄ１２０が動作４０８においてパリティビットｐ６を計算するために用いられる。動作４１２において、計算されたパリティビットは、出力される修正されたハミングコード符号化ビット２４または２６内においてデータビット２０と結合（または、インタリーブ）される（例えば、パリティビットｐａは、２ａ−１の位置にある）。
【００５７】
図１１は、本発明の一実施形態に係る修正されたハミングコード符号化ビット２４または２６を出力するように構成された送信機３３０を示す概略的なブロック図である。前記システム３３０は、標準的なハミングコード符号化演算を行うように構成された標準ハミングコーダ１０を備え（例えば、入力データビットの集合ｄが与えられたとき、Ｍ個のパリティビットの集合ｐを計算する）、この演算において、最後の二つのパリティビットｐＭ−１およびｐＭは同じパリティを用いて計算する（例えば、二つのパリティビットを両方とも偶数パリティを用いて計算したり、奇数パリティを用いて計算する）。前記システム３３０は、パリティビット修正器３３２（または、送信パリティビット修正器）をさらに備え、前記修正器は、ｐＭ−１および１のＸＯＲを計算することにより（例えば、最後から２番目のパリティビットを
【００５８】
【数６】
2015089132.tif 000008
【００５９】
に設定する）、最後から２番目のパリティビットｐＭ−１を修正するように（例えば、偶数から奇数に、または、奇数から偶数に）構成される。次いで、修正されたビット列は、修正されたハミングコード符号化ビット２４または２６として出力される。
【００６０】
本発明の他の実施形態によれば、前記パリティビット修正器３３２は、ｐＭおよび１のＸＯＲを計算することにより（例えば、最終パリティビットを
【００６１】
【数７】
2015089132.tif 000009
【００６２】
に設定する）、最終パリティビットｐＭを修正するように構成される。
【００６３】
図１２は、本発明の一実施形態により入力データから符号化された修正されたハミングコード符号化ビットを計算する方法４３０を示すフローチャートである。動作４３２において、Ｍ個のパリティビットｐおよびＮ個のデータビットｄを含む長さＫのハミングコード符号化ビット列が受信される。動作４３４において、最後から２番目のパリティビットｐＭ−１が識別され、動作４３６において、最後から２番目のパリティビットｐＭ−１が逆転されるか、あるいは、
【００６４】
【数８】
2015089132.tif 000010
【００６５】
に置き換えられる（換言すると、その値がトグルされるか、あるいは、０から１にまたは１から０に逆転される）。次いで、逆転された最後から２番目のパリティビットを有する修正されたハミングコード符号化ビットは、修正された符号化ビット２４または２６として出力される。
【００６６】
本発明の他の実施形態において、前記最終パリティビットｐＭが動作４３４において識別され、動作４３６において、前記最終パリティビットｐＭが逆転されるか、あるいは、
【００６７】
【数９】
2015089132.tif 000011
【００６８】
に置き換えられる。
【００６９】
図１３は、本発明の一実施形態に係る受信機を示すブロック図である。図１３を参照すると、前記受信機システム３５０は、ｐＭ−１および１のＸＯＲを計算することにより（例えば、最後から２番目のパリティビットを
【００７０】
【数１０】
2015089132.tif 000012
【００７１】
に設定する）、最後から２番目のパリティビットｐＭ−１を修正するように（例えば、偶数から奇数に、または、奇数から偶数に）構成された受信パリティビット修正器３５２を備える。次いで、前記受信パリティビット修正器３５２は、ビット列を複号化して、復号化されたデータを生成する標準ハミングデコーダ４０にビット列を供給する。一部の実施形態において、最後から２番目のパリティビットｐＭ−１の代わりに最終パリティｐＭが逆転される。
【００７２】
図１４は、本発明の一実施形態により修正されたハミングコード内のビットを復号化する方法４５０を示すフローチャートである。動作４５２において、長さＫの修正されたハミングコード符号化ビット列が受信される。最後から２番目のパリティビットｐＭ−１は動作４５４において識別されて逆転されるか、あるいは、作動４５６におけるｐＭ−１および１のＸＯＲ値（例えば、最後から２番目のパリティビットを
【００７３】
【数１１】
2015089132.tif 000013
【００７４】
に設定する）に置き換えられる。このような動作の結果は、標準ハミングデコーダに供給される標準にハミングコード符号化ビット列２４または２６を修復することである。一部の実施形態において、最後から２番目のパリティビットｐＭ−１の代わりに最終パリティｐＭが修正される。
【００７５】
上記本発明によれば、デジタルデータの連続した同一値の長さを減少させたり最少化させたりするためのシステムおよび方法を提供することができる。一部の実施形態において、修正されたハミングコード符号化演算がデジタルデータに適用される。
【００７６】
奇数および偶数のパリティを混合することにより連続した同一値の長さが減少されることに対する証明は、本出願と共に米国特許庁に提出された付録「ハミングコード内における奇数および偶数のパリティの混合による連続した同一値の長さの減少」から見られる。前記付録は、全体的に参照として本明細書に取り込まれる。
【００７７】
本発明の実施形態は当該分野における通常の技術を有する者が認識できる様々な形態に実現され、この明細書において用いられた用語「プロセッサ」は、命令語がプロセッサに接続されたメモリに保存されるプログラミングされた汎用プロセッサ（例えば、アーム（ＡＲＭ）プロセッサ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）およびＡＳＩＣ注文型半導体などの記述された動作を行ういかなる演算装置を指し示す。本発明の実施形態は、直列通信コントローラ（例えば、汎用シリアルバスまたはＵＳＢコントローラ）、グラフィック処理装置（ｇｒａｐｈｉｃａｌ ｐｒｏｃｅｓｓｉｎｇ ｕｎｉｔ:ＧＰＵ）、パネル内インターフェースおよびハミングコード符号化信号を使用するその他のハードウェアまたはソフトウェアシステムに取り込まれる。
【００７８】
本発明を特定の実施形態と結び付けて記述したが、本発明が開示された実施形態にのみ制限されるわけではなく、逆に、本発明は、添付の請求項の精神と範囲内において含まれる様々な修正と均等な配置を含むように意図されたものと理解するべきである。
【図１】
2015089132.tif 000014
【図２】
2015089132.tif 000015
【図３】
2015089132.tif 000016
【図４】
2015089132.tif 000017
【図５】
2015089132.tif 000018
【図６】
2015089132.tif 000019
【図７】
2015089132.tif 000020
【図８Ａ】
2015089132.tif 000021
【図８Ｂ】
2015089132.tif 000022
【図９】
2015089132.tif 000023
【図１０】
2015089132.tif 000024
【図１１】
2015089132.tif 000025
【図１２】
2015089132.tif 000026
【図１３】
2015089132.tif 000027
【図１４】
2015089132.tif 000028