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