(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6472790
(24)【登録日】2019年2月1日
(45)【発行日】2019年2月20日
(54)【発明の名称】共通ハードウェアリソースを共用する、異なる低密度パリティ検査(LDPC)符号のための低密度パリティ検査の符号化
(51)【国際特許分類】
H03M 13/19 20060101AFI20190207BHJP
【FI】
H03M13/19
【請求項の数】22
【全頁数】15
(21)【出願番号】特願2016-515551(P2016-515551)
(86)(22)【出願日】2014年9月18日
(65)【公表番号】特表2016-530744(P2016-530744A)
(43)【公表日】2016年9月29日
(86)【国際出願番号】EP2014002544
(87)【国際公開番号】WO2015039759
(87)【国際公開日】20150326
【審査請求日】2017年8月22日
(31)【優先権主張番号】14/031,505
(32)【優先日】2013年9月19日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】510145967
【氏名又は名称】ユー−ブロックス、アクチエンゲゼルシャフト
【氏名又は名称原語表記】u−blox AG
(74)【代理人】
【識別番号】100091982
【弁理士】
【氏名又は名称】永井 浩之
(74)【代理人】
【識別番号】100091487
【弁理士】
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100082991
【弁理士】
【氏名又は名称】佐藤 泰和
(74)【代理人】
【識別番号】100105153
【弁理士】
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100096921
【弁理士】
【氏名又は名称】吉元 弘
(72)【発明者】
【氏名】アーメド、エス.マハディ
(72)【発明者】
【氏名】ニコラオス、エル.カニストラス
(72)【発明者】
【氏名】バシリス、パリウラス
【審査官】
大野 友輝
(56)【参考文献】
【文献】
米国特許出願公開第2010/0281330(US,A1)
【文献】
特開2008−086008(JP,A)
【文献】
国際公開第2011/062111(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/19
(57)【特許請求の範囲】
【請求項1】
誤り訂正符号を符号化する方法であって、
パリティ検査行列の部分行列を使用して、メッセージ・ビット・ベクトルから中間パリティ・ビット・ベクトルを算出するステップと、
複数の異なる符号のためのパリティビットを算出するように構成されている論理ゲートツリーを備える、固定されたハードウェアリソースを使用して、前記中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出するステップであって、前記符号の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分が、前記符号の別の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分と共用されるように、前記ハードウェアリソースの配置が、共通部分式の解法から決定される、ステップと、
を含む方法。
【請求項2】
前記パリティ検査行列は、前記部分行列を形成するように分割され、転置される、請求項1に記載の方法。
【請求項3】
前記中間パリティ・ビット・ベクトルを算出する前記ステップに使用される前記部分行列は、前記パリティ検査行列の第1の部分行列を含み、前記共通部分式の解法は、前記パリティ検査行列の第2の部分行列の逆を使用して決定される、請求項1に記載の方法。
【請求項4】
前記パリティ検査行列は、前記第2の部分行列を形成するように分割され、転置される、請求項3に記載の方法。
【請求項5】
ハードウェアリソースが、前記複数の異なる符号の異なるパリティビットの間で共用される、請求項1に記載の方法。
【請求項6】
前記ハードウェアリソースは、論理XORゲートのアレイを含む、請求項1に記載の方法。
【請求項7】
前記ハードウェアリソースの前記共用される部分は、共用されるXOR論理ゲートを含む、請求項6に記載の方法。
【請求項8】
前記ハードウェアリソースは、前記パリティ・ビット・ベクトルの前記パリティビットの各々について1つずつ、マルチプレクサを含む、請求項6に記載の方法。
【請求項9】
前記複数の異なる符号は、少なくとも、前記符号のブロック長または符号化率において異なる、請求項1に記載の方法。
【請求項10】
前記パリティ・ビット・ベクトルおよび前記メッセージ・ビット・ベクトルから、誤り訂正符号に従って符号語を生成する、請求項1に記載の方法。
【請求項11】
前記誤り訂正符号は、低密度パリティ検査(LDPC)符号である、請求項10に記載の方法。
【請求項12】
誤り訂正符号化のための符号器であって、
メッセージ・ビット・ベクトルを受け取り、前記メッセージ・ビット・ベクトルから、パリティ検査行列の部分行列に基づいて算出される中間パリティ・ビット・ベクトルを算出するように構成された第1のハードウェアリソースと、
前記中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出するように構成された第2のハードウェアリソースであって、前記第2のハードウェアリソースは、複数の異なる符号のためのパリティビットを算出するように構成されている論理ゲートツリーを含み、前記符号の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分が、前記符号の別の特定の符号のための前記パリティビットを算出するように構成されている前記ハードウェアリソースの部分と共用されるように、共有部分式の解法から前記ハードウェアリソースの配置が決定される、前記第2のハードウェアリソースと、
を含む符号器。
【請求項13】
前記パリティ検査行列は、前記部分行列を形成するように分割され、転置される、請求項12に記載の符号器。
【請求項14】
前記部分行列は前記パリティ検査行列の第1の部分行列を含み、前記共通部分式の解は、前記パリティ検査行列の第2の部分行列の逆に基づくものである、請求項12に記載の符号器。
【請求項15】
前記パリティ検査行列は、前記第2の部分行列を形成するように分割され、転置される、請求項12に記載の符号器。
【請求項16】
前記ハードウェアリソースの部分が、前記複数の異なる符号の異なるパリティビットの間で共用される、請求項12に記載の符号器。
【請求項17】
前記第2のハードウェアリソースは、論理XORゲートのアレイを含む、請求項12に記載の符号器。
【請求項18】
前記第2のハードウェアリソースの前記共用される部分は、共用されるXOR論理ゲートを含む、請求項17に記載の符号器。
【請求項19】
前記第2のハードウェアリソースは、前記パリティ・ビット・ベクトルの前記パリティビットの各々について1つずつ、マルチプレクサを含む、請求項17に記載の符号器。
【請求項20】
前記複数の異なる符号は、少なくとも、前記符号のブロック長または符号化率において異なる、請求項12に記載の符号器。
【請求項21】
前記パリティ・ビット・ベクトルおよび前記メッセージ・ビット・ベクトルから、誤り訂正符号に従って符号語を生成するように構成されている、請求項12に記載の符号器。
【請求項22】
前記誤り訂正符号は、低密度パリティ検査(LDPC)符号である、請求項21に記載の符号器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、誤り訂正符号化および復号の分野に関する。より詳細には、低密度パリティ検査(LDPC)符号およびLDPC復号器に関する。
【背景技術】
【0002】
ディジタルデータを送信するプロセスは、データに誤りを導入する可能性がある。その結果、受信データは送信データと異なるものになりうる。そうした誤りは、典型的には、伝送路に存在する雑音によって引き起こされる。誤りの量は、一般に、存在する雑音の量に対する送信信号強度に関連する。誤り訂正符号化は、送信前にデータに冗長性を挿入するための技法である。受信時に、この冗長性は、伝送プロセスの間に導入された誤りを訂正するために使用される。
【0003】
ブロック符号化は、送信されるべきディジタルデータが固定サイズのメッセージに分割される誤り訂正符号化の1種である。送信前に、各メッセージは符号器によって符号語(「ブロック」ともいう)に符号化される。符号化プロセスの間に、符号語がメッセージより大きくなるように、パリティデータと称される冗長性が挿入される。各符号語は、メッセージビットおよびパリティビットを含む。符号語は各々、nビットからなるものとする。nビットのある特定のパターンのみが有効な符号語であり、残りのパターンは無効である。符号語は次いで送信され、送信は符号語を破損させる可能性もある。受信すると、復号器は、受信された、破損した可能性のある符号語から元のメッセージを推論しようと試みる。
【0004】
生成行列を使用して、符号化プロセスにおいてメッセージを有効な符号語に符号化することができる。受信時には、パリティ検査行列を使用して復号プロセスにおいて誤りベクトルを生成することができ、誤りベクトルは受信された符号語における誤りの存在を指示する。
【0005】
線形ブロック誤り訂正符号は、有効な符号語の任意の線形結合も有効な符号語とする誤り訂正符号である。低密度パリティ検査(LDPC)符号は、疎なパリティ検査行列を特徴とする線形ブロック誤り訂正符号のサブカテゴリである。これは、パリティ検査行列が主に、0と比較的少数の1とからなることを意味する。LDPC符号は最初1960年代に導入されたが、最近になってますます注目されている。これは、少なくとも一部は、LDPC符号をハードウェア実装に適するものとする、復号における固有の並列性によるものであり、また、LDPC符号が様々な用途において使用されることを可能にする、LDPC符号の設計における柔軟性によるものである。いくつかの通信規格が、様々なブロック長および符号化率を有するLDPC符号集合を使用する。符号化率は、各ブロックに含まれる非冗長データの部分として定義することができる。
【0006】
LDPC符号の生成行列は一般に疎ではない。これは、LDPC符号の符号化プロセスは高複雑度を有しうることを意味する。符号化複雑度を低減するために、いくつかの符号化方式は、符号化プロセスの間にパリティ検査行列を使用して符号語を算出する。これが可能なのは、パリティ検査行列が、個々のLDPC符号ごとのパリティ検査行列は当該符号の生成行列から導出することができるという点において、生成行列に関連するからである。パリティ検査行列は、部分行列に分割することができる。符号語ごとのパリティビットは、部分行列を使用してメッセージビットから算出することができる。
【0007】
いくつかのLDPC符号器は後退代入を用いる。この手法は、符号化計算の複雑度を低減することを目指して、パリティ検査部分行列の反転を回避するのに使用される。しかし、後退代入手順の並列化は高複雑度を導入する。また、異なるブロック長および符号化率を有するLDPC符号についての後退代入手順を実施するために、少なくとも、複数の部分行列についての非ゼロの要素(すなわち、コード長別、符号化率別に1つずつ)が記憶される必要もあり、これには大容量のメモリを必要とする。記憶要件に加えて、これらの手順の実装は、複雑なハードウェアを必要とする傾向がある。
【発明の概要】
【課題を解決するための手段】
【0008】
本発明は、低密度誤り訂正符号のためのパリティ検査符号器と、符号化方法とを対象とする。一実施形態によれば、誤り訂正符号化のための符号器は、メッセージ・ビット・ベクトルを受け取り、メッセージ・ビット・ベクトルから、パリティ検査行列の部分行列に基づいて算出される中間パリティ・ビット・ベクトルを算出するように構成された第1のハードウェアリソースと、中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出するように構成された第2のハードウェアリソースであって、複数の異なる符号のためのパリティビットを算出するように構成されており、符号の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分が、符号の別の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分と共用される、第2のハードウェアリソースと、を含む。
【0009】
別の実施形態によれば、誤り訂正符号を符号化する方法は、パリティ検査行列の部分行列を使用してメッセージ・ビット・ベクトルから中間パリティ・ビット・ベクトルを算出することと、複数の異なる符号のためのパリティビットを算出するように構成されている固定されたハードウェアリソースを使用して、中間パリティ・ビット・ベクトルからパリティ・ビット・ベクトルを算出することであって、符号の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分が、符号の別の特定の符号のためのパリティビットを算出するように構成されているハードウェアリソースの部分と共用される、パリティ・ビット・ベクトルを算出することと、を含む方法。
【図面の簡単な説明】
【0010】
本発明は、本発明の特定の例示的実施形態に関連して説明され、図面がしかるべく参照される。
【0011】
【
図1】本発明の実施形態を実装することができる通信システムを示す図である。
【0012】
【
図2】本発明の一実施形態によるパリティ検査符号器を示す図である。
【0013】
【
図3】本発明の一実施形態によるパリティ検査行列の分割を示す図である。
【0014】
【
図4】本発明の一実施形態によるパリティ検査ビットを算出する方法を示す図である。
【0015】
【
図5】本発明の一実施形態による、特定の誤り訂正符号についてのパリティ検査部分行列の転置の逆を示す図である。
【0016】
【
図6】本発明の一実施形態による、代替の誤り訂正符号についてのパリティ検査部分行列の転置の逆を示す図である。
【0017】
【
図7】本発明の一実施形態による、異なる誤り訂正符号の間で共用されるXORハードウェアリソースを示す図である。
【0018】
【
図8】本発明の一実施形態による、中間パリティ・ビット・ベクトルを生成するための例示的ハードウェア実装形態を示す図である。
【0019】
【
図9】本発明の一実施形態による、パリティ・ビット・ベクトルを生成するための例示的ハードウェア実装形態を示す図である。
【0020】
【
図10】本発明の実施形態によるハードウェアリソース共用を適用することのできる4つの誤り訂正符号の各々のためのパリティビットを生成するための例示的ハードウェア実装形態を示す図である。
【0021】
【
図11】本発明の一実施形態による、ハードウェアリソースが4つの異なる誤り訂正符号の間で共用される例示的ハードウェア実装形態を示す図である。
【0022】
【
図12】本発明の一実施形態による、ハードウェアリソースが異なる誤り訂正符号の異なるパリティビットの間で共用される例示的ハードウェア実装形態を示す図である。
【発明を実施するための形態】
【0023】
本発明は、符号器の記憶要件およびハードウェア複雑度要件を低減するために1組の誤り訂正符号の個々の特徴を利用する。本発明の実施形態は、同じ符号器ハードウェアが異なるブロック長および符号化率のための符号化を行うことを可能にする。よって、符号器のハードウェアリソースを、符号器によってサポートされる異なるブロック長および符号化率の間で共用することができる。本発明の実施形態は、低密度パリティ検査(LDPC)符号を符号化するのに有用である。
【0024】
図1に、本発明の実施形態を実装することのできる通信システム100を示す。
図1に示すように、送信されるべきディジタルデータ102が送信機104に入力される。送信機104は、符号器106と変調器108とを含むことができる。符号器106は、例えば、データ102を固定サイズのメッセージに分割し、各メッセージを符号語に符号化することによって、データの誤り訂正符号化を行う。符号化プロセスの間に、符号語がメッセージより大きくなるように、パリティビットの形で、冗長性を挿入することができる。
【0025】
変調器108は、次いで、符号語に従って1つまたは複数の搬送波信号を変調することによって、符号語を送信のために準備することができる。一例として、変調は、直交周波数分割多重化(OFDM)に従って行うこともできる。変調され、符号化された各信号を、次いで、通信路110を介して送信することができる。通信路110は、例えば無線通信路とすることができ、無線通信路は、例えば、無線ローカル・エリア・ネットワーク(WLAN)の一部とすることができる。
【0026】
受信機112が通信路110から送信信号を受信する。受信機112は、復調器114と復号器116とを含むことができる。復調器114は、符号語を再構築するように受信信号を復調する。符号語は、次いで、元のデータ102を再構築するために復号器116によって復号することができる。復号器116は通信プロセスによって導入されるある一定の誤りを訂正することができるが、復号器112から出力されるデータ118は、残存する未訂正の誤りにより元のデータ102と異なる可能性がある。
【0027】
図2に、本発明の一実施形態によるパリティ検査符号器200を示す。パリティ検査符号器200は、
図1の符号器106に含めることができる。パリティ検査符号器200は、情報ビットベクトルsを受け取る。情報ビットベクトルsはメッセージビットを含む。パリティ検査符号器200は、メッセージビットを使用してパリティ・ビット・ベクトルpを生成する。パリティ・ビット・ベクトルpは、符号器200に入力されるメッセージビットに対応するパリティビットを含む。
図1の符号器106は、パリティ検査符号器200の機能以外の機能を果たすことができる。例えば、符号器106は、パリティ検査ビットを算出する前にメッセージビットにビットが追加されるパディングを行うことができる。符号器106は、パリティ検査ビットを算出した後で、パンクチャリングおよび繰り返しを行うことができる。パディング、パンクチャリング、および繰り返しは、例えば、IEEE802.11n/acの各規格に従って行うことができる。パリティ検査符号器200を含む符号器106の部分は、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、または他のタイプの回路を使用して、ハードウェアとして実装することができる。
【0028】
LDPC符号化による符号語のパリティビットは、以下の式(1)によって定義することができる。
p=s・H
1T・(H
2T)
−1 (1)
【0029】
式中、sは情報ビットベクトルであり、pはパリティ・ビット・ベクトルであり、H
1TおよびH
2Tは転置されたH
1およびH
2であり、H
1およびH
2は、符号のパリティ検査行列Hの2つの部分行列である。
【0030】
よって、パリティ検査行列Hは、2つの部分行列H
1およびH
2に分割することができ、部分行列H
1およびH
2は、行列H
1TおよびH
2Tを形成するように転置される。
図3に、本発明の一実施形態による、パリティ検査行列Hの部分行列H
1およびH
2への分割を示す。
【0031】
二段階符号化アルゴリズムを使用して、式(1)を、以下の式(2)および式(3)に従って実施することができる。
p
1=s・H
1T (2)
p=p
1・(H
2T)
−1 (3)
【0032】
式中、p
1は中間パリティ・ビット・ベクトルであり、(H
2T)
−1は部分行列H
2Tの逆である。
【0033】
図4に、本発明の一実施形態による、パリティ検査ビットを算出する方法400を示す。方法400は、
図2のパリティ検査符号器200によって行うことができる。ステップ402で、中間パリティ・ビット・ベクトルp
1が算出される。中間パリティ・ビット・ベクトルp
1は、ステップ302で、上記式(2)に従って算出することができる。ステップ404で、パリティ・ビット・ベクトルpが算出される。パリティ・ビット・ベクトルpは、上記式(3)に従って算出することができる。
【0034】
ステップ402およびステップ404は、行ベクトルと2つの固有の行列の乗算を含む。2進符号の場合には、パリティ検査行列も2進である。したがって、式(2)および式(3)は、GF(2)(すなわち2要素のガロア体)において実施することができ、式(2)および式(3)の計算量は、行列H
1Tと行列(H
2T)
−1の両方における1の総数に比例する。部分行列H
1Tは疎であり、他方、反転操作のために、逆行列(H
2T)
−1は、一般に、きわめて密である。
【0035】
Hが、z×zの巡回部分行列およびz×zのゼロ部分行列で構成された、擬似巡回(Quasi−Cyclic)(QC)である場合には、結果として得られる逆行列(H
2T)
−1も、z×zの巡回部分行列およびz×zのゼロ部分行列で構成されるが、(H
2T)
−1はH
2T行列より密である。H
1Tの密度は低い。何故なら、H
1TはHの部分行列であり、Hは疎であるからである。したがって、式(3)の計算は、式(2)の計算よりも複雑である。
【0036】
異なるブロック長および/または異なる符号化率のいくつかの符号をサポートするシステムにおいては、異なる符号は、それらのパリティ検査行列の列間に共通部分を有しうる。この場合には、(H
2T)
−1部分行列もそれらの列間に共通部分を有しうることが分かっている。特に、以下の2つの特徴がパリティ検査行列の構造によって満たされる場合、すなわち、
【0037】
すべてのパリティ検査行列が2進およびQCであり、
【0038】
H
2T部分行列が2重対角構造を有する場合には、
【0039】
(H
2T)
−1部分行列の列間のオーバーラップは、対応するH
2T部分行列の間のオーバーラップに比例することが認められている。これら2つの特徴を有する符号をサポート符号と呼ぶ。
【0040】
図5に、648のブロック長および5/6の符号化率を有する特定のLDPC誤り訂正符号のパリティ検査部分行列を示す。
図6に、648のブロック長および1/2の符号化率を有する第2のLDPC誤り訂正符号のパリティ検査部分行列を示す。
図5および
図6には、第1の符号の(H
2T)
−1部分行列の印の付いた行が、第2の符号の(H
2T)
−1部分行列においてどこで発生するかが示されている。
【0041】
図4に戻って、ステップ402は、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、またはベクトル行列乗算を行う他のタイプの回路といった、ハードウェアを用いて実装することができる。
【0042】
ステップ404は、XORゲートツリーを使用したハードウェアとして実装することができる。この場合には、サポート符号の(H
2T)
−1部分行列間の共通部分は、これらの符号の符号化を実装するXORゲートのツリー間の共通部分に対応する。これは部分式問題であり、本発明によって、ハードウェアリソースを共用するのに利用され、符号器ハードウェア要件の低減をもたらす。したがって、ステップ404は、共有XORリソースを使用して行われる。そうしたXORリソースは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、または他のタイプの回路として実装することができる。
【0043】
図7に、本発明の一実施形態による、異なる誤り訂正符号の間で共用されるXORハードウェアリソース700を示す。各パリティビットを生成するXORハードウェアリソースは、XOR論理ゲート702のアレイ、および1つまたは複数のマルチプレクサ704を含む。
図7に示すように、中間パリティ・ビット・ベクトルp
1からのビットは、XOR論理ゲート702のアレイの入力に適用される。XOR論理ゲート702の出力はマルチプレクサ704の入力に結合されている。マルチプレクサ704への選択入力が、マルチプレクサ704の入力のうちのどれがマルチプレクサ704の出力へ経路指定されるかを制御し、それによって対応するパリティビットを形成する。選択入力値は、符号器が現在実装している、複数の符号のうちの特定の符号に対応する。
【0044】
例示のために、ハードウェアリソース700は、1つのパリティビットについて簡略化された形で示されている。XOR論理ゲート702およびマルチプレクサ704の個々の配置は、符号器によって実装されるべきブロック長および符号化率の各々、ならびにそうした符号ごとのパリティ検査部分行列内の1および0の個々の位置に左右されることになる。ハードウェアリソース700の個々の配置を生成するのに、共通部分式の解法を使用することができる。共通部分式の解法は、サポート符号の対応する(H
2T)
−1部分行列を使用して行うことができる。ハードウェアリソースの個々の配置が決定されると、その配置を固定することができる。ハードウェアリソースが、異なるブロック長および/または異なる符号化率を有する異なる符号を符号化することができるように、入力として適用されるパリティ値およびマルチプレクサへの選択入力が変更されさえすればよい。
【0045】
式(3)を実装するXORツリーの列の共通部分は、通信システムによる複数のサポート符号の場合については、これらの符号の各々を符号化する間に共用され、符号器ハードウェア要件の全般的低減がもたらされる。これは、符号器アーキテクチャの複雑度および面積の無視できないほどの減少に寄与する。具体的には、本発明の実施形態は、IEEE規格802.11による符号化をサポートすることができ、よって、複数のサポート符号は、648ビット、1296ビット、および1944ビットの中から選択されるブロック長を有し、1/2、2/3、3/4、および5/6の中から選択される符号化率を有するLDPC符号を含むことができる。
【0046】
説明例として、パリティ検査行列が次式である符号の場合を仮定する。
【数1】
【0047】
行列Hは2つの部分行列H=[H
1|H
2]に分割され、式中、
【数2】
および
【数3】
である。
【0048】
転置されたH
1は、
【数4】
であるため、中間パリティベクトルp
1=[p
1(1) p
1(2) p
1(3)](式(2)によって与えられる)の要素は、次式によって算出される。
【数5】
式中、s=[s
1 s
2 s
3]はメッセージベクトルであり、
【数6】
は、排他的論理和(XOR)演算を表す。
【0049】
上記式の可能なハードウェア実装形態が
図8に示されており、この実装形態は、各XOR演算を2入力XORゲートにマップすることによって得られる。よって、
図8には、中間パリティ・ビット・ベクトルp
1を生成するための例示的ハードウェア実装形態が示されている。さらなる論理レベルの最適化が可能であることは明らかであろう。
【0050】
前述の例に戻って、どのようにして式(3)をハードウェアとして実装することができるかを示す。最初に、転置されたH
2がガロア体GF(2)において反転されて、
【数7】
が与えられ、続いて、式(3)の行ベクトルと行列の積が評価されて、パリティベクトルpの要素が与えられる。
【数8】
【0051】
対応するハードウェア実装形態は
図9に表されている。よって、
図9には、式(3)に従ってパリティ・ビット・ベクトルを生成するための例示的ハードウェア実装形態が示されている。
【0052】
リソース共用の一例として、4つの符号、すなわち、A、B、C、およびDをサポートするアーキテクチャを考察する。各符号の第1のパリティビットp
j(1)、j=A、B、C、D、を、次式に従って算出されるものとする。
【数9】
【0053】
本例においては、各符号に対応する、反転され転置されたパリティ検査部分行列の各々の第1列を、
【数10】
とすることができ、本明細書で説明するように、共通行を識別することができる。本明細書で説明される設計方法を使用すると、符号ごとに1つずつ、4つの回路が得られ、それらが
図10に示されている。
図10には、4つの異なる誤り訂正符号の各々について式(3)と同様にパリティビットを生成するための例示的ハードウェア実装形態が示されている。
【0054】
図10のハードウェア実装形態は、12個のXORゲートを必要とする。本発明は、一部の結果を再利用することによってハードウェアを低減する。最初に、パリティビット値を導出する式中の共通部分式を識別する。本例においては、p
A(1)の値をp
B(1)の計算においてそれ自体で再利用できることが分かり、以下のように記述することができる。
【数11】
【0055】
さらに、
【数12】
を定義することにより、p
C(1)およびp
D(1)の計算を、
【数13】
として記述することができ、式中、p
X(n)は、符号Xの場合についての第nのパリティビットを表す。
【0056】
共通部分式共有を使用する修正式の可能なハードウェア実装形態が、
図11に示されている。本例においては、
図10で必要とされる12個のゲートと比べて、6個の2入力XORゲートさえあればよいことが分かる。よって、
図11には、ハードウェアリソースが4つの異なる誤り訂正符号の間で共用される例示的ハードウェア実装形態が示されている。
図11の回路は、各インスタンスにおける選択の符号のためのパリティビットを生成することができる。
【0057】
上記の各例において、パリティビットは、別々のXORツリーによって生成される。ある実施形態においては、XORゲートも異なるパリティビット間で共用されうる。以下の例に示すように、同じサポート符号または異なるサポート符号のためのパリティビットを算出する異なるツリー間でXORゲートを共用することが可能である。
【0058】
符号Bの第3のパリティビットをp
B(3)とし、符号Cの第6のパリティビットをp
C(6)とする。さらに、個々のパリティビットは以下のように算出されるものと仮定する。
【数14】
【0059】
上記の第1の式は、第2の式において再利用されることに気づく。
図12に、対応するハードウェア部分共用を示す。より詳細には、
図12には、異なる誤り訂正符号の異なるパリティビット間でハードウェアリソースが共用される、例示的ハードウェア実装形態が示されている。
【0060】
ハードウェアが、異なるパリティビットおよび/または異なる符号のためのXORツリー間で共用される場合には、
図12に示すように場合ごとの適切な出力ビットを選択するための対応する論理が必要とされる。各符号が異なる長さのものである場合には、一部の選択論理を省くことができる。よって、上記の例において、符号Bが3つのパリティしか有しない場合には、第6のパリティビットのための選択論理を省くことができる。
【0061】
本発明の以上の詳細な説明は、例示のために提供するものであり、網羅的であることも、本発明を開示の実施形態だけに限定することも意図していない。したがって、本発明の範囲は、添付の特許請求の範囲によって定義されるものである。