(57)【特許請求の範囲】
【請求項１】
複数の記録媒体をそれぞれ格納し、該記録媒体の移動元または移動先となる実在エレメントと、仮想投入／排出エレメントと、アクセッサまたは仮想運搬エレメントをそれぞれ有し、互いに独立に制御可能な複数の論理ユニットに分割されたライブラリ装置の構成を表す論理構成情報であって、それぞれの論理ユニットの識別情報、第１の論理ユニットが有する第１の実在エレメントおよび第１の仮想投入／排出エレメントのアドレス情報、第２の論理ユニットが有する第２の実在エレメントのアドレス情報、該第１の仮想投入／排出エレメントのアドレス情報に対応付けられた、該第２の論理ユニットが有する第２の仮想投入／排出エレメントのアドレス情報、該アクセッサのアドレス情報、および該アクセッサのアドレス情報に対応付けられた該仮想運搬エレメントのアドレス情報を含む、論理構成情報を記憶する記憶手段と、
移動元エレメントアドレスとして前記第１の実在エレメントのアドレス情報が指定され、移動先エレメントアドレスとして前記第１の仮想投入／排出エレメントのアドレス情報が指定された第１のコマンドが、前記第１の論理ユニットに対して発行され、移動元エレメントアドレスとして前記第２の仮想投入／排出エレメントのアドレス情報が指定され、移動先エレメントアドレスとして前記第２の実在エレメントのアドレス情報が指定された第２のコマンドが、前記第２の論理ユニットに対して発行されたとき、前記論理構成情報を用いて、該第１のコマンドの移動先エレメントアドレスが該第２のコマンドの移動元エレメントアドレスに対応するものと解釈して、前記アクセッサにより該第１のコマンドの移動元エレメントアドレスに対応する該第１の実在エレメントから記録媒体を該第２のコマンドの移動先エレメントアドレスに対応する該第２の実在エレメントに移動させるように、前記ライブラリ装置を制御する制御手段と
を備えることを特徴とするライブラリ制御装置。
【請求項２】
前記記憶手段は、前記ライブラリ装置を構成する各フレームを前記論理ユニットとして定義した前記論理構成情報を記憶し、該ライブラリ装置に含まれるエレメントのアドレスをフレーム毎に独立に管理することを特徴とする請求項１記載のライブラリ制御装置。
【請求項３】
前記制御手段は、前記論理ユニット単位でレディー／ノット・レディー状態を設定することを特徴とする請求項１記載のライブラリ制御装置。
【請求項４】
前記記憶手段は、前記複数の論理ユニットをスモール・コンピュータ・セット・インタフェースの論理ユニットとして定義した前記論理構成情報を記憶し、前記制御手段は、スモール・コンピュータ・セット・インタフェースのコマンドとして発行された前記第１および第２のコマンドを前記論理構成情報を用いて解釈することを特徴とする請求項１記載のライブラリ制御装置。
【請求項５】
前記記憶手段は、前記複数の論理ユニットをスモール・コンピュータ・セット・インタフェースの媒体チェンジャデバイスとして定義した前記論理構成情報を記憶することを特徴とする請求項１記載のライブラリ制御装置。
【請求項６】
前記記憶手段は、隣り合う２つの論理ユニットの間で記録媒体を受け渡しするための仮想投入／排出エレメントのアドレス情報を含む、前記論理構成情報を記憶することを特徴とする請求項５記載のライブラリ制御装置。
【請求項７】
前記記憶手段は、離れた位置にある２つの論理ユニットの間で記録媒体を受け渡しするための仮想投入／排出エレメントのアドレス情報を含む、前記論理構成情報を記憶することを特徴とする請求項５記載のライブラリ制御装置。
【請求項８】
前記記憶手段は、記録媒体を投入／排出するための仮想投入／排出エレメントのアドレス情報を含む、前記論理構成情報を記憶し、前記制御手段は、該仮想投入／排出エレメントを用いて前記ライブラリ装置を制御することを特徴とする請求項５記載のライブラリ制御装置。
【請求項９】
前記記憶手段は、記録媒体を駆動するための仮想データ転送エレメントのアドレス情報を含む、前記論理構成情報を記憶し、前記制御手段は、該仮想データ転送エレメントを用いて前記ライブラリ装置を制御することを特徴とする請求項５記載のライブラリ制御装置。
【請求項１０】
前記制御手段は、前記ライブラリ装置に接続されたホストシステムから複数のコマンドを受け取り、該複数のコマンドを連携させて処理することを特徴とする請求項５記載のライブラリ制御装置。
【請求項１１】
複数の記録媒体をそれぞれ格納し、該記録媒体の移動元または移動先となる実在エレメントと、仮想投入／排出エレメントと、アクセッサまたは仮想運搬エレメントをそれぞれ有し、互いに独立に制御可能な複数の論理ユニットに分割された格納手段と、
前記格納手段の構成を表す論理構成情報であって、それぞれの論理ユニットの識別情報、第１の論理ユニットが有する第１の実在エレメントおよび第１の仮想投入／排出エレメントのアドレス情報、第２の論理ユニットが有する第２の実在エレメントのアドレス情報、該第１の仮想投入／排出エレメントのアドレス情報に対応付けられた、該第２の論理ユニットが有する第２の仮想投入／排出エレメントのアドレス情報、該アクセッサのアドレス情報、および該アクセッサのアドレス情報に対応付けられた該仮想運搬エレメントのアドレス情報を含む、論理構成情報を記憶する記憶手段と、
移動元エレメントアドレスとして前記第１の実在エレメントのアドレス情報が指定され、移動先エレメントアドレスとして前記第１の仮想投入／排出エレメントのアドレス情報が指定された第１のコマンドが、前記第１の論理ユニットに対して発行され、移動元エレメントアドレスとして前記第２の仮想投入／排出エレメントのアドレス情報が指定され、移動先エレメントアドレスとして前記第２の実在エレメントのアドレス情報が指定された第２のコマンドが、前記第２の論理ユニットに対して発行されたとき、前記論理構成情報を用いて、該第１のコマンドの移動先エレメントアドレスが該第２のコマンドの移動元エレメントアドレスに対応するものと解釈して、前記アクセッサにより該第１のコマンドの移動元エレメントアドレスに対応する該第１の実在エレメントから記録媒体を該第２のコマンドの移動先エレメントアドレスに対応する該第２の実在エレメントに移動させるように、前記格納手段を制御する制御手段と
を備えることを特徴とするライブラリ装置。
【請求項１２】
複数の記録媒体をそれぞれ格納し、該記録媒体の移動元または移動先となる実在エレメントと、仮想投入／排出エレメントと、アクセッサまたは仮想運搬エレメントをそれぞれ有し、互いに独立に制御可能な複数の論理ユニットに分割されたライブラリ装置の構成を表す論理構成情報であって、それぞれの論理ユニットの識別情報、第１の論理ユニットが有する第１の実在エレメントおよび第１の仮想投入／排出エレメントのアドレス情報、第２の論理ユニットが有する第２の実在エレメントのアドレス情報、該第１の仮想投入／排出エレメントのアドレス情報に対応付けられた、該第２の論理ユニットが有する第２の仮想投入／排出エレメントのアドレス情報、該アクセッサのアドレス情報、および該アクセッサのアドレス情報に対応付けられた該仮想運搬エレメントのアドレス情報を含む、論理構成情報を記憶する記憶手段と、
移動元エレメントアドレスとして前記第１の実在エレメントのアドレス情報が指定され、移動先エレメントアドレスとして前記第１の仮想投入／排出エレメントのアドレス情報が指定された第１のコマンドを、前記第１の論理ユニットに対して発行し、移動元エレメントアドレスとして前記第２の仮想投入／排出エレメントのアドレス情報が指定され、移動先エレメントアドレスとして前記第２の実在エレメントのアドレス情報が指定された第２のコマンドを、前記第２の論理ユニットに対して発行するコマンド発行手段と
を備えることを特徴とするホストシステム。
【請求項１３】
アプリケーション・プログラムを実行する実行手段をさらに備え、前記コマンド発行手段は、該アプリケーション・プログラムからの指示に基づいて、互いに連携した複数のコマンドを発行することを特徴とする請求項１２記載のホストシステム。
【請求項１４】
複数の記録媒体をそれぞれ格納し、該記録媒体の移動元または移動先となる実在エレメントと、仮想投入／排出エレメントと、アクセッサまたは仮想運搬エレメントをそれぞれ有し、互いに独立に制御可能な複数の論理ユニットに分割されたライブラリ装置の制御手段が、
移動元エレメントアドレスとして第１の論理ユニットが有する第１の実在エレメントのアドレス情報が指定され、移動先エレメントアドレスとして該第１の論理ユニットが有する第１の仮想投入／排出エレメントのアドレス情報が指定された第１のコマンドが、該第１の論理ユニットに対して発行され、移動元エレメントアドレスとして第２の論理ユニットが有する第２の仮想投入／排出エレメントのアドレス情報が指定され、移動先エレメントアドレスとして該第２の論理ユニットが有する第２の実在エレメントのアドレス情報が指定された第２のコマンドが、該第２の論理ユニットに対して発行されたとき、それぞれの論理ユニットの識別情報、該第１および第２の実在エレメントのアドレス情報、該第１の仮想投入／排出エレメントのアドレス情報、該第１の仮想投入／排出エレメントのアドレス情報に対応付けられた該第２の仮想投入／排出エレメントのアドレス情報、前記アクセッサのアドレス情報、および該アクセッサのアドレス情報に対応付けられた前記仮想運搬エレメントのアドレス情報を含み、前記ライブラリ装置の構成を表す論理構成情報を用いて、該第１のコマンドの移動先エレメントアドレスが該第２のコマンドの移動元エレメントアドレスに対応するものと解釈し、
前記アクセッサにより該第１のコマンドの移動元エレメントアドレスに対応する該第１の実在エレメントから記録媒体を該第２のコマンドの移動先エレメントアドレスに対応する該第２の実在エレメントに移動させるように、前記ライブラリ装置を制御する
ことを特徴とするライブラリ制御方法。
【請求項１５】
前記複数の論理ユニットはスモール・コンピュータ・セット・インタフェースの媒体チェンジャデバイスとして定義されることを特徴とする請求項１４記載のライブラリ制御方法。
【請求項１６】
前記制御手段は、隣り合う２つの論理ユニットの間で記録媒体を受け渡しするための仮想投入／排出エレメントのアドレス情報を含む、前記論理構成情報を用いて、前記ライブラリ装置を制御することを特徴とする請求項１５記載のライブラリ制御方法。
【請求項１７】
前記制御手段は、離れた位置にある２つの論理ユニットの間で記録媒体を受け渡しするための仮想投入／排出エレメントのアドレス情報を含む、前記論理構成情報を用いて、前記ライブラリ装置を制御することを特徴とする請求項１５記載のライブラリ制御方法。
【請求項１８】
前記制御手段は、記録媒体を投入／排出するための仮想投入／排出エレメントのアドレス情報を含む、前記論理構成情報を用いて、該仮想投入／排出エレメントが該記録媒体を投入／排出するように仮想して、前記ライブラリ装置を制御することを特徴とする請求項１５記載のライブラリ制御方法。
【請求項１９】
前記制御手段は、記録媒体を駆動するための仮想データ転送エレメントのアドレス情報を含む、前記論理構成情報を用いて、該仮想データ転送エレメントが該記録媒体を駆動するように仮想して、前記ライブラリ装置を制御することを特徴とする請求項１５記載のライブラリ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、小型のホスト計算機を用いて大型ライブラリ装置を制御する技術に係り、ライブラリ装置を複数のユニットに分割して制御するライブラリ制御装置およびその方法に関する。
【０００２】
【従来の技術】
今日、様々な分野で、記録媒体の投入／排出、保管、記録／再生等を自動的に行うライブラリ装置が利用されている。記録媒体としては、光ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、磁気テープ（Magnetic Tape ：ＭＴ）等が用いられる。
【０００３】
図３７は、従来の大型テープライブラリ装置（Magnetic Tape Library ：ＭＴＬ）の外観図である。一般に、１台の大型ＭＴＬは、個々の機能毎にフレームという単位で分けられている。図３７のライブラリ装置は、ＭＴカートリッジを保管する４つのフレームＲＡＵ、ＤＡＵ０、ＴＡＵ０、ＬＡＵを備え、フレームＡＣＵ内のライブラリコントローラ１により制御される。このライブラリ装置のサブシステムの内部構成を模式的に示すと、図３８のようになる。
【０００４】
ＲＡＵは、向かって右側に位置し、カートリッジアクセスステーション（Cartridge Access Station：ＣＡＳ）５とアクセッサ（ＡＣＣ）６と複数の一般セル（ＣＥＬＬ）７とを内蔵したフレームである。ＣＡＳ５は、ライブラリ装置に対して、記録媒体の投入／排出を行うための特殊なセルであり、オンライン（Ready ）状態で使用可能である。また、ＡＣＣ６は、ライブラリ装置内で記録媒体を移動させるロボットであり、一般セル７は、記録媒体を格納するスロットである。
【０００５】
また、ＤＡＵ０は、ＤＥＥ（Direct Entry Exit ）２と複数の一般セル７を内蔵したフレームである。ＤＥＥ２は、オフライン（Not Ready ）状態で、記録媒体の投入／排出をフレーム単位で行うことができる機能を備えたユニットである。ＤＥＥ２は、例えば回転するセルドラムと大型の扉３とを備え、ＣＡＳ５と比較して、一度に大量の記録媒体を投入／排出することができる。
【０００６】
また、ＴＡＵ０は、複数のＭＴＵ（Magnetic Tape Unit）４と複数の一般セル７を内蔵したフレームである。ＭＴＵ４は、記録媒体のリード／ライトを行う媒体駆動用のセルである。また、ＬＡＵは、向かって左側に位置し、ＲＡＵと同様に、ＣＡＳ５、ＡＣＣ６、および複数の一般セル７を内蔵したフレームである。
【０００７】
ＡＣＣ６は各フレーム間を自由に移動することができ、ライブラリコントローラ１の指示に応じて、ＣＡＳ５、一般セル７、ＤＥＥ２、およびＭＴＵ４の間で記録媒体を搬送する。
【０００８】
このような従来のライブラリ装置では、各セル７、ＤＥＥ２の各セル、ＣＡＳ５、およびＭＴＵ４等のアドレスは、フレーム番号とフレーム内アドレスの組み合わせにより管理されている。例えば、ＲＡＵ、ＤＡＵ０、ＴＡＵ０、ＬＡＵには、それぞれフレーム番号０１、０２、０３、０４が割り当てられ、各フレーム内では３バイト（byte）のアドレスが用いられる。
【０００９】
【発明が解決しようとする課題】
ところが、近年、大型ライブラリ装置をパーソナルコンピュータやワークステーションのような小型のホスト計算機により制御したいという要望が出てきている。この場合、ホスト計算機とライブラリ装置を、ＡＮＳＩ（American National Standards Institute ）  Ｘ３Ｂ１０で規定されているＳＣＳＩ−２（Small Computer Set Interface）のような汎用インタフェースで接続し、ライブラリ装置をＳＣＳＩ−２標準の媒体チェンジャデバイス（Medium Changer Device ）として制御する必要がある。このとき、次のような問題が生じる。
【００１０】
（１）ＳＣＳＩでは、一般に、１台の大型ライブラリ装置が１つの論理ユニット（Logical Unit）として定義される。ここで、論理ユニットとは、ホスト側から見たときの制御対象の単位であり、それがMedium Changer Device に対応する場合、ホスト計算機は論理ユニット内での媒体移動をコマンドで指示することができる。
【００１１】
しかし、ＳＣＳＩのMedium Changer Device として定義できるセルアドレスは２バイトであり、最大２16（＝約６５，０００）個のセルまでしか対応できない。このため、それより多くのセルを装備したライブラリ装置は、標準のＳＣＳＩコマンドで制御することができない。
【００１２】
（２）従来の大型ライブラリ装置では、サブシステムは活性のまま、フレーム単位でオフライン化して保守が可能である。しかし、ＳＣＳＩでは部分的なオフライン状態を指示する方法がなく、保守等のためには、ライブラリ装置全体をオフラインにする必要がある。
【００１３】
（３）１台の大型ライブラリ装置には、記録媒体の投入／排出を行うＣＡＳ５とＤＥＥ２が備えられている。ところが、ＳＣＳＩでは、ＣＡＳ５はImport/Export Element （Ｉ／Ｅエレメント）として定義され、ＤＥＥ２はStorage Element （ＳＴエレメント）として定義される。このため、ライブラリ装置全体として、記録媒体の投入／搬出機能の制御方法を統一できない。
【００１４】
（４）大型ライブラリ装置はフレーム単位で増設することが可能であるが、ＳＣＳＩのMedium Changer Device として定義した場合、増設時にセルアドレスが変化してしまう。このため、増設後にセルアドレスの再設定が必要となる。
【００１５】
（５）大型ライブラリ装置の製造はフレーム単位で行われ、与えられたモデルに従って複数のフレームが組み合わされて１台のライブラリ装置になる。したがって、同じフレームでも、モデルが変わればその配置位置が変わる。このため、複数のフレームを１台のライブラリ装置としてセルアドレスを定義する場合、モデルによってセルアドレスも相対的に変化してしまい、製造時にセルアドレスを物理的に表示することができない。
【００１６】
従来は、モデルが完成してからアドレスを表示するか、あるいは、あらかじめ組み込むモデルを意識してアドレスを表示しなければならなかった。１台のライブラリ装置として完成してからアドレスを振ることもできるが、フレームの増設の度にアドレスを変更しなければならない。したがって、アドレス表示においても上述の（４）項と同様の問題がある。
【００１７】
上記（１）〜（５）に記したように、現在の大型ＭＴＬは、ＳＣＳＩ−２のMedium Changer Device より進んだ機能を実装しているため、利用可能アドレスに制約があるＳＣＳＩによる制御が非常に困難であるという問題を有している。
【００１８】
本発明の課題は、ＳＣＳＩのような汎用インタフェースを利用して大型ライブラリ装置を制御するライブラリ制御装置およびその方法を提供することである。
【００１９】
【課題を解決するための手段】
図１は、本発明のライブラリ制御装置の原理図である。図１のライブラリ制御装置は、記憶手段１１と制御手段１２を備える。
【００２０】
記憶手段１１は、互いに独立に制御可能な複数の論理ユニットに分割されたライブラリ装置の構成を表す論理構成情報を記憶する。
制御手段１２は、上記論理構成情報を用いて上記ライブラリ装置の動作を制御する。
【００２１】
ライブラリ装置は、例えばフレーム単位でＳＣＳＩの１つの論理ユニットとみなされ、フレームの数だけの論理ユニットに分割される。したがって、２バイトを越えるアドレスを含む大型ライブラリ装置であっても、分割された各部分毎にＳＣＳＩのMedium Changer Device として独立に制御可能となる。
【００２２】
記憶手段１１が記憶する論理構成情報には、各論理ユニット毎に、それに含まれるセル等のエレメントのアドレス（２バイト）が記述されている。ここで、ＬＵＮは論理ユニット番号を表し、エレメントアドレスの欄の（ｈ）は、アドレスが１６進数で記述されていることを表す。
【００２３】
ホストシステムは、Medium Changer Device に対する媒体移動コマンドを発行して制御手段１２に指示を出すが、このコマンドを作成するには、ＡＣＣ、移動元、および移動先のエレメントアドレスを指定する必要がある。
【００２４】
ところが、図１のライブラリ装置では、ＬＵＮ１とＬＵＮ２にＡＣＣが実在しない。そこで、破線で示すように、これらの論理ユニットにＡＣＣの存在を仮想し、エレメントアドレスを割り当てる。このエレメントアドレスは、実在のＡＣＣにも対応付けられる。これにより、ＬＵＮ１とＬＵＮ２に対しても、媒体移動コマンドを発行することが可能となる。
【００２５】
また、異なる論理ユニット間での記録媒体の移動を指示できるように、隣り合った、または、離れた２つの論理ユニットの間で記録媒体を受け渡す機能を持つ投入／排出（ＩＥ）エレメントを仮想する。そして、これらの仮想エレメントにもエレメントアドレスを割り当てる。ホストシステムは、矢印で示されるように、互いに対応する投入／排出エレメントをペアにして用いて、２つの連携するコマンドを発行することで、異なる論理ユニット間での移動を指示することができる。
【００２６】
例えば、ＬＵＮ０からＬＵＮ１への移動を指示する場合は、まず、アドレス０１００を移動先とする第１のコマンドをＬＵＮ０に対して発行し、次に、アドレスＦＦ０１を移動元とする第２のコマンドをＬＵＮ１に対して発行すればよい。
【００２７】
制御手段１２は、ホストシステムから各論理ユニットに対するコマンドを受け取ると、論理構成情報を参照しながら、異なる論理ユニットに対するコマンドを連携して処理する。そして、その結果に基づいて制御信号を出力し、ライブラリ装置を動作させる。
【００２８】
例えば、上述の第１および第２のコマンドを受け取った場合は、論理構成情報を参照して、第１のコマンドの移動先エレメントアドレス０１００と第２のコマンドの移動元エレメントアドレスＦＦ０１が互いに対応することを認識する。そこで、これらの仮想エレメント間で記録媒体が受け渡しされたものとみなし、第１のコマンドの移動元エレメントアドレスから第２のコマンドの移動先エレメントアドレスへ直接記録媒体を移動させるように、ライブラリ装置を制御する。
【００２９】
このように、ライブラリ装置の各部分に不足する機能エレメントを仮想することで、ＳＣＳＩのインタフェースを利用して、論理的に分割されたライブラリ装置を統一的に制御することができる。
【００３０】
また、ライブラリ装置を論理的に分割することによって、各論理ユニット単位でNot Ready 状態を設定できる。また、ライブラリ装置のフレームを増設する場合、増設フレームを新しい論理ユニットとして定義することができ、既存エレメントのアドレスを再設定する必要がない。したがって、モデル構成が異なったり、モデルのグレードアップがあったりしても、一定のアドレスを保持でき、製造時に表示されたアドレスを書き換えなくてよい。
【００３１】
例えば、図１の記憶手段１１は、後述する図４のメモリ３３に対応し、制御手段１２は、インタフェース部３１、３４、および処理装置３２に対応し、論理構成情報は、図７、８、９、１０、１１に示されたアドレス情報に対応する。
【００３２】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本発明においては、ライブラリ装置のライブラリコントローラ１が、上位のホスト計算機のライブラリ管理ソフトウェアと連携することで、ＳＣＳＩ標準のMedium Changer Device のコマンドセットを解釈し、ライブラリ装置を制御する。したがって、ライブラリコントローラ１は、ＳＣＳＩコントローラとしての役割を果たす。また、Medium Changer Device として利用可能なセルアドレスを増やすために、ライブラリ装置をＳＣＳＩ−２の１つの論理ユニットとして扱わず、複数の論理ユニットとみなして論理的に分割する。
【００３３】
以下の実施形態においては、一例として、ライブラリ装置を構成するフレーム単位でＳＣＳＩの論理ユニット番号（Logical Unit Number ：ＬＵＮ）を割り付ける。これにより、各フレーム毎に２バイトのセルアドレスを定義することが可能になり、全体として２バイトを越えるセルアドレスを有する大型ライブラリ装置に対処することが可能になる。
【００３４】
ホスト計算機は、その配下にある複数の論理ユニット（フレーム）に連携動作を指示する１つ以上のコマンドをライブラリコントローラ１に発行し、結果として１台のライブラリ装置を制御する。異なる論理ユニット間の連携動作を可能にするために、各フレームに次のような仮想的セルを導入する。
【００３５】
（ａ）すべてのフレームに媒体運搬装置が存在するように仮想する。つまり、ＡＣＣ６を有するフレーム以外のフレームにも、アクセッサを表すセルを仮想する。
【００３６】
（ｂ）ライブラリ装置内で隣り合ったフレーム間を連結し、記録媒体を受け渡す機能を持つセルを仮想する。
（ｃ）ライブラリ装置内で離れたフレーム間を連結し、記録媒体を受け渡す機能を持つセルを仮想する。
【００３７】
（ａ）〜（ｃ）において、セルを仮想するとは、実在しない機能を疑似的に表すセルアドレスを設定することを意味する。そして、ライブラリコントローラ１は、それぞれのＬＵＮに対してホスト計算機から発行されるコマンドが、他のＬＵＮと連携しなければならないような媒体移動コマンドかどうかを認識する。
【００３８】
上記（ａ）〜（ｃ）の仮想された特殊なセルに対するコマンドが発行された場合、ライブラリコントローラ１は、連携動作を完結させる一連のコマンドが発行され終わるまで、ライブラリコントローラ１内にコマンドを実行せずに保留しておく。
【００３９】
図２は、ライブラリコントローラ１による複数の論理ユニットの制御処理のフローチャートである。処理が開始されると、ライブラリコントローラ１は、ホスト計算機からいずれかの論理ユニットに対する１つのコマンドを受け取る（ステップＳ１）。次に、受け取ったコマンドに仮想セルのアドレスが含まれているかどうかを判定し（ステップＳ２）、そのようなアドレスが含まれていれば、そのコマンドの情報を一時的に保存する（ステップＳ３）。
【００４０】
次に、保存された一連のコマンド（１つ以上のコマンド）が実行可能かどうかを判定する（ステップＳ４）。これらのコマンドに含まれる仮想セルのアドレスが対応する組を成し、記録媒体の物理的な移動元と移動先が特定できれば、それらのコマンドは実行可能と判定される。一方、実在するユニットのアドレスのいずれにも対応づけられない仮想セルアドレスが残っていれば、それらのコマンドは実行不可能と判定される。
【００４１】
一連のコマンドが実行不可能であれば、ホスト計算機から次のコマンドを受け取って（ステップＳ１）、ステップＳ２以降の処理を繰り返す。そして、一連のコマンドが実行可能であれば、それらのコマンドを複合的に解釈して、ライブラリ装置を動作させ（ステップＳ５）、処理を終了する。ステップＳ２において、コマンドに仮想セルのアドレスが含まれていない場合は、直ちにコマンドを実行し（ステップＳ５）、処理を終了する。
【００４２】
このように、各フレームに適当な仮想セルを設けることで、１つのフレームをＳＣＳＩで制御可能な１つの論理ユニットとみなすことができる。したがって、ホスト計算機は、フレーム毎に媒体移動コマンドを発行することができる。また、ライブラリコントローラ１が、互いに関連する一連のコマンドをまとめて解釈・実行することで、仮想セルのアドレスを実在の機能に対応付け、論理分割されたライブラリ装置を制御することが可能になる。
【００４３】
さらに、ホスト計算機は複数の論理ユニットを別々に管理しているので、フレーム単位でオフラインにする必要が生じた場合は、ライブラリ装置は、各ＬＵＮ単位でNot Ready 状態をホストに通知することができる。
【００４４】
図３は、実施形態における大型ライブラリ装置の制御システムの構成図である。図３のライブラリ装置２２は、図３７、３８に示したライブラリ装置に対応し、ＳＣＳＩのインタフェースを有するホスト計算機２１からコマンドを受け取って動作する。
【００４５】
ここでは、４つのフレームＲＡＵ、ＤＡＵ０、ＴＡＵ０、ＬＡＵに、それぞれＬＵＮ０、ＬＵＮ１、ＬＵＮ２、ＬＵＮ３が割り当てられ、各フレームは独立した論理ユニットとして認識される。以下の記述においては、しばしば、各フレームの呼称としてそのＬＵＮが用いられている。例えば、フレームＲＡＵは単にＬＵＮ０と表記される。
【００４６】
図３において、ＬＵＮ０、ＬＵＮ３のＡＣＣ６は、ＳＣＳＩの運搬エレメント（Transport Element ：ＴＲ）として定義され、１６進数のアドレス００００が割り当てられている。ここで、ＳＣＳＩのエレメントとは、実在の一般セル７を含む、より広義のセルを意味する。
【００４７】
また、ＣＡＳ５は投入／排出エレメント（Import/Export Element ：ＩＥ）として定義され、アドレス０００１が割り当てられ、一般セル７は媒体格納エレメント（Storage Element ：ＳＴ）として定義され、アドレス０００２〜００ＦＦが割り当てられている。
【００４８】
また、ＬＵＮ１のＤＥＥ２および一般セル７は、ともに媒体格納エレメントとして定義され、それぞれ、アドレス００００〜Ｆ０００およびＦ００１〜ＦＦ００が割り当てられている。
【００４９】
また、ＬＵＮ２の８つのＭＴＵ４は、それぞれデータ転送エレメント（Data Transfer Element ：ＤＴ）として定義され、アドレス００００〜０００７が割り当てられている。さらに、ＬＵＮ２の一般セル７は媒体格納エレメントとして定義され、アドレス０００８〜１０００が割り当てられている。
【００５０】
図４は、図３のライブラリコントローラ１の構成図である。ライブラリコントローラ１は、ＳＣＳＩの入出力インタフェース部（Ｉ／Ｏ）３１、処理装置３２、メモリ３３、および各フレームとの間の入出力インタフェース部（Ｉ／Ｏ）３４を備える。これらの構成要素はバス３５により接続されている。
【００５１】
インタフェース部３１は、ホスト計算機２１からコマンドを受け取り、ホスト計算機２１に応答を返す。メモリ３３は、データやプログラムを格納するＲＯＭ（read only memory）と、処理に利用されるＲＡＭ（random access memory）を含む。
【００５２】
処理装置３２は、メモリ３３に格納されたデータを用いて、メモリ３３に格納されたプログラムを実行し、それによりコマンドを解釈して各フレームに動作を指示する。インタフェース部３４は、処理装置３２からの指示に基づく制御信号を各フレームに送る。こうして、ライブラリコントローラ１は、ホスト計算機２１から与えられたコマンドを実行し、ライブラリ装置２２を動作させる。
【００５３】
図５は、ライブラリコントローラ１が受け取るＳＣＳＩの媒体移動コマンド（Medium Changer Command：ＭＯＶＥコマンド）のデータ構成を示している。図５のＭＯＶＥコマンドにおいて、ＣＤＢ０は、媒体移動に対応するオペレーションコードを表し、ＣＤＢ１は、コマンドの発行対象となる論理ユニットのＬＵＮを表す。
【００５４】
また、ＣＤＢ２、ＣＤＢ３は、論理ユニット内の運搬エレメントのアドレスを表し、ＣＤＢ４、ＣＤＢ５は、移動元エレメント（Source Element）のアドレスを表し、ＣＤＢ６、ＣＤＢ７は、移動先エレメント（Destination Element ）のアドレスを表す。これらのアドレスはそれぞれ２バイトで指定される。
【００５５】
このように、ＳＣＳＩのＭＯＶＥコマンドでは、指定された１つの論理ユニット内のエレメント間でのみ、記録媒体の移動を指示することができる。しかしながら、異なる論理ユニット間での移動を直接指示することはできない。また、図３のライブラリ装置２２では、ＬＵＮ１、ＬＵＮ２にアクセッサがなく、運搬エレメントが定義されていないので、このままでは、これらの論理ユニットに対するＭＯＶＥコマンドを発行することができない。
【００５６】
そこで、ホスト計算機２１は、図６に示すように、適当な運搬エレメント、投入／排出エレメント、データ転送エレメントを仮想し、それらの仮想エレメントのアドレスを用いて、ＭＯＶＥコマンドを発行する。
【００５７】
図６においては、ＡＣＣ６とＣＡＳ５を持たないＬＵＮ１とＬＵＮ２に運搬エレメント４１と投入／排出エレメント４２が仮想されている。運搬エレメント４１、投入／排出エレメント４２は、それぞれ、実在のＡＣＣ６、ＣＡＳ５に対応付けられる。
【００５８】
そして、ＬＵＮ１の運搬エレメント４１、投入／排出エレメント４２には、それぞれ、アドレス１００４、１００５が割り当てられ、ＬＵＮ２の運搬エレメント４１、投入／排出エレメント４２には、それぞれ、アドレスＦＦ０４、ＦＦ０５が割り当てられている。
【００５９】
このように、運搬エレメント４１を仮想することで、ホスト計算機２１は、ＬＵＮ１とＬＵＮ２に対するＭＯＶＥコマンドの運搬エレメントアドレス（ＣＤＢ２＆ＣＤＢ３）を埋めることが可能になり、これらのフレームに対するＭＯＶＥコマンドを発行できるようになる。
【００６０】
また、投入／排出エレメント４２を仮想することで、ホスト計算機２１は、ＬＵＮ１とＬＵＮ２に対するＭＯＶＥコマンドの移動元エレメントアドレス（ＣＤＢ４＆ＣＤＢ５）または移動先エレメントアドレス（ＣＤＢ６＆ＣＤＢ７）として、他のフレームに存在するＣＡＳ５に対応付けられたアドレスを用いることが可能になる。これにより、ＬＵＮ１とＬＵＮ２に対して、ＣＡＳ５との間での記録媒体の移動を直接指示することができる。
【００６１】
また、ＭＴＵ４を持たないＬＵＮ０、ＬＵＮ１、ＬＵＮ３には、ＬＵＮ２の８つのＭＴＵ４にそれぞれ対応する８つのデータ転送エレメント４３が仮想されている。ＬＵＮ０とＬＵＮ３のデータ転送エレメント４３には、アドレス０１０３〜０１０Ａが割り当てられ、ＬＵＮ１のデータ転送エレメント４３には、アドレスＦＦ０６〜ＦＦ０Ｄが割り当てられている。
【００６２】
このように、データ転送エレメント４３を仮想することで、ホスト計算機２１は、ＬＵＮ０、ＬＵＮ１、ＬＵＮ３に対するＭＯＶＥコマンドの移動元エレメントアドレスまたは移動先エレメントアドレスとして、ＬＵＮ２に存在するＭＴＵ４に対応付けられたアドレスを用いることが可能になる。これにより、ＬＵＮ０、ＬＵＮ１、ＬＵＮ３に対して、ＭＴＵ４との間での記録媒体の移動を直接指示することができる。
【００６３】
さらに、任意のフレーム同士で記録媒体の投入／排出を可能にするために、すべてのフレームに投入／排出エレメント４４を仮想している。ＬＵＮ０の３つの投入／排出エレメント４４には、それぞれアドレス０１００、０１０１、０１０２が割り当てられ、ＬＵＮ１の３つの投入／排出エレメント４４には、それぞれアドレスＦＦ０１、ＦＦ０２、ＦＦ０３が割り当てられている。
【００６４】
また、ＬＵＮ２の３つの投入／排出エレメント４４には、それぞれアドレス１００１、１００２、１００３が割り当てられ、ＬＵＮ３の３つの投入／排出エレメント４４には、それぞれアドレス０１００、０１０１、０１０２が割り当てられている。
【００６５】
これらの投入／排出エレメント４４のうち、ＬＵＮ０のアドレス０１００の投入／排出エレメント４４とＬＵＮ１のアドレスＦＦ０１の投入／排出エレメント４４は互いに対応しており、これらの間で記録媒体の受け渡しが仮想される。
【００６６】
したがって、ホスト計算機２１は、これらの投入／排出エレメント４４のアドレスをＭＯＶＥコマンドの移動元エレメントアドレスまたは移動先エレメントアドレスとして用いることで、ＬＵＮ０とＬＵＮ１の間における記録媒体の移動を指示することが可能になる。
【００６７】
同様に、ＬＵＮ０のアドレス０１０１の投入／排出エレメント４４とＬＵＮ２のアドレス１００３の投入／排出エレメント４４が互いに対応し、ＬＵＮ０のアドレス０１０２の投入／排出エレメント４４とＬＵＮ３のアドレス０１０２の投入／排出エレメント４４が互いに対応する。
【００６８】
また、ＬＵＮ１のアドレスＦＦ０２の投入／排出エレメント４４とＬＵＮ２のアドレス１００１の投入／排出エレメント４４が互いに対応し、ＬＵＮ１のアドレスＦＦ０３の投入／排出エレメント４４とＬＵＮ３のアドレス０１０１の投入／排出エレメント４４が互いに対応し、ＬＵＮ２のアドレス１００２の投入／排出エレメント４４とＬＵＮ３のアドレス０１００の投入／排出エレメント４４が互いに対応する。
【００６９】
このように、投入／排出エレメント４４を仮想することで、ホスト計算機２１は、ＭＯＶＥコマンドの移動元エレメントアドレスまたは移動先エレメントアドレスとして、他のフレームに対応するアドレスを用いることが可能になる。これにより、任意のフレーム間における記録媒体の移動を指示することができる。
【００７０】
図６に示した実在および仮想の各エレメントのアドレスを一覧表にすると、図７から図１０に示すようになる。図７、８、９、１０は、それぞれ、ＬＵＮ０、ＬＵＮ１、ＬＵＮ２、ＬＵＮ３のエレメントのアドレスを示している。
【００７１】
これらの図において、実在機能の欄は、図６に実線で示した実在エレメントを表し、仮想エレメントの欄は、図６に破線で示した仮想エレメントを表す。例えば、図７のImport/Export （ＲＡＵ−ＤＡＵ０）という表記は、ＲＡＵとＤＡＵ０間で記録媒体を仮想的に受け渡しする投入／排出エレメント４４であることを表している。また、エレメントアドレスの欄の（ｈ）は、アドレスが１６進数で記述されていることを表す。
【００７２】
また、記号“＊”の記された仮想エレメントは、隣接する２つのフレーム間で記録媒体を仮想的に受け渡しする投入／排出エレメント４４に対応し、記号“＊＊”の記された仮想エレメントは、離れた位置にある２つのフレーム間で記録媒体を仮想的に受け渡しする投入／排出エレメント４４に対応する。
【００７３】
また、記号“＊＊＊”の記された仮想エレメントは、運搬エレメント４１に対応し、記号“＊＊＊＊”の記された仮想エレメントは、投入／排出エレメント４２に対応し、記号“＊＊＊＊＊”の記された仮想エレメントは、データ転送エレメント４３に対応する。
【００７４】
ＬＵＮ０、ＬＵＮ１、ＬＵＮ３のデータ転送エレメント４３は、ＬＵＮ２のＭＴＵ４のアドレスと１対１に対応し、それらの対応関係は図１１のアドレス対応表のようになる。図１１において、ＭＴＵ（ｉ）（ｉ＝０，１，．．．，７）は、それぞれ、図３のアドレス００００〜０００７の各ＭＴＵ４に対応する。
【００７５】
ホスト計算機２１およびライブラリコントローラ１は、図７から図１１に示したようなＬＵＮおよびアドレスの情報の一部または全部を、管理情報として保持しており、その情報を参照しながらライブラリ装置２２を制御する。
【００７６】
上述のように、本実施形態では、実在する運搬エレメント、データ転送エレメント、および投入／排出エレメントの数が媒体格納エレメントの数に比べて非常に少ないという大型ライブラリ装置の特徴を利用し、各フレームをＳＣＳＩの論理ユニットとしてライブラリ装置２２の全体を分割している。
【００７７】
そして、各論理ユニット間での記録媒体の受け渡しのために、運搬エレメント４１、投入／排出エレメント４２、４４、およびデータ転送エレメント４３を仮想することにより、分割された大型ライブラリ装置２２を制御している。以下では、その制御方法について詳細に説明する。まず、ライブラリ装置２２の一般的な動作概要は次の通りである。
【００７８】
［１］アプリケーションによる指示：
ホスト計算機２１上で実行されているアプリケーション・プログラムが、記録媒体のボリューム名を指示して、ライブラリ装置２２の動作内容をホスト計算機２１上のライブラリ管理ソフトウェアに通知する。ボリューム名は、例えば６文字のアルファベット／数字で記述される。動作内容としては、ＭＴＵ４にマウントする動作や、ＤＥＥ２やＣＡＳ５からライブラリ装置２２の外に排出する動作等がある。
【００７９】
ライブラリ装置２２内での移動を伴う動作の通知では、移動先エレメントアドレスを明示的に通知する場合と、ライブラリ管理ソフトウェアによるアドレスのの自動割振り機能を利用するために、移動先エレメントアドレスを明示しない場合とがある。
【００８０】
［２］ライブラリ管理ソフトウェアの処理：
ライブラリ管理ソフトウェアは、通知されたボリューム名から、ライブラリ装置２２内のどの位置（エレメントアドレス）に対象となる記録媒体が格納されているかを割り出す。また、ライブラリ管理ソフトウェアは、アプリケーション・プログラムから通知された動作内容に従って、記録媒体を移動する先のエレメントアドレスを決定する。ただし、動作内容によっては、記録媒体の移動を伴わない場合もある。
【００８１】
［３］コマンドの発行：
ライブラリ管理ソフトウェアは、ホスト計算機２１とライブラリコントローラ１との間のインタフェースを介して、記録媒体の操作を行う適切なコマンドを発行する。
【００８２】
［４］ライブラリコントローラの処理：
ライブラリコントローラ１は、ホスト計算機２１から受け取ったコマンドに従って、記録媒体を操作する。
【００８３】
次に、本発明におけるライブラリ装置２２の動作例を説明する。まず、第１の動作例として、フレームＤＡＵ０のＤＥＥ２のアドレス１０００にあるボリューム‘ＸＸＸＸＸＸ’の記録媒体を、フレームＴＡＵ０のアドレス０００１のＭＴＵ４にマウントする場合を想定する。この場合の動作を、上記動作概要に沿って説明すると次のようになる。
【００８４】
［１］アプリケーションによる指示：
アプリケーション・プログラムは、ボリューム‘ＸＸＸＸＸＸ’をＭＴＵ４にマウントするように、ライブラリ管理ソフトウェアに通知する。このとき、移動先エレメントアドレスは明示されないものとする。
【００８５】
［２］ライブラリ管理ソフトウェアの動作：
ライブラリ管理ソフトウェアは、ボリューム‘ＸＸＸＸＸＸ’がＬＵＮ１のアドレス１０００に格納されていることを検索して、空いているＭＴＵ４を探し、例えばＴＡＵ０のアドレス０００１にマウントすることを決定する。
【００８６】
ボリューム名からそのエレメントアドレスを検索する１つの方法としては、ライブラリ管理ソフトウェアが独自に媒体情報を管理しているデータベースを持ち、そこから検索する方法がある。もう１つの方法としては、ライブラリコントローラ１が記録媒体のボリューム情報とエレメントアドレスを関連付けている情報を持ち、ライブラリ管理ソフトウェアがライブラリコントローラ１に情報収集のコマンドを発行して、検索させる方法がある。一般には、前者の方法が採用されることが多い。
【００８７】
［３］コマンドの発行：
ライブラリ管理ソフトウェアは、まず、ＬＵＮ１に対するＭＯＶＥコマンドをライブラリコントローラ１に発行する。このコマンドにより、ＤＡＵ０のアドレス１０００にある記録媒体を、アドレスＦＦ０４の仮想された運搬エレメント４１を利用して、アドレスＦＦ０２にあるＤＡＵ０からＴＡＵ０への仮想された投入／排出エレメント４４に移動させる動作が指示される。
【００８８】
次に、ライブラリ管理ソフトウェアは、ＬＵＮ２に対するＭＯＶＥコマンドを発行する。このコマンドにより、ＴＡＵ０のアドレス１００１の仮想された投入／排出エレメント４４にある記録媒体を、アドレス１００４の運搬エレメント４１を利用して、アドレス０００１のＭＴＵ４に移動させる動作が指示される。
【００８９】
［４］ライブラリコントローラの動作：
ライブラリコントローラ１は、最初のＭＯＶＥコマンドを受領すると、ＤＡＵ０のアドレス１０００にある記録媒体をアドレスＦＦ０２の投入／排出エレメント４４に移動させたものと仮定する。そして、２番目のＭＯＶＥコマンドを受領すると、ライブラリ装置２２を実際に動かして、記録媒体を移動させる。このとき、ＲＡＵまたはＬＡＵにあるＡＣＣ６を動作させて、ＤＡＵ０のアドレス１０００にある記録媒体をＴＡＵ０のアドレス０００１のＭＴＵ４にマウントする。
【００９０】
上記［１］〜［４］に示した第１の動作例においては、仮想された運搬エレメント４１と投入／排出エレメント４４を利用して、隣り合う論理ユニット間での記録媒体の移動を実現している。
【００９１】
また、ライブラリ管理ソフトウェアは、ライブラリ装置２２が論理的に分割されていることを意識して、記録媒体の操作に必要な複数の連携したコマンドをライブラリコントローラ１に発行し、ホスト計算機２１上のアプリケーションによる媒体操作を可能にしている。そして、ライブラリコントローラ１は、受け取った複数のコマンドを連携させて処理することで、分割されたライブラリ装置２２を制御している。
【００９２】
さらに、隣り合う論理ユニット間の記録媒体の移動ではなく、離れた位置にある論理ユニット間の記録媒体の移動に際しては、複数のコマンドを連携させて、隣り合う論理ユニットに順番に記録媒体を受け渡していき、最終的に離れた論理ユニットに移動させることができる。
【００９３】
あるいはまた、離れた論理ユニット間を直接結びつける投入／排出エレメント４４を利用することで、直接的に移動を指示することも可能である。後者の方が、前者に比べてコマンドの数が削減されるので、より効果的である。
【００９４】
次に、第２の動作例として、フレームＲＡＵのアドレス０００２にあるボリューム‘ＹＹＹＹＹＹ’をフレームＴＡＵ０のアドレス０００１のＭＴＵ４にマウントする場合を想定する。この場合の動作を、上記動作概要に沿って説明すると次のようになる。
【００９５】
［１］アプリケーションによる指示：
アプリケーション・プログラムは、ボリューム‘ＹＹＹＹＹＹ’をＭＴＵ４にマウントするようにライブラリ管理ソフトウェアに通知する。このとき、移動先エレメントアドレスは明示されないものとする。
【００９６】
［２］ライブラリ管理ソフトウェアの動作：
ライブラリ管理ソフトウェアは、ボリューム‘ＹＹＹＹＹＹ’がＬＵＮ０のアドレス０００２に格納されていることを検索して、空いているＭＴＵ４を探し、ＴＡＵ０のアドレス０００１のＭＴＵ４にマウントすることを決定する。この場合の検索方法も、上述の第１の動作例と同様である。
【００９７】
［３］コマンドの発行：
ライブラリ管理ソフトウェアは、ＬＵＮ０に対するＭＯＶＥコマンドをライブラリコントローラ１に発行する。このコマンドにより、ＲＡＵのアドレス０００２にある記録媒体を、アドレス００００の運搬エレメント（ＡＣＣ）６を利用して、アドレス０１０４の仮想されたデータ転送エレメント４３に移動させる動作が指示される。
【００９８】
［４］ライブラリコントローラの動作：
ライブラリコントローラ１は、上記ＭＯＶＥコマンドを受領すると、図１１のアドレス対応表を参照して、アドレス０１０４のデータ転送エレメント４３がＬＵＮ２（ＴＡＵ０）のアドレス０００１にあるＭＴＵ４に対応することを確認する。そして、ＲＡＵのＡＣＣ６を動作させて、ＲＡＵのアドレス０００２にある記録媒体をＴＡＵ０のアドレス０００１のＭＴＵ４にマウントする。
【００９９】
上記［１］〜［４］に示した第２の動作例においては、仮想されたデータ転送エレメント４３を利用することで、ＭＴＵ４を持たない論理ユニットからＭＴＵ４を持つ論理ユニットへの記録媒体の移動を、１つのコマンドで実現している。また、特定のＭＴＵ４が使用中の時は、対応する各データ転送エレメント４３にも使用中のフラグを立てることで、空いているデータ転送エレメント４３を容易に探し出すことが可能になる。
【０１００】
同様にして、ＣＡＳ５を持たない論理ユニットに投入／排出エレメント４２を仮想することで、その論理ユニットとＣＡＳ５を持つ論理ユニットとの間の記録媒体の移動を実現することが可能になる。例えば、第２の動作例におけるＲＡＵの一般セル７からＴＡＵ０のＭＴＵ４への記録媒体の移動を、ＤＡＵ０のＤＥＥ２からＲＡＵ（あるいはＬＡＵ）のＣＡＳ５への記録媒体の移動に置き換えれば、このような動作を説明することができる。
そこで、第３の動作例として、フレームＤＡＵ０のアドレス００００にあるボリューム‘ＺＺＺＺＺＺ’をＣＡＳ５から排出する場合を想定する。この場合の動作を、上記動作概要に沿って説明すると次のようになる。
【０１０１】
［１］アプリケーションによる指示：
アプリケーション・プログラムは、ボリューム‘ＺＺＺＺＺＺ’をＣＡＳ５に移動させるようにライブラリ管理ソフトウェアに通知する。このとき、移動先エレメントアドレスは明示されないものとする。
【０１０２】
［２］ライブラリ管理ソフトウェアの動作：
ライブラリ管理ソフトウェアは、ボリューム‘ＺＺＺＺＺＺ’がＤＡＵ０のアドレス００００に格納されていることを検索して、空いているＣＡＳ５を探し、ＲＡＵのアドレス０００１のＣＡＳ５に移動させることを決定する。この場合の検索方法も、上述の第１の動作例と同様である。
【０１０３】
［３］コマンドの発行：
ライブラリ管理ソフトウェアは、ＬＵＮ１に対するＭＯＶＥコマンドをライブラリコントローラ１に発行する。このコマンドにより、ＤＡＵ０のアドレス００００にある記録媒体を、アドレスＦＦ０４の仮想された運搬エレメント４１を利用して、アドレスＦＦ０５の仮想された投入／排出エレメント４２に移動させる動作が指示される。
【０１０４】
［４］ライブラリコントローラの動作：
ライブラリコントローラ１は、上記ＭＯＶＥコマンドを受領すると、ＬＵＮ１のアドレスＦＦ０５の投入／排出エレメント４２がＲＡＵのアドレス０００１のＣＡＳ５に対応することを確認する。そして、ＲＡＵのＡＣＣ６を動作させて、ＤＡＵ０のアドレス００００にある記録媒体をＲＡＵのＣＡＳ５に移動させる。
【０１０５】
次に、第４の動作例として、フレームＤＡＵ０のＤＥＥ２を利用した、オペレータ（作業員）による記録媒体の投入／排出動作を説明する。この場合の動作は次のようになる。
【０１０６】
［１］オペレータが、ＤＥＥ２上に設けられたスイッチ等を操作して、ＤＡＵ０のオフラインを指示する。
［２］ライブラリコントローラ１は、ＤＡＵ０がオフラインを指示されたことを検出すると、ＬＵＮ１をNot Ready 状態に移行させ、オフラインの間はＤＡＵ０がホスト計算機２１からのコマンドを実行できないようにする。しかし、他のフレームＲＡＵ、ＴＡＵ０、ＬＡＵはReady 状態であり、動作可能である。
【０１０７】
［３］ライブラリコントローラ１がオフラインを許可したことにより、ＤＥＥ２の扉３の開閉が可能になる。オペレータは、扉３を開いて、記録媒体の大量投入／排出の作業を行う。
【０１０８】
［４］オペレータがスイッチ等により作業の終了を知らせると、ライブラリコントローラ１は、ＬＵＮ１をReady 状態に移行させる。
第４の動作例では、各論理ユニット単位でオンライン／オフラインの制御が行えるため、ＳＣＳＩのインタフェース上で、特定の論理ユニットが明確に利用不可能な状態にあることを示すことができる。したがって、ライブラリ装置２２の活性保守や一部分だけをオフラインにした分割保守を実現することが可能になる。
【０１０９】
さらに、本実施形態では、ライブラリ装置２２のセルの増設をフレーム単位で行う場合、ライブラリコントローラ１は、既存のフレームのＬＵＮを固定したまま、増設したフレームのＬＵＮを新たに管理情報に加えればよい。このため、一義的な装置アドレスを振り直す必要はない。
【０１１０】
例えば、ＤＡＵ０と同一構成のフレームＤＡＵ１を増設する場合は、それを新たにＬＵＮ４として定義して、既存の各ＬＵＮと連携する仮想エレメントを追加することにより、同様の制御が可能となる。このとき、実在するエレメントのアドレスは、ホスト計算機２１のライブラリ管理ソフトウェアにとって変化していない。したがって、フレームの増設時における既存アドレスの再設定を行う必要がない。
【０１１１】
また、各フレームを独立した論理ユニットとみなして制御することにより、ライブラリ装置２２の中でフレームがどこに設置されてもよいことになるので、製造時にフレーム内で定義されるエレメントアドレスを表示することが可能である。このフレーム内アドレスの表示は、モデルが異なっても変更する必要がなく、またフレームが増設されても変更する必要がない。
【０１１２】
次に、図１２から図３６までを参照しながら、ライブラリコントローラ１による制御処理プログラムの一例を詳細に説明する。図１２は、仮想された投入／排出エレメント４４の制御のための制御データを格納するテーブルを示している。このテーブルはライブラリコントローラ１のメモリ３３に保持される。
【０１１３】
図１２のテーブルにおいては、互いに対応する２つの投入／排出エレメント４４が１組として管理される。例えば、１番目の制御データ‘ＲＡＵ−ＤＡＵ０’は、ＲＡＵとＤＡＵ０の間の記録媒体の移動に関し、ＲＡＵ（ＬＵＮ０）のアドレス０１００の投入／排出エレメント４４と、ＤＡＵ０（ＬＵＮ１）のアドレスＦＦ０１の投入／排出エレメント４４とを１組とみなして制御するために用いられる。
【０１１４】
ホスト計算機２１がこれらの投入／排出エレメント４４のアドレスのうち一方を移動先として含むＭＯＶＥコマンドを発行すると、ライブラリコントローラ１は、制御データ‘ＲＡＵ−ＤＡＵ０’のビット１９のフラグをセットする。そして、ビット１８−０に、そのコマンドのＬＵＮ（３ビット）と移動元エレメントアドレス（１６ビット）を書き込む。これにより、ライブラリコントローラ１は、ＲＡＵとＤＡＵ０の間で記録媒体を移動する指示が行われたことを認識する。
【０１１５】
そして、対応するもう一方のアドレスを移動元として含むＭＯＶＥコマンドを受け取ったとき、ライブラリコントローラ１はその制御データのフラグをリセットする。そして、制御データに書き込まれたＬＵＮとアドレス、および、そのコマンドのＬＵＮと移動先エレメントアドレスを用いて、実際の動作をライブラリ装置２２に指示する。ライブラリコントローラ１は、例えばフラグに値‘１’を書き込むことでフラグをセットし、値‘０’を書き込むことでフラグをリセットする。
【０１１６】
同様にして、２番目の制御データ‘ＲＡＵ−ＴＡＵ０’は、ＲＡＵのアドレス０１０１の投入／排出エレメント４４と、ＴＡＵ０（ＬＵＮ２）のアドレス１００３の投入／排出エレメント４４との組を管理し、３番目の制御データ‘ＲＡＵ−ＬＡＵ’は、ＲＡＵのアドレス０１０２の投入／排出エレメント４４と、ＬＡＵ（ＬＵＮ３）のアドレス０１０２の投入／排出エレメント４４との組を管理する。
【０１１７】
また、４番目の制御データ‘ＤＡＵ０−ＴＡＵ０’は、ＤＡＵ０のアドレスＦＦ０２の投入／排出エレメント４４と、ＴＡＵ０のアドレス１００１の投入／排出エレメント４４との組を管理し、５番目の制御データ‘ＤＡＵ０−ＬＡＵ’は、ＤＡＵ０のアドレスＦＦ０３の投入／排出エレメント４４と、ＬＡＵのアドレス０１０１の投入／排出エレメント４４との組を管理する。
【０１１８】
また、６番目の制御データ‘ＴＡＵ０−ＬＡＵ’は、ＴＡＵ０のアドレス１００２の投入／排出エレメント４４と、ＬＡＵのアドレス０１００の投入／排出エレメント４４との組を管理する。
【０１１９】
図１３は、ライブラリコントローラ１の全体処理のフローチャートである。処理が開始され、ホスト計算機２１から１つのＳＣＳＩコマンドを受け取ると（ステップＳ１１）、ライブラリコントローラ１は、まずコマンドに書かれたＬＵＮが０かどうかを判定する（ステップＳ１２）。ＬＵＮが０であれば、次に、ＬＵＮ０がReady 状態かどうかを確認する（ステップＳ１３）。
【０１２０】
ＬＵＮ０がReady 状態であれば、ＬＵＮ０の処理を行って（ステップＳ１５）、そのコマンドを終了し（ステップＳ２７）、ＬＵＮ０がReady 状態でなければ、ホスト計算機２１に対してNot Ready 応答を返して（ステップＳ１４）、そのコマンドを終了する（ステップＳ２７）。
【０１２１】
コマンドのＬＵＮが０でなければ、次に、ＬＵＮが１かどうかを判定する（ステップＳ１６）。ＬＵＮが１であれば、次に、ＬＵＮ１がReady 状態かどうかを確認する（ステップＳ１７）。ＬＵＮ１がReady 状態であれば、ＬＵＮ１の処理を行って（ステップＳ１８）、コマンドを終了し（ステップＳ２７）、ＬＵＮ１がReady 状態でなければ、Not Ready 応答を返して（ステップＳ１４）、コマンドを終了する（ステップＳ２７）。
【０１２２】
コマンドのＬＵＮが１でなければ、次に、ＬＵＮが２かどうかを判定する（ステップＳ１９）。ＬＵＮが２であれば、次に、ＬＵＮ２がReady 状態かどうかを確認する（ステップＳ２０）。ＬＵＮ２がReady 状態であれば、ＬＵＮ２の処理を行って（ステップＳ２１）、コマンドを終了し（ステップＳ２７）、ＬＵＮ２がReady 状態でなければ、Not Ready 応答を返して（ステップＳ１４）、コマンドを終了する（ステップＳ２７）。
【０１２３】
コマンドのＬＵＮが２でなければ、次に、ＬＵＮが３かどうかを判定する（ステップＳ２２）。ＬＵＮが３であれば、次に、ＬＵＮ３がReady 状態かどうかを確認する（ステップＳ２３）。ＬＵＮ３がReady 状態であれば、ＬＵＮ３の処理を行って（ステップＳ２４）、コマンドを終了し（ステップＳ２７）、ＬＵＮ３がReady 状態でなければ、Not Ready 応答を返して（ステップＳ１４）、コマンドを終了する（ステップＳ２７）。
【０１２４】
コマンドのＬＵＮが３でもなければ、対応する論理ユニットが存在しないので、エラー処理を行う（ステップＳ２５）。エラー処理において、ライブラリコントローラ１は、例えばホスト計算機２１にエラーを通知する。そして、エラー回復処理を行った後（ステップＳ２６）、コマンドを終了する（ステップＳ２７）。１つのコマンドが終了すると、ライブラリコントローラ１は、次のコマンドをホスト計算機２１から受け取って、同様の処理を行う。
【０１２５】
図１４から図１６までは、ステップＳ１５におけるＬＵＮ０の処理のフローチャートであり、図１７から図２６までは、ステップＳ１８におけるＬＵＮ１の処理のフローチャートである。また、図２７から図３３までは、ステップＳ２１におけるＬＵＮ２の処理のフローチャートであり、図３４から図３６までは、ステップＳ２４におけるＬＵＮ３の処理のフローチャートである。
【０１２６】
まず、ＬＵＮ０の処理について説明する。処理が開始されると、ライブラリコントローラ１は、まずコマンドの移動元エレメントアドレスが０１００より小さいかどうかを判定する（図１４、ステップＳ３１）。移動元エレメントアドレスが０１００より小さければ、次に、移動先エレメントアドレスが０１００より小さいかどうかを判定する（ステップＳ３２）。そして、移動先エレメントアドレスが０１００より小さければ、そのコマンドはＲＡＵ内で閉じているので、ＲＡＵ内で記録媒体を移動させ（ステップＳ３３）、処理を終了する。
【０１２７】
ステップＳ３２において、移動先エレメントアドレスが０１００以上であれば、次に、それが０１００かどうかを判定する（ステップＳ３４）。移動先エレメントアドレスが０１００であれば、このコマンドはＲＡＵからＤＡＵ０への記録媒体の移動を表す。そこで、コマンドのＬＵＮと移動元エレメントアドレスとを制御データ‘ＲＡＵ−ＤＡＵ０’に格納し（ステップＳ３５）、そのフラグをセットして（ステップＳ３６）、処理を終了する。
【０１２８】
ステップＳ３４において、移動先エレメントアドレスが０１００でなければ、次に、それを０１０１と比較する（ステップＳ３７）。移動先エレメントアドレスが０１０１であれば、このコマンドはＲＡＵからＴＡＵ０への記録媒体の移動を表す。そこで、コマンドのＬＵＮと移動元エレメントアドレスとを制御データ‘ＲＡＵ−ＴＡＵ０’に格納し（ステップＳ３８）、そのフラグをセットして（ステップＳ３９）、処理を終了する。
【０１２９】
ステップＳ３７において、移動先エレメントアドレスが０１０１でなければ、次に、それを０１０２と比較する（ステップＳ４０）。移動先エレメントアドレスが０１０２であれば、このコマンドはＲＡＵからＬＡＵへの記録媒体の移動を表す。そこで、コマンドのＬＵＮと移動元エレメントアドレスとを制御データ‘ＲＡＵ−ＬＡＵ’に格納し（ステップＳ４１）、そのフラグをセットして（ステップＳ４２）、処理を終了する。
【０１３０】
ステップＳ４０において、移動先エレメントアドレスが０１０２でなければ、次に、それが０１０３以上かつ０１０Ａ以下であるかどうかを判定する（ステップＳ４３）。移動先エレメントアドレスがこの範囲の場合は、移動先はＴＡＵ０のＭＴＵ４に対応する。そこで、図１１のアドレス対応表を参照して、ＲＡＵからＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ４４）、処理を終了する。
【０１３１】
ステップＳ４３において、移動先エレメントアドレスが０１０３より小さいか、または０１０Ａより大きい場合は、対応するアドレスがＲＡＵ内に存在しないことになる。そこで、ステップＳ２５と同様のエラー処理を行い（図１６、ステップＳ６７）、エラー回復処理を行って（ステップＳ６８）、処理を終了する。
【０１３２】
また、ステップＳ３１において、移動元エレメントアドレスが０１００以上であれば、次に、それが０１００かどうかを判定する（図１５、ステップＳ５１）。そして、移動元エレメントアドレスが０１００であれば、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ５２）。移動先エレメントアドレスが０１００より小さければ、次に、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグがセットされているかどうかを確認する（ステップＳ５３）。
【０１３３】
そのフラグがセットされていれば、このコマンドはＤＡＵ０からＲＡＵへの記録媒体の移動を表すことが分かる。そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをリセットし（ステップＳ５４）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＲＡＵ内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ５５）、処理を終了する。
【０１３４】
また、ステップＳ５２において移動先エレメントアドレスが０１００以上である場合、および、ステップＳ５３においてフラグがセットされていない場合は、図１６のステップＳ６７以降の処理を行う。
【０１３５】
ステップＳ５１において、移動元エレメントアドレスが０１００でなければ、次に、それを０１０１と比較する（ステップＳ５６）。そして、移動元エレメントアドレスが０１０１であれば、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ５７）。移動先エレメントアドレスが０１００より小さければ、次に、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグがセットされているかどうかを確認する（ステップＳ５８）。
【０１３６】
そのフラグがセットされていれば、このコマンドはＴＡＵ０からＲＡＵへの記録媒体の移動を表すことが分かる。そこで、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをリセットし（ステップＳ５９）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＲＡＵ内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ５５）、処理を終了する。
【０１３７】
また、ステップＳ５７において移動先エレメントアドレスが０１００以上である場合、および、ステップＳ５８においてフラグがセットされていない場合は、図１６のステップＳ６７以降の処理を行う。
【０１３８】
ステップＳ５６において、移動元エレメントアドレスが０１０１でなければ、次に、それを０１０２と比較する（図１６、ステップＳ６１）。そして、移動元エレメントアドレスが０１０２であれば、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ６２）。移動先エレメントアドレスが０１００より小さければ、次に、制御データ‘ＲＡＵ−ＬＡＵ’のフラグがセットされているかどうかを確認する（ステップＳ６３）。
【０１３９】
そのフラグがセットされていれば、このコマンドはＬＡＵからＲＡＵへの記録媒体の移動を表すことが分かる。そこで、制御データ‘ＲＡＵ−ＬＡＵ’のフラグをリセットし（ステップＳ６９）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＲＡＵ内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ５５）、処理を終了する。
【０１４０】
また、ステップＳ６２において移動先エレメントアドレスが０１００以上である場合、および、ステップＳ６３においてフラグがセットされていない場合は、ステップＳ６７以降の処理を行う。
【０１４１】
ステップＳ６１において、移動元エレメントアドレスが０１０２でなければ、次に、それが０１０３以上かつ０１０Ａ以下であるかどうかを判定する（ステップＳ６４）。移動元エレメントアドレスがこの範囲の場合は、移動元はＴＡＵ０のＭＴＵ４に対応する。
【０１４２】
そこで、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ６５）。移動先エレメントアドレスが０１００より小さければ、図１１のアドレス対応表を参照して、ＴＡＵ０のＭＴＵ４からＲＡＵへ記録媒体を移動させ（ステップＳ６６）、処理を終了する。ステップＳ６５において、移動先エレメントアドレスが０１００以上である場合は、ステップＳ６７以降の処理を行う。
【０１４３】
ステップＳ６４において、移動元エレメントアドレスが０１０３より小さいか、または０１０Ａより大きい場合は、対応するアドレスがＲＡＵ内に存在しないことになるので、ステップＳ６７以降の処理を行う。
【０１４４】
次に、ＬＵＮ１の処理について説明する。処理が開始されると、ライブラリコントローラ１は、まずコマンドの移動元エレメントアドレスがＦＦ００以下かどうかを判定する（図１７、ステップＳ７１）。移動元エレメントアドレスがＦＦ００以下であれば、図１８のステップＳ８１以降の処理を行い、それがＦＦ００より大きければ、次に、それをＦＦ０１と比較する（ステップＳ７２）。
【０１４５】
そして、移動元エレメントアドレスがＦＦ０１であれば、図１９のステップＳ１０１以降の処理を行い、それがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ７３）。そして、移動元エレメントアドレスがＦＦ０２であれば、図２１のステップＳ１３１以降の処理を行い、それがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（ステップＳ７４）。
【０１４６】
そして、移動元エレメントアドレスがＦＦ０３であれば、図２３のステップＳ１５１以降の処理を行い、それがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（ステップＳ７５）。そして、移動元エレメントアドレスがＦＦ０５であれば、図２５のステップＳ１７１以降の処理を行い、それがＦＦ０５でなければ、次に、それがＦＦ０６以上かつＦＦ０Ｄ以下かどうかを判定する（ステップＳ７６）。
【０１４７】
そして、移動元エレメントアドレスがその範囲内であれば、図２６のステップＳ１８１以降の処理を行う。それがＦＦ０６より小さいか、またはＦＦ０Ｄより大きい場合は、対応するアドレスがＤＡＵ０内に存在しないことになるので、ＬＵＮ０の場合と同様のエラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１４８】
ステップＳ７１において、移動元エレメントアドレスがＦＦ００以下であれば、次に、移動先エレメントアドレスがＦＦ００以下かどうかを判定する（図１８、ステップＳ８１）。移動先エレメントアドレスがＦＦ００以下であれば、そのコマンドはＤＡＵ０内で閉じているので、ＤＡＵ０内で記録媒体を移動させ（ステップＳ８２）、処理を終了する。
【０１４９】
ステップＳ８１において、移動先エレメントアドレスがＦＦ００より大きければ、次に、それがＦＦ０１かどうかを判定する（ステップＳ８３）。移動先エレメントアドレスがＦＦ０１であれば、このコマンドはＤＡＵ０からＲＡＵへの記録媒体の移動を表す。そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをセットし（ステップＳ８４）、コマンドのＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ８５）、処理を終了する。
【０１５０】
ステップＳ８３において、移動先エレメントアドレスがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ８６）。移動先エレメントアドレスがＦＦ０２であれば、このコマンドはＤＡＵ０からＴＡＵ０への記録媒体の移動を表す。そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ８７）、コマンドのＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ８５）、処理を終了する。
【０１５１】
ステップＳ８６において、移動先エレメントアドレスがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（ステップＳ８８）。移動先エレメントアドレスがＦＦ０３であれば、このコマンドはＤＡＵ０からＬＡＵへの記録媒体の移動を表す。そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ８９）、コマンドのＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ８５）、処理を終了する。
【０１５２】
ステップＳ８８において、移動先エレメントアドレスがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（ステップＳ９０）。移動先エレメントアドレスがＦＦ０５であれば、移動先はＲＡＵまたはＬＡＵのＣＡＳ５に対応する。そこで、記録媒体をＣＡＳ５へ移動させ（ステップＳ９１）、処理を終了する。
【０１５３】
このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、ライブラリコントローラ１の初期設定に依存する。例えば、ライブラリ装置２２が特定のＣＡＳ５を使用するように、あらかじめユーザが設定しておき、そのＣＡＳ５に障害が発生した場合のみ、自動的にもう一方のＣＡＳ５を使用することが考えられる。
【０１５４】
また、どちらのＣＡＳ５でも構わない場合もある。その場合は、ライブラリコントローラ１が、ＲＡＵとＬＡＵのいずれのＡＣＣ６を使用すれば記録媒体の移動がより高速になるかを判断して、そのＡＣＣ６を含むフレームのＣＡＳ５を使用する。
【０１５５】
ステップＳ９０において、移動先エレメントアドレスがＦＦ０５でなければ、次に、それがＦＦ０６以上かつＦＦ０Ｄ以下であるかどうかを判定する（ステップＳ９２）。移動先エレメントアドレスがこの範囲の場合は、移動先はＴＡＵ０のＭＴＵ４に対応する。そこで、図１１のアドレス対応表を参照して、ＤＡＵ０からＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ９３）、処理を終了する。
【０１５６】
ステップＳ９２において、移動先エレメントアドレスがＦＦ０６より小さいか、またはＦＦ０Ｄより大きい場合は、対応するアドレスがＤＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１５７】
また、ステップＳ７２において、移動元エレメントアドレスがＦＦ０１であれば、次に、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグがセットされているかどうかを確認する（図１９、ステップＳ１０１）。そのフラグがセットされていなければ、移動元フレームが不明なので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１５８】
制御データ‘ＲＡＵ−ＤＡＵ０’のフラグがセットされていれば、次に、移動先エレメントアドレスがＦＦ００以下かどうかを判定する（ステップＳ１０２）。移動先エレメントアドレスがＦＦ００以下であれば、移動先はＤＡＵ０内のＤＥＥ２または一般セル７に対応する。
【０１５９】
そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをリセットし（ステップＳ１０２′）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＤＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ１０３）、処理を終了する。
【０１６０】
ステップＳ１０２において、移動先エレメントアドレスがＦＦ００より大きければ、次に、それをＦＦ０１と比較する（ステップＳ１０４）。移動先エレメントアドレスがＦＦ０１であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１６１】
移動先エレメントアドレスがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ１０５）。移動先エレメントアドレスがＦＦ０２であれば、このコマンドは、ＤＡＵ０を経由するＴＡＵ０への記録媒体の移動を表す。
【０１６２】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ１０６）、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをリセットする（ステップＳ１０７）。そして、制御データ‘ＲＡＵ−ＤＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＤＡＵ０−ＴＡＵ０’にコピーして（ステップＳ１０８）、処理を終了する。
【０１６３】
ステップＳ１０５において、移動先エレメントアドレスがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（ステップＳ１０９）。移動先エレメントアドレスがＦＦ０３であれば、このコマンドは、ＤＡＵ０を経由するＬＡＵへの記録媒体の移動を表す。
【０１６４】
そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ１１０）、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをリセットする（ステップＳ１１１）。そして、制御データ‘ＲＡＵ−ＤＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＤＡＵ０−ＬＡＵ’にコピーして（ステップＳ１０８）、処理を終了する。
【０１６５】
ステップＳ１０９において、移動先エレメントアドレスがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（図２０、ステップＳ１２１）。移動先エレメントアドレスがＦＦ０５であれば、このコマンドは、ＤＡＵ０を経由するＣＡＳ５への記録媒体の移動を表す。
【０１６６】
そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをリセットし（ステップＳ１２２）、その制御データのＬＵＮの移動元エレメントアドレスからＣＡＳ５へ記録媒体を移動させて（ステップＳ１２３）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０１６７】
ステップＳ１２１において、移動先エレメントアドレスがＦＦ０５でなければ、次に、それがＦＦ０６以上かつＦＦ０Ｄ以下であるかどうかを判定する（ステップＳ１２４）。移動先エレメントアドレスがこの範囲の場合は、このコマンドは、ＤＡＵ０を経由するＴＡＵ０のＭＴＵ４への記録媒体の移動を表す。
【０１６８】
そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをリセットし（ステップＳ１２５）、図１１のアドレス対応表を参照して、その制御データのＬＵＮの移動元エレメントアドレスからＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ１２６）、処理を終了する。
【０１６９】
ステップＳ１２４において、移動先エレメントアドレスがＦＦ０６より小さいか、またはＦＦ０Ｄより大きい場合は、対応するアドレスがＤＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１７０】
また、ステップＳ７３において、移動元エレメントアドレスがＦＦ０２であれば、次に、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグがセットされているかどうかを確認する（図２１、ステップＳ１３１）。そのフラグがセットされていなければ、移動元フレームが不明なので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１７１】
制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグがセットされていれば、次に、移動先エレメントアドレスがＦＦ００以下かどうかを判定する（ステップＳ１３２）。移動先エレメントアドレスがＦＦ００以下であれば、移動先はＤＡＵ０内のＤＥＥ２または一般セル７に対応する。
【０１７２】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットし（ステップＳ１３２′）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＤＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ１０３）、処理を終了する。
【０１７３】
ステップＳ１３２において、移動先エレメントアドレスがＦＦ００より大きければ、次に、それをＦＦ０１と比較する（ステップＳ１３３）。移動先エレメントアドレスがＦＦ０１であれば、このコマンドは、ＤＡＵ０を経由するＲＡＵへの記録媒体の移動を表す。
【０１７４】
そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをセットし（ステップＳ１３４）、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットする（ステップＳ１３５）。そして、制御データ‘ＤＡＵ０−ＴＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＲＡＵ−ＤＡＵ０’にコピーして（ステップＳ１０８）、処理を終了する。
【０１７５】
ステップＳ１３３において、移動先エレメントアドレスがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ１３６）。移動先エレメントアドレスがＦＦ０２であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１７６】
ステップＳ１３６において、移動先エレメントアドレスがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（ステップＳ１３７）。移動先エレメントアドレスがＦＦ０３であれば、このコマンドは、ＤＡＵ０を経由するＬＡＵへの記録媒体の移動を表す。
【０１７７】
そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ１３８）、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットする（ステップＳ１３９）。そして、制御データ‘ＤＡＵ０−ＴＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＤＡＵ０−ＬＡＵ’にコピーして（ステップＳ１０８）、処理を終了する。
【０１７８】
ステップＳ１３７において、移動先エレメントアドレスがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（図２２、ステップＳ１４１）。移動先エレメントアドレスがＦＦ０５であれば、このコマンドは、ＤＡＵ０を経由するＣＡＳ５への記録媒体の移動を表す。
【０１７９】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットし（ステップＳ１４２）、その制御データのＬＵＮの移動元エレメントアドレスからＣＡＳ５へ記録媒体を移動させて（ステップＳ１４３）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０１８０】
ステップＳ１４１において、移動先エレメントアドレスがＦＦ０５でなければ、次に、それがＦＦ０６以上かつＦＦ０Ｄ以下であるかどうかを判定する（ステップＳ１４４）。移動先エレメントアドレスがこの範囲の場合は、このコマンドは、ＤＡＵ０を経由するＴＡＵ０のＭＴＵ４への記録媒体の移動を表す。
【０１８１】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットし（ステップＳ１４５）、図１１のアドレス対応表を参照して、その制御データのＬＵＮの移動元エレメントアドレスからＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ１４６）、処理を終了する。
【０１８２】
ステップＳ１４４において、移動先エレメントアドレスがＦＦ０６より小さいか、またはＦＦ０Ｄより大きい場合は、対応するアドレスがＤＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１８３】
また、ステップＳ７４において、移動元エレメントアドレスがＦＦ０３であれば、次に、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグがセットされているかどうかを確認する（図２３、ステップＳ１５１）。そのフラグがセットされていなければ、移動元フレームが不明なので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１８４】
制御データ‘ＤＡＵ０−ＬＡＵ’のフラグがセットされていれば、次に、移動先エレメントアドレスがＦＦ００以下かどうかを判定する（ステップＳ１５２）。移動先エレメントアドレスがＦＦ００以下であれば、移動先はＤＡＵ０内のＤＥＥ２または一般セル７に対応する。
【０１８５】
そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ１５２′）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＤＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ１０３）、処理を終了する。
【０１８６】
ステップＳ１５２において、移動先エレメントアドレスがＦＦ００より大きければ、次に、それをＦＦ０１と比較する（ステップＳ１５３）。移動先エレメントアドレスがＦＦ０１であれば、このコマンドは、ＤＡＵ０を経由するＲＡＵへの記録媒体の移動を表す。
【０１８７】
そこで、制御データ‘ＲＡＵ−ＤＡＵ０’のフラグをセットし（ステップＳ１５４）、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをリセットする（ステップＳ１５５）。そして、制御データ‘ＤＡＵ０−ＬＡＵ’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＲＡＵ−ＤＡＵ０’にコピーして（ステップＳ１０８）、処理を終了する。
【０１８８】
ステップＳ１５３において、移動先エレメントアドレスがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ１５６）。移動先エレメントアドレスがＦＦ０２であれば、このコマンドは、ＤＡＵ０を経由するＴＡＵ０への記録媒体の移動を表す。
【０１８９】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ１５７）、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをリセットする（ステップＳ１５８）。そして、制御データ‘ＤＡＵ０−ＬＡＵ’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＤＡＵ０−ＴＡＵ０’にコピーして（ステップＳ１０８）、処理を終了する。
【０１９０】
ステップＳ１５６において、移動先エレメントアドレスがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（図２４、ステップＳ１６１）。移動先エレメントアドレスがＦＦ０３であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１９１】
ステップＳ１６１において、移動先エレメントアドレスがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（ステップＳ１６２）。移動先エレメントアドレスがＦＦ０５であれば、このコマンドは、ＤＡＵ０を経由するＣＡＳ５への記録媒体の移動を表す。
【０１９２】
そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ１６３）、その制御データのＬＵＮの移動元エレメントアドレスからＣＡＳ５へ記録媒体を移動させて（ステップＳ１６４）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０１９３】
ステップＳ１６２において、移動先エレメントアドレスがＦＦ０５でなければ、次に、それがＦＦ０６以上かつＦＦ０Ｄ以下であるかどうかを判定する（ステップＳ１６５）。移動先エレメントアドレスがこの範囲の場合は、このコマンドは、ＤＡＵ０を経由するＴＡＵ０のＭＴＵ４への記録媒体の移動を表す。
【０１９４】
そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ１６６）、図１１のアドレス対応表を参照して、その制御データのＬＵＮの移動元エレメントアドレスからＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ１６７）、処理を終了する。
【０１９５】
ステップＳ１６５において、移動先エレメントアドレスがＦＦ０６より小さいか、またはＦＦ０Ｄより大きい場合は、対応するアドレスがＤＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１９６】
また、ステップＳ７５において、移動元エレメントアドレスがＦＦ０５であれば、移動元はＣＡＳ５に対応するので、ＲＡＵとＬＡＵのいずれかのＣＡＳ５に記録媒体が存在するかどうかを確認する（図２５、ステップＳ１７１）。ＣＡＳ５に記録媒体が存在しなければ、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１９７】
ＣＡＳ５に記録媒体が存在すれば、次に、移動先エレメントアドレスがＦＦ００以下かどうかを判定する（ステップＳ１７２）。移動先エレメントアドレスがＦＦ００以下であれば、移動先はＤＡＵ０内のＤＥＥ２または一般セル７に対応する。そこで、ＣＡＳ５からＤＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させ（ステップＳ１７３）、処理を終了する。
【０１９８】
ステップＳ１７２において、移動先エレメントアドレスがＦＦ００より大きければ、次に、それをＦＦ０１と比較する（ステップＳ１７４）。移動先エレメントアドレスがＦＦ０１であれば、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０１９９】
移動先エレメントアドレスがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ１７５）。移動先エレメントアドレスがＦＦ０２であれば、移動先はＴＡＵ０に対応するので、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ１７６）、ＣＡＳ５のＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ８５）、処理を終了する。
【０２００】
ステップＳ１７５において、移動先エレメントアドレスがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（ステップＳ１７７）。移動先エレメントアドレスがＦＦ０３であれば、移動先はＬＡＵに対応するので、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ１７８）、ＣＡＳ５のＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ８５）、処理を終了する。
【０２０１】
ステップＳ１７７において、移動先エレメントアドレスがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（ステップＳ１７９）。移動先エレメントアドレスがＦＦ０５であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０２０２】
ステップＳ１７９において、移動先エレメントアドレスがＦＦ０５でなければ、次に、それがＦＦ０６以上かつＦＦ０Ｄ以下であるかどうかを判定する（ステップＳ１８０）。移動先エレメントアドレスがこの範囲の場合は、このコマンドは、移動先はＴＡＵ０のＭＴＵ４に対応する。そこで、図１１のアドレス対応表を参照して、ＣＡＳ５からＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ１８１）、処理を終了する。
【０２０３】
ステップＳ１８０において、移動先エレメントアドレスがＦＦ０６より小さいか、またはＦＦ０Ｄより大きい場合は、対応するアドレスがＤＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０２０４】
また、ステップＳ７６において、移動元エレメントアドレスがＦＦ０６以上かつＦＦ０Ｄ以下であれば、移動元はＴＡＵ０のＭＴＵ４に対応する。そこで、図１１のアドレス対応表を参照して、対応するＭＴＵ４に記録媒体が存在するかどうかを確認する（図２６、ステップＳ１９１）。そのＭＴＵ４に記録媒体が存在しなければ、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０２０５】
そのＭＴＵ４に記録媒体が存在すれば、次に、移動先エレメントアドレスがＦＦ００以下かどうかを判定する（ステップＳ１９２）。移動先エレメントアドレスがＦＦ００以下であれば、移動先はＤＡＵ０内のＤＥＥ２または一般セル７に対応する。そこで、ＭＴＵ４からＤＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させ（ステップＳ１９３）、処理を終了する。
【０２０６】
ステップＳ１９２において、移動先エレメントアドレスがＦＦ００より大きければ、次に、それをＦＦ０１と比較する（ステップＳ１９４）。移動先エレメントアドレスがＦＦ０１であれば、移動先はＲＡＵに対応するので、制御データ‘ＤＡＵ０−ＲＡＵ’のフラグをセットし（ステップＳ１９５）、ＭＴＵ４のＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ８５）、処理を終了する。
【０２０７】
ステップＳ１９４において、移動先エレメントアドレスがＦＦ０１でなければ、次に、それをＦＦ０２と比較する（ステップＳ１９６）。移動先エレメントアドレスがＦＦ０２であれば、これは移動元と同じフレームＴＡＵ０に対応するので、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０２０８】
ステップＳ１９６において、移動先エレメントアドレスがＦＦ０２でなければ、次に、それをＦＦ０３と比較する（ステップＳ１９７）。移動先エレメントアドレスがＦＦ０３であれば、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
【０２０９】
ステップＳ１９７において、移動先エレメントアドレスがＦＦ０３でなければ、次に、それをＦＦ０５と比較する（ステップＳ１９８）。移動先エレメントアドレスがＦＦ０５であれば、移動先はＣＡＳ５に対応するので、ＭＴＵ４からＣＡＳ５へ記録媒体を移動させ（ステップＳ１９９）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０２１０】
ステップＳ１９８において、移動先エレメントアドレスがＦＦ０５でなければ、エラー処理を行い（ステップＳ７７）、エラー回復処理を行って（ステップＳ７８）、処理を終了する。
次に、ＬＵＮ２の処理について説明する。処理が開始されると、ライブラリコントローラ１は、まずコマンドの移動元エレメントアドレスが１０００以下かどうかを判定する（図２７、ステップＳ２０１）。移動元エレメントアドレスが１０００以下であれば、図２８のステップＳ２１１以降の処理を行い、それが１０００より大きければ、次に、それを１００１と比較する（ステップＳ２０２）。
【０２１１】
そして、移動元エレメントアドレスが１００１であれば、図２９のステップＳ２３１以降の処理を行い、それが１００１でなければ、次に、それを１００２と比較する（ステップＳ２０３）。そして、移動元エレメントアドレスが１００２であれば、図３１のステップＳ２５１以降の処理を行い、それが１００２でなければ、次に、それを１００３と比較する（ステップＳ２０４）。
【０２１２】
そして、移動元エレメントアドレスが１００３であれば、図３２のステップＳ２７１以降の処理を行い、それが１００３でなければ、次に、それを１００５と比較する（ステップＳ２０５）。そして、移動元エレメントアドレスが１００５であれば、図３３のステップＳ２９１以降の処理を行う。
【０２１３】
移動元エレメントアドレスが１００５でなければ、対応するアドレスがＴＡＵ０内に存在しないことになる。そこで、ＬＵＮ０の場合と同様のエラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２１４】
ステップＳ２０１において、移動元エレメントアドレスが１０００以下であれば、次に、移動先エレメントアドレスが１０００以下かどうかを判定する（図２８、ステップＳ２１１）。移動先エレメントアドレスが１０００以下であれば、そのコマンドはＴＡＵ０内で閉じているので、ＴＡＵ０内で記録媒体を移動させ（ステップＳ２１２）、処理を終了する。
【０２１５】
ステップＳ２１１において、移動先エレメントアドレスが１０００より大きければ、次に、それが１００１と比較する（ステップＳ２１３）。移動先エレメントアドレスが１００１であれば、このコマンドはＴＡＵ０からＤＡＵ０への記録媒体の移動を表す。そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ２１４）、コマンドのＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ２１５）、処理を終了する。
【０２１６】
ステップＳ２１３において、移動先エレメントアドレスが１００１でなければ、次に、それを１００２と比較する（ステップＳ２１６）。移動先エレメントアドレスが１００２であれば、このコマンドはＴＡＵ０からＬＡＵへの記録媒体の移動を表す。そこで、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ２１７）、コマンドのＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ２１５）、処理を終了する。
【０２１７】
ステップＳ２１６において、移動先エレメントアドレスが１００２でなければ、次に、それを１００３と比較する（ステップＳ２１８）。移動先エレメントアドレスが１００３であれば、このコマンドはＴＡＵ０からＲＡＵへの記録媒体の移動を表す。そこで、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをセットし（ステップＳ２１９）、コマンドのＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ２１５）、処理を終了する。
【０２１８】
ステップＳ２１８において、移動先エレメントアドレスが１００３でなければ、次に、それを１００５と比較する（ステップＳ２２０）。移動先エレメントアドレスが１００５であれば、移動先はＲＡＵまたはＬＡＵのＣＡＳ５に対応する。そこで、記録媒体をＣＡＳ５へ移動させ（ステップＳ２２１）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０２１９】
ステップＳ２２０において、移動先エレメントアドレスが１００５でなければ、対応するアドレスがＴＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２２０】
また、ステップＳ２０２において、移動元エレメントアドレスが１００１であれば、次に、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグがセットされているかどうかを確認する（図２９、ステップＳ２３１）。そのフラグがセットされていなければ、移動元フレームが不明なので、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２２１】
制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグがセットされていれば、次に、移動先エレメントアドレスが１０００以下かどうかを判定する（ステップＳ２３２）。移動先エレメントアドレスが１０００以下であれば、移動先はＴＡＵ０内の一般セル７またはＭＴＵ４に対応する。
【０２２２】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットし（ステップＳ２３３）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＴＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させ（ステップＳ２３４）、処理を終了する。
【０２２３】
ステップＳ２３２において、移動先エレメントアドレスが１０００より大きければ、次に、それを１００１と比較する（ステップＳ２３５）。移動先エレメントアドレスが１００１であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２２４】
移動先エレメントアドレスが１００１でなければ、次に、それを１００２と比較する（ステップＳ２３６）。移動先エレメントアドレスが１００２であれば、このコマンドは、ＴＡＵ０を経由するＬＡＵへの記録媒体の移動を表す。
【０２２５】
そこで、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ２３７）、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットする（ステップＳ２３８）。そして、制御データ‘ＤＡＵ０−ＴＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＴＡＵ０−ＬＡＵ’にコピーして（ステップＳ２３９）、処理を終了する。
【０２２６】
ステップＳ２３６において、移動先エレメントアドレスが１００２でなければ、次に、それを１００３と比較する（図３０、ステップＳ２４１）。移動先エレメントアドレスが１００３であれば、このコマンドは、ＴＡＵ０を経由するＲＡＵへの記録媒体の移動を表す。
【０２２７】
そこで、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをセットし（ステップＳ２４２）、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットする（ステップＳ２４３）。そして、制御データ‘ＤＡＵ０−ＴＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＲＡＵ−ＴＡＵ０’にコピーして（ステップＳ２３９）、処理を終了する。
【０２２８】
ステップＳ２４１において、移動先エレメントアドレスが１００３でなければ、次に、それを１００５と比較する（ステップＳ２４４）。移動先エレメントアドレスが１００５であれば、このコマンドは、ＴＡＵ０を経由するＣＡＳ５への記録媒体の移動を表す。
【０２２９】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットし（ステップＳ２４５）、その制御データのＬＵＮの移動元エレメントアドレスからＣＡＳ５へ記録媒体を移動させて（ステップＳ２４６）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０２３０】
ステップＳ１２１において、移動先エレメントアドレスが１００５でなければ、対応するアドレスがＴＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２３１】
また、ステップＳ２０３において、移動元エレメントアドレスが１００２であれば、次に、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグがセットされているかどうかを確認する（図３１、ステップＳ２５１）。そのフラグがセットされていなければ、移動元フレームが不明なので、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２３２】
制御データ‘ＴＡＵ０−ＬＡＵ’のフラグがセットされていれば、次に、移動先エレメントアドレスが１０００以下かどうかを判定する（ステップＳ２５２）。移動先エレメントアドレスが１０００以下であれば、移動先はＴＡＵ０内の一般セル７またはＭＴＵ４に対応する。
【０２３３】
そこで、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ２５３）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＴＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させ（ステップＳ２５４）、処理を終了する。
【０２３４】
ステップＳ２５２において、移動先エレメントアドレスが１０００より大きければ、次に、それを１００１と比較する（ステップＳ２５５）。移動先エレメントアドレスが１００１であれば、このコマンドは、ＴＡＵ０を経由するＤＡＵ０への記録媒体の移動を表す。
【０２３５】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ２５６）、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをリセットする（ステップＳ２５７）。そして、制御データ‘ＴＡＵ０−ＬＡＵ’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＤＡＵ０−ＴＡＵ０’にコピーして（ステップＳ２３９）、処理を終了する。
【０２３６】
ステップＳ２５５において、移動先エレメントアドレスが１００１でなければ、次に、それを１００２と比較する（ステップＳ２５８）。移動先エレメントアドレスが１００２であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２３７】
ステップＳ２５８において、移動先エレメントアドレスが１００２でなければ、次に、それを１００３と比較する（ステップＳ２５９）。移動先エレメントアドレスが１００３であれば、このコマンドは、ＴＡＵ０を経由するＲＡＵへの記録媒体の移動を表す。
【０２３８】
そこで、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをセットし（ステップＳ２６０）、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをリセットする（ステップＳ２６１）。そして、制御データ‘ＴＡＵ０−ＬＡＵ’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＲＡＵ−ＴＡＵ０’にコピーして（ステップＳ２３９）、処理を終了する。
【０２３９】
ステップＳ２５９において、移動先エレメントアドレスが１００３でなければ、次に、それを１００５と比較する（ステップＳ２６２）。移動先エレメントアドレスが１００５であれば、このコマンドは、ＴＡＵ０を経由するＣＡＳ５への記録媒体の移動を表す。
【０２４０】
そこで、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ２６３）、その制御データのＬＵＮの移動元エレメントアドレスからＣＡＳ５へ記録媒体を移動させて（ステップＳ２６４）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０２４１】
ステップＳ２６２において、移動先エレメントアドレスが１００５でなければ、対応するアドレスがＴＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２４２】
また、ステップＳ２０４において、移動元エレメントアドレスが１００３であれば、次に、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグがセットされているかどうかを確認する（図３２、ステップＳ２７１）。そのフラグがセットされていなければ、移動元フレームが不明なので、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２４３】
制御データ‘ＲＡＵ−ＴＡＵ０’のフラグがセットされていれば、次に、移動先エレメントアドレスが１０００以下かどうかを判定する（ステップＳ２７２）。移動先エレメントアドレスが１０００以下であれば、移動先はＴＡＵ０内の一般セル７またはＭＴＵ４に対応する。
【０２４４】
そこで、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをリセットし（ステップＳ２７３）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＴＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させ（ステップＳ２７４）、処理を終了する。
【０２４５】
ステップＳ２７２において、移動先エレメントアドレスが１０００より大きければ、次に、それを１００１と比較する（ステップＳ２７５）。移動先エレメントアドレスが１００１であれば、このコマンドは、ＴＡＵ０を経由するＤＡＵ０への記録媒体の移動を表す。
【０２４６】
そこで、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ２７６）、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをリセットする（ステップＳ２７７）。そして、制御データ‘ＲＡＵ−ＴＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＤＡＵ０−ＴＡＵ０’にコピーして（ステップＳ２３９）、処理を終了する。
【０２４７】
ステップＳ２７５において、移動先エレメントアドレスが１００１でなければ、次に、それを１００２と比較する（ステップＳ２７８）。移動先エレメントアドレスが１００２であれば、このコマンドは、ＴＡＵ０を経由するＬＡＵへの記録媒体の移動を表す。
【０２４８】
そこで、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ２７９）、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをリセットする（ステップＳ２８０）。そして、制御データ‘ＲＡＵ−ＴＡＵ０’のＬＵＮと移動元エレメントアドレスとを、制御データ‘ＴＡＵ０−ＬＡＵ’にコピーして（ステップＳ２３９）、処理を終了する。
【０２４９】
ステップＳ２７８において、移動先エレメントアドレスが１００２でなければ、次に、それを１００３と比較する（ステップＳ２８１）。移動先エレメントアドレスが１００３であれば、これは移動元エレメントアドレスと同じなので、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２５０】
ステップＳ２８１において、移動先エレメントアドレスが１００３でなければ、次に、それを１００５と比較する（ステップＳ２８２）。移動先エレメントアドレスが１００５であれば、このコマンドは、ＴＡＵ０を経由するＣＡＳ５への記録媒体の移動を表す。
【０２５１】
そこで、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをリセットし（ステップＳ２８３）、その制御データのＬＵＮの移動元エレメントアドレスからＣＡＳ５へ記録媒体を移動させて（ステップＳ２８４）、処理を終了する。このとき、ＲＡＵとＬＡＵのいずれのＣＡＳ５を使用するかは、図１８のステップＳ９１と同様である。
【０２５２】
ステップＳ２８２において、移動先エレメントアドレスが１００５でなければ、対応するアドレスがＴＡＵ０内に存在しないことになる。そこで、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２５３】
また、ステップＳ２０５において、移動元エレメントアドレスが１００５であれば、次に、移動先エレメントアドレスが１０００以下かどうかを判定する（図３３、ステップＳ２９１）。移動先エレメントアドレスが１０００以下であれば、移動先はＴＡＵ０内の一般セル７またはＭＴＵ４に対応する。そこで、ＣＡＳ５からＤＡＵ０内の移動先エレメントアドレスへ記録媒体を移動させ（ステップＳ２９２）、処理を終了する。
【０２５４】
ステップＳ２９１において、移動先エレメントアドレスが１０００より大きければ、次に、それを１００１と比較する（ステップＳ２９３）。移動先エレメントアドレスが１００１であれば、移動先はＤＡＵ０に対応するので、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ２９４）、ＣＡＳ５のＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ２１５）、処理を終了する。
【０２５５】
ステップＳ２９３において、移動先エレメントアドレスが１００１でなければ、次に、それを１００２と比較する（ステップＳ２９５）。移動先エレメントアドレスが１００２であれば、移動先はＬＡＵに対応するので、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをセットし（ステップＳ２９６）、ＣＡＳ５のＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ２１５）、処理を終了する。
【０２５６】
ステップＳ２９５において、移動先エレメントアドレスが１００２でなければ、次に、それを１００３と比較する（ステップＳ２９７）。移動先エレメントアドレスが１００３であれば、移動先はＲＡＵに対応するので、制御データ‘ＲＡＵ−ＴＡＵ０’のフラグをセットし（ステップＳ２９８）、ＣＡＳ５のＬＵＮと移動元エレメントアドレスとをその制御データに格納して（ステップＳ２１５）、処理を終了する。
【０２５７】
ステップＳ２９７において、移動先エレメントアドレスが１００３でなければ、エラー処理を行い（ステップＳ２０６）、エラー回復処理を行って（ステップＳ２０７）、処理を終了する。
【０２５８】
次に、ＬＵＮ３の処理について説明する。ＬＵＮ３の処理は、基本的にＬＵＮ０の処理と同様である。処理が開始されると、ライブラリコントローラ１は、まずコマンドの移動元エレメントアドレスが０１００より小さいかどうかを判定する（図３４、ステップＳ３０１）。移動元エレメントアドレスが０１００より小さければ、次に、移動先エレメントアドレスが０１００より小さいかどうかを判定する（ステップＳ３０２）。そして、移動先エレメントアドレスが０１００より小さければ、そのコマンドはＬＡＵ内で閉じているので、ＬＡＵ内で記録媒体を移動させ（ステップＳ３０３）、処理を終了する。
【０２５９】
ステップＳ３０２において、移動先エレメントアドレスが０１００以上であれば、次に、それが０１００かどうかを判定する（ステップＳ３０４）。移動先エレメントアドレスが０１００であれば、このコマンドはＬＡＵからＴＡＵ０への記録媒体の移動を表す。そこで、コマンドのＬＵＮと移動元エレメントアドレスとを制御データ‘ＴＡＵ０−ＬＡＵ’に格納し（ステップＳ３０５）、そのフラグをセットして（ステップＳ３０６）、処理を終了する。
【０２６０】
ステップＳ３０４において、移動先エレメントアドレスが０１００でなければ、次に、それを０１０１と比較する（ステップＳ３０７）。移動先エレメントアドレスが０１０１であれば、このコマンドはＬＡＵからＤＡＵ０への記録媒体の移動を表す。そこで、コマンドのＬＵＮと移動元エレメントアドレスとを制御データ‘ＤＡＵ０−ＬＡＵ’に格納し（ステップＳ３０８）、そのフラグをセットして（ステップＳ３０９）、処理を終了する。
【０２６１】
ステップＳ３０７において、移動先エレメントアドレスが０１０１でなければ、次に、それを０１０２と比較する（ステップＳ３１０）。移動先エレメントアドレスが０１０２であれば、このコマンドはＬＡＵからＲＡＵへの記録媒体の移動を表す。そこで、コマンドのＬＵＮと移動元エレメントアドレスとを制御データ‘ＲＡＵ−ＬＡＵ’に格納し（ステップＳ３１１）、そのフラグをセットして（ステップＳ３１２）、処理を終了する。
【０２６２】
ステップＳ３１０において、移動先エレメントアドレスが０１０２でなければ、次に、それが０１０３以上かつ０１０Ａ以下であるかどうかを判定する（ステップＳ３１３）。移動先エレメントアドレスがこの範囲の場合は、移動先はＴＡＵ０のＭＴＵ４に対応する。そこで、図１１のアドレス対応表を参照して、ＬＡＵからＴＡＵ０のＭＴＵ４へ記録媒体を移動させ（ステップＳ３１４）、処理を終了する。
【０２６３】
ステップＳ３１３において、移動先エレメントアドレスが０１０３より小さいか、または０１０Ａより大きい場合は、対応するアドレスがＬＡＵ内に存在しないことになる。そこで、ＬＵＮ０の場合と同様のエラー処理を行い（図３６、ステップＳ３３７）、エラー回復処理を行って（ステップＳ３３８）、処理を終了する。
【０２６４】
また、ステップＳ３０１において、移動元エレメントアドレスが０１００以上であれば、次に、それが０１００かどうかを判定する（図３５、ステップＳ３２１）。そして、移動元エレメントアドレスが０１００であれば、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ３２２）。移動先エレメントアドレスが０１００より小さければ、次に、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグがセットされているかどうかを確認する（ステップＳ３２３）。
【０２６５】
そのフラグがセットされていれば、このコマンドはＴＡＵ０からＬＡＵへの記録媒体の移動を表すことが分かる。そこで、制御データ‘ＴＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ３２４）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＬＡＵ内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ３２５）、処理を終了する。
【０２６６】
また、ステップＳ３２２において移動先エレメントアドレスが０１００以上である場合、および、ステップＳ３２３においてフラグがセットされていない場合は、図３６のステップＳ３３７以降の処理を行う。
【０２６７】
ステップＳ３２１において、移動元エレメントアドレスが０１００でなければ、次に、それを０１０１と比較する（ステップＳ３２６）。そして、移動元エレメントアドレスが０１０１であれば、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ３２７）。移動先エレメントアドレスが０１００より小さければ、次に、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグがセットされているかどうかを確認する（ステップＳ３２８）。
【０２６８】
そのフラグがセットされていれば、このコマンドはＤＡＵ０からＬＡＵへの記録媒体の移動を表すことが分かる。そこで、制御データ‘ＤＡＵ０−ＬＡＵ’のフラグをリセットし（ステップＳ３２９）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＬＡＵ内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ３２５）、処理を終了する。
【０２６９】
また、ステップＳ３２７において移動先エレメントアドレスが０１００以上である場合、および、ステップＳ３２８においてフラグがセットされていない場合は、図３６のステップＳ３３７以降の処理を行う。
【０２７０】
ステップＳ３２６において、移動元エレメントアドレスが０１０１でなければ、次に、それを０１０２と比較する（図３６、ステップＳ３３１）。そして、移動元エレメントアドレスが０１０２であれば、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ３３２）。移動先エレメントアドレスが０１００より小さければ、次に、制御データ‘ＲＡＵ−ＬＡＵ’のフラグがセットされているかどうかを確認する（ステップＳ３３３）。
【０２７１】
そのフラグがセットされていれば、このコマンドはＲＡＵからＬＡＵへの記録媒体の移動を表すことが分かる。そこで、制御データ‘ＲＡＵ−ＬＡＵ’のフラグをリセットし（ステップＳ３３９）、その制御データに格納されたＬＵＮの移動元エレメントアドレスからＬＡＵ内の移動先エレメントアドレスへ記録媒体を移動させて（ステップＳ３２５）、処理を終了する。
【０２７２】
また、ステップＳ３３２において移動先エレメントアドレスが０１００以上である場合、および、ステップＳ３３３においてフラグがセットされていない場合は、ステップＳ３３７以降の処理を行う。
【０２７３】
ステップＳ３３１において、移動元エレメントアドレスが０１０２でなければ、次に、それが０１０３以上かつ０１０Ａ以下であるかどうかを判定する（ステップＳ３３４）。移動元エレメントアドレスがこの範囲の場合は、移動元はＴＡＵ０のＭＴＵ４に対応する。
【０２７４】
そこで、次に、移動先エレメントアドレスを０１００と比較する（ステップＳ３３５）。移動先エレメントアドレスが０１００より小さければ、図１１のアドレス対応表を参照して、ＴＡＵ０のＭＴＵ４からＬＡＵへ記録媒体を移動させ（ステップＳ３３６）、処理を終了する。ステップＳ３３５において、移動先エレメントアドレスが０１００以上である場合は、ステップＳ３３７以降の処理を行う。
【０２７５】
ステップＳ３３４において、移動元エレメントアドレスが０１０３より小さいか、または０１０Ａより大きい場合は、対応するアドレスがＬＡＵ内に存在しないことになるので、ステップＳ３３７以降の処理を行う。
【０２７６】
ここで、上述した第１から第４までの動作例を、図１３から図３６までのフローチャートに沿って説明すると、次のようになる。第１の動作例では、ライブラリコントローラ１は、まず、ＬＵＮ１に対するＭＯＶＥコマンドを受け取り（図１３、ステップＳ１１）、ＬＵＮ１の処理を開始する（ステップＳ１８）。
【０２７７】
このコマンドの移動元エレメントアドレスは１０００であるので、図１７のステップＳ７１の判定結果がＹＥＳとなる。また、移動先エレメントアドレスはＦＦ０２であるので、図１８のステップＳ８６の判定結果がＹＥＳとなる。そこで、ライブラリコントローラ１は、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをセットし（ステップＳ８７）、その制御データにＬＵＮ＝１と移動元エレメントアドレス１０００とを書き込む。
【０２７８】
次に、ライブラリコントローラ１は、ＬＵＮ２に対するＭＯＶＥコマンドを受け取り（ステップＳ１１）、ＬＵＮ２の処理を開始する（ステップＳ２１）。このコマンドの移動元エレメントアドレスは１００１であるので、図２７のステップＳ２０２の判定結果がＹＥＳとなる。また、移動先エレメントアドレスは０００１であるので、図２９のステップＳ２３２の判定結果がＹＥＳとなる。
【０２７９】
そこで、ライブラリコントローラ１は、制御データ‘ＤＡＵ０−ＴＡＵ０’のフラグをリセットする（ステップＳ２３３）。そして、その制御データに書き込まれたＬＵＮと移動元エレメントアドレスを参照し、ＤＡＵ０のアドレス１０００にある記録媒体をＴＡＵ０のアドレス０００１のＭＴＵ４にマウントするように、ＡＣＣ６に指示する（ステップＳ２３４）。
【０２８０】
第２の動作例では、ライブラリコントローラ１は、ＬＵＮ０に対するＭＯＶＥコマンドを受け取り（ステップＳ１１）、ＬＵＮ０の処理を開始する（ステップＳ１５）。このコマンドの移動元エレメントアドレスは０００２であるので、図１４のステップＳ３１の判定結果がＹＥＳとなる。また、移動先エレメントアドレスは０１０４であるので、ステップＳ４３の判定結果がＹＥＳとなる。
【０２８１】
そこで、ライブラリコントローラ１は、図１１のアドレス対応表を参照し、ＲＡＵのアドレス０００２にある記録媒体をＴＡＵ０のアドレス０００１のＭＴＵ４にマウントするように、ＡＣＣ６に指示する（ステップＳ４４）。
【０２８２】
第３の動作例では、ライブラリコントローラ１は、ＬＵＮ１に対するＭＯＶＥコマンドを受け取り（ステップＳ１１）、ＬＵＮ１の処理を開始する（ステップＳ１８）。このコマンドの移動元エレメントアドレスは００００であるので、図１７のステップＳ７１の判定結果がＹＥＳとなる。また、移動先エレメントアドレスはＦＦ０５であるので、図１８のステップＳ９０の判定結果がＹＥＳとなる。
【０２８３】
そこで、ライブラリコントローラ１は、ＤＡＵ０のアドレス００００にある記録媒体をＲＡＵのＣＡＳ５に移動させるように、ＡＣＣ６に指示する（ステップＳ９１）。
【０２８４】
第４の動作例では、オペレータがＤＡＵ０をオフラインにした後に、ライブラリコントローラ１がＬＵＮ１に対するＭＯＶＥコマンドを受け取ると（ステップＳ１１）、ステップＳ１７の判定結果がＮＯとなる。そこで、ライブラリコントローラ１は、Not Ready 応答をホスト計算機２１に返す（ステップＳ１４）。
【０２８５】
しかし、ＬＵＮ１以外のReady 状態の論理ユニットに対するＭＯＶＥコマンドを受け取った場合は、その論理ユニットの処理を行う（ステップＳ１５、Ｓ２１、Ｓ２４）。
【０２８６】
以上の動作例では、ＭＯＶＥコマンドの移動元エレメントアドレスと移動先エレメントアドレスのうち少なくとも一方は、実在するエレメントに対応している。これに対して、移動元エレメントアドレスと移動先エレメントアドレスがともに仮想エレメントに対応するのは、例えば、ＤＡＵ０を仮想的な仲介フレームとして、ＲＡＵからＴＡＵ０へ記録媒体を移動させるような場合である。
【０２８７】
また、ＡＣＣ６が記録媒体を保持したままエラーで停止したような場合、リカバリ処理において、ＣＡＳ５のアドレス０００１や、運搬エレメント４２のアドレスＦＦ０５、１００５を移動元エレメントアドレスに指定することもできる。さらに、これらのアドレスを移動先エレメントアドレスとして用いることもあり得る。
【０２８８】
以上説明した実施形態において、ライブラリ装置２２をフレーム単位で論理分割するものとしたが、これに限らず、任意の分割単位を論理ユニットとして定義することができる。また、図６に示した仮想エレメントをすべて用いる必要はなく、任意の仮想エレメントを削除／追加することが可能である。
【０２８９】
さらに、本発明の制御対象は必ずしもライブラリ装置に限られるものではなく、論理的に分割可能な他の装置、システム等に対しても、同様の制御方法が適用され得る。
【０２９０】
【発明の効果】
本発明によれば、ＳＣＳＩのような汎用インタフェースを利用して、ライブラリ装置を制御することが可能になる。特に、ＳＣＳＩによりライブラリ装置を制御する際に、次のような効果が得られる。
【０２９１】
２バイトを越えるアドレスを含む大規模なライブラリ装置を仮想的に分割することで、ＡＮＳＩにより定義されているＳＣＳＩ標準のMedium Changer Device のコマンドを利用した制御が可能となる。
【０２９２】
また、ＳＣＳＩのインタフェースでは、ライブラリ装置全体を１つの論理ユニットとして制御すると、ライブラリ装置の部分的なNot Ready 状態を定義することができないが、仮想的に分割することによって、論理ユニット単位でNot Ready 状態を定義できるようになる。
【０２９３】
また、ライブラリ装置のフレームを増設する場合、増設フレームを新しい論理ユニットとして定義することにより、既存エレメントのアドレスを含む記録媒体情報の変更が不要になる。
【０２９４】
さらに、エレメントのアドレスがＬＵＮ（フレーム）毎に管理されるため、モデル等のフレームの設置条件によらず一義的にアドレスを定義できる。したがって、製造時にエレメントアドレスを装置に表示することが可能になる。
【図面の簡単な説明】
【図１】本発明のライブラリ制御装置の原理図である。
【図２】複数の論理ユニットの制御処理のフローチャートである。
【図３】制御システムの構成図である。
【図４】ライブラリコントローラの構成図である。
【図５】ＳＣＳＩの媒体移動コマンドを示す図である。
【図６】仮想エレメントを示す図である。
【図７】ＬＵＮ０のエレメントアドレスを示す図である。
【図８】ＬＵＮ１のエレメントアドレスを示す図である。
【図９】ＬＵＮ２のエレメントアドレスを示す図である。
【図１０】ＬＵＮ３のエレメントアドレスを示す図である。
【図１１】データ転送エレメントのアドレス対応表を示す図である。
【図１２】制御データテーブルを示す図である。
【図１３】ライブラリコントローラの処理フローチャートである。
【図１４】ＬＵＮ０の処理フローチャート（その１）である。
【図１５】ＬＵＮ０の処理フローチャート（その２）である。
【図１６】ＬＵＮ０の処理フローチャート（その３）である。
【図１７】ＬＵＮ１の処理フローチャート（その１）である。
【図１８】ＬＵＮ１の処理フローチャート（その２）である。
【図１９】ＬＵＮ１の処理フローチャート（その３）である。
【図２０】ＬＵＮ１の処理フローチャート（その４）である。
【図２１】ＬＵＮ１の処理フローチャート（その５）である。
【図２２】ＬＵＮ１の処理フローチャート（その６）である。
【図２３】ＬＵＮ１の処理フローチャート（その７）である。
【図２４】ＬＵＮ１の処理フローチャート（その８）である。
【図２５】ＬＵＮ１の処理フローチャート（その９）である。
【図２６】ＬＵＮ１の処理フローチャート（その１０）である。
【図２７】ＬＵＮ２の処理フローチャート（その１）である。
【図２８】ＬＵＮ２の処理フローチャート（その２）である。
【図２９】ＬＵＮ２の処理フローチャート（その３）である。
【図３０】ＬＵＮ２の処理フローチャート（その４）である。
【図３１】ＬＵＮ２の処理フローチャート（その５）である。
【図３２】ＬＵＮ２の処理フローチャート（その６）である。
【図３３】ＬＵＮ２の処理フローチャート（その７）である。
【図３４】ＬＵＮ３の処理フローチャート（その１）である。
【図３５】ＬＵＮ３の処理フローチャート（その２）である。
【図３６】ＬＵＮ３の処理フローチャート（その３）である。
【図３７】ライブラリ装置の外観図である。
【図３８】ライブラリ装置の構成図である。
【符号の説明】
１  ライブラリコントローラ
２  ＤＥＥ
３  扉
４  ＭＴＵ
５  ＣＡＳ
６  ＡＣＣ
７  一般セル
１１  記憶手段
１２  制御手段
２１  ホスト計算機
２２  ライブラリ装置
３１、３４  インタフェース部
３２  処理装置
３３  メモリ
４１  仮想運搬エレメント
４２、４４  仮想投入／排出エレメント
４３  仮想データ転送エレメント
【図１】
0003998289.tif 000002
【図２】
0003998289.tif 000003
【図３】
0003998289.tif 000004
【図４】
0003998289.tif 000005
【図５】
0003998289.tif 000006
【図６】
0003998289.tif 000007
【図７】
0003998289.tif 000008
【図８】
0003998289.tif 000009
【図９】
0003998289.tif 000010
【図１０】
0003998289.tif 000011
【図１１】
0003998289.tif 000012
【図１２】
0003998289.tif 000013
【図１３】
0003998289.tif 000014
【図１４】
0003998289.tif 000015
【図１５】
0003998289.tif 000016
【図１６】
0003998289.tif 000017
【図１７】
0003998289.tif 000018
【図１８】
0003998289.tif 000019
【図１９】
0003998289.tif 000020
【図２０】
0003998289.tif 000021
【図２１】
0003998289.tif 000022
【図２２】
0003998289.tif 000023
【図２３】
0003998289.tif 000024
【図２４】
0003998289.tif 000025
【図２５】
0003998289.tif 000026
【図２６】
0003998289.tif 000027
【図２７】
0003998289.tif 000028
【図２８】
0003998289.tif 000029
【図２９】
0003998289.tif 000030
【図３０】
0003998289.tif 000031
【図３１】
0003998289.tif 000032
【図３２】
0003998289.tif 000033
【図３３】
0003998289.tif 000034
【図３４】
0003998289.tif 000035
【図３５】
0003998289.tif 000036
【図３６】
0003998289.tif 000037
【図３７】
0003998289.tif 000038
【図３８】
0003998289.tif 000039