JP4297961B2 - メモリアクセス制御装置およびメモリアクセス制御方法 - Google Patents

メモリアクセス制御装置およびメモリアクセス制御方法 Download PDF

Info

Publication number
JP4297961B2
JP4297961B2 JP2007556731A JP2007556731A JP4297961B2 JP 4297961 B2 JP4297961 B2 JP 4297961B2 JP 2007556731 A JP2007556731 A JP 2007556731A JP 2007556731 A JP2007556731 A JP 2007556731A JP 4297961 B2 JP4297961 B2 JP 4297961B2
Authority
JP
Japan
Prior art keywords
way
memory access
request
data block
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007556731A
Other languages
English (en)
Other versions
JPWO2007088591A1 (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.)
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
Publication of JPWO2007088591A1 publication Critical patent/JPWO2007088591A1/ja
Application granted granted Critical
Publication of JP4297961B2 publication Critical patent/JP4297961B2/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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/12Replacement control
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value

Landscapes

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

Description

本発明は、セットアソシアティブ方式でキャッシュ制御を行うメモリアクセス制御装置およびメモリアクセス制御方法に関し、特に、予期しないタイミングでのキャッシュの消失を防止しつつ、リトライの発生を最小限に抑制し、キャッシュのヒット率を高く保つことができるメモリアクセス制御装置およびメモリアクセス制御方法に関する。
メモリアクセス制御装置にて用いられるキャッシュ制御方式の一つにセットアソシアティブ方式がある。セットアソシアティブ方式は、データブロックのアドレスの一部をインデックスとしてセットを選択し、セットに含まれるWAYのいずれかにデータブロックを格納する方式である。WAYは、セットごとに複数存在し、例えば、4WAYセットアソシアティブ方式の場合、セットごとに4つのWAYが存在する。
セットアソシアティブ方式では、全てのデータブロックをキャッシュに格納することができないため、メモリアクセス制御装置は、キャッシュの内容を適宜置き換えながら、アクセスされる可能性の高いデータブロックをキャッシュに保持する。キャッシュの内容を置き換えるためのアルゴリズムは、リプレイスアルゴリズムと呼ばれ、キャッシュのヒット率を高めるための非常に重要な要素となっている。
ところで、CPU(Central Processing Unit)からのロード/ストア要求は、キャッシュにヒットするか否かによって処理に要する時間が大きく異なる。CPUからの要求がキャッシュミスし、主記憶へのアクセスが必要になった場合、キャッシュにヒットした場合の100倍以上の処理時間が必要となる。このように極端に処理時間の異なる処理を効率よく実行するため、メモリアクセス制御装置は、ムーブインバッファ(Move In Buffer、以下「MIB」という)を備え、主記憶へのアクセスのような処理時間の長い処理の実行をここで管理する。
MIBは、複数のエントリを有し、エントリごとに処理対象のデータブロックのアドレスやWAY等の情報を記憶する。そして、各エントリに記憶された情報に基づいて処理の実行と監視を行い、処理が完了するとその処理に対応するエントリを解放する。このように複数の要求の並列実行を可能にするMIBを備えることにより、メモリアクセス制御装置は、主記憶へのアクセスのようなレイテンシの大きい処理の実行が完了することを待つことなく、他の処理を実行することができる。
ただし、MIBを利用する場合、WAYの選択に注意が必要となる。例えば、セット1に対応するデータブロックXを主記憶からロードする処理をMIBにて行っており、このデータブロックXは、WAY0にキャッシュされることになっているものとする。ここで、セット1に対応するデータブロックYをストアする別の処理においてWAY0がキャッシュ先として選択されると、データブロックYをキャッシュに格納した直後にMIBによるロード処理によってWAY0が上書きされ、データブロックYがキャッシュから失われる可能性がある。
この場合、WAY0の上書きに先立って、データブロックYは主記憶に書き出されるため、データそのものの消失は発生しないが、キャッシュの消失により、キャッシュのヒット率の低下を招くことになる。また、1次キャッシュ/2次キャッシュのように階層化されたキャッシュシステムの下位のキャッシュにてこのようなキャッシュの消失が発生すると、上位のキャッシュが保持するデータブロックは下位のキャッシュも必ず保持していなければならないという包含関係が崩れる恐れもある。
そこで、従来のメモリアクセス制御装置においては、MIBにて処理中のデータブロックと同一セットのデータブロックに対するロード/ストア要求があった場合、要求をリトライさせ、MIBの処理が完了するまで要求の実行を遅延させることよってキャッシュの消失を回避する方式がとられていた。また、この方式に代えて、特許文献1に記載されているように、MIBにて同一セットかつ同一WAYのデータブロックの処理が行われている場合は、その件数分だけずらしてWAYを選択する方式を用いることも可能である。
特開2001−51899号公報
しかしながら、要求の実行を遅延させる従来の方式は、実装が容易である反面、同一セットに使用可能なWAYが存在する場合でも要求がリトライされてしまい、性能の低下を招くという問題がある。また、特許文献1に記載された方式も、リプレイスアルゴリズムによって選択されたWAYとは別のWAYを選択することになるため、キャッシュのヒット率の低下を招くという問題がある。
本発明は、上記に鑑みてなされたものであって、MIBの動作による予期しないタイミングでのキャッシュの消失を防止しつつ、リトライの発生を最小限に抑制し、キャッシュのヒット率を高く保つことができるメモリアクセス制御装置およびメモリアクセス制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数の要求に係る情報を格納し、これらの要求を並列実行するためのバッファを有し、セットアソシアティブ方式でキャッシュ制御を行うメモリアクセス制御装置であって、当該のメモリアクセス制御装置にメモリアクセス要求が行われた場合に、該メモリアクセス要求の処理対象のデータブロックと同一セットのデータブロックを処理対象とする要求を前記バッファより選択し、選択された要求に割り当てられているWAYを出力する処理状況出力手段と、前記処理状況出力手段により出力されたWAYを除外して、前記メモリアクセス要求に割り当てるWAYを所定のリプレイスアルゴリズムに基づいて選択するリプレイスWAY選択手段と、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記リプレイスWAY選択手段により選択されたWAYに前記データブロックが格納されるように制御する制御手段とを備えたことを特徴とする。
また、本発明は、複数の要求に係る情報を格納し、これらの要求を並列実行するためのバッファを有し、セットアソシアティブ方式でキャッシュ制御を行うメモリアクセス制御装置におけるメモリアクセス制御方法であって、当該のメモリアクセス制御装置にメモリアクセス要求が行われた場合に、該メモリアクセス要求の処理対象のデータブロックと同一セットのデータブロックを処理対象とする要求を前記バッファより選択し、選択された要求に割り当てられているWAYを出力する処理状況出力工程と、前記処理状況出力工程により出力されたWAYを除外して、前記メモリアクセス要求に割り当てるWAYを所定のリプレイスアルゴリズムに基づいて選択するリプレイスWAY選択工程と、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記リプレイスWAY選択工程により選択されたWAYに前記データブロックが格納されるように制御する制御工程とを含んだことを特徴とする。
これらの発明によれば、先行して実行されている要求に割り当てられているWAYを除外して、新規の要求に割り当てるWAYをリプレイスアルゴリズムに基づいて選択するように構成したので、キャッシュが予期しないタイミングで消失することを防止しつつ、キャッシュのヒット率を高く保つことができる。
また、本発明は、上記の発明において、前記リプレイスアルゴリズムは、LRU(Least Recently Used)アルゴリズムであることを特徴とする。
この発明によれば、リプレイスアルゴリズムとしてLRUアルゴリズムを利用するように構成したので、キャッシュのヒット率を高めることができる。
また、本発明は、上記の発明において、前記制御手段は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記処理状況出力手段により出力されたWAYが使用可能な全てのWAYを含むならば、該メモリアクセス要求をリトライさせることを特徴とする。
また、本発明は、上記の発明において、前記制御工程は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記処理状況出力工程により出力されたWAYが使用可能な全てのWAYを含むならば、該メモリアクセス要求をリトライさせることを特徴とする。
これらの発明によれば、要求の処理対象のデータブロックがキャッシュにヒットしなかった場合、全てのWAYが使用不可能なときのみ要求をリトライさせるように構成したので、リトライによる性能の低下を最小限に抑えることができる。
また、本発明は、上記の発明において、前記制御手段は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットした場合に、ヒットしたWAYが前記処理状況出力手段により出力されたWAYに含まれるならば、該メモリアクセス要求をリトライさせることを特徴とする。
また、本発明は、上記の発明において、前記制御工程は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットした場合に、ヒットしたWAYが前記処理状況出力工程により出力されたWAYに含まれるならば、該メモリアクセス要求をリトライさせることを特徴とする。
これらの発明によれば、要求の処理対象のデータブロックがキャッシュにヒットした場合、ヒットしたWAYが先行して実行されている要求に割り当てられているWAYに含まれるときは要求をリトライさせるように構成したので、キャッシュが予期しないタイミングで消失することを防止することができる。
本発明によれば、先行して実行されている要求に割り当てられているWAYを除外して、新規の要求に割り当てるWAYをリプレイスアルゴリズムに基づいて選択するように構成したので、キャッシュが予期しないタイミングで消失することを防止しつつ、キャッシュのヒット率を高く保つことができるという効果を奏する。
また、本発明によれば、リプレイスアルゴリズムとしてLRUアルゴリズムを利用するように構成したので、キャッシュのヒット率を高めることができるという効果を奏する。
また、本発明によれば、要求の処理対象のデータブロックがキャッシュにヒットしなかった場合、全てのWAYが使用不可能なときのみ要求をリトライさせるように構成したので、リトライによる性能の低下を最小限に抑えることができるという効果を奏する。
また、本発明によれば、要求の処理対象のデータブロックがキャッシュにヒットした場合、ヒットしたWAYが先行して実行されている要求に割り当てられているWAYに含まれるときは要求をリトライさせるように構成したので、キャッシュが予期しないタイミングで消失することを防止することができるという効果を奏する。
以下に、本発明にかかるメモリアクセス制御装置およびメモリアクセス制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、MIBの処理が完了するまで要求の実行を遅延させる従来のメモリアクセス制御方式について説明する。図7は、従来のメモリアクセス制御装置の構成を示す機能ブロック図である。同図に示すように、メモリアクセス制御装置200は、CPU100、キャッシュメモリ300および主記憶400と接続された構成をとる。
CPU100は、各種処理を実行する演算装置であり、主記憶400に対するデータのロード/ストア要求をメモリアクセス制御装置200に対して発行し、その結果を受信する。なお、キャッシュが階層化されている場合は、CPU100とメモリアクセス制御装置200の間に他のメモリアクセス制御装置が介在する場合もある。
キャッシュメモリ300は、高速なアクセスが可能なSRAM(Static Random Access Memory)等のメモリであり、主記憶400のデータの一部のコピーを保持することによってデータアクセスの速度を向上させる。キャッシュメモリ300へのデータの格納は、データブロック単位で行われ、データブロックの格納位置は、セットとWAYの組合せによって特定される。主記憶400は、CPU100が各種処理を実行するために必要なプログラムやデータが展開されるメモリである。
メモリアクセス制御装置200は、CPU100のロード/ストア要求を効率よく実行することができるようにキャッシュメモリ300および主記憶400へのアクセスを制御する装置である。メモリアクセス制御装置200は、キャッシュの制御にセットアソシアティブ方式を用いる。
また、プロセッサごとにキャッシュを備えるマルチプロセッサシステムの場合、メモリアクセス制御装置200は、メモリアクセス制御装置201〜メモリアクセス制御装置203等の他のメモリアクセス制御装置とも接続される。
図7に示すように、メモリアクセス制御装置200は、ポート210と、ヒット判定部220と、MIB230と、リプレイスWAY選択部240と、制御部250とを有する。以下、新たな要求にWAYを割り当てるまでの処理に注目して、各処理部の詳細を説明する。
ポート210は、CPU100から送られた要求を一時的に保持する装置である。ここに保持された要求は、所定の優先順位で読み出されて制御部250に送信される。そして、これと同時に、読み出された要求の処理対象のデータブロックのアドレス(以下「要求アドレス」という)がヒット判定部220、MIB230およびリプレイスWAY選択部240に送信される。
ヒット判定部220は、ポート210から送信された要求アドレスに対応するデータブロックがキャッシュメモリ300に格納されているか否かを判定する処理部である。ヒット判定部220の構成を図8に示す。同図に示すように、ヒット判定部220は、タグメモリ221と、タグ比較部222とを有し、ポート210から要求アドレスが送信されると、そのインデックスをタグメモリ221に入力し、そのタグをタグ比較部222に入力する。
ここで、要求アドレスについて説明しておく。要求アドレスは、タグとインデックスとオフセットに分かれる。オフセットは、要求アドレスの下位ビットであり、データブロック内の位置を指定するための部分である。タグとインデックスは、データブロックを識別する部分であり、このうちのインデックスの部分を使用してデータブロックをキャッシュのどのセットに格納するかが決定される。
タグメモリ221は、キャッシュメモリ300に格納されているデータブロックに関する管理情報を記憶する装置である。ここでいう管理情報とは、具体的には、データブロックのアドレスのタグと、更新が行われているか否かといったステートと、各種制御フラグ等である。管理情報は、対応するデータブロックがキャッシュメモリ300に格納されている位置と同じ位置に格納される。すなわち、あるデータブロックがキャッシュメモリ300のセット1のWAY0に格納されている場合、その管理情報はタグメモリ221のセット1のWAY0に格納される。
タグメモリ221は、要求アドレスのインデックスが入力されると、そのインデックスに対応するセットを選択し、選択したセットに含まれる各WAYの管理情報をタグ比較部222へ送信する。
タグ比較部222は、要求アドレスのタグが入力されると、入力されたタグとタグメモリ221から送信された管理情報とを比較して、要求アドレスに対応するデータブロックがキャッシュメモリ300に格納されているか否かを判定する。具体的には、タグメモリ221から送信された管理情報に入力されたタグと同一のタグを有する情報があれば、その管理情報に対応するWAYにデータブロックがキャッシュされていると判定する。
そして、タグ比較部222は、要求アドレスに対応するデータブロックがキャッシュメモリ300に格納されていると判定した場合は、HIT信号をONにし、さらにデータブロックが格納されているWAYに対応するHIT−WAY信号をONにする。一方、要求アドレスに対応するデータブロックがキャッシュメモリ300に格納されていないと判定した場合は、MISS信号をONにする。これらの信号は、制御部250に出力される。
MIB230は、主記憶400との間でのデータブロックの転送処理のような時間のかかる処理の実行を管理する処理部である。MIB230の構成を図9に示す。同図に示すように、MIB230は、MIB0〜MIBmの複数のエントリと、処理状況出力部232とを有し、ポート210から要求アドレスが送信されると、そのインデックスを各エントリに入力する。
各エントリは、レジスタ231aと、インデックス比較部231bとを備え、自身に割り振られた処理の実行を管理する。レジスタ231aは、割り振られた処理に関する情報を記憶する装置であり、当該のエントリに処理が割り振られているか否かを示すVビットと、割り振られた処理の要求アドレスを示すタグ、インデックスおよびオフセットと、処理に割り当てられたWAYと、各種制御フラグ等を記憶する。
インデックス比較部231bは、要求アドレスのインデックスが入力されると、当該のエントリのレジスタ231aのVビットとインデックスを取得し、Vビットが立っており、かつ、入力されたインデックスと取得したインデックスが一致した場合に出力する信号をONにする。
そして、処理状況出力部232は、こうして各エントリのインデックス比較部231bから出力された信号の論理和をとってMIB_INDEX_MCH信号として出力する。すなわち、MIB_INDEX_MCH信号は、要求アドレスと同一のインデックスを有するデータブロックがMIB230にて処理対象となっている場合にONとなる。この信号は、制御部250に出力される。
リプレイスWAY選択部240は、ポート210から送信された要求アドレスに対応するデータブロックを格納すべきWAYを選択する処理部である。リプレイスWAY選択部240の構成を図10に示す。同図に示すように、リプレイスWAY選択部240は、LRU−RAM241と、WAY選択部242とを有し、ポート210から要求アドレスが送信されると、そのインデックスをLRU−RAM241に入力する。
LRU−RAM241は、キャッシュメモリ300が最後にアクセスされた時間をセットごとかつWAYごとに記憶する装置である。そして、LRU−RAM241は、要求アドレスのインデックスが入力されると、そのインデックスに対応するセットを選択し、選択したセットに含まれる各WAYが最後にアクセスされた時間をWAY選択部242へ出力する。
WAY選択部242は、各WAYが最後にアクセスされた時間が入力されると、アクセスされた時間が最も古いWAYを選択し、そのWAYに対応するRPL−WAY信号をONにする。このとき、WAY選択部242は、入力される縮退情報を参照し、固定故障等により使用不可とされているWAYを選択対象から除外する。RPL−WAY信号は、制御部250に出力される。
制御部250は、ポート210から送信された要求に対応する各種制御を実行する制御部である。制御部250は、ポート210から要求を受信すると共に、上述の処理の結果としてヒット判定部220、MIB230およびリプレイスWAY選択部240から出力される各種信号の入力も受ける。そして、これらの信号の状態に応じて、要求への対処を変更する。
具体的には、MIB230から入力されたMIB_INDEX_MCH信号がONの場合は、要求をポート210に差し戻してリトライさせる。MIB230にて要求アドレスと同一インデックスのデータブロックの処理が行われている場合、ポート210から送信された要求によりキャッシュメモリ300に格納されたデータブロックが予期しないタイミングで上書きされて、キャッシュから消失してしまう可能性があるためである。
MIB230から入力されたMIB_INDEX_MCH信号がOFFの場合、制御部250は、要求の処理対象のデータブロックを格納するためのWAYを選択し、選択したWAYを要求に割り当てて要求内容に応じた処理を実行する。
具体的には、ヒット判定部220から入力されたHIT信号がONの場合は、ヒット判定部220から入力されたHIT−WAY信号が示すWAY、すなわち、要求アドレスがタグメモリ221にヒットしたWAY(以下「ヒットWAY」という)を要求に割り当てて処理を実行する。
また、ヒット判定部220から入力されたMISS信号がONの場合は、リプレイスWAY選択部240から入力されたRPL−WAY信号が示すWAY、すなわち、リプレイスアルゴリズムによって書き換えに最も適していると判定されたWAY(以下「リプレイスWAY」という)を要求に割り当てて処理を実行する。
次に、図7に示したメモリアクセス制御装置200の処理手順について説明する。図11は、図7に示したメモリアクセス制御装置200の処理手順を示すフローチャートである。同図は、制御部250が要求を受信した後、使用するWAYを選択するまでの処理手順を示している。
ポート210から送信された要求は、制御部250に受信される(ステップS101)。これと平行して、ポート210から送信された要求アドレスは、ヒット判定部220と、MIB230と、リプレイスWAY選択部240とに受信される。
要求アドレスを受信したヒット判定部220は、タグメモリ221を検索し、要求アドレスに対応するデータブロックがキャッシュに存在するか否かを調べ、その結果を制御部250へ出力する(ステップS102)。要求アドレスを受信したMIB230は、要求アドレスと同一のインデックスを有するデータブロックを処理対象とする処理が実行中であるか否かを調べ、その結果を制御部250へ出力する(ステップS103)。
また、要求アドレスを受信したリプレイスWAY選択部240は、要求アドレスに対応するセットに属するWAYの中で最も置き換えに適しているWAYをリプレイスアルゴリズムに基づいて選択し、その結果を制御部250へ出力する(ステップS104)。
そして、制御部250は、MIB230からの入力により、要求アドレスと同一のインデックスを有するデータブロックを処理対象とする処理がMIB230にて実行中であることが分かった場合は(ステップS105肯定)、要求をポート210へ差し戻してリトライさせる。
一方、要求アドレスと同一のインデックスを有するデータブロックを処理対象とする処理がMIB230にて実行中でないことが分かった場合は(ステップS105否定)、要求内容に応じた処理を実行する。
このとき、タグメモリ221の検索により、要求アドレスに対応するデータブロックがキャッシュされていることが判明した場合は(ステップS106肯定)、ヒット判定部220から入力されたヒットWAYをキャッシュの格納場所として要求に割り当てる(ステップS107)。また、要求アドレスに対応するデータブロックがキャッシュされていないことが判明した場合は(ステップS106否定)、リプレイスWAY選択部240から入力されたリプレイスWAYをキャッシュの格納場所として要求に割り当てる(ステップS108)。
このように、従来のメモリアクセス制御方式では、MIB230による上書きによってキャッシュメモリ300に格納されたデータブロックが予期しないタイミングで消失することを回避するため、要求アドレスと同一のインデックスのデータブロックを処理対象とする処理がMIB230にて実行中の場合は要求をリトライさせている。
しかし、要求アドレスと同一のインデックスのデータブロックを処理対象とする処理がMIB230にて実行中であっても、この処理に割り当てられているWAYと異なるWAYを新たな要求に割り当てれば予期しないキャッシュの消失が発生することはない。すなわち、従来のメモリアクセス制御方式では、必要以上に要求のリトライが行われており、その分だけ性能の低下が生じている。
次に、本実施例に係るメモリアクセス制御装置について説明する。図1は、本実施例に係るメモリアクセス制御装置の構成を示す機能ブロック図である。同図に示すように、メモリアクセス制御装置500は、CPU100、キャッシュメモリ300および主記憶400と接続された構成をとる。CPU100、キャッシュメモリ300および主記憶400については、既に説明済みであるので、ここでは説明を省略する。
メモリアクセス制御装置500は、CPU100のロード/ストア要求を効率よく実行することができるようにキャッシュメモリ300および主記憶400へのアクセスを制御する装置である。メモリアクセス制御装置500は、キャッシュの制御にセットアソシアティブ方式を用いる。なお、メモリアクセス制御装置500は、CPU100、キャッシュメモリ300もしくは主記憶400と一体の装置として構成することもできる。
また、プロセッサごとにキャッシュを備えるマルチプロセッサシステムの場合、メモリアクセス制御装置500は、メモリアクセス制御装置501〜メモリアクセス制御装置503等の他のメモリアクセス制御装置とも接続される。
図1に示すように、メモリアクセス制御装置500は、ポート510と、ヒット判定部520と、MIB530と、リプレイスWAY選択部540と、制御部550とを有する。以下、新たな要求にWAYを割り当てるまでの処理に注目して、各処理部の詳細を説明する。
ポート510は、CPU100から送られた要求を一時的に保持する装置である。ここに保持された要求は、所定の優先順位で読み出されて制御部550に送信される。そして、これと同時に、要求アドレスがヒット判定部520、MIB530およびリプレイスWAY選択部540に送信される。
ヒット判定部520は、ポート510から送信された要求アドレスに対応するデータブロックがキャッシュメモリ300に格納されているか否かを判定する処理部である。ヒット判定部520の構成は、図8に示したヒット判定部220の構成と同様であるが、HIT−WAY信号を制御部550のみでなく、リプレイスWAY選択部540へも出力する。
MIB530は、主記憶400との間でのデータブロックの転送処理のような時間のかかる処理の実行を管理する処理部である。MIB530の構成を図2に示す。同図に示すように、MIB530は、MIB0〜MIBmの複数のエントリと、処理状況出力部532とを有し、ポート510から要求アドレスが送信されると、そのインデックスを各エントリに入力する。
各エントリは、レジスタ531aと、インデックス比較部531bと、デコーダ531cと、処理対象WAY出力部531dとを備える。レジスタ531aおよびインデックス比較部531bは、それぞれ、図9に示したレジスタ231aおよびインデックス比較部231bと同様の装置である。
デコーダ531cは、レジスタ531aに設定されているWAYに対応する信号をONにして処理対象WAY出力部531dに出力する回路である。処理対象WAY出力部531dは、インデックス比較部531bから出力された信号がONである場合に、デコーダ531cから出力された信号を処理状況出力部532へ転送する処理部である。
処理状況出力部532は、各エントリのインデックス比較部531bから出力された信号の論理和をとってMIB_INDEX_MCH信号として出力する処理部である。また、処理状況出力部532は、各エントリの処理対象WAY出力部531dから転送された信号の論理和をWAYごとにとってMIB_INDEX_MCH_WAY信号として出力する。
すなわち、MIB_INDEX_MCH信号は、要求アドレスと同一のインデックスを
有するデータブロックを処理対象とする処理がMIB530にて実行中である場合にON
となる。また、MIB_INDEX_MCH_WAY信号は、要求アドレスと同一のイン
デックスを有するデータブロックを処理対象とする処理がMIB530にて実行中である
場合に、処理に割り当てられているWAYに対応する信号がONになる。MIB_IND
EX_MCH信号は、制御部550に出力され、MIB_INDEX_MCH_WAY信
号は、リプレイスWAY選択部540に出力される。
リプレイスWAY選択部540は、ポート510から送信された要求アドレスに対応するデータブロックを格納すべきWAYを選択する処理部である。リプレイスWAY選択部540の構成を図3に示す。同図に示すように、リプレイスWAY選択部540は、LRU−RAM541と、WAY選択部542と、WAY使用判定部543とを有し、ポート510から要求アドレスが送信されると、そのインデックスをLRU−RAM541に入力する。
LRU−RAM541は、図10に示したLRU−RAM241と同様の装置であり、要求アドレスのインデックスが入力されると、そのインデックスに対応するセットを選択し、選択したセットに含まれる各WAYが最後にアクセスされた時間をWAY選択部542へ出力する。
WAY選択部542は、各WAYが最後にアクセスされた時間が入力されると、アクセスされた時間が最も古いWAYを選択し、そのWAYに対応するRPL−WAY信号をONにする。このとき、WAY選択部542は、入力された縮退情報とMIB_INDEX_MCH_WAY信号の論理和をWAYごとにとったDISABLE_WAY信号を参照し、固定故障等により使用不可とされているWAYとMIB530にて実行中の処理に割り当てられているWAYを選択対象から除外する。RPL−WAY信号は、制御部550に出力される。
上記のように最後にアクセスされてから最も時間が経過しているWAYをリプレイスWAYとして選択するリプレイスアルゴリズムをLRUアルゴリズムといい、非常に高いキャッシュのヒット率を実現することができる。上記のリプレイスWAY選択部540の構成によれば、MIB530にて実行中の処理に割り当てられているWAYを除外してLRUアルゴリズムに基づいてリプレイスWAYの選択を行っているので、予期しないキャッシュの消失の回避をキャッシュのヒット率を高く保ったまま実現することができる。
また、上記のリプレイスWAY選択部540の構成によれば、従来より固定故障等により縮退されたWAYを除外していた仕組みを拡張することによって、MIB530にて実行中の処理に割り当てられているWAYを除外する機能を容易に実現することができる。
なお、キャッシュメモリ300が最後にアクセスされた時間をLRU−RAM541にて記憶するのではなく、ヒット判定部520のタグメモリにて記憶するように構成することもできる。また、リプレイスアルゴリズムとして、LRUアルゴリズムに代えて他のアルゴリズムを採用することもできる。
WAY選択部542の構成の一例を図4に示す。同図は、WAY選択部542においてWAY0がリプレイスWAYとなるか否かを判定する部分の回路概略図である。
OR回路11の出力は、WAY1が選択対象外であるか、WAY1の最終アクセス時間がWAY0の最終アクセス時間よりも新しい場合、すなわち、WAY1がリプレイスWAYとして適していない場合にONとなる。同様に、OR回路12の出力は、WAY2がリプレイスWAYとして適していない場合にONとなり、OR回路13の出力は、WAY3がリプレイスWAYとして適していない場合にONとなる。
そして、AND回路14の出力は、OR回路11〜13の出力が全てONであり、WAY0が選択対象外でない場合にONとなる。WAY選択部542には、これと同様の回路がWAY数分だけ存在する。
WAY使用判定部543は、WAYが使用可能であるか否かを判定する処理部である。WAY使用判定部543は、DISABLE_WAY信号を参照し、全てのWAYが選択対象外である場合には、選択可能なリプレイスWAYが存在しないことを示すRPL−WAY_NOT_FOUND信号をONにする。
また、ヒット判定部520から入力されたHIT−WAY信号と、DISABLE_WAY信号を照合し、HIT−WAY信号に対応するWAYが選択対象外である場合には、HIT_WAY_IN_USE信号をONにする。
要求アドレスがヒット判定部520にていずれかのWAYにヒットした場合、単にキャッシュメモリ300上のデータブロックの読み書きを行うだけであれば、既に割り当てられている領域の操作を行うに過ぎないので、MIB530で進行中の処理を考慮せずに要求を実行することもできる。
しかしながら、要求を実行するために、MIB530のエントリを取得する必要がある場合には、新たにMIB530のエントリに登録する処理に割り当てるWAYが、既にMIB530のエントリに登録済みの処理に割り当てられているWAYと重複していると、先に完了した処理のキャッシュが後に完了した処理によって予期しないタイミングで上書きされ、キャッシュが消失する可能性がある。
HIT_WAY_IN_USE信号は、かかるキャッシュの消失を回避するために制御部550によって使用される。要求アドレスがヒット判定部520にていずれかのWAYにヒットした場合にMIB530のエントリを取得することが必要になるのは、例えば、プロセッサごとにキャッシュを備えるマルチプロセッサシステムにおいて他のキャッシュのデータブロックを無効化する必要が生じた場合等である。
WAY使用判定部543の構成の一例を図5に示す。AND回路21の出力は、RPL−WAY_NOT_FOUND信号であり、全てのWAYが選択対象外である場合にONとなる。AND回路22は、要求アドレスがヒット判定部520にていずれかのWAYにヒットし、そのWAYが選択対象外である場合に、そのWAYに対応する出力をONにする。OR回路23の出力は、HIT_WAY_IN_USE信号であり、AND回路22が出力するいずれかの信号がONの場合にONとなる。
制御部550は、ポート510から送信された要求に対応する各種制御を実行する制御部である。制御部550は、ポート510から要求を受信すると共に、上述の処理の結果としてヒット判定部520、MIB530およびリプレイスWAY選択部540から出力される各種信号の入力も受ける。そして、これらの信号の状態に応じて、要求への対処を変更する。
具体的には、ヒット判定部520から入力されたMISS信号がONの場合、すなわち、要求アドレスがキャッシュにヒットしなかった場合は、リプレイスWAY選択部540から入力されたRPL−WAY_NOT_FOUND信号がONであれば、全てのWAYが選択対象外であるため、要求をポート510に差し戻してリトライさせる。RPL−WAY_NOT_FOUND信号がOFFであれば、リプレイスWAY選択部540から入力されたRPL−WAY信号が示すリプレイスWAYを要求に割り当てて処理を実行する。
また、ヒット判定部520から入力されたHIT信号がONの場合、すなわち、要求アドレスがキャッシュにヒットした場合は、MIB530のエントリの取得が必要であり、かつ、リプレイスWAY選択部540から入力されたHIT−WAY_IN_USE信号がONであれば、キャッシュの消失を回避するため、要求をポート510に差し戻してリトライさせる。MIB530のエントリの取得が不要であるか、HIT−WAY_IN_USE信号がOFFであれば、ヒット判定部520から入力されたHIT−WAY信号が示すヒットWAYを使用して処理を実行する。
なお、HIT−WAY_IN_USE信号がONの場合は、キャッシュが短時間で消失する可能性があり、これによりキャッシュのヒット率を低下する恐れがあるので、MIB530のエントリの取得が必要であるか否かにかかわらず要求をリトライさせることとしてもよい。
次に、図1に示したメモリアクセス制御装置500の処理手順について説明する。図6は、図1に示したメモリアクセス制御装置500の処理手順を示すフローチャートである。同図は、制御部550が要求を受信した後、使用するWAYを選択するまでの処理手順を示している。
ポート510から送信された要求は、制御部550に受信される(ステップS201)。これと平行して、ポート510から送信された要求アドレスは、ヒット判定部520と、MIB530と、リプレイスWAY選択部540とに受信される。
要求アドレスを受信したヒット判定部520は、タグメモリを検索し、要求アドレスと同一のデータブロックが存在するか否かを調べ、その結果を制御部550とリプレイスWAY選択部540へ出力する(ステップS202)。要求アドレスを受信したMIB530は、要求アドレスと同一のインデックスを有するデータブロックを処理中のエントリの処理対象WAYを取得し、取得結果をリプレイスWAY選択部540へ出力する(ステップS203)。
そして、要求アドレスを受信したリプレイスWAY選択部540は、MIB530から通知された処理対象WAYを除外して、要求アドレスに対応するセットに属するWAYの中で最も置き換えに適しているWAYをリプレイスアルゴリズムによって選択し、その結果を制御部550へ出力する(ステップS204)。また、ヒット判定部520から通知されたヒットWAYが処理対象WAYに含まれるか否かを調べて、その結果も制御部550へ出力する(ステップS205)。
そして、制御部550は、要求アドレスがヒット判定部520のタグメモリにヒットした場合は(ステップS206肯定)、MIB530のエントリの取得が必要であり(ステップS207肯定)、ヒットWAYが処理対象WAYに含まれていれば(ステップS208肯定)、要求をポート510へ差し戻してリトライさせる。MIB530のエントリの取得が必要ないか(ステップS207否定)、ヒットWAYが処理対象WAYに含まれていなければ(ステップS208否定)、ヒット判定部520から入力されたヒットWAYをキャッシュの格納場所として処理を実行する(ステップS209)。
また、要求アドレスがヒット判定部520のタグメモリにヒットしなかった場合は(ステップS206否定)、全てのWAYがMIB530の処理対象WAYとなっていれば(ステップS210肯定)、要求をポート510へ差し戻してリトライさせる。さもなければ(ステップS210否定)、リプレイスWAY選択部540から入力されたリプレイスWAYをキャッシュの格納場所として処理を実行する(ステップS211)。
このように、本実施例にかかるメモリアクセス制御方式では、MIB530で進行中の処理で使用対象となっているWAYを除外してリプレイスWAYを選択し、全てのWAYが使用対象となっている場合にのみ要求をリトライさせるように構成したので、リトライによる性能の低下を最小限に抑えることができる。また、リプレイスWAYの選択が、常にリプレイスアルゴリズムに基づいて行われるように構成したので、キャッシュのヒット率を高く保つことができる。
以上のように、本発明にかかるメモリアクセス制御装置およびメモリアクセス制御方法は、MIBの動作による予期しないタイミングでのキャッシュの防止に有用であり、特に、リトライの発生を最小限に抑制し、キャッシュのヒット率を高く保つことが必要な場合に適している。
図1は、本実施例に係るメモリアクセス制御装置の構成を示す機能ブロック図である。 図2は、MIBの構成を示す機能ブロック図である。 図3は、リプレイスWAY選択部の構成を示す機能ブロック図である。 図4は、WAY選択部の構成の一例を示す回路概略図である。 図5は、WAY使用判定部の構成の一例を示す回路概略図である。 図6は、図1に示したメモリアクセス制御装置の処理手順を示すフローチャートである。 図7は、従来のメモリアクセス制御装置の構成を示す機能ブロック図である。 図8は、ヒット判定部の構成を示す機能ブロック図である。 図9は、MIBの構成を示す機能ブロック図である。 図10は、リプレイスWAY選択部の構成を示す機能ブロック図である。 図11は、図7に示したメモリアクセス制御装置の処理手順を示すフローチャートである。
11〜13 OR回路
14 AND回路
21、22 AND回路
23 OR回路
100 CPU
200〜203 メモリアクセス制御装置
210 ポート
220 ヒット判定部
221 タグメモリ
222 タグ比較部
230 MIB
231a レジスタ
231b インデックス比較部
232 処理状況出力部
240 リプレイスWAY選択部
241 LRU−RAM
242 WAY選択部
250 制御部
300 キャッシュメモリ
400 主記憶
500〜503 メモリアクセス制御装置
510 ポート
520 ヒット判定部
530 MIB
531a レジスタ
531b インデックス比較部
531c デコーダ
531d 処理対象WAY出力部
532 処理状況出力部
540 リプレイスWAY選択部
541 LRU−RAM
542 WAY選択部
543 WAY使用判定部
550 制御部

Claims (6)

  1. 複数の要求に係る情報を格納し、これらの要求を並列実行するためのバッファを有し、セットアソシアティブ方式でキャッシュ制御を行うメモリアクセス制御装置であって、
    当該のメモリアクセス制御装置にメモリアクセス要求が行われた場合に、該メモリアクセス要求の処理対象のデータブロックと同一セットのデータブロックを処理対象とする要求を前記バッファより選択し、選択された要求に割り当てられているWAYを出力する処理状況出力手段と、
    前記処理状況出力手段により出力されたWAYを除外して、前記メモリアクセス要求に割り当てるWAYを所定のリプレイスアルゴリズムに基づいて選択するリプレイスWAY選択手段と、
    前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記リプレイスWAY選択手段により選択されたWAYに前記データブロックが格納されるように制御する制御手段と
    を備え
    前記制御手段は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットした場合に、ヒットしたWAYが前記処理状況出力手段により出力されたWAYに含まれるならば(ただし、前記処理状況出力手段によって選択された要求のうち、前記ヒットしたWAYを割り当てられている要求の対象であるデータブロックと、前記メモリアクセス要求の処理対象であるデータブロックとが同一である場合を除く)、該メモリアクセス要求をリトライさせることを特徴とするメモリアクセス制御装置。
  2. 前記リプレイスアルゴリズムは、LRUアルゴリズムであることを特徴とする請求項1に記載のメモリアクセス制御装置。
  3. 前記制御手段は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記処理状況出力手段により出力されたWAYが使用可能な全てのWAYを含むならば、該メモリアクセス要求をリトライさせることを特徴とする請求項1に記載のメモリアクセス制御装置。
  4. 複数の要求に係る情報を格納し、これらの要求を並列実行するためのバッファを有し、セットアソシアティブ方式でキャッシュ制御を行うメモリアクセス制御装置におけるメモリアクセス制御方法であって、
    当該のメモリアクセス制御装置にメモリアクセス要求が行われた場合に、該メモリアクセス要求の処理対象のデータブロックと同一セットのデータブロックを処理対象とする要求を前記バッファより選択し、選択された要求に割り当てられているWAYを出力する処理状況出力工程と、
    前記処理状況出力工程により出力されたWAYを除外して、前記メモリアクセス要求に割り当てるWAYを所定のリプレイスアルゴリズムに基づいて選択するリプレイスWAY選択工程と、
    前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記リプレイスWAY選択工程により選択されたWAYに前記データブロックが格納されるように制御する制御工程と
    含み、
    前記制御工程は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットした場合に、ヒットしたWAYが前記処理状況出力工程により出力されたWAYに含まれるならば(ただし、前記処理状況出力工程によって選択された要求のうち、前記ヒットしたWAYを割り当てられている要求の対象であるデータブロックと、前記メモリアクセス要求の処理対象であるデータブロックとが同一である場合を除く)、該メモリアクセス要求をリトライさせることを特徴とするメモリアクセス制御方法。
  5. 前記リプレイスアルゴリズムは、LRUアルゴリズムであることを特徴とする請求項に記載のメモリアクセス制御方法。
  6. 前記制御工程は、前記メモリアクセス要求の処理対象のデータブロックがキャッシュにヒットしなかった場合に、前記処理状況出力工程により出力されたWAYが使用可能な全てのWAYを含むならば、該メモリアクセス要求をリトライさせることを特徴とする請求項に記載のメモリアクセス制御方法。
JP2007556731A 2006-01-31 2006-01-31 メモリアクセス制御装置およびメモリアクセス制御方法 Expired - Fee Related JP4297961B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/301574 WO2007088591A1 (ja) 2006-01-31 2006-01-31 メモリアクセス制御装置およびメモリアクセス制御方法

Publications (2)

Publication Number Publication Date
JPWO2007088591A1 JPWO2007088591A1 (ja) 2009-06-25
JP4297961B2 true JP4297961B2 (ja) 2009-07-15

Family

ID=38327178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556731A Expired - Fee Related JP4297961B2 (ja) 2006-01-31 2006-01-31 メモリアクセス制御装置およびメモリアクセス制御方法

Country Status (7)

Country Link
US (1) US20080301372A1 (ja)
EP (1) EP1980945B1 (ja)
JP (1) JP4297961B2 (ja)
KR (1) KR100987996B1 (ja)
CN (1) CN101336419A (ja)
DE (1) DE602006020631D1 (ja)
WO (1) WO2007088591A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010262496A (ja) 2009-05-08 2010-11-18 Fujitsu Ltd メモリ制御方法、メモリ制御装置
CN102521161B (zh) * 2011-11-21 2015-01-21 华为技术有限公司 一种数据的缓存方法、装置和服务器
US9715461B2 (en) 2014-03-03 2017-07-25 Kabushiki Kaisha Toshiba Cache memory control circuit and processor
US10095437B2 (en) * 2015-08-03 2018-10-09 Intel Corporation Memory access control
JP6770230B2 (ja) 2016-09-30 2020-10-14 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6947974B2 (ja) 2017-09-13 2021-10-13 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN108920192B (zh) * 2018-07-03 2021-07-30 中国人民解放军国防科技大学 基于分布式有限目录的缓存数据一致性实现方法及装置
US11914516B1 (en) * 2022-08-30 2024-02-27 Micron Technology, Inc. Memory side cache request handling

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5815877B2 (ja) * 1978-12-05 1983-03-28 富士通株式会社 バツフア・メモリ制御方式
JPS5914826B2 (ja) * 1979-11-26 1984-04-06 富士通株式会社 バツフアメモリ制御方式
JP3100807B2 (ja) * 1992-09-24 2000-10-23 松下電器産業株式会社 キャッシュメモリ装置
KR960006484B1 (ko) * 1992-09-24 1996-05-16 마쯔시다 덴기 산교 가부시끼가이샤 캐쉬메모리장치
JP2001051899A (ja) 1999-08-12 2001-02-23 Hitachi Ltd キャッシュメモリ装置
US6401175B1 (en) * 1999-10-01 2002-06-04 Sun Microsystems, Inc. Shared write buffer for use by multiple processor units
JP2002082832A (ja) * 2000-09-08 2002-03-22 Nec Corp キャッシュ更新方法及びキャッシュ更新制御システム並びに記録媒体
JP3953903B2 (ja) * 2002-06-28 2007-08-08 富士通株式会社 キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法

Also Published As

Publication number Publication date
US20080301372A1 (en) 2008-12-04
DE602006020631D1 (de) 2011-04-21
CN101336419A (zh) 2008-12-31
EP1980945B1 (en) 2011-03-09
EP1980945A4 (en) 2009-09-16
EP1980945A1 (en) 2008-10-15
WO2007088591A1 (ja) 2007-08-09
KR20080089622A (ko) 2008-10-07
KR100987996B1 (ko) 2010-10-18
JPWO2007088591A1 (ja) 2009-06-25

Similar Documents

Publication Publication Date Title
JP4297961B2 (ja) メモリアクセス制御装置およびメモリアクセス制御方法
US7380065B2 (en) Performance of a cache by detecting cache lines that have been reused
US7844778B2 (en) Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
TWI522802B (zh) 確保微處理器之快取記憶體層級之資料一致性的裝置與方法
US10725923B1 (en) Cache access detection and prediction
JP2018133086A (ja) ハイブリッドメモリーモジュール及びその動作方法
JP2018163659A (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
US8572325B2 (en) Dynamic adjustment of read/write ratio of a disk cache
US8589630B2 (en) Methods and apparatus for handling a cache miss
US8291259B2 (en) Delete of cache line with correctable error
US20100217937A1 (en) Data processing apparatus and method
JP2019536165A (ja) タグマッチングコマンドに応答する記憶回路
US20110167224A1 (en) Cache memory, memory system, data copying method, and data rewriting method
JP3236287B2 (ja) マルチプロセッサシステム
KR101472967B1 (ko) 라이트 백 동작을 수행하는 캐시 메모리, 이의 동작 방법, 및 이를 포함하는 시스템
JPWO2007096998A1 (ja) キャッシュメモリ装置およびキャッシュメモリ制御方法
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US20180165221A1 (en) No allocate cache policy
JP2016170729A (ja) メモリシステム
US6934810B1 (en) Delayed leaky write system and method for a cache memory
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
US11269785B2 (en) Cache systems of memory systems and data caching methods of cache systems
JP6784033B2 (ja) 方法、キャッシュシステム及びデータ監視部
US20080168232A1 (en) Cache Memory and Control Method Thereof
JPH0773106A (ja) キャッシュメモリ

Legal Events

Date Code Title Description
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: 20090407

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees