JP2009059077A - キャッシュシステム - Google Patents

キャッシュシステム Download PDF

Info

Publication number
JP2009059077A
JP2009059077A JP2007224416A JP2007224416A JP2009059077A JP 2009059077 A JP2009059077 A JP 2009059077A JP 2007224416 A JP2007224416 A JP 2007224416A JP 2007224416 A JP2007224416 A JP 2007224416A JP 2009059077 A JP2009059077 A JP 2009059077A
Authority
JP
Japan
Prior art keywords
prefetch
cache
access
reliability
tag
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
JP2007224416A
Other languages
English (en)
Other versions
JP4829191B2 (ja
Inventor
Hiroyuki Usui
弘之 薄井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007224416A priority Critical patent/JP4829191B2/ja
Priority to US12/193,882 priority patent/US20090063777A1/en
Publication of JP2009059077A publication Critical patent/JP2009059077A/ja
Application granted granted Critical
Publication of JP4829191B2 publication Critical patent/JP4829191B2/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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

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

【課題】無駄なプリフェッチによる悪影響を抑制する。
【解決手段】キャッシュシステムは、プリフェッチアクセスであるか否かが示されたタグを有するタグメモリ21と、プロセッサ毎のプリフェッチの信頼度を有するプリフェッチ信頼度格納部23と、タグとアクセスアドレスとを比較し、プリフェッチアクセスであることが示されたタグに対してキャッシュミスした場合は、プリフェッチ信頼度格納部に対してプリフェッチの信頼度を下げる指示を出し、プリフェッチアクセスであることが示されたタグに対してキャッシュヒットした場合は、プリフェッチアクセスであることを消し、プリフェッチ信頼度格納部に対してプリフェッチの信頼度を上げる指示を出すタグ比較部22とを具備する。
【選択図】図1

Description

本発明は、プリフェッチアクセスを行うキャッシュシステムに関する。
動画像処理等でよく行われる処理として、配列のような規則的な構造をロードして演算を繰り返す処理がある。このような処理を高速に行う方法として、プリフェッチがある。例えば特許文献1等に開示されるプロセッサにおけるデータプリフェッチアクセスとは、次のようなアクセスである。配列のように決まった間隔でアクセスされるデータ構造にアクセスする際に、未来に使うと思われるデータをその間隔から予測する。そして、キャッシュに対しキャッシュに予測したデータがなければ予め格納するよう要求しておき、実際にそのデータを使う時にそのデータがキャッシュに入っているようにする。
また、命令についてもプリフェッチは使用される。命令は連続して実行されることが多いため、連続する命令を予めキャッシュに格納するよう要求する方法や、非連続な命令列についても今までの実行パターンから予測してプリフェッチを行う方法がある。
しかしながら、このようなプリフェッチは、アドレスを予測してデータをリードするので、予測が外れた場合は無駄にメモリアクセス数を増やしてしまう結果となる。さらに、その無駄なプリフェッチが有効な他のデータを追い出してしまうので、その追い出したデータに後にアクセスする際、さらにメモリアクセスが必要になってしまう。この現象は、命令とデータを共に扱うことが多い下位のL2、L3キャッシュについては、命令プリフェッチがデータを、データプリフェッチが命令を追い出すことが発生するため、性能への悪影響が大きくなる。
上述するような無駄なプリフェッチを防ぐためには、ソフトウェアから明示的にアドレスを指定してプリフェッチを行うという手法がある。しかし、この場合、キャッシュの構成を意識してプログラミングを行うことをソフトウェア開発者に要求することになり、ソフトウェア開発者の負担が大きくなってしまう。
特開2005−242527号公報
本発明は、無駄なプリフェッチによる悪影響を抑制することが可能なキャッシュシステムを提供する。
本発明の一態様によるキャッシュシステムは、プリフェッチアクセスであるか否かが示されたタグを有するタグメモリと、プロセッサ毎のプリフェッチの信頼度を有するプリフェッチ信頼度格納部と、前記タグとアクセスアドレスとを比較し、前記プリフェッチアクセスであることが示された前記タグに対してキャッシュミスした場合は、前記プリフェッチ信頼度格納部に対して前記プリフェッチの信頼度を下げる指示を出し、前記プリフェッチアクセスであることが示された前記タグに対してキャッシュヒットした場合は、前記プリフェッチアクセスであることを消し、前記プリフェッチ信頼度格納部に対して前記プリフェッチの信頼度を上げる指示を出すタグ比較部とを具備する。
本発明によれば、無駄なプリフェッチによる悪影響を抑制することが可能なキャッシュシステムを提供できる。
本発明の実施の形態を以下に図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[1]第1の実施形態
第1の実施形態は、プリフェッチで格納したキャッシュラインを実際に使用したか否かによってプリフェッチの信頼度を定義し、信頼度の低いプリフェッチについてはキャッシュの置き換え優先度を上げ、無駄なプリフェッチがキャッシュ内に長く溜まることを抑制する。
[1−1]キャッシュシステムの構成
図1は、本発明の第1の実施形態に係るキャッシュシステムの概略的な構成図を示す。以下に、本実施形態に係るキャッシュシステムの概略的な構成について説明する。
図1に示すように、キャッシュシステム1は、プロセッサ10−1、10−2、キャッシュ20を備えている。キャッシュ20は、タグメモリ21、タグ比較部22、プリフェッチ信頼度格納部23、データメモリ24で構成される。
プロセッサ10−1、10−2は、メモリアクセスの際にキャッシュ20へアクセスする。本実施形態では、2つのプロセッサ10−1、10−2で1つのキャッシュ20を共有している。但し、プロセッサの数は1以上であればよく、1つのプロセッサのみがキャッシュ20にアクセスしてもよい。
キャッシュ20は、L1、L2、L3等の様々な階層に置かれるが、本実施形態では、階層を特定しない。また、キャッシュ20は、連想度(associative)によって、direct cache、set-associative cache、full-associative cacheと複数の種類があるが、本実施形態では、set-associative若しくはfull-associative cacheを対象とする。
タグメモリ21は、タグ情報が格納されている。タグ比較部22は、タグメモリ21から該当するインデックスのタグ情報を読み出し、このタグ情報とプロセッサ10−1、10−2からのアクセスアドレスとを比較する。プリフェッチ信頼度格納部23は、プロセッサ10−1、10−2毎のプリフェッチの信頼度を格納し、タグ比較部22の比較結果に応じてこの信頼度の増減が行われる。データメモリ24は、データが一時的に格納されている。
[1−2]キャッシュへのアクセスの概要
プロセッサ10−1、10−2からキャッシュ20へのアクセスは、通常のキャッシュアクセスとプリフェッチアクセスとの2通りがある。プリフェッチアクセスの場合、キャッシュ20に必要なデータが使用時に入っているように、予測したデータを予め格納する。この際、対象のデータがキャッシュ20内に存在する場合はそこで終了し、存在しない場合はキャッシュ20に対象のデータを格納して終了する。いずれのときも、プリフェッチアクセスの場合、プロセッサ10−1、10−2に対して要求されたデータは返さない。
図1を用いて、本実施形態におけるキャッシュ20へのアクセスについて、以下に説明する。
まず、タグメモリ21から複数のタグのタグ情報を読み出す。そして、タグ比較部22で、タグ情報のタグアドレスとアクセスアドレスとの比較を行う。その結果、両者が一致する場合(キャッシュヒット)は、その一致するタグを選択する。一方、両者が一致しない場合(キャッシュミス)は、置き換えの優先度に従って、入れ替えるタグを選択する。
このような比較の結果に応じて、タグ比較部22は、プリフェッチ信頼度格納部23に対し、プロセッサ毎の信頼度を示すカウンタの増減の指示を出す。具体的には、キャッシュヒット時で、かつ、アクセスアドレスと一致するタグがプリフェッチにより格納されたものである場合は、プリフェッチ信頼度格納部23に対して、このプリフェッチを行ったプロセッサ10−1の信頼度を上げる指示を出す。一方、キャッシュミス時で、かつ、入れ替えるタグがプリフェッチにより格納されたものである場合は、プリフェッチ信頼度格納部23に対して、このプリフェッチを行ったプロセッサ10−1の信頼度を下げる指示を出す。
そして、キャッシュミスの結果、プリフェッチアクセスによりデータを下位のメモリからキャッシュ20に読み込む場合、プリフェッチ信頼度格納部23の信頼度を参照し、データの置き換え優先度を考慮する。つまり、信頼度の低いプロセッサによるプリフェッチの場合、プリフェッチで格納されるデータがキャッシュ20内に溜まる時間を短くするために、そのデータの置き換えの優先度を高く設定する。
以上のように、本実施形態では、プリフェッチで格納したキャッシュラインを実際に使用したか否かによってプリフェッチの信頼度を定義し、信頼度の低いプリフェッチについてはキャッシュの置き換え優先度を上げ、無駄なプリフェッチがキャッシュ20内に長く溜まることを抑制する。
[1−3]タグ情報
図2は、本発明の第1の実施形態に係るタグメモリのタグ情報を示す。以下に、本実施形態のタグメモリのタグ情報について説明する。
図2に示すように、本実施形態のタグ情報30は、通常のタグ情報にプリフェッチフラグとプロセッサのIDが追加される。つまり、本実施形態のタグ情報30は、タグアドレス(Tag)、バリッド(Valid)、ダーティ(Dirty)、プリフェッチフラグ(Prefetch)、プロセッサのID(ID)が規定されている。但し、プロセッサの数が1つの場合、プロセッサのIDは省略可能である。
タグアドレス(Tag)は、データアドレスを示す。バリッド(Valid)は、キャッシュされたデータがまだ有効であるか否かを示す。ダーティ(Dirty)は、該当のデータが下位階層のメモリの値から変更されているか否かを示す。なお、ダーティはWrite Throughキャッシュには存在しない。プリフェッチフラグ(Prefetch)は、プリフェッチアクセスによるデータであるか否かを示す。プロセッサのID(ID)は、該当するプロセッサ10−1、10−2のIDを示す。
[1−4]プリフェッチアクセスにおけるタグ情報の変化
図3は、本発明の第1の実施形態に係るプリフェッチアクセスにおけるタグ情報の変化を示す。以下に、本実施形態に係るプリフェッチアクセスにおけるタグ情報の変化について説明する。
まず、タグ情報30の初期状態は、図3の状態Aであったとする。このような状態Aに対して、プロセッサ10−1(ID=1)がデータ0x40のプリフェッチアクセスを行ったとする。
このプリフェッチアクセスがキャッシュミスとなった場合、キャッシュ20にデータ0x40が格納される。この際、データ0x40についてのタグ情報30のプリフェッチフラグ(Prefetch)はONとし、プリフェッチを行ったプロセッサ10−1のIDを格納する。ここで、ON=1、OFF=0とする。このため、図3の状態Bに示すように、プリフェッチフラグ(Prefetch)は1、プロセッサ10−1のID(ID)は1となる。従って、プリフェッチアクセスによりキャッシュ20に格納されたデータのタグ情報30は、プリフェッチアクセスを行ったプロセッサIDとプリフェッチアクセスであることが示される。
一方、通常のキャッシュアクセスがキャッシュヒットした場合は、該当のタグ情報30のプリフェッチフラグ(Prefetch)をOFFとする。つまり、図3の状態Cに示すように、プリフェッチフラグ(Prefetch)は0となる。従って、プリフェッチアクセスであることを示すタグ情報30を持つタグにキャッシュアクセスした場合には、プリフェッチアクセスである情報を消すことになる。
[1−5]プリフェッチ信頼度格納部
図4は、本発明の第1の実施形態に係るプリフェッチ信頼度格納部の内部構成の概略図を示す。以下に、本実施形態に係るプリフェッチ信頼度格納部の概略的な内部構成について説明する。
図4に示すように、プリフェッチ信頼度格納部23は、カウンタ40−1、40−2を備えている。このカウンタ40−1、40−2の数はプロセッサ10−1、10−2の数に対応している。このため、本実施形態では、プロセッサ10−1、10−2を2つ設けているため、カウンタ40−1、40−2も2つ設けている。
プリフェッチ信頼度格納部23は、プロセッサ10−1、10−2からのプリフェッチアクセスのアドレス予測の信頼度を格納している。この信頼度は、プロセッサ10−1、10−2毎にカウンタ40−1、40−2で管理される。
このようなプリフェッチ信頼度格納部23は、次のように動作する。まず、カウンタ40−1、40−2に対して、タグ比較結果に基づく加減算指示Xが入力される。この加減算指示Xに応じて、カウンタ40−1、40−2の値を増減する。カウンタ40−1、40−2の現在の値は、そのまま出力される。
ここでは、例えば、プリフェッチの信頼度は0〜3の4通りの数値を通り、この数値が高い程、信頼度が高く、プリフェッチのアドレス予測が正確であると判断されるとする。尚、プリフェッチの信頼度の初期値は、0〜3のどれでもよい。
[1−6]プリフェッチ信頼度格納部への加減算指示
図5は、本発明の第1の実施形態に係るプリフェッチ信頼度格納部への加減算指示の生成論理を示す。以下に、本実施形態のプリフェッチアクセスによるプリフェッチ信頼度格納部への加減算指示の生成について説明する。尚、図5は、4wayキャッシュの例であり、プロセッサ10−1(ID=1)がデータ0x40のアクセスを行ったとする。
まず、タグメモリ21から複数のタグ0〜3のタグ情報30を読み出す。そして、このタグ情報30のタグアドレスとプロセッサ10からのアクセスアドレス31とを、タグ比較部22で比較する。その結果、両者が一致する場合(キャッシュヒット)は、その一致するタグを選択し、両者が一致しない場合(キャッシュミス)は、入れ替えるタグを選択する。ここで、ヒット/ミス情報32は、一致するタグがあった場合は1、一致するタグがなかった場合は0となる。その後、プリフェッチフラグ(Prefetch)を参照し、キャッシュヒット又はキャッシュミスに応じてプリフェッチの信頼度の増減を行い、プリフェッチ信頼度格納部23への加減算指示Xを出す。
具体的には、キャッシュヒット時(ヒット/ミス情報32が1)で、かつ、プリフェッチフラグ(Prefetch)がON(1)の場合、そのタグ情報30のプロセッサID(ID)が示すプロセッサ10−1に対応する信頼度を1加算する指示Xを出す。つまり、プリフェッチで読んだデータが使われたことを意味するため、プロセッサ10−1のプリフェッチの信頼度を上げる。
一方、通常のキャッシュアクセス、プリフェッチアクセスを問わずにキャッシュミスになった時(ヒット/ミス情報32が0)で、かつ、置き換える対象のタグ情報30のプリフェッチフラグ(Prefetch)がON(1)の場合、そのタグ情報30のプロセッサID(ID)が示すプロセッサ10−1に対応する信頼度を1減算する指示Xを出す。つまり、プリフェッチで読んだデータが使われなかったことを意味するため、プロセッサ10−1のプリフェッチの信頼度を下げる。
以上のように、プリフェッチ信頼度格納部23への加減算指示Xは、キャッシュヒットし、かつ、プリフェッチフラグがONの場合は、プリフェッチの信頼度を加算する指示となり、キャッシュミスし、かつ、プリフェッチフラグがONの場合は、プリフェッチの信頼度を減算する指示となる。
[1−7]キャッシュ置き換えの優先度
図6は、本発明の第1の実施形態に係るプリフェッチアクセス時のキャッシュ置き換え優先順を説明するための図を示す。以下に、本実施形態に係るプリフェッチアクセス時におけるキャッシュ置き換えの優先順について説明する。
本実施形態では、プリフェッチアクセスでデータを下位のメモリからキャッシュ20に読み込む際、プリフェッチアクセスを行ったプロセッサ10−1、10−2のプリフェッチの信頼度を参照し、この信頼度が高いほど、プリフェッチしたデータの置き換えの際の優先度を低くする。
図6の例では、キャッシュ20は4way set associativeとし、プリフェッチの対象インデックスのキャッシュは、プリフェッチアクセス前にアドレスA、B、C、Dのデータが格納されているとする。置き換えポリシは特に指定しないが、プリフェッチアクセス前の置き換え優先度は、(6a)に示す通りであったとする。(6a)では、左のデータほど置き換え優先度が高いため、キャッシュミスによって置き換えが起きた際には左のデータから順に選択されることを意味する。
このような状態において、プリフェッチにより格納されるアドレスをPとする。また、プリフェッチの信頼度は、0〜3の4段階に設定され、0が最も優先度が低く、1、2、3の順に優先度が高くなる。
プリフェッチの信頼度が3と最も高い場合は、(6b)に示すように、データPの置き換えの優先度は最も低く設定される。従って、本例の場合、データPは最も右側に格納される。プリフェッチの信頼度が2の場合は、(6c)に示すように、データPの置き換えの優先度は2番目に低く設定される。従って、本例の場合、データPは右側から2番目に格納される。プリフェッチの信頼度が1の場合は、(6d)に示すように、データPの置き換えの優先度は3番目に低く設定される。従って、本例の場合、データPは右側から3番目に格納される。プリフェッチの信頼度が0と最も低い場合は、(6e)に示すように、データPの置き換えの優先度は最も高く設定される。従って、本例の場合、データPは最も左側に格納される。
このように、プリフェッチの信頼度が下がるにつれ、データPの置き換えの優先度は上がっていき、プリフェッチの信頼度が最も低い場合は、次にキャッシュミスが起きた時の入れ替えの対象となる。
尚、ここでは、信頼度と置き換えの優先度が1対1に対応する例を説明したが、これに限定されない。例えば、置き換えの優先度に対して複数の信頼度を割り当てることも可能である。具体的には、信頼度が3と2の時は、データPの置き換えの優先度は(6b)に示すようにし、信頼度が1と0の時は、データPの置き換え優先度は(6c)に示すようにしてもよい。
[1−8]効果
上記第1の実施形態によれば、キャッシュシステム1にはプリフェッチ信頼度格納部23が備えられ、このプリフェッチ信頼度格納部23はプロセッサ10−1、10−2毎のプリフェッチの信頼度を格納したカウンタ40−1、40−2を有している。このカウンタ40−1、40−2には、プリフェッチフラグがONのタグに対してキャッシュミスした場合は信頼度を下げ、プリフェッチフラグがONのタグに対してキャッシュヒットした場合は信頼度を上げる加減算指示Xが入力される。そして、プリフェッチアクセスでキャッシュ20にデータを格納する際、プリフェッチアクセスを行ったプロセッサ10−1、10−2の信頼度を参照し、この信頼度が低いほどデータの置き換えの際の優先度を高くする。
以上のように、キャッシュ20にプリフェッチしたデータの使用状況を監視し、このプリフェッチしたデータが使われない回数が使った回数と比較して多い場合、プリフェッチの信頼度は低下する。この時は、プリフェッチのアドレス予測が外れる回数が多いということなので、プリフェッチが無駄になる可能性が高い。このような場合、本実施形態では、プリフェッチで読み込んだ信頼度の低い無駄なデータがキャッシュ20内に留まる時間を短くすることができるため、他のデータがキャッシュ20内に留まる時間を延ばすことができる。このため、無駄なプリフェッチの悪影響を減らすことができる。
[2]第2の実施形態
第2の実施形態は、プリフェッチで格納したキャッシュラインを実際に使用したか否かによってプリフェッチの信頼度を定義し、未処理のプリフェッチが溜まったときに、信頼度の低いプリフェッチから削除し、信頼度の高いプリフェッチから優先して実行することで、無駄なプリフェッチがキャッシュ内に長く溜まることを抑制する。尚、ここでは、第1の実施形態と同様の点については説明を省略する。
[2−1]キャッシュシステムの構成
図7は、本発明の第2の実施形態に係るキャッシュシステムの概略的な構成図を示す。以下に、本実施形態に係るキャッシュシステムの概略的な構成について説明する。
図7に示すように、第2の実施形態では、第1の実施形態のキャッシュシステム1にキュー25をさらに備えている。このキュー25は、本実施形態では1つであるが、複数でもよく、通常のキャッシュアクセスとプリフェッチアクセスで格納されるキュー25が異なっていてもよい。
[2−2]キャッシュへのアクセス
プロセッサ10−1、10−2からは、第1の実施形態と同様に、通常のキャッシュアクセスとプリフェッチアクセスとが行われ、キュー25に一旦格納されてからキャッシュ20にアクセスされる。キャッシュミスによるデータの格納等で、キャッシュ20にアクセスできない場合は、キャッシュアクセスやプリフェッチアクセスはキュー25に溜まる。
キュー25に複数のプロセッサ10−1、10−2からの未処理のプリフェッチが溜まった場合、次にキャッシュ20にアクセスするプリフェッチアクセスを選択する際、プリフェッチ信頼度格納部23を参照して、信頼度の高いプロセッサ10−1、10−2のプリフェッチアクセスから優先して選択する。また、キュー25に空きがない状態で次のキャッシュアクセスが実行された場合、信頼度の低いプロセッサ10−1、10−2のプリフェッチアクセスから順にキャンセルする。
尚、本実施形態では、プリフェッチアクセスによりデータを下位のメモリからキャッシュ20に読み込む場合、第1の実施形態と同様、プリフェッチ信頼度格納部23の信頼度を参照し、データの置き換え優先度を考慮してもよい。つまり、信頼度の低いプロセッサによるプリフェッチの場合、プリフェッチで格納されるデータがキャッシュ20内に溜まる時間を短くするために、そのデータの置き換えの優先度を高く設定する。
[2−3]効果
上記第2の実施形態によれば、キャッシュシステム1にはプリフェッチ信頼度格納部23が備えられ、このプリフェッチ信頼度格納部23はプロセッサ10−1、10−2毎のプリフェッチの信頼度を格納したカウンタ40−1、40−2を有している。このカウンタ40−1、40−2には、プリフェッチフラグがONのタグに対してキャッシュミスした場合は信頼度を下げ、プリフェッチフラグがONのタグに対してキャッシュヒットした場合は信頼度を上げる加減算指示Xが入力される。そして、この信頼度を参照し、無駄になる可能性が高いプリフェッチはキャンセルし、有効である可能性が高いプリフェッチを優先して実行する。これにより、キャッシュ20に無駄なプリフェッチによるデータが格納されることを防ぐことができるため、無駄なプリフェッチの悪影響を減らすことができる。
[3]第3の実施形態
第3の実施形態は、キャッシュが階層構造になっている例である。尚、ここでは、第1の実施形態と同様の点については説明を省略する。
[3−1]キャッシュシステムの構成
図8は、本発明の第3の実施形態に係るキャッシュシステムの概略的な構成図を示す。以下に、本実施形態に係るキャッシュシステムの概略的な構成について説明する。
図8に示すように、第3の実施形態のキャッシュは、上位のL1キャッシュ20a−1、20a−2と下位のL2キャッシュ20bとからなる階層構造になっている。プロセッサ10−1、10−2は、上位のL1キャッシュ20a−1、20a−2をそれぞれ有する。このL1キャッシュ20a−1、20a−2より下位のL2キャッシュ20bは、複数のプロセッサ10−1、10−2で共有される。但し、プロセッサの数は1以上であればよい。
[3−2]キャッシュへのアクセスの概要
プロセッサ10−1、10−2からL2キャッシュ20bに要求されるアクセスは、通常のキャッシュアクセスと、L2キャッシュ20bへのプリフェッチアクセス(以下、L2プリフェッチアクセス又はL2プリフェッチと称す)と、L1キャッシュ20a−1、20a−2へのプリフェッチアクセス(以下、L1プリフェッチアクセス又はL1プリフェッチと称す)との3通りある。
L1プリフェッチアクセスが実行された場合、次のようになる。まず、L2キャッシュ20bに対象のデータが存在する場合は、プロセッサ10−1、10−2にデータを返す。一方、L2キャッシュ20bに対象のデータが存在しない場合は、下位のメモリから該当のデータをL2キャッシュ20bに格納し、プロセッサ10−1、10−2にデータを返す。
さらに、プロセッサ10−1、10−2はL1プリフェッチアクセスで読み出したデータに対してアクセスした際に、その対象のアドレスとL1プリフェッチが当たったことをL2キャッシュ20bに通知する。
[3−3]タグメモリのタグ情報
図9は、本発明の第3の実施形態に係るタグメモリのタグ情報を示す。以下に、本実施形態のタグメモリのタグ情報について説明する。
図9に示すように、本実施形態のタグ情報30は、通常のタグ情報にL1プリフェッチフラグとL2プリフェッチフラグとプロセッサのIDが追加される。つまり、本実施形態のタグ情報30は、タグアドレス(Tag)、バリッド(Valid)、ダーティ(Dirty)、L1プリフェッチフラグ(L1Prefetch)、L2プリフェッチフラグ(L2Prefetch)、プロセッサのID(ID)が規定されている。但し、プロセッサの数が1つの場合、プロセッサのIDは省略可能である。
L1プリフェッチフラグ(L1Prefetch)は、L1プリフェッチによるデータであるか否かを示す。L2プリフェッチフラグ(L2Prefetch)は、L2プリフェッチによるデータであるか否かを示す。
[3−4]L2プリフェッチアクセスにおけるタグ情報の変化
図10は、本発明の第3の実施形態に係るL2プリフェッチアクセスにおけるタグ情報の変化を示す。以下に、本実施形態に係るL2プリフェッチアクセスにおけるタグ情報の変化について説明する。
まず、タグ情報30の初期状態は、図10の状態Aであったとする。このような状態Aに対して、プロセッサ10−1(ID=1)がデータ0x40のL2プリフェッチアクセスを行ったとする。
このL2プリフェッチによってL2キャッシュ20bに格納したデータについてのタグ情報30のL2プリフェッチフラグ(L2Prefetch)をONとして、プリフェッチを行ったプロセッサ10−1のIDを格納する。ここで、ON=1、OFF=0とするので、図10の状態Bに示すように、L2プリフェッチフラグ(L2Prefetch)は1、プロセッサ10−1のID(ID)は1となる。従って、L2プリフェッチアクセスによりキャッシュ20bに格納されたデータのタグ情報30は、L2プリフェッチアクセスを行ったプロセッサIDとL2プリフェッチアクセスであることが示される。
一方、通常のキャッシュアクセスがキャッシュヒットした場合は、該当のタグ情報30のプリフェッチフラグ(L2Prefetch)をOFFとする。つまり、図10の状態Cに示すように、L2プリフェッチフラグ(L2Prefetch)は0となる。従って、L2プリフェッチアクセスであることを示すタグ情報30を持つタグにアクセスした場合には、L2プリフェッチアクセスである情報を消すことになる。
[3−5]L1プリフェッチアクセスにおけるタグ情報の変化
図11は、本発明の第3の実施形態に係るL1プリフェッチアクセスにおけるタグ情報の変化を示す。以下に、本実施形態に係るL1プリフェッチアクセスにおけるタグ情報の変化について説明する。
まず、タグ情報30の初期状態は、図11の状態Aであったとする。このような状態Aに対して、プロセッサ10−1(ID=1)がデータ0x40のL1プリフェッチアクセスを行ったとする。
このL1プリフェッチアクセスがL2キャッシュミスをした場合、このL1プリフェッチによってL2キャッシュ20bに格納したデータについてのタグ情報30のL1プリフェッチフラグ(L1Prefetch)をONとして、プリフェッチを行ったプロセッサ10−1のIDを格納する。ここで、ON=1、OFF=0とするので、図11の状態Bに示すように、L1プリフェッチフラグ(L1Prefetch)は1、プロセッサ10−1のID(ID)は1となる。従って、L1プリフェッチアクセスによりキャッシュ20bに格納されたデータのタグ情報30は、L1プリフェッチアクセスを行ったプロセッサIDとL1プリフェッチアクセスであることが示される。
一方、通常のキャッシュアクセスがキャッシュヒットした場合、若しくは該当のL1プリフェッチで読んだデータをプロセッサ10−1が使用した場合、L1プリフェッチフラグ(L1Prefetch)をOFFとする。つまり、図11の状態Cに示すように、L1プリフェッチフラグ(L1Prefetch)は0となる。従って、L1プリフェッチアクセスであることを示すタグ情報30を持つタグにアクセスした場合、L1プリフェッチで読んだデータをプロセッサ10−1が使用した場合には、L1プリフェッチアクセスである情報を消すことになる。
[3−6]プリフェッチの信頼度
図8に示す本実施形態のプリフェッチ信頼度格納部23には、第1の実施形態と同様、プロセッサ10−1、10−2からのプリフェッチアクセスのアドレス予測の信頼度が格納される。この信頼度は、プロセッサ10−1、10−2毎に、L1プリフェッチ、L2プリフェッチの信頼度をそれぞれ持つ。ここでは、例えば、プリフェッチの信頼度は0〜3の4通りの数値を通り、この数値が高いほど、信頼度が高く、プリフェッチのアドレス予測が正確であると判断されるとする。尚、プリフェッチの信頼度の初期値は、0〜3のどれでもよい。
キャッシュヒットにより、L1プリフェッチフラグをONからOFFにした際にはL1プリフェッチの信頼度が1増加し、L2プリフェッチフラグをONからOFFにした際にはL2プリフェッチの信頼度が1増加する。
一方、アクセスの種類を問わずL2キャッシュミスが発生し、置き換えが発生した場合に、L2キャッシュ20bから追い出される対象のL1プリフェッチフラグ若しくはL2プリフェッチフラグがONになっている場合、L1プリフェッチフラグならばL1プリフェッチの信頼度が1減少し、L2プリフェッチフラグならばL2プリフェッチの信頼度が1減少する。
[3−7]キャッシュ置き換えの優先度
図12は、本発明の第3の実施形態に係るプリフェッチアクセス時のキャッシュ置き換え優先順を説明するための図を示す。以下に、本実施形態に係るプリフェッチアクセス時におけるキャッシュ置き換えの優先順とL1、L2プリフェッチキャッシュラインの関係について説明する。
本実施形態では、L1プリフェッチアクセス若しくはL2プリフェッチアクセスでデータを下位のメモリからL2キャッシュ20bに読み込む際、プリフェッチアクセスを行ったプロセッサ10−1、10−2に対応するプリフェッチの信頼度を参照し、信頼度が高いほど、データの置き換えの際の優先度を低くする。この処理については、第1の実施形態と同じである。
そして、プロセッサ10−1、10−2からL2キャッシュ20bに対してL1プリフェッチで読んだデータを使用した通知があった場合、通常のキャッシュアクセスと同じようにタグを読み出し、該当のデータがL2キャッシュ20b内に存在する場合に、該当のデータの置き換えの際の優先度を低くする。この時、実際にデータにはアクセスしない。
次に、本実施形態に係るキャッシュ置き換えの優先度について具体的に説明する。プリフェッチで読んだデータをP、それ以外の同じインデックスに格納されているデータをB、C、Dとして、図6の(6c)に示すような置き換えの優先順であったとする。この時、プロセッサ10−1、10−2からデータPを使用した通知があった場合、Pの置き換え優先順を図6の(6b)とする。
この処理を用いた場合のキャッシュの置き換えの様子を示すのが、図12である。L1プリフェッチの対象をPとし、同じインデックスのデータをB、C、D、E、Fとする。L1プリフェッチ直後の状態は図12の(12a)であり、キャッシュ内にはB、C、D、Pが格納されている。置き換えの優先順は高い順にB、P、C、Dである。
この状態(12a)から、Eへのアクセス、L1プリフェッチのデータPをプロセッサ10−1、10−2が使用、Fへのアクセスの順番で実行される。Eへのアクセス終了時のキャッシュの状態は(12b)のようになる。次に、L1プリフェッチのデータPをプロセッサ10−1、10−2が使用した通知があった時、本実施形態を用いた場合には(12c)に示す状態となる。次に、Fへのアクセスがあった場合、本実施形態を用いた場合は(12d)に示す状態になる。一方、Fへのアクセスがあった場合、本実施形態を用いない場合は(12e)に示す状態になる。この後、再度Pへのアクセスがあった場合、本実施形態を用いた場合はキャッシュヒットとなるが、本実施形態を用いない場合にはキャッシュミスとなる。
上位のキャッシュラインサイズは、下位のキャッシュラインサイズより小さい場合が多い。例えば、L1キャッシュラインサイズが64KB、L2キャッシュラインサイズが256KBの場合、プリフェッチ対象のPのL2キャッシュラインは(12P)のように構成される。a、b、c、dはL1キャッシュラインを指す。命令に対するプリフェッチアクセスの場合のように、連続するデータへのプリフェッチの場合、aに対するプリフェッチを行った後にbに対するプリフェッチを行う可能性が高い。この場合、本実施形態を用いると、PがL2キャッシュ20bに存在する期間を長くすることができるので、キャッシュヒットする可能性が高まる。また、プリフェッチしたデータを実際に使うまでL2キャッシュ20b内の置き換え優先順は高いままなので、無駄なL1プリフェッチがL2キャッシュ20bに留まる時間も短くすることができる。
[3−8]効果
上記第3の実施形態によれば、第1の実施形態と同様の効果を得ることができる。さらに、第3の実施形態では、より上位のL1キャッシュ20a−1、20a−2へのプリフェッチアクセスの場合は実際に使用したときに、そのデータが含まれるL2キャッシュラインの置き換え優先度を下げることで、無駄なプリフェッチがL2キャッシュ20b内に長く留まることを防ぎつつ、連続したデータ構造へのアクセスの際に、下位のL2キャッシュ20bへヒットし易くすることができる。これにより、キャッシュが階層構造になっている場合も、無駄なプリフェッチの悪影響を減らすことができる。
尚、第3の実施形態では、上位のL1キャッシュ20a−1、20a−2はプロセッサ10−1、10−2内に配置されているが、これに限定されず、キャッシュが階層構造になっている種々の例に適用できる。また、第3の実施形態は、上記第2の実施形態を組み合わせることも可能である。
その他、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
本発明の第1の実施形態に係るキャッシュシステムの概略的な構成図。 本発明の第1の実施形態に係るタグメモリのタグ情報を示す図。 本発明の第1の実施形態に係るプリフェッチアクセスにおけるタグ情報の変化を示す図。 本発明の第1の実施形態に係るプリフェッチ信頼度格納部の内部構成の概略図。 本発明の第1の実施形態に係るプリフェッチ信頼度格納部への加減算指示の生成論理を示す図。 本発明の第1の実施形態に係るプリフェッチアクセス時のキャッシュ置き換え優先順を説明するための図。 本発明の第2の実施形態に係るキャッシュシステムの概略的な構成図。 本発明の第3の実施形態に係るキャッシュシステムの概略的な構成図。 本発明の第3の実施形態に係るタグメモリのタグ情報を示す図。 本発明の第3の実施形態に係るL2プリフェッチアクセスにおけるタグ情報の変化を示す図。 本発明の第3の実施形態に係るL1プリフェッチアクセスにおけるタグ情報の変化を示す図。 本発明の第3の実施形態に係るプリフェッチアクセス時のキャッシュ置き換え優先順を説明するための図。
符号の説明
1…キャッシュシステム、10−1、10−2…プロセッサ、20…キャッシュ、20a−1、20a−2…L1キャッシュ、20b…L2キャッシュ、21…タグメモリ、22…タグ比較部、23…プリフェッチ信頼度格納部、24…データメモリ、25…キュー、30…タグ情報、31…アクセスアドレス、32…ヒット/ミス情報、40−1、40−2…カウンタ、X…加減算指示。

Claims (5)

  1. プリフェッチアクセスであるか否かが示されたタグを有するタグメモリと、
    プロセッサ毎のプリフェッチの信頼度を有するプリフェッチ信頼度格納部と、
    前記タグとアクセスアドレスとを比較し、前記プリフェッチアクセスであることが示された前記タグに対してキャッシュミスした場合は、前記プリフェッチ信頼度格納部に対して前記プリフェッチの信頼度を下げる指示を出し、前記プリフェッチアクセスであることが示された前記タグに対してキャッシュヒットした場合は、前記プリフェッチアクセスであることを消し、前記プリフェッチ信頼度格納部に対して前記プリフェッチの信頼度を上げる指示を出すタグ比較部と
    を具備することを特徴とするキャッシュシステム。
  2. 前記プリフェッチの信頼度に応じて、前記キャッシュミスによって前記プリフェッチアクセスでキャッシュに格納されるデータの置き換え優先度を増減させることを特徴とする請求項1に記載のキャッシュシステム。
  3. 前記プリフェッチの信頼度に応じて、未実行の前記プリフェッチアクセスが溜まった場合に、前記プリフェッチの信頼度の低いものから削除し、前記プリフェッチの信頼度の高いものから実行することを特徴とする請求項1に記載のキャッシュシステム。
  4. 前記キャッシュシステムは、上位キャッシュと下位キャッシュとの2層以上で構成され、
    前記下位キャッシュから前記上位キャッシュへ前記プリフェッチアクセスにより読み出したデータを実際に使用する場合に、前記データが含まれる前記下位キャッシュの前記データの置き換え優先度を下げることを特徴とする請求項1に記載のキャッシュシステム。
  5. 前記タグは、前記プリフェッチアクセスであるか否かによりON/OFFを示すプリフェッチフラグを含み、
    前記プリフェッチ信頼度格納部は、前記プロセッサ毎の前記プリフェッチの信頼度を示すカウンタを有し、
    前記タグ比較部は、前記キャッシュミスで、かつ、前記プリフェッチフラグがONの場合、前記カウンタを1減算する指示を出し、前記キャッシュヒットで、かつ、前記プリフェッチフラグがONの場合、前記プリフェッチフラグをOFFにし、前記カウンタを1加算する指示を出すことを特徴とする請求項1に記載のキャッシュシステム。
JP2007224416A 2007-08-30 2007-08-30 キャッシュシステム Expired - Fee Related JP4829191B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007224416A JP4829191B2 (ja) 2007-08-30 2007-08-30 キャッシュシステム
US12/193,882 US20090063777A1 (en) 2007-08-30 2008-08-19 Cache system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007224416A JP4829191B2 (ja) 2007-08-30 2007-08-30 キャッシュシステム

Publications (2)

Publication Number Publication Date
JP2009059077A true JP2009059077A (ja) 2009-03-19
JP4829191B2 JP4829191B2 (ja) 2011-12-07

Family

ID=40409302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007224416A Expired - Fee Related JP4829191B2 (ja) 2007-08-30 2007-08-30 キャッシュシステム

Country Status (2)

Country Link
US (1) US20090063777A1 (ja)
JP (1) JP4829191B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069099A (ja) * 2011-09-22 2013-04-18 Toshiba Corp 制御システム、制御方法およびプログラム
JP2015026397A (ja) * 2014-11-04 2015-02-05 株式会社東芝 制御装置および情報処理装置
JP2018055683A (ja) * 2016-09-26 2018-04-05 三星電子株式会社Samsung Electronics Co.,Ltd. バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法
US10031852B2 (en) 2016-04-14 2018-07-24 Fujitsu Limited Arithmetic processing apparatus and control method of the arithmetic processing apparatus

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201794B2 (en) 2011-05-20 2015-12-01 International Business Machines Corporation Dynamic hierarchical memory cache awareness within a storage system
US8656088B2 (en) 2011-05-20 2014-02-18 International Business Machines Corporation Optimized flash based cache memory
CN102207916B (zh) * 2011-05-30 2013-10-30 西安电子科技大学 一种基于指令预取的多核共享存储器控制设备
JP6191240B2 (ja) * 2013-05-28 2017-09-06 富士通株式会社 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム
US10019375B2 (en) * 2016-03-02 2018-07-10 Toshiba Memory Corporation Cache device and semiconductor device including a tag memory storing absence, compression and write state information
EP3457289A1 (en) * 2017-09-15 2019-03-20 ProphetStor Data Services, Inc. Method for determining data in cache memory of cloud storage architecture and cloud storage system using the same
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63751A (ja) * 1986-06-20 1988-01-05 Fujitsu Ltd プリフエツチ制御方式
JPH02181844A (ja) * 1989-01-06 1990-07-16 Matsushita Electric Ind Co Ltd キャッシュメモリ管理方法
JPH10207850A (ja) * 1997-01-23 1998-08-07 Nec Corp マルチプロセッサシステムにおけるディスパッチング方 式、ディスパッチング方法およびディスパッチングプログ ラムを記録した記録媒体
JP2000347941A (ja) * 1999-06-02 2000-12-15 Fujitsu Ltd キャッシュメモリ装置
JP2005242527A (ja) * 2004-02-25 2005-09-08 Hitachi Ltd プロセッサ、および、プリフェッチ制御方法
JP2007500897A (ja) * 2003-07-31 2007-01-18 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるプリフェッチ制御

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426764A (en) * 1993-08-24 1995-06-20 Ryan; Charles P. Cache miss prediction apparatus with priority encoder for multiple prediction matches and method therefor
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US20060200631A1 (en) * 2005-03-02 2006-09-07 Mitsubishi Denki Kabushiki Kaisha Control circuit and control method
US7383393B2 (en) * 2005-10-28 2008-06-03 Freescale Semiconductor, Inc. System and method for cooperative prefetching

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63751A (ja) * 1986-06-20 1988-01-05 Fujitsu Ltd プリフエツチ制御方式
JPH02181844A (ja) * 1989-01-06 1990-07-16 Matsushita Electric Ind Co Ltd キャッシュメモリ管理方法
JPH10207850A (ja) * 1997-01-23 1998-08-07 Nec Corp マルチプロセッサシステムにおけるディスパッチング方 式、ディスパッチング方法およびディスパッチングプログ ラムを記録した記録媒体
JP2000347941A (ja) * 1999-06-02 2000-12-15 Fujitsu Ltd キャッシュメモリ装置
JP2007500897A (ja) * 2003-07-31 2007-01-18 フリースケール セミコンダクター インコーポレイテッド データ処理システムにおけるプリフェッチ制御
JP2005242527A (ja) * 2004-02-25 2005-09-08 Hitachi Ltd プロセッサ、および、プリフェッチ制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069099A (ja) * 2011-09-22 2013-04-18 Toshiba Corp 制御システム、制御方法およびプログラム
JP2015026397A (ja) * 2014-11-04 2015-02-05 株式会社東芝 制御装置および情報処理装置
US10031852B2 (en) 2016-04-14 2018-07-24 Fujitsu Limited Arithmetic processing apparatus and control method of the arithmetic processing apparatus
JP2018055683A (ja) * 2016-09-26 2018-04-05 三星電子株式会社Samsung Electronics Co.,Ltd. バイトアドレス可能なフラッシュ基盤メモリモジュール、nvdimm型モジュール、及びそのデータ格納方法

Also Published As

Publication number Publication date
US20090063777A1 (en) 2009-03-05
JP4829191B2 (ja) 2011-12-07

Similar Documents

Publication Publication Date Title
JP4829191B2 (ja) キャッシュシステム
CN102498477B (zh) Tlb预取
US8041897B2 (en) Cache management within a data processing apparatus
US10831678B2 (en) Multi-tier cache placement mechanism
JP4045296B2 (ja) キャッシュメモリ及びその制御方法
JP6840169B2 (ja) キャッシュテスト領域に基づくプリフェッチのためのキャッシュエージングポリシーの選択
JP7232175B2 (ja) キャッシュメモリのデータ置換方法及びプロセッサ
US9582282B2 (en) Prefetching using a prefetch lookup table identifying previously accessed cache lines
US20180300258A1 (en) Access rank aware cache replacement policy
US20080168236A1 (en) Performance of a cache by detecting cache lines that have been reused
US20160055100A1 (en) System and method for reverse inclusion in multilevel cache hierarchy
JP6630449B2 (ja) 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換
US11803484B2 (en) Dynamic application of software data caching hints based on cache test regions
US20210182214A1 (en) Prefetch level demotion
JP2008523490A (ja) キャッシュ置換用データ処理システムおよび方法
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
KR20210035311A (ko) 프로세서의 필터링된 분기 예측 구조
US20120124291A1 (en) Secondary Cache Memory With A Counter For Determining Whether to Replace Cached Data
JP2006285727A (ja) キャッシュメモリ装置
JP2019521410A (ja) 別のキャッシュレベルからのヒントに基づくキャッシュエントリエイジの設定
JP5709207B2 (ja) メモリシステム、キャッシュメモリ制御方法及びメモリ制御プログラム
JP4713077B2 (ja) 半導体装置
US20170286317A1 (en) Alternative direct-mapped cache and cache replacement method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090901

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

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

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

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees