(57)【要約】【課題】データバックアップ方法及び情報処理装置において、複数系統のデータバックアップ時間に差が生じても、データバックアップ処理を短時間に完了可能とすることを目的とする。【解決手段】第１の記憶部から第２の記憶部へ転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個の第２の記憶部を用意し、各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップし、各分割領域に対するデータのバックアップを、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了するようにする。【選択図】図４
2010224685.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶部から第２の記憶部へ転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個の第２の記憶部を用意し、
各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップし、
各分割領域に対するデータのバックアップを、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、
前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了する、データバックアップ方法。
【請求項２】
各分割領域に対して、各アドレスのデータを第２の記憶部にバックアップすると当該アドレスがバックアップ済みであることを示すフラグを設定し、各方向へ順次データをバックアップする際に次のアドレスに対して前記フラグが設定されていると当該方向へのデータのバックアップを終了する、請求項１記載のデータバックアップ方法。
【請求項３】
プロセッサと、
前記プロセッサの主記憶として機能する揮発性の第１の記憶部と、
停電時に転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個設けられた不揮発性の第２の記憶部と、
各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップするよう前記第１の記憶部から前記第２の記憶へのデータのバックアップを制御するメモリコントローラを備え、
各分割領域に対するデータのバックアップは、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、
前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了する、情報処理装置。
【請求項４】
前記メモリコントローラは、各分割領域に対して、各アドレスのデータを第２の記憶部にバックアップすると当該アドレスがバックアップ済みであることを示すフラグを設定し、各方向へ順次データをバックアップする際に次のアドレスに対して前記フラグが設定されていると当該方向へのデータのバックアップを終了する、請求項３記載の情報処理装置。
【請求項５】
前記メモリコントローラは、各分割領域に対して、前記第２の記憶部の一方及び他方にＤＭＡ転送によるデータのバックアップを別々に制御する２系統のＤＭＡエンジンと、
前記フラグを前記ＤＭＡエンジンがアクセス可能に格納するキャッシュメモリテーブルを有する、請求項４記載の情報処理装置。
【請求項６】
前記メモリコントローラは、各分割領域に対して、データのバックアップを行ったのが前記２系統のＤＭＡエンジンのうちどちらであるかを示す情報を前記フラグと共に前記キャッシュメモリテーブルに格納する、請求項５記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データバックアップ方法及び情報処理装置に係り、特に記憶部に格納されたデータのバックアップを行うデータバックアップ方法及び情報処理装置に関する。
【背景技術】
【０００２】
図１は、情報処理装置の一例を示すブロック図である。情報処理装置１は、図１に示す如く接続された中央処理装置（ＣＰＵ：Central Processing Unit）１１、メモリコントローラ１２、キャッシュメモリ１３、フラッシュメモリコントローラ１４、フラッシュメモリ１５、電源供給ユニット２１及び停電時給電ユニット２２を有する。ＡＣ電源を供給される電源供給ユニット２１は、図１中一点鎖線で囲んで示す給電対象１１〜１５に実線の矢印で示すようにＤＣ電源電圧を供給する。停電時給電ユニット２２は、例えばスーパーキャパシタ（Supercapacitor）と呼ばれるコンデンサで形成されており、電源供給ユニット２１の正常動作時には電源供給ユニット２１が供給するＤＣ電源電圧により充電される。ＡＣ電源の停電時等には、ＡＣ電源電圧が電源供給得ユニット２１に供給されないので、電源供給ユニット２１はＤＣ電源電圧を供給しない。電源供給ユニット２１がＤＣ電源電圧を供給しないと、停電時給電ユニット２２が停電を検出して給電対象１１〜１５に破線の矢印で示すようにＤＣ電源電圧を供給する。この例では、２系統によるデータバックアップが可能でるため、フラッシュメモリ１５が２個設けられている。このため、フラッシュメモリコントローラ１４は、２個のＤＭＡ（Direct Memory Access）エンジン（又は、ＤＭＡコントローラ（ＤＭＡＣ：DMA Controller）１４１と、不良ブロック管理テーブル１４２を有する。不良ブロック管理テーブル１４２は、フラッシュメモリ１５内の不良ブロックに関する情報を格納しており、ＤＭＡエンジン１４１がデータバックアップを行う際に参照される。ＤＭＡエンジン１４１は、不良ブロック管理テーブル１４２を参照することで、フラッシュメモリ１５内の不良ブロック（又は、不良領域）を認識してフラッシュメモリ１５のアクセス可能ブロック（又は、アクセス可能領域）を識別し、アクセス可能ブロックに対してデータのバックアップを行う。
【０００３】
停電時等には、ＤＣ電源電圧の供給が停電時供給ユニット２２から行われるため、揮発性メモリであるキャッシュメモリ１３に格納されたデータのバックアップ処理には時間的な制約がある。そこで、キャッシュメモリ１３のデータを不揮発性メモリであるフラッシュメモリ１５に書き込むため、２系統のＤＭＡエンジン１４１を使用して２個のフラッシュメモリ１５にデータを並行して書き込む。しかし、エラーの発生により２系統のデータバックアップ時間に差が生じると、遅い方の系統によるデータバックアップが終了しないとデータバックアップ処理が完了しない。又、遅い方の系統によるデータバックアップが上記バックアップ処理の時間的な制約を満足できない場合には、データバックアップ処理が失敗してしまう。
【０００４】
エラーの発生とは、データバックアップを行う際にデータを転送する先のフラッシュメモリ１５のブロックが不良ブロックであることが不良ブロック管理テーブル１４２から認識された場合や、フラッシュメモリ１５へのデータを書き込む際にエラーが検出された場合等を含む。このようなエラーが発生すると、データを転送可能な、即ち、アクセス可能なフラッシュメモリ１５内のブロック（又は、領域）を不良ブロック管理テーブル１４２を参照して探し出す交代処理が必要となる。
【０００５】
図２は、従来のデータバックアップ方法を説明する図である。情報処理装置１のファームウェアは、ＤＭＡを開始する前に、ＣＰＵ１１によりキャッシュメモリ１３の先頭アドレスと、キャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズを各ＤＭＡエンジン１４１に対して指定する。例えば、総データサイズは２ＧＢｉｔであり、ＤＭＡ転送は２ＭＢｙｔｅ単位で行われる。尚、バックアップ処理に必要な制御情報が各転送単位に付加されるので、実際に転送されるデータの転送単位は２×７／８ＭＢｙｔｅである。
【０００６】
図２及び後述する図３では、２系統ＤＭＡ０，ＤＭＡ１のＤＭＡエンジン１４１に対応させて２個のフラッシュメモリ１５をＦｌａｓｈ＃０，Ｆｌａｓｈ＃１で表す。各系統ＤＭＡ０，ＤＭＡ１では、総データサイズの半分の１ＧＢｉｔ分のデータをバックアップする。
【０００７】
尚、フラッシュメモリ１５からバックアップしたデータを読み出す場合には、ファームウェアからキャッシュメモリ１３の先頭アドレスと、フラッシュメモリ１５からキャッシュメモリ１３へ転送する総データサイズを各ＤＭＡエンジン１４１に対して指定する。
【０００８】
図３は、エラーが発生した場合の従来のデータバックアップ方法を説明する図である。各ＤＭＡエンジン１４１は、同じデータサイズが指定されるため、ＤＭＡ中にエラーの発生が多い方の系統によるデータバックアップの方が他方の系統によるデータバックアップより時間がかかり、データバックアップの終了時点にばらつきが生じる。例えば、一方の系統ＤＭＡ０ではエラーが多発してデータバックアップに時間がかかり、他方の系統ＤＭＡ１では殆どエラーが発生せずにデータバックアップが先に終了した場合、情報処理装置１としてのデータバックアップ処理は系統ＤＭＡ０によるデータバックアップが終了した時点となる。図３は、一例として、系統ＤＭＡ０によるデータバックアップではデータＤ１−１のバックアップとデータＤ１−２のバックアップの間にエラーが発生し、系統ＤＭＡ１によるデータバックアップではデータＤ２−１〜Ｄ２−４がエラーを発生することなくバックアップされた場合を示す。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−２００４１５号公報
【特許文献２】特開２００８−１９２０２８号公報
【特許文献３】特開２００４−１３７１９号公報
【特許文献４】特開平１１−３５３２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来のデータバックアップ方法では、複数系統のデータバックアップ時間に差が生じると、最も遅い系統によるデータバックアップが終了しないとデータバックアップ処理が完了しないという問題があった。
【００１１】
そこで、本発明は、複数系統のデータバックアップ時間に差が生じても、データバックアップ処理を短時間に完了可能なデータバックアップ方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一観点によれば、第１の記憶部から第２の記憶部へ転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個の第２の記憶部を用意し、各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップし、各分割領域に対するデータのバックアップを、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了するデータバックアップ方法が提供される。
【００１３】
本発明の一観点によれば、プロセッサと、前記プロセッサの主記憶として機能する揮発性の第１の記憶部と、停電時に転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個設けられた不揮発性の第２の記憶部と、各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップするよう前記第１の記憶部から前記第２の記憶へのデータのバックアップを制御するメモリコントローラを備え、各分割領域に対するデータのバックアップは、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了する情報処理装置が提供される。
【発明の効果】
【００１４】
開示のデータバックアップ方法及び情報処理装置によれば、複数系統のデータバックアップ時間に差が生じても、データバックアップ処理を短時間に完了可能となる。
【図面の簡単な説明】
【００１５】
【図１】情報処理装置の一例を示すブロック図である。
【図２】従来のデータバックアップ方法を説明する図である。
【図３】エラーが発生した場合の従来のデータバックアップ方法を説明する図である。
【図４】本発明の第１実施例における情報処理装置の一例を示すブロック図である。
【図５】第１実施例におけるデータバックアップ方法を説明する図である。
【図６】図５のデータバックアップ処理を説明する図である。
【図７】エラーが発生した場合の第１実施例におけるデータバックアップ方法を説明する図である。
【図８】図７のようなデータバックアップ処理を説明する図である。
【図９】本発明の第２実施例におけるデータバックアップ方法を説明する図である。
【発明を実施するための形態】
【００１６】
開示のデータバックアップ方法及び情報処理装置では、第１の記憶部から第２の記憶部へ転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個の第２の記憶部を用意する。各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップする。各分割領域に対するデータのバックアップは、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了する。又、前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了する。
【００１７】
これにより、２Ｎ系統のデータバックアップ時間に差が生じても、データバックアップ処理を短時間に完了可能となる。
【００１８】
以下に、本発明のデータバックアップ方法及び情報処理装置の各実施例を、図面と共に説明する。
【実施例】
【００１９】
図４は、本発明の第１実施例における情報処理装置の一例を示すブロック図である。図４中、図１と同一部分には同一符号を付し、その説明は省略する。
【００２０】
情報処理装置３１は、図４に示す如く接続されたＣＰＵ１１、ハードディスク装置（ＨＤＤ：Hard Disk Drive）３５、メモリコントローラ１２、キャッシュメモリ１３、フラッシュメモリコントローラ３４、フラッシュメモリ１５、電源供給ユニット２１及び停電時給電ユニット２２を有する。電源供給ユニット２１は、図４中一点鎖線で囲んで示す給電対象１１〜１３，１５，３４，３５に実線の矢印で示すようにＤＣ電源電圧を供給する。ＡＣ電源の停電時等には、電源供給ユニット２１がＤＣ電源電圧を供給しないので、停電時給電ユニット２２が給電対象１１〜１３，１５，３４，３５に破線の矢印で示すようにＤＣ電源電圧を供給する。
【００２１】
ＨＤＤ３５は、複数のディスク装置で形成されており、情報処理装置３１をＲＡＩＤ（Redundant Arrays of Independent Disks）装置のようなストレージ装置として機能させることができる。ホスト装置３６は、情報処理装置３１を例えばストレージ装置として使用する場合に外部からリード要求やライト要求を発行するものである。尚、情報処理装置３１のＨＤＤ３５は省略可能であり、情報処理装置３１がホスト装置３６と接続されていることは必要不可欠ではない。
【００２２】
尚、メモリコントローラ１２とフラッシュメモリコントローラ３４とは、別体である必要はなく、単一のコントローラにより形成しても良い。
【００２３】
この例では、２系統によるデータバックアップが可能でるため、フラッシュメモリ１５が２個設けられている。このため、フラッシュメモリコントローラ３４は、２個のＤＭＡエンジン（又は、ＤＭＡＣ）３４１と、ＤＭＡエンジン３４１によりアクセス可能な不良ブロック管理テーブル３４２及びキャッシュメモリテーブル３４３を有する。不良ブロック管理テーブル３４２は、フラッシュメモリ１５内の不良ブロックに関する情報を格納しており、ＤＭＡエンジン３４１がデータバックアップを行う際に参照される。ＤＭＡエンジン３４１は、不良ブロック管理テーブル３４２を参照することで、フラッシュメモリ１５内の不良ブロックを認識してフラッシュメモリ１５のアクセス可能ブロック（又は、アクセス可能領域）を識別する。キャッシュメモリテーブル３４３は、各アドレスのデータがバックアップ済みであるか否かを示すフラグＦＬＧと、データのバックアップを行ったのが２系統のＤＭＡエンジン３４１のうちどちらであるかを示す情報ＭＫを格納する。フラッシュメモリコントローラ３４は、例えばＦＰＧＡ（Field Programmable Gate Array）により形成可能である。
【００２４】
尚、不良ブロック管理テーブル３４２及びキャッシュメモリテーブル３４３は、フラッシュメモリコントローラ２４内に設けられたメモリ等の不揮発性記憶部により形成可能であるが、いずれもフラッシュメモリコントローラ２４内に設けられている必要はなく、フラッシュメモリコントローラ２４に対して外付けされる記憶部により形成しても良い。即ち、不良ブロック管理テーブル３４２及びキャッシュメモリテーブル３４３は、フラッシュメモリ１５によっても形成可能である。
【００２５】
停電時等には、ＤＣ電源電圧の供給が停電時供給ユニット２２から行われるため、揮発性メモリであるキャッシュメモリ１３に格納されたデータのバックアップ処理には時間的な制約がある。そこで、本実施例では、キャッシュメモリ１３のデータを不揮発性メモリであるフラッシュメモリ１５に書き込むため、２系統のＤＭＡエンジン３４１を使用して２個のフラッシュメモリ１５にデータを並行して書き込む。
【００２６】
図５は、第１実施例におけるデータバックアップ方法を説明する図である。情報処理装置３１のファームウェアは、例えばＨＤＤ３５に格納されており、ＤＭＡを開始する前に、ＣＰＵ１１によりキャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズと、この総データサイズに対応するキャッシュメモリ１３の先頭アドレス及び最終アドレスをＤＭＡエンジン３４１に対して指定する。これにより、ＤＭＡエンジン３４１は、キャッシュメモリ１３の先頭アドレス及び最終アドレスをキャッシュメモリテーブル３４３の総データサイズに合わせた位置に格納する。例えば、総データサイズは２ＧＢｉｔであり、ＤＭＡ転送は２ＭＢｙｔｅ単位で行われる。尚、バックアップ処理に必要な制御情報が各転送単位に付加されるので、実際に転送されるデータの転送単位は２×７／８ＭＢｙｔｅである。
【００２７】
図５及び後述する図６〜図８では、２系統ＤＭＡ０，ＤＭＡ１のＤＭＡエンジン３４１に対応させて２個のフラッシュメモリ１５をＦｌａｓｈ＃０，Ｆｌａｓｈ＃１で表す。２系統ＤＭＡ０，ＤＭＡ１の組み合わせにより、総データサイズの２ＧＢｉｔ分のデータをバックアップする。
【００２８】
図５に示すように、キャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズに相当するキャッシュメモリ１３内の記憶領域を１個の分割領域、即ち、エリアＡとみなして、このエリアＡに対して２個のフラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）を用意する。エリアＡに対して用意した２個のフラッシュメモリ１５の一方（例えば、Ｆｌａｓｈ＃０）にはエリアＡの先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方（例えば、Ｆｌａｓｈ＃１）にはエリアＡの最終アドレスから先頭アドレスの方向へ順次データをバックアップする。エリアＡに対して、２系統のＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）により別々にフラッシュメモリ１５の一方（Ｆｌａｓｈ＃０）及び他方（Ｆｌａｓｈ＃１）にＤＭＡ転送によるデータのバックアップを制御する。
【００２９】
エリアＡに対して、各アドレスのデータをフラッシュメモリ１５にバックアップすると当該アドレスがバックアップ済みであることを示すフラグＦＬＧをキャッシュメモリテーブル３４３に設定し、各方向へ順次データをバックアップする際に次のアドレスに対してフラグＦＬＧが設定されていると当該方向へのデータのバックアップを終了する。又、エリアＡに対して、データのバックアップを行ったのが２系統のＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）のうちどちらであるかを示す情報ＭＫをフラグＦＬＧと共にキャッシュメモリテーブル３４３に格納する。図５中、設定されたフラグＦＬＧはレ点で示し、情報ＭＫは０の場合にデータのバックアップを行ったのが系統ＤＭＡ０であり、１の場合にデータのバックアップを行ったのが系統ＤＭＡ１であることを示す。又、図５において、キャッシュメモリテーブル３４３の情報ＭＫ及びフラグＦＬＧに続くフィールドは、キャッシュメモリ１３のアドレスを示す。
【００３０】
エリアＡに対するデータのバックアップは、このエリアＡ内の全てのアドレスのデータを２個のフラッシュメモリ１５にバックアップした時点で終了し、総データサイズのデータのバックアップ処理が完了する。
【００３１】
尚、フラッシュメモリ１５からバックアップしたデータを読み出す場合には、キャッシュメモリテーブル３４３からフラッシュメモリ１５からキャッシュメモリ１３へ転送する総データサイズ及び転送するデータのアドレスを読み出せば良い。従って、図１の従来例ではバックアップしたデータをフラッシュメモリ１５から読み出すには必要であった、ファームウェアからキャッシュメモリ１３のアドレスの先頭及びフラッシュメモリ１５からキャッシュメモリ１３へ転送する総データサイズを各ＤＭＡエンジン３４１に対して指定する処理を省略することができる。
【００３２】
図６は、図５のデータバックアップ処理を、ファームウェア動作及びフラッシュメモリコントローラ３４の動作（ＦＰＧＡ動作）と共に説明する図である。図６に示すように、ステップＳ１では、停電処理の準備が行われる。これにより、ステップＳＦ１では、ファームウェアがキャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズと、この総データサイズに対応するキャッシュメモリ１３の先頭アドレス及び最終アドレスをＤＭＡエンジン３４１に対して指定する。ステップＳＭ１では、ＤＭＡエンジン３４１がキャッシュメモリ１３の先頭アドレス及び最終アドレスと転送する総データサイズを内部レジスタ（図示せず）に格納するレジスタライト処理を行う。キャッシュメモリ１３の先頭アドレス及び最終アドレスは、キャッシュメモリテーブル３４３の総データサイズに合わせた位置に格納される。
【００３３】
ステップＳ２では、情報処理装置３１がレディー状態となる。レディー状態の時に例えば停電になると、停電時給電ユニット２２が停電を検出可能となり、停電が検出されるとステップＳ３では、停電時給電ユニット２２が情報処理装置３１内の適切な箇所に停電フラグを設定する。これにより、停電処理、即ち、データバックアップ処理が開始される。
【００３４】
ステップＳ４では、キャッシュメモリ１３内のデータをフラッシュメモリ１５へ転送するキャッシュデータ転送、即ち、バックアップ処理を行う。ステップＳＦ２では、ファームウェアがＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）を起動する。ファームウェアからの起動に応答して、ステップＳＭ２−０，ＳＭ２−１では、ＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）がバックアップするべきキャッシュメモリ１３内のデータをフラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）に連続ライトするデータバックアップを並列に行うデータバックアップ処理が実行される。この場合、ＤＭＡエンジン３４１は、不良ブロック管理テーブル２４２を参照することでバックアップするデータの転送先に不良ブロックが存在しないことを認識しており、又、フラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）への連続ライト中にエラーは検出されないので、キャッシュメモリテーブル３４３を順次更新しながらデータバックアップを行う。
【００３５】
ステップＳＦ３−０，ＳＦ３−１では、ファームウェアが対応するＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）によるフラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）へのデータバックアップの完了を待ち、両方のＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）からデータバックアップの完了通知があると、処理はステップＳＦ４へ進む。ステップＳＦ４では、ファームウェアが更新されたキャッシュメモリテーブル３４３の内容を保存する保存処理を行う。これにより、ステップＳ５では、停電処理が完了する。
【００３６】
図７は、エラーが発生した場合の第１実施例におけるデータバックアップ方法を説明する図である。図７中、図５と同一部分には同一符号を付し、その説明は省略する。
【００３７】
エラーの発生とは、ＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）がデータバックアップを行う際にデータを転送する先のフラッシュメモリ１５のブロックが不良ブロックであることが不良ブロック管理テーブル１４２から認識された場合や、フラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）への連続ライト中にエラーが検出された場合等を含む。このようなエラーが発生すると、データを転送可能な、即ち、アクセス可能なフラッシュメモリ１５内のブロック（又は、領域）を不良ブロック管理テーブル３４２を参照して探し出す交代処理が必要となる。このような交代処理自体は周知である。
【００３８】
一方のＤＭＡエンジン３４１（ＤＭＡ０）は、一方のフラッシュメモリ１５（Ｆｌａｓｈ＃０）にはエリアＡの先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、これと並行して、他方のＤＭＡエンジン３４１（ＤＭＡ１）は、他方のフラッシュメモリ１５（Ｆｌａｓｈ＃１）にはエリアＡの最終アドレスから先頭アドレスの方向へ順次データをバックアップする。図７は、一例として、系統ＤＭＡ０によるデータバックアップではデータＤ１−２のバックアップとデータＤ１−３のバックアップの間にエラーが４回発生し、データＤ１−３のバックアップとデータＤ１−４のバックアップの間にエラーが１回発生しており、系統ＤＭＡ１によるデータバックアップではデータＤ２−３のバックアップとデータＤ２−４のバックアップの間にエラーが１回発生している場合を示す。
【００３９】
エリアＡに対して、各アドレスのデータをフラッシュメモリ１５にバックアップすると当該アドレスがバックアップ済みであることを示すフラグＦＬＧをキャッシュメモリテーブル３４３に設定し、各方向へ順次データをバックアップする際に次のアドレスに対してフラグＦＬＧが設定されていると当該方向へのデータのバックアップを終了する。又、エリアＡに対して、データのバックアップを行ったのが２系統のＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）のうちどちらであるかを示す情報ＭＫをフラグＦＬＧと共にキャッシュメモリテーブル３４３に格納する。
【００４０】
エリアＡに対するデータのバックアップは、このエリアＡ内の全てのアドレスのデータを２個のフラッシュメモリ１５にバックアップした時点で終了し、総データサイズのデータのバックアップ処理が完了する。図７の例では、系統ＤＭＡ０によるデータＤ１−４のバックアップが終了し、系統ＤＭＡ１によるデータＤ２−１０のバックアップが終了した時点でエリアＡに対するバックアップ処理が完了する。
【００４１】
本実施例では、各系統ＤＭＡ０，ＤＭＡ１により行うバックアップのデータサイズが同じデータサイズに固定されておらず、いずれのバックアップもキャッシュメモリテーブル３４３で次のアドレスに対してフラグＦＬＧが設定されているまで継続される。このため、ＤＭＡ中にエラーの発生が多い方の系統によるデータバックアップの方が他方の系統によるデータバックアップより時間がかかるような場合であっても、エラーの発生が少ない方の系統によるデータバックアップをその分進めることで、情報処理装置３１全体としてデータバックアップ処理に要する時間を短縮できる。図７の例では、一方の系統ＤＭＡ０ではエラーが多発してデータバックアップに時間がかかるが、他方の系統ＤＭＡ１では殆どエラーが発生せずにデータバックアップをその分進められるので、情報処理装置３１全体としてのデータバックアップ処理を短時間で完了することが可能となる。更に、データバックアップ処理を短時間で完了可能なため、その分停電時給電ユニット２２を形成するコンデンサの規模を小さくしてコストを削減することもできる。
【００４２】
図８は、図７のようなデータバックアップ処理を、ファームウェア動作及びフラッシュメモリコントローラ３４の動作（ＦＰＧＡ動作）と共に説明する図である。図８中、図６と同一部分には同一符号を付し、その説明は省略する。ただし、図８では説明の便宜上、系統ＤＭＡ０ではエラーが発生せず、系統ＤＭＡ１ではエラーが１回発生するものとするが、系統ＤＭ０でエラーが発生した場合は系統ＤＭＡ０に対するのと同様の処理を実行すれば良く、更に、エラーが２回以上発生した場合も各エラーに対して同様の処理を行えば良いことは言うまでもない。
【００４３】
図８において、ステップＳＦ２では、ファームウェアがＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）を起動する。ステップＳＦ２に応答して、ステップＳＭ２−０においてＤＭＡエンジン３４１（ＤＭＡ０）がバックアップするべきキャッシュメモリ１３内のデータをフラッシュメモリ１５（Ｆｌａｓｈ＃０）に連続ライトするデータバックアップを行う処理、及び、ステップＳＦ３−０においてファームウェアが対応するＤＭＡエンジン３４１（ＤＭＡ０）によるフラッシュメモリ１５（Ｆｌａｓｈ＃０）へのデータバックアップの完了を待つ処理は、図６の場合と同様である。
【００４４】
エラーが発生した系統ＤＭＡ１，Ｆｌａｓｈ＃１に対する処理は、次のように行われる。ファームウェアからの起動に応答して、ＳＭ２−１Ａでは、ＤＭＡエンジン３４１（ＤＭＡ１）がバックアップするべきキャッシュメモリ１３内のデータをフラッシュメモリ１５（Ｆｌａｓｈ＃１）に連続ライトするデータバックアップを行うデータバックアップ処理が実行される。この場合、ＤＭＡエンジン３４１（ＤＭＡ１）は、ステップＳＭ１１においてフラッシュメモリ１５（Ｆｌａｓｈ＃１）への連続ライト中にエラーを検出したとする。このようにエラーが検出されると、ステップＳＭ１２においてＤＭＡエンジン３４１（ＤＭＡ１）内の内部レジスタ（図示せず）にエラーの発生したアドレスを含むエラーログを格納すると共に、ファームウェアに対してエラー通知を行う。
【００４５】
ＤＭＡエンジン３４１（ＤＭＡ１）からのエラー通知に応答して、ステップＳＦ１１では、ファームウェアが通知されたエラーに関するエラーログをＤＭＡエンジン３４１（ＤＭＡ１）へ要求する。ステップＳＭ１３では、ＤＭＡエンジン３４１（ＤＭＡ１）がファームウェアから要求されたエラーログを内部レジスタから読み出すレジスタリードを行ってエラーログをファームウェアへ返送するので、ファームウェアは読み出されたエラーログを取得する。
【００４６】
ステップＳＦ１２では、ファームウェアが不良ブロックのチェックをＤＭＡエンジン３４１（ＤＭＡ１）へ要求する。ステップＳＭ１４では、ＤＭＡエンジン３４１（ＤＭＡ１）が不良ブロック管理テーブル３４２を参照するレジスタリードを行い、ファームウェアから要求された不良ブロックのチェックを行って不良ブロックをファームウェアへ返送するので、ファームウェアは不良ブロックのチェックを行う。
【００４７】
ステップＳＦ１３では、ファームウェアがステップＳＦ１１で取得したエラーログから新たに検出された不良ブロックを含める不良ブロックテーブル３４２の更新をＤＭＡエンジン３４１（ＤＭＡ１）へ要求する。ステップＳＭ１５では、ＤＭＡエンジン３４１（ＤＭＡ１）が新たに検出された不良ブロックを不良ブロックテーブル３４２に含めるように内部レジスタへのレジスタライトを行う。
【００４８】
ステップＳＦ１３の後、ステップＳＦ１４では、ファームウェアがＤＭＡエンジン３４１（ＤＭＡ１）を再起動する。ファームウェアからの再起動に応答して、ステップＳＭ２−１Ｂでは、ＤＭＡエンジン３４１（ＤＭＡ１）がバックアップするべきキャッシュメモリ１３内のデータをフラッシュメモリ１５（Ｆｌａｓｈ＃１）に連続ライトするデータバックアップを行うデータバックアップ処理が実行される。この例では、ステップＳＭ２−１Ｂにおいてフラッシュメモリ１５（Ｆｌａｓｈ＃１）への連続ライト中にエラーは検出されないので、キャッシュメモリテーブル３４３を順次更新しながらデータバックアップが行われる。
【００４９】
ＤＭＡエンジン３４１（ＤＭＡ１）は、フラッシュメモリ１５（Ｆｌａｓｈ＃１）への連続ライト中にエラーを検出する度にステップＳＭ１１〜ＳＭ１５を実行し、ファームウェアーは、ステップＳＦ１１〜ＳＦ１４，ＳＦ３−１Ｂを実行する。
【００５０】
ステップＳＦ３−０，ＳＦ３−１Ｂでは、ファームウェアが対応するＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）によるフラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）へのデータバックアップの完了を待ち、両方のＤＭＡエンジン３４１（ＤＭＡ０，ＤＭＡ１）からデータバックアップの完了通知があると、処理はステップＳＦ４１へ進む。ステップＳＦ４１では、ファームウェアが更新された不良ブロック管理テーブル３４２及び更新されたキャッシュメモリテーブル３４３の内容を保存する保存処理を行う。これにより、ステップＳ５では、停電処理が完了する。
【００５１】
尚、ＤＭＡエンジン３４１（ＤＭＡ０）が、不良ブロック管理テーブル２４２を参照することでバックアップするデータの転送先に不良ブロックが存在することを認識した場合、上記の如き交代処理を行うと共に、キャッシュメモリテーブル３４３を順次更新しながらデータバックアップを行うので、転送先に不良ブロックが存在せず交代処理を行わない場合と比較すると、データバックアップに時間がかかる。このように、不良ブロック管理テーブル２４２からバックアップするデータの転送先に不良ブロックが存在することを認識することで発生するエラーと、上記ステップＳＭ１１のように例えばフラッシュメモリ１５（Ｆｌａｓｈ＃１）への連続ライト中にエラーを検出することで発生するエラーとでは、ファームウェア及びＤＭＡエンジン３４が発生したエラーに対して行う処理が異なるが、図７ではこれらのエラーを区別することなく「エラー発生」として図示している。
【００５２】
図９は、本発明の第２実施例におけるデータバックアップ処理を説明する図である。図９中、図５と同一部分には同一符号を付し、その説明は省略する。
【００５３】
上記第１実施例では、キャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズに相当するキャッシュメモリ１３内の記憶領域を１個の分割領域、即ち、エリアＡとみなして、このエリアＡに対して２個のフラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）を用意する。
【００５４】
これに対し、本実施例では、図９に示すように、キャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズに相当するキャッシュメモリ１３内の記憶領域をＮ個の分割領域、即ち、エリアＡ１〜ＡＮとみなして、各エリアＡ１〜ＡＮに対して２個のフラッシュメモリ１５を用意する。図９では、エリアＡ１に対して２個のフラッシュメモリ１５（Ｆｌａｓｈ＃０，Ｆｌａｓｈ＃１）、エリアＡ２に対して２個のフラッシュメモリ１５（Ｆｌａｓｈ＃２，Ｆｌａｓｈ＃３）、...、、エリアＡＮに対して２個のフラッシュメモリ１５（Ｆｌａｓｈ＃２Ｎ−２，Ｆｌａｓｈ＃２Ｎ−１）が用意されている。つまり、２Ｎ系統のＤＭＡエンジン３４１（ＤＭＡ０〜ＤＭＡ２Ｎ−１）がフラッシュメモリコントローラ３４内に設けられている。各エリアＡ１〜ＡＮに対して実行されるデータバックアップは、上記第１実施例におけるエリアＡに対して実行されるデータバックアップと同様であるため、その説明は省略する。
【００５５】
本実施例によれば、キャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズが大きい場合でも、発生したエラーを各エリアＡ１〜ＡＮに対するデータバックアップで効果的に分散させて、情報処理装置全体としてのデータバックアップ処理を短時間で完了することが可能となる。
【００５６】
上記第１及び第２実施例から、データバックアップ方法は、（Ｉ）キャッシュメモリ１３からフラッシュメモリ１５へ転送する総データサイズに相当するキャッシュメモリ１３内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域（又は、エリア）Ａ１〜ＡＮに対して２Ｎ個のフラッシュメモリ１５（Ｆｌａｓｈ＃０〜Ｆｌａｓｈ＃２Ｎ−１）を用意し、（ＩＩ）各分割領域Ａ１〜ＡＮに対して用意した２個のフラッシュメモリの一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップし、（ＩＩＩ）各分割領域Ａ１〜ＡＮに対するデータのバックアップを、当該分割領域内の全てのアドレスのデータを前記２個のフラッシュメモリ１５にバックアップした時点で終了し、前記Ｎ個の分割領域Ａ１〜ＡＮに対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了すれば良いことがわかる。
【００５７】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
第１の記憶部から第２の記憶部へ転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個の第２の記憶部を用意し、
各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップし、
各分割領域に対するデータのバックアップを、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、
前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了する、データバックアップ方法。
（付記２）
各分割領域に対して、各アドレスのデータを第２の記憶部にバックアップすると当該アドレスがバックアップ済みであることを示すフラグを設定し、各方向へ順次データをバックアップする際に次のアドレスに対して前記フラグが設定されていると当該方向へのデータのバックアップを終了する、付記１記載のデータバックアップ方法。
（付記３）
各分割領域に対して、２系統のＤＭＡエンジンにより別々に前記第２の記憶部の一方及び他方にＤＭＡ転送によるデータのバックアップを制御し、
前記フラグを前記ＤＭＡエンジンがアクセス可能なキャッシュメモリテーブルに格納する、付記２記載のデータバックアップ方法。
（付記４）
各分割領域に対して、データのバックアップを行ったのが前記２系統のＤＭＡエンジンのうちどちらであるかを示す情報を前記フラグと共に前記キャッシュメモリテーブルに格納する、付記３記載のデータバックアップ方法。
（付記５）
前記データバックアップ処理を停電時に行う、付記１乃至４のいずれか１項記載のデータバックアップ方法。
（付記６）
前記第１及び第２の記憶部を備えた情報処理装置のファームウェアから前記総データサイズ、及び前記総データサイズに相当する前記第１の記憶部内の記憶領域の先頭アドレス及び終了アドレスを指定する、付記１乃至５のいずれか１項記載のデータバックアップ方法。
（付記７）
前記各分割領域に対するデータのバックアップ時に、前記第２の記憶部内の不良ブロックに関する情報を格納した不良ブロック管理テーブルを参照して前記第１の記憶部内のアクセス可能領域を識別する、付記１乃至６のいずれか１項記載のデータバックアップ方法。
（付記８）
プロセッサと、
前記プロセッサの主記憶として機能する揮発性の第１の記憶部と、
停電時に転送する総データサイズに相当する前記第１の記憶部内の記憶領域をＮ（Ｎは自然数）分割して同サイズのＮ個の分割領域に対して２Ｎ個設けられた不揮発性の第２の記憶部と、
各分割領域に対して用意した２個の第２の記憶部の一方には当該分割領域の先頭アドレスから最終アドレスの方向へ順次データをバックアップすると共に、他方には当該分割領域の前記最終アドレスから前記先頭アドレスの方向へ順次データをバックアップするよう前記第１の記憶部から前記第２の記憶へのデータのバックアップを制御するメモリコントローラを備え、
各分割領域に対するデータのバックアップは、当該分割領域内の全てのアドレスのデータを前記２個の第２の記憶部にバックアップした時点で終了し、
前記Ｎ個の分割領域に対するデータのバックアップが終了した時点で前記総データサイズのデータのバックアップ処理を完了する、情報処理装置。
（付記９）
前記メモリコントローラは、各分割領域に対して、各アドレスのデータを第２の記憶部にバックアップすると当該アドレスがバックアップ済みであることを示すフラグを設定し、各方向へ順次データをバックアップする際に次のアドレスに対して前記フラグが設定されていると当該方向へのデータのバックアップを終了する、付記８記載の情報処理装置。
（付記１０）
前記メモリコントローラは、各分割領域に対して、前記第２の記憶部の一方及び他方にＤＭＡ転送によるデータのバックアップを別々に制御する２系統のＤＭＡエンジンと、
前記フラグを前記ＤＭＡエンジンがアクセス可能に格納するキャッシュメモリテーブルを有する、付記９記載の情報処理装置。
（付記１１）
前記メモリコントローラは、各分割領域に対して、データのバックアップを行ったのが前記２系統のＤＭＡエンジンのうちどちらであるかを示す情報を前記フラグと共に前記キャッシュメモリテーブルに格納する、付記１０記載の情報処理装置。
（付記１２）
前記メモリコントローラは、前記各分割領域に対するデータのバックアップ時に、前記第２の記憶部内の不良ブロックに関する情報を格納した不良ブロック管理テーブルを参照して前記第１の記憶部内のアクセス可能領域を識別する、付記８乃至１１のいずれか１項記載の情報処理装置。
（付記１３）
ＡＣ電源電圧を供給されて前記プロセッサ、前記第１及び第２の記憶部、及び前記メモリコントローラにＤＣ電源電圧を供給する電源供給ユニットと、
前記電源供給ユニットが供給するＤＣ電源電圧で充電され、前記電源供給ユニットがＤＣ電源電圧を供給しないと前記電源供給ユニットの代わりに前記プロセッサ、前記第１及び第２の記憶部、及び前記メモリコントローラにＤＣ電源電圧を供給する停電時給電ユニットを更に備え、
前記メモリコントローラは、前記電源供給ユニットがＤＣ電源電圧を供給しないと、前記プロセッサの制御下で前記データバックアップ処理を行う、付記８乃至１２のいずれか１項記載の情報処理装置。
（付記１４）
前記プロセッサは、ファームウェアから前記総データサイズ、及び前記総データサイズに相当する前記第１の記憶部内の記憶領域の先頭アドレス及び終了アドレスを前記メモリコントローラに対して指定する、付記８乃至１３のいずれか１項記載の情報処理装置。
（付記１５）
前記メモリコントローラは、ＦＰＧＡ（Field Programmable Gate Array）で形成されている、付記８乃至１４のいずれか１項記載の情報処理装置。
【００５８】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００５９】
１１      ＣＰＵ
１２，３４      メモリコントローラ
１３      キャッシュメモリ
１５      フラッシュメモリ
２１      電源供給ユニット
２２      停電時給電ユニット
３１      情報処理装置
３５      ＨＤＤ
３６      ホスト装置
３４１      ＤＭＡエンジン
３４２      不良ブロック管理テーブル
３４３      キャッシュメモリテーブル
【図１】
2010224685.tif 000003
【図２】
2010224685.tif 000004
【図３】
2010224685.tif 000005
【図４】
2010224685.tif 000006
【図５】
2010224685.tif 000007
【図６】
2010224685.tif 000008
【図７】
2010224685.tif 000009
【図８】
2010224685.tif 000010
【図９】
2010224685.tif 000011