JPH08305567A - 演算命令の並列処理方法および並列処理装置 - Google Patents

演算命令の並列処理方法および並列処理装置

Info

Publication number
JPH08305567A
JPH08305567A JP11179295A JP11179295A JPH08305567A JP H08305567 A JPH08305567 A JP H08305567A JP 11179295 A JP11179295 A JP 11179295A JP 11179295 A JP11179295 A JP 11179295A JP H08305567 A JPH08305567 A JP H08305567A
Authority
JP
Japan
Prior art keywords
instruction
pipeline
latency
contention
signal
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
Application number
JP11179295A
Other languages
English (en)
Inventor
Tetsuya Shimomura
哲也 下村
Kotaro Shimamura
光太郎 島村
Nariya Tanaka
成也 田中
Takashi Hotta
多加志 堀田
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 JP11179295A priority Critical patent/JPH08305567A/ja
Publication of JPH08305567A publication Critical patent/JPH08305567A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【目的】演算ラテンシの異なる複数の命令を並列実行す
る場合に、データ競合やリソース競合を、最短の待ち時
間で回避する。 【構成】情報処理装置は命令バッファ10から読出さ
れ、長ラテンシ命令の処理中に短ラテンシの後続命令を
追越し処理できるパイプライン処理機能を有している。
演算中の長ラテンシ命令と後続の短ラテンシの命令との
競合がある場合は、抑止信号発生器300からの抑止信
号311,312によって、後続命令の発行を抑止す
る。予告信号発生器500は、長ラテンシ命令の演算終
了前の所定のストローク(マシンサイクル)のタイミン
グに予告信号515を発生する。予告信号515は競合
要因(データ競合のWAW,WAR,RAWやリソース
競合)に応じたタイミングで複数発生し、抑止信号31
1の出力期間を制御する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、演算ラテンシの異なる
命令を並列実行するパイプライン処理を備える情報処理
装置に関するものである。
【0002】
【従来の技術】演算ラテンシの異なる命令を並列実行す
る従来の情報処理装置の例として、図11に情報処理装
置の全体構成を、図10(a)に長ラテンシ演算命令と
して実数除算命令、短ラテンシ演算命令として実数加算
命令の実行タイムチャートを示す。
【0003】演算命令をパイプライン処理する場合、パ
イプライン処理中の命令とパイプラインへ発行予定の後
続命令の競合という問題が発生する。競合にはリソース
競合とデータ競合がある。リソース競合は、共用する機
能または資源を、異なる命令が同一サイクルに使用する
ときに発生する。一般的なデータ競合には、リードアフ
ターライト(以下RAWと略)競合、ライトアフターラ
イト(以下WAWと略)競合、ライトアフターリード
(以下WARと略)競合の3種類がある。RAW競合
は、パイプライン処理中の命令の結果を後続の命令が使
用するとき、すなわちパイプライン処理中の命令のター
ゲットレジスタとパイプラインへ発行予定の命令のソー
スレジスタが同一である場合に発生する。WAW競合
は、パイプライン処理中の命令のターゲットレジスタと
後続の命令のターゲットレジスタが同一の場合に発生す
る。WAR競合は、パイプライン処理中の命令のソース
レジスタとパイプラインへ発行予定の命令のターゲット
レジスタが同一の場合に発生する。
【0004】図11において、抑止信号発生器301は
実行中の演算命令と後続のパイプラインへ発行予定の命
令との間の競合関係を調べて、競合関係がある場合には
抑止信号311、312を出力し、パイプラインへの後
続命令の発行を抑止している。同図では、実行中の実数
除算命令と後続命令の競合関係を調べ、競合のある場合
は後続命令の発行タイミングを制御する。競合のない場
合は、長ラテンシの実数除算命令を追い越して後続の演
算命令の実行が可能となる。
【0005】このような制御を行う従来技術には、コン
パレータ方式と単一バッファ方式がある。コンパレータ
方式は、長ラテンシ演算命令(ここでは実数除算命令)
の演算ラテンシと同じ段数のレジスタ番号保持用のバッ
ファとコンパレータを使用して、実行中の長ラテンシ命
令とパイプラインへ発行予定の命令との競合検出を行
う。例えば、実数除算命令がパイプラインへ発行された
ときに、1段目のバッファに実数除算命令が使用するレ
ジスタ番号を登録し、1マシンサイクル後には2段目の
バッファへ内容を移し、更に1マシンサイクル後には3
段目に移し...と、実数除算命令の実行段階に対応し
たバッファ内に実行中の実数除算命令が使用するレジス
タ番号を保持する。このため、実行中の長ラテンシ演算
命令と競合している後続命令のパイプラインへの発行タ
イミングをRAW、WAR、WAWなどのデータ競合タ
イプごとに、異なったタイミングで制御することができ
る。
【0006】一方、単一バッファ方式は、実数除算命令
がパイプラインへ発行されるタイミングで、実数除算命
令が使用するレジスタ番号を一段のバッファ内に登録
し、実数除算命令の実行が終了するまでバッファの内容
を保持するようにしている。この方式では、実行中の実
数除算演算命令が使用するレジスタ番号を一段のバッフ
ァのみで保持する構成のために、情報処理装置の実装面
積を小さくできる。
【0007】このような演算ラテンシの異なる命令を並
列実行する従来の情報処理装置の公知文献に、「パフォ
ーマンス フューチャズ オブ ザ PA7100 マイク
ロプロセッサ"(Performance Features of the PA7100 M
icroprocessor);T.Aspreyet al.,;IEEE Micr
o,June 1993, pp.21−35」がある。
【0008】
【発明が解決しようとする課題】従来のコンパレータ方
式では、RAW、WAR、WAWなどのデータ競合タイ
プ毎に異なったタイミングで、現在実行中の長ラテンシ
演算命令と競合している後続命令のパイプラインへの発
行タイミングを制御することができるが、情報処理装置
の実装面積が大きく、コスト高になる欠点がある。
【0009】例えば、64ビットのレジスタを32本実
装している情報処理装置の場合、実数除算命令の演算ラ
テンシが7マシンサイクルとすると、レジスタ番号を保
持するバッファの1段分が5ビット(=32本)×3
(演算ソース用が2個、ターゲット用が1個)=15ビ
ット、コンパレータの一段分が5ビット(=32本)×
5(RAW用が2個、WAR用が2個、WAW用が1
個)=25ビットとなり、それぞれが命令の演算ラテン
シ分だけ必要となる。このため、実数除算命令に使用す
るバッファは105ビット、コンパレータは175ビッ
トになり、実装面積が非常に大きくなる。さらに、競合
検出にはこれらコンパレータの出力信号を集計しなけれ
ばならず、そのための論理段数が増加するため、情報処
理装置の動作周波数を高速にすることが困難で、処理性
の低下要因となっている。
【0010】一方、単一バッファ方式ではRAW、WA
R、WAWなどのデータ競合タイプごとに、現在実行中
の長ラテンシ演算命令と競合する後続命令のパイプライ
ンへの発行タイミングを制御することができず、コンパ
レータ方式に比べさらに処理性能が低い。
【0011】本発明の第1の目的は、パイプライン処理
中の長ラテンシ演算命令を追い越して後続の短ラテンシ
演算命令をパイプラインへ発行できる小型で高速な情報
処理装置を提供することにある。
【0012】本発明の第2の目的は、データ競合やリソ
ース競合など後続命令のパイプラインへの発行を抑止す
る必要のある場合に、その競合要因に応じて抑止期間を
最小にして処理性能を向上できる情報処理方法および装
置を提供することにある。
【0013】本発明の第3の目的は、演算ラテンシの異
なる演算命令間で、共通する処理を共用リソース化する
情報処理装置を提供することにある。
【0014】
【課題を解決するための手段】本発明の目的は、演算ラ
テンシの異なる複数の演算命令を記憶し、追越し可能に
パイプライン処理する情報処理方式において、パイプラ
イン処理中の演算命令とパイプラインへ発行予定の演算
命令との競合を競合タイプ毎に調べ、競合のある場合に
前記発行予定の演算命令のパイプラインへの発行を抑止
する抑止信号の出力を、前記競合タイプに応じて制御す
ることにより達成される。
【0015】また、本発明の目的は、パイプライン処理
中の長ラテンシ演算命令とパイプラインへ発行予定の後
続の短ラテンシ演算命令との競合を調べ、競合のある場
合に前記短ラテンシ演算命令の発行を抑止する抑止信号
を出力し、前記長ラテンシ演算命令の演算終了を予告す
る予告信号を所定のタイミングで出力して前記抑止信号
を無効化または有効化することにより達成される。
【0016】前記長ラテンシ演算命令が実数除算命令、
前記短ラテンシ演算命令が実数加算命令または実数乗算
命令で、前記競合がライトアフターライト(WAW)ま
たはライトアフターリード(WAR)の場合は、前記予
告信号の出力する所定のタイミングを前記実数除算命令
の演算終了のn(整数)マシンサイクル前とし、前記競
合がリードアフターライト(RAW)で、前記長ラテン
シ演算命令の演算結果を前記短ラテンシ演算命令にショ
ートパスできる場合は、前記予告信号の出力するタイミ
ングを前記実数除算命令の演算終了の(n−1)マシン
サイクル前とし、前記予告信号の出力によって前記抑止
信号を無効化することを特徴とする。
【0017】さらに、本発明の目的は、パイプライン処
理中の長ラテンシ演算命令とパイプラインへ発行予定の
後続の短ラテンシ演算命令との競合がリソース競合の場
合は、前記長ラテンシ演算命令の演算終了前で前記デー
タ競合のタイミングとは異なるm(整数)マシンサイク
ルのタイミングで、前記短ラテンシ演算命令の発行を抑
止する抑止信号を出力することにより達成される。
【0018】
【作用】本発明の構成によれば、前記予告信号はパイプ
ライン処理中の長ラテンシ演算命令の終了前の複数のマ
シンサイクルに対応して発生され、そのマシンサイクル
と競合タイプとが対応されている。例えば、WAWやW
AR競合では終了のn=2マシンサイクル前、WAR
(ショートパス可能)では(n−1)=1マシンサイク
ル前、リソース競合ではm=3マシンサイクル前に予告
信号が発生される。
【0019】前記抑止信号は、長ラテンシ演算命令のパ
イプラインへの発行タイミングで後続命令の競合を競合
タイプ毎に検出し、競合する場合に後続の短ラテンシ演
算命令のパイプラインへの発行を遅らせる抑止信号を出
力する。抑止信号の出力は、対応する前記予告信号によ
って制御される。すなわち、前記予告信号の出力によ
り、データ競合の場合は抑止信号が無効化され、リソー
ス競合の場合は有効化される。
【0020】これによれば、競合タイプ毎に競合回避の
ための抑止期間を最小化できるので、従来の単一バッフ
ァ方式に比べ、処理を大幅に高速化することができる。
また、従来のコンパレータ方式に比べ、競合回避のため
の回路を大幅に低減して処理装置を小型化でき、また、
回路の低減による処理速度の向上も可能になる。
【0021】さらに、本発明によれば、異なるラテンシ
の演算命令間で、共通する処理、例えば実数除算命令と
乗算命令の出力アライナ以降などを共用リソース化し、
かつ、リソース競合は特定の前記予告信号を利用して出
力される抑止信号によって、簡単に回避できるので、小
型で高速の情報処理装置を提供できる。
【0022】
【実施例】本発明の第1の実施例を図1〜図4を参照し
て説明する。
【0023】図1は、本発明の第1の実施例による情報
処理装置の全体構成図である。本実施例では、短ラテン
シ命令として実数加算/乗算命令(演算ラテンシが2マ
シンサイクル)、長ラテンシ命令として実数除算命令
(演算ラテンシが7マシンサイクル)をパイプライン処
理する。
【0024】図1において、270は命令読み出し器、
10は命令バッファ、200は命令解読器、300は抑
止信号発生器、20は演算開始ラッチ、600はレジス
タ、700は実数加算器、800は実数乗算器、900
は実数除算器、400は実数除算用レジスタ番号保持バ
ッファ、450は実数加算/乗算用レジスタ番号保持バ
ッファ、500は予告信号発生器、271,272はオ
ペコード転送パス、211,221,222は命令解読
結果出力パス、225は演算命令用ソース/ターゲット
オペランド転送パス、611〜614は演算ソースデー
タパス、621,622は演算器入力データバス、71
1,712は実数加算器用入力データパス、811,8
12は実数乗算器用入力データパス、911,912は
実数除算器用入力データパス、713は実数加算結果転
送パス、813は実数乗算結果転送パス、913は実数
除算結果転送パス、714は実数加算結果入力パス、8
14は実数乗算結果入力パス、914は実数除算結果入
力パス、511は予告初期化信号、515は予告信号、
412,415は実数除算用ソース/ターゲットオペラ
ンド転送パス、462,465は実数加算/乗算命令用
ソース/ターゲットオペランド転送パスである。
【0025】命令読み出し器270から出力されたオペ
コードは、命令バッファ10を介して命令解読器200
へ入力される。命令解読器200から出力パス221を
通して送られるソースオペランドによって、演算ソース
データはレジスタ600から読み出され、演算開始ラッ
チ20を介して演算器入力データバス621,622へ
出力される。
【0026】実数加算演算の場合は、演算器入力データ
バス621,622からの演算ソースデータが実数加算
器700へ入力し、演算後、実数加算結果転送パス71
3を通してレジスタ600へ出力される。実数乗算演算
の場合は、演算ソースデータが実数乗算器800へ入力
し、演算後、実数乗算結果転送パス813を通してレジ
スタ600へ出力される。実数除算演算の場合は、演算
ソースデータが実数除算器900へ入力し、演算後、実
数除算結果転送パス913を通してレジスタ600へ出
力される。また、実数加算結果転送パス714、実数乗
算結果転送パス814及び実数除算結果転送パス914
は、各々の演算結果を次の演算に使用するため、演算結
果を演算器入力データバス621,622へショートパ
スしている。
【0027】図1の実施例では、すべての演算器のラテ
ンシが2マシンサイクル以上であるため、パイプライン
処理中の演算命令とパイプラインへ発行予定の後続命令
が競合する場合には、その競合関係が解消するまで後続
命令の発行を抑止する必要がある。パイプライン処理中
の演算命令と後続命令のデータ競合の検査は、抑止信号
発生器300によって行われる。
【0028】抑止信号発生器300は、パイプライン処
理中の命令が実数加算/乗算命令の場合には、転送パス
465による実行中の実数加算/乗算命令のソース/タ
ーゲットオペランドと、転送パス222よる後続命令の
ソース/ターゲットオペランドによって検査し、データ
競合が検出されると、命令解読器200から出力される
データを無効化するための抑止信号311を出力する。
このとき、抑止信号312も出力して命令バッファ10
からの命令発行を抑止する。これらの抑止信号311,
312の出力は、データ競合関係が解消すると停止す
る。なお、以下の抑止信号311の出力の記載には、抑
止信号312も含んでいるものとする。
【0029】また、パイプライン処理中の命令が実数除
算命令の場合には、転送パス415による実数除算命令
用ソース/ターゲットオペランドと、転送パス222に
よる後続命令用ソース/ターゲットオペランドによって
検査し、データ競合が検出されると、命令解読器200
から出力されるデータを無効化するための抑止信号31
1を出力する。
【0030】ここで、実数加算/乗算用レジスタ番号保
持バッファ450、実数除算用レジスタ番号保持バッフ
ァ400、予告信号発生器500へのデータの登録は次
のように行われる。命令解読器200で解読した結果、
その命令が実数加算/乗算命令の場合は、命令解読器2
00から命令解読結果出力パス222、演算開始ラッチ
20及び転送パス462を通して、実数加算/乗算命令
用ソース/ターゲットオペランドが実数加算/乗算用レ
ジスタ番号保持バッファ450へ入力される。実数加算
/乗算用レジスタ番号保持バッファ450は、実数加算
器700または実数乗算器800の演算ラテンシ、すな
わち2マシンサイクルの間入力されたデータを保持し、
その間は転送パス465を通して抑止信号発生器300
へ保持しているデータを出力する。
【0031】一方、命令が実数除算命令の場合は、命令
解読器200から命令解読結果出力パス222、演算開
始ラッチ20及び転送パス412を通して、実数除算命
令用ソース/ターゲットオペランドが実数除算用レジス
タ番号保持バッファ400へ入力される。実数除算用レ
ジスタ番号保持バッファ400は、実数除算器の演算ラ
テンシすなわち7マシンサイクルの間入力されたデータ
を保持し、その間は転送パス415を通して抑止信号発
生器300へ保持しているデータを出力する。
【0032】これと共に、命令解読器200から命令解
読結果出力パス211及び演算開始ラッチ20を通し
て、予告初期化信号511を予告信号発生器500へ入
力する。予告信号発生器500は、パイプライン処理中
の実数除算命令が終了するまでの残り1または2マシン
サイクルのタイミングを、予告信号515として抑止信
号発生器300へ出力する。予告信号515は、パイプ
ライン処理中の実数除算命令の終了タイミングで出力が
停止される。
【0033】上記したように、本実施例の情報処理装置
は、パイプラインへ発行予定の後続命令が、パイプライ
ン処理中の演算命令とデータ競合する場合には、そのデ
ータ競合の要因が解消されるまで後続命令をパイプライ
ンへ発行しない。しかし、データ競合していない場合に
は、実数除算命令がパイプライン処理中であっても、そ
れを追い越して発行することができる。
【0034】図2に予告信号発生器、図3に抑止信号発
生器の構成をそれぞれ示す。本実施例は、パイプライン
への命令の発行は読出し順に、演算処理は追越し可能と
し、演算結果のレジスタへの書き込みは演算処理の終了
順に実行しているため、WAW競合およびWAR競合の
存在する場合は、これを命令の読出し時に検出して後続
命令の発行を抑止している。
【0035】抑止信号発生器300において、331は
パイプライン処理中の実数加算/乗算命令と後続命令の
ショートパス可能な場合のRAW競合検出器、332は
パイプライン処理中の実数加算/乗算命令と後続命令の
ショートパス不可の場合のRAW競合検出器、333は
パイプライン処理中の実数除算命令と後続命令のショー
トパス可能な場合のRAW競合検出器、334はパイプ
ライン処理中の実数除算命令と後続命令のショートパス
不可の場合のRAW競合検出器、335はパイプライン
処理中の実数除算命令と後続命令のWAW競合検出器、
336はパイプライン処理中の実数除算命令と後続命令
のWAR競合検出器である。
【0036】競合検出器331,332は一方に、実行
中の実数加算/乗算命令のソース/ターゲットオペラン
ドが、他方に後続命令のソース/ターゲットオペランド
命令が入力されて比較され、両者のオペランドが競合す
るときOR回路341を介して、抑止信号311を出力
する。
【0037】競合検出器333〜335の各々は、一方
に実行中の実数除算命令のソース/ターゲットオペラン
ド、他方に後続命令のソース/ターゲットオペランドが
入力され、両入力が競合するとき検出器の出力が1にな
る。RAW競合検出器333の出力は、AND回路33
7で予告信号発生器500からの予告信号511−1の
出力0をチエックした上で、抑止信号311とされる。
また、WAW競合検出器335及びWAR競合検出器3
36の出力は、OR回路338、AND回路339/3
40で予告信号511−1/511−2の出力0をチエ
ックして、抑止信号311とされる。
【0038】予告信号発生器500において、520は
セレクタ、521は中間結果保持ラッチ、522は減算
器、523,524はコンパレータ、531は初期値設
定パス、532〜536は中間結果転送パス、515−
1はパイプライン処理中の実数除算命令が残り1マシン
サイクルで終了することを示す予告信号、515−2は
パイプライン処理中の実数除算命令が残り2マシンサイ
クルで終了することを示す予告信号である。
【0039】実数除算命令の実行が開始されると、命令
解読器200から予告初期化信号511が予告信号発生
器500に入力される。セレクタ520は初期値を中間
結果保持ラッチ521を介して減算器522に入力す
る。減算器522では入力値に対し、−1した値を中間
結果転送パス534を通してセレクタ520に返す。セ
レクタ520の出力は、実数除算命令の実行開始から1
マシンサイクル以降においては、中間結果転送パス53
4を通して返送される値になる。このセレクタ520の
出力は、中間結果転送パス535,536を通してそれ
ぞれコンパレータ523,524に入力される。コンパ
レータ523はセレクタ520からの入力値が1に等し
くなるとき、実数除算命令実行が残り1マシンサイクル
で終了することを予告信号515−1として出力する。
同様に、コンパレータ524はセレクタ520からの入
力値が2に等しくなるとき、実数除算命令実行が残り2
マシンサイクルで終了することを予告信号515−2と
して出力する。なお、予告信号515−1,2は各々の
信号線を通じて抑止信号発生器300に出力される。
【0040】抑止信号発生器300は、競合タイプごと
に設けられた競合検出器333〜336の何れかの出力
に応じて抑止信号311を出力する。この抑止信号は、
予告信号515−1または515−2を利用して、その
出力をキャンセルされる。すなわち、予告信号515の
異なる出力タイミングによって抑止信号311を制御す
ることで、データ競合タイプに応じた競合回避の制御が
できるため、各競合要因が解消される最短のタイミング
で後続命令を発行して、高速処理を実現する。なお、図
3では、予告信号発生器500の初期値を7としている
が、演算精度や命令の種類によって適宜、選択可能に構
成にすることができる。
【0041】図4に、図2と図3に示した予告信号発生
器および抑止信号発生器の動作を説明するタイムチャー
トを示す。同図における命令は、アドレスの小さい順に
命令1(実数乗算命令:FMPY)、命令2(実数除算
命令:FDIV)および命令3(実数加算命令:FAD
D)が並んでいる。また、命令2と命令3の間に(1)
RAW競合(sp可能)、(2)RAW競合(sp不
可)、(3)WARまたはWAW競合の何れかの競合タ
イプが存在する。なお、命令のステージはそれぞれI
F:命令読み出し、D:命令解読、E1〜E7:演算実
行、W:レジスタ書き込みとして示す。
【0042】(t+2)のタイミングで、命令1のE1
がパイプラインへ発行されると、同じタイミングで、実
数加算/乗算用レジスタ番号保持バッファ450に、命
令1のソース/ターゲットのレジスタ番号が登録され
る。さらに、この登録されたレジスタ番号と解読された
命令2のソース/ターゲットのレジスタ番号が、抑止信
号発生器300で比較される。この例では、両者の間に
は競合関係が存在しないため、抑止信号311は0とな
って出力されない。
【0043】次に、(t+3)のタイミングで、命令2
のE1がパイプラインへ発行され、実数除算用レジスタ
番号保持バッファ400に、命令2のソース/ターゲッ
トのレジスタ番号が登録される。さらに、この登録され
た命令2のレジスタ番号と解読された命令3のソース/
ターゲットのレジスタ番号が、抑止信号発生器300で
比較される。この場合は、両者の間に競合関係が存在す
るため、抑止信号311が1となって出力される。この
結果、(t+3)から(t+7)までは、命令3は競合
タイプに関係なく、Dステージで待たされる。
【0044】(t+8)のタイミングで、命令3の演算
のマシンサイクルがE6、即ち残り2サイクルになる
と、予告信号515−2が出力され、WAW競合検出器
335またはWAR競合検出器336の出力が1の状態
でも、OR回路338及びAND回路339/340に
より、抑止信号311はキャンセルされる。この結果、
競合タイプがWAWまたはWARの場合は、このタイミ
ングで命令3のDステージが再開され、(t+9)のタ
イミングで命令3のE1がパイプラインへ発行される。
このとき、命令2はE7を実行中であるが、WAWまた
はWARの場合、後続命令3のE1との間で競合関係を
生じることはない。
【0045】さらに、(t+9)のタイミングで、ショ
ートパス可能なRAW競合の場合、予告信号515−1
の入力によってAND回路337の出力、すなわち抑止
信号311がキャンセルされるので、このタイミングで
命令3のDステージが再開され、(t+10)のタイミ
ングで命令3のE1がパイプラインへ発行される。一
方、ショートパス不可能なRAW競合の場合、さらに1
マシンサイクル遅れて、(t+10)のタイミングで、
命令2がWステージになると競合検出器334の出力が
0となり、命令3の抑止信号311がキャンセルされ
る。そして、(t+11)のタイミングで命令3のE1
がパイプラインへ発行される。
【0046】図10に、従来方式(単一バッファ方式)
と本実施例による処理速度を比較するタイムチャートを
示す。命令1は実数加算命令(FADD):R10+R
11⇒R12、命令2は実数除残命令(FDIV):R
13÷R14⇒R17、命令3は実数加算命令(FAD
D):R15+R16⇒R17である。この例では、命
令1と命令2には競合がなく、命令2と命令3の間には
ターゲットレジスタ番号R17のWAW競合が存在す
る。同図(a)の従来方式では、命令1〜命令3を14
マシンサイクルで実行している。一方、同図(b)の本
実施例では、同じ命令を12マシンサイクルで実行で
き、約14%の高速化を実現している。
【0047】また、従来のコンパレータ方式では、64
ビットレジスタが32本で、長ラテンシ命令のラテンシ
が7とすると、バッファ7段(15ビット×7=105
ビット)、コンパレータ7段(25ビット×7=175
ビット)を必要とする。これに対し、本実施例ではバッ
ファ1段、コンパレータ1段で済み、これらの実装面積
を86%削減できる。しかも、論理段数の減少によって
情報処理装置の動作周波数を高め、処理を高速化でき
る。
【0048】なお、上記の実施例では、長演算ラテンシ
を7マシンサイクルの実数除算命令、短演算ラテンシを
2マシンサイクルの実数加算/乗算命令としたが、本発
明が演算ラテンシの異なる任意の演算命令に適用できる
ことは言うまでもない。
【0049】以上、本発明の第1の実施例によれば、従
来のコンパレータ方式に比べてバッファやコンパレータ
を86%削減でき、且つ、従来の単一バッファ方式に比
べてデータ競合タイプ毎に待ち時間を最短にできるの
で、高速処理(従来のコンパレータ方式と同等以上)が
可能になる。
【0050】次に、本発明の第2の実施例を、図5〜図
9を参照して説明する。
【0051】図5は、第2の実施例による情報処理装置
の全体構成図を示したものである。第1の実施例と同様
に、演算ラテンシが2マシンサイクルの実数加算命令と
実数乗算命令、演算ラテンシが7マシンサイクルの実数
除算命令の処理例である。図5で、図1と同等の要素に
は同一の符号を付してあり、説明を省略する。
【0052】実数乗算命令と実数除算命令では、演算終
了後の計算値の正規化などの処理が共通となる。この共
通部分、すなわち実数乗算器と実数除算器の出力アライ
ナからレジスタ書き込みパスまでのリソースを共有化し
て小型化できる。この場合、共有化したリソースの競合
を回避する必要がある。本実施例は共通部の共有化と、
それによるリソース競合に対して前述の予告信号を利用
することで抑止信号を制御する。
【0053】図5で、801は実数乗算器、901は実
数除算器、850は出力アライナ、860は出力結果セ
レクタ、516は予告信号、821,822,921は
中間結果転送パス、851は実数乗算/除算結果転送パ
ス、852は実数乗算/除算結果入力パスである。
【0054】実数乗算器801の出力は中間結果転送パ
ス821によって、実数除算器901の出力は中間結果
転送パス921によってセレクタ860に入力される。
セレクタ860は、予告信号発生器500から予告信号
516が入力されたときに、実数除算器901から送ら
れてきたデータを中間結果出力パス822を通して出力
アライナ850へ出力し、それ以外の場合は実数乗算器
801から送られてきたデータを出力アライナ850へ
出力する。出力アライナ850は演算結果を正規化し
て、実数乗算/除算結果転送パス851を介して、レジ
スタ600へ出力する。
【0055】図6と図7に、予告信号発生器および抑止
信号発生器の構成例を示す。図6と図7で、図2及び図
3と同等の要素には同一の符号を付してあり、説明を省
略する。予告信号発生器500にはコンパレータ525
が追加され、パイプライン処理中の実数除算命令が残り
3マシンサイクルで終了することを示す予告信号515
−3を出力する。抑止信号発生器300にはリソース競
合検出器342が追加され、予告信号515−3が入力
されると、リソース競合検出器出力信号1000を出力
する。これによって、残り3マシンサイクルから1マシ
ンサイクルの間、OR回路341から抑止信号311を
出力し、リソース競合を回避する。
【0056】図8に、第2の実施例の処理動作を説明す
るタイムチャート示す。同図で、アドレスが小さい順に
命令1(FMPY)、命令2(FDIV)、命令3(F
ADD)、命令4(FMPY)、命令5(FADD)、
命令6(FMPY)及び命令7(FMPY)と並んでい
て、命令2と命令7にリソース競合が存在する。
【0057】(t+2)のタイミングで、命令1がパイ
プラインへ発行されると共に、実数加算/乗算用レジス
タ番号保持バッファ450に、命令1のソース/ターゲ
ットレジスタ番号が登録される。このタイミングで、命
令1のソース/ターゲットレジスタ番号と命令2のソー
ス/ターゲットレジスタ番号が比較される。この場合
は、競合関係が存在せず、抑止信号311は0となって
出力されない。
【0058】次の(t+3)のタイミングで、命令2が
パイプラインへ発行され、実数除算用レジスタ番号保持
バッファ400に命令2のソース/ターゲットレジスタ
番号が登録される。このタイミングで、命令2のソース
/ターゲットレジスタ番号と命令3のソース/ターゲッ
トレジスタ番号が比較されるが、競合関係が検出されな
いので抑止信号311は出力されない。以後、(t+
6)までは、競合関係がなく抑止信号311が出力され
ないので、命令3〜命令6は次々と追越し処理される。
なお、この間にデータ競合が存在する場合は、前述の第
1の実施例に示した方法で抑止信号311が出力され
て、競合が回避される。
【0059】(t+7)のタイミング、すなわち命令2
の演算が残り3マシンサイクルとなると、予告信号発生
器500から予告信号515−3が出力されるので、抑
止信号311が1となって出力される。命令7は、(t
+8)のタイミングでの演算開始が抑止され、次の(t
+9)のタイミングで演算を開始する。なお、予告信号
515−3は、予告信号516としてセレクタ860へ
も出力する。この結果、実数除算命令2と実数乗算命令
7の終了時刻が1マシンサイクルずれ、両演算に共用さ
れる出力アライナ850などのリソース競合を回避する
ことができる。
【0060】上記の第2の実施例では、共用可能なリソ
ースとして、実数除算命令と実数乗算命令の出力アライ
ナ以降の例を示したが、これに限定されるものではな
い。例えば、丸め処理(生の演算結果⇒丸め⇒正規化の
フローで修正)の共用化では、実数加算命令などの演算
命令にも同様のリソース回避方式による適用を拡大で
き、さらに実装面積を小さくすることができる。
【0061】図9に、リソース競合検出器の別の構成を
示す。この例は、パイプライン処理中の実数除算命令の
後続命令が実数乗算命令の場合に、命令解読器200か
ら出力される信号212と予告信号515−3のAND
をとって、リソース競合検出器の出力信号1000、従
って抑止信号311が発生する構成になっている。
【0062】これによれば、実数除算命令が終了の3マ
シンサイクル前のタイミングで且つ、リソース競合する
後続命令が乗算命令の場合にのみ抑止信号311を出力
するので、実数除算命令の度に不要な抑止信号が出力さ
れることがなく、リソース回避制御の信頼性と処理性が
より向上できる。
【0063】以上、第2の実施例によれば、実数乗算命
令と実数除算命令の共通する処理に共用するリソースを
備えて回路を小型化すると共に、共用によるリソース競
合を簡単な構成の追加によって確実に回避することがで
きる。
【0064】
【発明の効果】本発明によれば、演算ラテンシの異なる
命令を並列実行するパイプライン処理を行う情報処理方
式において、パイプライン処理中の長ラテンシ演算命令
とデータ競合がある後続の演算命令を、そのデータ競合
タイプごとに発行タイミングを変えることができ、競合
回避のための待ち時間を最短にして性能向上できる効果
がある。また、このためのバッファやコンパレータを従
来方式に比べて大幅に削減でき、実装面積の小さい情報
処理装置を提供できる。
【0065】本発明によれば、演算ラテンシの異なる演
算命令の処理装置で、共通する処理を共用リソースによ
って実現でき、且つ、実行中のリソース競合を簡単に回
避することができるため、性能を低下させることなく実
装面積を小さくできる効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例による情報処理装置の全
体構成図。
【図2】第1の実施例による予告信号発生器の詳細構成
を含む情報処理装置の一部の構成図。
【図3】第1の実施例による抑止信号発生器の詳細構成
を含む情報処理装置の一部の構成図。
【図4】第1の実施例によるデータ競合の回避動作を説
明する複数命令の実行タイムチャート。
【図5】本発明の第2の実施例による情報処理装置の全
体構成図。
【図6】第2の実施例による予告信号発生器の詳細構成
を含む情報処理装置の一部の構成図。
【図7】第2の実施例による抑止信号発生器の詳細構成
を含む情報処理装置の一部の構成図。
【図8】第2の実施例によるリソース競合の回避動作を
説明する複数命令の実行タイムチャート。
【図9】リソース競合検出器の別の構成図。
【図10】従来方式と第1の実施例による処理性能を比
較するタイムチャート。
【図11】従来のデータ競合回避の成作を含む情報処理
装置の全体構成図。
【符号の説明】
10…命令バッファ、20…演算開始ラッチ、200…
命令解読器、270…命令読み出し器、300…抑止信
号発生器、331…ショートパス可能な場合のRAW競
合検出器、332…ショートパス不可な場合のRAW競
合検出器、333…ショートパス可能な場合のRAW競
合検出器、334…ショートパス不可な場合のRAW競
合検出器、335…WAW競合検出器、336…WAR
競合検出器、342…リソース競合検出器、400…実
数除算用レジスタ番号保持バッファ、450…実数加算
/乗算用レジスタ番号保持バッファ、500…予告信号
発生器、520…セレクタ、521…中間結果保持ラッ
チ、522…減算器、523〜525…コンパレータ、
600…レジスタ、700…実数加算器、800,80
1…実数乗算器、850…出力アライナ、860…出力
結果セレクタ、900,901…実数除算器、311,
312…抑止信号、515,516…予告信号。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 堀田 多加志 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 演算ラテンシの異なる複数の演算命令を
    記憶し、追越し可能にパイプライン処理する情報処理方
    法において、 パイプライン処理中の演算命令とパイプラインへ発行予
    定の演算命令との競合を競合タイプ毎に調べ、競合のあ
    る場合に前記発行予定の演算命令のパイプラインへの発
    行を抑止する抑止信号の出力を、前記競合タイプに応じ
    て制御することを特徴とする演算命令の並列処理方法。
  2. 【請求項2】 演算ラテンシの異なる複数の演算命令を
    記憶し、所定の順番に呼出して追越し可能にパイプライ
    ン処理する情報処理方法において、 パイプライン処理中の長ラテンシ演算命令とパイプライ
    ンへ発行予定の後続の短ラテンシ演算命令との競合を調
    べ、競合のある場合に前記短ラテンシ演算命令の発行を
    抑止する抑止信号を出力し、前記長ラテンシ演算命令の
    演算終了を予告する予告信号を所定のタイミングで出力
    して前記抑止信号を無効化または有効化することを特徴
    とする演算命令の並列処理方法。
  3. 【請求項3】 請求項2において、 前記長ラテンシ演算命令が実数除算命令、前記短ラテン
    シ演算命令が実数加算命令または実数乗算命令で、前記
    競合がライトアフターライト(WAW)またはライトア
    フターリード(WAR)の場合は、前記予告信号の出力
    する所定のタイミングを前記実数除算命令の演算終了の
    n(整数)マシンサイクル前とし、前記競合がリードア
    フターライト(RAW)で、前記長ラテンシ演算命令の
    演算結果を前記短ラテンシ演算命令にショートパスでき
    る場合は、前記予告信号の出力するタイミングを前記実
    数除算命令の演算終了の(n−1)マシンサイクル前と
    し、前記予告信号の出力によって前記抑止信号を無効化
    することを特徴とする演算命令の並列処理方法。
  4. 【請求項4】 演算ラテンシの異なる複数の演算命令を
    記憶し、所定の順番に呼出して追越し可能にパイプライ
    ン処理する情報処理方法において、 パイプライン処理中の長ラテンシ演算命令とパイプライ
    ンへ発行予定の後続の短ラテンシ演算命令との競合がリ
    ソース競合の場合に、前記長ラテンシ演算命令の演算終
    了前の所定マシンサイクルのタイミングで、前記短ラテ
    ンシ演算命令の発行を抑止する抑止信号を出力すること
    を特徴とする演算命令の並列処理方法。
  5. 【請求項5】 請求項4において、 前記長ラテンシ演算命令が実数除算命令、前記短ラテン
    シ演算命令が実数乗算命令で、前記リソース競合が前記
    両演算命令の共通する処理に共用される出力アライナ以
    降のリソースで生じる場合に、前記所定マシンサイクル
    は前記長ラテンシ演算命令の演算終了前のm(整数)マ
    シンサイクルで、前記抑止信号は該mマシンサイクル前
    から1マシンサイクルの期間出力することを特徴とする
    演算命令の並列処理方法。
  6. 【請求項6】 演算ラテンシの異なる複数の演算命令を
    記憶し、所定の順番に呼出して追越し可能にパイプライ
    ン処理する情報処理方法において、 パイプライン処理中の長ラテンシ演算命令とパイプライ
    ンへ発行予定の後続の短ラテンシ演算命令との競合を調
    べ、 前記競合がデータ競合の場合に、前記短ラテンシ演算命
    令の発行を抑止する抑止信号を出力し、前記長ラテンシ
    演算命令の演算終了を予告する予告信号を所定のタイミ
    ングで出力して前記抑止信号を無効化し、 前記競合がリソース競合の場合に、前記予告信号を前記
    所定のタイミングとは異なる特定のタイミングで出力
    し、該予告信号によって前記短ラテンシ演算命令の発行
    を抑止する抑止信号を出力することを特徴とする演算命
    令の並列処理方法。
  7. 【請求項7】 演算ラテンシの異なる複数の演算命令
    を、所定の順番に呼出して追越し可能にパイプライン処
    理する情報処理装置において、 パイプラインへ発行予定の命令を保持する命令バッファ
    と、パイプライン処理中の命令と発行予定の命令との競
    合を検出して、前記命令バッファからパイプラインへの
    前記後続命令の発行を抑止する抑止信号を出力する抑止
    信号発生器と、パイプライン処理中の長ラテンシ演算命
    令の終了を予告する予告信号を出力する予告信号発生器
    を備え、前記予告信号の出力によって前記抑止信号発生
    器を制御することを特徴とする演算命令の並列処理装
    置。
  8. 【請求項8】 請求項7において、 前記抑止信号発生器はパイプライン処理中の命令とパイ
    プラインへ発行予定の命令との競合を、競合タイプ毎に
    検出する複数の競合検出器を有し、前記予告信号発生器
    は、前記長ラテンシ演算命令の終了をその終了前の複数
    のタイミングで出力する複数の予告信号の出力手段を有
    し、且つ、一部の前記競合検出器の抑止信号の出力を対
    応する予告信号によって無効化する競合回避制御手段を
    備えたことを特徴とする演算命令の並列処理装置。
  9. 【請求項9】 請求項8において、 前記出力手段は、前記予告信号の出力タイミングを演算
    のマシンサイクルに対応して設定されることを特徴とす
    る演算命令の並列処理装置。
  10. 【請求項10】 請求項8または9において、 前記競合検出器として、パイプライン処理中の命令のタ
    ーゲットレジスタとパイプラインへ発行予定の命令のタ
    ーゲットレジスタが同一である場合に発生するライトア
    フターライト(WAW)競合の検出器を有することを特
    徴とする演算命令の並列処理装置。
  11. 【請求項11】 請求項8または9または10におい
    て、 前記競合検出器として、パイプライン処理中の命令のソ
    ースレジスタとパイプラインへ発行予定の命令のターゲ
    ットレジスタが同一である場合に発生するリードアフタ
    ーライト(RAW)競合の検出器を有することを特徴と
    する演算命令の並列処理装置。
  12. 【請求項12】 請求項11において、 前記リードアフターライト(RAW)競合の検出器とし
    て、パイプライン処理中の命令の実行結果をレジスタを
    経由せずにパイプラインへ発行予定の命令が使用できる
    ショートパスが可能な構成における検出器と、前記ショ
    ートパスが不可能な構成における検出器とを有すること
    を特徴とする演算命令の並列処理装置。
  13. 【請求項13】 演算ラテンシの異なる複数の演算命令
    を、所定の順番に呼出して追越し可能に並列処理するパ
    イプライン処理機構と、異なる演算命令間の共通する処
    理の少なくとも一部に共用されるリソースを備える情報
    処理装置において、 パイプラインへ発行予定の命令を所定の順番に保持する
    命令バッファと、パイプライン処理中の命令と発行予定
    の後続命令との競合を競合タイプ毎に検出する複数の競
    合検出器と、競合の検出に応じて前記命令バッファから
    パイプラインへの前記後続命令の発行を抑止する抑止信
    号出力手段を有する抑止信号発生器と、 パイプライン処理中の長ラテンシ演算命令の演算終了を
    予告する予告信号を複数のタイミングで出力する予告信
    号発生器と、 前記競合タイプがデータ競合の場合に、前記抑止信号を
    対応する予告信号によって無効化する手段と、前記競合
    タイプがリソース競合の場合に、対応する別の予告信号
    によって前記抑止信号を一定期間有効化する手段を有す
    る競合回避制御手段を備えることを特徴とする演算命令
    の並列処理装置。
