JP2667851B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2667851B2
JP2667851B2 JP63010627A JP1062788A JP2667851B2 JP 2667851 B2 JP2667851 B2 JP 2667851B2 JP 63010627 A JP63010627 A JP 63010627A JP 1062788 A JP1062788 A JP 1062788A JP 2667851 B2 JP2667851 B2 JP 2667851B2
Authority
JP
Japan
Prior art keywords
instruction
register
address
signal line
operand
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
JP63010627A
Other languages
English (en)
Other versions
JPH01187634A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP63010627A priority Critical patent/JP2667851B2/ja
Publication of JPH01187634A publication Critical patent/JPH01187634A/ja
Application granted granted Critical
Publication of JP2667851B2 publication Critical patent/JP2667851B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は情報処理装置に係り、特にパイプライン制御
の情報処理装置の高速化に関する。
〔従来の技術〕
パイプライン制御の情報処理装置では、命令の処理全
体を複数の部分処理に分割し、各部分処理ごとに独立の
処理装置を設けている。まず第1命令が第1の部分処理
を行う処理装置で処理される。その処理が完了して第2
の部分処理を行う処理装置に移ると、第1の部分処理を
行う処理装置では第2命令の処理が開始される。第1命
令が第3の部分処理を行う処理装置に移ると、第2命令
は第2の部分処理を行う処理装置で処理され、第3命令
は第1の部分処理装置で処理される。このように、第1
命令の処理の全体が完了する前に、第1命令の後続命令
の実行が開始されるので、パイプライン制御の情報処理
装置では高い命令処理性能を実現することが出来る。
〔発明が解決する問題点〕
しかし、ある命令(以降では後続命令と呼ぶ)より前
にある命令(以降では先行命令と呼ぶ)があるレジスタ
を変更する命令であり、後続命令がそのレジスタを参照
する命令である場合(レジスタコンフリクト状態と呼
ぶ。)には、命令処理は上記の様には進まない。すなわ
ち、先行命令が演算結果をレジスタに書込むまま、もし
くは先行命令が演算結果を生成するまでは、後続命令の
処理全体、少なくともレジスタを参照する部分処理を停
止させなければならない。このようなレジストコンフリ
クトによる後続命令の実行停止は、パイプライン制御の
情報処理装置においては、性能向上の大きな阻止要因と
なつている。
本発明の目的は、レジスタコンフリクト時の後続命令
の実行停止をなくし、高い命令処理性能を有するパイプ
ライン制御の情報処理装置を提供することにある。
〔発明を解決するための手段〕
本発明では、後続命令との間でレジスタコンフリクト
を起している先行命令の命令アドレス又はその一部、お
よび該先行命令より前の命令の命令アドレス又はその一
部、および該先行命令を先読する際の先読みアドレス又
はその一部、および該先行命令より前の命令を先読する
際の先読みアドレス又はその一部、および該先行命令が
参照するレジスタの内容又はその一部、および該先行命
令語又はその一部の全体又は各部分の任意の組合せを連
想キーに用いて該先行命令の演算結果を予測する装置
と、 該後続命令を実行する際に該連想キーにより該予測装
置が該先行命令の演算結果の予測値を出力したかを検出
し、検出された時には該予測値を用いて、該後続命令の
停止される処理を開始する装置と、 該予測値と該先行命令によつて、レジスタに書込まれ
る演算結果とが等しいかを比較し、該比較結果が不一致
の時には、該先行命令によつて、レジスタに書込まれる
演算結果を用いて該後続命令を再実行させる装置を持つ
情報処理装置を提案する。
〔作用〕
これにより、レジスタコンフリクト時に停止される後
続命令の処理が、該予測装置の出力する予測を用いて開
始できるので、上記目的を達成できる。
〔発明の実施例〕
以下、本発明の一実施例を図に従つて詳細に説明す
る。
まず、第2図Aを使つて本実施例で用いる命令形式を
説明する。この命令形式では、各命令語は4バイト長か
ら構成される。第1バイトはオペコード(op)を表わ
す。第2バイト及び第3バイトの上4ビツトは3つのレ
ジスタ開示フイールド(R1,X2,B2)を表わす。第3バイ
トの下4ビツト及び第4バイトは変位(C2)を表わす。
この命令形式では各レジスタ指示フイールドはそれぞれ
4ビツトであり、それぞれ16個のレジスタの1つを指示
する。
この命令の意味は、X2フイールドの指示する汎用レジ
スタの内容とB2フイールドの指示する汎用レジスタの内
容と変位D2の和をオペランドアドレスとし、このアドレ
スの指す主記憶上のロケーシヨンの内容(第2オペラン
ドと呼ぶ)と、R1フイールドの指示する汎用レジスタの
内容(第1オペランドと呼ぶ)とに対して、オペコード
opで示される演算を施し、R1フイールドの指示する汎用
レジスタに格納することである。
なお、この命令形式はIBM System/370の命令形式から
引用したものであり、更に詳しくは“IBM System/370 P
rinciples of Opera-Lion"を参照されたい。
第2B図は、第2A図で表わされた命令をニユーモニツク
で表わしたものである。
第3図は、レジストコンフリクトを起こしている命令
列の例である。先行命令()はAdd命令であり、レジ
スタ1の内容とレジスタ2の内容と変位100を加えて得
られるアドレスの内容をレジスタ5の内容と加算してレ
ジスタ5に格納することを意味する。後続命令()は
Sub t-ract命令であり、レジスタ1の内容とレジスタ5
の内容と変位150を加えて得られるアドレスの内容をレ
ジスタ8の内容から引いてレジスタ8に格納することを
意味する。
先行命令は演算結果をレジスタ5に書込み、後続命令
はレジスタ5の内容を用いているので、レジスタコンフ
リクトが起つている。
次に第1A図,第1B図を使つて実施例の全体構成の概要
を説明する。第1A図と第1B図とを、結合すると、実施例
の全体構成図となる。
まず、304は命令記憶装置であり、326はオペランド記
憶装置である。命令記憶装置304とオペランド記憶装置
はバイト単位に24ビツトのアドレスでアドレス付けされ
ている。
100は先読み命令レジスタアドレスである。命令の先
読みは、常に命令記憶装置上の4命令語境界から始まる
4命令語単位に行われる。したがつて先読み命令アドレ
スレジスタ(1FA)100には24ビツトのアドレスのうちの
上位20ビツト(ビツト0-19)が格納される。
104,106,108,110はそれぞれ命令バツフア1B0,1B1,1B
2,1B3であり、命令記憶装置304から先読みされた4命令
語がこの順に格納される。
112は命令レジスタであり、114は命令カウンタであ
る。1命令語は命令記憶装置上の命令語境界からの4バ
イトに必ず置かれる。したがつて、命令カウンタには24
ビツトのアドレスのうちの上位22ビツト(ビツト0-21)
が格納される。命令カウンタ114の値は、その時の命令
レジスタ112中の命令語の命令アドレスとなつている。
118は16個の汎用レジスタよりなる汎用レジスタフア
イルである。
324のアドレス加算器であり、命令語のX2フイールド
の指示するレジスタの内容すなわち、X2レジスタ値とB2
フイールドの指示するレジスタの内容すなわち、B2レジ
スタ値と変位D2を加算する。加算結果はオペランドアド
レスレジスタ120に格納される。
122はオペランドデータレジスタであり、330はALUで
ある。
124,130はそれぞれ命令レジスタ122の遅延レジスタ、
命令カウンタ114の遅延レジスタであり、オペランドア
ドレスレジスタ120にオペランドアドレスが格納される
時に、その命令の命令レジスタ値、命令カウンタ値が格
納される。
126,138はそれぞれレジスタ124,138の遅延レジスタで
あり、オペランドデータレジスタ122にオペランドデー
タが格納される時に、その命令の命令レジスタ値、命令
カウンタ値がそれぞれに格納される。
320は予測記憶装置として用いる連想記憶装置であ
り、322はレジスタコンフリクト検出装置である。
154は予測装置が出力するオペランドアドレスの予測
値を格納するレジスタであり、332は予測装置が出力し
た予測値が命令の実行によつて求められたオペランド・
アドレスと等しいかを比較する比較器である。
次に、第1A図,第1B図の全体構成図と第5図のタイミ
ングチヤート図を使つて、レジスタコンフリクトがない
場合の全体の動作を説明する。
第5図の如く時刻TOより先読みアドレスレジスタには
第1命令から第4命令を先読みする際の先読みアドレス
が格納されているとする。また命令レジスタ112と命令
カウンタ114には時刻T2以前において第1命令の前の命
令、すなわち第0命令の命令語と命令アドレスが格納さ
れているとする。先読みアドレスレジスタ100のアドレ
スは信号線500を介して命令記憶装置304に印加され、そ
のアドレスから始まる4命令語が信号線506に出力さ
れ、第1命令語から第4命令語までの4命令語は時刻T1
にバツフア104,106,108,110に格納される。
アドレス増加器302は、先読みアドレスレジスタ100の
アドレスを入力として、そのアドレスを4命令語分増加
させたアドレスを信号線502に出力する。セレクタ300の
選択信号である信号線586の信号は通常「右選択信号」
であり(「右選択信号」以外の値を取る場合は下記で説
明される時だけである)、この時、信号線505の信号が
セレクタ300を通つて信号線506に出力されて、先読アド
レスレジスタ100に格納される。格納される時刻は時刻T
0の4周期後の時刻T4である。命令バツフア104,106,10
8,110には次の4命令語が格納される時刻T5までこの4
命令語が格納される。先読みアドレスレジスタ100は通
常このように4命令語分ずつ増加されるので、命令バツ
フア104,106,108,110には順々に後続の命令が4命令単
位に先読みされて格納されることとなる。
時刻T2以前においては、命令カウンタ114には第0命
令の命令アドレスが格納されていた。命令カウンタ114
の値は信号線530を介してアドレス増加器310に印加され
て、1命令語分増加されて、第1命令の命令アドレスと
なる。増加された値は信号線520を介してセレクタ308に
入力される。セレクタ308の選択信号586は上述したよう
に通常「右選択信号」であり、この時、信号線520の値
はセレクタ308を介して信号線518へ出力される。信号線
518の値は命令カウンタ114に格納される。また、その値
はセレクタ306に印加される。セレクタ306306は、信号
線518の22ビツトアドレス値のうちの下2ビツトを見
て、それが0ならば信号線508のデータが信号線516へ出
力され、それが1ならば信号線510のデータが信号線516
出力される。又それが2ならば信号線512のデータが信
号516へ出力され、それが3ならば信号線514のデータが
信号線516へ出力される。これにより、命令レジスタ前
の時刻でセツトされた命令バツフアの次の命令バツフア
の内容がセレクタ306で選択されて命令レジスタ117に格
納される。時刻T2においては命令バツフアIB0104から第
1命令語が命令レジスタ112に格納されて、同時に命令
カウンタ114に第1命令の命令アドレスが格納される。
セレクタ312,314には信号線532を介して16個のレジス
タよりなるレジスタフアイル118の値が印加される。セ
レクタ312には更に信号線524を介して命令レジスタ112
中の第1命令のX2フイールドの4ビツトが印加される。
セレクタ312はこれによりX2フイールドの指示するレジ
スタの値を信号線534に出力する。セレクタ314には更に
信号線526を介して命令レジスタ112中の第1命令のB2フ
イールドの4ビツトが印加される。セレクタ314はこれ
によりB2フイールドの指示するレジスタの値を信号線53
6に出力する。信号線592,590には通常「上選択信号」が
印加されており、(「上選択信号」以外の値が印加され
るのは下記で説明する場合だけである)、この時、信号
線534の値はセレクタ316を介して信号線540に出力さ
れ、信号線536の値はセレクタ318を介して信号線542に
出力される。
アドレス加算器にはこのようにして信号線540を介し
て第1命令のX2フイールドの指示するレジスタの内容が
入力され、信号線542を介しては第1命令のB2フイール
ドの指示するレジスタの内容が入力される。更に、信号
線528を介して命令レジスタ112中の第1命令の変位D2が
入力される。アドレス加算器は上記3つの入力値を加算
結果である第1命令のオペランドアドレスを信号線548
に出力し、それは時刻T3でオペランドアドレスレジスタ
120に格納される。また同時刻に、IR1レジスタ124には
第1命令語が信号線522を介して格納され、IC1レジスタ
130には第1命令アドレスが信号線530を介して格納され
る。
オペランド記憶装置326には信号線549を介してオペラ
ンドアドレスレジスタ120中の第1命令のオペランドア
ドレスが印加され、信号線552にはそのアドレスで示さ
れるロケーシヨンにある第1命令のオペランドデータが
出力される。時刻T4になると、この第1命令のオペラン
ドデータはオペランドデータレジスタ122に格納され
る。
同時刻に、IR2レジスタ126には、信号線562を介してI
R1レジスタから第1命令語が格納され、IC2レジスタ138
には、信号線572を介してIC1レジスタ130から第1命令
の命令アドレスが格納される。
ALU330には3つの入力信号線がある。信号線554から
は、オペランドデータレジスタ122にある第1命令のオ
ペランドデータが入力される。信号線594からはIR2レジ
スタ126にある第1命令のオペコードが入力される。セ
レクタ328には信号線532を介して16個のレジスタよりな
るレジスタフアイル118の値が印加され、更に信号線558
を介して第1命令のR1フイールドが印加される。これに
より、セレクタ328は、R1フイールドによつて指示され
るレジスタの値、すなわちR1レジスタ値を信号線560に
印加し、それがALU330に入力される。ALUは、信号線560
からの入力データを第1オペランドデータとし、信号線
554からの入力データを第2オペランドデータとして、
両者に信号線594に示されるオペコードの演算を施し、
その演算結果を信号線556に出力する。
レジスタフアイル118には、信号線556を介して第1命
令の演算結果が印加され、信号線558を介してIR2レジス
タ126にある第1命令のR1フイールドが印加される。時
刻T5になると、上記第1命令の演算結果はR1フイールド
の指示するレジスタ、すなわちR1レジスタに書込まれ
る。
以上により第1命令の処理は終了する。
第2命令の処理は、まず時刻T3に第2命令語が命令レ
ジスタ112に格納され、第2命令の命令アドレスが命令
カウンタICに格納される。以降、第1命令と同様に順々
に処理が進む。
第3命令以降の命令の処理は、前の命令処理の1周期
遅れの時刻で第1,第2命令のように進む。ただし、命令
の先読みは4命令語単位であるので、先読み命令レジス
タ100,命令バツフア104,106,108,110への格納はそれぞ
れ4周期ごとに1度ずつ行なわれる。
以上のように、レジスタコンフリクトがない場合には
1周期ごとに命令処理が進んでいく。
次に、レジスタコンフリクトのある場合の全体の動作
説明に移るが、その前に第4図を用いて、連想記憶装置
320の説明をする。
実施例における連想記憶装置の記憶装置は10ワードで
ある。
各ワードは、IC記憶部ICP346と予測アドレス記憶部PA
P356からなる。
信号線500にデータを印加すると、連想記憶装置は探
索をする。信号線500上のデータとIC記憶部ICP345デー
タが一致するワードがある時には、一致検出器344は
「1」を出力してHITLレジスタ156を「1」にし、かつ
そのワードの予測アドレス記憶部PAP356のデータをPAL
レジスタ158に格納する。一致するワードがない時は、
一致検出器344は「0」を出力してHITLレジスタ156を
「0」にする。
なお、信号線500上のデータは先読み命令アドレスで
あり、IC記憶部ICPのデータは命令アドレスであるの
で、ここでの「一致検出」とは、24ビツトアドレスの内
の上位22ビツトの一致を調べることである。
一方、信号線584に「1」又は信号線586に「0」が印
加された時には、連想記憶装置は、信号線580,549上の
データをそれぞれIC記憶部ICP346、予測アドレス記憶部
PDP356のデータとするワードを登録する。その際、IC記
憶部ICP346のデータが一致するワードがすでに記憶され
ている時には、そのワードの上に重ね書きされる。一致
するワードがまた記憶されていない時には、新しくワー
ドがつくられて登録される。
以上で連想記憶装置の説明を終わる。
次に、レジスタコンフリクトのある場合の動作説明を
行なう。レジスタコンフリクトのある命令としては第3
図の2命令を考え、Add命令が第1命令とし、Subiract
命令が第2命令とする。第3命令以降はこれらの命令と
の間でレジスタコンフリクトを起さない任意の命令とす
る。
本発明では、レジスタコンフリクトを起している先行
命令(以下で考える例では第1命令)のオペランド・ア
ドレスを予測するのに連想記憶装置を使用している。し
たがつて先行命令を実行する際に、その連増記憶装置に
以前の実行時のオペランド・アドレスがある否かで予測
が出来るか出来ないかが決まる。
まず、連想記憶装置に以前の実行時の情報すなわち、
オペランド・アドレスがある場合を説明する。第6図を
タイミングチヤート図として用いる。
第1命令から第4命令までの命令先読み、および第1
命令の処理の大部分は、上述のレジスタコンフリクトが
ない場合の動作と同じである。すなわち、第6図のタイ
ミングチヤート図のうち、第1命令から第4命令に関す
るIFA,IBO〜3,第1命令に関するIR/IC,OA/IR1/IC1,OD/I
R2/IC2,GRのタイミングは、第5図のものと同一であ
る。以下ではそれ以外部分を説明する。
まず、時刻TOより先読み命令アドレスレジスタ100に
格納されている先読み命令アドレスは、信号線500を介
して連想記憶装置のIC記憶部ICP500に印加されている。
連想記憶装置は、上記信号線500のデータで探索をす
る。今は、連想記憶装置に以前の実行時の情報がある場
合を考えているので、時刻T2においてPALレジスタ158に
は第1命令のオペランド・アドレスの予測値が格納さ
れ、HITLレジスタ156には「1」が格納される。
PALレジスタのオペランド・アドレスはオペランド記
憶に印加され、そこから読み出されたオペランドデータ
は時刻T3でPDレジスタ123に格納される。
時刻T3においてIR1レジスタ124には第1命令であるAd
d命令の命令語が格納されており、命令レジスタ112には
第2命令であるSubstract命令の命令語が格納されてい
る。したがつて、信号線582上には第1命令のR1フイー
ルドの「5」が印加され、信号線524には第2命令のX2
フイールド「5」が印加される。第1命令と第2命令以
外ではレジスタコンフリクタがないと仮定しているの
で、信号線558,526には「5」とは異なる値が印加され
ている。したがつて、一致比較回路160の出力は「1」
になり、他の一致比較回路162,164,166の出力は「0」
となる。故にOR回路168の出力信号線593とOR回路182の
出力信号線596と、AND回路172の出力信号線172は「1」
になる。また、OR回路の出力信号線591,AND回路174の出
力信号線590,AND回路180の出力信号線は「0」になる。
信号線596はICSVレジスタ158のセツト信号となつてお
り、この信号線が「1」なので時刻T4においてICSVレジ
スタ116には第2命令の命令アドレスが格納されPASVレ
ジスタ154には第1命令のオペランド・アドレスの予測
値が格納される。
また、PDレジスタ上のオペランド・データは信号線55
5を介してALU360に入力され、先行命令のオペコードは
信号線604を介し、ALU360に入力され、先行命令のR1レ
ジスタ値はR1フイールドを印加されたセレクタ362で選
択されて信号線606を介してALU360に入力される。これ
により信号線600には先行命令の演算結果(予測値)が
出力される。
これにより、セレクタ316は信号線538上の第1命令の
演算結果の予測値を信号線540を介してアドレス加算器3
24に印加し、セレクタ318は信号線536上の第2命令のB2
レジスタ値を信号線542を介してアドレス加算器324に印
加する。信号線528からは第2命令の変位がアドレス加
算器に印加される。これにより、時刻T4において、第2
命令のオペランドアドレスがオペランドアドレスレジス
タ120に格納される。
また、IR1レジスタ124,IC1レジスタ130には、レジス
タコンフリクトのない時の動作と同一のデータが時刻T4
で格納される。
以降の第2命令の動作は、レジスタコンフリクトがな
い場合と同様に進む。
時刻T3では第1命令のオペランド・アドレスがOAレジ
スタに格納されており、信号線549を介して比較器332に
印加される。
比較器332のもう一方の入力にはPASVレジスタに格納
されている第1命令のオペランド・アドレスの予測値が
印加されている。
OAレジスタのオペランド・アドレスが予測値と一致す
るか否かで以下の動作は2通りに分かれる。まず、一致
する場合を説明する。この場合、信号線586上には
「1」が印加される。この「1」はセレクタ300と308に
入力される。この時、セレクタ300は信号線502のデータ
を信号線506に出力し、セレクタ308は信号線520のデー
タを信号線518に出力する。これは、レジスタコンフリ
クトがない場合の動作と同一であり、以降の動作はその
場合と同じに進んでいく。
OAレジスタのオペランド・アドレスが予測値と一致し
ない場合を次に説明する。以上の説明ではタイミングチ
ヤート図としては第6図を用いてきたが、以下の説明で
は第7図を用いる。この場合、信号線586には「0」が
印加される。この「0」はセレクタ300と308に入力され
る。この時、セレクタ300は信号線504のデータを信号線
506に出力し、セレクタ308は、信号線504のデータを信
号線518に出力する。これにより、時刻T5において、先
読み命令アドレスレジスタ100にはICSVレジスタ116に格
納されていた第2命令の命令アドレスの上位20ビツトが
格納される。この値は第1命令から第4命令までの先読
みアドレスと同一である。これにより先読みが実行され
て時刻T6で第1命令から第4命令が命令バツフア104,10
6,108,110に格納される。信号線518には第2命令の命令
アドレスが印加されているので、時刻T7において命令レ
ジスタ112には命令レジスタ106上の第2命令が格納され
る。第2命令とレジスタコンフリクトを起こしていた第
1命令は時刻5において、すでに演算結果をR1フイール
ドの指示するレジスタに書込んである。したがつて、時
刻T7においては第1命令と第2命令の間にはレジスタコ
ンフリクトはなく、第2命令はレジスタコンフリクトの
ない場合の動作説明と同じに進んでいく。
更に、信号線586上の「0」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346、予測
アドレス記憶部356がそれぞれ信号線580上の第1命令の
命令アドレス、信号線549上の第1命令のオペランド・
アドレスであるワードが時刻T5において登録される。
以上でOAレジスタのオペランド・アドレスが予測値と
一致しない場合の説明を終わる。
更に、これにより、連想記憶装置には以前の実行時の
情報がある場合の説明を終わる。
次に、連想記憶装置に以前の実行時の情報がない場合
を説明する。第8図をタイミングチヤート図として用い
る。
第1命令から第4命令までの命令先読み、および第1
命令の処理の大部分は、上述のレジスタコンフリクトが
ない場合の動作と同じである。すなわち、第8図のタイ
ミングチヤート図のうち、第1命令から第4命令に関す
るIFA,IB0〜3,第1命令に関するIR/IC,OA/IR1/IC1,OD/I
R2/IC2,GRのタイミングは、第5図のものと同一であ
る。以下ではそれ以外部分を説明する。
まず、時刻TOより先読み命令アドレスレジスタ100に
格納されている先読み命令アドレスは信号線500を介し
て連想記憶装置のIC記憶部ICP500354に印加されてい
る。
連想記憶装置は上記信号線500のデータで探索する。
今は、連想記憶装置に以前の実行時の情報がない場合を
考えているので、時刻T2においてHITLレジスタ156には
「0」が格納される。更に、この「0」信号線546に印
加される。
時刻T3においてIR1レジスタ124には第1命令であるAd
d命令の命令語が格納されており、命令レジスタ112には
第2命令であるSubtract命令の命令語が格納されてい
る。したがつて、信号線582上には第1命令のR1フイー
ルドの「5」が印加され、信号線524には第2命令のX2
フイールド「5」が印加される。第1命令と第2命令以
外ではレジスタコンフリクトがないと仮定しているの
で、信号線558,526には「5」とは異なる値が印加され
ている。したがつて、一致比較回路160の出力は「1」
になり、他の一致比較回路162,164,166の出力は「0」
となる。故にOR回路108の出力信号線593は「1」にな
る。また、OR回路の出力信号線591OR回路182の出力信号
線596、AND回路172の出力信号線AND回路174の出力信号
線590、NAD回路180の出力信号線は「0」になる。
信号線592は「0」であり、信号線593は「1」である
ので、信号線540上に有意なデータは出力されない。一
方、セレクタ318は信号線536上の第2命令のB2レジスタ
値を信号線542を介してアドレス加算器324に印加する。
信号線528からは第2命令の変位がアドレス加算器に印
加される。これにより、時刻T4において、第2命令のオ
ペランドアドレスがオペランドアドレスレジスタ120に
格納される。
また、IR1レジスタ124,IC1レジスタ130には、レジス
タコンフリクトのない時の動作と同一のデータが時刻T4
で格納される。
以降の第2命令の動作は、レジスタコンフリクト信号
線540上には有意なデータは出力されないのでアドレス
加算器548は有意なデータを出力しない。したがつて、
時刻T4になつてもオペランドアドレスレジスタ120には
有意なデータは格納されない。また、IR1レジスタ124,I
C1レジスタ130にも有いなデータは格納されない。
一方、時刻T4になるとIR2レジスタ126には第1命令で
あるAdd命令の命令語が格納されている。この時には、
一致比較回路164の出力は「1」になり、他の一致比較
回路160,162,166の出力は「0」になる。故に、OR回路1
68の出力信号線593とAND回路180の出力信号線584は
「1」になる。また、OR回路170,182の出力信号線591,5
96とAND回路172と174の出力信号線592,590は「0」にな
る。この時も信号線592は「0」であり、信号線593は
「1」なので信号線540上には何のデータも出力されな
い。信号線540上には有意なデータが出力されないので
アドレス加算器548は有意なデータを出力しない。した
がつて時刻T5になつてもオペランドアドレスレジスタ12
0には有意なデータは格納されない。また、IR1レジスタ
124,IC1レジスタ130にも有意なデータは格納されない。
一方、時刻T5になるとIR2レジスタ138には有意なデー
タは格納されていない。この時には一致比較回路160,16
2,164,166の出力は「0」となる。故に信号線590,591,5
92,593,584,596はすべて「0」となる。
これにより、セレクタ316は信号線534上の第2アドレ
スのX2レジスタ値を信号線540を介してアドレス加算器3
24に印加し、セレクタ318は信号線536上の第2アドレス
のB2レジスタ値を信号から542を介してアドレス加算器3
24に印加する。信号線528からは第2アドレスの変位が
アドレス加算器に印加される。これにより、時刻T6にお
いて、第2アドレスのオペランドアドレスがオペランド
アドレスレジスタ120に格納される。
また、IR1レジスタ124,IC1レジスタ130には、レジス
タコンフリクトのない時の動作と同一のデータが時刻T6
で格納される。
以降の第2アドレスの動作は、レジスタコンフリクト
がない場合と同様に進む。
時刻T4から第1命令のオペランドアドレスがOAレジス
タより信号線549を介して連続記憶装置に印加される。
更に、信号線584上の「1」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346、予測
アドレス記憶部356がそれぞれ信号線580上の第1命令の
命令アドレス信号線549上の第1命令のオペランド・ア
ドレスであるワードが時刻T5において登録される。
更に、これにより、連想記憶装置に以前の実行時の情
報がない場合の説明を終わる。
次に、本実施例特有の効果を述べる。
本発明を使用しない場合、先行命令とレジスタコンフ
リクトのある後続命令を実行すると、上述の動作説明の
連想記憶装置に以前の実行時オペランドアドレスがない
場合と同じ動作となり、2周期の空き時間を生ずる。
本発明を使用すれば空き時間はまつたくなくなるの
で、レジスタコンフリクト発生時の命令処理性能が向上
する。
上述の実施例ではアドレス空間が1つだけの時を述べ
た。もし、複数のアドレス空間をアドレス空間識別子で
区別してアクセスする情報処理装置にこの発明を適用す
る際には、アドレス空間識別子も連想キーに加えれば良
い。
更に、連想キーとしては、今まで述べたすべてを使う
こともできるし、任意の組合せを使うこともできる。そ
の際、キー構成要素の一部のビツト位置を使うこともで
きる。
また、この実施例では演算器の必要な命令が第1命令
である場合を述べたが、第1命令を演算器の不要なロー
ド系の命令に限定すれば、ALU360は不要になり、第2命
令の開始が更に早くできる。
〔発明の効果〕
本発明を使用しない場合、レジスタコンフリクトを起
こす先行命令が開始されてから、後続命令が開始される
までに、先行命令のアドレス計算時間,オペランド読出
し時間,演算時間がかかる。
しかし、本発明を用いることにより、予測装置の出力
したオペランド・アドレスの予測値でオペランド読出し
を開始できるので、オペランド読出し及びそれにつづく
演算を早く開始できる。したがつて、後続命令の開始が
本発明を使用しない場合より早くなる。
【図面の簡単な説明】
第2A図は命令形式図、第2B図はロード命令の例、第3図
はレジスタコンフリクトを起こす二つの命令の例、第1A
図,第1B図は実施例の全体構成例、第4図は連想記憶装
置の構成図、第5〜8図はタイミングチヤート図、第9
図はレジスタコンフリクト検出装置の構成図。 100……先読み命令アドレスレジスタ、104,106,108,110
……命令バツフア、112……命令レジスタ、114……命令
カウンタ、118……レジスタフアイル、120……オペラン
ド・アドレスレジスタ、126……オペランドデータレジ
スタ、304……命令記憶装置、320……予測装置、322…
…レジスタコンフリクト検出装置、324……アドレス加
算器、326……オペランド記憶装置、330……ALU。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 釜田 栄樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 井上 潔 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭59−158440(JP,A) 特開 昭62−84340(JP,A) 特開 昭60−129839(JP,A)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】先行命令によってレジスタに書込まれる演
    算結果を用いて後続命令が実行される際に、該演算結果
    が確定するまで、該後続命令の処理であって該演算結果
    を用いる処理を停止させる情報処理装置において、該先
    行命令を先読みする際の先読みアドレスを連想キーに用
    いて該先行命令のオペランドアドレスを予測する予測手
    段と、該予測手段が該先行命令のオペランドアドレスの
    予測値を出力したことを検出して、該オペランドアドレ
    スの予測値を用いて主記憶からオペランドを読み出して
    該オペランドを用いて演算を行い、その演算結果を用い
    て前記停止させた処理を開始させる手段とを有すること
    を特徴とする情報処理装置。
  2. 【請求項2】前記オペランドアドレスの予測値が前記先
    行命令の実行時のオペランドアドレスと等しいかを検証
    する手段と、該検証結果が不一致の時は、該先行命令に
    よってレジスタに書き込まれる演算結果を用いて該後続
    命令を再続行させる手段を有することを特徴とする請求
    項1記載の情報処理装置。
  3. 【請求項3】前記予測手段の予測値として、該先行命令
    の以前の実行でのオペランドアドレスを用いることを特
    徴とする請求項1記載の情報処理装置。
  4. 【請求項4】記憶手段に格納された命令に基づいて該記
    憶手段に格納されたデータを処理する情報処理装置にお
    いて、命令の解読を開始する前に、該命令の以前の実行
    結果に基づいて該命令のオペランドアドレスを予測する
    予測手段と、該予測手段から出力された予測オペランド
    アドレスを用いて前記記憶手段からオペランドデータを
    読み出す手段と、該読み出されたオペランドデータを用
    いて該命令以降の命令の処理をする手段とを有すること
    を特徴とする情報処理装置。
  5. 【請求項5】該命令を解読して得られるオペランドアド
    レスを前記予測手段に登録する手段を有し、該登録され
    たオペランドアドレスを、該命令の以前の実行結果とし
    て用いることを特徴とする請求項4記載の情報処理装
    置。
  6. 【請求項6】前記予測手段が該命令のオペランドアドレ
    スを出力する際に、該命令に関するアドレス情報の全て
    又はその一部を入力キーとして該命令の以前の実行結果
    を検索し、検索された該以前の実行結果に基づいて該命
    令のオペランドアドレスを予測出力することを特徴とす
    る請求項4記載の情報処理装置。
JP63010627A 1988-01-22 1988-01-22 情報処理装置 Expired - Fee Related JP2667851B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63010627A JP2667851B2 (ja) 1988-01-22 1988-01-22 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63010627A JP2667851B2 (ja) 1988-01-22 1988-01-22 情報処理装置

Publications (2)

Publication Number Publication Date
JPH01187634A JPH01187634A (ja) 1989-07-27
JP2667851B2 true JP2667851B2 (ja) 1997-10-27

Family

ID=11755454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63010627A Expired - Fee Related JP2667851B2 (ja) 1988-01-22 1988-01-22 情報処理装置

Country Status (1)

Country Link
JP (1) JP2667851B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999045463A1 (fr) * 1998-03-04 1999-09-10 Hitachi, Ltd. Processeur de donnees
JP3499135B2 (ja) 1998-06-29 2004-02-23 富士通株式会社 情報処理装置
US7590825B2 (en) 2006-03-07 2009-09-15 Intel Corporation Counter-based memory disambiguation techniques for selectively predicting load/store conflicts

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59158440A (ja) * 1983-03-01 1984-09-07 Nec Corp 情報処理装置
JPS60129839A (ja) * 1983-12-19 1985-07-11 Hitachi Ltd 情報処理装置
JPH0760384B2 (ja) * 1985-05-07 1995-06-28 株式会社日立製作所 命令実行方法およびデータ処理装置

