説明

固定幅命令エンコード内のプロセッサ操作の拡張された機能性

【課題】システムの固定幅サイズ制限内で送出された単一の命令でもって複数の互換性のある命令を呼び出す。
【解決手段】多重実行システム内で固定幅命令を実行するための装置は、メモリから命令をフェッチする手段(24)と、各々のフェッチ命令を順番にデコードするためのデコーダ(26)とを備え、各々の命令がテンプレートテーブル(28)から局所格納命令をフェッチするための部分を含むか否かが決定される。その部分を含む場合、局所格納命令はフェッチされ、デコードされた局所格納命令部が複数の処理ユニット上で実行される(30)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、固定幅形式のエンコード命令に関し、多重実行ユニット又はパイプラインを含む処理システムにおいて有用である。
【発明の概要】
【発明が解決しようとする課題】
【0002】
例えば、中央処理ユニット装置又はデジタル信号処理装置等の処理ユニットの殆ど全ての形態において、システムの操作を制御する命令は、命令の幅として知られる固定サイズ制限をもつ。この制限は、各々の命令をどれだけ記述できるかを規制する。特に、多重処理ユニット又はパイプラインを有する処理システムは、すべての命令の固定幅制限内の処理ユニット又はパイプラインのなかで、アクティビティを有効に指定することができない。このことは、システムの最大処理能力が常時十分に利用されてはいないことを意味する。1つの選択肢として、例えば、非常に長い命令語を使用して命令幅を広げることが考えられる。しかしながら、このことはフェッチ及びデコード処理の命令を遅くし、命令を転送するのにより幅の広い並列バスが必要となる。
【課題を解決するための手段】
【0003】
本発明の好適な実施形態は、本出願人の国際特許出願番号W097/38372に記載されているようなシステムと共に使用でき、その開示内容は引用により本明細書に組み込まれているものとする。前記出願には、一又は二以上のデータ処理装置によって、多くの異なる処理命令スレッドを管理する処理システムが開示されている。
【0004】
本発明の好適な実施形態は、局所格納命令又はテンプレート命令を使用して、これら既存システムに関する問題を解決するものである。通常、局所格納命令又はテンプレート命令は、個別に格納され、その後、単一の正規命令でもって所定の処理ユニットに対して呼び出すことができる命令の機能部分である。これにより、システムの固定幅サイズ制限内で送出された単一の命令でもって複数の互換性のある命令を呼び出すことができる。テンプレート命令を呼び出すために使用される単一命令は、種々のパラメータで送出され、結果的に、そうしないと要求されることになる、個別の多くの命令がもつ意味の多くの可変性を持ち続ける。例えば、テンプレート命令はデータをメモリから読み出し、このデータを処理ユニットのメモリレジスタに入力するためのものである。メモリ読み出し操作は、読み出したデータを処理ユニットのレジスタに書き込むように命令する機能と共に、テンプレート命令に格納される。テンプレートを呼び出す単一の命令は、そのテンプレート機能によって、アクセスすべきテンプレート、及び使用すべきレジスタを指定する。つまり、メモリからの関連データを読み出して、呼び出し命令に指定されているレジスタに書き込むことができる。従って、呼び出し命令は、各々のレジスタに関するメモリ読み出し命令を指定することではなく、テンプレート呼び出し機能と、必須のレジスタとを含むことだけを必要とする。従って、メモリから個別の処理ユニットに関連する多くのレジスタへのデータの読み出しは、別の方法で行われた場合よりも少ない固定幅命令を使用して実行できる。
【0005】
本発明の好適な実施形態は、添付の図面を参照して以下に例示的に詳細に説明される。
【図面の簡単な説明】
【0006】
【図1】本発明の実施形態に使用できる形式でのマルチスレッド多重プロセッサシステムの基本アーキテクチャのブロック図である。
【図2】図1のメディア制御コアの命令スケジューラと、メモリ読み出し/書き込み制御装置とを概略的に示す。
【図3】図2の装置によってスケジュール設定できる形式の標準固定幅命令を示す。
【図4】テンプレート命令スケジュールの制御フローを示す。
【図5】テンプレート選択ビットと、テンプレート定義ビットを含むテンプレート定義命令とを有する図1に示す形式の正規命令を示す。
【図6】本発明の実施形態における制御フローのフローチャートを示す。
【図7】図2の命令スケジューラのハードウエアのブロック図である。
【発明を実施するための形態】
【0007】
図1のブロック図において、本システムの主要部は、細分化されたマルチスレッドの多重プロセッサを有するメディア制御コア(MCC)2である。これは、例えば、ビデオソース、オーディオソース、ビデオ出力、オーディオ出力、データソース、記憶装置等のリアルタイムデータ入出力装置4に接続可能な複数の入力部及び出力部を備える。最も単純な実施例として、単一の入力部と単一の出力部だけを設けることもできる。MMC2にはまた、複数のデータ処理ユニット6が接続されている。各々のデータ処理ユニット6は、データパイプライン10によってデータ処理を制御するデータ処理コア8を備える。コア8は、マイクロ命令がMCC2の命令スケジューラへ供給された後に、パイプライン10に関するマイクロ命令シーケンスをデコードする。
【0008】
MMC2には、さらに複数バンク式キャッシュメモリ12が接続されており、データは、MCC2及びデータ処理ユニット6によって、複数バンク式キャッシュメモリ12から検索でき、更にそこに書き込むことができる。これは入力データ及び他の内部で発生したデータに基づいてデータ処理コアによって実行されるデータ及び命令を一時的に記憶できる装置を含む。これらの種々の命令セットは、アクティブになるとスレッドを構成する。
【0009】
図2は、メディア制御コア2の内部アーキテクチャの一部を示す。本アーキテクチャは、命令スケジューラ16とメモリ読み出し/書き込みユニット18とを備える。命令は、メモリ読み出し/書き込みユニットによってスケジューラに与えられる。これらの命令は、以下に図3に関連して説明するように、nビットの固定幅を有する。命令スケジューラはデータ処理ユニット6へ命令を送る。本実施例において、図示のデータ処理ユニットは、2つの汎用データ処理ユニットと2つのデジタル信号処理ユニットである。プロセッサのマルチスレッド特性により、命令セットには、いくつかの処理ユニットを同時に有効に利用できる命令が組み込まれており、例えば、両方のDSPユニットは同時に使用できる。処理ユニット6に関する命令は、命令バス20を経由して転送される。
【0010】
図3において、本実施例にて命令スケジューラへ供給される各々の命令は、種々の方法で操作コード(opcode)フィールドに細分化されている命令ビットを有する同一固定幅をもつことが理解できる。一般に、これらの操作コードフィールドは、命令の機能性、又はデータ処理コア内に収納され、その機能が適用されるレジスタを選択する。つまり、図3において、命令は、一般に3つの個別の処理ユニット6の各々に常駐する3つのレジスタと、これら全てのレジスタに適用される単一の機能を指定する。特定の実施例において、命令ビットの一部のビットは予備として指定される。全ての場合ではないが、多くの場合は、別の機能を選択できるように割当予備ビットを有することが好ましい。
【0011】
追加の処理ユニットを使用した場合には、これら全てに対して同時に命令を与えることは不可能であり、結果的に、最大処理能力以下の能力を使用することになることが理解されるだろう。
【0012】
従って、我々は、命令の帯域幅は、テンプレート命令として知られているものを使用して同一固定幅の命令バス及びクロック周波数を使用して拡大できることを認識した。これらは、メモリ操作においてアドレス指定されるメモリ位置又はアクセスされるレジスタを指定することなく、メモリ操作等の実行される全ての操作要素の特性を指定する局所格納命令である。命令は、テンプレートテーブルに格納されるが、図4は命令スケジューラ内への命令の配置方法に関する基本ブロック図を示す。本フローチャートにおいて、24はメモリからの命令フェッチを示す。26において命令はデコードされ、デコーダがその命令がテンプレート命令を呼び出す命令であることを検出すると、テンプレート命令がテンプレートテーブルから読み込まれる。次に、30において命令が実行され、プログラムは命令フェッチブロック24へ戻る。
【0013】
図5A及び5Bを参照して以下にテンプレート命令を詳細に説明する。図5Aは、3つのレジスタ選択子と1つの機能選択子とを有する正規命令を示す。予備ビット中の1つのビットは0に設定されており、この特定のビットは、テンプレート命令を正規命令として定義するものとして、命令デコーダによって認識される。
【0014】
図5Bは、テンプレート定義命令を示す。テンプレート定義命令はテンプレート命令をテンプレートテーブル28に格納するために送られる命令である。正規命令において0に設定されているビットは、ここでは1に設定されており、命令デコーダは、このビットをテンプレート定義命令として認識し、データをテンプレートテーブル28に送る。本実施例のテンプレート定義命令は、メモリ操作機能選択子を有する。メモリ操作機能選択子は、操作がメモリ読み出し又はメモリ書き込みか否か、転送サイズ、及びアドレス生成情報を定義する。アドレス生成は、通常、ベースレジスタとオフセットレジスタ、又はベースレジスタと即時数(レジスタから来るものとは対照的に命令によって定義される小さな数)の形態とすることができる。また、メモリ操作は、どの処理ユニットを使用するかを指定できる。従って、メモリアドレス生成は、その処理ユニットによって実行されることになる。テンプレート選択子は、テンプレートテーブル28内のテンプレート命令が書き込まれる場所を定義する。機能選択子は、テンプレート呼び出し命令によってテンプレート命令が呼び出される場合に、処理ユニット内で使用される機能を選択する。これは「加算」、「乗算」、「シフト」等であってもよい。従って、メモリ操作の全ての要素は、正規命令において使用されるビットの代わりに、テンプレート定義において指定される。
【0015】
図6は、テンプレート呼び出し命令を示す。これは基本的に図5に示す正規命令と同じ形態である。しかしながら、この場合、命令の機能は、例えばテンプレート呼び出し命令中で指定されているレジスタに関して、所定のテンプレートによって指定されている機能を呼び出すことである。つまり、図4の命令デコードステップ26で、図6の命令からのテンプレート選択機能を認識できる。これは呼び出されたテンプレートに対して所定のテンプレートを指定できる。図5Bの実施例の場合、このテンプレートが呼び出されると、これは実行されるように指定されているメモリ操作、及び呼び出し命令中で指定されているレジスタ上の関連データを用いて実行されるように指定されている機能をもたらす。これがメモリ読み込み操作であった場合、これは図5Bの機能選択子によって定義されているようにメモリをアクセスし、適切なサイズのデータを図6の命令中で指定されているレジスタに書き込む。
【0016】
図7は、これら全てを実行するために命令スケジューラに含まれている回路の詳細設計を示す。これは図2のメモリ読み出し/書き込みユニットに対するインターフェースを備える。インターフェースは、命令データメモリ要求ユニット30に応答して命令データバッファ32へ命令を与える。これらの命令は、次に命令プリデコードユニット34へ順番に送られる。に命令プリデコードユニット34は、その命令に関するリソース要求を出力し、次に、リソース要求は、他方の入力ユニットがリソース可能性であるANDゲート36に供給される。リソース可能性がリソース要求に合致すると、次に、ANDゲートの出力は、命令を命令ポストデコードユニット40へ送る命令スケジュールユニット38を有効するが、命令スケジュールユニット38は、命令を命令実行ユニット42、結果的に実行ユニット6へ送るように処理する。
【0017】
テンプレートテーブル28は、命令プリデコードユニット34及び命令ポストデコードユニット40と通信する。図6に示す形式のテンプレート呼び出し命令が命令プリデコードユニットで検出されると、この命令は命令スケジュールユニット38及び命令ポストデコードユニット40へ移る。これはテンプレート呼び出し命令での命令を認識でき、図6の命令からのテンプレート選択機能を使用して、適切なテンプレート命令を選択するために、読み出し信号をテンプレートテーブル28へ送ることができる。次に、読み出し信号は、命令プリデコードユニット34へ送られ、この場合、前述のように、リソース要求はリソース可能性と合致され、テンプレートからの命令は、命令ポストデコードユニット40を経由して命令実行部42へ進むが、命令ポストデコードユニット40は、テンプレート呼び出し命令中で指定されているレジスタ選択子を保持している。好適には、テンプレート命令は、プリデコード及びポストデコードの両方のユニットに供給され、この場合、次に、プリデコードはリソース可能性をチェックし、スケジューラがポストデコーダへデータを送って呼び出し命令中に指定されているレジスタを有するテンプレートからの機能の実行を開始することを可能にする。
【0018】
受け取った命令がテンプレートを定義する命令であり予備ビットの適切な1つのビットが0に設定されている場合、このことは命令プリデコード及びポストデコードユニットによって認識され、テンプレート命令は、命令ポストデコードユニット40から、図5Bのテンプレート選択子によって定義されているテンプレートテーブルの一部に読み込まれる。更なる全ての実行はこの段階で行われる。
【0019】
命令実行ユニット42がデータを実行ユニット6へ送った後に、プログラム制御フローは、命令データメモリ要求ユニット30へ戻り、実行が継続される。
【0020】
テンプレートを定義する命令を使用するので、テンプレートテーブルは、任意の特定のプログラムの実行時に変更できることを理解されたい。従って、テンプレートテーブルサイズと処理速度との間でトレードオフを行うことができる。大きなテンプレートテーブルは、必要ではあるが更新の必要がないであろう全ての可能性のある操作形式を格納することができる。しかしながら、小さなテンプレートを使用する場合、その上で実行される各々のプログラムは、最初にこのプログラムが使用できるテンプレート命令セットを定義して、このテンプレート命令をテンプレートテーブルに書き込むことから始まる。次に、プログラムは、必要に応じて作成されるテンプレート命令への適切なアクセスを実行できる。この場合、テンプレートテーブルの内容は、プログラムが別の実行段階に進む場合に必要に応じてテンプレート定義命令を送ることによって、プログラム実行時に動的に変更できる。
【0021】
つまり、テンプレート命令の使用は、呼び出される固定幅の命令バスを使用して呼び出すことができない複数の命令を同時に実行可能にし、結果的に、非常に長い命令語を使用することなく、ユニットの処理速度処理が改善され、処理リソースを上手く利用できるようになる。

【特許請求の範囲】
【請求項1】
メモリから命令をフェッチするための手段と、
各々のフェッチ命令を順番にプリデコードするための手段と、
各々のプリデコード命令が、局所格納手段から局所格納命令部をフェッチするための部分を含む否かを決定するための手段と、
前記決定に基づいて、前記局所格納命令部をフェッチするための手段と、
前記フェッチされた局所格納命令を、複数の実行ユニットでの実行のためにスケジュール設定し、デコードするための手段と、
前記プリデコード命令及びフェッチされデコードされた局所格納命令部を、複数の処理ユニット上で実行させるための手段と、
を備えることを特徴とする多重処理ユニットシステム内で固定幅命令を実行するための装置。
【請求項2】
フェッチ命令中に含まれるデータに応答して、追加局所命令を前記局所格納手段に格納するための手段を含むことを特徴とする請求項1に記載の装置。
【請求項3】
前記フェッチ命令中に含まれる前記データは、前記追加局所命令を書き込むべき前記局所格納手段内の場所を定義するデータを含むことを特徴とする請求項2に記載の装置。
【請求項4】
前記局所格納命令は、実行される操作形式を定義する少なくとも機能部分を有することを特徴とする請求項1、2、又は3のいずれか1項に記載の装置。
【請求項5】
多重処理ユニットシステム内で固定幅命令を実行するための方法であって、
メモリから命令をフェッチする段階と、
各々のフェッチ命令を順番にプリデコードする段階と、
各々のプリデコード命令が、局所格納手段から局所格納命令部をフェッチするための部分を含むか否かを決定する段階と、
前記決定に基づいて前記局所格納命令部をフェッチする段階と、
前記フェッチされた局所格納命令を、複数の実行ユニットでの実行のためにスケジュール設定し、デコードする段階と、
前記デコード命令及びフェッチされデコードされた局所格納命令部を、複数の処理ユニット上で実行させる段階と、
を含むことを特徴とする方法。
【請求項6】
フェッチ命令中に含まれるデータに応答して追加局所命令を格納する段階を含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記フェッチ命令中に含まれる前記データは、前記追加局所命令を書き込むべき局所格納手段内の場所を定義するデータを含むことを特徴とする請求項6に記載の装置。
【請求項8】
前記局所格納命令は、実行される操作形式を定義する少なくとも機能部分を有することを特徴とする請求項5、6、又は7のいずれか1項に記載の方法。
【請求項9】
前記プリデコード手段は、前記フェッチされた命令のためのリソース要求を定義する出力を与えるとともに、該リソース要求をリソース可能性と比較する手段、及び、当該比較の結果に基づいて前記スケジュール設定する手段を実行可能とする手段をさらに備えている、請求項1に記載の装置。
【請求項10】
前記追加局所命令を格納する手段はプログラム実行中に動作可能であり、それにより、前記局所格納命令を格納する手段の内容は、プログラム実行中に動的に変更可能である、請求項2に記載の装置。
【請求項11】
リソース可能性に対してリソース要求が合致するかどうかをチェックする段階と、前記チェックの結果に基づいて命令のスケジュール設定を実行可能とする段階をさらに含む請求項5に記載の方法。
【請求項12】
前記フェッチ命令中に含まれるデータに応答して追加局所命令を格納する段階はプログラム実行中に動作可能であり、それにより、前記局所格納命令はプログラム実行中に動的に変更可能である、請求項6に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−44163(P2011−44163A)
【公開日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願番号】特願2010−224185(P2010−224185)
【出願日】平成22年10月1日(2010.10.1)
【分割の表示】特願2002−584155(P2002−584155)の分割
【原出願日】平成14年4月23日(2002.4.23)
【出願人】(501176037)イマジネイション テクノロジーズ リミテッド (59)
【Fターム(参考)】