JP5692780B2 - マルチコア型誤り訂正処理システムおよび誤り訂正処理装置 - Google Patents

マルチコア型誤り訂正処理システムおよび誤り訂正処理装置 Download PDF

Info

Publication number
JP5692780B2
JP5692780B2 JP2010225403A JP2010225403A JP5692780B2 JP 5692780 B2 JP5692780 B2 JP 5692780B2 JP 2010225403 A JP2010225403 A JP 2010225403A JP 2010225403 A JP2010225403 A JP 2010225403A JP 5692780 B2 JP5692780 B2 JP 5692780B2
Authority
JP
Japan
Prior art keywords
error correction
correction processing
data
units
data string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010225403A
Other languages
English (en)
Other versions
JP2013179378A (ja
JP2013179378A5 (ja
Inventor
友義 小堀
友義 小堀
クンゼ ステフェン
クンゼ ステフェン
マトス エミル
マトス エミル
フェットワイズ ゲルハルト
フェットワイズ ゲルハルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010225403A priority Critical patent/JP5692780B2/ja
Priority to PCT/JP2011/073281 priority patent/WO2012046864A2/en
Priority to US13/877,650 priority patent/US9250996B2/en
Priority to EP11773571.2A priority patent/EP2625787A2/en
Publication of JP2013179378A publication Critical patent/JP2013179378A/ja
Publication of JP2013179378A5 publication Critical patent/JP2013179378A5/ja
Application granted granted Critical
Publication of JP5692780B2 publication Critical patent/JP5692780B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1145Pipelined decoding at code word level, e.g. multiple code words being decoded simultaneously
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1162Array based LDPC codes, e.g. array codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6513Support of multiple code types, e.g. unified decoder for LDPC and turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization

Description

本発明は無線通信におけるターボ復号、LDPC復号等の誤り訂正処理分野に関し、特に、高スループット獲得を目指したマルチコアプロセッサを用いた並列アーキテクチャによるシステムに関する。
近年の無線通信システムでは、高いスループットとエラー耐性が要求される。それらを満たすためにターボ符号化、LDPC(Low Density Parity Check)符号化、畳み込み符号化等の誤り訂正処理をはじめとする、様々な技術がLTE(Long Term Evolution)、WiMax等の様々な無線通信システムに採用されている。これらの誤り訂正処理、特に復号アルゴリズムは、多量のビット処理や、繰り返し処理が多用され、演算量が非常に多い。そこで、現在までにそれぞれの復号アルゴリズムに適した専用ハードウェアエンジンに関する様々な提案がなされてきている。これら専用ハードウェアエンジンを用いることで要求される高いスループット、高い誤り訂正能力を実現できる。
しかしながら、これら専用ハードウェアエンジンは、高い要求性能を実現するために単一の復号方式をターゲットとした構成としている。次世代無線通信システムでの鍵となるマルチスタンダードワイヤレスシステムを構成するために必要なソフトウェア無線機において、これら専用ハードウェアエンジンを用いる場合、要求される通信方式で使用される全ての誤り訂正アルゴリズムに適したエンジンを個別に取り入れる必要がある。その場合、回路規模はこれら専用ハードウェアエンジン数分だけ増大し、システム全体の規模に影響を与えてしまう。また、複数種類の専用ハードウェアエンジンをその都度開発する必要があり、開発コストの増大を招く。それらの課題に対して、これまでに複数の誤り訂正アルゴリズムに対応してプログラマブルエンジンが提案されている。要求される高いスループットを実現する観点から、プログラマブルエンジンのアーキテクチャは動作周波数の高い単一のプロセッサ(非特許文献1参照)や、複数並列に配置したマルチプロセッサ方式(非特許文献2参照)が提案されている。消費電力が抑えられることの利点から、無線通信システムでは後者のマルチプロセッサ方式が有効である。
非特許文献2に記載されたプログラマブルエンジンは、図6に示すように、複数のメモリバンク部50a、50b、50cと複数の誤り訂正処理部52a、52b、52cと、インタコネクト部51で構成されている。複数のメモリバンク部50a〜50cはインタコネクト部51で複数の誤り訂正処理部52a〜52cと接続されている。複数のメモリバンク部50a〜50cではそれぞれ、複数個のデータを同時に読み書きすることが可能である。このような構成を有する非特許文献2に記載のエンジンは、次のように動作する。
前提としてメモリバンク部の数と誤り訂正処理部の数をN、1つのメモリバンク部で同時に読み書きが可能なデータ数をMワードとする。図6では、説明を簡素化するため、N=3、M=32とする。複数のメモリバンク部には誤り訂正処理に対する入力データが格納されている。1つのメモリバンク部で同時にアクセスできる複数のデータをデータ列と呼ぶ。
初めに、LDPC復号を対象とした場合の動作について示す。まず、複数のメモリバンク部50a〜50cからデータ列が読み出される。読み出されたデータ列はメモリバンク部50a、50b、50cと接続されているバレルシフタ部51a、51b、51cにて所定のシフト量分だけシフトされる。このシフト量はLDPC符号化の種類によって異なる。シフトされたデータ列は誤り訂正処理部52a、52b、52cに入力される。データ列が誤り訂正処理部52a〜52cに入力されると、LDPC復号に対応したプログラムが誤り訂正処理部52a〜52cで実行され、1繰り返し分のLDPC復号処理が行われる。得られた演算結果はインタコネクト部51に出力される。インタコネクト部51により入力されたデータ列は入力時に行なわれたシフト処理の逆シフト処理が行われ、元のデータ列順に戻る。元のデータ列順に戻ったデータ列はメモリバンク部に書き戻される。この一連の動作を所定の繰り返し分行い、1コード分のLDPC復号が実行される。
次にターボ復号を対象とした場合の動作について述べる。繰り返し数が偶数番目か奇数番目かにより、インタコネクト部51の処理が異なる。偶数回目の繰り返し数の場合、メモリバンク部50a〜50cから入力されるデータ列はそのままデータ順を入れ替えずに誤り訂正処理部52a〜52cに入力される。奇数回目の繰り返し数時の場合、メモリバンク部50a〜50cから入力されるデータ列はインタコネクト部51のクロスバ51dによりインターリービングが行なわれ、データ順を入れ替えた後に誤り訂正処理部52a〜52cに入力される。誤り訂正処理では、データ列が入力されるとターボ復号に対応したプログラムが実行され、ターボ復号処理が行われる。得られた演算結果は、メモリバンク部からのデータ列入力時と同様に繰り返し数が偶数番目か奇数番目かにより、デインターリービングが施され、再びメモリバンク部に書き戻される。この一連の動作を所定の繰り返し数分行い、ターボ復号が実行される。
以上のように非特許文献2は、LDPC復号やターボ復号処理といった、代表的な誤り訂正処理を同一のアーキテクチャで実現することができる。
しかし、非特許文献2のアーキテクチャは、図6に示す通り、メモリバンク部、誤り訂正処理部間の接続構成がそれぞれに対して限定的な接続となる。複数の種類の誤り訂正方式を処理しようとする場合、非特許文献2は一度の処理において1種類の誤り訂正方式に対応した処理しか実行できない。そのため、逐次的に複数の誤り訂正処理をする必要がある。単一の誤り訂正方式であってもコード長が異なる場合は同時に複数種類のコード長に対する誤り訂正処理を行うことができない。次世代無線通信システム、特に基地局では、複数ユーザの復号処理が必要である。また、複数の誤り訂正方式や複数のコード長の処理を効率的に行えることが望まれる。現存の無線通信システムにおいても、通信チャネル毎に誤り訂正処理が異なる場合が多く、複数種類の誤り訂正方式、複数の異なるコード長の処理を一度に行えることが望まれる。
"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.
本発明が解決しようとする課題は、前述したようなマルチコア型の誤り訂正処理装置において、複数の誤り訂正方式、あるいは、複数のコード長の処理に対して演算リソースを有効利用できず、1回の動作に対して、1種類の誤り訂正処理しか実行できない点である。その理由は、非特許文献2における図6のようなメモリバンク、誤り訂正処理部間の接続構成では、それぞれに対して限定的な接続となるためである。この構成では様々な要求性能に対しての処理を行おうとした場合、複数の誤り訂正処理を同時に実行すること、あるいは、要求性能に応じて適切な演算リソースを提供することが困難である。特にLDPC復号処理においては、バレルシフタ部が一度に単一、単数のシフト量しかシフトを実行できないため、複数の誤り訂正処理、あるいは、複数の異なるコード長のLDPC復号処理を実行しようとする場合、非特許文献2は逐次的に処理する必要がある。
本発明は、上記課題を解決しようとするものであり、様々な要求性能に対して、効率的に演算処理、各処理部へのデータ転送を可能とし、複数の誤り訂正方式、複数のコード長の誤り訂正処理を同時実行可能とするようなマルチコア型誤り訂正処理システムを提供しようとするものである。
本発明の態様によれば、複数のデータ格納手段と、前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、外部からの制御パラメータを受け取る、外部入力手段と、前記外部入力手段から受け取ったデータを格納する外部パラメータ格納手段と、前記データ列変換手段からデータを受け取り、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行う複数の誤り訂正処理手段と、を含み、前記誤り訂正処理手段は、誤り訂正演算手段と、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行うように前記誤り訂正演算手段を制御する誤り訂正処理制御手段と、を含み、前記データ列変換手段は、入力される制御情報を基に複数の前記誤り訂正処理手段をまとめて一つ、もしくは複数のグループの出力先としてシフト処理を基本としたローテーション動作を含むバレルシフタ動作によるデータ列変換を行うことを特徴とするマルチコア型誤り訂正処理システムが提供される。
本発明の別の態様によれば、複数のメモリバンク部と、前記複数のメモリバンク部からデータを受け取り、それらデータ列をシフトさせることによりデータ順を変換するバレルシフタ部を含むインタコネクト部と、外部からの制御パラメータを受け取る、外部インタフェースと、前記外部インタフェースから受け取ったデータを格納する外部パラメータ保持部と、前記インタコネクト部からデータを受け取り、前記外部パラメータ保持部に格納されたパラメータを基に所定の誤り訂正処理を行う複数の誤り訂正処理部と、を備え、前記誤り訂正処理部は、誤り訂正演算部と、前記外部パラメータ保持部に格納されたパラメータを基に所定の誤り訂正処理を行うように前記誤り訂正演算部を制御する誤り訂正処理制御部と、を含み、前記インタコネクト部は、入力される制御情報を基に複数の前記誤り訂正処理部をまとめて一つ、もしくは複数のグループの出力先としてシフト処理を基本としたローテーション動作を含むバレルシフタ動作によるデータ列変換を行うことを特徴とするマルチコア型誤り訂正処理装置が提供される。
上記態様によるマルチコア型誤り訂正処理装置は、前記インタコネクト部において、外部、もしくは内部から各誤り訂正処理部に関する制御パラメータが入力され、それらのデータにより、インタコネクト部内部のバレルシフタが1個以上、複数種のグループを構成できるように動作する。このような構成を採用し、複数のメモリバンク部と複数の誤り訂正処理部をインタコネクト部で接続することにより本発明の課題を達成することができる。
本発明の更に別の態様によれば、複数のデータ格納手段と、前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、外部からの制御パラメータを受け取る、外部入力手段と、前記外部入力手段から受け取ったデータを格納する外部パラメータ格納手段と、前記データ列変換手段からデータを受け取り、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行う複数の誤り訂正処理手段と、を含むマルチコア型誤り訂正処理システムによる誤り訂正処理方法であって、前記誤り訂正処理手段は、誤り訂正演算処理と、前記外部パラメータ格納手段に格納されたパラメータを基に所定の誤り訂正処理を行うように前記誤り訂正演算処理を制御する誤り訂正処理制御を実行し、前記データ列変換手段は、入力される制御情報を基に複数の前記誤り訂正処理手段をまとめて一つ、もしくは複数のグループの出力先としてシフト処理を基本としたローテーション動作を含むバレルシフタ動作によるデータ列変換を実行することを特徴とするマルチコア型誤り訂正処理方法が提供される。
以上のような構成をとることで、以下の効果を得ることができる。
本発明の効果は、複数の異なる構成のデータ列を同時に処理できることにある。その理由は、誤り訂正処理部、もしくは、外部から制御用パラメータが入力されることで、インタコネクト部が複数種類、複数個のグループを構成できるように動作するためである。
本発明の第1の実施形態による誤り訂正処理装置の構成を示すブロック図である。 本発明の第2の実施形態による誤り訂正処理装置の構成を示すブロック図である。 本発明の第3の実施形態による誤り訂正処理装置の構成を示すブロック図である。 本発明の第4の実施形態による誤り訂正処理装置の構成を示すブロック図である。 本発明を実施するためのバレルシフタのグループ構成の具体例を示す図である。 本発明に関連する誤り訂正処理装置の構成を示すプロック図である。
次に、本発明をいくつかの実施形態について図面を参照して詳細に説明する。
以下に説明する実施形態は、マルチコア型誤り訂正処理システムあるいは誤り訂正処理装置として機能するが、以下では、マルチコア型誤り訂正処理装置に適用した場合について説明する。
[第1の実施形態]
図1を参照すると、本発明の第1の実施形態によるマルチコア型誤り訂正処理装置は、複数のメモリバンク部10a、10b、10cと、インタコネクト部11と、複数の誤り訂正処理部12a、12b、12cとから構成されている。図1はメモリバンク部、誤り訂正処理部が3個の場合を示しているが、説明を簡素化するためであり、3個に限定されるものでないことは言うまでも無い。これは、後述される実施形態においても同様である。複数のメモリバンク部10a〜10cは処理対象データ(入力データと呼ぶ)や演算途中のデータ、結果を格納するために使用される。インタコネクト部(データ列変換手段)11は、主にターボ復号で使用されるクロスバ部11aと、LDPC復号処理時に使用されるバレルシフタ部11bとグループ構成、動作等を制御するインタコネクト制御部11cを含む。インタコネクト部11は、メモリバンク部の他に誤り訂正処理部と接続している。誤り訂正処理部12a〜12cは誤り訂正処理を行う。複数の誤り訂正処理部12a〜12cはインタコネクト部11と接続している。誤り訂正処理部12a、12b、12cはそれぞれ、受け取った入力データを実際に処理する誤り訂正演算部13a、13b、13cと、誤り訂正演算部13a、13b、13cの制御やメモリバンク部10a、10b、10cに対するメモリアドレス、インタコネクト部11に必要なインタコネクトパラメータを生成する誤り訂正処理制御部15a、15b、15cと、外部IF(Interface)(外部入力手段)16から受け取る誤り訂正処理部12a、12b、12やインタコネクト部11をどのようなグループに構成するかを示した構成パラメータを保持するコンフィグデータ保持部(外部パラメータ格納手段)14a、14b、14cを含む。
これらはそれぞれ次のように動作する。
メモリバンク部10a、10b、10cは、誤り訂正処理制御部15a、15b、15cにより制御される。メモリバンク部10a、10b、10cは誤り訂正処理制御部15a、15b、15cで生成されるアドレスを受け取り、該アドレスに格納されているデータをインタコネクト部11に出力する。また、インタコネクト部11から出力されるデータを誤り訂正処理制御部15a、15b、15cで生成されるアドレスによりデータを格納する。1つのメモリバンク部で1つのアドレスにより、同時にアクセスできるデータはM個(Mは2以上の整数)である。
誤り訂正処理部12a、12b、12cは、実際の誤り訂正処理を行う。内部に含まれている誤り訂正処理制御部15a、15b、15cは、所定の復号アルゴリズムに対応したプログラムシーケンスを実行し、制御信号を誤り訂正演算部13a、13b、13c、および、メモリバンク部10a、10b、10c、インタコネクト部11に発行する。制御信号を受け取った誤り訂正演算部は、メモリバンク部10a、10b、10cから入力されるデータ列を用いて、所定の復号アルゴリズムを実行する。コンフィグデータ保持部14a、14b、14cは外部IF16と接続されており、外部モジュールから誤り訂正処理構成データを受け取る。
インタコネクト部11は、コンフィグデータ保持部14a、14b、14cから得られるグループ構成情報(データ変換構成情報あるいはインタコネクト構成情報)と誤り訂正処理部内の誤り訂正処理制御部15a、15b、15cから得られるインタコネクトパラメータ(データ変換制御情報あるいはインタコネクト制御情報)とを基に動作する。インタコネクト制御部11cはグループ構成情報を基にクロスバ部11aとバレルシフタ部11bのグループ構成を決定する。また、インタコネクト制御部11cはインタコネクトパラメータを基にクロスバ部11a内部の接続変更、バレルシフタ部11bのシフト処理を制御する。そうすることにより、ターボ復号化のインターリービング、LDPC復号化のバレルシフト等のデータ列変換を実現する。
グループ構成方法の例としてバレルシフタ部61の構成を図5に示す。図のようにバレルシフタ部61は、3つの誤り訂正処理部12a、12b、12cを1つのグループとして構成することができる(図5の参照番号62を参照)。この場合、本発明の誤り訂正処理装置は並列度:M×3の誤り訂正処理に対応できる。
また、バレルシフタ部61は、グループ構成情報を変更することで他の例として1つの誤り訂正処理部12a、12b、12cそれぞれを1つのグループとして構成することもできる(図5の参照番号63を参照)。この場合、誤り訂正処理装置は合計3つのグループを形成し、同時実行可能な3つの並列度:Mの誤り訂正処理に対応できる。
また、バレルシフタ部61は、2つの誤り訂正処理部12a、12bと、1つの誤り訂正処理部12cとで2つのグループを形成することもできる(図5の参照番号64を参照)。この場合、本発明の誤り訂正処理装置は同時実行可能な並列度:M×2の誤り訂正処理と並列度:Mの誤り訂正処理に対応できる。
図1を参照して第1の実施形態によるマルチコア型誤り訂正処理装置の全体の動作について詳細に説明する。インタコネクト部11のグループ構成により、全体動作が異なるため、前述したインタコネクト部11の動作説明中の3つのケースに対してそれぞれ説明する。
以降に第1のケース、つまり、グループ構成情報により、インタコネクト部11内部のバレルシフタ部は1つのグループ(並列度M×3の誤り訂正処理に対応できるもの)を構成している場合について説明する。前提として、LDPC復号処理を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、複数のメモリバンク部10a、10b、10cには誤り訂正処理に対する入力データが合計で768個格納されているとする。複数のメモリバンク部10a、10b、10cそれぞれに対して、格納できる1データ列のデータ数をM=32とする。すなわち、メモリバンク部数が3なので、全てのメモリバンク部を同時にアクセスした場合に読み出す・書き込むことのできるデータ数は、M×3=96となる。この場合の誤り訂正処理装置は一度に1種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF16からコンフィグデータ保持部14a、14b、14cに、インタコネクト部11に対するグループ構成情報と誤り訂正処理部12a、12b、12cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回はLDPCに対応した情報)。その後、誤り訂正処理部12a、12b、12c内部の誤り訂正処理制御部15a、15b、15cは得られた情報によりLDPC復号処理に対応したプログラム実行を開始する。プログラム実行が開始されると、誤り訂正処理制御部15a、15b、15cは複数のメモリバンク部10a、10b、10cにリードアドレスを出力する。また、インタコネクト部11に対してインタコネクトパラメータを出力する。複数のメモリバンク部10a、10b、10cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出されたデータ列はインタコネクト部11に出力される。
インタコネクト部11は、入力されたデータ列とインタコネクトパラメータ、コンフィグデータ保持部14a、14b、14cに存在するグループ構成情報を基に、バレルシフタ部11bを96データ分のバレルシフタ(図5の62)として構成し、データ列変換を行う。データ列変換が行なわれた後に誤り訂正処理部12a、12b、12cにデータ列が入力される。データ列が誤り訂正演算部13a、13b、13cに入力されると、誤り訂正処理部13a、13b、13cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部11に再び入力される。インタコネクト部11は入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部12a〜12cへの入力時とは逆向きのバレルシフタ処理を行う。インタコネクト部11でデータ順が元に戻されたデータ列は再びメモリバンク部10a、10b、10cに入力される。メモリバンク部10a、10b、10cに入力された演算結果のデータ列は誤り訂正制御部15a、15b、15cで生成されたライトアドレスにより、所定のアドレスに格納される。
以上のステップを実行することで、繰り返し数1回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を得ることができる。
以降に第2のケース、つまり、グループ構成情報により、インタコネクト部11内部のバレルシフタ部11bは3つのグループ(並列度Mの誤り訂正処理に対応できるものが3個分)を構成している場合について説明する。前提として、LDPC復号処理3コード分を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、それぞれのメモリバンク部10a〜10cには誤り訂正処理に対する入力データが768個ずつ格納されているとする。複数のメモリバンク部10a、10b、10cそれぞれに対して、格納できる1データ列のデータ数をM=32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M=32となる。この場合の誤り訂正処理装置は一度に3種類の誤り訂正処理を実行することができる。以下に動作について説明する。
まず、外部IF16からコンフィグデータ保持部14a、14b、14cにインタコネクト部11に対するグループ構成情報と誤り訂正処理部12a、12b、12cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回はLDPCに対応した情報)。その後、誤り訂正処理部12a、12b、12c内部の誤り訂正処理制御部15a、15b、15cは得られた情報によりLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部15a、15b、15cは複数のメモリバンク部10a、10b、10cそれぞれにリードアドレスを出力する。また、インタコネクト部11に対してインタコネクトパラメータを出力する。複数のメモリバンク部10a、10b、10cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された3つのデータ列はインタコネクト部11に出力される。
インタコネクト部11は、入力されたデータ列とインタコネクトパラメータ、コンフィグデータ保持部14a、14b、14cに存在するグループ構成情報を基に、バレルシフタ部11bを32データ分のバレルシフタが3個存在する構成(図5の63)に変更し、データ列変換を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部12a、12b、12cにデータ列が入力される。データ列が誤り訂正演算部13a、13b、13cにそれぞれ入力されると誤り訂正演算部13a、13b、13cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部11に再び入力される。インタコネクト部11では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部12a〜12cへの入力時とは逆向きのバレルシフタ処理(つまり、32データ分のバレルシフタ3個分)を行う。インタコネクト部11でデータ順が元に戻されたデータ列は再びメモリバンク部10a、10b、10cに入力される。メモリバンク部10a、10b、10cに入力された演算結果のデータ列は誤り訂正制御部15a、15b、15cで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
以上のステップを実行することで、繰り返し数1回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果3コード分を得ることができる。
以降に第3のケース、つまり、グループ構成情報により、インタコネクト部11内部のバレルシフタ部11bは2つのグループ(並列度M×2の誤り訂正処理と並列度Mの誤り訂正処理にそれぞれ対応できるもの)を構成している場合について説明する。前提として、ターボ復号処理1コード分を誤り訂正処理部12a、12bで行い、LDPC復号処理1コード分を誤り訂正処理部12cで行うこととする。ターボ復号を行なうデータのコード長は512である。ターボ復号の符号化率を1/3とする。つまり、ターボ復号を行なうデータのコード長は合計で1536となる。LDPC復号を行なうデータのコード長は768である。つまり、メモリバンク部10a、10bにはターボ復号処理に対する入力データが合計で1536個格納されているとする。メモリバンク部10cにはLDPC復号処理に対する入力データが768個格納されているとする。複数のメモリバンク部10a、10b、10cに対して、格納できる1データ列のデータ数をM=32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M=32となる。1度に使用するデータを、この場合の誤り訂正処理装置は一度に2種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF16からコンフィグデータ保持部14a、14b、14cにインタコネクト部11に対するグループ構成情報と誤り訂正処理部12a、12b、12cに対してどの誤り訂正方式を処理するかを示す情報が入力される(今回は誤り訂正処理部12a、12bに対してターボ復号を、誤り訂正処理部12cに対してLDPC復号を行うような情報)。その後、誤り訂正処理部12a、12b、12c内部の誤り訂正処理制御部15a、15b、15cは得られた情報によりターボ復号処理とLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部15a、15b、15cは複数のメモリバンク部10a、10b、10cそれぞれにリードアドレスを出力する。また、インタコネクト部11に対してインタコネクトパラメータを出力する。複数のメモリバンク部10a、10b、10cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された3つのデータ列はインタコネクト部11に出力される。
インタコネクト部11は、入力されたデータ列とインタコネクトパラメータ、コンフィグデータ保持部14a、14b、14cに存在するグループ構成情報を基に、バレルシフタ部11bを32データ分のバレルシフタが1個存在する構成(図5の62)に変更し、クロスバ部11bを2つの誤り訂正処理部12a、12bのみの接続となるように構成を変更する。インタコネクト部11は変更した構成を用いて、入力されたデータ列に対してデータ列変換をそれぞれ行う。つまり、インタコネクト部11はメモリバンク部10a、10bからの入力データ列に対しては、奇数繰り返し回の時にはインタリーブ処理を行い、偶数繰り返し回の時にはデータ列変換せずにそのまま出力する。また、インタコネクト部11はメモリバンク部10cからの入力データに対してバレルシフタ処理を行う。
データ列変換が行なわれた後にそれぞれの誤り訂正処理部12a、12b、12cにデータ列が入力される。データ列が誤り訂正演算部13a、13b、13cにそれぞれ入力されると誤り訂正処理部13a、13bは1繰り返し分のターボ復号処理を、誤り訂正処理部13cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部11に再び入力される。インタコネクト部11は入力される演算結果のデータ列とインタコネクトパラメータにより、データ列変換を行う。つまり、インタコネクト部11は誤り訂正処理部13a、13bから出力されたデータ列に対して奇数繰り返し回のときにはスルーし、偶数繰り返し回のときにデインタリーブ処理を行う。また、インタコネクト部11は誤り訂正処理部13cから出力されたデータ列に対して誤り訂正処理部への入力時とは逆向きのバレルシフタ処理(つまり、32データ分のバレルシフタ1個分)を行う。インタコネクト部11でデータ順が元に戻されたデータ列は再びメモリバンク部10a、10b、10cに入力される。メモリバンク部10a、10b、10cに入力された演算結果のデータ列は誤り訂正制御部15a、15b、15cで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
以上のステップを実行することで、繰り返し数1回分のターボ復号処理とLDPC復号処理を同時に行うことができる。これを所定の繰り返し数分行なうことで、所望のターボ復号処理とLDPC復号の結果を得ることができる。
前にも説明した通り、第1の実施形態では、誤り訂正処理部、および、メモリバンク部の数を3としているが、これは説明の簡略化のためであり、誤り訂正処理部、および、メモリバンク部の数は3に制限されない。また、第1の実施形態はターボ復号処理とLDPC復号処理とを対象として説明を行なったが、3つの誤り訂正処理部12a、12b、12cはそれぞれ独立して動作することが可能なため、ターボ復号、LDPC復号、ビタビ復号等の他の誤り訂正方式を組み合わせて、あるいは一つのみ選択して処理することができる。組み合わせも自由に選ぶことができる。
次に、第1の実施形態の効果について説明する。
第1の実施形態によるマルチコア型誤り訂正処理装置では、インタコネクト部11内部のバレルシフタ部11aがコンフィグデータ保持部14a、14b、14cに格納されているグループ構成情報と、誤り訂正処理制御部15a、15b、15cから得られるインタコネクトパラメータにより、複数の誤り訂正処理部が様々なグループを構成できるように構成されているため、前述した様々な要求性能に対応した並列度で1つあるいは同時に複数のLDPC復号処理やターボ符号等の誤り訂正が実現できる。
[第2の実施形態]
次に、本発明の第2の実施形態によるマルチコア型誤り訂正処理装置について図面を参照して詳細に説明する。
第2の実施形態は第1の実施形態の変形である。第2の実施形態と第1の実施形態との違いは以下の通りである。インタコネクト部11内部のインタコネクト制御部11cへの入力が第1の実施形態では、誤り訂正処理制御部15a、15b、15cとコンフィグデータ保持部14a、14b、14cの2方からであったのに対し、第2の実施形態では、コンフィグデータ保持部14a、14b、14cからのみとなっている点である。
図2を参照すると、第2の実施形態によるマルチコア型誤り訂正処理装置は、複数のメモリバンク部20a、20b、20cと、複数の誤り訂正処理部22a、22b、22cと、インタコネクト部21とから構成されている。複数のメモリバンク部20a、20b、20cは処理対象データ(入力データと呼ぶ)や演算途中のデータ、結果を格納するために使用される。誤り訂正処理部22a、22b、22cは誤り訂正処理を行う。誤り訂正処理部22a、22b、22cは、受け取った入力データを実際に処理する誤り訂正演算部23a、23b、23cと、誤り訂正演算部23a、23b、23cの制御やメモリバンク部20a、20b、20cに対するメモリアドレス、インタコネクト部21に必要なインタコネクトパラメータを生成する誤り訂正処理制御部25a、25b、25cと、外部IF26から受け取るグループ構成情報を保持するコンフィグデータ保持部24a、24b、24cを含む。インタコネクト部21は、主にターボ復号で使用されるクロスバ部21aと、LDPC復号処理時に使用されるバレルシフタ部21bとグループ構成、動作等を制御するインタコネクト制御部21cを含む。
これらはそれぞれ次のように動作する。
メモリバンク部20a、20b、20cは、演算対象となるデータを格納する。これは、第1の実施形態と同様の部分である。
誤り訂正処理部22a、22b、22cは、実際の誤り訂正処理を行う。これも、第1の実施形態と同様の部分である。
インタコネクト部21は、コンフィグデータ保持部24a、24b、24cから得られるグループ構成情報とインタコネクトパラメータを基に動作する。インタコネクト制御部21cはグループ構成情報を基にクロスバ部21aとバレルシフタ部21bのグループ構成を決定する。また、インタコネクト制御部21cはインタコネクトパラメータを基にクロスバ部21a内部の接続変更、バレルシフタ部21bのシフト処理を制御する。そうすることにより、ターボ復号化のインターリービング、LDPC復号化のバレルシフタ等のデータ列変換を実現する。
グループ構成方法の例としてバレルシフタ部61の構成を図5に示す。図のようにバレルシフタ部61は、3つの誤り訂正処理部22a、22b、22cで1つのグループを構成することができる(図5の参照番号62を参照)。この場合、誤り訂正処理装置は並列度:M×3の誤り訂正処理に対応できる。また、バレルシフタ部21bは、グループ構成情報を変更することで他の例として1つの誤り訂正処理部22a、22b、22cそれぞれを1つのグループとして構成することもできる(図5の参照番号63を参照)。この場合、誤り訂正処理装置は合計3つのグループを形成し、同時実行可能な3つの並列度:Mの誤り訂正処理に対応できる。また、バレルシフタ部21は、2つの誤り訂正処理部22a、22bと、1つの誤り訂正処理部23cとで2つのグループを形成することもできる(図5の参照番号64を参照)。この場合、誤り訂正処理装置は同時実行可能な並列度:M×2の誤り訂正処理と並列度:Mの誤り訂正処理に対応できる。
図2を参照して第2の実施形態によるマルチコア型誤り訂正処理装置の全体の動作について詳細に説明する。インタコネクト部21のグループ構成により、全体動作が異なるため、前述したインタコネクト部21の動作説明中の3つのケースに対してそれぞれ説明する。
以降に第1のケース、つまり、グループ構成情報により、インタコネクト部21内部のバレルシフタ部は1つのグループ(並列度M×3の誤り訂正処理に対応できるもの)を構成している場合について説明する。前提として、LDPC復号処理を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、複数のメモリバンク部には誤り訂正処理に対する入力データが合計で768個格納されているとする。複数のメモリバンク部20a、20b、20cそれぞれに対して、格納できる1データ列のデータ数をM=32とする。すなわち、メモリバンク部の数が3なので、全てのメモリバンク部を同時にアクセスした場合に読み出す・書き込むことのできるデータ数は、M×3=96となる。この場合の誤り訂正処理装置は一度に1種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF26からコンフィグデータ保持部24a、24b、24cにインタコネクト部21に対するグループ構成情報とインタコネクトパラメータと誤り訂正処理部22a、22b、22cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回はLDPCに対応した情報)。その後、誤り訂正処理部22a、22b、22c内部の誤り訂正処理制御部25a、25b、25cは得られた情報によりLDPC復号処理に対応したプログラム実行を開始する。プログラム実行が開始されると、誤り訂正処理制御部25a、25b、25cは複数のメモリバンク部20a、20b、20cにリードアドレスを出力する。複数のメモリバンク部20a、20b、20cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出されたデータ列はインタコネクト部21に出力される。
インタコネクト部21は、入力されたデータ列と、コンフィグデータ保持部24a、24b、24cに存在するグループ構成情報とインタコネクトパラメータを基に、バレルシフタ部21bを96データ分のバレルシフタ(図5の62)として構成し、データ列変換を行う。データ列変換が行なわれた後に誤り訂正処理部22a、22b、22cにデータ列が入力される。データ列が誤り訂正演算部23a、23b、23cに入力されると誤り訂正処理部23a、23b、23cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部21に再び入力される。インタコネクト部21では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理を行う。インタコネクト部21でデータ順が元に戻されたデータ列は再びメモリバンク部20a、20b、20cに入力される。メモリバンク部20a、20b、20cに入力された演算結果のデータ列は誤り訂正制御部25a、25b、25cで生成されたライトアドレスにより、所定のアドレスに格納される。
以上のステップを実行することで、繰り返し数1回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を得ることができる。
以降に第2のケース、つまり、グループ構成情報により、インタコネクト部21内部のバレルシフタ部21bは3つのグループ(並列度Mの誤り訂正処理に対応できるものが3個分)を構成している場合について説明する。前提として、LDPC復号処理3コード分を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、それぞれのメモリバンク部には誤り訂正処理に対する入力データが768個ずつ格納されているとする。複数のメモリバンク部20a、20b、20cそれぞれに対して、格納できる1データ列のデータ数をM=32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M=32となる。この場合の誤り訂正処理装置は一度に3種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF26からコンフィグデータ保持部24a、24b、24cにインタコネクト部21に対するグループ構成情報とインタコネクトパラメータと誤り訂正処理部22a、22b、22cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回はLDPCに対応した情報)。その後、誤り訂正処理部22a、22b、22c内部の誤り訂正処理制御部25a、25b、25cは得られた情報によりLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部25a、25b、25cは複数のメモリバンク部20a、20b、20cそれぞれにリードアドレスを出力する。複数のメモリバンク部20a、20b、20cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された3つのデータ列はインタコネクト部21に出力される。
インタコネクト部21は、入力されたデータ列と、コンフィグデータ保持部24a、24b、24cに存在するグループ構成情報とインタコネクトパラメータを基に、バレルシフタ部21bを32データ分のバレルシフタが3個存在する構成(図5の63)に変更し、データ列変換を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部22a、22b、22cにデータ列が入力される。データ列が誤り訂正演算部23a、23b、23cにそれぞれ入力されると、誤り訂正処理部23a、23b、23cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部21に再び入力される。インタコネクト部21では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理(つまり、32データ分のバレルシフタ3個分)を行う。インタコネクト部21でデータ順が元に戻されたデータ列は再びメモリバンク部20a、20b、20cに入力される。メモリバンク部20a、20b、20cに入力された演算結果のデータ列は誤り訂正制御部25a、25b、25cで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
以上のステップを実行することで、繰り返し数1回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を3コード分得ることができる。
以降に第3のケース、つまり、インタコネクト部21内部のバレルシフタ部21bは2つのグループ(並列度M×2の誤り訂正処理と並列度Mの誤り訂正処理にそれぞれ対応できるもの)を構成している場合について説明する。前提として、ターボ復号処理1コード分を誤り訂正処理部22a、22bで行い、LDPC復号処理1コード分を誤り訂正処理部22cで行うこととする。ターボ復号を行なうデータのコード長は512である。ターボ復号の符号化率を1/3とする。つまり、ターボ復号を行なうデータのコード長は合計で1536となる。LDPC復号を行なうデータのコード長は768である。つまり、メモリバンク部20a、20b2にはターボ復号処理に対する入力データが合計で1536個格納されているとする。メモリバンク部20cにはLDPC復号処理に対する入力データが768個格納されているとする。複数のメモリバンク部20a、20b、20cに対して、格納できる1データ列のデータ数をM=32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M=32となる。1度に使用するデータを、この場合の誤り訂正処理装置は一度に2種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF26からコンフィグデータ保持部24a、24b、24cにインタコネクト部21に対するグループ構成情報とインタコネクトパラメータと誤り訂正処理部22a、22b、22cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回は誤り訂正処理部22a、22bに対してターボ復号を、誤り訂正処理部22cに対してLDPC復号を行うような情報)。その後、誤り訂正処理部22a、22b、22c内部の誤り訂正処理制御部25a、25b、25cは得られた情報によりターボ復号処理とLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部25a、25b、25cは複数のメモリバンク部20a、20b、20cそれぞれにリードアドレスを出力する。複数のメモリバンク部20a、20b、20cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された3つのデータ列はインタコネクト部21に出力される。
インタコネクト部21は、入力されたデータ列と、コンフィグデータ保持部24a、24b、24cに存在するグループ構成情報とインタコネクトパラメータを基に、バレルシフタ部21bを32データ分のバレルシフタが1個存在する構成(図5の62)に変更し、クロスバ部21aを2つの誤り訂正処理部22a、22bのみの接続となるように構成を変更する。インタコネクト部21は変更した構成を用いて、入力されたデータ列に対してデータ列変換をそれぞれ行う。つまり、インタコネクト部21はメモリバンク部20a、20bからの入力データ列に対しては、奇数繰り返し回のときにはインタリーブ処理を行い、偶数繰り返し回のときにはデータ列変換せずにそのまま出力する。また、インタコネクト部21はメモリバンク部20cからの入力データに対してバレルシフタ処理を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部22a、22b、22cにデータ列が入力される。データ列が誤り訂正演算部23a、23b、23cにそれぞれ入力されると、誤り訂正処理部23a、23bは1繰り返し分のターボ復号処理を行ない、誤り訂正処理部23cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部21に再び入力される。
インタコネクト部21は入力される演算結果のデータ列とインタコネクトパラメータにより、データ列変換を行う。つまり、インタコネクト部21は誤り訂正処理部23a、23bから出力されたデータ列に対して奇数繰り返し回の時にはスルーし、偶数繰り返し回の時にデインタリーブ処理を行う。また、インタコネクト部21は誤り訂正処理部23cから出力されたデータ列に対して誤り訂正処理部への入力時とは逆向きのバレルシフタ処理(つまり、32データ分のバレルシフタ1個分)を行う。インタコネクト部21でデータ順が元に戻されたデータ列は再びメモリバンク部20a、20b、20cに入力される。メモリバンク部20a、20b、20cに入力された演算結果のデータ列は誤り訂正制御部25a、25b、25cで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
以上のステップを実行することで、繰り返し数1回分のターボ復号処理とLDPC復号処理を同時に行うことができる。これを所定の繰り返し数分行なうことで、所望のターボ復号処理とLDPC復号の結果を得ることができる。
第2の実施形態では、誤り訂正処理部、および、メモリバンク部の数を3としているが、これは説明簡略化のためであり、誤り訂正処理部、および、メモリバンク部の数は3に制限されない。また、第2の実施形態ではターボ復号処理とLDPC復号処理とを対象として説明を行なったが、3つの誤り訂正処理部22a、22b、22cはそれぞれ独立して動作することが可能なため、ターボ復号、LDPC復号、ビタビ復号等の他の誤り訂正方式を組み合わせて、あるいは一つのみ選択して処理することができる。組み合わせも自由に選ぶことができる。
次に、第2の実施形態の効果について説明する。
第2の実施形態によるマルチコア型誤り訂正処理装置では、インタコネクト部21内部のバレルシフタ部21bがコンフィグデータ保持部24a、24b、24cに格納されているグループ構成情報により、複数の誤り訂正処理部が様々なグループを構成できるように構成されているため、様々な要求性能に対応した並列度で1つ、あるいは同時に複数のLDPC復号処理等の誤り訂正ができる。さらに、第2の実施形態では、第1の実施形態と異なり、インタコネクト部21の制御に必要なデータがコンフィグデータ保持部24a、24b、24cにのみ格納しておけばいいので、プログラミングが比較的容易になり、制御系に関して回路規模の削減が期待できる。
[第3の実施形態]
次に、本発明の第3の実施形態について図面を参照して詳細に説明する。第3の実施形態は第1の実施形態の変形である。第2の実施形態と第1の実施形態との違いは以下の通りである。第1の実施形態ではインタコネクト部11内部のインタコネクト制御部11cへの入力が、誤り訂正処理制御部15a、15b、15cとコンフィグデータ保持部14a、14b、14cの2方からであったのに対し、第3の実施形態では、誤り訂正処理制御部35a、35b、35cからのみとなっている点である。
図3を参照すると、第3の実施形態によるマルチコア型誤り訂正処理装置は、複数のメモリバンク部30a、30b、30cと、複数の誤り訂正処理部32a、32b、32cと、インタコネクト部31とから構成されている。複数のメモリバンク部30a、30b、30cは処理対象データ(入力データと呼ぶ)や演算途中のデータ、結果を格納するために使用される。誤り訂正処理部32a、32b、32cは誤り訂正処理を行う。誤り訂正処理部32a、32b、32cは、受け取った入力データを実際に処理する誤り訂正演算部33a、33b、33cと、誤り訂正演算部33a、33b、33cの制御やメモリバンク部30a、30b、30cに対するメモリアドレス、インタコネクト部31に必要なインタコネクトパラメータを生成する誤り訂正処理制御部35a、35b、35cと、外部IF36から受け取る誤り訂正処理部32a、32b、32c等を示した構成パラメータを保持するコンフィグデータ保持部34a、34b、34cを含む。インタコネクト部31は、主にターボ復号で使用されるクロスバ部31aと、LDPC復号処理時に使用されるバレルシフタ部31bとグルーピング、動作等を制御するインタコネクト制御部31cを含む。
これらはそれぞれ次のように動作する。
メモリバンク部30a、30b、30cは、演算対象となるデータを格納する。これは、第1の実施形態と同様の部分である。
誤り訂正処理部32a、32b、32cは、実際の誤り訂正処理を行う。これも、第1の実施形態と同様の部分である。
インタコネクト部31は、誤り訂正処理部32a、32b、32c内の誤り訂正処理制御部35a、35b、35cから得られるグループ構成情報とインタコネクトパラメータとを基に動作する。インタコネクト制御部31cはグループ構成情報を基にクロスバ部31aとバレルシフタ部31bのグループ構成を決定する。また、インタコネクト制御部31cはインタコネクトパラメータを基にクロスバ部31a内部の接続変更、バレルシフタ部31bのシフト処理を制御する。そうすることにより、ターボ復号化のインターリービング、LDPC復号化のバレルシフト等のデータ列変換を実現する。
グループ構成方法の例としてバレルシフタ部61の構成を図5に示す。図のようにバレルシフタ部61は、3つの誤り訂正処理部32a、32b、32cを1つのグループとして構成することができる(図5の62を参照)。この場合、誤り訂正処理装置は並列度:M×3の誤り訂正処理に対応できる。また、バレルシフタ部61は、グループ構成情報を変更することで他の例として1つの誤り訂正処理部32a、32b、32cそれぞれを1つのグループとして構成することもできる(図5の63を参照)。この場合、誤り訂正処理装置は合計3つのグループを形成し、同時実行可能な3つの並列度:Mの誤り訂正処理に対応できる。また、バレルシフタ部61は、2つの誤り訂正処理部32a、32bと、1つの誤り訂正処理部32cとで2つのグループを形成することもできる(図5の64を参照)。この場合、誤り訂正処理装置は同時実行可能な並列度:M×2の誤り訂正処理と並列度:Mの誤り訂正処理に対応できる。
図3を参照して第3の実施形態の全体の動作について詳細に説明する。インタコネクト部31のグループ構成により、全体動作が異なるため、前述したインタコネクト部31の動作説明中の3つのケースに対してそれぞれ説明する。
以降に第1のケース、つまり、インタコネクト部31内部のバレルシフタ部31bは1つのグループ(並列度M×3の誤り訂正処理に対応できるグループ)を構成している場合について説明する。前提として、LDPC復号処理を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、複数のメモリバンク部には誤り訂正処理に対する入力データが合計で768個格納されているとする。複数のメモリバンク部30a、30b、30cそれぞれに対して、格納できる1データ列のデータ数をM=32とする。すなわち、メモリバンク部数が3なので、全てのメモリバンク部を同時にアクセスした場合に読み出す・書き込むことのできるデータ数は、M×3=96となる。この場合の誤り訂正処理装置は一度に1種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF36からコンフィグデータ保持部34a、34b、34cにインタコネクト部31に対するグループ構成情報と誤り訂正処理部32a、32b、32cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回はLDPCに対応した情報)。その後、誤り訂正処理部32a、32b、32c内部の誤り訂正処理制御部35a、35b、35cは得られた情報によりLDPC復号処理に対応したプログラム実行を開始する。プログラム実行が開始されると、誤り訂正処理制御部35a、35b、35cは複数のメモリバンク部30a、30b、30cにリードアドレスを出力する。また、インタコネクト部31に対してインタコネクトパラメータとグループ構成情報を出力する。複数のメモリバンク部30a、30b、30cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出されたデータ列はインタコネクト部31に出力される。
インタコネクト部31は、入力されたデータ列とインタコネクトパラメータとグループ構成情報を基に、バレルシフタ部31bを96データ分のバレルシフタ(図5の62)として構成し、データ列変換を行う。データ列変換が行なわれた後に誤り訂正処理部にデータ列が入力される。データ列が誤り訂正演算部33a、33b、33cに入力されると,誤り訂正処理部33a、33b、33cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部31に再び入力される。インタコネクト部31では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理を行う。インタコネクト部31でデータ順が元に戻されたデータ列は再びメモリバンク部30a、30b、30cに入力される。メモリバンク部30a、30b、30cに入力された演算結果のデータ列は誤り訂正制御部35a、35b、35cで生成されたライトアドレスにより、所定のアドレスに格納される。
以上のステップを実行することで、繰り返し数1回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を得ることができる。
次に第2のケース、つまり、インタコネクト部31内部のバレルシフタ部31bは3つのグループ(並列度Mの誤り訂正処理に対応できるもの3個分)を構成している場合について説明する。前提として、LDPC復号処理3コード分を対象とする。LDPC復号を行なうデータのコード長は768である。つまり、それぞれのメモリバンク部には誤り訂正処理に対する入力データが768個ずつ格納されているとする。複数のメモリバンク部30a、30b、30cそれぞれに対して、格納できる1データ列のデータ数をM=32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M=32となる。この場合の誤り訂正処理装置は一度に3種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF36からコンフィグデータ保持部34a、34b、34cにインタコネクト部31に対するグループ構成情報と誤り訂正処理部32a、32b、32cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回はLDPCに対応した情報)。その後、誤り訂正処理部32a、32b、32c内部の誤り訂正処理制御部35a、35b、35cは得られた情報によりLDPC復号処理に対応したプログラムをそれぞれ開始する。プログラムが開始されると、誤り訂正処理制御部35a、35b、35cは複数のメモリバンク部30a、30b、30cそれぞれにリードアドレスを出力する。また、インタコネクト部31に対してインタコネクトパラメータとグループ構成情報を出力する。複数のメモリバンク部30a、30b、30cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された3つのデータ列はインタコネクト部31に出力される。
インタコネクト部31は、入力されたデータ列とインタコネクトパラメータとグループ構成情報を基に、バレルシフタ部31bを32データ分のバレルシフタが3個存在する構成(図5の63)に変更し、データ列変換を行う。データ列変換が行なわれた後にそれぞれの誤り訂正処理部32a、32b、32cにデータ列が入力される。データ列が誤り訂正演算部33a、33b、33cにそれぞれ入力されると誤り訂正処理部33a、33b、33cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部31に再び入力される。
インタコネクト部31では入力される演算結果のデータ列とインタコネクトパラメータにより、誤り訂正処理部への入力時とは逆向きのバレルシフタ処理(つまり、32データ分のバレルシフタ3個分)を行う。インタコネクト部31でデータ順が元に戻されたデータ列は再びメモリバンク部30a、30b、30cに入力される。メモリバンク部30a、30b、30cに入力された演算結果のデータ列は誤り訂正制御部35a、35b、35cで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
以上のステップを実行することで、繰り返し数1回分のLDPC復号処理を行うことができる。これを所定の繰り返し数分行なうことで、所望のLDPC復号の結果を3コード分得ることができる。
以降に第3のケース、つまり、インタコネクト部31内部のバレルシフタ部31bは2つのグループ(並列度M×2の誤り訂正処理と並列度Mの誤り訂正処理をそれぞれ対応できるもの)を構成している場合について説明する。前提として、ターボ復号処理1コード分を誤り訂正処理部32a、32bで行い、LDPC復号処理1コード分を誤り訂正処理部32cで行うこととする。ターボ復号を行なうデータのコード長は512である。ターボ復号の符号化率を1/3とする。つまり、ターボ復号を行なうデータのコード長は合計で1536となる。LDPC復号を行なうデータのコード長は768である。つまり、メモリバンク部30a、30bにはターボ復号処理に対する入力データが合計で1536個格納されているとする。メモリバンク部30cにはLDPC復号処理に対する入力データが768個格納されているとする。複数のメモリバンク部30a、30b、30cに対して、格納できる1データ列のデータ数をM=32とする。すなわち、一つのメモリバンク部にアクセスした場合、読み出す・書き込むことのできるデータ数は、M=32となる。1度に使用するデータに対し、この場合の誤り訂正処理装置は一度に2種類の誤り訂正処理を実行することができる。以下に動作を示す。
まず、外部IF36からコンフィグデータ保持部34a、34b、34cにインタコネクト部31に対するグループ構成情報と誤り訂正処理部32a、32b、32cに対してどの誤り訂正方式で処理するかを示す情報が入力される(今回は誤り訂正処理部32a、32bにおいてターボ復号を行い、誤り訂正処理部32cにおいてLDPC復号を行うような情報)。その後、誤り訂正処理部32a、32b、32c内部の誤り訂正処理制御部35a、35b、35cは得られた情報によりターボ復号処理とLDPC復号処理に対応したプログラム実行をそれぞれ開始する。プログラム実行が開始されると、誤り訂正処理制御部35a、35b、35cは複数のメモリバンク部30a、30b、30cそれぞれにリードアドレスを出力する。また、インタコネクト部31に対してインタコネクトパラメータとグループ情報を出力する。複数のメモリバンク部30a、30b、30cは受け取ったアドレスを基に所望のデータ列を読み出す。読み出された3つのデータ列はインタコネクト部31に出力される。
インタコネクト部31は、入力されたデータ列とインタコネクトパラメータとグループ構成情報を基に、バレルシフタ部31bを32データ分のバレルシフタが1個存在する構成(図5の62)に変更し、クロスバ部31aを2つの誤り訂正処理部32a、32bのみの接続となるように構成を変更する。インタコネクト部31は変更した構成を用いて、入力されたデータ列に対してデータ列変換をそれぞれ行う。つまり、インタコネクト部31はメモリバンク部30a,30bからの入力データ列に対しては、奇数繰り返し回のときにはインタリーブ処理を行い、偶数繰り返し回のときにはデータ列変換せずにそのまま出力する。また、インタコネクト部31はメモリバンク部30cからの入力データに対してバレルシフタ処理を行う。
データ列変換が行なわれた後にそれぞれの誤り訂正処理部32a、32b、32cにデータ列が入力される。データ列が誤り訂正演算部33a、33b、33cにそれぞれ入力されると,誤り訂正処理部33a、33bは1繰り返し分のターボ復号処理を行ない、誤り訂正処理部33cは1繰り返し分のLDPC復号処理を行う。得られた結果は、インタコネクト部31に再び入力される。インタコネクト部31は入力される演算結果のデータ列とインタコネクトパラメータにより、データ列変換を行う。つまり、インタコネクト部31は誤り訂正処理部33a、33bから出力されたデータ列に対して奇数繰り返し回の時にはスルーし、偶数繰り返し回の時にデインタリーブ処理を行う。また、インタコネクト部31は誤り訂正処理部33cから出力されたデータ列に対して誤り訂正処理部への入力時とは逆向きのバレルシフタ処理(つまり、32データ分のバレルシフタ1個分)を行う。インタコネクト部31でデータ順が元に戻されたデータ列は再びメモリバンク部30a、30b、30cに入力される。メモリバンク部30a、30b、30cに入力された演算結果のデータ列は誤り訂正制御部35a、35b、35cで生成されたライトアドレスにより、所定のアドレスにそれぞれ格納される。
以上のステップを実行することで、繰り返し数1回分のターボ復号処理とLDPC復号処理を同時に行うことができる。これを所定の繰り返し数分行なうことで、所望のターボ復号処理とLDPC復号の結果を得ることができる。
第3の実施形態では、誤り訂正処理部、および、メモリバンク部の数を3としているが、これは説明簡略化のためであり、誤り訂正処理部、および、メモリバンク部数は3に制限されない。また、第3の実施形態ではターボ復号処理とLDPC復号処理とを対象として説明を行なったが、3つの誤り訂正処理部32a、32b、32cはそれぞれ独立して動作することが可能なため、ターボ復号、LDPC復号、ビタビ復号等の他の誤り訂正方式を組み合わせて、あるいは一つのみ選択して処理することができる。誤り訂正方式の組み合わせも自由に選ぶことができる。
次に、第3の実施形態の効果について説明する。
第3の実施形態では、インタコネクト部31内部のバレルシフタ部31bが誤り訂正処理制御部35a、35b、35cから得られるインタコネクトパラメータとグループ構成情報により、複数の誤り訂正処理部が様々なグループを構成できるように構成されているため、様々な要求性能に対応した並列度で1つ、あるいは同時に複数のターボ復号やLDPC復号処理等の誤り訂正ができる。さらに、第3の実施形態では、第2の実施形態と異なり、インタコネクト部31の制御に必要なデータを誤り訂正処理制御部で生成するため外部から入力されるレイテンシ抜きでインタコネクト部31の制御を行うことができ、制御系に関して回路規模の削減も期待できる。
[第4の実施形態]
次に、本発明の第4の実施形態について図面を参照して詳細に説明する。第4の実施形態は第1の実施形態の変形である。第4の実施形態と第1の実施形態との違いは以下の通りである。第4の実施形態におけるマルチコア型誤り訂正装置では、第1の実施形態におけるクロスバ部11aが省略されている。すなわち、第4の実施形態による誤り訂正装置は、インタコネクト部41がバレルシフタ部41bとインタコネクト制御部41cのみとなっている。動作は第1の実施形態と同様である。第4の実施形態では、LDPC符号化に最適化された誤り訂正処理システムとすることができ、回路規模をより削減できる効果がある。
本発明は、無線通信システム内部の誤り訂正処理装置といった用途に適用できる。
10a〜10c、20a〜20c、30a〜30c、40a〜40c、50a〜50c メモリバンク部
11、21、31、41、51 インタコネクト部
11a、21a、31a、51a クロスバ部
11b、21b、31b、41b、51b、61 バレルシフタ部
11c、21c、31c、41c、51c インタコネクト制御部
12a〜12c、22a〜22c、32a〜32c、42a〜42c、52a〜52c 誤り訂正処理部
13a〜13c、23a〜23c、33a〜33c、43a〜43c、53a〜53c 誤り訂正演算部
14a〜14c、24a〜24c、34a〜34c、44a〜44c コンフィグデータ保持部
15a〜15c、25a〜25c、35a〜35c、45a〜45c、55a〜55c 誤り訂正処理制御部
16、26、36、46、 外部IF

Claims (5)

  1. データ列を格納する複数のデータ格納部と、
    外部入力部から入力される情報に基づいて制御情報を出力する複数の誤り訂正処理手段と、
    前記制御情報に基づいて前記データ列のデータ順を変換するデータ列変換手段と、を備え、
    前記複数の誤り訂正処理手段は、前記制御情報に基づいて前記データ列変換手段から出力される前記データ列に所定の誤り訂正処理を行い、
    前記制御情報は、前記データ列変換手段が行うデータ列変換を制御する情報と、前記データ列変換手段が前記データ列変換を行うためのグループ構成に関する情報と、を含み、
    前記データ列変換手段は、前記制御情報に基づいて内部のグループ構成を変更するとともに、シフト処理に基くローテーション動作を含むバレルシフタ動作によるデータ列変換を行い
    前記バレルシフタ動作は、前記グループ構成に関する情報に基づいて、出力すべき前記複数の誤り訂正処理手段のグループをまとめて指示するか、又は、前記複数の誤り訂正処理手段を個別に指示することを特徴とするマルチコア型誤り訂正処理システム。
  2. 請求項1に記載のマルチコア型誤り訂正処理システムであって、
    記データ列変換手段は
    記バレルシフタ動作を実行するバレルシフタと、
    前記複数のデータ格納部と前記バレルシフタとの間に設けられ、前記制御情報に基づいて前記複数のデータ列格納部から出力される前記データ列を前記バレルシフタに出力するクロスバーと、を備えることを特徴とするマルチコア型誤り訂正処理システム。
  3. データ列を格納する複数のメモリバンク部と、
    外部インタフェースから入力される情報に基づいて制御情報を出力する複数の誤り訂正処理部と、
    前記制御情報に基づいて前記データ列のデータ順を変換するインタコネクト部と、を備え、
    前記複数の誤り訂正処理部は、前記制御情報に基づいて前記インタコネクト部から出力される前記データ列に所定の誤り訂正処理を行い、
    前記制御情報は、前記インタコネクト部が行うデータ列変換を制御する情報と、前記インタコネクト部が前記データ列変換を行うためのグループ構成に関する情報と、を含み、
    前記インタコネクト部は、前記制御情報に基づいて内部のグループ構成を変更するとともに、シフト処理に基くローテーション動作を含むバレルシフタ動作によるデータ列変換を行い
    前記バレルシフタ動作は、前記グループ構成に関する情報に基づいて、出力すべき前記複数の誤り訂正処理部のグループをまとめて指示するか、又は、前記複数の誤り訂正処理部を個別に指示することを特徴とするマルチコア型誤り訂正処理装置。
  4. 請求項3に記載のマルチコア型誤り訂正処理装置であって、
    前記インタコネクト部は、
    前記バレルシフタ動作を実行するバレルシフタと、
    前記複数のメモリバンク部と前記バレルシフタとの間に設けられ、前記制御情報に基づいて前記複数のメモリバンク部から出力される前記データ列を前記バレルシフタに出力するクロスバーと、を備えることを特徴とするマルチコア型誤り訂正処理装置。
  5. データ列を格納する複数のデータ格納部と、外部入力部から入力される情報に基づいて制御情報を出力する複数の誤り訂正処理手段と、前記制御情報に基づいて前記データ列のデータ順を変換するデータ列変換手段と、を備えるマルチコア型誤り訂正処理システムに使用されるマルチコア型誤り訂正処理方法であって、
    前記複数の誤り訂正処理手段は、前記制御情報に基づいて前記データ列変換手段から出力される前記データ列に所定の誤り訂正処理を行い
    前記制御情報は、前記データ列変換手段が行うデータ列変換を制御する情報と、前記データ列変換手段が前記データ列変換を行うためのグループ構成に関する情報と、を含み、
    前記データ列変換手段は、前記制御情報に基づいて内部のグループ構成を変更するとともに、シフト処理に基づくローテーション動作を含むバレルシフタ動作によるデータ列変換を行い、
    前記バレルシフタ動作は、前記グループ構成に関する情報に基づいて、出力すべき前記複数の誤り訂正処理手段のグループをまとめて指示するか、又は、前記複数の誤り訂正処理手段を個別に指示することを特徴とするマルチコア型誤り訂正処理方法。
JP2010225403A 2010-10-05 2010-10-05 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置 Expired - Fee Related JP5692780B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010225403A JP5692780B2 (ja) 2010-10-05 2010-10-05 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
PCT/JP2011/073281 WO2012046864A2 (en) 2010-10-05 2011-10-04 Multicore type error correction processing system and error correction processing apparatus
US13/877,650 US9250996B2 (en) 2010-10-05 2011-10-04 Multicore type error correction processing system and error correction processing apparatus
EP11773571.2A EP2625787A2 (en) 2010-10-05 2011-10-04 Multicore type error correction processing system and error correction processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010225403A JP5692780B2 (ja) 2010-10-05 2010-10-05 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置

Publications (3)

Publication Number Publication Date
JP2013179378A JP2013179378A (ja) 2013-09-09
JP2013179378A5 JP2013179378A5 (ja) 2013-11-28
JP5692780B2 true JP5692780B2 (ja) 2015-04-01

Family

ID=44860484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010225403A Expired - Fee Related JP5692780B2 (ja) 2010-10-05 2010-10-05 マルチコア型誤り訂正処理システムおよび誤り訂正処理装置

Country Status (4)

Country Link
US (1) US9250996B2 (ja)
EP (1) EP2625787A2 (ja)
JP (1) JP5692780B2 (ja)
WO (1) WO2012046864A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459956B2 (en) * 2013-07-19 2016-10-04 Seagate Technology Llc Data decoder with trapping set flip bit mapper
JP5768100B2 (ja) * 2013-09-10 2015-08-26 株式会社東芝 メモリ装置、サーバ装置、及びメモリ制御方法
US9317361B2 (en) 2013-11-27 2016-04-19 Seagate Technology Llc Bit-line defect detection using unsatisfied parity code checks
US11170294B2 (en) 2016-01-07 2021-11-09 Intel Corporation Hardware accelerated machine learning
US11120329B2 (en) 2016-05-07 2021-09-14 Intel Corporation Multicast network and memory transfer optimizations for neural network hardware acceleration
US10817802B2 (en) 2016-05-07 2020-10-27 Intel Corporation Apparatus for hardware accelerated machine learning
US11157037B1 (en) 2020-11-13 2021-10-26 Marvell Asia Pte, Ltd. Method and device for clock generation and synchronization for time interleaved networks
US11750166B2 (en) 2021-01-13 2023-09-05 Marvell Asia Pte. Ltd. Method and device for high bandwidth receiver for high baud-rate communications
US11309904B1 (en) 2021-02-24 2022-04-19 Marvell Asia Pte Ltd. Method and device for synchronization of large-scale systems with multiple time interleaving sub-systems

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369652A (en) * 1993-06-14 1994-11-29 International Business Machines Corporation Error detection and correction having one data format recordable on record media using a diverse number of concurrently recorded tracks
US6330374B1 (en) * 1998-11-13 2001-12-11 Ricoh Company, Ltd. Image manipulation for a digital copier which operates on a block basis
US6304927B1 (en) * 1998-11-13 2001-10-16 Ricoh Company, Ltd. Digital copier with scalable architecture
JP2000196467A (ja) * 1998-12-28 2000-07-14 Nec Corp 誤り訂正符号化器および誤り訂正復号器
KR100357126B1 (ko) * 1999-07-30 2002-10-18 엘지전자 주식회사 메모리 주소 발생 장치 및 그를 이용한 무선 단말기
US7127664B2 (en) 2000-09-18 2006-10-24 Lucent Technologies Inc. Reconfigurable architecture for decoding telecommunications signals
US7020214B2 (en) 2000-09-18 2006-03-28 Lucent Technologies Inc. Method and apparatus for path metric processing in telecommunications systems
US6865710B2 (en) * 2000-09-18 2005-03-08 Lucent Technologies Inc. Butterfly processor for telecommunications
CA2447204C (en) * 2002-11-29 2010-03-23 Memory Management Services Ltd. Error correction scheme for memory
US9495241B2 (en) * 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8225174B2 (en) * 2006-12-07 2012-07-17 Nec Corporation Decoding device and decoding method
CN101689865B (zh) * 2007-07-04 2012-10-24 Nxp股份有限公司 置乱式ldpc解码
JP4874312B2 (ja) * 2007-09-20 2012-02-15 三菱電機株式会社 ターボ符号復号装置、ターボ符号復号方法及び通信システム
EP2210345A2 (en) * 2007-10-02 2010-07-28 Imec An asip architecture for decoding at least two decoding methods
US8195978B2 (en) * 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8035537B2 (en) * 2008-06-13 2011-10-11 Lsi Corporation Methods and apparatus for programmable decoding of a plurality of code types
US8090896B2 (en) * 2008-07-03 2012-01-03 Nokia Corporation Address generation for multiple access of memory
US8281214B2 (en) * 2008-10-17 2012-10-02 Lsi Corporation Programmable quasi-cyclic low-density parity check (QC LDPC) encoder for read channel
US8121285B2 (en) * 2008-10-28 2012-02-21 International Business Machines Corporation Data processing for coding
JP5293322B2 (ja) 2009-03-24 2013-09-18 凸版印刷株式会社 有機elパネル及びその製造方法
US8307258B2 (en) * 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US9544090B2 (en) * 2010-03-31 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Hard input low density parity check decoder
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
US8707123B2 (en) * 2011-12-30 2014-04-22 Lsi Corporation Variable barrel shifter

