JPS63136138A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS63136138A
JPS63136138A JP61281720A JP28172086A JPS63136138A JP S63136138 A JPS63136138 A JP S63136138A JP 61281720 A JP61281720 A JP 61281720A JP 28172086 A JP28172086 A JP 28172086A JP S63136138 A JPS63136138 A JP S63136138A
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.)
Granted
Application number
JP61281720A
Other languages
English (en)
Other versions
JPH0810430B2 (ja
Inventor
Eiki Kamata
釜田 栄樹
Yoichi Shintani
洋一 新谷
Kazunori Kuriyama
和則 栗山
Toru Shonai
亨 庄内
Kiyoshi Inoue
潔 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61281720A priority Critical patent/JPH0810430B2/ja
Priority to US07/124,839 priority patent/US4928226A/en
Priority to DE3789604T priority patent/DE3789604T2/de
Priority to EP87117331A priority patent/EP0269980B1/en
Publication of JPS63136138A publication Critical patent/JPS63136138A/ja
Publication of JPH0810430B2 publication Critical patent/JPH0810430B2/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/3836Instruction 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)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の命令を並列処理する情報処理装置に係
り、特に、パイプライン処理方式(先行制御方式)によ
って、複数の命令を並列処理するために好適な情報処理
装置に関する。
〔従来の技術〕
複数の命令を並列(部分的オーバラップによる並列を含
む)に処理する方式(例えば、パイプライン処理方式)
によって、処理の高速化を図る情報処理装置において、
先行命令があるレジスタへ演算結果の書き込みを行い、
後続命令が同一レジスタの内容をアドレス計算のために
用いる場合には、先行命令がレジスタへ演算結果の書き
込みを完了するまで、後続命令はアドレス計算を開始す
ることができず、処理は遅滞が生じる。このようなアド
レス計算のために用いるデータの競合を、アドレス・コ
ンフリクトと呼ぶ。
アドレス・コンフリクトを発生している先行命令が、読
み出したオペランドに演算を施すことなくレジスタへ書
き込みを行ういわゆるロード命令である場合に、処理の
遅滞を軽減する方式としては、特公昭56−46170
に開示された方式がある。
〔発明が解決しようとする問題点〕
複数の命令を並列に処理する方式によって、処理の高速
化を図る情報処理装置において、先行命令があるレジス
タへ演算結果の書き込みを行い、後続命令が同一レジス
タからオペランドを読み出す場合には、先行命令がレジ
スタへ演算結果の書き込みを完了するまで、後続命令は
レジスタからオペランドの読み出しを行うことができず
、処理に遅滞が生じる。このようなレジスタ上で発生す
るオペランドの競合を、レジスタ・オペランド・コンフ
リクト、または、単に、オペランド・コンフリクトと呼
ぶ。
上記従来技術は、先行命令がいわゆるロード命令である
場合に、アドレス・コンフリクトによって生じる処理の
遅滞を軽減する方式ではあるが、オペランド・コンフリ
クトによって生じる処理の遅滞を軽減する点について配
慮がされていなかった。そのために、オペランド・コン
フリクトが発生すると、処理に遅滞が生じるという問題
があった。
本発明の目的は、先行命令がいわゆるロード命令である
場合、先行命令と後続命令との間でオペランド・コンフ
リクトが発生しているときにも。
先行命令と後続命令の演算処理を同時に行うことができ
る情報処理装置を提供することにある。
〔問題点を解決するための手段〕
上記目的は、オペランドを保持するストレージと汎用レ
ジスタと、該ストレージから読み出された複数の命令の
オペランドを保持し、少なくとも2つの命令のオペラン
ドを供給するオペランド保持手段と、該オペランド保持
手段と該汎用レジスタに接続され、先行命令及び後続命
令のオペランドを選択するオペランド選択手段と、該オ
ペランド選択手段に接続された少なくとも1つの演算手
段と、実行すべき命令を順次解読して命令解読情報を生
成する解読手段と、該解読手段により生成された複数の
命令解読情報を保持し、少なくとも2つの命令解読情報
を供給する命令保持手段と、該命令保持手段から供給さ
れた命令解読情報により、先行命令が読み出したオペラ
ンドに演算を施すことなく該汎用レジスタへ書き込みを
行う命令であることを検出する命令検出手段と、該命令
保持手段から供給された命令解読情報により、先行命令
が該汎用レジスタのあるレジスタへ書き込みを行い、後
続命令が該汎用レジスタの同一レジスタからオペランド
の読み出しを行う競合状態を検出する競合検出手段と、
該命令保持手段から供給された命令解読情報により、先
行命令が該汎用レジスタのあるレジスタへ書き込みを行
い、後続命令も該汎用レジスタの同一レジスタへ書き込
みを行う重複状態を検出する重複検出手段とを設けるこ
とによって達成される。
〔作用〕
命令保持手段から供給された命令解読情報により、先行
命令が読み出したオペランドに演算を施すことなく汎用
レジスタへ書き込みを行う命令であることを命令検出手
段が検出した場合には、少なくとも1つの演算手段が少
なくとも該先行命令と後続命令の演算処理を同時に行う
また、命令保持手段から供給された命令解読情報により
、先行命令が汎用レジスタのあるレジスタへ書き込みを
行い、後続命令が汎用レジスタの同一レジスタからオペ
ランドの読み出しを行う競合状態にあることを競合検出
手段が検出した場合には、オペランド選択手段が該後続
命令の演算処理を行うべき演算手段に該先行命令のオペ
ランドを供給し、少なくとも1つの演算手段が少なくと
も該先行命令と該後続命令の演算処理を同時に行う。
さらに、命令保持手段から供給された命令解読情報によ
り、先行命令が汎用レジスタのあるレジスタへ書き込み
を行い、後続命令も汎用レジスタの同一レジスタへ書き
込みを行う重複状態にあることを重複検出手段が検出し
た場合には、該先行命令のレジスタへの書き込みを抑止
する。
〔実施例〕
以下、本発明をパイプライン処理方式の装置に適用した
場合について説明する。
第1図は1本発明による処理装置の一実施例の全体構成
を表わすブロック図である1本実施例においては、2つ
の命令を並列に処理する装置を示している。このような
装置において、2つの命令を2つの命令レジスタへ設定
する従来技術については、例えば、tlヤl+Il、5
7−7%フタノ考に開示されている。
第1図において、命令レジスタ10.11は、処理すべ
き命令を保持する。命令デコーダ20゜21は、命令レ
ジスタ10.11に保持されている命令を解読して、装
置内の各部を制御するための命令解読情報を生成する。
命令キュー30は、命令デコーダ20.21によって生
成された命令解読情報を、その命令の演算処理が開始さ
れるまで順次保持する。アドレス加算器40.41は。
ストレージ50.51から読み出すストレージ・オペラ
ンドの論理アドレスを計算する。ストレージ50.51
は、処理すべき命令及びデータを保持している。オペラ
ンド・バッファ60は、ストレージ50.51から読み
出したストレージ・オペランドを、その命令の演算処理
が開始されるまで順次保持する。汎用レジスタ70は、
一群のレジスタから構成されており、主に、頻繁に用い
られるデータ(レジスタ・オペランド及びアドレス修飾
データなど)を保持している。演算器80゜81は、命
令で指定された演算処理を行う、ラップ制御回路90及
び演算制御回路95は、本発明を実現する上で必要とな
る回路であり、後に、詳しく説明することとする。
第2図は、バイブライン処理方式における命令処理の樟
準的な流れを示しているタイム・チャートであり、横軸
は時間軸である1時間軸はサイクルを単位として目盛ら
れており、各サイクルは初期(図の左端)から順にGo
、CI、 C2,・・・と名付けられている。
第2A図は、命令を1つずつ処理する装置の命令処理の
流れを示し、第2B図は、命令を2つずつ並列に処理す
る装置の命令処理の流れを示している。命令処理は、複
数の処理ステージに分割される。各処理ステージは、複
数の命令に対して順次連続的に適用され、並列に動作す
る。第2B図については、まず、COにおいて、命令。
、命令n+1がDステージを開始する1次に、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によるア
ドレスの計算が行われ、ストレージ・オペランドの論理
アドレスが得られる0次のAステージでは、ストレージ
50.51において、論理アドレスから物理アドレスへ
の変換と、ストレージ・オペランドの読み出しが行われ
る。そして、続くLステージでは、ストレージ50.5
1から読み出されたストレージ・オペランドをオペラン
ド・バッファ60へ転送し、さらに、オペランド・バッ
ファ60から演算器80゜81に転送する。また、汎用
レジスタ70からレジスタ・オペランドを読み出して、
演算器80゜81に転送する0以上で、命令で指定され
た演算処理を演算器80.81において開始するための
準備が整う、Eステージでは、演算器80.81による
演算処理が実行される。そして、Pステージで、演算器
80.81からの演算結果が、汎用レジスタ70へ書き
込まれる。
ここで1本実施例において、説明のために用いる命令の
型式について説明する。第3図は、RR型式及びRX型
式と呼ばれる命令の型式を示している。RR型式命令は
、op部、R1部、R2部から構成されている。RX型
式命令は、02部。
R1部、X2部、82部、D2部から構成されている。
02部は、演算器80.81において実行されるべき演
算処理の種類を示す、R1,R2゜X2.B2の各部は
、汎用レジスタ70を構成しているレジスタを指定する
。R1部、R2部は。
それぞれ、第1.第2オペランドが格納されているレジ
スタを指定する。X2部、82部が指定するレジスタの
内容は、D2部の内容とアドレス加算器40によって加
算され、ストレージ50に格納されている第2オペラン
ドの論理アドレスが生成される。RR型式命令及びRX
型式命令は、一般に、第1オペランドと第2オペランド
とを読み出し、演算を施して、第1オペランドが格納さ
れていたレジスタへ演算結果を書き込む、ただし。
いわゆるロード命令の場合には、第2オペランドを読み
出し、演算を施すことなく、第1オペランドに指定され
たレジスタへ書き込みを行う。
第4図は、本発明の効果が発揮される命令列の一例を示
している。先行命令りは、いわゆるロード命令の例であ
る。Xb、Bbが指定するレジスタの内容(Xb)、(
Bb)と、Dbの値そのものを加算することによって、
ストレージに置かれている第2オペランドの論理アドレ
スsbが得られる。先行命令りは、論理アドレスsbに
よって指定される第2オペランド(sb)を、レジスタ
Raへ書き込む、後続命令ARは、レジスタ間で加算を
行う命令の例である。第1オペランドは、Rcが指定す
るレジスタの内容(Rc)であり、第2オペランドは、
Rdが指定するレジスタの内容(Rd)である、後続命
令ARは、(Re)と(Rd)を加算し、レジスタRc
へ書き込む、しかし、Rc = RaまたはRd=Ra
である場合には、先行命令りがレジスタへの書き込みを
完了するまで、後続命令ARはレジスタからのオペラン
ドの読み出しを開始することができない、この状態を、
レジスタ・オペランド・コンフリクト、または、単に、
オペランド・コンフリクトと呼ぶ。
本発明は、オペランド・コンフリクトが発生している場
合においても、先行命令であるロード命令のレジスタへ
の書き込みを待つことなく、後続命令の演算処理を行う
ことを可能とする。
第5図は、第4図の命令列を含む命令列を、2命令ずつ
並列に処理するときの命令の流れを示すタイム・チャー
トである。
第5A図は、第4図の命令列の行先命令りと後続命令A
Rとの間でオペランド・コンフリクトが発生していない
(Rc≠RaかつRd≠Ra)場合のタイム・チャート
を示している。この場合には、第2B図に示したパイプ
ライン処理方式における命令処理の櫟準的な流れと同一
であり、処理に遅滞は生じていない。
第5B図は、第4図の命令列の先行命令りと後続命令A
Rとの間でオペランド・コンフリクトが発生している(
Rc=RaまたはRd = Ra )場合のタイム・チ
ャートを示している。この場合、後続命令ARが読み出
すべきオペランドの少なくとも一方((Rc)または(
Rd))は、先行命令りによってレジスタRaに書き込
まれる内容である。レジスタRaへの書き込みを行う先
行命令りのPステージは、C4サイクルにおいて処理さ
れる。したがって、レジスタRc、Rdからオペランド
の読み出しを行う後続命令ARのLステージは、C4サ
イクルまでは完了することができない、この結果、演算
処理が行われるEステージに着目すると、命令AR以降
の命令は、オペランド・コンフリクトが発生していない
場合に比べて、処理に2サイクルの遅滞が生じることと
なる。
オペランド・コンフリクトによる処理の遅滞を解決する
ための従来技術としては、演算器80゜81から汎用レ
ジスタ70への書き込みバスの途中から、オペランドを
読み出すための短絡バスを設ける方法が知られている。
この方法を、レジスタ・オペランド・ラップアラウンド
、または、単に、オペランド・ラップアラウンドと呼ぶ
第5C図は、第4図の命令列の先行命令りと後続命令A
Rとの間でオペランド・コンフリクトが発生している(
Rc=RaまたはRd=Ra)ときに、オペランド・ラ
ップアラウンドを用いる場合のタイム・チャートを示し
ている。この場合、後続命令ARが読み出すべきオペラ
ンド少なくとも一方((Re)または(Rd))が、先
行命令りによってレジスタRaへ書き込まれる内容であ
ることには変わりはない。しかし、オペランド・ラップ
アラウンドを用いているために、後続命令ARのLステ
ージにおいて、オペランドをレジスタからではなく、短
絡バスから読み出すことが可能である。この短絡バスに
読み出すべきオペランドが確定する先行命令りのEステ
ージは、C3サイクルにおいて処理される。したがって
、後続命令ARのLステージは、C3サイクルまでで完
了することができる。この結果、演算処理が行われるE
ステージに着目すると、命令AR以降の命令は、オペラ
ンド・コンフリクトが発生していない場合に比べて、処
理に1サイクルの遅滞が生じることになる。
ところで、第4図の命令列の処理において、ストレージ
50からオペランド・バッファ60へ読み出される先行
命令りの第2オペランド(sb)は、演算器80による
演算を施されることなく。
そのままレジスタRaへ書き込まれる。したがって、先
行命令りと後続命令ARとの間でオペランド・コンフリ
クトが発生している(Rc=RaまたはRd=Ra)場
合、後続命令ARがレジスタRaから読み出すべきオペ
ランド(Ra)は、先行命令りがストレージ50からオ
ペランド・バッファ60へ読み出すオペランド(S b
)と同一である。本発明は、後続命令ARが読み出すべ
きオペランドを、行先命令りが演算結果を書き込む汎用
レジスタ70のレジスタからではなく、先行命令りがオ
ペランドを読み出すリソース(この場合は、オペランド
・バッファ60)から読み出すことを可能にする。
第5D図は、第4図の命令列の行先命令りと後続命令A
Rとの間でオペランド・コンフリクトが発生している(
 Rc = RaまたはRd = Ra )ときに1本
