JPH07105017A - レジスタリネーミング装置 - Google Patents

レジスタリネーミング装置

Info

Publication number
JPH07105017A
JPH07105017A JP24677993A JP24677993A JPH07105017A JP H07105017 A JPH07105017 A JP H07105017A JP 24677993 A JP24677993 A JP 24677993A JP 24677993 A JP24677993 A JP 24677993A JP H07105017 A JPH07105017 A JP H07105017A
Authority
JP
Japan
Prior art keywords
register
renaming
logic
instruction
register number
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.)
Withdrawn
Application number
JP24677993A
Other languages
English (en)
Inventor
Akira Yasusato
彰 安里
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP24677993A priority Critical patent/JPH07105017A/ja
Publication of JPH07105017A publication Critical patent/JPH07105017A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 アーキテクチャ的に同一のレジスタに実質的
に複数の値を持たせることにより、レジスタに割り当て
られる変数の数を増やし、プログラムの実行性能を向上
すること。 【構成】 同一のレジスタを複数通りにリネームするリ
ネーム手段2と複数通りのリネーム結果を複数のフィー
ルドに選択的に保持する保持手段3と保持手段3からそ
れぞれ出力される読み出しデータを選択出力するセレク
タ5と保持手段3のフィールドを選択するライトイネー
ブル信号f−1、f−2及びセレクタ5の複数の読み出
しデータの1つを選択するセレクト信号gを出力する制
御部4により構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機で使用するレジ
スタの番号を指定された番号と別の番号のレジスタを使
用して制御を行うという、いわゆるリネームするレジス
タリネーミング装置に関する。
【0002】
【従来の技術】例えばプログラムをコンパイルすると
き、変数をメモリではなくレジスタ上に割り当てた方が
高速処理可能になるため、あるいはコンパイラによるコ
ードスケジューリングにともなって必要とするレジスタ
数が増加することになるが、これらを制御するために、
指定されたレジスタ番号と別のレジスタを使用して制御
を行う、リネーミングが行われている。
【0003】従来、計算機のレジスタを、指定されたレ
ジスタ番号を別の1個の新たな番号にリネームして使用
することにより、空きのあるレジスタを有効に利用して
計算機の処理速度の向上を行っていた。
【0004】従来例を図8により説明する。図8(a)
は従来のレジスタリネーミング装置の構成図である。図
8(a)において、21はデコード回路、22は番号割
り当て回路、23はマッピングテーブル、aは命令コー
ド、bは番号割り当て要求信号、cはデスティネーショ
ンレジスタ番号、dはソースレジスタ番号、eは書き込
みレジスタ番号、iはソースレジスタ参照用のレジスタ
番号を示す。
【0005】デコード回路21はあるレジスタをデステ
ィネーションとする命令を命令コードaにより受け取る
と、そのレジスタ番号をデスティネーションレジスタ番
号cとして出力すると共に、信号bをオンにして、番号
割り当て回路22に対して命令コードaに対してリネー
ミングに用いる新規のレジスタ番号の割り当てを要求す
る。
【0006】番号割り当て回路22は信号bを受けてマ
ッピングテーブル23に命令コードaに対して割り当て
た新規のレジスタ番号を出力する。マッピングテーブル
23は各レジスタがどのようにリネームされているかを
表すテーブルであり、アーキテクチャで与えられたレジ
スタ数だけのエントリを有する。
【0007】図8(b)は上記従来のマッピングテーブ
ル23の一例であり、命令コードにより指定された元の
レジスタ番号即ちソースレジスタ番号r0、r1・・・
に対して、番号割り当て回路22によりそれぞれレジス
タ番号r18、r15・・・が割り当てられた、いわゆ
るリネーミング例を示す。
【0008】マッピングテーブル23への書き込み動作
は、デコード回路21からのデスティネーションレジス
タ番号cでポイントされるエントリに番号割り当て回路
22からの割り当てられた書き込みレジスタ番号eが書
き込まれる。例えば、図8(b)のマッピングテーブル
23においてデスティネーションレジスタ番号cがr1
であり、書き込みレジスタ番号eがr15の場合に、元
のレジスタ番号r1の右にリネームにより割り当てられ
たレジスタ番号r15が書き込まれた例を示している。
【0009】マッピングテーブル23からの読み出し
は、デコード回路21からのソースレジスタ番号dでポ
イントされるマッピングテーブル23の内容がソースレ
ジスタ参照用のレジスタ番号iとして出力される。
【0010】例えば、図8(b)のマッピングテーブル
23においてソースレジスタ番号dがr1であればソー
スレジスタ参照用のレジスタ番号iはr15が出力され
ることになる。これにより、レジスタr15がレジスタ
r1として使用されることになる。
【0011】
【発明が解決しようとする課題】計算機のマシン命令で
使用できるレジスタ数は、採用するアーキテクチャによ
って決定され、一般的には16個または32個が使用さ
れていた。
【0012】この数は、プログラムをコンパイルする時
に、変数をメモリでなくレジスタ上に割り当てた方が高
速な処理が可能になることや、コンパイラによるコード
スケジューリング技術の進歩に伴って、使用するレジス
タの数は増加する傾向にあること等で、必ずしも十分で
あるとは言えない。
【0013】しかしながら、アーキテクチャの変更は困
難なので与えられたレジスタ数内でレジスタが不足する
場合は、メモリ等にレジスタの内容を一時避難させる必
要があり、そのために計算機のデータ処理速度がおそく
なることが生ずる。
【0014】なお、コードスケジューリングとは、例え
ばプログラム言語の命令順序が1、2、3があったとき
電算機の実行時間短縮ができしかも命令順序が入れ替え
可能な場合、コンパイルでこの命令順序を1、3、2に
入れ替えて使用することである。
【0015】従って、本発明の目的は、このような課題
を解決したレジスタリネーミング装置を提供することで
ある。
【0016】
【課題を解決するための手段】前記目的を達成するため
本発明はある番号のレジスタを別の番号のレジスタにリ
ネームするのに、本発明は1個に限定せず2個以上にリ
ネームをできるようにすることで、アーキテクチャ的に
同一のレジスタに実質的に複数の値を持たせることを可
能として、レジスタに割り当てられる変数を増やし、プ
ログラムの実行性能を向上させた。
【0017】図1は本発明の原理説明図である。図1に
おいて、1はデコード回路、2は番号割り当て回路、3
はマッピングテーブル、4は制御部、5はセレクタ、3
−1、3−2はマッピングテーブル3のフィールド、a
は命令コード、bは番号割り当て要求信号、cはマッピ
ングテーブル3にリネーミング用の書き込みを行うとき
の元のレジスタ番号を示すデスティネーションレジスタ
番号、dはマッピングテーブル3を読み出すときに、マ
ッピングテーブル3からリネーミングされた元のレジス
タ番号を示すソースレジスタ番号、e−1はフィールド
3−1、3−2への書き込み番号データ、f−1、f−
2はライトイネーブル信号、gはセレクト信号、h−
1、h−2はフィールド3−1、3−2からの読み出し
データ、iはソースレジスタ参照用のレジスタ番号であ
る。
【0018】デコード回路1はあるレジスタをデスティ
ネーションとする命令を命令コードaから受け取ると、
そのデスティネーションレジスタ番号cを出力すると共
に、番号割り当て要求信号bをオンにして、番号割り当
て回路2に対してリネーミングに用いる新規のレジスタ
を示すレジスタ番号を要求する。
【0019】番号割り当て回路2は、前記リネーミング
用のレジスタ番号を示す書き込み番号データe−1を出
力する。マッピングテーブル3は各レジスタがどのよう
にリネームされるかを表すテーブルで、アーキテクチャ
で与えられたレジスタ数だけのエントリを有する。
【0020】制御部4はデスティネーションレジスタ番
号cとソースレジスタ番号dの値に基づいてライトイネ
ーブル信号f−1又はf−2及びセレクト信号gの値の
決定を行う。
【0021】セレクタ5はセレクト信号gによりフィー
ルド3−1及び3−2から出力された読み出しデータh
−1及びh−2のどちらかを選択してソースレジスタ参
照用のレジスタ番号iを出力するものである。
【0022】
【作用】今、命令1として(r1←r2+r3)が入力
され、続いて命令2として(r1←r4−r5)が入力
される場合について説明する。
【0023】初めに命令1が入力されたとき、デコード
回路1はデスティネーションレジスタ番号r1に対する
リネーミングのため、番号割り当て回路2に対し番号割
り当て要求を行う信号bをオンにし、また、マッピング
テーブル3にデスティネーションレジスタ番号r1を出
力する。
【0024】これにより、番号割り当て回路2は空きレ
ジスタ例えばr11を書き込み番号データe−1として
出力し、制御部4はライトイネーブル信号f−1を出力
する。これにより、マッピングテーブル3のr1のエン
トリのフィールド3−1にr11が記入される。
【0025】次に、命令2が入力されたとき、デコード
回路1はデスティネーションレジスタ番号r1に対する
リネーミングのため、前記と同様に番号割り当て回路2
に対して番号割り当て要求信号bをオンにし、また、マ
ッピングテーブル3にデスティネーションレジスタ番号
r1を出力する。
【0026】これにより、今度は番号割り当て回路2は
空きレジスタ番号例えばr12を出力し、制御部4はラ
イトイネーブル信号f−2を出力するので、マッピング
テーブル3のr1のエントリのフィールド3−2には、
r12が記入される。
【0027】このようにして、ある番号のレジスタをリ
ネームする場合、レジスタ番号割り当て回路2の書き込
み番号データe−1の出力を、デスティネーションレジ
スタ番号cでポイントされたマッピングテーブル3のフ
ィールド3−1及び3−2のどちらかにライトイネーブ
ル信号f−1又はf−2の一方のみをオンとして書き込
まれる。これにより同一レジスタをフィールド3−1及
び3−2に割り当てることにより2通りにリネームして
保持することができる。
【0028】また、レジスタを参照する場合は、ソース
レジスタ番号dの値でポイントされるマッピングテーブ
ル3のフィールド3−1及び3−2の内容が読み出しデ
ータh−1及びh−2として現れ、セレクタ5により読
み出しデータh−1及びh−2のどららかが選択されて
ソースレジスタ参照用のレジスタ番号iが出力される。
【0029】このように、レジスタに割り当てられる変
数が増え、これによりコンパイラのコードスケジューリ
ング能力が向上することで、プログラムの実行性能が向
上することになる。
【0030】
【実施例】以下本発明の実施例を図2〜図7に基づき説
明する。図2は本発明の第1実施例構成図、図3は本発
明の第1実施例におけるテーブル例、図4は本発明に使
用可能なプログラム例、図5は本発明の第2実施例構成
図、図6は本発明の第3実施例構成図、図7は本発明の
第4実施例構成図をそれぞれ示す。
【0031】図2において、1はデコード回路、2は番
号割り当て回路、3はマッピングテーブル、4は制御
部、5はセレクタ、7はレジスタ番号r0〜rmの各レ
ジスタをもつレジスタ群、3−1、3−2はマッピング
テーブル3のフィールド、4−1はロジック部、4−2
は管理テーブル、aは命令コード、bは番号割り当て要
求信号、cはデスティネーションレジスタ番号、dはソ
ースレジスタ番号、e−1はフィールド3−1、3−2
への書き込み番号データ、f−1、f−2はライトイネ
ーブル信号、gはセレクト信号、h−1、h−2はフィ
ールド3−1、3−2からの読み出しデータ、iはソー
スレジスタ参照用のレジスタ番号である。なお、図1と
同じものは同じ符号で示す。
【0032】デコード回路1はレジスタをデスティネー
ションとする命令を命令コードaから受け取ると、その
デスティネーションレジスタ番号cを出力すると共に、
番号割り当て要求信号bをオンにして、番号割り当て回
路2に対してリネーミングに用いる新規のレジスタ番号
を要求する。
【0033】番号割り当て回路2はマッピングテーブル
3のフィールド3−1または3−2への書き込み番号デ
ータe−1を出力する。マッピングテーブル3は各レジ
スタがどのようにリネームされるかを表すテーブルで、
アーキテクチャで与えられたレジスタ数だけのエントリ
を有するものであり、例えば図3(a)に示すように構
成されている。その内容については後述詳記する。
【0034】制御部4は、番号割り当て回路2から出力
された書き込み番号データe−1をマッピングテーブル
3の2つのフィールドの一方に選択的に記入したり、セ
レクタ5から読み出しデータh−1又はh−2のいずれ
か一方を選択的に出力するものである。
【0035】この制御部4にはロジック部4−1と管理
テーブル4−2が設けられている。ロジック部4−1は
管理テーブル4−2の内容とデスティネーションレジス
タ番号cとソースレジスタ番号dの値に基づいてライト
イネーブル信号f−1又はf−2及びセレクト信号gの
値の決定と、管理テーブル4−2の更新を行うものであ
る。管理テーブル4−2は、図3(b)に示す如くレジ
スタ数だけのエントリを持ちリネーム個数と参照状況を
表すフィールドから構成される。その内容については後
述詳記する。
【0036】セレクタ5は、前記セレクト信号gによ
り、マッピングテーブル3のフィールド3−1及び3−
2からの読み出しデータh−1及びh−2のどららかを
選択してソースレジスタ参照用のレジスタ番号iを出力
するものである。
【0037】図3(a)はマッピングテーブル3の一例
を示しており、元のレジスタ番号r0に対応するエント
リであるフィールド3−1(図3(a)ではAで示す)
にはリネームにより割り当てられたレジスタ番号r16
が保持され、フィールド3−2(図3(a)ではBで示
す)にはレジスタ番号r10が保持されている。また、
元のレジスタ番号r1に対応するエントリにはフィール
ド3−1にはレジスタ番号r15がフィールド3−2に
はレジスタ番号r19がそれぞれ保持されている。
【0038】図3(b)は管理テーブル4−2の一例を
示しており、後述するロジックにより制御されるもので
あり、最初に命令コードにもとづきリネームされた場合
はリネーム個数1と、そのリネームにより割り当てられ
たレジスタ番号の記入されたフィールドが記入される。
また元のレジスタ番号が連続して命令コードにより指定
されたときリネーム個数は2となる。
【0039】例えば、元のレジスタ番号r0が連続して
命令コードにより指定されたとき、初めの命令コードの
レジスタ番号r0に対してレジスタr16がリネームに
より割り当てられ、これがマッピングテーブル3のフィ
ールドAに記入されたとき、管理テーブル4−2ではリ
ネーム個数は1、参照状況はAとなる。
【0040】続く命令コードについて、レジスタ番号r
0に対して今度はレジスタr10がリネームにより割り
当てられたとき、今度はこれがマッピングテーブル3の
フィールドBに記入される。これに応じて管理テーブル
4−2のリネーム個数は2となるが、参照状況は、初め
の命令コードによりリネームされたレジスタr16の位
置を示すAのままとなっている。
【0041】その後、他の命令により元のレジスタ番号
r0が参照されたとき、初めの命令コードによりリネー
ムされたレジスタr16が前記参照状況Aにもとづき読
み出され、また参照状況AはBに変更される。そして更
に別の命令により元のレジスタ番号r0が参照されたと
き、今度は参照状況Bによりレジスタr10が読み出さ
れることになる。
【0042】以下図2、図3に示すレジスタリネーミン
グ装置の動作を図4に示すプログラム例で説明する。こ
の場合、制御部4のロジック部4−1のロジック例とし
て「同一番号レジスタへの書き込みが連続した場合にそ
れらを別々にリネームし、以後の参照はリネームされた
順番に従うものとする。また、連続しない書き込みが現
れた時点で、そのレジスタの複数リネーム状態は解除さ
れる。」が設定されているものとする。
【0043】まず、命令1はレジスタ番号r1への書き
込み命令である。デコード回路1がレジスタ番号r1を
デスティネーションとするこの命令を受けとると、デス
ティネーションレジスタ番号cで図3(a)のマッピン
グテーブル3の元のレジスタ番号r1のエントリがポイ
ントされる。これにより番号割り当て回路2からの書き
込み番号データe−1と制御部4からのライトイネーブ
ル信号f−1がオンとなることで、元のレジスタ番号r
1のエントリであるフィールド3−1にリネームにより
割り当てられたレジスタ番号r15が書き込まれる。
【0044】命令2は、命令1と同じレジスタr1への
書き込み命令である。命令1と命令2は同一レジスタへ
の書き込みが連続しているので、命令1と同様にデステ
ィネーションレジスタ番号cでマッピングテーブル3の
元のレジスタ番号r1のエントリがポイントされるが、
この場合、番号割り当て回路2からの書き込み番号デー
タe−1とロジック部4−1の判断で制御部4からのラ
イトイネーブル信号f−2がオンとなるので、図3
(a)のように元のレジスタ番号r1のエントリである
フィールド3−2にリネームにより割り当てられたレジ
スタ番号r19が書き込まれる。これにより元のレジス
タ番号r1はr15とr19とに区別され別々にリネー
ムされることになる。
【0045】命令3はレジスタ番号r1が参照されてい
る。この場合はレジスタ番号r1は初めての参照である
ため、図3(b)の管理テーブル4−2の元のレジスタ
番号r1のエントリである参照状況はAとなる。このた
め、デコード回路1がレジスタ番号r2をデスティネー
ションとする命令を受けると、これを解読して、レジス
タ番号r1が参照されていることを認識する。これによ
りマッピングテーブル3に対してソースレジスタ番号d
からの出力で元のレジスタ番号r1をポイントして、フ
ィールド3−1とフィールド3−2の内容である読み出
しデータh−1、h−2(図3(a)ではr15、r1
9)を出力させる。制御部4は管理テーブル4−2を参
照し、参照状況Aによりフィールド3−1を選択すべき
ことを判別する。そしてこのフィールド3−1を選択す
るセレクト信号gを出力する。
【0046】これによりセレクタ5は読み出しデータh
−1であるレジスタ番号r15を選択して、ソースレジ
スタ参照用のレジスタ番号iとしてr15を出力する。
これにより命令3では命令1のレジスタ番号r1に書き
込んだ内容が参照されることになる。
【0047】命令4は、レジスタ番号r1が再び参照さ
れている。この場合レジスタ番号r1は2回目の参照で
あるためロジック部4−1により図3(b)の管理テー
ブル4−2の元のレジスタ番号r1のエントリである参
照状況は図3(b)の状態のAからBとなっている。こ
のため、デコード回路1が命令4によりレジスタ番号r
1の参照命令を受けると、マッピングテーブル3に対し
てソースレジスタ番号dからの出力で元のレジスタ番号
r1をポイントして、命令3と同様にフィールド3−1
とフィールド3−2の内容である読み出しデータh−
1、h−2(図3(a)のr15、r19)を出力させ
る。今度は制御部4は、管理テーブル4−2の参照状況
Bにより前記h−2側を選択すべきことを判別し、フィ
ールド3−2を選択するセレクト信号gを出力する。こ
れによりセレクタ5は読み出しデータh−2であるレジ
スタ番号r15を選択して、ソースレジスタ参照用のレ
ジスタ番号iとしてr19を出力する。すなわち命令4
では命令2のレジスタ番号r1に書き込んだ内容が参照
されることになる。
【0048】命令5は、新たにレジスタ番号r1へ書き
込みが行われるが、これは単独なので、レジスタ番号r
1は単独にリネームされた状態になる。命令6と命令7
においてレジスタ番号r1が参照されているが、どちら
も命令5でレジスタ番号r1へ書き込んだ内容が参照さ
れることになる。
【0049】なお、上記ロジックは一例に過ぎず、例え
ば演算式r1+r5の場合r1が左にあるか右にあるか
のオペランドの位置により参照を分ける等、実際に動作
させるプログラムに適したロジックを用いてシステムを
構築することができる。
【0050】本発明の第2実施例を図5により説明す
る。図5は、複数リネームをする場合と従来のように常
に一通りしかリネームしない場合を選択制御可能に構成
したものである。
【0051】ロジック部4−1の複数リネームを禁止す
るフラグを設け、このフラグにイニシャライズ時の設定
もしくはソフトウェア制御によってデータを書き込むこ
とにより、セレクト信号gを固定し、ソースレジスタ参
照用のレジスタ番号iには常に読み出しデータh−1と
h−2の一方のみが出力する。また前記フラグにデータ
を書き込まない時は、前記のように複数リネームができ
ることになる。これによって、複数通りにレジスタリネ
ーミングするモードとそうでない常に一通りにしかレジ
スタリネーミングが行われないモードを使い分けること
ができる。
【0052】このようなことを可能にするため、図5に
示す如く、制御部4にモード選択部4−3とフラグ4−
4を設ける。フラグ4−4にデータを書き込むときモー
ド選択部4−3は、ロジック部4−1を従来通りのロジ
ックモードに制御してセレクト信号gを固定させる。ま
たフラグ4−4にデータを記入しないときモード選択部
4−3はロジック部4−1を、本発明の第1実施例と同
様に動作するように制御する。これにより必要のない場
合は同一レジスタを複数通りにリネームする複雑な処理
を避けることができる。
【0053】本発明の第3実施例を図6にもとづき説明
する。図6は同一番号のレジスタを複数通りにリネーム
する手段を特定の番号のレジスタ群のみに適用した場合
を示す。図6において、図1、図2、図5と同じものは
同じ符号で示してある。また、6はセレクタ、33は常
に1通りにしかレジスタリネーミングを行わないレジス
タ群のマッピングテーブル、eは書き込み番号データ、
jはマッピングテーブル33の読み出しデータ、kはマ
ッピングテーブル3の読み出しデータh−1およびh−
2をセレクタ5で選択したデータ、mはセレクト信号で
ある。
【0054】マッピングテーブル3は同一レジスタに対
して2通りのリネームが可能なように2個のフィールド
3−1と3−2が設けられている。マッピングテーブル
33は同一レジスタに対し常に1通りにしかリネームし
ないもので、図6の従来例と同じ動作をするものであ
る。
【0055】図6のレジスタリネーミング装置の動作を
説明する。例えば、マシン命令で使用できるレジスタ数
が16個(r0〜r15)の場合で、そのうちマッピン
グテーブル3には例えばレジスタr0〜r7をマッピン
グテーブル33にはレジスタr8〜r15がそれぞれ割
り当てられているものとする。また、リネームして使用
する実際のレジスタ群7のレジスタ数は32個(r0〜
r31)あるものとする。
【0056】この場合、まず、デコード回路1がレジス
タr0〜r7のレジスタをデスティネーションとする命
令を命令コードaから受けると、そのレジスタ番号をデ
スティネーションレジスタ番号cに出力すると共に、番
号割り当て回路2に番号割り当て要求信号bを出力す
る。番号割り当て回路2は新規のレジスタ番号を書き込
み番号データe−1、e−1として出力する。
【0057】この書き込み番号データe−1、e−1は
デスティネーションレジスタ番号cでポイントされるフ
ィールド3−1又は3−2のエントリに書き込まれる。
このフィールド3−1と3−2のどちらに書き込むかは
制御部4からのライトイネーブル信号f−1とf−2の
いずれか一方のみがオンとなることで決まる。
【0058】このときマッピングテーブル33にも前記
デスティネーション番号cおよび書き込み番号データe
−1が印加される。しかし、マッピングテーブル33の
デコーダがこのデスティネーション番号cを解読した結
果、前記デスティネーション番号cで指示された元のレ
ジスタ番号は自マッピングテーブル33のエントリ外の
ものと判断し書き込み番号データe−1を記入すること
はない。
【0059】また、デコード回路1がレジスタr8〜r
15のレジスタをデスティネーションとする命令を命令
コードaから受けると、従来例と同様に、そのレジスタ
番号をデスティネーションレジスタ番号cに出力すると
共に、番号割り当て回路2に番号割り当て要求信号bを
出力する。番号割り当て回路2は新規のレジスタ番号を
書き込み番号データeとして出力する。
【0060】この書き込み番号データeはデスティネー
ションレジスタcでポイントされるマッピングテーブル
33のエントリに書き込まれる。このときマッピングテ
ーブル3にも前記デスティネーション番号cおよび書き
込み番号データeが印加される。しかし、マッピングテ
ーブル3のデコーダがこのデスティネーション番号cを
解読した結果、前記デスティネーション番号cで指示さ
れた元のレジスタ番号は自マッピングテーブル33のエ
ントリ外のものと判断し書き込み番号データeを記入す
ることはない。
【0061】一方、デコード回路1が命令コードaから
レジスタ番号r0〜r7内のいずれかを参照する命令を
受けると、このレジスタ番号がソースレジスタ番号dか
ら出力される。このソースレジスタ番号dでポイントさ
れるマッピングテーブル3のフィールド3−1と3−2
から読み出しデータh−1とh−2が出力される。これ
らの読み出しデータh−1とh−2を制御部4からのセ
レクト信号gとセレクト信号mでセレクタ5とセレクタ
6により選択し、レジスタ番号iとして出力される。こ
のレジスタ番号iにより指示されるレジスタ番号r0〜
r31の一つがレジスタ群7のレジスタ参照に用いられ
る。
【0062】また、デコード回路1が命令コードaから
レジスタ番号r8〜r15内のいずれかを参照する命令
を受けると、このレジスタ番号がソースレジスタ番号d
でポイントされるマッピングテーブル33から読み出し
データjとして出力され、制御部4からのセレクト信号
mでセレクタ6で選択され、レジスタ番号iとして出力
される。このレジスタ番号iにより指示されるレジスタ
番号r0〜r31の一つがレジスタ群7のレジスタ参照
に用いられる。
【0063】本発明の第4実施例を図7により説明す
る。図7は第1実施例の制御部4に複数のロジック部を
設けておき、これらのロジック部をソフトウェア制御に
よって、選択制御可能に構成したものである。
【0064】図7において、異なるロジックが記入され
たロジック部4−1Aとロジック部4−1Bと、これら
のロジック部4−1Aと4−1Bを選択するロジック選
択部4−5と、ロジック選択部の選択指示を行うフラグ
4−6とが制御部4に設けられている。
【0065】この制御部4のフラグ4−6にソフトウェ
ア制御によりフラグ設定を行うと、このフラグ設定の内
容に応じてロジック選択部4−5がロジック部4−1A
と4−1Bのいずれかを選択することになる。
【0066】これにより、この選択されたロジックの内
容にもとづき、第1実施例と同様のレジスタリネーミン
グ動作を行うことができる。また、図7のロジック部は
2個の場合であるが3個以上とすることもできる。
【0067】なお、前記実施例ではソースレジスタ番号
dが1個の場合を示しているがソースレジスタ番号を2
個設け、それに対応した回路にすることも容易にでき
る。また、マッピングテーブル3のフィールドは2個に
限らず3個以上とすることができる。
【0068】さらに、マシン命令で使用できるレジスタ
数より多いレジスタを設けることにより、次々と新しい
レジスタをリネームして使用することができる。
【0069】
【発明の効果】本発明は、アーキテクチャ的に同一のレ
ジスタに実質的に複数の値を持たせることにより、レジ
スタに割り当てられる変数が増え、またコンパイラのコ
ードスケジューリング能力が向上するので、プログラム
の実行性能を向上することができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の第1実施例構成図である。
【図3】本発明の第1実施例におけるテーブル例であ
る。
【図4】本発明に使用可能なプログラム例である。
【図5】本発明の第2実施例構成図である。
【図6】本発明の第3実施例構成図である。
【図7】本発明の第4実施例構成図である。
【図8】従来例の説明図である。
【符号の説明】
1 デコード回路 2 番号割り当て回路 3 マッピングテーブル 4 制御部 5 セレクタ 3−1、3−2 フィールド a 命令コード b 番号割り当て要求信号 c デスティネーションレジスタ番号 d ソースレジスタ番号 e−1 書き込み番号データ f−1、f−2 ライトイネーブル信号 g セレクト信号 h−1、h−2 読み出しデータ i レジスタ番号

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 同一のレジスタを複数通りにリネームす
    るリネーム手段(2)と、 複数のフィールドを有し前記複数通りのリネーム結果を
    これらのフィールドに選択的に保持する保持手段(3)
    と、 前記保持手段(3)の複数のフィールドからそれぞれ出
    力される読み出しデータを選択出力するセレクタ(5)
    と、 前記保持手段(3)のフィールドの1つを選択するライ
    トイネーブル信号(f)と、前記セレクタ(5)の複数
    の読み出しデータの1つを選択するセレクト信号(g)
    を出力する制御部(4)を具備することを特徴とするレ
    ジスタリネーミング装置。
  2. 【請求項2】 特定の番号のレジスタ群を1通りのみに
    リネームするリネーム結果を保持する第1の保持手段
    (33)と、 その他の番号のレジスタ群を複数通りにリネームしたリ
    ネーム結果を保持する第2の保持手段を設けたことを特
    徴とする請求項1記載のレジスタリネーミング装置。
  3. 【請求項3】 1つのレジスタ番号に対し複数のリネー
    ミングを可能にする第1のロジックと、1つのレジスタ
    番号に対し1つのリネーミングを可能にする第2のロジ
    ックを有するロジック部と、 これらのロジックのいずれかを選択するモード選択部
    と、 これらのロジックの1つの選択指示を行う制御部を具備
    することを特徴とする請求項1記載のレジスタリネーミ
    ング装置。
  4. 【請求項4】 異なるロジックが設けられた複数のロジ
    ック部と、 これらのロジック部のいずれかを選択するロジック選択
    部と、 これらのロジック部の選択指示を行う制御部を具備する
    ことを特徴とする請求項1記載のレジスタリネーミング
    装置。
JP24677993A 1993-10-01 1993-10-01 レジスタリネーミング装置 Withdrawn JPH07105017A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24677993A JPH07105017A (ja) 1993-10-01 1993-10-01 レジスタリネーミング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24677993A JPH07105017A (ja) 1993-10-01 1993-10-01 レジスタリネーミング装置

Publications (1)

Publication Number Publication Date
JPH07105017A true JPH07105017A (ja) 1995-04-21

Family

ID=17153540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24677993A Withdrawn JPH07105017A (ja) 1993-10-01 1993-10-01 レジスタリネーミング装置

Country Status (1)

Country Link
JP (1) JPH07105017A (ja)

Similar Documents

Publication Publication Date Title
JP3916680B2 (ja) プロセッサ
US4617625A (en) Vector processor
US3983539A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
JP2750311B2 (ja) データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法
US4558411A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
JPH03147021A (ja) 命令指定方法及び命令実行方式
JP2004158018A (ja) レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム
JP2006509306A (ja) 関係アプリケーションへのデータ処理システム相互参照用セルエンジン
US20010014939A1 (en) Dynamic allocation of resources in multiple microprocessor pipelines
EP2660714A2 (en) Semiconductor device
JP2003122564A (ja) スーパースカラプロセッサ
JPH0622035B2 (ja) ベクトル処理装置
JPH0432426B2 (ja)
US5742783A (en) System for grouping instructions for multiple issue using plural decoders having forward and backward propagation of decoding information
US5307300A (en) High speed processing unit
JP2008513878A (ja) 機能単位が読み出しポートを共有するデータ処理回路
KR100765567B1 (ko) 산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
JP6891596B2 (ja) プロセッサ
JPH07105017A (ja) レジスタリネーミング装置
JP3737573B2 (ja) Vliwプロセッサ
JP3696625B2 (ja) データ駆動型情報処理装置
JPS5920049A (ja) 演算処理装置
JP5245617B2 (ja) レジスタ制御回路およびレジスタ制御方法
JPH0452986B2 (ja)

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20001226