(57)【特許請求の範囲】
【請求項１】
暗黙アドレッシング順次媒体デバイスと、明示アドレッシング順次媒体デバイスに適合する少なくとも１つのホストとを、コンバータを用いて整合させるための方法であって、
ホストの明示アドレッシング媒体アクセス・コマンド発行に応答するステップと、
前記明示アドレッシング媒体アクセス・コマンドの内容を変換して暗黙アドレッシング媒体アクセス・コマンドを生成するステップと、
前記暗黙アドレッシング媒体アクセス・コマンドを前記暗黙アドレッシング順次媒体デバイスに渡すステップと、
ホストのデバイス機能クエリ発行に応答して、前記デバイスが明示アドレッシングを利用することを前記ホストに通知するステップと、
を有する、方法。
【請求項２】
前記明示アドレッシング媒体アクセス・コマンド以外のホストのコマンド発行に応答して、実質的に変更を行わずに前記コマンドを前記デバイスに中継するステップをさらに有する、請求項１に記載の方法。
【請求項３】
前記明示アドレッシング媒体アクセス・コマンドの内容を変換して暗黙アドレッシング媒体アクセス・コマンドを生成する前記ステップは、
命令、アドレス、およびデータ長を含む明示アドレッシング媒体アクセス・コマンドを受信するステップと、
前記アドレスを除去して前記命令およびデータ長を維持するステップと、
を有する、請求項１に記載の方法。
【請求項４】
前記暗黙アドレッシング順次媒体デバイスに渡される各コマンドごとに、
前記ホストの発行したコマンドの内容を調べるステップと、
前記デバイスにクエリを行って現在の順次媒体アドレスを確認するステップと、
のステップのうち１つを実行することによって、読み取りまたは書き込みが行われている現在の順次媒体アドレスを監視するステップをさらに有する、請求項１に記載の方法。
【請求項５】
前記明示アドレッシング媒体アクセス・コマンドの内容を変換して暗黙アドレッシング媒体アクセス・コマンドを生成する前記ステップは、更に、
前記デバイスの現在の順次媒体アドレスに再位置決めが必要であるか否かを判定するステップと、
再位置決めが必要である場合、前記暗黙アドレッシング媒体アクセス・コマンドを前記デバイスに渡す動作の前に、媒体再位置決めコマンドを前記デバイスに発行するステップと、
を有する、請求項４に記載の方法。
【請求項６】
各ホストの発行コマンドごとに、
各コマンドごとに、前記コマンドがデータ論理ブロックを含むか否かを判定するステップと、
前記コマンドがデータ論理ブロックを含む場合、前記データ論理ブロック数に従って現在の順次媒体アドレスのレコードを更新するステップと、
前記コマンドがデータ論理ブロックを含まない場合、前記デバイスと通信を行って現在の順次媒体アドレスを確認するステップと、
を有するステップを実行することによって、現在の順次媒体アドレスを監視するステップをさらに有する、請求項１に記載の方法。
【請求項７】
ホストの明示アドレッシング媒体アクセス・コマンド発行に応答するステップは、更に、ホストの発行した明示アドレッシング媒体アクセス・コマンドを待ち行列に入れるステップを有し
前記明示アドレッシング媒体アクセス・コマンドの内容を変換して暗黙アドレッシング媒体アクセス・コマンドを生成するステップは、、
前記ホストの発行した明示アドレッシング媒体アクセス・コマンドの内容を変換して対応する暗黙アドレッシング媒体アクセス・コマンドを生成するステップであり、
前記暗黙アドレッシング媒体アクセス・コマンドを前記暗黙アドレッシング順次媒体デバイスに渡すステップは、前記待ち行列に入れた暗黙アドレッシング媒体アクセス・コマンドを、それらに対応する明示アドレッシング媒体アクセス・コマンドのアドレスが示す順序で前記デバイスに渡すステップである、請求項１に記載の方法。
【請求項８】
請求項１ないし７のいずれかに記載の方法のステップを実行するためにデジタル処理装置が実行可能な機械読み取り可能命令のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気テープ・ドライブ等の暗黙アドレッシング順次データ・ストレージ装置へのアクセスに関する。
【背景技術】
【０００２】
従来、小型コンピュータ・システム・インタフェース（ＳＣＳＩ：small computer system interface）テープ・ドライブは、「ステートレス（stateless）」コマンドを用いている。「暗黙アドレッシング（implicit addressing）」コマンドとも呼ばれるステートレス・コマンドでは、現在のアドレッシングの知識が含まれる。換言すると、暗黙のＲｅａｄ（読み取り）、Ｗｒｉｔｅ（書き込み）、または他の位置決めコマンドは、特定のアドレスで明示的に開始することなく現在の位置において動作を開始するためのコマンドから成る。ホスト・アプリケーションまたはストレージ・マネージャは、関連するテープ・アクセスおよび位置決めコマンドを発行する。以下は、一連の暗黙アドレッシング・コマンドの例である。すなわち、WRITE LENGTH 2、WRITE LENGTH 2、WRITE LENGTH 2である。各コマンドの成分は、書き込み命令と、書き込み対象のデータの単位数とを含む。
【０００３】
従って、現在の書き込み位置を追跡することは重要である。なぜなら、コマンドは、最後のコマンドに対する位置を特定するだけだからである。多くの失敗から回復することが難しいのは、ホスト・アプリケーションまたはデバイス・ドライバが、失敗の後にドライブがどこに位置するかを常に正確に知っているわけではないからである。従って、暗黙アドレッシングは限定されている。なぜなら、失敗したＳＣＳＩコマンドが、現在のテープ位置を知らずにホストを離れる場合があるからである。コマンド層まで渡されたロー・レベルの相互接続の失敗は、結果としてバックアップ・ジョブの失敗を招き、全ジョブの再試行は、可能であるとしても、何時間もかかる恐れがある。別の起こり得る問題は、コマンドがテープ・ドライブに達する時までにコマンドが間違って配列され、テープ・ドライブが不正確な方法でそれらを適用することである。
【０００４】
新しいテープ・ドライブが明示アドレッシングを用いることを基礎とする技術標準について、提案が行われている。明示アドレッシングでは、ホスト・アプリケーションまたはストレージ・マネージャは、所望のアドレスを指定するテープ・アクセスおよび位置決めコマンドを発行する。以下は、上記の暗黙書き込みコマンドと同じ書き込みシーケンスを実行する一連の明示アドレッシング・コマンドの１例である。すなわち、WRITE ADDRESS 0 LENGTH 2、WRITE ADDRESS 2 LENGTH 2、WRITE ADDRESS 4 LENGTH 2である。明示アドレッシングはランダム・アクセスを提供しないが、書き込みが行われているテープ上の位置の追跡を容易にするという利点を提供する。明示アドレッシングは、暗黙アドレッシングでも起こり得るように、現在のテープ位置を追跡する際の不注意によるエラーによって、データを実際に書き込んでいる場所についてストレージ・サブシステムが混乱してしまうという事態を回避する手助けとなる。
【０００５】
明示アドレッシング・テープ・ドライブは、著しい向上をもたらすことが期待されるが、インターナショナル・ビジネス・マシーンズ・コーポレーション（「ＩＢＭ」）の技術者は、今なお、より良くカスタマの役に立つための異なるテープ・ストレージ手法を研究している。この点で、ＩＢＭの技術者は、明示アドレッシングに向けた発展の１つの副産物は、コストが高くその他の点では有用な暗黙アドレッシング・ドライブを断念することであるということを認識している。明示アドレッシング・テープ・ドライブと共に動作するように設計されたホスト・アプリケーションおよび中間ストレージ・システムは、「レガシー（legacy）」の暗黙アドレッシング・テープ・ドライブとは適合しない。場合によっては、カスタマは、最新のストレージ・サブシステムの購入を望むが、レガシーの暗黙アドレッシング・テープ・ドライブを断念したくないことがある。そして、こういったカスタマにとって、最新の技術は、いくつかの未解決の問題のため、完全に適切なものとは言えない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
概して、本発明は、ホスト・アプリケーションとの関連において明示アドレッシング順次媒体デバイスの性能をシミュレートするため、ハードウエアおよび／またはソフトウエア・コンバータを追加することによる、暗黙アドレッシング順次媒体デバイスの変形に関与する。
【課題を解決するための手段】
【０００７】
ホスト・アプリケーションからの明示アドレッシング読み取り／書き込みコマンドの受信に応答して、コンバータは、明示アドレッシング読み取り／書き込みコマンドを、暗黙アドレッシング読み取り／書き込みコマンドに変換して、暗黙アドレッシング読み取り／書き込みコマンドを、順次媒体デバイスに渡す。任意選択肢として、ホスト・アプリケーションからのドライブ機能クエリ（query）に応答して、コンバータは、ドライブが明示アドレッシングを利用することを通知する。別の任意選択肢として、アプリケーション・ホストからの明示アドレッシング読み取り／書き込みコマンド以外のコマンドの受信に応答して、コンバータは、コマンドを調べて順次媒体位置を監視し、コマンドを実質的に変更せずにドライブに中継する（relay）。
【０００８】
前述の特徴は、多くの異なる形態で実施することができる。例えば、本発明を実施して、暗黙（implicit）アドレッシング順次媒体デバイス（addressing sequential media device）と、明示（explicit）アドレッシング順次媒体デバイスのために設計されたホスト・アプリケーションとを整合させる（interface）ための方法を提供することができる。別の実施形態では、本発明を実施して、かかる機能性を有するコンバータを組み込んだストレージ・システム・インタフェースまたはかかるコンバータのみ等の装置を提供することができる。別の実施形態では、本発明を実施して、本明細書中に記載するコンバータを実現するためにデジタル・データ処理装置によって実行可能な機械読み取り可能命令のプログラムを明白に具現化する信号搬送媒体（signal-bearing media）を提供することができる。別の実施形態は、本明細書中に記載するコンバータを提供するように構成された多数の相互接続導電要素（element）を有する論理回路に関する。
【０００９】
本発明は、多数の明確な利点をユーザにもたらす。主として、本発明によって、人々は、明示アドレッシング順次媒体ドライブと共に動作するように設計されたストレージ・サブシステムと共に暗黙アドレッシング順次媒体ドライブ（または他のデバイス）を使用し続けることができる。もしそうでなければ、これらの古い（legacy）ドライブは、時代遅れになってしまうであろう。これによって、さもなければ明示アドレッシング順次媒体ドライブを購入するために必要であった大きな投資を回避する。更に、本発明は、暗黙アドレス媒体ドライブの市場を維持することに役立つ。なぜなら、カスタマは彼等のドライブがすぐに時代遅れになることを恐れる必要が無いからである。その理由は、本発明のコンバータによって、古い順次媒体ドライブで、フォーマット、標準の変更が回避され、更にストレージ・サブシステムで行われる他の技術的変更が回避されるからである。
【００１０】
別の利点として、本発明によって、暗黙アドレッシング・ドライブは、明示アドレッシング・コマンド・セットによって最も容易に可能となる新しいテープ機構から利益を得ることができる。この例は、コマンド待ち行列（command queuing）であり、ここでは、入来するコマンドがキューから集められて処理される。これによって、早く到着したコマンドがテープ上の後のアドレスに書き込みを行おうとするのを拒絶する必要性を回避する。それは、さもなければそれらがデータにギャップを生成するからである。コマンド待ち行列は、ホストと順次媒体デバイスとの間に長い距離がある場合に、特に利点を提供する。また、本発明は、多数の他の利点および恩恵を提供し、これらは本発明の実施形態についての以下の説明から明らかとなろう。
【発明を実施するための最良の形態】
【００１１】
ハードウエア・コンポーネントおよび相互接続
全体構造
図１は、説明の目的のため、本発明の１つの例示的な実施を示す動作環境１００を示す。当業者は、本発明を、図示した例とは異なる様々なソフトウエア、ハードウエア、およびアーキテクチャによって実施可能であることが分かるであろう。環境１００は、以下のうち少なくとも１つを含む。すなわち、ホスト・アプリケーション１０２、デバイス・ドライバ１０４、ネットワーク１０６、コンバータ１０８、および順次媒体デバイス１１０である。１つの実施形態では、順次媒体デバイス１１０は、テープ・ドライブ等、１つ以上の順次媒体ドライブを有する。
【００１２】
ホスト
ホスト・アプリケーション１０２は、物理ホスト・マシン、ソフトウエア・プログラム、ネットワーク、オペレータ端末、ストレージ・サブシステム、階層ストレージ・マネージャ、ユーザ・アプリケーション・プログラム、または、順次媒体デバイス１１０に送出される様々なストレージ命令の他のソース（source）を含む。これらの命令のいくつかの例には、Ｒｅａｄ（読み取り）コマンド、Ｗｒｉｔｅ（書き込み）コマンド、Ｒｅｐｏｓｉｔｉｏｎ（再位置決め）コマンド等が含まれる。ホスト・アプリケーション１０２は、機能性を維持するために必要な場合に、デバイス１１０によって書き込まれるデータを供給し、デバイス１１０によって読み出されたデータを受信し、デバイス１１０と通信を行う。
【００１３】
デバイス・ドライバ
デバイス・ドライバ１０４は、ホスト・アプリケーション１０２と媒体デバイス１１０との間を仲介するソフトウエア・コンポーネントである。デバイス・ドライバ１０４は、ホスト・アプリケーション１０２を、ネットワーク１０６の動作に関する様々な詳細事項から解放する。デバイス・ドライバ１０４は、例えば、ホスト１０２におけるオペレーティングシステムの一部分、ネットワーク１０６またはアプリケーション１０２に関連する製品、またはゲートウエイ・ベンダからの製品とすることができる。なお、本発明は、デバイス・ドライバ１０４が無くとも動作することができ、従って、このコンポーネントは任意選択である。デバイス・ドライバ１０４の１例は、ＩＢＭマシン・タイプ３５９０テープ・ドライブ（１１０）の購入によって供給されるＡＩＸオペレーティング・システム・コンポーネント（１０２）である。
【００１４】
ネットワーク
所望のストレージ構成に応じて、任意選択的なネットワーク１０６を用いるか、または省略することができる。ネットワーク１０６のいくつかの有用な例には、ストレージ・エリア・ネットワーク、または、スイッチ、ルータ、および／またはゲートウエイの別の構成が含まれる。いくつかの他の例には、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、トークン・リング、または他の通信リンクが含まれる。更に別の例は、メディア・コントローラ・カード等の、より単純な製品である。
【００１５】
コンバータ
コンバータ１０８は、本発明の機能を実施するために環境１００に追加される新しいコンポーネントである。コンバータは、例えば、ルータ／ゲートウエイ、または、異なるプロトコル間の変換のために用いられる別の既知の構成から成るものとすることができる。例えば、コンバータ１０８は、ネットワーク１０６からのｉＳＣＳＩまたはＳＣＳＩプロトコルとデバイス１１０におけるファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）プロトコルとの間の変換を行うことができる。コンバータ１０８の１つの特定の例は、ＩＢＭマシン・タイプ２１０８モデルＧ０７製品である。通常の実施においては、ルータ／ゲートウエイは、キャリア・ラッパー、すなわち、ルータ／ゲートウエイを通過するコマンドのフォーマットを操作するのみである。以下で更に詳細に述べるが、コンバータ１０８は、更に、これを通過するコマンドの内容を変更する。すなわち、アドレッシング方式（scheme）を変更する。更に具体的には、デバイス１１０が実際に暗黙アドレッシングを用いるにもかかわらず、コンバータ１０８は、ホスト・アプリケーション１０２との関連において、明示アドレッシング順次媒体ドライブの性能を模倣する。また、コンバータ１０８は、ホスト・アプリケーション１０２からの明示アドレッシング・コマンドを、デバイス１１０と適合する暗黙アドレッシング・コマンドに変換する。
【００１６】
図１は、コンバータ１０８の１例を示すが、多くの異なる構成が可能である。コンバータ１０８は、入力ポート１０８ａ、出力ポート１０８ｃ、およびプロセッサ１０８ｂを含む。プロセッサ１０８ｂは、現在の媒体位置レコード１０８ｄを用いて、現在のテープ位置（アドレス）を追跡する。すなわち、コンバータ１０８は、暗黙アドレッシング・デバイス１１０における明示アドレッシング・コマンドの実施を容易にするため、現在の媒体位置のレコード１０８ｄを含む。１例では、現在の媒体位置は、テープ読み取り／書き込みヘッドと磁気テープ媒体との間の相対位置（relative position）を含む。レコード１０８ａは、レジスタ、バイト、ページ、ファームウエア位置、ソフトウエア構成、ハードウエア・サイト、または、順次媒体デバイス１１０のアドレスまたは他の現在の論理書き込み位置を追跡するための他の手段を含むことができる。
【００１７】
ポート１０８ａ、１０８ｃは、コネクタ、バス、インテリジェント通信デバイス、チャネル、光リンク、無線リンク、平面（planar）接続、ホスト・バス・アダプタ、ギガビット・インタフェース・コネクタ（ＧＢＩＣ）、または、使用可能なアプリケーションに適切な他のいずれかの構成を含むことができる。例えば、ポート１０８ａ、１０８ｃは、ロー・レベルのデバイス・ドライバ等を実施するための回路要素を含むことができる。プロセッサ１０８ｂは、様々な方法で実施可能なデジタル・データ・プロセッサを含むが、これについては以下で説明する。先に述べたコンバータ１０８の実施形態の代替案として、このコンポーネントは、ホスト１０２、ネットワーク１０６、またはデバイス１１０のソフトウエア・コンポーネントとして実施することも可能である。
【００１８】
１つの実施形態では、上述のように、コンバータ１０８は１つのみである。別の実施形態では、システム１００は、ホスト・アプリケーション１０２と順次媒体デバイス１１０との間に多数のコンバータ１０８を含む。コンバータ１０８は、別個のデバイス・ドライバ１０４およびネットワーク１０６を使用可能であり、または、これらのコンポーネントの一部または全てをコンバータ１０８間で共有することができる。多くのコンバータ１０８を用いる場合、コンバータは、適切に結合して、全てのコンバータに充分な情報を交換し、デバイス１１０の現在の媒体位置を監視する。
【００１９】
順次媒体デバイス
１つの実施形態では、順次媒体デバイス１１０は、磁気テープ、光テープ等の着脱可能な順次アクセス可能媒体にアクセスするための１つ以上のドライブを含む。例示を容易にするため、この考察では磁気テープを用いる。この関連において、デバイス１１０の１例は、ＩＢＭマシン・タイプ３５９０製品である。かかるドライブは、上述のような１つのテープ・ドライブ、または多数のドライブの配列を含む場合がある。代替の実施形態では、順次媒体デバイスは、物理的なテープ・ドライブでなく仮想順次媒体ドライブを含む。かかる仮想デバイスは、例えば、ストレージ・マネージャ、コントローラ、インタフェース、または、順次媒体ドライブであるかのように通信を行うが、ＤＡＳＤまたは他の非順次媒体上で受信したストレージ命令を実施し、またはかかる命令を非順次ストレージ・コントローラに転送してそこで実施させる他の処理コンポーネントを含むことができる。この意味で、本明細書中で述べる順次媒体「デバイス」は、実際のまたは仮想的な順次媒体ストレージ装置を含むことができる。
【００２０】
例示的なデジタル・データ処理装置
上述のように、コンバータ１０８は、様々な形態で実施可能である。１例として、コンバータ１０８は、図２のデジタル・データ処理装置２００のハードウエア・コンポーネントおよび相互接続によって例示されるようなデジタル・データ処理装置を含むことができる。
【００２１】
装置２００は、マイクロプロセッサ、パーソナル・コンピュータ、ワークステーション、または他の処理マシン等のプロセッサ２０２を含み、ストレージ２０４に結合される。本例では、ストレージ２０４は、高速アクセス・ストレージ２０６および不揮発性ストレージ２０８を含む。高速アクセス・ストレージ２０６は、ランダム・アクセス・メモリ（「ＲＡＭ」）を含むことができ、プロセッサ２０２が実行するプログラム命令を格納するために使用可能である。不揮発性ストレージ２０８は、例えば、バッテリ・バックアップＲＡＭ、ＥＥＰＲＯＭ、「ハードドライブ」、テープ・ドライブ、または他のいずれかの適切なストレージ・デバイス等の１つ以上の磁気データ・ストレージ・ディスクを含むことができる。また、装置２００は、回線（line）、バス、ケーブル、電磁リンク、またはプロセッサ２０２が装置２００の外部の他のハードウエアとデータを交換するための他の手段等の入力／出力２１０を含む。
【００２２】
前述の具体的な記載にもかかわらず、当業者（この開示の恩恵を受ける）は、本発明の範囲から逸脱することなく、上述の装置を異なる構成のマシンで実施可能であることが分かるであろう。具体的な例としては、コンポーネント２０６、２０８の一方を除去することができる。更に、ストレージ２０４、２０６、および／または２０８を、プロセッサ２０２に搭載するか、または装置２００の外部にも設けることができる。
【００２３】
論理回路
上述のデジタル・データ処理装置とは異なり、本発明の異なる実施形態は、コンピュータ実行命令の代わりに論理回路を用いてコンバータ１０８を実現する（implement）。速度、費用、ツール・コスト等の点において、特定の用途の必要に応じて、この論理回路（logic）は、何千もの小さい集積トランジスタを有する特定用途集積回路（ＡＳＩＣ：application-specific integrated circuit）を構成することによって実現可能である。かかるＡＳＩＣは、ＣＭＯＳ、ＴＴＬ、ＶＬＳＩ、または他の適切な構成によって実現可能である。他の代替案は、デジタル信号処理チップ（「ＤＳＰ」）、個別回路（抵抗、キャパシタ、ダイオード、インダクタ、およびトランジスタ等）、フィールド・プログラム可能ゲートアレイ（「ＦＰＧＡ：field programmable gate array」）、プログラム可能論理アレイ（「ＰＬＡ：programmable logic array」）等を含む。
【００２４】
動作
本発明の実施形態の構造的特徴について述べたが、動作の側面についてこれより説明する。上述のように、動作の側面は、概して、ホスト・アプリケーションとの関連において、明示アドレッシング順次媒体ドライブの性能をシミュレートするため、ハードウエアおよび／またはソフトウエア・コンバータを追加することによって、暗黙アドレッシング順次媒体ドライブを変更することを伴う。
【００２５】
信号搬送媒体
マシン実行プログラム・シーケンスを用いて機能を実現する場合はいつでも、これらのシーケンスは、様々な形態の信号搬送媒体（signal-bearing media）において具現化することができる。図２の状況において、この信号搬送媒体は、例えば、ストレージ２０４、または、プロセッサ２０２によって直接または間接にアクセス可能な磁気データ・ストレージ・ディスケット３００（図３）等、別の信号搬送媒体を含むことができる。ストレージ２０６、ディスケット３００、または他のどの場所に含まれるにせよ、命令は、様々な機械読み取り可能データ・ストレージ上に記憶することができる。いくつかの例には、直接アクセス・ストレージ（例えば従来の「ハードドライブ」、安価なディスクの冗長アレイ（「ＲＡＩＤ（redundant array of inexpensive disk）」）、または他の直接アクセス・ストレージ・デバイス（「ＤＡＳＤ」）、磁気または光テープ等のシリアル・アクセス・ストレージ、電子不揮発性メモリ（例えばＲＯＭ、ＥＰＲＯＭ、またはＥＥＰＲＯＭ）、バッテリ・バックアップＲＡＭ、光ストレージ（例えばＣＤ−ＲＯＭ、ＷＯＲＭ、ＤＶＤ）、ペーパー「パンチ」カード、または、アナログまたはデジタルの伝送媒体およびアナログおよび通信リンクおよび無線通信を含む他の適切な信号搬送媒体が含まれる。本発明の例示的な実施形態では、機械読み取り可能命令は、「Ｃ」等の言語からコンパイルされ、アセンブリ原語からアセンブルしたソフトウエア・オブジェクト・コードを含むことができる。
【００２６】
論理回路
上述の信号搬送媒体とは異なり、本発明の機能の一部または全ては、プロセッサを用いて命令を実行する代わりに、論理回路を用いて実施可能である。従って、かかる論理回路は、本発明の１実施形態の方法を実行するための動作を行うように構成される。論理回路は、上述のように、多くの異なるタイプの回路を用いて実施可能である。
【００２７】
動作の全シーケンス
図４は、本発明の１実施形態の方法の１例を示すシーケンス４００を示す。限定を意図するためではなく、説明を容易にするため、図４の例は、上述のストレージ環境１００との関連で説明する。また、説明を容易にするため、本発明は、デバイス１１０として単一の物理的テープ・ドライブを利用した実施形態に関する。シーケンス４００は、ステップ４０２で開始し、ここで、技術者は、デバイス・ドライバ１０４、ネットワーク１０６、およびコンバータ１０８をインストールする。インストールは、ホスト・アプリケーション１０２を実行するマシン（複数のマシン）とコンバータ１０８の間とのネットワーク１０６との電気的な結合、および、コンバータ１０８とドライブ１１０との結合を伴う。コンバータ１０８をネットワーク１０６に統合する場合、ネットワーク１０６は、ドライブ１１０に直接結合する。ネットワーク１０６の構成は、デバイス・ドライバ１０４および任意の必要なソフトウエア構成ステップをインストールおよび／またはアクティブにして（activate）、ドライバ１０４、ネットワーク１０６、およびコンバータ１０８を動作のため準備することを伴い、これらの一部または全ては、当業者に既知のものとすることができる。また、ステップ４０２の一部として、コンバータ１０８は、取り付けたドライブ１１０の数、タイプ、または他の特性を識別するために調査（survey）を行う。ステップ４０２が完了すると、コンバータ１０８の動作が開始する（ステップ４０３）。
【００２８】
ステップ４０４、４０６は、コンバータ１０８が、ネットワーク１０６が中継したホスト・アプリケーション１０２からのコマンドを受信し、次いで処理する場合に発生するイベントを記述（describe）する。ステップ４０４では、コンバータ１０８は、ホスト・アプリケーション・コマンドを受信する。「コマンド」は、ドライブ１１０に、その機能（capability）を報告させ、読み取りおよび／または書き込み動作（「read／write動作」）を実行させ、テープを再位置決めさせ、その動作モードへの変更を許可し、ステータスを報告させること等のための命令を含む。ドライブ１１０は、他のコマンドも認識することができる。
【００２９】
１つのケースでは（ステップ４０４ａ）、コンバータ１０８は、ステップ４０４において、ドライブの機能、特性、タイプ、モデル等のレポートを要求するクエリ・コマンドを受信する。この場合、コンバータ１０８は、ドライブの応答を調整して、ドライブが明示アドレッシングを利用することを表明する（assert）（ステップ４０６ａ）。
【００３０】
別のケースでは（ステップ４０４ｂ）、コンバータ１０８は、ステップ４０４において、明示アドレッシング読み取り／書き込みコマンド（媒体アクセス・コマンドとも呼ばれる）を受信する。この場合、コンバータ１０８は、次に進んで、所定の構文ルール（syntax rule）等に対してコマンドの妥当性を確認する（ステップ４０６ｂ）。また、ステップ４０６ｂは、テープの先頭または現在のテープ位置まで送られない限り（最新の書き込みデータの完全な再書き込みを指示しない限り）、いかなる書き込みコマンドも有効でないことの要求等、他の要求も課する場合がある。これらの要求の理由は、ほとんどのテープ技術は、データ書き込み能力において絶対的に順次であり、書き込み動作の間違った順序は必ずしも容易に修正できるとは限らないことである。
【００３１】
コマンドが有効である場合、コンバータ１０８は、明示アドレッシング読み取り／書き込みコマンドを、適切な暗黙読み取り／書き込みコマンドに変換する（ステップ４０６ｃ）。明示アドレッシング読み取り／書き込みコマンドは、コマンド（ＲｅａｄまたはＷｒｉｔｅ等）、読み取り／書き込みを行うためのアドレス、および読み取り／書き込みを行うデータの長さを含む。変換には、以下の結果としておきるコマンドの生成が必要である。
【００３２】
１．位置決めコマンド（POSITIONINGCOMMAND）（必要な場合）。位置決めコマンドは、テープとドライブの読み取り／書き込みヘッドとの間の相対位置を変更するように作用し、これによってドライブ１１０がアクセスしている現在の論理ブロック数（番号）を変更する。位置決めコマンドが必要となり得るのは、例えば、順次媒体デバイスの現在位置（例えば論理ブロック数）が明示論理ブロックアドレス・コマンドの明示アドレスと一致しない場合である。再位置決めが必要となり得る他のいくつかの例には、先に書き込んだファイルまたは他のエンド・マーク上で再位置決めをして新しいデータの書き込み（追加）を開始すること、タイムアウトまたはエラーの後に書き込み再試行を行うこと、破棄する古いデータを書き直す（write over）こと等が含まれる。１つの実施形態では、位置決めは、変換したコマンドを発行する前に適切なブロック数でＬＯＣＡＴＥコマンドを実行してテープ・ドライブを再位置決めすることによって達成可能である。
【００３３】
２．暗黙アドレス・コマンド（IMPLICITADDRESS COMMAND）。  暗黙アドレス・コマンドは、明示アドレス・コマンドからアドレスを除去し、コマンドおよびデータ長を保持することによって生成させる。
【００３４】
３．読み取り位置コマンド（READPOSITION COMMAND）（必要な場合）。読み取り位置コマンドは、明示アドレッシング・コマンドが相対コマンドである場合、または別の理由によって現在のテープ位置を判定することが難しい場合に必要となる。例えば、読み取り位置コマンドは、テープ・ドライブ１１０がチェック・コンディション（Check Condition）エラーを報告した場合はいつでも使用可能である。
【００３５】
以下の例は、ステップ４０６ｃの明示アドレッシング・コマンド変換の特定の例を提供する。コマンドWRITE ADDRESS 4 LENGTH 10、WRITE ADDRESS 0 LENGTH 1、WRITE ADDERSS 1 LENGTH 3を受信すると、コンバータはそれらを、順番に以下のコマンドのように変換する。WRITE LENGTH 1、WRITE LENGTH 3、WRITE LENGTH 10。
【００３６】
変換の後、コンバータ１０８は、変換した、現在は暗黙のアドレッシング・コマンドを、ドライブ１０に送信する。コマンドがＷｒｉｔｅコマンドである場合、コンバータ１０８は、現在の媒体位置１０８ｄのレコードを更新して、テープ・ドライブの現在のアドレス、相対ヘッド位置、または論理書き込み位置の他の指示（indication）を示す。
【００３７】
任意選択的な改善策として、コンバータ１０８は、コマンド待ち行列を実行して、早く到着した（earlier-arriving）コマンドがテープ上の後のアドレスに書き込みを行おうとするのを拒絶する（なぜなら、それらは、さもなければデータにギャップを生成するからである）必要性を回避することができる。この実施形態では、コンバータ１０８は、多数の到着する明示アドレッシング・コマンドを蓄積し、ステップ４０４ｃの変換を行う前にそれらを、提示されたアドレスに従って順序付ける（re-order）。あるいは、コンバータ１０８は、コマンドを、最初に暗黙アドレッシングに変換し、次いでそれらを前に提示された明示アドレスに従って順序付けることができる。コンバータ１０８は、バッファの限界まで、または所望の最大送信−書き込み遅延時間の限界まで、または他の基準まで、コマンドを蓄積することができる。後に到着し、現在のアドレスよりも早く順次媒体アドレスに書き込みを行おうとするコマンドは、例えば、コンバータ１０８がエラーメッセージをホスト・アプリケーション１０２に戻すことによって拒絶することができる。ステップ４０６ｃに対する任意選択的な改善策として、コンバータ１０８が、現在のコマンドが前に成功したＷｒｉｔｅコマンドの再試行であると判定すると、コンバータ１０８は、そのコマンドを破棄し、「良好」のステータス・レポートをホスト・アプリケーション１０２に戻すことができる。  
【００３８】
ステップ４０４ａ、４０４ｂとは異なり、別の可能性として、コンバータ１０８が明示アドレッシング読み取り／書き込みコマンド以外のコマンドを受信することがある（ステップ４０４ｃ）。例えば、ステップ４０４のコマンドが、暗黙読み取り／書き込みコマンド、再位置決めコマンド等である可能性がある。この場合、コンバータ１０８は、コマンドの内容を調べて現在のテープ位置を監視し、レコード１０８ｄを更新し、次いでコマンドをドライブ１１０に渡す（ステップ４０６ｄ）。例えば、コマンドが２論理ブロックだけテープを進める暗黙書き込みコマンドの場合、コンバータ１０８は現在の媒体位置レコード１０８ａを２ブロックだけ進ませる。しかしながら、ＳｐａｃｅおよびＲｅｐｏｓｉｔｉｏｎ等の「相対的」コマンドは、テープ位置を変える量について自己記述的（self-descriptive）ではない。更に具体的には、再位置決めコマンドは、テープを次のファイル・マーカに再位置決めしようと試みる。かかる場合、ステップ４０６ｄは、コンバータ１０８が、コマンドをドライブ１１０に渡し、ドライブ１１０がコマンドを完了するまで待ち、現在のテープ・アドレス（または他の論理位置）についてドライブ１１０にクエリ（照会）を行い、次いでレコード１０８ｄを更新することを伴う。このクエリは、例えばＲｅａｄ  Ｐｏｓｉｔｉｏｎコマンドを発行することによって実行可能である。また、例えば、Ｕｎｉｔ  Ａｔｔｅｎｔｉｏｎ状況によって論理ブロック・アドレスが変更されたことが暗示される場合、ドライブにクエリを行う必要があり得る。次いで、報告された現在のテープ位置を用いて、レコード１０８ａを更新する。
【００３９】
前述の開示は、本発明の多数の例示的な実施形態を示すが、当業者には、特許請求の範囲で規定されるような本発明の範囲から逸脱することなく様々な変更および変形を実施可能であることは認められよう。更に、本発明の要素は単数で記載または請求することができるが、単数に対する限定を明示的に述べていない限り、複数も考えられる。更に、当業者には、説明および請求の目的のために、動作シーケンスをある特定の順序で述べなければならないが、本発明はかかる特定の順序を超えて様々な変更が考えられることは認められよう。
【図面の簡単な説明】
【００４０】
【図１】本発明の１実施形態による順次媒体ストレージ・システムのハードウエア・コンポーネントおよび相互接続のブロック図である。
【図２】本発明の１実施形態によるデジタル・データ処理装置のブロック図である。
【図３】本発明の１実施形態による例示的な信号搬送媒体を示す。
【図４】本発明の１実施形態による、暗黙アドレッシング順次媒体デバイスを、明示アドレッシングを用いたホスト・アプリケーションに整合させる（interface）ための動作シーケンスのフローチャートである。
【図１】
0004524112.tif 000002
【図２】
0004524112.tif 000003
【図３】
0004524112.tif 000004
【図４】
0004524112.tif 000005