JP2008234320A - キャッシュ制御回路 - Google Patents

キャッシュ制御回路 Download PDF

Info

Publication number
JP2008234320A
JP2008234320A JP2007073099A JP2007073099A JP2008234320A JP 2008234320 A JP2008234320 A JP 2008234320A JP 2007073099 A JP2007073099 A JP 2007073099A JP 2007073099 A JP2007073099 A JP 2007073099A JP 2008234320 A JP2008234320 A JP 2008234320A
Authority
JP
Japan
Prior art keywords
cache
rate
ratio
way
miss
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
JP2007073099A
Other languages
English (en)
Other versions
JP4519151B2 (ja
Inventor
Katsuhiro Yoda
勝洋 依田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007073099A priority Critical patent/JP4519151B2/ja
Publication of JP2008234320A publication Critical patent/JP2008234320A/ja
Application granted granted Critical
Publication of JP4519151B2 publication Critical patent/JP4519151B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】本発明は、現在のアプリケーションの状態に対して適切なサイズにキャッシュ容量を制御可能なキャッシュ制御回路を提供することを目的とする。
【解決手段】複数のウェイを含むセットアソシアティブ方式のキャッシュメモリを制御するキャッシュ制御回路は、キャッシュメモリの複数のウェイのうち有効データが占めている割合に応じた埋まり具合と、キャッシュメモリがアクセスされた頻度に応じた使用率と、キャッシュメモリへのアクセスのミスの割合に応じたミス率とを求める測定部と、埋まり具合と、使用率と、ミス率とに応じてキャッシュメモリの複数のウェイ毎の起動及び停止を制御する制御部を含むことを特徴とする。
【選択図】 図1

Description

本発明は、一般にメモリ制御回路に関し、詳しくはキャッシュメモリを制御するキャッシュ制御回路に関する。
コンピュータシステムにおいては一般に、主記憶とは別に小容量で高速なキャッシュメモリが設けられる。主記憶に記憶される情報の一部をキャッシュにコピーしておき、この情報をアクセスする場合には主記憶からではなくキャッシュから読み出すことで、高速な情報の読み出しが可能となる。
通信の分野等で使われるプロセッサにおいては、通信方式の要求を満足する高い処理性能と低消費電力という、互いにトレードオフとなる条件が要求される。プロセッサの処理性能とキャッシュのヒット率とには密接な関係があり、ヒット率が高いほどプロセッサは本来の性能を十分に発揮することができる。ヒットとは、キャッシュに格納してある外部メモリへのアクセス履歴に今回のアクセスが当てはまる場合、即ち、アクセス対象のデータがキャッシュに格納されている場合のことである。逆に今回のアクセスがアクセス履歴に当てはまらない場合を、キャッシュのミスヒットと呼ぶ。この場合には新たに履歴を格納するが、新たな履歴を格納する容量がない場合には、履歴を上書き更新する必要がある。
一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュのインデックスとなり、それより上位に位置する残りのビットがキャッシュのタグ(履歴)となる。データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、キャッシュ中の対応するインデックスのタグ(履歴)を読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンが一致するか否かを判断する。一致しない場合にはキャッシュミスとなる。一致する場合には、キャッシュヒットとなり、当該インデックスに対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)がアクセスされる。
各キャッシュラインに対して1つだけタグを設けたキャッシュの構成を、ダイレクトマッピング方式と呼ぶ。各キャッシュラインに対してN個のタグを設けたキャッシュの構成をNウェイセットアソシアティブと呼ぶ。Nウェイのキャッシュでは、1つのキャッシュラインに対して、N個のデータを格納することができる。
キャッシュサイズが大きければ大きいほどヒット率は増加する。しかしキャッシュはコアの近くで高速に動作するので、キャッシュサイズを大きくすると消費電力が大きくなってしまうという問題点がある。プロセッサ全体の消費電力に対するキャッシュの消費電力の比率は高いことが知られている。
一般にアプリケーションの状態によって、必要なキャッシュの容量は異なる。そこで、キャッシュの起動停止をウェイ単位で制御できる機構を設け、駆動ウェイ数を変化させてキャッシュ容量及び消費電力を制御する技術がある(特許文献1)。この技術では、キャッシュのミスヒット率を常に測定しておき、ミスヒット率が高くなったらウェイを起動させ、低くなったらウェイを順次停止させる。これにより、動的にキャッシュサイズを必要最小限にすることで、性能の劣化を防ぎつつ低消費電力化をはかっている。
しかし、測定項目がミスヒット率だけでは、以下に説明するように問題がある。例えば現在のキャッシュのサイズ(現在の駆動ウェイ数)が現在のアプリケーションの状態に対して最適でヒット率が高い場合、測定されるミスヒット率が低い状態が維持されるので、ウェイを停止するのが適切と判断されウェイが1つ停止されてしまう。しかし1つウェイが停止されると現在のキャッシュのサイズ(現在の駆動ウェイ数)が十分ではなくなり、測定されるミスヒット率が高い状態となる。その結果、ウェイを起動するのが適切と判断されウェイが1つ起動される。このようにウェイの停止・起動が繰り返し実行されることになり、性能が低下してしまう。この現象は、ミスヒット率のみで現在のウェイ数の是非を判断し、キャッシュがどの程度使われているかの情報(埋まり具合や使用率)を無視したためにおこると考えられる。
特開平9−50401号公報
以上を鑑みて、本発明は、現在のアプリケーションの状態に対して適切なサイズにキャッシュ容量を制御可能なキャッシュ制御回路を提供することを目的とする。
複数のウェイを含むセットアソシアティブ方式のキャッシュメモリを制御するキャッシュ制御回路は、該キャッシュメモリの該複数のウェイのうち有効データが占めている割合に応じたデータ占有割合と、該キャッシュメモリがアクセスされた頻度に応じた使用率と、該キャッシュメモリへのアクセスのミスの割合に応じたミス率とを求める測定部と、該データ占有割合と、該使用率と、該ミス率とに応じて該キャッシュメモリの該複数のウェイ毎の起動及び停止を制御する制御部を含むことを特徴とする。
本発明の少なくとも1つの実施例によれば、ミス率だけではなく、複数のウェイのうち有効データが占めている割合に応じたデータ占有割合とキャッシュメモリがアクセスされた頻度に応じた使用率とを考慮することにより、現在のアプリケーションの状態に即したウェイ毎の起動制御及び停止制御を行うことが可能となる。これにより、現在のアプリケーションの状態に対して適切なサイズにキャッシュ容量を制御することができる。
以下に、本発明の実施例を、添付の図面を用いて詳細に説明する。
図1は、本発明によるキャッシュ装置の構成の一例を示すブロック図である。
図1のキャッシュ装置は、タグ格納部11、データレジスタ部12、判定ユニット13、コントローラ14、アドレス変換部15、及びセレクタ16を含む。例えば、論理アドレスが32ビット長であるとすると、アドレスの最下位4ビットがアドレスオフセットとなり、それより上位に位置する所定数のビットがキャッシュのインデックスとなり、更にそれより上位に位置する残りのビットがキャッシュのタグとなる。
データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分(論理アドレスの第7ビット(6)から第13ビット(12)の7ビット)を用いて、タグ格納部11の対応するインデックスのタグを読み出す。このとき、タグ格納部11の当該インデックスの有効ビットVが有効値1であるときに限り、タグを有効データとして読み出すようにしてよい。タグの読出しと並行して、アクセス先を示すアドレスの上位ビット(論理アドレス[31:13]:論理アドレスの第14ビット(13)から第32ビット(31))を、アドレス変換部15により物理アドレス[31:13]に変換する。
このようにしてタグ格納部11から読み出したタグとアドレス変換部15から出力される物理アドレス[31:13]とを、判定ユニット13の比較器13aにより比較し、ビットパターンが一致するか否かを判断する。比較動作は4ウェイの4つのタグに対して実行され、そのうちの1つについて比較結果が一致を示すと、対応する判定ユニット13の出力がアサートされる。アクセスがヒットの場合には判定ユニット13の何れかの出力がアサートされ、アクセスがミスの場合には判定ユニット13の何れの出力もアサートされない。
アクセス先の論理アドレスに応じてデータレジスタ部12から読み出された4つのウェイのデータのうち、判定ユニット13のアサート出力に対応するウェイのデータがセレクタ16に供給される。セレクタ16は、アクセス先の論理アドレス中のオフセット部分が示すワードを選択し、キャッシュからの読み出しデータとする。
コントローラ14は、キャッシュ管理に関わる種々の制御動作を実行する。例えば、有効ビットVの設定をしたり、タグの設定をしたり、有効ビットをチェックすることで利用可能なキャッシュラインを検索したり、例えばLRU(least recently used)アルゴリズム等に基づいて置換対象となるキャッシュラインを選択したり、データレジスタ部12へのデータ書き込み動作を制御したりする。またコントローラ14は、本発明によるキャッシュの起動停止制御を実行する。図1に示されるコントローラ14のブロック構成は、このキャッシュの起動停止制御に関する部分に対応する。
コントローラ14は、パワー制御部21、動的閾値制御部22、ウェイ数制御部23、比較部24、ミス率測定部25、使用率測定部26、キャッシュ状態測定部27、及び設定レジスタ28を含む。キャッシュ状態測定部27では以下の2つの状態を随時監視し、使用率表として保持する。
監視対象の状態の一つめは、キャッシュライン毎の埋まり具合である。例えばキャッシュのウェイが3つ起動しており、あるラインにおいて、これら3つのウェイ全てに有効なデータが入っている場合、このラインの埋まり具合は1であり、これら3つのウェイのうちで有効なデータが入っていないウェイが1つでもある場合、このラインの埋まり具合は0である。このように、ライン毎に全ての起動中のウェイで有効なデータがはいっているときそのラインの埋まり具合を1とし、1つでも有効なデータがないウェイがあるときそのラインの埋まり具合を0と定義する。図2に示すように、使用率表31には起動中のウェイが示されており、このうち有効データの入っているウェイには1がフラグとして記録されている。起動中のウェイのフラグのANDをとることで、埋まり具合のデータ1/0が求められる。
監視対象の状態の一つめは、キャッシュライン毎の使用率である。ここで使用率は以下のようにして求める。キャッシュアクセス毎に、アクセスされたキャッシュラインの番号(ラインナンバー)を、図2に示すFIFO32に格納する。FIFO32に新規格納されたラインナンバーのラインの使用率を、使用率表31において1増加させる。またFIFO32から出力されるラインナンバーのラインの使用率を、使用率表31において1減少させる。FIFO32の長さがN+1であり、過去N+1回のキャッシュアクセスのうちm回がラインkに対するアクセスであったとすると、使用率表31におけるラインkの使用率はmとなる。
ミス率測定部25では、キャッシュアクセス毎にヒットならば0でありミスならば1である数値を生成し、アクセスされたラインの埋まり具合が1ならば予め設定された1より大きい係数Cをこの数値に掛けて、その結果をFIFO32に格納する(図2参照)。このFIFO32の格納データの合計値を、ウェイ起動の判断基準のための測定値(ミス率)としてミス率測定部25から出力する。この出力測定値であるミス率は、過去の所定回のアクセスのうちでミスが多いほど大きくなり、またミスの場合のアクセスされたラインに空きがないほど大きくなる。この出力測定値を、ウェイ起動の判断基準として利用する。係数Cとの積を求めることにより、起動検出が従来よりも係数設定値倍早くなる。
使用率測定部26は、キャッシュの埋まり具合と使用頻度とから、ウェイを停止するのが適切か否かを判定するための測定値を計算する。図3に示すようにキャッシュの埋まり具合が歯抜けの状態になっている場合、ウェイを停止して使用箇所をつめても、ヒット率にさほど影響を与えることなく電力削減効果を得ることができる。例えば埋まり具合が1(即ち空きがない状態)であるライン0については、使用率が比較的小さいので、ウェイを減らしてしまっても影響は少ないと考えられる。具体的には、iをラインナンバーとしてiについての和である
Σ{埋まり具合×使用率} (式1)
の値が小さい場合には、ウェイを減らすことが妥当であると考えられる。使用率測定部26は、上記のようにして求めた値を総合使用率として出力する
比較部24は、ミス率測定部25からのミス率と使用率測定部26からの総合使用率とをそれぞれの閾値と比較する。これら閾値は、予めシミュレーションなどで決めた値であり、例えばレジスタ設定等により可変に設定できる値である。比較部24は、ミス率が閾値を超えたら起動の指示をウェイ数制御部23へ出す。ミス率が閾値を超えていない状態で総合使用率が閾値以下になった場合、比較部24は停止の指示をウェイ数制御部23へ出す。どちらの条件も満たしていない場合、比較部24は起動及び停止の何れの指示も出さない。
図4は、ウェイ数制御部23の構成の一例を示す図である。
ウェイ数制御部23は、比較部24からの起動/停止指示と現在のウェイの起動状況とを基にしてウェイ数を制御する。内部にウェイ使用数測定部35を持ち、所定のアクセス回数における各ウェイの使用状況を表として保持している。また、ウェイの起動状況をウェイ起動状態表36として保持する機構をもつ。起動判定は、比較部24から起動指示があり、かつ停止中のウェイがあり、かつタイマ待ち状態でない場合に制御判定部39により行われる。制御判定部39は、起動判定すると、起動状況を更新し、起動状況を起動指示と合わせてパワー制御部21に送る。タイマ待ち状態とは、前回起動からウェイの電源が安定するまでの時間、及び、ウェイが起動した直後の一回目のアクセスがミスとなり履歴をキャッシュ内部に格納するために必要な時間(αレジスタ37の格納値が示す時間)、における待ち状態のことである。この時間はシミュレーションなどで予め決めておき、レジスタ37に可変に設定可能な構成とする。起動判定とともに起動し待ち時間を計時するタイマ38を内部に持つ。
ウェイ数制御部23による停止判定は、起動指示がなく、タイマ待ちではなく、停止指示があり、且つウェイが2つ以上起動している状態の場合に制御判定部39により行われる。制御判定部39は、停止の判定が行われたら、測定していたウェイ毎の使用率を基に最も使用率の低いウェイナンバーを停止させ、ウェイ起動状況を更新し、起動状況を停止指示と合わせてパワー制御部21に送る。
パワー制御部21では、ウェイ数制御部23の指示に従って各ウェイの電源のオン/オフを制御する。
前記の閾値は、動的に可変制御してもよい。閾値の設定値は、予めシミュレーションなどにより測定されたある程度妥当な値であることを想定している。しかし適切なシミュレーションができない場合等には、適当な推量値に設定するしかなく、その結果、ウェイの起動停止動作が全く起きない設定になってしまう場合が考えられる。このような場合でも閾値をレジスタ設定により変更することができるが、人手によらずに自動で変更したい場合或いはより早く変えたい場合等の補助機能として、動的閾値制御部22を設けてよい。
図5は、動的閾値制御部22の構成の一例を示す図である。動的制御ONとともにタイマ40は起動する。カウンタ41は起動指示数をカウントする。起動閾値の制御の場合、セレクタ42は、タイマ終了時にカウンタ41のカウント値が閾値を超えていたら、以前の値(FFの値)に"+1"した値を選択する。カウンタ41のカウント値が0の場合には、以前の値(FFの値)に"−1"した値を選択する。カウンタ41のカウント値が閾値以上でなく且つ0でない場合には、以前の値(FFの値)を選択する。タイマ40およびカウンタ41はタイマ終了時にリセットされる。停止閾値の制御動作も同じである。ただし、起動指示数ではなく停止指示数を監視し、閾値の"±"が起動閾値の場合と反対となる。
図6は、本発明によるキャッシュ起動停止制御の流れを示すフローチャートである。このフローチャートに示す処理はキャッシュアクセス毎に行われる。
測定値更新フェーズ(S1)では、各測定値の計算を行う。図1のキャッシュ状態測定部27の動作に相当する。
起動条件測定フェーズ(S2)では、測定値を基にミス率の計算を行い、起動の有無を判定する。図1のミス率測定部25及び比較部24の起動関連部分の動作に相当する。
停止条件判定フェーズ(S3)では、測定値を基に総合使用率の計算を行い、その結果を閾値と比較して停止の判定をする。図1の使用率測定部26及び比較部24の停止関連部分の動作に相当する。
起動停止フェーズ(S4)では、ウェイの起動停止判定を行う。図1のウェイ数制御部23の動作に相当する。
動的閾値制御フェーズ(S5)では、各閾値を動的に制御する。図1の動的閾値制御部22の動作に相当する。ここ処理だけは、キャッシュアクセスサイクルではなく、タイマのカウントするクロックサイクルに同期して動作する。なお動的閾値制御フェーズを図6に示す手順の先頭において実行し、制御後の閾値を利用して、図6示す各ステップの処理を実行してもよい。また動的閾値制御機能は、レジスタ設定などによりオン・オフ制御できるようにしてよい。
パワー制御起動(S6)及びパワー制御停止(S7)では、それぞれウェイの起動及び最も使用頻度の低いウェイの停止の動作を行う。図1のパワー制御部21の動作に相当する。その後、処理を終了し次のキャッシュアクセスを待つ。
図7は、図6のS1に対応する各測定値の計算の手順を示すフローチャートである。各ステップの順不同である。埋まり具合更新(S1)では、起動ウェイのライン毎に有効データがある場合には1、無い場合には0としてANDをとった結果を表として保持する。使用率更新(S2)では、保持していた最も古いアクセスラインナンバーに当たるラインの使用数を1減らし、今回アクセスしたラインナンバーの使用数を1増やす。ウェイ毎使用数更新(S3)では、最も古いアクセス情報が示すウェイの使用数を1減らし、今回アクセスしたウェイの使用数を"+1"する。
図8は、図6のS2に対応する起動条件判定の手順を示すフローチャートである。
まず最も古いヒット又はミスの情報を削除する(S1)。今回のアクセスのヒット/ミスを判定し(S2)、ヒットなら測定値(ミス率)を±0する(S3)。S2でミスし、ミスしたラインの埋まり具合が1(S4でYES)ならば、測定値を+Cする(S5)。S2でミスし、ミスしたラインの埋まり具合が0(S4でNO)ならば測定値を+1する(S6)。測定値と閾値との比較を行い(S7)、閾値を超えたら、起動条件を満たしたと判定し起動停止フェーズへ移行する(S8)。閾値を超えなかった場合には、停止条件判定フェーズへ移行する(S9)。
図9は、図6のS3に対応する停止条件判定の手順を示すフローチャートである。
総合使用率を所定の式に従い計算する(S1)。総合使用率が閾値以上であれば(S2でYES)、起動停止フェーズへ移行する(S3)。総合使用率が閾値より小さければ(S2でNO)、処理を終了し次のキャッシュアクセスを待つ(S4)。
図10は、図6のS4に対応する起動停止動作の手順を示すフローチャートである。
起動指示があり(S1でYES)、電源安定+α待ちのタイマは終了しており(S2でYES)、停止ウェイがある場合(S3でYES)には、電源安定+α待ちのタイマを起動し(S4)、ウェイ起動指示とともに動的閾値制御フェーズへ移行する(S5)。起動指示があっても電源安定+α待ちのタイマ待ち(S2でNO)、または停止ウェイが無い場合(S3でNO)には、指示を出さずに動的閾値制御フェーズへ移行する(S6)。起動指示がなく(S1でNO)、停止指示があり(S7でYES)、稼動ウェイ数が2以上の場合(S8でYES)には、停止指示とともに動的閾値制御フェーズへ移行する(S9)。停止指示がない(S7でNO)または稼動ウェイ数が1つの場合(S8でNO)には、指示を出さずに動的閾値制御フェーズへ移行する(S10)。
図11Aは、図6のS5に対応する動的閾値制御動作の手順を示すフローチャートである。図11Aは、起動閾値の制御の手順を示す。
動的制御設定がON(S1でYES)されたら、変化指令値(何段階閾値を変化させるかを保持した値)をリセットし、タイマが起動する。タイマが動いている間、起動指令をカウントする(S2,S3)。タイマ終了時(S4でYES)、カウンタが閾値以上(S5でYES)ならば、閾値が低すぎると判断し変化指令値を"+1"し、カウンタリセットする(S6)。カウンタが閾値以上でなく(S5でNO)且つ0(S7でYES)ならば、閾値が高すぎると判断し変化指令値を−1する(S8)。どちらでもない場合には変化指令値は現状のままとする。タイマをリセットして再起動するとともに、変化指令値と変化幅とを乗算し閾値に加算して、比較部で利用する(S9)。
図11Bは、図6のS5に対応する動的閾値制御動作の手順を示すフローチャートである。図11Bは、停止閾値の制御の手順を示す。
タイマが動いている間停止指令をカウントする(S1,S2)。タイマ終了時(S3でYES)、カウンタが閾値以上(S4でYES)ならば、閾値が高すぎると判断し変化指令値を−1し、カウンタリセットする(S5)。カウンタが閾値以上でなく(S4でNO)且つ0(S6でYES)ならば閾値が低すぎると判断し、変化指令値を+1する(S7)。どちらでもない場合には変化指令値は現状のままとする。タイマをリセットして再起動するとともに、変化指令値と変化幅とを乗算し閾値に加算して、比較部で利用する(S8)。
図12は、キャッシュ状態測定部27の構成の一例を示す図である。
起動ウェイ情報を基に、停止ウェイの有効データフラグはマスクし且つ起動ウェイの有効データフラグはそのままにして、ライン毎に複数のウェイの有効データフラグのANDをとり、その結果を埋まり具合表51に格納する。使用率表52においては、キャッシュアクセス毎に選択したラインナンバーをFIFO53にためておき、入力ナンバーAと出力ナンバーBとを比較して、ライン毎に両方にあてはまらなければ使用率を±0、入力に当てはまれば+1、出力に当てはまれば−1、両方にあてはまれば±0として更新した値を保持する。ウェイの使用率は、ウェイ毎にFIFO54をもち、キャッシュアクセス毎に自分のウェイへのアクセスなら1、さもなければ0を入力し、FIFO54の総和を使用数として保持する。
図13は、ミス率測定部25の構成の一例を示す図である。キャッシュアクセスがヒットだった場合は0、ミスかつミスしたラインの埋まり具合が1の場合には係数C、ミスかつミスしたラインの埋まり具合が0の場合には1を、FIFO55に挿入する。FIFO55の各レジスタの値の総和を測定値(ミス率)とする。
なおミス率測定の係数Cを1に設定すること、或いはC又は1の選択機構自体を削除することにより、埋まり具合を考慮しない単純なヒット/ミスの割合を判定基準(ミス率)として使用するようにしてもよい。この場合でも、本願の停止制御方式を用いることにより、従来とは異なるキャッシュ制御が可能となる。性能(ヒット率)をある値以下に落としたくない場合に、ミス率測定の閾値を変更して使用するのが効果的である。
図14は、使用率測定部26の構成の一例を示す図である。複数の掛け算器56と加算器57により、使用率表からライン毎の埋まり具合と使用率との積和を求め測定値(総合使用率)として出力する。
図15は、比較部24の構成の一例を示す図である。比較部24は、加算器61及び62と、比較回路63及び64を含む。これら加算器及び比較回路により、起動及び停止のそれぞれについて測定値と閾値との比較を行う。閾値を超えたら起動又は停止指示をだす。閾値は動的閾値制御部22からの閾値の変更値をレジスタ設定値に加算した値とする。動的閾値制御部22が設けられていない場合には、レジスタ設定値をそのまま閾値としてよい。
図16は、パワー制御部21の構成の一例を示す図である。パワー制御部21は、指示検出回路71、稼働状態レジスタ72、複数のアンド回路73を含む。指示検出回路71は、ウェイ数制御部23から供給される起動/停止指示信号を検出して、取り込みトリガ信号を出力する。この取り込みトリガ信号に応答して、稼働状態レジスタ72は、ウェイ数制御部23から供給される更新後のウェイ稼動状態情報を取り込む。これにより内部のウェイ稼動状態情報を更新する。この更新結果によりAND回路73を制御して、各電源ラインをマスクすることにより、各ウェイの電源をオン/オフ制御する。
図17は、本発明によるキャッシュ装置の変形例を示すブロック図である。図17において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
図17のキャッシュ装置は、図1のキャッシュ装置と比較して、コントローラ14の代わりにコントローラ14Aが設けられていることが異なる。コントローラ14Aは、パワー制御部21、ウェイ数制御部23A、キャッシュ状態測定部27A、及び設定レジスタ28Aを含む。
この構成では、埋まり具合をライン毎ではなく、起動中のウェイ全体でみる。即ち、起動中のウェイ全体でのデータ有効フラグの総数を埋まり具合とする。またキャッシュアクセス単位ではなく、コアのクロック単位で動くFIFOを設け、キャッシュアクセス有りの場合には1を、無しの場合には0をFIFOに入力するようにする。このFIFOの格納データの合計(1の数)を使用率とする。このような構成とすることにより、保持用のレジスタ、計算用の回路の構造が単純かつ小さくなる。
図18は、キャッシュ状態測定部27Aの構成の一例を示す図である。図18において、図12と同一の構成要素は同一の番号で参照し、その説明は省略する。
図18の構成の場合、起動ウェイ情報を基に、停止ウェイの有効データフラグはマスクし且つ起動ウェイの有効データフラグはそのままにして、全ての有効データフラグの和を求め、その結果を使用率表81に埋まり具合として格納する。この場合、ライン単位の埋まり具合がわからないので、ミス率に係数Cをかけることはできなくなる。ミス率はキャッシュのミス率をそのまま流用する。FIFO82によりキャッシュの使用率を求め、その結果を使用率表81に格納する。
図19は、埋まり具合、使用率、ミス率の値と制御動作との対応関係を示す表である。図19の表に基づいて、動作の列の動作(ウェイ起動、そのまま、停止)を実行すればよい。具体的には、ミス率が低く、埋まり具合及び使用率の少なくとも一方が低い場合には、ウェイ停止と判断をする。また、ミス率が高く、埋まり具合及び使用率の少なくとも一方が高い場合には、ウェイ起動と判断する。それ以外の場合には、ウェイの起動停止を行わない。
図20は、ウェイ数制御部23Aの構成の一例を示す図である。ウェイ数制御部23Aは、比較器85乃至87、判定部88、及びウェイ起動状態表89を含む。比較器85乃至87により、それぞれ埋まり具合、使用率、及びミス率とレジスタ設定の閾値との比較を行う。この比較結果と、ウェイ起動状態表89が示す現在のウェイ起動状態とに応じて、判定部88が判定を行い、起動指示、停止指示、及びウェイ稼働状況を出力する。判定条件は、図20において判定部88に記載の条件であり、図19の表に対応する。
図21は、本発明によるキャッシュ装置の更なる変形例を示すブロック図である。図21において、図1及び図17と同一の構成要素は同一の番号で参照し、その説明は省略する。
図21のキャッシュ装置は、図17のキャッシュ装置と比較して、コントローラ14の代わりにコントローラ14Bが設けられていることが異なる。コントローラ14Bは、パワー制御部21、動的閾値制御部22、ウェイ数制御部23B、キャッシュ状態測定部27A、及び設定レジスタ28Aを含む。動的閾値制御部22を設けることにより、図1の構成の場合と同様な動的閾値制御を可能としている。
図22は、ウェイ数制御部23Bの構成の一例を示す図である。図22において、図20と同一の構成要素は同一の番号で参照し、その説明は省略する。
ウェイ数制御部23Bは、図20の構成に加え、更に加算器91乃至93を含む。加算器91乃至93は、動的閾値制御部22からの閾値上昇値をレジスタ設定の閾値に加算して、動的に変化する閾値を生成する。この動的に変化する閾値が、比較器85乃至87における比較動作に使用される。
図23は、図17に示す構成におけるキャッシュ起動停止制御の流れを示すフローチャートである。このフローチャートに示す処理はキャッシュアクセス毎に行われる。
測定値更新フェーズ(S1)では、各測定値の計算を行う。図17のキャッシュ状態測定部27Aの動作に相当する。
条件測定フェーズ(S2)では、起動及び停止の条件の有無を判定する。起動の判定及び停止の判定は、条件判定フェーズに集約して簡略化できる。起動停止フェーズ(S3)では、ウェイの起動停止判定を行う。図17のウェイ数制御部23Aの動作に相当する。
パワー制御起動(S4)及びパワー制御停止(S5)では、それぞれウェイの起動及び最も使用頻度の低いウェイの停止の動作を行う。図17のパワー制御部21の動作に相当する。その後、処理を終了し次のキャッシュアクセスを待つ。
図24は、図23のS1に対応する各測定値の計算の手順を示すフローチャートである。埋まり具合は、キャッシュの有効ウェイの有効データフラグの総和を求めることで計算する(S1)。使用率は、最も古いキャッシュ使用情報を削除し、キャッシュを使用したら+1、使用しなかったら+0とすることにより更新して求める(S2)。ウェイ使用数更新は、図7の場合と同様である。なおこれらのステップの処理は順不同でよい。
図25は、図23のS2に対応する条件判定処理の手順を示すフローチャートである。まずミス率の閾値判定を行う(S1)。ミス率が閾値以上の場合(S1でYES)、さらに使用率の閾値判定(S2)、埋まり具合の閾値判定(S3)を行い、何れかの判定で閾値以上と判明した場合には起動と判定する(S4,S5)。ミス率が閾値以上でなく(S1でNO)且つ閾値以下である場合(S6でYES)、使用率の閾値判定(S7)、埋まり具合の閾値判定(S8)を行い、何れかの判定で閾値以下と判明した場合には停止と判定する(S9,S10)。それ以外の場合には起動停止は行わない。なお使用率、埋まり具合の判断の順番は入れ替え可能である。
図26は、図21に示す構成におけるキャッシュ起動停止制御の流れを示すフローチャートである。このフローチャートに示す処理はキャッシュアクセス毎に行われる。図26においては、図23のフローチャートに対して動的閾値制御フェーズ(SA)が追加されたことのみが異なる。他の処理は、図23と同様である。また動的閾値制御フェーズ(SA)の処理は、図11A及び図11Bに示す手順でよい。
なお上記変形例の説明において、図19の表に示されるキャッシュの状態と動作の関係を、ユーザーが設定変更できるようにしてもよい。即ち、図19の表の動作の列の内容を例えばレジスタ設定により可変な構成としてよい。このようなレジスタ設定を用いた構成により、例えば図19の状態1に対して動作が「停止」と定義されているのを、「起動」或いは「そのまま」と変更することが可能である。図20又は図22に示す判定部88で、判定結果をレジスタ設定に応じて実行すればよい。
図27は、動作内容をレジスタ設定可能とした場合の条件判定フェーズのフローチャートを示す。埋まり具合、使用率、及びミス率に関して閾値判定を行い各閾値との比較を行う(S1)。比較結果に応じてレジスタの設定内容を読み出す(S2)。高低は閾値以上及び以下を示し、中は閾値以上でも以下でもない場合を示す。レジスタから読み出した結果に応じて「起動」、「停止」、又は「そのまま」に分岐する(S3)。
以下に、本発明の少なくとも1つの実施例の効果について説明する。
(式1)で示した値は、キャッシュの利用効率を随時測定している式である。図3の説明で示したとおり、この式の値が低い場合、埋まっているラインの使用率が低く、ラインの空きが大きい、つまりつめられる上体をあらわしている。
例えばJPEGなどの画像処理の場合、図28のように特定の処理を繰り返し行い、終了したらアイドル状態となる動作を繰り返す。このとき、命令コード領域をみると、エンコード処理中は特定の処理を繰り返すためメモリ空間上の特定の領域が繰り返し使われる。そこでキャッシュは使用率が高く、埋まり具合が高く、ヒット率の高い状態となる。アイドル処理中は、通常自分への分岐といった極簡単な処理が繰り返しおこなわれるため特定のメモリ領域だけ使用される。そのためキャッシュの使用率は高く、埋まり具合は低く、ヒット率が高い状態となる。図29にこの場合の本発明と従来技術(特許文献1)との効果の差を示す。
従来技術の場合、ヒット率のみに依存するためヒット率が高い状態がつづくとウェイを停止させる。そのためキャッシュ容量が不足しミス率が高くなる。そのため今度は起動の判定条件を満たし起動する。すると再びヒット率の高い状態に戻る。これを繰り返すため処理時間が遅くなる。アイドル状態に入るとウェイと停止させる。キャッシュの制御なしの場合と比べて消費電力は下がるがスループットも落ちてしまう。
それに対し本発明の場合は、ライン毎の埋まり具合も判断基準に加えるためヒット率の高い状態が続くこの場合でもウェイの停止判断をしない。そのため性能はキャッシュの制御の無い場合と同様に維持される。アイドル状態では使用率が下がるためウェイを停止させ、従来技術と同様の省電力効果が期待できる。つまりキャッシュの制御無しの場合と比べてスループットを落とさず省電力化を行うことができる。
図30でミス率と起動判定の時間変化を本発明と従来技術で比べた。本発明では係数Cを掛けているため測定したミス率の上昇が早く、そのため起動判定を早く行うことができる。
さらに図31で定量的に比較結果をまとめた。起動が早くなる結果、平均性能は本発明の方が高くなる。また、図中の仮定より、従来技術に比べ平均C倍、検出が早くなる。
キャシュは複数のキャッシュラインを含み、主記憶からキャシュへの情報のコピーはキャシュライン単位で実行される。主記憶のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュの容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
キャッシュはアクセス履歴を格納するためアドレスをデコードする。その際、通常アドレスのすべてのビットをデコードはしない。キャッシュ内部をライン単位でわけてアドレスの一部はそのままラインナンバーに割り当てる。このためライン毎に使えるアドレスは周期的に決まっている。そこで、同じラインを使用する場所の利用頻度が高ければウェイを起動した場合ライン数が増えヒット率が上昇(性能向上)する。図2で埋まり具合が1のときに係数Cをかけるとは、同じラインをよく使ってミスした場合を強調するためのものである。したがって起動検出効率の向上が期待できる。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
本発明によるキャッシュ装置の構成の一例を示すブロック図である。 使用率、埋まり具合、ミス率を説明するための図である。 使用率表に基づくウェイ停止について説明するための図である。 ウェイ数制御部の構成の一例を示す図である。 動的閾値制御部の構成の一例を示す図である。 本発明によるキャッシュ起動停止制御の流れを示すフローチャートである。 各測定値の計算の手順を示すフローチャートである。 起動条件判定の手順を示すフローチャートである。 停止条件判定の手順を示すフローチャートである。 起動停止動作の手順を示すフローチャートである。 動的閾値制御動作の手順を示すフローチャートである。 動的閾値制御動作の手順を示すフローチャートである。 キャッシュ状態測定部の構成の一例を示す図である。 停止条件判定の手順を示すフローチャートである。 起動停止動作の手順を示すフローチャートである。 比較部の構成の一例を示す図である。 パワー制御部の構成の一例を示す図である。 本発明によるキャッシュ装置の変形例を示すブロック図である。 キャッシュ状態測定部の構成の一例を示す図である。 埋まり具合、使用率、ミス率の値と制御動作との対応関係を示す表である。 ウェイ数制御部の構成の一例を示す図である。 本発明によるキャッシュ装置の更なる変形例を示すブロック図である。 ウェイ数制御部の構成の一例を示す図である。 図17に示す構成におけるキャッシュ起動停止制御の流れを示すフローチャートである。 各測定値の計算の手順を示すフローチャートである。 条件判定処理の手順を示すフローチャートである。 図21に示す構成におけるキャッシュ起動停止制御の流れを示すフローチャートである。 動作内容をレジスタ設定可能とした場合の条件判定フェーズのフローチャートを示す。 画像処理の場合のキャッシュの使用状態の例を示す図である。 本発明と従来技術との効果の差を説明するための図である。 ミス率と起動判定の時間変化とを本発明と従来技術とで比較した図である。 本発明の効果を定量的に示す図である。
符号の説明
11 タグ格納部
12 データレジスタ部
13 判定ユニット
14 コントローラ
15 アドレス変換部
16 セレクタ
21 パワー制御部
22 動的閾値制御部
23 ウェイ数制御部
24 比較部
25 ミス率測定部
26 使用率測定部
27 キャッシュ状態測定部
28 設定レジスタ

Claims (5)

  1. 複数のウェイを含むキャッシュメモリを制御するキャッシュ制御回路であって、
    該キャッシュメモリの該複数のウェイのうち有効データが占めているデータ占有割合と、該キャッシュメモリがアクセスされた頻度に応じた使用率と、該キャッシュメモリへのアクセスのミスの割合に応じたミス率とを求める測定部と、
    該データ占有割合と、該使用率と、該ミス率とに応じて該キャッシュメモリの該複数のウェイ毎の起動及び停止を制御する制御部と
    を含むことを特徴とするキャッシュ制御回路。
  2. 該制御部は、該ミス率が所定の閾値以上で且つ該データ占有割合及び該使用率の何れかが所定の閾値以上であるときにウェイを起動するよう制御し、該ミス率が所定の閾値以下で且つ該データ占有割合及び該使用率の何れかが所定の閾値以下であるときにウェイを停止するよう制御することを特徴とする請求項1記載のキャッシュ制御回路。
  3. 該測定部は、
    該複数のウェイのうち有効データが占めている割合に応じた該データ占有割合をキャッシュライン毎に求め、過去所定回のキャッシュアクセスのうちで着目キャッシュラインがアクセスされた頻度に応じた該使用率をキャッシュライン毎に求めるキャッシュ状態測定部と、
    該過去所定回のキャッシュアクセスのうちで、該データ占有割合が空き有を示すキャッシュラインへのキャッシュアクセスがミスした頻度の重みと、該データ占有割合が空き無を示すキャッシュラインへのキャッシュアクセスがミスした頻度の重みとを異ならせて、ミスの頻度として該ミス率を計算するミス率測定部と、
    該キャッシュライン毎の該データ占有割合と該使用率との積を全てのキャッシュラインについて合計した総合使用率を求める使用率測定部と
    を含み、
    該制御部は、該ミス率と所定の閾値との比較結果及び該総合使用率と所定の閾値との比較結果とに応じて該キャッシュメモリの該複数のウェイ毎の起動及び停止を制御することを特徴とする請求項1記載のキャッシュ制御回路。
  4. 該データ占有割合が空き有を示すキャッシュラインへのキャッシュアクセスがミスした頻度の重みは、該データ占有割合が空き無を示すキャッシュラインへのキャッシュアクセスがミスした頻度の重みよりも大きいことを特徴とする請求項3記載のキャッシュ制御回路。
  5. 該所定の閾値を動的に制御する動的閾値制御部を含むことを特徴とする請求項2〜4のいずれか一つに記載のキャッシュ制御回路。
JP2007073099A 2007-03-20 2007-03-20 キャッシュ制御回路 Expired - Fee Related JP4519151B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007073099A JP4519151B2 (ja) 2007-03-20 2007-03-20 キャッシュ制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007073099A JP4519151B2 (ja) 2007-03-20 2007-03-20 キャッシュ制御回路

Publications (2)

Publication Number Publication Date
JP2008234320A true JP2008234320A (ja) 2008-10-02
JP4519151B2 JP4519151B2 (ja) 2010-08-04

Family

ID=39907016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007073099A Expired - Fee Related JP4519151B2 (ja) 2007-03-20 2007-03-20 キャッシュ制御回路

Country Status (1)

Country Link
JP (1) JP4519151B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065060A (ja) * 2011-08-05 2013-04-11 Toshiba Corp 情報処理装置およびキャッシュ方法
JP2013069099A (ja) * 2011-09-22 2013-04-18 Toshiba Corp 制御システム、制御方法およびプログラム
JP2013250962A (ja) * 2012-05-01 2013-12-12 Semiconductor Energy Lab Co Ltd 半導体装置
WO2014189344A1 (ko) * 2013-05-24 2014-11-27 고려대학교 산학협력단 캐시 장치 및 캐시 운영 방법
JP2015026397A (ja) * 2014-11-04 2015-02-05 株式会社東芝 制御装置および情報処理装置
CN105849707A (zh) * 2014-11-28 2016-08-10 华为技术有限公司 一种多级缓存的功耗控制方法、装置及设备
JP2017527883A (ja) * 2014-07-17 2017-09-21 クアルコム,インコーポレイテッド 動的パーティショニングを用いる共有されるキャッシュのための方法および装置
JP2020030696A (ja) * 2018-08-23 2020-02-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675857A (ja) * 1992-06-03 1994-03-18 Mitsubishi Electric Corp 緩衝記憶装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JP2000181793A (ja) * 1998-12-16 2000-06-30 Nec Corp キャッシュメモリ
JP2005078264A (ja) * 2003-08-29 2005-03-24 Matsushita Electric Ind Co Ltd コンピュータシステム、コンパイラ装置およびオペレーティングシステム
JP2005316842A (ja) * 2004-04-30 2005-11-10 Nec Corp キャッシュメモリおよびキャッシュ制御方法
JP2006309734A (ja) * 2005-03-31 2006-11-09 Semiconductor Energy Lab Co Ltd 演算処理装置および演算処理装置を用いた電子機器
JP2008210142A (ja) * 2007-02-26 2008-09-11 Fujitsu Ltd キャッシュウェイ縮退監視装置、キャッシュウェイ縮退監視方法およびキャッシュウェイ縮退監視プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675857A (ja) * 1992-06-03 1994-03-18 Mitsubishi Electric Corp 緩衝記憶装置
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JP2000181793A (ja) * 1998-12-16 2000-06-30 Nec Corp キャッシュメモリ
JP2005078264A (ja) * 2003-08-29 2005-03-24 Matsushita Electric Ind Co Ltd コンピュータシステム、コンパイラ装置およびオペレーティングシステム
JP2005316842A (ja) * 2004-04-30 2005-11-10 Nec Corp キャッシュメモリおよびキャッシュ制御方法
JP2006309734A (ja) * 2005-03-31 2006-11-09 Semiconductor Energy Lab Co Ltd 演算処理装置および演算処理装置を用いた電子機器
JP2008210142A (ja) * 2007-02-26 2008-09-11 Fujitsu Ltd キャッシュウェイ縮退監視装置、キャッシュウェイ縮退監視方法およびキャッシュウェイ縮退監視プログラム

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762628B2 (en) 2011-08-05 2014-06-24 Kabushiki Kaisha Toshiba Information processing apparatus and cache method
JP2013065060A (ja) * 2011-08-05 2013-04-11 Toshiba Corp 情報処理装置およびキャッシュ方法
JP2013069099A (ja) * 2011-09-22 2013-04-18 Toshiba Corp 制御システム、制御方法およびプログラム
US9703704B2 (en) 2012-05-01 2017-07-11 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP2013250962A (ja) * 2012-05-01 2013-12-12 Semiconductor Energy Lab Co Ltd 半導体装置
JP2018088256A (ja) * 2012-05-01 2018-06-07 株式会社半導体エネルギー研究所 半導体装置
WO2014189344A1 (ko) * 2013-05-24 2014-11-27 고려대학교 산학협력단 캐시 장치 및 캐시 운영 방법
KR101475931B1 (ko) * 2013-05-24 2014-12-23 고려대학교 산학협력단 캐시 및 그 운영 방법
JP2017527883A (ja) * 2014-07-17 2017-09-21 クアルコム,インコーポレイテッド 動的パーティショニングを用いる共有されるキャッシュのための方法および装置
US10089238B2 (en) 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
JP2015026397A (ja) * 2014-11-04 2015-02-05 株式会社東芝 制御装置および情報処理装置
CN105849707A (zh) * 2014-11-28 2016-08-10 华为技术有限公司 一种多级缓存的功耗控制方法、装置及设备
CN105849707B (zh) * 2014-11-28 2019-12-17 华为技术有限公司 一种多级缓存的功耗控制方法、装置及设备
JP2020030696A (ja) * 2018-08-23 2020-02-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム
JP7142289B2 (ja) 2018-08-23 2022-09-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム

Also Published As

Publication number Publication date
JP4519151B2 (ja) 2010-08-04

Similar Documents

Publication Publication Date Title
JP4519151B2 (ja) キャッシュ制御回路
US20240029488A1 (en) Power management based on frame slicing
JP6267314B2 (ja) キャッシュメモリの利用トレンドに基づく複数セットグループ内のウェイごとの動的パワー供給
US9400753B2 (en) Control system, control method, and computer program product
US8250332B2 (en) Partitioned replacement for cache memory
US7899993B2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US10353454B2 (en) Information processing apparatus and computer program product for changing swap spaces based on a performance threshold
JP5674611B2 (ja) 制御システム、制御方法およびプログラム
US10496550B2 (en) Multi-port shared cache apparatus
JP4451717B2 (ja) 情報処理装置および情報処理方法
JP2008040606A (ja) 低消費電力メモリ管理方法及びその方法を用いた計算機
KR20120024974A (ko) 스레드 이송 시의 캐시 프리필링
JP4189402B2 (ja) キャッシュ回路
US8856453B2 (en) Persistent prefetch data stream settings
JP6627629B2 (ja) 演算処理装置、および演算処理装置の制御方法
JP3236287B2 (ja) マルチプロセッサシステム
KR101472967B1 (ko) 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
JP5045163B2 (ja) 演算処理装置および演算処理装置の制御方法
JP5561374B2 (ja) 情報処理システム
CA2832223C (en) Multi-port shared cache apparatus
JP2002041358A (ja) プロセッサシステム
JP6477352B2 (ja) 演算処理装置、演算処理装置の制御方法および演算処理装置の制御プログラム
JPH11143774A (ja) キャッシュ制御機構
JP5714169B2 (ja) 制御装置および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100409

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

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

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

Free format text: PAYMENT UNTIL: 20130528

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees