JPS6284340A - 命令実行方法およびデータ処理装置 - Google Patents

命令実行方法およびデータ処理装置

Info

Publication number
JPS6284340A
JPS6284340A JP9550485A JP9550485A JPS6284340A JP S6284340 A JPS6284340 A JP S6284340A JP 9550485 A JP9550485 A JP 9550485A JP 9550485 A JP9550485 A JP 9550485A JP S6284340 A JPS6284340 A JP S6284340A
Authority
JP
Japan
Prior art keywords
instruction
address
register
operation result
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.)
Granted
Application number
JP9550485A
Other languages
English (en)
Other versions
JPH0760384B2 (ja
Inventor
Toru Shonai
亨 庄内
Eiki Kamata
釜田 栄樹
Shigeo Takeuchi
武内 茂雄
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
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi ULSI Engineering Corp
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 ULSI Engineering Corp, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Priority to JP9550485A priority Critical patent/JPH0760384B2/ja
Publication of JPS6284340A publication Critical patent/JPS6284340A/ja
Publication of JPH0760384B2 publication Critical patent/JPH0760384B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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命令の後続命令の実行が開始されるので、パイ
プライン制御の情報処理装置では高い命令処理性能を実
現することが出来る。
しかし、ある命令(以降では後続命令と呼ぶ)より前に
ある命令(以降では先行命令と呼ぶ)があるレジスタを
変更する命令であり、後続命令がそのレジスタを参照す
る命令である場合(レジスタコンフリクト状層と呼ぶ、
)には、命令処理は上記の様には進まない。すなわち、
先行命令が演算結果をレジスタに書込むまで、もしくは
先行命令が演算結果を生成するまでは、後続命令の処理
全体、少なくともレジスタを参照する部分処理を停止さ
せなければならない。このようなレジストコンフリクト
による後続命令の実行停止は、パイプライン制御の情報
処理装置においては、性能向上の大きな阻止要因となっ
ている。
レジスタ・コンフリクトによる実行停止を短縮化する例
としては、特開昭58−96346がある。
〔発明の目的〕
本発明の目的は、レジスタコンフリクト時の後続命令の
実行停止をなくし、高い命令処理性能を有するパイプラ
イン制御の情報処理装置を提供することにある。
〔発明の概要〕
本発明では先行命令によってレジスタに書込まれる演算
結果を用いて後続命令が実行される際に、該演算結果が
確定するまで、該後続命令の処理であって該演算結果を
用いる処理を停止させるデータ処理装置において、該先
行命令の命令アドレス又は−、該先行命令より前の命令
の命令アドレス、該先行命令を先読みする際の先読みア
ドレス、該先行命令より前の命令を先読みする際の先読
みアドレスのすべて又はおのおのの任意のビット位置デ
ータの組合せと、該先行命令のメモリ・オペランド・ア
ドレス決定情報とからなる連想キーとに対応させて該先
行命令のメモリ・オペランド・アドレスと演算結果と演
算結果であることを示す情報を記憶する手段と、該デー
タ処理装置でストア命令が実行された時に、該ストア命
令のストア・アドレスと一致する該メモリ・オペランド
・アドレスが該記憶手段にあるかを探索し、ある時には
、それに対応する該演算結果を該ストア命令のストア・
データで書換え、該演算結果であることを示す情報をメ
モリ・オペランドであることを示す情報に書換える連想
書込み手段と、該先行命令が実行された時にその時の該
連想キーに基づいて該記憶手段を探索し、該連想キーが
記憶されている時↓こはそれに対応する該演算結果又は
該メモリ・オペランドを出力する手段と、該出力手段よ
り該演算結果が出力された時には、該出力手段よりの該
演算結果を用いて停止されている該後続命令の処理を開
始し、該出力手段よりの該演算結果が該先行命令の演算
で求まる演算結果と等しい場合には、開始した該後続命
令の処理を継続し1等しくない場合には、該後続命令の
処理を無効にし、該先行命令の演算で求まる演算結果を
用いて該後続命令の処理を再実行する手段と、該出力手
段より該メモリ・オペランドが出力された時には、該メ
モリ・オペランドに対して該先行命令の指定する演算を
施し、その演算結果を用いて停止されている該後続命令
の処理を開始する手段を有することを特徴とするデータ
処理装置を提案する。
これにより、レジスタコンフリクト発生時に停止される
後続命令の処理を、連想記憶の出力する情報を用いて開
始できるので、上記目的を達成できる。
〔発明の実施例〕
以下、本発明の一実施例を図に従って詳細に説明する。
まず、第1図Aを使って本実施例で用いる命令形式を説
明する。この命令形式では、各命令語は4バイト長から
構成される。第1バイトはオペコード(Op)を表わす
、第2バイト及び第3バイトの上4ビットは3つのレジ
スタ指示フィールド(R1,X2.B2)を表わす、第
3パイトノ下4ビツト及び第4バイトは変位(B2)を
表わす。
この命令形式では各レジスタ指示フィールドはそれぞれ
4ビツトであり、それぞれ15個のレジスタの1つを指
示する。
命令が5tore命令以外の場合には、この意味は、X
2フイールドの指示する汎用レジスタの内容とB2フィ
ールドの指示する汎用レジスタの内容と変位D2の和を
オペランドアドレスとし、このアドレスの指す主記憶上
のロケーションの内容(第2オペランドと呼ぶ)と、R
1フィールドの指示する汎用レジスタの内容(第1オペ
ランドと呼ぶ)とに対して、オペコードOpで示される
演算を施し、R1フィールドの指示する汎用レジスタに
格納することである。
命令がストア(Store)命令の場合には、上述とは
逆に、第1オペランドである汎用レジスタの内容を、第
2オペランドである主記憶上のロケーションに格納する
なお、この命令形式はIBMシステム(Systsm)
/370の命令形式から引用したものであり、更に詳し
くは″IBMIBMシステムstem) / 370動
作処理(370Principles of 0per
ation)”に示されている。
第1B図は、第1A図で表わされた命令をニューモニツ
クで表わしたものである。
第2図は、レジスタコンフリクトを起している命令列の
例である。先行命令(■)はAdd命令であり、レジス
タ1の内容と、レジスタ2の内容と変位100を加えて
得られるアドレスの内容をレジスタ5の内容と加算して
レジスタ5に格納することを意味する。後続命令(■)
はサブストラクト(Substract )命令であり
、レジスタ1の内容と、レジスタ5の内容と変位150
を加えて得られるアドレスの内容をレジスタ8の内容か
ら引いてレジ〜スタ8に格納することを意味する。
先行命令は演算結果をレジスタ5に書込み、後続命令は
レジスタ5の内容を用いているので、レジスタコンフリ
クトが起きている。
次に第3A図、第3B図を使って実施例の全体構成の概
要を説明する。第3A図と第3B図とを。
結合すると、実施例の全体構成図となる。この実施例は
、先行命令の演算結果として、連想記憶に蓄えた先行命
令の以前の実行での演算結果又は連想記憶に蓄えた先行
命令の第2オペランドに対して演算を施した結果を用い
るものである。
まず、304は命令記憶装置であり、326はオペラン
ド記憶装置である。命令記憶装置304とオペランド記
憶装置はバイト単位に24ビツトのアドレスでアドレス
付けされている。
100は先読み命令アドレスレジスタである。
命令の先読みは、常に命令記憶装置上の4命令語境界か
ら始まる4命令語単位に行われる。したがって先読み命
令アドレスレジスタ(IFA)100には24ビツトの
アドレスのうちの上位20ビツト(ビット0−19)が
格納される。
102は先読み命令アドレスレジスタの遅延レジスタで
ある。
104.106,108,110はそれぞれ命令バッフ
ァIBO,よりI、IB2.IB3であり、命令記憶装
置304から先読みされた4命令語がこの順に格納され
る。
112は命令レジスタであり、114は命令カウンタで
ある。1命令語は命令記憶装置上の命令語境界からの4
バイトに必ず置かれる。したがって、命令カウンタには
24ビツトのアドレスのうちの上位22ビツト(ビット
0−21)が格納される6命令カウンタ114の値は、
その時の命令レジスタ112中の命令語の命令アドレス
となっている。
118は16個のレジスタよりなるレジスタファイルで
ある。
324はアドレス加算器であり、命令語のX2フイール
ドの指示するレジスタの内容すなわち、X2レジスタ値
とB2フィールドの指示するレジスタの内容すなわち、
B2レジスタ値と変位D2を加算する。加算結果はオペ
ランドアドレスレジスタ120に格納される。
122はオペランドデータレジスタであり、330はA
LUである。
124.130,132,134,136はそれぞれ命
令レジスタ122の遅延レジスタ、命令カウンタ114
の遅延レジスタ、X2レジスタ値の遅延レジスタ、B2
レジスタ値の遅延レジスタ値および先読み命令アドレス
の遅延レジスタであり、オペランドアドレスレジスタ1
20にオペランドアドレスが格納される時に、その命令
の命令レジスタ値、命令カウンタ値、X2レジスタ値、
B2レジスタ値およびその命令の先読み時の先読み命令
アドレスが格納される。
126.138,140,142,144はそれぞれレ
ジスタ124,130,132,134゜136の遅延
レジスタであり、オペランドデータレジスタ122にオ
ペランドデータが格納される時に、その命令の命令レジ
スタ値、命令カウンタ値、X2レジスタ値、B2レジス
タ値およびその命令の先読み時の先読み命令アドレスが
それぞれに格納される。
320は連想記憶装置であり、322はレジスタコンフ
リクト検出装置である。
次に、第3A図、第3B図の全体構成図と第5図のタイ
ミングチャート図を使って、レジスタコンフリクトがな
い場合の全体の動作を説明する。
第5図の如く時刻TOより先読みアドレスレジスタには
第1命令から第4命令を先読みする際の先読みアドレス
が格納されているとする。また命令レジスタ112と命
令カウンタ114には時刻T2以前において第1命令の
前の命令、すなわち第O命令の命令語と命令アドレスが
格納されているとする。先読みアドレスレジスタ100
のアドレスは信号l1500を介して命令記憶袋fi!
304に印加され、そのアドレスから始まる4命令語が
信号線506に出力され、第1命令語から第4命令語ま
での4命令語は時刻T1に命令バッファ104.106
,108,110に格納される6ア下レス増加器302
は、先読みアドレスレジスタ100のアドレスを入力と
して、そのアドレスを4命令語分増加させたアドレスを
信号線502に出力する。セレクタ300の選択信号で
ある信号線586の信号は通常「右選択信号」であり(
「右選択信号」以外の値を取る場合は下記で説明される
時だけである)、この時、信号線502の信号がセレク
タ300を通って信号線50Bに出力されて、先読アド
レスレジスタ100に格納される。格納される時刻は時
刻TOの4周期後の時刻T4である。命令バッファ10
4,106゜108.110には次の4命令語が格納さ
れる時刻T5までこの4命令語が格納される。先読みア
ドレスレジスタ100は通常このように4命令語分ずつ
増加されるので、命令バッファ104゜106.108
,110には順々に後続の命令が4命令単位に先読みさ
れて格納されることとなる。
時刻T2以前においては、命令カウンタ114には第O
命令の命令アドレスが格納されていた。
命令カウンタ114の値は信号8530を介してアドレ
ス増加器310に印加されて、1命令語分増加されて、
第1命令の命令アドレスとなる。増加された値は信号線
520を介してセレクタ308に入力される。セレクタ
308の選択信号586は上述したように通常「右選択
信号」であり、この時、信号線520の値はセレクタ3
08を介して信号線518へ出力される。信号線518
の値は命令カウンタ114に格納される。また、その値
はセレクタ306に印加される。セレクタ306は、信
号線518の22ビツトアドレス値のうちの下2ビット
を見て、それが0ならば信号線508のデータが信号、
11516へ出力され、それが1ならば信号線510の
データが信号線516に出力される。又それが2ならば
信号、1l1512のデータが信号516へ出力され、
それが3ならば信号線514のデータが信号8516へ
出力される。こハにより、命令レジスタ前の時刻でセッ
トされた命令バッファの次の命令バッファの内容がセレ
クタ306で選択されて命令レジスタ112に格納され
る0時刻T2においては命令バッファIB○104から
第1命令語が命令レジスタ112に格納されて、同時に
命令カウンタ114には第1命令の命令アドレスが格納
される。
また、IFASV レジスタ102には、先読み命令ア
ドレスレジスタIFALOOの2周期遅れの時刻T2に
、先読み命令アドレスレジスタの値が格納される。
セレクタ312,314には信号線532を介して16
個のレジスタよりなるレジスタファイル118の値が印
加される。セレクタ312には更に信号線524を介し
て命令レジスタ112中の第1命令のX2フイールドの
4ビツトが印加される。セレクタ312はこれによりX
2フイールドの指示するレジスタの値を信号、1X53
4に出力する。セレクタ314には信号線526を介し
て命令レジスタ112中の第1命令の82フイールドの
4ビツトが印加される。セレクタ314はこれによりB
2フィールドの指示するレジスタの値を信号線536に
出力する。信号線592,590゜593.591には
通常「0」が印加されており。
([OJ以外の値が印加されるのは下記で説明する場合
だけである)、この時、第10図に示したセレクタ31
6,318の動作図に従って、信号線534の値はセレ
クタ316を介して信号線540に出力され、信号線5
36の値はセレクタ318を介して信号$542に出力
される。
アドレス加算器にはこのようにして信号線540を介し
て第1命令のX2フイールドの指示するレジスタの内容
が入力され、信号線542を介しては第1命令のB2フ
ィールドの指示するレジスタの内容が入力される。更に
、信号線528を介して命令レジスタ112中の第1命
令の変位D2が入力される。アドレス加算器は上記3つ
の入力値を加算し、加算結果である第1命令のオペラン
ドアドレスを信号線548に出力し、それは時刻T3で
オペランドアドレスレジスタ0A120に格納される。
また同時刻に、IRIレジスタ124には第1命令語が
信号線522を介して格納され、ICIレジスタ130
には第1命令アドレスが信号線530を介して格納され
、GRXIレジスタ132には第1命令のX2レジスタ
値が信号線540を介して格納され、GRBlには第1
命令の82レジスタ値が信号線542を介して格納され
、IPAIレジスタ136には第1命令を先読みした際
の先読み命令アドレスが格納される。
オペランド記憶装置326には信号線550を介してオ
ペランドアドレスレジスタ120中の第1命令のオペラ
ンドアドレスが印加され、信号線552にはそのアドレ
スで示されるロケーションにある第1命令のオペランド
データが出力される。
時刻T4になると、この第1命令のオペランドデ−タは
オペランドデータレジスタ122に格納される。
同時刻に、IR2レジスタ126には、信号線562を
介してIRIR1レジスタ第1命令語が格納され、IC
2レジスタ138には、信号線572を介してICIレ
ジスタ130から第1命令の命令アドレスが格納され、
GRX2R1レジスタ140信号線570を介してGR
XIR1レジスタ1321命令のx2レジスタ値が格納
され、GRB2R1レジスタ142信号線568を介し
てG RB ルラスタ134から第1命令の82レジス
タ値が格納され、I FA2レジスタ144には、信号
ll1A566を介してIFAIレジスタ136から第
1命令語を先読みした際の先読み命令アドレスが格納さ
れ、OA2レジスタ706には、信号線550を介して
OAレジラス120よりオペランド・アドレスが格納さ
れる。
ALU330には3つの入力信号線がある。信号線55
4からは、オペランドデータレジスタ122にある第1
命令のオペランドデータが入力される、信号線594か
らはIR2レジスタ126にある第1命令のオペコード
が入力される。セレクタ328には信号線532を介し
て16個のレジスタよりなるレジスタファイル118の
値が印加され、更に信号線558を介して第1命令のR
1フィールドが印加される。これにより、セレクタ32
8は、R1フィールドによって指示されるレジスタの値
、すなわちR1レジスタ値を信号線560に印加し、そ
れがALU330に入力される。ALUは、信号線56
0からの入力データを第1オペランドデータとし、信号
線554からの入力データを第2オペランドデータとし
て1両者に信号!594に示されるオペコードの演算を
施し、その演算結果を信号線556に出力する。
レジスタファイル118には、信号線556を介して第
1命令の演算結果が印加され、信号線558を介してI
R2レジスタ126にある第1命令のR1フィールドが
印加される1時刻T5になると、上記第1命令の演算結
果はR1フィールドの指示するレジスタ、すなわちR1
レジスタに書込まれる。
なお、命令がストア(Store)命令である時には、
その事実がストア(Store)命令検出器710によ
り検出され信号線712を介してオペランド記憶装置3
26に入力される。これにより、オペランド記憶装置は
信号線708を介して入力されるストア(Store)
命令のオペランド・アドレスに信号牌560を介して入
力されるストア(Store)命令のR1レジスタの内
容が時刻T5になると書込まれる。なお、この時には上
述したR1レジスタへの書込みは行なわれない。
以上により第1命令の処理は終了する。
第2命令の処理は、まず時刻T3に第2命令語が命令レ
ジスタ112に格納され、第2命令の命令アドレスが命
令カウンタICに格納される。以降、第1命令と同様に
順々に処理が進む。
第3命令以降の命令の処理は、前の命令処理の1周期遅
れの時刻で第1.第2命令のように進む。
ただし、命令の先読みは4命令語単位であるので、先読
み命令アドレスレジスタZoo、命令バッファ104.
106,108,110.IFASVレジスタ102へ
の格納はそれぞれ4周期ごとに1度ずつ行なわれる。
以上のように、レジスタコンフリクトがない場合には1
周期ごとに命令処理が進んでいく。
次に、レジスタコンフリクトのある場合の全体の動作説
明に移るが、その前に第4図を用いて、連想記憶装置3
20の説明をする。
実施例における連想記憶装置の記憶容量は10ワードで
ある。
各ワードは、IC記憶部ICP346とIR記憶部IR
P348とX2レジスタ値記憶部GRXP350とB2
レジスタ値記憶部GRBP 352と先読み命令アドレ
ス記憶部IFAP 354とデータ記憶部DATAP 
356とアドレス記憶部ADDRP 345とフラグ記
憶部FLGP 347からなる。
信号線530,522,540.542,500にデー
タを印加すると、連想記憶装置は探索をする。信号線5
30,522,540,542゜500上のデータとI
C記憶部ICP346゜IR記憶部IRP348.X2
レジスタ値記憶部GRXP350.B2L/ジスタ値記
憶部GRBP352 。
先読み命令アドレス記憶部IFAP354のデータがそ
れぞれ全部一致するワードがある時には、一致検出器3
44は「1」を出力してHITLレジスタ156を「1
」にし、かつそのワードのデータ記憶部DATAP 3
56のデータをDATAL レジスタ15gに格納し、
フラグ記憶部FLGP347のデータをFLGLレジス
タ157に格納する。一致するワードがない時は、一致
検出器344は「O」を出力しテ)IITLL/ジXタ
156をrOJ k−する。
一方、信−jt、m584にrl」又は信号Al5s6
に「0」が印加された時には、連想記憶装置は、信号線
580,564,578,576.574゜556.7
08上のデータをそれぞれIC記憶部ICP346.I
R記憶部IRP348.X2L/ジスタ値記憶部GRX
P350.B2レジスタ値記憶部GRBP352 、先
読み命令アドレス記憶部IFAP354、データ記憶部
DATAP 356アドレス記憶部ADDRP 345
のデータとし、フラグ記憶部FLGP347をrl」と
するワードを登録する。その際、IC記憶部ICP34
6.IR記憶部IRP34g。
X2レジスタ値記憶部GRXP350.B2レジスタ値
記憶部GRBP352 、先読み命令アドレス記憶部I
FAP 354のデータが全部一致するワードがすでに
記憶されている時には、そのワードの上に重ね書きされ
る。一致するワードがまだ記憶されていない時には、新
しくワードが割り当てられて登録される。
また、信号線712に「1」が印加された時、すなわち
、ストア(Store)命令が実行された時には、連想
記憶装置は信号線708を介して送られるストア(St
ore)命令のオペランド・アドレスとアドレス記憶部
ADDRPが一致するワードが存在するか検出し、存在
する場合にはそのようなすべてのワードのデータ記憶部
DATAPを信号l&1560を介して転送されるスト
ア(Store)命令のR1レジスタの内容で書換え、
かつ、そのワードのフラグ記憶部FLGPに「0」を記
憶する。
なお、フラグ記憶部FLGPの「1」は、対応するデー
タ記憶部DATAPに以前に命令が実行された時の演算
結果が記憶されていることを意味し、フラグ記憶部FL
GPの「0」は、対応するデータ記憶部DATAPに第
2オペランド・データが記憶されていることを意味する
以上で連想記憶装置の説明を終わる。
次に、レジスタコンフリクトのある場合の動作説明を行
なう。レジスタコンフリクトのある命令としては第2図
の2命令を考え、Add命令が第1命令とし、サブスラ
スト(Substract)命令が第2命令とする。第
3命令以降はこれらの命令との間でレジスタコンフリク
トを起さない任意の命令とする。
本発明では、レジスタコンフリクトを起している先行命
令(以下で考える例では第1命令)の演算結果を、連想
記憶装置記憶した情報を用して求めている。したがって
先行命令を実行する際に、その連想記憶装置に情報があ
るか否かで予測が出来るか出来ないかが決まる。
まず、連想記憶装置に以前の実行時の情報がない場合を
説明する。第6図をタイミングチャート図として用いる
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第6図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3゜IFASV 、第1命令に関する
IR/IC,OA/IRI/ICI/GRXI/GRB
I/IFAI。
OD’/IR2/IC2/GRX2/GRB2/IFA
2.ORのタイミングは、第5図のものと同一である。
以下ではそれ以外部分を説明する。
まず1時刻TOより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは信号、[500
を介して連想記憶装置の先読み命令アドレス記憶部IF
AP354に印加されている。また、時刻T2になると
第1命令の命令語、命令アドレス、X2レジスタ値、B
2レジスタ値がそれぞれ信号8522,530,540
,642を介してそれぞれ連想記憶装置のIR記憶部3
48゜IC記憶部346.X2レジスタ値記憶部350
゜B2レジスタ値記憶部352に印加される。
連想記憶装置は上記信号線530,522゜540.5
42,500のデータで探索をする。
今は、連想記憶装置に以前の実行時の情報がない場合を
考えているので、時刻T3においてHITLレジスタ1
56にはrOJが格納される。更に、この「0」は信号
線546に印加される。
時刻T3においてIRIレジスタ124には第1命令で
あるAdd命令の命令語が格納されており、命令レジス
タ112には第2命令である311)gtract命令
の命令語が格納されている。したがって、信号!582
上には第1命令のR1フィールドの「5」が印加され、
信号線542には第2命令のX2フイールド「5」が印
加される。第1命命と第2命令以外ではレジスタコンフ
リクトがないと仮定しているので、信号線558,52
6には「5」とは異なる値が印加されている。したがっ
て、−数比較回路160の出力は「1」になり、他の一
致比較回路162,164,166の出方はrOJとな
る。故にOR回路168の出力信号線593は「1」に
なる、また、OR回路170の出力信号llA391.
AND回路172の出力信号線592.AND回路17
4の出力信号線590.AND回路180の出力信号線
584はrOJになる。
信号線592はrOJであり、信号線593は「1」で
あるので、第10図に示したように、信号線540上に
有意なデータは出力されない、一方、セレクタ318は
信号線536上の第2命令の82レジスタ値を信号線5
42を介してアドレス加算器324に印加する。信号線
528からは第2命令の変位がアドレス加算器に印加さ
れる。
これにより、時刻T4においては、オペランドアドレス
レジスタ120には有意なデータは格納されない。
また、IRIレジスタ124.ICIレジスタ130、
GRXIL/ジスタ13ラスGRBIL/ジスタ13ラ
スIFAIレジスタ136にも有意なデータは格納され
ない。
以降の第2命令の動作では、信号線540上には有意な
データは出力されないのでアドレス加算器548は有意
なデータを出力しない、したがって、時刻T4になって
もオペランドアドレスレジスタ120には有意なデータ
は格納されない、また、IRIレジスタ124.ICI
レジスタ130゜GRXIL/ジスタ13ラスGRBI
L/ジ、1134゜IFAIレジスタ136にも有意な
データは格納されない。
一方、時刻T4になるとIR2レジスタ126には第1
命令であるAdd命令の命令語が格納されている。この
時には、−数比較回路164の出力は「1」になり、他
の一致比較回路160゜162.166の出力は「o」
になる、故に、OR回路168の出力信号線593とA
ND回路180の出力信号線584は「1」になる、ま
た、OR回路170,182の出力信号線591゜59
6とAND回路172と174の出力信号線592.5
90はrOJになる。この時も信号線592は「O」で
あり、信号線593は「1」なので信号線540上には
何のデータも出力されない、信号線540上には有意な
データが出力されないのでアドレス加算器548は有意
なデータを出力しない、したがって時刻T5になっても
オペランドアドレスレジスタ120には有意なデータは
格納されない、また、IRIレジスタ124゜工Cルラ
スタ130.GRXIレジスタ132゜GRB ルラス
タ134.IFAレジスタ136にも有意なデータは格
納されない。
一方1時刻T5になると、IR2レジスタ138には有
意なデータは格納されていない。この時には一致比較回
路160,162,164,166の出力は「0」とな
る、故に信号線590,591゜592.593,58
4,596はすべて「0」となる。
これにより、セレクタ316は信号線534上の第2ア
ドレスのx2レジスタ値を信号線540を介してアドレ
ス加算器324に印加し、セレクタ318は信号線53
6上の第2アドレスの82レジスタ値を信号から542
を介してアドレス加算器324に印加する。信号線52
8からは第2アドレスの変位がアドレス加算器に印加さ
れる。
これにより、時刻T6において、第2アドレスのオペラ
ンドアドレスがオペランドアドレスレジスタ120に格
納される。
また、IRIレジスタ124.ICIレジスタ130、
GRXIレジスタ132.GRBIレジスタ134.I
FAIレジスタ136には、レジスタコンフリクトのな
い時の動作と同一のデータが時刻T6で格納される。
以降の第2アドレスの動作は、レジスタコンフリクトが
ない場合と同様に進む。
時刻T4から第1アドレスの演算がALU330で行な
われており1時刻T4とT5の中間でその演算結果が信
号線556を介して連想記憶装置に印加される。
更に、信号線584上の「1」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346.
IR記憶部348.X2L/ジスタ値記憶部350.B
2レジスタ値記憶部352゜先読み命令アドレス記憶部
354.データ記憶部356、アドレス記憶部347が
それぞれ信号線580上の第1命令の命令アドレス、信
号線564上の第1命令語、信号線578上の第1命令
のX2レジスタ値、信号線576上の第1命令の82レ
ジスタ値、信号線574上の第1命令の先読み時の先読
み命令アドレス、信号線556上の第1命令の演算結果
、信号線708上の第1命令のオペランドアドレスであ
り、フラグ記憶部347が「1」であるワードが時刻T
5において登録される。
これにより、連想記憶装置に情報がない場合の説明を終
わる。
次に、連想記憶に情報がある場合について説明する。連
想記憶には、以前の実行時の先行命令の演算結果が格納
されている場合と、先行命令のメモリ・オペランドが格
納されている場合がある。
まず、連想記憶装置に以前の実行時の情報結果がある場
合を説明する。第7図をタイミングチャート図として用
いる。
演算結果は、ロード命令以外の演算命令では第1オペラ
ンドと第2オペランド(メモリ・オペランド)に演算を
施して求まる。以前の実行時の第1オペランドは、次に
実行した時の第1オペランドと一致しない可能性がある
ので、連想記憶内の演算結果は必ずしも正しいとは言え
ない、したがって、以下の場合、連想記憶の演算結果で
第2命令の処理を開始し、後に第1命令の演算結果が求
まった時にそれを連想記憶の演算結果と比較し、不一致
の時には第2命令の処理をやり直すという方法をとって
いる。
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第7図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3IFASV 、第1命令に関するI
R/IC,OA/IRI/ICI/GRXI/GRBI
/IFA1゜○D/IR2/IC2/GRX2/GRB
2/IFA2.GRのタイミングは、第5図のものと同
一である。以下ではそれ以外部分を説明する。
まず、時刻Toより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは、信号線500
を介して連想記憶装置の先読み命令アドレス記憶部IF
AP 354に印加されている。また、時刻T2になる
と第1命令の命令語、命令アドレスX2レジスタ値、B
2レジスタ値がそれぞれ信号線522,530,540
,542を介してそれぞれ連想記憶装置のIR記憶部3
48゜ICE憶部346.X2L/ジスタ値記憶部35
0゜B2レジスタ値記憶部352に印加される。
連想記憶装置は、上記信号線530,522゜540.
542,500のデータで探索をする。
今は、連想記憶装置に以前の実行時の情報がある場合を
考えているので、時刻T3においてDATALレジスタ
158には第1命令の以前の演算結果が格納され、FL
GLレジスタ157には「1」が格納され、HITLレ
ジスタ156には「1」が格納される。更に、この「1
」は信号!546に印加される。
時刻T3においてIRIレジスター24には第1命令で
あるAdd命令の命令語が格納されており、命令レジス
ター12には第2命令である5ubstract命令の
命令語が格納されている。したがって、信号線582上
には第1命令のR1フイ4ルドの「5」が印加され、信
号線524には第2命令のX2フイールド「5」が印加
される。第1命命と第2命令以外ではレジスタコンフリ
クトがないと仮定しているので、信号線558,526
には「5」とは異なる値が印加されている。したがって
、−数比較回路160の出力は「1」になり、他の一致
比較回路162,164,166の出力はrOJとなる
。故にOR回路168の出力信号線593とOR回路1
82の出力信号線596と、AND回路172の出力信
号線172は「1」になる。また、OR回路の出力信号
線591゜AND回路174の出力信号線590.AN
D回路180の出力信号線はrOJになる。
信号線596はIC5Vレジスター58のセット信号と
なっており、この信号線が「1」なので時刻T4におい
てIC3Vレジスタ116には第2命令の命令アドレス
が格納されposvレジスタ154には第1命令の以前
の演算結果が格納される。
信号線592が「1」であり、信号線714が「1」で
あるので、第10図のようにセレクタ316は信号線5
38上の第1命令の以前の演算結果を信号線540を介
してアドレス加算器324に印加し、セレクタ318は
信号線536上の第2命令のB2レジスタ値を信号線5
42を介してアドレス加算器324に印加する。信号線
528からは第2命令の変位がアドレス加算器に印加さ
れる。これにより、時刻T4において、第2命令のオペ
ランドアドレスがオペランドアドレスレジスタ120に
格納される。
また、IRIレジスタ124.ICIレジスタ130、
GRXIレジスタ132.GRBIレジスタ134.I
FAIレジスタ136には、レジスタコンフリクトのな
い時の動作と同一のデータが時刻T4で格納される。
以降の第2命令の動作は、レジスタコンフリクトかない
場合と同様に進む。
時刻T4から第1命令の演算がALU330で行なわれ
ており、時刻T4とT5の中間でその演算結果が信号線
556を介して比較器332に印加される。比較器33
2のもう一方の入力にはDATASVレジスタ154に
格納されている第1命令の以前の演算結果が印加されて
いる。
ALU330での演算結果が以前の演算結果と一致する
か否かで以下の動作は2通りに分かれる。
まず、一致する場合を説明する。この場合、信号線58
6上には「1」が印加される。この「1」はセレクタ3
00と308に入力される。この時、セレクタ300は
信号線502のデータを信号線506に出力し、セレク
タ308は信号線520のデータを信号線518に出力
する。これは、レジスタコンフリクトがない場合の動作
と同一であり、以降の動作はその場合と同じに進んでい
く。
ALU330での演算結果が以前の演算結果と一致しな
い場合を次に説明する。以上の説明ではタイミングチャ
ート図としては第7図を用いてきたが、以下の説明では
第8図を用いる。この場合。
信号線586にはrO」が印加される。このrOJはセ
レクタ300と308に入力される。この時、セレクタ
300は信号線504のデータを信号線506に出力し
、セレクタ308は、信号線504のデータを信号線5
18に出力する。これにより、時刻T5において、先読
み命令アドレスレジスタ100にはIC5Vレジスタ1
16に格納されていた第2命令の命令アドレスの上位2
0ビツトが格納され=る。この値は第1命令から第4命
令までの先読みアドレスと同一である。これにより先読
みが実行されて時刻T6で第1命令から第4命令が命令
バッフ7104,106,108.ilOに格納される
。信号線518には第2命令の命令アドレスが印加され
ているので、時刻T7において命令レジスタ112には
命令レジスタ106上の第2命令が格納される。第2命
令とレジスタコンフリクトを起こしていた第1命令は時
刻5において、すでに演算結果をR1フィールドの指示
するレジスタに書込んである。したがって、時刻T7に
おいては、第1命令と第2命令の間にはレジスタコンフ
リクトのない場合の動作説明と同じに進んでいく。
更に、信号線586上の「0」は連想記憶装置に印加さ
れる。これにより、連想記憶装置のIC記憶部346.
IR記憶部34B、X2L/ジスタ値記憶部350.B
2レジスタ値記憶部352゜先読み命令アドレス記憶部
354.データ記憶部356、アドレス記憶部345が
それぞれ信号線580上の第1命令の命令アドレス、信
号線564上の第1命令語、信号線578上の第1命令
のx2レジスタ値、信号a576上の第1命令の82レ
ジスタ値、信号線574上の第1命令の先読み時の先読
み命令アドレス、信号線556上の第1命令の演算結果
、信号線708上の第1命令のオペランドアドレスであ
り、フラグ記憶部が「1」であるワードが時刻T5にお
いて登録される。
以上でALU330での演算結果が以前の演算結果と一
致しない場合の説明を終わる。
更に、これにより、連想記憶装置に以前の実行時の演算
結果がある場合の説明を終わる。
ストア(Store)命令が実行されて、そのストア・
アドレスが、連想記憶に格納されている命令のオペラン
ド・アドレスと等しい場合、連想記憶に格納されたこの
命令の演算結果は、その命令がそれ以降に実行される時
の演算結果とは異なってくる。ストア(Store)命
令が実行された時には、連想記憶内の演算結果をストア
・データで書換えれば良い、その処理を次に述べる。
連想記憶装置320の説明で既に述べたように。
ストア(Store)命令が実行されると信号線712
を介して「1」が連想記憶装置に転送される。同時に信
号線708を介してストア(Store)命令のオペラ
ンド・アドレス(すなわち、ストア・アドレス)が転送
され、信号線560を介してストア(Store)命令
のR1レジスタの内容(すなわち、ストア・データ)が
転送される。
この時、連想記憶装置はアドレス記憶部ADDRがスト
ア・アドレスと等しいワードをすべて探し出し、等しい
ワードのデータ記憶部DATAPをストア・データで書
換え、かつ、そのワードのフラグ記憶部を「1」に書換
える。
以上で、ストア(Store)命令が実行された時の処
理の説明を終わる。
次に、連想記憶装置に先行命令の第2オペランド(メモ
リ・オペランド)がある場合を説明する。
第7図をタイミングチャート図として用いる。
この場合、上記のようにストア命令が実行された時に連
想記憶内のデータ(第1命令の以前の演算結果又は第1
命令のメモリ・データ(第2オペランド))をストア・
データで書換えているので。
連想記憶内の第2オペランドは常に正しい、また、この
場合、下記のようにこの第2オペランドに対して、第1
命令実行時の第1オペランドを用いて演算を施すので、
その演算結果は、連想記憶内に格納されている以前の演
算結果とは異なり、正しい、したがって、この場合には
、上述のような、以前の演算結果とALUでの演算結果
の一致比較及び第2命令のやり直し処理は不要である。
第1命令から第4命令までの命令先読み、および第1命
令の処理の大部分は、上述のレジスタコンフリクトがな
い場合の動作と同じである。すなわち、第7図のタイミ
ングチャート図のうち、第1命令から第4命令に関する
IFA、IBO〜3IFASV 、第1命令に関するI
R/IC,OA/IRI/ICI/GRXI/GRBI
/IFAI。
OD/IR2/IC2/GRX2/GRB2/IFA2
.GRのタイミングは、第5図のものと同一である。以
下ではそれ以外部分を説明する。
まず、時刻Toより先読み命令アドレスレジスタ100
に格納されている先読み命令アドレスは、信号線500
を介して連想記憶装置の先読み命令アドレス記憶部IF
AP354に印加されている。また、時刻T2になると
第1命令の命令語、命令アドレスX2レジスタ値、B2
レジスタ値がそれぞれ信号線522,530,540,
542を介してそれぞれ連想記憶装置のIR記憶部34
8゜IC記憶部346.X2レジスタ値記憶部350゜
B2レジスタ値記憶部352に印加される。
連想記憶装置は、上記信号線530.522・540,
542,500のデータで探索をする。
今は、連想記憶装置に先行命令の第2オペランド(メモ
リ・オペランド)がある場合を考えているので、時刻T
3においてDATALレジスタ158には第1命令、す
なわち先行命令の第2オペランドが格納され、FLGL
レジスタ157には「0」が格納され、IIITLレジ
スタ156には「1」が格納される。更に、この「1」
は信号線546に印加される。
時刻T3においてIRIレジスタ124には第1命令で
あるAdd命令の命令語が格納されており、命令レジス
タ112には第2命令である5ubstract命令の
命令語が格納されている。したがって、信号線582上
には第1命令のR1フィールドの「5」が印加され、信
号線542には第2命令のx2フィールド「5Jが印加
される。第1命命と第2命令以外ではレジスタコンフリ
フタがないと仮定しているので、信号線558,526
には「5」とは異なる値が印加されている。したかって
、−数比較回路160の出力は「1」になり、他の一致
比較回路162,164,166の出力は「0」となる
。故にOR回路168の出力信号線593とOR回路1
82の出力信号線と、AND回路172の出力信号81
72は「1」になる・また、OR回路の出力信号線59
1とAND回路174の出力信号線590.AND回j
l180の出力信号線は「0」になる。
ALU360には、信号l1538を介して第1命令の
第2オペランドが入力され、信号線606を介して第1
命令のR1レジスタの内容すなわち第1オペランドが入
力され、信号線604を介して第1命令のオペコードが
入力される。ALU360はこれにより第1命令の演算
を行い、その演算結果を信号線600上に出力する。
信号線592が「1」であり、信号線714がrOJで
あるので、第10図のようにセレクタ316は信号線6
00上の第1命令の演算結果を信号線540を介してア
ドレス加算器324に印加し、セレクタ318は信号線
536上の第2命令のB2レジスタ値を信号ff154
2を介してアドレス加算器324に印加する。信号線5
28からは第2命令の変位がアドレス加算器に印加され
る。
これにより、時刻T4において、第2命令オペランドア
ドレスがオペランドアドレスレジスタ120に格納され
る。
また、IRIレジスタ124.MCIレジスタ130、
GRXLレジスタ132.GRBIレジスタ134.I
FAIレジスタ136には、レジスタコンフリクトのな
い時の動作と同一のデータが時刻T4で格納される。
以降の第2命令の動作は、レジスタコンフリクトがない
場合と同様に進む。
これにより、連想記憶装置に先行命令の第2オペランド
がある場合の説明を終わる。
次に、本実施例特有の効果を述べる。
本発明を使用しない場合、先行命令とレジスタコンフリ
クトのある後続命令を実行すると、−上述の動作説明の
連想記憶’A置に以前の実行の情報がない場合と同じ動
作となり、2周期の空き時間を生ずる。
本発明を使用すれば空き時間はまったくなくなるので、
レジスタコンフリクト発生時の命令処理性能が向上する
上述の実施例は先行命令の演算結果として、連想記憶内
に格納しておいた先行命令の以前の演算結果又は、連想
記憶内に格納しておいた先行命令の第2オペランド(メ
モリ・オペランド)に対して先行命令の第1オペランド
を用いて演算を施した結果を用いるものであった。しか
し、本発明は。
連想記憶内には先行命令の以前の演算結果は格納せず、
常に先行命令の第2オペランドを格納しておき、先行命
令の演算結果として常に、その第2オペランドに先行命
令の第1オペランドを用いて演算を施した結果を用いる
場合にも適用できる。
この場合の実施例を第11A図、第1]、B図に示す。
この図の連想記憶には、連想記憶に情報がない時に第3
A図、第3B図の信号線556に代って信号線554を
介して先行命令の第2オペランドを記憶し、フラグ記憶
部は「0」とする。このようにすると、常に連想記憶に
は先行命令の第2オペランドが格納される。したがって
、連想記憶に第2オペランドが格納されている時には、
上述の実施例のように後続命令が空き時間なく実行でき
る。
また、第3A図と第3B図および第11A図と第11B
図の2つの実施例では、ストア命令が実行されるとスト
ア・データを用いて連想記憶内の情報を書換えている。
しかし、本発明はストア命令が実行された時、そのスト
ア・アドレスとオペランド・アドレスが一致するワード
を無効化する場合にも適用できる。
この場合には、第4図の連想記憶320を、信号線71
2に「1」が印加された時に、信号線708上のストア
・アドレスとアドレス記憶部が等しいワードを連想記憶
から削除するように構成すればよい。この場合にも、連
想記憶に情報が格納されている時には、上述の実施例の
ように後続命令は空き時間なく実行できる。
更に、連想キーとしては、今まで述べたすべてを使うこ
ともできるし、任意の組合せを使うこともできる。その
際、キー構成要素の一部のビット位置を使うこともでき
る。
〔発明の効果〕
本発明を使用しない場合、レジスタコンフリクトを起こ
す先行命令が開始されてから、後続命令が開始されるま
でに、先行命令のアドレス計算時間、オペランド読出し
時間、演算時間がかかる。
しかし、本発明を用いることにより、連想キーを予測装
置に入力してから予測値が出力するまでの時間しかかか
らない、後者の時間は、連想キーに何を用いるかによっ
て異なるが、先行命令の命令アドレスを連想キーに用い
る最悪の場合でも、その時間は本発明を使用しない場合
より十分短い。
【図面の簡単な説明】
第1A図は命令形式図、第1B図はロード命令の例、第
2図はレジスタコンフリクトを起こす二つの命令の例、
第3A図、第3B図は実施例の全体構成図、第4図は連
想記憶装置の構成図、第5〜8図はタイミングチャート
図、第9図はレジスタコンフリクト検出装置の構成図、
第10図はセレクタの動作図、第11A図、第11B図
はそれぞれ他の実施例の全体構成図である。 100・・・先読み命令アドレスレジスタ、304・・
・命令記憶装置、104,106,108,110・・
・命令バッファ、112・・・命令レジスタ、114・
・・命令カウンタ、324・・・アドレス加算器。 120・・・オペランド・アドレスレジスタ、326・
・・オペランド記憶装置、126・・・オペランドデー
タレジスタ、330・・・ALU、118・・・レジス
タファイル、320・・・連想記憶、322・・・レジ
スタコンフリクト検出装置。

Claims (1)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Child Applications (1)

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

Publications (2)

Publication Number Publication Date
JPS6284340A true JPS6284340A (ja) 1987-04-17
JPH0760384B2 JPH0760384B2 (ja) 1995-06-28

Family

ID=14139425

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0760384B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01187634A (ja) * 1988-01-22 1989-07-27 Hitachi Ltd 情報処理装置
JPH076033A (ja) * 1994-04-11 1995-01-10 Hitachi Ltd データ処理装置
WO1998011484A1 (fr) * 1996-09-13 1998-03-19 Hitachi, Ltd. Processeur de commande a memoire d'historique
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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01187634A (ja) * 1988-01-22 1989-07-27 Hitachi Ltd 情報処理装置
JPH076033A (ja) * 1994-04-11 1995-01-10 Hitachi Ltd データ処理装置
WO1998011484A1 (fr) * 1996-09-13 1998-03-19 Hitachi, Ltd. Processeur de commande a memoire d'historique
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
JPH0760384B2 (ja) 1995-06-28

Similar Documents

Publication Publication Date Title
US4725947A (en) Data processor with a branch target instruction storage
US5202972A (en) Store buffer apparatus in a multiprocessor system
JP3110404B2 (ja) マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
JPH06222990A (ja) データ処理装置
KR20170139659A (ko) 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서
JP3254019B2 (ja) データ先読み制御装置
US5313613A (en) Execution of storage-immediate and storage-storage instructions within cache buffer storage
JPS6284340A (ja) 命令実行方法およびデータ処理装置
US20170262382A1 (en) Processing device, information processing apparatus, and control method of processing device
US7100029B2 (en) Performing repeat string operations
JPH0552534B2 (ja)
JP2685713B2 (ja) データ処理装置
JP2667851B2 (ja) 情報処理装置
WO1998011484A1 (fr) Processeur de commande a memoire d'historique
JPH02214937A (ja) データ処理装置
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPH07191911A (ja) アドレス変換装置及びマイクロプロセッサ算出方法
KR900002436B1 (ko) 컴퓨터의 파이프라인 처리시의 바이패스 제어를 위한 시스템
JP3132566B2 (ja) 命令先行制御装置
JP2621763B2 (ja) 情報処理装置
US6260112B1 (en) Register memory linking
JPS6410858B2 (ja)
JPH0646381B2 (ja) 命令取出し装置
JPH0248733A (ja) 情報処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term