(57)【特許請求の範囲】
【請求項１】
キャッシュメモリと、
ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第１記録装置と第２記録装置とにデータを同一アドレスに書き込むコントローラであって、
第１書込みアドレスおよび第１データを含む書込み命令を受信した場合に、前記第１書込みアドレスから前記第１データのサイズに応じた第２書込みアドレスまで前記第１データを前記第１記録装置に書き込み、
前記第１データの先頭から前記ページサイズのｎ（ｎは１以上の整数）倍のサイズの第２データを前記第２記録装置に書き込み、
前記第１データから第２データを除いたサイズが前記ページサイズより小さい第３データを前記キャッシュメモリに書き込み、
前記コントローラは、前記第３データと前記第２書込みアドレスに隣接する第３書込みアドレスから書込みが命令された第４データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第５データを前記第２記録装置に書き込む、
コントローラと、
を具備する情報処理装置。
【請求項２】
前記コントローラは、
前記第３データを前記キャッシュメモリに書き込む前に、前記キャッシュメモリに書込み可能なサイズが前記第３データのサイズより小さいかを判定し、
前記第３データのサイズより小さいと判定した場合に、前記キャッシュメモリ内のデータの少なくとも一部を前記第２記録装置に書き込み、
前記第２記録装置に書き込まれたデータを前記キャッシュメモリから削除し、
前記キャッシュメモリに前記第３データを書き込む、
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置が停止される場合、前記コントローラは、前記キャッシュメモリ内の前記第３データを含むデータを前記第２記録装置に書き込む
請求項１に記載の情報処理装置。
【請求項４】
前記第１記録装置に障害が発生し、前記第１記録装置を第３記録装置に交換した場合、前記第２記録装置を前記第１記録装置に設定し、前記３記録装置を前記第２記録装置として設定データに設定する設定手段を更に具備する
請求項１に記載の情報処理装置。
【請求項５】
前記キャッシュメモリは、揮発性メモリであり、
前記コントローラは、前記情報処理装置が不正終了した場合に、前記第1記録装置に格納されているデータに基づいて前記第２記録装置に格納されるデータの再構築を行う、
請求項１に記載の情報処理装置。
【請求項６】
前記第1記録装置および前記第２記録装置は、ＮＡＮＤ型不揮発性メモリを含む
請求項１に記載の情報処理装置。
【請求項７】
キャッシュメモリと、
ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第1記録装置と第２記録装置とにデータを同一アドレスに書き込むコントローラであって、
第１書込みアドレスおよび第１データを含む書込み命令を受信した場合に、前記第１書込みアドレスから前記第１データのサイズに応じた第２書込みアドレスまで前記第１データを前記第１記録装置に書き込み、
前記第１データの先頭から前記ページサイズのｎ（ｎは１以上の整数）倍のサイズの第２データを前記第２記録装置に書き込み、
前記第１データから第２データを除いたサイズが前記ページサイズより小さい第３データを前記キャッシュメモリに書き込み、
前記第３データと前記第２書込みアドレスに隣接する第３書込みアドレスから書込みが命令された第４データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第５データを前記第２記録装置に書き込む、
コントローラと、
を具備するＲＡＩＤコントローラカード。
【請求項８】
前記コントローラは、
前記第３データを前記キャッシュメモリに書き込む前に、前記キャッシュメモリに書込み可能なサイズが前記第３データのサイズより小さいかを判定し、
前記第３データのサイズより小さいと判定した場合に、前記キャッシュメモリ内のデータの少なくとも一部を前記第２記録装置に書き込み、
前記第２記録装置に書き込まれたデータを前記キャッシュメモリから削除し、
前記キャッシュメモリに前記第３データを書き込む、
請求項７に記載のＲＡＩＤコントローラカード。
【請求項９】
前記情報処理装置が停止される場合、前記コントローラは、前記キャッシュメモリ内の前記第３データを含むデータを前記第２記録装置に書き込む
請求項７に記載のＲＡＩＤコントローラカード。
【請求項１０】
前記第１記録装置に障害が発生し、前記第１記録装置を第３記録装置に交換した場合、前記第２記録装置を前記第１記録装置に設定し、前記３記録装置を前記第２記録装置として設定データに設定する設定手段を更に具備する
請求項７に記載のＲＡＩＤコントローラカード。
【請求項１１】
前記キャッシュメモリは、揮発性メモリであり、
前記コントローラは、前記情報処理装置が不正終了した場合に、前記第1記録装置に格納されているデータに基づいて前記第２記録装置に格納されるデータの再構築を行う、
請求項７に記載のＲＡＩＤコントローラカード。
【請求項１２】
前記第1記録装置および前記第２記録装置は、ＮＡＮＤ型不揮発性メモリを含む
請求項７に記載のＲＡＩＤコントローラカード。
【請求項１３】
ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第1記録装置と第２記録装置とにデータを同一アドレスに書き込むミラーリング方法であって、
第１書込みアドレスおよび第１データを含む書込み命令を受信した場合に、前記第１書込みアドレスから前記第１データのサイズに応じた第２書込みアドレスまで前記第１データを前記第１記録装置に書き込み、
前記第１データの先頭から前記ページサイズのｎ（ｎは１以上の整数）倍のサイズの第２データを前記第２記録装置に書き込み、
前記第１データから第２データを除いたサイズが前記ページサイズより小さい第３データを前記キャッシュメモリに書き込み、
前記第３データと前記第２書込みアドレスに隣接する第３書込みアドレスから書込みが命令された第４データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第５データを前記第２記録装置に書き込む、
ミラーリング方法。
【請求項１４】
前記第３データを前記キャッシュメモリに書き込む前に、前記キャッシュメモリに書込み可能なサイズが前記第３データのサイズより小さいかを判定し、
前記第３データのサイズより小さいと判定した場合に、前記キャッシュメモリ内のデータの少なくとも一部を前記第２記録装置に書き込み、
前記第２記録装置に書き込まれたデータを前記キャッシュメモリから削除し、
前記キャッシュメモリに前記第３データを書き込む、
請求項１３に記載のミラーリング方法。
【請求項１５】
前記情報処理装置が停止される場合、前記キャッシュメモリ内の前記第３データを含むデータを前記第２記録装置に書き込む
請求項１３に記載のミラーリング方法。
【請求項１６】
前記第１記録装置に障害が発生し、前記第１記録装置を第３記録装置に交換した場合、前記第２記録装置を前記第１記録装置に設定し、前記３記録装置を前記第２記録装置として設定データに設定する、
請求項１３に記載のミラーリング方法。
【請求項１７】
前記キャッシュメモリは、揮発性メモリであり、
前記情報処理装置が不正終了した場合に、前記第1記録装置に格納されているデータに基づいて前記第２記録装置に格納されるデータの再構築を行う、
請求項１３に記載のミラーリング方法。
【請求項１８】
前記第1記録装置および前記第２記録装置は、ＮＡＮＤ型不揮発性メモリを含む
請求項１３に記載のミラーリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、複数の記憶装置に同じデータを書き込む情報処理装置、ＲＡＩＤコントローラカード、およびミラーリング方法に関する。
【背景技術】
【０００２】
記憶装置に書き込まれるデータの信頼性を高めるための技術としてミラーリング（ＲＡＩＤ（Redundant Array Of Inexpensive Disks）１）がある。ミラーリングでは、データを複数の装置に同時に同じデータを書き込む。
【０００３】
ところで、ハードディスクドライブの代わりに近年記憶媒体に不揮発性メモリを用いたＳＳＤ（Solid State Drive）が使われ始めている。不揮発性メモリとしては、ＮＡＮＤ型フラッシュメモリがよく使われている。
【０００４】
ＮＡＮＤ型フラッシュメモリでは、ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる。そして、ＮＡＮＤ型フラッシュメモリには、書き換え可能回数に上限がある。
【０００５】
ミラーリングのストレージとしてＮＡＮＤ型フラッシュメモリを有するＳＳＤを用いた場合、同じ内容のデータを書き込むので、ほぼ同時に寿命に達する。寿命に達すると読み出しができない製品も有るので、データの信頼性が損なわれる。
【０００６】
そこで、ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる記憶装置を用いてミラーリングを行う場合に記憶装置の寿命に差ができるようにすることが望まれている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１２３４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる記憶装置を用いてミラーリングを行う場合に記憶装置の寿命に差ができるようにすることが望まれている。
【０００９】
本発明の目的は、ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる複数の記憶装置を用いてミラーリングを行う場合に複数の記憶装置の寿命に差を持たせることが可能な情報処理装置、ＲＡＩＤコントローラカード、およびミラーリング方法を提供することにある。
【課題を解決するための手段】
【００１０】
実施形態によれば、情報処理装置は、キャッシュメモリと、コントローラとを具備する。ページ単位でデータの書込みおよび読み取りを行い、複数のページを含むブロック単位でデータの消去を行う第１の記録装置と第２の記録装置とにデータを同一アドレスに書き込むコントローラは、第１書込みアドレスおよび第１データを含む書込み命令を受信した場合に、前記第１書込みアドレスから前記第１データのサイズに応じた第２書込みアドレスまで前記第１データを前記第１記録装置に書き込み、前記第１データの先頭から前記ページサイズのｎ（ｎは１以上の整数）倍のサイズの第２データを前記第２の記録装置に書き込み、前記第１データから第２データを除いたサイズが前記ページサイズより小さい第３データを前記キャッシュメモリに書き込み、前記第３データと前記第２書込みアドレスに隣接する第３書込みアドレスから書込みが命令された第４データの少なくとも一部とを含み、サイズが前記ページサイズに等しい第５データを前記第２の記録装置に書き込む。
【図面の簡単な説明】
【００１１】
【図１】実施形態の情報処理装置の構成を示すブロック図。
【図２】実施形態のメイン基板およびＲＡＩＤコントローラカードの外観の一例を示す斜視図。
【図３】実施形態のＲＡＩＤコントローラカードのシステム構成の一例を示すブロック図。
【図４】実施形態のＲＡＩＤコントローラの書き込み処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、実施の形態について図面を参照して説明する。
【００１３】
図１を参照して実施形態に係わる情報処理装置を説明する。情報処理装置は、コンピュータとして実現されている。  
図１は、コンピュータ１０のシステム構成を示すブロック図である。図１に示すように、コンピュータ１０は、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、グラフィックスコントローラ１４、ＶＲＡＭ１４Ａ、サウスブリッジ１６、ＢＩＯＳ−ＲＯＭ１７、ＲＡＩＤコントローラカード１８、およびSolid State Disk（ＳＳＤ）１９等を備えている。
【００１４】
ＣＰＵ１１は、コンピュータ１０内の各部の動作を制御するプロセッサである。ＣＰＵ１１は、ＳＳＤ１９から主メモリ１３にロードされるオペレーティングシステムや、このオペレーティングシステムの制御下で動作する各種プログラムを実行する。また、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１７に格納された基本入出力システム（ＢＩＯＳ）も実行する。なお、以下では、このＢＩＯＳ−ＲＯＭ１７に格納された基本入出力システム自体をＢＩＯＳと称することがある。
【００１５】
ノースブリッジ１２は、ＣＰＵ１１のローカルバスとサウスブリッジ１６との間を接続するブリッジデバイスである。ノースブリッジ１２は、バスを介してグラフィックスコントローラ１４との通信を実行する機能を有しており、また、主メモリ１３をアクセス制御するメモリコントローラも内蔵されている。グラフィックスコントローラ１４は、本１０側のディスプレイ１５を制御する表示コントローラである。グラフィックスコントローラ１４は、ＶＲＡＭ１４Ａに書き込まれた画像データからディスプレイ１５に送出すべき映像信号を生成する。
【００１６】
サウスブリッジ１６は、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスの各種デバイスを制御するコントローラである。また、このサウスブリッジ１６には、ＢＩＯＳ−ＲＯＭ１７が直接的に接続され、これらを制御する機能も有している。
【００１７】
ＳＳＤは、例えばＮＡＮＤ型フラッシュメモリ（不揮発性メモリ）によって構成されている。ＮＡＮＤ型フラッシュメモリは、ページ単位でデータの書込みおよび読み取りが行われ、複数のページを含むブロック単位でデータの消去が行われる。
【００１８】
図２は、ＣＰＵ１１および主メモリ１３等が実装されるメイン基板およびＲＡＩＤコントローラカード１８を示す斜視図である。
【００１９】
図２に示すように、メイン基板１０１上に複数の拡張スロット１０４、１０５が設けられている。拡張スロット１０４、１０５にはＰＣＩｅバスが接続される。なお、拡張スロット１０４には８レーン以下のＰＣＩ  Ｅｘｐｒｅｓｓ拡張カードが挿入することができ、拡張スロット１０５には１６レーン以下のＰＣＩ  Ｅｘｐｒｅｓｓ拡張カードが挿入することができる。図２に示すように、拡張スロット１０４には、ＲＡＩＤコントローラカード１８を構成する拡張基板２００のコネクタ部２０６が挿入されている。
【００２０】
コンピュータ１０は、ＲＡＩＤコントローラカード１８に障害が発生した場合に、通常の動作モードであるハードウェアモードから、ハードウェアセーフモードまたはソフトウェアセーフモードに切り替えられる。通常、ＲＡＩＤコントローラカード１８に障害が発生すると、ＲＡＩＤコントローラカード１８は機能を停止し、コンピュータ１０も動作しなくなる。コンピュータ１０は、ハードウェアセーフモードまたはソフトウェアセーフモードに切り替えることによって、コンピュータ１０を稼働し続けることが可能である。
【００２１】
ハードウェアセーフモードでは、障害の原因であるデバイスが停止されている。また、ソフトウェアセーフモードでは、パリティの演算等の書込み処理、および読み込み処理がＣＰＵ１１によって行われる。
【００２２】
次に、ＲＡＩＤコントローラカード１８のシステム構成について図３を参照して説明する。ＲＡＩＤコントローラカード１８は、プロセッサコントローラ３０１、ＰＣＩｅコントローラ３０２、ＳＡＳ／Ｓ−ＡＴＡコントローラ３０３、キャッシュメモリ３１１、および不揮発性メモリ３２１等を備えている。
【００２３】
プロセッサコントローラ３０１は、不揮発性メモリ３２１に格納されたファームウェアを実行する。ＰＣＩｅコントローラ３０２は、サウスブリッジ１６との間のデータの伝送を制御するためのＰＣＩ  Ｅｘｐｒｅｓｓインタフェースである。ＳＡＳ／Ｓ−ＡＴＡコントローラ３０３は、ＳＳＤ１９との間のデータの伝送を制御するためのインタフェースである。キャッシュメモリ３１１は、例えばＤＤＲ２  ＳＤＲＡＭ（Double-Data-Rate2 Synchronous Dynamic Random Access Memory）によって構成されている。
【００２４】
ＲＡＩＤコントローラ３００は、データの書き込みが命令された場合に、２台のＳＳＤ１９に同じデータを書き込む、所謂ミラーリングを行う。一般的なミラーリングでは２台のストレージに同時に同じデータを書き込むが、ＲＡＩＤコントローラ３００は一般的なミラーリングと異なる処理を行う。ＲＡＩＤコントローラは、ＳＳＤ１９Ａに直ちにデータを書き込むが、ＳＳＤ１９Ｂにはページ単位でデータが書き込まれるように他のデータとまとめて処理を行う。
【００２５】
次に、図４のフローチャートを参照して、ＳＳＤ１９Ｂにデータ書き込む処理の手順を説明する。  
プロセッサコントローラ３０１は、書込み開始アドレスと書込みデータとを含む書込みが命令を受信したら、揮発性メモリによって構成されているキャッシュメモリ３１１内に書込みデータに隣接する未書込みデータが格納されているかを判定する（ステップ４０１）。
【００２６】
未書込みデータがないと判定した場合（ステップ４０１のＮｏ）、プロセッサコントローラ３０１は、書込みデータのサイズがＳＳＤ１９Ｂを構成するＮＡＮＤ型フラッシュメモリのページサイズ以上であるかを判定する（ステップ４０２）。ページサイズは、不揮発性メモリ３２１内に格納されている。なお、ＢＩＯＳ画面等によりページサイズを変更することも可能である。
【００２７】
ページサイズ以上であると判定された場合（ステップ４０２のＹｅｓ）、プロセッサコントローラ３０１は、書込みデータの先頭からページサイズのデータをＳＳＤ１９Ｂの書込み開始アドレスから書き込む（ステップ４０３）。
【００２８】
プロセッサコントローラ３０１は、未書込みの書込みデータがあるかを判定する（ステップ４０４）。未書込みの書込みデータがないと判定した場合（ステップ４０４のＮｏ）、処理を終了する。未書込みの書込みデータがあると判定した場合（ステップ４０４のＹｅｓ）、プロセッサコントローラ３０１は、未書込みの書込みデータのサイズがページサイズ以上であるかを判定する（ステップ４０５）。ページサイズ以上であると判定した場合（ステップ４０５のＹｅｓ）、プロセッサコントローラ３０１は、未書込みの書込みデータの先頭からページサイズのデータをＳＳＤ１９Ｂの書込み開始アドレスから書き込む（ステップ４０６）。書込み開始アドレスは既にＳＳＤ１９Ｂに書き込まれている書込みデータに隣接するアドレスである。ステップ４０６の処理後、ステップ４０４からの処理を順次実行する。ステップ４０３からステップ４０６の処理によって書込でターの先頭からページサイズのｎ（ｎは１以上の整数）倍のサイズのデータがＳＳＤ１９Ｂに書き込まれる。
【００２９】
ステップ４０２において書込みデータのサイズがページサイズ以上ではないと判定された場合（ステップ４０２のＮｏ）、またはステップ４０５において未書込みの書込みデータのサイズがページサイズ以上ではないと判定された場合（ステップ４０５のＮｏ）に行われる処理について説明する。プロセッサコントローラ３０１は、キャッシュメモリ３１１の空き容量を取得する。プロセッサコントローラ３０１は、空き容量より書込みデータまたは未書込みの書込みデータのサイズが大きいかを判定することによって、キャッシュメモリ３１１に書込みデータまたは未書込みの書込みデータを格納できるかを判定する（ステップ４０７）。格納できると判定した場合（ステップ４０７のＹｅｓ）、プロセッサコントローラ３０１は書込みデータまたは未書込みの書込みデータをキャッシュメモリ３１１を書込み開始アドレスと共に記録する（ステップ４１０）。
【００３０】
キャッシュメモリ３１１に格納することができないと判定した場合（ステップ４０７のＮｏ）、プロセッサコントローラ３０１は、キャッシュメモリ３１１内に一番古く記録されたデータをＳＳＤ１９Ｂに記録する（ステップ４０８）。記録されたデータをキャッシュメモリ３１１から削除する（ステップ４０９）。そして、ステップ４０７に戻り、プロセッサコントローラ３０１は、キャッシュメモリ３１１に書込みデータまたは未書込みの書込みデータを格納することができるかを再度判定する。
【００３１】
ステップ４０１において、キャッシュメモリ３１１内に書込みデータに隣接する未書込みデータが格納されていると判定した場合（ステップ４０１のＹｅｓ）、プロセッサコントローラ３０１は、未書込みデータのサイズと書込みデータのサイズとの和がページサイズ以上であるかを判定する（ステップ４１１）。ページサイズ以上ではないと判定した場合（ステップ４１１のＮｏ）、プロセッサコントローラ３０１はステップ４０７からの処理を順次実行する。ページサイズ以上であると判定した場合（ステップ４１１のＹｅｓ）、プロセッサコントローラ３０１は、未書込みデータおよび書込みデータを未書込みデータの先頭からページサイズのサイズのデータを書込む（ステップ４１２）。書込み後、プロセッサコントローラ３０１は、ステップ４０４からの処理を順次実施する。
【００３２】
以上説明したように、書込み処理の説明を終了する。ＳＳＤ１９ＡとＳＳＤ１９Ｂに対する書き込み処理を替えることで、２台のＳＳＤ１９Ａ，１９Ｂへの書き込みを不均一化することができる。不均一化することによって、２台のＳＳＤ１９Ａ，１９Ｂに同時に寿命に達することを防ぐことができ、ＲＡＩＤを用いたシステムの安定運用することができる。
【００３３】
なお、コントローラは、装置の停止を検出した場合に、キャッシュメモリ内のデータをＳＳＤ１９Ｂに書き込む処理を行う。また、ＳＳＤ１９Ａに障害が発生し、ＳＳＤ１９Ａを新たなＳＳＤに交換した場合、コントローラはＳＳＤ１９ＢをＳＳＤ１９Ａに設定し、新たなＳＳＤをＳＳＤ１９Ｂとして設定する。
【００３４】
装置が不正終了した場合、コントローラは、ＳＳＤ１９Ａに格納されているデータに基づいてＳＳＤ１９Ｂに格納されるデータの再構築を行う。
【００３５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３６】
１０…コンピュータ，１８…ＲＡＩＤコントローラカード，１９Ａ…ＳＳＤ，１９Ｂ…ＳＳＤ，３００…ＲＡＩＤコントローラ，３１１…キャッシュメモリ。
【要約】
【課題】ページ単位でデータの書込みおよび読み取りを行われ、複数のページを含むブロック単位でデータの消去が行われる複数の記憶装置を用いてミラーリングを行う場合に複数の記憶装置の寿命に差を持たせること。
【解決手段】第１記録装置と第２記録装置とに書き込みを行うコントローラは、第１アドレスおよび第１データを含む書込み命令を受信した場合に、第１アドレスから第１データのサイズに応じた第２アドレスまで第１データを第１記録装置に書き込み、第１データの先頭からページサイズのｎ倍のサイズの第２データを第２記録装置に書き込み、第１データから第２データを除いたサイズがページサイズより小さい第３データをキャッシュメモリに書き込み、第３データと第２アドレスに隣接する第３アドレスから書込みが命令された第４データの少なくとも一部とを含み、サイズがページサイズに等しい第５データを第２記録装置に書き込む。
【選択図】    図２【図１】
0004806089.tif 000002
【図２】
0004806089.tif 000003
【図３】
0004806089.tif 000004
【図４】
0004806089.tif 000005