(57)【特許請求の範囲】
【請求項１】
アルゴリズムの命令に応答して結果を計算する少なくとも１つの計算ユニットを具備し、
前記計算ユニットは、
（１）パイプラインの第１ステージ内の第１計算ユニットブロックと、
（２）前記パイプラインの第２ステージ内の第２計算ユニットブロックと、
（３）前記パイプラインの第２ステージ内部のローカルランダムアクセスメモリアレーとを具備し、前記アレーは、計算結果の１つ又は複数の関連関数への直接マッピングを前記計算ユニットのパイプライン内部で提供するように、前記アルゴリズムの所定の命令セットに対して前記計算結果に関連付けられる、所定の関数値セットを格納することによって、前記命令の実行中に該所定の関数値セットを取得することを目的とした外部フェッチを行うことを不要とし、該外部フェッチに起因したパイプラインストールの発生を回避し、
前記計算ユニットは、前記ローカルランダムアクセスメモリアレーのセクション内に格納された１つ又は複数の関数値が更新されたことを示すステータスデバイスをさらに具備し、前記ステータスデバイスは、前記ローカルランダムアクセスメモリアレー内の関数値をスピルすべきか維持すべきか決定するとともに、前記ステータスデバイスは、セクション内に格納された１つ又は複数の値が更新されたときに、前記ローカルランダムアクセスメモリアレーの少なくとも１つの前記セクションからの前記値をスピル可能にする、ことを特徴とするプロセッサ。
【請求項２】
前記計算ユニットによって共有されるレジスタファイルを具備することを特徴とする請求項１に記載のプロセッサ。
【請求項３】
全ての前記計算ユニットのローカルランダムアクセスメモリアレーは、前記レジスタファイルからの同一の値で並列にフィル（Ｆｉｌｌ）されることを特徴とする請求項２に記載のプロセッサ。
【請求項４】
ローカルランダムアクセスメモリアレーは、前記レジスタファイルからの異なる値で並列にフィルされることを特徴とする請求項２に記載のプロセッサ。
【請求項５】
前記ローカルランダムアクセスメモリアレーは、前記レジスタファイルに並列にスピル（Ｓｐｉｌｌ）されることを特徴とする請求項２に記載のプロセッサ。
【請求項６】
前記計算結果の関連関数への前記マッピングは、他の計算結果マッピングから独立であることを特徴とする請求項１に記載の前記プロセッサ。
【請求項７】
前記計算結果の前記関連関数への前記マッピングは、各計算ユニット間で独立であることを特徴とする請求項１に記載のプロセッサ。
【請求項８】
前記レジスタファイル内のレジスタは、複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用しうることを特徴とする請求項２に記載のプロセッサ。
【請求項９】
複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーの出力は、前記レジスタファイル内の単一のレジスタ内で合算されることを特徴とする請求項２に記載のプロセッサ。
【請求項１０】
レジスタファイル内の異なるレジスタが、各計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用されることを特徴とする請求項７に記載のプロセッサ。
【請求項１１】
各計算ユニット内の各ローカルランダムアクセスメモリアレーの出力は、レジスタファイル内の異なるレジスタに配置されることを特徴とする請求項７に記載のプロセッサ。
【請求項１２】
前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備することを特徴とする請求項１に記載のプロセッサ。
【請求項１３】
前記計算ユニット内で計算結果の関連関数への直接マッピングを提供するように、所定の前記関数値セットを前記ローカルランダムアクセスメモリアレー内に格納する制御ユニットをさらに具備することを特徴とする請求項１に記載のプロセッサ。
【請求項１４】
前記計算ユニットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、関連するデータセットを独立のアドレスに格納可能にするように、各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを具備することを特徴とする請求項１に記載のプロセッサ。
【請求項１５】
アルゴリズムの命令に応答して結果を計算する少なくとも１つの計算ユニットを具備し、
前記計算ユニットは、
パイプラインの第１ステージ内の第１計算ユニットブロックと、
前記パイプラインの第２ステージ内の第２計算ユニットブロックと、
前記パイプラインの第２ステージ内部のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを具備し、前記アレーは、計算結果の１つ又は複数の関連関数への直接マッピングを前記計算ユニットのパイプライン内部で提供するように、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けられた所定の値セットを格納することによって、前記命令の実行中に該所定の関数値セットを取得することを目的とした外部フェッチを行うことを不要とし、該外部フェッチに起因したパイプラインストールの発生を回避し、
前記計算ユニットは、前記ランダムアクセスメモリアレーのセクション内に格納された１つ又は複数の関数値が更新されたことを示すステータスデバイスをさらに具備し、前記ステータスデバイスは、前記ランダムアクセスメモリアレー内の関数値をスピルすべきか維持すべきか決定するとともに、前記ステータスデバイスは、セクション内に格納された１つ又は複数の値が更新されたときに、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの少なくとも１つの前記セクションからの前記値をスピル可能にする、ことを特徴とするパイプライン化されたデジタル信号プロセッサ。
【請求項１６】
前記計算ユニットによって共有されるレジスタファイルを具備することを特徴とする請求項１５に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項１７】
前記レジスタファイルは、全ての前記計算ユニットのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーに亘って並列に同一の値をフィルする入力レジスタを具備することを特徴とする請求項１６に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項１８】
前記レジスタファイルは、各前記計算ユニットのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、直列に異なる値をフィルする入力レジスタを具備することを特徴とする請求項１６に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項１９】
前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を並列にスピルする出力レジスタを具備することを特徴とする請求項１６に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２０】
前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を直列にスピルする出力レジスタを具備することを特徴とする請求項１６に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２１】
前記計算結果の関連関数値への前記マッピングは、他の計算結果マッピングから独立であることを特徴とする請求項１５に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２２】
前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される入力レジスタと、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される出力レジスタとを具備することを特徴とする請求項１６に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２３】
前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの異なる計算結果を受信するとともに、前記出力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーからの異なる関数値を表すことを特徴とする請求項２２に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２４】
前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの同一の計算結果を受信するとともに、前記出力レジスタは、各前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって表される関数の部分によって構成される単一の関数値を表すことを特徴とする請求項２２に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２５】
前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、ルックアップテーブルを具備することを特徴とする請求項１５に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２６】
計算結果の関連関数への直接マッピングを、前記計算ユニット内で提供するように、前記アルゴリズム内の所定の命令セットの前記計算結果に関連付けられた所定の関数値セットを、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に格納する制御ユニットをさらに具備することを特徴とする請求項１５に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２７】
前記計算ユニットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、関連するデータセットを独立のアドレスに格納可能にするために、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを具備することを特徴とする請求項１５に記載のパイプライン化されたデジタル信号プロセッサ。
【請求項２８】
アルゴリズムの命令に応答して、第１及び第２パイプラインステージを有する計算ユニット内で結果を計算する段階と、
前記アルゴリズムの所定の命令セットの計算結果に関連付けられた所定の関数セットを、前記計算ユニット内の第２ステージ内のローカルランダムアクセスメモリアレーに格納する段階と、
前記命令の実行中に該所定の関数値セットを取得することを目的とした外部フェッチを行うことを不要とし、該外部フェッチに起因したパイプラインストールの発生を回避するように、計算結果の１つ又は複数の関連関数への直接マッピングを前記計算ユニットの内部で提供する段階と、
を具備する方法であって、
前記方法は、
前記ローカルランダムアクセスメモリアレーのセクション内に格納された１つ又は複数の値が更新されたことを、前記計算ユニット内のステータスデバイスにおいて示す段階と、
前記ローカルランダムアクセスメモリアレー内の値をスピルすべきか維持すべきかを、前記ステータスデバイス内で決定する段階とをさらに具備し、前記ステータスデバイスは、セクション内に格納された１つ又は複数の値が更新されたときに、前記ローカルランダムアクセスメモリアレーの少なくとも１つの前記セクションからの前記値をスピル可能にする、ことを特徴とするプロセッサ内の計算ユニット及びアドレスユニットの間のパイプラインストールを低減する方法。
【請求項２９】
前記プロセッサは、前記計算ユニットによって共有されるレジスタファイルを具備することを特徴とする請求項２８に記載の方法。
【請求項３０】
全ての前記計算ユニットのローカルランダムアクセスメモリアレーを、前記レジスタファイルからの同一の値で、並列にフィルする段階を具備することを特徴とする請求項２９に記載の方法。
【請求項３１】
ローカルランダムアクセスメモリアレーを、前記レジスタファイルからの異なる値で並列にフィルする段階を具備することを特徴とする請求項２９に記載の方法。
【請求項３２】
前記ローカルランダムアクセスメモリアレーを前記レジスタファイルに並列にスピルする段階を具備することを特徴とする請求項２９に記載の方法。
【請求項３３】
前記計算結果を関連関数へ、他の計算結果のマッピングとは独立にマッピングする段階をさらに具備することを特徴とする請求項２８に記載の方法。
【請求項３４】
前記計算結果を、前記関連関数の値へ、各計算ユニット間で独立にマッピングする段階をさらに具備することを特徴とする請求項２８に記載の方法。
【請求項３５】
前記レジスタファイル内のレジスタを、複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用することを特徴とする請求項２９に記載の方法。
【請求項３６】
複数の計算ユニット内の前記ローカルランダムアクセスメモリアレーの出力を、前記レジスタファイル内の単一のレジスタ内で合算する段階をさらに具備することを特徴とする請求項２９に記載の方法。
【請求項３７】
レジスタファイルからの異なるレジスタを、各計算ユニット内の前記ローカルランダムアクセスメモリアレーへのインデックスとして使用する段階をさらに具備することを特徴とする請求項３４に記載の方法。
【請求項３８】
レジスタファイル内の異なるレジスタ内の各計算ユニット内に各ローカルランダムアクセスメモリアレーの出力を配置する段階をさらに具備することを特徴とする請求項３４に記載の方法。
【請求項３９】
前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備することを特徴とする請求項２８に記載の方法。
【請求項４０】
前記計算ユニット内で、計算結果の関連関数値への直接マッピングを提供するために、前記ローカルランダムアクセスメモリアレー内に、前記アルゴリズムの命令の所定のセットを格納する段階をさらに具備することを特徴とする請求項２８に記載の方法。
【請求項４１】
関連するデータセットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の独立のアドレスに、前記計算ユニット内の各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを使用して格納されることを特徴とする請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計算ユニット及びアドレスユニットの間のパイプラインストールを回避するパイプライン化されたデジタル信号プロセッサに関する。
【背景技術】
【０００２】
コンピュータのスピードが３３ＭＨｚから１．２ＧＨｚ及びそれ以上に増加し、コンピュータ動作は、１サイクルでは完了できなくなった。結果として、より高いプロセッサのより高いパフォーマンスの効率的な使用をする、及びそれらのスループットを改善するために、パイプライン化技術が採用された。目下、深いパイプライン化は、２５又はより多くのステージを使用する。一般的な、パイプライン化された計算システムでは、各ブロックが全体の処理の異なる部分を処理している、いくつかの並列構築ブロックが同時に動作している。例えば、計算をする計算ユニットであり、アドレスユニットは、選択されたアドレスモードによりメモリ内のデータをフェッチ及び格納するデータアドレス生成器（ＤＡＧ）と、命令をデコード及び配布するシーケンサ又は制御回路とを具備するものがある。ＤＡＧは、前記メモリをアドレスすることが可能である唯一つの構成要素である。このように、深くパイプライン化されたシステムでは、もし命令が他の１つの結果に依存するならば、前記パイプラインが停止し、動作状態に復帰する前に、邪魔な命令が終了するのを待機するパイプラインストールが発生する。例えば、もし計算の後に、次のデータフェッチのために、計算ユニットの出力がＤＡＧに必要であるならば、前記出力は、データフェッチの準備をするＤＡＧに直接に配送することはできない。前記出力は、次のデータフェッチ及び計算を行うように前記ＤＡＧによって処理されうる前に、前記パイプラインを通って伝播しなければならない。前記ＤＡＧのみがメモリへのアクセスを具備するとともに、所望のデータを位置指定するためのアドレスポインタに計算結果を変換しうるためである。マルチタスク化された汎用コンピュータでは、このストールは、重大ではないかもしれないが、例えば携帯電話、デジタルカメラ内で使用されるような、リアルタイムコンピュータシステム内では、これらのストールは問題である。
【発明の開示】
【課題を解決するための手段】
【０００３】
それ故、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するための改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明の目的である。
【０００４】
ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを採用する計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【０００５】
増加されたパフォーマンス効率を具備する、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【０００６】
並列（ｐａｒａｌｌｅｌ）及び直列に（ｓｅｒｉａｌｌｙ）フィル及びスピルされうる、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【０００７】
関数セット内に格納された前記１つ又は複数の値が更新されたときに、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーが、選択的、条件的にスピルされる、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【０００８】
各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、１対１ベースで、結果を関数にマッピングするように、又は、結果入力を、各単一のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって表される関数の部分によって構成される１つの混成出力関数にマッピングするように、複数のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの間で共有される入出力レジスタを採用する、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【０００９】
前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、通常の計算ユニット内に適合するのに充分小さく、かつ、１サイクルでアクセス可能であり、それでもなお前記計算ユニットの殆どのアプリケーションを内部的にサポートするのに充分大きいような、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【００１０】
前記計算ユニットの結果を、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に格納されている関連関数に直接にマッピングすることによって、パイプラインストールのペナルティを回避する、計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するような改善されたパイプライン化されたデジタル信号プロセッサを提供するのが、この発明のさらなる目的である。
【００１１】
計算ユニット及びアドレスユニットの間のパイプラインストールを最小化するための新規である改善されたパイプライン化されたデジタル信号プロセッサは、アルゴリズムからの命令に応答して結果を計算するとともに、計算結果の関連関数への前記計算ユニット内部での直接マッピングを提供するために、前記アルゴリズムの所定の命令セットに対する前記計算結果に関連付けられた所定の関数セットを格納するローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを、各計算ユニットに具備する、１つ又は複数の計算ユニットを伴って達成されることの具現化に、本発明は由来する。
【００１２】
しかしながら、対象発明は、他の構成では、全てのこれらの目的を達成する必要はなく、かつ、本明細書の特許請求の範囲は、これらの目的を達成可能な構成又は方法に限定されるべきではない。
【００１３】
この発明は、アルゴリズムの命令に応答して結果を計算する少なくとも１つの計算ユニットを具備する、計算ユニット及びアドレスユニットの間のパイプラインストールを低減するための装置を具備するプロセッサを特徴づける。各計算ユニットは、所定の関数値のセットを格納するローカルランダムアクセスメモリアレーを具備する。計算結果の関連関数への直接マッピングを前記計算ユニット内部で提供するために、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けられる。
【００１４】
好ましい構成では、前記計算ユニットによって共有されるレジスタファイルがあっても良い。全ての前記計算ユニットのローカルランダムアクセスメモリアレーは、前記レジスタファイルからの同一の値で並列にフィルされても良い。ローカルランダムアクセスメモリアレーは、前記レジスタファイルからの異なる値で並列にフィルされても良い。前記ローカルランダムアクセスメモリアレーは、前記レジスタファイルに並列にスピルされても良い。前記計算回路は、前記ランダムアクセスメモリアレーのセクション内に格納された１つ又は複数の関数値が更新されたときに指示するステータスデバイスを具備しても良い。前記ステータスデバイスは、前記ランダムアクセスメモリアレー内の関数値をスピルすべきか維持すべきかを決定するのに使用してもよい。前記計算結果の関連関数へのマッピングは、以前の計算結果のマッピングから独立であっても良い。前記計算結果前記関連関数へのマッピングは、１つの計算ユニットから他まで独立であっても良い。前記レジスタファイルからのレジスタは、複数の計算ユニット内の前記ランダムアクセスメモリアレーのインデックスとして使用しても良い。複数の計算ユニット内の前記ランダムアクセスメモリアレーの出力は、前記レジスタファイル内の単一のレジスタで組み合わされても良い。前記レジスタファイルからの異なるレジスタを、各計算ユニット内の前記ランダムアクセスメモリアレーへのインデックスとして使用しても良い。各計算ユニット内の各ランダムアクセスメモリアレーの出力は、前記レジスタファイル内の異なるレジスタ内に配置されても良い。前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記計算ユニット内部で計算結果の関連関数への直接マッピングを提供するように、所定の関数値セットを前記ローカルランダムアクセスメモリアレー内に格納する制御ユニットがあっても良い。前記計算ユニットは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内で、関連するデータセットを独立のアドレスに格納可能にするために、各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを具備しても良い。
【００１５】
この発明は、また、アルゴリズムの命令に応答して、結果を計算する少なくとも１つの計算ユニットを具備する、計算ユニット及びアドレスユニットの間のパイプラインストールを低減するためのパイプライン化されたデジタル信号プロセッサを特徴づける。各計算ユニットは、計算結果の関連関数への直接マッピングを前記計算ユニット内部で提供するように、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けて、所定の関数セットを格納するローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを具備する。
【００１６】
好ましい構成では、前記計算ユニットによって共有されるレジスタファイルがあっても良い。前記レジスタファイルは、全ての計算ユニットのローカルに再構成可能なフィルに亘って並列に同一の値をフィルする入力レジスタを具備しても良い。スピルランダムアクセスメモリアレー前記レジスタファイルは、各前記計算ユニットのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に直列に異なる値をフィルする入力レジスタを具備しても良い。前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を並列にスピルする出力レジスタを具備しても良い。前記レジスタファイルは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーから格納された値を直列にスピルする出力レジスタを具備しても良い。前記計算ユニットは、前記セクション内に格納された１つ又は複数の前記値が更新されたときに、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの少なくとも１つのセクションから値をスピル可能にするステータスデバイスを具備しても良い。前記計算結果の関連関数へのマッピングは、以前の計算結果マッピングから独立であっても良い。前記レジスタファイルは、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される入力レジスタと、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって共有される出力レジスタとを具備しても良い。前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの異なる計算結果を受信しても良く、かつ前記出力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーからの異なる関数を表しても良い。前記入力レジスタは、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの同一の計算結果を受信しても良く、かつ前記出力レジスタファイルは、各前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーによって表された関数の部分によって構成される単一の関数を表しても良い。前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記計算ユニット内部で、計算結果の関連関数への直接マッピングを提供するために、前記アルゴリズム内で所定の命令セットの前記計算結果に関連付けられた所定の関数セットを、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内に格納する制御ユニットがあっても良い。
【００１７】
本発明は、アルゴリズムの命令に応答して、計算ユニット内で結果を計算する段階と、前記アルゴリズムの所定の命令セットの前記計算結果に関連付けて、所定の関数セットを、計算ユニット内のローカルランダムアクセスメモリアレーに格納する段階及び、前記計算ユニット内部で計算結果の関連関数への直接マッピングを提供する段階とを具備する、プロセッサ内の計算ユニット及びアドレスユニットの間のパイプラインストールを低減するための方法を特徴づける。
【００１８】
好ましい構成では、前記プロセッサは、前記計算ユニットによって共有されたレジスタファイルを具備しても良い。前記方法は、全ての前記計算ユニットのローカルランダムアクセスメモリアレーを前記レジスタファイルからの同一の値で並列にフィルする段階を具備しても良い。前記方法は、ローカルランダムアクセスメモリアレーを前記レジスタファイルからの異なる値で並列にフィルする段階を具備しても良い。前記方法は、前記ローカルランダムアクセスメモリアレーを前記レジスタファイルへ並列にスピルする段階を具備しても良い。前記方法は、前記ランダムアクセスメモリアレーのセクション内に格納された１つ又は複数の値が更新されたときに、前記計算回路内のステータスデバイス内で指示する段階をさらに具備しても良い。前記方法は、前記ランダムアクセスメモリアレー内の値をスピルすべきか維持すべきかを前記ステータスデバイス内で決定する段階をさらに具備しても良い。前記方法は、前記計算結果を関連関数へ、以前の計算結果マッピングから独立にマッピングする段階をさらに具備しても良い。前記方法は、前記計算結果を前記関連関数に、１つの計算ユニットから他まで独立にマッピングする段階をさらに具備する。前記レジスタファイルからのレジスタは、複数の計算ユニット内の前記ランダムアクセスメモリアレーへのインデックスとして使用しても良い。前記方法は、複数の計算ユニット内の前記ランダムアクセスメモリアレーの出力を、前記レジスタファイル内の単一のレジスタに組み合わせる段階をさらに具備しても良い。前記方法は、前記レジスタファイルからの異なるレジスタを、各計算ユニット内の前記ランダムアクセスメモリアレーへのインデックスとして使用する段階をさらに具備しても良い。前記方法は、前記レジスタファイル内の異なるレジスタ内の各計算ユニット内の各ランダムアクセスメモリアレーの出力を配置する段階をさらに具備しても良い。前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記方法は、前記計算ユニット内部で、計算結果の関連関数への直接マッピングを提供するために、前記ローカルランダムアクセスメモリアレー内に、前記アルゴリズムの命令の所定のセットを格納する段階をさらに具備しても良い。各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の独立のアドレスに、関連するデータセットを、前記計算ユニット内の各ローカルランダムアクセスメモリアレーに関連付けられたテーブルベースレジスタを使用して格納しても良い。
【発明を実施するための最良の形態】
【００１９】
他の目的、次の特徴及び利点は、好ましい実施形態の説明及び添付図面から、当業者に想到可能である。
【００２０】
好ましい実施形態又は以下に開示された実施形態とは別に、この発明は、他の実施形態が可能であるとともに、種々の仕方で実施又は実行されても良い。このように、本発明は、次の説明で説明される、又は図面内で説明される構成要素の構成及び配置の詳細に、その応用例が限定されないことを理解すべきである。もし一実施形態のみが本明細書で説明されているならば、特許請求の範囲は、当該実施形態に限定されない。さらに、特定の除外、限定、又は放棄を体現する明確及び説得力のある証拠がない限りは、本明細書の特許請求の範囲は、限定的に読むべきではない。
【００２１】
図１には、１つ又は複数のデジタルアドレス生成器１４，１６を具備するアドレスユニット１２と、プログラムシーケンサ１８のような制御ユニットと、各々が、演算論理ユニット２２、乗算／アキュムレータ２４、シフタ２６のような多くの回路を具備する、１つ又は複数の計算ユニット２０を具備するデジタル信号プロセッサ１０が示されている。詳細には、デジタル信号プロセッサ内に２，４、又はより多くの計算ユニットがある。デジタル信号プロセッサは、メモリバス２８上で、プログラムメモリ３２及びデータメモリ３４又は追加のメモリ３６を具備する、レベル１（Ｌ１）メモリ３０のような１つ又は複数のメモリに接続されている。詳細には、メモリ３０は、非常に高速及び非常に高価なレベル１メモリであっても良い。メモリ３６は、あまり高価でなく、かつより遅いレベル３（Ｌ３）メモリであっても良い。ＤＳＰ１０は１ＧＨｚ及びそれ以上で動作しているので、動作のサイクルは、非常に高速であり、前記アドレスユニット及び前記計算ユニットは、それらの動作を完了するのに複数のサイクルを必要とする。ＤＳＰ１０のスループットを改善するとともに、そのパフォーマンスを向上するために、それは、通常は、深くパイプライン化される。
【００２２】
パイプライン化された動作では、以前の命令の結果と、全てのプロセッサの並列構築ブロックに亘る後続の結果との間の依存関係がないときは、パイプライン効率は、維持される。しかしながら、もしそのような依存関係があるならば、前記パイプラインは、動作状態に復帰する前に、邪魔な命令が終了するのを停止及び待機する、パイプラインストールが発生しうる。例えば、もし、計算結果が直接に格納されることができず、当該計算結果の関連関数が発見されうるメモリ内のアドレスを生成するのに使用されなければならないならば、前記計算ユニット結果及び前記ＤＡＧの間に依存関係があり、それによって、前記パイプラインの滑らかな動作が破壊される。例で十分に説明される。
【００２３】
計算ユニットが、角度αの結果を計算するが、後続動作の実行で使用すべきなのは、その角度の関数、Ｓｉｎ（α）であると仮定する。すると、前記計算ユニットは、メモリ３０又は３６からその角度の正弦関数をフェッチするために、適切なアドレスをＤＡＧ１４又は１６が生成するアドレスユニット１２に、計算結果を配送するとともに、その角度を取り戻すとともに、それを前記計算ユニットに提出しなければならない。この前記パイプライン内でのストール又は破壊は、時間を無駄にする。ＤＳＰ１０の１つの特徴は、アドレスユニット１２及びアドレスユニット１２のみが、メモリ３０及び３６をアドレス指定しうることである。このような、計算ユニットが動作するためにＬ１メモリ３０又はＬ３メモリ３６から情報を必要とするときはいつでも、ＤＡＧ１２レジスタがロードされるときよりも後に、前記計算ユニット結果がステージで有効になるという事実のために、パイプライン動作がストールする。
【００２４】
このことは、例えば、前記命令フェッチは４つのマシンサイクル、ＩＦ１，ＩＦ２, ＩＦ３，ＩＦ４を取ることがわかる、図２内のチャートに関してより良く理解されうる。デジタルアドレス生成は、２つのマシンサイクルＤＡＧｌ、ＤＡＧ２を必要とするとともに、前記データフェッチは、より多くの４つのマシンサイクルＤＦｌ，ＤＦ２，ＤＦ３，ＤＦ４を必要とする。前記計算動作は、計算結果Ｃｌを取得するのに、３サイクル、ＣＦｌ，ＣＦ２，ＣＦ３を必要とする。このように、もしステージＣｌからの計算ユニット結果が、次の命令の前記ＤＡＧによって必要とされるならば、それは、前記ＤＡＧレジスタがロードされる前に、前記パイプラインを「浮上（ｓｗｉｍ  ｕｐ）」するとともに、ステージＤが実行されるのを待機しなければならない。これは、パイプラインストールのグラフィックによる例示である。
【００２５】
この発明に従って、この発明によるＤＳＰ１０ａ内では、各計算ユニット２０ａ，２０ｂ，２０ｃ，２０ｄ（図３）に、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー、例えば、ルックアップテーブル（ＬＵＴ）５０ａが構成されている。計算ユニット２８は、詳細には、特に、乗算器５２と、多くの選択回路５４及び５６と、ガロア拡大体動作のような多項式乗算器５８と、バレルシフタ６０と、演算論理ユニット６２と、アキュムレータ６４、及び多重化器６６とを具備しても良い。また、各計算ユニットは、レジスタファイル６８を具備する。詳細には、複数の計算ユニット、例えば、図３内のように、計算ユニット２０ａ，２０ｂ，２０ｃ，及び２０ｄがあるならば、それらは、全て同一のレジスタファイル６８を共有しても良い。各計算ユニットは、また、それ自身のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー、ＬＵＴ５０ａ、５０ｂ、５０ｃ、及び５０ｄを具備する。これらのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、通常の計算ユニット内に適合するとともに、１サイクルでアクセス可能であるほど充分小さく、それにもかかわらず、それらは、外部メモリに行くとともにパイプラインストールをもたらすことなく、殆どのアプリケーションを前記計算ユニットで内部的にサポートするのには充分大きい。
【００２６】
ＤＳＰ１０ａは、携帯電話を実施するのに使用しても良く、そのような場合には、全体の全体的携帯電話アルゴリズム（図４）は、多くのアプリケーションを具備しても良く、各々は、１つ又は複数の特定のアルゴリズムを具備しても良い。例えば、図４内に示された携帯電話アルゴリズムは、モデムアプリケーションに続けて、例えば、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）を具備しても良い暗号化アプリケーションに続けて、例えば、可変長デコード（ＶＬＤ）を使用しても良いＭＰＥＧ−２、ＭＰＥＧ−４又はＷＭＶのようなビデオ圧縮装置を具備しても良い。また、グラフィクスアプリケーション及び音声があっても良い。
【００２７】
この発明の、図４内で示されるような、一般的なアルゴリズムを実行するときの効果が、構造的な形式で、図５内で図説されている。前記レジスタファイル６８ａ内の値が、バッファステージ７０、乗算アレー７２、他のパイプラインバッファステージ７４、選択及び圧縮回路７６、さらに他のパイプラインバッファステージ７８、加算器８０、多重化及び選択回路８２及び最後に、そこから値がレジスタファイル６８ａにロードして戻されるアキュムレータ８４を通って移動することが理解される。もし、レジスタファイル６８ａ内に格納されたアキュムレータ８４の前記出力の形式が、後続の命令の実行に適しているならば、前記計算ユニットは、外部メモリへのアクセスを必要としない。しかしながら、ＣＦで、乗算器８６及び８８、及び、ＣＦ２で乗算器９０及び９２を使用して乗算が発生すると仮定するとともに、さらに、乗算器９０及び９２の前記出力は、後続の命令実行のためにＬＵＴを使用してマップされる必要があると仮定する。次いで、前記計算ユニット結果が、データアドレス生成器レジスタがロードされるときよりも後のステージで有効であるという事実によりパイプラインストールを発生しうる、外部フェッチが実行される必要がある。しかしながら、この発明に従うと、乗算器９０及び９２の前記出力は、格納関数が乗算器９０及び９２からの前記計算結果に関連づけられているサイクルＣＦ３の間に、前記計算ユニット内部でＬＵＴ９４に案内されうる。これによって、結果９６は、レジスタファイル６８ａ内にあるときに、後続命令内での実行に適している正しい形式で、アキュムレータ８４に出現し、このようにして、外部フェッチに必要とされる余計なサイクル時間の全てを節約するとともに、パイプラインストールを回避することを可能にする。
【００２８】
本発明の柔軟性は、入力レジスタ１００を具備するレジスタファイル６８ｂと、出力レジスタ１０２とが、多くの、この場合４つの、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，５０ｂ，５０ｃ、及び５０ｄによって共有され、各々が、少なくとも６４個の８ビット値を具備する、図６内で理解される。ＤＥＳ暗号化アプリケーション内のそのような構成は、４つの異なる６−ｂｉｔの計算値ｂ０，ｂ１，ｂ２，ｂ３を受信するとともに、４つの異なる値Ｓｂｏｘ０，Ｓｂｏｘｌ，Ｓｂｏｘ２、及びＳｂｏｘ３を出力レジスタ１０２で提供することが可能である。
【００２９】
その代わりに、通信タイプのアプリケーション、図７では、同一の計算結果ｂ０αが、１つの値の４つの部分を特定するように、入力レジスタ１００ｃの各部分１０６，１０８，１１０，１１２内に配置されても良い。例えば、αの正弦の４つの部分が組み合わされたときに、それらがこのＳｉｎ（α）の３２ビット精度値を生成するように、各一部は、出力レジスタ１０２ｃの一部１１４，１１６，１１８，１２０内にあるとともに、８ビットである。各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ,５０ｂ、５０ｃ、５０ｄは２５６の８ビット値を具備しても良く、それらのデータ構造は、多くの異なる仕方で配置されても良い。例えば、図８Ａでは、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａは、８つの８ビット値１３０を提供し、又は、各々は、１３２，１３４，１３６，１３８のように、ＤＥＳ暗号化のための異なるＳ−ｂｏｘ値を提供しても良い。１４０で、ＶＬＤデコードのように３２ビット値を提供するように、前記データは、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの全てに亘って構成されても良い。又はちょうど２つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，５０ｂが、１６ビット精度の正弦値にアクセスするために１４２で採用されても良い。このように、データ構造は、非常に器用である。さらに、図８Ａ内に示された一列の構成に限定される必要はない。それは、図８Ｂで示されているように、１６ビット幅までの５１２個の位置を提供するように、２×２の構成であっても良い。図８Ａでは、Ｓ−ｂｏｘ値１３２，１３４，１３６，１３８のセットは、各メモリアレーＬＵＴ５０ａ−ｄに亘って、同一の位置「６３」内に格納されているが、これは、本発明に必要な限定ではない。テーブルベースレジスタ５１ａ−ｄに、各アレーＬＵＴ５０ａ−ｄを加算することによって、それらは、各アレー内の任意の異なる、利用可能な位置に格納されても良い。例えば、Ｓ−ｂｏｘ２３及び４、６４個のエントリＬＵＴ１３４，１３６，１３８は、位置「０」で開始して格納されても良く、又はＳ−ｂｏｘ２は、位置「０」で開始して格納されても良い一方で、Ｓ−ｂｏｘ３，４及び１３６，１３８、は、位置「１９１」で開始して格納されても良い。このように、関連するデータセット、例えば、Ｓ−ｂｏｘ１−４、ｌ／ＧＦ（ｘ１−４）は、全てのメモリアレー５０ａ−ｄに亘って同一の位置に格納される必要はなく、各アレー内で独立のアドレスに格納されても良い。
【００３０】
２５６個に過ぎない８ビット値を伴うローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーが、パイプラインストールの回避に重要な効果をもたらしうるという事実は、図９−１２を参照して説明される可変長デコード（ＶＬＤ）アプリケーションに関して説明される。そのようなアプリケーションでは、可変長符号は、特定の符号値が、他のより多く度々発生するという事実を利用する。もし頻繁に発生する値に、短い長さの符号語が割り当てるとともに、頻度の低いものが、より長い符号語を使用して送信されるならば、効果的なビットレート低減が達成される。アナロジーとして、もし、英語テキストが送信されるならば、「ａ」、「ｅ」、「ｉ」は、短い符号語をもって送信される一方で、「ｚ」は、長い符号語を使用して送信される。例えば、ａ，ｂ，ｃ，ｄ，ｅ，ｆ…は、図９内のグラフィックによる図説によって示されるように、可変長キーで符号化される。シンボルａは０で、シンボルｂは０１で、シンボルｃは１００で、シンボルｄは１０１で、シンボルｅは１１０で、シンボルｆは１１１０で、シンボルｇは１１１１０、等で表される。ＶＬＤ入力ビットストリームの受信時に、ビットＦＩＦＯレジスタ１４０（図１０）によって、ｎビットの検査が１５０（図１１）でなされる。ここで、ｎは８に等しい。検査された８ビットフィールドは、前記計算ユニット内の、２５６個のＶＬＤ−ＬＵＴエントリへのアドレスとして使用される。前記ＬＵＴエントリは、（ＭＳＢが「１」にセットされる）特定済みシンボル１５２としてマークされても良く、又は、（ＭＳＢが「０」にセットされる）より多くのビットが、シンボル１６６を特定するのに必要であることをマークしても良い。シンボルが特定された場合は、前記ＬＵＴエントリは、デコードされたシンボルの値１５６と、次のシンボルの検査を開始するために、どれだけ多くのビット１５４を前記ビットストリームから除去（抽出）するかを保持する。より多くのビットが必要である場合１６６には、前記ＬＵＴエントリは、どれだけ多くの追加のビットストリームビットが、特定１６８を完了するのに必要であるかの指示と、８ビットより長い全てのシンボルの特定の役割を持つ他のＬ１−ＬＵＴへのポインタ１７６とを保持する。この処理は、ＬＵＴエントリが特定シンボル１７０としてマークされたときに停止する。図１１内の最初の２つの実施例では、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、内部的に全ての要求を満足し、外部メモリは必要なく、それ故パイプラインストールは回避されたことに留意する。しかしながら、第３例では、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、要求を満足することができず、かつパイプラインストールを発生して外部メモリを参照しなければならない。
【００３１】
しかしながら、興味深い場合では、本発明は非常に成功する。例えば、図１２内に示されるような、最大符号語サイズが１６ビットであるＭＰＥＧ−２ＶＬＤデコード処理では、可変長符号語特定処理は、第１が、８又はより少ないビットの最も起こりうる符号語（度々発生するシンボル）からなるグループである、３つの検査グループ（８，５，３）に分解しても良い。第２は、１２より少ないとともに８つより大きいビットの符号語の全てからなるグループであり、最後は、１２ビットより多くの他の頻度の低い符号語の全てからなるものである。前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、９７．２％の確率で、最も起こりうる２５個の符号語の第１グループを特定する。１つの計算ユニットＬＵＴ参照内で発生する追加の５ビットＬｌ−ＬＵＴ参照は、１．３＋％の確率で発生する４０個の符号語からなる第２グループを特定するとともに、第３の３ビットＬｌ−ＬＵＴ参照は、０．１７＋％の確率で発生する頻度の低い４８個の符号語からなる第３グループを特定する。８  ４  ４検査列に対しては、類似の結果が出現する。このように、８  ５  ３又は８  ４  ４のどの仕方でそれがなされても、９７％以上の時間で、前記ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、１回のＬＵＴ参照で前記符号語を特定可能である。さらに、任意のＭＰＥＧ−２  ＶＬＤ符号語を特定するのに必要とされる平均メモリアクセスは、前記８  ５  ３検査列に対しては、(１＊０．９７＋２＊０．０１３＋３＊０．００１３)＝１．００５１２７であるとともに、前記８  ４  ４検査列に対しては、１．００７０８である。このことは、２５６個の８ビット構成の小ささのメモリを使用してこの発明を採用すると、内部及び外部メモリフェッチを組み合わせた平均ルックアップ時間は、１サイクルタイムより僅かに多くなるに過ぎないことを意味する。本発明は、このような、パイプライン化されたデジタル信号プロセッサで、際立った利点を与える。２５６個の８ビット又はそれより少ない構成が、この発明の利点を与えるのに充分な方で、いくつかの場合では、少しだけ多くすると、なお一層より多くの状況に対応可能となる。例えば、図１３の、ＡＥＳ暗号化でのガロア拡大体乗算動作に対しては、ガロア拡大体の乗算値に１２８個の８ビット構成５０ａ−ｄが必要とされるとともに、Ｓ−ｂｏｘ値に他の２５６個の５０ａ−ｄが対して必要とされ、全部でローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー当たり３８４個の８ビット構成のみが必要とされる。リードソロモンの実施に対しては、５０ａ−ｄは、ｌ／ＧＦ（ｘ）値を具備する。
【００３２】
前記１つ又は複数のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーは、入力レジスタ６８ｅ（図１４）からの値を、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，ｂ，ｃ，ｄ…の全てに同時に同報通信することによって、並列にフィルされても良い。又は、それは、入力レジスタ６８ｄ（図１５）から直列に、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，ｂ，ｃ，ｄ…へ別々になされても良い。そして、同様に、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，ｂ，ｃ，ｄ…のスピルは、それらの各々から、並列に出力レジスタ１０２ｅ（図１６）にされても良く、又は、一度に１つずつ、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，ｂ，ｃ，ｄ…から直列に出力レジスタ１０２ｄ（図１７）にされても良い。
【００３３】
フィル及びスピル動作は、全体のローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ，ｂ，ｃ，ｄ上で処理する必要はなく、必要ならば、さらに時間及びリソースを節約するために、その一部に限って処理すれば良い。即ち、当該スピル動作は、条件的及び選択的であっても良い。例えば、計算ユニット２０ａ（図１８）では、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの各セクション２００，２０２，２０４…は、異なる関数グループを具備しても良い。一般的アルゴリズムの全体（図４）が実行されると、ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー５０ａ（図１８）のセクションは、必要ならば、一度に１セクションずつ、新しい情報で選択的にオーバーライトされる。しかしながら、もしそれらのセクションの１つ、例えば、２０２が、演算論理ユニット２２ａによって更新されたならば、ステータス回路２０６は、当該更新を検出するとともに、ベースレジスタ位置を記憶するとともに、当該セクション２０２の値は、それが必要とされるまで格納される、何らかの外部メモリ３０又は３６にスピルされる。もし、前記値のどれもが更新されていないならば、次いで、それは、単にオーバーライトされているとともに、やがて、元の値セットが、メモリ３０又は３６から通常のように回収される。
【００３４】
この発明による方法の簡単化された図説は、図１９に示されている。プロセッサ内の計算ユニット内で、アルゴリズム３００に従い結果の計算を開始する。次いで、前記アルゴリズムの所定の命令セットからの計算結果に関連付けられた所定の関数セットは、計算ユニット内のローカルランダムアクセスメモリアレー内に格納される（３０２）。前記計算結果は、次いで、３０４で、関連関数に直接にマップされる。
【００３５】
より詳細には、前記プロセッサは、前記計算ユニットによって共有されるレジスタファイルを具備する。全ての前記計算ユニットのローカルランダムアクセスメモリアレーは、前記レジスタファイルからの値で並列にフィルされる。前記値は、同一の値又は異なる値であっても良い。前記ローカルランダムアクセスメモリアレーは、同様に、並列に、前記レジスタファイルにスピルされても良い。前記ランダムアクセスメモリアレーの前記セクション内に格納された１つ又は複数の値が更新されたときに、計算ユニット内のステータスデバイス内で指示が生成される。次いで、前記ランダムアクセスメモリアレー内の値が、スピルされるべきか、維持されるべきかについての決定が、前記ステータスデバイスでなされても良い。前記計算結果の関連関数へのマッピングは、以前の計算結果マッピング又は１つの計算ユニットから他まで独立になされる。前記レジスタファイルからのレジスタは、前記ランダムアクセスメモリアレー及び複数の計算ユニットへのインデックスとして使用される。前記ランダムアクセスメモリアレー及び複数の計算ユニットの出力は、前記レジスタファイルの単一のレジスタに組み合わされても良い。前記レジスタファイルからの異なるレジスタが、各計算ユニット内の前記ランダムアクセスメモリアレーのインデックスとして使用されても良い。各計算ユニット内の各ランダムアクセスメモリアレーの出力は、前記レジスタファイル内の異なるレジスタ内に配置されても良い。前記ローカルランダムアクセスメモリアレーは、ルックアップテーブルを具備しても良い。前記計算ユニット内部の、前記計算結果の関連関数への直接マッピングを提供するために、前記アルゴリズムの所定の命令セットが、前記ローカルランダムアクセスメモリアレー内に格納されても良い。次いで、関連するデータセットは、前記計算ユニット内の各ローカルランダムアクセスメモリアレーに関連づけられるテーブルレジスタを使用して、各ローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の独立のアドレスに格納されても良い。
【００３６】
本発明の特定の特徴が、いくつかの図内で示され、及び他では示されていないが、これは便宜上のことに過ぎず、各特徴は、任意の又は全ての、本発明に従う他の特徴と組み合わされても良い。本明細書で使用されている語「含む」、「具備する」、「有する」及び「伴う」は、広範にかつ包括的に解釈されるべきであるとともに、いかなる物理的相互接続によっても限定されない。さらに、本出願で開示されたいかなる実施形態も、考えられる唯一の実施形態としてとらえるべきではない。
【００３７】
それに加えて、この特許出願の係属中に示されたいかなる補正も、出願された出願内に示された任意の請求項構成要素の放棄ではない。当業者は、全ての考えられる均等物を文言的に包摂する請求項を起草することを当然には期待できず、多くの均等物は補正時に予見不能であるとともに、（あるとすれば）何が放棄されるべきかについての適切な解釈の範囲外である。補正の基礎となる理由は、多くの均等物に対して、殆ど無関係であるに過ぎない。及び／又は、出願人には、補正されたいかなる請求項構成要素の特定の些細な代替物を説明するようには期待され得ない他の多くの理由がある。
【００３８】
他の実施形態は、当業者が想到可能であるとともに、特許請求の範囲内である。
【図面の簡単な説明】
【００３９】
【図１】図１は、外部メモリ及びメモリバスを伴う、従来技術のデジタル信号プロセッサ（ＤＳＰ）の簡単化されたブロック図である。
【図２】図２は、ＤＳＰ内での、命令フェッチ、データアドレス生成、データフェッチ、計算及びコミット動作を実施するのに必要とされるマルチサイクル段階を示す構造的チャートである。
【図３】図３は、この発明によるルックアップテーブル（ＬＵＴ）として埋め込まれるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーを具備する４つの計算ユニットの構造図であり、その１つをいくらか詳細に示している。
【図４】図４は、全体的アルゴリズム、及び、この発明によって実行可能な１つ又は複数の特定のアルゴリズムを各々が具備する、その構成アプリケーションの説明である。
【図５】図５は、計算結果の選択関数への計算ユニット内部での直接マッピングによってパイプラインストールを最小化する、この発明による計算ユニットの構造図である。
【図６】図６は、データ暗号化規格（ＤＥＳ／３ＤＥＳ）暗号化を実施する、共有レジスタファイルを伴う４つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの構造図である。
【図７】図７は、可変長デコード（ＶＬＤ）を実施する、共有レジスタファイルを伴う４つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの構造図である。
【図８Ａ】図８Ａは、４つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーのデータ構成がこの発明により配置される、多くのアレーの２，３個を説明する。
【図８Ｂ】図８Ｂは、５１２個の１６ビット値を取得する、４つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの他の配置の仕方を説明する。
【図９】図９は、シンボルａ，ｂ，ｃ，…のＶＬＤ値を説明するチャートである。
【図１０】図１０は、ＶＬＤ入力ストリームのｎビットの検査のためのビットＦＩＦＯレジスタの図である。
【図１１】図１１は、ＶＬＤデコード動作内の２，３の段階を説明する図である。
【図１２】図１２は、ＭＰＥＧ−２で、ＶＬＤに対する動作の９７％以上が、この発明によるパイプラインストールを最小化するローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の、それ自体の２５６個の８ビット値を使用して、計算ユニット内部で達成しうることを示す表である。
【図１３】図１３は、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）暗号化又はリードソロモン前方誤り訂正（ＦＥＣ）のためのガロア拡大体乗算に使用されうる３８４個の８ビット値のみからなる、４つのローカルな再構成可能フィル及びスピルランダムアクセスメモリアレーの図である。
【図１４】図１４は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。
【図１５】図１５は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。
【図１６】図１６は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。
【図１７】図１７は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の並列及び直列、フィル及びスピル動作の図式説明である。
【図１８】図１８は、この発明によるローカルな再構成可能フィル及びスピルランダムアクセスメモリアレー内の条件的、選択的なスピルの図式説明である。
【図１９】図１９は、この発明の方法の簡単化されたフローチャートである。
【符号の説明】
【００４０】
１０ａ  ＤＳＰ
２０ａ  計算ユニット０
２０ｂ  計算ユニット１
２０ｃ  計算ユニット２
２０ｄ  計算ユニット３
５０ａ  ＬＵＴ０
５０ｂ  ＬＵＴ１
５０ｃ  ＬＵＴ２
５０ｄ  ＬＵＴ３
５２  乗算器
５４  選択回路
５６  選択回路
５８  多項式乗算器
６０  バレルシフタ
６２  演算論理ユニット
６４  アキュムレータ
６６  多重化器
【図１】
0005478068.tif 000002
【図２】
0005478068.tif 000003
【図３】
0005478068.tif 000004
【図４】
0005478068.tif 000005
【図５】
0005478068.tif 000006
【図６】
0005478068.tif 000007
【図７】
0005478068.tif 000008
【図８Ａ】
0005478068.tif 000009
【図８Ｂ】
0005478068.tif 000010
【図９】
0005478068.tif 000011
【図１０】
0005478068.tif 000012
【図１１】
0005478068.tif 000013
【図１２】
0005478068.tif 000014
【図１３】
0005478068.tif 000015
【図１４】
0005478068.tif 000016
【図１５】
0005478068.tif 000017
【図１６】
0005478068.tif 000018
【図１７】
0005478068.tif 000019
【図１８】
0005478068.tif 000020
【図１９】
0005478068.tif 000021