JPH01187634A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH01187634A
JPH01187634A JP1062788A JP1062788A JPH01187634A JP H01187634 A JPH01187634 A JP H01187634A JP 1062788 A JP1062788 A JP 1062788A JP 1062788 A JP1062788 A JP 1062788A JP H01187634 A JPH01187634 A JP H01187634A
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.)
Granted
Application number
JP1062788A
Other languages
English (en)
Other versions
JP2667851B2 (ja
Inventor
Toru Shonai
亨 庄内
Yoichi Shintani
洋一 新谷
Kazunori Kuriyama
和則 栗山
Eiki Kamata
釜田 栄樹
Kiyoshi Inoue
潔 井上
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

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フイールドの指示する汎用レジ
スタの内容と82フイールドの指示する汎用レジスタの
内容と変位D2の和をオペランドアドレスとし、このア
ドレスの指す主記憶上のロケーションの内容(第2オペ
ランドと呼ぶ)と、R1フィールドの指示する汎用レジ
スタの内容(第1オペランドと呼ぶ)とに対して、オペ
コードopで示される演算を施し、R1フィールドの指
示する汎用レジスタに格納することである。
なお、この命令形式はI B M 5yste+++/
 370の命令形式から引用したものであり、更に詳し
くは“I B M System/ 370 Pr1n
ciples ofOpera −L ion ”を参
照されたい。
第2B図は、第2A図で表わされた命令をニューモニツ
クで表わしたものである。
第3図は、レジストコンフリクトを起している命令列の
例である。先行命令(■)はAdd命令であり、レジス
タ1の内裏とレジスタ2の内容と変位100を加えて得
られるアドレスめ内容をレジスタ5の内容と加算してレ
ジスタ5に格納することを意味する。後続命令(■)は
Sub t−ract命令であり、レジスタ1の内容と
レジスタ5の内容と変位150を加えて得られるアドレ
スの内容をレジスタ8の内容から引いてレジスタ8に格
納することを意味する。
先行命令は演算結果をレジスタ5に書込み、後続命令は
レジスタ5の内容を用いているので、レジスタコンフリ
クトが起っている。
次に第1A図、第1B図を使って実施例の全体構成の概
要を説明する6第1A図と第1B図とを、結合すると、
実施例の全体構成図となる。
まず、304は命令記憶装置であり、326はオペラン
ド記憶装置である。命令記憶装置304とオペランド記
憶装置はバイト単位に24ビツトのアドレスでアドレス
付けされている。
100は先読み命令レジスタアドレスである。
命令の先読みは、常に命令記憶装置上の4命令語境界か
ら始まる4命令語単位に行われる。したがって先読み命
令アドレスレジスタ(IFΔ) 100には24ビツト
のアドレスのうちの上位20ビツト(ビット0−19)
が格納される。
104.106,108,110はそれぞれ命令バッフ
ァIBO,IBI、IB2.IB3であり、命令記憶装
置304から先読みされた4命令語がこの順に格納され
る。
112は命令レジスタであり、114は命令カウンタで
ある。1命令語は命令記憶装置上の命令語境界からの4
バイトに必ず置かれる。したがって、命令カウンタには
24ビツトのアドレスのうちの上位22ビツト(ビット
0−21)が格納される。命令カウンタ114の値は、
その時の命令レジスタ112中の命令語の命令アドレス
となっている。
118は16個の汎用レジスタよりなる汎用レジスタフ
ァイルである。
324のアドレス加算器であり、命令語のX2フイール
ドの指示するレジスタの内容すなわち、X2レジスタ値
と82フイールドの指示するレジスタの内容すなわち、
B2レジスタ値と変位D2を加算する。加算結果はオペ
ランドアドレスレジスタ120に格納される。
122はオペランドデータレジスタであり、330はA
LUである。
124.130はそれぞれ命令レジスタ122の遅延レ
ジスタ、命令カウンタ114の遅延レジスタであり、オ
ペランドアドレスレジスタ120にオペランドアドレス
が格納される時に、その命令の命令レジスタ値、命令カ
ウンタ値が格納される。
126.138はそれぞれレジスタ124゜138の遅
延レジスタであり、オペランドデータレジスタ122に
オペランドデータが格納される時に、その命令の命令レ
ジスタ値、命令カウンタ値がそれぞれに格納される。
320は予測記憶装置として用いる連想記憶装置であり
、322はレジスタコンフリクト検出装置である。
154は予測装置が出力するオペランドアドレスの予測
値を格納するレジスタであり、332は予測装置が出力
した予測値が命令の実行によって求められたオペランド
・アドレスと等しいかを比較する比較器である。
次に、第1A図、第1B図の全体構成図と第5図のタイ
ミングチャート図を使って、レジスタコンフリクトがな
い場合の全体の動作を説明する。
第5図の如く時刻′rOより先読みアドレスレジスタに
は第1命令から第4命令を先読みする際の先読みアドレ
スが格納されているとする。また命令レジスタ112と
命令カウンタ114には時刻T2以前において第1命令
の前の命令、すなわち第0命令の命令語と命令アドレス
が格納されているとする。先読みアドレスレジスタ10
0のアドレスは信号線500を介して命令記憶装置30
4に印加され、そのアドレスから始まる4命令語が信号
線506に出力され、第1命令語から第4命令語までの
4命令語は時刻T1にバッファ104゜106.108
,110に格納される。
アドレス増加器302は、先読みアドレスレジスタ10
0のアドレスを入力として、そのアドレスを4命令語分
増加させたアドレスを信号fi502に出力する。セレ
クタ300の選択信号である信号線586の信号は通常
「右選択信号」であり(「右選択信号」以外の値を取る
場合は下記で説明される時だけである)、この時、信号
線505の信号がセレクタ300を通って信号線506
に出力されて、先読アドレスレジスタ100に格納され
る。格納される時刻は時刻TOの4周期後の時刻T4で
ある。命令バッファ104,106゜108.110に
は次の4命令語が格納される時刻T5までこの4命令語
が格納される。先読みアドレスレジスタ100は通常こ
のように4命令語分ずつ増加されるので、命令バッファ
104゜106.108.1.10には順々に後続の命
令が4命令単位に先読みされて格納されることとなる。
時刻′r2以前においては、命令カウンタ114には第
0命令の命令アドレスが格納されていた。
命令カウンタ114の値は信号線530を介してアドレ
ス増加器310に印加されて、1命令語分増加されて、
第1命令の命令アドレスとなる。増加された値は信号線
520を介してセレクタ308に入力される。セレクタ
308の選択信号586は上述したように通常「右選択
信号」であり、この時、信号線520の値はセレクタ3
08を介して信号線518へ出力される。信号線518
の値は命令カウンタ114に格納される。また、その値
はセレクタ306に印加される。セレクタ306306
は、信号線51B、の22ビツトアドレス値のうちの下
2ビットを見て、それが0ならば信号線508のデータ
が信号線516へ出力され、それが1ならば信号線51
0のデータが信号線516出力される。又それが2なら
ば信号線512のデータが信号516へ出力され、それ
が3ならば信号線514のデータが信号線516へ出力
される。
これにより、命令レジスタ前の時刻でセットされた命令
バッファの次の命令バッファの内容がセレクタ306で
選択されて命令レジスタ117に格納される。時刻T2
においては命令バッファIBO104から第1命令語が
命令レジスタ112に格納されて、同時に命令カウンタ
114に第1命令の命令アドレスが格納される。
セレクタ312,314には信号線532を介して16
個のレジスタよりなるレジスタファイル118の値が印
加される。セレクタ312には更に信号線524を介し
て命令レジスタ112中の第1命令のX2フイールドの
4ビツトが印加される。セレクタ312はこれによりX
2フイールドの指示するレジスタの値を信号線534に
出力する。セレクタ314には更に信号線526を介し
て命令レジスタ112中の第1命令のB2フィールドの
4ビツトが印加される。セレクタ314はこれによりB
2フィールドの指示するレジスタの値を信号線536に
出力する。信号線592゜590には通常「上選択信号
」が印加されており、(「上選択信号」以外の値が印加
されるのは下記で説明する場合だけである)、この時、
信号線534の値はセレクタ316を介して信号線54
0に出力され、信号14536の値はセレクタ318を
介して信号線542に出力される。
アドレス加算器にはこのようにして信号線540を介し
て第1命令のX2フイールドの指示するレジスタの内容
が入力され、信号線542を介しては第1命令の82フ
イールドの指示するレジスタの内容が入力される。更に
、信号線528を介して命令レジスタ112中の第1命
令の変位D2が入力される。アドレス加算器は上記3つ
の入力値を加算結果である第1命令のオペランドアドレ
スを信号線548に出力し、それは時刻T3でオペラン
ドアドレスレジスタ120に格納される。また同時刻に
、■R1レジスタ124には第1命令語が信号線522
を介して格納され、ICルジスタ130には第1命令ア
ドレスが信号線530を介して格納される。
オペランド記憶装置326には信号線549を介してオ
ペランドアドレスレジスタ120中の第1命令のオペラ
ンドアドレスが印加され、信号線552にはそのアドレ
スで示されるロケーションにある第1命令のオペランド
データが出力される。
時刻T4になると、この第1命令のオペランドデータは
オペランドデータレジスタ122に格納される。
同時刻に、I R2レジスタ126には、信号線562
を介してIRIR1レジスタ第1命令語が格納され、I
C2レジスタ138には、信号線572を介してICル
ジスタ130から第1命令の命令アドレスが格納される
ALU330には3つの入力信号線がある。信号線55
4からは、オペランドデータレジスタ122にある第1
命令のオペランドデータが入力される。信号線594か
らはIR2レジスタ126にある第1命令のオペコード
が入力される。セレクタ328には信号線532を介し
て16個のレジスタよりなるレジスタファイル118の
値が印加され、更に信号線558を介して第1命令のR
1フィールドが印加される。これにより、セレクタ32
8は、R1フィールドによって指示されるレジスタの値
、すなわちR1レジスタ値を信号線560に印加し、そ
れがA L U 330に入力される。ALUは、信号
線560からの入力データを第1オペランドデータとし
、信号線554からの入力データを第2オペランドデー
タとして、両者に信号線594に示されるオペコードの
演算を施し、その演算結果を信号線556に出力する。
レジスタファイル118には、信号線556を介して第
1命令の演算結果が印加され、信号線558を介してI
R2レジスタ126にある第1命令のR1フィールドが
印加される。時刻1゛5になると、上記第1命令の演算
結果は丁く1フイールドの指示するレジスタ、すなわち
R1レジスタに書込まれる。
以上により第1命令の処理は終了する。
第2命令の処理は、まず時刻T3に第2命令語が命令レ
ジスタ112に格納され、第2命令の命令アドレスが命
令カウンタICに格納される。以降、第1命令と同様に
順々に処理が進む。
第3命令以降の命令の処理は、前の命令処理の1周期遅
れの時刻で第1.第2命令のように進む。
ただし、命令の先読みは4命令語単位であるので、先読
み命令レジスタ100.命令バッファ104゜106.
108,110への格納はそれぞれ4周期ごとに1度ず
つ行なわれる。
以上のように、レジスタコンフリクトがない場合には1
周期ごとに命令処理が進んでいく。
次に、レジスタコンフリクトのある場合の全体の動作説
明に移るが、その前に第4図を用いて、連想記憶装置3
20の説明をする。
実施例における連想記憶装置の記憶装置は10ワードで
ある。
各ワードは、IC記憶部ICP346と予測アドレス記
憶部PAP356からなる。
信号線500にデータを印加すると、連想記憶装置は探
索をする。信号線500上のデータとIC記憶部ICP
345データが一致するワードがある時には、一致検出
器344は「1」を出力して1−I I T Lレジス
タ156を「1」にし、かつそのワードの予測アドレス
記憶部PAP356のデータをPALレジスタ158に
格納する。一致するワードがない時は、一致検出器34
4は「0」を出力し1” HI ”1” L L/レジ
スタ156「0」にする。
なお、信号線500上のデータは先読み命令アドレスで
あり、IC記憶部ICPのデータは命令アドレスである
ので、ここでの[一致検出」とは、24ビツトアドレス
の内の上位22ビツトの一致を調べることである。
一方、信号線584に「1」又は信号線586に「0」
が印加された時には、連想記憶装置は、信号線580,
549上のデータをそれぞれIC記憶部ICP346、
予測アドレス記憶部P r)P 356のデータとする
ワードを登録する。その際、IC記憶部ICP346の
データが一致するワードがすでに記憶されている時には
、そのワードの上に重ね書きされる。一致するワードが
また記憶されていない時には、新しくワードがつくられ
て登録される。
以上で連想記憶装置の説明を終わる。
次に、レジスタコンフリクトのある場合の動作説明を行
なう。レジスタコンフリクトのある命令としては第3図
の2命令を考え、Add命令が第1命令とし、S ub
iract命令が第2命令とする。
第3命令以降はこれらの命令との間でレジスタコンフリ
クトを起さない任意の命令とする。
本発明では、レジスタコンフリクトを起している先行命
令(以下で考える例では第1命令)のオペランド・アド
レスを予8111するのに連想記憶装置を使用している
。したがって先行命令を実行する際に、その連想記憶装
置に以前の実行時のオペランド・アドレスがある否かで
予測が出来るか出来ないかが決まる。
まず、連想記憶装置に以前の実行時の情報すなわち、オ
ペランド・アドレスがある場合を説明する。第6図をタ
イミングチャート図として用いる。
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第6図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3゜第1命苓に関するIR/Tに、O
A/IRI/TCI、00/IR2/IC2,ORのタ
イミングは、第5図のものと同一である。以下ではそれ
以外部分を説明する。
まず、時刻TOより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは、信号線500
を介して連想記憶装置のIC記憶部ICP500に印加
されている。
連想記憶装置は、上記信号、[500のデータで探索を
する6今は、連想記憶装置に以前の実行時の情報がある
場合を考えているので、時刻T2においてPALレジス
タ158には第1命令のオペランド・アドレスの予測値
が格納され、HT ’rI、レジスタ156には「1」
が格納される。
PALレジスタのオペランド・アドレスはオペランド記
憶に印加され、そこから読み出されたオペランドデータ
は時刻T3でPDレジスタ123に格納される。
時刻T3においてIRIR1レジスタ124第1命令で
あるAdd命令の命令語が格納されており、命令レジス
タ112には第2命令であるS ubstract命令
の命令語が格納されている。したがって、信号線582
上には第1命令のR1フィールドの「5」が印加され、
信号線524には第2命令のX2フイールド「5」が印
加される。第1命令と第2命令以外ではレジスタコンフ
リフタがないと仮定しているので、信号線558,52
6には[5」とは異なる値が印加されている。したがっ
て、−数比較回路160の出力は「1」になり、他の一
致比較回路162,164,166の出力は「0」とな
る。故にOR回路168の出力信号fi593とOR回
路182の出力信号線596と、AND回路172の出
力信号線172は「1」になる。また、OR回路の出力
信号1i591゜AND回路174の出力信号線590
.AND回路180の出力信号線は「0」になる。
信号線596はIC8Vレジスタ158のセット信号と
なっており、この信号線が「1」なので時刻T4におい
てIC8Vレジスタ116には第2命令の命令アドレス
が格納されPASVレジスタ154には第1命令のオペ
ランド・アドレスの予測値が格納される。
また、PDレジスタ上のオペランド・データは信号ll
A355を介してALU360に入力され、先行命令の
オペコードは信号線604を介し、ALυ360に入力
され、先行命令のR1レジスタ値はR1フィールドを印
加されたセレクタ362で選択されて信号線606を介
してALU360に入力される。これにより信号線60
0には先行命令の演算結果(予測値)が出力される。
これにより、セレクタ316は信号線538上の第1命
令の演算結果の予測値を信号線540を介してアドレス
加算器324に印加し、セレクタ318は信号線536
上の第2命令の82レジスタ値を信号線542を介して
アドレス加算器324に印加する。信号線528からは
第2命令の変位がアドレス加算器に印加される。これに
より、時刻T4において、第2命令のオペランドアドレ
スがオペランドアドレスレジスタ120に格納される。
また、IRIL/ジスタ124.ICLL/ジスタ13
0には、レジスタコンフリクトのない時の動作と同一の
データが時刻T4で格納される。
以降の第2命令の動作は、レジスタコンフリクトがない
場合と同様に進む。
時刻T3では第1命令のオペランド・アドレスがOAレ
ジスタに格納されており、信号線549を介して比較器
332に印加される。
比較器332のもう一方の入力にはPASVレジスタに
格納されている第1命令のオペランド・アドレスの予測
値が印加されている。
OAレジスタのオペランド・アドレスが予測値と一致す
るか否かで以下の動作は2通りに分かれる。まず、一致
する場合を説明する。この場合、信号線586上には「
1」が印加される。この「1ノはセレクタ300と30
8に入力される。
この時、セレクタ300は信号線502のデータを信号
線506に出力し、セレクタ308は信号線520のデ
ータを信号線518に出力する。これは、レジスタコン
フリクトがない場合の動作と同一であり、以降の動作は
その場合と同じに進んでいく。
OAレジスタのオペランド・アドレスが予測値と一致し
ない場合を次に説明する。以上の説明ではタイミングチ
ャート図としては第6図を用いてきたが、以下の説明で
は第7図を用いる。この場合、信号線586には「0」
が印加される。この「0」はセレクタ300と308に
入力される。
この時、セレクタ300は信号線504のデータを信号
線506に出力し、セレクタ308は、信号線504の
データを信号線518に出力する。
これにより、時刻T5において、先読み命令アドレスレ
ジスタ1oOにはIC8■レジスタ116に格納されて
いた第2命令の命令アドレスの上位20ビツトが格納さ
れる。この値は第1命令から第4命令までの先読みアド
レスと同一である。これにより先読みが実行されて時刻
゛r6で第1命令から第4命令が命令バッファ104,
106゜108.110に格納される。信号線518に
は第2命令の命令アドレスが印加されているので、時刻
T7において命令レジスタ112には命令レジスタ10
6上の第2命令が格納される。第2命令とレジスタコン
フリクトを起こしていた第1命令は時刻5において、す
でに演算結果をR1フィールドの指示するレジスタに書
込んである。したがって1時刻T7においては第1命令
と第2命令の間にはレジスタコンフリクトはなく、第2
命令はレジスタコンフリクトのない場合の動作説明と同
じに進んでいく。
更に、信号線586上の「o」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346、
予測アドレス記憶部356がそれぞれ信号線580上の
第1命令の命令アドレス。
信号線549上の第1命令のオペランド・アドレスであ
るワードが時刻T5において登録される。
以上でOAレジスタのオペランド・アドレスが予測値と
一致しない場合の説明を終わる。
更に、これにより、連想記憶装置には以前の実行時の情
報がある場合の説明を終わる。
次に、連想記憶装置に以前の実行時の情報がない場合を
説明する。第8図をタイミングチャート図として用いる
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第8図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3゜第1命令に関するIR/IC,O
A/IRI/ICI、OD/IR2/IC2,GRのタ
イミングは、第5図のものと同一である。以下ではそれ
以外部分を説明する。
まず、時刻TOより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは信号線500を
介して連想記憶装置のIC記憶部ICP500354に
印加されている。
連想記憶装置は上記信号線500のデータで探索する。
今は、連想記憶装置に以前の実行時の情報がない場合を
考えているので、時刻T2においてHITLレジスタ1
56には「0」が格納される。更に、この「0」信号P
JA546に印加される。
時刻′r3においてIRIレジスタ124には第1命令
であるAdd命令の命令語が格納されており、命令レジ
スタ112には第2命令であるS ubtract命令
の命令語が格納されている。したがって、信号線582
上には第1命令のR1フィールドの「5」が印加され、
信号線524には第2命令のx2フィールド「5」が印
加される。第1命令と第2命令以外ではレジスタコンフ
リクトがないと仮定しているので、信号線558,52
6には「5」とは異なる値が印加されている。したがっ
て、−数比較回路160の出力は「1」になり、他の一
致比較回路162,164,166の出力はrOJとな
る。故にOR回路108の出力信号線593は「1」に
なる、また、OR回路の出力信号線5910R回路18
2の出力信号線596、AND回路172の出力信号綿
AND回路174の出力信号線590.NAI’)回路
180の出力信号線はrOJになる。
信号線592は「0」であり、信号線593はrlJで
あるので、信号線540上に有意なデータは出力されな
い。一方、セレクタ318は信号線536上の第2命令
の82レジスタ値を信号線542を介してアドレス加算
器324に印加する。
信号線528からは第2命令の変位がアドレス加算器に
印加される。これにより、時刻T4において、第2命令
のオペランドアドレスがオペランドアドレスレジスタ1
20に格納されろ。
また、IRIレジスタ124.ICIレジスタ130に
は、レジスタコンフリクトのない時の動作と同一のデー
タが時刻T4で格納される。
以降の第2命令の動作は、レジスタコンフリクト信号線
540上には有意なデータは出力されないのでアドレス
加算器548は有意なデータを出力しない。したがって
、時刻T4になってもオペランドアドレスレジスタ12
0には有意なデータは格納されない。また、工R1レジ
スタ124゜ICiレジスタ130にも有いなデータは
格納されない。
一方、時刻T4になるとIR2レジスタ126には第1
命令であるAdd命令の命令語が格納されている。この
時には、−数比較回路164の出力は「1」になり、他
の一致比較回路160゜162.166の出力はrOJ
になる。故に、OR回路168の出力信号線593とA
ND回路180の出力信号線584は「1」になる。ま
た、OR回路170,182の出力信号線591゜59
6とAND回路172と174の出力信号線592.5
90は「0」になる。この時も信号線592は「0」で
あり、信号線593は「1」なので信号線540上には
何のデータも出力されない。信号線540上には有意な
データが出力されないのでアドレス加算器548は有意
なデータを出力しない。したがって時刻T5になっても
オペランドアドレスレジスタ120には有意なデータは
格納されない。また、I T(ルジスタ124゜ICI
レジスタ130にも有意なデータは格納されない。
一方、時刻T5になるとIR2レジスタ138には有意
なデータは格納されていない。この時には一致比較回路
160,162,164,166の出力はrOJとなる
。故に信号8590 、591゜592.593,58
4,596はすべて「0」となる。
これにより、セレクタ316は信号線534上の第2ア
ドレスのx2レジスタ値を信号線540を介してアドレ
ス加算器324に印加し、セレクタ318は信号線53
6上の第2アドレスの82レジスタ値を信号から542
を介してアドレス加−算器324に印加する6信号線5
28からは第2アドレスの変位がアドレス加算器に印加
される。
これにより、時刻T6において、第2アドレスのオペラ
ンドアドレスがオペランドアドレスレジスタ120に格
納される。
また、IRIレジスタ124.IC,:ルジスタ130
には、レジスタコンフリクトのない時の動作と同一のデ
ータが時刻T6で格納される。
以降の第2アドレスの動作は、レジスタコンフリクトが
ない場合と同様に進む。
時刻T4から第1命令のオペランドアドレスがOAレジ
スタより信号線549を介して連続記憶装置に印加され
る。
更に、信号線584上の「1」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346、
予ホリアドレス記憶部356がそれぞれ信号線580上
の第1命令の命令アドレス信号線549上の第1命令の
オペランド・アドレスであるワードが時刻T5において
登録される。
更に、これにより、連想記憶装置に以前の実行時の情報
がない場合の説明を終わる。
次に、本実施例特有の効果を述べる。
本発明を使用しない場合、先行命令とレジスタコンフリ
クトのある後続命令を実行すると、上述の動作説明の連
想記憶装置に以前の実行時オペランドアドレスがない場
合と同じ動作となり、2周期の空き時間を生ずる。
本発明を使用すれば空き時間はまったくなくなるので、
レジスタコンフリクト発生時の命令処理性能が向上する
上述の実施例ではアドレス空間が1つだけの時を述べた
。もし、複数のアドレス空間をアドレス空間識別子で区
別してアクセスする情報処理装置にこの発明を適用する
際には、アドレス空間識別子も連想キーに加えれば良い
更に、連想キーとしては、今まで述べたすべてを使うこ
ともできるし、任意の組合せを使うこともできる。その
際、キー構成要素の一部のビット位置を使うこともでき
る。
また、この実施例では演算器の必要な命令が第1命令で
ある場合を述べたが、第1命令を演算器の不要なロード
系の命令に限定すれば、 ALU360は不要になり、
第2命令の開始が更に早くできる。
〔発明の効果〕
本発明を使用しない場合、レジスタコンフリクトを起こ
す先行命令が開始されてから、後続命令が開始されるま
でに、先行命令のアドレス計算時間、オペランド読出し
時間、演算時間がかかる。
しかし、本発明を用いることにより、予測装置の出力し
たオペランド・アドレスの予測値でオペランド読出しを
開始できるので、オペランド読出し及びそれにつづく演
算を早く開始できる。したがって、後続命令の開始が本
発明を使用しない場合より早くなる。
【図面の簡単な説明】
第2A図は命令形式図、第213図はロード命令の例、
第3図はレジスタコンフリクトを起こす二つの命令の例
、第1A図、第1B図は実施例の全体構成例、第4図は
連想記憶装置の構成図、第5〜8図はタイミングチャー
ト図、第9図はレジスタコンフリクト検出装置の構成図
。 ]00・・・先読み命令アドレスレジスタ、104゜1
06.108,110・・・命令バッファ、112・・
・命令レジスタ、114・・・命令カウンタ、118・
・・レジスタファイル、120・・・オペランド・アド
レスレジスタ、126・・・オペランドデータレジスタ
、304・・・命令記憶装置、320・・・予測装置、
322・・・レジスタコンフリクト検出袋[,324・
・・アドレス加算器、326・・・オペランド記憶装置
、330・・・ALU。 イZA図 芽2B図 θP   バ/、   Dコ CB、、 べ2)茅3屈 ■  A  5./ρl(1,2> ■  3  8.7rl)(/・タジ 井斗図 昇 9 図

Claims (1)

  1. 【特許請求の範囲】 1、先行命令によつてレジスタに書込まれる演算結果を
    用いて後続命令が実行される際に、該演算結果が確定す
    るまで、該後続命令の処理であつて該演算結果を用いる
    処理を停止させる情報処理装置において、 該先行命令を先読みする際の先読みアドレスを連想キー
    に用いて該先行命令のオペランドアドレスを予測する予
    測装置と、 該連想キーにより該予測装置が該先行命令のオペランド
    アドレスの予測値を出力したかを検出して、検出した時
    に該オペランドアドレスの予測値を用いて主記憶からオ
    ペランドを読出して該オペランドを用いて演算を行いそ
    の演算結果を用いて上記停止される処理を開始させる装
    置を持つ情報処理装置。 2、該オペランドアドレスの予測値が該先行命令の実行
    時のオペランドアドレスと等しいかを検証する装置と、 該検証結果が不一致の時には、該先行命令によつてレジ
    スタに書込まれる演算結果を用いて該後続命令を再続行
    させる装置を持つ特許請求の範囲第1項の情報処理装置
    。 3、該予測装置の予測値として、該先行命令の以前の実
    行でのオペランドアドレスを用いることを特徴とする特
    許請求の範囲第1項記載の情報処理装置。
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 true JPH01187634A (ja) 1989-07-27
JP2667851B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421771B1 (en) 1998-06-29 2002-07-16 Fujitsu Limited Processor performing parallel operations subject to operand register interference using operand history storage
US6810474B1 (en) * 1998-03-04 2004-10-26 Hitachi, Ltd. Information processor
US8549263B2 (en) 2006-03-07 2013-10-01 Intel Corporation Counter-based memory disambiguation techniques for selectively predicting load/store conflicts

Citations (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 情報処理装置
JPS6284340A (ja) * 1985-05-07 1987-04-17 Hitachi Ltd 命令実行方法およびデータ処理装置

Patent Citations (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 情報処理装置
JPS6284340A (ja) * 1985-05-07 1987-04-17 Hitachi Ltd 命令実行方法およびデータ処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810474B1 (en) * 1998-03-04 2004-10-26 Hitachi, Ltd. Information processor
US6421771B1 (en) 1998-06-29 2002-07-16 Fujitsu Limited Processor performing parallel operations subject to operand register interference using operand history storage
US8549263B2 (en) 2006-03-07 2013-10-01 Intel Corporation Counter-based memory disambiguation techniques for selectively predicting load/store conflicts
US8812823B2 (en) 2006-03-07 2014-08-19 Intel Corporation Memory disambiguation techniques using counter ratio to selectively disable load/store conflict prediction

Also Published As

Publication number Publication date
JP2667851B2 (ja) 1997-10-27

Similar Documents

Publication Publication Date Title
US4858105A (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
JP3110404B2 (ja) マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体
JPH0496825A (ja) データ・プロセッサ
JPH07210381A (ja) プロセッサ及びコンピュータ・システム
JPH063584B2 (ja) 情報処理装置
US4541047A (en) Pipelined data processing system
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
US5757685A (en) Data processing system capable of processing long word data
JPH0348536B2 (ja)
US20050273577A1 (en) Microprocessor with integrated high speed memory
JPH01187634A (ja) 情報処理装置
JPH0552534B2 (ja)
JPS6284340A (ja) 命令実行方法およびデータ処理装置
US5829049A (en) Simultaneous execution of two memory reference instructions with only one address calculation
JP2685713B2 (ja) データ処理装置
JPH07191911A (ja) アドレス変換装置及びマイクロプロセッサ算出方法
JPH08263289A (ja) 複数命令流パイプライン計算機
JPH07114534A (ja) 擬似ベクトルプロセッサ
JPS6410858B2 (ja)
JP2591325B2 (ja) 分岐制御装置
JP3102399B2 (ja) データ処理装置及び方法
JPH0248733A (ja) 情報処理装置
JPS62285180A (ja) ベクトルプロセツサ
JP2629479B2 (ja) 情報処理装置
JPH05173778A (ja) データ処理装置

Legal Events

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