(57)【要約】  メモリシステム（１００）は、データを分散して一時記憶する複数の揮発性メモリモジュール（１１）と、各揮発性メモリモジュール（１１）に設けられたＶ保存先管理部（１３）と、各揮発性メモリモジュール（１１）に記憶されたデータを分散して記憶する複数の不揮発性メモリモジュール（１２）と、各不揮発性メモリモジュール（１２）に設けられたＮＶ保存先管理部（１４）とを備える。各Ｖ保存先管理部（１３）と各ＮＶ保存先管理部（１４）とが通信して、揮発性メモリモジュール（１１）毎に、送信先の不揮発性メモリモジュール（１２）を決定し、決定した送信先の不揮発性メモリモジュール（１２）へデータが送信され、送信先の不揮発性メモリモジュール（１２）にデータが記憶される。
2015128976.tif 000002
【特許請求の範囲】
【請求項１】
データを一時記憶する複数の第１メモリモジュールと、
各第１メモリモジュールに設けられた第１保存先管理部と、
各第１メモリモジュールに記憶されたデータを記憶する複数の第２メモリモジュールと、
各第２メモリモジュールに設けられた第２保存先管理部と
を備え、
前記各第１メモリモジュールに設けられた前記第１保存先管理部と、前記各第２メモリモジュールに設けられた前記第２保存先管理部とが通信して、データを記憶した第１メモリモジュール毎に、データの送信先の第２メモリモジュールを決定し、
前記各第１メモリモジュールが、決定した送信先の第２メモリモジュールへデータを送信する
ことを特徴とするデータ記憶装置。
【請求項２】
前記第１保存先管理部は、前記各第２メモリモジュールへ生存確認メッセージを送信し、送信先の第２メモリモジュールが決定するまで、前記生存確認メッセージに対して応答があった第２メモリモジュールへ順に、送信先の第２メモリモジュールになることを依頼する接続要求メッセージを送信し、
前記第２保存先管理部は、前記生存確認メッセージに対する応答の受信数に応じて決定した第１保存先管理部へ、前記送信先の第２メモリモジュールになることを了承する接続了承メッセージを送信する
ことを特徴とする請求項１に記載のデータ記憶装置。
【請求項３】
前記第１保存先管理部は、前記受信数を含む前記接続要求メッセージを送信する
ことを特徴とする請求項２に記載のデータ記憶装置。
【請求項４】
前記第２保存先管理部は、前記受信数が少ない第１保存先管理部に前記接続了承メッセージを送信し、既に前記接続了承メッセージを送信した前記第１保存先管理部がある場合において、前記受信数がより少ない前記第１保存先管理部から前記接続要求メッセージを受信した場合には、前記受信数がより少ない前記第１保存先管理部へ前記接続了承メッセージを送信するとともに、既に前記接続了承メッセージを送信した前記第１保存先管理部へ前記送信先の第２メモリモジュールになることを撤回する接続撤回メッセージを送信し、
前記第１保存先管理部は、前記接続撤回メッセージを受信すると、前記接続要求メッセージの送信を再開する
ことを特徴とする請求項２又は３に記載のデータ記憶装置。
【請求項５】
前記第２メモリモジュールは、バックアップ用に待機状態になっているものが含まれており、
前記第１保存先管理部は、前記生存確認メッセージに対して応答がない第２メモリモジュールがある場合には、前記待機状態になっている第２メモリモジュールへ起動メッセージを送信して、前記待機状態になっている第２メモリモジュールを稼働させる
ことを特徴とする請求項２から４までのいずれかに記載のデータ記憶装置。
【請求項６】
前記第１メモリモジュールは、バックアップ用に待機状態になっているものが含まれており、
前記第２保存先管理部は、前記各第１メモリモジュールへ生存確認メッセージを送信し、前記生存確認メッセージに対して応答がない第１メモリモジュールがある場合には、前記待機状態になっている第１メモリモジュールへ起動メッセージを送信して、前記待機状態になっている第１メモリモジュールを稼働させる
ことを特徴とする請求項２から５までのいずれかに記載のデータ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、キャッシュメモリを備えるデータ記憶装置に関する。
【背景技術】
【０００２】
複数の不揮発性メモリモジュールを用いるメモリシステムの書込み速度を向上させるために、メモリシステムに揮発性メモリモジュール（キャッシュメモリの一例）が導入されている。揮発性メモリモジュールは、複数の不揮発性メモリモジュールにデータを並列に書き込むために、データを一時的に格納する。
揮発性メモリモジュール及び不揮発性メモリモジュールに故障が発生すると、メモリシステムへの書込み速度が低下してしまうことやシステムが停止してしまうことがある。【０００３】
特許文献１に記載されたメモリシステムでは、複数の揮発性メモリモジュールと複数の不揮発性メモリモジュールとを相互結合網により多対多に接続し、同一の不揮発性メモリモジュールを共有する揮発性メモリモジュールでデータを冗長化している。これにより、メモリモジュールの故障時にもライトアクセスの応答速度と信頼性を維持している。【０００４】
特許文献２に記載されたメモリシステムでは、多対多に接続されたメモリモジュール間の経路を任意に決定するため、ピアツーピア通信により経路を決定している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−４３９３０号公報
【特許文献２】特表２０１３−５３２３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリモジュールの接続を多対多とした場合、不揮発性メモリモジュールへデータを書き込む際に、揮発性メモリモジュールと不揮発性メモリモジュールとの間のデータ転送の経路を決定する必要がある。経路を決定するためには、データ保存先等の情報を一元に管理し制御する機構とクロスバースイッチ回路とが必要となる。
しかし、データ保存先等の情報を一元に管理・制御する機構、又は、クロスバースイッチ回路が故障した場合、メモリシステム全体が動作しなくなってしまう。【０００７】
この発明は、データ保存先等の情報を一元に管理・制御する機構とクロスバースイッチ回路とを用いることなく、メモリモジュールの接続を多対多とすることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るデータ記憶装置は、
データを一時記憶する複数の第１メモリモジュールと、
各第１メモリモジュールに設けられた第１保存先管理部と、
各第１メモリモジュールに記憶されたデータを記憶する複数の第２メモリモジュールと、
各第２メモリモジュールに設けられた第２保存先管理部と
を備え、
前記各第１メモリモジュールに設けられた前記第１保存先管理部と、前記各第２メモリモジュールに設けられた前記第２保存先管理部とが通信して、データを記憶した第１メモリモジュール毎に、データの送信先の第２メモリモジュールを決定し、
前記各第１メモリモジュールが、決定した送信先の第２メモリモジュールへデータを送信する
ことを特徴とする。
【発明の効果】
【０００９】
この発明に係るデータ記憶装置は、各メモリモジュールに設けられた保存先管理部によって経路決定が行われる。そのため、データ保存先等の情報を一元に管理・制御する機構とクロスバースイッチ回路とを用いる必要がない。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るメモリシステム１０の構成図。
【図２】不揮発性メモリ管理テーブル１３４６を示す図。
【図３】揮発性メモリ管理テーブル１４４６を示す図。
【図４】メモリシステム１０の動作を示すフローチャート。
【図５】不揮発性メモリモジュール１２の故障情報の収集処理の説明図。
【図６】揮発性メモリモジュール１１の故障情報の収集処理の説明図。
【図７】ＨＥＬＬＯパケットの構成図。
【図８】ＨＥＬＬＯ応答パケットの構成図。
【図９】データ転送経路の決定処理の説明図。
【図１０】接続要求パケットの構成図。
【図１１】接続応答パケットの構成図。
【図１２】不揮発性メモリ管理テーブル１３４６と、揮発性メモリ管理テーブル１４４６と、接続要求パケットと、接続応答パケットとの関係を示す図。
【図１３】揮発性メモリモジュール１１の構成図。
【図１４】不揮発性メモリモジュール１２の構成図。
【図１５】Ｖ保存先管理部１３の構成図。
【図１６】ＮＶ保存先管理部１４の構成図。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１は、実施の形態１に係るメモリシステム１０（データ記憶装置）の構成図である。
メモリシステム１０は、複数の揮発性メモリモジュール１１（第１メモリモジュール）と、複数の不揮発性メモリモジュール１２（第２メモリモジュール）とを備える。各揮発性メモリモジュール１１は、Ｖ保存先管理部１３（第１保存先管理部）を備える。各不揮発性メモリモジュール１２は、ＮＶ保存先管理部１４（第２保存先管理部）を備える。
各揮発性メモリモジュール１１は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）モジュールであり、各不揮発性メモリモジュール１２は、例えば、フラッシュメモリモジュールである。
【００１２】
各揮発性メモリモジュール１１は、外部入力バス１５が接続されている。各揮発性メモリモジュール１１は、外部入力バス１５を介して入力されたデータを、分散して一時記憶する。
各揮発性メモリモジュール１１と各不揮発性メモリモジュール１２とは、メモリモジュール間バス１６で接続されている。各揮発性メモリモジュール１１及び各不揮発性メモリモジュール１２のポート数には限りがあるため、全ての揮発性メモリモジュール１１と全ての不揮発性メモリモジュール１２とが接続されているわけではない。
各不揮発性メモリモジュール１２は、外部出力バス１７が接続されている。各不揮発性メモリモジュール１２は、メモリモジュール間バス１６を介して揮発性メモリモジュール１１から送信されたデータを記憶する。各不揮発性メモリモジュール１２は、外部出力バス１７を介して、記憶したデータを出力する。
【００１３】
Ｖ保存先管理部１３は、不揮発性メモリ管理テーブル１３４６を有しており、ＮＶ保存先管理部１４は、揮発性メモリ管理テーブル１４４６を有している。Ｖ保存先管理部１３及びＮＶ保存先管理部１４は、互いに通信して、不揮発性メモリ管理テーブル１３４６及び揮発性メモリ管理テーブル１４４６を更新して、データ転送経路を決定する。各揮発性メモリモジュール１１は、決定されたデータ転送経路が示す不揮発性メモリモジュール１２へ、一時記憶したデータを送信する。
【００１４】
なお、揮発性メモリモジュール１１又は不揮発性メモリモジュール１２の故障により、メモリシステム１０の性能（データの書込み速度）が低下する恐れがある。性能が低下することを避けるために、メモリシステム１０は、揮発性メモリモジュール１１及び不揮発性メモリモジュール１２を冗長に備えている。つまり、複数の揮発性メモリモジュール１１のうちの一部、及び、複数の不揮発性メモリモジュール１２のうちの一部は、バックアップ用に待機状態になっている。
【００１５】
図２は、不揮発性メモリ管理テーブル１３４６を示す図である。
不揮発性メモリ管理テーブル１３４６は、不揮発性メモリモジュール番号、故障情報、接続要求を有している。
不揮発性メモリモジュール番号は、不揮発性メモリモジュール１２の識別子である。図１では、不揮発性メモリモジュール１２は、１番〜ｎ番までのｎ個あり、この番号が不揮発性メモリモジュール番号である。故障情報は、不揮発性メモリモジュール１２が故障しているか否かを示す情報である。接続要求は、不揮発性メモリモジュール１２へ接続要求を出したか否かを示す情報である。
【００１６】
図３は、揮発性メモリ管理テーブル１４４６を示す図である。
揮発性メモリ管理テーブル１４４６は、揮発性メモリモジュール番号、故障情報、パス数、使用権付与を有している。
揮発性メモリモジュール番号は、揮発性メモリモジュール１１の識別子である。図１では、揮発性メモリモジュール１１は、１番〜ｍ番までのｍ個あり、この番号が揮発性メモリモジュール番号である。故障情報は、揮発性メモリモジュール１１が故障しているか否かを示す情報である。パス数は、揮発性メモリモジュール１１に接続されている、故障していない不揮発性メモリモジュール１２の数である。使用権付与は、接続要求に対して許可しているか否かを示す情報である。
【００１７】
図４は、メモリシステム１０の動作を示すフローチャートである。
（Ｓ１：データ入力処理）
メモリシステム１０へデータが入力される。すると、外部入力バス１５を介して各揮発性メモリモジュール１１へデータが入力され、各揮発性メモリモジュール１１にデータが分散して記憶される。
【００１８】
（Ｓ２：第１生存確認処理）
各揮発性メモリモジュール１１のＶ保存先管理部１３は、不揮発性メモリモジュール１２の故障情報を収集する。
【００１９】
図５は、不揮発性メモリモジュール１２の故障情報の収集処理の説明図である。
揮発性メモリモジュール１１のＶ保存先管理部１３は、接続されている全ての不揮発性メモリモジュール１２のＮＶ保存先管理部１４に対してＨＥＬＬＯパケット（生存確認メッセージ）を送信する（１）。ＨＥＬＬＯパケットを受信した不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、揮発性メモリモジュール１１のＶ保存先管理部１３に対してＨＥＬＬＯ応答パケットを送信する（２）。
揮発性メモリモジュール１１のＶ保存先管理部１３は、送信したＨＥＬＬＯパケットに対してＨＥＬＬＯ応答パケットの送信があった不揮発性メモリモジュール１２は動作している（故障していない）として扱う。一方、揮発性メモリモジュール１１のＶ保存先管理部１３は、所定時間内に送信がなかった不揮発性メモリモジュール１２は動作していない（故障している）として扱う。そして、揮発性メモリモジュール１１のＶ保存先管理部１３は、不揮発性メモリ管理テーブル１３４６の故障情報を更新する。
【００２０】
（Ｓ３：第２生存確認処理）
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、揮発性メモリモジュール１１の故障情報を収集する。
【００２１】
図６は、揮発性メモリモジュール１１の故障情報の収集処理の説明図である。
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、接続されている全ての揮発性メモリモジュール１１のＶ保存先管理部１３に対してＨＥＬＬＯパケットを送信する（１）。ＨＥＬＬＯパケットを受信した揮発性メモリモジュール１１のＶ保存先管理部１３は、不揮発性メモリモジュール１２のＮＶ保存先管理部１４に対してＨＥＬＬＯ応答パケットを送信する（２）。
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、送信したＨＥＬＬＯパケットに対してＨＥＬＬＯ応答パケットの送信があった揮発性メモリモジュール１１は動作している（故障していない）として扱う。一方、不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、所定時間内に送信がなかった揮発性メモリモジュール１１は動作していない（故障している）として扱う。そして、不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、揮発性メモリ管理テーブル１４４６の故障情報を更新する。
【００２２】
図７は、ＨＥＬＬＯパケットの構成図である。
ＨＥＬＬＯパケットは、送信先のメモリモジュール番号、送信元のメモリモジュール番号を有している。
揮発性メモリモジュール１１のＶ保存先管理部１３がＨＥＬＬＯパケットを送信する場合には、送信先のメモリモジュール番号は送信先の不揮発性メモリモジュール１２の不揮発性メモリモジュール番号となり、送信元のメモリモジュール番号は送信元の揮発性メモリモジュール１１の揮発性メモリモジュール番号となる。一方、不揮発性メモリモジュール１２のＮＶ保存先管理部１４がＨＥＬＬＯパケットを送信する場合には、送信先のメモリモジュール番号は送信先の揮発性メモリモジュール１１の揮発性メモリモジュール番号となり、送信元のメモリモジュール番号は送信元の不揮発性メモリモジュール１２の不揮発性メモリモジュール番号となる。
【００２３】
図８は、ＨＥＬＬＯ応答パケットの構成図である。
ＨＥＬＬＯ応答パケットは、送信先のメモリモジュール番号、送信元のメモリモジュール番号を有している。
ＨＥＬＬＯ応答パケットの送信先のメモリモジュール番号及び送信元のメモリモジュール番号は、ＨＥＬＬＯパケットの場合と同じであるため説明を省略する。
【００２４】
Ｓ２の第１生存確認処理とＳ３の第２生存確認処理とをまとめて、生存確認処理と呼ぶ。
【００２５】
生存確認処理では、待機状態になっている揮発性メモリモジュール１１のＶ保存先管理部１３と、待機状態になっている不揮発性メモリモジュール１２のＮＶ保存先管理部１４とは、ＨＥＬＬＯパケット及びＨＥＬＬＯ応答パケットの送信を行わない。
【００２６】
生存確認処理で、不揮発性メモリモジュール１２の故障が検出された場合は、揮発性メモリモジュール１１のＶ保存先管理部１３は、ＷＡＫＥＵＰパケットを待機状態になっている不揮発性メモリモジュール１２へ送信する。待機状態になっている不揮発性メモリモジュール１２は、ＷＡＫＥＵＰパケットを受信すると、稼働状態になり、ＨＥＬＬＯパケット及びＨＥＬＬＯ応答パケットを送信するようになる。
同様に、生存確認処理で、揮発性メモリモジュール１１の故障が検出された場合は、不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、ＷＡＫＥＵＰパケットを待機状態になっている揮発性メモリモジュール１１へ送信する。待機状態になっている揮発性メモリモジュール１１は、ＷＡＫＥＵＰパケットを受信すると、稼働状態になり、ＨＥＬＬＯパケット及びＨＥＬＬＯ応答パケットを送信するようになる。
【００２７】
（Ｓ４：経路決定処理）
揮発性メモリモジュール１１のＶ保存先管理部１３と、不揮発性メモリモジュール１２のＮＶ保存先管理部１４とは、不揮発性メモリ管理テーブル１３４６の故障情報と、揮発性メモリ管理テーブル１４４６の故障情報及びパス数とを用いて、データ転送経路を決定する。
【００２８】
図９は、データ転送経路の決定処理の説明図である。
揮発性メモリモジュール１１のＶ保存先管理部１３は、不揮発性メモリ管理テーブル１３４６の故障情報が故障していないことを示す不揮発性メモリモジュール１２に対して順に接続要求パケット（接続要求メッセージ）を送信する。例えば、揮発性メモリモジュール１１のＶ保存先管理部１３は、不揮発性メモリモジュール番号の昇順に接続要求パケットを送信する。
この際、揮発性メモリモジュール１１のＶ保存先管理部１３は、不揮発性メモリ管理テーブル１３４６の故障情報が故障していないことを示す不揮発性メモリモジュール１２の数をパス数としてカウントする。そして、揮発性メモリモジュール１１のＶ保存先管理部１３は、パス数を接続要求パケットに含めて送信する。
【００２９】
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、接続要求パケットに対して許可又は拒否を示す接続応答パケットを送信する。
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、受信した接続要求パケットのうち、パス数が最も少ない接続要求パケットに対して、許可を示す接続応答パケット（接続了承メッセージ）を送信し、その他の接続要求パケットに対して、拒否を示す接続応答パケットを送信する。
なお、最も少ないパス数を持つ接続要求パケットが同率で存在する場合がある。この場合、不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、送信元の揮発性メモリモジュール１１の揮発性メモリモジュール番号が最も小さい接続要求パケットに対して、許可を示す接続応答パケットを送信する。
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、受信した接続要求パケットに含まれるパス数により、揮発性メモリ管理テーブル１４４６のパス数を更新する。また、不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、送信した接続応答パケットに応じて、揮発性メモリ管理テーブル１４４６の使用権付与を更新する。
【００３０】
揮発性メモリモジュール１１のＶ保存先管理部１３は、許可を示す接続応答パケットを受信した場合、接続要求パケットの送信を一旦中止する。一方、揮発性メモリモジュール１１のＶ保存先管理部１３は、拒否を示す接続応答パケットを受信した場合、次の不揮発性メモリモジュール１２に対して、接続要求パケットを送信する。
揮発性メモリモジュール１１のＶ保存先管理部１３は、接続応答パケットを受信した場合、接続応答パケットの送信元の不揮発性メモリモジュール１２について、不揮発性メモリ管理テーブル１３４６の接続要求を済に更新する。
【００３１】
不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、既に許可を示す接続応答パケットを送信している場合に、パス数がより少ない接続要求パケットを受信した場合には、既に許可を示す接続応答パケットを送信した揮発性メモリモジュール１１に対して、拒否を示す接続応答パケット（接続撤回メッセージ）を送信する。そして、不揮発性メモリモジュール１２のＮＶ保存先管理部１４は、パス数がより少ない接続要求パケットに対して、許可を示す接続応答パケットを送信する。
この場合、拒否を示す接続応答パケットを受信した揮発性メモリモジュール１１のＶ保存先管理部１３は、一旦中止していた接続要求パケットの送信を再開する。
【００３２】
図１０は、接続要求パケットの構成図である。
接続要求パケットは、送信先の不揮発性メモリモジュール番号、送信元の揮発性メモリモジュール番号、揮発性メモリモジュールのパス数を有している。
送信先の不揮発性メモリモジュール番号は、送信先の不揮発性メモリモジュール１２の不揮発性メモリモジュール番号である。送信元の揮発性メモリモジュール番号は、送信元の揮発性メモリモジュール１１の揮発性メモリモジュール番号である。揮発性メモリモジュールのパス数は、送信元の揮発性メモリモジュール１１のパス数である。
【００３３】
図１１は、接続応答パケットの構成図である。
接続応答パケットは、送信先の揮発性メモリモジュール番号、送信元の不揮発性メモリモジュール番号、接続可否を有している。
送信先の揮発性メモリモジュール番号は、送信先の揮発性メモリモジュール１１の揮発性メモリモジュール番号である。送信元の不揮発性メモリモジュール番号は、送信元の不揮発性メモリモジュール１２の不揮発性メモリモジュール番号である。接続可否は、許可又は拒否を示す情報である。
【００３４】
図１２は、不揮発性メモリ管理テーブル１３４６と、揮発性メモリ管理テーブル１４４６と、接続要求パケットと、接続応答パケットとの関係を示す図である。
不揮発性メモリ管理テーブル１３４６の故障情報が動作となっており、かつ、接続要求が未となっている不揮発性メモリモジュール１２が接続要求パケットの送信先として選択される。接続要求パケットの揮発性メモリモジュールのパス数は、不揮発性メモリ管理テーブル１３４６の故障情報が動作となっている不揮発性メモリモジュール１２の数である。
揮発性メモリ管理テーブル１４４６のパス数は、接続要求パケットの揮発性メモリモジュールのパス数が設定される。設定されたパス数に基づき、使用権付与を有（許可）にするか、無（拒否）にするかが決定される。決定された使用権付与が、接続応答パケットの接続可否に反映される。
そして、接続応答パケットの送信元の不揮発性メモリモジュール１２について、不揮発性メモリ管理テーブル１３４６の接続要求が済に更新される。
【００３５】
（Ｓ５：データ転送処理）
各揮発性メモリモジュール１１のＶ保存先管理部１３は、Ｓ４で受信した許可を示す接続応答パケットの送信元の不揮発性メモリモジュール１２に対して、Ｓ１で一時記憶したデータを転送する。ここで、各揮発性メモリモジュール１１は、並列にデータを転送することが可能である。
【００３６】
図１３は、揮発性メモリモジュール１１の構成図である。
揮発性メモリモジュール１１は、Ｖ保存先管理部１３と、１つ又は複数の揮発性メモリチップ１１１とを備える。Ｖ保存先管理部１３と各揮発性メモリチップ１１１とは、揮発性メモリ用バス１１２で接続されている。
【００３７】
外部入力バス１５を介して入力されたデータは、Ｖ保存先管理部１３へ送信され、揮発性メモリ用バス１１２を介して揮発性メモリチップ１１１へ送信されて、一時記憶される。Ｖ保存先管理部１３へデータが送信されると、Ｖ保存先管理部１３は、上述した生存確認処理及び経路決定処理を順に実行して、送信先の不揮発性メモリモジュール１２を決定する。Ｖ保存先管理部１３は、揮発性メモリチップ１１１に一時記憶したデータを読み出して、メモリモジュール間バス１６を介して、決定した不揮発性メモリモジュール１２へ送信する。
【００３８】
図１４は、不揮発性メモリモジュール１２の構成図である。
不揮発性メモリモジュール１２は、ＮＶ保存先管理部１４と、１つ又は複数の不揮発性メモリチップ１２１とを備える。ＮＶ保存先管理部１４と各不揮発性メモリチップ１２１とは、不揮発性メモリ用バス１２２で接続されている。
【００３９】
メモリモジュール間バス１６を介してＨＥＬＬＯパケットが送信されると、ＮＶ保存先管理部１４は、上述した生存確認処理及び経路決定処理を順に実行して、送信元の揮発性メモリモジュール１１を１つだけ決定する。決定した揮発性メモリモジュール１１から送信されたデータは、ＮＶ保存先管理部１４へ送信され、不揮発性メモリ用バス１２２を介して不揮発性メモリチップ１２１へ送信されて、記憶される。ＮＶ保存先管理部１４は、要求に応じて、不揮発性メモリチップ１２１に記憶したデータを読み出して、外部出力バス１７を介して、データを出力する。
【００４０】
図１５は、Ｖ保存先管理部１３の構成図である。
Ｖ保存先管理部１３は、入力Ｉ／Ｆ１３１と、通信Ｉ／Ｆ１３２と、揮発性メモリＩ／Ｆ１３３と、経路決定部１３４とを備える。
【００４１】
入力Ｉ／Ｆ１３１は、外部入力バス１５から入力されるデータを受け取るためのインターフェースである。通信Ｉ／Ｆ１３２は、メモリモジュール間バス１６を介してＮＶ保存先管理部１４と通信を行うためのインターフェースである。揮発性メモリＩ／Ｆ１３３は、揮発性メモリチップ１１１とデータを送受信するためのインターフェースである。経路決定部１３４は、上述した生存確認処理及び経路決定処理を実行するための機能である。
【００４２】
経路決定部１３４は、冗長メモリ起動部１３４１と、生存確認パケット送信部１３４２と、生存確認パケット受信部１３４３と、接続要求部１３４４と、接続許可確認部１３４５と、不揮発性メモリ管理テーブル１３４６と、タイムアウト用カウンタ１３４７とを備える。
【００４３】
冗長メモリ起動部１３４１は、不揮発性メモリモジュール１２に故障が発生した場合に、待機状態の不揮発性メモリモジュール１２を起動させる機能である。生存確認パケット送信部１３４２と、生存確認パケット受信部１３４３と、タイムアウト用カウンタ１３４７とは、生存確認処理を実行するための機能である。接続要求部１３４４と、接続許可確認部１３４５と、不揮発性メモリ管理テーブル１３４６とは、経路決定処理を実行するための機能である。
【００４４】
外部入力バス１５からデータが入力されると、入力Ｉ／Ｆ１３１は、生存確認処理開始信号を生存確認パケット送信部１３４２へ送信する。同時に入力Ｉ／Ｆ１３１は、データを揮発性メモリＩ／Ｆ１３３へ送信する。揮発性メモリＩ／Ｆ１３３は、入力Ｉ／Ｆ１３１からデータが送信された場合、揮発性メモリチップ１１１に送信されたデータをライトする。
【００４５】
生存確認パケット送信部１３４２は、入力Ｉ／Ｆ１３１から生存確認処理開始信号を受信すると、ＨＥＬＬＯパケット送信信号を通信Ｉ／Ｆ１３２へ送信する。生存確認パケット送信部１３４２は、同時にカウント開始信号をタイムアウト用カウンタ１３４７へ送信する。通信Ｉ／Ｆ１３２は、ＨＥＬＬＯパケット送信信号を受信すると、接続されている全ての不揮発性メモリモジュール１２へＨＥＬＬＯパケットを送信する。
タイムアウト用カウンタ１３４７は、カウント開始信号を受信すると、カウントを開始する。タイムアウト用カウンタ１３４７は、接続されている不揮発性メモリモジュール１２と同じ数だけカウンタを有しており、接続されている不揮発性メモリモジュール１２毎に時間をカウントすることが可能である。
通信Ｉ／Ｆ１３２は、不揮発性メモリモジュール１２からＨＥＬＬＯ応答パケットを受信すると、生存確認信号を生存確認パケット受信部１３４３へ送信する。生存確認パケット受信部１３４３は、通信Ｉ／Ｆ１３２から生存確認信号を受信すると、カウント停止信号をタイムアウト用カウンタ１３４７へ送信する。タイムアウト用カウンタ１３４７は、生存確認パケット受信部１３４３から、カウント停止信号を受信すると、対応するカウンタを停止する。タイムアウト用カウンタ１３４７は、同時に、不揮発性メモリ管理テーブル１３４６における、カウント停止信号に対応する不揮発性メモリモジュール１２の故障情報を動作に更新する。
【００４６】
タイムアウト用カウンタ１３４７は、カウントしている値が予め決められた値を超えると、タイムアウトとする。タイムアウト用カウンタ１３４７は、タイムアウトが発生した場合、不揮発性メモリ管理テーブル１３４６における、タイムアウトした不揮発性メモリモジュール１２の故障情報を故障に更新する。また、タイムアウト用カウンタ１３４７は、タイムアウトが発生した場合、冗長メモリ起動部１３４１に冗長メモリ起動信号を送信する。
冗長メモリ起動部１３４１は、冗長メモリ起動信号を受信すると、ＷＡＫＥＵＰパケット送信信号を通信Ｉ／Ｆ１３２へ送信する。通信Ｉ／Ｆ１３２は、ＷＡＫＥＵＰパケット送信信号を受信すると、待機状態になっている不揮発性メモリモジュール１２へＷＡＫＥＵＰパケットを送信する。
【００４７】
タイムアウト用カウンタ１３４７は、全てのカウンタが停止すると、接続要求部１３４４に対して、生存確認処理完了信号を送信する。
【００４８】
メモリモジュール間バス１６からＨＥＬＬＯパケットが入力されると、通信Ｉ／Ｆ１３２は、ＨＥＬＬＯパケット受信信号を生存確認パケット受信部１３４３へ送信する。生存確認パケット受信部１３４３は、通信Ｉ／Ｆ１３２からＨＥＬＬＯパケット受信信号を受信すると、ＨＥＬＬＯ応答パケット生成信号を生存確認パケット送信部１３４２へ送信する。
生存確認パケット送信部１３４２は、生存確認パケット受信部１３４３からＨＥＬＬＯ応答パケット生成信号を受信すると、ＨＥＬＬＯ応答パケット送信信号を通信Ｉ／Ｆ１３２へ送信する。通信Ｉ／Ｆ１３２は、ＨＥＬＬＯ応答パケット送信信号を受信すると、接続されている全ての不揮発性メモリモジュール１２へＨＥＬＬＯ応答パケットを送信する。
【００４９】
接続要求部１３４４は、タイムアウト用カウンタ１３４７から、生存確認処理完了信号を受信すると、不揮発性メモリ管理テーブル１３４６の接続要求を全て未に更新する。
接続要求部１３４４は、不揮発性メモリ管理テーブル１３４６から、故障情報が動作になっており、かつ、接続要求が未であり、かつ、不揮発性メモリモジュール番号の値が最も小さい不揮発性メモリモジュール１２を送信先とする接続要求パケット送信信号を通信Ｉ／Ｆ１３２へ送信する。通信Ｉ／Ｆ１３２は、接続要求部１３４４から接続要求パケット送信信号を受信すると、送信先の不揮発性メモリモジュール１２へ接続要求パケットを送信する。
【００５０】
通信Ｉ／Ｆ１３２は、メモリモジュール間バス１６から接続応答パケットを受信すると、接続応答信号を接続許可確認部１３４５へ送信する。接続許可確認部１３４５は、通信Ｉ／Ｆ１３２から接続応答信号を受信すると、信号の内容に応じた動作を行う。接続許可確認部１３４５は、接続が許可された場合は、書込み有効信号を揮発性メモリＩ／Ｆ１３３へ送信する。接続許可確認部１３４５は、接続が拒否された場合は、再要求信号を接続要求部１３４４へ送信する。また、接続許可確認部１３４５は、接続が拒否された場合は、不揮発性メモリ管理テーブル１３４６における対応する不揮発性メモリモジュール１２の接続要求を済に更新する。
【００５１】
接続要求部１３４４は、再要求信号を受信すると、不揮発性メモリ管理テーブル１３４６から、故障情報が動作になっており、かつ、接続要求が未であり、かつ、不揮発性メモリモジュール番号の値が最も小さい不揮発性メモリモジュール１２へ接続要求を生成する。
【００５２】
揮発性メモリＩ／Ｆ１３３は、接続許可確認部１３４５から書込み有効信号を受信している間、揮発性メモリチップ１１１からデータをリードし、データを通信Ｉ／Ｆ１３２へ送信する。通信Ｉ／Ｆ１３２は、揮発性メモリＩ／Ｆ２１１からデータを受け取ると、メモリモジュール間バス１６を介して不揮発性メモリモジュール１２へデータを送信する。
【００５３】
図１６は、ＮＶ保存先管理部１４の構成図である。
ＮＶ保存先管理部１４は、出力Ｉ／Ｆ１４１と、通信Ｉ／Ｆ１４２と、不揮発性メモリＩ／Ｆ１４３と、経路決定部１４４と、書込みデータ転送部１４５とを備える。
【００５４】
出力Ｉ／Ｆ１４１は、外部出力バス１７からデータを出力するためのインターフェースである。通信Ｉ／Ｆ１４２は、メモリモジュール間バス１６を介してＶ保存先管理部１３と通信を行うためのインターフェースである。不揮発性メモリＩ／Ｆ１４３は、不揮発性メモリチップ１２１とデータを送受信するためのインターフェースである。経路決定部１４４は、上述した生存確認処理及び経路決定処理を実行するための機能である。書込みデータ転送部１４５は、揮発性メモリモジュール１１から送信されたデータの不揮発性メモリチップ１２１への書込みを制御するための機能である。
【００５５】
経路決定部１４４は、冗長メモリ起動部１４４１と、生存確認パケット送信部１４４２と、生存確認パケット受信部１４４３と、接続要求応答部１４４４と、接続許可判断部１４４５と、揮発性メモリ管理テーブル１４４６と、タイムアウト用カウンタ１４４７とを備える。
【００５６】
冗長メモリ起動部１４４１は、揮発性メモリモジュール１１に故障が発生した場合に、待機状態の揮発性メモリモジュール１１を起動させる機能である。生存確認パケット送信部１４４２と、生存確認パケット受信部１４４３と、タイムアウト用カウンタ１４４７とは、生存確認処理を実行するための機能である。接続要求応答部１４４４と、接続許可判断部１４４５と、揮発性メモリ管理テーブル１４４６とは、経路決定処理を実行するための機能である。
【００５７】
メモリモジュール間バス１６からＨＥＬＬＯパケットが入力されると、通信Ｉ／Ｆ１４２は、ＨＥＬＬＯパケット受信信号を生存確認パケット受信部１４４３へ送信する。生存確認パケット受信部１４４３は、通信Ｉ／Ｆ１４２からＨＥＬＬＯパケット受信信号を受信すると、ＨＥＬＬＯ応答パケット生成信号と生存確認処理開始信号とを生存確認パケット送信部１４４２へ送信する。
生存確認パケット送信部１４４２は、生存確認パケット受信部１４４３からＨＥＬＬＯ応答パケット生成信号を受信すると、ＨＥＬＬＯ応答パケット送信信号を通信Ｉ／Ｆ１４２へ送信する。通信Ｉ／Ｆ１４２は、ＨＥＬＬＯ応答パケット送信信号を受信すると、接続されている全ての揮発性メモリモジュール１１へＨＥＬＬＯ応答パケットを送信する。
また、生存確認パケット送信部１４４２は、生存確認パケット受信部１４４３から、生存確認処理開始信号を受信すると、ＨＥＬＬＯパケット送信信号を通信Ｉ／Ｆ１４２へ送信する。生存確認パケット送信部１４４２は、同時にカウント開始信号をタイムアウト用カウンタ１４４７へ送信する。通信Ｉ／Ｆ１４２は、ＨＥＬＬＯパケット送信信号を受信すると、接続されている全ての揮発性メモリモジュール１１へＨＥＬＬＯパケットを送信する。
タイムアウト用カウンタ１４４７は、カウント開始信号を受信すると、カウントを開始する。タイムアウト用カウンタ１４４７は、接続されている揮発性メモリモジュール１１と同じ数だけカウンタを有しており、接続されている揮発性メモリモジュール１１毎に時間をカウントすることが可能である。
通信Ｉ／Ｆ１４２は、揮発性メモリモジュール１１からＨＥＬＬＯ応答パケットを受信すると、生存確認信号を生存確認パケット受信部１４４３へ送信する。生存確認パケット受信部１４４３は、通信Ｉ／Ｆ１４２から生存確認信号を受信すると、カウント停止信号をタイムアウト用カウンタ１４４７へ送信する。タイムアウト用カウンタ１４４７は、生存確認パケット受信部１４４３から、カウント停止信号を受信すると、対応するカウンタを停止する。タイムアウト用カウンタ１４４７は、同時に、揮発性メモリ管理テーブル１４４６における、カウント停止信号に対応する揮発性メモリモジュール１１の故障情報を動作に更新する。
【００５８】
タイムアウト用カウンタ１４４７は、カウントしている値が予め決められた値を超えると、タイムアウトとする。タイムアウト用カウンタ１４４７は、タイムアウトが発生した場合、揮発性メモリ管理テーブル１４４６における、タイムアウトした揮発性メモリモジュール１１の故障情報を故障に更新する。また、タイムアウト用カウンタ１４４７は、タイムアウトが発生した場合、冗長メモリ起動部１４４１に冗長メモリ起動信号を送信する。
冗長メモリ起動部１４４１は、冗長メモリ起動信号を受信すると、ＷＡＫＥＵＰパケット送信信号を通信Ｉ／Ｆ１４２へ送信する。通信Ｉ／Ｆ１４２は、ＷＡＫＥＵＰパケット送信信号を受信すると、待機状態になっている揮発性メモリモジュール１１へＷＡＫＥＵＰパケットを送信する。
【００５９】
通信Ｉ／Ｆ１４２は、メモリモジュール間バス１６から接続要求パケットを受信すると、接続許可判断部１４４５に接続要求受信信号を送信する。接続許可判断部１４４５は、通信Ｉ／Ｆ１４２から接続要求受信信号を受信すると、揮発性メモリ管理テーブル１４４６の接続要求パケットの送信元の揮発性メモリモジュール１１のパス数を接続要求パケットのパス数に更新する。接続許可判断部１４４５は、接続要求パケットの送信元の揮発性メモリモジュール１１が、揮発性メモリ管理テーブル１４４６において、パス数が最小で、かつ、揮発性メモリモジュール番号が最小の揮発性メモリモジュール１１であるか確認する。接続許可判断部１４４５は、パス数が最小で、かつ、揮発性メモリモジュール番号が最小の揮発性メモリモジュール１１であれば、接続許可信号を接続要求応答部１４４４へ送信し、それ以外の場合には、接続拒否信号を接続要求応答部１４４４へ送信する。
接続要求応答部１４４４は、接続許可判断部１４４５から接続許可信号を受信すると、接続許可を指定した接続応答パケット送信信号を通信Ｉ／Ｆ１４２へ送信する。一方、接続要求応答部１４４４は、接続許可判断部１４４５から接続拒否信号を受信すると、接続拒否を指定した接続応答パケット送信信号を通信Ｉ／Ｆ１４２へ送信する。通信Ｉ／Ｆ１４２は、接続要求応答部１４４４から接続応答パケット送信信号を受信すると、接続応答パケットを接続要求パケットの送信元の揮発性メモリＩ／Ｆ２へ送信する。
なお、接続許可判断部１４４５は、既に接続許可信号を送信した後に、更に優先するべき接続要求受信信号を受信した場合には、一旦接続許可信号を送信した揮発性メモリモジュール１１に対する接続拒否信号を接続要求応答部１４４４へ送信する。その上で、接続許可判断部１４４５は、接続要求パケットの送信元の揮発性メモリモジュール１１に対する接続許可信号を接続要求応答部１４４４へ送信する。
【００６０】
接続許可判断部１４４５は、接続許可信号を送信する場合、書込み有効信号を書込みデータ転送部１４５へアサートする。通信Ｉ／Ｆ１４２は、メモリモジュール間バス１６からデータを受信すると、書込みデータ転送部１４５へ転送する。書込みデータ転送部１４５は、接続許可判断部１４４５から書込み有効信号がアサートされている間、通信Ｉ／Ｆ１４２から転送されるデータを不揮発性メモリＩ／Ｆ１２２へ転送する。書込みデータ転送部１４５は、接続許可判断部１４４５から書込み有効信号がディアサートされている間、通信Ｉ／Ｆ１４２から転送されるデータを破棄する。
不揮発性メモリＩ／Ｆ１２２は、書込みデータ転送部１４５からデータが転送された場合、不揮発性メモリチップ１２１にデータをライトする。
【００６１】
出力Ｉ／Ｆ１４１は、外部出力バス１７からデータの読み出し要求を受け取った場合、リード要求を不揮発性メモリＩ／Ｆ１２２へ送信する。不揮発性メモリＩ／Ｆ１２２は、出力Ｉ／Ｆ１４１からリード要求を受信した場合、不揮発性メモリチップ１２１からデータを読み出して、出力Ｉ／Ｆ１４１へ送信する。出力Ｉ／Ｆ１４１は、不揮発性メモリＩ／Ｆ１２２からデータを受信した場合、外部出力バス１７へ送信する。
【００６２】
以上のように、実施の形態１に係るメモリシステム１０では、各揮発性メモリモジュール１１と各不揮発性メモリモジュール１２とが３ＷＡＹハンドシェイクにより自律的にデータ転送経路を決定する。そのため、データ保存先等の情報を一元に管理・制御する機構とクロスバースイッチ回路とを用いる必要がない。その結果、データ保存先等の情報を一元に管理・制御する機構又はクロスバースイッチ回路が故障した場合に、メモリシステム１０全体が動作しなくなるということがない。
【００６３】
また、故障した揮発性メモリモジュール１１が発見されると、不揮発性メモリモジュール１２が待機状態になっている揮発性メモリモジュール１１を起動させる。同様に、故障した不揮発性メモリモジュール１２が発見されると、揮発性メモリモジュール１１が待機状態になっている不揮発性メモリモジュール１２を起動させる。
そのため、一部の揮発性メモリモジュール１１や一部の不揮発性メモリモジュール１２が故障した場合における性能の低下を防止することができる。また、必要以上に存在する揮発性メモリモジュール１１や不揮発性メモリモジュール１２を待機状態とすることができ、不要な電力消費を減らすことができる。
【００６４】
なお、上記説明において、「〜パケット」として説明する全ての伝送単位には、パケットの種別を示すための「パケット種別」フィールドが含まれている。各保存先管理部は、「パケット種別」フィールドからパケットの種類を判断する。
【００６５】
また、上記説明において、「〜部」として説明する機能は、ソフトウェアによって実現されていてもよいし、回路や装置によって実現されていてもよい。「〜部」として説明する機能がソフトウェアによって実現されている場合には、「〜部」として説明する機能を実現するソフトウェアは、メモリシステム１０内の記憶装置（例えば、不揮発性メモリモジュール１２等）に記憶され、メモリシステム１０が備える演算装置（ＣＰＵ等）によって読み出され、実行される。
【符号の説明】
【００６６】
１０  メモリシステム、１１  揮発性メモリモジュール、１１１  揮発性メモリチップ、１１２  揮発性メモリ用バス、１２  不揮発性メモリモジュール、１２１  不揮発性メモリチップ、１２２  不揮発性メモリ用バス、１３  Ｖ保存先管理部、１３１  入力Ｉ／Ｆ、１３２  通信Ｉ／Ｆ、１３３  揮発性メモリＩ／Ｆ、１３４  経路決定部、１３４１  冗長メモリ起動部、１３４２  生存確認パケット送信部、１３４３  生存確認パケット受信部、１３４４  接続要求部、１３４５  接続許可確認部、１３４６  不揮発性メモリ管理テーブル、１３４７  タイムアウト用カウンタ、１４  ＮＶ保存先管理部、１４１  出力Ｉ／Ｆ、１４２  通信Ｉ／Ｆ、１４３  不揮発性メモリＩ／Ｆ、１４４  経路決定部、１４５  書込みデータ転送部、１４４１  冗長メモリ起動部、１４４２  生存確認パケット送信部、１４４３  生存確認パケット受信部、１４４４  接続要求応答部、１４４５  接続許可判断部、１４４６  揮発性メモリ管理テーブル、１４４７  タイムアウト用カウンタ、１５  外部入力バス、１６  メモリモジュール間バス、１７  外部出力バス。
【図１】
2015128976.tif 000003
【図２】
2015128976.tif 000004
【図３】
2015128976.tif 000005
【図４】
2015128976.tif 000006
【図５】
2015128976.tif 000007
【図６】
2015128976.tif 000008
【図７】
2015128976.tif 000009
【図８】
2015128976.tif 000010
【図９】
2015128976.tif 000011
【図１０】
2015128976.tif 000012
【図１１】
2015128976.tif 000013
【図１２】
2015128976.tif 000014
【図１３】
2015128976.tif 000015
【図１４】
2015128976.tif 000016
【図１５】
2015128976.tif 000017
【図１６】
2015128976.tif 000018
【国際調査報告】
2015128976.tif 000019
2015128976.tif 000020
2015128976.tif 000021
2015128976.tif 000022