JP4559861B2 - キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置 - Google Patents

キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置 Download PDF

Info

Publication number
JP4559861B2
JP4559861B2 JP2004541549A JP2004541549A JP4559861B2 JP 4559861 B2 JP4559861 B2 JP 4559861B2 JP 2004541549 A JP2004541549 A JP 2004541549A JP 2004541549 A JP2004541549 A JP 2004541549A JP 4559861 B2 JP4559861 B2 JP 4559861B2
Authority
JP
Japan
Prior art keywords
cache
data
read
data element
cache line
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
JP2004541549A
Other languages
English (en)
Other versions
JP2006501568A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2006501568A publication Critical patent/JP2006501568A/ja
Application granted granted Critical
Publication of JP4559861B2 publication Critical patent/JP4559861B2/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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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)

Description

概して本発明はデータ処理システムに関し、更に具体的には、キャッシュを備えたデータ処理システムに関する。
コンピュータシステムの性能を向上させる周知の方法は、キャッシュとしてローカル高速メモリを備えることである。中央処理装置(CPU)が特定のアドレスにおいてデータエレメントにアクセスすると、その次は隣接するアドレスへアクセスするため、キャッシュはシステム性能を向上させる。キャッシュは、より低速であるメインメモリあるいは下位キャッシュから、要求されるデータの一部に隣接して配置されるデータをフェッチ及び記録する。CPUに最も近接し、上位あるいは“L1”としてよく知られているキャッシュは、階層の最上位のキャッシュであり、通常は最速である。次いで他の、通常遅いキャッシュは、“L2”キャッシュから始まり、メインメモリに結合されている最下位のキャッシュまで、降順に配置される。
キャッシュがデータを記録及び破棄する場合は、特定の方式に従う。例えば、多くのプロセッサは、CPUにより書き込みされるメモリロケーションに対応するキャッシュラインが、キャッシュに記録される“アロケートオンライト”(allocate-on-write)方式に従う。典型的にキャッシュは、全ての場所(location)が一杯になると、新たなデータエレメント用に場所を作るために、どの場所を破棄すべきかを判断する、LRU(最長時間未使用:least-recently-used)として知られている方式に従う。
典型的にキャッシュは、システムを通してデータのコヒーレンシーを維持するために、キャッシュラインの状態を示すためのマルチステータスビット(multiple status bits)を有す。1つの一般的なコヒーレンシープロトコルは、“MOESI”プロトコルとして周知である。このプロトコルによれば、各キャッシュラインは、ラインがどのMOESI状態にあるかを示すためのステータスビットを含む。ステータスビットには、キャッシュラインが変更されている(M)ことを示すビット、キャッシュラインが排他的(E)である、あるいは共有(S)であることを示すビット、あるいはキャッシュラインは無効である(I)ことを示すビットを含む。オウンド(O:Owned)状態は、ラインが一つのキャッシュで変更されること、他のキャッシュに共有コピーがありうること、また、メモリのデータが古い状態、つまりステイルな状態であることを示す。
典型的な構造では、全キャッシュは同じ集積回路のCPUに結合され、またメインメモリは外部に配置される。メインメモリは、システムにおいて、一番遅く、一番安いメモリであり、安価であるが相対的に遅いダイナミックランダムアクセスメモリ(DRAM:Dynamic Random Access Memory)チップから構成されうる。この特徴が外部のDRAMメインメモリへのアクセスでボトルネックをもたらす。そのため、これらのボトルネックをできるだけ回避することが望ましい。更に近年は、マイクロプロセッサの速度はDRAMのアクセス速度よりも速くなっており、このボトルネック問題を悪化させている。
本発明によれば、キャッシュ及び下位メモリシステムを備えたデータ処理システムにおいて、オーバーヘッドを小さくするための方法が提供されている。まずキャッシュの少なくとも一つのキャッシュラインに、メモリロケーションが割当てられる。データプロデューサが少なくとも一つのキャッシュラインにデータエレメントを書き込む。リードワンスリクエストがデータコンシューマから受信される。それに応答して、キャッシュからデータエレメントを直接読み込むことにより、データエレメントがデータコンシューマに送られる。その後キャッシュラインは、下位メモリシステムにアクセスせずに、割当てを解除される。
一形態では、本発明は、キャッシュ、ホストブリッジ、及びメモリコントローラを備えた中央処理装置を持つデータプロセッサを有す。ホストブリッジは中央処理装置に結合されており、データエレメントに対するリードワンスリクエストをデータコンシューマから受信するように構成されている。メモリコントローラはホストブリッジと結合されている入力、及び中央処理装置と結合されている出力を有す。メモリコントローラは、リードワンスリクエストの受信に応答して、中央処理装置へデータエレメントに対するプローブを発行する。プローブは、リクエストされたデータエレメントを含む、少なくとも一つのキャッシュラインの次の状態が無効であることを示す。キャッシュがデータエレメントを有す場合、中央処理装置はホストブリッジへデータエレメントを送るとともに、キャッシュは少なくとも一つのキャッシュラインが無効であることをマークする。
本発明は以下に添付の図面とともに解説され、同じ番号は同じ要素を示す。
図1に、従来技術に公知のデータ処理システムにおける制御信号、及びデータの流れに関連するタイミング図を示す。図1に示すように、縦軸は、上から下へと流れる時間を表す。図1は水平方向沿いに割当てられた縦線として3つのデバイス(ノード)を描いている。“NODE A”と名付けられた第一ノードは、データコンシューマである。例えば、NODE Aは、データ通信チャネルの送信機などの、入力/出力デバイスに対応しうる。この例では、NODE Aはデータの流れをアシストするために、関連のダイレクトメモリアクセス(DMA)コントローラを持つことができる。“NODE B”と名付けられた第二ノードは、下位メモリシステムであり、メインメモリと、場合によっては、一つ以上の下位キャッシュを有す。“NODE C”と名付けられた第三ノードは、アプリケーションプログラムを実行する中央処理装置などのキャッシュを持つデータプロデューサである。データ通信コンテキストでは、NODE Cは、NODE Aに結合されるデータ通信デバイスにより、最終通信のために、メモリのサーキュラバッファシステムを使用して、データフレームの形状でデータを生成する。
以下にデータの流れ、及び制御信号を解説する。まず、通信プロトコルドライバなどの、NODE Cで実行するアプリケーションプログラムがデータフレームを生成する。NODE Cは、メモリロケーションに記録オペレーションを実施することにより、データフレームに対するデータを書き込む。NODE Cのローカルキャッシュにアドレスが割当てられていないので、NODE Cは矢印12で表されるメインメモリへ記録リクエストを開始する。NODE Bにおけるメモリコントローラは、時間14の間にメモリアクセスを開始し、NODE Cを含む全キャッシュに無効プローブ16を送る。無効プローブは、コヒーレンシーのために、メモリコントローラが排他状態のキャッシュラインを、NODE Cへ割当てようとしていることをシステムの全キャッシュに知らせる。データが下位メモリシステムから戻されると、メモリコントローラがそのデータを、矢印18により示されているように、NODE Cのデータ処理キャッシュへフォーワードする。
キャッシュの書き込み完了後、NODE Cのアプリケーションプログラムは、NODE CからNODEAへ、通知メッセージ22を介して、データフレームの生成を知らせる。NODE AはNODE Bに戻り、DMAリードリクエスト24で応答する。NODE Bは時間26の間にメモリアクセスを開始し、NODE Cへプローブ28を送る。このデータはNODE Cにおいてキャッシュに存在するので、矢印30により示されているように、データプロセッサはこのリクエストに応じるためにデータを戻す。その後、NODE Aにおけるデータコンシューマは、期間32の間に、通信チャネルの送信FIFO(first-in, first-out)メモリ、送信バッファなどに、データを書き込む。
システムの他のイベントに基づいて、所定の時間が経過した後、NODE Cにおけるキャッシュに記録された、変更されたキャッシュラインは、最長時間未使用のキャッシュラインとなり、キャストアウトがなされる。その後、NODE Cは、矢印36として示されているように、変更されたデータをNODE Bにおける下位メモリシステムへ送ることにより、ライトバックを実施する。NODE Bにおけるメモリコントローラは、期間38の間に、下位メモリシステムへデータを書き込む。
この従来のオペレーションが、メインメモリへ、一つのリード(読み出し)及び一つのライト(書き込み)を要求し、これにより、期間14及び38の間に、メインメモリバスを占有する点に留意すべきである。高帯域幅通信プロトコルを実装しているシステムに対して多くの場合このオペレーションが繰り返され、利用可能な帯域幅の多くの部分を消費する。近年、メインメモリのスピードは高まっているものの、プロセッサのスピードほど速くなく、また、このオペレーションに要求されるメインメモリバスの帯域幅の縮小は望ましくない。
メインメモリにおける帯域幅を小さくするために、発明者は、通信オペレーションはデータはプロセッサのキャッシュにのみ依存して単独でオペレーションを行うという特殊なものであるということを見いだし、メインメモリへのアクセス要求をまったく行わないようにした。更に、データが使用されるのは一度だけなので、その後のライトバックは要求されない。発明者はライトバックを回避するために、そのような状態を知らせるための、またライトバックの発生を防ぐための、方法及び対応のデータ処理システムを考案した。システムには、キャッシュライン状態のナンバーを追加せずに無効プローブに応答する、汎用キャッシュを備えて実装されうる。そのような方法は図2を参照して理解されうるものであり、図2は、本発明による制御信号及びデータの流れに関連するタイミング50を示す図である。図1と同様に、縦軸は、上から下へ流れる時間を表し、また横軸は上述と同じ3つのノードを描いている。
オペレーションはCPUと“PREFETCH ALLOCATE”として周知のメモリコントローラとの間のリクエスト52から開始する。この特別なキャッシュコントロール命令により、キャッシュラインが、DRAMからメモリロケーションのコンテンツをリードせずに、NODE Cのキャッシュへ割り当てられる。ラインのコンテンツは全てゼロにセットされ、またラインはM状態において生成される。メモリコントローラは、そのディレクトリをアップデートし、ターゲット完了信号54で応答する。その後、データプロセッサのドライバプログラムが、時間56の間に、フレームを構成するためにキャッシュへ直接データを書き込む。アプリケーションプログラムがフレームを構成すると、通知メッセージ58をNODE Aにおける入力/出力デバイスのDMAコントローラへ送る。I/Oデバイスは、DMAリードリクエスト60でNODE Bへ応答する。NODE Bはメモリアクセスを開始し、NODE Cへプローブ62を送る。次いでNODE Aがその内部FIFOへデータを書き込み、あるいは後の送信のために、期間66の間にバッファを送信する。NODE Aがデータをリードすると、NODE Cにおけるキャッシュが、通常は要求されるライトバックなしに、キャッシュラインの割当てを解除する。このオペレーションにより、データ処理システムは、PREFETCH ALLOCATE命令を使用することにより、またリードと同時にキャッシュからデータを取り除く(解除する)ことにより、下位メモリシステムへの全アクセスを回避できる。
キャッシュラインのコンテンツをメインメモリへライトバックせずに、キャッシュラインの割当てを解除する方法が少なくとも3つある。第一に、NODE AにおけるI/Oコントローラが、キャッシュラインがライトバックされずに無効にされる予定であることを示す、READ ONCEアトリビュート信号を追加できることである。第二に、NODE CにおけるCPUが、DMAリードリクエストに対するI/Oアドレスをデコードでき、また、所定のアドレスウインドウ内にリードが収まる場合、ラインを無効にすることである。第三に、データ処理の命令セットが、シングルキャッシュラインの割り当てを解除するために、“CFLUSH DEALLOCATE”コマンドを追加するよう変更されうることである。以下に詳細を更に説明しているように、発明者は、オンチップのI/Oコントローラのいくつかの有益な特徴を利用するために、第一の技術を選択している。この技術及び実装する装置は、以下の図3及び図4を参照して、以下に更に詳しく解説される。
図3に、本発明によるデータ処理システム100のブロック図を示す。一般に、データ処理システム100は、シングルチップマイクロプロセッサ120の形状のデータプロセッサ、入力/出力(I/O)デバイス160、及びダイナミックランダムアクセスメモリ(DRAM)170を備えている。一般に、マイクロプロセッサ120は、中央処理装置(CPU)122、メモリコントローラ126、“XBAR”と名付けられたクロスバースイッチ128、及び、更なる詳細を以下に説明している、各々が “HT” (ハイパートランスポート:HyperTransport)と名付けられている3つのホストブリッジ、130、140及び150を備えている。CPU122はいわゆる、x86命令セットの命令を実行するように構成されているプロセッサである。このx86命令は、8086のマイクロプロセッサの命令セットに基づくものであり、カリフォルニア州サンタクララのインテルコーポレーションにより最初に製造されたものである。しかしながら、CPU122は、パイプライン化やスーパースカラ設計を含む、x86プログラムを高性能で実行するための多くの優れた機能を有す。CPU122は、頻繁に使用されるデータを記録するために、少なくとも一つのキャッシュ124を備えている。好ましい形態では、CPUは実際には2つのL1キャッシュ(一方は命令用、そしてもう一方はデータ用)と、命令及びデータストリームにより共有されるL2キャッシュを備えている。この形状では、共有のL2キャッシュはREAD ONCEデータを記録する。しかしながら、本発明は少なくとも一つのキャッシュを持つCPUに応用が可能である。
メモリコントローラ126は、マイクロプロセッサ120とDRAM170との間にデータを送信するための機構である。メモリコントローラ126は、CPU122からメモリアクセスを開始、終了するタスクをオフロードする。また、メモリコントローラ126は、内部キューを有し、DRAM170へ外部バスの効率的な使用が可能になる。他の実施形態では、DRAM170は一つ以上の付加的なキャッシュ及びメインメモリを含む下位メモリシステム、スタティックRAM、非揮発性メモリ、などにより交換されうる。
XBAR128は、バスをマイクロプロセッサ120内部へ連結させるように設計された、スイッチ/マルチプレックス回路である。
ホストブリッジ130、140及び150は、対応する出力チャネル132、142及び152を通って、また、対応する入力チャネル134、144、及び154を通って、マイクロプロセッサ120の外部のデバイスと結合されている。ホストブリッジ130、140及び150の各々は、HyperTransportTM I/O Link Specification、Revision 1.03、2001ハイパートランスポートテクノロジーコンソーシアム(2001 HyperTransport technology Consortium)と互換性があり、かつ、1600MHzのデータ転送速度を使用する場合、3.2GB/秒のスループットを達成することができる。ハイパートランスポート技術とは、それぞれが独立した単方向性の2本の配線に実装されるバケットベースのリンクのことである。よって、例えば、ホストブリッジ130が出力接続132及び入力接続134を通ってI/Oデバイス160と通信する。ハイパートランスポートリンクは、名目上はポイントツーポイントのリンクであり、2つのデバイスを接続する。ハイパートランスポートリンクのチェーンは、I/Oデバイスとブリッジをホストシステムに接続するI/Oチャネルとして使用することもできる。
ハイパートランスポートリンクは、CPU、メモリ、及びI/Oデバイス間に高性能でスケーラブルな相互接続をするように設計される。ハイパートランスポートリンクは、非常に高速なデータ転送速度を実現するために、オン−ダイ差動終端(ディファレンシャルターミネイション)を備えた低振動の差動信号を使用する。ハイパートランスポートリンクは、スケーラブルな帯域幅を実現するために、スケーラブルな周波数及びデータ幅を使用する。
I/Oデバイス160は、データコンシューマとして機能する入力/出力デバイスである。例示の実施形態では、I/Oデバイス160は、電気電子技術者協会(IEEE:Institute of electrical and Electronics Engineers)により、IEEE802.3委員会の下で規格化される、ローカルエリアネットワーク通信プロトコルを実装しているコントローラであり、一般に“イーサネット”と言われている。しかしながら本発明は他のデータコンシューマにも同様に応用が可能である。
動作では、CPU122に実行するアプリケーションプログラムは、キャッシュ124においてフレームを送信及び記録するために、フレームを準備する。図2に関して上述しているように、CPU122は、キャッシュラインが、DRAM170にアクセスすることなくキャッシュ124に割り当てられるように、まずはPREFETCH ALLOCATEコマンドを実施する。I/Oデバイス160は、外部のイーサネットバスにこのデータを送信する前に、このデータにアクセスする。ハイパートランスポート規格によれば、I/Oデバイス160は、ハイパートランスポートリンクを通って、ブロックリードリクエストパケットを送ることにより、このデータエレメントを要求できる。HTブロック130は、ブロックリードリクエストを受信し、受信したブロックリードリクエストを、XBAR128を通ってメモリコントローラ126へフォーワードする。次に、メモリコントローラ126は、オンチップデバイスをプローブし、それらのオンチップデバイスがリクエストデータエレメントの有効コピーを含んでいるかどうかを判断する。この例では、キャッシュ124はこのデータの有効なコピーを含んでいる。キャッシュ124はHTブロック130を通ってI/Oデバイス160にこのデータをフォーワードすることにより、アクセスを完了する。
既存データでは、プロセッサのキャッシュ124は、LRU交換方式などの周知の方式に従う。このデータエレメントが最長時間未使用データエレメントになるとともに、キャッシュ124が新たなキャッシュラインを割り当てる必要がある場合は適宜、キャッシュ124はメモリコントローラ126を通ってDRAM170へデータを書き込む。しかしながら、プロデューサ−コンシューマデータ通信の例などの場合では、このデータはシステムにより一度だけ使用され、DRAM170への書き込みは不要となる。従って、本発明によれば、I/Oデバイス160は、ハイパートランスポート入力チャネル134を通して、READ ONCEパケットとして周知の新たなパケットタイプを送る。好ましくはREAD ONCEパケットは、現在のところ、ハイパートランスポートの規格には定義されていない、リザーブされたリードリクエストパケットのコマンドフィールドのエンコーディングを使用し、リクエストデータの用途がREAD ONCEを目的とするものであることを知らせる。READ ONCEリクエストにより、マイクロプロセッサ120は、ライトバックに通常要求されるDRAMアクセスを抑制でき、これにより、メインメモリバスの帯域幅を維持することができる。
今後のDRAMアクセスを抑制する機構が以下に詳細に説明される。この新たなREAD ONCEリクエストを受信すると、メモリコントローラ126は、リクエストデータエレメントを持ついずれのデバイスのキャッシュラインにおいて次の状態は無効(I:Invalid)であることを示すプローブを発行する。従って、データエレメントを記録している場合、キャッシュ124はメモリコントローラ126へリクエストデータをフォーワードするとともに、データエレメントが配置されているキャッシュラインは無効とマークする。READ ONCEデータを含むキャッシュラインは無効であるとマークすることにより、有効なキャッシュラインがキャッシュ124からキャストアウトされる場合、マイクロプロセッサ122では、DRAM170へ戻りデータを書き込む必要性が回避される。
図4にREAD ONCEリクエストパケットを形成するために使用されうるハイパートランスポートパケット200の図を示す。このパケット構造は、アドレスを持つリクエストパケットとして周知である。パケットは付加的な4バイトのアドレスを持つ4バイト長である。本発明によれば、I/Oデバイス160は、コマンドフィールドへ新たなREAD ONCEのエンコーディングを挿入することにより、READ ONCEリクエストに信号を送る。以下に更なる詳細を説明する。
このパケットに関連する様々なフィールドを解説する。[ビットタイム(Bit-time)0のビット7と6、及びビットタイム1のビット6と5を連結させて形成された]SeqID[3:0]が、リクエストのタググループとして使用される。タググループはデバイスにより順序付けされたシーケンスの一部として発行されたものであり、また、仮想チャネル内にしっかりと順序付けられる必要があるものである。対応するゼロ以外のSeqIDを持つ同じI/Oストリーム、及び、仮想チャネル内の全てのリクエストは、自身の順番を維持する必要がある。0×0のSeqID値は、トランザクションがシーケンスの一部でないことを示すためにリザーブされる。この値を持つトランザクションは、シーケンスオーダリング(sequence-ordering)の制限はないが、それらのトランザクションはハイパートランスポート定義のチャプター6に解説されているような他の理由により順序付けられうる。
Cmd[5:0]フィールドは、ハイパートランスポートプロトコルにおいて、様々なコマンドに信号を送るために使用される。2001ハイパートランスポート規格は、Cmd[5:0]フィールドの様々なエンコーディングを定義し、また他のエンコーディングをリザーブする。表1に、定義され、リザーブされたエンコーディングを示す。
表1
│コード│仮想チ│コマンド │コメント/オプション│パケット│
│ │ャンネ│ │ │タイプ │
│ │ル(VCh│ │ │ │
│ │an) │ │ │ │
│000000│− │NOP │ヌルパケット。フロー│情報 │
│ │ │ │制御情報を含む。 │ │
│ │ │ │ │ │
│000001│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│000010│NPC│フラッシュ│ポスティッドライトを│リクエス│
│ │ │ │フラッシュ │ト │
│000011│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│x01xxx│NPC│ライト │書き込みリクエスト │ │
│ │あるい│(sized) │[5]リクエストがポ│ │
│ │はPC│ │スティッドであるかど│ │
│ │(ビッ│ │うかを定義 │ │
│ │ト5)│ │0:ノンポスティッド│ │
│ │ │ │1:ポスティッド │ │
│ │ │ │[2]データ長を定義│ │
│ │ │ │0:バイト │ │
│ │ │ │1:ダブルワード │ │
│ │ │ │[1]帯域幅/レイテ│ │
│ │ │ │ンシー要求を定義 │ │
│ │ │ │0:ノーマル │ │
│ │ │ │1:アイソクロナス │ │
│ │ │ │[0]アクセスがホス│ │
│ │ │ │トキャッシュコヒーレ│ │
│ │ │ │ンスを要求するかどう│ │
│ │ │ │かを示す(ホストメモ│ │
│ │ │ │リへのアクセスでない│ │
│ │ │ │場合は無視) │ │
│ │ │ │0:ノンコヒーレント│ │
│ │ │ │1:コヒーレント │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│01xxx │NPC│リード │[3]応答に対するオ│リクエス│
│01xxx │ │(sized) │ーダリング要求を定義│ト/アド│
│ │ │ │0:応答はポスティッ│レス │
│ │ │ │ドリクエストをパスし│ │
│ │ │ │ない │ │
│ │ │ │1:応答はポスティッ│ │
│ │ │ │ドリクエストをパスす│ │
│ │ │ │る │ │
│ │ │ │[2]データ長を定義│ │
│ │ │ │0:バイト │ │
│ │ │ │1:ダブルワード │ │
│ │ │ │[1]帯域幅/レイテ│ │
│ │ │ │ンシー要求を定義 │ │
│ │ │ │0:ノーマル │ │
│ │ │ │1:アイソクロナス │ │
│ │ │ │[0]アクセスがホス│ │
│ │ │ │トキャッシュコヒーレ│ │
│ │ │ │ンスを要求するかどう│ │
│ │ │ │かを示す(ホストメモ│ │
│ │ │ │リへのアクセスでない│ │
│ │ │ │場合は無視) │ │
│ │ │ │0:ノンコヒーレント│ │
│ │ │ │1:コヒーレント │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│100xxx│ │リザーブド│ │ │
│ │ │−I/O │ │ │
│110000│R │Rd応答 │リード応答 │応答/デ│
│ │ │ │ │ータ │
│110001│ │リザーブド│ │ │
│110010│ │−ホスト │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│コード│VChan │コマンド │コメント/オプション│パケット│
│ │ │ │ │タイプ │
│110011│R │TgtDo│ターゲット完了をリク│応答 │
│ │ │ne │エストのソースに伝え│ │
│ │ │ │る │ │
│ │ │ │ │ │
│11010x│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│11010x│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│11011x│ │リザーブド│ │ │
│ │ │−I/O │ │ │
│11100x│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│11100x│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│11100x│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│111010│PC │ブロードキ│ブロードキャスト メ│リクエス│
│ │ │ャスト │ッセージ │ト/アド│
│ │ │ │ │レス │
│111011│ │リザーブド│ │ │
│ │ │−ホスト │ │ │
│111100│PC │フェンス │ポスティッドリクエス│リクエス│
│ │ │ │トをフェンスする │ト │
│ │ │ │ │ │
│111101│NPC│アトミック│Atomic Read-Modify- │リクエス│
│ │ │ RMW │Write │ト/アド│
│ │ │ │ │レス/デ│
│ │ │ │ │ータ │
│111110│ │リザーブド│ │ │
│ │ │−I/O │ │ │
│111111│ │同期化/エ│Link Synchronization│情報 │
│ │ │ラー │ and Error Packet │ │
PassPWは、このパケットが同じI/Oストリームのポスティッドリクエストチャネル内のパケットをパスできることを示す。そうでない場合、パケットはこれらのパケットの後ろにオーダーされる。
このビットは、ハイパートランスポート技術のスタンダードパーソナルコンピュータインターフェース(PCI)と同様のオーダリングモデルを維持するためにクリアにされる必要がある。PCI−ライクのオーダリングを必要としないシステムは、高性能化のためにPassPWをセットすることができる。
UnitID[4:0]フィールドは、トランザクションにおいてパーティシパントを識別するように機能する。全パケットはファブリックの端において、ホストブリッジへ、又はホストブリッジから送信されるので、ソースあるいはデスティネーションノードのどちらか一方が含まれる。値0はホストブリッジのUnitIDに対してリザーブされる。UnitIDの用途の更なる詳細については、2001ハイパートランスポート規格のセクション4.2を参照のこと。マルチロジカルI/Oストリームを持つノードは、マルチUnitID値を所有することができる。
ハイパートランスポートプロトコルは、コマンドに特有となる、ビットタイム2及び3の間に送信される2バイトをリザーブする。
Addr[39:2]は、リクエストによりアクセスされるダブルワードのアドレスを表す。リクエストタイプ全てに全てのアドレスビットが含まれているわけではない。細分性が更に要求される場合は、バイトマスクが使用される。
好ましくは、I/Oデバイス160は“Reserved−I/O”とマークされているCmd[5:0]のフィールド定義のいずれかを用いて、READ ONCEリクエストに信号を送る。しかしながら、更に、I/Oデバイスに対しては、リザーブされたコマンドエンコーディングはごくわずかであるので、新たなREAD ONCEパケットが、好ましくは、ただ一つのReserved−I/Oコマンドエンコーディングを使用して、他の新たなパケットフォーマットと組み合わせられる。この目的は、他の新たなパケットタイプ間を区別するための付加的な状態をエンコードするために4ビットのSeqIDフィールドを使用して達成される。
上述してきたREAD ONCEのシグナリングの論議は、ハイパートランスポートプロトコルに特有のものであることは明らにされるべきである。しかしながら、本発明の他の実施形態では、READ ONCE状態のシグナリング法が使用されうる。例えば、ビットフィールドの特殊なエンコーエヒング、既存の、あるいは追加の入力/出力ピンなどが、READ ONCE状態に信号を送るために使用されてよい。READ ONCEシグナリングは、I/O DMAリードリクエストパケットのリザーブされた、又はベンダー独自のフィールドを使用することにより、PCI、PCI−X、PCIEなどの他のI/Oバスに、達成される。
本発明は好ましい実施形態に関連して解説されているが、様々な変形は当業者には自明となるであろう。例えば、開示されている方法を用いたデータ処理システムは、メインメモリに直接接続しているシステムに応用でき、また同様に下位キャッシュにも応用できる。更に、本発明は、一つ以上の上位キャッシュを持つシステムにも応用できる。メインメモリはDRAM、SRAM、非揮発性メモリ、あるいは他のいずれの種類のメモリを用いて構成されうる。更に、一度リードされた後に、キャッシュラインの割当てを解除する様々な方法が可能である。従って、添付の請求項により、本発明の真の範囲内において、発明の全ての変形をカバーするものである。
従来技術に周知のデータ処理システムのデータの流れ及び制御信号に関連するタイミング図である。 本発明によるデータの流れ及び制御信号に関連するタイミング図である。 本発明によるデータ処理システムのブロック図である。 READ ONCEリクエストパケットを形成するために使用されるハイパートランスポートパケットのエンコーディングテーブルの例示的説明図である。

