JP2004158018A - レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム - Google Patents

レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム Download PDF

Info

Publication number
JP2004158018A
JP2004158018A JP2003393276A JP2003393276A JP2004158018A JP 2004158018 A JP2004158018 A JP 2004158018A JP 2003393276 A JP2003393276 A JP 2003393276A JP 2003393276 A JP2003393276 A JP 2003393276A JP 2004158018 A JP2004158018 A JP 2004158018A
Authority
JP
Japan
Prior art keywords
instruction
instructions
register
floor plan
dependencies
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003393276A
Other languages
English (en)
Other versions
JP3755604B2 (ja
Inventor
Kevin R Iadonato
ケブン レイ アイアドナト
Le Trong Nguyen
リー トロン ニューエン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JP2004158018A publication Critical patent/JP2004158018A/ja
Application granted granted Critical
Publication of JP3755604B2 publication Critical patent/JP3755604B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Advance Control (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】 半導体チップ上に、チップ面積の省面積化を計るよう、レジスタ・リネーミング回路のフロアプランをレイアウトする。
【解決手段】 半導体チップ上に、チップ面積の省面積化を計るよう、レジスタ・リネーミング回路のフロアプランをレイアウトするためのシステムであって、前記システムが、データ従属性チェッカー108を行列状に配置する第1手段と、前記第1手段に関連し、ひとつもしくはそれ以上の前記行中に空間的にチャネルを規定するように、前記タグ・アサイメント・ロジック122を1つもしくはそれ以上の前記レイアウト領域中に配置するための第2手段と、前記第2手段に関連し、前記さらなる出力ラインを、その長さが最小になるように前記チャネル中に配線するための第3手段と、を有する。
【選択図】 図1

Description

本発明は半導体フロアプラン・レイアウトに関するもので、特に、スーパースケーラーRISCチップのレジスタ・リネーム回路の各部分を一体化した半導体フロアプラン・レイアウトに関するものである。
下記のものは、同一承継人の出願に係る、同時係属中の特許出願である:
*「スーパースケーラーRISC命令スケジューリング」、出願番号07/860,719、本出願と同時に出願 (Attorney Docket No. SPO35)、
*「高性能RISCマイクロプロセサ・アーキテクチャ」、出願番号07/817,810、1992年8月1日出願 (Attorney Docket No.SPO15)、
*「拡張性を持つRISCマイクロプロセサ・アーキテクチャ」、出願番号07/817,809、1992年8月1日出願(Attorney DocketNo.SPO21)。
上記出願の開示を参考文献として本明細書に含める。
2つの入力オペランドと1つの出力値を持つ命令が与えられたとき、典型的なRISCコンピュータの命令の場合のように、どの2つの命令間にも従属性に関して5つの可能性がある:即ち、2つの真の従属性、2つの反従属性、1つの出力従属性である。さらに、いくつかの命令のグループ(例えば、ウィンドウ中の命令のグループ)に対する従属性の数はそのグループにある命令の数の2乗に比例して増大する。その理由は、各命令に対して他のすべての命令との従属性を考慮しなくてはならないからである。さらに、その複雑さは、1サイクル内で、プロセサが復号しようとしたり、送出しようとしたり、さらに完了しようとする命令の数に比例した分だけ増加する。その理由は、これらの動作は、従属性を作り出し、従属性により制御され、従属性を考慮から除外するからである。
真の従属性は(時には「流れ従属性」もしくは「読み書き従属性」と呼ばれる)しばしば反従属性(これは「書き読み従属性」とも呼ばれる)と同一のグループにまとめられ、出力従属性(「書き書き従属性」とも呼ばれる)は命令従属性の1つのグループに入れられる。このグループ化を行なう理由は、これら各々の従属性がレジスタや他の記憶場所を用いるときに現れるからである。しかしながら、真の従属性を他の2つの従属性と区別することは重要である。真の従属性はプログラム中のデータや情報の流れを表す。反従属性と出力従属性が生じるのは、異なる時点で、レジスタや他の記憶場所が異なる計算に対して、異なる価を保持するためである。
命令が順序通り送出され、順序通りに完了すれば、レジスタと価の間には1対1の対応がつく。実行中のどの時点に於てもレジスタ識別子は、対応するレジスタに入っている価を正確に識別することができる。命令が順序に従わず送出され、順序に従わず完了すれば、レジスタと価との間の対応は崩れ、価がレジスタに対して衝突を起こすことになる。これは、レジスタ割付の目標ができるだけ多くの価をできるだけ少数のレジスタを用いて格納したいという場合には深刻な問題となる。即ち、多数の価を少数のレジスタで格納するとき、実行順序がレジスタアロケータが想定したものと異なると、多数の衝突が生じる。
反従属性及び出力従属性は、「記憶衝突」と呼ぶのがより妥当である。その理由は、記憶場所(レジスタも含めて)の再使用により、命令が元々独立したものであっても、命令同士がお互いに干渉し合うようになるからである。記憶衝突は命令の送出に制限を与え、性能を低下させる。
この明細書で論じるいくつかの基本的概念は多くの文献でより詳しく説明されている(例えば、非特許文献1、2参照)。特に、非特許文献1のテキスト、特に2章、6章、7章では本発明が取り組むレジスタ・リネーミングとデータ従属性の問題に関して優れた考察を行っている。
Mike Johnson,Superscalar Microprocessor Design(Prentice−Hall, Inc., Englewood Cliffs, New Jersey, 1991) John L. Hennessy et al,.Computer Architecture−A Quantitative Approach (Morgan Kaufmann Publishers, Inc., San Mateo, California, 1990)
上記の考察から明らかなように、テータ従属性チェッカー、および一般的にレジスタ・リネーム回路を製作するのは複雑で、半導体上の大きな面積を必要とする。特にスーパースケーラRISCプロセサは、複数の命令の同時実行が可能になるよう研究開発が懸命に進められている。このテクノロジーが開発されるのに伴い、チップ開発者はより多くの命令を同時に実行しようと企てる。従って、必要となる従属性チェックの量は指数関数的に増加することになる。ここで必要なのは、レジスタ・リネーム回路の各部分を統合化し半導体の貴重な面積の省面積化を行えるレイアウト技術(フロアプランとも呼ばれる)である。
本発明の目的は、貴重な半導体面積の省面積化のため、レジスタ・リネーミング回路(RRC)のデータ従属性チェッカー(DDC)とタグ・アサイメント・ロジック(TAL)を統合化する半導体フロアプラン・レイアウトを行うことである。
DDCとTALの間を信号が伝搬する距離、TALとRPM間を信号が伝搬する距離が短くなるように、DDCとTALをレイアウトすることが本発明のフロアプランの企図である。選択されたDDCコンパレータ列とそれに関連するTALを再編成することによって、大幅な省面積化が可能になり、最高8つの命令に対してレジスタ・リネーミングを行なうことができる。
DDCの機能は、これらのバケツにある命令間に存在する従属性の位置指定を行うことである。DDCは、各命令のソース・レジスタのアドレスとその命令より前にあるすべての命令の宛先レジスタを比較して、この機能を行う。例えば、命令Bが書き込んだレジスタから命令Aが価を読み取ることになっている場合、命令Aは命令Bに従属しており、命令Aは命令Bが完了するまで命令の実行を開始できない。DDCの出力はこのような従属性を表す。データ従属性チェックは、列上に配置された複数のコンパレータにより行われる。
こうして得られたDDCの結果を用いて、TALは、順序通りでない命令の実行に必要なリザルト・フォアワーディングを制御する。TALはレジスタ・ファイル・ポート・マルチプレクサ(RPM)に対して順番に入力信号を発生し、レジスタ・ファイル・ポート・マルチプレクサは、レジスタ・ファイルもしくは一時バッファから読み込まれるデータのアドレスを振り向け、このアドレスを引き続いて命令を送出するためのオペランドとして用いる。
第1図は本発明に関連する命令実行ユニット(IEU)100の代表的高水準ブロックダイアグラムである。IEU100の目標はできるだけ多くの命令を最小の時間で実行することである。これを行うには2つの基本的方法がある:ひとつは、夫々の命令ができるだけ短い時間で実行できるようIEUを最適化することであり、もうひとつは、いくつかの命令を同時に実行できるようIEUを最適化することである。
本発明で用いられるIEUは、同一承継人の出願に係る、係属中の以下の特許出願に開示されている。即ち、「高性能RISCマイクロプロセサ・アーキテクチャ」、出願番号07/817,810、92年8月1日出願(Attorney Docket No.SPO15/1397.0280001)と「拡張性を持つRISCマイクロプロセサ・アーキテクチャ」、出願番号07/817,809、92年8月1日出願(Attorney Docket No.SPO21/1397.0300001)。これらの公開特許を参考文献としてここに含める。
命令は、命令取り出しユニット(IFU,不図示)から命令FIFO101(ファースト・インファースト・アウトのレジスタ・スタック記憶装置)によって、「バケツ」と呼ばれる4つ命令のグループ毎にIEU100に送られる。IEU100は同時に最高2つのバケツの命令のデコードとスケジュールを行うことが可能である。FIFO101は、0−3と名付けた4つのバケツに合計16の命令を記憶する。IEU100は命令ウィンドウ102を見る。本発明の1つの実施例では、ウィンドウ102は8つの命令(バケツ0と1)を含む。すべてのサイクルに於て、IEU100はウィンドウ102から最大数の命令を送出しようとする。ウィンドウ102は命令バッファ・レジスタとして機能する。ひとつのバケツの命令が実行され、その結果がプロセサのレジスタ・ファイル(ブロック117)に格納されると、バケツは底104から洗い流され、新しいバケツが上部106に入れられる。
命令をパラレル即ち順序に従わずに実行するには、夫々の命令に必要なデータが、その命令が必要な時に得られるよう、また夫々の命令の結果を必要とするその後のいかなる命令に対しても、その結果が得られるよう注意しなくてはならない。レジスタ・リネーム回路(RRC)は、コンピュータのIEUのスケジューリング論理の一部であるが、現行の命令間の従属性の位置指定を行い、かつ、その命令のソース(入力)をリネームして、この機能を行なう。
上述したように、従属性には3つのタイプがある:即ち、入力従属性、出力従属性、反従属性である。入力従属性は、例えば、ある命令Aがその前の命令Bの結果に基づいて行われるときに現われる。出力従属性はAとBの出力が同一の場所に格納されようとしたときに現われる。反従属性は、命令ストリーム中で命令AがBの前に来、Bの結果がAの入力のひとつと同一の場所に格納されるときに現われる。
入力従属性は、入力が得られるまで命令を実行しないことにより処理される。RRC112は、現行の命令間の入力従属性の位置指定を行い、その後、ある命令に対するすべての入力の用意ができた時、命令スケジューラ即ちイッシュア118に信号を送る。これらの従属性の位置指定を行うため、RRC112は、データ従属性チェッカー(DDC)108を用いて、各命令に対する入力レジスタ・ファイル・アドレスをそれ以前のすべての命令の出力アドレスと比較する。もしある命令の入力が、それ以前のある命令の出力が格納されるレジスタから来ることが分かれば、後の命令は前の命令が終わるまで待たなくてはならない。
このRRC112を実現することにより、同時に8つの命令をチェックできるため、ウィンドウ102から出る8つの命令の中の任意の一つを現行命令として定義できる。本発明は命令の数かそれより多い場合或いは少ない場合にも容易に適用できることは、当業者にとって自明であろう。
本発明の1つの実施例では、命令は0から3の入力と0又は1の出力を持ち得る。ほとんどの命令の入力及び出力は、いくつかあるレジスタ・ファイルの1つから取り出されたり、そこに格納されたりする。各レジスタ・ファイル117(例えば、個別の、整数ファイル、フローティング・ファイル、ブール・ファイル)には32の真のエントリーと8つの一時バッファからなるグループがある。1つの命令が完了すると(ここで「完了」とは動作がすべて終わり、そのオペランドが宛先レジスタに書かれる準備ができていることを言う)、その結果は一時バッファ116のあらかじめ定められた場所に格納される。その結果は、それより以前の命令のすべての結果がレジスタ・ファイル117のあるべき場所に転送された後に、レジスタ・ファイルの適当な場所へ転送される。このような、計算結果を一時バッファ116からレジスタ・ファイル117に転送することは、「リタイアメント」と呼ばれ、ターミネーション論理で制御されるが、このことは当業者にとって自明であろう。2つ以上の命令が一時にリタイアされてもよい。当業者にとって自明なように、リタイアメントには、コンピュータのプログラムカウンタを含む、機械の「公式の状態」を更新することが含まれる。例えば、命令I0が命令I1のすぐ前に完了すれば、それらの結果はどちらもレジスタ・ファイル117に直接に格納できる。しかし、もし次に命令I3が完了すれば、その結果は、命令12が完了するまで、一時バッファ116に格納されなくてはならない。IEU100に、各命令の結果を一時バッファ116の事前に割当てた場所に格納させることにより、IEU100はプログラムの順序通りでない命令を実行し、しかも、出力従属性や反従属性から生ずる問題を避けることができる。
RRC112はバス120を通し命令スケジューラ118にビット・マップを送り、ウィンドウ102のどの命令の送出準備ができているかを知らせる。命令デコード論理(不図示)はバス123を通して各命令に対する資源要求事項をイッシュア118に知らせる。IEU100の夫々の資源(例えば、各機能ユニットは加算器、乗算器、シフタ、又はそれと同類のものである)に対し、イッシュア118はこの情報をスキャンし、バス121を通して送出信号を出力することにより、最初とそれに引き続く送出命令を選択する。この送出信号は、その入力が各命令の入力のアドレスである、RRC内のレジスタ・ファイル・ポート・マルチプレクサ(RPM)124の1つのグループを選択する。
その計算結果はレジスタ・ファイル117に転送されるまで、数サイクル一時バッファ116に留まる可能性もあるので、レジスタ・ファイル117に転送される前に一時バッファ116から結果を取り出す機構が設けられており、その情報を他の命令のオペランドとして用いることができる。この機構は、「リザルト・フォアワーディング」と呼ばれるが、これが無ければ、イッシュア118は順序通りでない命令を送出することはできないであろう。このリザルト・フォアワーディングはレジスタ・ファイル117で行われ、RRC112で制御される。リザルト・フォアワーディングを行うのに必要な制御信号は、そのような制御信号を発生させるのに用いるランダム論理と同様、当業者にとっては自明となるであろう。
もしある命令が他の現行の命令のいずれとも従属性を持たなければ、リザルト・フォアワーディングは必要ではない。その理由はその命令の入力はレジスタ・ファイル117にすでに入っているからである。イッシュア118がその命令を実行するときには、RRC112はレジスタ・ファイル117にデータを出力するよう要請する。
RRC112は3つの小部分を持つ:データ従属性チェッカー(DDC)108、タグ・アサイメント・ロジック(TAL)122及びレジスタ・ファイル・ポート・マルチプレクサ(RPM)124である。DDC108は現行命令間のどこに入力従属性があるかを決定する。TAL122はイッシュア118に対し従属性をモニターし、リザルト・フォアワーディングを制御する。RPM124はイッシュア118により制御され、TAL122の出力を適切なレジスタ・ファイルアドレス・ポート119に送り出す。命令はバス110を通してDDC108に受け渡される。ウィンドウ102の夫々の命令に対してすべてのソース・レジスタがすべてのそれ以前の宛先レジスタと比較される。
各命令は唯一の宛先を持ち、この宛先はひとつの実施例ではダブル・レジスタであってもよい。命令はそれより前の命令にのみ依存しており、最大3つのソース・レジスタを持つことができる。従属性を調べるのにお互いにチェックし合わなくてはならない色々のレジスタ・ファイル・ソース・アドレスと宛先アドレスがある。前述したように一番下にある2つのバケツに対応する8つの命令がDDC108でチェックされる。ウィンドウ102の命令に対してすべてのソース・レジスタ・アドレスがすべてのそれ以前の宛先レジスタ・アドレスと比較される。
例えば、あるプログラムに次のような一連の命令があるとする:
add R0,Rl,R2 (0)
add R0,R2,R3 (1)
add R4,R5,R2 (2)
add R2,R3,R4 (3)
命令0−3の各命令の最初の2つのレジスタはソース・レジスタで、各命令の最後のレジスタは宛先レジスタである。例えば、R0とR1は命令0に対するソース・レジスタで、R2は宛先レジスタである。命令0はレジスタ0とレジスタ1の内容を加算しその結果をR2に格納する。この例の命令1−3に対し、すべての従属性を評価するのに以下のような比較が必要となる:
I1S1,I1S2 vs. I0D
I2S1,I2S2 vs. I1D,I0D
13S1,13S2 vs. I2D,I1D,I0D
上の読み方は次のようである:IXRS1は命令Xのソース(入力)No.1のアドレスで;IXRS2は命令Xのソース(入力)No.2のアドレスで;IXDは命令Xの宛先(出力)アドレスである。
RRC112は、命令2が命令0に対し出力従属性を持つが、それを無視できる。その理由は、プロセサは一時バッファを持ち、そこに命令2の結果を、命令1の結果と干渉せずに格納できるからである。前述したごとく、命令0と1の結果がレジスタ・ファイル117に転送されるまでは命令2の結果が一時バッファ116からレジスタ・ファイル117に転送されることはない。
RRC112でチェックできる命令の数を増減するのは容易である。同時に、4つではなく8つの命令をチェックするのには以下のような比較を付け加える必要があろう。
I4S1,I4S2 vs. I3D,I2D,I1D,I0D
I5S1,I5S2 vs. I4D,I3D,I2D,I1D,I0D
I6S1,I6S2 vs.
I5D,I4D,I3D,I2D,I1D,I0D
I7S1,I7S2 vs.
I6D,I5D,I4D,I3D,I2D,I1D,I0D
従属性チェックを行うのにRRC112が取り扱わなくてはならないいくつかの特別の場合がある。最初のものは、同一のレジスタを入力と出力の双方に用いるような命令である。従ってRRC112はこのソース・レジスタ・アドレスを、それより以前のすべての命令の宛先アドレスと、比較しなくてはならない。従って、命令7に対して以下の比較が必要となる:
I7S1,I7S2,I7S/D vs.
I6D,I5D,I4D,I3D,I2D,I1D,I0D
他の特別のケースは、プログラムが64ビットの出力を発生する命令(ロングワード動作と呼ぶ)を含む場合である。この種の命令にはその結果を格納するのに2つのレジスタが必要となる。本実施例ではこれらのレジスタは逐次的であるとする。従って、例えば、RRCl12が命令4の従属性をチェックしており、命令1がロングワード動作であれば、以下の比較を行うこととなる:
I4S1,I4S2 vs.
I3D,I2D,I1D,I1D+1,I0D
時には命令に宛先レジスタがない場合がある。この場合RRC112は宛先レジスタを持たない命令とそれ以後の命令との間の従属性を無視しなくてはならない。さらに命令は、ただ1つの有効なソース・レジスタさえ持たない場合がある。その時にはRRC112は使用しないソース・レジスタ(普通S2)とそれ以前のすべての命令との間の従属性を無視しなくてはならない。
RRC112はさらに複数のレジスタ・ファイルを取り扱うことも可能である。複数のレジスタ・ファイルを用いるとき、ある命令のソース・レジスタが、他の命令の宛先レジスタと同一のアドレスを持ち、しかも同一のレジスタ・ファイルにあるときにのみ、従属性が現われる。RRC112は、ある特別のアドレスがどのレジスタ・ファイルに属するものかという情報を、そのアドレスの1部として取り扱う。例えば、4つの32ビットレジスタ・ファイルを用いる場合には、RRC112は5ビット比較の代わりに7ビット比較(アドレスに5、レジスタ・ファイルに2)を行うことになろう。
どの命令がロングワード動作をするのか、どの命令が無効のソースや宛先レジスタを持つのかというのを示す信号か命令デコード論理(IDL;不図示)からRRC112に送られる。
RRC112のDDC108、TAL122、RPM124をレイアウトした、簡単な、代表的フロアプランを第2図に示す。DDC108には2つの入力のセットがある。1つのセットは、ウィンドウ102の8つのすべての命令に対する、IFIFO101からのソース・アドレス信号を含む;これらの入力は参照番号202で表されている。入力202は、参照番号222で示されるように、TALブロック220にも供給される。入力のもう1つのセットは、8つのすべての命令に対する、ロングワード動作フラッグ、レジスタ・ファイル復号信号、無効宛先レジスタ・フラッグ、宛先レジスタ・フラッグ、及びアドレシング・モード・フラッグを含む;これらの入力は参照番号203で表される。
DDC108は28のデータ従属性ブロック204を備えており、各ブロック204には3つの入力IXS1,IXS2,IXSDが入力される。IXS1は命令Xのソース(入力)No.1のアドレス、IXS2は命令Xのソース(入力)No.2のアドレス、IXS/Dは命令Xのソース/宛先(入力)のアドレスである。各ブロック204にはさらに入力IYS/Dが入力されるが、これは命令Yの宛先レジスタ・アドレスである。例えば、第1番目の列208には命令0の宛先アドレスIOS/Dが入力される。各ブロック204はデータ従属性の検査結果をそれに対応するバス・ライン214を経てTALブロック220に出力する。この例では、I2S/Dのアドレスは命令7、6、5、4、3のオぺランド・アドレスS1、S2、S/Dと照合される。
各タグ・アサイメント・ロジック・ブロック220には、バス214を介してデータ従属性検査結果、並びに、一組の入力ライン226を介してコンピュータのIDL(不図示)からの信号が入力される。BKTビットはタグの最下位のビットとなる。命令0−6のDONE〔X〕フラッグのセットは命令が終了したかどうかを示す。DBLREG[X]フラッグのセットは、もしそれがあるときにはどの命令がダブル(ロング)ワードであるかを示す。
各TALブロック220はそれ自身の命令のレジスタ・アドレスを入力する。この入力は参照番号222で表されている。DBLREGやBKT信号のような種々の信号はすべてインプリメンテーションによって異なってくる制御信号である。各TALブロック220は、IXS1、IXS2、IXS/Dと記された、0−3の6ビットのTAG126を出力する。TAL220はさらに、各TAG信号の最下位5ビットをバス224を経てRPM124に出力し、TAGの最上位ビットはバス120を経てISL218に出力される。バス224は主バス126を形成している。
第2図に示されたフロアプランの構成には2つの大きな制限がある:ひとつには大きな面積が必要なこと、もうひとつには、DDC108の出力214のいくつかはTAL122に達するまで長い距離を走る必要があることで、これはRRC1l2の性能に制限を与える。
第3図に第2のフロアプラン実施例を示す。この構成では、TALブロック220は、DDC108の比較ブロック204の間に配置されている(例えば、統合化されている)。この様子は概略的に参照番号302で表されている。しかし、この配置には1つの制限がある。DDC108及びTAL122の最も効率的な配置は、TAL122の出力224が、鎖線で描かれたボックス304で示すように、列4、5、6、7の中央近くから取り出されるものである。これは配線に問題を生じる、なぜならTAL122の出力224がRPM124に達するまで長い距離を伝搬しなくてはならないからである。これはI7の場合特に顕著になる。
この問題を解決するには、RPM124から最も遠くにある列のTAL出力をRPM124に最も近い列を通ってチャネルすることである。1つの方法は列4、5、6を十分に広げ、すべての配線が通れるようにすることである。比較ブロック204は垂直に一列にならなくてはならないので、列7も広げる必要がある。これはRRCの幅を増やすことになる。
本発明の望ましいフロアプランの実施例は第4図に示されている。第4図に示したフロアプラン・レイアウトでは、列4、5、6、7の左側がひっくり返されている。言い換えると、垂直に一列に並べられたコンパレータ204とそれに関連するTALロジックを縦列と呼ぶと、縦列3、4、5、6がひっくり返されているのである。これは列7の長さを増やすことなく列4、5、6にギャップを作る。(このギャップは中央チャネルとも呼ばれ、鎖線のボックス402で示されている。)列4−7のTALの出力224は中央チャネル402に並べられ、実質的には直線状に直接RPM124に入力される。従ってRRC112の全体としての面積は同一のままである。
本発明の種々の実施例を上に述べたが、それらは例として挙げられたのであり、限度を示すためのものではないことは明らかであろう。従って、本発明の精神と範囲は、上述したいかなる例証実施例によってもその限界を与えられるものではなく、特許請求範囲の記載及びそれと同等のものに従ってのみ規定されるものである。
レジスタ・リネーミング回路(RRC)の代表的高水準ブロック・ダイアグラムである。 RRCの簡単なレイアウトを示す代表的なフロアプランである。 RRCの本発明によって改良されたレイアウトを示す代表的なフロアプランである。 RRCの本発明に従ってさらに改良されたレイアウトを示す代表的なフロアプランである。
符号の説明
100…命令実行ユニット(IEU)、101…FIFO、102…ウィンドウ、104…底、106…上部、112…レジスタ・リネーミング回路(RRC)、108…データ従属性チェッカー(DDC)、122…タグ・アサイメント・ロジック(TAL)

Claims (1)

  1. 半導体チップ上に、チップ面積の省面積化を計るよう、レジスタ・リネーミング回路のフロアプランをレイアウトするためのシステムであって、前記システムが、
    (1)データ従属性チェッカーを行列状に配置する第1手段であって、前記配置が、前記行の前記データ従属性チェッカーの隣り合う領域の間にレイアウト領域を規定し、さらに、従属性情報をタグ・アサイメント・ロジックへ転送するための出力ラインが前記データ従属性チェッカーに含まれる、前記第1手段と、
    (2)前記第1手段に関連し、ひとつもしくはそれ以上の前記行中に空間的にチャネルを規定するように、前記タグ・アサイメント・ロジックを1つもしくはそれ以上の前記レイアウト領域中に配置するための第2手段であって、前記チャネルが前記行とほぼ直角に走り、タグ情報を前記レイアウト領域から転送するためのさらなる出力ラインが前記タグ・アサイメント・ロジックに含まれる前記第2手段と、
    (3)前記第2手段に関連し、前記さらなる出力ラインを、その長さが最小になるように前記チャネル中に配線するための第3手段と、
    を有することを特長とする半導体フロアプランのレイアウト・システム。
JP2003393276A 1992-03-31 2003-11-25 レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム Expired - Fee Related JP3755604B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/860,718 US5371684A (en) 1992-03-31 1992-03-31 Semiconductor floor plan for a register renaming circuit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP51729593A Division JP3555140B2 (ja) 1992-03-31 1993-03-26 レジスタリネーム回路の半導体フロアプランと方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003428567A Division JP3724582B2 (ja) 1992-03-31 2003-12-25 命令実行ユニットのためのレジスタ・リネーミング回路

Publications (2)

Publication Number Publication Date
JP2004158018A true JP2004158018A (ja) 2004-06-03
JP3755604B2 JP3755604B2 (ja) 2006-03-15

Family

ID=25333865

Family Applications (3)

Application Number Title Priority Date Filing Date
JP51729593A Expired - Lifetime JP3555140B2 (ja) 1992-03-31 1993-03-26 レジスタリネーム回路の半導体フロアプランと方法
JP2003393276A Expired - Fee Related JP3755604B2 (ja) 1992-03-31 2003-11-25 レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム
JP2003428567A Expired - Lifetime JP3724582B2 (ja) 1992-03-31 2003-12-25 命令実行ユニットのためのレジスタ・リネーミング回路

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP51729593A Expired - Lifetime JP3555140B2 (ja) 1992-03-31 1993-03-26 レジスタリネーム回路の半導体フロアプランと方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003428567A Expired - Lifetime JP3724582B2 (ja) 1992-03-31 2003-12-25 命令実行ユニットのためのレジスタ・リネーミング回路

Country Status (3)

Country Link
US (9) US5371684A (ja)
JP (3) JP3555140B2 (ja)
WO (1) WO1993020506A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2575564B2 (ja) * 1991-03-05 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 自動マクロ最適順序化方法
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5371684A (en) 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (en) 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
WO1994008287A1 (en) * 1992-09-29 1994-04-14 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5835745A (en) * 1992-11-12 1998-11-10 Sager; David J. Hardware instruction scheduler for short execution unit latencies
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
EP1107111A3 (en) * 1992-12-31 2002-02-06 Seiko Epson Corporation System and method for register renaming
TW242673B (ja) * 1993-08-18 1995-03-11 Ibm
US5613132A (en) * 1993-09-30 1997-03-18 Intel Corporation Integer and floating point register alias table within processor device
US5564056A (en) * 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US5764532A (en) * 1995-07-05 1998-06-09 International Business Machines Corporation Automated method and system for designing an optimized integrated circuit
US6356918B1 (en) 1995-07-26 2002-03-12 International Business Machines Corporation Method and system for managing registers in a data processing system supports out-of-order and speculative instruction execution
US5664120A (en) * 1995-08-25 1997-09-02 International Business Machines Corporation Method for executing instructions and execution unit instruction reservation table within an in-order completion processor
US5768556A (en) * 1995-12-22 1998-06-16 International Business Machines Corporation Method and apparatus for identifying dependencies within a register
US5757657A (en) * 1996-02-07 1998-05-26 International Business Machines Corporation Adaptive incremental placement of circuits on VLSI chip
US5802386A (en) * 1996-11-19 1998-09-01 International Business Machines Corporation Latency-based scheduling of instructions in a superscalar processor
US5838941A (en) * 1996-12-30 1998-11-17 Intel Corporation Out-of-order superscalar microprocessor with a renaming device that maps instructions from memory to registers
US5996063A (en) * 1997-03-03 1999-11-30 International Business Machines Corporation Management of both renamed and architected registers in a superscalar computer system
DE10159699A1 (de) * 2001-12-05 2003-06-26 Infineon Technologies Ag Verfahren zur Herstellung einer integrierten Halbleiterschaltung
US20030154363A1 (en) * 2002-02-11 2003-08-14 Soltis Donald C. Stacked register aliasing in data hazard detection to reduce circuit
AU2003252157A1 (en) * 2002-07-23 2004-02-09 Gatechange Technologies, Inc. Interconnect structure for electrical devices
US7269811B1 (en) * 2003-01-10 2007-09-11 Xilinx, Inc. Method of and apparatus for specifying clock domains in electronic circuit designs
US20060095732A1 (en) * 2004-08-30 2006-05-04 Tran Thang M Processes, circuits, devices, and systems for scoreboard and other processor improvements
US7187606B1 (en) * 2005-08-22 2007-03-06 P.A. Semi, Inc. Read port circuit for register file
US7277353B2 (en) * 2005-08-22 2007-10-02 P.A. Semi, Inc. Register file
US7577038B2 (en) * 2005-09-29 2009-08-18 Hynix Semiconductor, Inc. Data input/output multiplexer of semiconductor device
US8701023B1 (en) 2006-02-16 2014-04-15 Cypress Semiconductor Corporation Global parameter management graphical user interface (GUI) for embedded application design
KR100798792B1 (ko) 2006-12-27 2008-01-28 주식회사 하이닉스반도체 반도체 메모리 장치
KR100801309B1 (ko) * 2007-01-03 2008-02-05 주식회사 하이닉스반도체 라이트레벨링 동작을 하는 메모리장치.
KR100825002B1 (ko) * 2007-01-10 2008-04-24 주식회사 하이닉스반도체 효과적으로 직렬로 입출력되는 데이터의 오류를 검사할 수있는 반도체 메모리 장치 및 그 구동방법
KR100920830B1 (ko) * 2007-04-11 2009-10-08 주식회사 하이닉스반도체 라이트 제어 신호 생성 회로 및 이를 이용하는 반도체메모리 장치 및 그의 동작 방법
KR100907928B1 (ko) * 2007-06-13 2009-07-16 주식회사 하이닉스반도체 반도체 메모리 장치
KR100933668B1 (ko) * 2008-04-30 2009-12-23 주식회사 하이닉스반도체 출력회로
US7990780B2 (en) * 2009-02-20 2011-08-02 Apple Inc. Multiple threshold voltage register file cell
JP2010282296A (ja) * 2009-06-02 2010-12-16 Sanyo Electric Co Ltd データチェック回路

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3913074A (en) * 1973-12-18 1975-10-14 Honeywell Inf Systems Search processing apparatus
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
JPS57204125A (en) * 1981-06-10 1982-12-14 Hitachi Ltd Electron-ray drawing device
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
US4500963A (en) * 1982-11-29 1985-02-19 The United States Of America As Represented By The Secretary Of The Army Automatic layout program for hybrid microcircuits (HYPAR)
US5150509A (en) * 1984-05-03 1992-09-29 Kompan A/S Method of producing a stabilized bolt joint between a timber element and another construction element and the timber construction
JPH0652784B2 (ja) * 1984-12-07 1994-07-06 富士通株式会社 ゲートアレイ集積回路装置及びその製造方法
US4613941A (en) * 1985-07-02 1986-09-23 The United States Of America As Represented By The Secretary Of The Army Routing method in computer aided customization of a two level automated universal array
US4945479A (en) * 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
JPS62175831A (ja) * 1986-01-30 1987-08-01 Fujitsu Ltd タグ付きパイプライン制御方式
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
JPH0793358B2 (ja) * 1986-11-10 1995-10-09 日本電気株式会社 ブロック配置処理方式
US5150309A (en) * 1987-08-04 1992-09-22 Texas Instruments Incorporated Comprehensive logic circuit layout system
JPH01231126A (ja) 1988-03-11 1989-09-14 Oki Electric Ind Co Ltd 情報処理装置
GB8817912D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
JPH0673105B2 (ja) 1988-08-11 1994-09-14 株式会社東芝 命令パイプライン方式のマイクロプロセッサ
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
US4964479A (en) * 1989-10-10 1990-10-23 Sumida Kunio A Weight scale compensating for tare
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status
JPH03196334A (ja) 1989-12-26 1991-08-27 Fujitsu Ltd 演算制御方式
JP2988965B2 (ja) 1990-06-07 1999-12-13 株式会社東芝 パイプライン情報処理回路
JPH0480824A (ja) 1990-07-23 1992-03-13 Nec Corp データ処理装置
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5371684A (en) * 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
DE69311330T2 (de) * 1992-03-31 1997-09-25 Seiko Epson Corp Befehlsablauffolgeplanung von einem risc-superskalarprozessor
US5615126A (en) * 1994-08-24 1997-03-25 Lsi Logic Corporation High-speed internal interconnection technique for integrated circuits that reduces the number of signal lines through multiplexing
US6093274A (en) * 1996-02-02 2000-07-25 Westvaco Corporation Method of making a composite paperboard structure with a silicon-oxide-coated film for improving the shelf life of oxygen-sensitive products
US5826065A (en) * 1997-01-13 1998-10-20 International Business Machines Corporation Software architecture for stochastic simulation of non-homogeneous systems

Also Published As

Publication number Publication date
JP3724582B2 (ja) 2005-12-07
JP3755604B2 (ja) 2006-03-15
US6782521B2 (en) 2004-08-24
WO1993020506A1 (en) 1993-10-14
US6401232B1 (en) 2002-06-04
JP3555140B2 (ja) 2004-08-18
JPH07505495A (ja) 1995-06-15
US20020129324A1 (en) 2002-09-12
US7555738B2 (en) 2009-06-30
US7174525B2 (en) 2007-02-06
US5734584A (en) 1998-03-31
US20040243961A1 (en) 2004-12-02
US5371684A (en) 1994-12-06
US5831871A (en) 1998-11-03
US20070113214A1 (en) 2007-05-17
US5566385A (en) 1996-10-15
US6083274A (en) 2000-07-04
JP2004234642A (ja) 2004-08-19

Similar Documents

Publication Publication Date Title
JP3755604B2 (ja) レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム
JP3571263B2 (ja) レジスタ名称変更システム
US6272617B1 (en) System and method for register renaming
WO2017021676A1 (en) An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank
JP6891596B2 (ja) プロセッサ
JP6020428B2 (ja) ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法
JPH08263289A (ja) 複数命令流パイプライン計算機
JP6307975B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP3473506B2 (ja) パイプライン処理装置
JPS6395538A (ja) 命令処理順序制御装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051028

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100106

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110106

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110106

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120106

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120106

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees