JP2003525493A - マルチコマンド命令語を有するデータプロセッサ - Google Patents
マルチコマンド命令語を有するデータプロセッサInfo
- Publication number
- JP2003525493A JP2003525493A JP2001563991A JP2001563991A JP2003525493A JP 2003525493 A JP2003525493 A JP 2003525493A JP 2001563991 A JP2001563991 A JP 2001563991A JP 2001563991 A JP2001563991 A JP 2001563991A JP 2003525493 A JP2003525493 A JP 2003525493A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- target
- command
- instruction
- memory
- 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
- 230000007704 transition Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 3
- 230000002427 irreversible effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Abstract
Description
マンドグループとして行うデータプロセッサに関する。
ンドからなる命令を有する。一つの命令におけるコマンドは、複数の分岐コマン
ドを含むことができる。このようなプロセッサの具体例は、このようなマルチ分
岐コマンドに影響を与える方法が記載されている米国特許第4,833,599号に見出
すことが出来る。
らの遅延を低減させることは、公知である。分岐予測により、プロセッサは、そ
の分岐の条件が実際にテストされる前に、分岐に従うべきか否かを仮に決める。
条件がテストされ、この決定が正しいことが判明すると、これはより速い実行を
可能にする。分岐遅延をさらに低減させるために、プロセッサは、分岐の目標ア
ドレス、またはその目標アドレスの場所に格納されている目標命令を分岐目標メ
モリに格納することができる。続いて分岐が再び実行に用いられると、目標アド
レスまたは目標命令は、目標メモリからロードされ、そしてプロセッサに与えら
れる。これは、実行を進めるために仮にそれを使用する。
ルを一度にロードするプロセッサのための分岐予測が記載されている。このバン
ドルは、複数の分岐命令を含むことができる。これらの命令に対する分岐予測を
別々に取り扱う代わりに、この米国特許においては、バンドルを、分岐予測が一
つしか行われない単一命令として取り扱っている。
モリにバンドルに対してなされる。何れの分岐命令が、バンドルにおける全ての
分岐命令を実行した後の最終結果を決定するかを予測することにより、一つの分
岐予測が、バンドルにおける全ての分岐命令に対して、行われる。予測された分
岐命令に対する目標アドレスは、このバンドルに対して格納されていてかつ推測
実行に対して使用される目標アドレスの中から選択される。
しては3つの目標アドレスが格納される。第一分岐命令が用いられずに、第二分
岐命令が用いられるであろうと予測されると、このバンドルに対しては第二分岐
目標アドレスが選択され、そしてこの目標アドレスを含むキャッシュラインが、
投機的に実行されるであろう。これにより、バンドルがフェッチされなければな
らない次のキャッシュラインを決定するために必要な遅延が最小になる。しかし
ながら、全ての分岐命令の分岐目標アドレスに対して、メモリは確保される。バ
ンドルにおける一つ以上の分岐命令が極めてまれにしか用られない場合、これは
非能率である。
標命令にアクセスするための効率的な機構を提供することである。
分岐の目標命令にアクセスする効率的な機構を提供することである。
または命令の何れかの形態で設けられている。このメモリは、連想アドレスの部
分として予測して用いられる分岐コマンドのVLIW命令におけるポジションを使用
して、連想アドレスによりアドレス指定が行われる。このようにして、このプロ
セッサは、他のポジションでのコマンドに対して他の分岐目標が格納されている
か否かに拘わらず、命令内の各ポジションに対して分岐目標を個々に格納するか
格納しないかという自由度を有する。分岐目標を命令ごとに格納する場合に比較
し、これは、格納する必要がある分岐目標の数を低減させる。
とタグとを含む連想セットを含む、連想型に設定される。命令のアドレスは、目
標を見いだすためのセットを見いだすためのインデクスとして使用される。命令
におけるコマンドの分岐目標は、コマンドのポジションの識別を含むタグと連想
させて、格納される。命令の実行に応じて、命令のアドレスがセットを選択する
ために使用され、そして分岐コマンドが用いられることが、予測されると、分岐
コマンドのポジションが、一致するタグとの連想を見いだすために使用される。
予測されたコマンドを選択するために必要な遅延の間、命令アドレスを使用して
、セットには、すでにアクセスすることができる。このことは、用いられる分岐
コマンドのポジションの予測が得られるとすぐに、セットからの連想が、使用可
能になることを意味する。
に、分岐コマンドを有する命令の結果の統計情報を格納する分岐履歴メモリを有
する。この統計情報は、状態の識別を含み、そして命令の実行に応じて、その命
令に対する状態は、以前の状態と、(存在する場合)用いられる命令からの分岐
コマンドとに依存して、更新される。この状態は、次に命令が実行される時に、
用いられることが期待される分岐コマンドのポジションと、この分岐がそのポジ
ションで用いられる多くの分岐コマンドの実行の飽和カウントとを表す。この状
態は、期待されたコマンドに対してのみ、このようなカウントを表す。すなわち
、期待された異なるコマンドへの状態遷移があるときのみ、他のコマンドに対す
るカウントの表示が、開始される。
を用いることが、期待されることを表すことが出来る。この状態は、分岐が用い
られるそのコマンドの、1つまたは2つの何れかの実行のカウントも表す。この分
岐が、命令が実行される際に、用いられず、かつこの状態が2のカウントを表す
場合、このコマンドがまだ期待されたコマンドであるが、このカウントが2から1
に変化する状態への遷移が行われるであろう。この分岐が、用いられず、かつカ
ウントが1であると、他の分岐コマンド(存在する場合)が、この他のコマンド
に対して1のカウントを有する、用いられることが予測される分岐であることを
表す状態への遷移がなされるであろう。
り詳細に議論されるであろう。
、プログラムカウンタ12、命令メモリ14、および分岐予測ユニット16を含む。プ
ログラムカウンタ12は、命令メモリ14のアドレス入力に結合されている。命令メ
モリ14は、分岐予測ユニット16を介してプロセッサ10に結合されている命令出力
を有する。プロセッサ10は、プログラムカウンタ12と分岐予測ユニット16に結合
されている分岐出力を有する。
よびレジスタファイル104を有する、VLIWプロセッサとして示されている。機能
ユニット102a-cの中には、プログラムカウンタ12と分岐予測ユニット16に結合さ
れている出力を有する分岐ユニットが存在する。オプションとして、いくつかの
異なる機能ユニットを、同じ送出スロットに接続し、命令により、いくつかの機
能ユニットの何れのユニットがコマンドを実行すべきかを選択させるようにする
ことができる。この場合、いくつかの機能ユニットの一つを、分岐ユニットとし
、他のユニットを、分岐ユニットにしないように出来るので、送出スロットが分
岐に到ることが出来るか否かは、命令に依存する。本発明によると、命令が送出
スロットに接続されている分岐ユニットを選択しない場合、その命令の送出スロ
ットに対しては分岐目標を格納しないことが可能になる。
リ162、マルチプレクサ164、および制御ユニット166を含む。制御ユニット166は
、プロセッサ10の分岐出力に結合されている入力を有する。制御ユニット166は
、分岐履歴メモリ160と分岐目標メモリ162とに各々結合されている出力を有する
。分岐履歴メモリ160は、選択ユニット161に結合されている出力を有する。選択
ユニット161は、分岐目標メモリ162に結合されている出力と、マルチプレクサ16
4の制御入力に結合されている出力を有する。マルチプレクサ164は、命令メモリ
14に結合されている入力と、分岐目標メモリ162に結合されている入力を有する
。
の場合、各命令は、機能ユニット102a-cの異なるユニットに対する多くのコマン
ドからなる。プログラムカウンタ12は、命令メモリ14からフェッチされる命令の
逐次アドレスを含む。これらのアドレスに応答して、命令メモリ14は、プロセッ
サ10にアドレス指定が行われた命令を出力する。プロセッサ10は、命令を受信し
、そして種々の機能ユニット102a-cについての各命令からのコマンドを配布する
。
ット102a-cが、この分岐が用いられるべきであると決定すると、これは、プログ
ラムカウンタ12に送られる。機能ユニット102a-cは、この分岐が用いられるべき
であるとの決定と、次の命令がフェッチされるべき分岐の目標アドレスを送る。
複数の機能ユニット102a-cが、分岐が用いられるべきであるとの信号を送る場合
、プログラムカウンタ12は、決定のある型を使用してどの分岐が用いられるべき
であるかを決定する。このような決定の具体例には、この分岐が用いられるべき
であるとの信号が送られる機能ユニット102a-cによって優先権の順序を割り当て
ることが、挙げられる。
してコマンド実行の異なる段を並列に実行するパイプライン型プロセッサに、特
に、言える。並列実行は、実行時間の速度を向上させるが、一つ以上の分岐コマ
ンドを含む命令に従う場合のように、どの命令が連続的に実行されるべきである
かが知られていない場合には、並列実行は、困難である。(もし存在する場合に
は)どの分岐コマンドに従うべきかと言う決定に到るには、多くの実行段が必要
である。これらの段の間では、一つ以上の分岐コマンドを含む命令に従って、ど
の命令が実行されるべきであるかを確実に決定することは不可能である。
サ10が実際に分岐コマンドの結果についてプログラムカウンタ12に指示すること
が可能となる前に、どの命令が、実行されるべきであるかを予測することにより
、この問題に対処している。プロセッサ10は、分岐コマンドを有する命令の結果
が決定されるまで、データの上書きのような、いかなる不可逆アクションも行わ
ずに、予測された命令を、仮に、実行する。
れ、分岐履歴情報と分岐目標情報を使用する命令を予測する。分岐履歴情報は、
この命令からの一つ以上の分岐コマンドが、以前に、プログラムカウンタ12に変
化をもたらした頻度についての統計情報を表す。選択ユニット161は、この情報
を使用して、用いられる分岐が、予測されるべきであるか否か、そして、命令に
おけるどの分岐コマンドが、その目標アドレスがプログラムカウンタ12に影響を
及ぼすことになる、用いられる分岐となるかを決定する。
クサ164は、命令メモリ14からの命令をプロセッサ10に渡すが、選択ユニットが
、用いられる分岐が予測されたことを示す信号を送ると、マルチプレクサ164は
、その代わりに分岐目標メモリ162からの命令を渡す。
令のコピーを含む。所定の分岐コマンドおよびソース命令における分岐コマンド
の位置の表示を含むソース命令のアドレスが、与えられると、各命令の検索が可
能となるように、これらのコピーは格納される。これに代えて、目標命令のアド
レスのみを、分岐目標メモリに格納して、それらを、命令メモリ14(図1に図示
されていないこれの代替に対する付加的な回路)から検索することもできる。
ムカウンタから使用可能である)を含むソース命令のアドレスと、選択ユニット
161により選択された、そのソース命令内の選択された分岐コマンド位置の表示
とを受信する。この情報により分岐目標メモリは、(分岐目標メモリ162におい
て使用可能であるならば)その分岐コマンドに対する目標命令(またはそのアド
レス)を検索する。選択ユニット161がそれが用いられるべき分岐を期待するこ
とをマルチプレクサ164に示すと、目標命令が、マルチプレクサ164に与えられ、
プロセッサ10に渡される。したがって、プロセッサ10は、予測された命令を仮に
実行することが可能になる。何の目標命令も使用可能でない場合、分岐目標メモ
リ162は、これをマルチプレクサ164に送り、次いでマルチプレクサ164は命令メ
モリ14からの命令を渡す。
る設計上の要素しか示していない。空のパイプライン段の数を最小にするために
、処理アーキテクチャのパイプライン構造およびパイプラインへの予測された命
令の正確なポイントの注入のような図1に示されていない分岐目標を使用するこ
とについての公知のインプリメンテーションの詳細は、プロセッサ10のニーズに
より必要に応じて選択されることは、当業者には、理解されるであろう。同様に
、分岐コマンドが最終的に決定されない限り、予測された命令に応答して不可逆
の動作を防ぐ回路は、当業者には公知であり、そして明確さの理由から図1には
図示されていない。同じことは、分岐目標が誤って予測される場合に、正しい状
態にプロセッサ10をリストアする回路についても当てはまる。
のセット連想インプリメンテーションを示す。この実施例は、タグ比較ユニット
22に結合されている出力を有するセットメモリ20を含む。セットメモリ20は、一
つ以上の分岐コマンドを含むソース命令のアドレスの第一部分によりアドレス指
定が行われる(このアドレスは、ここではソースアドレスと呼ばれている)。(
図示されていない選択ユニット161から受信される)選択された分岐コマンドの
表示と共にソースアドレスの残りの部分は、タグ比較ユニット22に与えられる。
のセットを選択する。各メモリー位置は、分岐コマンドのタグおよび目標命令を
格納する。タグは、その分岐コマンドが発生するソース命令におけるその分岐コ
マンドの位置を表す。タグは、そのソース命令のソースアドレスの残りの部分も
表す。ソース命令のソースアドレスに応答して、セットメモリは、ソースアドレ
スにより選択されるタグおよび目標命令のセットを出力する。タグ比較ユニット
22は、これらのタグを、選択ユニット161(図示せず)により選択された分岐コ
マンドの位置の表示およびプログラムカウンタ12(図示せず)から(おそらくパ
イプライン段により)受信されるソースアドレスの残りの部分と比較する。セッ
トメモリ20によるタグ出力の何れもが位置の表示およびソースアドレスの残りの
部分と一致すると、タグ比較ユニット22は、対応する目標命令を出力する。
の位置の表示とは、タグ比較ユニット22における比較に対する情報については、
同じ役割を演ずることに、留意する必要がある。各タグは、ソースアドレスの残
りの部分とソース命令における関連した分岐コマンドの位置の表示とを結合させ
る。このようなタグは、すべての目標命令に対して(すなわち、同じソース命令
におけるコマンドが異なった目標に対して異なった完全タグを使用する必要が有
る場合に)格納される。したがって、同じソース命令における異なった分岐コマ
ンドに対する目標命令は、分岐目標メモリ162において互いに独立に格納させる
ことができる。例えば、ソース命令における目標命令は、同じ命令における他の
コマンドに対してではなく、一つの分岐コマンドに対して格納されるかもしれな
いので、他のソース命令からの目標命令を格納するための余地が得られる。
ソースアドレスの第一部分によりアドレス指定を行われるセットを検索するため
に必要な動作を実行し、および/または選択ユニット161は、用いられる分岐コ
マンドが予測されているか否かを決定しそしてもしそうである場合には、その分
岐コマンドがソース命令のどこに位置するかを決定する。すなわち、セットメモ
リ20は、関連した分岐コマンドの位置が判明する前に、このセットを検索する。
このような事前の読み込みは、処理の速度を上げる。ソース命令における分岐コ
マンドの位置が、タグ比較ユニット22における比較に対して、セットを読んだ後
にしか必要でないので、このことが可能になる。
リ160および分岐目標メモリ162の内容を更新する。ソース命令が一つ以上の分岐
コマンドを含む場合、制御ユニット166は、(もし存在する場合には)これらの
コマンドの内の何れがプログラムカウンタの値を変化させるかを監視する。用い
られる分岐コマンドの目標命令が分岐目標メモリ162(コントロール)内にまだ
存在しない場合には、ユニット166は、この目標命令を、ソース命令および命令
における分岐コマンドの位置を識別するタグと組み合わせて、分岐目標メモリ16
2に格納させる。
態についての情報を格納する。分岐履歴メモリは、ソース命令のアドレスを使用
してアクセスすることができる連想メモリ(例えば、充分に連想的、セット連想
的または直接マップされている)であることが、好ましい。分岐目標メモリ162
が、少なくともソース命令のアドレスと連想アドレスとしてのコマンドの位置の
両方を使用し、分岐履歴メモリ160が、連想アドレスとしてソース命令のアドレ
スのみを使用する点で、分岐履歴メモリ160が分岐目標メモリ162と異なることは
、理解されるであろう。分岐履歴メモリ160は、連想アドレスとしていかなる命
令のポジションも使用しない。
状態を得る(この状態は、ソース命令を処理する以前の段での分岐予測の部分と
して読み込まれる)。ソース命令における分岐の状態および結果から、制御ユニ
ット166は、更新された状態を計算する。分岐履歴メモリから何の状態も使用可
能でない場合、デフォルト状態が生成され、そして分岐を予測しかつ更新された
状態を計算するために使用される。
移により仮定することができる状態の状態図の一例を示す。この例は、分岐コマ
ンドを並列処理することが出来る3機能ユニット102a-cしか有しないプロセッサ1
0に対するものである。このダイアグラムは、8つの状態を示す。
第一、第二または第三位置からの分岐コマンドの使用される結果に対する状態を
、それぞれ、示す。最初の4つの状態34、35、36、37は、それぞれ、4つの異なっ
た結果に対する強い優先を表す。第二の4つの状態30、31、32、33は、それぞれ
、分岐コマンドの4つの異なった結果に対する弱い優先を表す。
結論が実行の結果として発生する状態を識別する情報を格納すると、その状態は
影響を受けないままである。異なった結論が発生しかつその状態が強い優先を有
すると、強い優先を有する常態と同じ結果に対して弱い優先を有する状態への遷
移が行われる。その状態が、ソース命令の結論に対する弱い優先と、その結論が
実行の結果として発生することとを表すと、弱い優先を有する元の常態と同じ結
論に対する強い優先を有する状態への遷移が、発生する。異なった結論が発生し
かつこの状態が弱い優先を有すると、ソース命令の実行の結論に対する弱い優先
を有する状態への遷移が、なされる。状態について何の情報も命令に対してまだ
格納されていない場合、デフォルト状態には、例えば、ソース命令における最も
高い優先順位に対し弱い優先が仮定される。状態表現の代わりに、各々が、使用
される分岐の数または関連した位置における分岐コマンドによるそれの欠如を計
数して、個別の飽和カウントをソース命令における異なった位置に対して維持す
ることも出来た。しかしながら、飽和カウントと同様な情報が、好ましい結論に
対してのみ示されるので、図3に示される状態を使用することにより、必要とす
るメモリは少なくて済む。もちろん、より多くの状態を使用すると、好ましい結
論に対する優先においてより多くの階調を、表すことができる。この場合、状態
図は、個別カウントと比較してより大きな節約さえもたらす。
リラベルを種々のノードに割り当てることにより実現することができる。図3の
具体例においては、3-ビットラベルを、使用することができる。これらのラベル
を割り当てる一つの方法は、強い優先が有るか弱い優先が有るかを表す1ビット
と、4つの可能な結論のどれに対し優先が有るかを表す2ビットを用いることであ
る。もちろん、他の状態図を用い、優先の強さおよび好ましい結論を識別するた
めのビットの適切な数に対しより多くのビットを使用して、他の割当てを使用す
ることもできる。
更新された状態を計算しそして更新された状態を表す情報を分岐履歴メモリ160
に書き戻す。選択ユニット161は、状態についての情報を受信し、そして(もし
存在する場合には)この状態が優先を表すソース命令における位置を選択する。
この選択は、目標メモリ162に与えられる。「分岐が無い」が好まれるか否かに
ついての情報は、マルチプレクサ164に出力され、命令メモリ14からのまたは分
岐目標メモリ162からの命令がプロセッサ10に渡されるべきか否かが示される。
Claims (5)
- 【請求項1】 複数の分岐コマンドを含むことができるコマンドグループとして命令のアドレ
ス指定を行うデータプロセッサであって、前記データプロセッサが、 * グループの前記分岐コマンドから期待された用いられる分岐コマンドを選択
するコマンド選択ユニットと、 * 前記期待された用いられる分岐コマンドに対し仮の目標を選択する目標選択
ユニットとを有し、 前記データプロセッサが、制御フローを前記仮の目標によって識別されるコマ
ンドのさらなるグループに仮にリダイレクトし、 前記目標選択ユニットが、以前に実行された分岐コマンドの目標を格納する連
想目標メモリを含み、 前記目標メモリが連想を格納するための位置のセットを有し、 目標および連想アドレスの各々が前記グループのコマンドを識別することが可能
で、 前記目標選択ユニットが、前記仮の目標と関連する前記連想アドレスと前記期
待された用いられるコマンドの表示との間の一致に基づいて前記仮の目標を選択
する、データプロセッサ。 - 【請求項2】 前記連想目標メモリが、セット連想メモリで、 前記セット連想メモリが、連想を格納する位置のセットを有し、 目標およびタグの各々が、前記グループのコマンドを識別することが可能で、 前記目標選択ユニットが、前記グループの命令アドレスに基づいて前記目標メ
モリ内の前記セットを指標付けし、そして前記仮の目標と関連する前記タグと前
記期待された用いられるコマンドの表示との間の一致に基づいて指標付けされた
目標から前記命令アドレスによって前記仮の目標を選択する、 請求項1に記載のデータプロセッサ。 - 【請求項3】 前記目標メモリが、前記コマンド実行ユニットによる前記期待されたコマンド
の決定により前記セットを並列に検索するように構成されている、 請求項2に記載のデータプロセッサ。 - 【請求項4】 複数の機能ユニットを有するVLIWアーキテクチャを有し、 前記グループが、VLIW命令であり、 その特定グループが実行されると、前記プロセッサが、各機能ユニット上の各
特定のグループ内の前記コマンドの全ての実行を同時に始める、 請求項1に記載のデータプロセッサ。 - 【請求項5】 前記コマンド選択ユニットが、コマンドの各グループのそれぞれに対し、状態
に関する情報を格納する分岐履歴メモリを有し、 前記状態が、前記グループにおいて用いられることが期待される前記コマンド
の表示およびそのコマンドに対する優先の程度を、前記グループ内の他のコマン
ドに対する優先の程度を表さずに、表し、 前記程度が、前記グループ内の全ての他のコマンドに対する優先の少なくとも
2つの異なるレベルから選択可能である、 請求項1に記載のデータプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00200679 | 2000-02-28 | ||
EP00200679.9 | 2000-02-28 | ||
PCT/EP2001/001463 WO2001065362A1 (en) | 2000-02-28 | 2001-02-12 | Data processor with multi-command instruction words |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003525493A true JP2003525493A (ja) | 2003-08-26 |
Family
ID=8171104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001563991A Pending JP2003525493A (ja) | 2000-02-28 | 2001-02-12 | マルチコマンド命令語を有するデータプロセッサ |
Country Status (6)
Country | Link |
---|---|
US (1) | US7577827B2 (ja) |
EP (1) | EP1236095B1 (ja) |
JP (1) | JP2003525493A (ja) |
AT (1) | ATE464600T1 (ja) |
DE (1) | DE60141807D1 (ja) |
WO (1) | WO2001065362A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127115B2 (en) * | 2009-04-03 | 2012-02-28 | International Business Machines Corporation | Group formation with multiple taken branches per group |
US9280398B2 (en) | 2012-01-31 | 2016-03-08 | International Business Machines Corporation | Major branch instructions |
US9229722B2 (en) | 2012-01-31 | 2016-01-05 | International Business Machines Corporation | Major branch instructions with transactional memory |
FR3021433B1 (fr) * | 2014-05-21 | 2016-06-24 | Kalray | Systeme de synchronisation inter-processeurs |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903750A (en) * | 1996-11-20 | 1999-05-11 | Institute For The Development Of Emerging Architectures, L.L.P. | Dynamic branch prediction for branch instructions with multiple targets |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833599A (en) | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US5414822A (en) | 1991-04-05 | 1995-05-09 | Kabushiki Kaisha Toshiba | Method and apparatus for branch prediction using branch prediction table with improved branch prediction effectiveness |
US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
KR100310581B1 (ko) * | 1993-05-14 | 2001-12-17 | 피터 엔. 데트킨 | 분기목표버퍼의추측기록메카니즘 |
US5664135A (en) * | 1994-09-28 | 1997-09-02 | Hewlett-Packard Company | Apparatus and method for reducing delays due to branches |
US5699536A (en) * | 1995-04-13 | 1997-12-16 | International Business Machines Corporation | Computer processing system employing dynamic instruction formatting |
GB9521978D0 (en) * | 1995-10-26 | 1996-01-03 | Sgs Thomson Microelectronics | Computer instruction supply |
US5774710A (en) * | 1996-09-19 | 1998-06-30 | Advanced Micro Devices, Inc. | Cache line branch prediction scheme that shares among sets of a set associative cache |
US5850543A (en) * | 1996-10-30 | 1998-12-15 | Texas Instruments Incorporated | Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return |
US6157988A (en) * | 1997-08-01 | 2000-12-05 | Micron Technology, Inc. | Method and apparatus for high performance branching in pipelined microsystems |
US5978909A (en) * | 1997-11-26 | 1999-11-02 | Intel Corporation | System for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer |
US6014742A (en) * | 1997-12-31 | 2000-01-11 | Intel Corporation | Trace branch prediction unit |
US6304962B1 (en) * | 1999-06-02 | 2001-10-16 | International Business Machines Corporation | Method and apparatus for prefetching superblocks in a computer processing system |
-
2001
- 2001-02-12 EP EP01916981A patent/EP1236095B1/en not_active Expired - Lifetime
- 2001-02-12 JP JP2001563991A patent/JP2003525493A/ja active Pending
- 2001-02-12 AT AT01916981T patent/ATE464600T1/de not_active IP Right Cessation
- 2001-02-12 WO PCT/EP2001/001463 patent/WO2001065362A1/en active Application Filing
- 2001-02-12 DE DE60141807T patent/DE60141807D1/de not_active Expired - Lifetime
- 2001-02-28 US US09/794,943 patent/US7577827B2/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903750A (en) * | 1996-11-20 | 1999-05-11 | Institute For The Development Of Emerging Architectures, L.L.P. | Dynamic branch prediction for branch instructions with multiple targets |
Also Published As
Publication number | Publication date |
---|---|
ATE464600T1 (de) | 2010-04-15 |
EP1236095A1 (en) | 2002-09-04 |
US7577827B2 (en) | 2009-08-18 |
US20010020265A1 (en) | 2001-09-06 |
DE60141807D1 (de) | 2010-05-27 |
EP1236095B1 (en) | 2010-04-14 |
WO2001065362A1 (en) | 2001-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5954815A (en) | Invalidating instructions in fetched instruction blocks upon predicted two-step branch operations with second operation relative target address | |
US7269715B2 (en) | Instruction grouping history on fetch-side dispatch group formation | |
US7711930B2 (en) | Apparatus and method for decreasing the latency between instruction cache and a pipeline processor | |
US6101577A (en) | Pipelined instruction cache and branch prediction mechanism therefor | |
EP1029268B1 (en) | Method relating to handling of conditional jumps in a multi-stage pipeline arrangement | |
US6304961B1 (en) | Computer system and method for fetching a next instruction | |
US5553254A (en) | Instruction cache access and prefetch process controlled by a predicted instruction-path mechanism | |
WO1998025196A2 (en) | Dynamic branch prediction for branch instructions with multiple targets | |
KR20080023723A (ko) | 분기 명령들을 예측하기 위한 방법 및 장치 | |
US20040098540A1 (en) | Cache system and cache memory control device controlling cache memory having two access modes | |
US5761490A (en) | Changing the meaning of a pre-decode bit in a cache memory depending on branch prediction mode | |
US7017030B2 (en) | Prediction of instructions in a data processing apparatus | |
EP3264263A1 (en) | Sequential monitoring and management of code segments for run-time parallelization | |
US5748976A (en) | Mechanism for maintaining data coherency in a branch history instruction cache | |
JP3725547B2 (ja) | 限定ラン分岐予測 | |
KR100431975B1 (ko) | 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템 | |
JP2003525493A (ja) | マルチコマンド命令語を有するデータプロセッサ | |
JP3146077B2 (ja) | プロセッサ | |
JP3532835B2 (ja) | データ処理装置およびプログラム変換装置 | |
US6061775A (en) | Apparatus and method for predicting a first microcode instruction of a cache line and using predecode instruction data to identify instruction boundaries and types | |
US7085916B1 (en) | Efficient instruction prefetch mechanism employing selective validity of cached instructions for digital signal processor and method of operation thereof | |
US20040128476A1 (en) | Scheme to simplify instruction buffer logic supporting multiple strands | |
US7475223B2 (en) | Fetch-side instruction dispatch group formation | |
US6874080B2 (en) | Context processing by substantially simultaneously selecting address and instruction of different contexts | |
US11507372B2 (en) | Processing of instructions fetched from memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20070323 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080208 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111025 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20111118 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120321 |