JPH0810430B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH0810430B2 JPH0810430B2 JP61281720A JP28172086A JPH0810430B2 JP H0810430 B2 JPH0810430 B2 JP H0810430B2 JP 61281720 A JP61281720 A JP 61281720A JP 28172086 A JP28172086 A JP 28172086A JP H0810430 B2 JPH0810430 B2 JP H0810430B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- operand
- register
- arithmetic
- general
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
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
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の命令を並列処理する情報処理装置に
係り、特に、パイプライン処理方式(先行制御方式)に
よつて、複数の命令を並列処理するために好適な情報処
理装置に関する。
係り、特に、パイプライン処理方式(先行制御方式)に
よつて、複数の命令を並列処理するために好適な情報処
理装置に関する。
複数の命令を並列(部分的オーバラップによる並列を
含む)に処理する方式(例えば、パイプライン処理方
式)によつて、処理の高速化を図る情報処理装置におい
て、先行命令があるレジスタへ演算結果の書き込みを行
い、後続命令が同一レジスタの内容をアドレス計算のた
めに用いる場合には、先行命令がレジスタへ演算結果の
書き込みを完了するまで、後続命令はアドレス計算を開
始することができず、処理は遅滞が生じる。このような
アドレス計算のために用いるデータの競合を、アドレス
・コンフリクトと呼ぶ。
含む)に処理する方式(例えば、パイプライン処理方
式)によつて、処理の高速化を図る情報処理装置におい
て、先行命令があるレジスタへ演算結果の書き込みを行
い、後続命令が同一レジスタの内容をアドレス計算のた
めに用いる場合には、先行命令がレジスタへ演算結果の
書き込みを完了するまで、後続命令はアドレス計算を開
始することができず、処理は遅滞が生じる。このような
アドレス計算のために用いるデータの競合を、アドレス
・コンフリクトと呼ぶ。
アドレス・コンフリクトを発生している先行命令が、
読み出したオペランドに演算を施すことなくレジスタへ
書き込みを行ういわゆるロード命令である場合に、処理
の遅滞を軽減する方式としては、特公昭56-46170に開示
された方式がある。
読み出したオペランドに演算を施すことなくレジスタへ
書き込みを行ういわゆるロード命令である場合に、処理
の遅滞を軽減する方式としては、特公昭56-46170に開示
された方式がある。
複数の命令を並列に処理する方式によつて、処理の高
速化を図る情報処理装置において、先行命令があるレジ
スタへ演算結果の書き込みを行い、後続命令が同一レジ
スタからオペランドを読み出す場合には、先行命令がレ
ジスタへ演算結果の書き込みを完了するまで、後続命令
はレジスタからオペランドの読み出しを行うことができ
ず、処理に遅滞が生じる。このようなレジスタ上で発生
するオペランドの競合を、レジスタ・オペランド・コン
フリクト、または、単に、オペランド・コンフリクトと
呼ぶ。
速化を図る情報処理装置において、先行命令があるレジ
スタへ演算結果の書き込みを行い、後続命令が同一レジ
スタからオペランドを読み出す場合には、先行命令がレ
ジスタへ演算結果の書き込みを完了するまで、後続命令
はレジスタからオペランドの読み出しを行うことができ
ず、処理に遅滞が生じる。このようなレジスタ上で発生
するオペランドの競合を、レジスタ・オペランド・コン
フリクト、または、単に、オペランド・コンフリクトと
呼ぶ。
上記従来技術は、先行命令がいわゆるロード命令であ
る場合に、アドレス・コンフリクトによつて生じる処理
の遅滞を軽減する方式ではあるが、オペランド・コンフ
リクトによつて生じる処理の遅滞を軽減する点について
配慮がされていなかつた。そのために、オペランド・コ
ンフリクトが発生すると、処理に遅滞が生じるという問
題があつた。
る場合に、アドレス・コンフリクトによつて生じる処理
の遅滞を軽減する方式ではあるが、オペランド・コンフ
リクトによつて生じる処理の遅滞を軽減する点について
配慮がされていなかつた。そのために、オペランド・コ
ンフリクトが発生すると、処理に遅滞が生じるという問
題があつた。
本発明の目的は、先行命令がいわゆるロード命令であ
る場合、先行命令と後続命令との間でオペランド・コン
フリクトが発生しているときにも、先行命令と後続命令
の演算処理を同時に行うことができる情報処理装置を提
供することにある。
る場合、先行命令と後続命令との間でオペランド・コン
フリクトが発生しているときにも、先行命令と後続命令
の演算処理を同時に行うことができる情報処理装置を提
供することにある。
上記目的は、オペランドを保持するストレージと汎用
レジスタと、該ストレージから読み出された複数の命令
のオペランドを保持し、少なくとも2つの命令のオペラ
ンドを供給するオペランド保持手段と、該オペランド保
持手段と該汎用レジスタに接続され、先行命令及び後続
命令のオペランドを選択するオペランド選択手段と、該
オペランド選択手段に接続された少なくとも1つの演算
手段と、実行すべき命令を順次解読して命令解読情報を
生成する解読手段と、該解読手段により生成された複数
の命令解読情報を保持し、少なくとも2つの命令解読情
報を供給する命令保持手段と、該命令保持手段から供給
された命令解読情報により、先行命令が読み出したオペ
ランドに演算を施すことなく該汎用レジスタへ書き込み
を行う命令であることを検出する命令検出手段と、該命
令保持手段から供給された命令解読情報により、先行命
令が該汎用レジスタのあるレジスタへ書き込みを行い、
後続命令が該汎用レジスタの同一レジスタからオペラン
ドの読み出しを行う競合状態を検出する競合検出手段
と、該命令保持手段から供給された命令解読情報によ
り、先行命令が該汎用レジスタのあるレジスタへ書き込
みを行い、後続命令も該汎用レジスタの同一レジスタへ
書き込みを行う重複状態を検出する重複検出手段とを設
けることによつて達成される。
レジスタと、該ストレージから読み出された複数の命令
のオペランドを保持し、少なくとも2つの命令のオペラ
ンドを供給するオペランド保持手段と、該オペランド保
持手段と該汎用レジスタに接続され、先行命令及び後続
命令のオペランドを選択するオペランド選択手段と、該
オペランド選択手段に接続された少なくとも1つの演算
手段と、実行すべき命令を順次解読して命令解読情報を
生成する解読手段と、該解読手段により生成された複数
の命令解読情報を保持し、少なくとも2つの命令解読情
報を供給する命令保持手段と、該命令保持手段から供給
された命令解読情報により、先行命令が読み出したオペ
ランドに演算を施すことなく該汎用レジスタへ書き込み
を行う命令であることを検出する命令検出手段と、該命
令保持手段から供給された命令解読情報により、先行命
令が該汎用レジスタのあるレジスタへ書き込みを行い、
後続命令が該汎用レジスタの同一レジスタからオペラン
ドの読み出しを行う競合状態を検出する競合検出手段
と、該命令保持手段から供給された命令解読情報によ
り、先行命令が該汎用レジスタのあるレジスタへ書き込
みを行い、後続命令も該汎用レジスタの同一レジスタへ
書き込みを行う重複状態を検出する重複検出手段とを設
けることによつて達成される。
命令保持手段から供給された命令解読情報により、先
行命令が読み出したオペランドに演算を施すことなく汎
用レジスタへ書き込みを行う命令であることを命令検出
手段が検出した場合には、少なくとも1つの演算手段が
少なくとも該先行命令と後続命令の演算処理を同時に行
う。
行命令が読み出したオペランドに演算を施すことなく汎
用レジスタへ書き込みを行う命令であることを命令検出
手段が検出した場合には、少なくとも1つの演算手段が
少なくとも該先行命令と後続命令の演算処理を同時に行
う。
また、命令保持手段から供給された命令解読情報によ
り、先行命令が汎用レジスタのあるレジスタへ書き込み
を行い、後続命令が汎用レジスタの同一レジスタからオ
ペランドの読み出しを行う競合状態にあることを競合検
出手段が検出した場合には、オペランド選択手段が該後
続命令の演算処理を行うべき演算手段に該先行命令のオ
ペランドを供給し、少なくとも1つの演算手段が少なく
とも該先行命令と該後続命令の演算処理を同時に行う。
り、先行命令が汎用レジスタのあるレジスタへ書き込み
を行い、後続命令が汎用レジスタの同一レジスタからオ
ペランドの読み出しを行う競合状態にあることを競合検
出手段が検出した場合には、オペランド選択手段が該後
続命令の演算処理を行うべき演算手段に該先行命令のオ
ペランドを供給し、少なくとも1つの演算手段が少なく
とも該先行命令と該後続命令の演算処理を同時に行う。
さらに、命令保持手段から供給された命令解読情報に
より、先行命令が汎用レジスタのあるレジスタへ書き込
みを行い、後続命令も汎用レジスタの同一レジスタへ書
き込みを行う重複状態にあることを重複検出手段が検出
した場合には、該先行命令のレジスタへの書き込みを抑
止する。
より、先行命令が汎用レジスタのあるレジスタへ書き込
みを行い、後続命令も汎用レジスタの同一レジスタへ書
き込みを行う重複状態にあることを重複検出手段が検出
した場合には、該先行命令のレジスタへの書き込みを抑
止する。
以下、本発明をパイプライン処理方式の装置に適用し
た場合について説明する。
た場合について説明する。
第1図は、本発明による処理装置の一実施例の全体構
成を表わすブロツクである。本実施例においては、2つ
の命令を並列に処理する装置を示している。このような
装置において、2つの命令を2つの命令レジスタへ設定
する従来技術については、例えば、特開昭58-176751号
に開示されている。
成を表わすブロツクである。本実施例においては、2つ
の命令を並列に処理する装置を示している。このような
装置において、2つの命令を2つの命令レジスタへ設定
する従来技術については、例えば、特開昭58-176751号
に開示されている。
第1図において、命令レジスタ10,11は、処理すべき
命令を保持する。命令デコーダ20,21は、命令レジスタ1
0,11に保持されている命令を解読して、装置内の各部を
制御するための命令解読情報を生成する。命令キユー30
は、命令デコーダ20,21によつて生成された命令解読情
報を、その命令の演算処理が開始されるまで順次保持す
る。アドレス加算器40,41は、ストレージ50,51から読み
出すストレージ・オペランドの論理アドレスを計算す
る。ストレージ50,51は、処理すべき命令及びデータを
保持している。オペランド・バツフア60は、ストレージ
50,51から読み出したストレージ・オペランドを、その
命令の演算処理が開始されるまで順次保持する。汎用レ
ジスタ70は、一群のレジスタから構成されており、主
に、頻繁に用いられるデータ(レジスタ・オペランド及
びアドレス修飾データなど)を保持している。演算器8
0,81は、命令で指定された演算処理を行う。ラツプ制御
回路90及び演算制御回路95は、本発明を実現する上で必
要となる回路であり、後に、詳しく説明することとす
る。
命令を保持する。命令デコーダ20,21は、命令レジスタ1
0,11に保持されている命令を解読して、装置内の各部を
制御するための命令解読情報を生成する。命令キユー30
は、命令デコーダ20,21によつて生成された命令解読情
報を、その命令の演算処理が開始されるまで順次保持す
る。アドレス加算器40,41は、ストレージ50,51から読み
出すストレージ・オペランドの論理アドレスを計算す
る。ストレージ50,51は、処理すべき命令及びデータを
保持している。オペランド・バツフア60は、ストレージ
50,51から読み出したストレージ・オペランドを、その
命令の演算処理が開始されるまで順次保持する。汎用レ
ジスタ70は、一群のレジスタから構成されており、主
に、頻繁に用いられるデータ(レジスタ・オペランド及
びアドレス修飾データなど)を保持している。演算器8
0,81は、命令で指定された演算処理を行う。ラツプ制御
回路90及び演算制御回路95は、本発明を実現する上で必
要となる回路であり、後に、詳しく説明することとす
る。
第2図は、パイプライン処理方式における命令処理の
標準的な流れを示しているタイム・チャートであり、横
軸は時間軸である。時間軸はサイクルを単位として目盛
られており、各サイクルは初期(図の左端)から順にC
0,C1,C2,…と名付けられている。
標準的な流れを示しているタイム・チャートであり、横
軸は時間軸である。時間軸はサイクルを単位として目盛
られており、各サイクルは初期(図の左端)から順にC
0,C1,C2,…と名付けられている。
第2A図は、命令を1つずつ処理する装置の命令処理の
流れを示し、第2B図は、命令を2つずつ並列に処理する
装置の命令処理の流れを示している。命令処理は、複数
の処理ステージに分割される。各処理ステージは、複数
の命令に対して順次連続的に適用され、並列に動作す
る。第2B図については、まず、C0において、命令n、命
令n+1がDステージを開始する。次に、C1において、
命令n、命令n+1はAステージに進み、この2つの命
令の直後の2つの命令がDステージを開始する。さら
に、C2において、命令n、命令n+1はLステージに進
み、この2つの命令の直後の2つの命令がAステージに
進む。また、直後の2つの命令のさらに後に続く2つの
命令がDステージを開始する。以下、同様にして、複数
の命令(本実施例においては2つの命令の組)が、各処
理ステージによつて、並列に処理される。その結果、各
命令は、各処理ステージの処理時間であるサイクル時間
毎に処理されるように見え、総合的な命令処理時間が短
縮される。
流れを示し、第2B図は、命令を2つずつ並列に処理する
装置の命令処理の流れを示している。命令処理は、複数
の処理ステージに分割される。各処理ステージは、複数
の命令に対して順次連続的に適用され、並列に動作す
る。第2B図については、まず、C0において、命令n、命
令n+1がDステージを開始する。次に、C1において、
命令n、命令n+1はAステージに進み、この2つの命
令の直後の2つの命令がDステージを開始する。さら
に、C2において、命令n、命令n+1はLステージに進
み、この2つの命令の直後の2つの命令がAステージに
進む。また、直後の2つの命令のさらに後に続く2つの
命令がDステージを開始する。以下、同様にして、複数
の命令(本実施例においては2つの命令の組)が、各処
理ステージによつて、並列に処理される。その結果、各
命令は、各処理ステージの処理時間であるサイクル時間
毎に処理されるように見え、総合的な命令処理時間が短
縮される。
ここで、個々の命令について着目すると、各命令処理
は、サイクルを単位時間として、D,A,L,E,Pと呼ぶ各ス
テージを経て進行する。つまり、第1図において、命令
レジスタ10,11に保持されている命令は、Dステージ
で、命令デコーダ20,21による命令の解読と、アドレス
加算器40,41によるアドレスの計算が行われ、ストレー
ジ・オペランドの論理アドレスが得られる。次のAステ
ージでは、ストレージ50,51において、論理アドレスか
ら物理アドレスへの変換と、ストレージ・オペランドの
読み出しが行われる。そして、続くLステージでは、ス
トレージ50,51から読み出されたストレージ・オペラン
ドをオペランド・バツフア60へ転送し、さらに、オペラ
ンド・バツフア60から演算器80,81に転送する。また、
汎用レジスタ70からレジスタ・オペランドを読み出し
て、演算器80,81に転送する。以上で、命令で指定され
た演算処理を演算器80,81において開始するための準備
が整う。Eステージでは、演算器80,81による演算処理
が実行される。そして、Pステージで、演算器80,81か
らの演算結果が、汎用レジスタ70へ書き込まれる。
は、サイクルを単位時間として、D,A,L,E,Pと呼ぶ各ス
テージを経て進行する。つまり、第1図において、命令
レジスタ10,11に保持されている命令は、Dステージ
で、命令デコーダ20,21による命令の解読と、アドレス
加算器40,41によるアドレスの計算が行われ、ストレー
ジ・オペランドの論理アドレスが得られる。次のAステ
ージでは、ストレージ50,51において、論理アドレスか
ら物理アドレスへの変換と、ストレージ・オペランドの
読み出しが行われる。そして、続くLステージでは、ス
トレージ50,51から読み出されたストレージ・オペラン
ドをオペランド・バツフア60へ転送し、さらに、オペラ
ンド・バツフア60から演算器80,81に転送する。また、
汎用レジスタ70からレジスタ・オペランドを読み出し
て、演算器80,81に転送する。以上で、命令で指定され
た演算処理を演算器80,81において開始するための準備
が整う。Eステージでは、演算器80,81による演算処理
が実行される。そして、Pステージで、演算器80,81か
らの演算結果が、汎用レジスタ70へ書き込まれる。
ここで、本実施例において、説明のために用いる命令
の型式について説明する。第3図は、RR型式及びRX型式
と呼ばれる命令の型式を示している。RR型式命令は、OP
部,R1部,R2部から構成されている。RX型式命令は、OP
部,R1部,X2部,B2部,D2部から構成されている。OP部は、
演算器80,81において実行されるべき演算処理の種類を
示す。R1,R2,X2,B2の各部は、汎用レジスタ70を構成し
ているレジスタを指定する。R1部,R2部は、それぞれ、
第1,第2オペランドが格納されているレジスタを指定す
る。X2部,B2部が指定するレジスタの内容は、D2部の内
容とアドレス加算器40によつて加算され、ストレージ50
に格納されている第2オペランドの論理アドレスが生成
される。RR型式命令及びRX型式命令は、一般に、第1オ
ペランドと第2オペランドとを読み出し、演算を施し
て、第1オペランドが格納されていたレジスタへ演算結
果を書き込む。ただし、いわゆるロード命令の場合に
は、第2オペランドを読み出し、演算を施すことなく、
第1オペランドに指定されたレジスタへ書き込みを行
う。
の型式について説明する。第3図は、RR型式及びRX型式
と呼ばれる命令の型式を示している。RR型式命令は、OP
部,R1部,R2部から構成されている。RX型式命令は、OP
部,R1部,X2部,B2部,D2部から構成されている。OP部は、
演算器80,81において実行されるべき演算処理の種類を
示す。R1,R2,X2,B2の各部は、汎用レジスタ70を構成し
ているレジスタを指定する。R1部,R2部は、それぞれ、
第1,第2オペランドが格納されているレジスタを指定す
る。X2部,B2部が指定するレジスタの内容は、D2部の内
容とアドレス加算器40によつて加算され、ストレージ50
に格納されている第2オペランドの論理アドレスが生成
される。RR型式命令及びRX型式命令は、一般に、第1オ
ペランドと第2オペランドとを読み出し、演算を施し
て、第1オペランドが格納されていたレジスタへ演算結
果を書き込む。ただし、いわゆるロード命令の場合に
は、第2オペランドを読み出し、演算を施すことなく、
第1オペランドに指定されたレジスタへ書き込みを行
う。
第4図は、本発明の効果が発揮される命令列の一例を
示している。先行命令Lは、いわゆるロード命令の例で
ある。Xb,Bbが指定するレジスタの内容(Xb),(Bb)
と、Dbの値そのものを加算することによつて、ストレー
ジに置かれている第2オペランドの論理アドレスSbが得
られる。先行命令Lは、論理アドレスSbによつて指定さ
れる第2オペランド(Sb)を、レジスタRaへ書き込む。
後続命令ARは、レジスタ間で加算を行う命令の例であ
る。第1オペランドは、Rcが指定するレジスタの内容
(Rc)であり、第2オペランドは、Rdが指定するレジス
タの内容(Rd)である。後続命令ARは、(Rc)と(Rd)
を加算し、レジスタRcへ書き込む。しかし、Rc=Raまた
はRd=Raである場合には、先行命令Lがレジスタへの書
き込みを完了するまで、後続命令ARはレジスタからのオ
ペランドの読み出しを開始することができない。この状
態を、レジスタ・オペランド・コンフリクト、または、
単に、オペランド・コンフリクトと呼ぶ。本発明は、オ
ペランド・コンフリクトが発生している場合において
も、先行命令であるロード命令のレジスタへの書き込み
を待つことなく、後続命令の演算処理を行うことを可能
とする。
示している。先行命令Lは、いわゆるロード命令の例で
ある。Xb,Bbが指定するレジスタの内容(Xb),(Bb)
と、Dbの値そのものを加算することによつて、ストレー
ジに置かれている第2オペランドの論理アドレスSbが得
られる。先行命令Lは、論理アドレスSbによつて指定さ
れる第2オペランド(Sb)を、レジスタRaへ書き込む。
後続命令ARは、レジスタ間で加算を行う命令の例であ
る。第1オペランドは、Rcが指定するレジスタの内容
(Rc)であり、第2オペランドは、Rdが指定するレジス
タの内容(Rd)である。後続命令ARは、(Rc)と(Rd)
を加算し、レジスタRcへ書き込む。しかし、Rc=Raまた
はRd=Raである場合には、先行命令Lがレジスタへの書
き込みを完了するまで、後続命令ARはレジスタからのオ
ペランドの読み出しを開始することができない。この状
態を、レジスタ・オペランド・コンフリクト、または、
単に、オペランド・コンフリクトと呼ぶ。本発明は、オ
ペランド・コンフリクトが発生している場合において
も、先行命令であるロード命令のレジスタへの書き込み
を待つことなく、後続命令の演算処理を行うことを可能
とする。
第5図は、第4図の命令列を含む命令列を、2命令ず
つ並列に処理するときの命令の流れを示すタイム・チヤ
ートである。
つ並列に処理するときの命令の流れを示すタイム・チヤ
ートである。
第5A図は、第4図の命令列の行先命令Lと後続命令AR
との間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)場合のタイム・チヤートを示して
いる。この場合には、第2B図に示したパイプライン処理
方式における命令処理の標準的な流れと同一であり、処
理に遅滞は生じていない。
との間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)場合のタイム・チヤートを示して
いる。この場合には、第2B図に示したパイプライン処理
方式における命令処理の標準的な流れと同一であり、処
理に遅滞は生じていない。
第5B図は、第4図の命令列の先行命令Lと後続命令AR
との間でオペランド・コンフリクトが発生している(Rc
=RaまたはRd=Ra)場合のタイム・チヤートを示してい
る。この場合、後続命令ARが読み出すべきオペランドの
少なくとも一方((Rc)または(Rd))は、先行命令L
によつてレジスタRaに書き込まれる内容である。レジス
タRaへの書き込みを行う先行命令LのPステージは、C4
サイクルにおいて処理される。したがつて、レジスタR
c,Rdからオペランドの読み出しを行う後続命令ARのLス
テージは、C4サイクルまでは完了することができない。
この結果、演算処理が行われるEステージに着目する
と、命令AR以降の命令は、オペランド・コンフリクトが
発生していない場合に比べて、処理に2サイクルの遅滞
が生じることとなる。
との間でオペランド・コンフリクトが発生している(Rc
=RaまたはRd=Ra)場合のタイム・チヤートを示してい
る。この場合、後続命令ARが読み出すべきオペランドの
少なくとも一方((Rc)または(Rd))は、先行命令L
によつてレジスタRaに書き込まれる内容である。レジス
タRaへの書き込みを行う先行命令LのPステージは、C4
サイクルにおいて処理される。したがつて、レジスタR
c,Rdからオペランドの読み出しを行う後続命令ARのLス
テージは、C4サイクルまでは完了することができない。
この結果、演算処理が行われるEステージに着目する
と、命令AR以降の命令は、オペランド・コンフリクトが
発生していない場合に比べて、処理に2サイクルの遅滞
が生じることとなる。
オペランド・コンフリクトによる処理の遅滞を解決す
るための従来技術としては、演算器80,81から汎用レジ
スタ70への書き込みパスの途中から、オペランドを読み
出すための短絡パスを設ける方法が知られている。この
方法を、レジスタ・オペランド・ラツプアラウンド、ま
たは、単に、オペランド・ラツプアラウンドと呼ぶ。
るための従来技術としては、演算器80,81から汎用レジ
スタ70への書き込みパスの途中から、オペランドを読み
出すための短絡パスを設ける方法が知られている。この
方法を、レジスタ・オペランド・ラツプアラウンド、ま
たは、単に、オペランド・ラツプアラウンドと呼ぶ。
第5C図は、第4図の命令列の先行命令Lと後続命令AR
との間でオペランド・コンフリクトが発生している(Rc
=RaまたはRd=Ra)ときに、オペランド・ラツプアラウ
ンドを用いる場合のタイム・チヤートを示している。こ
の場合、後続命令ARが読み出すべきオペランド少なくと
も一方((Rc)または(Rd))が、先行命令Lによつて
レジスタRaへ書き込まれる内容であることには変わりは
ない。しかし、オペランド・ラツプアラウンドを用いて
いるために、後続命令ARのLステージにおいて、オペラ
ンドをレジスタからではなく、短絡パスから読み出すこ
とが可能である。この短絡パスに読み出すべきオペラン
ドが確定する先行命令LのEステージは、C3サイクルの
おいて処理される。したがつて、後続命令ARのLステー
ジは、C3サイクルまでで完了することができる。この結
果、演算処理が行われるEステージに着目すると、命令
AR以降の命令は、オペランド・コンフリクトが発生して
いない場合に比べて、処理に1サイクルの遅滞が生じる
ことになる。
との間でオペランド・コンフリクトが発生している(Rc
=RaまたはRd=Ra)ときに、オペランド・ラツプアラウ
ンドを用いる場合のタイム・チヤートを示している。こ
の場合、後続命令ARが読み出すべきオペランド少なくと
も一方((Rc)または(Rd))が、先行命令Lによつて
レジスタRaへ書き込まれる内容であることには変わりは
ない。しかし、オペランド・ラツプアラウンドを用いて
いるために、後続命令ARのLステージにおいて、オペラ
ンドをレジスタからではなく、短絡パスから読み出すこ
とが可能である。この短絡パスに読み出すべきオペラン
ドが確定する先行命令LのEステージは、C3サイクルの
おいて処理される。したがつて、後続命令ARのLステー
ジは、C3サイクルまでで完了することができる。この結
果、演算処理が行われるEステージに着目すると、命令
AR以降の命令は、オペランド・コンフリクトが発生して
いない場合に比べて、処理に1サイクルの遅滞が生じる
ことになる。
ところで、第4図の命令列の処理において、ストレー
ジ50からオペランド・バツフア60へ読み出される先行命
令Lの第2オペランド(Sb)は、演算器80による演算を
施されることなく、そのままレジスタRaへ書き込まれ
る。したがつて、先行命令Lと後続命令ARとの間でオペ
ランド・コンフリクトが発生している(Rc=RaまたはRd
=Ra)場合、後続命令ARがレジスタRaから読み出すべき
オペランド(Ra)は、先行命令Lがストレージ50からオ
ペランド・バツフア60へ読み出すオペランド(Sb)と同
一である。本発明は、後続命令ARが読み出すべきオペラ
ンドを、行先命令Lが演算結果を書き込む汎用レジスタ
70のレジスタからではなく、先行命令Lがオペランドを
読み出すリソース(この場合は、オペランド・バツフア
60)から読み出すことを可能にする。
ジ50からオペランド・バツフア60へ読み出される先行命
令Lの第2オペランド(Sb)は、演算器80による演算を
施されることなく、そのままレジスタRaへ書き込まれ
る。したがつて、先行命令Lと後続命令ARとの間でオペ
ランド・コンフリクトが発生している(Rc=RaまたはRd
=Ra)場合、後続命令ARがレジスタRaから読み出すべき
オペランド(Ra)は、先行命令Lがストレージ50からオ
ペランド・バツフア60へ読み出すオペランド(Sb)と同
一である。本発明は、後続命令ARが読み出すべきオペラ
ンドを、行先命令Lが演算結果を書き込む汎用レジスタ
70のレジスタからではなく、先行命令Lがオペランドを
読み出すリソース(この場合は、オペランド・バツフア
60)から読み出すことを可能にする。
第5D図は、第4図の命令列の行先命令Lと後続命令AR
との間でオペランド・コンフリクトが発生している(Rc
=RaまたはRd=Ra)ときに、本発明を用いる場合のタイ
ム・チヤートを示している。本発明によれば、後続命令
ARは、Lステージにおいて、オペランドを汎用レジスタ
70からではなく、オペランド・バツフア60から読み出す
ことが可能である。このオペランド・バツフア60に読み
出すべきオペランドが確定する先行命令LのLステージ
は、C2サイクルにおいて処理される。したがつて、後続
命令ARのLステージは、C2サイクルまでで完了すること
ができる。この結果、演算処理が行われるEステージに
着目すると、命令AR以降の命令も、オペランド・コンフ
リクトが発生していない場合と同様なサイクルで処理す
ることが可能となる。
との間でオペランド・コンフリクトが発生している(Rc
=RaまたはRd=Ra)ときに、本発明を用いる場合のタイ
ム・チヤートを示している。本発明によれば、後続命令
ARは、Lステージにおいて、オペランドを汎用レジスタ
70からではなく、オペランド・バツフア60から読み出す
ことが可能である。このオペランド・バツフア60に読み
出すべきオペランドが確定する先行命令LのLステージ
は、C2サイクルにおいて処理される。したがつて、後続
命令ARのLステージは、C2サイクルまでで完了すること
ができる。この結果、演算処理が行われるEステージに
着目すると、命令AR以降の命令も、オペランド・コンフ
リクトが発生していない場合と同様なサイクルで処理す
ることが可能となる。
さて、以下では、第1図に戻つて、本発明を用いて構
成された装置の動作を説明する。
成された装置の動作を説明する。
命令レジスタ10,11に設定された命令は、Dステージ
において、命令の解読とアドレス計算が行われる。つま
り、命令のOP部が命令デコーダ20,21によつて解読さ
れ、装置内の各部を制御するための命令解読情報を生成
する。この命令解読情報のなかで、本発明に関連のある
情報を次に示す。
において、命令の解読とアドレス計算が行われる。つま
り、命令のOP部が命令デコーダ20,21によつて解読さ
れ、装置内の各部を制御するための命令解読情報を生成
する。この命令解読情報のなかで、本発明に関連のある
情報を次に示す。
・ OP…演算器80,81において行うべき演算の種類を指
定する。
定する。
・ N1…汎用レジスタ70から第1オペランドの読み出し
を行うことを示す。
を行うことを示す。
・ N2…汎用レジスタ70から第2オペランドの読み出し
を行うことを示す。
を行うことを示す。
・ CH…汎用レジスタ70へ演算結果の書き込みを行うこ
とを示す。
とを示す。
・ LD…ロード(ストレージ及びレジスタ内の第2オペ
ランドをレジスタへ転送する)命令であることを示す。
ランドをレジスタへ転送する)命令であることを示す。
・ BP…ストレージ50,51から読み出しを行うオペラン
ドを保持するオペランド・バツフア60のエントリを指定
する。
ドを保持するオペランド・バツフア60のエントリを指定
する。
さらに、命令のR1部は、第1オペランドの読み出し及
び演算結果の書き込みを行うべき汎用レジスタ70のレジ
スタを指定する。また、命令型式がRR型式である場合に
は、命令のR2部は、第2オペランドの読み出しを行う汎
用レジスタ70のレジスタを指定する。一方、命令型式が
RX型式である場合には、命令のX2部とB2部は、ストレー
ジ50,51から読み出すオペランドの論理アドレスを計算
するために用いられる汎用レジスタ70のレジスタを指定
する。これらの命令解読情報は、命令キユー30によつ
て、順次保持される。
び演算結果の書き込みを行うべき汎用レジスタ70のレジ
スタを指定する。また、命令型式がRR型式である場合に
は、命令のR2部は、第2オペランドの読み出しを行う汎
用レジスタ70のレジスタを指定する。一方、命令型式が
RX型式である場合には、命令のX2部とB2部は、ストレー
ジ50,51から読み出すオペランドの論理アドレスを計算
するために用いられる汎用レジスタ70のレジスタを指定
する。これらの命令解読情報は、命令キユー30によつ
て、順次保持される。
命令型式がRX型式である場合、命令の解読が命令デコ
ーダ20,21において行われると同時に、ストレージ50,51
から読み出すオペランドの論理アドレスの計算がアドレ
ス加算器40,41において行われる。つまり、命令のX2部
とB2部によつて指定された汎用レジスタ70のレジスタの
内容と命令のD2部とがアドレス加算器40,41によつて加
算され、ストレージ50,51へ送出される。このとき、読
み出すオペランドを保持すべきオペランド・バツフア60
のエントリを指定する命令解読情報BPも、ストレージ5
0、51へ送出される。
ーダ20,21において行われると同時に、ストレージ50,51
から読み出すオペランドの論理アドレスの計算がアドレ
ス加算器40,41において行われる。つまり、命令のX2部
とB2部によつて指定された汎用レジスタ70のレジスタの
内容と命令のD2部とがアドレス加算器40,41によつて加
算され、ストレージ50,51へ送出される。このとき、読
み出すオペランドを保持すべきオペランド・バツフア60
のエントリを指定する命令解読情報BPも、ストレージ5
0、51へ送出される。
ストレージ50,51は、読み出すべきオペランドの論理
アドレスを受け取ると、Aステージにおいて、論理アド
レスから物理アドレスへの変換を行つて、オペランドを
読み出す。読み出したオペランドは、受け取つて命令解
読情報BPとともに、オペランド・バツフア60へ送出す
る。一般に、ストレージ50,51は、高速小容量のバツフ
ア・ストレージと、低速大容量のメイン・ストレージと
の組合せによつて構成される。読み出すべきオペランド
がバツフア・ストレージ内に存在する場合には、1サイ
クルの間にオペランドを読み出すことが可能である。し
かし、読み出すべきオペランドがバツフア・ストレージ
内に存在しない場合には、オペランドを読み出すために
数サイクル必要となり、Aステージにおける処理時間が
遅延することとなる。
アドレスを受け取ると、Aステージにおいて、論理アド
レスから物理アドレスへの変換を行つて、オペランドを
読み出す。読み出したオペランドは、受け取つて命令解
読情報BPとともに、オペランド・バツフア60へ送出す
る。一般に、ストレージ50,51は、高速小容量のバツフ
ア・ストレージと、低速大容量のメイン・ストレージと
の組合せによつて構成される。読み出すべきオペランド
がバツフア・ストレージ内に存在する場合には、1サイ
クルの間にオペランドを読み出すことが可能である。し
かし、読み出すべきオペランドがバツフア・ストレージ
内に存在しない場合には、オペランドを読み出すために
数サイクル必要となり、Aステージにおける処理時間が
遅延することとなる。
オペランド・バツフア60は、Lステージにおいて、ス
トレージ50,51から送られてくるオペランドと命令解読
情報BPを受け取る。受け取られたオペランドは、命令解
読情報BPによつて指定されるオペランド・バツフア60の
エントリに保持される。
トレージ50,51から送られてくるオペランドと命令解読
情報BPを受け取る。受け取られたオペランドは、命令解
読情報BPによつて指定されるオペランド・バツフア60の
エントリに保持される。
さて、ある特定の命令について、命令解読情報が命令
キユー30に保持され、また、必要な場合にはストレージ
50,51から読み出すべきオペランドがオペランド・バツ
フア60に保持されているとき、演算器80,81が以前の命
令の演算処理を完了することが、その命令の演算処理を
演算器80,81によつて行うための条件である。以上の条
件が整うと、Lステージにおいて、命令解読情報が命令
キユー30から取り出されて、演算器80,81へ送出され
る。このときに、命令キユー30からオペランド・バツフ
ア60へ送られる命令解読情報BPによつて指定されるエン
トリに保持されているオペランドが取り出される。ま
た、命令キユー30から汎用レジスタ70へ送られる命令解
読情報R1及びR2によつて指定されるレジスタの内容が読
み出される。オペランド・バツフア60または汎用レジス
タ70から読み出されるオペランドは、命令キユー30から
送られてくる命令解読情報N2によつて制御されるセレク
タ84,85において一方が選択され、演算器80,81へ送られ
る。この際、命令解読情報は、ラツプ制御回路90及び演
算制御回路95を介して演算器80,81へ送られ、また、オ
ペランドは、ラツプ制御回路90によつて制御されるセレ
クタ87,89を介して演算器80,81へ送られる。本発明は、
主として、ラツプ制御回路90,演算制御回路95及びセレ
クタ87,89によつて実現されるが、詳細については後述
することとする。
キユー30に保持され、また、必要な場合にはストレージ
50,51から読み出すべきオペランドがオペランド・バツ
フア60に保持されているとき、演算器80,81が以前の命
令の演算処理を完了することが、その命令の演算処理を
演算器80,81によつて行うための条件である。以上の条
件が整うと、Lステージにおいて、命令解読情報が命令
キユー30から取り出されて、演算器80,81へ送出され
る。このときに、命令キユー30からオペランド・バツフ
ア60へ送られる命令解読情報BPによつて指定されるエン
トリに保持されているオペランドが取り出される。ま
た、命令キユー30から汎用レジスタ70へ送られる命令解
読情報R1及びR2によつて指定されるレジスタの内容が読
み出される。オペランド・バツフア60または汎用レジス
タ70から読み出されるオペランドは、命令キユー30から
送られてくる命令解読情報N2によつて制御されるセレク
タ84,85において一方が選択され、演算器80,81へ送られ
る。この際、命令解読情報は、ラツプ制御回路90及び演
算制御回路95を介して演算器80,81へ送られ、また、オ
ペランドは、ラツプ制御回路90によつて制御されるセレ
クタ87,89を介して演算器80,81へ送られる。本発明は、
主として、ラツプ制御回路90,演算制御回路95及びセレ
クタ87,89によつて実現されるが、詳細については後述
することとする。
演算器80,81は、Eステージにおいて、命令解読情報O
Pによつて指定される演算を、第1オペランドと第2オ
ペランドとの間に施し、演算結果を求める。簡単な演算
処理は、通常、1サイクルで完了することが可能であ
る。しかし、複雑な演算処理を行う場合には、数サイク
ルを必要とし、Eステージが遅延する結果となる。
Pによつて指定される演算を、第1オペランドと第2オ
ペランドとの間に施し、演算結果を求める。簡単な演算
処理は、通常、1サイクルで完了することが可能であ
る。しかし、複雑な演算処理を行う場合には、数サイク
ルを必要とし、Eステージが遅延する結果となる。
演算器80,81によつて演算結果が求められると、その
演算結果は、Pステージにおいて、命令解読情報R1によ
つて指定される汎用レジスタ70のレジスタへ書き込まれ
る。
演算結果は、Pステージにおいて、命令解読情報R1によ
つて指定される汎用レジスタ70のレジスタへ書き込まれ
る。
さて、命令キユー30は、命令デコーダ20,21において
命令の解読が完了してから、演算器80,81において演算
処理が開始されるまで、命令解読情報を保持するために
設けられている。ここでは、命令キユー30の動作につい
て詳しく説明する。
命令の解読が完了してから、演算器80,81において演算
処理が開始されるまで、命令解読情報を保持するために
設けられている。ここでは、命令キユー30の動作につい
て詳しく説明する。
命令キユー30は、イン・ポインタとアウト・ポインタ
とによつて、先入れ先出し(FIFO)制御が行われる。本
実施例において、命令キユー30は、2つのイン・ポイン
タ32,33と、2つのアウト・ポインタ36,37を備えてい
る。イン・ポインタ32,33は、それぞれ、命令デコーダ2
0,21から送られてくる命令解読情報を保持すべきエント
リを指示している。アウト・ポインタ36,37は、それぞ
れ、演算器80,81において演算処理が開始されるときに
装置内の各部へ送り出すべき命令解読情報を保持してい
るエントリを指示している。イン・ポインタ33及びアウ
ト・ポインタ37は、それぞれ、常に、イン・ポインタ32
及びアウト・ポインタ36が指示しているエントリの次の
エントリを指示するように制御される。したがつて、2
つのイン・ポインタ及びアウト・ポインタは、1つにま
とめることも可能である。命令デコーダ20,21は、それ
ぞれ、命令レジスタ10,11に保持されている命令の解読
が完了すると、命令解読情報を命令キユー30へ送り出す
とともに、解読完了信号をイン・ポインタ32,33へ送出
する。命令デコーダ20,21の両方が解読完了信号を送出
した場合には、イン・ポインタ32,33は、2つのインク
リメントされる。命令デコーダ20のみが解読完了信号を
送出した場合には、イン・ポインタ32,33は、1つイン
クリメントされる。命令デコーダ20が解読完了信号を送
出しなかつた場合には、命令デコーダ21が送出した解読
完了信号は抑止され、イン・ポインタ32,33は、インク
リメントされない。演算制御回路95は、演算器80,81に
おいて命令の演算処理が完了すると、演算器80,81に対
して演算結果を汎用レジスタ70へ書き込むことを指示す
るとともに、演算器80,81に対応した演算完了信号をア
ウト・ポインタ36,37へ送出する。演算制御回路95が演
算器80,81の両方に対応した演算完了信号を送出した場
合には、アウト・ポインタ36,37は、2つインクリメン
トされる。演算制御回路95が演算器80,81の片方のみに
対応した演算完了信号を送出した場合には、アウト・ポ
インタ36,37は、1つインクリメントされる。
とによつて、先入れ先出し(FIFO)制御が行われる。本
実施例において、命令キユー30は、2つのイン・ポイン
タ32,33と、2つのアウト・ポインタ36,37を備えてい
る。イン・ポインタ32,33は、それぞれ、命令デコーダ2
0,21から送られてくる命令解読情報を保持すべきエント
リを指示している。アウト・ポインタ36,37は、それぞ
れ、演算器80,81において演算処理が開始されるときに
装置内の各部へ送り出すべき命令解読情報を保持してい
るエントリを指示している。イン・ポインタ33及びアウ
ト・ポインタ37は、それぞれ、常に、イン・ポインタ32
及びアウト・ポインタ36が指示しているエントリの次の
エントリを指示するように制御される。したがつて、2
つのイン・ポインタ及びアウト・ポインタは、1つにま
とめることも可能である。命令デコーダ20,21は、それ
ぞれ、命令レジスタ10,11に保持されている命令の解読
が完了すると、命令解読情報を命令キユー30へ送り出す
とともに、解読完了信号をイン・ポインタ32,33へ送出
する。命令デコーダ20,21の両方が解読完了信号を送出
した場合には、イン・ポインタ32,33は、2つのインク
リメントされる。命令デコーダ20のみが解読完了信号を
送出した場合には、イン・ポインタ32,33は、1つイン
クリメントされる。命令デコーダ20が解読完了信号を送
出しなかつた場合には、命令デコーダ21が送出した解読
完了信号は抑止され、イン・ポインタ32,33は、インク
リメントされない。演算制御回路95は、演算器80,81に
おいて命令の演算処理が完了すると、演算器80,81に対
して演算結果を汎用レジスタ70へ書き込むことを指示す
るとともに、演算器80,81に対応した演算完了信号をア
ウト・ポインタ36,37へ送出する。演算制御回路95が演
算器80,81の両方に対応した演算完了信号を送出した場
合には、アウト・ポインタ36,37は、2つインクリメン
トされる。演算制御回路95が演算器80,81の片方のみに
対応した演算完了信号を送出した場合には、アウト・ポ
インタ36,37は、1つインクリメントされる。
オペランド・コンフリクトによる処理の遅滞を解決す
る本発明は、オペランド・コンフリクトを発生している
先行命令がいわゆるロード命令である場合に、オペラン
ド・コンフリクトを発生している後続命令が読み出すべ
きオペランドとして、先行命令が読み出したオペランド
を供給する。本実施例においては、ラツプ制御回路90
が、オペランド・コンフリクトの検出及びそれによる処
理の遅滞の解決のための制御を行う。
る本発明は、オペランド・コンフリクトを発生している
先行命令がいわゆるロード命令である場合に、オペラン
ド・コンフリクトを発生している後続命令が読み出すべ
きオペランドとして、先行命令が読み出したオペランド
を供給する。本実施例においては、ラツプ制御回路90
が、オペランド・コンフリクトの検出及びそれによる処
理の遅滞の解決のための制御を行う。
第6図は、ラツプ制御回路90の内部構成を示すブロツ
ク図である。次のサイクルにおいて演算処理を行うため
に待機している先行命令及び後続命令の命令解読情報
は、命令キユー30からラツプ制御回路90へ送られてく
る。先行命令の命令解読情報は、アウト・ポインタ36に
よつて指示される命令キユー30のエントリに保持されて
いる。一方、後続命令の命令解読情報は、アウト・ポイ
ンタ37によつて指示される命令キユー30のエントリに保
持されている。以後の説明において必要な場合には、先
行命令の命令解読情報には文字pは、後続命令の命令解
読情報には文字sを後に付して区別することとする。
ク図である。次のサイクルにおいて演算処理を行うため
に待機している先行命令及び後続命令の命令解読情報
は、命令キユー30からラツプ制御回路90へ送られてく
る。先行命令の命令解読情報は、アウト・ポインタ36に
よつて指示される命令キユー30のエントリに保持されて
いる。一方、後続命令の命令解読情報は、アウト・ポイ
ンタ37によつて指示される命令キユー30のエントリに保
持されている。以後の説明において必要な場合には、先
行命令の命令解読情報には文字pは、後続命令の命令解
読情報には文字sを後に付して区別することとする。
さて、先行命令がロード命令であることを示す命令解
読情報LDp、また、先行命令が汎用レジスタ70への演算
結果の書き込みを行うことを示す命令解読情報CHp及び
そのレジスタを指定する命令解読情報R1pは、アウト・
ポインタ36によつて指示される命令キユー30のエントリ
からラツプ制御回路90へ送られる。一方、後続命令が汎
用レジスタ70から第1オペランドの読み出しを行うこと
を示す命令解読情報N1sと汎用レジスタ70への演算結果
の書き込みを行うことを示す命令解読情報CHs及びその
レジスタを指定する命令解読情報R1sと、汎用レジスタ7
0から第2オペランドの読み出しを行うことを示す命令
解読情報N2s及びそのレジスタを指定する命令解読情報R
2sは、アウト・ポインタ37によつて指示される命令キユ
ー30のエントリからラツプ制御回路90へ送られる。以上
の命令解読情報を用いて、ラツプ制御回路90は、オペラ
ンド・コンフリクト検出信号OC、本発明における先行命
令がロード命令である場合のオペランド・ラツプアラウ
ンド指示信号LW1,LW2及び先行命令の演算結果の書き込
みを抑止する書き込み抑止信号WCを生成する。
読情報LDp、また、先行命令が汎用レジスタ70への演算
結果の書き込みを行うことを示す命令解読情報CHp及び
そのレジスタを指定する命令解読情報R1pは、アウト・
ポインタ36によつて指示される命令キユー30のエントリ
からラツプ制御回路90へ送られる。一方、後続命令が汎
用レジスタ70から第1オペランドの読み出しを行うこと
を示す命令解読情報N1sと汎用レジスタ70への演算結果
の書き込みを行うことを示す命令解読情報CHs及びその
レジスタを指定する命令解読情報R1sと、汎用レジスタ7
0から第2オペランドの読み出しを行うことを示す命令
解読情報N2s及びそのレジスタを指定する命令解読情報R
2sは、アウト・ポインタ37によつて指示される命令キユ
ー30のエントリからラツプ制御回路90へ送られる。以上
の命令解読情報を用いて、ラツプ制御回路90は、オペラ
ンド・コンフリクト検出信号OC、本発明における先行命
令がロード命令である場合のオペランド・ラツプアラウ
ンド指示信号LW1,LW2及び先行命令の演算結果の書き込
みを抑止する書き込み抑止信号WCを生成する。
第6図において、先行命令が書き込みを行うレジスタ
を指定するR1pと、後続命令が読み出しを行うレジスタ
を指定するR1s,R2sとは、それぞれ、比較器901,902によ
つて比較される。先行命令がレジスタへ書き込みを行つ
て、かつ、後続命令がレジスタから読み出しを行い、ま
た、それらのレジスタが一致していることは、アンド・
ゲート911,912によつて検出される。つまり、アンド・
ゲート911,912は、従来のオペランド・コンフリクト
を、それぞれ、後続命令の第1,第2オペランドに対して
検出している。先行命令がいわゆるロード命令ではない
ことは、インバータ920の出力によつて示される。その
結果、アンド・ゲート931,932のデータは、それぞれ、
後続命令の第1,第2オペランドを読み出すときに、ロー
ド命令以外の先行命令との間で、オペランド・コンフリ
クトを発生していることを示す。オア・ゲート940は、
アンド・ゲート931,932の少なくとも一方がオペランド
・コンフリクトを検出すると、オペランド・コンフリク
ト検出信号OCを出力する。ところが、アンド・ゲート91
1,912が従来のオペランド・コンフリクトを検出してい
るとき、先行命令がいわゆるロード命令であるならば、
アンド・ゲート931,932は、オペランド・コンフリクト
検出信号OCの出力を抑止する。一方、このときには、ア
ンド・ゲート951,952によつて、それぞれ、後続命令の
第1,第2オペランドに対応したオペランド・ラツプアラ
ウンド指示信号LW1,LW2が出力される。先行命令及び後
続命令がレジスタへ書き込みを行い、また、それらのレ
ジスタが一致していることは、アンド・ゲート913によ
つて検出される。この場合には、先行命令の演算結果で
はなく、後続命令の演算結果がレジスタへ書き込まれる
べきである。したがつて、アンド・ゲート913によつ
て、先行命令書き込み抑止信号WCが出力される。
を指定するR1pと、後続命令が読み出しを行うレジスタ
を指定するR1s,R2sとは、それぞれ、比較器901,902によ
つて比較される。先行命令がレジスタへ書き込みを行つ
て、かつ、後続命令がレジスタから読み出しを行い、ま
た、それらのレジスタが一致していることは、アンド・
ゲート911,912によつて検出される。つまり、アンド・
ゲート911,912は、従来のオペランド・コンフリクト
を、それぞれ、後続命令の第1,第2オペランドに対して
検出している。先行命令がいわゆるロード命令ではない
ことは、インバータ920の出力によつて示される。その
結果、アンド・ゲート931,932のデータは、それぞれ、
後続命令の第1,第2オペランドを読み出すときに、ロー
ド命令以外の先行命令との間で、オペランド・コンフリ
クトを発生していることを示す。オア・ゲート940は、
アンド・ゲート931,932の少なくとも一方がオペランド
・コンフリクトを検出すると、オペランド・コンフリク
ト検出信号OCを出力する。ところが、アンド・ゲート91
1,912が従来のオペランド・コンフリクトを検出してい
るとき、先行命令がいわゆるロード命令であるならば、
アンド・ゲート931,932は、オペランド・コンフリクト
検出信号OCの出力を抑止する。一方、このときには、ア
ンド・ゲート951,952によつて、それぞれ、後続命令の
第1,第2オペランドに対応したオペランド・ラツプアラ
ウンド指示信号LW1,LW2が出力される。先行命令及び後
続命令がレジスタへ書き込みを行い、また、それらのレ
ジスタが一致していることは、アンド・ゲート913によ
つて検出される。この場合には、先行命令の演算結果で
はなく、後続命令の演算結果がレジスタへ書き込まれる
べきである。したがつて、アンド・ゲート913によつ
て、先行命令書き込み抑止信号WCが出力される。
オペランド・コンフリクト検出信号OCは、演算制御回
路95へ送られ、後続命令が演算器81において演算処理を
開始することを抑止するために用いられる。この場合に
は、後続命令以降の処理に遅滞が生じることとなる。ま
た、オペランド・ラツプアラウンド指示信号LW1,LW2は
それぞれ、セレクタ87,89へ送られ、先行命令が読み出
す第2オペランドを、後続命令が読み出すべき第1,第2
オペランドとして選択するために用いられる。さらに、
先行命令書き込み抑止信号WCは、演算制御回路95へ送ら
れ、先行命令が演算器80において行つた演算処理の演算
結果を汎用レジスタ70へ書き込むことを抑止するために
用いられる。
路95へ送られ、後続命令が演算器81において演算処理を
開始することを抑止するために用いられる。この場合に
は、後続命令以降の処理に遅滞が生じることとなる。ま
た、オペランド・ラツプアラウンド指示信号LW1,LW2は
それぞれ、セレクタ87,89へ送られ、先行命令が読み出
す第2オペランドを、後続命令が読み出すべき第1,第2
オペランドとして選択するために用いられる。さらに、
先行命令書き込み抑止信号WCは、演算制御回路95へ送ら
れ、先行命令が演算器80において行つた演算処理の演算
結果を汎用レジスタ70へ書き込むことを抑止するために
用いられる。
以上のように制御することによつて、第1図に示した
装置は、第4図の命令列を、第5D図のタイム・チヤート
に従つて、処理することが可能となる。
装置は、第4図の命令列を、第5D図のタイム・チヤート
に従つて、処理することが可能となる。
第7図は、第1図における命令キユー30及びオペラン
ド・バツフア60を、2つの命令キユー30,31と2つのオ
ペランド・バツフア60,61とによつて構成した変形例で
ある。本変形例において、命令キユー30,31に対するイ
ン・ポインタ32,33及びアウト・ポインタ36,37は、各々
独立に制御することも可能である。それ以外の装置各部
(例えば、本発明において特徴的なラツプ制御回路90な
ど)は、第1図に示した装置と同一構成とすることが可
能である。
ド・バツフア60を、2つの命令キユー30,31と2つのオ
ペランド・バツフア60,61とによつて構成した変形例で
ある。本変形例において、命令キユー30,31に対するイ
ン・ポインタ32,33及びアウト・ポインタ36,37は、各々
独立に制御することも可能である。それ以外の装置各部
(例えば、本発明において特徴的なラツプ制御回路90な
ど)は、第1図に示した装置と同一構成とすることが可
能である。
第8図は、第1図において二重化されている次の装置
各部を、二重化しないで構成した変形例である。つま
り、命令レジスタ10,命令デコーダ20,アドレス加算器4
0,そして、ストレージ50によつて構成した変形例であ
る。この変形例は、各々の演算部80,81のスループツト
が、命令デコーダ20のスループツトに比べて低い場合に
有効である。ところで、この変形例においては、命令キ
ユー30に対して、1つのイン・ポインタ32と2つのアウ
ト・ポインタ36,37が設けられる。イン・ポインタ32
は、1つの命令デコーダ20が命令の解読を完了すると送
り出す解読完了信号によつてのみ制御される。つまり、
命令デコーダ20が解読完了信号を送出した場合に、イン
・ポインタ32は、1つインクリメントされる。一方、ア
ウト・ポインタ36,37は、第1図に示した装置と同じ
く、演算制御回路95が送り出す2つの演算器80,81に対
応した演算完了信号によつて制御される。それ以外の装
置各部(例えば、本発明において特徴的なラツプ制御回
路90など)は、第1図に示した装置と同一として構成す
ることが可能である。
各部を、二重化しないで構成した変形例である。つま
り、命令レジスタ10,命令デコーダ20,アドレス加算器4
0,そして、ストレージ50によつて構成した変形例であ
る。この変形例は、各々の演算部80,81のスループツト
が、命令デコーダ20のスループツトに比べて低い場合に
有効である。ところで、この変形例においては、命令キ
ユー30に対して、1つのイン・ポインタ32と2つのアウ
ト・ポインタ36,37が設けられる。イン・ポインタ32
は、1つの命令デコーダ20が命令の解読を完了すると送
り出す解読完了信号によつてのみ制御される。つまり、
命令デコーダ20が解読完了信号を送出した場合に、イン
・ポインタ32は、1つインクリメントされる。一方、ア
ウト・ポインタ36,37は、第1図に示した装置と同じ
く、演算制御回路95が送り出す2つの演算器80,81に対
応した演算完了信号によつて制御される。それ以外の装
置各部(例えば、本発明において特徴的なラツプ制御回
路90など)は、第1図に示した装置と同一として構成す
ることが可能である。
第9図は、命令を1つずつ処理する装置に対して、本
発明を適用した他の一実施例である。本実施例は、第8
図に示した変形例にさらに変形を加えた例と考えること
もできる。つまり、第8図における2つの演算器80,81
を、1つの演算器80によつて構成した例と考えることも
できる。
発明を適用した他の一実施例である。本実施例は、第8
図に示した変形例にさらに変形を加えた例と考えること
もできる。つまり、第8図における2つの演算器80,81
を、1つの演算器80によつて構成した例と考えることも
できる。
第10図は、第4図の命令列を含む命令列を、1命令ず
つ処理するときの命令の流れを示すタイム・チヤートで
ある。ただし、第10図に示したタイム・チヤートにおい
ては、先行命令Lの直前の命令が、演算処理のためにE
ステージを2サイクル占有している。本実施例において
は、第10図に示したように、オペランド・コンフリクト
を発生している先行のロード命令以前の命令の演算処理
が複雑で、先行のロード命令の演算処理が待機させられ
ている場合に効果を発揮する。
つ処理するときの命令の流れを示すタイム・チヤートで
ある。ただし、第10図に示したタイム・チヤートにおい
ては、先行命令Lの直前の命令が、演算処理のためにE
ステージを2サイクル占有している。本実施例において
は、第10図に示したように、オペランド・コンフリクト
を発生している先行のロード命令以前の命令の演算処理
が複雑で、先行のロード命令の演算処理が待機させられ
ている場合に効果を発揮する。
第10A図は、第4図の命令列の先行命令Lと後続命令A
Rとの間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)場合のタイム・チヤートを示して
いる。この場合には、演算処理が行われるEステージに
着目すると、先行命令Lの直前の命令の演算処理による
遅滞が生じている。
Rとの間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)場合のタイム・チヤートを示して
いる。この場合には、演算処理が行われるEステージに
着目すると、先行命令Lの直前の命令の演算処理による
遅滞が生じている。
ところで、第4図の命令列の処理において、ストレー
ジ50からオペランド・バツフア60へ読み出される先行命
令Lの第2オペランド(Sb)は、演算部80による演算を
施されることなく、そのままレジスタRaへ書き込まれ
る。したがつて、先行命令Lは、演算器80において特定
の演算処理を行う必要性はない。本発明は、先行命令L
と後続命令ARの演算処理のために必要なオペランドを、
オペランド・バツフア60及び汎用レジスタ70から同時に
読み出し、先行命令Lは、演算器80による演算処理を行
うことなく処理を行い、その時点で空き状態になる演算
器80を用いて、後続命令ARの演算処理を行う。
ジ50からオペランド・バツフア60へ読み出される先行命
令Lの第2オペランド(Sb)は、演算部80による演算を
施されることなく、そのままレジスタRaへ書き込まれ
る。したがつて、先行命令Lは、演算器80において特定
の演算処理を行う必要性はない。本発明は、先行命令L
と後続命令ARの演算処理のために必要なオペランドを、
オペランド・バツフア60及び汎用レジスタ70から同時に
読み出し、先行命令Lは、演算器80による演算処理を行
うことなく処理を行い、その時点で空き状態になる演算
器80を用いて、後続命令ARの演算処理を行う。
第10B図は、第4図の命令列の先行命令Lと後続命令A
Rとの間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)ときに、本発明を用いる場合のタ
イム・チヤートを示している。本発明によれば、先行命
令Lと後続命令ARのEステージは、同時にC4サイクルに
おいて処理される。その結果、演算処理が行われるEス
テージに着目すると、命令AR以降の命令は、従来に比べ
て、処理を1サイクル早く行うことが可能となる。
Rとの間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)ときに、本発明を用いる場合のタ
イム・チヤートを示している。本発明によれば、先行命
令Lと後続命令ARのEステージは、同時にC4サイクルに
おいて処理される。その結果、演算処理が行われるEス
テージに着目すると、命令AR以降の命令は、従来に比べ
て、処理を1サイクル早く行うことが可能となる。
第10C図は、第4図の命令列の先行命令Lと後続命令A
Rとの間でオペランド・コンフリクトが発生している(R
c=RaまたはRd=Ra)場合のタイム・チヤートを示して
いる。この場合に、後続命令ARが読み出すべきオペラン
ドの少なくとも一方((Rc)または(Rd))は、先行命
令LによつてレジスタRaに書き込まれる内容である。レ
ジスタRaへの書き込みを行う先行命令LのPステージ
は、C5サイクルにおいて処理される。したがつて、レジ
スタRc,Rdからオペランドの読み出しを行う後続命令AR
のLステージは、C5サイクルまでは完了することができ
ない。この結果、演算処理が行われるEステージに着目
すると、命令AR以降の命令は、オペランド・コンフリク
トが発生していない場合に比べて、さらに処理に1サイ
クルの遅滞が生じ、結局2サイクルの遅滞が生じること
となる。
Rとの間でオペランド・コンフリクトが発生している(R
c=RaまたはRd=Ra)場合のタイム・チヤートを示して
いる。この場合に、後続命令ARが読み出すべきオペラン
ドの少なくとも一方((Rc)または(Rd))は、先行命
令LによつてレジスタRaに書き込まれる内容である。レ
ジスタRaへの書き込みを行う先行命令LのPステージ
は、C5サイクルにおいて処理される。したがつて、レジ
スタRc,Rdからオペランドの読み出しを行う後続命令AR
のLステージは、C5サイクルまでは完了することができ
ない。この結果、演算処理が行われるEステージに着目
すると、命令AR以降の命令は、オペランド・コンフリク
トが発生していない場合に比べて、さらに処理に1サイ
クルの遅滞が生じ、結局2サイクルの遅滞が生じること
となる。
第10D図は、第4図の命令列の先行命令Lと後続命令A
Rとの間でオペランド・コンフリクトが発生している(R
c=RaまたはRd=Ra)ときに、オペランド・ラツプアラ
ウンドを用いる場合のタイム・チヤートを示している。
この場合には、後続命令ARのLステージにおいて、オペ
ランドをレジスタからではなく、前述した短絡パスから
読み出すことが可能である。この短絡パスに読み出すべ
きオペランドが確定する先行命令LのEステージは、C4
サイクルにおいて処理される。したがつて、後続命令AR
のLステージは、C4サイクルまでで完了することができ
る。この結果、演算処理が行われるEステージに着目す
ると、命令AR以降の命令は、オペランド・コンフリクト
が発生していない場合と同じく、処理に1サイクルの遅
滞が生じることになる。
Rとの間でオペランド・コンフリクトが発生している(R
c=RaまたはRd=Ra)ときに、オペランド・ラツプアラ
ウンドを用いる場合のタイム・チヤートを示している。
この場合には、後続命令ARのLステージにおいて、オペ
ランドをレジスタからではなく、前述した短絡パスから
読み出すことが可能である。この短絡パスに読み出すべ
きオペランドが確定する先行命令LのEステージは、C4
サイクルにおいて処理される。したがつて、後続命令AR
のLステージは、C4サイクルまでで完了することができ
る。この結果、演算処理が行われるEステージに着目す
ると、命令AR以降の命令は、オペランド・コンフリクト
が発生していない場合と同じく、処理に1サイクルの遅
滞が生じることになる。
さて、前述したように、先行命令Lと後続命令ARとの
間でオペランド・コンフリクトが発生している(Rc=Ra
またはRd=Ra)場合、後続命令ARがレジスタRaから読み
出すべきオペランド(Ra)は、先行命令Lがストレージ
50からオペランド・バツフア60へ読み出すオペランド
(Sb)と同一である。したがつて、第1図に示した実施
例において説明した本発明は、後続命令ARが読み出すべ
きオペランドを、先行命令Lが演算結果を書き込む汎用
レジスタ70のレジスタからではなく、先行命令Lがオペ
ランドを読み出すリソース(この場合は、オペランド・
バツフア60)から読み出すことを可能にする。
間でオペランド・コンフリクトが発生している(Rc=Ra
またはRd=Ra)場合、後続命令ARがレジスタRaから読み
出すべきオペランド(Ra)は、先行命令Lがストレージ
50からオペランド・バツフア60へ読み出すオペランド
(Sb)と同一である。したがつて、第1図に示した実施
例において説明した本発明は、後続命令ARが読み出すべ
きオペランドを、先行命令Lが演算結果を書き込む汎用
レジスタ70のレジスタからではなく、先行命令Lがオペ
ランドを読み出すリソース(この場合は、オペランド・
バツフア60)から読み出すことを可能にする。
第10E図は、第4図の命令列の先行命令Lと後続命令A
Rとの間でオペランド・コンフリクトが発生している(R
c=RaまたはRd=Ra)ときに、本発明を用いる場合のタ
イム・チヤートを示している。本発明によれば、先行命
令Lは、演算処理を行うことなく処理され、一方、後続
命令ARは、Lステージにおいて、オペランドを汎用レジ
スタ70からではなく、オペランド・バツフア60から読み
出すことが可能である。このオペランド・バツフア60に
読み出すべきオペランドが確定する先行命令LのLステ
ージは、C3サイクルにおいた処理される。したがつて、
後続命令ARのLステージは、C3サイクルまでで完了する
ことができる。この結果、演算処理が行われるEステー
ジに着目すると、命令AR以降の命令も、オペランド・コ
ンフリクトを発生していない場合と同様に、処理を1サ
イクル早く行うことが可能となる。
Rとの間でオペランド・コンフリクトが発生している(R
c=RaまたはRd=Ra)ときに、本発明を用いる場合のタ
イム・チヤートを示している。本発明によれば、先行命
令Lは、演算処理を行うことなく処理され、一方、後続
命令ARは、Lステージにおいて、オペランドを汎用レジ
スタ70からではなく、オペランド・バツフア60から読み
出すことが可能である。このオペランド・バツフア60に
読み出すべきオペランドが確定する先行命令LのLステ
ージは、C3サイクルにおいた処理される。したがつて、
後続命令ARのLステージは、C3サイクルまでで完了する
ことができる。この結果、演算処理が行われるEステー
ジに着目すると、命令AR以降の命令も、オペランド・コ
ンフリクトを発生していない場合と同様に、処理を1サ
イクル早く行うことが可能となる。
さて、以下では、第9図に戻つて、本発明を用いて構
成された装置の動作を説明する。
成された装置の動作を説明する。
第9図に示される装置各部において、命令レジスタ1
0,命令デコーダ20,命令キユー30,アドレス加算器40,ス
トレージ50及びオペランド・バツフア60は、第8図に示
した装置各部と同様に構成されており、その動作もまた
同様である。つまり、命令レジスタ10に設定された命令
は、Dステージにおいて、命令デコーダ20による命令の
解読と、アドレス加算器40によるアドレス計算が行われ
る。命令デコーダ20によつて生成された命令解読情報
は、命令キユー30によつて、順次、保持される。ストレ
ージ50は、Aステージにおいて、論理アドレスから物理
アドレスへの変換と、オペランドの読み出しを行う。オ
ペランド・バツフア60は、Lステージにおいて、ストレ
ージ50から送られているオペランドを受け取り、命令解
読情報BPによつて指定されるエントリに保持する。
0,命令デコーダ20,命令キユー30,アドレス加算器40,ス
トレージ50及びオペランド・バツフア60は、第8図に示
した装置各部と同様に構成されており、その動作もまた
同様である。つまり、命令レジスタ10に設定された命令
は、Dステージにおいて、命令デコーダ20による命令の
解読と、アドレス加算器40によるアドレス計算が行われ
る。命令デコーダ20によつて生成された命令解読情報
は、命令キユー30によつて、順次、保持される。ストレ
ージ50は、Aステージにおいて、論理アドレスから物理
アドレスへの変換と、オペランドの読み出しを行う。オ
ペランド・バツフア60は、Lステージにおいて、ストレ
ージ50から送られているオペランドを受け取り、命令解
読情報BPによつて指定されるエントリに保持する。
さて、前述したように、ある特定の命令について、命
令解読情報が命令キユー30に保持され、また、必要な場
合にはストレージ50から読み出すべきオペランドがオペ
ランド・バツフア60に保持されているとき、演算器80が
以前の命令の演算処理を完了することが、その命令の演
算処理を演算器80によつて行うための条件である。以上
の条件が整うと、Lステージにおいて、命令解読情報が
命令キユー30から取り出されて、その命令の演算処理が
開始される。行うべき演算の種類は、命令キユー30から
演算器80へ送られる命令解読情報OPによつて指定され
る。一方、このとき同時に、命令キユー30からオペラン
ド・バツフア60へ送られる命令解読情報BPによつて指定
されるエントリに保持されているオペランドが取り出さ
れる。また、命令キユー30から汎用レジスタ70へ送られ
る命令解読情報R1及びR2によつて指定されるレジスタの
内容が読み出される。オペランド・バツフア60または汎
用レジスタ70から読み出されるオペランドは、命令キユ
ー30から送られてくる命令解読情報N2によつて制御され
るセレクタ84,85において一方が選択され、演算器80へ
送られる。この際、命令解読情報は、ラツプ制御回路90
及び演算制御回路95を介して演算器80へ送られ、また、
オペランドは、ラツプ制御回路90によつて制御されるセ
レクタ86,88を介して演算器80へ送られる。本発明は、
主として、ラツプ制御回路90,演算制御回路95及びセレ
クタ86,88によつて実現されるが、詳細については後述
することとする。
令解読情報が命令キユー30に保持され、また、必要な場
合にはストレージ50から読み出すべきオペランドがオペ
ランド・バツフア60に保持されているとき、演算器80が
以前の命令の演算処理を完了することが、その命令の演
算処理を演算器80によつて行うための条件である。以上
の条件が整うと、Lステージにおいて、命令解読情報が
命令キユー30から取り出されて、その命令の演算処理が
開始される。行うべき演算の種類は、命令キユー30から
演算器80へ送られる命令解読情報OPによつて指定され
る。一方、このとき同時に、命令キユー30からオペラン
ド・バツフア60へ送られる命令解読情報BPによつて指定
されるエントリに保持されているオペランドが取り出さ
れる。また、命令キユー30から汎用レジスタ70へ送られ
る命令解読情報R1及びR2によつて指定されるレジスタの
内容が読み出される。オペランド・バツフア60または汎
用レジスタ70から読み出されるオペランドは、命令キユ
ー30から送られてくる命令解読情報N2によつて制御され
るセレクタ84,85において一方が選択され、演算器80へ
送られる。この際、命令解読情報は、ラツプ制御回路90
及び演算制御回路95を介して演算器80へ送られ、また、
オペランドは、ラツプ制御回路90によつて制御されるセ
レクタ86,88を介して演算器80へ送られる。本発明は、
主として、ラツプ制御回路90,演算制御回路95及びセレ
クタ86,88によつて実現されるが、詳細については後述
することとする。
演算器80は、Eステージにおいて、命令解読情報OPに
よつて指定される演算を、第1オペランドと第2オペラ
ンドとの間に施し、演算結果を求める。簡単な演算処理
は、通常、1サイクルで完了することが可能である。し
かし、複雑は演算処理を行う場合には、数サイクルを必
要とし、Eステージが遅延する結果となる。一方、命令
解読情報OPによつて指定される演算がいわゆるロードで
ある場合には、演算器80によつて特定の演算処理を行う
必要はない。この場合には、演算器80を介することな
く、Eステージにおける演算処理を完了する。
よつて指定される演算を、第1オペランドと第2オペラ
ンドとの間に施し、演算結果を求める。簡単な演算処理
は、通常、1サイクルで完了することが可能である。し
かし、複雑は演算処理を行う場合には、数サイクルを必
要とし、Eステージが遅延する結果となる。一方、命令
解読情報OPによつて指定される演算がいわゆるロードで
ある場合には、演算器80によつて特定の演算処理を行う
必要はない。この場合には、演算器80を介することな
く、Eステージにおける演算処理を完了する。
演算器80によつて演算結果が求められると、その演算
結果は、Pステージにおいて、命令解読情報R1によつて
指定される汎用レジスタ70のレジスタへ書き込まれる。
一方、処理されている命令がいわゆるロード命令である
場合には、セレクタ80によつて選択されたオペランド
が、そのまま、命令解読情報R1によつて指定される汎用
レジスタ70のレジスタへ書き込まれる。
結果は、Pステージにおいて、命令解読情報R1によつて
指定される汎用レジスタ70のレジスタへ書き込まれる。
一方、処理されている命令がいわゆるロード命令である
場合には、セレクタ80によつて選択されたオペランド
が、そのまま、命令解読情報R1によつて指定される汎用
レジスタ70のレジスタへ書き込まれる。
以前の命令の処理のために既に生じている演算処理の
遅滞を解決する本発明は、いわゆるロード命令の処理に
際して、演算処理を演算器を用いることなく行い、その
結果として空きが生じることとなる演算器を後続命令の
演算処理のために用いる。また、オペランド・コンフリ
クトによる処理の遅滞を解決する本発明は、オペランド
・コンフリクトを発生している先行命令がいわゆる前記
のロード命令であり、演算処理を演算器を用いることな
く行う場合に、オペランド・コンフリクトを発生してい
る後続命令が読み出すべきオペランドとして、先行命令
が読み出したオペランドを供給する。本実施例において
は、ラツプ制御回路90が、ロード命令に対する演算器を
用いることなく処理するための制御とオペランド・コン
フリクトの検出を行い、また、処理の遅滞の解決のため
の制御を行う。
遅滞を解決する本発明は、いわゆるロード命令の処理に
際して、演算処理を演算器を用いることなく行い、その
結果として空きが生じることとなる演算器を後続命令の
演算処理のために用いる。また、オペランド・コンフリ
クトによる処理の遅滞を解決する本発明は、オペランド
・コンフリクトを発生している先行命令がいわゆる前記
のロード命令であり、演算処理を演算器を用いることな
く行う場合に、オペランド・コンフリクトを発生してい
る後続命令が読み出すべきオペランドとして、先行命令
が読み出したオペランドを供給する。本実施例において
は、ラツプ制御回路90が、ロード命令に対する演算器を
用いることなく処理するための制御とオペランド・コン
フリクトの検出を行い、また、処理の遅滞の解決のため
の制御を行う。
本実施例におけるラツプ制御回路90の内部構成は、第
6図に示した2つの演算器によつて2つずつ命令処理を
行う前述の実施例におけるラツプ制御回路90の内部構成
と同一することが可能である。先行命令がロード命令で
あることを示す命令解読情報LDp、また、先行命令が汎
用レジスタ70への演算結果の書き込みを行うことを示す
命令解読情報CHp及びそのレジスタを指定する命令解読
情報R1pは、アウト・ポインタ36によつて指示される命
令キユー30のエントリからラツプ制御回路90へ送られ
る。一方、後続命令が汎用レジスタ70から第1オペラン
ドの読み出しを行うことを示す命令解読情報N1s,汎用レ
ジスタ70へ演算結果の書き込みを行うことを示す命令解
読情報CHs及びそのレジスタを指定する命令解読情報R1s
と、汎用レジスタ70から第2オペランドの読み出しを行
うことを示す命令解読情報N2s及びそのレジスタを指定
する命令解読情報R2sは、アウト・ポインタ37によつて
指示される命令キユー30のエントリからラツプ制御回路
90へ送られる。以上の命令解読情報を用いて、ラツプ制
御回路90は、オペランド・コンフリクト検出信号OC、本
発明における先行命令がロード命令である場合のオペラ
ンド・ラツプアラウンド指示信号LW1,LW2、先行命令の
演算結果の書き込みを抑止する書き込み抑止信号WCを生
成する。
6図に示した2つの演算器によつて2つずつ命令処理を
行う前述の実施例におけるラツプ制御回路90の内部構成
と同一することが可能である。先行命令がロード命令で
あることを示す命令解読情報LDp、また、先行命令が汎
用レジスタ70への演算結果の書き込みを行うことを示す
命令解読情報CHp及びそのレジスタを指定する命令解読
情報R1pは、アウト・ポインタ36によつて指示される命
令キユー30のエントリからラツプ制御回路90へ送られ
る。一方、後続命令が汎用レジスタ70から第1オペラン
ドの読み出しを行うことを示す命令解読情報N1s,汎用レ
ジスタ70へ演算結果の書き込みを行うことを示す命令解
読情報CHs及びそのレジスタを指定する命令解読情報R1s
と、汎用レジスタ70から第2オペランドの読み出しを行
うことを示す命令解読情報N2s及びそのレジスタを指定
する命令解読情報R2sは、アウト・ポインタ37によつて
指示される命令キユー30のエントリからラツプ制御回路
90へ送られる。以上の命令解読情報を用いて、ラツプ制
御回路90は、オペランド・コンフリクト検出信号OC、本
発明における先行命令がロード命令である場合のオペラ
ンド・ラツプアラウンド指示信号LW1,LW2、先行命令の
演算結果の書き込みを抑止する書き込み抑止信号WCを生
成する。
オペランド・コンフリクト検出信号OCは、演算制御回
路95へ送られ、後続命令が演算器80において演算処理を
開始することを抑止するために用いられる。しかし、本
実施例においては、先行命令がいわゆるロード命令では
ない場合には、先行命令が演算器80において演算処理を
行うので、本来、後続命令が演算器81において演算処理
を開始することは不可能である。したがつて、本実施例
においては、オペランド・コンフリクト検出信号OCは必
要がなく、それに伴い、第6図に示されているインバー
タ920,アンド・ゲード931,932,オア・ゲート940も必要
がない。一方、オペランド・ラツプアラウンド指示信号
LW1,LW2は、セレクタ86,88へ送られ、先行命令が読み出
す第2オペランドを、後続命令が読み出すべき第1,第2
オペランドとして選択するために用いられる。つまり、
セレクタ86は、オペランド、ラツプアラウンド指示信号
LW1が送られてくると、先行命令(演算器80において演
算結果が行われない)の第2オペランド(セレクタ84か
らのパス)を選択する。オペランド・ラツプアラウンド
指示信号LW1が送られてこない場合には、オペランド・
ラツプアラウンド指示信号LW2が送られてくると、後続
命令(演算器80において演算処理が行われる)の第1オ
ペランド(汎用レジスタ70からのパス)を選択するが、
オペランド・ラツプアラウンド指示信号LW2が送られて
こないと、先行命令(演算器80において演算処理が行わ
れる)の第1オペランド(汎用レジスタ70からの他のパ
ス)を選択する。同様に、セレクタ88は、オペランド・
ラツプアラウンド指示信号LW2が送られてくると、先行
命令(演算器80において演算処理が行われない)の第2
オペランド(セレクタ84からのパス)を選択する。オペ
ランド・ラツプアラウンド指示信号LW2が送られてこな
い場合には、オペランド・ラツプアラウンド指示信号LW
1が送られてくると、後続命令(演算器80において演算
処理が行われる)の第2オペランド(セレクタ85からの
パス)を選択するが、オペランド・ラツプアラウンド指
示信号LW1が送られてこないと、先行命令(演算器80に
おいて演算処理が行われる)の第2オペランド(セレク
タ84からのパス)を選択する。さらに、先行命令書き込
み抑止信号WCは、演算制御回路95へ送られ、先行命令
(演算器80において演算処理が行われない)の演算結果
を汎用レジスタ70へ書き込むことを抑止するために用い
られる。また、演算制御回路95は、先行命令がいわゆる
ロード命令であることを示す命令解読情報LDpを受け取
ると、いわゆるロード命令である先行命令に対応する演
算完了信号を送出する。一方、演算器80において後続命
令の演算処理が完了すると、後続命令に対応する演算完
了信号を送出する。これら2つの演算完了信号は、アウ
ト・ポインタ36,37のインクリメントを制御するために
用いられる。
路95へ送られ、後続命令が演算器80において演算処理を
開始することを抑止するために用いられる。しかし、本
実施例においては、先行命令がいわゆるロード命令では
ない場合には、先行命令が演算器80において演算処理を
行うので、本来、後続命令が演算器81において演算処理
を開始することは不可能である。したがつて、本実施例
においては、オペランド・コンフリクト検出信号OCは必
要がなく、それに伴い、第6図に示されているインバー
タ920,アンド・ゲード931,932,オア・ゲート940も必要
がない。一方、オペランド・ラツプアラウンド指示信号
LW1,LW2は、セレクタ86,88へ送られ、先行命令が読み出
す第2オペランドを、後続命令が読み出すべき第1,第2
オペランドとして選択するために用いられる。つまり、
セレクタ86は、オペランド、ラツプアラウンド指示信号
LW1が送られてくると、先行命令(演算器80において演
算結果が行われない)の第2オペランド(セレクタ84か
らのパス)を選択する。オペランド・ラツプアラウンド
指示信号LW1が送られてこない場合には、オペランド・
ラツプアラウンド指示信号LW2が送られてくると、後続
命令(演算器80において演算処理が行われる)の第1オ
ペランド(汎用レジスタ70からのパス)を選択するが、
オペランド・ラツプアラウンド指示信号LW2が送られて
こないと、先行命令(演算器80において演算処理が行わ
れる)の第1オペランド(汎用レジスタ70からの他のパ
ス)を選択する。同様に、セレクタ88は、オペランド・
ラツプアラウンド指示信号LW2が送られてくると、先行
命令(演算器80において演算処理が行われない)の第2
オペランド(セレクタ84からのパス)を選択する。オペ
ランド・ラツプアラウンド指示信号LW2が送られてこな
い場合には、オペランド・ラツプアラウンド指示信号LW
1が送られてくると、後続命令(演算器80において演算
処理が行われる)の第2オペランド(セレクタ85からの
パス)を選択するが、オペランド・ラツプアラウンド指
示信号LW1が送られてこないと、先行命令(演算器80に
おいて演算処理が行われる)の第2オペランド(セレク
タ84からのパス)を選択する。さらに、先行命令書き込
み抑止信号WCは、演算制御回路95へ送られ、先行命令
(演算器80において演算処理が行われない)の演算結果
を汎用レジスタ70へ書き込むことを抑止するために用い
られる。また、演算制御回路95は、先行命令がいわゆる
ロード命令であることを示す命令解読情報LDpを受け取
ると、いわゆるロード命令である先行命令に対応する演
算完了信号を送出する。一方、演算器80において後続命
令の演算処理が完了すると、後続命令に対応する演算完
了信号を送出する。これら2つの演算完了信号は、アウ
ト・ポインタ36,37のインクリメントを制御するために
用いられる。
以上のように制御することによつて、第9図に示した
装置は、第4図の命令列を、第10E図のタイム・チヤー
トに従つて、処理することが可能となる。
装置は、第4図の命令列を、第10E図のタイム・チヤー
トに従つて、処理することが可能となる。
第11図は、命令を1つずつ処理する装置に対して、本
発明を適用した他の一実施例である。本実施例は、第9
図において示されているセレクタ84から汎用レジスタ70
へのパスと、このパスに対応した演算制御回路95からの
制御信号を取り除いていた変形例と考えることもでき
る。それ以外の装置各部(例えば、本発明において特徴
的なラツプ制御回路90など)は、第9図に示した装置と
同一構成とすることが可能である。
発明を適用した他の一実施例である。本実施例は、第9
図において示されているセレクタ84から汎用レジスタ70
へのパスと、このパスに対応した演算制御回路95からの
制御信号を取り除いていた変形例と考えることもでき
る。それ以外の装置各部(例えば、本発明において特徴
的なラツプ制御回路90など)は、第9図に示した装置と
同一構成とすることが可能である。
ところで、第4図の命令列において、ストレージ50か
らオペランド・バツフア60へ読み出される先行命令Lの
第2オペランド(Sb)は、演算器80による演算を施され
ることなく、そのままレジスタRaへ書き込まれる。した
がつて、先行命令Lは、演算器80において特定の演算処
理を行う必要性はない。また、先行命令Lと後続命令AR
の第1オペランドとの間でオペランド・コンフリクトが
発生している(Rc=Ra)の場合、後続命令ARがレジスタ
Raから読み出すべき第1オペランド(Ra)は、先行命令
Lがストレージ50からオペランド・バツフア60へ読み出
すオペランド(Sb)と同一である。したがつて、後続命
令ARが読み出すべきオペランドを、先行命令Lが演算結
果を書き込む汎用レジスタ70のレジスタからではなく、
先行命令Lがオペランドを読み出すリソース(この場合
は、オペランド・バツフア60)から読み出すことが可能
である。さらに、この場合、先行命令Lと後続命令ARが
演算結果の書き込みを行うレジスタも一致している。し
たがつて、先行命令の演算結果ではなく、後続命令の演
算結果がレジスタへ書き込まれるべきであり、先行命令
の演算結果の書き込みを行う必要がない。本実施例は、
先行命令と後続命令の第1オペランドとの間でオペラン
ド・コンフリクトを発生している場合に限つて、本発明
を適用する。つまり、本発明は、上記の場合に、先行命
令Lと後続命令ARの演算処理のために必要なオペランド
を、オペランド・バツフア60及び汎用レジスタ70から同
時に読み出す。そして、先行命令Lは、演算器80による
演算処理を行うことなく処理を行い、読み出したオペラ
ンドを後続命令ARへ第1オペランドとして引き渡す。後
続命令ARは、先行命令Lから第1オペランドを受け取
り、その時点で空き状態になる演算器80を用いて演算処
理を行う。
らオペランド・バツフア60へ読み出される先行命令Lの
第2オペランド(Sb)は、演算器80による演算を施され
ることなく、そのままレジスタRaへ書き込まれる。した
がつて、先行命令Lは、演算器80において特定の演算処
理を行う必要性はない。また、先行命令Lと後続命令AR
の第1オペランドとの間でオペランド・コンフリクトが
発生している(Rc=Ra)の場合、後続命令ARがレジスタ
Raから読み出すべき第1オペランド(Ra)は、先行命令
Lがストレージ50からオペランド・バツフア60へ読み出
すオペランド(Sb)と同一である。したがつて、後続命
令ARが読み出すべきオペランドを、先行命令Lが演算結
果を書き込む汎用レジスタ70のレジスタからではなく、
先行命令Lがオペランドを読み出すリソース(この場合
は、オペランド・バツフア60)から読み出すことが可能
である。さらに、この場合、先行命令Lと後続命令ARが
演算結果の書き込みを行うレジスタも一致している。し
たがつて、先行命令の演算結果ではなく、後続命令の演
算結果がレジスタへ書き込まれるべきであり、先行命令
の演算結果の書き込みを行う必要がない。本実施例は、
先行命令と後続命令の第1オペランドとの間でオペラン
ド・コンフリクトを発生している場合に限つて、本発明
を適用する。つまり、本発明は、上記の場合に、先行命
令Lと後続命令ARの演算処理のために必要なオペランド
を、オペランド・バツフア60及び汎用レジスタ70から同
時に読み出す。そして、先行命令Lは、演算器80による
演算処理を行うことなく処理を行い、読み出したオペラ
ンドを後続命令ARへ第1オペランドとして引き渡す。後
続命令ARは、先行命令Lから第1オペランドを受け取
り、その時点で空き状態になる演算器80を用いて演算処
理を行う。
さて、以下では、第11図に戻つて、本発明を用いて構
成された装置の動作を説明する。
成された装置の動作を説明する。
第11図に示される装置各部は、2つのセレクタ86,88
を除いて、第9図に示した装置各部と同様に構成されて
おり、その動作もまた同様である。
を除いて、第9図に示した装置各部と同様に構成されて
おり、その動作もまた同様である。
以前の命令の処理のために既に生じている演算処理の
遅滞を解決する本発明は、いわゆるロード命令の処理に
際して、演算処理を演算器を用いることなく行い、その
結果として空きが生じることとなる演算器を後続命令の
演算処理のために用いる。また、オペランド・コンフリ
クトによる処理の遅滞を解決する本発明は、オペランド
・コンフリクトを発生している先行命令がいわゆる前記
のロード命令であり、演算処理を演算器を用いることな
く行う場合に、オペランド・コンフリクトを発生してい
る後続命令が読み出すべきオペランドとして、先行命令
が読み出したオペランドを供給する。本実施例において
も、ラツプ制御回路90が、ロード命令に対する演算器を
用いることなく処理するための制御とオペランド・コン
フリクトの検出を行い、また、処理の遅滞の解決のため
の制御を行う。
遅滞を解決する本発明は、いわゆるロード命令の処理に
際して、演算処理を演算器を用いることなく行い、その
結果として空きが生じることとなる演算器を後続命令の
演算処理のために用いる。また、オペランド・コンフリ
クトによる処理の遅滞を解決する本発明は、オペランド
・コンフリクトを発生している先行命令がいわゆる前記
のロード命令であり、演算処理を演算器を用いることな
く行う場合に、オペランド・コンフリクトを発生してい
る後続命令が読み出すべきオペランドとして、先行命令
が読み出したオペランドを供給する。本実施例において
も、ラツプ制御回路90が、ロード命令に対する演算器を
用いることなく処理するための制御とオペランド・コン
フリクトの検出を行い、また、処理の遅滞の解決のため
の制御を行う。
本実施例におけるラツプ制御回路90の内部構成は、第
6図に示したラツプ制御回路90と同一とすることが可能
である。また、本実施例においても、第9図に示した装
置における前述したラツプ制御回路90と同様に、オペラ
ンド・コンフリクト検出信号OCは必要がなく、それに伴
い、第6図に示されているインバータ920,アンド・ゲー
ト931,932,オア・ゲート940も必要がない。また、本実
施例においては、先行命令と後続命令の第2オペランド
との間でオペランド・コンフリクトが発生している場合
には、処理の遅滞の解決を行わないので、オペランド・
ラツプアラウンド指示信号LW2も必要がない。それに伴
つて、比較器902,アンド・ゲート912,952も必要がな
い。一方、オペランド・ラツプアラウンド指示信号LW1
と先行命令書き込み抑止信号WCは、セレクタ86,88及び
演算制御回路95へ送られ、処理の遅滞の解決のために用
いられる。つまり、サレクタ86は、オペランド・ラツプ
アラウンド指示信号LW1と先行命令書き込み抑止信号WC
の両信号がともに送られてくると、先行命令(演算器80
において演算処理が行われない)の第2オペランド(セ
レクタ84からのパス)を選択し、両信号がともに送られ
てこないときは、先行命令(演算器80において演算処理
が行われる)の第1オペランド(汎用レジスタ70からの
パス)を選択する。同様に、セレクタ88は、両信号がと
もに送られてくると、後続命令(演算器80において演算
処理が行われる)の第2オペランド(セレクタ85からの
パス)を選択し、両信号が送られてこないときは、先行
命令(演算器80において演算処理が行われる)の第2オ
ペランド(セレクタ84からのパス)を選択する。さら
に、演算制御回路95は、両信号がともに送られてくる
と、いわゆるロード命令である先行命令に対応する演算
完了信号を送出する。一方、演算器80において後続命令
の演算処理が完了すると、後続命令に対応する演算完了
信号を送出する。これら2つの演算完了信号は、アウト
・ポインタ36,37のインクリメントを制御するために用
いられる。
6図に示したラツプ制御回路90と同一とすることが可能
である。また、本実施例においても、第9図に示した装
置における前述したラツプ制御回路90と同様に、オペラ
ンド・コンフリクト検出信号OCは必要がなく、それに伴
い、第6図に示されているインバータ920,アンド・ゲー
ト931,932,オア・ゲート940も必要がない。また、本実
施例においては、先行命令と後続命令の第2オペランド
との間でオペランド・コンフリクトが発生している場合
には、処理の遅滞の解決を行わないので、オペランド・
ラツプアラウンド指示信号LW2も必要がない。それに伴
つて、比較器902,アンド・ゲート912,952も必要がな
い。一方、オペランド・ラツプアラウンド指示信号LW1
と先行命令書き込み抑止信号WCは、セレクタ86,88及び
演算制御回路95へ送られ、処理の遅滞の解決のために用
いられる。つまり、サレクタ86は、オペランド・ラツプ
アラウンド指示信号LW1と先行命令書き込み抑止信号WC
の両信号がともに送られてくると、先行命令(演算器80
において演算処理が行われない)の第2オペランド(セ
レクタ84からのパス)を選択し、両信号がともに送られ
てこないときは、先行命令(演算器80において演算処理
が行われる)の第1オペランド(汎用レジスタ70からの
パス)を選択する。同様に、セレクタ88は、両信号がと
もに送られてくると、後続命令(演算器80において演算
処理が行われる)の第2オペランド(セレクタ85からの
パス)を選択し、両信号が送られてこないときは、先行
命令(演算器80において演算処理が行われる)の第2オ
ペランド(セレクタ84からのパス)を選択する。さら
に、演算制御回路95は、両信号がともに送られてくる
と、いわゆるロード命令である先行命令に対応する演算
完了信号を送出する。一方、演算器80において後続命令
の演算処理が完了すると、後続命令に対応する演算完了
信号を送出する。これら2つの演算完了信号は、アウト
・ポインタ36,37のインクリメントを制御するために用
いられる。
以上のように制御することによつて、第11図に示した
装置は、第4図の命令列において先行命令Lと後続命令
ARの第1オペランドとの間でオペランド・コンフリクト
が発生している(Rc=Ra)場合に限つて、その命令列
を、第10E図のタイム・チヤートに従つて、処理するこ
とが可能となる。
装置は、第4図の命令列において先行命令Lと後続命令
ARの第1オペランドとの間でオペランド・コンフリクト
が発生している(Rc=Ra)場合に限つて、その命令列
を、第10E図のタイム・チヤートに従つて、処理するこ
とが可能となる。
本発明によれば、先行命令がいわゆるロード命令であ
る場合、先行命令と後続命令との間でオペランド・コン
フリクトが発生しているときにも、先行命令と後続命令
の演算処理を同時に行うことができるので、オペランド
・コンフリクトによつて生じる処理の遅滞を解決でき、
他の要因によつて既に生じている処理の遅滞を軽減でき
るとという効果がある。
る場合、先行命令と後続命令との間でオペランド・コン
フリクトが発生しているときにも、先行命令と後続命令
の演算処理を同時に行うことができるので、オペランド
・コンフリクトによつて生じる処理の遅滞を解決でき、
他の要因によつて既に生じている処理の遅滞を軽減でき
るとという効果がある。
第1図は本発明による処理装置の一実施例の全体構成を
表わすブロツク図、第2図はパイプライン処理方式にお
ける命令処理の流れを示すタイム・チヤート、第3図及
び第4図は説明のために用いる命令の型式とその命令の
型式を用いた命令列の一例、第5図は第4図の命令列を
処理する場合のタイム・チヤート、第6図は第1図の実
施例のラツプ制御回路の詳細なブロツク図、第7図及び
第8図は第1図の実施例の変形例である。第9図は本発
明による処理装置の他の一実施例の全体構成を表わすブ
ロツク図、第10図は第4図の命令列を処理する場合のタ
イム・チヤート、第11図は第9図の実施例の変形例であ
る。 10……命令レジスタ、20……命令デコーダ、30……命令
キユー、40……アドレス加算器、50……ストレージ、60
……オペランド・バツフア、70……汎用レジスタ、80…
…演算器、90……ラツプ制御回路、95……演算制御回
路。
表わすブロツク図、第2図はパイプライン処理方式にお
ける命令処理の流れを示すタイム・チヤート、第3図及
び第4図は説明のために用いる命令の型式とその命令の
型式を用いた命令列の一例、第5図は第4図の命令列を
処理する場合のタイム・チヤート、第6図は第1図の実
施例のラツプ制御回路の詳細なブロツク図、第7図及び
第8図は第1図の実施例の変形例である。第9図は本発
明による処理装置の他の一実施例の全体構成を表わすブ
ロツク図、第10図は第4図の命令列を処理する場合のタ
イム・チヤート、第11図は第9図の実施例の変形例であ
る。 10……命令レジスタ、20……命令デコーダ、30……命令
キユー、40……アドレス加算器、50……ストレージ、60
……オペランド・バツフア、70……汎用レジスタ、80…
…演算器、90……ラツプ制御回路、95……演算制御回
路。
フロントページの続き (72)発明者 庄内 亨 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 井上 潔 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭62−1032(JP,A)
Claims (3)
- 【請求項1】複数の命令を並列に処理する情報処理装置
において、 オペランドを保持するストレージと汎用レジスタと、 該ストレージから読み出された複数の命令のオペランド
を保持し、少なくとも2つの命令のオペランドを供給す
るオペランド保持手段と、 該オペランド保持手段と該汎用レジスタに接続された少
なくとも1つの演算手段と、 実行すべき命令を順次解読して命令解読情報を生成する
解読手段と、 該解読手段により生成された複数の命令解読情報を保持
し、少なくとも2つの命令解読情報を供給する命令保持
手段と、 該命令保持手段から供給された命令解読情報により、先
行命令が読み出したオペランドに演算を施すことなく該
汎用レジスタへ書き込みを行う命令であることを検出す
る命令検出手段とを有し、 該命令検出手段が該先行命令を検出した場合に、少なく
とも1つの該演算手段によつて、少なくとも該先行命令
と後続命令の演算処理を同時に行うことを特徴とする情
報処理装置。 - 【請求項2】該オペランド保持手段と該汎用レジスタに
接続され、先行命令及び後続命令のオペランドを選択す
るオペランド選択手段と、 該オペランド選択手段に接続された少なくとも1つの演
算手段と、 該命令保持手段から供給された命令解読情報により、先
行命令が該汎用レジスタのあるレジスタへ書き込みを行
い、後続命令が該汎用レジスタの同一レジスタからオペ
ランドの読み出しを行う競合状態を検出する競合検出手
段とを有し、 該命令検出手段が該先行命令を検出し、該競合検出手段
が該先行命令と該後続命令との間に該競合状態を検出し
た場合に、該オペランド選択手段によつて、該後続命令
の演算処理を行うべき該演算手段に該先行命令のオペラ
ンドを供給し、少なくとも1つの該演算手段によつて、
少なくとも該先行命令と該後続命令の演算処理を同時に
行うことを特徴とする前記第1項記載の情報処理装置。 - 【請求項3】該命令保持手段から供給された命令解読情
報により、先行命令が該汎用レジスタのあるレジスタへ
書き込みを行い、後続命令も該汎用レジスタの同一レジ
スタへ書き込みを行う重複状態を検出する重複検出手段
を有し、 該命令検出手段が該先行命令を検出し、該重複検出手段
が該先行命令と該後続命令との間に該重複状態を検出し
た場合に、該先行命令のレジスタへの書き込みを抑止す
ることを特徴とする前記第1項記載の情報処理装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61281720A JPH0810430B2 (ja) | 1986-11-28 | 1986-11-28 | 情報処理装置 |
| US07/124,839 US4928226A (en) | 1986-11-28 | 1987-11-24 | Data processor for parallelly executing conflicting instructions |
| EP87117331A EP0269980B1 (en) | 1986-11-28 | 1987-11-24 | Data processor for parallelly executing conflicting instructions |
| DE3789604T DE3789604T2 (de) | 1986-11-28 | 1987-11-24 | Datenprozessor zur parallelen Ausführung von miteinander im Konflikt stehenden Befehlen. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61281720A JPH0810430B2 (ja) | 1986-11-28 | 1986-11-28 | 情報処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63136138A JPS63136138A (ja) | 1988-06-08 |
| JPH0810430B2 true JPH0810430B2 (ja) | 1996-01-31 |
Family
ID=17643043
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61281720A Expired - Lifetime JPH0810430B2 (ja) | 1986-11-28 | 1986-11-28 | 情報処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4928226A (ja) |
| EP (1) | EP0269980B1 (ja) |
| JP (1) | JPH0810430B2 (ja) |
| DE (1) | DE3789604T2 (ja) |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2783285B2 (ja) * | 1988-08-10 | 1998-08-06 | 株式会社日立製作所 | 情報処理装置 |
| JP2810068B2 (ja) * | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
| US5167026A (en) * | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
| 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 |
| US5745723A (en) * | 1989-09-04 | 1998-04-28 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
| JPH07120284B2 (ja) * | 1989-09-04 | 1995-12-20 | 三菱電機株式会社 | データ処理装置 |
| US5615349A (en) * | 1990-09-04 | 1997-03-25 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
| US5123108A (en) * | 1989-09-11 | 1992-06-16 | Wang Laboratories, Inc. | Improved cpu pipeline having register file bypass and working register bypass on update/access address compare |
| JP2816248B2 (ja) * | 1989-11-08 | 1998-10-27 | 株式会社日立製作所 | データプロセッサ |
| JPH03154947A (ja) * | 1989-11-13 | 1991-07-02 | Nec Corp | 情報処理装置 |
| US5295249A (en) * | 1990-05-04 | 1994-03-15 | International Business Machines Corporation | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel |
| US5450555A (en) * | 1990-06-29 | 1995-09-12 | Digital Equipment Corporation | Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions |
| US5471591A (en) * | 1990-06-29 | 1995-11-28 | Digital Equipment Corporation | Combined write-operand queue and read-after-write dependency scoreboard |
| US5432918A (en) * | 1990-06-29 | 1995-07-11 | Digital Equipment Corporation | Method and apparatus for ordering read and write operations using conflict bits in a write queue |
| DE69130138T2 (de) * | 1990-06-29 | 1999-05-06 | Digital Equipment Corp., Maynard, Mass. | Sprungvorhersageeinheit für hochleistungsfähigen Prozessor |
| JP2834292B2 (ja) * | 1990-08-15 | 1998-12-09 | 株式会社日立製作所 | データ・プロセッサ |
| JP2642529B2 (ja) * | 1991-04-30 | 1997-08-20 | 株式会社東芝 | 並列プロセッサーの命令分配処理装置 |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| WO1993001546A1 (en) | 1991-07-08 | 1993-01-21 | Seiko Epson Corporation | Extensible risc microprocessor architecture |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| JP2779557B2 (ja) * | 1991-07-09 | 1998-07-23 | 三菱電機株式会社 | 並列演算処理装置 |
| JP2685999B2 (ja) * | 1991-07-15 | 1997-12-08 | 株式会社ピーエフユー | 並列実行方式 |
| US5283874A (en) * | 1991-10-21 | 1994-02-01 | Intel Corporation | Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee |
| EP0544083A3 (en) * | 1991-11-26 | 1994-09-14 | Ibm | Interleaved risc-type parallel processor and processing methods |
| WO1993020505A2 (en) | 1992-03-31 | 1993-10-14 | Seiko Epson Corporation | Superscalar risc instruction scheduling |
| JP3637920B2 (ja) | 1992-05-01 | 2005-04-13 | セイコーエプソン株式会社 | スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法 |
| US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
| EP1107111A3 (en) | 1992-12-31 | 2002-02-06 | Seiko Epson Corporation | System and method for register renaming |
| CA2123442A1 (en) * | 1993-09-20 | 1995-03-21 | David S. Ray | Multiple execution unit dispatch with instruction dependency |
| JPH07200289A (ja) * | 1993-12-28 | 1995-08-04 | Fujitsu Ltd | 情報処理装置 |
| US20050071830A1 (en) * | 2003-09-30 | 2005-03-31 | Starcore, Llc | Method and system for processing a sequence of instructions |
| CN119556988B (zh) * | 2024-12-03 | 2025-11-14 | 华北电力大学(保定) | 基于cordic指令的角度解算系统 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5621240A (en) * | 1979-07-27 | 1981-02-27 | Hitachi Ltd | Information processor |
| JPS5928793B2 (ja) | 1979-09-06 | 1984-07-16 | ロス・オペレ−テイング・バルブ・カンパニ− | 複式安全弁 |
| JPS57155666A (en) * | 1981-03-20 | 1982-09-25 | Fujitsu Ltd | Instruction controlling system of vector processor |
| US4532589A (en) * | 1981-12-02 | 1985-07-30 | Hitachi, Ltd. | Digital data processor with two operation units |
| JPS58176151A (ja) * | 1982-04-06 | 1983-10-15 | 石川島播磨重工業株式会社 | セメント焼成設備のクリンカ品質制御方法 |
| JPS58176751A (ja) | 1982-04-09 | 1983-10-17 | Hitachi Ltd | 命令語解読ユニツト |
| JPS58189738A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
| JPS58189739A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
| JPS592143A (ja) * | 1982-06-29 | 1984-01-07 | Hitachi Ltd | 情報処理装置 |
| JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
| JPH063584B2 (ja) * | 1983-12-19 | 1994-01-12 | 株式会社日立製作所 | 情報処理装置 |
| JPH0658631B2 (ja) * | 1983-12-19 | 1994-08-03 | 株式会社日立製作所 | デ−タ処理装置 |
| JPS61160142A (ja) * | 1984-12-29 | 1986-07-19 | Hitachi Ltd | デ−タ処理装置 |
| JPH0762823B2 (ja) * | 1985-05-22 | 1995-07-05 | 株式会社日立製作所 | デ−タ処理装置 |
-
1986
- 1986-11-28 JP JP61281720A patent/JPH0810430B2/ja not_active Expired - Lifetime
-
1987
- 1987-11-24 DE DE3789604T patent/DE3789604T2/de not_active Expired - Fee Related
- 1987-11-24 EP EP87117331A patent/EP0269980B1/en not_active Expired - Lifetime
- 1987-11-24 US US07/124,839 patent/US4928226A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US4928226A (en) | 1990-05-22 |
| DE3789604T2 (de) | 1994-07-21 |
| JPS63136138A (ja) | 1988-06-08 |
| DE3789604D1 (de) | 1994-05-19 |
| EP0269980A3 (en) | 1990-04-04 |
| EP0269980B1 (en) | 1994-04-13 |
| EP0269980A2 (en) | 1988-06-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0810430B2 (ja) | 情報処理装置 | |
| US5636353A (en) | Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating results bypassing | |
| US5051896A (en) | Apparatus and method for nullifying delayed slot instructions in a pipelined computer system | |
| US6101596A (en) | Information processor for performing processing without register conflicts | |
| EP0093430A2 (en) | Pipeline data processing system | |
| CA2056356C (en) | Interruption handling system | |
| EP0497485A2 (en) | Computer for implementing two-operand instructions | |
| JPH0743648B2 (ja) | 情報処理装置 | |
| US5504870A (en) | Branch prediction device enabling simultaneous access to a content-addressed memory for retrieval and registration | |
| JPH06214875A (ja) | 記憶制御装置 | |
| KR100241970B1 (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 | |
| JP2513765B2 (ja) | パイプライン処理における条件分岐制御方式 | |
| US5802384A (en) | Vector data bypass mechanism for vector computer | |
| JPH0277940A (ja) | データ処理装置 | |
| JP2812610B2 (ja) | パイプライン制御方式 | |
| JP2919184B2 (ja) | パイプライン処理を行う情報処理装置 | |
| JPH01296345A (ja) | 情報処理装置 | |
| JP2591325B2 (ja) | 分岐制御装置 | |
| JPH0769800B2 (ja) | データ処理装置 | |
| JP3017866B2 (ja) | 割込み処理方式 | |
| JPH0266628A (ja) | 情報処理装置 | |
| JPH0774992B2 (ja) | データ処理装置 | |
| JPH0786838B2 (ja) | 割り込み処理方式 | |
| JPH0827720B2 (ja) | データ処理装置 | |
| JP2000305782A (ja) | 演算装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |