JP2004246898A - キャッシュのロックを使用するストリーミング・データ - Google Patents

キャッシュのロックを使用するストリーミング・データ Download PDF

Info

Publication number
JP2004246898A
JP2004246898A JP2004034166A JP2004034166A JP2004246898A JP 2004246898 A JP2004246898 A JP 2004246898A JP 2004034166 A JP2004034166 A JP 2004034166A JP 2004034166 A JP2004034166 A JP 2004034166A JP 2004246898 A JP2004246898 A JP 2004246898A
Authority
JP
Japan
Prior art keywords
cache
data
predefined area
processor
computer program
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
JP2004034166A
Other languages
English (en)
Other versions
JP3880581B2 (ja
Inventor
Michael Norman Day
マイケル・ノーマン・デイ
Charles Ray Johns
チャールズ・レイ・ジョーンズ
James Allan Kahle
ジェイムス・アラン・カーレ
Peichun Peter Liu
ペイチュン・ピーター・リウ
David J Shippy
デビッド・ジェイ・シッピイ
Thuong Quang Truong
スオング・クオング・トゥルオング
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004246898A publication Critical patent/JP2004246898A/ja
Application granted granted Critical
Publication of JP3880581B2 publication Critical patent/JP3880581B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Landscapes

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

Abstract

【課題】キャッシュ内のストリーミング・データの管理システムと方法の提供。
【解決手段】コンピュータ・システム100は、プロセッサ102、キャッシュ104、システム・メモリ110を備える。プロセッサ100は、ストリーミング・データに関するデータ要求を発する。ストリーミング・データは、1以上の小データ部分を有している。システム・メモリ110は、ストリーミング・データのストア用に特定のエリアを有している。キャッシュは、ストリーミング・データ用にロックされた、事前定義エリアを有し、キャッシュ・コントローラが接続され、プロセッサ106とシステム・メモリ110と通信を行い、ストリーミング・データの少なくとも1つの小データ部分がキャッシュの事前定義エリア内に見つからない場合に、その小データ部分をシステム・メモリ110の特定のエリアからキャッシュ104のあらかじめ定義済みのエリアへ転送する。
【選択図】図1

Description


本発明は、メモリ管理に関し、特にロック機能を持ったキャッシュ・メモリを使用するストリーミング・データのより効率的な処理に関する。

大規模構成のコンピュータ・システムにおいては、メモリ階層のレベルがいくつも存在し、最も低いレベルにシステム・メモリがあり、より高いレベルとしては、頻繁にアクセスされるデータをよりコンピューティング・エンジンに近いところで保持するキャッシュがある。

レベル1(L1)キャッシュは、通常、コンピュータ・システム内においてコンピューティング・エンジンによって共有されない。レベル2(L2)キャッシュは、通常、コンピュータ・システム内においてコンピューティング・エンジンによって共有される。一般に、キャッシュは、データをコンピューティング・エンジンの近くに維持し、キャッシュ内にストアされているデータは、はるかに良好な待ち時間で再使用されることになる。

ストリーミング・データ・アプリケーションについて言えば、大量のデータが、キャッシュを介してプルまたはプッシュされるが、その再使用は、あったところで非常にわずかである。従来技術においては、LRUアルゴリズムが使用されて、新しいデータによって置き換えられるべきキャッシュ内のデータが決定される。ストリーミング・データの場合には、この結果、キャッシュ内の再使用性の高いデータが、再使用性の低い大量のストリーミング・データによって置き換えられ、したがって頻繁に使用されるデータのアクセス待ち時間を短縮するというキャッシュの効果が最小限に抑えられてしまう。このストリーミング状況においては、キャッシュが事実上、ストリーミング・データによって「スラッシュ」され(頻繁に置き換えられ)、キャッシュの使用を非効率なものにしている。

この振る舞いを回避するための従来技術のアプローチは、ストリーミング・データをキャッシュ不可として再使用性の低いストリーミング・データによるキャッシュのスラッシングを防止している。しかしながらこれは、キャッシュのプリ‐フェッチおよび部分的アクセス・メカニズムがディセーブルされてしまうことからストリーミング・データのアクセスの待ち時間を著しく増加するという好ましくない副次効果を有している。データのキャッシュが禁止されている場合には、このデータのオンチップ・キャッシュ間転送も失われる。

したがって、より効率的な方法でキャッシュ内のストリーミング・データを管理するためのシステムおよび方法が求められている。

本発明は、コンピュータ・システム内のキャッシュを用いるデータの効率的な処理のためのシステムおよび方法を提供する。コンピュータ・システムは、プロセッサ、キャッシュ、およびシステム・メモリを備える。プロセッサは、ストリーミング・データに関するデータ要求を発する。ストリーミング・データは、1以上の小データ部分を有している。システム・メモリは、プロセッサと通信する。システム・メモリは、ストリーミング・データのストア用に特定のエリアを有している。キャッシュはプロセッサに結合されている。キャッシュは、ストリーミング・データ用にロックされた、事前定義エリアを有する。キャッシュにはキャッシュ・コントローラが接続されており、それがプロセッサおよびシステム・メモリの両方と通信を行って、ストリーミング・データの少なくとも1つの小データ部分がキャッシュの事前定義エリア内に見つからない場合にその小データ部分をシステム・メモリの特定のエリアからキャッシュの事前定義エリアへ転送する。

以下の説明においては、本発明の完全な理解を提供するべく多数の具体的な詳細が示されている。しかしながら、当業者にとっては自明となろうが、これらの具体的な詳細を用いずに本発明を実施することもできる。一方、周知の要素については、不必要な詳細の中に本発明が埋もれることのないように略図またはブロック図の形式を用いて図示している。

さらにここで注意されたいが、特に示さない限り、ここに述べているすべての機能は、ハードウエアもしくはソフトウエア、またはそれらの何らかの組み合わせのいずれを用いても実行することができる。しかしながら好ましい実施態様においては、特に示さない限り、これらの機能が、コンピュータ・プログラム・コード、ソフトウエア等のコードに従って動作するコンピュータ、電子データ・プロセッサ等のプロセッサ、またはこれらの機能を実行するべくコードされた集積回路によって実行されるものとする。

図1を参照すると、キャッシュのロックを使用して効率的にストリーミング・データを処理するコンピュータ・システムが包括的に参照番号100として示されている。コンピュータ・システム100は、プロセッサ102、キャッシュ104、バス・コントローラ106、システム・バス108、およびシステム・メモリ110を備えている。

プロセッサ102は、キャッシュ104に結合されている。キャッシュ104は、バス・コントローラ106に結合されている。システム・バス108は、バス・コントローラ106に結合されている。システム・メモリ110は、システム・バス108に結合されている。

一般に、キャッシュ104は、複数のキャッシュ・セットを含んでいる。この例においては、8つのキャッシュ・セットA〜Hが示されており、そのうちキャッシュ・セットEは、システム・メモリ110内の1以上のストリーミング・データ・エリア(図示せず)に拘束された選択キャッシュ・セットを表している。たとえば、キャッシュが512キロバイトである場合には、各キャッシュ・セットが64キロバイトになる。この特定の例は、複数のキャッシュ・セットからストリーミング・データをストアするために1以上のキャッシュ・セットが選択されるという形で充分に一般化することができる。キャッシュ・セットEは、複数のキャッシュ・ラインを含んでおり、それにはキャッシュ・ライン112、114、および116が含まれる。同様に、ほかのキャッシュ・セットもそれぞれ複数のキャッシュ・ラインを含んでいる(図示せず)。たとえば、各キャッシュ・ラインは128バイトである。さらにキャッシュには、キャッシュ・コントローラ111が備わる。

プロセッサ102は、データに関する要求を行う。好ましくは、このデータが、限定する意図ではないがビデオ/オーディオ・ストリーミング・データを含むストリーミング・データの形式を取るものとする。通常、ストリーミング・オペレーションの初期段階では、データがキャッシュ104内ではなく、システム・メモリ110内において見つかる。より詳しく言えば、プロセッサ102は、そのデータに関するデータ要求を発する。このデータ要求は、接続118を介してキャッシュ・コントローラ111へ送られる。すでにキャッシュ104内にそのデータが存在する場合には、そのデータがプロセッサ102へ返される。キャッシュ104内にそのデータが存在しない(たとえば、そのデータがシステム・メモリ110内にストアされている)場合には、キャッシュ・コントローラ111がそのデータ要求を、接続120を介してバス・コントローラへ転送する。この場合、キャッシュ・コントローラ111は、キャッシュ104のいずれのキャッシュ・セット(1以上)を使用して被要求データをストアすることになるかについての決定を行わなければならない。

好ましくはプロセッサ102には、いずれのキャッシュ・ラインがそのデータの一時的なストアのためにロックされているかについてわかっているものとする。ここに示した構成においては、たとえば、プロセッサ102には、この目的のためにキャッシュ・ライン112、114、および116がロックされていることがわかっている。キャッシュ104は、続いて3つの要求(図示せず)を連続的に、接続120を介してバス・コントローラ106へ送る。これら3つの要求は、3つのキャッシュ・ライン112、114、および116に関する要求である。一般に、Nを1以上の整数とするとき、データの一時的なストア用にN個のキャッシュ・ラインがロックされている場合には、キャッシュ104が、接続120を介してバス・コントローラ106へ、N個の要求を連続的に送る。その後これら3つの要求が、バス・コントローラ106から接続122を介してシステム・バス108へ、連続的な形で送られる。最終的に、これら3つの要求が、システム・バス108から接続124を介してシステム・メモリ110へ、連続的に送られる。

バス・コントローラ106は、接続122を介してシステム・バス108へデータ要求を送る。システム・バス108は、続いてそのデータ要求を、接続124を介してシステム・メモリ110へ送る。

このデータ要求に応答してシステム・メモリ110は、被要求データをキャッシュ104へ順次に転送する。しかしながら、システム・メモリ110は、被要求データの全体を一度に送らない。むしろ、一度にプロセッサ102へ送るデータは、被要求データの一部だけであり、キャッシュへ全体の被要求データが送られるまで、被要求データの一部を送り続ける。好ましくはシステム・メモリ110は、被要求データをより小さい、単一のキャッシュ・ラインのサイズに等しい複数のデータに分割した後、それぞれの、より小さいデータをその都度キャッシュ104に送る。キャッシュ104からシステム・メモリ110へ、要求が連続的に送られる場合には、システム・メモリ110は、それぞれの個別の要求を受け取ったときに、それに応答する。したがって、上記の、複数の要求を連続的に送る好ましい実施態様においては、システム・メモリ110が、連続的に送られた複数の要求に応答し、接続126を介してシステム・バス108へ、被要求データの複数の小データ部分を連続的に送る。システム・バス108は、これらの小データ部分をバス・コントローラ106へ連続的に送る。バス・コントローラ106は、これらの小データ部分を、キャッシュ104内のキャッシュ・ライン112、114、および116のそれぞれに対して連続的に送る。

被要求データの小部分(たとえば、単一のキャッシュ・ライン)がシステム・メモリ110からキャッシュ104へ送られる動作の詳細は次のようになる。システム・メモリ110が、被要求データの小部分を接続126を介してシステム・バス108へ送る。続いてシステム・バス108が、この被要求データの小部分を接続128を介してバス・コントローラ106へ送る。次にバス・コントローラ106が、この被要求データの小部分を接続130を介してキャッシュ104へ送る。この例においては、キャッシュ・セットEだけが、被要求データの小部分の一時的なストア用にロックされている。したがって、この被要求データの小部分は、キャッシュ104のキャッシュ・セットE内にストアされる。コンピュータ・システム100が、被要求データを、それぞれの小部分が単一のキャッシュ・ラインのサイズに等しい複数の小部分に分割するべく設計されている場合には、被要求データの小部分がキャッシュ・ライン112、114、および116のいずれかにストアされることになる。つまり、プロセッサ102は、接続132を介してキャッシュ104へアクセスし、被要求データの小部分をフェッチし、その被要求データの小部分の処理を行う。被要求データのすべての小部分がこの方法に従ってプロセッサ102へ送られるまで、このプロセス全体が経時的に繰り返される。

好ましい実施態様においては、キャッシュ・コントローラ111が、メモリ・アクセス・コントロール・ユニット134、LRUユニット136、ロック・コントロール・ユニット138、および置換コントロール・ユニット140を備える。メモリ・アクセス・コントロール・ユニット134、LRUユニット136、およびロック・コントロール・ユニット138は、プロセッサ102からのデータ要求を独立して処理する。メモリ・アクセス・コントロール・ユニット134は、被要求データがキャッシュ104内にストアされているか否かについての決定を行う。たとえば、メモリ・アクセス・コントロール・ユニット134は、キャッシュ・コントローラ111内のディレクトリ(図示せず)をチェックしてこの決定を行う。データ・ミスが生じている場合には、メモリ・アクセス・コントロール・ユニット134が、接続120を介してバス・コントローラ106へデータ要求を送る。その間に、LRUユニット136およびロック・コントロール・ユニット138もまた、このデータ要求を処理する。被要求データがストリーミング・データであった場合には、ロック・コントロール・ユニット138は、いずれのキャッシュ・セット(1以上)がシステム・メモリ110から返された被要求データをストアすることになるかについての決定を行う。ストリーミング・データでなかった場合には、LRUユニット136がその決定を行う。この例においては、ロック・コントロール・ユニット138が、システム・メモリ110から返された被要求データをキャッシュ・セットEがストアすることになるという決定を行う。この情報は、続いて置換コントロール・ユニット140に提供され、それが、この目的に関してキャッシュ・セットEをコントロールする。

好ましくは、被要求データの処理を要求するアプリケーション・プログラムが、システム・メモリ110内におけるデータ‐ストリーミング領域の場所およびサイズ、ならびにロックされかつそのエリアに拘束される単一の選択済みキャッシュ・セットまたは選択済みキャッシュ・セットの数を決定する。つまり、被要求データの大きさにかかわらず、被要求データは、1以上の事前定義キャッシュ・セット内だけに一時的にストアされ、キャッシュ104の残りのセットを書き換えることはない。

本発明の好ましい実施態様においては、1以上のロックされたキャッシュ・セットに対するシステム・メモリ110のエリアの拘束は、プロセッサのロードおよびストア・オペレーションに関し、ハードウエア・レンジ・レジスタ(図示せず)のロードによって行われる。この種のハードウエア・レンジ・レジスタは、開始システム・メモリ・アドレス、長さ、および関連付けされたキャッシュ‐ロック・インデクスを定義する。ストリーミング・ダイレクト・メモリ・アクセス(DMA)オペレーションに関しては、そのオペレーションで使用するキャッシュ‐ロック・インデクスが、DMAコマンド内に指定される。ハードウエアは、キャッシュ‐ロック・インデクスを使用してキャッシュ管理テーブル(図示せず)へアクセスするが、このテーブルは、各キャッシュ・ロック・エリア用にいずれのキャッシュ・セットが用いられることになるかを示すべくソフトウエアによってあらかじめロードされている。たとえば、このテーブル内の各ビットは、64キロバイトのキャッシュ・セットを表す。ビットがセットされていれば、対応するセットがそのインデクスに対してロックされている。ビットがセットされていなければ、対応するセットはそのインデクスに対してロックされていない。1つのセットを複数のインデクスに対してロックすることも可能である。

ストリーミング・データは、一般にサイズが大きくなりがちである。しかしながら、プロセッサ102が、すべてのストリーミング・データを一度に処理しなければならないということはない。むしろプロセッサ102は、通常、小時間間隔の間にストリーミング・データの小部分を処理し、別の小時間間隔の間には別の小部分へ移動するという形で処理を続ける。

本発明の好ましい実施態様においては、システム・メモリ110のストリーミング・データ・エリア(図示せず)が、好ましくはアドレスおよびサイズによって定義され、ストリーミング・データのストアのために使用される。システム・メモリ110のストリーミング・データ・エリアは、キャッシュ104内の1以上のロックされたセット(たとえば、キャッシュ・セットE)に拘束されている。プロセッサ102が、システム・メモリ110のストリーミング・データ・エリアからのデータに関する要求を発したとき、キャッシュ114のロックされたセット(たとえば、キャッシュ・セットE)内に被要求データが見つからなければ、ロックされたセット(たとえば、キャッシュ・セットE)内の1以上のキャッシュ・ライン(たとえば、キャッシュ・ライン112、114、116)へ、標準のLRUアルゴリズムを使用して被要求データがロードされる。このようにして、被要求ストリーミング・データは、キャッシュ104のロックされたセット(たとえば、キャッシュ・セットE)内だけにロードされることになる。

プロセッサ102が、キャッシュ104内にもなく、また上記のシステム・メモリ110のストリーミング・データ・エリア内にも見つからないデータに関する要求を発した場合には、被要求データが、ロックされたセット(たとえば、キャッシュ・セットE)に対応していないキャッシュ104のエリアにロードされることになる。このようにして被要求非ストリーミング・データは、ロックされたセット(たとえば、キャッシュ・セットE)を除くほかのキャッシュ・セット(たとえば、キャッシュ・セットA〜DおよびF〜Hのうちのいずれか)にロードされることになる。

本発明の一実施態様においては、複数のその種のストリーミング・データ・エリアを、キャッシュ104内の異なるロックされたセットに拘束することができる。変形実施態様においては、複数のその種のストリーミング・データ・エリアを、キャッシュ104内の同一のロックされたセットに拘束することができる。

コンピュータ・システム100は、複数のプロセッサを有するコンピュータ・システムに一般化することができる。その場合、追加のキャッシュ(図示せず)および追加のバス・コントローラ(図示せず)を、それぞれの追加のプロセッサ(図示せず)とシステム・バス108の間に、プロセッサ102とシステム・バス108の間の接続と同様に結合すればよい。

本発明の好ましい実施態様においては、システム・メモリ110内の複数のストリーミング・データ・エリアを、キャッシュ104内の異なるロックされたセットに拘束することができる。変形実施態様においては、システム・メモリ110内の複数のストリーミング・データ・エリアを、キャッシュ104内の同一のロックされたセットに拘束することができる。

図2は、図1のコンピュータ・システム100のオペレーションを例示しているフローチャート200である。ステップ202において、プロセッサ102はデータに関するデータ要求を発する。好ましくはこのデータがストリーミング・データの形式を取り、限定する意図ではないがビデオ/オーディオ・ストリーミング・データを含む。

ステップ204においては、このデータ要求がプロセッサ102からシステム・メモリ110へ送られる。好ましくはこのデータ要求が、プロセッサ102からキャッシュ104へ、さらにそこからバス・コントローラ106へ、さらにそこからシステム・バス108へ、さらにそこからシステム・メモリ110へと送られる。

ステップ206においては、このデータ要求に応答してデータが1以上の小データ部分に分割される。ここでは、各データ部分がキャッシュ104の事前定義エリア内にストアされることになる。通常、この事前定義エリアが1以上のキャッシュ・セットを含む。図1のコンピュータ・システム100の場合であれば、この事前定義エリアがキャッシュ・セットEになる。

ステップ208においては、1つの小データ部分がシステム・メモリ110からキャッシュ104へ送られる。好ましくはこの1つの小データ部分が、システム・メモリ110からシステム・バス108へ、さらにそこからバス・コントローラ106へ、さらにそこからキャッシュ104へと送られる。

ステップ210においては、キャッシュ104の事前定義エリア内において1つの小データ部分を用いてキャッシュ104が更新される。好ましくはキャッシュ104の事前定義エリアが、1以上のキャッシュ・セットを含む。

ステップ212においては、この1つの小データ部分がキャッシュ104からプロセッサ102へ送られる。好ましくは、プロセッサ102がキャッシュ104の事前定義エリアへアクセスし、そこにストアされている1つの小データ部分を取り出す。

ステップ214においては、すべての小データ部分がキャッシュ104へ送られたか否かについての決定を行う。否であれば、データがまだ完全にキャッシュへ送られていないことになる。その場合には、フローチャート200がステップ208に戻り、別の小データ部分を送る。ステップ214において、すべての小データ部分がキャッシュ104へ送られたと決定されると、このフローチャート200が終了する。

次に図3を参照するが、このフローチャート300は、図2に示したステップ204の好ましい実施態様を例示している。ステップ302においては、データ要求がプロセッサ102からキャッシュ104へ送られる。好ましくはこのデータ要求が、ステップ302において、完全な形でプロセッサ102からキャッシュ104へ送られる。

ステップ304においては、そのデータ要求から、1以上の個別の要求が生成される。ここでは、それぞれの個別の要求が、単一のキャッシュ・ラインに対応している。言い換えると、それぞれの個別の要求は、単一のキャッシュ・ライン内にストアされることになるデータに関する要求として定義される。たとえば、図1に示されている特定の構成においては、キャッシュ・ライン112、114、および116に関する少なくとも3つの個別の要求が作られ、3つの個別の要求のそれぞれは、キャッシュ・ライン112、114、および116のそれぞれにストアされることになるデータに関する要求となる。

ステップ306においては、これらの1以上の個別の要求が、キャッシュ104からバス・コントローラ106へ連続的に送られる。同様に、ステップ308においては、これらの1以上の個別の要求が、バス・コントローラ106からシステム・バス108へ連続的に送られる。ステップ310においては、これらの1以上の個別の要求が、システム・バス108からシステム・メモリ110へ連続的に送られる。

図4のフローチャート400は、図2に示されているステップ208の好ましい実施態様を例示している。ステップ402においては、1つの小データ部分が1以上のキャッシュ・ライン・データ部分に分割される。この場合、それぞれのキャッシュ・ライン・データ部分が、対応する個別の要求に対する応答となる。言い換えると、それぞれのキャッシュ・ライン・データ部分は、それぞれのキャッシュ・ライン内にストアされることになる。たとえば、図1に示した特定の構成においては、キャッシュ・ライン112、114、および116内にそれぞれストアされることになる少なくとも3つのキャッシュ・ライン・データ部分を持つことになる。

ステップ404においては、これらの1以上のキャッシュ・ライン・データ部分が、システム・メモリ110からシステム・バス108へ、連続的に送られる。前述した例においては、最初にキャッシュ・ライン112内にストアされることになるキャッシュ・ライン・データ部分が、システム・バス108へ送られる。それに続き、キャッシュ・ライン114内にストアされることになるキャッシュ・ライン・データ部分が送られる。さらにその後、キャッシュ・ライン116内にストアされることになるキャッシュ・ライン・データ部分が送られる。

ステップ406においては、これらの1以上のキャッシュ・ライン・データ部分が、同様にしてシステム・バス108からバス・コントローラ106へ、連続的に送られる。

ステップ408においては、これらの1以上のキャッシュ・ライン・データ部分が、バス・コントローラ106からキャッシュ104へ、連続的に送られる。

以上の説明から理解されることになろうが、本発明の真の精神から逸脱することなく、本発明の好ましい実施態様において各種の修正および変更を行うことが可能である。この記述は、例示目的のみを意図としたものであって限定的な意味で解釈されるものではない。本発明の範囲は、特許請求の範囲の文言によってのみ限定される。

まとめとして、本発明の構成に関して以下の事項を開示する。

(1)1以上の小データ部分を有するストリーミング・データに関するデータ要求を発するプロセッサ、

前記ストリーミング・データをストアするための特定のエリアを有し、前記プロセッサと通信するシステム・メモリ、

前記プロセッサに結合され、前記ストリーミング・データ用にロックされた事前定義エリアを有するキャッシュ、および、

前記キャッシュに結合され、前記プロセッサおよび前記システム・メモリの両方と通信して、前記1以上の小データ部分の少なくとも1つが前記キャッシュの前記事前定義エリア内に見つからないときに前記1以上の小データ部分の前記少なくとも1つを前記システム・メモリの前記特定のエリアから前記キャッシュの前記事前定義エリアへ転送するキャッシュ・コントローラ、

を備えるコンピュータ・システム。

(2)さらに、

前記システム・メモリに結合され、前記システム・メモリから各小データ部分を受け取るためのシステム・バス、ならびに、

前記キャッシュおよび前記システム・バスの両方に結合され、前記システム・バスから前記キャッシュへ各小データ部分を送るためのバス・コントローラ、

を備える上記(1)に記載のコンピュータ・システム。

(3)前記事前定義エリアが、1以上のキャッシュ・セットを含み、各キャッシュ・セットは、複数のキャッシュ・ラインを含む、上記(1)に記載のコンピュータ・システム。

(4)前記1以上の小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られる、上記(3)に記載のコンピュータ・システム。

(5)前記事前定義エリアが、1以上のキャッシュ・セットを含み、各キャッシュ・セットは、複数のキャッシュ・ラインを含む、上記(2)に記載のコンピュータ・システム。

(6)前記小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られる、上記(5)に記載のコンピュータ・システム。

(7)さらに、前記キャッシュに結合されるキャッシュ・コントローラを備える、上記(2)に記載のコンピュータ・システム。

(8)前記データ要求が、前記プロセッサから前記システム・メモリへ、前記キャッシュ・コントローラ、前記バス・コントローラ、および前記システム・バスを介して送られる、上記(7)に記載のコンピュータ・システム。

(9)前記キャッシュ・コントローラが、

前記プロセッサが前記データ要求を発したときに前記キャッシュ内に前記ストリーミング・データがストアされているか否かについての決定を行うためのメモリ・アクセス・コントロール・ユニット、

LRUユニット、

前記事前定義エリアを決定するためのロック・コントロール・ユニット、および、

前記メモリ・アクセス・コントロール・ユニット、前記LRUユニット、およびロック・コントロール・ユニットに結合され、前記キャッシュの前記事前定義エリア内にのみ前記ストリーミング・データがストアされるべく前記キャッシュをコントロールする置換コントロール・ユニット、

を備える、上記(1)に記載のコンピュータ・システム。

(10)前記データは、前記キャッシュの前記事前定義エリア外にはストアされない、上記(1)に記載のコンピュータ・システム。

(11)前記事前定義エリアは、前記データ用にロックされている、上記(1)に記載のコンピュータ・システム。

(12)プロセッサおよびシステム・メモリを有するコンピュータ・システム内のキャッシュを使用してデータを効率的に処理するための方法であって、

データに関するデータ要求を発するステップ、

前記データ要求をプロセッサからシステム・メモリへ送るステップ、

前記データ要求に応答して、前記データを1以上の小データ部分に分割するステップ、

第1の小データ部分を前記システム・メモリから前記キャッシュへ送るステップ、

前記キャッシュの事前定義エリア内において前記第1の小データ部分を用いて前記キャッシュを更新するステップ、および、

前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新する前に前記第1の小データ部分を前記キャッシュから前記プロセッサへ転送するステップ、

を含む方法。

(13)さらに、すべての小データ部分を前記キャッシュへ送ったか否かを決定するステップを含む、上記(12)に記載の方法。

(14)さらに、すべての小データ部分をまだ前記キャッシュへ送っていないとの決定に応答して、前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新するステップを含む、上記(13)に記載の方法。

(15)前記データがストリーミング・データを含む、上記(12)に記載の方法。

(16)前記1以上の小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られるものとする、上記(12)に記載の方法。

(17)さらに、前記キャッシュの前記事前定義エリアを前記データ用にロックするステップを含む、上記(12)に記載の方法。

(18)プロセッサおよびシステム・メモリを有するコンピュータ・システム内のキャッシュを使用してデータを効率的に処理するためのコンピュータ・プログラムであって、

データに関するデータ要求を発するためのコンピュータ・プログラム・コード、

前記データ要求をプロセッサからシステム・メモリへ送るためのコンピュータ・プログラム・コード、

前記データ要求に応答して、前記データを1以上の小データ部分に分割するためのコンピュータ・プログラム・コード、

第1の小データ部分を前記システム・メモリから前記キャッシュへ送るためのコンピュータ・プログラム・コード、

前記キャッシュの事前定義エリア内において前記第1の小データ部分を用いて前記キャッシュを更新するためのコンピュータ・プログラム・コード、および、

前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新する前に前記第1の小データ部分を前記キャッシュから前記プロセッサへ転送するためのコンピュータ・プログラム・コード、

を含む、コンピュータ・プログラム。

(19)さらに、すべての小データ部分を前記キャッシュへ送ったか否かを決定するためのコンピュータ・プログラム・コードを含む、上記(18)に記載のコンピュータ・プログラム。

(20)さらに、すべての小データ部分をまだ前記キャッシュへ送っていないとの決定に応答して、前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新するためのコンピュータ・プログラム・コードを含む、上記(19)に記載のコンピュータ・プログラム。

(21)前記データがストリーミング・データを含む、上記(18)に記載のコンピュータ・プログラム。

(22)前記1以上の小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られる、上記(18)に記載のコンピュータ・プログラム。

(23)前記コンピュータ・プログラムが、さらに、前記キャッシュの前記事前定義エリアを前記データ用にロックするためのコンピュータ・プログラム・コードを含む、上記(18)に記載のコンピュータ・プログラム。

キャッシュのロックを使用して効率的にストリーミング・データを処理するコンピュータ・システムを示したブロック図である。 図1のコンピュータ・システムのオペレーションを例示したフローチャートである。 図2に示されているデータ要求を送るステップの好ましい実施態様を例示したフローチャートである。 図2に示されている小データ部分を送るステップの好ましい実施態様を例示したフローチャートである。

Claims (23)


  1. 1以上の小データ部分を有するストリーミング・データに関するデータ要求を発するプロセッサ、

    前記ストリーミング・データをストアするための特定のエリアを有し、前記プロセッサと通信するシステム・メモリ、

    前記プロセッサに結合され、前記ストリーミング・データ用にロックされた事前定義エリアを有するキャッシュ、および、

    前記キャッシュに結合され、前記プロセッサおよび前記システム・メモリの両方と通信して、前記1以上の小データ部分の少なくとも1つが前記キャッシュの前記事前定義エリア内に見つからないときに前記1以上の小データ部分の前記少なくとも1つを前記システム・メモリの前記特定のエリアから前記キャッシュの前記事前定義エリアへ転送するキャッシュ・コントローラ、

    を備えるコンピュータ・システム。

  2. さらに、

    前記システム・メモリに結合され、前記システム・メモリから各小データ部分を受け取るためのシステム・バス、ならびに、

    前記キャッシュおよび前記システム・バスの両方に結合され、前記システム・バスから前記キャッシュへ各小データ部分を送るためのバス・コントローラ、

    を備える請求項1に記載のコンピュータ・システム。

  3. 前記事前定義エリアが、1以上のキャッシュ・セットを含み、各キャッシュ・セットは、複数のキャッシュ・ラインを含む、請求項1に記載のコンピュータ・システム。

  4. 前記1以上の小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られる、請求項3に記載のコンピュータ・システム。

  5. 前記事前定義エリアが、1以上のキャッシュ・セットを含み、各キャッシュ・セットは、複数のキャッシュ・ラインを含む、請求項2に記載のコンピュータ・システム。

  6. 前記小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られる、請求項5に記載のコンピュータ・システム。

  7. さらに、前記キャッシュに結合されるキャッシュ・コントローラを備える、請求項2に記載のコンピュータ・システム。

  8. 前記データ要求が、前記プロセッサから前記システム・メモリへ、前記キャッシュ・コントローラ、前記バス・コントローラ、および前記システム・バスを介して送られる、請求項7に記載のコンピュータ・システム。

  9. 前記キャッシュ・コントローラが、

    前記プロセッサが前記データ要求を発したときに前記キャッシュ内に前記ストリーミング・データがストアされているか否かについての決定を行うためのメモリ・アクセス・コントロール・ユニット、

    LRUユニット、

    前記事前定義エリアを決定するためのロック・コントロール・ユニット、および、

    前記メモリ・アクセス・コントロール・ユニット、前記LRUユニット、およびロック・コントロール・ユニットに結合され、前記キャッシュの前記事前定義エリア内にのみ前記ストリーミング・データがストアされるべく前記キャッシュをコントロールする置換コントロール・ユニット、

    を備える、請求項1に記載のコンピュータ・システム。

  10. 前記データは、前記キャッシュの前記事前定義エリア外にはストアされない、請求項1に記載のコンピュータ・システム。

  11. 前記事前定義エリアは、前記データ用にロックされている、請求項1に記載のコンピュータ・システム。

  12. プロセッサおよびシステム・メモリを有するコンピュータ・システム内のキャッシュを使用してデータを効率的に処理するための方法であって、

    データに関するデータ要求を発するステップ、

    前記データ要求をプロセッサからシステム・メモリへ送るステップ、

    前記データ要求に応答して、前記データを1以上の小データ部分に分割するステップ、

    第1の小データ部分を前記システム・メモリから前記キャッシュへ送るステップ、

    前記キャッシュの事前定義エリア内において前記第1の小データ部分を用いて前記キャッシュを更新するステップ、および、

    前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新する前に前記第1の小データ部分を前記キャッシュから前記プロセッサへ転送するステップ、

    を含む方法。

  13. さらに、すべての小データ部分を前記キャッシュへ送ったか否かを決定するステップを含む、請求項12に記載の方法。

  14. さらに、すべての小データ部分をまだ前記キャッシュへ送っていないとの決定に応答して、前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新するステップを含む、請求項13に記載の方法。

  15. 前記データがストリーミング・データを含む、請求項12に記載の方法。

  16. 前記1以上の小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られるものとする、請求項12に記載の方法。

  17. さらに、前記キャッシュの前記事前定義エリアを前記データ用にロックするステップを含む、請求項12に記載の方法。

  18. プロセッサおよびシステム・メモリを有するコンピュータ・システム内のキャッシュを使用してデータを効率的に処理するためのコンピュータ・プログラムであって、

    データに関するデータ要求を発するためのコンピュータ・プログラム・コード、

    前記データ要求をプロセッサからシステム・メモリへ送るためのコンピュータ・プログラム・コード、

    前記データ要求に応答して、前記データを1以上の小データ部分に分割するためのコンピュータ・プログラム・コード、

    第1の小データ部分を前記システム・メモリから前記キャッシュへ送るためのコンピュータ・プログラム・コード、

    前記キャッシュの事前定義エリア内において前記第1の小データ部分を用いて前記キャッシュを更新するためのコンピュータ・プログラム・コード、および、

    前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新する前に前記第1の小データ部分を前記キャッシュから前記プロセッサへ転送するためのコンピュータ・プログラム・コード、

    を含む、コンピュータ・プログラム。

  19. さらに、すべての小データ部分を前記キャッシュへ送ったか否かを決定するためのコンピュータ・プログラム・コードを含む、請求項18に記載のコンピュータ・プログラム。

  20. さらに、すべての小データ部分をまだ前記キャッシュへ送っていないとの決定に応答して、前記キャッシュの前記事前定義エリア内において別の小データ部分を用いて前記キャッシュを更新するためのコンピュータ・プログラム・コードを含む、請求項19に記載のコンピュータ・プログラム。

  21. 前記データがストリーミング・データを含む、請求項18に記載のコンピュータ・プログラム。

  22. 前記1以上の小データ部分の少なくとも1つが、さらに1以上のキャッシュ・ライン・データ部分に分割され、前記1以上のキャッシュ・ライン・データ部分は、前記メモリから前記キャッシュへ、連続的に送られる、請求項18に記載のコンピュータ・プログラム。

  23. 前記コンピュータ・プログラムが、さらに、前記キャッシュの前記事前定義エリアを前記データ用にロックするためのコンピュータ・プログラム・コードを含む、請求項18に記載のコンピュータ・プログラム。
JP2004034166A 2003-02-13 2004-02-10 キャッシュのロックを使用するストリーミング・データ Expired - Fee Related JP3880581B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/366,440 US6961820B2 (en) 2003-02-13 2003-02-13 System and method for identifying and accessing streaming data in a locked portion of a cache

Publications (2)

Publication Number Publication Date
JP2004246898A true JP2004246898A (ja) 2004-09-02
JP3880581B2 JP3880581B2 (ja) 2007-02-14

Family

ID=32849755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004034166A Expired - Fee Related JP3880581B2 (ja) 2003-02-13 2004-02-10 キャッシュのロックを使用するストリーミング・データ

Country Status (3)

Country Link
US (1) US6961820B2 (ja)
JP (1) JP3880581B2 (ja)
KR (1) KR100629061B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012172694A1 (ja) * 2011-06-17 2015-02-23 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
JP2015219813A (ja) * 2014-05-20 2015-12-07 富士通株式会社 演算処理装置、情報処理装置、及び、演算処理装置の制御方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555540B2 (en) 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
US6862027B2 (en) * 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US7355601B2 (en) * 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
JP2005132525A (ja) * 2003-10-29 2005-05-26 Toyota Industries Corp 産業車輌における立席型運転席用背もたれ構造
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US7360015B2 (en) * 2004-05-04 2008-04-15 Intel Corporation Preventing storage of streaming accesses in a cache
US7362705B2 (en) * 2004-05-13 2008-04-22 International Business Machines Corporation Dynamic load-based credit distribution
US7840757B2 (en) * 2004-07-29 2010-11-23 International Business Machines Corporation Method and apparatus for providing high speed memory for a processing unit
US20060047862A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization
US20060045031A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization using multiple state machines
US7546401B2 (en) * 2004-09-23 2009-06-09 International Business Machines Corporation Byte to byte alignment of multi-path data
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US20060080511A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Enhanced bus transactions for efficient support of a remote cache directory copy
US7577794B2 (en) 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US7385925B2 (en) * 2004-11-04 2008-06-10 International Business Machines Corporation Data flow control method for simultaneous packet reception
US20060101208A1 (en) * 2004-11-09 2006-05-11 Intel Corporation Method and apparatus for handling non-temporal memory accesses in a cache
US7260765B2 (en) * 2004-12-17 2007-08-21 International Business Machines Corporation Methods and apparatus for dynamically reconfigurable parallel data error checking
US20060140122A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Link retry per virtual channel
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
US20060159023A1 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation CRC error history mechanism
US7206886B2 (en) * 2005-02-24 2007-04-17 International Business Machines Corporation Data ordering translation between linear and interleaved domains at a bus interface
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7275125B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
US7194567B2 (en) * 2005-02-24 2007-03-20 International Business Machines Corporation Method and system for ordering requests at a bus interface
US7234017B2 (en) * 2005-02-24 2007-06-19 International Business Machines Corporation Computer system architecture for a processor connected to a high speed bus transceiver
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7500062B2 (en) * 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
US8185650B2 (en) * 2009-01-13 2012-05-22 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems, methods, and computer program products for transmitting and/or receiving media streams
US9176885B2 (en) 2012-01-23 2015-11-03 International Business Machines Corporation Combined cache inject and lock operation
US20180052779A1 (en) * 2016-08-19 2018-02-22 Advanced Micro Devices, Inc. Data cache region prefetcher

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6122708A (en) * 1997-08-15 2000-09-19 Hewlett-Packard Company Data cache for use with streaming data
US6434671B2 (en) * 1997-09-30 2002-08-13 Intel Corporation Software-controlled cache memory compartmentalization
US6243791B1 (en) * 1998-08-13 2001-06-05 Hewlett-Packard Company Method and architecture for data coherency in set-associative caches including heterogeneous cache sets having different characteristics
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
US6598124B1 (en) * 2000-09-29 2003-07-22 Sun Microsystems, Inc. System and method for identifying streaming-data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012172694A1 (ja) * 2011-06-17 2015-02-23 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
JP2015219813A (ja) * 2014-05-20 2015-12-07 富士通株式会社 演算処理装置、情報処理装置、及び、演算処理装置の制御方法

Also Published As

Publication number Publication date
US6961820B2 (en) 2005-11-01
KR100629061B1 (ko) 2006-09-26
JP3880581B2 (ja) 2007-02-14
US20040162946A1 (en) 2004-08-19
KR20040073269A (ko) 2004-08-19

Similar Documents

Publication Publication Date Title
JP3880581B2 (ja) キャッシュのロックを使用するストリーミング・データ
US5537573A (en) Cache system and method for prefetching of data
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
KR100389549B1 (ko) 템포럴 및 넌템포럴 명령어에 대한 공유 캐시 구조
US8495301B1 (en) System and method for scatter gather cache processing
US8122216B2 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
US20160224467A1 (en) Hierarchical cache structure and handling thereof
US7962700B2 (en) Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization
US9563568B2 (en) Hierarchical cache structure and handling thereof
EP0185867A2 (en) A memory hierarchy and its method of operation
US7376799B2 (en) System for reducing the latency of exclusive read requests in a symmetric multi-processing system
US8868844B2 (en) System and method for a software managed cache in a multiprocessing environment
US6772299B2 (en) Method and apparatus for caching with variable size locking regions
JP2005519391A (ja) 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム
US6636944B1 (en) Associative cache and method for replacing data entries having an IO state
JP4162493B2 (ja) 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
US20050102473A1 (en) Cache control method and processor system
US6715040B2 (en) Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit
US7469320B2 (en) Adaptive replacement cache
US7234021B1 (en) Methods and apparatus for accessing data elements using improved hashing techniques
US6651157B1 (en) Multi-processor system and method of accessing data therein
US20200167286A1 (en) Increasing the lookahead amount for prefetching
US7805572B2 (en) Cache pollution avoidance
US7383390B1 (en) Resource-limited directories with fine-grained eviction
JP2009026310A (ja) データ記憶方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060710

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061011

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061107

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees