JP2894438B2 - パイプライン処理装置 - Google Patents

パイプライン処理装置

Info

Publication number
JP2894438B2
JP2894438B2 JP32913096A JP32913096A JP2894438B2 JP 2894438 B2 JP2894438 B2 JP 2894438B2 JP 32913096 A JP32913096 A JP 32913096A JP 32913096 A JP32913096 A JP 32913096A JP 2894438 B2 JP2894438 B2 JP 2894438B2
Authority
JP
Japan
Prior art keywords
instruction
entry
operand
information
subsequent
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
JP32913096A
Other languages
English (en)
Other versions
JPH10154072A (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.)
NEC Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP32913096A priority Critical patent/JP2894438B2/ja
Publication of JPH10154072A publication Critical patent/JPH10154072A/ja
Application granted granted Critical
Publication of JP2894438B2 publication Critical patent/JP2894438B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リオーダバッファ
やリザベーションステーション等を利用してアウト・オ
ブ・オーダで命令を実行するパイプライン処理装置(命
令パイプライン制御方式を採用する情報処理装置)に関
する。
【0002】
【従来の技術】昨今の高性能MPU(Multi Pr
ocessing Unit)においては、データキャ
ッシュがプロセッサと同一のLSI(Large Sc
aleIntegrated circuit)チップ
上に実装され、キャッシュとプロセッサ内の演算器とが
物理的および論理的に近く配置されることにより、キャ
ッシュアクセスのターンアラウンドタイム(以下、TA
T(Turn Around Time)という)の短
縮が図られている。
【0003】こうした場合、通常、キャッシュアクセス
のヒット/ミスの判定結果が判明するタイミングは、キ
ャッシュヒット時のデータが使用できるようになるサイ
クルと同一のタイミングか、そのサイクルの次のサイク
ルのタイミングになってしまうことが多い。これは、キ
ャッシュアドレスアレイから得たアドレスタグとキャッ
シュ読出しアドレスとを比較してヒット判定を行うのに
時間がかかるためである。
【0004】ここで、ロード命令(LOAD命令。キャ
ッシュアクセス命令ともいう)のヒット/ミス判定が確
定してから、ロード命令の結果を参照する後続命令の実
行可否の判定を行っていたのでは、該後続命令のオペラ
ンドレディ/ビジーの判定が間に合わず、最速タイミン
グで該後続命令を演算器に投入することができなくな
り、データキャッシュをプロセッサと同一LSIに実装
したことによるロード命令のTAT短縮の効果が薄れて
しまいかねない。
【0005】そこで、ロード命令のキャッシュアクセス
は必ずキャッシュヒットするものと仮定して、ロード命
令の結果を参照する後続命令を仮にオペランドレディと
判定してそのまま演算器に投入し、ロード命令がキャッ
シュミスだった場合には、キャッシュミスによるキャッ
シュフィルの間にロード命令の結果を参照する後続命令
を演算器投入以前の状態に戻し、キャッシュフィルが終
了した時点で遅滞なく該後続命令を演算器に再投入する
と言う技術が、特開平7−319693号公報におい
て、開示されている。
【0006】上述の技術においては、ロード命令は必ず
キャッシュヒットするものと仮定されて後続命令のオペ
ランドレディ判定が行われ、そのまま後続命令が演算器
に投入され、先行するロード命令がキャッシュミスを起
こした場合には後続命令が演算器投入前の状態に戻され
てリトライが行われている。これにより、ロード命令の
TAT短縮の効果を生かすことができる。
【0007】しかし、上述の技術は、リオーダバッファ
やリザベーションステーションといった命令追越し機能
を持たないパイプライン処理装置に対しては有効である
が、命令追越し機能を備えるパイプライン処理装置で
は、次のような問題が生じる。
【0008】すなわち、命令追い越しバッファ中にはロ
ード命令の結果を参照する後続命令が複数存在する可能
性があり、これらの後続命令の全てについて先行ロード
命令のキャッシュミス判定結果によりオペランドビジー
の解消(オペランドレディ)を取り消さねばならない場
合がある。また、ロード命令の後続命令が先行ロード命
令のキャッシュミス判定を待たずに演算器に投入される
場合には、該後続命令の結果を参照するさらに後続の命
令のオペランドビジーを解消させてしまうことがある。
【0009】図10に示す命令列を参照して、この問題
を説明する。
【0010】ここでは、ロード命令のTATを2サイク
ルとし、演算命令のTATを1サイクルとする。
【0011】ロード命令の結果を参照する後続命令
は、時刻T0でロード命令がキャッシュヒットすると仮
定してオペランドレディの判定がなされ、時刻T1には
実行開始が決定される。
【0012】後続命令の実行開始が決定されたことに
より、時刻T1で後続命令がオペランドレディと判定
され、時刻T2で実行開始が決定される。
【0013】さらに、後続命令の実行開始が決定され
たことにより、時刻T2で後続命令がオペランドレデ
ィと判定され、時刻T4で後続命令の実行開始が決定
される。
【0014】ところで、ロード命令の実行においてキャ
ッシュミスが発生すると、時刻T3でキャッシュミスが
報告(通知)される。この時点では、すでにロード命令
と直接的または間接的に依存関係がある後続命令,
,およびがすでにオペランドレディと判定されてい
る。
【0015】このような場合には、これらの全ての後続
命令のオペランドレディ判定を取り消して、キャッシュ
ミスのリカバ処理が終了した時点で後続命令以降の命
令を再実行しなくてはならない。また、オペランドレデ
ィ判定を取り消さなければならない命令は後続命令,
,およびだけとは限らず、ロード命令との依存関係
は解消したものの別の要因で命令追い越しバッファに留
まっている命令もあり得るし、さらに後続命令と依存
関係がある命令は後続命令だけとは限らない。後続命
令およびついても同じことが言えよう。
【0016】前述の従来技術(特開平7−319693
号公報に記載された技術)において解決されているの
は、ロード命令のキャッシュミス後に後続命令のオペ
ランドレディ判定をやり直して再実行することのみであ
り、後続命令以後の間接的に依存関係がある命令やロ
ード命令と直接的な依存関係がある後続命令以外の命
令のオペランドレディ判定の取り消しまでは解決されて
いない。
【0017】このように命令追い越しバッファを備えた
パイプライン処理装置では、先行のロード命令にキャッ
シュミスが発生した場合に、リトライやオペランドビジ
ーの解消の取り消しを行わねばならない後続命令が非常
に多くなり、このための制御が複雑になる。
【0018】さらに、スーパースカラ等で同時に複数の
命令を演算器に投入する場合には、先行のロード命令の
キャッシュミスによる後続命令への影響は飛躍的に大き
くなる。
【0019】このような後続命令のオペランドビジー解
消の取り消しの処理は、従来は、ロード命令のキャッシ
ュミスの影響がある後続命令を特定することが困難であ
ったため、キャッシュミスを発生したロード命令以降の
後続命令の全てを、実行済みか否かにかかわらず命令追
い越しバッファからパージし、再度それらの命令をフェ
ッチし直すということが行われていた。これは、キャッ
シュミスを起こしたロード命令の結果を参照する後続命
令のオペランドビジー/レディ等の演算器投入条件の判
定を最初からやり直すことになるため、制御が比較的簡
単で済むからである。
【0020】
【発明が解決しようとする課題】ただし、昨今の最新M
PUに搭載されるデータキャッシュは、少しでもプロセ
ッサへのデータ供給能力を高めて性能を向上させるため
に、ノン・ブロッキング・キャッシュ(キャッシュミス
によるキャッシュフィル制御中でも後続のキャッシュア
クセスを処理できる機構を備えたキャッシュメモリ)を
採用している。したがって、単一のキャッシュミスが発
生しただけでいちいちキャッシュミスが発生したロード
命令以降の後続命令をフェッチし直していたのでは、ノ
ン・ブロッキング・キャッシュの効果が損なわれてしま
う。
【0021】また、命令追い越しバッファの中には、キ
ャッシュミスの影響がない命令も存在する可能性があ
り、本来これらの命令はキャッシュミスと関係なく演算
器に投入することが可能である。このような命令につい
て、先行ロード命令のキャッシュミス発生時に一律にパ
ージ/再フェッチを行うことなく、そのまま演算器に投
入することができれば、パイプライン処理装置の性能を
向上させることができる。
【0022】本発明の目的は、こうした命令追い越しバ
ッファを使用したパイプライン処理装置において、キャ
ッシュアクセスのTATの短縮を図った場合の、キャッ
シュミスによる後続命令の再実行やオペランドビジー解
消の取り消しによる演算器投入条件の成立の取り消し
を、フェッチ済みの命令をパージして再フェッチを行う
ことなく、容易に行うための機構を提供することにあ
る。
【0023】
【課題を解決するための手段】本発明のパイプライン処
理装置は、アウト・オブ・オーダ制御機能(命令追い越
しバッファ(オペランドの未確定やリソースの競合等の
要因により実行を即座に開始できない命令が実行可能な
状態になるまで保持しておくバッファ)を備えて実行条
件の整わない命令を実行条件の整っている後続命令が追
い越して実行できる機能)を有するパイプライン処理装
置において、1または複数のエントリの各エントリにつ
いて、エントリバリッドフラグ,ディスティネーション
(実行結果を格納するレジスタファイル内の領域の識別
情報),各入力オペランドに対するレディフラグ,およ
び各入力オペランドに対するタグ情報とともに、各エン
トリに情報が登録された命令の結果を各入力オペランド
として参照する後続命令の情報が登録されているエント
リを示す情報である各入力オペランドに対する後続参照
エントリ情報を保持する命令追い越しバッファと、前記
命令追い越しバッファへの命令の新規登録時に、当該命
令と依存関係がある命令の情報を保持するエントリ中の
後続参照エントリ情報にその依存関係を示す情報を登録
するエントリ登録手段と、ロード命令の結果を参照する
全ての後続命令の「オペランドレディ」の判定を該ロー
ド命令のキャッシュヒット/ミス判定を待たずに「キャ
ッシュヒット」を仮定して行うオペランドレディ判定手
段と、ロード命令がキャッシュミスを起こした場合に該
ロード命令と依存関係がある後続命令の全てを検出し
て、前記オペランドレディ判定手段によって行われた該
後続命令のオペランドレディの判定を取り消すオペラン
ドレディ取り消し手段とを有する。
【0024】
【発明の実施の形態】次に、本発明について図面を参照
して詳細に説明する。
【0025】
【実施例】図1は、本発明のパイプライン処理装置の一
実施例の構成を示すブロック図である。本発明の要点
は、パイプライン処理装置の中でも、命令追い越しバッ
ファに関する制御内容にある。したがって、図1には、
主として、命令追い越しバッファ(命令追い越しバッフ
ァ10)に関連する構成要素を記載している。なお、こ
のパイプライン処理装置の全体構成は、図6に示してい
る。
【0026】本実施例のパイプライン処理装置は、複数
(n+1)のエントリを備える命令追い越しバッファ1
0と、エントリ登録手段20と、オペランドレディ判定
手段30と、オペランドレディ取り消し手段40と、D
ステージデータ保持回路50とを含んで構成されてい
る。
【0027】図2は、命令追い越しバッファ10の構成
を詳細に示す図である。命令追い越しバッファ10は、
各エントリに、エントリバリッドフラグ(図2において
は「Vフラグ」で示す)101と、ディスティネーショ
ン(図2においては「DESTINATION」で示
す)102と、該エントリに情報が登録された命令の結
果をYオペランド(第1の入力オペランド)として参照
する後続命令の情報が登録されているエントリ(命令追
い越しバッファ10中のエントリ)を示す情報であるY
オペランド後続参照エントリ情報(図2においては「Y
−op後続参照エントリ情報」で示す)103と、該エ
ントリに情報が登録された命令の結果をZオペランド
(第2の入力オペランド)として参照する後続命令の情
報が登録されているエントリを示す情報であるZオペラ
ンド後続参照エントリ情報(図2においては「Z−op
後続参照エントリ情報」で示す)104と、Yオペラン
ドタグ情報(図2においては「Y−Tag」で示す)1
05と、Yオペランドレディフラグ(図2においては
「Y−rdy」で示す)106と、Zオペランドタグ情
報(図2においては「Z−Tag」で示す)107と、
Zオペランドレディフラグ(図2においては「Z−rd
y」で示す)108とを保持している。
【0028】Y−op後続参照エントリ情報103およ
びZ−op後続参照エントリ情報104は、それぞれ命
令追い越しバッファ10のエントリ数と同じだけのビッ
ト幅を持っている。Y−op後続参照エントリ情報10
3の各ビットは自エントリの命令の演算結果をY−オペ
ランドとして参照する命令のエントリに対応し、Z−o
p後続参照エントリ情報104の各ビットは自エントリ
の命令の演算結果をZ−オペランドとして参照する命令
のエントリに対応する。
【0029】例えば、従来技術の説明で引用した図10
の命令列において、ロード命令の情報がエントリ“0”
に登録されており、後続命令(該ロード命令の後続命
令)の情報がエントリ“5”に登録されており、後続
命令の情報がエントリ“7”に登録されている場合に
は、該ロード命令の情報が登録されているエントリ
“0”のY−op後続参照エントリ情報103のビット
“5”が1(0および1のうちの1)になっており、後
続命令の情報が登録されているエントリ“5”のY−
op後続参照エントリ情報103のビット“7”が1に
なっている。
【0030】図3は、エントリ登録手段20の構成を詳
細に示す図である。エントリ登録手段20は、新規エン
トリ管理部21と、デコーダ22と、各エントリ毎に存
在するコンパレータ23,コンパレータ24,ANDゲ
ート25,ANDゲート26,ORゲート群27,およ
びORゲート群28とを含んで構成されている。ここ
で、コンパレータ23,ANDゲート25,およびOR
ゲート群27はYオペランドに対する構成要素であり、
コンパレータ24,ANDゲート26,およびORゲー
ト群28はZオペランドに対する構成要素である。
【0031】図4は、オペランドレディ判定手段30の
構成を詳細に示す図である。オペランドレディ判定手段
30は、Yオペランドに対して各エントリ毎に存在する
コンパレータ31(一方の入力が演算命令終了タグ信号
であるコンパレータ),コンパレータ32(一方の入力
がロード予測タグ信号であるコンパレータ),ORゲー
ト33,およびANDゲート34と、Zオペランドに対
して各エントリ毎に存在するコンパレータ35(一方の
入力が演算命令終了タグ信号であるコンパレータ),コ
ンパレータ36(一方の入力がロード予測タグ信号であ
るコンパレータ),ORゲート37,およびANDゲー
ト38とを含んで構成されている。
【0032】図5は、オペランドレディ取り消し手段4
0の構成を詳細に示す図である。オペランドレディ取り
消し手段40は、Yオペランド(第1の入力オペラン
ド)に対応するYオペランドレディ取り消し手段41
と、Zオペランド(第2の入力オペランド)に対応する
Zオペランドレディ取り消し手段42とから構成されて
いる。各入力オペランドに対応するオペランドレディ取
り消し手段(ここでは、Yオペランドレディ取り消し手
段41で代表させて説明する)は、デコーダ401およ
び402と、ANDゲート群403および404と、O
Rゲート405および406と、ANDゲート群407
と、ORゲート408と、ANDゲート409と、AN
Dゲート群410,411,および412と、ORゲー
ト群413とを含んで構成されている。
【0033】図6は、先に述べたように、本実施例のパ
イプライン処理装置の全体構成を示すブロック図であ
る。ただし、図1に示すエントリ登録手段20,オペラ
ンドレディ判定手段30,およびオペランドレディ取り
消し手段40や、本パイプライン処理装置を統合的に管
理するパイプライン管理ブロックについては、図全体が
繁雑となるので図6には記載していない。
【0034】ここで、図6に示すパイプライン処理装置
(すなわち、図1に示す本実施例のパイプライン処理装
置)の全体像について簡単に説明を行う。
【0035】命令バッファから読み出された命令は、い
ったんDステージデータ保持回路50に保持され、その
後命令追い越しバッファ10に登録される。
【0036】命令追い越しバッファ10中の命令は、実
行条件の整ったものから、その実行が開始される。この
とき、実行条件の整っていない命令は、後続命令に追い
越されることもある。
【0037】また、命令追い越しバッファ10からの命
令の削除は、該当する命令の実行が開始されたときに行
われるのではなく、該命令と該命令に先行する命令の全
てとが終了したときに行われる。
【0038】実行が開始された命令は、Iステージデー
タ保持回路に送られ、さらにIステージデータ保持回路
によって示されるレジスタファイルのエントリが読み出
されて、その読み出しに基づいてX0ステージデータ保
持回路に送られる。
【0039】X0ステージのデータ(命令)は、演算命
令であれば演算器に投入され、ロード命令等のメモリア
クセス系の命令であればアドレス加算器に投入される。
【0040】ここで、X0ステージのデータがロード命
令であればキャッシュの読み出しデータがレジスタファ
イルに書き込まれ、演算命令であれば演算器の出力結果
がレジスタファイルに書き込まれる。本パイプライン処
理装置では、このような書き込みを実現するために、こ
れらのデータをアドレス加算器や演算器の入力に直接投
入するデータ差し替えパスが備えられている。これによ
り、本パイプライン処理装置は、先行命令の結果を参照
する後続命令へのデータの受け渡しに要するサイクル数
を短縮し、性能向上を図っている。
【0041】図7は、本実施例のパイプライン処理装置
で取り扱われる命令のフォーマットを示す図である。
【0042】この命令は、命令コードを示すOPフィー
ルドと、Xオペランド(演算結果の格納先のオペラン
ド)を示すXフィールドと、Yオペランド(演算の第1
の入力オペランド)を示すYフィールドと、Zオペラン
ド(演算の第2の入力オペランド)を示すZフィールド
とからなる。
【0043】図8および図9は、各入力オペランドに対
するレディフラグ(ここでは、Y−rdy106)の点
灯時のタイミングを説明するための図(タイミングチャ
ート)である。
【0044】次に、このように構成された本実施例のパ
イプライン処理装置の動作(命令追い越しバッファ10
の制御に関する動作を中心とした動作)について説明す
る。
【0045】(1) 第1に、命令追い越しバッファ1
0への新規な命令の情報の登録時の動作について説明す
る。
【0046】まず、エントリ登録手段20は、Vフラグ
(エントリバリッドフラグ)101およびDESTIN
ATION(ディスティネーション)102の登録を次
のようにして行う(図1参照)。
【0047】新規登録エントリ管理部21は、命令バッ
ファ(図6参照)から読み出されてきたDステージデー
タ保持回路50上の命令を登録するエントリ番号を指示
している。
【0048】デコーダ22は、このエントリ番号をデコ
ードして対応するエントリ(命令追い越しバッファ10
中のエントリ)のDESTINATION102に該命
令のXフィールドの値(Xオペランド)を登録し、また
Vフラグ101に該エントリが有効である旨の情報をセ
ットする。ここで、Vフラグ101の内容は、該エント
リが有効なときには1であり、無効なときには0である
ものとする。
【0049】次に、エントリ登録手段20は、以下のよ
うにして、後続参照エントリ情報セット制御処理(ここ
では、Y−op後続参照エントリ情報103への情報の
セットに関する処理について説明する)を行う(図3参
照)。
【0050】命令追い越しバッファ10の各エントリの
DESTINATION102は、該エントリに格納さ
れている命令の結果の書き込み先のレジスタファイルの
エントリ番号を保持している。
【0051】コンパレータ23は、該DESTINAT
ION102内の情報と登録対象の命令のYフィールド
内の情報(Yオペランド)とを比較し、比較結果を出力
する。
【0052】ANDゲート25は、該比較結果とVフラ
グ101(該エントリ内のVフラグ101)の内容との
論理積を示す信号を生成し、この信号をY−op後続参
照エントリ情報103のストローブ信号とする。
【0053】一方、ORゲート群27は、デコーダ22
のデコード結果(新規登録エントリ管理部25の内容
(命令追い越しバッファ10に新規登録される命令の情
報がどのエントリに入るかを示す情報)がデコードされ
た値)とY−op後続参照エントリ情報103の現在値
とのビット毎の論理和を生成する。このようにして生成
された信号が、Y−op後続参照エントリ情報103
(1を示すストローブ信号が与えられているエントリの
Y−op後続参照エントリ情報103)のセットデータ
となる。
【0054】上記により、新規登録エントリ管理部21
の示すエントリ番号の位置に新規登録される命令がすで
に登録済みの命令と依存関係がある場合には、先行命令
(該登録済みの命令)に対するY−op後続参照エント
リ情報103の所定のビット(新規登録される命令の情
報が登録されるエントリに対応するビット)に1がセッ
トされる。
【0055】なお、上記の説明は、Z−op後続参照エ
ントリ情報104のセットに関する処理についてもその
ままあてはまるので、Z−op後続参照エントリ情報1
04のセット制御については説明を省略する。
【0056】(2) 第2に、レディフラグ(図2中の
Y−rdy106およびZ−rdy108)セット制御
処理時の動作について説明する。
【0057】オペランドレディ判定手段30は、次に示
すように、命令追い越しバッファ10の各エントリのY
−rdy106のセットに関する動作を行う(図4参
照)。
【0058】なお、かかる動作の前提として、命令追い
越しバッファ10の各エントリのY−Tag105に
は、該エントリに情報が登録されている命令のY−オペ
ランドTagが登録されている。ここで、Y−オペラン
ドTagとは、その命令とYオペランドについて依存関
係がある先行命令の情報が登録されているエントリ(命
令追い越しバッファ10のエントリ)のエントリ番号が
該当する。
【0059】また、図4中の「実行演算命令タグ信号」
とは、演算器により実行されることが決定した演算命令
の情報が登録されているエントリのエントリ番号を示す
信号である。
【0060】さらに、図4中の「ロード予測タグ信号」
とは、実行開始されてIステージ上に存在するロード命
令の情報が登録されているエントリのエントリ番号を示
す信号である。
【0061】さて、各エントリに対応するコンパレータ
31は、該エントリのY−Tag105の内容と実行演
算命令タグ信号の内容とを比較し、両者が同一であれば
1を出力する。同様に、各エントリに対応するコンパレ
ータ32は、該エントリのY−Tag105の内容とロ
ード予測タグ信号の内容とを比較し、両者が同一であれ
ば1を出力する。
【0062】該エントリに対応するOR回路33は、該
コンパレータ31の出力と該コンパレータ32の出力と
の論理和を生成する。
【0063】さらに、該エントリに対応するAND回路
34は、該論理和と該エントリ内のVフラグ101の内
容との論理積と生成し、その生成信号を該エントリのY
−rdy106へのセット信号(S)とする。
【0064】上記について、図8および図9に示すタイ
ミングチャートにより、さらに説明を加える。
【0065】まず、図8を参照して、先行命令が演算命
令の場合を説明する。
【0066】図8の命令列において、命令の情報は命
令追い越しバッファ10のエントリ“5”に登録されて
おり、命令の情報は命令追い越しバッファ10のエン
トリ“7”に登録されているものとする。
【0067】このとき、命令追い越しバッファ10のエ
ントリ“7”のY−Tag105は、“5”である。
【0068】時刻T0で命令(演算命令)の実行開始
が決定されると、命令のエントリ番号すなわち実行演
算命令タグ信号の内容と命令追い越しバッファ10のエ
ントリ“7”のY−Tag105の内容とが一致するこ
とになる。これにより、時刻T1で、命令追い越しバッ
ファ10のエントリ“7”のY−rdy106が点灯す
る。
【0069】この後、時刻T1で命令(演算命令)の
実行が決定されると、時刻T3で命令がWステージに
到達し、命令がX0ステージに到達している。このと
き、命令の結果をデータ差し替えパスを使用すること
により演算器の入力に投入できる。
【0070】次に、図9を参照して、先行命令がロード
命令の場合を説明する。なお、本発明に関しては、この
場合の動作が特に重要なものとなる。
【0071】図9の命令列において、命令(ロード命
令)の情報は命令追い越しバッファ10のエントリ
“1”に登録されており、命令(演算命令)の情報は
命令追い越しバッファ10のエントリ“5”に登録され
ているものとする。
【0072】時刻T0で、ロード命令である命令がI
ステージに存在すると、該ロード命令のエントリ番号す
なわちロード予測タグ信号の内容と命令追い越しバッフ
ァ10のエントリ“5”のY−Tag105の内容とが
一致することになる。これにより、時刻T1で、命令追
い越しバッファ10のエントリ“5”のY−rdy10
6が点灯する。
【0073】この後、時刻T1で命令の実行が決定さ
れると、時刻T3で該ロード命令(命令)がWステー
ジに到達し、命令がX0ステージに到達している。こ
のとき、該ロード命令の結果をデータ差し替えパスを使
用することにより演算器の入力に投入できる。
【0074】図8および図9では後続命令が演算命令で
ある場合について説明したが、後続命令がロード命令で
あっても同様の動作が行われる。
【0075】なお、上記の説明は、Z−rdy108の
セット制御についてもそのままあてはまるので、Z−r
dy108のセット制御については説明を省略する。
【0076】(3) 第3に、レディフラグリセット制
御処理時の動作について説明する。
【0077】オペランドレディ取り消し手段40内のY
オペランドレディ取り消し手段41は、次に示すよう
に、命令追い越しバッファ10の各エントリのY−rd
y106のリセットに関する動作を行う(図5参照)。
ここで、Zオペランドレディ取り消し手段42の動作も
同様であるので、ここでは、Yオペランドレディ取り消
し手段41の動作によって代表させてオペランドレディ
取り消し手段40の動作を説明する。
【0078】なお、かかる動作の前提として、ロード命
令のキャッシュミスが検出されると、本実施例のパイプ
ライン処理装置を統合的に管理するパイプライン管理ブ
ロック(図示せず)から、キャッシュミスタグ信号,X
0ステージタグ信号,およびIステージタグ信号が、オ
ペランドレディ取り消し手段40に送出される。まず、
これらの信号について説明する。
【0079】ロード命令のキャッシュミスは、図10に
示すように、ロード命令のWステージで検出される。キ
ャッシュミスが検出されると、上記の信号が送出され
る。
【0080】キャッシュミスタグ信号とは、キャッシュ
ミスが発生したロード命令の情報が登録されているエン
トリ(命令追い越しバッファ10中のエントリ)のエン
トリ番号を示す信号である。また、X0ステージタグ信
号およびIステージタグ信号とは、それぞれ、X0ステ
ージに存在する演算命令の情報が登録されているエント
リのエントリ番号およびIステージに存在する演算命令
の情報が登録されているエントリのエントリ番号を示す
信号である。
【0081】さて、オペランドレディ取り消し手段40
内のYオペランドレディ取り消し手段41は、それらの
信号に基づき、命令追い越しバッファ10中のキャッシ
ュミス後続エントリ情報,X0ステージ命令後続参照エ
ントリ情報,およびIステージ命令後続参照エントリ情
報を検出する。
【0082】ここで、キャッシュミス後続エントリ情報
とは、キャッシュミスタグ信号で示されるエントリのY
−op後続参照エントリ情報103が該当する。すなわ
ち、キャッシュミスが発生したロード命令の結果を参照
する命令が格納されているエントリを示す情報が、キャ
ッシュミス後続エントリ情報である。同様に、X0ステ
ージタグ信号およびIステージタグ信号に基づき、X0
ステージ命令後続参照エントリ情報およびIステージ命
令後続参照エントリ情報を得ることができる。
【0083】一方、デコーダ401および402は、X
0ステージタグ信号およびIステージタグ信号をそれぞ
れデコードし、信号aおよび信号bを生成する。
【0084】ANDゲート群403は、対応するビット
毎に、キャッシュミス後続エントリ情報と信号aとの論
理積をとる。また、ORゲート405は、該論理積の全
ビットの論理和を生成する。このORゲート405の出
力が1であるということは、X0ステージ上の命令がキ
ャッシュミスを起こしたロード命令に対して依存関係が
あることを示している。
【0085】同様に、ANDゲート群404は、対応す
るビット毎に、キャッシュミス後続エントリ情報と信号
bとの論理積をとる。また、ORゲート406は、該論
理積の全ビットの論理和を生成する。このORゲート4
06の出力が1であるということは、Iステージ上の命
令がキャッシュミスを起こしたロード命令に対して依存
関係があることを示している。
【0086】ANDゲート群407は、対応するビット
毎に、X0ステージ命令後続参照エントリ情報と信号b
との論理積をとる。また、ORゲート408は、該論理
積の全ビットの論理和を生成する。このORゲート40
8の出力が1であるということは、Iステージ上の命令
がX0ステージ上の命令に対して依存関係があることを
示している。
【0087】さらに、ANDゲート409は、ORゲー
ト405の出力とORゲート408の出力との論理積を
生成する。このANDゲート409の出力が1であると
いうことは、キャッシュミスを起こしたロード命令の結
果をX0ステージ上の命令が参照しており、かつX0ス
テージ上の命令の結果をIステージ上の命令が参照して
いることを示している。すなわち、ANDゲート409
の出力信号は、Iステージ上の命令がキャッシュミスを
発生したロード命令に対して間接的に依存関係があるこ
とを示している。
【0088】上記のように、ORゲート405,ORゲ
ート406,およびANDゲート409により、キャッ
シュミスを発生したロード命令とパイプライン上の後続
命令との依存関係が全て判定されたことになる。
【0089】この依存関係を再度整理すると、次の〜
に示すようになる。
【0090】 ORゲート405の出力は、「キャッ
シュミス発生ロード命令(キャッシュミスを起こしたロ
ード命令)→X0ステージ上命令(X0ステージ上の命
令)」の依存関係の有無を示す。
【0091】 ORゲート406の出力は、「キャッ
シュミス発生ロード命令→Iステージ上命令(Iステー
ジ上の命令)」の依存関係の有無を示す。
【0092】 ANDゲート409の出力は、「キャ
ッシュミス発生ロード命令→X0ステージ上命令→Iス
テージ上命令」の依存関係の有無を示す。
【0093】ここで、オペランドレディの判定を取り消
さなければならない後続命令には、次の〜に示すも
のがある。
【0094】 キャッシュミス発生ロード命令の後続
参照命令
【0095】 「キャッシュミス発生ロード命令→X
0ステージ上命令」の依存関係がある(ORゲート40
5の出力が点灯している)ときのX0ステージ上命令の
後続参照命令
【0096】 「キャッシュミス発生ロード命令→I
ステージ上命令」の依存関係がある(ORゲート406
の出力が点灯している)ときのIステージ上命令の後続
参照命令
【0097】 「キャッシュミス発生ロード命令→X
0ステージ上命令→Iステージ上命令」の依存関係があ
る(ANDゲート409の出力が点灯している)ときの
Iステージ上命令の後続参照命令
【0098】Yオペランドレディ取り消し手段41は、
これらの後続命令のオペランドレディの判定を取り消す
ための指示(Yオペランドレディキャンセル指示)を次
のようにして生成する。
【0099】すなわち、ANDゲート群410は、X0
ステージ命令後続参照エントリ情報の各ビットとORゲ
ート405の出力との論理積を生成する。また、AND
ゲート群411は、Iステージ命令後続参照エントリ情
報の各ビットとORゲート406の出力との論理積を生
成する。さらに、ANDゲート群412は、Iステージ
命令後続参照エントリ情報の各ビットとANDゲート4
09の出力との論理積を生成する。
【0100】ORゲート群413は、対応するビット毎
に、キャッシュミス後続参照エントリ情報とANDゲー
ト群410,411,および412の各出力との論理和
をとり、命令追い越しバッファ10のエントリ数分のビ
ット幅を持つYオペランドレディキャンセル指示を生成
する。
【0101】このORゲート群413の出力(Yオペラ
ンドレディキャンセル指示)の特定のビットが1である
ということは、当該ビットに対応するエントリのYオペ
ランドのオペランドレディの判定を取り消さなければな
らないことを示している。
【0102】このようにして生成されたYオペランドレ
ディキャンセル指示は、図4中のY−rdy106への
リセット信号(R)として命令追い越しバッファ10に
与えられる。これにより、Yオペランドのオペランドレ
ディの判定を取り消すことができる。
【0103】なお、先にも述べたように、上記の説明は
Zオペランドレディ取り消し手段42の動作についても
全く同様にあてはまるので、Zオペランドレディ取り消
し手段42の動作に関する説明については省略する。
【0104】ところで、本実施例のパイプライン処理装
置は、図6に示すようなステージ構成の命令パイプライ
ンを実現するものであるとした。しかし、本発明のパイ
プライン処理装置に適用できる命令パイプラインのステ
ージ数およびステージの名称は図6に示すものに限定さ
れるものではない。
【0105】また、本実施例のパイプライン処理装置で
は、適用対象の命令のフォーマットが図7に示すもので
あるとした。しかし、命令のフォーマットは図7に示す
ものに限定されず、入力オペランドの数は1つまたは3
以上であっても本発明の適用に支障を及ぼすものではな
い(ただし、入力フォーマットの数に対応する数だけ、
レディフラグ,タグ情報,および後続参照エントリ情報
の組み合わせを命令追い越しバッファ10内に設ける必
要がある)。
【0106】
【発明の効果】以上説明したように、本発明によって、
命令追い越しバッファを使用してキャッシュアクセスの
TATの短縮を図るパイプライン処理装置において、ロ
ード命令のキャッシュミスによる後続命令の再実行やオ
ペランドビジーの解除の取り消しによる演算器投入条件
の成立の取り消しを容易に(フェッチ済みの命令をパー
ジして再フェッチするという処理を行うことなく)実現
することができるという効果が生じる。これにより、昨
今のMPU等で行われている「キャッシュメモリとプロ
セッサとの同一LSIへの搭載」や「ノン・ブロッキン
グ・キャッシュの採用」をさらに効果的なものとするこ
とができる。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】図1中の命令追い越しバッファの詳細な構成を
示す図である。
【図3】図1中のエントリ登録手段の詳細な構成を示す
図である。
【図4】図1中のオペランドレディ判定手段の詳細な構
成を示す図である。
【図5】図1中のオペランドレディ取り消し手段の詳細
な構成を示す図である。
【図6】図1に示すパイプライン処理装置の全体構成を
示すブロック図である。
【図7】図1に示すパイプライン処理装置で取り扱われ
る命令のフォーマットを示す図である。
【図8】各入力オペランドに対するレディフラグ点灯時
のタイミングを説明するための図(タイミングチャー
ト)である。
【図9】各入力オペランドに対するレディフラグ点灯時
のタイミングを説明するための図(タイミングチャー
ト)である。
【図10】キャッシュミスを発生したロード命令と依存
関係がある命令列の例を示す図である。
【符号の説明】
10 命令追い越しバッファ 20 エントリ登録手段 21 新規登録エントリ管理部 22 デコーダ 23,24 コンパレータ 25,26 ANDゲート 27,28 ORゲート群 30 オペランドレディ判定手段 31,32,35,36 コンパレータ 33,37 ORゲート 34,38 ANDゲート 40 オペランドレディ取り消し手段 41 Yオペランドレディ取り消し手段 42 Zオペランドレディ取り消し手段 50 Dステージデータ保持回路 101 Vフラグ 102 DESTINATION 103 Y−op後続参照エントリ情報 104 Z−op後続参照エントリ情報 105 Y−Tag 106 Y−rdy 107 Z−Tag 108 Z−rdy 401,402 デコーダ 403,404,407 ANDゲート群 405,406,408 ORゲート 409 ANDゲート 410,411,412 ANDゲート群 413 ORゲート群

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 アウト・オブ・オーダ制御機能を有する
    パイプライン処理装置において、 1または複数のエントリの各エントリについて、エント
    リバリッドフラグ,ディスティネーション,各入力オペ
    ランドに対するレディフラグ,および各入力オペランド
    に対するタグ情報とともに、各エントリに情報が登録さ
    れた命令の結果を各入力オペランドとして参照する後続
    命令の情報が登録されているエントリを示す情報である
    各入力オペランドに対する後続参照エントリ情報を保持
    する命令追い越しバッファと、 前記命令追い越しバッファへの命令の新規登録時に、当
    該命令と依存関係がある命令の情報を保持するエントリ
    中の後続参照エントリ情報にその依存関係を示す情報を
    登録するエントリ登録手段と、 ロード命令の結果を参照する全ての後続命令の「オペラ
    ンドレディ」の判定を該ロード命令のキャッシュヒット
    /ミス判定を待たずに「キャッシュヒット」を仮定して
    行うオペランドレディ判定手段と、 ロード命令がキャッシュミスを起こした場合に該ロード
    命令と依存関係がある後続命令の全てを検出して、前記
    オペランドレディ判定手段によって行われた該後続命令
    のオペランドレディの判定を取り消すオペランドレディ
    取り消し手段とを有することを特徴とするパイプライン
    処理装置。
  2. 【請求項2】 YオペランドおよびZオペランドの2つ
    の入力オペランドを持つフォーマットの命令が取り扱わ
    れるパイプライン処理装置において、 各エントリにVフラグ,DESTINATION,Y−
    op後続参照エントリ情報,Z−op後続参照エントリ
    情報,Y−Tag,Y−rdy,Z−Tag,およびZ
    −rdyを保持する命令追い越しバッファを有すること
    を特徴とする請求項1記載のパイプライン処理装置。
  3. 【請求項3】 Dステージ,Iステージ,X0ステー
    ジ,X1ステージ,およびWステージを有する命令パイ
    プラインが採用されることを特徴とする請求項1または
    請求項2記載のパイプライン処理装置。
