(57)【特許請求の範囲】
【請求項１】
命令の第１パケットに関連づけられた第１アドレスから、命令の第２のパケットに関連づけられた第２アドレスを決定することと、
多方向キャッシュに関連づけられたキャッシュラインの境界を前記第２アドレスが越えたか否かを決定するために、データ装置の加算器のキャリービットを調べることと、
前記第２のアドレスが前記キャッシュラインの前記境界を越えたとの決定に応答して、前記第２のアドレスが前記多方向キャッシュに関連付けられたページの境界を超えたか否かを決定するために、前記加算器の第２のキャリービットを調べ、前記ページの境界は超えられていないとの決定に応答して、変換索引バッファ（ＴＬＢ）探索オペレーションを実行することなく前記第２アドレスと関連づけられたタグ配列情報を決定するために、タグ配列探索オペレーションを実行することと、
前記キャッシュラインの前記境界が前記第２のアドレスによって越えられていないとの決定に応答して、前記第１アドレスに関連づけられたタグ配列データおよび変換索引バッファ（ＴＬＢ）探索データを使用して前記第２アドレスからデータを取り出すために前記多方向キャッシュにアクセスすること、前記タグ配列データは先行のタグ配列探索オペレーションの結果である、と、
を具備する方法。
【請求項２】
前記タグ配列情報を使用して前記多方向キャッシュからデータを読み取ることをさらに具備する、請求項１に記載の方法。
【請求項３】
前記第１のアドレスが第１のメモリ読み取りアドレスを具備し、前記第２のアドレスが第２のメモリ読み取りアドレスを具備する、請求項１に記載の方法。
【請求項４】
前記第２のアドレスを、命令の前記第１のパケットの実行により決定された結果に関連づけられた第１の書き込みアドレスと比較することと、
前記第１の書き込みアドレスが前記第２のアドレスと合致するとき、命令の前記第２のパケットを実行する際の使用のために、前記結果を実行装置内のローカルメモリに保存することと、
をさらに具備する請求項１に記載の方法。
【請求項５】
前記ローカルメモリから前記結果を取り出すことと、
前記取り出された結果を使用して、命令の前記第２のパケットを実行することと、
をさらに具備する、請求項４に記載の方法。
【請求項６】
ページ境界が前記第２のアドレスによって越えられたとき、
前記方法は、
前記第２アドレスを、前記多方向キャッシュに関連づけられた物理アドレスに変換するために、前記変換索引バッファ（ＴＬＢ）探索オペレーションを実行することと、
タグ情報を決定するために、前記タグ配列探索オペレーションを実行することと、
前記タグ情報および前記物理アドレスに基づきメモリにアクセスすることと、
をさらに具備する請求項１に記載の方法。
【請求項７】
前記第２のアドレスは、相対アドレス指定を使用して前記第１のアドレスから決定される請求項１に記載の方法。
【請求項８】
プロセッサによって実行されたとき、
命令の第１パケットに関連づけられた第１アドレスから、命令の第２のパケットに関連づけられた第２アドレスを決定することと、
多方向キャッシュに関連づけられたキャッシュラインの境界を前記第２アドレスが越えたか否かを決定するために、データ装置の加算器のキャリービットを調べることと、
前記第２のアドレスが前記キャッシュラインの前記境界を越えたとの決定に応答して、前記第２のアドレスが前記多方向キャッシュに関連付けられたページの境界を超えたか否かを決定するために、前記加算器の第２のキャリービットを調べ、前記ページの境界は超えられていないとの決定に応答して、変換索引バッファ（ＴＬＢ）探索オペレーションを実行することなく前記第２アドレスと関連づけられたタグ配列情報を決定するために、タグ配列探索オペレーションを実行することと、
前記キャッシュラインの前記境界が前記第２のアドレスによって越えられていないとの決定に応答して、先行のタグ配列探索オペレーションから決定された前記第１アドレスに関連づけられたタグ配列データおよび変換索引バッファ（ＴＬＢ）探索データを使用して、前記第２アドレスからデータを取り出すために前記多方向キャッシュにアクセスすることと、
を前記プロセッサにさせるプログラムコードを有するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、実行装置内のデータ転送のシステムおよび方法に関する。
【背景技術】
【０００２】
通常のプロセッサでは、命令の実行は複数の段階を必要とすることがある。プログラムシーケンス内で、データ依存命令は通常分割され、ステージの各々を通して第１命令が処理される時間、および第１命令からの結果を使用する第２命令を実行する前にレジスタに当該結果が書き込まれる時間を可能ならしめる。この事例において、複数のデータ非依存命令を使用して、命令シーケンス内のデータ依存命令を分割し、後続命令の実行で結果が必要となる前に当該結果を作成し保存する時間を可能ならしめる。データ非依存命令を使用してデータ依存命令を分割することによって、プロセッサパイプラインをフル稼働またはそれに近い状態にすることができ、パイプラインのストールを減らすことができる。
【０００３】
現代のコンパイラは、シーケンス外の命令の実行により実行パイプライン装置のストールを減らそうとしている。特に、データ非依存命令および／または実行の準備ができている命令は、まだ準備ができていない命令（すなわち、別の実行中の命令によってデータがまだ決定されていないデータ依存の命令）の前に置かれる。典型的には、コンパイラアプリケーションを使用して当該データ依存命令を認識することができ、コンパイラアプリケーションは、プログラムシーケンス内の対応するデータ生成命令からのデータ依存命令の間隔をあけることによって、プログラムシーケンス内の命令を編成し、パイプラインのストールを減らすことができる。
【発明の概要】
【０００４】
特定の実施形態では、複数の実行装置を有するインターリーブ型マルチスレッド（ＩＭＴ）プロセッサ内の実行パイプラインにおいて、実行装置におけるライトバック（write back）段階の間、第１命令の実行によりレジスタファイルに書き込まれる結果に関連づけられた書き込み識別子を、第２命令に関連づけられた読み取り識別子と比較することを含む方法が開示される。書き込み識別子が読み取り識別子と合致したとき、本方法はさらに、後続の読み取り段階での実行装置による使用に備えて、結果を実行装置のローカルメモリに保存することを含む。
【０００５】
別の特定の実施形態では、第１命令パケットに関連づけられた第１アドレスにより、第２命令パケットに関連づけられた第２アドレスを特定することを含む方法が開示される。多方向キャッシュに関連づけられたキャッシュラインの境界を第２アドレスが越えたか否かを決定するために、データ装置の加算器のキャリービットが調べられる。境界が越えられていないとき、多方向キャッシュはアクセスされ、先行のタグ配列探索オペレーションにより特定された第１アドレスに関連づけられたタグ配列データおよび変換索引バッファ（ＴＬＢ）探索データを使用して第２アドレスからデータが取り出される。
【０００６】
さらに別の特定の実施形態では、１つあるいはそれより多くのデータ値を保存するローカルメモリを有する実行装置を含むマルチスレッドプロセッサが開示される。実行装置はさらに、読み取りオペレーションに関連づけられた読み取りアドレスが先行のライトバックオペレーションに関連づけられたライトバックアドレスと合致するか否かを決定するように適合された論理回路を含む。この論理回路は、読み取りアドレスがライトバックアドレスと合致したときにローカルメモリに１つあるいはそれより多くのデータ値を保存するように適合されている。
【０００７】
さらに別の特定の実施形態では、複数の実行装置を有するインターリーブ型マルチスレッド（ＩＭＴ）プロセッサ内の実行パイプラインにおいて、第１命令パケットの実行によりレジスタファイルに書き込まれる結果に関連づけられた書き込み識別子を、第２命令パケットに関連づけられた読み取り識別子と比較するための手段を含むプロセッサが開示される。このプロセッサはさらに、書き込み識別子が読み取り識別子と合致するときに第２命令パケットを実行する際の使用に備えて結果を実行装置に選択的にローカル保存するための手段を含む。
【０００８】
データ転送論理およびローカルメモリを有するプロセッサの実施形態によって提供される１つの特有の利点は、第１命令の実行からの結果をローカル保存し、レジスタファイル読み取りオペレーションを実行することなく第２命令を実行する際に使用することができる点にある。レジスタファイル読み取りオペレーションを選択的に省略することにより、レジスタファイルのパワー消費を減らすことができる。
【０００９】
別の特有の利点は、第２命令の第２アドレスが第１命令の第１アドレスと同じキャッシュラインに関連づけられたときにタグ配列探索オペレーションを選択的に省略できる点にある。この例では、第２アドレスのタグ配列探索オペレーションを省略することができ、第１アドレスに関連づけられた先行の探索オペレーションによって特定されたタグ配列情報を再利用することができる。タグ配列探索オペレーションを選択的に省略することにより、全体のパワー消費を減らすことができる。
【００１０】
さらに別の特有の利点は、同じ論理回路を使用して、データを選択的に転送すること、ならびにタグ配列探索オペレーションおよびＴＬＢ探索オペレーションを選択的に省略することができる点にある。追加的に、アセンブラまたはコンパイラを使用して命令パケットを配列し、データの転送（すなわち、スロット内転送（intra-slot forwarding））、タグ配列情報の再利用（すなわち、タグ配列探索オペレーションの省略）およびＴＬＢ探索オペレーションの選択的な省略の機会をもたらすことができる。こうしたデータの転送ならびにタグ探索オペレーションおよび／またはＴＬＢ探索オペレーションの選択的省略により、読み取りオペレーションの回数全体を減らすことができ、パワー消費を減らすことができる。
【００１１】
本開示の他の態様、利点および特徴は、以下の図面の簡単な説明、詳細な説明および特許請求の範囲のセクションを含む出願内容の全体を見た後に明らかとなろう。
【図面の簡単な説明】
【００１２】
【図１】図1は、データを転送するように適合された実行装置を含むシステムの特定の例解的実施形態を示すブロック図である。
【図２】図2は、データを転送するように適合された実行装置の特定の例解的実施形態を示すブロック図である。
【図３】図3は、データ転送論理回路およびタグ配列探索／変換索引バッファ（ＴＬＢ）探索省略論理回路を有する共用制御装置を含むシステムの特定の実施形態を示すブロック図である。
【図４】図4は、データを選択的に転送し、タグ配列探索オペレーションおよび変換索引バッファ（ＴＬＢ）オペレーションを選択的に省略するように適合されたプログラム可能論理回路（ＰＬＣ）を含むプロセッサの特定の実施形態を示すブロック図である。
【図５】図5は、データを転送するように適合された実行パイプライン内のプロセスの例解的実施形態を示すタイミング図である。
【図６】図6は、実行パイプライン内の転送論理回路の特定の例解的実施例を示す図である。
【図７】図7は、タグ配列探索オペレーションを省略するように適合された実行パイプライン内のプロセスの例解的実施形態を示すタイミング図である。
【図８】図8は、データを選択的に転送し、タグ配列探索オペレーションまたは変換索引バッファ（ＴＬＢ）探索オペレーションを選択的に省略するように適合されたシステム特定の例解的実施形態を示すブロック図である。
【図９】図9は、実行装置内のデータを転送する方法の特定の例解的実施形態を示す流れ図である。
【図１０】図10は、タグ配列探索オペレーションを選択的に省略する方法の特定の例解的実施形態を示す流れ図である。
【図１１】図11は、タグ配列探索オペレーションおよび／または変換索引バッファ（ＴＬＢ）探索オペレーションを選択的に省略する方法の特定の例解的実施形態を示す流れ図である。
【図１２】図12は、転送論理回路および探索省略論理回路を有する実行装置を含む通信デバイスの特定の例解的実施形態を示すブロック図である。
【詳細な説明】
【００１３】
図１は、転送論理回路およびローカルメモリを有する少なくとも１つの実行装置を含む処理システム１００の特定の例解的実施形態を示すブロック図である。処理システム１００は、バスインターフェース１０４を介して命令キャッシュ１０６およびデータキャッシュ１１２と通信するように適合されたメモリ１０２を含む。命令キャッシュ１０６はバス１１０によってシーケンサ１１４と結合されている。加えて、シーケンサ１１４は、割込みレジスタから受信することのある、汎用割込み１１６などの割込みを受信するように適合されている。シーケンサ１１４はまた、監視制御レジスタ１３２およびグローバル制御レジスタ１３４と結合されている。
【００１４】
特定の実施形態では、命令キャッシュ１０６は、複数の現在の命令レジスタを介してシーケンサ１１４に結合されており、当該レジスタはバス１１０に結合され、処理システム１００の特定のスレッドに関連づけられ得る。特定の実施形態では、処理システム１００は６つのスレッドを含むインターリーブ型マルチスレッドプロセッサである。
【００１５】
シーケンサ１１４は第１命令実行装置１１８、第２命令実行装置１２０、第３命令実行装置１２２および第４命令実行装置１２４に結合されている。各命令実行装置１１８、１２０、１２２および１２４は第２バス１２８を介して汎用レジスタファイル１２６に結合されることができる。汎用レジスタファイル１２６はまた、第３バス１３０を介してシーケンサ１１４、データキャッシュ１１２およびメモリ１０２に結合されることができる。監視制御レジスタ１３２およびグローバル制御レジスタ１３４は、シーケンサ１１４内の制御論理によってアクセスされ得るビットを保存して、割込みを受け入れるか否かを決定し、命令の実行を制御することができる。
【００１６】
第１実行装置１１８は転送論理回路１３６およびローカルメモリ１３８を含む。第２実行装置１２０は転送論理回路１４０およびローカルメモリ１４２を含む。第３実行装置１２２は転送論理回路１４４およびローカルメモリ１４６を含む。第４実行装置１２４は転送論理回路１４８およびローカルメモリ１５０を含む。実行装置１１８、１２０、１２２および１２４の各々は転送論理（すなわち、それぞれ転送論理１３６、１４０、１４４、１４８）を含むことが示されているが、特定の実施形態では、転送論理１３６のような転送論理は、実行装置１２０、１２２および１２４などのような他の実行装置と共有できることを理解すべきである。例えば、特定の実施形態では、実行装置１１８は転送論理１３６およびローカルメモリ１３８を含むことができ、他の実行装置１２０、１２２および１２４はローカルメモリ１４２、１４６および１５０を含むことができ、転送論理１３６を共有することができる。特定の実施形態では、実行装置１１８、１２０、１２２および１２４の１つあるいはそれより多くはローカルメモリを共有することができる。例えば、実行装置１１８および１２０はローカルメモリ１３８を共有することができ、実行装置１２２および１２４はローカルメモリ１４６を共有することができる。別の特定の実施形態では、転送論理１３６は実行装置１１８の外部に存在することがあり、実行装置１１８、１２０、１２２および１２４と通信することができ、これについては図４の制御装置４０６ならびに実行装置４０８、４１０、４１２および４１４に関して例解されたとおりである。
【００１７】
特定の実施形態では、処理システム１００は、実行装置１１８、１２０、１２２および１２４によって実行可能な第１命令パケットを受信し、第１命令パケットからの結果に依存する第２命令パケットを受信するように適合されている。第１命令パケットは４つの命令を含むことができ、当該命令は実行装置１１８、１２０、１２２および１２４に提供され得る。実行装置１１８、１２０、１２２および１２４は、デコード段階、レジスタファイルアクセス段階、多重実行段階およびライトバック段階を含む複数の段階を介して、第１命令パケットからの命令を処理することができる。ライトバック段階では、実行装置１１８の転送論理１３６は、第２命令パケットの読み取りアドレスが第１命令パケットのライトバックアドレスと合致すると決定することがあり、データを汎用レジスタファイル１２６にライトバックしてメモリ１３８にローカル保存することがある。代替的な実施形態では、実行装置１１８は各受信済み命令パケットの命令の少なくとも一部をデコードして、各命令の読み取りアドレスおよびライトバックアドレスを特定することができる。転送論理回路１３６は、第２パケットの読み取りアドレスを第１命令パケットのライトバックアドレスと比較し、他の実行装置（命令実行装置１２０、１２２および１２４など）にデータ転送制御信号を送信してデータをローカルに（すなわち、それぞれのローカルメモリ１４２、１４６および１５０に）保存するように適合することができる。データは、メモリ１３８、１４２、１４６および１５０から取り出して、第２（後続）命令パケットからの命令を実行する際に使用することができる。
【００１８】
特定の例では、転送論理回路１３６は、第２命令パケットの命令が第１命令パケットからの結果を使用することを発見することができる。特に、第１命令は、第２命令がデータを読み取るのと同じ場所にデータを書き込む。この例では、転送論理回路１３６は、第１命令パケット内の命令の結果が第２命令パケット内の命令によって利用されることを突き止めるように適合されている。例解のための非限定的な例を挙げると、転送論理回路１３６は、命令キャッシュ１０６もしくはシーケンサ１１４を介して将来の命令にアクセスできる制御論理回路（図示せず）から信号を受信することができ、または、転送論理回路１３６は、アセンブラ、コンパイラ、シーケンサ１１４もしくは他の回路によって設定できる第１パケット内の指定ビットのような転送標識を検出することができ、または、転送論理回路１３６は、命令のタイプに応じて少なくとも部分的に命令の結果の使用を予測することができる。別の実施例では、転送論理回路１３６は、すべての命令結果を後続命令による使用に備えてローカル保存する第１モード、または命令結果を一切保存しない第２モードで作動するよう構成できる。転送論理回路１３６は、バス１２８を介して汎用登録ファイル１２６に実行結果を書き込むことに加え、当該結果をローカルメモリ１３８に保存するように実行装置１１８にさせる。第２命令パケットからのデータ依存命令が実行装置１１８に提供されるとき、転送論理回路１３６は、レジスタ読み取りオペレーションの省略、ローカルメモリ１３８に保存された結果へのアクセス、および第２命令パケットからの命令を実行する際の結果の利用を、実行装置１１８にさせる。そのため、実行装置１１８は、転送論理回路１３６を利用することで、汎用レジスタファイル１２６に対する読み取りオペレーションの回数を減らす。
【００１９】
データ依存命令がプログラムシーケンス内の隣接パケットで順序付けられるよう、命令パケットをコンパイルすることによって、コンパイル済みアプリケーションは、実行装置１１８、１２０、１２２および１２４の転送論理回路１３６、１４０、１４４および１４８を活用してパワー節約度を高めることができる。以前の命令によって生成されたデータは、バッファ、ラッチ、フリップフロップ、ローカルレジスタまたは他のメモリ要素など、ローカルメモリ１３８、１４２、１４６または１５０に保存することで、隣接パケットのためにレジスタ読み取りを実行することなく隣接パケットによって使用できるようになる。隣接していないパケット間でデータを転送できる例解的な実施形態では、ローカルメモリ１３８、１４２、１４６または１５０は、１つあるいはそれより多くの介在する（intervening）パケットが処理される間にデータを一時的にローカル保存するための１つあるいはそれより多くのレジスタを含むことができる。特に、隣接命令パケットのデータ依存命令を順序付けることにより、コンパイラはデータ転送の潜在能力を高め、それにより、読み取りオペレーションの省略の数を増やし、全体的なパワー消費を減らす。
【００２０】
特定の例では、実行装置１１８は、１つの命令パケットからのオペランド（および／またはデータ）を次の命令パケットへ転送するための転送論理回路１３６を含む。かかるデータ転送は、レジスタファイル読み取りオペレーションの回数全体を減らし、レジスタファイルのパワー消費全体を減らす。データ依存の命令パケット対の例が下の表１に提供される。
【表１】
0005661863.tif 000002
【００２１】
この例では、実行される特定の命令は本開示とは関係ないが、例外は、第１命令パケットに関連づけられたＶＡＬＩＧＮＢ命令の実行中に実行装置によって作成されたレジスタ対Ｒ７：６に保存された値が、第２パケットに関連づけられたＶＤＭＰＹ命令の実行中に実行装置によって使用されることである。特定の例では、実行装置１１８など同じ実行スロットでＶＡＬＩＧＮＢおよび後続のＶＤＭＰＹの両方が実行されるように、アセンブラまたはコンパイラは命令を配列することができる。追加的に、アセンブラまたはコンパイラはプログラムシーケンス内で第１命令パケットのすぐ次に第２命令パケットを配列することができる。
【００２２】
図２は、転送論理回路２２０およびメモリ２２２を有する実行装置２０２を含むシステム２００の一部のブロック図である。システム２００は記憶デバイス２０４を含み、記憶デバイス２０４は、実行装置２０２の外部にあり、複数の記憶場所２０８、２１０、２１２、２１４、２１６および２１８を有する。記憶場所２０８、２１０、２１２、２１４、２１６および２１８の各々は、バス２０６を介して実行装置２０２にアクセス可能な記憶アドレスに関連づけられ得る。一般に、記憶場所２０８、２１０、２１２、２１４、２１６および２１８は、異なる長さのバス追跡（bus trace）によって実行装置２０２から分離されている。追加的に、実行装置２０２がメモリ２０４内の特定の記憶場所にアクセスするごとに、パワーが消費される。一般に、実行装置２０２は、命令を受信し、命令をデコードし、メモリ２０４のレジスタファイルへアクセスしてデータを取り出し、取り出されたデータを使用して命令を実行し、メモリ２０４へデータをライトバックするように適合されている。
【００２３】
実行装置２０２は、転送論理回路２２０およびローカルメモリ２２２を含む。転送論理回路２２０は、特定の命令の実行によって生成されるデータが、プログラムシーケンスで次の命令を実行する中で使用される場合を検出するように適合されている。この場合、実行装置２０２は、転送論理２２０を利用してローカルメモリ２２２に第１命令の実行からの結果を保存するように適合されている。実行装置２０２は、次の命令の実行中にレジスタファイル読み取りオペレーションまたはメモリ読み取りオペレーションを省略し、ローカルメモリ２２２に保存されたデータを利用することができ、それによりメモリ読み取りオペレーションを回避しパワーを節約することができる。一般に、すべてのメモリアクセスを減らすことにより、パワーを消耗するメモリ読み取りオペレーションを選択的に回避して、パワー消費を節約することができる。
【００２４】
図３は、データ転送論理回路３０６および探索省略論理回路３０８を有する共用制御装置３０４を含むシステム３００のブロック図である。システム３００は、共用制御装置３０４に結合された命令キャッシュ３０２を含む。共用制御装置３０４はサービス装置３１４、記憶装置３１６およびデータ装置３１８に結合されている。共用制御装置３０４はまた、ソースレジスタファイル（source register file）３１２に結合されており、ソースレジスタファイル３１２は命令装置３１０と通信する。また、命令装置３１０およびデータ装置３１８は、バス装置３２２を介して通信し、バス装置３２２は、多方向キャッシュメモリなどのメモリ３２４に結合されている。サービス装置３１４、記憶装置３１６およびデータ装置３１８は目的レジスタファイル（destination register file）３２０に結合されている。
【００２５】
特定の例解的実施形態では、システム３００は命令パケットを受信し、当該命令をデータ装置３１８が実行して結果を生成することができる。共用制御装置３０４は、データ転送論理回路３０６を利用して当該結果が後続命令パケットによって使用されるか否かを決定するように適合されている。共用制御装置３０４は、サービス装置３１４、記憶装置３１６およびデータ装置３１８と通信して後続のレジスタファイル読み取りオペレーションを省略するように適合されている。追加的に、共用制御装置３０４は、データ装置３１４と通信して、図２に示すメモリ２２２または図１に例解するローカルメモリ１３８、１４２、１４６および１５０などのローカルメモリに結果を保存するようデータ装置３１４に命令するように適合されている。共用制御装置３０４はまた、サービス装置３１４、記憶装置３１６およびデータ装置３１８を制御して、ローカル保存されたデータを後続命令パケットの実行中に利用するように適合されている。特定の実施形態では、サービス装置３１４、記憶装置３１６およびデータ装置３１８は共同して、図１に示された実行装置１１８、１２０、１２２および１２４によって実行されるオペレーションに似た処理オペレーションを実行する。
【００２６】
別の特定の実施形態では、共用制御装置３０４は、探索省略論理回路３０８を利用して、第１命令に関連づけられた第１記憶アドレスがメモリ内において第２命令に関連づけられた第２記憶アドレスと同じキャッシュライン内にあるときなどにタグ配列探索オペレーションを省略すべきか否かを決定するように適合されている。特定の例では、システム３００は、データ装置３１８が第１記憶アドレスを特定でき、第１記憶アドレスに基づいて第２記憶アドレスを計算できる場合に「自動インクリメントアドレス」モードで稼働することができる。例えば、データ装置３１８は、第１記憶アドレス（Ａ）を特定して第２記憶アドレス（Ａ＋８）を計算することができる。この特定の例では、データ装置３１８は、第１命令パケットに関連づけられた少なくとも１つの命令を受信する。データ装置３１８は、当該命令に関連づけられた記憶アドレスを決定し第２記憶アドレスを計算するように適合されている。
【００２７】
特定の例では、記憶アドレスは、ｎ方向キャッシュメモリ内の物理記憶アドレスに関係する仮想記憶アドレスであってよい。この例では、データ装置３１８は、変換索引バッファ（ＴＬＢ）探索オペレーションを実行して物理記憶アドレスを特定することにより、仮想アドレスから物理アドレスへの変換を実行することができる。データ装置３１８は、タグ配列探索オペレーションを実行して、物理記憶アドレスに関係するデータ配列内の方向を特定するタグデータを特定することができる。データ装置３１８は、タグデータおよび物理記憶アドレス情報を使用して、ｎ方向キャッシュメモリからデータを取り出すことができる。タグデータ（多方向キャッシュに関連づけられた方向を含む）を第２記憶アドレスと共にローカルメモリに保存することができる。第２記憶アドレスがデータ装置３１８によって使用されるため取り出されるとき、データ装置３１８は、第２記憶アドレスと第１記憶アドレスが同じキャッシュライン内にあるか否か決定することができる。第１記憶アドレスと第２記憶アドレスとがｎ方向キャッシュメモリ内の同じキャッシュラインに関連している場合、探索省略論理回路３０８は、データ装置３１８に対し、後続のタグ配列探索オペレーションを省略し、第１記憶アドレスからの方向を使用して第２記憶アドレスに関連づけられたｎ方向キャッシュメモリのデータにアクセスするよう命令するように適合されている。第１記憶アドレスおよび第２記憶アドレスがｎ方向キャッシュメモリ内の異なるキャッシュラインに関連づけられた場合に、探索省略論理回路３０８は、変換索引バッファ（ＴＬＢ）探索オペレーションを実行することなくタグ配列探索オペレーションを実行するようデータ装置３１８に命令するように適合されている。第２記憶アドレスがページ境界を越えた（すなわち、ページサイズを上回った）とデータ装置３１８が決定した場合、探索省略論理回路３０８は、ＴＬＢ探索オペレーションおよびタグ配列探索オペレーションを実行して第２記憶アドレスに関連づけられた物理アドレスおよびタグデータを特定するようデータ装置３１８に命令する。
【００２８】
特定の例では、ｎ方向キャッシュメモリのページはキャッシュラインより大きいサイズを有する。例えば、キャッシュラインは３２バイトを含むことがあり、ページは約４０９６ビット（約４キロビット）である場合がある。この場合、自動インクリメントアドレスが８バイト増えると、自動インクリメントアドレス計算が次のキャッシュラインに進む前にタグ配列データを３回再利用することができ（キャッシュラインはシーケンシャルオペレーションでアクセスされていると想定）、例えば第１ＴＬＢ探索オペレーションからのページ変換を、別のＴＬＢ探索オペレーションの実行が必要となる前に多くの回数（すなわち約５１１回）再利用することができる。
【００２９】
特に、後続命令によってアクセスされた記憶アドレスが先行のメモリアクセスと同じキャッシュラインに関連づけられた場合、先行のタグ配列探索オペレーションで得られたタグ配列データを後続の記憶アドレスのために再利用することができ、それにより後続のタグ配列探索オペレーションを回避することができる。別の特定の例では、ページ境界を越えたときに限りＴＬＢ探索オペレーションを選択的に実行することにより、ＴＬＢがアクセスされる回数を減らして全体のパワー消費を減らすことができる。
【００３０】
図４は、プロセッサシステム４００のブロック図である。プロセッサシステム４００は、命令装置４０２および割込みレジスタ４０４を含み、これらは制御装置４０６に結合されている。制御装置４０６は複数の実行装置４０８、４１０、４１２および４１４に結合されている。実行装置４０８、４１０、４１２および４１４の各々はローカルメモリ４２６、４２８、４３０および４３２をそれぞれ含むことができる。
【００３１】
制御装置４０６は、デコーダ４１６、制御レジスタファイル４１８、汎用レジスタファイル４２０、プログラム可能論理コントローラ（ＰＬＣ）回路４２２およびシリコン内デバッガ（in-silicon debugger）（ＩＳＤＢ）回路４２４を含む。ＩＳＤＢ回路４２４は、プロセッサシステム４００の実行中にソフトウェアをデバッグするために使用できるＪＴＡＧ（joint test action group）に基づくハードウェアデバッガを提供する。特定の実施形態では、ＩＳＤＢ回路４２４はスレッドの個々のデバッグをサポートし、スレッド実行の停止を可能にするとともに、制御レジスタファイル４１８および汎用レジスタファイル４２０を含む、命令およびデータメモリの監視および変更を可能にする。
【００３２】
特定の例解的実施形態では、デコーダ４１６は命令を受信しデコードする。デコーダ４１６はデコード済み命令に関係するデータをＰＬＣ回路４２２に通信し、ＰＬＣ回路４２２は、命令パケットのシーケンスで第２命令パケットによって利用される結果を第１命令パケットが生成する場合を検出する論理を含むことができる。連続した命令パケット間のこうしたデータ依存性の検出に伴い、ＰＬＣ回路４２２は、それぞれのローカルメモリ４２６、４２８、４３０または４３２に結果を保存するためにデータ生成命令を実行している実行装置４０８、４１０、４１２および４１４の少なくとも１つに対する制御信号を生成するように適合されている。ＰＬＣ４２２は、汎用レジスタファイル４２０およびデコーダ４１６を制御して、後続命令パケットからのデータ依存命令を選択済み実行装置（例：実行装置４０８）に経路指定し、それにより実行装置が後続命令の実行中にローカル保存済みデータを（すなわち、ローカルメモリ４２６に保存済みのデータ）を利用できるようにするように適合されている。この例では、ＰＬＣ４２２はまた、結果がローカル保存されているときには、実行装置４０８およびバス４３４を制御して、実行装置４０８がメモリ（汎用レジスタファイル４２０など）にアクセスするのを防ぎ、当該結果を取り出すことができる。
【００３３】
特定の例では、実行装置４０８は制御装置４０６からデータ生成命令を受信し、命令を実行し、結果を汎用レジスタファイル４２０にライトバックすることができる。実行装置４０８はまた、制御装置４０６のＰＬＣ４２２から受信した制御信号に応じて、ローカルメモリ４２６に結果を保存することができる。実行装置４０８は、ローカルメモリ４２６からの保存済み結果を利用する制御装置４０６から次の命令を受信することができる。実行装置４０８は、ローカルメモリ４２６にアクセスして保存済み結果を取り出し、取り出した結果を使用して次の命令を実行することができる。この特定の例では、実行装置４０８は、汎用レジスタファイル４２０から結果をリードバックすることなく、次の命令を実行することができ、それによりレジスタファイル読み取りオペレーションを省略し、パワーを節約することができる。
【００３４】
別の特定の実施形態では、制御装置４０６は、タグ配列探索オペレーションにより特定されたタグ配列データを選択的に再利用するように適合されている。例えば、自動インクリメント機能を使用して第１アドレスから第２アドレスを計算するとき、ＰＬＣ４２２は、キャリービットを調べて、第２アドレスが第１アドレスとは異なるキャッシュラインに関連するときを決定することができる。例えば、キャッシュラインが３２バイト幅の場合、第２アドレスの第５ビットはキャリービットを表す。キャリービットが変わると、第２アドレスはキャッシュメモリ内の次のキャッシュラインに関連づけられる。一般に、ＰＬＣ４２２は、第２アドレスが第１命令とは異なるキャッシュラインに関連づけられることをキャリービットが示すまで、先行のタグ配列探索オペレーションからのタグ配列データを再利用するよう実行装置４０８、４１０、４１２および４１４に命令する。この場合、ＰＬＣ４２２は、実行装置４０８、４１０、４１２および４１４に、変換索引バッファ（ＴＬＢ）探索オペレーションを実行することなく新たなタグ配列探索オペレーションを実行させる。
【００３５】
さらに別の特定の実施形態では、制御装置４０６は、変換索引バッファ（ＴＬＢ）探索オペレーションを選択的に実行するように適合されている。特に、ＰＬＣ４２２は、第２記憶アドレスの計算からのキャリービットを調べて、ページ境界を越えていることを計算済み記憶アドレスが示すときを決定する。例えば、メモリ配列のページサイズが約４０９６ビット（すなわち４キロビット）である場合、第２記憶アドレスの第１１ビットがキャリービットを表すことがある。したがって、第２記憶アドレスの第１１ビットが変わると、ページ境界を越え、ＰＬＣ４２２は実行装置４０８、４１０、４１２または４１４の１つに、ＴＬＢ探索オペレーションを開始させ、続いてタグ配列探索オペレーションを行うことができる。この例では、タグ配列探索オペレーションはＴＬＢ探索オペレーションよりも高い頻度で発生する。ＰＬＣ４２２は、タグ配列探索オペレーションおよびＴＬＢ探索オペレーションのうち１つまたは両方を選択的に省略して、全体のパワー消費を減らすように適合されている。
【００３６】
図５は、データ転送論理を含む実行装置の命令サイクル５００の特定の例を示す図である。一般に、命令サイクル５００は、特定のスレッドの観点から実行装置の複数の段階を表す。実行装置は一般に、ライトバック段階５０２、デコード段階５０４、レジスタ読み取り段階５０６、１つあるいはそれより多くの実行段階５０８、５１０および５１２ならびに第２ライトバック段階５１４を含む１つあるいはそれより多くの段階でデータおよび命令を処理する。命令サイクル５００はただ１つのライトバック段階（ライトバック段階５１４）を含み、次いで実行サイクルがデコード段階５０４で始まり繰り返されることを理解すべきである。ライトバック段階５０２は説明目的で例解されている。
【００３７】
一般に、ライトバック段階５０２では、５１６において、以前実行された命令からの結果が汎用レジスタファイルのようなレジスタにライトバックされる。５１８において、次の命令パケット（１〜４つの命令を含み得る）が受信され、受信済みパケットの読み取り識別子が、レジスタに書き込まれた書き込み結果に関連づけられた書き込み識別子と比較される。読み取り識別子と書き込み識別子とが合致したとき、（５２０において）書き込み結果は実行装置にローカル保存され、同様に５１６においてレジスタにライトバックされる。この場合、５２２において（５０６の）レジスタ読み取りを省略することができ、実行装置にローカル保存されたデータを使用することができる。５２４では、レジスタ読み取り段階（５０６）で読み取られたデータまたは実行装置にローカル保存されたデータの少なくとも１つを使用して命令が実行される。よって、（５１８で）読み取り識別子と書き込み識別子とが合致したとき、（５０６の）レジスタ読み取り段階を省略することができ、ローカル保存されたデータを利用することができ、その結果、データ転送が可能になる。
【００３８】
特定の例解的実施形態では、図５に例解された実行装置段階５０４、５０６、５０８、５１０、５１２および５１４は、インターリーブ型マルチスレッドプロセッサ内の実行装置のサイクルを表す。追加的に、ライトバック段階５０２は、先行命令の実行サイクルの最終段階を表す。ファイル読み取り段階５０６でレジスタファイル読み取りオペレーションを実行することなく、（５２２において）先行命令からのデータを実行装置のローカルメモリから取り出すことができ、５２４で（すなわち、１つあるいはそれより多くの実行段階５０８、５１０および５１２で）次の命令と共に処理することができる。特定の例解的実施形態では、段階５０４、５１６、５０８，５１０、５１２および５１４の各々は、特定のオペレーションが実行されるクロックサイクルを表すことがある。
【００３９】
図６は、プロセッサの実行装置におけるデータ転送論理６００の特定の例解的実施形態を示すブロック図である。この場合、ライトバック段階６０２、デコード段階６０４およびレジスタファイル読み取り段階６０６に関してデータ転送論理６００が示されている。例解的実施形態では、データ転送論理６００は、代表スロット２のような、複数のスロットのうちの単一処理スロットを表し、レジスタファイルの代表レジスタ「Ｓ」および「Ｔ」を使用して読み取りおよび書き込みオペレーションを行うことができる。
【００４０】
ライトバック段階６０２に関して、転送論理６００は、比較器６０８および６１０、論理和ゲート６１１、インバータ６１４および６１６、論理積ゲート６１８および６２０ならびにレジスタファイル６１２を含む。転送論理６００はまた、転送可能フリップフロップ回路６３６、転送データフリップフロップ回路６３８を含む。比較器６０８は次のパケットレジスタ「Ｓ」（Ｒｓ）読み取り識別子情報６２２および現在のパケット書き込み識別子情報６２４をインプットとして受信し、インバータ６１４のインプットに結合されたアウトプットを提供する。インバータ６１４のアウトプットは、論理積ゲート６１８の第１インプットに結合され、論理積ゲート６１８の第２インプットはスロット２レジスタ「Ｓ」読み取り可能（ｓ２ＲｓＲｄＥｎ）インプット６３２に結合されている。論理積ゲート６１８はまた、レジスタファイル６１２のスロット２レジスタに結合されたアウトプットを含む。比較器６１０は、次のパケットレジスタ「Ｔ」（Ｒｔ）読み取り識別子情報６２６（次のパケット読み取り識別子情報６２２と同じであってよい）および現在のパケット書き取り識別子情報６２８を受信し、アウトプットを提供し、当該アウトプットは、インバータ６１６を介して論理積ゲート６２０のインプットに結合する。論理積ゲート６２０はまた、第２インプットでスロット２レジスタ「Ｔ」読み取り可能（ｓ２ＲｔＲｄＥｎ）インプット６３４を受信し、レジスタファイル６１２のスロット２レジスタに結合されたアウトプットを提供する。比較器６０８および６１０のアウトプットはまた、転送可能フリップフロップ６３６へのインプットとして、また論理和ゲート６１１へのインプットとして提供され、論理和ゲート６１１は転送データフリップフロップ６３８にイネーブルインプットを提供する。転送データフリップフロップ６３８はまた、実行装置データライトバック６３０からデータを受信する。
【００４１】
転送論理６００のデコード段階６０４では、転送可能フリップフロップ６３６のアウトプットが、第２転送可能フリップフロップ６４０へのインプットとして、また第２転送データフリップフロップ６４２へのイネーブルインプットとして提供される。転送データフリップフロップ６３８は、第２転送データフリップフロップ６４２へデータインプットを提供する。
【００４２】
レジスタファイル読み取り段階６０６では、第２転送可能フリップフロップ６４０は、第１多重装置６４４の選択インプットに、また第２多重装置６４６の選択インプットに転送可能信号を提供する。第１多重装置６４４は、第１インプットで転送済みデータ、第２インプットでレジスタ（ｓ）データを受信し、次の命令パケットを実行する際の使用に備えて転送済みデータまたはレジスタ（ｓ）データのいずれかを含むアウトプット６４８を提供する。第２多重装置６４６は、第１インプットで転送済みデータ、第２インプットでレジスタ（ｔ）データを受信し、次の命令パケットを実行する際の使用に備えて転送済みデータまたはレジスタ（ｔ）データのいずれかを含むアウトプット６５０を提供する。
【００４３】
一般に、比較器６０８は、次のパケット読み取り識別子情報６２２および現在のパケット書き込み識別子情報６２４を受信するように適合されている。比較器６１０は、次のパケット読み取り識別子情報６２６および現在のパケット書き込み識別子情報６２８を受信するように適合されている。次のパケット読み取り識別子６２２および６２６のうち１つが現在のパケット書き込み識別子６２４および６２８のうち１つと合致した場合、かかる合致を特定した比較器（例：比較器６０８および６１０のうちの１つ）は、論理１値をアウトプットで提供し、転送データフリップフロップ６３８を有効にし、それぞれのインバータ６１４または６１６およびそれぞれの論理積ゲート６１８または６２０を介した対応するレジスタ読み取り可能状態を無効にする。
【００４４】
特定の例解的実施形態では、次のパケット読み取り識別子６２２が現在のパケット書き込み識別子情報６２４と合致したとき、比較器６０８は転送データフリップフロップ６３８へのインプットとして論理ｈｉｇｈアウトプットを提供する。インバータ６１４は論理ｈｉｇｈアウトプット（logic high output）を反転させ、論理積ゲート６１８へのインプットとして論理ｌｏｗ値を提供し、レジスタファイル６１２へのスロット２レジスタ（ｓ）読み取り可能状態を無効にする。転送データフリップフロップ６３８はライトバックインプット６３０を介して実行装置からデータを受信し、データを保存する。デコード段階６０４では、データは第２転送データフリップフロップ６４２に転送される。転送されたデータは、第１多重装置６４４および第２多重装置６４６に提供され、第２転送可能フリップフロップ６４０からのアウトプットに基づき第１アウトプット６４８および第２アウトプット６５０のうち１つに選択的に提供される。第２転送可能フリップフロップ６４０は、比較器６０８のアウトプットを第１多重装置６４４に提供し、比較器６１０のアウトプットを第２多重装置６４６に提供して、第２転送データフリップフロップ６４２からの転送済みデータまたはレジスタデータのうちの１つを選択する。
【００４５】
転送論理６００は、読み取り／書き込み識別子の合致に基づきレジスタ読み取りオペレーションを選択的に可能にするように適合されている。また、転送論理６００を使用して、後続命令での再利用に備えて記憶アドレスに関連づけられたタグ配列データ（方向情報など）を選択的にキャッシュすることができる。特定の例では、転送論理６００または同様の論理は、計算済みアドレスに関連づけられたキャリービットを調べて、計算済みアドレスが次のキャッシュラインに関連づけられた（すなわち、タグ配列探索オペレーションにつながり、変換索引バッファ（ＴＬＢ）探索オペレーションを省略する）ときを決定するように適合することができる。別の特定の例では、転送論理または同様の論理は、計算済みアドレスに関連づけられたキャリービットを調べて、計算済みアドレスがページ境界を越える場合（すなわち、変換索引バッファ（ＴＬＢ）探索オペレーションおよびタグ配列探索オペレーションにつながる場合）を特定するように適合することができる。タグ配列データが依然として有効である（すなわち、第１および第２記憶アドレスのキャッシュラインが同じである）と転送論理６００または同様の論理が決定した場合、タグ配列データを、ＴＬＢ探索オペレーションおよび／またはタグ配列探索オペレーションを実行することなく第２記憶場所にアクセスする際の使用に備えて、転送データフリップフロップ６３８および６４２などのデータラッチでラッチすることができる。
【００４６】
図７は、データ転送論理を含み、探索オペレーションを選択的に省略するように適合された実行装置の命令サイクル７００の特定の例を示す図である。命令サイクル７００は一般に、ライトバック段階７０２、デコード段階７０４、レジスタ読み取り段階７０６、１つあるいはそれより多くの実行段階７０８、７１０および７１２ならびに第２ライトバック段階７１４を含む複数の段階を含む。命令サイクル７００はただ１つのライトバック段階（ライトバック段階７１４）を含み、次いで実行サイクルがデコード段階７０４で始まり繰り返されることを理解すべきである。ライトバック段階７０２は説明目的で例解されている。
【００４７】
一般に、先行命令の実行の実行段階（実行段階７０８など）では、第１記憶アドレスおよび第２記憶アドレスを計算することができ、第２記憶アドレスをローカルメモリ（図１に例解されるローカルメモリ１３８など）に保存することができる。ライトバック段階７０２の間、７１６において、以前実行された命令からの結果がキャッシュアドレスまたは汎用レジスタファイルのようなレジスタにライトバックされる。７１８ではローカルメモリから第２記憶アドレスを取り出すことができる。７２０では、第２記憶アドレスに関連づけられた１つあるいはそれより多くのキャリービットの値が、１つあるいはそれより多くのキャリービットが自動インクリメントオペレーションによるキャリー値を示すか否かを決定するために調べられる。１つあるいはそれより多くのキャリービットの第１キャリービットの値が、第２記憶アドレスが第１記憶アドレスとは異なるキャッシュラインに関連づけられていることを示さなかった場合、７２２において変換索引バッファ（ＴＬＢ）探索オペレーションおよびタグ配列探索オペレーションは省略され、先行のタグ配列値が使用されてメモリからデータが取り出される。１つあるいはそれより多くのキャリービットの第１キャリービットの値がキャリー値を示し、１つあるいはそれより多くのキャリービットの第２キャリービットがキャリー値を示さなかった場合、例えば、第２記憶アドレスが先行記憶アドレスと同じページ内の異なるキャッシュラインに関連づけられているとき、７２４において、ＴＬＢ探索オペレーションは省略されるが、タグ配列探索オペレーションは実行され、メモリからデータを取り出すためにタグ配列値を取り出す。１つあるいはそれより多くのキャリービットの各々がキャリー値を示す場合、７２６に示すようにＴＬＢ探索オペレーションおよびタグ配列探索オペレーションが実行される。
【００４８】
特定の例では、タグ配列探索オペレーションを省略することができ、先行のタグ配列探索オペレーションにより決定されたタグ配列データを使用してメモリ内のアドレスにアクセスすることができる。特に、タグ配列データを使用することで、タグ配列データを探索することなく、またＴＬＢ探索オペレーションを実行することなく記憶アドレスにアクセスすることができる。
【００４９】
特定の例解的実施形態では、図７に例解する段階７０４、７０６、７０８、７１０、７１２および７１４は、インターリーブ型マルチスレッドプロセッサ内の実行装置の段階を表すことがある。追加的に、特定の実施形態では、段階７０４、７０６、７０８、７１０、７１２および７１４は、クロックサイクルを表すことがある。
【００５０】
図８は、実行装置８０８および８１０内でそれぞれローカルメモリ８０９および８１１を使用してデータを選択的に転送するための制御装置８０６を有する回路デバイス８０２を含むシステム８００の特定の例解的実施形態を示すブロック図である。また、制御装置８０６は、タグ配列８２６または変換索引バッファ（ＴＬＢ）装置８６２に関係する探索オペレーションを選択的に省略するように適合されている。特定の例では、制御装置８０６は、計算されたアドレスが以前計算されたアドレスと同じキャッシュライン内または同じページ内にあるときに先行の探索オペレーションからのタグ配列情報および／または変換索引バッファ（ＴＬＢ）情報を転送することによって、タグ配列８２６における探索オペレーション、ＴＬＢ装置８６２における探索オペレーション、またはその組合せを省略することができる。
【００５１】
一般に、回路デバイス８０２はデータ装置８０４を含み、データ装置８０４は制御装置８０６、バス装置８１２および結合変換索引バッファ（joint translation look-aside buffer）（ＴＬＢ）装置８１３と通信する。バス装置８１２はレベル２密結合メモリ（ＴＣＭ）／キャッシュメモリ８５８と通信する。また、制御装置８０６は、第１実行装置８０８、第２実行装置８１０、命令装置８１４およびシリコン内デバッガ（ＩＳＤＢ）装置８１８と通信する。命令装置８１４は、結合ＴＬＢ装置８１３およびＩＳＤＢ装置８１８と通信する。また、回路デバイス８０２は、埋め込み追跡装置（embedded trace unit）（ＥＵ）８２０およびメモリビルトインセルフテスト（ＢＩＳＴ）またはテスト容易化設計（ＤＦＴ）装置８２２を含む。ＩＳＤＢ装置８１８、ＥＵ８２０およびメモリＢＩＳＴ装置８２２は、回路デバイス８０２で作動するソフトウェアのテストおよびデバッグを行うための手段を提供する。
【００５２】
制御装置８０６は、レジスタファイル８３６および８３８、制御論理回路８４０、割込み制御回路８４２、制御レジスタ８４４および命令デコーダ８４８を含む。一般に、制御装置８０６は、スレッドをスケジュールし、命令装置（ＩＵ）８１４に命令を要求し、命令をデコードして３つの実行装置、すなわちデータ装置８０４（実行スロット１および０、それぞれ８３０および８３２）、実行装置８０８および実行装置８１０に発行する。命令装置８１４は、命令変換索引バッファ（ＩＴＬＢ）８６４、命令アドレス生成装置８６６、命令制御レジスタ８６８、命令パケット整列回路８７０および命令キャッシュ８７２を含む。命令装置（ＩＵ）８１４は、主メモリまたは命令キャッシュ８７２から命令を取り出し、取り出された命令を制御装置８０６に提供する役割を担うプロセッサパイプラインのフロントエンドであり得る。
【００５３】
データ装置８０４は、キャッシュ可能データを包含するデータ配列８２４を含む。特定の実施形態では、データ配列８２４は、１６のサブ配列メモリバンクに配列された、各バンクが１６組の１６方向を含む多方向データ配列であってよい。サブ配列内の各記憶場所は、倍長語または８バイトのデータを保存するように適合することができる。特定の例では、サブ配列は２５６の倍長語（すなわち１６×１６の倍長語）を含むことができる。データ装置８０４はまた、データ配列８２４に関連づけられた物理タグを保存するタグ配列８２６を含む。特定の実施形態では、タグ配列８２６は静的ランダムアクセスメモリ（ＳＲＡＭ）である。データ装置８０４はまた、キャッシュラインに関連づけられた状態を保存するように適合された状態配列８２８を含む。特定の例では、状態配列８２８は、キャッシュミス事象に応じた置き換えのためのキャッシュ方向を供給する。データ装置８０４はまた、実行装置（スロット１）８３０および実行装置（スロット０）８３２を含み、これらは一般にロードオペレーションおよび保存オペレーションを実行する。データ装置８０４は、データ装置８０４のオペレーションを制御する制御回路８３４を含む。
【００５４】
一般に、データ装置８０４は、制御装置８０６と通信して、実行装置８３０および８３２で実行する命令を受信する。データ装置８０４はまた、バスサービス要求のためにバス装置８１２と通信し、結合ＴＬＢ主メモリ装置変換のために結合ＴＬＢ装置８１３と通信する。
【００５５】
バス装置８１２はバス待ち行列装置（bus queue unit）８５０、レベル２タグ配列８５４、非同期先入れ先出し（ＦＩＦＯ）装置８５２およびレベル２インターフェース８５６を含む。レベル２インターフェース８５６は、レベル２ＴＣＭ／キャッシュ８５８と通信する。結合ＴＬＢ装置８１３は、制御レジスタ８６０および６４項目を含む結合ＴＬＢテーブル８６２を含む。
【００５６】
特定の例解的実施形態では、制御装置８０６は第１命令パケットおよび第２命令パケットを受信する。制御装置８０６は、第１命令パケットからの命令を実行のため実行装置８０８に提供することができる。実行装置８０８は、第１命令パケットからの第１命令を実行し、第１命令に関連づけられた第１アドレスを決定することができる。特定の例では、実行装置８０８は第１命令に基づき第１仮想アドレスを計算することができ、第１仮想アドレスに基づき（すなわち、自動インクリメント機能により）第２仮想アドレスを計算することができる。実行装置８０８は、制御装置８０８を介してデータ装置８０４と通信し、ＴＬＢ装置８１３を介して変換索引バッファ（ＴＬＢ）探索オペレーションを実行することができる。データ装置８０４はＴＬＢ装置８１３と通信することによってＴＬＢ探索オペレーションを制御することができ、タグ配列８２６を介してタグ配列探索オペレーションを実行し、データ配列８２４のような多方向メモリ内の方向を決定することもできる。ＴＬＢページ変換情報およびタグ配列データを制御装置８０６を介して実行装置８０８に提供することができる。制御装置８０６は実行装置８０８に対し、タグ配列情報および／またはＴＬＢページ変換情報をメモリ８０９に保存するよう命令することができる。実行装置８０８はタグ配列情報に基づき記憶場所からデータを取り出すことができる。
【００５７】
特定の例では、第２仮想アドレスが第１仮想アドレスと同じキャッシュラインに関連づけられている場合、実行装置８０８は、メモリ８０９からの保存済みタグ配列情報を使用して、タグ配列探索オペレーションおよびＴＬＢページ変換を実行することなくデータ配列８２４などの物理メモリに直接アクセスすることができる。特定の実施形態では、制御装置８０６の制御論理回路８４０は実行装置８０８に対し、保存済みタグ配列情報を使用するよう命令することができる。第２仮想アドレスが第１仮想アドレスと異なるキャッシュラインに関連づけられている場合、実行装置８０８は、制御装置８０６を介してデータ装置８０４と通信して、ＴＬＢ探索オペレーションを実行することなく（すなわち、仮想ページから物理ページへの変換を実行することなく）、タグ配列探索オペレーションを実行して第２仮想アドレスに関係するタグ情報を決定することができる。
【００５８】
特定の例解的実施形態では、実行装置８０８および８１０は、図３に例解する探索省略論理回路３０８のような、タグ配列探索オペレーションおよび／またはＴＬＢ探索オペレーションを省略するときを決定するメモリ配列探索省略論理回路を含む。別の特定の例解的実施形態では、制御論理回路８４０は、実行装置８０８および８１０を制御して、タグ配列探索、ＴＬＢ探索またはその組合せを選択的に省略することができる。また、実行装置８０８および８１０は、図１に示す転送論理回路１３６のようなデータ転送論理回路を含むことができる。特定の例解的実施形態では、制御論理回路８４０は、実行装置８０８および８１０を制御することによって第１命令からのデータを第２命令に選択的に転送し、後続命令を実行する際の使用に備えて当該データをそれぞれのメモリ８０９および８１１に保存するように適合されている。
【００５９】
図９は、データ転送の方法の特定の例解的実施形態を示すブロック図である。９０２では、複数の実行装置を有するインターリーブ型マルチスレッドプロセッサ内で、実行装置のライトバック段階の間、レジスタファイルに書き込まれるデータに関連づけられた書き込み識別子が、実行パイプラインの後続の読み取り段階の読み取り識別子と比較される。９０４に進み、書き込み識別子が読み取り識別子と合致しなかった場合、本方法は９０６に進み、第１命令パケットの実行から生じたデータが、レジスタファイルにある１つの場所に書き込まれ、当該データを実行装置にローカル保存しない。代替的に、９０４で書き込み識別子が読み取り識別子と合致した場合、本方法は９０８に進み、データはレジスタファイルに書き込まれ、後続の読み取り段階での実行装置による使用に備えて実行装置にローカル保存される。９０８から９１０に進み、本方法は、ローカル保存場所からデータを取り出すことを含む。代替的に、９０６から９１２に進み、本方法は、レジスタファイルの場所からデータを取り出すことを含む。９１４に進み、本方法は、取り出されたデータを使用して後続の読み取り段階を実行することを含む。特定の例では、本方法は、実行装置にローカル保存されたデータを使用して実行装置で命令パケットを実行することを含む。本方法は９１６で終了する。
【００６０】
特定の例では、本方法は、データに含まれる１つあるいはそれより多くのゼロ値ビットを特定して、書き込み識別子が読み取り識別子と合致するか否かを決定することを含む。ゼロ値ビットに基づき、本方法は、１つあるいはそれより多くのゼロ値ビットに関連づけられた実行装置内のデータパスへのパワーを減らすための標識を生成することを含むことができる。別の特定の例では、本方法は、データ装置に関連づけられた多方向キャッシュのキャッシュラインアドレスを、書き込み識別子に関連づけられたキャッシュラインアドレスと比較すること、および、書き込み識別子に関連づけられたキャッシュラインアドレスがデータ装置に関連づけられたキャッシュラインアドレスと合致したときに、変換索引バッファ（ＴＬＢ）タグを読み込むことなく多方向キャッシュからデータを取り出すことを含む。
【００６１】
図１０は、タグ配列探索オペレーションを選択的に省略する方法の特定の例解的実施形態を示すブロック図である。１００２では、自動インクリメント機能を使用して第１記憶アドレスから第２記憶アドレスが計算される。続いて１００４では、第２記憶アドレスに関連づけられた第１キャリービットが調べられる。ある例解的実施形態では、第２アドレスが第１アドレスと同じキャッシュライン内にあるか否かを決定するため、キャリービットは、キャッシュラインのサイズに関連づけられたアドレスビットである。例えば、下位ビット００００、０００１、．．．０１１１を有する連続アドレスは単一のキャッシュライン内にあるが、下位ビット１０００を有する次の連続アドレスは異なるキャッシュラインにある場合、０から１に変化するビット（すなわち最下位から４番目のアドレスビット）が、１００４で調べられるキャリービットである。続く例では、第２アドレスが第１アドレスの自動インクリメントによって生成されるとき、最下位から４番目のアドレスビットが値を変えると、キャリー値が示される。１００６では、第１キャリービットがキャリー値を示す場合、本方法は１００８に進み、タグ配列探索オペレーションを実行して第２記憶アドレスに関連づけられたタグ配列情報を取り出す。１０１０に進み、タグ配列情報がローカルメモリに保存される。１０１２に進み、タグ配列情報を使用してキャッシュメモリからデータが取り出される。
【００６２】
１００６に戻り、第１キャリービットがキャリー値を示していない場合、本方法は１０１４に進み、第１記憶アドレスに関連づけられた探索オペレーションのような先行のタグ配列探索オペレーションでタグ配列情報が特定されたローカルメモリからタグ配列情報が取り出される。本方法は１０１６で終了する。
【００６３】
図１１は、タグ配列探索オペレーション、変換索引バッファ（ＴＬＢ）探索オペレーションまたはその組合せを選択的に省略する（バイパスする）方法の特定の例解的実施形態を示す流れ図である。１１０２では、ＴＬＢ探索オペレーションを実行して仮想記憶アドレスを物理記憶アドレスに変換する。続いて１１０４では、タグ配列探索オペレーションを実行して物理アドレスに関連づけられたタグ情報を決定する。１１０６に進み、タグ配列情報がローカルメモリに保存される。１１０８に進み、自動インクリメント機能を使用して第１記憶アドレスから計算される第２記憶アドレスが受信される。特定の例では、第１記憶アドレスをインクリメントすることにより第１記憶アドレスから第２記憶アドレスを計算することができる。続いて１１１０では、キャリー値（すなわちキャリービットの値）を特定するため、第２記憶アドレスに関連づけられたキャッシュラインキャリービットが調べられる。特定の例では、例えばキャリービットは３２ビットのキャッシュに関係する第５アドレスビットであり得る。１１１２で、キャッシュラインキャリービットがキャリー値を示していない場合、本方法は１１１４に進み、ローカルメモリに保存されたタグ情報が取り出される。続いて１１１６では、取り出されたタグ情報に基づきメモリの第２記憶アドレスからデータが取り出される。１１１２に戻り、キャッシュラインキャリービットがキャリー値を示している場合、本方法は１１１８に進み、キャリー値を特定するためページ境界キャリービットが調べられる。１１２０では、ページ境界キャリービットがキャリー値を示している場合、本方法は１１０２に戻り、ＴＬＢ探索オペレーションを実行して記憶アドレスを物理アドレスに変換する。１１２０に戻り、ページ境界ビットがキャリー値を示していない場合、本方法は１１０４に進み、タグ配列探索オペレーションを実行して物理アドレスに関連づけられたタグ情報を決定し、ＴＬＢ探索オペレーションは実行しない。
【００６４】
図１２は、レジスタ読み取りオペレーションおよび／または変換索引バッファ（ＴＬＢ）探索オペレーションを選択的に省略する論理回路を含むプロセッサを含む代表的なワイヤレス通信デバイス１２００を示すブロック図である。ワイヤレス通信デバイス１２００は、１つあるいはそれより多くの実行装置１２６８と通信するデータ転送／探索省略論理回路１２６４を含むデジタル信号プロセッサ（ＤＳＰ）１２１０を含むことができる。１つあるいはそれより多くの実行装置１２６８の各々は、ローカルメモリ１２７０を含む。データ転送／探索省略論理回路１２６４は、実行装置１２６８を制御して、後続命令パケットによる使用に備えてデータをローカルメモリ１２７０にローカル保存することによってデータを転送するよう作動することができる。ワイヤレス通信デバイス１２００はまた、ＤＳＰ１２１０にアクセスできるメモリ１２３２を含む。データ転送／探索省略論理回路１２６４はまた、実行装置１２６８を制御して（異なる記憶アドレスに関連づけられた先行のタグ配列探索オペレーションからの）以前決定されたタグ配列情報を利用し、変換索引バッファ（ＴＬＢ）探索オペレーションおよびタグ配列探索オペレーションの両方を省略するように適合されている。以前決定されたタグ配列情報を使用して、他のタグ配列探索オペレーションを実行することなくメモリ１２３２のようなメモリにアクセスすることができる。別の特定の実施形態では、図１〜１１に関して説明したとおり、先行のＴＬＢ探索オペレーションにより決定された第１アドレスのページ変換情報を使用して、別のＴＬＢ探索オペレーションを実行することなく、タグ配列探索オペレーションを実行することができる。特定の実施形態では、データ転送および／またはＴＬＢ探索省略論理回路１２６４は、データ転送機能、タグ配列探索省略機能、ＴＬＢ探索省略機能またはこれらの任意の組合せを提供することができる。
【００６５】
特定の実施形態では、ワイヤレス通信デバイス１２００は、データ転送回路および探索省略論理回路の両方を含むことができる。別の特定の実施形態では、ワイヤレス通信デバイス１２００はデータ転送回路のみ含むことができる。さらに別の特定の実施形態では、探索省略論理回路を含むことができる。さらに別の特定の実施形態では、データを転送すべきか否かを決定するように適合された論理回路を使用して、タグ配列探索オペレーション、ＴＬＢ探索オペレーションまたはこれらの組合せを省略すべきか否かを決定することができる。
【００６６】
図１２はまた、デジタル信号プロセッサ１２１０およびディスプレイ１２２８に結合したディスプレイコントローラ１２２６を示している。コーダ／デコーダ（ＣＯＤＥＣ）１２３４もデジタル信号プロセッサ１２１０に結合することができる。スピーカー１２３６およびマイクロフォン１２３８はＣＯＤＥＣ１２３４に結合することができる。
【００６７】
図１２はまた、ワイヤレスコントローラ１２４０がデジタル信号プロセッサ１２１０およびワイヤレスアンテナ１２４２に結合できることを示している。特定の実施形態では、オンチップシステム１２２２に入力デバイス１２３０および電源１２４４が結合されている。さらに、特定の実施形態では、図１２に例解されたとおり、ディスプレイ１２２８、入力デバイス１２３０、スピーカー１２３６、マイクロフォン１２３８、ワイヤレスアンテナ１２４２および電源１２４４はオンチップシステム１２２２の外にある。ただし、各々はオンチップシステム１２２２のコンポーネントに結合されている。
【００６８】
データ転送および／またはＴＬＢ探索省略論理回路１２６４、１つあるいはそれより多くの実行装置１２６８ならびにローカルメモリ１２７０は、デジタル信号プロセッサ１２１０の別個のコンポーネントとして示されているが、データ転送および／またはＴＬＢ探索省略論理回路１２６４、１つあるいはそれより多くの実行装置１２６８ならびにローカルメモリ１２７０を、ワイヤレスコントローラ１２４０、ＣＯＤＥＣ１２３４、ディスプレイコントローラ１２２６、他の処理コンポーネント（図示していない汎用プロセッサなど）またはこれらの任意の組合せといった他の処理コンポーネントに組み込むことができることを理解すべきである。
【００６９】
当業者はさらに、本明細書で開示した実施形態との関係で説明した様々な例解的な論理ブロック、構成、モジュール、回路およびアルゴリズムのステップが、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実施できることを理解しよう。ハードウェアおよびソフトウェアのこの互換性を明示するため、様々な例解的なコンポーネント、ブロック、構成、モジュール、回路およびステップについて、これらの機能面から全般的に上述してきた。こうした機能がハードウェアまたはソフトウェアとして実施されるか否かは、特定のアプリケーションおよびシステム全体に課せられる設計上の制約に左右される。当業者は、各々の特定のアプリケーションに関し様々な方法で前述の機能を実施することができるが、かかる実施の決定を、本開示の範囲から逸脱するものと解釈すべきではない。
【００７０】
本明細書で開示する実施形態との関係で説明する方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこの２つの組合せで直接体現することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＰＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取り外し可能ディスク、ＣＤ−ＲＯＭまたは当技術分野で知られているその他の形式の記憶媒体に存在し得る。例解的な記憶媒体はプロセッサに結合され、それによりプロセッサは記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができる。代替法として、記憶媒体はプロセッサと一体化することもできる。プロセッサおよび記憶媒体はＡＳＩＣ中に存在し得る。ＡＳＩＣはコンピューティングデバイスまたはユーザ端末中に存在し得る。代替法として、プロセッサおよび記憶媒体はコンピューティングデバイスまたはユーザ端末中に個別のコンポーネントとして存在することもできる。
【００７１】
開示された実施形態に関するこれまでの説明は、開示された実施形態を当業者が実施または利用できるようにするため提供されている。これらの実施形態の様々な修正形態が当業者には容易に理解されると思われ、本明細書に定める一般的原理を、本開示の趣旨または範囲から逸脱することなく他の実施形態に適用することができる。よって、本開示は、本明細書に示す実施形態に限定されることを意図しておらず、この原理および以下の請求項が定める新規な特徴と合致する最大の範囲を認めるものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  複数の実行装置を有するインターリーブ型マルチスレッド（ＩＭＴ）プロセッサ内の実行パイプラインにおいて、実行装置でのライトバック段階の間、第１命令の実行によりレジスタファイルに書き込まれる結果に関連づけられた書き込み識別子を、第２命令に関連づけられた読み取り識別子と比較することと、  前記書き込み識別子が前記読み取り識別子と合致したとき、後続の読み取り段階での前記実行装置による使用に備えて、前記結果を前記実行装置のローカルメモリに保存することと  を具備する方法。
［Ｃ２］  前記方法は、前記書き込み識別子が前記読み取り識別子と合致しなかったとき、前記結果を前記ローカルメモリに保存することなく、前記結果を前記レジスタファイルに書き込むことをさらに具備するＣ１記載の方法。
［Ｃ３］  前記ローカルメモリに保存された前記結果を使用して、前記実行装置で命令パケットを実行することをさらに具備するＣ１記載の方法。
［Ｃ４］  前記書き込み識別子に含まれる１つあるいはそれより多くのゼロ値ビットを特定することと、  前記１つあるいはそれより多くのゼロ値ビットに関連づけられた前記実行装置内のデータパスへのパワーを減らすための標識を生成することと  をさらに具備するＣ１記載の方法。
［Ｃ５］  前記書き込み識別子が前記読み取り識別子と合致したとき、データ転送可能アウトプット標識を生成することと、  前記データ転送可能アウトプット標識に応じてレジスタファイルのスロットを選択的に無効にすることと  をさらに具備するＣ１記載の方法。
［Ｃ６］  前記データ転送可能アウトプット標識に関係する選択信号を生成することと、  前記レジスタファイルからのアウトプットまたは前記ローカルメモリからの前記結果のうちの１つを、前記第２命令を実行する際の使用に備えて前記実行装置に選択的に提供することと  をさらに具備するＣ５記載の方法。
［Ｃ７］  前記第１命令の第１記憶アドレスから計算された前記第２命令の第２記憶アドレスのキャリービットを、前記第２記憶アドレスおよび前記第１記憶アドレスが１つのキャッシュラインに関連しているか否かを決定するために調べることと、  前記第２記憶アドレスに関連づけられた第２キャッシュラインアドレスが、前記第１記憶アドレスに関連づけられた第１キャッシュラインアドレスと合致したとき、タグ配列探索オペレーションを実行することなく多方向キャッシュからデータを取り出すことと  をさらに具備するＣ１記載の方法。
［Ｃ８］  第１命令パケットに関連づけられた第１アドレスから、第２命令パケットに関連づけられた第２アドレスを決定することと、  データ装置の加算器のキャリービットを、多方向キャッシュに関連づけられたキャッシュラインの境界を前記第２アドレスが越えたか否かを決定するために調べることと、  前記境界を越えていないとき、先行のタグ配列探索オペレーションにより決定された前記第１アドレスに関連づけられたタグ配列データおよび変換索引バッファ（ＴＬＢ）探索データを使用して前記第２アドレスからデータを取り出すために前記多方向キャッシュにアクセスすることと  を具備する方法。
［Ｃ９］  キャッシュライン境界を越えた場合、前記方法は、変換索引バッファ（ＴＬＢ）探索オペレーションを実行することなく前記第２命令に関連づけられたタグ配列情報を決定するためにタグ配列探索オペレーションを実行することをさらに具備するＣ８記載の方法。
［Ｃ１０］  前記タグ配列情報を使用して前記多方向キャッシュからデータを読み取ることをさらに具備するＣ９記載の方法。
［Ｃ１１］  前記第１アドレスが第１メモリ読み取りアドレスを具備し、前記第２アドレスが第２メモリ読み取りアドレスを具備するＣ８記載の方法。
［Ｃ１２］  前記第２アドレスを、前記第１命令パケットの実行により決定された結果に関連づけられた第１書き込みアドレスと比較することと、  前記第１書き込みアドレスが前記第２アドレスと合致したとき、前記第２命令パケットを実行する際の使用に備えて前記結果を実行装置内のローカルメモリに保存することとをさらに具備するＣ８記載の方法。
［Ｃ１３］  前記ローカルメモリから前記結果を取り出すことと、  前記取り出された結果を使用して前記第２命令パケットを実行することと  をさらに具備するＣ１２記載の方法。
［Ｃ１４］  ページ境界を越えたとき、前記方法は、  前記多方向キャッシュに関連づけられた物理アドレスに前記第２アドレスを変換するために、変換索引バッファ（ＴＬＢ）探索オペレーションを実行することと、  タグ情報を決定するために、タグ配列探索オペレーションを実行することと、  前記タグ情報および前記物理アドレスに基づきメモリにアクセスすることと  をさらに具備するＣ８記載の方法。
［Ｃ１５］  相対アドレス指定を使用して前記第１アドレスから前記第２アドレスを決定するＣ８記載の方法。
［Ｃ１６］  １つあるいはそれより多くのデータ値を保存するローカルメモリと、  読み取りオペレーションに関連づけられた読み取りアドレスが先行のライトバックオペレーションに関連づけられたライトバックアドレスと合致するか否かを決定するように適合された論理回路であって、前記読み取りアドレスが前記ライトバックアドレスと合致したとき、前記ローカルメモリに前記１つあるいはそれより多くのデータ値を保存するように適合された論理回路と  を備える実行装置  を具備するマルチスレッドプロセッサ。
［Ｃ１７］  前記論理回路が、前記実行装置の外にあるメモリの記憶場所からデータを読み取るように適合されており、前記読み取りアドレスが前記ライトバックアドレスと合致しなかったとき、前記記憶場所が前記読み取りアドレスに対応するＣ１６記載のマルチスレッドプロセッサ。
［Ｃ１８］  前記実行装置がライトバック段階、デコード段階およびレジスタファイル読み取り段階を含む複数の実行段階を具備するＣ１６記載のマルチスレッドプロセッサ。
［Ｃ１９］  前記論理回路が１つあるいはそれより多くの比較器を備え、前記１つあるいはそれより多くの比較器が、読み取りアドレス情報を書き込みアドレス情報と比較し、結果を作成してデータ転送を選択的に可能にするように適合されているＣ１８記載のマルチスレッドプロセッサ。
［Ｃ２０］  前記ローカルメモリが前記実行装置内に１つあるいはそれより多くのデータラッチを具備するＣ１６記載のマルチスレッドプロセッサ。
［Ｃ２１］  データ転送を選択的に可能にするために、データ転送論理回路によって前記１つあるいはそれより多くのデータラッチが選択的にアクティブ化されるＣ２０記載のマルチスレッドプロセッサ。
［Ｃ２２］  命令に関連づけられた読み取りアドレスの少なくとも一部が先行命令に関連づけられた読み取りアドレスの一部と合致するとき、タグ配列探索オペレーションを実行することなく、多方向キャッシュメモリ内の記憶アドレスを決定するように適合された第２論理回路をさらに具備するＣ１６記載のマルチスレッドプロセッサ。
［Ｃ２３］  複数の実行装置を有するインターリーブ型マルチスレッド（ＩＭＴ）プロセッサ内の実行パイプラインにおいて、第１命令パケットの実行によりレジスタファイルに書き込まれる結果に関連づけられた書き込み識別子を、第２命令パケットに関連づけられた読み取り識別子と比較するための手段と、  前記書き込み識別子が前記読み取り識別子と合致したとき、前記第２命令パケットを実行する際の使用に備えて、前記結果を実行装置に選択的にローカル保存するための手段とを具備するプロセッサ。
［Ｃ２４］  前記第１命令パケットに関連づけられた第１アドレスから前記第２命令パケットに関連づけられた第２アドレスを決定するための手段と、  多方向キャッシュに関連づけられたキャッシュラインのキャッシュライン境界を前記第２アドレスが越えたか否かの決定をすることを決定するために、データ装置の加算器のキャリービットを調べるための手段と、  変換索引バッファ（ＴＬＢ）またはタグ配列にアクセスすることなく前記第１アドレスに関連づけられたローカル保存済み物理アドレスデータおよび方向データを使用して、仮想アドレスを前記多方向キャッシュに関連づけられた物理アドレスに変換するための手段と  をさらに具備するＣ２３記載のプロセッサ。
［Ｃ２５］  第１命令パケットの実行によりレジスタファイルに書き込まれる結果に関連づけられた書き込み識別子を、第２命令パケットに関連づけられた読み取り識別子と比較するための手段が、  前記書き込み識別子および前記読み取り識別子を受信し、前記書き込み識別子と前記読み取り識別子とが合致するか否かを示す第１アウトプットを提供するように適合された第１比較器と、  前記書き込み識別子および第２読み取り識別子を受信し、前記書き込み識別子と前記第２読み取り識別子とが合致するか否かを示す第２アウトプットを提供するように適合された第２比較器と、  前記第１アウトプットおよび前記第２アウトプットに基づき前記第２命令パケットを実行する際の使用に備えて、ローカル保存済みデータまたはレジスタデータのうちの１つを前記実行装置に選択的に提供するように適合された論理回路と  を具備するＣ２３記載のプロセッサ。
【図１】
0005661863.tif 000003
【図２】
0005661863.tif 000004
【図３】
0005661863.tif 000005
【図４】
0005661863.tif 000006
【図５】
0005661863.tif 000007
【図６】
0005661863.tif 000008
【図７】
0005661863.tif 000009
【図８】
0005661863.tif 000010
【図９】
0005661863.tif 000011
【図１０】
0005661863.tif 000012
【図１１】
0005661863.tif 000013
【図１２】
0005661863.tif 000014