JP2906799B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2906799B2
JP2906799B2 JP1457892A JP1457892A JP2906799B2 JP 2906799 B2 JP2906799 B2 JP 2906799B2 JP 1457892 A JP1457892 A JP 1457892A JP 1457892 A JP1457892 A JP 1457892A JP 2906799 B2 JP2906799 B2 JP 2906799B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
buffer
result
information 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.)
Expired - Fee Related
Application number
JP1457892A
Other languages
English (en)
Other versions
JPH05204639A (ja
Inventor
雅夫 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1457892A priority Critical patent/JP2906799B2/ja
Publication of JPH05204639A publication Critical patent/JPH05204639A/ja
Application granted granted Critical
Publication of JP2906799B2 publication Critical patent/JP2906799B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置に関し、具
体的には並列に命令を実行する情報処理装置における命
令の実行順序の制御に関するものである。
【0002】
【従来の技術】従来の情報処理装置は、逐次的に命令を
アドレスの順番に従って実行する。情報処理装置のデー
タ処理能力を増大させるために、複数の演算装置を備
え、複数の演算装置に並列に複数の命令を分配して、ア
ドレスの順番によらず実行可能なものから命令の実行を
行なう(以降、これをoutーofーorder実行と
呼ぶ)並列処理が実施されている。
【0003】図5は従来の技術を用いたoutーofー
order実行を行なう情報処理装置のブロック図であ
る。10は命令を記憶する命令記憶装置であり、1サイ
クルに2つの命令をその命令のアドレスと共に命令バス
11、12を通じて供給する。20は命令を解読する命
令解読装置であり、1サイクルに2つの命令の解読を行
ない、命令バッファ30や結果バッファ60に制御信号
バス21、22を通じて命令を実行するための制御信号
を供給する。命令バッファ30では命令解読装置から供
給された制御信号を一旦蓄え、適当なタイミングで演算
装置に制御信号バス31、32を通じて制御信号を供給
する。この制御信号は、命令の種別を表す信号とオペラ
ンドレジスタアドレスを含む。40は乗除算命令を実行
する乗除算装置であり、命令バッファ30からの制御信
号により、レジスタファイル70あるいは結果バッファ
60から供給されたオペランドデータ71、72を用い
て乗除算演算を行ない、演算結果41を出力する。また
演算した結果をすぐ他の演算器が使う場合には、演算結
果41はセレクタ42を通じてオペランドバス71、7
2、73、74にバイパスされる。50は加減算命令を
実行する加減算装置であり、命令バッファ30からの制
御信号により、レジスタファイル70あるいは結果バッ
ファ60から供給されたオペランドデータ73、74を
用いて加減算演算を行ない、演算結果51を出力する。
また演算した結果をすぐ他の演算器が使う場合には、演
算結果51はセレクタ52を通じてオペランドバス7
1、72、73、74にバイパスされる。
【0004】60は乗除算装置40および加減算装置5
0で実行された命令の演算結果を一時的に蓄えておく結
果バッファである。命令が情報処理装置に供給されたら
命令解読装置20で解読されたあと、その命令のアドレ
スを示すプログラムカウンターとディネーションレジス
タアドレス番号は、命令バッファ30に命令の種別を表
す信号とオペランドレジスタアドレスをストアされるの
と同じタイミングで結果バッファ60にアドレスの順番
にストアされる。結果バッファ60では、複数の演算装
置で並列に演算が行なわれているとき大きい方のアドレ
スの命令が小さい方のアドレスの命令より早く演算が完
了した場合には、小さい方のアドレスの演算の完了を待
ち、適当なタイミングでレジスタファイル70に演算結
果をアドレスの順番に演算結果バス61、62を通じて
ストアする。このことにより、outーofーorde
r実行を行なう情報処理装置においても正しいプログラ
ムの実行結果が常に得られる。このとき制御信号バス2
1、22を通じて供給され蓄えられていたデスティネー
ションレジスタアドレス番号も演算結果と共にレジスタ
ファイル70に供給され、どのレジスタに演算結果をス
トアするのかを指定する。また必要に応じて演算装置4
0、50にレジスタファイルの代わりにオペランドデー
タをオペランドバス71、72、73、74を通じて供
給する。
【0005】70はオペランドデータを供給したり、演
算結果を最終的に蓄えておくためのレジスタファイルで
ある。80は、命令間のデータ依存関係を調べるための
依存検出装置であり、供給された命令のオペランドレジ
スタアドレスと供給された命令のデスティネーションレ
ジスタアドレスあるいは結果バッファ60に蓄えられて
いるデスティネーションレジスタアドレスとを比較し
て、データ依存がある場合には命令バッファ30のデー
タ依存関係を示すフィールドにフラグを立て、結果バッ
ファからの依存解消信号64を受け取るまで命令の実行
開始を待たせる。
【0006】図3は図5に示す従来の技術における情報
処理装置の構成要素である命令バッファの構成図であ
り、各エントリーが1命令分の情報を蓄える。図3にお
いて、validはそのエントリーが有効であることを
示す。opは命令種別を示す。rs1、rs2はそれぞ
れ第一および第二のオペランドのレジスタ番号を示す。
result_ptrはその命令の結果バッファ60に
おける対応するエントリーの番号を示し、その命令が実
行を開始したら演算器に渡され、演算結果を結果バッフ
ァ60にストアするときに使われる。depはその命令
のオペランドレジスタrs1、rs2にデータ依存関係
があるかどうかを示す2ビットのフラグである。okは
そのエントリーの命令が次のサイクルにおいて実行可能
かどうかを示す。mul、addはそれぞれそのエント
リーの命令が乗除算命令かあるいは加減算命令かどうか
を示す。
【0007】図6は図5に示す従来の技術における情報
処理装置の構成要素である結果バッファの説明図であ
り、各エントリーが1命令分の演算結果情報を蓄える。
図6において、PCはその命令のアドレス情報を示し、
ある命令で障害が発生したとき、OSの障害回復作業が
完了したあと、障害の発生した命令の次の命令から命令
の実行を再開したいときに使用する。validはその
エントリーが有効であることを示す。rdはデスティネ
ーションレジスタ番号を示す。d0〜d3は、命令間の
データ依存関係を示す。d0は、命令バッファの#0エ
ントリーの命令が結果バッファに登録されている命令の
うち、どのエントリーの命令の演算結果をどのオペラン
ドが必要としているかを示す2ビットのフラグである。
d1、d2、d3も同様に、それぞれ命令バッファの#
1、#2、#3エントリーの命令と結果バッファに登録
されている命令との間のデータ依存関係を示す。res
ultsはそのエントリーの命令の実行結果を示す。d
vは演算結果がresultsフィールドに存在するか
どうかを示す。演算装置から送られてくる演算結果は、
該当するエントリーの命令のresultsフィールド
にストアされると同時に、そのエントリーの命令にデー
タ依存関係が存在するかどうか調べ、もしデータ依存関
係が存在していてd0〜d3のいずれかのエントリーに
フラグが立っている場合には、そのエントリーの命令の
実行結果を待っている命令が命令バッファ30に存在し
ているので、依存解消信号64により命令バッファ30
の該当するエントリーのdepフィールドのフラグの立
っているビットをクリアする。
【0008】図4は図5に示す従来の技術における情報
処理装置の動作を示すタイミングチャート図である。図
4において、Dは命令解読装置20において命令の解読
を行なうステージ、Bは命令バッファ30において演算
の実行開始を待つ状態を示すステージ、Lは演算のオペ
ランドデータをレジスタファイル70あるいは結果バッ
ファ60からオペランドバス71〜74を通じて読み出
すステージ、Eは乗除算装置40あるいは加減算装置5
0において演算を実行するステージ、Sは結果バッファ
60に命令の演算結果を書き込むステージ、Rはレジス
タファイル70に命令の演算結果を書き込むステージを
示す。図5に示す従来の技術における情報処理装置にお
いては、乗除算命令、加減算命令ともにEステージに2
サイクルを要する。
【0009】図4では、4つの命令から成る命令シーケ
ンスがアドレスと共に示されている。アドレス0x00
の乗算命令mulの演算結果をアドレス0x04の乗算
命令mulがオペランドとして用いるデータ依存関係が
存在する。したがって、アドレス0x00の乗算命令m
ulの演算結果41は、サイクル4においてアドレス0
x04の乗算命令のオペランドとして、セレクタ42、
オペランドバス71を通じて乗除算装置40にバイパス
される。またアドレス0x08の乗算命令mulの演算
結果をアドレス0x0cの加算命令addがオペランド
として用いるデータ依存関係が存在する。したがって、
アドレス0x08の乗算命令mulの演算結果41は、
サイクル8においてアドレス0x0cの加算命令のオペ
ランドとして、セレクタ42、オペランドバス73を通
じて加減算装置50にバイパスされる。
【0010】以上のように構成された従来の技術による
情報処理装置について、以下図3、図4、図5及び図6
を用いて次のサイクルにおいて実行する命令を決めると
きの動作を説明する。
【0011】図3は図4のタイミングチャートにおける
第3サイクル目における命令バッファの各エントリーの
状態を示すものであって、アドレス0x04〜0x0c
のmul、mul、addの3つの命令がエントリー#
1、#2、#3に登録されている。この3つの命令の状
態は、図4のタイミング図におけるBステージに相当
し、命令の実行開始を待っている。またエントリー#3
のadd命令の第一のオペランドrs1は、前の命令と
の間でデータ依存関係があり、次のサイクルでは実行開
始できないことがdepフィールドの第一ビットのフラ
グが立っていることで示されている。
【0012】図6は図4のタイミングチャートにおける
第3サイクル目における結果バッファの各エントリーの
状態を示すものであって、アドレス0x00〜0x0c
のmul、mul、mul、addの4つの命令がエン
トリー#0、#1、#2、#3に登録されている。この
4つの命令はいずれも演算実行を完了していないので、
dvフィールドは全て0になっている。
【0013】図3においてつぎのサイクルで実行可能な
命令はエントリー#1のmul命令とエントリー#2の
mul命令であることが、okフィールドにフラグが立
っていることにより示されている。またmulフィール
ドにフラグが立っていることにより示されているよう
に、エントリー#1とエントリー#2の2つの命令は共
に同一の演算装置(乗除算装置40)を使用する。
【0014】従来の情報処理装置においては、同一の演
算装置を使用する実行可能な命令が複数個ある場合に
は、アドレスの小さい方の命令から実行を開始させるの
で、この場合、エントリー#1のmul命令がサイクル
4でLステージから実行を開始する。この結果図4に示
すように、4つの命令の演算実行のためのサイクル数
は、3サイクル目から10サイクル目までの8サイクル
を要する。
【0015】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、同一の演算装置に対して複数の命令が演
算の実行を開始できる状態にあった場合、アドレスの小
さい方の命令から順番に実行されるため、アドレスの大
きい方の命令を先に実行したほうが全体の命令の実行サ
イクル数が少なくなる場合でもアドレスの小さい方の命
令から実行を開始しなければならいという問題点を有し
ていた。
【0016】本発明は上記問題点に鑑み、同一の演算装
置に対して複数の命令が演算の実行を開始できる状態に
あった場合、全体の命令実行時間が短くなるように、つ
ぎのサイクルで実行を開始する命令を決める機構を提供
するものである。
【0017】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の情報処理装置は、複数の命令を供給する命
令記憶装置と、前記命令記憶装置から供給された複数の
命令を解読する命令解読装置と、前記命令解読装置で解
読された複数の命令を一時的に蓄える命令バッファと、
前記命令バッファから供給された命令を実行する複数の
演算装置と、前記複数の演算装置で実行された命令の実
行結果を一時的に蓄える結果バッファと、命令のオペラ
ンドを読み出したり命令の実行結果を書き込むためのレ
ジスタファイルと、供給された命令間のデータ依存関係
を調べる依存検出装置とを備えた情報処理装置におい
て、前記命令バッファに蓄えられた命令の中から次のサ
イクルで実行する命令を選択する際、実行可能な命令が
複数あり前記複数の実行可能な命令が同一の演算装置を
使用する場合、前記複数の実行可能な命令のうちデータ
依存関係の存在する命令を先に実行する手段を備えたも
のである。
【0018】
【作用】本発明は上記した構成によって、同一の演算装
置に対して複数の命令が演算の実行を開始できる状態に
あった場合、命令バッファ内の命令の依存関係を示すフ
ィールドの内容を調べ、データ依存関係の存在する命令
を先に実行する。
【0019】
【実施例】以下本発明の一実施例の情報処理装置につい
て、図面を参照しながら説明する。
【0020】図1は本発明の実施例における命令バッフ
ァであり、図5に示す従来の技術による情報処理装置に
おいて、図3に示すその構成要素である命令バッファを
改良したものである。図1において、validはその
エントリーが有効であることを示す。opは命令種別を
示す。rs1、rs2はそれぞれ第一および第二のオペ
ランドのレジスタ番号を示す。result_ptrは
その命令の結果バッファ60における対応するエントリ
ーの番号を示し、その命令が実行を開始したら演算器に
渡され、演算結果を結果バッファ60にストアするとき
に使われる。depはその命令のオペランドレジスタr
s1、rs2にデータ依存関係があるかどうかを示す2
ビットのフラグである。okはそのエントリーの命令が
次のサイクルにおいて実行可能かどうかを示す。mu
l、addはそれぞれそのエントリーの命令が乗除算命
令かあるいは加減算命令かどうかを示す。
【0021】dep_instは、そのエントリーの命
令が命令バッファ内の他の命令とデータ依存関係にあ
り、そのエントリーの命令の実行結果を他の命令が待っ
ている状態にあることを示す。
【0022】図2は本発明の実施例における情報処理装
置の動作を示すタイミングチャート図である。図2にお
いて、Dは命令解読装置20において命令の解読を行な
うステージ、Bは命令バッファ30において演算の実行
開始を待つ状態を示すステージ、Lは演算のオペランド
データをレジスタファイル70あるいは結果バッファ6
0からオペランドバス71〜74を通じて読み出すステ
ージ、Eは乗除算装置40あるいは加減算装置50にお
いて演算を実行するステージ、Sは結果バッファ60に
命令の演算結果を書き込むステージ、Rはレジスタファ
イル70に命令の演算結果を書き込むステージを示す。
本発明の実施例における情報処理装置においては、乗除
算命令、加減算命令ともにEステージに2サイクルを要
する。
【0023】図2では、4つの命令から成る命令シーケ
ンスがアドレスと共に示されている。アドレス0x00
の乗算命令mulの演算結果をアドレス0x04の乗算
命令mulがオペランドとして用いるデータ依存関係が
存在する。したがって、アドレス0x00の乗算命令m
ulの演算結果41は、サイクル6においてアドレス0
x04の乗算命令のオペランドとして、結果バッファか
らオペランドバス71を通じて乗除算装置40にバイパ
スされる。またアドレス0x08の乗算命令mulの演
算結果をアドレス0x0cの加算命令addがオペラン
ドとして用いるデータ依存関係が存在する。したがっ
て、アドレス0x08の乗算命令mulの演算結果41
は、サイクル6においてアドレス0x0cの加算命令の
オペランドとして、セレクタ42、オペランドバス73
を通じて加減算装置50にバイパスされる。
【0024】以上のように構成された従来の技術による
情報処理装置について、以下図1及び図2を用いて次の
サイクルにおいて実行する命令を決めるときの動作を説
明する。図1は図2のタイミングチャートにおける第3
サイクル目における命令バッファの各エントリーの状態
を示すものであって、アドレス0x04〜0x0cのm
ul、mul、addの3つの命令がエントリー#1、
#2、#3に登録されている。この3つの命令の状態
は、図3のタイミング図におけるBステージに相当し、
命令の実行開始を待っている。またエントリー#3のa
dd命令のrs1は、前の命令との間でデータ依存関係
があり、次のサイクルでは実行開始できないことがde
pフィールドの第一ビットのフラグが立っていることで
示されている。またエントリー#2のmul命令は後に
続く命令との間でデータ依存関係にあることがdep_
instフィールドにより示されている。
【0025】図2においてつぎのサイクルで実行可能な
命令はエントリー#1のmul命令とエントリー#2の
mul命令であることが、okフィールドにフラグが立
っていることにより示されている。またmulフィール
ドにフラグが立っていることにより、エントリー#1と
エントリー#2の2つの命令は共に同一の演算装置(乗
除算装置40)を使用する。
【0026】本実施例における情報処理装置において
は、同一の演算装置を使用し、次のサイクルにおいて実
行可能な命令が複数個ある場合において、一方の命令が
後に続く命令との間でデータ依存関係にある場合にはそ
の命令のアドレスが他方の命令のアドレスより大きい場
合でも依存関係のある命令から実行を開始させるので、
この場合エントリー#2のmul命令がサイクル4でL
ステージから実行を開始する。そして、エントリー#1
のmul命令、エントリー#3のadd命令がサイクル
6でLステージから並列に実行を開始する。この結果、
図2に示すとうり、4つの命令の演算実行のためのサイ
クル数は、3サイクル目から8サイクル目までの6サイ
クルを要し、図4に示す従来の技術による情報処理装置
に比べて演算実行サイクル数が2サイクル短い。以上の
ように本発明の実施例によれば、命令バッファ内に命令
の依存関係に関する情報を示すフィールドを設けること
により、プログラム全体の命令の実行時間を短くするこ
とができる。
【0027】なお、本発明の実施例において、並列に実
行できる命令の数は2命令としたが、1サイクルに1命
令しか実行を開始できない情報処理装置においても同様
の機構を設けて命令の実行時間を短縮できる。また3命
令以上並列に実行開始できる情報処理装置においても同
様の機構を設けることができることは言うまでもない。
【0028】
【発明の効果】以上のように本発明によれば、命令バッ
ファに命令の依存関係に関する情報を示すフィールドを
設けることにより、命令の実行時間を短縮できる。
【図面の簡単な説明】
【図1】本発明の実施例における情報処理装置の命令バ
ッファ構成図
【図2】同実施例における情報処理装置のタイミング図
【図3】従来の情報処理装置の命令バッファ構成図
【図4】従来の情報処理装置のタイミング図
【図5】従来の情報処理装置のブロック図
【図6】従来の情報処理装置の結果バッファ構成図
【符号の説明】
10 命令記憶装置 11、12 命令バス 20 命令解読装置 21、22 制御信号バス 30 命令バッファ 31、32 制御信号バス 40 乗除算装置 41 演算結果バス 42 セレクタ 50 加減算装置 51 演算結果バス 52 セレクタ 60 結果バッファ 61、62 演算結果バス 63 デスティネーションレジスタアドレス番号 64 データ依存解消信号 70 レジスタファイル 71、72、73、74 オペランドバス 80 依存検出装置 81、82 データ依存検出信号

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の命令を供給する命令記憶装置と、
    前記命令記憶装置から供給された複数の命令を解読する
    命令解読装置と、前記命令解読装置で解読された複数の
    命令を一時的に蓄える命令バッファと、前記命令バッフ
    ァから供給された命令を実行する複数の演算装置と、前
    記複数の演算装置で実行された命令の実行結果を一時的
    に蓄える結果バッファと、命令のオペランドを読み出し
    たり命令の実行結果を書き込むためのレジスタファイル
    と、前記命令バッファへ供給された命令間のデータ依存
    関係を調べる依存検出装置とを備えた情報処理装置にお
    いて、前記命令バッファに蓄えられた命令の中から次の
    サイクルで実行する命令を選択する際、実行可能な命令
    が複数あり前記複数の実行可能な命令が同一の演算装置
    を使用する場合、前記複数の実行可能な命令のうち後続
    命令に結果を渡すというデータ依存関係の存在する命令
    を先に実行する手段を備えたことを特徴とする情報処理
    装置。
  2. 【請求項2】 複数の実行可能な命令のうち後続命令に
    結果を渡すというデータ依存関係の存在する命令を先に
    実行する手段として、命令バッファの各エントリーに前
    記命令バッファ内の他の命令との間で前記データ依存関
    係が存在することを示すフィールドを設けたことを特徴
    とする請求項1記載の情報処理装置。
