JP2006526226A - ツリーベースメモリ構造 - Google Patents

ツリーベースメモリ構造 Download PDF

Info

Publication number
JP2006526226A
JP2006526226A JP2006514914A JP2006514914A JP2006526226A JP 2006526226 A JP2006526226 A JP 2006526226A JP 2006514914 A JP2006514914 A JP 2006514914A JP 2006514914 A JP2006514914 A JP 2006514914A JP 2006526226 A JP2006526226 A JP 2006526226A
Authority
JP
Japan
Prior art keywords
memory
hub
hub device
message
data
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
JP2006514914A
Other languages
English (en)
Other versions
JP4290730B2 (ja
Inventor
フレイム,デイヴィッド
モーリッツ,カール
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2006526226A publication Critical patent/JP2006526226A/ja
Application granted granted Critical
Publication of JP4290730B2 publication Critical patent/JP4290730B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Abstract

ツリーベーストポロジを有するメモリアーキテクチャ。メモリデバイスはインテリジェントメモリハブとペアとなり、そのインテリジェントメモリハブがメモリアクセス要求にサービスし、メモリデバイスのネットワーク中のデータを管理する。メモリハブはネットワークトポロジを動的に再構成して、故障したデバイスまたはデバイスの付加削除を補償する。このメモリアーキテクチャは入出力デバイスもサポートでき、複数のシステム間で共有することができる。

Description

本発明の実施形態はメモリアーキテクチャの分野に関する。特に、ツリーベースネットワークメモリアーキテクチャに関する。
従来のコンピュータシステムは、記憶容量に関してスケール能力が限定されたメモリアーキテクチャを利用している。従来のメモリアーキテクチャは、64ギガバイトより大きいメモリをサポートできない。いくつかの要因により従来のメモリアーキテクチャはこの限界を超えてスケールすることができない。メモリアーキテクチャのスケーラビリティを制限する重要な要因に信号インテグリティの維持が挙げられる。従来のメモリアーキテクチャは、信号を長い経路を通して送ることによる信号の自然的歪みや低下によるメモリデバイスのアドレッシングまたは制御に係わる信号を送信できる物理的距離を伸ばすためにリピータ構造を使用する。
しかし、リピータ構造は信号のレイテンシを増大し、距離全体及びそれによりサポートできるメモリアーキテクチャの容量全体に上限ができてしまう。リピータ構造は、単一リニアパスにおける信号の強度をブーストする。しかし、1つの通信チャンネルより多いファンアウトを可能とするものではない。このことにより、メモリ構造の深さは単一レベルに制限される(すなわち、チップセット−リピータ構造−メモリデバイス)。従来のメモリアーキテクチャにおいてリピータ構造によりメモリデバイスに送られる要求は、リピータチャネル全体が単一の経路として作用するので、1つずつ送らなければならない。このように、要求を送る時には経路の全長が使われ、その要求が完了するまでは他の使用は禁止される。
本発明の実施形態を添付した図面において、限定としてではなく例示として示した。図面では、同様の参照符号は同様のエレメントを示す。留意すべきことは、この開示において、「1つの(一)」実施形態は必ずしも同じ実施形態をではなく、少なくとも1つの実施形態を示す。
発明の詳細な説明
図1は、ネットワーク化されたメモリアーキテクチャを利用するシステム100を示すブロック図である。システム100はコンピュータシステム102を含む。コンピュータシステム102は、パーソナルコンピュータ、サーバ、ワークステーション、メインフレーム、または同様のコンピュータである。コンピュータシステム102は、一組のコンピュータ読み取り可能命令に化体したプログラムを実行する中央処理ユニット(CPU)101を含む。コンピュータシステム102は、マルチプロセッシング用に別のCPU103を含んでいてもよい。CPU101は通信ハブまたは通信チップセット105に接続されている。通信ハブ105は、CPU101、103と、メモリサブシステム130、周辺デバイス109、記憶デバイス111、ネットワーク通信、その他のサブシステムとの間の通信を管理する。一実施形態において、通信ハブ105は、通信処理を分担する複数の部品(例えば、ノースブリッジとサウスブリッジ)に分かれていてもよい。
一実施形態において、通信ハブ105は、メモリハブ115を有する独立リンクにより、メモリサブシステム130と接続されている。他の実施形態において、通信ハブ105は、別のメモリハブとの複数の独立リンクを有していてもよい。一実施形態において、通信ハブ105は、メモリサブシステム130におけるメモリハブの設定を管理する。他の実施形態において、メモリサブシステム130の管理は、主にメモリハブ自体に分散されている。通信ハブ105は、転送テーブルを持ち、メモリサブシステム130のトポロジーをトラックする。
一実施形態において、メモリサブシステム130はツリーベースネットワークである。通信ハブ105はメモリサブシステム130のルートとして機能する。メモリサブシステム130内の通信は主に通信ハブ105から始まるか、またはそれで終わる。通信ハブ105は、メモリサブシステム130にリソース要求を生成し、CPU101、103にサービスし、及びメモリハブにより実行される動作命令を送信する。このサービスには、メモリアクセス(例えば、リード及びライトコマンド)、リソースアクセス(例えば、メモリハブに接続されているデバイスへのアクセス)するメッセージの送信が含まれる。
メモリハブ115は、一組のメモリデバイス117と接続されている。メモリデバイス117はいかなる構成でもよく、デュアルインラインメモリモジュール(DIMM)、シングルインラインモジュール(SIMM)、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダブルデータレートランダムアクセスメモリ(DDRRAM)、その他を含む。ハブ115に接続されるメモリデバイス117の個数は、ハブ115につなぐデバイスの技術的物理的制約で決まる。
メモリハブ115は、入出力ポート131を含んでもよい。入出力ポート131を用いて、周辺デバイス119をメモリサブシステム130につなぐ。メモリハブ115に接続された入出力デバイス119は、メモリマップドデバイスでもよく、アドレス空間が割り当てられているか、またはシステム100及びメモリサブシステム130と同様にインターフェイスされている。メモリハブ115にリンクされた各デバイスは、他のメモリハブ133、入出力デバイス119、及び通信ハブ105を含む独立リンクを有する。独立リンクは、2つのエンドポイント間でメッセージを送受信しない時に利用可能な、ポイントツーポイントリンクである。このように、メモリハブ115は、異なるリンク131、135に同時に関係のないメッセージを送受信することができる。
一実施形態において、メモリハブ115は特定用途集積回路(ASIC)である。メモリハブ115は、メッセージ中の命令を受信して、その命令を実行することができる。メモリハブ115により実行される機能は、ASICの複雑性と処理能力に依存して、特定しても汎用としてもよい。例えば、メモリハブ115は、一組の命令を実行して、メモリデバイス117の内容を並べ替えたり、メモリデバイス117に格納されたデータを計算または操作することができる。一実施形態において、メモリハブ115は、ローカルメモリデバイス117の一部を、割り当てられた動作を実行するための「スクラッチメモリ」として利用する。一実施形態において、メモリハブ115に送られた命令にはマルチフェーズ符号化法を使用する。メモリハブ115は、メモリ中のデータへの行列演算等の複雑な演算の実行から、最小限のメモリ及びリソースアクセスタスクまで、幅広いタスクを実行するように設計されている。
一実施形態において、メモリハブ115は複数の別のメモリハブに接続することができる。その別のメモリハブはメモリハブ115と同じASICコンポーネントでもよい。別のメモリハブは、入出力デバイス119及び他のメモリハブ115等の、接続された各デバイスとの独立リンクを有する。他のメモリハブとのリンクは、冗長リンク121を含んでもよい。冗長リンク121により、メモリサブシステム130を再プログラミングして、ディスエーブルされた、または故障したハブ、リンク、メモリデバイスを解消することができる。この再プログラミングにより、メッセージを再経路指定して影響を受けたコンポーネントを回避させ、メモリサブシステム130のトポグラフィからそのコンポーネントを削除する。一実施形態において、再経路指定は各メモリハブ及び通信ハブ105に保持された転送テーブルを変更することにより達成される。メモリハブ間のリンクは、ポイントツーポイント通信をサポートする(光媒体、フレックスケーブル、プリント回路板、その他の技術を含む)物理アーキテクチャを用いて実施される。
一実施形態において、メモリハブは、ツリー状のトポロジで相互に接続されている。ツリーのルートは、メモリハブ115または通信ハブ105であってもよい。一実施形態において、通信ハブ105は、ツリーネットワークのルートとして機能し、メモリハブの設定を指示することによりメモリサブシステム130を積極的に管理する。他の実施形態において、メモリサブシステム130の機能は通信ハブ105に対して透過的である。通信ハブ105は、プライマリメモリハブ115にのみメモリ及びリソース要求を送信する。そのプライマリメモリハブ115は、メモリサブシステム130を管理し、分散した管理構成の一部として動作する。通信ハブ105は、2以上のメモリハブ115にと直接結合していてもよい。
ツリートポロジは、ルートノードを有し、そのルートからブランチノード及びリーフノードに何レベルにもわたって枝分かれしたトポロジである。他の実施形態において、ネットワークのトポロジはメッシュ、ハイブリッド、その他同様のトポロジである。ネットワークのトポロジはサイクリックでも非サイクリックでもよい。非サイクリック物理メモリサブシステムトポロジは、メモリハブ中にサイクルチェックまたはディレクテッドロジカルトポロジを含み、循環経路にメッセージを送ることを防止する。
上述の通り、トポロジは一般的にツリー構造だが、冗長リンクを用いて信頼性を改善しメモリハブ間の通信レイテンシを短くすることができる。一実施形態において、トポロジはツリー構造の複数レベルを含む。各レベルは、通信ハブ105すなわちルートへの経路の長さにより決まる。例えば、メモリハブ115はトポロジの第1レベルであり、メモリハブ133はトポロジの第2レベルである。ツリー構造の下のレベルにあるメモリハブ及びメモリデバイス(すなわち、ルートに最も近いコンポーネント)は、レイテンシが最も短く、最も高いレベルにあるハブとメモリデバイスは、レイテンシが最も高い。このように、メモリサブシステム130は、データ使用の重要性または頻度及びメモリハブのレベルに基づいて、メモリ使用の優先順位を決めるように構成されている。最も頻繁にアクセスされるデータは下のレベルに置かれ、アクセス頻度が低いデータはトポロジの高いレベルに置かれる。このように、頻繁に使用されるデータはより短いレイテンシで読み出すことができ、より低い頻度で使用されるデータは頻繁に使用されるデータより高いレイテンシで読み出される。トポロジは64ギガバイトより大きいサイズのメモリをサポートする。より高いレベルのデータのレイテンシでも、ハードディスクやコンパクトディスク等の固定またはリムーバブル記憶デバイスに記憶されたデータの読み出し時間よりは短い。それゆえ、システム100の読み出し時間は全体として、単一レイヤーかつ64ギガバイト以下の容量しかない従来のメモリシステムより改善されている。その理由は、より多くのデータをメモリサブシステムに記憶することができ、メモリアクセスより数桁大きいアクセス時間を有する固定またはリムーバブルメディアへのアクセスが減り、使用頻度に応じてメモリ記憶の順序を変えてキャッシュのようにアクセス時間を改善することができるからである。
一実施形態において、メモリハブ間のリンクは、2以上のベーシックツリー構造のメモリサブシステムをブリッジするリンク123を含む。ブリッジリンク123を用いて、別のCPU125とコンピュータシステム141をコンピュータシステム102にネットワークでつなぐことができる。ブリッジにより、複数システムのメモリ空間、アドレス空間、及びシステムリソースを共有することができる。ブリッジ123を有しないシステム100で使用されるベーシックツリーベースのメッセージングシステムと転送スキームはスケールし、ブリッジされたシステム100上で動作する。一実施形態において、各通信ハブはルートとして機能し、それぞれ冗長トポロジデータを保持する。他の実施形態において、単一の通信ハブがマスター通信ハブとなり、他の通信ハブはスレーブデバイスとなり、メモリサブシステム130を維持するために割り当てられた機能を実行する。さらに別の実施形態において、すべてのメモリハブと通信ハブが管理を分担する。
一実施形態において、メモリハブは、メッセージングプロトコルまたは一組の命令を用いて、互いに通信する。メモリハブ中のASICは、メッセージフォーマットを解釈し、それに含まれた命令を実行するように設計されている。一実施形態において、メッセージはフォーマットされたパケットまたは同様のメッセージである。他の実施形態において、メッセージはインターラプトのような単純な信号であってもよい。一実施形態において、メモリハブと通信ハブ105間の通信は、マルチフェーズ符号化、言語ワードベース通信プロトコル、または同様の通信プロトコルを利用する。
図2aは、メモリハブによるシステム100における初期化メッセージの処理を示すフローチャートである。初期化フェーズは、システムスタートアップ、リスタート、または同様のイベントの際になされる。初期化フェーズは、コンピュータシステム102中の通信ハブ105により開始する。エラーが発生したり、メモリサブシステム130の設定が変更されたりした場合、システム102により再初期化がされる。設定の変更を検出すると、コンピュータシステム102は再初期化フェーズを開始し、変更の結果である新しい設定を決定する。例えば、メモリサブシステム130は、コンポーネントまたはその取り外しの「ホットプラギング(hot plugging)」をサポートする。「ホットプラギング」すなわち動的再構成をサポートするために、メモリサブシステム130内の複数組のメモリデバイス117にデータを冗長的に格納する。メモリサブシステム130は、単一の論理アドレスの複数の物理メモリ位置をサポートしている。他の実施形態において、初期化フェーズはメモリハブにより開始されてもよい。
通信ハブ105またはメモリハブ115は、システム100のスタートアップ時に初期化メッセージを生成する。このメッセージは、メモリサブシステム130の第1のレベルにあるハブに送られる(ブロック201)。メッセージのフォーマットは何でもよい。各受信メモリハブはそのメッセージを受け取ると、メッセージの発信者に送るべき応答メッセージを生成する(ブロック203)。応答メッセージは、それを生成したハブに関する基本的設定情報を含む。そのメッセージに含まれた情報には、ハブに接続されたメモリデバイスに割り当てられたアドレス空間、メモリデバイスのタイプと特徴、メモリハブのポート情報、周辺にあるハブの情報、トポロジ情報、その他同様な情報が含まれる。一実施形態において、各メモリハブは、初期化フェーズの際に、自分自身にアドレス空間を独立に割り当てる。通信ハブは、コンフリクトした割り当てを仲裁するか、またはハブがコンフリクトを解消するための分散した仲裁スキームを実装する。他の実施形態において、通信ハブは、集中的に、各ハブまたはメモリデバイスにアドレス空間を割り当てる。メモリハブは、電気的消去可能プログラマブル読出専用メモリデバイス(EEPROM)または同様の記憶デバイスを含み、システム100のパワーが切られても設定データを保持する。
一実施形態において、応答メッセージが初期化要求を発したデバイスに送られる(ブロック205)。応答メッセージは初期化メッセージを配信したデバイスを介して送られる。一実施形態において、応答メッセージが送られてから、ハブはその初期化メッセージをその各周辺ハブ(すなわち、そのメモリハブとリンクにより直接接続されているハブ)に転送するが、そのハブに初期化メッセージを送ったハブは除外される(ブロック207)。他の実施形態において、ハブは応答メッセージの生成と同時またはその前に初期化メッセージを転送する。メモリハブは自分自信を特定するデータを転送されるメッセージに含め、そのメッセージを転送した各メモリハブを含む初期化メッセージのストアードパスを構成してもよい。そうすれば、メッセージを受け取った次のメモリハブが、受け取った応答メッセージを発信デバイスに送り返すパスを知ることができる。他の実施形態において、各ハブは、周辺ハブに送り出された初期化メッセージをトラックして、戻りの応答を待ってもよい。出て行く各メッセージについてトラックされる情報は、要求の発信元のポートやメッセージの識別タグ等のメッセージの転送情報を含む。
各周辺ハブは、転送された初期化メッセージを受け取る。その周辺ハブは、設定データや、その周辺ハブとそれがつながっているメモリデバイスに関する同様なデータを含む応答メッセージを生成する(ブロック209)。応答メッセージには、ハブに接続されたメモリデバイスに割り当てられたアドレス空間の範囲、メモリデバイスのタイプ及び特徴、メモリハブのポート情報、周辺ハブ情報、トポロジ情報等が含まれる。
各周辺ハブは、それに初期化メッセージを転送したハブに応答メッセージを送り、その初期化メッセージを発したデバイスに最終的には配信する(ブロック211)。各周辺ハブは自分がリーフハブであるかどうか判断する(すなわち、初期化メッセージを送った周辺ハブ以外のハブが周辺にないハブ(ブロック211)。周辺ハブがリーフハブであるとき、終了する(ブロック217)。しかし、その周辺ハブがそれ自身の周辺にあるハブを有している場合、周辺ハブのそれぞれに初期化メッセージを転送する(ブロック215)。すべてのハブが初期化メッセージを受信し、応答メッセージを送信するまで、このプロセスは繰り返される。
図2bは、初期化プロセス中に内向き(inbound)のメッセージの処理を示すフローチートである。周辺メモリハブから独立リンクを介してメッセージを受け取る(ブロック251)。メモリハブが内向きのメッセージ(すなわち、他のメモリハブから、最初のデバイスに向かう応答メッセージ)を受信したとき、メモリハブはメッセージを分析して、その周辺ハブ及びメモリサブシステム130のトポロジに関する自分自身のローカル情報を付加する。
そのハブは内向きのメッセージを調べて、その応答メッセージを生成したメモリハブに関する設定データ、及び他のハブまたはメモリサブシステム130のトポロジに関するその応答メッセージ中に記録されたデータを記録する。一実施形態において、応答メッセージを処理する各メモリハブは、そのメッセージがたどったパスに関するそのメッセージのデータを付加し、ツリー構造のメモリサブシステムのルートとその応答を生成したメモリハブとの間にあるメモリハブを識別する完全な経路情報をそのメッセージが含むようにする。メッセージを処理する各メモリハブはこのデータを用いて、各ハブが有するネットワークのトポロジを特定する。
そのメッセージ中のデータを記録し、付加データをメッセージに含めた後、そのメモリハブはそのメッセージを初期化メッセージを発した宛先デバイスに向けて転送する(ブロック255)。メモリハブは初期化メッセージを受け取った時に格納されたトラッキング情報を用いて、その周辺ハブのどれにそのメッセージを送るかを判断する。このプロセスは、外向きメッセージングプロセスと併せて、各メモリハブに、ツリー構造の「分岐」内の初期化後にメッセージを処理するために十分なトポロジデータを供給する。一実施形態において、通信ハブ105は、すべての応答データを集積し、メモリシステム130のトポロジ全体のマップを描くことができる。通信ハブ105は、完全なトポロジ情報を各メモリハブに送る一組の設定メッセージを生成し、またはそのトポロジまたはハブ設定を再構成してもよい。
メモリサブシステム130の組織は、メモリ使用、データタイプ、データに関連するアプリケーションのタイプに基づき、一組のレイヤーまたは同様の構成にわたって、規定された経路に沿ってデータをグループ分けすること等により、最適化される。一実施形態において、メモリサブシステム130においてデータを組織化し、関連するデータが複数のメモリハブにわたって格納される。このデータの一部がアクセスされた場合、そのアクセスが他のハブと関連したメモリデバイスに格納されたデータも含むものであるとき、メモリハブはそのアクセスを示すメッセージをそのメモリハブに送る。一実施形態において、ハブのレイテンシによりハブを超えてデータを組織化する。頻繁にアクセスされるデータはレイテンシが低いハブ(下のレイヤーのハブ)に格納される。複数のハブにわたるデータは、アクセスされたデータのキャッシングを含むアクセス要求により返される。他の実施形態において、メモリサブシステム130の組織は、ハブに関連したメモリデバイスタイプ(例えば、DDRRAM、SDRAM等)によるデータのグループ分けにより最適化される。
図3は、通常動作中のメモリハブによるメッセージ処理プロセスを示すフローチャートである。典型的な動作としては、リード及びライト動作、入出力デバイス119との間の入出力動作がある。ほとんどのメッセージは、通信ハブ105とメモリサブシステムの下のレベルのメモリハブとの間でやりとりされる。ほとんどのメッセージは、通信ハブ105からのリソース要求として発せられ、メモリハブからの応答メッセージを生成する。
各メモリハブは、独立リンク、または他のメモリハブもしくは通信ハブ105からのチャネルを介してメッセージを受け取る(ブロック301)。メモリハブはメッセージを調べ、そのメッセージの宛先アドレスまたは要求されたリソースがそのメモリハブがメモリデバイス117を介して管理しているアドレス空間範囲と一致するかどうか判断する(ブロック303)。そのメッセージがそのメモリハブ向けのものである場合、そのメモリハブは実行すべき動作のタイプを特定する。そして、メモリハブはその要求を処理する(ブロック305)。要求にはそのメモリハブがそれと結合したメモリデバイスにアクセスするメモリアクセス要求が含まれてもよい。そのメッセージにはそのメモリハブにより実行される一組の命令も含まれている。要求メッセージはメモリハブのポートからデータを要求してもよい。一実施形態において、メモリアクセスまたはポートデータ要求はメモリハブにより遅らされてもよい。メモリサブシステム130中の点、通信ハブ105、または他のコンピュータシステムから発せられたメモリまたはデータアクセス要求は、オープン通信リンクを維持するために遅延される。これにより、メモリハブ間の通信リンクがオープンに保たれ、一方、メモリハブは要求されたデータを読み出し、または受信した要求動作を実行する。
メモリハブが要求の処理を完了したとき、応答メッセージを生成する(ブロック309)。応答メッセージが生成されるかどうかは、そのメモリハブにより実行される動作のタイプによって決まる。例えば、ライト動作はメモリハブからの応答メッセージを必要としない。しかし、リード動作は、要求されたデータを含む応答メッセージの生成を必要とする。
応答メッセージが生成された場合、または要求メッセージが他のメモリハブに宛てられていた場合、メモリハブはそのメッセージの宛先アドレスをチェックし、そのメッセージをどのように転送するかを決定する(ブロック307)。初期化フェーズの後、各ハブは、ASICまたはメモリデバイス117中の記憶デバイス内に格納された、そのツリー構造のブランチ、またはメモリサブシステム130全体のトポロジ情報を有する。そのトポロジ情報から、メモリハブは、転送テーブルまたは同様の構成を生成し、その出力ポートのそれぞれと関連したアドレスをマップすることができる。そのメモリハブに宛てられてものではないメッセージが受け取ると、転送テーブルを用いて宛先アドレスまたはリソース識別子を比較して、そのメッセージを転送する出力ポートを決定する。そのメッセージはそのポートに転送される(ブロック311)。このプロセスは、メッセージがその宛先に到着するまで各メモリハブで行われる。このプロセスは、内向きメッセージ(すなわち、ルートハブ115または通信ハブ105に送られるメッセージ)及び外向きメッセージ(すなわち、通信ハブ105からメモリハブへのメッセージ)の両方に適用される。一実施形態において、応答メッセージは、タスク(例えば、ライト要求や一組の命令の実行等)が完了したことを示す割り込みその他の信号でもよい。同様に、セキュリティアプリケーションやデバッグアプリケーションを利用しやすくするために、メモリアドレスがアクセスされたことを示す割り込みその他の信号がメモリハブまたはメモリサブシステム130により用いられてもよい。メモリサブシステム130により生成された割り込みは、通信ハブ105またはコンピュータシステム141の他のメモリハブにより処理される。
一実施形態において、メモリサブシステム130は、故障したメモリハブまたはメモリデバイスの検出及びディスエーブル化を動的にサポートする。これにより、システム100の信頼性と動作可能時間が改善できる。故障したハブ及びメモリユニット、または応答しないユニットの周辺ユニットは、エラーまたはコンポーネントが応答しないことを検出した際エラーメッセージを生成する。一実施形態において、エラーメッセージは通信ハブ105に送信される。通信ハブ105は、残ったメモリハブに再構成メッセージを送信し、故障したユニットが交換されるまで、メッセージのネットワーク経路指定を再構成する。通信ハブ105は、システム100を再初期化して再構成に有効としてもよい。
一実施形態において、通信ハブ105まてゃメモリハブは、ブロードキャストメッセージをサポートする。ブロードキャストにより、メッセージをその通信ハブ105またはメモリハブに送った周辺ハブ以外の各周辺ハブにそのメッセージが送信される。ブロードキャストはメモリサブシステム130の初期化または再初期化の際に使用される。ブロードキャストを分散再構成時に用いて、構成の変化をすべてのハブに通知してもよい。他の実施形態において、ブロードキャストを用いて、各メモリハブまたは同様の環境により実行すべき命令を含むメッセージを送る。例えば、ブロードキャストメッセージを用いて、すべてのメモリデバイスまたはその一部をサーチして、データアイテムまたはパラメータを探す。メモリハブの1つがそれと関連したメモリデバイス中に要求されたアイテムを見つけたとき、そのブロードキャストメッセージの発信者に対する応答メッセージを生成する。これにより、メモリサブシステム130中のメモリデバイスを平行してサーチすることができる。
システム100は分散システムであり、メモリを制限無く拡張でき、一方信号インテグリティとレイテンシ管理を維持することができる。信号インテグリティは、メモリサブシステム130中の動作が独立通信リンク上のハブ間のポイントツーポイントメッセージングにより動作しているために維持される。メッセージのポイントツーポイント通信により、リピータ構造により長い経路を介して信号をブーストするのではなく、ポイント間でエラーチェックと既知メッセージの再送信が可能となる。システム100により、複数プロセッサシステムによる大メモリ容量の共有が可能となる。システム100は、デスクトップコンピュータ等のスタンドアローンマシンにも好適である。システム100は、冗長経路及び冗長データ記憶を可能とすることにより、信頼性と正確性を改善する。システム100は、コンピュータ、アプリケーション、オペレーティングシステムシェアリングシステム100の間のメモリのサポートとパーティショニングによりセキュリティ機能を容易にする。パーティションは単一のコンピュータ、ユーザ、もしくはアプリケーション、またはそのグループの使用のために指定される。パーティションすなわちメモリの部分を暗号化して、権限無き使用から保護する。同様に、システム100は、メモリハブ間及びルートハブとの通信の暗号化をサポートする。一実施形態において、システム100はメッセージングのトラックをサポートし、デバッギング及びセキュリティアプリケーションによる使用を容易にする。一実施形態において、各ハブ及びメモリハブに関連したアドレス空間は、メモリハブにより強制されたセキュリティアクセス制限を有する。セキュリティ制限により、特定の要求ユーザ、アプリケーション、またはシステムだけへのアクセスが可能である。他の実施形態において、メモリハブはセキュリティ鍵、コード、その他の同様なメカニズムに基づいて、アクセスを制限する。権限無きアクセスはトラックされ、割り込みがかけられ、システムまたは通信ハブ105にセキュリティ侵害またはその試みがあったことを通知する。
上記の説明において、本発明を特定の実施形態を参照して説明した。しかし、言うまでもなく、添付したクレームに記載した本発明の実施形態のより広い精神と範囲から逸脱することなく、いろいろな修正と変更をすることが可能である。従って、この明細書と図面は、本発明を限定するものではなく、例示するものと見なすべきである。
ネットワーク化されたメモリアーキテクチャを有するシステムを示す図である。 外向き(outbound)の初期化プロセスを示すフローチャートである。 内向き(inbound)の初期化プロセスを示すフローチャートである。 ネットワーク化されたメモリアーキテクチャ中のハブのメッセージングプロセスを示すフローチャートである。

Claims (27)

  1. データを格納する第1のメモリデバイスと、
    前記少なくとも1つのメモリデバイスと結合した、前記第1のメモリデバイスに対するメモリアクセス要求を処理する第1のハブデバイスと、
    ポイントツーポイントリンクにより前記第1のハブデバイスと結合した、第2のメモリデバイスに対するメモリアクセス要求を処理する第2のハブデバイスと、
    前記第2のハブデバイスと結合した、データを格納する前記第2のメモリデバイスと、を有することを特徴とする装置。
  2. 請求項1に記載の装置であって、
    第3のメモリデバイス及び前記第1のハブデバイスに結合した、前記第3のメモリデバイスに対するメモリアクセス要求を処理する第3のハブデバイスと、
    前記第3のハブデバイスに結合した、データを格納する前記第3のメモリデバイスと、を有することを特徴とする装置。
  3. 請求項1に記載の装置であって、
    前記第1のハブデバイスがメモリアクセス要求を分析し、出力ポートを決定し、前記メモリアクセス要求を出力ポートに転送することを特徴とする装置。
  4. 請求項1に記載の装置であって、
    前記第1のハブデバイスはメッセージとして受け取った一組の命令を処理することを特徴とする装置。
  5. ツリートポロジで構成された一組のハブデバイスと、
    それぞれが単一のハブデバイスと結合した一組のメモリデバイスと、を有することを特徴とするシステム。
  6. 請求項5に記載のシステムであって、
    各ハブデバイスにはアドレス空間が割り当てられていることを特徴とするシステム。
  7. 請求項6に記載のシステムであって、
    各ハブデバイスがメモリアクセス要求を分析して、前記ハブデバイスに割り当てられたアドレス空間に該当するかどうかを判断することを特徴とするシステム。
  8. 第1の中央演算処理装置と、
    第2の中央演算処理装置と、
    前記第1の中央演算処理装置、前記第2の中央演算処理装置、及び第1のメモリサブシステムの間の通信を管理する第1の通信ハブと、
    前記第1の通信ハブと結合した、ツリートポロジで構成された第1の組のハブデバイスを含む前記第1のメモリサブシステムと、
    それぞれがハブデバイスと結合した一組のメモリデバイスと、を有することを特徴とするシステム。
  9. 請求項8に記載のシステムであって、
    第2の中央演算処理装置と、
    前記第2の中央演算処理装置及び第2のメモリサブシステムの間の通信を管理する第2の通信ハブと、
    前記第2の通信ハブと結合した、第2の組のハブデバイスを含む前記第2のメモリサブシステムと、
    前記第2のメモリサブシステムを前記第1のメモリサブシステムに接続するリンクと、をさらに有することを特徴とするシステム。
  10. 請求項8に記載のシステムであって、
    前記一組のメモリデバイスは64ギガバイトより大きい記憶空間を含み、
    前記一組のメモリデバイスは一組のランダムアクセスメモリモジュールであることを特徴とするシステム。
  11. 請求項8に記載のシステムであって、
    前記第1のメモリサブシステムは、ハブデバイス間の冗長リンクを含むことを特徴とするシステム。
  12. 請求項8に記載のシステムであって、
    前記ハブデバイスは入出力デバイスと結合した入出力ポートを含むことを特徴とするシステム。
  13. 第1のメモリハブデバイスに初期化メッセージを送るステップと、
    前記第1のメモリハブデバイスの設定データを含む応答メッセージを送るステップと、
    第2のメモリハブデバイスに前記初期化メッセージを転送するステップと、を有することを特徴とする方法。
  14. 請求項13に記載の方法であって、
    前記第2のメモリハブデバイスからの応答メッセージを前記第1のメモリハブデバイスにより分析するステップをさらに有することを特徴とする方法。
  15. 請求項13に記載の方法であって、
    前記応答メッセージが前記第2のメモリハブデバイスと結合したメモリデバイスに関するデータを含むことを特徴とする方法。
  16. 請求項14に記載の方法であって、
    応答メッセージとして受け取った第2のハブデバイスに関するデータを、第1のメモリハブデバイスに格納するステップをさらに有することを特徴とする方法。
  17. 請求項13に記載の方法であって、
    第2のハブデバイスからの前記応答メッセージを初期化メッセージを発したデバイスに転送するステップをさらに有することを特徴とするシステム。
  18. 第1のメモリハブデバイスによりリソース要求メッセージを分析するステップと、
    前記第1のメモリハブデバイスが前記リソース要求をサービスできるかどうか判断するステップと、
    前記第1のメモリハブデバイスが前記要求をサービスできない場合、第2のメモリハブデバイスに前記リソース要求メッセージを転送するステップと、を有することを特徴とする方法。
  19. 請求項18に記載の方法であって、
    前記第1のメモリハブデバイスにより前記リソース要求メッセージをサービスするステップをさらに有することを特徴とする方法。
  20. 請求項18に記載の方法であって、
    前記リソース要求メッセージの発信者に応答メッセージを送るステップをさらに有することを特徴とする方法。
  21. 請求項20に記載の方法であって、
    前記応答メッセージが要求されたデータを含むことを特徴とする方法。
  22. データ記憶ネットワークにデータを保存する手段と、
    前記データ記憶ネットワーク中のデータを読み出す手段と、
    前記データ記憶ネットワーク中のデータの場所を決定する手段と、を有することを特徴とする装置。
  23. 請求項22に記載の装置であって、
    前記データ記憶ネットワークはツリートポロジを有することを特徴とする装置。
  24. 請求項22に記載の装置であって、
    前記データ記憶ネットワークを設定する手段をさらに有することを特徴とする装置。
  25. 命令が格納された機械読み取り可能媒体であって、実行されたとき、機械に、
    第1のメモリハブデバイスによりリソース要求メッセージを分析するステップと、
    前記第1のメモリハブデバイスが前記リソース要求をサービスできるかどうか判断するステップと、
    前記第1のメモリハブデバイスが前記要求をサービスできない場合、第2のメモリハブデバイスに前記リソース要求メッセージを転送するステップと、を有する一組の動作を実行させることを特徴とする媒体。
  26. 請求項25に記載の機械読み取り可能媒体であって、実行されたとき、前記機械に、
    前記第1のメモリハブデバイスにより一組の命令を実行するステップをさらに有する一組の動作を実行させることを特徴とする媒体。
  27. 請求項25に記載の機械読み取り可能媒体であって、実行されたとき、前記機械に、
    前記第1のメモリハブデバイスと結合した第1のメモリデバイスに格納されたデータを、第2のメモリハブデバイスと結合した第2のメモリデバイスに動かすステップをさらに有する一組の動作を実行させることを特徴とする媒体。
JP2006514914A 2003-05-30 2004-05-20 ツリーベースメモリ構造 Expired - Fee Related JP4290730B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/449,216 US20040243769A1 (en) 2003-05-30 2003-05-30 Tree based memory structure
PCT/US2004/015986 WO2004109500A2 (en) 2003-05-30 2004-05-20 Tree based memory structure

Publications (2)

Publication Number Publication Date
JP2006526226A true JP2006526226A (ja) 2006-11-16
JP4290730B2 JP4290730B2 (ja) 2009-07-08

Family

ID=33451712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006514914A Expired - Fee Related JP4290730B2 (ja) 2003-05-30 2004-05-20 ツリーベースメモリ構造

Country Status (7)

Country Link
US (1) US20040243769A1 (ja)
EP (1) EP1629390A2 (ja)
JP (1) JP4290730B2 (ja)
KR (1) KR20060015324A (ja)
CN (1) CN1799034B (ja)
TW (1) TWI237171B (ja)
WO (1) WO2004109500A2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7350048B1 (en) * 2004-10-28 2008-03-25 Sun Microsystems, Inc. Memory system topology
KR101375763B1 (ko) * 2005-04-21 2014-03-19 바이올린 메모리 인코포레이티드 상호접속 시스템
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
DE102006045113B3 (de) * 2006-09-25 2008-04-03 Qimonda Ag Speichermodul-System, Speichermodul, Buffer-Bauelement, Speichermodul-Platine, und Verfahren zum Betreiben eines Speichermoduls
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US7809913B2 (en) * 2007-06-27 2010-10-05 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting multiple speed bus
US7822936B2 (en) * 2007-06-27 2010-10-26 International Business Machines Corporation Memory chip for high capacity memory subsystem supporting replication of command data
US7921264B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Dual-mode memory chip for high capacity memory subsystem
US8037272B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting multiple speed bus
US7921271B2 (en) * 2007-06-27 2011-04-05 International Business Machines Corporation Hub for supporting high capacity memory subsystem
US8019949B2 (en) * 2007-06-27 2011-09-13 International Business Machines Corporation High capacity memory subsystem architecture storing interleaved data for reduced bus speed
US20090006774A1 (en) * 2007-06-27 2009-01-01 Gerald Keith Bartley High Capacity Memory Subsystem Architecture Employing Multiple-Speed Bus
US7818512B2 (en) * 2007-06-27 2010-10-19 International Business Machines Corporation High capacity memory subsystem architecture employing hierarchical tree configuration of memory modules
US8037258B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for dual-mode memory chip for high capacity memory subsystem
US8037270B2 (en) * 2007-06-27 2011-10-11 International Business Machines Corporation Structure for memory chip for high capacity memory subsystem supporting replication of command data
US7996641B2 (en) * 2007-06-27 2011-08-09 International Business Machines Corporation Structure for hub for supporting high capacity memory subsystem
US8381220B2 (en) * 2007-10-31 2013-02-19 International Business Machines Corporation Job scheduling and distribution on a partitioned compute tree based on job priority and network utilization
US8874810B2 (en) * 2007-11-26 2014-10-28 Spansion Llc System and method for read data buffering wherein analyzing policy determines whether to decrement or increment the count of internal or external buffers
WO2010002411A1 (en) * 2008-07-03 2010-01-07 Hewlett-Packard Development Company, L.P. Memory server
US20100241783A1 (en) * 2009-03-23 2010-09-23 Honeywell International Inc. Memory node for use within a data storage system having a plurality of interconnected memory nodes
WO2014193592A2 (en) * 2013-05-29 2014-12-04 Sandisk Technologies Inc. High performance system topology for nand memory systems
US9324389B2 (en) 2013-05-29 2016-04-26 Sandisk Technologies Inc. High performance system topology for NAND memory systems
US9728526B2 (en) 2013-05-29 2017-08-08 Sandisk Technologies Llc Packaging of high performance system topology for NAND memory systems
US9239768B2 (en) * 2013-08-21 2016-01-19 Advantest Corporation Distributed pin map memory
US9703702B2 (en) 2013-12-23 2017-07-11 Sandisk Technologies Llc Addressing auto address assignment and auto-routing in NAND memory network
EP3298501B1 (en) * 2015-07-31 2019-11-13 Hewlett-Packard Enterprise Development LP Methods to create logical trees of memory systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0596651A1 (en) * 1992-11-02 1994-05-11 National Semiconductor Corporation Network for data communication with isochronous capability
US5392285A (en) * 1993-03-31 1995-02-21 Intel Corporation Cascading twisted pair ethernet hubs by designating one hub as a master and designating all other hubs as slaves
US5675735A (en) * 1994-06-29 1997-10-07 Digital Equipment Corporation Method and apparatus for interconnecting network devices in a networking hub
US5812792A (en) * 1994-07-22 1998-09-22 Network Peripherals, Inc. Use of video DRAM for memory storage in a local area network port of a switching hub
US6175571B1 (en) * 1994-07-22 2001-01-16 Network Peripherals, Inc. Distributed memory switching hub
US6172983B1 (en) * 1997-03-13 2001-01-09 Siemens Information And Communication Networks, Inc. Hub dominated method and system for managing network collisions
US6587912B2 (en) * 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US6385695B1 (en) * 1999-11-09 2002-05-07 International Business Machines Corporation Method and system for maintaining allocation information on data castout from an upper level cache
US6785785B2 (en) * 2000-01-25 2004-08-31 Hewlett-Packard Development Company, L.P. Method for supporting multi-level stripping of non-homogeneous memory to maximize concurrency
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
US20020161453A1 (en) * 2001-04-25 2002-10-31 Peltier Michael G. Collective memory network for parallel processing and method therefor
US6934300B2 (en) * 2001-05-04 2005-08-23 M&S Systems, L.P. Initialization method for an entertainment and communications network
US6615322B2 (en) * 2001-06-21 2003-09-02 International Business Machines Corporation Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6754117B2 (en) * 2002-08-16 2004-06-22 Micron Technology, Inc. System and method for self-testing and repair of memory modules
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7146480B2 (en) * 2003-01-23 2006-12-05 Hewlett-Packard Development Company, L.P. Configurable memory system
US20040225725A1 (en) * 2003-02-19 2004-11-11 Nec Corporation Network system, learning bridge node, learning method and its program

Also Published As

Publication number Publication date
TW200502731A (en) 2005-01-16
KR20060015324A (ko) 2006-02-16
WO2004109500A2 (en) 2004-12-16
CN1799034A (zh) 2006-07-05
WO2004109500A3 (en) 2005-07-14
JP4290730B2 (ja) 2009-07-08
TWI237171B (en) 2005-08-01
EP1629390A2 (en) 2006-03-01
US20040243769A1 (en) 2004-12-02
CN1799034B (zh) 2010-05-26

Similar Documents

Publication Publication Date Title
JP4290730B2 (ja) ツリーベースメモリ構造
US8572206B2 (en) Transaction processing using multiple protocol engines
US9952975B2 (en) Memory network to route memory traffic and I/O traffic
US7921251B2 (en) Globally unique transaction identifiers
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
US7251698B2 (en) Address space management in systems having multiple multi-processor clusters
US20190235777A1 (en) Redundant storage system
US20030233388A1 (en) Transaction management in systems having multiple multi-processor clusters
US10534541B2 (en) Asynchronous discovery of initiators and targets in a storage fabric
CN104603739A (zh) 对并行存储的块级访问
WO2018054079A1 (zh) 一种存储文件的方法、第一虚拟机及名称节点
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
US8930640B2 (en) Multiprocessor computer system with reduced directory requirement
US9910808B2 (en) Reflective memory bridge for external computing nodes
JP2003186742A (ja) ディレクトリ・キャッシュの更新
US20090276502A1 (en) Network Switch with Shared Memory
US20060015772A1 (en) Reconfigurable memory system
CN102833295A (zh) 分布式缓存系统中的数据操作方法和装置
US20110252170A1 (en) Hierarchical to physical bus translation
CN117453380B (zh) 集群的容器组调度方法、系统以及计算机设备
US10762011B2 (en) Reflective memory bridge for external computing nodes
JP2005234919A (ja) クラスタメモリファイルシステム
CN115686361A (zh) 一种数据读写方法、系统及装置
CN115525443A (zh) 一种数据存储方法以及相关设备
JP2012256087A (ja) データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080917

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090212

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees