(57)【要約】【課題】データの書き込みにおいて生じたエラーを適切に回避し、書き込みを継続する。【解決手段】データを分割した複数のブロックを、データ記録媒体に順次書き込む記憶装置は、複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効であるかを示す有効情報に対応付けて、データ記録媒体に順次書き込む順次書込部と、一のブロックの書込によって、一のブロックの有効情報が、データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出部と、一のブロック以前に書込む他のブロックにおける有効情報以外の部分がエラー領域に書込まれ、かつ他のブロックにおける有効情報がエラー領域以外の部分に書込まれるように、他のブロックが書込まれる書込領域を変更する書込領域変更部と、データ記録媒体における、エラー領域より後に書き込まれる書込領域に、一のブロックを書き込むエラー回避書込部とを備える。【選択図】  図１
2004319030.tif 000002
【特許請求の範囲】
【請求項１】
データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置であって、
前記複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、前記データ記録媒体に順次書き込む順次書込部と、
前記順次書込部による一のブロックの書き込みによって、前記一のブロックの前記有効情報が、前記データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出部と、
前記一のブロック以前に書き込む他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれ、かつ前記他のブロックにおける前記有効情報が前記エラー領域以外の部分に書き込まれるように、前記他のブロックが書き込まれる前記データ記録媒体上の書込領域を変更する書込領域変更部と、
前記データ記録媒体における、前記エラー領域より後に書き込まれる書込領域に、前記一のブロックを書き込むエラー回避書込部と
を備える記憶装置。
【請求項２】
前記エラー検出部は、前記一のブロックの書き込みによって、前記一のブロックの前記有効情報が前記エラー領域に書き込まれたことを検出し、
前記書込領域変更部は、前記書込エラーを検出した場合に、前記一のブロック以前に書き込んだ前記他のブロックを、前記順次書込部が書き込んだ書込領域と異なる領域に書き直すことにより、前記他のブロックの書込領域を変更する
請求項１記載の記憶装置。
【請求項３】
前記書込領域変更部は、前記順次書込部により書き込まれた前記他のブロックに代えて、当該他のブロックのデータを含み、かつ当該他のブロックと比較してよりサイズが大きいブロックを前記他のブロックとして書き込むことにより、前記他のブロックの書込領域を変更する
請求項２記載の記憶装置。
【請求項４】
前記書込領域変更部は、前記順次書込部により書き込まれた前記他のブロックに含まれるデータのうち少なくとも一部を重複して書き込むことにより、前記順次書込部により書き込まれた前記他のブロックと比較してよりサイズが大きいブロックを前記データ記録媒体に書き込む
請求項３記載の記憶装置。
【請求項５】
前記書込領域変更部は、更に、前記順次書込部により書き込まれた前記他のブロックに含まれるデータを、前記データ記録媒体から読み出し、変更した書込領域に書き直す
請求項２記載の記憶装置。
【請求項６】
前記順次書込部により、前記一のブロックの前記有効情報が前記エラー領域に書き込まれた場合に、前記データ記録媒体における前記一のブロックを書き込み始める位置を変更して前記一のブロックを再び前記データ記録媒体に書き込む再書込部を更に備え、
前記エラー検出部は、前記再書込部が前記一のブロックを書き込み始める位置を変更した場合において前記有効情報が前記エラー領域に書き込まれた場合に、前記有効情報が前記エラー領域に書き込まれる旨を検出する
請求項２記載の記憶装置。
【請求項７】
前記エラー検出部は、前記他のブロックの次に連続して記録される前記一のブロックの前記有効情報が、前記エラー領域に書き込まれることを検出し、
前記書込領域変更部は、前記順次書込部により書き込まれた前記他のブロックに代えて、当該他のブロックのデータを含み、かつ当該他のブロックと比較してよりサイズが大きいブロックを前記他のブロックとして書き込むことにより、前記他のブロックの書込領域を変更する
請求項１記載の記憶装置。
【請求項８】
前記有効情報は、前記複数のブロックのそれぞれにおいて、当該ブロックの先頭から予め定められた長さの記憶領域に書き込まれ、
前記エラー検出部は、前記一のブロックの先頭から前記予め定められた長さの間の書き込みにおいて、前記書込エラーが生じる場合に、前記一のブロックの前記有効情報が前記エラー領域に書き込まれる旨を検出し、
前記書込領域変更部は、前記他のブロックの先頭から前記予め定められた長さの部分が前記エラー領域に書き込まれず、かつ前記他のブロックにおける前記予め定められた長さ以降の部分が前記エラー領域に書き込まれるように、前記他のブロックの書込領域を変更する
請求項１記載の記憶装置。
【請求項９】
前記エラー検出部は、前記他のブロックの次に連続して記録される前記一のブロックの前記有効情報が、前記エラー領域に書き込まれることを検出し、
前記書込領域変更部は、前記順次書込部により前記他のブロックが書き込まれる領域に、前記他のブロックの一部であるブロック片を書き込み、前記ブロック片の次に連続して前記他のブロックを書き込むことにより、前記他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれるように、前記他のブロックの書込領域を変更する、
請求項１記載の記憶装置。
【請求項１０】
前記複数のブロックのそれぞれは、既に書き込まれていたデータに対する、新たに書き込むデータの新しさを示すデータ新規度情報を更に含み、
前記書込領域変更部は、前記書込領域変更部により書き込まれる前記ブロック片より高いデータ新規度情報を、前記エラー領域より後に書き込む前記他のブロックに対応付けて書き込む
請求項９記載の記憶装置。
【請求項１１】
データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置を、コンピュータにより制御する制御方法であって、
前記複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、前記データ記録媒体に順次書き込む順次書込段階と、
前記順次書込段階による一のブロックの書き込みによって、前記一のブロックの前記有効情報が、前記データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出段階と、
前記一のブロック以前に書き込む他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれ、かつ前記他のブロックにおける前記有効情報が前記エラー領域以外の部分に書き込まれるように、前記他のブロックが書き込まれる前記データ記録媒体上の書込領域を変更する書込領域変更段階と、
前記データ記録媒体における、前記エラー領域より後に書き込まれる書込領域に、前記一のブロックを書き込むエラー回避書込段階と
を備える制御方法。
【請求項１２】
データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、前記データ記録媒体に順次書き込む順次書込部と、
前記順次書込部による一のブロックの書き込みによって、前記一のブロックの前記有効情報が、前記データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出部と、
前記一のブロック以前に書き込む他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれ、かつ前記他のブロックにおける前記有効情報が前記エラー領域以外の部分に書き込まれるように、前記他のブロックが書き込まれる前記データ記録媒体上の書込領域を変更する書込領域変更部と、
前記データ記録媒体における、前記エラー領域より後に書き込まれる書込領域に、前記一のブロックを書き込むエラー回避書込部と
して機能させるプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したプログラム記録媒体。
【請求項１４】
データを複数のブロックとして順次記録したデータ記録媒体であって、
前記複数のブロックのそれぞれは、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報を含み、
書き込みにエラーが生じた後にデータが書き直されたことを示すデータ書き直し情報を記録している第１データセパレータ領域と、
前記第１データセパレータ領域に連続し、当該データ記録媒体に対する書込エラーを生じさせるエラー領域を含む領域であり、当該データ記録媒体に書き込まれるべき予め定められた第１のブロックの一部を、当該第１のブロックの一部が無効である旨を示す有効情報に対応付けて、前記エラー領域以外の部分に記録している第１データ領域と、
前記第１データ領域に連続して設けられ、前記データ書き直し情報を記録している第２データセパレータ領域と、
前記第２データセパレータ領域に連続して設けられ、前記第１のブロックを、前記第１のブロックが有効である旨を示す有効情報に対応付けて記録している第２データ領域と
を備えるデータ記録媒体。
【請求項１５】
前記第１データ領域は、前記第１のブロックの次に書き込まれるべき第２のブロックの前記有効情報が、前記エラー領域に書き込まれた場合において、前記第１のブロックの前記有効情報以外の部分が前記エラー領域に書き込まれるように前記第１のブロックが書き込まれる書込領域を変更した結果書き込まれたデータを記録しており、
前記第２データ領域は、前記第１のブロックの書込領域が変更された結果生じた書込エラーにより、再度書き込まれた前記第１のブロックを記録している
請求項１４記載のデータ記録媒体。
【請求項１６】
前記第１データ領域は、前記第１のブロックとして書き込まれるべきデータのうち少なくとも一部を重複させたデータを記録している
請求項１４記載のデータ記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置、制御方法、プログラム、プログラム記録媒体、及びデータ記録媒体に関する。特に本発明は、データの書き込みにおいて生じたエラーを回避する記憶装置、制御方法、プログラム、プログラム記録媒体、及びデータ記録媒体に関する。
【０００２】
【従来の技術】
従来、ＬＴＯ（Ｌｉｎｅａｒ  Ｔａｐｅ  Ｏｐｅｎ）規格のテープドライブ装置は、テープ記録媒体上に書込エラーが生じた場合に、当該書込エラーが生じたテープ記録媒体上のエラー領域を飛ばして、当該エラー領域より先に、エラーが生じたブロックを書き直すことができる（非特許文献１参照。）。この場合、上記装置は、書込エラーが生じたブロックからデータを読み出すことにより、当該ブロックが無効であると判断することができる。
【０００３】
【非特許文献１】
「ＬＴＯ規格」、ヒューレットパッカードコーポレーション、インターナショナル・ビジネスマシーンズ・コーポレーション、及びシーゲートテクノロジーズコーポレーション著、ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｌｔｏ−ｔｅｃｈｎｏｌｏｇｙ．ｃｏｍ／、平成１５年４月９日検索
【０００４】
【発明が解決しようとする課題】
しかしながら、ブロックが有効であるか否かを示す情報を書き込むより前に、書込エラーが生じた場合、例えば、ブロックが有効であるか否かを判断するために必要な予め定められた長さ分の情報を書き込む前に書込エラーが生じた場合には、上記装置は、書き込んだブロックが有効であるか否かを適切に記録することができない。この場合、テープ記録媒体におけるエラー領域以降の部分が使用不能となってしまう場合があった。
そこで本発明は、上記の課題を解決することのできる記憶装置、制御方法、プログラム、プログラム記録媒体、及びデータ記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００５】
【課題を解決するための手段】
即ち、本発明の第１の形態によると、データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置であって、複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、データ記録媒体に順次書き込む順次書込部と、順次書込部による一のブロックの書き込みによって、一のブロックの有効情報が、データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出部と、一のブロック以前に書き込む他のブロックにおける有効情報以外の部分がエラー領域に書き込まれ、かつ他のブロックにおける有効情報がエラー領域以外の部分に書き込まれるように、他のブロックが書き込まれるデータ記録媒体上の書込領域を変更する書込領域変更部と、データ記録媒体における、エラー領域より後に書き込まれる書込領域に、一のブロックを書き込むエラー回避書込部とを備える記憶装置、記憶装置を制御する制御方法、プログラム、当該プログラムを記録したプログラム記録媒体、当該記憶装置により生成されたデータ記録媒体を提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【０００６】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、テープ記憶装置１０の機能ブロック図を示す。テープ記憶装置１０は、本発明に係る記憶装置の一例であるテープドライブ装置であり、例えば、ＬＴＯ規格に準拠した装置である。テープ記憶装置１０は、データを分割した複数のブロックを、データを記録するデータ記録媒体の一例であるテープ記録媒体５０に逐次的（シーケンシャル）に順次書き込む。この際、テープ記憶装置１０は、書込エラーが生じた場合であっても、書込みエラーが生じた一のブロック以前に書き込まれた他のブロックについて、当該他のブロックの書込領域を変更することにより、書込エラーを適切に回避し、ブロックの書き込みを継続することができる。
【０００７】
テープ記憶装置１０は、順次書込部１００と、再書込部１１０と、エラー検出部１２０と、書込領域変更部１３０と、エラー回避書込部１４０とを備える。順次書込部１００は、テープ記録媒体５０に書き込むべき複数のブロックのそれぞれを、外部のネットワーク等から取得し、当該ブロックに含まれるデータが有効なデータである旨を示す有効情報に対応付けて、テープ記録媒体５０に順次書き込む。また、順次書込部１００は、再書込部１１０、書込領域変更部１３０、エラー回避書込部１４０からの指示に応じて、ブロックを書き直す処理を行う。そして、テープ記憶装置１０は、ブロックの書き込みの結果を示す結果情報、例えば、書き込みにエラーが生じたか否かを示すエラー情報を、再書込部１１０及び書込領域変更部１３０に送る。
【０００８】
再書込部１１０は、順次書込部１００から受け取ったエラー情報に基づき、一のブロックの有効情報がテープ記録媒体５０において書込エラーが生じるエラー領域に書き込まれたと判断した場合に、当該一のブロックを再び順次書込部１００により書き込ませる（例えば、ＬＴＯ規格におけるＡｐｐｅｎｄ  Ｗｒｉｔｅ処理）。この際、再書込部１１０は、データが書き直されたことを示すデータ書き直し情報の一例である拡張データセットセパレータ（ＥＤＳＳ）を書き込んでもよい。この結果、再書込部１１０は、ＥＤＳＳを、当該一のブロックを書き込み始める位置に挿入することにより、当該一のブロックを書き込み始める位置を変更して、当該一のブロックを再び順次書込部１００により書き込ませてもよい。そして、再書込部１１０は、順次書込部１００から受け取ったエラー情報に基づき、一のブロックの有効情報がエラー領域に再び書き込まれたと判断した場合に、その旨をエラー検出部１２０に通知する。
【０００９】
エラー検出部１２０は、この通知を受けて、当該一のブロックの書き込みによって、当該一のブロックの有効情報がエラー領域に書き込まれた旨を検出し、その旨を書込領域変更部１３０に通知する。この通知を受けて、書込領域変更部１３０は、当該一のブロック以前に書き込む他のブロックにおける有効情報以外の部分がエラー領域に書き込まれ、当該他のブロックにおける有効情報がエラー領域以外の部分に書き込まれるように、当該他のブロックが書き込まれるテープ記録媒体５０上の書込領域を変更する。例えば、書込領域変更部１３０は、順次書込部１００に指示し、当該他のブロックを、順次書込部１００が書き込んだ書込領域と異なる領域に書き直すことにより、書込領域を変更する。
【００１０】
書込領域変更部１３０は、更に、エラー領域以降の部分に、当該他のデータを書き込む。この結果、書込領域変更部１３０は、書込み位置を変更した他のブロックが無効であることを正しく記録できると伴に、更に書き込んだ他のブロックを、エラー領域以降以降に書き込むことができる。そして、書込領域変更部１３０は、順次書込部１００から受け取った結果情報に基づき、他のブロックの書き込みが完了した場合に、その旨をエラー回避書込部１４０に通知する。エラー回避書込部１４０は、この通知を受けて、テープ記録媒体５０における、エラー領域より後に書き込まれる書き込み領域に、一のブロックを書き込み直す。
【００１１】
このように、テープ記憶装置１０は、一のブロックの有効情報をエラー領域に書き込んだ場合に、当該一のブロックが有効であるか否かを区別させることができなくなってしまう。従って、テープ記憶装置１０は、一のブロック以前に書きこんだ他のブロックの書込領域を変更することにより、他のブロックの有効情報以外の部分をエラー領域に書き込み、続いて一のブロックを書き込み直すことにより、書き込んだ各ブロックが有効であるか否かを適切に記録することができる。
【００１２】
図２は、テープ記憶装置１０のフローチャートを示す。順次書込部１００は、複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、テープ記録媒体５０に順次書き込む（Ｓ２００）。順次書込部１００は、書込エラーが発生していない場合には（Ｓ２１０：ＮＯ）、Ｓ２００を繰り返すことにより、ブロックの書き込みを継続する。書込エラーが発生した場合に（Ｓ２１０：ＹＥＳ）、再書込部１１０は、書込エラーが発生した当該一のブロックを再びテープ記録媒体５０に書き込む（Ｓ２２０）。これにより、一のブロックの書き込みに書込エラーが発生しなかった場合に（Ｓ２３０：ＮＯ）、テープ記憶装置１０は、Ｓ２００に処理を戻し、ブロックの書込みを継続する。
【００１３】
一方、エラー検出部１２０は、再書込部１１０が一のブロックを再びテープ記録媒体５０に書き込んだ場合において、有効情報が再びエラー領域に書き込まれた場合に（Ｓ２３０：ＹＥＳ）、有効情報がエラー領域に書き込まれた旨を検出する。これを受けて、書込領域変更部１３０は、一のブロック以前に書き込んだ他のブロックにおける有効情報以外の部分がエラー領域に書き込まれ、かつ当該他のブロックにおける有効情報がエラー領域以外の部分に書き込まれるように、当該他のブロックが書き込まれるテープ記録媒体５０上の書込領域を変更する（Ｓ２４０）。
【００１４】
そして、書込領域変更部１３０は、エラー領域より後に書き込まれる書込領域に、当該他のブロックを再度書き込み（Ｓ２５０）、続いて、エラー回避書込部１４０は、テープ記録媒体５０における、一のブロックを書き込む（Ｓ２６０）。そして、テープ記憶装置１０は、Ｓ２００に処理を戻し、ブロックの書込みを継続する。
【００１５】
本図において、再書込部１１０は、書込エラーが発生した一のブロックを書き込み始める位置を変更して一のブロックを再びテープ記録媒体５０に書き込む（例えば、Ｓ２２０）。これに代えて、再書込部１１０は、一のブロックを書き込み始める位置を、更にもう一度変更してもよい。即ち、再書込部１１０により書込みが試行される回数は１回に限定されず、予め定められた複数回であってもよい。
また、エラー検出部１２０は、順次書込部１００により一旦書き込まれた一のブロックにおいて、書込エラーを検出するが、書込みエラーを検出するタイミングは、本例に限定されない。例えば、エラー検出部１２０は、一のブロックを書き込むより前に、一のブロックの有効情報を書き込む領域が、エラー領域であるか否かを判断してもよい。
【００１６】
図３は、図２のＳ２４０におけるフローチャートを示す。書込領域変更部１３０は、書込エラーが生じた一のブロック以前に書き込まれた他のブロックを読み出す（Ｓ３００）。そして、書込領域変更部１３０は、他のブロックの少なくとも一部を多重化する（Ｓ３１０）。そして、書込領域変更部１３０は、多重化した当該他のブロックをテープ記録媒体５０に書き込むことにより、再書込部１１０により書き込まれていた他のブロックの少なくとも一部を重複してテープ記録媒体５０に書き込む（Ｓ３２０）。
【００１７】
このように、書込領域変更部１３０は、順次書込部１００により書き込まれた他のブロックに代えて、当該他のブロックのデータを含み、かつ当該他のブロックと比較してよりサイズが大きいブロックを当該他のブロックとして書き込む。これにより、書込領域変更部１３０は、当該他のブロックの書込領域を、一のブロックが書き込まれていた領域にまで延伸させ、当該他のブロックの有効情報以外の部分を、エラー領域に書き込むことができる。この結果、テープ記録媒体１０は、当該他のブロックが無効である旨を正しく記録できると伴に、当該他のブロック以降に書き込むブロックを、エラー領域以降の部分に適切に書き込むことができる。即ち、テープ記憶装置１０は、一のブロック及び他のブロックの双方において、有効情報をテープ記録媒体５０に適切に記録することができる。
【００１８】
図４（ａ）は、テープ記憶装置１０により書込エラーが生じた例を示す。順次書込部１００は、ブロックＮ−２と、ブロックＮ−１と、本発明に係る他のブロックの一例であるブロックＮと、ブロックＮの次に連続して記録され、本発明に係る一のブロックの一例であるブロックＮ＋１とを順次テープ記録媒体５０に書き込む。そして、再書込部１１０は、順次書込部１００によるブロックＮ＋１の書き込みにおいて、ブロックＮ＋１の有効情報が、テープ記録媒体５０において書込エラーが生じるエラー領域に書き込まれた旨を検出する。
【００１９】
なお、ブロックＮ＋１は、ブロックＮの次に連続して記録されるが、連続とは、物理的にテープ記録媒体５０上で連続していてもよいし、予め定められた方法により読み取られる場合に、連続して読み出される状態であってもよい。例えば、ブロックＮ＋１は、ブロックＮと、ブロックの境界を示すデータセットセパレータ（ＤＳＳ）とに連続して、テープ記録媒体５０上に記録されていてもよい。
【００２０】
図４（ｂ）は、テープ記憶装置１０によりブロックＮ＋１の書込位置が変更された場合において、再度書込エラーが生じた例を示す。再書込部１１０は、図４（ａ）に示した書込エラーが生じた場合に、テープ記録媒体５０に対してブロックＮ＋１を再び書き込む。この際、本図で示すように、例えば、再書込部１１０は、ブロックの書き込みにエラーが生じた後にデータが書き直されたことを示すデータ書き直し情報の一例である拡張データセットセパレータ（ＥＤＳＳ）を書き込むことにより、ブロックＮ＋１を書き込み始める位置を変更してもよい。エラー検出部１２０は、再書込部１１０がブロックＮ＋１を書き込み始める位置を変更した場合においても、ブロックＮ＋１の有効情報が再びエラー領域に書き込まれた場合に、その旨を書込領域変更部１３０に通知し、ブロックＮの書込領域を変更させる。
【００２１】
ここで、例えば、有効情報は、複数のブロックのそれぞれにおいて、当該ブロックの先頭から予め定められた長さの記憶領域、一例としては、先頭から略６ＣＱ（Ｃｏｄｅ  Ｑｕａｄ）の記憶領域に書き込まれる情報である。この場合、再書込部１１０及びエラー検出部１２０のそれぞれは、ブロックＮ＋１の先頭から予め定められた長さの間の書き込みにおいて、書込エラーが生じたので、ブロックＮ＋１の有効情報がエラー領域に書き込まれたと判断する。例えば、有効情報は、各ブロックに記録されるべきデータのサイズを示す情報であってもよい。この場合、テープ記録媒体５０からデータを読み出す装置は、各ブロックに記録されるべきデータのサイズと、実際のブロックのサイズが異なるか否かを判断することにより、ブロックが有効であるか否かを判断してもよい。
また、他の例としては、テープ記憶装置１０は、各ブロックの先頭から予め定められた長さのデータを読み出し、読み出した当該予め定められた長さのデータの内容を総合的に分析することにより、読み出した当該ブロックが有効か否かを判断してもよい。このように、有効情報とは、各ブロックが有効であるか否かを、テープ記憶装置１０に判断させることができる情報であればよく、各ブロックが有効か否かを明示的に記録したデータでなくともよい。
【００２２】
図４（ｃ）は、テープ記憶装置１０により書込領域が変更された例を示す。書込領域変更部１３０は、再書込部１１０により書き込まれたブロックＮに代えて、データ書き直し情報の一例であるＥＤＳＳをテープ記録媒体５０に書き込む。そして、書込領域変更部１３０は、再書込部１１０により書き込まれたブロックＮに代えて、ブロックＮのデータを含み、かつブロックＮと比較してよりサイズが大きいブロックＮ’を、ＥＤＳＳの次に連続した部分に書き込むことにより、ブロックＮの書込領域を変更する。これにより、書込領域変更部１３０は、ブロックＮ’における有効情報以外の部分がエラー領域に書き込まれ、かつブロックＮ’における有効情報がエラー領域以外の部分に書き込まれるように、ブロックＮの書込領域を変更することができる。続いて、書込領域変更部１３０は、ブロックＮを書き直す旨を示すＥＤＳＳをテープ記録媒体５０に書き込んだ後に、ブロックＮ’を再度書き込み、エラー回避書込部１４０は、順次書込部１００により書込エラーが生じていたブロックＮ＋１を書き込む。
【００２３】
この結果、テープ記録媒体５０は、データ書き直し情報の一例であるＥＤＳＳを記録している第１データセパレータ領域と、第１データセパレータ領域に連続し、エラー領域を含む領域である第１データ領域と、第１データ領域に連続して設けられ、データ書き直し情報の一例であるＥＤＳＳを記録している第２データセパレータ領域と、第２データセパレータ領域に連続して設けられ、ブロックＮ’を、当該ブロックＮ’が有効である旨を示す有効情報に対応付けて記録している第２データ領域とを備える。そして、第１データ領域は、テープ記録媒体５０に書き込まれるべき予め定められたブロックＮ’の一部を、当該ブロックＮ’の一部が無効である旨を示す有効情報に対応付けて、エラー領域以外の部分に記録している。
【００２４】
図５（ａ）は、ブロックＮの詳細を示す。図５（ｂ）は、ブロックＮ’の詳細を示す。順次書込部１００は、ブロックＮとして、例えば、第１データから第６４データを一つずつテープ記録媒体５０に書き込む。これに対し、書込領域変更部１３０は、ブロックＮに含まれるデータのうち少なくとも一部を重複して書き込むことによりブロックＮと比較してよりサイズの大きいブロックＮ’を書き込む。本図の例においては、例えば、書込領域変更部１３０は、ブロックＮに含まれる各データを重複して２つずつ書き込むことにより、ブロックＮの書込領域を変更する。この結果、第１データ領域は、ブロックＮとして書き込まれるべきデータのうち少なくとも一部を重複させたデータであるブロックＮ’を記録している。
【００２５】
図６は、変形例におけるＳ２４０のフローチャートを示す。本変形例に係るテープ記憶装置１０の各部材は、図１から図５で説明したテープ記憶装置１０の各部材と略同一である。ただし、本変形例に係るテープ記憶装置１０は、図１から図５で説明したテープ記憶装置１０と比較して、Ｓ２４０における動作が異なるので、相違点を説明する。書込領域変更部１３０は、再書込部１１０により書き込まれた他のブロックに含まれるデータをテープ記録媒体５０から読み出す（Ｓ６００）。そして、書込領域変更部１３０は、再書込部１１０により他のブロックが書き込まれる領域に、他のブロックの一部であるブロック片を書き込む（Ｓ６１０）。続いて、書込領域変更部１３０は、他のブロックを再度書き込む（Ｓ６２０）。これにより、書込領域変更部１３０は、Ｓ６２０において再度書き込んだ他のブロックにおける、有効情報以外の部分がエラー領域に書き込まれるように、書込領域を変更することができる。
【００２６】
図７（ａ）は、変形例に係るテープ記憶装置１０により書込エラーが生じた例を示す。図７（ｂ）は、変形例に係るテープ記憶装置１０によりブロックＮ＋１の書込位置が変更された場合において、再度書込エラーが生じた例を示す。図７（ｃ）は、変形例に係るテープ記憶装置１０により書込領域が変更された例を示す。図７（ａ）及び図７（ｂ）のそれぞれは、図４（ａ）及び図４（ｂ）のそれぞれと略同一であるので、説明を省略する。
【００２７】
書込領域変更部１３０は、再書込部１１０によりブロックＮが書き込まれていた領域に、ブロックＮの一部であるブロック片を、ＥＤＳＳと伴に書き込む。そして、書込領域変更部１３０は、ブロックＮを再度書き込む。これにより、書込領域変更部１３０は、再度書き込んだ当該ブロックＮにおける、有効情報以外の部分がエラー領域に書き込まれるように、ブロックＮの書込領域を変更することができる。
【００２８】
続いて、書込領域変更部１３０は、エラー領域以降の部分に、ブロックＮを再度書き込み、エラー回避書込部１４０は、図７（ａ）において書込エラーが生じていたブロックＮ＋１を書き込む。なお、複数のブロックのそれぞれは、既に書き込まれていたデータに対する新たに書き込むデータの新しさを示すデータ新規度情報（一例としては、ＬＴＯ規格におけるＷＰ：ＷｒｉｔｅＰａｓｓ情報）を含んでいる。そして、好ましくは、エラー検出部１２０は、テープ記録媒体５０に書き込むブロック片より高いデータ新規度を、エラー領域より後に書き込むブロックＮに対応付けて書き込む。これにより、テープ記憶装置１０は、エラー領域より後のブロックＮに含まれるデータが、ブロック片に含まれるデータより新たなデータである旨を記録することができる。
【００２９】
このように、本変形例によると、テープ記憶装置１０は、複数のブロックのそれぞれにおいて、当該ブロックが有効であるか否かを示す有効情報を適切に記録することができる。また、本変形例によれば、テープ記録媒体５０に定められた規格により、ブロック中のデータを重複して書き込むことが許可されていない場合であっても、書込エラーを回避して、ブロックの書き込みを継続することができる。
【００３０】
なお、本例において、ブロック片とは、ブロックＮの少なくとも一部のデータを含むブロックである。これに代えて、ブロック片とは、ブロックＮとは関連性のないデータであってもよい。即ち、ブロック片とは、ブロックＮを書き込むのに先だってテープ記録媒体５０に書き込まれることにより、ブロックＮの有効情報以外の部分をエラー領域に書き込ませるための、書込領域調整用のデータであってもよい。
【００３１】
図８は、実施形態又は変形例に係るテープ記憶装置１０のハードウェア構成の一例を示す。テープ記憶装置１０は、バスにより相互に接続されるテープドライブ２０００と、ＣＰＵ２０１０、ＲＡＭ２０２０と、ＲＯＭ２０３０と、通信インターフェイス２０４０とを備える。
【００３２】
テープドライブ２０００は、プログラム記録媒体又はデータ記録媒体の一例であるテープ記録媒体５０からプログラム又はデータを読み取り、ＲＯＭ２０３０に提供する。ＲＯＭ２０３０は、テープ記憶装置１０の起動時にＣＰＵ１０００が実行するブートプログラムや、起動後にテープ記憶装置１０を動作させるプログラム等を格納する。そして、ＣＰＵ２０１０は、これらのプログラムを、ＲＡＭ２０２０を用いて実行する。
【００３３】
テープ記憶装置１０に提供されるプログラムは、テープドライブ２０００によりテープ記録媒体５０から読み出され、テープ記憶装置１０にインストールされる。これに代えて、通信インターフェイス２０４０は、シリアルポート等の入出力装置又はネットワークを介して、情報処理装置２０からプログラムを取得し、テープ記憶装置１０にインストールしてもよい。
【００３４】
情報処理装置２０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００及びＲＡＭ１０２０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００３５】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。
【００３６】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介してテープ記憶装置１０等の装置と通信する。ハードディスクドライブ１０４０は、テープ記憶装置１０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、通信インターフェイス１０３０を介してテープ記憶装置１０に提供する。
【００３７】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、テープ記憶装置１０の起動時にＣＰＵ１０００が実行するブートプログラムや、テープ記憶装置１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００３８】
テープ記憶装置１０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等のプログラム記録媒体に格納されて利用者によって提供される。プログラムは、プログラム記録媒体から読み出され、通信インターフェイス１０３０を介してテープ記憶装置１０にインストールされ、テープ記憶装置１０において実行される。
【００３９】
テープ記憶装置１０にインストールされて実行されるプログラムは、順次書込モジュールと、再書込モジュールと、エラー検出モジュールと、書込領域変更モジュールと、エラー回避書込モジュールとを含む。各モジュールがテープ記憶装置１０に働きかけて行わせる動作は、図１から図７において説明したテープ記憶装置１０における、対応する部材の動作と同一であるから、説明を省略する。
【００４０】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置をプログラム記録媒体として使用し、ネットワークを介してプログラムをテープ記憶装置１０に提供してもよい。
【００４１】
このように、テープ記憶装置１０は、一のブロックの書き込みにより、当該一のブロックの有効情報をエラー領域に書き込んだ場合に、一のブロック以前に書きこんだ他のブロックの書込領域を変更することにより、他のブロックの有効情報以外の部分をエラー領域に書き込む。続いて、テープ記憶装置１０は、他のブロック及び一のブロックを順次書き込み直すことにより、書き込んだ各ブロックが有効であるか否かを適切に記録することができる。
【００４２】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。例えば、複数のブロックを書き込む対象の記録媒体は、テープ記録媒体５０のように逐次的にデータが書き込まれる媒体に代えて、磁気ディスクのようなランダムアクセス可能な媒体であってもよい。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００４３】
以上に示した実施形態によると、以下の各項目に示す記憶装置、制御方法、プログラム、プログラム記録媒体、及びデータ記録媒体を実現できる。
【００４４】
（項目１）  データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置であって、前記複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、前記データ記録媒体に順次書き込む順次書込部と、前記順次書込部による一のブロックの書き込みによって、前記一のブロックの前記有効情報が、前記データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出部と、前記一のブロック以前に書き込む他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれ、かつ前記他のブロックにおける前記有効情報が前記エラー領域以外の部分に書き込まれるように、前記他のブロックが書き込まれる前記データ記録媒体上の書込領域を変更する書込領域変更部と、前記データ記録媒体における、前記エラー領域より後に書き込まれる書込領域に、前記一のブロックを書き込むエラー回避書込部とを備える記憶装置。
（項目２）  前記エラー検出部は、前記一のブロックの書き込みによって、前記一のブロックの前記有効情報が前記エラー領域に書き込まれたことを検出し、前記書込領域変更部は、前記書込エラーを検出した場合に、前記一のブロック以前に書き込んだ前記他のブロックを、前記順次書込部が書き込んだ書込領域と異なる領域に書き直すことにより、前記他のブロックの書込領域を変更する項目１記載の記憶装置。
【００４５】
（項目３）  前記書込領域変更部は、前記順次書込部により書き込まれた前記他のブロックに代えて、当該他のブロックのデータを含み、かつ当該他のブロックと比較してよりサイズが大きいブロックを前記他のブロックとして書き込むことにより、前記他のブロックの書込領域を変更する項目２記載の記憶装置。
（項目４）  前記書込領域変更部は、前記順次書込部により書き込まれた前記他のブロックに含まれるデータのうち少なくとも一部を重複して書き込むことにより、前記順次書込部により書き込まれた前記他のブロックと比較してよりサイズが大きいブロックを前記データ記録媒体に書き込む項目３記載の記憶装置。
（項目５）  前記書込領域変更部は、更に、前記順次書込部により書き込まれた前記他のブロックに含まれるデータを、前記データ記録媒体から読み出し、変更した書込領域に書き直す項目２記載の記憶装置。
（項目６）  前記順次書込部により、前記一のブロックの前記有効情報が前記エラー領域に書き込まれた場合に、前記データ記録媒体における前記一のブロックを書き込み始める位置を変更して前記一のブロックを再び前記データ記録媒体に書き込む再書込部を更に備え、前記エラー検出部は、前記再書込部が前記一のブロックを書き込み始める位置を変更した場合において前記有効情報が前記エラー領域に書き込まれた場合に、前記有効情報が前記エラー領域に書き込まれる旨を検出する項目２記載の記憶装置。
【００４６】
（項目７）  前記エラー検出部は、前記他のブロックの次に連続して記録される前記一のブロックの前記有効情報が、前記エラー領域に書き込まれることを検出し、前記書込領域変更部は、前記順次書込部により書き込まれた前記他のブロックに代えて、当該他のブロックのデータを含み、かつ当該他のブロックと比較してよりサイズが大きいブロックを前記他のブロックとして書き込むことにより、前記他のブロックの書込領域を変更する項目１記載の記憶装置。
（項目８）  前記有効情報は、前記複数のブロックのそれぞれにおいて、当該ブロックの先頭から予め定められた長さの記憶領域に書き込まれ、前記エラー検出部は、前記一のブロックの先頭から前記予め定められた長さの間の書き込みにおいて、前記書込エラーが生じる場合に、前記一のブロックの前記有効情報が前記エラー領域に書き込まれる旨を検出し、前記書込領域変更部は、前記他のブロックの先頭から前記予め定められた長さの部分が前記エラー領域に書き込まれず、かつ前記他のブロックにおける前記予め定められた長さ以降の部分が前記エラー領域に書き込まれるように、前記他のブロックの書込領域を変更する項目１記載の記憶装置。
【００４７】
（項目９）  前記エラー検出部は、前記他のブロックの次に連続して記録される前記一のブロックの前記有効情報が、前記エラー領域に書き込まれることを検出し、前記書込領域変更部は、前記順次書込部により前記他のブロックが書き込まれる領域に、前記他のブロックの一部であるブロック片を書き込み、前記ブロック片の次に連続して前記他のブロックを書き込むことにより、前記他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれるように、前記他のブロックの書込領域を変更する、項目１記載の記憶装置。
（項目１０）  前記複数のブロックのそれぞれは、既に書き込まれていたデータに対する、新たに書き込むデータの新しさを示すデータ新規度情報を更に含み、前記書込領域変更部は、前記書込領域変更部により書き込まれる前記ブロック片より高いデータ新規度情報を、前記エラー領域より後に書き込む前記他のブロックに対応付けて書き込む項目９記載の記憶装置。
（項目１１）  データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置を、コンピュータにより制御する制御方法であって、前記複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、前記データ記録媒体に順次書き込む順次書込段階と、前記順次書込段階による一のブロックの書き込みによって、前記一のブロックの前記有効情報が、前記データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出段階と、前記一のブロック以前に書き込む他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれ、かつ前記他のブロックにおける前記有効情報が前記エラー領域以外の部分に書き込まれるように、前記他のブロックが書き込まれる前記データ記録媒体上の書込領域を変更する書込領域変更段階と、前記データ記録媒体における、前記エラー領域より後に書き込まれる書込領域に、前記一のブロックを書き込むエラー回避書込段階とを備える制御方法。
【００４８】
（項目１２）  データを分割した複数のブロックを、データを記録するデータ記録媒体に順次書き込む記憶装置として、コンピュータを機能させるプログラムであって、前記コンピュータを、前記複数のブロックのそれぞれを、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報に対応付けて、前記データ記録媒体に順次書き込む順次書込部と、前記順次書込部による一のブロックの書き込みによって、前記一のブロックの前記有効情報が、前記データ記録媒体において書込エラーが生じるエラー領域に書き込まれる旨を検出するエラー検出部と、前記一のブロック以前に書き込む他のブロックにおける前記有効情報以外の部分が前記エラー領域に書き込まれ、かつ前記他のブロックにおける前記有効情報が前記エラー領域以外の部分に書き込まれるように、前記他のブロックが書き込まれる前記データ記録媒体上の書込領域を変更する書込領域変更部と、前記データ記録媒体における、前記エラー領域より後に書き込まれる書込領域に、前記一のブロックを書き込むエラー回避書込部として機能させるプログラム。
（項目１３）  項目１２に記載のプログラムを記録したプログラム記録媒体。
【００４９】
（項目１４）  データを複数のブロックとして順次記録したデータ記録媒体であって、前記複数のブロックのそれぞれは、当該ブロックに含まれるデータが有効なデータであるか否かを示す有効情報を含み、書き込みにエラーが生じた後にデータが書き直されたことを示すデータ書き直し情報を記録している第１データセパレータ領域と、前記第１データセパレータ領域に連続し、当該データ記録媒体に対する書込エラーを生じさせるエラー領域を含む領域であり、当該データ記録媒体に書き込まれるべき予め定められた第１のブロックの一部を、当該第１のブロックの一部が無効である旨を示す有効情報に対応付けて、前記エラー領域以外の部分に記録している第１データ領域と、前記第１データ領域に連続して設けられ、前記データ書き直し情報を記録している第２データセパレータ領域と、前記第２データセパレータ領域に連続して設けられ、前記第１のブロックを、前記第１のブロックが有効である旨を示す有効情報に対応付けて記録している第２データ領域とを備えるデータ記録媒体。
（項目１５）  前記第１データ領域は、前記第１のブロックの次に書き込まれるべき第２のブロックの前記有効情報が、前記エラー領域に書き込まれた場合において、前記第１のブロックの前記有効情報以外の部分が前記エラー領域に書き込まれるように前記第１のブロックが書き込まれる書込領域を変更した結果書き込まれたデータを記録しており、前記第２データ領域は、前記第１のブロックの書込領域が変更された結果生じた書込エラーにより、再度書き込まれた前記第１のブロックを記録している項目１４記載のデータ記録媒体。
（項目１６）  前記第１データ領域は、前記第１のブロックとして書き込まれるべきデータのうち少なくとも一部を重複させたデータを記録している項目１４記載のデータ記録媒体。
【００５０】
【発明の効果】
上記説明から明らかなように、本発明によればデータの書き込みにおいて生じたエラーを適切に回避し、書き込みを継続することができる。
【図面の簡単な説明】
【図１】図１は、テープ記憶装置１０の機能ブロック図を示す。
【図２】図２は、テープ記憶装置１０のフローチャートを示す。
【図３】図３は、図２のＳ２４０におけるフローチャートを示す。
【図４】図４（ａ）は、テープ記憶装置１０により書込エラーが生じた例を示す。
図４（ｂ）は、テープ記憶装置１０によりブロックＮ＋１の書込位置が変更された場合において、再度書込エラーが生じた例を示す。
図４（ｃ）は、テープ記憶装置１０により書込領域が変更された例を示す。
【図５】図５（ａ）は、ブロックＮの詳細を示す。
図５（ｂ）は、ブロックＮ’の詳細を示す。
【図６】図６は、変形例におけるＳ２４０のフローチャートを示す。
【図７】図７（ａ）は、変形例に係るテープ記憶装置１０により書込エラーが生じた例を示す。
図７（ｂ）は、変形例に係るテープ記憶装置１０によりブロックＮ＋１の書込位置が変更された場合において、再度書込エラーが生じた例を示す。
図７（ｃ）は、変形例に係るテープ記憶装置１０により書込領域が変更された例を示す。
【図８】図８は、実施形態又は変形例に係るテープ記憶装置１０のハードウェア構成の一例を示す。
【符号の説明】
１０  テープ記憶装置
２０  情報処理装置
５０  テープ記録媒体
１００  順次書込部
１１０  再書込部
１２０  エラー検出部
１３０  書込領域変更部
１４０  エラー回避書込部
２０００  テープドライブ
２０１０  ＣＰＵ
２０２０  ＲＡＭ
２０３０  ＲＯＭ
２０４０  通信インターフェイス
【図１】
2004319030.tif 000003
【図２】
2004319030.tif 000004
【図３】
2004319030.tif 000005
【図４】
2004319030.tif 000006
【図５】
2004319030.tif 000007
【図６】
2004319030.tif 000008
【図７】
2004319030.tif 000009
【図８】
2004319030.tif 000010