(57)【特許請求の範囲】
【請求項１】
外部から受け取ったデータを格納する外部記憶装置であって、
予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、
前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、
前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、
前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断する判断部と、
前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納して当該データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納して当該データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納するアクセス処理部とを備え、
前記外部記憶装置は、前記第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供する
ことを特徴とする外部記憶装置。
【請求項２】
外部から前記外部記憶装置の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを受信した場合に、前記第１の記録媒体の記憶容量より大きい記憶容量を示す前記容量情報を返信する容量管理部を更に備えることを特徴とする請求項１記載の外部記憶装置。
【請求項３】
前記容量管理部は、前記容量読出しアクセスを受信した場合に、前記書込みデータを格納するために使用される前記第２の記録媒体上の領域の容量を示す前記容量情報を返信することを特徴とする請求項２記載の外部記憶装置。
【請求項４】
前記第１の記録媒体は、揮発性の記録媒体であり、前記第２の記録媒体は、不揮発性の記録媒体であることを特徴とする請求項１記載の外部記憶装置。
【請求項５】
前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、複数の前記第１のブロックを用いて前記データブロックを格納することを特徴とする請求項１記載の外部記憶装置。
【請求項６】
前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックに応じた個数の前記第１のブロックを割り当てる割当部を有することを特徴とする請求項１記載の外部記憶装置。
【請求項７】
前記アクセス処理部は、前記データブロックの一部が未使用である場合に、前記データブロックの使用部分を前記第１のブロックに分割して前記第１の記録媒体に格納する割当部を有することを特徴とする請求項１記載の外部記憶装置。
【請求項８】
前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、
前記データブロックを格納する１番目の前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、
前記データブロックを格納する複数の前記第１のブロックのそれぞれに、当該第１のブロックの後続の前記第１のブロックの位置を示す情報を格納することを特徴とする請求項１記載の外部記憶装置。
【請求項９】
前記アクセス処理部は、前記第１の記録媒体に空き領域が存在する場合に、前記第２の記録媒体に格納されているデータを、前記第１の記録媒体に格納する転送部を有することを特徴とする請求項１記載の外部記憶装置。
【請求項１０】
外部から受け取ったデータを格納する外部記憶装置であって、
予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、
前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、
前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、
前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断する判断部と、
前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納して当該データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納して当該データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納し、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断し、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータのデータブロックを前記第１の記録媒体から読み出して復元し、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータのデータブロックを前記第２の記録媒体から読み出すアクセス処理部と
を備えることを特徴とする外部記憶装置。
【請求項１１】
前記外部記憶装置の主電源に異常が発生した場合に、前記第１の記録媒体に電力を供給する補助電源部を更に備えることを特徴とする請求項１０記載の外部記憶装置。
【請求項１２】
前記アクセス処理部は、前記第１の記録媒体に空き領域が存在する場合に、前記第２の記録媒体に格納されているデータを、圧縮して前記第１の記録媒体に格納する転送部を有することを特徴とする請求項１０記載の外部記憶装置。
【請求項１３】
外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、
前記外部記憶装置は、
予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、
前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と
を備え、
前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、
前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断し、
前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納して当該データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納して当該データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納し、
前記外部記憶装置は、前記第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供する
ことを特徴とする外部記憶装置制御方法。
【請求項１４】
外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、
前記外部記憶装置は、
予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、
前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と
を備え、
前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、
前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断し、
前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納して当該データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納して当該データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納し、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断し、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータのデータブロックを前記第１の記録媒体から読み出して復元し、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータのデータブロックを前記第２の記録媒体から読み出す
ことを特徴とする外部記憶装置制御方法。
【請求項１５】
外部から受け取ったデータを格納する外部記憶装置を制御するプログラムであって、
前記外部記憶装置は、
予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、
前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、
前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと
を備え、
当該プログラムは、
前記外部記憶装置に、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断させる判断モジュールと、
前記外部記憶装置に、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納させて当該データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納させ、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納させて当該データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納させるアクセス処理モジュールと
を備え、
前記外部記憶装置に、前記第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とするプログラム。
【請求項１６】
外部から受け取ったデータを格納する外部記憶装置を制御するプログラムであって、
前記外部記憶装置は、
予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、
前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、
前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、
を備え、
当該プログラムは、
前記外部記憶装置に、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断する判断モジュールと、
前記外部記憶装置に、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納させて当該データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納させ、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納させて当該データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納させ、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断させ、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータのデータブロックを前記第１の記録媒体から読み出して復元させ、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータのデータブロックを前記第２の記録媒体から読み出させるアクセス処理モジュールと
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部記憶装置、外部記憶装置制御方法、プログラム、及び記録媒体に関する。特に本発明は、複数の記録媒体を実装する外部記憶装置、外部記憶装置制御方法、外部記憶装置を制御するプログラム、及び外部記憶装置を制御するプログラムを記録する記録媒体に関する。
【０００２】
【従来の技術】
従来、外部記憶装置を実現する記録媒体として、ハードディスクが多用されている。ハードディスクは、低いビット単価、大容量、不揮発性等の特長を備える。一方、ハードディスクは、ディスクの回転や磁気ヘッドの移動等の機械的な動作によりデータを読み書きする記録媒体であるため、電気的にデータを読み書きする半導体メモリ等と比較しアクセス速度が遅いという欠点がある。
【０００３】
このため、高速アクセスが要求される計算機システム向けに、半導体メモリを記録媒体とする外部記憶装置が提供されている。この様な外部記録装置を実現する技術は、例えば特開２０００−２９６３６に開示されている。特開２０００−２９６３６は、データを圧縮して書き込む半導体ディスク装置を提供する。
【０００４】
【発明が解決しようとする課題】
以上に示した特開２０００−２９６３６においては、データを圧縮して半導体ディスク装置のビット単価を低減する。しかし、データ圧縮の効率は圧縮するデータの内容に応じて異なることから、半導体ディスク装置が備える半導体メモリより大きい特定の記憶容量の外部記憶装置として提供するのが難しい。
【０００５】
また、半導体メモリを記録媒体とする外部記憶装置を、ハードディスクを記録媒体とする外部記憶装置の代替として用いる場合、ハードディスクが備える特長を可能な限り半導体メモリを記録媒体とする外部記憶装置において実現することが望ましい。
【０００６】
そこで本発明は、上記の課題を解決することのできる外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００７】
本発明の第１の形態によると、外部から受け取ったデータを格納する外部記憶装置であって、予めサイズが定められた第１のブロックを用いてデータを格納する第１の記録媒体と、第１のブロックと比較しサイズが大きい第２のブロックを用いてデータを格納する、第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、データを第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、第１の記録媒体に格納可能かどうかを判断する判断部と、書込みデータを第１の記録媒体に格納可能と判断した場合には、書込みデータを圧縮して第１の記録媒体に格納して当該データブロックを格納する第１のブロックの位置を示す情報を位置テーブルに格納し、書込みデータを第１の記録媒体に格納不可能と判断した場合には、書込みデータを第２の記録媒体に格納して当該データブロックを格納する第２のブロックの位置を示す情報を位置テーブルに格納するアクセス処理部とを備え、外部記憶装置は、第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置を提供する。
【０００８】
本発明の第２の形態によると、外部から受け取ったデータを格納する外部記憶装置であって、予めサイズが定められた第１のブロックを用いてデータを格納する第１の記録媒体と、第１のブロックと比較しサイズが大きい第２のブロックを用いてデータを格納する、第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、データを第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、第１の記録媒体に格納可能かどうかを判断する判断部と、書込みデータを第１の記録媒体に格納可能と判断した場合には、書込みデータを圧縮して第１の記録媒体に格納して当該データブロックを格納する第１のブロックの位置を示す情報を位置テーブルに格納し、書込みデータを第１の記録媒体に格納不可能と判断した場合には、書込みデータを第２の記録媒体に格納して当該データブロックを格納する第２のブロックの位置を示す情報を位置テーブルに格納し、外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが第１の記録媒体及び第２の記録媒体のいずれに格納されているかを判断し、読出しデータが第１の記録媒体に格納されている場合には、読出しデータのデータブロックを第１の記録媒体から読み出して復元し、読出しデータが第２の記録媒体に格納されている場合には、読出しデータのデータブロックを第２の記録媒体から読み出すアクセス処理部とを備えることを特徴とする外部記憶装置を提供する。
【００１２】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【００１３】
【発明の実施の形態】
以下、発明の実施形態を通じて本発明を説明するが、実施形態はクレームにかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１４】
図１は、本発明の実施形態に係る計算機システム１００の構成の一例を示す。本実施形態に係る計算機システム１００は、外部記憶装置１１０、計算機１２０、管理装置１３０、及びネットワーク１４０を備える。
【００１５】
外部記憶装置１１０は、ファイル等のデータを格納する外部記憶装置である。本実施形態に係る外部記憶装置１１０は、１６ＧＢの容量を備える。また、本実施形態に係る外部記憶装置１１０は、第１の記録媒体として２ＧＢの揮発性の半導体メモリを、第２の記録媒体として１８ＧＢの不揮発性の記録媒体を用いる。外部記憶装置１１０は、第１の記録媒体と第２の記録媒体のそれぞれとして、ＳＲＡＭやＤＲＡＭ等の揮発性の半導体メモリ、フラッシュメモリやＩＣカードメモリ等の不揮発性の半導体メモリ、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、ハードディスク等の磁気記録媒体、テープ媒体等を用いてもよい。ただし、本実施形態に係る外部記憶装置１１０の機能の一部は、第１の記録媒体より第２の記録媒体のアクセス速度が遅い場合に好適である。また、本実施形態に係る外部記憶装置１１０の機能の一部は、第１の記録媒体が揮発性である場合に好適である。
【００１６】
計算機１２０は、プログラムを実行し、プログラムの指示に従いネットワーク１４０を介して外部記憶装置１１０をアクセスする。
【００１７】
管理装置１３０は、計算機システム１００の管理者が、外部記憶装置１１０の管理を行うために用いる計算機である。管理装置１３０は、外部記憶装置１１０との間で管理用メッセージの送受信を行う。本実施形態に係る管理装置１３０及び外部記憶装置１１０は、管理用メッセージの一例であるＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）をサポートする。
【００１８】
ネットワーク１４０は、外部記憶装置１１０、計算機１２０、及び管理装置１３０を接続するローカルエリアネットワークである。管理装置１３０は、ローカルエリアネットワークに代えて、例えばインターネットや電話回線等の公衆回線網、ＳＡＮ（Ｓｅｒｖｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の専用通信網による種々のネットワーク、及びこれらの組合せであってよい。また、計算機１２０は、ＩＤＥ接続、Ｅ−ＩＤＥ接続、ＳＣＳＩ接続、ＵＳＢ接続、ファイバーチャネル接続等を用いて、ネットワーク１４０を介さず直接外部記憶装置１１０を接続してもよい。
【００１９】
図２は、本発明の実施形態に係る外部記憶装置１１０が計算機１２０に対して提供する記憶領域のデータ構造を示す。計算機１２０は、外部記憶装置１１０を５１２Ｂ（Ｂｙｔｅ）のブロックを３２Ｍ個（Ｍｅｇａ個）備える１６ＧＢ（５１２Ｂｙｔｅ×３２Ｍｅｇａ個＝１６ＧｙｇａＢｙｔｅ）の記憶容量を備える記憶装置と見なしてアクセスする。すなわち、外部記憶装置１１０は、半導体メモリである第１の記録媒体の記憶容量より大きい記憶容量の記憶領域を計算機１２０に提供する。計算機１２０は、外部記憶装置１１０へのアクセスの一例として、外部記憶装置１１０内の特定のブロックに対して５１２Ｂのデータを書き込む書込みアクセス、及び、外部記憶装置１１０内の特定のブロックから５１２Ｂのデータを読み出す読出しアクセス、及び外部記憶装置１１０の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを用いる。また、計算機１２０は、５１２Ｂ未満のデータを外部記憶装置１１０に書き込む場合には、書き込むデータのサイズ指定を書込みアクセスに含める。外部記憶装置１１０及び計算機１２０は、これらのアクセスに加え、データブロックの整数倍等のクラスタ単位のアクセス等をサポートしてもよい。
【００２０】
図３は、本発明の実施形態に係る外部記憶装置１１０の構成を示す。本発明の実施形態に係る外部記憶装置１１０は、半導体メモリ２００、ハードディスク２１０、制御ユニット２２０、補助電源部２３０、及び抑制部２４０を備える。半導体メモリ２００は、本発明に係る第１の記録媒体の一例である。ハードディスク２１０は、本発明に係る第２の記録媒体の一例である。
【００２１】
半導体メモリ２００は、揮発性の半導体メモリによる記録媒体である。本実施形態に係る半導体メモリ２００は、記録媒体として、揮発性の半導体メモリの一例であるＤＲＡＭを用いる。本実施形態に係る半導体メモリ２００は、計算機１２０から受け取ったデータを、６４ＢのブロックであるＭブロック（メモリブロック）に分割して格納する。また、本実施形態に係る半導体メモリ２００は、２ＧＢの容量を持つものとする。
【００２２】
ハードディスク２１０は、不揮発性の記録媒体である。本実施形態に係るハードディスク２１０は、記録媒体として、不揮発性の記録媒体の一例であるハードディスクを用いる。この結果、本実施形態に係るハードディスク２１０は、半導体メモリ２００よりアクセス速度が遅くなる。本実施形態に係るハードディスク２１０は、計算機１２０から受け取ったデータを、５１２ＢのブロックであるＨブロック（ハードディスクブロック）に分割して格納する。また、本実施形態に係るハードディスク２１０は、１８ＧＢの容量を持つものとする。
【００２３】
補助電源部２３０は、外部記憶装置１１０の主電源が正常な場合、半導体メモリ２００、ハードディスク２１０及び制御ユニットに、主電源による電力を供給する。一方、外部記憶装置１１０の主電源に異常が発生した場合に、半導体メモリ２００、ハードディスク２１０及び制御ユニット２２０に補助電源による電力を供給する。補助電源部２３０は、補助電源として、例えば、バッテリ、自家発電等による電源を用いてもよい。また、補助電源部２３０は、主電源の異常時にバッテリ等の補助電源に切り替え電源の瞬断等を防止する、無停電電源装置（ＵＰＳ）等であってもよい。
【００２４】
抑制部２４０は、制御ユニット２２０の指示を受けてハードディスク２１０への電力供給を遮断し、ハードディスク２１０の電力消費を抑制する。
【００２５】
制御ユニット２２０は、計算機１２０からのアクセスに関する送受信処理、計算機１２０から受けたアクセスに対応する半導体メモリ２００又はハードディスク２１０のアクセス処理、外部記憶装置１１０内部の各機能の診断処理、及び管理装置１３０との間での管理用メッセージの送受信処理等を行う。制御ユニット２２０は、通信インターフェイス２４５、制御部２５０、通知部２５５及び診断部２７０を有する。
【００２６】
通信インターフェイス２４５は、計算機１２０からのアクセスに関する送受信処理、及び管理装置１３０との間での管理用メッセージの送受信処理を行う。
【００２７】
制御部２５０は、計算機１２０からのアクセスの制御、半導体メモリ２００又はハードディスク２１０に対するアクセスの制御、半導体メモリ２００の使用量の取得、及び診断部２７０による診断結果に対する制御等の処理を行う。
【００２８】
通知部２５５は、制御部２５０から半導体メモリ２００の使用量を取得する。そして通知部２５５は、半導体メモリ２００の使用量が予め設定された値を超過したことを検出し、外部記憶装置１１０の管理者に通知する。通知部２５５は、表示部２６０、音源部２６５、ステータスレジスタ２６７、及びトラップ生成部２６９を含む。通知部２５５は、表示部２６０、音源部２６５、ステータスレジスタ２６７、及び／又はトラップ生成部２６９のうち、予め外部記憶装置１１０の管理者により選択された手段を用いて通知を行う。
【００２９】
表示部２６０は、半導体メモリ２００の使用量が予め設定された値を超過したことを、表示して通知する。表示部２６０は、例えばＬＥＤやディスプレイ等の、光又は画像を出力する出力装置であってよい。
【００３０】
音源部２６５は、半導体メモリ２００の使用量が予め設定された値を超過したことを、警告音を用いて通知する。診断部２７０は、例えばブザーやスピーカー等の音源を備える出力装置であってよい。
【００３１】
ステータスレジスタ２６７は、半導体メモリ２００の使用量が予め設定された値を超過したことを示す、超過情報を記録する。ステータスレジスタ２６７は、管理装置１３０がアクセス可能な記録領域である。本実施形態において、ステータスレジスタ２６７は、ＳＮＭＰにおけるＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）上に割り当てられたレジスタとする。
【００３２】
管理装置１３０は、ＳＮＭＰにおけるＧＥＴ  ＲＥＱＵＥＳＴメッセージを用いて、超過情報の読出しを外部記憶装置１１０に要求する。通知部２５５は、通信インターフェイス２４５を介して超過情報の読出しを指示するＧＥＴ ＲＥＱＵＥＳＴメッセージを受け取る。そして、通知部２５５は、ステータスレジスタ２６７の内容を読出して、通信インターフェイス２４５を介して管理装置１３０に送信する。受信したステータスレジスタ２６７の内容に超過情報が記録されていた場合、管理装置１３０は、半導体メモリ２００の使用量が予め設定された値を超過したことを、画面等を用いて外部記憶装置１１０の管理者に通知する。
【００３３】
トラップ生成部２６９は、管理装置１３０に対して、半導体メモリ２００の使用量が予め設定された値を超過したことを示す超過情報を送信する。本実施形態に係るトラップ生成部２６９は、ＳＮＭＰに基づくトラップを用いて、管理装置１３０に対して超過情報を送信する。すなわち、トラップ生成部２６９は、半導体メモリ２００の使用量が予め設定された値を超過した場合に、超過情報を含むトラップを生成する。そして、トラップ生成部２６９は、通信インターフェイス２４５を介して管理装置１３０にトラップパケットを送信する。超過情報を含むトラップを通知部２５５から受信した場合、管理装置１３０は、半導体メモリ２００の使用量が予め設定された値を超過したことを、画面等を用いて外部記憶装置１１０の管理者に通知する。
【００３４】
診断部２７０は、外部記憶装置１１０の主電源に異常が発生した場合に、ハードディスク２１０が正常動作するかどうかを診断する。診断部２７０は、例えばハードディスク２１０内の特定のＨブロックの読出しを行い、エラー発生の有無、及び／又は読出し結果の正誤等をチェックすることによりこの診断を行ってもよい。また、診断部２７０は、外部記憶装置１１０の主電源に異常が発生した場合に、制御部２５０にハードディスク２１０が正常動作するかどうかを通知する。
【００３５】
制御部２５０は、容量管理部２４７、判断部２７５、及びアクセス処理部２７７を含む。
【００３６】
容量管理部２４７は、ネットワーク１４０を介して計算機１２０から容量読出しアクセスを受信した場合に、半導体メモリ２００の記憶容量より大きい記憶容量を示す容量情報を計算機１２０に返信する。本実施形態に係る外部記憶装置１１０は図２に示した様に、１６ＧＢの記憶容量を備える。従って、容量管理部２４７は、半導体メモリ２００の記憶容量２ＧＢより大きい１６ＧＢの記憶容量を示す容量情報を、計算機１２０に返信する。
ここで、容量情報は、記憶容量そのものでなく、記憶容量の算出に用いられるパラメータ値であってもよい。例えば、容量情報は、記憶容量そのものに代えて、ブロック数、セクタ数、トラック数、シリンダ数、及び／又はブロックサイズ等を含む情報であってもよい。また、例えば、計算機１２０と外部記憶装置１１０がＳＣＳＩ接続されている場合、計算機１２０は、容量読出しアクセスの一例であるＲｅａｄ  Ｃａｐａｃｉｔｙコマンドを用いて、外部記憶装置１１０のブロック数とブロックサイズを取得してもよい。
【００３７】
判断部２７５は、計算機１２０からデータブロックの書込みアクセスを受信すると、書込みの対象データブロックを半導体メモリ２００に格納可能かどうかを判断する。すなわち、まず判断部２７５は、半導体メモリ２００の空きＭブロック数をアクセス処理部２７７内の格納部２９０から取得する。次に、判断部２７５は、半導体メモリ２００の空きＭブロック数が８以上（すなわち、データブロック５１２Ｂを圧縮無しに格納できるＭブロックの個数以上）の場合に、対象データブロックを半導体メモリ２００に格納可能と判断する。これに代えて、判断部２７５は、まず対象データブロックをアクセス処理部２７７内の圧縮部２８０に圧縮させ、圧縮された対象データブロックを格納できる数の空きブロックが存在するかどうかに基づき本判定を行ってもよい。
【００３８】
アクセス処理部２７７は、圧縮部２８０、割当部２８５、格納部２９０、転送部２９５及び復元部２９７を含む。
【００３９】
圧縮部２８０は、半導体メモリ２００に格納すると判断された対象データブロックを、例えばランレングス符号化、Ｈｕｆｆｍａｎ符号化、又はＺｉｐ−Ｌｅｍｐｅｌ符号化等の圧縮アルゴリズムを用いて圧縮する。圧縮アルゴリズムや対象データブロックの内容等によっては、圧縮した対象データブロックの格納に８以上のＭブロックを要し、対象データブロックを圧縮する効果が得られない場合がある。この様な場合には、圧縮部２８０は、対象データブロックを圧縮しないまま割当部２８５に渡す。本実施形態に係る圧縮部２８０は、ハードディスク２１０に格納すると判断された対象データブロックについては圧縮を行わない。
【００４０】
割当部２８５は、半導体メモリ２００に格納すると判断された対象データブロックを、対象データブロックに応じた個数のＭブロックに分割し、Ｍブロックを割り当てる。すなわち、割当部２８５は、圧縮部２８０により圧縮されなかった５１２Ｂの対象データブロックを、６４ＢのＭブロック８個に分割する。一方、割当部２８５は、圧縮部２８０により圧縮された対象データブロックを、圧縮後のサイズに応じた個数のＭブロックに分割する。また、割当部２８５は、５１２Ｂ未満のデータを書き込む書込みアクセスに対しては、対象データブロックの格納に必要な個数のＭブロックに分割する。すなわち、対象データブロックの一部が未使用である場合に、対象データブロックの使用部分をＭブロックに分割する。
【００４１】
格納部２９０は、半導体メモリ２００及びハードディスク２１０に対するアクセスの制御、半導体メモリ２００の使用量の取得、診断部２７０の診断結果に対する制御等の処理を行う。
格納部２９０は、書込みアクセスにおいて、半導体メモリ２００に格納すると判断された対象データブロックを、割当部２８５が割り当てた１以上のＭブロックに格納する。また、格納部２９０は、書込みアクセスにおいて、ハードディスク２１０に格納すると判断された対象データブロックをハードディスク２１０に格納する。格納部２９０は、書込みアクセスを処理した後半導体メモリ２００の使用量を取得し、通知部２５５に送付する。
また、格納部２９０は、通信インターフェイス２４５を介して読出しアクセスを受信と、対象データブロックを半導体メモリ２００又はハードディスク２１０から読み出し復元部２９７に送付する。具体的には、格納部２９０は、読出しアクセスを受信した場合に、まず、読出し対象のデータである対象データブロックが半導体メモリ２００及びハードディスク２１０のいずれに格納されているかを判断する。そして、格納部２９０は、対象データブロックが半導体メモリ２００に格納されている場合には、対象データブロックを半導体メモリ２００から読み出す。一方、格納部２９０は、対象データブロックがハードディスク２１０に格納されている場合には、対象データブロックをハードディスク２１０から読み出す。そして、格納部２９０は、復元部２９７に対象データブロックを転送する。
【００４２】
さらに、格納部２９０は、主電源の異常の発生、及びハードディスク２１０が正常動作するかどうかの診断結果を診断部２７０から得て、診断結果に基づき障害処理を行う。主電源に異常が発生し、かつハードディスク２１０が正常動作する場合、格納部２９０は、半導体メモリ２００の内容をハードディスク２１０内のバックアップ領域に格納する。一方、主電源に異常が発生し、かつハードディスク２１０が正常動作しない場合、格納部２９０は、ハードディスク２１０への電力供給を遮断する様抑制部２４０に指示し、ハードディスク２１０の電力消費を抑制する。この様に、格納部２９０は、ハードディスク２１０が正常動作しない場合にハードディスク２１０の電力消費を抑制し、補助電源部２３０の持続時間を可能な限り長くする。そして、外部記憶装置１１０の管理者は、補助電源部２３０の持続時間内に、例えば管理装置１３０を用いて半導体メモリ２００の内容を管理装置１３０内のハードディスク等に格納することができる。これにより、外部記憶装置１１０の管理者は、外部記憶装置１１０に格納したデータの破壊を防ぐことができる。
【００４３】
転送部２９５は、半導体メモリ２００に空き領域が存在する場合に、ハードディスク２１０に格納されているデータを半導体メモリ２００に格納する。すなわち、転送部２９５は、半導体メモリ２００の空きＭブロック数を格納部２９０から取得する。次に、転送部２９５は、半導体メモリ２００の空きＭブロック数が８以上（すなわち、半導体メモリ２００の空き領域が５１２Ｂ以上）の場合に、ハードディスク２１０内のデータブロックの１つを半導体メモリ２００に格納可能と判断する。ハードディスク２１０内のデータブロックの１つを半導体メモリ２００に格納可能と判断すると、転送部２９５は、ハードディスク２１０内のデータブロックの１つを格納部２９０を介して取得する。そして、転送部２９５は、圧縮部２８０及び割当部２８５を用いて対象データブロックを圧縮し、格納部２９０を用いて半導体メモリ２００に格納させる。
【００４４】
復元部２９７は、計算機１２０からの読出しアクセスを受けて半導体メモリ２００から読み出した対象データブロックが圧縮されている場合、対象データブロックを復元する。そして、復元部２９７は、読出しアクセスの対象データブロックを、計算機１２０に返信する。
【００４５】
図４は、本発明の実施形態に係る半導体メモリ２００のデータ構造を示す。半導体メモリ２００は、位置テーブル３１０、管理情報３１５、及びＭブロック領域３２０を有する。
【００４６】
位置テーブル３１０は、外部記憶装置１１０に格納されたデータブロックの格納位置を示す４Ｂの情報を、図２に示した外部記憶装置１１０のブロックのそれぞれに対応付けて格納する。位置テーブル３１０は、３２Ｍ個のブロックを有し、１２８ＭＢ（４Ｂ×３２Ｍエントリ）の領域サイズをとる。各エントリの４Ｂの情報は、データブロックが半導体メモリ２００及びハードディスク２１０のいずれに格納されたかを示す情報、データブロックが圧縮されているかどうかを示す情報、及び、データブロックが格納されたＭブロックの番号を示す情報を含む。本実施形態に代えて、格納部２９０は、位置テーブル３１０及び／又は管理情報３１５を、半導体メモリ２００とは異なる記録媒体に格納してもよい。
【００４７】
管理情報３１５は、外部記憶装置１１０を管理するために用いる６４Ｂの管理情報を格納する。管理情報３１５は、空きＭブロックを指示する空きＭブロックポインタ、及び空きＭブロック個数を含む。
空きＭブロックポインタは、未使用のＭブロックの１つを指示する。格納部２９０は、未使用のＭブロックを、空きＭブロックポインタにより先頭が指示される片方向リスト形式で記憶する。すなわち、格納部２９０は、未使用のＭブロック内に、次の未使用のＭブロックの番号を示すリンク情報を書き込むことにより、未使用のＭブロック同士を連結し、片方向リストとする。そして、格納部２９０は、未使用のＭブロックの片方向リストの先頭に位置するＭブロックの番号を、空きＭブロックポインタに格納する。格納部２９０は、対象データブロックを半導体メモリ２００に書き込む際に、例えば空きＭブロックのリストの先頭から必要な個数のＭブロックを使用してもよい。また、格納部２９０は、対象データブロックを半導体メモリ２００に書き込んだ結果不要となったＭブロックを、例えば空きＭブロックのリストの先頭に加えてもよい。また、格納部２９０は、連続する空きＭブロックを確保しやすくするために、例えば定期的に空きＭブロックの片方向リストをＭブロックの番号順に並べ変えてもよい。また、格納部２９０は、空きＭブロックをなるべく連続させる様に、例えば定期的に使用中のＭブロックを移動させてもよい。
【００４８】
空きＭブロック個数は、未使用のＭブロックの個数を格納する。格納部２９０は、空きＭブロックのリストから空きＭブロックを取得する際、又は空きＭブロックのリストに空きＭブロックを追加する際に、空きＭブロック個数を更新する。
【００４９】
以上に示した空きＭブロックの記憶方法に代えて、管理情報３１５は、例えば、各Ｍブロックに対応して、当該Ｍブロックが空きの場合に”１”となるビットを有するビットマップを用いる等の方法を用いて、空きＭブロックを記憶してもよい。
【００５０】
Ｍブロック領域３２０は、半導体メモリ２００に格納されるＭブロックのデータ領域である。Ｍブロック領域３２０は、６４ＢのＭブロックを３０Ｍ−１個格納する。従って、Ｍブロック領域３２０の領域サイズは、１９２０ＭＢ−６４Ｂ（３０Ｍ×６４Ｂ−６４Ｂ）となる。Ｍブロックは、０〜Ｘ（ただし、Ｘ＝３０Ｍ−２）の番号が割り振られ、この番号を用いて識別される。
【００５１】
図５は、本発明の実施形態に係るハードディスク２１０のデータ構造を示す。ハードディスク２１０は、Ｈブロック領域３４０及びバックアップ領域３４５を有する。
【００５２】
Ｈブロック領域３４０は、ハードディスク２１０に格納されるＨブロックのデータ領域である。Ｈブロック領域３４０は、５１２ＢのＨブロックを３２Ｍ個格納する。従って、Ｈブロック領域３４０のサイズは、１６ＧＢ（３２Ｍ×５１２Ｂ）となる。Ｈブロックは、０〜Ｙ（ただし、Ｙ＝３２Ｍ−１）の番号が割り当てられ、この番号を用いて識別される。Ｈブロック領域３４０は、計算機１２０からの書込みアクセスの対象データブロックを格納するために使用するハードディスク２１０上の領域である。本実施形態に係るＨブロック領域３４０は、図２に示した外部記憶装置１１０のデータ構造と同一の構成をとる。容量管理部２４７は、計算機１２０から容量読出しアクセスを受信した場合に、Ｈブロック領域３４０の領域の容量を示す容量情報を計算機１２０に返信する。以上の処理に代えて、容量管理部２４７は、Ｈブロック領域３４０に格納されるファイルの管理に用いる領域を除いた容量を示す容量情報を計算機１２０に返信してもよい。
【００５３】
バックアップ領域３４５は、半導体メモリ２００内のデータのバックアップに用いられる領域である。外部記憶装置１１０の電源がＯＦＦにされる際に、格納部２９０は、半導体メモリ２００内のデータをバックアップ領域３４５に格納する。そして、外部記憶装置１１０の電源がＯＮになった際に、格納部２９０は、バックアップ領域３４５内のデータを半導体メモリ２００に格納する。また、格納部２９０は、主電源に異常が発生し、かつハードディスク２１０が正常動作する場合、半導体メモリ２００の内容をバックアップ領域３４５に格納する。
【００５４】
図６は、本発明の実施形態に係る外部記憶装置１１０に格納されるデータの格納形式の一例を示す。
位置テーブル３１０は、外部記憶装置１１０の各ブロック毎に、圧縮フラグ、ＨＤＤフラグ、及び位置情報を格納する。圧縮フラグは、対象データブロックが圧縮されて格納されていない場合に”０”、圧縮されて格納されている場合に”１”を格納する。ＨＤＤフラグは、対象データブロックが半導体メモリ２００に格納されている場合に”０”、ハードディスク２１０に格納されている場合に”１”を格納する。位置情報は、対象データブロックが１以上のＭブロックに格納されている場合に、先頭のＭブロックの番号を格納する。一方、対象データブロックがＨブロックに格納されている場合は、対象データブロックは、位置テーブル３１０上のブロック番号で指定されるＨブロックに格納される。
【００５５】
すなわち、位置テーブル３１０は、Ｈブロック単位で分割した対象データブロックのそれぞれに対応付けて、対象データブロックの格納位置を示す情報を格納する。格納部２９０は、対象データブロックを半導体メモリ２００に格納する場合に、対象データブロックを格納するＭブロックの位置を示す情報すなわちＨＤＤフラグ及び位置情報を位置テーブル３１０に格納する。一方、格納部２９０は、対象データブロックをハードディスク２１０に格納する場合に、対象データブロックを格納するＨブロックの位置を示す情報すなわちＨＤＤフラグを位置テーブル３１０に格納する。
【００５６】
格納部２９０は、以下に示す４通りの方法のいずれかを用いて、対象データブロックを格納する。
（１）対象データブロックを圧縮し、１個のＭブロックを用いて格納する。
対象データブロックのサイズが圧縮の結果６３Ｂ以下となった場合、割当部２８５及び格納部２９０は、対象データブロックを１個のＭブロックを用いて格納する。この場合、格納部２９０は、Ｍブロックを、Ｍブロック３３０ａに示す形式で格納する。
Ｍブロック３３０ａは、リンクフラグ１ｂｉｔ、サイズフィールド７ｂｉｔ、及びデータフィールド６３Ｂを含む。リンクフラグは、当該Ｍブロックが後続のＭブロックを指示するリンク情報を持つ場合に”１”となるフラグである。Ｍブロック３３０ａはリンク情報を持たないため、先頭１ｂｉｔは”０”である。サイズフィールド（図中ｓｚ）は、圧縮後の対象データブロックのサイズ（０〜６３Ｂ）を示す。データフィールド（図中ｄａｔａ）は、対象データブロックの格納領域である。
【００５７】
（２）対象データブロックを圧縮し、２以上のＭブロックを用いて格納する。
対象データブロックのサイズが圧縮の結果６４Ｂ以上となった場合、割当部２８５及び格納部２９０は、対象データブロックを２個以上のＭブロックを用いて格納する。この場合、格納部２９０は、Ｍブロックを、Ｍブロック３３０ｂ及びＭブロック３３０ｃに示す形式で格納する。
【００５８】
Ｍブロック３３０ｂは、対象データブロックの先頭に対応するＭブロックである。Ｍブロック３３０ｂは、リンクフラグ１ｂｉｔ、サイズフィールド９ｂｉｔ、データフィールド５８Ｂ、及びリンク情報４Ｂを含む。リンクフラグは、（１）におけるリンクフラグと同様のフラグである。Ｍブロック３３０ｂはリンク情報を持つため、先頭１ｂｉｔは”１”である。サイズフィールド（図中ｓｚ）は、圧縮後の対象データブロックのサイズ（０〜５１２Ｂ）を示す。データフィールド（図中ｄａｔａ）は、対象データブロックのデータの格納領域である。リンクフィールド（図中ｌｉｎｋ）は、後続のＭブロックの番号を示す。
【００５９】
Ｍブロック３３０ｃは、対象データブロックの２番目以降に対応するＭブロックである。Ｍブロック３３０ｃは、データフィールド６０Ｂ、及びリンク情報４Ｂを含む。データフィールド（図中ｄａｔａ）は、対象データブロックの格納領域である。リンクフィールド（図中ｌｉｎｋ）は、後続のＭブロックの番号を示す。
【００６０】
この様に、対象データブロックを２以上のＭブロックを用いて格納する場合、格納部２９０は、サイズフィールドに示される圧縮後の対象データブロックのサイズに対応する個数のＭブロックを、リンク情報を用いた片方向リストとして格納する。すなわち、２以上のＭブロックを用いて対象データブロックを半導体メモリ２００に格納する場合に、格納部２９０は、対象データブロックを格納する１番目のＭブロックの位置を示す情報を位置テーブル３１０に格納し、対象データブロックを格納する複数のＭブロックのそれぞれに、各Ｍブロックの後続のＭブロックの位置を示す情報であるリンク情報を格納する。
【００６１】
（３）対象データブロックを圧縮せず、８個のＭブロックを用いて格納する。
圧縮部２８０が対象データブロックを圧縮しなかった場合、割当部２８５及び格納部２９０は、対象データブロックを連続する８個のＭブロックを用いて格納する。
【００６２】
（４）対象データブロックを圧縮せず、１個のＨブロックを用いて格納する。
判断部２７５が対象データブロックをハードディスク２１０に格納すると判断した場合、割当部２８５及び格納部２９０は、対象データブロックを書込みアクセスで指定されたＨブロックに格納する。すなわち例えば、外部記憶装置１１０のブロック３に対象データブロックを書き込む書込みアクセスを受けた場合、割当部２８５及び格納部２９０は、３番のＨブロック３５０に対象データブロックを格納する。
【００６３】
以上に示した対象データブロックの格納方法に対応し、格納部２９０及び復元部２９７は、以下に示す４通りの方法のいずれかを用いて、対象データブロックを読み出す。
（１）読み出し対象のブロックに対応する圧縮フラグ＝１、ＨＤＤフラグ＝０、リンクフラグ＝０
格納部２９０は、読出し対象のブロックに対応する位置テーブル３１０内の位置情報で指定される１個のＭブロックを、半導体メモリ２００から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを復元し、計算機１２０に送信する。
（２）読み出し対象のブロックに対応する圧縮フラグ＝１、ＨＤＤフラグ＝０、リンクフラグ＝１
格納部２９０は、読出し対象のブロックに対応する位置テーブル３１０内の位置情報で指定される複数個のＭブロックを、リンク情報に基づき半導体メモリ２００から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを復元し、計算機１２０に送信する。
【００６４】
（３）読み出し対象のブロックに対応する圧縮フラグ＝０、ＨＤＤフラグ＝０
格納部２９０は、読出し対象のブロックに対応する位置テーブル３１０の位置情報で指定される、連続する８個のＭブロックを、半導体メモリ２００から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを、計算機１２０に送信する。
（４）読み出し対象のブロックに対応するＨＤＤフラグ＝１
格納部２９０は、読出し対象のブロックに対応するＨブロックを、ハードディスク２１０から読み出す。復元部２９７は、格納部２９０が読み出した対象データブロックを、計算機１２０に送信する。
【００６５】
図７は、本発明の実施形態に係る外部記憶装置１１０のデータ書込処理の流れを示す。
計算機１２０は、例えば起動時又は外部記憶装置１１０の接続時等に、外部記憶装置１１０に対して容量読出しアクセスを送信する。容量管理部２４７は、ネットワーク１４０及び通信インターフェイス２４５を介して容量読出しアクセスを受信する（Ｓ７００）。次に、容量管理部２４７は、外部記憶装置１１０の記憶容量を示す容量情報を計算機１２０に返信する（Ｓ７０１）。
【００６６】
次に、判断部２７５は、ネットワーク１４０及び通信インターフェイス２４５を介して計算機１２０から書込みアクセスを受信する（Ｓ７０２）。次に、判断部２７５は、半導体メモリ２００の空きＭブロック数が８以上かどうかをチェックする（Ｓ７０５）。半導体メモリ２００の空きＭブロック数が８未満の場合、判断部２７５は、対象データブロックをハードディスク２１０に格納すると判断する。そして、格納部２９０は、圧縮部２８０及び割当部２８５を介して対象データブロックを取得して、計算機１２０からの書込みアクセスで指定されたブロック番号に対応するＨブロックに格納する（Ｓ７４０）。
【００６７】
一方、半導体メモリ２００の空きＭブロック数が８以上の場合、判断部２７５は、対象データブロックを半導体メモリ２００に格納すると判断する。次に、圧縮部２８０は、判断部２７５から対象データブロックを取得して圧縮する（Ｓ７１０）。次に、圧縮部２８０は、圧縮した対象データブロックの格納に要するＭブロックの数が７以下かどうかを判定する（Ｓ７１５）。圧縮した対象データブロックの格納に要するＭブロックの数が７以下の場合、圧縮部２８０は、圧縮した対象データブロックを半導体メモリ２００に格納する対象データブロックとする（Ｓ７２０）。一方、圧縮した対象データブロックの格納に要するＭブロックの数が８以上の場合、圧縮部２８０は、元の対象データブロックを半導体メモリ２００に格納する対象データブロックとする（Ｓ７２５）。
【００６８】
次に、割当部２８５は、圧縮部２８０から対象データブロックを取得して、対象データブロックに応じた個数のＭブロックに分割し、これらのＭブロックを割り当てる（Ｓ７３０）。次に、格納部２９０は、対象データブロックを割当部２８５が割り当てた個数のＭブロックに格納する（Ｓ７３５）。
【００６９】
次に、格納部２９０は、Ｓ７３５又はＳ７４０の処理内容に基づき位置テーブル３１０を更新する（Ｓ７４５）。
【００７０】
図８は、本発明の実施形態に係る外部記憶装置１１０のデータ読出処理の流れを示す。
まず、格納部２９０は、ネットワーク１４０及び通信インターフェイス２４５を介して計算機１２０から読出しアクセスを受信する（Ｓ８００）。次に、格納部２９０は、読出しアクセスの対象データブロックの格納位置を示す情報を、半導体メモリ２００上の位置テーブル３１０から読み出す（Ｓ８１０）。
【００７１】
次に、格納部２９０は、対象データブロックについてのＨＤＤフラグが”０”かどうかを判定する（Ｓ８２０）。ＨＤＤフラグが”０”でない場合、格納部２９０は、ハードディスク２１０から対象データブロックを読み出す（Ｓ８３５）。そして、格納部２９０は、対象データブロックを復元部２９７に転送し、復元部２９７にＳ８８０の処理を行わせる。
【００７２】
Ｓ８２０においてＨＤＤフラグが”１”の場合、格納部２９０は、対象データブロックについての圧縮フラグが”１”かどうかを判定する（Ｓ８３０）。圧縮フラグが”１”でない場合、格納部２９０は、位置情報で指定される連続する８個のＭブロックを半導体メモリ２００から読み出して、対象データブロックを取得する（Ｓ８３５）。そして、格納部２９０は、対象データブロックを復元部２９７に転送し、復元部２９７にＳ８８０の処理を行わせる。
【００７３】
Ｓ８３０において圧縮フラグが”０”の場合、格納部２９０は、位置情報で指定される先頭のＭブロックを読み出す（Ｓ８４０）。そして、格納部２９０は、先頭のＭブロックのリンクフラグが”０”かどうかを判定する（Ｓ８５０）。リンクフラグが”０”の場合、格納部２９０は、Ｓ８４０で取得したＭブロックを対象データブロックと見なして、復元部２９７に転送する。
【００７４】
Ｓ８５０においてリンクフラグが”１”の場合、格納部２９０は、先頭のＭブロックのサイズフィールド、及び各Ｍブロックのリンクフィールドに基づき、片方向リストに含まれる複数のＭブロックを読み出す（Ｓ８６０）。そして、格納部２９０は、読み出した複数のＭブロックを対象データブロックと見なして、復元部２９７に転送する。
【００７５】
次に、復元部２９７は、Ｓ８５０又はＳ８６０で格納部２９０から転送された対象データブロックを復元する（Ｓ８７０）。
【００７６】
次に、復元部２９７は、通信インターフェイス２４５を介してＳ８２５、Ｓ８３５、又はＳ８７０のいずれかの処理を行って得られた対象データブロックを、通信インターフェイス２４５を介して計算機１２０に送信する（Ｓ８８０）。
【００７７】
図９は、本発明の実施形態に係る外部記憶装置１１０のハードウェア構成の一例を示す。本実施形態に係る外部記憶装置１１０の機能は、ＣＰＵ５１０、ＲＯＭ５２０、ＲＡＭ５３０、通信インターフェイス５４０、ハードディスクドライブ５５０、出力装置５８０、入力装置５８５、補助電源部２３０、及び抑制部２４０を備える計算機５００と、計算機５００上で実行されるプログラムとの連携により実現される。計算機５００は、ＦＤドライブ５６０及び／又はＣＤ−ＲＯＭドライブ５７０を更に備えてもよい。
【００７８】
外部記憶装置１１０を実現するプログラムは、通信インターフェイスモジュールと、補助電源モジュールと、抑制モジュールと、通知モジュールと、表示モジュールと、音源モジュールと、ステータスレジスタモジュールと、トラップ生成モジュールと、診断モジュールと、判断モジュールと、アクセス処理モジュールとを備える。これらのモジュールは、計算機５００を、通信インターフェイス２４５、補助電源部２３０、抑制部２４０、通知部２５５、表示部２６０、音源部２６５、ステータスレジスタ２６７、トラップ生成部２６９、診断部２７０、判断部２７５、及びアクセス処理部２７７として動作させるプログラムである。アクセス処理モジュールは、圧縮モジュールと、割当モジュールと、格納モジュールと、転送モジュールと、復元モジュールとを有する。これらのモジュールは、計算機５００を、圧縮部２８０、割当部２８５、格納部２９０、転送部２９５、及び復元部２９７として動作させるプログラムである。
【００７９】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フロッピーディスク５９０、ＣＤ−ＲＯＭ５９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワーク１４０を介してプログラムを計算機５００に提供してもよい。
【００８０】
以上に示した様に、本実施形態に係る外部記憶装置１１０によれば、比較的小容量の半導体メモリ２００と、比較的大容量のハードディスク２１０とを組み合わせた記憶装置を提供することができる。この様な外部記憶装置は、外部の計算機等からは、特定の記憶容量を備える大容量ハードディスクとしてアクセス可能である。一方、外部記憶装置に格納されるブロックの多くを圧縮して半導体メモリ２００に格納するため、外部記憶装置１１０は、半導体メモリ２００に近いアクセス速度を実現できる。
【００８１】
また、本実施形態に係る外部記憶装置１１０によれば、半導体メモリ２００の使用量が予め設定された値を超過したことを通知する通知部２５５を提供することができる。これにより、外部記憶装置１１０は、例えば半導体メモリ２００をほぼ使い切ったことを外部記憶装置１１０の管理者に通知することができ、アクセス速度が低下する可能性を外部記憶装置１１０の使用者に伝えることができる。
【００８２】
また、本実施形態に係る外部記憶装置１１０によれば、ブロックサイズの異なる半導体メモリ２００及びハードディスク２１０を用いて対象データブロックを格納する方法を提供する。これにより、外部記憶装置１１０は、対象データブロックを、対象データブロックの内容等に応じた個数のＭブロックに格納するか、１個のＨブロックに格納するかを選択して格納することができる。この機能は、例えば半導体メモリ２００とハードディスク２１０のアクセス速度が同一であった場合においても、ファイルの末尾等の５１２Ｂ未満のデータを優先して半導体メモリ２００に格納することにより、記憶領域の使用効率を高める等の効果を生じる。
【００８３】
また、本実施形態に係る外部記憶装置１１０によれば、主電源の異常時においても半導体メモリ２００の内容が消失する可能性を低減することができる。
【００８４】
以上の様に、本実施形態に係る外部記憶装置１１０は、半導体メモリを記録媒体とする外部記憶装置を、ハードディスクを記録媒体とする外部記憶装置の代替として用いるのに好適な機能を実現する。そして、本実施形態に係る外部記憶装置１１０は、ハードディスクが備える特長と、半導体メモリが備える特長とを兼ね備える。
【００８５】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８６】
以上に説明した実施形態によれば、以下の各項目に示す外部記憶装置、外部記憶装置制御方法、プログラム、及び記録媒体が実現される。
【００８７】
（項目１）  外部から受け取ったデータを格納する外部記憶装置であって、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断する判断部と、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納するアクセス処理部とを備え、前記外部記憶装置は、前記第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置。
（項目２）  外部から前記外部記憶装置の記憶容量を示す容量情報の読み出しを要求する容量読出しアクセスを受信した場合に、前記第１の記録媒体の記憶容量より大きい記憶容量を示す前記容量情報を返信する容量管理部を更に備えることを特徴とする項目１記載の外部記憶装置。
（項目３）  前記容量管理部は、前記容量読出しアクセスを受信した場合に、前記書込みデータを格納するために使用される前記第２の記録媒体上の領域の容量を示す前記容量情報を返信することを特徴とする項目２記載の外部記憶装置。
（項目４）  前記第１の記録媒体は、揮発性の記録媒体であり、前記第２の記録媒体は、不揮発性の記録媒体であることを特徴とする項目１記載の外部記憶装置。
【００８８】
（項目５）  外部から受け取ったデータを格納する外部記憶装置であって、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断する判断部と、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納し、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断し、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータを前記第１の記録媒体から読み出して復元し、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータを前記第２の記録媒体から読み出すアクセス処理部とを備えることを特徴とする外部記憶装置。
（項目６）  前記第１の記録媒体は、揮発性の記録媒体であることを特徴とする項目５記載の外部記憶装置。
（項目７）  前記外部記憶装置の主電源に異常が発生した場合に、前記第１の記録媒体に電力を供給する補助電源部を更に備えることを特徴とする項目６記載の外部記憶装置。
（項目８）  前記第２の記録媒体は、不揮発性の記録媒体であることを特徴とする項目５記載の外部記憶装置。
（項目９）  前記アクセス処理部は、前記第１の記録媒体に空き領域が存在する場合に、前記第２の記録媒体に格納されているデータを、圧縮して前記第１の記録媒体に格納する転送部を有することを特徴とする項目５記載の外部記憶装置。
【００８９】
（項目１０）  外部から受け取ったデータを格納する外部記憶装置であって、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体と、前記データを前記第２の記録媒体より優先して前記第１の記録媒体に格納するアクセス処理部と、前記第１の記録媒体の使用量が予め設定された値を超過したことを通知する通知部とを備えることを特徴とする外部記憶装置。
（項目１１）  前記通知部は、前記第１の記録媒体の使用量が予め設定された値を超過したことを、表示して通知することを特徴とする項目１０記載の外部記憶装置。
（項目１２）  前記通知部は、前記第１の記録媒体の使用量が予め設定された値を超過したことを、警告音を用いて通知することを特徴とする項目１０記載の外部記憶装置。
（項目１３）  前記通知部は、前記第１の記録媒体の使用量が予め設定された値を超過したことを示す超過情報を、前記外部記憶装置の管理装置がアクセス可能な記憶領域に格納することを特徴とする項目１０記載の外部記憶装置。
（項目１４）  前記通知部は、前記外部記憶装置の管理装置に対して、前記第１の記録媒体の使用量が予め設定された値を超過したことを示す超過情報を送信することを特徴とする項目１０記載の外部記憶装置。
（項目１５）  前記通知部は、ＳＮＭＰに基づくトラップを用いて前記超過情報を送信することを特徴とする項目１４記載の外部記憶装置。
【００９０】
（項目１６）  外部から受け取ったデータを格納する外部記憶装置であって、揮発性の記録媒体である第１の記録媒体と、不揮発性の記録媒体である第２の記録媒体と、前記外部記憶装置の主電源に異常が発生した場合に、前記第１の記録媒体及び前記第２の記録媒体に電力を供給する補助電源部と、前記外部記憶装置の主電源に異常が発生した場合に、前記第２の記録媒体が正常動作するかどうかを診断する診断部と、前記診断の結果、前記第２の記録媒体が正常動作しない場合に前記第２の記録媒体の電力消費を抑制する抑制部とを備えることを特徴とする外部記憶装置。
【００９１】
（項目１７）  外部から受け取ったデータを格納する外部記憶装置であって、予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する第２の記録媒体と、前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルと、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記データブロックを前記第２の記録媒体に格納する場合に、前記データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納するアクセス処理部とを備えることを特徴とする外部記憶装置。
（項目１８）  前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックを圧縮する圧縮部を有することを特徴とする項目１７記載の外部記憶装置。
（項目１９）  前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、複数の前記第１のブロックを用いて前記データブロックを格納することを特徴とする項目１７記載の外部記憶装置。
（項目２０）  前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックに応じた個数の前記第１のブロックを割り当てる割当部を有することを特徴とする項目１９記載の外部記憶装置。
（項目２１）  前記アクセス処理部は、前記データブロックの一部が未使用である場合に、前記データブロックの使用部分を前記第１のブロックに分割して前記第１の記録媒体に格納する割当部を有することを特徴とする項目１９記載の外部記憶装置。
（項目２２）  前記アクセス処理部は、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックを格納する１番目の前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記データブロックを格納する複数の前記第１のブロックのそれぞれに、当該第１のブロックの後続の前記第１のブロックの位置を示す情報を格納することを特徴とする項目１９記載の外部記憶装置。
（項目２３）  前記第１の記録媒体は、前記第２の記録媒体と比較しアクセス速度が速いことを特徴とする項目１７記載の外部記憶装置。
（項目２４）  前記アクセス処理部は、前記第１の記録媒体に空き領域が存在する場合に、前記第２の記録媒体に格納されているデータを、前記第１の記録媒体に格納する転送部を有することを特徴とする項目２３記載の外部記憶装置。
（項目２５）  前記第１の記録媒体は、揮発性の記録媒体であり、前記第２の記録媒体は、不揮発性の記録媒体であることを特徴とする項目１７記載の外部記憶装置。
【００９２】
（項目２６）  外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断し、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納し、前記外部記憶装置は、前記第１の記録媒体の記録容量と比較し大きい記憶容量の記憶領域を提供することを特徴とする外部記憶装置制御方法。
【００９３】
（項目２７）  外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断し、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納し、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納し、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断し、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータを前記第１の記録媒体から読み出して復元し、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータを前記第２の記録媒体から読み出すことを特徴とする外部記憶装置制御方法。
【００９４】
（項目２８）  外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記データを前記第２の記録媒体より優先して前記第１の記録媒体に格納し、前記第１の記録媒体の使用量が予め設定された値を超過したことを通知することを特徴とする外部記憶装置制御方法。
【００９５】
（項目２９）  外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、揮発性の記録媒体である第１の記録媒体と、不揮発性の記録媒体である第２の記録媒体とを備え、前記外部記憶装置の主電源に異常が発生した場合に、前記第１の記録媒体及び前記第２の記録媒体に電力を供給し、前記外部記憶装置の主電源に異常が発生した場合に、前記第２の記録媒体が正常動作するかどうかを診断し、前記診断の結果、前記第２の記録媒体が正常動作しない場合に前記第２の記録媒体の電力消費を抑制することを特徴とする外部記憶装置制御方法。
【００９６】
（項目３０）  外部から受け取ったデータを格納する外部記憶装置を制御する外部記憶装置制御方法であって、前記外部記憶装置は、予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する第２の記録媒体と、前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルとを備え、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納し、前記データブロックを前記第２の記録媒体に格納する場合に、前記データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納することを特徴とする外部記憶装置制御方法。
【００９７】
（項目３１）  外部から受け取ったデータを格納する外部記憶装置を制御するプログラムであって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、当該プログラムは、前記外部記憶装置に、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断させる判断モジュールと、前記外部記憶装置に、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納させ、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納させるアクセス処理モジュールとを備え、前記外部記憶装置に、前記第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とするプログラム。
【００９８】
（項目３２）  外部から受け取ったデータを格納する外部記憶装置であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、当該プログラムは、前記外部記憶装置に、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断させる判断モジュールと、前記外部記憶装置に、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納させ、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納させ、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断させ、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータを前記第１の記録媒体から読み出して復元させ、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータを前記第２の記録媒体から読み出させるアクセス処理モジュールとを備えることを特徴とするプログラム。
【００９９】
（項目３３）  外部から受け取ったデータを格納する外部記憶装置を制御するプログラムであって、前記外部記憶装置は、予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する第２の記録媒体と、前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルとを備え、当該プログラムは、前記外部記憶装置に、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納させ、前記データブロックを前記第２の記録媒体に格納する場合に、前記データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納させるアクセス処理モジュールを備えることを特徴とするプログラム。
【０１００】
（項目３４）  外部から受け取ったデータを格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記プログラムは、前記外部記憶装置に、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断させる判断モジュールと、前記外部記憶装置に、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納させ、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納させるアクセス処理モジュールとを備え、前記外部記憶装置に、前記第１の記録媒体の記憶容量と比較し大きい記憶容量の記憶領域を提供させることを特徴とする記録媒体。
【０１０１】
（項目３５）  外部から受け取ったデータを格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記外部記憶装置は、第１の記録媒体と、前記第１の記録媒体よりアクセス速度の遅い第２の記録媒体とを備え、前記プログラムは、前記外部記憶装置に、前記外部記憶装置にデータの書込みを指示する書込みアクセスを受信した場合に、書込み対象のデータである書込みデータを、前記第１の記録媒体に格納可能かどうかを判断させる判断モジュールと、前記外部記憶装置に、前記書込みデータを前記第１の記録媒体に格納可能と判断した場合には、前記書込みデータを圧縮して前記第１の記録媒体に格納させ、前記書込みデータを前記第１の記録媒体に格納不可能と判断した場合には、前記書込みデータを前記第２の記録媒体に格納させ、前記外部記憶装置にデータの読み出しを指示する読出しアクセスを受信した場合に、読出し対象のデータである読出しデータが前記第１の記録媒体及び前記第２の記録媒体のいずれに格納されているかを判断させ、前記読出しデータが前記第１の記録媒体に格納されている場合には、前記読出しデータを前記第１の記録媒体から読み出して復元させ、前記読出しデータが前記第２の記録媒体に格納されている場合には、前記読出しデータを前記第２の記録媒体から読み出させるアクセス処理モジュールとを備えることを特徴とする記録媒体。
【０１０２】
（項目３６）  外部から受け取ったデータを格納する外部記憶装置を制御するプログラムを記録した記録媒体であって、前記外部記憶装置は、予めサイズが定められた第１のブロックを用いて前記データを格納する第１の記録媒体と、前記第１のブロックと比較しサイズが大きい第２のブロックを用いて前記データを格納する第２の記録媒体と、前記データを前記第２のブロック単位で分割したデータブロックのそれぞれに対応付けて、当該データブロックの格納位置を示す情報を格納する位置テーブルとを備え、前記プログラムは、前記外部記憶装置に、前記データブロックを前記第１の記録媒体に格納する場合に、前記データブロックを格納する前記第１のブロックの位置を示す情報を前記位置テーブルに格納させ、前記データブロックを前記第２の記録媒体に格納する場合に、前記データブロックを格納する前記第２のブロックの位置を示す情報を前記位置テーブルに格納させるアクセス処理モジュールを備えることを特徴とする記録媒体。
【発明の効果】
上記説明から明らかなように、本発明によれば複数の記録媒体を備え、これらの記録媒体の特長を兼ね備える外部記憶装置、外部記憶装置制御方法、プログラム及び記録媒体を提供することができる。
【図面の簡単な説明】
【図１】  本発明の実施形態に係る計算機システム１００の構成の一例を示す図。
【図２】  本発明の実施形態に係る外部記憶装置１１０が提供する記憶領域のデータ構造を示す図。
【図３】  本発明の実施形態に係る外部記憶装置１１０の構成を示す図。
【図４】  本発明の実施形態に係る半導体メモリ２００のデータ構造を示す図。
【図５】  本発明の実施形態に係るハードディスク２１０のデータ構造を示す図。
【図６】  本発明の実施形態に係る外部記憶装置１１０に格納されるデータの格納形式の一例を示す図。
【図７】  本発明の実施形態に係る外部記憶装置１１０のデータ書込処理の流れ図。
【図８】  本発明の実施形態に係る外部記憶装置１１０のデータ読出処理の流れ図。
【図９】  本発明の実施形態に係る外部記憶装置１１０のハードウェア構成の一例を示す図。
【符号の説明】
１００  計算機システム
１１０  外部記憶装置
１２０  計算機
１３０  管理装置
１４０  ネットワーク
２００  半導体メモリ
２１０  ハードディスク
２２０  制御ユニット
２３０  補助電源部
２４０  抑制部
２４５  通信インターフェイス
２４７  容量管理部
２５０  制御部
２５５  通知部
２６０  表示部
２６５  音源部
２６７  ステータスレジスタ
２６９  トラップ生成部
２７０  診断部
２７５  判断部
２７７  アクセス処理部
２８０  圧縮部
２８５  割当部
２９０  格納部
２９５  転送部
２９７  復元部
３１０  位置テーブル
３１５  管理情報
３２０  Ｍブロック領域
３３０ａ〜ｃ  Ｍブロック
３４０  Ｈブロック領域
３４５  バックアップ領域
３５０  Ｈブロック
５００  計算機
５１０  ＣＰＵ
５２０  ＲＯＭ
５３０  ＲＡＭ
５４０  通信インターフェイス
５５０  ハードディスクドライブ
５６０  ＦＤドライブ
５７０  ＣＤ−ＲＯＭドライブ
５８０  出力装置
５８５  入力装置
５９０  フロッピーディスク
５９５  ＣＤ−ＲＯＭ
【図１】
0003900467.tif 000002
【図２】
0003900467.tif 000003
【図３】
0003900467.tif 000004
【図４】
0003900467.tif 000005
【図５】
0003900467.tif 000006
【図６】
0003900467.tif 000007
【図７】
0003900467.tif 000008
【図８】
0003900467.tif 000009
【図９】
0003900467.tif 000010