Also Published As

Publication number Publication date
JPH01187634A (ja) 1989-07-27

Similar Documents

Publication Publication Date Title
US4858105A (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
US4439828A (en) Instruction substitution mechanism in an instruction handling unit of a data processing system
AU686358B2 (en) Computer system
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
JP2834292B2 (ja) データ・プロセッサ
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
JPH07210381A (ja) プロセッサ及びコンピュータ・システム
JP2620511B2 (ja) データ・プロセッサ
US4739470A (en) Data processing system
US5226169A (en) System for execution of storage-immediate and storage-storage instructions within cache buffer storage
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
EP0094535A2 (en) Pipe-line data processing system
KR20090101061A (ko) 프로세서 및 정보 처리 장치
JP2667851B2 (ja) 情報処理装置
JPH0552534B2 (ja)
JPS6284340A (ja) 命令実行方法およびデータ処理装置
EP0375883A2 (en) Cache storage system
JP2685713B2 (ja) データ処理装置
US5829049A (en) Simultaneous execution of two memory reference instructions with only one address calculation
JP2553728B2 (ja) 演算装置
KR900002436B1 (ko) 컴퓨터의 파이프라인 처리시의 바이패스 제어를 위한 시스템
US20170315807A1 (en) Hardware support for dynamic data types and operators
JP2877468B2 (ja) 電子計算機
JPH07191911A (ja) アドレス変換装置及びマイクロプロセッサ算出方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees