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