JP11179295A 1995-05-10 1995-05-10 演算命令の並列処理方法および並列処理装置 Pending JPH08305567A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11179295A JPH08305567A (ja) 1995-05-10 1995-05-10 演算命令の並列処理方法および並列処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11179295A JPH08305567A (ja) 1995-05-10 1995-05-10 演算命令の並列処理方法および並列処理装置

Publications (1)

Publication Number Publication Date
JPH08305567A true JPH08305567A (ja) 1996-11-22

Family

ID=14570276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11179295A Pending JPH08305567A (ja) 1995-05-10 1995-05-10 演算命令の並列処理方法および並列処理装置

Country Status (1)

Country Link
JP (1) JPH08305567A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100305467B1 (ko) * 1998-02-19 2001-09-26 포만 제프리 엘 파이프라인화된 부동 소수점 저장
JP2003058367A (ja) * 2001-08-17 2003-02-28 Victor Co Of Japan Ltd 演算装置
US7953959B2 (en) * 2005-06-15 2011-05-31 Panasonic Corporation Processor
JP2012173755A (ja) * 2011-02-17 2012-09-10 Nec Computertechno Ltd 情報処理装置及び情報処理方法
JP2015036922A (ja) * 2013-08-14 2015-02-23 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN104978282A (zh) * 2014-04-04 2015-10-14 上海芯豪微电子有限公司 一种缓存系统和方法
CN114281413A (zh) * 2021-12-28 2022-04-05 海光信息技术股份有限公司 流水线冲突处理方法、数据处理装置、电子设备和介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100305467B1 (ko) * 1998-02-19 2001-09-26 포만 제프리 엘 파이프라인화된 부동 소수점 저장
JP2003058367A (ja) * 2001-08-17 2003-02-28 Victor Co Of Japan Ltd 演算装置
US7953959B2 (en) * 2005-06-15 2011-05-31 Panasonic Corporation Processor
JP2012173755A (ja) * 2011-02-17 2012-09-10 Nec Computertechno Ltd 情報処理装置及び情報処理方法
JP2015036922A (ja) * 2013-08-14 2015-02-23 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN104978282A (zh) * 2014-04-04 2015-10-14 上海芯豪微电子有限公司 一种缓存系统和方法
CN114281413A (zh) * 2021-12-28 2022-04-05 海光信息技术股份有限公司 流水线冲突处理方法、数据处理装置、电子设备和介质

