(57)【要約】      （修正有）【課題】システムの固定幅サイズ制限内で送出された単一の命令でもって複数の互換性のある命令を呼び出す。【解決手段】多重実行システム内で固定幅命令を実行するための装置は、メモリから命令をフェッチする手段（２４）と、各々のフェッチ命令を順番にデコードするためのデコーダ（２６）とを備え、各々の命令がテンプレートテーブル（２８）から局所格納命令をフェッチするための部分を含むか否かが決定される。その部分を含む場合、局所格納命令はフェッチされ、デコードされた局所格納命令部が複数の処理ユニット上で実行される（３０）。【選択図】図４
2011044163.tif 000002
【特許請求の範囲】
【請求項１】
メモリから命令をフェッチするための手段と、
各々のフェッチ命令を順番にプリデコードするための手段と、
各々のプリデコード命令が、局所格納手段から局所格納命令部をフェッチするための部分を含む否かを決定するための手段と、
前記決定に基づいて、前記局所格納命令部をフェッチするための手段と、
前記フェッチされた局所格納命令を、複数の実行ユニットでの実行のためにスケジュール設定し、デコードするための手段と、
前記プリデコード命令及びフェッチされデコードされた局所格納命令部を、複数の処理ユニット上で実行させるための手段と、
を備えることを特徴とする多重処理ユニットシステム内で固定幅命令を実行するための装置。
【請求項２】
フェッチ命令中に含まれるデータに応答して、追加局所命令を前記局所格納手段に格納するための手段を含むことを特徴とする請求項１に記載の装置。
【請求項３】
前記フェッチ命令中に含まれる前記データは、前記追加局所命令を書き込むべき前記局所格納手段内の場所を定義するデータを含むことを特徴とする請求項２に記載の装置。
【請求項４】
前記局所格納命令は、実行される操作形式を定義する少なくとも機能部分を有することを特徴とする請求項１、２、又は３のいずれか１項に記載の装置。
【請求項５】
多重処理ユニットシステム内で固定幅命令を実行するための方法であって、
メモリから命令をフェッチする段階と、
各々のフェッチ命令を順番にプリデコードする段階と、
各々のプリデコード命令が、局所格納手段から局所格納命令部をフェッチするための部分を含むか否かを決定する段階と、
前記決定に基づいて前記局所格納命令部をフェッチする段階と、
前記フェッチされた局所格納命令を、複数の実行ユニットでの実行のためにスケジュール設定し、デコードする段階と、
前記デコード命令及びフェッチされデコードされた局所格納命令部を、複数の処理ユニット上で実行させる段階と、
を含むことを特徴とする方法。
【請求項６】
フェッチ命令中に含まれるデータに応答して追加局所命令を格納する段階を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記フェッチ命令中に含まれる前記データは、前記追加局所命令を書き込むべき局所格納手段内の場所を定義するデータを含むことを特徴とする請求項６に記載の装置。
【請求項８】
前記局所格納命令は、実行される操作形式を定義する少なくとも機能部分を有することを特徴とする請求項５、６、又は７のいずれか１項に記載の方法。
【請求項９】
前記プリデコード手段は、前記フェッチされた命令のためのリソース要求を定義する出力を与えるとともに、該リソース要求をリソース可能性と比較する手段、及び、当該比較の結果に基づいて前記スケジュール設定する手段を実行可能とする手段をさらに備えている、請求項１に記載の装置。
【請求項１０】
前記追加局所命令を格納する手段はプログラム実行中に動作可能であり、それにより、前記局所格納命令を格納する手段の内容は、プログラム実行中に動的に変更可能である、請求項２に記載の装置。
【請求項１１】
リソース可能性に対してリソース要求が合致するかどうかをチェックする段階と、前記チェックの結果に基づいて命令のスケジュール設定を実行可能とする段階をさらに含む請求項５に記載の方法。
【請求項１２】
前記フェッチ命令中に含まれるデータに応答して追加局所命令を格納する段階はプログラム実行中に動作可能であり、それにより、前記局所格納命令はプログラム実行中に動的に変更可能である、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、固定幅形式のエンコード命令に関し、多重実行ユニット又はパイプラインを含む処理システムにおいて有用である。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
例えば、中央処理ユニット装置又はデジタル信号処理装置等の処理ユニットの殆ど全ての形態において、システムの操作を制御する命令は、命令の幅として知られる固定サイズ制限をもつ。この制限は、各々の命令をどれだけ記述できるかを規制する。特に、多重処理ユニット又はパイプラインを有する処理システムは、すべての命令の固定幅制限内の処理ユニット又はパイプラインのなかで、アクティビティを有効に指定することができない。このことは、システムの最大処理能力が常時十分に利用されてはいないことを意味する。１つの選択肢として、例えば、非常に長い命令語を使用して命令幅を広げることが考えられる。しかしながら、このことはフェッチ及びデコード処理の命令を遅くし、命令を転送するのにより幅の広い並列バスが必要となる。
【課題を解決するための手段】
【０００３】
本発明の好適な実施形態は、本出願人の国際特許出願番号Ｗ０９７／３８３７２に記載されているようなシステムと共に使用でき、その開示内容は引用により本明細書に組み込まれているものとする。前記出願には、一又は二以上のデータ処理装置によって、多くの異なる処理命令スレッドを管理する処理システムが開示されている。
【０００４】
本発明の好適な実施形態は、局所格納命令又はテンプレート命令を使用して、これら既存システムに関する問題を解決するものである。通常、局所格納命令又はテンプレート命令は、個別に格納され、その後、単一の正規命令でもって所定の処理ユニットに対して呼び出すことができる命令の機能部分である。これにより、システムの固定幅サイズ制限内で送出された単一の命令でもって複数の互換性のある命令を呼び出すことができる。テンプレート命令を呼び出すために使用される単一命令は、種々のパラメータで送出され、結果的に、そうしないと要求されることになる、個別の多くの命令がもつ意味の多くの可変性を持ち続ける。例えば、テンプレート命令はデータをメモリから読み出し、このデータを処理ユニットのメモリレジスタに入力するためのものである。メモリ読み出し操作は、読み出したデータを処理ユニットのレジスタに書き込むように命令する機能と共に、テンプレート命令に格納される。テンプレートを呼び出す単一の命令は、そのテンプレート機能によって、アクセスすべきテンプレート、及び使用すべきレジスタを指定する。つまり、メモリからの関連データを読み出して、呼び出し命令に指定されているレジスタに書き込むことができる。従って、呼び出し命令は、各々のレジスタに関するメモリ読み出し命令を指定することではなく、テンプレート呼び出し機能と、必須のレジスタとを含むことだけを必要とする。従って、メモリから個別の処理ユニットに関連する多くのレジスタへのデータの読み出しは、別の方法で行われた場合よりも少ない固定幅命令を使用して実行できる。
【０００５】
本発明の好適な実施形態は、添付の図面を参照して以下に例示的に詳細に説明される。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態に使用できる形式でのマルチスレッド多重プロセッサシステムの基本アーキテクチャのブロック図である。
【図２】図１のメディア制御コアの命令スケジューラと、メモリ読み出し／書き込み制御装置とを概略的に示す。
【図３】図２の装置によってスケジュール設定できる形式の標準固定幅命令を示す。
【図４】テンプレート命令スケジュールの制御フローを示す。
【図５】テンプレート選択ビットと、テンプレート定義ビットを含むテンプレート定義命令とを有する図１に示す形式の正規命令を示す。
【図６】本発明の実施形態における制御フローのフローチャートを示す。
【図７】図２の命令スケジューラのハードウエアのブロック図である。
【発明を実施するための形態】
【０００７】
図１のブロック図において、本システムの主要部は、細分化されたマルチスレッドの多重プロセッサを有するメディア制御コア（ＭＣＣ）２である。これは、例えば、ビデオソース、オーディオソース、ビデオ出力、オーディオ出力、データソース、記憶装置等のリアルタイムデータ入出力装置４に接続可能な複数の入力部及び出力部を備える。最も単純な実施例として、単一の入力部と単一の出力部だけを設けることもできる。ＭＭＣ２にはまた、複数のデータ処理ユニット６が接続されている。各々のデータ処理ユニット６は、データパイプライン１０によってデータ処理を制御するデータ処理コア８を備える。コア８は、マイクロ命令がＭＣＣ２の命令スケジューラへ供給された後に、パイプライン１０に関するマイクロ命令シーケンスをデコードする。
【０００８】
ＭＭＣ２には、さらに複数バンク式キャッシュメモリ１２が接続されており、データは、ＭＣＣ２及びデータ処理ユニット６によって、複数バンク式キャッシュメモリ１２から検索でき、更にそこに書き込むことができる。これは入力データ及び他の内部で発生したデータに基づいてデータ処理コアによって実行されるデータ及び命令を一時的に記憶できる装置を含む。これらの種々の命令セットは、アクティブになるとスレッドを構成する。
【０００９】
図２は、メディア制御コア２の内部アーキテクチャの一部を示す。本アーキテクチャは、命令スケジューラ１６とメモリ読み出し／書き込みユニット１８とを備える。命令は、メモリ読み出し／書き込みユニットによってスケジューラに与えられる。これらの命令は、以下に図３に関連して説明するように、ｎビットの固定幅を有する。命令スケジューラはデータ処理ユニット６へ命令を送る。本実施例において、図示のデータ処理ユニットは、２つの汎用データ処理ユニットと２つのデジタル信号処理ユニットである。プロセッサのマルチスレッド特性により、命令セットには、いくつかの処理ユニットを同時に有効に利用できる命令が組み込まれており、例えば、両方のＤＳＰユニットは同時に使用できる。処理ユニット６に関する命令は、命令バス２０を経由して転送される。
【００１０】
図３において、本実施例にて命令スケジューラへ供給される各々の命令は、種々の方法で操作コード（ｏｐｃｏｄｅ）フィールドに細分化されている命令ビットを有する同一固定幅をもつことが理解できる。一般に、これらの操作コードフィールドは、命令の機能性、又はデータ処理コア内に収納され、その機能が適用されるレジスタを選択する。つまり、図３において、命令は、一般に３つの個別の処理ユニット６の各々に常駐する３つのレジスタと、これら全てのレジスタに適用される単一の機能を指定する。特定の実施例において、命令ビットの一部のビットは予備として指定される。全ての場合ではないが、多くの場合は、別の機能を選択できるように割当予備ビットを有することが好ましい。
【００１１】
追加の処理ユニットを使用した場合には、これら全てに対して同時に命令を与えることは不可能であり、結果的に、最大処理能力以下の能力を使用することになることが理解されるだろう。
【００１２】
従って、我々は、命令の帯域幅は、テンプレート命令として知られているものを使用して同一固定幅の命令バス及びクロック周波数を使用して拡大できることを認識した。これらは、メモリ操作においてアドレス指定されるメモリ位置又はアクセスされるレジスタを指定することなく、メモリ操作等の実行される全ての操作要素の特性を指定する局所格納命令である。命令は、テンプレートテーブルに格納されるが、図４は命令スケジューラ内への命令の配置方法に関する基本ブロック図を示す。本フローチャートにおいて、２４はメモリからの命令フェッチを示す。２６において命令はデコードされ、デコーダがその命令がテンプレート命令を呼び出す命令であることを検出すると、テンプレート命令がテンプレートテーブルから読み込まれる。次に、３０において命令が実行され、プログラムは命令フェッチブロック２４へ戻る。
【００１３】
図５Ａ及び５Ｂを参照して以下にテンプレート命令を詳細に説明する。図５Ａは、３つのレジスタ選択子と１つの機能選択子とを有する正規命令を示す。予備ビット中の１つのビットは０に設定されており、この特定のビットは、テンプレート命令を正規命令として定義するものとして、命令デコーダによって認識される。
【００１４】
図５Ｂは、テンプレート定義命令を示す。テンプレート定義命令はテンプレート命令をテンプレートテーブル２８に格納するために送られる命令である。正規命令において０に設定されているビットは、ここでは１に設定されており、命令デコーダは、このビットをテンプレート定義命令として認識し、データをテンプレートテーブル２８に送る。本実施例のテンプレート定義命令は、メモリ操作機能選択子を有する。メモリ操作機能選択子は、操作がメモリ読み出し又はメモリ書き込みか否か、転送サイズ、及びアドレス生成情報を定義する。アドレス生成は、通常、ベースレジスタとオフセットレジスタ、又はベースレジスタと即時数（レジスタから来るものとは対照的に命令によって定義される小さな数）の形態とすることができる。また、メモリ操作は、どの処理ユニットを使用するかを指定できる。従って、メモリアドレス生成は、その処理ユニットによって実行されることになる。テンプレート選択子は、テンプレートテーブル２８内のテンプレート命令が書き込まれる場所を定義する。機能選択子は、テンプレート呼び出し命令によってテンプレート命令が呼び出される場合に、処理ユニット内で使用される機能を選択する。これは「加算」、「乗算」、「シフト」等であってもよい。従って、メモリ操作の全ての要素は、正規命令において使用されるビットの代わりに、テンプレート定義において指定される。
【００１５】
図６は、テンプレート呼び出し命令を示す。これは基本的に図５に示す正規命令と同じ形態である。しかしながら、この場合、命令の機能は、例えばテンプレート呼び出し命令中で指定されているレジスタに関して、所定のテンプレートによって指定されている機能を呼び出すことである。つまり、図４の命令デコードステップ２６で、図６の命令からのテンプレート選択機能を認識できる。これは呼び出されたテンプレートに対して所定のテンプレートを指定できる。図５Ｂの実施例の場合、このテンプレートが呼び出されると、これは実行されるように指定されているメモリ操作、及び呼び出し命令中で指定されているレジスタ上の関連データを用いて実行されるように指定されている機能をもたらす。これがメモリ読み込み操作であった場合、これは図５Ｂの機能選択子によって定義されているようにメモリをアクセスし、適切なサイズのデータを図６の命令中で指定されているレジスタに書き込む。
【００１６】
図７は、これら全てを実行するために命令スケジューラに含まれている回路の詳細設計を示す。これは図２のメモリ読み出し／書き込みユニットに対するインターフェースを備える。インターフェースは、命令データメモリ要求ユニット３０に応答して命令データバッファ３２へ命令を与える。これらの命令は、次に命令プリデコードユニット３４へ順番に送られる。に命令プリデコードユニット３４は、その命令に関するリソース要求を出力し、次に、リソース要求は、他方の入力ユニットがリソース可能性であるＡＮＤゲート３６に供給される。リソース可能性がリソース要求に合致すると、次に、ＡＮＤゲートの出力は、命令を命令ポストデコードユニット４０へ送る命令スケジュールユニット３８を有効するが、命令スケジュールユニット３８は、命令を命令実行ユニット４２、結果的に実行ユニット６へ送るように処理する。
【００１７】
テンプレートテーブル２８は、命令プリデコードユニット３４及び命令ポストデコードユニット４０と通信する。図６に示す形式のテンプレート呼び出し命令が命令プリデコードユニットで検出されると、この命令は命令スケジュールユニット３８及び命令ポストデコードユニット４０へ移る。これはテンプレート呼び出し命令での命令を認識でき、図６の命令からのテンプレート選択機能を使用して、適切なテンプレート命令を選択するために、読み出し信号をテンプレートテーブル２８へ送ることができる。次に、読み出し信号は、命令プリデコードユニット３４へ送られ、この場合、前述のように、リソース要求はリソース可能性と合致され、テンプレートからの命令は、命令ポストデコードユニット４０を経由して命令実行部４２へ進むが、命令ポストデコードユニット４０は、テンプレート呼び出し命令中で指定されているレジスタ選択子を保持している。好適には、テンプレート命令は、プリデコード及びポストデコードの両方のユニットに供給され、この場合、次に、プリデコードはリソース可能性をチェックし、スケジューラがポストデコーダへデータを送って呼び出し命令中に指定されているレジスタを有するテンプレートからの機能の実行を開始することを可能にする。
【００１８】
受け取った命令がテンプレートを定義する命令であり予備ビットの適切な１つのビットが０に設定されている場合、このことは命令プリデコード及びポストデコードユニットによって認識され、テンプレート命令は、命令ポストデコードユニット４０から、図５Ｂのテンプレート選択子によって定義されているテンプレートテーブルの一部に読み込まれる。更なる全ての実行はこの段階で行われる。
【００１９】
命令実行ユニット４２がデータを実行ユニット６へ送った後に、プログラム制御フローは、命令データメモリ要求ユニット３０へ戻り、実行が継続される。
【００２０】
テンプレートを定義する命令を使用するので、テンプレートテーブルは、任意の特定のプログラムの実行時に変更できることを理解されたい。従って、テンプレートテーブルサイズと処理速度との間でトレードオフを行うことができる。大きなテンプレートテーブルは、必要ではあるが更新の必要がないであろう全ての可能性のある操作形式を格納することができる。しかしながら、小さなテンプレートを使用する場合、その上で実行される各々のプログラムは、最初にこのプログラムが使用できるテンプレート命令セットを定義して、このテンプレート命令をテンプレートテーブルに書き込むことから始まる。次に、プログラムは、必要に応じて作成されるテンプレート命令への適切なアクセスを実行できる。この場合、テンプレートテーブルの内容は、プログラムが別の実行段階に進む場合に必要に応じてテンプレート定義命令を送ることによって、プログラム実行時に動的に変更できる。
【００２１】
つまり、テンプレート命令の使用は、呼び出される固定幅の命令バスを使用して呼び出すことができない複数の命令を同時に実行可能にし、結果的に、非常に長い命令語を使用することなく、ユニットの処理速度処理が改善され、処理リソースを上手く利用できるようになる。
【図１】
2011044163.tif 000003
【図２】
2011044163.tif 000004
【図３】
2011044163.tif 000005
【図４】
2011044163.tif 000006
【図５】
2011044163.tif 000007
【図６】
2011044163.tif 000008
【図７】
2011044163.tif 000009