JP2539974B2 - 情報処理装置におけるレジスタの読出制御方式 - Google Patents

情報処理装置におけるレジスタの読出制御方式

Info

Publication number
JP2539974B2
JP2539974B2 JP3304895A JP30489591A JP2539974B2 JP 2539974 B2 JP2539974 B2 JP 2539974B2 JP 3304895 A JP3304895 A JP 3304895A JP 30489591 A JP30489591 A JP 30489591A JP 2539974 B2 JP2539974 B2 JP 2539974B2
Authority
JP
Japan
Prior art keywords
register
instruction
data
sel
reg
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.)
Expired - Fee Related
Application number
JP3304895A
Other languages
English (en)
Other versions
JPH05143328A (ja
Inventor
達己 中田
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 JP3304895A priority Critical patent/JP2539974B2/ja
Priority to DE69228360T priority patent/DE69228360T2/de
Priority to EP92119838A priority patent/EP0543415B1/en
Publication of JPH05143328A publication Critical patent/JPH05143328A/ja
Priority to US08/364,512 priority patent/US5638526A/en
Application granted granted Critical
Publication of JP2539974B2 publication Critical patent/JP2539974B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置におけるレ
ジスタの読出制御方式に関し、特に演算処理の低下を来
すことなくレジスタの読出ポート数の削減が可能な方式
に関する。
【0002】
【従来の技術】近年における情報処理装置における高速
化手法、たとえばスーパスカラー方式、VLIW(VERY
-LONG-INSTRUCTION-WORD)方式、スーパパイプライン方
式等では、1サイクル間に複数の命令を実行することが
可能となっている。
【0003】この種のバイパス機能(演算回路出力バイ
パス(BPS))を有するパイプライン処理の一例を図
に基づいて説明する。パイプライン処理におけるステー
ジ動作は、図2に示すように、プログラムカウンタ(P
C)に基づいて、命令キャッシュデータ(ICACH
E)を取り込む命令フェッチステージ(Inst Fe
tch)と、命令を解析するデコードステージ(Dec
ode)と、レジスタファイル(REG)の内容をオペ
ランドレジスタ(OP)に取り込み加算器(ALU)で
演算を行う実行ステージ(Execute)と、演算結
果を前記レジスタファイル(REG)に書き込む書き込
みステージ(Write)とからなる。
【0004】このように、命令を複数のステージに分割
して他命令と並列処理することにより、処理の高速化を
図っている。そして、同図に示すように、加算器(AL
U)の結果を、後続命令でのオペランドレジスタ(O
P)に演算回路出力バイパス(BPS)を通じてバイパ
ス転送させることによって、前命令の演算結果を用いる
後続命令の処理等を高速化していた。
【0005】
【発明が解決しようとする課題】ところで、前記パイプ
ライン処理では、命令の並列動作数が増加するにしたが
って図3に示すようにレジスタファイル(REG)から
の読出ポート(PT)も増加し(同図では4ポート構成
となっている)、ハードウエア量が増加し、これにとも
ない、レジスタファイル(REG)の中に設けられたセ
レクタ(SEL)の処理遅延時間が大きくなり、コスト
高のみならず、処理効率・処理速度ともに低下する懸念
があった。
【0006】本発明はこのような点に鑑みてなされたも
のであり、その目的は、レジスタファイル(REG)に
おける読出ポートを増加させることなく、少ないハード
ウエア量で複数命令の演算処理を効率かつ高速化できる
技術を提供することにある。
【0007】
【課題を解決するための手段】本発明は、パイプライン
処理により複数の命令を並列して逐次実行する際に、レ
ジスタファイル(REG)と、一時格納レジスタ(C
R)と、セレクタ(SEL)と、演算回路(1)と、レ
ジスタキャッシュパス(RCPS)と、一致検出回路
(COMP)とを有する構成として、この一致検出回路
(COMP)において、前命令の一時格納レジスタ(C
R)の保持データと後続命令でのオペランドとの一致を
検出した場合には、前記セレクタ(SEL)を制御して
セレクタの入力として前記レジスタキャッシュパス(R
CPS)を選択し、前記一時格納レジスタ(CR)の保
持データをレジスタキャッシュパス(RCPS)を経由
して当該一時格納レジスタ(CR)に直接帰還入力する
こととした。
【0008】
【作用】たとえば、ある命令で読み出しを行ったレジス
タは後続の命令でも読み出しをする可能性が高い。具体
例として、フレームポインタ、セグメントベースレジス
タ、ループ変数(これらは計算機のアーキテクチャやコ
ンパイラ、プログラムによっても変化する)を考える
と、サブプログラム間のパラメータやローカル変数をス
タックフレーム上に作成するようなソフトウエアシステ
ムでは、フレームポインタが数命令に1度はアクセスさ
れる可能性が高い。
【0009】本発明では、原理図である図1(a)に示
すように、演算回路1(たとえばALU)において、一
時格納レジスタ(CR)を設け、この保持データが後続
命令で使用されるデータと一致する場合は、レジスタキ
ャッシュパス(RCPS)を通じて演算回路(ALU)
に保持データを出力する。
【0010】また、図1(b)では、オペランドレジス
タ(OP)を一時格納レジスタ(CR)として用いてい
る。そして演算回路1(ALU)において演算を行う際
に、一致回路(COMP)において前命令と後続命令と
でレジスタデータを比較する。ここで同じレジスタデー
タを用いることを検出した場合には、演算入力セレクタ
(SEL)を制御して、一時格納レジスタ(CR)のデ
ータを演算入力セレクタ(SEL)に戻して演算回路
ALU)に再入力させる。
【0011】このように、レジスタのキャッシュを可能
としたことにより、レジスタファイル(REG)からの
読み出し回数が大幅に低減でき、レジスタファイル(R
EG)の読出ポート(PT)を増加させることなく、効
率的かつ高速な演算処理を実現できる。
【0012】なお、一時格納レジスタ(CR)は、キャ
ッシュ専用のレジスタであってもよいし、図1に示した
ような演算回路1(ALU)のオペランドを保持するオ
ペランドレジスタ(OP)であってもよい。
【0013】
【実施例】図4は本発明の一実施例を示すブロック図で
あり、本発明はたとえば同図に示す回路構成で実現され
る。なお同図では2ポート構成(PT1,PT2)のレ
ジスタシステムを例にしている。
【0014】同図において、命令レジスタ(IR)は第
1命令部(OP1)と、第2命令部(OP2)とに区分
され、さらに各命令部(OP1・OP2)は、第1レジ
スタ部(R11,R21)と第2レジスタ部(R21,
R22)とに分割されている。
【0015】前記各レジスタ部からの出力は、命令レジ
スタ出力用セレクタ(ISEL1・ISEL2)を経て
レジスタファイル(REG)に入力される。また、命令
レジスタ内あるいは命令レジスタ外には前レジスタデー
保持部(OR11・OR21)が設けられており、後
述のオペランドレジスタ(OP11・OP21)の読み
出しが行われたレジスタデータ(アドレス)が格納され
る。
【0016】前レジスタデータ保持部(OR11・OR
21)と前記各レジスタ部の値は、一致検出回路(CO
MP)に出力され、両保持値が比較される。そしてこの
一致検出回路(COMP)の判定値によって演算入力セ
レクタ(SEL)が制御される。この制御については後
述する。
【0017】レジスタファイル(REG)は、汎用レジ
スタ、浮動小数点レジスタ等のレジスタ群からなる記憶
回路で構成されており、一対の演算回路(ALU1・A
LU2)に対してそれぞれ1個ずつの出力ポート(PT
1,PT2)を備えている。
【0018】演算回路(ALU1・ALU2)のそれぞ
れの前段には、一対ずつのオペランドレジスタ(OP1
1−OP12,OP21−OP22)が設けられてお
り、このオペランドレジスタの前段には、前述の演算入
力セレクタ(SEL:SEL11−SEL22)が設け
られている。この演算入力セレクタ(SEL)のうち、
SEL11とSEL21には、演算回路(ALU)から
の出力と、レジスタファイル(REG)からの出力と、
一時格納レジスタ(CR)としてのオペランドレジスタ
(OP)からのレジスタキャッシュパス(RCPS1・
RCPS2)とが接続され、演算回路(ALU)からの
出力、レジスタファイル(REG)からの出力またオペ
ランドレジスタ(OP11,OP22)のいずれかを選
択的にオペランドレジスタ(OP)に入力させる機能を
有している。
【0019】前記演算入力セレクタ(SEL)の制御は
前述の一致検出回路(COMP)によって行われる。す
なわち、一致検出回路(COMP)によって、前レジス
データ保持部(OR11・OR21)の保持値と、後
続の命令の中のレジスタアドレスとが一致する場合に
は、演算入力セレクタ(SEL)の入力として前記レジ
スタキャッシュパス(RCPS)を選択する。これによ
り、レジスタキャッシュが実現され、レジスタファイル
(REG)からの読み出し処理を経ることなく、前命令
のオペランドを後続命令においてもそのまま用いること
が可能となる。
【0020】一致検出のタイミング、すなわち一致検出
回路(COMP)の配置位置としては、下記の3通りの
構成が可能である。 (構成1)第1の構成は、パイプライン処理において、
デコード処理に送られる信号をそのまま用いて一致・不
一致を検出する方法で、この場合、図5および図6に示
す回路構成となる。
【0021】図5は、前述の図4のハードウエア構成を
簡略化したものである。すなわち、命令レジスタ(I
R)の出力側に一致検出回路(COMP)を配置して、
命令レジスタ(IR)から命令を読み出す際に、命令の
レジスタ指示フィールドがレジスタキャッシュとしての
前レジスタデータ保持部(OR)に保持されている内容
と一致しているか否か検出される
【0022】また、この種の情報処理装置では、ハード
ウエア構成において、命令レジスタ(IR)を用いるこ
となく、直接命令バッファ(IB)から命令を読み出す
場合があるが、この場合には図6に示すように、命令バ
ッファ(IB)の出力側に一致検出回路(COMP)を
配置することができる。この時には、命令バッファ(I
B)から命令を読み出す際に、命令のレジスタ指示フィ
ールドがレジスタキャッシュとしての前レジスタデータ
保持部(OR)に保持されている内容と一致するか否か
を検出する。 (構成2) 第2の構成はデコードステージよりも前の段階で一致・
不一致を検出する方法で、図7に示す回路構成となる。
【0023】すなわち、命令レジスタ(IR)の入力側
に一致検出回路(COMP)を配置して、命令バッファ
(IB)から命令レジスタ(IR)に命令を引き渡すの
に同期して、現時点で命令レジスタ(IR)に引き渡し
ている命令の直前のサイクルに実行された命令のレジス
アドレス(すなわち現時点で命令レジスタ(IR)内
格納されている命令のレジスタ指示フィールド)と、
命令バッファ(IB)の中の命令が参照するレジスタ
ドレスとを比較する。
【0024】本構成をパイプライン処理において概念的
に示したものが図13である。すなわち、前述の「命令
レジスタ(IR)に引き渡している命令の直前のサイク
ルに実行された命令」とは、現時点(前命令)でデコー
ドステージにおいて命令レジスタ(IR)に入っている
命令である。後続命令では自身の次のデコードステージ
(D)で命令レジスタ(IR)に格納すべきレジスタ指
示フィールドを、前記前命令の命令レジスタ(IR)に
格納されている命令のレジスタ指示フィールドと比較し
ている。
【0025】この構成によれば、デコードステージより
も前の段階で一致・不一致の判定が完了しているため、
比較的高速な演算処理を実現できる。 (構成3) 第3の構成は、図8に示すように、命令バッファ(I
B:IB0〜IB2)のそれぞれについてその命令中
含まれるレジスタアドレスを、デコードされた命令中に
含まれるレジスタアドレスと一致検出回路(COMP)
で比較して一致・不一致を検出する。 また、一致検出回
路(COMP)において一致を検出した場合には、当該
レジスタアドレスを命令バッファ(IB:IB0〜IB
2)に再度格納される。 このように図8に示した構成
は、命令レジスタ(IR)を有しない命令バッファだけ
のハードウエア構成である場合に極めて高速な演算処理
を実現できる。
【0026】すなわち、命令バッファ(IB)の前段に
一致検出回路(COMP)を設け、この一致検出回路
(COMP)の一方の入力は命令バッファ(IB)中に
保持されているレジスタアドレスとし、他方の入力は現
在デコード中のレジスタアドレスとする。この一致検出
回路(COMP)で現在デコード中のレジスタアドレス
と命令バッファ(IB)の保持するレジスタアドレス
の一致が検出された場合には、一致検出信号一旦命令
バッファ(IB)に格納された後、図中において破線で
示す経路を経て、次のステージに同期して演算入力セレ
クタ(SEL)を直接作動させる。なお図中において
号31および32はセレクタである。
【0027】この第3の構成では、パイプライン処理に
おいて、デコードステージよりも前のステージ段階で、
その時点では使用されていない命令バッファ(IB)の
タイミングでレジスタ番号の一致・不一致を検出してお
くため、次のデコード処理を全く遅延させることなくレ
ジスタのキャッシュを実現できる。
【0028】なお、図示は省略したが、本実施例では従
来のバイパス処理を行う制御システムも併有している。
すなわち、演算回路(ALU)の結果が後続命令で参照
しようとしているレジスタに格納されているか否かを検
出する回路(図示省略)を有しており、この回路から出
力される一致信号によって、演算入力セレクタ(SE
L)はその入力として演算回路出力バイパス(BPS)
を選択する。これによって、本システムでは従来技術に
おけるバイパス処理も可能となっている。この場合、演
算入力セレクタ(SEL)はバイパス処理とレジスタキ
ャッシュ処理とで共有可能であるため、ハードウエア構
成が増加することはない。
【0029】次に、図4および図9〜図12を用いて、
演算入力セレクタ(SEL)の制御について場合分けを
して説明する。図9は、オペランドレジスタ(OP1
1)の入力側に配置された演算入力セレクタ(SEL)
の動作を示している。
【0030】まず、一般的なパイプライン処理の場合の
バイパス処理を説明する。選択条件として、命令レジス
タ(IR)の第1レジスタ部(R11)に格納されてい
るレジスタアドレスが現在実行ステージ(Execut
e)を実行している命令の1番目のディストネーション
オペランド(ODR1)のレジスタアドレスを示してい
る場合、演算入力セレクタ(SEL11)には演算回路
(ALU1)の出力、すなわち演算回路出力バイパス
(BPS1)を選択的に取り込む。また、第2番目のデ
ィストネーションオペランド(ODR2)のレジスタ
ドレスを示している場合には、演算回路(ALU2)側
の演算回路出力バイパス(BPS2)を選択する。以上
はパイプライン処理における一般的なバイパス処理であ
る。これらの選択条件の判断回路等については、本実施
例では説明を省略する。
【0031】次に、本実施例のレジスタキャッシュ処理
の場合を説明する。命令レジスタ(IR)の第1レジス
タ部(R11)のレジスタアドレスが実行ステージにお
ける命令の第1番目のソースオペランドのレジスタアド
レス(OR11に格納されているOP11のレジスタ
ドレス)を示している場合、演算入力セレクタ(SEL
11)にはオペランドレジスタ(OP11)の出力、す
なわちレジスタキャッシュパス(RCPS11)を選択
する。
【0032】最後に、前記バイパス処理およびレジスタ
キャッシュ処理以外の場合は、演算入力セレクタ(SE
L11)は通常の処理(レジスタファイルの読み込み処
理)として、レジスタファイル(REG)からの第1ポ
ート(PT1)の出力を選択する。
【0033】図10は、オペランドレジスタ(OP1
2)の入力側に配置された演算入力セレクタ(SEL1
2)の動作、図11はペランド入力セレクタ(SEL2
1)の動作、図12は演算入力セレクタ(SEL22)
の動作をそれぞれ示している。なお、図4では、オペラ
ンドレジスタ(OP11)の保持値が他の3個のオペラ
ンドレジスタ(OP12,OP21,OP22)でキャ
ッシュ可能であり、オペランドレジスタ(OP21)の
保持値がオペランドレジスタ(OP21・OP22)で
キャッシュ可能となっているが、レジスタキャッシュの
組み合わせはこれに限定されない。
【0034】次に、本実施例によりレジスタポート数が
低減できる具体例として、シーケンシャル探索のプログ
ラム(C言語で記述)を下記の(数1)式で示す。
【0035】
【数1】 この(数1)をVLIWの疑似アセンブラ言語を使って
コーディングしたものが下記の(数2)である。
【0036】
【数2】 前記(数2)では、LOAD命令の待ち等で無駄時間が
発生するため、loop−unrolling処理とし
た(数3)。ループの処理時間は1τ増加しただけであ
るが、2エレメントずつのサーチが可能となる。またポ
インタ更新用の定数8,16は予め「GR」に割当られて
いるものとする。下記の(数3)において説明の便宜の
ため行番号を付してある。また、各行の右端に示されて
いる数字は、左側が従来のバイパス処理のみの場合で必
要となるレジスタポート数、右側が従来のバイパス処理
と本実施例のレジスタキャッシュ方式を併用した場合に
必要となるポート数である。
【0037】
【数3】 01 G1=0 G9=8 02 LOOP: 03 G4=LOAD(G8+G1) G1=G1+G9 ;2 2 04 CMP G1,G3 G5=LOAD(G8+G1) ;2 1 05 BGE EXIT CMP G4,G6 ;1 1 06 BEQ FOUND CMP G5,G6 ;1 0 07 BNE LOOP G1=G1+G9 ;2 2 08 FOUND: 09 G1=G1-G9 10 BR (G31) G1=G1/G9 11 EXIT: 12 BR (G31) G1= -1 前記(数3)において、第03行目では、「G8」と「G
9」の読み込みのために2ポート必要である。また、「G
1」は第01行目または第07行目により、バイパス処
理が可能である。第04行目ではバイパス処理の場合、
「G1」が前命令からバイパスされるため、「G3」と「G
8」のための2ポートとなる。これに対して、本実施例
のレジスタキャッシュを併用した場合、「G8」がキャッ
シュされるため、「G3」の読み込みのみとなり1ポート
で足りる。
【0038】また、第06行目では「G6」がキャッシュ
されるため、また「G5」はバイパス処理が可能なのでポ
ートを使用しない。ここで、ダミー命令を追加すること
により、さらに効率的な処理が可能となる。
【0039】
【数4】 01 G1=0 G9=8 02 LOOP: 03 G4=LOAD(G8+G1) G1=G1+G9 ;2 1 04 CMP G1,G3 G5=LOAD(G8+G1) ;2 1 05 BGE EXIT CMP G4,G6 ;1 1 06 BEQ FOUND G1=G1 CMP G5,G6 ;2 1 07 BNE LOOP G1=G1+G9 ;1 1 前記(数4)において、第03行目では、第07行目か
らのループ帰還の場合、従来技術のバイパス処理では、
「G1」がバイパス処理可能なためレジスタファイル(R
EG)からの読み込みは「G8」と「G9」、すなわち2ポ
ートが必要である。
【0040】しかし、本実施例のレジスタキャッシュを
併用した場合には、「G9」は第07行目からキャッシュ
されるため、「G8」のみの読み込み、すなわち1ポート
のみで足りる。
【0041】また第04行目では、「G1」が従来のバイ
パス処理、「G8」が本実施例でのレジスタキャッシュ処
理が可能であるため、レジスタファイル(REG)から
の読み込みは「G3」のみの1ポートで足りる。
【0042】また第05行目では、LOAD命令からの
バイパス処理が可能であるため、「G6」を読み込むため
の1ポートでよい。さらに第06行目では、「G5」をL
OAD命令からバイパス処理できるため、「G6」および
「G1」の読み込みのみでよいが、本実施例によれば「G
6」についてはレジスタキャッシュが可能であるため、
「G1」の読み込みのみ、すなわち1ポートのみが必要と
なる。
【0043】このように、(数4)のようにプログラム
を僅かに手直し(ダミー命令を追加:第06行目「G1=G
1」)するだけで1ポートのみでシーケンシャル探索の
全プログラムの実行が可能となっている。
【0044】次に、本実施例によりレジスタポート数が
低減できる別の具体例として、データ転送プログラムを
説明する。
【0045】
【数5】DO I=1,N B(I)=A(I) CONTINUE 前記(数5)式を疑似アセンブラで記述した例を下記の
(数6)式で示す。なお説明の便宜上(数6)式には各
行に行番号を付してある。また各行の右端に示されてい
る数字は、前記と同様に左側が従来のバイパス処理のみ
の場合で必要となるレジスタポート数、右側が従来のバ
イパス処理と本実施例のレジスタキャッシュ方式を併用
した場合に必要となるポート数である。
【0046】
【数6】 01 ; G2=(I-1)*4 02 G5=(N-1)*4 03 G3=top address of A G4=top address of B-4 04 G2=0 05 LOOP:G1=LOAD(G3+G2) G2=G2+4 ;3 1 06 CMP G2,G5 ;1 1 07 STORE(G4+G2)=G1 BNE LOOP ;2 1 前記の例において、第05行目では、サブ命令との並列
処理を行うためには、従来のバイパス処理のみの場合、
レジスタファイル(REG)より「G3」,「G2」,「G
2」を読み出さなければならない。このときループから
分岐してくる場合には「G2」に直接書き込みは行わない
ので「G2」をバイパス処理することはできない場合がほ
とんどである。しかし本実施例では、前の第07行目に
おいてSTOREのアドレス生成のためにレジスタ読み出し
を行っているので、「G2」の内容はキャッシュされるた
め、レジスタファイル(REG)からは「G3」のみを読
み出せばよい。
【0047】第06行目では、「G2」は従来方法のバイ
パス処理が行われるため、レジスタファイル(REG)
からの読み出しは「G5」のみとなる。第07行目では、
「G2」も「G4」もバイパス処理ができない。しかし、本
実施例では第06行目の処理で使用された「G2」がキャ
ッシュされるため、本実施例では「G4」のみを読み出せ
ばよい。
【0048】このように、本実施例ではレジスタキャッ
シュ方式と従来のバイパス処理とを併用することにより
ハードウエア量を大幅に低減できる。すなわち、従来の
バイパス処理のみので対応する場合には最低3ポートな
ければレジスタの読み出し待ちが必要であった処理を、
本実施例のレジスタキャッシュ処理との併用により同一
の処理を1ポートで実現できるという極めて顕著な効果
を有している。
【0049】このような処理を図4で示したハードウエ
ア構成で行った場合、2ポート(PT1,PT2)の
内、いずれか一方のポートが完全に空き時間となるた
め、この空き時間を利用して非同期または優先度の低い
レジスタ読み出し等を行うことができる。
【0050】なお、演算入力セレクタ(SEL)の別の
制御方法として、当該セレクタ(SEL)はレジスタフ
ァイル(REG)のポート出力(PT)を選択できない
ようにしてもよい。この場合には、先行命令の参照また
は更新したレジスタデータをバイパス処理することのみ
が可能なハードウエア構成となる。このような構成であ
っても本発明は実現可能である。なぜならば、サブ命令
に対して2つのソースレジスタの指定が可能であるが、
多くの場合一方のレジスタ指示しか必要ない場合や、本
実施例のレジスタキャッシュや従来のバイパス処理が併
用可能な場合が多く、レジスタ番号は指示したものの、
レジスタファイル(REG)から実際に読み込む必要が
無い場合が多く存在するためである。
【0051】また、前記実施例では演算回路としてAL
Uを用いた例で説明したが、演算回路としては、シフト
あるいは浮動小数演算器等を用いた構成としてもよい。
【0052】
【発明の効果】本発明によれば、演算処理性能の低下を
来すことなくレジスタの読み出しポート数を低減し、こ
れによって少ないハードウエア構成で高速かつ効率的な
演算処理が可能な情報処理装置を実現することができ
る。
【図面の簡単な説明】
【図1】本発明の原理図
【図2】従来技術におけるパイプライン処理を示す説明
【図3】従来技術におけるパイプライン処理を示す説明
【図4】本発明の一実施例を示すブロック図
【図5】実施例における一致検出回路の配置構成を示す
説明図
【図6】実施例における一致検出回路の配置構成を示す
説明図
【図7】実施例における一致検出回路の配置構成を示す
説明図
【図8】実施例における一致検出回路の配置構成を示す
説明図
【図9】実施例におけるセレクタ(SEL)の動作条件
を示す説明図
【図10】実施例におけるセレクタ(SEL)の動作条
件を示す説明図
【図11】実施例におけるセレクタ(SEL)の動作条
件を示す説明図
【図12】実施例におけるセレクタ(SEL)の動作条
件を示す説明図
【図13】実施例(構成2)におけるパイプライン処理
の動作を示す説明図
【符号の説明】
1・・演算回路(ALU) REG・・レジスタファイル OP・・オペランドレジスタ(命令部、CR:一時格納
レジスタ) SEL・・演算入力セレクタ COMP・・一致検出回路 OR・・前レジスタ番号保持部 IB・・命令バッファ RCPS・・レジスタキャッシュパス PT・・読み出しポート

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令の一部にオペランドとなるレジスタ
    データを選択する情報を有しているパイプライン処理の
    情報処理装置であって、 前記レジスタデータを記憶するレジスタファイル(RE
    G)と、 このレジスタファイル(REG)から出力されたレジス
    タデータを一時格納する一時格納レジスタ(CR)と、 データを取り込んで演算処理を行う演算回路(1)と、 前記レジスタファイル(REG)と演算回路(1)との
    間に介装された演算入力セレクタ(SEL)と、 前記一時格納レジスタ(CR)の出力と前記演算入力セ
    レクタ(SEL)の入力を結ぶレジスタキャッシュパス
    (RCPS)と、 一時格納レジスタ(CR)に格納されたデータと、後続
    命令が使用するレジスタデータとの一致を検出する一致
    検出回路(COMP)と、 前記レジスタファイル(REG)の前段に設けられ前記
    一時格納レジスタ(CR)のデータを読み出すのに使用
    したレジスタ指示データを保持する前レジスタデータ保
    持部(OR)と、命令バッファ(IB)と命令レジスタ
    (IR)とを有し、 前記一致検出回路(COMP)は、前記命令バッファ
    (IB)から命令レジスタ(IR)に命令を引き渡すの
    に同期してその時点においてデコードされているレジス
    タ指示情報、すなわち命令レジスタ(IR)内のレジス
    タ指示情報と、命令バッファ(IB)内のレジスタ指示
    情報との一致・不一致を検出し、一致する場合には、演
    算入力セレクタ(SEL)を制御して該セレクタの入力
    として前記レジスタキャッシュパス(RCPS)を選択
    し、前記一時格納レジスタ(CR)のレジスタデータが
    レジスタキャッシュパス(RCPS)を経由して演算回
    路(1)に入力されるようにしたことを特徴とする情報
    処理装置。
  2. 【請求項2】 命令の一部にオペランドとなるレジスタ
    データを選択する情報を有しているパイプライン処理の
    情報処理装置であって、 前記レジスタデータを記憶するレジスタファイル(RE
    G)と、 このレジスタファイル(REG)から出力されたレジス
    タデータを一時格納する一時格納レジスタ(CR)と、 データを取り込んで演算処理を行う演算回路(1)と、 前記レジスタファイル(REG)と演算回路(1)との
    間に介装された演算入力セレクタ(SEL)と、 前記一時格納レジスタ(CR)の出力と前記演算入力セ
    レクタ(SEL)の入力を結ぶレジスタキャッシュパス
    (RCPS)と、 前記レジスタファイル(REG)の前段に設けられた命
    令バッファ(IB)と、 前記命令バッファ(IB)のさらに前段に設けられ前記
    命令バッファ(IB)に保持されているレジスタ指示デ
    ータとデコードされているレジスタ指示データとの一致
    を検出する一致検出回路(COMP)とを有し、 前記一致検出回路(COMP)において両値の一致が検
    出された場合には、この一致検出回路(COMP)から
    出力される一致検出信号は前記命令バッファ(IB)に
    一旦格納された後、次のステージに同期して演算入力セ
    レクタ(SEL)を直接制御して、前記一時格納レジス
    タ(CR)のレジスタデータがレジスタキャッシュパス
    (RCPS)を経由して演算回路(1)に入力されるよ
    うにしたことを特徴とする情報処理装置。
JP3304895A 1991-11-20 1991-11-20 情報処理装置におけるレジスタの読出制御方式 Expired - Fee Related JP2539974B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3304895A JP2539974B2 (ja) 1991-11-20 1991-11-20 情報処理装置におけるレジスタの読出制御方式
DE69228360T DE69228360T2 (de) 1991-11-20 1992-11-20 Registerlesekontrolle
EP92119838A EP0543415B1 (en) 1991-11-20 1992-11-20 Controlling register read operations
US08/364,512 US5638526A (en) 1991-11-20 1994-12-27 Apparatus for operand data bypassing having previous operand storage register connected between arithmetic input selector and arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3304895A JP2539974B2 (ja) 1991-11-20 1991-11-20 情報処理装置におけるレジスタの読出制御方式

Publications (2)

Publication Number Publication Date
JPH05143328A JPH05143328A (ja) 1993-06-11
JP2539974B2 true JP2539974B2 (ja) 1996-10-02

Family

ID=17938581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3304895A Expired - Fee Related JP2539974B2 (ja) 1991-11-20 1991-11-20 情報処理装置におけるレジスタの読出制御方式

Country Status (4)

Country Link
US (1) US5638526A (ja)
EP (1) EP0543415B1 (ja)
JP (1) JP2539974B2 (ja)
DE (1) DE69228360T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956747A (en) * 1994-12-15 1999-09-21 Sun Microsystems, Inc. Processor having a plurality of pipelines and a mechanism for maintaining coherency among register values in the pipelines
US5761475A (en) * 1994-12-15 1998-06-02 Sun Microsystems, Inc. Computer processor having a register file with reduced read and/or write port bandwidth
EP0717359A3 (en) * 1994-12-15 1997-02-05 Sun Microsystems Inc Register cache memory for a computer processor
JP3546980B2 (ja) * 1996-03-29 2004-07-28 松下電器産業株式会社 データ処理装置
US5778248A (en) * 1996-06-17 1998-07-07 Sun Microsystems, Inc. Fast microprocessor stage bypass logic enable
US5875346A (en) * 1996-09-13 1999-02-23 International Business Machines Corporation System for restoring register data in a pipelined data processing system using latch feedback assemblies
US5793944A (en) * 1996-09-13 1998-08-11 International Business Machines Corporation System for restoring register data in a pipelined data processing system using register file save/restore mechanism
US5802386A (en) * 1996-11-19 1998-09-01 International Business Machines Corporation Latency-based scheduling of instructions in a superscalar processor
US5799163A (en) * 1997-03-04 1998-08-25 Samsung Electronics Co., Ltd. Opportunistic operand forwarding to minimize register file read ports
US5996065A (en) * 1997-03-31 1999-11-30 Intel Corporation Apparatus for bypassing intermediate results from a pipelined floating point unit to multiple successive instructions
US6000016A (en) * 1997-05-02 1999-12-07 Intel Corporation Multiported bypass cache in a bypass network
US7139899B2 (en) * 1999-09-03 2006-11-21 Cisco Technology, Inc. Selected register decode values for pipeline stage register addressing
ATE529802T1 (de) 2000-02-09 2011-11-15 Texas Instruments Inc Datenverarbeitungsvorrichtung
US6785847B1 (en) * 2000-08-03 2004-08-31 International Business Machines Corporation Soft error detection in high speed microprocessors
US6920547B2 (en) * 2000-12-20 2005-07-19 Intel Corporation Register adjustment based on adjustment values determined at multiple stages within a pipeline of a processor
JP3708853B2 (ja) * 2001-09-03 2005-10-19 松下電器産業株式会社 マルチプロセッサシステムおよびプログラム制御方法
US6934830B2 (en) * 2002-09-26 2005-08-23 Sun Microsystems, Inc. Method and apparatus for reducing register file access times in pipelined processors
CN100350389C (zh) * 2003-10-24 2007-11-21 英特尔公司 用于检测软错误的方法、设备和处理器
US8977836B2 (en) * 2006-02-03 2015-03-10 Russell H. Fish, III Thread optimized multiprocessor architecture
JP2007305027A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 汎用レジスタ回路
JP2009169767A (ja) * 2008-01-17 2009-07-30 Toshiba Corp パイプライン型プロセッサ
JP2010079361A (ja) * 2008-09-24 2010-04-08 Nec Corp プロセッサ、プロセッサのデータ処理方法、情報処理装置
JP5181127B2 (ja) * 2008-11-05 2013-04-10 亮太 塩谷 半導体集積回路
JP5589169B2 (ja) * 2012-10-03 2014-09-17 亮太 塩谷 半導体集積回路
US20140281391A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache
JP6926727B2 (ja) 2017-06-28 2021-08-25 富士通株式会社 演算処理装置および演算処理装置の制御方法
CN108845829B (zh) * 2018-07-03 2021-06-25 中国人民解放军国防科技大学 一种系统寄存器访问指令的执行方法
JP7384374B2 (ja) * 2019-02-27 2023-11-21 株式会社ウーノラボ 中央演算処理装置
CN111045732B (zh) * 2019-12-05 2023-06-09 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0150177A1 (en) * 1983-07-11 1985-08-07 Prime Computer, Inc. Data processing system
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
JPS62189535A (ja) * 1986-02-15 1987-08-19 Fujitsu Ltd マイクロプロセツサ制御装置
JPH081599B2 (ja) * 1988-02-24 1996-01-10 三菱電機株式会社 データ処理装置
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
JPH0355642A (ja) * 1989-07-25 1991-03-11 Nec Corp メモリー制御方式
US5123108A (en) * 1989-09-11 1992-06-16 Wang Laboratories, Inc. Improved cpu pipeline having register file bypass and working register bypass on update/access address compare
JP2816248B2 (ja) * 1989-11-08 1998-10-27 株式会社日立製作所 データプロセッサ
AU629007B2 (en) * 1989-12-29 1992-09-24 Sun Microsystems, Inc. Apparatus for accelerating store operations in a risc computer
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
JPH04275628A (ja) * 1991-03-01 1992-10-01 Mitsubishi Electric Corp 演算処理装置

Also Published As

Publication number Publication date
EP0543415B1 (en) 1999-02-03
EP0543415A2 (en) 1993-05-26
JPH05143328A (ja) 1993-06-11
DE69228360D1 (de) 1999-03-18
US5638526A (en) 1997-06-10
EP0543415A3 (ja) 1994-03-02
DE69228360T2 (de) 1999-07-15

Similar Documents

Publication Publication Date Title
JP2539974B2 (ja) 情報処理装置におけるレジスタの読出制御方式
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US7418575B2 (en) Long instruction word processing with instruction extensions
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPS6217252B2 (ja)
US6145074A (en) Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction
US5404558A (en) Data driven type information processor having a plurality of memory banks
US6108768A (en) Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
EP0093430A2 (en) Pipeline data processing system
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JPH10143365A (ja) 並列処理装置及びその命令発行方式
US6237086B1 (en) 1 Method to prevent pipeline stalls in superscalar stack based computing systems
KR950012118B1 (ko) 병렬 파이프라인 명령 처리 장치
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
JP2620505B2 (ja) スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム
JP2503984B2 (ja) 情報処理装置
US11036510B2 (en) Processing merging predicated instruction with timing permitting previous value of destination register to be unavailable when the merging predicated instruction is at a given pipeline stage at which a processing result is determined
JP2861560B2 (ja) データ処理装置
JP3771682B2 (ja) ベクトル処理装置
JP2763450B2 (ja) パイプライン処理データ処理装置
JP2915131B2 (ja) データ処理装置
JP2591325B2 (ja) 分岐制御装置
JPS60178539A (ja) 情報処理装置におけるバイパス制御方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960604

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

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees