(57)【要約】【課題】ゲート数、面積及び電力消費の低減を目的とする。【解決手段】レジスタリネーミングを利用するプロセッサ２は、多数のアーキテクチャ上のレジスタ指定子をリネームすることを要求するプログラム命令を、リネーミングタスクを初期セットと残余セットとに分割することによって実行する。初期セットを最初に実行するとともに、さらなる処理のためにメインチャネル３２を介して結果を渡す。続いて残余セットを順に実行し、さらなる処理のためにバックグラウンドチャネル３４を介して結果を渡す。この技術は、ロード／ストア多重ＬＤＭ命令に対するリネーミング動作を実行するのに特に有用である。  【選択図】図２
2008090848.tif 000002
【特許請求の範囲】
【請求項１】
データ処理のための装置であって、
物理レジスタセットと、
アーキテクチャ上のレジスタ指定子セットのレジスタ指定子に応答して、前記レジスタ指定子を物理レジスタセットのレジスタにマップするレジスタリネーミング回路とを具備し、
前記アーキテクチャ上のレジスタ指定子セットは、命令セット内の命令によって指定されるレジスタを表すとともに、前記物理レジスタセットは、前記命令セットの命令を処理するための物理レジスタであり、
前記レジスタリネーミング回路は、所定数より多くのレジスタマッピングを要求する動作を指示するプログラム命令に応答し、
（ｉ）前記所定数のレジスタマッピングを、初期レジスタマッピングセットと、残余レジスタマッピングセットとに分割し、
（ｉｉ）さらなる処理のためにメインチャネル上に出力される、物理レジスタのレジスタ指定子を生成するために、前記初期レジスタマッピングセットを実行し、
（ｉｉｉ）前記初期レジスタマッピングセットの実行に続いて、前記レジスタリネーミング回路によって少なくとも１つの他のプログラム命令のレジスタ指定子を生成するとともに前記メインチャネル上に出力するのと同時に、かつ前記メインチャネルと別のバックグラウンドチャネル上に出力する、物理レジスタのレジスタ指定子を生成するために、前記残余レジスタマッピングセットを実行する
ことを特徴とする装置。
【請求項２】
前記バックグラウンドチャネルに出力する物理レジスタのレジスタ指定子とともに、減少した残余レジスタマッピングセットを、各々が生成するレジスタマッピングのシーケンスとして、前記残余レジスタマッピングを実行することを特徴とする請求項１に記載の装置。
【請求項３】
前記残余レジスタマッピングセットを示すアーキテクチャ上のレジスタ指定子を格納するためのバッファーメモリを前記レジスタリネーミング回路が具備することを特徴とする請求項１に記載の装置。
【請求項４】
残余レジスタマッピングセットを実行する順番を指示する順序つきリストとして、前記バッファーメモリが前記アーキテクチャ上のレジスタ指定子を格納することを特徴とする請求項３に記載の装置。
【請求項５】
前記残余レジスタマッピングセット内に含まれるアーキテクチャ上のレジスタ指定子を有するプログラム命令は、前記アーキテクチャ上のレジスタが前記残余レジスタマッピングセットから削除される後までは、レジスタマッピングの対象とならないことを特徴とする請求項１に記載の装置。
【請求項６】
もし、前記所定数より多くのレジスタマッピングを要求する動作を指示する先行プログラム命令からの残余レジスタマッピングセットが残っているならば、前記所定数より多くのレジスタマッピングを要求する前記動作を指示する前記プログラム命令をストールすることを特徴とする請求項１に記載の装置。
【請求項７】
前記プログラム命令は、ロード／ストアユニットで実行するロード／ストア多重命令であることを特徴とする請求項１に記載の装置。
【請求項８】
前記バックグラウンドチャネルが、前記物理レジスタのレジスタ指定子を、前記ロード／ストアユニットに直接渡すことを特徴とする請求項７に記載の装置。
【請求項９】
前記ロード／ストアユニットは、１処理サイクル内で、Ｎ本の物理レジスタに格納された値を消費するロード／ストア動作を実行することが可能であるとともに、１処理サイクル内で、Ｎ本までの物理レジスタのレジスタ指定子を、前記ロード／ストアユニットに渡すように、前記バックグラウンドチャネルを構成することを特徴とする請求項７に記載の装置。
【請求項１０】
データ処理のための方法であって、
アーキテクチャ上のレジスタ指定子セットのレジスタ指定子を、物理レジスタセットのレジスタにマップする段階を具備し、
前記アーキテクチャ上のレジスタ指定子セットは、命令セット内の命令によって指定されるレジスタを表すとともに、前記物理レジスタセットは、前記命令セットの命令を処理するための物理レジスタであり、
所定数より多くのレジスタマッピングを要求する動作を指示するプログラム命令に応答し、
（ｉ）前記所定数のレジスタマッピングを、初期レジスタマッピングセットと、残余レジスタマッピングセットとに分割し、
（ｉｉ）さらなる処理のためにメインチャネル上に出力される、物理レジスタのレジスタ指定子を生成するために、前記初期レジスタマッピングセットを実行し、
（ｉｉｉ）前記初期レジスタマッピングセットの実行に続いて、前記レジスタリネーミング回路によって少なくとも１つの他のプログラム命令のレジスタ指定子を生成するとともに前記メインチャネル上に出力するのと同時に、かつ前記メインチャネルと別のバックグラウンドチャネル上に出力する、物理レジスタのレジスタ指定子を生成するために、前記残余レジスタマッピングセットを実行する
ことを特徴とする方法。
【請求項１１】
前記バックグラウンドチャネルに出力する物理レジスタのレジスタ指定子とともに、減少した残余レジスタマッピングセットを、各々が生成するレジスタマッピングのシーケンスとして、前記残余レジスタマッピングを実行することを特徴とする請求項１０に記載の方法。
【請求項１２】
バッファーメモリ内に、前記残余レジスタマッピングセットを示すアーキテクチャ上のレジスタ指定子を格納する段階を具備することを特徴とする請求項１０に記載の方法。
【請求項１３】
残余レジスタマッピングセットを実行する順番を指示する順序つきリストとして、前記バッファーメモリが前記アーキテクチャ上のレジスタ指定子を格納することを特徴とする請求項１２に記載の方法。
【請求項１４】
前記残余レジスタマッピングセット内に含まれるアーキテクチャ上のレジスタ指定子を有するプログラム命令は、前記アーキテクチャ上のレジスタが前記残余レジスタマッピングセットから削除される後までは、レジスタマッピングの対象とならないことを特徴とする請求項１０に記載の方法。
【請求項１５】
もし、前記所定数より多くのレジスタマッピングを要求する動作を指示する先行プログラム命令からの残余レジスタマッピングセットが残っているならば、前記所定数より多くのレジスタマッピングを要求する前記動作を指示する前記プログラム命令をストールすることを特徴とする請求項１０に記載の方法。
【請求項１６】
前記プログラム命令は、ロード／ストアユニットで実行するロード／ストア多重命令であることを特徴とする請求項１０に記載の方法。
【請求項１７】
前記バックグラウンドチャネルが、前記物理レジスタのレジスタ指定子を、前記ロード／ストアユニットに直接渡すことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記ロード／ストアユニットは、１処理サイクル内で、Ｎ本の物理レジスタに格納された値を消費するロード／ストア動作を実行することが可能であるとともに、１処理サイクル内で、Ｎ本までの物理レジスタのレジスタ指定子を、前記ロード／ストアユニットに渡すように、前記バックグラウンドチャネルを構成することを特徴とする請求項１６に記載の方法。
【請求項１９】
データ処理のための装置であって、
物理レジスタセット手段と、
アーキテクチャ上のレジスタ指定子セットのレジスタ指定子に応答して、前記レジスタ指定子を前記物理レジスタセットのレジスタにマップするレジスタリネーミング手段とを具備し、
前記アーキテクチャ上のレジスタ指定子セットは、命令セット内の命令によって指定されるレジスタを表すとともに、前記物理レジスタセットは、前記命令セットの命令を処理するための物理レジスタであり、
前記レジスタリネーミング手段は、所定数より多くのレジスタマッピングを要求する動作を指定するプログラム命令に応答し、
（ｉ）前記所定数のレジスタマッピングを、初期レジスタマッピングセットと、残余レジスタマッピングセットとに分割し、
（ｉｉ）さらなる処理のためにメインチャネル上に出力される、物理レジスタのレジスタ指定子を生成するために、前記初期レジスタマッピングセットを実行し、
（ｉｉｉ）前記初期レジスタマッピングセットの実行に続いて、前記レジスタリネーミング回路によって少なくとも１つの他のプログラム命令のレジスタ指定子を生成するとともに前記メインチャネル上に出力するのと同時に、かつ前記メインチャネルと別のバックグラウンドチャネル上に出力する、物理レジスタのレジスタ指定子を生成するために、前記残余レジスタマッピングセットを実行する
ことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関する。より具体的には、本発明は、アーキテクチャ上のレジスタセットのレジスタ指定子を物理レジスタセットのレジスタ指定子にマップするレジスタリネーミングを使用するデータ処理システムに関する。
【背景技術】
【０００２】
レジスタリネーミングは、アウトオブオーダー処理のサポートで公知の補助的技術である。そのようなシステムは、ゲート数を減少し、かつ電力消費を低減することが主な考察事項でない、ハイパフォーマンスアプリケーションを対象としている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
各々がリネーミングを要求する多数のレジスタを参照するプログラム命令を扱う場合に、レジスタリネーミング技術に問題が発生する。多数のレジスタを一度にリネームすることをサポートするのに必要な機構は、不都合な多数のゲート数とそれに関連する不都合な大電力消費とを必要とする。さらに、一度リネーミング機構がレジスタをリネームすると、次いでそれらのリネーム済レジスタ指定子の全てを、命令パイプラインに沿って並列に、それらのレジスタを利用するユニットに渡す必要がある。それらの多数のリネーム済レジスタ指定子を、命令パイプラインに沿って並列に渡すことにも、不都合なゲート数及び面積のペナルティが、それに関連する不都合な電力消費の増大とともに要求される。上記の問題は、ゲート数、面積及び電力消費が特に制約条件とはならないシステムでは、重大ではないこともあるが、ゲート数、面積及び消費電力を低く維持することが好ましい、小型の、安価かつ電力効率の良いプロセッサの環境内では、重大な問題を露呈する。
【０００４】
上記に対する代替案として、多数のレジスタリネーミングを要求する命令をストールし、いくらかの処理サイクルに亘る前記レジスタリネーミングを達成可能にすることがある。しかしながら、不都合なことには、これによって後続のプログラム命令をストールするとともに、さらに一度リネーム済レジスタ指定子が生成されると、前記レジスタ指定子を、不都合なほどに広い経路を端から端までパイプラインに沿って並列に渡す必要がある。
【課題を解決するための手段】
【０００５】
一構成から検討すると、本発明は、データ処理のための装置であって、
物理レジスタセットと、
アーキテクチャ上のレジスタ指定子セットのレジスタ指定子に応答して、前記レジスタ指定子を物理レジスタセットのレジスタにマップするレジスタリネーミング回路とを具備し、
前記アーキテクチャ上のレジスタ指定子セットは、命令セット内の命令によって指定されるレジスタを表すとともに、前記物理レジスタセットは、前記命令セットの命令を処理するための物理レジスタであり、
前記レジスタリネーミング回路は、所定数より多くのレジスタマッピングを要求する動作を指示するプログラム命令に応答し、
（ｉ）前記所定数のレジスタマッピングを、初期レジスタマッピングセットと、残余レジスタマッピングセットとに分割し、
（ｉｉ）さらなる処理のためにメインチャネル上に出力される、物理レジスタのレジスタ指定子を生成するために、前記初期レジスタマッピングセットを実行し、
（ｉｉｉ）前記初期レジスタマッピングセットの実行に続いて、前記レジスタリネーミング回路によって少なくとも１つの他のプログラム命令のレジスタ指定子を生成するとともに前記メインチャネル上に出力するのと同時に、かつ前記メインチャネルと別のバックグラウンドチャネル上に出力する、物理レジスタのレジスタ指定子を生成するために、前記残余レジスタマッピングセットを実行する
ことを特徴とする装置である。
【０００６】
現実的には、多数の物理レジスタ指定子を要求する命令の物理レジスタ指定子を、実際には一度に全て消費することはなく、従って単一動作内で生成する必要も、命令パイプラインに沿って一緒に渡す必要もないことを、本技術は認識している。本技術は、さらなる処理のためにレジスタ指定子を出力するレジスタリネーミング回路から、メインチャネルと、バックグラウンドチャネルとの両者を構成することで、この認識を利用している。これにより、初期レジスタ指定子セットと、後続プログラム命令のレジスタ指定子とを、メインチャネル下流のさらなる処理のために、レジスタリネーミング回路から出力する。多数のレジスタ指定子を要求するプログラム命令の実行を開始するさらなる処理に必要とされる初期レジスタ指定子が、標準的であるメインチャネルの下流で遅延なく利用可能となることとともに、後続のプログラム命令も、標準的であるメインチャネルの下流でそれらのレジスタ指定子を提供しうることを、これにより構成する。メインチャネルに沿って送信される他のレジスタ指定子と同時に、さらなる処理のために、多数のレジスタ指定子を要求する命令の残余レジスタ指定子セットを渡しうる機構を、バックグラウンドチャネルは構成する。
【０００７】
例として、ＡＲＭ命令セットのロード／ストア多重命令を考察する。そのような命令は、例えば、メモリから読み込まれたデータ値をロードする８本のレジスタを指定しても良い。このロード／ストア多重命令は、レジスタリネーミングを採用するシステムの環境内で、データ値を適切な物理レジスタにロード可能にするために、リネーム済物理レジスタセットのレジスタ指定子を供給する必要がある、ロード／ストアユニットが実行する。しかしながら、そのようなロード／ストアユニットは、通常は、並列にデータ値をロードするために、限られた容量を具備しているとともに、この容量は、発生するレジスタロードの総数よりも少ないことが多い。このように、もしメインチャネルの下流でロード／ストア動作全体を開始するのに必要なレジスタ指定子をロード／ストアユニットに渡すとともに、次いで前記バックグラウンドチャネルを介して後続のレジスタ指定子を供給すれば、全てのリネーミング動作を一度に（ｉｎ  ｏｎｅ  ｇｏ）実行可能にするリネーミングステージをストールさせることなく、前記リネーミングステージから多数のレジスタ指定子を並列に渡すことを必要とせず、また残余レジスタ指定子がある間に後続のプログラム命令がメインチャネルを介して自分のリネーミング物理レジスタ指定子を渡すことを可能にすることを妨げることなく、前記ロード／ストアユニットが適切にロード／ストア多重命令を実行する作業を適切に維持することができる。
【０００８】
バックグラウンドチャネルは、さらなる処理のために前記残余レジスタ指定子セットの全てを単一動作で渡し終える（ｐａｓｓ  ｏｕｔ）ことが可能であるが、前記残余レジスタ指定子セットをシーケンスとしてバックグラウンドチャネルに出力するように構成する方が、より効率的であるとともにより柔軟性がある。
【０００９】
これを補助するために、レジスタリネーミング回路は、実行すべき残余レジスタマッピングセットを示すアーキテクチャ上のレジスタ指定子を格納するためのバッファーメモリを具備している。このバッファーメモリは、残余レジスタマッピングセットを実行及び出力する順番を示す順序つきリストとして、アーキテクチャ上のレジスタ指定子を格納しても良く、かつこの順序は、さらなる処理のためにレジスタ指定子を一度に生成するとともに渡すアーキテクチャモデルとの整合性を維持する方法によって、それらのレジスタ指定子を使用するさらなる処理を実行する回路が使用することが想定される順序に一致しても良い。
【００１０】
本技術から発生しうる制約は、もしアーキテクチャ上のレジスタ指定子が、実行すべき残余レジスタマッピングセット内に含まれるならば、それに関連する残余アーキテクチャ上のレジスタ指定子セットを伴う先行するプログラム命令が、対象となるアーキテクチャ上のレジスタ指定子が適切にリマッピングされる対象となる程度に処理されるまで、当該アーキテクチャ上のレジスタ指定子がリマッピングの対象とはならないことである。これにより、リネーミング動作を具備するとともに上流のインオーダー動作が維持される。なぜなら、アウトオブオーダー動作が許容されることを可能にするのは、前記リネーミング動作であるとともに、通常は関連する回復機構及び結合機構であるからである。
【００１１】
発生しうる他の制約は、先行命令からの実行すべき残りのマッピングが空でない限り、命令が残余マッピングセットを使用しないことである。
【００１２】
所定数を越えるとともに、メインチャネルとバックグラウンドチャネルとの両者の使用を要求する多数のレジスタ指定子を具備するプログラム命令は、広範な種々の異なる形態をとりうることが好ましい。本技術を使用可能である１つの際立った実施例の形式は、関連するロード／ストアユニットで実行されるロード／ストア命令で使用しても良い。この環境では、バックグラウンドチャネルが、ロード／ストアユニットに直接物理レジスタのレジスタ指定子を渡すことが可能である。もし、ロード／ストアユニットが、どのプロセッササイクルでもＮ個のレジスタ指定子を消費する性能を有するならば、ロード／ストアユニットを好ましい程度に完全に占有することを維持するために、処理サイクル内でＮ個までのレジスタ指定子の受け渡しをサポート可能なように、バックグラウンドチャネルの幅を選択するために、このことを使用しても良い。
【００１３】
他の構成から検討すると、本発明は、データ処理のための方法であって、
アーキテクチャ上のレジスタ指定子セットのレジスタ指定子を、物理レジスタセットのレジスタにマップする段階を具備し、
前記アーキテクチャ上のレジスタ指定子セットは、命令セット内の命令によって指定されるレジスタを表すとともに、前記物理レジスタセットは、前記命令セットの命令を処理するための物理レジスタであり、
所定数より多くのレジスタマッピングを要求する動作を指定するプログラム命令に応答し、
（ｉ）前記所定数のレジスタマッピングを、初期レジスタマッピングセットと、残余レジスタマッピングセットとに分割し、
（ｉｉ）さらなる処理のためにメインチャネル上に出力される、物理レジスタのレジスタ指定子を生成するために、前記初期レジスタマッピングセットを実行し、
（ｉｉｉ）前記初期レジスタマッピングセットの実行に続いて、前記レジスタリネーミング回路によって少なくとも１つの他のプログラム命令のレジスタ指定子を生成するとともに前記メインチャネル上に出力するのと同時に、かつ前記メインチャネルと別のバックグラウンドチャネル上に出力する、物理レジスタのレジスタ指定子を生成するために、前記残余レジスタマッピングセットを実行する
ことを特徴とする方法を構成する。
【００１４】
さらなる他の構成から検討すると、本発明は、データ処理のための装置であって、
物理レジスタセット手段と、
アーキテクチャ上のレジスタ指定子セットのレジスタ指定子に応答して、前記レジスタ指定子を前記物理レジスタセットのレジスタにマップするレジスタリネーミング手段とを具備し、
前記アーキテクチャ上のレジスタ指定子セットは、命令セット内の命令によって指定されるレジスタを表すとともに、前記物理レジスタセットは、前記命令セットの命令を処理するための物理レジスタであり、
前記レジスタリネーミング手段は、所定数より多くのレジスタマッピングを要求する動作を指定するプログラム命令に応答し、
（ｉ）前記所定数のレジスタマッピングを、初期レジスタマッピングセットと、残余レジスタマッピングセットとに分割し、
（ｉｉ）さらなる処理のためにメインチャネル上に出力される、物理レジスタのレジスタ指定子を生成するために、前記初期レジスタマッピングセットを実行し、
（ｉｉｉ）前記初期レジスタマッピングセットの実行に続いて、前記レジスタリネーミング回路によって少なくとも１つの他のプログラム命令のレジスタ指定子を生成するとともに前記メインチャネル上に出力するのと同時に、かつ前記メインチャネルと別のバックグラウンドチャネル上に出力する、物理レジスタのレジスタ指定子を生成するために、前記残余レジスタマッピングセットを実行する
ことを特徴とする装置を構成する。
【００１５】
本発明の上記の及び他の目的、特徴及び利点は、添付図面と関連付けて読むべき後続の例示的な実施態様の詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【００１６】
図１は、プリフェッチステージ６と、デコードステージ８と、リネーミングステージ１０と、発行ステージ１２と、実行ステージ１４（及び関連する物理レジスタ１５）と、ライトバックステージ１６とを具備する命令パイプラインにプログラム命令を供給する命令キャッシュ４を具備するデータ処理装置２を図示している。実際には、そのようなデータ処理装置２の内部に、追加の及び／又は代替のパイプラインステージを具備するのが好ましい。さらに、完全なデータ処理装置２は通常、当業者に明らかであるとともに、簡潔を旨とするために図１から省略されている、多くの追加構成要素を具備するのが好ましい。
【００１７】
第１メイン実行ユニット１８と、積和ユニット２０と、第２メイン実行ユニット２２と、（システムのデータ側のステートマシンであるロード／ストアユニットに要求を送信するように動作する）アドレスロード／ストアステージ２４とを含み、プログラム命令を並列に処理可能である複数のユニットを、実行ステージ１４は具備する。第１メイン実行ユニット１８と、積和ユニット２０とは、ライトバックユニット２６を共有する。第２メイン実行ユニット２２と、アドレスロード／ストアステージ２４とは、各々専用のライトバックユニット２８，３０をそれぞれ具備している。スーパースカラシステムでは普通であるが、並列実行のために、発行ステージ１２から、実行ステージ１４の種々の適切な部分に、複数の命令を並列に発行しても良い。リネーミングステージ１０は、レジスタリネーミングを実行することによって、発行ステージ１２がアウトオブオーダー命令発行を実行することを許可する。アウトオブオーダー実行を容易にするためのレジスタリネーミングは、それ自体公知の技術であり、かつ本明細書ではこれ以上説明しない。本技術は、インオーダー命令発行システムでも、即ち全てのレジスタ指定子をパイプラインに沿って次々と送り込むことを回避するのにも有用である。
【００１８】
本技術のリネーミングステージ１０は、レジスタ指定子及び他の制御信号を命令パイプライン内の下流方向に渡す、メインチャネル出力３２と、バックグラウンドチャネル出力３４との両者を具備する。メインチャネル３２は、比較的少数のレジスタ指定子を要求する命令の殆どに使用するとともに、従って、例えば読み込まれる３本のレジスタと書き込まれる２本のレジスタに関連するレジスタ指定子を渡すだけの能力を有する幅のような、そのような通常の命令に合致した幅を具備するが、これらのサイズは、純粋に実施例であるとともに、対象とする応用例に依存する異なる幅を使用しても良い。バックグラウンドチャネル３４は、メインチャネル３２に沿って渡すいかなる信号とも独立に、１処理サイクル当たり２個のレジスタ指定子をアドレスロード／ストアステージ２４に供給することをサポートする幅を具備する。
【００１９】
ロード／ストア命令が、メインチャネルの性能を超える数の（即ち、所定数よりも多くの）レジスタ指定子を要求する状況に遭遇した場合、実行すべきレジスタマッピングを、初期セットと、残余セットとに分割する。  初期セットを最初に実行し、結果をリネーミングステージ１０から、通常のメインチャネル３２の下流の発行ステージ１２に渡す。残余リマッピングセットを、バックグラウンド動作として後続の処理サイクル上で実行するとともに、結果を一度に２つ、バックグラウンドチャネル３４に沿って、アドレスロード／ストアステージ２４に直接渡す。このように、一度初期マッピングセットをリネーミングステージ１０で実行するとともに、メインチャネル３２に沿って渡したら、後続のプログラム命令をストールさせることなしに、前記後続のプログラム命令を扱うためにメインチャネル３２及びリネーミングステージ１０のリネーミング能力の少なくともいくらかが利用可能になる。後続のプログラム命令が、実行すべき残余リマッピングセット内に含まれるアーキテクチャ上のレジスタを指定する場合には、リマッピングそれ自体は順番に実行すべき制約を受けるので、例外が存在する。そのような後続プログラム命令を停止する。
【００２０】
図２は、ロード多重命令と、後続のプログラム命令とに関連するマッピング動作を実行する、リネーミングステージ１０を図示している。状態Ａでは、リネーミングステージ１０で、ロード多重命令ＬＤＭを受信するとともに、前記ＬＤＭは、レジスタｒ１３内部に保持される値によって指定されるメモリアドレスから開始するメモリから順に読み込まれるデータ値を、レジスタｒ０−ｒ７にロードすることを指示する。この実施例内のリネーミングステージ１０は、一度に５個のレジスタ指定子をメインチャネル３２に沿って発行ステージ１２に渡す能力を具備しているが、これは前記ＬＤＭ命令の完全な実行のために必要とされる、８個のリマップされたレジスタ指定子の全てを渡すのには不十分である。リネーミングステージ１０内部に具備するリネーミングエンジン３６は、１処理サイクル内で、５個のレジスタリネーミング動作を実行する（ｆｏｒｍ）能力を具備する。このように、時刻Ａで図示する状態では、レジスタｒ０−ｒ４のリネーミングを実行するとともに、これらのリネーム済レジスタ指定子を、前記ＬＤＭ命令に関連する制御信号とともに、一緒にメインチャネル３２に沿って、発行ステージ１２に渡し終えるとともに、そこからアドレスロード／ストアステージ２４に渡し終える。未だリネームされていない残余アーキテクチャ上のレジスタセットｒ５−ｒ７の指定子を「リネーム対象リスト」内に格納するバッファーメモリ３８を構成する。
【００２１】
状態Ｂは、後続の命令ＭＯＶが、指定されたデータ値をレジスタｒ８にロードすることを指示する、後続のサイクルを図示している。対象レジスタ、即ちｒ８のリネーミング要求をリネーミングエンジン３６に渡すとともに、返却されるリネーム済レジスタ指定子をＭＯＶ命令に関連する制御信号とともに、メインチャネル３２に沿って下流の発行ステージ１２に一緒に発行する。同時に、残余アーキテクチャ上のレジスタを表す「リネーム対象リスト」内の次の２本のアーキテクチャ上のレジスタを、リネームするためにリネーミングエンジン３６に送信する。この実施例では、バッファーメモリ８内部に格納される順序つきリスト内の次の２本のアーキテクチャ上のレジスタは、レジスタｒ５とｒ６である。これらのレジスタｒ５とｒ６とを、「リネーム対象リスト」から削除し、リネーミングエンジン３６でマップするとともに、バックグラウンドチャネル３４上で、アドレスロード／ストアステージ２４に直接、そのロード／ストアパイプラインに沿って出力する。状態Ｂは、１本のアーキテクチャ上のレジスタｒ７を、リマップするためにバッファーメモリ３８内に留めておく。
【００２２】
状態Ｃは、レジスタｒ９に保持されるデータ値に固定値を加算するとともに、次いでこの結果をレジスタｒ９に書き戻すＡＤＤ命令を実行する次の処理サイクルを図示している。レジスタｒ９に関するリネーミング要求をリネーミングエンジン３６に送信する。「リネーム対象リスト」内の最後のアーキテクチャ上のレジスタｒ７も、バッファーメモリ３８からリネーミングエンジン３６に送信し、リネーミング対象にするとともに、次いでロード／ストアパイプラインへのバックグラウンドチャネル３４上に出力する。これにより、バッファーメモリ３８は空になる。レジスタｒ９に関するＡＤＤ命令用のリネーム済レジスタ指定子を、前記ＡＤＤ命令に関連する制御信号と一緒に、同時にメインチャネル３２に沿って渡し終える。
【００２３】
図３は、リネーミングステージ１０の動作を図示するフローチャートである。図３のフローチャートは、やむを得ず、ハードウェア動作には反映されない方式で、動作を順に実行するものとして表すものと解する。それでも、全体の動作は、同一の結果を達成するとともに、図３で図示された動作を構成する種々のハードウェアによる実施がいかにして構成可能であるか当業者には明らかである。
【００２４】
段階４２で、リネーミングステージ１０は、リネーミングを要求する命令の受信を待機する。段階４４は、バッファーメモリ３８の「リネーム対象リスト」内に格納されることによって既に留保中のリマッピング動作対象であるアーキテクチャ上のレジスタをリマップする要求を、受信した命令が具備するか否かを検査する。もしそのような留保中のリマッピングが検出されたら、リネーミングステージ１０は、直前のリマッピングが完了する後まで、新規リマッピングの実行を待機する。
【００２５】
段階４６で、新規プログラム命令が、所定数より多くの実行すべきレジスタリマッピングを要求するか否かを判定する。例えば、２，３のレジスタのみをロードする指示をするＬＤＭ命令は、リマップするとともに、バックグラウンドチャネル３４の使用を要求せずに、パイプラインの残りの部分に渡しても良い。しかしながら、長いレジスタリストを具備するＬＤＭ命令は、バックグラウンドチャネル３４の使用を要求する。  
【００２６】
もし所定数を超えないならば、次いでリネーミングエンジン３６がレジスタリネーミングを実行する段階４８に処理が進むとともに、次いで対象となる命令とともに物理レジスタ指定子を一緒に、メインチャネル３２に沿って発行ステージ１２に出力する段階５０に進む。
【００２７】
もし所定数を超えるならば、次いで「リネーム対象リスト」が空であるか否かの判定を行う段階４７に進む。もし「リネーム対象リスト」が空でなければ、次いで段階４２でリネーミングのために受信された命令を、「リネーム対象リスト」内で異なる命令からのアーキテクチャ上のレジスタ指定子を混同しないように、「リネーム対象リスト」が空になるまでストールする。このストール状況は稀であるとともに、多くの場合、他の理由によるストールに導く。段階５２で、リネーミングを要求する最初の５本のレジスタをリネーミング動作対象とする。リネーミングを要求する前記残余アーキテクチャ上のレジスタ指定子を、バッファーメモリ３８の「リネーム対象リスト」へ格納する。段階５４で、リマップされた５本のレジスタの物理レジスタ指定子を、対象命令とともに、一緒にメインチャネル３２上で渡し終える。（図３の段階５４，５０は、リマッピング要求する命令の受信に関して、通常同じタイミングを有する。）段階５４の後に、次の処理サイクルで、バッファーメモリ３８内に格納された「リネーム対象リスト」上の次の２本までのレジスタを、リネーミングエンジン３６を使用してリネームする。これは、図２のステージＢ及びＣで説明している。段階５８で、残余アーキテクチャ上のレジスタ指定子セットのリネーム済メンバーである物理レジスタ指定子を、バックグラウンドチャネル３４からアドレスロード／ストアステージ２４へ、ロード／ストアパイプライン内に出力する。段階６０では、バッファーメモリ３８内に格納された「リネーム対象リスト」内にレジスタが残っているか否かを判定するとともに、もし残っていれば、段階５６に処理を戻す。 
【００２８】
添付図面を参照しながら、本明細書で本発明の例示的な実施形態を詳細に説明してきたが、本発明はそれらの明確な実施形態に限定されるものではなく、かつ本願特許請求の範囲で定義される本発明の範囲及び趣旨から逸脱することなく、種々の変形例及び修正例を、当業者が容易に想到可能であると解するべきである。
【図面の簡単な説明】
【００２９】
【図１】図１は、レジスタリネーミングステージを有するとともに、レジスタ指定子を渡すメインチャネル及びバックグラウンドチャネルの両者を含む、命令パイプラインを具備するデータ処理装置を図式的に説明している。
【図２】図２は、ロード／ストア多重命令処理中の複数の時刻における、図１のシステムの一部を形成するレジスタリネーミング回路を図式的に説明している。
【図３】図３は、レジスタ指定子を渡す、メインチャネル及びバックグラウンドチャネルの両者を利用するレジスタリネーミング回路の動作を図式的に説明するフローチャートである。
【符号の説明】
【００３０】
４  命令キャッシュ
６  プリフェッチステージ
８  デコードステージ
１０  リネーミングステージ
１２  発行ステージ
１４  実行ステージ
１５  物理レジスタ
１６  ライトバックステージ
１８  第１メイン実行ユニット
２０  積和ユニット
２２  第２メイン実行ユニット
２４  アドレスロード／ストアステージ
２６  ライトバックユニット
２８  ライトバックユニット
３０  ライトバックユニット
３２  メインチャネル
３４  バックグラウンドチャネル
【図１】
2008090848.tif 000003
【図２】
2008090848.tif 000004
【図３】
2008090848.tif 000005
【外国語明細書】
2008090848.tif 000006
2008090848.tif 000007
2008090848.tif 000008
2008090848.tif 000009
2008090848.tif 000010
2008090848.tif 000011
2008090848.tif 000012
2008090848.tif 000013
2008090848.tif 000014
2008090848.tif 000015
2008090848.tif 000016
2008090848.tif 000017
2008090848.tif 000018
2008090848.tif 000019
2008090848.tif 000020
2008090848.tif 000021
2008090848.tif 000022
2008090848.tif 000023
2008090848.tif 000024
2008090848.tif 000025
2008090848.tif 000026