(57)【要約】【課題】シーケンシャルリードの速度を早める情報記憶装置を提供する。【解決手段】情報記憶装置１は、同時に書込み可能な複数の記憶装置が其々有する記憶領域から構成される、論理的に単一な第１の記憶領域１５と、複数の記憶装置の記憶領域に第１の記憶領域とは別に確保される第２の記憶領域１６と、第１の記憶領域に書込むデータを一時的に記憶する書込バッファ１７ｄと、書込バッファに記憶されたデータを、第１の記憶領域の空領域に、複数の記憶装置に振り分けて同時に書込む書込手段と、第１の記憶領域に記憶されたデータの物理アドレスを得るアドレス管理テーブルを記憶する不揮発性メモリ１７と、アドレス管理テーブルを参照して第１の記憶領域に格納されたデータを読込む読込手段と、第１の記憶領域に記憶されたデータを、第２の記憶領域に移すデータ移行手段とを備える。【選択図】      図１
2008134720.tif 000002
【特許請求の範囲】
【請求項１】
同時に書込み可能な複数の記憶装置が其々有する記憶領域から構成される、論理的に単一な第１の記憶領域と、
前記複数の記憶装置の記憶領域に前記第１の記憶領域とは別に確保される第２の記憶領域と、
前記第１の記憶領域に書込むデータを一時的に記憶する書込バッファと、
前記書込バッファに記憶されたデータを、前記第１の記憶領域の空領域に、前記複数の記憶装置に振り分けて同時に書込む書込手段と、
前記第１の記憶領域に記憶されたデータの物理アドレスを得るアドレス管理テーブルを記憶する不揮発性メモリと、
前記アドレス管理テーブルを参照して前記第１の記憶領域に格納されたデータを読込む読込手段と、
前記第１の記憶領域に記憶されたデータを、前記第２の記憶領域に移すデータ移行手段と、
を備えることを特徴とする情報記憶装置。
【請求項２】
前記書込バッファは、前記不揮発性メモリの記憶領域の一部として構成されることを特徴とする請求項１に記載の情報記憶装置。
【請求項３】
前記不揮発性メモリは、前記第１記憶領域の其々のストライプが使用中か空きかを示すストライプ情報を記憶することを特徴とする請求項１に記載の情報記憶装置。
【請求項４】
前記不揮発性メモリは、新たなストライプが作成されるごとにインクリメントされるタイムスタンプを記憶することを特徴とする請求項１に記載の情報記憶装置。
【請求項５】
前記アドレス管理テーブルの一部は前記不揮発性メモリに記憶され、前記アドレス管理テーブルの残りは、前記複数の記憶装置の記憶領域に記憶されることを特徴とする請求項１に記載の情報記憶装置。
【請求項６】
前記データ移行手段は、前記書込手段による書込み、及び前記読込手段による読込みを行うためのコマンドが入力されていない時に、前記第１の記憶領域に記憶されたデータの前記第２の記憶領域への移行作業を開始することを特徴とする請求項１記載の情報記憶装置。
【請求項７】
請求項１記載の情報記憶装置において、
前記アドレス管理テーブルを参照し、前記第１の記憶領域内に記憶されている各データの内、最も新しいデータを集めて、前記第１の記憶領域の空領域に、前記複数の記憶装置に振り分けて記憶させ、前記データが書込まれていた領域を空領域として確保するデータ整理を行うデータ整理手段をさらに備えることを特徴とする情報記憶装置。
【請求項８】
前記データ整理手段は、前記書込手段による書込み、及び前記読込手段による読込みを行うためのコマンドが入力されていない時に、データ整理を開始することを特徴とする請求項７記載の情報記憶装置。
【請求項９】
前記第２の記憶領域内に記憶されたデータ量の増加に応じて、前記第１の記憶領域を減らし、前記第２の記憶領域に割り当てることを特徴とする請求項１記載の情報記憶装置。
【請求項１０】
前記第２の記憶領域内に記憶されたデータ量が予め定められた所定量を超えたときに、前記第１の記憶領域の空領域を、前記第２の記憶領域に割り当てることを特徴とする請求項９記載の情報記憶装置。
【請求項１１】
前記第１の記憶領域及び前記第２の記憶領域は、ＲＡＩＤ５を構成することを特徴とする請求項１記載の情報記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば複数の記憶装置を有する情報記憶装置に関する。
【背景技術】
【０００２】
従来より、ＬＦＳ（Ｌｏｇ−Ｓｔｒｕｃｔｕｒｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ、ログ構造化ファイルシステム）と呼ばれるデータ書込み方法が提案されている（例えば、特許文献１参照）。ＬＦＳとは、更新データを用意した書込バッファに蓄積し、この蓄積した更新データを旧データを書き換えることなく、ディスクドライブ内の空領域に一括して書込む方法である。このようなＬＦＳを使用する手法では通常、論理アドレスと、当該論理アドレスの最も新しいデータが記憶された物理アドレスとの対応付けるアドレス変換テーブルが必要となる。
【０００３】
特許文献１では、通常のＰＣ等でソフトウェアＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｒｅｎｓｉｖｅ  Ｄｉｓｋｓ）が構成するために、データをストライプとして書込む際に、当該ストライプ中に論理アドレスタグブロックと呼ばれるタイムスタンプ情報を埋め込んだ上でディスク装置に書込んでいる。このようにすることで、全ストライプに対して論理アドレスタグブロックを読込めば論理アドレスと物理アドレスとの対応がわかるようになるので、電源が不意にオフとなった場合でもアドレス変換テーブルを復活させることができる。
【０００４】
また一方で、ＬＦＳでは、更新されたデータが新たな空領域に書込まれることとなるので、論理アドレスとしては連続したデータであっても、当該データの一部が更新されると更新部分は別の物理アドレスに書込まれることとなり、論理アドレスとして連続したデータを読込む場合（シーケンシャルリード）にも実際にはランダムアクセスとなり、読込時間が長くなるという課題があった。
【０００５】
そこで、特許文献２ではシーケンシャルリードがランダムアクセスになってしまうというＬＦＳの構造的な問題を回避するために、ディスクの領域をＬＦＳと、従来型のファイルシステム構造とに論理的に分離し、ＬＦＳ領域をあたかもメモリキャッシュのように利用する技術が知られている。
【特許文献１】特開平１１−１９４８９９号公報
【特許文献２】米国特許第５７５４８８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２記載の手法は、主にディスクアレイなどの専用のディスクシステムを対象としたものであって、ＰＣでソフトウェアＲＡＩＤを構成する場合に当該手法を実現するためのハードウェアアーキテクチャをどのように構成すべきかが課題であった。
【０００７】
そこで本発明は、ハードウェアアーキテクチャを適切にすることで、シーケンシャルリードの速度を早めることのできる情報記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の情報記憶装置は、同時に書込み可能な複数の記憶装置が其々有する記憶領域から構成される、論理的に単一な第１の記憶領域と、複数の記憶装置の記憶領域に第１の記憶領域とは別に確保される第２の記憶領域と、第１の記憶領域に書込むデータを一時的に記憶する書込バッファと、書込バッファに記憶されたデータを、第１の記憶領域の空領域に、複数の記憶装置に振り分けて同時に書込む書込手段と、第１の記憶領域に記憶されたデータの物理アドレスを得るアドレス管理テーブルを記憶する不揮発性メモリと、アドレス管理テーブルを参照して第１の記憶領域に格納されたデータを読込む読込手段と、第１の記憶領域に記憶されたデータを、第２の記憶領域に移すデータ移行手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ハードウェアアーキテクチャを適切にすることで、シーケンシャルリードの速度を早める情報記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の情報記憶装置について、図面を参照しながら説明する。
【実施例１】
【００１１】
図１は、本発明の情報記憶装置の実施例に係るパーソナルコンピュータ（以下、ＰＣ）の構成を示す図である。ＰＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、メモリ１１と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１２、１３、１４と、不揮発性メモリ１７とから構成され、各構成要素はバスにより接続されている。なお、当該技術に習熟している技術者であれば、本実施形態に関わるパーソナルコンピュータの不揮発性メモリ１７はバスに接続されたもののみならず、ＨＤＤ１２の内部に構成されたものやメモリ１１を制御するメモリコントローラ装置の内部に構成されたもの、あるいはバスに接続されたコントローラ装置に不揮発性メモリを内蔵するものであっても実施可能である。
【００１２】
ＨＤＤ１２、１３、１４は、ＣＰＵ１０の制御の下、同時に書込み及び読込みが可能な記憶装置である。ＨＤＤ１２は、マザーボードのサウスブリッジ（不図示）に接続されており、ＣＰＵ１０により制御される。
尚、ＨＤＤ１２は記憶領域Ａ１及び記憶領域Ａ２、ＨＤＤ１３は記憶領域Ｂ１及びＢ２、ＨＤＤ１４は記憶領域Ｃ１及びＣ２を其々の記憶領域として有している。記憶領域Ａ１、Ｂ１、Ｃ１はＲＡＩＤ５のＤＣＤ（Ｄｉｓｋ  Ｃａｃｈｉｎｇ  Ｄｉｓｋ）領域１５を構成し、記憶領域Ａ２、Ｂ２、Ｃ２はＲＡＩＤ５の通常記憶領域１６を構成する。尚、ＤＣＤ領域１５は、通常記憶領域１６にデータを書込むまでに一時的にデータ記憶させる、キャッシュの役割を果たす記憶領域であり、ユーザから見える記憶領域は通常記憶領域１６のみである。
【００１３】
ＤＣＤ領域１５は、通常記憶領域１６へデータを移行する前に、一時的にデータが記憶される記憶領域である。当該領域はＲＡＩＤ５を構成しており、また、ＬＦＳによりデータの書込みが行われる。ＬＦＳでは、ある論理アドレスのデータＡをデータＡ’に書き換える際に、データＡ’を書込みバッファに蓄積し、データＡが記憶された物理アドレスのデータを書き換えることなく、ＤＣＤ領域１５の空領域に、書込みバッファに蓄積された他のデータと共にデータＡ’を１つのストライプとして記憶させる。これにより、データＡや他の書換前の旧データが記憶された物理アドレスを其々シークすることなく、当該データを一括して書込むことができるようになり、書き込み速度を著しく向上させることができる。尚、本実施例ではＤＣＤ領域１５はＲＡＩＤ５を構成しているが、ＲＡＩＤ１で構成しても構わない。
【００１４】
通常記憶領域１６は、ＣＰＵ１０の制御の下、ＤＣＤ領域１５に記憶されたデータを移行して記憶する記憶領域であり、ＲＡＩＤ５を構成している。データ移行後には、ＤＣＤ領域１５から当該データは削除される。この通常記憶領域１６では、ＬＦＳは構成しておらず、データ書換時には通常行われているように、同一の論理アドレスのデータを更新する際には、旧データの上から新データを書込む。
【００１５】
ＣＰＵ１０は、ＨＤＤ１２乃至１４へのデータの書込み及び読込み、若しくはＤＣＤ領域１５から通常記憶領域１６へのデータ移行、又は後述するＤＣＤ領域１５内でのストライプの整理等の各種処理を制御する。
【００１６】
メモリ１１は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の記憶媒体であり、ＣＰＵ１０による処理のワークスペースとして用いられる。
【００１７】
不揮発性メモリ１７は、例えば１〜２メガバイトの記憶容量を持つ不揮発性の半導体メモリであり、その記憶内容を高速で読出し及び書込み可能なキャッシュ装置である。不揮発性メモリ１７は、タイムスタンプ１７ａ、アドレス変換テーブル１７ｂ、ストライプ情報１７ｃ、書込バッファ１７ｄを有する。不揮発性メモリ１７は、これらの記憶内容を保持するために電源供給を必要としないため、不意に電源がオフになってもこれらの記憶内容を保持することができる。
【００１８】
この不揮発性メモリ１７は、マザーボードのサウスブリッジ（不図示）に接続されており、ＰＣＩバス（Peripheral Component Interconnect Bus）に接続されたディスク装置としてＣＰＵ１０により認識される。よって、通常のメモリ１１のようなメモリ空間からは隔離されており、アプリケーションの暴走などによりデータが破壊されることがないため、データを保存する上でセキュリティが極めて良好である。但し、この不揮発性メモリ１７が配置される場所は、特に限定されるものではなく、マザーボードのサウスブリッジの内部に組み込んでもよいし、ＨＤＤ１２乃至１４の内部に組み込んでもよい。尚、この不揮発性メモリ１７は、現状では広く一般に知られるデバイスではなく、本実施例はこの新規開発された不揮発性メモリ１７の使用方法を提案するものである。
【００１９】
タイムスタンプ１７ａは、書込みバッファ１７ｄに記憶されたデータをＤＣＤ領域１５に書込む毎にインクリメントされるタイムスタンプデータである。
【００２０】
アドレス変換テーブル１７ｂは、ＤＣＤ領域に記憶されたデータについての、論理アドレスと、実際にデータが記憶されている物理アドレスとの対応が記載されたテーブルである。書込みバッファ１７ｄからＤＣＤ領域１５にデータが書込まれる際、及びＤＣＤ領域１５から通常記憶領域１６にデータを移行する際にアドレス変換テーブル１７ｂは更新される。ＣＰＵ１０がＤＣＤ領域１５内に記憶されたデータを読込む際には、当該アドレス変換テーブル１７ｂを参照することにより、其々のデータが記憶されている物理アドレスを知ることができるので、ＣＰＵ１０は各データを読込むことができるようになる。
【００２１】
図２は、アドレス変換テーブル１７ｂの例を示す図である。其々の論理アドレスに対して、その論理アドレスに割り当てられたデータが記憶されているＤＣＤ領域１５内の物理アドレスが記載されている。図２の例では、論理アドレスＬ２に記憶されたデータの物理アドレスはＰ５３であり、論理アドレスＬ４に記憶されたデータの物理アドレスはＰ２、論理アドレスＬ５に記憶されたデータの物理アドレスはＰ５１である。
【００２２】
尚、図２において論理アドレスＬ１及びＬ３に対応する物理アドレスが記載されていないが、これは論理アドレスＬ１及びＬ３にはデータが記憶されていないということである。
【００２３】
尚、不揮発性メモリ１７に記憶されるアドレス変換テーブル１７ｂは、アドレス変換テーブル１７ｂの一部であり、アドレス変換テーブル１７ｂの残り部分はＨＤＤ１２乃至１４に記憶されている。すなわち、ストライプ書込み時に不揮発性メモリ１７のアドレス変換テーブル１７ｂを更新し、必要に応じてＬＲＵ（Least Recently Used）方式でアドレス変換テーブル１７ｂをＨＤＤ１２乃至１４の記憶領域にページングする。
【００２４】
ストライプ情報１７ｃは、ＤＣＤ領域の其々のストライプが、使用中か空きストライプかを知るためのテーブルである。書込みバッファ１７ｄからＤＣＤ領域１５にデータが書込まれる際、若しくはＤＣＤ領域１５内でのストライプの整理の際、又はＤＣＤ領域１５から通常記憶領域１６へのデータの移行の際にストライプ情報１７ｃは更新される。
【００２５】
図３は、ストライプ情報１７ｃの例を示す図である。図３の例では、各ストライプが使用済みか否かを１又は０で示している。図３の例では、ストライプＳＴ１、ＳＴ２、ＳＴ３の値が１であるので使用済み、ストライプＳＴ１、ＳＴ４の値が０であるので未使用（空領域を構成）であることがわかる。
【００２６】
書込みバッファ１７ｄは、ＣＰＵ１０がＨＤＤ１２乃至１４にデータを書込む前に、データを一時的に記憶しておくバッファである。書込みバッファ１７ｄに記憶されたデータは、所定量に達した際に、ストライプとしてＤＣＤ領域１５に書込まれる。
【００２７】
次に、ＣＰＵ１０がＤＣＤ領域１５へデータを書込む際の処理を図４乃至図６を参照しながら説明する。図４は、ＤＣＤ領域１５へデータを書込む際の処理を説明するための図である。
【００２８】
ＣＰＵ１０は、ＨＤＤ１２乃至１４に書込むデータを、所定長の論理ブロックに分割した上で、まず書込みバッファ１７ｄに格納させる。
書込みバッファ１７ｄ上のデータが論理ブロックＫ×Ｎ個（Ｋ：１台のＨＤＤに同時に書込む論理ブロックであり図４の例では４個、Ｎ：ＨＤＤの台数であり本実施例では３台）に達すれば、ＣＰＵ１０はこのＫ×Ｎ個の論理ブロックのデータを一つのストライプとし、ＨＤＤ１２乃至ＨＤＤ１４に其々論理ブロック４個ずつとなるように振り分けて、同時にＤＣＤ領域１５に書込む。
【００２９】
図５は、書込みバッファ１７ｄからＤＣＤ領域１５へデータを書込む際のアドレス変換テーブル１７ｂの更新について説明するための図である。尚、この図において、１台のＨＤＤに同時に書込む論理ブロック数（上記Ｋ）は２個であるものとする。
【００３０】
まず、ＣＰＵ１は、書込みバッファ１７ｄに記憶されたデータを、ＨＤＤ１２乃至１４に振り分けてストライプＳＴ１として書込む。このストライプＳＴ１に含まれているデータは其々論理アドレスＬ２、Ｌ４、Ｌ７、Ｌ１０、Ｌ１５、Ｌ１８として記憶されるデータであり、其々実際に記憶される領域のアドレスはＰ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６であるものとする。
【００３１】
この際、ＣＰＵ１０は、アドレス変換テーブル１７ｂを、論理アドレスＬ２に対して物理アドレスＰ１、論理アドレスＬ４に対して物理アドレスＰ２、論理アドレスＬ２に対して物理アドレスＰ３、論理アドレスＬ１０に対して物理アドレスＰ４、論理アドレスＬ１５に対して物理アドレスＰ５、論理アドレスＬ１８に対して物理アドレスＰ６が対応づくようにアドレス変換テーブル１７ｂを更新する。
【００３２】
次に、ＣＰＵ１０が書込みバッファ１７ｄに新たに記憶されたデータをＨＤＤ１２乃至１４に振り分けてストライプＳＴ２として書込むことを考える。ストライプＳＴ１と、ストライプＳＴ２とは、ＨＤＤ１２乃至１４上で異なる位置に存在するストライプであり、即ちストライプＳＴ１のデータを上書きするものではない。
【００３３】
このストライプＳＴ２に含まれているデータは其々論理アドレスＬ１、Ｌ７、Ｌ８、Ｌ１０、Ｌ１１、Ｌ１３として記憶されるデータであり、其々実際に記憶される領域のアドレスはＰ７、Ｐ８、Ｐ９、Ｐ１０、Ｐ１１、Ｐ１２であるものとする。
【００３４】
この際、ＣＰＵ１０は、アドレス変換テーブル１７ｂを、論理アドレスＬ１に対して物理アドレスＰ７、論理アドレスＬ８に対して物理アドレスＰ９、論理アドレスＬ１１に対して物理アドレスＰ１１を対応付けて新たにアドレス変換テーブル１７ｂに記載すると共に、論理アドレスＬ７に対応付ける物理アドレスの値をＰ３からＰ８に、論理アドレスＬ１０に対応付ける物理アドレスの値をＰ４からＰ１０に更新する。即ち、論理アドレスＬ７及びＬ１０のデータは、其々ストライプＳＴ１内のデータからストライプＳＴ２内の新たなデータに更新されたということであり、換言すれば、ストライプＳＴ１内の物理アドレスＰ３及びＰ４に記憶されたデータは、古いデータであり不要ということになる。
【００３５】
図６を参照しながら、ＣＰＵ１０がＤＣＤ領域１５にデータを書込む際の処理の流れについて説明する。図６は、ＣＰＵ１０がＤＣＤ領域１５にデータを書込む際の処理の流れを示す図である。
【００３６】
ＣＰＵ１０は、まず書込コマンドが入力されたか否かを判断する（Ｓ６０１）。書込コマンドが入力されていないときには（Ｓ６０１のＮｏ）、Ｓ６０１に戻り、書込コマンドの入力を待つ（Ｓ６０１）。
【００３７】
書込コマンドが入力されたときには（Ｓ６０１のＹｅｓ）、ＨＤＤ１２乃至１４に書込むべきデータを、論理ブロックに分割して書込みバッファ１７ｄに記憶させる（Ｓ６０２）。
【００３８】
さらに、ＣＰＵ１０は、書込みバッファ１７ｄ内のデータが論理ブロックＫ×Ｎ個（Ｋ：１台のＨＤＤが同時に書込可能な論理ブロック数、Ｎ：ＨＤＤの台数）に達しているかどうかを判定する（Ｓ６０３）。書込みバッファ１７ｄ内のデータがＫ×Ｎ個に達していない場合には、Ｓ６０１に戻り、新たな書込コマンドの入力を待つ。
【００３９】
書込みバッファ１７ｄ内のデータが論理ブロックＫ×Ｎ個に達した場合には（Ｓ６０３のＹｅｓ）、ＣＰＵ１０は、書込みバッファ１７ｄ内のデータからストライプを作成し、ＤＣＤ領域１５の空領域に記憶させる（Ｓ６０４）。
【００４０】
さらに、ＣＰＵ１０は、アドレス変換テーブル１７ｂを更新することにより、其々のデータを記憶させた物理アドレスと各データの論理アドレスとの対応を図る（Ｓ６０５）。またこれと共に、ストライプ情報１７ｃを更新し、ＤＣＤ領域１５に書込んだストライプを使用済みとする（Ｓ６０６）。
【００４１】
尚、図６の流れによりＤＣＤ領域１５にデータを書込むストライプの選択方法について、図７を参照しながら説明する。図７の例において、ストライプＳＴ１乃至ＳＴ６はＤＣＤ領域１５内のストライプ、ストライプＳＴ７乃至ＳＴ１２は通常記憶領域１６内のストライプとする。
【００４２】
ＣＰＵ１０がデータを書込む際には、ＣＰＵ１０が各ＨＤＤ１２乃至１４が有するヘッド１２ａ、１３ａ、１４ａの移動時間（シーク時間）が短くなるように空きストライプを選択し、データを書込む。例えば、ＤＣＤ領域１５内の各空きストライプの中で、最も遠いヘッドまでの距離が一番短くなるストライプを選択する。このとき、シーク前のヘッドがＤＣＤ領域１５内にあるか通常記憶領域１６内にあるかに関わらず、シーク時間が短くなるような空きストライプを選択する。
【００４３】
図７の例では、ストライプＳＴ１、ＳＴ４、ＳＴ６がＤＣＤ領域１５内の空きストライプであり、ヘッド１２ａはストライプＳＴ３、ヘッド１３ａはストライプＳＴ５、ヘッド１４ａはストライプＳＴ８上にある。
【００４４】
このとき、ストライプＳＴ１から最も遠い位置にあるヘッドは、ＨＤＤ１４のヘッド１４ａであり、距離は７（＝８−１）である。同様に、ストライプＳＴ４から最も遠い位置にあるヘッドは、ヘッド１４ａであり、その距離は４（＝８−４）、ストライプＳＴ６から最も遠い位置にあるヘッドはヘッド１２ａであり、その距離は３（＝６−３）である。
【００４５】
即ち、各空きストライプの中で、最も遠いヘッドまでの距離が一番短くなる空きストライプはストライプＳＴ６であるので、このストライプに書込むとヘッドの移動時間が最も早くなると判断し、ＣＰＵ１０は当該ストライプにデータを書込む。
【００４６】
続いて、ＤＣＤ領域１５内でのストライプ整理の処理について、図８及び図９を参照しながら説明する。
図８は、ストライプ整理処理について説明するための図である。この図では、ストライプＳＴ１及びＳＴ２を整理し、ストライプＳＴ１０を作成（ストライプＳＴ１及びストライプＳＴ２は削除され、空領域となる）している。
【００４７】
ストライプＳＴ１には、論理アドレスＬ１０、Ｌ１１、Ｌ５０、Ｌ４、Ｌ４２、Ｌ３９、Ｌ１３、Ｌ７、Ｌ８、Ｌ１９、Ｌ９、Ｌ１２の各データが含まれているものとする。しかしながら、この中でＬ１０、Ｌ５０、Ｌ４、Ｌ４２、Ｌ３９、Ｌ８、Ｌ１９、Ｌ９、Ｌ１２の各データは、最新のデータではなく（同じ論理アドレスに対する最新のデータは他のストライプに記憶されている）、アドレス変換テーブル１７ｂにも、ストライプＳＴ１内の各物理アドレスは記載されていないものとする。尚、ストライプＳＴ１内の他の論理アドレスのデータは、最新のデータである。
【００４８】
ストライプＳＴ２には、論理アドレスＬ２、Ｌ１４、Ｌ２５、Ｌ２３、Ｌ３７、Ｌ４１、Ｌ２２、Ｌ３０、Ｌ５１、Ｌ４６、Ｌ２７、Ｌ３２の各データが含まれているものとする。しかしながら、この中でもＬ２、Ｌ１４、Ｌ３０、Ｌ２７、Ｌ３２の各データは最新のデータではなく（同じ論理アドレスに対する最新のデータは他のストライプに記憶されている）、アドレス変換テーブル１７ｂにも、ストライプＳＴ２内の各物理アドレスは記載されていないものとする。尚、ストライプＳＴ２内の他の論理アドレスのデータは、最新のデータである。
【００４９】
ストライプＳＴ１及びＳＴ２から新たなストライプＳＴ１０を作成する際には、ストライプＳＴ１及びＳＴ２から、当該ストライプに含まれる最新のデータのみを集めてストライプを作成する。図８の例では、論理アドレスＬ７、Ｌ１１、Ｌ１３、Ｌ２２、Ｌ２３、Ｌ２５、Ｌ３７、Ｌ４１、Ｌ４６、Ｌ５１の各データがストライプＳＴ１０を構成する。ストライプＳＴ１及びＳＴ２は削除され、空領域となる。
【００５０】
図９は、ＣＰＵ１０がＤＣＤ領域１５内のストライプ整理処理を行う処理の流れを示す図である。尚、当該処理は書込コマンド及び読込コマンドの非入力時に開始するのが好適である。書込コマンド及び読込コマンドの非入力時であれば、書込速度及び読込速度に影響を与えずに、当該処理を行うことができるからである。
【００５１】
まず、ＣＰＵ１０は書込コマンド及び読込コマンドの入力がないことを確認する（Ｓ９０１）。書込コマンド及び読込コマンドの入力がある場合には（Ｓ９０１のＮｏ）、Ｓ９０１に戻り、書込／読込コマンドの入力がなくなるまで待つ。
【００５２】
書込コマンド及び読込コマンドの入力がない場合には（Ｓ９０１のＹｅｓ）、複数のストライプから新たなストライプを作成する（Ｓ９０２）。この処理の詳細は、図８を参照しながら先述した通りであり、この新たなストライプ作成時には、ＣＰＵ１０は、タイムスタンプ１７ａをインクリメントする（Ｓ９０３）。
【００５３】
ＣＰＵ１０は、作成した新たなストライプを、ＤＣＤ領域１５に書込む（Ｓ９０４）。旧ストライプは削除し（Ｓ９０５）、空領域とする。また、これに合わせてＣＰＵ１０は、アドレス変換テーブル１７ｂ及びストライプ情報１７ｃを更新する（Ｓ９０６、Ｓ９０７）。アドレス変換テーブル１７ｂでは、論理アドレスと新たなストライプ内の物理アドレスとの対応付けを行い、ストライプ情報１７ｃは、新たなストライプを使用済みとすると共に、旧ストライプを空領域とする更新を行う。
【００５４】
ＣＰＵ１０がＤＣＤ領域１５から通常記憶領域１６へのデータの移行について図１０を参照しながら説明する。図１０は、ＣＰＵ１０がＤＣＤ領域１５から通常記憶領域１６へデータを移行する際の処理の流れを示す図である。当該処理は、書込コマンド及び読込コマンドの入力のないときに開始するのが好適である。書込コマンド及び読込コマンドの非入力時であれば、書込及び読込速度に影響を与えずに、当該処理を行うことができるからである。
【００５５】
まず、ＣＰＵ１０は書込コマンド及び読込コマンドの入力がないことを確認する（Ｓ１００１）。書込コマンド及び読込コマンドの入力がある場合には（Ｓ１００１のＮｏ）、Ｓ１００１に戻り、書込／読込コマンドの入力がなくなるまで待つ。
【００５６】
書込コマンド及び読込コマンドの入力が無い場合には（Ｓ１００１のＹｅｓ）、１以上のストライプ（以下、この図の説明において旧ストライプ）から、通常記憶領域１６に書込むデータ及びパリティを作成する（Ｓ１００２）。このとき通常記憶領域１６に書込むデータは、最新のデータ（アドレス変換テーブル１７ｂに物理アドレスが登録されているデータ）のみであり、同じ論理アドレスに対する最新のデータが他のストライプに記載されているデータ、及び論理アドレスタグブロックについては、通常記憶領域１６に記憶させるデータには含めない。尚このとき通常記憶領域１６に書込むデータは、当該データの更新前のデータが既に通常記憶領域１６内に記憶されている場合には、その上に上書きし、また、論理アドレスが連続しているデータはなるべく連続するようにデータを配置する。これにより、通常記憶領域１６からのデータ読込時において、シーケンシャルリードの速度を向上させることができる。
【００５７】
更に、旧ストライプを削除する（Ｓ１００３）。これに伴い、アドレス変換テーブル１７ｂ及びストライプ情報１７ｃを更新する（Ｓ１００４、Ｓ１００５）。以上の処理により、データはＤＣＤ領域から通常記憶領域１６にデータを移行させることができる。
【００５８】
ところで、本実施例のＰＣ１は、通常記憶領域１６の記憶容量に応じて、ＤＣＤ領域１５の記憶容量を変化させる。この処理について図１１を参照しながら説明する。
【００５９】
ＣＰＵ１０は、通常記憶領域１６の空き容量が所定量以下か否かを判断する（Ｓ１１０１）。通常記憶領域１６の空き容量が所定量以下でない場合には（Ｓ１１０１のＮｏ）、Ｓ１１０１に戻り、さらに空き容量の監視を続ける。
【００６０】
通常記憶領域１６の空き容量が所定量以下である場合には（Ｓ１１０１のＹｅｓ）、ＤＣＤ領域１５の空き領域の一部を通常記憶領域１６として割り当てる（Ｓ１１０２）。これにより、通常記憶領域１６の記憶容量を増やすことができる。
【００６１】
以上説明したように、本実施例によれば、高速で読出し及び書込み可能な不揮発性メモリ１７が、タイムスタンプ１７ａ、アドレス変換テーブル１７ｂ、ストライプ情報１７ｃ、書込みバッファ１７ｄを有するため、ＨＤＤ１２乃至１４の入出力が高速化され、ＨＤＤ１２乃至１４のシーケンシャルリード、データ書込み、ストライプ整理、データ移行などの処理速度を早めることができる。また、情報記憶装置１の電源が不意にオフとなっても、不揮発性メモリ１７に記憶されたタイムスタンプ１７ａ、アドレス変換テーブル１７ｂ、ストライプ情報１７ｃの消失は防止される。よって、これらの情報を復活させるリカバリ処理は必要がないため、その後のブート時間を短くすることができる。
【００６２】
また、アドレス変換テーブル１７ｂ等の消去を防止するために、前述の特許文献１のようにストライプ中に論理アドレスタグブロックを書込んだ場合には、ＨＤＤ１２乃至１４へのデータの書込みが実行される度に、アドレス変換テーブル１７ｂ等をＨＤＤ１２乃至１４に書き込む必要があるため、ＨＤＤ１２乃至１４の記憶領域を無駄に使用してしまう。これに対して、本実施例のように不揮発性メモリ１７にアドレス変換テーブル１７ｂ等を記憶する場合には、論理アドレスタグブロックをＨＤＤ１２乃至１４に書き込む必要がないため、ＨＤＤ１２乃至１４の記憶領域を有効に使用することができる。
【００６３】
また、本実施例では、ＬＦＳによりデータを記憶するＤＣＤ領域１５はあくまで一時記憶領域であり、所定のタイミングで、通常記憶領域１６へとデータを移行する。通常記憶領域１６ではＬＦＳではなく、論理アドレスが連続するデータは連続するようにデータを記憶しており、また、更新データは旧データの上に上書きするので、通常記憶領域１６からデータを読込む際には、ＬＦＳと比してシーケンシャルリードの速度を早めることができる。
【００６４】
また、データ書込み時には通常記憶領域１６に直接書込むのではなく、一時的にＤＣＤ領域１５に書込む。ＤＣＤ領域１５はＬＦＳにより書込むので、ＲＡＩＤ５を構成していても、パリティを作成する際にリードを行ってからパリティを作成する必要がなく、また、其々の更新前の旧データが記憶されているアドレスをシークする必要もないため、高速な書き込みを行うことができる。
【００６５】
更に、本実施例では、ストライプ整理処理及びＤＣＤ領域から通常記憶領域１６へのデータ移行処理を、書込コマンド及び読込コマンドの非入力時に行うので、当該処理に伴って書込速度及び読込速度の低下をユーザに感じさせることを防ぐことができる。
【００６６】
本実施例では、通常記憶領域１６のデータ量の増加に応じてＤＣＤ領域１５の記憶容量を減らす。これにより、通常記憶領域１６の記憶領域を固定的にする場合と比して、より多くのデータを記憶させることができるようになる。
【００６７】
本実施例では、ＤＣＤ領域１５にデータを書込む際に、ヘッドの移動時間を考慮した上で書込むストライプを選択する。これにより書込速度を向上させることが可能となる。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施例１に係るパーソナルコンピュータの構成を示す図。
【図２】本発明の実施例１に係るパーソナルコンピュータが有するアドレス変換テーブルの例を示す図。
【図３】本発明の実施例１に係るパーソナルコンピュータが有するストライプ情報の例を示す図。
【図４】本発明の実施例１に係るパーソナルコンピュータがＤＣＤ領域へデータを書込む際の処理を説明するための図。
【図５】本発明の実施例１に係るパーソナルコンピュータがＤＣＤ領域へデータを書込む際の処理を説明するための図。
【図６】本発明の実施例１に係るパーソナルコンピュータがＤＣＤ領域へデータを書込む際の処理の流れを示す図。
【図７】本発明の実施例１に係るパーソナルコンピュータがデータを書込むストライプの選択方法について説明するための図。
【図８】本発明の実施例１に係るパーソナルコンピュータによるストライプ整理処理について説明するための図。
【図９】本発明の実施例１に係るパーソナルコンピュータがＤＣＤ領域内のストライプ整理処理の流れを示す図。
【図１０】本発明の実施例１に係るパーソナルコンピュータがＤＣＤ領域から通常記憶領域へデータを移行させる際の処理の流れを示す図。
【図１１】本発明の実施例１に係るパーソナルコンピュータがＤＣＤ領域の記憶容量を変化させる処理の流れを示す図。
【符号の説明】
【００６９】
１・・・ＰＣ
１０・・・ＣＰＵ
１１・・・メモリ
１２、１３、１４・・・ＨＤＤ
１２ａ、１３ａ、１４ａ・・・ヘッド
１５・・・ＤＣＤ領域
１６・・・通常記憶領域
１７・・・不揮発性メモリ
１７ａ・・・タイムスタンプ
１７ｂ・・・アドレス変換テーブル
１７ｃ・・・ストライプ情報
１７ｄ・・・書込バッファ
【図１】
2008134720.tif 000003
【図２】
2008134720.tif 000004
【図３】
2008134720.tif 000005
【図４】
2008134720.tif 000006
【図５】
2008134720.tif 000007
【図６】
2008134720.tif 000008
【図７】
2008134720.tif 000009
【図８】
2008134720.tif 000010
【図９】
2008134720.tif 000011
【図１０】
2008134720.tif 000012
【図１１】
2008134720.tif 000013