(57)【要約】本発明は、命令のシーケンスに基づいて情報を処理するための処理方法及び装置に関する。ここで繰り返しサブシーケンスは命令のシーケンスにおいて検出され、処理リソースと前記繰り返しサブシーケンスとの間の割り当ては、繰り返しサブシーケンスの反復周波数を示すインデックス情報に基づいて決定される。従って自動タスク分散とのスケーラブル信号プロセッサの組み合わせがもたらされ、これによって、繰り返しサブシーケンスは、それらのエンベデッドメモリを使用していると共にそれに対応してプログラムされている外部処理ユニットに割り当てられ得るので、メモリアクセスの数が低減され得る。これにより電力も節減される。
2005524143.tif 000002
【特許請求の範囲】
【請求項１】
命令のシーケンスに基づいて情報を処理するための方法であって、
ａ）前記命令のシーケンスにおいて繰り返しサブシーケンスを検出するステップと、
ｂ）前記繰り返しサブシーケンスの反復周波数を示すインデックス情報をもたらすステップと、
ｃ）前記インデックス情報に基づいて処理リソースと前記繰り返しサブシーケンスとの間の割り当てを決定するステップと
を有する方法。  
【請求項２】
前記インデックス情報を含む命令を生成すると共に前記命令を前記命令のシーケンスに加えるステップを更に有する請求項１に記載の方法。
【請求項３】
前記インデックス情報は、他の検出された繰り返しサブシーケンスの反復レートと比較される、前記繰り返しサブシーケンスの前記反復レートの順位に比例してセットされる整数を有する請求項１又は２に記載の方法。  
【請求項４】
前記割り当ては前記整数を前記使用可能な処理リソースの数と比較することによって決定される請求項３に記載の方法。
【請求項５】
前記整数が前記使用可能な処理リソースの数よりも小さくなる全ての繰り返しサブシーケンスは、選択された処理リソースに割り当てられる請求項４に記載の方法。  
【請求項６】
前記インデックス情報が、前記繰り返しサブシーケンスにおける命令の数を示す情報を有する請求項１乃至５の何れか一項に記載の方法。  
【請求項７】
前記繰り返しサブシーケンスが所定の期間の間にもはや検出されない場合、前記繰り返しサブシーケンスを消去するための命令を生成すると共に、前記消去された繰り返しサブシーケンスが割り当てられている処理ユニットをリセットするステップを有する請求項１乃至６の何れか一項に記載の方法。  
【請求項８】
前記繰り返しサブシーケンスによって使用される処理レジスタを特定するための命令を生成すると共に、前記特定された処理レジスタをロックするための前記命令を使用するステップを更に有する請求項１乃至７の何れか一項に記載の方法。
【請求項９】
前記インデックス情報を含む前記命令が、対応する繰り返しサブシーケンスは前記処理リソースに既に割り当てられていることを示すとき、前記処理リソースを活性化させるステップを更に有する請求項２に記載の方法。
【請求項１０】
前記活性化ステップが、前記対応する繰り返しサブシーケンスに従って前記処理ソースをプログラムするか、又は前記対応する繰り返しサブシーケンスを前記処理リソースのメモリにアップロードするステップを有する請求項９に記載の方法。
【請求項１１】
外部処理ユニットの存在を中央処理ユニットに信号送出すると共に、前記信号送出に基づいて、使用可能な前記外部処理ユニットの数をカウントするステップを更に有する請求項１乃至１０の何れか一項に記載の方法。
【請求項１２】
命令のシーケンスに基づいて情報を処理するための装置であって、
ａ）前記命令のシーケンスにおいて繰り返しサブシーケンスを検出すると共に、前記繰り返しサブシーケンスの反復周波数を示すインデックス情報をもたらすための検出手段と、
ｂ）前記インデックス情報に基づいて前記繰り返しサブシーケンスを処理リソースに割り当てるためのリソース制御手段と
を有する装置。
【請求項１３】
前記繰り返しサブシーケンスが割り当てられ得る少なくとも一つの外部処理ユニットを接続するための接続手段を更に有する請求項１２に記載の装置。
【請求項１４】
前記少なくとも一つの外部処理ユニットと、対応する繰り返しサブシーケンスとの間の割り当てを示す割り当て情報を記憶するためのメモリテーブルを更に有する請求項１３に記載の装置。
【請求項１５】
前記装置はディジタル信号プロセッサであり、前記少なくとも一つの外部処理ユニットはプロセッサコア及び／又は構成可能な論理ブロックである請求項１３又は１４に記載の装置。
【請求項１６】
前記接続手段に接続される前記少なくとも一つの外部処理ユニットの数を決定するための手段を更に有する請求項１３乃至１５の何れか一項に記載の装置。
【請求項１７】
前記インデックス情報に基づいて、前記繰り返しサブシーケンスを前記少なくとも一つの外部処理ユニットのうちの使用可能な一つにマッピングするためのマッピング手段を更に有する請求項１３乃至１６の何れか一項に記載の装置。
【請求項１８】
情報を処理するために使用され得る命令の出力シーケンスをもたらすためのコンパイラであって、前記命令の出力シーケンスにおいて繰り返しサブシーケンスを検出すると共に、前記繰り返しサブシーケンスの前記反復周波数を示すインデックス情報をもたらすように構成されるコンパイラ。
【請求項１９】
前記インデックス情報を特定する命令を前記繰り返しサブシーケンスに加えるように構成される請求項１８に記載のコンパイラ。
【請求項２０】
前記繰り返しサブシーケンスに先行するように前記更なる命令が加えられる請求項１９に記載のコンパイラ。
【請求項２１】
前記繰り返しサブシーケンスはもはや使用されないことを示すための命令を前記出力シーケンスに加えるように構成される請求項１８乃至２０の何れか一項に記載のコンパイラ。
【請求項２２】
前記繰り返しサブシーケンスが完了させられるまで、少なくとも一つの処理レジスタ手段を割り当てるための命令を前記出力シーケンスに加えるように構成される請求項１８乃至２１の何れか一項に記載のコンパイラ。
【請求項２３】
繰り返しサブシーケンスの順位をそれらの反復レートに基づいて決定するように構成される請求項１８乃至２１の何れか一項に記載のコンパイラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令（ｉｎｓｔｒｕｃｔｉｏｎ）のシーケンスに基づいて情報を処理するための装置及び方法に関し、特にスケーラブルディジタル信号プロセッサ（ｓｃａｌａｂｌｅ  ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）でリソース（ｒｅｓｏｕｒｃｅ）を処理することをスケジューリングする方法に関する。
【背景技術】
【０００２】
ディジタル信号プロセッサ（ＤＳＰ）は、厳格にリアルタイムで処理するという制約（ｈａｒｄ  ｒｅａｌｔｉｍｅ  ｃｏｎｓｔｒａｉｎｔ）でタスク（ｔａｓｋ）を実行するように設計される。それ故に演算電力（ｃｏｍｐｕｔｉｎｇ  ｐｏｗｅｒ）が重視される。演算電力を決定するいくつかの要因（ファクタ）が存在する。好ましくは最も明らかな要因はクロック周波数であるが、必ずしも唯一の要因ではない。他の重要な要因は、オペレーション（すなわち命令セット）の表現電力（ｅｘｐｒｅｓｓｉｖｅ  ｐｏｗｅｒ）、オペレーションを実行するために必要とされるクロックサイクルの数、並列に実行され得るオペレーションの数、連続オペレーションの間のパイプラインの量、及び分岐（ｂｒａｎｃｈ）が実行されるときの無駄なクロックサイクルに関する犠牲（ペナルティ（ｐｅｎａｌｔｙ））等である。
【０００３】
ＤＳＰプロセッサにおいて、性能を向上させるための基本概念は命令レベルの並列処理（ｐａｒａｌｌｅｌｉｓｍ）を使用することにある。本願において、単一のクロックサイクルでプロセッサコアに供給される完全なプログラム情報として命令が参照されるであろう。従って単一の命令が、同じクロックサイクルにおける並列のいくつかのオペレーションの実行を含み得る。プロセッサにおけるオペレーションの並行実行（ｃｏｎｃｕｒｒｅｎｔ  ｅｘｃｕｒｔｉｏｎ）を可能にするため、三つの構造的な手段がハードウエアにおいてとられ得る。これらは、オーバラップ実行（ｏｖｅｒｌａｐｐｅｄ  ｅｘｅｃｕｔｉｏｎ）、機能ユニットパイプライン（ｆｕｎｃｔｉｏｎａｌ  ｕｎｉｔ  ｐｉｐｅｌｉｎｉｎｇ）、及び複数機能ユニット（ｍｕｌｔｉｐｌｅ  ｆｕｎｃｔｉｏｎａｌ  ｕｎｉｔ）である。オーバラップ実行は、プロセッサが同時に複数命令（ｍｕｌｔｉｐｌｅ  ｉｎｓｔｒｕｃｔｉｏｎ）で動作していること、すなわちフェッチ（命令取り出し（ｆｅｔｃｈ））、デコード（解読（ｄｅｃｏｄｅ））、及び実行（ｅｘｅｃｕｔｅ）の各々異なるフェーズ（段階）において複数命令が活性化させられていることを意味する。
【０００４】
命令レベルの並列処理を使用するために、オペレーション間の依存性が決定されなければならない。当該依存性を考慮すると、オペレーションは、ある特定の機能ユニット上においてある特定の時点でスケジューリングされなければならず、その結果は蓄積（ｄｅｐｏｓｉｔｅ）され得るレジスタが割り当てられなければならない。命令レベル並列処理を使用することは、プログラマ、コンパイラ（ｃｏｍｐｉｌｅｒ）、又はランタイムハードウエア（ｒｕｎｔｉｍｅ  ｈａｒｄｗａｒｅ）の何れかのタスクとなる。とられる構造的な手法に依存して、前記三つの手法のうちの一つに重点がおかれる。
【０００５】
従来のＤＳＰにおいて、現在の状態（ｃｕｒｒｅｎｔ  ｓｔａｔｅ）に依存して、シーケンスにおける一つの位置から他の位置に飛ぶ（ｊｕｍｐ）機能を伴うシーケンスで命令が実行される。この機能により、所与のアプリケーションが、一度実行される命令と一度よりも多く実行される命令又は命令の短いシーケンスとから構成される状態がもたらされる。アプリケーションが、所与のＤＳＰ上の自身の実行の間、モニタされる場合、プロファイルが生成され得る。ここでアプリケーションの異なる部分は異なる反復インデックス（ｒｅｐｅｔｉｔｉｏｎ  ｉｎｄｅｘ）ｒｉで与えられる。
【０００６】
図１は、命令のシーケンスが一連の水平バー（ｂａｒ）によって示されている概略図を示す。各々のバーは単一の命令に対応する。更に点線の枠内に含まれるそれらの命令は、命令の繰り返しサブシーケンス（ｒｅｐｅａｔｅｄ  ｓｕｂ−ｓｅｑｕｅｎｃｅ）を形成する。各々の繰り返しサブシーケンスにおいて示されている反復インデックスｒｉは、反復レートを表す。ここでインデックスｒｉ＝０は、最も頻繁に実行されるサブシーケンスに対応し、インデックス無しは、命令がたった一度だけ実行されることを意味する。従って、図１に示されている命令のシーケンスにおいて、中央部分に示されている繰り返しサブシーケンスは、最も頻繁に実行されるサブシーケンスとなり、上部繰り返しサブシーケンスは、２番目に最も頻繁に実行されるサブシーケンスとなり、下部繰り返しサブシーケンスは、３番目に最も頻繁に実行されるサブシーケンスとなる。
【０００７】
しかしながら当該命令のシーケンスがＤＳＰの単一のプロセッサコアによって実行される場合、命令メモリは、同じサブシーケンスをフェッチするために複数回アクセスされ、このことにより処理が遅延させられると共に動作性能が低減させられる。
【０００８】
米国特許第ＵＳ５７９６９８９号公報は、プロセッサによって引き受けられる命令の実行を最適化するためのシステムを開示している。特に命令コードシーケンスが再編成（ｒｅｐｒｇａｎｉｓｅ）されるので、最も頻繁に発生する命令をエミュレート（ｅｍｕｌａｔｅ）するために使用される固有コード（ｎａｔｉｖｅ  ｃｏｄｅ）は互いにグループ化される。その結果、頻繁に発生するエミュレート命令のための固有コードが、メモリからキャッシュにロードされるとき、キャッシュが、後続するエミュレート命令のための固有コードを含む可能性は最大限化される。従って、最も頻繁に受信される命令が、容易にアクセス可能な態様で記憶され、処理レイテンシ（ｐｒｏｃｅｓｓｉｎｇ  ｌａｔｅｎｃｙ）は低減される。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、処理効率が更に改善され得る、命令のシーケンスに基づいて情報を処理するための装置及び方法を提供することにある。
【課題を解決するための手段】
【００１０】
当該目的は、請求項１に記載の方法、請求項１２に記載の装置、及び請求項１８に記載のコンパイラによって達成される。
【００１１】
従って、繰り返しサブシーケンスの反復レートが特定されるという事実のために、低い反復レートで残存するシーケンスがコアプロセッサによって従来態様で実行される一方、高い反復シーケンスを消費するリソースは外部処理ユニットに委ねられ得る（ｄｅｆｅｒ）。その結果、動作特性は外部処理リソースを加えることによって改善され得る。更に、外部処理ユニットの種類及び数が個々に選択されてもよいという事実のために、柔軟な処理システムがもたらされ得る。最も多い反復サブシーケンス（ｒｅｐｅｔｉｔｉｖｅ  ｓｕｂ−ｓｅｑｕｅｎｃｅ）は外部処理ユニットに委託されるので、命令メモリへのアクセスは低減され、その結果システム電力要求が軽減される。
【００１２】
外部処理ユニットはプロセッサコアに自身の存在（ａｖａｉｌａｂｉｌｉｔｙ）の信号を送出し得る信号送出機能部（ｓｉｇｎａｌｌｉｎｇ  ｆｕｎｃｔｉｏｎ）がもたらされる場合、プラグアンドプレイ（ｐｌｕｇ‘ｎ’ｐｌａｙ）動作モードが確立され得る。当該モードにおいて、外部処理ユニットは選択的に加えられ、自動的にタスク分散（ｔａｓｋ  ｄｉｓｔｒｉｂｕｔｉｏｎ）にあるとみなされる。異なる外部リソースと自己拡張型（ｓｅｌｆ−ｅｘｐａｎｄａｂｌｅ）プロセッサ自身（コアプロセッサ）との間の実行オーバラップのために、コアプロセッサ自体の動作性能に対応する最小限の動作性能が常に保証される一方、増大された動作性能がもたらされ得る。装置の柔軟性のために、現在及び将来のＤＳＰ世代との互換性（ｃｏｍｐａｔｉｂｉｌｉｔｙ）が想定され得る。
【００１３】
本発明の有利な更なる展開は、従属請求項において規定される。
【００１４】
好ましくは、インデックス情報を含む命令が生成され得ると共に命令のシーケンスに加えられ得る。インデックス情報は、他の検出された繰り返しサブシーケンスの反復レートと比較される、繰り返しサブシーケンスの反復レートの順位（ｒａｎｋｉｎｇ）に比例してセットされる整数を有していてもよい。特にアプリケーションが整数を、使用可能なソースの数と比較することによって決定されてもよい。それから前記整数が、使用可能な処理リソースの数よりも小さな全ての繰り返しサブシーケンスは、選択された処理リソースに割り当てられる。
【００１５】
更にインデックス情報が、繰り返しシーケンスにおける命令の数を示す情報を有していてもよい。
【００１６】
繰り返しサブシーケンスが所定の期間の間、もはや検出されない場合、繰り返しサブシーケンスを消去するための命令は生成され、消去された繰り返しサブシーケンスが割り当てられている処理ユニットはリセットされる。
【００１７】
更に繰り返しサブシーケンスによって使用される処理レジスタを特定するための命令が生成されてもよい。ここで、特定された処理レジスタをロック（ｌｏｃｋ）するための命令が使用される。
【００１８】
インデックス情報を含む命令が、対応する繰り返しサブシーケンスは処理リソースに既に割り当てられていることを示すとき、処理リソースが活性化されてもよい。この場合、活性化ステップが、対応する繰り返しサブシーケンスに従って他の処理ソースをプログラムするステップを有していてもよく、又は対応する繰り返しサブシーケンスを処理リソースのメモリにアップロード（ｕｐｌｏａｄ）するステップを有していてもよい。
【００１９】
外部処理ユニットの存在の信号が中央処理ユニット（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）に送出されてもよく、使用可能な外部処理ユニットの数が前記信号送出に基づいてカウントされてもよい。
【００２０】
処理装置において接続手段は、繰り返しサブシーケンスが割り当てられ得る少なくとも一つの外部処理ユニットを接続するためにもたらされてもよい。更に少なくとも一つの外部処理ユニットと、対応する繰り返しサブシーケンスとの間の割り当てを示す割り当て情報を記憶するためにメモリテーブルがもたらされてもよい。外部処理ユニットは、処理コア及び／又は構成可能な論理ブロック（ｃｏｎｆｉｇｕｒａｂｌｅ  ｌｏｇｉｃ  ｂｌｏｃｋ）を有していてもよい。
【００２１】
更にインデックス情報に基づいて、繰り返しサブシーケンスを少なくとも一つの外部処理ユニットのうちの使用可能な一つにマッピングするためにマッピング手段がもたらされてもよい。
【００２２】
インデックス情報を特定する命令を繰り返しサブシーケンスに加えるためにコンパイラがもたらされてもよい。繰り返しサブシーケンスに先行するように更なる命令が加えられてもよい。
【００２３】
更に、繰り返しサブシーケンスはもはや使用されないことを示す命令、及び／又は繰り返しサブシーケンスによって使用される処理レジスタを特定するための命令を加えるためにコンパイラが構成されてもよい。更に、繰り返しサブシーケンスの順位をそれらの反復レートに基づいて決定するためにコンパイラが構成されてもよい。
【００２４】
以下、本発明は添付図面を参照して好ましい実施例に基づいてより詳細に記載されるであろう。
【発明を実施するための最良の形態】
【００２５】
好ましい実施例が、この場合図２に示されている自己拡張型ＤＳＰ（Ｓｅ−ＤＳＰ）に基づいて記載されるであろう。
【００２６】
図２によればＳｅ−ＤＳＰ１０は、処理リソース２０乃至２３が接続され得る複数のポートを有する。本願においてリソースは、再構成可能なコア（ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  ｃｏｒｅ）、又はエンベデッドメモリ（ｅｍｂｅｄｄｅｄ  ｍｅｍｏｒｙ）を備える小さな処理コア（ｓｍａｌｌ  ｐｒｏｃｅｓｓｉｎｇ  ｃｏｒｅ）の何れかとなる。この構成のために、Ｓｅ−ＤＳＰ１０は、そのときリソースの最大限まで使用可能な処理リソース２０乃至２３に依存して自身の最適な形態でアプリケーションを実行し得る。図２の場合、構成可能な論理ブロック、すなわちフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒｅｙ（ＦＰＧＡ））又は自身のメモリを備えるプロセッサコアであってもよい、四つまでの更なる処理リソース又はユニットが接続され得るか、又は付けられ得る。
【００２７】
図３は、図１の繰り返しシーケンスを、Ｓｅ−ＤＳＰ１０における使用可能な処理リソース又はユニット（共通ユニット（Ｃｏ−ｕｎｉｔ））にマッピングするためのマッピング機能部の簡略図を示す。好ましい実施例によれば、Ｓｅ−ＤＳＰ１０は使用可能な更なる処理ユニット２０乃至２３上において、より高い反復レートで繰り返しシーケンス又は反復シーケンスをマッピングし得るメカニズムがもたらされる。それによって、このような繰り返しサブシーケンスがＳｅ−ＤＳＰ１０において検出されるとすぐに、対応する処理は処理ユニット２０乃至２３のうちの所定の一つに渡されるか、又は割り当てられるので、Ｓｅ−ＤＳＰ１０が、割り当てられた繰り返しサブシーケンスに後続するその後のシーケンス命令に基づいて処理し続けてもよい。その結果Ｓｅ−ＤＳＰ１０が、残存する、より少ない反復命令又はサブシーケンスの処理を継続させる間、繰り返しサブシーケンスは並行して処理され得る。
【００２８】
図４は、元のプログラムコードがコンパイラ３０においてコンパイルされる、Ｓｅ−ＤＳＰ１０における処理の概略ブロック図を示す。コンパイラは、命令の繰り返しシーケンス、すなわちループ又は関数呼び出し（ｆｕｎｃｔｉｏｎ  ｃａｌｌ）を特定すると共にコンパイル時にこれらのシーケンス又はサブシーケンスの順位をそれらの反復レートに基づいて決定するように構成される。繰り返しサブシーケンスの信号送出は少なくとも一つの更なる命令に基づいていてもよい。それによって、繰り返しサブシーケンスについての情報が実行時にＳｅ−ＤＳＰ１０に通知され得る。
【００２９】
更にＳｅ−ＤＳＰ１０が、いくつの更なる外部処理ユニット２０乃至２ｎは付けられているかを決定し得るメカニズムがもたらされる。更にＳｅ−ＤＳＰ１０は使用可能な処理ユニット２０乃至２ｎ上においてより高い反復レートで、検出された繰り返しサブシーケンスをマッピングし得る他のメカニズムがもたらされる。
【００３０】
これを実現するために、Ｓｅ−ＤＳＰ１０は更なる命令、例えば呼び出された
【数１】
2005524143.tif 000003
と、内部メモリ又はテーブル４０とを備えている。更なる命令が、コンパイラ３０によって命令の各々の反復シーケンスを区切る（ｄｅｌｉｍｉｔ）ために使用される。当該命令は反復インデックスｒｉ及びシーケンスにおける命令の数をもたらす。好ましい実施例によれば、ゼロが最も高い反復レートを備えるサブシーケンスに対するインデックスとなる場合、反復インデックスｒｉはゼロよりも大きな数又はゼロに等しい数となる。それ故に、更なるリソースの数ｎｒが付けられている場合、ｎｒよりも小さな反復インデックスｒｉを備える全てのサブシーケンスは更なるリソース、例えば処理ユニット２０乃至２ｎにマッピングされ得る。
【００３１】
内部メモリ又はテーブル４０は、繰り返しサブシーケンスについての情報を記憶するために使用される。テーブルが可能な処理ユニット毎に一つのエントリ（項目（ｅｎｔｒｙ））を有していてもよい。繰り返しサブシーケンスが更なる処理ユニットにマッピングされる度に、対応するエントリはセットされる。すなわち各々の処理ユニットのポート名がテーブル４０に書き込まれる。テーブル４０は反復インデックスｒｉによってインデックスされる。
【００３２】
従って、汎用ＤＳＰは、使用可能な処理リソースに依存して自身の最適な形態でアプリケーションを実行し得る。汎用ＤＳＰのアーキテクチャは、処理リソースが接続され得る複数のポートによって拡張される。ここで処理リソースは、エンベデッドメモリを備える小さな処理コア若しくは構成可能なコア、又はプログラマブル論理ユニットの何れかに対応する。更に内部テーブル４０及び少なくとも一つの更なる命令が、一度よりも多く実行される命令のシーケンス及び自身の反復インデックスを特定するために必要とされる。ソフトウエア側から、コンパイラは反復インデックスｒｉを生成するように構成される。反復インデックスｒｉの生成は、最新のＶＬＩＷ（超長命令語（Ｖｅｒｙ  Ｌａｒｇｅ  Ｉｎｓｔｒｕｃｔｉｏｎａｌ  Ｗｏｒｄ））コンパイラにおいてもたらされる統計データ（ｓｔａｔｉｓｔｉｃｓ）と同様の統計データの生成に基づいていてもよい。
【００３３】
従って好ましい実施例によれば、より高い反復レートを備える命令の繰り返しシーケンスは使用可能な接続処理リソースに委ねられ、残存する命令コードはＤＳＰによって従来態様で実行される。
【００３４】
好ましい実施例によれば、二つの更なる命令が加えられてもよい。第一の廃棄命令（ｄｉｓｃａｒｄ  ｉｎｓｔｒｕｃｔｉｏｎ）は、命令自身によって特定される反復インデックスｒｉを備える繰り返しサブシーケンスを消去することをＳｅ−ＤＳＰ１０に知らせるために使用されてもよい。この場合、この繰り返しサブシーケンスがマッピングされている処理ユニットはリセットされる。このことは、当該ユニットが自身の初期状態又はリセット状態にもたらされることを意味する。それから、より低い反復レート、すなわちより高い反復インデックスｒｉを備える繰り返しサブシーケンスが、このリセット処理ユニット上にマッピングされ得る。
【００３５】
更に第二のマスク命令（ｍａｓｋ  ｉｎｓｔｒｕｃｔｉｏｎ）が、Ｓｅ−ＤＳＰ１０の内部レジスタを特定するために使用され得る。当該命令は各々の繰り返しサブシーケンスによって使用されるであろう。このマスク命令は反復インデックス命令に後続する。このマスク命令によって、特定されたレジスタが効果的にロックされる。すなわちそれらの使用は、対応する繰り返しサブシーケンスが完了されるまで可能にならない。このように繰り返しサブシーケンスの実行は、アプリケーションが、特定されたレジスタのうちの一つにアクセスしようとする時点までＳｅ−ＤＳＰ１０を停止（ｓｔａｌｌ）させないであろう。従ってレジスタロッキング（ｒｅｇｉｓｔｅｒ  ｌｏｃｋｉｎｇ）により、繰り返しサブシーケンスの実行は、残存する処理リソースをロック又は停止させないという利点がもたらされる。それによって、繰り返し及び非繰り返し命令の並行実行が可能になる。一旦繰り返しサブシーケンスがマッピングされると共にＳｅ−ＤＳＰ１０の内部テーブル４０に記憶されると、Ｓｅ−ＤＳＰ１０によって再度フェッチされないであろう。実際既に内部テーブル４０に記憶又は格納（ｒｅｇｉｓｔｅｒ）されている、マッピングされたサブシーケンスのための反復インデックス命令が検出されると、分岐動作（ｂｒａｎｃｈ  ｏｐｅｒａｔｉｏｎ）が開始され、マッピングされた処理ユニットは活性化される。それ故に命令メモリ（図４において図示略）に対するアクセスが低減される。
【００３６】
使用可能な更なる処理ユニット２０乃至２ｎの数は、例えばリセット動作の直後にＳｅ−ＤＳＰ１０によって決定される。例えば各々の外部処理ユニット２０乃至２ｎは、簡単な信号、例えば１ビット信号によって自身の存在の信号を送出してもよく、Ｓｅ−ＤＳＰ１０は、更なる処理ユニット２０乃至２ｎから受信される信号を単純にカウントしてもよい。更なるユニットがもたらされない場合、Ｓｅ−ＤＳＰ１０は従来のＤＳＰとして動作する。
【００３７】
処理ユニット２０乃至２ｎに対する繰り返しサブシーケンスのマッピングは、各々の処理ユニットの種類又は特質に依存している。ＦＰＧＡの場合、マッピングは、対応してＦＰＧＡをプログラムすることによって行われてもよい。メモリを備える処理コアの場合、マッピングは繰り返しサブシーケンスを処理コアのメモリにアップロードすることによって行われてもよい。処理ユニット２０乃至２ｎは何れかの従来態様でＳｅ−ＤＳＰ１０のレジスタファイルにアクセスしている。当該ユニットはＳｅ−ＤＳＰ１０と同じ集積回路上に構成されてもよく、外部回路上にもたらされてもよい。
【００３８】
図４は、Ｓｅ−ＤＳＰ１０の処理動作を示す概略的な流れ図を示す。
【００３９】
第一のステップＳ１００において、Ｓｅ−ＤＳＰ１０のコアは、何れかの外部リソース、例えば更なる処理ユニット２０乃至２ｎが使用可能かどうかを検出する。これは、外部処理リソースから受信される、対応する通知信号（ｎｏｔｉｆｉｃａｔｉｏｎ  ｓｉｇｎａｌ）をカウントすることによって実現され得る。リソースが使用可能である場合、外部処理ユニット２０乃至２ｎの数ｎｒはステップＳ１０１において内部テーブル４０に記憶され、外部処理ユニット２０乃至２ｎはステップＳ１０２においてそれらのリセット状態にもたらされる。それからアプリケーションが開始され、ステップＳ１０３において第一の命令が命令メモリから読み出される。外部処理リソースがステップＳ１００において検出されない場合、Ｓｅ−ＤＳＰ１０は、繰り返しサブシーケンスに対するいかなる照合機能（マッチング機能（ｍａｔｃｈｉｎｇ  ｆｕｎｃｔｉｏｎ））も有さない従来のＤＳＰとして動作する。
【００４０】
ステップＳ１０４において読み出し命令は、既に内部テーブル４０に記憶されている、割り当てられたシーケンスを示すかどうかが確認される。そうなる場合、対応する処理リソース、例えば処理ユニットはステップＳ１０８において活性化され、プロシージャはサブシーケンス命令を読み出すためにステップ１０３に戻される。読み出し命令が、ステップＳ１０４において割り当てられたシーケンスを示さない場合、読み出し命令はステップＳ１０５において反復又は繰り返しサブシーケンスを示すかどうかが確認される。そうなる場合、対応する反復インデックス命令によって示される反復インデックスｒｉは、使用可能な処理リソース２１乃至２ｎの数ｎｒよりも小さいかどうかがステップＳ１０６において確認される。そうなる場合、各々の繰り返しサブシーケンスは、ステップＳ１０７において使用可能な処理リソースに割り当てられ、選択された処理リソースはステップＳ１０８において活性化される。更に対応するエントリが、選択された処理リソースを特定する内部テーブル４０に加えられる。ステップＳ１０７における割り当ては、繰り返しサブシーケンスを処理リソースの内部メモリに記憶することによって、又は処理リソースを構成するために繰り返しサブシーケンスを使用することによって行われてもよい。読み出し命令がいかなる繰り返しサブシーケンスも示さない場合、又は反復インデックスｒｉが使用可能な処理リソースの数よりも小さくならない場合、プロシージャは、読み出し命令が従来態様でＳｅ−ＤＳＰ１０において実行されるステップＳ１０９に先行する。それからフローは、後続する命令を読み出すためにステップＳ１０３に戻る。Ｓｅ−ＤＳＰ１０のコアは、繰り返されたサブシーケンス又は割り当てられたサブシーケンスに後続するその後の命令を、このようなサブシーケンスの一つの結果又は複数の結果がその後の命令のために必要とされるまで実行し始める。
【００４１】
従って、サブシーケンス又はタスクは外部処理ユニット、例えばＳｅ−ＤＳＰ１０に使用可能な共通プロセッサ（ｃｏ−ｐｒｏｃｅｓｓｏｒ）に柔軟に割り当てられ得る。その結果、外部処理ユニットがそれらのエンベデッドメモリを使用していると共にそれに対応してプログラムされているので、命令メモリに対するメモリアクセスは低減され得る。これにより電力も節減される。
【００４２】
本発明が上記の好ましい実施例に限定されず、情報が命令のシーケンスに基づいて処理されるアーキテクチャを処理するいかなるスケーラブルデータにおいても使用され得ることは注意されるべきである。好ましい実施例は請求項の範囲内でこのように変更されてもよい。
【図面の簡単な説明】
【００４３】
【図１】繰り返しサブシーケンスを有する命令のシーケンスの概略図を示す。
【図２】本発明が実現され得る、自己拡張型ディジタル信号プロセッサの簡略図を示す。
【図３】本発明の好ましい実施例による、使用可能な外部処理ユニットへの、繰り返しサブシーケンスのマッピングを示す簡略化されたブロック図を示す。
【図４】好ましい実施例による、処理装置の概略図を示す。
【図５】好ましい実施例による、処理方法の流れ図を示す。
【図１】
2005524143.tif 000004
【図２】
2005524143.tif 000005
【図３】
2005524143.tif 000006
【図４】
2005524143.tif 000007
【図５】
2005524143.tif 000008
【国際調査報告】
2005524143.tif 000009
2005524143.tif 000010