(57)【特許請求の範囲】
【請求項１】
演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置であって、
前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をし、該格納は前記複数のメモリコントローラのそれぞれが、前記データを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われることを特徴とするメモリ障害処理装置。
【請求項２】
請求項１に記載のメモリ障害処理装置であって、
前記格納された前記データの読み込み時には、前記ノードコントローラが、前記データを組み立て又は再構築し、当該組み立て又は再構築したデータをメモリ読み込み要求した前記演算処理装置に返却することを特徴とするメモリ障害処理装置。
【請求項３】
請求項１又は２に記載のメモリ障害処理装置であって、
前記ノードコントローラが、前記演算処理装置からメモリ読み込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ読み込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ読み込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ読み込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ読み込み要求が転送されてきた場合であって、当該読み込み要求が自配下のメモリＤＩＭＭへのものである場合に当該読み込み要求に従ってデータの読み込みを試み、当該データの読み込みが成功した場合は前記ノードコントローラに読み込んだデータを返却し、当該データの読み込みが失敗した場合は前記ノードコントローラに失敗をした旨を返却することを特徴とするメモリ障害処理装置。
【請求項４】
請求項３に記載のメモリ障害処理装置であって、
前記ノードコントローラは、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ読み込み要求を転送された場合には、自配下の前記メモリＤＩＭＭから返却された前記読み込んだデータ若しくは前記失敗をした旨を、自身に接続されている他のメモリ障害処理装置のノードコントローラに転送し、
前記ノードコントローラは、自身が前記演算処理装置からメモリ読み込み要求を受けつけた場合には、自身に接続されている他のメモリ障害処理装置のノードコントローラから転送されてきた前記読み込んだデータ若しくは前記失敗をした旨、及び、自配下の前記メモリＤＩＭＭから返却された前記読み込んだデータ若しくは前記失敗をした旨、を用いてデータを組み立て又は再構築し、当該組み立て又は再構築したデータを前記メモリ読み込み要求した前記演算処理装置に返却することを特徴とするメモリ障害処理装置。
【請求項５】
複数のメモリ障害装置を有するメモリ障害処理システムにおいて、前記複数のメモリ障害処理装置が請求項１乃至４の何れか１項に記載のメモリ障害処理装置であることを特徴とするメモリ障害処理システム。
【請求項６】
演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置が行うメモリ障害処理方法であって、
前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をし、該格納は前記複数のメモリコントローラのそれぞれが、前記データを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われることを特徴とするメモリ障害処理方法。
【請求項７】
請求項６に記載のメモリ障害処理方法であって、
前記格納された前記データの読み込み時には、前記ノードコントローラが、前記データを組み立て又は再構築し、当該組み立て又は再構築したデータをメモリ読み込み要求した前記演算処理装置に返却することを特徴とするメモリ障害処理方法。
【請求項８】
請求項６又は７に記載のメモリ障害処理方法であって、
前記ノードコントローラが、前記演算処理装置からメモリ読み込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ読み込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ読み込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ読み込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ読み込み要求が転送されてきた場合であって、当該読み込み要求が自配下のメモリＤＩＭＭへのものである場合に当該読み込み要求に従ってデータの読み込みを試み、当該データの読み込みが成功した場合は前記ノードコントローラに読み込んだデータを返却し、当該データの読み込みが失敗した場合は前記ノードコントローラに失敗をした旨を返却することを特徴とするメモリ障害処理方法。
【請求項９】
請求項８に記載のメモリ障害処理方法であって、
前記ノードコントローラは、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ読み込み要求を転送された場合には、自配下の前記メモリＤＩＭＭから返却された前記読み込んだデータ若しくは前記失敗をした旨を、自身に接続されている他のメモリ障害処理装置のノードコントローラに転送し、
前記ノードコントローラは、自身が前記演算処理装置からメモリ読み込み要求を受けつけた場合には、自身に接続されている他のメモリ障害処理装置のノードコントローラから転送されてきた前記読み込んだデータ若しくは前記失敗をした旨、及び、自配下の前記メモリＤＩＭＭから返却された前記読み込んだデータ若しくは前記失敗をした旨、を用いてデータを組み立て又は再構築し、当該組み立て又は再構築したデータを前記メモリ読み込み要求した前記演算処理装置に返却することを特徴とするメモリ障害処理方法。
【請求項１０】
演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置であって、
前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をし、該格納は前記複数のメモリコントローラのそれぞれが、前記データを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われるメモリ障害処理装置としてコンピュータを機能させることを特徴とするメモリ障害処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリＤＩＭＭ（Dual Inline Memory Module）のマルチビットエラーやメモリコントローラ障害が発生した場合でもシステムの運用を継続することに関する。
【背景技術】
【０００２】
近年では障害が発生しても動作が停止することなく、保守介入が可能なシステムが求められている。メモリに関しても同様の要求があり、その対策の１つがメモリＲＡＩＤによる冗長化である。
【０００３】
このような、メモリＲＡＩＤの冗長化に関する技術が例えば特許文献１に記載されている。特許文献１に記載の技術では、以下のような構成を提案している。
【０００４】
特許文献１に記載のメモリシステムにおいては、第１のデータ・メモリは、第１のメモリ・コントローラに、第２のデータ・メモリは、第２のメモリ・コントローラに、パリティ・メモリは、パリティ・コントローラに結合され、パリティ・コントローラは、第１および第２のメモリ・コントローラに直接結合される。パリティ・データ制御ロジックは、第１および第２のデータ・メモリ内のデータと関連付けられたパリティ情報を記憶して取り出し、パリティ・データ制御ロジックは、第１のデータ・メモリ内のデータと関連付けられたパリティ・データを、前記第２のデータ・メモリ内のデータと関連付けられたパリティ・データと、パリティ・メモリ内でインタリーブする。そして、上述のような構成をとることによりメモリ・コントローラ・レベルのＲＡＩＤに必要とされるシステムの複雑化を防ぐことが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１０８２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マルチビットエラーなどのメモリＤＩＭＭの障害やメモリコントローラの障害が発生した場合、当該ＤＩＭＭやメモリコントローラは自配下のデータが保証できなくなるためシステムの停止などを引き起こしていた。これを回避するために例えば特許文献１に記載の技術のようにメモリの二重化やメモリＲＡＩＤが行われている。しかし、二重化やデータのストライピング及びパリティ生成・チェックを集中管理しているため、パリティ生成部やデータ復号部に負荷が集中し、性能の低下が発生していた。また、複数のストライピングデータを１つのＲＡＩＤメモリコントローラが制御しているため、当該コントローラで障害が発生した場合にシステムダウンが回避できなかった。例えば特許文献１に記載の技術では、メモリへの書き込みに関してはパリティデータ制御ロジック４６０が、メモリからの読み出しデータのパリティチェック及びデータ復号化は各Ｄコントローラ内のパリティ制御ロジックが行っている。また、各Ｄコントローラ内のメモリ制御ロジックが一括して配下のメモリへのアクセスを行っている。(図６参照。なお図６は特許文献１の図４に相当する図面である。）
つまり、一般的なメモリＲＡＩＤはＲＡＩＤアーキテクチャが集中管理されており、システムの性能がＲＡＩＤコントローラの性能に左右されていた。また、当該ＲＡＩＤコントローラ部で障害が発生した場合にシステムの停止を引き起こすことが懸念されていた。
【０００７】
そこで、本発明は、ＲＡＩＤコントローラ部で障害が発生した場合にシステムの停止を引き起こすことがないメモリ障害処理装置、メモリ障害処理方法及びメモリ障害処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の観点によれば、演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置であって、前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をし、該格納は前記複数のメモリコントローラのそれぞれが、前記データを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われることを特徴とするメモリ障害処理装置が提供される。
【０００９】
本発明の第２の観点によれば、複数のメモリ障害装置を有するメモリ障害処理システムにおいて、前記複数のメモリ障害装置が上記のメモリ障害装置であることを特徴とするメモリ障害処理システムが提供される。
【００１０】
本発明の第３の観点によれば、演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置が行うメモリ障害処理方法であって、前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をし、該格納は前記複数のメモリコントローラのそれぞれが、前記データを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われることを特徴とするメモリ障害処理方法が提供される。
【００１１】
本発明の第４の観点によれば、演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置であって、前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をし、該格納は前記複数のメモリコントローラのそれぞれが、前記データを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われるメモリ障害処理装置としてコンピュータを機能させることを特徴とするメモリ障害処理プログラムが提供される。
【発明の効果】
【００１２】
本発明によれば、ＲＡＩＤ機能の分散化によりＲＡＩＤ構築処理が分散・平準化されることから、ＲＡＩＤ機能を持つメモリコントローラの１つが障害により停止或いはデータの不整合が発生しても、データの再構築が可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態の基本的構成を表す図である。
【図２】書き込みアクセス時のデータのやり取りを模式的に表す図である。
【図３】本発明の実施形態の基本的動作を表すフローチャートである。
【図４】読み込みアクセス時のデータのやり取りを模式的に表す図である。
【図５】書き込みアクセス時の動作を表すフローチャートである。
【図６】関連する技術を説明するための図である（特許文献１の図４に相当する図である。）。
【発明を実施するための形態】
【００１４】
まず、本発明の実施形態の概略を説明する。本発明の実施形態は、概略、以下のようなものである。
【００１５】
ＣＰＵからのメモリへのデータ書き込み時は、メモリアクセスをノードコントローラで一旦受けた後、全てのメモリコントローラへとトランザクションを転送する。トランザクションを受け取った各メモリコントローラは共通するＲＡＩＤアーキテクチャを持ち、アドレスから自配下のメモリへのアクセスであるかを判断し、自配下のメモリに対するアクセスである場合は、該当するストライピングデータの書き込みを行う。
【００１６】
ＣＰＵからメモリへのデータ読み出し時は、書き込み時と同様にメモリアクセスをノードコントローラで一旦受けた後、全てのメモリコントローラへとトランザクションを転送する。各メモリコントローラはアドレスから自配下のメモリへのアクセスであるかを判断し、自配下のメモリに対するアクセスである場合は、該当するストライピングデータを返却する。ノードコントローラは各メモリコントローラと同等のＲＡＩＤアーキテクチャを持ち、各メモリコントローラから返却されたデータを取りまとめてＣＰＵへとデータを返却する。メモリＤＩＭＭの訂正不可能なエラーやメモリコントローラの障害が発生した場合には、ノードコントローラがデータを訂正してＣＰＵへとデータを転送する。
【００１７】
次に、本発明の実施形態について図面を用いて詳細に説明する。
【００１８】
図１を参照すると、図１には本実施形態である複数のＣＥＬＬからなるシステムが示されている。本システムは第１のＣＥＬＬ１００、第２のＣＥＬＬ２００、第３のＣＥＬＬ３００及び第４のＣＥＬＬ４００を有する。なお今回は説明の便宜上ＣＥＬＬの数を４つとしているが、これは本実施形態のＣＥＬＬの数を限定するものではない。４つ以外の個数のＣＥＬＬで本システムを実現するようにしてもよい。
【００１９】
第１のＣＥＬＬ１００は、ＣＰＵ１１１〜１１４、ノードコントローラ１２１及びメモリコントローラ１３１、１３２を有している。また、同様に第２のＣＥＬＬ２００は、ＣＰＵ２１１〜２１４、ノードコントローラ２２１及びメモリコントローラ２３１、２３２を有している。また、第３のＣＥＬＬ３００は、ＣＰＵ３１１〜３１４、ノードコントローラ３２１及びメモリコントローラ３３１、３３２を有している。また、第４のＣＥＬＬ４００は、ＣＰＵ４１１〜４１４、ノードコントローラ４２１及びメモリコントローラ４３１、４３２を有している。また、各ＣＥＬＬに実装されている各メモリコントローラにはメモリＤＩＭＭが接続されている。なお、各ＣＥＬＬのそれぞれは、本願発明の「メモリ障害処理装置」に相当する。また、複数のＣＥＬＬを組み合わせたシステムは、本願発明の「メモリ障害処理システム」に相当する。
【００２０】
次に、上述した各部の機能について説明する。
【００２１】
ＣＰＵ１１１〜１１４、ＣＰＵ２１１〜２１４、ＣＰＵ３１１〜３１４及びＣＰＵ４１１〜４１４は演算処理装置である。これら各ＣＰＵは各ＣＥＬＬのノードコントローラを経由して、メモリに対してのアクセス要求を行う。アクセス要求には書き込み及び読み込みの２つがある。
【００２２】
ノードコントローラ１２１、ノードコントローラ２２１、ノードコントローラ３２１及びノードコントローラ４２１は、各ＣＰＵ唐のアクセス要求を受け取り他のノードコントローラに転送する。また、各メモリコントローラから返却されたストライピングデータやパリティは読み出し要求を行ったＣＰＵ配下のノードコントローラへと集められ、当該ノードコントローラによりデータの組み立てを行う。メモリコントローラやメモリＤＩＭＭの障害によりデータの一部が欠落した場合は、当該ノードコントローラによりデータの再構築を行ない、要求元のＣＰＵへとデータを返却する。
【００２３】
メモリコントローラ１３１、１３２、２３１、２３２、３３１、３３２、４３１及び４３２は、書き込み要求があった場合に、アドレスより自配下のメモリＤＩＭＭへのアクセスであるか判断すると同時に、共通したＲＡＩＤアーキテクチャにより自配下のメモリＤＩＭＭが担当するストライピングデータ或いはパリティのみを保存する。また、読み込み要求があった場合に、各メモリコントローラは自配下のメモリＤＩＭＭへのアクセスであるかを判断すると同時に、共通したＲＡＩＤアーキテクチャにより自配下のメモリＤＩＭＭから担当するストライピングデータ或いはパリティを読み出し、上位のノードコントローラへと転送する。
【００２４】
次に、データのやり取りを模式的に表す図である図２と、動作を表すフローチャートである図３を用いてＣＰＵからメモリへの書き込みアクセスが発生した場合の動作について説明する。今回は、具体例としてＣＰＵ２１２からメモリへの書き込みアクセスが発生した場合について説明するが、これは本実施形態の動作を限定するものではない。本実施形態では何れのＣＰＵからもメモリへの書き込みアクセスが可能である。
【００２５】
まず、各々にＣＰＵ、ノードコントローラ及びメモリコントローラを有する第１のＣＥＬＬ１００、第２のＣＥＬＬ２００、第３のＣＥＬＬ３００及び第４のＣＥＬＬ４００から構成されるシステムにおいて、第２のＣＥＬＬ２００上のＣＰＵ２１２からメモリへの書き込みアクセスが発生する（ステップＳ１１）。
【００２６】
上記の書き込みアクセスが発生した場合、ＣＰＵ２１２からの書き込み要求をノードコントローラ２２１で受け取った後、各ＣＥＬＬのノードコントローラ１２１、３２１、４２１へとそのまま転送する（ステップＳ１２）。
【００２７】
次に、各ノードコントローラは配下のメモリコントローラへと当該アクセスをそのまま転送する（ステップＳ１３）。
【００２８】
続いて、各メモリコントローラは予め設定された情報を元に自配下のメモリＤＩＭＭへのアクセスであるか否かを判断し、自配下のメモリアクセスである場合は、予め設定された情報を元にデータを分割してストライピングデータ或いはパリティを生成し、メモリＤＩＭＭに該当するデータ或いはパリティを格納する（ステップＳ１４）。今回の例では、ＣＰＵ２１２から発行されたメモリコントローラ１３１、１３２、２３１、２３２及び３３１の５つのメモリコントローラが処理対象となるアドレスへのメモリ書き込み要求がなされたものとする。この場合は、これらの５つのメモリコントローラのみによって処理され、各コントローラ配下のメモリＤＩＭＭにストライピングデータと場合によってはパリティを格納する。この時、データのどの部分或いはパリティを格納するかは、アドレス及び設定されたオフセットから判定される。
【００２９】
次に、データのやり取りを模式的に表す図である図４と、動作を表すフローチャートである図５を用いてＣＰＵからメモリへの読み出しアクセスが発生した場合の動作について説明する。上述の書き込みアクセスと同様、本実施形態では何れのＣＰＵからもメモリへの読み込みアクセスが可能である。
【００３０】
第４のＣＥＬＬ４００上のＣＰＵ４１３からメモリへの読み出しアクセスが発生する（ステップＳ２１）。
【００３１】
上記の読み込みアクセスが発生した場合、ＣＰＵ４１３からの読み出し要求をノードコントローラ４２１で受け取った後、各ＣＥＬＬのノードコントローラ１２１、２２１、３２１へとそのまま転送する（ステップＳ２２）。
【００３２】
次に、各ノードコントローラは配下のメモリコントローラへと当該アクセスをそのまま転送する（ステップＳ２３）。
【００３３】
続いて、各メモリコントローラは予め設定された情報を元に自配下のメモリＤＩＭＭへのアクセスであるか否かを判断し、自配下のメモリアクセスである場合は、メモリＤＩＭＭへのデータの読み出しを行う（ステップＳ２４）。
【００３４】
メモリＤＩＭＭより読み出されたデータは下位アドレス或いはパリティフラグを付加してノードコントローラへと返却される（ステップＳ２５においてＹｅｓ）。
【００３５】
各ノードコントローラで受け取ったデータは発行元のＣＰＵ４１３配下のノードコントローラ４２１へと集められ、当該ノードコントローラでデータの組み立てを行い、要求元のＣＰＵ４１３へと返却される（ステップＳ２６）。
【００３６】
この際、障害によりデータが返却できない場合は（ステップＳ２５においてＮｏ）、メモリコントローラからエラーフラグを付加して返却する。これを受け取ったノードコントローラ４２１は残りのストライピングデータ及びパリティからデータを再構築し、要求元のＣＰＵ４１３へと返却する（ステップＳ２７）。
【００３７】
以上説明した本発明の実施形態は、以下に示すような効果を奏する。
【００３８】
第１の効果は集中管理方式に比べてデータのストライピングやパリティの生成のための時間を短くできることである。
【００３９】
その理由は、ＲＡＩＤ機能の分散化によりＲＡＩＤ構築処理が分散・平準化されるからである。
【００４０】
第２の効果はＲＡＩＤ機能を持つメモリコントローラの１つが障害により停止或いはデータの不整合が発生しても、データの再構築が可能となることである。
【００４１】
その理由は、ストライピングデータ及びパリティ生成部とデータの再構築部を分離するからである。
【００４２】
なお、本発明の実施形態であるメモリ障害処理装置は、ハードウェアにより実現することもできるが、コンピュータをそのメモリ障害処理装置として機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【００４３】
また、本発明の実施形態によるメモリ障害処理方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
【００４４】
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００４５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００４６】
（付記１）  演算処理装置と、前記演算処理装置に接続されたノードコントローラと、前記ノードコントローラに接続された複数のメモリコントローラと、前記複数のメモリコントローラのそれぞれの配下にあるメモリＤＩＭＭ（Dual Inline Memory Module）と、を備えたメモリ障害処理装置であって、
前記ノードコントローラが、前記演算処理装置からメモリ書き込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ書き込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ書き込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ書き込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ書き込み要求が転送されてきた場合であって、当該書き込み要求が自配下のメモリＤＩＭＭへのものである場合に当該書き込み要求に従ってデータの格納をするメモリ障害処理装置としてコンピュータを機能させることを特徴とするメモリ障害処理プログラム。
【００４７】
（付記２）  付記１に記載のメモリ障害処理プログラムであって、
前記ノードコントローラが、前記演算処理装置からメモリ読み込み要求を受けつけた場合には、自身に接続されている前記複数のメモリコントローラのそれぞれと、自身に接続されている他のメモリ障害処理装置のノードコントローラと、に当該メモリ読み込み要求を転送し、
前記ノードコントローラが、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ読み込み要求を転送された場合には、自身に接続されている前記複数のメモリコントローラのそれぞれに当該メモリ読み込み要求を転送し、
前記複数のメモリコントローラのそれぞれは、前記メモリ読み込み要求が転送されてきた場合であって、当該読み込み要求が自配下のメモリＤＩＭＭへのものである場合に当該
読み込み要求に従ってデータの読み込みを試み、当該データの読み込みが成功した場合は前記ノードコントローラに読み込んだデータを返却し、当該データの読み込みが失敗した場合は前記ノードコントローラに失敗をした旨を返却することを特徴とするメモリ障害処理プログラム。
（付記３）  付記２に記載のメモリ障害処理プログラムであって、
前記ノードコントローラは、自身に接続されている他のメモリ障害処理装置のノードコントローラからメモリ読み込み要求を転送された場合には、自配下の前記メモリＤＩＭＭから返却された前記読み込んだデータ若しくは前記失敗をした旨を、自身に接続されている他のメモリ障害処理装置のノードコントローラに転送し、
前記ノードコントローラは、自身が前記演算処理装置からメモリ読み込み要求を受けつけた場合には、自身に接続されている他のメモリ障害処理装置のノードコントローラから転送されてきた前記読み込んだデータ若しくは前記失敗をした旨、及び、自配下の前記メモリＤＩＭＭから返却された前記読み込んだデータ若しくは前記失敗をした旨、を用いてデータを組み立て又は再構築し、当該組み立て又は再構築したデータを前記メモリ読み込み要求した前記演算処理装置に返却することを特徴とするメモリ障害処理プログラム。
（付記４）  付記１乃至３の何れか１項に記載のメモリ障害処理プログラムであって、
前記データの格納は、予め設定された情報を元にデータを分割してストライピングデータ或いはパリティを生成し、当該生成したストライピングデータ或いはパリティを格納することにより行われることを特徴とするメモリ障害処理プログラム。
【符号の説明】
【００４８】
１００  第１のＣＥＬＬ
１１１、１１２、１１３、１１４、２１１、２１２、２１３、２１４、３１１、３１２、３１３、３１４、４１１、４１２、４１３、４１４  ＣＰＵ
１２１、２２１、３２１、４２１  ノードコントローラ
１３１、１３２、２３１、２３２、３３１、３３２、４３１、４３２  メモリコントローラ
２００  第２のＣＥＬＬ
３００  第３のＣＥＬＬ
４００  第４のＣＥＬＬ
【図１】
0005464347.tif 000002
【図２】
0005464347.tif 000003
【図３】
0005464347.tif 000004
【図４】
0005464347.tif 000005
【図５】
0005464347.tif 000006
【図６】
0005464347.tif 000007