JP2526017B2 - ランタイム遅延削減方法及びデ―タ処理システム - Google Patents

ランタイム遅延削減方法及びデ―タ処理システム

Info

Publication number
JP2526017B2
JP2526017B2 JP5213916A JP21391693A JP2526017B2 JP 2526017 B2 JP2526017 B2 JP 2526017B2 JP 5213916 A JP5213916 A JP 5213916A JP 21391693 A JP21391693 A JP 21391693A JP 2526017 B2 JP2526017 B2 JP 2526017B2
Authority
JP
Japan
Prior art keywords
instruction
conditional branch
queue
sequential
instructions
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 - Lifetime
Application number
JP5213916A
Other languages
English (en)
Other versions
JPH06187151A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06187151A publication Critical patent/JPH06187151A/ja
Application granted granted Critical
Publication of JP2526017B2 publication Critical patent/JP2526017B2/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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に改良されたデー
タ処理システムに関し、特に、条件付き分岐命令実行中
のランタイム遅延の縮小方法及びシステムに関する。更
に詳しくは、本発明はパイプライン式プロセッサ・デー
タ処理システムにおける条件付き分岐命令の不成功予測
から生じる遅延を縮小する方法及びシステムに関する。
【0002】
【従来の技術】最新の優れたデータ処理システムの設計
者は、常にシステムの性能を向上させようと試みてい
る。データ処理システムの効率を向上させる1つの技術
に、ショート・サイクル・タイム及び低サイクル/命令
(CPI:Cycle's-Per-Instruction )率の達成があ
る。これらの技術を高性能データ処理システムに応用し
た例に、IBMのRISC System/6000(RS/6000)コンピ
ュータがある。RS/6000システムは、算術的に集中的な
工学的及び科学的アプリケーション、並びにマルチ・ユ
ーザによる市場環境において、良好に機能するように設
計されている。RS/6000プロセッサはマルチスカラを使
用しており、ここでは複数の命令が同時に発行され、且
つ実行される。
【0003】複数命令の同時発行及び実行は、高い命令
バンド幅で同時に実行可能な独立な機能ユニットを必要
とする。RS/6000 システムは、パイプライン化された別
々の分岐ユニット、固定小数点ユニット、及び浮動小数
点処理ユニットを使用することにより、これを達成す
る。こうしたシステムにおいては、条件付き分岐命令の
実行により、重大なパイプライン遅延のペナルティが発
生する可能性がある。条件付き分岐命令は、1つ或いは
複数の命令の処理の選択された結果に応答して、アプリ
ケーション内において指定される条件分岐を実行するよ
うに指示する命令である。従って、条件付き分岐命令が
パイプライン・キューを介して、キュー内における実行
位置に伝播する時間を用いて、条件分岐を解析する以前
に、キュー内の条件付き分岐命令の後に命令をロードし
て、ランタイム遅延を回避することが必要となる。
【0004】パイプライン式プロセッサ・システムにお
いて、ランタイム遅延を最小化する1つの試みに、代替
命令キューの使用がある。主命令キュー内における条件
付き分岐命令の検出に基づき、キュー内の条件付き分岐
命令に続く順次命令が即座に消去され、代替命令キュー
にロードされる。予測される条件分岐に対応するターゲ
ット命令が次にフェッチされて、主命令キューにロード
される。予測される条件分岐が発生しない場合には、順
次命令が代替命令キューからフェッチされて、主命令キ
ュー内にロードされる。この方法はランタイム遅延を最
小化するが、代替命令キューの提供、並びにハードウェ
ア資産の増加を必要とする。
【0005】パイプライン式プロセッサ・システムにお
けるランタイムの最小化の別の試みに、コンパイラを使
用して条件付き分岐命令と、条件分岐を開始させる結果
を生成する命令の間の大量の命令を、キューに挿入する
方法がある。この方法は、条件付き分岐命令の実行以前
に、すなわち条件分岐を開始させる結果を生成する命令
の実行と、条件付き分岐命令の実行の間の遅延の間に、
条件分岐を解析し、適切なターゲット命令或いは順次命
令を命令キューに配置しようとする。理論的には、この
方法は代替命令キューの提供を要さずに、ランタイム遅
延を最小化するが、現実的には、必要な遅延を達成する
ために、相当数の命令をキューに挿入することは困難で
ある。
【0006】従って、パイプライン式プロセッサにおい
て、代替命令キューの提供を必要とせずに、条件付き分
岐命令の不成功予測の結果生ずる遅延を最小化する方法
及びシステムが必要とされる。
【0007】
【発明が解決しようとする課題】従って本発明の目的
は、改良されたデータ処理システムを提供することであ
る。
【0008】本発明の別の目的は、データ処理システム
における条件付き分岐命令におけるランタイム遅延を縮
小する、改良された方法及びシステムを提供することで
ある。
【0009】更に本発明の別の目的は、パイプライン式
プロセッサ・データ処理システムにおける条件付き分岐
命令の不成功予測の結果生ずる遅延を縮小する、改良さ
れた方法及びシステムを提供することである。
【0010】
【課題を解決するための手段】上述の目的が以下に示す
説明により達成される。本発明の方法及びシステムは、
パイプライン式プロセッサ・システムにおける条件付き
分岐命令の実行の間のランタイム遅延を縮小するために
使用される。キューに配置される一連の順次命令並びに
条件付き分岐命令が処理され、各条件付き分岐命令は1
つ或いは複数の順次命令の処理の選択された結果に応答
して、とるべき関連する条件分岐を指定する。キュー内
における条件付き分岐命令の検出の際には、ターゲット
命令のグループがフェッチされる。このフェッチは、関
連する条件分岐が発生するという予測にもとづき実行さ
れる。ターゲット命令の検索(リトリーブ)が成功した
場合に限り、条件付き分岐命令に続くキュー内の順次命
令が次に消去され、ターゲット命令がキューにロードさ
れる。ここでターゲット命令の検索以前に、条件分岐が
発生するとの予測が無効であることが判明すると、順次
命令は遅延を伴わずに処理される。また、ターゲット命
令のロードの後に、条件分岐が発生するとの予測が無効
であることが判明すると、消去された順次命令がターゲ
ット命令のロードの後に再フェッチされ、順次命令が最
小の遅延により実行される。別の実施例では、ターゲッ
ト命令の検索が成功し、且つ条件付き分岐命令の実行が
差し迫っている場合に限り、条件付き分岐命令に続くキ
ュー内の順次命令が消去される。
【0011】本発明の上述の目的、機能並びに利点が、
以下に示される説明により明らかにされる。
【0012】
【実施例】図1を参照すると、本発明の方法及びシステ
ムを実施するために使用されるマルチスカラ・コンピュ
ータ・システム10のブロック図が示される。コンピュ
ータ・システム10は、好適にはデータ、命令などを記
憶するためのメモリ18を含む。メモリ18に記憶され
るデータ或いは命令は、好適にはキャッシュ/メモリ・
インタフェース20を使用して、周知の方法でアクセス
される。キャッシュ・メモリ・システムのサイズ及び利
用は、データ処理技術においては周知であるので、本出
願では触れないことにする。しかしながら、当業者にお
いては、昨今の連想キャッシュ技術の使用により、メモ
リ・アクセスの大部分がキャッシュ/メモリ・インタフ
ェース20に一時的に記憶されるデータを使用して達成
されることを理解されよう。
【0013】キャッシュ・メモリ・インタフェース20
からの命令は、典型的には命令キュー22にロードされ
る。命令キュー22は、好適には複数のキュー・ポジシ
ョンを含む。マルチスカラ・コンピュータ・システムの
典型的な実施例では、命令キューは8個のキュー・ポジ
ションを含み、任意のサイクルにおいて、ゼロから8個
の命令が命令キュー22にロードされる。これらは、キ
ャッシュ・メモリ・インタフェース20により渡される
有効な命令数、並びに命令キュー22内における使用可
能な空間に依存する。
【0014】こうしたマルチスカラ・コンピュータ・シ
ステムにおいて、命令キュー22は、典型的には、命令
を複数の実行ユニットに配布するために使用される。図
1に示されるように、コンピュータ・システム10は浮
動小数点プロセッサ・ユニット24、固定小数点プロセ
ッサ・ユニット26、及び分岐プロセッサ・ユニット2
8を含む。これにより命令キュー22は、単一のサイク
ルの間に、0乃至3個の命令、すなわち各実行ユニット
に対して1個の命令を配布する。
【0015】命令キュー22から配布される順次命令に
加え、いわゆる"条件付き分岐命令"が分岐プロセッサに
よる実行用に命令キュー22にロードされる。条件付き
分岐命令は、1個或いは複数の順次命令の選択された処
理結果に応答して、アプリケーション内で関連して発生
する条件分岐を指定する命令である。コンピュータ・シ
ステム10などのパイプライン式プロセッサ・システム
におけるランタイム遅延を最小化するために、命令キュ
ー内における条件付き分岐命令の存在が検出され、条件
分岐の結果が予測される。当業者には明らかなように、
条件分岐が "発生しない" と予測されると、命令内の順
次命令が現行パスに沿って単に継続され、命令は変更さ
れない。しかしながら、分岐の発生に関する予測が正し
くない場合(すなわち条件分岐が発生する場合)には、
条件付き分岐命令にプログラム順序に従い続く、命令キ
ュー内の順次命令は消去されなければならず、代わりに
ターゲット命令がフェッチされなければならない。また
条件分岐が"発生する"と予測される場合には、ターゲッ
ト命令がフェッチされ、予測が正しいと解析される場合
には、条件分岐に続いて使用される。もちろん"発生す
る"という予測が正しくない場合には、ターゲット命令
は消去されなければならず、条件付き分岐命令にプログ
ラム順序に従い続く順次命令が検索されねばならない。
【0016】図示のように、コンピュータ・システム1
0はまた、好適には条件レジスタ32を含む。条件レジ
スタ32は、コンピュータ・システム10内で処理され
る順次命令の結果を使用して発生する様々な比較結果
を、一時的に記憶するために使用される。従って、浮動
小数点プロセッサ・ユニット24、固定小数点プロセッ
サ・ユニット26及び分岐プロセッサ・ユニット28
は、全て条件レジスタ32に結合される。ターゲット・
アドレスを生成するために、条件レジスタ32内の特定
の条件のステータスが検出され、分岐プロセッサ28に
結合される。分岐を開始する条件の発生に応答して、次
にターゲット・アドレスがターゲット命令をフェッチす
るために使用される。
【0017】その後、分岐プロセッサ・ユニット28が
ターゲット・アドレスをフェッチャ30に結合する。フ
ェッチャ30は条件分岐に続くターゲット命令のフェッ
チ・アドレスを計算し、これらのフェッチ・アドレスを
キャッシュ/メモリ・インタフェース20に結合する。
当業者には理解されるように、これらのフェッチ・アド
レスに関連するターゲット命令が、キャッシュ/メモリ
・インタフェース20内に存在する場合、これらのター
ゲット命令が命令キュー22にロードされる。また、タ
ーゲット命令がメモリ18からフェッチされて、これら
のフェッチに必要な遅延の後、ターゲット命令がキャッ
シュ/メモリ・インタフェース20から命令キュー22
にロードされることもある。
【0018】代替命令キューを使用する従来のデータ処
理システムにおける命令キュー内容の操作が、図2に示
される表36に表される。図2、図3、図5及び図7
は、各々、7連続サイクル・タイムを通じての、命令キ
ューのデータ内容の操作を表す。図2を参照すると、サ
イクル・タイム1において、命令キューは条件付き分岐
命令(bc)、比較命令(cmp)及び4個の論理演算
装置命令(alu)を含む。従来の命令キューであるキ
ュー3内の条件付き分岐命令の検出に基づいて、キュー
内の順次命令が代替命令キュー(図示せず)にロードさ
れる。その後、条件分岐に関連するターゲット命令に対
する要求が、サイクル2で開始され、これらの命令がサ
イクル3で命令キューにロードされる。これらの命令
は、条件付き分岐命令に関連する条件分岐が"発生する"
という予測にもとづく。
【0019】その後、サイクル4において、比較(cm
p)命令が命令キュー内の実行位置に伝播され、条件付
き分岐命令が"解析"される。条件付き分岐命令の解析の
結果、条件分岐が"発生しない"ことが示される場合、以
前に代替命令キューにロードされた順次命令が、サイク
ル5で示されるように、再度、主命令キューにロードさ
れる。図2の命令キュー内のサイクル6及び7は、その
後の順次命令の処理を示す。図から分かるように、条件
付き分岐命令の誤り予測に続いて、命令キュー内に単一
のエンプティ・サイクルのみが存在する。しかしなが
ら、上述のように、この従来技術は代替命令キューを必
要とする。
【0020】図3を参照すると、本発明の第1の実施例
の方法並びにシステムによる、命令キューのデータ内容
の操作を表す表が示される。表38に示される命令キュ
ーは、条件付き分岐命令(bc)、比較命令(cmp)
及び4個の論理演算装置命令(alu)で開始される。
サイクル1における条件付き分岐命令の検出において、
条件付き分岐命令に関連する条件分岐に対応するターゲ
ット命令の要求が、サイクル2で生成される。条件分岐
が"発生しない"場合に継続する順次命令が、サイクル2
で命令キュー内に保持される。その後、サイクル3でタ
ーゲット命令が検索され、命令キューに転送される。こ
の時点で、順次命令が命令キューから消去される。条件
分岐が"発生する"という予測の直後に、命令キュー内に
含まれる順次命令を消去しないことにより、ターゲット
命令の検索以前に、比較命令の反対の解析結果が生じる
場合、命令キュー内の順次命令が依然として存在してお
り、遅延を伴わずに実行される。
【0021】その後、サイクル4で、追加のターゲット
命令が命令キューにロードされ、比較命令が命令キュー
内の実行位置に伝播される。比較命令が条件分岐が "発
生する" との予測が誤りであることを示すと、順次命令
のフェッチがサイクル5で開始される。その後、サイク
ル6で、処理を継続するために必要な順次命令が命令キ
ューにロードされ、サイクル7で順次命令の実行が開始
される。このように、図3の表38から明らかなよう
に、条件付き分岐命令の誤り予測の場合には、比較命令
に続いて、命令キュー内で2個の空白サイクルが発生す
る。
【0022】図4を参照すると、本発明の方法並びにシ
ステムによる、図3に示される命令キュー内容の操作の
論理流れ図が示される。処理はブロック60で開始さ
れ、その後ブロック62に移行する。ブロック62で
は、命令キュー内で条件付き分岐命令に遭遇するかどう
かが判断される。遭遇しない場合、処理は単に条件付き
分岐命令に遭遇するまで繰返される。次に、処理はブロ
ック64に移行する。ブロック64は、条件付き分岐命
令により分岐が"発生する"かどうかの予測を示す。発生
しないと予測する場合、処理はブロック66に移行して
復帰する。上述のように、当業者においては、論理流れ
図におけるこの状態が、命令キュー内の順次命令の処理
を継続することを示すことが理解されよう。
【0023】ブロック64を再度参照すると、条件付き
分岐命令に関連する条件分岐が "発生する" と予測され
る場合には、処理はブロック68に移行する。ブロック
68では、ターゲット命令がフェッチされるが、命令キ
ュー内の順次命令はこの時点では消去されない。その
後、処理はブロック70に移行する。ブロック70で
は、分岐予測が解析済みであるかを判断する。解析済み
の場合、処理はブロック72に移行し、ここで予測され
た解析が正しいかどうかが判断される。正しい場合、処
理はブロック74に移行し、ここで順次パスが消去さ
れ、予測された分岐に関連するターゲット・パスに沿っ
て、処理が継続される。次に処理はブロック76に移行
して、復帰される。
【0024】ブロック72を再度参照すると、予測され
た解析が正しくない場合、処理はブロック78に移行す
る。ブロック78では、ターゲット命令が無視され、順
次パスに沿って処理が継続される。当業者には理解され
るように、予測の発生において、命令キューから順次命
令を消去しないことにより、他の命令の検索以前に分岐
予測が正しくないことが解析される場合、ブロック78
に示されるように、命令キュー内の順次命令が遅延を伴
わずに処理される。その後、処理はブロック76に移行
して、復帰する。
【0025】ブロック70を再度参照すると、分岐予測
が解析されていない場合、処理はブロック80に移行す
る。ブロック80では、ターゲット命令が検索されたか
どうかを判断する。検索されていない場合、処理は70
に戻り、再び分岐予測が解析済みであるかを判断する。
このように、ターゲット命令の検索以前に、分岐予測が
正しくないと解析されると、処理遅延を招くことなく、
命令キュー内の順次命令が継続して実行される。
【0026】ブロック80を再度参照すると、ターゲッ
ト命令が検索されると、処理はブロック82に移行す
る。ブロック82では、命令キュー内の順次命令を消去
し、ターゲット命令をロードする。その後、処理はブロ
ック84に移行する。ブロック84では、分岐予測が解
析済みであるかを判断し、解析されていない場合には、
処理は分岐予測が解析されるまで単に繰返される。再度
ブロック84を参照すると、条件付き分岐命令の実行以
前に、命令キュー内に配置される比較命令の実行によ
り、分岐予測が解析されると、処理はブロック86に移
行する。ブロック86では、予測解析が正しいかどうか
が判断される。ブロック86で予測解析が正しくないと
判断されると、処理はブロック88に移行し、ターゲッ
ト命令が消去され、以前のシーケンスにおいて処理を継
続するために必要な順次命令を再フェッチする。その
後、処理はブロック90に移行して、復帰する。ブロッ
ク86に戻り、分岐予測の解析が正しい場合、処理はブ
ロック90に戻り、復帰する。
【0027】図5を参照すると、本発明の第2の実施例
の方法並びにシステムによる、命令キュー内容の操作が
示される。表40はサイクル1において、命令キュー内
に条件付き分岐命令(bc)、比較命令(cmp)、及
び4個の論理演算装置命令(alu)を含む。その後、
サイクル1における条件付き分岐命令の検出に応答し
て、条件分岐に続くターゲット命令がキャッシュから要
求される。表40内のサイクル3において、ターゲット
命令が命令キューに受信されるが、命令キュー内の順次
命令の消去はサイクル4まで遅延される。サイクル4に
おいて、比較命令がデコード位置から実行位置に移さ
れ、この時、ターゲット命令T0−T3が命令キュー内
にロードされる。
【0028】本発明のこの実施例では、ターゲット命令
は検索されるが、命令キューにはロードされず、順次命
令は条件付き分岐命令に続く最初の固定小数点命令の実
行が差し迫るまで消去されない。すなわち、図示のよう
にサイクル3及びサイクル4で実行される、比較命令の
デコード位置から実行位置への移動までである。
【0029】サイクル4における比較命令の実行におい
て、条件分岐予測が正しくないと解析されると、サイク
ル5で順次命令がフェッチされ、サイクル6で命令キュ
ーにロードされる。図示のように、これらの順次命令は
サイクル7でその実行が開始され、条件分岐の誤り予測
に続いて、比較命令から順次命令の実行開始までの間に
2サイクルの遅延が生じる。
【0030】図6を参照すると、図5に示される本発明
の方法並びにシステムによる命令キュー内容の操作を表
す論理流れ図が示される。図6は実質的に図4と同一で
あり、ブロック100で開始される。その後、処理はブ
ロック102に移行し、ここで命令キュー内の条件付き
分岐命令が検出される。条件付き分岐命令が検出されな
い場合、処理は条件付き分岐命令が検出されるまで単に
繰返される。その後、前述のように、処理はブロック1
04に移行し、条件分岐が"発生する"かどうかの予測を
行う。発生しないと予測される場合、処理は単にブロッ
ク106に移行して、復帰する。
【0031】ブロック104を再度参照すると、条件分
岐が"発生する"と予測されると、処理はブロック108
に移行する。ブロック108では、ターゲット命令をフ
ェッチするが、命令キュー内の順次命令はこの時点では
消去されない。
【0032】その後、図4で述べたように、処理はブロ
ック110に移行し、分岐予測が解析済みであるかを判
断する。分岐予測が解析済みの場合、処理はブロック1
12に移行する。ブロック112では、解析の結果、予
測が正しいことが示されたかを判断し、もしそうであれ
ば、処理はブロック114に移行する。ブロック114
では順次パスを消去し、ターゲット・パスに沿って処理
を継続する。その後、処理はブロック116に移行して
復帰する。ブロック112を再度参照すると、解析の結
果、予測が正しくないことが示される場合、処理はブロ
ック118に移行する。ブロック118ではターゲット
命令を無視し、順次パスに沿って処理を継続する。上述
のように、ターゲット命令の検索以前に、分岐予測が正
しくないことが解析されると、ブロック118は遅延を
伴わずに順次命令の処理を継続する。
【0033】ブロック110を再度参照すると、分岐予
測が依然として解析されていない場合、処理はブロック
120に移行する。ブロック120では、ターゲット命
令が命令キューに受信されたかどうかを判断し、受信さ
れていない場合には、処理はブロック110に戻り、処
理を繰返す。このようにターゲット命令の検索以前の任
意の時点において、予測が正しくないことを示す分岐予
測解析により、命令キュー内の順次命令が遅延を伴わず
に実行される。
【0034】ブロック120を再度参照すると、ターゲ
ット命令が検索されると、処理はブロック122に移行
する。ブロック122では、条件付き分岐命令の実行が
差し迫っているかを判断する。条件付き分岐命令の実行
が差し迫っていない場合、条件付き分岐命令の実行が切
迫するまで処理は繰返される。その後、処理はブロック
124に移行する。ブロック124では順次命令を消去
し、ターゲット命令を命令キューにロードする。その
後、処理はブロック126に移行する。
【0035】ブロック126では、分岐予測がこの時点
で解析済みであるかを判断し、そうでない場合には、処
理は分岐予測が解析されるまで単に繰返される。ブロッ
ク126において、分岐予測が解析されると、処理はブ
ロック128に移行する。ブロック128では、分岐予
測が正しいかが判断され、正しくない場合には、処理は
ブロック130に移行する。ブロック130では、命令
キューからターゲット命令が消去され、処理を継続する
ために必要な順次命令が再フェッチされる。その後或い
は分岐予測が正しいとの判断により、処理はブロック1
32に移行して復帰する。
【0036】図7を参照すると、本発明の第3の実施例
による命令キュー内容の操作を示す表42が表される。
上述のように、表42は、命令キュー内に分岐命令(b
c)、比較命令(cmp)、及び4個の論理演算装置命
令(alu)を含む初期状態を示している。サイクル1
において、条件付き分岐命令が検出され、予測される条
件分岐に沿って処理を継続するために必要なターゲット
命令が、サイクル2でフェッチされる。サイクル3で
は、ターゲット命令が既にフェッチされており、このタ
ーゲット命令の検索が成功した場合に限り、順次命令が
命令キューから消去される。ターゲット命令T0−T2
はサイクル3で命令キューにロードされるように表され
ている。加えて、本発明のこの実施例の方法並びにシス
テムによれば、命令キューから消去された順次命令の再
フェッチが、サイクル3で開始される。その後、命令キ
ュー内のターゲット命令がサイクル4まで命令キュー内
を伝播し、サイクル4において比較命令が実行位置に到
達する。
【0037】比較命令(cmp)が分岐予測が正しくな
いことを示すと、再フェッチされた順次命令がサイクル
5で命令キューにロードされる。その後、表42のサイ
クル6に示されるように、順次命令の実行が開始され
る。予測される条件分岐を処理するために必要なターゲ
ット命令の検索において、命令キュー内の順次命令を消
去し、且つそれら順次命令を即座に再フェッチすること
により、条件分岐の誤り予測の影響が、命令キュー内に
おいて、単一の空白サイクルに減少される。この結果
は、図2に示される代替命令キューを必要とするシステ
ムの場合と同じである。従って、当業者においては、図
7を参照することにより、本発明の方法並びにシステム
が、図示のように、命令キュー内のデータを操作するこ
とにより、条件付き分岐命令の誤り予測に関連するラン
タイム遅延を最小化することを理解されよう。
【0038】最後に図8を参照すると、図7に示される
本発明の方法並びにシステムによる、命令キュー内容の
操作を示す論理流れ図が表される。上述のように、これ
は実質的に図4及び図6に示されるものと類似である。
処理はブロック150で開始され、その後、ブロック1
52に移行する。ブロック152では、条件付き分岐命
令が検出されたかどうかを判断し、検出されない場合
は、処理は条件付き分岐命令が検出されるまで、単に処
理を繰返す。条件付き分岐命令が検出されると、処理は
ブロック154に移行する。ブロック154では、条件
分岐が"発生する"との予測が生成されたかどうかを判断
する。条件分岐が"発生する"との予測が生成されない場
合、処理はブロック156に移行して復帰する。ブロッ
ク154を再度参照すると、条件分岐が"発生する"との
予測が生成される場合、処理はブロック158に移行す
る。
【0039】ブロック158では、予測される条件分岐
に沿って処理を継続するのに必要なターゲット命令をフ
ェッチするが、この時点では、命令キュー内の順次命令
は消去されない。次に処理はブロック160に移行す
る。ブロック160では、分岐予測が解析済みであるか
が判断される。解析済みであれば、処理はブロック16
2に移行し、解析の結果、予測が正しいことが示される
かを判断する。正しい場合、処理はブロック164に移
行し、ここで順次パスが消去され、ターゲット・パスに
沿って処理が継続される。処理は次にブロック166に
移行して、復帰する。ブロック162を再度参照する
と、解析の結果、予測が正しくないことが示されると、
処理はブロック168に移行し、ここでターゲット命令
は無視され、処理は順次パスに沿って継続される。上述
のように、ここの部分の処理は、命令キューからの順次
命令の消去を遅延することにより、ターゲット命令の検
索以前に、その予測が誤りであることが解析される条件
付き分岐命令に続く命令キュー内の順次命令を、遅延を
伴わずに実行することを可能とする。
【0040】ブロック160を再度参照すると、分岐予
測が依然として解析されていない場合、処理は170に
移行する。ブロック170はターゲット命令が検索され
たかを判断する。検索されていない場合、処理はブロッ
ク160に戻り、再度、分岐予測が正しくないと解析さ
れると、命令キュー内の順次命令が遅延を伴わずに実行
される。ブロック170を再び参照すると、ターゲット
命令の検索が成功すると、処理はブロック172に移行
する。ブロック172では、命令キュー内の順次命令が
消去され、命令キュー内にターゲット命令がロードされ
る。ブロック172ではまた、順次命令の再フェッチが
即時実行される。
【0041】次に処理はブロック174に移行する。ブ
ロック174では、分岐予測が解析済みであるかが判断
され、そうでない場合には、処理は分岐予測が解析され
るまで単に繰返される。分岐予測が解析済みである場合
は、処理はブロック176に移行する。ブロック176
では、解析の結果、予測が正しいことが示されたかを判
断する。正しくない場合、処理はブロック178に移行
して、ターゲット命令が消去され、ブロック172にお
いて再フェッチされた順次命令が再ロードされる。その
後、処理はブロック180に移行して復帰する。ブロッ
ク176を再度参照すると、解析の結果、予測が正しい
ことが示されると、処理はブロック182に移行する。
ブロック182では、ターゲット・パスに沿って処理が
継続され、ブロック172で再フェッチされた順次命令
が無視される。処理は次にブロック180に移行して復
帰する。
【0042】上述の説明から、当業者においては、本出
願においてパイプライン式プロセッサにおける条件付き
分岐命令の分岐"発生"予測に関し、代替命令キューを要
さずに、誤った予測に対する最小の遅延ペナルティを維
持可能な方法及びシステムが提供されることが理解でき
よう。本説明において述べられたように、誤り予測は一
般的に極めてその確率が低く、また条件付き分岐命令と
分岐を開始する比較命令との間に論理演算装置命令を配
置することにより、完全に排除することも可能である。
本説明においては、条件付き分岐命令が比較命令の直後
に続く場合が、明らかに最悪のケースとなる。
【0043】
【発明の効果】以上説明したように、本発明によれば、
パイプライン式プロセッサ・システムにおける条件付き
分岐命令の実行における、ランタイム遅延の縮小方法及
びシステムが提供される。
【図面の簡単な説明】
【図1】本発明の方法及びシステムを実施するために使
用されるマルチスカラ・コンピュータ・システムのブロ
ック図である。
【図2】代替命令キューを使用する従来のデータ処理シ
ステムにおける命令キュー内容の操作を表す表である。
【図3】本発明の第1の実施例の方法及びシステムによ
る命令キュー内容の操作を表す表である。
【図4】本発明の方法及びシステムによる図3に示され
る命令キュー内容の操作を表す論理流れ図である。
【図5】本発明の第2の実施例の方法及びシステムによ
る命令キュー内容の操作を表す表である。
【図6】本発明の方法及びシステムによる図5に示され
る命令キュー内容の操作を表す論理流れ図である。
【図7】本発明の第3の実施例の方法及びシステムによ
る命令キュー内容の操作を表す表である。
【図8】本発明の方法及びシステムによる図7に示され
る命令キュー内容の操作を表す論理流れ図である。
【符号の説明】 10 マルチスカラ・コンピュータ・システム 18 メモリ 20 キャッシュ/メモリ・インタフェース 22 命令キュー 24 浮動小数点プロセッサ・ユニット 26 固定小数点プロセッサ・ユニット 28 分岐プロセッサ・ユニット 30 フェッチャ 32 条件レジスタ 36、38、40、42 表
フロントページの続き (72)発明者 テレンス・エム・ポッター アメリカ合衆国78731、テキサス州オー スティン、ツイン・レッジ・コーブ 6107 (72)発明者 スティーブン・ダブリュ・ホワイト アメリカ合衆国78750、テキサス州オー スティン、ウエスターカーク・ドライブ 9104 (56)参考文献 特開 平3−31933(JP,A)

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】一連の順次命令と、前記順次命令の選択さ
    れた処理結果に応答して生ずる条件分岐を指定する条件
    付き分岐命令とを含む、データ処理システム内に記憶さ
    れた命令のパイプライン処理におけるランタイム遅延を
    削減する方法であって、 前記データ処理システムのキュー内において、一連の順
    次命令内の条件付き分岐命令を検出するステップと、 前記検出された条件付き分岐命令に関連する条件分岐が
    発生するとの予測に基づき、ターゲット命令をフェッチ
    するステップと、 前記ターゲット命令のリトリーブ完了に応答して、前記
    キュー内において、前記条件付き分岐命令に続く、順次
    命令のうち選択されたシーケンスを消去するステップと を含み、 前記ターゲット命令のリトリーブ完了前に前記予測の誤
    りが判明した場合には、前記順次命令のうち選択された
    シーケンスを遅延なしで実行可能とすることを特徴とす
    るランタイム遅延削減方法。
  2. 【請求項2】一連の順次命令と、前記順次命令の選択さ
    れた処理結果に応答して生ずる条件分岐を指定する条件
    付き分岐命令とを含む、データ処理システム内に記憶さ
    れた命令のパイプライン処理におけるランタイム遅延を
    削減する方法であって、 前記データ処理システムのキュー内において、一連の順
    次命令内の条件付き分岐命令を検出するステップと、 前記検出された条件付き分岐命令に関連する条件分岐が
    発生するとの予測に基づき、ターゲット命令をフェッチ
    するステップと、 前記ターゲット命令がリトリーブ完了し且つ前記条件付
    き分岐命令に続く最初の固定小数点命令の実行が差し迫
    った状態に応答して、前記キュー内において、前記条件
    付き分岐命令に続く、順次命令のうち選択されたシーケ
    ンスを消去するステップと を含み、 前記条件付き分岐命令の実行前に前記予測の誤りが判明
    した場合には、前記順次命令のうち選択されたシーケン
    スを遅延なしで実行可能とすることを特徴とするランタ
    イム遅延削減方法。
  3. 【請求項3】前記順次命令のうち選択されたシーケンス
    の消去処理の後に、前記キューに前記ターゲット命令を
    ロードするステップをさらに含む請求項1又は2記載の
    ランタイム遅延削減方法。
  4. 【請求項4】前記ターゲット命令の前記キューへのロー
    ドに続く前記予測の誤りの判明に応答して、前記ターゲ
    ット命令を消去するステップをさらに含む請求項3記載
    のランタイム遅延削減方法。
  5. 【請求項5】前記ターゲット命令の前記キューへのロー
    ドの後に、前記順次命令のうち選択されたシーケンスを
    再フェッチするステップをさらに含み、 前記ターゲット命令の前記キューへのロードに続く前記
    予測の誤りの判明に応答して、前記順次命令のうち選択
    されたシーケンスを最小の遅延にて実行可能とすること
    を特徴とする、請求項3記載のランタイム遅延削減方
    法。
  6. 【請求項6】一連の順次命令と、前記順次命令の選択さ
    れた処理結果に応答して生ずる条件分岐を指定する条件
    付き分岐命令とを含む命令のパイプライン処理における
    ランタイム遅延を削減するデータ処理システムであっ
    て、 前記データ処理システムのキュー内において、一連の順
    次命令内の条件付き分岐命令を検出する手段と、 前記検出された条件付き分岐命令に関連する条件分岐が
    発生するとの予測に基づき、ターゲット命令をフェッチ
    する手段と、 前記ターゲット命令のリトリーブ完了に応答して、前記
    キュー内において、前記条件付き分岐命令に続く、順次
    命令のうち選択されたシーケンスを消去する手段と を有し、 前記ターゲット命令のリトリーブ完了前に前記予測の誤
    りが判明した場合には、前記順次命令のうち選択された
    シーケンスを遅延なしで実行可能とすることを特徴とす
    るデータ処理システム。
  7. 【請求項7】一連の順次命令と、前記順次命令の選択さ
    れた処理結果に応答して生ずる条件分岐を指定する条件
    付き分岐命令とを含む命令のパイプライン処理における
    ランタイム遅延を削減するデータ処理システムであっ
    て、 前記データ処理システムのキュー内において、一連の順
    次命令内の条件付き分岐命令を検出する手段と、 前記検出された条件付き分岐命令に関連する条件分岐が
    発生するとの予測に基づき、ターゲット命令をフェッチ
    する手段と、 前記ターゲット命令がリトリーブ完了し且つ前記条件付
    き分岐命令に続く最初の固定小数点命令の実行が差し迫
    った状態に応答して、前記キュー内において、前記条件
    付き分岐命令に続く、順次命令のうち選択されたシーケ
    ンスを消去する手段と を有し、 前記条件付き分岐命令の実行前に前記予測の誤りが判明
    した場合には、前記順次命令のうち選択されたシーケン
    スを遅延なしで実行可能とすることを特徴とするデータ
    処理システム。
  8. 【請求項8】前記順次命令のうち選択されたシーケンス
    の消去処理の後に、前記キューに前記ターゲット命令を
    ロードする手段をさらに含む請求項6又は7記載のデー
    タ処理システム。
  9. 【請求項9】前記ターゲット命令の前記キューへのロー
    ドに続く前記予測の誤りの判明に応答して、前記ターゲ
    ット命令を消去する手段をさらに含む請求項8記載のデ
    ータ処理システム。
  10. 【請求項10】前記ターゲット命令の前記キューへのロ
    ードの後に、前記順次命令のうち選択されたシーケンス
    を再フェッチする手段をさらに有し、 前記ターゲット命令の前記キューへのロードに続く前記
    予測の誤りの判明に応答して、前記順次命令のうち選択
    されたシーケンスを最小の遅延にて実行可能とすること
    を特徴とする、請求項8記載のデータ処理システム。
JP5213916A 1992-10-09 1993-08-30 ランタイム遅延削減方法及びデ―タ処理システム Expired - Lifetime JP2526017B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/959,183 US5784604A (en) 1992-10-09 1992-10-09 Method and system for reduced run-time delay during conditional branch execution in pipelined processor systems utilizing selectively delayed sequential instruction purging
US959183 1992-10-09

Publications (2)

Publication Number Publication Date
JPH06187151A JPH06187151A (ja) 1994-07-08
JP2526017B2 true JP2526017B2 (ja) 1996-08-21

Family

ID=25501753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5213916A Expired - Lifetime JP2526017B2 (ja) 1992-10-09 1993-08-30 ランタイム遅延削減方法及びデ―タ処理システム

Country Status (3)

Country Link
US (1) US5784604A (ja)
EP (1) EP0592125A1 (ja)
JP (1) JP2526017B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634103A (en) * 1995-11-09 1997-05-27 International Business Machines Corporation Method and system for minimizing branch misprediction penalties within a processor
JP3641327B2 (ja) * 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
US6173395B1 (en) * 1998-08-17 2001-01-09 Advanced Micro Devices, Inc. Mechanism to determine actual code execution flow in a computer
US6247146B1 (en) 1998-08-17 2001-06-12 Advanced Micro Devices, Inc. Method for verifying branch trace history buffer information
US6516405B1 (en) * 1999-12-30 2003-02-04 Intel Corporation Method and system for safe data dependency collapsing based on control-flow speculation
US9891922B2 (en) 2012-06-15 2018-02-13 International Business Machines Corporation Selectively blocking branch prediction for a predetermined number of instructions
US10496647B2 (en) * 2017-04-18 2019-12-03 Microsoft Technology Licensing, Llc Delay detection in query processing
US20220308887A1 (en) * 2021-03-27 2022-09-29 Redpine Signals, Inc. Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor
WO2022212220A1 (en) * 2021-03-27 2022-10-06 Ceremorphic, Inc. Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor
US20220308888A1 (en) * 2021-03-27 2022-09-29 Redpine Signals, Inc. Method for reducing lost cycles after branch misprediction in a multi-thread microprocessor

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
JPS6393041A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
JPH0769811B2 (ja) * 1988-12-21 1995-07-31 松下電器産業株式会社 データ処理装置
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
JPH02287626A (ja) * 1989-04-28 1990-11-27 Toshiba Corp パイプライン方式の分岐命令制御装置
JPH0331933A (ja) * 1989-06-28 1991-02-12 Mitsubishi Electric Corp データ処理装置
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5226138A (en) * 1990-11-27 1993-07-06 Sun Microsystems, Inc. Method for selectively transferring data instructions to a cache memory
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit

Also Published As

Publication number Publication date
US5784604A (en) 1998-07-21
EP0592125A1 (en) 1994-04-13
JPH06187151A (ja) 1994-07-08

Similar Documents

Publication Publication Date Title
US4777594A (en) Data processing apparatus and method employing instruction flow prediction
US5377336A (en) Improved method to prefetch load instruction data
US5421020A (en) Counter register implementation for speculative execution of branch on count instructions
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
EP1071010B1 (en) Decoupled instruction fetch-execute with static branch prediction support
US5649138A (en) Time dependent rerouting of instructions in plurality of reservation stations of a superscalar microprocessor
JP2796797B2 (ja) ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法
EP1442364B1 (en) System and method to reduce execution of instructions involving unreliable data in a speculative processor
US5687349A (en) Data processor with branch target address cache and subroutine return address cache and method of operation
US6662295B2 (en) Method and system dynamically presenting the branch target address in conditional branch instruction
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US7266676B2 (en) Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays
JPH0334024A (ja) 分岐予測の方法とそのための装置
GB2293671A (en) Reducing delays due to branch instructions
JP2006520964A5 (ja)
JP2526017B2 (ja) ランタイム遅延削減方法及びデ―タ処理システム
US20060224870A1 (en) Information processing device
US8943301B2 (en) Storing branch information in an address table of a processor
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
JP2002527798A (ja) ストアアドレス生成およびユニバーサルな依存性ベクトルに基づくロードブロックのためのメカニズム
US20040225866A1 (en) Branch prediction in a data processing system
JP2618187B2 (ja) マルチスカラ・プロセッサ・システムにおいて高速浮動小数点例外処理をする方法及びシステム
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
US7343481B2 (en) Branch prediction in a data processing system utilizing a cache of previous static predictions
JPS63168730A (ja) 分岐命令処理装置