JP1457892A 1992-01-30 1992-01-30 情報処理装置 Expired - Fee Related JP2906799B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1457892A JP2906799B2 (ja) 1992-01-30 1992-01-30 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1457892A JP2906799B2 (ja) 1992-01-30 1992-01-30 情報処理装置

Publications (2)

Publication Number Publication Date
JPH05204639A JPH05204639A (ja) 1993-08-13
JP2906799B2 true JP2906799B2 (ja) 1999-06-21

Family

ID=11865048

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1457892A Expired - Fee Related JP2906799B2 (ja) 1992-01-30 1992-01-30 情報処理装置

Country Status (1)

Country Link
JP (1) JP2906799B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3558001B2 (ja) 2000-05-24 2004-08-25 日本電気株式会社 命令バッファ及びバッファキュー制御
CN111526172B (zh) * 2019-02-03 2022-11-29 杭州登临瀚海科技有限公司 一种多设备管理方法和管理系统

Also Published As

Publication number Publication date
JPH05204639A (ja) 1993-08-13

Similar Documents

Publication Publication Date Title
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
JP2818249B2 (ja) 電子計算機
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5764943A (en) Data path circuitry for processor having multiple instruction pipelines
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JPH04275628A (ja) 演算処理装置
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
EP0482200B1 (en) Interrupt processing system
JP3751402B2 (ja) データ精度モード表示器を備えたマルチパイプライン・マイクロプロセッサ
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US6092184A (en) Parallel processing of pipelined instructions having register dependencies
JP2906799B2 (ja) 情報処理装置
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
WO1999027439A1 (fr) Systeme informatique
JP2894438B2 (ja) パイプライン処理装置
JP2814683B2 (ja) 命令処理装置
JPS61288230A (ja) パイプライン制御方式
JP2824484B2 (ja) パイプライン処理計算機
JP3473506B2 (ja) パイプライン処理装置
JP2511063B2 (ja) パイプライン制御方式
JP2856784B2 (ja) 電子計算機
JP3446658B2 (ja) プロセッサ及びその性能評価方法
JPS61143850A (ja) 処理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees