JP2008525902A - マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法 - Google Patents

マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法 Download PDF

Info

Publication number
JP2008525902A
JP2008525902A JP2007548607A JP2007548607A JP2008525902A JP 2008525902 A JP2008525902 A JP 2008525902A JP 2007548607 A JP2007548607 A JP 2007548607A JP 2007548607 A JP2007548607 A JP 2007548607A JP 2008525902 A JP2008525902 A JP 2008525902A
Authority
JP
Japan
Prior art keywords
cache
processor
cache line
tile
line
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
JP2007548607A
Other languages
English (en)
Other versions
JP5096926B2 (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 JP2008525902A publication Critical patent/JP2008525902A/ja
Application granted granted Critical
Publication of JP5096926B2 publication Critical patent/JP5096926B2/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/271Non-uniform cache access [NUCA] architecture

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)
  • Microcomputers (AREA)

Abstract

マルチコアプロセッサ内に分散される共有キャッシュの設計及び動作のためのシステム及び方法が開示される。一実施形態では、共有されるキャッシュを複数のキャッシュモレキュール間に分散させることができる。各キャッシュモレキュールは、アクセス待ち時間の観点から、プロセッサコアのうちの1つの最も近くに位置することができる。一実施形態では、メモリからもたらされるキャッシュラインは最初に、要求しているプロセッサコアに最も近いキャッシュモレキュールではないキャッシュモレキュール内に置くことができる。要求しているプロセッサコアが、そのキャッシュラインに繰返しアクセスするとき、そのキャッシュラインは、キャッシュモレキュール間、又は1つのキャッシュモレキュール内のいずれかで動かされることができる。キャッシュ内でキャッシュラインを動かすことができることから、種々の実施形態において、特別な探索方法を用いて、特定のキャッシュラインの位置を特定することができる。
【選択図】 図5

Description

