(57)【特許請求の範囲】
【請求項１】
デバイスの制御が可能な基本プログラムまたはオペレーティング・システムで動作し第１のデバイス・ドライバを含むコンピュータにおいて、該コンピュータに接続され前記第１のデバイス・ドライバで動作する第１の動作モードと第２のデバイス・ドライバで動作する第２の動作モードとを有するデバイス・コントローラを設定する方法であって、
前記デバイス・コントローラを前記基本プログラムの動作環境下で前記第１の動作モードに設定するステップと、
前記オペレーティング・システムの動作環境下で前記第２のデバイス・ドライバの存否を検査するステップと、
前記第２のデバイス・ドライバが検出されたときに前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行して前記デバイス・コントローラを前記第２の動作モードに設定するステップと
を有する設定方法。
【請求項２】
前記第２の動作モードに設定するステップに続いて前記オペレーティング・システムの動作環境に移行するステップと、
前記オペレーティング・システムの動作環境下で前記デバイス・コントローラが前記第２の動作モードで動作するように前記第２のデバイス・ドライバを設定するステップとを有する請求項１記載の設定方法。
【請求項３】
前記第２のデバイス・ドライバを設定するステップがプラグ・アンド・プレイを実行するステップを含み、前記検査するステップを前記プラグ・アンド・プレイを実行するステップの前に行う請求項２記載の設定方法。
【請求項４】
前記第２のデバイス・ドライバが検出されないときに、前記デバイス・コントローラが前記オペレーティング・システムの動作環境下で前記第１のデバイス・ドライバによる動作を継続する請求項１記載の設定方法。
【請求項５】
前記デバイス・コントローラが、前記コンピュータのブート・デバイスのインターフェースである請求項１記載の設定方法。
【請求項６】
前記第２の動作モードに設定するステップが、前記デバイス・コントローラの動作が停止していることを確認するステップを含む請求項１記載の設定方法。
【請求項７】
第１の動作モードまたは第２の動作モードで動作するデバイス・コントローラが搭載されたコンピュータであって、
ＣＰＵと、
前記ＣＰＵが実行するプログラムを記憶するメモリと、
前記コンピュータの起動時に前記デバイス・コントローラを前記第１の動作モードに設定し、前記オペレーティング・システムからの指示に応答して前記デバイス・コントローラを前記第２の動作モードに設定する機能を前記コンピュータに実現させる基本プログラムを格納した第１の不揮発性記録媒体と、
前記第１の動作モードに対応するデバイス・ドライバを含む複数のデバイス・ドライバが登録されたオペレーティング・システムと、前記オペレーティング・システムの動作環境下で前記第２の動作モードに対応するデバイス・ドライバを検出して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記基本プログラムに前記デバイス・コントローラを前記第２の動作モードに設定させるように指示する機能を前記コンピュータに実現させる選択プログラムを格納した第２の不揮発性記録媒体と
を有するコンピュータ。
【請求項８】
前記デバイス・コントローラがブート・デバイスのインターフェースである請求項７記載のコンピュータ。
【請求項９】
前記デバイス・コントローラがスキャン・コード・モードおよびキー・コード・モードで動作するキーボード・マウス・コントローラである請求項７記載のコンピュータ。
【請求項１０】
前記第１の不揮発性記録媒体が、前記デバイス・コントローラの動作を制御する制御プログラムを格納し、前記基本プログラムは前記制御プログラムが前記デバイス・コントローラを動作させていないことを確認して前記デバイス・コントローラを第２の動作モードに設定する請求項７記載のコンピュータ。
【請求項１１】
前記第２の不揮発性記録媒体が、プラグ・アンド・プレイで前記デバイス・コントローラが前記第２の動作モードで動作するように前記デバイス・ドライバを設定するＰｎＰプログラムと、前記ＣＰＵに前記ＰｎＰプログラムより先に前記選択プログラムを実行させるレジストリ情報を格納する請求項７記載のコンピュータ。
【請求項１２】
第１の動作モードまたは第２の動作モードで動作するデバイス・コントローラを搭載し前記第１の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作することが可能なコンピュータにおいて、前記デバイス・コントローラの設定を前記コンピュータに実行させる基本プログラムであって、
前記デバイス・コントローラを前記第１の動作モードに設定するステップと、
前記デバイス・コントローラを前記第１の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと、
前記オペレーティング・システムの動作環境下で前記第２の動作モードに対応するデバイス・ドライバが検出されたことに応答して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記デバイス・コントローラを前記第２の動作モードに設定するステップと
を前記コンピュータに実行させるプログラム。
【請求項１３】
前記基本プログラムがシングル・タスクで動作する請求項１２記載のプログラム。
【請求項１４】
前記基本プログラムがＢＩＯＳである請求項１２記載のプログラム。
【請求項１５】
前記基本プログラムがハイパーバイザまたはホスト・オペレーティング・システムである請求項１２記載のプログラム。
【請求項１６】
前記第１の動作モードに設定するステップを、前記コンピュータが起動して前記オペレーティング・システムに制御が移行する前に実行する請求項１２記載のプログラム。
【請求項１７】
前記第２の動作モードに設定するステップが、ＳＭＩハンドラを実行するステップを含む請求項１２記載のプログラム。
【請求項１８】
前記デバイス・コントローラが磁気ディスク装置のインターフェースであり、前記第２の動作モードに設定するステップがＩＮＴ１３ｈハンドラの実行状態を確認するステップを含む請求項１７記載のプログラム。
【請求項１９】
前記第２の動作モードがＡＨＣＩ転送モードに対応する請求項１８記載のプログラム。
【請求項２０】
前記基本プログラムは前記デバイス・コントローラを前記第２の動作モードに設定するときに、不揮発性メモリに格納された前記デバイス・コントローラの設定情報を前記第１の動作モードに維持する請求項１２記載のプログラム。
【請求項２１】
第１の動作モードまたは第２の動作モードで動作するデバイス・コントローラを搭載し該デバイス・コントローラの制御が可能な基本プログラムまたは前記第１の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作するコンピュータにおいて、前記オペレーティング・システムの動作環境下で前記コンピュータに前記デバイス・コントローラの設定をさせるプログラムであって、
前記基本プログラムにより設定された第１の動作モードで前記デバイス・コントローラが動作した後に前記オペレーティング・システムの動作環境下で前記第２の動作モードに対応するデバイス・ドライバの存否を検査するステップと、
前記第２の動作モードに対応するデバイス・ドライバが検出されたとき前記基本プログラムに前記デバイス・コントローラを前記第２の動作モードに設定させるために前記コンピュータの制御を前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行するステップと
を前記コンピュータに実行させるプログラム。
【請求項２２】
前記基本プログラムに移行するステップがＳＭＩを発行するステップを含む請求項２１記載のプログラム。
【請求項２３】
前記検査するステップを、ブート・デバイスのデバイス・コントローラに対応するデバイス・ドライバをメモリにロードした後に実行する請求項２１記載のプログラム。
【請求項２４】
前記検査するステップを、前記オペレーティング・システムがプラグ・アンド・プレイでデバイス・ドライバの設定する前に実行する請求項２１記載のプログラム。
【請求項２５】
第１の動作モードまたは第２の動作モードで動作するデバイス・コントローラを搭載し、前記第１の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作することが可能なコンピュータにおいて、前記デバイス・コントローラの設定を前記コンピュータに実行させる基本プログラムを格納したコンピュータの読み取りが可能な記憶媒体であって、前記基本プログラムが、
前記デバイス・コントローラを前記第１の動作モードに設定するステップと、
前記デバイス・コントローラを前記第１の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと、
前記オペレーティング・システムの動作環境下で前記第２の動作モードに対応するデバイス・ドライバが検出されたことに応答して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記デバイス・コントローラを前記第２の動作モードに設定するステップと
を前記コンピュータに実行させる記憶媒体。
【請求項２６】
第１の動作モードまたは第２の動作モードで動作するデバイス・コントローラを搭載し該デバイス・コントローラの制御が可能な基本プログラムまたは前記第１の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作するコンピュータにおいて、前記オペレーティング・システムの動作環境下で前記コンピュータに前記デバイス・コントローラの設定をさせるプログラムを格納したコンピュータの読み取りが可能な記憶媒体であって、前記プログラムが、
前記基本プログラムにより設定された第１の動作モードで前記デバイス・コントローラが動作した後に前記オペレーティング・システムの動作環境下で前記第２の動作モードに対応するデバイス・ドライバの存否を検査するステップと、
前記第２の動作モードに対応するデバイス・ドライバが検出されたとき前記基本プログラムに前記デバイス・コントローラを前記第２の動作モードに設定させるために前記コンピュータの制御を前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行するステップと
を前記コンピュータに実行させる記憶媒体。
【請求項２７】
第１の動作モードまたは第２の動作モードで動作するデバイス・コントローラが搭載され前記第１の動作モードに対応するデバイス・ドライバを含むコンピュータであって、
ＣＰＵと
前記ＣＰＵが実行するプログラムを記憶するメモリと、
前記コンピュータに前記デバイス・コントローラの設定をさせる基本プログラムを格納する不揮発性記憶媒体とを有し、
前記基本プログラムが、
前記デバイス・コントローラを前記第１の動作モードに設定するステップと、
前記デバイス・コントローラを前記第１の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと、
前記オペレーティング・システムの動作環境下で前記第２の動作モードに対応するデバイス・ドライバが検出されたことに応答して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記デバイス・コントローラを前記第２の動作モードに設定するステップと、
前記第２の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと
を前記コンピュータに実行させるコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムに導入されている複数の動作モードで動作可能なデバイス・コントローラを設定する技術に関し、さらにはデバイス・ドライバの有無に応じて適切にデバイス・コントローラを設定する技術に関する。
【背景技術】
【０００２】
パーソナル・コンピュータ・システム（以後ＰＣシステムという）で、当該システムを構成するデバイスを変更する際に、当該デバイスの接続を自動的に検出して、デバイス・コントローラに最適なシステム・リソースおよびデバイス・ドライバなどを自動的に設定するプラグ・アンド・プレイ（以後ＰｎＰという。）と呼ばれる技術が、既に一般的なものになっている。ＰｎＰは、ハードウェアと、ＢＩＯＳ（Basic Input/Output System）と、オペレーティング・システム（以後ＯＳという）とが、米国マイクロソフト社および米国インテル社によって定められた要求仕様に対応することによって実現される。
【０００３】
ＰＣシステムには、ブート・デバイスといわれる周辺機器が搭載されている。ブート・デバイスは、ＰＣシステムを起動するために最低限必要なデバイス（周辺機器）であり、オペレーティング・システムをロードする前に初期化しなければならない。ブート・デバイスは、ＯＳがインストールされた磁気ディスク装置、ディスプレイ、およびキーボードなどを含む。ブート・デバイスの構成に関しては、ＰＣシステムの起動時にＢＩＯＳのＰｎＰ機能が実行されることによって各ブート・デバイスが自動的に認識され、システム・リソースに関わる設定が行われる。その後でＯＳが起動され、ＢＩＯＳによって認識されたブート・デバイスに対応したデバイス・ドライバ（以後これを初期ドライバという）がメモリにロードされ、ブート・デバイスの使用が可能となる。そこからさらに、ＰｎＰに関わるプロセスが実行されることによって、ブート・デバイス以外の装置についても自動的に認識され、適切なデバイス・ドライバがシステム内に読み込まれ設定される。
【０００４】
デバイスの設定の方法にかかる技術がいくつか開示されている。たとえば特許文献１では、ＰＣシステムの構成に応じてＢＩＯＳのハードウェア制御パラメータを自動的に変更する技術が開示されている。特許文献２では、デバイスの設定に使用されるシステム管理モード（ＳＭＭ）用のデータを管理する方法が開示されている。
【特許文献１】特開平８−４４５７１号公報
【特許文献２】特表２０００−５１２４０６号公報
【０００５】
一方、ＰＣのハードウェアについては、常に技術改良が行われ、より高性能かつ高機能なデバイスおよびデバイス規格の開発が続いている。たとえば、磁気ディスク装置からデータの転送を行う際の方式の一つであるＰＣＩバスマスタ転送方式は、磁気ディスク装置からメイン・メモリへデータを直接入出力させることにより、ＣＰＵによる制御を必要としないため現在実行中のタスクなどの処理が妨げられることがないという長所がある。このため、ＰＣのデータ転送において最も一般的な転送方式の一つになっている。
【０００６】
しかし、このＰＣＩバスマスタ転送方式でデータの転送速度を高速化するためには、磁気ディスク装置とマザー・ボードとの間を接続するケーブルの芯数を増やす必要がある。同方式で最も速い１３３ＭＢ／秒のデータ転送速度を有するインターフェース規格であるＵｌｔｒａＡＴＡ／１３３では、８０芯のフラット・ケーブルにより磁気ディスク装置とマザー・ボードとの間を接続する。ＰＣシステムの小型軽量化への要求、および設計の自由度への要求などから、これ以上ケーブルの芯数を増やすことは困難である。また、ケーブルの芯数を増やさずにデータ転送速度を高速化することも困難である。
【０００７】
そこで、磁気ディスク装置の新しいインターフェース規格であるシリアルＡＴＡが制定され普及してきている。磁気ディスク装置とマザー・ボードとの間を接続するケーブルの芯数が、ＵｌｔｒａＡＴＡ／１３３では８０芯であるのに対して、シリアルＡＴＡでは７芯が採用されている。シリアルＡＴＡは、ＵｌｔｒａＡＴＡに比べてケーブルが大幅に細くなるため、ＰＣの小型軽量化への要求および設計の自由度への要求に適応できる。シリアルＡＴＡでは、ＵｌｔｒａＡＴＡ／１３３を含む従来のＩＤＥと互換性のある動作モードの他に、ＡＨＣＩ（Advanced Host Controller Interface）と呼ばれる高速・高機能な転送モードが規定されている。最新規格であるシリアルＡＴＡ２のＡＨＣＩモードでは３００ＭＢ／秒のデータ転送速度が実用化されている。さらに、１つのインターフェースに接続可能な磁気ディスク装置の台数の増加、磁気ディスク装置に対するアクセス時のコマンド処理を効率化するＮＣＱ（Native Command Queuing）への対応、電源を投入したままでケーブル・コネクタの着脱が可能なホット・プラグへの対応などのように、性能および機能の向上が図られている。なお、ＡＨＣＩ転送モードのデータ転送速度は、２００７年までには６００ＭＢ／秒にまで高速化される予定になっている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、磁気ディスク装置を例にして述べたように次々と登場するハードウェアの新しい規格に対して、ＯＳによるデバイス・ドライバがすぐに対応していないといった状況がある。たとえば、米国マイクロソフト社の現行のＯＳであるＷｉｎｄｏｗｓ  ＸＰ（登録商標）は、前述のＡＨＣＩ転送モードに対して正式には対応していない。同規格に対しては、２００６年末までに発売される同社の次期ＯＳであるＷｉｎｄｏｗｓ  Ｖｉｓｔａ（登録商標）から正式対応する予定となっている。その他のＯＳ、たとえばＬｉｎｕｘ（登録商標）などについては、新規格に対しては各ＯＳが別個に対応する必要があり、Ｗｉｎｄｏｗｓ（登録商標）シリーズの新規格への対応とは時期が異なる。またＯＳが新規格へ対応しない場合もある。
【０００９】
ＷｉｎｄｏｗｓシリーズのＯＳの場合、ＢＩＯＳによりブート・デバイスが認識されて新しい動作モードに設定されても、ＯＳに制御が移行したときに当該動作モードに対応する初期ドライバが存在しない場合にはＯＳを正常に起動することができない。ブート段階では、ＢＩＯＳはＯＳが新しい動作モードのデバイスに対応したデバイス・ドライバを含んでいるか否かを認識することはできない。また、ブート・デバイスはＯＳがロードされる前に初期化される必要があるため、ブート段階がＢＩＯＳからＯＳに移行したあとに、ＯＳが自ら含んでいるデバイス・ドライバに応じてデバイスの設定を変更することもできない。
【００１０】
従って、ブート・デバイスが新しい動作モードに設定され、かつＯＳが当該動作モードに対応していない場合は、ＰＣシステムをブートできないことになる。このときＰＣシステムはブートの途中で停止し、ディスプレイはＷｉｎｄｏｗｓで重大なシステム・エラーが発生したときの表示状態であるブルー・スクリーンになる。このような場合でもブルー・スクリーンに移行する前にあらかじめデバイス・ドライバの存在を調べ、起動時にファンクション・キーのＦ６を押して、当該ブート・デバイスに対応した初期ドライバを手動で組み込むことでブートすることができる。しかし、ＰＣシステムの一般的なユーザは、このような操作についての知識が十分ではなく、自力で適切な初期ドライバを導入することは困難である。
【００１１】
そのような事態が発生することを回避するために、通常新しいデバイスを採用するときは、デバイス・コントローラを新しい規格と従来の規格との両方に対応できるように設計して、従来のデバイス・ドライバでも動作できるようにしておくのが一般的である。そして、ＢＩＯＳによるデバイスの設定を従来の規格に対応するようにしておけば、ＯＳはこれに対応した初期ドライバをロードしてブートを完了することができる。しかしこれではデバイスが新しい規格に対応して、かつＯＳもそれに対応した初期ドライバを導入していたとしても、デバイスは従来の性能で動作することになってしまう。たとえば、前述のシリアルＡＴＡ２に対応した磁気ディスク装置でＯＳが同規格に対応していても、ＢＩＯＳがＵｌｔｒａＡＴＡ／１３３としてデバイス・コントローラを設定すると、データ転送速度は１３３ＭＢ／秒となり、同装置が保有する３００ＭＢ／秒のデータ転送速度を発揮できないことになる。
【００１２】
新製品として販売されるＰＣシステムの多くは、ユーザが電源を入れてすぐに使用できるよう、ＯＳや各種アプリケーション・ソフトをプリインストールされた状態で販売される。製造メーカは、プリインストールされるＯＳには柔軟に対応できるようにＰＣシステムを製造しており、かつ、新規格のデバイスを搭載する際にはユーザに当該デバイスが発揮する最高の性能を提供したいと考える。ここにハードウェアの進化に対してソフトウェアの追従の遅れがある現状においては、進化したハードウェアの性能をユーザが享受する上での障害が存在することになる。
【００１３】
そこで本発明の目的は、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、適切な動作モードにデバイス・コントローラを設定する方法を提供することにある。さらに本発明の目的は、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、ユーザの負担を軽減して適切な動作モードにデバイス・コントローラを設定する方法を提供することにある。さらに本発明の目的は、複数の動作モードを備えるデバイスが導入されたコンピュータ・システムにおいて、デバイス・ドライバの存在する動作モードにデバイス・コントローラを設定する方法を提供することにある。そして本発明の目的は、前述のようなデバイス・コントローラの設定が可能なコンピュータ・システム、コンピュータ・プログラム、および記録媒体を提供することにある。
【課題を解決するための手段】
【００１４】
本発明においては、コンピュータに搭載されるデバイス・コントローラが、少なくとも２つの動作モードを有しており、一方の動作モードに対応したデバイス・ドライバがコンピュータに導入されていないときの課題を解決する。このような状況が生ずる典型的な例は、デバイス・コントローラが進化して新たな動作モードの機能が付加されたにもかかわらず、オペレーティング・システムに標準的に組み込まれるデバイス・ドライバがそれに対応できない場合に発生する。本発明においては、基本プログラムの動作環境下でデバイス・コントローラの設定を行い、オペレーティング・システムの動作環境下でデバイス・ドライバの存否を確認する。
【００１５】
本発明を理解する上では、デバイス・コントローラの第１の動作モードを従来の動作モードに対応させ、第２の動作モードを新しい動作モードに対応させることができる。第１の動作モードに対しては、通常はデバイス・ドライバが必ずオペレーティング・システムに組み込まれているので、ＢＩＯＳなどの基本プログラムがデバイス・コントローラを第１の動作モードに設定してもコンピュータを起動することができる。デバイス・コントローラを対応するデバイス・ドライバが必ずインストールされている第１の動作モードに設定しておくことで、ブートが途中で停止してブルー・スクリーン状態になることを防止することができる。
【００１６】
デバイス・コントローラはオペレーティング・システムの環境下で完全な動作をすることができるようになっているため、コンピュータは必要なデバイス・ドライバがインストールされているか否かを、オペレーティング・システムの動作環境下でないと認識できない。よって、第２の動作モードに対応するデバイス・ドライバがオペレーティング・システムに導入されているか否かをオペレーティング・システムの動作環境下で検査する。第２の動作モードに対応するデバイス・ドライバがインストールされているときは、進化した機能を使用するためにデバイス・コントローラを第２の動作モードに設定変更する。デバイス・ドライバはデバイス・コントローラのメーカにより配布されるが、オペレーティング・システムに対する導入はオペレーティング・システムのメーカ、コンピュータの製造メーカおよび販売会社、あるいはユーザなどのさまざまな場面で行われる。
【００１７】
デバイス・コントローラの設定は基本プログラムが行うため、本発明における設定の変更も基本プログラムで一元的に行うことが望ましい。また、設定変更にかかるデバイス・コントローラが設定変更の途中で動作していないことが保証されることが必要である。基本プログラムがシングル・タスクで実行されるプログラムである場合には、デバイス・コントローラの設定変更中にデバイス・コントローラが動作していないことを容易に確認することができる。デバイス・コントローラが磁気ディスク装置のインターフェースである場合には、ＩＮＴ１３ｈハンドラの実行状態を監視して設定変更にかかるデバイス・コントローラが動作していないことを確認することができる。
【００１８】
また、オペレーティング・システムの動作環境下で第２のデバイス・ドライバの存在を検出したときに、ＳＭＩで基本プログラムの動作環境に移行すると、ＣＰＵはＳＭＭ動作でしかアクセスできないメモリ空間を使用するため安全に設定変更をすることができる。そして、基本プログラムがデバイス・コントローラを第２の動作モードに設定した後にコンピュータはオペレーティング・システムの動作環境に戻り、デバイス・コントローラが第２の動作モードで動作するようにプラグ・アンド・プレイで第２のデバイス・ドライバを設定することができる。第２のデバイス・ドライバの存否の検査は、プラグ・アンド・プレイを実行する前に行うことで、デバイス・コントローラが第２の動作モードに設定された後に、初期ドライバとしてメモリにロードされた第２の動作モードに対応するデバイス・ドライバを設定することができる。
【００１９】
第２の動作モードに対応するデバイス・ドライバがインストールされており、デバイス・コントローラの動作モードが一旦第２の動作モードに設定されても、その設定はその時点限りにして、基本プログラムがデバイス・コントローラの設定のために参照するＣＭＯＳなどに格納された情報は第１の動作モードに維持しておくとデバイス・コントローラはつねに第１の動作モードでブートされるので都合がよい。その理由は、起動時に第１の動作モードを維持しておくと、第１の動作モードと第２の動作モードに対応するデバイスが、第１の動作モードにだけ対応するデバイスに交換されたときにもブルー・スクリーン状態になることを防ぐことができる点にある。また、デバイス・コントローラが磁気ディスク装置のインターフェースである場合には、第２の動作モードに対応しないデバイスにブート・デバイスを変更したり、第２の動作モードに対応していないパティションからブートする場合にもブートの失敗を防ぐことができる点にある。
【００２０】
オペレーティング・システムの動作環境下で第２のデバイス・ドライバが検出されないときは、デバイス・コントローラは第１の動作モードで動作する。このような構成により、進化したデバイス・コントローラが搭載され、それに対応するデバイス・ドライバがオペレーティング・システムに含まれてるか否かが不明な場合でも、デバイス・ドライバの存否を判断して、適切にデバイス・コントローラの設定をすることができる。デバイス・コントローラがブート・デバイスのインターフェースである場合は、コンピュータ操作に不慣れなユーザに対してもブルー・スクリーン状態を排除して、デバイスを進化した状態で容易に使用させることができる。
【発明の効果】
【００２１】
本発明によって、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、適切な動作モードにデバイス・コントローラを設定する方法を提供することができた。さらに、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、ユーザの負担を軽減して適切な動作モードにデバイス・コントローラを設定する方法を提供することができた。さらに本発明の目的は、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、デバイス・ドライバの存在する動作モードにデバイス・コントローラを設定する方法を提供することができた。そして本発明の目的は、前述のようなデバイス・コントローラの設定が可能なコンピュータ・システム、コンピュータ・プログラム、および記録媒体を提供することができた。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明の実施の形態にかかるＰＣシステム１０の外観について示した図である。ＰＣシステムのＰＣ本体１１は、上面に、着脱可能とされたキーボード１３が配設されており、後縁端にはディスプレイ１５が回動可能に取り付けられている。キーボード１３上には、ＰＣシステムの動作時に、ディスプレイ１５の画面上に表示されるカーソルを移動させるためのポインティング・デバイス１７が装備されている。なお、図１ではノート型のＰＣシステムを示しているが、本発明の実施形態はこれ以外にも、たとえばデスクトップ型ＰＣ、タブレット型ＰＣ、サーバ用コンピュータ・システムなどにも適用することができる。
【００２３】
図２は、本発明の実施の形態にかかるＰＣシステム１０の、ハードウェアの構成について示したブロック図である。ＰＣシステム１０の全体を制御するＣＰＵ２１は、ＯＳの制御下で各種プログラムを実行する。ＣＰＵ２１は、頻繁にアクセスするごく限られたコードやデータを一時格納することで、メイン・メモリ２５への総アクセス時間を短縮するための高速動作メモリであるＬ２（レベル２）−キャッシュを含んで構成されている。ＣＰＵ２１は、自身の外部ピンに直結されたプロセッサ直結バスとしてのＦＳ（FrontSide）バス２７、高速のＩ／Ｏ装置用バスとしてのＰＣＩ（Peripheral Component Interconnect）バス２９、および低速のＩ／Ｏ装置用バスとしてのＩＳＡ（Industry Standard Architecture）バス３１という３階層のバスを介して、後述の各ハードウェア構成要素と相互接続されている。
【００２４】
またＣＰＵ２１は、ＳＭＩ（System Management Interrupt）ハンドラによって、システム管理用の動作モードであるＳＭＭ（System Management Mode）で動作することが可能である。ＳＭＩは米国インテル社製のＣＰＵに存在する割り込み制御ハンドラであり、主にサスペンド、レジューム、電源管理およびセキュリティ関連の操作などに利用される特権実行モードである。ＣＰＵ２１がＳＭＭで動作している間、すべての割り込みは無効になる。
【００２５】
ＦＳバス２７とＰＣＩバス２９は、一般にメモリ／ＰＣＩ制御チップと呼ばれるＣＰＵブリッジ（ホスト−ＰＣＩブリッジ、通称ノース・ブリッジ）３３によって連絡されている。本実施形態のＣＰＵブリッジ３３は、ＦＳバス２６とＰＣＩバス２８との間のデータ転送速度の差を吸収するためのデータ・バッファ機能を含み、アクセス動作を制御するためのメモリ・コントローラ２３を介してメイン・メモリ２５と接続される。
【００２６】
メイン・メモリ２５は、ＣＰＵ２１の実行プログラムの読み込み領域として、あるいは実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。なお、ここでいう実行プログラムには、ＯＳ、周辺機器の動作に必要な情報をＯＳに提供したりその動作を管理したりするプログラムである各種デバイス・ドライバ、特定業務に向けられたアプリケーション・プログラム、ＢＩＯＳフラッシュＲＯＭ５２に格納されたＢＩＯＳなどのファームウェアが含まれる。本実施の形態に関連したメイン・メモリ２５内部のデータ構成については後述する。
【００２７】
ビデオ・サブシステム３５は、ビデオに関連する機能を実現するためのサブシステムであり、ＣＰＵ２１からの描画命令を実際に処理した描画情報をビデオメモリ（ＶＲＡＭ）に一旦書き込むと共に、ＶＲＡＭから描画情報を読み出してディスプレイ１５に描画データとして出力するグラフィック・コントローラを含む。
【００２８】
ＰＣＩバス２９は、比較的高速なデータ伝送が可能なタイプのバスであり、カードバス・コントローラ３７、オーディオ・サブシステム３９、ネットワーク・アダプタ４１などのような比較的高速で動作するＰＣＩデバイス類がこれに接続される。カードバス・コントローラ３７には、たとえばＰＣＭＣＩＡ／ＪＥＩＤＡ仕様に準拠したＰＣカード型の周辺機器（図示せず）が接続される。
【００２９】
ＰＣＩバス２８とＩＳＡバス３０はＰＣＩ−ＩＳＡブリッジ（通称サウス・ブリッジ）４３によって相互に接続されている。図３は、ＰＣＩ−ＩＳＡブリッジ４３およびその周辺の装置について、より詳細に示したブロック図である。ＰＣＩ−ＩＳＡブリッジ４３は、ＰＣＩバス２９とＩＳＡバス３１とのブリッジ機能、ＤＭＡコントローラ機能８１、プログラマブル割り込みコントローラ（ＰＩＣ）機能７７、プログラマブル・インターバル・タイマ（ＰＩＴ）７６機能、シリアルＡＴＡ２／ＩＤＥ（Integrated Drive Electronics）インターフェース８３機能、ＵＳＢ（Universal Serial Bus）７９機能、およびＳＭＢ（System Management Bus）インターフェース７３機能を備えていると共に、リアルタイムクロック（ＲＴＣ）７５を内蔵している。
【００３０】
また、ＰＣＩ−ＩＳＡブリッジは、シリアルＡＴＡ２／ＩＤＥインターフェース８３を有し、シリアルＡＴＡ２およびＩＤＥ仕様に準拠した磁気ディスク装置（ＨＤＤ）４７や、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブなどの光学ドライブ４９が接続される。また、ＰＣＩ−ＩＳＡブリッジ４３内のＵＳＢ７９にはＵＳＢポート４５が接続され、このＵＳＢポート４５には、ＵＳＢコネクタを介して、ＵＳＢ対応の各種周辺機器（図示せず）を接続することが可能である。
【００３１】
図２に戻って、ＩＳＡバス３１はＰＣＩバス２９よりもデータ転送速度が低いバスであり、Ｉ／Ｏコントローラ５１、ＥＥＰＲＯＭなどから成るＢＩＯＳ−ＲＯＭ５３、ＣＭＯＳ−ＲＡＭ５５、環境チップ５７、マウス・コントローラ５９、キーボード・コントローラ６１などのような比較的低速で動作する周辺機器類が接続される。マウス・コントローラ５９には、ＰＣシステム１０に内蔵のポインティング・デバイス１７、または外付けのマウス（図示せず）が接続される。キーボード・コントローラ６１にはキーボード１３が接続される。Ｉ／Ｏコントローラ５０はＩ／Ｏポート（図示せず）を介して、フロッピー（登録商標）ディスク・ドライブ（ＦＤＤ、図示せず）の駆動、パラレル・ポートおよびシリアル・ポート（いずれも図示せず）を介した入出力を制御する。
【００３２】
ＢＩＯＳ−ＲＯＭ５３およびＣＭＯＳ−ＲＡＭ５５については後述する。環境チップ５７は、８〜１６ビットのマイクロプロセッサの他に、ＲＡＭ、ＲＯＭ、アナログ入力、タイマ、デジタル入出力などを備え、ＰＣシステム１０の筐体の内部に取り付けられた温度センサ６７および電圧センサ６９からの入力を受けて冷却ファン６５および電源装置（図示せず）などの制御を行う。
【００３３】
なお、図２は本実施の形態を説明するために簡素化して記載したものであり、主要なハードウェアの構成および接続関係を表示したに過ぎないものである。ＰＣシステム１０を構成するためには、これら以外にも多くの電気回路および装置が必要であるが、それらは当業者には周知であるので詳しく言及しない。また、図２で記載した複数のブロックを１個の集積回路としたり、逆に１個のブロックを複数の集積回路に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００３４】
システム・コントローラ７１としての機能が、ＣＰＵブリッジ３３およびＰＣＩ−ＩＳＡブリッジ４３にまたがって実装される。本実施の形態にかかるＰＣシステム１０で使用されているＰＣＩ−ＩＳＡブリッジ４３は、米国インテル社から型番ＩＣＨ７で入手可能なサウス・ブリッジ用のチップ・セットである。チップ・セットに組み込まれたシリアルＡＴＡ２／ＩＤＥインターフェース８３は、シリアルＡＴＡ２の規格に対応し、さらにその中でも最も高速・高機能な動作モードであるＡＨＣＩ転送モードを有したデバイス・コントローラである。ＩＣＨ７はＡＨＣＩ転送モードの他に従来のＩＤＥ（ＵｌｔｒａＡＴＡ／１３３）と互換性のあるＡＴＡ転送モードも保有している。
【００３５】
ＩＣＨ７は、バックワード・コンパチビリティ（Backward Compatibility、下位互換性）がないので、ＡＨＣＩ転送モードに設定してＡＴＡ転送モードに対応したデバイス・ドライバで動作させ、その後ＰｎＰでＡＨＣＩ転送モードに対応したデバイス・ドライバをインストールすることができない。したがって、ＩＣＨ７はＰＣシステム１０が起動するときには、デバイス・ドライバが存在する動作モードに設定しておく必要がある。ＡＴＡ２／ＩＤＥインターフェース８３におけるＡＨＣＩ転送モードとＡＴＡ転送モードの間での動作モードの切り替えは、システムＢＩＯＳ１０１が内部レジスタ８５の設定情報を変更することにより行うことができる。内部レジスタ８５の設定情報が変更されると、ＡＴＡ２／ＩＤＥインターフェース８３のレジスタに記憶されたクラス・コードが変更される。ＢＩＯＳはクラス・コードを参照して動作モードに応じた適切なデバイス・ドライバを設定できるようになる。
【００３６】
図４は、本発明の実施例にかかるＰＣシステム１０の、ＢＩＯＳ−ＲＯＭ５３、ＣＭＯＳ−ＲＡＭ５５、メイン・メモリ２５、および磁気ディスク装置４７が記憶する各種ソフトウェアの構成を示す図である。図４（Ａ）に示すＢＩＯＳ−ＲＯＭ５３は、不揮発性で記憶内容を電気的に書き替え可能なメモリであり、システムの起動および管理に使われるシステムＢＩＯＳ１０１、電源管理ユーティリティ１０３、温度管理などの各種ユーティリティ１０５、ＳＭＩハンドラ１０７、本発明にかかるハードウェア切り替えユーティリティ１０９、ＩＮＴ１３ｈハンドラ１１１などが記憶されている。図４（Ｂ）に示すＣＭＯＳ−ＲＡＭ５５は、システムＢＩＯＳによって操作されるデバイス・コントローラの設定情報１１３を格納しており、ＰＣシステムの電源を切っても消失しないようにバッテリでバックアップされたＲＡＭである。ここでいう設定情報１１３として特にシリアルＡＴＡ２／ＩＤＥインターフェース８３に関連するものとしては、起動順序、ドライブ番号、各ドライブに対する接続方法、およびデータ転送に関するパラメータなどがある。
【００３７】
図４（Ｃ）に示すメイン・メモリ２５には、ＰＣシステムの通常の動作で使用されるユーザ領域１２１の他に、ＳＭＲＡＭ（System Management RAM）１２３としての領域が確保されている。ＣＰＵ２１がＳＭＭに入ると、既にＣＰＵ２１で実行されているソフトウェアからはＳＭＲＡＭにはアクセスできない。図４（Ｄ）に示す磁気ディスク装置４７には、起動時に最初にアクセスされるマスター・ブート・レコード１３１、ユーザ・データ１３３、各種アプリケーション・ソフト１３５、およびＷｉｎｄｏｗｓ  ＸＰ（登録商標）であるＯＳ１３７が格納されている。ブート・セクタ１４７は、ＰＣシステムの起動時にＯＳ１３７を呼び出すためのプログラムが記録されている。ＯＳ１３７の中には、各種デバイスをＯＳ上で駆動するデバイス・ドライバ１３９、およびＷｉｎｄｏｗｓが提供するシステム定義のデータ・ベースであるレジストリ１４１を含んでいる。レジストリ１４１の中には、アプリケーション・プログラムやデバイス・コントローラ設定用のデータが格納される。
【００３８】
デバイス・ドライバ１３９は、本実施の形態にかかるプリＰｎＰドライバ２１１（ファイル名prepnp.sys）、ＰｎＰの動作を行う周知のＡＣＰＩドライバ２１３（ファイル名ACPI.sys）、およびＡＨＣＩに対応したデバイス・ドライバ１４３（ファイル名iaStor.sys）を含む。また、レジストリ１４１には、ＯＳ起動時に利用するサービス内容をすべて登録するサービス情報２０７、サービス情報２０７に登録された具体的な内容を示すPrePlugAndPlayサービス情報２０１およびＡＨＣＩデバイス・サービス情報、さらにその他のサービス情報が登録されている。なお、本実施の形態にかかるデバイス・ドライバの機能やレジストリ情報については後に詳しく説明する。
【００３９】
図５（Ａ）は、当該Ｗｉｎｄｏｗｓ  ＸＰの各種設定を保存しているレジストリ１４１の中で、本実施の形態にかかるキーの設定例を示す図である。レジストリ１４１は階層化されたツリー構造中にデータを蓄えており、ツリー中の各ノードは「キー(key)」と呼ばれる。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Services\prepnpというキーには、本実施の形態にかかるプリＰｎＰドライバ２１１が、サービス名PrePlugAndPlay２０１として登録されている。そして、ＯＳ起動時に実行されるサービスの順番が登録されるHKEY_LOCAL_MACHINE\Syetem\CurrentControlSet\Control\ServiceGroupOrder２０７というキーに、サービス名PrePlugAndPlay２０１を登録する。その際本実施の形態においては、サービスPrePlugAndPlay２０１は、システムの起動時に使用されるサービスであるSystem Reserved２０３の後であり、かつＰｎＰの動作を含むサービスであるBoot Bus Extender２０５よりも前に起動されるように登録する必要がある。もちろん、ＡＨＣＩ転送モードに対応したデバイス、および当該デバイスのデバイス・ドライバについての設定１４５は、当該レジストリ内のHKEY_LOCAL_MACHINE\Hardwareなどに存在する適切なキーに保存される。
【００４０】
図５（Ｂ）は、ＯＳ１３７に含まれるデバイス・ドライバ１３９の中で、ＯＳ１３７が起動される時に読み込まれるドライバについて示した図である。ＯＳ１３７がインストールされているディレクトリをC:\windowsとすると、ディレクトリC:\windows\system32\DRIVERS\には、プリＰｎＰドライバ２１１（ファイル名prepnp.sys）、ＰｎＰの動作を行うＡＣＰＩドライバ２１３（ファイル名ACPI.sys）、およびＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３（ファイル名iaStor.sys）が存在する。図５（Ｂ）は、レジストリ１４１を参照したときに登録されたデバイス・ドライバが実際に読み込まれる順番に上から下へと表示されており、プリＰｎＰドライバ２１１は、ＡＣＰＩドライバ２１３よりも先に読み込まれている。
【００４１】
本実施の形態におけるブート・デバイスとしては、磁気ディスク装置４７、グラフィック・コントローラを含むビデオ・サブシステム３５、ディスプレイ１５、キーボード１３、マウスを含むポインティング・デバイス１７などが該当するが、本実施の形態では磁気ディスク装置４７を対象として説明する。今、このＰＣシステム１０に、ＡＴＡ転送モードおよびＡＨＣＩ転送モードという２種類の転送モードに対応した磁気ディスク装置４７を取り付け、ＰＣシステム１０上でＡＨＣＩ転送モードに正式に対応していないＯＳである米国マイクロソフト社のＷｉｎｄｏｗｓ  ＸＰを起動するものとする。
【００４２】
まずＰＣシステム１０に電源が投入されると、ＢＩＯＳ−ＲＯＭ５３からシステムＢＩＯＳ１０１が読み出されて実行され、ＣＭＯＳ−ＲＡＭ５５からブート・デバイスに関する設定情報１１３を読み出してデバイスの構成を決定する。磁気ディスク装置４７が、従来のＡＴＡ転送モードで起動されることがＣＭＯＳ−ＲＡＭ５５の内容で決定され、シリアルＡＴＡ２／ＩＤＥインターフェース８３内のレジスタ８５にその情報が書き込まれる。ＣＰＵ２１は、システムＢＩＯＳ１０１を実行して、磁気ディスク装置４７の動作に関するソフトウェア割り込みで実行されるＩＮＴ１３ｈハンドラ１１１を呼び出すことにより、同ドライブの先頭セクタ（マスター・ブート・レコード１３１）をメイン・メモリ２５上にロードし、その中のブート・ストラップ・ローダ１４９を実行する。ブート・ストラップ・ローダ１４９によって、起動ドライブ内の起動可能な基本領域の先頭セクタ（ブート・セクタ１４７）を呼び出し、実行することによってＯＳの読み込みが始まる。
【００４３】
図６は、従来技術のＰＣシステムの起動プロセスについて示したフローチャートである。図６に示すプロセスでは、ＰＣシステム１０の起動が開始されたら（ブロック３０１）、まずＢＩＯＳによってハードウェアの初期設定が行われ（ブロック３０３）、磁気ディスク装置４７はＡＴＡ転送モードで起動される。ブロック３０５でＯＳの起動が開始されるが、ブート・デバイスはＰｎＰが実行される前に使用可能になっていないと、以後の起動プロセスを継続することができない。そのため、ＢＩＯＳはブート・デバイスに関連のあるデバイス・ドライバをすべてメイン・メモリ２５にロードする。そしてＯＳはレジストリに記憶された各ブート・デバイスの識別子であるクラス・コードを利用して、ブート・デバイスとデバイス・ドライバを関連づけることによりブート・デバイスの使用が可能となる（ブロック３０７）。つづいて、ＰｎＰに関わるプロセスが実行されることによって（ブロック３０９）、ブート・デバイス以外のデバイスが自動的に認識され、適切なデバイス・ドライバがシステム内に読み込まれて設定され起動プロセスが完了する（ブロック３１１）。その際、ブロック３０５でロードされたデバイス・ドライバの中でＡＨＣＩ転送モードに対応するデバイス・ドライバ１４３を含んだ不要なドライバは全て消去され、ＡＴＡ転送モードに対応するデバイス・ドライバを含んだ必要なドライバがメイン・メモリ２５に常駐する。
【００４４】
ブロック３０３において、システムＢＩＯＳがシリアルＡＴＡ２／ＩＤＥインターフェース８３内のレジスタ８５に、ＡＨＣＩ転送モードに設定する情報を書き込んだ場合は、ブロック３０７でＢＩＯＳはＡＴＡ２／ＩＤＥインターフェース８３に対応するデバイス・ドライバを見つけることができないためディスプレイはブルー・スクリーン状態になってＰＣシステム１０の起動が停止する。このとき磁気ディスク装置はＯＳの制御下で動作できる環境が整わないので、ＰｎＰのプロセスに移行することもできない。
【００４５】
図７は、本実施の形態にかかるＡＴＡ転送モードとＡＨＣＩ転送モードとを備えたＰＣシステム１０で、ＡＨＣＩ転送モードを使用可能とする起動プロセスを示したフローチャートである。図７に示す手順では、ＰＣシステム１０の起動開始から初期ドライバの読み込みまでのブロック４０１〜４０７までは、図６に示したブロック３０１〜３０７に示す手順に対応するので説明を省略する。この際、シリアルＡＴＡ２／ＩＤＥインターフェース８３は、ＯＳが確実に起動されるように、図６に示した従来技術と同じく、ＢＩＯＳによりＡＴＡ転送モードに設定される。ブロック４０７でブート・デバイスに対応したすべての初期ドライバがメイン・メモリ２５にロードされる。このときＢＩＯＳは、シリアルＡＴＡ２／ＩＤＥインターフェース８３に使用する可能性のあるＡＴＡ転送モードに対応したデバイス・ドライバとＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３をメイン・メモリにロードした後に、プリＰｎＰドライバ２１１を実行する（ブロック４０９）。
【００４６】
プリＰｎＰドライバ２１１は、ＰｎＰに関わるプロセスが実行される前に、デバイス・ドライバ１３９の導入状況をレジストリ１４１から入手する。そして、ＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３のインストールがされているか否かをディレクトリC:\windows\system32\DRIVERS\の情報で調べ、ＡＨＣＩ転送モードに対応したデバイス・コントローラについての情報１４５がレジストリ１４１に登録されているかどうかを調べる（ブロック４１１）。ＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３およびレジストリにおけるシリアルＡＴＡ２／ＩＤＥインターフェース８３の登録情報が存在していなければ、ＡＣＰＩドライバ２１３はＡＴＡ転送モードに設定されたＡＴＡ２／ＩＤＥインターフェース８３が動作できるようにデバイス・ドライバをメイン・メモリ２５に常駐させて、ＰｎＰに関わるプロセスおよびＯＳの起動に関わるその他のプロセスを続行する（ブロック４１５）。そして磁気ディスク装置４７はＡＴＡ転送モードで動作する状態でＯＳの起動が完了する（ブロック４１７）。なお、プリＰｎＰドライバ２１１自身はメモリに常駐する必要はないので、ＯＳの起動が完了したらメモリから消去される。
【００４７】
プリＰｎＰドライバ２１１がＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３およびレジストリにおけるシリアルＡＴＡ２／ＩＤＥインターフェース８３の登録情報を検出した場合は、プリＰｎＰドライバ２１１からＳＭＩを発行してＣＰＵ２１に送る。ＳＭＩを受け取ったＣＰＵ２１はＳＭＭに入り、シリアルＡＴＡ２／ＩＤＥインターフェース８３の動作をＡＨＣＩ転送モードに切り替える操作を行う（ブロック４１３）。動作モードの切り替え操作を、誤動作を発生させないで確実に行うためには、ＡＴＡ２／ＩＤＥインターフェース８３が他のプロセスに使用されていないことを保証する必要がある。ＷｉｎｄｏｗｓシリーズのＯＳはマルチ・タスクであるため、同ＯＳ上の処理で動作モードを切り替える動作を行うと、磁気ディスク装置が他のプロセスに使用されている状態で動作モードの切り替えを始めてしまい、その結果として誤動作を招く危険性がある。そのため、本実施の形態では動作モードの切り替え操作を、ＰＣシステム１０の制御をＯＳからＢＩＯＳに移して行う。
【００４８】
図８は、本発明の実施例にかかるＰＣシステム１０で、図７のブロック４１３に示された動作モードの切り替えの動作をさらに詳しく示した図である。ＳＭＭに入ったＣＰＵは（ブロック５０１〜５０５）ＢＩＯＳの制御下で、ＳＭＩハンドラ１０７を通じて、ＩＮＴ１３ｈハンドラ１１１によって磁気ディスク装置４７の動作状況を確認する（ブロック５０７）。もし磁気ディスク装置４７が動作していれば、改めてＩＮＴ１３ｈハンドラによって磁気ディスク装置４７およびＡＴＡ２／ＩＤＥインターフェース８３を停止させる。（ブロック５０８）。ＢＩＯＳの制御による動作はシングル・タスクであるため、複数のタスクを同時に実行できない。かつ、ＳＭＭで動作するＣＰＵでは、前述のようにすべての割り込みが無視される。さらに、ＳＭＭで動作するＣＰＵは、メイン・メモリ２５ではＳＭＲＡＭ１２３を独占的に使用する。ＢＩＯＳ−ＲＯＭ５３からＳＭＲＡＭ１２３にプログラムを読み込んで実行すれば、それ以外のプログラムがＳＭＲＡＭにアクセスすることは不可能となり、実行されることもない。このため、ＳＭＭで動作するＣＰＵ上で、ＢＩＯＳの制御下でＩＮＴ１３ｈハンドラの状況さえ確認すれば、磁気ディスク装置４７およびインターフェース８３が動作していないことは容易に保証できる。
【００４９】
ブロック５０７でＩＮＴ１３ｈハンドラ１１１が動作していないことが確認されたら、次にＳＭＩハンドラ１０７は、ハードウェア切り替えユーティリティ１０９を呼び出し、磁気ディスク装置４７に接続されるＡＴＡ２／ＩＤＥインターフェース８３の設定をＡＴＡ転送モードからＡＨＣＩ転送モードに変更すると共に（ブロック５０９）、必要に応じて当該インターフェースに従来のＡＴＡ転送モードとは異なるＩＲＱやＤＭＡなどのシステム・リソースを割り当てることもできる（ブロック５１１）。ＡＨＣＩ転送モードへの設定変更が完了したら、ＣＰＵのＳＭＭでの動作が終了する（ブロック５１３〜５１５）。
【００５０】
当該ＰＣシステム１０では、磁気ディスク装置４７およびＡＴＡ２／ＩＤＥインターフェース８３の動作が再開され、ＯＳによる制御で図７に示された起動のプロセスが継続される。ＰｎＰに関わるＡＣＰＩドライバ２１３が実行され、ブート・デバイス以外のデバイスが自動的に認識され、適切なデバイス・ドライバがシステム内に読み込まれて設定され（ブロック４１５）、ＯＳの起動が完了する（ブロック４１７）。なお、この場合もプリＰｎＰドライバ２１１自身はメモリに常駐する必要はないので、ＯＳの起動が完了した後で削除される。また、ＡＴＡ転送モードに対応するデバイス・ドライバを含んだ不要なドライバは全て消去され、ＡＨＣＩ転送モードに対応するデバイス・ドライバ１４３を含んだ必要なドライバがメイン・メモリ２５に常駐する。
【００５１】
この方法により、たとえばＷｉｎｄｏｗｓ  ＸＰとＬｉｎｕｘ、あるいはＷｉｎｄｏｗｓの旧バージョンや他言語バージョンなど、複数種類のＯＳを切り替えて使用することが可能なＰＣシステムであっても、ＡＨＣＩ転送モードに対応しているＯＳのときは同モードで動作させ、ＡＨＣＩ転送モードに対応していないＯＳのときはＡＴＡ転送モードで動作させることができる。この時、ＰＣシステム１０にＡＨＣＩ転送モードに対応したデバイス・ドライバがインストールされていて一旦はＡＴＡ２／ＩＤＥインターフェース８３をＡＨＣＩ転送モードで動作させても、ＣＭＯＳ−ＲＡＭ５５の設定情報は変更しないでＡＴＡ転送モードを維持する。
【００５２】
本実施の形態にかかるＡＨＣＩ転送モードに対応したインターフェースの切り替えプログラムを有するＯＳとこれを有さないＯＳとを含んだ複数のＯＳを切り替えて使用することが可能なＰＣシステムにおいて、起動時にＢＩＯＳがインターフェースをＡＨＣＩ転送モードに設定すると、切り替えプログラムを有さないＯＳを起動する際に、前述のようなブルー・スクリーン状態が発生するが、本実施の形態にかかるＰＣシステムでは、起動時にＢＩＯＳが磁気ディスク装置を常にＡＴＡ転送モードに設定してこれを防止する。また、本実施の形態にかかるＰＣシステムで、磁気ディスク装置をＡＴＡ転送モードにしか対応しない物に交換した場合も、ＰＣシステムが起動される時にはＡＴＡ転送モードに設定されるので、ブルー・スクリーン状態が発生することはない。
【００５３】
図９は、プリＰｎＰドライバ２１１およびデバイス・ドライバ１４３のインストールについて示したフローチャートである。同図で示されるインストールは、ＡＨＣＩ転送モードおよびＡＴＡ転送モードに対応した磁気ディスク装置４７およびＡＴＡ２／ＩＤＥインターフェース８３を有し、本実施の形態にかかるハードウェア切り替えユーティリティ１０９およびこれに関わるＳＭＩハンドラ１０７を記憶したＢＩＯＳ−ＲＯＭ５３が装備されたＰＣシステム１０に対して行われる。ＯＳがインストールされているディレクトリをC:\windowsとすると、図９の手順を開始すると（ブロック６０１）、ディレクトリC:\windows\system32\DRIVERS\に、プリＰｎＰドライバ２１１（ブロック６０３）およびＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３（ブロック６０５）がコピーされる。さらに、図５（Ａ）で示したようにＯＳのレジストリ１４１内にプリＰｎＰドライバおよびＡＨＣＩ転送モードに対応した設定が保存され（ブロック６０７）、インストールが終了する（ブロック６０９）。
【００５４】
組み立て工場から出荷されて販売される前のＰＣシステム１０が、ＡＨＣＩ転送モードおよびＡＴＡ転送モードに対応した磁気ディスク装置４７およびＡＴＡ２／ＩＤＥインターフェース８３を有し、本実施の形態にかかるハードウェア切り替えユーティリティ１０９およびこれに関わるＳＭＩハンドラ１０７を記憶したＢＩＯＳ−ＲＯＭ５３を装備している場合を考える。販売者は、このＰＣシステム１０に対して、ＯＳおよび各種アプリケーション・ソフトのプリインストールの他に、プリＰｎＰドライバ２１１およびデバイス・ドライバ１４３のインストール、およびレジストリ１４１の設定をする必要がある。その際、図９で示した手順が一括してできるようにインストーラを構成することにより、それらのインストールにかかる販売者の手間を軽減し、当該ＰＣシステム１０を購入したユーザに、最初に電源を投入した時点からＡＨＣＩ転送モードで磁気ディスク装置４７が動作する環境を容易に提供することができる。
【００５５】
図１０は、本実施の形態にかかるドライバおよびユーティリティをインストールするためのインストーラについて示した図である。図１０（Ａ）は、プリＰｎＰドライバ２１１およびＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３のインストールに使用される、第１のインストーラ７０１を示す。第１のインストーラ７０１は、プリＰｎＰドライバ２１１、ＡＨＣＩ転送モードに対応したデバイス・ドライバ１４３、およびインストール実行プログラム７０５を含み、インストール実行プログラム７０５を実行すれば図９で示したインストールを一括して実行できるように構成されている。
【００５６】
図１０（Ｂ）は、ハードウェア切り替えユーティリティ１０９およびこれに関わるＳＭＩハンドラ１０７のインストールに使用される、第２のインストーラ７０３を示す。第２のインストーラ７０３は、ハードウェア切り替えユーティリティ１０９、ＳＭＩハンドラ１０７、およびインストール実行プログラム７０７を含む。ＥＥＰＲＯＭ等の書き換え可能な不揮発性メモリで構成されているＰＣシステムのＢＩＯＳ−ＲＯＭ５３に対して、インストール実行プログラム７０７は、ハードウェア切り替えユーティリティ１０９およびこれに関わるＳＭＩハンドラ１０７をコピーする。
【００５７】
これらのインストーラ７０１および７０３は、ＣＤ−ＲＯＭもしくはフロッピー・ディスクなどの記憶媒体に収めて当該磁気ディスク装置４７に添付して供給することも、当該磁気ディスク装置４７自体にＡＴＡ転送モードで読み取り可能なように記憶させて供給することも、またインターネットなどの通信手段での配信によって供給することも可能である。
【００５８】
ユーザが既に入手して使用しているＰＣシステム１０が、ＡＨＣＩ転送モードおよびＡＴＡ転送モードに対応したＡＴＡ２／ＩＤＥインターフェース８３のみを有しており、そこにＡＨＣＩ転送モードおよびＡＴＡ転送モードに対応した磁気ディスク装置４７をユーザが単体で入手してＰＣシステム１０に接続する場合を考える。ユーザが入手した磁気ディスク装置４７には、図１０で示した第１および第２のインストーラ７０１および７０３が添付されている。ユーザは、これらのインストーラ７０１および７０３を実行し、当該インストールが完了した後でＰＣシステムの電源を切り、当該磁気ディスク装置４７を取り付けて再び電源を投入すれば、ＡＨＣＩ転送モードで当該磁気ディスク装置を動作させることができる。なお、当該磁気ディスク装置の取り付けは、第１および第２のインストーラ７０１および７０３の実行より前になってもよい。この場合は、インストールが完了するまで、磁気ディスク装置４７はＡＴＡ転送モードで動作する。
【００５９】
また、通常はＰＣシステム本体のメーカとＯＳのメーカは別個である。そのため、ＡＨＣＩ転送モードおよびＡＴＡ転送モードに対応した磁気ディスク装置４７およびＡＴＡ２／ＩＤＥインターフェース８３を有し、本実施の形態にかかるハードウェア切り替えユーティリティ１０９およびこれに関わるＳＭＩハンドラ１０７を記憶したＢＩＯＳ−ＲＯＭ５３を装備しているＰＣシステム１０本体が、ＯＳおよびドライバをインストールしない形でメーカから出荷されるという実施形態もありうる。この場合は、ＯＳおよび第１のインストーラ７０１を、ユーザまたは販売者が各自でインストール可能とすることができる。ＯＳおよび第１のインストーラ７０１は、記憶媒体に収めて当該システム本体に添付してもよいし、本体とは別個にユーザまたは販売者が各自で入手可能としてもよい。
【００６０】
次に、ディスク装置以外のブート・デバイスに対して、先の実施例と同じ方法を適用することについて説明する。ディスク装置以外にも、たとえば特殊な入力要素を備えたキーボードおよびマウス、特殊な入力データの転送方式を持ったキーボード、新規なインターフェースによるグラフィック・コントローラおよびディスプレイを接続した場合など、ブート・デバイスの構成に関わるものに対しては先の実施例と同じ方法が適用できる。ここでは、キーボード１３について説明する。
【００６１】
従来のキーボード１３の入力方式では、操作者がキーを押すと当該キーに対応したスキャン・コードがキーボード１３からＰＣシステム１０本体に送られ、ＯＳの側で当該スキャン・コードを操作者が使用する言語（たとえば日本語、英語、中国語など）に対応させる。これに対して、ＵＳＢキーボードで採用されているように、操作者が入力しようとしている文字に対応したキー・コードをＰＣシステム１０本体に送るという入力方式もある。以下、前者の入力方式を「スキャン・コード入力」、後者の入力方式を「キー・コード入力」という。
【００６２】
キー・コード入力では、ＰＣシステム１０本体側にキーボード・コントローラ６１が不要になる。しかし、キー・コード入力では、同じキーを押した場合でも、操作者が当該キーボードで使用する言語に応じて異なるコードがＰＣシステム１０本体に送られる。そのため、キーボード１３の内部にキー・コード入力と使用する言語に対応した回路が必要であり、ＯＳにはキー・コード入力に対応したデバイス・ドライバおよびレジストリ、さらに使用する言語に対応したデバイス・ドライバおよびレジストリが存在することが必要である。今、スキャン・コード入力およびキー・コード入力の両方に対応したキーボードを、ＷｉｎｄｏｗｓシリーズのＯＳで動作するＰＣシステム１０に接続することを考える。キー・コード入力用のキーボードは、操作者が使用する言語に対応した別々の物が用意される。しかし、同じキー・コード入力であっても、たとえば英語用のデバイス・ドライバが存在しても、供給の遅れなどが原因で中国語用や日本語用のデバイス・ドライバが存在しない場合がある。
【００６３】
そこで、先の実施例と全く同じ方法が適用できる。この場合、「スキャン・コード入力」が先の実施例でいう「ＡＴＡ転送モード」、「キー・コード入力および使用する言語」が「ＡＨＣＩ転送モード」にそれぞれ相当する。まず、ＯＳの起動が開始された時点では、キーボード１３はスキャン・コード入力で立ち上げられる。次に、キー・コード入力に対応したデバイス・ドライバおよびレジストリ、さらに使用する言語に対応したデバイス・ドライバおよびレジストリの有無がチェックされる。それらが存在しなければ、スキャン・コード入力のままでＯＳの起動が継続される。存在すれば、ＰＣシステム１０は一旦ＢＩＯＳによる制御に移行し、キーボード１３はキー・コード入力に切り替えられて、その後でＯＳによる制御に戻って起動が継続される。これにより、先の例で言えば英語用のキーボードを接続した場合はデバイス・ドライバの存在するキー・コード入力で起動し、日本語用のキーボードを接続した場合はキー・コード入力に対応するデバイス・ドライバが存在しないのでスキャン・コード入力で起動する、などのようなことが可能になる。
【００６４】
もちろん、先の実施例と同じ方法が適用できるデバイス・コントローラは、ブート・デバイスに対するデバイス・コントローラに限定されない。また、以上で挙げた実施例では一般的なＰＣについて述べたが、同じ方法を仮想コンピュータに適用することも可能である。その場合は、一般的なＰＣにおいてＢＩＯＳの制御下で行われるインターフェース切り替えの処理を、ホストＯＳもしくはハイパーバイザの制御下で行うことができる。
【００６５】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【産業上の利用可能性】
【００６６】
コンピュータ装置のブート・デバイスに対して適用可能である。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態にかかるＰＣシステムの外観について示した斜視図である。
【図２】本実施の形態にかかるＰＣシステムの、ハードウェアの構成について示したブロック図である。
【図３】本実施の形態にかかるＰＣシステムの、ＰＣＩ−ＩＳＡブリッジおよびその周辺の装置について、より詳細に示したブロック図である。
【図４】本実施の形態にかかるＰＣシステムの、ＢＩＯＳの構成を示した図である。
【図５】本実施の形態にかかるＰＣシステムで、レジストリの設定およびＯＳが起動される時に読み込まれるデバイス・ドライバについて示した図である。
【図６】従来技術にかかるＰＣシステムの起動のプロセスについて示した図である。
【図７】本実施の形態にかかるＰＣシステムの起動プロセスについて示した図である。
【図８】本実施の形態にかかるＰＣシステムで、インターフェース切り替えユーティリティの動作について示した図である。
【図９】本実施の形態にかかるＰＣシステムで、プリＰｎＰドライバおよびデバイス・ドライバのインストールについて示した図である。
【図１０】本実施の形態にかかるＰＣシステムに、必要なドライバおよびユーティリティをインストールするインストーラについて示した図である。
【符号の説明】
【００６８】
１０  ＰＣシステム
１１  ＰＣ本体
１３  キーボード
１５  ディスプレイ
１７  ポインティング・デバイス
２１  ＣＰＵ
２３  メモリ・コントローラ
２５  メイン・メモリ
３３  ＣＰＵブリッジ
３５  ビデオ・サブシステム
４３  ＰＣＩ−ＩＳＡブリッジ
４７  磁気ディスク装置
５３  ＢＩＯＳ−ＲＯＭ
５５  ＣＭＯＳ−ＲＡＭ
７１  システム・コントローラ
１０１  システムＢＩＯＳ
１０７  ＳＭＩハンドラ
１０９  ハードウェア切り替えユーティリティ
１３９  デバイス・ドライバ
１４１  レジストリ
２１１  プリＰｎＰドライバ
２１３  ＡＣＰＩドライバ
【図１】
0004616763.tif 000002
【図２】
0004616763.tif 000003
【図３】
0004616763.tif 000004
【図４】
0004616763.tif 000005
【図５】
0004616763.tif 000006
【図６】
0004616763.tif 000007
【図７】
0004616763.tif 000008
【図８】
0004616763.tif 000009
【図９】
0004616763.tif 000010
【図１０】
0004616763.tif 000011