JPH0816394A - システムメモリから命令コードを先取りするための先取り装置および方法 - Google Patents

システムメモリから命令コードを先取りするための先取り装置および方法

Info

Publication number
JPH0816394A
JPH0816394A JP7049593A JP4959395A JPH0816394A JP H0816394 A JPH0816394 A JP H0816394A JP 7049593 A JP7049593 A JP 7049593A JP 4959395 A JP4959395 A JP 4959395A JP H0816394 A JPH0816394 A JP H0816394A
Authority
JP
Japan
Prior art keywords
code
address
sequential
prefetch
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
Application number
JP7049593A
Other languages
English (en)
Inventor
Joseph A Bailey
ジョセフ・エイ・ベイリ
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH0816394A publication Critical patent/JPH0816394A/ja
Pending 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 実行装置からの要請なしにコードを取出す発
見的先取りメカニズムを提供することである。 【構成】 発見的先取りメカニズムは、通常的に順次的
コードを先取りするために構成され、もし、要求された
コードの特定のラインが、要求されたコードの直前のラ
インに対し順次的でなければ、先行の命令のアドレス
を、次に要求されるコードの順次的でないアドレスとと
もに、「思い出し」、記憶するように構成される。実行
装置が後に先行の命令に対し別の要求を出せば、発見的
先取りメカニズムは、次のラインのコードを先取りする
ために順次的でないアドレスを用いる。発見的先取りメ
カニズムは、コード取出しが順次的かどうか決定するた
めの非順次的モニタ(118)と、先行するアドレスの
一部を後続の順次的でないアドレスとともに記憶するた
めのSRAMタグ装置(116)とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の分野】この発明はコンピュータシステムに関
し、より特定的には、コンピュータシステム内で用いら
れるコード先取りメカニズムに関する。この発明はま
た、コンピュータシステムのためのメモリ制御技術に関
する。
【0002】
【関連技術の説明】コンピュータシステムの全体として
の処理速度を増加させるために、様々な技術が開発され
てきた。サブミクロン処理能力といった、集積回路処理
テクノロジーにおける改良により、集積回路そのものの
多大なる増速が可能になったが、コンピュータシステム
のアーキテクチャおよびバス転送におけるその他の開発
がまた、性能の向上につながってきている。典型的な開
発は、キャッシュメモリサブシステムおよびコード先取
りメカニズムのコンピュータシステム内への組込みを含
む。
【0003】キャッシュメモリは、コンピュータシステ
ムのメモリハイアラーキにおいて低速のシステムメモリ
とマイクロプロセッサに介在し、有効メモリ転送速度を
向上させ、結果としてシステムの性能を向上させる、高
速メモリ装置である。キャッシュ(隠し場)という名前
は、小さなキャッシュメモリ装置は、本質的に隠されて
おり、より大きなシステムメモリにしか気づかないユー
ザには透明に見えるという事実によるものである。キャ
ッシュメモリは通常、プロセッサの速度に匹敵する速度
を有する半導体メモリデバイスにより実現されるが、シ
ステムメモリは、より低コスト、低速のテクノロジーを
利用する。キャッシュメモリの概念とは、キャッシュメ
モリ内に選択データのコピーを記憶することにより、マ
イクロプロセッサがシステムメモリ内の選択データおよ
びコードを再使用する可能性を予測することである。
【0004】キャッシュメモリは、典型的には複数のメ
モリ部を含み、各メモリ部は、2つまたは3つ以上のワ
ードのブロックまたは「ライン」を記憶する。(この明
細書中で用いられる「ワード」とは、予め規定されたビ
ットの数を指す。)各ラインは、システムメモリのどの
ラインのコピーであるかを独自で識別するアドレスタグ
を付けている。プロセッサ内で、データまたは命令であ
る新しいワードの読出要求が発生すると、アドレスタグ
比較が行なわれ、要求されたワードのコピーがキャッシ
ュメモリのラインにあるかどうか決定する。もしあれ
ば、そのデータがキャッシュから直接使用される。この
事象は、キャッシュ読出「ヒット」と称される。もしな
ければ、要求されたワードを含むラインがシステムメモ
リから検索され、キャッシュメモリ内に記憶される。要
求されたワードは、同時にプロセッサに与えられる。こ
の事象は、キャッシュ読出「ミス」と称され、キャッシ
ュへのライン満杯という結果を生む。
【0005】プロセッサがメモリへのデータの書込を望
むと、同様のアドレスタグ比較が行なわれ、データの書
込が行なわれるべきラインがキャッシュメモリ内に存在
するかどうかを決定する。もし存在しなければ、データ
は直接システムメモリに書込まれてもよく、および/ま
たは、対応するラインがシステムメモリからキャッシュ
メモリに取出され、キャッシュメモリのその対応するラ
インへデータが書込まれるようにしてもよい。この事象
は、キャッシュ書込「ミス」と称される。もしラインが
存在すれば、データは直接キャッシュメモリに書込まれ
る。これはキャッシュ書込「ヒット」と称される。多く
のシステムでは、それからキャッシュラインに対しダー
ティビットがセットされる。ダーティビットは、ライン
に記憶されたデータがダーティ(すなわち、修正されて
システムメモリと一致しない)であることを示し、した
がって、ラインがキャッシュメモリからデリートされる
かまたは重ね書きされる前に、修正されたデータはシス
テムメモリにもう一度書込まれねばならない。
【0006】前述のように、コンピュータシステムの性
能の向上につながる別の特徴は、コード先取りである。
コード先取り技術は、たとえプロセッサがまだ実際に先
取りされた命令コードを要求していなくとも、命令コー
ドを、システムメモリ(またはキャッシュメモリ)から
一時バッファに転送することを含む。典型的には、現在
実行中の命令を含むラインのすぐ後に続く、プログラム
メモリ内の1ラインのコードを読出すことにより、コー
ドは先取りされる。したがって、典型的な状況と同じ
く、コードが順次的態様で実行しているならば、先取り
されたコードは、プロセッサが要求すれば、一時バッフ
ァから直接与えられてもよく、システムメモリからのコ
ードを読出す必要はない。結果として、コンピュータシ
ステムの全体としての速度は増大するだろう。
【0007】先取りが、実行コードを得るために用いら
れるとき、システムメモリは典型的に、先取りされたコ
ードを含むライン全体を、高データ速度で与えるように
制御される。これは典型的にはバーストメモリアクセス
により達成される。周知のように、バーストメモリアク
セスサイクルのデータフェイズの間に、新しいワード
が、システムメモリから、連続する数クロックサイクル
の各々に対し、アドレスフェイズに介在することなし
に、システムバスに与えられる。最高速のバーストサイ
クル(待ち状態なし)は、第1のワードに対し2クロッ
クサイクル(アドレスに対し1クロック、対応するワー
ドに対し1クロック)を要求し、次のワードは、後続の
どのクロックサイクルでも、順次的アドレスからリター
ンする。特に普及している80486型のマイクロプロ
セッサに基づいたシステムに対しては、典型的に全体で
4つの「ダブルワード」が、所与のバーストサイクルの
間転送される。
【0008】図1を参照すれば、キャッシュメモリ12
および順次的コード先取り器14を含む例示のコンピュ
ータシステム10が示される。キャッシュメモリ12お
よび順次的コード先取り器14は、CPUコア16と、
バスインタフェース装置18とに結合される。システム
メモリ20はさらに、システムバス22を介してバスイ
ンタフェース装置18に結合される。
【0009】順次的コード先取り器14が、システムメ
モリ20のプログラムセグメント内の順次的なラインの
コードを先取りするために設けられる。すなわち、CP
Uコア16が特定の命令を実行しているとき、順次的コ
ード先取り器14は、現在実行している命令を含む1ラ
インのコードに順次的な1ラインのコードを取出す。恐
らく、CPUコアが要求する次の命令は、先に実行され
た命令に対して順次的なので、順次的コード先取り器1
4により、有利にも、その順次的命令が、CPUコアが
必要なときにシステムメモリ20からコードを取出さね
ばならない場合と比較して遙かに迅速に、CPUコア1
6に与えられる。図1に示される順次的コード先取り器
14は、先取りされる順次的ラインのアドレスの値を決
定するための、順次的ライン加算器を含むこともある。
【0010】上述の順次的コードの先取りは、コンピュ
ータシステムの全体の性能を向上させるうえで効果的で
あるが、このような順次的コード先取りは、マイクロプ
ロセッサが分岐または飛び越し命令を受けるときには無
効である。というのも、分岐または飛び越しがとられた
とき実行される次のラインのコードは、分岐または飛び
越し命令そのもののアドレスに対し、順次的なアドレス
にないからである。したがって、飛び越しまたは分岐が
実行されるとき、プロセッサは、「機能停止」するかも
しれないが、それはシステムメモリから取出される分岐
目的アドレスに対応する、非順次的なコードを待たねば
ならないからである。多数の飛び越しおよび/または分
岐命令が採用されるソフトウェアプログラムに対して
は、プロセッサの機能停止の結果生じる、性能への実質
的影響は、しばしば明らかである。
【0011】分岐または飛び越し命令が発生したときの
順次的コード先取りにおける問題を軽減する試みにおい
て、分岐予測論理をコンピュータシステムに組入れるこ
とが提案されている。そのような分岐予測論理において
は、分岐命令が復号化されプロセッサがそれを認識する
と、特定の分岐または飛び越し命令が以前にとられたか
どうかの履歴に基づき、もしそうであれば、以前にとら
れた目的アドレスに基づき、先取り装置は、1ラインの
コードを先取りするように制御される。不運にも、この
分岐予測論理は、典型的には幾つかの問題に関連する。
第1に、分岐予測論理は通常非常に複雑なので、コスト
が増し、集積回路の全体の信頼性を下げる。さらに、先
取り装置は、特定の命令を復号化して、目的アドレスコ
ードの先取りが開始される前に、それが分岐または飛び
越し命令であるかどうか決定しなければならない。
【0012】したがって、先取りメカニズムおよび技術
は、実行装置からの要請なしにコードが先取りされ、飛
び越しまたは分岐命令の目的アドレスに対応する非順次
的コードが先取りされる、コンピュータシステムに対し
ては、理想的である。先取りメカニズムおよび技術はさ
らに、分岐または飛び越し命令の目的アドレス命令の先
取りが、分岐または飛び越し命令そのものの復号化をま
ず要求することなしに開始される場合には、理想的であ
る。最後に、先取りメカニズムおよび方法は、比較的単
純な回路が、その実現のために採用される場合には理想
的である。
【0013】
【発明の概要】上記の問題の大部分は、この発明に従
う、コンピュータシステムのための発見的先取りメカニ
ズムおよび方法により解決される。1つの実施例におい
て、実行装置からの要請なしにコードを取出す発見的先
取りメカニズムが提供される。発見的先取りメカニズム
は、順次的なコードを通常的に先取りするために構成さ
れ、もし、要求されたコードの特定のラインが、要求さ
れたコードの直前のラインに対して順次的でなければ、
先行する命令のアドレスを、次に要求されるコードの非
順次的なアドレスとともに記憶するために構成される。
もし実行装置が後に、先行する命令に対して別の要求を
出した場合、発見的先取りメカニズムは、次のラインの
コードを先取りするために、順次的でないアドレスを用
いる。
【0014】発見的先取りメカニズムは、コード取出が
順次的であるかどうかを決定する非順次的モニタと、先
行するアドレスの一部を順次的でない次のアドレスとと
もに記憶するためのSRAMタグ装置とを含む。実行装
置の各命令取出の間、比較動作が行なわれ、特定の命令
の非順次的な履歴が、SRAMタグ装置内に記憶された
かどうかを決定する。もしSRAMメモリタグ装置が、
特定の命令に対応する非順次的なアドレスを記憶してい
れば、非順次的アドレスは、先取りアドレスラッチにロ
ードされる。もしSRAMタグ装置が対応するエントリ
を含まなければ、次の順次的なラインのアドレスは、先
取りアドレスラッチに記憶される。次にメモリ取出状態
マシンが、先取りアドレスラッチ内のアドレスに対応す
るラインを先取りし、そのラインを先取りコードバッフ
ァ内に記憶する。CPUコアによる各命令取出の間、メ
モリ取出状態マシンは、要求された命令が先取りコード
バッファ内に存在するかどうかを決定し、もし存在すれ
ば、そのコードを、先取りコードバッファから直接与え
る。もし要求されたコードが先取りコードバッファ内に
含まれていなければ、メモリ取出状態マシンは、要求さ
れたコードをシステムメモリから検索するサイクルを実
行する。
【0015】この発明による発見的先取りメカニズムお
よび技術の結果として、実行装置による要請なしにコー
ドの先取りができる。順次的コードおよび非順次的コー
ドの両方の先取りが可能であり、したがって、線形の命
令および分岐または飛び越し命令の両方の処理が可能で
ある。先取りメカニズムおよび技術は、順次的ラインま
たは非順次的ラインが先取りされるべきかを決定するた
めに、特定の命令が復号化されることを必要としない。
したがって、先取りメカニズムおよび技術は、比較的単
純な回路を用いて実現可能である。
【0016】概して、この発明は、システムメモリから
命令コードを先取りできる、コンピュータシステムのた
めの先取り装置を意図する。先取り装置は、先取りされ
たコードを記憶できる先取りコードバッファと、先取り
されるコードのアドレスの値を記憶できる先取りアドレ
スラッチと、システムメモリから先取りコードアドレス
ラッチ内のアドレスの値に対応するコードを先取りで
き、およびそのコードを先取りコードバッファに与える
ことができるメモリ取出状態マシンとを含む。先取り装
置はさらに、非順次的なコードのアドレスが先行するコ
ードのアドレスに対し非順次的であるかどうか検出でき
る非順次的モニタと、非順次的モニタに応答して、非順
次的コードのアドレスを記憶できるメモリタグ装置とを
含む。先取り装置は最後に、メモリタグ装置に結合さ
れ、新しいコードのアドレスがメモリタグ装置内のエン
トリに対応するかどうか決定できる比較器装置を含み、
非順次的コードのアドレスは先取りアドレスラッチに与
えられる。
【0017】この発明はさらに、システムメモリから命
令コードを先取りするための方法を意図し、CPUコア
による特定のコードのリクエストのアドレスが、先行コ
ードのリクエストのアドレスに対し非順次的であるかど
うかを決定するステップと、もし特定のコードのアドレ
スが先行コードのリクエストのアドレスに対し非順次的
であれば、それを記憶するステップと、次のコードのリ
クエストのアドレスが、先行コードのリクエストに対応
するかどうか決定するステップとを含む。この方法はさ
らに、特定のコードをシステムメモリから先取りするス
テップを含む。
【0018】この発明のその他の目的および利点は、以
下の詳細な説明を読み、添付の図面を参照することによ
り明らかになるであろう。
【0019】この発明は様々な修正および代替形が適用
されるが、特定の実施例が図面により示されており、こ
の明細書中で以降詳述される。しかしながら、図面およ
び詳細な説明は、この発明を開示された特定の形式に制
限することを意図するものではなく、反対に、その意図
は、前掲の特許請求の範囲により規定されたこの発明の
精神および範囲内のすべての修正、等価物および代替形
をカバーすることであることを理解されたい。
【0020】
【実施例の詳細な説明】次に図2を参照すれば、この発
明に従う発見的先取りメカニズムを含むコンピュータシ
ステム50のブロック図が示される。コンピュータシス
テム50は、キャッシュメモリ54および発見的コード
先取り器56に結合されたCPUコア52を含む。バス
インタフェース装置58は、発見的コード先取り器56
とキャッシュメモリ54とをシステムバス60に結合す
る。最後に示されるのは、システムバス60に結合され
たシステムメモリ62である。
【0021】図2に示されたコンピュータシステム50
は、発見的コード先取り器56が採用される例示のシス
テムである。しかし、コンピュータシステム50の幾つ
かの変形が、この発明の精神および範囲から逸脱するこ
となく実施可能であることが注目される。たとえば、キ
ャッシュメモリ54はコンピュータシステム50内に採
用されるが、以下に述べられる発見的先取りメカニズム
および技術は、キャッシュメモリを採用しないシステム
にも適用できることが意図されている。
【0022】図示された形態においては、CPUコア5
2は、予め定められた命令セットを実現するデータ処理
装置である。例示の処理装置は、80386型、804
86型およびその他のマイクロプロセッサを含む。図2
の実施例において、CPUコア52、キャッシュメモリ
54、および発見的先取り装置56は、共通の集積回路
チップ上で実現されることに注意されたい。
【0023】発見的コード先取り器56は、システムメ
モリ62から命令コードを先取りするために与えられ
る。以下さらに詳細に説明されるように、発見的コード
先取り器56は通常、現在CPUコア52が要求してい
るコードに順次的な1ラインのコードを先取りする。C
PUコア52が、以前に実行されたコードを含むライン
に対し順次的でない(すなわち、ライン−アドレスの順
ではない)ラインに含まれるコードを要求するとき、発
見的コード先取り器56は、非順次的なラインのアドレ
スを記憶し、それを、先行する命令のアドレスを識別す
るタグに関連付ける。もしCPUコア52が次にこの先
行する命令を、プログラムコードの別の反復の際に要求
すれば、発見的コード先取り器56は、タグ比較を行な
い、そのコードに対して非順次的なアドレスが記憶され
たかどうかを決定する。発見的コード先取り器56はし
たがって、この非順次的なアドレスに対応するコードを
先取りし、先取りしたコードを一時バッファ内に記憶す
る。したがって、CPUコア52が実際に再び非順次的
なコードを要求する可能性があるため、発見的コード先
取り器56は、非順次的コードをシステムメモリ62か
ら即時取出すことを要求せずに、この非順次的コードを
直接提供できる。このようにして、先取り予測が正確な
場合、CPUコア52の機能停止は回避される。
【0024】次に図3では、発見的コード先取り器56
を含むコンピュータシステム50の部分的なブロック図
が示される。図2に対応する回路部分は同じ番号が付さ
れる。簡潔化および明確化のために、図面ではコンピュ
ータシステム50の選択部分は省略されていることに注
意されたい。
【0025】図示された形式において、発見的先取り装
置56は、システムバス60とCPUコア52とに結合
されたメモリ取出状態マシン110を含む。先取りコー
ドバッファ112とマルチプレクサ114がさらに、メ
モリ取出状態マシン110とCPUコア52との間に結
合されて示される。メモリタグ装置116は、非順次的
モニタ118、比較器120、順次的ライン加算器12
2、およびマルチプレクサ124と126とに結合され
て示される。最後に、メモリ取出状態マシン110に結
合された先取りアドレスラッチ130、および非順次的
モニタ118に結合された先行アドレスラッチ132と
現行アドレスラッチ134とが示される。
【0026】現在(CPUコア52により)要求されて
いるコードをシステムメモリ62から取出すため、およ
びシステムメモリ62からコードを先取りするために、
メモリ取出状態マシン110が与えられる。先取りアド
レスラッチ130が、コードが先取りされることにな
る、システムメモリ62のラインのアドレスを記憶する
ために与えられる。以下でさらに理解されるように、こ
の先取りされたコードのアドレスは、現在実行中の命令
を含むラインに対し、順次的または非順次的のいずれか
であり得る。CPUコア52がコードを要求するとき、
アドレスバス150は有効アドレス信号で駆動され、制
御回線152は適切な読出信号で駆動され、命令取出サ
イクルが開始される。このような要求に応答して、メモ
リ取出状態マシン110は、要求されたコードが現在先
取りコードバッファ112内にあるかどうかを決定で
き、もしなければ、システムバス60に、対応する読出
サイクルを発生でき、要求されたコードをシステムメモ
リ62から転送する。次にこの要求されたコードは、デ
ータライン152を通してCPUコア52に、およびマ
ルチプレクサ114を通してデータバス154に与えら
れる。
【0027】非順次的モニタ118は、CPUコア52
による非順次的コードの要求を検出するために提供され
る。もしCPUコア52が非順次的コードの要求を実行
すれば、非順次的アドレスは、先行するアドレスの選択
されたビットとともにメモリタグ装置116内に記憶さ
れる。メモリタグ装置116は、スタティックRAM記
憶装置であり、1つの実施例においては、その容量は1
K×45ビットである。比較器120は、現行の各命令
要求のアドレスをモニタするため、およびメモリタグ装
置116が現行の命令に対応する非順次的な取出を記録
したかどうかを決定するために、採用される。もしメモ
リタグ装置116がこういった非順次的先取りを記録し
ていれば、非順次的命令のアドレスは、先取りアドレス
ラッチ130にロードされ、メモリ取出状態マシン11
0はシステムメモリ62から非順次的ラインを先取り
し、それを先取りコードバッファ112にロードする。
反対にもし、先行する非順次的取出が、現在要求される
命令に対し記録されていなければ、順次的なラインのコ
ードのアドレスに対応する値は、順次的ライン加算器1
22から先取りアドレスラッチ130にロードされる。
したがってメモリ取出状態マシン110は、順次的ライ
ンを取出し、それを先取りコードバッファ112にロー
ドする。以下さらに詳述する。
【0028】コンピュータシステム50の最初の動作の
間、CPUコア52は命令取出サイクルを実行し、実行
コードの第1のワードを取出すだろう。メモリ取出状態
マシン110はそれに応答してシステムバス60で読出
サイクルを実行し、システムメモリ62から第1のライ
ンのコードを読出す。命令コードの第1のワードはこう
して、データライン152、マルチプレクサ114、お
よびデータバス152を通してCPUコア52に与えら
れる。ライン内の残りのワードはさらに、先取りコード
バッファ112内に記憶される。
【0029】現在要求されている命令コードのアドレス
がバス150で駆動されるとき、アドレス信号は現行ア
ドレスラッチ132にラッチされる。このとき、非順次
的モニタ118は、非順次的ライン要求はまだ要求され
ていないことを示すだろう。したがって、メモリ取出状
態マシン110は、次の順次的なラインのコード(現在
要求されているコードを含むラインのすぐ後に続く)に
対応するアドレスの値が、順次的ライン加算器122か
ら先取りアドレスラッチ130にロードされるように、
マルチプレクサ126を制御する。メモリ取出状態マシ
ン110がシステムバス60で読出サイクルを実行した
後、および要求されたコードの第1のワードをCPUコ
ア52に与えた後、メモリ取出状態マシン110は、先
取りサイクルを実行し、先取りアドレスラッチ130内
のアドレスに対応するラインのコードを先取りする。こ
の先取りされたラインのコードは、先取りコードバッフ
ァ112内の別のラインの記憶内に記憶される。先取り
コードバッファ112は2つのラインのコードを収容す
る記憶容量を有するため、先取りされたラインのコード
は、現在実行している命令に対応するラインのコードを
重ね書きしないことが注目される。したがって、CPU
コアが要求する次の命令が、以前に実行された命令と同
じラインまたは順次的ラインのいずれかに対応すれば、
要求は、先取りコードバッファ112により直接サービ
スされ得る。
【0030】CPUコア52が、新しいラインに対応す
るさらなるコードを要求するとき、バス150での新し
いアドレスの値は、現行アドレスラッチ134内に記憶
され、一方、先行するアドレスは先行アドレスラッチ1
32内に記憶される。もしこうした新しいラインが、以
前に実行されたコードに対して順次的であれば、新しい
コードは、マルチプレクサ114を通して先取りコード
バッファ112から直接与えられるだろう。同時に、次
の順次的なラインは、順次的ライン加算器122から先
取りアドレスラッチ130にロードされ、メモリ取出状
態マシン110は読出サイクルを実行し、システムメモ
リ62から次の順次的ラインを先取りする。再び、この
次の順次的ラインのデータは、先取りコードバッファ1
12にロードされる。このラインのコードは、第1のラ
インのコードを重ね書きする。
【0031】以前に要求されたワードのコードに対し非
順次的なラインに含まれるコードをCPUコア52が要
求すれば、非順次的モニタ118は、バス150での現
行のアドレスの値を先行アドレスラッチ132に記憶さ
れた先行するラインのアドレスの値と比較することによ
り、この状態を検出する。もし非順次的モニタ118
が、ラインのアドレスが非順次的であると決定すれば、
現行のアドレスは、メモリタグ装置116内に、先行ア
ドレスラッチ内の先行するラインのアドレスの上位18
ビットとともに記憶される。これらの値が記憶されるメ
モリタグ装置116のアドレスロケーションは、先行す
るアドレスの下位10ビットにより制御される。この時
点で、要求された非順次的なワードのコードは、先取り
コードバッファ112内に記憶されないので、メモリ取
出状態マシン110はさらに、システムメモリ62への
読出サイクルを実行し、現在要求されているコードをシ
ステムメモリ62から読出す。このコードは直接、デー
タライン152およびマルチプレクサ114を通してC
PUコア52に与えられる。このコードを含むラインは
さらに、先取りコードバッファ112内に記憶される。
【0032】非順次的コード要求のアドレスが一旦メモ
リタグ装置116内に記憶されれば、メモリ取出状態マ
シン110は、CPUコア52が新しい命令取出サイク
ルを実行するときに現行アドレスの下位10ビットがマ
ルチプレクサ124を通して駆動されてメモリタグ装置
116のアドレス選択ラインに与えられるように、マル
チプレクサ124を制御する。こうして、命令取出サイ
クルが進行するにつれ、「先行」アドレスの上位18ビ
ットを記憶するメモリタグ装置116の一部分が、比較
器120により、アドレスバス150で駆動されるアド
レスの上位18ビットと比較される。もし整合すれば、
先行するプログラムコードの反復の間に、次に要求され
た非順次的ラインのアドレスを記憶していることを示
す、比較器120により、ヒットが示される。比較器1
20がヒットを示すと、メモリ取出状態マシン110
は、順次的ライン加算器122からの順次的アドレスの
記憶を生じさせるよりもむしろ、メモリタグ装置116
に記憶された非順次的ラインのアドレスが先取りアドレ
スラッチ130に駆動されるように、マルチプレクサ1
26を制御する。メモリ取出状態マシンはしたがって、
先取りアドレスラッチ130内の値に対応するデータを
先取りする。アドレスバス150でCPUコア52によ
り駆動された次のアドレスが、実際に過去の反復の間に
次に要求された、同じ非順次的アドレスに対応すれば、
コードは先取りコードバッファ112内に含まれ、した
がって、データバス154およびマルチプレクサ114
を通して直接CPUコア52に与えられることができ
る。したがい、CPUコア52は、コードを要求した
後、非順次的コードがシステムメモリ62から読出され
るのを待つ必要はない。結果として、非順次的コードが
実際に要求される可能性があるため、コンピュータシス
テム全体の速度は増加するであろう。CPUコア52に
よる、後続のコード取出は、発見的先取り装置56によ
り同様に扱われる。
【0033】命令取出サイクルの初期のフェイズの間、
メモリ取出状態マシン110は、現行アドレスの下位1
0ビットがメモリタグ装置116のアドレス指定ライン
を駆動するように、マルチプレクサ124を制御するこ
とが注目される。こうして、比較器120は、メモリタ
グ装置116が、現行の命令を含む過去の反復に対し非
順次的なコードのアドレスを記憶したかどうか決定でき
る。適切な時間(ヒットが発生したかどうか決定するた
めに比較器120に割当てられている)が経過した後、
メモリ取出状態マシン110は、先行するアドレスの下
位10ビットがメモリタグ装置116のアドレスのライ
ンを駆動するように、マルチプレクサ124をセットす
る。もし非順次的モニタ118が、アドレスバス150
の現行のアドレスが、先行アドレスラッチ132内に記
憶された先行するアドレスの値に対し非順次的であると
決定すれば、非順次的モニタ118は、この現行の非順
次的アドレスが、(先行アドレスラッチ132内に記憶
された)先行するアドレスの上位18ビットとともに、
メモリタグ装置116内に記憶されるように、適切な読
出信号をメモリタグ装置116に与える。こうして比較
器120は、記憶された「先行」アドレスを、バス15
0で実行される現行の取出サイクルのアドレスの値と比
較し、そうしてタグヒットが発生したかどうかを決定で
きる。
【0034】メモリ取出状態マシン110は、CPUコ
ア52が現在要求する命令が先取りコードバッファ11
2に含まれているかどうかを決定できることにさらに注
意されたい。以前に述べたように、コードが先取りコー
ドバッファ112に含まれていなければ、メモリ取出状
態マシンは、システムメモリ62からコードを取出す。
【0035】先行するラインのアドレスの上位18ビッ
トを、メモリタグ装置116の特定のメモリロケーショ
ン内の次に要求される非順次的なラインのアドレス(す
なわち、「現行」非順次的ラインのアドレス)とともに
記憶することに加え、有効ビットはまた、メモリタグ装
置116の各メモリロケーションに関連する。(1つの
実施例においては、各記憶ロケーションの最下位ビット
は、有効ビットとして示される。)システムリセットの
際、有効ビットはすべてクリアされる。次に、以前に述
べられたように、非順次的ラインのアドレスがメモリタ
グ装置116の示されたメモリロケーション内に記憶さ
れると、そのロケーションに対し有効なビットは、非順
次的モニタ118によりセットされる。比較器120
は、もしメモリタグ装置116内の対応するメモリロケ
ーションに対する有効ビットがセットされればタグの
「ヒット」が特定の現行アドレスに対してのみ示される
ように、構成されている。
【0036】先に述べたように、非順次的なラインのコ
ードは、メモリタグ装置116内の有効エントリに対す
るタグヒットが生じたとき、メモリ取出状態マシン11
0により先取りされる。本質的には、このことは、現在
実行中のコードの先行する反復の際にCPUコア52が
要求した次のコードは、その過去の反復に対し、先取り
された非順次的コードであることを意味する。現行の反
復の間に、非順次的先取りが誤って予測され、CPUコ
ア52がその代わりに順次的なラインのコード(すなわ
ち、分岐が発生しなかった)を要求すれば、メモリ取出
状態マシン110は、システムメモリ62からの順次的
なコードを獲得し、それをCPUコア52に与えなけれ
ばならない。このような誤った予測に応答して、非順次
的モニタ118は、メモリタグ装置116内の対応する
非順次的エントリを、そのエントリに対し有効なビット
をクリアすることにより、無効にする。こうして、後続
のコードの反復の際には、非順次的コードよりもむしろ
順次的コードが先取りされる。この態様で、発見的先取
り装置56は、分岐が発生してもしなくとも、そのたび
ごとに、絶えまなく「再学習」し、特定のコードに対す
る次の先取りは、そのコードの先行する反復を基礎とす
る。
【0037】次に図4では、図3の発見的コード先取り
器の動作を示すフロー図が提示される。図4で示される
ように、発見的コード先取り器は最初に、状態402の
間コードがCPUコア52により以前に読出されたかど
うかを決定する。もし以前に読出されたコードがなけれ
ば、要求されたコードはシステムメモリ62から取出さ
れ、ステップ404の間にCPUコア52に与えられ
る。次に、ステップ406の間、順次的ラインのコード
がシステムメモリ62から先取りされ、先取りコードバ
ッファ112にロードされる。
【0038】CPUコア52が次の命令取出サイクルを
実行するとき、先行するコード取出がステップ402の
間に示され、メモリ取出状態マシン110は、ステップ
408の間に、要求されたデータが先取りコードバッフ
ァ112に含まれているかどうかを決定するだろう。も
しコードが先取りコードバッファ112に含まれれば、
ステップ410の間に、そのコードは直接CPUコア5
2に与えられる。反対に、先取りコードバッファ112
がそのコードを含まなければ、ステップ412の間に、
コードはシステムメモリ62から読出され、CPUコア
52に与えられる。この要求されたコードを含むライン
は同時に、先取りコードバッファ112のロケーション
内に記憶される。
【0039】ステップ414の間、非順次的モニタ11
8は、現行のコードの要求が、先行するコード取出のラ
インに対して順次的であるかどうかを決定する。もしコ
ード取出が先行するコード取出に対し連続していれば、
非順次的モニタ118は、メモリタグ装置116内にい
かなるラインアドレス情報の記憶も発生させない。その
代わりに、ステップ415の間、非順次的モニタ118
により、メモリタグ装置116の対応するエントリの有
効ビット(すなわち、先行するアドレスの下位10ビッ
トに対応するメモリロケーション)が、もし非順次的取
出がそのエントリに対し実行されれば(そして誤って予
測されたなら)、クリアされる。こうして、メモリタグ
装置116内のエントリを無効にする。
【0040】もし他方で、現行のコード要求が先行する
コード取出に順次的でなければ、非順次的モニタ118
により、先行するラインのアドレスの上位18ビット
は、現行のラインのアドレスとともに、メモリタグ装置
116内に記憶される。先に述べたように、これらの値
が記憶されることになるメモリタグ装置116のロケー
ションは、先行するラインのアドレスの下位10ビット
によりアドレス指定される。これはステップ416で発
生する。ステップ418では、メモリタグ装置116の
そのロケーションと関連する有効ビットはさらに、エン
トリが有効であることを示してセットされる。ステップ
414、416、および418が実行されるのとほぼ同
時に(直前または直後、または同時)、比較器120
は、ステップ420で、アドレスバス150に駆動され
るときの現在要求されているコードのラインのアドレス
が、メモリタグ装置116内の対応する有効エントリに
関連しているかどうかを決定する。もしメモリタグ装置
116が、アドレスバス150上のラインのアドレスに
対応する有効エントリを有していれば、比較器120
は、ヒットを示し、メモリ取出状態マシン110によ
る、マルチプレクサ126を通した先取りアドレスラッ
チ130への非順次的なコードのラインのアドレスの駆
動を、ステップ422で引き起こす。こうしてこの非順
次的コードは先取りされる。他方、もし比較器120
が、メモリタグ装置116内の有効エントリに対しヒッ
トが生じないことを示せば、次の順次的なラインのアド
レスは、先取りアドレスラッチ130内に記憶され、対
応する順次的コードは、ステップ424で、先取りコー
ドバッファ112にロードされる。
【0041】注目されるのは、図3に対して説明された
実施例では、非順次的コードを、直前に先行するそのコ
ードの反復に基づき(より特定的には、そのコードの過
去の1回の反復に基づき)、非順次的コードを先取りす
るのに対し、発見的先取り装置56は、その代わりとし
て、特定のコードのアドレスの数回の反復の履歴に基づ
き、コードを先取りするように構成できることである。
したがって、そういった実施例に対し、CPUコア52
が、特定の先行するラインのアドレスに続いて、4回の
うち3回非順次的ライン取出を要求すれば、先取りアド
レスラッチ130は、先行するラインのアドレスの次の
反復の際に、メモリタグ装置116により記憶された非
順次的目的アドレスでロードされるであろう。他方、も
し非順次的取出が、特定の先行するラインのアドレスに
続き4回のうち1回行なわれたならば、先取りアドレス
ラッチ130はその代わりに、順次的ラインのアドレス
の値でロードされるであろう。
【0042】さらに注目されるのは、図2および3の実
施例は、キャッシュメモリとの関連で採用されるが、こ
の明細書中で述べられた先取りメカニズムおよび技術
は、キャッシュメモリサブシステムを持たないシステム
においても採用され得ることである。さらに注目される
のは、先取りコードバッファ112は、図3の実施例に
おいて、2つのラインのコードを記憶できるが、先取り
コードバッファ112は、3つといった、いかなる数の
ラインのコードも記憶するように構成できることであ
る。さらに、メモリ取出状態マシン110は、上記の実
施例において、コードのライン(各ラインが2つまたは
3つ以上のワードのデータを含む)を取出すように設計
される一方、メモリ取出状態マシン110はその代わり
に、データの個々のワードを取出すように構成できる。
【0043】最後に注目されるのは、先行アドレスの下
位10ビットおよび現行アドレスの下位10ビットは、
メモリタグ装置116にアドレスを指定するために用い
られる一方、ビットの数は、メモリタグ装置116のメ
モリ容量により異なることである。さらに、注目される
のは、非順次的モニタ118は、先行アドレスラッチ1
32のアドレスを、アドレスバス150で駆動される現
行アドレスと比較する比較回路を用いて実現され得るこ
とである。
【0044】一旦上記開示が十分に理解されれば、様々
な変形および修正が、当業者には明らかになるであろ
う。たとえば、上記の発見的先取りメカニズムおよび技
術は、パイプライン化および非パイプライン化マイクロ
プロセッサアーキテクチャ双方において実現し得ること
が注目される。前掲のクレームは、そういったすべての
変形および修正を含むものとして解釈されることが意図
されている。
【図面の簡単な説明】
【図1】順次的コード先取り器を含む例示のコンピュー
タシステムのブロック図である。
【図2】この発明に従う発見的コード先取り器を含むコ
ンピュータシステムのブロック図である。
【図3】この発明に従う、コンピュータシステムのため
の発見的コード先取り器のブロック図である。
【図4】図3の発見的コード先取り器の動作を示すフロ
ー図である。
【符号の説明】
110 メモリ取出状態マシン 112 先取りコードバッファ 116 メモリタグ装置 118 非順次的モニタ 120 比較器

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 システムメモリから命令コードを先取り
    することのできるコンピュータシステムのための先取り
    装置であって、 先取りされたコードを記憶することのできる先取りコー
    ドバッファと、 先取りされるコードのアドレスの値を記憶することので
    きる先取りアドレスラッチと、 前記先取りコードアドレスラッチ内の前記アドレスの値
    に対応するコードを前記システムメモリから取出すこと
    ができ、および前記コードを前記先取りコードバッファ
    に与えることのできる、メモリ取出状態マシンと、 非順次的コードのアドレスが先行するコードのアドレス
    に対し非順次的であるかどうか検出することのできる、
    非順次的モニタと、 前記非順次的モニタに応答して、前記非順次的コードの
    アドレスを記憶することができる、メモリタグ装置と、 前記メモリタグ装置に結合され、新しいコードのアドレ
    スが前記メモリタグ装置内のエントリに対応するかどう
    かを決定することのできる、比較器装置とを含み、前記
    非順次的コードのアドレスは、前記先取りアドレスラッ
    チに与えられる、先取り装置。
  2. 【請求項2】 前記非順次的コードは、もし前記比較器
    装置が、前記新しいコードの前記アドレスが前記メモリ
    タグ装置内の前記エントリに対応することを示せば、前
    記先取りアドレスラッチに与えられる、請求項1に記載
    の先取り装置。
  3. 【請求項3】 前記メモリタグ装置は、前記非順次的モ
    ニタによりアサートされた書込信号に応答して前記非順
    次的コードのアドレスを記憶する、請求項1に記載の先
    取り装置。
  4. 【請求項4】 もし前記非順次的コードの前記アドレス
    が、前記先行するコードの前記アドレスに対し非順次的
    であれば、前記非順次的モニタは前記書込信号をアサー
    トする、請求項3に記載の先取り装置。
  5. 【請求項5】 前記新しいコードの前記アドレスの少な
    くとも一部は、前記メモリタグ装置のアドレス入力に与
    えられる、請求項1に記載の先取り装置。
  6. 【請求項6】 前記メモリタグ装置はランダムアクセス
    メモリである、請求項1に記載の先取り装置。
  7. 【請求項7】 前記メモリタグ装置はさらに、前記非順
    次的コードのアドレスに対応する、前記先行するコード
    の前記アドレスの少なくとも一部を記憶することができ
    る、請求項1に記載の先取り装置。
  8. 【請求項8】 前記比較器装置は、前記先行するコード
    の前記アドレスの前記少なくとも一部を、前記新しいコ
    ードのアドレスと比較する、請求項7に記載の先取り装
    置。
  9. 【請求項9】 順次的ラインのアドレスの値を前記先取
    りアドレスラッチに与えるための順次的ライン加算器を
    さらに含む、請求項1に記載の先取り装置。
  10. 【請求項10】 前記順次的なラインのアドレスの値
    は、もし前記非順次的モニタが、順次的コードのアドレ
    スが前記先行するコードのアドレスに対し順次的である
    と決定すれば、前記先取りアドレスラッチに与えられ
    る、請求項9に記載の先取り装置。
  11. 【請求項11】 前記非順次的モニタに結合され、前記
    先行するコードの前記アドレスを記憶するための、先行
    アドレスラッチをさらに含む、請求項1に記載の先取り
    装置。
  12. 【請求項12】 前記先取りコードバッファは、先取り
    されたコードの数ワードの1ラインを記憶することがで
    きる、請求項1に記載の先取り装置。
  13. 【請求項13】 前記先取りコードバッファは、先取り
    されたコードの複数のラインを記憶することができる、
    請求項1に記載の先取り装置。
  14. 【請求項14】 選択的に、順次的コードの前記アドレ
    スを前記先取りアドレスラッチに与えるため、または、
    前記非順次的コードの前記アドレスを前記先取りアドレ
    スラッチに与えるための、マルチプレクサをさらに含
    む、請求項11に記載の先取り装置。
  15. 【請求項15】 システムメモリから命令コードを先取
    りするための方法であって、 CPUコアによる特定のコードのリクエストのアドレス
    が、先行コードのリクエストのアドレスに対し非順次的
    であるかどうか決定するステップと、 前記特定のコードのアドレスが、もし前記先行コードの
    リクエストのアドレスに対し非順次的であれば記憶する
    ステップと、 次のコードのリクエストのアドレスが、前記先行コード
    のリクエストに対応するかどうか決定するステップと、 前記特定のコードを前記システムメモリから先取りする
    ステップとを含む、システムメモリから命令コードを先
    取りするための方法。
  16. 【請求項16】 前記システムメモリから前記特定のコ
    ードの前記アドレスを先取りする前記ステップは、もし
    前記次のコードのリクエストの前記アドレスが、前記先
    行コードのリクエストの前記アドレスに対応すれば実行
    される、請求項15に記載の、システムメモリから命令
    コードを先取りするための方法。
  17. 【請求項17】 もし前記次のコードのリクエストの前
    記アドレスが、前記先行コードのリクエストの前記アド
    レスに対応しなければ、順次的コードのアドレスを先取
    りするステップをさらに含む、請求項16に記載の、シ
    ステムメモリから命令コードを先取りするための方法。
  18. 【請求項18】 前記システムメモリから前記特定のコ
    ードの前記アドレスを先取りする前記ステップは、前記
    特定のコードの前記アドレスを有する1つのライン全体
    を先取りするステップを含む、請求項15に記載の、シ
    ステムメモリから命令コードを先取りするための方法。
  19. 【請求項19】 先取りコードバッファ内の前記特定の
    コードを記憶するステップをさらに含む、請求項15に
    記載の、システムメモリから命令コードを先取りするた
    めの方法。
  20. 【請求項20】 前記先行コードのリクエストの前記ア
    ドレスを記憶するステップをさらに含む、請求項15に
    記載の、システムメモリから命令コードを先取りするた
    めの方法。
JP7049593A 1994-03-11 1995-03-09 システムメモリから命令コードを先取りするための先取り装置および方法 Pending JPH0816394A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/209,986 US5666505A (en) 1994-03-11 1994-03-11 Heuristic prefetch mechanism and method for computer system
US209986 1994-03-11

Publications (1)

Publication Number Publication Date
JPH0816394A true JPH0816394A (ja) 1996-01-19

Family

ID=22781155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7049593A Pending JPH0816394A (ja) 1994-03-11 1995-03-09 システムメモリから命令コードを先取りするための先取り装置および方法

Country Status (3)

Country Link
US (1) US5666505A (ja)
EP (1) EP0671684A3 (ja)
JP (1) JPH0816394A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893142A (en) * 1996-11-14 1999-04-06 Motorola Inc. Data processing system having a cache and method therefor
US6871275B1 (en) * 1996-12-12 2005-03-22 Intel Corporation Microprocessor having a branch predictor using speculative branch registers
US6393527B1 (en) * 1998-12-18 2002-05-21 Ati International Srl Prefetch buffer with continue detect
US6675280B2 (en) 2001-11-30 2004-01-06 Intel Corporation Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher
US7260704B2 (en) 2001-11-30 2007-08-21 Intel Corporation Method and apparatus for reinforcing a prefetch chain
US6954840B2 (en) 2001-11-30 2005-10-11 Intel Corporation Method and apparatus for content-aware prefetching
US7093077B2 (en) 2001-11-30 2006-08-15 Intel Corporation Method and apparatus for next-line prefetching from a predicted memory address
US8365086B2 (en) * 2005-05-03 2013-01-29 The Mathworks, Inc. System and method for building graphical instrument panels
JP2008257508A (ja) * 2007-04-05 2008-10-23 Nec Electronics Corp キャッシュ制御方法およびキャッシュ装置並びにマイクロコンピュータ
US10254961B2 (en) * 2017-02-21 2019-04-09 International Business Machines Corporation Dynamic load based memory tag management
US10649776B2 (en) * 2018-06-29 2020-05-12 Western Digital Technologies, Inc. System and method for prediction of multiple read commands directed to non-sequential data
US10642502B2 (en) 2018-06-29 2020-05-05 Western Digital Technologies, Inc. System and method for prediction of read commands to non-sequential data
US11416263B1 (en) 2021-02-12 2022-08-16 Western Digital Technologies, Inc. Boosted boot procedure by background re-arrangement of read patterns
US11693779B2 (en) 2021-04-30 2023-07-04 International Business Machines Corporation Prefetch of random data using application tags

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146570A (en) * 1984-10-31 1992-09-08 International Business Machines Corporation System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
US4860197A (en) * 1987-07-31 1989-08-22 Prime Computer, Inc. Branch cache system with instruction boundary determination independent of parcel boundary
US4914584A (en) * 1988-10-17 1990-04-03 Gibson Glenn A Rules and apparatus for an intermediate code memory that buffers code segments
JPH0769811B2 (ja) * 1988-12-21 1995-07-31 松下電器産業株式会社 データ処理装置
US5394530A (en) * 1991-03-15 1995-02-28 Nec Corporation Arrangement for predicting a branch target address in the second iteration of a short loop

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ

Also Published As

Publication number Publication date
US5666505A (en) 1997-09-09
EP0671684A2 (en) 1995-09-13
EP0671684A3 (en) 1996-02-28

Similar Documents

Publication Publication Date Title
US6907520B2 (en) Threshold-based load address prediction and new thread identification in a multithreaded microprocessor
US5941981A (en) System for using a data history table to select among multiple data prefetch algorithms
US8069336B2 (en) Transitioning from instruction cache to trace cache on label boundaries
JP5089186B2 (ja) データ・キャッシュ・ミス予測およびスケジューリング
US6611910B2 (en) Method for processing branch operations
US6134634A (en) Method and apparatus for preemptive cache write-back
JP3907809B2 (ja) 複合分岐予測およびキャッシュ先取りをするマイクロプロセッサ
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
EP0380859B1 (en) Method of preprocessing multiple instructions
JP5084280B2 (ja) データ・ラインのための自己プリフェッチl2キャッシュ機構
JP2937485B2 (ja) スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置
US5446850A (en) Cross-cache-line compounding algorithm for scism processors
EP0718758A2 (en) Mechanism to identify instruction word boundaries in cache
US5930832A (en) Apparatus to guarantee TLB inclusion for store operations
JPH10198562A (ja) マイクロプロセッサの動作方法
US5666505A (en) Heuristic prefetch mechanism and method for computer system
JPH06187150A (ja) キャッシュメモリ中でインストラクションを保管する方法及び回路
JP3977931B2 (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
KR101049319B1 (ko) 분기 타겟 어드레스 캐시에서 룩업들을 감소시키는 방법 및장치
JP3762816B2 (ja) マイクロプロセッサにおける早期例外を追跡するシステム及び方法
US5987599A (en) Target instructions prefetch cache
JP4195778B2 (ja) マイクロプロセッサの命令プリフェッチ量制御のための装置および方法
US6769057B2 (en) System and method for determining operand access to data
JP2001356905A (ja) スタックに基づいたパイプライン型プロセッサにおけるレジスタ依存性を取扱うシステム及び方法
US5895497A (en) Microprocessor with pipelining, memory size evaluation, micro-op code and tags

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041012

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050111

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050614