(57)【特許請求の範囲】
【請求項１】
集積回路チップの命令実行ユニットのための統合化構造のレイアウトによるレジスタ・リネーミング回路であって、
行列状に配置された複数のデータ従属性ブロックからなり、一群の命令のアドレス信号を受信し、従属性情報を従属性出力線を介して送出するデータ従属性チェッカーと、
前記データ従属性チェッカーに接続され、前記従属性情報を前記従属性出力線を介して受信し、タグ出力線を中央チャネルに配置し前記タグ出力線を介してタグ情報を送出するタグ・アサインメント・ロジックと、
前記タグ・アサインメント・ロジックに接続され、前記タグ情報を前記タグ出力線を介して受信し、さらに前記タグ情報をレジスタ・ファイルのレジスタ・ファイル・アドレス・ポートに転送するレジスタ・ファイル・ポート・マルチプレクサと
を有することを特徴とするレジスタ・リネーミング回路。
【請求項２】
前記アドレス信号は、前記一群の命令のソース・オペランド・アドレス信号と、前記一群の命令の宛先オペランド・アドレス信号とを含むことを特徴とする、請求項１記載のレジスタ・リネーミング回路。
【請求項３】
前記データ従属性チェッカーは、前記命令群における命令間のデータ従属性及び、出力従属性情報を求めるものであることを特徴とする、請求項２記載のレジスタ・リネーミング回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体フロアプラン・レイアウトに関するもので、特に、スーパースケーラーＲＩＳＣチップのレジスタ・リネーム回路の各部分を一体化した半導体フロアプラン・レイアウトに関するものである。
【背景技術】
【０００２】
下記のものは、同一承継人の出願に係る、同時係属中の特許出願である：
＊「スーパースケーラーＲＩＳＣ命令スケジューリング」、出願番号０７／８６０，７１９、本出願と同時に出願  （Ａｔｔｏｒｎｅｙ  Ｄｏｃｋｅｔ  Ｎｏ．  ＳＰＯ３５）、
＊「高性能ＲＩＳＣマイクロプロセサ・アーキテクチャ」、出願番号０７／８１７，８１０、１９９２年８月１日出願  （Ａｔｔｏｒｎｅｙ  Ｄｏｃｋｅｔ  Ｎｏ．ＳＰＯ１５）、
＊「拡張性を持つＲＩＳＣマイクロプロセサ・アーキテクチャ」、出願番号０７／８１７，８０９、１９９２年８月１日出願（Ａｔｔｏｒｎｅｙ  ＤｏｃｋｅｔＮｏ．ＳＰＯ２１）。
上記出願の開示を参考文献として本明細書に含める。
【０００３】
２つの入力オペランドと１つの出力値を持つ命令が与えられたとき、典型的なＲＩＳＣコンピュータの命令の場合のように、どの２つの命令間にも従属性に関して５つの可能性がある：即ち、２つの真の従属性、２つの反従属性、１つの出力従属性である。さらに、いくつかの命令のグループ（例えば、ウィンドウ中の命令のグループ）に対する従属性の数はそのグループにある命令の数の２乗に比例して増大する。その理由は、各命令に対して他のすべての命令との従属性を考慮しなくてはならないからである。さらに、その複雑さは、１サイクル内で、プロセサが復号しようとしたり、送出しようとしたり、さらに完了しようとする命令の数に比例した分だけ増加する。その理由は、これらの動作は、従属性を作り出し、従属性により制御され、従属性を考慮から除外するからである。
【０００４】
真の従属性は（時には「流れ従属性」もしくは「読み書き従属性」と呼ばれる）しばしば反従属性（これは「書き読み従属性」とも呼ばれる）と同一のグループにまとめられ、出力従属性（「書き書き従属性」とも呼ばれる）は命令従属性の１つのグループに入れられる。このグループ化を行なう理由は、これら各々の従属性がレジスタや他の記憶場所を用いるときに現れるからである。しかしながら、真の従属性を他の２つの従属性と区別することは重要である。真の従属性はプログラム中のデータや情報の流れを表す。反従属性と出力従属性が生じるのは、異なる時点で、レジスタや他の記憶場所が異なる計算に対して、異なる価を保持するためである。
【０００５】
命令が順序通り送出され、順序通りに完了すれば、レジスタと価の間には１対１の対応がつく。実行中のどの時点に於てもレジスタ識別子は、対応するレジスタに入っている価を正確に識別することができる。命令が順序に従わず送出され、順序に従わず完了すれば、レジスタと価との間の対応は崩れ、価がレジスタに対して衝突を起こすことになる。これは、レジスタ割付の目標ができるだけ多くの価をできるだけ少数のレジスタを用いて格納したいという場合には深刻な問題となる。即ち、多数の価を少数のレジスタで格納するとき、実行順序がレジスタアロケータが想定したものと異なると、多数の衝突が生じる。
【０００６】
反従属性及び出力従属性は、「記憶衝突」と呼ぶのがより妥当である。その理由は、記憶場所（レジスタも含めて）の再使用により、命令が元々独立したものであっても、命令同士がお互いに干渉し合うようになるからである。記憶衝突は命令の送出に制限を与え、性能を低下させる。
【０００７】
この明細書で論じるいくつかの基本的概念は多くの文献でより詳しく説明されている（例えば、非特許文献１、２参照）。特に、非特許文献１のテキスト、特に２章、６章、７章では本発明が取り組むレジスタ・リネーミングとデータ従属性の問題に関して優れた考察を行っている。
【非特許文献１】Ｍｉｋｅ  Ｊｏｈｎｓｏｎ，Ｓｕｐｅｒｓｃａｌａｒ  Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ  Ｄｅｓｉｇｎ（Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ，  Ｉｎｃ．，  Ｅｎｇｌｅｗｏｏｄ  Ｃｌｉｆｆｓ，  Ｎｅｗ  Ｊｅｒｓｅｙ，  １９９１）
【非特許文献２】Ｊｏｈｎ  Ｌ．  Ｈｅｎｎｅｓｓｙ  ｅｔ  ａｌ，．Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ−Ａ  Ｑｕａｎｔｉｔａｔｉｖｅ  Ａｐｐｒｏａｃｈ  （Ｍｏｒｇａｎ  Ｋａｕｆｍａｎｎ  Ｐｕｂｌｉｓｈｅｒｓ，  Ｉｎｃ．，  Ｓａｎ  Ｍａｔｅｏ，  Ｃａｌｉｆｏｒｎｉａ，  １９９０）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記の考察から明らかなように、テータ従属性チェッカー、および一般的にレジスタ・リネーム回路を製作するのは複雑で、半導体上の大きな面積を必要とする。特にスーパースケーラＲＩＳＣプロセサは、複数の命令の同時実行が可能になるよう研究開発が懸命に進められている。このテクノロジーが開発されるのに伴い、チップ開発者はより多くの命令を同時に実行しようと企てる。従って、必要となる従属性チェックの量は指数関数的に増加することになる。ここで必要なのは、レジスタ・リネーム回路の各部分を統合化し半導体の貴重な面積の省面積化を行えるレイアウト技術（フロアプランとも呼ばれる）である。
【課題を解決するための手段】
【０００９】
本発明の目的は、貴重な半導体面積の省面積化のため、レジスタ・リネーミング回路（ＲＲＣ）のデータ従属性チェッカー（ＤＤＣ）とタグ・アサイメント・ロジック（ＴＡＬ）を統合化する半導体フロアプラン・レイアウトを行うことである。
【００１０】
ＤＤＣとＴＡＬの間を信号が伝搬する距離、ＴＡＬとレジスタ・ファイル・ポート・マルチプレクサ（ＲＰＭ）間を信号が伝搬する距離が短くなるように、ＤＤＣとＴＡＬをレイアウトすることが本発明のフロアプランの企図である。選択されたＤＤＣコンパレータ列とそれに関連するＴＡＬを再編成することによって、大幅な省面積化が可能になり、最高８つの命令に対してレジスタ・リネーミングを行なうことができる。
【００１１】
ＤＤＣの機能は、これらのバケツにある命令間に存在する従属性の位置指定を行うことである。ＤＤＣは、各命令のソース・レジスタのアドレスとその命令より前にあるすべての命令の宛先レジスタを比較して、この機能を行う。例えば、命令Ｂが書き込んだレジスタから命令Ａが価を読み取ることになっている場合、命令Ａは命令Ｂに従属しており、命令Ａは命令Ｂが完了するまで命令の実行を開始できない。ＤＤＣの出力はこのような従属性を表す。データ従属性チェックは、列上に配置された複数のコンパレータにより行われる。
【００１２】
こうして得られたＤＤＣの結果を用いて、ＴＡＬは、順序通りでない命令の実行に必要なリザルト・フォアワーディングを制御する。ＴＡＬはＲＰＭに対して順番に入力信号を発生し、レジスタ・ファイル・ポート・マルチプレクサは、レジスタ・ファイルもしくは一時バッファから読み込まれるデータのアドレスを振り向け、このアドレスを引き続いて命令を送出するためのオペランドとして用いる。
【発明を実施するための最良の形態】
【００１３】
第１図は本発明に関連する命令実行ユニット（ＩＥＵ）１００の代表的高水準ブロックダイアグラムである。ＩＥＵ１００の目標はできるだけ多くの命令を最小の時間で実行することである。これを行うには２つの基本的方法がある：ひとつは、夫々の命令ができるだけ短い時間で実行できるようＩＥＵを最適化することであり、もうひとつは、いくつかの命令を同時に実行できるようＩＥＵを最適化することである。
【００１４】
本発明で用いられるＩＥＵは、同一承継人の出願に係る、係属中の以下の特許出願に開示されている。即ち、「高性能ＲＩＳＣマイクロプロセサ・アーキテクチャ」、出願番号０７／８１７，８１０、９２年８月１日出願（Ａｔｔｏｒｎｅｙ  Ｄｏｃｋｅｔ  Ｎｏ．ＳＰＯ１５／１３９７．０２８０００１）と「拡張性を持つＲＩＳＣマイクロプロセサ・アーキテクチャ」、出願番号０７／８１７，８０９、９２年８月１日出願（Ａｔｔｏｒｎｅｙ  Ｄｏｃｋｅｔ  Ｎｏ．ＳＰＯ２１／１３９７．０３００００１）。これらの公開特許を参考文献としてここに含める。
【００１５】
命令は、命令取り出しユニット（ＩＦＵ，不図示）から命令ＦＩＦＯ１０１（ファースト・インファースト・アウトのレジスタ・スタック記憶装置）によって、「バケツ」と呼ばれる４つ命令のグループ毎にＩＥＵ１００に送られる。ＩＥＵ１００は同時に最高２つのバケツの命令のデコードとスケジュールを行うことが可能である。ＦＩＦＯ１０１は、０−３と名付けた４つのバケツに合計１６の命令を記憶する。ＩＥＵ１００は命令ウィンドウ１０２を見る。本発明の１つの実施例では、ウィンドウ１０２は８つの命令（バケツ０と１）を含む。すべてのサイクルに於て、ＩＥＵ１００はウィンドウ１０２から最大数の命令を送出しようとする。ウィンドウ１０２は命令バッファ・レジスタとして機能する。ひとつのバケツの命令が実行され、その結果がプロセサのレジスタ・ファイル（ブロック１１７）に格納されると、バケツは底１０４から洗い流され、新しいバケツが上部１０６に入れられる。
【００１６】
命令をパラレル即ち順序に従わずに実行するには、夫々の命令に必要なデータが、その命令が必要な時に得られるよう、また夫々の命令の結果を必要とするその後のいかなる命令に対しても、その結果が得られるよう注意しなくてはならない。レジスタ・リネーム回路（ＲＲＣ）は、コンピュータのＩＥＵのスケジューリング論理の一部であるが、現行の命令間の従属性の位置指定を行い、かつ、その命令のソース（入力）をリネームして、この機能を行なう。
【００１７】
上述したように、従属性には３つのタイプがある：即ち、入力従属性、出力従属性、反従属性である。入力従属性は、例えば、ある命令Ａがその前の命令Ｂの結果に基づいて行われるときに現われる。出力従属性はＡとＢの出力が同一の場所に格納されようとしたときに現われる。反従属性は、命令ストリーム中で命令ＡがＢの前に来、Ｂの結果がＡの入力のひとつと同一の場所に格納されるときに現われる。
【００１８】
入力従属性は、入力が得られるまで命令を実行しないことにより処理される。ＲＲＣ１１２は、現行の命令間の入力従属性の位置指定を行い、その後、ある命令に対するすべての入力の用意ができた時、命令スケジューラ即ちイッシュア１１８に信号を送る。これらの従属性の位置指定を行うため、ＲＲＣ１１２は、データ従属性チェッカー（ＤＤＣ）１０８を用いて、各命令に対する入力レジスタ・ファイル・アドレスをそれ以前のすべての命令の出力アドレスと比較する。もしある命令の入力が、それ以前のある命令の出力が格納されるレジスタから来ることが分かれば、後の命令は前の命令が終わるまで待たなくてはならない。
【００１９】
このＲＲＣ１１２を実現することにより、同時に８つの命令をチェックできるため、ウィンドウ１０２から出る８つの命令の中の任意の一つを現行命令として定義できる。本発明は命令の数かそれより多い場合或いは少ない場合にも容易に適用できることは、当業者にとって自明であろう。
【００２０】
本発明の１つの実施例では、命令は０から３の入力と０又は１の出力を持ち得る。ほとんどの命令の入力及び出力は、いくつかあるレジスタ・ファイルの１つから取り出されたり、そこに格納されたりする。各レジスタ・ファイル１１７（例えば、個別の、整数ファイル、フローティング・ファイル、ブール・ファイル）には３２の真のエントリーと８つの一時バッファからなるグループがある。１つの命令が完了すると（ここで「完了」とは動作がすべて終わり、そのオペランドが宛先レジスタに書かれる準備ができていることを言う）、その結果は一時バッファ１１６のあらかじめ定められた場所に格納される。その結果は、それより以前の命令のすべての結果がレジスタ・ファイル１１７のあるべき場所に転送された後に、レジスタ・ファイルの適当な場所へ転送される。このような、計算結果を一時バッファ１１６からレジスタ・ファイル１１７に転送することは、「リタイアメント」と呼ばれ、ターミネーション論理で制御されるが、このことは当業者にとって自明であろう。２つ以上の命令が一時にリタイアされてもよい。当業者にとって自明なように、リタイアメントには、コンピュータのプログラムカウンタを含む、機械の「公式の状態」を更新することが含まれる。例えば、命令Ｉ０が命令Ｉ１のすぐ前に完了すれば、それらの結果はどちらもレジスタ・ファイル１１７に直接に格納できる。しかし、もし次に命令Ｉ３が完了すれば、その結果は、命令１２が完了するまで、一時バッファ１１６に格納されなくてはならない。ＩＥＵ１００に、各命令の結果を一時バッファ１１６の事前に割当てた場所に格納させることにより、ＩＥＵ１００はプログラムの順序通りでない命令を実行し、しかも、出力従属性や反従属性から生ずる問題を避けることができる。
【００２１】
ＲＲＣ１１２はバス１２０を通し命令スケジューラ１１８にビット・マップを送り、ウィンドウ１０２のどの命令の送出準備ができているかを知らせる。命令デコード論理（不図示）はバス１２３を通して各命令に対する資源要求事項をイッシュア１１８に知らせる。ＩＥＵ１００の夫々の資源（例えば、各機能ユニットは加算器、乗算器、シフタ、又はそれと同類のものである）に対し、イッシュア１１８はこの情報をスキャンし、バス１２１を通して送出信号を出力することにより、最初とそれに引き続く送出命令を選択する。この送出信号は、その入力が各命令の入力のアドレスである、ＲＲＣ内のレジスタ・ファイル・ポート・マルチプレクサ（ＲＰＭ）１２４の１つのグループを選択する。
【００２２】
その計算結果はレジスタ・ファイル１１７に転送されるまで、数サイクル一時バッファ１１６に留まる可能性もあるので、レジスタ・ファイル１１７に転送される前に一時バッファ１１６から結果を取り出す機構が設けられており、その情報を他の命令のオペランドとして用いることができる。この機構は、「リザルト・フォアワーディング」と呼ばれるが、これが無ければ、イッシュア１１８は順序通りでない命令を送出することはできないであろう。このリザルト・フォアワーディングはレジスタ・ファイル１１７で行われ、ＲＲＣ１１２で制御される。リザルト・フォアワーディングを行うのに必要な制御信号は、そのような制御信号を発生させるのに用いるランダム論理と同様、当業者にとっては自明となるであろう。
【００２３】
もしある命令が他の現行の命令のいずれとも従属性を持たなければ、リザルト・フォアワーディングは必要ではない。その理由はその命令の入力はレジスタ・ファイル１１７にすでに入っているからである。イッシュア１１８がその命令を実行するときには、ＲＲＣ１１２はレジスタ・ファイル１１７にデータを出力するよう要請する。
【００２４】
ＲＲＣ１１２は３つの小部分を持つ：データ従属性チェッカー（ＤＤＣ）１０８、タグ・アサイメント・ロジック（ＴＡＬ）１２２及びレジスタ・ファイル・ポート・マルチプレクサ（ＲＰＭ）１２４である。ＤＤＣ１０８は現行命令間のどこに入力従属性があるかを決定する。ＴＡＬ１２２はイッシュア１１８に対し従属性をモニターし、リザルト・フォアワーディングを制御する。ＲＰＭ１２４はイッシュア１１８により制御され、ＴＡＬ１２２の出力を適切なレジスタ・ファイル・アドレス・ポート１１９に送り出す。命令はバス１１０を通してＤＤＣ１０８に受け渡される。ウィンドウ１０２の夫々の命令に対してすべてのソース・レジスタがすべてのそれ以前の宛先レジスタと比較される。
【００２５】
各命令は唯一の宛先を持ち、この宛先はひとつの実施例ではダブル・レジスタであってもよい。命令はそれより前の命令にのみ依存しており、最大３つのソース・レジスタを持つことができる。従属性を調べるのにお互いにチェックし合わなくてはならない色々のレジスタ・ファイル・ソース・アドレスと宛先アドレスがある。前述したように一番下にある２つのバケツに対応する８つの命令がＤＤＣ１０８でチェックされる。ウィンドウ１０２の命令に対してすべてのソース・レジスタ・アドレスがすべてのそれ以前の宛先レジスタ・アドレスと比較される。
【００２６】
例えば、あるプログラムに次のような一連の命令があるとする：
ａｄｄ  Ｒ０，Ｒｌ，Ｒ２    （０）
ａｄｄ  Ｒ０，Ｒ２，Ｒ３    （１）
ａｄｄ  Ｒ４，Ｒ５，Ｒ２    （２）
ａｄｄ  Ｒ２，Ｒ３，Ｒ４    （３）
命令０−３の各命令の最初の２つのレジスタはソース・レジスタで、各命令の最後のレジスタは宛先レジスタである。例えば、Ｒ０とＲ１は命令０に対するソース・レジスタで、Ｒ２は宛先レジスタである。命令０はレジスタ０とレジスタ１の内容を加算しその結果をＲ２に格納する。この例の命令１−３に対し、すべての従属性を評価するのに以下のような比較が必要となる：
Ｉ１Ｓ１，Ｉ１Ｓ２  ｖｓ．    Ｉ０Ｄ
Ｉ２Ｓ１，Ｉ２Ｓ２  ｖｓ．    Ｉ１Ｄ，Ｉ０Ｄ
１３Ｓ１，１３Ｓ２  ｖｓ．    Ｉ２Ｄ，Ｉ１Ｄ，Ｉ０Ｄ
上の読み方は次のようである：ＩＸＲＳ１は命令Ｘのソース（入力）Ｎｏ．１のアドレスで；ＩＸＲＳ２は命令Ｘのソース（入力）Ｎｏ．２のアドレスで；ＩＸＤは命令Ｘの宛先（出力）アドレスである。
【００２７】
ＲＲＣ１１２は、命令２が命令０に対し出力従属性を持つが、それを無視できる。その理由は、プロセサは一時バッファを持ち、そこに命令２の結果を、命令１の結果と干渉せずに格納できるからである。前述したごとく、命令０と１の結果がレジスタ・ファイル１１７に転送されるまでは命令２の結果が一時バッファ１１６からレジスタ・ファイル１１７に転送されることはない。
【００２８】
ＲＲＣ１１２でチェックできる命令の数を増減するのは容易である。同時に、４つではなく８つの命令をチェックするのには以下のような比較を付け加える必要があろう。
【００２９】
Ｉ４Ｓ１，Ｉ４Ｓ２  ｖｓ．  Ｉ３Ｄ，Ｉ２Ｄ，Ｉ１Ｄ，Ｉ０Ｄ
Ｉ５Ｓ１，Ｉ５Ｓ２  ｖｓ．  Ｉ４Ｄ，Ｉ３Ｄ，Ｉ２Ｄ，Ｉ１Ｄ，Ｉ０Ｄ
Ｉ６Ｓ１，Ｉ６Ｓ２  ｖｓ．
Ｉ５Ｄ，Ｉ４Ｄ，Ｉ３Ｄ，Ｉ２Ｄ，Ｉ１Ｄ，Ｉ０Ｄ
Ｉ７Ｓ１，Ｉ７Ｓ２  ｖｓ．
Ｉ６Ｄ，Ｉ５Ｄ，Ｉ４Ｄ，Ｉ３Ｄ，Ｉ２Ｄ，Ｉ１Ｄ，Ｉ０Ｄ
従属性チェックを行うのにＲＲＣ１１２が取り扱わなくてはならないいくつかの特別の場合がある。最初のものは、同一のレジスタを入力と出力の双方に用いるような命令である。従ってＲＲＣ１１２はこのソース・レジスタ・アドレスを、それより以前のすべての命令の宛先アドレスと、比較しなくてはならない。従って、命令７に対して以下の比較が必要となる：
Ｉ７Ｓ１，Ｉ７Ｓ２，Ｉ７Ｓ／Ｄ  ｖｓ．
Ｉ６Ｄ，Ｉ５Ｄ，Ｉ４Ｄ，Ｉ３Ｄ，Ｉ２Ｄ，Ｉ１Ｄ，Ｉ０Ｄ
他の特別のケースは、プログラムが６４ビットの出力を発生する命令（ロングワード動作と呼ぶ）を含む場合である。この種の命令にはその結果を格納するのに２つのレジスタが必要となる。本実施例ではこれらのレジスタは逐次的であるとする。従って、例えば、ＲＲＣｌ１２が命令４の従属性をチェックしており、命令１がロングワード動作であれば、以下の比較を行うこととなる：
Ｉ４Ｓ１，Ｉ４Ｓ２  ｖｓ．
Ｉ３Ｄ，Ｉ２Ｄ，Ｉ１Ｄ，Ｉ１Ｄ＋１，Ｉ０Ｄ
時には命令に宛先レジスタがない場合がある。この場合ＲＲＣ１１２は宛先レジスタを持たない命令とそれ以後の命令との間の従属性を無視しなくてはならない。さらに命令は、ただ１つの有効なソース・レジスタさえ持たない場合がある。その時にはＲＲＣ１１２は使用しないソース・レジスタ（普通Ｓ２）とそれ以前のすべての命令との間の従属性を無視しなくてはならない。
【００３０】
ＲＲＣ１１２はさらに複数のレジスタ・ファイルを取り扱うことも可能である。複数のレジスタ・ファイルを用いるとき、ある命令のソース・レジスタが、他の命令の宛先レジスタと同一のアドレスを持ち、しかも同一のレジスタ・ファイルにあるときにのみ、従属性が現われる。ＲＲＣ１１２は、ある特別のアドレスがどのレジスタ・ファイルに属するものかという情報を、そのアドレスの１部として取り扱う。例えば、４つの３２ビットレジスタ・ファイルを用いる場合には、ＲＲＣ１１２は５ビット比較の代わりに７ビット比較（アドレスに５、レジスタ・ファイルに２）を行うことになろう。
【００３１】
どの命令がロングワード動作をするのか、どの命令が無効のソースや宛先レジスタを持つのかというのを示す信号か命令デコード論理（ＩＤＬ；不図示）からＲＲＣ１１２に送られる。
【００３２】
ＲＲＣ１１２のＤＤＣ１０８、ＴＡＬ１２２、ＲＰＭ１２４をレイアウトした、簡単な、代表的フロアプランを第２図に示す。ＤＤＣ１０８には２つの入力のセットがある。１つのセットは、ウィンドウ１０２の８つのすべての命令に対する、ＩＦＩＦＯ１０１からのソース・アドレス信号を含む；これらの入力は参照番号２０２で表されている。入力２０２は、参照番号２２２で示されるように、ＴＡＬブロック２２０にも供給される。入力のもう１つのセットは、８つのすべての命令に対する、ロングワード動作フラッグ、レジスタ・ファイル復号信号、無効宛先レジスタ・フラッグ、宛先レジスタ・フラッグ、及びアドレシング・モード・フラッグを含む；これらの入力は参照番号２０３で表される。
【００３３】
ＤＤＣ１０８は２８のデータ従属性ブロック２０４を備えており、各ブロック２０４には３つの入力ＩＸＳ１，ＩＸＳ２，ＩＸＳＤが入力される。ＩＸＳ１は命令Ｘのソース（入力）Ｎｏ．１のアドレス、ＩＸＳ２は命令Ｘのソース（入力）Ｎｏ．２のアドレス、ＩＸＳ／Ｄは命令Ｘのソース／宛先（入力）のアドレスである。各ブロック２０４にはさらに入力ＩＹＳ／Ｄが入力されるが、これは命令Ｙの宛先レジスタ・アドレスである。例えば、第１番目の列２０８には命令０の宛先アドレスＩＯＳ／Ｄが入力される。各ブロック２０４はデータ従属性の検査結果をそれに対応するバス・ライン２１４を経てＴＡＬブロック２２０に出力する。この例では、Ｉ２Ｓ／Ｄのアドレスは命令７、６、５、４、３のオぺランド・アドレスＳ１、Ｓ２、Ｓ／Ｄと照合される。
【００３４】
各タグ・アサイメント・ロジック・ブロック２２０には、バス２１４を介してデータ従属性検査結果、並びに、一組の入力ライン２２６を介してコンピュータのＩＤＬ（不図示）からの信号が入力される。ＢＫＴビットはタグの最下位のビットとなる。命令０−６のＤＯＮＥ〔Ｘ〕フラッグのセットは命令が終了したかどうかを示す。ＤＢＬＲＥＧ［Ｘ］フラッグのセットは、もしそれがあるときにはどの命令がダブル（ロング）ワードであるかを示す。
【００３５】
各ＴＡＬブロック２２０はそれ自身の命令のレジスタ・アドレスを入力する。この入力は参照番号２２２で表されている。ＤＢＬＲＥＧやＢＫＴ信号のような種々の信号はすべてインプリメンテーションによって異なってくる制御信号である。各ＴＡＬブロック２２０は、ＩＸＳ１、ＩＸＳ２、ＩＸＳ／Ｄと記された、０−３の６ビットのＴＡＧ１２６を出力する。ＴＡＬ２２０はさらに、各ＴＡＧ信号の最下位５ビットをバス２２４を経てＲＰＭ１２４に出力し、ＴＡＧの最上位ビットはバス１２０を経てＩＳＬ２１８に出力される。バス２２４は主バス１２６を形成している。
【００３６】
第２図に示されたフロアプランの構成には２つの大きな制限がある：ひとつには大きな面積が必要なこと、もうひとつには、ＤＤＣ１０８の出力２１４のいくつかはＴＡＬ１２２に達するまで長い距離を走る必要があることで、これはＲＲＣ１ｌ２の性能に制限を与える。
【００３７】
第３図に第２のフロアプラン実施例を示す。この構成では、ＴＡＬブロック２２０は、ＤＤＣ１０８の比較ブロック２０４の間に配置されている（例えば、統合化されている）。この様子は概略的に参照番号３０２で表されている。しかし、この配置には１つの制限がある。ＤＤＣ１０８及びＴＡＬ１２２の最も効率的な配置は、ＴＡＬ１２２の出力２２４が、鎖線で描かれたボックス３０４で示すように、列４、５、６、７の中央近くから取り出されるものである。これは配線に問題を生じる、なぜならＴＡＬ１２２の出力２２４がＲＰＭ１２４に達するまで長い距離を伝搬しなくてはならないからである。これはＩ７の場合特に顕著になる。
【００３８】
この問題を解決するには、ＲＰＭ１２４から最も遠くにある列のＴＡＬ出力をＲＰＭ１２４に最も近い列を通ってチャネルすることである。１つの方法は列４、５、６を十分に広げ、すべての配線が通れるようにすることである。比較ブロック２０４は垂直に一列にならなくてはならないので、列７も広げる必要がある。これはＲＲＣの幅を増やすことになる。
【００３９】
本発明の望ましいフロアプランの実施例は第４図に示されている。第４図に示したフロアプラン・レイアウトでは、列４、５、６、７の左側がひっくり返されている。言い換えると、垂直に一列に並べられたコンパレータ２０４とそれに関連するＴＡＬブロックを縦列と呼ぶと、縦列３、４、５、６がひっくり返されているのである。これは列７の長さを増やすことなく列４、５、６にギャップを作る。（このギャップは中央チャネルとも呼ばれ、鎖線のボックス４０２で示されている。）列４−７のＴＡＬの出力２２４は中央チャネル４０２に並べられ、実質的には直線状に直接ＲＰＭ１２４に入力される。従ってＲＲＣ１１２の全体としての面積は同一のままである。
【００４０】
本発明の種々の実施例を上に述べたが、それらは例として挙げられたのであり、限度を示すためのものではないことは明らかであろう。従って、本発明の精神と範囲は、上述したいかなる例証実施例によってもその限界を与えられるものではなく、特許請求範囲の記載及びそれと同等のものに従ってのみ規定されるものである。
【図面の簡単な説明】
【００４１】
【図１】レジスタ・リネーミング回路（ＲＲＣ）の代表的高水準ブロック・ダイアグラムである。
【図２】ＲＲＣの簡単なレイアウトを示す代表的なフロアプランである。
【図３】ＲＲＣの本発明によって改良されたレイアウトを示す代表的なフロアプランである。
【図４】ＲＲＣの本発明に従ってさらに改良されたレイアウトを示す代表的なフロアプランである。
【符号の説明】
【００４２】
１００…命令実行ユニット（ＩＥＵ）、１０１…ＦＩＦＯ、１０２…ウィンドウ、１０４…底、１０６…上部、１１２…レジスタ・リネーミング回路（ＲＲＣ）、１０８…データ従属性チェッカー（ＤＤＣ）、１２２…タグ・アサイメント・ロジック（ＴＡＬ）、１２４…レジスタ・ファイル・ポート・マルチプレクサ（ＲＰＭ）
【図１】
0003724582.tif 000002
【図２】
0003724582.tif 000003
【図３】
0003724582.tif 000004
【図４】
0003724582.tif 000005