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

キャッシュシステム Download PDF

Info

Publication number
JP5104139B2
JP5104139B2 JP2007232606A JP2007232606A JP5104139B2 JP 5104139 B2 JP5104139 B2 JP 5104139B2 JP 2007232606 A JP2007232606 A JP 2007232606A JP 2007232606 A JP2007232606 A JP 2007232606A JP 5104139 B2 JP5104139 B2 JP 5104139B2
Authority
JP
Japan
Prior art keywords
cache
data
core
entry
caches
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
JP2007232606A
Other languages
English (en)
Other versions
JP2009064308A (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
Priority to JP2007232606A priority Critical patent/JP5104139B2/ja
Publication of JP2009064308A publication Critical patent/JP2009064308A/ja
Application granted granted Critical
Publication of JP5104139B2 publication Critical patent/JP5104139B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、キャッシュシステムに関する。
コンピュータシステムにおいては一般に、主記憶とは別に小容量で高速なキャッシュメモリが設けられる。主記憶に記憶される情報の一部をキャッシュにコピーしておくことで、この情報をアクセスする場合には主記憶からではなくキャッシュから読み出すことで、高速な情報の読み出しが可能となる。
キャシュは複数のキャッシュラインを含み、主記憶からキャッシュへの情報のコピーはキャッシュライン単位で実行される。主記憶のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュの容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
メモリ空間上のあるアドレスに最初のアクセスが実行されると、そのアドレスの情報(データやプログラム)をキャシュ内の対応するキャッシュラインにコピーする。同一アドレスに対して次のアクセスを実行する場合にはキャシュから直接に情報を読み出す。一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュのインデックスとなり、それより上位に位置する残りのビットがキャッシュのタグとなる。
データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、キャッシュ中の対応するインデックスのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンが一致するか否かを判断する。一致しない場合にはキャッシュミスとなる。一致する場合には、キャッシュヒットとなり、当該インデックスに対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)がアクセスされる。
各キャッシュラインに対して1つだけタグを設けたキャッシュの構成を、ダイレクトマッピング方式と呼ぶ。各キャッシュラインに対してN個のタグを設けたキャッシュの構成をNウェイセットアソシアティブと呼ぶ。ダイレクトマッピング方式は1ウェイセットアソシアティブとみなすことができる。
キャッシュミスが発生した場合に、主記憶にアクセスすることによるペナルティーを軽減するために、キャッシュメモリを多階層化したシステムが用いられる。例えば、1次キャッシュと主記憶との間に、主記憶よりは高速にアクセスできる2次キャッシュを設けることにより、1次キャッシュにおいてキャッシュミスが発生した場合に、主記憶にアクセスが必要になる頻度を低くして、キャッシュミス・ペナルティーを軽減することができる。
従来、プロセッサにおいては動作周波数の向上やアーキテクチャの改良により処理速度を向上させてきた。しかし近年、周波数をこれ以上高くすることには技術的な限界が見え始めており、複数のプロセッサを用いたマルチプロセッサ構成により処理速度の向上を目指す動きが強くなっている。
複数のプロセッサが存在するシステムは、各々がキャッシュを有する既存のシングルプロセッサコアを複数個設け、それらを単純に繋げることで実現可能である。このような構成は、設計コストを低く抑えることができるが、キャッシュの使用効率やキャッシュの一貫性に関して問題がある。
下記の特許文献1には、ネットワークで相互に接続された複数のプロセッサエレメントの各々が、処理装置と、その処理装置で実行される命令列とその命令列で使用されるデータを保持するローカルメモリと、該ネットワークを介して他のプロセッサエレメントへデータを送信する送信ユニットと、該ネットワークを介して他のプロセッサエレメントから転送されたデータを受信する受信ユニットと、該処理装置が要求した、そのローカルメモリに保持されているデータまたはそのローカルメモリに記憶されるべきデータを一時的に保持するための第1のキャッシュメモリと、該受信ユニットにより受信され、該ローカルメモリに記憶されるべきデータを一時的に保持するための第2のキャッシュメモリと、該受信ユニットによりデータが受信されたことに応答して、そのデータを該第2のキャッシュメモリに書き込み、該処理装置からの、ローカルメモリ内データの読み出し要求に応答して、該第1、第2のキャッシュメモリの内、そのいずれか一方にその要求の対象とされるデータがあるか否かを検出し、いずれか一方にそのデータがあるときには、そのデータをその一方のキャッシュメモリから読み出すキャッシュアクセス制御手段とを有する並列計算機が記載されている。
また、下記の特許文献2には、プロセッサとキャッシュメモリとを有する一つ以上のプロセッサモジュールと、前記プロセッサモジュールにより共有されるメインメモリを有するメモリモジュールと、前記一つ以上のプロセッサモジュールと前記メモリモジュールとを相互に接続する結合手段とを備えるマルチプロセッサシステムにおいて、前記プロセッサモジュール内のキャッシュメモリ間のデータのコヒーレンシを維持するキャッシュコヒーレンシ制御の際のデータの単位であるラインサイズが、前記結合手段を介してメインメモリのデータを転送する際のデータの単位である転送サイズのn倍(nは2以上の整数)であって、前記プロセッサモジュールは、前記ラインサイズの値を前記キャッシュコヒーレンシ制御の際のデータの単位としてキャッシュメモリを制御するキャッシュ制御手段を有し、前記プロセッサモジュールは、その中のプロセッサが発行したデータ要求が自己のキャッシュメモリでキャッシュミスを起こしたときには、前記プロセッサモジュールと前記メモリモジュールとにデータを要求するコヒーレント・リード要求を発行し、前記メモリモジュールのみにデータを要求するノン・コヒーレント・リード要求を、(n−1)回だけ発行することを特徴とするデータ要求発行の制御手段を有することを特徴とするマルチプロセッサシステムが記載されている。
また、下記の特許文献3には、データの転送を行う共有バスと、この共有バスに接続され、データを保持する共有メモリと、前記共有バスに接続され、データを保持するデータ保持部、及び、このデータ保持部に保持されたデータの情報を保持するタグ保持部を備えた複数のキャッシュメモリと、この複数のキャッシュメモリのうち一のキャッシュメモリに接続され、必要なデータを前記キャッシュメモリに要求して所定の処理を行う複数のプロセッサ(PE)と、を備えたマルチプロセッサを制御する方法において、前記複数のキャッシュメモリのうちの所定のキャッシュメモリで、他のキャッシュメモリと共有状態にあってかつ共有メモリに対して更新されているデータがリプレイスされるとき、前記データを共有している前記他のキャッシュメモリのうちの1つのキャッシュメモリのタグ保持部に、共有メモリに対して更新されている旨の情報を保持させ、前記共有メモリへの前記更新されているデータの書き戻しを行わないことを特徴とするマルチプロセッサの制御方法が記載されている。
特開平6−103244号公報 特開2003−30048号公報 特開平9−185547号公報
本発明の目的は、複数の処理装置に一対一に複数のキャッシュを接続した場合に、複数のキャッシュ間で効率的にデータ転送を行うことができるキャッシュシステムを提供することである。
本発明のキャッシュシステムは、複数の処理装置と、前記複数の処理装置に一対一に接続された複数のキャッシュと、前記複数のキャッシュに接続され、前記複数のキャッシュ間のデータ通信を行うネットワークと、前記キャッシュ毎に設けられ、前記キャッシュが前記ネットワークに対してデータ通信するための複数のバッファとを有し、前記処理装置が要求したデータが、一のキャッシュでミスした場合、前記複数のバッファの状態に応じて、前記キャッシュが前記ネットワークを介してデータ通信し、前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記最も最近使用されていないキャッシュのエントリに上書きし、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きすることを特徴とする。
バッファの状態に応じて、複数のキャッシュ間で効率的にデータ転送を行うことができ、トラフィックの増大を防止することができる。
図1は、共有分散キャッシュシステムの構成例を示す図である。この共有分散キャッシュシステムは、3個のコア(プロセッサ:処理装置)101〜103、3個のコア101〜103に一対一に対応する3個の3ウェイ1次キャッシュ111〜113、キャッシュ111〜113に接続されるキャッシュ間接続コントローラ(ICC)120、及びメインメモリ(又は2次キャッシュ)130を含む。コア101〜103はそれぞれ、自己に直接に接続されるキャッシュ(自コアキャッシュ)を上位階層キャッシュとしてアクセス可能である。この共有分散キャッシュシステムでは、さらに、他のコアのキャッシュ(他コアキャッシュ)を下位階層キャッシュとしてアクセス可能なように構成される。すなわち、例えばコア101から見たときに、キャッシュ111を上位階層キャッシュとしてアクセス可能であるとともに、さらに他コアキャッシュ112及び113を下位階層キャッシュとしてアクセス可能なように構成される。このような下位階層キャッシュをアクセスする経路は、キャッシュ間接続コントローラ120を介して提供される。
キャッシュ間接続コントローラ120は、第1のLRU情報121〜123及び第2のLRU情報129を記憶する情報メモリを有する。情報メモリは、キャッシュ間接続コントローラ120の外にあってもよい。第1のLRU情報121は、キャッシュ111のエントリa,b,c及び他コアキャッシュ112及び113のグループxの最古順を示し、「0」が最古、「2」が最新を示す。すなわち、第1のLRU情報121は、自己のキャッシュ111の3個のエントリa,b,cに、n個(=1個)の他コアキャッシュグループxを追加したLRU情報である。
図2は、図1の第1のLRU情報121〜123及び第2のLRU情報129の詳細を示す図である。第1のLRU情報122は、第1のLRU情報121と同様に、キャッシュ112のエントリa,b,c及び他コアキャッシュ111及び113のグループxの最古順を示す。第1のLRU情報123も、第1のLRU情報121と同様に、キャッシュ113のエントリa,b,c及び他コアキャッシュ111及び112のグループxの最古順を示す。第1のLRU情報121〜123を2項関係方式によりエンコードすると、それぞれ6ビットになる。
コア101はコアAであり、キャッシュ111はキャッシュAである。コア102はコアBであり、キャッシュ112はキャッシュBである。コア103はコアCであり、キャッシュ113はキャッシュCである。
第2のLRU情報129は、3個のコア101〜103間での自己のキャッシュ111〜113に対する使用古さ順を示し、AがキャッシュA(111)のLRU情報、BがキャッシュB(112)のLRU情報、CがキャッシュC(113)のLRU情報である。第2のLRU情報129を2項関係方式によりエンコードすると、3ビットになる。したがって、LRU情報121〜123、129の合計は、6+6+6+3=21ビットになり、図15のシステムのビット数より少なくなる。第1のLRU情報121〜123の情報メモリは、各キャッシュ111〜113のローカルなLRU情報に、他コアキャッシュグループが1ウェイ増えたとみて、各キャッシュ毎に第1のLRU情報121〜123を保持する。
図3は、共有分散キャッシュシステムの他の構成例を示す図である。以下、図3が図1と異なる点を説明する。この共有分散キャッシュシステムは、6個のコア101〜106、6個のコア101〜106に一対一に対応する6個の1次キャッシュ111〜116、キャッシュ111〜116に接続されるキャッシュ間接続コントローラ(ICC)120、及びメインメモリ(又は2次キャッシュ)130を含む。キャッシュ111〜114及び116は3ウェイであり、キャッシュ115は2ウェイである。コア101〜106はそれぞれ、自コアキャッシュ111〜116を上位階層キャッシュとしてアクセス可能である。この共有分散キャッシュシステムでは、さらに、他コアキャッシュを下位階層キャッシュとしてアクセス可能なように構成される。すなわち、例えばコア101から見たときに、キャッシュ111を上位階層キャッシュとしてアクセス可能であるとともに、さらに他コアキャッシュ112及び113のグループx、他コアキャッシュ114及び115のグループy、他コアキャッシュ116のグループzを下位階層キャッシュとしてアクセス可能なように構成される。
キャッシュ間接続コントローラ120は、第1のLRU情報121〜126及び第2のLRU情報129を記憶する情報メモリを有する。第1のLRU情報121は、キャッシュ111のエントリa,b,c、他コアキャッシュ112及び113のグループx、他コアキャッシュ114及び115のグループy、他コアキャッシュ116グループzの最古順を示し、「0」が最古、「5」が最新を示す。すなわち、第1のLRU情報121は、自己のキャッシュ111の3個のエントリa,b,cに、n個(=3個)の他コアキャッシュグループx,y,zを追加したLRU情報である。
図4は、図3の第1のLRU情報121〜126及び第2のLRU情報129の詳細を示す図である。第1のLRU情報122は、第1のLRU情報121と同様に、キャッシュ112のエントリa,b,c、n個(=3個)の他コアキャッシュ111及び113のグループx、他コアキャッシュ114及び115のグループy、他コアキャッシュ116のグループzの最古順を示す。第1のLRU情報123は、キャッシュ113のエントリa,b,c、n個(=3個)の他コアキャッシュ111及び112のグループx、他コアキャッシュ114及び115のグループy、他コアキャッシュ116のグループzの最古順を示す。第1のLRU情報124は、キャッシュ114のエントリa,b,c、n個(=2個)の他コアキャッシュ111及び112のグループx、他コアキャッシュ113、115及び116のグループyの最古順を示す。第1のLRU情報125は、キャッシュ115の2個のエントリa,b、n個(=3個)の他コアキャッシュ111及び112のグループx、他コアキャッシュ113及び114のグループy、他コアキャッシュ116のグループzの最古順を示す。第1のLRU情報126は、キャッシュ116のエントリa,b,c、n個(=3個)の他コアキャッシュ111及び112のグループx、他コアキャッシュ113及び114のグループy、他コアキャッシュ115のグループzの最古順を示す。グループの組み合わせは、任意に決めることができる。
第1のLRU情報121〜123,126を2項関係方式によりエンコードすると、それぞれ15ビットになる。第1のLRU情報124は、2個の他コアキャッシュグループx及びyの情報を有するので、2項関係方式によりエンコードすると10ビットになる。第1のLRU情報125は、キャッシュ115の2個のエントリa及びbの情報を有するので、2項関係方式によりエンコードすると10ビットになる。
コア101はコアAであり、キャッシュ111はキャッシュAである。コア102はコアBであり、キャッシュ112はキャッシュBである。コア103はコアCであり、キャッシュ113はキャッシュCである。コア104はコアDであり、キャッシュ114はキャッシュDである。コア105はコアEであり、キャッシュ115はキャッシュEである。コア106はコアFであり、キャッシュ116はキャッシュFである。
第2のLRU情報129は、6個のコア101〜106間での自己のキャッシュ111〜116に対する使用古さ順を示し、AがキャッシュA(111)のLRU情報、BがキャッシュB(112)のLRU情報、CがキャッシュC(113)のLRU情報、DがキャッシュD(114)のLRU情報、EがキャッシュE(115)のLRU情報、FがキャッシュF(116)のLRU情報である。第2のLRU情報129を2項関係方式によりエンコードすると、15ビットになる。したがって、LRU情報121〜126、129の合計は、15+15+15+10+10+15+15=95ビットになり、コア数が多いときにはビット数を少なくできる効果が大きい。
図5は、共有分散キャッシュシステムにおけるデータロードアクセス動作を示すフローチャートである。以下、図1のシステムを例に説明する。ステップS1において、まず、複数のコア101〜103の何れか1つのコアが、自己に直接に接続されたキャッシュ(自コアキャッシュ)へロード要求を発行する。
ステップS2において、ロード要求を受け取ったキャッシュは、要求対象のデータがキャッシュ内に存在するか否か、すなわちキャッシュヒットであるか否かを判定する。キャッシュヒットである場合には、ステップS3において、自コアキャッシュから要求対象のデータを読み出して、ロード要求を発行したコアにデータを返送する。
ステップS2においてキャッシュミスである場合には、ステップS4に進む。このステップS4において、キャッシュミスが検出されたキャッシュの下に、下位階層キャッシュが存在するか否かを判定する。例えばステップS2においてキャッシュミスが検出されてステップS4に進んだ場合には、キャッシュミスが検出されたキャッシュはキャッシュ111〜113の何れか1つであるので、この場合、他の2つのキャッシュが下位階層キャッシュとして存在する。下位階層キャッシュが存在する場合には、ステップS5に進む。
ステップS5において、キャッシュ階層が1つ下の他コアキャッシュにアクセスする。ステップS6において、アクセス要求を受け取ったキャッシュは、要求対象のデータがキャッシュ内に存在するか否か、すなわちキャッシュヒットであるか否かを判定する。キャッシュミスである場合には、ステップS4に戻り、上記の処理を繰り返す。
ステップS6においてキャッシュヒットである場合には、ステップS7に進む。このステップS7において、キャッシュデータの交換処理を行う。すなわち、キャッシュヒットしたキャッシュからアクセス対象のキャッシュライン(アクセス対象のデータ)を自コアキャッシュに移動し、コアへデータを返送する。この際に、キャッシュラインの自コアキャッシュへの移動に伴い、自コアキャッシュから追い出されるキャッシュラインを他コアに移動する。ステップS7の詳細は、後に図6を参照しながら説明する。
またステップS4において、下位階層キャッシュが存在しないと判定された場合には、ステップS8に進む。例えばステップS6においてキャッシュミスが検出されてステップS4に進んだ際に、このキャッシュミスが検出されたキャッシュが既に最下層のキャッシュであった場合、その下層にはメインメモリ130しか存在しない。このような場合には、ステップS8で、メインメモリ130から要求対象のデータを読み出し、自コアキャッシュにアロケート(1キャッシュライン分の要求対象のデータを自コアキャッシュにコピー)するとともに、ロード要求を発行したコアにデータを返送する。またこの動作に伴い自コアキャッシュから追い出されたキャッシュラインは、例えば下位階層キャッシュに移動される。ステップS8の詳細は、後に図10を参照しながら説明する。
上記の動作フローにおいて、ステップS7はキャッシュとキャッシュとの間のデータ転送に関連する動作であり、ステップS8はメインメモリ130とキャッシュとの間のデータ転送に関連する動作である。
図6は、図5のステップS7の交換処理を示すフローチャートである。まず、ステップA1では、図5のステップS6の判断により、下位階層キャッシュとして利用可能な他コアキャッシュにヒットしたと判断される。
次に、ステップA2では、キャッシュ間接続コントローラ120は判定処理を行う。すなわち、ヒットした他コアが所属するグループの自コアローカルの第1のLRU情報が最新であり、かつ、ヒットした他コアキャッシュの第1のLRU情報のエントリが最新でないことの条件を満たすか否かを判定する。条件を満たす場合にはステップA4に進み、条件を満たさない場合にはステップA7に進む。
ステップA4では、キャッシュ間接続コントローラ120は自コアキャッシュ及び他コアキャッシュ間で交換処理を行う。すなわち、自コアキャッシュの最古エントリと他コアキャッシュのヒットしたエントリを交換する。
次に、ステップA5では、キャッシュ間接続コントローラ120はLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの交換されたエントリを最新に更新し、他コアの第1のLRU情報については他コアキャッシュの交換されたエントリを最古に更新し、第2のLRU情報については自コアキャッシュが最新となるように更新する。その後、ステップA6に進み、処理を終了する。
ステップA7では、自コアはキャッシュ間接続コントローラ120を介して参照処理を行う。すなわち、他コアキャッシュのヒットしたエントリを直接参照する(読み出す)。
次に、ステップA3では、キャッシュ間接続コントローラ120はLRU更新処理を行う。すなわち、自コアの第1のLRU情報についてはヒットした他コアキャッシュが所属するグループを最新に更新し、他コアの第1のLRU情報についてはヒットした他コアキャッシュのエントリが最新であれば2番目に新しいものと交換するように更新し、第2のLRU情報についてはヒットした他コアキャッシュが最新となるように更新する。その後、ステップA6に進み、処理を終了する。
図7〜図9は、図1及び図2のシステムにおける図6の交換処理の例を示す図である。図7は、初期状態を示す。第1のLRU情報121〜123及び第2のLRU情報129は、0が最古であり、値が大きくなるほど新しいことを示す。
まず、ステップA1において、自コアA(101)から他コアB(102)のキャッシュB(112)のエントリcにヒットした場合を説明する。
次に、ステップA2では、ヒットした他コアキャッシュB(112)が所属するグループxの自コアローカルの第1のLRU情報121が1であり、最新でないので、ステップA7に進む。ステップA7では、他コアキャッシュB(112)のヒットしたエントリcを直接参照する。
次に、ステップA3では、図8に示すように、自コアA(101)の第1のLRU情報121についてはヒットした他コアキャッシュB(112)が所属するグループxを最新(値「3」)に更新し、他コアB(102)の第1のLRU情報122についてはヒットした他コアキャッシュB(112)のエントリcが最新(図7の値「3」)であるので、2番目に新しいエントリxと交換するように更新し、第2のLRU情報129についてはヒットした他コアキャッシュB(112)が最新となるように更新する。その後、ステップA6に進み、処理を終了する。
次に、ステップA1において、再度、自コアA(101)から他コアB(102)のキャッシュB(112)のエントリcにヒットした場合を説明する。
次に、ステップA2では、ヒットした他コアキャッシュB(112)が所属するグループxの自コアローカルの第1のLRU情報121が最新(値「3」)であり、かつ、ヒットした他コアキャッシュB(112)の第1のLRU情報122のエントリcが最新でない(値「2」)ので、ステップA4に進む。ステップA4では、自コアキャッシュA(111)の最古エントリbと他コアキャッシュB(112)のヒットしたエントリcを交換する。
次に、ステップA5では、図9に示すように、自コアA(101)の第1のLRU情報121については自コアキャッシュA(111)の交換されたエントリbを最新に更新し、他コアB(102)の第1のLRU情報122については他コアキャッシュB(112)の交換されたエントリcを最古に更新し、第2のLRU情報129については自コアキャッシュA(111)が最新となるように更新する。その後、ステップA6に進み、処理を終了する。
以上のように、第1回目に他コアキャッシュBのエントリcにヒットした場合には、交換処理を行わず、第2回目に他コアキャッシュBのエントリcにヒットした場合に交換処理行うことにより、無駄な交換処理をなくし、トラフィックを減少させることができる。すなわち、自コアAが連続してアクセスし、かつ、ヒットした他コアキャッシュBで現在あまり使っていないエントリcのみ交換することにより、効率的な交換処理を行うことができる。
図10は、図5のステップS8の追い出し処理を示すフローチャートである。まず、ステップB1では、図5のステップS4の判断により、下位階層キャッシュとして利用可能な他コアキャッシュに全てミスしたと判断される。
次に、ステップB2では、キャッシュ間接続コントローラ120は判定処理を行う。すなわち、第2のLRU情報を参照し、自コアが最近そのインデックスのエントリを最も使っていないコアでないことの条件を満たすか否かを判定する。条件を満たす場合にはステップB4に進み、条件を満たさない場合にはステップB7に進む。
ステップB4では、キャッシュ間接続コントローラ120は自コアキャッシュから他コアキャッシュへ追い出し処理を行う。すなわち、最近最も使われていない他コアキャッシュの最古エントリに自コアキャッシュの最古エントリ(他コアグループ用エントリを含まないものの中で最古エントリ)を移動する。
次に、ステップB5では、キャッシュ間接続コントローラ120はLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、他コアの第1のLRU情報については追い出し先の他コアキャッシュの最古エントリを最新に更新し、第2のLRU情報については自コアキャッシュが最新に、追い出し先の他コアキャッシュを2番目に新しいものとなるように更新する。その後、ステップB6に進む。
ステップB7では、キャッシュ間接続コントローラ120は破棄処理を行う。すなわち、自コアキャッシュの最古エントリを破棄する。具体的には、このステップでは何も処理せず、後のステップB6の上書き処理により自コアキャッシュの最古エントリが破棄される。
次に、ステップB3では、キャッシュ間接続コントローラ120はLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、第2のLRU情報については自コアキャッシュが最新になるように更新する。その後、ステップB6に進む。
ステップB6では、キャッシュ間接続コントローラ120は自コアキャッシュの最古エントリ(LRU情報更新後の最新エントリ)にメインメモリ130から読み出したデータを上書きし、自コアはそのデータを取得する。以上で、処理を終了する。
図11〜図13は、図1及び図2のシステムにおける図10の追い出し処理の例を示す図である。図11は、初期状態を示す。第1のLRU情報121〜123及び第2のLRU情報129は、0が最古であり、値が大きくなるほど新しいことを示す。
まず、ステップB1において、自コアA(101)のアクセスが全ての他コアキャッシュでミスした場合を説明する。
次に、ステップB2では、第2のLRU情報129を参照すると、自コアキャッシュA(111)が最近最も使っていないので、ステップB7を介してステップB3に進む。
ステップB3では、図12に示すように、自コアA(101)の第1のLRU情報121については自コアキャッシュA(111)の最古エントリbを最新に更新し、第2のLRU情報129については自コアキャッシュAが最新になるように更新する。
次に、ステップB6では、自コアキャッシュA(111)の最古エントリ(LRU情報更新後の最新エントリ)bにメインメモリ130から読み出したデータを上書きする。以上で処理を終了する。
次に、ステップB1において、再度、自コアA(101)のアクセスが全ての他コアキャッシュでミスした場合を説明する。
次に、ステップB2では、第2のLRU情報129を参照すると、他コアキャッシュC(113)が最近最も使っていないので、ステップB4に進む。
ステップB4では、最近最も使われていない他コアキャッシュC(113)の最古エントリbに自コアキャッシュA(111)の最古エントリ(他コアグループ用エントリを含まないものの中で最古エントリ)aを移動する。
次に、ステップB5では、図13に示すように、自コアA(101)の第1のLRU情報121については自コアキャッシュA(111)の最古エントリaを最新に更新し、他コアC(103)の第1のLRU情報123については追い出し先の他コアキャッシュC(113)の最古エントリbを最新に更新し、第2のLRU情報129については自コアキャッシュA(111)が最新に、追い出し先の他コアキャッシュC(113)を2番目に新しいものとなるように更新する。
次に、ステップB6では、自コアキャッシュA(111)の最古エントリ(LRU情報更新後の最新エントリ)aにメインメモリ130から読み出したデータを上書きする。以上で処理を終了する。
以上のように、第1回目に全ての他コアキャッシュでミスした場合には、追い出し処理を行わず、第2回目に全ての他コアキャッシュでミスした場合に追い出し処理行うことにより、無駄な追い出し処理をなくし、トラフィックを減少させることができる。すなわち、自コアAが連続してキャッシュミスし、かつ、他コアキャッシュが最古であるときのみ追い出し処理することにより、効率的な追い出し処理を行うことができる。
第2のLRU情報129は最新のアクセスのみしか保持していないが、完全な最古順を保持しても構わない。最新のアクセスのみしか保持しない理由は、ビット数削減のためである。また、第2のLRU情報129の更新時に追い出し先コアを2番目に新しいものに更新して、追い出し先を持ち回りすることで、完全な最古順を保持した場合に比べた性能低下を抑えられる。
図14は、本発明の実施形態による共有分散キャッシュシステムの構成例を示す図である。以下、図14が図1と異なる点を説明する。情報メモリ1421及び判定回路1424及びキャッシュ間接続ネットワーク(ICN)1425は、図1のキャッシュ間接続コントローラ120に対応する。情報メモリ1421は、LRU情報1422及び送受信バッファ情報1423を記憶する。LRU情報1422は、図1のLRU情報121〜123及び129に対応する。キャッシュ間接続ネットワーク1425は、メインメモリ130及びキャッシュ111〜113に接続される。判定回路1424は、情報メモリ1421内のLRU情報1422又は送受信バッファ情報1423に応じてキャッシュ間接続ネットワーク1425の通信を制御する。
送信バッファA(1401)及び受信バッファA(1411)は、キャッシュA(111)内に設けられる。送信バッファ1401は、キャッシュ111内のデータをキャッシュ間接続ネットワーク1425を介してキャッシュ112又は113に送信するためのバッファである。受信バッファ1411は、キャッシュ112又は113内のデータをキャッシュ間接続ネットワーク1425を介してキャッシュ111に受信するためのバッファである。
送信バッファB(1402)及び受信バッファB(1412)は、キャッシュB(112)内に設けられる。送信バッファ1402は、キャッシュ112内のデータをキャッシュ間接続ネットワーク1425を介してキャッシュ111又は113に送信するためのバッファである。受信バッファ1412は、キャッシュ111又は113内のデータをキャッシュ間接続ネットワーク1425を介してキャッシュ112に受信するためのバッファである。
送信バッファC(1403)及び受信バッファC(1413)は、キャッシュC(113)内に設けられる。送信バッファ1403は、キャッシュ113内のデータをキャッシュ間接続ネットワーク1425を介してキャッシュ111又は112に送信するためのバッファである。受信バッファ1413は、キャッシュ111又は112内のデータをキャッシュ間接続ネットワーク1425を介してキャッシュ113に受信するためのバッファである。
送受信バッファ情報1423は、送信バッファ1401、受信バッファ1411、送信バッファ1402、受信バッファ1412、送信バッファ1403及び受信バッファ1413の各バッファが閾値を超えて埋まっているか否かを示す使用量情報である。
図15は図14のキャッシュシステムにおける図5のステップS7の交換処理を示すフローチャートであり、図16は図15のステップC13の玉突き処理の例を示す図であり、図17は図15のステップC11の移動処理の例を示す図である。
まず、ステップC1では、図5のステップS6の判断により、下位階層キャッシュとして利用可能な他コアキャッシュにヒットしたと判断される。
次に、ステップC2では、図6のステップA2と同様に、判定回路1424はLRU判定処理を行う。すなわち、ヒットした他コアが所属するグループの自コアローカルの第1のLRU情報が最新であり、かつ、ヒットした他コアキャッシュの第1のLRU情報のエントリが最新でないことの条件を満たすか否かを判定する。条件を満たす場合にはステップC8に進み、条件を満たさない場合にはステップC7に進む。
ステップC8では、判定回路1424は第1のバッファ判定処理を行う。すなわち、ヒットした他コアキャッシュから自コアキャッシュへのバッファが閾値を越えて埋まっているか否かを判定する。例えば、ヒットした他コアバッファ112から自コアバッファ111へのデータ転送を行うため、送受信バッファ情報1423を参照し、他コアバッファ112の送信バッファ1402又は自コアバッファ111の受信バッファ1411が閾値を越えて埋まっているか否かを判定する。送信バッファ1402又は受信バッファ1411の少なくともいずれかが埋まっていればステップC7に進み、送信バッファ1402及び受信バッファ1411の両方が埋まっていなければステップC9へ進む。
ステップC7では、図6のステップA7と同様に、自コアはキャッシュ間接続ネットワーク1425を介して参照処理を行う。すなわち、他コアキャッシュのヒットしたエントリを直接参照する(読み出す)。
次に、ステップC3では、図6のステップA3と同様に、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報についてはヒットした他コアが所属するグループを最新に更新し、他コアの第1のLRU情報についてはヒットした他コアのエントリが最新であれば2番目に新しいものと交換するように更新し、第2のLRU情報についてはヒットした他コアキャッシュが最新となるように更新する。その後、ステップC6に進み、処理を終了する。
ステップC9では、判定回路1424は第2のバッファ判定処理を行う。すなわち、自コアキャッシュからヒットした他コアキャッシュへのバッファが閾値を越えて埋まっているか否かを判定する。例えば、自コアバッファ111からヒットした他コアバッファ112へのデータ転送を行うため、送受信バッファ情報1423を参照し、自コアバッファ111の送信バッファ1401又は他コアバッファ112の受信バッファ1412が閾値を越えて埋まっているか否かを判定する。送信バッファ1401又は受信バッファ1412の少なくともいずれかが埋まっていれば交換処理ができないためステップC10に進み、送信バッファ1401及び受信バッファ1412の両方が埋まっていなければ交換処理可能であるためステップC4へ進む。
ステップC4では、図6のステップA4と同様に、キャッシュシステムは自コアキャッシュ及び他コアキャッシュ間で交換処理を行う。例えば、図16及び図17に示すように、自コアキャッシュ111の最古エントリbと他コアキャッシュ112のヒットしたエントリcを交換する。すなわち、データ転送処理1611により、他コアキャッシュ112のヒットエントリcのデータは自コアキャッシュ111の最古エントリbに移動され、データ転送処理1612により、自コアキャッシュ111の最古エントリbのデータは他コアキャッシュ112のヒットエントリcに移動される。
次に、ステップC5では、図6のステップA5と同様に、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアの交換されたエントリを最新に更新し、他コアの第1のLRU情報については他コアの交換されたエントリを最古に更新し、第2のLRU情報については自コアキャッシュが最新となるように更新する。その後、ステップC6に進み、処理を終了する。
ステップC10では、判定回路1424は第3のバッファ判定処理を行う。すなわち、LRU情報1422及び送受信バッファ情報1423を参照することにより、自コアのバッファが最古であり、又は、自コアのバッファから最古コアのバッファへの送受信バッファが閾値を越えて埋まっているか否かを判定する。自コアのバッファが最古であるときには、玉突き処理(ステップC13)を行う必要がないので、ステップC11へ進む。自コアのバッファから最古コアのバッファへの送受信バッファが閾値を越えて埋まっているときには、玉突き処理(ステップC13)を行うことができないので、ステップC11に進む。自コアのバッファが最古でなく、かつ、自コアのバッファから最古コアのバッファへの送受信バッファが閾値を越えて埋まっていないときには、玉突き処理を行うためにステップC13に進む。
ステップC13では、キャッシュシステムは玉突き処理を行う。すなわち、図16に示すように、データ転送処理1613により、最古コア103のキャッシュ113の最古エントリcに自コア101のキャッシュ111の最古エントリbを上書きし、データ転送処理1611により、自コア101のキャッシュ111の最古エントリbに他コア102のキャッシュ112のヒットしたエントリcを上書きし、該他コア102のキャッシュ112のヒットしたエントリcを無効化する。最古コアは第2のLRU情報129を基に判断し、最古エントリは第1のLRU情報121〜123を基に判断することができる。
図16に示すように、ヒットした他コアキャッシュ112から自コアキャッシュ111への通信パス1601の送信バッファ1402及び受信バッファ1411が閾値を越えて埋まっておらず、かつ、自コアキャッシュ111からヒットした他コアキャッシュ112への通信パス1602の送信バッファ1401及び受信バッファ1412が閾値を越えて埋まっており、かつ、自コアキャッシュ111から最古コアキャッシュ113への通信パス1603の送信バッファ1401及び受信バッファ1413が閾値を越えて埋まっていないときには、交換処理(ステップC4)1611及び1612ができないので、上記の玉突き処理(ステップC13)1611及び1613を行う。
次に、ステップC14では、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、最古の他コアの第1のLRU情報については最古エントリを最新に更新し、第2のLRU情報については自コアキャッシュが最新、最古の他コアが2番目に新しい順番となるように更新する。その後、ステップC6に進み、処理を終了する。
ステップC11では、キャッシュシステムは移動処理を行う。すなわち、図17に示すように、データ転送処理1611により、自コア101のキャッシュ111の最古エントリbに他コア102のキャッシュ112のヒットしたエントリcを上書きし、該他コア102のキャッシュ112のヒットしたエントリcを無効化する。上記の上書きにより、自コアキャッシュ111の最古エントリbの元のキャッシュラインは破棄処理1614される。
以上のように、ヒットした他コアキャッシュ112から自コアキャッシュ111への通信パス1601の送信バッファ1402及び受信バッファ1411が閾値を越えて埋まっておらず、かつ、自コアキャッシュ111からヒットした他コアキャッシュ112への通信パス1602の送信バッファ1401及び受信バッファ1412が閾値を越えて埋まっており、かつ、自コアキャッシュ111から最古コアキャッシュ113への通信パス1603の送信バッファ1401及び受信バッファ1413が閾値を越えて埋まっているときには、交換処理(ステップC4)1611,1612及び玉突き処理(ステップC13)ができないので、上記の移動処理(ステップC11)1611及び1614を行う。
次に、ステップC12では、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、第2のLRU情報については自コアのキャッシュを最新の順番に更新する。その後、ステップC6に進み、処理を終了する。
なお、ステップC10において、自コアキャッシュが最古でなく、かつ、自コアキャッシュから最古コアキャッシュへの送受信バッファが閾値を越えて埋まっていると判断された場合には、自コアキャッシュから2番目に古いキャッシュへの送受信バッファが閾値を越えて埋まっているか否かを判定してもよい。埋まっていない場合には、自コアのキャッシュの最古エントリを2番目に古いコアキャッシュの最古エントリに上書きし、自コアキャッシュの最古エントリに他コアキャッシュのヒットしたエントリを上書きし、該他コアキャッシュのヒットエントリを無効化する。埋まっている場合には、さらに、自コアキャッシュから3番目に古いキャッシュへの送受信バッファが閾値を越えて埋まっているか否かを判定し、上記と同様に、3、4、・・・番目に古いコアキャッシュを順次玉突き処理の対象にしてもよい。
以上のように、本実施形態は、交換処理を行う際には、LRU判定処理(ステップC2)の他に、送受信バッファ判定処理(ステップC8〜C10)を行う。図15では、図6に対して、玉突き処理(ステップC13)及び移動処理(ステップC11)が追加されている。LRU判定処理(ステップC2)でステップC8に進む場合、送受信バッファ(例えば送信バッファ1401及び受信バッファ1412)の埋まり具合に応じて、参照処理(ステップC7)、交換処理(ステップC4)、玉突き処理(ステップC13)又は移動処理(ステップC11)を行う。これにより、トラフィックを低減することができる。
図18は図14のキャッシュシステムにおける図5のステップS8の追い出し処理を示すフローチャートであり、図19は図18のステップD10の次候補への追い出し処理の例を示す図である。
まず、ステップD1では、図5のステップS4の判断により、下位階層キャッシュとして利用可能な他コアキャッシュに全てミスしたと判断される。
次に、ステップD2では、図10のステップB2と同様に、判定回路1424はLRU判定処理を行う。すなわち、第2のLRU情報を参照し、自コアが最近そのインデックスのエントリを最も使っていないコアでないことの条件を満たすか否かを判定する。条件を満たす場合にはステップD8に進み、条件を満たさない場合にはステップD7に進む。
ステップD8では、判定回路1424は第1のバッファ判定処理を行う。すなわち、自コアのバッファから最古コアのバッファへの送受信バッファが閾値を越えて埋まっているか否かを判定する。例えば、図19において、自コア101のバッファ111から最古コア102のバッファ112への通信パス1901の送信バッファ1401又は受信バッファ1412が閾値を越えて埋まっているか否かを判定する。送信バッファ1401又は受信バッファ1412が閾値を越えて埋まっているときにはステップD9へ進み、送信バッファ1401及び受信バッファ1412が閾値を越えて埋まっていないときにはステップD4へ進む。
ステップD4では、図10のステップB4と同様に、キャッシュシステムは自コアキャッシュから他コアキャッシュへ追い出し処理を行う。すなわち、図19に示すように、データ転送処理1912により、最近最も使われていない他コアキャッシュ112の最古エントリcに自コアキャッシュ111の最古エントリ(他コアグループ用エントリを含まないものの中で最古エントリ)bを移動する。
次に、ステップD5では、図10のステップB5と同様に、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、他コアの第1のLRU情報については追い出し先の他コアキャッシュの最古エントリを最新に更新し、第2のLRU情報については自コアキャッシュが最新に、追い出し先の他コアキャッシュが2番目に新しい順番となるように更新する。その後、ステップD6に進む。
ステップD9では、判定回路1424は第2のバッファ判定処理を行う。すなわち、自コアのキャッシュから2番目に古いコアのキャッシュへの送受信バッファが閾値を越えて埋まっているか否かを判定する。例えば、図19において、自コア101のキャッシュ111から2番目に古いコア103のキャッシュ113への通信パス1902の送信バッファ1401又は受信バッファ1413が閾値を越えて埋まっているか否かを判定する。送信バッファ1401又は受信バッファ1413が閾値を越えて埋まっているときにはステップD7へ進み、送信バッファ1401及び受信バッファ1413が閾値を越えて埋まっていないときにはステップD10へ進む。
ステップD7では、図10のステップB7と同様に、キャッシュシステムは破棄処理を行う。すなわち、自コアキャッシュの最古エントリを破棄する。具体的には、このステップでは何も処理せず、後のステップD6の上書き処理により自コアキャッシュの最古エントリが破棄される。
次に、ステップD3では、図10のステップB3と同様に、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、第2のLRU情報については自コアキャッシュが最新になるように更新する。その後、ステップD6に進む。
ステップD10では、キャッシュシステムは次候補への追い出し処理を行う。すなわち、図19に示すように、データ転送処理1913により、2番目に古いコアキャッシュ113の最古エントリcに自コアキャッシュ111の最古エントリ(他コアグループ用エントリを含まないものの中で最古)bを移動する。
次に、ステップD11では、キャッシュシステムはLRU更新処理を行う。すなわち、自コアの第1のLRU情報については自コアキャッシュの最古エントリを最新に更新し、2番目に古いコア(追い出し先コア)の第1のLRU情報については最古エントリを最新に更新し、第2のLRU情報については自コアキャッシュを最新に、2番目に古いコア(追い出し先コア)を2番目に新しい順番に更新する。その後、ステップD6に進む。
ステップD6では、図10のステップB6と同様に、図19に示すように、自コア101は、データ読み出し処理1911により、自コアキャッシュ111の最古エントリ(LRU情報更新後の最新エントリ)bにメインメモリ(又は2次キャッシュ)130から読み出したデータを上書きすると共に、そのデータを取得する。以上で、処理を終了する。
なお、ステップD9において、自コアキャッシュから2番目に古いコアキャッシュへの送受信バッファが閾値を越えて埋まっていると判断された場合には、自コアキャッシュから3番目に古いコアキャッシュへの送受信バッファが閾値を越えて埋まっているか否かを判定してもよい。埋まっていない場合には、自コアのキャッシュの最古エントリを3番目に古いコアキャッシュの最古エントリに上書きし、自コアキャッシュの最古エントリに他コアキャッシュのヒットしたエントリを上書きし、該他コアキャッシュのヒットエントリを無効化する。埋まっている場合には、さらに、自コアキャッシュから4番目に古いコアキャッシュへの送受信バッファが閾値を越えて埋まっているか否かを判定し、上記と同様に、4、5、・・・番目に古いコアキャッシュを順次追い出し処理の対象にしてもよい。
以上のように、本実施形態は、追い出し処理を行う際には、LRU判定処理(ステップD2)の他に、送受信バッファ判定処理(ステップD8及びD9)を行う。図18では、図10に対して、次候補への追い出し処理(ステップD10)が追加されている。LRU判定処理(ステップD2)でステップD8に進む場合、送受信バッファ(例えば送信バッファ1401及び受信バッファ1412)の埋まり具合に応じて、破棄処理(ステップD7)、追い出し処理(ステップD4)又は次候補への追い出し処理(ステップD10)を行う。これにより、トラフィックを低減することができる。
図20は、本発明の他の実施形態による共有分散キャッシュシステムの構成例を示す図である。以下、図20が図14と異なる点を説明する。図14では、共通の1個の情報メモリ1421内に全キャッシュ111〜113のLRU情報1422及び送受信バッファ情報1423を記憶させる。図20の情報メモリ1421a,1421b,1421c、LRU情報1422a,1422b,1422c、及び送受信バッファ1423a,1423b,1423cは、それぞれ図14の情報メモリ1421、LRU情報1422及び送受信バッファ1423を分散させたものである。
情報メモリ1421aは、キャッシュ111内に設けられ、LRU情報1422a及び送受信バッファ情報1423aを記憶する。LRU情報1422aは、図1の第1のLRU情報121に対応する。送受信バッファ情報1423aは、送信バッファ1401及び受信バッファ1411の各バッファが閾値を越えて埋まっているか否かの情報である。
情報メモリ1421bは、キャッシュ112内に設けられ、LRU情報1422b及び送受信バッファ情報1423bを記憶する。LRU情報1422bは、図1の第1のLRU情報122に対応する。送受信バッファ情報1423bは、送信バッファ1402及び受信バッファ1412の各バッファが閾値を越えて埋まっているか否かの情報である。
情報メモリ1421cは、キャッシュ113内に設けられ、LRU情報1422c及び送受信バッファ情報1423cを記憶する。LRU情報1422cは、図1の第1のLRU情報123に対応する。送受信バッファ情報1423cは、送信バッファ1403及び受信バッファ1413の各バッファが閾値を越えて埋まっているか否かの情報である。
図1の第2のLRU情報129は、判定回路1424内に記憶させてもよいし、キャッシュ111〜113内に記憶させてもよい。図20のキャッシュシステムの動作は、図14のキャッシュシステムと同様である。
以上のように、本実施形態は、エントリ(キャッシュライン)移動の判定をLRU情報の他、トラフィックの状態を直接知ることができる送受信バッファ情報を基にエントリの移動判定を行うことにより、トラフィックを直接的に低減することができる。
本実施形態は、複数の処理装置(コア)101〜103と、前記複数の処理装置101〜103に一対一に接続された複数のキャッシュ111〜113と、前記複数のキャッシュ111〜113に接続され、前記複数のキャッシュ111〜113間のデータ通信を行うネットワーク1425と、前記キャッシュ111〜113毎に設けられ、前記キャッシュ111〜113が前記ネットワーク1425に対してデータ通信するための複数のバッファ1401〜1403,1411〜1413とを有する。前記処理装置が要求したデータが、一のキャッシュでミスした場合、前記複数のバッファの状態(送受信バッファ情報)1423に応じて、前記キャッシュが前記ネットワークを介してデータ通信する。
前記処理装置が要求したデータが、一のキャッシュでミスし(図5のステップS2)、他のキャッシュでヒットした場合(図5のステップS6)に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず(図15のステップC8)、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在しないとき(図15のステップC9)には、前記一のキャッシュのエントリ及び前記ヒットした他のキャッシュのエントリを交換する(図15のステップC4)。
また、前記処理装置が要求したデータが、一のキャッシュでミスし(図5のステップS2)、他のキャッシュでヒットした場合(図5のステップS6)に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在するとき(図15のステップC8)には、前記要求した処理装置は前記ヒットした他のキャッシュのデータを参照する(図15のステップC7)。
また、前記処理装置が要求したデータが、一のキャッシュでミスし(図5のステップS2)、他のキャッシュでヒットした場合(図5のステップS6)に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず(図15のステップC8)、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し(図15のステップC9)、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないとき(図15のステップC10)には、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きする(図15のステップC11)。
また、前記処理装置が要求したデータが、一のキャッシュでミスし(図5のステップS2)、他のキャッシュでヒットした場合(図5のステップS6)に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず(図15のステップC8)、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し(図15のステップC9)、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく(図15のステップC10)、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在しないとき(図15のステップC10)には、前記一のキャッシュのエントリを前記最も最近使用されていないキャッシュのエントリに上書きし、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きする(図15のステップC13)。
また、前記処理装置が要求したデータが、一のキャッシュでミスし(図5のステップS2)、他のキャッシュでヒットした場合(図5のステップS6)に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず(図15のステップC8)、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し(図15のステップC9)、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく(図15のステップC10)、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在するとき(図15のステップC10)には、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きする(図15のステップC11)。
また、前記処理装置が要求したデータが、一のキャッシュでミスし(図5のステップS2)、他のキャッシュでヒットした場合(図5のステップS6)に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず(図15のステップC8)、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し(図15のステップC9)、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく(図15のステップC10)、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在し(図15のステップC10)、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記2番目に最近使用されていないキャッシュのエントリに上書きし、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きする。
また、前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合(図5のステップS2、S4及びS6)に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないとき(図18のステップD8)には、前記一のキャッシュのエントリを前記最も最近使用していないキャッシュのエントリに移動し(図18のステップD4)、主記憶装置(メインメモリ)又は前記複数のキャッシュより下位階層のキャッシュ(2次キャッシュ)130から読み出したデータを前記移動した一のキャッシュのエントリに上書きする(図18のステップD6)。
また、前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合(図5のステップS2、S4及びS6)に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し(図18のステップD8)、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないとき(図18のステップD9)には、前記一のキャッシュのエントリを前記2番目に最近使用していないキャッシュのエントリに移動し(図18のステップD10)、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きする(図18のステップD6)。
また、前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合(図5のステップS2、S4及びS6)に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し(図18のステップD8)、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在するとき(図18のステップD9)には、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記一のキャッシュのエントリに上書きする(図18のステップD6)。
また、前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合(図5のステップS2、S4及びS6)に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し(図18のステップD8)、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し(図18のステップD9)、かつ、前記一のキャッシュから前記複数のキャッシュの中で3番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記3番目に最近使用していないキャッシュのエントリに移動し、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きする。
図14のキャッシュシステムは、前記複数のバッファ111〜113の状態(送受信バッファ情報)1423を集中して記憶する1個の情報メモリ1421を有する。これに対し、図20のキャッシュシステムは、前記複数のバッファ111〜113の状態1423a,1423b,1423cを前記バッファ毎に分散して記憶する複数の情報メモリ1421a,1421b,1421cを有する。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態は、例えば以下のように種々の適用が可能である。
(付記1)
複数の処理装置と、
前記複数の処理装置に一対一に接続された複数のキャッシュと、
前記複数のキャッシュに接続され、前記複数のキャッシュ間のデータ通信を行うネットワークと、
前記キャッシュ毎に設けられ、前記キャッシュが前記ネットワークに対してデータ通信するための複数のバッファとを有し、
前記処理装置が要求したデータが、一のキャッシュでミスした場合、前記複数のバッファの状態に応じて、前記キャッシュが前記ネットワークを介してデータ通信することを特徴とするキャッシュシステム。
(付記2)
前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリ及び前記ヒットした他のキャッシュのエントリを交換することを特徴とする付記1記載のキャッシュシステム。
(付記3)
前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在するときには、前記要求した処理装置は前記ヒットした他のキャッシュのデータを参照することを特徴とする付記1記載のキャッシュシステム。
(付記4)
前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないときには、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記5)
前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記最も最近使用されていないキャッシュのエントリに上書きし、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記6)
前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在するときには、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記7)
前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記2番目に最近使用されていないキャッシュのエントリに上書きし、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記8)
前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記最も最近使用していないキャッシュのエントリに移動し、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記9)
前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記2番目に最近使用していないキャッシュのエントリに移動し、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記10)
前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在するときには、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記11)
前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記一のキャッシュから前記複数のキャッシュの中で3番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記3番目に最近使用していないキャッシュのエントリに移動し、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きすることを特徴とする付記1記載のキャッシュシステム。
(付記12)
さらに、前記複数のバッファの状態を集中して記憶する1個の情報メモリを有する付記1記載のキャッシュシステム。
(付記13)
さらに、前記複数のバッファの状態を前記バッファ毎に分散して記憶する複数の情報メモリを有する付記1記載のキャッシュシステム。
共有分散キャッシュシステムの構成例を示す図である。 図1の第1のLRU情報及び第2のLRU情報の詳細を示す図である。 共有分散キャッシュシステムの他の構成例を示す図である。 図3の第1のLRU情報及び第2のLRU情報の詳細を示す図である。 共有分散キャッシュシステムにおけるデータロードアクセス動作を示すフローチャートである。 図5のステップS7の交換処理を示すフローチャートである。 図1及び図2のシステムにおける図6の交換処理の例を示す図である。 図1及び図2のシステムにおける図6の交換処理の例を示す図である。 図1及び図2のシステムにおける図6の交換処理の例を示す図である。 図5のステップS8の追い出し処理を示すフローチャートである。 図1及び図2のシステムにおける図10の追い出し処理の例を示す図である。 図1及び図2のシステムにおける図10の追い出し処理の例を示す図である。 図1及び図2のシステムにおける図10の追い出し処理の例を示す図である。 本発明の実施形態による共有分散キャッシュシステムの構成例を示す図である。 図14のキャッシュシステムにおける図5のステップS7の交換処理を示すフローチャートである。 図15のステップC13の玉突き処理の例を示す図である。 図15のステップC11の移動処理の例を示す図である。 図14のキャッシュシステムにおける図5のステップS8の追い出し処理を示すフローチャートである。 図18のステップD10の次候補への追い出し処理の例を示す図である。 本発明の他の実施形態による共有分散キャッシュシステムの構成例を示す図である。
符号の説明
101〜103 コア(処理装置)
111〜113 キャッシュ
130 メインメモリ
1401〜1403 送信バッファ
1411〜1413 受信バッファ
1421 情報メモリ
1422 LRU情報
1423 送受信バッファ情報
1424 判定回路
1425 キャッシュ間接続ネットワーク

Claims (4)

  1. 複数の処理装置と、
    前記複数の処理装置に一対一に接続された複数のキャッシュと、
    前記複数のキャッシュに接続され、前記複数のキャッシュ間のデータ通信を行うネットワークと、
    前記キャッシュ毎に設けられ、前記キャッシュが前記ネットワークに対してデータ通信するための複数のバッファとを有し、
    前記処理装置が要求したデータが、一のキャッシュでミスした場合、前記複数のバッファの状態に応じて、前記キャッシュが前記ネットワークを介してデータ通信し、
    前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記複数のキャッシュの中で前記一のキャッシュが最も最近使用されていないものでなく、かつ、前記一のキャッシュから前記複数のキャッシュの中で最も最近使用されていないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記最も最近使用されていないキャッシュのエントリに上書きし、前記ヒットした他のキャッシュのエントリを前記一のキャッシュのエントリに上書きすることを特徴とするキャッシュシステム。
  2. 複数の処理装置と、
    前記複数の処理装置に一対一に接続された複数のキャッシュと、
    前記複数のキャッシュに接続され、前記複数のキャッシュ間のデータ通信を行うネットワークと、
    前記キャッシュ毎に設けられ、前記キャッシュが前記ネットワークに対してデータ通信するための複数のバッファとを有し、
    前記処理装置が要求したデータが、一のキャッシュでミスした場合、前記複数のバッファの状態に応じて、前記キャッシュが前記ネットワークを介してデータ通信し、
    前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在し、かつ、前記一のキャッシュから前記複数のキャッシュの中で2番目に最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記2番目に最近使用していないキャッシュのエントリに移動し、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きすることを特徴とするキャッシュシステム。
  3. 前記処理装置が要求したデータが、一のキャッシュでミスし、他のキャッシュでヒットした場合に、前記ヒットした他のキャッシュから前記一のキャッシュへデータを送信するための前記バッファに所定量データが存在せず、かつ、前記一のキャッシュから前記ヒットした他のキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリ及び前記ヒットした他のキャッシュのエントリを交換することを特徴とする請求項1又は2記載のキャッシュシステム。
  4. 前記処理装置が要求したデータが、前記複数のキャッシュすべてでミスした場合に、前記要求した処理装置の一のキャッシュから前記複数のキャッシュの中で最も最近使用していないキャッシュへデータを送信するための前記バッファに所定量データが存在しないときには、前記一のキャッシュのエントリを前記最も最近使用していないキャッシュのエントリに移動し、主記憶装置又は前記複数のキャッシュより下位階層のキャッシュから読み出したデータを前記移動した一のキャッシュのエントリに上書きすることを特徴とする請求項1〜3のいずれか1項に記載のキャッシュシステム。
JP2007232606A 2007-09-07 2007-09-07 キャッシュシステム Expired - Fee Related JP5104139B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007232606A JP5104139B2 (ja) 2007-09-07 2007-09-07 キャッシュシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007232606A JP5104139B2 (ja) 2007-09-07 2007-09-07 キャッシュシステム

Publications (2)

Publication Number Publication Date
JP2009064308A JP2009064308A (ja) 2009-03-26
JP5104139B2 true JP5104139B2 (ja) 2012-12-19

Family

ID=40558828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007232606A Expired - Fee Related JP5104139B2 (ja) 2007-09-07 2007-09-07 キャッシュシステム

Country Status (1)

Country Link
JP (1) JP5104139B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3213758B2 (ja) * 1991-03-20 2001-10-02 株式会社日立製作所 記憶一致制御方法およびそれを用いたマルチプロセッサシステム
JPH04319746A (ja) * 1991-04-18 1992-11-10 Nec Corp 情報処理装置
US6182176B1 (en) * 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
JP2003050742A (ja) * 2001-08-07 2003-02-21 Sony Corp 情報処理装置及び情報処理方法、プログラム格納媒体並びにプログラム

Also Published As

Publication number Publication date
JP2009064308A (ja) 2009-03-26

Similar Documents

Publication Publication Date Title
US7711902B2 (en) Area effective cache with pseudo associative memory
US8725950B2 (en) Horizontally-shared cache victims in multiple core processors
US7827354B2 (en) Victim cache using direct intervention
US7305523B2 (en) Cache memory direct intervention
US10073776B2 (en) Shadow tag memory to monitor state of cachelines at different cache level
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US20060155934A1 (en) System and method for reducing unnecessary cache operations
JP5445581B2 (ja) コンピュータシステム、制御方法、記録媒体及び制御プログラム
US20060064547A1 (en) Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
KR101509628B1 (ko) 프로세서의 하이 어소시에이티브 캐시 메모리를 위한 scr 매커니즘
CN109154912B (zh) 根据另一个高速缓存中条目的可用性替换高速缓存条目
CN101236527A (zh) 减少探听过滤器中的后来无效的行交换方案
US20090259813A1 (en) Multi-processor system and method of controlling the multi-processor system
US11599483B2 (en) Dedicated cache-related block transfer in a memory system
JP3068469B2 (ja) 2次レベルキャッシュメモリシステム
US8392660B2 (en) Cache system including a plurality of processing units
US6643741B1 (en) Method and apparatus for efficient cache management and avoiding unnecessary cache traffic
JP3732397B2 (ja) キャッシュシステム
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
CN110737407A (zh) 一种支持混合写策略的数据缓冲存储器实现方法
US9983994B2 (en) Arithmetic processing device and method for controlling arithmetic processing device
JP5104139B2 (ja) キャッシュシステム
US11409656B2 (en) Semiconductor device
JP5045334B2 (ja) キャッシュシステム
JP2000267935A (ja) キヤッシュメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100517

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120904

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120917

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees