(57)【特許請求の範囲】
【請求項１】
誤り訂正符号を符号化する方法であって、
パリティ検査行列の部分行列を使用して、メッセージ・ビット・ベクトルから中間パリティ・ビット・ベクトルを算出するステップと、
複数の異なる符号のためのパリティビットを算出するように構成されている論理ゲートツリーを備える、固定されたハードウェアリソースを使用して、前記中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出するステップであって、前記符号の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分が、前記符号の別の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分と共用されるように、前記ハードウェアリソースの配置が、共通部分式の解法から決定される、ステップと、
を含む方法。
【請求項２】
前記パリティ検査行列は、前記部分行列を形成するように分割され、転置される、請求項１に記載の方法。
【請求項３】
前記中間パリティ・ビット・ベクトルを算出する前記ステップに使用される前記部分行列は、前記パリティ検査行列の第１の部分行列を含み、前記共通部分式の解法は、前記パリティ検査行列の第２の部分行列の逆を使用して決定される、請求項１に記載の方法。
【請求項４】
前記パリティ検査行列は、前記第２の部分行列を形成するように分割され、転置される、請求項３に記載の方法。
【請求項５】
ハードウェアリソースが、前記複数の異なる符号の異なるパリティビットの間で共用される、請求項１に記載の方法。
【請求項６】
前記ハードウェアリソースは、論理ＸＯＲゲートのアレイを含む、請求項１に記載の方法。
【請求項７】
前記ハードウェアリソースの前記共用される部分は、共用されるＸＯＲ論理ゲートを含む、請求項６に記載の方法。
【請求項８】
前記ハードウェアリソースは、前記パリティ・ビット・ベクトルの前記パリティビットの各々について１つずつ、マルチプレクサを含む、請求項６に記載の方法。
【請求項９】
前記複数の異なる符号は、少なくとも、前記符号のブロック長または符号化率において異なる、請求項１に記載の方法。
【請求項１０】
前記パリティ・ビット・ベクトルおよび前記メッセージ・ビット・ベクトルから、誤り訂正符号に従って符号語を生成する、請求項１に記載の方法。
【請求項１１】
前記誤り訂正符号は、低密度パリティ検査（ＬＤＰＣ）符号である、請求項１０に記載の方法。
【請求項１２】
誤り訂正符号化のための符号器であって、
メッセージ・ビット・ベクトルを受け取り、前記メッセージ・ビット・ベクトルから、パリティ検査行列の部分行列に基づいて算出される中間パリティ・ビット・ベクトルを算出するように構成された第１のハードウェアリソースと、
前記中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出するように構成された第２のハードウェアリソースであって、前記第２のハードウェアリソースは、複数の異なる符号のためのパリティビットを算出するように構成されている論理ゲートツリーを含み、前記符号の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分が、前記符号の別の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分と共用されるように、共有部分式の解法から前記ハードウェアリソースの配置が決定される、前記第２のハードウェアリソースと、
を含む符号器。
【請求項１３】
前記パリティ検査行列は、前記部分行列を形成するように分割され、転置される、請求項１２に記載の符号器。
【請求項１４】
前記部分行列は前記パリティ検査行列の第１の部分行列を含み、前記共通部分式の解は、前記パリティ検査行列の第２の部分行列の逆に基づくものである、請求項１２に記載の符号器。
【請求項１５】
前記パリティ検査行列は、前記第２の部分行列を形成するように分割され、転置される、請求項１２に記載の符号器。
【請求項１６】
前記ハードウェアリソースの部分が、前記複数の異なる符号の異なるパリティビットの間で共用される、請求項１２に記載の符号器。
【請求項１７】
前記第２のハードウェアリソースは、論理ＸＯＲゲートのアレイを含む、請求項１２に記載の符号器。
【請求項１８】
前記第２のハードウェアリソースの前記共用される部分は、共用されるＸＯＲ論理ゲートを含む、請求項１７に記載の符号器。
【請求項１９】
前記第２のハードウェアリソースは、前記パリティ・ビット・ベクトルの前記パリティビットの各々について１つずつ、マルチプレクサを含む、請求項１７に記載の符号器。
【請求項２０】
前記複数の異なる符号は、少なくとも、前記符号のブロック長または符号化率において異なる、請求項１２に記載の符号器。
【請求項２１】
前記パリティ・ビット・ベクトルおよび前記メッセージ・ビット・ベクトルから、誤り訂正符号に従って符号語を生成するように構成されている、請求項１２に記載の符号器。
【請求項２２】
前記誤り訂正符号は、低密度パリティ検査（ＬＤＰＣ）符号である、請求項２１に記載の符号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正符号化および復号の分野に関する。より詳細には、低密度パリティ検査（ＬＤＰＣ）符号およびＬＤＰＣ復号器に関する。
【背景技術】
【０００２】
ディジタルデータを送信するプロセスは、データに誤りを導入する可能性がある。その結果、受信データは送信データと異なるものになりうる。そうした誤りは、典型的には、伝送路に存在する雑音によって引き起こされる。誤りの量は、一般に、存在する雑音の量に対する送信信号強度に関連する。誤り訂正符号化は、送信前にデータに冗長性を挿入するための技法である。受信時に、この冗長性は、伝送プロセスの間に導入された誤りを訂正するために使用される。
【０００３】
ブロック符号化は、送信されるべきディジタルデータが固定サイズのメッセージに分割される誤り訂正符号化の１種である。送信前に、各メッセージは符号器によって符号語（「ブロック」ともいう）に符号化される。符号化プロセスの間に、符号語がメッセージより大きくなるように、パリティデータと称される冗長性が挿入される。各符号語は、メッセージビットおよびパリティビットを含む。符号語は各々、ｎビットからなるものとする。ｎビットのある特定のパターンのみが有効な符号語であり、残りのパターンは無効である。符号語は次いで送信され、送信は符号語を破損させる可能性もある。受信すると、復号器は、受信された、破損した可能性のある符号語から元のメッセージを推論しようと試みる。
【０００４】
生成行列を使用して、符号化プロセスにおいてメッセージを有効な符号語に符号化することができる。受信時には、パリティ検査行列を使用して復号プロセスにおいて誤りベクトルを生成することができ、誤りベクトルは受信された符号語における誤りの存在を指示する。
【０００５】
線形ブロック誤り訂正符号は、有効な符号語の任意の線形結合も有効な符号語とする誤り訂正符号である。低密度パリティ検査（ＬＤＰＣ）符号は、疎なパリティ検査行列を特徴とする線形ブロック誤り訂正符号のサブカテゴリである。これは、パリティ検査行列が主に、０と比較的少数の１とからなることを意味する。ＬＤＰＣ符号は最初１９６０年代に導入されたが、最近になってますます注目されている。これは、少なくとも一部は、ＬＤＰＣ符号をハードウェア実装に適するものとする、復号における固有の並列性によるものであり、また、ＬＤＰＣ符号が様々な用途において使用されることを可能にする、ＬＤＰＣ符号の設計における柔軟性によるものである。いくつかの通信規格が、様々なブロック長および符号化率を有するＬＤＰＣ符号集合を使用する。符号化率は、各ブロックに含まれる非冗長データの部分として定義することができる。
【０００６】
ＬＤＰＣ符号の生成行列は一般に疎ではない。これは、ＬＤＰＣ符号の符号化プロセスは高複雑度を有しうることを意味する。符号化複雑度を低減するために、いくつかの符号化方式は、符号化プロセスの間にパリティ検査行列を使用して符号語を算出する。これが可能なのは、パリティ検査行列が、個々のＬＤＰＣ符号ごとのパリティ検査行列は当該符号の生成行列から導出することができるという点において、生成行列に関連するからである。パリティ検査行列は、部分行列に分割することができる。符号語ごとのパリティビットは、部分行列を使用してメッセージビットから算出することができる。
【０００７】
いくつかのＬＤＰＣ符号器は後退代入を用いる。この手法は、符号化計算の複雑度を低減することを目指して、パリティ検査部分行列の反転を回避するのに使用される。しかし、後退代入手順の並列化は高複雑度を導入する。また、異なるブロック長および符号化率を有するＬＤＰＣ符号についての後退代入手順を実施するために、少なくとも、複数の部分行列についての非ゼロの要素（すなわち、コード長別、符号化率別に１つずつ）が記憶される必要もあり、これには大容量のメモリを必要とする。記憶要件に加えて、これらの手順の実装は、複雑なハードウェアを必要とする傾向がある。
【発明の概要】
【課題を解決するための手段】
【０００８】
本発明は、低密度誤り訂正符号のためのパリティ検査符号器と、符号化方法とを対象とする。一実施形態によれば、誤り訂正符号化のための符号器は、メッセージ・ビット・ベクトルを受け取り、メッセージ・ビット・ベクトルから、パリティ検査行列の部分行列に基づいて算出される中間パリティ・ビット・ベクトルを算出するように構成された第１のハードウェアリソースと、中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出するように構成された第２のハードウェアリソースであって、複数の異なる符号のためのパリティビットを算出するように構成されており、符号の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分が、符号の別の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分と共用される、第２のハードウェアリソースと、を含む。
【０００９】
別の実施形態によれば、誤り訂正符号を符号化する方法は、パリティ検査行列の部分行列を使用してメッセージ・ビット・ベクトルから中間パリティ・ビット・ベクトルを算出することと、複数の異なる符号のためのパリティビットを算出するように構成されている固定されたハードウェアリソースを使用して、中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出することであって、符号の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分が、符号の別の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分と共用される、パリティ・ビット・ベクトルを算出することと、を含む方法。
【図面の簡単な説明】
【００１０】
本発明は、本発明の特定の例示的実施形態に関連して説明され、図面がしかるべく参照される。
【００１１】
【図１】本発明の実施形態を実装することができる通信システムを示す図である。
【００１２】
【図２】本発明の一実施形態によるパリティ検査符号器を示す図である。
【００１３】
【図３】本発明の一実施形態によるパリティ検査行列の分割を示す図である。
【００１４】
【図４】本発明の一実施形態によるパリティ検査ビットを算出する方法を示す図である。
【００１５】
【図５】本発明の一実施形態による、特定の誤り訂正符号についてのパリティ検査部分行列の転置の逆を示す図である。
【００１６】
【図６】本発明の一実施形態による、代替の誤り訂正符号についてのパリティ検査部分行列の転置の逆を示す図である。
【００１７】
【図７】本発明の一実施形態による、異なる誤り訂正符号の間で共用されるＸＯＲハードウェアリソースを示す図である。
【００１８】
【図８】本発明の一実施形態による、中間パリティ・ビット・ベクトルを生成するための例示的ハードウェア実装形態を示す図である。
【００１９】
【図９】本発明の一実施形態による、パリティ・ビット・ベクトルを生成するための例示的ハードウェア実装形態を示す図である。
【００２０】
【図１０】本発明の実施形態によるハードウェアリソース共用を適用することのできる４つの誤り訂正符号の各々のためのパリティビットを生成するための例示的ハードウェア実装形態を示す図である。
【００２１】
【図１１】本発明の一実施形態による、ハードウェアリソースが４つの異なる誤り訂正符号の間で共用される例示的ハードウェア実装形態を示す図である。
【００２２】
【図１２】本発明の一実施形態による、ハードウェアリソースが異なる誤り訂正符号の異なるパリティビットの間で共用される例示的ハードウェア実装形態を示す図である。
【発明を実施するための形態】
【００２３】
本発明は、符号器の記憶要件およびハードウェア複雑度要件を低減するために１組の誤り訂正符号の個々の特徴を利用する。本発明の実施形態は、同じ符号器ハードウェアが異なるブロック長および符号化率のための符号化を行うことを可能にする。よって、符号器のハードウェアリソースを、符号器によってサポートされる異なるブロック長および符号化率の間で共用することができる。本発明の実施形態は、低密度パリティ検査（ＬＤＰＣ）符号を符号化するのに有用である。
【００２４】
図１に、本発明の実施形態を実装することのできる通信システム１００を示す。図１に示すように、送信されるべきディジタルデータ１０２が送信機１０４に入力される。送信機１０４は、符号器１０６と変調器１０８とを含むことができる。符号器１０６は、例えば、データ１０２を固定サイズのメッセージに分割し、各メッセージを符号語に符号化することによって、データの誤り訂正符号化を行う。符号化プロセスの間に、符号語がメッセージより大きくなるように、パリティビットの形で、冗長性を挿入することができる。
【００２５】
変調器１０８は、次いで、符号語に従って１つまたは複数の搬送波信号を変調することによって、符号語を送信のために準備することができる。一例として、変調は、直交周波数分割多重化（ＯＦＤＭ）に従って行うこともできる。変調され、符号化された各信号を、次いで、通信路１１０を介して送信することができる。通信路１１０は、例えば無線通信路とすることができ、無線通信路は、例えば、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）の一部とすることができる。
【００２６】
受信機１１２が通信路１１０から送信信号を受信する。受信機１１２は、復調器１１４と復号器１１６とを含むことができる。復調器１１４は、符号語を再構築するように受信信号を復調する。符号語は、次いで、元のデータ１０２を再構築するために復号器１１６によって復号することができる。復号器１１６は通信プロセスによって導入されるある一定の誤りを訂正することができるが、復号器１１２から出力されるデータ１１８は、残存する未訂正の誤りにより元のデータ１０２と異なる可能性がある。
【００２７】
図２に、本発明の一実施形態によるパリティ検査符号器２００を示す。パリティ検査符号器２００は、図１の符号器１０６に含めることができる。パリティ検査符号器２００は、情報ビットベクトルｓを受け取る。情報ビットベクトルｓはメッセージビットを含む。パリティ検査符号器２００は、メッセージビットを使用してパリティ・ビット・ベクトルｐを生成する。パリティ・ビット・ベクトルｐは、符号器２００に入力されるメッセージビットに対応するパリティビットを含む。図１の符号器１０６は、パリティ検査符号器２００の機能以外の機能を果たすことができる。例えば、符号器１０６は、パリティ検査ビットを算出する前にメッセージビットにビットが追加されるパディングを行うことができる。符号器１０６は、パリティ検査ビットを算出した後で、パンクチャリングおよび繰り返しを行うことができる。パディング、パンクチャリング、および繰り返しは、例えば、ＩＥＥＥ８０２．１１ｎ／ａｃの各規格に従って行うことができる。パリティ検査符号器２００を含む符号器１０６の部分は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、または他のタイプの回路を使用して、ハードウェアとして実装することができる。
【００２８】
ＬＤＰＣ符号化による符号語のパリティビットは、以下の式（１）によって定義することができる。
ｐ＝ｓ・Ｈ１Ｔ・（Ｈ２Ｔ）−１    （１）
【００２９】
式中、ｓは情報ビットベクトルであり、ｐはパリティ・ビット・ベクトルであり、Ｈ１ＴおよびＨ２Ｔは転置されたＨ１およびＨ２であり、Ｈ１およびＨ２は、符号のパリティ検査行列Ｈの２つの部分行列である。
【００３０】
よって、パリティ検査行列Ｈは、２つの部分行列Ｈ１およびＨ２に分割することができ、部分行列Ｈ１およびＨ２は、行列Ｈ１ＴおよびＨ２Ｔを形成するように転置される。図３に、本発明の一実施形態による、パリティ検査行列Ｈの部分行列Ｈ１およびＨ２への分割を示す。
【００３１】
二段階符号化アルゴリズムを使用して、式（１）を、以下の式（２）および式（３）に従って実施することができる。
ｐ１＝ｓ・Ｈ１Ｔ    （２）
ｐ＝ｐ１・（Ｈ２Ｔ）−１    （３）
【００３２】
式中、ｐ１は中間パリティ・ビット・ベクトルであり、（Ｈ２Ｔ）−１は部分行列Ｈ２Ｔの逆である。
【００３３】
図４に、本発明の一実施形態による、パリティ検査ビットを算出する方法４００を示す。方法４００は、図２のパリティ検査符号器２００によって行うことができる。ステップ４０２で、中間パリティ・ビット・ベクトルｐ１が算出される。中間パリティ・ビット・ベクトルｐ１は、ステップ３０２で、上記式（２）に従って算出することができる。ステップ４０４で、パリティ・ビット・ベクトルｐが算出される。パリティ・ビット・ベクトルｐは、上記式（３）に従って算出することができる。
【００３４】
ステップ４０２およびステップ４０４は、行ベクトルと２つの固有の行列の乗算を含む。２進符号の場合には、パリティ検査行列も２進である。したがって、式（２）および式（３）は、ＧＦ（２）（すなわち２要素のガロア体）において実施することができ、式（２）および式（３）の計算量は、行列Ｈ１Ｔと行列（Ｈ２Ｔ）−１の両方における１の総数に比例する。部分行列Ｈ１Ｔは疎であり、他方、反転操作のために、逆行列（Ｈ２Ｔ）−１は、一般に、きわめて密である。
【００３５】
Ｈが、ｚ×ｚの巡回部分行列およびｚ×ｚのゼロ部分行列で構成された、擬似巡回（Ｑｕａｓｉ−Ｃｙｃｌｉｃ）（ＱＣ）である場合には、結果として得られる逆行列（Ｈ２Ｔ）−１も、ｚ×ｚの巡回部分行列およびｚ×ｚのゼロ部分行列で構成されるが、（Ｈ２Ｔ）−１はＨ２Ｔ行列より密である。Ｈ１Ｔの密度は低い。何故なら、Ｈ１ＴはＨの部分行列であり、Ｈは疎であるからである。したがって、式（３）の計算は、式（２）の計算よりも複雑である。
【００３６】
異なるブロック長および／または異なる符号化率のいくつかの符号をサポートするシステムにおいては、異なる符号は、それらのパリティ検査行列の列間に共通部分を有しうる。この場合には、（Ｈ２Ｔ）−１部分行列もそれらの列間に共通部分を有しうることが分かっている。特に、以下の２つの特徴がパリティ検査行列の構造によって満たされる場合、すなわち、
【００３７】
すべてのパリティ検査行列が２進およびＱＣであり、
【００３８】
Ｈ２Ｔ部分行列が２重対角構造を有する場合には、
【００３９】
（Ｈ２Ｔ）−１部分行列の列間のオーバーラップは、対応するＨ２Ｔ部分行列の間のオーバーラップに比例することが認められている。これら２つの特徴を有する符号をサポート符号と呼ぶ。
【００４０】
図５に、６４８のブロック長および５／６の符号化率を有する特定のＬＤＰＣ誤り訂正符号のパリティ検査部分行列を示す。図６に、６４８のブロック長および１／２の符号化率を有する第２のＬＤＰＣ誤り訂正符号のパリティ検査部分行列を示す。図５および図６には、第１の符号の（Ｈ２Ｔ）−１部分行列の印の付いた行が、第２の符号の（Ｈ２Ｔ）−１部分行列においてどこで発生するかが示されている。
【００４１】
図４に戻って、ステップ４０２は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、またはベクトル行列乗算を行う他のタイプの回路といった、ハードウェアを用いて実装することができる。
【００４２】
ステップ４０４は、ＸＯＲゲートツリーを使用したハードウェアとして実装することができる。この場合には、サポート符号の（Ｈ２Ｔ）−１部分行列間の共通部分は、これらの符号の符号化を実装するＸＯＲゲートのツリー間の共通部分に対応する。これは部分式問題であり、本発明によって、ハードウェアリソースを共用するのに利用され、符号器ハードウェア要件の低減をもたらす。したがって、ステップ４０４は、共有ＸＯＲリソースを使用して行われる。そうしたＸＯＲリソースは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、または他のタイプの回路として実装することができる。
【００４３】
図７に、本発明の一実施形態による、異なる誤り訂正符号の間で共用されるＸＯＲハードウェアリソース７００を示す。各パリティビットを生成するＸＯＲハードウェアリソースは、ＸＯＲ論理ゲート７０２のアレイ、および１つまたは複数のマルチプレクサ７０４を含む。図７に示すように、中間パリティ・ビット・ベクトルｐ１からのビットは、ＸＯＲ論理ゲート７０２のアレイの入力に適用される。ＸＯＲ論理ゲート７０２の出力はマルチプレクサ７０４の入力に結合されている。マルチプレクサ７０４への選択入力が、マルチプレクサ７０４の入力のうちのどれがマルチプレクサ７０４の出力へ経路指定されるかを制御し、それによって対応するパリティビットを形成する。選択入力値は、符号器が現在実装している、複数の符号のうちの特定の符号に対応する。
【００４４】
例示のために、ハードウェアリソース７００は、１つのパリティビットについて簡略化された形で示されている。ＸＯＲ論理ゲート７０２およびマルチプレクサ７０４の個々の配置は、符号器によって実装されるべきブロック長および符号化率の各々、ならびにそうした符号ごとのパリティ検査部分行列内の１および０の個々の位置に左右されることになる。ハードウェアリソース７００の個々の配置を生成するのに、共通部分式の解法を使用することができる。共通部分式の解法は、サポート符号の対応する（Ｈ２Ｔ）−１部分行列を使用して行うことができる。ハードウェアリソースの個々の配置が決定されると、その配置を固定することができる。ハードウェアリソースが、異なるブロック長および／または異なる符号化率を有する異なる符号を符号化することができるように、入力として適用されるパリティ値およびマルチプレクサへの選択入力が変更されさえすればよい。
【００４５】
式（３）を実装するＸＯＲツリーの列の共通部分は、通信システムによる複数のサポート符号の場合については、これらの符号の各々を符号化する間に共用され、符号器ハードウェア要件の全般的低減がもたらされる。これは、符号器アーキテクチャの複雑度および面積の無視できないほどの減少に寄与する。具体的には、本発明の実施形態は、ＩＥＥＥ規格８０２．１１による符号化をサポートすることができ、よって、複数のサポート符号は、６４８ビット、１２９６ビット、および１９４４ビットの中から選択されるブロック長を有し、１／２、２／３、３／４、および５／６の中から選択される符号化率を有するＬＤＰＣ符号を含むことができる。
【００４６】
説明例として、パリティ検査行列が次式である符号の場合を仮定する。
【数１】
0006472790.tif 000002
【００４７】
行列Ｈは２つの部分行列Ｈ＝［Ｈ１｜Ｈ２］に分割され、式中、
【数２】
0006472790.tif 000003
および
【数３】
0006472790.tif 000004
である。
【００４８】
転置されたＨ１は、
【数４】
0006472790.tif 000005
であるため、中間パリティベクトルｐ１＝［ｐ１（１）  ｐ１（２）  ｐ１（３）］（式（２）によって与えられる）の要素は、次式によって算出される。
【数５】
0006472790.tif 000006
式中、ｓ＝［ｓ１  ｓ２  ｓ３］はメッセージベクトルであり、
【数６】
0006472790.tif 000007
は、排他的論理和（ＸＯＲ）演算を表す。
【００４９】
上記式の可能なハードウェア実装形態が図８に示されており、この実装形態は、各ＸＯＲ演算を２入力ＸＯＲゲートにマップすることによって得られる。よって、図８には、中間パリティ・ビット・ベクトルｐ１を生成するための例示的ハードウェア実装形態が示されている。さらなる論理レベルの最適化が可能であることは明らかであろう。
【００５０】
前述の例に戻って、どのようにして式（３）をハードウェアとして実装することができるかを示す。最初に、転置されたＨ２がガロア体ＧＦ（２）において反転されて、
【数７】
0006472790.tif 000008
が与えられ、続いて、式（３）の行ベクトルと行列の積が評価されて、パリティベクトルｐの要素が与えられる。
【数８】
0006472790.tif 000009
【００５１】
対応するハードウェア実装形態は図９に表されている。よって、図９には、式（３）に従ってパリティ・ビット・ベクトルを生成するための例示的ハードウェア実装形態が示されている。
【００５２】
リソース共用の一例として、４つの符号、すなわち、Ａ、Ｂ、Ｃ、およびＤをサポートするアーキテクチャを考察する。各符号の第１のパリティビットｐｊ（１）、ｊ＝Ａ、Ｂ、Ｃ、Ｄ、を、次式に従って算出されるものとする。
【数９】
0006472790.tif 000010
【００５３】
本例においては、各符号に対応する、反転され転置されたパリティ検査部分行列の各々の第１列を、
【数１０】
0006472790.tif 000011
とすることができ、本明細書で説明するように、共通行を識別することができる。本明細書で説明される設計方法を使用すると、符号ごとに１つずつ、４つの回路が得られ、それらが図１０に示されている。図１０には、４つの異なる誤り訂正符号の各々について式（３）と同様にパリティビットを生成するための例示的ハードウェア実装形態が示されている。
【００５４】
図１０のハードウェア実装形態は、１２個のＸＯＲゲートを必要とする。本発明は、一部の結果を再利用することによってハードウェアを低減する。最初に、パリティビット値を導出する式中の共通部分式を識別する。本例においては、ｐＡ（１）の値をｐＢ（１）の計算においてそれ自体で再利用できることが分かり、以下のように記述することができる。
【数１１】
0006472790.tif 000012
【００５５】
さらに、
【数１２】
0006472790.tif 000013
を定義することにより、ｐＣ（１）およびｐＤ（１）の計算を、
【数１３】
0006472790.tif 000014
として記述することができ、式中、ｐＸ（ｎ）は、符号Ｘの場合についての第ｎのパリティビットを表す。
【００５６】
共通部分式共有を使用する修正式の可能なハードウェア実装形態が、図１１に示されている。本例においては、図１０で必要とされる１２個のゲートと比べて、６個の２入力ＸＯＲゲートさえあればよいことが分かる。よって、図１１には、ハードウェアリソースが４つの異なる誤り訂正符号の間で共用される例示的ハードウェア実装形態が示されている。図１１の回路は、各インスタンスにおける選択の符号のためのパリティビットを生成することができる。
【００５７】
上記の各例において、パリティビットは、別々のＸＯＲツリーによって生成される。ある実施形態においては、ＸＯＲゲートも異なるパリティビット間で共用されうる。以下の例に示すように、同じサポート符号または異なるサポート符号のためのパリティビットを算出する異なるツリー間でＸＯＲゲートを共用することが可能である。
【００５８】
符号Ｂの第３のパリティビットをｐＢ（３）とし、符号Ｃの第６のパリティビットをｐＣ（６）とする。さらに、個々のパリティビットは以下のように算出されるものと仮定する。
【数１４】
0006472790.tif 000015
【００５９】
上記の第１の式は、第２の式において再利用されることに気づく。図１２に、対応するハードウェア部分共用を示す。より詳細には、図１２には、異なる誤り訂正符号の異なるパリティビット間でハードウェアリソースが共用される、例示的ハードウェア実装形態が示されている。
【００６０】
ハードウェアが、異なるパリティビットおよび／または異なる符号のためのＸＯＲツリー間で共用される場合には、図１２に示すように場合ごとの適切な出力ビットを選択するための対応する論理が必要とされる。各符号が異なる長さのものである場合には、一部の選択論理を省くことができる。よって、上記の例において、符号Ｂが３つのパリティしか有しない場合には、第６のパリティビットのための選択論理を省くことができる。
【００６１】
本発明の以上の詳細な説明は、例示のために提供するものであり、網羅的であることも、本発明を開示の実施形態だけに限定することも意図していない。したがって、本発明の範囲は、添付の特許請求の範囲によって定義されるものである。
【図１】
0006472790.tif 000016
【図２】
0006472790.tif 000017
【図３】
0006472790.tif 000018
【図４】
0006472790.tif 000019
【図５】
0006472790.tif 000020
【図６】
0006472790.tif 000021
【図７】
0006472790.tif 000022
【図８】
0006472790.tif 000023
【図９】
0006472790.tif 000024
【図１０】
0006472790.tif 000025
【図１１】
0006472790.tif 000026
【図１２】
0006472790.tif 000027