Similar Documents

Publication Publication Date Title
EP0368332B1 (en) Pipeline data processor
US5832258A (en) Digital signal processor and associated method for conditional data operation with no condition code update
US5748934A (en) Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words
US6430679B1 (en) Pre-arbitrated bypasssing in a speculative execution microprocessor
JP5209933B2 (ja) データ処理装置
US5778248A (en) Fast microprocessor stage bypass logic enable
JP3400458B2 (ja) 情報処理装置
JPH0776918B2 (ja) データ処理システム及び方法
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
JPWO1996027833A1 (ja) 情報処理装置
EP0482200B1 (en) Interrupt processing system
JPH02227730A (ja) データ処理システム
KR100864890B1 (ko) 데이터 처리장치에서의 소스 레지스터 록킹
JPH08305567A (ja) 演算命令の並列処理方法および並列処理装置
JP3180175B2 (ja) 命令レベルの並列処理制御方法およびプロセッサ
US5878242A (en) Method and system for forwarding instructions in a processor with increased forwarding probability
US6122728A (en) Technique for ordering internal processor register accesses
JP2007528549A (ja) 電子回路
JPH0769825B2 (ja) 並列処理装置
Dwyer III A multiple, out-of-order, instruction issuing system for superscalar processors
JP3204390B2 (ja) マイクロコンピュータ
JP2894438B2 (ja) パイプライン処理装置
JP3199035B2 (ja) プロセッサ及びその実行制御方法
JP6340887B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP3461887B2 (ja) 可変長パイプライン制御装置