JP2685713B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2685713B2
JP2685713B2 JP6071819A JP7181994A JP2685713B2 JP 2685713 B2 JP2685713 B2 JP 2685713B2 JP 6071819 A JP6071819 A JP 6071819A JP 7181994 A JP7181994 A JP 7181994A JP 2685713 B2 JP2685713 B2 JP 2685713B2
Authority
JP
Japan
Prior art keywords
instruction
address
register
signal line
memory 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 - Lifetime
Application number
JP6071819A
Other languages
English (en)
Other versions
JPH076033A (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 JP6071819A priority Critical patent/JP2685713B2/ja
Publication of JPH076033A publication Critical patent/JPH076033A/ja
Application granted granted Critical
Publication of JP2685713B2 publication Critical patent/JP2685713B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は情報処理装置に係り、特
にパイプライン制御の情報処理装置の高速化に関する。 【0002】 【従来の技術】パイプライン制御の情報処理装置では、
命令の処理全体を複数の部分処理に分割し、各部分処理
ごとに独立の処理装置を設けている。まず第1命令が第
1の部分処理を行う処理装置で処理される。その処理が
完了して第2の部分処理を行う処理装置に移ると、第1
の部分処理を行う処理装置では第2命令の処理が開始さ
れる。第1命令が第3の部分処理を行う処理装置に移る
と、第2命令は第2の部分処理を行う処理装置で処理さ
れ、第3命令は第1の部分処理装置で処理される。この
ように、第1命令の処理の全体が完了する前に、第1命
令の後続命令の実行が開始されるので、パイプライン制
御の情報処理装置では高い命令処理性能を実現すること
が出来る。 【0003】レジスタ・コンフリクトによる実行停止を
短縮化する例としては、特開昭58−9636がある。 【0004】 【発明が解決しようとする課題】ある命令(以降では後
続命令と呼ぶ)より前にある命令(以降では先行命令と
呼ぶ)があるレジスタを変更する命令であり、後続命令
がそのレジスタを参照す幣命令である場合(レジスタコ
ンフリクト状態と呼ぶ)には、命令処理は上記の様には
進まない。すなわち、先行命令が演算結果をレジスタに
書込むまで、もしくは先行命令が演算結果を生成するま
では、後続命令の処理全体、少なくともレジスタを参照
する部分処理を停止させなければならない。このような
レジストコンフリクトにある後続命令の実行停止は、パ
イプライン制御の情報処理装置においては、性能向上の
大きな阻止要因となっている。 【0005】本発明の目的は、レジスタコンフリクト時
の後続命令の実行停止をなくし、高い命令処理性能を有
するパイプライン制御の情報処理装置を提供することに
ある。 【0006】 【課題を解決するための手段】本発明では先行命例によ
ってレジスタに書込まれる演算結果を用いて後続命令が
実行される際に、該演算結果が確定するまで、該後続命
令の処理であって該演算結果を用いる処理を停止させる
データ処理装置において、該先行命令を先読みする際の
先読みアドレス等の、その先行命令に関連する連想キー
とに対応させて該先行命令のメモリ・オペランド・アド
レスを記憶する手段と、該データ処理装置でストア命令
が実行された時に、該ストア命令のストア・アドレスと
一致する該メモリ・オペランド・アドレスが該記憶手段
にあるかを探索し、ある時には、それに対応する該メモ
リ・オペランドを該ストア命令のストア・データで書換
える連想書込み手段と、該先行命令が実行された時にそ
の時の該連想キーに基づいて該記憶手段を探索し、該連
想キーが記憶されている時にはそれに対応する該メモリ
・オペランドを出力する手段とを有する。 【0007】 【作用】レジスタコンフリクト発生時に停止される後続
命令の処理を、連想記憶の出力する情報を用いて開始で
きるので、上記目的を達成できる。 【0008】 【実施例】以下、本発明の一実施例を図に従って詳細に
説明する。 【0009】まず、図1(A)を使って本実施例で用い
る命令形式を説明する。この命令形式では、各命令語は
4バイト長から構成される。第1バイトはオペコード
(op)を表わす。第2バイト及び第3バイトの上4ビ
ットは3つのレジスタ指示フィールド(R1,X2,B
3)を表わす。第3バイトの下4ビット及び第4バイト
は変位(D2)を表わす。この命令形式では各レジスタ
指示フィールドはそれぞれ4ビットであり、それぞれ1
5個のレジスタの1つを指示する。 【0010】命令がStore命令以外の場合には、この意
味は、X2フィールドの指示する汎用レジスタの内容と
B2フィールドの指示する汎用レジスタの内容と変位D
2の和をオペランドアドレスとし、このアドレスの指す
主記憶上のロケーションの内容(第2オペランドと呼
ぶ)と、R1フィールドの指示する汎用レジスタの内容
(第1オペランドと呼ぶ)とに対して、オペコードop
で示される演算を施し、R1フィールドの指示する汎用
レジスタに格納することである。 【0011】命令がストア(Stors) 命令の場合には、
上述とは逆に、第1オペランドである汎用レジスタの内
容を第2オペランドである主記憶上のロケーションに納
格する。 【0012】なお、この命令形式はIBMシステム(Sy
stem)/370の命令形式から引用したものであり、更
に詳しくは“IBMシステム(System)/370動作処
理(370Pronciples of Operation ) " に示されてい
る。 【0013】図1(B)は、図1(A)で表わされた命
令をニューモニックで表わしたものである。 【0014】図1(C)は、レジスタコンフリクトを起
こしている命令列の例である。先行命令()はAdd
命令であり、レジスタ1の内容と、レジスタ2の内容と
変位100を加えて得られるアドレスの内容をレジスタ
5の内容と加算してレジスタ5に格納することを意味す
る。後続命令()はサブトラクト(Subtract)命令で
あり、レジスタ1の内容と、レジスタ5の内容と変位1
50を加えて得られるアドレスの内容をレジスタ8の内
容から引いてレジスタ8に格納することを意味する。 【0015】先行命令は演算結果をレジスタ5に書込
み、後続命令はレジスタ5の内容を用いているので、レ
ジスタコンフリクトが起きている。 【0016】次に図2,図3を使って実施例の全体構成
の概要を説明する。図2と図3とを結合すると、実施例
の全体構成図となる。この実施例は、先行命令の演算結
果として、連想記憶に蓄えた先行命令の以前の実行での
演算結果又は連想記憶に蓄えた先行命令の第2オペラン
ドに対して演算を施した結果を用いるものである。 【0017】まず、304は命令記憶装置であり、32
6はオペランド記憶装置である。命令記憶装置304と
オペランド記憶装置はバイト単位に24ビットのアドレ
スでアドレス付けされている。 【0018】100は先読み命令アドレスレジスタであ
る。命令の先読みは、常に命令記憶装置上の4命令語境
界から始まる4命令語単位に行われる。したがって先読
み命令アドレスレジスタ(IFA)100には24ビッ
トのアドレスのうちの上位20のビット(ビット0−1
9)が格納される。 【0019】102は先読み命令アドレスレジスタの遅
延レジスタである。 【0020】104,106,108,110はそれぞ
れ命令バッファIB0,IB1,IB2,IB3であ
り、命令記憶装置304から先読みされた4命令語がこ
の順に格納される。 【0021】112は命令レジスタであり、114は命
令カウンタである。1命令語は命令記憶装置上の命令語
境界からの4バイトに必ず置かれる。したがって、命令
カウンタには24ビットのアドレスのうちの上位22ビ
ット(ビット0−21)が格納される。命令カウンタ1
14の値は、その時の命令レジスタ112中の命令語の
命令アドレスとなっている。 【0022】118は16個のレジスタよりなるレジス
タファイルである。 【0023】324はアドレス加算器であり、命令語の
X2フィールドの指示するレジスタの内容すなわち、X
2レジスタ値とB2フィールドの指示するレジスタの内
容すなわち、B2レジスタ値と変位D2を加算する。加
算結果はオペランドアドレスレジスタ120に格納され
る。 【0024】122はオペランドデータレジスタであ
り、330はALUである。 【0025】124,130,132,134,136
はそれぞれ命令レジスタ122の遅延レジスタ、命令カ
ウンタ114の遅延レジスタ X2レジスタ値の遅延レ
ジスタ、B2レジスタ値の遅延レジスタ値および先読み
命令アドレスの遅延レジスタでありオペランドアドレス
レジスタ120にオペランドアドレスが格納される時
に、その命令の命令レジスタ値、命令カウンタ値、X2
レジスタ値、B2レジスタ値およびその命令の先読み時
の先読み命令アドレスが格納される。 【0026】126,138,140,142,144
はそれぞれレジスタ124,130,132,134,
136の遅延レジスタであり、オペランドデータレジス
タ122にオペランドデータが格納される時に、その命
令の命令レジスタ値、命令カウンタ値、X2レジスタ
値、B2レジスタ値およびその命令の先読み時の先読み
命令アドレスがそれぞれに格納される。 【0027】320は連想記憶装置であり、322はレ
ジスタコンフリクト検出装置である。 【0028】次に、図2,図3の全体構成図と図5のタ
イミングチャート図を使って、レジスタコンフリクトが
ない場合の全体の動作を説明する。 【0029】図5の如く時刻T1より先読みアドレスレ
ジスタには第1命令から第4命令を先読みする際の先読
みアドレスが格納されているとする。また命令レジスタ
112と命令カウンタ114には時刻T2以前において
第1命令の前の命令、すなわち第0命令の命令語と命令
アドレスが格納されているとする。先読みアドレスレジ
タ100のアドレスは信号線500を介して命令記憶装
置304に印加され、そのアドレスから始まる4命令語
が信号線506に出力され、第1命令語から第4命令語
までの4命令語は時刻T1に命令バッファ104,10
6,108,110に格納される。 【0030】アドレス増加器302は、先読みアドレス
レジスタ100のアドレスを入力として、そのアドレス
を4命令語分増加させたアドレスを信号線502ら出力
する。セレクタ300の選択信号である信号線586の
信号は通常「右選択信号」であり(「右選択信号」以外
の値を取る場合は下記で説明される時だけである)。こ
の時、信号線502の信号がセレクタ600を通って信
号線506に出力されて、先読アドレスレジスタ100
に格納される。格納される時刻は時刻T0の4周期後の
時刻T4である。命令バッファ104,106,10
8,110には次の4命令語が格納される時刻T5まで
この4命令語が格納される。先読みアドレスレジスタ1
00は通常このように4命令語分ずつ増加されるので、
命令バッファ104,106,108,110には順々
に後統の命令が4命令単位に先読みされて格納されるこ
ととなる。 【0031】時刻T2以前においては、命令カウンタ1
14には第0命令の命令アドレスが格納されていた。命
令カウンタ114の値は信号線530を介してアドレス
増加器310に印加されて、1命令語分増加されて、第
1命令の命令アドレスとなる。増加された値は信号線5
20を介してセレクタ308に入力される。セレクタ3
08の選択信号586は上述したように通常「右選択信
号」であり、この時、信号線520の値はセレクタ20
8を介して信号線518へ出力される。信号線518の
値は命令カウンタ114に格納される。また、その値は
セレクタ306に印加される。セレクタ306は、信号
線518の22ビットアドレス値のうちの下2ビットを
見て、それが0ならば信号線508のデータが信号線5
16へ出力され、それが1ならば信号線510のデータ
が信号線516に出力される。又それが2ならば信号線
512のデータが信号516へ出力され、それが3なら
ば信号線514のデータが信号線516へ出力される。
これにより、命令レジスタに前の時刻でセットされた命
令の次の命令がセレクタ306で選択されて命令レジス
タ112に格納される。時刻T2においては命令バッフ
ァIBO104から第1命令語が命令レジスタ112に
格納されて、同時に命令カウンタ114には第1命令の
命令アドレスが格納される。 【0032】また、IFASVレジスタ102には、先
読み命令アドレスレジスタIFA100の2周期遅れの
時刻T2に、先読み命令アドレスレジスタの値が格納さ
れる。 【0033】セレクタ312,314には信号線532
を介して16個のレジスタよりなるレジスタファイル1
18の値が印加される。セレクタ312には夏に信号線
524を介して命令レジスタ112中の第1命令のX2
フィールドの4ビットが印加される。セレクタ312は
これによりX2フィールドの指示するレジスタの値を信
号線534に出力する。セレクタ314には信号線52
6を介して命令レジスタ112中の第1命令のB2フィ
ールドの4ビットが印加される。セレクタ314はこれ
によりB2フィールドの指示するレジスタの値を信号線
536に出力する。信号線592,590,593,5
91には通常「0」が印加されており、(「0」以外の
値が印加されるのは下記で説明する場合だけである)、
この時、図10に示したセレクタ316,318の動作
図に従って、信号線534の値はセレクタ316を介し
て信号線540に出力され、信号線536の値はセレク
タ318を介して信号線542に出力される。 【0034】アドレス加算器にはこのようにして信号線
540を介して第1命令のX2フィールドの指示するレ
ジスタの内容が入力され、信号線542を介しては第1
命令のB2フィールドの指示するレジスタの内容が入力
される。更に、信号線528を介して命令レジスタ11
2中の第1命令の変位D2が入力される。アドレス加算
器は上記3つの入力値を加算し、加算結果である第1命
令のオペランドアドレスを信号線548に出力し、それ
は時刻T3でオペランドアドレスレジスタOA120に
格納される。また同時刻に、IR1レジスタ124には
第1命令語が信号線522を介して格納され、IC1レ
ジスタ130には第1命令アドレスが信号線530を介
して格納され、GRX1レジスタ132には第1命令の
X2レジスタ値が信号線540を介して格納され、GR
B1には第1命令のB2レジスタ値が信号線542を介
して格納され、IFA1レジスタ136には第1命令を
先読みした際の先読み命令アドレスが格納される。 【0035】オペランド記憶装置326には信号線55
0を介してオペランドアドレスレジスタ120中の第1
命令のオペランドアドレスが印加され、信号線552に
はそのアドレスで示されるロケーションにある第1命令
のオペランドデータが出力される。時刻T4になると、
この第1命令のオペランドデータはオペランドデータレ
ジスタ122に格納される。 【0036】同時刻に、IR2レジスタ126には、信
号線562を介してIR1レジスタから第1命令語が格
納され、IC2レジスタ138には、信号線572を介
してIC1レジスタ130から第1命令の命令アドレス
が格納され、GRX2レジスタ140には、信号線57
0を介してGRX1レジスタ132から第1命令のX2
レジスタ値が格納され、GRB2レジスタ142には、
信号線568を介してGRB1レジスタ134から第1
命令のB2レジスタ値が格納され、IFA2レジスタ1
44には、信号線566を介してIFA1レジスタ13
6から第1命令語を先読みした際の先読み命令アドレス
が格納され、OA2レジスタ706には、信号線550
を介してOAレジスタ120よりオペランド・アドレス
が格納される。 【0037】ALU330には3つの入力信号線があ
る。信号線554からは、オペランドデータレジスタ1
22にある第1命令のオペランドデータが入力される。
信号線594からはIR2レジスタ126にある第1命
令のオペコードが入力される。セレクタ328には信号
線532を介して16個のレジスタよりなるレジスタフ
ァイル118の値が印加され、更に信号線558を介し
て第1命令のR1フィールドが印加される。これによ
り、セレクタ328は、R1フィールドによって指示さ
れるレジスタの値、すなわちR1レジスタ値を信号線5
60に印加し、それがALU330に入力される。AL
Uは、信号線560からの入力データを第1オペランド
データとし、信号線554からの入力データを第2オペ
ランドデータとして、両者に信号線594に示されるオ
ペコードの演算を施し、その演算結果を信号線556に
出力する。 【0038】レジスタファイル118には、信号線55
6を介して第1命令の演算結果が印加され、信号線55
8を介してIR2レジスタ126にある第1命令のR1
フィールドが印加される。時刻T5になると、上記第1
命令の演算結果はR1フィールドの指示するレジスタ、
すなわちR1レジスタに書込まれる。 【0039】なお、命令がストア(Store)命令である
時には、その事実が書込み命令検出器710により検出
され信号線712を介してオペランド記憶装置326に
入力される。これにより、オペランド記憶装置は信号線
708を介して入力されるストア(Store)命令のオペ
ランド・アドレスに信号線560を介して入力されるス
トア(Store)命令のR1レジスタの内容が時刻T5に
なると書込まれる。なお、この時には上述したR1レジ
スタへの書込みは行なわれない。 【0040】以上により第1命令の処理は終了する。 【0041】第2命令の処理は、まず時刻T3に第2命
令語が命令レジスタ112に格納され、第2命令の命令
アドレスが命令カウンタICに格納される。以降、第1
命令と同様に順々に処理が進む。 【0042】第3命令以降の命令の処理は、前の命令処
理の1周期遅れの時刻で第1,第2命令のように進む。
ただし、命令の先読みは4命令語単位であるので、先読
み命令アドレスレジスタ100,命令バッファ104,
106,108,110,IFASV レジスタ102への格
納はそれぞれ4周期ごとに1度ずつ行なわれる。 【0043】以上のように、レジスタコンフリクトがな
い場合には1周期ごとに命令処理が進んでいく。 【0044】次に、レジスタコンフリクトのある場合の
全体の動作説明に移るが、その前に図4を用いて、連想
記憶装置320の説明をする。 【0045】実施例における連想記憶装置の記憶容量は
10ワードである。 【0046】各ワードは、IC記憶部ICP346とI
R記憶部IRP348とX2レジスタ値記憶部GRXP35
0とB2レジスタ値記憶部GRBP352と先読み命令アド
レス記憶部IFAP354とデータ記憶部DATAP356とア
ドレス記憶部ADDRP345とフラグ記憶部FLGP347か
らなる。 【0047】信号線530,522,540,542,
500にデータを印加すると、連想記憶装置は探索をす
る。信号線530,522,540,542,500上
のデータとIC記憶部ICP346,IR記憶部IRP
348,X2レジスタ値記憶部GRXP350,B2レジス
タ値記憶部GRBP352,先読み命令アドレス記憶部IFAP
354のデータがそれぞれ全部一致するワードがある時
には、一致検出器344は「1」を出力してHITLレジス
タ156を「1」にし、かつそのワードのデータ記憶部
DATAP 356のデータをDATAL レジスタ158に格納
し、フラグ記憶部FLGP347のデータをFLGLレジスタ1
57に格納する。一致するワードがない時は、一致検出
器344は「0」を出力してHITLレジスタ156を
「0」にする。 【0048】一方、信号線584に「1」又は信号線5
86に「0」が印加された時には、連想記憶装置は、信
号線580,564,578,576,574,55
6,708上のデータをそれぞれIC記憶部ICP34
6,IR記憶部IRP348,X2レジスタ値記憶部GR
XP350,B2レジスタ値記憶部GRBP352,先読み命
令アドレス記憶IFAP354,データ記憶部DATAP 356
アドレス記憶部ADDRP 345のデータとし、フラグ記憶
部FLGP347を「1」とするワードを登録する。その
際、IC記憶部ICP346,IR記憶部IRP34
8,X2レジスタ値記憶部GRXP350,B2レジスタ値
記憶部GRBP352,先読み命令アドレス記憶部IFAP35
4のデータが全部一致するワードがすでに記憶されてい
る時には、そのワードの上に重ね書きされる。一致する
ワードがまだ記憶されていない時には、新しくワードが
割り当てられて登録される。 【0049】また、信号線712に「1」が印加された
時、すなわち、ストア(Store)命令が実行された時に
は、連想記憶装置は信号線708を介して送られるスト
ア(Store)命令のオペランド・アドレスとアドレス記憶
部ADDRP が一致するワードが存在するか検出し、存在す
る場合にはそのようなすべてのワードのデータ記憶部DA
TAP を信号線560を介して転送されるストア(Store)
命令のR1レジスタの内容で書換え、かつ、そのワード
のフラグ記憶部FLGPに「0」を記憶する。 【0050】なお、フラグ記憶部FLGPの「1」は、対応
するデータ記憶部DATAP に以前に命令が実行された時の
演算結果が記憶されていることを意味し、フラグ記憶部
FLGPの「0」は、対応するデータ記憶部DATAPに第2オ
ペランド・データが記憶されていることを意味する。 【0051】以上で連想記憶装置の説明を終わる。 【0052】次に、レジスタコンフリクトのある場合の
動作説明を行なう。レジスタコンフリクトのある命令と
しては図2の2命令を考え、Add命令が第1命令と
し、サブトラクト(Subtract)命令が第2命令とする。
第3命令以降はこれらの命令との間でレジスタコンフリ
クトを起さない任意の命令とする。 【0053】本発明では、レジスタコンフリクトを起し
ている先行命令(以下で考える例では第1命令)の演算
結果を、連想記憶装置に記憶された情報を用して求めて
いる。したがって先行命令を実行する際に、その連想記
憶装置に情報があるか否かで予測が出来るか出来ないか
が決まる。 【0054】まず、連想記憶装置に以前の実行時の情報
がない場合を説明する。図6をタイミングチャート図と
して用いる。 【0055】第1命令から第4命令までの命令先読み、
および第1命令の処理の大部分は、上述のレジスタコン
フリクトがない場合の動作と同じである。すなわち、図
6のタイミングチャート図のうち、第1命令から第4命
令に関するIFA,IBO〜3,IFASV,第1命令に関
するIR/IC,OA/IR1/IC1/GRX1/G
RB1/IFA1,OD/IR2/IC2/GRX2/
GRB2/IFA2,GRのタイミングは、図5のもの
と同一である。以下ではそれ以外の部分を説明する。 【0056】まず、時刻TOより先読み命令アドレスレ
ジスタ100に格納されている先読み命令アドレスは信
号線500を介して連想記憶装置の先読み命令アドレス
記憶部IFAP354に印加されている。また、時刻T2に
なると第1命令の命令語、命令アドレス,X2レジスタ
値,B2レジスタ値がそれぞれ信号線522,530,
540,542を介してそれぞれ連想記憶装置のIR記
憶部348,IC記憶部346,X2レジスタ値記憶部
350,B2レジスタ値記憶部352に印加される。 【0057】連想記憶装置は上記信号線530,52
2,540,542,500のデータで探索をする。今
は、連想記憶装置に以前の実行時の情報がない場合を考
えているので、時刻T3においてHITLレジスタ156に
は「0」が格納される。更に、この「0」は信号線54
6に印加される。 【0058】時刻T3においてIR1レジスタ124に
は第1命令であるAdd命令の命令語が格納されてお
り、命令レジスタ112には第2命令であるSubtract命
令の命令語が格納されている。したがって、信号線58
2上には第1命令のR1フィールドの「5」が印加さ
れ、信号線524には第2命令のX2フィールド「5」
が印加される。第1命令と第2命令以外ではレジスタコ
ンフリクトがないと仮定しているので、信号線558,
526には「5」とは異なる値が印加されている。した
がって、一致比較回路160の出力は「1」になり、他
の一致比較回路162,164,166の出力は「0」
となる。故にOR回路168の出力信号線593は
「1」になる。また、OR回路170の出力信号線59
1、AND回路172の出力信号線592,AND回路
174の出力信号線590,AND回路180の出力信
号線584は「0」になる。 【0059】信号線592は「0」であり、信号線59
3は「1」であるので、図10に示したように、信号線
540上に有意なデータは出力されない。一方、セレク
タ318は信号線536上の第2命令のB2レジスタ値
を信号線542を介してアドレス加算器324に印加す
る。信号線528からは第2命令の変位がアドレス加算
器に印加される。これにより、時刻T4においては、オ
ペランドアドレスレジスタ120には有意なデータは格
納されない。 【0060】また、IR1レジスタ124,IC1レジ
スタ130,GRX1レジスタ132,GRB1レジス
タ134,IFA1レジスタ136にも有意なデータは
格納されない。 【0061】以降の第2命令の動作では、信号線540
上には有意なデータは出力されないのでアドレス加算器
548は有意なデータを出力しない。したがって、時刻
T4になってもオペランドアドレスレジスタ120には
有意なデータは格納されない。また、IR1レジスタ1
24,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFA1レジスタ136
にも有意なデータは格納されない。 【0062】一方、時刻T4になるとIR2レジスタ1
26には第1命令であるAdd命令の命令語が格納され
ている。この時には、一致比較回路164の出力は
「1」になり、他の一致比較回路160,162,16
6の出力は「0」になる。故に、OR回路168の出力
信号線593とAND回路180の出力信号線584は
「1」になる。また、OR回路170,182の出力信
号線591,596とAND回路172と174の出力
信号線592,590は「0」になる。この時も信号線
592は「0」であり、信号線593は「1」なので信
号線540上には何のデータも出力されない。信号線5
40上には有意なデータが出力されないのでアドレス加
算器548は有意なデータを出力しない。したがって時
刻T5になってもオペランドアドレスレジスタ120に
は有意なデータは格納されない。また、IR1レジスタ
124,IC1レジスタ130,GRX1レジスタ13
2,GRB1レジスタ134,IFAレジスタ136に
も有意なデータは格納されない。 【0063】一方、時刻T5になると、IR2レジスタ
138には有意なデータは格納されていない。この時に
は一致比較回路160,162,164,166の出力
は「0」となる。故に信号線590,591,592,
593,584,596はすべて「0」となる。 【0064】これにより、セレクタ316は信号線53
4上の第2アドレスのX2レジスタ値を信号線540を
介してアドレス加算器324に印加し、セレクタ318
は信号線536上の第2アドレスのB2レジスタ値を信
号から542を介してアドレス加算器324に印加す
る。信号線528からは第2アドレスの変位がアドレス
加算器に印加される。これにより、時刻T6において、
第2アドレスのオペランドアドレスがオペランドアドレ
スレジスタ120に格納される。 【0065】また、IR1レジスタ124,IC1レジ
スタ130,GRX1レジスタ132,GRB1レジス
タ134,IFAレジスタ136には、レジスタコンフ
リクトのない時の動作と同一のデータが時刻T6で格納
される。 【0066】以降の第2アドレスの動作は、レジスタコ
ンフリクトがない場合と同様に進む。 【0067】時刻T4から第1命令の演算がALU33
0で行なわれており、時刻T4とT5の中間でその演算
結果が信号線556を介して連想記憶装置に印加され
る。 【0068】更に、信号線584上の「1」は連想記憶
装置に印加される。これにより、連想記憶装置のIC記
憶部346,IR記憶部348,X2レジスタ値記憶部
350,B2レジスタ値記憶部352,先読み命令アド
レス記憶部354,データ記憶部356,アドレス記憶
部347がそれぞれ信号線580上の第1命令の命令ア
ドレス、信号線564上の第1命令語、信号線578上
の第1命令のX2レジスタ値,信号線576上の第1命
令のB2レジスタ値,信号線574上の第1命令の先読
み時の先読み命令アドレス、信号線556上の第1命令
の演算結果、信号線708上の第1命令のオペランドア
ドレスであり、フラグ記憶部347が「1」であるワー
ドが時刻T5において登録される。 【0069】これにより、連想記憶装置に情報がない場
合の説明を終わる。 【0070】次に、連想記憶に情報がある場合について
説明する。連想記憶には、以前の実行時の先行命令の演
算結果が格納されている場合と、先行命令のメモリ・オ
ペランドが格納されている場合がある。 【0071】まず、連想記憶装置に以前の実行時の情報
結果がある場合を説明する。図7をタイミングチャート
図として用いる。 【0072】演算結果は、ロード命令以外の演算命令で
は第1オペランドと第2オペランド(メモリ・オペラン
ド)に演算を施して求まる。以前の実行時の第1オペラ
ンドは、次に実行した時の第1オペランドと一致しない
可能性があるので、連想記憶内の演算結果は必ずしも正
しいとは言えない。したがって、以下の場合、連想記憶
の演算結果で第2命令の処理を開始し、後に第1命令の
演算結果が求まった時にそれを連想記憶の演算結果と比
較し、不一致の時には第2命令の処理をやり直すという
方法をとっている。 【0073】第1命令から第4命令までの命令先読み、
および第1命令の処理の大部分は、上述のレジスタコン
フリクトがない場合の動作と同じである。すなわち、図
7のタイミングチャート図のうち、第1命令から第4命
令に関するIFA,IBO〜3IFASY,第1命令に関す
るIR/IC,OA/IR1/IC1/GRX1/GR
B1/IFA1,OD/IR2/IC2/GRX2/G
RB2/IFA2,GRのタイミングは、図5のものと
同一である。以下ではそれ以外の部分を説明する。 【0074】まず、時刻TOより先読み命令アドレスレ
ジスタ100に格納されている先読み命令アドレスレジ
スタ100に格納されている先読み命令アドレスは、信
号線500を介して連想記憶装置の先読み命令アドレス
記憶部IFAP354に印加されている。また、時刻T2に
なると第1命令の命令語、命令アドレスX2レジスタ
値、B2レジスタ値がそれぞれ信号線522,530,
540,542を介してそれぞれ連想記憶装置のIR記
憶部348,IC記憶部346,X2レジスタ値記憶部
350,B2レジスタ値記憶部352に印加される。 【0075】連想記憶装置は、上記信号線530,52
2,540,542,500のデータで探索をする。今
は、連想記憶装置に以前の実行時の情報がある場合を考
えているので、時刻T3においてDATALレジスタ158
には第1命令の以前の演算結果が格納され、FLGLレジス
タ157には「1」が格納され、HITLレジスタ156に
は「1」が格納される。更に、この「1」は信号線54
6に印加される。 【0076】時刻T3においてIR1レジスタ124に
は第1命令であるAdd命令の命令語が格納されてお
り、命令レジスタ112には第2命令であるSubtract命
令の命令語が格納されている。したがって、信号線58
2上には第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の出力信号線59
0,AND回路180の出力信号線は「0」になる。 【0077】信号線596はICSVレジスタ158の
セット信号となっており、この信号線が「1」なので時
刻T4においてICSVレジスタ116には第2命令の
命令アドレスが格納されDATASVレジスタ154に
は第1命令の以前の演算結果が格納される。 【0078】信号線592が「1」であり、信号線71
4が「1」であるので、第10図のようにセレクタ31
6は信号線538上の第1命令の以前の演算結果を信号
線540を介してアドレス加算器324に印加し、セレ
クタ318は信号線536上の第2命令のB2レジスタ
値を信号線542を介してアドレス加算器324に印加
する。信号線528からは第2命令の変位がアドレス加
算器に印加される。これにより、時刻T4において、第
2命令のオペランドアドレスがオペランドアドレスレジ
スタ120に格納される。 【0079】また、IR1レジスタ124,IC1レジ
スタ130,GRX1レジスタ132,GRB1レジス
タ134,IFAレジスタ136には、レジスタコンフ
リクトのない時の動作と同一のデータが時刻T4で格納
される。 【0080】以降の第2命令の動作は、レジスタコンフ
リクトがない場合と同様に進む。 【0081】時刻T4から第1命令の演算がALU33
0で行なわれており、時刻T4とT5の中間でその演算
結果が信号線556を介して比較器332に印加され
る。比較器332のもう一方の入力にはDATASVレ
ジスタ154に格納されている第1命令の以前の演算結
果が印加されている。 【0082】ALU330での演算結果が以前の演算結
果と一致するか否かで以下の動作は2通りに分かれる。
まず、一致する場合を説明する。この場合、信号線58
6上には「1」が印加される。この「1」はセククタ3
00と308に入力される。この時、セレクタ300は
信号線502のデータを信号線506に出力し、セレク
タ308は信号線520のデータを信号線518に出力
する。これは、レジスタコンフリクトがない場合の動作
と同一であり、以降の動作はその場合と同じに進んでい
く。 【0083】ALU330での演算結果が以前の演算結
果と一致しない場合を次に説明する。以上の説明ではタ
イミングチャート図としては第7図を用いてきたが、以
下の説明では第8図を用いる。この場合、信号線586
には「0」が印加される。この「0」はセレクタ300
と308に入力される。この時、セレクタ300は信号
線504のデータを信号線506に出力し、セレクタ3
08は、信号線504のデータを信号線518に出力す
る。これにより、時刻T5において、先読み命令アドレ
スレジスタ100にはICSVレジスタ116に格納されて
いた第2命令の命令アドレスの上位20ビットが格納さ
れる。この値は第1命令から第4命令までの先読みアド
レスと同一である。これにより、先読みが実行されて時
刻T6で第1命令から第4命令が命令バッファ104,
106,108,110に格納される。信号線518に
は第2命令の命令アドレスが印加されているので、時刻
T7において命令レジスタ112には命令バッファ(T
LB1)106上の第2命令が格納される。第2命令と
レジスタコンフリクトを起こしていた第1命令は時刻5
において、すでに演算結果をR1フィールドの指示する
レジスタに書込んである。したがって、時刻T7におい
ては、第1命令と第2命令の間にはレジスタコンフリク
トのない場合の動作説明と同じに進んでいく。 【0084】更に、信号線586上の「0」は連想記憶
装置に印加される。これにより、連想記憶装置のIC記
憶部346,IR記憶部348,X2レジスタ値記憶部
350,B2レジスタ値記憶部352,先読み命令アド
レス記憶部354,データ記憶部356,アドレス記憶
部345がそれぞれ信号線580上の第1命令の命令ア
ドレス、信号線564上の第1命令語、信号線578上
の第1命令のX2レジスタ値,信号線576上の第1命
令のB2レジスタ値,信号線574上の第1命令の先読
み時の先読み命令アドレス、信号線556上の第1命令
の演算結果,信号線708上の第1命令のオペランドア
ドレスであり、フラグ記憶部が「1」であるワードが時
刻T5において登録される。 【0085】以上でALU330での演算結果が以前の
演算結果と一致しない場合の説明を終わる。 【0086】更に、これにより、連想記憶装置に以前の
実行時の演算結果がある場合の説明を終わる。 【0087】以下のような状況を考える。まず、第2図
の加算(Add)命令、サブトラクト(Subtract)命令
が実行される。両者間には上述のレジスタコンフリクト
が存在する。加算(Add)命令の演算結果は、上述の
ように、連想記憶320に格納される。次にストア(St
ore)命令が実行される。この命令のストア・アドレス
は上述の加算(Add)命令のオペランド・アドレスと
同じと仮定する。もしもこのストア(Store)命令の実
行時に、連想記憶320の内容(すなわち、上記演算結
果)を変更しないとすると、次にまた上記の加算(Ad
d)命令、サブトラクト命令を実行した場合に、連想記
憶320からは加算(Add)命令の前回の実行時の演
算結果が出力されて、サブトラクト命令で利用されてし
まう。上述のストア(Store)命令により、2度目の加
算(Add)命令で使用されるオペランドデータは変更
されているので、連想記憶320から出力された加算
(Add)命令の前回の実行時の演算結果は、加算命令
の2度目の実行時の演算結果を正しく予測していない。
このように、ストア(Store)命令が実行されて、その
ストア・アドレスが、連想記憶に格納されている命令の
オペランド・アドレスと等しい場合、連想記憶に格納さ
れたこの命令の演算結果は、その命令がそれ以降に実行
される時の演算結果とは異なってくる。ストア(Stor
e)命令が実行された時には、連想記憶内の演算結果を
ストア・データで書換えれば良い。 【0088】なお、この際、2回目のAdd命令の実行
時に連想記憶320の内容が正しくない状況になるの
は、上述のように、1回目のAdd、Subtract命令の実
行時点から2回目のAdd命令の実行時点までの間に、
ストア命令によって、Add命令のオペランドデータが
書き換えられる場合にのみであるので、ストアデータで
連想記憶320の演算結果を書き換えておけば、書き換
えられた連想記憶320のデータは常に正しいことにな
る。その処理を次に述べる。 【0089】連想記憶装置320の説明で既に述べたよ
うに、ストア(Store)命令が実行されると信号線71
2を介して「1」が連想記憶装置に転送される。同時に
信号線708を介してストア(Store)命令のオペラン
ド・アドレス(すなわち、ストア・アドレス)が転送さ
れ、信号線560を介してストア(Store)命令のR1
レジスタの内容(すなわち、ストア・データ)が転送さ
れる。 【0090】この時、連想記憶装置はアドレス記憶部AD
DRがストア・アドレスと等しいワードをすべて探し出
し、等しいワードのデータを記憶部DATAPをストア・デ
ータで書換え、かつ、そのワードのフラグ記憶部を
「0」に書換える。 【0091】以上で、ストア(Store)命令が実行され
た時の処理の説明を終わる。 【0092】次に、連想記憶装置に先行命令の第2オペ
ランド(メモリ・オペランド)がある場合を説明する。
第7図をタイミングチャート図として用いる。 【0093】この場合、上記のようにストア命令が実行
された時に連想記憶内のデータ(第1命令の以前の演算
結果又は第1命令のメモリ・データ(第2オペラン
ド))をストア・データで書換えているので、連想記憶
内の第2オペランドは常に正しい。また、この場合、下
記のようにこの第2オペランドに対して、それ以降第1
命令が実行されるとその実行時の第1オペランドを用い
て演算を施すので、その演算結果は、連想記憶内に格納
されている以前の演算結果とは異なり、正しい。したが
って、この場合には、上述のような、以前の演算結果と
ALUでの演算結果の一致比較及び第2命令のやり直し
処理は不要である。 【0094】なお、このようなストア命令によるストア
データでの連想記憶320内でのデータ書き換えが発生
しておらず、上述のように連想記憶320内に演算結果
(1度目のAdd命令の演算結果)がある場合には、2
度目のAdd命令のの実行時の第1オペランドであるR
1レジスタの値が1度目のAdd命令の時とは異なる可
能性があるので、以前の演算結果とALU330での演
算結果の一致比較および第2命令(Subtract命令)のや
り直し処理は不可欠である。 【0095】第1命令から第4命令までの命令先読み、
および第1命令の処理の大部分は、上述のレジスタコン
フリクトがない場合の動作と同じである。すなわち、第
7図のタイミングチャート図のうち、第1命令から第4
命令に関するIFA,IB0〜3IFASV,第1命令に関
するIR/IC,OA/IR1/IC1/GRX1/G
RB1/IFA1,OD/IR2/IC2/GRX2/
GRB2/IFA2,GRのタイミングは、第5図のも
のと同一である。以下ではそれ以外の部分を説明する。 【0096】まず、時刻TOより先読み命令アドレスレ
ジスタ100に格納されている先読み命令アドレスは、
信号線500を介して連想記憶装置の先読み命令アドレ
ス記憶部IFAP354に印加されている。また、時刻T2
になると第1命令の命令語、命令アドレスX2レジスタ
値、B2レジスタ値がそれぞれ信号線522,530,
540,542を介してそれぞれ連想記憶装置のIR記
憶部348,IC記憶部346,X2レジスタ値記憶部
350,B2レジスタ値記憶部352に印加される。 【0097】連想記憶装置は、上記信号線530,52
2,540,542,500のデータで探索をする。今
は、連想記憶装置に先行命令の第2オペランド(メモリ
・オペランド)がある場合を考えているので、時刻T3
においてDATALレジスタ158には第1命令、すなわち
先行命令の第2オペランドが格納され、FLGLレジスタ1
57には「0」が格納され、HITLレジスタ156に
は「1」が格納される。更に、この「1」は信号線54
6に印加される。 【0098】時刻T3においてIR1レジスタ124に
は第1命令であるAdd命令の命令語が格納されてお
り、命令レジスタ112には第2命令であるSubtract命
令の命令語が格納されている。したがって、信号線58
2上には第1命令のR1フィールドの「5」が印加さ
れ、信号線542には第2命令のX2フィールド「5」
が印加される。第1命令と第2命令以外ではレジスタコ
ンフリクタがないと仮定しているので、信号線558,
526には「5」とは異なる値が印加されている。した
がって、一致比較回路160の出力は「1」になり、他
の一致比較回路162,164,166の出力は「0」
となる。故にOR回路168の出力信号線593とOR
回路182の出力信号線と、AND回路172の出力信
号線172は「1」になる。また、OR回路の出力信号
線591とAND回路174の出力信号線590,AN
D回路180の出力信号線は「0」になる。 【0099】ALU360には、信号線538を介して
第1命令の第2オペランドが入力され、信号線606を
介して第1命令のR1レジスタの内容すなわち第1オペ
ランドが入力され、信号線604を介して第1命令のオ
ペコードが入力される。ALU360はこれにより第1
命令の演算を行い、その演算結果を信号線600上に出
力する。 【0100】信号線592が「1」であり、信号線71
4が「0」であるので、第10図のようにセレクタ31
6は信号類600上の第1命令の演算結果を信号線54
0を介してアドレス加算器324に印加し、セレクタ3
18は信号線536上の第2命令のB2レジスタ値を信
号線542を介してアドレス加算器324に印加する。
信号線528からは第2命令の変位がアドレス加算器に
印加される。これにより、時刻T4において、第2命令
オペランドアドレスがオペランドアドレスレジスタ12
0に格納される。 【0101】また、IR1レジスタ124,IC1レジ
スタ130,GRXレジスタ132,GRB1レジスタ
134,IFA1レジスタ136には、レジスタコンフ
リクトのない時の動作と同一のデータが時刻T4で格納
される。 【0102】以降の第2命令の動作は、レジスタコンフ
リクトがない場合と同様に進む。 【0103】これにより、連想記憶装置に先行命令の第
2オペランドがある場合の説明を終わる。 【0104】次に、本実施例特有の効果を述べる。 【0105】本発明を使用しない場合、先行命令とレジ
スタコンフリクトのある後続命令を実行すると、上述の
動作説明の連想記憶装置に以前の実行の情報がない場合
と同じ動作となり、2周期の空き時間を生ずる。 【0106】本発明を使用すれば空き時間はまったくな
くなるので、レジスタコンフリクト発生時の命令処理性
能が向上する。 【0107】上述の実施例は先行命令の演算結果とし
て、連想記憶内に格納しておいた先行命令の以前の演算
結果又は、連想記憶内に格納しておいた先行命令の第2
オペランド(メモリ・オペランド)に対して先行命令の
第1オペランドを用いて演算を施した結果を用いるもの
であった。しかし、本発明は、連想記憶内には先行命令
の以前の演算結果は格納せず、常に先行命令の第2オペ
ランドを格納しておき、先行命令の演算結果として常
に、その第2オペランドに先行命令の第1オペランドを
用いて演算を施した結果を用いる場合にも適用できる。 【0108】この場合の実施例を図11、図12に示
す。 【0109】この図の連想記憶には、連想記憶に情報が
ない時に図3の信号線556に代って信号線554を介
して先行命令の第2オペランドを記憶し、フラグ記憶部
は「0」とする。このようにすると、常に連想記憶には
先行命令の第2オペランドが格納される。したがって、
連想記憶に第2オペランドが格納されている時には、上
述の実施例のように後続命令が空き時間なく実行でき
る。 【0110】また、図2、図3および図11,図12の
2つの実施例では、ストア命令が実行されるとストア・
データを用いて連想記憶内の情報を書換えている。しか
し、本発明はストア命令が実行された時、そのストア・
アドレスとオペランド・アドレスが一致するワードを無
効化する場合にも適用できる。 【0111】この場合には、第4図の連想記憶320
を、信号線712に「1」が印加された時に、信号線7
08上のストア・アドレスとアドレス記憶部が等しいワ
ードを連想記憶から削除するように構成すればよい。こ
の場合にも、連想記憶に情報が格納されている時には、
上述の実施例のように後続命令は空き時間なく実行でき
る。 【0112】更に、連想キーとして、今まで述べたすべ
てを使うこともできるし、任意の組合せを使うこともで
きる。その際、キー構成要素の一部のビット位置を使う
こともできる。 【0113】 【発明の効果】本発明を使用しない場合、レジスタコン
フリクトを起こす先行命令が開始されてから、後続命令
が開始されるまでに、先行命令のアドレス計算時間、オ
ペランド読出し時間、演算時間がかかる。 【0114】しかし、本発明を用いることにより、連想
キーを予測装置に入力してから予測値が出力するまでの
時間しかかからない。後者の時間は、連想キーに何を用
いるかによって異なるが、先行命令の命令アドレスを連
想キーに用いる最悪の場合でも、その時間は本発明を使
用しない場合より十分短い。
【図面の簡単な説明】 【図1】(A)図は命令形式図、(B)図はロード命令
の例を示す図、(C)図はレジスタコンフリクトを起こ
す二つの命令の例を示す図。 【図2】第1実施例の全体構成の一部を示す図。 【図3】第1実施例の残りの部分を示す図。 【図4】第1の実施例で使用する連想記憶装置の構成
図。 【図5】第1の実施例の動作のタイミングチャート。 【図6】第1の実施例の他のタイミングチャート。 【図7】第1の実施例のさらに他のタイミングチャー
ト。 【図8】第1の実施例のさらに他のタイミングチャー
ト。 【図9】第1の実施例のレジスタコンフリクト検出装置
の構成図。 【図10】第1の実施例のセレクタの動作図。 【図11】第2実施例の全体構成の一部を示す図。 【図12】第2実施例の残りの部分を示す図である。 【符号の説明】 100…先読み命令アドレスレジスタ、304…命令記
憶装置、104,106,108,110…命令バッフ
ァ、112…命令レジスタ、114…命令カウンタ、3
24…アドレス加算器、120…オペランド・アドレス
レジスタ、326…オペランド記憶装置、126…オペ
ランドデータレジスタ、330…ALU、118…レジ
スタファイル、320…連想記憶、322…レジスタコ
ンフリクト検出装置。
フロントページの続き (72)発明者 武内 茂雄 東京都小平市上水本町1479番地 日立超 エル・エス・アイ・エンジニアリング株 式会社内 (56)参考文献 特開 昭60−129839(JP,A)

Claims (1)

  1. (57)【特許請求の範囲】 1.先行命令によってレジスタに書込まれる演算結果を
    用いて後続命令が実行される際に、該演算結果が確定す
    るまで、該後続命令の処理であって該演算結果を用いる
    処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令により前の
    命令の命令アドレス、該先行命令を先読みする際の先読
    みアドレス、該先行命令より前の命令を先読みする際の
    先読みアドレスのすべて又は各々の任意のビット位置デ
    ータの組合せと、該先行命令のメモリ・オペランド・ア
    ドレス決定情報とからなる連想キーとに対応させて該先
    行命令のメモリ・オペランド・アドレスとメモリ・オペ
    ランドを記憶する手段と、 該データ処理装置でストア命令が実行された時に、該ス
    トア命令のストア・アドレスと一致する該メモリ・オペ
    ランド・アドレスが該記憶手段にあるかを探索し、ある
    時には、それに対応する該メモリ・オペランドを該スト
    ア命令のストア・データで書換える連想書込み手段と、 該先行命令が実行された時にその時の該連想キーに基づ
    いて該記憶手段を探索し、該連想キーが記憶されている
    時にはそれに対応する該メモリ・オペランドを出力する
    手段と、 該出力手段より該メモリ・オペランドが出力
    された時には、該メモリ・オペランドに対して該先行命
    令の指定する演算を施し、その演算結果を用いて停止さ
    れている該後続命令の処理を開始する手段を有すること
    を特徴とするデータ処理装置。 2.先行命令によってレジスタに書込まれる演算結果を
    用いて後続命令が実行される際に、該演算結果が確定す
    るまで、該後続命令の処理であって該演算結果を用いる
    処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令により前の
    命令の命令アドレス、該先行命令を先読みする際の先読
    みアドレス、該先行命令より前の命令を先読みする際の
    先読みアドレスのすべて又は各々の任意のビット位置デ
    ータの組合せと、該先行命令のメモリ・オペランド・ア
    ドレス決定情報とからなる連想キーとに対応させて該先
    行命令のメモリ・オペランド・アドレスと演算結果を記
    憶する手段と、 該データ処理装置でストア命令が実行された時に、該ス
    トア命令のストア・アドレスと一致する該メモリ・オペ
    ランド・アドレスが該記憶手段にあるかを探索し、ある
    時には、それに対応する連想キーとメモリ・オペランド
    ・アドレスと演算結果を削除する連想手段と、 該先行命令が実行された時にその時の該連想キーに基づ
    いて該記憶手段を探索し、該連想キーが記憶されている
    時にはそれに対応する該演算結果を出力する手段と、 該出力手段より該演算結果が出力された時には、該出力
    手段よりの該演算結果を用いて停止されている該後続命
    令の処理を開始し、該出力手段よりの該演算結果が該先
    行命令の演算で求まる演算結果と等しい場合には、開始
    した該後続命令の処理を継続し、等しくない場合には、
    該後続命令の処理を無効にし、該先行命令の演算で求ま
    る演算結果を用いて該後続命令の処理を再実行する手段
    とを有することを特徴とするデータ処理装置。 3.先行命令によってレジスタに書込まれる演算結果を
    用いて後続命令が実行される際に、該演算結果が確定す
    るまで、該後続命令の処理であって該演算結果を用いる
    処理を停止させるデータ処理装置において、 該先行命令の命令アドレス又は、該先行命令により前の
    命令の命令アドレス、該先行命令を先読みする際の先読
    みアドレス、該先行命令より前の命令を先読みする際の
    先読みアドレスのすべて又は各々の任意のビット位置デ
    ータの組合せと、該先行命令のメモリ・オペランド・ア
    ドレス決定情報とからなる連想キーとに対応させて該先
    行命令のメモリ・オペランド・アドレスとメモリ・オペ
    ランドを記憶する手段と、 該データ処理装置でストア命令が実行された時に、該ス
    トア命令のストア・アドレスと一致する該メモリ・オペ
    ランド・アドレスが該記憶手段にあるかを探索し、ある
    時には、それに対応する連想キーとメモリ・オペランド
    ・アドレスとメモリ・オペランドを削除する連想手段
    と、 該先行命令が実行された時にその時の該連想キーに基づ
    いて該記憶手段を探索し、該連想キーが記憶されている
    時にはそれに対応する該メモリ・オペランドを出力する
    手段と、 該出力手段より該メモリ・オペランドが出力された時に
    は、該メモリオペランドに対して該先行命令の指定する
    演算を施し、その演算結果を用いて停止されている該後
    続命令の処理を開始する手段とを有することを特徴とす
    るデータ処理装置。
JP6071819A 1994-04-11 1994-04-11 データ処理装置 Expired - Lifetime JP2685713B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6071819A JP2685713B2 (ja) 1994-04-11 1994-04-11 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6071819A JP2685713B2 (ja) 1994-04-11 1994-04-11 データ処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9550485A Division JPH0760384B2 (ja) 1985-05-07 1985-05-07 命令実行方法およびデータ処理装置

Publications (2)

Publication Number Publication Date
JPH076033A JPH076033A (ja) 1995-01-10
JP2685713B2 true JP2685713B2 (ja) 1997-12-03

Family

ID=13471553

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6071819A Expired - Lifetime JP2685713B2 (ja) 1994-04-11 1994-04-11 データ処理装置

Country Status (1)

Country Link
JP (1) JP2685713B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926832A (en) * 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
US7590825B2 (en) 2006-03-07 2009-09-15 Intel Corporation Counter-based memory disambiguation techniques for selectively predicting load/store conflicts

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JPH076033A (ja) 1995-01-10

Similar Documents

Publication Publication Date Title
JP3724580B2 (ja) レジスタ・ファイルのバックアップ方法
KR100248903B1 (ko) 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템
US6230254B1 (en) System and method for handling load and/or store operators in a superscalar microprocessor
US5471598A (en) Data dependency detection and handling in a microprocessor with write buffer
US5907860A (en) System and method of retiring store data from a write buffer
US5016169A (en) Data processor capable of correctly re-executing instructions
US5740398A (en) Program order sequencing of data in a microprocessor with write buffer
US5615402A (en) Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
JPH11272464A (ja) 投機的境界不整列ロ―ド操作方法及び装置
EP0651331A1 (en) A write buffer for a superpipelined, superscalar microprocessor
JPH0496825A (ja) データ・プロセッサ
EP0588252B1 (en) Apparatus for Processing Instructions with Improved Interrupt Handling
US4992932A (en) Data processing device with data buffer control
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
JP2685713B2 (ja) データ処理装置
US7275146B2 (en) Instruction control device and method therefor
JPH0760384B2 (ja) 命令実行方法およびデータ処理装置
JPH0552534B2 (ja)
JP2667851B2 (ja) 情報処理装置
WO1998011484A1 (fr) Processeur de commande a memoire d'historique
EP0292188A2 (en) Cache system
US5396640A (en) Boosting method and apparatus in a parallel computer
KR900002436B1 (ko) 컴퓨터의 파이프라인 처리시의 바이패스 제어를 위한 시스템
JP2877468B2 (ja) 電子計算機
JPH07191911A (ja) アドレス変換装置及びマイクロプロセッサ算出方法

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term