Claims (10)

  1. キャッシュ(124)及び下位メモリシステム(170)を有するメモリ階層を持つデータ処理システムにおいて、
    少なくとも一つの前記キャッシュ(124)のキャッシュラインにメモリロケーションを割り当て、
    データプロデューサ(122)により、前記少なくとも一つのキャッシュラインへデータエレメントを書き込み、かつ、
    データコンシューマ(160)から前記データエレメントに対してのリードワンスリクエストを受信し、前記データコンシューマは、前記リードワンスリクエストを通じて、前記少なくとも一つのキャッシュラインがライトバックが行われることなく無効にされることを指示し、かつ、
    前記リードワンスリクエストに応答して前記キャッシュ(124)から前記データエレメントを直接読み出すことによって前記データコンシューマ(160)へ前記データエレメントを送り、かつ、その後、前記下位メモリシステム(170)にアクセスせずに、前記少なくとも一つのキャッシュラインの割り当てを解除する、というステップを有する方法。
  2. 前記割り当て解除のステップが、前記読み出しステップに応答して、前記少なくとも一つのキャッシュラインを無効としてマークするステップを有する、請求項1記載の方法。
  3. 前記割り当てのステップが、前記下位メモリシステム(170)にアクセスせずに、前記キャッシュ(124)の、前記少なくとも一つのキャッシュラインへ、前記メモリロケーションを割り当てるステップを有する、請求項1記載の方法。
  4. 前記データエレメントを書き込む前記ステップが、データ通信フレームの少なくとも一部を書き込むステップを有する、請求項1記載の方法。
  5. キャッシュ及び下位メモリシステムを含むメモリ階層を有すデータ処理システムにおいて、オーバーヘッドを小さくするための方法であって、
    データエレメントに対するリードワンスリクエストを受信し、前記リードワンスリクエストは、少なくとも一つのキャッシュラインがライトバックが行われることなく無効にされることを指示するものであり、
    前記少なくとも一つのキャッシュラインにおいて、前記データエレメントの存在に対してプロービングし、
    前記プロービングステップとともに、前記少なくとも一つのキャッシュラインの次の状態が無効であることを示し、かつ、
    前記キャッシュに前記データエレメントが記録される場合、前記キャッシュの前記少なくとも一つのキャッシュラインからデータを送るとともに前記少なくとも一つのキャッシュラインを無効にする、あるいは、前記キャッシュに前記データエレメントが記録されない場合、前記下位メモリシステムから前記データエレメントをフェッチする、のいずれか一方により、前記リードワンスリクエストに応じる、ステップを有す方法。
  6. 前記少なくとも一つのキャッシュラインからデータを送る前記ステップは、
    下位メモリシステムにアクセスを開始し、かつ
    続いて、前記キャッシュに記録されるべき前記データエレメントが検知された場合は、前記アクセスを中断する、請求項5記載の方法。
  7. 前記リードワンスリクエストを受信する前記ステップが更に、ハイパートランスポートTMI/Oリンク仕様書バージョン1.03と実質的に互換性があるリンクを使用して、前記リードワンスリクエストを受信するステップを有する、請求項1あるいは請求項5のいずれかに記載の方法。
  8. データプロセッサ(120)であって、
    キャッシュ(124)を含む中央処理装置(122)を有し、
    前記中央処理装置(122)と結合され、データコンシューマ(160)からデータエレメントに対するリードワンスリクエストを受信できるホストブリッジ(130)を有し、前記データコンシューマは、前記リードワンスリクエストを通じて、少なくとも一つのキャッシュラインがライトバックが行われることなく無効にされることを指示するものであり、
    前記ホストブリッジ(130)と結合された入力を有し、かつ前記中央処理装置(122)と結合された出力を有するメモリコントローラを有し、
    前記メモリコントローラ(126)は、前記リードワンスリクエストを受信して、前記データエレメントに対し、前記中央処理装置へプローブを発行するものであり、このプローブは、前記データエレメントを有する前記少なくとも一つのキャッシュラインの次の状態が無効であることを示すものであり、
    前記キャッシュ(124)が前記データエレメントを含む場合、前記中央処理装置(122)は、前記ホストブリッジ(130)へ前記データエレメントを送り、かつ、前記キャッシュ(124)は前記少なくとも一つのキャッシュラインが無効であるとマークする、データプロセッサ(120)。
  9. 前記ホストブリッジ(130)が、ハイパートランスポートTMI/Oリンク仕様書バージョン1.03と実質的に互換性があるリンクを使用して、入力/出力デバイス(160)と結合される、請求項8記載のデータプロセッサ(120)。
  10. 前記中央処理装置(122)、前記ホストブリッジ(130)、及び前記メモリコントローラ(126)が、単一の集積回路に組み込まれている、請求項8記載のデータプロセッサ(120)。
JP2004541549A 2002-09-30 2003-09-18 キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置 Expired - Fee Related JP4559861B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/261,642 US7062610B2 (en) 2002-09-30 2002-09-30 Method and apparatus for reducing overhead in a data processing system with a cache
PCT/US2003/028934 WO2004031964A2 (en) 2002-09-30 2003-09-18 Method and apparatus for reducing overhead in a data processing system with a cache

Publications (2)

Publication Number Publication Date
JP2006501568A JP2006501568A (ja) 2006-01-12
JP4559861B2 true JP4559861B2 (ja) 2010-10-13

Family

ID=32030034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004541549A Expired - Fee Related JP4559861B2 (ja) 2002-09-30 2003-09-18 キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置

Country Status (8)

Country Link
US (1) US7062610B2 (ja)
EP (1) EP1546887A2 (ja)
JP (1) JP4559861B2 (ja)
KR (1) KR101069931B1 (ja)
CN (1) CN100357915C (ja)
AU (1) AU2003267204A1 (ja)
TW (1) TWI322944B (ja)
WO (1) WO2004031964A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019704A1 (en) * 2002-05-15 2004-01-29 Barton Sano Multiple processor integrated circuit having configurable packet-based interfaces
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
US20050132089A1 (en) * 2003-12-12 2005-06-16 Octigabay Systems Corporation Directly connected low latency network and interface
US20060143402A1 (en) * 2004-12-23 2006-06-29 Srinivas Chennupaty Mechanism for processing uncacheable streaming data
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US7571286B2 (en) * 2006-08-24 2009-08-04 International Business Machines Corporation Reduced memory traffic via detection and tracking of temporally silent stores
US20090037661A1 (en) * 2007-08-04 2009-02-05 Applied Micro Circuits Corporation Cache mechanism for managing transient data
US7861041B2 (en) * 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
US7873791B1 (en) * 2007-09-28 2011-01-18 Emc Corporation Methods and systems for incorporating improved tail cutting in a prefetch stream in TBC mode for data storage having a cache memory
JP2009157608A (ja) * 2007-12-26 2009-07-16 Nec Corp キャッシュメモリシステムおよびキャッシュメモリ制御方法
GB2456924B (en) * 2008-04-28 2012-03-07 Ibm Method, apparatus, computer program product and data processing program of controlling cache usage in a computer system
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
DE102009026961A1 (de) * 2009-06-16 2010-12-23 Robert Bosch Gmbh Verfahren zum Übertragen von Daten zwischen Teilnehmerstationen eines Bussystems
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US8683135B2 (en) * 2010-10-31 2014-03-25 Apple Inc. Prefetch instruction that ignores a cache hit
KR102118309B1 (ko) 2012-09-19 2020-06-03 돌비 레버러토리즈 라이쎈싱 코오포레이션 양자점/리모트 인광 디스플레이 시스템 개선
TWI526966B (zh) 2013-11-25 2016-03-21 財團法人資訊工業策進會 資料處理裝置及資料處理方法
US9792210B2 (en) 2015-12-22 2017-10-17 Advanced Micro Devices, Inc. Region probe filter for distributed memory system
US10042762B2 (en) 2016-09-14 2018-08-07 Advanced Micro Devices, Inc. Light-weight cache coherence for data processors with limited data sharing
US10235302B2 (en) * 2016-12-12 2019-03-19 Intel Corporation Invalidating reads for cache utilization in processors
US10402349B2 (en) * 2017-02-08 2019-09-03 Arm Limited Memory controller having data access hint message for specifying the given range of one or more memory addresses
US11036658B2 (en) 2019-01-16 2021-06-15 Advanced Micro Devices, Inc. Light-weight memory expansion in a coherent memory system

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
JPH0354649A (ja) * 1989-07-24 1991-03-08 Oki Electric Ind Co Ltd バッファ記憶制御方式
JP2695017B2 (ja) * 1989-11-08 1997-12-24 富士通株式会社 データ転送方式
JPH0448358A (ja) * 1990-06-18 1992-02-18 Nec Corp キャッシュ・メモリ制御方式
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
JPH04195576A (ja) * 1990-11-28 1992-07-15 Nec Corp キャッシュメモリ方式
US5375216A (en) 1992-02-28 1994-12-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
US5535116A (en) 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures
US5553265A (en) 1994-10-21 1996-09-03 International Business Machines Corporation Methods and system for merging data during cache checking and write-back cycles for memory reads and writes
US6101574A (en) 1995-02-16 2000-08-08 Fujitsu Limited Disk control unit for holding track data in non-volatile cache memory
JPH08272687A (ja) * 1995-04-03 1996-10-18 Nec Corp 入出力キャッシュメモリ
WO1996035169A1 (en) 1995-05-05 1996-11-07 Silicon Graphics, Inc. Page migration in a non-uniform memory access (numa) system
US5680576A (en) 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
JP2976867B2 (ja) * 1995-12-07 1999-11-10 日本電気株式会社 入出力バッファ装置及びその管理方法
US5829028A (en) 1996-05-06 1998-10-27 Advanced Micro Devices, Inc. Data cache configured to store data in a use-once manner
US6044438A (en) 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6223258B1 (en) * 1998-03-31 2001-04-24 Intel Corporation Method and apparatus for implementing non-temporal loads
US6212568B1 (en) * 1998-05-06 2001-04-03 Creare Inc. Ring buffered network bus data management system
US6490654B2 (en) * 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory
US6457105B1 (en) * 1999-01-15 2002-09-24 Hewlett-Packard Company System and method for managing data in an asynchronous I/O cache memory
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
US6502171B1 (en) * 1999-08-04 2002-12-31 International Business Machines Corporation Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
JP3897218B2 (ja) * 1999-10-08 2007-03-22 富士通株式会社 キャッシュ装置及び制御方法
US6549961B1 (en) * 1999-10-27 2003-04-15 Infineon Technologies North America Corporation Semaphore access in a multiprocessor system
US6751684B2 (en) * 2000-12-21 2004-06-15 Jonathan M. Owen System and method of allocating bandwidth to a plurality of devices interconnected by a plurality of point-to-point communication links
US7017008B2 (en) * 2000-12-29 2006-03-21 Intel Corporation Method and apparatus for optimizing data streaming in a computer system utilizing random access memory in a system logic device
US7100001B2 (en) 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US7047374B2 (en) 2002-02-25 2006-05-16 Intel Corporation Memory read/write reordering
US6839816B2 (en) 2002-02-26 2005-01-04 International Business Machines Corporation Shared cache line update mechanism
JP2003296189A (ja) * 2002-04-02 2003-10-17 Kyocera Corp キャッシュシステムにおけるデータ書き込み方法
US20040019704A1 (en) 2002-05-15 2004-01-29 Barton Sano Multiple processor integrated circuit having configurable packet-based interfaces
US6944719B2 (en) 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US8533401B2 (en) 2002-12-30 2013-09-10 Intel Corporation Implementing direct access caches in coherent multiprocessors

Also Published As

Publication number Publication date
AU2003267204A8 (en) 2004-04-23
WO2004031964A3 (en) 2004-10-28
US20040064651A1 (en) 2004-04-01
TWI322944B (en) 2010-04-01
KR20050046814A (ko) 2005-05-18
CN1685321A (zh) 2005-10-19
KR101069931B1 (ko) 2011-10-05
WO2004031964A2 (en) 2004-04-15
JP2006501568A (ja) 2006-01-12
CN100357915C (zh) 2007-12-26
EP1546887A2 (en) 2005-06-29
US7062610B2 (en) 2006-06-13
AU2003267204A1 (en) 2004-04-23
TW200407709A (en) 2004-05-16

Similar Documents

Publication Publication Date Title
JP4559861B2 (ja) キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
US11507528B2 (en) Pooled memory address translation
US7155572B2 (en) Method and apparatus for injecting write data into a cache
US6948035B2 (en) Data pend mechanism
JP6141379B2 (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
US5594882A (en) PCI split transactions utilizing dual address cycle
US7269695B2 (en) Ambiguous virtual channels
US20060190655A1 (en) Apparatus and method for transaction tag mapping between bus domains
KR20030025296A (ko) 중앙 집중형 스누프 필터링 방법 및 장치
US7752281B2 (en) Bridges performing remote reads and writes as uncacheable coherent operations
US7275125B2 (en) Pipeline bit handling circuit and method for a bus bridge
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
KR100432701B1 (ko) 컴퓨터 구성요소 간의 개선된 인터페이스를 위한 방법 및장치
US6757793B1 (en) Reducing probe traffic in multiprocessor systems using a victim record table

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091208

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091215

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100615

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

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

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

Year of fee payment: 3

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20101222

LAPS Cancellation because of no payment of annual fees