(57)【特許請求の範囲】
【請求項１】
データ記憶装置カートリッジを受け入れる複数のスロットを備えたデータ記憶装置ライブラリにおける排出操作を管理する方法であって、
前記スロットは、物理的アドレスを有すると共に、少なくとも１つの物理的Ｉ／Ｏスロットおよび複数の物理的格納スロットを備え、前記データ記憶装置ライブラリは、機能的格納アドレスおよび機能的Ｉ／Ｏアドレスに従ってカートリッジの場所を管理する場所中心のホストに接続されたコントローラを備え、そして、前記データ記憶装置ライブラリは、機能的アドレスと物理的アドレスとを関連付けるためのライブラリ・データベースを備えており、
前記方法が、
カートリッジが前記ライブラリ・データベースによって移送元の機能的格納アドレスに関連付けられた移送元の物理的格納スロットに存在している状態で、該カートリッジを該カートリッジに排他的に関連付けられた前記移送元の機能的格納アドレスから移送先の機能的Ｉ／Ｏアドレスへ排出することを要求する排出コマンドを、前記コントローラがホストから受け取るステップと、
前記排出コマンドに応答して、前記コントローラが行なうステップであって、
カートリッジの物理的な移送と関係なく、前記要求された排出コマンドが首尾よく成功したことを前記ホストへ報告するステップと、
前記ライブラリ・データベースを更新して、前記移送元の物理的格納スロットと前記移送先の機能的Ｉ／Ｏアドレスとを関連付け、前記移送元の物理的格納スロットと前記移送元の機能的格納アドレスとの間の関連付けを解除するステップと
を備えたステップと、
物理的Ｉ／Ｏスロットが使用可能となったときに、カートリッジを前記使用可能となったＩ／Ｏスロットに移送し、前記移送先の機能的Ｉ／Ｏアドレスと前記移送元の物理的格納スロットとの間の関連付けを解除するステップと、
を備えている方法。
【請求項２】
前記ステップ群が、さらに、物理的Ｉ／Ｏスロットが使用可能となるのに応答して、
前記データ記憶装置ライブラリのデータを更新して、前記移送先の機能的Ｉ／Ｏアドレスと前記使用可能となった物理的Ｉ／Ｏスロットとを関連付け、前記移送先の機能的Ｉ／Ｏアドレスと前記移送元の物理的格納スロットとの間の関連付けを解除するステップと、
前記使用可能となった物理的Ｉ／Ｏスロットからカートリッジを取り除くのに応答して、前記移送先の機能的Ｉ／Ｏアドレスと前記使用可能となった物理的Ｉ／Ｏスロットとの間の関連付けを解除するステップと
を備えている、請求項１に記載の方法。
【請求項３】
前記ステップ群が、さらに、
機能的アドレスとカートリッジとの間の関連付けを示す、ホストがアクセス可能なカタログを保持するステップ
を備えている、請求項１に記載の方法。
【請求項４】
前記ライブラリ・データベースが、
機能的アドレスと物理的アドレスとの間の関連付けを示すライブラリ・マップと、
各物理的アドレスを列挙すると共に、各物理的アドレスがカートリッジを格納しているか否かの識別を示すライブラリ状態テーブルと
を備えている、請求項１に記載の方法。
【請求項５】
前記カートリッジが磁気テープ・カートリッジから成る、請求項１に記載の方法。
【請求項６】
データ記憶装置カートリッジを受け入れる複数のスロットを備えたデータ記憶装置ライブラリにおける排出操作を管理する方法を実行する、ディジタル処理装置によって実行可能な機械読み取り可能な命令群のプログラムを有形的に包含しているデータ記憶媒体であって、
前記スロットは、物理的アドレスを有すると共に、少なくとも１つの物理的Ｉ／Ｏスロットおよび複数の物理的格納スロットを備え、前記データ記憶装置ライブラリは、機能的格納アドレスおよび機能的Ｉ／Ｏアドレスに従ってカートリッジの場所を管理する場所中心のホストに接続されたコントローラを備え、そして、前記データ記憶装置ライブラリが機能的アドレスと物理的アドレスとを関連付けるためのライブラリ・データベースを備えており、
前記方法が、
カートリッジが前記ライブラリ・データベースによって移送元の機能的格納アドレスに関連付けられた移送元の物理的格納スロットに存在している状態で、該カートリッジを該カートリッジに排他的に関連付けられた前記移送元の機能的格納アドレスから移送先の機能的Ｉ／Ｏアドレスへ排出することを要求する排出コマンドを、前記コントローラがホストから受け取るステップと、
前記排出コマンドに応答して、前記コントローラが行なうステップであって、
カートリッジの物理的な移送と関係なく、前記要求された排出コマンドが首尾よく成功したことを前記ホストへ報告するステップと、
前記ライブラリ・データベースを更新して、前記移送元の物理的格納スロットと前記移送先の機能的Ｉ／Ｏアドレスとを関連付け、前記移送元の物理的格納スロットと前記移送元の機能的格納アドレスとの間の関連付けを解除するステップと
を備えたステップと、
物理的Ｉ／Ｏスロットが使用可能となったときに、カートリッジを前記使用可能となったＩ／Ｏスロットに移送し、前記移送先の機能的Ｉ／Ｏアドレスと前記移送元の物理的格納スロットとの間の関連付けを解除するステップと、
を備えているデータ記憶媒体。
【請求項７】
前記ステップ群が、さらに、物理的Ｉ／Ｏスロットが使用可能となるのに応答して、
前記データ記憶装置ライブラリのデータを更新して、前記移送先の機能的Ｉ／Ｏアドレスと前記使用可能となった物理的Ｉ／Ｏスロットとを関連付け、前記移送先の機能的Ｉ／Ｏアドレスと前記移送元の物理的格納スロットとの間の関連付けを解除するステップと、
前記使用可能となった物理的Ｉ／Ｏスロットからカートリッジを取り除くのに応答して、前記移送先の機能的Ｉ／Ｏアドレスと前記使用可能となった物理的Ｉ／Ｏスロットとの間の関連付けを解除するステップと
を備えている、請求項６に記載のデータ記憶媒体。
【請求項８】
前記ステップ群が、さらに、
機能的アドレスとカートリッジとの間の関連付けを示す、ホストがアクセス可能なカタログを保持するステップ
を備えている、請求項６に記載のデータ記憶媒体。
【請求項９】
前記ライブラリ・データベースが、
機能的アドレスと物理的アドレスとの間の関連付けを示すライブラリ・マップと、
各物理的アドレスを列挙すると共に、各物理的アドレスがカートリッジを格納しているか否かの識別を示すライブラリ状態テーブルと
を備えている、請求項６に記載のデータ記憶媒体。
【請求項１０】
前記カートリッジが磁気テープ・カートリッジから成る、請求項６に記載のデータ記憶媒体。
【請求項１１】
データ記憶装置カートリッジを受け入れる複数のスロットであって、前記スロットが少なくとも１つの物理的Ｉ／Ｏスロットおよび複数の物理的格納スロットから成り、各スロットが物理的アドレスを備えている複数のスロットと、
カートリッジを、前記スロットを含む様々な場所の間を移送させるロボット機構と、
前記ロボット機構と、機能的格納アドレスおよび機能的Ｉ／Ｏアドレスに従ってカートリッジの場所を管理する場所中心のホストとに接続されたコントローラと、
前記コントローラによってアクセス可能であり、機能的アドレスと物理的アドレスとを関連付けるためのライブラリ・データベースと
を備えており、
前記コントローラは、前記ホストからの排出要求を実行する操作を行なうように構成されており、
前記コントローラは、前記カートリッジが前記ライブラリ・データベースによって移送元の機能的格納アドレスに関連付けられている移送元の物理的格納スロットに存在している状態で、該カートリッジに排他的に関連付けられた前記移送元の機能的格納アドレスから移送先の機能的Ｉ／Ｏアドレスへ排出することを要求する排出コマンドを受け取り、
カートリッジの物理的な移送とは関係なく、要求された排出コマンドが首尾よく完了したことを前記ホストに報告する操作と、
前記ライブラリ・データベースを更新して、前記移送元の物理的格納スロットと前記移送先の機能的Ｉ／Ｏアドレスとを関連付け、前記移送元の物理的格納スロットと前記移送元の機能的格納アドレスとの間の関連付けを解除する操作と、
物理的Ｉ／Ｏスロットが使用可能となったときに、カートリッジを使用可能となった物理的Ｉ／Ｏスロットに移送し、前記移送先の機能的Ｉ／Ｏアドレスと前記移送元の物理的格納スロットとの間の関連付けを解除する操作と、
を行うことを特徴とするデータ記憶装置ライブラリ。
【請求項１２】
前記操作群が、さらに、物理的Ｉ／Ｏスロットが使用可能となるのに応答して、
前記データ記憶装置ライブラリのデータを更新して、前記移送先の機能的Ｉ／Ｏアドレスと前記使用可能となった物理的Ｉ／Ｏスロットとを関連付け、前記移送先の機能的Ｉ／Ｏアドレスと前記移送元の物理的格納スロットとの間の関連付けを解除する操作と、
前記使用可能となった物理的Ｉ／Ｏスロットからカートリッジを取り除くのに応答して、前記移送先の機能的Ｉ／Ｏアドレスと前記使用可能となった物理的Ｉ／Ｏスロットとの間の関連付けを解除する操作と
を備えている、請求項１１に記載のデータ記憶装置ライブラリ。
【請求項１３】
前記操作群が、さらに、
機能的アドレスとカートリッジとの間の関連付けを示す、ホストがアクセス可能なカタログを保持する操作
を備えている、請求項１１に記載のデータ記憶装置ライブラリ。
【請求項１４】
前記ライブラリ・データベースが、
機能的アドレスと物理的アドレスとの間の関連付けを示すライブラリ・マップと、
各物理的アドレスを列挙すると共に、各物理的アドレスがカートリッジを格納しているか否かの識別を示すライブラリ状態テーブルと
を備えている、請求項１１に記載のデータ記憶装置ライブラリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、様々なスロットにテープ装置カートリッジなどのデータ記憶装置カートリッジ（ｄａｔａ  ｓｔｏｒａｇｅ  ｃａｒｔｒｉｄｇｅ）  を複数個格納したデータ記憶装置ライブラリ（ｄａｔａ  ｓｔｏｒａｇｅ  ｌｉｂｒａｒｙ）  に関する。特に、本発明は、機能的アドレスを使ってカートリッジを入出力（「Ｉ／Ｏ（ｉｎｐｕｔ／ｏｕｔｐｕｔ）」）スロットに仮想的に排出（ｅｊｅｃｔ）  することにより、物理的Ｉ／Ｏスロットを効率的に使用することのできるデータ記憶装置ライブラリに関する。
【０００２】
【従来の技術】
多くのデータ処理システムでは、データに効率的にアクセスし、変更し、そして再格納する際に大容量のデータ記憶装置を用いる必要がある。通常、データ記憶装置は、いくつかのレベルに分かれている。各レベルは、異なったデータ・アクセス時間またはデータ記憶費用によって特徴付けられている。第１の、すなわち最高レベルのデータ記憶装置には、電子メモリ、典型的には「ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）」および「ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）」がある。電子メモリは、半導体集積回路の形をとり、１個の集積回路に数百万バイトのデータを記憶させることができる。このようなデータ・バイトに対するアクセス時間は、ナノ秒単位で計られる程である。電子メモリは、アクセスが全て電子的であるから、データに対する最高速のアクセス速度を達成することができる。
【０００３】
第２のレベルのデータ記憶装置には、典型的には「ＤＡＳＤ（ｄｉｒｅｃｔ  ａｃｃｅｓｓ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）」がある。ＤＡＳＤには、例えば磁気ディスクおよび／または光ディスクがある（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす）。データ・ビットは、ディスク表面に形成したマイクロ・メートル大の磁気的または光学的に変化するスポット（ｓｐｏｔ：  斑点）として記憶されており、これにより、データ・ビットの２進数値を構成する「０」および「１」を表している。磁気ＤＡＳＤは、薄い磁性材料によって被覆された少なくとも１つのディスクを備えている。ディスク群は、保護された環境内に回転可能に取り付けられている。各ディスクは、多数の同心のトラックすなわち密接な間隔の円に分割されている。データは、各トラックに沿って順次すなわちビット毎（ごと）に記憶されている。ヘッド・ディスク組立体（「ＨＤＡ（ｈｅａｄ  ｄｉｓｋ  ａｓｓｅｍｂｌｙ）」）と呼ばれているアクセス機構は通常、少なくとも１つの再生／記録ヘッドを備えている。そして、ＨＤＡは、各ＤＡＳＤに備えられており、ディスクが再生／記録ヘッドの傍（そば）で回転している間に、トラックを横切って移動してディスクの表面との間でデータを受け渡す。ＤＡＳＤは、数ギガバイトのデータを記録することができる。そして、このようなデータに対するアクセス時間は、通常、ミリ秒で計られる程度である（電子メモリよりも数桁遅い）。ＤＡＳＤに記憶されたデータに対するアクセス速度が電子メモリよりも遅いのは、ディスクおよびＨＤＡを所望のデータ記憶場所へ物理的に位置決めする必要があるからである。
【０００４】
第３の、すなわち低レベルのデータ記憶装置には、テープ、テープ・ライブラリ、および光ディスク・ライブラリがある。ライブラリに記憶されたデータに対するアクセス速度は、電子メモリまたはＤＡＳＤよりもずっと遅い。なぜなら、ライブラリでは、ロボットまたは人間が必要なデータ記憶媒体を選択して装填（そうてん）する必要があるからである。これらの記憶装置システムの利点は、極めて大容量のデータ記憶能力（ほぼ数テラバイトのデータ記憶能力）がある割に費用が安い点である。さらに、テープ記憶装置は、バックアップ用に特に役立つ。すなわち、データ記憶装置階層の高いレベルで記憶されたデータは、磁気テープに複写し保護している。テープおよび／またはライブラリに記憶されたデータに対するアクセス時間は、現在、ほぼ数秒である。
【０００５】
現在、市場には、データ記憶装置ライブラリとしてインターナショナル・ビジネス・マシーンズ・コーポレーション（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ）：  「ＩＢＭ」社）  製のモデルなど、多数の異なった製品が存在する。現在のデータ記憶装置ライブラリの多くは、「ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）」媒体交換機標準を利用している。この標準は、「場所中心（ｌｏｃａｔｉｏｎ−ｃｅｎｔｒｉｃ）」である。なぜなら、この標準によると、ホストは、システム内の移送元および移送先の場所を指定することより、カートリッジの移送を管理する必要があるからである。各場所  （ｌｏｃａｔｉｏｎ）  は、カートリッジを保持することのできるところ  （ｓｉｔｅ）  であり、「要素（ｅｌｅｍｅｎｔ）」と呼ばれている。各要素は、製造時またはシステム導入時もしくはシステム構成時に要素アドレスを付与されている。ＳＣＳＩ媒体交換機プロトコルは、次の４つの型の要素を定義している。すなわち、媒体輸送要素、格納要素、インポート（ｉｍｐｏｒｔ）／エクスポート（ｅｘｐｏｒｔ）要素、およびデータ転送要素である。物理的な観点から述べると、媒体輸送要素とは受け入れ装置のつかみ（ｇｒｉｐｐｅｒ）のことであり、格納要素とは格納スロットのことであり、インポート／エクスポート要素とはライブラリＩ／Ｏスロットすなわち通過（ｐａｓｓ−ｔｈｒｏｕｇｈ）スロットのことであり、そして、データ転送要素とは取り外し可能な媒体駆動装置のことである。
【０００６】
ある要素から別の要素への移送は、ＳＣＳＩインタフェースにおいて要求する。通常、ある要素から別の要素への移送は、ＳＣＳＩの開発者（ｉｎｉｔｉａｔｏｒ）ソフトウェア（ＩＳＶ（ｉｎｄｅｐｅｎｄｅｎｔ  ｓｏｆｔｗａｒｅ  ｖｅｎｄｅｒ：第三者であるソフトウェア開発主体）プログラムとも呼ばれている）の責任である。ある要素から別の要素への移送には、Ｉ／Ｏスロットと格納スロットとの間の移送などがある。
【０００７】
たとえ一部のデータ記憶装置ライブラリが、現在、商業的にかなり成功していようとも、ＩＢＭ社の技術者は、これらシステムの性能および効率を改善する努力を続けている。注目されている分野の一つに、データ記憶装置ライブラリがカートリッジを排出する方法、および、挿入されたカートリッジを受け入れる方法がある。オペレータ（ｏｐｅｒａｔｏｒ）が、受け入れ装置の動作を中断させることなく、多数のカートリッジをデータ記憶装置ライブラリ中に装填したいとき、オペレータは、カートリッジをＩ／Ｏスロットに挿入する。しかし、データ記憶装置ライブラリは、カートリッジを受け渡す際に使用するＩ／Ｏスロットを限られた個数しか備えていない。したがって、Ｉ／Ｏスロットが満杯の場合、排出／挿入操作は阻害され、それは、ＩＳＶプログラムが、挿入されたカートリッジを格納スロットへＳＣＳＩインタフェースを使って移送するまで続く。
【０００８】
さらに、多くのデータ記憶装置ライブラリは、Ｉ／Ｏスロットからカートリッジを取り込むのが遅い。その理由は、データ記憶装置ライブラリは、操作員（ｈｕｍａｎ  ｏｐｅｒａｔｏｒ）  がライブラリ制御パネルを使ってホストへコマンドを発行するのに頼りきっているからである。操作員がライブラリ制御パネルを使ってホストへコマンドを発行するのは、ホストが、ライブラリのロボット機構に適切なコマンドを発行することにより、カートリッジの挿入操作を管理する必要があるからである。この状況は、ホストがデータ記憶装置ライブラリから離れた場所に位置している場合、悪化する可能性がある。なぜなら、オペレータ（およびライブラリ制御パネル）はホストの場所に位置しているのに、オペレータは、データ記憶装置ライブラリの場所に位置しているＩ／Ｏスロットに対してカートリッジを物理的に挿入したり取り出したりする必要があるからである。したがって、大量のカートリッジを付加する処理を実行するには、データ記憶装置ライブラリのＩ／Ｏステーションとライブラリ制御パネルとの間を何度も往復しなければならない可能性がある。
【０００９】
さらに、ＩＳＶプログラムがオペレータの要求によって、または自動的に一部のカートリッジを排出する必要がある場合、オペレータは、各カートリッジに対して空（から）のＩ／Ｏスロットが存在することを保証する必要がある。さもないと、一部のカートリッジを排出しようとして、それが実行できない結果、エラーや失敗などの遅延を引き起こす可能性がある。これらの理由および他の理由により、既存のデータ記憶装置ライブラリは、改良する必要がある。
【００１０】
【課題を解決するための手段】
本発明は、広義には、ソフトウェアの互換性を維持しながら、機能的アドレスを使ってカートリッジを格納スロットからＩ／Ｏスロットへ仮想的に移送することにより、Ｉ／Ｏスロットを効率的に使用するデータ記憶装置ライブラリに関する。特に、本発明では、場所中心に動作するライブラリのホストが機能的格納アドレスおよび機能的Ｉ／Ｏアドレスに従ってカートリッジの移送を管理する。実際には、データ記憶装置ライブラリは、複数のカートリッジ受け入れスロットを備えている。同スロットは、物理的Ｉ／Ｏスロットおよび物理的格納スロットから成る。機能的Ｉ／Ｏアドレスおよび機能的格納アドレスは、物理的Ｉ／Ｏスロットおよび物理的格納スロットと異なり、カートリッジの場所を管理する際に使用する仮想的な場所である。したがって、カートリッジの場所についてホストが知っていることは、カートリッジの場所の機能的アドレスに限られている。また、データ記憶装置ライブラリは、機能的アドレスと物理的アドレスとを関連付けているライブラリ・マップを備えている。
【００１１】
次に、排出操作を説明する。始めに、ホストから排出コマンドを受け取る。排出コマンドは、カートリッジを移送元機能的アドレスから移送先機能的Ｉ／Ｏアドレスへ移送することを要求している。排出コマンドに応答して、データ記憶装置ライブラリは、カートリッジの物理的な移送とは全く関係なく、要求された排出コマンドが首尾よく完了したことをホストに報告する。その後、データ記憶装置ライブラリは、まず、カートリッジを保持している物理的格納スロットに機能的Ｉ／Ｏアドレスを付与する。物理的Ｉ／Ｏスロットが使用可能になると、データ記憶装置ライブラリは、そこにカートリッジを物理的に移送する。そして、データ記憶装置ライブラリは、カートリッジの機能的Ｉ／Ｏアドレスとこの物理的Ｉ／Ｏスロットとを関連付ける、または、カートリッジの機能的Ｉ／Ｏアドレスを空として登録する。
【００１２】
以上の点から、一実例では、本発明は、データ記憶装置ライブラリにおける排出操作を管理する方法を提供するように実現することができる。別の実例では、本発明は、ここで述べたように排出操作を管理するように構成した、データ記憶装置ライブラリなどの装置を提供するように実現することができる。さらに別の実例では、本発明は、データ記憶装置ライブラリにおける排出操作を管理する操作を行なう、ディジタル・データ処理装置によって実行可能な機械読み込み可能な命令群のプログラムを有形的に包含しているデータ記憶媒体を提供するように実現することができる。他の実例は、ここで述べたようにデータ記憶装置ライブラリにおける操作を行なうように、複数の相互接続された導電性の回路素子を構成した論理回路に関する。
【００１３】
本発明によれば、本発明の利用者は、顕著な利点を享受することができる。例えば、ホストの作業負荷が軽減する。その理由は、ホストは、カートリッジの物理的な排出動作が完了するのを待つことなく、また、その時に物理的Ｉ／Ｏスロットが使用可能であるか否かに関係なく、カートリッジの排出を指示することができるからである。別の利点として、本発明によれば、ホストとライブラリのコントローラとの間のソフトウェアの互換性を広範囲に維持することができる。また、本発明によれば、以上の他にも多数の利点および利益を得ることができる。それらは、以下の記述から明らかになる。
【００１４】
【発明の実施の形態】
本発明の性質、目的、および利点は、以下の詳細な記述を添付図面と共に考察した後、当業者にとってより明白になる。
【００１５】
〔ハードウェア構成要素および相互接続〕
（はじめに）
本発明の一側面は、データ記憶装置システムに関する。データ記憶装置システムは、様々なハードウェア構成要素および相互接続によって具体化することができる。その一例を図１に示す。図１は、階層的に上位のホスト１０２に接続されたデータ記憶装置ライブラリ１００を示している（ホストとは、ネットワークを介した遠隔処理システムにおいて、サービスを提供する側のコンピュータを指し示す用語である）。データ記憶装置ライブラリ１００は、一つの型または種々の型の携帯型データ記憶媒体、例えば磁気テープ・カートリッジ、光カートリッジ、書き込み可能ＣＤなどを備えることができる。参照を容易にするために、データ記憶装置ライブラリ１００の携帯型データ記憶媒体を「カートリッジ」と呼ぶことにする。
【００１６】
（ホスト）
数ある機能の中でもとりわけ重要な機能として、ホスト１０２は、データ記憶装置ライブラリ１００にデータを供給してカートリッジに記憶させる、また、データ記憶装置ライブラリ１００に要求を送ってカートリッジからデータを取り出させる。ホストの役割は、様々な型のハードウェア、例えばディジタル・データ処理コンピュータ、論理回路、個別回路素子の集積体、操作員に対するインタフェースなどによって果たすことができる。一例として、ホスト１０２は、ＡＩＸのようなオペレーティング・システムを搭載したＩＢＭ  ＲＳ／６０００マシンから構成することができる。また、ホスト１０２は、インタフェース１０４およびホスト・カタログ１２０にも接続されている。インタフェース１０４によって、ホスト１０２は、操作員と情報を交換することが可能になる。インタフェース１０４は、制御パネル、ビデオ・モニタ、コンピュータ・キーボード／マウスなどの適切なマン・マシン・インタフェースから構成することができる。
【００１７】
ホスト１０２は、「場所中心」のコマンドを使ってデータ記憶装置ライブラリ１００内のデータを管理するが、その際、一例としてＳＣＳＩ媒体交換機プロトコルを使用することができる。ホスト１０２は、システム内で移送元の場所および移送先の場所を指定することにより、カートリッジの移送を管理している。本発明によると、移送元の場所および移送先の場所は、物理的な格納場所ではなく、「機能的アドレス」である。機能的アドレスは、「架空の（ｉｍａｇｉｎａｒｙ）」または「仮想的な（ｖｉｒｔｕａｌ）」格納アドレスとも考えることができる。なぜなら、機能的アドレスは、必ずしもデータ記憶装置ライブラリ１００内の物理的な格納場所に対応している必要がないからである（それらが偶然対応するようになってもかまわない）。それにかかわらず、ホストの場所中心の性質を満足させるために、ホスト１０２は、各機能的アドレスと様々な物理的属性、例えば媒体輸送要素、格納要素、インポート・エクスポート要素、またはデータ転送要素とを関連付けている。図示した例では、ホストの機能的アドレスとして、「機能的Ｉ／Ｏアドレス」（ホストはこれをＩ／Ｏスロットであるはずだと受け取る）および「機能的格納アドレス」（ホストはこれを格納スロットであるはずだと受け取る）がある。一例として、ホストの機能的アドレスは、ホスト１０２を備えたデータ記憶装置ライブラリ１００を構成する時に確定することができ、その後、普通は変更されない。また、マッピング（関連付け）には別の方式がある。それは、ホストの機能的アドレスと実際の格納場所（「物理的格納アドレス」と呼ばれる）とを関連付けるものである。このように構成することは、データ記憶装置ライブラリ１００にとって、いくつかの利点がある。この点については、下で詳細に述べる。
【００１８】
ホスト１０２は、ホスト・カタログ１２０を保持してデータ記憶装置ライブラリ１００を機能的アドレスに従って管理するのを支援している。ホスト・カタログ１２０は、各機能的アドレスとデータ記憶装置ライブラリ１００に格納されている全ての記憶装置カートリッジとをホストの観点から相互に参照するものである。テーブル１にホスト・カタログ１２０の一例を示す。各行は、１つの機能的アドレスと、次に示すものとを相互に参照している。すなわち、
１．機能的アドレスによって表される、データ記憶装置ライブラリ１００内の架空の場所の型。この情報（当該機能的アドレスが「機能的Ｉ／Ｏアドレス」および「機能的格納アドレス」のどちらであるかという情報を含んでいる）は、ホスト１０２の動作中固定されている。
２．当該機能的アドレスがカートリッジを格納しているか否か。この情報は、データ記憶装置ライブラリ１００の通常の動作の間に変化する。
３．当該機能的アドレスに格納されているカートリッジ（もしあれば）の識別情報。識別情報を示す一つの型は、図示したように、ボリューム・シリアル番号（ｖｏｌｕｍｅ  ｓｅｒｉａｌ  ｎｕｍｂｅｒ：  「ＶＯＬＳＥＲ」）によるものである。この情報は、データ記憶装置ライブラリ１００の通常の動作の間に変化する。
【００１９】
〔テーブル１：ホスト・カタログ〕
機能的アドレス：型                  ：満杯／空：ＶＯＬＳＥＲ
（固定）      ：（固定）            ：（可変）：（可変）
００１        ：機能的格納アドレス  ：満杯    ：９２９４７５
００２        ：機能的格納アドレス  ：満杯    ：９８８９２８
００３        ：機能的格納アドレス  ：満杯    ：３２９８２０
００４        ：機能的格納アドレス  ：空      ：無し
・・・        ：・・・              ：・・・  ：・・・
０９８        ：機能的Ｉ／Ｏアドレス：満杯    ：３３３８２０
０９９        ：機能的Ｉ／Ｏアドレス：空      ：無し
１００        ：機能的Ｉ／Ｏアドレス：空      ：無し
【００２０】
（駆動装置）
データ記憶装置ライブラリ１００は、駆動装置１０６を備えており、データ記憶装置ライブラリ１００内のカートリッジを用いて読み取り／書き込み操作を行なう。データ記憶装置ライブラリ１００は、要望があるならば、複数の駆動装置１０６を使用することができる。各駆動装置１０６は、データ記憶装置ライブラリ１００内の特定の形式のデータ記憶装置カートリッジにアクセスするのに適したハードウェアから構成されている。例えば、磁気テープ・カートリッジの場合、駆動装置１０６は、ＩＢＭモデル３５９０テープ駆動装置で構成することができる。カートリッジは、ロボット機構１１０によって、駆動装置１０６に差し向けたり、そこから引き戻したりする。これについては後述する。
【００２１】
（物理的なカートリッジの格納および管理）
データ記憶装置ライブラリ１００は、カートリッジを物理的に移送して格納する装置をも備えている。例えば、物理的格納スロット１１４は、カートリッジが使われていないときにそれらを格納している。物理的格納スロット１１４は、棚などのデータ記憶装置ライブラリ用の区画から成る。
【００２２】
物理的Ｉ／Ｏスロット１１２は、カートリッジをデータ記憶装置ライブラリ１００との間で受け渡すために設けられている。物理的Ｉ／Ｏスロット１１２には、印が付けられているもの、知られているもの、脇に置かれているもの、位置決めされているものなど、オペレータがカートリッジをデータ記憶装置ライブラリ１００に挿入し、また、そこからカートリッジを取り出すように指定されているスロットが全て含まれる。物理的Ｉ／Ｏスロット１１２を使用することにより、オペレータはカートリッジをデータ記憶装置ライブラリ１００に挿入することができ（「挿入（ｉｎｓｅｒｔ）」操作）、また、データ記憶装置ライブラリ１００はカートリッジを排出することができる（「排出（ｅｊｅｃｔ）」操作）。オペレータは、ロボット機構１１０または駆動装置１０６の動作を中断させることなく、物理的Ｉ／Ｏスロット１１２にアクセスすることができる（例えば外部の扉を使って）。しかしながら、これは必ずしも必要でない。物理的Ｉ／Ｏスロット１１２の例としては、「通過（ｐａｓｓ−ｔｈｒｏｕｇｈ）」スロット、キャリッジ（ｃａｒｒｉａｇｅ）、コンベヤー（ｃｏｎｖｅｙｏｒ）、Ｉ／Ｏスロットとして指定された普通の格納型のスロットなどがある。
【００２３】
駆動装置１０６、物理的Ｉ／Ｏスロット１１２、および物理的格納スロット１１４の間でカートリッジを移送するために、データ記憶装置ライブラリ１００はロボット機構１１０を備えている。ロボット機構１１０は、各経路１１０ａ、１１０ｂ、１１０ｃによってこれらの構成要素にアクセスする。ロボット機構１１０は、任意の適切な移送機械、例えばロボット・アーム、統合カートリッジ装填装置、コンベヤー、Ｘ−Ｙ座標装置上を移動することのできるつかみ（ｇｒｉｐｐｅｒ）などによって実現することができる。
【００２４】
（コントローラ）
データ記憶装置ライブラリ１００は、コントローラ１０８の監視下で動作している。コントローラ１０８は、カートリッジをある機能的アドレスから別の機能的アドレスへ移送するよう自分に要求するコマンドをホスト１０２から受け取る。コントローラ１０８は、ワイヤ／ケーブル、少なくとも１つのバス、光ファイバー線、無線伝送、インテリジェント通信チャネル（ｉｎｔｅｌｌｉｇｅｎｔ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｃｈａｎｎｅｌ）などのインタフェースによってホスト１０２と通信している。データ記憶装置ライブラリ１００は、「制御」経路を構成しているホスト−コントローラ・インタフェースに加え、ホスト１０２と駆動装置１０６との間でデータを転送する「データ」経路をも備えている。
【００２５】
コントローラ１０８は、ディジタル・データ処理機械、論理回路、個別回路素子集積体などの自動化された機構から構成されており、適切なプログラム、物理的な構成などに従って動作している。具体例を挙げると、コントローラ１０８は、ＩＢＭ  ＰｏｗｅｒＰＣプロセッサから構成することができる。
【００２６】
コントローラ１０８は、架空の「機能的アドレス」を参照している場所中心のコマンドをホスト１０２から受け取った後、これらのコマンドをデータ記憶装置ライブラリ１００内に存在する物理的な場所に翻訳し、ロボット機構１１０に指示することにより要求された操作を実行する。ホストの機能的アドレスとデータ記憶装置ライブラリ１００の物理的格納場所とを対応付けるために、コントローラ１０８は、ライブラリ・マップ１１６およびライブラリ状態テーブル１１８を備えたライブラリ・データベースを保持している。
【００２７】
ライブラリ・マップ１１６は、各機能的アドレス毎に、対応する物理的格納アドレスを識別している（ただし、機能的アドレスと物理的格納アドレスとが関連付けられている場合に限る）。テーブル２にライブラリ・マップの一例を示す。各行は、一つの機能的アドレスとそれに関連付けられた物理的格納アドレスとを示している。この例では、物理的アドレスは、ロボットのつかみ（ｇｒｉｐｐｅｒ）用の水平−垂直座標から成る。
【００２８】
〔テーブル２：ライブラリ・マップ〕
機能アドレス：機能アドレスの型：関連付けられた物理的アドレス
（固定）    ：（固定）        ：（可変）
００１      ：格納            ：（１，１）左
００２      ：格納            ：（１，１）右
００３      ：格納            ：（１，２）左
００４      ：格納            ：関連付け無し
・・・      ：・・・          ：・・・
０９８      ：Ｉ／Ｏ          ：（４，５）左
０９９      ：Ｉ／Ｏ          ：関連付け無し
１００      ：Ｉ／Ｏ          ：関連付け無し
【００２９】
ライブラリ状態テーブル１１８（テーブル３）は、データ記憶装置ライブラリ１００内の全ての物理的格納アドレスを列挙している。この列挙は、データ記憶装置ライブラリ１００の物理的な構成に依存し、製造時、初期構成（ｉｎｉｔｉａｌ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）時などに確定される。また、ライブラリ状態テーブル１１８は、各物理的格納アドレス毎に、次の事項を示している。
１．当該物理的格納アドレスは、カートリッジを格納しているか否か。これは、時々変わり得る。
２．当該物理的格納アドレスを具体化している物理的構成は何か（例えば読み取り／書き込み駆動装置、格納スロット、Ｉ／Ｏスロットなど）。これは、適当な時点、例えばデータ記憶装置ライブラリ１００の初期構成時に固定される。
３．当該物理的格納アドレスに格納されているカートリッジのＶＯＬＳＥＲなどの識別情報。これは、カートリッジがデータ記憶装置ライブラリ１００内を動き回るのにつれて、時々変化する。
【００３０】
〔テーブル３：ライブラリ状態テーブル〕
物理的アドレス  ：満杯／空：物理的アドレスの構成：ＶＯＬＳＥＲ
（固定）        ：（可変）：（固定）            ：（可変）
（１，１）左    ：満杯    ：格納スロット        ：９２９４７５
（１，１）右    ：満杯    ：格納スロット        ：９８８９２８
（１，２）左    ：満杯    ：格納スロット        ：３２９８２０
・・・          ：・・・  ：・・・              ：・・・
（４，５）左    ：満杯    ：Ｉ／Ｏスロット      ：３３３８２０
（５，８）右    ：空      ：Ｉ／Ｏスロット      ：無し
・・・          ：・・・  ：・・・              ：・・・
（１０，１０）右：空      ：駆動装置            ：無し
【００３１】
（典型的なディジタル・データ処理装置）
コントローラ１０８は、一例としてディジタル・データ処理装置を含む様々な形態で実現することができる。この装置は、様々なハードウェア構成要素および相互接続によって実現することができる。その一例が図２のディジタル・データ処理装置２００である。ディジタル・データ処理装置２００は、記憶装置２０４に接続されたプロセッサ２０２、例えばマイクロプロセッサなどの処理機械（ｐｒｏｃｅｓｓｉｎｇ  ｍａｃｈｉｎｅ）を備えている。この例では、記憶装置２０４は、高速アクセス記憶装置２０６に加えて不揮発性記憶装置２０８を備えている。高速アクセス記憶装置２０６は、「ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）」で構成することができ、プロセッサ２０２が実行するプログラムの命令群を格納するのに使用することができる。不揮発性記憶装置２０８は、例えば、「ハードディスク装置」のような少なくとも１つの磁気データ記憶ディスク、テープ駆動装置、または他の任意の適切な記憶装置で構成することができる。また、ディジタル・データ処理装置２００は、入出力２１０、例えば線、バス、ケーブル、電磁的リンク（ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  ｌｉｎｋ）など、プロセッサ２０２がディジタル・データ処理装置２００の外部の別のハードウェアとデータを交換するための手段をも備えている。
【００３２】
上の特定の記述に拘（かか）わらず、（この開示の恩恵に浴する）当業者は、上述したディジタル・データ処理装置を、本発明の範囲を離れることなく、別の構成の機械で実現することができる、ということを理解できる。具体的な例として、構成要素２０６、２０８の一方は、取り除くことができる。さらに、記憶装置２０４は、プロセッサ２０２に内蔵することができ、あるいは、ディジタル・データ処理装置２００の外部に設けることさえ可能である。
【００３３】
（論理回路）
上述したディジタル・データ処理装置と異なり、本発明の別の実施形態では、コントローラ１０８を実現するのに、コンピュータによって実行される命令群の代わりに論理回路を使用する。適用する際に、速度、経費、手仕事の費用などの分野における制約が特に厳しい場合には、上記論理回路は、「ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：小さなトランジスタを数千個備えた特定用途向けの集積回路）」を構築することにより、実現することができる。このようなＡＳＩＣは、ＣＭＯＳ（ｃｏｍｐｌｅｍｅｎｔａｒｙ  ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒ）、ＴＴＬ（ｔｒａｎｓｉｓｔｏｒ  ｔｒａｎｓｉｓｔｏｒ  ｌｏｇｉｃ）、ＶＬＳＩ（ｖｅｒｙ  ｌａｒｇｅ−ｓｃａｌｅ  ｉｎｔｅｇｒａｔｉｏｎ）などの適切な集積回路構築技術を用いて実現することができる。別の代替品には、「ＤＳＰ（ｄｉｓｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｃｈｉｐ）」、個別素子（例えば抵抗器、キャパシタ、ダイオード、インダクタ、トランジスタなど）から成る回路、「ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）」、「ＰＬＡ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙ）」などがある。
【００３４】
〔動作〕
上述した様々なハードウェアの実施形態に加え、本発明の別の側面は方法に関する。これについて、下で述べる
【００３５】
（データ記憶媒体）
図１および図２の文脈において、このような方法は、例えば、コントローラ１０８（例えばディジタル・データ処理装置２００によって実現する）を操作して機械読み取り可能な命令群の様々な手順を実行することにより、実現することができる。上記命令群は、様々な型のデータ記憶媒体中に存在することができる。この点で、本発明の一つの側面は、プログラムされた製品に関し、それは、データ記憶装置ライブラリ１００における排出操作を管理する方法を実行する、ディジタル・データ処理装置によって実行可能な機械読み取り可能な命令群のプログラムを有形的に包含しているデータ記憶媒体から成る。
【００３６】
このデータ記憶媒体は、例えば、高速アクセス記憶装置２０６によって示されているように、ＲＡＭ（図示せず）をコントローラ１０８に内蔵することにより構成することができる。この代わりに、上記命令群は、プロセッサ２００が直接的または間接的にアクセスできる別のデータ記憶媒体、例えば磁気的データ記憶ディスケット３００（図３）に格納することができる。高速アクセス記憶装置２０６、ディスケット３００、または別の何かに格納するかに関係なく、上記命令群は、次に示す様々な機械読み取り可能なデータ記憶媒体に格納することができる。すなわち、直接アクセス記憶装置（例えば既存の「ハードディスク装置」、「ＲＡＩＤ（redundant array of inexpensive disks）」などのＤＡＳＤ）、磁気テープ、電子的読み取り専用メモリ（例えばＲＯＭ（read-only memory）、ＥＰＲＯＭ（erasable programmable ROM）、ＥＥＰＲＯＭ(electrically EPROM)） 、光記憶装置（例えばＣＤ−ＲＯＭ（compact disc read only memory）、ＷＯＲＭ（write once read many times）、ＤＶＤ（digital versatile disc）、ディジタル光テープ）、紙「パンチ」カードを含む他の適切なデータ記憶媒体である。また、本発明を例証する実施形態では、上記機械読み取り可能な命令群は、「Ｃ」などのプログラミング言語で作成したソース・コードをコンパイルしたオブジェクト・コードから構成することができる。
【００３７】
（論理回路）
上述したデータ記憶媒体とは別に、本発明の方法の面は、命令を実行するプロセッサを使うことなく、論理回路を用いても実現することができる。この実施形態では、論理回路は、コントローラ１０８の中に実現し、本発明の方法を実現する操作を実行するように構成する。論理回路は、上述した多くの異なった型の回路を用いて実現することができる。
【００３８】
（カートリッジの挿入）
図４に本発明の一例を実現するカートリッジ取り込み手順４００／４５０を示す。説明を容易にするために、図４の例は、上述した図１に示したハードウェア構成要素および相互接続の文脈で記述してあるが、これに限定することを何ら意図していない。
【００３９】
ルーチン４００では、コントローラ１０８は、データ記憶装置ライブラリ１００を管理しており、物理的Ｉ／Ｏスロット１１２から新しいカートリッジを自動的に取り出して空にしている。このように、Ｉ／Ｏスロットが満杯にならないようにしているので、オペレータは助かる（オペレータがカートリッジを必要以上に挿入しようとしても、そうすることはできない）。また、これにより、排出操作が容易になる。なぜなら、コントローラ１０８が使用可能な物理的Ｉ／Ｏスロットを見つけ出す機会がより多くなるからである。ルーチン４００の別の利点は、外部からカートリッジを物理的Ｉ／Ｏスロット１１２に挿入したことを、コントローラ１０８が自動的に認識する点である。この結果、手順４００では、ホスト１０２が全く関与することなく、自動的に物理的Ｉ／Ｏスロット１１２からカートリッジを取り出して空にしている。
【００４０】
手順４００は、ステップ４０２で開始する。ステップ４０４で、コントローラ１０８は、物理的Ｉ／Ｏスロット１１２に新しいカートリッジが挿入されているか否かを判定する。このステップは、所望の繰り返し計画に従って物理的Ｉ／Ｏスロット１１２を物理的に調べる（「ポーリング（ｐｏｌｌｉｎｇ）」）ことにより、実行することができる。物理的Ｉ／Ｏスロット１１２に対するポーリングは、物理的Ｉ／Ｏスロット１１２の扉が開いている場合などにはいつでも行なう。この代わりに、物理的Ｉ／Ｏスロット１１２の一部または全部に、カートリッジを受け入れた時に活性化するセンサを備えてもよい。ステップ４０４で新たに挿入されたカートリッジが見つかると、コントローラ１０８は、ライブラリ状態テーブル１１８にアクセスして空の物理的格納スロット１１４を識別し（ステップ４０６）、次いで、挿入されたカートリッジをそこに移送する（ステップ４０８）。ステップ４０８では、空であった物理的格納スロット１１４に、今やカートリッジが存在すること示すために、ライブラリ状態テーブル１１８を更新することも行なう。ステップ４０８には、カートリッジが挿入されていた物理的Ｉ／Ｏスロット１１２を迅速に空にする効果がある。この結果、当該物理的Ｉ／Ｏスロット１１２を別の挿入操作または排出操作が使用することが可能になる。さらに、このステップ４０８は、ホスト１０２からは見えない。
【００４１】
ステップ４０８の後、コントローラ１０８は、上記カートリッジのことをホスト１０２に知ってもらう。そのために、コントローラ１０８は、ライブラリ・マップ１１６から使用可能な機能的Ｉ／Ｏアドレスを１つ選択し、ライブラリ・マップ１１６を更新してこの機能的Ｉ／Ｏアドレスと現在カートリッジを格納している物理的格納スロットとを関連付ける（ステップ４１０）。ステップ４１０の後、ルーチン４００は、ステップ４０４に戻り新たに挿入される別のカートリッジを処理する。
【００４２】
手順４００とは別に、手順４５０は、コントローラ１０８によって実行され、カートリッジの挿入操作を完了させる際にホスト１０２を支援する。手順４５０は、ステップ４１２で開始する。ステップ４１４で、コントローラ１０８は、自身がホスト・コマンドを受け取っているか否かを判定する。ホストの状態コマンドに応答して、コントローラ１０８は、新たに受け入れたカートリッジをホスト１０２に報告する（ステップ４１３）。特に、コントローラ１０８は、カートリッジの機能的Ｉ／Ｏアドレス（ステップ４１０から得る）およびＶＯＬＳＥＲをホスト１０２に報告する。以上が、ホスト１０２がコントローラ１０８に問い合わせてデータ記憶装置ライブラリ１００内にカートリッジが存在することについて知る方法である。ホスト１０２が機能Ｉ／Ｏアドレスに新しいカートリッジが存在することに（ステップ４１３経由で）気付いた後、ホスト１０２は、自身のホスト・カタログ１２０を更新して上記機能的Ｉ／Ｏアドレスを「満杯」として示し、当該カートリッジのＶＯＬＳＥＲなどの識別情報を記録する。次いで、暫（しばら）くしてから、ホストのプログラムによっては、ホスト１０２は当該カートリッジをその機能的Ｉ／Ｏアドレスから機能的格納アドレスへ移送するように決定する。こうなると、ホスト１０２は、別の適切な「挿入」コマンドを送ることができる。同コマンドは、ステップ４１４でコントローラ１０８が受け取る。コントローラ１０８は、ステップ４１４の当該挿入コマンドに反射的に応答して、要求された挿入操作は既に完了している旨を直ちに報告する（ステップ４１６）。また、挿入操作を実際に実行するために、コントローラ１０８はステップ４１６の一部として追加のステップをいくつか実行する（これら追加のステップはホスト１０２からは見えない）。すなわち、カートリッジが既に物理的格納スロットに存在しているときには、物理的な移送を必要としない。その代わりに、コントローラ１０８は、ライブラリ・マップ１１６から使用可能な機能的格納アドレスを１つ選択し、それと当該カートリッジの物理的格納アドレスとをライブラリ・マップ１１６を更新することにより関連付ける（ステップ４１６）。コントローラ１０８は、当該カートリッジの以前の機能的Ｉ／Ｏアドレスの関連付けを、この機能的Ｉ／Ｏアドレスをライブラリ・マップ１１６に「関連付け無し」として登録することにより、解除する。ステップ４１６の後、コントローラ１０８は、ステップ４１４に戻って別のホスト・コマンドを待ち受ける。
【００４３】
この開示の利益故に、当業者は、手順４００、４５０内の操作の順番は本発明から離れることなくある観点から変更することができる、ということを理解すべきである。さらに、上述した手順４００、４５０は説明を容易にするために厳格かつ連続的な形態で述べたが、手順４００、４５０の操作の一部は、ハードウェア割り込みまたはマルチタスクを用いて、別のカートリッジ用の操作などと並行して実行することができる。
【００４４】
（カートリッジの排出）
図５は、カートリッジの排出手順５００の一例を示している。説明を容易にするために、図５の例は、上述した図１に示したハードウェア構成要素および相互接続の文脈で記述してあるが、これに限定することを何ら意図していない。
【００４５】
都合の良いことに、コントローラ１０８は、データ記憶装置ライブラリ１００を管理し仮想的な排出をほとんど瞬時に実行する。その結果、ホスト１０２は、物理的Ｉ／Ｏスロットが満杯であることに気付いても、それによって動作が阻害されることは決してない。下に示すように、上記仮想的な排出の実行は、全ての物理的Ｉ／Ｏスロットが使用可能である否かに関係なく、機能的Ｉ／Ｏアドレスとカートリッジの現在の物理的格納スロットとを瞬時に関連付けることにより行なう。
【００４６】
手順５００は、ステップ５０２で開始する。ステップ５０４で、コントローラ１０８は、排出コマンドをホスト１０２から受け取る。排出コマンド（ホストのプログラムに従って場所中心である）は、コントローラ１０８にカートリッジを特定の機能的格納アドレスから特定かつ使用可能な機能的Ｉ／Ｏアドレスへ移送するように命令している。これに応答して、コントローラ１０８は、反射的に、要求された排出操作は完了した旨を報告する（ステップ５０６）ので、ホスト１０２の要求は瞬時に満たされる。このとき、ホスト１０２は、ホスト・カタログ１２０から当該カートリッジを削除することができる。この代わりに、ホスト１０２は、当該カートリッジがデータ記憶装置ライブラリ１００から取り除かれるまで、または、別の適当なイベントが発生するまで（どちらになるかは、コントローラ１０８への問い合わせによって決まる）待ってもよい。また、排出要求を実際に実行するために、コントローラ１０８は、別のステップをいくつか実行する（これらはホスト１０２からは見えない）。すなわち、コントローラ１０８は、ライブラリ・マップ１１６を更新して現在の物理的格納スロットと関連付けられている機能的格納アドレスを解放し、当該機能的格納アドレスを特定の機能的Ｉ／Ｏアドレスで置き換える（ステップ５０６）。これにより、ほとんど瞬時に仮想的な排出が行なわれる。なぜなら、今やホスト１０２は、カートリッジがＩ／Ｏスロットに位置すべきであることを知っているからである。
【００４７】
上述したステップ５０４〜５０６の代替として、ホストの排出要求は、現在の物理的格納スロットと関連付けられている機能的Ｉ／Ｏアドレスのことは忘れて、コントローラ１０８に問い合わせて使用可能な機能的Ｉ／Ｏアドレスを識別し、選択し、そして報告させることもできる。
【００４８】
ステップ５０６の後、コントローラ１０８は、実際にカートリッジを排出する物理的Ｉ／Ｏスロットが使用可能であるか否かを調べる（ステップ５１０）。否ならば、コントローラ１０８は、ステップ５１２で待機した後、ステップ５１０を繰り返す。ステップ５１２の実現方法の一つは、例えば、排出すべきカートリッジを、物理的Ｉ／Ｏスロットが使用可能になる度ごとに進む待ち行列に入れることに関係するものである。
【００４９】
待機しているカートリッジ用に物理的Ｉ／Ｏスロットが使用可能になると、コントローラ１０８は、当該カートリッジを使用可能になった物理的Ｉ／Ｏスロット内へ移送する（ステップ５１４）。次いで、コントローラ１０８は、ライブラリ・マップ１１６を更新する（ステップ５１６）。その結果、当該カートリッジの現在の機能的Ｉ／Ｏアドレスは、それが以前占めていた物理的格納スロットの物理的格納アドレスではなく、当該カートリッジの物理的Ｉ／Ｏアドレスと関連付けられている。さらに、コントローラ１０８は、ライブラリ状態テーブル１１８を更新して当該カートリッジが物理的Ｉ／Ｏスロットに存在していることを示す。
【００５０】
ステップ５１６の後、コントローラ１０８は、操作員や別の機械などによって当該カートリッジがその物理的Ｉ／Ｏスロットから取り除かれるまで、待機する。このとき、コントローラ１０８は、ライブラリ・マップ１１６およびライブラリ状態テーブル１１８を更新して当該カートリッジがデータ記憶装置ライブラリ１００から取り除かれたことを示す（ステップ５１７）。この代わりに、コントローラ１０８は、ステップ５１６を省略してもかまわない。この場合、当該カートリッジがその物理的Ｉ／Ｏスロットへ移送されたことは、記録されない。ステップ５１７の後、排出ルーチン５００は、ステップ５１８で終了する。
【００５１】
（別の実施形態）
上述した開示では本発明を説明する実施形態を多数示したが、特許請求の範囲によって明確に定めた本発明の範囲から離れることなく、ここに種々の変更および変形をなすことができることは、当業者にとって明らかである。さらに、本発明の構成要素は、単数形で記述され、または特許請求の範囲に記載されている可能性があるが、単数形に限定することが明示的に述べられていない限り、複数形を意図している。さらに、操作手順は、説明および特許請求の範囲への記載のために何らかの特定の順番で示す必要があるが、本発明は、このような特定の順番を超えた種々の変更を意図している。当業者は、この点を理解することができる。
【図面の簡単な説明】
【図１】本発明によるデータ記憶装置システムのハードウェア構成要素および相互接続のブロック図である。
【図２】本発明によるディジタル・データ処理マシンのブロック図である。
【図３】本発明による典型的なデータ記憶媒体を示す図である。
【図４】本発明によるカートリッジ取り入れ手順のフローチャートを示す図である。
【図５】本発明による、ホストの排出コマンドを処理する操作手順のフローチャートを示す図である。
【符号の説明】
１００…データ記憶装置ライブラリ、１０２…ホスト、１０４…インタフェース、１０６…駆動装置、１０８…コントローラ、１１０…ロボット機構、１１２…物理的Ｉ／Ｏスロット、１１４…物理的格納スロット、１１６…ライブラリ・マップ、１１８…ライブラリ状態テーブル、１２０…ホスト・カタログ、２００…ディジタル・データ処理装置、２０２…プロセッサ、２０４…記憶装置、２０６…高速アクセス記憶装置、２０８…不揮発性記憶装置、３００…ディスケット。
【図１】
0003630408.tif 000002
【図２】
0003630408.tif 000003
【図３】
0003630408.tif 000004
【図４】
0003630408.tif 000005
【図５】
0003630408.tif 000006