(57)【特許請求の範囲】
【請求項１】
データ列を格納する複数のデータ列格納部と、
外部入力部から入力される情報に基づいて制御情報を出力する複数の誤り訂正処理手段と、
前記制御情報に基づいて前記データ列のデータ順を変換するデータ列変換手段と、を備え、
前記複数の誤り訂正処理手段は、前記制御情報に基づいて前記データ列変換手段から出力される前記データ列に所定の誤り訂正処理を行い、
前記制御情報は、前記データ列変換手段が行うデータ列変換を制御する情報と、前記データ列変換手段が前記データ列変換を行うためのグループ構成に関する情報と、を含み、
前記データ列変換手段は、前記制御情報に基づいて内部のグループ構成を変更するとともに、シフト処理に基づくローテーション動作を含むバレルシフタ動作によるデータ列変換を行い、
前記バレルシフタ動作は、前記グループ構成に関する情報に基づいて、出力すべき前記複数の誤り訂正処理手段のグループをまとめて指示するか、又は、前記複数の誤り訂正処理手段を個別に指示することを特徴とするマルチコア型誤り訂正処理システム。
【請求項２】
請求項１に記載のマルチコア型誤り訂正処理システムであって、
前記データ列変換手段は、
前記バレルシフタ動作を実行するバレルシフタと、
前記複数のデータ列格納部と前記バレルシフタとの間に設けられ、前記制御情報に基づいて前記複数のデータ列格納部から出力される前記データ列を前記バレルシフタに出力するクロスバーと、を備えることを特徴とするマルチコア型誤り訂正処理システム。
【請求項３】
データ列を格納する複数のメモリバンク部と、
外部インタフェースから入力される情報に基づいて制御情報を出力する複数の誤り訂正処理部と、
前記制御情報に基づいて前記データ列のデータ順を変換するインタコネクト部と、を備え、
前記複数の誤り訂正処理部は、前記制御情報に基づいて前記インタコネクト部から出力される前記データ列に所定の誤り訂正処理を行い、
前記制御情報は、前記インタコネクト部が行うデータ列変換を制御する情報と、前記インタコネクト部が前記データ列変換を行うためのグループ構成に関する情報と、を含み、
前記インタコネクト部は、前記制御情報に基づいて内部のグループ構成を変更するとともに、シフト処理に基づくローテーション動作を含むバレルシフタ動作によるデータ列変換を行い、
前記バレルシフタ動作は、前記グループ構成に関する情報に基づいて、出力すべき前記複数の誤り訂正処理部のグループをまとめて指示するか、又は、前記複数の誤り訂正処理部を個別に指示することを特徴とするマルチコア型誤り訂正処理装置。
【請求項４】
請求項３に記載のマルチコア型誤り訂正処理装置であって、
前記インタコネクト部は、
前記バレルシフタ動作を実行するバレルシフタと、
前記複数のメモリバンク部と前記バレルシフタとの間に設けられ、前記制御情報に基づいて前記複数のメモリバンク部から出力される前記データ列を前記バレルシフタに出力するクロスバーと、を備えることを特徴とするマルチコア型誤り訂正処理装置。
【請求項５】
データ列を格納する複数のデータ列格納部と、外部入力部から入力される情報に基づいて制御情報を出力する複数の誤り訂正処理手段と、前記制御情報に基づいて前記データ列のデータ順を変換するデータ列変換手段と、を備えるマルチコア型誤り訂正処理システムに使用されるマルチコア型誤り訂正処理方法であって、
前記複数の誤り訂正処理手段は、前記制御情報に基づいて前記データ列変換手段から出力される前記データ列に所定の誤り訂正処理を行い、
前記制御情報は、前記データ列変換手段が行うデータ列変換を制御する情報と、前記データ列変換手段が前記データ列変換を行うためのグループ構成に関する情報と、を含み、
前記データ列変換手段は、前記制御情報に基づいて内部のグループ構成を変更するとともに、シフト処理に基づくローテーション動作を含むバレルシフタ動作によるデータ列変換を行い、
前記バレルシフタ動作は、前記グループ構成に関する情報に基づいて、出力すべき前記複数の誤り訂正処理手段のグループをまとめて指示するか、又は、前記複数の誤り訂正処理手段を個別に指示することを特徴とするマルチコア型誤り訂正処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は無線通信におけるターボ復号、LDPC復号等の誤り訂正処理分野に関し、特に、高スループット獲得を目指したマルチコアプロセッサを用いた並列アーキテクチャによるシステムに関する。
【背景技術】
【０００２】
近年の無線通信システムでは、高いスループットとエラー耐性が要求される。それらを満たすためにターボ符号化、LDPC(Low  Density  Parity  Check)符号化、畳み込み符号化等の誤り訂正処理をはじめとする、様々な技術がLTE（Long  Term  Evolution）、WiMax等の様々な無線通信システムに採用されている。これらの誤り訂正処理、特に復号アルゴリズムは、多量のビット処理や、繰り返し処理が多用され、演算量が非常に多い。そこで、現在までにそれぞれの復号アルゴリズムに適した専用ハードウェアエンジンに関する様々な提案がなされてきている。これら専用ハードウェアエンジンを用いることで要求される高いスループット、高い誤り訂正能力を実現できる。
【０００３】
しかしながら、これら専用ハードウェアエンジンは、高い要求性能を実現するために単一の復号方式をターゲットとした構成としている。次世代無線通信システムでの鍵となるマルチスタンダードワイヤレスシステムを構成するために必要なソフトウェア無線機において、これら専用ハードウェアエンジンを用いる場合、要求される通信方式で使用される全ての誤り訂正アルゴリズムに適したエンジンを個別に取り入れる必要がある。その場合、回路規模はこれら専用ハードウェアエンジン数分だけ増大し、システム全体の規模に影響を与えてしまう。また、複数種類の専用ハードウェアエンジンをその都度開発する必要があり、開発コストの増大を招く。それらの課題に対して、これまでに複数の誤り訂正アルゴリズムに対応してプログラマブルエンジンが提案されている。要求される高いスループットを実現する観点から、プログラマブルエンジンのアーキテクチャは動作周波数の高い単一のプロセッサ（非特許文献１参照）や、複数並列に配置したマルチプロセッサ方式（非特許文献２参照）が提案されている。消費電力が抑えられることの利点から、無線通信システムでは後者のマルチプロセッサ方式が有効である。
【０００４】
非特許文献２に記載されたプログラマブルエンジンは、図６に示すように、複数のメモリバンク部５０ａ、５０ｂ、５０ｃと複数の誤り訂正処理部５２ａ、５２ｂ、５２ｃと、インタコネクト部５１で構成されている。複数のメモリバンク部５０ａ〜５０ｃはインタコネクト部５１で複数の誤り訂正処理部５２ａ〜５２ｃと接続されている。複数のメモリバンク部５０ａ〜５０ｃではそれぞれ、複数個のデータを同時に読み書きすることが可能である。このような構成を有する非特許文献２に記載のエンジンは、次のように動作する。
【０００５】
前提としてメモリバンク部の数と誤り訂正処理部の数をN、１つのメモリバンク部で同時に読み書きが可能なデータ数をMワードとする。図６では、説明を簡素化するため、N＝３、M＝３２とする。複数のメモリバンク部には誤り訂正処理に対する入力データが格納されている。１つのメモリバンク部で同時にアクセスできる複数のデータをデータ列と呼ぶ。
【０００６】
初めに、LDPC復号を対象とした場合の動作について示す。まず、複数のメモリバンク部５０ａ〜５０ｃからデータ列が読み出される。読み出されたデータ列はメモリバンク部５０ａ、５０ｂ、５０ｃと接続されているバレルシフタ部５１ａ、５１ｂ、５１ｃにて所定のシフト量分だけシフトされる。このシフト量はLDPC符号化の種類によって異なる。シフトされたデータ列は誤り訂正処理部５２ａ、５２ｂ、５２ｃに入力される。データ列が誤り訂正処理部５２ａ〜５２ｃに入力されると、LDPC復号に対応したプログラムが誤り訂正処理部５２ａ〜５２ｃで実行され、１繰り返し分のLDPC復号処理が行われる。得られた演算結果はインタコネクト部５１に出力される。インタコネクト部５１により入力されたデータ列は入力時に行なわれたシフト処理の逆シフト処理が行われ、元のデータ列順に戻る。元のデータ列順に戻ったデータ列はメモリバンク部に書き戻される。この一連の動作を所定の繰り返し分行い、１コード分のLDPC復号が実行される。
【０００７】
次にターボ復号を対象とした場合の動作について述べる。繰り返し数が偶数番目か奇数番目かにより、インタコネクト部５１の処理が異なる。偶数回目の繰り返し数の場合、メモリバンク部５０ａ〜５０ｃから入力されるデータ列はそのままデータ順を入れ替えずに誤り訂正処理部５２ａ〜５２ｃに入力される。奇数回目の繰り返し数時の場合、メモリバンク部５０ａ〜５０ｃから入力されるデータ列はインタコネクト部５１のクロスバ５１ｄによりインターリービングが行なわれ、データ順を入れ替えた後に誤り訂正処理部５２ａ〜５２ｃに入力される。誤り訂正処理では、データ列が入力されるとターボ復号に対応したプログラムが実行され、ターボ復号処理が行われる。得られた演算結果は、メモリバンク部からのデータ列入力時と同様に繰り返し数が偶数番目か奇数番目かにより、デインターリービングが施され、再びメモリバンク部に書き戻される。この一連の動作を所定の繰り返し数分行い、ターボ復号が実行される。
【０００８】
以上のように非特許文献２は、LDPC復号やターボ復号処理といった、代表的な誤り訂正処理を同一のアーキテクチャで実現することができる。
【０００９】
しかし、非特許文献２のアーキテクチャは、図６に示す通り、メモリバンク部、誤り訂正処理部間の接続構成がそれぞれに対して限定的な接続となる。複数の種類の誤り訂正方式を処理しようとする場合、非特許文献２は一度の処理において１種類の誤り訂正方式に対応した処理しか実行できない。そのため、逐次的に複数の誤り訂正処理をする必要がある。単一の誤り訂正方式であってもコード長が異なる場合は同時に複数種類のコード長に対する誤り訂正処理を行うことができない。次世代無線通信システム、特に基地局では、複数ユーザの復号処理が必要である。また、複数の誤り訂正方式や複数のコード長の処理を効率的に行えることが望まれる。現存の無線通信システムにおいても、通信チャネル毎に誤り訂正処理が異なる場合が多く、複数種類の誤り訂正方式、複数の異なるコード長の処理を一度に行えることが望まれる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】“FlexiChaP:  A  reconfigurable  ASIP  for  convolutional,  turbo,  and  LDPC  code  decoding”,  M.  Alles,  T.  Vogt,  and  N.  Wehn,  in  Proc.  Int.  SyMposiuM  on  Turbo  Coding  (TURBO  CODING’08),  2008,  pp.  13-18.
【非特許文献２】”A  UNIFIED  INSTRUCTION  SET  PROGRAMMABLE  ARCHITECTURE  FOR  MULTISTANDARD  ADVANCED  FORWARD  ERROR  CORRECTION”,  Frederik  Naessens,  et,  al,IEEE  Sips08  ,  2008,  pp.  31-36.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする課題は、前述したようなマルチコア型の誤り訂正処理装置において、複数の誤り訂正方式、あるいは、複数のコード長の処理に対して演算リソースを有効利用できず、１回の動作に対して、１種類の誤り訂正処理しか実行できない点である。その理由は、非特許文献２における図６のようなメモリバンク、誤り訂正処理部間の接続構成では、それぞれに対して限定的な接続となるためである。この構成では様々な要求性能に対しての処理を行おうとした場合、複数の誤り訂正処理を同時に実行すること、あるいは、要求性能に応じて適切な演算リソースを提供することが困難である。特にLDPC復号処理においては、バレルシフタ部が一度に単一、単数のシフト量しかシフトを実行できないため、複数の誤り訂正処理、あるいは、複数の異なるコード長のLDPC復号処理を実行しようとする場合、非特許文献２は逐次的に処理する必要がある。
【００１２】
本発明は、上記課題を解決しようとするものであり、様々な要求性能に対して、効率的に演算処理、各処理部へのデータ転送を可能とし、複数の誤り訂正方式、複数のコード長の誤り訂正処理を同時実行可能とするようなマルチコア型誤り訂正処理システムを提供しようとするものである。
【課題を解決するための手段】
【００１３】
本発明の態様によれば、複数のデータ格納手段と、前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、外部からの制御パラメータを受け取る、外部入力手段と、前記外部入力手段から受け取ったデータを格納する外部パラメータ格納手段と、前記データ列変換手段からデータを受け取り、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行う複数の誤り訂正処理手段と、を含み、前記誤り訂正処理手段は、誤り訂正演算手段と、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行うように前記誤り訂正演算手段を制御する誤り訂正処理制御手段と、を含み、前記データ列変換手段は、入力される制御情報を基に複数の前記誤り訂正処理手段をまとめて一つ、もしくは複数のグループの出力先としてシフト処理を基本としたローテーション動作を含むバレルシフタ動作によるデータ列変換を行うことを特徴とするマルチコア型誤り訂正処理システムが提供される。
【００１４】
本発明の別の態様によれば、複数のメモリバンク部と、前記複数のメモリバンク部からデータを受け取り、それらデータ列をシフトさせることによりデータ順を変換するバレルシフタ部を含むインタコネクト部と、外部からの制御パラメータを受け取る、外部インタフェースと、前記外部インタフェースから受け取ったデータを格納する外部パラメータ保持部と、前記インタコネクト部からデータを受け取り、前記外部パラメータ保持部に格納されたパラメータを基に所定の誤り訂正処理を行う複数の誤り訂正処理部と、を備え、前記誤り訂正処理部は、誤り訂正演算部と、前記外部パラメータ保持部に格納されたパラメータを基に所定の誤り訂正処理を行うように前記誤り訂正演算部を制御する誤り訂正処理制御部と、を含み、前記インタコネクト部は、入力される制御情報を基に複数の前記誤り訂正処理部をまとめて一つ、もしくは複数のグループの出力先としてシフト処理を基本としたローテーション動作を含むバレルシフタ動作によるデータ列変換を行うことを特徴とするマルチコア型誤り訂正処理装置が提供される。
【００１５】
上記態様によるマルチコア型誤り訂正処理装置は、前記インタコネクト部において、外部、もしくは内部から各誤り訂正処理部に関する制御パラメータが入力され、それらのデータにより、インタコネクト部内部のバレルシフタが１個以上、複数種のグループを構成できるように動作する。このような構成を採用し、複数のメモリバンク部と複数の誤り訂正処理部をインタコネクト部で接続することにより本発明の課題を達成することができる。
【００１６】
本発明の更に別の態様によれば、複数のデータ格納手段と、前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、外部からの制御パラメータを受け取る、外部入力手段と、前記外部入力手段から受け取ったデータを格納する外部パラメータ格納手段と、前記データ列変換手段からデータを受け取り、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行う複数の誤り訂正処理手段と、を含むマルチコア型誤り訂正処理システムによる誤り訂正処理方法であって、前記誤り訂正処理手段は、誤り訂正演算処理と、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行うように前記誤り訂正演算処理を制御する誤り訂正処理制御を実行し、前記データ列変換手段は、入力される制御情報を基に複数の前記誤り訂正処理手段をまとめて一つ、もしくは複数のグループの出力先としてシフト処理を基本としたローテーション動作を含むバレルシフタ動作によるデータ列変換を実行することを特徴とするマルチコア型誤り訂正処理方法が提供される。
【発明の効果】
【００１７】
以上のような構成をとることで、以下の効果を得ることができる。
【００１８】
本発明の効果は、複数の異なる構成のデータ列を同時に処理できることにある。その理由は、誤り訂正処理部、もしくは、外部から制御用パラメータが入力されることで、インタコネクト部が複数種類、複数個のグループを構成できるように動作するためである。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態による誤り訂正処理装置の構成を示すブロック図である。
【図２】本発明の第２の実施形態による誤り訂正処理装置の構成を示すブロック図である。
【図３】本発明の第３の実施形態による誤り訂正処理装置の構成を示すブロック図である。
【図４】本発明の第４の実施形態による誤り訂正処理装置の構成を示すブロック図である。
【図５】本発明を実施するためのバレルシフタのグループ構成の具体例を示す図である。
【図６】本発明に関連する誤り訂正処理装置の構成を示すプロック図である。
【発明を実施するための形態】
【００２０】
次に、本発明をいくつかの実施形態について図面を参照して詳細に説明する。
【００２１】
以下に説明する実施形態は、マルチコア型誤り訂正処理システムあるいは誤り訂正処理装置として機能するが、以下では、マルチコア型誤り訂正処理装置に適用した場合について説明する。
【００２２】
［第１の実施形態］
図１を参照すると、本発明の第１の実施形態によるマルチコア型誤り訂正処理装置は、複数のメモリバンク部１０ａ、１０ｂ、１０ｃと、インタコネクト部１１と、複数の誤り訂正処理部１２ａ、１２ｂ、１２ｃとから構成されている。図１はメモリバンク部、誤り訂正処理部が３個の場合を示しているが、説明を簡素化するためであり、３個に限定されるものでないことは言うまでも無い。これは、後述される実施形態においても同様である。複数のメモリバンク部１０ａ〜１０ｃは処理対象データ（入力データと呼ぶ）や演算途中のデータ、結果を格納するために使用される。インタコネクト部（データ列変換手段）１１は、主にターボ復号で使用されるクロスバ部１１ａと、LDPC復号処理時に使用されるバレルシフタ部１１ｂとグループ構成、動作等を制御するインタコネクト制御部１１ｃを含む。インタコネクト部１１は、メモリバンク部の他に誤り訂正処理部と接続している。誤り訂正処理部１２ａ〜１２ｃは誤り訂正処理を行う。複数の誤り訂正処理部１２ａ〜１２ｃはインタコネクト部１１と接続している。誤り訂正処理部１２ａ、１２ｂ、１２ｃはそれぞれ、受け取った入力データを実際に処理する誤り訂正演算部１３ａ、１３ｂ、１３ｃと、誤り訂正演算部１３ａ、１３ｂ、１３ｃの制御やメモリバンク部１０ａ、１０ｂ、１０ｃに対するメモリアドレス、インタコネクト部１１に必要なインタコネクトパラメータを生成する誤り訂正処理制御部１５ａ、１５ｂ、１５ｃと、外部IF（Interface）（外部入力手段）１６から受け取る誤り訂正処理部１２ａ、１２ｂ、１２やインタコネクト部１１をどのようなグループに構成するかを示した構成パラメータを保持するコンフィグデータ保持部（外部パラメータ格納手段）１４ａ、１４ｂ、１４ｃを含む。
【００２３】
これらはそれぞれ次のように動作する。
【００２４】
メモリバンク部１０ａ、１０ｂ、１０ｃは、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃにより制御される。メモリバンク部１０ａ、１０ｂ、１０ｃは誤り訂正処理制御部１５ａ、１５ｂ、１５ｃで生成されるアドレスを受け取り、該アドレスに格納されているデータをインタコネクト部１１に出力する。また、インタコネクト部１１から出力されるデータを誤り訂正処理制御部１５ａ、１５ｂ、１５ｃで生成されるアドレスによりデータを格納する。１つのメモリバンク部で１つのアドレスにより、同時にアクセスできるデータはM個（Mは２以上の整数）である。
【００２５】
誤り訂正処理部１２ａ、１２ｂ、１２ｃは、実際の誤り訂正処理を行う。内部に含まれている誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは、所定の復号アルゴリズムに対応したプログラムシーケンスを実行し、制御信号を誤り訂正演算部１３ａ、１３ｂ、１３ｃ、および、メモリバンク部１０ａ、１０ｂ、１０ｃ、インタコネクト部１１に発行する。制御信号を受け取った誤り訂正演算部は、メモリバンク部１０ａ、１０ｂ、１０ｃから入力されるデータ列を用いて、所定の復号アルゴリズムを実行する。コンフィグデータ保持部１４ａ、１４ｂ、１４ｃは外部IF１６と接続されており、外部モジュールから誤り訂正処理構成データを受け取る。
【００２６】
インタコネクト部１１は、コンフィグデータ保持部１４ａ、１４ｂ、１４ｃから得られるグループ構成情報（データ変換構成情報あるいはインタコネクト構成情報）と誤り訂正処理部内の誤り訂正処理制御部１５ａ、１５ｂ、１５ｃから得られるインタコネクトパラメータ（データ変換制御情報あるいはインタコネクト制御情報）とを基に動作する。インタコネクト制御部１１ｃはグループ構成情報を基にクロスバ部１１ａとバレルシフタ部１１ｂのグループ構成を決定する。また、インタコネクト制御部１１ｃはインタコネクトパラメータを基にクロスバ部１１ａ内部の接続変更、バレルシフタ部１１ｂのシフト処理を制御する。そうすることにより、ターボ復号化のインターリービング、LDPC復号化のバレルシフト等のデータ列変換を実現する。
【００２７】
グループ構成方法の例としてバレルシフタ部６１の構成を図５に示す。図のようにバレルシフタ部６１は、３つの誤り訂正処理部１２ａ、１２ｂ、１２ｃを１つのグループとして構成することができる（図５の参照番号６２を参照）。この場合、本発明の誤り訂正処理装置は並列度：M×3の誤り訂正処理に対応できる。
【００２８】
また、バレルシフタ部６１は、グループ構成情報を変更することで他の例として１つの誤り訂正処理部１２ａ、１２ｂ、１２ｃそれぞれを１つのグループとして構成することもできる(図５の参照番号６３を参照）。この場合、誤り訂正処理装置は合計３つのグループを形成し、同時実行可能な３つの並列度：Mの誤り訂正処理に対応できる。
【００２９】
また、バレルシフタ部６１は、２つの誤り訂正処理部１２ａ、１２ｂと、１つの誤り訂正処理部１２ｃとで２つのグループを形成することもできる（図５の参照番号６４を参照）。この場合、本発明の誤り訂正処理装置は同時実行可能な並列度：M×2の誤り訂正処理と並列度：Mの誤り訂正処理に対応できる。
【００３０】
図１を参照して第１の実施形態によるマルチコア型誤り訂正処理装置の全体の動作について詳細に説明する。インタコネクト部１１のグループ構成により、全体動作が異なるため、前述したインタコネクト部１１の動作説明中の３つのケースに対してそれぞれ説明する。
【００３１】
以降に第１のケース、つまり、グループ構成情報により、インタコネクト部１１内部のバレルシフタ部は１つのグループ（並列度M×3の誤り訂正処理に対応できるもの）を構成している場合について説明する。前提として、LDPC復号処理を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、複数のメモリバンク部１０ａ、１０ｂ、１０ｃには誤り訂正処理に対する入力データが合計で768個格納されているとする。複数のメモリバンク部１０ａ、１０ｂ、１０ｃそれぞれに対して、格納できる１データ列のデータ数をM＝３２とする。すなわち、メモリバンク部数が３なので、全てのメモリバンク部を同時にアクセスした場合に読み出す・書き込むことのできるデータ数は、M×3＝96となる。この場合の誤り訂正処理装置は一度に１種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００３２】
まず、外部IF１６からコンフィグデータ保持部１４ａ、１４ｂ、１４ｃに、インタコネクト部１１に対するグループ構成情報と誤り訂正処理部１２ａ、１２ｂ、１２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回はLDPCに対応した情報）。その後、誤り訂正処理部１２ａ、１２ｂ、１２ｃ内部の誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは得られた情報によりLDPC復号処理に対応したプログラム実行を開始する。プログラム実行が開始されると、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは複数のメモリバンク部１０ａ、１０ｂ、１０ｃにリードアドレスを出力する。また、インタコネクト部１１に対してインタコネクトパラメータを出力する。複数のメモリバンク部１０ａ、１０ｂ、１０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出されたデータ列はインタコネクト部１１に出力される。
【００３３】
インタコネクト部１１は、入力されたデータ列とインタコネクトパラメータ、コンフィグデータ保持部１４ａ、１４ｂ、１４ｃに存在するグループ構成情報を基に、バレルシフタ部１１ｂを96データ分のバレルシフタ（図５の６２）として構成し、データ列変換を行う。データ列変換が行なわれた後に誤り訂正処理部１２ａ、１２ｂ、１２ｃにデータ列が入力される。データ列が誤り訂正演算部１３ａ、１３ｂ、１３ｃに入力されると、誤り訂正処理部１３ａ、１３ｂ、１３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部１１に再び入力される。インタコネクト部１１は入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部１２ａ〜１２ｃへの入力時とは逆向きのバレルシフタ処理を行う。インタコネクト部１１でデータ順が元に戻されたデータ列は再びメモリバンク部１０ａ、１０ｂ、１０ｃに入力される。メモリバンク部１０ａ、１０ｂ、１０ｃに入力された演算結果のデータ列は誤り訂正制御部１５ａ、１５ｂ、１５ｃで生成されたライトアドレスにより、所定のアドレスに格納される。
【００３４】
以上のステップを実行することで、繰り返し数１回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を得ることができる。
【００３５】
以降に第２のケース、つまり、グループ構成情報により、インタコネクト部１１内部のバレルシフタ部１１ｂは３つのグループ（並列度Mの誤り訂正処理に対応できるものが３個分）を構成している場合について説明する。前提として、LDPC復号処理３コード分を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、それぞれのメモリバンク部１０ａ〜１０ｃには誤り訂正処理に対する入力データが768個ずつ格納されているとする。複数のメモリバンク部１０ａ、１０ｂ、１０ｃそれぞれに対して、格納できる１データ列のデータ数をM＝３２とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M＝３２となる。この場合の誤り訂正処理装置は一度に３種類の誤り訂正処理を実行することができる。以下に動作について説明する。
【００３６】
まず、外部IF１６からコンフィグデータ保持部１４ａ、１４ｂ、１４ｃにインタコネクト部１１に対するグループ構成情報と誤り訂正処理部１２ａ、１２ｂ、１２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回はLDPCに対応した情報）。その後、誤り訂正処理部１２ａ、１２ｂ、１２ｃ内部の誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは得られた情報によりLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは複数のメモリバンク部１０ａ、１０ｂ、１０ｃそれぞれにリードアドレスを出力する。また、インタコネクト部１１に対してインタコネクトパラメータを出力する。複数のメモリバンク部１０ａ、１０ｂ、１０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された３つのデータ列はインタコネクト部１１に出力される。
【００３７】
インタコネクト部１１は、入力されたデータ列とインタコネクトパラメータ、コンフィグデータ保持部１４ａ、１４ｂ、１４ｃに存在するグループ構成情報を基に、バレルシフタ部１１ｂを32データ分のバレルシフタが３個存在する構成（図５の６３）に変更し、データ列変換を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部１２ａ、１２ｂ、１２ｃにデータ列が入力される。データ列が誤り訂正演算部１３ａ、１３ｂ、１３ｃにそれぞれ入力されると誤り訂正演算部１３ａ、１３ｂ、１３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部１１に再び入力される。インタコネクト部１１では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部１２ａ〜１２ｃへの入力時とは逆向きのバレルシフタ処理（つまり、32データ分のバレルシフタ３個分）を行う。インタコネクト部１１でデータ順が元に戻されたデータ列は再びメモリバンク部１０ａ、１０ｂ、１０ｃに入力される。メモリバンク部１０ａ、１０ｂ、１０ｃに入力された演算結果のデータ列は誤り訂正制御部１５ａ、１５ｂ、１５ｃで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
【００３８】
以上のステップを実行することで、繰り返し数１回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果３コード分を得ることができる。
【００３９】
以降に第３のケース、つまり、グループ構成情報により、インタコネクト部１１内部のバレルシフタ部１１ｂは２つのグループ（並列度M×2の誤り訂正処理と並列度Mの誤り訂正処理にそれぞれ対応できるもの）を構成している場合について説明する。前提として、ターボ復号処理１コード分を誤り訂正処理部１２ａ、１２ｂで行い、LDPC復号処理１コード分を誤り訂正処理部１２ｃで行うこととする。ターボ復号を行なうデータのコード長は512である。ターボ復号の符号化率を1/3とする。つまり、ターボ復号を行なうデータのコード長は合計で1536となる。LDPC復号を行なうデータのコード長は768である。つまり、メモリバンク部１０ａ、１０ｂにはターボ復号処理に対する入力データが合計で1536個格納されているとする。メモリバンク部１０ｃにはLDPC復号処理に対する入力データが768個格納されているとする。複数のメモリバンク部１０ａ、１０ｂ、１０ｃに対して、格納できる１データ列のデータ数をM＝３２とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M＝３２となる。１度に使用するデータを、この場合の誤り訂正処理装置は一度に２種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００４０】
まず、外部IF１６からコンフィグデータ保持部１４ａ、１４ｂ、１４ｃにインタコネクト部１１に対するグループ構成情報と誤り訂正処理部１２ａ、１２ｂ、１２ｃに対してどの誤り訂正方式を処理するかを示す情報が入力される（今回は誤り訂正処理部１２ａ、１２ｂに対してターボ復号を、誤り訂正処理部１２ｃに対してLDPC復号を行うような情報）。その後、誤り訂正処理部１２ａ、１２ｂ、１２ｃ内部の誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは得られた情報によりターボ復号処理とLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃは複数のメモリバンク部１０ａ、１０ｂ、１０ｃそれぞれにリードアドレスを出力する。また、インタコネクト部１１に対してインタコネクトパラメータを出力する。複数のメモリバンク部１０ａ、１０ｂ、１０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された３つのデータ列はインタコネクト部１１に出力される。
【００４１】
インタコネクト部１１は、入力されたデータ列とインタコネクトパラメータ、コンフィグデータ保持部１４ａ、１４ｂ、１４ｃに存在するグループ構成情報を基に、バレルシフタ部１１ｂを32データ分のバレルシフタが１個存在する構成（図５の６２）に変更し、クロスバ部１１ｂを２つの誤り訂正処理部１２ａ、１２ｂのみの接続となるように構成を変更する。インタコネクト部１１は変更した構成を用いて、入力されたデータ列に対してデータ列変換をそれぞれ行う。つまり、インタコネクト部１１はメモリバンク部１０ａ、１０ｂからの入力データ列に対しては、奇数繰り返し回の時にはインタリーブ処理を行い、偶数繰り返し回の時にはデータ列変換せずにそのまま出力する。また、インタコネクト部１１はメモリバンク部１０ｃからの入力データに対してバレルシフタ処理を行う。
【００４２】
データ列変換が行なわれた後にそれぞれの誤り訂正処理部１２ａ、１２ｂ、１２ｃにデータ列が入力される。データ列が誤り訂正演算部１３ａ、１３ｂ、１３ｃにそれぞれ入力されると誤り訂正処理部１３ａ、１３ｂは１繰り返し分のターボ復号処理を、誤り訂正処理部１３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部１１に再び入力される。インタコネクト部１１は入力される演算結果のデータ列とインタコネクトパラメータにより、データ列変換を行う。つまり、インタコネクト部１１は誤り訂正処理部１３ａ、１３ｂから出力されたデータ列に対して奇数繰り返し回のときにはスルーし、偶数繰り返し回のときにデインタリーブ処理を行う。また、インタコネクト部１１は誤り訂正処理部１３ｃから出力されたデータ列に対して誤り訂正処理部への入力時とは逆向きのバレルシフタ処理（つまり、32データ分のバレルシフタ１個分）を行う。インタコネクト部１１でデータ順が元に戻されたデータ列は再びメモリバンク部１０ａ、１０ｂ、１０ｃに入力される。メモリバンク部１０ａ、１０ｂ、１０ｃに入力された演算結果のデータ列は誤り訂正制御部１５ａ、１５ｂ、１５ｃで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
【００４３】
以上のステップを実行することで、繰り返し数１回分のターボ復号処理とLDPC復号処理を同時に行うことができる。これを所定の繰り返し数分行なうことで、所望のターボ復号処理とLDPC復号の結果を得ることができる。
【００４４】
前にも説明した通り、第１の実施形態では、誤り訂正処理部、および、メモリバンク部の数を３としているが、これは説明の簡略化のためであり、誤り訂正処理部、および、メモリバンク部の数は３に制限されない。また、第１の実施形態はターボ復号処理とLDPC復号処理とを対象として説明を行なったが、３つの誤り訂正処理部１２ａ、１２ｂ、１２ｃはそれぞれ独立して動作することが可能なため、ターボ復号、LDPC復号、ビタビ復号等の他の誤り訂正方式を組み合わせて、あるいは一つのみ選択して処理することができる。組み合わせも自由に選ぶことができる。
【００４５】
次に、第１の実施形態の効果について説明する。
【００４６】
第１の実施形態によるマルチコア型誤り訂正処理装置では、インタコネクト部１１内部のバレルシフタ部１１ａがコンフィグデータ保持部１４ａ、１４ｂ、１４ｃに格納されているグループ構成情報と、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃから得られるインタコネクトパラメータにより、複数の誤り訂正処理部が様々なグループを構成できるように構成されているため、前述した様々な要求性能に対応した並列度で１つあるいは同時に複数のLDPC復号処理やターボ符号等の誤り訂正が実現できる。
【００４７】
［第２の実施形態］
次に、本発明の第２の実施形態によるマルチコア型誤り訂正処理装置について図面を参照して詳細に説明する。
【００４８】
第２の実施形態は第１の実施形態の変形である。第２の実施形態と第１の実施形態との違いは以下の通りである。インタコネクト部１１内部のインタコネクト制御部１１ｃへの入力が第１の実施形態では、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃとコンフィグデータ保持部１４ａ、１４ｂ、１４ｃの２方からであったのに対し、第２の実施形態では、コンフィグデータ保持部１４ａ、１４ｂ、１４ｃからのみとなっている点である。
【００４９】
図２を参照すると、第２の実施形態によるマルチコア型誤り訂正処理装置は、複数のメモリバンク部２０ａ、２０ｂ、２０ｃと、複数の誤り訂正処理部２２ａ、２２ｂ、２２ｃと、インタコネクト部２１とから構成されている。複数のメモリバンク部２０ａ、２０ｂ、２０ｃは処理対象データ（入力データと呼ぶ）や演算途中のデータ、結果を格納するために使用される。誤り訂正処理部２２ａ、２２ｂ、２２ｃは誤り訂正処理を行う。誤り訂正処理部２２ａ、２２ｂ、２２ｃは、受け取った入力データを実際に処理する誤り訂正演算部２３ａ、２３ｂ、２３ｃと、誤り訂正演算部２３ａ、２３ｂ、２３ｃの制御やメモリバンク部２０ａ、２０ｂ、２０ｃに対するメモリアドレス、インタコネクト部２１に必要なインタコネクトパラメータを生成する誤り訂正処理制御部２５ａ、２５ｂ、２５ｃと、外部IF２６から受け取るグループ構成情報を保持するコンフィグデータ保持部２４ａ、２４ｂ、２４ｃを含む。インタコネクト部２１は、主にターボ復号で使用されるクロスバ部２１ａと、LDPC復号処理時に使用されるバレルシフタ部２１ｂとグループ構成、動作等を制御するインタコネクト制御部２１ｃを含む。
【００５０】
これらはそれぞれ次のように動作する。
【００５１】
メモリバンク部２０ａ、２０ｂ、２０ｃは、演算対象となるデータを格納する。これは、第１の実施形態と同様の部分である。
【００５２】
誤り訂正処理部２２ａ、２２ｂ、２２ｃは、実際の誤り訂正処理を行う。これも、第１の実施形態と同様の部分である。
【００５３】
インタコネクト部２１は、コンフィグデータ保持部２４ａ、２４ｂ、２４ｃから得られるグループ構成情報とインタコネクトパラメータを基に動作する。インタコネクト制御部２１ｃはグループ構成情報を基にクロスバ部２１ａとバレルシフタ部２１ｂのグループ構成を決定する。また、インタコネクト制御部２１ｃはインタコネクトパラメータを基にクロスバ部２１ａ内部の接続変更、バレルシフタ部２１ｂのシフト処理を制御する。そうすることにより、ターボ復号化のインターリービング、LDPC復号化のバレルシフタ等のデータ列変換を実現する。
【００５４】
グループ構成方法の例としてバレルシフタ部６１の構成を図５に示す。図のようにバレルシフタ部６１は、３つの誤り訂正処理部２２ａ、２２ｂ、２２ｃで１つのグループを構成することができる（図５の参照番号６２を参照）。この場合、誤り訂正処理装置は並列度：M×3の誤り訂正処理に対応できる。また、バレルシフタ部２１ｂは、グループ構成情報を変更することで他の例として１つの誤り訂正処理部２２ａ、２２ｂ、２２ｃそれぞれを１つのグループとして構成することもできる(図５の参照番号６３を参照）。この場合、誤り訂正処理装置は合計３つのグループを形成し、同時実行可能な３つの並列度：Mの誤り訂正処理に対応できる。また、バレルシフタ部２１は、２つの誤り訂正処理部２２ａ、２２ｂと、１つの誤り訂正処理部２３ｃとで２つのグループを形成することもできる（図５の参照番号６４を参照）。この場合、誤り訂正処理装置は同時実行可能な並列度：M×2の誤り訂正処理と並列度：Mの誤り訂正処理に対応できる。
【００５５】
図２を参照して第２の実施形態によるマルチコア型誤り訂正処理装置の全体の動作について詳細に説明する。インタコネクト部２１のグループ構成により、全体動作が異なるため、前述したインタコネクト部２１の動作説明中の３つのケースに対してそれぞれ説明する。
【００５６】
以降に第１のケース、つまり、グループ構成情報により、インタコネクト部２１内部のバレルシフタ部は１つのグループ（並列度M×3の誤り訂正処理に対応できるもの）を構成している場合について説明する。前提として、LDPC復号処理を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、複数のメモリバンク部には誤り訂正処理に対する入力データが合計で768個格納されているとする。複数のメモリバンク部２０ａ、２０ｂ、２０ｃそれぞれに対して、格納できる１データ列のデータ数をM＝32とする。すなわち、メモリバンク部の数が３なので、全てのメモリバンク部を同時にアクセスした場合に読み出す・書き込むことのできるデータ数は、M×3＝96となる。この場合の誤り訂正処理装置は一度に１種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００５７】
まず、外部IF２６からコンフィグデータ保持部２４ａ、２４ｂ、２４ｃにインタコネクト部２１に対するグループ構成情報とインタコネクトパラメータと誤り訂正処理部２２ａ、２２ｂ、２２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回はLDPCに対応した情報）。その後、誤り訂正処理部２２ａ、２２ｂ、２２ｃ内部の誤り訂正処理制御部２５ａ、２５ｂ、２５ｃは得られた情報によりLDPC復号処理に対応したプログラム実行を開始する。プログラム実行が開始されると、誤り訂正処理制御部２５ａ、２５ｂ、２５ｃは複数のメモリバンク部２０ａ、２０ｂ、２０ｃにリードアドレスを出力する。複数のメモリバンク部２０ａ、２０ｂ、２０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出されたデータ列はインタコネクト部２１に出力される。
【００５８】
インタコネクト部２１は、入力されたデータ列と、コンフィグデータ保持部２４ａ、２４ｂ、２４ｃに存在するグループ構成情報とインタコネクトパラメータを基に、バレルシフタ部２１ｂを96データ分のバレルシフタ（図５の６２）として構成し、データ列変換を行う。データ列変換が行なわれた後に誤り訂正処理部２２ａ、２２ｂ、２２ｃにデータ列が入力される。データ列が誤り訂正演算部２３ａ、２３ｂ、２３ｃに入力されると誤り訂正処理部２３ａ、２３ｂ、２３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部２１に再び入力される。インタコネクト部２１では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理を行う。インタコネクト部２１でデータ順が元に戻されたデータ列は再びメモリバンク部２０ａ、２０ｂ、２０ｃに入力される。メモリバンク部２０ａ、２０ｂ、２０ｃに入力された演算結果のデータ列は誤り訂正制御部２５ａ、２５ｂ、２５ｃで生成されたライトアドレスにより、所定のアドレスに格納される。
【００５９】
以上のステップを実行することで、繰り返し数１回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を得ることができる。
【００６０】
以降に第２のケース、つまり、グループ構成情報により、インタコネクト部２１内部のバレルシフタ部２１ｂは３つのグループ（並列度Mの誤り訂正処理に対応できるものが３個分）を構成している場合について説明する。前提として、LDPC復号処理３コード分を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、それぞれのメモリバンク部には誤り訂正処理に対する入力データが768個ずつ格納されているとする。複数のメモリバンク部２０ａ、２０ｂ、２０ｃそれぞれに対して、格納できる１データ列のデータ数をM＝32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M＝32となる。この場合の誤り訂正処理装置は一度に３種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００６１】
まず、外部IF２６からコンフィグデータ保持部２４ａ、２４ｂ、２４ｃにインタコネクト部２１に対するグループ構成情報とインタコネクトパラメータと誤り訂正処理部２２ａ、２２ｂ、２２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回はLDPCに対応した情報）。その後、誤り訂正処理部２２ａ、２２ｂ、２２ｃ内部の誤り訂正処理制御部２５ａ、２５ｂ、２５ｃは得られた情報によりLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部２５ａ、２５ｂ、２５ｃは複数のメモリバンク部２０ａ、２０ｂ、２０ｃそれぞれにリードアドレスを出力する。複数のメモリバンク部２０ａ、２０ｂ、２０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された３つのデータ列はインタコネクト部２１に出力される。
【００６２】
インタコネクト部２１は、入力されたデータ列と、コンフィグデータ保持部２４ａ、２４ｂ、２４ｃに存在するグループ構成情報とインタコネクトパラメータを基に、バレルシフタ部２１ｂを32データ分のバレルシフタが３個存在する構成（図５の６３）に変更し、データ列変換を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部２２ａ、２２ｂ、２２ｃにデータ列が入力される。データ列が誤り訂正演算部２３ａ、２３ｂ、２３ｃにそれぞれ入力されると、誤り訂正処理部２３ａ、２３ｂ、２３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部２１に再び入力される。インタコネクト部２１では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理（つまり、32データ分のバレルシフタ３個分）を行う。インタコネクト部２１でデータ順が元に戻されたデータ列は再びメモリバンク部２０ａ、２０ｂ、２０ｃに入力される。メモリバンク部２０ａ、２０ｂ、２０ｃに入力された演算結果のデータ列は誤り訂正制御部２５ａ、２５ｂ、２５ｃで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
【００６３】
以上のステップを実行することで、繰り返し数１回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を３コード分得ることができる。
【００６４】
以降に第３のケース、つまり、インタコネクト部２１内部のバレルシフタ部２１ｂは２つのグループ（並列度M×2の誤り訂正処理と並列度Mの誤り訂正処理にそれぞれ対応できるもの）を構成している場合について説明する。前提として、ターボ復号処理１コード分を誤り訂正処理部２２ａ、２２ｂで行い、LDPC復号処理１コード分を誤り訂正処理部２２ｃで行うこととする。ターボ復号を行なうデータのコード長は512である。ターボ復号の符号化率を1/3とする。つまり、ターボ復号を行なうデータのコード長は合計で1536となる。LDPC復号を行なうデータのコード長は768である。つまり、メモリバンク部２０ａ、２０ｂ2にはターボ復号処理に対する入力データが合計で1536個格納されているとする。メモリバンク部２０ｃにはLDPC復号処理に対する入力データが768個格納されているとする。複数のメモリバンク部２０ａ、２０ｂ、２０ｃに対して、格納できる１データ列のデータ数をM＝32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M＝32となる。１度に使用するデータを、この場合の誤り訂正処理装置は一度に２種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００６５】
まず、外部IF２６からコンフィグデータ保持部２４ａ、２４ｂ、２４ｃにインタコネクト部２１に対するグループ構成情報とインタコネクトパラメータと誤り訂正処理部２２ａ、２２ｂ、２２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回は誤り訂正処理部２２ａ、２２ｂに対してターボ復号を、誤り訂正処理部２２ｃに対してLDPC復号を行うような情報）。その後、誤り訂正処理部２２ａ、２２ｂ、２２ｃ内部の誤り訂正処理制御部２５ａ、２５ｂ、２５ｃは得られた情報によりターボ復号処理とLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部２５ａ、２５ｂ、２５ｃは複数のメモリバンク部２０ａ、２０ｂ、２０ｃそれぞれにリードアドレスを出力する。複数のメモリバンク部２０ａ、２０ｂ、２０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された３つのデータ列はインタコネクト部２１に出力される。
【００６６】
インタコネクト部２１は、入力されたデータ列と、コンフィグデータ保持部２４ａ、２４ｂ、２４ｃに存在するグループ構成情報とインタコネクトパラメータを基に、バレルシフタ部２１ｂを32データ分のバレルシフタが１個存在する構成（図５の６２）に変更し、クロスバ部２１ａを２つの誤り訂正処理部２２ａ、２２ｂのみの接続となるように構成を変更する。インタコネクト部２１は変更した構成を用いて、入力されたデータ列に対してデータ列変換をそれぞれ行う。つまり、インタコネクト部２１はメモリバンク部２０ａ、２０ｂからの入力データ列に対しては、奇数繰り返し回のときにはインタリーブ処理を行い、偶数繰り返し回のときにはデータ列変換せずにそのまま出力する。また、インタコネクト部２１はメモリバンク部２０ｃからの入力データに対してバレルシフタ処理を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部２２ａ、２２ｂ、２２ｃにデータ列が入力される。データ列が誤り訂正演算部２３ａ、２３ｂ、２３ｃにそれぞれ入力されると、誤り訂正処理部２３ａ、２３ｂは１繰り返し分のターボ復号処理を行ない、誤り訂正処理部２３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部２１に再び入力される。
【００６７】
インタコネクト部２１は入力される演算結果のデータ列とインタコネクトパラメータにより、データ列変換を行う。つまり、インタコネクト部２１は誤り訂正処理部２３ａ、２３ｂから出力されたデータ列に対して奇数繰り返し回の時にはスルーし、偶数繰り返し回の時にデインタリーブ処理を行う。また、インタコネクト部２１は誤り訂正処理部２３ｃから出力されたデータ列に対して誤り訂正処理部への入力時とは逆向きのバレルシフタ処理（つまり、32データ分のバレルシフタ１個分）を行う。インタコネクト部２１でデータ順が元に戻されたデータ列は再びメモリバンク部２０ａ、２０ｂ、２０ｃに入力される。メモリバンク部２０ａ、２０ｂ、２０ｃに入力された演算結果のデータ列は誤り訂正制御部２５ａ、２５ｂ、２５ｃで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
【００６８】
以上のステップを実行することで、繰り返し数１回分のターボ復号処理とLDPC復号処理を同時に行うことができる。これを所定の繰り返し数分行なうことで、所望のターボ復号処理とLDPC復号の結果を得ることができる。
【００６９】
第２の実施形態では、誤り訂正処理部、および、メモリバンク部の数を３としているが、これは説明簡略化のためであり、誤り訂正処理部、および、メモリバンク部の数は３に制限されない。また、第２の実施形態ではターボ復号処理とLDPC復号処理とを対象として説明を行なったが、３つの誤り訂正処理部２２ａ、２２ｂ、２２ｃはそれぞれ独立して動作することが可能なため、ターボ復号、LDPC復号、ビタビ復号等の他の誤り訂正方式を組み合わせて、あるいは一つのみ選択して処理することができる。組み合わせも自由に選ぶことができる。
【００７０】
次に、第２の実施形態の効果について説明する。
【００７１】
第２の実施形態によるマルチコア型誤り訂正処理装置では、インタコネクト部２１内部のバレルシフタ部２１ｂがコンフィグデータ保持部２４ａ、２４ｂ、２４ｃに格納されているグループ構成情報により、複数の誤り訂正処理部が様々なグループを構成できるように構成されているため、様々な要求性能に対応した並列度で１つ、あるいは同時に複数のLDPC復号処理等の誤り訂正ができる。さらに、第２の実施形態では、第１の実施形態と異なり、インタコネクト部２１の制御に必要なデータがコンフィグデータ保持部２４ａ、２４ｂ、２４ｃにのみ格納しておけばいいので、プログラミングが比較的容易になり、制御系に関して回路規模の削減が期待できる。
【００７２】
［第３の実施形態］
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。第３の実施形態は第１の実施形態の変形である。第２の実施形態と第１の実施形態との違いは以下の通りである。第１の実施形態ではインタコネクト部１１内部のインタコネクト制御部１１ｃへの入力が、誤り訂正処理制御部１５ａ、１５ｂ、１５ｃとコンフィグデータ保持部１４ａ、１４ｂ、１４ｃの２方からであったのに対し、第３の実施形態では、誤り訂正処理制御部３５ａ、３５ｂ、３５ｃからのみとなっている点である。
【００７３】
図３を参照すると、第３の実施形態によるマルチコア型誤り訂正処理装置は、複数のメモリバンク部３０ａ、３０ｂ、３０ｃと、複数の誤り訂正処理部３２ａ、３２ｂ、３２ｃと、インタコネクト部３１とから構成されている。複数のメモリバンク部３０ａ、３０ｂ、３０ｃは処理対象データ（入力データと呼ぶ）や演算途中のデータ、結果を格納するために使用される。誤り訂正処理部３２ａ、３２ｂ、３２ｃは誤り訂正処理を行う。誤り訂正処理部３２ａ、３２ｂ、３２ｃは、受け取った入力データを実際に処理する誤り訂正演算部３３ａ、３３ｂ、３３ｃと、誤り訂正演算部３３ａ、３３ｂ、３３ｃの制御やメモリバンク部３０ａ、３０ｂ、３０ｃに対するメモリアドレス、インタコネクト部３１に必要なインタコネクトパラメータを生成する誤り訂正処理制御部３５ａ、３５ｂ、３５ｃと、外部IF３６から受け取る誤り訂正処理部３２ａ、３２ｂ、３２ｃ等を示した構成パラメータを保持するコンフィグデータ保持部３４ａ、３４ｂ、３４ｃを含む。インタコネクト部３１は、主にターボ復号で使用されるクロスバ部３１ａと、LDPC復号処理時に使用されるバレルシフタ部３１ｂとグルーピング、動作等を制御するインタコネクト制御部３１ｃを含む。
【００７４】
これらはそれぞれ次のように動作する。
【００７５】
メモリバンク部３０ａ、３０ｂ、３０ｃは、演算対象となるデータを格納する。これは、第１の実施形態と同様の部分である。
【００７６】
誤り訂正処理部３２ａ、３２ｂ、３２ｃは、実際の誤り訂正処理を行う。これも、第１の実施形態と同様の部分である。
【００７７】
インタコネクト部３１は、誤り訂正処理部３２ａ、３２ｂ、３２ｃ内の誤り訂正処理制御部３５ａ、３５ｂ、３５ｃから得られるグループ構成情報とインタコネクトパラメータとを基に動作する。インタコネクト制御部３１ｃはグループ構成情報を基にクロスバ部３１ａとバレルシフタ部３１ｂのグループ構成を決定する。また、インタコネクト制御部３１ｃはインタコネクトパラメータを基にクロスバ部３１ａ内部の接続変更、バレルシフタ部３１ｂのシフト処理を制御する。そうすることにより、ターボ復号化のインターリービング、LDPC復号化のバレルシフト等のデータ列変換を実現する。
【００７８】
グループ構成方法の例としてバレルシフタ部６１の構成を図５に示す。図のようにバレルシフタ部６１は、３つの誤り訂正処理部３２ａ、３２ｂ、３２ｃを１つのグループとして構成することができる（図５の６２を参照）。この場合、誤り訂正処理装置は並列度：M×3の誤り訂正処理に対応できる。また、バレルシフタ部６１は、グループ構成情報を変更することで他の例として１つの誤り訂正処理部３２ａ、３２ｂ、３２ｃそれぞれを１つのグループとして構成することもできる(図５の６３を参照）。この場合、誤り訂正処理装置は合計３つのグループを形成し、同時実行可能な３つの並列度：Mの誤り訂正処理に対応できる。また、バレルシフタ部６１は、２つの誤り訂正処理部３２ａ、３２ｂと、１つの誤り訂正処理部３２ｃとで２つのグループを形成することもできる（図５の６４を参照）。この場合、誤り訂正処理装置は同時実行可能な並列度：M×2の誤り訂正処理と並列度：Mの誤り訂正処理に対応できる。
【００７９】
図３を参照して第３の実施形態の全体の動作について詳細に説明する。インタコネクト部３１のグループ構成により、全体動作が異なるため、前述したインタコネクト部３１の動作説明中の３つのケースに対してそれぞれ説明する。
【００８０】
以降に第１のケース、つまり、インタコネクト部３１内部のバレルシフタ部３１ｂは１つのグループ（並列度M×3の誤り訂正処理に対応できるグループ）を構成している場合について説明する。前提として、LDPC復号処理を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、複数のメモリバンク部には誤り訂正処理に対する入力データが合計で768個格納されているとする。複数のメモリバンク部３０ａ、３０ｂ、３０ｃそれぞれに対して、格納できる１データ列のデータ数をM＝32とする。すなわち、メモリバンク部数が３なので、全てのメモリバンク部を同時にアクセスした場合に読み出す・書き込むことのできるデータ数は、M×3＝96となる。この場合の誤り訂正処理装置は一度に１種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００８１】
まず、外部IF３６からコンフィグデータ保持部３４ａ、３４ｂ、３４ｃにインタコネクト部３１に対するグループ構成情報と誤り訂正処理部３２ａ、３２ｂ、３２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回はLDPCに対応した情報）。その後、誤り訂正処理部３２ａ、３２ｂ、３２ｃ内部の誤り訂正処理制御部３５ａ、３５ｂ、３５ｃは得られた情報によりLDPC復号処理に対応したプログラム実行を開始する。プログラム実行が開始されると、誤り訂正処理制御部３５ａ、３５ｂ、３５ｃは複数のメモリバンク部３０ａ、３０ｂ、３０ｃにリードアドレスを出力する。また、インタコネクト部３１に対してインタコネクトパラメータとグループ構成情報を出力する。複数のメモリバンク部３０ａ、３０ｂ、３０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出されたデータ列はインタコネクト部３１に出力される。
【００８２】
インタコネクト部３１は、入力されたデータ列とインタコネクトパラメータとグループ構成情報を基に、バレルシフタ部３１ｂを96データ分のバレルシフタ（図５の６２）として構成し、データ列変換を行う。データ列変換が行なわれた後に誤り訂正処理部にデータ列が入力される。データ列が誤り訂正演算部３３ａ、３３ｂ、３３ｃに入力されると，誤り訂正処理部３３ａ、３３ｂ、３３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部３１に再び入力される。インタコネクト部３１では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理を行う。インタコネクト部３１でデータ順が元に戻されたデータ列は再びメモリバンク部３０ａ、３０ｂ、３０ｃに入力される。メモリバンク部３０ａ、３０ｂ、３０ｃに入力された演算結果のデータ列は誤り訂正制御部３５ａ、３５ｂ、３５ｃで生成されたライトアドレスにより、所定のアドレスに格納される。
【００８３】
以上のステップを実行することで、繰り返し数１回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を得ることができる。
【００８４】
次に第２のケース、つまり、インタコネクト部３１内部のバレルシフタ部３１ｂは３つのグループ（並列度Mの誤り訂正処理に対応できるもの３個分）を構成している場合について説明する。前提として、LDPC復号処理３コード分を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、それぞれのメモリバンク部には誤り訂正処理に対する入力データが768個ずつ格納されているとする。複数のメモリバンク部３０ａ、３０ｂ、３０ｃそれぞれに対して、格納できる１データ列のデータ数をM＝32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M＝32となる。この場合の誤り訂正処理装置は一度に３種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００８５】
まず、外部IF３６からコンフィグデータ保持部３４ａ、３４ｂ、３４ｃにインタコネクト部３１に対するグループ構成情報と誤り訂正処理部３２ａ、３２ｂ、３２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回はLDPCに対応した情報）。その後、誤り訂正処理部３２ａ、３２ｂ、３２ｃ内部の誤り訂正処理制御部３５ａ、３５ｂ、３５ｃは得られた情報によりLDPC復号処理に対応したプログラムをそれぞれ開始する。プログラムが開始されると、誤り訂正処理制御部３５ａ、３５ｂ、３５ｃは複数のメモリバンク部３０ａ、３０ｂ、３０ｃそれぞれにリードアドレスを出力する。また、インタコネクト部３１に対してインタコネクトパラメータとグループ構成情報を出力する。複数のメモリバンク部３０ａ、３０ｂ、３０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された３つのデータ列はインタコネクト部３１に出力される。
【００８６】
インタコネクト部３１は、入力されたデータ列とインタコネクトパラメータとグループ構成情報を基に、バレルシフタ部３１ｂを32データ分のバレルシフタが３個存在する構成（図５の６３）に変更し、データ列変換を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部３２ａ、３２ｂ、３２ｃにデータ列が入力される。データ列が誤り訂正演算部３３ａ、３３ｂ、３３ｃにそれぞれ入力されると誤り訂正処理部３３ａ、３３ｂ、３３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部３１に再び入力される。
【００８７】
インタコネクト部３１では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理（つまり、32データ分のバレルシフタ３個分）を行う。インタコネクト部３１でデータ順が元に戻されたデータ列は再びメモリバンク部３０ａ、３０ｂ、３０ｃに入力される。メモリバンク部３０ａ、３０ｂ、３０ｃに入力された演算結果のデータ列は誤り訂正制御部３５ａ、３５ｂ、３５ｃで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
【００８８】
以上のステップを実行することで、繰り返し数１回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を３コード分得ることができる。
【００８９】
以降に第３のケース、つまり、インタコネクト部３１内部のバレルシフタ部３１ｂは２つのグループ（並列度M×2の誤り訂正処理と並列度Mの誤り訂正処理をそれぞれ対応できるもの）を構成している場合について説明する。前提として、ターボ復号処理１コード分を誤り訂正処理部３２ａ、３２ｂで行い、LDPC復号処理１コード分を誤り訂正処理部３２ｃで行うこととする。ターボ復号を行なうデータのコード長は512である。ターボ復号の符号化率を1/3とする。つまり、ターボ復号を行なうデータのコード長は合計で1536となる。LDPC復号を行なうデータのコード長は768である。つまり、メモリバンク部３０ａ、３０ｂにはターボ復号処理に対する入力データが合計で1536個格納されているとする。メモリバンク部３０ｃにはLDPC復号処理に対する入力データが768個格納されているとする。複数のメモリバンク部３０ａ、３０ｂ、３０ｃに対して、格納できる１データ列のデータ数をM＝32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M＝32となる。１度に使用するデータに対し、この場合の誤り訂正処理装置は一度に２種類の誤り訂正処理を実行することができる。以下に動作を示す。
【００９０】
まず、外部IF３６からコンフィグデータ保持部３４ａ、３４ｂ、３４ｃにインタコネクト部３１に対するグループ構成情報と誤り訂正処理部３２ａ、３２ｂ、３２ｃに対してどの誤り訂正方式で処理するかを示す情報が入力される（今回は誤り訂正処理部３２ａ、３２ｂにおいてターボ復号を行い、誤り訂正処理部３２ｃにおいてLDPC復号を行うような情報）。その後、誤り訂正処理部３２ａ、３２ｂ、３２ｃ内部の誤り訂正処理制御部３５ａ、３５ｂ、３５ｃは得られた情報によりターボ復号処理とLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部３５ａ、３５ｂ、３５ｃは複数のメモリバンク部３０ａ、３０ｂ、３０ｃそれぞれにリードアドレスを出力する。また、インタコネクト部３１に対してインタコネクトパラメータとグループ情報を出力する。複数のメモリバンク部３０ａ、３０ｂ、３０ｃは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された３つのデータ列はインタコネクト部３１に出力される。
【００９１】
インタコネクト部３１は、入力されたデータ列とインタコネクトパラメータとグループ構成情報を基に、バレルシフタ部３１ｂを32データ分のバレルシフタが１個存在する構成（図５の６２）に変更し、クロスバ部３１ａを２つの誤り訂正処理部３２ａ、３２ｂのみの接続となるように構成を変更する。インタコネクト部３１は変更した構成を用いて、入力されたデータ列に対してデータ列変換をそれぞれ行う。つまり、インタコネクト部３１はメモリバンク部３０ａ，３０ｂからの入力データ列に対しては、奇数繰り返し回のときにはインタリーブ処理を行い、偶数繰り返し回のときにはデータ列変換せずにそのまま出力する。また、インタコネクト部３１はメモリバンク部３０ｃからの入力データに対してバレルシフタ処理を行う。
【００９２】
データ列変換が行なわれた後にそれぞれの誤り訂正処理部３２ａ、３２ｂ、３２ｃにデータ列が入力される。データ列が誤り訂正演算部３３ａ、３３ｂ、３３ｃにそれぞれ入力されると，誤り訂正処理部３３ａ、３３ｂは１繰り返し分のターボ復号処理を行ない、誤り訂正処理部３３ｃは１繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部３１に再び入力される。インタコネクト部３１は入力される演算結果のデータ列とインタコネクトパラメータにより、データ列変換を行う。つまり、インタコネクト部３１は誤り訂正処理部３３ａ、３３ｂから出力されたデータ列に対して奇数繰り返し回の時にはスルーし、偶数繰り返し回の時にデインタリーブ処理を行う。また、インタコネクト部３１は誤り訂正処理部３３ｃから出力されたデータ列に対して誤り訂正処理部への入力時とは逆向きのバレルシフタ処理（つまり、32データ分のバレルシフタ１個分）を行う。インタコネクト部３１でデータ順が元に戻されたデータ列は再びメモリバンク部３０ａ、３０ｂ、３０ｃに入力される。メモリバンク部３０ａ、３０ｂ、３０ｃに入力された演算結果のデータ列は誤り訂正制御部３５ａ、３５ｂ、３５ｃで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
【００９３】
以上のステップを実行することで、繰り返し数１回分のターボ復号処理とLDPC復号処理を同時に行うことができる。これを所定の繰り返し数分行なうことで、所望のターボ復号処理とLDPC復号の結果を得ることができる。
【００９４】
第３の実施形態では、誤り訂正処理部、および、メモリバンク部の数を３としているが、これは説明簡略化のためであり、誤り訂正処理部、および、メモリバンク部数は３に制限されない。また、第３の実施形態ではターボ復号処理とLDPC復号処理とを対象として説明を行なったが、３つの誤り訂正処理部３２ａ、３２ｂ、３２ｃはそれぞれ独立して動作することが可能なため、ターボ復号、LDPC復号、ビタビ復号等の他の誤り訂正方式を組み合わせて、あるいは一つのみ選択して処理することができる。誤り訂正方式の組み合わせも自由に選ぶことができる。
【００９５】
次に、第３の実施形態の効果について説明する。
【００９６】
第３の実施形態では、インタコネクト部３１内部のバレルシフタ部３１ｂが誤り訂正処理制御部３５ａ、３５ｂ、３５ｃから得られるインタコネクトパラメータとグループ構成情報により、複数の誤り訂正処理部が様々なグループを構成できるように構成されているため、様々な要求性能に対応した並列度で１つ、あるいは同時に複数のターボ復号やLDPC復号処理等の誤り訂正ができる。さらに、第３の実施形態では、第２の実施形態と異なり、インタコネクト部３１の制御に必要なデータを誤り訂正処理制御部で生成するため外部から入力されるレイテンシ抜きでインタコネクト部３１の制御を行うことができ、制御系に関して回路規模の削減も期待できる。
【００９７】
［第４の実施形態］
次に、本発明の第４の実施形態について図面を参照して詳細に説明する。第４の実施形態は第１の実施形態の変形である。第４の実施形態と第１の実施形態との違いは以下の通りである。第４の実施形態におけるマルチコア型誤り訂正装置では、第１の実施形態におけるクロスバ部１１ａが省略されている。すなわち、第４の実施形態による誤り訂正装置は、インタコネクト部４１がバレルシフタ部４１ｂとインタコネクト制御部４１ｃのみとなっている。動作は第１の実施形態と同様である。第４の実施形態では、LDPC符号化に最適化された誤り訂正処理システムとすることができ、回路規模をより削減できる効果がある。
【産業上の利用可能性】
【００９８】
本発明は、無線通信システム内部の誤り訂正処理装置といった用途に適用できる。
【符号の説明】
【００９９】
１０ａ〜１０ｃ、２０ａ〜２０ｃ、３０ａ〜３０ｃ、４０ａ〜４０ｃ、５０ａ〜５０ｃ    メモリバンク部
１１、２１、３１、４１、５１    インタコネクト部
１１ａ、２１ａ、３１ａ、５１ａ    クロスバ部
１１ｂ、２１ｂ、３１ｂ、４１ｂ、５１ｂ、６１    バレルシフタ部
１１ｃ、２１ｃ、３１ｃ、４１ｃ、５１ｃ    インタコネクト制御部
１２ａ〜１２ｃ、２２ａ〜２２ｃ、３２ａ〜３２ｃ、４２ａ〜４２ｃ、５２ａ〜５２ｃ    誤り訂正処理部
１３ａ〜１３ｃ、２３ａ〜２３ｃ、３３ａ〜３３ｃ、４３ａ〜４３ｃ、５３ａ〜５３ｃ    誤り訂正演算部
１４ａ〜１４ｃ、２４ａ〜２４ｃ、３４ａ〜３４ｃ、４４ａ〜４４ｃ    コンフィグデータ保持部
１５ａ〜１５ｃ、２５ａ〜２５ｃ、３５ａ〜３５ｃ、４５ａ〜４５ｃ、５５ａ〜５５ｃ    誤り訂正処理制御部
１６、２６、３６、４６、    外部IF
【図１】
0005692780.tif 000002
【図２】
0005692780.tif 000003
【図３】
0005692780.tif 000004
【図４】
0005692780.tif 000005
【図５】
0005692780.tif 000006
【図６】
0005692780.tif 000007