JP4417715B2 - キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置 - Google Patents

キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置 Download PDF

Info

Publication number
JP4417715B2
JP4417715B2 JP2003529319A JP2003529319A JP4417715B2 JP 4417715 B2 JP4417715 B2 JP 4417715B2 JP 2003529319 A JP2003529319 A JP 2003529319A JP 2003529319 A JP2003529319 A JP 2003529319A JP 4417715 B2 JP4417715 B2 JP 4417715B2
Authority
JP
Japan
Prior art keywords
cache
tag
memory
data array
access
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 - Lifetime
Application number
JP2003529319A
Other languages
English (en)
Other versions
JP2005533295A (ja
JP2005533295A5 (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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2005533295A publication Critical patent/JP2005533295A/ja
Publication of JP2005533295A5 publication Critical patent/JP2005533295A5/ja
Application granted granted Critical
Publication of JP4417715B2 publication Critical patent/JP4417715B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline

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

本発明は、コンピュータシステム内のキャッシュメモリの設計に関する。より詳細には、本発明は、キャッシュメモリ内の対応データアクセスからタグアクセスを分断する方法および装置に関する。
プロセッサクロック速度は、指数関数的速度で増加し続けるので、コンピュータシステム設計者は、さらに速いクロック速度で計算動作を行うように、ますますプレッシャーが増してきている。このことは、単一のクロックサイクルの内で動作し得る、複数のより小さな動作に各計算動作を分割することを含む、「パイプライン」計算動作によって達成され得る。パイプラインは、より小さい動作を行う、パイプラインステージのセットを介して、ロックステップに連続計算動作を供給することによって、複数の連続計算動作を同時に処理し得る。
パイプラインコンピュータシステムを設計する1つの試みは、効率的にキャッシュメモリに対する可変のアクセス時間を操作することである。一般的なコンピュータシステムでは、1つ以上のパイプラインステージは、ロード動作または格納動作を行うようにキャッシュメモリにアクセスすることに専用化される。あいにく、キャッシュアクセス時間は、キャッシュアクセスがキャッシュヒットまたはキャッシュミスを生成するかどうかに大きく依存して、変動し得る。
キャッシュヒット間でさえ、多くの事情で、キャッシュアクセスの遅延を引き起こし得る。例えば、キャッシュラインが、キャッシュミス動作の間にリターンされる場合、キャッシュフィル動作は、キャッシュのデータアレイ部分へキャッシュラインをロ−ドすることを開始する。あいにく、このキャッシュフィル動作は、パイプラインからのカレントキャッシュアクセスと衝突し得、カレントキャッシュアクセスを失速させる。他の例では、パイプラインからのロード動作が、継続中の格納動作によってキャッシュラインに向くので、読み出し書き込み(RAW)ハザードが生じ得る。この場合、ロード動作は、ロード動作がキャッシュラインから最新の値をリターンすることを保証するように継続中の格納動作が完了するまで、待たなければならない。
上記記載の問題を緩和するために、いくつかのキャッシュは、キャッシュメモリのタグアレイへのアクセスがキャッシュメモリのデータアレイへのアクセスから分断されるように設計される。なお、一般的なキャッシュメモリが、アドレスのタグ部分を有するタグアレイから1つ以上のタグを比較するために、タグアレイのタグルックアップを行う。これは、所望のキャッシュラインがキャッシュ内に位置するかどうかをキャッシュが判定することを可能にする。
タグアレイアクセスがデータアレイアクセスから分断される場合、所望のキャッシュラインがキャッシュ内に位置するかどうかを判定する、タグのルックアップおよび比較を第一に実行し得る。所望のキャッシュラインがキャッシュ内に位置する場合、タグルックアップは、キャッシュメモリのデータアレイ内の所望のキャッシュラインのセットおよびウェイ位置をリターンする。対応データアレイアクセスがコンテンションが原因で遅延される場合、対応データアレイアクセスは、データアレイがフリーになる、後の時間に開始し得る。このデータアレイアクセスは、タグルックアップの間に既に判定されたセットおよびウェイ位置を用いる。このように、タグアレイアクセスは、次のデータアレイアクセスのために繰り返される必要はない。さらに、タグアレイアクセスは、固定された時間量を取り、パイプライン設計を大幅に簡略化し得、かつ、それによりパイプライン性能を改善し得る。
あいにく、タグおよびデータアクセスを分断する既存のキャッシュは、ロード動作の間にキャッシュミスからの異常データリターンをサポートしない。異常リターンをサポートすることは複雑な問題である。なぜなら、キャッシュミスの間にリターンするキャッシュラインは、ミスを引き起こしたキャッシュアクセス、および、同じキャッシュラインへ全ての他の次のアクセスと、どうにかして整合しなければならないし、かつ、この整合は効率的な方法で行われなければならない。
必要なことは、キャッシュミス動作の間、キャッシュラインの異常リターンを効率的にサポートする方法で、キャッシュメモリ内の、対応データアクセスとタグアクセスを分断キャッシュする方法および装置である。
(要旨)
本発明の1つの実施形態は、キャッシュメモリ内の対応データアクセスとタグアクセスを分断するシステムを提供する。このシステムは、キャッシュメモリにおいてメモリリクエストを受け取ることによって動作し、メモリリクエストがメモリ位置を特定するアドレスを含む。次に、このシステムは、キャッシュメモリ内のタグアレイから少なくとも1つのタグを検索することによって、かつ、アドレスを含むキャッシュラインがキャッシュメモリに位置するかを判定するアドレスのタグ部分と、少なくとも1つのタグを比較することによってタグアクセスを行う。アドレスを含むキャッシュラインがキャッシュメモリに位置するが、キャッシュラインを含むデータアレイがビジーである場合、システムは、データアレイがフリーになる後の時間に、対応データアクセスを行う。さらに、メモリリクエストがロード動作用である場合、対応データアクセスは、先行ロード動作の完了を待つことなく開始する。
本発明の1つの実施形態において、メモリリクエストがロード動作用である場合、システムは、ロードバッファのロード動作のためのエントリを格納することで、対応データアクセスを後の時間に行い、エントリが、タグアクセスの間に判定されたデータアレイにおける対応キャッシュライン位置を特定する。データアレイが後の時間にフリーになる場合、システムは、データアレイにおけるキャッシュライン位置を判定するために再度タグアクセスを行う必要はなく、データアレイからロード動作を行うために、エントリを用いる。
本発明の1つの実施形態において、メモリリクエストが格納動作用である場合、システムは、格納バッファの格納動作のためのエントリを格納することで、対応データアクセスを後の時間に行い、エントリが、タグアクセスの間に判定されたデータアレイにおける対応キャッシュライン位置を指定する。データアレイが後の時間にフリーになる場合、システムは、データアレイにおけるキャッシュライン位置を判定するために再度タグアクセスを行う必要はなく、データアレイへの格納動作を行うために、エントリを用いる。
本発明の1つの実施形態において、メモリリクエストが、キャッシュミスを生成するロード動作用である場合、システムは、メモリ階層の低レベルからキャッシュラインをリクエストし、かつ、以前のミスバッファのロード動作のためのエントリを格納する。このシステムはまた、キャッシュラインによって満たされるターゲットキャッシュ位置を選択し、かつ、アドレスのタグ部分を有するタグアレイにおける対応するターゲットエントリを更新する。なお、ターゲットエントリを更新するステップは、ターゲットキャッシュ位置が、未解決のキャッシュミス動作と関連していることを示すターゲットエントリ内の以前のミスビットをセットするステップを含む。
本発明の1つの実施形態において、メモリリクエストがキャッシュミスを生成する場合、システムは、以前のミスバッファ内のキャッシュミスに対してエントリを作成する。この実施形態の改変例において、タグアクセスを行うステップは、さらに、タグに関連する、以前のミスビットを検索するステップを含む。この改変例において、メモリーリクエストがロード動作用である場合、アドレスのタグ部分がタグアレイのタグと整合する場合、および、対応する以前のミスビットが、関連したキャッシュラインが未解決のキャッシュミス動作の対象になることを指示するセットである場合、システムは以前のミスバッファ内のメモリリクエストに対してエントリを格納する。
本発明の1つの実施形態において、未解決のキャッシュミス動作が充足される場合にリターンされたキャッシュラインを受け取ると、システムは、データアレイにリターンされたキャッシュラインを挿入するようにキャッシュフィル動作を行う。次に、キャッシュフィル動作を待つ、以前のミスバッファ内のあらゆるメモリリクエストを完了し得る。
本発明の1つの実施形態において、システムは、以下の間のデータアレイへアクセスを調停する。未解決のキャッシュミスがリターンすることを待つメモリリクエストを含む、以前のミスバッファ、キャッシュミス動作によってリターンされるキャッシュラインを含む、フィルバッファ、メモリリクエストを生成するコンピュータシステムパイプライン、データアレイのコンテンションが原因で遅延されたロードリクエストを含むロードバッファ、および、データアレイのコンテンションが原因で遅延された格納リクエストを含む格納バッファ。
本発明の1つの実施形態において、システムは、未解決のキャッシュミス動作と衝突するキャッシュフィル動作をブロックする。
次の記載は、どのような当業者にも本発明を作り、かつ、使用できるように示され、特定用途および特定要件のコンテクストで提供される。公開された実施形態のさまざまな改変は、容易に当業者に明白になり、本明細書中に定義されている一般原理は、本発明の精神および範囲から逸脱することなく、他の実施形態および用途に適用され得る。それ故、本発明は、示された実施形態を制限するものではなく、本明細書中に公開された原理および特徴に一致する、最も広い範囲を与えられるように意図されている。
この詳細な記載の中に開示されるデータ構造およびコードは、一般にコンピュータ読み出し可能な格納媒体に格納されている。格納媒体は、コンピュータシステムによる使用目的でコードおよび/またデータを格納し得る、任意のデバイスまたは媒体で得る。これは、ディスクドライバー、磁気テープ、CD(コンパクトディスク)およびDVD(デジタルバーサタイルディスク、または、デジタルビデオディスク)のような、磁気および光学の格納デバイス、ならびに、(信号が変調される時に搬送波を用いて、または、なしで)通信媒体上に具体化されたコンピュータ命令信号に制限されないが、これらを含む。例えば、通信媒体は、インターネットのような通信ネットワークを含み得る。
(コンピュータシステム)
図1は、本発明の実施形態に従って、コンピュータシステム100を図示している。多くのコンピュータシステム100は、単一の半導体チップ101内に位置している。さらに具体的にいうと、複数のプロセッサ110、120、130および140を含み、それぞれ1次(L1)キャッシュ112、122、132および142を含む。なお、L1キャッシュ112、122、132および142は、別々の命令およびデータキャッシュであり得、あるいは、統一された命令/データキャッシュであり得る。L1キャッシュ112、122、132および142は、2次(L2)キャッシュ106に接続される。L2キャッシュ106は、メモリコントローラ104を通って外部メモリに接続される。
本発明の1つの実施形態において、L1キャッシュ112、122、132および142は、ライトスルーキャッシュであり、つまり、L1キャッシュ112、122、132および142の全ての更新は、自動的にL2キャッシュ106に伝播される。これは、コヒーレンスプロトコルを簡略化する。なぜなら、プロセッサ110が、L1キャッシュ112に存在するデータ項目を必要とする場合、プロセッサ110は、L1キャッシュ112がデータを調達するのを待つ必要なく、L2キャッシュ106からのデータを受け取り得るからである。
本発明は単一のチップ上のマルチプロセッサのコンテクストで記載されるが、本発明を、マルチプロセッサシステムまたは単一のチッププロセッサに制限するつもりはない。一般に、本発明は、ユニプロセッサコンピュータシステムまたはマルチプロセッサコンピュータシステムを含む、任意のタイプのコンピュータシステムに適用され得る。さらに、本発明は、セットアソシアティブキャッシュ、ダイレクトマップキャッシュ、命令キャッシュ、データキャッシュ、統一された命令およびデータキャッシュ、1次(L1)キャッシュまたは2次(L2)キャッシュ等を含んでいる、キャッシュメモリのほとんど全てのタイプに適用され得る。
(キャッシュメモリ)
図2は、本発明の実施形態に従って、タグアレイおよびデータアレイへの分断されたアクセスをサポートしているL1キャッシュ110の構造を図示している。
L1キャッシュ110は、タグアレイ202、データアレイ204、ライトバックバッファ210およびフィルバッファ212のような多くの従来のキャッシュメモリ構造を含む。タグアレイ202は、L1キャッシュ110内に格納されているラインのためのアドレスのタグ部分を含む。L1キャッシュ110が、ターゲットアドレスへのメモリアクセスを行うリクエストを受け取った場合、L1キャッシュ110は、タグアレイ202から1つ以上のタグをルックアップするようにターゲットアドレスのセット数を使用する。これらのタグは、ターゲットアドレスを含むキャッシュラインがL1キャッシュ110内に位置しているかどうか判定するようにターゲットアドレスのタグ部分と比較される。
図2に示されていないが、タグ比較用の比較回路がある。セットアソシアティブキャッシュのためのタグルックアップの間に取り出される複数のタグも示されていない。さらに、タグアレイ203における各エントリは、以前のミスビット203を含み、タグが未解決のキャッシュミスに関連していることを示すことに留意されたい。
データアレイ204は、タグアレイ202内に格納されているタグに対応するキャッシュラインを格納する。従来のキャッシュメモリのロード動作の間、データアレイ204は、タグアレイ202がアクセスされるのと同時刻にアクセスされる。タグルックアップが、ロード動作がヒットしていることを示す場合、データアレイ204から取り出されたデータ値は、ロード動作を完了するようにリターンされる。
データアレイ204は、ライトバックバッファ210およびフィルバッファ212を通してL2キャッシュ106と通信している。ライトバックバッファ210は、L2キャッシュ106へライトバックされることを待っているデータアレイ204から取り出されるキャッシュラインを含む。一方、フィルバッファ212は、データアレイ204に格納されることを待っているL2キャッシュ106から取り出されるキャッシュラインを含む。
なお、タグアレイ202およびデータアレイ204は、それぞれ別々のデコーダ206および208を含む。これは、タグアレイ202およびデータアレイ204において、異なったセット数のルックアップが同時に開始することを可能にすることによって、タグアレイ202およびデータアレイ204への分断されたアクセスを促進する。
L2キャッシュ110は、ロードバッファ214、格納バッファ216および以前のミスバッファ218を含む従来のキャッシュメモリにおいて存在しない、多くの新しい構造を含む。ロードバッファ214および格納バッファ216は、データアレイ204がフリーになることを待つデータアレイ204への継続中のアクセスを含む。さらに詳細には、ロードバッファ214は、データアレイ204のコンテンション(contention)が原因で遅延されたロードリクエスト、およびデータアレイ204のためのコンテンションが原因で遅延された格納リクエストを含む格納バッファ216を格納する。これらの構造は、タグアクセスおよびデータアクセスが分断されているという事実の結果として存在する。これは、ロード動作または格納動作のためのタグアクセスは、データアレイ204に対応するロードまたは格納が開始する前に、開始し得る。これらの「継続中」ロードおよび格納動作は、一時的にロードバッファ214および格納バッファ216に格納される。
以前のミスバッファ218は、未解決のキャッシュミスがリターンすることを待っているメモリリクエストを含む。これは、キャッシュミスを引き起こすメモリリクエスト、およびキャッシュラインがリターンされる前に発生する同じキャッシュラインに対する次のロードおよび格納動作を含む。
ロードバッファ214に与えられたエントリ221は、宛先レジスタ識別子222ならびにデータアレイ204内のロード動作のセットおよびウェイ位置を含む。ロードバッファ214の与えられたエントリ221は、メモリアクセスサイズを示すフィールドまたは符号拡張オプションを示すフィールドのような示していない他のフィールドも含む。格納バッファ216の与えられたエントリ225は、格納動作の間のデータアレイ204に書き込まれたデータ226ならびにデータアレイ204内の格納動作のためのターゲットキャッシュラインのセットおよびウェイ位置を含む。格納バッファ216の与えられたエントリ225は、示されていない他のフィールドも含む。本発明の1つの実施形態において、以前のミスバッファ218のエントリはロードバッファ214のエントリと同じである。
多くの構造は、ロードバッファ214、格納バッファ216、以前のミスバッファ216、フィルバッファ212およびプロセッサパイプライン(示さず)を含む、データアレイ204へのアクセスを必要とする。これらのアクセスはアービタ回路220によって制御され、図3を参照しながら、下記にさらに詳細に説明する。
(アービトレーション回路)
図3は、本発明の実施形態に従って、図2のアービタ回路220の構造を図示している。アービタ回路220は、データアレイ204のデコーダ208へのアクセスを制御する複数のスイッチ302−305を含む。最優先度は、最もデコーダ208に近い以前のミスバッファへ与えられ、それ故、データアレイ204へのアクセスのための上流コンテンダーをロックアウトするように、スイッチ305を用い得る。以前のミスバッファ218が最優先度を有する。なぜなら、以前のミスバッファ218は、キャッシュミスを待っていたアクセスを含むからである。これらのアクセスは、プロセッサがブロックを引き起こす可能性が高い。次の最優先度は、キャッシュミス動作のためのキャッシュラインをリターンしようと試みるフィルバッファ212に与えられる。次の優先度は、ロードバッファ214によって従う命令パイプラインである。最後に、格納バッファ216は、格納動作が一般的にさらにゆっくりとした速度で開始され得るので、一番下の優先度を与えられる。
(ロードおよび格納動作)
図4は、キャッシュメモリ110内でどのようにロード動作および格納動作が行われるかを図示したもので、キャッシュメモリ110は、本発明の1つの実施形態に従って、図2に図示されている。図4は、さまざまなパイプラインステージ内で何が起きているかを示すように、整理されている。命令フェッチおよびデコードパイプラインステージの後に、ステージE1、C1、C2、E4、E5、TおよびWを含むさらに多数のステージが存在する。さらに具体的にいうと、E1は、実行ステージで、C1およびC2はキャッシュアクセスステージ、E4およびE5はさらなる実行ステージで、Tは、トラップステージで、かつ、WBはライトバックステージである。なお、本発明は、一般的にパイプラインのコンピュータシステムのどのようなタイプにおいても実施され得、図4に図示されているステージの特定なセットに制限するつもりはない。
図4の上部分は、ロード動作の間に開始するアクションを図示している。システムは、C1ステージの間に数多くの動作を行い、アドレスに関連しているタグを読み出すようにタグアレイ202にルックアップを行うことを含む。システムは、メモリ管理ユニットを通して仮想対物理アドレス変換も行う。システムは、データアレイ204から対応キャッシュラインを読み出そうとも試みる。システムはさらに、ロード動作がフィルウェイおよび以前のミスウェイを読み出すことによってデータアレイ204のためのアービトレーションを喪失したかどうかを判定する。フィルウェイまたは以前のミスウェイのどちらかが同じウェイについてのものである場合、システムは、実行パイプラインがアービトレーションを喪失したことを認識する。なぜなら、図3に図示されているアービタ220は、フィルバッファ212および以前のミスバッファ218に優先度を与えるからである。システムは、もし必要ならば、キャッシュミスの間に置換するキャッシュ内のラインを特定するようにミスウェイも計算する。
ステージC2の間、システムは、ロードがキャッシュヒットを引き起こすかどうか判定するように、タグアレイ202から取り出されるタグと最新のタグを比較することを含む、さらなる動作を行う。ロードがヒットを引き起こす場合、システムはデータアレイ204からデータをロードする。システムは、ロード動作と以前の格納動作との間に読み出し書き込み(RAW)ハザードが存在するかを判定するために、格納バッファ216上で、コンテントアドレス可能サーチも行う。システムは、ロード動作のためのロードバッファ214へのエントリも考慮した上で挿入する。システムは、キャッシュミスが発生する場合の以前のミスバッファ218の空スロットをさらに特定する。システムは、以前のミスバッファ218にロードが入る必要がある場合に、以前のミスバッファ218内にキューのセットおよびウェイも読み込む。キャッシュミスの場合、システムは、次のアクセスがキャッシュミスがキャッシュラインについて未解決であることを認識するように、タグを新しいタグに更新し、かつ、以前のミスビットをセットする。
ステージE4の間、システムは、ロードがヒットを生成し、かつ、データアレイ204にアクセス可能であった場合、あるいは、ロードがミス、以前のミス、またはRAWハザードを生成した場合、ロードバッファ214から考慮した上で挿入されるエントリを削除することを含むさらなる動作を行う。(なお、システムは、以前のミスがタグアレイエントリの以前のミスビットを検査することによって存在するかを判定し得る。)ロードがキャッシュミスまたは以前のミスを生成する場合、以前のミスバッファ218へロードを入れる。なお、以前のミスバッファは、各未解決のキャッシュミス動作のキューのセットとして組織化される。これは、システムが十分にアソシアティブサーチを行う代わりに各キューのヘッドのみを検査することを可能にする。これは、ルックアップ時間を減少する。システムは、ロードがキャッシュミスを生成した場合、L2キャッシュ106から対応キャッシュラインにプルするようにロードリクエストキューへロードを入れる。
最終的に、E4ステージにおいて、システムは、必要であれば、L2キャッシュ106にミスを出す。
図4の下の部分は、格納動作の間に開始するアクションを図示している。C1ステージの間、システムは、アドレスと関連しているタグを読み込むようにタグアレイ202にルックアップを行うことを含む、数々の動作を行う。システムは、メモリ管理ユニットを通して仮想対物理アドレス変換も行う。
C2ステージの間、キャッシュヒットがあるかどうかを判定するタグアレイ202から取り出されるタグと現在のタグを比較することを含む、さらなる動作を行う。ヒットがある場合、システムはデータアレイ204へデータを格納する。システムは、格納が以前のミスバッファ218に入れられるべき場合に以前のミスバッファ218内にキューについてのセットおよびウェイ情報も読み込む。
E4ステージの間、ストアがキャッシュヒットであるが、データアレイ204へのアクセスをゲインすることができなかった場合、システムは、格納バッファ216へ格納動作を入れることを含むさらなる動作を行う。システムはまた、格納が以前のミスを生成する場合、以前のミスバッファ218へ格納を入れる。
最終的にステージE4の間に、システムは、L2キャッシュ206へのラインを格納するように、格納を格納リクエストキューへ入れる。
本発明の実施形態の前述の説明は、ただ説明および記載の目的で示されている。以上の説明は、本発明を公開されている形式に、排除または制限するつもりはない。従って、多くの変更および改変は当業者に明らかである。さらに、上記は、本発明を制限するつもりはない。本発明の範囲は、添付の特許請求の範囲に定義されている。
図1は本発明の実施形態に基づくコンピュータシステムを図示したものである。 図2は、本発明の実施形態に基づくタグアレイおよびデータアレイへの、分断されたアクセスをサポートする、キャッシュメモリを図示している。 図3は、本発明の実施形態に基づくアービトレーション回路を図示している。 図4は、本発明の実施形態に基づく図2に図示されているキャッシュメモリ内で、ロード動作および格納動作がどのように行われているかを図示したものである。

Claims (21)

  1. キャッシュメモリ内の対応するデータアクセスからタグアクセスを分断する方法であって、
    該キャッシュメモリでメモリリクエストを受け取ることであって、該メモリリクエストは、該メモリリクエストに関連しているメモリ位置を特定するアドレスを含む、ことと、
    該キャッシュメモリ内のタグアレイから少なくとも1つのタグを検索して、該少なくとも1つのタグと該アドレスのタグ部分とを比較することによってタグアクセスを行い、該アドレスを含むキャッシュラインが該キャッシュメモリに位置しているかどうかを判定する、こととを含み、
    該アドレスを含む該キャッシュラインが該キャッシュメモリに位置しているが、該キャッシュラインを含むデータアレイがビジーである結果としてタグルックアップがキャッシュヒットを生じる場合、該方法は、該データアレイがフリーになる後の時間において該データアレイへの該対応するデータアクセスを行うことをさらに包含し、
    該メモリリクエストがロード動作用である場合、先行するロード動作の完了を待機することなく、該対応するデータアクセスが行われ、
    該メモリリクエストがキャッシュミスを生成するロード動作用である場合、該方法は、
    メモリ階層の低いレベルから該キャッシュラインをリクエストすることと、
    以前のミスバッファにおける該ロード動作用のエントリを格納することであって、該以前のミスバッファは、未解決のキャッシュミスがリターンすることを待機しているメモリリクエストと、キャッシュラインがリターンされる前に発生する同じキャッシュラインに対する次のロード動作および格納動作とを含む、ことと、
    該キャッシュラインによって満たされる対象となるターゲットキャッシュ位置を選択することと、
    該アドレスの該タグ部分を用いて該タグアレイの対応するターゲットエントリを更新することと
    をさらに包含し、
    該ターゲットエントリの更新は、該ターゲットキャッシュ位置が未解決のキャッシュミス動作に関連していることを示す該ターゲットエントリ内の以前のミスビットを設定することを包含する、方法。
  2. 前記メモリリクエストがロード動作用である場合、後の時間において前記対応するデータアクセスを行うことは、
    ロードバッファの該ロード動作用のエントリを格納することであって、該エントリは、前記タグアクセス中に判定された該データアレイの対応するキャッシュラインの位置を特定する、ことと、
    該データアレイが該後の時間にフリーになる場合、該データアレイの該キャッシュラインの位置を再度判定するために該タグアクセスを行う必要がなく、該エントリを用いて該データアレイからの該ロード動作を行うことと
    を包含する、請求項1に記載の方法。
  3. 前記メモリリクエストが格納動作用である場合、後の時間に前記対応するデータアクセスを行うことは、
    該格納動作用のエントリを格納バッファに格納することであって、該エントリは、前記タグアクセス中に判定された前記データアレイの対応するキャッシュラインの位置を特定する、ことと、
    該データアレイが該後の時間にフリーになる場合、該データアレイの該キャッシュラインの位置を再度判定するために該タグアクセスを行う必要がなく、該エントリを用いて、該データアレイへの該格納動作を行うことと
    を包含する、請求項1に記載の方法。
  4. 前記メモリリクエストがキャッシュミスを生成する場合、前記方法は、以前のミスバッファ内で該キャッシュミス用のエントリを作成することをさらに包含する、請求項1に記載の方法。
  5. 前記タグアクセスを行うことは、前記少なくとも1つのタグに関連している以前のミスビットを検索することをさらに包含し、
    前記メモリリクエストがロード動作用であり、かつ、前記アドレスの前記タグ部分が前記タグアレイのタグと整合し、かつ、前記対応する以前のミスビットがセットされており、関連するキャッシュラインが未解決のキャッシュミス動作下にあることを示す場合に、前記方法は、該以前のミスバッファ内の該メモリリクエスト用のエントリを格納することをさらに包含する、請求項4に記載の方法。
  6. 未解決のキャッシュミス動作に対応する、リターンされたキャッシュラインを受け取ることと、
    前記データアレイに該リターンされたキャッシュラインを挿入するようにキャッシュフィル動作を行うことと、
    該キャッシュフィル動作を待機していた前記以前のミスバッファ内のメモリリクエストを完了することと
    をさらに包含する、請求項4に記載の方法。
  7. 未解決のキャッシュミスがリターンすることを待機しているメモリリクエストを含む以前のミスバッファと、
    キャッシュミス動作によってリターンされたキャッシュラインを含むフィルバッファと、
    メモリリクエストを生成するコンピュータシステムパイプラインと、
    前記データアレイのコンテンションが原因で遅延しているロードリクエストを含むロードバッファと、
    該データアレイのコンテンションが原因で遅延している格納リクエストを含む格納バッファと
    の間で、該データアレイへのアクセスをアービトレートしていることをさらに包含する、請求項1に記載の方法。
  8. 未解決のキャッシュミス動作に関連するキャッシュ位置へのキャッシュフィル動作をブロックすることをさらに包含する、請求項1に記載の方法。
  9. タグアクセスをキャッシュメモリ内の対応するデータアクセスから分断する装置であって、
    メモリリクエストを受け取るように構成されるキャッシュメモリであって、該メモリリクエストは、該メモリリクエストに関連しているメモリ位置を特定するアドレスを含む、キャッシュメモリと、
    該キャッシュメモリ内のタグアレイと、
    該キャッシュメモリ内のデータアレイと、
    少なくとも1つのタグを該タグアレイから検索して、該少なくとも1つのタグを該アドレスのタグ部分とを比較し、該アドレスを含むキャッシュラインが該キャッシュメモリに位置しているかどうかを判定するように構成されているタグアクセスメカニズムと、
    該キャッシュメモリ内のデータアレイアクセスメカニズムであって、該アドレスを含む該キャッシュラインが該キャッシュメモリに位置しているが、該データアレイがビジーである結果としてタグルックアップがキャッシュヒットを生じる場合、該データアレイがフリーになる後の時間に該データアレイへの対応するデータクセスを行うように構成されているデータアレイアクセスメカニズムと
    を備え、
    該メモリリクエストがロード動作用である場合、先行するロード動作の完了を待機することなく、該対応するデータクセスを行うように該データアレイアクセスメカニズムが構成され、
    該メモリリクエストがキャッシュミスを生成するロード動作用である場合、該データアレイアクセスメカニズムは、
    メモリ階層の低いレベルから該キャッシュラインをリクエストし、
    以前のミスバッファにおける該ロード動作用のエントリを格納して、
    該キャッシュラインによって満たされる対象となるターゲットキャッシュ位置を選択して、
    該アドレスの該タグ部分を用いて該タグアレイの対応するターゲットエントリを更新する
    ように構成され、該以前のミスバッファは、未解決のキャッシュミスがリターンすることを待機しているメモリリクエストと、キャッシュラインがリターンされる前に発生する同じキャッシュラインに対する次のロード動作および格納動作とを含み、
    該ターゲットエントリの更新は、該ターゲットキャッシュ位置が未解決のキャッシュミス動作に関連していることを示す該ターゲットエントリ内の以前のミスビットを設定することを包含する、装置。
  10. 前記データアレイがフリーになることを待機しているロード動作を含むロードバッファをさらに含み、前記メモリリクエストがロード動作用である場合、該データアレイアクセスメカニズムは、
    該ロードバッファの該ロード動作用のエントリを格納することであって、該エントリは、前記タグアクセス中に判定された該データアレイの対応するキャッシュラインの位置を特定する、ことと、
    該データアレイが後の時間にフリーになる場合、該データアレイの該キャッシュラインの位置を再度判定するために該タグアクセスを行う必要がなく、該エントリを用いて、該データアレイからの該ロード動作を行うことと
    によって、該後の時間に前記対応するデータアクセスを行うように構成される、請求項9に記載の装置。
  11. 前記ロードバッファがキューとして体系づけられる、請求項10に記載の装置。
  12. 前記データアレイがフリーになることを待機している格納動作を含む格納バッファをさらに含み、前記メモリリクエストが格納動作用である場合、該データアレイアクセスメカニズムは、
    該格納バッファの該格納動作用のエントリを格納することであって、該エントリは、前記タグアクセス中に判定された該データアレイの対応するキャッシュラインの位置を特定する、ことと、
    該データアレイが後の時間にフリーになる場合、該データアレイの該キャッシュラインの位置を再度判定するために該タグアクセスを行う必要がなく、該エントリを用いて、該データアレイに対する該格納動作を行うことと
    によって、該後の時間に前記対応するデータアクセスを行うように構成される、請求項9に記載の装置。
  13. 前記格納バッファがキューとして体系づけられる、請求項12に記載の装置。
  14. 前記メモリリクエストがキャッシュミスを生成する場合、前記データアレイアクセスメカニズムは、以前のミスバッファ内の該キャッシュミス用のエントリを作成するように構成されている、請求項9に記載の装置。
  15. 前記タグアクセスメカニズムは、前記少なくとも1つのタグに関連している以前のミスビットを検索するように構成されており、
    前記メモリリクエストがロード動作用であり、かつ、前記アドレスの前記タグ部分が前記タグアレイのタグと整合し、かつ、前記対応する以前のミスビットがセットされており、関連するキャッシュラインが未解決のキャッシュミス動作下にあることを示す場合に、該データアレイアクセスメカニズムは、該以前のミスバッファ内の該メモリリクエスト用のエントリを生成するように構成される、請求項14に記載の装置。
  16. 未解決のキャッシュミス動作に対応するリターンされたキャッシュラインを受け取り、
    キャッシュフィル動作を行って、該リターンされたキャッシュラインを前記データアレイに挿入し、
    該キャッシュフィル動作を待機していた前記以前のミスバッファ内のメモリリクエストを完了する
    ように構成されたキャッシュフィルメカニズムをさらに含む、請求項14に記載の装置。
  17. 前記以前のミスバッファがキューとして体系づけられる、請求項14に記載の装置。
  18. 未解決のキャッシュミスがリターンすることを待機しているメモリリクエストを含む以前のミスバッファと、
    キャッシュミス動作によってリターンされたキャッシュラインを含むフィルバッファと、
    メモリリクエストを生成するコンピュータシステムパイプラインと、
    前記データアレイのコンテンションが原因で遅延しているロードリクエストを含むロードバッファと、
    該データアレイのコンテンションが原因で遅延している格納リクエストを含む格納バッファと
    の間で、該データアレイへのアクセスをアービトレートするように構成されるアービトレーションメカニズムをさらに含む、請求項9に記載の装置。
  19. 前記装置は、未解決のキャッシュミス動作に関連するキャッシュ位置に対するキャッシュフィル動作をブロックするように構成される、請求項9に記載の装置。
  20. タグアクセスをキャッシュメモリ内の対応するデータアクセスから分断する装置であって、
    該キャッシュメモリと、
    メモリリクエストを受け取るように構成されている該キャッシュメモリ内のリクエスト入力であって、該メモリリクエストは、該メモリリクエストに関連しているメモリ位置を特定するアドレスを含む、リクエスト入力と、
    該キャッシュメモリ内のタグアレイと、
    該キャッシュメモリ内のデータアレイと、
    該タグアレイから少なくとも1つのタグを検索し、該少なくとも1つのタグと該アドレスのタグ部分とを比較して、該アドレスを含むキャッシュラインが該キャッシュメモリ内に位置しているかどうかを判定するように構成されているタグアクセスメカニズムと、
    該キャッシュメモリ内のデータアレイアクセスメカニズムであって、該アドレスを含む該キャッシュラインが該キャッシュメモリに位置しているが、該データアレイがビジーである結果としてタグルックアップがキャッシュヒットを生じる場合、該データアレイがフリーになる後の時間において該データアレイへの該対応するデータアクセスを行うように構成されており、かつ、該メモリリクエストがロード動作用である場合、先行するロード動作の完了を待機することなく、該対応するデータアクセスを行うように構成されおり、かつ、該メモリリクエストがキャッシュミスを生成するロード動作用である場合、メモリ階層の低いレベルから該キャッシュラインをリクエストし、以前のミスバッファにおける該ロード動作用のエントリを格納して、該キャッシュラインによって満たされる対象となるターゲットキャッシュ位置を選択して、該アドレスの該タグ部分を用いて該タグアレイの対応するターゲットエントリを更新するように構成されている、データアレイアクセスメカニズムと、
    キャッシュミス動作によってリターンされるキャッシュラインを含むフィルバッファと、
    該データアレイへのアクセスに対するコンテンションが原因で遅延しているロードリクエストを含むロードバッファと、
    該データアレイへのアクセスに対するコンテンションが原因で遅延している格納リクエストを含む格納バッファと
    を含み、該以前のミスバッファは、未解決のキャッシュミスがリターンすることを待機しているメモリリクエストと、キャッシュラインがリターンされる前に発生する同じキャッシュラインに対する次のロード動作および格納動作とを含み、該ターゲットエントリの更新は、該ターゲットキャッシュ位置が未解決のキャッシュミス動作に関連していることを示す該ターゲットエントリ内の以前のミスビットを設定することを包含する、装置。
  21. タグアクセスを対応するデータアクセスから分断するキャッシュメモリを含むコンピュータシステムであって、
    プロセッサと、
    メモリと、
    該プロセッサと該メモリとの間に接続されるキャッシュメモリと、
    メモリリクエストを受け取るように構成されている該キャッシュメモリ内のリクエスト入力であって、該メモリリクエストは、該メモリリクエストに関連しているメモリ位置を特定するアドレスを含む、リクエスト入力と、
    該キャッシュメモリ内のタグアレイと、
    該キャッシュメモリ内のデータアレイと、
    該タグアレイから少なくとも1つのタグを検索して、該少なくとも1つのタグと該アドレスのタグ部分とを比較し、該アドレスを含むキャッシュラインが該キャッシュメモリに位置しているかどうかを判定するように構成されているタグアクセスメカニズムと、
    該キャッシュメモリ内のデータアレイアクセスメカニズムであって、該アドレスを含む該キャッシュラインが該キャッシュメモリに位置しているが、該データアレイがビジーである結果としてタグルックアップがキャッシュヒットを生じる場合、該データアレイがフリーになる後の時間に該データアレイへの該対応するデータアクセスを行うように構成されているデータアレイアクセスメカニズムと
    を備え、
    該メモリリクエストがロード動作用である場合、該データアレイアクセスメカニズムは、先行するロード動作の完了を待機することなく該対応するデータアクセスを行うように構成され、
    該メモリリクエストがキャッシュミスを生成するロード動作用である場合、該データアレイアクセスメカニズムは、
    メモリ階層の低いレベルから該キャッシュラインをリクエストし、
    以前のミスバッファにおける該ロード動作用のエントリを格納して、
    該キャッシュラインによって満たされる対象となるターゲットキャッシュ位置を選択して、
    該アドレスの該タグ部分を用いて該タグアレイの対応するターゲットエントリを更新する
    ように構成され、該以前のミスバッファは、未解決のキャッシュミスがリターンすることを待機しているメモリリクエストと、キャッシュラインがリターンされる前に発生する同じキャッシュラインに対する次のロード動作および格納動作とを含み、
    該ターゲットエントリの更新は、該ターゲットキャッシュ位置が未解決のキャッシュミス動作に関連していることを示す該ターゲットエントリ内の以前のミスビットを設定することを包含する、コンピュータシステム。
JP2003529319A 2001-09-14 2002-09-13 キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置 Expired - Lifetime JP4417715B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32398901P 2001-09-14 2001-09-14
PCT/US2002/029259 WO2003025757A2 (en) 2001-09-14 2002-09-13 Method and apparatus for decoupling tag and data accesses in a cache memory

Publications (3)

Publication Number Publication Date
JP2005533295A JP2005533295A (ja) 2005-11-04
JP2005533295A5 JP2005533295A5 (ja) 2009-05-21
JP4417715B2 true JP4417715B2 (ja) 2010-02-17

Family

ID=23261595

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003529319A Expired - Lifetime JP4417715B2 (ja) 2001-09-14 2002-09-13 キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置

Country Status (6)

Country Link
US (1) US6944724B2 (ja)
EP (1) EP1425670A2 (ja)
JP (1) JP4417715B2 (ja)
KR (1) KR100617663B1 (ja)
AU (1) AU2002330027A1 (ja)
WO (1) WO2003025757A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030137519A1 (en) * 2002-01-22 2003-07-24 Nazanda Rima M. Method and apparatus to handle multiple requests to different memory agents
US20050010595A1 (en) * 2003-07-11 2005-01-13 International Business Machines Corporation System and method for automating an identification mechanism and type information configuration process for a real-time data feed to a database
US7769950B2 (en) * 2004-03-24 2010-08-03 Qualcomm Incorporated Cached memory system and cache controller for embedded digital signal processor
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7836262B2 (en) 2007-06-05 2010-11-16 Apple Inc. Converting victim writeback to a fill
US8239638B2 (en) 2007-06-05 2012-08-07 Apple Inc. Store handling in a processor
US20090006777A1 (en) * 2007-06-28 2009-01-01 Donley Greggory D Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
GB2456405B (en) * 2008-01-15 2012-05-02 Ibm Store aborting
US8103831B2 (en) * 2008-03-31 2012-01-24 Intel Corporation Efficient method and apparatus for employing a micro-op cache in a processor
US8332590B1 (en) * 2008-06-25 2012-12-11 Marvell Israel (M.I.S.L.) Ltd. Multi-stage command processing pipeline and method for shared cache access
JP2010033480A (ja) * 2008-07-31 2010-02-12 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
US8868838B1 (en) 2008-11-21 2014-10-21 Nvidia Corporation Multi-class data cache policies
KR100985517B1 (ko) 2008-12-04 2010-10-05 주식회사 에이디칩스 캐시메모리 제어방법
JP2010146084A (ja) * 2008-12-16 2010-07-01 Toshiba Corp キャッシュメモリ制御部を備えるデータ処理装置
US20100169578A1 (en) * 2008-12-31 2010-07-01 Texas Instruments Incorporated Cache tag memory
US8352683B2 (en) * 2010-06-24 2013-01-08 Intel Corporation Method and system to reduce the power consumption of a memory device
US20130145097A1 (en) * 2011-12-05 2013-06-06 Qualcomm Incorporated Selective Access of a Store Buffer Based on Cache State
JP2014006807A (ja) * 2012-06-26 2014-01-16 Fujitsu Ltd 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法
US9110811B2 (en) * 2012-09-18 2015-08-18 Oracle International Corporation Prefetching method and apparatus
US9529720B2 (en) * 2013-06-07 2016-12-27 Advanced Micro Devices, Inc. Variable distance bypass between tag array and data array pipelines in a cache
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9632947B2 (en) * 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9779025B2 (en) 2014-06-02 2017-10-03 Micron Technology, Inc. Cache architecture for comparing data
US10922230B2 (en) * 2016-07-15 2021-02-16 Advanced Micro Devices, Inc. System and method for identifying pendency of a memory access request at a cache entry
US10565109B2 (en) * 2017-09-05 2020-02-18 International Business Machines Corporation Asynchronous update of metadata tracks in response to a cache hit generated via an I/O operation over a bus interface
US10579535B2 (en) 2017-12-15 2020-03-03 Intel Corporation Defragmented and efficient micro-operation cache

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
DE69323790T2 (de) * 1992-04-29 1999-10-07 Sun Microsystems, Inc. Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
US5745729A (en) * 1995-02-16 1998-04-28 Sun Microsystems, Inc. Methods and apparatuses for servicing load instructions
US6732236B2 (en) * 2000-12-18 2004-05-04 Redback Networks Inc. Cache retry request queue
US6915396B2 (en) * 2001-05-10 2005-07-05 Hewlett-Packard Development Company, L.P. Fast priority determination circuit with rotating priority

Also Published As

Publication number Publication date
US6944724B2 (en) 2005-09-13
AU2002330027A1 (en) 2003-04-01
JP2005533295A (ja) 2005-11-04
EP1425670A2 (en) 2004-06-09
KR100617663B1 (ko) 2006-08-28
US20030056066A1 (en) 2003-03-20
WO2003025757A2 (en) 2003-03-27
KR20040033029A (ko) 2004-04-17
WO2003025757A3 (en) 2003-10-16

Similar Documents

Publication Publication Date Title
JP4417715B2 (ja) キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置
JP2005533295A5 (ja)
US6704841B2 (en) Method and apparatus for facilitating speculative stores in a multiprocessor system
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US6718839B2 (en) Method and apparatus for facilitating speculative loads in a multiprocessor system
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
EP1399823B1 (en) Using an l2 directory to facilitate speculative loads in a multiprocessor system
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US5555392A (en) Method and apparatus for a line based non-blocking data cache
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
JP2000339157A (ja) キャッシュメモリ制御装置および計算機システム
JP2001195304A (ja) キャッシュ記憶装置
US6976128B1 (en) Cache flush system and method
JP2006018841A (ja) さまざまなメモリラインサイズに適応的に対応可能なキャッシュメモリシステムおよび方法
JP2000259498A (ja) マルチスレッド・プロセッサの命令キャッシュ
JP7070384B2 (ja) 演算処理装置、メモリ装置、及び演算処理装置の制御方法
JP3481425B2 (ja) キャッシュ装置
US12038839B2 (en) Processor and method for designating a demotion target to be demoted from an in-core cache structure to an out-of-core cache structure
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JP4796580B2 (ja) フェッチ・バーストを用いて情報をキャッシュ・モジュールに与える装置及び方法
JPH0773035A (ja) 複数プロセツサ・システム
JP3260566B2 (ja) 情報処理システムにおける記憶制御方法および記憶制御装置
JPH07101412B2 (ja) データ事前取出し方法およびマルチプロセッサ・システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090323

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20090330

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091006

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4417715

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121204

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131204

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term