(57)【特許請求の範囲】
【請求項１】
ユーザデータレコードを記憶媒体上で規定された予め定められた記憶容量の物理的ブロックにパッキングするための方法であって、
可変長のユーザデータレコードを受取るステップと、
前記物理的ブロックの各々に対してレコードパッキング情報のマップフィールドを形成するステップと、
前記ユーザデータレコードおよびレコードパッキング情報のマップフィールドを前記物理的ブロックにフォーマット化するステップとを備え、
前記フォーマット化するステップは、
前記ユーザデータレコードから複数の可変長のデータページを形成するステップと、
前記複数のデータページの各々に対し前記マップフィールド内でレコードパッキング情報のマップエントリを形成するステップと、
前記複数のデータページの各々と前記複数のデータページの各々に対する前記マップエントリとを前記物理的ブロック内に記憶するステップと、
固定された数の前記物理的ブロックをグループに分けて論理的ブロックを規定するステップと、
固定された数の前記論理的ブロックをグループに分けて前記記憶媒体上のエンティティを規定するステップと、
前記エンティティを前記記憶媒体上に記憶するステップとを含む、方法。
【請求項２】
各データページに対してレコードパッキング情報のマップエントリを形成する前記ステップは、
データページが圧縮されたかどうかを示す手段を含む情報を前記マップエントリに記憶するステップと、
関連するデータページにおけるデータのタイプを示す手段を含む情報を前記マップエントリに記憶するステップと、
ユーザレコードが後の物理的ブロックに続くかどうかを示す情報をマップエントリに記憶するステップと、
ユーザレコードが先の物理的ブロックからのレコードの続きであるどうかを示す情報を前記マップエントリに記憶するステップと、
特定のマップが物理的ブロックにおける最後のマップエントリであるどうかを示す情報を前記マップエントリに記憶するステップと、
前記関連したデータページのサイズを示す情報を前記マップエントリに記憶するステップと、
前記ユーザデータの圧縮の前のサイズを示す情報を前記マップエントリに記憶するステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ユーザデータを固定された物理的ブロックにフォーマット化するステップは、ユーザデータを４１４０バイトの物理的ブロックにフォーマット化するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記固定された物理的ブロックをグループに分けて論理的ブロックを規定するステップは、２つの隣接する固定された物理的ブロックを１つの論理的ブロックを規定するようにグループ分けするステップをさらに含む、請求項１に記載の方法。
【請求項５】
媒体上のユーザデータレコードの記憶のためのシステムであって、前記媒体は、
少なくとも１つのユーザデータレコードエンティティを備え、前記エンティティは、論理的ブロックの固定された数のグループを含み、前記論理的ブロックのグループの各ブロックは、予め定められた固定サイズの固定数の物理的ブロックを含み、前記複数の物理的ブロックの各物理的ブロックはさらに、
複数の可変長データページと、
レコードパッキング情報の可変数のマップエンティティを含むマップフィールドとを含み、前記複数のデータページの各データページに対して別々にマップエントリが存在し、
媒体上の前記物理的ブロックの他の物理的ブロックに対する論理的位置に関する情報の制御エントリを含む制御フィールドをさらに含む、システム。
【請求項６】
請求項５に記載された媒体上のユーザデータレコードのデータ記憶のためのシステムであって、データページに対する前記マップエントリは、
前記データページが圧縮されているかどうかを示す圧縮フィールドと、
前記データページにおけるデータが、ユーザデータ、テープマークおよび充填文字のいずれであるかを示すタイプフィールドと、
ユーザレコードが前記エンティティ内の後の物理的ブロックに続くかどうかを示す次のフィールドと、
前記データページにおけるユーザレコードが前記エンティティ内において先の物理的ブロックからのレコードの続きであるかどうかを示す先のフィールドと、
特定のマップが前記物理的ブロックのマップフィールドにおける最後のマップエントリであるかどうかを示す最後のフィールドと、
前記データページのサイズを示すページバイトカウントフィールドと、
前記データページにおけるユーザレコードの圧縮前のサイズを示すレコードバイトカウントフィールドとを含む、システム。
【請求項７】
請求項５に記載された媒体上のユーザデータレコードのデータ記憶のためのシステムであって、前記物理的ブロックは４１４０バイト長である、システム。
【請求項８】
請求項５に記載された媒体上のユーザデータレコードのデータ記憶のためのシステムであって、前記論理的ブロックは前記媒体上に連続して配置された２つの物理的ブロックを含む、システム。
【請求項９】
請求項５に記載された媒体上のユーザデータレコードのデータ記憶のためのシステムであって、前記媒体は線形の磁気テープを含み、かつ前記システムは、線形の磁気テープのドライブと、インターフェイスバス構造を介してホストコンピュータシステムに接続するためのテープドライブコントローラとを含む、システム。
【請求項１０】
請求項５に記載された媒体上のユーザデータレコードのデータ記憶のためのシステムであって、各前記マップエントリは８バイトを含む、システム。
【請求項１１】
コントローラと、データ記憶媒体を含む記録および再生機構とを含むデータ記憶および検索システムにおいて、可変サイズのユーザデータレコードを前記記憶媒体上で固定サイズの物理的ブロックにパッキングする方法であって、
データ記憶および検索システムへの可変サイズユーザデータレコードを受け取るステップと、
各ユーザデータレコードに対して固定サイズのブロック内で少なくとも１つのデータページを規定するステップとを備え、データページの数はユーザデータレコードのサイズに基づいて規定され、
前記固定サイズブロック内で規定された各データページに対してレコードパッキング情報のマップエントリを形成するステップと、
前記記憶媒体上で前記固定サイズの物理的ブロック内に各データページと前記データページに対するマップエントリとを記憶するステップとをさらに備え、
前記記憶するステップはさらに、
前記固定サイズの物理的ブロックに記憶されたユーザデータレコード情報を前記記憶媒体上の他の固定サイズの物理的ブロックに関係付けるブロック情報の制御フィールドを形成するステップと、
前記記憶媒体上で前記固定サイズの物理的ブロック内に各制御フィールドを記憶するステップと、
固定された数の前記固定サイズの物理的ブロックをグループ分けするステップとを含み、各グループは論理的ブロックを規定し、
固定された数の前記論理的ブロックをグループ分けするステップをさらに含み、各グループはエンティティを規定し、
前記エンティティを前記記憶媒体上に記憶するステップをさらに含む、方法。
【請求項１２】
各データページに対してレコードパッキング情報のマップを形成する前記ステップは、
データページが圧縮されたかどうかを示す圧縮フィールドを形成するステップと、
前記データページにおけるデータが、ユーザデータ、テープマークおよび充填文字のいずれであるかを示すタイプフィールドを形成するステップと、
ユーザレコードが前記媒体上で後の固定サイズのブロックに続くかどうかを示す次のフィールドを形成するステップと、
前記データページにおけるユーザデータが前記媒体上で先の固定サイズブロックからのレコードからの続きであるかどうかを示す先のフィールドを形成するステップと、
特定のマップが固定サイズブロックのマップフィールドにおいて最後のマップエントリであるかどうかを示す最後のフィールドを形成するステップと、
前記データページのサイズを示すページバイトカウントフィールドを形成するステップと、
ユーザデータレコードに何らかのデータ圧縮を加える前に前記データページにおけるユーザデータレコードのサイズを示すレコードバイトカウントフィールドを形成するステップと含む、請求項１１に記載の方法。
【請求項１３】
各前記固定サイズ物理ブロックを４１４０バイト長と規定するステップをさらに含む、請求項１１に記載の方法。
【請求項１４】
媒体上で連続して配置された２つの固定サイズの物理的ブロックの論理的ブロックを規定するステップをさらに含む、請求項１１に記載の方法。
【請求項１５】
前記レコードパッキング情報のマップを形成するステップは、マップを８バイトエントリとして形成するステップをさらに含む、請求項１１に記載の方法。
【請求項１６】
前記媒体は線形の磁気テープを含み、前記システムは、線形の磁気テープドライブと、インターフェイスバス構造を介してホストコンピュータシステムに接続するためのテープドライブコントローラとを含む、請求項１１に記載の方法。
【発明の詳細な説明】
発明の背景
磁気テープは、コンピュータデータ交換およびオフライン記憶に低コストの入力／出力能力を提供し続けている。性能を改善するために、主にデータ圧縮機構およびテープ上のレコード間のテープの無駄を減らすレコードパッキング機構を通してテープ領域の使用量を最大にするよう異なった機構が用いられてきた。これまでは、ユーザデータレコードがテープブロックの途中で終わる場合には、次のユーザデータレコードを次のテープブロックに書込めるよう、残りのテープブロックが埋め込まれなければならなかった。これは、レコード間のパディングによるテープのかなりの無駄につながった。
データ圧縮機構を使用する前は、賢く、能率のよいユーザは、固有のテープブロックサイズの倍数であるデータレコードを選んでいた。レコードをそのように選択することにより、テープブロックはパディングなしで全部用いられた。しかし、データ圧縮機構の出現により、ユーザデータは可変サイズに圧縮され、それによりテープブロックの断片が使い果たされ、したがって無駄をもたらした。
データ圧縮機構を用いながら、テープ上の無駄領域の問題を克服するために、レコードパッキング技術が用いられる。１つのこのような機構は、複数のユーザデータレコードを含むことのできる可変サイズのスーパーテープブロックを用いる。この機構は、可変サイズのスーパーテープブロックの各々に可変サイズのヘッダを用いて、各ブロック内にあるユーザデータレコードの区分を示すことを要する。このような機構は、固定サイズのテープブロックを用いるシステムには適さない。さらに、ブロックＥＣＣコードを用いるシステムには、可変ブロックサイズは効率的ではない。
別のレコードパッキング機構はディジタルオーディオテープ（ＤＡＴ）固定ブロックテープフォーマットに用いられる。ＤＡＴは斜めトラックを有するヘリカルスキャンテープである。データレコードは約２０のトラックのグループに書込まれる。各グループの最後のトラックには、グループ内のトラックの区分を示すインデックスが維持される。グループのうち最後のトラックにインデックスがあることにより、ＤＡＴにおけるデータレコードへの付加が困難になる。さらに、もしインデックスが何らかの理由で回復不能になると、データ損失量はかなり多い。テープの使用書を最大にするデータ圧縮技術を用いながら、可変サイズのユーザデータレコードを記憶する固定サイズのテープブロックを用いる、レコードパッキング機構が必要である。
発明の概要
この発明は、可変サイズのユーザデータレコードを記憶媒体上の固定サイズのブロックにパッキングするための方法および装置である。
この発明の目的は、データレコード間のテープの無駄を減らすことによるレコードのパッキングを通して磁気テープのキャパシティを改善するための方法および装置である。
この発明の別の目的は、テープ上の適切な物理的場所にデータが付加されることを確実にして、読出動作および付加動作の間に起こるソフトエラー速度を有利に下げることである。
これらおよび他の目的は、広い意味ではこの発明のさまざまな特徴を用いることにより達成される。この発明は、可変レコード長のユーザデータおよびエラー検出情報を受取るステップと、各ユーザデータレコードに１つまたはそれ以上のデータページを作成するステップと、各データページにレコードパッキング情報のマップを形成するステップと、記憶媒体上の同じ物理的レコード内にある各データページおよびその関連マップを記憶するステップとを含む。
より狭い意味においてこの発明の目的は、予め定められた固定サイズの物理的ブロックを有する記憶媒体を用いることにより達成され、各物理的ブロックはデータフィールドとマップフィールドとをさらに含む。データフィールドはユーザデータのページを含み、マップフィールドは前記データフィールドにあるユーザデータの各ページについてのレコードパッキング情報を含む。
さらに別の意味においてこの発明の目的は、各物理的ブロック内にページエントリおよびマップエントリを置き、マップエントリを物理的ブロックの底部に置き、かつページエントリとマップエントリとを反対方向から形成することにより達成される。
この発明の利点は、テープ上のレコード間のテープの無駄を減らすレコードパッキング機構を用いてテープ領域の使用量が最大になることである。
この発明のさらに別の利点は、各データページのマップエントリが同じ物理的ブロック内にあるその関連データページとともに置かれることであり、それにより付加動作の間データのインテグリティが保証され、このためもし付加動作がうまくいかなくても、付加場所の前に置かれたデータ対象物すべてが完全に回復可能である。
この発明の前述および付加的な目的、特徴および利点は、添付の図面と関連して読まれると、その好ましい実施例のより詳細な説明から当業者には明らかとなるだろう。
【図面の簡単な説明】
図１は、この発明の原理によるテープドライブを組込むコンピュータシステムのブロック図である。
図２は、この発明の原理によるテープ上に記憶された情報のフォーマットの簡略ブロック図である。
図２ａは、この発明の原理によるテープ上に記憶された物理的ブロックの分解図である。
図３は、図２ａの物理的ブロックのフォーマットの詳細図である。
発明の詳細な説明
図１は、テープシステム１２を含む、この発明によるコンピュータシステム１０の一例である。コンピュータシステム１０はＣＰＵ１４、メモリ１６およびＩ／Ｏバスアダプタ１８などのコンポーネントを含み、これらすべてはシステムバス２０に結合される。Ｉ／Ｏバスアダプタ１８にはＩ／Ｏバス２２が結合され、このＩ／Ｏバス２２はさまざまな周辺デバイス２４およびテープドライブコントローラ２６を支持し、このテープドライブコントローラ２６はテープドライブ３０内のテープ２８へのデータの送信およびテープ２８からのデータの送信を制御する。テープコントローラ２６は、メモリ３１と、制御論理３２と、ディジタルアナログコンバータ３４とをさらに含む。テープドライブ３０はテープヘッド３６とテープ２８とを含む。
データをテープ２８に書込むために、データはシステムバス２０からＩ／Ｏアダプタ１８を経てＩ／Ｏバス２２を通過する。テープコントローラ２６はメモリ３１にデータを記憶する。情報の「レコード」全体がメモリ３１に記憶されると、それはダイレクトメモリアクセス（ＤＭＡ）によりテープ２８に送信される。従来の態様で、ディジタルアナログコンバータ３４はテープの記憶に適するアナログの形式にデータを変換し、制御論理３２はテープドライブ３０内のテープヘッド３６に、適切な制御信号を与える。
より特定的には、図２に示されるようなエンティティのあるテープ２８にデータレコードが書込まれる。各エンティティ７０は１０個の論理的ブロック７２と、８個のデータブロック７４と、２個のＥＣＣブロック７６とを含む。各論理的ブロック７２は２つのトラック上に書込まれる２つの物理的ブロック３８を有する。各物理的ブロック間にはギャップがある。
図２ａにさらに示されるように、各物理的ブロック３８はデータの各ページに対してデータページ４４と、ＣＲＣチェックサム４６の形のエラー検出情報とを含み、これらはともにデータフィールド４０を規定する。図２ａにさらに示されるように、各物理的ブロック３８は各データページ４４に対してレコードパッキング情報のマップエントリ５３のマップフィールド５２と、エラー検出コード（ＥＤＣ）５０と、制御ブロック４８とをさらに含む。
図３に詳細がさらに示されるように、この発明の原理によると、各物理的ブロック３８は４１４０バイトを含む。示されるように、セクション４０として示される物理的ブロック３８の部分はメモリからダイレクトメモリアクセスされ、４２として示される剰余はブロックの最後でメモリに加えられる。物理的ブロックのセクション４０は、実際の記憶されたデータを含むデータフィールド４４またはページと、データの各ページに対するＣＲＣチェックサム４６とを含む。図３に示されるように、データフィールド４０と充填文字５０とマップフィールド５２とは合計で４１０８バイトになる。マップフィールド５２は１から１００のマップエントリ５３を有し、各マップエントリ５３は８バイトである。したがって、もしマップエントリ５３が１つしかなければ、データフィールド４０の最大サイズは４１００バイトである。同様に、マップエントリ５３が１００個あれば、すなわちマップフィールド５２に８００バイトのマップエントリがあれば、データフィールド４０の最大サイズは３２０８バイトである。
図３に示されるように、各物理的ブロック３８のデータフィールド４０はデータページ４４を含む。データページ４４は物理的テープブロック３８の内部のデータバイトのグループである。ページ４４にあるデータバイトはすべて１つのレコードに属する。レコードは先の物理的ブロックで始まっていてもよく、かつ次の物理的ブロックに続いてもよく、したがってデータレコードは１つまたはそれ以上のページ４４に書込まれてもよい。
以上に説明したように、データページ４４は０から４１００バイトのデータを有してもよい。もしデータページ４４がレコードの最後のページであれば、データページ４４の後に２バイトのＣＲＣ４６が続く。図２ａおよび図３に示されるように、２バイトのＣＲＣ４６の後に、次のユーザレコードに属するデータによって別のデータページ４４が始まってもよい。図３において、ページ０、ページ１およびページ２は異なったデータレコードに属するデータページ４４であり、それらの各々の後には２バイトのＣＲＣ４６が続く。
図３に示されるように、２バイトのＣＲＣ４６が偶数のオフセットに書込まれる。したがって、もしページバイト数が奇数であれば、データページ４４とＣＲＣ４６との間にはパッドバイト、すなわち１バイトの０（図３において参照符号４５によって示される）がある。図３に示されるように、ページ０は奇数のページバイト数を有し、したがってデータページ０の終わりと、データページ０に続く２バイトのＣＲＣ４６との間には０のパッドバイト４５がある。さらに、図３に示されるように、もしページバイト数が偶数であれば、データページ４４の最後のデータバイトのすぐ後にＣＲＣ４６が続く。図３に示されるように、ページ２は偶数のページバイト数を有し、したがってデータページ２の終わりと、データページ２に続く２バイトのＣＲＣ４６との間には０のパッドバイト４５がない。
さらに、図３に示されるように、データページ４４は４＊Ｎのオフセットで始まらなければならない。したがって、もし先のデータページＣＲＣ４６が４＊Ｎのオフセットで終わっていなければ、２バイトのゼロ４７がＣＲＣの後に付加されて、その後のデータページが４＊Ｎのオフセットで始まるようにする。たとえば図３に示されるようにデータページ１のＣＲＣ４６は４＊Ｎのオフセットでは終わっていないので、２バイトのゼロ４７がＣＲＣ４６の後に付加されて、その後のデータページ４４、すなわちページ２が４＊Ｎのオフセットで始まることを可能にする。
しかし図３に示されるように、もしデータページ４４とマップフィールドエントリ５３とが合計で４１０８バイトにならないならば、マップフィールド５２の始めまでの、データフィールド４０における残りのバイトは０で満たされる。このエントリは充填文字と呼ばれ、図３において参照符号５０で示される。
さらに、この発明の原理によると、図３に示されるように各物理的ブロック３８は各データページ４４に対してレコードパッキング情報のマップエントリ５３のマップフィールド５２を含む。示されるように、論理的に最初のマップエントリ５３、すなわち最初のデータページ４４に属するマップエントリ５３は物理的には、物理的ブロック３８の最後のマップエントリ５３である。たとえば図３に示されるように、参照符号５３で表わされ、ページ０で示される最初のデータページ４４に属するマップエントリＥ０は物理的には物理的ブロック３８の最後のマップエントリ５３であるが、論理的には最初のマップエントリ５３である。同様に、図３に示されるように、データページ１に属するマップエントリＥ１は物理的には物理的ブロック３８の最後から２番目のマップエントリ５３である。
さらに、図３に示されるように、各マップエントリ５３は８バイトの長さであり、かついくつかのサブフィールドを含む。第１のサブフィールドは「圧縮」フィールド８０であり、この「圧縮」フィールドは各マップエントリにおいて１ビットを占め、かつ図３の各マップエントリ５３（Ｅ０…ＥＮ）においてＣ：１で示される。もし圧縮フィールドのビットが「１」に設定されていれば、対応するデータページ４４のデータは圧縮されたフォーマットで記憶されていることを示す。
次のマップエントリ／サブフィールドは「タイプ」フィールド８２である。図３に示されるように、各「タイプ」フィールド８２は３ビットを占め、かつ各マップエントリ５３（Ｅ０…ＥＮ）においてＥｔｙｐｅ：３で示される。各マップエントリ５３はデータページ、テープマークまたは充填文字のいずれかを表示する。３ビットを用いるタイプフィールド８２は、マップエントリ５３が表わすデータフィールド４０のデータのタイプを示す。この発明の原理によると、マップエントリ５３が、ユーザデータを有する対応するデータページ４４を表わすときには、３ビットの「タイプ」フィールド８２はユーザデータページ４４を示すよう設定される。マップエントリ５３がファイルデマーカを表わすときには、３ビットの「タイプ」フィールド８２はテープマークを示すよう設定される。
同様に、物理的ブロック３８にデータページがないときには、対応するマップエントリ５３の「タイプ」フィールド８２は、充填文字５０を表わすよう設定される。さらに、データページ４４とマップフィールドエントリ５３とが合計で４１０８バイトにならないときには、マップサブフィールド５２の始めまでの、データフィールド４０に残るバイトは充填文字５０でまた占められる。しかし、このタイプの充填文字には、関連したマップエントリがない。
さらに、図３に示されるように、各マップエントリ５３は「次の」サブフィールド８４を有し、この「次の」サブフィールド８４は１ビットを占め、かつ各マップエントリ５３（Ｅ０…ＥＮ）においてＮ：１で示される。もし「次の」サブフィールドビット８４が「１」に設定されていれば、それはユーザデータレコードが次の物理的ブロック３８に続くことを示す。
さらに図３に示されるように、マップエントリ５３における別のサブフィールドは「先の」フィールド８６であり、この「先の」フィールド８６もまた１ビットを占め、かつ各マップエントリ５３（Ｅ０…ＥＮ）においてＰ：１で示される。もし「先の」フィールドビット８６が「１」に設定されていれば、それはデータページ４４にあるレコードが先の物理的ブロック３８からのレコードの続きであることを示す。
さらに、図３に示されるように、各マップエントリ５３における別のサブフィールドは「最後の」フィールド８８であり、この「最後の」フィールド８８は１ビットを占め、かつ各マップエントリ５３（Ｅ０…ＥＮ）においてＬ：１で示される。この「最後の」フィールド８８は特定のマップエントリが最後の論理的マップエントリであるかどうかを示す。
さらに、図３に示されるように、各マップエントリ５３には９つの予約ビットもあり、これらのビットは常に０に設定される。これらの予約ビットは図３において（ｕ）：９で示される。
示されるようにさらに、各マップエントリ５３は、２バイトを占めるページバイト数９０を含む。図３においてページ＿バイト＿数：１６で表されるページバイト数９０は、対応するデータページ４４、テープマーク、または充填文字５０のサイズを示す。テープバイト数９０はパッドバイト４５またはＣＲＣ４６を含まない。さらに各マップエントリ５３には、４バイトを占めるレコードバイト数９２が含まれる。レコードバイト数９２は、対応するデータページ４４にあるユーザレコードの圧縮の前の、サイズを示す。
さらに、図２ａおよび図３に示されるように、データフィールド４０およびマップフィールド５２、すなわち各物理的ブロックにおけるバイト場所４１０８の後にＥＤＣ５１が続く。示されるように、ＥＤＣ５１（ＥＤＣ：１６）は２バイトを占め、かつ読取モードおよび書込モードにおいて各物理的ブロック３８のインテグリティをチェックするために用いられる。
さらに図２ａおよび図３に示されるように、各物理的ブロック３８は制御フィールド４８をさらに含み、この制御フィールド４８はフォーマットコード、テープマーカ、データタイプ、圧縮タイプなどといった物理的ブロック３８のさまざまな特性を示すビットを含む。図３に示されるように、論理的ブロック数フィールド５２がさらに含まれ、これは他の物理的ブロック３８に対する、テープ上の物理的ブロック３８の論理的位置を表わす。さらに、示されるように各物理的ブロック３８の制御フィールド４８はバックリンクフィールド５４をさらに含み、このバックリンクフィールド５４は付加の間付加ターゲットブロックの物理的場所を決定するために用いられる。
制御ブロック４８およびそのさまざまなサブフィールドは、テープ上の適切な物理的場所にデータが確実に付加されるように用いられる。
この発明の原理によると、図２ａおよび図３に示されるように、同じ物理的ブロック３８内に各マップエントリ５３とその関連データページ４４とをともに置くことにより、付加動作の間データのインテグリティが保証される。もし付加動作がうまくいかなくても、レコードパッキングフォーマットは、付加場所より先に置かれたデータ対象物すべてを完全に回復可能にする。これは、この発明の原理によると、それらのマップエントリ５３が媒体上のデータページ４４と物理的にともに置かれるためである。
この発明の範囲内で、ここに開示された以外の修正および異なった配置が可能であることが明らかである。この開示は単に例示的なものであり、発明はそのすべての変形を包含する。
【図１】
0003763845.tif 000002
【図２】
0003763845.tif 000003
【図３】
0003763845.tif 000004