JPH0552533B2 - - Google Patents

Info

Publication number
JPH0552533B2
JPH0552533B2 JP58248681A JP24868183A JPH0552533B2 JP H0552533 B2 JPH0552533 B2 JP H0552533B2 JP 58248681 A JP58248681 A JP 58248681A JP 24868183 A JP24868183 A JP 24868183A JP H0552533 B2 JPH0552533 B2 JP H0552533B2
Authority
JP
Japan
Prior art keywords
osc
operand
store
instruction
read
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
JP58248681A
Other languages
English (en)
Other versions
JPS60138642A (ja
Inventor
Shinya Watabe
Shuichi Abe
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 JP24868183A priority Critical patent/JPS60138642A/ja
Publication of JPS60138642A publication Critical patent/JPS60138642A/ja
Publication of JPH0552533B2 publication Critical patent/JPH0552533B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は先行制御方式をとる情報処理装置に係
り、詳しくは、命令の実行に先立ちメリより先行
して読出す当該命令のオペランドが先行するスト
ア系命令によりメモリ上で変更される場合のオペ
ランドの再読出しを起動する制御手段に関する。
〔発明の利用分野〕
本発明は先行制御方式をとる情報処理装置に係
り、詳しくは、命令の実行に先立ちメリより先行
して読出す当該命令のオペランドが先行するスト
ア系命令によりメモリ上デ変更される場合のオペ
ランドの再読出しを起動する制御手段に関する。
〔発明の背景〕
パイプライン制御方式の情報処理装置において
は、命令のデコード、オペランドの読出し、命令
の実行などの命令処理の各ステージが連続する命
令間でオーバラツプして進行する。したがつて、
後続の命令のオペランド読出しが先行の命令によ
るストアより先行するケースが生じてくる。命令
処理の順序性が要求されるアーキテクチヤのもと
で作られる情報処理装置では、先行する実行中ま
たは実行待ちの命令が変更しようとしている記憶
領域から、その変更前に後続の命令のオペランド
読出しを実行しようとする場合、この矛盾を検出
し、先行の命令による記憶領域の変更が完了する
まで、この後続の命令のオペランド読出しを遅ら
せ、順序性の矛盾解消後、オペランド読出しを行
うことが必要である。一般に、この処理はOSC
(Operand Store Compare)と呼ばれている。
OSCが起つた場合、後続の命令のオペランド読
出しは、OSC解消まで遅らせられるので、命令
のパイプライン処理が乱れ、性能が低下すること
になる。従つて、OSC処理に関しては、正確な
検出、およびOSCが解消した場合には遅らせら
れたオペランド読出しをできるだけ早く実行する
ことを要求される。
以下、第1図によりOSC検出に係る従来の処
理方式を説明する。
第1図において、1は命令のオペランドアドレ
ス(一般には先頭アドレス)を計算するためのア
ドレス加算器である。オペランドアドレスは、例
えば命令のインデツクス値X、ベース値B、デイ
スプレースメント値Dを加算することにより求ま
り、線2を通してアドレスレジスタ3にセツトさ
れる。4は命令のオペランド長を入手するオペラ
ンド長制御回路である。オペランド長は、命令の
オペレーシヨンコードのみから定まる場合、命令
のオペランド長指定フイールドにより直接指定さ
れる場合、あるいは、それ以外に例えば命令の汎
用レジスタフイールドで指定される汎用レジスタ
におかれる場合、等があるが、いずれにしてもオ
ペランド長制御回路4の制御により入手される。
上記命令のオペランドアドレスとオペランド長
は命令のデコードに同期して確定し、線5,6を
通して7のオペランド長加算器に入力される。オ
ペランド長加算器7は、オペランドアドレスにそ
のオペランド長を加算するためのものである。
12−1〜12−nは先行する命令によるスト
アアドレスを格納するストアアドレスレジスタで
あり、各々アドレスレジスタ3およびオペランド
長加算器7の出力が線8,9を通して入力される
2組のアドレスレジスタで構成される。すなわ
ち、ストアアドレスレジスタ12−1〜12−n
は、各々、命令のストアするオペランドの先頭ア
ドレスおよび終了アドレスを格納し、各オペラン
ド毎に変更される記憶領域の区間を保持してい
る。13−1〜13−nはストアアドレスレジス
タ12−1〜12−nに対応したOSC検出回路
であり、フエツチとストアの各オペランドについ
て、ストアにより変更される記憶領域の区間及び
フエツチにより参照される記憶領域の区間を用い
てOSC検出が可能なように構成されている。1
0はOSCが検出された場合、必要な動作を起動
する制御回路である。
次に第1図の動作を説明する。オペランドのス
トアが必要な命令がデコードされた場合、このデ
コードに同期して計算されたストア用のオペラン
ドアドレス(先頭アドレス)はアドレスレジスタ
3、線5,8を経由して、また、同じくデコード
に同期してオペランド長制御回路4の制御の下で
オペランド長加算器7により計算された終了アド
レスは線9を経由して、各々ストアアドレスレジ
スタ12−1〜12−nの1つに順次登録され
る。この時、同時に該当ストアアドレスレジスタ
の有効ビツト(図示せず)をセツトし、以降
OSCの検出のための比較アドレスとして作用せ
しめる。また、この有効ビツトは命令のストア動
作のすべて、換言すれば命令が変更しようとする
記憶領域に対するすべてのストア動作が完了する
とリセツトされる。一方、オペランドのフエツチ
が必要な命令がデコードされた場合、フエツチ用
オペランドの先頭アドレスはアドレスレジスタ3
に求まり、終了アドレスも同様にオペランド長制
御回路4の制御の下でオペランド長加算器7によ
り計算される。
このフエツチ用オペランドの先頭アドレスと終
了アドレスは線8,11を経由してOSC検出回
路13−1〜13−nの入力となり、ストアアド
レスレジスタ12−1〜12−nに登録されてい
るストアの完了していないオペランドの先頭アド
レスと終了アドレスの間にあるか比較され、
OSC検出が行われる。もし、OSCが検出された
場合は、制御回路10に制御が移され、必要な動
作が起動される。
第3図は、第1図の制御回路10の構成例を示
す。OSC検出回路13−1〜13−nの出力線
14−1〜14−nをオアゲート32によりオア
し、オペランド読出し制御回路30の出力である
線22、すなわちオペランド読出しリクエストに
より、ラツチ33にセツトする。ラツト33の出
力である線34が“1”の時、オペランド読出し
制御回路30に対し、オペランド読出しを伴う後
続命令のデコードを抑止する。これは、ラツチ3
3の状態を保持する。すなわち、後続命令によつ
てラツチ33が不当に更新されることを抑止する
為である。ストア制御回路31は、ストア動作完
了信号を線24に出力し、ラツチ33をリセツト
する。線34が“1”の間、OSCを発生した後
続オペランドの読出しを抑止しておくが、線34
が“1”から、“0”に変化したことにより、該
オペランドの読出し起動される。該オペランドの
読出し時、本当は、OSCを発生した先行ストア
を行う命令の完了によつて起動されることが性能
上最適である。ところが、先行するストア命令は
複数個存在することがあるが、本従来技術では最
初に実行される先行ストア動作により後続オペラ
ンド読出しが起動される為、該読出しを実行した
時、再びOSCとなる可能性がある。これは、
OSCを発生した後続オペランド読出しが、複数
個存在しうる先行ストアのうち、コンフリクトを
発生した先行ストアを識別する機構を備えていな
いことによる。
第4図は、本従来技術において、OSC発生時
に複数の先行するストアが存在する時に発生する
問題を例示したものである。D,A,B,E0
E1,Wは命令パイプライン処理を示したもので、
Dは命令デコード、Aはアドレス計算、Bはバツ
フア記憶読出し、Tはデータの演算のユニツトへ
の転送、E0,E1は演算、Wはバツフア記憶への
ストアを示す。本例では、命令1がX番地へのス
トア、命令2がY番地へのストア、命令3がY番
地からのロードの場合と考える。
第4図1は従来技術に基づく命令処理の流れを
示す。サイクル5で命令3によるY番地のバツフ
ア記憶読出しが行われるが、先行命令である命令
2による当該領域の更新が完了していない為、
OSCが検出され、読出し待ちとなる。本従来技
術では、サイクル7での命令1によるストア完了
をトリガとして命令3の読出しがサイクル8で起
動されるが、命令2によるY番地の更新は依然実
行されておらず、再度OSCとなる。但し、サイ
クル8で命令3のストアと命令3の読出しによる
バツフア記憶アクセスが競合するが、読出しが優
先して行われることを前提としている。これは、
読出しの遅れの方がパイプラインの遅れに対する
影響が大きく、性能向上の為、パイプライン処理
において、一般的に採用されている優先順位付け
である。命令3のオペランド読出しは、命令2の
ストア実行の次サイクル(サイクル10)で再度
実行され、この時初めてプログラムで規定された
データを読出すことができる。
第4図2は、本プログラムの理想的な動作例を
示したものである。これは、命令3のオペランド
読出しが、OSCを発生した命令2のストア動作
完了の次サイクルに実行される様、制御すること
が望ましいことを示している。
第1図のOSC検出方式の特徴は、ストアアド
レスレジスタ12−1〜12−nにストアオペラ
ンドの開始アドレスと終了アドレスを登録し、ス
トアおよびフエツチのオペランドを、実際に更新
される記憶領域の区間と実際に参照される記憶領
域の区間で比較してOSCを検出することにより、
OSCの検出を精緻に行う点にある。一方、OSC
の処理効率の向上の為には、第4図2に示したよ
うに、OSCが解消された場合に遅らせられたオ
ペランドの読出しをできるだけ早く実行すること
が要求されるが、この点において従来技術は不十
分であつた。
〔発明の目的〕
本発明の目的は、OSC検出回路による検出結
果を保持し、OSC解消後、該当オペランドの読
出しを直ちに行えるようにして、命令処理効率の
一層の向上を図つた先行制御方式の情報処理装置
を提供することにある。
〔発明の概要〕
命令のデコード後、実行の開始までの間、各オ
ペランド読出しに関連する情報を格納するレジス
タ群を、以下、オペランド読出しレジスタ群と呼
ぶ。
本発明では、ストアアドレスレジスタ群すわな
ちOSC検出回路群とオペランド読出しレジスタ
群のそれぞれに対応した2次元マトリクス構成の
ラツチ群(以下、OSCラツチ群と呼ぶ)を設け、
オペランド読出しリクエスト時に、OSC検出結
果を、その読出しリクエストにより起動されたオ
ペランド読出しレジスタに対応するOSCラツチ
群内のすべてのラツチにセツトする。一方、スト
ア動作完了時に、そのストア動作に係るストアア
ドレスレジスタに対応するOSCラツチ群のすべ
てのラツチをリセツトする。
さらに、本発明では、オペランド読出しレジス
タ毎に対応するOSCラツチ群内のすべてのラツ
チの値を論理和して読出す手段を設け、この読出
し値をオペランド再読出し制御回路へ報告する。
この報告信号は、該当オペランド読出しリクエス
トに対してOSCを発生したすべてのストア動作
の完了後、“0”となる。
これらの構成により、OSCの解消後、直ちに
オペランドをメモリ上から読出すことができ、ま
た、OSCを発生しても後続命令のオペランド読
出しリクエストを抑止しなくてもよく、命令の処
理効率の一層の向上がもたらされる。
〔発明の実施例〕
第2図は本発明の一実施例を示すブロツク図
で、第1図の制御回路10に相当する。第2図に
おいて、線14−1〜14−nは第1図のOSC
検出回路13−1〜13−nのそれぞれに対応し
たOSC検出結果線である。OSCの検出は第1図
で説明した通りであるので、ここでは省略する。
15−11〜15−mnはOSCラツチ群、16−
1〜16−mはオア回路群、17はセレクタ、1
8はオペランド再読出し制御回路、19,20は
デコーダ、21はラツチ、30はオペランド読出
し制御回路、31はストア制御回路である。
オペランド読出し制御回路30は、オペランド
読出しリクエストを線22に出力するとともに、
該オペランド読出しリクエストにより起動するオ
ペランド読出しレジスタ(図示せず)を示すポイ
ンタを線23に出力する。デコーダ19は、オペ
ランド読出しリクエスト線22が“1”のとき、
線23のポインタをデコードし、制御線群26−
1〜26−mの一つを“1”にする。制御線群2
6−1〜26−mはオペランド読出しレジスタ群
の各レジスタに対応し、制御線26−iの“1”
により第i番のオペランド読出しレジスタが起動
されることを示す(1≦i≦m)。
ストア制御回路31は、ストア動作完了信号を
線24に出力するとともに、該ストアの属するス
トアアドレスレジスタ群(第1図の12−1〜1
2−n)の番号を示すポインタを線25に送出す
る。デコーダ20を、ストア動作完了信号線24
が“1”のとき線25のポインタをデコードし、
制御線27−j(1≦j≦n)に“1”を出力す
る。ストア動作完了信号線24は、ストアを行う
命令においてすべてのストア動作が完了した時
“1”となり、同時に対応するストアアドレスレ
ジスタ番号がポインタ線25に示される。
OSCラツト群15−11〜15−mnは、OSC
検出結果を格納する為のラツチの集合である。こ
こで、OSCラツチ15−ij(1≦i≦m,1≦j
≦n)の添字jはストアアドレスレジスタ12−
j、すなわち、OSC検出回路13−jに対応し、
添字iはオペランド読出しレジスタiに対応す
る。OSCラツチ15−ijは、線26−iの“1”
信号により線14−jのOSC検出結果を登録し、
線27−jの“1”信号によりセツトされる。オ
ア回路16−1〜16−mは、オペランド読出し
レジスタ群に対応したm個のORゲートからな
る。ORゲート16−iは、n個のOSCラツチ1
5−i1〜15−inの論理和を出力する。
ラツチ21はオペランド再読出し制御回路18
にOSCの有無状態を報告すべきオペランド読出
しに係わるオペランド読出しレジスタの番号を保
持する。セレクタ17は、ORゲート16−1〜
16−mのm個の出力よりラツチ21の値に対応
して1個を選択する回路であり、選択結果は線2
8を通してオペランド再読出し制御回路18に報
告される。
次に、第2図の動作を説明する。オペランド読
出しの必要な命令がデコードされた場合、オペラ
ンド読出しリクエスト線22が“1”となり、起
動されたオペランド読出しレジスタの番号がポイ
ンタ線23に示される。このポインタ線23の値
がデコーダ19でデコードされ、制御線26−1
〜26−mの該当する線が“1”となる。例え
ば、オペランド読出しレジスタkが起動された場
合、制御線26−kが“1”となる。一方、先行
するすべてのストアを行う命令とこのオペランド
読出しとのOSCが第1図のOSC検出回路13−
1〜13−nにより検出される。OSC検出結果
はストアアドレスレジスタ12−1〜12−n対
応に線14−1〜14−nに出力され、それぞれ
OSCラツチ15−k1〜15−knに登録される。
例えば、このオペランド読出しレジスタkのオペ
ランド読出しとストアアドレスレジスタ12−l
に格納さているストア命令のアドレスの間で
OSCが発生したとすると、OSCラツチ15−kj
(1≦j≦n,j=≠l)には“0”がセツトさ
れ、OSCラツチ15−klに“1”がセツトされ
る。このとき、ラツチ21は値kをとり、ORゲ
ート16−kの出力がセレクタ17を通して線2
8に選択される。線28が“1”であると、オペ
ランド再読出し制御回路18において読出しが保
留され、実行待ち状態となる。この間に後続のオ
ペランド読出しを伴う命令がデコードされた場
合、オペランド読出し制御回路30は、オペラン
ド読出しリクエスト線22を“1”とし、起動さ
れたオペランド読出しレジスタの番号をポインタ
線23に出力して、OSC検出を開始せしめる。
一方、ストアアドレスレジスタ12−j(1≦
j≦n)に格納されたアドレスのストア系命令
は、プログラムで指定された命令の実行順序に従
つて順序実行される。ストアアドレスレジスタ1
2−lに格納された命令の実行が開始された後、
そのすべてのストア動作が完了した時、ストア動
作完了信号線24が“1”となる。この時、ポイ
ンタ線25はlを示し、デコーダ20により制御
線27−lが“1”となる。これにより、m個の
OSCラツチ15−1l〜15−mlがリセツトさ
れる。したがつて、線28が“1”から“0”へ
変化し、待ち状態となつていたオペランド読出し
が、オペランド再読出し制御回路18により、あ
らためて実行される。同時に、ラツチ21には次
に起動されたオペランド読出しレジスタの番号が
セツトされ、そのOSC検出結果がセレクタ17
で選択可能になる。
上記の例では、命令のオペランド読出しリクエ
スト時に1個の先行ストア命令とOSCが発生し
た場合について説明したが、複数の先行ストア命
令とOSCが発行した場合も同様である。ストア
命令のストア動作の完了に同期して対応する
OSCのラツチ15−ijが順序リセツトされ、OSC
を発生したすべてのストア動作が完了した時、線
28が“0”となり、オペランド読出しがあらた
めて実行される。
〔発明の効果〕
本発明によれば、2次元マトリクス構成のラツ
チ群(OSC群)を設け、オペランド読出しリク
エスト時に、OSC検出結果を、そのオペランド
読出しリクエストに対応するOSCラツチ群内の
すべてのラツチにセツトし、一方、ストア動作完
了時に、そのストア動作に対応するOSCラツチ
群内のすべてのラツチをリセツトすることによ
り、OSCの解消後、直ちに該当オペランドをメ
モリ上から読出すことができ、即ち、第4図2の
理想的な動作を実現でき、命令の処理効率の向上
がもたらされ。さらに、2次元マトリクス構成の
OSCラツチ群を設けたことにより、先行のオペ
ランド読出し命令でOSCが発生し、そのオペラ
ンド読出しが保留されている期間にも、後続のオ
ペランド読出しを伴う命令のOSC検出を開始す
ることが可能で、この点からも命令の処理効率の
向上をもたらされる。
【図面の簡単な説明】
第1図は従来の構成例を示すブロツク図、第2
図は本発明の一実施例のブロツク図、第3図は従
来技術の制御回路の構成例を示す図、第4図は従
来技術の問題点を説明する図である。 1……アドレス加算器、3……アドレスレジス
タ、4……オペランド長制御回路、7……オペラ
ンド長加算器、12−1〜12−n……ストアア
ドレスレジスタ群、13−1〜13−n……
OSC検出回路群、15−11〜15−mn……
OSCラツチ群、17……セレクタ、18……オ
ペランド再読出し制御回路、19,20……デコ
ーダ、30……オペランド読出し制御回路、31
……ストア制御回路。

Claims (1)

  1. 【特許請求の範囲】 1 先行制御方式をとる情報処理装置において、 先行するストア系命令のストアアドレスを格納
    するn個の先行ストアアドレスレジスタと、 オペランド読出しリクエスト時に、該オペラン
    ドフエツチアドレスを前記n個の先行ストアアド
    レスレジスタの各先行ストアアドレスと比較し
    て、記憶領域より先行して読出すオペランドが先
    行するストア系命令により変更されること(以
    下、OSCという)を検出するn個のOSC検出手
    段と、 前記OSC検出手段の検出結果を先行するm個
    のオヘランド読出しと先行するn個のストア系命
    令のそれぞれに対応して保持するm×nのOSC
    ラツチ群と、 ストア動作の完了時に、前記m×nのOSCラ
    ツチ群のうち、当該ストア系命令に対応する
    OSCラツチをリセツトする書込み制御手段と、 前記m×nのOSCラツチ群における各オペラ
    ンド読出しに対応したn個のラツチの出力をそれ
    ぞれ論理和するm個のオア回路と、 前記m個のオア回路のうち、次に実行すべきオ
    ペランド読出しに対応したオア回路の出力を選択
    するセレクタと、 前記選択されたオア回路の出力がOSCを示し
    ている場合、それがリセツトされるまで当該オペ
    ランド読出しを抑止する読出し制御手段とを有す
    ることを特徴とする情報処理装置。
JP24868183A 1983-12-27 1983-12-27 情報処理装置 Granted JPS60138642A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24868183A JPS60138642A (ja) 1983-12-27 1983-12-27 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24868183A JPS60138642A (ja) 1983-12-27 1983-12-27 情報処理装置

Publications (2)

Publication Number Publication Date
JPS60138642A JPS60138642A (ja) 1985-07-23
JPH0552533B2 true JPH0552533B2 (ja) 1993-08-05

Family

ID=17181743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24868183A Granted JPS60138642A (ja) 1983-12-27 1983-12-27 情報処理装置

Country Status (1)

Country Link
JP (1) JPS60138642A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2671161B2 (ja) * 1990-03-20 1997-10-29 富士通株式会社 レジスタ干渉チェック方式

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5240946B2 (ja) * 1972-09-06 1977-10-15
JPS54150049A (en) * 1978-05-18 1979-11-24 Fujitsu Ltd Pre-fetch order control system
JPS57113146A (en) * 1980-12-29 1982-07-14 Fujitsu Ltd Instruction refetch system

Also Published As

Publication number Publication date
JPS60138642A (ja) 1985-07-23

Similar Documents

Publication Publication Date Title
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US4584640A (en) Method and apparatus for a compare and swap instruction
JPH0527143B2 (ja)
JPS60179851A (ja) デ−タ処理装置
US6760835B1 (en) Instruction branch mispredict streaming
JPS6215896B2 (ja)
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
JPS59231652A (ja) メモリアクセス・オ−バラツプ検出方式
JP3452771B2 (ja) 命令制御システム及びその方法
JPH0552533B2 (ja)
US4737908A (en) Buffer memory control system
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP2783285B2 (ja) 情報処理装置
JPS6236258B2 (ja)
JP2812610B2 (ja) パイプライン制御方式
JPS60108973A (ja) 配列要素の最小値および最小要素の要素番号を求める方法
JPS59183434A (ja) 命令先取り制御方式
JP3558481B2 (ja) データ処理装置
JP2001154845A (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPS63231627A (ja) 先行制御方式
JPH0475147A (ja) 情報処理システムにおける時間監視装置
JPH10154072A (ja) パイプライン処理装置
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPH0238964B2 (ja)
JPH10254698A (ja) 情報処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term