(57)【要約】      （修正有）【課題】複数の相互接続するメモリノードを備えたデータ記憶システム内の使用のためのメモリノードを提供する。【解決手段】メモリノード１０は、3つのデータ入力インターフェース２０，２２，２４、3つのデータ出力インターフェース３０，３２，３４、データを格納するためのメモリモジュール１４及び3つのデータ出力インターフェース、3つのデータ入力インターフェース並びにメモリモジュールに連結するコントローラ１２を有する。コントローラは、3つの入力インターフェースの一つを介して、所定の宛先を備えたデータを受け取るように構成され、メモリノードが所定の宛先であるかどうかを判断するようにデータの第1の部分を読み込み、メモリノードが所定の宛先である場合に、メモリノードにデータの第2の部分を格納し、メモリノードが所定の宛先でない場合、受信されたデータを3つのデータ出力インターフェースの少なくとも1つを介して転送する。【選択図】図１
2010262631.tif 000002
【特許請求の範囲】
【請求項１】
複数の相互接続されたメモリ・ノード（１２０乃至１２７）を備えたデータ記憶システム（４００）内で使用するためのメモリ・ノード（１０）であって、
前記メモリ・ノード（１０）が、
３つのデータ入力インターフェース（２０，２２，２４）と、
３つのデータ出力インターフェース（３０，３２，３４）と、
データを格納するためのメモリモジュール（１４）と、
前記３つのデータ入力インターフェース（２０，２２，２４）と、前記３つのデータ出力インターフェース（３０，３２，３４）と、前記メモリモジュール（１４）とに結合されたコントローラ（１２）と、を備え、
前記コントローラ（１２）が、
前記３つのデータ入力インターフェース（２０，２２，２４）の一つを介して、所定の宛先を備えたデータを受け取り、
前記メモリ・ノード（１０）が所定の宛先であるかどうかを判断するように前記データの第１の部分を読み込み、
前記メモリ・ノード（１０）が所定の宛先である場合、前記メモリモジュール（１４）に前記データの第２の部分を格納させ、
前記メモリ・ノード（１０）が所定の宛先でない場合、前記３つのデータ出力インターフェース（３０，３２，３４）の少なくとも１つを介して受信したデータを転送する、
ように構成されたことを特徴とするメモリ・ノード（１０）。
【請求項２】
相互接続されたメモリ・ノード（１２０乃至１２７）の３次元アレイ（１００）であって、各メモリ・ノード（１０）がユニークアドレス範囲と関連し、
３つのデータ入力インターフェース（２０，２２，２４）と、
３つのデータ出力インターフェース（３０，３２，３４）と、
データを格納するためのメモリモジュール（１４）と、
前記３つのデータ入力インターフェース（２０，２２，２４）と、前記３つのデータ出力インターフェース（３０，３２，３４）と、前記メモリモジュール（１４）とに結合されたコントローラ（１２）と、を備え、
前記コントローラ（１２）が、
前記３つのデータ入力インターフェース（２０，２２，２４）の一つを介して、宛先アドレス及びペイロードデータを包含するデータ・パケットを受け取り、
前記宛先アドレスがメモリ・ノード（１０）アドレス範囲に対応する場合、前記メモリモジュール（１４）に前記ペイロードデータを格納させ、
前記宛先アドレスがメモリ・ノード（１０）アドレス範囲に対応しない場合、前記３つのデータ出力インターフェース（３０，３２，３４）の少なくとも１つを介して受信したデータ・パケットを転送する、
ように構成されたことを特徴とする３次元アレイ（１００）。
【請求項３】
少なくとも１つのシステム入力インターフェースと、少なくとも１つのシステム出力インターフェースと、ユニークアドレス範囲と各々関連した相互接続されたメモリ・ノード（１２０乃至１２７）の３次元アレイ（１００）とを備えたデータ記憶システム（４００）内で使用するためのメモリ・ノード（１０）であって、
前記メモリ・ノード（１０）が、
少なくとも１つのシステム入力インターフェース、又は、前記３次元アレイ（１００）内の異なるメモリ・ノード（１０）の各々に結合された、３つのデータ入力インターフェース（２０，２２，２４）と、
少なくとも１つのシステム出力インターフェース、又は、前記３次元アレイ（１００）内の異なるメモリ・ノード（１０）の各々に結合された、３つのデータ出力インターフェース（３０，３２，３４）と、
データを格納するためのメモリモジュール（１４）と、
前記３つのデータ入力インターフェース（２０，２２，２４）と、前記３つのデータ出力インターフェース（３０，３２，３４）と、前記メモリモジュール（１４）とに結合されたコントローラ（１２）と、を備え、
前記コントローラ（１２）が、
前記３つのデータ入力インターフェース（２０，２２，２４）の一つを介して、宛先アドレス及びペイロードデータを包含するデータ・パケットを受け取り、
前記宛先アドレスがメモリ・ノード（１０）に関するユニークアドレス範囲に対応する場合、前記メモリモジュール（１４）に前記ペイロードデータを格納させ、
前記宛先アドレスがメモリ・ノード（１０）に関するユニークアドレス範囲に対応しない場合、前記３つのデータ出力インターフェース（３０，３２，３４）の少なくとも１つを介して受信したデータ・パケットを転送する、
ように構成されたことを特徴とするメモリ・ノード（１０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ記憶システムに関し、特に複数の相互接続するメモリ・ノードを有するデータ記憶システムの範囲内で、使用のためのメモリ・ノードに関する。
【背景技術】
【０００２】
データ・レコーダは、広帯域のおよび大容量記憶媒体をそれらが操作上配備されるときに、保守またはタイムリな保守のための有効性を制限した電気機械式装置の動作の間、発生するデータを格納することに提供する。例えば、それが大きな損失なしでアクセスされることができない地球周辺に、衛星であるか他の宇宙船システムは、軌道上で配置されることができる。この場合、データ・レコーダは、衛星であるか他の宇宙船システムによって、発生する作動中で診断データを集めて、格納するように構成されることができる。衛星の作動中のステータスを評価するために、作動中の問題が検出されるときに、この格納されたデータはそれから周期的に検索されることができ、または、アクセスされることができる。加えて、多くの商用航空機演算子は、航空機が保守または他の理由のために運行中でない時間の量を最小化しようと努力する。この場合、フライトレコーダは航空機に連結することができて、その動作の間、発生するデータを集めるように構成されることができる。このデータがそれから航空機の範囲内で能率的に識別して、作動中の問題を診断するために保守人員によって、使うことができ、全体の保守時間を減らす。このように、データ・レコーダは、有意にコストを減少させることができる格納作動中で診断データのための効果的機構および遠隔電子であるか機械式デバイスを作動して、維持することと、関連する問題点を提供する。
【０００３】
ある例では、データ・レコーダに保存されるデータは、電子であるか機械式装置（例えば、宇宙船システムまたは上記した航空機のような）上の作動中の問題を検出して、および／または、診断することに利用できる唯一の情報であってもよい。このデータの値を与えらるとすると、フォールト・トレランスはデータ・レコーダ設計の分野の重要な問題である。例えば、多くのデータ・レコーダは、データを受信しておよび／または格納するように構成されるさまざまな構成装置（例えば処理ユニットおよびメモリ装置）を含む。これらの構成装置は、周期的にそれがデータ・レコーダの動作に、悪影響を与え得る作動中の誤りまたは失敗を経験すると思われることができるかまたはデータ・レコーダがデータを受信しておよび／または格納するのを防止できる。このように、データ・レコーダの設計者は、それらの構成装置のうちの1台以上の失敗の後でさえ、データを格納し続けることができるデータ・レコーダを作製しようと努力する。
【０００４】
したがって、装置をそれらの構成装置のうちの1台以上の失敗に耐えることができるフォールト・トレラントのデータ・レコーダを造ることを提供することは望ましい。さらに、他の望ましい特徴および本発明の特徴は、添付の図面およびこの発明の背景と連動して、次の発明の詳細な説明および添付の請求の範囲から明らかになる。
【発明の概要】
【課題を解決するための手段】
【０００５】
ある実施形態では、複数の相互接続するメモリ・ノードを備えたデータ記憶システム内の使用のためのメモリ・ノードが提供される。メモリ・ノードは、３つのデータ入力インターフェース、３つのデータ出力インターフェース、データを格納するためのメモリモジュール、および、３つのデータ出力インターフェース、３つのデータ入力インターフェース並びにメモリモジュールに連結するコントローラを有する。コントローラは、３つの入力インターフェースの一つを介して、所定の宛先を備えたデータを受け取るように構成され、メモリ・ノードが所定の宛先であるかどうかを判断するようにデータの第１の部分を読み込み、メモリ・ノードが所定の宛先である場合に、メモリ・ノードにデータの第２の部分を格納し、メモリ・ノードが所定の宛先でなく、システムがそのように構成されていない場合、受信されたデータを３つのデータ出力インターフェースの少なくとも１つを介して転送することを特徴とする。
【図面の簡単な説明】
【０００６】
【図１】図1は典型的なメモリ・ノードのブロック図である、
【図２】図2は、第１の実施形態による相互接続するメモリ・ノードの三次元アレイのブロック図である、
【図３】図3は、第２の実施形態による相互接続するメモリ・ノードの三次元アレイのブロック図である、
【図４】図4は図1のメモリ・ノードを使用するように構成される典型的なデータ記憶システムのブロック図である。
【発明を実施するための形態】
【０００７】
以下の詳細な説明は、単に事実上典型的で、本発明またはその応用を限定することを目的とするものではない。さらに、前の背景または以下の詳細な説明に示されるいかなる理論にも結合されるものではない。
【０００８】
実施形態は、複数の相互接続するメモリ・ノードを有するデータ記憶システムの範囲内で使用するためのメモリ・ノードを提供する。更に後述するように、メモリ・ノードの実施形態は、データ記憶システムの範囲内で増加するデータ連結性を提供し、データ記憶システム設計者はコストの著しい増大なしで著しく増加したシステム信頼性およびフォールト・トレランスを提供できる。データ記憶システムは、電子式または機械式デバイス（以下、「ターゲットデバイス」という。）の動作の間、発生する診断で作動中のデータを格納するためのデータ・レコーダを有する。上述のように、それらが操作上配備されるときに、保守のための有効性を制限したターゲットデバイス（例えば航空機および宇宙船システム）に、この種のデータ・レコーダが、しばしば使われる。そのような場合、データ・レコーダに格納されるデータは、作動中のステータスを評価することに利用でき、または、ターゲットデバイスとして作動中の問題を識別することができる唯一の情報である。したがって、データ・レコーダがフォールト・トレランスの高水準を有することは重要であり、非常に多くのそのコンポーネントメモリ・ノードが故障した後でさえ、それがデータを格納することを可能にする。
【０００９】
図1は、ある実施形態による典型的なメモリ・ノード10のブロック図である。図示したように、メモリ・ノード10は、メモリモジュール14に連結するメモリコントローラ12、3つのデータ入力インターフェース20、22、24、3つのデータ出力インターフェース30、32、34を含む。メモリ・ノード10は、データ入力インターフェース20、22、24を介してデータを受信し、データ出力インターフェース30、32、34を介してデータを送信できる。更に後述するように、メモリ・ノード10はデータ記憶システムの範囲内で複数の相互接続するメモリ・ノード10のうちの1台として配備されることができる。ある実施形態では、相互接続するメモリ・ノード10の複数は、図2-4を参照して後述する、相互接続するメモリ・ノード10の三次元列を有する。しかし、そのメモリ・ノード10がまた、相互接続するメモリ・ノード10の１次元および２次元の列の範囲内で利用できる点に留意する必要がある。
【００１０】
メモリモジュール14は、メモリコントローラ12から受信されたデータを格納して、ダイナミック・ランダム・アクセス・メモリ（DRAM）、スタティックＲＡＭ（SRAM）、同期型随時書き込み読み出しメモリ（SDRAM）、ダブル・データ・レート同期式ダイナミックなアクセス・メモリ（DDR SDRAM）、若しくは、電子又は非電子メモリの他のいかなる形態も含むことができる。ある実施形態では、メモリモジュール14内のメモリは、複数のメモリアレイまたはバンクの中で配置されることができる。
【００１１】
メモリコントローラ12は、プログラム可能な論理制御システム（PLC）、アプリケーション特定の集積回路（ASIC）、マイクロプロセッサまたは当業者によって公知の他のいかなるタイプの電子コントローラをも有することができる。それは、デジタルおよび／またはアナログのタイプの一つ以上の構成要素から成ることができて、ソフトウェアおよび／またはファームウェアによるプログラマブル、物理的に組み込まれた状態装置、これらの組合せまたは他のいかなる周知の方法でもあってもよい。
【００１２】
メモリコントローラ12は、データ入力インターフェース20、22、24を介してメモリ・ノード10に発信されるデータ（以下、「受信されたデータ」ともいう。）を受信するように構成される。受信されたデータの内容に基づいて、メモリコントローラ12は、少なくとも受信されたの一部をデータをメモリモジュール14に格納できるか、メモリモジュール14から格納されたデータを検索できるか、または。後述するように他の動作を実行できる。加えて、メモリコントローラ12はまた、データ出力インターフェース30、32、34を介してデータを送信するように構成されることができる。メモリコントローラ12は、全ての3つのデータ出力インターフェース30、32、34を介して（以下に、「放送アプローチ」ともいう。）、または、一つ以上の選択されたデータ出力インターフェース30、32、34を介して（以下に、「選択された経路アプローチ」）データを送信できる。選択された経路アプローチの下で、メモリコントローラ12は受信されたデータの範囲内のデータ経路情報に基づいて、または、メモリコントローラ12の範囲内の論理または制御設定に基づいてデータ出力インターフェース30、32、34を選ぶ。例えば、メモリコントローラ12は現在のデータ出力構成を識別する値を格納するための一つ以上の制御レジスタを含むことができる。この場合、メモリコントローラ12はデータ出力構成に基づいてデータ出力インターフェース30、32、34を選ぶ。
【００１３】
ある実施形態では、メモリコントローラ12は受信されたデータの内容に基づいて、複数の動作のうちの1つを実行するように構成され、WRITE（書き込み）動作、READ（読み込み）動作、TEST（テスト）動作および一つ以上の制御動作を含む。受信されたデータがデータ・パケットを有する場合、メモリコントローラ12はWRITE動作を実行する。WRITE動作中、メモリコントローラ12は少なくとも一部のデータ・パケットをメモリに格納するか、または、若干の実施形態で、データ出力インターフェース30、32、34を介してデータ・パケットを送信する。ある実施形態では、メモリ・ノード10はユニークなアドレス範囲と関連し、データ・パケットは、宛先アドレスおよびペイロード・データを含む。データ入力インターフェース20、22、24を介してデータ・パケットを受信すると、メモリコントローラ12は、宛先アドレスがメモリ・ノード10のためのユニークなアドレス範囲と対応するかどうか決定する。宛先アドレスがメモリ・ノード10のためのユニークなアドレス範囲と対応する場合、メモリコントローラ12はペイロード・データをデータ・パケットから抜き取って、ペイロード・データをメモリモジュール14に格納する。
【００１４】
別の実施携帯では、データ・パケットの宛先アドレスが、メモリ・ノード10のためのユニークなアドレス範囲と一致しない場合、メモリコントローラ12はデータ出力インターフェース30、32、34のうちの少なくとも1つを介して受信されたデータ・パケットを送信するように構成されることができる。メモリコントローラ12は、データ・パケットを送信するために放送アプローチまたは選択された経路アプローチを利用できる。選択された経路アプローチの場合、メモリコントローラ12はデータ・パケットの範囲内で情報を送ることに基づいて、または、上述のようにのメモリコントローラ12の現在のデータ出力構成に基づいてデータ出力インターフェース30、32または34を選ぶことができる。データ・パケットのための宛先アドレスがメモリ・ノード10のためのユニークなアドレス範囲と一致しないときに、メモリコントローラ12がまた、データ出力インターフェース30、32、34を介してデータ・パケットを送信しないように構成されうることにも注意すべきである。
【００１５】
検索されたデータがデータリクエストを有する場合、メモリコントローラ12はREAD動作を実行する。READ動作中、メモリコントローラ12は、リクエストされたデータがメモリモジュール14に格納されるかどうか決定する。リクエストされたデータがメモリモジュール14に格納される場合、メモリコントローラ12はデータ出力インターフェース30、32および／または34の一つ以上を介してデータリクエストを送信する。別の実施形態では、データリクエストがメモリモジュール14に格納されるデータと対応する場合、メモリコントローラ12は、メモリモジュール14からデータを検索して、データ出力インターフェース30、32および34の一つ以上を介してデータを送信する。
【００１６】
例えば、ある実施形態では、メモリ・ノード10は、ユニークなアドレス範囲に関連し、データリクエストは、リクエストされたアドレス範囲を含みうる。READ動作中、メモリコントローラ12はリクエストされたアドレス範囲がメモリ・ノード10のためのユニークなアドレス範囲の範囲内であるかどうか決定する。求されたアドレス範囲がメモリ・ノード10のためのユニークなアドレス範囲の範囲内である場合、メモリコントローラ12は、リクエストされたアドレス範囲と対応するメモリモジュール14に格納されるデータを含むデータレスポンスを生成する。メモリコントローラ12は、少なくとも１つのデータ出力インターフェース30、32、34を介してデータレスポンスを送信する。メモリコントローラ12は、放送アプローチまたは選択された経路アプローチを使用しているデータレスポンスを送信できる。
【００１７】
別の実施形態では、リクエストされたアドレス範囲がメモリ・ノード10のためのユニークなアドレス範囲の範囲内でない場合、メモリコントローラ12は、データ出力インターフェース30、32、34のうちの少なくとも1つを介して受け取られたデータリクエストを送信するように構成されうる。メモリコントローラ12は、データリクエストを送信するために放送アプローチまたは選択された経路アプローチを利用できる。選択された経路アプローチの場合、メモリコントローラ12は、データリクエストの範囲内でまたはその現在のデータ出力構成に基づいて情報を送ることに基づいてデータ出力インターフェース30、32または34を選ぶことができる。加えて、リクエストされたアドレス範囲がメモリ・ノード10のためのユニークなアドレス範囲の範囲内でないときに、メモリコントローラ12は、データ・パケットを送信しないように構成されることができうる。
【００１８】
受信されたデータがステータスリクエストを有する場合、メモリコントローラ12はTEST動作を実行する。TEST動作中、メモリコントローラは、少なくとも一つのデータ出力インターフェース30、32、34を介してメモリ・ノード10（例えば、メモリコントローラ12、メモリモジュール14、データ入力インターフェース20、22、24および／または、データ出力インターフェース30、32、34のステータス）の作動中のステータスを記載するステータスレスポンスを生成して、送信する。ある実施形態では、ステータスリクエストは、ステータス宛先アドレスを含み、メモリ・コントローラ12は、メモリ・ノード10に関するユニークなアドレス範囲と対応するステータス宛先アドレスのステータスレスポンスを生成するように構成される。別の実施形態では、ステータス宛先アドレスが、ユニークなアドレス範囲と一致しない場合、メモリコントローラ12は、少なくとも一つのデータ出力インターフェース30、32、34（例えば、放送アプローチまたは選択されたデータ経路アプローチを介して）を介して受け取られたステータスリクエストを送信できる。ステータス宛先アドレスがメモリ・ノード10のためのユニークなアドレス範囲と一致しないときに、そのメモリコントローラ12がまた、ステータスリクエストを送信しないように構成されることができる点に留意する必要がある。
【００１９】
最後に、受信されたデータは、メモリコントローラ12に命令動作を実行させるコマンド信号を有することができる。例えば、コマンド信号は、メモリコントローラ12、ある例ではメモリモジュール14をリセットさせることができるリセットリクエストを含みうる。更に、コマンド信号は、メモリコントローラ12がその現在のデータ出力構成を変えさせるデータ出力構成信号を含むことができる。ある実施形態では、コマンド信号はコマンド宛先アドレスを含み、データ・パケットを処理するために上述した方法と実質的に同様な方法でメモリコントローラ12により処理される。したがって、コマンド宛先アドレスが、メモリ・ノード10のためのユニークなアドレス範囲と対応する場合、メモリコントローラ12は適切な命令動作を実行する。別の実施形態では、メモリコントローラ12は、少なくとも一つのデータ出力インターフェース30、32、34（例えば、放送アプローチまたは選択されたデータ経路アプローチを介して）を介してコマンド信号を送信する。コマンド宛先アドレスが、メモリ・ノード10のためのユニークなアドレス範囲と、一致しない場合、そのメモリコントローラ12がまた、コマンド信号を送信しないように構成されることができる点に留意する必要がある。
【００２０】
図2は、第１の実施形態による相互接続メモリ・ノードの三次元列100のブロック図である。図示したように、アレイ100は、メモリ・ノード120、121、122、123の上方レベルと、メモリ・ノード124、125、126、127の下方のレベルとを有する２×２×２アレイである。各々のメモリ・ノード120-127は、メモリ・ノード10（図1）と、実質的に同一である。メモリ・ノード120-127は、ユニークなアドレス範囲と各々関連して、3つのデータ入力インターフェースを介してデータおよびコマンド信号を受信して、3つのデータ出力インターフェースを介してコマンド信号とデータを送信するように構成される。
【００２１】
示すように、各々のデータ入力インターフェースは、アレイ入力130、131、132、133に、または他のメモリ・ノードの120-127に連結する。更に、各々のデータ出力インターフェースは、アレイ出力140、141、142、143にまたは他のメモリ・ノードの120-127に連結する。この三次元構造は、各々のアレイ入力130-133と各々のアレイは140-143との間の複数のデータ経路を介して連結性を提供する。この複数のデータ経路は、個々のメモリ・ノードの120-127の一つ以上が、作動中の誤りまたは失敗を経験する場合であっても、アレイ100がデータを格納し続けることを可能にする。
【００２２】
データは、アレイ入力130-133を介して、アレイ100に、宛先アドレスおよびペイロード・データから成るデータ・パケットを送信することによって、ターゲットメモリ・ノードの120-127内に格納される。例えば、メモリ・ノード127に対応する宛先アドレスを有するデータ・パケットは、アレイ入力131を介して三次元アレイ100に送信されることができる。データ・パケットはメモリ・ノード120で最初に受け取られ、上述したように、メモリ・ノード120のためのメモリコントローラ（例えば図1のメモリコントローラ12）はWRITE動作を実行する。この場合、データ・パケットのための宛先アドレスは、メモリ・ノード120のためのユニークなアドレス範囲と一致せず、メモリコントローラは、メモリ・ノード120のためのデータ出力インターフェースのうちの少なくとも1つを介してデータ・パケットを送信する。メモリ・ノード120のためのメモリコントローラは、データ・パケットを送信するために放送アプローチまたは選択されたデータ経路アプローチを利用できる。放送アプローチおよび選択されたデータ経路アプローチの記述をアレイ100の範囲内でデータ・パケットのルーティングに関して後述するので、放送アプローチは当業者により理解され、選択された経路アプローチは、アレイ100内でリクエスト、レスポンス、コマンド信号、または、他のデータをルーティングするのに同様に利用できる。
【００２３】
放送アプローチ下で、データ・パケットは、メモリ・ノード120のための全ての3つのデータ入力インターフェースを介して送信される。このように、メモリ・ノード121、122および124は、各々データ・パケットを受信し、メモリ・ノード121、122および124のためのデータ出力インターフェースを介してデータ・パケットに送信されるように、それらのメモリコントローラもWRITE動作を実行する。このプロセスは続き、メモリ・ノード127に着くまで、データ・パケットはアレイ100の全体にわたって増殖する。示すように、複数の可能なデータ経路が、アレイ入力131とメモリ・ノード127との間にある。依然として作動中であるメモリ・ノードを有する少なくとも一つのデータ経路がある限り、放送アプローチは、アレイ入力131とメモリ・ノード127との間でデータ・パケットが送信されることを可能にする。更に、メモリ・ノード120またはアレイ入力131が、誤りを経験する場合、他のアレイ入力130、132、133は、データをメモリ・ノード127に発信するのに利用できる。このように、一つ以上のメモリ・ノード120-126がもはや機能していない場合であっても、データはメモリ・ノード127に送られ得る。この柔軟性は、コンポーネントメモリ・ノード120-127に関するフォールト・トレランスの高水準をアレイ100に提供する。
【００２４】
放送アプローチ下で、データ・パケットは、アレイ100内で無限のループで送信されることが可能な点に留意する必要がある。例えば、データ・パケットは、メモリ・ノード120および122の間で、無限ループされ得る。更に、メモリ・ノード127に関して、データ・パケットの複数のコピー（例えば、データパケットが、三次元アレイ100の全体にわたって広がるように増加するので）を受け取り、続いて、ペイロード・データの複数のコピーを格納することは可能である。これらの出来事は、それらがすでに受信したデータ・パケットを認識して、1回だけ各々のデータ・パケットを処理するように、メモリ・ノード120-127に関するメモリコントローラを構成することにより予防されることができる。例えば、各々のデータ・パケットは、ユニークなパケット識別子を含むことができる。更に、メモリ・ノード120-127のためのメモリコントローラは、最も直近に受信されたデータ・パケットの予め定められた数のためのユニークなパケット識別子を含む記録を維持するように構成され得る。この場合、各々のメモリコントローラは、格納されたパケット識別子をこの記録の範囲内で各々の受信されたデータ・パケットのためのパケット識別子と比較する。受け取られるパケット識別子が、格納されたパケット識別子と対応する場合、メモリコントローラは、それらがすでにデータ・パケットを処理し、データ・パケットが廃棄されたと判断する。
【００２５】
選択されたデータ経路アプローチの下で、メモリ・ノード120に関するメモリコントローラによって選ばれる一つ以上のデータ出力インターフェースを介してデータ・パケットは、送信される。上述のように、メモリ・ノード120のためのメモリコントローラは、データ・パケット内に格納されるデータ経路情報に基づいて、適切なデータ出力インターフェースを選ぶことができる。例えば、アレイ入力130-133とアレイ出力140-143との間の各々の異なったデータ経路は、ユニークなデータ経路識別子と関係していてもよい。更に、アレイ入力131とアレイ出力142との間のメモリ・ノード120、121、125および127を横断するデータ経路に対応する第1のデータ経路識別子は、データ・パケット内に含まれ得る。この場合、メモリ・ノード120のためのメモリコントローラは、第1のデータ経路識別子に基づいてメモリ・ノード121に連結するデータ出力インターフェースを選ぶように構成され得る。メモリ・ノード121および125のためのメモリコントローラはまた、WRITE動作を実行し、第1の経路識別子と対応するデータ・インターフェースを選び、データ・パケットがメモリ・ノード127に着くことを可能にする。別の実施形態では、メモリ・ノード121および／または125が誤りを経験して、適切にもはや機能していない場合、データ・パケットは、メモリ・ノード120、122、123および127を横断するデータ経路に対応する第２のデータ経路識別子を含みうる。この場合、メモリ・ノード120、122および123のためのメモリコントローラは、データ・パケットがメモリ・ノード127に到着するまで、第２のデータ経路識別子と対応するデータ出力インターフェースを選ぶ。
【００２６】
加えて、選択された経路アプローチ下で、メモリ・ノード120のためのメモリコントローラは、メモリコントローラの範囲内で論理または制御設定に基づいて適切なデータ出力インターフェースを選ぶことができる。上述したように、各々のメモリコントローラは、異なる出力インターフェースまたはデータ出力インターフェースの異なる組合せと各々対応する複数のデータ出力構成を含みうる。この場合、メモリコントローラはそれらの現在のデータ出力構成に基づいて適切なデータ出力インターフェースを選ぶように構成される。例えば、メモリ・ノード120、121および125のためのメモリコントローラのデータ出力構成は、メモリ・ノード127に着く前に、データ・パケットが各々のそれらのメモリ・ノードを横断させることができるようにセットされ得る。別の実施形態では、メモリ・ノード121および／または125が、誤りを経験して、もはや適切に機能していない場合、それがメモリ・ノード127に着くまで、メモリ・ノード120、122および123のためのメモリコントローラの現在のデータ出力構成はデータ・パケットがそれらのメモリ・ノードを横断できる集合（例えば、図1に関して上記したデータ出力構成信号を介して）であってもよい。このように、機能しているメモリ・ノードの120-126の少なくとも一つのデータ経路がアレイ入力130およびメモリ・ノード127の間にある限り、選択されたデータ経路アプローチもデータがメモリ・ノード127に発信されることを可能にし、アレイ入力130-133、アレイ出力140-143およびメモリ・ノード120-126の間にデータをルーティングするための柔軟性を提供する。この柔軟性により、アレイ100がコンポーネントメモリ・ノード120-127に関して、フォールト・トレランスの高水準を有することを可能にする。
【００２７】
データは、アレイ入力130-133を介してアレイ100に、リクエストされたアドレス範囲から成るデータリクエストを送信することによって、メモリ・ノードの120-127から検索されることができる。例えば、メモリ・ノード127と対応するリクエストされたアドレス範囲を有するデータリクエストは、アレイ入力131を介してアレイ100に送信されることができる。データリクエストはメモリ・ノード120によって、最初に受け取られ、上述の通り、メモリ・ノード120のためのメモリコントローラはREAD動作を実行する。この場合、リクエストされたアドレス範囲はメモリ・ノード120のためのユニークなアドレス範囲の範囲内ではなく、メモリコントローラはメモリ・ノード120のためのデータ出力インターフェースのうちの少なくとも1つを介してデータリクエストを送信する。メモリ・ノード120のためのメモリコントローラは、放送アプローチを利用しているデータレスポンスまたは上記した選択されたデータ経路アプローチを送信できる。選択されたデータ経路アプローチの場合、データリクエストはまた、アレイ入力131およびメモリ・ノード127間の所望のデータ経路を識別しているデータ経路情報を含むことができる。
【００２８】
データリクエストは、次いで、アレイ100、又は、アレイ100内の選択された経路を横断して、メモリ・ノード127によって受け取られる。メモリ・ノード127のためのメモリコントローラは、READ動作を実行して、リクエストされたアドレス範囲がメモリ・ノード127のためのユニークなアドレス範囲の範囲内であると決定する。メモリコントローラは、次いで、リクエストされたアドレス範囲と対応するメモリ・ノード127のメモリモジュール（例えば図1のメモリモジュール14）の範囲内で格納されるデータを含むデータレスポンスを生成する。最後に、メモリコントローラはアレイ出力140-143のうちの少なくとも1つまで、メモリ・ノード127のデータ出力インターフェースのうちの少なくとも1つを介して生成されたデータレスポンスを送信する。データレスポンスは、放送アプローチを経てまたは選択された経路アプローチを経て送信されることができる。選択された経路アプローチ下で、データレスポンスは、データ経路情報を含みうる。ある実施形態では、メモリ・ノード127のためのメモリコントローラは、対応するデータリクエストに含まれるデータ経路情報に基づいて、データレスポンスのためのデータ経路情報を決定する。
【００２９】
アレイ100の中の各々のメモリ・ノード120-127の作動中のステータスは、アレイ入力130-133のうちの1つを介してステータスリクエストを送信することにより判断されうる。ステータスリクエストは、ターゲットメモリ・ノード120-127に関するユニークなアドレス範囲と対応するステータス宛先アドレスを含み、データ・パケットのルーティングと実質的に同様の方法で、放送アプローチまたは選択された通路アプローチを使用しているアレイ100の範囲内でルーティングされうる。ターゲットメモリ・ノード120-127に関するメモリコントローラが依然として作動中している場合、それはTEST動作を実行して、ステータスリクエストを受け取ると、即座に、ステータスレスポンスを送信する。ついで、ステータスレスポンスは、選択された経路アプローチの放送アプローチを使用して出力140-143の少なくとも１つに、ターゲットメモリに関するデータ出力インターフェースのうちの少なくとも1つを経て送信される。選択された経路アプローチ下で、ステータスレスポンスは、対応するステータスリクエストに含まれるデータ経路情報に基づくデータ経路情報を含むことができる。
【００３０】
最後に、コマンド信号（例えば、リセット信号および／またはデータ出力構成信号）は、データパケットをルーティングするために上述した方法と実質的に同様な仕方で、選択された経路アプローチまたは放送アプローチを使用して、アレイ100の中のメモリ・ノード120-127の各々にルーティングされうる。
【００３１】
図3は、第２の実施形態による相互接続するメモリ・ノードの三次元列200のブロック図である。三次元アレイ200は、6つのアレイ入力220、221、222、223、224、225、6つのアレイ出力230、231、232、233、234、235、および、18のメモリ・ノード260、261、262、263、264、265、266、267、268、269、270、271、272、273、274、275、276、277を備えた3×3×2アレイである。各々のメモリ・ノード260-277は、3つのデータ入力インターフェースを介してデータを受信して、3つのデータ出力インターフェースを介してデータを送信するように構成される。図示したように、各々のデータ入力インターフェースは、アレイ入力220-225にまたは他のメモリ・ノードの260-277に連結する。更に、各々のデータ出力インターフェースは、アレイ出力230-235に、または他のメモリ・ノードに連結する。上述の通り、アレイ100（図2）に関して、この構成は、アレイ入力220-225、アレイ出力230-235、および、メモリ・ノード277の間に複数のデータ経路を提供する。この複数のデータ経路は、アレイ200が、コンポーネントメモリ・ノード260-277に関して、フォールト・トレランスの高水準を有することを可能にする。アレイ200は、図1のメモリ・ノード10を利用して達成されることができるデータ記憶システム設計のスケーラビリティの実施形態を提供する。
【００３２】
図4は、図1のメモリ・ノード10を使用するように構成される典型的なデータ記憶システム400のブロック図である。データ記憶システム400は、プロセッサ410、メモリ412、メモリ・ノード・アレイ414、2つのシステム入力インターフェース416、418、および、2つのシステム出力インターフェース420、422を含む。アレイ414は、ユニークなアドレス範囲と各々が関連するメモリ・ノード430、431、432、433、434、435、436および437から成る。アレイ414も、4つのアレイ入力450、451、452、453と、4つのアレイ出力460、461、462、463とを含む。図示したように、アレイ入力450および451は、両方ともシステム入力インターフェース416に連結する冗長な入力であり、アレイ入力452および453は、両方ともシステム入力インターフェース418に連結する冗長な入力である。更に、アレイ出力460および462は、両方ともシステム出力インターフェース420に連結する冗長な出力であり、アレイ出力462および463は、両方ともシステム出力インターフェース422に連結する冗長な出力である。
【００３３】
システム入力インターフェース416および418は、プロセッサ410に、そして、上述のようにアレイ入力450-453に連結する。システム入力インターフェース416および418は、ターゲットデバイスの作動中、発生するデータを受信する。ある実施形態では、システム入力インターフェース416および418が、一つ以上の制御装置、センサ、または、ターゲットデバイスの他のシステムに（有線またはワイヤレスで）連結されるポートを含むことができる。各々のシステム入力インターフェース416、418は、コントローラ470、472を含む。コントローラ470、472は、PLCs、ASIC、マイクロプロセッサ、または、当業者に公知である他のいかなるタイプの電子コントローラからなってもよい。それらは、デジタルおよび／またはアナログのタイプの一つ以上の構成要素から成ることができ、ソフトウェアおよび／またはファームウェア、物理的に組み込まれた装置、これらの組合せ、または、当業者に周知の方法によってプログラム可能である。更に、後述するように、コントローラ470、472は、プロセッサ410と協同してデータ・パケットをターゲットメモリ・ノード430-437に送信するように構成される。更なるコントローラ470、472はまた、プロセッサ410と協同してデータリクエスト、ステータスリクエストおよびコマンド信号をターゲットメモリ・ノード430-437に送信するように構成されることができる。
【００３４】
システム出力インターフェース420および422は、プロセッサ410に、そして、上述のようにアレイ出力460-463に連結する。システム出力インターフェース420および422は、データリクエストに応答してメモリ・ノード430-437によって送信されるデータを受信するように構成される。ある実施形態では、システム出力インターフェース420が、データ記憶システム400からデータを検索する目的のために図示していない電子デバイスに（有線またはワイヤレスで）結合されうるポートを有する。検索されたデータは、プロセッサ410により分析され、および／または、電子デバイスへ転送されうる。
【００３５】
プロセッサ410は、システム入力インターフェース416および418で受信されたデータがメモリ・ノード・アレイ414内に格納され、各々のメモリ・ノード430-437内に格納されるデータの記録を維持し、誤りを経験して、適切に機能していない、または、利用可能にされないメモリ・ノード430-437の記録をもまた維持できうるかどうか判断する。プロセッサ410は、一つ以上のマイクロプロセッサを含むことができ、それぞれはプログラム指示に応答して作動する多数の周知の多目的マイクロプロセッサかアプリケーション特定のプロセッサのいずれでもあってもよい。メモリ412は、ソースまたはオブジェクト・コードおよび／またはデータを含むいかなるフォーマットにおいても、指示を格納するように構成される。
【００３６】
上述のように、ターゲットデバイスの作動中、データは、システム入力インターフェース416および418で受け取られる。プロセッサ410は、ターゲットメモリ・ノード430-437のための宛先アドレスを識別し、適切なシステム入力インターフェース416、418に、宛先アドレスを通信する。加えて、選択されたデータ経路アプローチが利用されている場合、プロセッサ410はまた、適切なシステム入力インターフェース416、418に、データ経路情報を提供できる。コントローラ470または472は、宛先アドレス、ペイロード・データ、および、アレイ414の範囲内でデータ・パケットをルーティングするためのいかなる追加的な情報（例えば、放送アプローチが用いられ、或いは、選択されたデータ経路アプローチであるデータ経路情報が用いられるならば、ユニーク識別子）を有する一つ以上のデータ・パケットを生成する。データ・パケットは、アレイ入力450-453を介してメモリ・ノード・アレイ414に送信される。
【００３７】
データをデータ記憶システム400から検索するために、プロセッサ410は、リクエストされたデータのためのリクエストされたアドレス範囲を識別し、システム入力インターフェース416、418と協同して１またはそれ以上のデータリクエスト生成する。例えば、ある実施形態において、電子装置は、システム出力インターフェース420または422に（有線、または、ワイヤレスで）結合される。電子装置は、アレイ414の範囲内で格納されたデータをリクエストするためにプロセッサ410と通信する。この場合、プロセッサ410は、システム入力インターフェース416および418と協同して適切なデータリクエストを生成する。データリクエストは、リクエストされたアドレス範囲、および、データリクエストをルーティングするのに必要ないかなる追加的な情報（例えば、ユニーク識別子またはデータ経路情報）も含むことができる。次いで、データリクエストは、アレイ入力450-453を介してメモリ・ノード・アレイ414に送信される。ターゲットメモリ・ノード430-437は、アレイ出力460-463を介して適当なシステム出力インターフェース420、422にリクエストされたデータを発信する。
【００３８】
加えて、プロセッサ410は、システム入力インターフェース416および／または418と協同して、ステータスリクエストを周期的に生成し、メモリ・ノード430-437に発信できる。各々のステータスリクエストは、ターゲットメモリ・ノード430-437のためのアドレス範囲と対応するステータス宛先アドレスと、ステータスリクエストをルーティングすることを要求するいかなる追加的な情報（例えば、ユニーク識別子またはデータ経路情報）とを含みうる。各々のステータスリクエストは、アレイ入力450-452を介してメモリ・ノードのアレイ414に送信され、ターゲットメモリ・ノードの430-437に送られる。上述したように、ターゲットメモリ・ノード430-437に関するメモリコントローラが作動中の場合、それはアレイ出力460-463を介してシステム出力インターフェース420、422のうちの1つに対してルーティングされるステータスレスポンスを生成する。適切に機能していないメモリ・ノードの記録を維持するために、プロセッサ410は、これらのステータスレスポンスまたはステータスレスポンスの不足を利用する。この記録は、システム入力インターフェース416および418を介して受け取られる新しいデータを格納するか、或いは、メモリ・ノード・アレイ414内でデータをルーティングするかを判断するのに用いられる。
【００３９】
最後に、プロセッサ410は、コマンド信号（例えば、リセット信号、または、データ出力構成信号）を一つ以上のメモリ・ノード430-437に発信できる。プロセッサ410は、システム入力インターフェース416および／または418と協同して、コマンド信号を生成して、ターゲットメモリ・ノード430-437に発信する。各々のコマンド信号は、ターゲットメモリ・ノード430-437に関するアドレス範囲と対応するコマンド宛先アドレスと、メモリ・ノード・アレイ414の範囲内でコマンド信号をルーティングするのに必要であるいかなる追加的な情報（例えば、ユニーク識別子、または、データ経路情報）とを含むことができる。コマンド信号は、アレイ入力450-453を介してメモリ・ノード・アレイ414に送信される。
【００４０】
少なくとも一つの例示的な実施形態を前述の発明の詳細な説明に示してきたけれども、非常に多くのバリエーションが存在すると認められなければならない。典型的な実施形態は単なる例示だけであって、いかなる形であれ範囲、適用性または本発明の構成を限定することを目的としないこともまた、認められなければならない。むしろ、前述の詳細な説明は、当業者に本発明の典型的な実施形態を実行することの便利なロードマップを提供する。種々の変更は、添付の特許請求の範囲に規定された発明の範囲を逸脱することなく例示の実施形態に記載されたエレメントのアレンジおよび機能においてなされるものであることも理解されるべきである。
【図１】
2010262631.tif 000003
【図２】
2010262631.tif 000004
【図３】
2010262631.tif 000005
【図４】
2010262631.tif 000006
【外国語明細書】
2010262631000001.pdf