JPS621032A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS621032A
JPS621032A JP61017967A JP1796786A JPS621032A JP S621032 A JPS621032 A JP S621032A JP 61017967 A JP61017967 A JP 61017967A JP 1796786 A JP1796786 A JP 1796786A JP S621032 A JPS621032 A JP S621032A
Authority
JP
Japan
Prior art keywords
instruction
operand
register
address
instructions
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
JP61017967A
Other languages
English (en)
Other versions
JPH0754461B2 (ja
Inventor
Eiki Kamata
釜田 栄樹
Yoichi Shintani
洋一 新谷
Toru Shonai
亨 庄内
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Publication of JPS621032A publication Critical patent/JPS621032A/ja
Publication of JPH0754461B2 publication Critical patent/JPH0754461B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の命令を並列処理する情報処理装置に関
し、特に、パイプラインモードで複数の命令を並列処理
するのに好適な情報処理装置に関する。
〔従来技術〕
複数の命令を並列(本明細書において「並列」は部分的
オーバラップを含む)に処理する方式(例えば、いわゆ
るパイプライン処理方式)によす処理の高速化を図る情
報処理装置において、メインストレージのあるアドレス
からオペランド(ストレージオペランド)を読出す命令
に先行して、当該アドレスへ(オペランド)の書込みを
行なう命令が存在する場合には、後続する続出命令のス
トレージオペランドが先行する書込み命令のストレージ
オペランドと一致する、いわゆるオペランドストアコン
フリクトの状態となり、この先行する書込命令の実行が
完了した後でなければ、後行する読出命令を実行するこ
とができず、そのために処理の進行に渋滞が生じ、並列
処理による高速化の実をあげることができない。この問
題への従来の対策の一つに、先行する書込命令の実行の
途中でそのオペランドを読出命令のオペランドとして取
出すものがあり、例えば、本出願人による特願昭58−
123246号は、演算ユニットの出力を一時的に保持
するワークレジスタから、読出命令のオペランドを取出
すものである。
上記特許出願において用いられている先行する書き込み
命令の例は、10進演算命令のごとく、メインストレー
ジからオペランドをよみ出してそれに演算を施し、その
結果をメインストレージに書き込む命令である。
〔発明が解決しようとする問題点〕
上記技術では、ワークレジスタおよびそれを用いるため
の制御回路が複雑となる。さらに前記技術では、上記ワ
ークレジスタを利用できるのは、後続の書込命令のすぐ
次に上記読出し命令が実行される場合に限られる。した
がって先行する書込み命令と後続の読出し命令の間に他
の命令が実行される場合にも、並列処理の高速化を図る
ことが望まれる。
メインストレージにオペランドを書き込む命令には上記
1o進命令の他に、汎用レジスタにあるオペランド(レ
ジスタオペランド)を演算しないでメインストレージに
書き込むストア命令がある。
本発明はレジスタオペランドをメインストレージに書込
む先行するストア命令が実行中の場合、そのメインスト
レージの同じアドレスからオペランドを読み出す後続の
命令をストア命令によるオペランド書き込み完了前に実
行できる簡単な情報処理装置を提供することを目的とす
る。
上記先行命令と後続命令の間に他の命令がある場合も並
行して実行するのに好適な情報処理装置を提供すること
にある。
〔問題点を解決するための手段〕
このため、本発明では、メインストレージあるいはバッ
ファストレージ等のストレージ手段のあるアドレスから
オペランドを読み出すことを要求する第1の命令が解読
されたときに、実行中の命令の中に、汎用レジスタ内の
オペランドを演算を施さないで、そのアドレスに書き込
む第2の命令があるかを検出する手段と、第2の命令が
検出された場合、該第2の命令によるオペランドの書き
込み完了前に該第2の命令がオペランド読み出しに指定
する汎用レジスタからオペランドを読み出す手段とを設
けた。
さらに本発明の実施例では第1と第2の命令の間に、該
第2の命令で指定された汎用レジスタにオペランドを書
き込む第3の命令があるが否がを検出して、第3の命令
が検出された場合、上記第2の命令の存在についての検
出結果を無効とする手段を設けた。これにより、第1と
第2の命令の間に他の命令があっても、該第1の命令の
ための上記レジスタオペランドの読み出しを、第2の命
令によるオペランドの書き込み完了前に実行可能とした
〔作用〕
上記検出手段により上記第1の命令が検出された場合、
上記オペランド読み出し手段により、第2の命令がオペ
ランド読み出しに用いる汎用レジスタからオペランド読
み出しが行なわれ、その読み出しにオペランドを上記第
1の命令のオペランドとして利用できる。したがって、
従来技術のようなワークレジスタを使用する必要がなく
、装置が簡単である。さらに、本発明の実施例のごとく
第1と第2の命令の間に上記汎用レジスタを書きかえる
第3の命令が存在するかを検出して第2の命令の存在に
ついての検出結果を無効とする手段を用いることにより
、上記第1.第2の命令が離れでいても上記第3の命令
が存在しないがぎり、上記読み出し手段を利用して上記
第1の命令の処理を早められる。
〔実施例〕
以下1本発明をパイプライン処理方式の装置に適用した
場合について説明する。装置の基本的アーキテクチャは
1日立環作所製のMシリーズ機のそれを、例示のために
用いる。
第1図は、本発明による処理装置の一実施例の全体構成
を表す概略のブロックダイヤグラムである。命令レジス
タlは、実行すべき命令と保持する。命令デコーダ2は
、命令レジスタ1に保持されている命令を解読して、装
置内各部へ制御信号100を送出する。汎用レジスタ群
5は、一群のレジスタから成り、主に、頻繁に用いられ
るデータを保持するために用いら九る。バッファストレ
ージ7は、メインストレージ12の一部の写しを保持す
る高速の記憶装置である。アドレス加算器3は、メイン
ストレージ12から読出すオペランド及びメインストレ
ージ12へ格納する演算結果のストレージアドレスを計
算する。アドレスと変換回路6は、アドレス加算器3で
得られた論理アドレスと対応する物理アドレスに変換し
てバッファストレージ7をアクセスする。演算ユニット
4は、命令で指定された演算を、汎用レジスタ5または
バッファストレージ7から読出されたオペランドに対し
て施こし、演算結果を汎用レジスタ5及びバッファスト
レージ7に格納する。ステージ制御回路11は、命令を
複数のステージに分けてパイプライン的に実行されるよ
うに制御するための回路で、いろいろなレジスタのセッ
ト信号の出力タイミングを制御する。
SOW制御回路8と○SC検出回路9、オペランドセレ
クタIOは本発明の特徴的回路であるが、これらについ
ては後述する。メインストレージ12は大容量の記憶装
置であり、処理すべきすべてのデータが置かれる。しか
し、実際の命令処理時には、必要なデータは、バッファ
ストレージ7に転送されており、大部分のストレージア
クセスは、バッファストレージ7に対して行われる。し
たがって、以下では、メインストレージ12とバッファ
ストレージ7との違いについて特に配慮しないこととす
る。
本実施例で用いる命令の型区分について説明する。
W現命令:演算結果をメインストレージ12に書き込む
ことを要求する命令。
S型命令:オペランドを汎用レジスタ群5からよみ出し
、演算しないでそのままメインストレージ12に書き込
むことを要求する命令。前述したストア命令のことであ
る。
F現命令:オペランドをメインストレージ12から読み
出すことを要求する命令。
C型命令:演算結果を汎用レジスタ群5に書き込むこと
を要求する命令。
S型命令はW型でもある。
メインストレージ12からオペランドを読み出し、その
オペランドとそのまま、あるいはそれに演算を施こして
、メインストレージ12に書き込む命令は、F現命令で
あって、かつ、W現命令である。このような命令は第1
図に示した命令フォーマット(RX型とよばれる)と別
の、SS型というフォーマットを有する。また、メイン
ストレージ12からオペランドを読み出し、そのオペラ
ンドをそのまま、あるいは、それに演算を施して汎用レ
ジスタに書き込む命令は、F現命令であって、かつ、C
型命令である。汎用レジスタからオペランドを読み出し
、それに演算を施し、結果を汎用レジスタに書き込む命
令は、C型命令であるが、F現命令ではない。このよう
な命令は第1図に示した命令フォーマットと異なる。R
R型というフォーマットを有している。
本実施例における装置は上述したRX型、SS型、RR
型の命令のいずれも実行可能であるが、以下では簡単化
のためにRX型命令に関してのみその動作を説明する。
F型又はS型の命令の例は第1図の命令レジスタ1に示
されている。OP部IAは演算の種類を指定し、R1,
X2.B2の各部IB〜IDはそれぞれ汎用レジスタ群
5内の一つの汎用レジスタを指定し、D2部IEはスト
レージアドレス決定のためのディスプレイメントを指定
する。D2部IEの内容は、アドレスか加算器3を用い
て、X2部及び82部の指定する汎用レジスタの内容(
以下(X 2)、 (B 2)と表わす)と加算さ九で
論理アドレスADRとなる。この型の命令フォーマット
を存する命令は、通常、R1部IBが指定する汎用レジ
スタの内容(R1)を第1オペランドとし、論理アドレ
スADRで指定されメインストレージ7の内容を第2の
オペランドとし、これら二つのオペランドにOP部IA
が指定する演算を行ない、その結果をR1部IBが指定
する汎用レジスタに格納することを指示する。したがっ
て、この場合は、F型でかつC型である。ロード命令の
場合は、論理アドレスADRが指定するメインストレー
ジ12の内容がR1部IBが指定する汎用レジスタにそ
のまま書き込まれる。したがってこの場合もF型でかつ
C型である。しかし、ストア命令の場合は、R1部IB
が指定する汎用レジスタの内容(B1)がそのまま論理
アドレスADRが指定するメインストレージ12内位置
に書込まれる。したがってこの場合はS型である。
第2図は、パイプライン処理方式における命令処理の標
準的な流れを示す。命令処理は複数の処理ステージに分
割して実行され、そして、各処理ステージが相次ぐ複数
の命令に連続的に適用され、かくて全処理ステージが並
列に動作することにより、総合的な処理時間が短縮され
る。各処理ステージの処理時間をサイクルと呼び、これ
が処理時間の単位となる。1個の命令に着目すれば、処
理は、サイクルごとに、D、A、L、E、Pの各ステー
ジを経て進行する。W型(S型を含む)の命令の場合に
は、Pステージの後に更にSステージが追加される。D
ステージでは命令デコーダ2による命令デコーダとアド
レス加算器3によるアドレス計算が行なわれ、Aステー
ジではアドレス変換回路6によるアドレス変換が行なわ
れる。Lステージではバッファストレージ7又は汎用レ
ジスタ5からのオペランド読出しが行なわれ、Eステー
ジでは演算の実行が行なわれ、そしてPステージではC
型命令の場合に演算結果の汎用レジスタへの格納が行な
われる。W型の命令の場合には、P及びSステージでバ
ッファストレージ7への書込みが行なわれる。
第3図は、本発明の効果が発揮される命令列の一例を示
す。第1の命令STはストア命令の例で、汎用レジスタ
群5の2番(以下GR2と略記)の内容をバッファスト
レージ7のQ番地(但しQはST全命令ついての(X2
)+ (B2)+D2の値である)に書込む。第2の命
令Aは加算命令の例でGRIの内容とバッファストレー
ジ7のP番地(但し、PはA命令についての(X2)+
 (B2)+D2の値である)の内容を加算して、その
結果をGR2に格納する。第3の命令りはロード命令の
例で、バッファストレージ7の同じQ番地の内容を読出
して、GR3に格納する。
第4図は、第1図の装置が第3図の命令列を実行すると
きの概略のタイムチャートである。時間軸はサイクルを
単位として目盛られており、各サイクルは初期(図の左
端)から順にC1,C2゜C3,・・・と名付けられて
いる。
C1でST全命令Dステージが実行される。
C2に入ると、ST全命令Aステージに進み、次のA命
令のDステージが開始される。C3になると、ST全命
令A命令はそれぞれLステージとAステージに進み、L
命令のDステージが開始され、以下同様にして、3個の
命令の並列処理が進行する。
L命令がバクファストレージ7から読出すべきオペラン
ドは、ST全命令バッファストレージ7に書込むので、
それがバッファストレージ7中で確定するのはC6であ
る。したがって、従来技術に従がいし命令のオペランド
をバッファストレージ7から読出すこととすると、それ
ができるのは、C7以降である。従来技術ではこのよう
に、バッファストレージ7中でオペランドが確定しない
ために待機状態が生じる。これを、オペランドストアコ
ンフリク1へ(以下○SCと略記)という。しかるに、
本発明によれば、SOW制御回路8゜O8C検出回路9
.オペランドセレクタ1oが機能することによってST
全命令よるバッファストレージ7へのオペランドの書込
みを待つことなく、ST全命令指定する汎用レジスタG
R2の内容をよみ出す。したがってL命令のEステージ
をC6から開始することができる。
この場合、A命令は汎用レジスタGR2の内容をかきか
えないので、ST全命令バッファメモリTに書き込んだ
オペランドと同じオペランドを汎用レジスタGR2から
読み出すことができる。もし、A命令が汎用レジスタG
R2をかきかえる命令の場合、第4図の点線に示すよう
に、L命令のしステージは、従来と同様、ST全命令よ
るバッファストレージ7へのオペランド書き込みが終了
した後のC7から開始され、このときはバッファストレ
ージ7からオペランドが読み出される。第1図のオペラ
ンドセレクタ10はこのように汎読レジスタ群5又はバ
ッファストレージ12から読み出されたオペランドを切
り換えて演算二二ソ1へ4に供給するもので、SoW制
御回路はA、L命令のごとく、F型命令解読されたとき
に、それよリ前に、同じストレージアドレスにオペラン
ドをff<ST全命令ないか否かを検出してこのセレク
タ10の動作を制御するものである。第1図の○SC検
出回路は、オペランドストアコンフリクトを検出回路で
、これについては後に詳細に説明する。
なお、第4図において、ST全命令次にL命令が屏読さ
れた場合は、L命令のEステージはC5サイクルからな
される。このため従来より3サイクル早くL命令を完了
できる。
第5A図と5B図は組合さって、第1図の処理装置を詳
しく示したブロックダイヤグラムである。
実行すべき命令は、周知の機4iW(図示省略)により
命令レジスタ1に送られて保持される。
命令デコーダ2は、命令レジスタ1に保持された命令を
解読して、各種の制御信号100を生成し、装置の各部
に送出する。これらの信号中、本実施例の説明に関係が
あるのは、次のものである。
○PC=命令のOP部IAに対応する制御信号であり、
演算ユニット4で行なうべき演算の種類を指定する。
WRP:命令がW現命令であることを示す。
STP :命令がS型命令であることを示す。
FTP :命令がF現命令であることを示す。
CHP :命令がC型命令であることを示す。
OPL:オペランドの長さを示す。これは命令のOP部
IAにより決定される。
RCN :演算結果を格納すべき汎用レジスタ5の番号
を指定する。
RIN:第1オペランドとして読出すべき汎用レジスタ
5の番号を指定する。
汎用レジスタ5は、一群のレジスタからなり、B2.X
2で示されるレジスタの内容を(B2)。
(X2)として、それぞれアドレス加算器3に送出する
アドレス加算器3は、汎用レジスタ5から送られてくる
ベースレジスタ、インデクスレジスタの内容(B 2)
、  (X 2)と、ディスブレースメントD2とを加
算し、オペランドアドレスADRを生成する。ADRは
、S型命令において、演算結果を書込むべきストレージ
アドレスを指定し、F現命令において、第2オペランド
を読出すべきストレージアドレスを指定する。
SOW制御回路8は、先行するS型命令(例えば、第3
図のST全命令が書込みを行うストレージ領域に、後行
するF現命令が読出しを行うストレージ領域がすべて含
まれるか否かを、ベースレジスタ番号、インデクスレジ
スタ番号、ディスブレースメン1へ、オペランド長など
、命令で指定されるアドレス情報を用いることによって
、Dステージという早期に検出する。また、その時、S
型命令がオペランドを読出すべき汎用レジスタ5の内容
が当該S型命令以後の命令(例えば第3図のA命令)に
よって変更されていないかどうかを調べ、変更されてい
なければ、処理中のF現命令のオペランドを、バッファ
ストレージ7からではなく、当該汎用レジスタ5から直
接読出させる(これを、ストレージ・オペランド・ラッ
プアラウンドと呼ぶ。)ための制御を行う。つまり、ス
トレージオペランドラップアラウンドを行うことを指示
するSOW番号を生成し、同時に、先行するS型命令が
指定する汎用レジスタ番号R2NをF現命令が読出すべ
き汎用レジスタ5の番号として出力する。また、後述す
る○SC検出回路9が検出するオペランドストアコンフ
リクトの抑止信号S OW i  (i = 1− n
 )を出力する。SOW制御回路8については、その構
成を含め、後に詳しく説明する。
以上で命令のDステージが終了し、命令のAステージの
開始時に命令デコーダ2の出力とSOW制御回路8の出
力はレジスタ2LAにセットされ、アドレス加算器3の
出力ADRはレジスタ31Aにセットされる。これらの
レジスタへのセット番号はステージ制御回路11により
与えられる。
アドレス変換回路6は、アドレス加算器3で得られた論
理アドレスADRをレジスタ31Aを介して受けとり、
これを物理アドレスRADに変換する。
○SC検出回路9は、従来と同様レジスタ31Aから入
力されるアドレス加算器3で得られた物環アドレスAD
Rを用いて、先行するW型(S型を含む)命令と後行す
るF現命令との間に発生するオペランドストアコンフリ
クトを検出する。しかし、SOW制御回路8から○SC
抑止信号5OWi(i=l〜n)が出力されている場合
は、オペランドストアコンフリクトの検出が抑止される
。オペランドストアコンフリクトが検出された先行する
W現命令のうち、1つでもオペランドストアコンフリク
トが抑止されていない命令があると、OSC検出回路9
は、○SC検出信号OSCをステージ制御回路11に送
出する。O3C検出回路9については、後に詳述するが
、先行するW現命令が書き込みを行うストレージ領域に
後続するF現命令が読み出しを行うストレージ領域が重
複する場合を検出し、後行するF現命令のためのLステ
ージを、先行するS型命令によるオペランド書き込み終
了後に実行すべきことをステージ制御回路11に教える
第6A〜6D図は、W型(S型を含む)命令とF現命令
のストレージ領域の重なりを示している。
第6A−D図のいずれかの場合に、オペランドストアコ
ンフリクトが発生しており、O8C検出回路9において
、オペランドストアコンフリクトが検出される。SOW
制御回路8は、第6A図の場合にストレジオペランドラ
ップアランドを行うことを指示し、O8C検出回路9で
検出されたオペランドストアコンフリクトは抑止される
。このことは、後に、○SC検出回路9を説、明すると
き、更に詳しく述べる。
以上のようにして、命令のAステージが終了する。○S
C検出回路9により信号O8Cが出力されていないとき
には、ステージ制御回路11はAステージの終了時にレ
ジスタ2LL、61.Lにセット信号を送る。この結果
、レジスタ2LAからの信号○PC,WRP、STP、
FTP、CHP。
OPL、RCN、RIN、R2NおよびSOWはレジス
タ21Lにセットされ、アドレス変換回路6からの物理
アドレスRADはレジスタ61LにセラI−される。こ
うして、命令のしステージが開始される。
一方、信号O8Cが出力されている間は、これらのレジ
スタへのセット信号は出力されず、Lステージは開始さ
れない。
以上から明らかなとおり、第6A図の場合には。
Lステージは、Aステージの終了とともに始まるが、第
6B〜6D図の場合には、Lステージは。
先行するW現命令のオペランド書き込みが終了するまで
開始されない。
Lステージにおいては、通常レジスタ21Lにセットさ
れたレジスタ番号RINが線207Lを介して汎用レジ
スタ群5に送られ、第1オペランド○P1が線504L
を介して読み出され、レジスタ21Eに供給される。一
方、レジスタ61L内の物理アドレスRADはバッファ
ストレージ7に送られ、第2オペランド02Sが読み出
され、オペランドセレクタ10に送られる。
オペランドセレクタ10は、通常、バッファストレージ
7からのオペランド02Sを選択する。
選択されたオペランドは、第2オペランドOP2として
、レジスタ21Eに送出される。
F現命令の場合には、レジスタ21Lから出力される先
行するS型命令のレジスタ番号R2Nにより汎用レジス
タ5からオペランド02Rが読み出される。SOW制御
回路8から出力されたSOW信号がレジスタ2LL内に
あればオペランドセレクタlOは、汎用レジスタ5から
のオペランド02Rを選択する。
なお、S型命令(ストア命令)の場合、オペランドセレ
クタ10の出力である第2オペランド○P2は利用され
ない。
ステージ制御回路11は、レジスタ21L。
61Lにセット信号を出力した次のサイクルにレジスタ
21Eにセット信号を供給する。こうして。
レジスタ21Eには、レジスタ21Lから与えられるO
PL、WRP、STP、FTP、CHP。
○PL、RCNと汎用レジスタ5から読み出された第1
オペランドoPlと、オペランドセレクタ10から入力
される第2オペランドOP2がセットされ、Eステージ
が開始される。
演算ユニット4は、通常は○PC信号で指示された演算
を、第1オペランド○P1と第2オペランドOP2に対
して施す。ただし、S型命令の場合、汎用レジスタ5か
ら読み出された第1オペランドを演算器5はそのまま出
力する。またF現命令の一つであるロード命令の場合、
バッファストレージ7から読み出された第2オペランド
を演算器5はそのまま出力する。
こうして、Eステージが終了したときに、演算結果R3
Tはレジスタ21P、61Pにセットされ、Pステージ
が始まる。
C型命令の場合、レジスタ2IPにセットされた演算結
果R8Tは、汎用レジスタ群5へ書込みレジスタ番号R
CNとともに送ら九、そこにセラ1−される。一方、W
現命令の場合、レジスタ61Pにセラ1−された演算結
果R8Tは次のSステージにおいてレジスタ61Sを介
してバッファストレージ7にセットされる。
以上から明らかなように、あるF現命令についてSOW
制御回路8において第6A図の場合を検出した場合には
、先行するS型命令が読み出す汎用レジスタの番号R2
Nに基づき、Lステージにおいて必要とするオペランド
汎用レジスタから読み出すことができる。
第7A、7B図は、組み合わさって第5A図におけるS
oW制御回路8の構成例を示している。
SOW制御回路8内には、その時点でデコードされてい
る命令と、その命令よりもi命令先行して実行されてい
る命令との間で発生しているオペランドストアコンフリ
クトについて、ストレジオペラントラップアラウンドを
行えるか否かを判定するSOW判定回路800−i  
(i=1−n)と。
各SOW判定回路800−iに対応した命令のデコード
情報を保持する直列接続されたレジスタ810−i(i
=1〜n)とを有している。命令レジスタ1にセットさ
れ、命令デコーダ2によってデコードされた命令のデコ
ード情報は、Aステージに同期して、レジスタ810−
1にセットされる。そして、命令のステージを進むにつ
れて5命令のデコード情報は、順次、レジスタ8】O−
1→810−2→・・・→81. O−nにセットされ
る。
したがって、レジスタ810−+  (i =I −n
)には、その時点でデコードされている命令よりも。
命令先行している実行中の命令のデコード情報が保持さ
れていることになる。
レジスタ810−iにセットされる命令のデコード情報
は、第1オペランドのレジスタ番号RIN、第2オペラ
ンドのアドレス情報X2.B2、B2.D2+L、そし
て、S型命令であることを示すSTP信号である。ここ
で、D2+Lは、第2オペランドのディスプレースメン
トの末尾を示しており、加算器820によって、ディス
プレースメントD2とオペランド長○PLを加算して得
る。さらに、レジスタ810−iには、Uビットが付加
されている。Uピッ1〜がセットされているレジスタ8
10−iは、その中のレジスタ番号RIN、X2.B2
を有する汎用レジスタの内容を変更する命令がそのレジ
スタ810−iに対応する命令より前には存在しないこ
とを示している。
Uビットがリセソ1−さ九ているレジスタ81〇−1に
接続さ扛たSOW判定回路800−iは、ストレジオペ
ラントラップアラウンドが行えないことを常に指示する
。後に詳細に説明するように、SOW制御回路8は、後
続のF現命令が指定するレジスタ番号X2.B2と、先
行するS型命令が指定するレジスタ番号X2.B2とを
比較して、第6A図の場合に該当するかを検出している
。このために、先行するS型命令と後続するF現命令の
間に先行する命令が指定するレジスタ番号X2゜B2の
レジスタを書きかえる命令がないことを前提としている
。したがってこのようなX2またはB2で示される汎用
レジスタの内容が先行するS型命令と後続のF現命令の
間の命令により変更されると、X2.B2の比較が無意
味となる。また、RINで示される汎用レジスタの内容
が変更されると、先行するS型命令がバッファストレー
ジ7に書くオペランドの代りにRIN番のレジスタ内の
オペランドを利用すると、命令の実行結果が誤ったもの
になるからである。
第8図は、SOW判定回路800− iの内部購成およ
びレジスタ810−iを示している。
SOW判定回路800−iは、その時点でデコードされ
ている命令と、その命令よりもし命令先行している命令
との間で発生するオペランドストアコンフリクトについ
て、ストレージオペランドラップアラウンドを行えるか
否を判定し、また、レジスタ810− iには、先行し
ている命令のデコード情報が保持されていることは、前
述した通りである。以下の説明では、その時点でデコー
ドされている命令のデコード情報は添字なしで表わし、
その命令よりもi命令先行している命令のデコード情報
は添字iを付して表わすこととする。例えば、ベースレ
ジスタ番号はそれぞれB2.B2iと表わす。
その時点でデコードされている命令と、その命令よりも
i命令先行している命令との間で発生するオペランドス
トレージコンフリクトについて、ストレージオペランド
ランプアラウンドを行う条件は、次の4つである。
(1)デコードされている命令がF現命令である(2)
先行している命令がS型命令である。
(3)F現命令のオペランドのストレージ領域がS型命
令のオペランド分ストレージ領域に含まれる(第6A図
) (4)S型命令が読出したレジスタの内容が未だ変更さ
れていない ここで、(3)については、アドレス計算後のオペラン
ドアドレスを用いるのではなく、命令で指定されている
インデクスレジスタ番号、ベースレジスタ番号、ディス
プレースメントウオペランド長などのアドレス情報を用
いるので、(3)を成立させるための十分条件は、次の
ようになる。
(3・1)F現命令とS型命令のインデクスレジスタ番
号が等しい (3・2)F現命令とS型命令のベースレジスタ番号が
等しい (3・3)ディスプレースメントとオペランド長により
得られるストレージ領域について、F現命令のスj−レ
ージ領域がS型命令のストレージ領域に含ま九る(第6
A図) (3・4)S型命令のベースレジスタ、インデクさで、
(1)および(2)は、それぞれ、FTP= ’1’ 
、STP i = ’1″ ということである。(3・
1)、(3・2)は、X 2 = X 2 i 。
B2=B2iということであり、比較器830−t、8
31−iによりチェックされる。また、(3・3)は、
D2≧D2iかつD2+L:5D2+L+ということで
あり、比較器832− iによりチェックされる。そし
て、(3・4)と(4)は、ともに、Ui=’l’  
ということである。これらの条件は、ANDゲート85
0−iに入力され、すべてが成立しているとき、ストレ
ージオペランドラップアラウンドが行えると判定し、S
 OW i信号を出力する。また、先行しているS型命
令が読出したレジスタの番号をRI N Iとして出力
する。
次に、レジスタ810−iに付加されたUビットの制御
について述べる。命令がデコードされ、レジスタ810
−1にセットされるとき、Uビットは′1′にセットさ
れる。その後、レジスタ810−4にセットされている
レジスタ番号RINi、X2 i、B2 iで示される
レジスタの内容に変更・があると g O7にリセット
される。Uビットがリセットされる条件は、次のように
なる。
(1)デコードされている命令がC型命令である(2)
C型命令が書込みを行うレジスタの番号がレジスタ81
0−iにセットされているレジスタ番号に等しい さて、(1)は、CHP= ’1’  ということであ
る。(2)は、RI N = RI N iまたはRI
N=X2iまたはRIN=B21ということである。
これらのチェックは、それぞれ比較器840−i。
841−t、842−4で行われ、少なくとも1つの比
較器が一致を検出するORゲート86〇−1の出力を1
1′ にする。結局、ANDゲート861−iには、(
1)と(2)の条件が入力されており、両方の条件が成
安すると、インバータ862− i 、 ANDゲーI
・+(63−iにより、Uビットがリセットされる。
ここで、第7A、7B図に戻ると、その時点でデコード
されている命令とその命令よりもi命令先行している命
令との間で発生しているオペランドストアコンフリクト
について、それぞれ対応するsow判定回路800−i
が、SOW判定信号S OW iと第1オペランドレジ
スタ番号RI N iを出力している。このSOW判定
信号5OWiは、○SC検出回路9で検出するオペラン
ドストアコンフリクトの抑止信号としても働く。少なく
とも1つのSOW判定信号S OW iが出力されると
、ORゲート870により、ストレージオペランドラッ
プアラウンドを行うことと指示するSOW信号が出力さ
れる。また、SOW判定信号S OW iは、プライオ
リティエンコーダ880によりエンコードされ、そのエ
ンコード結果とセレクタ890に入力することにより、
SOW判定がされたオペランドストアコンフリクトを発
生している命令のなかで、その時点でデコードされてい
る命令に最も近い命令の第1オペランドレジスタ番号R
I N iを選択し、ストレージオペランドラップアラ
ウンドを行うべきレジスタ番号R2Nとじて出力する。
第9図は、第5B図におけるO8C検出回路9の構成例
を示している。OSC検出回路9には、アドレス加算器
3で得られたストレージアドレスADR1命令デコーダ
2から送られてくるデコード情報、SOW制御回路8で
生成されたO8C抑止信号(SOW判定信号と同一)S
OWiが入力される。オペランドアドレスADRとオペ
ランド長OPLは、加算器920に入力され、加算結果
ADR+Lが得られる。ADRとADR+Lは、それぞ
れ、オペランドのメモリ領域の先頭と末尾を示している
。ADR,ADR+Lと、W現命令であることを示すW
RP信号は、Lステージに同期してレジスタ910−1
にセットされる。そして、命令がステージを進むにつれ
て、それらの情報は、順次、レジスタ910−1→91
0−2→・・・→910−nにセットされる。したがっ
て、レジスタ910−i(i=1〜n)には、その時点
○SC検出回路9の入力となっている情報を生成してい
る命令よりもi命令先行している実行中の命令の情報が
保持されていることになる。
さて、その時点で○SC検出回路9の入力情報を生成し
ている命令と、その命令よりもi命令先行している命令
との間で1発生する条件は次のようになる。
(1)入力情報を生成している命令がF現命令である (2)先行している命令がW現命令である(3)F現命
令のオペランドのストレージ領域とW現命令のオペラン
ドのストレージ領域に重なりがある ここで、(3)については、F現命令のオペランドのス
トレージ領域を示すADRとADR+L、および、W型
領域のオペランドのストレージ領域を示すA D Ri
とADR+Liが、比較器931−iに入力され、2つ
のストレージ領域の重なり(第6A〜6D図の4つの場
合)がチェックされる。比較器930−4は、ADR≦
A D R+ L iかつA D Ri≦ADR+Lの
とき、重なり検出信号0VRiと出力する。したがって
、(1)はFTP= ’1’、(2)はSTP i =
 ’1’、(3)はOV RI = ’ 1 ’ トイ
ウコトニナ’J −コの°条件は、ANDゲート940
−4に入力される。
一方、ANDゲート940− iには、入力情報を生成
している命令からその命令よりi命令先行している命令
までのすべての命令に対する○SC抑止信号が入力され
ている。これにより、ストレージオペランドラップアラ
ウンドを1行う場合には、オペランドストアコンフリク
ト発生の検出が抑止される。ANDゲート940−iの
出力は、ORゲート950に入力され、オペランドスト
アコンフリクトの発生が少なくとも1つのANDゲート
940−iで検出されるとO8C検出信号○SCが生成
されて、ステージ制御回路11に送られる。
第1図の実施例においては、SOW制御回路8において
、アドレス比較を行うために、アドレスそのものではな
く、アドレス情報を用いると、SOW制御信号がDステ
ージという早期に得られるという利点がある。
しかし、その変形例として、SOW制御回路8においで
、アドレス比較を行うために、アドレスそのものを用い
てもよい。この場合、アドレス計算というステップが不
可欠であるために、SOW制御信号が得られるまでの時
間が増大するが、アドレス情報として用いるベースレジ
スタ番号、インデクスレジスタ番号で指定されるレジス
タの内容に変更があるときでも、SOW判定が行えると
いう利点がある。この実施例を実現するには、第1図、
第5A図において、破線で示した経路により、アドレス
加算器3からSOW制御回路8にアドレスADRを送る
。また、第7A図、第8図において、信号X2.B2に
関する部分を除き信号D2に関する部分を信号ADRに
置き換えればよい。
次に本発明の第2の実施例を述べる。複数の演算器によ
り複数の命令の同時実行が可能な装置において、命令は
論理レジスタを指定し、実行に際してこれに物理レジス
タを動的に割当てる方式(以下仮想レジスタ方式という
)が、概に提案されている(特願昭58−237777
号)。この仮想レジスタ方式の下では並列処理される複
数の命令中に同−論理レジスタが繰返し指定されている
場合でも、その論理レジスタにその都度具なる物理レジ
スタを割当てることができるから、中間の命令によって
レジスタの内容が変更されたためにF型命令がレジスタ
からオペランドを読出すことができなくなる事態が防止
され、したがって、本発明による並列処理促進効果は、
一層顕著なものとなることが期待される。
第10図は、仮想レジスタ方式における本発明がその効
果を発揮する命令列の一例を示している。
第10図において、PR(R)はオペランドを読み出す
ために割りあてられた物理レジスタの番号を示す、PR
(W)の欄は、命令の処理に際して演算結果を格納する
ために割当てられた物理レジスタの番号を示している。
第1の命令STは、論理レジスタの2番(以下LR2と
略記)に対応づけられた物理レジスタ(ここでは物理レ
ジスタの8番((以下PR8と略記))と仮定する)の
内容とバッファストレージのQに格納する。第2の命令
Aは、LR2に対応づけられたP’R8の内容からバッ
ファストレージのR番地の内容を減算して。
LR2に新たに対応づけられたPR9に演算結果を格納
する。第3の命令しは、バッファストレージのQ番地の
内容を読出し、L R3に新たに対応づけられたPRI
Oに格納する。
第11図は、仮想レジスタ方式における本発明の装置が
第10図で示した命令列を実行した場合の、処理の概略
のタイムチャートを示している。
C2でA命令でDステージを開始し、C5においてEス
テージが開始される。
L命令は、C3でDステージを開始する。L命令がバッ
ファストレージから読出すべきオペランドは、先行のS
T命令がバッファストレージに書込むので、そのオペラ
ンドがバッファストレージ中で確定するのはC6である
。したがって、従来技術によればL命令がオペランドを
バッファストレージから読出せるのは、C7以降である
。その上、ST命令が読出すべきオペランドを格納して
いた汎用レジスタの内容はへ命令によって論理的には変
更されている。しかし2本発明によれば、ST命令のバ
ッファストレ ージへのオペランド書込みを待つことなく、また。
ST命令が読出すべきオペランドを保持する汎用レジス
タの内容が、ST命令とL命令の間にあるA命令によっ
て論理的には変更されることになっていても、L命令の
Eステージを実行することができる。なぜなら、ST命
令が読出すべきオペランドは、物理レジスタPR8に保
存されていて、A命令により書きかえられないからであ
る。
次に、仮想レジスタ方式を用いた場合の本発明による装
置の構成を説明する。この装置の全体構成は、第5A図
を第12図で置換したものであり、第12図に示すよう
に、第5A図に仮想レジスタ制御回路13を絹込んだも
のとなる。
仮想レジスタ方式においては、命令で論理的に指定され
るレジスタ、つまり、命令レジスタ1、および命令デコ
ーダ2から出力されるレジスタ番号B2L、X2L、R
,,I L、RCLで指定されるレジスタを論理レジス
タと呼ぶ。一方、実際にデ−タを保持する物理的に存在
するレジスタを物理レジスタと呼ぶ。
仮想レジスタ制御回路13は、論理レジスタ番号から物
理レジスタ番号への変換、書込みが行われる論理レジス
タに対する新たな物理レジスタの割当てを行う。仮想レ
ジスタ方式の制御機構については、前掲特願昭58−2
37777号に詳しく記述されており、しかも、そtL
自体は本RHJJの対象でないので、以下では、本発明
にとって必要な範囲での説明にとどめる。
仮想レジスタ制御回路13は、例えば、その時点で論理
レジスタに割当てられている物理レジスタの番号を保持
する変換テーブルを備えることによって、論理レジスタ
番号を物理レジスタ番号に変換する手段を有する。この
ような変換手段により、論理レジスタ番号B2L、X2
L、RI Lは、物理レジスタ番号B2.X2.RIN
に変換される。さて、CHP信号が出力されているとき
は、レジスタに書込みが行われ、その内容が変更される
ことを示している。このとき、仮想レジスタ制御回路I
3は、書込みが行われる論理レジスタの番号RCLに対
して、その時点で未使用の物理レジスタを選択して新た
に割当てを行い、その物理レジスタ番号をRCNとして
出力する。この新たな割当ては、仮想レジスタ制御回路
13内の変換手段に反映される。
仮想レジスタ制御回路13を組込んでも、装置の他の部
分には、レジスタ番号が、物理レジスタ番号になること
を除いて、大きな変更はない(汎用レジスタ4は、物理
レジスタとなり、また1例えば、SOW制御回路8は、
物理レジスタ番号を保持する)。
一般には、物理レジスタの個数は、論理レジスタの個数
より少なくなければよい。しかし、本発明の効果を充分
発揮するためには、物理レジスタの個数を、論理レジス
タの個数に加えて、更に、少なくとも、装置内で同時に
処理される命令が使用するレジスタの最大個数だけ多く
する。こうすることにより、次に述べるように、命令の
並列処理に関して多くの利点が生じる。
仮想レジスタ制御方式においては、前述のように、レジ
スタの内容を変更する命令(C型命令)がデコードされ
たとき、演算結果を格納するためのレジスタとして、新
たに現在使用されていない物理レジスタが割当てられる
。すなわち、C型命令は、読出したオペランドを格納し
ていた物理レジスタの内容を変更するのではなく、新た
に割当てられた物理レジスタに演算結果を書込む。C型
命令が読出したオペランドを格納していた物理レジスタ
の内容が変更されるのは、少なくとも現在処理中の命令
(S型命令も含む)がすべて完了した後である(物理レ
ジスタの個数が装置内で同時に処理される命令の使用す
る最大レジスタ数以上の余裕を持つという前述の前提に
基づく)。したがって、オペランドストアコンフリクト
が問題となりうる間に、S型命令が読出すべきオペラン
ドを格納したいた物理レジスタの内容が変更されること
はない。つまり、オペランドストアコンフリクトが問題
となりつる間、Uビットは常に′1′である。その結果
、レジスタ810−iからUビットを除くことができ、
また、比較器840  iy841− t 、 842
− iとORゲート860−i、ANDゲート861−
i、863−i+インバータ862− iも不要になる
以上の装置構成により、第10図の命令列を第11図の
時間関係によって並列に実行することができる。
なお、これらの実施例では、ストレージオペランドラッ
プアラウンドを行うべきレジスタとして汎用レジスタを
用いたが、例えば、浮動小数点レジスタなどの他のレジ
スタにも、容易に拡張できる。
さらに本発明の他の実施例を示す。第5A図。
第5B図の装置において複数の演算器を設けて。
複数の命令のEステージを同時に遂行できるようにすれ
ば、処理速度は更に一段と向上する。第13図は、本発
明が適用されたこの型の装置がA命令の結果を利用する
ST命令と、そのST命令によるオペランドアドレスと
同じアドレスを用いるし命令からなる命令列を実行する
ときのタイムチャートであり、A命令の演算結果の確定
以外には、ST全命令L命令の実行を阻害する要因がな
い場合を示す。この場合、L命令のEステージは、ST
全命令Eステージと同様に、処理対象のオペランドが汎
用レジスタ5中で確定しさえすれば、直ちに実行が可能
になる。したがって、両命令のEステージは、異なる演
算器を用いて、C6で同時に開始することができる。
第14図は、オペランド確定以外の何らかの原因により
、ST全命令実行が遅れた場合を示す。
このような遅れは、例えば、ST全命令オペランドを書
込むべきアドレスを含むメモリブロックがバッファスト
レージ7内に存在しないときに生じる。この場合、当該
メモリブロックをメインストレージ12からバッファス
トレージ7に転送する処理が必要となり、そのために、
ST全命令Lステージの前に空きが生じ、それにつれて
バッファストレージ7への書込みの完了も遅れる。後続
のし命令は、もしもST全命令よる書込みの完了を待つ
とすれば、C9が終るまで、そのEステージを開始する
ことができない。しかし、本発明によれば、L命令は、
そのオペランドをA命令の演算結果が格納された汎用レ
ジスタ5から直接読出せるので、C6でEステージに入
ることができ、ST全命令Eステージよりも先に完了す
ることが可能になる。
第1図に示されたSoW制御回路8.OSC判定回路9
の他の構成例を以下に示す゛。
以下の例は、第1図のこれら二つの回路の機能をまとめ
て実行する回路の例であり、以下、この回路をSOW/
○SC制御回路と呼ぶ。
この回路は第1図の命令デコーダ2.アドレス加算器3
に接続される。但し、第1図の点線のようにアドレス加
算器3からのアドレスを受取る点で第1図と異なる。
第15図は、この5OW10SC制御回路89の構成を
示す。ストア・アドレス・バッファ(SAB)891は
、処理中のW副命令に関する情報を保持するためのもの
で、エントリO= nを有し、各エントリが1個のW副
命令に割り当てられる。このエントリ数は、装置内で同
時に処理される命令の最大個数を収容するに充分なだけ
用意される。各エントリは4個のフィールドからなり、
各フィールドの内容は次のとおりである。
V二当該エントリ内の情報が関連するW副命令が、処理
中のときにre 1 rrにされるビット。
STA:当該W副命令により書込みが指示されたストレ
ージ・アドレス。
C:当該W副命令がS型命令でないとき、または、当該
W副命令がS型命令であるならば、読み出すべきオペラ
ンドを保持するレジスタの内容が。
以後の命令により変更されたときに11 L Hにされ
るビット。
RNO:当該W副命令がS型命令であるときS型命令が
読み出すべきオペランドを保持するレジスタの番号。
比較器892は、ADRとして送られてきたF副命令の
指定するストレージ・アドレスを、5AB891の全エ
ントリのSTAフィールドの内容と同時に比較するよう
に構成されており、また、比較器893は、あるC型命
令による演算結果の格納のために内容が変更される汎用
レジスタの番号RCNを、全エントリのRN○フィール
ドの内容と同時に比較するように構成されている。
この回路の動作は1次のとおりである。W副命令が命令
デコーダ2によって解読されると、そのことがWRP信
号のIt I Hによって通知され、同時に書込みアド
レスがADRとして送られてくる。
また、S型命令が命令デコーダ2によって解読されると
、そのことがWRP信号およびSTP信号の“I II
によって通知され、同時に、書込アドレスがADRとし
て、さらに、そのオペランドを読み出すべき汎用レジス
タの番号がRINとして、それぞれ送られてくる。WR
PがrL I IIになると、SAB中からVビットが
170 Hの(すなわち、空いている)エントリが1個
選択され、そのvビットがrr 1 nにセットされる
とともに、ADRがSTAフィールドにM 、i:’+
 r’t 、Icる。そしてこのとき、STPが′1″
ならば、R,l NがRN○フィールドに格納され、そ
して、Cビットがrr Ouにリセツトされる。しかし
、STPが′0′″ならば、Cビットは111 ggに
セットされる。また、同時に選択されたエントリ番号は
、SBNとしてバッファ・ストレージ7に送られる。W
RP、STPは。
バッファ・ストレージ7にも送られる。バッファ・スト
レージ7がある書込み処理を完了すると、その旨がSE
P信号(7)”1”ニよってSoW/○SC制御回路8
9に知らされ、同時に、その書込み要求を行ったW現命
令に対応してさきにSBNとして送られてきていた5A
B89]のエントリ番号が、SENとして返送される。
5OW10SC制御回路89は、SEPが” 1 ” 
Icなったことに応答して、SENで示されるエントリ
のVビットをrr Onにリセットする。かくて、各エ
ントリのVビットは、対応するW現命令が処理過程にあ
る期間中のみ、1″の状態をとる。
C型命令が命令デコード回路2により解読されると、C
HP信号が′1″となり、同時に、その命令により内容
の変更される汎用レジスタの番号RCNが与えられる。
SOW/○SC制御回路89は、全エントリのRNOフ
ィールドの内容とRCNを比較器893により比較し、
一致の生じたエントリのCビットをrr 1 uにセッ
トする。かくて、各エントリのCビットは、対応するS
型命令が解読された後、それが読出すべきオペランドを
保持するレジスタの内容を変更するC型命令が解読され
るまで、140 Hlの状態に留まる。
F現命令が命令デコーダ2によって解読されると、その
旨がFTP信号の# 171によって通知され、同時に
、読出しアドレスがADRとして供給される。5OW1
0SC制御回路89は、5AB891の全エントリのS
TAフィールドの内容とADRを比較器82により比較
する。一致が生じたエントリのVビットが“1″であれ
ば、それは。
当該F現命令は先行のW現命令が未だメモリへの書込み
を終っていないオペランドを読み出そうとしていること
、すなわち、オペランド・ストア・コンフリクトが生じ
たことを示す。加えて、当該エントリのCビットが“O
″であれば、所望のオペランドは、当該エントリのRN
○フィールドが示す番号の汎用レジスタ中に、変更され
ることなく保たれていることを示す。AND回路895
は、これらの条件の成立を検出し、SOW信号を′1″
にすることによりオペランドセレクタ10を制御し、そ
れと同時に、当該汎用レジスタ番号(RN○フィールド
)が、R2Nとして汎用レジスタ5に送られる。その結
果、汎用レジスタ5中の当該レジスタからのオペランド
02Rが、オペランドセレクタ10により選択されて、
演算ユニット4への入力オペランドOP2となる。この
とき、Cビット″0′″であるため、AND回路894
の出力○SCはrr Orrであり、オペランド・スト
ア・コンフリクトが生じなかったものとして以降の処理
が進行する。
他方、比較器892において一致の生じたエントリのC
ビットが81. IIであれば、対応するW現命令がS
型命令ではないこともしくは、S型命令であっても所望
のオペランドを保持していたレジスタの内容は、既に変
更されており、利用不可能であることを示す。この状態
は、AND回路894により検出され、OSC信号がI
I I gとなって、オペランド・ストア・コンフリク
トが生じたことをステージ制御回路11に通知する。こ
の場合には、従来のオペランド・ストア・コンフリクト
処理を行なうことが必要になる。
〔発明の効果〕
本発明によれば、ストレージからオペランドを読出す命
令は、当該オペランドをストレージに書込む先行命令の
実行を待つことなく、当該オペランドの内容がレジスタ
において確定すれば、実行が可能になる。したがって、
オペランドストアコンフリクトによる処理の遅れが大幅
に軽減され、並列処理の実効が一段と助長される。
【図面の簡単な説明】
第1図は本発明の一実施例の全体構成の概略を示すブロ
ックダイヤグラム、第2図は第1図の装置におけるパイ
プライン処理の一般的なタイムチャート、第3図は命令
列の一例を示す模式図、第4図は第3図の命令列の処理
のタイムチャート、第5A、5B図は組み合わさって第
1図の装置のより詳細なブロックダイヤグラム、第6A
@から第6D図はそれぞれ2つの命令のオペランドのメ
モリ領域の重なりの異なる態様を示す図、第7A。 7B図は組み合わさって第1図の装置のSOW制御回路
のブロックダイヤグラム、第8図は第7図の回路に用い
るSOW判定回路のブロックダイヤグラム、第9図は第
1図の装置のO8C検出回路のブロックダイヤグラム、
第10図は仮想レジスタの概念による本発明の第2の実
施例に用いる命令列の一例を示す模式図、第11図は第
10図の命令列の処理のタイムチャート、第12図は第
10図の命令列を実行する本発明の第2の実施例の全体
構成を示すブロックダイヤグラム、第13図、第14図
は本発明によるさらに他の実施例における命令列の処理
のタイムチャートである。第15図は本発明による他の
実施例の要部を示す図である。 ¥J/’C 第2回 炒・・/匡A L E 、E)−i’ 」 、廿・・・  匡7■丁[ヨ下] 第3図 ST    z      と A7       F 乙       3         0−第4.凶 角 第り4口 ′fJ513の ”t7p図 第780 Fθ−(や 第ヲ国 菊 /ノ 因 第72目 、?IA レジ゛スク               
             1.・χり第73カ 物ち ノベ 15 ノ5 戸ハ 邦C5osy   F2W [頁の続き 杏 明 者  庄  内     亨  国分寺市東恋
ケ窪1丁巨央研究所内 姦明者 武内 茂雄 小平市小水禰1448ijlジニ
アリング株式会社藺 28@地 株式会社日立製作所中 +  日立超エルΦニス・アイ争エン 「

Claims (1)

  1. 【特許請求の範囲】 1、オペランドを保持するストレージ手段と、汎用レジ
    スタ群と、 該ストレージ手段と該汎用レジスタ群に接 続された演算手段と、 実行すべく供給される複数の命令を順次解読し、解読情
    報を出力する解読手段と、 該解読手段により、該ストレージ手段のあるアドレスか
    らオペランドを読み出すことを要求する第1の命令が解
    読されたことに応答して、該第1の命令より先に解読さ
    れた実行中の命令の中に、該汎用レジスタ群の一つから
    オペランドを読み出し、そのオペランドに演算を施さな
    いで該ストレージ手段の該アドレスに書き込むことを要
    求する第2の命令があるか否かを実行中の命令の解読情
    報に基づいて検出する手段と該第1の検出手段により、
    該第2の命令が検出されたときには、該第1の命令が要
    求する該アドレスからオペランドを読み出すのにかえて
    、該第2の命令の実行の完了前に、該第2の命令が指定
    する汎用レジスタ内の該オペランドを読み出す手段を有
    する命令の実行を制御する命令実行制御手段とを有する
    、複数の命令を並列に実行する情報処理装置。 2、該第1の検出手段は、該第1と第2の命令の間に該
    第2の命令が指定する汎用レジスタに書き込みを行う第
    3の命令があるか否かを検出し、該第3の命令が検出さ
    れた場合、該第2の命令の検出結果を無効にする手段を
    有する第1項の情報処理装置。 3、該第1の検出手段は、該第1の命令より先に解読さ
    れた実行中の命令の内、該汎用レジスタ群の一つからオ
    ペランドを読み出し、演算を施さないで該ストレージ手
    段に書き込む命令であって、その命令内に含まれるオペ
    ランド書き込みアドレス算出のためのインデックスレジ
    スタ番号とベースレジスタ番号とディスプレイスメント
    値を、該第1の命令内に含まれる、オペランド読出しア
    ドレス算出のための、インデックスレジスタ番号、ベー
    スレジスタ番号およびディスプレイスメント値と比較し
    て該第2の命令の存在を検出する手段からなる第2項の
    情報処理装置。 4、該第1の検出手段は、該第1、第2の命令の間に、
    該第2の命令が指定するインデックスレジスタ又はベー
    スレジスタを書きかえる第4の命令があるかを検出し、
    該第4の命令が検出されたとき、該第2の命令の検出結
    果を無効とする手段とからなる第3項の情報処理装置。 5、該命令実行制御手段は、 該解読手段で解読された命令のオペランドアドレスを算
    出する手段と、 該解読手段により、該ストレージ手段からオペランドを
    読み出すタイプの命令が解読されたことに応答して該命
    令より先に解読された命令の中に、該解読された命令に
    より読み出されるオペランドのアドレスにオペランドを
    書き込む命令があるか否かを検出する第2の検出手段と
    、該第2の検出手段により該書き込み命令が検出された
    ときに該読み出し命令のためのオペランド読み出しを該
    検出された書き込み命令によるオペランド書き込み終了
    後まで遅延させる手段と、該第1の検出手段による該第
    2の命令の検出に応答して該第2の検出手段による検出
    結果を無効にする手段を有する第2項の情報処理装置。 6、該第1の検出手段は、該第1の命令より先に解読さ
    れた実行中の命令の内、該汎用レジスタ群の一つからオ
    ペランドを読み出し、演算を施さないで該ストレージ手
    段に書き込む命令であって、かつ、そのオペランドを書
    き込むアドレス範囲内に該第1の命令がオペランド読み
    出しのために要求するアドレス範囲をすべて含む命令を
    該第2の命令として検出する手段であり、該第2の検出
    手段は、該ストレージ手段からオペランドを読み出すタ
    イプの命令の各々により指定されるオペランドが存在す
    るアドレス範囲と重複するアドレス範囲にオペランドを
    書き込む該命令より先に解読された命令があるか否かを
    検出する手段である第5項の情報処理装置。 7、該命令実行制御手段は、該解読された命令が指定す
    るレジスタ番号と、その番号と異なるレジスタ番号に変
    換し、変換後のレジスタ番号を該解読された命令が指定
    するレジスタ番号として、該汎用レジスタ群、該第1の
    検出手段、該命令実行制御手段に供給する手段を有する
    第1項の情報処理装置。
JP61017967A 1985-02-08 1986-01-31 情報処理装置 Expired - Lifetime JPH0754461B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP60-22035 1985-02-08
JP2203585 1985-02-08

Publications (2)

Publication Number Publication Date
JPS621032A true JPS621032A (ja) 1987-01-07
JPH0754461B2 JPH0754461B2 (ja) 1995-06-07

Family

ID=12071701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61017967A Expired - Lifetime JPH0754461B2 (ja) 1985-02-08 1986-01-31 情報処理装置

Country Status (2)

Country Link
US (1) US4831515A (ja)
JP (1) JPH0754461B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201513A (ja) * 1988-02-03 1989-08-14 Teijin Ltd 異形断面繊維
JPH01229835A (ja) * 1988-03-03 1989-09-13 Teijin Ltd モケット織物パイル用紡績糸
FR2645297A1 (fr) * 1989-03-30 1990-10-05 Nec Corp Ordinateur de transfert avec un trajet de derivation pour le renvoi de donnees a une source de commandes

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5134561A (en) * 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5197141A (en) * 1988-01-30 1993-03-23 Nec Corporation Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5781753A (en) * 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5073855A (en) * 1989-06-30 1991-12-17 Bull Hn Information Systems Inc. Resource conflict detection method and apparatus included in a pipelined processing unit
JPH03154947A (ja) * 1989-11-13 1991-07-02 Nec Corp 情報処理装置
US5222235A (en) * 1990-02-01 1993-06-22 Bmc Software, Inc. Databases system for permitting concurrent indexing and reloading of data by early simulating the reload process to determine final locations of the data
US5224214A (en) * 1990-04-12 1993-06-29 Digital Equipment Corp. BuIffet for gathering write requests and resolving read conflicts by matching read and write requests
JP2845578B2 (ja) * 1990-06-19 1999-01-13 甲府日本電気 株式会社 命令制御方式
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
JP2646855B2 (ja) * 1991-01-21 1997-08-27 三菱電機株式会社 データ処理装置
JPH04263323A (ja) * 1991-02-18 1992-09-18 Nec Corp 機械語命令列並べ換え方式
JPH04275628A (ja) * 1991-03-01 1992-10-01 Mitsubishi Electric Corp 演算処理装置
JPH0614003A (ja) * 1991-07-31 1994-01-21 Nec Corp データ処理回路
US5465373A (en) * 1993-01-08 1995-11-07 International Business Machines Corporation Method and system for single cycle dispatch of multiple instructions in a superscalar processor system
US5630149A (en) * 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
US5706489A (en) * 1995-10-18 1998-01-06 International Business Machines Corporation Method for a CPU to utilize a parallel instruction execution processing facility for assisting in the processing of the accessed data
US5968166A (en) * 1996-03-22 1999-10-19 Matsushita Electric Industrial Co., Ltd. Information processing apparatus and method, and scheduling device for reducing inactivity due to wait state
US7275246B1 (en) * 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8121828B2 (en) * 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US7502725B2 (en) * 2004-04-29 2009-03-10 International Business Machines Corporation Method, system and computer program product for register management in a simulation environment
JP5085180B2 (ja) * 2007-04-24 2012-11-28 株式会社東芝 情報処理装置およびアクセス制御方法
US10417001B2 (en) * 2012-12-27 2019-09-17 Intel Corporation Physical register table for eliminating move instructions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5392638A (en) * 1977-01-25 1978-08-14 Nec Corp Information processing unit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
JPH063584B2 (ja) * 1983-12-19 1994-01-12 株式会社日立製作所 情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5392638A (en) * 1977-01-25 1978-08-14 Nec Corp Information processing unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201513A (ja) * 1988-02-03 1989-08-14 Teijin Ltd 異形断面繊維
JPH01229835A (ja) * 1988-03-03 1989-09-13 Teijin Ltd モケット織物パイル用紡績糸
FR2645297A1 (fr) * 1989-03-30 1990-10-05 Nec Corp Ordinateur de transfert avec un trajet de derivation pour le renvoi de donnees a une source de commandes

Also Published As

Publication number Publication date
JPH0754461B2 (ja) 1995-06-07
US4831515A (en) 1989-05-16

Similar Documents

Publication Publication Date Title
JPS621032A (ja) 情報処理装置
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
JP3571266B2 (ja) スーパースカラプロセッサ
US6055625A (en) Pipeline computer with a scoreboard control circuit to prevent interference between registers
JPH0283735A (ja) 命令先取り装置
US6128721A (en) Temporary pipeline register file for a superpipelined superscalar processor
JPS63136138A (ja) 情報処理装置
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
JPS61107434A (ja) デ−タ処理装置
JP2005100471A (ja) スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
JPH09128293A (ja) 情報処理装置
JP2742393B2 (ja) オペレーションの処理システム及び方法
JPH0496825A (ja) データ・プロセッサ
US20020112142A1 (en) Implementation of a conditional move instruction in an out-of-order processor
JPH01120660A (ja) マイクロコンピュータ装置
JPS6112289B2 (ja)
EP0292188A2 (en) Cache system
US5276853A (en) Cache system
JP3954159B2 (ja) 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法
JP2819733B2 (ja) 情報処理装置
JPH02254541A (ja) 条件分岐命令の制御方式
JP2762441B2 (ja) コプロセッサ
JPS61170830A (ja) レジスタ参照方法
JP3456770B2 (ja) 情報処理装置
JPH0290326A (ja) 先行制御方式

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term