この節は、下で詳述している及び/又は同時提出の特許請求の範囲に記載している本発明の種々の特徴に関連する技術の種々の特徴について読者に紹介することが意図されている。ここでの説明は、本発明の種々の特徴のよりよい理解を容易にするように、背景情報を読者に提供する支援のために有用であると考えられる。従って、それらの説明は、この観点から読まれる必要があり、従来技術を是認するものではない。
多くの人々が知っているように、衛星テレビシステムは、過去数年に亘ってかなり広く行き渡るようになってきた。実際には、1994年のディジタル衛星テレビの導入以来、1200万戸のアメリカの家庭が衛星テレビ加入者になっている。それらの加入者の殆どは、衛星アンテナが比較的容易に設置及び接続することができる単身者である。例えば、衛星アンテナは、家の屋根に設置されることが可能である。この成長が継続するように、顧客はしばしば、毎年、サービスからより多くを期待する。それ故、サービスプロバイダは、常に、新しい特徴を考え、記録、多室操作、並びにより多く且つより良好なコンテンツ等を向上させている。近年、高精細な映像及び音声に益々注目さするようになってきた。
高精細信号は、現在、衛星システムにおいて提供されているサービスに比べてより大容量又は高帯域幅を必要とする。また、多くの高精細サービスは、更に、現在のサービスを置き換えるものとしてではなく、現在のサービスに付加して提供されるものである。それらの新しいサービスを提供するために、一部のサービスプロバイダはシステムの全能力を高めている。利用可能な衛星チャネル又はトランスポンダ数を増加させる又は使用される衛星の数を増加させる多くの方法において、能力を高めることが可能である。衛星システムに対する最も大きい変化は、実際の通信システムの仕様を変えることを含むことである。
近年の技術の進歩は、衛星サービスプロバイダが、MPEG−4として一般に知られているMPEG(Motion Picture Enhancement Group)により生成されるような新しい復号化アルゴリズムを用いることを含む多くの方法におけるシステム仕様を変えることにより能力を高めることを考えることを可能にしている。更に、DVB−S2として知られているディジタル映像放送(DVB:Digital Video System)について与えられている規格において8レベル位相シフトキーイング(8PSK)のようなより最新の変調フォーマットを利用することが可能である。DVB−S2規格はまた、低密度パリティ検査(LDPC)符号化のような既知の新しいエラー補正システムを与え、その低密度パリティ検査符号化は、全体のシステム能力を更に高めることを可能にする。それらの変化は通信システムにおける能力を高くすることができるが、それらの変化はまた、信号を受信する動作マージンを変え、受信器のデザインにおける変化を余儀なくさせる。
殆ど全ての通信システム、及び上記の衛星システムのような特にディジタルのシステムは、受信器の能力を改善するようにある方式のエラー補正方法を用いている。それらのスキームは、送信器、受信器又はそれらの両方において実行されなければならないかなり複雑な機能を有する。上記のように、広く行き渡るようになったそれらのスキームの1つはLDPC符号化である。
LDPC符号化は、データストリームのより大きいセグメントの小さいセクションのためにパリティビットを生成するエラー補正方法である。動作されるデータストリームセグメントはかなり大きく、例えば、64800ビットであり、パリティビットは、一群の状態の3ビットのようなかなり小さいセクションについて生成されることが可能である。
その処理はデータストリームのセグメントにおいて実行されるが、入力データストリームは続いたまま保たれる。入力データストリームは、典型的には、ディジタル形式の映像又は音声信号であり、それ故、その処理は、有限は時間内に完了されなければならない。データストリームセグメントを処理するために割り当てられる時間は、典型的には、LDPCフレーム時間と呼ばれる。更に、パリティグループは重なり合うことが可能である。単一ビットは2つ以上のパリティグループのメンバーであることが可能であり、それ故、データビットのパリティについて適切に処理する2つ以上のパリティビットを有することが可能である。それらの群及びパリティビットを割り当てる方法は、符号化器であって、特に制御器において符号化器が、パリティ検査処理を適切に管理するように、典型的には既知であり、予め決められている。
LDPC復号化は、処理を複雑にする複数のレイヤを有する。第1の、かなり単純なパリティ演算が、付加パリティビットを、ここで、有するデータストリームにおいて実行されることが可能である。この単純なパリティ演算は、パリティグループのパリティ及び関連するパリティビットに基づいて、従来のパリティ検査を単純に実行することを有する。しかしながら、エラーの状態にある正確なビットは尚も不確定であるため、一部のエラーは訂正不可能のままである。エラー訂正を更に行うように、同じデータビットはしばしば、2つ以上のパリティグループ化において用いられる。
単独のパリティ及び複数の群のパリティの両方を有する場合でさえ、全てのエラーは尚も、明示的に訂正されない可能性がある。更に、パリティグループ化の性質のために、各々のビットは、固有のその値についての情報ばかりでなく、付帯的な値の情報も有する。データビットについての固有の情報は、パリティ情報を用いてパリティ調査演算を実行することにより得られる知識を有する、ビットの実際の値に関して特徴付けられることが可能である。付帯的な情報は、データストリームにおける他のデータビット(例えば、処理中の現データに隣接するデータビット又はパリティグループ化における他のビット)の値に基づいて、ビットの値について決定されることが可能である情報を有する。固有の及び付帯的な情報を用いることは、最終的な正確なビット値を確認するように、繰り返し処理において情報の両方の要素を用いることを含む、より複雑な訂正アルゴリズムを必要とする。
LDPC符号化のための復号化器は、受信データからエラーを除去するように、受信データにおいて一連の繰り返しを実行する。それらの繰り返しは2つの基本的なステップを
有する。第1のステップは調査ノード計算と呼ばれ、その場合、データはメモリから読み出され、一部の演算処理が実行される。その結果は、その場合、メモリに書き込まれる。この第1の演算を実行する回路は調査ノード処理ユニット(CPU)である。第2ステップはビットノード計算と呼ばれ、その場合、他のデータはメモリから読み出され、付帯演算処理が実行される。その結果はまた、メモリに書き込まれる。この処理を実行する回路はビットノード処理ユニット(BPU)と呼ばれる。それらの処理ユニットの各々は、中間結果についての大きいローカルレジスタメモリ記憶及び処理パワーの両方を必要とする複雑な計算を実行する。また、CPUの処理の結果は次のBPU処理において用いられ、その逆も行われ、それ故、各々の処理ユニットは、同じデータストリームセグメントにおいて機能し、1つの処理ブロックのみが一度に動作することが可能である。
LDPC符号は、それらの計算が入力データストリームの長いセグメントにおいて並列して行われることが可能であるように構成されている。一実施形態においては、64800ビットの長さであるビットストリームを処理する360個の並列計算ブロックユニットを有する。上記のように、この種類のアルゴリズムを用いるLDPC復号化器は、複数回数、その処理により繰り返される必要がある。典型的には、復号化器は、入力データについての最終的なエラー訂正値を決定するように、50回又はそれ以上の回数、それらの処理を繰り返す。上記のように、BPU処理が、先行するCPU処理の間にもたらされる変化に依存する可能性があり、その逆の可能性もあるため、CPU処理及びBPU処理は同時に行われることはできない。
360個のブロックの各々は、互いに対して同じ又は類似するビット接続を有する。この類似性は、360個の並列計算ユニットを可能にする復号化器アーキテクチャを考慮する。データを復号化するために、それらの計算ユニットについて360個のデータを得るための回路ブロックが存在する。各々のステップについて、このデータは、メモリにおける異なる位置の集合からもたらされる。
そのLDPC符号の性能は、先行するエラー訂正方法に勝ることが可能であるが、LDPC符号について必要な符号化器は、旧来型のシステムに比べてかなり大きく、処理経路を通して複数の繰り返しが更に必要である。エラー訂正性能は、所定の時間フレーム、即ちLDPCフレーム時間における処理経路を通して行われることが可能である複数の繰り返しにより決定され、そして制約される。メモリ割り当て及びメモリアクセス処理を有する構造的な制限は、復号化器の性能に全体的な制約を課す可能性がある。
LDPCフレーム時間において実行されることが可能である繰り返し数を増加させることは、直接、改善された復号化器の性能をもたらすことが可能である。LDPCフレーム時間の間に実行されることが可能である繰り返し数を増加させる回路アーキテクチャ及び方法が、それ故、望ましい。同様に、大きさを小さくし、パワーを節約し、また、復号化器性能を向上させるように復号化器を構成するとき、メモリのような資源を有効に使用することが望ましい。
本発明の装置は、処理されるデータを記憶する主メモリと、データを受信する2つの処理器のどちらかを選択するスイッチと、データに関する第1処理を実行する第1処理器と、そのデータに関する第2処理を実行し、そのデータの再順序付けを容易にする前進シフト及び後進シフト処理を有する第2処理器と、スイッチング、シフティング、メモリ読み取り及び書き込み機能を制御する制御器とを有する。
本発明の方法は、最初の構成における第1メモリからデータを読み出すステップと、データの構成を変えるステップと、変化したデータを処理するステップと、最初の構成にデータを戻すステップと、主メモリにデータを記憶させるステップと、を有する。
本発明の有利点については、以下の詳細説明を読み、添付図を参照することにより理解することができる。
本発明の特徴及び有利点については、例示として与えられている以下の説明から更に明らかになる。
本発明の1つ又はそれ以上の特定の実施形態について、下で説明する。それらの実施形態についての簡潔な説明を与える努力において、本明細書では、実際の実施形態の全ての特徴については記載されていない。何れかの技術又は設計プロジェクトのような、何れかのそのような実際の実施形態の開発においては、システム関連の及びビジネス関連の制約とのコンプライアンスのような開発者の特定の目的を達成するように、多くの実施形態に特有の決定がなされる必要があり、それらの制約は一の実施形態から他の実施形態へと変わる可能性がある。更に、そのような開発の努力は、複雑であり、時間を要するものであるが、それにも拘わらず、本発明の有利点を有することにより、当業者にとって、設計、製造及び生産を行う日常的な仕事である。
以下、衛星信号を受信するために用いられる回路について説明する。信号入力が一部の他の手段により供給されることが可能である場合に、他の種類の信号を受信するために用いられる他のシステムは、かなり類似する構造を有することが可能である。当業者は、ここで説明する回路の実施形態が単に1つの有力な実施形態であることを理解することができる。それ故、代替の実施形態においては、回路の構成要素は、再編成される又は削除されることが可能であり、若しくは、付加構成要素が追加されることが可能である。例えば、小さい改善により、上記の回路は、ケーブルネットワークからもたらされるサービスのような非衛星映像及び音声サービスで用いるように構成されることが可能である。
ここで、図1を参照するに、本発明の例示としてのリンク回路100が示されている。その回路の入力において、アナログ/ディジタル(A/D)変換器102が周波数変換器104に接続されている。数値制御発振器(NCO)106のような発振器はまた、周波数変換器104に接続されている。周波数変換器104の出力はアンチエイリアスフィルタ108に接続され、アンチエイリアスフィルタ108は自動ゲイン制御(AGC)増幅ブロック110に接続されている。AGC増幅ブロック110の出力は、シンボルタイミングリカバリブロックに接続されているデシメータブロック112に接続されている。シンボルタイミングリカバリブロック114はキャリアトラッキングループ116に接続され、最終的に、キャリアトラッキングループ116はエラー訂正ブロック118に接続されている。リンク処理器220はNCO106、AGC増幅ブロック110、キャリアトラッキングループ116及びリンクメモリ122に接続されている。明確化のために、一部の接続及びブロックは省略されているが、当業者は、それらの省略を認識することができる必要がある。各々のそれらのブロックの動作については、下で更に説明する。
リンク回路100は、チューナ(図示せず)から供給される1つ又はそれ以上のベースバンド信号をディジタル信号に変換するA/D変換器102を有する。A/D変換器102からのディジタル信号は、1つ又はそれ以上のベースバンド信号の一連のサンプルを表し、ここで、各々のサンプルは、例えば、データの10ビット語を有する。好適な実施形態においては、A/D変換器102への入力として、1つ又はそれ以上のベースバンド信号が用いられることに留意することは重要である。しかしながら、他の実施形態においては、A/D変換器102への入力としてチューナにより供給される信号は、ベースバンド近傍の周波数に位置付けられることが可能である、又はある他の中間周波数(IF)に位置付けられることが可能である。
クロック信号(図示せず)はまた、一連のサンプルを生成するように、A/D変換器に接続されている。クロック信号は、水晶のような他のソースから生成されることが可能である、及び/又は、リンク処理器120により更に制御されることが可能である。一実施形態においては、リンク処理器120は、入力受信信号の適切な処理のために必要なクロックレートを決定することが可能である。他の実施形態においては、A/D変換器102におけるサンプリングは固定レートにおいて行われることが可能であり、サンプリングされた信号を適切なサンプリングレートに間引くような処理が後続のブロックにおいて行われることが可能である。
A/D変換器102からのディジタル信号は、周波数混合器又は周波数変換器104に供給される。周波数変換器104はまた、NCO106から供給される入力信号を受信する。NCO106及び周波数変換器104は、入力信号のキャリア周波数に対して入力ディジタル信号をシフトさせることができ、それにより、周波数シフトされたディジタル信号を生成することができる。NCO106は、典型的には、プログラマブル周波数ディジタル信号ソースである。NCO106のディジタル周波数をプログラムするための制御はリンク処理器120により行われることが可能である。一部の実施形態においては、下で説明するように、リンク処理器120と共に又はそれとは別個に、キャリアトラッキングループ116により制御が決定されることが可能である。NCO106の処理範囲は、その周波数オフセット調整範囲に関して特定されることが可能である。この範囲は、入力ディジタル信号のシンボルレート及び/又はA/D変換器102が入力ベースバンド信号を処理するために用いるサンプリングレート等の多くの因子を用いて決定されることが可能である。一実施形態においては、周波数変換器ブロック104及びNCO106が、キャリアトラッキングループ116により決定される周波数オフセットがリンク回路100において位置付けられている回路構成内に直接、移動するようにされる。リンク回路100におけるオフセットを補正することにより、チューナの可能性のある再チューニングを取り除き、そのチューナは、ユーザにとって好ましくない付加的な時間遅延をもたらす可能性がある。
周波数変換器104の出力は、アンチエイリアスフィルタ108に周波数シフトされたディジタル信号を供給する。アンチエイリアスフィルタ108は、典型的には、好ましい入力信号に関連しない信号エネルギーを除去する一方、実質的に変化しない、好ましい入力信号を渡すように用いられるディジタル信号である。リンク回路100において変調するために有効な入力信号のシンボルレートの範囲に応じて、アンチエイリアスフィルタ108は、1つ又はそれ以上の固定フィルタ又はプログラマブルフィルタの集合であることが可能である。好適な実施形態においては、アンチエイリアスフィルタ108は、通過帯域周波数応答及び/又は他の特性を変化させるようにプログラムされることが可能である。他の実施形態においては、フィルタは、入力周波数シフトディジタル信号の通過帯域特性に適合するようにプログラムされることが可能である。1つのそのような通過帯域特性は信号の帯域幅であることが可能である。
フィルタリングされたディジタル信号はAGC増幅ブロック110に渡される。AGC増幅ブロック110は、ゲイン制御可能ディジタル信号増幅器及び信号検出器を有する。信号検出器は、存在する信号の大きさを測定するように用いられる。信号検出器は、典型的には、ある時間期間に亘る二乗平均平方根パワーのような信号の全パワーを検出することが可能である。信号検出器の出力は、増幅器の出力が一定のレベルに維持されることが可能であるように、ゲイン制御可能ディジタル信号増幅器のための制御信号としてループにおいて接続される。更に、AGCブロック110における検出器は、入力信号レベルを表示するように用いられることが可能である。検出器の一出力、即ち、レベル表示器の信号は、更なる処理のためのリンク処理器120に経路付けられることが可能である。
AGCブロック110は、制御可能ディジタル信号増幅器からのゲイン補償信号を出力し、デシメータ112にそのゲイン補償信号を供給する。デシメータ112は、シンボルタイミングリカバリブロック114についての必要なサンプルレート及び入力信号レートの組み合わせに基づいてゲイン補償信号のサンプルを取り除くことにより有効なサンプリングレートを減少させる。
シンボルタイミングリカバリブロック114は、サンプリング位置を最適化するように、入力間引き信号の位相を調整し、入力信号に送られるデータのシンボルの最適な検出を可能にする制御ループを有する。シンボルタイミングリカバリブロック114の出力は、その場合、キャリアトラッキングループ116に含まれるブロックに接続する。キャリアトラッキングループ116は、予測されるキャリア周波数又は現在のキャリア周波数に対して入力信号の位相及び/又は周波数を決定する及び/又は補正することが可能である制御ループを有する。キャリアトラッキングループ116は、入力信号におけるデータのシンボルの実際の値についての考慮なしに、周波数オフセットを決定及び補正することが可能である。
シンボルタイミングリカバリブロック114及びキャリアトラッキングループ116が、当業者に知られているように、互いに対して及び/又はリンク回路100における他のブロックに対して動作可能であるように結合されることが可能であることに留意することは重要である。
キャリアトラッキングループ116の出力、即ち、ここでは、変調信号は、エラー訂正ブロック118に入る。典型的には、エラー訂正ブロック118は、実際のシンボル値を決定するシンボルスライサモジュールを有することが可能である。エラー訂正ブロック118はまた、データ及びエラー訂正ビットを有するビットを生成するように用いられるビットマッパモジュールに対するシンボルを有することが可能である。更に、エラー補正ブロック218は、入力信号におけるデータと共に送られたエラー訂正情報を利用するモジュールを有する。複数の種類のエラー訂正方法が、当業者に知られているように、ここで説明している通信システムのような通信システムにおいて用いられることが可能である。一部のエラー補正方法は、リード−ソロモンエラー訂正、トレリスエラー補正又はインターリーブを有することが可能である。また、一部の新しい種類のターボ符号エラー訂正及びLDPCエラー補正等がまた、用いられることが可能である。それらのエラー訂正方法の何れかが、当業者に知られているように、別個に用いられることが可能であり、又は一緒に機能するように組み合わされることが可能である。
以下で、LDPC復号化器として知られている新しい種類のエラー訂正復号化器の特徴について説明する。その復号化器は、衛星受信器において有することが可能である。本発明においては、LDPC復号化器における処理として説明しているが、本発明はこの特定の復号化器に限定されるものでなく、また、本発明は衛星受信器におけるLDPC復号化器に限定されるものでない。
ここで、図2を参照するに、本発明の1つのLDPC復号化器ブロックの一部について示している。LDPC復号化器ブロック200は、図1に示すエラー訂正ブロック118内に位置付けられている。図2は、複数の同じブロック(例えば、360個の同じブロック)を通常、有する全LDPC復号化器構造の一ブロック単位のみを示していることに留意する必要がある。各々のブロックは、全データセグメントを処理するように、データセグメントの小さいセクションにおいて並列して動作する。明確化のために、本発明に関連する全構造の機能要素のみが示されている。
ブロックメモリ202は、他の外部の処理ブロック(即ち、キャリアトラッキングループ及び/又はインタイリーバ)に接続する入力接続及び出力接続の両方を有する。ブロックメモリ202はまた、多重スイッチ、即ち、上部マルチプレクス204に接続している。上部マルチプレクス204は、2つの出力、即ち、CPUブロック206に接続している一の出力と、BPUブロック208に接続している他の出力とを有する。CPUブロック206及びBPUブロック208は各々、第2多重スイッチ、下部マルチプレクス210に接続している。下部マルチプレクス210は、CPU/BPUレジスタメモリ212に接続している。CPU/BPUレジスタメモリ212は、ブロックメモリ202に接続している。制御器214は、ブロックメモリ202と、上部マルチプレクス204と、下部マルチプレクス210と、CPU/BPUレジスタメモリ212と、制御器メモリ216とに接続されている。
ブロックメモリ202はランダムアクセスメモリ(RAM)であることが可能である。ブロックメモリ202への最初の入力は、例えば、キャリアトラッキングループ116からの変調データを有するデータセグメントであることが可能である。そのデータセグメントは、LDPCエラー訂正において用いられるエラー訂正ビットのようなエラー訂正ビット及びデータビットを有する。ローカルエラー訂正が完了するとすぐ、ブロックメモリ202の出力は、取り除かれたLDPCエラー訂正に関連するエラー訂正ビットを有するLDPCエラー訂正データストリームを表すデータストリームセグメントを有することが可能である。ブロックメモリ202の出力は、エラー訂正の他のセクションに接続することが可能であり、又はその出力は、映像、音声及び/又はデータ復号化器に接続することが可能である。
ブロックメモリ202はまた、上部マルチプレクス304を介してCPUブロック206及びBPUブロック208にデータセグメントの必要なセクションを供給する。上部マトリクス204は、データセグメントのそのセクションがCPUブロック206又はBPUブロック208に送られるように制御する。CPUブロック及びBPUブロック208は、LDPCデータを処理し、エラー訂正アルゴリズムを実行する主処理器である。上記のように、それらのブロックは互いに別々に動作し、BPUブロック208はブロック208を介してCPUブロックブロック206に最終的に入る1つの処理ステップの結果を得、その逆も行われる。更に、CPUブロック206及びBPUブロック208により用いられる実際のアルゴリズムに関しては、本発明の範囲を外れるが、当業者には知られている。
下部マルチプレクス210は、CPUブロック206及びBPUブロック208の最終的に処理された出力を取り、どの出力が実際にブロックメモリ202に方向付けされるかを制御することが可能である。CPUブロック206及びBPUブロック208によりブロック208の両方は、それらの内部のアルゴリズム処理ステップの間に中間値を維持するために、レジスタの集合のような一部のローカルメモリ格納を必要とする。典型的には、各々の処理器に専用のメモリの複写の集合を生成するメモリが、ブロック206及び208の各々に存在している。本発明においては、CPU/BPUレジスタメモリ212は、CPUブロック206及びBPUブロック208の内部処理のためのメモリがCPUブロック206及びBPUブロック208の両方により共有されることが可能であるように、多重スイッチ210を越えて位置付けられることが可能である。CPU/BPUレジスタメモリ212におけるメモリ空間を共有する結果として、より有効な全体のメモリ空間の利用を達成することができる。その共有は更に、全パワーの減少をもたらし、動作速度を高くすることを可能にする。下部マルチプレクス210は、CPU/BPUレジスタメモリ212と1つの現在アクティブな処理ブロック206又は208との間の中間データ値のフローのための双方向制御スイッチとしての役割を果たす。アクティブ処理ブロック、CPUブロック206又はBPUブロック208が終了した後、下部マルチプレクス210は、次いで、CPU/BPUレジスタメモリ212を介してブロックメモリ202に
アクティブ処理ブロックの最終出力を経路付ける。
制御器214は、ブロックメモリ202及びCPU/BPUレジスタメモリ212の両方についてアクセス制御を与える。制御器212は、入力セグメントのどのビット又はセクションが現在の処理サイクルにおける処理のためにブロックメモリ202から読み出される必要があるか、及び/又はブロックメモリ202のどの位置が現在の処理サイクルの結果を送る必要があるかを決定する。CPU/BPUレジスタメモリ212はまた、CPUブロック206及びBPUブロック208から直接、アクセス制御及びデータを受け入れる。更に、制御器214は、現在の処理モードに基づいて、上部マルチプレクス204及び下部マルチプレクス210を制御する。
制御器214はアレイ位置を記憶するように制御器メモリ216を用い、そのアレイ位置のためにデータストリーム要素がブロックメモリ202内に位置している。それらのアレイ位置は、CPU及びBPU処理ステップにおいて用いられるデータビット、パリティビット及びパリティグループ間の適切な順序配列を与える。最終的に、それらのブロックの全ては、1つ又はそれ以上のクロック信号(図示せず)を用いて動作する。クロック信号は、外部のソースからブロックユニットに生成される、又は内部で生成されることが可能である。一実施形態においては、ブロックユニット200に供給され、BPUブロック208及びCPUブロック206により用いられる処理クロックは、A/D変換器102についてのクロックの周波数の4倍として生成される信号であることが可能である。
ブロックメモリ202、制御器212及び制御器メモリ216は、この実施形態におけるブロックユニットの一部として示されているが、他の実施形態は、集合的なブロックユニット全てのために、1つのブロックメモリ、1つの制御器及び1つの制御器メモリを有することが可能である。上記のブロックの機能についての説明は変わらないものである。更に、複数の機能はそのブロック図には含まれていないが、当業者に知られているものである。それらの機能は、クロック回路、フラッグインジケータ、パイプラインレジスタ及び、例えば、ブロックユニット間の情報の相互接続を可能にする他の制御機能を有することが可能である。
通常、CPU及びBPU機能は、多かれ少なかれ独立して動作する。本発明は、回路をセーブするように、回路の一部、即ち、CPU及びBPU計算ユニットで用いられるレジスタメモリを組み合わせることができる。特に、CPUユニット206及びBPUユニット208により行われる計算中に、一部の中間結果がレジスタに記憶される。本発明は、1つのレジスタメモリ212のみが両方の動作の間で必要であるように、それらのレジスタを共有するように、マルチプレクサ210を用いる。制御器214は、その共有処理を管理するように用いられる。
CPUブロック206は、BPUブロック208と異なる様式で処理されるデータを必要とすることが可能である。一実施例においては、CPUブロック208は、データ経路における開始点に対して循環シフトされるデータを必要とする。従来は、そのシフトは、CPUブロック206を用いることにより得られていて、3つの別個の処理を必要とする。第1処理は、ブロックメモリ202の中からデータセクションを読み出し、CPUブロック208内でそのデータをシフトさせ、次いで、ブロックメモリ202にその新たにシフトされたデータセクションを送ることを有する。第2処理は、この新たにシフトされたデータセクションをブロックメモリ202から読み出し、エラー訂正処理のためにCPUブロック308にその新たにシフトされたデータを送ることを有する。CPUブロック処理が終了するとすぐ、処理された、シフトされたデータはブロックメモリ202に送り戻される。最終的には、第3処理は、ブロックメモリ202から処理された、シフトされたデータを読み出し、CPUブロック202を用いてその処理された、シフトされたデータを戻すようにシフトさせ(即ち、第1シフトの逆を行い)、ブロックメモリ202にその戻して、新しくシフトしていないように処理されたデータを送ることを有する。その後、ブロックメモリ202におけるデータは、ここでは、BPUブロック208を用いて処理する準備ができている。それらの3つの処理は、付加的なクロックサイクルを用い、それ故、LDPCフレーム時間の範囲内で達成されることができる繰り返し回数を制限する。下で説明するように、CPUブロック306と直列のシフト操作を与えることにより、かなり高い時間効率が達成される。
ここで図3を参照するに、本発明の1つのLDPC復号化器ブロックの部分が示されている。LDPC復号化器ブロック300は、図1に示されているエラー訂正ブロック118内に位置付けられている。図3は、多くの同じブロック(例えば、360個の同じブロック)を通常、有する全LDPC復号化器構造の1ブロックユニットのみを示していることに留意する必要がある。各々のブロックは、全データセグメントを処理するように、データセグメントの小さいセクションにおいて並列して動作する。明確化のために、本発明に関連する全体の構造における機能要素のみについて示されている。
ブロックメモリ302は、他の外部の処理ブロック(即ち、キャリアトラッキングループ及び/又はインタリーバ)に接続するための入力及び出力接続の両方を有する。ブロックメモリ302はまた、マルチプレクススイッチ、即ち、上部マルチプレクス304に接続している。上部マルチプレクス304は、2つの出力、前進シフトブロック305への1つの接続及びBPUブロック308への他の接続を有する。前進シフトブロック305はCPUブロック306に接続している。CPUブロック306は、リバースシフトブロックに、BPUブロック308と共に接続し、各々は第2マルチプレクススイッチ、即ち、下部マルチプレクス310に接続している。下部マルチプレクス310はCPU/BPUレジスタメモリブロック312に接続している。CPU/BPUレジスタメモリブロック312はブロックメモリ302に戻るように接続している。制御器314は、ブロックメモリ302、上部マルチプレクス304、下部マルチプレクス310、前進シフトブロック504、リバースシフトブロック508及び制御器メモリ316に接続されている。
ブロックメモリ302はRAMであることが可能である。ブロックメモリ302への最初の入力は、例えば、キャリアトラッキングループ216からの復調データを有するデータセグメントであることが可能である。データセグメントは、LDPCエラー訂正において用いられるエラー訂正ビットのようなエラー訂正ビット及びデータを有する。局部エラー訂正が終了するとすぐ、ブロックメモリ302の出力は、取り除かれたLDPCエラー訂正に関連するエラー訂正ビットによりLDPCエラー訂正データストリームを表すデータストリームセグメントを有することが可能である。ブロックメモリ302の出力は、エラー訂正の他のセクションに接続することが可能である、又はその出力は、映像/音声/データ復号化器に接続することが可能である。
ブロックメモリ302はまた、上部マルチプレクス304を介してCPUブロック306及びBPUブロック308に必要なデータセグメントのセクションを供給する。上部マルチプレクス304は、そのデータセグメントのセグメントがCPUブロック306又はBPUブロック308に送られるかどうかを制御する。CPUブロック306及びBPUブロック308は、LDPCデータを処理する及びエラー訂正アルゴリズムを実行する主処理器である。上記のように、それらのブロックは、CPUブロック306に最終的に入る1つのBPU処理出力の結果と直列して、また独立して動作し、その逆も同様に動作する。CPUブロック及びBPUブロックの各々はまた、データストリームを処理するために必要な中間操作及び計算を記憶するローカルメモリを用いることが可能である。更に、CPUブロック306及びBPUブロック308により用いられる実際のアルゴリズムに関しては、本発明の範囲外であるが、それについては、当業者に知られている。
ブロックメモリ302から読み出された後に、データは、前進シフトブロック305において先ず、シフトされ、次いで、CPUブロック306に送られる。CPUブロック306がその処理を終了した後、CPUブロック306に入る前にデータにおいて実行されるシフトに対して逆の他のシフトが、リバースシフトブロック309において実行される。そのシフト及びリバースシフト機能は、データがBPUブロック308により用いられることが可能であるように、そのデータが適切な方向でメモリに戻るように書き込まれることを可能にする。最終的には、下部マルチプレクス310は、BPUブロック308の出力からの経路付けと、CPU/BPUレジスタメモリ312に及びブロックメモリ301にまた、戻る、CPUブロック306並びにシフトブロック305及び309を有する経路を与える。CPU/BPUレジスタメモリ312は、CPUブロック306及びBPUブロック308の内部処理のためのメモリがCPUブロック306及びBPUブロック308の両方により共有されることが可能であるように、マルチプレクススイッチ310を越えて位置付けられることが可能である。
制御器314は、ブロックメモリ302及びCPU/BPUレジスタメモリ312の両方についてアクセス制御する。制御器314は、入力セグメントのどのビット又はセクションが現在の処理サイクルにおける処理のためにブロックメモリ302から読み出される必要があるか、及び/又はブロックメモリ302におけるどの位置が現在の処理サイクルの結果を送る必要があるかを決定する。更に、制御器314は、現在の処理モードに基づいて、上部マルチプレクス304及び下部マルチプレクス310を制御する。制御器314はまた、前進シフトブロック305及び後進シフトブロック309を制御し、それらにデータ入力する。一実施形態においては、制御器314は、CPU処理の間に後進シフトブロックにバイパスをつける制御として後進シフトブロック309を制御することが可能であり、中間のCPU処理動作中、CPUブロック306がCPU/BPUレジスタメモリにアクセスすることを可能にする。
制御器314は、データストリーム要素がブロックメモリ内で位置しているアレイ位置を記憶するように制御メモリ316を用いる。それらのアレイ位置は、CPU処理ステップ及びBPU処理ステップにおいて用いられるデータビット、パリティビット及びパリティグループ間の適切な順序配列を与える。更に、制御器メモリ314は、データセグメントセクションの各々についてのシフト設定を有することが可能である。それらのシフト設定は、その場合、CPU処理経路において位置付けられているシフトブロック305及び309をプログラムするように用いられる。最終的に、ブロックの全ては、1つ又はそれ以上のクロック信号(図示せず)を用いて動作する。クロック信号は、ブロックユニットの外部のソースから生成される、又は内部で生成されることが可能である。一実施形態においては、ブロックユニットに供給され、BPUブロック308及びCPUブロック306により用いられる処理クロックは、図1におけるA/D変換器201のために用いられルクロックの周波数の4倍として生成される信号であることが可能である。
ブロックメモリ302、制御器314及び制御器メモリ316がこの実施形態におけるブロックユニットの一部として示されているが、他の実施形態においては、集合的なブロックユニット全てのための1つに、1つのブロックメモリ、1つの制御器及び1つの制御器メモリを有することが可能である。上記のブロックの機能についての説明は変わらないものである。更に、複数の機能は、そのブロック図に含まれていないが、当業者には知られているものである。それらの機能は、例えば、ブロックユニット間の情報の相互接続を可能にするクロック回路、フラッグインジケータ、パイプラインレジスタ及び他の制御機能である。
上記のように、LPDCエラー訂正方法の実行は、エラー訂正ブロックがデータセグメントにおいて実行することができる繰り返し数に関連している。CPU処理経路のみにおける必要なシフト動作を実行するように直列配列を用いることにより、エラー訂正方法における複数の繰り返しが得られる。
ここで、図4を参照するに、方法400を示すフロー図が示されている。そのフロー図は、図3におけるLDPCブロックのBPU経路を介してデータを処理することにより後続される、CPU経路を介してデータを先ず、処理する処理について示されている。他の実施形態においては、その処理は、BPU経路で開始され、CPU経路で終了することが可能である。また、その処理は、好ましい性能レベルを達成するために必要な複数の繰り返しにより、又は処理の時間フレームが終了するまで、続けられることが可能である。
先ず、ステップ402において、ブロックメモリ302からデータのセクションが読み出される。そのデータは、その場合、前進シフトブロック305の方に渡されることが可能であり、この場合、ステップ404において、前進シフトブロック305はそのデータセクションをシフトさせる。好適な一実施形態においては、そのシフトはそのデータのセクションの循環シフトであることが可能である。次に、ステップ406において、CPUブロック306において計算が実行される。CPUブロック306においてその計算が終了するとすぐ、ステップ408において、その処理されたデータは、リバースシフトブロック309において逆にシフトされる。次に、ステップ410において、そのデータは、ブロックメモリ302に戻るように書き込まれる。このステップにおいて、繰り返しサイクルのためのCPU処理が終了する。
次に、ステップ412において、そのデータのセクションは再び、ブロックメモリ302から読み出される。そのデータは、BPUブロック308に渡され、ここで、ステップ414において、BPUブロック308はそのデータを処理する。最終的に、ステップ416において、BPUブロック308における処理の終了後、そのデータは、ブロックメモリ302に戻るように書き込まれる。この時点で、その処理を通しての1つの完全な繰り返しが終了している。上記のように、その処理は、復号化器の出力の製法を改善するように、複数回、繰り返されることが可能である。
図示しているように、図4に示す処理における各々のステップは、処理クロックの1つのサイクルを表していない。実際には、パイプライン構造(図示せず)を用いることにより同じクロックサイクルに結合されることが可能であるが、当業者に知られているものである。データの各々の集合が異なり、処理シーケンスにおいて連続的である場合、例えば、データの集合を読み出すステップ、データの集合をシフトするステップ、CPUブロックにおけるデータの集合を処理するステップ、及びデータの集合を戻るようにシフトするステップが、同じクロックサイクルのおいて同時に行われることが可能である。メモリの読み出し及び書き込みは異なるクロックサイクルで行われることが必要である。
その処理方法及びアーキテクチャは、LDPC復号化器におけるデータの処理に対する有効な方法を与え、LDPCフレーム時間における処理の最大繰り返し数を可能にする。本発明の特徴については上で個別に説明しているが、それらの特徴は、本発明の各々の特徴により与えられる性能の全部の有利点を得るように結合されることがまた、可能であり、見込まれる。
本発明においては、種々の修正及び変形が可能である一方、特定の実施形態が例示として示され、上で詳述されている。しかしながら、本発明においては、開示されている特定の実施形態に限定されることは意図されていないことが理解される必要がある。本発明においては、本明細書と同時提出の特許請求の範囲に記載されている本発明の範囲及び主旨に入る修正、等価及び変形全てをカバーするようになっている。
以下、開示される発明の実施の形態を例示的に列挙する。
[付記項1]
エラー訂正を実行する装置であって:
処理されるデータを記憶する第1メモリ;
前記第1メモリに結合され、第1出力及び第2出力を有する第1スイッチ;
前記第1スイッチの前記第1出力に結合された第1処理器;
前記第1スイッチの前記第2出力に結合された第2処理器であって、前記データの再順序付けを容易にするように前進シフト動作及び後進シフト動作を有する、第2処理器;並びに
前記第1スイッチを切り換え可能であるように制御するために前記第1スイッチ及び前記第2処理器に結合されている制御器;
を有する装置。
[付記項2]
付記項1に記載の装置であって、前記第1処理器及び前記第2処理器にスイッチング可能であるように結合され、前記第1メモリに結合された出力を有する第2メモリを更に有する、装置であり、前記第2メモリは、前記第1処理器及び前記第2処理器の中間結果を記憶する、装置。
[付記項3]
付記項2に記載の装置であって、前記第2メモリは、用いられるメモリ空間における減少を与えるように含まれる、装置。
[付記項4]
付記項1に記載の装置であって、該装置は、低密度パリティ調査符号エラー訂正のために用いられる、装置。
[付記項5]
付記項1に記載の装置であって、前記第1処理器はビットノード処理のために用いられる、装置。
[付記項6]
付記項1に記載の装置であって、前記第2処理器は調査ノード処理のために用いられる、装置。
[付記項7]
付記項1に記載の装置であって、制御及びアクセス情報を記憶する前記制御器に結合された第3メモリを更に有する、装置。
[付記項8]
付記項1に記載の装置であって、該装置は、衛星受信器においてDVB−S2信号を受け入れるように用いられる、装置。
[付記項9]
付記項1に記載の装置であって、前記制御器は、前記第2処理器の前記前進シフト動作及び前記後進シフト動作を更に制御する、装置。
[付記項10]
付記項1に記載の装置であって、前記第1メモリはRAMである、装置。
[付記項11]
付記項1に記載の装置であって、前記前進シフト及び前記後進シフトは、前記第2処理器に外部から直列に結合されている、装置。
[付記項12]
付記項1に記載の装置であって、前記前進シフト及び前記後進シフトは、時間フレームにおける処理の繰り返し回数を増加させる、装置。
[付記項13]
エラー訂正を実行する方法であって:
第1メモリからデータを読み出すステップであって、前記データは最初の構成で配列されている、ステップ;
前記データの前記構成を変えるステップ;
第1処理を用いて前記変えられたデータを処理するステップ;
前記最初の構成に前記処理されたデータを戻すステップ;及び
前記第1メモリに前記処理されたデータを書き込むステップ;
を有する方法。
[付記項14]
付記項13に記載の方法であって:
前記第1メモリから前記処理されたデータを読み出すステップ;
第2処理において前記データを再処理するステップ;及び
前記第1メモリに戻るように前記処理されたデータを書き込むステップ;
を更に有する、方法。
[付記項15]
付記項14に記載の方法であって、前記第2処理はビットノード処理である、方法。
[付記項16]
付記項13に記載の方法であって、該方法はLDPC復号化器で用いられる、方法。
[付記項17]
付記項13に記載の方法であって、前記第2処理は調査ノード処理である、方法。
[付記項18]
付記項13に記載の方法であって、前記変えるステップ及び前記戻すステップはそれぞれ、前進シフト及び後進シフトを有する、方法。
[付記項19]
第1メモリからデータを読み出す手段であって、前記データは最初の構成で配列されている、手段;
前記データの前記構成を変える手段;
第1処理を用いて前記変えられたデータを処理する手段;
前記最初の構成に前記処理されたデータを戻す手段;及び
前記第1メモリに前記処理されたデータを書き込む手段;
を有する装置。