JPH0754461B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0754461B2
JPH0754461B2 JP61017967A JP1796786A JPH0754461B2 JP H0754461 B2 JPH0754461 B2 JP H0754461B2 JP 61017967 A JP61017967 A JP 61017967A JP 1796786 A JP1796786 A JP 1796786A JP H0754461 B2 JPH0754461 B2 JP H0754461B2
Authority
JP
Japan
Prior art keywords
instruction
operand
register
storage device
circuit
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
JP61017967A
Other languages
English (en)
Other versions
JPS621032A (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
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; CALCULATING OR 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; CALCULATING OR 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)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の命令を並列処理する情報処理装置に関
し、特に、パイプラインモードで複数の命令を並列処理
するのに好適な情報処理装置に関する。
〔従来技術〕
複数の命令を並列(本明細書において「並列」は部分的
オーバラップを含む)に処理する方式(例えば、いわゆ
るパイプライン処理方式)により処理の高速化を図る情
報処理装置において、メインストレージのあるアドレス
からオペランド(ストレージオペランド)を読出す命令
に先行して、当該アドレスへ(オペランド)の書込みを
行なう命令が存在する場合には、後続する読出命令のス
トレージオペランドが先行する書込み命令のストレージ
オペランドと一致する、いわゆるオペランドストアコン
クリクトの状態となり、この先行する書込命令の実行が
完了した後でなければ、後行する読出命令を実行するこ
とができず、そのために処理の進行に渋滞が生じ、並列
処理による高速化の実をあげることができない。この問
題への従来の対策の一つに、先行する書込命令の実行の
途中でそのオペランドを読出命令のオペランドとして取
出すものがあり、例えば、本出願人による特願昭58-123
246号は、演算ユニットの出力を一時的に保持するワー
クレジスタから、読出命令のオペランドを取出すもので
ある。
上記特許出願において用いられている先行する書き込み
命令の例は、10進演算命令のごとく、メインストレージ
からオペランドをよみ出してそれに演算を施し、その結
果をメインストレージに書き込む命令である。
〔発明が解決しようとする問題点〕
上記技術では、ワークレジスタおよびそれを用いるため
の制御回路が複雑となる。さらに前記技術では、上記ワ
ークレジスタを利用できるのは、後続の書込命令のすぐ
次に上記読出し命令が実行される場合に限られる。した
がって先行する書込み命令と後続の読出し命令の間に他
の命令が実行される場合にも、並列処理の高速化を図る
ことが望まれる。
メインストレージにオペランドを書き込む命令には上記
10進命令の他に、汎用レジスタにあるオペランド(レジ
スタオペランド)を演算しないでメインストレージに書
き込むストア命令がある。
本発明はレジスタオペランドをメインストレージに書込
む先行するストア命令が実行中の場合、そのメインスト
レージの同じアドレスからオペランドを読み出す後続の
命令をストア命令によるオペランド書き込み完了前に実
行できる簡単な情報処理装置を提供することを目的とす
る。
上記先行命令と後続命令の間に他の命令がある場合も並
行して実行するのに好適な情報処理装置を提供すること
にある。
〔問題点を解決するための手段〕
このため、本発明では、メインストレージあるいはバッ
ファストレージ等のストレージ手段のあるアドレスから
オペランドを読み出すことを要求する第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の命令の処理を早められる。
〔実施例〕
以下、本発明をパイプライン処理方式の装置に適用した
場合について説明する。装置の基本的アーキテクチャ
は、日立製作所製のMシリーズ機のそれを、例示のため
に用いる。
第1図は、本発明による処理装置の一実施例の全体構成
を表す概略のブロックダイヤグラムである。命令レジス
タ1は、実行すべき命令と保持する。命令デコーダ2
は、命令レジスタ1に保持されている命令を解読して、
装置内各部へ制御信号100を送出する。汎用レジスタ群
5は、一群のレジスタから成り、主に、頻繁に用いられ
るデータを保持するために用いられる。バッファストレ
ージ7は、メインストレージ12の一部の写しを保持する
高速の記憶装置である。アドレス加算器3は、メインス
トレージ12から読出すオペランド及びメインストレージ
12へ格納する演算結果のストレージアドレスを計算す
る。アドレス変換回路6は、アドレス加算器3で得られ
た論理アドレスと対応する物理アドレスに変換してバッ
ファストレージ7をアクセスする。演算ユニット4は、
命令で指定された演算を、汎用レジスタ5またはバッフ
ァストレージ7から読出されたオペランドに対して施こ
し、演算結果を汎用レジスタ5及びバッファストレージ
7に格納する。ステージ制御回路11は、命令を複数のス
テージに分けてパイプライン的に実行されるように制御
するための回路で、いろいろなレジスタのセット信号の
出力タイミングを制御する。
SOW制御回路8とOSC検出回路9、オペランドセレクタ10
は本発明の特徴的回路であるが、これらについては後述
する。メインストレージ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図に示した命令フォーマットと異なる、RR型というフ
ォーマットを有している。
本実施例における装置は上述したRX型,SS型,RR型の命令
のいずれも実行可能であるが、以下では簡単化のために
RX型命令に関してのみその動作を説明する。
F型又はS型の命令の例は第1図の命令レジスタ1に示
されている。OP部1Aは演算の種類を指定し、R1,X2,B2の
各部1B〜1Dはそれぞれ汎用レジスタ群5内の一つの汎用
レジスタを指定し、D2部1Eはストレージアドレス決定の
ためのディスプレイメントを指定する。D2部1Eの内容
は、アドレスか加算器3を用いて、X2部及びB2部の指定
する汎用レジスタの内容(以下(X2),(B2)と表わ
す)と加算されて論理アドレスADRとなる。この型の命
令フォーマットを存する命令は、通常、R1部1Bが指定す
る汎用レジスタの内容(R1)を第1オペランドとし、論
理アドレスADRで指定されたメインストレージ7の内容
を第2のオペランドとし、これら二つのオペランドにOP
部1Aが指定する演算を行ない、その結果をR1部1Bが指定
する汎用レジスタに格納することを指示する。したがっ
て、この場合は、F型でかつC型である。ロード命令の
場合は、論理アドレスADRが指定するメインストレージ1
2の内容がR1部1Bが指定する汎用レジスタにそのまま書
き込まれる。したがってこの場合もF型でかつC型であ
る。しかし、ストア命令の場合は、R1部1Bが指定する汎
用レジスタの内容(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)+(B
2)+D2の値である)に書込む。第2の命令Aは加算命
令の例でGR1の内容とバッファストレージ7のP番地
(但し、PはA命令についての(X2)+(B2)+D2の値
である)の内容を加算して、その結果をGR2に格納す
る。第3の命令Lはロード命令の例で、バッファストレ
ージ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である。
したがって、従来技術に従がいL命令のオペランドをバ
ッファストレージ7から読出すこととすると、それがで
きるのは、C7以降である。従来技術ではこのように、バ
ッファストレージ7中でオペランドが確定しないために
待機状態が生じる。これを、オペランドストアコンフリ
クト(以下OSCと略記)という。しかるに、本発明によ
れば、SOW制御回路8,OSC検出回路9,オペランドセレクタ
10が機能することによってST命令によるバッファストレ
ージ7へのオペランドの書込みを待つことなく、ST命令
が指定する汎用レジスタGR2の内容をよみ出す。したが
ってL命令のEステージをC6から開始することができ
る。
この場合、A命令は汎用レジスタGR2の内容をかきかえ
ないので、ST命令がバッファメモリ7に書き込んだオペ
ランドと同じオペランドを汎用レジスタGR2から読み出
すことができる。もし、A命令が汎用レジスタGR2をか
きかえる命令の場合、第4図の点線に示すように、L命
令のLステージは、従来と同様、ST命令によるバッファ
ストレージ7へのオペランド書き込みが終了した後のC7
から開始され、このときはバッファストレージ7からオ
ペランドが読み出される。第1図のオペランドセレクタ
10はこのように汎読レジスタ群5又はバッファストレー
ジ12から読み出されたオペランドを切り換えて演算ユニ
ット4に供給するもので、SOW制御回路はA,L命令のごと
く、F型命令解読されたときに、それより前に、同じス
トレージアドレスにオペランドを書くST命令がないか否
かを検出してこのセレクタ10の動作を制御するものであ
る。第1図のOSC検出回路は、オペランドストアコンフ
リクトを検出回路で、これについては後に詳細に説明す
る。
なお、第4図において、ST命令の次にL命令が解読され
た場合は、L命令のEステージはC5サイクルからなされ
る。このため従来より3サイクル早くL命令を完了でき
る。
第5A図と5B図は組合さって、第1図の処理装置を詳しく
示したブロックダイヤフラムである。
実行すべき命令は、周知の機構(図示省略)により命令
レジスタ1に送られて保持される。
命令デコーダ2は、命令レジスタ1に保持された命令を
解読して、各種の制御信号100を生成し、装置の各部に
送出する。これらの信号中、本実施例の説明に関係があ
るのは、次のものである。
OPC:命令のOP部1Aに対応する制御信号であり、演算ユニ
ット4で行なうべき演算の種類を指定する。
WRP:命令がW型命令であることを示す。
STP:命令がS型命令であることを示す。
FTP:命令がF型命令であることを示す。
CHP:命令がC型命令であることを示す。
OPL:オペランドの長さを示す。これは命令のOP部1Aによ
り決定される。
RCN:演算結果を格納すべき汎用レジスタ5の番号を指定
する。
R1N:第1オペランドとして読出すべき汎用レジスタ5の
番号を指定する。
汎用レジスタ5は、一群のレジスタからなり、B2,X2で
示されるレジスタの内容を(B2),(X2)として、それ
ぞれアドレス加算器3に送出する。
アドレス加算器3は、汎用レジスタ5から送られてくる
ベースレジスタ,インデクスレジスタの内容(B2),
(X2)と、ディスプレースメントD2とを加算し、オペラ
ンドアドレスADRを生成する。ADRは、S型命令におい
て、演算結果を書込むべきストレージアドレスを指定
し、F型命令において、第2オペランドを読出すべきス
トレージアドレスを指定する。
SOW制御回路8は、先行するS型命令(例えば、第3図
のST命令)が書込みを行うストレージ領域に、後行する
F型命令が読出しを行うストレージ領域がすべて含まれ
るか否かを、ベースレジスタ番号,インデクスレジスタ
番号、ディスプレースメント,オペランド長など、命令
で指定されるアドレス情報を用いることによって、Dス
テージという早期に検出する。また、その時、S型命令
がオペランドを読出すべき汎用レジスタ5の内容が当該
S型命令以後の命令(例えば第3図のA命令)によって
変更されていないかどうかを調べ、変更されていなけれ
ば、処理中のF型命令のオペランドを、バッファストレ
ージ7からではなく、当該汎用レジスタ5から直接読出
させる(これを、ストレージ・オペランド・ラップアラ
ウンドと呼ぶ。)ための制御を行う。つまり、ストレー
ジオペランドラップアラウンドを行うことを指示するSO
W番号を生成し、同時に、先行するS型命令が指定する
汎用レジスタ番号R2NをF型命令が読出すべき汎用レジ
スタ5の番号として出力する。また、後述するOSC検出
回路9が検出するオペランドストアコンフリクトの抑止
信号SOWi(i=1〜n)を出力する。SOW制御回路8に
ついては、その構成を含め、後に詳しく説明する。
以上で命令のDステージが終了し、命令のAステージの
開始時に命令デコーダ2の出力とSOW制御回路8の出力
はレジスタ21Aにセットされ、アドレス加算器3の出力A
DRはレジスタ31Aにセットされる。これらのレジスタへ
のセット番号はステージ制御回路11により与えられる。
アドレス変換回路6は、アドレス加算器3で得られた論
理アドレスADRをレジスタ31Aを介して受けとり、これを
物理アドレスRADに変換する。
OSC検出回路9は、従来と同様レジスタ31Aから入力され
るアドレス加算器で得られた物理アドレスADRを用い
て、先行するW型(S型を含む)命令と後行するF型命
令との間に発生するオペランドストアコンフリクトを検
出する。しかし、SOW制御回路8からOSC抑止信号SOWi
(i=1〜n)が出力されている場合は、オペランドス
トアコンフリクトの検出が抑止される。オペランドスト
アコンフリクトが検出された先行するW型命令のうち、
1つでもオペランドストアコンフリクトが抑止されてい
ない命令があると、OSC検出回路9は、OSC検出信号OSC
をステージ制御回路11に送出する。OSC検出回路9につ
いては、後に詳述するが、先行するW型命令が書き込み
を行うストレージ領域に後続するF型命令が読み出しを
行うストレージ領域が重複する場合を検出し、後行する
F型命令のためのLステージを、先行するS型命令によ
るオペランド書き込み終了後に実行すべきことをステー
ジ制御回路11に教える。
第6A〜6D図は、W型(S型を含む)命令とF型命令のス
トレージ領域の重なりを示している。第6A〜D図のいず
れかの場合に、オペランドストアコンフリクトが発生し
ており、OSC検出回路9において、オペランドストアコ
ンフリクトが検出される。SOW制御回路8は、第6A図の
場合にストレジオペランドラップアランドを行うことを
指示し、OSC検出回路9で検出されたオペランドストア
コンフリクトは抑止される。このことは、後に、OSC検
出回路9を説明するとき、更に詳しく述べる。
以上のようにして、命令のAステージが終了する。OSC
検出回路9により信号OSCが出力されていないときに
は、ステージ制御回路11はAステージの終了時にレジス
タ21L,61Lにセット信号を送る。この結果、レジスタ21A
からの信号OPC,WRP,STP,FTP,CHP,OPL,RCN,R1N,R2Nおよ
びSOWはレジスタ21Lにセットされ、アドレス変換回路6
からの物理アドレスRADはレジスタ61Lにセットされる。
こうして、命令のLステージが開始される。
一方、信号OSCが出力されている間は、これらのレジス
タへのセット信号は出力されず、Lステージは開始され
ない。
以上から明らかなとおり、第6A図の場合には、Lステー
ジは、Aステージの終了とともに始まるが、第6B〜6D図
の場合には、Lステージは、先行するW型命令のオペラ
ンド書き込みが終了するまで開始されない。
Lステージにおいては、通常レジスタ21Lにセットされ
たレジスタ番号R1Nが線207Lを介して汎用レジスタ群5
に送られ、第1オペランドOP1が線504Lに送られ、第1
オペランドOP1が線504Lを介して読み出され、レジスタ2
1Eに供給される。一方、レジスタ61L内の物理アドレスR
ADはバッファストレージ7に送られ、第2オペランドO2
Sが読み出され、オペランドセレクタ10に送られる。
オペランドセレクタ10は、通常、バッファストレージ7
からのオペランドO2Sを選択する。選択されたオペラン
ドは、第2オペランドOP2として、レジスタ21Eに送出さ
れる。
F型命令の場合には、レジスタ21Lから出力される先行
するS型命令のレジスタ番号R2Nにより汎用レジスタ5
からオペランドO2Rが読み出される。SOW制御回路8から
出力されたSOW信号がレジスタ21L内にあればオペランド
セレクタ10は、汎用レジスタ5からのオペランドO2Rを
選択する。
なお、S型命令(ストア命令)の場合、オペランドセレ
クタ10の出力である第2オペランドOP2は利用されな
い。
ステージ制御回路11は、レジスタ21L,61Lにセット信号
を出力した次のサイクルにレジスタ21Eにセット信号を
供給する。こうして、レジスタ21Eには、レジスタ21Lか
ら与えられるOPL,WRP,STP,FTP,CHP,OPL,RCNと汎用レジ
スタ5から読み出された第1オペランドOP1と、オペラ
ンドセレクタ10から入力される第2オペランドOP2がセ
ットされ、Eステージが開始される。
演算ユニット4は、通常はOPC信号で指示された演算
を、第1オペランドOP1と第2オペランドOP2に対して施
す。ただし、S型命令の場合、汎用レジスタ5から読み
出された第1オペランドを演算器5はそのまま出力す
る。またF型命令の一つであるロード命令の場合、バッ
ファストレージ7から読み出された第2オペランドを演
算器5はそのまま出力する。
こうして、Eステージが終了したときに、演算結果RST
はレジスタ21P,61Pにセットされ、Pステージが始ま
る。
C型命令の場合、レジスタ21Pにセットされた演算結果R
STは、汎用レジスタ群5へ書込みレジスタ番号RCNとと
もに送られ、そこにセットされる。一方、W型命令の場
合、レジスタ61Pにセットされた演算結果RSTは次のSス
テージにおいてレジスタ61Sを介してバッファストレー
ジ7にセットされる。
以上から明らかなように、あるF型命令についてSOW制
御回路8において第6A図の場合を検出した場合には、先
行するS型命令が読み出す汎用レジスタの番号R2Nに基
づき、Lステージにおいて必要とするオペランド汎用レ
ジスタから読み出すことができる、 第7A,7B図は、組み合わさって第5A図におけるSOW制御回
路8の構成例を示している。SOW制御回路8内には、そ
の時点でデコードされている命令と、その命令よりもi
命令先行して実行されている命令との間で発生している
オペランドストアコンフリクトについて、ストレージオ
ペランドラップアラウンドを行えるか否かを判定するSO
W判定回路800−i(i=1〜n)と、各SOW判定回路800
−iに対応した命令のデコード情報を保持する直列接続
されたレジスタ810−i(i=1〜n)とを有してい
る。命令レジスタ1にセットされ、命令デコーダ2によ
ってデコードされた命令のデコード情報は、Aステージ
に同期して、レジスタ810−1にセットされる。そし
て、命令のステージを進むにつれて、命令のデコード情
報は、順次、レジスタ810−1→810−2→…→810−n
にセットされる。したがって、レジスタ810−i(i=
1〜n)には、その時点でデコードされている命令より
も、命令先行している実行中の命令のデコード情報が保
持されていることになる。
レジスタ810−iにセットされる命令のデコード情報
は、第1オペランドのレジスタ番号R1N、第2オペラン
ドのアドレス情報X2,B2,D2,D2+L、そして、S型命令
であることを示すSTP信号である。ここで、D2+Lは、
第2オペランドのディスプレースメントの末尾を示して
おり、加算器820によって、ディスプレースメントD2と
オペランド長OPLを加算して得る。さらに、レジスタ810
−iには、Uビットが付加されている。Uビットがセッ
トされているレジスタ810−iは、その中のレジスタ番
号R1N,X2,B2を有する汎用レジスタの内容を変更する命
令がそのレジスタ810−iに対応する命令より前には存
在しないことを示している。Uビットがリセットされて
いるレジスタ810−iに接続されたSOW判定回路800−i
は、ストレジオペランドラップアラウンドが行えないこ
とを常に指示する。後に詳細に説明するように、SOW制
御回路8は、後続のF型命令が指定するレジスタ番号X
2,B2と、先行するS型命令が指定するレジスタ番号X2,B
2とを比較して、第6A図の場合に該当するか検出してい
る。このために、先行するS型命令と後続するF型命令
の間に先行する命令が指定するレジスタ番号X2,B2のレ
ジスタを書きかえる命令がないことを前提としている。
したがってこのようなX2またはB2で示される汎用レジス
タの内容が先行するS型命令と後続のF型命令の間の命
令により変更されると、X2,B2の比較が無意味となる。
また、R1Nで示される汎用レジスタの内容が変更される
と、先行するS型命令がバッファストレージ7に書くオ
ペランドの代りにR1N番のレジスタ内のオペランドを利
用すると、命令の実行結果が誤ったものになるからであ
る。
第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型命令のストレー
ジ領域がS型命令のストレージ領域に含まれる(第6A
図) (3・4)S型命令のベースレジスタ,インデクスレジ
スタの内容が変更されていない さて、(1)および(2)は、それぞれ、FTP=‘1'、S
TPi=‘1'ということである。(3・1),(3・2)
は、X2=X2i、B2=B2iということであり、比較器830−
i,831−iによりチェックされる。また、(3・3)
は、D2≧D2iかつD2+L≦D2+Liということであり、比
較器832−iによりチェックされる。そして、(3・
4)と(4)は、ともに、Ui=‘1'ということである。
これらの条件は、ANDゲート850−iに入力され、すべて
が成立しているとき、ストレージオペランドラップアラ
ウンドが行えると判定し、SOWi信号を出力する。また、
先行しているS型命令が読出したレジスタの番号をR1Ni
として出力する。
次に、レジスタ810−iに付加されたUビットの制御に
ついて述べる。命令がデコードされ、レジスタ810−1
にセットされるとき、Uビットは‘1'にセットされる。
その後、レジスタ810−iにセットされているレジスタ
番号R1Ni,X2i,B2iで示されるレジスタの内容に変更があ
ると‘0'にリセットされる。Uビットがリセットされる
条件は、次のようになる。
(1)デコードされている命令がC型命令である (2)C型命令が書込みを行うレジスタの番号がレジス
タ810−iにセットされているレジスタ番号に等しい さて、(1)は、CHP=‘1'ということである。(2)
は、R1N=R1NiまたはR1N=X2iまたはR1N=B2iというこ
とである。これらのチェックは、それぞれ比較器840−
i,841−i,842−iで行われ、少なくとも1つの比較器が
一致を検出するORゲート860−iの出力を‘1'にする。
結局、ANDゲート861−iには、(1)と(2)の条件が
入力されており、両方の条件が成立すると、インバータ
862−i,ANDゲート863−iにより、Uビットがリセット
される。
ここで、第7A,7B図に戻ると、その時点でデコードされ
ている命令とその命令よりもi命令先行している命令と
の間で発生しているオペランドストアコンフリクトにつ
いて、それぞれ対応するSOW判定回路800−iが、SOW判
定信号SOWiと第1オペランドレジスタ番号R1Niを出力し
ている。このSOW判定信号SOWiは、OSC検出回路9で検出
するオペランドストアコンフリクトの抑止信号としても
働く。少なくとも1つのSOW判定信号SOWiが出力される
と、ORゲート870により、ストレージオペランドラップ
アラウンドを行うことと指示するSOW信号が出力され
る。また、SOW判定信号SOWiは、プライオリティエンコ
ーダ880によりエンコードされ、そのエンコード結果と
セレクタ890に入力することにより、SOW判定がされたオ
ペランドストアコンフリクトを発生している命令のなか
で、その時点でデコードされている命令に最も近い命令
の第1オペランドレジスタ番号R1Niを選択し、ストレー
ジオペランドラップアラウンドを行うべきレジスタ番号
R2Nとして出力する。
第9図は、第5B図におけるOSC検出回路9の構成例を示
している。OSC検出回路9には、アドレス加算器3で得
られたストレージアドレスADR、命令デコーダ2から送
られてくるデコード情報、SOW制御回路8で生成されたO
SC抑止信号(SOW判定信号と同一)SOWiが入力される。
オペランドアドレスADRとオペランド長OPLは、加算器92
0に入力され、加算結果ADR+Lが得られる。ADRとADR+
Lは、それぞれ、オペランドのメモリ領域の先頭と末尾
を示している。ADR,ADR+Lと、W型命令であることを
示すWRP信号は、Lステージに同期してレジスタ910−1
にセットされる。そして、命令がステージを進むにつれ
て、それらの情報は、順次、レジスタ910−1→910−2
→…910−nにセットされる。したがって、レジスタ910
−i(i=1〜n)には、その時点OSC検出回路9の入
力となっている情報を生成している命令よりもi命令先
行している実行中の命令の情報が保持されていることに
なる。
さて、その時点でOSC検出回路9の入力情報を生成して
いる命令と、その命令よりもi命令先行している命令と
の間で、発生する条件は次のようになる。
(1)入力情報を生成している命令がF型命令である (2)先行している命令がW型命令である (3)F型命令のオペランドのストレージ領域とW型命
令のオペランドのストレージ領域に重なりがある ここで、(3)については、F型命令のオペランドのス
トレージ領域を示すADRとADR+L、および、W型領域の
オペランドのストレージ領域を示すADRiとADR+Liが、
比較器931−iに入力され、2つのストレージ領域の重
なり(第6A〜6D図の4つの場合)がチェックされる。比
較器930−iは、ADR≦ADR+LiかつADRi≦ADR+Lのと
き、重なり検出信号OVRiと出力する。したがって、
(1)はFTP=‘1'、(2)はSTPi=‘1'、(3)はOVR
i=‘1'ということになり、この条件は、ANDゲート940
−iに入力される。
一方、ANDゲート940−iには、入力情報を生成している
命令からその命令よりi命令先行している命令までのす
べての命令に対するOSC抑止信号が入力されている。こ
れにより、ストレージオペランドラップアラウンドを行
う場合には、オペランドストアコンフリクト発生の検出
が抑止される。ANDゲート940−iの出力は、ORゲート95
0に入力され、オペランドストアコンフリクトの発生が
少なくとも1つのANDゲート940−iで検出されるとOSC
検出信号OSCが生成されて、ステージ制御回路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番((以下PR
8と略記))と仮定する)の内容とバッファストレージ
のQに格納する。第2の命令Aは、LR2に対応づけられ
たPR8の内容からバッファストレージのR番地の内容を
減算して、LR2に新たに対応づけられたPR9に演算結果を
格納する。第3の命令Lは、バッファストレージのQ番
地の内容を読出し、LR3に新たに対応づけられたPR10に
格納する。
第11図は、仮想レジスタ方式における本発明の装置が第
10図で示した命令列を実行した場合の、処理の概略のタ
イムチャートを示している。
C2でA命令でDステージを開始し、C5においてEステー
ジが開始される。
L命令は、C3でDステージを開始する。L命令がバッフ
ァストレージから読出すべきオペランドは、先行のST命
令がバッファストレージに書込むので、そのオペランド
がバッファストレージ中で確定するのはC6である。した
がって、従来技術によればL命令がオペランドをバッフ
ァストレージから読出せるのは、C7以降である。その
上、ST命令が読出すべきオペランドを格納していた汎用
レジスタの内容はA命令によって論理的には変更されて
いる。しかし、本発明によれば、ST命令のバッファスト
レージへのオペランド書込みを待つことなく、また、ST
命令が読出すべきオペランドを保持する汎用レジスタの
内容が、ST命令とL命令の間にあるA命令によって論理
的には変更されることになっていても、L命令のEステ
ージを実行することができる。なぜなら、ST命令が読出
すべきオペランドは、物理レジスタPR8に保存されてい
て、A命令により書きかえられないからである。
次に、仮想レジスタ方式を用いた場合の本発明による装
置の構成を説明する。この装置の全体構成は、第5A図を
第12図で置換したものであり、第12図に示すように、第
5A図に仮想レジスタ制御回路13を組込んだものとなる。
仮想レジスタ方式においては、命令で論理的に指定され
るレジスタ、つまり、命令レジスタ1、および命令デコ
ーダ2から出力されるレジスタ番号B2L,X2L,R1L,RCLで
指定されるレジスタを論理レジスタと呼ぶ。一方、実際
にデータを保持する物理的に存在するレジスタを物理レ
ジスタと呼ぶ。
仮想レジスタ制御回路13は、論理レジスタ番号から物理
レジスタ番号への変換,書込みが行われる論理レジスタ
に対する新たな物理レジスタの割当てを行う。仮想レジ
スタ方式の制御機構については、前掲特願昭58-237777
号に詳しく記述されており、しかも、それ自体は本発明
の対象でないので、以下では、本発明にとって必要な範
囲での説明にとどめる。
仮想レジスタ制御回路13は、例えば、その時点で論理レ
ジスタに割当てられている物理レジスタの番号を保持す
る変換テーブルを備えることによって、論理レジスタ番
号を物理レジスタ番号に変換する手段を有する。このよ
うな変換手段により、論理レジスタ番号B2L,X2L,R1L
は、物理レジスタ番号B2,X2,R1Nに変換される。さて、C
HP信号が出力されているときは、レジスタに書込みが行
われ、その内容が変更されることを示している。このと
き、仮想レジスタ制御回路13は、書込みが行われる論理
レジスタの番号RCLに対して、その時点で未使用の物理
レジスタを選択して新たに割当てを行い、その物理レジ
スタ番号をRCNとして出力する。この新たな割当ては、
仮想レジスタ制御回路13内の変換手段に反映される。
仮想レジスタ制御回路13を組込んでも、装置の他の部分
には、レジスタ番号が、物理レジスタ番号になることを
除いて、大きな変更はない(汎用レジスタ4は、物理レ
ジスタとなり、また、例えば、SOW制御回路8は、物理
レジスタ番号を保持する)。
一般には、物理レジスタの個数は、論理レジスタの個数
より少なくなければよい。しかし、本発明の効果を充分
発揮するためには、物理レジスタの個数を、論理レジス
タの個数に加えて、更に、少なくとも、装置内で同時に
処理される命令が使用するレジスタの最大個数だけ多く
する。こうすることにより、次に述べるように、命令の
並列処理に関して多くの利点が生じる。
仮想レジスタ制御方式においては、前述のように、レジ
スタの内容を変更する命令(C型命令)がデコードされ
たとき、演算結果を格納するためのレジスタとして、新
たに現在使用されていない物理レジスタが割当てられ
る。すなわち、C型命令は、読出したオペランドを格納
していた物理レジスタの内容を変更するのではなく、新
たに割当てられた物理レジスタに演算結果を書込む。C
型命令が読出したオペランドを格納していた物理レジス
タの内容が変更されるのは、少なくとも現在処理中の命
令(S型命令も含む)がすべて完了した後である(物理
レジスタの個数が装置内で同時に処理される命令の使用
する最大レジスタ数以上の余裕を持つという前述の前提
に基づく)。したがって、オペランドストアコンフリク
トが問題となりうる間に、S型命令が読出すべきオペラ
ンドを格納したいた物理レジスタの内容が変更されるこ
とはない。つまり、オペランドストアコンフリクトが問
題となりうる間、Uビットは常に‘1'である。その結
果、レジスタ810−iからUビットを除くことができ、
また、比較器840−i,841−i,842−iとORゲート860−
i、ANDゲート861−i,863−i、インバータ862−iも不
要になる。
以上の装置構成により、第10図の命令例を第11図の時間
関係によって並列に実行することができる。
なお、これらの実施例では、ストレージオペランドラッ
プアラウンドを行うべきレジスタとして汎用レジスタを
用いたが、例えば、浮動小数点レジスタなどの他のレジ
スタにも、容易に拡張できる。
さらに本発明の他の実施例を示す。第5A図,第5B図の装
置において複数の演算器を設けて、複数の命令のEステ
ージを同時に遂行できるようにすれば、処理速度は更に
一段と向上する。第13図は、本発明が適用されたこの型
の装置がA命令の結果を利用するST命令と、そのST命令
によるオペランドアドレスと同じアドレスを用いるL命
令からなる命令列を実行するときのタイムチャートであ
り、A命令の演算結果の確定以外には、ST命令とL命令
の実行を阻害する要因がない場合を示す。この場合、L
命令のEステージは、ST命令のEステージと同様に、処
理対象のオペランドが汎用レジスタ5中で確定しさえす
れば、直ちに実行が可能になる。したがって、両命令の
Eステージは、異なる演算器を用いて、C6で同時に開始
することができる。
第14図は、オペランド確定以外の何らかの原因により、
ST命令の実行が遅れた場合を示す。このような遅れは、
例えば、ST命令がオペランドを書込むべきアドレスを含
むメモリブロックがバッファストレージ7内に存在しな
いときに生じる。この場合、当該メモリブロックをメイ
ンストレージ12からバッファストレージ7に転送する処
理が必要となり、そのために、ST命令のLステージの前
に空きが生じ、それにつれてバッファストレージ7への
書込みの完了も遅れる。後続のL命令は、もしもST命令
による書込みの完了を待つとすれば、C9が終るまで、そ
のEステージを開始することができない。しかし、本発
明によれば、L命令は、そのオペランドをA命令の演算
結果が格納された汎用レジスタ5から直接読出せるの
で、C6でEステージに入ることができ、ST命令のEステ
ージよりも先に完了することが可能になる。
第1図に示されたSOW制御回路8,OSC判定回路9の他の構
成例を以下に示す。
以下の例は、第1図のこれら二つの回路の機能をまとめ
て実行する回路の例であり、以下、この回路をSOW/OSC
制御回路と呼ぶ。
この回路は第1図の命令デコーダ2,アドレス加算器3に
接続される。但し、第1図の点線のようにアドレス加算
器3からのアドレスを受取る点で第1図と異なる。
第15図は、このSOW/OSC制御回路89の構成を示す。スト
ア・アドレス・バッファ(SAB)891は、処理中のW型命
令に関する情報を保持するためのもので、エントリ0〜
nを有し、各エントリが1個のW型命令に割り当てられ
る。このエントリ数は、装置内で同時に処理される命令
の最大個数を収容するに充分なだけ用意される。各エン
トリは4個のフィールドからなり、各フィールドの内容
は次のとおりである。
V:当該エントリ内の情報が関連するW型命令が、処理中
のときに“1"にされるビット。
STA:当該W型命令により書込みが指示されたストレージ
・アドレス。
C:当該W型命令がS型命令でないとき、または、当該W
型命令がS型命令であるならば、読み出すべきオペラン
ドを保持するレジスタの内容が、以後の命令により変更
されたときに“1"にされるビット。
RNO:当該W型命令がS型命令であるときS型命令が読み
出すべきオペランドを保持するレジスタの番号。
比較器892は、ADRとして送られてきたF型命令の指定す
るストレージ・アドレスを、 SAB891の全エントリのSTAフィールドの内容と同時に比
較するように構成されており、また、比較器893は、あ
るC型命令による演算結果の格納のために内容が変更さ
れる汎用レジスタの番号RCNを、全エントリのRNOフィー
ルドの内容と同時に比較するように構成されている。
この回路の動作は、次のとおりである。W型命令が命令
デコーダ2によって解読されると、そのことがWRP信号
の“1"によって通知され、同時に書込みアドレスがADR
として送られてくる。また、S型命令が命令デコーダ2
によって解読されると、そのことがWRP信号およびSTP信
号の“1"によって通知され、同時に、書込アドレスがAD
Rとして、さらに、そのオペランドを読み出すべき汎用
レジスタの番号がR1Nとして、それぞれ送られてくる。W
RPが“1"になると、SAB中からVビットが“0"の(すな
わち、空いている)エントリが1個選択され、そのVビ
ットが“1"にセットされるとともに、ADRがSTAフィール
ドに格納される。そしてこのとき、STPが“1"ならば、R
1NがRNOフィールドに格納され、そして、Cビットが
“0"にリセットされる。しかし、STPが“0"ならば、C
ビットは“0"にセットされる。また、同時に選択された
エントリ番号は、SBNとしてバッファ・ストレージ7に
送られる。WRP,STPは、バッファ・ストレージ7にも送
られる。バッファ・ストレージ7がある書込み処理を完
了すると、その旨がSEP信号の“1"によってSOW/OSC制御
回路89に知らされ、同時に、その書込み要求を行ったW
型命令に対応してさきにSBNとして送られてきていたSAB
891のエントリ番号が、SENとして返送される。SOW/OSC
制御回路89は、SEPが“1"になったことに応答して、SEN
で示されるエントリのVビットを“0"にリセットする。
かくて、各エントリのVビットは、対応するW型命令が
処理過程にある期間中のみ、“1"の状態をとる。
C型命令が命令デコード回路2により解読されると、CH
P信号が“1"となり、同時に、その命令により内容の変
更される汎用レジスタの番号RCNが与えられる。SOW/OSC
制御回路89は、全エントリのRNOフィールドの内容とRCN
を比較器893により比較し、一致の生じたエントリのC
ビットを“1"にセットする。かくて、各エントリのCビ
ットは、対応するS型命令が解読された後、それが読出
すべきオペランドを保持するレジスタの内容を変更する
C型命令が解読されるまで、“0"の状態に留まる。
F型命令が命令デコーダ2によって解読されると、その
旨がFTP信号の“1"によって通知され、同時に、読出し
アドレスがADRとして供給される。SOW/OSC制御回路89
は、SAB891の全エントリのSTAフィールドの内容とADRを
比較器82により比較する。一致が生じたエントリのVビ
ットが“1"であれば、それは、当該F型命令は先行のW
型命令が未だメモリへの書込みを終っていないオペラン
ドを読み出そうとしていること、すなわち、オペランド
・ストア・コンフリクトが生じたことを示す。加えて、
当該エントリのCビットが“0"であれば、所望のオペラ
ンドは、当該エントリのRNOフィールドが示す番号の汎
用レジスタ中に、変更されることなく保たれていること
を示す。AND回路895は、これらの条件の成立を検出し、
SOW信号を“1"にすることによりオペランドセレクタ10
を制御し、それと同時に、当該汎用レジスタ番号(RNO
フィールド)が、R2Nとして汎用レジスタ5に送られ
る。その結果、汎用レジスタ5中の当該レジスタからの
オペランドO2Rが、オペランドセレクタ10により選択さ
れて、演算ユニット4への入力オペランドOP2となる。
このとき、Cビット“0"であるため、AND回路894の出力
OSCは“0"であり、オペランド・ストア・コンフリクト
が生じなかったものとして以降の処理が進行する。
他方、比較器892において一致の生じたエントリのCビ
ットが“1"であれば、対応するW型命令がS型命令では
ないこともしくは、S型命令であっても所望のオペラン
ドを保持していたレジスタの内容は、既に変更されてお
り、利用不可能であることを示す。この状態は、AND回
路894により検出され、OSC信号が“1"となって、オペラ
ンド・ストア・コンフリクトが生じたことをステージ制
御回路11に通知する。この場合には、従来のオペランド
・ストア・コンフリクト処理を行なうことが必要にな
る。
〔発明の効果〕
本発明によれば、ストレージからオペランドを読出す命
令は、当該オペランドをストレージに書込む先行命令の
実行を待つことなく、当該オペランドの内容がレジスタ
において確定すれば、実行が可能になる。したがって、
オペランドストアコンフリクトによる処理の遅れが大幅
に軽減され、並列処理の実効が一段と助長される。
【図面の簡単な説明】
第1図は本発明の一実施例の全体構成の概略を示すブロ
ックダイヤグラム、第2図は第1図の装置におけるパイ
プライン処理の一般的なタイムチャート、第3図は命令
列の一例を示す模式図、第4図は第3図の命令列の処理
のタイムチャート、第5A,5B図は組み合わさって第1図
の装置のより詳細なブロックダイヤフラム、第6A図から
第6D図はそれぞれ2つの命令のオペランドのメモリ領域
の重なりの異なる態様を示す図、第7A,7B図は組み合わ
さって第1図の装置のSOW制御回路のブロックダイヤグ
ラム、第8図は第7図の回路に用いるSOW判定回路のブ
ロックダイヤグラム、第9図は第1図の装置のOSC検出
回路のブロックダイヤグラム、第10図は仮想レジスタの
概念による本発明の第2の実施例に用いる命令列の一例
を示す模式図、第11図は第10図の命令列の処理のタイム
チャート、第12図は第10図の命令列を実行する本発明の
第2の実施例の全体構成を示すブロックダイヤグラム、
第13図、第14図は本発明によるさらに他の実施例におけ
る命令列の処理のタイムチャートである。第15図は本発
明による他の実施例の要部を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 庄内 亨 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 武内 茂雄 東京都小平市小水本町1448番地 日立超エ ル・エス・アイ・エンジニアリング株式会 社内 (56)参考文献 特開 昭53−92638(JP,A)

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】オペランドを保持する記憶装置と、 オペランドを保持する複数のレジスタと、 該記憶装置と該複数のレジスタとに接続された演算装置
    と、 該記憶装置に保持された第1のオペランドに演算を施す
    第1の命令を実行するときに、すでに実行中の複数の先
    行命令の中に、その第1のオペランドを少なくとも一部
    として含む第2のオペランドを該複数のレジスタの一つ
    から読み出し、その第2のオペランドに演算を施さない
    で、該記憶装置に書き込む第2の命令が存在するか否か
    を検出する第1の検出回路と、 該複数の先行命令の中に、該第2の命令より後続の命令
    であって、該一つのレジスタの内容を書き換える第3の
    命令が存在するか否かを検出する第2の検出回路と、 該第1、第2の検出回路による検出の結果、該第2の命
    令が存在し、かつ、該第3の命令が存在しないという条
    件が満たされたときには、該第2の命令が該一つのレジ
    スタの内容を該記憶装置に書き込むのを待たないで、該
    一つのレジスタから該第2のオペランドを読み出し、さ
    らに、該条件が満たされなかったときには、該第2の命
    令が該一つのレジスタ内の該第2のオペランドを該記憶
    装置に書き込むのを待って、該記憶装置から該第1のオ
    ペランドを読み出し、該読み出した第2のオペランドま
    たは第1のオペランドを該演算装置に供給する回路とを
    有する情報処理装置。
  2. 【請求項2】該第1の検出回路は、該第1のオペランド
    が占めるアドレスの範囲が、該第2のオペランドが占め
    るアドレス範囲よりはみ出さないというオペランドの包
    含関係が満たされるか否かを判定する回路を有し、その
    包含関係が満たされないときには該第2の命令が存在し
    ないと判断する請求項1記載の情報処理装置。
  3. 【請求項3】該判定回路は、 該第1の命令が指定するアドレス情報から、該第1のオ
    ペランドのアドレスを算出する回路と、 該第2の命令が指定するアドレス情報から、該第2のオ
    ペランドのアドレスを算出する回路と、 それらのアドレスと、該第1の命令が指定する該第1の
    オペランドの長さと、該第2の命令が指定する該第2の
    オペランドの長さとから、上記包含関係が満たされるか
    否かを判定する回路とを有する請求項2記載の情報処理
    装置。
  4. 【請求項4】オペランドを保持する記憶装置と、 オペランドを保持する複数のレジスタと、 該記憶装置と該複数のレジスタに接続された演算装置
    と、 該記憶装置の保持された第1のオペランドに演算を施す
    第1の命令を実行するときに、すでに実行中の複数の先
    行命令の中に、その第1のオペランドを少なくとも一部
    として含む第2のオペランドを該複数のレジスタの一つ
    から読み出し、その第2のオペランドに演算を施さない
    で、該記憶装置に書き込む第2の命令が存在するか否か
    を検出する第1の検出回路と、 該複数の先行命令の中に、該第2の命令より後続の命令
    であって、該一つのレジスタの内容を書き換える第3の
    命令が存在するか否かを検出する第2の検出回路と、 該複数の先行命令の中に、該第2の命令より後続の命令
    であって、該複数のレジスタの内、該第1のオペランド
    のアドレスを算出するために該第1の命令が指定した他
    の一つのレジスタの内容を書き換える第4の命令が存在
    するか否かを検出する第3の検出回路と、 該第1、第2,第3の検出回路による検出の結果、該第2
    の命令が存在し、かつ、該第3、第4の命令が存在しな
    いという条件が満たされたときには、該第2の命令が該
    一つのレジスタの内容を該記憶装置に書き込むのを待た
    ないで、該一つのレジスタから該第2のオペランドを読
    み出し、さらに、諸条件が満たされなかったときには、
    該第2の命令が該一つのレジスタ内の該第2のオペラン
    ドを該記憶装置に書き込むのを待って、該記憶装置から
    該第1のオペランドを読み出し、該読み出した第2のオ
    ペランドまたは該第1のオペランドを該演算装置に供給
    する回路とを有し、 該第1の検出回路は、該他の一つのレジスタの番号と、
    該複数のレジスタの内、オペランドのアドレスを算出す
    るためのいずれかの先行する命令が指定した少な.とも
    一つのレジスタの番号とを比較する回路を有し、該第1
    のオペランドのアドレスおよび該先行する命令が指定し
    たオペランドのアドレスを算出しないで、該比較回路に
    よるレジスタ番号の比較結果を使用して該先行する命令
    が該第2の命令であるか否かを検出する回路からなる情
    報処理装置。
  5. 【請求項5】オペランドを保持する記憶装置と、 命令で指定可能な数より多い複数の、オペランド保持用
    のレジスタと、 該記憶装置と該複数のレジスタに接続された演算装置
    と、 実行すべき命令が指定する論理レジスタに対して、該複
    数のレジスタの一つを割り当てるレジスタ制御回路であ
    って、内容を更新すべき論理レジスタが命令で指定され
    たときには、その論理レジスタに対しては該複数のレジ
    スタの内の未割り当ての一つのレジスタを新たに割り当
    て、内容を読み出すべき論理レジスタが命令で指定され
    たときには、その論理レジスタに対してすでに割り当て
    られたレジスタを割り当てるものと、 該記憶装置に保持された第1のオペランドに演算を施す
    第1の命令を実行するときに、すでに実行中の複数の先
    行命令の中に、その第1のオペランドを少なくとも一部
    として含む第2のオペランドを該複数のレジスタの一つ
    から読み出して、その第2のオペランドに演算を施さな
    いで、該記憶装置に書き込む第2の命令が存在するか否
    かを、該レジスタ制御回路によるレジスタ割り当て結果
    を使用して検出する回路と、 該検出の結果、該第2の命令が存在することが検出され
    たときには、該第2の命令が該一つのレジスタの内容を
    該記憶装置に書き込むのを待たないで、該一つのレジス
    タから該第2のオペランドを読み出し、さらに、該第2
    の命令の存在が検出されなかったときには、該第2の命
    令が該一つのレジスタ内のオペランドを該記憶装置に書
    き込むのを待って、該記憶装置から該第1のオペランド
    を読み出し、該読み出した第2のオペランドまたは第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 JPS621032A (ja) 1987-01-07
JPH0754461B2 true 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)

Families Citing this family (36)

* 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
JPH01201513A (ja) * 1988-02-03 1989-08-14 Teijin Ltd 異形断面繊維
JP2680019B2 (ja) * 1988-03-03 1997-11-19 帝人株式会社 モケット織物パイル用紡績糸
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
JP3153906B2 (ja) * 1989-02-24 2001-04-09 アドヴァンスド マイクロ デヴァイセス インコーポレイテッド コンピュータの分散型パイプライン制御装置及び方法
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
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
JPH0719222B2 (ja) * 1989-03-30 1995-03-06 日本電気株式会社 ストアバッフア
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
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
US8065504B2 (en) * 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
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
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
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
US6549959B1 (en) 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
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

Family Cites Families (6)

* 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
JPS5392638A (en) * 1977-01-25 1978-08-14 Nec Corp Information processing unit
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
JPH063584B2 (ja) * 1983-12-19 1994-01-12 株式会社日立製作所 情報処理装置

Also Published As

Publication number Publication date
JPS621032A (ja) 1987-01-07
US4831515A (en) 1989-05-16

Similar Documents

Publication Publication Date Title
JPH0754461B2 (ja) 情報処理装置
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
JP3644959B2 (ja) マイクロプロセッサシステム
US6772327B2 (en) Floating point unit pipeline synchronized with processor pipeline
JP2539199B2 (ja) デジタルプロセッサ制御装置
JPH0769818B2 (ja) デ−タ処理装置
US6055625A (en) Pipeline computer with a scoreboard control circuit to prevent interference between registers
JPH0283735A (ja) 命令先取り装置
JPS6014341A (ja) 基本命令セツト計算機システムにおけるトラツプ割込み方式
JP2000148489A (ja) コンピュ―タシステム
JPH02234229A (ja) ソース・リスト、ポインタ・キューおよび結果キュー
JPS63136138A (ja) 情報処理装置
JPH0545985B2 (ja)
JPH0640307B2 (ja) デ−タ処理システム
EP0742517B1 (en) A program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions
JP2003196086A (ja) レジスタウィンドウ方式によるレジスタファイル及びその制御方法
US4816992A (en) Method of operating a data processing system in response to an interrupt
US5276853A (en) Cache system
EP0292188A2 (en) Cache system
JPH02123442A (ja) 高速化メモリ
JP2814683B2 (ja) 命令処理装置
JPS6232508B2 (ja)
JP2778610B2 (ja) パイプライン演算制御方法およびシステム
JP2762441B2 (ja) コプロセッサ

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term