本発明は包括的にはマイクロプロセッサに関し、より具体的には、複数のプロセッサコアを備えることができるマイクロプロセッサに関する。
最新のマイクロプロセッサは、単一の半導体デバイス上に2つ以上のプロセッサコアを備えることができる。そのようなマイクロプロセッサは、マルチコアプロセッサと呼ばれる場合がある。これらの複数のコアを使用することによって、その性能を、単一のコアを用いることによって得られる性能よりも改善することができる。しかしながら、従来の共有キャッシュアーキテクチャは、マルチコアプロセッサの設計に対応するのに特に適していない場合がある。ここで、「共有」は、複数のコアがそれぞれ、キャッシュ内のキャッシュラインにアクセスできることを意味することができる。従来のアーキテクチャによる共有キャッシュは、キャッシュラインを格納するための1つの共通の構造を用いることがある。レイアウトの制約及び他の要因に起因して、そのようなキャッシュからコアへのアクセス待ち時間は、別のコアへのアクセス待ち時間と異なる場合がある。一般的に、この状況は、種々のコアからのアクセス待ち時間のために「ワーストケース」デザインルールを採用することによって補償することができる。そのようなポリシーは、全てのコアの場合の平均アクセス待ち時間を増やす場合がある。
キャッシュを分割して、種々のプロセッサコアを含む半導体デバイス全体にわたって、その分割された部分を配置することが可能であろう。しかしながら、それだけでは、全てのコアの場合の平均アクセス待ち時間が大幅には短縮されない場合がある。キャッシュの分割された部分が、要求しているコアに物理的に近く配置される場合には、或る特定のコアのアクセス待ち時間が短縮される場合がある。しかしながら、要求しているコアは、半導体デバイス上の要求しているコアから物理的に離れて配置される分割された部分の中に含まれるキャッシュラインにアクセスする場合もある。そのようなキャッシュラインの場合のアクセス待ち時間は、要求しているコアに物理的に近く配置される、キャッシュの分割された部分からのアクセス待ち時間よりも大幅に長くなることがある。
本開示は、添付の図面の複数の図において、例示として示されるが、限定としては示されない。なお、添付の図面において、類似の参照符号は類似の構成要素を指している。
以下の説明は、マルチコアプロセッサにおける、不均等共有キャッシュの設計及び動作のための技法を含む。以下の説明では、本発明をさらに十分に理解してもらうために、ロジックの実施態様、ソフトウエアモジュールの割当て、バス及び他のインターフェースシグナリング技法、並びに動作の詳細のような多数の具体的な詳細が述べられる。しかしながら、そのような具体的な詳細を用いることなく、本発明を実施することができることは当業者には理解されよう。他の事例では、本発明をわかりにくくしないために、制御構造、ゲートレベル回路及び完全なソフトウエア命令シーケンスは詳細には示されない。当業者は、明細書に記述される説明から、むやみに試してみることなく、適切な機能を実現することができるであろう。或る特定の実施形態では、本発明は、Itanium(登録商標)プロセッサファミリ互換プロセッサ(インテル(登録商標)社によって製造されるプロセッサ等)、並びに関連するシステム及びプロセッサファームウエアの環境において開示される。しかしながら、本発明は、Pentium(登録商標)互換プロセッサシステム(インテル(登録商標)社によって製造されるプロセッサ等)、X−Scale(登録商標)ファミリ互換プロセッサ、又は他の供給元若しくは設計者のプロセッサアーキテクチャのいずれかによる多種多様な汎用プロセッサのうちのいずれかのような、他の種類のプロセッサシステムで実施することもできる。さらに、いくつかの実施形態は、グラフィックス、ネットワーク、画像、通信、又は任意の他の既知のタイプ、若しくはそれ以外の入手可能なタイプのプロセッサ及びその関連するファームウエアのような専用プロセッサを含むことができるか、又は用いることができる。
ここで図1を参照すると、本開示の一実施形態による、リング相互接続上にあるキャッシュモレキュールの図が示される。プロセッサ100は、いくつかのプロセッサコア102〜116と、キャッシュモレキュール120〜134とを備えることができる。種々の実施形態において、プロセッサコア102〜116は、共通のコア設計から成る類似の複製品にすることができるか、又は大幅に処理能力が異なる場合がある。キャッシュモレキュール120〜134は集合的に、従来の単一のキャッシュと同等の機能を有することができる。一実施形態では、それらのモレキュールは2次(L2)キャッシュを形成することができ、1次(L1)キャッシュはコア102〜116内に配置されている。他の実施形態では、それらのキャッシュモレキュールは、キャッシュ階層全体の中の異なるレベルに配置される場合がある。
コア102〜116及びキャッシュモレキュール120〜134は、時計回り(CW)リング140及び反時計回り(CCW)リング142から成る、冗長な双方向リング相互接続で接続されるものとして示される。リングの各部分は、図示されるモジュールの間で任意のデータを搬送することができる。コア102〜116はそれぞれ、各キャッシュモレキュール120〜134と対を成すものとして示される。対にすることは、アクセス待ち時間を短縮するという観点から、コアを「最も近い」キャッシュモレキュールに論理的に関連付けることである。たとえば、コア104は、キャッシュモレキュール122内のキャッシュラインにアクセスするときに、アクセス待ち時間を最も短くすることができ、他のキャッシュモレキュールにアクセスするときに、アクセス待ち時間が長くなるであろう。他の実施形態では、2つの以上のコアが単一のキャッシュモレキュールを共有することができるか、又は特定のコアに2つ以上のキャッシュモレキュールを関連付けることができる。
特定のコアに対するキャッシュモレキュールの待ち時間の順序を記述するために、「距離」のメトリックを用いることができる。いくつかの実施形態では、この距離は、相互接続に沿ったコアとキャッシュモレキュールとの間の物理的な距離に関連付けることができる。たとえば、キャッシュモレキュール122とコア104との間の距離は、キャッシュモレキュール126とコア104との間の距離よりも短い場合があり、その距離はさらに、キャッシュモレキュール128とコア104との間の距離よりも短いことがある。他の実施形態では、単一のリング相互接続、直線相互接続、又は格子相互接続のような、他の形態の相互接続が用いられることがある。それぞれの場合に、特定のコアに対するキャッシュモレキュールの待ち時間の順序を記述するために、距離のメトリックを定義することができる。
ここで図2を参照すると、本開示の一実施形態による、キャッシュモレキュールの図が示される。一実施形態では、キャッシュモレキュールとして、図1のキャッシュモレキュール120を用いることができる。キャッシュモレキュール120は、L2コントローラ210と、1つ又は複数のキャッシュチェーンとを備えることができる。L2コントローラ210は、相互接続と接続するための1つ又は複数の接続260、262を有することができる。図2の実施形態では、4つのキャッシュチェーン220、230、240、250が示されるが、キャッシュモレキュール内に5つ以上、又は3つ以下のチェーンが存在することもできる。一実施形態では、メモリ内の任意の特定のキャッシュラインが、4つのキャッシュチェーンのうちのただ1つのチェーンにマッピングされることができる。キャッシュモレキュール120内の特定のキャッシュラインにアクセスするとき、探索され、アクセスされる必要があるのは、対応するキャッシュチェーンだけである。それゆえ、キャッシュチェーンは、従来のセットアソシアティブキャッシュ内のセットになぞらえることができる。しかしながら、本開示のキャッシュ内に存在する相互接続の数のゆえに、一般的には、類似のキャッシュサイズの従来のセットアソシアティブキャッシュ内のセットよりも、キャッシュチェーンの数を少なくすることができる。他の実施形態では、メモリ内の任意の特定のキャッシュラインは、キャッシュモレキュール内の2つ以上のキャッシュチェーンにマッピングされることがある。
各キャッシュチェーンは、1つ又は複数のキャッシュタイルを含む場合がある。キャッシュチェーン220は、キャッシュタイル222〜228を有するものとして示される。他の実施形態では、キャッシュチェーン内に5つ以上の、又は3つ以下のキャッシュタイルが存在することができる。一実施形態では、キャッシュチェーンのキャッシュタイルはアドレス分割されることはなく、たとえば、キャッシュチェーン内にロードされるキャッシュラインは、そのキャッシュチェーンのキャッシュタイルのいずれかの中に置かれることができる。キャッシュチェーンに沿った相互接続長が異なることに起因して、ただ1つのキャッシュチェーンの中でも、キャッシュタイルへのアクセス時間が異なる場合がある。たとえば、キャッシュタイル222からのアクセス待ち時間は、キャッシュタイル228からのアクセス待ち時間よりも短いことがある。したがって、特定のキャッシュチェーンに関するキャッシュタイルの待ち時間の順序を記述するために、キャッシュチェーンに沿った「距離」のメトリックを用いることができる。一実施形態では、特定のキャッシュチェーン内の各キャッシュタイルは、そのキャッシュチェーン内の他のキャッシュタイルと同時に探索されることがある。
コアが特定のキャッシュラインを要求し、要求されるキャッシュラインが、そのキャッシュ内に存在しない(「キャッシュミス」)と判定されるとき、そのキャッシュラインは、キャッシュ階層内のメモリに近いキャッシュから、又はメモリから、そのキャッシュ内に取り込まれる場合がある。一実施形態では、最初に、その新たなキャッシュラインを、要求しているコアの近くに配置することができる。しかしながら、実施形態によっては、最初に、要求しているコアから距離を置いて新たなキャッシュラインを配置し、その後、そのキャッシュラインが繰返しアクセスされるときに、そのキャッシュラインを要求しているコアの近くに動かすことが好都合な場合もある。
一実施形態では、新たなキャッシュラインは単に、要求しているプロセッサコアから最も遠いキャッシュタイル内に置かれる場合がある。しかしながら、別の実施形態では、各キャッシュタイルは、キャッシュミス後に新たなキャッシュラインを受信するためのロケーションを割り当てるために、容量、妥当性又は他の受け入れるメトリックを指示することができるスコアを返すことができる。そのようなスコアは、キャッシュタイルの物理的なロケーション、及び潜在的なビクティムキャッシュラインが最後にアクセスされてから経過した時間のような情報を反映することができる。各キャッシュモレキュールが要求されたキャッシュラインへのミスを報告するとき、そのキャッシュモレキュールは、その中のキャッシュタイルによって報告される最も高いスコアを返すことができる。全キャッシュへのミスが判定されると、そのキャッシュは、モレキュールの最高スコアを比較し、全体で最も高いスコアを有するモレキュールを選択して、新たなキャッシュラインを受信することができる。
別の実施形態では、キャッシュは、どのキャッシュラインが最も長い時間使用されなかったか(最長未使用時間:LRU)を判定し、ミスの後に新たなキャッシュラインを受け入れるために、そのキャッシュラインを立ち退かせるために選択することができる。LRUの判定は実施するのが複雑である場合があるので、別の実施形態では、擬似LRU置換法が用いられる場合がある。LRUカウンタを、全キャッシュ内の各キャッシュタイルの各ロケーションに関連付けることができる。キャッシュヒット時に、要求されるキャッシュラインを含む場合があるが、実際には含んでいなかった各キャッシュタイル内の各ロケーションがアクセスされることがあり、そのロケーションのLRUカウンタがインクリメントされる。その後、別の要求されるキャッシュラインが、特定のキャッシュタイル内の特定のロケーションにおいて見つけられるとき、その場所のLRUカウンタはリセットされることができる。このようにして、そのロケーションのLRUカウンタは、各キャッシュタイル内のそのロケーションのキャッシュラインがアクセスされる頻度に関連付けられる値を含むことができる。この実施形態では、キャッシュは、各キャッシュタイル内の最も高いLRUカウンタ値を判定し、その後、全体で最も高いLRUカウンタ値を有するキャッシュタイルを選択して、新たなキャッシュラインを受信することができる。
これらの配置法のいずれかに対する改善は、メモリ内のキャッシュラインのためのクリティカリティの暗示(criticality hint)を使用することを含むことができる。キャッシュラインが、クリティカリティを暗示する命令によってロードされるデータを含むとき、そのキャッシュラインは、転送要求等の或る解放イベントが生じるまで、立ち退きのために選択されなくてもよい。
特定のキャッシュラインが全キャッシュ内に配置されると、そのキャッシュラインを、それを頻繁に要求するコアの近くに動かすことが好都合な場合がある。実施形態に応じて、2種類のキャッシュラインの動かし方に対応することができる。第1の種類の移動はモレキュール間で動かすことであり、その場合、キャッシュラインは、相互接続に沿って、キャッシュモレキュール間で動くことができる。第2の種類の移動はモレキュール内で動かすことであり、その場合、キャッシュラインは、キャッシュチェーンに沿って、キャッシュタイル間で動くことができる。
最初にモレキュール間移動を説明する。一実施形態では、キャッシュラインは、それらのキャッシュラインが要求しているコアによってアクセスされるときには必ず、要求しているコアの近くに動かされることができる。しかしながら、別の実施形態では、キャッシュラインが、特定の要求しているコアによって何度もアクセスされるまで、動かすのを遅らせることが好都合な場合もある。1つのそのような実施形態では、各キャッシュタイルの各キャッシュラインは、所定のカウント値の後に飽和する、関連する飽和カウンタを有することができる。各キャッシュラインは、新たに要求しているコアが、相互接続に沿ったどの方向に配置されるかを判定するための付加ビット及び関連するロジックも有することができる。他の実施形態では、他の形式のロジックを用いて、要求の量又は頻度、及び要求しているコアの場所又は素性を判定することもできる。これらの他の形式のロジックは、相互接続がデュアルリング相互接続ではなく、シングルリング相互接続、直線相互接続又は格子相互接続である実施形態において特に用いられる場合がある。
再び図1を参照すると、一例として、コア110を要求しているコアとし、且つ要求されるキャッシュラインが最初にキャッシュモレキュール134内に置かれるものとする。コア110からのアクセス要求は、キャッシュモレキュール134内の要求されるキャッシュラインに関連付けられる付加ビット及びロジックによって、反時計回りの方向からもたらされるものと指示されるであろう。要求されるキャッシュラインの飽和カウンタがその所定の値において飽和するのに必要とされる回数のアクセスが発生した後に、要求されるキャッシュラインを、コア110に向かって反時計回りの方向に動かすことができる。一実施形態では、そのキャッシュラインは、キャッシュモレキュール132まで、1キャッシュモレキュール分だけ動かされることができる。他の実施形態では、そのキャッシュラインは、一度に、2モレキュール分以上動かされることもある。キャッシュモレキュール132内に置かれると、要求されるキャッシュラインは、0にリセットされた新たな飽和カウンタに関連付けられるであろう。コア110がその要求されるキャッシュラインにアクセスし続ける場合には、そのキャッシュラインは再び、コア110の方向に動かされることができる。一方、そのキャッシュラインが、別のコア、たとえばコア104によって繰返しアクセスされ始める場合には、そのキャッシュラインは、コア104に近づくように、時計回りの方向に戻される場合がある。
ここで図3を参照すると、本開示の一実施形態による、キャッシュチェーン内のキャッシュタイルの図が示される。一実施形態では、キャッシュタイル222〜228として、図2のキャッシュモレキュール120のキャッシュタイルを用いることができ、それは、図1のコア102に対応する最も近いキャッシュモレキュールとして示される。
ここで、モレキュール内移動を説明する。一実施形態では、特定のキャッシュモレキュール内でのモレキュール内移動は、対応する「最も近い」コア(たとえば、そのモレキュールへの最小距離メトリックを有するコア)からの要求に対する応答においてのみ行われる場合がある。他の実施形態では、モレキュール内移動は、他のさらに遠隔したコアからの要求に対する応答において許可されることもある。一例として、対応する最も近いコア102が、最初にキャッシュタイル228のロケーション238にあるキャッシュラインへのアクセスを繰返し要求するものとする。この例では、ロケーション238の関連するビット及びロジックが、それらの要求が最も近いコア110からなされており、時計回り又は反時計回りのいずれの方向からのものでもないことを指示することができる。ロケーション238にある要求されるキャッシュラインの飽和カウンタがその所定の値において飽和するのに必要とされる回数のアクセスが発生した後に、要求されるキャッシュラインは、コア110に向かう方向に動かされることができる。一実施形態では、そのキャッシュラインは、キャッシュタイル226内のロケーション236まで、1キャッシュタイル分だけ近くに動かされることができる。他の実施形態では、一度に、2キャッシュタイル分以上近くに動かされることがある。キャッシュタイル226内に置かれると、ロケーション236にある要求されるキャッシュラインは、0にリセットされた新たな飽和カウンタに関連付けられる。
モレキュール間移動又はモレキュール内移動のいずれの場合でも、ターゲットにされるキャッシュモレキュール又はターゲットにされるキャッシュタイル内の宛先ロケーションはそれぞれ、動かされるキャッシュラインを受け入れるように選択され、準備される必要がある。いくつかの実施形態では、宛先ロケーションは、従来のキャッシュビクティム法を用いて、キャッシュタイル間若しくはキャッシュモレキュール間で「バブル」が伝搬することによって、又はそのキャッシュラインと、宛先構造(モレキュール又はタイル)内の別のキャッシュラインとを交換することによって、選択し、準備することができる。一実施形態では、宛先構造内にあるキャッシュラインの飽和カウンタ並びに関連するビット及びロジックを検査して、動かされることが望まれるキャッシュラインの方向に戻るように判定を動かそうとしている交換する候補キャッシュラインが存在するか否かを判定することができる。存在する場合には、これら2つのキャッシュラインを交換することができ、それらのキャッシュラインはいずれも、それぞれの要求しているコアに向かって都合良く動くことができる。別の実施形態では、宛先ロケーションを判定するのを助けるために、擬似LRUカウンタを検査することができる。
ここで図4を参照すると、本開示の一実施形態による、キャッシュラインを探索することに関する図が示される。図1に示されるL2キャッシュのような、分散しているキャッシュ内でキャッシュラインを探索するには、最初に、要求されるキャッシュラインが、そのキャッシュ内に存在する(「ヒット」)か、存在しない(「ミス」)かの判定を行なうことが必要とされる場合がある。一実施形態では、対応する「最も近い」キャッシュモレキュールに対して、スコアからのルックアップ要求がなされる。ヒットが見いだされる場合には、その過程は終了する。しかしながら、そのキャッシュモレキュールにおいてミスが見いだされる場合には、他のキャッシュモレキュールに対してルックアップ要求が送信される。その後、他のキャッシュモレキュールはそれぞれ、要求されるキャッシュラインを有するか否かを判定し、ヒット又はミスを返すことができる。この2段階のルックアップは、ブロック410によって表すことができる。1つ又は複数のキャッシュモレキュールにおいてヒットが判定される場合には、その過程はブロック412において完了する。他の実施形態では、キャッシュラインの探索は、要求しているプロセッサコアの最も近くにある1つ又は複数のキャッシュモレキュール又はキャッシュタイルを探索することによって開始することができる。そこで、キャッシュラインが見つからない場合には、その探索は、要求しているプロセッサコアからの距離の順序で、又は同時に、他のキャッシュモレキュール又はキャッシュタイルを探索し始めることができる。
しかしながら、ブロック414において、全てのキャッシュモレキュールがミスを報告する場合には、その過程は必ずしも終了するわけではない。以前に説明されたようなキャッシュラインを動かす技法に起因して、要求されるキャッシュラインは、第1のキャッシュモレキュールから出て、第2のキャッシュラインに入っているが、第1のキャッシュモレキュールは、要求されるキャッシュラインが出た後にミスを報告し、第2のキャッシュモレキュールは、要求されるキャッシュラインが入る前に報告した可能性がある。この状況では、全てのキャッシュモレキュールが、要求されるキャッシュラインに対するミスを報告する可能性があるが、要求されるキャッシュラインは実際には、そのキャッシュ内に依然として存在している。そのような状況におけるキャッシュラインの状態は、「存在するが見つからない」(PNF)と呼ばれる場合がある。ブロック414では、キャッシュモレキュールによって報告されるミスが、真のミスであるか(その過程はブロック416において完了する)、PNFであるかを見いだすために、さらに判定を行うことができる。ブロック418において、PNFが判定される場合には、実施形態にもよるが、要求されるキャッシュラインが移動間において見つけられるまで、その過程を繰り返すことが必要とされる場合がある。
ここで図5を参照すると、本開示の一実施形態による、不均等キャッシュアーキテクチャ収集サービスの図が示される。一実施形態では、多数のキャッシュモレキュール510〜518及びプロセッサコア520〜528を、時計回りリング552及び反時計回りリング550を有するデュアルリング相互接続で相互接続することができる。他の実施形態では、キャッシュモレキュール又はコアの他の分散形態を用いることができ、且つ他の相互接続を用いることができる。
キャッシュを探索し、報告されたミスが真のミスであるか、PNFであるかを判定するのを支援するために、一実施形態では、不均等キャッシュ収集サービス(NCS)530モジュールを用いることができる。NCS530は、キャッシュからの立ち退きを支援するためのライトバックバッファ532を備えることができ、ミスと宣言された同じキャッシュラインへの複数の要求を支援するためのミス状態保持レジスタ(MSHR)534も有することができる。一実施形態では、ライトバックバッファ532及びMSHR534は従来通りに設計することができる。
一実施形態では、未完了のメモリ要求の状態を追跡するために、ルックアップ状態保持レジスタ(LSHR)536を用いることができる。LSHR536は、キャッシュラインへのアクセス要求に応答して、種々のキャッシュモレキュールからヒット報告又はミス報告を受信し、表にすることができる。LSHR536が全てのキャッシュモレキュールからミス報告を受信した場合には、真のミスが生じているか、PNFが生じているかが明らかにならないことがある。
それゆえ、一実施形態では、NCS530は、真のミスの場合とPNFの場合とを区別するためにフォンブック538を備えることができる。他の実施形態では、他のロジック及び方法を用いて、その区別を行うことができる。フォンブック538は、全キャッシュ内に存在するキャッシュライン毎に1つのエントリを含むことができる。1つのキャッシュラインがキャッシュの中に持ち込まれるときに、対応するエントリがフォンブック538に入力される。そのキャッシュラインが、そのキャッシュから除去されるとき、対応するフォンブックエントリは無効化されるか、又は別の方法で割当てを取り消されることができる。一実施形態では、そのエントリとしてキャッシュラインのキャッシュタグを用いることができるが、他の実施形態では、キャッシュラインのための他の形式の識別子を用いることができる。NCS530は、任意の要求されるキャッシュラインのためのフォンブック538を探索するのを支援するためのロジックを含むことができる。一実施形態では、フォンブック538はコンテント・アドレッサブル・メモリ(CAM)であってもよい。
ここで図6Aを参照すると、本開示の一実施形態による、ルックアップ状態保持レジスタ(LSHR)の図が示される。一実施形態では、そのLSHRとして、図5のLSHR536を用いることができる。LSHR536は多数のエントリ610〜632を含むことができ、各エントリは、1つのキャッシュラインの未完了の要求を表すことができる。種々の実施形態において、エントリ610〜632は、要求されるキャッシュライン、及び種々のキャッシュモレキュールから受信されるヒット又はミス報告を記述するためのフィールドを含むことができる。LSHR536が、任意のキャッシュモレキュールからヒット報告を受信するとき、MCS530は、LSHR536内の対応するエントリの割当てを取り消すことができる。LSHR536が、或る特定の要求されるキャッシュラインの場合に全てのキャッシュモレキュールからミス報告を受信したとき、NCS530は、真のミスが生じているか、これがPNFの問題であるかを判定するためのロジックを呼び出すことができる。
ここで図6Bを参照すると、本開示の一実施形態による、ルックアップ状態保持レジスタエントリの図が示される。一実施形態では、そのエントリは、元の低次キャッシュ要求の指示(ここでは、1次L1キャッシュからの要求であり、「初期L1要求」)640と、最初に「ミス」に設定されるが、任意のキャッシュモレキュールがそのキャッシュラインへのヒットを報告するときに、「ヒット」にトグルすることができるミス状態ビット642と、未完了の応答の数644を示すカウントダウンフィールドとを含むことができる。一実施形態では、初期L1要求は、要求されるキャッシュラインのキャッシュタグを含むことができる。未完了の応答の数644のフィールドは最初に、キャッシュモレキュールの全数に設定することができる。初期L1要求640において、要求されるキャッシュラインのための報告が受信される度に、未完了の応答の数644をデクリメントすることができる。未完了の応答の数644が0に達するとき、NCS530は、ミス状態ビット642を検査することができる。ミス状態ビット642がミスのままである場合には、NCS530は、フォンブック538を検査して、これが真のミスであるか、PNFであるかを判定することができる。
ここで図7を参照すると、本開示の一実施形態による、キャッシュラインを探索するための方法の流れ図が示される。他の実施形態では、図7のブロックによって示される過程の個々の部分が、その過程を実行している間に、時間とともに割当て及び配列し直される場合がある。一実施形態では、図7の方法は、図5のNCS530によって実行することができる。
判定ブロック712において開始するとき、キャッシュモレキュールからヒット報告又はミス報告が受信される。その報告がヒットである場合には、その過程はNOパスに沿って進み、ブロック714において終了する。その報告がミスであり、依然として、未完了の報告が存在する場合には、その過程は未完了パスに沿って進み、再び判定ブロック712に入る。しかしながら、その報告がミスであり、且つそれ以上の未完了の報告がない場合には、その過程はYESパスに沿って進む。
その後、判定ブロック718において、ミスしているキャッシュラインがライトバックバッファ内にエントリを有するか否かを判定することができる。エントリを有する場合には、その過程はYESパスに沿って進み、ブロック720において、そのキャッシュライン要求は、キャッシュコヒーレンシ動作の一部として、ライトバックバッファ内のエントリによって満たされることがある。その後、その探索はブロック722において終了することができる。しかしながら、ミスしているキャッシュラインがライトバックバッファ内にエントリを有さない場合には、その過程はNOパスに沿って進む。
判定ブロック726では、キャッシュ内に存在する全てのキャッシュラインのタグを含むフォンブックを探索することができる。フォンブックにおいて一致が見いだされる場合には、その過程はYESパスに沿って進み、ブロック728において、存在するが見つからないという条件を宣言することができる。しかしながら、一致が見いだされない場合には、その過程はNOパスに沿って進む。その後、判定ブロック730では、同じキャッシュラインへの別の未完了の要求があるか否かを判定することができる。これは、図5のMSHR534のようなミス状態保持レジスタ(MSHR)を検査することによって実行することができる。要求がある場合には、その過程はYESブランチに沿って進み、その探索は、ブロック734の既存の探索と連結される。先在する要求がなく、且つMSHR又はライトバックバッファが一時的にフルである場合のように、資源に制約がある場合には、その過程は、要求をバッファ732に入れて、再び判定ブロック730に入ることができる。しかしながら、先在している要求がなく、且つ資源に制約がない場合には、その過程は、判定ブロック740に入ることができる。
判定ブロック740では、キャッシュにおいて要求されるキャッシュラインを受信するためのロケーションを割り当てるのに最良の方法を判定することができる。何らかの理由で、現時点で割当てを行うことができない場合には、その過程は、その要求をバッファ742に入れて、後に再び試行することができる。立ち退きを強要することなく、無効状態のキャッシュラインを含むロケーション等への割当てを行うことができる場合には、その過程はブロック744に進み、メモリに対する要求を実行することができる。立ち退きを強要することによって、頻繁にはアクセスされていなかった有効状態のキャッシュラインを含むロケーション等への割当てを行うことができる場合には、その過程は判定ブロック750に進む。判定ブロック750では、ビクティム化されたキャッシュラインの内容のライトバックが必要とされるか否かを判定することができる。必要とされない場合には、ブロック744においてメモリへの要求を開始する前に、ブロック752において、ビクティムのために除外されたライトバックバッファ内のエントリの割当てを取り消すことができる。必要とされる場合には、ブロック744におけるメモリへの要求は、対応するライトバック動作も含むことができる。いずれの場合でも、ブロック744のメモリ動作は、ブロック746において任意のタグミスを除去することで終了する。
ここで図8を参照すると、本開示の一実施形態による、ブレッドクラムテーブルを有するキャッシュモレキュールの図が示される。キャッシュモレキュール800のL2コントローラ810は、ブレッドクラムテーブル812を追加されている。一実施形態では、L2コントローラ810がキャッシュラインの要求を受信するときには必ず、L2コントローラは、そのキャッシュラインのタグ(又は他の識別子)をブレッドクラムテーブル812のエントリ814に挿入することができる。ブレッドクラムテーブル内のエントリは、要求されるキャッシュラインの未完了の探索が完了するような時点まで、保持されることがある。その後、そのエントリは、割当てを取り消されることができる。
別のキャッシュモレキュールが、キャッシュラインをキャッシュモレキュール800の中に動かすことを望むとき、L2コントローラ810は最初に、移動候補キャッシュラインが、ブレッドクラムテーブル812の中にそのタグを有するか否かを確認することができる。たとえば、移動候補キャッシュラインが要求されるキャッシュラインであり、そのタグがエントリ814内に存在する場合には、L2コントローラ810は、移動候補キャッシュラインを受け入れるのを拒否することができる。要求されるキャッシュラインの未完了の探索が完了するまで、このように拒否し続けることができる。その探索は、全てのキャッシュモレキュールが個々のヒット報告又はミス報告を提出した後にのみ完了することができる。これは、転送しているキャッシュモレキュールが、そのヒット報告又はミス報告を提出した後の或る時点まで、要求されるキャッシュラインを保持しなければならないことを意味することができる。この状況では、転送しているキャッシュモレキュールからのヒット又はミス報告は、ミスではなく、ヒットを指示するであろう。このようにして、ブレッドクラムテーブル812を使用することにより、存在するが見つからないキャッシュラインが発生しないようにすることができる。
ブレッドクラムテーブルを含むキャッシュモレキュールとともに用いられるとき、図5のNCS530は、フォンブックを削除するように変更することができる。その際、LSHR536がキャッシュモレキュールから全てのミス報告を受信したとき、NCS530は、真のミスを宣言することができ、その探索は、完了したものと見なすことができる。
ここで図9A及び図9Bを参照すると、本開示の2つの実施形態による、複数のコア及びキャッシュモレキュールを有するプロセッサを備えるシステムの概略図が示される。図9Aのシステムは、プロセッサ、メモリ及び入力/出力デバイスがシステムバスによって相互接続されるシステムを概略的に示すのに対して、図9Bのシステムは、プロセッサ、メモリ及び入力/出力デバイスが多数のポイント・ツー・ポイントインターフェースによって相互接続されるシステムを概略的に示す。
図9Aのシステムは、1つ又はいくつかのプロセッサを含むことができるが、ここでは明確にするために、そのうちの2つのプロセッサ40、60だけが示される。プロセッサ40、60は2次キャッシュ42、62を備えることができ、各プロセッサ40、60は、それぞれが複数のコアを含むことができ、且つキャッシュ42、62はそれぞれが複数のキャッシュモレキュールを含むことができる。図7Aのシステムは、システムバス6とのバスインターフェース44、64、12、8を介して接続されるいくつかの機能を有することができる。一実施形態では、システムバス6として、インテル(登録商標)社によって製造されるPentium(登録商標)クラスプロセッサで利用されるフロントサイドバス(FSB)を用いることができる。他の実施形態では、他のバスを用いることができる。いくつかの実施形態において、メモリコントローラ34及びバスブリッジ32はまとめて、チップセットと呼ばれることがある。いくつかの実施形態では、チップセットの機能は、図9Aの実施形態において示されるのとは異なるように、物理的なチップの間で分割されることがある。
メモリコントローラ34によって、プロセッサ40、60は、システムメモリ10に対して、且つ基本入力/出力システム(BIOS)消去可能プログラマブルリードオンリーメモリ(EPROM)36に対して、読出し及び書込みを行うことができるようになる。いくつかの実施形態では、BIOS EPROM36は、フラッシュメモリを利用することができ、BIOSの代わりに、他の基本演算ファームウエアを含むこともできる。メモリコントローラ34は、バスインターフェース8を備え、メモリ読出し及び書込みデータが、システムバス6上でバスエージェントとの間で搬送されるようにすることができる。メモリコントローラ34は、ハイパフォーマンスグラフィックスインターフェース39を介して、ハイパフォーマンスグラフィックス回路38と接続することもできる。或る特定の実施形態では、ハイパフォーマンスグラフィックスインターフェース39は、アドバンスドグラフィックスポートAGPインターフェースであってもよい。メモリコントローラ34は、ハイパフォーマンスグラフィックスインターフェース39を介して、データをシステムメモリ10からハイパフォーマンスグラフィックス回路38に送信することができる。
図9Bのシステムは、1つ又はいくつかのプロセッサを含むことができるが、ここでは明確にするために、そのうちの2つのプロセッサ70、80だけが示される。プロセッサ70、80は、2次キャッシュ56、58を備えることができ、各プロセッサ70、80は、それぞれが複数のコアを含むことができ、且つキャッシュ56、58はそれぞれが複数のキャッシュモレキュールを含むことができる。プロセッサ70、80はそれぞれ、メモリ2、4と接続するためのローカルメモリコントローラハブ(MCH)72、82を含むことができる。プロセッサ70、80は、ポイント・ツー・ポイントインターフェース50を介して、ポイント・ツー・ポイントインターフェース回路78、88を用いてデータを交換することができる。プロセッサ70、80はそれぞれ、ポイント・ツー・ポイントインターフェース52、54を介して、ポイント・ツー・ポイントインターフェース回路76、94、86、98を用いてチップセット90とデータを交換することができる。他の実施形態では、チップセット機能は、プロセッサ70、80内に実装することができる。チップセット90は、ハイパフォーマンスグラフィックスインターフェース92を介して、ハイパフォーマンスグラフィックス回路38とデータを交換することもできる。
図9Aのシステムでは、バスブリッジ32によって、システムバス6とバス16との間でデータを交換できるようになり、いくつかの実施形態では、そのバスは、業界標準アーキテクチャ(ISA)バス又は周辺機器相互接続(PCI)バスであってもよい。図9Bのシステムでは、チップセット90は、バスインターフェース96を介して、バス16とデータを交換することができる。いずれのシステムでも、実施形態によって、ローパフォーマンスグラフィックスコントローラ、ビデオコントローラ、及びネットワーキングコントローラを含む、バス16上に種々の入力/出力I/Oデバイス14が存在する場合がある。いくつかの実施形態では、バス16とバス20との間でデータを交換できるようにするために、別のバスブリッジ18を用いることができる。実施形態によって、バスは、小型コンピュータシステムインターフェース(SCSI)バス、インテグレーテッドドライブエレクトロニクス(IDE)バス、又はユニバーサルシリアルバス(USB)バスであってもよい。さらに別のI/Oデバイスをバス20に接続することができる。これらのデバイスは、キーボード及びマウスを含むカーソル制御デバイス22と、オーディオI/O24と、モデム及びネットワークインターフェースを含む通信デバイス26と、データ記憶デバイス28とを含むことができる。ソフトウエアコード30は、データ記憶デバイス28上に格納することができる。実施形態によって、データ記憶デバイス28として、固定磁気ディスク、フロッピィディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープ、又はフラッシュメモリを含む不揮発性メモリを用いることができる。
これまでの明細書において、本発明は、その具体的な例示的実施形態を参照しながら説明されてきた。しかしながら、添付の特許請求の範囲において述べられるような本発明の広い精神及び範囲から逸脱することなく、それらの例示的実施形態に対して種々の変更及び改変を行うことができることは明らかであろう。したがって、明細書及び図面は、限定するものと解釈されるのではなく、例示と見なされるべきである。
本開示の一実施形態による、リング相互接続上のキャッシュモレキュールの図である。 本開示の一実施形態による、キャッシュモレキュールの図である。 本開示の一実施形態による、キャッシュチェーン内のキャッシュタイルの図である。 本開示の一実施形態による、キャッシュラインの探索の図である。 本開示の別の実施形態による、不均等キャッシュアーキテクチャ収集サービスの図である。 本開示の別の実施形態による、ルックアップ状態保持レジスタの図である。 本開示の別の実施形態による、ルックアップ状態保持レジスタエントリの図である。 本開示の別の実施形態による、キャッシュラインを探索するための方法の流れ図である。 本開示の別の実施形態による、ブレッドクラムテーブルを有するキャッシュモレキュールの図である。 本開示の一実施形態による、複数のコア及びキャッシュモレキュールを有するプロセッサを備えるシステムの概略図である。 本開示の別の実施形態による、複数のコア及びキャッシュモレキュールを有するプロセッサを備えるシステムの概略図である。

Claims (58)

  1. インターフェースを介して接続される1組のプロセッサコアと、
    同時に探索することができる1組のキャッシュタイルと
    を備え、前記1組のキャッシュタイルのうちの第1のキャッシュタイル及び第2のキャッシュタイルが第1のキャッシュラインを受信することになり、前記1組のプロセッサコアのうちの第1のコアから前記第1のキャッシュタイルまでの距離及び前記第2のキャッシュタイルまでの距離は異なる、プロセッサ。
  2. 前記インターフェースはリングである、請求項1に記載のプロセッサ。
  3. 前記リングは時計回りリング及び反時計回りリングを含む、請求項2に記載のプロセッサ。
  4. 前記インターフェースは格子である、請求項1に記載のプロセッサ。
  5. 前記1組のキャッシュタイルのうちの第1のサブセットはそれぞれ、前記1組のプロセッサコアのうちの1つのプロセッサコアに接続され、且つ該1組のプロセッサコアのうちの該1つのプロセッサコアの第1のキャッシュチェーンに関連付けられ、前記1組のキャッシュタイルのうちの第2のサブセットはそれぞれ、前記1組のプロセッサコアのうちの前記1つのプロセッサコアに接続され、且つ該1組のプロセッサコアのうちの該1つのプロセッサコアの第2のキャッシュチェーンに関連付けられる、請求項1に記載のプロセッサ。
  6. 前記1組のプロセッサコアのうちの前記1つのプロセッサコアの前記第1のキャッシュチェーン及び該1組のプロセッサコアのうちの該1つのプロセッサコアの前記第2のキャッシュチェーンはそれぞれ、該1組のプロセッサコアのうちの該1つのプロセッサコアのキャッシュモレキュールに関連付けられる、請求項5に記載のプロセッサ。
  7. 前記1組のプロセッサコアのうちの第1のプロセッサコアによって要求される第1のキャッシュラインは、該第1のプロセッサコアに接続されない第1のキャッシュモレキュール内の第1のキャッシュタイル内に置かれることになる、請求項6に記載のプロセッサ。
  8. 前記キャッシュタイルはそれぞれ、新たなキャッシュラインを配置するためのスコアを指示することになり、前記キャッシュモレキュールはそれぞれ、前記キャッシュタイルの前記スコアから選択されるモレキュール最高スコアを指示することになる、請求項7に記載のプロセッサ。
  9. 前記第1のキャッシュラインは、前記モレキュール最高スコアのうちの全体で最も高いスコアに応答して配置されることになる、請求項8に記載のプロセッサ。
  10. 前記第1のキャッシュラインは、ソフトウエアクリティカリティの暗示に応答して配置される、請求項7に記載のプロセッサ。
  11. 前記第1のキャッシュチェーンの前記第1のキャッシュタイル内の前記第1のキャッシュラインは、該第1のキャッシュラインが何度もアクセスされるときに、前記第1のキャッシュチェーンの第2のキャッシュタイルに動かされる、請求項7に記載のプロセッサ。
  12. 前記第1のキャッシュラインは、立ち退いたキャッシュラインのロケーションに動かされる、請求項11に記載のプロセッサ。
  13. 前記第1のキャッシュラインは、前記第2のキャッシュタイルの第2のキャッシュラインと交換されることになる、請求項11に記載のプロセッサ。
  14. 前記第1のキャッシュモレキュール内の前記第1のキャッシュラインは、該第1のキャッシュラインが何度もアクセスされるときに、第2のキャッシュモレキュールに動かされる、請求項7に記載のプロセッサ。
  15. 前記第1のキャッシュラインは、立ち退いたキャッシュラインのロケーションに動かされる、請求項14に記載のプロセッサ。
  16. 前記第1のキャッシュラインは、前記第2のキャッシュモレキュールの第2のキャッシュラインと交換されることになる、請求項14に記載のプロセッサ。
  17. 前記第1のキャッシュモレキュール内の前記第1のキャッシュラインのルックアップ要求は、前記第1のキャッシュチェーンの全てのキャッシュタイルに同時に送信されることになる、請求項7に記載のプロセッサ。
  18. 前記第1のキャッシュラインのルックアップ要求は、前記キャッシュモレキュールに同時に送信されることになる、請求項7に記載のプロセッサ。
  19. 前記キャッシュモレキュールはそれぞれ、第1のテーブルにヒットメッセージ又はミスメッセージを返す、請求項18に記載のプロセッサ。
  20. 前記第1のテーブルが、前記ヒットメッセージ又は前記ミスメッセージが全てミスを指示するものと判定するとき、存在するキャッシュラインのタグの第2のテーブルに対する探索が行われる、請求項19に記載のプロセッサ。
  21. 前記第1のキャッシュラインの第1のタグが前記第2のテーブルにおいて見つけられるとき、該第1のキャッシュラインは、存在するが見つからないものと判定されることになる、請求項20に記載のプロセッサ。
  22. 前記キャッシュモレキュールのうちの第1のキャッシュモレキュールは、前記ルックアップ要求を受信した後に、前記第1のキャッシュラインの転送を受け入れるのを拒否することになる、請求項18に記載のプロセッサ。
  23. 第1のプロセッサコアに関連付けられるキャッシュタイル内にある第1のキャッシュラインを探索すること、
    前記第1のキャッシュラインが前記第1のプロセッサコアに関連付けられる前記キャッシュタイル内で見つけられない場合には、該第1のプロセッサコアではないプロセッサコアに関連付けられる複数の組のキャッシュタイルに前記第1のキャッシュラインの要求を送信すること、及び
    レジスタを用いて前記複数の組のキャッシュタイルからの応答を追跡すること
    を含む、方法。
  24. 前記追跡することは、前記応答の予想される数をカウントダウンすることを含む、請求項23に記載の方法。
  25. 前記第1のキャッシュラインは、第1のキャッシュタイルから第2のキャッシュタイルに動くことができる、請求項24に記載の方法。
  26. 前記応答が全て受信された後に、前記第1のキャッシュラインが前記タイル内で見つけられないことを宣言することをさらに含む、請求項25に記載の方法。
  27. 前記第1のキャッシュラインが前記タイル内で見つけられないときに、存在するキャッシュラインのディレクトリを探索することであって、それによって、前記第1のキャッシュラインが存在するが見つからないか否かを判定する、探索することをさらに含む、請求項26に記載の方法。
  28. マーカを検査することによって前記第2のキャッシュタイルからの応答が発行された後に、前記第1のキャッシュラインが前記第2のキャッシュタイルの中に動くのを防ぐことをさらに含む、請求項23に記載の方法。
  29. 第1のキャッシュラインを第1のキャッシュタイルに配置すること、及び
    前記第1のキャッシュラインを、要求しているプロセッサコアに近い第2のキャッシュタイルに動かすこと
    を含む、方法。
  30. 前記動かす前に、前記要求しているプロセッサコアからの前記第1のキャッシュラインの要求回数をカウントすることをさらに含む、請求項29に記載の方法。
  31. 前記要求しているプロセッサコアからの前記第1のキャッシュラインの要求方向を追跡することであって、それによって、該方向に動かすことができるようにする、追跡することをさらに含む、請求項29に記載の方法。
  32. 前記動かすことは、前記第1のキャッシュタイルを保持する第1のキャッシュモレキュールと前記第2のタイルを保持する第2のキャッシュモレキュールとの間で動かすことを含む、請求項29に記載の方法。
  33. 前記動かすことは、前記要求しているプロセッサコアに接続され、前記第1のキャッシュタイル及び前記第2のキャッシュタイルを保持する第1のキャッシュモレキュール内で動かすことを含む、請求項29に記載の方法。
  34. 前記動かすことは、前記第2のキャッシュタイル内の第2のキャッシュラインを立ち退かせることを含む、請求項29に記載の方法。
  35. 前記動かすことは、前記第1のキャッシュタイル内の前記第1のキャッシュラインと、前記第2のキャッシュタイル内の第2のキャッシュラインとを交換することを含む、請求項29に記載の方法。
  36. インターフェースを介して接続される1組のプロセッサコアと、同時に探索することができる1組のキャッシュタイルとを備えるプロセッサであって、該1組のキャッシュタイルのうちの第1のキャッシュタイル及び第2のキャッシュタイルが第1のキャッシュラインを受信することになり、該1組のプロセッサコアのうちの第1のコアから該第1のキャッシュタイルまでの距離及び該第2のキャッシュタイルまでの距離は異なる、プロセッサと、
    前記プロセッサを入力/出力デバイスに接続するためのシステムインターフェースと、
    前記プロセッサから信号を受信するためのネットワークコントローラと
    を備える、システム。
  37. 前記1組のキャッシュタイルのうちの第1のサブセットはそれぞれ、前記1組のプロセッサコアのうちの1つのプロセッサコアに接続され、且つ該1組のプロセッサコアのうちの該1つのプロセッサコアの第1のキャッシュチェーンに関連付けられ、前記1組のキャッシュタイルのうちの第2のサブセットはそれぞれ、前記1組のプロセッサコアのうちの前記1つのプロセッサコアに接続され、且つ該1組のプロセッサコアのうちの該1つのプロセッサコアの第2のキャッシュチェーンに関連付けられる、請求項36に記載のシステム。
  38. 前記1組のプロセッサコアのうちの前記1つのプロセッサコアの前記第1のキャッシュチェーン及び該1組のプロセッサコアのうちの該1つのプロセッサコアの前記第2のキャッシュチェーンはそれぞれ、該1組のプロセッサコアのうちの該1つのプロセッサコアのキャッシュモレキュールに関連付けられる、請求項37に記載のシステム。
  39. 前記1組のプロセッサコアのうちの第1のプロセッサコアによって要求される第1のキャッシュラインは、該第1のプロセッサコアに接続されない第1のキャッシュモレキュール内の第1のキャッシュタイル内に置かれることになる、請求項38に記載のシステム。
  40. 前記第1のキャッシュチェーンの前記第1のキャッシュタイル内の前記第1のキャッシュラインは、該第1のキャッシュラインが何度もアクセスされるときに、前記第1のキャッシュチェーンの第2のキャッシュタイルに動かされる、請求項39に記載のシステム。
  41. 前記第1のキャッシュラインは、立ち退いたキャッシュラインのロケーションに動かされる、請求項39に記載のシステム。
  42. 前記第1のキャッシュラインは、前記第2のキャッシュタイルの第2のキャッシュラインと交換されることになる、請求項39に記載のシステム。
  43. 前記第1のキャッシュモレキュール内の前記第1のキャッシュラインは、該第1のキャッシュラインが何度もアクセスされるときに、第2のキャッシュモレキュールに動かされる、請求項39に記載のシステム。
  44. 前記第1のキャッシュモレキュール内の前記第1のキャッシュラインのルックアップ要求は、前記第1のキャッシュチェーンの全てのキャッシュタイルに同時に送信されることになる、請求項39に記載のシステム。
  45. 前記第1のキャッシュラインのルックアップ要求は、前記キャッシュモレキュールに同時に送信されることになる、請求項39に記載のシステム。
  46. 第1のプロセッサコアに関連付けられるキャッシュタイル内にある第1のキャッシュラインを探索するための手段と、
    前記第1のキャッシュラインが前記第1のプロセッサコアに関連付けられる前記キャッシュタイル内で見つけられない場合には、1組のプロセッサコアに前記第1のキャッシュラインの要求を送信するための手段と、
    レジスタを用いて前記1組のプロセッサコアからの応答を追跡するための手段と
    を備える、装置。
  47. 前記追跡するための手段は、前記応答の予想される数をカウントダウンするための手段を含む、請求項46に記載の装置。
  48. 前記第1のキャッシュラインは、第1のキャッシュタイルから第2のキャッシュタイルに動くことができる、請求項47に記載の装置。
  49. 前記応答が全て受信された後に、前記第1のキャッシュラインが前記タイル内で見つけられないことを宣言するための手段をさらに備える、請求項48に記載の装置。
  50. 前記第1のキャッシュラインが前記タイル内で見つけられないときに、存在するキャッシュラインのディレクトリを探索するための手段であって、それによって、前記第1のキャッシュラインが存在するが見つからないか否かを判定する、探索するための手段をさらに備える、請求項49に記載の装置。
  51. マーカを検査することによって前記第2のキャッシュタイルからの応答が発行された後に、前記第1のキャッシュラインが前記第2のキャッシュタイルの中に動くのを防ぐための手段をさらに備える、請求項48に記載の装置。
  52. 第1のキャッシュラインを第1のキャッシュタイルに配置するための手段と、
    前記第1のキャッシュラインを、要求しているプロセッサコアに近い第2のキャッシュタイルに動かすための手段と
    を備える、装置。
  53. 前記動かす前に、前記要求しているプロセッサコアからの前記第1のキャッシュラインの要求回数をカウントするための手段をさらに備える、請求項52に記載の装置。
  54. 前記要求しているプロセッサコアからの前記第1のキャッシュラインの要求方向を追跡するための手段であって、それによって、該方向に動かすことができるようにする、追跡するための手段をさらに備える、請求項52に記載の装置。
  55. 前記動かすための手段は、前記第1のキャッシュタイルを保持する第1のキャッシュモレキュールと前記第2のタイルを保持する第2のキャッシュモレキュールとの間で動かすための手段を含む、請求項52に記載の装置。
  56. 前記動かすための手段は、前記要求しているプロセッサコアに接続され、前記第1のキャッシュタイル及び前記第2のキャッシュタイルを保持する第1のキャッシュモレキュール内で動かすための手段を含む、請求項52に記載の装置。
  57. 前記動かすための手段は、前記第2のキャッシュタイル内の第2のキャッシュラインを立ち退かせるための手段を含む、請求項56に記載の装置。
  58. 前記動かすための手段は、前記第1のキャッシュタイル内の前記第1のキャッシュラインと、前記第2のキャッシュタイル内の第2のキャッシュラインとを交換するための手段を含む、請求項56に記載の装置。
JP2007548607A 2004-12-27 2005-12-27 マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法 Expired - Fee Related JP5096926B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/023,925 2004-12-27
US11/023,925 US20060143384A1 (en) 2004-12-27 2004-12-27 System and method for non-uniform cache in a multi-core processor
PCT/US2005/047592 WO2006072061A2 (en) 2004-12-27 2005-12-27 System and method for non-uniform cache in a multi-core processor

Publications (2)

Publication Number Publication Date
JP2008525902A true JP2008525902A (ja) 2008-07-17
JP5096926B2 JP5096926B2 (ja) 2012-12-12

Family

ID=36215814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007548607A Expired - Fee Related JP5096926B2 (ja) 2004-12-27 2005-12-27 マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法

Country Status (5)

Country Link
US (1) US20060143384A1 (ja)
JP (1) JP5096926B2 (ja)
CN (2) CN103324584B (ja)
TW (1) TWI297832B (ja)
WO (1) WO2006072061A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522402A (ja) * 2007-03-23 2010-07-01 クゥアルコム・インコーポレイテッド マルチプロセッサシステムのための命令通信技術
JP2013515997A (ja) * 2009-12-30 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス
US9606917B2 (en) 2014-04-25 2017-03-28 Fujitsu Limited Arithmetic processing apparatus and method for controlling same

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788240B2 (en) * 2004-12-29 2010-08-31 Sap Ag Hash mapping with secondary table having linear probing
US20060248287A1 (en) * 2005-04-29 2006-11-02 Ibm Corporation Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache
US7571285B2 (en) * 2006-07-21 2009-08-04 Intel Corporation Data classification in shared cache of multiple-core processor
US7600077B2 (en) * 2007-01-10 2009-10-06 Arm Limited Cache circuitry, data processing apparatus and method for handling write access requests
US8131937B2 (en) * 2007-06-22 2012-03-06 International Business Machines Corporation Apparatus and method for improved data persistence within a multi-node system
US7873791B1 (en) * 2007-09-28 2011-01-18 Emc Corporation Methods and systems for incorporating improved tail cutting in a prefetch stream in TBC mode for data storage having a cache memory
CN100580630C (zh) * 2007-12-29 2010-01-13 中国科学院计算技术研究所 满足SystemC语法要求的多核处理器及获得其执行代码的方法
US8166246B2 (en) * 2008-01-31 2012-04-24 International Business Machines Corporation Chaining multiple smaller store queue entries for more efficient store queue usage
US7941637B2 (en) * 2008-04-15 2011-05-10 Freescale Semiconductor, Inc. Groups of serially coupled processor cores propagating memory write packet while maintaining coherency within each group towards a switch coupled to memory partitions
US8527726B2 (en) * 2008-11-13 2013-09-03 International Business Machines Corporation Tiled storage array with systolic move-to-front reorganization
US8689027B2 (en) * 2008-11-13 2014-04-01 International Business Machines Corporation Tiled memory power management
US8539185B2 (en) * 2008-11-13 2013-09-17 International Business Machines Corporation Systolic networks for a spiral cache
US8543768B2 (en) * 2008-11-13 2013-09-24 International Business Machines Corporation Memory system including a spiral cache
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
US8615633B2 (en) * 2009-04-23 2013-12-24 Empire Technology Development Llc Multi-core processor cache coherence for reduced off-chip traffic
EP2441005A2 (en) * 2009-06-09 2012-04-18 Martin Vorbach System and method for a cache in a multi-core processor
US8370579B2 (en) * 2009-12-17 2013-02-05 International Business Machines Corporation Global instructions for spiral cache management
US8667227B2 (en) * 2009-12-22 2014-03-04 Empire Technology Development, Llc Domain based cache coherence protocol
US20110153953A1 (en) * 2009-12-23 2011-06-23 Prakash Khemani Systems and methods for managing large cache services in a multi-core system
TWI420311B (zh) * 2010-03-18 2013-12-21 Univ Nat Sun Yat Sen 基於集合分模組之快取記憶體之分割方法
US20110320781A1 (en) * 2010-06-29 2011-12-29 Wei Liu Dynamic data synchronization in thread-level speculation
US8954790B2 (en) 2010-07-05 2015-02-10 Intel Corporation Fault tolerance of multi-processor system with distributed cache
US9009384B2 (en) * 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US8683129B2 (en) * 2010-10-21 2014-03-25 Oracle International Corporation Using speculative cache requests to reduce cache miss delays
CN102117262B (zh) * 2010-12-21 2012-09-05 清华大学 用于多核处理器的Cache的主动复制方法及系统
KR101497516B1 (ko) 2010-12-29 2015-03-02 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 디렉토리 기반의 멀티코어 아키텍처 상에서 캐시 상태 전송의 가속화
KR101799978B1 (ko) * 2011-06-17 2017-11-22 삼성전자주식회사 타일 근접성을 사용하는 타일 기반 렌더링 방법 및 장치
US8902625B2 (en) * 2011-11-22 2014-12-02 Marvell World Trade Ltd. Layouts for memory and logic circuits in a system-on-chip
KR101629879B1 (ko) 2012-02-06 2016-06-13 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 캐시 사용 기반 어댑티브 스케줄링을 가지는 멀티코어 컴퓨터 시스템
US9645930B2 (en) * 2013-06-19 2017-05-09 Intel Corporation Dynamic home tile mapping
CN105264501B (zh) 2013-06-19 2018-06-08 英派尔科技开发有限公司 定位多核处理器中的被高速缓存的数据的方法和装置
WO2015075673A1 (en) 2013-11-21 2015-05-28 Green Cache AB Systems and methods for reducing first level cache energy by eliminating cache address tags
US9460012B2 (en) 2014-02-18 2016-10-04 National University Of Singapore Fusible and reconfigurable cache architecture
US9785568B2 (en) * 2014-05-19 2017-10-10 Empire Technology Development Llc Cache lookup bypass in multi-level cache systems
US10402331B2 (en) 2014-05-29 2019-09-03 Samsung Electronics Co., Ltd. Systems and methods for implementing a tag-less shared cache and a larger backing cache
WO2016049808A1 (zh) * 2014-09-29 2016-04-07 华为技术有限公司 多核处理器系统的缓存目录处理方法和目录控制器
CN104484286B (zh) * 2014-12-16 2017-10-31 中国人民解放军国防科学技术大学 片上Cache网络中基于位置感知的数据预取方法
US20170083336A1 (en) * 2015-09-23 2017-03-23 Mediatek Inc. Processor equipped with hybrid core architecture, and associated method
US20170091117A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Method and apparatus for cache line deduplication via data matching
US10019360B2 (en) * 2015-09-26 2018-07-10 Intel Corporation Hardware predictor using a cache line demotion instruction to reduce performance inversion in core-to-core data transfers
SG11201803730TA (en) 2015-11-04 2018-06-28 Samsung Electronics Co Ltd Systems and methods for implementing coherent memory in a multiprocessor system
US20170168957A1 (en) * 2015-12-10 2017-06-15 Ati Technologies Ulc Aware Cache Replacement Policy
CN108228481A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于保证数据一致性的方法和设备
US10762000B2 (en) * 2017-04-10 2020-09-01 Samsung Electronics Co., Ltd. Techniques to reduce read-modify-write overhead in hybrid DRAM/NAND memory
CN108287795B (zh) * 2018-01-16 2022-06-21 安徽蔻享数字科技有限公司 一种处理器缓存替换方法
CN109857562A (zh) * 2019-02-13 2019-06-07 北京理工大学 一种众核处理器上访存距离优化的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816474A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd マルチプロセッサシステム
WO2003088048A1 (en) * 2002-04-08 2003-10-23 University Of Texas System Non-uniform cache apparatus, systems, and methods
WO2004061678A2 (en) * 2002-12-19 2004-07-22 Intel Corporation Forward state for use in cache coherency in a multiprocessor system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0437935A (ja) * 1990-06-01 1992-02-07 Hitachi Ltd キャッシュメモリを有する計算機
WO1995024678A2 (en) * 1994-03-01 1995-09-14 Intel Corporation Highly pipelined bus architecture
EP0689141A3 (en) * 1994-06-20 1997-10-15 At & T Corp Disruption-based hardware support for system performance profiling
US5812418A (en) * 1996-10-31 1998-09-22 International Business Machines Corporation Cache sub-array method and apparatus for use in microprocessor integrated circuits
US5909697A (en) * 1997-09-30 1999-06-01 Sun Microsystems, Inc. Reducing cache misses by snarfing writebacks in non-inclusive memory systems
US6487641B1 (en) * 1999-04-19 2002-11-26 Oracle Corporation Dynamic caches with miss tables
US6675265B2 (en) * 2000-06-10 2004-01-06 Hewlett-Packard Development Company, L.P. Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
GB0015276D0 (en) * 2000-06-23 2000-08-16 Smith Neale B Coherence free cache
JP3791406B2 (ja) * 2001-01-19 2006-06-28 株式会社村田製作所 積層型インピーダンス素子
US20030163643A1 (en) * 2002-02-22 2003-08-28 Riedlinger Reid James Bank conflict determination
US7096323B1 (en) * 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
US20060041715A1 (en) * 2004-05-28 2006-02-23 Chrysos George Z Multiprocessor chip having bidirectional ring interconnect

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816474A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd マルチプロセッサシステム
WO2003088048A1 (en) * 2002-04-08 2003-10-23 University Of Texas System Non-uniform cache apparatus, systems, and methods
JP2005522773A (ja) * 2002-04-08 2005-07-28 ユニバーシティー・オブ・テキサス・システム 非均等型キャッシュ装置、システム及び方法
WO2004061678A2 (en) * 2002-12-19 2004-07-22 Intel Corporation Forward state for use in cache coherency in a multiprocessor system
JP2006510119A (ja) * 2002-12-19 2006-03-23 インテル コーポレイション マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522402A (ja) * 2007-03-23 2010-07-01 クゥアルコム・インコーポレイテッド マルチプロセッサシステムのための命令通信技術
JP2013515997A (ja) * 2009-12-30 2013-05-09 エンパイア テクノロジー ディベロップメント エルエルシー マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス
JP2014149859A (ja) * 2009-12-30 2014-08-21 Emprie Technology Development LLC マルチコアプロセッサアーキテクチャにおけるデータ記憶およびアクセス
US9606917B2 (en) 2014-04-25 2017-03-28 Fujitsu Limited Arithmetic processing apparatus and method for controlling same

Also Published As

Publication number Publication date
TW200636466A (en) 2006-10-16
CN103324584B (zh) 2016-08-10
US20060143384A1 (en) 2006-06-29
CN101088075B (zh) 2011-06-22
CN101088075A (zh) 2007-12-12
JP5096926B2 (ja) 2012-12-12
CN103324584A (zh) 2013-09-25
WO2006072061A3 (en) 2007-01-18
TWI297832B (en) 2008-06-11
WO2006072061A2 (en) 2006-07-06

Similar Documents

Publication Publication Date Title
JP5096926B2 (ja) マルチコアプロセッサにおける不均等キャッシュのためのシステム及び方法
US11372777B2 (en) Memory interface between physical and virtual address spaces
CN108885583B (zh) 高速缓存存储器访问
JP3900481B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システムを操作する方法、メモリ制御装置、メモリ・システム、該メモリ・システムを含むノード及びnumaコンピュータ・システム
JP3924203B2 (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
US11734177B2 (en) Memory interface having multiple snoop processors
JP3900479B2 (ja) システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム
JP3900478B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム及び該コンピュータ・システムを操作する方法
JP3900480B2 (ja) 共用データのリモート割当て解除の通知を提供する不均等メモリ・アクセス(numa)データ処理システム
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
US6751720B2 (en) Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US7669009B2 (en) Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US6675265B2 (en) Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
JP3898984B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム
US11914514B2 (en) Data coherency manager with mapping between physical and virtual address spaces
US8285939B2 (en) Lateral castout target selection
EP0818733A2 (en) A multiprocessing system configured to perform software initiated prefetch operations
US20100262783A1 (en) Mode-Based Castout Destination Selection
US20040019751A1 (en) System and method for memory migration in distributed-memory multi-processor systems
CN1264873A (zh) 用于提供逐出协议的方法和系统
JP3924204B2 (ja) 分散グローバル・コヒーレンス管理を有する不均等メモリ・アクセス(numa)コンピュータ・システム
US7366844B2 (en) Data processing system and method for handling castout collisions
US20240220418A1 (en) Selective distribution of translation entry invalidation requests in a multithreaded data processing system
TWI824780B (zh) 微處理器及其處理零值資料的方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120131

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120229

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120307

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120402

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120419

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

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

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

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

LAPS Cancellation because of no payment of annual fees