発明を用いる場合のタイム・チャートを示している1本
発明によれば、後続命令ARは、Lステージにおいて、
オペランドを汎用レジスタ70からではなく、オペラン
ド・バッファ60から読み出すことが可能である。この
オペランド・バッファ60に読み出すべきオペランドが
確定する先行命令しのしステージは、C2サイクルにお
いて処理される。したがって、後続命令ARのLステー
ジは、C2サイクルまでで完了することができる。この
結果、演算処理が行われるEステージに清目すると、命
令AR以降の命令も、オペランド・コンフリクトが発生
していない場合と同様なサイクルで処理することが可能
となる。
さて、以下では、第1図に戻って、本発明を用いて構成
された装置の動作を説明する。
命令レジスタ10.11に設定された命令は、Dステー
ジにおいて、命令の解読とアドレス計算が行われる。つ
まり、命令の02部が命令デコーダ20.21によって
解読され、装置内の各部を制御するための命令解読情報
を生成する。この命令解読情報のなかで9本発明に関連
のある情報を次に示す。
・OP・・・演算器so、siにおいて行うべき演算の
種類を指定する。
・N1・・・汎用レジスタ70から第1オペランドの読
み出しを行うことを示す。
・N2・・・汎用レジスタ70から第2オペランドの読
み出しを行うことを示す。
・CH・・・汎用レジスタ70へ演算結果の書き込みを
行うことを示す。
・LD・・・ロード(ストレージ及びレジスタ内の第2
オペランドをレジスタへ転送する)命令であることを示
す。
・BP・・・ストレージ50.51から読み出しを行う
オペランドを保持するオペランド・バッファ60のエン
トリを指定する。
さらに、命令のR1部は、第1オペランドの読み出し及
び演算結果の書き込みを行うべき汎用レジスタ70のレ
ジスタを指定する。また、命令型式がRR型式である場
合には、命令のR2部は、第2オペランドの読み出しを
行う汎用レジスタ70のレジスタを指定する。一方、命
令型式がRX型式である場合には、命令のX2部と82
部は、ストレージ50.51から読み出すオペランドの
論理アドレスを計算するために用いられる汎用レジスタ
70のレジスタを指定する。これらの命令解読情報は、
命令キュー30によって、順次、保持される。
命令型式がRX型式である場合、命令の解読が命令デコ
ーダ20.21において行われると同時に、ストレージ
50.51から読み出すオペランドの論理アドレスの計
算がアドレス加算器40゜41において行われる。つま
り、命令のX2部と82部によって指定された汎用レジ
スタ70のレジスタの内容と命令のD2部とがアドレス
加算器40.41によって加算され、ストレージ50゜
51へ送出される。このとき、読み出すオペランドを保
持すべきオペランド・バッファ60のエントリを指定す
る命令解読情報BPも、ストレージ50.51へ送出さ
れる。
ストレージ50.51は、読み出すべきオペランドの論
理アドレスを受は取ると、Aステージにおいて、論理ア
ドレスから物理アドレスへの変換を行って、オペランド
を読み出す、読み出したオペランドは、受は取って命令
解読情報BPとともに、オペランド・バッファ60へ送
出する。一般に、ストレージ50.51は、高速小容量
のバッファ・ストレージと、低速大容量のメイン・スト
レージとの組合せによって構成される。読み出すべきオ
ペランドがバッファ・ストレージ内に存在する場合には
、1サイクルの間にオペランドを読み出すことが可能で
ある。しかし、読み出すべきオペランドがバッファ・ス
トレージ内に存在しない場合には、オペランドを読み出
すために数サイクル必要となり、Aステージにおける処
理時間が遅延することとなる。
オペランド・バッファ60は、Lステージにおいて、ス
トレージ50.51から送られてくるオペランドと命令
解読情報BPを受は取る。受は取られたオペランドは、
命令解読情報BPによって指定されるオペランド・バッ
ファ60のエントリに保持される。
さて、ある特定の命令について、命令解読情報が命令キ
ュー3oに保持され、また、必要な場合にはストレージ
50.51から読み出すべきオペランドがオペランド・
バッファ60に保持されているとき、演算器80.81
が以前の命令の演算処理を完了することが、その命令の
演算処理を演算器80.81によって行うための条件で
ある。
以上の条件が整うと、Lステージにおいて、命令解読情
報が命令キュー30から取り出されて、演算器80.8
1へ送出される。このときに、命令キュー30からオペ
ランド・バッファ60へ送られる命令解読情報BPによ
って指定されるエントリに保持されているオペランドが
取り出される。
また、命令キュー30から汎用レジスタ70へ送られる
命令解読情報R1及びR2によって指定されるレジスタ
の内容が読み出される。オペランド・バッファ60また
は汎用レジスタ70から読み出されるオペランドは、命
令キュー30から送られてくる命令解読情報N2によっ
て制御されるセレクタ84.85において一方が選択さ
れ、演算器80.81へ送られる。この際、命令解読情
報は、ラップ制御回路90及び演算制御回路95を介し
て演算器80.81へ送られ、また、オペランドは、ラ
ップ制御回路90によって制御されるセレクタ87.8
9を介して演算器80.81へ送られる0本発明は、主
として、ラップ制御回路90、演算制御回路95及びセ
レクタ87.89によって実現されるが、詳細について
は後述することとする。
演算器80.81は、Eステージにおいて、命令解読情
報OPによって指定される演算を、第1オペランドと第
2オペランドとの間に施し、演算結果を求める。簡単な
演算処理は、通常、1サイクルで完了することが可能で
ある。しかし、複雑な演算処理を行う場合には、数サイ
クルを必要とし、Eステージが遅延する結果となる。
演算器80.81によって演算結果が求められると、そ
の演算結果は、Pステージにおいて、命令解読情報R1
によって指定される汎用レジスタ70のレジスタへ書き
込まれる。
さて、命令キュー3oは、命令デコーダ20゜21にお
いて命令の解読が完了してから、演算器80.81にお
いて演算処理が開始されるまで、命令解読情報を保持す
るために設けられている。
ここでは、命令キュー30の動作について詳しく説明す
る。
命令キュー30は、イン・ポインタとアウト・ポインタ
とによって、先入れ先出しくF I FO)制御が行わ
れる。本実施例において、命令キュー30は、2つのイ
ン・ポインタ32.33と、2つのアウト・ポインタ3
6.37を備えている。
イン・ポインタ32.33は、それぞれ、命令デコーダ
20.21から送られてくる命令解読情報を保持すべき
エントリを指示している。アウト・ポインタ36.37
は、それぞれ、演算器80゜81において演算処理が開
始されるときに装置内の各部へ送り出すべき命令解読情
報を保持しているエントリを指示している。イン・ポイ
ンタ33及びアウト・ポインタ37は、それぞれ、常に
、イン・ポインタ32及びアウト・ポインタ36が指示
しているエントリの次のエントリを指示するように制御
される。したがって、2つのイン・ポインタ及びアウト
・ポインタは、1つにまとめることも可能である。命令
デコーダ20.21は。
それぞれ、命令レジスタ10.11に保持されている命
令の解読が完了すると、命令解読情報を命令キュー30
へ送り出すとともに、解読完了信号をイン・ポインタ3
2.33へ送出する。命令デコーダ20.21の両方が
解読完了信号を送出した場合には、イン・ポインタ32
.33は、2つインクリメントされる。命令デコーダ2
0のみが解読完了信号を送出した場合には、イン・ポイ
ンタ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つインクリメントされる。
オペランド・コンフリクトによる処理の遅滞を解決する
本発明は、オペランド・コンフリクトを発生している先
行命令がいわゆるロード命令である場合に、オペランド
・コンフリクトを発生している後続命令が読み出すべき
オペランドとして、先行命令が読み出したオペランドを
供給する0本実施例においては、ラップ制御回路9oが
、オペランド・コンフリクトの検出及びそれによる処理
の遅滞の解決のための制御を行う。
第6図は、ラップ制御回路90の内部構成を示すブロッ
ク図である0次のサイクルにおいて演算処理を行うため
に待機している先行命令及び後続命令の命令解読情報は
、命令キュー30からラップ制御回路90へ送られてく
る。先行命令の命令解読情報は、アウト・ポインタ36
によって指示される命令キュー30のエントリに保持さ
れている。一方、後続命令の命令解読情報は、アウト・
ポインタ37によって指示される命令キュー30のエン
トリに保持されている。以後の説明において必要な場合
には、先行命令の命令解読情報には文字Pは、後続命令
の命令解読情報には文字Sを後に付して区別することと
する。
さて、先行命令がロード命令であることを示す命令解読
情報LDp、また、先行命令が汎用レジスタ70へ演算
結果の書き込みを行うことを示す命令解読情報CHp及
びそのレジスタを指定する命令解読情報R1pは、アウ
ト・ポインタ36によって指示される命令キュー30の
エントリからラップ制御回路90へ送られる。一方、後
続命令が汎用レジスタ70から第1オペランドの読み出
しを行うことを示す命令解読情報Nlsと汎用レジスタ
7oへ演算結果の書き込みを行うことを示す命令解読情
報CHs及びそのレジスタを指定する命令解読情報R1
gと、汎用レジスタ7oがら第2オペランドの読み出し
を行うことを示す命令解読情報N2s及びそのレジスタ
を指定する命令解読情報R2sは、アウト・ポインタ3
7によって指示される命令キュー3oのエントリがらラ
ップ制御回路90へ送られる0以上の命令解読情報を用
いて、ラップ制御回路9oは、オペランド・コンフリク
ト検出信号oc1本発明における先行命令がロード命令
である場合のオペランド・ラップアラウンド指示信号L
WI、LW2及び先行命令の演算結果の書き込みを抑止
する書き込み抑止信号WCを生成する。
第6図において、先行命令が書き込みを行うレジスタを
指定するRIPと、後続命令が読み出しを行うレジスタ
を指定するRls、R2gとは、それぞれ、比較器90
1,902によって比較される。先行命令がレジスタへ
書き込みを行って。
かつ、後続命令がレジスタがら読み出しを行い、また、
それらのレジスタが一致していることは。
アンド・ゲート911,912によって検出される。つ
まり、アンド・ゲート911,912は、従来のオペラ
ンド・コンフリクトを、それぞれ。
後続命令の第1.第2オペランドに対して検出している
。先行命令がいわゆるロード命令ではないことは、イン
バータ920の出力によって示される。その結果、アン
ド・ゲート931,932の出力は、それぞれ、後続命
令の第1.第2オペランドを読み出すときに、ロード命
令以外の先行命令との間で、オペランド・コンフリクト
を発生していることを示す、オア・ゲート940は、ア
ンド・ゲート931,932の少なくとも一方がオペラ
ンド・コンフリクトを検出すると、オペランド・コンフ
リクト検出信号OCを出力する。ところが、アンド・ゲ
ート911,912が従来のオペランド・コンフリクト
を検出しているとき、先行命令がいわゆるロード命令で
あるならば、アンド・ゲート931,932は、オペラ
ンド・コンフリクト検出信号oCの出力を抑止する。一
方、このときには、アンド・ゲート951,954H,
:よって、それぞれ、後続命令の第1.第2オペランド
に対応したオペランド・ラップアラウンド指示信号LW
I、LW2が出力される。先行命令及び後続命令がレジ
スタへ書き込みを行い、また。
それらのレジスタが一致していることは、アンド・ゲー
ト913によって検出される。この場合には、先行命令
の演算結果ではなく、後続命令の演算結果がレジスタへ
書き込まれるべきである。したがって、アンド・ゲート
913によって、先行命令書き込み抑止信号WCが出力
される。
オペランド・コンフリクト検出信号oCは、演算制御回
路95へ送られ、後続命令が演算器81において演算処
理を開始することを抑止するために用いられる。この場
合には、後続命令以降の処理に遅滞が生じることとなる
。また、オペランド・ラップアラウンド指示信号LWI
、LW2は、それぞれ、セレクタ87.89へ送られ、
先行命令が読み出す第2オペランドを、後続命令が読み
出すべき第1.第2オペランドとして選択するために用
いられる。さらに、先行命令書き込み抑止信号WCは、
演算制御回路95へ送られ、先行命令が演算器80にお
いて行った演算処理の演算結果を汎用レジスタ70へ書
き込むことを抑止するために用いられる。
以上のように制御することによって、第1図に示した装
置は、第4図の命令列を、第5D図のタイム・チャート
に従って、処理することが可能となる。
第7図は、第1図における命令キュー30及びオペラン
ド・バッファ60を、2つの命令キュー30.31と2
つのオペランド・バッファ60゜61とによって構成し
た変形例である1本変形例において、命令キュー30.
31に対するイン・ポインタ32.33及びアウト・ポ
インタ36゜37は、各々独立に制御することも可能で
ある。
それ以外の装置各部(例えば、本発明において特徴的な
ラップ制御回路90など)は、第1図に示した装置と同
一構成とすることが可能である。
第8図は、第1図において二重化されている次の装置各
部を、二重化しないで構成した変形例である。つまり、
命令レジスタ10.命令デコーダ20、アドレス加算器
40.そして、ストレージ50によって構成した変形例
である。この変形例は、各々の演算部80.81のスル
ープットが、命令デコーダ20のスルーブツトに比べて
低い場合に有効である。ところで、この変形例において
は、命令キュー30に対して、1つのイン・ポインタ3
2と2つのアウト・ポインタ36.37が設けられる。
イン・ポインタ32は、1つの命令デコーダ20が命令
の解読を完了すると送り出す解読完了信号によってのみ
制御される。つまり。
命令デコーダ20が解読完了信号を送出した場合に、イ
ン・ポインタ32は、1つインクリメントされる。一方
、アウト・ポインタ36.37は、第1図に示した装置
と同じく、演算制御回路95が送り出す2つの演算器8
0.81に対応した演算完了信号によって制御される。
それ以外の装置各部(例えば1本発明において特徴的な
ラップ制御回路90など)は、第1図に示した装置と同
一として構成することが可能である。
第9図は、命令を1つずつ処理する装置に対して、本発
明を適用した他の一実施例である1本実施例は、第8図
に示した変形例にさらに変形を加えた例と考えることも
できる。つまり、第8図における2つの演算器80.8
1を、1つの演算器80によって構成した例と考えるこ
ともできる。
第10図は、第4図の命令列を含む命令列を、1命令ず
つ処理するときの命令の流れを示すタイム・チャートで
ある。ただし、第10図に示したタイム・チャートにお
いては、先行命令りの直前の命令が、演算処理のために
Eステージを2サイクル占有している0本実施例におい
ては、第10図に示したように、オペランド・コンフリ
クトを発生している先行のロード命令以前の命令の演算
処理が複雑で、先行のロード命令の演算処理が待機させ
られている場合に効果を発揮する。
第10A図は、第4図の命令列の先行命令りと後続命令
ARとの間でオペランド・コンフリクトが発生していな
い(Rc≠RaかつRd≠Ra)場合のタイム・チャー
トを示している。この場合には、演算処理が行われるE
ステージに着目すると、先行命令りの直前の命令の演算
処理による遅滞が生じている。
ところで、第4図の命令列の処理において、ストレージ
50からオペランド・バッファ60へ読み出される先行
命令りの第2オペランド(sb)は、演算部80による
演算を施されることなく。
そのままレジスタRaへ書き込まれる。したがって、先
行命令りは、演算器80において特定の演算処理を行う
必要性はない0本発明は、先行命令りと後続命令ARの
演算処理のために必要なオペランドを、オペランド・バ
ッファ60及び汎用レジスタ70から同時に読み出し、
先行命令りは。
演算器80による演算処理を行うことなく処理を行い、
その時点で空き状態になる演算器80を用いて、後続命
令ARの演算処理を行う。
第10B図は、第4図の命令列の先行命令りと後続命令
ARとの間でオペランド・コンフリクトが発生していな
い(Rc # RaかつRd≠Ra)ときに、本発明を
用いる場合のタイム・チャートを示している。本発明に
よれば、先行命令りと後続命令ARのEステージは、同
時に、C4サイクルにおいて処理される。その結果、演
算処理が行われるEステージに着目すると、命令AR以
降の命令は、従来に比べて、処理を1サイクル早く行う
ことが可能となる。
第10C図は、第4図の命令列の行先命令りと後続命令
ARとの間でオペランド・コンフリクトが発生している
( Rc = RaまたはRd = Ra )場合のタ
イム・チャートを示している。この場合に、後続命令A
Rが読み出すべきオペランドの少なくとも一方((Re
)または(Rd))は、先行命令りによってレジスタR
aに書き込まれる内容である。レジスタRaへの書き込
みを行う先行命令りのPステージは、C5サイクルにお
いて処理される。したがって、レジスタRc、Rdがら
オペランドの読み出しを行う後続命令ARのLステージ
は、C5サイクルまでは完了することができない、この
結果、演算処理が行われるEステージに着目すると、命
令AR以降の命令は、オペランド・コンフリクトが発生
していない場合に比べて、さらに処理に1サイクルの遅
滞が生じ、結局2サイクルの遅滞が生じることとなる。
第10D図は、第4図の命令列の先行命令りと後続命令
ARとの間でオペランド・コンフリクトが発生している
( Rc = RaまたはRd==Ra)ときに、オペ
ランド・ラップアラウンドを用いる場合のタイム・チャ
ートを示している。この場合には、後続命令ARのLス
テージにおいて、オペランドをレジスタからではなく、
前述した短絡バスから読み出すことが可能である。この
短絡バスに読み出すべきオペランドが確定する先行命令
りのEステージは、C4サイクルにおいて処理される。
したがって、後続命令ARのLステージは、C4サイク
ルまでで完了することができる。この結果、演算処理が
行われるEステージに着目すると、命令AR以降の命令
は、オペランド・コンフリクトが発生していない場合と
同じく、処理に1サイクルの遅滞が生じることにな・る
さて、前述したように、先行命令りと後続命令ARとの
間でオペランド・コンフリクトが発生している(Rc=
RaまたはRd=Ra)場合、後続命令ARがレジスタ
Raから読み出すべきオペランド(Ra )は、先行命
令りがストレージ50からオペランド・バッファ60へ
読み出すオペランド(sb)と同一である。したがって
、第1図に示した実施例において説明した本発明は、後
続命令ARが読み出すべきオペランドを、先行命令りが
演算結果を書き込む汎用レジスタ7oのレジスタからで
はなく、先行命令りがオペランドを読み出すリソース(
この場合は、オペランド・バッファ60)から読み出す
ことを可能にする。
第10E図は、第4図の命令列の先行命令りと後続命令
ARとの間でオペランド・コンフリクトが発生している
(Rc=RaまたはRd = Ra )ときに、本発明
を用いる場合のタイム・チャー1〜を示している。本発
明によれば、先行命令りは、演算処理を行うことなく処
理され、一方、後続命令ARは、Lステージにおいて、
オペランドを汎用レジスタ70からではなく、オペラン
ド・バッファ60から読み出すことが可能である。この
オペランド・バッファ60に読み出すべきオペランドが
確定する先行命令りのLステージは、C3サイクルにお
いた処理される。したがって、後続命令ARのLステー
ジは、C3サイクルまでで完了することができる。この
結果、演算処理が行われるEステージに着目すると、命
令AR以降の命令も、オペランド・コンフリクトを発生
していない場合と同様に、処理を1サイクル早く行うこ
とが可能となる。
さて、以下では、第9図に戻って、本発明を用いて構成
された装置の動作を説明する。
第9図に示される装置各部において、命令レジスタ10
.命令デコーダ20.命令キュー30゜アドレス加算器
40.ストレージ50及びオペランド・バッファ60は
、第8図に示した装置各部と同様に構成されており、そ
の動作もまた同様である。つまり、命令レジスタ10に
設定された命令は、Dステージにおいて、命令デコーダ
20による命令の解読と、アドレス加算器40によるア
ドレス計算が行われる。命令デコーダ20によって生成
された命令解読情報は、命令キュー30によって、順次
、保持される。ストレージ50は、Aステージにおいて
、論理アドレスから物理アドレスへの変換と、オペラン
ドの読み出しを行う。
オペランド・バッファ60は、Lステージにおいて、ス
トレージ50から送られているオペランドを受は取り、
命令解読情報BPによって指定されるエントリに保持す
る。
さて、前述したように、ある特定の命令について、命令
解読情報が命令キュー30に保持され、また、必要な場
合にはストレージ50から読み出すべきオペランドがオ
ペランド・バッファ60に保持されているとき、演算器
80が以前の命令の演算処理を完了することが、その命
令の演算処理を演算器80によって行うための条件であ
る0以上の条件が整うと、Lステージにおいて、命令解
読情報が命令キュー30から取り出されて、その命令の
演算処理が開始される0行うべき演算の種類は、命令キ
ュー30から演算器80へ送られる命令解読情報OPに
よって指定される。一方、このとき同時に、命令キュー
30からオペランド・バッファ60へ送られる命令解読
情報BPによって指定されるエントリに保持されている
オペランドが取り出される。また、命令キュー30から
汎用レジスタ70へ送られる命令解読情報R1及びR2
によって指定されるレジスタの内容が読み出される。オ
ペランド・バッファ60または汎用レジスタ70から読
み出されるオペランドは、命令キュー30から送られて
くる命令解読情報N2によって制御されるセレクタ84
.85において一方が選択され、演算器80へ送られる
。この際、命令解読情報は、ラップ制御回路90及び演
算制御回路95を介して演算器80へ送られ、また。
オペランドは、ラップ制御回路90によって制御される
セレクタ86.88を介して演算器80へ送られる1本
発明は、主として、ラップ制御回路90、演算制御回路
95及びセレクタ86.88によって実現されるが、詳
細については後述することとする。
演算器80は、Eステージにおいて、命令解読情報oP
によって指定される演算を、第1オペランドと第2オペ
ランドとの間に施し、演算結果を求める。簡単な演算処
理は、通常、1サイクルで完了することが可能である。
しかし、複雑な演算処理を行う場合には、数サイクルを
必要とし、Eステージが遅延する結果となる。一方、命
令解読情報OPによって指定される演算がいわゆるロー
ドである場合には、演算器80によって特定の演算処理
を行う必要はない、この場合には、演算器80を介する
ことなく、Eステージにおける演算処理を完了する。
演算器80によって演算結果が求められると、その演算
結果は、Pステージにおいて、命令解読情報R1によっ
て指定される汎用レジスタ70のレジスタへ書き込まれ
る。一方、処理されている命令がいわゆるロード命令で
ある場合には、セレクタ80によって選択されたオペラ
ンドが、そのまま、命令解読情報R1によって指定され
る汎用レジスタ70のレジスタへ書き込まれる。
以前の命令の処理のために既に生じている演算処理の遅
滞を解決する本発明は、いわゆるロード命令の処理に際
して、演算処理を演算器を用いることなく行い、その結
果として空きが生じることとなる演算器を後続命令の演
算処理のために用いる。また、オペランド・コンフリク
トによる処理の遅滞を解決する本発明は、オペランド・
コンフリクトを発生している先行命令がいわゆる前記の
ロード命令であり、演算処理を演算器を用いることなく
行う場合に、オペランド・コンフリクトを発生している
後続命令が読み出すべきオペランドとして、先行命令が
読み出したオペランドを供給する1本実施例においては
、ラップ制御回路90が、ロード命令に対する演算器を
用いることなく処理するための制御とオペランド・コン
フリクトの検出を行い、また、処理の遅滞の解決のため
の制御を行う。
本実施例におけるラップ制御回路90の内部構成は、第
6図に示した2つの演算器によって2つずつ命令処理を
行う前述の実施例におけるラップ制御回路90の内部構
成と同一とすることが可能である。先行命令がロード命
令であることを示す命令解読情報LDp、また、先行命
令が汎用レジスタ70へ演算結果の書き込みを行うこと
を示す命令解読情報CHp及びそのレジスタを指定する
命令解読情報R1pは、アウト・ポインタ36によって
指示される命令キュー30のエントリからラップ制御回
路90へ送られる。一方、後続命令が汎用レジスタ70
から第1オペランドの読み出しを行うことを示す命令解
読情報Nls、汎用レジスタ70へ演算結果の書き込み
を行うことを示す命令解読情報CHs及びそのレジスタ
を指定する命令解読情報R1gと、汎用レジスタ70か
ら第2オペランドの読み出しを行うことを示す命令解読
情報N2s及びそのレジスタを指定する命令解読情報R
2gは、アウト・ポインタ37によって指示される命令
キュー30のエントリからラップ制御回路90へ送られ
る0以上の命令解読情報を用いて、ラップ制御回路90
は、オペランド・コンフリクト検出信号oC1本発明に
おける先行命令がロード命令である場合のオペランド・
ラップアラウンド指示信号LWI、LW2、先行命令の
演算結果の書き込みを抑止する書き込み抑止信号WCを
生成する。
オペランド・コンフリクト検出信号OCは、演算制御回
路95へ送られ、後続命令が演算器80において演算処
理を開始することを抑止するために用いられる。しかし
、本実施例においては、先行命令がいわゆるロード命令
ではない場合には、先行命令が演算器80において演算
処理を行うので、本来、後続命令が演算器81において
演算処理を開始することは不可能である。したがって、
本実施例においては、オペランド・コンフリクト検出信
号OCは必要がなく、それに伴い、第6図に示されてい
るインバータ920.アンド・ゲート931,932.
オア・ゲート940も必要がない。一方、オペランド・
ラップアラウンド指示信号LWI、LW2は、セレクタ
86.88へ送られ、先行命令が読み出す第2オペラン
ドを、後続命令が読み出すべき第1.第2オペランドと
して選択するために用いられる。つまり、セレクタ86
は、オペランド、ラップアラウンド指示信号LWIが送
られてくると、先行命令(演算器8゜において演算処理
が行われない)の第2オペランド(セレクタ84からの
パス)を選択する。オペランド・ラップアラウンド指示
信号LWIが送られてこない場合には、オペランド・ラ
ップアラウンド指示信号LW2が送られてくると、後続
命令(演算器80において演算処理が行われる)の第1
オペランド(汎用レジスタ70からのパス)を選択する
が、オペランド・ラップアラウンド指示信号LW2が送
られてこないと、先行命令(演算器80において演算処
理が行われる)の第1オペランド(汎用レジスタ70か
らの他のパス)を選択する。同様に、セレクタ88は、
オペランド・ラップアラウンド指示信号LW2が送られ
てくると、先行命令(演算器80において演算処理が行
われない)の第2オペランド(セレクタ84からのパス
)を選択する。オペランド・ラップアラウンド指示信号
LW2が送られてこない場合には、オペランド・ラップ
アラウンド指示信号LWIが送られてくると、後続命令
Cffjl算器80において演算処理が行われる)の第
2オペランド(セレクタ85からのパス)を選択するが
、オペランド・ラップアラウンド指示信号LWIが送ら
れてこないと、先行命令(演算器80において演算処理
が行われる)の第2オペランド(セレクタ84からのバ
ス)を選択する。さらに、先行命令書き込み抑止信号W
Cは、演算制御回路95へ送られ、先行命令(演算器8
0において演算処理が行われない)の演算結果を汎用レ
ジスタ70へ書き込むことを抑止するために用いられる
。また、演算制御回路9Sは、先行命令がいわゆるロー
ド命令であることを示す命令解読情報LDpを受は取る
と、いわゆるロード命令である先行命令に対応する演算
完了信号を送出する。一方、演算器80において後続命
令の演算処理が完了すると、後続命令に対応する演算完
了信号を送出する。これら2つの演算完了信号は、アウ
ト・ポインタ36.37のインクリメントを制御するた
めに用いられる。
以上のように制御することによって、第9図に示した装
置は、第4図の命令列を、第10E図のタイム・チャー
トに従って、処理することが可能となる。
第11図は、命令を1つずつ処理する装置に対して、本
発明を適用した他の一実施例である1本実施例は、第9
図において示されているセレクタ84から汎用レジスタ
70へのパスと、このバスに対応した演算制御回路95
からの制御信号を取り除いていた変形例と考えることも
できる。それ以外の装置各部(例えば1本発明において
特徴的なラップ制御回路90など)は、第9図に示した
装置と同一構成とすることが可能である。
ところで、第4図の命令列において、ストレージ50か
らオペランド・バッファ60へ読み出される先行命令り
の第2オペランド(sb)は、演算器80による演算を
施されることなく、そのままレジスタRaへ書き込まれ
る。したがって、先行命令りは、演算器80において特
定の演算処理を行う必要性はない、また、先行命令りと
後続命令ARの第1オペランドとの間でオペランド・コ
ンフリクトが発生している(Rc=Ra)場合、後続命
令ARがレジスタRaから読み出すべき第1オペランド
(Ra)は、先行命令りがストレージ50からオペラン
ド・バッファ60へ読み比すオペランド(sb)と同一
である。したがって。
後続命令ARが読み出すべきオペランドを、先行命令り
が演算結果を書き込む汎用レジスタ70のレジスタから
ではなく、先行命令りがオペランドを読み出すリソース
(この場合は、オペランド・バッファ60)から読み出
すことが可能である。
さらに、この場合、先行命令りと後続命令ARが演算結
果の書き込みを行うレジスタも一致している。したがっ
て、先行命令の演算結果ではなく。
後続命令の演算結果がレジスタへ書き込まれるべきであ
り、先行命令の演算結果の書き込みを行う必要がない1
本実施例は、先行命令と後続命令の第1オペランドとの
間でオペランド・コンフリクトを発生している場合に限
って、本発明を適用する。つまり1本発明は、上記の場
合に、先行命令りと後続命令ARの演算処理のために必
要なオペランドを、オペランド・バッファ60及び汎用
レジスタ70から同時に読み出す、そして、先行命令り
は、演算器80による演算処理を行うことなく処理を行
い、読み出したオペランドを後続命令ARへ第1オペラ
ンドとして引き渡す。後続命令ARは、先行命令りから
第1オペランドを受は取り、その時点で空き状態になる
演算器80を用いて演算処理を行う。
さて、以下では、第11図に戻って1本発明を用いて構
成された装置の動作を説明する。
第11図に示される装置各部は、2つのセレクタ86.
88を除いて、第9図に示した装置各部と同様に構成さ
れており、その動作もまた同様である。
以前の命令の処理のために既に生じている演算処理の遅
滞を解決する本発明は、いわゆるロード命令の処理に際
して、演算処理を演算器を用いることなく行い、その結
果として空きが生じることとなる演算器を後続命令の演
算処理のために用いる、また、オペランド・コンフリク
トによる処理の遅滞を解決する本発明は、オペランド・
コンフリクトを発生している先行命令がいわゆる前記の
ロード命令であり、演算処理を演算器を用いることなく
行う場合に、オペランド・コンフリクトを発生している
後続命令が読み出すべきオペランドとして、先行命令が
読み出したオペランドを供給する。本実施例においても
、ラップ制御回路90が、ロード命令に対する演算器を
用いることなく処理するための制御とオペランド・コン
フリクトの検出を行い、また、処理の遅滞の解決のため
の制御を行う。
本実施例におけるラップ制御回路90の内部構成は、第
6図に示したラップ制御回路90と同一とすることが可
能である。また1本実施例においても、第9図に示した
装置における前述したラップ制御回路90と同様に、オ
ペランド・コンフリクト検出(g号○Cは必要がなく、
それに伴い、第6図に示されているインバータ920.
アンド・ゲート931,932.オア・ゲート940も
必要がない。また1本実施例においては、先行命令と後
続命令の第2オペランドとの間でオペランド・コンフリ
クトが発生している場合には、処理の遅滞の解決を行わ
ないので、オペランド・ラップアラウンド指示信号LW
2も必要がない。それに伴って、比較器902.アンド
・ゲート912゜952も必要がない、一方、オペラン
ド・ラップアラウンド指示信号LWIと先行命令書き込
み抑止信号WCは、セレクタ86.88及び演算制御回
路95へ送られ、処理の遅滞の解決のために用いられる
。つまり、セレクタ86は、オペランド・ラップアラウ
ンド指示信号LWIと先行命令書き込み抑止信号WCの
両信号がともに送られてくると、先行命令(演算器80
において演算処理が行われない)の第2オペランド(セ
レクタ84からのパス)を選択し、両信号がともに送ら
れてこないときは、先行命令(演算器80において演算
処理が行われる)の第1オペランド(汎用レジスタ70
からのパス)を選択する。同様に、セレクタ88は、両
信号がともに送られてくると、後続命令(演算器80に
おいて演算処理が行われる)の第2オペランド(セレク
タ85からのバス)を選択し1両信号が送られてこない
ときは、先行命令(演算器80において演算処理が行わ
れる)の第2オペランド(セレクタ84からのバス)を
選択する。さらに、演算制御回路95は、両信号がとも
に送られてくると、いわゆるロード命令である先行命令
に対応する演算完了信号を送出する。
一方、演算器80において後続命令の演算処理が完了す
ると、後続命令に対応する演算完了信号を送出する。こ
れら2つの演算完了信号は、アウト・ポインタ36.3
7のインクリメントを制御するために用いられる。
以上のように制御することによって、第11図に示した
装置は、第4図の命令列において先行命令りと後続命令
ARの第1オペランドとの間でオペランド・コンフリク
トが発生している(Rc=Ra)場合に限って、その命
令列を、第10E図のタイム・チャートに従って、処理
することが可能となる。
〔発明の効果〕
本発明によれば、先行命令がいわゆるロード命令である
場合、先行命令と後続命令との間でオペランド・コンフ
リクトが発生しているときにも、先行命令と後続命令の
演算処理を同時に行うことができるので、オペランド・
コンフリクトによって生じる処理の遅滞を解決でき、他
の要因によって既に生じている処理の遅滞を軽減できる
という効果がある。
【図面の簡単な説明】
第1図は本発明による処理装置の一実施例の全体構成を
表わすブロック図、第2図はパイプライン処理方式にお
ける命令処理の流れを示すタイム・チャート、第3図及
び第4図は説明のために用いる命令の型式とその命令の
型式を用いた命令列の一例、第5図は第4図の命令列を
処理する場合のタイム・チャート、第、6図は第1図の
実施例のラップ制御回路の詳細なブロック図、第7図及
び第8図は第1図の実施例の変形例である。第9図は本
発明による処理装置の他の一実施例の全体構成を表わす
ブロック図、第10図は第4図の命令列を処理する場合
のタイム・チャート、第11図は第9図の実施例の変形
例である。 10・・・命令レジスタ、20・・・命令デコーダ、3
0・・・命令キュー、40・・・アドレス加葺器、50
・・・ストレージ、60・・・オペランド・バッファ、
70・・・汎用レジスタ、80・・・演算器、90・・
・ラップ制御回路、95・・・演算制御回路。 一\

Claims (1)

  1. 【特許請求の範囲】 1、複数の命令を並列に処理する情報処理装置において
    、 オペランドを保持するストレージと汎用レジスタと、 該ストレージから読み出された複数の命令のオペランド
    を保持し、少なくとも2つの命令のオペランドを供給す
    るオペランド保持手段と、該オペランド保持手段と該汎
    用レジスタに接続された少なくとも1つの演算手段と、 実行すべき命令を順次解読して命令解読情報を生成する
    解読手段と、 該解読手段により生成された複数の命令解読情報を保持
    し、少なくとも2つの命令解読情報を供給する命令保持
    手段と、 該命令保持手段から供給された命令解読情報により、先
    行命令が読み出したオペランドに演算を施すことなく該
    汎用レジスタへ書き込みを行う命令であることを検出す
    る命令検出手段とを有し、 該命令検出手段が該先行命令を検出した場合に、少なく
    とも1つの該演算手段によって、少なくとも該先行命令
    と後続命令の演算処理を同時に行うことを特徴とする情
    報処理装置。 2、該オペランド保持手段と該汎用レジスタに接続され
    、先行命令及び後続命令のオペランドを選択するオペラ
    ンド選択手段と、 該オペランド選択手段に接続された少なくとも1つの演
    算手段と、 該命令保持手段から供給された命令解読情報により、先
    行命令が該汎用レジスタのあるレジスタへ書き込みを行
    い、後続命令が該汎用レジスタの同一レジスタからオペ
    ランドの読み出しを行う競合状態を検出する競合検出手
    段とを有し、 該命令検出手段が該先行命令を検出し、該競合検出手段
    が該先行命令と該後続命令との間に該競合状態を検出し
    た場合に、該オペランド選択手段によって、該後続命令
    の演算処理を行うべき該演算手段に該先行命令のオペラ
    ンドを供給し、少なくとも1つの該演算手段によって、
    少なくとも該先行命令と該後続命令の演算処理を同時に
    行うことを特徴とする前記第1項記載の情報処理装置。 3、該命令保持手段から供給された命令解読情報により
    、先行命令が該汎用レジスタのあるレジスタへ書き込み
    を行い、後続命令も該汎用レジスタの同一レジスタへ書
    き込みを行う重複状態を検出する重複検出手段を有し、 該命令検出手段が該先行命令を検出し、該重複検出手段
    が該先行命令と該後続命令との間に該重複状態を検出し
    た場合に、該先行命令のレジスタへの書き込みを抑止す
    ることを特徴とする前記第1項記載の情報処理装置。
JP61281720A 1986-11-28 1986-11-28 情報処理装置 Expired - Lifetime JPH0810430B2 (ja)

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
DE3789604T DE3789604T2 (de) 1986-11-28 1987-11-24 Datenprozessor zur parallelen Ausführung von miteinander im Konflikt stehenden Befehlen.
EP87117331A EP0269980B1 (en) 1986-11-28 1987-11-24 Data processor for parallelly executing conflicting instructions

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 true JPS63136138A (ja) 1988-06-08
JPH0810430B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0248733A (ja) * 1988-08-10 1990-02-19 Hitachi Ltd 情報処理装置
JPH0520069A (ja) * 1991-07-15 1993-01-29 Pfu Ltd 並列実行方式
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
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 三菱電機株式会社 データ処理装置
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
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
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
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
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
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 三菱電機株式会社 並列演算処理装置
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
EP0636256B1 (en) 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
DE69308548T2 (de) 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
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
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
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

Family Cites Families (14)

* Cited by examiner, † Cited by third party
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 情報処理装置
JPH0658631B2 (ja) * 1983-12-19 1994-08-03 株式会社日立製作所 デ−タ処理装置
JPH063584B2 (ja) * 1983-12-19 1994-01-12 株式会社日立製作所 情報処理装置
JPS61160142A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd デ−タ処理装置
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0248733A (ja) * 1988-08-10 1990-02-19 Hitachi Ltd 情報処理装置
US6282630B1 (en) 1991-07-08 2001-08-28 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution
JPH0520069A (ja) * 1991-07-15 1993-01-29 Pfu Ltd 並列実行方式

Also Published As

Publication number Publication date
EP0269980A3 (en) 1990-04-04
EP0269980B1 (en) 1994-04-13
DE3789604D1 (de) 1994-05-19
DE3789604T2 (de) 1994-07-21
US4928226A (en) 1990-05-22
EP0269980A2 (en) 1988-06-08
JPH0810430B2 (ja) 1996-01-31

Similar Documents

Publication Publication Date Title
JPS63136138A (ja) 情報処理装置
JPS621032A (ja) 情報処理装置
JPH02227769A (ja) データ処理システム
US6101596A (en) Information processor for performing processing without register conflicts
JPH0348536B2 (ja)
JPH0348537B2 (ja)
JPH03286332A (ja) デジタルデータ処理装置
JPS61253541A (ja) 命令処理装置
JPH04215129A (ja) 連続指令実行方法及び装置
JPS59114677A (ja) ベクトル処理装置
JP2812610B2 (ja) パイプライン制御方式
JPH05274143A (ja) 複合条件処理方式
JPS6125166B2 (ja)
JPH01296345A (ja) 情報処理装置
JPH0277940A (ja) データ処理装置
JPS5844569A (ja) 命令処理同期制御方式
JPS6320536A (ja) 情報処理装置
JPH0991139A (ja) 情報処理装置
JP2919184B2 (ja) パイプライン処理を行う情報処理装置
JP3475861B2 (ja) データ処理装置
JP3525985B2 (ja) 中央演算処理装置
JPS60105050A (ja) パイプライン制御方式
JPH0290326A (ja) 先行制御方式
JPS60178540A (ja) 情報処理装置におけるバイパス制御方式
JPH0266628A (ja) 情報処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term