Also Published As

Publication number Publication date
EP2625787A2 (en) 2013-08-14
US20140040700A1 (en) 2014-02-06
JP2013179378A (ja) 2013-09-09
WO2012046864A3 (en) 2012-08-30
WO2012046864A2 (en) 2012-04-12
US9250996B2 (en) 2016-02-02

Similar Documents

Publication Publication Date Title
JP5692780B2 (ja) マルチコア型誤り訂正処理システムおよび誤り訂正処理装置
US8989242B2 (en) Encoding/decoding processor and wireless communication apparatus
US20070162833A1 (en) Reconfigurable bit-manipulation node
US7043682B1 (en) Method and apparatus for implementing decode operations in a data processor
KR20070058501A (ko) 재구성가능한 트렐리스형 디코딩을 구현하기 위한 방법 및장치
US20090031200A1 (en) High Rate, Long Block Length, Low Density Parity Check Encoder
CN109981117B (zh) 一种四模前向纠错码处理器
CN101296053A (zh) 计算循环冗余校验码之方法及系统
WO2005011129A1 (ja) ビタビ復号器
CN102057580A (zh) 针对多标准的可重新配置的Turbo交织器
Prasad et al. An energy-efficient network-on-chip-based reconfigurable Viterbi decoder architecture
Qiao et al. QFEC ASIP: A flexible quad-mode FEC ASIP for polar, LDPC, turbo, and convolutional code decoding
Azhar et al. Viterbi accelerator for embedded processor datapaths
Ameen et al. FPGA implementation of modified architecture for adaptive Viterbi decoder
JP5724601B2 (ja) Crc演算回路及びプロセッサ
JP2000311096A (ja) 演算処理装置
CN105187156A (zh) 一种前向纠错码处理器
JP3357351B2 (ja) ビタビ復号装置および方法
Khan et al. Pipelined implementation of a real time programmable encoder for low density parity check code on a reconfigurable instruction cell architecture
US8185810B1 (en) Low power viterbi trace back architecture
Sani et al. Embedding polynomial time memory mapping and routing algorithms on-chip to design configurable decoder architectures
Chen et al. FPGA implementation of a factorization processor for soft-decision reed-solomon decoding
KR100414152B1 (ko) 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로
Li et al. Design and Implementation of Reconfigurable RS Processor
JP5196567B2 (ja) 演算装置、復号化装置およびメモリ制御方法ならびにプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150129

R150 Certificate of patent or registration of utility model

Ref document number: 5692780

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees