(57)【特許請求の範囲】
【請求項１】
マスタコントローラと、
情報を記憶するための複数の記憶ノードであり、前記複数の記憶ノードはチェーン構成の形で前記マスタコントローラに結合され、前記複数の記憶ノードは前記マスタコントローラから最も遠い記憶ノードを含み、前記マスタコントローラと前記最も遠い記憶ノードとの間の通信は決められた最大待ち時間を有する、複数の記憶ノードと、
を備える記憶システムであって、
前記複数の記憶ノードは、通信バッファを備える第１の記憶ノードを含み、
前記マスタコントローラは、前記通信バッファ内の使用可能なバッファの数であるバッファカウントがゼロより大きいか又はゼロかに基づいて、前記第１の記憶ノードへ要求を転送するかしないかを制御し、
前記マスタコントローラは、要求を前記第１の記憶ノードに転送し、前記要求は応答を必要とする要求及び応答を必要としない要求を含み、
前記マスタコントローラは、応答を必要とする要求を転送したときに前記バッファカウントをデクリメントし、
前記マスタコントローラは、前記応答を必要とする要求に対する応答を前記第１の記憶ノードから受け取ったときに前記バッファカウントをインクリメントする、
記憶システム。
【請求項２】
前記複数の記憶ノードは、前記第１の記憶ノードと同じ数のバッファを有する通信バッファを備える第２の記憶ノードを含む、請求項１に記載の記憶システム。
【請求項３】
前記複数の記憶ノードは、第２の記憶ノードを含み、前記第１の記憶ノードの利用率が前記第２の記憶ノードの利用率よりも大きい、請求項１に記載の記憶システム。
【発明の詳細な説明】
【関連米国出願】
【０００１】
[0001]本出願は、参照により本明細書に組み込む以下の特許仮出願の利益及び優先権を主張する。
米国特許仮出願第６１／００４，４３４号、２００７年１１月２６日出願、Ｍｉｕｒａ他の、名称「Ａ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ」（整理番号ＳＰＳＮ−ＡＦ０２８７３．ＰＲＯ）、
米国特許仮出願第６１／００４，３６２号、２００７年１１月２６日出願、Ｍｉｕｒａ他の、名称「Ａ  ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＡＣＣＥＳＳＩＮＧ  ＭＥＭＯＲＹ」（整理番号ＳＰＳＮ−ＡＦ０２８７４．ＰＲＯ）、
米国特許仮出願第６１／００４，４１２号、２００７年１１月２６日出願、Ｍｉｕｒａ他の、名称「Ａ  ＭＥＴＨＯＤ  ＦＯＲ  ＳＥＴＴＩＮＧ  ＰＡＲＡＭＥＴＥＲＳ  ＡＮＤ  ＤＥＴＥＲＭＩＮＩＮＧ  ＬＡＴＥＮＣＹ  ＩＮ  Ａ  ＣＨＡＩＮＥＤ  ＤＥＶＩＣＥ  ＳＹＳＴＥＭ」（整理番号ＳＰＳＮ−ＡＦ０２８７５．ＰＲＯ）、及び
米国特許仮出願第６１／００４，３６１号、２００７年１１月２６日出願、Ｍｉｕｒａ他の、名称「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＲＥＡＤ  ＤＡＴＡ  ＢＵＦＦＥＲＩＮＧ」（整理番号ＳＰＳＮ−ＡＦ０２８７６．ＰＲＯ）。
【０００２】
[0002]本出願はまた、参照により本明細書に組み込む以下の同時係属出願にも関連する。
米国特許出願第１２／２７６，１４３号、Ｍｉｕｒａ他の、名称「ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭ  ＡＮＤ  ＭＥＴＨＯＤ」、２００８年１１月２１日出願（整理番号ＳＰＳＮ−ＡＦ０２８７３）、
米国特許出願第１２／２７６，０６１号、Ｍｉｕｒａ他の、名称「Ａ  ＭＥＴＨＯＤ  ＦＯＲ  ＳＥＴＴＩＮＧ  ＰＡＲＡＭＥＴＥＲＳ  ＡＮＤ  ＤＥＴＥＲＭＩＮＩＮＧ  ＬＡＴＥＮＣＹ  ＩＮ  Ａ  ＣＨＡＩＮＥＤ  ＤＥＶＩＣＥ  ＳＹＳＴＥＭ」、２００８年１１月２１日出願（整理番号ＳＰＳＮ−ＡＦ０２８７５）、及び
米国特許出願第１２／２７６，１１６号、Ｍｉｕｒａ他の、名称「ＳＹＳＴＥＭＳ  ＡＮＤ  ＭＥＴＨＯＤＳ  ＦＯＲ  ＲＥＡＤ  ＤＡＴＡ  ＢＵＦＦＥＲＩＮＧ」、２００８年１１月２１日出願（整理番号ＳＰＳＮ−ＡＦ０２８７６）。
【技術分野】
【０００３】
[0003]本発明は、ノード管理の分野に関する。より具体的には、本発明は、メモリノード資源にアクセスする能率的で効果的なシステム及び方法に関する。
【背景技術】
【０００４】
[0004]電子システム及び回路は、現代社会の進歩に大きな貢献を果たしてきており、多くの応用分野で利用されて有益な結果が得られてきた。デジタルコンピュータ、計算機、オーディオデバイス、映像機器及び電話システムなどの電子技術は、ビジネス、科学、教育及び娯楽のほとんどの領域において、データ、アイデア及び傾向を分析し伝達する際の生産性の向上及びコストの低減を促進してきた。これらの結果が得られるように設計された電子システムは、メモリ（例えば、ＬＰＤＤＲ（ｌｏｗ  ｐｏｗｅｒ  ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ）メモリ、ＭｅｍＬｉｎｋ、シンクロナスダイナミックランダムアクセスメモリ、ＮＯＲフラッシュメモリ、ＮＡＮＤフラッシュメモリなど）を含むことが多い。しかし、高速で能率的にメモリ資源にアクセスするには、複雑なプロトコルが伴いうる。
【０００５】
[0005]多くの電子デバイスはプロセッサを含み、このプロセッサは、有用なタスクの実行の際にデータを操作するための一連の命令を含むソフトウェアを実行することによって動作する。これらの命令及び関連するデータは、一般にメモリに記憶される。メモリは通常、情報を記憶する場所、及び一意の標識すなわちアドレスからなる。あるデバイスが提供する有用性は、命令が実行される速度及び能率によって決まることが多い。メモリにアクセスし、情報を迅速に都合よく転送する能力は通常、情報処理待ち時間に大きな影響を及ぼす。メモリの構成は通常、メモリ位置にアクセスする速度に影響を及ぼす。
【０００６】
[0006]メモリ制御における従来の試みは、非常に複雑で込み入っていることが多い。トークンを利用する従来のシステムでは通常、いくつか非能率なことが生じる。例えば、トークン手法では、システム内のバッファの数に関して非能率及びオーバヘッドを生じることが多く、またリンクが機能するのに実際に必要とするよりも多くのバッファが使用可能にされることが多くなる。トークン手法ではまた、待ち時間及び使用可能な帯域幅に関して非能率が生じることもありうる。トークン手法ではまた、他のスケジューリング問題を招くおそれもある。コントローラで要求をスケジュールしたいことがあるが、コントローラではダウンストリームで進行しているトラフィックパターンが分からないので、その要求がシステム内でどれだけ長くかかるかまったく分からず、あるいは知るすべがない。記憶ノードは、ノードがバックアップされることがある、要求がノードでスタックされる、システムが非最適及び非決定的なものになることがある、などのいくつかの理由でバッファを使い果たしていることがある。
【発明の概要】
【０００７】
[0007]メモリノード内に情報を記憶する記憶システム及び方法を提示する。記憶ノード又はメモリノードは通信バッファを含む。記憶ノードへの情報の流れは、通信バッファに対する制約条件に基づいて制御される。一実施形態では、マスタコントローラと記憶ノードの間の通信が、決められた最大待ち時間を有する。
【０００８】
[0008]本発明のシステム及び方法は、能率的で好都合なメモリアクセスを容易にする。このメモリアクセスは、トークンを使用するネットワークなどの従来のネットワークとは異なり、情報パケットを用いないで実行することができる。本発明はさらに、現行の構成要素を最小限で再設計することも容易にする。例えば、最も近い記憶ノードで使用可能なバッファをカウントし続ける機能である。本発明の諸実施形態を利用して、チェーン構成又はネットワークとして組織化されたメモリノードの能率的で効果的な制御を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態による記憶システムのブロック図である。
【図２】本発明の一実施形態による記憶ノードのブロック図である。
【図３】本発明の一実施形態による例示的な記憶方法のフローチャートである。
【発明を実施するための形態】
【００１０】
[00012]次に、添付の図面に例が示されている、本発明の半導体分離材料堆積システム及び方法の好ましい諸実施形態を詳細に参照する。本発明を好ましい実施形態と共に説明するが、好ましい実施形態は、本発明をこれらの実施形態に限定するものではないことを理解されたい。これに反して、本発明は、添付の特許請求の範囲で定義される本発明の主旨及び範囲内に含まれうる代替形態、改変形態及び等価物を包含するものである。さらに、本発明についての以下の詳細な説明では、本発明の完全な理解が得られるように多数の具体的細部を示す。しかし、これらの具体的細部がなくても本発明を実施できることが当業者には明らかであろう。別の例では、本発明の諸態様を不必要に不明瞭にしないように、よく知られた方法、手順、構成要素及び回路は詳細に説明していない。
【００１１】
[00013]以下の詳細な説明の一部は、手順、論理ブロック、処理、及びコンピュータメモリ内部のデータビットに対する動作の他の記号表現について提示されるものである。これらの記述及び表現は、データ処理技術分野の当業者が、その研究内容を他の当業者に効果的に伝達するために一般的に使用する手段である。本明細書では、また一般に、手順、論理ブロック、処理などは、所望の結果につながる首尾一貫した一連のステップ又は命令と考えられる。各ステップは、物理量の物理的操作を含む。必ずではないが通常、これらの量は、コンピュータシステム内で記憶、転送、結合、比較でき、また別様に操作できる電気信号、磁気信号、光信号又は量子信号の形をとる。これらの信号をビット、値、要素、記号、特性、期間、数などと呼ぶことが、主には通常の用法であるという理由から、ときには都合がよいことが分かっている。
【００１２】
[00014]しかし、これらのすべて及び同様な用語は、適切な諸物理量と関係づけられており、これらの量に付けられた便利なラベルにすぎないことを念頭に置かれたい。以下の議論から明らかなように特に指定しない限り、本出願全体を通して、「処理する」、「計算する（ｃｏｍｐｕｔｉｎｇ）」、「計算する（ｃａｌｃｕｌａｔｉｎｇ）」、「決定する」、「表示する」などの用語を利用する議論は、物理量（例えば、電子量）として表されたデータを操作及び変換するコンピュータシステム、又は同様の処理デバイス（例えば、電子、光学又は量子計算デバイス）の動作及び処理を指すと理解されたい。これらの用語は、処理デバイスの動作及び処理を指し、この処理デバイスは、コンピュータシステムの構成要素（例えば、レジスタ、メモリ、他のこのような情報の記憶デバイス、転送デバイス又は表示デバイスなど）内部の物理量を操作し、あるいは別の構成要素内部で物理量として同様に表される別のデータに変換する。
【００１３】
[00015]図１は、本発明の一実施形態による記憶システム１００のブロック図である。記憶システム１００は、データの能率的で好都合な記憶を容易にする。一実施形態では、記憶システム１００は、記憶ノード１２０、１３０及び１４０、並びにマスタコントローラ１１０を備える。記憶ノード１２０、１３０及び１４０は、チェーン構成の形でマスタコントローラ１１０に結合される。各記憶ノードは、メモリ要求又はコマンドの処理を容易にするために使用可能ないくつかの資源を有し、マスタコントローラ１１０は、チェーン又はネットワーク内部の資源の分布、及びトラフィックがどのようにネットワークを通して流れるかについての情報を保持する。一実施形態では、マスタコントローラ１１０は、いくつかのアクセス要求スケジューリング動作を実行する。有利なことに、情報パケットが交換される必要がない。さらに、複数のメモリノードに対する要求をスケジューリングするために通信プロトコルトークンが利用されることもない。
【００１４】
[00016]本発明は、様々な記憶ノード実施に容易に適合可能であることを理解されたい。例示的な一実施では、記憶ノードはチェーン構成又はネットワークとして組織化される。
【００１５】
[00017]記憶システム１００の各構成要素は、情報の好都合な記憶を実現するように協働して動作する。記憶ノード１２０、１３０及び１４０は、情報を記憶する。マスタコントローラ１１０は、ダウンストリームバス１５０及びアップストリームバス１６０を介して記憶ノード又はメモリデバイスと通信する。マスタコントローラ１１０はさらに、各ノード内の記憶バッファの数に対応するカウンタを有し、各カウンタは、対応する記憶ノード内部のバッファの数から始める。一実施形態では、チェーン内の各記憶ノードは、同じ数のバッファを有し、それによってマスタコントローラは、それぞれのカウンタを同じ数から起動する。
【００１６】
[00018]マスタコントローラ１１０は、応答を必要とする要求と、応答を必要としない要求との両方を複数のメモリノードまで、これら複数のメモリノードの個々の特性に応じて転送する。
【００１７】
[00019]一実施形態では、ダウンストリームバス１５０は、それだけには限らないが、リフレッシュ、読出し、書込み、モードレジスタ動作（例えば、読出し及び書込み）、リセットなどを含むメモリ要求又はメモリコマンドを送出するために使用される。マスタコントローラ１１０は、メモリ要求又はメモリコマンドに対する応答をアップストリームバス１６０を介して受け取る。要求が応答を必要としない場合、マスタコントローラ１１０はその要求を、チェーン内部のデバイスそれぞれの個々の特性に応じて、チェーン下方に送出する。
【００１８】
[00020]例示的な一実施形態では、マスタコントローラ１１０は、応答が必要な要求を複数のメモリノードに、複数のメモリノードのうちの少なくとも１つで使用可能なバッファ（又は空間）のカウントに応じて転送する。マスタコントローラ１１０は、応答（例えば、メモリ読出し）が必要な各コマンド又は要求を転送すると同時に、対象の記憶ノード又はデバイスに対応する内部カウンタをデクリメントする。カウンタがゼロに到達すると、マスタコントローラ１１０は、使用可能なバッファがないのでそれ以上の要求を送出しない。マスタコントローラ１１０で応答が受け取られると（例えば、アップストリームバス１６０を介して）、マスタコントローラ１１０は、その記憶ノード又はデバイスと関連づけられたカウンタをインクリメントする。そうすると、マスタコントローラ１１０は、応答が受け取られた記憶ノード又はデバイスに対し、使用可能なバッファをそのデバイスが有するので、メモリ要求を送出する。例えば、メモリ読出しに対する応答は、マスタコントローラ１１０によって記憶ノード１２０から受け取られることがあり、その場合マスタコントローラ１１０は、記憶ノード１２０に対応するカウンタをインクリメントし、次に、マスタコントローラ１１０は、記憶ノード１２０にメモリを送出することができる。
【００１９】
[00021]一実施形態では、記憶ノードは、マスタコントローラ１１０からのコマンドを受け取るための通信バッファを含む。マスタコントローラ１１０は、通信バッファの制約条件に基づいて第１の記憶ノードへの流れを制御する。例示的な一実施では、マスタコントローラと、チェーン内の最後の記憶ノード又は最も遠い記憶ノードとの間の通信は、決められた最大待ち時間を有する。
【００２０】
[00022]一実施形態では、マスタコントローラ１１０は、チェーン内部に接続された最も近いメモリ（例えば、記憶ノード１２０）ノードの状態バッファカウントだけを保持する。チェーンの本質上、マスタコントローラ１１０は、最も近いノード（例えば、記憶ノード１２０）のバッファ利用率が、その次に最も近いノード（例えば、記憶ノード１３０）のバッファ利用率以上になり、このノードのバッファ利用率が、その次に最も近いノード（例えば記憶ノード１４０）以上になることを保証することができる。したがって、マスタコントローラ１１０は、チェーン全体について、第１の記憶ノード又は最も近い記憶ノードのバッファ利用率又はバッファカウントを追跡するだけでよい。
【００２１】
[00023]最適バッファサイズは、マスタコントローラ１１０と第１のメモリノード（例えば、メモリノード１２０）との間のリンクの最大帯域幅に、マスタコントローラ１１０からチェーン内の最も遠いメモリノード又はデバイス（例えば記憶ノード１４０）までの待ち時間を乗算することによって算出することができる。例えば、最大帯域幅が１ＧＢ／ｓであり、記憶ノード１４０の待ち時間が８０ｎｓの場合、最大帯域幅を確保するために必要なバッファサイズは８０バイトになる。
【００２２】
[00024]図２は、本発明の一実施形態による記憶ノード２００のブロック図である。記憶ノード２００は、データの記憶及びアクセスを容易にする。一実施形態では、記憶ノード２００は、ダウンストリーム終端又は要求インターフェース２１０、コア記憶部２２０、アップストリーム終端又は応答インターフェース２３０を備える。
【００２３】
[00025]一実施形態では、要求インターフェース２１０は、通信バッファ２０５を備える。通信バッファ２０５は、メモリコントローラ（例えば、マスタコントローラ１１０）から受け取ることができるメモリ要求又はコマンドを記憶するとともにその処理を容易にするための複数のバッファを含む。例示的な一実施では、メモリコントローラが、通信バッファ２０５内部のバッファの数に対応するカウンタを保持する。メモリ要求が要求インターフェース２１０で受け取られると、この要求は、通信バッファ２０５内部の複数のバッファ内に記憶され、コア記憶部２２０へのアクセスによって実行することができる。要求インターフェース２１０はさらに、要求を次のメモリノードに転送することもでき、あるいは、供給されるべきコア記憶部２２０にその要求を転送することもできる。
【００２４】
[00026]一実施形態では、コア記憶部２２０はメモリとして実施される。一実施形態では、コア記憶部２２０は、ビットラインとワードラインの構成として組織化されたフラッシュメモリである。コア記憶部２２０を介して供給される完了した要求は、応答インターフェース２３０に転送される。
【００２５】
[00027]一実施形態では、要求インターフェース２３０は、内部コントローラ２３１、内部読出しバッファ２３２、及び外部読出しバッファ２３３を備える。内部コントローラ２３１は、内部読出しバッファ２３２からのデータであろうと外部読出しバッファ２３３からのデータであろうと、応答インターフェース２３０から記憶チェーンに沿ってアップストリームに送出されるように制御する。追加の記憶ノード及び／又はマスタコントローラがアップストリームにあってもよいことを理解されたい。内部コントローラ２３１は、ダウンストリームメモリデバイスから受け取られたデータに、それが応答インターフェース２３０からアップストリームに送出されるように優先権を与えることができる。応答インターフェース２３０がダウンストリームメモリデバイスからデータを受け取っているとき、コア記憶部２２０からの応答は、内部コントローラ２３１によって内部読出しバッファ２３２内に記憶される。すなわち、ダウンストリーム要求応答には、局所要求応答に対する優先権が与えられる。
【００２６】
[00028]ダウンストリームメモリデバイスからデータが受け取られていないときには、内部コントローラ２３１は、内部読出しバッファ２３２からのデータをアップストリームに転送する。内部読出しバッファ２３２が空である場合には、コア記憶部２２０によって供給されるメモリ要求に対する応答は、内部読出しバッファ２３２内に記憶されないで直接アップストリームに送出される。内部読出しバッファ２３２から、又は直接コア記憶部２２０からアップストリームへのデータの送出中、内部コントローラ２３１は、ダウンストリームデバイスから受け取ったデータを外部読出しバッファ２３３内に記憶する。内部読出しバッファ２３２からのデータ送出の完了と同時に、内部コントローラ２３１は、外部読出しバッファ２３３からのデータ転送を開始し、外部読出しバッファ２３３が空である場合には、ダウンストリームデバイスからの要求がアップストリームに送出される。
【００２７】
[00029]図３は、本発明の一実施形態による例示的な記憶方法３００のフローチャートである。フローチャート３００は、記憶システム（例えば、記憶システム１００）で実施できることを理解されたい。
【００２８】
[00030]ブロック３１０で、複数のメモリノードの分布と、複数のメモリノード間のトラフィックフローとについての情報が得られる。この情報は、マスタコントローラ（例えば、マスタコントローラ１１０）によって得ることができる。一実施形態では、分布についての情報は、複数のメモリノード（例えば、記憶ノード１２０〜１４０）がチェーン構成として組織化されていることを示す。
【００２９】
[00031]ブロック３２０で、複数のメモリノードのうちの少なくとも１つの内部のバッファサイズが決定される。一実施形態では、バッファサイズは、複数のメモリノードのうちの、マスタコントローラ（例えば、マスタコントローラ１１０）に最も近いもの（例えば、記憶ノード１２０）について決定される。一実施形態では、バッファサイズの決定は、複数のメモリノードを結合するバストポロジの性質を調べることによって確認される。
【００３０】
[00032]ブロック３３０で、複数のメモリノードのうちの少なくとも１つに対する要求及び応答がカウントされる。要求及び応答は、マスタコントローラ（例えば、マスタコントローラ１１０）によってカウントすることができる。例示的な一実施形態では、各記憶ノード内のバッファの数に対応するカウンタが使用される。要求が送出されるとカウンタはデクリメントされ、対応する記憶ノードからの応答が受け取られるとカウンタはインクリメントされる。一実施形態では、要求及び応答は、複数のメモリノードのうちの、マスタコントローラに最も近いもの（例えば、記憶ノード１２０）についてカウントされる。
【００３１】
[00033]ブロック３４０で、カウントに基づいて要求が複数のメモリノードに転送される。一実施形態では、特定のメモリノードに対応するカウンタがゼロである場合には、そのメモリノードに要求が送出されない。ある記憶ノードに対応するカウンタがゼロより大きい場合には、その記憶ノードに要求が転送される。例示的な一実施形態では、複数のメモリノードのうちの、マスタコントローラに最も近い第１のメモリノードが、複数のメモリノードのうちの他のものと同じに、又はより多く利用される。
【００３２】
[00034]したがって、本発明のシステム及び方法は、能率的で好都合なメモリアクセスを容易にする。このメモリアクセスは、トークンを使用するネットワークなどの従来のネットワークとは異なり、情報パケットを用いないで実行することができる。本発明はさらに、現行の構成要素を最小限で再設計することも容易にする。例えば、最も近い記憶ノードで使用可能なバッファをカウントし続ける機能である。本発明の諸実施形態を利用して、チェーン構成又はネットワークとして組織化されたメモリノードの能率的で効果的な制御を行うことができる。
【００３３】
[00035]本発明の具体的な諸実施形態についての上記の説明は、例示及び説明を目的として提示した。これらは網羅的なものではなく、あるいは開示された形態そのものに本発明を限定するものではなく、多くの改変形態及び変形形態が上記の教示に照らして可能であることが明らかである。これらの実施形態は、本発明の原理及び本発明の実用的な応用を最適に説明し、それによって他の当業者が本発明及び様々な実施形態を、企図された特定の用途に適合された様々な改変と共に最適に利用できるように選択され記述された。本発明の範囲は、本明細書に添付の特許請求の範囲及びその等価物によって定義されるものである。
【図１】
0005566899.tif 000002
【図２】
0005566899.tif 000003
【図３】
0005566899.tif 000004