JP32913096A 1996-11-25 1996-11-25 パイプライン処理装置 Expired - Fee Related JP2894438B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32913096A JP2894438B2 (ja) 1996-11-25 1996-11-25 パイプライン処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32913096A JP2894438B2 (ja) 1996-11-25 1996-11-25 パイプライン処理装置

Publications (2)

Publication Number Publication Date
JPH10154072A JPH10154072A (ja) 1998-06-09
JP2894438B2 true JP2894438B2 (ja) 1999-05-24

Family

ID=18217966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32913096A Expired - Fee Related JP2894438B2 (ja) 1996-11-25 1996-11-25 パイプライン処理装置

Country Status (1)

Country Link
JP (1) JP2894438B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163265A (ja) 1998-11-30 2000-06-16 Nec Corp 命令発行回路
JP3554211B2 (ja) 1998-12-17 2004-08-18 富士通株式会社 マイクロプログラムを用いた命令制御装置および方法
US10915317B2 (en) * 2017-12-22 2021-02-09 Alibaba Group Holding Limited Multiple-pipeline architecture with special number detection

Also Published As

Publication number Publication date
JPH10154072A (ja) 1998-06-09

Similar Documents

Publication Publication Date Title
JP2597811B2 (ja) データ処理システム
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
US5611063A (en) Method for executing speculative load instructions in high-performance processors
EP0394624B1 (en) Multiple sequence processor system
JP3183837B2 (ja) ロード・キュー及びバイパス・エラーを検出する方法
US8171266B2 (en) Look-ahead load pre-fetch in a processor
JP2005243050A (ja) コンピュータシステム
EP1891519B1 (en) Efficient subprogram return in microprocessors
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US5727177A (en) Reorder buffer circuit accommodating special instructions operating on odd-width results
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
EP1770507A2 (en) Pipeline processing based on RISC architecture
US6829699B2 (en) Rename finish conflict detection and recovery
US5634136A (en) Data processor and method of controlling the same
JP2894438B2 (ja) パイプライン処理装置
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
US7779236B1 (en) Symbolic store-load bypass
EP0443629A2 (en) Effective address pre-calculation type pipelined microprocessor
US7783692B1 (en) Fast flag generation
US20230315446A1 (en) Arithmetic processing apparatus and method for arithmetic processing
JP2814683B2 (ja) 命令処理装置
US6697933B1 (en) Method and apparatus for fast, speculative floating point register renaming
JP2000181715A (ja) 命令制御装置及びその方法
JP2806093B2 (ja) ロード・ストア処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 9

Free format text: PAYMENT UNTIL: 20080305

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090305

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090305

Year of fee payment: 10

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100305

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees