(57)【特許請求の範囲】
【請求項１】
プロセッサ（４）を有し、オペレーティング・システム（８）及び結合される１つ以上の付属デバイス（１２）についてのサポートを提供するデバイス・ドライバ（１０）を含むメモリ（６）を有する、システム（２）において、
前記メモリ（６）には、前記付属デバイス（１２）についてのデバイス構成情報およびこれにアクセスするために必要な情報を含むデバイス・テーブル・エントリ（５０）が維持される動的デバイス・テーブル（２２）がロードされて、構成メソッド（１８）または前記デバイス・ドライバ（１０）が動的デバイス・テーブル（２２）にアクセスして前記デバイス・ドライバ（１０）のデバイス・テーブル（１４）に付加して使用できるように設定されていて、
前記メモリ（６）には、前記付属デバイス（１２）が前記システム（２）に結合されると通信を行うことで前記付属デバイス（１２）の情報が得られるように設定されていて、  前記デバイス・ドライバ（１０）が、結合される前記付属デバイス（１２）についてのデバイス・テーブル・エントリ（５０）が既に前記デバイス・テーブル（１４）にあるかどうかを決定することに応じて、前記動的デバイス・テーブル（２２）からの前記エントリ（５０）を前記デバイス・テーブル（１４）に使用できるように付加して更新できるように設定されていて、
デバイス・ドライバ・インストレーション・プロセスがオペレーティング・システムにより異なっていても動作可能である、
前記システム（２）。
【請求項２】
前記デバイス・ドライバ（１０）をアンロードまたは再インストールすることなく、メモリ（６）中のオペレーティング・システム（８）を再ロードすることなく、前記システム（２）がオンラインかつ利用可能なままに構成されている、
請求項１に記載のシステム（２）。
【請求項３】
前記構成メソッド（１８）が、デバイス・テーブル（１４）がアンロードされ、次いでアンインストールされるように再起動しなければならないか、再起動が必要とされないかという、異なるオペレーティング・システム（８）に応じて、メモリ（６）中のユーザ・アドレス空間（１７）中で、または、メモリ（６）中のカーネル・アドレス空間（１６）中で実行できるようにされている、
請求項１または２に記載のシステム（２）。
【請求項４】
プロセッサ（４）を有し、オペレーティング・システム（８）及び結合される１つ以上のデバイス（１２）についてのサポートを提供するデバイス・ドライバ（１０）を含むメモリ（６）を有するシステム（２）において、構成メソッド（１８）および前記デバイス・ドライバ（１０）により実行される方法であって、
構成メソッド（１８）が、システム（２）に結合されたデバイス（１２）にアクセスして、そのデバイス（１２）についての情報を得るステップ（１０２）と、
構成メソッド（１８）が、その得られたデバイス（１２）についての情報を、デバイス・ドライバ（１０）に提供するステップ（１０４）と、
デバイス・ドライバ（１０）が、提供されたデバイス（１２）についての情報に応答して、デバイス・テーブル（１４）がそのデバイス（１２）をサポートするかどうかを決定するステップ（１０６）と、
もしデバイス・ドライバ（１０）が、そのデバイス（１２）をサポートしなければ、デバイス・ドライバ（１０）が、そのデバイス（１２）がサポートされないという指示を構成メソッド（１８）に返すステップ（１１０）と、
構成メソッド（１８）が、メモリ（６）中にロードされた動的デバイス・テーブル（２２）にアクセスしてデバイス構成情報を得るステップ（１１２）と、
構成メソッド（１８）が、動的デバイス・テーブル（２２）からのデバイス構成情報をデバイス・ドライバ（１０）に提供するステップ（１１４）と、
デバイス・ドライバ（１０）または構成メソッド（１８）が、動的デバイス・テーブル（２２）からのデバイス構成情報をデバイス・テーブル（１４）に付加し、静的および動的デバイス情報双方を有する拡張されたデバイス・テーブル（１４）にするステップ（１１６）とを有し、
デバイス・ドライバ・インストレーション・プロセスが、オペレーティング・システム（８）により異なっていても動作可能である、方法。
【請求項５】
さらなるステップとして、
もし修正または拡張されたデバイス・テーブル（１４）がデバイス（１２）についての情報を含んでいれば、デバイス・ドライバ（１０）が、そのデバイス・テーブル（１４）に付加されたデバイス構成情報を使用してデバイスを構成しこれにアクセスするステップ（１１８、１２０）と、
そうではなく、もしデバイス（１２）が依然サポ−トされなければ、デバイスがサポートされないことを示すエラーを返すステップ（１１８、１２２）とを有する、
請求項４に記載の方法。
【請求項６】
コンピュータ・システムにロードされ、その上で実行される場合に、請求項４または５に記載の方法を前記コンピュータ・システムに実行させるコンピュータ・プログラム・コードを含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス・テーブルからの情報を使用してデバイスを構成するための方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
ランタイム中またはシステム初期化中にデバイスが追加される場合に生じ得る、インタフェースを介してシステムに接続されたデバイスが検出される場合に、ストレージまたは他の入出力（Ｉ／Ｏ）デバイスのような検出されたデバイスをロードされたデバイス・ドライバがサポートできるかどうかを構成メソッド・プログラムが決定する。構成メソッドは、デバイスのベンダおよび製品識別子を決定するために、標準（例えば、スモール・コンピュータ・システム・インタフェース（ＳＣＳＩ））問い合わせコマンドをデバイスに発行する。構成メソッドは、テープまたは光デバイスについての媒体型式を決定するためのモード・センス・コマンド、ディスク・デバイスについてのＬＵＮ／ポート・アフィニティを決定するためのレポート・ターゲット・グループ・コマンド、媒体交換デバイスについての要素位置を決定するための要素ステータス読み取りコマンド等の付加的なコマンドを記憶装置に発行することもできる。デバイス・ドライバにより使用されるデバイス・テーブルが、検出されたデバイスについての情報を含んでいれば、そのデバイス・ドライバは、そのデバイスを構成および使用することができる。そうではなく、もしデバイス・テーブルが、検出されたデバイスについての情報を提供しないのであれば、新しいデバイス・ドライバがインストールされなければならない。デバイス・ドライバ・インストレーション・プロセスは、オペレーティング・システムにより異なる。オペレーティング・システムによっては、デバイスを使用するために、システムは、新しいデバイス・ドライバが検出された新しいデバイス・タイプについての更新されたデバイス・テーブルと共にカーネル中にロードされてデバイスをシステムにとって利用可能にするように現在のデバイス・ドライバおよびデバイス・テーブルがアンロードされ、次いでアンインストールされるように再起動しなければならない。再起動が必要とされない他のオペレーティング・システムにおいて、デバイス・ドライバおよびデバイス・テーブルは依然としてアンロードされており、従って、新しいデバイス・ドライバおよび検出されたデバイスをサポートするデバイス・テーブルがロードされて使用され得る。再起動有りまたは無しでのデバイス・ドライバのアンロードは、システム・オペレーションを中断し、一日２４時間・週７日間利用可能という目標の妨げとなる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
背景技術の課題を解決することにある。
【課題を解決するための手段】
【０００４】
デバイス・テーブルからの情報を使用してデバイスを構成するための方法、システム、およびプログラムが提供される。デバイス情報は、システムに結合されたデバイスについて得られる。デバイス情報は、システム中で実行されているデバイス・ドライバに提供される。デバイス・ドライバは、デバイス情報により識別されたデバイスをそのデバイス・ドライバがサポートしないという決定に応答してメソッドを呼び出す。メソッドは、デバイス・テーブルからのデバイス構成情報をデバイス・ドライバに提供する。デバイス・ドライバは、デバイス・テーブル中のデバイス構成情報を使用して、システム中で使用するためにデバイスを構成する。
【発明を実施するための最良の形態】
【０００５】
本発明の好ましい実施形態を、単に例として、添付図面に関連して説明する。
【０００６】
図１は、プロセッサ４およびメモリ６を含むシステム２を有する計算環境を例示する。メモリ６は、オペレーティング・システム８および１つ以上の付属デバイス１２についてのサポートを提供するデバイス・ドライバ１０を含む。デバイス・ドライバ１０は、このデバイス１０がアクセス可能なデバイス・テーブル１４中にそのデバイス構成が維持されるデバイスにアクセスすることができる。デバイス・ドライバ１０およびデバイス・テーブル１４は、カーネル・アドレス空間１６中にロードされて実行される。図１において、デバイス・テーブル１４は、デバイス・ドライバ１０内の構成要素として示してある。別の実施形態において、デバイス・テーブル１４は、デバイス・ドライバ１０の外部に位置し得る。アプリケーション・プロセスおよびスレッドは、カーネル空間デバイス・ドライバ１０を介してデバイスと通信し得る。
【０００７】
デバイスを構成し、利用可能なデバイス１２についての情報をデバイス・ドライバ１０に提供するために、構成メソッド１８が呼び出される。構成メソッド１８は、オペレーティング・システム要件に応じて、ユーザ・アドレス空間１７中で、または別の実施形態においては、カーネル・アドレス空間１６中で実行できる。構成メソッド１８は、付属デバイス１２を構成するために呼び出される。デバイス１２のベンダは、デバイスについてのデバイス構成情報を含む動的デバイス・テーブル２２を含むデバイス・パッケージ２０を提供できる。構成メソッド１８は、動的デバイス・テーブル２２からのデバイス構成情報をデバイス・ドライバ１０に付加できる。デバイス・ドライバ１０は次に、デバイス１２を構成しこれと通信するために、動的デバイス・テーブル２２中のデバイス構成情報を使用することができる。
【０００８】
図２は、デバイス・テーブル１４および動的デバイス・テーブル２２中に維持されるデバイス・テーブル・エントリ５０の実施形態を例示する。１つのデバイス・テーブル・エントリ５０は、ベンダＩＤ、製品ＩＤ、およびワールド・ワイド・ネームもしくはそれらのいずれか、ならびにデバイス１２を構成しこれにアクセスするために必要な情報を含むデバイス構成情報５４のような、デバイス１２のデバイス識別子５２を含む。デバイス構成情報５４は、以下のものを含み得る。すなわち、ストレージ媒体型式、例えば、テープ型式、光ディスク・ドライブ型式等、論理装置番号（ＬＵＮ）／ポート・アフィニティ、要素位置等；およびストレージ媒体型式を決定しデバイス操作の特性を設定するＳＣＳＩコマンド；指定されたコマンドを使用して取得されたデータの解釈においてデバイス・ドライバ１０を支援するためのオフセット、長さおよびその他の情報等、である。
【０００９】
図３は、デバイス・パッケージ２０中の新しいデバイス構成情報を提供するための操作の実施形態を例示する。ユーザは（ブロック８０において）、新しいデバイス１２のためのデバイス構成情報を有する動的デバイス・テーブル２２を含むデバイス・パッケージ２０をインストールすることができる。デバイス・パッケージ２０は、実行可能ファイルを含み得る。デバイス・パッケージ２０の呼び出しに応答して、動的デバイス・テーブル２２は（ブロック８２において）、パッケージ２０からメモリ６中にロードされ、そこで構成メソッド１８が動的デバイス・テーブル２２にアクセスできる。
【００１０】
図４は、システム２に結合されたデバイス１２を構成するために構成メソッド１８およびデバイス・ドライバ１０により実行される操作の実施形態を例示する。デバイス１２は、物理的インタフェース、ケーブル、ワイヤまたは無線通信を介してシステム２に結合され得る。制御は、ブロック１００において開始し、構成メソッド１８が呼び出される。構成メソッド１８は、ランタイム中、システム初期化中、システム起動中におけるシステム２へのデバイス１２の結合を検出してすぐに、あるいはユーザまたはシステム２の呼び出しに応答して呼び出され得る。構成メソッド１８は（ブロック１０２において）、デバイスについてのデバイス情報を得るために、システム２に結合されたデバイス１２にアクセスする。構成メソッド１８は、ベンダおよび製品識別子を決定するために標準（例えば、ＳＣＳＩ）コマンドを発行することによりデバイス情報を得ることができる。別の実施形態において、構成メソッド１８は、デバイスに直接アクセスすることなく、システム２中のデータ構造または何か他の位置からのデバイス情報にアクセスできる。構成メソッドは、媒体型式（例えば、モード・センス・コマンド）、テープまたは光デバイスについてのＬＵＮ／ポート・アフィニティ（例えば、レポート・ターゲット・グループ・コマンド）等を決定するための付加的コマンドをストレージ・デバイスに発行することもできる。
【００１１】
構成メソッド１８は（ブロック１０４において）、得られたデバイス情報をデバイス・ドライバ１０に提供して、デバイス１２を構成する。デバイス識別情報に応答して、デバイス・ドライバ１０は（ブロック１０６において）、デバイス・ドライバ・テーブル１４が、デバイス情報により識別されたデバイス１２をサポートするかどうかを決定する。１つの実施形態において、デバイス・ドライバ１０は、もし検出されたデバイスについてのデバイス特定情報を提供するデバイス・テーブル１４中にエントリ５０があれば、検出されたデバイスをサポートし得る。デバイス・テーブル１４は、デバイス・ドライバ１０の初期パッケージからの静的デバイス情報を含み得る。デバイス・ドライバ１０が動的デバイス・テーブル２２からの構成情報によって更新された後、ブロック１０６において処理されたデバイス・ドライバ・テーブル１４は、静的および動的デバイス・テーブル２２情報双方を有する。もし（ブロック１０６において）デバイス・ドライバ１０がデバイス１２をサポートすれば、デバイス・ドライバ１０は（ブロック１０８において）、そのデバイス１２を要求し、構成する。そうではなく、もしデバイス・ドライバ１０が、識別されたデバイス１２をサポートしなければ、すなわち、デバイス・ドライバ１０により使用されるデバイス・テーブル１４が、デバイスについての製品データを含まなければ、デバイス・ドライバ１０は（ブロック１１０において）、検出されたデバイス１２がサポートされないという指示を構成メソッド１８へ返す。
【００１２】
構成メソッド１８は（ブロック１１２において）、メモリ６中にロードされた任意の動的デバイス・テーブル２２にアクセスしてデバイス構成情報を得る。構成メソッド１８は（ブロック１１４において）、動的デバイス・テーブル２２からのデバイス構成情報をデバイス・ドライバ１０に提供する。デバイス・ドライバ１０（または構成メソッド１８）は（ブロック１１６において）、動的デバイス・テーブル２２からのデバイス構成情報をデバイス・テーブル１４に付加し、静的および動的デバイス情報双方を有する拡張されたデバイス・テーブル１４という結果になる。１つの実施形態において、構成メソッド１８は、動的デバイス・テーブル２２からのデバイス・テーブル・エントリ５０を、カーネル・アドレス空間１６中のデバイス・ドライバ１０により使用されるデバイス・テーブル１４に提供し得る。もし（ブロック１１８において）修正または拡張されたデバイス・ドライバ・テーブル１４がデバイス１２についてのデバイス構成情報を含んでいれば、デバイス・ドライバ１０は（ブロック１２０において）、デバイス・テーブル１４に付加されたデバイス構成情報を使用してデバイスを構成しこれにアクセスする。そうではなく、もしデバイスが依然サポートされなければ、デバイスがサポートされないことを示すエラーが（ブロック１２２において）返される。
【００１３】
ある特定の実施形態において、図４に関して説明された操作は、オペレーティング・システム８を再起動することなく、またはデバイス・ドライバをアンロードし新しいデバイス・ドライバを再ロードすることなく、ランタイム環境において実行され、その結果、システム２はオンラインかつ利用可能なままであると同時に、カーネル・アドレス空間１６中のデバイス・テーブル１４は、新しいデバイスについてのデバイス構成情報によって更新される。説明された実施形態は、デバイス・ドライバを再インストールする必要なくデバイス・ドライバのデバイス・テーブル１４の更新を可能にする技法を説明している。ある特定の実施形態において、システム２は、２４−７オペラビリティ、すなわち、一日２４時間週７日間利用可能という目標の達成を助けるために、デバイス・テーブル１４の更新時に使用可能なままであり得る。
【００１４】
付加的な実施形態の詳細
説明された操作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを作り出すための標準のプログラミング手法またはエンジニアリング手法あるいはその両方を使用して、方法、装置または製品として実施できる。本明細書において使用される用語「製品（article of manufacture）」は、有形（tangible）媒体中に実装されるコードまたはロジックを意味し、そのような有形媒体は、ハードウェア・ロジック（例えば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）または磁気ストレージ媒体（例えば、ハードディスク・ドライブ、フレキシブル・ディスク、テープ等）、光ストレージ（ＣＤ−ＲＯＭ、光ディスク等）、揮発性および不揮発性メモリ・デバイス（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能ロジック等）のようなコンピュータ可読媒体を含み得る。コンピュータ可読媒体中のコードは、プロセッサによりアクセスおよび実行される。コードまたはロジックが符号化される有形媒体は、空間または光ファイバ、銅線等の伝送媒体中を伝播する伝送信号も含み得る。コードまたはロジックが符号化される伝送信号は、無線信号、衛星伝送、電波、赤外信号、Ｂｌｕｅｔｏｏｔｈ（Ｒ）等をさらに含み得る。コードまたはロジックが符号化される伝送信号は、送信局により送信され、受信局により受信されることができ、伝送信号中で符号化されるコードまたはロジックは、受信および送信局またはデバイスにおいてハードウェアまたはコンピュータ可読媒体中において復号および格納され得る。加えて、「製品」は、コードが組み入れられ、処理され、実行されるハードウェアとソフトウェア構成要素との組み合わせを含み得る。当然、当業者は、本発明の範囲を逸脱することなくこの構成に対し多くの変更をなし得ること、および製品が技術的に知られたどのような情報坦持媒体をも含み得ることを理解するであろう。
【００１５】
互いに通信状態にあるデバイスは、特に明記してあるものを除いて、互いに連続的通信状態にある必要はない。加えて、互いに通信状態にあるデバイスは、１つ以上の仲介物を介して直接的または間接的に通信し得る。
【００１６】
いつかの構成要素が互いに通信状態にある実施形態の説明は、すべてのそのような構成要素が必要とされることを意味するものではない。それどころか、本発明の多種多様な考え得る実施形態を説明するために、様々な任意の構成要素が説明される。
【００１７】
さらに、プロセス・ステップ、方法ステップ、アルゴリズム等が順次説明され得るが、そのようなプロセス、方法およびアルゴリズムは、交互に動作するように構成され得る。言い換えれば、記載され得るステップのどのようなシーケンスまたは順序も、ステップがその順序で実行される要件を必ずしも示すわけではない。本明細書において説明されたプロセスのステップは、実用的などのような順序でも実行され得る。さらに、ステップによっては、同時に実行され得る。
【００１８】
本明細書において単一のデバイスまたは製品が説明される場合、単一のデバイス／製品の代わりに２つ以上のデバイス／製品（それらが協働するかどうかにかかわらず）が使用され得ることが直ちに明らかになる。同様に、本明細書において２つ以上のデバイスまたは製品（それらが協働するかどうかにかかわらず）が説明される場合、２つ以上のデバイスまたは製品の代わりに単一のデバイス／製品が使用され得ることが直ちに明らかになる。
【００１９】
デバイスの機能性または特徴あるいはその両方は、そのような機能性／特徴を有すると明示的に説明されていない２つ以上の他のデバイスにより二者択一的に具現化され得る。従って、本発明の他の実施形態は、デバイス自体を含む必要がない。
【００２０】
図３および図４において、ある特定の操作が、構成メソッドまたはデバイス・ドライバにより実行されるとして説明された。別の実施形態において、構成メソッドにより実行されるとして説明されたある特定の操作は、デバイス・ドライバにより実行されてもよく、デバイス・ドライバにより実行されると説明された操作は、構成メソッドにより実行されてもよい。
【図面の簡単な説明】
【００２１】
【図１】ストレージ計算環境の実施形態を例示する。
【図２】デバイス・テーブル・エントリの実施形態を例示する。
【図３】デバイス・パッケージをインストールする操作の実施形態を例示する。
【図４】デバイス・ドライバにより使用されるデバイス・テーブルを更新する操作の実施形態を例示する。
【図１】
0005063587.tif 000002
【図２】
0005063587.tif 000003
【図３】
0005063587.tif 000004
【図４】
0005063587.tif 000005