(57)【要約】  プログラム可能な信号処理回路は、デパンクチャ命令を有する命令セットを備えた命令処理回路（２３、２４、２６）有する。命令処理回路（２３、２４、２６）は、ビットメトリックオペランドからビットメトリックをコピーし、及び１つ以上の所定のビットメトリック値をデパンクチャ結果内のビットメトリックオペランドからのビットメトリック間に挿入することにより、デパンクチャ結果を形成する。命令処理回路（２３、２４、２６）は、デパンクチャ結果内のコピーされたビットメトリックの相互に対する相対位置を、ビットメトリックオペランド内のコピーされたビットメトリックの相互に対する相対位置と比べ、１つ又は複数の挿入された所定のビットメトリックを収容するために必要な程度まで変化する。
2008523762.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能な信号処理回路であって、
−オペランド記憶回路；
−オペランド位置及び結果位置を前記オペランド記憶回路内でアドレス指定する命令処理回路、を有し、前記命令処理回路の命令セットはデパンクチャ命令を有し、前記命令処理回路は、ビットメトリックオペランドを前記デパンクチャ命令により示されたビットメトリックオペランド位置から受信するオペランド入力と、デパンクチャ結果を前記デパンクチャ命令により示された結果位置へ書き込む結果出力と、を有し、前記命令処理回路はビットメトリックを前記ビットメトリックオペランドからコピーし及び１つ以上の所定のビットメトリック値を前記デパンクチャ結果内の前記ビットメトリックオペランドからのビットメトリック間に挿入し、前記デパンクチャ結果内の前記コピーされたビットメトリックの相互に対する相対位置を前記ビットメトリックオペランド内の前記コピーされたビットメトリックの相互に対する相対位置に比べ、１つ又は複数の前記挿入された所定のビットメトリック値を収容するために必要な程度まで変化することにより、前記デパンクチャ結果を形成するよう配置される、プログラム可能な信号処理回路。
【請求項２】
少なくとも１つのビットメトリック多重回路を有し、前記ビットメトリック多重回路は、前記オペランド入力と結合され前記ビットメトリックオペランド内の個々の位置から複数の個々のビットメトリックを受信する入力と、前記結果出力と結合され前記デパンクチャ結果の一部を供給する出力と、所定のビットパターン値が挿入されなければならない場所を制御する前記デパンクチャ命令により指定された情報から引き出された制御信号を受信するために結合された制御入力と、を備え、前記デパンクチャ命令により指定された前記情報が、ビットメトリックは前記ビットメトリックオペランドから前記デパンクチャ結果の前記部分にコピーされるべきであると示すかどうか、及びパターンオペランドが示す複数の所定のビットメトリック値は前記パンクチャ結果の前記部分に論理的に先行するデパンクチャ結果の更なる部分に挿入されるべきかに依存して、所定のビットメトリック値又は前記ビットメトリックオペランドからのビットメトリックの１つを出力するよう選択する、請求項１記載のプログラム可能な信号処理回路。
【請求項３】
前記オペランド入力と前記結果出力との間に結合され前記デパンクチャ結果の一部を供給する制御可能なシフト回路、を有し、前記制御可能なシフト回路は、所定のビットパターン値が挿入されなければならない場所を制御する前記デパンクチャ命令により指定された情報から引き出された制御信号を受信するために結合された制御入力を有し、前記デパンクチャ命令により指定された前記情報が示す前記デパンクチャ結果の前記部分に先行する前記デパンクチャ結果の更なる部分に挿入されるべき所定のビットメトリック値の数に依存して、前記制御可能なシフト回路のシフト量を制御する、請求項１記載のプログラム可能な信号処理回路。
【請求項４】
前記命令処理回路は、前記デパンクチャ命令のパターンオペランドを受信する更なるオペランド入力を有し、前記パターンオペランドはプログラム可能なデパンクチャリングパターンを指定し、前記命令処理回路は、前記パターンオペランド内の指定された前記プログラムされたデパンクチャリングパターンに依存して、前記命令処理回路が前記所定のビットメトリック値を前記パンクチャ結果内に、前記ビットメトリックオペランドからのビットメトリックの間に挿入する位置を制御するよう配置される、請求項１記載のプログラム可能な信号処理回路。
【請求項５】
前記命令セットは複数のデパンクチャ命令を有し、各デパンクチャ命令は、前記所定のビットメトリック値が挿入されなければならない、デパンクチャ結果内の前記ビットメトリックオペランドからのビットメトリックの間の個々の異なる位置又は位置の組み合わせを定める、請求項１記載のプログラム可能な信号処理回路。
【請求項６】
前記デパンクチャ命令は更なるビットメトリックオペランドを有し、前記命令処理回路は、ビットメトリックオペランド内のビットメトリック数が前記デパンクチャ結果を形成するために十分でない場合、前記ビットメトリックオペランドの入力及び前記更なるビットメトリックオペランドの両方から前記デパンクチャ結果へ、前記ビットメトリックをコピーするよう配置される、請求項１記載のプログラム可能な信号処理回路。
【請求項７】
前記命令処理回路は、前記デパンクチャ命令又はキュー命令に応じ、前記デパンクチャ結果に含まれていないビットメトリックを、前記複数のオペランドからキュー結果へコピーすることにより、及び前記キュー結果内のビットメトリックを前記デパンクチャ命令の将来の実行中に前記ビットメトリックオペランドとして使用するために配置することにより、キュー結果を形成する、請求項６記載のプログラム可能な信号処理回路。
【請求項８】
前記デパンクチャ命令は、前記ビットメトリックオペランド内に存在するビットメトリックの数を示す長さオペランドを有し、前記命令処理回路は、前記長さオペランドに依存した前記ビットメトリックオペランドから前記デパンクチャ結果へコピーされるビットメトリックの最大数を制御するよう配置される、請求項６記載のプログラム可能な信号処理回路。
【請求項９】
前記命令処理回路は、デパンクチャ結果を形成するために必要な最小数のビットメトリックがビットメトリックオペランド及び更なるビットメトリックオペランド内で利用可能であるかどうかに依存して、出力有効結果を形成するよう配置され、前記命令処理回路は、前記出力有効結果を前記オペランド記憶回路へ書き込む、請求項６記載のプログラム可能な信号処理回路。
【請求項１０】
前記命令処理回路は、前記デパンクチャ命令又はキュー命令に応じ、前記デパンクチャ命令の将来の実行中に前記ビットメトリックオペランドとして使用するために、前記デパンクチャ結果にコピーされていないビットメトリックを、前記ビットメトリックオペランド及び前記更なるビットメトリックオペランドからキュー結果へコピーすることにより、キュー結果を形成し、前記命令処理回路は前記キュー結果を前記オペランド記憶回路へ書き込む、請求項６記載のプログラム可能な信号処理回路。
【請求項１１】
前記命令処理回路は、前記デパンクチャ結果を形成するために必要なビットメトリック数が前記ビットメトリックオペランド及び前記更なるビットメトリックオペランド内で利用可能であるビットメトリックの総数を超えるかどうかの表示を生成するよう配置され、前記命令処理回路は、前記表示を前記オペランド記憶回路へ書き込む、請求項１０記載のプログラム可能な信号処理回路。
【請求項１２】
前記命令処理回路は、前記デパンクチャ結果を形成するために必要なビットメトリック数がビットメトリックオペランド内で利用可能であるかどうかの表示を生成するよう配置され、前記命令処理回路は、前記表示を前記オペランド記憶回路へ書き込む、請求項１記載のプログラム可能な信号処理回路。
【請求項１３】
前記命令処理回路は更なるビットメトリックオペランドを有し、前記命令処理回路は、前記デパンクチャ命令に応じ、前記デパンクチャ命令の将来の実行中のビットメトリックオペランドとしての使用のため、ビットメトリックを前記ビットメトリックオペランド及び前記更なるビットメトリックオペランドからの少なくとも１つの更なるビットメトリックからキュー結果へコピーすることにより、キュー結果を形成し、前記命令処理回路は前記キュー結果を前記オペランド記憶回路へ書き込む、請求項１記載のプログラム可能な信号処理回路。
【請求項１４】
前記デパンクチャ命令は、前記更なるビットメトリックオペランド内のビットメトリックのビットメトリック数を示し、前記命令処理回路は、前記デパンクチャ命令に応じ、前記更なるビットメトリックオペランドからの全てのビットメトリックが前記キュー結果にコピーされているか否かを、結果内に示すよう配置される、請求項１３記載のプログラム可能な信号処理回路。
【請求項１５】
入力メトリックのストリームのデパンクチャリングを実行するプログラムでプログラムされ、前記プログラムは、
−前記ストリームの連続するチャンクをオペランド記憶位置にロードする１つ以上の命令；
−前記オペランド記憶位置を選択するビットメトリックオペランドを有するデパンクチャ命令、を有する、請求項１記載のプログラム可能な信号処理回路。
【請求項１６】
パンクチャされたデータストリームの補正方法であって、前記方法は、
−前記データストリームを表す信号を受信する段階；
−前記データストリームからビットメトリックのストリームを引き出す段階；
−プログラム可能な命令プロセッサーにデパンクチャ命令を繰り返し実行させる段階；
−前記デパンクチャ命令の実行のために、それぞれビットメトリックのストリームからの個々の複数のビットメトリックを有するビットメトリックオペランドを提供する段階；
−前記デパンクチャ命令の実行に応じ、所定のビットメトリック値を、前記デパンクチャ結果の少なくとも一部に前記ビットメトリックオペランドからのビットメトリックの選択された対の間に挿入し、前記デパンクチャ結果内の前記コピーされたビットメトリックの相互に対する相対位置を、前記ビットメトリックオペランド内の前記コピーされたビットメトリックの相互に対する相対位置と比べて、１つ又は複数の前記挿入された所定のビットメトリック値を収容するために必要な程度まで変化することにより、デパンクチャ結果を形成する段階；
−前記プログラム可能な命令プロセッサーにより復号化された命令を用い、前記デパンクチャ結果からの誤り訂正されたデータを復号化する段階、を有する方法。
【請求項１７】
前記方法は、
−前記デパンクチャ命令の異なるパターンオペランドを、前記プログラム可能な命令実行ユニットへ、前記デパンクチャ命令の個々の実行のために連続的に供給する段階、及び
−前記デパンクチャ命令の前記パターンオペランド制御下で、各デパンクチャ命令の実行中、前記所定のビットメトリック値の挿入のため、前記ビットメトリックの間の位置を選択する段階、を有する請求項１５記載の方法。
【請求項１８】
前記方法は、
−前記デパンクチャ命令又は更なるビットメトリックオペランドを受信する更なる命令に応じキュー結果を形成する段階であって、前記更なるビットメトリックオペランドは、前記ビットメトリックオペランド、前記パターンオペランド及びキュー長コードに加え、所定数のビットメトリックを備えたビットメトリックのストリームからのチャンクを有し、前記キュー長コードは前記ビットメトリックオペランド内のビットメトリック数を指定し、前記キュー結果は、前記デパンクチャ命令又は前記更なる命令に応じ、パターンオペランドに依存する数のビットメトリックを、前記パターンオペランドに従い、前記デパンクチャ結果内へコピーされていない前記キュー結果内に、前記ビットメトリックオペランド内の前記ビットメトリック数から、前記デパンクチャ命令の実行中に配置することにより、形成され、パターンオペランドに依存する数のビットメトリックは、前記キュー結果内で前記更なるビットメトリックオペランドからのビットメトリックと結合される、段階；
−前記デパンクチャ命令の続いて生じる実行のため、前記キュー結果をビットメトリックオペランドとして用いる段階、を有する請求項１７記載の方法。
【請求項１９】
−前記デパンクチャ結果内で用いられていないビットメトリックオペランドからのビットメトリックに加え、前記更なるビットメトリックオペランドからの全てのビットメトリックを前記キュー結果へコピーする十分な空間が前記キュー結果内にある場合、前記キュー結果内のビットメトリック数を示すキュー長結果を計算し、及び前記キュー結果内のビットメトリック数を、前記ビットメトリックオペランド内のビットメトリック数から、前記ビットメトリックオペランドから前記デパンクチャ結果へコピーされたビットメトリック数を差し引いたものに設定する段階；
−前記更なるビットメトリックオペランドからの全てのビットメトリックを前記キュー結果へコピーする十分な空間が前記キュー結果内にあるまで、前記デパンクチャ命令又は同一の更なるビットメトリックオペランドと個々の異なるパターン値と連続するキュー結果を備えた更なる命令の実行を繰り返す段階、を有する請求項１８記載の方法。
【請求項２０】
前記パターンオペランド内のデパンクチャパターンに加え、長さ値を供給する段階、及び前記デパンクチャ命令又は前記更なる命令に応じ前記長さ値を用い、前記更なるビットメトリックオペランドから前記キュー結果へコピーされるビットメトリック値の数を制御する段階、を有する請求項１８記載の方法。
【請求項２１】
更なるビットメトリックオペランドを供給する段階、を有し、前記更なるビットメトリックオペランドは、前記ビットメトリックオペランドと前記パターンオペランドとキュー長コードに加え、前記デパンクチャ命令の実行のためのオペランドとして所定数のビットメトリックを備えたビットメトリックのストリームからのチャンクを有し、前記キュー長コードは前記ビットメトリックオペランド内のビットメトリック数を指定し、前記デパンクチャ結果は、ビットメトリックオペランド内のビットメトリック数が前記デパンクチャ結果内で用いるための十分なコピーを供給するために十分である場合、前記ビットメトリックオペランドからのパターンオペランドに依存する数のビットメトリックを前記デパンクチャ結果内に配置することにより、形成さる、請求項１７記載の方法。
【請求項２２】
前記方法は、
−前記デパンクチャ命令又は更なる命令に応じキュー結果を形成する段階であって、前記更なる命令は、前記ビットメトリックオペランドと、前記パターンオペランドとキュー長コードとに加え、前記更なるビットメトリックオペランドを受信し、前記キュー結果は、パターンオペランドに依存する数のビットメトリックを、前記パターンオペランドに従い、前記デパンクチャ命令により使用されていない前記キュー結果内に、前記ビットメトリックオペランド又は前記更なるビットメトリックオペランド内の前記ビットメトリック数から配置することにより、形成され、前記ビットメトリックオペランドからの前記パターンオペランドに依存する数のビットメトリック及び前記更なるビットメトリックオペランドからのビットメトリックは、前記キュー結果内で結合される、段階；
−前記デパンクチャ命令の続いて生じる実行のため、前記キュー結果をビットメトリックオペランドとして用いる段階、を有する請求項２１記載の方法。
【請求項２３】
前記デパンクチャ命令又は更なる命令の実行は、同一のパターンオペランドを有し、及び連続する更なるビットメトリックオペランドを有し、前記ビットメトリックオペランド及び前記更なるビットメトリックオペランドが共に、前記デパンクチャ命令の実行中に前記同一のパターンオペランドに対し前記デパンクチャ結果を形成するために十分なビットメトリックを有するまで、繰り返される、請求項２２記載の方法。
【請求項２４】
個々に異なる所定数のビットメトリックのチャンクを用い、前記デパンクチャ命令を実行する段階、を有する請求項２２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム可能な信号処理回路、及び誤り訂正符号のデパンクチャリング方法に関する。
【背景技術】
【０００２】
ＤＶＢ（デジタルビデオ放送）規格は、符号化テレビジョン信号の伝送を規定する。当該信号を復号化するため、先ず送信された信号の「デパンクチャリング」、そして誤り訂正復号化を含む多数の段階が実行されなければならない。デパンクチャリングは、誤り訂正符号（ＥＣＣ）への符号化後且つ送信前に実行されるパンクチャリングの対をなすものである。パンクチャリングは、選択された位置からのビットの削除を有し、送信されなければならないビット数を低減する。これは、ＥＣＣを伴う復号化中に、符号化データの回復が依然として可能な範囲まで行われる。ＤＶＢ規格は、このようなパンクチャされたビットが除去されなければならない位置を規定する。
【０００３】
復号化中、データがＥＣＣに従い復号化される前に、つまり標準的にビタビ復号化がデータに適用される前に、所定のビット値はこれらの位置に再挿入される。この種のデパンクチャリングの知られている実施は、通常、入力ビットストリームを受信し、並びに当該入力ストリームのビットを出力すると同時に、当該入力ストリームがパンクチャ位置に到達した時を検出し、及び当該位置に出力ストリームに新しいビットを挿入する、専用ハードウェア回路を用いる。デパンクチャされたストリームは次に、ビタビ復号化を実行する専用ハードウェアへ渡される。或いは、デパンクチャされたストリームは、チャンクに細断されて良く、各チャンクはプログラム可能なプロセッサーのレジスタに一緒に格納され得る所定のビット数を備え、及びプロセッサーはこれらオペランドを用いビタビ復号化を実行するために用いられ得る。
【０００４】
代案の実施は、同様にデパンクチャリングを実行するプログラム可能な信号処理回路の使用を有する。しかしながら、デパンクチャリングのビット処理特性により、当該実施は、標準的に相当数の命令の実行を有する。これは、多くの命令が実行されなければならないので、回路速度を一層要求し及び電力消費を増大する。これは、ＶＬＩＷ（超長命令語）が比較的大量の電力消費を消費するので、超長命令語実施に特有の問題である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特に、本発明の目的は、プログラム可能な信号処理回路でデパンクチャリングを実行するために必要な命令実行サイクル数を減少することである。
【０００６】
特に、本発明の目的は、所定の複数ビットを有するレジスタオペランドを有するプログラム可能な命令がデパンクチャリングを実行するために使用され得るデパンクチャリング方法を提供することである。
【０００７】
特に、本発明の目的は、オペランドレジスタからデパンクチャ結果レジスタへコピーされるパンクチャされたストリームからのビット数の変化が、標準幅のレジスタを用いるプログラム可能なプロセッサーで少しのオーバーヘッドで取り扱われ得る、デパンクチャリング方法を提供することである。
【０００８】
特に、本発明の目的は、ＤＶＢ伝送システム内のプログラム可能な信号処理回路でデパンクチャリングを実行するために必要な命令実行サイクル数を減少することである。
【０００９】
特に、本発明の目的は、デパンクチャリングを実行するために必要な命令実行サイクル数を減少可能にするプログラム可能な信号処理回路を提供することである。
【００１０】
特に、本発明の目的は、データストリームにデパンクチャリングを適用するためにプログラム可能な信号処理回路のプログラムループでロードされなければならない命令数を最小化することである。
【００１１】
特に、本発明の目的は、プログラム可能な信号処理回路を用いるデパンクチャリングの効率的な方法を提供することである。
【課題を解決するための手段】
【００１２】
本発明は、請求項１記載のプログラム可能な信号処理回路を提供する。当該プログラム可能な信号処理回路は、デパンクチャ命令を有する命令セットを有する。デパンクチャ命令に応じ、命令処理回路は、ビットメトリックをビットメトリックオペランドからコピーし、及び所定のビットメトリック値をデパンクチャ結果内のビットメトリックオペランドからのビットメトリック間に挿入し、デパンクチャ結果内のコピーされたビットメトリックの相互に対する相対位置を、ビットメトリックオペランド内のコピーされたビットメトリックの相互に対する相対位置と比べて変化し、１つ又は複数の挿入された所定のビットメトリック値を収容することにより、デパンクチャ結果を形成する。用語「ビットメトリック」は、単一送信ビットに関する受信情報を表す１つ以上のビットのグループに対し用いられる。
【００１３】
所定のビットメトリック値がパンクチャ位置に収容され得る結果を形成する特別命令を設けることにより、デパンクチャリングはプログラム可能なプロセッサーを用い高速で実行され得る。実施例では、デパンクチャ命令は、所定のビットメトリック値が挿入される位置を制御する更なるオペランドを有する。或いは、異なるデパンクチャ命令が設けられ異なる挿入位置を定めて良い。
【００１４】
所定のビットパターン値を挿入する種々の実施例が可能である。第１の実施例では、命令処理回路は、当該目的で少なくとも１つのビットメトリック多重回路を有する。多重回路は、パターンオペランドがビットメトリックはビットメトリックオペランドからデパンクチャ結果の一部へコピーされるべきであると示すか、及び前記パターンオペランドが示す複数のビットメトリックは前記デパンクチャ結果の一部に先行するデパンクチャ結果の更なる部分にコピーされるべきであるかに依存して、所定のビットメトリック値を前記デパンクチャ結果内のビットメトリックフィールド又はビットメトリックオペランドからのビットメトリックの１つに供給することを選択する。この実施例は、最小量の待ち時間しか必要としない。標準的に、複数のこのような多重回路が用いられる。各多重回路はデパンクチャ結果内の個々のビットメトリック位置のためである。代案として、制御可能なシフト回路が用いられ、デパンクチャ結果のフィールドへ渡されるビットメトリックを選択して良い。この場合、所定のビットメトリック値は、シフトの後、代入回路により代入されて良い。又は所定のビットメトリック値は、所望のパンクチャパターンの制御下で適切なシフト値を用いることにより選択されるシフトデータの一部であって良い。
【００１５】
更なる実施例では、デパンクチャ命令又は更なる命令が設けられ、後続のデパンクチャ命令の実行のためのビットメトリックオペランドとして、使用結果になるレジスタ内にキューを形成する。当該キュー結果は、デパンクチャ結果を形成するために未だ使用されていないビットメトリックを有する。キュー結果は、可変の、パンクチャパターンに依存する数の、ビットメトリックオペランドからのビットメトリックがデパンクチャ結果へコピーされないという事実に適合するために用いられて良い。これら残りのビットメトリックは、ビットメトリックオペランドとしての後の使用のためにキュー結果へ選択的にコピーされて良い。キュー結果はまた、ビットメトリックオペランドが単独で又は更なるビットメトリックオペランドと組み合わせてデパンクチャ結果を形成するのに十分なビットメトリックを有するまで、ビットメトリックをビットメトリックオペランド内に蓄積するために用いられて良い。望ましくは、プログラム可能なプロセッサーの命令セットは、デパンクチャ命令を提供する。デパンクチャ命令に応じ、信号プロセッサーはキュー結果及びデパンクチャ結果の両方を形成する。これはレジスタファイルへのアクセスを最小化し、及び命令セット内の他の命令のためにより多くの空間を残す。或いは、命令を形成する特別キュー結果が設けられ、パターンオペランド及びビットメトリックオペランドを用いキュー結果を形成して良い。
【００１６】
更なる実施例では、デパンクチャ命令又は更なる命令は、所定数のビットメトリックを備えたビットメトリックのストリームからのチャンクを有する更なるビットメトリックオペランドを受信する。キュー長コードオペランドは、ビットメトリックオペランド内のビットメトリック数を指定するために用いられる。及びキュー結果は、パターンオペランドに従い、デパンクチャ命令に応じデパンクチャ結果にコピーされないビットメトリックを有することにより形成される。従って、パターンオペランドに依存する数のビットメトリックは、キュー結果内で更なるビットメトリックオペランドからのビットメトリックと結合される。
【００１７】
望ましくは、デパンクチャ命令又は更なる命令は、デパンクチャ命令の将来の実行による使用のため、キュー結果内のビットメトリック数を示すキュー長結果を生成する。望ましくは、デパンクチャ命令で用いられていないビットメトリックオペランドからのビットメトリックに加え、全てのビットメトリックを更なるビットメトリックオペランドからキュー結果へコピーするためにキュー結果内に十分な空間がある場合のみ、キュー長はインクリメントされ、更なるビットメトリックオペランドからのビットメトリックを組み込む。十分な空間がない場合、デパンクチャ命令又は更なる命令の実行は、同一の更なるビットメトリックオペランドで繰り返される。これは、入力及び出力ストリームの間のレート差に適合することを容易にする。
【００１８】
別の実施例では、長さ値は、デパンクチャパターンに加え、パターンオペランド内に供給される。当該長さ値は、デパンクチャ命令又は更なる命令に応じて用いられ、更なるビットメトリックオペランドからキュー結果へコピーされるビットメトリック値の数を制御して良い。これはキューの間の待ち時間を減少する。
【００１９】
別の実施例では、デパンクチャ命令又は更なる命令は、所定数のビットメトリックを備えたビットメトリックのストリームからのチャンクを有する更なるビットメトリックオペランドを必要とする。デパンクチャ結果は、ビットメトリックオペランド内のパターンオペランドに依存する数のビットメトリックがデパンクチャ結果での使用のために十分なコピーを供給するのに十分な場合、ビットメトリックオペランドからの前記数のビットメトリックを、デパンクチャ結果へ配置することにより形成される。これは、所定数のビットメトリックを備えた有効なパンクチャ結果を高いレートで生成することを可能にする。ビットメトリック数が不十分な場合、フラグ結果が生成され、デパンクチャ結果の使用を防ぐことが望ましい。この場合、ビットメトリックオペランドからの全てのビットメトリック及び更なるビットメトリックオペランドからの実行可能な限り多くのビットメトリックは、望ましくはキュー結果へコピーされる。従って有効なデパンクチャ結果を追って生成することが可能である。
【００２０】
本発明のこれら及び他の目的及び有利な態様は、本発明の非限定的な例を示す以下の図の記載から説明される。
【発明を実施するための最良の形態】
【００２１】
図１は、ＤＶＢ（デジタルビデオ放送）受信機装置のような信号受信機装置を示す。装置は、縦列接続されたフロントエンド１０、デジタル信号処理回路１２及びバックエンド１４を有する。フロントエンド１０は、ビデオ放送信号を受信する入力を有する。動作中、フロントエンド１０は、ビデオ放送信号を受信し、及びデジタル情報を当該信号から読み出す。デジタル信号処理回路１２は、デジタル情報を受信し、及びデジタル情報を処理しビデオデータ信号を形成する。デジタル信号処理回路は、ビデオデータ信号をバックエンド１４へ供給する。バックエンド１４は、例えば、接続されたビデオディスプレイ画面（示されない）のための表示データ又は接続されたビデオ記録装置（示されない）のための格納データを生成して良い。バックエンド１４は、これらの目的のためにビデオディスプレイ画面及び／又は記録装置自体を有して良い。
【００２２】
デジタル信号処理回路１２は、復調（デジタル信号サンプルを用い、当該サンプル信号を変調するために用いられたデータアイテムを再構成する）及び復調データアイテムを誤り訂正符号（ＥＣＣ）に従い復号化するような演算を実行するプログラムでプログラムされたプログラム可能な信号処理回路を有する。
【００２３】
本発明は、デジタル信号処理回路１２内のデータのデパンクチャリングに関する。復号化の前に、デジタル信号処理回路１２はデータをデパンクチャする。デパンクチャリングは、送信機側で実行されるパンクチャリングの逆である。ＥＣＣ符号化データの選択されたビットは、送信されず、送信データのデータレートを減少する。受信側では、ＥＣＣによる誤り訂正に受信信号を用いる前に、既定値は非送信ビットと置き換えられる。
【００２４】
図２は、デジタル信号処理回路１２からのプログラム可能な信号処理回路を示す。プログラム可能な信号処理回路は、命令発行ユニット２０、レジスタファイル２２、複数の機能ユニット２３、２４、２６及びデータメモリー２８を有する。命令発行ユニット２０は、デジタル信号処理回路のためのプログラムを格納し、及びプログラムの実行中にプログラムフローにより決定された命令を読み出すよう配置される。命令発行ユニット２０は、機能ユニット２４、２６と結合された演算制御出力を有する。演算制御出力は、機能ユニット２３、２４、２６により実行されなければならない演算を識別する命令の演算コードにより決定される制御信号を供給する。命令発行ユニット２０は、レジスタファイル２２のポートと結合されたレジスタ選択出力を有する。レジスタ選択出力は、命令のオペランドを有するレジスタ及び命令の結果が格納されなければならないレジスタを示す選択信号を供給する。命令は、選択信号を制御するフィールドを有する。レジスタファイル２２の出力ポートは、機能ユニット２３、２４、２６と結合され、選択されたレジスタからオペランドを供給する。またレジスタファイル２２の入力ポートは、機能ユニット２３、２４、２６と結合され、命令の実行の結果を受信する。
【００２５】
単一の線が制御符号、レジスタ選択コード、オペランド及び結果を供給する通信接続を示すために示されるが、実際にはこのような接続を実施する際に多くの導体が並列に用いられることが理解されるだろう。単一の線は、複数のレジスタ選択コードを供給するため、又は複数のオペランドを供給するため若しくは複数の結果を返すための接続を表して良い。更に、３個の機能ユニット２３、２４、２６が示され、各機能ユニットは命令発行ユニット２０及びレジスタファイル２２とそれぞれの接続を有するが、実際にはより多くの、又は異なる機能ユニットの機能がレジスタファイル２２への共通の接続を共有する機能ユニットにグループ化された場合にはより少ない機能ユニットが存在して良いことが理解されるだろう。
【００２６】
機能ユニットは、プロセッサーにより実行され得る全種類の命令を有する「命令セット」を定める。本願明細書で用いられるように、「命令」は個々の機能ユニットにより実行される演算を選択するプログラムの基本単位である。命令は、命令として機能し得る単位に更に分離し得ないプログラムの「最小単位」である。標準的に、各命令は、命令を識別する単一のオペコード（演算コード）を有する。良く知られているように、プログラム可能なプロセッサーの設計は、標準的に命令セットの特定から開始する。命令セットの特定は、少なくともプロセッサーの基本的実施を選択するための十分な情報を当業者に供給する。
【００２７】
第１の機能ユニット２３は、データメモリー２８と結合されたメモリーアクセス機能ユニットである。このメモリーアクセス機能ユニット２３は、「ＬＯＡＤ」及び「ＳＴＯＲＥ」命令を実行するよう設計され、データメモリー２８内の位置のアドレスを指定するオペランドを備える。データメモリー２８はまた、信号データを受信し及びビデオデータを伝送する、フロントエンド１０（示されない）及び／又はバックエンド１４（示されない）と結合されて良い。第２の機能ユニット２４（実際には機能ユニットのグループを有して良い）は、ＡＤＤ、ＳＨＩＦＴ等のようなＡＬＵ命令のような従来の命令を実行するよう設計される。示されないが、更なる機能ユニットが存在して良く、従って例えば複数の命令が並行して実行され得るか、又は異なる命令が実行され得る（例えばフロントエンド１０（示されない）からの信号データの入力及び／又はバックエンド１４（示されない）へのビデオデータの出力）。
【００２８】
受信データの処理中、機能ユニットのオペランドは、標準的に、受信ビット毎に複数のオペランドビット（例えば４オペランドビット）を用い受信信号からの各ビットを表し、受信ビット値に関する確実性を示す。このような複数のオペランドビットは、「ビットメトリック」として参照される。しかしながら、本発明から逸脱することなく、受信ビットを表すために単一のオペランドビットが用いられて良い。この場合、「ビットメトリック」は当該単一ビットを参照する。
【００２９】
プログラム可能な命令プロセッサーのプログラムは、信号データのデパンクチャリングを提供する。専用の第３の機能ユニット２６は、デパンクチャリングの目的で設けられた命令を実行するために設けられる。ある実施例では、デパンクチャリング機能ユニット２６により実行される種類の命令は、次のように示される。
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ６
この表記では、Ｒ１、Ｒ２等は、オペランドを提供するため及び命令の結果を書き込むために用いられるレジスタファイル２２内のレジスタを識別するレジスタ選択コードを示す。しかしながら、命令は、本願明細書ではＲ１等はレジスタ「である」と言うことにより口語表現を用いて記載される。これは、Ｒ１等がレジスタファイル２２内のレジスタを識別する選択コードを示すことを意味すると理解されるべきである。更に口語的には、Ｒ１等は「オペランドである」、と言われる。これはまた、Ｒ１等がオペランドを有するレジスタファイル２２内のレジスタを識別する選択コードを示すことを意味すると理解されるべきである。
【００３０】
この表記では、ＤＥＰＵＮＣＴＵＲＥは命令を識別するオペコードを示し、Ｒ１、Ｒ２は受信ビットのビットメトリックを有するオペランドレジスタである。Ｒ３は長さコードを有するオペランドレジスタである。Ｒ４はパターンコードを有するオペランドレジスタである。Ｒ５は、レジスタＲ１及び任意的にＲ２からのビットメトリックと挿入された既定ビットメトリックとの和が書き込まれる結果レジスタである。Ｒ６は、レジスタＲ１及びＲ２からの更なるビットメトリックが書き込まれる結果レジスタである。
【００３１】
命令が実行されると、レジスタＲ１及び任意的にＲ２からのビットメトリックは、レジスタＲ５へ、追加の挿入された既定ビットメトリックと共にコピーされる。オペランドに依存して、レジスタＲ１、Ｒ２からの残りのビットメトリックの一部は、レジスタＲ６へ出力される。レジスタＲ６の目的は、命令の実行がオペランドレジスタＲ１として機能するレジスタＲ６で繰り返され得ることである。
【００３２】
図３は、デパンクチャ機能ユニット２６の実施例を示す。デパンクチャ機能ユニットは、オペランド結合回路３０、デパンクチャリング回路３２及びオペランド更新回路３４を有する。デパンクチャ機能ユニットは、オペランドデータをレジスタＲ１、Ｒ２、Ｒ３、Ｒ４から受信する４個のオペランド入力３６ａ−ｄ、及び結果をレジスタＲ５、Ｒ６へ出力する結果出力３８、３９を有する。
【００３３】
オペランド結合回路３０は、Ｎ個の連続するビットメトリックを有する出力信号を形成するよう配置される。Ｎ個の連続するビットメトリックの内、Ｌ個のビットメトリックは入力３６ａでオペランドＲ１から、Ｎ−Ｌ個は入力３６ｂにおいてオペランドＲ２から生じる。Ｌはオペランド入力３６ｃからの長さコードにより制御される。
【００３４】
図４は、オペランド結合回路３０の実施例の例を示す。この実施例では、シフト回路４０及びＯＲ回路４２が用いられる。第１のオペランド入力３６ａは、ＯＲ回路４２の第１の入力と結合される。第２のオペランド入力３６ｂは、シフト回路４０の入力と結合される。シフト回路４０は、ＯＲ回路４２の第２の入力と結合される出力を有する。第３のオペランド入力３６ｃは、シフト回路４０の制御入力と結合される。ＯＲ回路４２の出力及びシフト回路４０の出力の一部は、オペランド結合回路の出力を形成する。
【００３５】
シフト回路４０は、例えば知られているバレルシフト回路として実施される。バレルシフト回路は並列入力を有する。並列入力の最上位入力は、ＭビットのオペランドのＭ個のビットを第２のオペランド入力３６ｂから並行して受信する（例えばＭ＝３２）。及び並列入力のＭ個の下位入力は例えば論理ゼロ値を受信する。シフト回路４０は２×Ｍ個の並列出力を有する。並列出力は、Ｌ個のビットメトリック位置に渡り下位位置へシフトされた（つまりビットメトリックが４個のビットにより表される場合、４×Ｌ個のビットに渡るシフトが用いられる）入力信号のコピーを出力する。シフト量は、第３のオペランド入力３６ｃにより制御される。最上位のＬ個のビットメトリック位置において、シフト回路４０は論理ゼロを出力する。ＯＲ回路４２は、第１のオペランド入力３６ａ及びシフト回路４０の最上位Ｍ個の出力ビットからビット毎にＭ個の入力ビットの論理ＯＲを生成する。シフト回路４０の下位Ｍ個の出力ビットは、オペランド結合回路３０の出力へ直接供給される。
【００３６】
理解されるべき点は、同一の機能を実現する多くの代案の実施が可能であることである。簡単な例として、回路が第１のオペランドＲ１内の未使用位置において論理「１」の値を有するよう配置される場合、ＯＲ回路４２の代わりにビット毎のＡＮＤ回路が用いられて良い。反転された信号が用いられて良い、等である。
【００３７】
デパンクチャリング回路３２は、オペランド結合回路３０からのビットメトリックのコピーをデパンクチャリング回路３２の出力へ、これらビットメトリックがオペランド結合回路３０から出力されるシーケンスで出力するよう配置される。出力シーケンス内のビットメトリックの間で、デパンクチャリング回路３２は既定ビットメトリックを選択位置に挿入する。選択位置は第４のオペランド入力３６ｄからのオペランドにより制御される。
【００３８】
図５は、デパンクチャリング回路３２の実施例を示す。この実施例は、複数の多重回路５０、及び一連の加算回路５２を有する。加算回路５２はチェーンを形成する。最初の加算回路５２を除き、各加算回路５２は、前の加算回路５２の出力と結合された第１の入力を有する。加算回路の第２の入力は第４のオペランド入力３６ｄからの個々のビットと結合される。多重回路５０のそれぞれは、既定ビットメトリック源と結合された第１の入力５４、及びオペランド結合回路３０の個々のビットメトリック出力と結合された１つ以上の第２のビットメトリック入力を有する（単一の線が示されるが、各線は複数のデータ導線、例えばビットメトリックの対応するビットを供給する４本のデータ導線を表し得ることが理解されるべきである）。多重回路５０のそれぞれは、第４のオペランド入力３６ｄからの対応するビットと結合された制御入力を有する。加算回路５２の出力は、多重回路５０の個々の更なる制御入力と結合される。
【００３９】
動作中、第４のオペランド入力３６ｄからのオペランドの個々のビットは、デパンクチャリング回路３２の出力においてビットメトリックを出力する１つ以上のビットの個々のグループに対応する。第４のオペランド入力３６ｄからのオペランドのそれぞれの個々のビットは、対応するグループが既定ビットメトリック又はオペランド結合回路３０からのビットメトリックを有するべきかを示す。多重回路５０は、第４のオペランド入力３６ｄからのこれらのビットを用い、既定ビットメトリック又は出力結合回路３０からのビットメトリックが通過されるかを制御する。更に、加算回路５２からの出力は、オペランド結合回路３０からのどのビットメトリックが通過されるかを制御する。各多重回路５０は、より上位の出力ビットと接続される多重回路５０の他のどれによっても通過されない最上位位置からのビットメトリックを結果出力３９において通過する。多重回路５０は、ｉ＝０、１、２、．．．と番号付けられて良い。ここで数「ｉ」は、多重回路５０が接続される出力が下位であるほど増大する。同様に、第４のオペランド入力３６ｄからのビットＢｊは、番号ｊにより番号付けられて良い。及びオペランド結合回路３０からのビットメトリックＭｋは、番号ｋにより番号付けられて良い。この表記に従い、加算回路５２は、番号ｉを備えた多重回路５０を制御し、ｊ＜ｉとしてビットＢｊの和と等しい番号ｋを有するビットメトリックＢｋを通過する。
【００４０】
理解されるべき点は、図５が単にデパンクチャ回路の１つの可能な実施例を示すことである。代案の例として、制御可能なシフト回路のチェーンが用いられて良く、各シフト回路はパターンからの個々のビットにより制御される。この代案では、オペランド結合回路３０からのデータは、チェーンの始めに適用される。デパンクチャ出力３９の各部分は（最初の部分を除き）、既定ビットメトリック値又はチェーン内の個々のシフトレジスタからの値を制御され受信する。このような解決法は、待ち時間が問題ではない場合に実現可能である。しかし理解されるように、多重の実施は利点を有する、つまり一般に少ない待ち時間を有する。多重回路は如何なる知られている方法で、例えば多重機能（データを選択された入力から出力へコピーする）又はスイッチ回路等に対応する論理機能を備えた論理回路として実施されて良い。
【００４１】
オペランド更新回路３４は、第１のオペランド入力３６ａにおいて後続のオペランドとして用いられるための結果を形成する。ある実施例では、オペランド更新回路３４はシフト回路であり、オペランド結合回路３０の出力信号をより上位の位置へシフトすることにより結果を形成する。シフト量は、デパンクチャリング回路３２により出力されるオペランド結合回路３０からのビットメトリック数により制御される。つまりシフト量は第４のオペランド入力３６ｄからのオペランドの内容に対応する。従って、第１の結果は、命令に応じてデパンクチャリング回路３２から出力されていない最上位ビットメトリックで開始する。望ましくは、第４のオペランド入力３６ｄからのオペランドは、既定ビットメトリックが挿入されなければならない場所を示すビットに加え、入力結合回路３０からのパンクチャリング回路３２が用いるビットメトリック数を表す数を有する。これは、最小可能命令サイクル長を更に減少する。或いは、この数は、既定ビットメトリックが挿入されなければならない場所を示すビットから、例えば加算回路５２を用いて計算されて良い。
【００４２】
デパンクチャリングをビットメトリックストリームへ適用するプログラムは、望ましくは、ループ内にＤＰＵＮＣＴＵＲＥ命令を有し、図３のデパンクチャ機能ユニットにＤＥＰＵＮＣＴＵＲＥ演算を繰り返し実行させる。当該ループ内の命令の例は以下に示される。
【００４３】
ｒｅｐｅａｔ
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ１
．．．次のＲ３値を計算する命令
．．．及び新しい入力をロードするための保護値Ｒ７
ＳＴＯＲＥ  Ａ１＋＋，Ｒ５
ＬＯＡＤ  Ａ２＋＋，Ｒ４
ＩＦ  Ｒ７    ＬＯＡＤ  Ａ３＋＋，Ｒ２
当該ループでは、結果出力３８からの結果は、レジスタＲ１へ格納される。レジスタＲ１は、オペランドレジスタＲ１として用いられ、オペランドを第１のオペランド入力３６ａに供給する。レジスタＲ５内のデパンクチャされた出力は、アドレスレジスタＡ１からのアドレスにおいてメモリー内に格納される。命令は、ループ内に含まれ、連続するパンクチャパターンをレジスタＲ４内にアドレスレジスタＡ２により決定されたアドレスからロードする。更なる命令が含まれ、新しい第２のオペランドをレジスタＲ２内へロードする。保護されたロード命令は、この目的のために用いられる。つまり当該命令は、保護レジスタＲ７内のフラグが設定されている場合のみ、完全に実行される。
【００４４】
更に、命令が含まれ、Ｒ３内の長さ値を更新し、及びレジスタＲ７内の保護値を計算する。ある実施例では、新しい長さ値Ｌ’は次式を用いて計算される。
Ｌ’＝Ｌ＋Ｉ−Ｍ
ここでＬは第１のオペランド入力３６ａからのオペランド内に存在したビットメトリックの数を示す前の長さ値である（第３のオペランド入力３６ｃからのオペランドにより示されるように）。Ｉは第２のオペランド入力３６ｂからのオペランドからのビットメトリックの数Ｉである。ＭはレジスタＲ４内のパターンに依存する。Ｍは、デパンクチャリング回路３２からの結果を形成するために用いられていた入力結合回路３０の出力からのビットメトリックの数Ｍである。Ｌ’がレジスタＲ１内に格納され得るビットメトリックの最大数より大きい場合、命令は代わりに次式に従いＲ３を設定する。
Ｌ’＝Ｌ−Ｍ
この場合、Ｒ７内のフラグは、第２のオペランドとしての使用のための新しい値のレジスタＲ２へのロードが同様に抑制されるよう、設定される。
【００４５】
長さ値を計算し及び入力オペランドを更新するこの方法は、ビットデパンクチャ結果が結果レジスタＲ５へ書き込まれる出力レートが、新しいレジスタ値がロードされる入力レートと異なって良いという効果を有する。
【００４６】
更なる実施例では、デパンクチャ機能ユニットは、新しい長さ値の及び／又はレジスタＲ７のフラグの計算も、ＤＥＰＵＮＣＴＵＲＥ命令に応じて実行するよう配置される。この計算に必要な全ての情報はデパンクチャ機能ユニットのオペランド入力において既に利用可能であり、従って如何なる追加オペランドも必要ないので、これは小さいオペランドオーバーヘッドしか必要としない。この目的のためのデパンクチャ機能ユニットの使用は、如何なる追加命令もロードされる必要がないという利点を有する。さもなければ他の機能ユニットはこの計算のために占有される必要がある。
【００４７】
これらの計算は、例えばＬ＋Ｉ−Ｍを結果に適合するビットメトリックの最大数と比較する比較回路、及び計算回路を追加することにより対応され得る。比較回路は、レジスタＲ７のフラグを出力する。及び計算回路はフラグ値に依存してＬ＋Ｉ−Ｍ又はＬ−Ｍを計算し及び出力する。このような変更されたデパンクチャ機能ユニット及び対応して変更されたＤＥＰＵＮＣＴＵＲＥ命令では、プログラムループの例は次の通りである。
【００４８】
ｒｅｐｅａｔ
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ１，Ｒ７，Ｒ３
ＳＴＯＲＥ  Ａ１＋＋，Ｒ５
ＬＯＡＤ  Ａ２＋＋，Ｒ４
ＩＦ  Ｒ７    ＬＯＡＤ  Ａ３＋＋，Ｒ２
この例では、ＤＥＰＵＮＣＴＵＲＥ命令は、レジスタＲ７、Ｒ３にそれぞれ書き込まれる２つの追加結果を生成する。Ｒ７はフラグを受信する。及びＲ３は更新された長さを受信する。
【００４９】
理解されるべき点は、代案として、複数の異なる命令は、ＤＥＰＵＮＣＴＵＲＥ命令の個々の部分を実行するために定められて良いことである。例えば、デパンクチャ結果Ｒ５を形成するだけの最低限のＤＥＰＵＮＣＴＵＲＥ命令が定められて良い。更新されたオペランドＲ１を形成するＯＰＥＲＡＮＤ＿ＵＰＤＡＴＥ命令が定められて良い。及び追加結果を形成する補助命令ＡＵＸが定められて良い。この例では、プログラムループは、次の通り実施されて良い。
【００５０】
ｒｅｐｅａｔ
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ５
ＵＰＤＡＴＥ＿ＯＰＥＲＡＮＤ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ１
ＡＵＸ  Ｒ３，Ｒ４，Ｒ３，Ｒ７
ＳＴＯＲＥ  Ａ１＋＋，Ｒ５
ＬＯＡＤ  Ａ２＋＋，Ｒ４
ＩＦ  Ｒ７  ＬＯＡＤ  Ａ３＋＋，Ｒ２
これら３個の新しい命令の対が単一の命令に結合されて良い他の代案が可能である。単一の機能ユニットが設けられ、これら３個又は２個のこれら命令のそれぞれを実行して良い。或いは、３個の異なる機能ユニットが設けられ、これらの命令の個々の命令を実行して良い。ＶＬＩＷ又はスーパースカラープロセッサーが用いられる場合、これは、命令の実行が並行して実行され得るという利点を有する。従ってループに必要とされる命令サイクル数は減少され得る。
【００５１】
本発明によるプログラム可能な処理回路の用途のある例は、ＤＶＢ復号化である。ＤＶＢ復号化中、異なるパンクチャパターンが用いられて良い。例えば、１／２、２／３、３／４、５／６、又は７／８のレートを備えたパンクチャパターンは、ＥＣＣ符号化により２倍になったストリームに用いられて良い。以下の表は、符号化中に用いられて良いパンクチャパターンを示す。
【００５２】
【表１】
2008523762.tif 000003
選択されたレートのパンクチャパターンは、ビットのストリームに適用される。パターン内の連続するシンボルは、ビットのストリーム内の連続するビットに対応する。パンクチャパターンでは、「１」は、対応するビットがストリーム内に残ることを示す。及び０は、対応するビットが削除されるべきであることを示す。ビットのストリームがパターン長さより長い場合、パターンは繰り返される。
【００５３】
結果として生じるストリームの送信後、送信されたビットに対応するビットメトリックが計算される。本発明によるプログラムは、ＤＥＰＵＮＣＴＵＲＥ命令を用い、既定ビットメトリックをビットが削除された位置に挿入し、及びそれぞれ所定数の（受信又は挿入された）ビットメトリックを有する結果を生成する。
【００５４】
例として、各結果が８ビットメトリックを有する例が議論される。以下の表は、ストリームをデパンクチャするためにプログラムのレジスタＲ４で用いられて良いパターンを示す。
【００５５】
【表２】
2008523762.tif 000004
連続する列は、ＤＥＰＵＮＣＴＵＲＥ命令の連続する呼び出し中に用いられる連続するパターンを示す。分かるように、同一パターンが、レート１／２及びレート２／３復号化で繰り返し用いられる。何故なら結果内のビットメトリック数Ｎは（この例ではＮ＝８）、基本パンクチャリングパターンの整数倍に等しいからである。これは他のレートと異なる。及び従って、異なるパターンは、これらのレートの連続する命令呼び出しに用いられる。各パターンは、対応する基本パターンの反復のＮビットチャンクを有する。レート３／４符号化の場合では、パターンは３回の命令呼び出しの後、繰り返す。レート５／６の場合では、パターンは５回の命令呼び出しの後、繰り返す。レート７／８の場合では、パターンは７回の命令呼び出しの後、繰り返す（パターンのサイクルの一部は表中に示されない）。望ましくは、モジュロアドレス計算が用いられ（例えばメモリーアクセスユニット内で）、特定のレートに適したアドレス反復サイクルを備えたパターンをロードするため、アドレスを計算する。
【００５６】
更なる実施例では、レジスタＲ７の予測フラグ値が計算され、Ｌ＋Ｉ−Ｍがループの次の実行のＭＡＸ（結果に適合するビットメトリックの最大数）より小さいか又は等しいかを決定する。この例では、レジスタＲ２内のオペランドのロード命令の実行は、このオペランドが実際に使用されるまで延期され得る。更に、ＤＥＰＵＮＣＴＵＲＥ命令の定義及び当該命令を実行するデパンクチャ機能ユニットは、このフラグ値が命令の更なるオペランドとして適用されるよう更に変更されて良い。この例では、デパンクチャ機能ユニットは、フラグが如何なる新しいオペランドもロードされていないと示す場合、レジスタＲ２からのオペランドの代わりに既定値（例えば論理ゼロ）を用いるよう適合されて良い。これは、レジスタＲ２の値が問題でないという利点を有し、従って当該レジスタ内の未定義値は、ＬＯＡＤ命令が完全に実行されない場合、容認され得る。つまり、命令の起動は次の形式を取って良い。
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ７，Ｒ５，Ｒ１
ここで、フラグレジスタＲ７は、既定値がＲ２の内容の代わりに用いられるべきかを制御する入力として機能する。
【００５７】
予測フラグ値は、ループ内の追加命令により計算され得る。しかし望ましくは、デパンクチャ機能ユニットは、予測フラグ値を計算するために適応される。この例では、ＤＥＰＵＮＣＴＵＲＥ命令は次の形式を取る。
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ７，Ｒ５，Ｒ１，Ｒ７，Ｒ３
予測フラグ値の計算では、レジスタＲ４内の将来のパターン値に従い入力オペランドＲ１から用いられるビットメトリック数に関する情報が必要である。望ましくは、当該情報は、レジスタＲ４内の現在のパターン値と共に含まれる。しかし代案として、更なるオペランドがこの目的のために用いられて良い。
【００５８】
変調信号の復号化中、Ｒ５へ書き込まれる結果に含まれ得るビットメトリックの最大数より小さい数のビットメトリックがオペランドＲ２内で用いられることが望ましい。結果として、十分なビットメトリックがＲ５内の結果を形成するために利用可能である前に、複数のオペランドをロードする必要があって良い。ある実施例では、これはデパンクチャ機能ユニットにより支援される。従ってオペランドは、レジスタＲ２を介しＤＥＰＵＮＣＴＵＲＥ命令の繰り返し実行により供給され得る。この目的のために、デパンクチャ機能ユニットは、デパンクチャ結果が有効かどうかを示す更なる結果出力と共に供給される。当該デパンクチャ機能ユニットにより実行されるＤＥＰＵＮＣＴＵＲＥ命令を使用するプログラムループの例は、以下の形式を取って良い。
【００５９】
ｒｅｐｅａｔ
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ１，Ｒ８
Ｒ３及びＲ７の新しい値を計算する命令
ＩＦ  Ｒ８    ＳＴＯＲＥ  Ａ１＋＋，Ｒ５
ＩＦ  Ｒ８    ＬＯＡＤ  Ａ２＋＋，Ｒ４
ＩＦ  Ｒ７    ＬＯＡＤ  Ａ３＋＋，Ｒ２
このループでは、Ｒ５に対するＳＴＯＲＥ命令の実行は、レジスタＲ８からのフラグにより保護される。従ってＳＴＯＲＥ命令は、フラグが適切な値を有する場合のみ、完全に実行される。同様に、Ｒ４にパターンをロードするＬＯＡＤ命令の実行は、レジスタＲ８からのフラグにより保護される。従って当該ＬＯＡＤ命令は、フラグが適切な値を有する場合のみ、完全に実行される。フラグは、ＤＥＰＵＮＣＴＵＲＥ命令の実行により設定される。
【００６０】
図６は、この種のＤＥＰＵＮＣＴＵＲＥ命令を実行するために用いられ得るデパンクチャ機能ユニットの実施例を示す。ここで、デパンクチャ機能ユニットの結果出力６２と結合された出力を備えた計算／比較回路６０が追加されている。計算／比較回路６０は、プログラムの例の中でＲ８に書き込まれるフラグを計算するよう配置される。計算／比較回路６０は、次式であるかどうかを決定する。
Ｌ＋Ｉ＜Ｍ
つまり、第１のオペランド入力３６ａのビットメトリック数Ｌと第２のオペランド入力３６のビットメトリック数Ｉとの和は、結果出力３９において出力されなければならないビットメトリックの数Ｍより小さいかどうかである。小さい場合、結果出力６２における出力フラグは、Ｒ５に対するＳＴＯＲＥ命令が完了するのを防ぐ値に設定される。これは、プログラムループの複数の反復では、ＤＥＰＵＮＣＴＵＲＥ命令の実行は、レジスタＲ５内の有効な結果を生成するために十分な数のビットメトリックが利用可能になるまで、単にレジスタＲ１内のビットメトリック数を拡張するよう機能するという効果を有する。
【００６１】
勿論、ＤＥＰＵＮＣＴＵＲＥ命令に応じてＲ８内に出力結果を供給するようデパンクチャ機能ユニットを適応することは、ＤＥＰＵＮＣＴＵＲＥ命令に応じてデパンクチャ機能ユニット内でＲ３及び／又はＲ７を計算するよう適応することと組み合わせられて良い。この例では、より多くのオペランドを有する異なる版のＤＥＰＵＮＣＴＵＲＥ命令が用いられて良い。この例では、これらの値を計算する別個の命令は、ループから省略されて良い。プログラムループは、以下の形式を有して良い。
【００６２】
ｒｅｐｅａｔ
ＤＥＰＵＮＣＴＵＲＥ  Ｒｌ，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ１，Ｒ３，Ｒ７，Ｒ８
ＩＦ  Ｒ８  ＳＴＯＲＥ  Ａ１＋＋，Ｒ５
ＩＦ  Ｒ８  ＬＯＡＤ  Ａ２＋＋，Ｒ４
ＩＦ  Ｒ７  ＬＯＡＤ  Ａ３＋＋，Ｒ２
ＤＶＢ復号化動作では例えば、４個のビットメトリックをレート３／４デパンクチャリングに対し供給することが望ましい。この例では、Ｎ＝８ビットメトリックを有する結果が用いられる場合、有効なデパンクチャリング結果が生成され得る前に、２個の第２のオペランドがロードされる必要がある。以下の表は、種々のオペランドにより想定される数及びこの例での命令呼び出し結果の例を示す。
【００６３】
【表３】
2008523762.tif 000005
他の実施例では、デパンクチャ機能ユニットは、オペランドレジスタＲ２内のビットメトリックのプログラム可能な数Ｉを扱うよう適応される。ＤＶＢ復号化では例えば、復調動作は、異なる変調方式に対し異なる数のビットメトリックを生成する。従って、ビットメトリック数を適応することが望ましい。例えば、ＢＰＳＫ変調された信号の復調ではＩ＝２ビットメトリック毎第２のオペランドが用いられて良い。１６ＱＡＭ変調された信号の復調ではＩ＝４ビットメトリック毎オペランドが用いられて良い。６４ＱＡＭ変調された信号の復調ではＩ＝６ビットメトリック毎オペランドが用いられて良い。及び２５６ＱＡＭ変調された信号の復調ではＩ＝８ビットメトリック毎オペランドが用いられて良い。以下の表は、Ｉ＝６ビットメトリックが第２のオペランドのそれぞれにレート＝５／６のデパンクチャリング動作で用いられる例を示す。
【００６４】
【表４】
2008523762.tif 000006
第１の実施例では、数ＩはＤＥＰＵＮＣＴＵＲＥ命令の演算コードにより示されて良い。この第１の実施例では、デパンクチャ機能ユニットは、異なる演算コード値を備えた複数種類からの命令、例えばＤＥＰＵＮＣＴＵＲＥ２、ＤＥＰＵＮＣＴＵＲＥ４、ＤＥＰＵＮＣＴＵＲＥ６、ＤＥＰＵＮＣＴＵＲＥ８として記号表記され得る命令を実行するよう配置される。この第１の実施例では、デパンクチャ機能ユニットは、以上に議論された機能を有する値Ｉを、演算コードに依存して選択するよう設計される。プログラムでは、これら命令の選択された命令は、オペランドＲ２内に生成されたビットメトリックの数に依存して用いられる。
【００６５】
第２の実施例では、第２のオペランドＲ２内のビットメトリックの数Ｉは、ＤＥＰＵＮＣＴＵＲＥ命令の追加オペランド内のデータにより示されて良い。この第２の実施例では、デパンクチャ機能ユニットは、以上に議論された機能を有する値Ｉを、当該追加オペランドを受信する入力から読み出すよう設計される。プログラムでは、選択されたオペランド値は、オペランドＲ２内に生成されたビットメトリックの数に依存して適用される。この第２の実施例では、単一のループがオペランドを扱うよう配置され得る。ビットメトリック数Ｉは、例えば送信ブロック内の対応するデータの位置に依存して、ループ中に変化する。
【００６６】
第３の実施例では、第２のオペランドＲ２内のビットメトリックの数Ｉは、例えば一連の利用可能なビットメトリック値の終わりを示す特定のビットメトリック値を用い、オペランドＲ２自体の中に符号化されて良い。この第３の実施例では、デパンクチャ機能ユニットは、以上に議論された機能を有する値Ｉを、第２のオペランドＲ２の内容から決定するよう設計される。
【００６７】
図７は、デパンクチャ機能ユニットの実施例を示す。当該実施例は、オペランドＲ２内のビットメトリックの数を指定するために追加オペランドの使用を適応することを、Ｒ３、Ｒ７及びＲ８の計算の適応と結合する。この実施例のデパンクチャ機能ユニットでは、補助結果計算回路７０と共に、追加結果出力７２、７４、及び追加オペランド入力７６、７８が追加されている。第１の追加オペランド入力７６は、第２のオペランド入力３６ｂにおけるビットメトリックの数Ｉを指定するオペランドＲ９を供給するために用いられる。第２の追加オペランド入力７８は、第２のオペランド入力３６ｂにおけるオペランドが有効か否かを示すオペランドＲ７を供給するために用いられる。第１の追加結果出力７２は、第３のオペランド入力３６ｃにおける入力としての長さコードの将来の使用のため、結果出力３８における結果内のビットメトリックの数を示す長さコードＲ３を供給するために用いられる。第２の追加結果出力７４は、新しい第２のオペランドＲ２が必要であるか否かを示すフラグＲ７を供給するために用いられる。
【００６８】
図８は、補助結果計算回路７０の実施例を示す。この実施例では、補助結果計算回路７０は、加算回路８０、減算回路８２、比較回路８４、多重回路８６、ゼロ代入回路８８及び更なる比較回路８９を有する。
【００６９】
加算回路８０は、第３のオペランド入力３６ｃ（第１のオペランド入力３６ａにおけるオペランド内のビットメトリックの数Ｌを示す）からオペランドを、第１の追加オペランド入力７６（第２のオペランド入力３６ｂにおけるビットメトリックの数Ｉを示す）からオペランドを受信する。後者は、第２の追加オペランド入力７８により制御されるゼロ代入回路８８を介する。第１の加算回路８０は、第３のオペランド入力３６ｃからのオペランドＬと第１の追加オペランド入力７６からのオペランドＩとの和Ｌ＋Ｉを、第２の追加オペランド入力７８が第２のオペランドが無効であると示す限り、出力する。この場合、第１の加算回路８０は、第３のオペランド入力３６ｃからオペランドＬを出力する。
【００７０】
減算回路８２は、加算回路８０から結果を、及び第４のオペランド入力３６ｄからオペランドを受信する。減算回路８２は、加算回路８０からの出力の差（Ｉ＋Ｌ又はＬ）及び第４のオペランド入力３６ｄからのパターンに従い結果内に組み込まれるべきビットメトリックの数Ｍを形成する。（望ましくは、当該第４のオペランドは当該数を別個に有し、従って当該数は直ちに用いられ得る。しかし或いは当該数は、追加加算回路を用いパターンから計算されて良い。）
比較器８４は、減算回路８２からの差が負であるか否かを決定する。この比較の結果は、フラグ出力６２において出力され、結果出力３９からの出力が使用され得るか否かを示す。
【００７１】
多重回路８６は、加算回路８０からの出力及び減算回路からの出力（Ｌ＋Ｉ−Ｍ及びＬ＋Ｉ又はＬ−Ｍ及びＬ）を入力として、及び比較器８４からの出力を制御入力として受信し、そして当該出力が負数を表わさない場合、減算回路８２からの出力信号を通過する。その他の場合、加算回路８０からの出力を通過する。多重回路８６の出力は、追加結果出力７２へ供給され、結果出力３８におけるビットメトリックの数Ｌ’を示す。
【００７２】
更なる比較回路８９は、入力Ｌ’を多重回路８６の出力から、Ｉを第４のオペランド入力３６ｄから、及び第１の追加オペランド入力７６を受信する（後者は第２のオペランド入力３６ｂにおけるオペランド内のビットメトリックの数を示す）。ここで、第４のオペランド入力３６ｄからのオペランドは、第４のオペランド入力３６ｄにおける次の将来の値からのオペランドに従い、結果に組み込まれるべきビットメトリックの数Ｍ’を示すとする。同様に、第１の追加オペランド入力７６における次の将来のオペランド値に従うビットメトリックの数Ｉ’は、現在の値Ｉと等しいとする。
【００７３】
更なる比較回路８９は、次の将来のＤＥＰＵＮＣＴＵＲＥ命令の実行中の第２のオペランド入力３６ｂにおける第２のオペランド内のＩ’ビットメトリックを、結果出力３９における結果に組み込むために十分な空間があるか否か、つまりＬ’＋Ｉ’−Ｍ’が結果出力３８における結果に含まれ得るビットメトリックの最大数ＭＡＸ（例えばＭＡＸ＝８ビットメトリック）を超えないか否かを検出するよう機能する。この比較の結果は、第２のオペランドの新しい値のロードを制御するために用いられる。
【００７４】
更に、出力６２へ出力されるフラグ値はまた、オペランド更新回路３４へ供給される。オペランド更新回路３４は、シフト演算を実行し、結合された第１及び第２のオペランドからＭビットメトリックをシフトする。しかしこのシフトは、フラグ値がＬ＋Ｉ−Ｍ（又はＬ−Ｍ）は正でないと示す場合、抑制される。更に、第２の追加オペランド入力７８からの信号は、オペランド結合回路３０へ供給される。オペランド結合回路３０は、第２の追加オペランド入力７８からの信号が第２のオペランドは有効でないと示す場合、第１のオペランドからのビットメトリックが第２のオペランドにより影響されないことを保証するよう配置される。
【００７５】
勿論、理解されるべき点は、本発明が図８に示された実施例に限定されないことである。例えば、等価な結果は、多くの代案の回路で計算され得る。また、如何なる予測フラグも用いられない場合、第２の追加オペランド入力７８及びゼロ代入回路８８は省略されて良い。この場合、更なる比較回路８９は、Ｌ＋Ｉ−Ｍがビットメトリックの最大数ＭＡＸを超えないか否かを検出するために適応されて良い。及び多重回路８６はＬ＋Ｉ−Ｍ、Ｌ＋Ｉ又はＬ−Ｍの何れかを出力するよう適応されて良い。この場合、Ｌ＋Ｉが少なくともＭに等しく且つＬ＋Ｉ−Ｍが最大数ＭＡＸより大きくない場合、Ｌ＋Ｉ−Ｍが出力される。Ｌ＋ＩがＭ未満であり且つＬ＋ＩがＭＡＸより大きくない場合、Ｌ＋Ｉが出力される。Ｌ＋Ｉ−ＭがＭＡＸより大きい場合、及びＬが少なくともＭと等しい場合、Ｌ−Ｍが出力される。
【００７６】
別個のオペランド入力が異なるオペランドを供給するよう機能する多数の実施例が記載されたが、理解されるべき点は、複数のオペランドが共有オペランド入力において組み合わせて供給されて良いこと、及び／又は複数の結果が共有結果出力へ組み合わせて供給されて良いことである。オペランド入力の数の低減は、所要の回路を減少するので、有利である。例えば、ある実施例では、第３のオペランド入力３６ｃへ供給される長さコードは、第１のオペランド入力３６ａにおける第１のオペランドと一緒に供給されて良い。この場合、これらのオペランドを供給する結果出力３８及び６２はまた、望ましくは結合される。これは、第１のオペランド内に含まれ得るビットメトリックの最大数を減少し得るが、特定の用途では当該最大数は必要ない。
【００７７】
別の例として、第１の追加オペランド入力７６からの長さコードは、第２のオペランド入力３６ｂにおける第２のオペランドと共に供給される。再びこれは、第２のオペランド内に含まれ得るビットメトリックの最大数を減少し得るが、これはいくつかの用途では、例えば最大値が必要ない場合、不利点になり得ない。同様にフラグ値は、他の結果の使用に影響しない場合、他の結果と結合されて良い。例えば、デパンクチャ出力が有効か否かを示す結果フラグは、結果が保護として使用される場合、及びデパンクチャ機能ユニットが長さコードがオペランド内に存在している場所から長さコードを適切に抽出するよう配置される場合、保護された実行が残りのビットメトリックの長さコードの存在に依存しないならば、当該長さコードと組み合わされて良い。
【００７８】
別の例として、示されたデパンクチャ機能ユニットの実施例の何れも、複数の機能ユニットに分割されて良い。各機能ユニットは、示されたようにＤＥＰＵＮＣＴＵＲＥ命令の演算の個々の部分を実行するために使用される別個の命令を実行する。例えば、命令を実行し、それぞれ補助結果計算回路７０及び図７の残りのデパンクチャ機能ユニットの演算を実行する命令を実行する別個の機能ユニットが設けられて良い。別の例として、命令を実行し、（出力３９における）デパンクチャ結果を計算し、及び（出力３８における）次の第１のオペランドを計算する別個の機能ユニットが設けられ得る。ＶＬＩＷアーキテクチャでは、このような機能ユニットは、命令を並行して実行するよう作られ得る。これは、結果として単一命令が用いられ全ての演算を開始する場合と同一の演算速度をもたらすが、しかしながらループ内の他の命令をスケジュールするためのより大きい柔軟性を生じる。
【００７９】
更に、既定ビットメトリック値がパンクチャされたビットの位置に挿入される例が示されたが、理解されるべき点は、ＤＥＰＵＮＣＴＵＲＥ命令が、例えば全ての命令で使用されるべきＤＥＰＵＮＣＴＵＲＥ命令のオペランド内の単一代入値の形式で、又は個々のパンクチャ位置に使用されるべき複数代入値の形式で、挿入されるビットメトリック値の決定を提供することである。追加オペランド入力は、デパンクチャ機能ユニットに提供され、１つ又は複数の代入値を供給して良い。又はデパンクチャ機能ユニットは、当該１つ又は複数の代入値を例えばパターンオペランドＲ４内の１つ以上の記載されたオペランドから抽出するよう配置されて良い。当該代入ビットメトリックは、プログラムのみに依存しレジスタＲ１、Ｒ２に供給される受信データに依存しないので、「所定の」ビットメトリックと称される。
【００８０】
更に、本発明はそれぞれ単一ビットを表すビットメトリックのストリームのデパンクチャリングのために記載されたが、理解されるべき点は、本発明がまた各ビットメトリックが複数ビットコードシンボル、例えば２ビットシンボルを表すデパンクチャリングにも適用されることである。
【００８１】
機能ユニットへ十分なオペランドを供給可能であるため、及び十分な結果を書き込み可能であるため、専用発行スロットが標準的に設けられ、ＤＥＰＵＮＣＴＵＲＥ命令を命令発行回路から機能ユニットへ供給し、及び十分な数の読み出し及び書き込みポートは望ましくは当該発行スロットに対応する。ある実施例では、更なる機能ユニットは、如何なる命令もデパンクチャ機能ユニットへ発行されない場合、当該機能ユニットへ命令を発行する当該発行スロットと結合されて良い。複数の当該更なる機能ユニットは、発行スロットと並列に結合され、読み出し及び書き込みポートの対応するグループと結合され如何なる命令もデパンクチャ機能ユニットへ発行されない場合、当該ポートをより効率的に使用しても良い。
【００８２】
ＶＬＩＷアーキテクチャが用いられる場合、ＤＥＰＵＮＣＴＵＲＥ命令と並行して複数の命令を発行することが可能である。従って、プログラムループの１回に必要な命令サイクル数は、減少され得る。ＤＥＰＵＮＣＴＵＲＥ命令は、相互データ依存を有する命令の数を減少する。これは、ループ内のより多くの命令を同一のＶＬＩＷ命令に結合することを可能にし、従ってループに必要な命令サイクル数が小さく保たれ得る。これは、ループの命令をバッファすることをより容易にし、また実行速度を上げる。
【図面の簡単な説明】
【００８３】
【図１】信号受信機装置を示す。
【図２】プログラム可能な信号処理回路を示す。
【図３】デパンクチャ機能ユニットを示す。
【図４】オペランド更新回路を示す。
【図５】デパンクチャ回路を示す。
【図６】更なるデパンクチャ機能ユニットを示す。
【図７】更なるデパンクチャ機能ユニットを示す。
【図８】補助結果計算回路を示す。
【図１】
2008523762.tif 000007
【図２】
2008523762.tif 000008
【図３】
2008523762.tif 000009
【図４】
2008523762.tif 000010
【図５】
2008523762.tif 000011
【図６】
2008523762.tif 000012
【図７】
2008523762.tif 000013
【図８】
2008523762.tif 000014
【国際調査報告】
2008523762.tif 000015
2008523762.tif 000016