(57)【要約】【課題】運用体系やユーザの命令なしに保存装置自体でデータバックアップを所定の方式で行う自動バックアップ機能を有する保存装置を提供する。【解決手段】自動バックアップ機能を有する保存装置は、ホスト装置と連結されてユーザデータを保存する保存装置であって、ユーザデータが保存される記録媒体と、記録媒体のデータ書き込み及び読み出しを制御するコントローラと、を備え、コントローラは、保存装置の遊休時間に、記録媒体に保存されたユーザデータの少なくとも一部を記録媒体の可用領域にバックアップする。【選択図】図９
2011040057.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置と連結されてユーザデータを保存する保存装置であって、
前記ユーザデータが保存される記録媒体と、
前記記録媒体のデータ書き込み及び読み出しを制御するコントローラと、を備え、
前記コントローラは、前記保存装置の遊休時間に、前記記録媒体に保存された前記ユーザデータの少なくとも一部を該記録媒体の可用領域にバックアップすることを特徴とする自動バックアップ機能を有する保存装置。
【請求項２】
前記コントローラは、
前記可用領域で、前記ユーザデータの少なくとも一部がバックアップされる位置を探索し、該探索された位置に前記ユーザデータの少なくとも一部をバックアップすることを特徴とする請求項１に記載の自動バックアップ機能を有する保存装置。
【請求項３】
前記コントローラは、
前記記録媒体を既定の大きさの単位である多数のブロックに区分し、該区分された多数のブロックのうちの第１ブロックに前記ユーザデータが少なくとも一部書き込まれた場合、該第１ブロックをバックアップするバックアップ対象ブロックと判断し、該第１ブロックを前記可用領域の第２ブロックにバックアップすることを特徴とする請求項１に記載の自動バックアップ機能を有する保存装置。
【請求項４】
前記コントローラは、
前記第２ブロックが、前記第１ブロックのバックアップブロックであることを表わすマッチング情報を前記記録媒体又は前記記録媒体に備えられたメモリのうちの少なくとも一つに保存することを特徴とする請求項３に記載の自動バックアップ機能を有する保存装置。
【請求項５】
前記コントローラは、
前記ホストから前記第１ブロックの読み出し命令を受信し、該第１ブロックの読み出しエラーが発生した場合、前記マッチング情報に基づいて、前記第２ブロックに保存されたバックアップデータを前記ホストに提供することを特徴とする請求項４に記載の自動バックアップ機能を有する保存装置。
【請求項６】
前記コントローラは、
前記第２ブロックに第２ユーザデータの書き込み命令を受信した場合、該第２ブロックに前記第２ユーザデータを書き込むことを特徴とする請求項４に記載の自動バックアップ機能を有する保存装置。
【請求項７】
前記コントローラは、
バックアップ対象ブロックのうち、前記第１ブロックをバックアップ優先順位が高くなるように設定することを特徴とする請求項６に記載の自動バックアップ機能を有する保存装置。
【請求項８】
前記コントローラは、
前記第１ブロックのうちの少なくとも一部領域がディフェクトと判断された場合、該少なくとも一部領域を前記記録媒体の他領域にリアサインし、前記第２ブロックのうち、前記少なくとも一部領域に対応するバックアップ領域を、リアサインされた前記他領域にコピーすることを特徴とする請求項４に記載の自動バックアップ機能を有する保存装置。
【請求項９】
前記コントローラは、
前記ユーザデータの少なくとも一部のデータの種類に基づいて、前記可用領域に前記ユーザデータの少なくとも一部をバックアップするか否かを判断するか、又はバックアップされた前記ユーザデータの少なくとも一部を削除することを特徴とする請求項１に記載の自動バックアップ機能を有する保存装置。
【請求項１０】
ホスト装置と連結されてユーザデータを保存する保存装置であって、
前記ユーザデータが保存される記録媒体と、
前記記録媒体のデータ書き込み及び読み出しを制御するコントローラと、を備え、
前記コントローラは、前記記録媒体を既定の単位であるブロックに区分し、該区分されたブロックのうちの何れか一つの第１ブロックに前記ユーザデータが少なくとも一部書き込まれる場合、遊休時間に、該第１ブロックを前記記録媒体の可用領域のうちの何れか一つのブロックである第２ブロックにバックアップすることを特徴とする自動バックアップ機能を有する保存装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ（ｍｅｍｏｒｙ）装置に係り、より詳細には、ホスト（ｈｏｓｔ）又はユーザ（ｕｓｅｒ）のコマンド（ｃｏｍｍａｎｄ）なしに自動でデータをバックアップ（ｂａｃｋｕｐ）する機能を有する保存装置に関する。
【背景技術】
【０００２】
現在、使われているデータのバックアップと復元方式としては、運用体系（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）から提供される機能を用いて保存装置に保存されたデータをバックアップし、バックアップされたデータを用いてデータ復元を行う方式を使う。ユーザが、ホスト（例えば、コンピュータ）にバックアップのための所定のアプリケーション（ａｐｐｌｉｃａｔｉｏｎ）又はプログラム（ｐｒｏｇｒａｍ）を組み込み、組み込まれたアプリケーション又はプログラムを用いて保存装置に保存されたデータの一部又はデータの全部をコピー又は圧縮してバックアップし、必要時にバックアップされたデータを用いてデータ復元を行う。
【０００３】
従来のバックアップ方法を用いてバックアップを行う際、保存装置の一部分は、常にバックアップされたファイルを保存するための領域に割り当てていなければならないので、バックアップのために割り当てられた保存装置の容量が大きくなり、実際の活用度が落ちるという問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、運用体系やユーザの命令なしに保存装置自体でデータバックアップを所定の方式で行う保存装置を提供することにある。また、バックアップのための空間が特定空間に固定されず、ダイナミック（ｄｙｎａｍｉｃ）に空き空間を自ら捜し出してデータをバックアップすることで、保存装置の空間の活用性を高めることができる保存装置を提供することにある。また、運用体系又はユーザが別途にバックアップを行わなくても、保存装置が自らデータをバックアップすることで、当該ファイルが損傷された場合、バックアップされたファイルがある位置を自動で捜して読み出し、保存装置自体の信頼度を高めうる保存装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するためになされた本発明の一特徴による自動バックアップ機能を有する保存装置は、ホスト装置と連結されてユーザデータを保存する保存装置であって、前記ユーザデータが保存される記録媒体と、前記記録媒体のデータ書き込み及び読み出しを制御するコントローラと、を備え、前記コントローラは、前記保存装置の遊休時間に、前記記録媒体に保存された前記ユーザデータの少なくとも一部を該記録媒体の可用領域にバックアップする。
前記コントローラは、前記可用領域で、前記ユーザデータの少なくとも一部がバックアップされる位置を探索し、該探索された位置に前記ユーザデータの少なくとも一部をバックアップすることができる。前記コントローラは、前記記録媒体を既定の大きさの単位である多数のブロック（ｂｌｏｃｋ）に区分し、該区分された多数のブロックのうちの第１ブロックに前記ユーザデータが少なくとも一部書き込まれた場合、該第１ブロックをバックアップするバックアップ対象ブロックと判断し、該第１ブロックを前記可用領域の第２ブロックにバックアップすることができる。
前記コントローラは、前記第２ブロックが、前記第１ブロックのバックアップブロックであることを表わすマッチング情報を前記記録媒体又は前記記録媒体に備えられたメモリのうちの少なくとも一つに保存することができる。前記コントローラは、前記ホストから前記第１ブロックの読み出し命令を受信し、該第１ブロックの読み出しエラーが発生した場合、前記マッチング情報に基づいて、前記第２ブロックに保存されたバックアップデータを前記ホストに提供することができる。前記コントローラは、前記第２ブロックに第２ユーザデータの書き込み命令を受信した場合、該第２ブロックに前記第２ユーザデータを書き込むことができる。前記コントローラは、バックアップ対象ブロックのうち、前記第１ブロックをバックアップ優先順位が高くなるように設定することができる。
前記コントローラは、前記第１ブロックのうちの少なくとも一部領域がディフェクト（ｄｅｆｅｃｔ）と判断された場合、該少なくとも一部領域を前記記録媒体の他領域にリアサイン（ｒｅａｓｓｇｉｎ）し、前記第２ブロックのうち、前記少なくとも一部領域に対応するバックアップ領域を、リアサインされた前記他領域にコピーすることができる。前記コントローラは、前記ユーザデータの少なくとも一部のデータの種類に基づいて、前記可用領域に前記ユーザデータの少なくとも一部をバックアップするか否かを判断するか、又はバックアップされた前記ユーザデータの少なくとも一部を削除することができる。
【０００６】
上記目的を達成するためになされた本発明の他の特徴による自動バックアップ機能を有する保存装置は、ホスト装置と連結されてユーザデータを保存する保存装置であって、前記ユーザデータが保存される記録媒体と、前記記録媒体のデータ書き込み及び読み出しを制御するコントローラと、を備え、前記コントローラは、前記記録媒体を既定の単位であるブロックに区分し、該区分されたブロックのうちの何れか一つの第１ブロックに前記ユーザデータが少なくとも一部書き込まれる場合、遊休時間に、前記第１ブロックを前記記録媒体の可用領域のうちの何れか一つのブロックである第２ブロックにバックアップする。
【発明の効果】
【０００７】
本発明の自動バックアップ機能を有する保存装置によれば、保存装置の遊休時間に保存装置自体がデータバックアップを行うので、ユーザの体感性能を低下させずに保存装置の信頼性を高めることができる。また、保存装置が、バックアップのための空間を予め割り当てておらず、また割り当てられた空間が固定されておらず、ダイナミックにバックアップ空間を活用することができるので、保存空間の使用効率性を高めることができる。また、バックアップ空間の不足時にデータの種類によってバックアップデータを削除することができるので、不要であるか又はバックアップの必要性が低いデータを予め設定することで、バックアップの効率性を高めることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態による自動バックアップ機能を有する保存装置の概略的な構成を示す図である。
【図２】本発明の一実施形態による自動バックアップ機能を有する保存装置がハードディスクドライブである場合を説明するための図である。
【図３】本発明の一実施形態による自動バックアップ機能を有する保存装置がバックアップを進行する過程を説明するための図である。
【図４】本発明の一実施形態による自動バックアップ機能を有する保存装置がバックアップを進行する過程を説明するための図である。
【図５】本発明の一実施形態による自動バックアップ機能を有する保存装置がバックアップを進行する過程を説明するための図である。
【図６】本発明の一実施形態による自動バックアップ機能を有する保存装置がバックアップを進行する過程を説明するための図である。
【図７】本発明の一実施形態による自動バックアップ機能を有する保存装置がバックアップを進行する過程を説明するための図である。
【図８】本発明の一実施形態による自動バックアップ機能を有する保存装置がバックアップを進行する過程を説明するための図である。
【図９】本発明の一実施形態による自動バックアップ機能を有する保存装置１００のバックアップ過程を説明するためのフローチャートである。
【図１０】本発明の一実施形態による自動バックアップ機能を有する保存装置１００のデータ復元過程を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の自動バックアップ機能を有する保存装置を実施するための形態の具体例を、図面を参照しながら詳しく説明する。
【００１０】
図１は、本発明の一実施形態による自動バックアップ機能を有する保存装置の概略的な構成を示す図である。図１を参照すると、自動バックアップ機能を有する保存装置１００は、コントローラ（ｃｏｎｔｒｏｌｌｅｒ）１１０と、記録媒体１２０とを含む。自動バックアップ機能を有する保存装置１００は、自体のファームウェア（ｆｉｒｍｗａｒｅ）を含み、本発明の技術的思想を具現することができるあらゆる種類の保存装置を含みうる。
【００１１】
自動バックアップ機能を有する保存装置１００は、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）、フラッシュ（ｆｌａｓｈ）メモリなどの大容量保存装置に適用可能である。以下、本明細書では、自動バックアップ機能を有する保存装置１００がハードディスクドライブである場合を、一例として説明するが、本発明の権利範囲は、これに限定されず、多様な保存装置に適用可能である。
【００１２】
自動バックアップ機能を有する保存装置１００のコントローラ１１０は、ホスト（例えば、コンピュータなど）２００からユーザデータの書き込み（ｗｒｉｔｅ）命令又は自動バックアップ機能を有する保存装置１００の記録媒体１２０に記録されたデータの読み出し（ｒｅａｄ）命令を受信する。コントローラ１１０は、受信した命令に相応する動作を行うために、記録媒体１２０、或いは記録媒体１２０にデータの書き込み又は読み出しを行うための所定の装置を制御することができる。
【００１３】
図２は、本発明の一実施形態による自動バックアップ機能を有する保存装置がハードディスクドライブである場合を説明するための図である。図２を参照すると、自動バックアップ機能を有する保存装置１００は、コントローラ１１０及び記録媒体１２０だけではなく、ＶＣＭ（Ｖｏｉｃｅ  Ｃｏｉｌ  Ｍｏｔｏｒ）、ＶＣＭ駆動部、スピンドルモータ（ｓｐｉｎｄｌｅ  ｍｏｔｏｒ）、スピンドルモータ駆動部、磁気ヘッド１３０、前置増幅器、Ｒ／Ｗチャンネル（ｃｈａｎｎｅｌ）回路、ホストインターフェース（ｈｏｓｔ  ｉｎｔｅｒｆａｃｅ）、バッファ（ｂｕｆｆｅｒ）などを更に含みうる。従って、コントローラ１１０は、ＶＣＭ、ＶＣＭ駆動部、スピンドルモータ、スピンドルモータ駆動部、磁気ヘッド１３０、前置増幅器、Ｒ／Ｗチャンネル回路、ホストインターフェース、バッファなどを制御することで、本発明の技術的思想を具現することができる。
【００１４】
例えば、コントローラ１１０は、自動バックアップ機能を有する保存装置１００の駆動に必要なさまざまな制御を行う。例えば、記録媒体１２０（例えば、ディスク）にデータ書き込み動作を行うためには、コントローラ１１０は、Ｒ／Ｗチャンネル回路と前置増幅器とを通じて書き込まれるデータを磁気ヘッド１３０に出力し、ＶＣＭ駆動部とスピンドルモータとを制御して、データが記録媒体１２０に書き込まれる位置を制御する。コントローラ１１０が、上述した動作及びそれ以外に広く知られた多様な動作を行うためには、所定のファームウェアが必要であり、ファームウェアは、コントローラ１１０に備えられるか、コントローラ１１０と連結された所定のメモリ（例えば、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）又はＮＯＲ型フラッシュ（ＮＯＲ  ｔｙｐｅ  ｆｌａｓｈ）、図示せず）に保存することができる。ファームウェアは、自動バックアップ機能を有する保存装置１００を提供するための所定のコード（ｃｏｄｅ）を含みうる。このようなハードディスクドライブの動作及び各構成の機能と構造とは広く知られているので、詳細な説明は省略する。
【００１５】
再び図１を参照すると、自動バックアップ機能を有する保存装置１００は、ホスト２００とデータ通信を行いながら、ホスト２００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）又はユーザの命令に相応する動作を行い、動作が完了すると、遊休時間（ｉｄｌｅ  ｔｉｍｅ）に入る。本明細書で、遊休時間とは、本発明の技術的思想を具現するために自動バックアップ機能を有する保存装置１００が動作することと無関係に、ユーザ及び／又はＯＳから受信される命令を行うための動作が完了して、自動バックアップ機能を有する保存装置１００が実質的に何らの動作を行わない時間を意味する。
【００１６】
従って、本発明によれば、遊休時間を用いて自動バックアップ機能を有する保存装置１００自体が、コントローラ１１０と、コントローラ１１０で駆動されるファームウェアを用いて、後述する方法を通じて記録媒体１２０に書き込まれているユーザデータを記録媒体１２０の空き領域、即ち、可用領域にバックアップすることができる。従って、ユーザは、自動バックアップ機能を有する保存装置１００の能力低下なしに、或いは所望の動作を行うのに全く妨害されずに、データバックアップが可能になる。
【００１７】
一方、本明細書で、ユーザデータとは、ホスト２００を通じてユーザが記録媒体１２０に書き込んだデータだけではなく、ホスト２００を駆動するために必要なＯＳのように記録媒体１２０に保存されたあらゆる有意味なデータを意味する。また。可用領域とは、記録媒体１２０にデータが新たに書き込まれる領域を意味し、必ずしも何らのデータも書き込まれていない領域を意味するものではない。実際に、ハードディスクドライブの場合、データの削除を行うと、データを記録媒体１２０から削除するのではなく、データのポインティング（ｐｏｉｎｔｉｎｇ）位置を削除することで、データに上書き（ｏｖｅｒｗｒｉｔｉｎｇ）が行われることを意味することもある。
【００１８】
以下、自動バックアップ機能を有する保存装置１００を提供するためのバックアップ方法について具体的に説明する。自動バックアップ機能を有する保存装置１００は、ユーザに認識させずに自動でユーザデータをバックアップさせうる。従って、実際に、ユーザデータがバックアップされたバックアップデータが保存された領域は、ユーザには実質的に可用領域として認識されうる。従って、バックアップデータが、保存された位置にユーザ及び／又はＯＳの命令によって所定のデータの書き込み命令が行われる場合、自動バックアップ機能を有する保存装置１００は、バックアップデータを破棄し、所定のデータを書き込みさせうる。従って、自動バックアップ機能を有する保存装置１００は、従来のバックアップ方法とは異なって、データのバックアップ位置をダイナミックに変える特徴がある。
【００１９】
従って、コントローラ１１０は、ユーザデータの一部（又は、全部）をバックアップしようとする場合、記録媒体１２０で実質的にバックアップすることができる位置を探索し、探索された位置にバックアップを行う。従って、自動バックアップ機能を有する保存装置１００は、特定の固定された空間にバックアップを行わないので、空間の可用性を高めうる。
【００２０】
一方、コントローラ１１０は、本発明の技術的思想を効率的に具現するために、記録媒体１２０を既定の単位であるブロック単位に区分し、区分されたブロック単位別にバックアップを進行することができる。即ち、自動バックアップ機能を有する保存装置１００は、単位容量であるブロック単位で遊休時間にバックアップを進行することによって、遊休時間が短い場合にも、バックアップを一部でも進行させることができ、記録媒体１２０にデータの可用領域が物理的に連続しないとしても、効率的にバックアップを進行させうる。
【００２１】
図３〜図８は、本発明の一実施形態による自動バックアップ機能を有する保存装置１００がバックアップを進行する過程を説明するための図である。先ず、図３を参照すると、自動バックアップ機能を有する保存装置１００がハードディスクドライブである場合、記録媒体１２０の容量は、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）と表現される。全体ＬＢＡは、既定の所定の単位、即ち、ブロックに分けられうる。図３では、全体記録媒体１２０、即ち、ディスク全体のユーザデータが一つも存在しない初期化状態を意味し、全体記録媒体１２０が十万個のブロックに区分された場合を表わす。
【００２２】
また、コントローラ１１０は、原本データが存在するブロックと原本データがコピーされたブロック、即ち、バックアップブロックの関係を表わすマッチング（ｍａｔｃｈｉｎｇ）情報を記録媒体１２０（例えば、ハードディスクドライブのメンテナンスシリンダー（ｍａｉｎｔｅｎａｎｃｅ  ｃｙｌｉｎｄｅｒ））又は自動バックアップ機能を有する保存装置１００の別途のメモリ（例えば、ＤＲＡＭ、ＳＲＡＭ又はバッファなど）に維持することができる。マッチング情報は、図３に示したように、所定のテーブル（ｔａｂｌｅ）状であるマッチングテーブルに保存されうるが、これに限らない。また、バックアップの効率性のために、各ブロックにデータが維持されるか、及び／又は各ブロックがバックアップブロックであるか、又は原本ブロックであるか否かを更に維持することもできる。
【００２３】
図３では、記録媒体１２０にユーザデータが全く書き込まれていないので、それぞれのブロックに対応するバックアップブロック（Ｃｏｐｉｅｄ  Ｄａｔａ  Ｂｌｏｃｋ）には、いずれも‘０’という情報が書き込まれている。また、それぞれのブロックにデータが保存されているか否かを表わすデータ存在フィールド（Ｄａｔａ  Ｅｘｉｓｔ？）及びそれぞれのブロックがバックアップブロックであるか否かを表わすバックアップ如何フィールド（Ｃｏｐｙ  Ｄａｔａ？）が、マッチングテーブルに更に含まれうる。
【００２４】
コントローラ１１０は、区分された多数のブロックのうちから何れか一つのブロックに、ユーザデータの少なくとも一部が書き込まれた場合、ブロックをバックアップするバックアップ対象ブロックと判断することができる。何れか一つのブロックにユーザデータの少なくとも一部が書き込まれた場合、一実施例として、何れか一つのブロックにデータが満たされた場合だけではなく、一部のみ満たされた場合にも、バックアップを行うバックアップ対象ブロックになるということを意味する。即ち、自動バックアップ機能を有する保存装置１００は、何れか一つのブロックが満たされた場合にのみバックアップを行うこともできるし、一部のみ満たされた場合にも、バックアップを行うことができる。
【００２５】
コントローラ１１０は、何れか一つのブロックにデータが満たされたか、又は一部のみ満たされたかを判断するために多様な方法を使うことができる。例えば、ハードディスクドライブで、ホスト２００から出力されるホスト命令、即ち、書き込み命令に含まれた書き込みアドレス（ａｄｄｒｅｓｓ）についての情報がメンテナンスシリンダーに保存されており、コントローラ１１０は、書き込みアドレスに基づいて何れか一つのブロックがバックアップ対象ブロックであるか否かを判断することができる。勿論、多様な実施形態が可能である。
【００２６】
コントローラ１１０は、何れか一つのブロックがバックアップ対象ブロックであると判断された場合、自動バックアップ機能を有する保存装置１００の遊休時間に、バックアップ対象ブロックを所定の優先順位通りに、又は順次にバックアップすることができる。
【００２７】
図４は、ブロック１からブロック１００１までにユーザデータが書き込まれた場合を一例として表わし、ブロック５０００１から順次にバックアップブロックに設定された場合を表わす。勿論、一実施例として、ブロック１のバックアップブロックがブロック２であり、バックアップブロックが、図４に示したようには連続していないこともある。コントローラ１１０は、バックアップ対象ブロックをバックアップするバックアップブロックを探索するために、バックアップすることができるブロック、即ち、可用領域に属するブロックのうちからブロック番号が最も早い番号を探索するか、二進探索など多様な方式の探索アルゴリズム（例えば、ｓｅｑｕｅｎｔｉａｌ  ｓｅａｒｃｈ、ｂｉｎａｒｙ  ｓｅａｒｃｈなど）を通じて可用領域、即ち、バックアップ可能なブロックのうちから実際にバックアップを行うバックアップブロックを探索することができる。
【００２８】
例えば、図４に示したように、ブロック１からブロック１００１まで順次にユーザデータが書き込まれた場合であれば、コントローラ１１０は、マッチングテーブルのデータ存在フィールド（Ｄａｔａ  Ｅｘｉｓｔ？）に、ブロック１〜ブロック１００１にデータが存在することを表わす情報を書き込むことができる。また、コントローラ１１０が、ブロック１〜ブロック１００１のそれぞれのバックアップ対象ブロックをブロック５０００１〜ブロック５１００１で探索（又は、設定）した場合、コントローラ１１０は、遊休時間に、ブロック１〜ブロック１００１を対応するバックアップ対象ブロック、即ち、ブロック５０００１〜ブロック５１００１にコピーすることができる。そうすると、図４に示したように、ブロック５０００１〜ブロック５１００１に該当するデータ存在フィールド（Ｄａｔａ  Ｅｘｉｓｔ？）には、データが存在することを表わす情報を書き込み、バックアップ如何フィールド（Ｃｏｐｙ  Ｄａｔａ？）には、ブロックがバックアップブロックであることを表わす情報を書き込むことができる。
【００２９】
このような方式でバックアップを行って最大限多くのバックアップを行った場合を、図５に示す。即ち、全体記録媒体１２０の容量のうちから半分の空間、即ち、全体ブロックのうちから半分のブロックにユーザデータが書き込まれた場合、あらゆるユーザデータがバックアップされうる。
【００３０】
図５に示した状態で、新たにユーザデータが書き込まれる場合を、図６に示す。図６を参照すると、図５の状態で、ホスト２００からブロック５０００１、５０００２、及び５０００４に新たなユーザデータを書き込むための書き込み命令をコントローラ１１０が受信した場合、コントローラ１１０は、バックアップブロックであるブロック５０００１、５０００２、及び５０００４のバックアップデータを破棄し、新たなユーザデータを書き込む。そうすると、コントローラ１１０は、マッチングテーブルで、ブロック１、ブロック２、及びブロック４にバックアップブロックが存在しないという情報（例えば、‘−１’）を書き込む。また、新たなユーザデータが書き込まれたブロック５０００１、５０００２、及び５０００４もバックアップを行う可用領域が存在しないので、バックアップブロックが存在しないという情報（例えば、‘−１’）を書き込むことができる。また、ブロック５０００１、５０００２、及び５０００４は、図５ではバックアップブロックであったが、図６では原本データであるので、バックアップ如何フィールド（Ｃｏｐｙ  Ｄａｔａ？）にバックアップブロックではないという情報（例えば、‘Ｎ’）を書き込むことができる。
【００３１】
図６に示したように、自動バックアップ機能を有する保存装置１００は、ユーザやホスト２００の命令と無関係に、空き領域をバックアップ領域として使うので、ホスト２００は、実際にバックアップブロックを空き領域として認識することができる。従って、本発明によれば、あらゆるユーザデータのバックアップを保証するわけではない。しかし、保存装置の大容量化の傾向に伴い、保存装置の大部分の空間が空き空間である場合が多いので、本発明の技術的思想が有用に使われる余地は十分ある。また、バックアップのために圧縮を行わない限り、従来の方法によっても、ユーザデータが記録媒体１２０の容量の半分を超える場合には、あらゆるユーザデータのバックアップを行えるわけではないので、従来の方法に比べてバックアップ効果が落ちると見ることもできない。
【００３２】
一方、図６の状態で、原本データが削除される場合の状態を、図７に示す。図７を参照すると、図６の状態で、ブロック１００１のデータを削除せよとのホスト命令を受信した場合、コントローラ１１０は、ブロック１００１のデータを削除し、マッチングテーブルに、ブロック１００１はデータが存在しないという情報（例えば、データ存在フィールド（Ｄａｔａ  Ｅｘｉｓｔ？）に‘Ｎ’）を書き込み、ブロック１００１のバックアップブロックについての情報、即ち、バックアップブロック（Ｃｏｐｉｅｄ  Ｄａｔａ  Ｂｌｏｃｋ）フィールドで、ブロック５１００１についての情報を削除することができる。勿論、コントローラ１１０は、ブロック５１００１にもデータが存在しないという情報を書き込むことができる。
【００３３】
そうすると、図７に示したように、バックアップ対象ブロック、即ち、バックアップをしなければならないブロックである場合にも、バックアップされていないブロックにはバックアップブロックについての情報（Ｃｏｐｉｅｄ  Ｄａｔａ  Ｂｌｏｃｋフィールド）にバックアップブロックの識別番号が書き込まれるものではない別途の情報（例えば、‘−１’又は‘０’）を書き込むことができる。この際、コントローラ１１０は、バックアップ対象ブロック（例えば、ブロック１、２又はブロック１００１、５１００１）のバックアップブロックについての情報に異なる情報（例えば、、‘−１’又は‘０’）を記録することで、バックアップ対象ブロックのうちのバックアップが行われる優先順位を設定することもできる。
【００３４】
例えば、バックアップブロックについての情報（Ｃｏｐｉｅｄ  Ｄａｔａ  Ｂｌｏｃｋフィールド）に‘０’が記録された場合、如何なるデータでも当該ブロックに書き込まれるということを表わすことができる。例えば、ブロック１又はブロック２のようにバックアップされていたブロックであって、ブロック１又はブロック２のバックアップブロック（ブロック５０００１、５０００２）にユーザデータが書き込まれながら、バックアップブロックが削除された場合、バックアップブロックについての情報に‘−１’を書き込むことができる。‘−１’は、バックアップ対象ブロックのうちの最も先にバックアップを行うブロックを表わすことができる。一方、ブロック１００１又はブロック５１００１のように新たなデータが書き込まれる場合、バックアップする可用空間がないので、ブロック１００１又はブロック５１００１に新たなデータが書き込まれる場合、バックアップブロックについての情報に‘−２’を書き込むことができる。これは、二番目に優先的にバックアップするブロックを意味する。
【００３５】
コントローラ１１０は、バックアップ対象ブロックの優先順位を所定の基準によって設定することで、バックアップ空間の不足時に予め設定された基準に合う効率的なバックアップアルゴリズムと優先順位を提示することができる。
【００３６】
図８を参照すると、図７の状態で、ブロック１００１又はブロック５１００１に新たなユーザデータが書き込まれていない状態で、自動バックアップ機能を有する保存装置１００が再び遊休状態に進入すれば、コントローラ１１０は、優先順位が高いバックアップ対象ブロック（例えば、ブロック１とブロック２）をバックアップすることができ、ブロック１とブロック２とのバックアップブロックは、ブロック１００１とブロック５１００１とになりうる。従って、コントローラ１１０は、図８のようなマッチングテーブルを生成することができる。
【００３７】
上述したように、自動バックアップ機能を有する保存装置１００によれば、コントローラ１１０がホスト２００から特定ブロック又は特定ブロックの一部分に該当する領域に対するデータ読み出し命令を受信した場合、データの読み出し動作を行うことができる。読み出しデータは、コントローラ１１０によってホスト２００に伝送することができる。ホスト２００によって伝送されたデータにエラーが発生した場合、コントローラ１１０は、マッチングテーブルに含まれる情報、即ち、マッチング情報に基づいて、データのバックアップブロックを判断し、データに相応するバックアップブロックに保存された情報のうち少なくとも一部をホスト２００に提供することができる。そして、バックアップブロックに保存された情報を原本データがあった特定ブロックに上書きすることによって、自動でデータの復元を行うことができる。一実施例として、読み出しエラーの発生をコントローラ１１０によって判断することもでき、この際にも、類似した過程を経てデータの復元が行われる。
【００３８】
コントローラ１１０は、特定ブロックのうちから少なくとも一部領域をディフェクト（ｄｅｆｅｃｔ）と判断した場合、少なくとも一部領域を記録媒体の他領域に再割り当て（ｒｅａｓｓｇｉｎ）し、特定ブロックのバックアップブロックのうちから少なくとも一部領域に対応するバックアップ領域を再割り当てされた他領域にコピーすることもできる。コントローラ１１０がディフェクトと判断する場合は、具現例によって多様であり得る。例えば、特定領域で読み出しエラーが反復して発生する場合、コントローラ１１０は、特定領域をディフェクトと判断し、既定の回数以上に読み出しエラーが発生する場合、特定領域をディフェクトと判断することもできる。
【００３９】
自動バックアップ機能を有する保存装置１００は、記録媒体１２０にディフェクトが発生した場合、自動でディフェクト領域を再割り当てし、再割り当てされた領域にバックアップされたデータを復元することで、記録媒体１２０の信頼性を高めうる。一方、自動バックアップ機能を有する保存装置１００は、バックアップする空間が不足した場合、記録媒体１２０にバックアップする空間を確保するために、データの種類によって、バックアップされたデータを削除することもできる。或いは、保存装置１００は、予め原本データの種類によって、バックアップ如何を判断してバックアップを行わないこともある。例えば、ユーザデータが、動画や音楽のようなコンテンツである場合など、バックアップの重要性が低いと判断するならば、コントローラ１１０は、ユーザデータのファイル名に基づいてユーザデータの種類を認識するか、その他の多様な方法でユーザデータの種類を認識し、ユーザデータが、既定の種類のデータである場合、バックアップを行わないか、バックアップする場合にも、ユーザデータのバックアップブロックから削除を行ってバックアップ空間を増やすことができる。勿論、このような過程も、自動バックアップ機能を有する保存装置１００の遊休時間に行われる。コントローラ１１０が、バックアップ空間が不足していると判断する場合、全体容量対比既定の比率以上の空間が使われる場合であり得る。
【００４０】
上述したような本発明を、フローチャートを用いて説明すると、次の通りである。図９は、本発明の一実施形態による自動バックアップ機能を有する保存装置１００のバックアップ過程を説明するためのフローチャートである。図９を参照すると、コントローラ１１０は、ユーザ又は運用体系（ＯＳ）の命令によってＮ番目のブロックにデータを書き込む（ステップＳ１０）。コントローラ１１０は、マッチングテーブルにＮ番目のブロックにデータが書き込まれたことをマスキング（ｍａｓｋｉｎｇ：記録）する（ステップＳ２０）。その後、自動バックアップ機能を有する保存装置１００が遊休時間に進入すると（ステップＳ３０）、コントローラ１１０は可用領域にあるブロック、即ち、ユーザデータが書き込まれていないブロックのうちから何れか一つを探索し、探索されたブロックであるＢブロックに、Ｎブロックをコピーする（ステップＳ４０）。そして、ＢブロックとＮ番目のブロックとの関係についてのマッチング情報を、図３〜図８で説明したように記録する（ステップＳ５０）。
【００４１】
仮に、記録媒体１２０の容量が満たされた場合（ステップＳ６０）、コントローラ１１０は、ホスト２００から受信したデータ削除命令をモニタリングしながら（ステップＳ７０）、特定Χブロックのデータがいずれも削除された場合（ステップＳ８０）、Χブロックに関連して記録された情報をマッチングテーブルで初期化する（ステップＳ９０）。初期化するということは、図６又は図７で説明したように、Χブロックが削除された後のバックアップ関係又は優先順位を反映できるようにマッチングテーブルを修正することを意味する。
【００４２】
図１０は、本発明の一実施形態による自動バックアップ機能を有する保存装置１００のデータ復元過程を説明するためのフローチャートである。図１０を参照すると、コントローラ１１０は、Ｎブロックを読み取る（ステップＳ１１０）。Ｎブロックで読み出しエラーが発生した場合（ステップＳ１２０）、コントローラ１１０は、マッチングテーブルを参照して、Ｎブロックのバックアップブロックが如何なるブロックであるかを判断する。ＮブロックのバックアップブロックがＢブロックである場合、コントローラ１１０は、Ｂブロックのバックアップデータを読み出すことで、読み出しエラーを避けることができる（ステップＳ１３０）。そして、コントローラ１１０は、Ｎブロックが復元されなければならないブロックであることをマッチングテーブル又は所定の位置に記録する（ステップＳ１４０）。
【００４３】
自動バックアップ機能を有する保存装置１００が遊休時間に進入すれば、復元されなければならないブロックであると表示されたＮブロックはＢブロックのデータをコピーすることで、復元される（ステップＳ１６０）。コントローラ１１０は、再びＮブロックに読み出しエラーが発生するか否かを確認又はスキャン（ｓｃａｎ）することができ（ステップＳ１７０）、再び読み出しエラーが発生した場合、Ｎブロックに相応する物理的記録媒体にディフェクトが発生したと判断し、Ｎブロックでエラーが発生した位置をリアサインした後、リアサインした位置にバックアップデータをコピーすることで、ディフェクト処理を行う（ステップＳ１９０）。
【００４４】
本発明の実施形態による自動バックアップ機能を有する保存装置１００を提供するための方法は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現することが可能である。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、ハードディスク、フロッピー（登録商標）ディスク、光データ保存装置などがある。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式によりコンピュータで読み取り可能なコードが保存されて実行可能である。そして、発明を具現するための機能的な（ｆｕｎｃｔｉｏｎａｌ）プログラム、コード及びコードセグメント（ｃｏｄｅ  ｓｅｇｍｅｎｔ）は、本発明が属する技術分野のプログラマーによって容易に推論されうる。
【００４５】
以上、本発明の実施形態について詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００４６】
１００    自動バックアップ機能を有する保存装置
１１０    コントローラ
１２０    記録媒体
１３０    磁気ヘッド
２００    ホスト
【図１】
2011040057.tif 000003
【図２】
2011040057.tif 000004
【図３】
2011040057.tif 000005
【図４】
2011040057.tif 000006
【図５】
2011040057.tif 000007
【図６】
2011040057.tif 000008
【図７】
2011040057.tif 000009
【図８】
2011040057.tif 000010
【図９】
2011040057.tif 000011
【図１０】
2011040057.tif 000012