JP4616763B2 - デバイス・コントローラの設定方法およびコンピュータ・システム - Google Patents

デバイス・コントローラの設定方法およびコンピュータ・システム Download PDF

Info

Publication number
JP4616763B2
JP4616763B2 JP2005360165A JP2005360165A JP4616763B2 JP 4616763 B2 JP4616763 B2 JP 4616763B2 JP 2005360165 A JP2005360165 A JP 2005360165A JP 2005360165 A JP2005360165 A JP 2005360165A JP 4616763 B2 JP4616763 B2 JP 4616763B2
Authority
JP
Japan
Prior art keywords
operation mode
device controller
operating
computer
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005360165A
Other languages
English (en)
Other versions
JP2007164492A (ja
Inventor
誠一 河野
隆之 赤井
栄太郎 笠松
元久 上田
健 佐々木
孝嗣 與茂
宏昭 美根
真樹 小日向
剛志 宮村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2005360165A priority Critical patent/JP4616763B2/ja
Publication of JP2007164492A publication Critical patent/JP2007164492A/ja
Application granted granted Critical
Publication of JP4616763B2 publication Critical patent/JP4616763B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、コンピュータ・システムに導入されている複数の動作モードで動作可能なデバイス・コントローラを設定する技術に関し、さらにはデバイス・ドライバの有無に応じて適切にデバイス・コントローラを設定する技術に関する。
パーソナル・コンピュータ・システム(以後PCシステムという)で、当該システムを構成するデバイスを変更する際に、当該デバイスの接続を自動的に検出して、デバイス・コントローラに最適なシステム・リソースおよびデバイス・ドライバなどを自動的に設定するプラグ・アンド・プレイ(以後PnPという。)と呼ばれる技術が、既に一般的なものになっている。PnPは、ハードウェアと、BIOS(Basic Input/Output System)と、オペレーティング・システム(以後OSという)とが、米国マイクロソフト社および米国インテル社によって定められた要求仕様に対応することによって実現される。
PCシステムには、ブート・デバイスといわれる周辺機器が搭載されている。ブート・デバイスは、PCシステムを起動するために最低限必要なデバイス(周辺機器)であり、オペレーティング・システムをロードする前に初期化しなければならない。ブート・デバイスは、OSがインストールされた磁気ディスク装置、ディスプレイ、およびキーボードなどを含む。ブート・デバイスの構成に関しては、PCシステムの起動時にBIOSのPnP機能が実行されることによって各ブート・デバイスが自動的に認識され、システム・リソースに関わる設定が行われる。その後でOSが起動され、BIOSによって認識されたブート・デバイスに対応したデバイス・ドライバ(以後これを初期ドライバという)がメモリにロードされ、ブート・デバイスの使用が可能となる。そこからさらに、PnPに関わるプロセスが実行されることによって、ブート・デバイス以外の装置についても自動的に認識され、適切なデバイス・ドライバがシステム内に読み込まれ設定される。
デバイスの設定の方法にかかる技術がいくつか開示されている。たとえば特許文献1では、PCシステムの構成に応じてBIOSのハードウェア制御パラメータを自動的に変更する技術が開示されている。特許文献2では、デバイスの設定に使用されるシステム管理モード(SMM)用のデータを管理する方法が開示されている。
特開平8−44571号公報 特表2000−512406号公報
一方、PCのハードウェアについては、常に技術改良が行われ、より高性能かつ高機能なデバイスおよびデバイス規格の開発が続いている。たとえば、磁気ディスク装置からデータの転送を行う際の方式の一つであるPCIバスマスタ転送方式は、磁気ディスク装置からメイン・メモリへデータを直接入出力させることにより、CPUによる制御を必要としないため現在実行中のタスクなどの処理が妨げられることがないという長所がある。このため、PCのデータ転送において最も一般的な転送方式の一つになっている。
しかし、このPCIバスマスタ転送方式でデータの転送速度を高速化するためには、磁気ディスク装置とマザー・ボードとの間を接続するケーブルの芯数を増やす必要がある。同方式で最も速い133MB/秒のデータ転送速度を有するインターフェース規格であるUltraATA/133では、80芯のフラット・ケーブルにより磁気ディスク装置とマザー・ボードとの間を接続する。PCシステムの小型軽量化への要求、および設計の自由度への要求などから、これ以上ケーブルの芯数を増やすことは困難である。また、ケーブルの芯数を増やさずにデータ転送速度を高速化することも困難である。
そこで、磁気ディスク装置の新しいインターフェース規格であるシリアルATAが制定され普及してきている。磁気ディスク装置とマザー・ボードとの間を接続するケーブルの芯数が、UltraATA/133では80芯であるのに対して、シリアルATAでは7芯が採用されている。シリアルATAは、UltraATAに比べてケーブルが大幅に細くなるため、PCの小型軽量化への要求および設計の自由度への要求に適応できる。シリアルATAでは、UltraATA/133を含む従来のIDEと互換性のある動作モードの他に、AHCI(Advanced Host Controller Interface)と呼ばれる高速・高機能な転送モードが規定されている。最新規格であるシリアルATA2のAHCIモードでは300MB/秒のデータ転送速度が実用化されている。さらに、1つのインターフェースに接続可能な磁気ディスク装置の台数の増加、磁気ディスク装置に対するアクセス時のコマンド処理を効率化するNCQ(Native Command Queuing)への対応、電源を投入したままでケーブル・コネクタの着脱が可能なホット・プラグへの対応などのように、性能および機能の向上が図られている。なお、AHCI転送モードのデータ転送速度は、2007年までには600MB/秒にまで高速化される予定になっている。
しかし、磁気ディスク装置を例にして述べたように次々と登場するハードウェアの新しい規格に対して、OSによるデバイス・ドライバがすぐに対応していないといった状況がある。たとえば、米国マイクロソフト社の現行のOSであるWindows XP(登録商標)は、前述のAHCI転送モードに対して正式には対応していない。同規格に対しては、2006年末までに発売される同社の次期OSであるWindows Vista(登録商標)から正式対応する予定となっている。その他のOS、たとえばLinux(登録商標)などについては、新規格に対しては各OSが別個に対応する必要があり、Windows(登録商標)シリーズの新規格への対応とは時期が異なる。またOSが新規格へ対応しない場合もある。
WindowsシリーズのOSの場合、BIOSによりブート・デバイスが認識されて新しい動作モードに設定されても、OSに制御が移行したときに当該動作モードに対応する初期ドライバが存在しない場合にはOSを正常に起動することができない。ブート段階では、BIOSはOSが新しい動作モードのデバイスに対応したデバイス・ドライバを含んでいるか否かを認識することはできない。また、ブート・デバイスはOSがロードされる前に初期化される必要があるため、ブート段階がBIOSからOSに移行したあとに、OSが自ら含んでいるデバイス・ドライバに応じてデバイスの設定を変更することもできない。
従って、ブート・デバイスが新しい動作モードに設定され、かつOSが当該動作モードに対応していない場合は、PCシステムをブートできないことになる。このときPCシステムはブートの途中で停止し、ディスプレイはWindowsで重大なシステム・エラーが発生したときの表示状態であるブルー・スクリーンになる。このような場合でもブルー・スクリーンに移行する前にあらかじめデバイス・ドライバの存在を調べ、起動時にファンクション・キーのF6を押して、当該ブート・デバイスに対応した初期ドライバを手動で組み込むことでブートすることができる。しかし、PCシステムの一般的なユーザは、このような操作についての知識が十分ではなく、自力で適切な初期ドライバを導入することは困難である。
そのような事態が発生することを回避するために、通常新しいデバイスを採用するときは、デバイス・コントローラを新しい規格と従来の規格との両方に対応できるように設計して、従来のデバイス・ドライバでも動作できるようにしておくのが一般的である。そして、BIOSによるデバイスの設定を従来の規格に対応するようにしておけば、OSはこれに対応した初期ドライバをロードしてブートを完了することができる。しかしこれではデバイスが新しい規格に対応して、かつOSもそれに対応した初期ドライバを導入していたとしても、デバイスは従来の性能で動作することになってしまう。たとえば、前述のシリアルATA2に対応した磁気ディスク装置でOSが同規格に対応していても、BIOSがUltraATA/133としてデバイス・コントローラを設定すると、データ転送速度は133MB/秒となり、同装置が保有する300MB/秒のデータ転送速度を発揮できないことになる。
新製品として販売されるPCシステムの多くは、ユーザが電源を入れてすぐに使用できるよう、OSや各種アプリケーション・ソフトをプリインストールされた状態で販売される。製造メーカは、プリインストールされるOSには柔軟に対応できるようにPCシステムを製造しており、かつ、新規格のデバイスを搭載する際にはユーザに当該デバイスが発揮する最高の性能を提供したいと考える。ここにハードウェアの進化に対してソフトウェアの追従の遅れがある現状においては、進化したハードウェアの性能をユーザが享受する上での障害が存在することになる。
そこで本発明の目的は、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、適切な動作モードにデバイス・コントローラを設定する方法を提供することにある。さらに本発明の目的は、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、ユーザの負担を軽減して適切な動作モードにデバイス・コントローラを設定する方法を提供することにある。さらに本発明の目的は、複数の動作モードを備えるデバイスが導入されたコンピュータ・システムにおいて、デバイス・ドライバの存在する動作モードにデバイス・コントローラを設定する方法を提供することにある。そして本発明の目的は、前述のようなデバイス・コントローラの設定が可能なコンピュータ・システム、コンピュータ・プログラム、および記録媒体を提供することにある。
本発明においては、コンピュータに搭載されるデバイス・コントローラが、少なくとも2つの動作モードを有しており、一方の動作モードに対応したデバイス・ドライバがコンピュータに導入されていないときの課題を解決する。このような状況が生ずる典型的な例は、デバイス・コントローラが進化して新たな動作モードの機能が付加されたにもかかわらず、オペレーティング・システムに標準的に組み込まれるデバイス・ドライバがそれに対応できない場合に発生する。本発明においては、基本プログラムの動作環境下でデバイス・コントローラの設定を行い、オペレーティング・システムの動作環境下でデバイス・ドライバの存否を確認する。
本発明を理解する上では、デバイス・コントローラの第1の動作モードを従来の動作モードに対応させ、第2の動作モードを新しい動作モードに対応させることができる。第1の動作モードに対しては、通常はデバイス・ドライバが必ずオペレーティング・システムに組み込まれているので、BIOSなどの基本プログラムがデバイス・コントローラを第1の動作モードに設定してもコンピュータを起動することができる。デバイス・コントローラを対応するデバイス・ドライバが必ずインストールされている第1の動作モードに設定しておくことで、ブートが途中で停止してブルー・スクリーン状態になることを防止することができる。
デバイス・コントローラはオペレーティング・システムの環境下で完全な動作をすることができるようになっているため、コンピュータは必要なデバイス・ドライバがインストールされているか否かを、オペレーティング・システムの動作環境下でないと認識できない。よって、第2の動作モードに対応するデバイス・ドライバがオペレーティング・システムに導入されているか否かをオペレーティング・システムの動作環境下で検査する。第2の動作モードに対応するデバイス・ドライバがインストールされているときは、進化した機能を使用するためにデバイス・コントローラを第2の動作モードに設定変更する。デバイス・ドライバはデバイス・コントローラのメーカにより配布されるが、オペレーティング・システムに対する導入はオペレーティング・システムのメーカ、コンピュータの製造メーカおよび販売会社、あるいはユーザなどのさまざまな場面で行われる。
デバイス・コントローラの設定は基本プログラムが行うため、本発明における設定の変更も基本プログラムで一元的に行うことが望ましい。また、設定変更にかかるデバイス・コントローラが設定変更の途中で動作していないことが保証されることが必要である。基本プログラムがシングル・タスクで実行されるプログラムである場合には、デバイス・コントローラの設定変更中にデバイス・コントローラが動作していないことを容易に確認することができる。デバイス・コントローラが磁気ディスク装置のインターフェースである場合には、INT13hハンドラの実行状態を監視して設定変更にかかるデバイス・コントローラが動作していないことを確認することができる。
また、オペレーティング・システムの動作環境下で第2のデバイス・ドライバの存在を検出したときに、SMIで基本プログラムの動作環境に移行すると、CPUはSMM動作でしかアクセスできないメモリ空間を使用するため安全に設定変更をすることができる。そして、基本プログラムがデバイス・コントローラを第2の動作モードに設定した後にコンピュータはオペレーティング・システムの動作環境に戻り、デバイス・コントローラが第2の動作モードで動作するようにプラグ・アンド・プレイで第2のデバイス・ドライバを設定することができる。第2のデバイス・ドライバの存否の検査は、プラグ・アンド・プレイを実行する前に行うことで、デバイス・コントローラが第2の動作モードに設定された後に、初期ドライバとしてメモリにロードされた第2の動作モードに対応するデバイス・ドライバを設定することができる。
第2の動作モードに対応するデバイス・ドライバがインストールされており、デバイス・コントローラの動作モードが一旦第2の動作モードに設定されても、その設定はその時点限りにして、基本プログラムがデバイス・コントローラの設定のために参照するCMOSなどに格納された情報は第1の動作モードに維持しておくとデバイス・コントローラはつねに第1の動作モードでブートされるので都合がよい。その理由は、起動時に第1の動作モードを維持しておくと、第1の動作モードと第2の動作モードに対応するデバイスが、第1の動作モードにだけ対応するデバイスに交換されたときにもブルー・スクリーン状態になることを防ぐことができる点にある。また、デバイス・コントローラが磁気ディスク装置のインターフェースである場合には、第2の動作モードに対応しないデバイスにブート・デバイスを変更したり、第2の動作モードに対応していないパティションからブートする場合にもブートの失敗を防ぐことができる点にある。
オペレーティング・システムの動作環境下で第2のデバイス・ドライバが検出されないときは、デバイス・コントローラは第1の動作モードで動作する。このような構成により、進化したデバイス・コントローラが搭載され、それに対応するデバイス・ドライバがオペレーティング・システムに含まれてるか否かが不明な場合でも、デバイス・ドライバの存否を判断して、適切にデバイス・コントローラの設定をすることができる。デバイス・コントローラがブート・デバイスのインターフェースである場合は、コンピュータ操作に不慣れなユーザに対してもブルー・スクリーン状態を排除して、デバイスを進化した状態で容易に使用させることができる。
本発明によって、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、適切な動作モードにデバイス・コントローラを設定する方法を提供することができた。さらに、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、ユーザの負担を軽減して適切な動作モードにデバイス・コントローラを設定する方法を提供することができた。さらに本発明の目的は、複数の動作モードを備えるデバイス・コントローラが導入されたコンピュータ・システムにおいて、デバイス・ドライバの存在する動作モードにデバイス・コントローラを設定する方法を提供することができた。そして本発明の目的は、前述のようなデバイス・コントローラの設定が可能なコンピュータ・システム、コンピュータ・プログラム、および記録媒体を提供することができた。
図1は、本発明の実施の形態にかかるPCシステム10の外観について示した図である。PCシステムのPC本体11は、上面に、着脱可能とされたキーボード13が配設されており、後縁端にはディスプレイ15が回動可能に取り付けられている。キーボード13上には、PCシステムの動作時に、ディスプレイ15の画面上に表示されるカーソルを移動させるためのポインティング・デバイス17が装備されている。なお、図1ではノート型のPCシステムを示しているが、本発明の実施形態はこれ以外にも、たとえばデスクトップ型PC、タブレット型PC、サーバ用コンピュータ・システムなどにも適用することができる。
図2は、本発明の実施の形態にかかるPCシステム10の、ハードウェアの構成について示したブロック図である。PCシステム10の全体を制御するCPU21は、OSの制御下で各種プログラムを実行する。CPU21は、頻繁にアクセスするごく限られたコードやデータを一時格納することで、メイン・メモリ25への総アクセス時間を短縮するための高速動作メモリであるL2(レベル2)−キャッシュを含んで構成されている。CPU21は、自身の外部ピンに直結されたプロセッサ直結バスとしてのFS(FrontSide)バス27、高速のI/O装置用バスとしてのPCI(Peripheral Component Interconnect)バス29、および低速のI/O装置用バスとしてのISA(Industry Standard Architecture)バス31という3階層のバスを介して、後述の各ハードウェア構成要素と相互接続されている。
またCPU21は、SMI(System Management Interrupt)ハンドラによって、システム管理用の動作モードであるSMM(System Management Mode)で動作することが可能である。SMIは米国インテル社製のCPUに存在する割り込み制御ハンドラであり、主にサスペンド、レジューム、電源管理およびセキュリティ関連の操作などに利用される特権実行モードである。CPU21がSMMで動作している間、すべての割り込みは無効になる。
FSバス27とPCIバス29は、一般にメモリ/PCI制御チップと呼ばれるCPUブリッジ(ホスト−PCIブリッジ、通称ノース・ブリッジ)33によって連絡されている。本実施形態のCPUブリッジ33は、FSバス26とPCIバス28との間のデータ転送速度の差を吸収するためのデータ・バッファ機能を含み、アクセス動作を制御するためのメモリ・コントローラ23を介してメイン・メモリ25と接続される。
メイン・メモリ25は、CPU21の実行プログラムの読み込み領域として、あるいは実行プログラムの処理データを書き込む作業領域として利用される書き込み可能メモリである。なお、ここでいう実行プログラムには、OS、周辺機器の動作に必要な情報をOSに提供したりその動作を管理したりするプログラムである各種デバイス・ドライバ、特定業務に向けられたアプリケーション・プログラム、BIOSフラッシュROM52に格納されたBIOSなどのファームウェアが含まれる。本実施の形態に関連したメイン・メモリ25内部のデータ構成については後述する。
ビデオ・サブシステム35は、ビデオに関連する機能を実現するためのサブシステムであり、CPU21からの描画命令を実際に処理した描画情報をビデオメモリ(VRAM)に一旦書き込むと共に、VRAMから描画情報を読み出してディスプレイ15に描画データとして出力するグラフィック・コントローラを含む。
PCIバス29は、比較的高速なデータ伝送が可能なタイプのバスであり、カードバス・コントローラ37、オーディオ・サブシステム39、ネットワーク・アダプタ41などのような比較的高速で動作するPCIデバイス類がこれに接続される。カードバス・コントローラ37には、たとえばPCMCIA/JEIDA仕様に準拠したPCカード型の周辺機器(図示せず)が接続される。
PCIバス28とISAバス30はPCI−ISAブリッジ(通称サウス・ブリッジ)43によって相互に接続されている。図3は、PCI−ISAブリッジ43およびその周辺の装置について、より詳細に示したブロック図である。PCI−ISAブリッジ43は、PCIバス29とISAバス31とのブリッジ機能、DMAコントローラ機能81、プログラマブル割り込みコントローラ(PIC)機能77、プログラマブル・インターバル・タイマ(PIT)76機能、シリアルATA2/IDE(Integrated Drive Electronics)インターフェース83機能、USB(Universal Serial Bus)79機能、およびSMB(System Management Bus)インターフェース73機能を備えていると共に、リアルタイムクロック(RTC)75を内蔵している。
また、PCI−ISAブリッジは、シリアルATA2/IDEインターフェース83を有し、シリアルATA2およびIDE仕様に準拠した磁気ディスク装置(HDD)47や、CD−ROMドライブ、DVDドライブなどの光学ドライブ49が接続される。また、PCI−ISAブリッジ43内のUSB79にはUSBポート45が接続され、このUSBポート45には、USBコネクタを介して、USB対応の各種周辺機器(図示せず)を接続することが可能である。
図2に戻って、ISAバス31はPCIバス29よりもデータ転送速度が低いバスであり、I/Oコントローラ51、EEPROMなどから成るBIOS−ROM53、CMOS−RAM55、環境チップ57、マウス・コントローラ59、キーボード・コントローラ61などのような比較的低速で動作する周辺機器類が接続される。マウス・コントローラ59には、PCシステム10に内蔵のポインティング・デバイス17、または外付けのマウス(図示せず)が接続される。キーボード・コントローラ61にはキーボード13が接続される。I/Oコントローラ50はI/Oポート(図示せず)を介して、フロッピー(登録商標)ディスク・ドライブ(FDD、図示せず)の駆動、パラレル・ポートおよびシリアル・ポート(いずれも図示せず)を介した入出力を制御する。
BIOS−ROM53およびCMOS−RAM55については後述する。環境チップ57は、8〜16ビットのマイクロプロセッサの他に、RAM、ROM、アナログ入力、タイマ、デジタル入出力などを備え、PCシステム10の筐体の内部に取り付けられた温度センサ67および電圧センサ69からの入力を受けて冷却ファン65および電源装置(図示せず)などの制御を行う。
なお、図2は本実施の形態を説明するために簡素化して記載したものであり、主要なハードウェアの構成および接続関係を表示したに過ぎないものである。PCシステム10を構成するためには、これら以外にも多くの電気回路および装置が必要であるが、それらは当業者には周知であるので詳しく言及しない。また、図2で記載した複数のブロックを1個の集積回路としたり、逆に1個のブロックを複数の集積回路に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
システム・コントローラ71としての機能が、CPUブリッジ33およびPCI−ISAブリッジ43にまたがって実装される。本実施の形態にかかるPCシステム10で使用されているPCI−ISAブリッジ43は、米国インテル社から型番ICH7で入手可能なサウス・ブリッジ用のチップ・セットである。チップ・セットに組み込まれたシリアルATA2/IDEインターフェース83は、シリアルATA2の規格に対応し、さらにその中でも最も高速・高機能な動作モードであるAHCI転送モードを有したデバイス・コントローラである。ICH7はAHCI転送モードの他に従来のIDE(UltraATA/133)と互換性のあるATA転送モードも保有している。
ICH7は、バックワード・コンパチビリティ(Backward Compatibility、下位互換性)がないので、AHCI転送モードに設定してATA転送モードに対応したデバイス・ドライバで動作させ、その後PnPでAHCI転送モードに対応したデバイス・ドライバをインストールすることができない。したがって、ICH7はPCシステム10が起動するときには、デバイス・ドライバが存在する動作モードに設定しておく必要がある。ATA2/IDEインターフェース83におけるAHCI転送モードとATA転送モードの間での動作モードの切り替えは、システムBIOS101が内部レジスタ85の設定情報を変更することにより行うことができる。内部レジスタ85の設定情報が変更されると、ATA2/IDEインターフェース83のレジスタに記憶されたクラス・コードが変更される。BIOSはクラス・コードを参照して動作モードに応じた適切なデバイス・ドライバを設定できるようになる。
図4は、本発明の実施例にかかるPCシステム10の、BIOS−ROM53、CMOS−RAM55、メイン・メモリ25、および磁気ディスク装置47が記憶する各種ソフトウェアの構成を示す図である。図4(A)に示すBIOS−ROM53は、不揮発性で記憶内容を電気的に書き替え可能なメモリであり、システムの起動および管理に使われるシステムBIOS101、電源管理ユーティリティ103、温度管理などの各種ユーティリティ105、SMIハンドラ107、本発明にかかるハードウェア切り替えユーティリティ109、INT13hハンドラ111などが記憶されている。図4(B)に示すCMOS−RAM55は、システムBIOSによって操作されるデバイス・コントローラの設定情報113を格納しており、PCシステムの電源を切っても消失しないようにバッテリでバックアップされたRAMである。ここでいう設定情報113として特にシリアルATA2/IDEインターフェース83に関連するものとしては、起動順序、ドライブ番号、各ドライブに対する接続方法、およびデータ転送に関するパラメータなどがある。
図4(C)に示すメイン・メモリ25には、PCシステムの通常の動作で使用されるユーザ領域121の他に、SMRAM(System Management RAM)123としての領域が確保されている。CPU21がSMMに入ると、既にCPU21で実行されているソフトウェアからはSMRAMにはアクセスできない。図4(D)に示す磁気ディスク装置47には、起動時に最初にアクセスされるマスター・ブート・レコード131、ユーザ・データ133、各種アプリケーション・ソフト135、およびWindows XP(登録商標)であるOS137が格納されている。ブート・セクタ147は、PCシステムの起動時にOS137を呼び出すためのプログラムが記録されている。OS137の中には、各種デバイスをOS上で駆動するデバイス・ドライバ139、およびWindowsが提供するシステム定義のデータ・ベースであるレジストリ141を含んでいる。レジストリ141の中には、アプリケーション・プログラムやデバイス・コントローラ設定用のデータが格納される。
デバイス・ドライバ139は、本実施の形態にかかるプリPnPドライバ211(ファイル名prepnp.sys)、PnPの動作を行う周知のACPIドライバ213(ファイル名ACPI.sys)、およびAHCIに対応したデバイス・ドライバ143(ファイル名iaStor.sys)を含む。また、レジストリ141には、OS起動時に利用するサービス内容をすべて登録するサービス情報207、サービス情報207に登録された具体的な内容を示すPrePlugAndPlayサービス情報201およびAHCIデバイス・サービス情報、さらにその他のサービス情報が登録されている。なお、本実施の形態にかかるデバイス・ドライバの機能やレジストリ情報については後に詳しく説明する。
図5(A)は、当該Windows XPの各種設定を保存しているレジストリ141の中で、本実施の形態にかかるキーの設定例を示す図である。レジストリ141は階層化されたツリー構造中にデータを蓄えており、ツリー中の各ノードは「キー(key)」と呼ばれる。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Services\prepnpというキーには、本実施の形態にかかるプリPnPドライバ211が、サービス名PrePlugAndPlay201として登録されている。そして、OS起動時に実行されるサービスの順番が登録されるHKEY_LOCAL_MACHINE\Syetem\CurrentControlSet\Control\ServiceGroupOrder207というキーに、サービス名PrePlugAndPlay201を登録する。その際本実施の形態においては、サービスPrePlugAndPlay201は、システムの起動時に使用されるサービスであるSystem Reserved203の後であり、かつPnPの動作を含むサービスであるBoot Bus Extender205よりも前に起動されるように登録する必要がある。もちろん、AHCI転送モードに対応したデバイス、および当該デバイスのデバイス・ドライバについての設定145は、当該レジストリ内のHKEY_LOCAL_MACHINE\Hardwareなどに存在する適切なキーに保存される。
図5(B)は、OS137に含まれるデバイス・ドライバ139の中で、OS137が起動される時に読み込まれるドライバについて示した図である。OS137がインストールされているディレクトリをC:\windowsとすると、ディレクトリC:\windows\system32\DRIVERS\には、プリPnPドライバ211(ファイル名prepnp.sys)、PnPの動作を行うACPIドライバ213(ファイル名ACPI.sys)、およびAHCI転送モードに対応したデバイス・ドライバ143(ファイル名iaStor.sys)が存在する。図5(B)は、レジストリ141を参照したときに登録されたデバイス・ドライバが実際に読み込まれる順番に上から下へと表示されており、プリPnPドライバ211は、ACPIドライバ213よりも先に読み込まれている。
本実施の形態におけるブート・デバイスとしては、磁気ディスク装置47、グラフィック・コントローラを含むビデオ・サブシステム35、ディスプレイ15、キーボード13、マウスを含むポインティング・デバイス17などが該当するが、本実施の形態では磁気ディスク装置47を対象として説明する。今、このPCシステム10に、ATA転送モードおよびAHCI転送モードという2種類の転送モードに対応した磁気ディスク装置47を取り付け、PCシステム10上でAHCI転送モードに正式に対応していないOSである米国マイクロソフト社のWindows XPを起動するものとする。
まずPCシステム10に電源が投入されると、BIOS−ROM53からシステムBIOS101が読み出されて実行され、CMOS−RAM55からブート・デバイスに関する設定情報113を読み出してデバイスの構成を決定する。磁気ディスク装置47が、従来のATA転送モードで起動されることがCMOS−RAM55の内容で決定され、シリアルATA2/IDEインターフェース83内のレジスタ85にその情報が書き込まれる。CPU21は、システムBIOS101を実行して、磁気ディスク装置47の動作に関するソフトウェア割り込みで実行されるINT13hハンドラ111を呼び出すことにより、同ドライブの先頭セクタ(マスター・ブート・レコード131)をメイン・メモリ25上にロードし、その中のブート・ストラップ・ローダ149を実行する。ブート・ストラップ・ローダ149によって、起動ドライブ内の起動可能な基本領域の先頭セクタ(ブート・セクタ147)を呼び出し、実行することによってOSの読み込みが始まる。
図6は、従来技術のPCシステムの起動プロセスについて示したフローチャートである。図6に示すプロセスでは、PCシステム10の起動が開始されたら(ブロック301)、まずBIOSによってハードウェアの初期設定が行われ(ブロック303)、磁気ディスク装置47はATA転送モードで起動される。ブロック305でOSの起動が開始されるが、ブート・デバイスはPnPが実行される前に使用可能になっていないと、以後の起動プロセスを継続することができない。そのため、BIOSはブート・デバイスに関連のあるデバイス・ドライバをすべてメイン・メモリ25にロードする。そしてOSはレジストリに記憶された各ブート・デバイスの識別子であるクラス・コードを利用して、ブート・デバイスとデバイス・ドライバを関連づけることによりブート・デバイスの使用が可能となる(ブロック307)。つづいて、PnPに関わるプロセスが実行されることによって(ブロック309)、ブート・デバイス以外のデバイスが自動的に認識され、適切なデバイス・ドライバがシステム内に読み込まれて設定され起動プロセスが完了する(ブロック311)。その際、ブロック305でロードされたデバイス・ドライバの中でAHCI転送モードに対応するデバイス・ドライバ143を含んだ不要なドライバは全て消去され、ATA転送モードに対応するデバイス・ドライバを含んだ必要なドライバがメイン・メモリ25に常駐する。
ブロック303において、システムBIOSがシリアルATA2/IDEインターフェース83内のレジスタ85に、AHCI転送モードに設定する情報を書き込んだ場合は、ブロック307でBIOSはATA2/IDEインターフェース83に対応するデバイス・ドライバを見つけることができないためディスプレイはブルー・スクリーン状態になってPCシステム10の起動が停止する。このとき磁気ディスク装置はOSの制御下で動作できる環境が整わないので、PnPのプロセスに移行することもできない。
図7は、本実施の形態にかかるATA転送モードとAHCI転送モードとを備えたPCシステム10で、AHCI転送モードを使用可能とする起動プロセスを示したフローチャートである。図7に示す手順では、PCシステム10の起動開始から初期ドライバの読み込みまでのブロック401〜407までは、図6に示したブロック301〜307に示す手順に対応するので説明を省略する。この際、シリアルATA2/IDEインターフェース83は、OSが確実に起動されるように、図6に示した従来技術と同じく、BIOSによりATA転送モードに設定される。ブロック407でブート・デバイスに対応したすべての初期ドライバがメイン・メモリ25にロードされる。このときBIOSは、シリアルATA2/IDEインターフェース83に使用する可能性のあるATA転送モードに対応したデバイス・ドライバとAHCI転送モードに対応したデバイス・ドライバ143をメイン・メモリにロードした後に、プリPnPドライバ211を実行する(ブロック409)。
プリPnPドライバ211は、PnPに関わるプロセスが実行される前に、デバイス・ドライバ139の導入状況をレジストリ141から入手する。そして、AHCI転送モードに対応したデバイス・ドライバ143のインストールがされているか否かをディレクトリC:\windows\system32\DRIVERS\の情報で調べ、AHCI転送モードに対応したデバイス・コントローラについての情報145がレジストリ141に登録されているかどうかを調べる(ブロック411)。AHCI転送モードに対応したデバイス・ドライバ143およびレジストリにおけるシリアルATA2/IDEインターフェース83の登録情報が存在していなければ、ACPIドライバ213はATA転送モードに設定されたATA2/IDEインターフェース83が動作できるようにデバイス・ドライバをメイン・メモリ25に常駐させて、PnPに関わるプロセスおよびOSの起動に関わるその他のプロセスを続行する(ブロック415)。そして磁気ディスク装置47はATA転送モードで動作する状態でOSの起動が完了する(ブロック417)。なお、プリPnPドライバ211自身はメモリに常駐する必要はないので、OSの起動が完了したらメモリから消去される。
プリPnPドライバ211がAHCI転送モードに対応したデバイス・ドライバ143およびレジストリにおけるシリアルATA2/IDEインターフェース83の登録情報を検出した場合は、プリPnPドライバ211からSMIを発行してCPU21に送る。SMIを受け取ったCPU21はSMMに入り、シリアルATA2/IDEインターフェース83の動作をAHCI転送モードに切り替える操作を行う(ブロック413)。動作モードの切り替え操作を、誤動作を発生させないで確実に行うためには、ATA2/IDEインターフェース83が他のプロセスに使用されていないことを保証する必要がある。WindowsシリーズのOSはマルチ・タスクであるため、同OS上の処理で動作モードを切り替える動作を行うと、磁気ディスク装置が他のプロセスに使用されている状態で動作モードの切り替えを始めてしまい、その結果として誤動作を招く危険性がある。そのため、本実施の形態では動作モードの切り替え操作を、PCシステム10の制御をOSからBIOSに移して行う。
図8は、本発明の実施例にかかるPCシステム10で、図7のブロック413に示された動作モードの切り替えの動作をさらに詳しく示した図である。SMMに入ったCPUは(ブロック501〜505)BIOSの制御下で、SMIハンドラ107を通じて、INT13hハンドラ111によって磁気ディスク装置47の動作状況を確認する(ブロック507)。もし磁気ディスク装置47が動作していれば、改めてINT13hハンドラによって磁気ディスク装置47およびATA2/IDEインターフェース83を停止させる。(ブロック508)。BIOSの制御による動作はシングル・タスクであるため、複数のタスクを同時に実行できない。かつ、SMMで動作するCPUでは、前述のようにすべての割り込みが無視される。さらに、SMMで動作するCPUは、メイン・メモリ25ではSMRAM123を独占的に使用する。BIOS−ROM53からSMRAM123にプログラムを読み込んで実行すれば、それ以外のプログラムがSMRAMにアクセスすることは不可能となり、実行されることもない。このため、SMMで動作するCPU上で、BIOSの制御下でINT13hハンドラの状況さえ確認すれば、磁気ディスク装置47およびインターフェース83が動作していないことは容易に保証できる。
ブロック507でINT13hハンドラ111が動作していないことが確認されたら、次にSMIハンドラ107は、ハードウェア切り替えユーティリティ109を呼び出し、磁気ディスク装置47に接続されるATA2/IDEインターフェース83の設定をATA転送モードからAHCI転送モードに変更すると共に(ブロック509)、必要に応じて当該インターフェースに従来のATA転送モードとは異なるIRQやDMAなどのシステム・リソースを割り当てることもできる(ブロック511)。AHCI転送モードへの設定変更が完了したら、CPUのSMMでの動作が終了する(ブロック513〜515)。
当該PCシステム10では、磁気ディスク装置47およびATA2/IDEインターフェース83の動作が再開され、OSによる制御で図7に示された起動のプロセスが継続される。PnPに関わるACPIドライバ213が実行され、ブート・デバイス以外のデバイスが自動的に認識され、適切なデバイス・ドライバがシステム内に読み込まれて設定され(ブロック415)、OSの起動が完了する(ブロック417)。なお、この場合もプリPnPドライバ211自身はメモリに常駐する必要はないので、OSの起動が完了した後で削除される。また、ATA転送モードに対応するデバイス・ドライバを含んだ不要なドライバは全て消去され、AHCI転送モードに対応するデバイス・ドライバ143を含んだ必要なドライバがメイン・メモリ25に常駐する。
この方法により、たとえばWindows XPとLinux、あるいはWindowsの旧バージョンや他言語バージョンなど、複数種類のOSを切り替えて使用することが可能なPCシステムであっても、AHCI転送モードに対応しているOSのときは同モードで動作させ、AHCI転送モードに対応していないOSのときはATA転送モードで動作させることができる。この時、PCシステム10にAHCI転送モードに対応したデバイス・ドライバがインストールされていて一旦はATA2/IDEインターフェース83をAHCI転送モードで動作させても、CMOS−RAM55の設定情報は変更しないでATA転送モードを維持する。
本実施の形態にかかるAHCI転送モードに対応したインターフェースの切り替えプログラムを有するOSとこれを有さないOSとを含んだ複数のOSを切り替えて使用することが可能なPCシステムにおいて、起動時にBIOSがインターフェースをAHCI転送モードに設定すると、切り替えプログラムを有さないOSを起動する際に、前述のようなブルー・スクリーン状態が発生するが、本実施の形態にかかるPCシステムでは、起動時にBIOSが磁気ディスク装置を常にATA転送モードに設定してこれを防止する。また、本実施の形態にかかるPCシステムで、磁気ディスク装置をATA転送モードにしか対応しない物に交換した場合も、PCシステムが起動される時にはATA転送モードに設定されるので、ブルー・スクリーン状態が発生することはない。
図9は、プリPnPドライバ211およびデバイス・ドライバ143のインストールについて示したフローチャートである。同図で示されるインストールは、AHCI転送モードおよびATA転送モードに対応した磁気ディスク装置47およびATA2/IDEインターフェース83を有し、本実施の形態にかかるハードウェア切り替えユーティリティ109およびこれに関わるSMIハンドラ107を記憶したBIOS−ROM53が装備されたPCシステム10に対して行われる。OSがインストールされているディレクトリをC:\windowsとすると、図9の手順を開始すると(ブロック601)、ディレクトリC:\windows\system32\DRIVERS\に、プリPnPドライバ211(ブロック603)およびAHCI転送モードに対応したデバイス・ドライバ143(ブロック605)がコピーされる。さらに、図5(A)で示したようにOSのレジストリ141内にプリPnPドライバおよびAHCI転送モードに対応した設定が保存され(ブロック607)、インストールが終了する(ブロック609)。
組み立て工場から出荷されて販売される前のPCシステム10が、AHCI転送モードおよびATA転送モードに対応した磁気ディスク装置47およびATA2/IDEインターフェース83を有し、本実施の形態にかかるハードウェア切り替えユーティリティ109およびこれに関わるSMIハンドラ107を記憶したBIOS−ROM53を装備している場合を考える。販売者は、このPCシステム10に対して、OSおよび各種アプリケーション・ソフトのプリインストールの他に、プリPnPドライバ211およびデバイス・ドライバ143のインストール、およびレジストリ141の設定をする必要がある。その際、図9で示した手順が一括してできるようにインストーラを構成することにより、それらのインストールにかかる販売者の手間を軽減し、当該PCシステム10を購入したユーザに、最初に電源を投入した時点からAHCI転送モードで磁気ディスク装置47が動作する環境を容易に提供することができる。
図10は、本実施の形態にかかるドライバおよびユーティリティをインストールするためのインストーラについて示した図である。図10(A)は、プリPnPドライバ211およびAHCI転送モードに対応したデバイス・ドライバ143のインストールに使用される、第1のインストーラ701を示す。第1のインストーラ701は、プリPnPドライバ211、AHCI転送モードに対応したデバイス・ドライバ143、およびインストール実行プログラム705を含み、インストール実行プログラム705を実行すれば図9で示したインストールを一括して実行できるように構成されている。
図10(B)は、ハードウェア切り替えユーティリティ109およびこれに関わるSMIハンドラ107のインストールに使用される、第2のインストーラ703を示す。第2のインストーラ703は、ハードウェア切り替えユーティリティ109、SMIハンドラ107、およびインストール実行プログラム707を含む。EEPROM等の書き換え可能な不揮発性メモリで構成されているPCシステムのBIOS−ROM53に対して、インストール実行プログラム707は、ハードウェア切り替えユーティリティ109およびこれに関わるSMIハンドラ107をコピーする。
これらのインストーラ701および703は、CD−ROMもしくはフロッピー・ディスクなどの記憶媒体に収めて当該磁気ディスク装置47に添付して供給することも、当該磁気ディスク装置47自体にATA転送モードで読み取り可能なように記憶させて供給することも、またインターネットなどの通信手段での配信によって供給することも可能である。
ユーザが既に入手して使用しているPCシステム10が、AHCI転送モードおよびATA転送モードに対応したATA2/IDEインターフェース83のみを有しており、そこにAHCI転送モードおよびATA転送モードに対応した磁気ディスク装置47をユーザが単体で入手してPCシステム10に接続する場合を考える。ユーザが入手した磁気ディスク装置47には、図10で示した第1および第2のインストーラ701および703が添付されている。ユーザは、これらのインストーラ701および703を実行し、当該インストールが完了した後でPCシステムの電源を切り、当該磁気ディスク装置47を取り付けて再び電源を投入すれば、AHCI転送モードで当該磁気ディスク装置を動作させることができる。なお、当該磁気ディスク装置の取り付けは、第1および第2のインストーラ701および703の実行より前になってもよい。この場合は、インストールが完了するまで、磁気ディスク装置47はATA転送モードで動作する。
また、通常はPCシステム本体のメーカとOSのメーカは別個である。そのため、AHCI転送モードおよびATA転送モードに対応した磁気ディスク装置47およびATA2/IDEインターフェース83を有し、本実施の形態にかかるハードウェア切り替えユーティリティ109およびこれに関わるSMIハンドラ107を記憶したBIOS−ROM53を装備しているPCシステム10本体が、OSおよびドライバをインストールしない形でメーカから出荷されるという実施形態もありうる。この場合は、OSおよび第1のインストーラ701を、ユーザまたは販売者が各自でインストール可能とすることができる。OSおよび第1のインストーラ701は、記憶媒体に収めて当該システム本体に添付してもよいし、本体とは別個にユーザまたは販売者が各自で入手可能としてもよい。
次に、ディスク装置以外のブート・デバイスに対して、先の実施例と同じ方法を適用することについて説明する。ディスク装置以外にも、たとえば特殊な入力要素を備えたキーボードおよびマウス、特殊な入力データの転送方式を持ったキーボード、新規なインターフェースによるグラフィック・コントローラおよびディスプレイを接続した場合など、ブート・デバイスの構成に関わるものに対しては先の実施例と同じ方法が適用できる。ここでは、キーボード13について説明する。
従来のキーボード13の入力方式では、操作者がキーを押すと当該キーに対応したスキャン・コードがキーボード13からPCシステム10本体に送られ、OSの側で当該スキャン・コードを操作者が使用する言語(たとえば日本語、英語、中国語など)に対応させる。これに対して、USBキーボードで採用されているように、操作者が入力しようとしている文字に対応したキー・コードをPCシステム10本体に送るという入力方式もある。以下、前者の入力方式を「スキャン・コード入力」、後者の入力方式を「キー・コード入力」という。
キー・コード入力では、PCシステム10本体側にキーボード・コントローラ61が不要になる。しかし、キー・コード入力では、同じキーを押した場合でも、操作者が当該キーボードで使用する言語に応じて異なるコードがPCシステム10本体に送られる。そのため、キーボード13の内部にキー・コード入力と使用する言語に対応した回路が必要であり、OSにはキー・コード入力に対応したデバイス・ドライバおよびレジストリ、さらに使用する言語に対応したデバイス・ドライバおよびレジストリが存在することが必要である。今、スキャン・コード入力およびキー・コード入力の両方に対応したキーボードを、WindowsシリーズのOSで動作するPCシステム10に接続することを考える。キー・コード入力用のキーボードは、操作者が使用する言語に対応した別々の物が用意される。しかし、同じキー・コード入力であっても、たとえば英語用のデバイス・ドライバが存在しても、供給の遅れなどが原因で中国語用や日本語用のデバイス・ドライバが存在しない場合がある。
そこで、先の実施例と全く同じ方法が適用できる。この場合、「スキャン・コード入力」が先の実施例でいう「ATA転送モード」、「キー・コード入力および使用する言語」が「AHCI転送モード」にそれぞれ相当する。まず、OSの起動が開始された時点では、キーボード13はスキャン・コード入力で立ち上げられる。次に、キー・コード入力に対応したデバイス・ドライバおよびレジストリ、さらに使用する言語に対応したデバイス・ドライバおよびレジストリの有無がチェックされる。それらが存在しなければ、スキャン・コード入力のままでOSの起動が継続される。存在すれば、PCシステム10は一旦BIOSによる制御に移行し、キーボード13はキー・コード入力に切り替えられて、その後でOSによる制御に戻って起動が継続される。これにより、先の例で言えば英語用のキーボードを接続した場合はデバイス・ドライバの存在するキー・コード入力で起動し、日本語用のキーボードを接続した場合はキー・コード入力に対応するデバイス・ドライバが存在しないのでスキャン・コード入力で起動する、などのようなことが可能になる。
もちろん、先の実施例と同じ方法が適用できるデバイス・コントローラは、ブート・デバイスに対するデバイス・コントローラに限定されない。また、以上で挙げた実施例では一般的なPCについて述べたが、同じ方法を仮想コンピュータに適用することも可能である。その場合は、一般的なPCにおいてBIOSの制御下で行われるインターフェース切り替えの処理を、ホストOSもしくはハイパーバイザの制御下で行うことができる。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
コンピュータ装置のブート・デバイスに対して適用可能である。
本実施の形態にかかるPCシステムの外観について示した斜視図である。 本実施の形態にかかるPCシステムの、ハードウェアの構成について示したブロック図である。 本実施の形態にかかるPCシステムの、PCI−ISAブリッジおよびその周辺の装置について、より詳細に示したブロック図である。 本実施の形態にかかるPCシステムの、BIOSの構成を示した図である。 本実施の形態にかかるPCシステムで、レジストリの設定およびOSが起動される時に読み込まれるデバイス・ドライバについて示した図である。 従来技術にかかるPCシステムの起動のプロセスについて示した図である。 本実施の形態にかかるPCシステムの起動プロセスについて示した図である。 本実施の形態にかかるPCシステムで、インターフェース切り替えユーティリティの動作について示した図である。 本実施の形態にかかるPCシステムで、プリPnPドライバおよびデバイス・ドライバのインストールについて示した図である。 本実施の形態にかかるPCシステムに、必要なドライバおよびユーティリティをインストールするインストーラについて示した図である。
符号の説明
10 PCシステム
11 PC本体
13 キーボード
15 ディスプレイ
17 ポインティング・デバイス
21 CPU
23 メモリ・コントローラ
25 メイン・メモリ
33 CPUブリッジ
35 ビデオ・サブシステム
43 PCI−ISAブリッジ
47 磁気ディスク装置
53 BIOS−ROM
55 CMOS−RAM
71 システム・コントローラ
101 システムBIOS
107 SMIハンドラ
109 ハードウェア切り替えユーティリティ
139 デバイス・ドライバ
141 レジストリ
211 プリPnPドライバ
213 ACPIドライバ

Claims (27)

  1. デバイスの制御が可能な基本プログラムまたはオペレーティング・システムで動作し第1のデバイス・ドライバを含むコンピュータにおいて、該コンピュータに接続され前記第1のデバイス・ドライバで動作する第1の動作モードと第2のデバイス・ドライバで動作する第2の動作モードとを有するデバイス・コントローラを設定する方法であって、
    前記デバイス・コントローラを前記基本プログラムの動作環境下で前記第1の動作モードに設定するステップと、
    前記オペレーティング・システムの動作環境下で前記第2のデバイス・ドライバの存否を検査するステップと、
    前記第2のデバイス・ドライバが検出されたときに前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行して前記デバイス・コントローラを前記第2の動作モードに設定するステップと
    を有する設定方法。
  2. 前記第2の動作モードに設定するステップに続いて前記オペレーティング・システムの動作環境に移行するステップと、
    前記オペレーティング・システムの動作環境下で前記デバイス・コントローラが前記第2の動作モードで動作するように前記第2のデバイス・ドライバを設定するステップとを有する請求項1記載の設定方法。
  3. 前記第2のデバイス・ドライバを設定するステップがプラグ・アンド・プレイを実行するステップを含み、前記検査するステップを前記プラグ・アンド・プレイを実行するステップの前に行う請求項2記載の設定方法。
  4. 前記第2のデバイス・ドライバが検出されないときに、前記デバイス・コントローラが前記オペレーティング・システムの動作環境下で前記第1のデバイス・ドライバによる動作を継続する請求項1記載の設定方法。
  5. 前記デバイス・コントローラが、前記コンピュータのブート・デバイスのインターフェースである請求項1記載の設定方法。
  6. 前記第2の動作モードに設定するステップが、前記デバイス・コントローラの動作が停止していることを確認するステップを含む請求項1記載の設定方法。
  7. 第1の動作モードまたは第2の動作モードで動作するデバイス・コントローラが搭載されたコンピュータであって、
    CPUと、
    前記CPUが実行するプログラムを記憶するメモリと、
    前記コンピュータの起動時に前記デバイス・コントローラを前記第1の動作モードに設定し、前記オペレーティング・システムからの指示に応答して前記デバイス・コントローラを前記第2の動作モードに設定する機能を前記コンピュータに実現させる基本プログラムを格納した第1の不揮発性記録媒体と、
    前記第1の動作モードに対応するデバイス・ドライバを含む複数のデバイス・ドライバが登録されたオペレーティング・システムと、前記オペレーティング・システムの動作環境下で前記第2の動作モードに対応するデバイス・ドライバを検出して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記基本プログラムに前記デバイス・コントローラを前記第2の動作モードに設定させるように指示する機能を前記コンピュータに実現させる選択プログラムを格納した第2の不揮発性記録媒体と
    を有するコンピュータ。
  8. 前記デバイス・コントローラがブート・デバイスのインターフェースである請求項7記載のコンピュータ。
  9. 前記デバイス・コントローラがスキャン・コード・モードおよびキー・コード・モードで動作するキーボード・マウス・コントローラである請求項7記載のコンピュータ。
  10. 前記第1の不揮発性記録媒体が、前記デバイス・コントローラの動作を制御する制御プログラムを格納し、前記基本プログラムは前記制御プログラムが前記デバイス・コントローラを動作させていないことを確認して前記デバイス・コントローラを第2の動作モードに設定する請求項7記載のコンピュータ。
  11. 前記第2の不揮発性記録媒体が、プラグ・アンド・プレイで前記デバイス・コントローラが前記第2の動作モードで動作するように前記デバイス・ドライバを設定するPnPプログラムと、前記CPUに前記PnPプログラムより先に前記選択プログラムを実行させるレジストリ情報を格納する請求項7記載のコンピュータ。
  12. 第1の動作モードまたは第2の動作モードで動作するデバイス・コントローラを搭載し前記第1の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作することが可能なコンピュータにおいて、前記デバイス・コントローラの設定を前記コンピュータに実行させる基本プログラムであって、
    前記デバイス・コントローラを前記第1の動作モードに設定するステップと、
    前記デバイス・コントローラを前記第1の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと、
    前記オペレーティング・システムの動作環境下で前記第2の動作モードに対応するデバイス・ドライバが検出されたことに応答して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記デバイス・コントローラを前記第2の動作モードに設定するステップと
    を前記コンピュータに実行させるプログラム。
  13. 前記基本プログラムがシングル・タスクで動作する請求項12記載のプログラム。
  14. 前記基本プログラムがBIOSである請求項12記載のプログラム。
  15. 前記基本プログラムがハイパーバイザまたはホスト・オペレーティング・システムである請求項12記載のプログラム。
  16. 前記第1の動作モードに設定するステップを、前記コンピュータが起動して前記オペレーティング・システムに制御が移行する前に実行する請求項12記載のプログラム。
  17. 前記第2の動作モードに設定するステップが、SMIハンドラを実行するステップを含む請求項12記載のプログラム。
  18. 前記デバイス・コントローラが磁気ディスク装置のインターフェースであり、前記第2の動作モードに設定するステップがINT13hハンドラの実行状態を確認するステップを含む請求項17記載のプログラム。
  19. 前記第2の動作モードがAHCI転送モードに対応する請求項18記載のプログラム。
  20. 前記基本プログラムは前記デバイス・コントローラを前記第2の動作モードに設定するときに、不揮発性メモリに格納された前記デバイス・コントローラの設定情報を前記第1の動作モードに維持する請求項12記載のプログラム。
  21. 第1の動作モードまたは第2の動作モードで動作するデバイス・コントローラを搭載し該デバイス・コントローラの制御が可能な基本プログラムまたは前記第1の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作するコンピュータにおいて、前記オペレーティング・システムの動作環境下で前記コンピュータに前記デバイス・コントローラの設定をさせるプログラムであって、
    前記基本プログラムにより設定された第1の動作モードで前記デバイス・コントローラが動作した後に前記オペレーティング・システムの動作環境下で前記第2の動作モードに対応するデバイス・ドライバの存否を検査するステップと、
    前記第2の動作モードに対応するデバイス・ドライバが検出されたとき前記基本プログラムに前記デバイス・コントローラを前記第2の動作モードに設定させるために前記コンピュータの制御を前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行するステップと
    を前記コンピュータに実行させるプログラム。
  22. 前記基本プログラムに移行するステップがSMIを発行するステップを含む請求項21記載のプログラム。
  23. 前記検査するステップを、ブート・デバイスのデバイス・コントローラに対応するデバイス・ドライバをメモリにロードした後に実行する請求項21記載のプログラム。
  24. 前記検査するステップを、前記オペレーティング・システムがプラグ・アンド・プレイでデバイス・ドライバの設定する前に実行する請求項21記載のプログラム。
  25. 第1の動作モードまたは第2の動作モードで動作するデバイス・コントローラを搭載し、前記第1の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作することが可能なコンピュータにおいて、前記デバイス・コントローラの設定を前記コンピュータに実行させる基本プログラムを格納したコンピュータの読み取りが可能な記憶媒体であって、前記基本プログラムが、
    前記デバイス・コントローラを前記第1の動作モードに設定するステップと、
    前記デバイス・コントローラを前記第1の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと、
    前記オペレーティング・システムの動作環境下で前記第2の動作モードに対応するデバイス・ドライバが検出されたことに応答して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記デバイス・コントローラを前記第2の動作モードに設定するステップと
    を前記コンピュータに実行させる記憶媒体。
  26. 第1の動作モードまたは第2の動作モードで動作するデバイス・コントローラを搭載し該デバイス・コントローラの制御が可能な基本プログラムまたは前記第1の動作モードに対応するデバイス・ドライバが登録されたオペレーティング・システムで動作するコンピュータにおいて、前記オペレーティング・システムの動作環境下で前記コンピュータに前記デバイス・コントローラの設定をさせるプログラムを格納したコンピュータの読み取りが可能な記憶媒体であって、前記プログラムが、
    前記基本プログラムにより設定された第1の動作モードで前記デバイス・コントローラが動作した後に前記オペレーティング・システムの動作環境下で前記第2の動作モードに対応するデバイス・ドライバの存否を検査するステップと、
    前記第2の動作モードに対応するデバイス・ドライバが検出されたとき前記基本プログラムに前記デバイス・コントローラを前記第2の動作モードに設定させるために前記コンピュータの制御を前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行するステップと
    を前記コンピュータに実行させる記憶媒体。
  27. 第1の動作モードまたは第2の動作モードで動作するデバイス・コントローラが搭載され前記第1の動作モードに対応するデバイス・ドライバを含むコンピュータであって、
    CPUと
    前記CPUが実行するプログラムを記憶するメモリと、
    前記コンピュータに前記デバイス・コントローラの設定をさせる基本プログラムを格納する不揮発性記憶媒体とを有し、
    前記基本プログラムが、
    前記デバイス・コントローラを前記第1の動作モードに設定するステップと、
    前記デバイス・コントローラを前記第1の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと、
    前記オペレーティング・システムの動作環境下で前記第2の動作モードに対応するデバイス・ドライバが検出されたことに応答して前記オペレーティング・システムの動作環境を維持しながら前記基本プログラムの動作環境に移行し前記デバイス・コントローラを前記第2の動作モードに設定するステップと、
    前記第2の動作モードに設定した後に前記コンピュータを前記オペレーティング・システムの制御に移行させるステップと
    を前記コンピュータに実行させるコンピュータ。
JP2005360165A 2005-12-14 2005-12-14 デバイス・コントローラの設定方法およびコンピュータ・システム Active JP4616763B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005360165A JP4616763B2 (ja) 2005-12-14 2005-12-14 デバイス・コントローラの設定方法およびコンピュータ・システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005360165A JP4616763B2 (ja) 2005-12-14 2005-12-14 デバイス・コントローラの設定方法およびコンピュータ・システム

Publications (2)

Publication Number Publication Date
JP2007164492A JP2007164492A (ja) 2007-06-28
JP4616763B2 true JP4616763B2 (ja) 2011-01-19

Family

ID=38247309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005360165A Active JP4616763B2 (ja) 2005-12-14 2005-12-14 デバイス・コントローラの設定方法およびコンピュータ・システム

Country Status (1)

Country Link
JP (1) JP4616763B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134601A (ja) * 2007-11-30 2009-06-18 Fujitsu Ltd ディスクアクセス方式切替装置
JP5178282B2 (ja) * 2008-04-02 2013-04-10 キヤノン株式会社 情報処理装置、制御方法及びプログラム
CN102177499B (zh) * 2008-10-08 2014-12-17 惠普开发有限公司 具有定制镜像的固件存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04506425A (ja) * 1989-06-30 1992-11-05 ポケット コンピューター コーポレイション 計算機システムにおける情報管理方法及び装置
JP2000357093A (ja) * 1999-06-16 2000-12-26 Toshiba Corp コンピュータシステムおよび不揮発性メモリの書き換え方法
JP2001100983A (ja) * 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> コンピュータの制御方法、コンピュータ及び記録媒体
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
JP2005050079A (ja) * 2003-07-28 2005-02-24 Nec Fielding Ltd サーバ装置、bios更新プログラム、初期起動プログラム、及びbios更新方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
JPH10187454A (ja) * 1996-12-27 1998-07-21 Nec Corp Bios書き換え方式
JPH10307726A (ja) * 1997-05-02 1998-11-17 Nec Corp 起動エラー時におけるファームウェアリカバリ方式

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04506425A (ja) * 1989-06-30 1992-11-05 ポケット コンピューター コーポレイション 計算機システムにおける情報管理方法及び装置
JP2000357093A (ja) * 1999-06-16 2000-12-26 Toshiba Corp コンピュータシステムおよび不揮発性メモリの書き換え方法
JP2001100983A (ja) * 1999-09-28 2001-04-13 Internatl Business Mach Corp <Ibm> コンピュータの制御方法、コンピュータ及び記録媒体
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
JP2005050079A (ja) * 2003-07-28 2005-02-24 Nec Fielding Ltd サーバ装置、bios更新プログラム、初期起動プログラム、及びbios更新方法

Also Published As

Publication number Publication date
JP2007164492A (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
EP2926239B1 (en) Bootability with multiple logical unit numbers
US7073013B2 (en) Mass storage device with boot code
US8407396B2 (en) Providing block data access for an operating system using solid-state memory
US6795912B1 (en) Method for controlling computer, computer, and storage medium
US8032883B2 (en) Controlling access from the virtual machine to a file
US8352721B1 (en) Initiating an operating system boot from firmware
US8301917B2 (en) Method and apparatus for managing power from a sequestered partition of a processing system
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
WO2018022268A1 (en) Optimized uefi reboot process
US9529410B2 (en) Service processor (SP) initiated data transaction with BIOS utilizing power off commands
JPH09293041A (ja) 周辺デバイスの自動イネーブル方法、及び周辺デバイスの自動イネーブル・プログラムを格納した記憶媒体
US9753739B2 (en) Operating system management of second operating system
JP2006293760A (ja) 情報処理装置
JP4616763B2 (ja) デバイス・コントローラの設定方法およびコンピュータ・システム
US20030182456A1 (en) Portable peripheral apparatus with an embedded storage module
JP2002082810A (ja) 情報処理装置及び方法、並びに半導体メモリ装置
US8386761B2 (en) System for registering and initiating pre-boot environment for enabling partitions
CN100498710C (zh) 自储存装置上读取选择只读存储器程序代码的方法
TW202338602A (zh) 計算系統、電腦實施方法及電腦程式產品
CN102681859A (zh) 一种从USB大容量存储设备中启动Windows操作系统的方法
JP7318799B2 (ja) 情報処理装置、操作制御方法および操作制御プログラム
JP4858720B2 (ja) エミュレータ、エミュレーション方法、プログラム、及び、記録媒体
CN118312226A (zh) 一种基于riscv服务器cpu的uefi固件启动方法及系统
KR100467514B1 (ko) 바이오스이미지를라이트하는방법
Kildall User interface

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101019

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101022

R150 Certificate of patent or registration of utility model

Ref document number: 4616763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131029

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131029

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250