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

記憶性能の改善 Download PDF

Info

Publication number
JP4452644B2
JP4452644B2 JP2005100190A JP2005100190A JP4452644B2 JP 4452644 B2 JP4452644 B2 JP 4452644B2 JP 2005100190 A JP2005100190 A JP 2005100190A JP 2005100190 A JP2005100190 A JP 2005100190A JP 4452644 B2 JP4452644 B2 JP 4452644B2
Authority
JP
Japan
Prior art keywords
data
gosb
storage
entry
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005100190A
Other languages
English (en)
Other versions
JP2005310134A (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.)
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)

Description

本発明の複数の実施形態は、マイクロプロセッサアーキテクチャに関する。より詳細には、本発明の複数の実施形態は、複数のオーナー権に対する読み取り動作をばらばらの順序で発しさせるのを可能にし、より効果的に複数の記憶バッファ待ち時間を用いることにより1つのマイクロプロセッサでの記憶性能を改善する1つの方法及び装置に関する。
マイクロプロセッサは、「フロントサイドバス」(FSB)として既知である共有コンピュータシステムバスを介してコンピュータシステムと典型的に通信する。しかし、マイクロプロセッサ性能が改善されるにつれて、そして、複数のコンピュータシステムが、同じFSBに沿って相互接続された複数のプロセッサを用いる程、FSBは性能障害になる。
米国特許第5043886号明細書
この問題に対する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 (30)

  1. 厳しい順序付け命令アーキテクチャを有するプロセッサであって、
    データ値が大域的に観測可能になった後に、前記データ値を記憶する1または複数のエントリーを有する大域的観測記憶バッファ(GoSB)と、
    キャッシュメモリ内に記憶されているが、まだ大域的に観測されていないデータ値を記憶する1または複数のエントリーを有する非コミット記憶待ち行列(NcSQ)と、
    を備え、
    前記GoSBの各エントリーは、前記エントリーに対応するデータ値であり、前記NcSQ内に記憶されるデータ値である、データ値の個数を示すカウント値を格納するカウンタフィールドを有し、
    前記NcSQにデータ値が記憶されると、前記GoSBにエントリーを割り当て、
    前記カウント値が0に達した後に、前記エントリーの割り当てを解除する、プロセッサ。
  2. データ値が大域的に観測されるようになった後にこのデータ値が前記NcSQから除去されるようになっている、請求項1に記載のプロセッサ。
  3. 前記NcSQの各エントリーは、前記GoSB内の位置を示すインデックス値を記憶するインデックスフィールドを具え、前記位置には、対応のデータ値が大域的に観測可能になった後にこのデータ値が記憶されるようになっている、請求項1または2に記載のプロセッサ。
  4. バスエージェントが要求したデータ値が前記GoSBおよび前記キャッシュメモリの双方に含まれる場合、前記GoSBが前記データ値を前記バスエージェントに供給する、請求項1から3のいずれかに記載のプロセッサ。
  5. 前記GoSBの各エントリーは、
    前記エントリー内に記憶されるべきデータ値に対するインデックスフィールドと、
    前記エントリー内に記憶されるべきデータ値が書き込まれる位置に対応するアドレスフィールドと、
    を更に備える、請求項1から4のいずれかに記載のプロセッサ。
  6. ストアバッファであって、前記ストアバッファから第2データ値が読み取られる前に前記ストアバッファから読み取られる第1データ値が大域的に観測可能かどうかに関わらず、前記ストアバッファから前記第2データ値が読み取られ、前記キャッシュメモリに記憶されるようになっている、ストアバッファを更に備える、請求項1から5のいずれかに記載のプロセッサ。
  7. 第1の記憶動作が大域的に観測可能になる前に、第2の記憶動作に対するオーナー権に対する読み取り(RFO)データが戻された場合に、第2の記憶動作を前記キャッシュメモリ内の適切なエントリーに併合する、請求項1から6のいずれかに記載のプロセッサ。
  8. 前記キャッシュメモリがレベル1(L1)キャッシュを備える、請求項1から7のいずれかに記載のプロセッサ。
  9. 前記キャッシュメモリが、レベル1(L1)キャッシュに書き込まれるべきデータ値を記憶するラインフィルバッファ(LFB)を備える、請求項1から8のいずれかに記載のプロセッサ。
  10. 前記L1キャッシュまたは前記LFBがデータ値を監視エージェントに供給する前に前記GoSBが前記データ値を前記監視エージェントに供給するようになっている、請求項9に記載のプロセッサ。
  11. 第1データ値を少なくとも1つのバスエージェントに記憶するための第1命令と、前記第1データ値が少なくとも1つのバスエージェントに記憶された後に第2データ値を少なくとも1つのバスエージェントに記憶するための第2命令とを記憶するメモリユニットと、
    前記第1及び第2データ値のどちらかが少なくとも1つのバスエージェントにより検知可能になる前に前記第1及び第2データ値を同時に記憶するレベル1(L1)キャッシュ及びラインフィルバッファ(LFB)と、
    前記第1及び第2データ値が少なくとも1つのバスエージェントにより検知可能になった後に前記第1及び第2データ値を記憶する記憶構造体と、
    第1バスエージェントと、
    を備え、
    前記第1及び第2データ値の双方またはいずれか一方が前記第1バスエージェントにより前記L1キャッシュまたは前記LFB内で検知可能になる前に前記第1バスエージェントが前記第1及び第2データ値の双方またはいずれか一方を前記記憶構造体内で検知するようになっている、コンピュータシステム。
  12. 前記第1バスエージェントが、前記第1及び第2データ値の双方またはいずれか一方に関して前記L1キャッシュ及び前記LFBの双方またはいずれか一方を監視するようになっている、請求項11に記載のコンピュータシステム。
  13. 前記第1及び第2データ値が、少なくとも1つのバスエージェント内にプログラム順に記憶される、請求項11または12に記載のコンピュータシステム。
  14. 前記第1及び第2命令が前記メモリユニット内にプログラム順に記憶される、請求項11から13のいずれかに記載のコンピュータシステム。
  15. 前記L1キャッシュ及び前記LFBの双方またはいずれか一方が、ポイントツーポイントバスを介して前記第1バスエージェントに結合されている、請求項11から14のいずれかに記載のコンピュータシステム。
  16. 前記メモリユニットがダイナミックランダムアクセスメモリ(DRAM)である、請求項11から15のいずれかに記載のコンピュータシステム。
  17. 前記L1キャッシュ及び前記LFBの双方またはいずれか一方がマイクロプロセッサ内に存在している、請求項11から16のいずれかに記載のコンピュータシステム。
  18. 前記第1バスエージェントが、マイクロプロセッサ、DRAM、磁気記憶媒体、バスアービトレーション装置及び無線記憶媒体から成るリストから選択される装置を備える、請求項11から17のいずれかに記載のコンピュータシステム。
  19. 大域的に観測可能なデータを格納するための大域的観測記憶バッファ(GoSB)内にエントリーを割り当てる割り当てロジックであって、前記エントリーの割り当ては、データに対応する記憶動作が非投機的になった後で、かつ、前記データがストアバッファから読み取られる前に行う、割り当てロジックと、
    前記データが大域的に観測可能になる前に前記データを記憶するように前記GoSBに結合されたキャッシュメモリと、
    前記キャッシュメモリ内に前記データを記憶する前に前記キャッシュ内でラインの排他的オーナー権を得る、オーナー権に対する読み取り(RFO)ロジックと
    を備える、装置。
  20. 前記GoSBのエントリーが割り当てられる前に前記RFOロジックが前記キャッシュメモリ内に前記ラインの排他的オーナー権を得るようになっている、請求項19に記載の装置。
  21. 前記ストアバッファの各エントリーが、前記GoSB内で前記割り当てられたエントリーの位置を示すインデックスを備える、請求項19または20に記載の装置。
  22. 前記データが大域的に観測可能になると、前記GoSB内で前記割り当てられたエントリーが再割り当てされる、請求項19から21のいずれかに記載の装置。
  23. 複数の厳しく順序付けられたメモリ動作を発行する方法であって、
    第1記憶動作を発行する段階と、
    前記第1記憶動作と関連する第1データをストアバッファ内に記憶する段階と、
    第2記憶動作を発行する段階と、
    前記第2記憶動作と関連する第2データを前記ストアバッファ内に記憶する段階と、
    前記第1データを記憶ユニットに記憶する段階と、
    前記第1データが前記記憶ユニット内に記憶されているが、大域的に観測可能でない一期間中に前記第2データを前記記憶ユニットに記憶する段階と、
    前記第1及び第2データが大域的に観測可能になった後に、これら第1及び第2データを記憶する1または複数のエントリーを有する大域的観測記憶バッファ(GoSB)に、前記第1及び第2データを格納する段階と、
    を備える、方法。
  24. 前記第1データまたは第2データの一方が前記記憶ユニット内に記憶される前に、前記記憶ユニット内のラインについて排他的制御を得る、オーナー権に対する読み取り(RFO)動作を発行する段階を更に備える、請求項23に記載の方法。
  25. 前記第1データまたは第2データのどちらかが前記記憶ユニットに記憶されているが、大域的に観測可能ではない期間中に、発行された前記第1記憶動作または第2記憶動作に対応するエントリーを大域的観測記憶バッファ(GoSB)内に割り当てる段階を更に備える、請求項23または24に記載の方法。
  26. 前記GoSB内の各エントリーに備えられたカウンタを更新する段階であって、前記カウンタは、前記エントリーに対応する、大域的に観測可能となっていないデータの個数を示すものである、カウンタを更新する段階を更に備える、請求項23から25のいずれかに記載の方法。
  27. 前記カウンタが零に等しくなった後、別のデータを記憶するのに前記エントリーを再割り当てする、請求項26に記載の方法。
  28. 大域的に観測可能となっていないデータを非コミット記憶待ち行列(NcSQ)に格納する段階と、
    前記データの個数を指示するように前記カウンタを更新する段階と、
    を更に備える、請求項26または27に記載の方法。
  29. 前記記憶ユニットがレベル1(L1)キャッシュである、請求項23から28のいずれかに記載の方法。
  30. 前記記憶ユニットがラインフィルバッファである、請求項23から28のいずれかに記載の方法。
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 JP2005310134A (ja) 2005-11-04
JP4452644B2 true 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 中国科学院计算技术研究所 一种访存缓冲装置及方法
ES2687609T3 (es) 2013-05-02 2018-10-26 Huawei Technologies Co., Ltd. Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés y equipo
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
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
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
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
KR100704089B1 (ko) 2001-06-26 2007-04-05 썬 마이크로시스템즈, 인코포레이티드 L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
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 富士通株式会社 記憶制御装置およびデータ格納方法
WO2004068361A1 (ja) 2003-01-27 2004-08-12 Fujitsu Limited 記憶制御装置、データキャッシュ制御装置、中央処理装置、記憶装置制御方法、データキャッシュ制御方法およびキャッシュ制御方法
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
CN1677341A (zh) 2005-10-05
KR100876486B1 (ko) 2008-12-31
US20090144500A1 (en) 2009-06-04
US7484045B2 (en) 2009-01-27
CN100480993C (zh) 2009-04-22
KR20060045031A (ko) 2006-05-16
TW200620103A (en) 2006-06-16
CN101539889B (zh) 2011-11-09
US20050223177A1 (en) 2005-10-06
US8244985B2 (en) 2012-08-14
CN101539889A (zh) 2009-09-23
TWI318373B (en) 2009-12-11
JP2005310134A (ja) 2005-11-04

Similar Documents

Publication Publication Date Title
US11360905B2 (en) Write merging on stores with different privilege levels
US11789872B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
EP3008603B1 (en) Observation of data in persistent memory
US8095734B2 (en) Managing cache line allocations for multiple issue processors
KR100978156B1 (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체
US9892039B2 (en) Non-temporal write combining using cache resources
US20110167222A1 (en) Unbounded transactional memory system and method
JP4452644B2 (ja) 記憶性能の改善
US20060277366A1 (en) System and method of managing cache hierarchies with adaptive mechanisms
CN106897230B (zh) 用于处理原子更新操作的装置和方法
JP4574712B2 (ja) 演算処理装置、情報処理装置及び制御方法
US20070079070A1 (en) Cache controller
US20100318741A1 (en) Multiprocessor computer cache coherence protocol
JP2019096309A (ja) メンテナンス動作の実行
US20200242042A1 (en) System, Apparatus and Method for Performing a Remote Atomic Operation Via an Interface
US7451274B2 (en) Memory control device, move-in buffer control method
US20030105929A1 (en) Cache status data structure
US11573724B2 (en) Scoped persistence barriers for non-volatile memories
US20050044321A1 (en) Method and system for multiprocess cache management
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
JPH10320278A (ja) メモリコントローラ及びコンピュータシステム

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