説明

ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム

【課題】より簡単な制御でミラーリングを行うことができる装置を提供する。
【解決手段】第1記憶部が、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶し、第2記憶部が、第2分割後データと、第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する。そして、対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする所定の間隔の他のアドレスから第1分割後データと第2分割後データのコピーデータとを第1記憶部から読み出し、また、対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする所定の間隔の他のアドレスから第2分割後データと第1分割後データのコピーデータとを第2記憶部から読み出す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、読み書きする対象データをミラーリングするミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラムに関する。
【背景技術】
【0002】
読み書き対象のデータを複数のメモリにミラーリングして格納するミラーリングシステムが利用されている。このミラーリングの技術として特許文献1が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−158804号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、特許文献1の技術では、DIMMに書き込まれたデータの読み出しにかかる時間を短縮することができる技術である。しかしながら、この技術において、ミラーリングのための別々のメモリへのデータの書き込みや、別々のメモリからのデータの読み出しにおいて、それぞれアクセスするメモリのアドレスが異なるため、その制御が複雑となってしまう。
【0005】
そこでこの発明は、より簡単な制御でミラーリングを行うことができるミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第1記憶部と、前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第2記憶部と、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出す第1制御部と、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出す第2制御部と、前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元するメモリアクセス要求制御部と、を備えることを特徴とするミラーリング制御装置である。
【0007】
また本発明は、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第1記憶部と、前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第2記憶部と、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出す第1制御部と、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出す第2制御部と、前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元するメモリアクセス要求制御部と、を備えることを特徴とするミラーリング制御回路である。
【0008】
また本発明は、ミラーリング制御装置の第1記憶部が、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶し、前記ミラーリング制御装置の第2記憶部が、前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶し、前記ミラーリング制御装置の第1制御部が、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出し、前記ミラーリング制御装置の第2制御部が、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出し、前記ミラーリング制御装置のメモリアクセス要求制御部が、前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元することを特徴とするミラーリング制御方法である。
【0009】
また本発明は、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第1記憶部と、前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第2記憶部と、を備えたミラーリング制御装置のコンピュータを、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出す第1制御手段、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出す第2制御手段、前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元するメモリアクセス要求制御手段、として機能させることを特徴とするプログラムである。
【発明の効果】
【0010】
本発明によれば、書き込み対象のデータを分割して、その2つのデータをアドレスの値が1つ異なる各アドレスに対して格納し、ミラーリングのためのメモリにも同様に分割したデータを格納するため、より簡単なアドレスの制御でミラーリングを行うことができる。
また、読み出し要求の場合にも、読み出し要求で示される読み出し対象のアドレスと、そのアドレスに対して1を加えたアドレスに格納されたデータをメモリモジュールから読み出せばよいため、より簡単なアドレスの制御でミラーリングを行うことができる。
【図面の簡単な説明】
【0011】
【図1】ミラーリング制御装置の構成を示すブロック図である。
【図2】メモリアクセス要求のフォーマットを示す図である。
【図3】メモリライトリクエストとメモリリードリクエストのフォーマットを示す図である。
【図4】リードデータのフォーマットを示す図である。
【図5】リプライデータのフォーマットを示す図である。
【図6】ミラーリング制御装置の動作を示すフローチャートを示す図である。
【図7】メモリアクセス要求制御部が第1チャネル制御部へ送信するメモリライトリクエストのフォーマットを示す図である。
【図8】メモリアクセス要求制御部が第2チャネル制御部へ送信するメモリライトリクエストのフォーマットを示す図である。
【図9】メモリリードリクエストのフォーマットを示す図である。
【図10】リードデータのフォーマットを示す図である。
【図11】メモリモジュールにおけるデータの格納状態の例を示す図である。
【図12】書き込み要求を示すメモリアクセス要求の具体例を示す図である。
【図13】メモリライトリクエストの具体例を示す第1の図である。
【図14】メモリライトリクエストの具体例を示す第2の図である。
【図15】読み出し要求を示すメモリアクセス要求の具体例を示す図である。
【図16】メモリリードリクエストの具体例を示す図である。
【図17】リードデータの具体例を示す第1の図である。
【図18】リードデータの具体例を示す第2の図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態によるミラーリング制御装置を図面を参照して説明する。
図1は同実施形態によるミラーリング制御装置の構成を示すブロック図である。
この図において、符号1は読み書きの対象データの読み出し、又は書き込みの何れかの要求を行うプロセッサである。また、2は複数のメモリに対して読み書きの対象データをミラーリング制御するメモリ制御部である。また3および4はミラーリングされる各データを記憶する第1メモリモジュール(第1記憶部)と第2メモリモジュール(第2記憶部)である。そして、メモリ制御部2は、メモリアクセス要求制御部20、第1チャネル制御部21(第1制御部)、第2チャネル制御部22(第2制御部)の処理部を備えている。
【0013】
そして、図1で示すように、メモリ制御部2は、プロセッサ1に接続されている。メモリ制御部2は、プロセッサ1から出力されたメモリアクセス要求を解析し、メモリ書き込み要求を示す場合には、書き込む対象データが本データとコピーデータに二重化されてそれぞれ別々のメモリモジュールに格納されたミラー構成となるよう、第1メモリモジュール3、および第2メモリモジュール4に対して、メモリライトリクエストを発行する処理を行う。また、メモリ制御部2は、解析したメモリアクセス要求がメモリ読み出し要求を示す場合には、第1メモリモジュール3、および第2メモリモジュール4に対して、メモリリードリクエストを発行し、メモリアクセス要求で特定されたアドレスからのデータの読み出しを実行する。メモリ制御部2は、読み出し実行時に、第1メモリモジュール3、または第2メモリモジュール4や、メモリ制御部2内の第1チャネル制御部21、または第2チャネル制御部22の故障に応じて、対象データを復元するためのデータを本データや複製データから特定し、その特定したデータに基づいて対象データを復元し、プロセッサ1に正常なリプライデータとして返却する処理を行う。
【0014】
次に、メモリ制御部の詳細な構成について説明する。
図1に示すように、メモリ制御部2は、メモリアクセス要求制御部20、チャネル制御部21、チャネル制御部22から構成されている。
メモリアクセス要求制御部20は、プロセッサ1から発行される、メモリアクセス要求を受け付けて、その要求内容を解析する処理を行う処理部である。メモリアクセス要求制御部20は、受け付けたメモリアクセス要求が、メモリ書き込み要求である場合には、第1チャネル制御部21、第2チャネル制御部22に対してメモリライトリクエストを送出する。また、受け付けたメモリアクセス要求が、メモリ読み出し要求であった場合には、第1チャネル制御部21、第2チャネル制御部22に対して、メモリリードリクエストを送出する。そして、第1チャネル制御部21、第2チャネル制御部22はメモリアクセス要求制御部20からのメモリライトリクエスト、またはメモリリードリクエストを受け取り、それぞれ第1メモリモジュール3、第2メモリモジュール4に対してデータの書き込み、または読み出しを実施する。
【0015】
そして、本実施形態によるミラーリング制御装置は、第1メモリモジュール3が、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータと所定のアドレス間隔により記憶し、第2メモリモジュール4が、第2分割後データと、第1分割後データのコピーデータとを所定のアドレス間隔により記憶する。そして、第1チャネル制御部21が、対象データの読み出し要求に基づいて、所定のアドレス間隔で記憶されている第1分割後データと第2分割後データのコピーデータとを第1メモリモジュール3から読み出し、また第2チャネル制御部22が、所定のアドレス間隔で記憶されている第2分割後データと第1分割後データのコピーデータとを第2メモリモジュール4から読み出す。そして、メモリアクセス要求制御部20が、第1チャネル制御部21が読み取った第1分割後データと、第2チャネル制御部22が読み取った第2分割後データとに基づいて対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、復元した対象データを読み出し要求の応答としてプロセッサ1へ出力する。またメモリアクセス要求制御部20は、当該正常判定が異常を示す場合には、第1分割後データのコピーデータと、第2分割後データとを用いて対象データを復元し、その対象データの正常判定を行い、当該正常判定が正常を示す場合には、その復元した対象データを読み出し要求の応答としてプロセッサ1へ出力する。そして、メモリアクセス要求制御部20は、以降の読み出し要求の応答は、第2分割後データのコピーデータと、第1分割後データとを用いて復元した対象データを読み出し要求の応答としてプロセッサ1へ出力する。
このような処理を行うことにより、より簡単な制御でミラーリングを行うことができるミラーリング制御装置を提供する。
【0016】
図2はメモリアクセス要求のフォーマットを示す図である。
図3はメモリライトリクエストとメモリリードリクエストのフォーマットを示す図である。
次に、プロセッサ1がメモリ制御部2へ送信するメモリアクセス要求のフォーマットと、メモリ制御部2が第1メモリモジュール3や第2メモリモジュール4に送信するメモリライトリクエストまたはメモリリードリクエストのフォーマットについて説明する。
まず、プロセッサ1から送信されるメモリアクセス要求がメモリ書き込み要求の場合には、メモリアクセス要求は図2(a)で示すようなフォーマット構成のデータであり、当該メモリアクセス要求のデータは、メモリ書き込み要求を示すコードと、書き込み先のアドレスと、16バイトのデータ部と、16ビットのECC(error check and correct )部とが付加され、S4EC−D4EDのコードを実現している。
また、メモリアクセス要求が、メモリ読み出し要求の場合には、図2(b)で示すようにメモリ読み出し要求を示すコードと、読み出し先のアドレスとが付加される。
【0017】
また、メモリ制御部2が第1メモリモジュール3や第2メモリモジュール4に送信するメモリライトリクエストは、図3(a)に示すようなフォーマット構成であり、メモリ書き込み要求を示すコードと、書き込み先のアドレスと、8バイト+8ビットECCのデータ部とが付加され、ECC付の汎用DIMMに対応可能となっている。データ部の8バイト+8ビットECCは、プロセッサから発行された、メモリ書き込み要求を示すメモリアクセス要求の16バイト+16ビットECCのデータにおけるデータ部分(16バイト)とECC部分(16ビットECC)をそれぞれ2分割したデータを結合したものである。したがって、メモリライトリクエストに格納される8ビットECCはこれのみで、当該メモリライトリクエストに格納される8バイトのデータを保護しているものではない。すなわち、メモリモジュール3に格納される8バイト+8ビットECCのデータと、メモリモジュール4に格納される8バイト+8ビットECCのデータを結合して、16バイト+16ビットECCを復元することにより、初めてECCとしての機能を果たす。これにより、16バイトのデータに対して、S4EC−D4EDのコードを実現している。
【0018】
また、メモリ制御部2が第1メモリモジュール3や第2メモリモジュール4に送信するメモリリードリクエストは、図3(b)に示すようなフォーマット構成であり、図2(b)の読み出し要求を示すメモリアクセス要求と同一のフォーマット構成となっている。
【0019】
図4はリードデータのフォーマットを示す図である。
図5はリプライデータのフォーマットを示す図である。
図4は、メモリ制御部2が第1メモリモジュール3や第2メモリモジュール4から読み出したリードデータのフォーマットを示す図である。図4で示すように、リードデータは、リプライを示すコード部と、読み出した8バイト+8ビットECCのデータを格納するデータ部とを有する。
また図5は、メモリ制御部2がメモリアクセス要求の応答としてプロセッサ1に送信するリプライデータのフォーマットを示す図である。図5で示すように、リプライデータは、リプライを示すコード部と、第1メモリモジュール3と第2メモリモジュール4からそれぞれ読み出した2つの8バイト+8ビットECCのデータを結合した、16バイト+16ビットECCのデータを格納するデータ部とを有する。
【0020】
図6は、ミラーリング制御装置の動作を示すフローチャートを示す図である。
次に、ミラーリング制御装置の動作について説明する。
まず、プロセッサ1が、図2で示すメモリアクセス要求をメモリ制御部2へ送信すると、そのメモリアクセス要求をメモリ制御部2が受信する(ステップS101)。すると、メモリアクセス要求制御部20は、取得したメモリアクセス要求が、書き込み要求を示すのか、または読み出し要求を示すのかを、当該メモリアクセス要求に格納されたコードから解析する(ステップS102)。そして、メモリアクセス要求が書き込み要求を示す場合には、メモリアクセス要求制御部20は、図2(a)で示した、書き込み要求を示すメモリアクセス要求のデータ部に格納されているデータA(16バイト+16ビットECC)を、2つの8バイト+8ビットECC(図3(a))のデータに分割する(ステップS103)。なお、分割した2つのデータのうちのデータ部上位(Upper)8バイト+ECCデータ上位8ビットからなるデータをデータU(第1分割後データ)、データ部下位(Lower)8バイト+ECCデータ下位8ビットからなるデータをデータL(第2分割後データ)と呼ぶこととする。
【0021】
そして、メモリアクセス要求制御部20は、データUとデータLとをそれぞれコピーしてデータUのコピーデータであるデータU’と、データLのコピーデータであるデータL’とを生成する。次に、メモリアクセス要求制御部20は、データUをデータ部に格納するメモリライトリクエストUと、データLのコピーデータであるデータL’をデータ部に格納するメモリライトリクエストL’を生成し、第1チャネル制御部21へクロックサイクルを利用して連続して送信する(ステップS104a)。また、メモリアクセス要求制御部20は、データLをデータ部に格納するメモリライトリクエストLと、データUのコピーデータであるデータU’をデータ部に格納するメモリライトリクエストU’を生成し、第2チャネル制御部22へクロックサイクルを利用して連続して送信する(ステップS104b)。
【0022】
このメモリライトリクエストの送信時には、メモリアクセス要求制御部20は、各チャネル制御部へ送信する1つ目のメモリライトリクエスト(メモリライトリクエストUまたはメモリライトリクエストL)のアドレス部にはプロセッサ1から指定されたアドレスを格納し、2つ目のメモリライトリクエスト(メモリライトリクエストL’またはメモリライトリクエストU’)にはプロセッサ1から指定されたアドレスに1を加算したアドレスを格納する。これにより、1つ目のメモリライトリクエストと2つ目のライトメモリリクエストは異なるメモリのアドレスに登録されるため、アドレスが重複することによるデータの書きつぶしを防ぐようにしている。そして、第1チャネル制御部21は、メモリライトリクエストUとメモリライトリクエストL’とを用いてデータUとデータL’を書き込み先のアドレスに基づいて第1メモリモジュール3に書き込み(ステップS105a)、また、第2チャネル制御部22は、メモリライトリクエストLとメモリライトリクエストU’とを用いてデータLとデータU’を書き込み先のアドレスに基づいて第2メモリモジュール4に書き込む(ステップS105b)。なお、本実施形態においては、1つ目と2つ目のメモリライトリクエストに格納するアドレスは、メモリモジュールにおいて連続するアドレスに書き込まれるようにアドレス値1だけ異なるよう制御しているが、所定のアドレス間隔で書き込まれるように制御してもよい。
【0023】
図7はメモリアクセス要求制御部が第1チャネル制御部へ送信するメモリライトリクエストのフォーマットを示す図である。
図8はメモリアクセス要求制御部が第2チャネル制御部へ送信するメモリライトリクエストのフォーマットを示す図である。
(図7(a))で示すように、メモリアクセス要求制御部20が第1チャネル制御部21へ送信するメモリライトリクエストUは、データ部にデータUを格納している。また(図7(b))で示すように、メモリアクセス要求制御部20が第1チャネル制御部21へ送信するメモリライトリクエストL’は、データ部にデータL’を格納している。
また、(図8(a))で示すように、メモリアクセス要求制御部20が第2チャネル制御部22へ送信するメモリライトリクエストLは、データ部にデータLを格納している。また(図8(b))で示すように、メモリアクセス要求制御部20が第2チャネル制御部22へ送信するメモリライトリクエストU’は、データ部にデータU’を格納している。
【0024】
次に、上述のステップS102の解析において、メモリアクセス要求が、読み出し要求を示す場合について説明する。この場合、メモリアクセス要求制御部20は、読み出し要求を示すプロセッサ1からのメモリアクセス要求に基づいて、当該メモリアクセス要求のフォーマット構成と同一の第1メモリリードリクエストと、メモリアクセス要求が示す読み出し先のアドレスに1を加えたアドレスを格納した第2メモリリードリクエストを生成する(ステップS106)。そして、その第1メモリリードリクエストと、第2メモリリードリクエストとを、クロックサイクルを利用して1サイクル目と2サイクル目で連続して、第1チャネル制御部21と第2チャネル制御部22とへそれぞれ送信する(ステップS107)。図9に第1メモリリードリクエストと第2メモリリードリクエストのフォーマットを示す。なお、書き込み制御の際に、1つ目と2つ目のメモリライトリクエスト内のデータが所定の間隔で登録されるように制御されている場合には、メモリリードリクエストにおいても所定の間隔でデータを読み出すようにアドレスが設定される。つまり、第2メモリリードリクエストには、メモリアクセス要求が示す読み出し先のアドレスに所定の間隔が示すアドレス値を加えた値が格納されることとなる。
【0025】
そして、第1チャネル制御部21と第2チャネル制御部22はそれぞれ、第1メモリリードリクエストに格納されている読み出し先のアドレスに基づいて、第1メモリモジュール3と第2メモリモジュール4からデータを読み出して、その読み出したデータを格納した第1リードデータを生成しメモリアクセス要求制御部20へ送信する(ステップS108a)。また、第1チャネル制御部21と第2チャネル制御部22はそれぞれ、第2メモリリードリクエストに格納されている読み出し先のアドレスに基づいて、第1メモリモジュール3と第2メモリモジュール4からデータを読み出して、その読み出したデータを格納した第2リードデータを生成しメモリアクセス要求制御部20へ送信する(ステップS108b)。図10に第1リードデータと第2リードデータのフォーマットを示す。なお、第1チャネル制御部21と第2チャネル制御部22のそれぞれにおいて、第1リードデータと第2リードデータは、クロックサイクルを利用して1サイクル目と2サイクル目で連続して、メモリアクセス要求制御部20へ送信される。
【0026】
図11は、メモリモジュールにおけるデータの格納状態の例を示す図である。
上述の書き込み要求を示すメモリアクセス要求に基づいて、メモリモジュール3のアドレス0には、データAの上位8バイト+そのECC上位8ビットを示すデータUが格納されており、メモリモジュール4のアドレス0には、データAの下位8バイト+そのECC下位8ビットを示すデータLが格納されている。また、メモリモジュール3のアドレス1には、データAの下位8バイト+そのECC下位8ビットを示すデータLのコピーデータであるデータL’が格納されており、メモリモジュール4のアドレス1には、データAの上位8バイト+そのECC上位8ビットを示すデータUのコピーデータであるデータU’が格納されている。
【0027】
そして、上述の読み出し要求に基づく処理によって、メモリアクセス要求制御部20は、第1チャネル制御部21、第2チャネル制御部22それぞれから、メモリモジュール3、4内に格納されたデータのうち、データUとデータLを、2つの受信した第1リードデータから取得できる。そして、メモリアクセス要求部20は、受信した2つの第1リードデータに格納されているデータUとデータLとを用いてデータAを復元する(ステップS109)。つまり、データUに格納されているデータAの上位8バイトとデータLに格納されているデータAの下位8バイトを結合し、またデータUに格納されているデータAのECC上位8ビットとデータLに格納されているデータAのECC下位8ビットを結合する。これにより、16バイト+16ビットECCの元データであるデータAが復元される。
【0028】
メモリアクセス要求制御部20は、復元したデータAのECC検査を当該復元したデータAのECC16ビットを用いて行う(ステップS110)。そして、メモリアクセス要求制御部20は、エラーがない場合や、訂正可能なエラーであった場合には、復元したデータAを格納したリプライデータ(図5)を生成し、プロセッサ1へ送信する(ステップS111)。これにより、読み出し要求に基づく処理が終了する。
【0029】
ここで、ECC検査で訂正不可能なエラーを検出した場合には、メモリアクセス要求制御部20は、チャネル制御部21から受信した第1リードデータに格納されるデータUと、同じくチャネル制御部21から受信した第2リードデータに格納されるデータL’とを用いて16バイト+16ビットECCのデータAを復元し、ECC検査を実行する。この検査でエラーがない場合や、訂正可能なエラーであった場合には、このデータAをリプライデータに格納してプロセッサ1へ送信する。また、これ以降の処理では、チャネル制御部21から受信したリードデータを用いて復元したデータのみを用いてリプライデータを生成するよう動作を変更する。
【0030】
また、メモリアクセス要求制御部20は、第1チャネル制御部21から受信した第1リードデータに格納されるデータUと、同じくチャネル制御部21から受信した第2リードデータに格納されるデータL’とを用いて復元したデータAのECC検査においても、訂正不可能エラーが検出された場合、次に、チャネル制御部22から受信した第1リードデータに格納されるデータLと、同じくチャネル制御部22から受信した第2リードデータに格納されるデータU’とを用いて16バイト+16ビットECCのデータAを復元し、ECC検査を実行する。この検査でエラーがない場合や、訂正可能なエラーであった場合には、このデータAをリプライデータに格納してプロセッサ1へ送信する。また、これ以降の処理では、チャネル制御部22から受信したリードデータを用いて復元したデータのみを用いてリプライデータを生成するよう動作を変更する。
なお、このECC検査でも、訂正不可能エラーが検出された場合には、継続動作不可となる。
【0031】
次に、本発明の具体的な実施例について図を用いて説明する。
プロセッサ1から、アドレス0に対して、データAを書き込むよう要求するメモリアクセス要求が、また、アドレス2に対して、データBを書き込むよう要求するメモリアクセス要求が、メモリ制御部2に対して送信したとする。すると、そのプロセッサ1から送信された、アドレス0に対する書き込み要求を示すメモリアクセス要求(図12)を、メモリ制御手段2内のメモリアクセス要求制御部20が受信する。メモリアクセス要求制御部20は、受け付けたメモリアクセス要求を解析し、書き込み要求であることを検出すと、データA(16バイト+16ビットECC)を、2つの8バイト+8ビットECCのデータに分割し、データAU(第1分割後データ)とデータAL(第2分割後データ)を生成する。
【0032】
そして、メモリアクセス要求制御部20は、データAUとデータALとをそれぞれコピーしてデータAUのコピーデータであるデータAU’と、データALのコピーデータであるデータAL’とを生成する。次に、メモリアクセス要求制御部20は、データAUをデータ部に格納する図13(a)で示すメモリライトリクエストAUと、データALのコピーデータであるデータAL’をデータ部に格納する図13(b)で示すメモリライトリクエストAL’を生成し、第1チャネル制御部21へクロックサイクルを利用して連続して送信する。また、メモリアクセス要求制御部20は、データALをデータ部に格納する図14(a)で示すメモリライトリクエストALと、データAUのコピーデータであるデータAU’をデータ部に格納する図14(b)で示すメモリライトリクエストAU’を生成し、第2チャネル制御部22へクロックサイクルを利用して連続して送信する。図13で示すように、メモリライトリクエストAUのアドレスには書き込み先のアドレスとして0が、また、メモリライトリクエストAL’のアドレスには書き込み先のアドレスとして1が格納される。また、図14で示すように、メモリライトリクエストALのアドレスには書き込み先のアドレスとして0が、また、メモリライトリクエストAU’のアドレスには書き込み先のアドレスとして1が格納される。
【0033】
書き込み要求の処理によって第1メモリモジュール3や第2メモリモジュール4には図11のようにデータが格納される。本例では、各メモリモジュールのアドレス0、1にデータAを元データとするデータが格納される。なお、次に、データBの書き込み要求を示すメモリアクセス要求があった場合には、アドレス2、3にデータBを元データとするデータが格納されることなる。
【0034】
そして、プロセッサ1が、アドレス0に対する読み出し要求を示すメモリアクセス要求(図15)を送信した場合、メモリアクセス要求制御部20は、受け取ったメモリアクセス要求から、第1メモリリードリクエスト(図16(a))と、メモリアクセス要求が示す読み出し先のアドレスに1を加えたアドレスを格納した第2メモリリードリクエスト(図16(b))を生成し、それらをクロックサイクルを利用して1サイクル目と2サイクル目で連続して、第1チャネル制御部21と第2チャネル制御部22とへそれぞれ送信する。
【0035】
そして、第1チャネル制御部21と第2チャネル制御部22はそれぞれ、第1メモリリードリクエストに格納されている読み出し先のアドレスに基づいて、第1メモリモジュール3と第2メモリモジュール4からデータを読み出して、その読み出したデータを格納した第1リードデータ(図17(a)、図18(a))を生成し、メモリアクセス要求制御部20へ送信する。また、第1チャネル制御部21と第2チャネル制御部22はそれぞれ、第2メモリリードリクエストに格納されている読み出し先のアドレスに基づいて、第1メモリモジュール3と第2メモリモジュール4からデータを読み出して、その読み出したデータを格納した第2リードデータ(図17(b)、図18(b))を生成しメモリアクセス要求制御部20へ送信する。
【0036】
そして、上述の読み出し要求に基づく処理によって、メモリアクセス要求制御部20はデータAを復元し、当該復元したデータAのECC検査をECC16ビットを用いて行う。そして、メモリアクセス要求制御部20は、エラーがない場合や、訂正可能なエラーであった場合には、復元したデータAを格納したリプライデータを生成し、プロセッサ1へ送信する。これにより、読み出し要求に基づく処理が終了する。
【0037】
ECC検査で訂正不可能なエラーを検出した場合には、メモリアクセス要求制御部20は、データUとデータL’とを用いてデータAを復元し、ECC検査を実行し、この検査でエラーがない場合や、訂正可能なエラーであった場合には、このデータAをリプライデータに格納してプロセッサ1へ送信する。また、これ以降の処理では、チャネル制御部21から受信したリードデータを用いて復元したデータのみを用いてリプライデータを生成するよう動作を変更する。
【0038】
また、メモリアクセス要求制御部20は、データUとデータL’とを用いて復元したデータAのECC検査においても、訂正不可能エラーが検出された場合、データLとデータU’とを用いてデータAを復元し、ECC検査を実行する。この検査でエラーがない場合や、訂正可能なエラーであった場合には、このデータAをリプライデータに格納してプロセッサ1へ送信する。また、これ以降の処理では、チャネル制御部22から受信したリードデータを用いて復元したデータのみを用いてリプライデータを生成するよう動作を変更する。
【0039】
以上、本発明の実施形態によれば、書き込み対象のデータを分割して、その2つのデータをアドレスの値が1つ異なる各アドレスに対して格納し、ミラーリングのためのメモリにも同様に分割したデータを格納するため、より簡単なアドレスの制御でミラーリングを行うことができる。
また、読み出し要求の場合にも、読み出し要求で示される読み出し対象のアドレスと、そのアドレスに対して1を加えたアドレスに格納されたデータをメモリモジュールから読み出せばよいため、より簡単なアドレスの制御でミラーリングを行うことができる。
また、書き込み/読み出しの両方の制御において、ミラーリングを行っている両方のメモリモジュールに対して同一アドレスでアクセスするため、その制御処理を共通化することができる。
【0040】
なお、上述のミラーリング装置は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0041】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。また、ミラーリング装置は回路によって構成されるようにしてもよい。
【符号の説明】
【0042】
1・・・プロセッサ
2・・・メモリ制御部
3・・・第1メモリモジュール
4・・・第2メモリモジュール
20・・・メモリアクセス要求制御部
21・・・第1チャネル制御部
22・・・第2チャネル制御部

【特許請求の範囲】
【請求項1】
対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第1記憶部と、
前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第2記憶部と、
前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出す第1制御部と、
前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出す第2制御部と、
前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元するメモリアクセス要求制御部と、
を備えることを特徴とするミラーリング制御装置。
【請求項2】
前記メモリアクセス要求制御部は、
前記第1分割後データのコピーデータと、前記第2分割後データとを用いて復元した前記対象データの正常判定を行い、当該正常判定が正常を示す場合には、その復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第2分割後データのコピーデータと、前記第1分割後データとを用いて前記対象データを復元する
ことを特徴とする請求項1に記載のミラーリング制御装置。
【請求項3】
前記メモリアクセスリスト制御部は、前記第2分割後データのコピーデータと、前記第1分割後データとを用いて復元した前記対象データの正常判定を行い、当該正常判定が正常を示す場合には、その復元した対象データを前記読み出し要求の応答として出力し、
以降の読み出し要求の応答は、前記第2分割後データのコピーデータと、前記第1分割後データとを用いて復元した前記対象データを前記読み出し要求の応答として出力する
ことを特徴とする請求項2記載のミラーリング制御装置。
【請求項4】
前記対象データは、当該対象データが正常かどうかを判定するためのエラーチェックデータを格納しており、前記対象データの分割により、当該エラーチェックデータが分割されて、それぞれ前記第1分割後データおよび前記第2分割後データに格納され、
前記メモリアクセスリスト制御部は、前記正常判定を、前記第1分割後データおよび前記第2分割後データに格納された分割後のエラーチェックデータの対に基づいて行う
ことを特徴とする請求項1から請求項3の何れかに記載のミラーリング制御装置。
【請求項5】
対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第1記憶部と、
前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第2記憶部と、
前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出す第1制御部と、
前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出す第2制御部と、
前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元するメモリアクセス要求制御部と、
を備えることを特徴とするミラーリング制御回路。
【請求項6】
ミラーリング制御装置の第1記憶部が、対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶し、
前記ミラーリング制御装置の第2記憶部が、前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶し、
前記ミラーリング制御装置の第1制御部が、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出し、
前記ミラーリング制御装置の第2制御部が、前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出し、
前記ミラーリング制御装置のメモリアクセス要求制御部が、前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元する
ことを特徴とするミラーリング制御方法。
【請求項7】
対象データの分割により生成された第1分割後データと第2分割後データのうちの第1分割後データと、前記第2分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第1記憶部と、
前記第2分割後データと、前記第1分割後データのコピーデータとを所定の間隔の各アドレスに記憶する第2記憶部と、
を備えたミラーリング制御装置のコンピュータを、
前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第1分割後データと前記第2分割後データのコピーデータとを前記第1記憶部から読み出す第1制御手段、
前記対象データの読み出し要求に基づいて、当該読み出し要求が示すアドレスとそのアドレスを基準とする前記所定の間隔の他のアドレスから前記第2分割後データと前記第1分割後データのコピーデータとを前記第2記憶部から読み出す第2制御手段、
前記第1制御部が読み取った前記第1分割後データと、前記第2制御部が読み取った前記第2分割後データとに基づいて前記対象データを復元し、当該対象データの正常判定を行い、当該正常判定が正常を示す場合には、前記復元した対象データを前記読み出し要求の応答として出力し、当該正常判定が異常を示す場合には、前記第1分割後データのコピーデータと、前記第2分割後データとを用いて前記対象データを復元するメモリアクセス要求制御手段、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−48742(P2011−48742A)
【公開日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2009−198128(P2009−198128)
【出願日】平成21年8月28日(2009.8.28)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】