JPH10214224A - コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択 - Google Patents

コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択

Info

Publication number
JPH10214224A
JPH10214224A JP9186076A JP18607697A JPH10214224A JP H10214224 A JPH10214224 A JP H10214224A JP 9186076 A JP9186076 A JP 9186076A JP 18607697 A JP18607697 A JP 18607697A JP H10214224 A JPH10214224 A JP H10214224A
Authority
JP
Japan
Prior art keywords
cache
data
memory
llc
level
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
JP9186076A
Other languages
English (en)
Other versions
JP4068185B2 (ja
Inventor
Erik E Hagersten
エリック・イー・ハガーステン
Mark D Hill
マーク・デイ・ヒル
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10214224A publication Critical patent/JPH10214224A/ja
Application granted granted Critical
Publication of JP4068185B2 publication Critical patent/JP4068185B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • 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/272Cache only memory architecture [COMA]

Landscapes

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

Abstract

(57)【要約】 【課題】 マルチレベルのキャッシュ・コンピュータ・
システム中で高レベルのキャッシュ・メモリ空間を割当
てるのを最適化し、キャッシュの用い方を最大にすると
共にデータへの全アクセス時間を最短にする。 【解決手段】 少なくとも低レベルのキャッシュ(LL
C)及び高レベルのキャッシュ(HLC)を有するコン
ピュータ・システムのマルチレベルのキャッシュ階層の
メモリ・ストレージ・モードを選択する方法であって、
LLC中のメモリ空間がキャッシュ・ライン・サイズ化
されたユニット中で割当てられるが、HLC中のメモリ
空間は2つ以上のキャッシュ・ラインを含む各ページの
サイズ化されたユニット中で割当てられる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、コンピュータ・
システムのメモリに関し、詳細にはコンピュータ・シス
テム中でメモリ・ストレージ・モードを効率良く選択す
ることに関するものである。
【0002】
【従来の技術】小さな第1レベルのキャッシュ及び大き
な第2レベルのキャッシュを有するマルチレベルのキャ
ッシュ・コンピュータ・システムの簡単なキャッシュ空
間割当て技術では、全てのデータ構造が両方のレベルの
キャッシュに自動的にキャッシュされる。もしデータ構
造のサイズがより小さい低レベルのキャッシュよりも大
きければ、即ちデータ構造が低レベルのキャッシュに合
わないなら、データ構造は低レベルのキャッシュから置
き換えられる。もしデータ構造がより大きい高レベルの
キャッシュよりも小さいならば、データ構造の内容の大
部分は高レベルのキャッシュに残る。
【0003】残念なことに、データ構造の幾らかの成分
ないし部分は頻繁にアクセスされるが、他は1回しかア
クセスされない。そして統計分析とデータ構造を所有す
るプログラムの知識との少なくとも一方がなければ特定
の部分への将来のアクセスを予測するのは容易でない。
例えば、コンピュータ・プログラムは、アレイの各エレ
メントをアクセスすることにより、大きいアレイを使用
するかもしれない。各エレメントは、一時変数を含むか
なり複雑な計算に使用される。この例では、大きなアレ
イの全エレメントをキャッシュ化することは計算速度を
実質的に速めない。対照的に、一時変数をキャッシュ化
するとプログラムの実行を速めることになる。
【0004】従って、上述した方法は簡単であるが、再
びアクセス中の特定の部分の可能性が親データ構造のサ
イズに必ずしも関連付けられないので、その方法は効率
が悪い。キャッシュ・メモリは無限に大きくないので、
キャッシュ・メモリ空間を効率良く使用しないと、他の
有用なデータ構造を早目に置き換える、即ち後続のアク
セス前にキャッシュから追い出すことになる。
【0005】
【発明が解決しようとする課題】従って、キャッシュの
用い方を最大にすると共にデータへの全アクセス時間を
最短にするために、マルチレベルのキャッシュ・コンピ
ュータ・システム中で高レベルのキャッシュ・メモリ空
間の割当を最適化し、キャッシュ化即ちキャッシュイン
グ用データ構造を選択するための効率の良い機構の必要
性がある。
【0006】
【課題を解決するための手段】本発明は、少なくとも低
レベルのキャッシュ(LLC)と高レベルのキャッシュ
(HLC)を有するコンピュータ・システムのマルチレ
ベルのキャッシュ階層のメモリ・ストレージ・モードを
選択するための効率の良い方法を提供する。
【0007】1つの実施態様では、低レベルのキャッシ
ュ(LLC)のメモリ空間はキャッシュ・ライン・サイ
ズのユニット中で割当てられるが、高レベルのキャッシ
ュ(HLC)のメモリ空間はページ・サイズ化されたユ
ニット中で割当てられ、各ページは2つ以上のキャッシ
ュ・ラインを含む。しかしながら、データの複数の部分
及びブロックをストアするのに用いられた例示的なメモ
リ・ユニットがそれぞれキャッシュ・ライン及びページ
であるが、この発明は他のメモリ・ユニットやサブユニ
ットにも適用できる。
【0008】従って、プログラムを実行中、データのペ
ージ・サイズのブロックのキャッシュ・ライン・サイズ
の部分は、複数のLLCのキャッシュ・ラインに増分的
にストアされる。その後、コンピュータ・システムは、
それがキャッシュ・リソースの割当て即ちLLCとHL
Cへの割当てを再検討するための機会であることを決定
する。リビュー(再検討)・トリガはプロセッサの各部
機器例えばプロセッサに周期的に割込むタイマで良い。
或は、このリビュー・トリガは、例えばLLCが一杯の
時又はHLCの使用がある百分率よりも低下する時に、
LLCから又はHLCからで良い。
【0009】割当ての再検討は、データのそれぞれのブ
ロックに関連した部分を識別して、ブロックで識別され
たキャッシュド(キャッシュされた)部分の数が閾値を
超えたかどうかを決定することを含む。もし閾値が特定
のブロックに関連したキャッシュド部分に対して超えた
ら、空間はブロックからの部分をストアするためにHL
C中で割当てられる。この方法は、HLCを最適に使用
してメモリのブロックにかなりの数の有用な部分をスト
アすることにより、将来のキャッシュのヒットの見込み
を好都合に増加させる。
【0010】COMA/NUMAコンピュータ・システ
ムで実施されたような一実施形態では、メモリ・ストレ
ージ・ロケーション即ちHLC対LLCを選択すること
は、COMA及びNUMAキャッシュイング・モードを
選択することに相当する。しかしながら、選択方法は、
COMAオンリ又はNUMAオンリ・キャッシュを含め
てこれだけに制限されない全てのレベルのキャッシュに
も、そして広範囲のキャッシュ及びシステム・アーキテ
クチャにも適用できる。
【0011】
【発明の実施の形態】この発明のコンピュータ・システ
ムの目的、特徴及び利点は、以下の説明から明らかにな
ろう。以下の説明中の符号は発明を完全に理解するため
に付けた。符号を付けたものの中には、コンピュータ・
システムのメモリ・リソース例えばキャッシュを割当て
る安価な方法の実施を支援する機能ブロック及び例示的
なキャッシュ・アーキテクチャがある。加えて、NUM
A/COMAマルチプロセッサ・コンピュータ・システ
ム用のモード選択を含む特定のキャッシュ割当て方法に
ついてこの発明を説明するが、広範囲のキャッシュ及び
システムのアーキテクチャにこの発明を適用できる。な
お、この発明を必要以上に不明瞭にしないために周知の
回路や構成は詳しく説明しない。
【0012】本願出願人の先行出願には、ネットワーク
化されたコンピュータ・システム用の共有主記憶アドレ
ス空間及びコヒーレントなキャッシュイング・システム
を有するハイブリッド・キャッシュオンリ・メモリ・ア
ーキテクチャ/非一様メモリ・アーキテクチャ(COM
A/NUMA)が開示されており、上述したネットワー
ク化されたコンピュータ・システムはこの発明を実施す
るための適当な例示的ハードウェア環境を提供する。
【0013】図1はそのようなハイブリッドCOMA/
NUMAコンピュータ・システム100を示すブロック
図である。このコンピュータ・システム100は、グロ
ーバル・インターコネクト190を介して互いに結合さ
れた複数のサブシステム(ノード)110,120,…
180を含む。各サブシステムには特有のネットワーク
・ノード・アドレスが割当てられる。各サブシステム
は、1個以上のプロセッサ、対応する数のメモリ管理ユ
ニット(MMU)及び第2レベルのハイブリッド・キャ
ッシュ(L2$)、COMAキャッシュ/メモリ、グロ
ーバル・インターフェイス、第3レベルのキャッシュ
(L3$)及びローカル・インターコネクトを含む。例
えば、サブシステム110はプロセッサ111a,11
1b,…111i,MMU112a,112b,…11
2i,L2$113a,113b,…113i,COM
Aキャッシュ/メモリ114、グローバル・インターフ
ェイス115,L3$118,及びローカル・インター
コネクト119を含む。この例では、各プロセッサ11
1a,111b,…111iがコンパクトで任意の第1
レベルのキャッシュ(L1$)(図1に示さない)を含
み得る。
【0014】ディレクトリに基づいたキャッシュ・コヒ
ーレンス方法を支持するために、サブシステム110,
120,…180は、グローバル・インターフェイス1
15,125,…185とそれぞれ結合されたディレク
トリ116,126,…186も含む。COMAキャッ
シュ/メモリ114,124,…184のどれかにある
“ホーム”ロケーションから発するデータは、コンピュ
ータ・システム100のアトラクション・メモリ(A
M)中で複製することができる。例えば、COMAモー
ドでは、サブシステムのキャッシュはCOMAキャッシ
ュ/メモリ114,124,…184並びにL2$11
3a…113i,123a…123i,及び183a…
183iを含み、そして“ホーム”ロケーションがサブ
システム110のCOMAキャッシュ/メモリ114に
あるデータは、COMAキャッシュ/メモリ124,…
184のうちの1個又は2個以上にて複製されてよく、
かつ又複数のL2$113a…113i,123a…1
23i,及び183a…183iのうちの1個又は2個
以上にて複製されても良い。逆に、NUMAモードで
は、サブシステムのキャッシュはL2$113a…11
3i,123a…123i,及び183a…183iを
含み、そして“ホーム”ロケーションがサブシステム1
10のCOMAキャッシュ/メモリ114中にあるデー
タは、複数のL2$113a…113i,123a…1
23i,及び183a…183iのうちの1個又は2個
以上にて、そしてL3$118,128,…188にて
複製されてもよい。
【0015】図1の例示的なハイブリッドCOMA/N
UMAコンピュータ・システム100で実施されたよう
なこの発明の一実施形態では、データの“ホーム”ロケ
ーションはサブシステム120のCOMAキャッシュ/
メモリ124中にある。即ちサブシステム120はデー
タのホーム及びオーナ・サブシステムである。COMA
キャッシュ・メモリ114と第2レベルのハイブリッド
・キャッシュ(L2$)113a,113b,…113
iとの少なくとも一方に空間を割当てることにより、1
つ又は2つ以上のリクエスト中のサブシステムのアトラ
クション・メモリ(AM)空間、例えばリクエスト中の
サブシステム110のAM空間にデータのコピーもスト
アできる。これに関連して、本願出願人の先行出願であ
る1995年12月22日付け出願の出願番号08/5
77,283(整理番号P1003)、発明者ハガース
タン(Hagersten)等、発明の名称「ハイブリ
ッドNUMAコマ・キャッシュイング・システム及び複
数のキャッシュイング・モードを選択する方法」を参照
されたい。又、1995年12月22日付け出願の出願
番号08/575,787(整理番号P1004)、発
明者ウッド(Wood)等、発明の名称「ハイブリッド
NUMAコマ・キャッシュイング・システム及び複数の
キャッシュイング・モードを選択する方法」も参照され
たい。これらの出願には、ハイブリッドCOMA/NU
MAアーキテクチャ及びハイブリッド・キャッシュ・ア
ーキテクチャを開発する方法が述べられている。
【0016】ホーム・ディレクトリ126は、コンピュ
ータ・システム100全体に亘るホーム・ページの現存
するコピーのマスター記録を維持することに対して責任
がある。その上、それぞれのAMディレクトリ例えばデ
ィレクトリ116及び186に関連した複数のメモリ・
タグ(MTAG)は、4つの例示的な状態のうちの1つ
を使用してリクエスト中の各サブシステム内のローカル
・コピーの状態を追跡する。無効(“I”)状態は、特
定のサブシステムが対象となるデータ・ラインの(キャ
ッシュされた)コピーを持たないことを示す。共有した
(“S”)状態は、そのサブシステム及び他の幾つかの
サブシステムが対象となるデータ・ラインの共有した
(キャッシュド)コピーを有することを示す。所有した
(オーナした)(“O”)状態は、そのサブシステム及
び可能性としては他の幾つかのサブシステムが対象とし
たデータ・ラインの(キャッシュされた)コピーを有す
ることを示す。Oコピーを持つサブシステムは、再置
(置き換え)時にライトバックすることを必要とされ
る。変更した(“M”)状態は、サブシステムが対象と
するデータ・ラインの(キャッシュされた)コピーだけ
を有する、即ちサブシステムがデータ・ラインの唯一の
オーナであり、他のサブシステムにSコピーが無いこと
を示す。
【0017】この実施の形態では、複数のL1$とL2
$の間に内包が維持されるが、L2$と第3レベルのキ
ャッシュの間に内包を維持する必要は無い。換言すれ
ば、L1$にあるデータはそれぞれのL2$にもある
が、L1$又はL2$にあるデータは必ずしもそれぞれ
のL3$にある必要は無い。従って、L2$中のデータ
のキャッシュ・ラインに空間が割当てられようとも、L
3$はデータのキャッシュ・ラインに割当てなくても良
い。
【0018】以下の説明において、この発明の選択方法
は、特定のデータ構造(低レベルのキャッシュ(LL
C)例えばL2$113a又はL3$118に現在スト
アされている)がハイブリッドCOMA/NUMA環境
内のリクエスト中のサブシステム110の高レベルのキ
ャッシュ(HLC)例えばCOMAキャッシュ/メモリ
114にストアされるべきか、ストアされるべきでない
かを決定する。従って、この選択方法は、NUMAモー
ドで現在ストアされているデータが何時COMAモード
でストアされるべきかを決定するのに使用されることが
できる。しかしながら、この選択方法は、全てのレベル
のキャッシュにも様々なキャッシュ及びシステム・アー
キテクチャにも適用できると理解される。
【0019】図3は、マルチプロセッサ・コンピュータ
・システム100に実施されたようなこの発明の一面を
示すフローチャート200である。
【0020】リクエスト中のサブシステム110のプロ
セッサ111aがデータをリクエストする時に、データ
のサーチはL2$113aで、次にL3$118で行わ
れる(ステップ210)。もしリクエスト中のサブシス
テム110内でデータが見い出されないなら、即ちキャ
ッシュ・ミスがサブシステム110で起こるなら、ホー
ム・サブシステム120にリクエストされてデータをフ
ェッチする(ステップ220)。本出願人による上述し
た出願番号08/577,283(整理番号P100
3)には、ホーム・サブシステムのディレクトリに最初
に割込むことによってオーナ・サブシステムからデータ
がどのようにしてフェッチされるかが開示されている。
【0021】リクエスト中のサブシステム110は、キ
ャッシュ・ミスが“避けられ得る”キャッシュ・ミスか
どうかを決定しようとする(ステップ230)。もしキ
ャッシュ・ミスが避けられ得たならデータがL3$11
8に残ったことにより、キャッシュ・ミスはさけられ得
る。避けられ得るキャッシュ・ミスの一例が“過剰な”
キャッシュ・ミスであって、これは容量ミス又はコンフ
リクト・ミスが先行したキャッシュ・ミスとして定義さ
れる。避けられ得るキャッシュ・ミスの他の原因も検討
される。これらキャッシュ・ミスは、古いデータを置き
換える代わりに、L3$118を再配置してL3$11
8に新しいキャッシュ空間を“フリーアップ(free
up)”することにより、例えばL3$をダイナミッ
クに再サイズ化する(L3$のサイズを大きくする)こ
とにより、避けられ得たキャッシュ・ミスを含む。
【0022】この実施形態では、ホーム・サブシステム
120のホーム・ディレクトリ126は、例えばアレイ
dir_share_bit〔ノード〕(ただしノード
=1…nであって、nはサブシステムの総数である。)
中の各キャッシュ・ラインにストアされたデータの共有
した(S)コピーを有するリクエスト中のサブシステム
のリストを維持する。その上、ホーム・ディレクトリ1
26は、各キャッシュ・ライン中のデータの現在のオー
ナの識別(owner_id)を含む。現在のオーナが
無い場合には、owner_idは最後のオーナを識別
する。ホームディレクトリ126は、最新のオーナがデ
ータをメモリにライトバックしたかどうか、或はそれが
未だオーナかどうかを示すライトバック・ビット(wb
_bit)も含む。データの最後のライタ(last_
write)は、ディレクトリ126中のそれぞれのo
wner_id及びwb_bitフィールドから決定で
きる。従って、過剰なキャッシュ・ミスはブール式で下
記のように表わされる。
【0023】(RTS & dir_share_bit〔ノード〕=1)O
R(RTO & last_write=ノード)
【0024】ただし、RTSはリード−ツ−シェア(re
ad-to-share )であり、そしてRTOはリード−ツ−オ
ーン(read-to-own)である。
【0025】過剰なキャッシュ・ミスを検出する例示的
な方法の詳しい説明は、上述した出願番号08/57
7,283(整理番号P1003)の先行出願を参照さ
れたい。この発明の一変形例では、ディレクトリ126
が最近にアクセスされたキャッシュ・ラインの状態情報
を保持するディレクトリ・キャッシュである。(同日出
願の「ディレクトリレス・プロトコル及び関連したディ
レクトリ・キャッシュP1531も参照されたい)。こ
の変形例では、このディレクトリ・キャッシュにそれぞ
れのエントリを有する避けられ得るミスだけがリクエス
ト中のサブシステム110をしてL3$118に空間を
割当てさせることができる。
【0026】もしリクエスト中のサブシステム110が
避けられ得るミスを検出するなら、データをストアする
ために適当なロケーションがL3$118中に割当てら
れる(ステップ250)。アイドル・ロケーション又は
無効データもしくはステール(stale)・データを
含むロケーションをまず探す(ステップ260)ことに
より、適当なロケーションを割当てることができる。も
しアイドル・ロケーションも無効ロケーションも見つか
らなければ、使用されたロケーションが割当てられてデ
ィスプレースされたデータ(displaced data)を置き換
える必要がある。1つの使用されたロケーションは幾つ
かの使用されたロケーションの中からアットランダムに
選べる。或は、最近に用いらた(LRU)又は最も頻繁
に(LFU)のような選択規準を使用して沢山の使用さ
れたロケーションの中から或るロケーションを選べる。
【0027】もし選択された使用済みロケーションから
ディスプレースされたデータを置き換える必要があれ
ば、リクエスト中のサブシステム110はディスプレー
スされたデータをそのオーナ・サブシステムにライトバ
ックする(ステップ265)。上述した出願番号08/
577,283(整理番号P1003)の先行出願は、
ディスプレースされたデータを置き換える一例を提供す
る。
【0028】逆に、もしキャッシュ・ミスが避けられ得
るキャッシュ・ミスではなくてキャッシュ118中にア
イドル・ロケーションがある(ステップ230及び24
0)ならば、キャッシュ118中のアイドル・ロケーシ
ョンが割当てられ且つデータが割当てられたロケーショ
ンにストアされる(ステップ255及び270)。もし
キャッシュ・ミスが避けられ得るキャッシュ・ミスでな
い上にキャッシュ118が一杯である(ステップ230
及び240)なら、データはキャッシュ118にキャッ
シュされない。
【0029】上述した場合の各々にて、データはリクエ
スト中のプロセッサ111aへ提供される(ステップ2
80)。データがオーナ・サブシステム120からフェ
ッチされた後はいつでもデータをリクエスト中のプロセ
ッサ111aに提供できる、即ち所要のキャッシュイン
グ・ステップの前後でデータを提供できることに注目さ
れたい。
【0030】図4は、ユニプロセッサ・コンピュータ・
システムにて実施されたこの発明の他の実施形態を示す
フローチャート300である。ユニプロセッサに関する
実施形態についての以下の説明はプロセッサ・キャッシ
ュ及び主メモリを有するコンピュータ・システムに基づ
くものであるが、選択方法は沢山のキャッシュとメモリ
の少なくとも一方を有するどんなユニプロセッサ・コン
ピュータ・システムにも適用できる。例えば、主メモリ
は高レベルのキャッシュで良い。
【0031】プロセッサがデータをリクエストする時
に、キャッシュ中でデータがサーチされる(ステップ3
10)。もしデータが見つからなければ、即ちキャッシ
ュ・ミスが検出されるなら、プロセッサは主メモリから
データをフェッチする(ステップ320)。
【0032】その後、プロセッサはキャッシュ・ミスが
“避けられ得る”キャッシュ・ミスであるかどうかを決
定しようとする(ステップ330)。ユニプロセッサ環
境中の避けられ得るキャッシュ・ミスの一例は、何時、
同一データがプロセッサによって以前にリクエストされ
て主メモリからキャッシュへフェッチされたかである。
【0033】もしプロセッサが避けられ得るミスを検出
したなら、適当なロケーションがデータをストアするた
めのキャッシュ中で割当てられる(ステップ350)。
アイドル・ロケーション又は無効データもしくはステー
ル・データを含むロケーションをまず探す(ステップ3
60)ことにより、適当なロケーションを割当てること
ができる。もしアイドル・ロケーションも無効ロケーシ
ョンも見つからなければ、使用されたロケーションが割
当てられてディスプレースされたデータを置き換える必
要がある。使用されたロケーションはアットランダムに
或はLRUもしくはLFUのようなアルゴリズムを使用
して選べる。
【0034】もし選択された使用済みロケーションから
ディスプレースされたデータを置き換える必要があれ
ば、プロセッサはデータを主メモリにライトバックする
(ステップ365)。キャッシュの強制的な“ライトス
ルー”がしいられるユニプロセッサ及びマルチプロセッ
サ・システムの両方において、キャッシュ及びメモリの
内容が常にコヒーレントであるので、ディスプレースさ
れたデータは簡単に捨てられ得る。“コピーバック”キ
ャッシュも、もしディスプレースされたデータが変更さ
れなかったならば、このディスプレースされたデータを
簡単に捨てられる。
【0035】逆に、もしキャッシュ・ミスが避けられ得
るキャッシュ・ミスではなく且つキャッシュが一杯でも
ない(ステップ330及び340)ならば、プロセッサ
はキャッシュ中でアイドル・ロケーションを割当て且つ
データは割当てられたロケーションにストアされる(ス
テップ355及び370)。もしキャッシュ・ミスが避
けられ得るキャッシュ・ミスでなく且つキャッシュが一
杯である(ステップ330及び340)なら、データは
キャッシュされない。
【0036】上述した場合の各々にて、データはリクエ
スト中のプロセッサへ提供される(ステップ380)。
どのキャッシュイング・ステップ370の前後でもデー
タをリクエスト中のプロセッサへ提供できることに注目
されたい。
【0037】上述したように、この発明によれば、図5
〜図8に示したように、低レベルのキャッシュ(LL
C)内のキャッシュ・ライン・サイズのサブユニット例
えばL2$113aとL3$118の少なくとも一方に
て割当てられる代わりに、高レベルのキャッシュ(HL
C)内のページ・サイズ化されたユニット例えばCOM
Aキャッシュ114にてもし空間が割当てられるなら
ば、データがもっと効率良くストアされ得るかどうかに
ついての決定がされる。換言すれば、選択方法は、デー
タのどのページがNUMAモードではなくてCOMAモ
ードでのアクセスから利益を得ることを決定する。
【0038】この実施の形態では、COMAキャッシュ
114のサイズは、プログラムの実行中絶えず変化でき
且つ最大ではノードのローカル・メモリ空間に等しい。
COMAキャッシュのサイズが容易に増加され得るので
且つCOMAキャッシュ114でのデータのアクセスを
サポートするためのハードウェア・オーバヘッドがL3
$118でのデータのアクセスをサポートするためのハ
ードウェア・オーバヘッドよりもはるかに低くされ得る
ので、NUMAモードからCOMAモードへページを変
換することは、L3$118でのデータ・アクセス・デ
マンドを下げ得る。
【0039】図5を参照すれば、データのブロックの諸
部分例えばデータのページからのキャッシュ・ライン
は、連続してストアされ且つ低レベルのキャッシュ中で
変動するキャッシュド部分の数と置き換えられる(ステ
ップ410)。この実施の形態では、LLC中の個々の
キャッシュ・ラインをキャッシュするかどうかの決定
は、上述して図3及び図4に示した例示的な態様で行わ
れる。しかしながら、キャッシュ・ラインは、他の規準
に基づいてLLC中でキャッシュされても良いし、或は
それぞれのキャッシュ・ラインがサブシステムによって
リクエストされる毎に簡単にキャッシュされても良い。
【0040】最終的に、サブシステム110は、LLC
中での空間の割当てを再検討するためのトリガを検出す
る(ステップ420)。LLC空間の割当てを再検討す
ることは多数のやり方でトリガされることに注目された
い。例えば、高レベルのキャッシュ(HLC)であるC
OMAキャッシュ114の利用が閾値よりも下がる時、
LLCがあまりにも多くのデータ置き換えで沢山のプレ
ッシャを受ける時、又はコンピュータ・システム100
のタイマがタイムアウトする時にはいつでも、割当ての
再検討はトリガされ得る。
【0041】メモリ再検討のトリガを検出する時には、
サブシステム110がLLCの内容を再検討して(ステ
ップ430)LLC中にある相当な数のキャッシュ・ラ
インを有するデータのページを識別する(ステップ44
0)。もしデータの新しいブロックが再検討規準を満た
すなら、例えばもしページのキャッシュ・ラインの数が
閾値を超えるなら、空間(ページ)のブロックはデータ
の新しいブロックに対してHLC中で割当てられる(ス
テップ450)。この閾値はソフトウェアにより予め決
定ないし選択できる。
【0042】HLCが一杯なら、データの古いブロック
が置き換えのために選択される(ステップ460)。ブ
ロック選択方法のいくつかの変形例が可能である。例え
ば、データの選択された古いブロックはデータのLRU
ブロックで良い。他の周知のメモリ置換規準はLFUを
含む。
【0043】置き換えのためにデータの古いブロックを
選択したので、HLC中で実施された置き換えプロトコ
ルに依存してデータの古いブロックのライトバック動作
が必要とされ得る。この例では、HLC例えばCOMA
キャッシュ114がコピーバック・キャッシュであるの
で、データの置き換えられたブロックがそれぞれのホー
ム・ロケーションにライトバックされる(ステップ47
0)。逆に、もしHLCがライトスルー・キャッシュな
ら、データの置き換えられたブロックは単に捨てられ得
る。どちらの場合も、データの新しいブロックの諸部分
はHLC中の空間の新しく割当てられたブロックにキャ
ッシュされ得る(ステップ480)。コピーバック・キ
ャッシュからのデータのブロック(ページ)をフラッシ
ュするための例示的な方法は、本願と同日付で出願され
たハガースタン(Hagersten)等の出願「コン
ピュータ・システム中でのキャッシュ・メモリのフラッ
シュイング」(整理番号P1416)に述べられてい
る。
【0044】図6に示されたようなこの発明の他の実施
形態を示すフローチャート500では、データのブロッ
クからの部分に関連したキャッシュ・ミスがあった後
に、メモリ割当ての再検討がトリガされ得る。従って、
キャッシュ・ミスが有る時、即ちデータのブロックに関
連した部分がLLCでもHLCでも見い出されない(ス
テップ510)時に、その部分はホーム・ロケーション
からフェッチされる(ステップ520)。データの同一
ブロックと関連した他の部分がHLCに現在ストアされ
ているなら、即ちデータの関連したブロックのための空
間がHLC中で既に割当てられていたなら、その部分は
HLC中の空間の割当てられた同一ブロック内にストア
される(ステップ570)。
【0045】逆に、もし関連したブロックのための空間
がHLC中でまだ割当てられておらず(ステップ53
0)且つサブシステム110によりHLCとLLCの間
でのキャッシュ割当ての再検討が時機を得たものである
と決定される(ステップ540)と、サブシステム11
0はLLC中でキャッシュされた関連部分の総数が閾値
を超えるかどうかを決定する(ステップ550)。この
閾値は所定値又は絶えず選択できる値とすることができ
る。閾値を超えると、関連ブロックのための空間はHL
C中で割当てられる(ステップ560)。
【0046】図7は図6のHLC割当てステップ560
をもっと詳しく示す。HLCがコピーバック・キャッシ
ュかライトスルー・キャッシュかに依存して、もしHL
Cが一杯である(ステップ561)なら、ディスプレー
スされたデータのホーム・ロケーションへのライトバッ
クが必要かもしれない。この例では、HLC即ちCOM
Aキャッシュ114がコピーバック・キャッシュなの
で、HLC中の空間のフリードアップ(freed−u
p)・ブロックが書き込まれる前に置き換えられたブロ
ックのライトバックが開始される(ステップ562及び
563)。逆に、HLC中にアイドル空間があれば、ア
イドル空間のブロックはデータの新しいブロックに対し
て割当てられる(ステップ561及び564)。
【0047】図6へ戻れば、データの新しいブロックに
対してHLC中に空間を割当てたので、新しいブロック
に関連した部分がHLCにストアされ得る(ステップ5
70)。この実施形態では、その部分はLLCに任意に
ストアされる(ステップ580)。
【0048】図8を参照すれば、この発明は、本願と同
日付で出願されたハガースタン等の出願「コンピュータ
・システム中のキャッシュ・メモリ空間の有効な割当て
方法」(整理番号P1576)の選択的キャッシュイン
グ方法で実施され得る。従って、全てのキャッシュ・ミ
スが生じる毎にLLC中で簡単なキャッシュイングをす
る代わりに、“避けられる”ミスがある場合だけ部分が
キャッシュされる(ステップ581)。避けられ得るミ
スの一例は容量ミス又はコンフリクト・ミスのような
“過剰な”ミスである。
【0049】もしキャッシュ・ミスが避けられ得るミス
なら、空間はその部分のためにLLC中で割当てられる
(ステップ583)。LLCがコピーバック・キャッシ
ュかライトスルー・キャッシュかにより、置き換えられ
た部分の、そのホーム・ロケーションへのライトバック
が必要かもしれない。この例では、LLC例えばL2$
113aがコピーバック・キャッシュであるので、新し
い部分がLLCにストアされ得る前に置き換えられた部
分のライトバックが開始される(ステップ584,58
6及び587)。逆に、LLC中にアイドル空間が在れ
ば、空間は割当てられて新しい部分はLLCにストアさ
れる(ステップ582,585及び587)。
【0050】図6に戻れば、上述した場合の各々にて、
データの部分はリクエスト中のプロセッサに提供される
(ステップ590)。その部分がホーム・ロケーション
からフェッチされた後ではいつでも、即ちその部分がH
LCとLLCの少なくとも一方にてキャッシュされる前
又は後で、データをリクエスト中のプロセッサへ提供で
きることに注目されたい。
【0051】上述したメモリ選択機構を最大限に種々活
用することが可能である。例えば、低レベルのキャッシ
ュ中でキャッシュされた関連部分の数が閾値を超える時
にはいつでも高レベルのキャッシュ中のデータの新しい
ブロックと関連付けられた諸部分を自動的にキャッシュ
する代わりに、LLC中のキャッシュされた部分の数が
HLC中の現在キャッシュされた古いブロックと関連付
けられたキャッシュ・ヒットの数を超え且つこれが置き
換えのために選択された時だけ新しいブロックはHLC
にキャッシュされる。この発明の精神から逸脱しない限
り他の変形例等も可能であるので、この発明の範囲は特
許請求の範囲で決定されるべきである。
【図面の簡単な説明】
【図1】 この発明を実施するための適当なハードウェ
ア環境を提供するハイブリッド・キャッシュ・オンリメ
モリ・アーキテクチャ/非一様メモリ・アーキテクチャ
(COMA/NUMA)を有するネットワーク化された
コンピュータ・システムを示すブロック図である。
【図2】 図1のネットワーク化されたコンピュータ・
システムのための例示的なメモリ・マップである。
【図3】 マルチプロセッサ・コンピュータ・システム
中でキャッシュ空間を割当てるためのこの発明の一実施
形態の一部を示すフローチャートである。
【図4】 ユニプロセッサ・コンピュータ・システム中
でキャッシュ空間を割当てるためのこの発明の他の実施
形態の一部を示すフローチャートである。
【図5】 図3の割当て方法の実施形態を示すフローチ
ャートである。
【図6】 この発明に係る他の実施形態を示すフローチ
ャートである。
【図7】 図6の一部を示すフローチャートである。
【図8】 図6の他の一部を示すフローチャートであ
る。
【符号の説明】
100…コンピュータ・システム、110,120,1
80…サブシステム、111a〜181i…プロセッ
サ、113a〜183i…第2レベルのハイブリッド・
キャッシュ、114,124,184…COMAキャッ
シュ/メモリ、118,128,188…L3$。
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年10月21日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図2】
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 マーク・デイ・ヒル アメリカ合衆国・94024・カリフォルニア 州・ロス アルトス・コヴィントン ロー ド・272

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 低レベルのキャッシュ及び高レベルのキ
    ャッシュを有し、前記低レベルのキャッシュが複数のキ
    ャッシュ・ラインを含み、かつ前記高レベルのキャッシ
    ュが複数のページを含み、その各々のページが複数のキ
    ャッシュ・ラインを含むコンピュータ・システム中のキ
    ャッシュ化モードを選択する方法であって、 前記低レベルのキャッシュのキャッシュ・ラインのうち
    の少なくとも2つのラインのデータのページ・サイズ化
    されたブロックの複数のキャッシュ・ライン・サイズ化
    部分を増分的にストアするステップと、 キャッシュ空間の割当てを再検討するためのトリガを検
    出するステップと、 前記データの前記部分をストアするような前記低レベル
    のキャッシュの前記複数のキャッシュ・ラインのなかか
    ら前記少なくとも2つのキャッシュ・ラインを識別する
    ステップと、 もし前記識別された少なくとも2つのキャッシュ・ライ
    ンの数が閾値を超えるなら、前記高レベルのキャッシュ
    の前記複数のページのうちの1つのページを割当てるス
    テップと、 前記高レベルのキャッシュの前記割当てられたページの
    少なくとも2つの対応するキャッシュ・ラインに前記部
    分をストアするステップと、 を含むコンピュータ・システム中のキャッシュ化モード
    を選択する方法。
  2. 【請求項2】 低レベルのメモリ(LLC)及び高レベ
    ルのメモリ(HLC)を有するコンピュータ・システム
    中のメモリ空間を使用する方法であって、 前記低レベルのメモリ中のデータのブロックの複数の部
    分を増分的にストアするステップと、 前記低レベルのメモリにストアされた前記部分の数が何
    時閾値を超えるかを検出するステップと、 前記検出時に、前記データのブロックの前記部分を前記
    高レベルのメモリにストアするステップと、 を含むコンピュータ・システム中のメモリ空間を使用す
    る方法。
  3. 【請求項3】 プロセッサと、 このプロセッサに結合され且つデータの複数のブロック
    をストアするように配置され、その各々のブロックが複
    数のデータ部分を含む主メモリと、 前記プロセッサに結合され且つ前記データ部分のコピー
    をキャッシュするように配置された低レベルのキャッシ
    ュ(LLC)と、 このLLCに結合され且つ前記データのブロックのコピ
    ーをキャッシュするように配置された高レベルのキャッ
    シュ(HLC)と、 前記LLCに結合され且つ前記LLC中でキャッシュさ
    れた前記ブロックの1つと関連付けられたデータ部分の
    数が何時閾値を超えるかを決定するように配置され、デ
    ータの前記ブロックの1つの前記キャッシュされたデー
    タ部分を前記HLCにキャッシュさせるカウンタと、 を備えたコンピュータ・システム。
  4. 【請求項4】 プロセッサと、データの複数のブロック
    であって、その各々のブロックが複数のデータ部分を含
    むものをストアする主メモリと、前記データ部分のコピ
    ーをキャッシュする低レベルのキャッシュ(LLC)
    と、データの前記ブロックのコピーをキャッシュする高
    レベルのキャッシュ(HLC)とを備えたコンピュータ
    ・システム用キャッシュ・リソース・アロケータであっ
    て、 前記LLCに結合され且つ前記LLC中でキャッシュさ
    れた前記ブロックの1つと関連付けられたデータ部分の
    数が何時閾値を超えるかを決定するように配置され、デ
    ータの前記ブロックの1つの前記キャッシュされたデー
    タ部分を前記HLCにキャッシュさせるカウンタ、 を更に備えたコンピュータ・システム用キャッシュ・リ
    ソース・アロケータ。
  5. 【請求項5】 プロセッサと、データの複数のブロック
    であって、その各々のブロックが複数のデータ部分を含
    むものをストアするための主メモリと、前記データ部分
    のコピーをキャッシュする低レベルのキャッシュ(LL
    C)と、データの前記ブロックのコピーをキャッシュす
    る高レベルのキャッシュとを備えたコンピュータ・シス
    テム中のキャッシュ・リソースを割当てるコード・モジ
    ュールを有するコンピュータで読取り可能な記録媒体で
    あって、 前記LLC中でキャッシュされた前記ブロックの1つと
    関連付けられたデータ部分の数が何時閾値を超えるかを
    決定するように配置されたカウンタ・コード・モジュー
    ルと、 前記HLC中のデータの前記1つのブロックの前記デー
    タ部分をキャッシュするように配置されたキャッシュ・
    リソース・アロケータと、 を備えたコンピュータで読取り可能な記録媒体。
JP18607697A 1996-07-01 1997-06-27 コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択 Expired - Lifetime JP4068185B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/674,029 US5802563A (en) 1996-07-01 1996-07-01 Efficient storage of data in computer system with multiple cache levels
US08/674029 1996-07-01

Publications (2)

Publication Number Publication Date
JPH10214224A true JPH10214224A (ja) 1998-08-11
JP4068185B2 JP4068185B2 (ja) 2008-03-26

Family

ID=24705041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18607697A Expired - Lifetime JP4068185B2 (ja) 1996-07-01 1997-06-27 コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択

Country Status (4)

Country Link
US (1) US5802563A (ja)
EP (1) EP0817080B1 (ja)
JP (1) JP4068185B2 (ja)
DE (1) DE69737116T2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958068A (en) * 1997-04-14 1999-09-28 International Business Machines Corporation Cache array defect functional bypassing using repair mask
US5996049A (en) * 1997-04-14 1999-11-30 International Business Machines Corporation Cache-coherency protocol with recently read state for data and instructions
US6148375A (en) * 1998-02-13 2000-11-14 International Business Machines Corporation Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes
US6205537B1 (en) * 1998-07-16 2001-03-20 University Of Rochester Mechanism for dynamically adapting the complexity of a microprocessor
US6338117B1 (en) * 1998-08-28 2002-01-08 International Business Machines Corporation System and method for coordinated hierarchical caching and cache replacement
US6314500B1 (en) * 1999-01-11 2001-11-06 International Business Machines Corporation Selective routing of data in a multi-level memory architecture based on source identification information
US6775745B1 (en) * 2001-09-07 2004-08-10 Roxio, Inc. Method and apparatus for hybrid data caching mechanism
US6721852B2 (en) * 2001-10-17 2004-04-13 Sun Microsystems, Inc. Computer system employing multiple board sets and coherence schemes
US7302455B1 (en) * 2002-02-26 2007-11-27 At&T Bls Intellectual Property, Inc. System and method for reliably purging statistical records
US7024519B2 (en) * 2002-05-06 2006-04-04 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7089356B1 (en) * 2002-11-21 2006-08-08 Oracle International Corporation Dynamic and scalable parallel processing of sequence operations
US7058773B1 (en) 2003-01-16 2006-06-06 Cisco Technology, Inc. System and method for managing data in a distributed system
US7457922B2 (en) * 2004-11-20 2008-11-25 International Business Machines Corporation Cache line placement prediction for multiprocessor non-uniform cache architecture systems
US9600417B2 (en) * 2015-04-29 2017-03-21 Google Inc. Data caching
CN111158578B (zh) * 2018-11-08 2022-09-06 浙江宇视科技有限公司 存储空间管理方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4181937A (en) * 1976-11-10 1980-01-01 Fujitsu Limited Data processing system having an intermediate buffer memory
US4774654A (en) * 1984-12-24 1988-09-27 International Business Machines Corporation Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems
US5450563A (en) * 1992-10-30 1995-09-12 International Business Machines Corporation Storage protection keys in two level cache system
JP2809962B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 資源管理方式
US5535116A (en) * 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
US5537573A (en) * 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
WO1995012165A1 (en) * 1993-10-22 1995-05-04 Gestalt Technologies, Incorporated Distributed management in a partitioned memory system
US5577227A (en) * 1994-08-04 1996-11-19 Finnell; James S. Method for decreasing penalty resulting from a cache miss in multi-level cache system
US5640520A (en) * 1995-05-01 1997-06-17 Intel Corporation Mechanism for supporting out-of-order service of bus requests with in-order only requesters devices
US5634110A (en) * 1995-05-05 1997-05-27 Silicon Graphics, Inc. Cache coherency using flexible directory bit vectors

Also Published As

Publication number Publication date
EP0817080A2 (en) 1998-01-07
DE69737116T2 (de) 2007-07-19
EP0817080B1 (en) 2006-12-20
EP0817080A3 (en) 1998-01-21
US5802563A (en) 1998-09-01
DE69737116D1 (de) 2007-02-01
JP4068185B2 (ja) 2008-03-26

Similar Documents

Publication Publication Date Title
JP4101907B2 (ja) コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
US6826651B2 (en) State-based allocation and replacement for improved hit ratio in directory caches
US8131938B2 (en) Adaptive mechanisms and methods for supplying volatile data copies in multiprocessor systems
US5893144A (en) Hybrid NUMA COMA caching system and methods for selecting between the caching modes
CN100476760C (zh) 用于分级高速缓存行替换的方法、系统及装置
US7711902B2 (en) Area effective cache with pseudo associative memory
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JP4068185B2 (ja) コンピュータ・システムでのメモリ・ストレージ・モードの効果的な選択
US6625694B2 (en) System and method for allocating a directory entry for use in multiprocessor-node data processing systems
KR100243319B1 (ko) 비포함적 메모리 억세스 메커니즘
EP0817079B1 (en) Skip-level write-through in a multi-level memory of a computer system
US8078818B2 (en) Method and system for migrating memory segments
US8176254B2 (en) Specifying an access hint for prefetching limited use data in a cache hierarchy
US7143239B2 (en) Cache structure and methodology

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080110

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

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120118

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130118

Year of fee payment: 5

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

EXPY Cancellation because of completion of term