JPH01296345A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH01296345A JPH01296345A JP12748388A JP12748388A JPH01296345A JP H01296345 A JPH01296345 A JP H01296345A JP 12748388 A JP12748388 A JP 12748388A JP 12748388 A JP12748388 A JP 12748388A JP H01296345 A JPH01296345 A JP H01296345A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- operand
- subsequent
- arithmetic
- processing
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 claims description 29
- 238000001514 detection method Methods 0.000 claims description 14
- 230000010365 information processing Effects 0.000 claims description 14
- 238000000034 method Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000014759 maintenance of location Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、複数の命令を並列処理する命令処理装置に関
し、特に、パイプライン処理方式(先行制御方式)によ
って、複数の命令を並列処理する、 命令処理装置に
関するものである。
し、特に、パイプライン処理方式(先行制御方式)によ
って、複数の命令を並列処理する、 命令処理装置に
関するものである。
従来、命令列の複数の各命令を並列(部分的オーバーラ
ツプを含む)に処理する方式、例えば。
ツプを含む)に処理する方式、例えば。
パイプライン処理方式により、処理の高速化を図る命令
処理装置において、先行する命令の処理があるレジスタ
へ書込みを行う処理であり、後続する命令の処理が同一
レジスタからオペランドの読出しを行う処理である場合
、先行する命令の処理においてレジスタへの書込みを完
了するまで、後続する命令の処理では当該レジスタから
オペランドの読出しを行うことができない、このために
、パイプライン処理における各ステージ処理の進行に遅
滞が生じ、並列処理による高速化が有効に機能しない、
上述のようなレジスタ内で生じる命令処理におけるオペ
ランドの競合は、レジスタ・、オペランド・コンフリク
ト、または単にオペランド・コンフリクトと呼ばれる。
処理装置において、先行する命令の処理があるレジスタ
へ書込みを行う処理であり、後続する命令の処理が同一
レジスタからオペランドの読出しを行う処理である場合
、先行する命令の処理においてレジスタへの書込みを完
了するまで、後続する命令の処理では当該レジスタから
オペランドの読出しを行うことができない、このために
、パイプライン処理における各ステージ処理の進行に遅
滞が生じ、並列処理による高速化が有効に機能しない、
上述のようなレジスタ内で生じる命令処理におけるオペ
ランドの競合は、レジスタ・、オペランド・コンフリク
ト、または単にオペランド・コンフリクトと呼ばれる。
このような命令処理におけるコンフリクトの問題につい
ては、例えば、ニー・シー・エムコンピユーテイング
サーベイズ、第9巻、第1号、第61頁から第102頁
(1977年)[ACM Computing 5ur
veys、Vol、9.No、1.pp61−102(
1977)]において、リード・アフタ・ライトとして
論じられている。ここでは、このようなオペランド・コ
ンフリクトの解決方法として、レジスタへの書込みパス
の途中から、オペランドを読出すための短絡パスを設け
る方法が示唆されている。
ては、例えば、ニー・シー・エムコンピユーテイング
サーベイズ、第9巻、第1号、第61頁から第102頁
(1977年)[ACM Computing 5ur
veys、Vol、9.No、1.pp61−102(
1977)]において、リード・アフタ・ライトとして
論じられている。ここでは、このようなオペランド・コ
ンフリクトの解決方法として、レジスタへの書込みパス
の途中から、オペランドを読出すための短絡パスを設け
る方法が示唆されている。
ところで、後続命令が転送命令であり、レジスタから読
出したオペランドに演算を施すことなく単に転送する命
令である場合、後続命令の転送命令を処理した後の演算
結果はレジスタから読出したオペランドの内容と同一で
ある。この場合には、後続命令が上記のようなオペラン
ド・コンフリクトを生じる場合であっても、後続命令は
先行命令の演算処理の終了を待つことなく、並列に同時
に処理の実行が可能である。このように後続命令が転送
命令のように演算を施すことなく転送する命令である場
合、命令処理を並列に処理可能であるにもかかbらず、
従来の処理装置においては、並列に処理を行うように命
令処理の制御が行われず、通常の演算を施す命令と同程
度に、命令処理の高速化が行われているにすぎないとい
う問題点があった・ 本発明は、上記問題点を解決するためになされたもので
ある。
出したオペランドに演算を施すことなく単に転送する命
令である場合、後続命令の転送命令を処理した後の演算
結果はレジスタから読出したオペランドの内容と同一で
ある。この場合には、後続命令が上記のようなオペラン
ド・コンフリクトを生じる場合であっても、後続命令は
先行命令の演算処理の終了を待つことなく、並列に同時
に処理の実行が可能である。このように後続命令が転送
命令のように演算を施すことなく転送する命令である場
合、命令処理を並列に処理可能であるにもかかbらず、
従来の処理装置においては、並列に処理を行うように命
令処理の制御が行われず、通常の演算を施す命令と同程
度に、命令処理の高速化が行われているにすぎないとい
う問題点があった・ 本発明は、上記問題点を解決するためになされたもので
ある。
本発明の目的は、例えば、先行命令が演算結果をレジス
タに書込む命令であり、後続命令がレジスタから読出し
たオペランドに演算を施すことなく転送する命令であっ
て先行命令と後続命令との間でオペランド・コンフリク
トを発生する場合を検出して、先行命令と後続命令の演
算処理を同時に行い、命令処理を更に高速化する情報処
理装置を提供することにある。
タに書込む命令であり、後続命令がレジスタから読出し
たオペランドに演算を施すことなく転送する命令であっ
て先行命令と後続命令との間でオペランド・コンフリク
トを発生する場合を検出して、先行命令と後続命令の演
算処理を同時に行い、命令処理を更に高速化する情報処
理装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は1本
明細書の記述及び添付図面によって明らかになるであろ
う。
明細書の記述及び添付図面によって明らかになるであろ
う。
上記目的を達成するため1本発明においては。
命令解読手段、オペランド計算手段、演算手段からなる
複数の命令処理系統を備え、命令列の命令処理を並列に
行う情報処理装置において、各系統の命令解読手段によ
り生成された先行命令および後続命令の少なくとも2つ
の命令の命令解読情報を保持する命令保持手段と、前記
命令保持手段に保持された命令解読情報により、後続命
令が汎用レジスタ群からオペランドを読出し、読出した
オペランドに演算を施すことなく汎用レジスタ群または
ストレージへの書込みを行う非演算命令であることを検
出する命令検出手段と、後続命令が非演算命令であるこ
とを前記命令検出手段が検出した場合、1系統の演算手
段によって、先行命令と後続命令の演算処理を同時に行
う演算制御を行う演算制御手段とを有することを特徴と
する。
複数の命令処理系統を備え、命令列の命令処理を並列に
行う情報処理装置において、各系統の命令解読手段によ
り生成された先行命令および後続命令の少なくとも2つ
の命令の命令解読情報を保持する命令保持手段と、前記
命令保持手段に保持された命令解読情報により、後続命
令が汎用レジスタ群からオペランドを読出し、読出した
オペランドに演算を施すことなく汎用レジスタ群または
ストレージへの書込みを行う非演算命令であることを検
出する命令検出手段と、後続命令が非演算命令であるこ
とを前記命令検出手段が検出した場合、1系統の演算手
段によって、先行命令と後続命令の演算処理を同時に行
う演算制御を行う演算制御手段とを有することを特徴と
する。
また、更に、各系統の演算手段に接続され先行命令また
は後続命令の演算結果を選択する演算結果選択手段を有
し、前記命令検出手段には、命令保持手段に保持された
命令解読情報により先行命令がある汎用レジスタ群のレ
ジスタへの書込みを行い、後続命令が先行命令で書込む
汎用レジスタ群のレジスタと同一レジスタからオペラン
ドの読出しを行うオペランド競合状態を検出する競合検
出手段を含み、前記命令検出手段により後続命令が非演
算命令であり、先行命令と後続命令との間にオペランド
競合状態を検出した場合、前記演算制御手段が前記演算
結果選択手段により後続命令の演算結果として先行命令
の演算結果を供給する演算制御を行うことを特徴とする
。
は後続命令の演算結果を選択する演算結果選択手段を有
し、前記命令検出手段には、命令保持手段に保持された
命令解読情報により先行命令がある汎用レジスタ群のレ
ジスタへの書込みを行い、後続命令が先行命令で書込む
汎用レジスタ群のレジスタと同一レジスタからオペラン
ドの読出しを行うオペランド競合状態を検出する競合検
出手段を含み、前記命令検出手段により後続命令が非演
算命令であり、先行命令と後続命令との間にオペランド
競合状態を検出した場合、前記演算制御手段が前記演算
結果選択手段により後続命令の演算結果として先行命令
の演算結果を供給する演算制御を行うことを特徴とする
。
前記手段によれば、命令保持手段から供給された命令解
読情報により、後続命令が汎用レジスタ群からオペラン
ドを読出し、読出したオペランドに演算を施すことなく
汎用レジスタ群またはストレージへ書込みを行う非演算
命令であることを命令検出手段が検出した場合、演算制
御手段が1系統の演算手段によって、先行命令と後続命
令の演算処理を同時に行う演算制御を行う。また、更に
命令検出手段における競合検出手段が、先行命令が汎用
レジスタ群のあるレジスタに演算結果の書込みを行い、
後続命令が汎用レジスタ群の同一レジスタからオペラン
ドの読出しを行うオペランド競合状態にあることを検出
した場合には、演算制御手段が、演算結果選択手段によ
って後続命令の演算結果として先行命令の演算結果を供
給する制御を行い、先行命令と後読命令の演算処理を並
列に同時に行う。
読情報により、後続命令が汎用レジスタ群からオペラン
ドを読出し、読出したオペランドに演算を施すことなく
汎用レジスタ群またはストレージへ書込みを行う非演算
命令であることを命令検出手段が検出した場合、演算制
御手段が1系統の演算手段によって、先行命令と後続命
令の演算処理を同時に行う演算制御を行う。また、更に
命令検出手段における競合検出手段が、先行命令が汎用
レジスタ群のあるレジスタに演算結果の書込みを行い、
後続命令が汎用レジスタ群の同一レジスタからオペラン
ドの読出しを行うオペランド競合状態にあることを検出
した場合には、演算制御手段が、演算結果選択手段によ
って後続命令の演算結果として先行命令の演算結果を供
給する制御を行い、先行命令と後読命令の演算処理を並
列に同時に行う。
これにより、先行命令が演算結果をレジスタに書込みを
行う命令であり、後続命令がレジスタから読出したオペ
ランドに演算を施すことなく転送する命令であって、先
行命令と後続命令がオペランド・コンフリクトが発生す
る場合にも、先行命令と後続命令の演算処理を同時に行
うことができ。
行う命令であり、後続命令がレジスタから読出したオペ
ランドに演算を施すことなく転送する命令であって、先
行命令と後続命令がオペランド・コンフリクトが発生す
る場合にも、先行命令と後続命令の演算処理を同時に行
うことができ。
オペランド・コンフリクトによって生じる処理の遅滞を
軽減することができる。一般に情報処理を行う命令列に
おいて、先行命令の演算命令に後続する命令が転送命令
である頻度は高く、命令列の処理全体を高速に処理でき
る効果がある。
軽減することができる。一般に情報処理を行う命令列に
おいて、先行命令の演算命令に後続する命令が転送命令
である頻度は高く、命令列の処理全体を高速に処理でき
る効果がある。
以下1本発明の一実施例を図面を用いて具体的に説明す
る。
る。
第1図は、本発明の一実施例にががる情報処理装置の全
体構成を表わすブロック図である。この命令処理装置は
、パイプライン処理方式により2つの命令を並列に処理
する装置である。
体構成を表わすブロック図である。この命令処理装置は
、パイプライン処理方式により2つの命令を並列に処理
する装置である。
第1図において、5は主記憶、7は命令続出回路、10
.11は命令レジスタである。20.21は命令を解読
する命令デコーダ、30は命令キューである。
.11は命令レジスタである。20.21は命令を解読
する命令デコーダ、30は命令キューである。
40、41はオペランドの論理アドレスを計算するアド
レス加算器、50.51はストレージ、60はオペラン
ド・バッファ、70は汎用レジスタ群、80.81は演
算器である。また、90はラップ制御回路、95は演算
制御回路である。
レス加算器、50.51はストレージ、60はオペラン
ド・バッファ、70は汎用レジスタ群、80.81は演
算器である。また、90はラップ制御回路、95は演算
制御回路である。
処理すべき命令列および演算すべきデータの一部の写し
は、主記憶5から信号パス5a、5bを介して、ストレ
ージSo、 51に取り込まれ、命令続出回路7により
2つの命令が命令レジスタ10.11に保持される。命
令レジスタ10.11に保持されている命令は、命令デ
コーダ20.21に信号パス10a。
は、主記憶5から信号パス5a、5bを介して、ストレ
ージSo、 51に取り込まれ、命令続出回路7により
2つの命令が命令レジスタ10.11に保持される。命
令レジスタ10.11に保持されている命令は、命令デ
コーダ20.21に信号パス10a。
11aを介して取り込まれ解読されて、命令デコーダ2
0.21が装置内の各部を制御するための命令解読情報
を生成する。命令デコーダ20.21によって生成され
た命令解読情報は、信号パス20a、21aを介して命
令キュー30に格納され、命令キュー30は命令解読情
報を、その命令の演算処理を開始するまで順次保持する
。命令キュー30は、イン・ポインタ32.33とアウ
トポインタ36.37によって、先入れ先出しくF I
F O: First In First 0ut)
制御が行われる。アドレス加算器40.41は、ストレ
ージso、 siから読出すオペランドの論理アドレス
を計算する。ストレージ50.51は、処理すべき命令
及びデータを保持しており、ストレージ50.51から
信号パス50b、51bを介して読出したストレージ・
オペランドを、オペランド・バッファ60がその命令の
演算処理を開始するまで順次保持する。
0.21が装置内の各部を制御するための命令解読情報
を生成する。命令デコーダ20.21によって生成され
た命令解読情報は、信号パス20a、21aを介して命
令キュー30に格納され、命令キュー30は命令解読情
報を、その命令の演算処理を開始するまで順次保持する
。命令キュー30は、イン・ポインタ32.33とアウ
トポインタ36.37によって、先入れ先出しくF I
F O: First In First 0ut)
制御が行われる。アドレス加算器40.41は、ストレ
ージso、 siから読出すオペランドの論理アドレス
を計算する。ストレージ50.51は、処理すべき命令
及びデータを保持しており、ストレージ50.51から
信号パス50b、51bを介して読出したストレージ・
オペランドを、オペランド・バッファ60がその命令の
演算処理を開始するまで順次保持する。
汎用レジスタ群70は、主として頻繁に用いられるデー
タ(レジスタ・オペランド、アドレス修飾レジスタなど
のデータ)を保持している。演算器80゜81は、命令
で指定された演算の処理を行う。命令キュー30に待機
されている先行命令および後続命令の命令解読情報は、
命令キュー30がら信号パス30a、30bを介してラ
ップ制御回路90に供給される。ラップ制御回路90は
、オペランド・コンフリクトの検出およびオペランド・
コンフリクトによる処理の遅滞の解消のための制御を行
う、オペランド・コンフリクトの検出信号oCは、信号
パス90aを介して演算制御回路95に送られる。演算
制御回路95は、演算器80.81に対する演算制御を
行う。
タ(レジスタ・オペランド、アドレス修飾レジスタなど
のデータ)を保持している。演算器80゜81は、命令
で指定された演算の処理を行う。命令キュー30に待機
されている先行命令および後続命令の命令解読情報は、
命令キュー30がら信号パス30a、30bを介してラ
ップ制御回路90に供給される。ラップ制御回路90は
、オペランド・コンフリクトの検出およびオペランド・
コンフリクトによる処理の遅滞の解消のための制御を行
う、オペランド・コンフリクトの検出信号oCは、信号
パス90aを介して演算制御回路95に送られる。演算
制御回路95は、演算器80.81に対する演算制御を
行う。
次に、このように構成された情報処理装置の動作を説明
する。ここでは、先行命令が演算結果をレジスタに書込
む命令であり、後続命令がレジスタから読出したオペラ
ンドに演算を施すことなく転送する命令であって先行命
令と後続命令がオペランド・コンフリクトを発生してい
るときに、先行命令と後続命令の演算処理を同時に行う
場合の命令処理の動作例を説明する。
する。ここでは、先行命令が演算結果をレジスタに書込
む命令であり、後続命令がレジスタから読出したオペラ
ンドに演算を施すことなく転送する命令であって先行命
令と後続命令がオペランド・コンフリクトを発生してい
るときに、先行命令と後続命令の演算処理を同時に行う
場合の命令処理の動作例を説明する。
第2図は、並列処理の動作を説明するための命令列の一
例を示す図である。第2図において、先行命令であるA
R全命令ARRa、RbJは。
例を示す図である。第2図において、先行命令であるA
R全命令ARRa、RbJは。
いわゆる加算命令である。レジスタ番号Ral’!定さ
れた第1オペランドがレジスタ番号Rbで指定された第
2オペランドに加算され、加算結果は、第1オペランド
のレジスタ番号Raにより指定された汎用レジスタ内に
格納される処理を行う命令である0次に続いて処理を行
う後続命令であるLR命令rLRRe、RdJは、いわ
ゆる転送命令である。レジスタ番号Rdで指定された第
2オペランドのデータが、レジスタ番号Reで指定され
た第1オペランドの汎用レジスタに転送される処理を行
う命令である。このような先行命令のAR全命令後続命
令のLR全命令続けて行う場合、例えば、先行命令のA
R全命令オペランドレジスタと後続命令のLR全命令オ
ペランドレジスタとが同一レジスタである場合、すなわ
ち、Rc=RaまたはRa = Rdである場合、先行
命令であるAR全命令おいて、レジスタへの書込みを完
了するまで、後続命令であるLR全命令はオペランドの
レジスタからオペランドデータの読出しを開始すること
ができない、すなわち、オペランド・コンフリクトが発
生している。
れた第1オペランドがレジスタ番号Rbで指定された第
2オペランドに加算され、加算結果は、第1オペランド
のレジスタ番号Raにより指定された汎用レジスタ内に
格納される処理を行う命令である0次に続いて処理を行
う後続命令であるLR命令rLRRe、RdJは、いわ
ゆる転送命令である。レジスタ番号Rdで指定された第
2オペランドのデータが、レジスタ番号Reで指定され
た第1オペランドの汎用レジスタに転送される処理を行
う命令である。このような先行命令のAR全命令後続命
令のLR全命令続けて行う場合、例えば、先行命令のA
R全命令オペランドレジスタと後続命令のLR全命令オ
ペランドレジスタとが同一レジスタである場合、すなわ
ち、Rc=RaまたはRa = Rdである場合、先行
命令であるAR全命令おいて、レジスタへの書込みを完
了するまで、後続命令であるLR全命令はオペランドの
レジスタからオペランドデータの読出しを開始すること
ができない、すなわち、オペランド・コンフリクトが発
生している。
ここでの情報処理装置においては、上記のようなオペラ
ンド・コンフリクトが発生している場合においても、先
行命令の命令処理でレジスタへの書込みの終了を持つこ
となく、後続命令の命令処理を行うことを可能とする。
ンド・コンフリクトが発生している場合においても、先
行命令の命令処理でレジスタへの書込みの終了を持つこ
となく、後続命令の命令処理を行うことを可能とする。
第3a図および第3b図は、このような2つの命令列の
命令処理を並列処理する場合におけるタイムチャートを
示す図である。第3a図および第3b図のタイムチャー
トにおいては、第2図に示す命令を含む命令列に対して
、2命令ずつ並列にパイプライン処理方式で処理すると
きの命令処理の流れを、パイプライン処理の各処理ステ
ージで示している。ここで、横軸は時間軸である0時間
軸はサイクル(マシンサイクル)を単位として目盛られ
ており、各マシンサイクルは初期のCOサイクル(図の
左端)から順にCO,C1,C2・・・と符号が付けら
れている。各々の命令処理は、パイプライン処理での複
数の処理ステージに分割されて処理される。各々の処理
ステージは、複数の命令に対して順次連続的に各命令に
対する処理を行い、複数の命令処理が同時に並列して処
理される。
命令処理を並列処理する場合におけるタイムチャートを
示す図である。第3a図および第3b図のタイムチャー
トにおいては、第2図に示す命令を含む命令列に対して
、2命令ずつ並列にパイプライン処理方式で処理すると
きの命令処理の流れを、パイプライン処理の各処理ステ
ージで示している。ここで、横軸は時間軸である0時間
軸はサイクル(マシンサイクル)を単位として目盛られ
ており、各マシンサイクルは初期のCOサイクル(図の
左端)から順にCO,C1,C2・・・と符号が付けら
れている。各々の命令処理は、パイプライン処理での複
数の処理ステージに分割されて処理される。各々の処理
ステージは、複数の命令に対して順次連続的に各命令に
対する処理を行い、複数の命令処理が同時に並列して処
理される。
まず最初のDステージでは、命令デコーダによる命令の
解読とアドレス加算器によるアドレス計算を行い、スト
レージ・オペランドの論理アドレスを得る0次のAステ
ージでは、ストレージ・オペランド・アドレスに対して
、論理アドレスから物理アドレスへの変換とストレージ
・オペランドのデータの読出しが行われる0次のしステ
ージでは、ストレージから読出されたストレージ・オペ
ランドをオペランド・バッファへ転送し、更にオペラン
ド・バッファから演算器に転送する。そして、次のEス
テージにおいて演算器による演算処理が実行され、最後
のステージのPステージで、前のEステージで実行され
た演算結果が、汎用レジスタに書込まれる。
解読とアドレス加算器によるアドレス計算を行い、スト
レージ・オペランドの論理アドレスを得る0次のAステ
ージでは、ストレージ・オペランド・アドレスに対して
、論理アドレスから物理アドレスへの変換とストレージ
・オペランドのデータの読出しが行われる0次のしステ
ージでは、ストレージから読出されたストレージ・オペ
ランドをオペランド・バッファへ転送し、更にオペラン
ド・バッファから演算器に転送する。そして、次のEス
テージにおいて演算器による演算処理が実行され、最後
のステージのPステージで、前のEステージで実行され
た演算結果が、汎用レジスタに書込まれる。
第3a図は、先行命令のAR全命令後続命令のLR全命
令の間でオペランド・コンフリクトが発生している(例
えば、Rd=Ra)場合の動作を示すタイムチャートで
ある。この場合には、後続命令のLR全命令読出される
第2オペランドの内容(レジスタRdの内容)は、先行
命令のA R命令によってレジスタRaに書込まれる内
容となっている。先行命令のAR全命令はレジスタRa
への書込みがPステージで行われる。AR全命令Pステ
ージはC4サイクルにおいて処理される。したがって、
次の後続命令のLR全命令おいてレジスタRdからオペ
ランドの読出しを行うしステージは、C4サイクルまで
は完了することができない。この結果、演算処理が行わ
れるEステージに着目すると、LR全命令以降の命令は
、オペランド・コンフリクトが発生していない場合に比
べて、命令の処理に遅滞が生じる。
令の間でオペランド・コンフリクトが発生している(例
えば、Rd=Ra)場合の動作を示すタイムチャートで
ある。この場合には、後続命令のLR全命令読出される
第2オペランドの内容(レジスタRdの内容)は、先行
命令のA R命令によってレジスタRaに書込まれる内
容となっている。先行命令のAR全命令はレジスタRa
への書込みがPステージで行われる。AR全命令Pステ
ージはC4サイクルにおいて処理される。したがって、
次の後続命令のLR全命令おいてレジスタRdからオペ
ランドの読出しを行うしステージは、C4サイクルまで
は完了することができない。この結果、演算処理が行わ
れるEステージに着目すると、LR全命令以降の命令は
、オペランド・コンフリクトが発生していない場合に比
べて、命令の処理に遅滞が生じる。
第3b図は、先行命令のAR全命令後続命令のLR全命
令の間で、オペランド・コンフリクトが発生していない
場合の動作を示すタイムチャートである。この場合には
、先行命令のAR全命令後続命令のLR全命令の間で遅
滞が生じることばなく、並列処理における遅滞は生じな
い。不実施例Q第1図に示した情報処理装置においては
、先行命令が演算結果をレジスタに書込む命令であり、
後続命令がレジスタから読出したオペランドに演算を施
すことなく転送する命令であって、先行命令と後続命令
との間でオペランド・コンフリクトが発生する場合にお
いても、これを検出して先行命令と後続命令の演算処理
を同時に行い、結果的に、第3b図に示すように、オペ
ランド・コンフリクトが発生していない場合と同様に命
令処理を行う命令処理の制御を行う。
令の間で、オペランド・コンフリクトが発生していない
場合の動作を示すタイムチャートである。この場合には
、先行命令のAR全命令後続命令のLR全命令の間で遅
滞が生じることばなく、並列処理における遅滞は生じな
い。不実施例Q第1図に示した情報処理装置においては
、先行命令が演算結果をレジスタに書込む命令であり、
後続命令がレジスタから読出したオペランドに演算を施
すことなく転送する命令であって、先行命令と後続命令
との間でオペランド・コンフリクトが発生する場合にお
いても、これを検出して先行命令と後続命令の演算処理
を同時に行い、結果的に、第3b図に示すように、オペ
ランド・コンフリクトが発生していない場合と同様に命
令処理を行う命令処理の制御を行う。
再び、第1図を参照して、本実施例の情報処理装置にお
いて、先行命令と後続命令との間でオペランド・コンフ
リクトが発生する場合に、オペランド・コンフリクトの
発生を検出し、先行命令と後続命令とが並列処理できる
場合に並列処理を行う場合の動作例を説明する。
いて、先行命令と後続命令との間でオペランド・コンフ
リクトが発生する場合に、オペランド・コンフリクトの
発生を検出し、先行命令と後続命令とが並列処理できる
場合に並列処理を行う場合の動作例を説明する。
各々の命令の処理は、まず最初のDステージにおいて、
命令レジスタ10.11に設定された命令に対して命令
の解読とアドレス計算が行われる。つまり、処理すべき
命令が命令デコーダ20.21によって解読され、装置
内の各部を制御するための命令解読情報が生成される。
命令レジスタ10.11に設定された命令に対して命令
の解読とアドレス計算が行われる。つまり、処理すべき
命令が命令デコーダ20.21によって解読され、装置
内の各部を制御するための命令解読情報が生成される。
この命令解読情報のなかで、ここでの動作説明に関連の
ある主な命令解読情報を次に示す。
ある主な命令解読情報を次に示す。
・R1・・・第1オペランドの格納されている汎用レジ
スタ群70のレジスタを指定する。また、演算結果を書
込む汎用レジスタ群70のレジスタを指定する。
スタ群70のレジスタを指定する。また、演算結果を書
込む汎用レジスタ群70のレジスタを指定する。
・R2・・・第2オペランドの格納されている汎用レジ
スタ群70のレジスタを指定する。
スタ群70のレジスタを指定する。
・TF・・・汎用レジスタ群70からオペランドを読出
し、汎用レジスタ群70またはストレージ50゜51お
よび主記憶5へ転送する命令であることを示す。
し、汎用レジスタ群70またはストレージ50゜51お
よび主記憶5へ転送する命令であることを示す。
・oP・・・演算器80.81において行うべき演算の
種類を指定する。
種類を指定する。
・N1・・・汎用レジスタ群70から第1オペランドの
読出しを行うことを示す。
読出しを行うことを示す。
・N2・・・汎用レジスタ群70から第2オペランドの
読出しを行うことを示す。
読出しを行うことを示す。
・CH・・・汎用レジスタ群70への演算結果の書込み
を行うことを示す。
を行うことを示す。
・BP・・・ストレージ50.51から読出しを行うオ
ペランドを保持するオペランド・バッファ6゜のエント
リを指定する。
ペランドを保持するオペランド・バッファ6゜のエント
リを指定する。
ストレージ50.51は、読出すべきオペランドの論理
アドレスを受は取ると、Aステージにおいて、論理アド
レスから物理アドレスへの変換を行って。
アドレスを受は取ると、Aステージにおいて、論理アド
レスから物理アドレスへの変換を行って。
オペランドを読出す。読出したオペランドは、受は取っ
た命令解読情報BPと共に、オペランド・バッファ60
へ送出する。一般に、ストレージ50゜51は、高速小
容量のバッファ・ストレージと、低速大容量のメイン・
ストレージとの組み合せによって構成されている。読出
すべきオペランドがバッファ・ストレージ内に存在する
場合には、1マシンサイクルの間にオペランドを読出す
ことが可能である。しかし、読出すべきオペランドがバ
ッファ・ストレージ内に存在しない場合には、オペラン
ドを読出すために数マシンサイクルが必要となり、Aス
テージにおける処理時間が遅延することとなる。
た命令解読情報BPと共に、オペランド・バッファ60
へ送出する。一般に、ストレージ50゜51は、高速小
容量のバッファ・ストレージと、低速大容量のメイン・
ストレージとの組み合せによって構成されている。読出
すべきオペランドがバッファ・ストレージ内に存在する
場合には、1マシンサイクルの間にオペランドを読出す
ことが可能である。しかし、読出すべきオペランドがバ
ッファ・ストレージ内に存在しない場合には、オペラン
ドを読出すために数マシンサイクルが必要となり、Aス
テージにおける処理時間が遅延することとなる。
オペランド・バッファ60は、Lステージにおいて、ス
トレージ50.51から送られてくるオペランドと命令
解読情報BPを受は取る。受は取られたオペランドは、
命令解読情報BPによって指定されるオペランド・バッ
ファ60のエントリに保持される。
トレージ50.51から送られてくるオペランドと命令
解読情報BPを受は取る。受は取られたオペランドは、
命令解読情報BPによって指定されるオペランド・バッ
ファ60のエントリに保持される。
命令処理においては、処理する命令についての命令解読
情報が命令キュー30に保持され、また必要に応じてス
トレージ50.51から読出すべきオペランドがオペラ
ンド・バッファ60に保持されている状態で、演算器8
0.81が以前の命令の演算処理を完了することが、当
該命令の演算処理を演算器80、81によって行うため
の演算起動の条件となっている0以上の演算起動の条件
が整うと、Lステージにおいて、当該命令に対する命令
解読情報が命令キュー30から取り出されて、演算器8
0,81へ送出される。このとき、命令キュー30から
オペランド・バッファ60へ送られる命令解読情報BP
によって指定されるエントリに保持されているオペラン
ドが取り出される。また、命令キュー30から汎用レジ
スタ群70へ送られる命令解読情報R1およびR2によ
って指定されるレジスタの内容が読出される。オペラン
ド・バッファ60または汎用レジスタ群70から読出さ
れるオペランドは、命令キュー30から送られてくる命
令解読情報N2によって制御されるセレクタ84.85
において一方が選択され、演算器80.81へ送られる
。この際、命令解読情報はラップ制御回路90および演
算制御回路95を介して演算器80.81へ送られる。
情報が命令キュー30に保持され、また必要に応じてス
トレージ50.51から読出すべきオペランドがオペラ
ンド・バッファ60に保持されている状態で、演算器8
0.81が以前の命令の演算処理を完了することが、当
該命令の演算処理を演算器80、81によって行うため
の演算起動の条件となっている0以上の演算起動の条件
が整うと、Lステージにおいて、当該命令に対する命令
解読情報が命令キュー30から取り出されて、演算器8
0,81へ送出される。このとき、命令キュー30から
オペランド・バッファ60へ送られる命令解読情報BP
によって指定されるエントリに保持されているオペラン
ドが取り出される。また、命令キュー30から汎用レジ
スタ群70へ送られる命令解読情報R1およびR2によ
って指定されるレジスタの内容が読出される。オペラン
ド・バッファ60または汎用レジスタ群70から読出さ
れるオペランドは、命令キュー30から送られてくる命
令解読情報N2によって制御されるセレクタ84.85
において一方が選択され、演算器80.81へ送られる
。この際、命令解読情報はラップ制御回路90および演
算制御回路95を介して演算器80.81へ送られる。
演算器80.81はEステージにおいて、命令解読情報
OPによって指定される演算を、第1オペランドと第2
オペランドとの間で行って、演算結果を求める。簡単な
演算処理は、通常は1マシンサイクルで完了することが
可能である。しかし、複雑な演算処理を行う場合には、
数マシンサイクルを必要とし、Eステージの期間が延長
され、演算処理が完了する時は結果的に遅延する。
OPによって指定される演算を、第1オペランドと第2
オペランドとの間で行って、演算結果を求める。簡単な
演算処理は、通常は1マシンサイクルで完了することが
可能である。しかし、複雑な演算処理を行う場合には、
数マシンサイクルを必要とし、Eステージの期間が延長
され、演算処理が完了する時は結果的に遅延する。
演算器80.81によって演算結果が求められると。
その結果は、Pステージにおいて、命令解読情報R1に
よって指定される汎用レジスタ群70のレジスタまたは
ストレージ50.51および主記憶5へ書込まれる。
よって指定される汎用レジスタ群70のレジスタまたは
ストレージ50.51および主記憶5へ書込まれる。
この際、先行命令の処理においては、演算器80の演算
結果を直接書込むが、後続命令の処理においてはラップ
制御回路90によって制御されるセレクタ82により、
演算器80または演算器81の一方の演算結果を選択し
て書込みを行う。
結果を直接書込むが、後続命令の処理においてはラップ
制御回路90によって制御されるセレクタ82により、
演算器80または演算器81の一方の演算結果を選択し
て書込みを行う。
この実施例においては、オペランド・コンフリクトが発
生する場合における先行命令および後続命令の並列処理
を、主として、ラップ制御回路90゜演算制御回路95
およびセレクタ82による信号パスの制御によって行う
、このようなオペランド・コンフリクトが発生する場合
における先行命令および後続命令の並列処理の制御を次
に説明する。
生する場合における先行命令および後続命令の並列処理
を、主として、ラップ制御回路90゜演算制御回路95
およびセレクタ82による信号パスの制御によって行う
、このようなオペランド・コンフリクトが発生する場合
における先行命令および後続命令の並列処理の制御を次
に説明する。
命令キュー30は、命令デコーダ20.21において命
令の解読が完了してから、演算器80.81において演
算処理が開始されるまでの命令解読情報を一時的に保持
するためのものである。すなわち、命令解読情報を保持
する命令キュー30はイン・ポインタ32.33とアウ
ト・ポインタ36.37とにより、先入れ先出しくFI
FO)制御が行われる。このため、命令キュー30には
2つのイン・ポインタ32゜33と2つのアウト・ポイ
ンタ36.37が設けられている。イン・ポインタ32
.33は命令キュー30に入力される命令解読情報の次
の格納位置アドレスを示し、命令デコーダ20.21か
らそれぞれ送られてくる命令解読情報を保持すべきエン
トリを指示する。また、アウト・ポインタ36.87は
命令キュー30から出力される命令解読情報の格納位置
アドレスを示し、アウト・ポインタ36.37はそれぞ
れ演算器80.81において演算処理が開始されるとき
に装置内の各部へ送り出すべき命令解読情報を保持して
いるエントリを指示する。イン・ポインタ33およびア
ウト・ポインタ37は、それぞれ常にイン・ポインタ3
2およびアウト・ポインタ36が指示しているエントリ
の次のエントリを指示するように制御される。したがっ
て、2つのイン・ポインタおよびアウト・ポインタは、
1つにまとめることも可能である。命令デコーダ20.
21は、それぞれ命令レジスタ10.11に保持されて
いる命令の解読が完了すると、命令解読情報を命令キュ
ー30へ送り出すと共に、解読完了信号をイン・ポイン
タ32゜33へ送出する。命令デコーダ20.21の両
方が解読完了信号を送出した場合には、イン・ポインタ
32゜33は、2つインクリメントされる。命令デコー
ダ20のみが解読完了信号を送出した場合には、イン・
ポインタ32.33は、1つインクリメントされる。
令の解読が完了してから、演算器80.81において演
算処理が開始されるまでの命令解読情報を一時的に保持
するためのものである。すなわち、命令解読情報を保持
する命令キュー30はイン・ポインタ32.33とアウ
ト・ポインタ36.37とにより、先入れ先出しくFI
FO)制御が行われる。このため、命令キュー30には
2つのイン・ポインタ32゜33と2つのアウト・ポイ
ンタ36.37が設けられている。イン・ポインタ32
.33は命令キュー30に入力される命令解読情報の次
の格納位置アドレスを示し、命令デコーダ20.21か
らそれぞれ送られてくる命令解読情報を保持すべきエン
トリを指示する。また、アウト・ポインタ36.87は
命令キュー30から出力される命令解読情報の格納位置
アドレスを示し、アウト・ポインタ36.37はそれぞ
れ演算器80.81において演算処理が開始されるとき
に装置内の各部へ送り出すべき命令解読情報を保持して
いるエントリを指示する。イン・ポインタ33およびア
ウト・ポインタ37は、それぞれ常にイン・ポインタ3
2およびアウト・ポインタ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つイ
ンクリメントされる。
には、命令デコーダ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が、このよう
なオペランド・コンフリクトの発生の検出およびオペラ
ンド・コンフリクトの発生による処理の遅滞が生じない
ような命令処理の制御を行う。
以後の説明において、必要に応じて先行命令の命令解読
情報には文字Pを後に付して、また、後続命令の解読情
報には文字Sを後に付して区別して説明する。
情報には文字Pを後に付して、また、後続命令の解読情
報には文字Sを後に付して区別して説明する。
先行命令が汎用レジスタ群70へ演算結果の書き込みの
処理を行う場合、この処理を示す命令解読情報CHpお
よび書き込む汎用レジスタ群70のレジスタを指定する
命令解読情報R1pが、命令キュー30から信号パス3
0aを介してラップ制御回路90へ送られる。これは、
アウト・ポインタ36によって命令キュー30の読出し
エントリが指示されることにより行われる。一方、後続
命令が転送命令である場合、これを示す命令解読情報T
Fsが命令キュー30から信号パス30bを介してラッ
プ制御回路90へ送られる。これは、アウト・ポインタ
37によって命令キュー30の読出しエントリが指示さ
れることにより行われる。また、後続命令における汎用
レジスタ群70から第1オペランドの読み出しを行うこ
とを示す命令解読情報Nlsおよびその読み出しレジス
タを指示する命令解読情報RISと、後続命令における
汎用レジスタ群70から第2オペランドの読み出しを行
うことを示す命令解読情報N2sおよびその読み出しレ
ジスタを指示する命令解読情報R2sとは、命令キュー
3oがら信号パス30bを介してラップ制御回路9oへ
送られる。これは、アウト・ポインタ37によって命令
キュー30の読出しエントリが指示されることにより行
われる。この後続命令の命令解読情報TFs。
処理を行う場合、この処理を示す命令解読情報CHpお
よび書き込む汎用レジスタ群70のレジスタを指定する
命令解読情報R1pが、命令キュー30から信号パス3
0aを介してラップ制御回路90へ送られる。これは、
アウト・ポインタ36によって命令キュー30の読出し
エントリが指示されることにより行われる。一方、後続
命令が転送命令である場合、これを示す命令解読情報T
Fsが命令キュー30から信号パス30bを介してラッ
プ制御回路90へ送られる。これは、アウト・ポインタ
37によって命令キュー30の読出しエントリが指示さ
れることにより行われる。また、後続命令における汎用
レジスタ群70から第1オペランドの読み出しを行うこ
とを示す命令解読情報Nlsおよびその読み出しレジス
タを指示する命令解読情報RISと、後続命令における
汎用レジスタ群70から第2オペランドの読み出しを行
うことを示す命令解読情報N2sおよびその読み出しレ
ジスタを指示する命令解読情報R2sとは、命令キュー
3oがら信号パス30bを介してラップ制御回路9oへ
送られる。これは、アウト・ポインタ37によって命令
キュー30の読出しエントリが指示されることにより行
われる。この後続命令の命令解読情報TFs。
NlsとRls、N2sとR2sを用いて、ラップ制御
回路90は、オペランド・コンフリクト検出信号OC9
後続命令が転送命令である場合のオペランド・ラップア
ラウンド指示信号LW、および後続命令の演算処理を抑
止する演算抑止信号FMを生成する。すなわち、先行命
令が演算結果の書き込みを行うレジスタを指定するRl
pと、後続命令が読み出しまたは書き込みを行うレジス
タを指定するRls、R2sとは、ラップ制御回路90
において一致するか否かの比較が行われる。いま、先行
命令の演算結果の書き込みを行うレジスタを指定するR
lpと、後続命令の書き込みを行うレジスタを指定する
Rlsとが等しく、先行命令が汎用レジスタ群70へ演
算結果の書き込みを行うことを示す命令解読情報CHp
が成り立ち、さらに後続命令が汎用レジスタ群70から
第1オペランドの読み出しを行うことを示す命令解読情
報N1gが成り立つと、第1オペランドについて、先行
命令と後続命令との間で、オペランド・コンフリクトが
生じ、オペランド・コンフリクト検出信号OCが生成さ
れる。さらに、後続命令が転送命令であることを示す命
令解読情報TFsが成り立っている場杏にオペランド・
ラップアラウンド指示信号LWが生成される。一方、後
続命令が転送命令であることを示す命令解読情報TFs
が成り立っていない場合には、演算抑止信号FWが生成
される。
回路90は、オペランド・コンフリクト検出信号OC9
後続命令が転送命令である場合のオペランド・ラップア
ラウンド指示信号LW、および後続命令の演算処理を抑
止する演算抑止信号FMを生成する。すなわち、先行命
令が演算結果の書き込みを行うレジスタを指定するRl
pと、後続命令が読み出しまたは書き込みを行うレジス
タを指定するRls、R2sとは、ラップ制御回路90
において一致するか否かの比較が行われる。いま、先行
命令の演算結果の書き込みを行うレジスタを指定するR
lpと、後続命令の書き込みを行うレジスタを指定する
Rlsとが等しく、先行命令が汎用レジスタ群70へ演
算結果の書き込みを行うことを示す命令解読情報CHp
が成り立ち、さらに後続命令が汎用レジスタ群70から
第1オペランドの読み出しを行うことを示す命令解読情
報N1gが成り立つと、第1オペランドについて、先行
命令と後続命令との間で、オペランド・コンフリクトが
生じ、オペランド・コンフリクト検出信号OCが生成さ
れる。さらに、後続命令が転送命令であることを示す命
令解読情報TFsが成り立っている場杏にオペランド・
ラップアラウンド指示信号LWが生成される。一方、後
続命令が転送命令であることを示す命令解読情報TFs
が成り立っていない場合には、演算抑止信号FWが生成
される。
次に、先行命令の演算結果の書き込みを行うレジスタを
指定するRlpと、後続命令が読み出しを行うレジスタ
を指定するR2gとが等しく、先行命令が演算結果の書
き込みを行うことを示す命令解読情報CHpが成り立ち
、さらに、後続命令が汎用レジスタ群70に第2オペラ
ンドの読み出しを行うことを示す命令解読情報N2sが
得られると、ラップ制御回路90は、先行命令と後続命
令の間でオペランド・コンフリクト検出信号OCを生成
する。さらに、後続命令が転送命令であることを示す命
令解読情報TFgが得られると、オペランド・ラップア
ラウンド指示信号LWを生成する。
指定するRlpと、後続命令が読み出しを行うレジスタ
を指定するR2gとが等しく、先行命令が演算結果の書
き込みを行うことを示す命令解読情報CHpが成り立ち
、さらに、後続命令が汎用レジスタ群70に第2オペラ
ンドの読み出しを行うことを示す命令解読情報N2sが
得られると、ラップ制御回路90は、先行命令と後続命
令の間でオペランド・コンフリクト検出信号OCを生成
する。さらに、後続命令が転送命令であることを示す命
令解読情報TFgが得られると、オペランド・ラップア
ラウンド指示信号LWを生成する。
しかし、後続命令が転送命令であることを示す命令解読
情報TFsが得られない場合には、演算抑止信号FWを
生成する。演算抑止信号FWは信号パス90aを介して
演算制御回路95へ送られ、後続命令が演算器81にお
いて演算処理を開始することを抑止するために用いられ
る。オペランド・ラップアラウンド信号LWは、信号パ
ス90bを介してセレクタ82へ送られ、先行命令が書
き込む演算結果を、後続命令が書き込むべき演算結果と
して選択するために用いられる。
情報TFsが得られない場合には、演算抑止信号FWを
生成する。演算抑止信号FWは信号パス90aを介して
演算制御回路95へ送られ、後続命令が演算器81にお
いて演算処理を開始することを抑止するために用いられ
る。オペランド・ラップアラウンド信号LWは、信号パ
ス90bを介してセレクタ82へ送られ、先行命令が書
き込む演算結果を、後続命令が書き込むべき演算結果と
して選択するために用いられる。
この結果、第3a図のタイムチャートに示したような、
オペランド・コンフリクトが発生している場合(Rd=
Ra)の命令の処理において、上 “述のように命令解
読情報CHp、Pip、R2s。
オペランド・コンフリクトが発生している場合(Rd=
Ra)の命令の処理において、上 “述のように命令解
読情報CHp、Pip、R2s。
N2gが得られるので、ラップ制御回路90は、先行命
令と後続命令の間でオペランド・コンフリクト検出信号
OCを生成する。さらに、後続命令が転送命令であるこ
とを示す命令解読情報TFsが得られた場合、オペラン
ド・ラップアラウンド信号LWを生成し、後続命令が書
き込むべき演算結果、とじて、先行命令の演算結果を供
給する。したがって、この場合、先行命令と後続命令を
同時に 1処理することができ、オペランド・コンフリ
クトによる遅滞は生じず、第3b図のタイムチャートに
示すように、2つの命令の演算処理を行うEステージは
C4サイクルで完了することになる。
令と後続命令の間でオペランド・コンフリクト検出信号
OCを生成する。さらに、後続命令が転送命令であるこ
とを示す命令解読情報TFsが得られた場合、オペラン
ド・ラップアラウンド信号LWを生成し、後続命令が書
き込むべき演算結果、とじて、先行命令の演算結果を供
給する。したがって、この場合、先行命令と後続命令を
同時に 1処理することができ、オペランド・コンフリ
クトによる遅滞は生じず、第3b図のタイムチャートに
示すように、2つの命令の演算処理を行うEステージは
C4サイクルで完了することになる。
以上1本発明を実施例にもとづき具体的に説明したが1
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
以上、説明したように、本発明によれば、先行命令が演
算結果をレジスタに書き込みを行う命令であり、後続命
令がレジスタから読み出したオペランドに演算を施すこ
となく転送する命令であって、先行命令と後続命令がオ
ペランド・コンフリクトが発生する場合にも、先行命令
と後続命令の演算処理を同時に行うことができるので、
オペランド・コンフリクトによって生じる処理の遅滞を
軽減することができ、命令処理を高速化できる効果があ
る。
算結果をレジスタに書き込みを行う命令であり、後続命
令がレジスタから読み出したオペランドに演算を施すこ
となく転送する命令であって、先行命令と後続命令がオ
ペランド・コンフリクトが発生する場合にも、先行命令
と後続命令の演算処理を同時に行うことができるので、
オペランド・コンフリクトによって生じる処理の遅滞を
軽減することができ、命令処理を高速化できる効果があ
る。
第1図は、本発明の一実施例にかかる情報処理装置の全
体構成を表わすブロック図、 第2図は、並列処理の動作を説明するための命令列の一
例を示す図。 第3a図および第3b図は、2つの命令処理を ゛並列
に処理する場合の処理を説明するタイム・チャートを示
す図である。 図中、フ・・・命令続出回路、10.11・・・命令レ
ジスタ、 20.21・・・命令デコーダ、30・・・
命令キュー、40゜41・・・アドレス加算器、so、
st・・・ストレージ、60・・・オペランド・バッ
ファ、70・・・汎用レジスタ群、80゜81・・・演
算器、90・・・ラップ制御回路、95・・・演算制御
回路。
体構成を表わすブロック図、 第2図は、並列処理の動作を説明するための命令列の一
例を示す図。 第3a図および第3b図は、2つの命令処理を ゛並列
に処理する場合の処理を説明するタイム・チャートを示
す図である。 図中、フ・・・命令続出回路、10.11・・・命令レ
ジスタ、 20.21・・・命令デコーダ、30・・・
命令キュー、40゜41・・・アドレス加算器、so、
st・・・ストレージ、60・・・オペランド・バッ
ファ、70・・・汎用レジスタ群、80゜81・・・演
算器、90・・・ラップ制御回路、95・・・演算制御
回路。
Claims (1)
- 【特許請求の範囲】 1、命令解読手段、オペランド計算手段、演算手段から
なる複数の命令処理系統を備え、命令列の命令処理を並
列に行う情報処理装置において、各系統の命令解読手段
により生成された先行命令および後続命令の少なくとも
2つの命令の命令解読情報を保持する命令保持手段と、
前記命令保持手段に保持された命令解読情報により、後
続命令が汎用レジスタ群からオペランドを読出し、読出
したオペランドに演算を施すことなく汎用レジスタ群ま
たはストレージへの書込みを行う非演算命令であること
を検出する命令検出手段と、後続命令が非演算命令であ
ることを前記命令検出手段が検出した場合、1系統の演
算手段によって、先行命令と後続命令の演算処理を同時
に行う演算制御を行う演算制御手段とを有することを特
徴とする情報処理装置。 2、前記特許請求の範囲第1項記載の情報処理装置にお
いて、更に、各系統の演算手段に接続され先行命令また
は後続命令の演算結果を選択する演算結果選択手段を有
し、前記命令検出手段には、命令保持手段に保持された
命令解読情報により先行命令がある汎用レジスタ群のレ
ジスタへの書込みを行い、後続命令が先行命令で書込む
汎用レジスタ群のレジスタと同一レジスタからオペラン
ドの読出しを行うオペランド競合状態を検出する競合検
出手段を含み、前記命令検出手段により後続命令が非演
算命令であり、先行命令と後続命令との間にオペランド
競合状態を検出した場合、前記演算制御手段が前記演算
結果選択手段により後続命令の演算結果として先行命令
の演算結果を供給する演算制御を行うことを特徴とする
情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12748388A JPH01296345A (ja) | 1988-05-24 | 1988-05-24 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12748388A JPH01296345A (ja) | 1988-05-24 | 1988-05-24 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01296345A true JPH01296345A (ja) | 1989-11-29 |
Family
ID=14961059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12748388A Pending JPH01296345A (ja) | 1988-05-24 | 1988-05-24 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01296345A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006126449A1 (ja) | 2005-05-26 | 2006-11-30 | Nec Corporation | 情報処理装置および命令実行方法 |
JP2006331399A (ja) * | 2005-05-26 | 2006-12-07 | Arm Ltd | スーパースカラ処理装置内の指示送出制御 |
-
1988
- 1988-05-24 JP JP12748388A patent/JPH01296345A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006126449A1 (ja) | 2005-05-26 | 2006-11-30 | Nec Corporation | 情報処理装置および命令実行方法 |
JP2006331399A (ja) * | 2005-05-26 | 2006-12-07 | Arm Ltd | スーパースカラ処理装置内の指示送出制御 |
US8271766B2 (en) | 2005-05-26 | 2012-09-18 | Nec Corporation | Intentionally delaying execution of a copy instruction to achieve simultaneous execution with a subsequent, non-adjacent write instruction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3984786B2 (ja) | 異なる待ち時間を伴う命令のスケジューリング | |
US4928226A (en) | Data processor for parallelly executing conflicting instructions | |
US4476525A (en) | Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously | |
EP1003095B1 (en) | A computer system for executing branch instructions | |
KR930004214B1 (ko) | 데이타 처리 시스템 | |
US5003462A (en) | Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means | |
JP3439033B2 (ja) | 割り込み制御装置及びプロセッサ | |
JPH0250260A (ja) | ベクタープロセッサの例外報告機構 | |
KR100875377B1 (ko) | 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법 | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
US20050102659A1 (en) | Methods and apparatus for setting up hardware loops in a deeply pipelined processor | |
JPH0743648B2 (ja) | 情報処理装置 | |
JPH01296345A (ja) | 情報処理装置 | |
JPH1196006A (ja) | 情報処理装置 | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
JPH05298097A (ja) | 情報処理装置 | |
JP2812610B2 (ja) | パイプライン制御方式 | |
JPH07114509A (ja) | メモリアクセス装置 | |
JP3493110B2 (ja) | 高速分岐処理装置 | |
JPH08212068A (ja) | 情報処理装置 | |
JP2591325B2 (ja) | 分岐制御装置 | |
JP2806690B2 (ja) | マイクロプロセッサ | |
JP3668643B2 (ja) | 情報処理装置 | |
JPH0769800B2 (ja) | データ処理装置 | |
JPH07219771A (ja) | 命令プロセッサ |