JP2005310134A - 記憶性能の改善 - Google Patents

記憶性能の改善 Download PDF

Info

Publication number
JP2005310134A
JP2005310134A JP2005100190A JP2005100190A JP2005310134A JP 2005310134 A JP2005310134 A JP 2005310134A JP 2005100190 A JP2005100190 A JP 2005100190A JP 2005100190 A JP2005100190 A JP 2005100190A JP 2005310134 A JP2005310134 A JP 2005310134A
Authority
JP
Japan
Prior art keywords
data
storage
gosb
processor
cache
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.)
Granted
Application number
JP2005100190A
Other languages
English (en)
Other versions
JP4452644B2 (ja
Inventor
Vladimir Pentkovski
ペントコヴスキー ヴラディーミル
Chen Ling
チェン リング
Garg Vivek
ガルガ ヴィヴェック
Buch Deep
ブッチ ディープ
David Zhao
ザオ デーヴィッド
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2005310134A publication Critical patent/JP2005310134A/ja
Application granted granted Critical
Publication of JP4452644B2 publication Critical patent/JP4452644B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

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

Abstract

【課題】複数のオーナー権に対する読み取り動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより1つのマイクロプロセッサでの記憶性能を改善する。
【解決手段】一つの大域的に観測可能な記憶バッファ(GoSB)のような一つの記憶媒体を用いて、大域的に観測可能になった記憶データの追跡を続ける。GoSB内で大域的に観測されたデータを追跡することにより、前の記憶データが大域的に観測されたかどうかにかかわらず、記憶データを、一つのレベル1キャッシュや一つのラインフィルバッファのように監視可能な複数の記憶装置に記憶でき、これによりマイクロプロセッサ内の記憶データの処理能力を増大させる。
【選択図】図2

Description

本発明の複数の実施形態は、マイクロプロセッサアーキテクチャに関する。より詳細には、本発明の複数の実施形態は、複数のオーナー権に対する読み取り動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより1つのマイクロプロセッサでの記憶性能を改善する1つの方法及び装置に関する。
1つのマイクロプロセッサは、1つの「フロントサイドバス」(FSB)として既知である1つの共有コンピュータシステムバスを介して1つのコンピュータシステムと典型的に通信する。しかし、マイクロプロセッサ性能が改善されるにつれて、そして、複数のコンピュータシステムが、同じFSBに沿って相互接続された複数のプロセッサを用いる程、FSBは1つの性能障害になる。
この問題に対する1つのアプローチは、1つのマルチプロセッサシステム内の様々な複数のプロセッサ間で複数のポイントツーポイント(PtP)リンクを使用することである。複数のPtPリンクは、マルチプロセッサネットワーク内の各プロセッサに対して専用の複数のバストレースとして典型的に実施される。典型的な複数のPtPリンクはFSBよりも大きい処理能力を備えるが、複数のPtPリンクの待ち時間がFSBの待ち時間よりもひどい可能性がある。
PtPの待ち時間は、特に、複数の記憶動作間で厳しい順序付けを必要とする複数のマイクロプロセッサアーキテクチャ内のマイクロプロセッサにより実行される複数の記憶動作の性能に特に影響を与える可能性がある。複数の厳しい順序付け要件のため、例えば、前に発せられた複数の記憶動作は、後の複数の記憶動作をプロセッサにより発しさせる前にシステム内のその他の複数のバスエージェントに対して典型的にアクセス可能である必要があり、または、少なくとも検知可能である必要がある。1つのコンピュータシステム内のその他の複数のバスエージェントに対する1つの動作、例えば、1つの記憶動作、ロード動作またはその他の動作の検知能力はしばしば、動作の「大域的観測」と称される。典型的に、システム内のその他の複数のエージェントが動作または命令の存在を検知できる1つのキャッシュまたはその他のメモリに、複数のマイクロプロセッサ動作または命令が記憶された後にこれらマイクロプロセッサ動作または命令だけが大域的に観測可能となる。
1つの厳しい順序付けマイクロプロセッサアーキテクチャでの複数の記憶動作の場合、前の記憶動作が大域的に観測されるまで、典型的な複数のマイクロプロセッサは1つの記憶バッファまたはその他の記憶待ち行列構造体から、あるいは場合によってプロセッサ実行ユニットから1つの記憶動作を発しない。1つの記憶動作を大域的に観測できるように記憶動作が記憶されるキャッシュまたはその他の記憶領域の1つのラインの排他的制御を得るために、典型的な複数のマイクロプロセッサアーキテクチャでの記憶動作の発生は、オーナー権に対する読み取り(RFO)動作のような1つの動作により先行される。しかし、典型的な複数のマイクロプロセッサアーキテクチャでは、前の複数の記憶動作が大域的に観測されるまで複数のRFO動作は発せられない。
図1には、1つの厳しく順序付けられたマイクロプロセッサアーキテクチャで発せられた複数の記憶動作を処理する1つの従来技術のキャッシュアーキテクチャを示す。記憶バッファは、キャッシュラインフィルバッファ(LFB)を介してレベル1(L1)キャッシュの複数のアドレスX,Yにそれぞれ記憶されるデータX,Yを含む。しかし、典型的な従来技術の複数のアーキテクチャでは、L1キャッシュ内のデータX及びアドレスXが大域的に観測されるまで、記憶データX,Yのどちらも、あるいは、それらの対応の複数のRFO動作を発しさせられない。
従来技術の複数のアーキテクチャで複数の記憶動作を発しさせる際の待ち時間のため、最終的にはリタイアのため、1つのマイクロプロセッサと、それが存在するシステムとの全性能を妥協するおそれがある。更に、PtPの複数のプロセッサシステムがもっと広がるにつれ、この問題を悪化させるおそれがある。その理由は、システム内の各プロセッサが、システム内のその他の複数のプロセッサにより記憶されているデータに依存する可能性があるためである。
本発明の複数の実施形態を例として示すが、複数の添付図面の複数の図表に限定しない。図中、複数の同一符号は、複数の類似の構成要素を示す。
本発明の複数の実施形態はマイクロプロセッサアーキテクチャに関する。特に、本発明の複数の実施形態は、複数のオーナー権に対する読み取り(RFO)動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより1つのマイクロプロセッサでの記憶性能を改善する1つの方法及び装置に関する。
記憶バッファ効率を改善しながら、ばらばらの順序の複数のRFO動作を容易にするため、本発明の少なくとも1つの実施形態は、1つの大域的に観測可能な記憶バッファ(GoSB)のような1つの記憶媒体を用いて、大域的に観測可能になった記憶データの追跡を続けることを含む。GoSB内で大域的に観測されたデータを追跡することにより、前の記憶データが大域的に観測されたかどうかにかかわらず、記憶データを、1つのレベル1(L1)キャッシュや1つのラインフィルバッファ(LFB)のように監視可能な複数の記憶装置に記憶でき、これによりマイクロプロセッサ内の記憶データの処理能力及び複数の記憶動作の性能を増大させる。
図2には、本発明の少なくとも1つの実施形態と併せて用いることができる1つのコンピュータシステムを示す。1つのプロセッサ205は、1つのキャッシュメモリ210及びメインメモリ215からのデータにアクセスする。本発明の一実施形態の位置206を図2のプロセッサ内に示す。しかし、本発明の複数の実施形態を、1つの分離したバスエージェントのようなシステム内の、または、システムを通して分散されたその他の複数の装置で実施できる。メインメモリをダイナミックランダムアクセスメモリ(DRAM)、1つのハードディスクドライブ(HDD)220、または、様々な複数の記憶装置及び複数の技術を含むコンピュータシステムから離れて配置された1つのメモリソース230とすることができる。キャッシュメモリをプロセッサ内に配置でき、または、プロセッサのローカルバス207上のようにプロセッサに極めて接近して配置できる。更に、6個のトランジスタ(6T)セルのような比較的高速の複数のメモリセルあるいは、ほぼ等しい、または、より高速のアクセス速度のその他の複数のメモリセルをもってキャッシュメモリを構成することができる。
図3には、本発明の少なくとも1つの実施形態を用いることができる1つのバスエージェントを示す。特に、図3には、本発明の少なくとも1つの実施形態の1つ以上の部分305を含む1つのマイクロプロセッサ301を示す。図3のマイクロプロセッサ内には、複数の記憶動作のような複数の動作をマイクロプロセッサ内で実行する1つの実行ユニット310を更に示す。本発明の複数の実施形態の複数の部分及び実行ユニットの正確な、または相対的な位置は、図3に示すそれらに限定されるものではない。
図4には、1つのGoSB401が、複数の記憶動作を追跡し、大域的に観測可能になった複数の対応のデータ値を記憶するのに用いられる本発明の一実施形態を示す。図2のGoSBの各エントリー405は、エントリーに参照を付けることができる1つのインデックス値フィールド406と、記憶動作の対象アドレスを示す1つのアドレス値フィールド407と、記憶動作と関連するデータを記憶する1つのデータ値フィールド408と、まだ大域的に観測可能になっていない複数の記憶動作の1つの総数をカウントする1つのカウンタフィールド409と、大域的に観測可能な記憶動作に対応するデータを利用できるかどうか、そして、GoSBのデータフィールド内に記憶されているかどうかを示す1つの有効ビットフィールド410とを含む。
図4には、1つの非コミット記憶待ち行列(NcSQ)415をも示す。NcSQは、ラインフィルバッファ(LFB)420またはレベル1(L1)キャッシュ425に記憶されているが、まだ大域的に観測可能になっていない複数の記憶動作に対応するデータ及びアドレス情報を記憶する。図4に示す実施形態では、NcSQは、複数のエントリーを有する1つの先入れ先出し(FIFO)待ち行列であり、これらエントリーは、1つの特定の記憶動作に対応するアドレス情報を記憶する1つのアドレスフィールド416と、記憶動作に対応するデータを記憶する1つのデータフィールド417と、GoSB内の対応のエントリーに参照を付けるインデックス情報を記憶する1つのGoSBインデックスフィールド418とを含む。
図4に示す実施例では、記憶バッファ430から複数の記憶動作が発せられ、転送され、または読み取られ、NcSQ並びに、L1キャッシュまたはLFBのどちらかに記憶され、1つの対応のエントリーがGoSB内に割り付けられる。記憶データが大域的に観測可能になった後、データがNcSQから対応のGoSBエントリーに記憶される。
1つの特定の対象アドレスに対応する記憶データがNcSQ内に記憶されているので、GoSB内の対応のカウンタフィールドがインクリメントされる。複数の記憶動作が大域的に観測可能になったので、対応の記憶アドレス及びデータがNcSQから除去され、GoSB内の対応のカウンタフィールドがデクリメントされる。1つのGoSBカウンタフィールドが零に達した後、対応のGoSBエントリーを割り当て解除し、1つの新たな記憶動作に再割り当てすることができる。
図4に示す本発明の実施形態では、L1キャッシュ及びLFBの各々を、1つの記憶データに対する1つ以上のバスエージェント、例えば1つのマイクロプロセッサにより監視できる。L1キャッシュ及びLFBの各エントリー内には、1つのGoSBインデックスフィールド426及び1つのGoSB有効フィールド427がある。GoSBインデックスフィールドは、GoSB内で対応する記憶データの位置を1つの監視エージェントに示す。GoSB有効フィールドは、対応のGoSBインデックスが有効であるか、そして、まだ大域的に観測可能になっていないかを示す。また、データに対する1つのバスエージェントによりGoSBを監視でき、GoSBはデータを発生し、あるいはその代わりに、監視エージェントにより用いられるべき最も有効なデータを指す。L1キャッシュまたはLFBとGoSBとの双方が、要求されたデータを含んでいれば、GoSBはデータを要求エージェントに供給する。
図5には、本発明の一実施形態を示し、この場合、複数のGoSBインデックス及びGoSB有効フィールドが複数のL1キャッシュまたはLFBエントリー内に記憶されていないが、その代わり、GoSBインデックス501フィールドが記憶バッファの複数のエントリー内に記憶されている。図5に示す実施形態では、記憶動作が記憶バッファからLFBまたはL1キャッシュへ読み取られ、転送され、または発せられるまで待つというよりはむしろ、記憶動作が非投機的に、または「上位」になると直ぐに1つのGoSBエントリーを1つの記憶動作に対して割り付けできる。
あるいはまた、1つの対応の記憶バッファフィールドがアクセスされた時に、ロジックを用いて1つの特定のGoSBインデックスフィールドを指すことによりGoSBインデックスフィールド501を、記憶バッファと同じ構造体内に物理的にではなく、論理的に記憶バッファと関連付けることができる。いずれにしても、記憶バッファの各エントリーと関連するGoSBインデックスフィールドにより複数の監視エージェントが記憶データをGoSB内に早期に位置付けできるので、監視エージェントは、データがGoSB内で大域的に観測可能になると直ぐにデータを取り出せるようになる。図5に示す実施形態では、対応の記憶データが記憶バッファ内に記憶される前に、複数のオーナー権に対する読み取り(RFO)動作を発しさせることができる。図5に示す実施形態のその他の複数の態様は、図4に示す本発明の実施形態に関して既に説明した態様に類似する。
図6は、本発明の少なくとも1つの実施形態と関連する複数の動作を示す1つのフローチャートである。図6を参照する。動作601において、1つの第1の記憶動作をマイクロプロセッサ実行ロジックから発し、対応のデータを1つの記憶バッファエントリー内に記憶する。第1の記憶動作を記憶バッファから発しさせる前か後かに、動作602において、1つのGoSBエントリーを割り付け、1つのRFO動作を実行して、GoSB内並びに、L1キャッシュまたはLFB内で1つのラインの排他的なオーナー権を得る。次に、第1の記憶動作データをNcSQ並びに、1つのLFBまたは1つのL1キャッシュエントリー内に記憶する。動作603において、対応のGoSBカウンタをインクリメントする。
動作604において、1つの第2の記憶動作を発し、対応のデータを1つの記憶バッファエントリー内に記憶する。動作605において、第2の記憶動作を記憶バッファから発しさせる前か後かに、1つのGoSBエントリーを割り付け、1つのRFO動作を実行して、GoSB内並びに、L1キャッシュまたはLFB内で1つのラインの排他的なオーナー権を得る。次に、動作606において、第2の記憶動作をNcSQ並びに、LFBまたはL1キャッシュに移動し、対応のGoSBのカウンタをインクリメントする。
本発明の少なくとも1つの実施形態では、第1及び第2の記憶動作データが、同じ期間にLFB及びL1キャッシュ内に存在する。第1の記憶動作のデータが大域的に観測可能になる前に、第2の記憶に対応するRFOデータがL1キャッシュまたはLFBから戻されていれば、操作607において、第2の記憶動作を、GoSBの対応のエントリーにでなく、L1及び/またはLFBの適切なエントリーに併合する。しかし、第2の記憶動作のRFOデータがL1キャッシュまたはLFBから戻される前に第1の記憶動作のデータが大域的に観測可能であれば、動作608において、第2の記憶動作データをGoSBの適切なエントリーに併合できる。大域的に観測可能になっていない、あるいは、大域的に観測可能になった、GoSB内に割り当てられた1つの特定の記憶動作に関連するデータの数を示すように1つのカウンタをインクリメントまたはデクリメントする。
複数の相補型金属酸化膜半導体(CMOS)回路素子(ハードウェア)、または、1つの記憶媒体内に記憶された複数の命令(ソフトウェア)であって、1つのマイクロプロセッサのような1つの機械により実行されると、ここで説明した複数の動作をマイクロプロセッサに実行させる複数の命令、あるいは、ハードウェア及びソフトウェアの1つの組み合わせを用いるロジックを含むが、これに限定されない多くの手段で、ここで示した本発明の複数の実施形態のいずれかまたはすべての部分を実施できる。ここで言及した「マイクロプロセッサ」または「プロセッサ」は、複数のCMOS装置を含み、1つ以上の入力信号または命令を受信した1つの結果として複数の動作を実行できるいかなる機械または装置をも意味するものとする。
複数の例示的な実施形態を参照して本発明を説明したが、この説明は、1つの制限的な意味に解釈されるものではない。本発明が関連する複数の当業者にとって明らかであるその他の複数の実施形態と同様に、複数の例示的な実施形態の様々な複数の変形形態が本発明の精神及び範囲内にあると見なす。
複数の発せられた記憶動作を、1つの厳しく順序付けられたマイクロプロセッサアーキテクチャ内で処理する1つの従来技術のキャッシュアーキテクチャを示す。 本発明の少なくとも1つの実施形態を用いうる1つのコンピュータシステムを示す。 本発明の少なくとも1つの実施形態を用いうる1つのバスエージェントを示す。 複数の記憶動作を追跡し、大域的に観測可能になった複数の対応のデータ値を記憶するのに1つの大域的観測記憶バッファ(GoSB)が用いられる本発明の一実施形態を示す。 複数のGoSBインデックス及びGoSB有効フィールドが複数のレベル1(L1)キャッシュまたはラインフィルバッファ(LFB)エントリー内に記憶されていないが、その代わり、GoSBインデックスフィールドが記憶バッファの複数のエントリー内に記憶されている本発明の一実施形態を示す。 本発明の少なくとも1つの実施形態と関連する複数の動作を示す1つのフローチャートである。

Claims (38)

  1. 1つのプロセッサであって、
    データを記憶する1つの第1記憶ユニットと、
    前記第1記憶ユニットに結合されて、前記データが1つのバスエージェントにより検知可能になった後のみに前記データを記憶する1つの第2記憶ユニットと
    を備える、プロセッサ。
  2. 前記データが前記第1記憶ユニット内に記憶されているかどうかを前記第2記憶ユニットに示す1つのインジケータを更に備える、請求項1に記載のプロセッサであって、プロセッサ。
  3. 前記第1記憶ユニットが1つのラインフィルバッファである、請求項1に記載のプロセッサ。
  4. 前記第1記憶ユニットが1つのレベル1キャッシュである、請求項1に記載のプロセッサ。
  5. 前記第1記憶ユニットが、1つのバスエージェント内に記憶されるべきデータを記憶する1つの記憶バッファである、請求項1に記載のプロセッサ。
  6. 前記インジケータが、1つのバスエージェントにより検知可能でない前記データを記憶する1つの先入れ先出し(FIFO)待ち行列である、請求項2に記載のプロセッサ。
  7. 前記第2記憶ユニットが、前記FIFO待ち行列内での複数のエントリーの1つの総数をカウントする1つのカウンタを備える1つのバッファである、請求項6に記載のプロセッサ。
  8. 1つの厳しい順序付け指示アーキテクチャを有する1つのプロセッサであって、
    このプロセッサが1つの記憶バッファを具え、前記記憶バッファから1つの第2データ値が読み取られる前に前記記憶バッファから読み取られる1つの第1データ値が大域的に観測されているかどうかに関わらず、前記記憶バッファから前記第2データ値が読み取られ、1つのキャッシュメモリに記憶されるようになっているプロセッサ。
  9. 前記第1及び第2データ値が大域的に観測されるようになった後、これら第1及び第2データ値のみを記憶する大域的観測記憶バッファ(GoSB)を更に備える、請求項8に記載のプロセッサ。
  10. 前記キャッシュメモリ内に記憶されているが、まだ大域的に観測されていないデータを記憶する1つの非コミット記憶待ち行列(NcSQ)を更に備える、請求項9に記載のプロセッサ。
  11. 前記GoSBが、前記NcSQ内に記憶されたデータの1つの総数に対応する1つのカウント値を備える、請求項10に記載のプロセッサ。
  12. 前記GoSBが、このGoSB内に記憶されるべき各データ値に対する1つのインデックスフィールドと、前記GoSB内に記憶されるべき1つのデータ値が書き込まれる1つの位置に対応する1つのアドレスフィールドとを備える、請求項9に記載のプロセッサ。
  13. 前記NcSQが、前記GoSB内の1つの位置を示す1つのインデックス値を記憶する1つのインデックスフィールドを具え、前記GoSBでは、1つの対応のデータ値が大域的に観測可能になった後にこのデータ値が記憶されるようになっている、請求項10に記載のプロセッサ。
  14. 前記キャッシュメモリが1つのレベル1(L1)キャッシュを備える、請求項13に記載のプロセッサ。
  15. 前記キャッシュメモリが、1つのレベル1(L1)キャッシュに書き込まれるべきデータを記憶する1つのラインフィルバッファ(LFB)を備える、請求項13に記載のプロセッサ。
  16. データが大域的に観測されるようになった後にこのデータが前記NcSQから除去されるようになっている、請求項13に記載のプロセッサ。
  17. 前記L1キャッシュまたは前記LSBが1つのデータ値を1つの監視エージェントに供給する前に前記GoSBが前記データ値を前記監視エージェントに供給するようになっている、請求項15に記載のプロセッサ。
  18. 1つのコンピュータシステムであって、
    1つの第1データ値を少なくとも1つのバスエージェントに記憶するための1つの第1命令と、前記第1データ値が少なくとも1つのバスエージェントに記憶された後に1つの第2データ値を少なくとも1つのバスエージェントに記憶するための1つの第2命令とを記憶する1つのメモリユニットと、
    前記第1及び第2データ値のどちらかが少なくとも1つのバスエージェントにより検知可能になる前に前記第1及び第2データ値を同時に記憶する1つのレベル1(L1)キャッシュ及び1つのラインフィルバッファ(LFB)と、
    1つの第1バスエージェントと
    を備え、
    前記第1及び第2データ値の双方またはいずれか一方が前記第1バスエージェントにより前記L1キャッシュまたは前記LFB内で検知可能になる前に前記第1バスエージェントが前記第1及び第2データ値の双方またはいずれか一方を検知するようになっている、
    コンピュータシステム。
  19. 前記第1及び第2データ値が少なくとも1つのバスエージェントにより検知可能になった後に前記第1及び第2データ値を記憶する1つの記憶構造体を更に備える、請求項18に記載のコンピュータシステム。
  20. 前記第1バスエージェントが、前記第1及び第2データ値の双方またはいずれか一方に対する前記L1キャッシュ及び前記LSBの双方またはいずれか一方を監視するようになっている、請求項18に記載のコンピュータシステム。
  21. 前記第1及び第2データ値が、少なくとも1つのバスエージェント内にプログラム順に記憶される、請求項19に記載のコンピュータシステム。
  22. 前記第1及び第2命令が前記メモリユニット内にプログラム順に記憶される、請求項21に記載のコンピュータシステム。
  23. 前記L1キャッシュ及び前記LFBの双方またはいずれか一方が、1つのポイントツーポイントバスを介して前記第1バスエージェントに結合されている、請求項22に記載のコンピュータシステム。
  24. 前記メモリユニットが1つのダイナミックランダムアクセスメモリ(DRAM)である、請求項23に記載のコンピュータシステム。
  25. 前記L1キャッシュ及び前記LFBの双方またはいずれか一方が1つのマイクロプロセッサ内に存在している、請求項24に記載のコンピュータシステム。
  26. 前記第1バスエージェントが、1つのマイクロプロセッサ、1つのDRAM、1つの磁気記憶媒体、1つのバスアービトレーション装置及び1つの無線記憶媒体から成る1つのリストから選択される1つの装置を備える、請求項25に記載のコンピュータシステム。
  27. 1つの装置であって、
    大域的に観測可能なデータが対応する1つの記憶動作が非投機的になった後で、かつ、前記データが1つの記憶バッファから読み取られる前に前記データを記憶するように1つの大域的観測記憶バッファ(GoSB)内に1つのエントリーを割り当てる割り当てロジックと、
    前記データが大域的に観測可能になる前に前記データを記憶するように前記GoSBに結合された1つのキャッシュメモリと、
    前記キャッシュメモリ内に前記データを記憶する前に前記キャッシュ内で1つのラインの排他的オーナー権を得る、オーナー権に対する読み取り(RFO)ロジックと
    を備える、装置。
  28. 前記GoSBのエントリーが割り当てられる前に前記RFOロジックが前記キャッシュメモリ内に前記ラインの排他的オーナー権を得るようになっている、請求項27に記載の装置。
  29. 前記記憶バッファが、前記GoSB内で前記割り当てられたエントリーの前記位置を示す1つのインデックスを備える、請求項28に記載の装置。
  30. 前記データが大域的に観測可能になると、前記GoSB内で前記割り当てられたエントリーが再割り当てされる、請求項29に記載の装置。
  31. 複数の厳しく順序付けられたメモリ動作を発する1つの方法であって、
    1つの第1記憶動作を発しさせる段階と、
    前記第1記憶動作と関連する1つの第1データを1つの記憶バッファ内に記憶する段階と、
    1つの第2記憶動作を発しさせる段階と、
    前記第2記憶動作と関連する1つの第2データを前記記憶バッファ内に記憶する段階と、
    前記第1データを1つの記憶ユニットに記憶する段階と、
    前記第1データが前記記憶ユニット内に記憶されているが、大域的に観測可能でない一期間中に前記第2データを前記記憶ユニットに記憶する段階と
    を備える、方法。
  32. 前記第1データまたは第2データの一方が前記記憶ユニット内に記憶される前に、前記記憶ユニット内の1つのラインについて排他的制御を得る1つの、オーナー権に対する読み取り(RFO)動作を発する段階を更に備える、請求項31に記載の方法。
  33. 前記第1データまたは第2データのどちらかが大域的に観測可能になった後、1つのエントリーを1つの大域的観測記憶バッファ(GoSB)内に割り当てる段階を更に備える、請求項32に記載の方法。
  34. 前記記憶ユニット内に記憶されているが、大域的に観測されていない複数のデータ値の1つの総数を反映するように、1つの記憶アドレス位置に対応して1つのカウンタを更新する段階を更に備える、請求項33に記載の方法。
  35. 前記カウンタが零に等しくなった後、別のデータを記憶するのに前記エントリーを再割り当てする、請求項34に記載の方法。
  36. 複数のデータ値の前記総数に示すように1つの非コミット記憶待ち行列(NcSQ)を更新する段階を更に備える、請求項35に記載の方法。
  37. 前記記憶ユニットが1つのレベル1(L1)キャッシュである、請求項36に記載の方法。
  38. 前記記憶ユニットが1つのラインフィルバッファである、請求項36に記載の方法。
JP2005100190A 2004-03-30 2005-03-30 記憶性能の改善 Expired - Fee Related JP4452644B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/813,942 US7484045B2 (en) 2004-03-30 2004-03-30 Store performance in strongly-ordered microprocessor architecture

Publications (2)

Publication Number Publication Date
JP2005310134A true JP2005310134A (ja) 2005-11-04
JP4452644B2 JP4452644B2 (ja) 2010-04-21

Family

ID=35049879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005100190A Expired - Fee Related JP4452644B2 (ja) 2004-03-30 2005-03-30 記憶性能の改善

Country Status (5)

Country Link
US (2) US7484045B2 (ja)
JP (1) JP4452644B2 (ja)
KR (1) KR100876486B1 (ja)
CN (2) CN101539889B (ja)
TW (1) TWI318373B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484045B2 (en) * 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
US7523265B2 (en) * 2005-03-18 2009-04-21 International Business Machines Corporation Systems and arrangements for promoting a line to exclusive in a fill buffer of a cache
US7836229B1 (en) 2006-06-23 2010-11-16 Intel Corporation Synchronizing control and data paths traversed by a data transaction
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
CN101464839B (zh) * 2009-01-08 2011-04-13 中国科学院计算技术研究所 一种访存缓冲装置及方法
EP2811413B1 (en) 2013-05-02 2016-10-19 Huawei Technologies Co., Ltd. Computer system, access method and apparatus for peripheral component interconnect express endpoint device
US10754782B1 (en) * 2019-03-30 2020-08-25 Intel Corporation Apparatuses, methods, and systems to accelerate store processing

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043886A (en) * 1988-09-16 1991-08-27 Digital Equipment Corporation Load/store with write-intent for write-back caches
US5202969A (en) * 1988-11-01 1993-04-13 Hitachi, Ltd. Single-chip-cache-buffer for selectively writing write-back and exclusively writing data-block portions to main-memory based upon indication of bits and bit-strings respectively
JPH0680499B2 (ja) * 1989-01-13 1994-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムのキャッシュ制御システムおよび方法
US5210848A (en) * 1989-02-22 1993-05-11 International Business Machines Corporation Multi-processor caches with large granularity exclusivity locking
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5255387A (en) * 1990-04-27 1993-10-19 International Business Machines Corporation Method and apparatus for concurrency control of shared data updates and queries
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
TW234174B (en) * 1993-05-14 1994-11-11 Ibm System and method for maintaining memory coherency
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
US5680572A (en) * 1994-02-28 1997-10-21 Intel Corporation Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers
US5671444A (en) * 1994-02-28 1997-09-23 Intel Corporaiton Methods and apparatus for caching data in a non-blocking manner using a plurality of fill buffers
US5526510A (en) * 1994-02-28 1996-06-11 Intel Corporation Method and apparatus for implementing a single clock cycle line replacement in a data cache unit
TW388982B (en) 1995-03-31 2000-05-01 Samsung Electronics Co Ltd Memory controller which executes read and write commands out of order
US5867400A (en) * 1995-05-17 1999-02-02 International Business Machines Corporation Application specific processor and design method for same
US5652859A (en) 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5893165A (en) 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US5860107A (en) 1996-10-07 1999-01-12 International Business Machines Corporation Processor and method for store gathering through merged store operations
US6185660B1 (en) 1997-09-23 2001-02-06 Hewlett-Packard Company Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6460119B1 (en) * 1997-12-29 2002-10-01 Intel Corporation Snoop blocking for cache coherency
DE19807872A1 (de) * 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6349382B1 (en) 1999-03-05 2002-02-19 International Business Machines Corporation System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order
US6374332B1 (en) * 1999-09-30 2002-04-16 Unisys Corporation Cache control system for performing multiple outstanding ownership requests
US6557053B1 (en) 2000-01-04 2003-04-29 International Business Machines Corporation Queue manager for a buffer
TW515952B (en) 2001-04-23 2003-01-01 Mediatek Inc Memory access method
ATE498866T1 (de) 2001-06-26 2011-03-15 Oracle America Inc Verfahren zur verwendung eines l2-verzeichnisses, um spekulatives laden in einem mehrprozessorsystem zu ermöglichen
US6704841B2 (en) 2001-06-26 2004-03-09 Sun Microsystems, Inc. Method and apparatus for facilitating speculative stores in a multiprocessor system
US6839808B2 (en) * 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
JP3661614B2 (ja) 2001-07-12 2005-06-15 日本電気株式会社 キャッシュメモリ制御方法及びマルチプロセッサシステム
US6766665B2 (en) 2001-12-05 2004-07-27 Emhart Glass S.A. Glass container forming machine
JP4234361B2 (ja) 2002-06-28 2009-03-04 富士通株式会社 記憶制御装置およびデータ格納方法
JP4180569B2 (ja) 2003-01-27 2008-11-12 富士通株式会社 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法
US6859123B2 (en) 2003-04-03 2005-02-22 Ge Medical Systems Global Technology Company, Llc Methods and apparatus for positioning permanent magnetic blocks
US7117312B1 (en) * 2003-11-17 2006-10-03 Sun Microsystems, Inc. Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) * 2003-11-17 2008-01-29 Sun Microsystems, Inc. Mechanism and method for cache snoop filtering
US7962696B2 (en) * 2004-01-15 2011-06-14 Hewlett-Packard Development Company, L.P. System and method for updating owner predictors
US7484045B2 (en) 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
US8475985B2 (en) 2005-04-28 2013-07-02 Xerox Corporation Magnetic compositions
JP2007044459A (ja) 2005-08-05 2007-02-22 Noboru Takahashi 電子レンジ用蒸し器
JP2009198253A (ja) 2008-02-20 2009-09-03 Hitachi Maxell Ltd 光学フィルムの検査装置及び検査方法

Also Published As

Publication number Publication date
JP4452644B2 (ja) 2010-04-21
US20050223177A1 (en) 2005-10-06
KR100876486B1 (ko) 2008-12-31
TWI318373B (en) 2009-12-11
CN101539889B (zh) 2011-11-09
TW200620103A (en) 2006-06-16
CN101539889A (zh) 2009-09-23
US20090144500A1 (en) 2009-06-04
US7484045B2 (en) 2009-01-27
US8244985B2 (en) 2012-08-14
CN1677341A (zh) 2005-10-05
KR20060045031A (ko) 2006-05-16
CN100480993C (zh) 2009-04-22

Similar Documents

Publication Publication Date Title
US11347649B2 (en) Victim cache with write miss merging
US11789872B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
EP3008603B1 (en) Observation of data in persistent memory
US7941584B2 (en) Data processing apparatus and method for performing hazard detection
US8095734B2 (en) Managing cache line allocations for multiple issue processors
KR100978156B1 (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체
US9892039B2 (en) Non-temporal write combining using cache resources
JP4452644B2 (ja) 記憶性能の改善
US20120137077A1 (en) Miss buffer for a multi-threaded processor
US20100318741A1 (en) Multiprocessor computer cache coherence protocol
US6654837B1 (en) Dynamic priority external transaction system
JP2019096309A (ja) メンテナンス動作の実行
US20200242042A1 (en) System, Apparatus and Method for Performing a Remote Atomic Operation Via an Interface
CN110291507B (zh) 用于提供对存储器系统的加速访问的方法和装置
US20030105929A1 (en) Cache status data structure
US7451274B2 (en) Memory control device, move-in buffer control method
JP2009521054A (ja) ダイナミックキャッシュ管理装置及び方法
US11573724B2 (en) Scoped persistence barriers for non-volatile memories
US20050044321A1 (en) Method and system for multiprocess cache management
US20170199741A1 (en) Instruction transfer control using program counters
US20120054439A1 (en) Method and apparatus for allocating cache bandwidth to multiple processors

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090624

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090629

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100201

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees