JP5118199B2 - マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 - Google Patents

マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 Download PDF

Info

Publication number
JP5118199B2
JP5118199B2 JP2010514977A JP2010514977A JP5118199B2 JP 5118199 B2 JP5118199 B2 JP 5118199B2 JP 2010514977 A JP2010514977 A JP 2010514977A JP 2010514977 A JP2010514977 A JP 2010514977A JP 5118199 B2 JP5118199 B2 JP 5118199B2
Authority
JP
Japan
Prior art keywords
data
request
cache
ram
returned
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
JP2010514977A
Other languages
English (en)
Other versions
JP2010532057A (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 JP2010532057A publication Critical patent/JP2010532057A/ja
Application granted granted Critical
Publication of JP5118199B2 publication Critical patent/JP5118199B2/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

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」、「第2」、および同種の用語は、ここでは、順序、量、または重要度を示すものではなく、むしろ、1つの要素を他の要素と区別するために使用される。「1つの」という用語とは、ここでは、量の制限を示すものではなく、むしろ、参照されるものが少なくとも1つ存在することを示す。
図1は、プロセッサの性能を改善するためのマルチスレッドおよびマルチコア・システム102を示すブロック図である。システムは、複数のコア104,106,108,110、および、複数のコア104,106,108,110に接続されたキャッシュ112を含む。キャッシュ112は、キャッシュ112の性能に対する影響を最小限に抑えつつ、複数のコア104,106,108,110をサポートする。複数のコア104,106,108,110は、同時にマルチスレッドを処理し、それによって、プロセッサの性能を増強する。キャッシュ112の1つの典型的なアーキテクチャは、図2に関して以下で詳述される。
図2は、キャッシュ112のアーキテクチャを示すブロック図200である。キャッシュ112は、複数の命令待ち行列202,204,206,208、データ・ランダム・アクセス・メモリ(RAM)210、タグRAM212、インフライト(in−flight)RAM214、およびアービタ220を含む。複数の命令待ち行列202,204,206,208は、コアによってキャッシュに対してなされた要求を取り込むために使用される。データRAM210は、様々な形式の複数のデータを格納することができる。アービタ220は、各実行ユニットへ戻るヒットおよびミスのデータが衝突し、かつ、調停を必要とするポイントを示し、クロック・サイクル毎に1つの応答のみを送り返すようなあらゆる制限を受信ユニットに与える。
いくつかの実施例では、各実行ユニット(EU)は、アウト−オブ−オーダ(out−of−order)の戻り(リターン)を処理するために形成される。EUは、それが戻ると直ちに、キャッシュ・ラインを配置するための命令待ち行列の位置を、各命令フェッチ要求と共に提供する。各スレッドは、例えば、バッファ用の3つのキャッシュ・ラインを有し、2bコードにとって十分である。これは、図2において、命令待ち行列アドレス[1:0]を表すIQ[1:0]として示される。さらに、その要求は、非整列(unaligned)ジャンプ・アドレスの場合のような、キャッシュ・ライン中の奇数命令に対するものである。この信号は、図2において、「奇数」または「偶数」の信号を出す「O/E」として示される。
いくつかの実施例では、1つの実行ユニット毎に1つの命令待ち行列がある。ここに記述されるキャッシュ・アーキテクチャは、各送出が完了することを保証するために、送出時に待ち行列の先頭を放棄し(すなわち、それは再送出するために必要でない)、そして、あらゆるルーティングまたはメタデータは、要求と共に搬送され、待ち行列の先頭上にブロックはなく、したがって、全てのエントリを顕出させるために待ち行列を平坦化にする必要はない。命令バッファの最大深さは性能を決定し、実行ユニットの命令FIFO内の宛先の総数によってのみ制限される。例えば、これは、12に制限される(つまり、4スレッド/EU×3キャッシュ・ライン深度/命令−バッファ)。
タグRAM212は、データRAM210内に格納された複数のデータのメモリ・アドレスを格納するために形成される。タグRAM212は、データRAM210に現在格納されているメモリからのデータを識別する。タグRAM212に格納されたメモリ・アドレスは、キャッシュの探索が、ヒットまたはミスのいずれの結果になるかを決定する。タグRAM212のサイズは、データRAM210の容量および構造に比例する。
いくつかの実施例では、タグは、比較および更新のために1を超えるクロックを使用する。例えば、3クロックが使用される。したがって、以前ミスであったために変更される可能性があるが、いまだタグRAM212に書き込まれていないタグをヒットするという課題が潜在する。最後の3クロック中に送出されたセット・アドレスのコピーは、(例えば図2のアービタの右に位置するレジスタ内に)格納され、それぞれ待ち行列の先頭と比較される。これには、タグ・インフライト論理240として図2に示された、並列の複数のコンパレータが必要とされる。待ち行列の先頭と最後の3クロック内に送出されたセットの1つとのみ一致がある場合、その待ち行列は調停からブロックされる。
キャッシュ・ヒットは、ヒットFIFO242へ転送され、その深さは性能/コストを決定する。深さは有限なので、時にはFIFOが満杯になる。FIFO242の現在の深さを追跡するのはヒットFIFO追跡回路であるが、それは、加算器または他の回路と同様に、いくつかの組合せ論理から構成される。送出が生じるたびに、ヒット/ミスの結果は未知であるので、加算器は、保守的なルートに従ってヒットであると仮定する。したがって、それは、その現在値に1を加算する。後に結果がミスであると判定された場合、加算器は1を減算する。加算器は、さらに、FIFOから削除され、かつキャッシュRAMへ転送された各エントリについて1を減算する。転送および誤って予測されたヒットが同じクロック中に生じる可能性があるので、2を減算する能力がサポートされている。ヒット・パスから戻されたキャッシュ・ラインは、単一のスレッド用である。少量の論理がイネーブルにされた適切なスレッドのみを用いて、バイパスMUXへの16チャネルIQ O/Eシグナリングを合成するために存在する。
キャッシュ・ミスは、ミス論理244へ転送される。この回路は、各キャッシュ・ラインのために維持し、EU命令待ち行列は、そのラインフィル上で待機する。この情報は、インフライトRAM214内に保持される(例えば、128個のエントリ、キャッシュ・ライン毎に1つ)。RAMの幅は様々である。各ミスに対して、インフライトRAM214は、設定/方法のために問合わされる。そのラインについて未処理の要求がない場合は、その後、ミスはミス待ち行列へ転送され、そして、ラインフィル上で待機しているスレッドを示すために、RAM内のスレッド位置が更新される。クエリ(問合せ)が1またはそれ以上を示す場合は、既にインフライトであり、ミスは押し潰され、スレッドの位置が更新される。ミス・データは、L2からの全てのキャッシュ・ラインの戻りを調べるフィル論理を経由してリターンする。各リターンに対して、そのデータのキャッシュ・ラインのためのフィルを待つ全ての要求するEUを示して、インフライトRAM214内の関連するセットのために検索が実行される。EUへの全てのペンディングされているフィルおよび命令待ち行列位置を示すキャッシュライン・データおよび制御は、命令バスに送出される。バイパスmuxアービタは、ヒットおよびミス・フィルに加わり、命令バスを駆動する。それはヒット・リターンとともにミス・リターンをサービスする。いくつかの実施例では、ミス・リターンは、ヒット待ち行列上にバック・プレッシャを引き起こす。
インフライトRAM214は、あらゆる時点において、すべての未処理のミスに対する識別およびアカウント情報を維持するために形成される。識別は、どのスレッドおよび実行ユニット(EU)が、要求(リクエスト)、データRAM内の最終的に戻されたデータを配置するために設定および方法に対応する宛先位置、および、その要求がその要求するスレッド/EUからどの連続するストリームに属するかを識別するカラー・インディケータ、を形成したのかを決定することからなる。キャッシュが要求の実行を開始するとき、その要求されたアドレスは、タグRAM212内でチェックされ、一致が見つからない(すなわち、ミスになる)場合、その要求はインフライトRAM214およびそれをサポートする論理へ転送される。RAM214および論理は、新しいミス要求のアドレスを、インフライトRAM214内に保持されているときに一致する可能性を有するすべての未処理要求のアドレスのサブセット(典型的には同一のキャッシュ・セットへマッピングしている)と比較する。一致が存在する場合、そのアドレスに対応する要求は、以前のミスによって次のレベルのメモリ・サブシステムに既に転送されており(すなわち、その要求は既にインフライトにあり)、そして、新しいミス要求およびその関連する識別およびアカウント情報は、インフライトRAM214内に記録され、また、いかなる要求も次のレベルのメモリ・サブシステムを形成しない。一致が見つからない場合、つまりこのアドレスに対する次のレベルのメモリ・サブシステムへの未処理要求がないことを示している場合、そのミスの識別およびアカウント情報は、インフライトRAM214内に記録され、そして、その要求は次のレベルのメモリ・サブシステムへ転送される。次のレベルのメモリ・サブシステムがこのキャッシュによって提供されたミス要求を処理すると直ちに、それはインプリメンテーション選択に基づいて、要求されたデータ、その要求されたアドレスおよび/または関連するアカウント情報を戻す。そのアドレス/アカウント情報は、1またはそれ以上の一致を見つけるための努力をするために、インフライトRAM214のコンテンツ内に保持されたサブセットの潜在的な一致(典型的には同一セットへのマッピングしている)と比較される。一致が見つかったセットは、この同一データを要求したEU/スレッドの組合せのリストを示す。インフライトRAM214およびそれに関連する論理は、プロセッサの複数のコア104,106,108,110内の複数のスレッドへ命令データを一斉伝送し、それによって、プロセッサの性能を改善する。さらに、他のキャッシュからのミス要求の戻りに対して、インフライトRAM214内での探索が行なわれ、命令データを待つ全てのペンディング・スレッドは、単一のクロック内に応答(achnowledge)される。このように、キャッシュ112のアーキテクチャは、複数のスレッドへの命令データのアクセスを提供する。
各実行ユニット(EU)へのキャッシュ112の出力インターフェイスは、各EU/スレッド/命令−待ち行列−エントリ/カラー順列のために、各EUへ戻された個別データの有効ビットが供給され、それによってその戻されたデータは、EUインプリメンテーション内で提供された全ての可能な宛先位置へ同時に有効なものとして示されることを可能にする。さらに、インフライトRAM214の格納は、設定属性および経路属性を格納するために変更される。従って、キャッシュ112のアーキテクチャは、単一のクロック中に複数の要求に対する複数のデータのアクセスを提供する。さらに、キャッシュ112の総合的な性能は、典型的なキャッシュ・インプリメンテーションに比べて改善される。
EUを具備するキャッシュ112のインターフェイスは、推論的な方法で、EUがその実行ポイントに先立って命令をプリフェッチすることを許可するためのカラー・ビットを含み、その後、データが戻されたとき、戻されたデータが有効か、あるいは失効しているかを識別する。これを遂行するために、「カラー・ビット」(すなわち、マルチ状態変数)が使用され、スレッドによって実行されている現在の連続した命令ストリームに関連する、現在の任意の「カラー」を識別する。いくつかの実施例では、カラーは、EU毎にスレッド毎に維持される。EUが、例えば「ジャンプ」命令の場合の命令を実行するとき、命令要求のストリーム内に不連続を遭遇する場合は常に、カラー・ビットの値が変更される。カラー情報は、あらゆるキャッシュ要求の一部としてキャッシュへ送られる。ここに記述されたキャッシュ112は、1つのスレッド毎に2つのカラーの処理をサポートするが、これは、「n個」のカラーを処理するために容易に拡張することができる。EUは、カラー・ビットを、キャッシュで作られた各要求に提供し、さらに、そのキャッシュは、その要求がサービスされている間保持されるすべてのアカウント情報を有するカラー・ビットを維持する。キャッシュによってEUへデータが戻されるとき、キャッシュは、オリジナル要求の一部として送られたカラー・ビットの値を戻す。これによって、EU/スレッドは、その戻されたカラーを、局所的に維持された実行ユニット(EU)の現在のカラーと比較することが可能になる。カラーの一致は、要求がキャッシュに対してなされたとき、EUが連続する命令ストリーム上で未だ有効に動作していることを示し、したがって、戻されたデータは、実行されている命令ストリームに関連し、つまり、不一致は、EU/スレッドが、要求が未処理であった時間の間に命令ストリームの不連続に遭遇したことを示し、したがって、その戻されたデータは、実行中の現在のストリームに関連がなく、無視されてもよい。たとえキャッシュ112内に同一のスレッドのためにペンディングしている未処理かつ潜在的に失効している要求があるとしても、このメカニズムによって、EU/スレッドは、全ての命令ストリームの不連続において、新しいカラーで推論的な命令要求を形成することが可能となる。これは、戻されたデータの有効性を、データ・リターン時間で決定することにより、低いヒット率を引き起こす大きなカーネルを有するキャッシュ112の総合的な性能を改善することができる。
アービタ220は、EUへのデータ・リターンをスケジュールするために使用される。決められたクロック上で、ヒットまたはミスのいずれか、あるいは両方からのデータは、リターンのために準備していてもよい。いくつかの実施例では、調停アルゴリズムは、どのデータ・リターンがサービスするべきかに関する規則を決定するために使用される。
図3は、プロセッサの性能を改善する方法を示すフローチャートである。本方法は、データ・ランダム・アクセス・メモリ(RAM)内に複数のデータを格納することを含む(302)。本方法は、さらに、次のレベルのメモリ・サブシステムへ転送される全ての未処理の要求のための情報を保持することを含む(304)。本方法は、さらに、その要求が実行された後、サービスされた要求に関連する情報をクリアすることを含む(306)。本方法は、さらに、後続の要求が、次のレベルのメモリ・サブシステムに既にインフライトしている1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定することを含む(308)。本方法は、さらに、次のレベルのメモリ・サブシステムによってサービスされた実行済みの要求を、オリジナルの要求が次のレベルのメモリ・サブシステムへインフライトしていた間に要求を出した少なくとも1つのリクエスタと一致させることを含む(310)。本方法は、さらに、各要求に特有の情報を格納することを含み、その情報は設定属性および経路属性を含み、設定および経路属性は、データが戻されると直ちに、戻されたデータがデータRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の情報は、さらに、スレッドIDおよびカラーを含む(312)。本方法は、さらに、ヒットおよびミス・データの戻りをスケジュールすることを含む(314)。
以上の記述において、本発明の特定の実施例が説明目的のために示された。それらは、全てを網羅したものではなく、また、開示された正確な形態に制限することを意図するものではなく、上記の教示に照らして、多くの修正および変更が可能である。本実施例は、開示された原理およびその実際のアプリケーションを最もよく説明するために選択され、かつ記述され、それによって当業者は、考案された特定の使用に適するように、本開示および様々な実施例に様々な修正を加えて利用することができる。均等物についての様々な省略および代用は、状況が示唆しまたは便宜を与える場合に考慮され、そのようなものは、本発明の請求項の精神または範囲から逸脱することなく、本出願または実施例をカバーすることを意図していることが理解される。

Claims (20)

  1. プロセッサのためのキャッシュにおいて、前記キャッシュは、
    少なくとも1つのアウト−オブ−オーダ命令の戻りを処理するために形成された複数の命令待ち行列と、
    複数のデータを格納することができるデータ・ランダム・アクセス・メモリ(RAM)と、
    前記データRAM内に格納された前記複数のデータのメモリ・アドレスおよびデータを格納することができるタグRAMと、
    インフライトRAMであって、
    次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持し、
    前記要求が処理された後、サービスされた要求に関連する情報をクリアにし、
    後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトにある1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定し、
    前記次のレベルのメモリ・サブシステムによってサービスされた処理済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも1つのリクエスタと一致させ、および、
    各要求に特有の情報を格納する、ことが可能であり、前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドID、命令待ち行列の位置、および前記キャッシュへの前記要求を形成した要求スレッド中の連続ストリームを識別するために構成されるカラー・インディケータをさらに含み、前記カラー・インディケータによって、前記要求スレッドは、前記戻されたデータが有効か失効しているかを判断することができるように構成される
    インフライトRAMと、
    ヒットおよびミスのデータの戻りをスケジュールするためのアービタと、
    から構成されることを特徴とするキャッシュ。
  2. 前記キャッシュは、前記データRAM内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項1記載のキャッシュ。
  3. 前記データRAMは、前記データRAM内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項1記載のキャッシュ。
  4. 前記スレッドID、命令待ち行列の位置、およびカラーのうちの少なくとも1つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項1記載のキャッシュ。
  5. 前記キャッシュは、単一のクロック・タイム中に前記複数のスレッドへデータを戻すことを特徴とする請求項4記載のキャッシュ。
  6. 前記データが戻された時に、前記戻されたデータの適合性を決定するためのカラー・ビットを含むEUインターフェイスをさらに含むことを特徴とする請求項1記載のキャッシュ。
  7. 前記EUインターフェイスは、低いヒット率を有する前記プロセッサの前記キャッシュの性能を改善することを特徴とする請求項6記載のキャッシュ。
  8. マルチコアおよびマルチスレッド・システムにおいて、前記システムは、
    複数のコアと、
    前記複数のコアに接続されたキャッシュとからなり、前記キャッシュは、
    少なくとも1つのアウト−オブ−オーダ命令の戻りを処理するために形成された複数の命令待ち行列と、
    複数のデータを格納することができるデータ・ランダム・アクセス・メモリ(RAM)と、
    前記データRAM内に格納された前記複数のデータのメモリ・アドレスおよびデータを格納することができるタグRAMと、
    インフライトRAMであって、
    次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持し、
    前記要求が処理された後、サービスされた要求に関連する情報をクリアにし、
    後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトにある1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定し、
    前記次のレベルのメモリ・サブシステムによってサービスされた処理済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも1つのリクエスタと一致させ、および、
    各要求に特有の情報を格納する、ことが可能であり、前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドID、命令待ち行列の位置、および前記キャッシュへの前記要求を形成した要求スレッド中の連続ストリームを識別するために構成されるカラー・インディケータをさらに含み、前記カラー・インディケータによって、前記要求スレッドは、前記戻されたデータが有効か失効しているかを判断することができるように構成される
    インフライトRAMと、
    ヒットおよびミスのデータの戻りをスケジュールするためのアービタと、
    から構成されることを特徴とするシステム。
  9. 前記キャッシュは、前記データRAM内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項8記載のシステム。
  10. 前記データRAMは、前記データRAM内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項8記載のシステム。
  11. 前記スレッドID、命令待ち行列の位置、およびカラーのうちの少なくとも1つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項8記載のシステム。
  12. 前記キャッシュは、単一のクロック・タイム中に前記命令データへのアクセスを前記複数のスレッドへ提供することを特徴とする請求項11記載のシステム。
  13. 前記データが戻された時に、前記戻されたデータの適合性を決定するためのカラー・ビットを含むEUインターフェイスをさらに含み、前記EUによる推論的な要求を許可することを特徴とする請求項8記載のシステム。
  14. 前記EUインターフェイスは、低いヒット率を有する前記プロセッサの前記キャッシュの性能を改善することを特徴とする請求項13記載のシステム。
  15. プロセッサのキャッシュの性能を改善する方法において、前記方法は、
    複数のデータをデータ・ランダム・アクセス・メモリ(RAM)に格納する段階と、
    前記データRAM内に格納された前記複数のデータのメモリ・アドレスをタグRAM内に格納する段階と、
    次のレベルのメモリ・サブシステムへ転送された全ての未処理の要求のための情報を保持する段階と、
    前記要求が処理された後、サービスされた要求に関連する情報をクリアにする段階と、
    後続の要求が、前記次のレベルのメモリ・サブシステムに既にインフライトしている1またはそれ以上の要求に提供されたアドレスと一致するかどうかを決定する段階と、
    前記次のレベルのメモリ・サブシステムによってサービスされた実行済みの要求を、オリジナルの要求が前記次のレベルのメモリ・サブシステムにインフライトにある間に要求を出した少なくとも1つのリクエスタと一致させる段階
    各要求に特有の情報を格納する段階であって、前記情報は設定属性および経路属性を含み、前記設定および経路属性は、前記データが戻ると直ちに、前記戻されたデータが前記データRAM内のどこに保持されるべきかを識別するために形成され、各要求に特有の前記情報は、スレッドID、命令待ち行列の位置、および前記キャッシュへの前記要求を形成した要求スレッド中の連続ストリームを識別するために構成されるカラー・インディケータをさらに含み、前記カラー・インディケータによって、前記要求スレッドは、前記戻されたデータが有効か失効しているかを判断することができるように構成される、段階と、
    ヒットおよびミスのデータの戻りをスケジュールする段階と、
    から構成されることを特徴とする方法。
  16. 前記キャッシュは、前記データRAM内に格納された前記複数のデータへのアクセスを前記複数のコアに提供することができることを特徴とする請求項15記載の方法。
  17. 前記データRAMは、前記データRAM内に格納された前記複数のデータのレイテンシを低減することを特徴とする請求項15記載の方法。
  18. 前記スレッドID、命令待ち行列の位置、およびカラーのうちの少なくとも1つは、前記要求が処理されると直ちに、前記リクエスタに戻されることを特徴とする請求項15記載の方法。
  19. 前記キャッシュは、単一のクロック・タイム中に前記命令データのアクセスを前記複数のスレッドに提供することを特徴とする請求項18記載の方法。
  20. ジャンプ命令の場合にレイテンシを低減するためのカラー・ビットを含むEUインターフェイスをさらに含むことを特徴とする請求項15記載の方法。
JP2010514977A 2007-06-28 2008-06-18 マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法 Expired - Fee Related JP5118199B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/770,120 US8171225B2 (en) 2007-06-28 2007-06-28 Cache for a multi thread and multi core system and methods thereof
US11/770,120 2007-06-28
PCT/US2008/067279 WO2009006018A2 (en) 2007-06-28 2008-06-18 Cache for a multi thread and multi core system and methods thereof

Publications (2)

Publication Number Publication Date
JP2010532057A JP2010532057A (ja) 2010-09-30
JP5118199B2 true JP5118199B2 (ja) 2013-01-16

Family

ID=40162105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514977A Expired - Fee Related JP5118199B2 (ja) 2007-06-28 2008-06-18 マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法

Country Status (5)

Country Link
US (1) US8171225B2 (ja)
EP (1) EP2160683B1 (ja)
JP (1) JP5118199B2 (ja)
CN (1) CN101730885B (ja)
WO (1) WO2009006018A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL127569A0 (en) * 1998-09-16 1999-10-28 Comsense Technologies Ltd Interactive toys
US20100030838A1 (en) * 1998-08-27 2010-02-04 Beepcard Ltd. Method to use acoustic signals for computer communications
US6607136B1 (en) 1998-09-16 2003-08-19 Beepcard Inc. Physical presence digital authentication system
US7334735B1 (en) 1998-10-02 2008-02-26 Beepcard Ltd. Card for interaction with a computer
US8019609B2 (en) 1999-10-04 2011-09-13 Dialware Inc. Sonic/ultrasonic authentication method
US9219708B2 (en) * 2001-03-22 2015-12-22 DialwareInc. Method and system for remotely authenticating identification devices
US8171225B2 (en) 2007-06-28 2012-05-01 Intel Corporation Cache for a multi thread and multi core system and methods thereof
KR101647818B1 (ko) * 2010-04-13 2016-08-12 삼성전자주식회사 멀티 코어 사이의 데이터 전송 장치 및 방법
CN102087634B (zh) * 2011-01-27 2012-10-03 凌阳科技股份有限公司 用于提高缓存命中率的装置及方法
CN104158764B (zh) * 2014-08-12 2018-02-06 新华三技术有限公司 报文处理方法及装置
JP5917678B1 (ja) * 2014-12-26 2016-05-18 株式会社Pfu 情報処理装置、方法およびプログラム
US10042737B2 (en) 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10310977B2 (en) * 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
CN108255517B (zh) * 2016-12-29 2020-05-05 展讯通信(上海)有限公司 处理器及请求指令缓存数据的方法
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10296442B2 (en) 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
FR3086409A1 (fr) * 2018-09-26 2020-03-27 Stmicroelectronics (Grenoble 2) Sas Procede de gestion de la fourniture d'informations, en particulier des instructions, a un microprocesseur et systeme correspondant
CN117130662A (zh) * 2023-09-19 2023-11-28 摩尔线程智能科技(北京)有限责任公司 一种指令读取方法及l2指令缓存、电子设备和存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61220047A (ja) * 1985-03-27 1986-09-30 Hitachi Ltd メモリ制御方式
JP2596637B2 (ja) * 1990-11-09 1997-04-02 株式会社日立製作所 キャッシュ制御方式
JP3729832B2 (ja) * 1992-02-28 2005-12-21 沖電気工業株式会社 キャッシュメモリ装置
US6549930B1 (en) * 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6195748B1 (en) * 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6141732A (en) * 1998-03-24 2000-10-31 Novell, Inc. Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks
US6473832B1 (en) * 1999-05-18 2002-10-29 Advanced Micro Devices, Inc. Load/store unit having pre-cache and post-cache queues for low latency load memory operations
JP2002312238A (ja) * 2001-04-18 2002-10-25 Hitachi Ltd キャッシュ制御装置
JP2003122632A (ja) * 2001-10-17 2003-04-25 Nec Corp キャッシュデータ登録システム及び登録方法
JP2003256274A (ja) * 2002-03-04 2003-09-10 Kyocera Corp 高速データ処理装置およびその制御方法
US6990557B2 (en) * 2002-06-04 2006-01-24 Sandbridge Technologies, Inc. Method and apparatus for multithreaded cache with cache eviction based on thread identifier
US7228520B1 (en) * 2004-01-30 2007-06-05 Xilinx, Inc. Method and apparatus for a programmable interface of a soft platform on a programmable logic device
US8438157B2 (en) * 2004-06-28 2013-05-07 International Business Machines Corporation System and method for previewing relevance of streaming data
JP4575065B2 (ja) * 2004-07-29 2010-11-04 富士通株式会社 キャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央制御方法
US20060143401A1 (en) * 2004-12-27 2006-06-29 Jacob Doweck Method and apparatus for prefetching based on cache fill buffer hits
US8171225B2 (en) 2007-06-28 2012-05-01 Intel Corporation Cache for a multi thread and multi core system and methods thereof

Also Published As

Publication number Publication date
EP2160683A2 (en) 2010-03-10
CN101730885A (zh) 2010-06-09
CN101730885B (zh) 2013-03-27
WO2009006018A3 (en) 2009-03-05
JP2010532057A (ja) 2010-09-30
US20090006729A1 (en) 2009-01-01
WO2009006018A2 (en) 2009-01-08
EP2160683A4 (en) 2011-07-06
US8171225B2 (en) 2012-05-01
EP2160683B1 (en) 2018-08-01

Similar Documents

Publication Publication Date Title
JP5118199B2 (ja) マルチスレッドおよびマルチコア・システムのためのキャッシュ、および、その方法
US11789872B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
US20240078190A1 (en) Write merging on stores with different privilege levels
US8667225B2 (en) Store aware prefetching for a datastream
US7877559B2 (en) Mechanism to accelerate removal of store operations from a queue
US6983350B1 (en) SDRAM controller for parallel processor architecture
JP5619869B2 (ja) データキャッシュとメインメモリ間の一貫性の保証
US7774522B2 (en) Cache stashing processor control messages
US20080189501A1 (en) Methods and Apparatus for Issuing Commands on a Bus
US7600077B2 (en) Cache circuitry, data processing apparatus and method for handling write access requests
US10713172B2 (en) Processor cache with independent pipeline to expedite prefetch request
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
US8640135B2 (en) Schedule virtual interface by requesting locken tokens differently from a virtual interface context depending on the location of a scheduling element
US7370152B2 (en) Memory controller with prefetching capability
US8688919B1 (en) Method and apparatus for associating requests and responses with identification information
US20190265977A1 (en) Multi-thread processor with multi-bank branch-target buffer
US10303483B2 (en) Arithmetic processing unit and control method for arithmetic processing unit
CN114116539A (zh) 一种快速作废地址缓存的方法及装置
CN112579170A (zh) 一种用于减少虚拟地址计算的处理器及其方法
WO2000026741A2 (en) A method for delivering data to an instruction processing unit

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120827

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: 20120918

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: 20121018

R150 Certificate of patent or registration of utility model

Ref document number: 5118199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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