(57)【要約】【課題】オペレーティングシステムの初期段階においてシステムファームウェアのサービス経由でデバイスにアクセスする場合、システムファームウェアのサービスは実装されているがＯＳローダの制限でアクセスできないデバイスに対し、アクセスすることが可能になるコンピュータシステムのデバイス認識方法を提供する。【解決手段】システムファームウェア０は、オペレーティングシステム２に対しデバイス構成情報を用いてＩ／Ｏデバイス１０〜１Ｎの種別情報と実装位置情報とを通知するステップと、デバイス情報テーブル０１〜０Ｎを適宜書き換えるステップと、実存しない仮想デバイスをオペレーティングシステム２に対して存在するよう認識させるステップとを有する。【選択図】      図１
2006276975.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスと、前記デバイスに対応したデバイス情報テーブルを有するシステムファームウェアと、前記デバイスへのアクセスを前記システムファームウェアに対して要求するオペレーティングシステムとを有するコンピュータシステムのデバイス認識方法であって、前記システムファームウェアは、前記オペレーティングシステムに対しデバイス構成情報を用いて前記デバイスの種別情報と実装位置情報とを通知するステップと、前記デバイス情報テーブルを適宜書き換えるステップと、実存しない仮想デバイスを前記オペレーティングシステムに対して存在するよう認識させるステップとを有することを特徴とするコンピュータシステムのデバイス認識方法。
【請求項２】
前記オペレーティングシステムから前記システムファームウェアに対して前記仮想デバイスへのアクセス要求がきたとき、前記システムファームウェアは、前記デバイス情報テーブルを参照して前記仮想デバイスと実存する前記デバイスとの対応付けを行うステップと、前記仮想デバイスに対応した実存する前記デバイスへのアクセスを実行するステップとを有することを特徴とする請求項１記載のコンピュータシステムのデバイス認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのデバイス認識方法に関し、特に、実際にはコンピュータシステムに実装していないデバイスをあたかも実装しているかのように仮想的に見せかけることにより、そのデバイスをオペレーティングシステムから使用可能にするコンピュータシステムのデバイス認識方法に関する。
【背景技術】
【０００２】
オペレーティングシステムのブートの初期段階、すなわちデバイスへのアクセスをシステムファームウェアのサービスを用いて実施する段階に於いて、データを特定のデバイスから読み込ませたい場合、システムファームウェアにその特定のデバイスへのＩ／Ｏアクセスサービスが実装されていても、ＯＳローダーの制限によりその特定のデバイスにアクセスできないと判断される可能性があった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般的に、コンピュータシステムにおけるファームウェアレイヤにおいて、システムに組み込まれているＩ／Ｏデバイス構成情報は、ファームウェア内部のデバイス情報テーブルにより抽象化されている。また、オペレーティングシステムのブートやインストールの初期段階では、Ｉ／Ｏデバイスへのアクセスはファームウェアサービスを経由して実施される。
【０００４】
この段階でのオペレーティングシステムからＩ／Ｏデバイスへのアクセスはまずオペレーティングシステムがファームウェアの提供するデバイス情報テーブルによりシステムにどのようなＩ／Ｏデバイスが接続されているか判断し、対象となる装置へのアクセスをシステムファームウェアに要求する。要求を受け取ったシステムファームウェアは自身のドライバにより要求のあったＩ／Ｏデバイスに対して実際にアクセスを実施する。
【０００５】
このように、Ｉ／Ｏデバイスへのアクセス可否はシステムファームウェアが提供する装置構成情報によりオペレーティングシステムに判断される。従って、例えば本来のＩ／Ｏデバイス装置が使用不能の状態であるが、代替デバイスが使用可能であったとしても、オペレーティングシステム自身は、アクセス不可と判断した場合、ブートもしくはインストールができないという課題がある。
【課題を解決するための手段】
【０００６】
本発明のコンピュータシステムのデバイス認識方法は、複数のデバイスと、デバイスに対応したデバイス情報テーブルを有するシステムファームウェアと、デバイスへのアクセスをシステムファームウェアに対して要求するオペレーティングシステムとを有するコンピュータシステムのデバイス認識方法であって、システムファームウェアは、オペレーティングシステムに対しデバイス構成情報を用いてデバイスの種別情報と実装位置情報とを通知するステップと、デバイス情報テーブルを適宜書き換えるステップと、実存しない仮想デバイスをオペレーティングシステムに対して存在するよう認識させるステップとを有することを特徴とする。
【０００７】
オペレーティングシステムからシステムファームウェアに対して仮想デバイスへのアクセス要求がきたとき、システムファームウェアは、デバイス情報テーブルを参照して仮想デバイスと実存するデバイスとの対応付けを行うステップと、仮想デバイスに対応した実存するデバイスへのアクセスを実行するステップとを有することを特徴とする。
【発明の効果】
【０００８】
第一の効果は、ＯＳローダーの制限により、オペレーティングシステム起動の初期段階でＩ／Ｏアクセスできるデバイスでないと判断したＩ／Ｏデバイスであっても、システムファームウェアがそのデバイスへアクセスするためのサービスを持っていた場合、オペレーティングシステム起動の初期段階に於いて、システムファームウェアによるサービスを経由してそのデバイスを利用できることである。
【０００９】
第二の効果は、ＯＳローダーが期待している物理位置にデバイスがない場合でも、別の実装位置にデバイスが実装されていれば、オペレーティングシステム起動の初期段階に於いて、システムファームウェアによるサービスを経由してそのデバイスを利用できることである。
【発明を実施するための最良の形態】
【００１０】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１１】
図１を参照すると、本発明のコンピュータシステム１００は、システムファームウェア０、Ｉ／Ｏデバイス１０〜１Ｎ、オペレーティングシステム２から成る。
【００１２】
一般的に、システムファームウェア０は、Ｉ／Ｏデバイス１０〜１Ｎにアクセスするためのドライバを内部に持っており、オペレーティングシステム２内に組み込まれているＩ／Ｏデバイス１０〜１Ｎを制御するためのドライバが動作可能になる以前の段階では、このシステムファームウェア０により提供されるサービスにより、Ｉ／Ｏデバイス１０〜１Ｎへのアクセスが可能になる。
【００１３】
また、一般的に、オペレーティングシステム２は、オペレーティングシステム２を起動するためのＯＳローダー２０を持っている。ＯＳローダー２０は、オペレーティングシステム２を起動するためのソフトウェアであり、必要に応じてＩ／Ｏデバイス１０〜１Ｎにアクセスするためにシステムファームウェア０にアクセス要求をする。このアクセスは、システムファームウェア０により提供されるサービスを用いて実現される。
【００１４】
システムファームウェア０は、コンピュータシステム１００内部に実装されているＩ／Ｏデバイス１０〜１Ｎに対応したデバイス情報テーブル０１〜０Ｎを持っている。この情報テーブル０１〜０Ｎには、装置種別情報、デバイスの物理位置情報、ファームウェアにより提供されるＩ／Ｏアクセスサービスに使われるドライバの情報、オペレーティングシステム２にデバイス構成を知らせるためのデバイス構成情報０００〜０Ｎ０がある（以下、デバイスパスと呼ぶ）。
【００１５】
デバイスパス０００〜０Ｎ０には、デバイス種別、デバイス位置情報が含まれており、オペレーティングシステム２は、これによりコンピュータシステム１００にどのようなデバイスが実装されているかを知ることができる。
【００１６】
通常、デバイス情報テーブル０１〜０Ｎは、実装されているデバイスと１対１の対応がつけられている。ここで、コンピュータシステム１００にＯＳローダー２０が起動する前にシステムファームウェア０のデバイス情報テーブル０１〜０Ｎを書き換えするか否かをオペレーターが選択できるスイッチ３を設ける。
【００１７】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【００１８】
まず、図１および図３のフローチャートを用いて、一般的な、オペレーションシステムがシステムファームウェア０の提供するサービスを用いてＩ／Ｏデバイス１０〜１Ｎにアクセスする方法を説明する。
【００１９】
オペレーティングシステム２の起動が始まると、まずシステムファームウェア０は、ＯＳローダー２０を起動する。システムファームウェア０は、デバイスパス０００〜０Ｎ０を用いてＯＳローダー２０に現在システムに実装されているＩ／Ｏデバイス１０〜１Ｎの情報を知らせる（ステップ３Ａ）。これにより、ＯＳローダー２０は、コンピュータシステム１００に何のデバイスが実装されているかを認識する（ステップ３Ｂ）。
【００２０】
ＯＳローダー２０は、対象となるデバイスがシステムに実装されている場合（ステップ３Ｃ）、そのＩ／Ｏデバイスに対してアクセスを実施する。一般的に、オペレーティングシステム２には、Ｉ／Ｏデバイスを制御するためのドライバが組み込まれており、通常そのドライバを用いてＩ／Ｏアクセスを実施するが、オペレーティングシステム２起動の初期段階においては、オペレーティングシステム２に組み込まれているドライバは動作できない。その場合、システムファームウェア０に組み込まれているサービスを用いてＩ／Ｏデバイスにアクセスする（ステップ３Ｄ）。
【００２１】
Ｉ／Ｏデバイスに対するアクセス要求を受け取ったシステムファームウェア（０）は、対応するデバイス情報テーブル０１〜０Ｎにより、ファームウェアによるＩ／Ｏアクセスサービスのためのドライバが何であるかを判断し（ステップ３Ｅ）、実際にデバイスに対するアクセスを実施する（ステップ３Ｆ）。
【００２２】
次に、図１および図４のフローチャートを用いて本発明の動作を説明する。つまり、オペレーターの指示により、システムファームウェア０が自身で保持している装置構成情報を適宜書き換えて、オペレーティングシステムから代替デバイスへのアクセスをオペレーティングシステム２から実装されているＩ／Ｏデバイスとは異なるＩ／Ｏデバイス（以下、仮想デバイス）へのアクセスにみせる方法を説明する。
【００２３】
まず、オペレーターは、あらかじめシステムファームウェア０のデバイスパスを、デバイス構成情報テーブルを書き換える選択インターフェースを持つスイッチ３でデバイスパス書き換え実施を指示する。この指示により、システムファームウェア０は、構成情報を偽装したいデバイス（例えば１Ｎ）のデバイスパス（例えば０Ｎ０）を適宜書き換える（ステップ４Ａ’）。
【００２４】
オペレーティングシステム２の起動が始まると、システムファームウェア０は、まずＯＳローダー２０を起動する。システムファームウェア０は、デバイスパス０００〜０Ｎ０を用いてＯＳローダー２０に対して現在システムに実装されているＩ／Ｏデバイス１０〜１Ｎの情報を知らせる。このとき、図４中のステップ４Ａ’により、デバイスパス（たとえば０Ｎ０）内に実装されているデバイスとは異なるデバイス情報がＯＳローダー２０に通知される。
【００２５】
例えば、図１中に示す０Ｎは、ＵＳＢ  ＦＤＤに対するデバイス構成テーブル０Ｎであるが、このテーブルのデバイスパス０Ｎ０を用いると、システムファームウェア０は、ＵＳＢ  ＦＤＤではなく、ＡＴＡＰＩ  ＦＤＤをオペレーティングシステム２に通知する（図１のＡ’、図４のステップ４Ａ）。
【００２６】
これにより、ＯＳローダー２０は、システムに何のデバイスが実装されているかを認識する。このとき、オペレーティングシステム２は、システムに仮想デバイスが実装されているものと認識する。
【００２７】
例えば、実際にはＵＳＢ  ＦＤＤが実装されているのだが、オペレーティングシステム２は、ＡＴＡＰＩ  ＦＤＤが実装されていると認識する（ステップ４Ｂ）。
【００２８】
ＯＳローダー２０は、対象となるデバイスがシステムに実装されている場合（ステップ４Ｃ）、そのＩ／Ｏデバイスに対してアクセスを実施する。
【００２９】
例えば、ＯＳローダー２０は、仮想デバイスであるＡＴＡＰＩ  ＦＤＤを見つけてシステムファームウェア０にＡＴＡＰＩ  ＦＤＤに対するＩ／Ｏアクセスを要求する（ステップ４Ｄ）。
【００３０】
Ｉ／Ｏデバイスに対するアクセス要求を受け取ったシステムファームウェア０は、対応するデバイス情報テーブル０１〜０Ｎにより、ファームウェアによるＩ／Ｏアクセスサービスのためのドライバが何であるかを判断する。また、システムファームウェア０は、デバイスに対応するドライバを見つけ、実際にデバイスにアクセスを実施する。
【００３１】
例えば、ＡＴＡＰＩ  ＦＤＤへのアクセス要求を受け取ったシステムファームウェア０は、デバイス構成テーブル０Ｎを検索して仮想デバイスであるＡＴＡＰＩ  ＦＤＤに対応する物理デバイスはＵＳＢ  ＦＤＤであると判断し（ステップ４Ｅ）、ＵＳＢ  ＦＤＤドライバにより実際にＵＳＢ  ＦＤＤにアクセスする。このとき、ＯＳローダー２０は、ＡＴＡＰＩ  ＦＤＤへのアクセスが実施できたと判断する（図１のＢ’、図４のステップ４Ｆ）。
【００３２】
以上の手続きにより、システムファームウェア０のサービスを用いて、オペレーティングシステム２は、実装されていない仮想デバイスにアクセスすることができる。
【００３３】
次に、図２および図４のフローチャートを用いて、本発明の他の実施例につぃて説明する。
【００３４】
システムファームウェアが保持するの装置構成情報に含まれる位置情報を適宜書き換えることにより、オペレーティングシステムから代替デバイスへのアクセスをオペレーティングシステムから実装されているＩ／Ｏデバイスとは異なるＩ／Ｏデバイス（以下、仮想デバイス）へのアクセスにみせる方法を説明する。
【００３５】
まず、オペレーターは、あらかじめシステムファームウェアのデバイスパス書き換え選択インターフェースを持つスイッチ３でデバイスパス書き換え実施を指示する。この指示により、システムファームウェア０は、構成情報を偽装したいデバイス（例えば１Ｎ）のデバイスパス（例えば０Ｎ０）を適宜書き換える（ステップ４Ａ’）。
【００３６】
オペレーティングシステム２の起動が始まると、システムファームウェア０は、まずＯＳローダー２０を起動する。システムファームウェア０は、デバイスパス０００〜０Ｎ０を用いてＯＳローダー２０に対して現在システムに実装されているＩ／Ｏデバイス１０〜１Ｎの情報を知らせる。このとき、図４のステップ４Ａ’により、デバイデバイスパス（たとえば０Ｎ０）内に実装されているデバイスとは異なるデバイス情報がＯＳローダー２０に通知される。
【００３７】
例えば、図２の（００）は、実装位置ＢｕｓＺ  ＳｌｏｔＷのＳＣＳＩ  コントローラに対するデバイス構成テーブルであるが、このテーブルのデバイスパス０００を用いると、システムファームウェア０は実装位置をＢｕｓＺ  ＳｌｏｔＷのＳＣＳＩでなく、ＢｕｓＸ  ＳｌｏｔＹのＳＣＳＩをオペレーティングシステム２に通知する（図２Ａ、図４ステップ４Ａ）。
【００３８】
これにより、実際にはＢｕｓＺ  ＳｌｏｔＷにＳＣＳＩコントローラが実装されているのだが、オペレーティングシステムはＢｕｓＸ  ＳｌｏｔＹにＳＣＳＩコントローラが実装されていると判断する（ステップ４Ｂ）。
【００３９】
ＯＳローダー２０は、対象となるデバイスがシステムに実装されている場合（ステップ４Ｃ）、そのＩ／Ｏデバイスに対してアクセスを実施する。
【００４０】
例えば、ＯＳローダー２０は、仮想デバイスであるＢｕｓＸ  ＳｌｏｔＹのＳＣＳＩコントローラを見つけてシステムファームウェアにこのＳＣＳＩコントローラに対するＩ／Ｏアクセスを要求する（ステップ４Ｄ）。
【００４１】
Ｉ／Ｏデバイスに対するアクセス要求を受け取ったシステムファームウェア０は、対応するデバイス情報テーブル０１〜０Ｎにより、ファームウェアによるＩ／Ｏアクセスサービスのためのドライバが何であるかを判断する。また、システムファームウェア０は、対応するドライバを見つけ、実際にデバイスにアクセスを実施する。
【００４２】
例えば、ＢｕｓＸ  ＳｌｏｔＹのＳＣＳＩコントローラへのアクセス要求を受け取ったシステムファームウェア０は、デバイス構成テーブル（００）を検索して、仮想デバイスであるＢｕｓＸ  ＳｌｏｔＹのＳＣＳＩコントローラに対応する物理デバイスは、ＢｕｓＺ  ＳｌｏｔＷのＳＣＳＩコントローラであると判断し（ステップ４Ｅ）、ＳＣＳＩドライバにより実際にＳＣＳＩコントローラにアクセスする。このとき、ＯＳローダー２０は、ＢｕｓＸ  ＳｌｏｔＹのＳＣＳＩコントローラへのアクセスが実施できたと判断する（図２Ｂ、ステップ４Ｆ）。
【００４３】
以上の手続きにより、システムファームウェア０のサービスを用いて、オペレーティングシステム２は、実際には実装されていない位置にある仮想デバイスにアクセスすることができる。
【図面の簡単な説明】
【００４４】
【図１】本発明のコンピュータシステムの概略構成ブロック図である。
【図２】本発明のコンピュータシステムの他の実施例を説明するための概略構成ブロック図である。
【図３】本発明のコンピュータシステムの動作を説明するためのフローチャートである。
【図４】本発明のコンピュータシステムの動作を説明するためのフローチャートである。
【符号の説明】
【００４５】
０    システムファームウェア
０１〜０Ｎ    デバイス情報テーブル
２    オペレーティングシステム
３    スイッチ
１０〜１Ｎ    Ｉ／Ｏデバイス
２０    ＯＳローダー
１００    コンピュータシステム
【図１】
2006276975.tif 000003
【図２】
2006276975.tif 000004
【図３】
2006276975.tif 000005
【図４】
2006276975.tif 000006