(57)【要約】【課題】高速かつ効率的にデータを記録媒体に書き込む。【解決手段】複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置は、複数の書込データのそれぞれについて、当該書込データを、当該書込データをデータ記録媒体に対して書き込む書込指示に対応付けて受信した場合に、当該書込データをデータ記録媒体の少なくとも一のセグメントに対して書き込む順次書込部と、一の書込データのサイズが予め定められた規定サイズより小さい場合に、順次書込部によりデータ記録媒体に書き込まれた複数の書込データのうち、一の書込データ以降に書き込まれた複数の書込データを連結して、データ記録媒体における、連結の対象となった複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込部とを備える。【選択図】  図１
2004341925.tif 000002
【特許請求の範囲】
【請求項１】
複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置であって、
前記複数の書込データのそれぞれについて、当該書込データを前記データ記録媒体に対して書き込む書込指示を受信した場合に、当該書込データを前記データ記録媒体の少なくとも一のセグメントに対してセグメント単位で書き込む順次書込部と、
一の前記書込データのサイズが予め定められた規定サイズより小さい場合に、前記順次書込部により前記データ記録媒体に書き込まれた前記複数の書込データのうち、前記一の書込データ以降に書き込まれた複数の前記書込データを連結して、前記データ記録媒体における、連結の対象となった前記複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込部と
を備える記憶装置。
【請求項２】
前記順次書込部により前記複数の書込データのそれぞれが書き込まれる毎に、当該書込データと当該書込データの次の書込データとの前記データ記録媒体における書込位置を近づけるべく、前記次の書込データの書込位置を調節する書込位置調節部と、
前記一の書込データ以降に書き込む書込データにおいて、前記書込位置調節部による前記書込位置の調節を停止する調節停止部と
を更に備える請求項１記載の記憶装置。
【請求項３】
前記一の書込データ以降の書込データを書き込む前記書込指示を受信する毎に、当該書込データを、当該書込データを受信する以前に既に受信していた書込データに順次連結して格納する連結格納部を更に備え、
前記順次書込部は、前記一の書込データ以降の書込データを書き込む前記書込指示を受信する毎に、前記連結格納部における、当該書込データ及び当該書込データ以前に受信した書込データを含むセグメントを、前記データ記録媒体に書き込む
請求項１記載の記憶装置。
【請求項４】
前記順次書込部は、前記テープ記録媒体において前記一の書込データを書き込んだ書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込み、
当該記憶装置は、
前記順次書込部による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込部
を更に備え、
前記連結書込部は、前記反転書込部による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記一の書込データ以降の書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記順次書込部が前記一の書込データ以前の書込データを書き込んでいたトラックに書き込む
請求項１記載の記憶装置。
【請求項５】
前記データ記録媒体に書き込まれるべき前記複数の書込データを外部から順次取得し、前記複数の書込データを取得する時間間隔を計測するデータ取得部を更に備え、
前記連結書込部は、前記データ取得部により計測された時間間隔がより大きい場合に、前記データ取得部により計測された時間間隔がより小さい場合と比較して、前記規定サイズをより大きく設定する請求項１記載の記憶装置。
【請求項６】
前記一の書込データ以降の他の書込データのサイズが、前記規定サイズより大きい値に予め定められた第２規定サイズより大きい場合に、前記連結書込部は、前記一の書込データ以降、かつ前記他の書込データ以前の書込データを連結する請求項１記載の記憶装置。
【請求項７】
前記連結書込部は、前記一の書込データ以前に、前記規定サイズより小さい書込データを規定回数以上検出した場合に、前記一の書込データ以降に書き込まれた複数の書込データを連結する請求項１記載の記憶装置。
【請求項８】
前記連結書込部は、前記複数の書込データ以前に書き込まれた他の複数の書込データが、連結して書き込まれている場合に、前記他の複数の書込データが連結されずに書き込まれている場合と比べて、前記規定回数を小さく設定する請求項７記載の記憶装置。
【請求項９】
テープ記録媒体を進行させることにより書込データを逐次的に書き込む記憶装置であって、
前記テープ記録媒体において予め定められた書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込む順次書込部と、
前記順次書込部による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込部と、
前記反転書込部による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記順次書込部及び前記反転書込部により書き込まれた書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記複数のトラックのうち何れかに書き込む連結書込部と、
前記複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節する進行量基準値調節部とを備える記憶装置。
【請求項１０】
前記進行量基準値調節部は、
前記反転書込部による進行量が前記進行量基準値に達するより前に、前複数の書込データの書き込みが終了した場合に、当該複数の書込データの書き込みに用いた前記進行量基準値より小さい値を、次に書き込む複数の書込データに対する進行量基準値として設定する
請求項９記載の記憶装置。
【請求項１１】
前記進行量基準値調節部は、
前記反転書込部による進行量が前記進行量基準値に達してもなお、前記複数の書込データの書き込みが終了していない場合に、当該複数の書込データの書き込みに用いた前記進行量基準値より大きい値を、次に書き込む複数の書込データに対する進行量基準値として設定する
請求項９記載の記憶装置。
【請求項１２】
当該記憶装置は、
前記データ記録媒体上における、前記順次書込部による前記複数の書込データの書込み間隔の見積もりである書込間隔基準値を格納する書込間隔基準値格納部を更に備え、
前記反転書込部は、前記書込間隔基準値に基づき、前記進行量基準値に達する時点で書き込まれる書込データを特定し、特定した当該書込データが書き込まれた場合に、前記データ記録媒体の進行量が進行量基準値に達したと判断し、
当該記憶装置は、
前記順次書込部により書き込まれる書込データのサイズが予め定められたサイズより小さい場合に、前記順次書込部により書き込まれる書込データのサイズが予め定められたサイズより大きい場合と比較して、前記書込間隔基準値をより大きい値に設定する書込間隔基準値調節部
を更に備える請求項９記載の記憶装置。
【請求項１３】
複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置をコンピュータにより制御する制御方法であって、
前記複数の書込データのそれぞれについて、当該書込データを前記データ記録媒体に対して書き込む書込指示を受信した場合に、当該書込データを前記データ記録媒体の少なくとも一のセグメントに対してセグメント単位で書き込む順次書込段階と、
一の前記書込データのサイズが予め定められた規定サイズより小さい場合に、前記順次書込段階により前記データ記録媒体に書き込まれた前記複数の書込データのうち、前記一の書込データ以降に書き込まれた複数の前記書込データを連結して、前記データ記録媒体における、連結の対象となった前記複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込段階と
を備える制御方法。
【請求項１４】
テープ記録媒体を進行させることにより書込データを逐次的に書き込む記憶装置をコンピュータにより制御する制御方法であって、
前記テープ記録媒体において予め定められた書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込む順次書込段階と、
前記順次書込段階による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込段階と、
前記反転書込段階による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記順次書込部及び前記反転書込部により書き込まれた書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記複数のトラックのうち何れかに書き込む連結書込段階と、
前記複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節する進行量基準値調節段階と
を備える制御方法。
【請求項１５】
複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置をコンピュータにより制御するプログラムであって、
前記コンピュータを、
前記複数の書込データのそれぞれについて、当該書込データを前記データ記録媒体に対して書き込む書込指示を受信した場合に、当該書込データを前記データ記録媒体の少なくとも一のセグメントに対してセグメント単位で書き込む順次書込部と、
一の前記書込データのサイズが予め定められた規定サイズより小さい場合に、前記順次書込部により前記データ記録媒体に書き込まれた前記複数の書込データのうち、前記一の書込データ以降に書き込まれた複数の前記書込データを連結して、前記データ記録媒体における、連結の対象となった前記複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込部と
して機能させるプログラム。
【請求項１６】
テープ記録媒体を進行させることにより書込データを逐次的に書き込む記憶装置を、コンピュータにより制御するプログラムであって、
前記コンピュータを、
前記テープ記録媒体において予め定められた書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込む順次書込部と、
前記順次書込部による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込部と、
前記反転書込部による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記順次書込部及び前記反転書込部により書き込まれた書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記複数のトラックのうち何れかに書き込む連結書込部と、
前記複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節する進行量基準値調節部として機能させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置、制御方法、プログラム、及び記録媒体に関する。特に本発明は、データ記録媒体にデータを書き込む方法を制御する記憶装置、制御方法、プログラム、及び記録媒体に関する。
【０００２】
【従来の技術】
近年、高速かつ大容量なテープドライブの規格として、ＬＴＯ（ＬｉｎｅａｒＴａｐｅ  Ｏｐｅｎ）規格が注目されている（非特許文献１参照。）。上記規格に準拠したテープドライブ装置は、テープ記録媒体に書き込むべき書込データを、当該書込データをテープ記録媒体に対して書き込む明示的な書込指示（例えば、ＳＹＮＣ指示）に対応付けて受信した場合に、当該書込データを、装置内のバッファに蓄積することなく、テープ記録媒体に対して書き込む。これにより、テープドライブ装置の電源が不用意に遮断された場合であっても、テープ記録媒体に書込データが書き込まれることを保証することができる。
【０００３】
【非特許文献１】
「ＬＴＯ規格」、ヒューレットパッカードコーポレーション、インターナショナル・ビジネスマシーンズ・コーポレーション、及びシーゲートテクノロジーズコーポレーション著、ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｌｔｏ−ｔｅｃｈｎｏｌｏｇｙ．ｃｏｍ／、平成１５年４月９日検索
【０００４】
【発明が解決しようとする課題】
しかしながら、上記装置が、書込指示を頻繁に受け取る場合には、書込データの容量当たりの、書込データをテープ記録媒体に書き出す処理に要する時間が大きくなってしまい、効率が悪い。
そこで本発明は、上記の課題を解決することのできる記憶装置、制御方法、プログラム、及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００５】
【課題を解決するための手段】
即ち、本発明の第１の形態によると、複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置であって、複数の書込データのそれぞれについて、当該書込データを、当該書込データをデータ記録媒体に対して書き込む書込指示に対応付けて受信した場合に、当該書込データをデータ記録媒体の少なくとも一のセグメントに対して書き込む順次書込部と、一の書込データのサイズが予め定められた規定サイズより小さい場合に、順次書込部によりデータ記録媒体に書き込まれた複数の書込データのうち、一の書込データ以降に書き込まれた複数の書込データを連結して、データ記録媒体における、連結の対象となった複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込部とを備える記憶装置、当該記憶装置を制御するプログラム、当該プログラムを記録した記録媒体を提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【０００６】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、テープ記憶装置１０のブロック図を示す。テープ記憶装置１０は、複数の書込データを、データ記録媒体の一例であるテープ記録媒体２０に対して、テープ記録媒体２０を進行させることにより、予め定められたサイズのセグメント単位で逐次的に書き込む装置であり、データ取得部１００と、連結格納部１１０と、順次書込部１２０と、書込位置調節部１３０と、調節停止部１４０と、反転書込部１５０と、連結書込部１６０と、進行量基準値調節部１７０と、書込間隔基準値格納部１８０と、書込間隔基準値調節部１９０とを備える。
【０００７】
データ取得部１００は、テープ記録媒体２０に書き込まれるべき複数の書込データを、当該書込データをテープ記録媒体２０に対して書き込む書込指示に対応付けて、ネットワークを介して外部のホストコンピュータ等から順次取得し、連結格納部１１０及び順次書込部１２０に送る。また、データ取得部１００は、当該複数の書込データを取得する時間間隔を計測し、計測結果を連結格納部１１０及び調節停止部１４０に送る。また、データ取得部１００は、複数の書込データのそれぞれを取得する毎に、当該書込データのサイズを示すサイズ情報を調節停止部１４０及び書込間隔基準値調節部１９０に送る。また、データ取得部１００は、複数の書込データの終端を示す終端情報（例えば、ＥＯＤ情報：Ｅｎｄ  ｏｆ  Ｄａｔａ情報）を取得し、進行量基準値調節部１７０に送る。
【０００８】
ここで、書込指示とは、書込データをテープ記憶装置１０内のバッファ等に格納するのみならず、テープ記録媒体２０に対して書き込む旨を明示的に示す指示であり、一例としては、テープ記憶装置１０が受信した書込データと、テープ記録媒体２０に書き込まれた書込データとを一致させるＳＹＮＣ指示である。
【０００９】
連結格納部１１０は、データ取得部１００から受け取った一の書込データのサイズが予め定められた規定サイズより小さい場合において、当該一の書込データ以降の書込データを書込指示に対応付けて受信する毎に、当該書込データを、当該書込データを受信する以前に既に受信していた書込データに順次連結して格納する。また、連結格納部１１０は、複数の書込データを取得する時間間隔を測定した測定結果をデータ取得部１００から受け取り、当該測定結果に応じて規定サイズの値を変更する。
【００１０】
順次書込部１２０は、複数の書込データのそれぞれについて、当該書込データを書込指示に対応付けてデータ取得部１００から受信する毎に、当該書込データを、テープ記録媒体２０の少なくとも一のセグメントに対してセグメント単位で書き込む。そして、順次書込部１２０は、書込位置調節部１３０から受け取る書込位置調節指示に応じて、次に書き込む書込データの書込位置を決定する。更に、順次書込部１２０は、テープ記録媒体２０の進行方向を反転させる反転指示を反転書込部１５０から受けた場合には、テープ記録媒体２０の進行方向を変更する。更に、順次書込部１２０は、書込データを書き込むべくテープ記録媒体２０を進行させた進行量を示す情報を、反転書込部１５０に送る。
【００１１】
また、順次書込部１２０は、規定サイズより小さい一の書込データを受け取った場合には、当該一の書込データ以降の書込データをデータ取得部１００から受け取る毎に、連結格納部１１０における、当該書込データ及び当該書込データ以前に受信した書込データを含むセグメントを、テープ記録媒体２０に書き込む。また、順次書込部１２０は、書込データを連結書込部１６０から受け取った場合には、受け取った当該書込データをテープ記録媒体２０に対して書き込む。
【００１２】
書込位置調節部１３０は、順次書込部１２０により複数の書込データのそれぞれが書き込まれる毎に、当該書込データと当該書込データの次の書込データとのテープ記録媒体２０における書込位置を近づけるべく、当該次の書込データの書込位置を調節する書込位置調節指示を、順次書込部１２０に送る。また、書込位置調節部１３０は、調節停止部１４０からの指示に応じて、書込位置の調節を停止する。なお、書込位置を近づけるとは、テープ記録媒体２０における物理的な書込位置を近づけることに限定されない。例えば、書込位置調節部１３０は、書込データと次の書込データとを読み出す場合に要する時間を短縮するように当該次の書込データの書込位置を調節してもよい。
【００１３】
また、書込位置調節部１３０は、書込位置を調節する処理の一例として、テープ記録媒体２０を巻き戻す処理（Ｂａｃｋｈｉｔｃｈ）を行う。即ち、テープ記憶装置１０は、テープ記録媒体２０を進行させ続けながら書込データを順次書き込んでおり、書込データを受信してから次の書込データを受信するまでの間に時間間隔が空く場合、その間にテープ記録媒体２０を進行させる。その結果、テープ記録媒体２０に書き込まれる書込データの占有率が小さくなってしまう。従って、書込位置調節部１３０は、書込データを書き込む毎に、テープ記録媒体２０を所定量巻き戻すことにより、複数の書込データをテープ記録媒体２０に対して効率的に書き込む。また、これに代えて、書込位置調節部１３０は、書込みに用いる書込ヘッドの位置を調整することにより、書込位置を調節してもよい。
【００１４】
調節停止部１４０は、データ取得部１００から受け取ったサイズ情報に基づき、データ取得部１００が受信した一の書込データのサイズが規定サイズより小さいと判断した場合に、当該一の書込データ以降に書き込む書込データにおいて書込位置調節部１３０による書込位置の調節を停止する。この場合、順次書込部１２０は、巻き戻し処理（Ｂａｃｋｈｉｔｃｈ）を行わずに書込データをテープ記録媒体２０に対して書き込むバックヒッチレスフラッシュ（Ｂａｃｋｈｉｔｃｈｌｅｓｓ  Ｆｌｕｓｈ）を行うので、巻き戻し処理を行う場合と比較して、高速に動作する。また、調節停止部１４０は、複数の書込データを取得する時間間隔を測定した測定結果をデータ取得部１００から受け取り、当該測定結果に応じて規定サイズの値を変更する。
【００１５】
反転書込部１５０は、順次書込部１２０がテープ記録媒体２０を進行させた進行量を示す情報を、順次書込部１２０から受け取る。そして、反転書込部１５０は、順次書込部１２０による進行量が進行量基準値に達した場合に、テープ記録媒体２０の進行方向を反転させる反転指示を順次書込部１２０に送る。より詳細には、反転書込部１５０は、書込データの書込み位置の間隔を示す書込間隔基準値を書込間隔基準値格納部１８０から取得し、当該書込間隔基準値と、順次書込部１２０がテープ記録媒体２０を進行させた進行量とに基づき、進行量基準値に達する時点で書き込まれる書込データを特定し、特定した当該書込データが順次書込部１２０により書き込まれた場合に、順次書込部１２０による進行量が進行量基準値に達したと判断する。この結果、反転書込部１５０は、順次書込部１２０が書き込んでいた書込方向とは異なる書込方向により、テープ記録媒体２０に対して書込データを順次書き込む。
また、反転書込部１５０は、進行方向の反転後にテープ記録媒体２０を進行させた進行量を示す情報を進行量基準値調節部１７０に送る。更に、反転書込部１５０は、進行量基準値調節部１７０からの指示に応じて進行量基準値を変更する。
【００１６】
連結書込部１６０は、連結格納部１１０に格納されている書込データ、即ち、順次書込部１２０によりテープ記録媒体２０に書き込まれた複数の書込データのうち、規定サイズよりサイズの小さい一の書込データ以降に書き込まれた複数の書込データを、連結する。そして、連結書込部１６０は、連結した当該複数の書込データを順次書込部１２０に送ることにより、連結の対象となった当該複数の書込データの書き込みに要していたテープ記録媒体２０上のセグメントより少ない数のセグメントに対して、連結した当該複数の書込データを書き込む。
【００１７】
進行量基準値調節部１７０は、複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節するべく、反転書込部１５０に指示を送る。例えば、進行量基準値調節部１７０は、反転書込部１５０から受け取った進行量の累積が進行量基準値に達するより前に、データ取得部１００から終端情報を受け取ることにより複数の書込データの書き込みが終了したと判断した場合に、当該複数の書込データの書き込みに用いた進行量基準値より小さい値を、次に書き込む複数の書込データに対する進行量基準値として設定するべく、反転書込部１５０に指示する。一方、進行量基準値調節部１７０は、反転書込部１５０から受け取った進行量の累積が進行量基準値に達してもなお、データ取得部１００から終端情報を受け取らず複数の書込データの書き込みが終了していないと判断した場合に、当該複数の書込データの書き込みに用いた進行量基準値より大きい値を、次に書き込む複数の書込データに対する進行量基準値として設定するべく、反転書込部１５０に指示する。
【００１８】
書込間隔基準値格納部１８０は、テープ記録媒体２０上における、順次書込部１２０により複数の書込データを書き込む書込み位置の間隔の見積もりである書込間隔基準値を格納する。そして、書込間隔基準値調節部１９０は、データ取得部１００から受け取った書込データのサイズが予め定められたサイズより小さい場合に、当該書込データのサイズが予め定められたサイズより大きい場合と比較して、書込間隔基準値格納部１８０に格納されている書込間隔基準値をより大きい値に設定する。
【００１９】
このように、テープ記憶装置１０は、規定サイズより小さい一の書込データを検出した場合に、当該一の書込データ以降の書込データについて、書込位置の調節を停止する。これにより、テープ記憶装置１０は、書込位置を調節するべくテープ記録媒体２０を巻き戻す時間を節約し、高速な書込みを行うことができる。また、テープ記憶装置１０は、規定サイズより小さい一の書込データを検出した場合に、当該一の書込データ以降の書込データを、連結格納部１１０に格納しておき、連結してテープ記録媒体２０に書き直す。これにより、テープ記憶装置１０は、テープ記録媒体２０内の記憶領域を効率的に使用することができる。
【００２０】
図２は、テープ記憶装置１０のフローチャートを示す。テープ記憶装置１０は、バックヒッチ書込を行うべく、以下の処理を行う。データ取得部１００は、複数の書込データのそれぞれを、書込指示に対応付けて、ネットワークを介して外部から順次取得する（Ｓ２００）。そして、順次書込部１２０は、複数の書込データのそれぞれを、テープ記録媒体２０の少なくとも一のセグメントに対して順次書き込む（Ｓ２１０）。続いて、書込位置調節部１３０は、順次書込部１２０により複数の書込データのそれぞれが書き込まれる毎に、当該書込データと当該書込データの次の書込データとのテープ記録媒体２０における書込位置を近づけるべく、当該次の書込データの書込位置を調節する（Ｓ２２０）。
【００２１】
調節停止部１４０は、データ取得部１００が受信した一の書込データのサイズが規定サイズより小さいと判断した場合（Ｓ２３０：ＹＥＳ）、かつ、規定サイズより小さい書込データを既に規定回数以上書き込んでいた場合に（Ｓ２４０：ＹＥＳ）、当該一の書込データ以降に書き込む書込データにおいて、バックヒッチ書込を停止、即ち、書込位置調節部１３０による書込位置の調節を停止し（Ｓ２５０）、図３のＳ３００に処理を移す。一方、調節停止部１４０は、データ取得部１００が受信した一の書込データのサイズが規定サイズより大きい場合（Ｓ２３０：ＮＯ）、又は、規定サイズより小さい書込データを書き込んだ回数が規定回数に満たない場合に（Ｓ２４０：ＮＯ）、データ取得部１００が書込データを取得する時間間隔に応じて規定サイズを調節し（Ｓ２６０）、Ｓ２００に処理を戻す。なお、本図に示した、調節停止部１４０が規定サイズを調節するタイミングは、一例であり、他のタイミングで調節してもよい。例えば、調節停止部１４０は、データ取得部１００が書込データを受信する毎に、又は、書込データを予め定めた回数受信する毎に、規定サイズを調節してもよい。
【００２２】
図３は、図２に続くテープ記憶装置１０のフローチャートを示す。テープ記憶装置１０は、書込データを累積して書き出す累積書込みを行うべく、以下の処理を行う。データ取得部１００は、複数の書込データのそれぞれを、書込指示に対応付けて、ネットワークを介して外部から順次取得する（Ｓ３００）。そして、連結格納部１１０は、規定サイズより小さい当該一の書込データ以降の書込データを受信する毎に、当該書込データを、当該書込データを受信する以前に既に受信していた書込データに順次連結して格納する（Ｓ３１０）。そして、順次書込部１２０は、当該一の書込データ以降の書込データを書込指示に対応付けて受け取る毎に、連結格納部１１０における、書込データ及び書込データ以前に受信した書込データを含むセグメントを、テープ記録媒体２０に書き込む（Ｓ３２０）。
【００２３】
続いて、反転書込部１５０は、書込データの書込み位置の間隔を示す書込間隔基準値に基づき、進行量基準値に達する時点で書き込まれる書込データを特定する（Ｓ３３０）。反転書込部１５０は、特定した当該書込データが順次書込部１２０により書き込まれた場合、即ち、順次書込部１２０によるテープ記録媒体２０の進行量が進行量基準値に達した場合に（Ｓ３４０：ＹＥＳ）、図４のＳ４００に処理を移す。一方、反転書込部１５０は、順次書込部１２０によるテープ記録媒体２０の進行量が進行量基準値に達していない場合に（Ｓ３４０：ＮＯ）、規定サイズよりサイズが小さい当該一の書込データ以降の他の書込データのサイズが、規定サイズより大きい値に予め定められた第２規定サイズより大きいか否かを判断する（Ｓ３５０）。
【００２４】
他の書込データのサイズが第２規定サイズより大きい場合に（Ｓ３５０：ＹＥＳ）、テープ記憶装置１０は、図４のＳ４００に処理を移す。一方、他の書込データのサイズが第２規定サイズ以下の場合に（Ｓ３５０：ＮＯ）、進行量基準値調節部１７０は、複数の書込データの書き込みが終了したか否かを判断する（Ｓ３６０）。複数の書込データの書き込みが終了していない場合に、（Ｓ３６０：ＮＯ）、テープ記憶装置１０は、Ｓ３００に処理を移す。
【００２５】
一方、複数の書込データの書き込みが終了した場合に、（Ｓ３６０：ＹＥＳ）、順次書込部１２０は、一の書込データ以降の書込データを書き込み始めた書込開始位置までテープ記録媒体２０を巻き戻し（Ｓ３７０）、進行量基準値調節部１７０は、必要に応じて進行量基準値を変更し（Ｓ３８０）、連結書込部１６０は、一の書込データ以降、かつ他の書込データ以前の書込データを連結して書き込む処理を行い（Ｓ３９０）、処理を終了する。
【００２６】
図４は、図３に続くテープ記憶装置１０のフローチャートを示す。本図において、調節停止部１４０は、テープ記録媒体２０の進行方向を反転させ、テープ記憶装置１０は、反転した当該進行方向において累積書込を行う。データ取得部１００は、複数の書込データのそれぞれを、書込指示に対応付けて、ネットワークを介して外部から順次取得する（Ｓ４００）。そして、連結格納部１１０は、規定サイズより小さい当該一の書込データ以降の書込データを受信する毎に、当該書込データを、当該書込データを受信する以前に既に受信していた書込データに順次連結して格納する（Ｓ４１０）。続いて、調節停止部１４０は、当該一の書込データ以降の書込データを書込指示に対応付けて受け取る毎に、順次書込部１２０がテープ記録媒体２０に対して書き込んでいた書込方向とは異なる書込方向により、連結格納部１１０におけるセグメントを、テープ記録媒体２０に書き込む（Ｓ４２０）。
【００２７】
続いて、反転書込部１５０は、書込データの書込み位置の間隔を示す書込間隔基準値に基づき、進行量基準値に達する時点で書き込まれる書込データを特定する（Ｓ４３０）。反転書込部１５０は、特定した当該書込データが順次書込部１２０により書き込まれた場合、即ち、調節停止部１４０によるテープ記録媒体２０の進行量が進行量基準値に達した場合に（Ｓ４４０：ＹＥＳ）、規定サイズよりサイズが小さい当該一の書込データ以降の他の書込データのサイズが、上記第２規定サイズより大きいか否かを判断する（Ｓ４５０）。他の書込データのサイズが第２規定サイズ以下の場合に（Ｓ４５０：ＮＯ）、連結書込部１６０は、規定回数を減じ（Ｓ４６０）、一の書込データ以降の書込データを連結して書き込む処理を行い（Ｓ４９５）、処理を終了する。一方、他の書込データのサイズが第２規定サイズより大きい場合に（Ｓ４５０：ＹＥＳ）、Ｓ４９５に処理を移し、処理を終了する。
【００２８】
一方、調節停止部１４０によるテープ記録媒体２０の進行量が進行量基準値に満たない場合に（Ｓ４４０：ＮＯ）、進行量基準値調節部１７０は、複数の書込データの書き込みが終了したか否かを判断する（Ｓ４７０）。複数の書込データの書き込みが終了していない場合に、（Ｓ４７０：ＮＯ）、テープ記憶装置１０は、Ｓ４００に処理を移す。一方、複数の書込データの書き込みが終了した場合に、（Ｓ４７０：ＹＥＳ）、順次書込部１２０は、一の書込データ以降の書込データを書き込み始めた書込開始位置までテープ記録媒体２０を巻き戻し（Ｓ４８０）、進行量基準値調節部１７０は、必要に応じて進行量基準値を変更し（Ｓ４９０）、連結書込部１６０は、一の書込データ以降、かつ他の書込データ以前の書込データを連結して書き込む処理を行い（Ｓ４９５）、処理を終了する。
【００２９】
図５は、図３のＳ３９０におけるテープ記憶装置１０のフローチャートを示す。連結書込部１６０は、連結格納部１１０により順次格納された書込データ、即ち、規定サイズより小さい一の書込データ以降の複数の書込データを連結する。そして、連結書込部１６０は、連結した当該複数の書込データを順次書込部１２０により書き込ませることにより、連結の対象となった当該複数の書込データの書き込みに要していたテープ記録媒体２０上のセグメントより少ない数のセグメントに対して、連結した当該複数の書込データを書き込む（Ｓ５００）。
【００３０】
書込位置調節部１３０は、複数の書込データの書き込みを終えた場合（ＥＯＤ情報を受けた場合）又は連結の対象の開始点となる当該一の書込データ以降の他の書込データの何れかが上記第２規定サイズより大きい場合に（Ｓ５０５：ＹＥＳ）、順次書込部１２０による書込位置の調整、即ち、バックヒッチ書込を再開する（Ｓ５１０）。一方、テープ記憶装置１０は、複数の書込データの書き込みを終えていない場合、かつ連結の対象の開始点となる当該一の書込データ以降の他の書込データの何れも上記第２規定サイズに満たない場合に（Ｓ５０５：ＮＯ）、図３のＳ３００に処理を戻す。
【００３１】
図６は、テープ記憶装置１０により書込データが書き込まれるテープ記録媒体２０の第１の例を示す。テープ記録媒体２０は、それぞれが書込データを逐次的に記録する複数のトラック、例えば、トラック６００、トラック６１０、及びトラック６２０を有している。テープ記憶装置１０は、書込データを外部から受け取る毎に、バックヒッチ書込を行う（Ｓ６００）。即ち、順次書込部１２０は、書込データをテープ記録媒体２０に対して順次書き込み、書込位置調節部１３０は、順次書込部１２０により書込データが書き込まれる毎に、当該書込データと、当該書込データの次に書き込む書込データとのテープ記録媒体２０における書込位置を近づけるべく、次の書込データの書込位置を調節する。また、この場合、順次書込部１２０は、書込データの末尾が書き込まれるセグメントにおける当該書込データの末尾以降の領域を使用しない空き状態とするように、書込データをセグメント単位でテープ記録媒体２０に書き込む。
【００３２】
連結書込部１６０は、規定サイズより小さい一の書込データを検出した場合において、当該一の書込データ以前に、規定サイズより小さい書込データを規定回数以上検出した場合に、当該一の書込データ以降に書き込まれた複数の書込データを連結するべく、累積書込を開始する（Ｓ６１０）。即ち、連結格納部１１０は、一の書込データ以降の書込データのそれぞれについて、当該書込データを、当該書込データを書き込む以前に既に受信していた書込データに順次連結して累積する。
【００３３】
順次書込部１２０は、テープ記録媒体２０において予め定められた書込開始位置、例えば、トラック６００においてバックヒッチ書込を終えた位置から、テープ記録媒体２０を進行させる進行量が予め定められた進行量基準値に達するまで、テープ記録媒体２０上の第１のトラックの一例であるトラック６１０に対して、書込データを順次書き込む（Ｓ６２０）。この際、順次書込部１２０は、連結格納部１１０における、書込データ及び書込データ以前に受信した書込データを含むセグメントを、トラック６１０に書き込む。
【００３４】
反転書込部１５０は、順次書込部１２０による進行量が進行量基準値に達した場合に（Ｓ６３０）、トラック６１０とは異なる第２のトラックの一例であるトラック６２０に対して、トラック６１０に書き込む書込方向とは異なる書込方向により、書込データを順次書き込む（Ｓ６４０）。連結書込部１６０は、反転書込部１５０による進行量が進行量基準値に達した場合に（Ｓ６５０）、連結書込を行う。具体的には、連結書込部１６０は、順次書込部１２０及び反転書込部１５０により書き込まれた書込データを連結格納部１１０から取得して連結し、テープ記録媒体２０における書込開始位置から、順次書込部１２０が一の書込データ以前の書込データを書き込んでいたトラック６００に書き込む（Ｓ６６０）。以上、累積書込み及び連結書込みの組合せが、ＲＡＢＦ書込（Ｒｅｃｕｒｓｉｖｅ  Ａｃｃｕｍｕｌａｔｉｎｇ  Ｂａｃｋｈｉｔｃｈｌｅｓｓ  Ｆｌｕｓｈ書込）である。テープ記憶装置１０は、このＲＡＢＦ書込みにより、書込データを確実にテープ記録媒体２０に書き込む書込要求を満たしつつ、高速かつ高効率な書き込みを実現できる。
【００３５】
続いて、書込位置調節部１３０が、書込位置の調節を再開することにより、テープ記憶装置１０は、バックヒッチ書込を再開する（Ｓ６７０）。続いて、連結書込部１６０は、複数の書込データ以前に書き込まれた他の複数の書込データが、連結書込により連結して書き込まれているので、複数の書込データ以前に書き込まれた他の複数の書込データが、連結されずに書き込まれている場合と比べて、累積書込みに移行する判断に用いられる規定回数を小さく設定する。これにより、テープ記憶装置１０は、累積書込を再開し易く設定することができる。
【００３６】
なお、テープ記憶装置１０は、連結書込を終了した場合に、累積書込により書き込んだ書込データを消去してもよい。これに代えて、テープ記憶装置１０は、テープ記録媒体２０のうち累積書込に用いた領域を、新たな書込データを上書きしてもよい。但し、テープ記憶装置１０は、累積書き込みの途中で書込エラーが生じた場合には、累積書込みにより書き込んだ書込みデータを消去しなくともよい。この場合、テープ記憶装置１０は、連結書込を行わない。これにより、テープ記憶装置１０は、累積書込及び連結書込の過程で書込エラーが生じた場合であっても、書込データを適切に書き込むことができる。
【００３７】
図７（ａ）は、テープ記憶装置１０の処理時間とテープ記録媒体２０の巻戻し時間との関係を示す。上述したように、連結書込部１６０は、反転書込部１５０による進行量が進行量基準値に達した場合に、順次書込部１２０及び反転書込部１５０により書き込まれた書込データを連結し、テープ記録媒体２０における書込開始位置からトラック６００に書き込む。しかしながら、連結書込部１６０は、反転書込部１５０による進行量が進行量基準値に達していない場合であっても、複数の書込データの書き込みが終了した場合には、順次書込部１２０及び反転書込部１５０により書き込まれた書込データを連結し、テープ記録媒体２０における書込開始位置からトラック６００に書き込む。この際、連結書込部１６０は、連結した当該書込データを書き込むべく、テープ記録媒体２０を書込開始位置まで巻き戻さなければならない。
【００３８】
本図は、進行量基準値に対する、複数の書込データの書き込みに要する処理時間及び最大巻き戻し時間の関係を示す。本図から明らかなように、進行量基準値をより大きく設定すると、テープ記憶装置１０は、複数の書込データの書き込みに要する処理時間を減少させることができる。一方、進行量基準値をより大きく設定すると、巻き戻しに要する時間の最大値を大きくしてしまう。
【００３９】
図７（ｂ）は、連結格納部１１０に格納された書込データの一例を示す。連結格納部１１０は、累積書込モードの往方向において書き込まれる書込データを格納するセグメント７２０−１〜Ｎと、累積書込モードの復方向において書き込まれる書込データを格納するセグメント７３０−１〜Ｍとを有している。連結格納部１１０は、例えば、当該連結格納部１１０が有する格納領域の半数をセグメント７２０−１〜Ｎに、残りをセグメント７３０−１〜Ｍとして割り当てる。
【００４０】
そして、順次書込部１２０が往方向に書込データを書き込んでいる場合には、連結格納部１１０は、書込データをセグメント７２０−１〜Ｎに順次書き込む。例えば、本図は、連結格納部１１０が、書込データ７４０−１〜３を順次書き込んだ状態を示す。そして、反転書込部１５０が復方向に書込データを書き込んでいる場合には、連結格納部１１０は、書込データをセグメント７３０−１〜Ｍに順次書き込む。例えば、本図は、連結格納部１１０が、書込データ７５０−１〜２を書き込んだ状態を示す。
【００４１】
ここで、反転書込部１５０による進行量が進行量基準値に達するより前に、複数の書込データの書込みが終了した場合には、反転書込部１５０は、テープ記録媒体２０を書込開始位置まで巻き戻す処理を行わなければならないのみならず、連結格納部１１０内の記憶領域を適切に使いきることができないので、効率が悪い。
【００４２】
従って、進行量基準値調節部１７０は、巻き戻しに要する時間を減少させ、かつ連結格納部１１０内の記憶領域を有効に使用させるべく、複数の書込データの合計サイズに応じて、複数の書込データの次に書き込む複数書込データに対する進行量基準値を調節する。これにより、次に書き込む複数の書込データのサイズが、既に書き込んだ複数の書込データの合計サイズと略同一である場合には、テープ記憶装置１０は、巻き戻しに要する時間を減少させ、かつ連結格納部１１０内の記憶領域を有効に使用させることができる。
【００４３】
図８は、テープ記憶装置１０により書込データが書き込まれるテープ記録媒体２０の第２の例を示す。テープ記録媒体２０は、それぞれが書込データを逐次的に記録する複数のトラック、例えば、トラック８００及びトラック８１０を有している。
【００４４】
反転書込部１５０は、順次書込部１２０がテープ記録媒体２０を進行させた進行量が進行量基準値に達したと判断した場合に、テープ記録媒体２０の進行方向を反転する。判断方法として、例えば、反転書込部１５０は、進行量が進行量基準値に達する時点で書き込まれる書込データを予め特定しておき、当該書込データが書き込まれた時点で、進行量が進行量基準値に達したと判断する。これにより、テープ記憶装置１０は、書込データを書き込む毎に進行量を判断する必要がなく、進行量基準値に達するタイミングを予め定めておくことができる。但し、この場合、反転書込部１５０は、進行量が進行量基準値に達した時点で書き込まれる書込データを適切に特定しなければならない。
【００４５】
一例としては、まず、反転書込部１５０は、順次書込部１２０により書き込まれた書込データのテープ記録媒体２０上の位置に基づき、進行量基準値に達するまでの残りの進行量を特定する。そして、反転書込部１５０は、当該残りの進行量を、書込間隔基準値格納部１８０に格納されている書込間隔基準値で除することにより、トラック８００において書込データをあと何個書き込めるかを算出する。これにより、反転書込部１５０は、進行量が進行量基準値に達した時点で書き込まれる書込データを適切に特定することができる。
【００４６】
例えば、本図において、順次書込部１２０が書込データ８６０を書き込んだ時点で、進行量が進行量基準値に達するまでの残り進行量は、２Ｘｍｍである。そして、書込間隔基準値格納部１８０は、書込間隔基準値として、Ｘｍｍを格納している。この場合、反転書込部１５０は、残り進行量の２Ｘｍｍを、書込間隔基準値のＸｍｍで除することにより、例えば、あと２個の書込データを書き込んだ時点で進行量基準値に達すると判断する。
【００４７】
しかしながら、複数の書込データが書き込まれる書込み位置の間隔は、書込データを生成する外部の装置等の状態に応じて変化する場合があり、このような場合に書込間隔基準値を変更しなければ、テープ記憶装置１０は、テープ記録媒体２０上の記憶領域及び連結格納部１１０上の記憶領域を適切に利用することができない。例えば、順次書込部１２０がトラック８００に書込データを書き込んでいる時点での書込間隔基準値がＸｍｍであり、反転書込部１５０が書込方向を反転した後の実際の書込間隔がＸ／２ｍｍであった場合について説明する。
【００４８】
本図において、調節停止部１４０が書込データ８７０を書き込んだ時点で、進行量が進行量基準値に達するまでの残り進行量は、２Ｘｍｍである。そして、書込間隔基準値格納部１８０は、書込間隔基準値として、Ｘｍｍを格納している。この場合、調節停止部１４０は、残り進行量の２Ｘｍｍを、書込間隔基準値のＸｍｍで除することにより、例えば、あと２個の書込データを書き込んだ時点で進行量基準値に達すると判断する。しかしながら、実際の書込間隔がＸ／２ｍｍであるため、テープ記憶装置１０は、実際にはあと４個の書込データを書き込むことができるにも関わらず、２個の書込データを書き込んだ時点で進行量基準値に達したと判断してしまうので、効率が悪い。
【００４９】
これを防ぐために、書込間隔基準値調節部１９０は、例えば定期的に、書込間隔基準値を設定し直す。例えば、外部の装置等から受け取る書込データの受取間隔が、書込データのサイズがより大きい場合に、書込データのサイズがより小さい場合と比較して小さくなる傾向がある場合においては、書込間隔基準値調節部１９０は、書込データのサイズが予め定められたサイズより小さい場合に、書込データのサイズが予め定められたサイズより大きい場合と比較して、書込間隔基準値をより大きい値に設定する。これにより、テープ記憶装置１０は、進行量基準値に達する時点で書き込まれる書込データを予め適切に特定することができる。
【００５０】
図９は、テープ記憶装置１０のバックヒッチ書込及びＲＡＢＦ書込の比較を示す。本図は、書込データのサイズに対する、書込データの書き込みに要する時間の関係を示している。図中の実線は、ＲＡＢＦ書込の場合の書き込みに要する時間を示し、一点破線は、バックヒッチ書込の場合の書き込みに要する時間を示している。このように、ＲＡＢＦ書込は、書込データが予め定められたサイズより小さい場合には、バックヒッチ書込と比較して、書き込みに要する時間を減少させることができる。
【００５１】
また、図中の点線は、ＲＡＢＦ書込の場合において、所定のオーバヘッドが生じる場合の、書き込みに要する時間を示している。例えば、テープ記憶装置１０に書込データを送信する外部の装置は、書込データの生成に要する時間及び書込データの送信路におけるデータ送信の遅延時間等の原因により、書込データの送信間隔を空けてしまう場合がある。これにより、テープ記憶装置１０は、ＲＡＢＦ書込において、バックヒッチを行わずに高速に書き込みができるにも関わらず、書込データの取得に間隔が空くので、書き込みに要する時間を増やしてしまう場合がある。
【００５２】
このような場合であっても、ＲＡＢＦ書込に移行するタイミングを適切に判断するべく、データ取得部１００は、書込データを受信する時間間隔を測定し、連結書込部１６０は、測定された時間間隔に応じて、規定サイズを設定する。これにより、テープ記憶装置１０は、外部の装置から受信する書込データの受信間隔が変更された場合であっても、ＲＡＢＦ書込及びバックヒッチ書込の何れかを適切に選択することができる。
【００５３】
図１０は、実施形態又は変形例に係るテープ記憶装置１０のハードウェア構成の一例を示す。テープ記憶装置１０は、バスにより相互に接続されるテープドライブ２０００と、ＣＰＵ２０１０、ＲＡＭ２０２０と、ＲＯＭ２０３０と、通信インターフェイス２０４０とを備える。
【００５４】
テープドライブ２０００は、プログラム記録媒体又はデータ記録媒体の一例であるテープ記録媒体２０からプログラム又はデータを読み取り、ＲＯＭ２０３０に提供する。ＲＯＭ２０３０は、テープ記憶装置１０の起動時にＣＰＵ１０００が実行するブートプログラムや、起動後にテープ記憶装置１０を動作させるプログラム等を格納する。そして、ＣＰＵ２０１０は、これらのプログラムを、ＲＡＭ２０２０を用いて実行する。
【００５５】
テープ記憶装置１０に提供されるプログラムは、テープドライブ２０００によりテープ記録媒体２０から読み出され、テープ記憶装置１０にインストールされる。これに代えて、通信インターフェイス２０４０は、シリアルポート等の入出力装置又はネットワークを介して、情報処理装置３０からプログラムを取得し、テープ記憶装置１０にインストールしてもよい。
【００５６】
情報処理装置３０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００及びＲＡＭ１０２０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５７】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。
【００５８】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介してテープ記憶装置１０等の装置と通信する。ハードディスクドライブ１０４０は、テープ記憶装置１０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、通信インターフェイス１０３０を介してテープ記憶装置１０に提供する。
【００５９】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、テープ記憶装置１０の起動時にＣＰＵ１０００が実行するブートプログラムや、テープ記憶装置１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００６０】
テープ記憶装置１０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等のプログラム記録媒体に格納されて利用者によって提供される。プログラムは、プログラム記録媒体から読み出され、通信インターフェイス１０３０を介してテープ記憶装置１０にインストールされ、テープ記憶装置１０において実行される。
【００６１】
テープ記憶装置１０にインストールされて実行されるプログラムは、データ取得モジュールと、連結格納モジュールと、順次書込モジュールと、書込位置調節モジュールと、調節停止モジュールと、反転書込モジュールと、連結書込モジュールと、進行量基準値調節モジュールと、書込間隔基準値格納モジュールと、書込間隔基準値調節モジュールとを含む。各モジュールがテープ記憶装置１０に働きかけて行わせる動作は、図１から図９において説明したテープ記憶装置１０における、対応する部材の動作と同一であるから、説明を省略する。
【００６２】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置をプログラム記録媒体として使用し、ネットワークを介してプログラムをテープ記憶装置１０に提供してもよい。
【００６３】
上記説明から明らかなように、テープ記憶装置１０は、規定サイズより小さい一の書込データを検出した場合に、当該一の書込データ以降の書込データについて、書込位置の調節を停止する。これにより、テープ記憶装置１０は、書込位置を調節するべくテープ記録媒体２０を巻き戻す時間を節約し、高速な書込みを行うことができる。また、テープ記憶装置１０は、規定サイズより小さい一の書込データを検出した場合に、当該一の書込データ以降の書込データを、連結格納部１１０に格納しておき、連結してテープ記録媒体２０に書き直す。これにより、テープ記憶装置１０は、テープ記録媒体２０内の記憶領域を効率的に使用することができる。そして、テープ記憶装置１０は、受信する書込データのサイズ及び書込データを受信する時間間隔に基づき、書込み位置の調節を停止するか否かを判断する規定サイズ及び規定回数と、累積書込を終了する判断に用いられる進行量基準値及び書込間隔基準値とを設定する。これにより、テープ記憶装置１０は、受信する書込データのサイズ等の傾向に基づき、書込データをテープ記録媒体２０に書き込む方法を適切に切り替え、高速かつ高効率に動作することができる。
【００６４】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６５】
以上に示した実施形態によると、以下の各項目に示す記憶装置、制御方法、プログラム、及び記録媒体が実現される。
【００６６】
（項目１）  複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置であって、前記複数の書込データのそれぞれについて、当該書込データを前記データ記録媒体に対して書き込む書込指示を受信した場合に、当該書込データを前記データ記録媒体の少なくとも一のセグメントに対してセグメント単位で書き込む順次書込部と、一の前記書込データのサイズが予め定められた規定サイズより小さい場合に、前記順次書込部により前記データ記録媒体に書き込まれた前記複数の書込データのうち、前記一の書込データ以降に書き込まれた複数の前記書込データを連結して、前記データ記録媒体における、連結の対象となった前記複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込部とを備える記憶装置。
（項目２）  前記順次書込部により前記複数の書込データのそれぞれが書き込まれる毎に、当該書込データと当該書込データの次の書込データとの前記データ記録媒体における書込位置を近づけるべく、前記次の書込データの書込位置を調節する書込位置調節部と、前記一の書込データ以降に書き込む書込データにおいて、前記書込位置調節部による前記書込位置の調節を停止する調節停止部とを更に備える項目１記載の記憶装置。
【００６７】
（項目３）  前記一の書込データ以降の書込データを書き込む前記書込指示を受信する毎に、当該書込データを、当該書込データを受信する以前に既に受信していた書込データに順次連結して格納する連結格納部を更に備え、前記順次書込部は、前記一の書込データ以降の書込データを書き込む前記書込指示を受信する毎に、前記連結格納部における、当該書込データ及び当該書込データ以前に受信した書込データを含むセグメントを、前記データ記録媒体に書き込む項目１記載の記憶装置。
（項目４）  前記順次書込部は、前記テープ記録媒体において前記一の書込データを書き込んだ書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込み、当該記憶装置は、前記順次書込部による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込部を更に備え、前記連結書込部は、前記反転書込部による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記一の書込データ以降の書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記順次書込部が前記一の書込データ以前の書込データを書き込んでいたトラックに書き込む項目１記載の記憶装置。
【００６８】
（項目５）  前記データ記録媒体に書き込まれるべき前記複数の書込データを外部から順次取得し、前記複数の書込データを取得する時間間隔を計測するデータ取得部を更に備え、前記連結書込部は、前記データ取得部により計測された時間間隔がより大きい場合に、前記データ取得部により計測された時間間隔がより小さい場合と比較して、前記規定サイズをより大きく設定する項目１記載の記憶装置。
（項目６）  前記一の書込データ以降の他の書込データのサイズが、前記規定サイズより大きい値に予め定められた第２規定サイズより大きい場合に、前記連結書込部は、前記一の書込データ以降、かつ前記他の書込データ以前の書込データを連結する項目１記載の記憶装置。
（項目７）  前記連結書込部は、前記一の書込データ以前に、前記規定サイズより小さい書込データを規定回数以上検出した場合に、前記一の書込データ以降に書き込まれた複数の書込データを連結する項目１記載の記憶装置。
（項目８）  前記連結書込部は、前記複数の書込データ以前に書き込まれた他の複数の書込データが、連結して書き込まれている場合に、前記他の複数の書込データが連結されずに書き込まれている場合と比べて、前記規定回数を小さく設定する項目７記載の記憶装置。
【００６９】
（項目９）  テープ記録媒体を進行させることにより書込データを逐次的に書き込む記憶装置であって、前記テープ記録媒体において予め定められた書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込む順次書込部と、前記順次書込部による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込部と、前記反転書込部による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記順次書込部及び前記反転書込部により書き込まれた書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記複数のトラックのうち何れかに書き込む連結書込部と、前記複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節する進行量基準値調節部とを備える記憶装置。
【００７０】
（項目１０）  前記進行量基準値調節部は、前記反転書込部による進行量が前記進行量基準値に達するより前に、前複数の書込データの書き込みが終了した場合に、当該複数の書込データの書き込みに用いた前記進行量基準値より小さい値を、次に書き込む複数の書込データに対する進行量基準値として設定する項目９記載の記憶装置。
（項目１１）  前記進行量基準値調節部は、前記反転書込部による進行量が前記進行量基準値に達してもなお、前記複数の書込データの書き込みが終了していない場合に、当該複数の書込データの書き込みに用いた前記進行量基準値より大きい値を、次に書き込む複数の書込データに対する進行量基準値として設定する項目９記載の記憶装置。
（項目１２）  当該記憶装置は、前記データ記録媒体上における、前記順次書込部による前記複数の書込データの書込み間隔の見積もりである書込間隔基準値を格納する書込間隔基準値格納部を更に備え、前記反転書込部は、前記書込間隔基準値に基づき、前記進行量基準値に達する時点で書き込まれる書込データを特定し、特定した当該書込データが書き込まれた場合に、前記データ記録媒体の進行量が進行量基準値に達したと判断し、当該記憶装置は、前記順次書込部により書き込まれる書込データのサイズが予め定められたサイズより小さい場合に、前記順次書込部により書き込まれる書込データのサイズが予め定められたサイズより大きい場合と比較して、前記書込間隔基準値をより大きい値に設定する書込間隔基準値調節部を更に備える項目９記載の記憶装置。
【００７１】
（項目１３）  複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置をコンピュータにより制御する制御方法であって、前記複数の書込データのそれぞれについて、当該書込データを前記データ記録媒体に対して書き込む書込指示を受信した場合に、当該書込データを前記データ記録媒体の少なくとも一のセグメントに対してセグメント単位で書き込む順次書込段階と、一の前記書込データのサイズが予め定められた規定サイズより小さい場合に、前記順次書込段階により前記データ記録媒体に書き込まれた前記複数の書込データのうち、前記一の書込データ以降に書き込まれた複数の前記書込データを連結して、前記データ記録媒体における、連結の対象となった前記複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込段階とを備える制御方法。
（項目１４）  テープ記録媒体を進行させることにより書込データを逐次的に書き込む記憶装置をコンピュータにより制御する制御方法であって、前記テープ記録媒体において予め定められた書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込む順次書込段階と、前記順次書込段階による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込段階と、前記反転書込段階による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記順次書込部及び前記反転書込部により書き込まれた書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記複数のトラックのうち何れかに書き込む連結書込段階と、前記複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節する進行量基準値調節段階とを備える制御方法。
【００７２】
（項目１５）  複数の書込データをデータ記録媒体に対して予め定められたサイズのセグメント単位で順次書き込む記憶装置をコンピュータにより制御するプログラムであって、前記コンピュータを、前記複数の書込データのそれぞれについて、当該書込データを前記データ記録媒体に対して書き込む書込指示を受信した場合に、当該書込データを前記データ記録媒体の少なくとも一のセグメントに対してセグメント単位で書き込む順次書込部と、一の前記書込データのサイズが予め定められた規定サイズより小さい場合に、前記順次書込部により前記データ記録媒体に書き込まれた前記複数の書込データのうち、前記一の書込データ以降に書き込まれた複数の前記書込データを連結して、前記データ記録媒体における、連結の対象となった前記複数の書込データの書き込みに要していたセグメントより少ない数のセグメントに対して書き込む連結書込部として機能させるプログラム。
（項目１６）  テープ記録媒体を進行させることにより書込データを逐次的に書き込む記憶装置を、コンピュータにより制御するプログラムであって、前記コンピュータを、前記テープ記録媒体において予め定められた書込開始位置から前記テープ記録媒体を進行させた進行量が予め定められた進行量基準値に達するまで、前記テープ記録媒体上に設けられた複数のトラックのうち第１のトラックに書込データを順次書き込む順次書込部と、前記順次書込部による進行量が前記進行量基準値に達した場合に、前記第１のトラックとは異なる第２のトラックに対して、前記第１のトラックに書き込む書込方向とは異なる書込方向により、書込データを順次書き込む反転書込部と、前記反転書込部による進行量が前記進行量基準値に達した場合又は前記複数の書込データの書き込みが終了した場合に、前記順次書込部及び前記反転書込部により書き込まれた書込データを連結し、連結した当該書込データを、前記テープ記録媒体における前記書込開始位置から、前記複数のトラックのうち何れかに書き込む連結書込部と、前記複数の書込データの合計サイズに応じて、当該複数の書込データの次に書き込む複数の書込データに対する進行量基準値を調節する進行量基準値調節部として機能させるプログラム。
【００７３】
【発明の効果】
上記説明から明らかなように、本発明によれば高速かつ効率的にデータを記録媒体に書き込むことができる。
【図面の簡単な説明】
【図１】図１は、テープ記憶装置１０のブロック図を示す。
【図２】図２は、テープ記憶装置１０のフローチャートを示す。
【図３】図３は、図２に続くテープ記憶装置１０のフローチャートを示す。
【図４】図４は、図３に続くテープ記憶装置１０のフローチャートを示す。
【図５】図５は、図３のＳ３９０におけるテープ記憶装置１０のフローチャートを示す。
【図６】図６は、テープ記憶装置１０により書込データが書き込まれるテープ記録媒体２０の第１の例を示す。
【図７】図７（ａ）は、テープ記憶装置１０の処理時間とテープ記録媒体２０の巻戻し時間との関係を示す。図７（ｂ）は、連結格納部１１０に格納された書込データの一例を示す。
【図８】図８は、テープ記憶装置１０により書込データが書き込まれるテープ記録媒体２０の第２の例を示す。
【図９】図９は、テープ記憶装置１０のバックヒッチ書込及びＲＡＢＦ書込の比較を示す。
【図１０】図１０は、テープ記憶装置１０のハードウェア構成の一例を示す。
【符号の説明】
１０  テープ記憶装置
２０  テープ記録媒体
３０  情報処理装置
１００  データ取得部
１１０  連結格納部
１２０  順次書込部
１３０  書込位置調節部
１４０  調節停止部
１５０  反転書込部
１６０  連結書込部
１７０  進行量基準値調節部
１８０  書込間隔基準値格納部
１９０  書込間隔基準値調節部
６００  トラック
６１０  トラック
６２０  トラック
７２０  セグメント
７３０  セグメント
７４０  書込データ
７５０  書込データ
８００  トラック
８１０  トラック
８６０  書込データ
８７０  書込データ
【図１】
2004341925.tif 000003
【図２】
2004341925.tif 000004
【図３】
2004341925.tif 000005
【図４】
2004341925.tif 000006
【図５】
2004341925.tif 000007
【図６】
2004341925.tif 000008
【図７】
2004341925.tif 000009
【図８】
2004341925.tif 000010
【図９】
2004341925.tif 000011
【図１０】
2004341925.tif 000012