(57)【特許請求の範囲】
【請求項１】
コンピュータ初期化及びオペレーティングシステム（OS）の起動を指示するBIOS内にプリブートアプリケーションマネージャ（PAM）ソフトウェアを含んでおりかつ前記OS起動前に始動に際して前記PAMソフトウェアを呼び出して実行するコンピュータにおいて該コンピュータ上のアプリケーションをOSの起動前に呼び出し、前記OS起動中に前記アプリケーションを実行し続ける方法であって、
前記ＰＡＭソフトウェアを前記コンピュータが実行すると、前記ＰＡＭソフトウェアは前記コンピュータに以下のステップを実行させ、
前記以下のステップは、
確認手段が、アプリケーションに対するポインタのために、前記PAMソフトウェア内のファイルシステム構造（FSS）モジュールを確認するステップと、
アプリケーション実行手段が、RAMに前記アプリケーションをローディングし、前記アプリケーションを実行するステップと、
前記OS起動の際、前記アプリケーションのアドレス空間が前記ＢＩＯＳのアドレス空間の一部として表されている保護されるべきメモリ領域のアドレス範囲を、提示手段が前記ＯＳに示すことで、前記ＯＳ起動中に前記ＯＳにより上書きされないようにするステップと、
前記アプリケーション実行手段が、前記OS起動中に前記アプリケーションを実行し続けるステップと、
前記OS起動後に、呼び出し手段がドライバを呼び出し、前記ドライバが前記アプリケーションを前記ＯＳに制御されたメモリ空間に移動または結合させて前記OS起動後に前記アプリケーションを実行し得るようにするステップと、
であることを特徴とする方法。
【請求項２】
前記PAMソフトウェアは、フラッシュメモリ内に実装される設定可能な仮想ROM BIOS（VROM BIOS）の一部であることを特徴とする請求項１に記載の方法。
【請求項３】
コンピュータの初期化及びオペレーティングシステム（OS）の起動を指揮しかつ電源投入又はリセット時にRAMにシャドウイングされるシステムBIOS内に存在するプリブートアプリケーションマネージャ（PAM）と、
ランダムアクセスメモリ（RAM)と、
オペレーティングシステム（OS）と、を含むコンピューターシステムであって、
前記ＰＡＭを前記コンピュータが実行すると、前記ＰＡＭは、前記コンピュータに以下の動作を実行させ、
前記以下の動作は、
確認手段が、プリブートアプリケーションに対するポインタを前記BIOS内のファイルシステム構造（FSS）モジュールにおいて確認し、
アプリケーション実行手段が、プリブートアプリケーションを発見するや否や、前記プリブートアプリケーションを前記RAMにローディングして、実行し、
前記OS起動時に、前記プリブートアプリケーションのアドレス空間が前記ＲＡＭ内の前記BIOSのアドレス空間の一部として表されている保護されるメモリ領域のアドレス範囲を、提示手段が前記ＯＳに対して示すことで、前記ＯＳ起動の際に前記ＯＳにより上書きされないようにし、
前記ＯＳ起動後に、呼び出し手段がドライバを呼び出し、前記ドライバが前記アプリケーションを前記ＯＳに制御されたメモリ空間に移動または結合させて、前記OS起動後に前記アプリケーションを実行し得る、
ことであることを特徴とするコンピューターシステム。
【請求項４】
前記PAMは、フラッシュメモリに実装される設定可能な仮想ROM BIOS（VROM BIOS）の一部であり得ることを特徴とする請求項３に記載のコンピューターシステム。
【請求項５】
コンピューターシステムを初期化してオペレーティングシステム（OS）をローディングするBIOSコード部と前記OSをローディングする前に呼び出されて実行されるプリブートアプリケーションマネージャ（PAM）部とを含んでいてかつRAMへシャドウイングされる基本入出力制御システム（BIOS）を記録したコンピュータ読み取り可能な記録媒体であって、
前記ＰＡＭ部を前記コンピュータが実行すると、前記ＰＡＭ部は前記コンピュータに以下のステップを実行させ、
前記以下のステップは、
アプリケーション実行手段が、前記OSのローディング開始前に実行されることになっている１以上のアプリケーションを開始するステップと、
前記OS起動時に、前記１以上のアプリケーションのアドレス空間が前記ＲＡＭ内の前記BIOSのアドレス空間の一部として表されている保護されるべきメモリ領域のアドレス範囲を、提示手段が前記ＯＳに対して示すことで、前記ＯＳ起動中に前記ＯＳにより上書きされないようにして、前記１以上のアプリケーションを前記OSの起動中に前記アプリケーション実行手段が実行し続けるようにするステップと、
前記OS起動後に、呼び出し手段がドライバを呼び出し、前記ドライバが前記アプリケーションを前記ＯＳに制御されたメモリ空間に移動または結合させて前記OS起動後に前記アプリケーションを実行し得るようにするステップと、
であることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項６】
前記BIOSは、フラッシュメモリ内の仮想ROM BIOS（VROM BIOS）として実装［実行］されることを特徴とする請求項５に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、基本入出力系（BIOS）システム分野に関連し、大容量記憶装置にアクセスするソフトウェアを含む方法と装置に対する特定の用途を有し、コンピュータBIOSシステムチップ内の未使用フラッシュ(flash)又は他の不揮発性メモリを利用することによってアプリケーションを実行し、OSブート後においてもそれを使用し続ける。
【０００２】
【関係文書に対するクロスリファレンス】
本発明は、共に出願係属中の米国特許出願第08/988,603号の一部継続出願である。該出願は1997年12月10日に出願され、Bios-Rom内の不揮発性メモリの使用を標準化する方法と装置と題する。該出願内容は、その全体を本願明細書に包含するものとする。
【０００３】
【発明の背景】
本発明は、基本入出力系（BIOS）システムに関する。BIOSプログラムは、特にパーソナルコンピュータのために提供され、システムハードウェアの試験及び初期化のための複雑な及び重要な動作を管理し、更に全体としてコンピュータ及びその接続周辺装置の準備をすることがコンピュータ分野において周知である。この手順の一部は、電源投入自己診断（POST）シーケンスとして周知である。このPOSTシーケンスに加え、該BIOSは、例えば被接続ハードディスク装置のように指定ブート装置からブート動作（Boot）を指揮し、必要に応じてブートBIOSルーチンがアクセスされた後にコンピューターシステムを構成する被接続ディジタル装置間の通信の動作等をサポートする。
【０００４】
PC開発の初期段階では比較的小さな不揮発性リードオンリーメモリ（ROM）チップはBIOSシステムに十分過ぎるものであり、ROMへのアクセスが比較的緩速であっても十分だった。PC技術が、より高速のCPU及び広範囲にわたる極めて強力で且つ精巧な周辺機器の開発をもたらすと、BIOS開発も歩調を合わせた開発が強いられてきた。BIOSルーチンは、初期のシステムより非常に大きくなり、高速の動作速度を必要とされてきた。
【０００５】
システム開発の結果、今や最新システム群においてBIOSがROMチップ内に圧縮されるのが一般的であり、BIOSルーチンはランダムアクセスメモリ(RAM) システムにシャドウイングがなされ、ROMから直接実行するよりも極高速で該ルーチンがアクセス且つ実行され得る。
同時に、このBIOSルーチンは改良され、より精巧で強力なPCのために開発され、ROMチップの開発と並行してなされてきた。斯かる開発は、上書き可能(flash)ROMとして知られている。この上書き可能ROMは、不揮発性ICメモリであり、全体として又は特定のブロックについて消去可能な、新たなメモリ値によって上書きされ得るものである。現在、BIOSは上級パーソナルコンピュータ(high-end PC)内の該上書き可能ROMチップ群内に提供され、例えば市場の一連のシステムバグを特定する能力等の新たな利点を有する。それ故、BIOSは新バージョンを提供するために市場に「再上書きされ(re-flashed)」得、例えばインターネットにより新バージョンをダウンロードし、既存のBIOS ROMをこの新バージョンにより再上書きをする。
【０００６】
関連する開発では、上書き可能(flash)ROMチップは、より大きく、より速いものが製造され、規模の経済と関連する種々の理由により、小型の上書き可能ROMの製造は不経済となった。本出願時点において、上書き可能ROMチップ群は、例えば1メガビット(1Mb)、2Mb及び４Mb及び更に大きいサイズのものが直ちに入手可能である。斯かるサイズは、8の因数による、より一般的なバイトに係る記憶容量の指定と関係がある。4Mbの上書き可能ROMは、512キロバイト（KB）のコード容量を有する。
【０００７】
比較的安価な大型上書き可能ROMチップを利用し得る結果、更に現在、BIOSは圧縮コードが普通であるという事実によって、本出願時点において、上書き可能ROM内のBIOSシステムは該チップのメモリ容量全体のほんの一部しか占有しないのが普通である。同時に、例えば現在は高解像度であり且つカラーであるビデオディスプレーのような新しい周辺装置の急速な開発及び他の装置の機能の拡張により、システム起動時に多数の装置の初期化が必要となり、全装置の初期化をシステムBIOSに含めることはできない。従って、かかる装置群、例えばVGAアダプタ群の多くは装置製造業者によってBIOS機能が提供されている。
【０００８】
より大型のROMチップ、とりわけ上書き可能ROMの使用により、相手先商標製造会社（OEM）や付加価値再販業者(VAR)等は、ROMチップ内の余剰メモリ容量を使用してBIOS機能を記憶し、周辺装置のBIOS機能又は例えばプリブート保証ルーチンのような他のルーチン群を提供する。しかしながら、現技術において、第三者はBIOS供給者と密接に協同して、BIOSチップに機能を追加及び拡張することが必要である。区画(partitioning)、番地指定(addressing)、容量及びチップの他の特徴は、第三者に知られることを要し、更にレジデントコードの構造及び記憶状況(storage estate)も知られる必要がある。
【０００９】
発明者の知るシステムは、第三者にプラグアンドプレイ装置群(plug-n-play devices)及び特定のユーティリティーアプリケーション群のためのＢＩＯＳ命令群を上書きする(flash in)ことを許容し、OSのプリブート又はブート中に諸命令は実行され得る。仮想ROM（V-ROM）BIOSと称する本規約は、編集者が該チップのアーキテクチャ又はデータマッピングについて詳細な知識を有することを要求されることなく第三者を介して変更され得る本システムは、先に引用した親出願に記載されている。
【００１０】
プリブート動作に対し、特定の追加ブート命令を上書きすることに加え、そのアクセスをし得る前にOSの完全なローディングに通常頼る特定のアプリケーションを開始し、実行し得ることが望ましい。
疑いなく必要なのは、オペレーティングシステムがローディングされる前に、ハードドライブ又は他の大容量記憶装置（MSD）から特定のアプリケーション群を発見し、初期化し、実行するプログラムを備えるBIOSシステムである。かかるプログラムは、オペレーティングシステムがローディングされる前に、例えばマルチメディアアプリケーション群を予め計画された方法により実行し、広告又は他の視聴者を対象とする情報を提供することを許容する。更に、斯かるシステムがオペレーティングシステムをローディングする間にプリブートアプリケーションの実行、またオペレーティングシステムに登録され且つ統合され、オペレーティングシステムがローディングされた後も実行し続けることを許容することが望ましい。
【００１１】
【課題を解決するための手段】
本発明の好適な実施例は、オペレーティングシステム（OS）を起動する前にコンピュータ上のアプリケーションを呼び出し、OS起動中に該アプリケーションを実行し続ける方法が提供され、該方法は (a) BIOS内にコンピュータ初期化及びオペレーティングシステム（OS）の起動を指示するプリブートアプリケーションマネージャ（PAM）ソフトウェアを含むステップと、（b）OS起動前に、始動に際してPAMを呼び出し且つ実行するステップと、(c) アプリケーションに対するポインタのために、PAMによりBIOS内のファイルシステム構造（FSS）を確認するステップと、（d）RAMに該アプリケーションをローディングし、該アプリケーションを実行するステップと、（e）OS起動の際、該アプリケーションを含むようにBIOSアドレス範囲を提示し、及び、(f) OS起動中に該アプリケーションを実行し続けるステップとを含む。
【００１２】
更なる実施例では、OS起動後に特別なドライバを呼び出し、該アプリケーションを登録し且つ該OSの構成にそれを含むステップを有し、それ故にOS起動後に該アプリケーションを安定した方法で実行し得る。いくつかのアプリケーション群のPAMは、フラッシュメモリ内に実装される設定可能な仮想ROM BIOS（VROM BIOS）の一部であり得る。
【００１３】
本発明の他の態様では、コンピューターシステムは、コンピュータの初期化及びオペレーティングシステム（OS）の起動を指揮するシステムBIOS内のプリブートアプリケーションマネージャ（PAM）と、ランダムアクセスメモリ（RAM）と、オペレーティングシステム（OS）とを含み、このBIOSは、電源投入又はリセット時にRAMに上書きがなされ、該PAMは実行され、プリブートアプリケーションに対するポインタをBIOS内のファイルシステム構造（FSS）において確認する。プリブートアプリケーションを発見するや否や、このアプリケーションはRAMにローディングされ、実行される。更にOS起動時に、該BIOSはRAM内のBIOS空間を該アプリケーションの空間を含むようにOSに対して示す。
【００１４】
本システムの幾つかの実施例では、OS起動後に呼び出される特別のドライバがあり、該アプリケーションを登録し、それをOS構成に含み、それ故にOS起動後に該アプリケーションを安定した方法で実行し得る。このPAMは、フラッシュメモリに実装される設定可能な仮想ROM BIOS（VROM BIOS）の一部であり得る。
【００１５】
さらに他の特徴として、コンピューターシステムを初期化し且つオペレーティングシステム（OS）をローディングするBIOSコード部分と、プリブートアプリケーションマネージャ（PAM）の一部とを含む基本入出力制御システム（BIOS）が提供される。RAMに上書き後に、このPAM部は、OSをローディングする前に呼び出され、実行され、これに因ってOSのローディング開始前に１以上のアプリケーションの開始がなされる。そしてOS起動時に、該BIOSは該１以上アプリケーションを含むためにRAM内のアドレス空間の限界を示し、それ故に該１以上のアプリケーションがOS起動中に実行し続けることを許容する。このBIOSは、フラッシュメモリ内の仮想ROM BIOS（VROM BIOS）として実装され得る。本発明の実施例では初めて、例えば電話方式アプリケーションのようなアプリケーションを電源投入後、極めて速やかに呼び出し且つ実行し得、オペレーティングシステムの起動中にアプリケーションを実行し続け得、ユーザーに利用可能であり、更にオペレーティングシステムの起動後においても同様である。
【００１６】
【発明の実施の形態】
本発明の好適な実施例によるBIOSシステムは、BIOSと結合する固有のドライバと共に、プラグイン群(plug-ins)を優先順位づけし、使用可能にし、使用不能にし、追加し及び削除する機構として上書き可能ROMに提供される。本発明のBIOSは、上書き可能ROMに限定されず、他のタイプの再プログラム可能な不揮発性メモリに適用され得る。上書き可能ROMは本発明の複数の特徴を示す良好な選択であると発明者は考える。なんとなれば、本発明の好適な実施例による幾つかのBIOS製品は上書き可能ROMで提供されるからである。
【００１７】
本願明細書では、このBIOSは仮想ROM BIOS（VROM BIOS）と称され、該BIOSの一部であるこの固有のドライバはVROM-DVRと称される。本発明の一つの実施例によるBIOS製造業者によって製造されるフラッシュチップレジデント(flash-chip-resident)VROM BIOSの場合において、前述のVROM-DVRの事例を有するとき、例えばOEMの如く協同する第三者は多種多様な目的のために上書き可能ROM内にプラグインを開発し且つインストールし得る。本発明の1つの態様及び実施例では、プラグイン群はBIOS製造業者によってOEM群に準備され、提供され得、その後OEMは既知の又は期待されたシステムアーキテクチャのための適切な混合がなされたプラグイン群をインストールし得る。
【００１８】
本発明の別の態様では、第三者はBIOS製造業者により提供されるVROM開発アプリケーションを使用するライセンスを与えられ得、さもなければ許可され得、新規なVROMプラグイン群を開発し、市場に投入する。ある態様において、エンドユーザ達は、例えばインターネットからダウンロードすることによりプラグイン群を購入し且つインストールし得る。
【００１９】
本発明の好適な実施例では、VROM BIOS内においてVROMと互換性を有するプラグイン群を準備し且つインストールするプロセスは、一般に次のように動作する。まず開発者は、VROM開発アプリケーションを使用して、汎関数コードを組み込んだプラグインを準備し、インストールする。この汎関数コードは、VROM BIOSのVROM-DVRと互換性を有するインストールコードを伴う。このプラグインがインストールされるシステムでは、このVROM BIOSはRAMへ複製される。これはコードに係るROMチップ配置の物理的な複製であり、BIOS起動時のシャドウイングではない。プラグインに付随する本インストールコードは、該VROM-DVRを呼び出し、RAM内の複製VROM BIOSに新規なプラグインのファンクションコードの追加を管理する。
【００２０】
このインストール過程において、該VROM-DVRは、インストレーションのために該BIOSマップに充分な空きがあるか否かの検査を含む複数の動作を実行する。ある実施例では、空きがない場合、ユーザーはこの新たなプラグインのための空間をつくるために１以上の常駐モジュール (resident modules)を削除する承認を得るべく促すこともあり得る。他においては、アクセスは説明を付して単に拒絶され得る。充分な空きがある場合、該VROM-DVRは、該VROM BIOS RAMマップに新たなプラグインの汎関数コードを追加し、複数の再上書きシーケンスを呼び出し、BIOSチップ内の既存のコードを上書き、消去し、この新しいRAMマップをこのチップに複製する。
【００２１】
開発者又は設置者は、このチップそのもの又はこのチップ上のVROM BIOSコードのマッピングについての詳細な知識を何ら有する必要はない。該VROM-DVRは、これらの諸事実との関係で明確であり、必要に応じて該インストレーションを管理する。
このVROM-BIOSは、上述したコードの追加のための場合に準ずる形態でVROM BIOSチップからプラグイン群の削除を管理する。互換性あるプログラムは、該VROM-DVRを呼び出し且つ１以上のモジュール群の削除を開始し得、その後該チップは新たな形態に再上書きされる。該VROM-DVRの他の機能は以下に記載される。
【００２２】
本発明の多くの実施例では、このVROM BIOSの一部をなす該VROM-DVRは、例えばプラグイン群に優先順位をつけ、そして使用可能にするような他の機能を有する。例えば、該VROM-DVRはPOSTコードと協同してプラグイン群のためにスキャニングをし、発見されたプラグイン群を使用可能にし、開始する。
図１は、本発明の一つの実施例による2Mb（512KB）の上書き可能ROMチップ内の圧縮状態で示されるVROM BIOS 100のメモリーマップであり、VROM BIOS 100は、固有のVROM-DVR 101によって拡張されている。本発明は、この2MbのROMチップに限定されず、他のサイズも適用可能であるが、2Mbが本発明の特徴を示すのに適当な選択肢と思われる。
【００２３】
類比として、VROM-DVR 101は、BIOS 100内の該フラッシュメモリに読み書きする点を除き、いくつかの点でコンピュータ上のハードディスクに読み書きする小型のオペレーティングシステムの如く機能するように考えられ得る。このユニークで革新的な方法は、第三者（例えばOEM）が、本アーキテクチャ及びコード内容及びBIOS 100の所在地について詳細な知識を有さずともBIOS 100にコンポーネントを追加又移動することを許容する。
【００２４】
上記の通り、典型的なシステムでは、ROM BIOSコードは起動時にRAMにシャドウイングされる。BIOSチップ内のコードは圧縮されるが故に本コードがRAMに移される際、一般に解凍がなされる。図２は、解凍及びRAMへの移送の後におけるBIOSコードのRAMマップである。勿論、RAM内のBIOS及び関連コードのメモリ量は問題となる。なんとなればメモリはいかなるシステムにおいても貴重な資源だからである。BIOSコードにより実行される第１の動作群は、電源投入自己診断（POST）であり、この動作後、該コードのこの部分はRAM内に保持される必要がない。というのは、これはPOST後の通常動作の際は利用されず、システムの電源を切って再起動するまでは再び必要とされないからである。
【００２５】
図１及び図２を参照すると、本実施例のデータブロックのメモリアドレスは各ブロックの右に示され、これは当業者に周知である。製造中にBIOS 100に書き込まれるVROM-DVR 101は、該チップアーキテクチャ及びコード所在地についての詳細な知識を有さずして、プラグイン群の優先順位づけをなし、使用可能にし、使用不能にし、追加し及び削除する機構及び方法を提供する。該VROM-DVRは、CPUによってアクセスされ、そして実行され得るコードシーケンスであり、更にVROM-BIOS及びその上書き可能ROMに固有のものであり、該VROM BIOSバージョンに固有の蓄積データ及び該VROM BIOSが記憶される所定のチップ、本例では2Mbの上書き可能ROMに記憶されたデータに対して構造および／またはアクセスを有する。
【００２６】
図１を参照しつつ説明すると、8KBブートブロック(Boot Block)に加え、4KBのプラグアンドプレイ（PnP）ユーティリティがあり、これは拡張システム構成データ（ESCD）として書き込まれ、4KB のP6マイクロコード（公知技術である）と、4KBのコード解凍及びメモリサイジングセクタ及び圧縮BIOSファンクションコードを含む圧縮BIOSセクターとがある。区画103は64KBセクションであり、OEMにより提供されるプラグイン群のために予約される。区画105は64KBセクションであり、例えばビデオグラフィックスアレイ（VGA）アダプタ、小型コンピュータシステムインターフェイス（SCSI）ドライバネットワーク及びＰＣカードプラグイン群等の如く、追加(add-in)ルーチンのために予約される。
【００２７】
図２は、本発明の一つの実施例によるRAMにシャドウイングされる図１のBIOSコードの例示的なBIOSメモリーマップである。ここではランタイムルーチン、IBM互換コード及びシステム準備ルーチンが示されている。RAMのアドレス・ロケーションは、図２の左側に示され、これは当該技術分野において公知である。64KBの電源投入自己診断（POST）コードはシャドウイングされたRAMに示され、同セクターは起動後に空きとして再び示され、これは要素109に示される。このPOSTコードはブート後はもはや不要である。
【００２８】
VROM BIOSにおいては、POSTコードは、付加されたプラグイン群及びBIOS拡張部を認識し、上書き可能ROMからシャドウＲＡＭに該プラグイン群及び拡張部を再配置し、モジュールのINITルーチンを実行することによってサインを捜し、該各モジュールを起動する。
図２の表111は、例示的な本実施例において図１の区画105の追加装置モジュールがシャドウイングされるRAMの記憶場所を表す。使用され得る追加データ又はプラグインモジュール量は、未使用のフラッシュメモリ量によってのみ制限される。
【００２９】
図３は、本発明の一つの実施例によるVROM BIOSシステムのソフトウェアアーキテクチャを示すブロック図である。アプリケーション層113はユーザインタフェースを表し、第三者が本発明によるVROM-DVRを有するVROM BIOSに追加するプラグイン群を準備し得るように構成され、本例ではソフトウェア開発キット（SDK）及びアプリケーションプログラムインタフェース（API）ライブラリを含む。追加プログラムの具体例としては、ウイルス保護プログラム、ディスクユーティリティプログラム、ネットワークカードスキャニングプログラム等を含み得るが、これらに限定されない。
【００３０】
本実施例では、VROMドライバ115（VROM-DVR）は上書き可能ROMチップ上のドライバであり、図１のBIOS 100の各VROM域をアクセスする。VROM-DVR 115は、該ドライバが属する上書き可能ROM（又は他の不揮発性記憶装置）と、ROMに統合されたVROM-BIOSと、更にVROM-BIOSを適用し得るコンピュータのオペレーティングシステム（OS）とに依存している。VROM BIOS 119は、BIOS機能を有するBIOS 100上に設けたコードである。
【００３１】
図4はインストレーション検査の構成を示す表であり、システムが本発明の一つ実施例によるVROM BIOSを事実上有するか否かをアプリケーションソフトウェアが決めるのを許容する。本インストレーション検査は、全16バイト区域の0F0000hから0FFFFFhに至るシステムメモリ内のASCII文字列「VROMBIOS」記号(signature)の捜索方法を含む。そして本ソフトウェアはチェックサムを計算することにより該構成が有効か否かを決め得る。チェックサム演算は、該構成の最上部から8ビット値としてバイト長を加算する方法でなされる。合計がゼロの場合には有効な構成を示す。本構成のエントリーポイントは、VROM BIOS機能に対するソフトウェアインターフェースである。
【００３２】
図５は、図４に示す種々のフィールド群のためのフィールド定義表である。図５の最上位から説明を始めると、著名フィールドは、記号を有するテキストを表現する一般的な方法である情報交換のためのアメリカンスタンダードコード（ASCII）文字列として表される。例えば文字列「VROMBIOS」は使用可能である。バージョンフィールドはBCD値であり、以下の具体例（10hの値はバージョン1.0に等しい）等に示される。長さフィールドは、該著名から開始するインストレーション構成全体のバイト数の合計である。チェックサムフィールドは、単純なエラー検出方式であり、公知技術である。チェックサムは、インストレーション構成のバイト数を合算し、その後、受け取るステーションは有効な構成か否かを確認するために斯かる値を比較する。リアルモードインターフェースは、エントリーポイントにオフセットされているセグメントである。リアルモードは、DOSが自己のプログラムを実行するモードである。32ビットの保護モードインターフェースは、コードセグメントベースアドレスである。保護モードでは、メモリー空間は異なるプログラムに指定された他のメモリに部分的に重なり合うことから保護されている。ウィンドウオペレーティングシステムは、保護モードを使用する。
【００３３】
リアルモード及び保護モードを両方の結合することによって、追加プログラムはDOS及びウィンドウズからインストールされ得る。図４及び５に示される表に係る変更は、本発明の趣旨および範囲から逸脱することなくなし得ることは当業者に明らかである。例えば、ある実施例では、インストレーションは、O/S 2又はUNIXのような異なるプラットホームを使用して実行され得る。本好適な実施例においてはウィンドウズ環境が利用される。
【００３４】
図６は、本発明の実施例による第三者のソフトウェア機能を示す表であり、例えばシステムインテグレータ又はＰＣユーザの如く表に掲げられている機能は第三者に対して任意のものである。表の上から下について順に見ると、機能-0では、フラッシュVROMに属するVROMリスト群をリストバッファに戻し、そこで分析がなされ得る。発明者が命名するリストバッファは全VROMリストを保持する十分な大きさでなければならない。次の機能はVROMサイズを入手する機能-１と称し、これは呼び出しているソフトウェアに対してVROMサイズをバイト単位(in bytes)で戻す。機能-2 の使用可能/不能VROMリストは、呼び出し側に VROMリスト群内のVROMリストを使用可能又は使用不能にすることを許容する。発明者により名づけられたVROMバッファはVROMデータの全てを記憶するだけの十分な大きさを要する。VROMデータを読み取る機能-３は、第三者呼び出しソフトウェア(third party calling software)がVROMリスト域からVROMデータを読み込むことを許容する。VROMデータを追加/削除する機能-４は第三者呼び出しソフトウェアにVROMデータを追加または削除することを許容する。
【００３５】
第三者呼び出しソフトウェアは、BIOS追加プログラムを提供するライセンスを付与されたソフトウェア販売業者、ライセンスを付与されたシステムインテグレータ、ユーザー又はBIOS追加プログラムを購入したユーザーによって利用され得ることは当業者に明らかである。「VROMプラグイン群」と発明者により名づけられた斯かる追加プログラム群は、一般的にライセンス製品であり、プリブート機能群又はポストブートにおけるBIOS使用可能な機能群のいずれでも構わない。
【００３６】
図７は、本発明の一つの実施例によるVROMリスト構造及び付随する定義表を示す表である。発明者は、このリスト構造及び付随する定義表が当業者にとって自明であることを充分に予想する。
このVROMリストは、呼び出しソフトウェアアプリケーションに対してデータがどこに記憶されているのか、各データブロックはどれだけの大きさを有するのか、VGAの如くデータのタイプ等の重要な情報を提供する。このデータは現状を反映するためにプログラムのインストレーション及び/又は削除の後に変更がなされる。インストールに係る問題を示すリターンエラーが生じた場合に、一組の指令を提供する機構（図示せず）も提供される。ある実施例において、保護機構は、ミラーリング技法（公知技術である）を使用することにより過去の設定を復旧し得、バックアップ又はデフォルトのインストレーションに優先権を与え得る。
【００３７】
本願明細書に記述される発明の実施例について、本発明の趣旨および範囲から逸脱することなく様々な変更がなされ得ることは当業者に明らかである。斯かる変更の幾つかは、例えば上書き可能ROM以外の他の不揮発性記憶装置の使用や本実施例において説明されている2MbのROM以外の使用し得る異なるサイズの記憶装置の如く、既に説明がなされている。かような多数の変更は他にも在る。例えば、プログラマが個性的な方法でコードを構築することは周知であり、多数の可変的なコード構造は類似した結果を果たし得る。同様に、本発明の一つの実施例によれば、多種のプラグイン群をVROM BIOSに達成し得る。あるものはプリブート機能群を達成し、他のものはポストブートにおけるBIOSの使用を許可された機能を達成し得る。多数ある可能性の中で、ディスクユーティリティプログラム、ウイルス保護プログラム、ＰＣカードスキャニングプログラム、特定のデバイスBIOSコード等が挙げられる。
【００３８】
【プリ‐ブートアプリケーションマネージャー（ＰＡＭ）】
本発明の一つの態様において、BIOS拡張部モジュールは、好適な実施例に係るマルチメディアアプリケーションを含み且つハードディスク又は他の被接続大容量記憶装置（MSD）上の記憶場所から得る特定のアプリケーション群を、検出、初期化、更に実行を、オペレーティングシステムの通常の起動前にするために提供される。発明者によってプリブートアプリケーション-マネージャ（PAM）と称される拡張部モジュールは、標準BIOSの一部として又は上記において親出願において開示したV-ROM BIOSの一部として提供され得、本願明細書にその全体を包含するものとする。
【００３９】
発明者の知るところでは、V-ROM BIOSは、該装置に本来備わっている汎用的な上書きする能力故に利用される。本発明の実施例によるPAMは、V-ROM BIOSのようなシステムBIOSの拡張としてインストール又は上書きがなされるソフトウェアモジュールである。本実施例におけるPAMモジュールは、V-ROM-BIOSの特定域内の場所を占有する別個の部品を含む。PAMのNVM部品は、NVM（不揮発性メモリ）に内臓されており、V-ROMによってローディングされ、実行される。PAMのポストブートに係る部分は、新たなMSD群のアクセス又は設定をし、必要なドライバ情報（記憶場所及びタイプ）の検出をし、該情報を第3の部分即ちファイルシステム構造（FSS）モジュールに結合して、その後NVMレジデントコードの一部になるように実行される。BIOS 内へのPAMの機能的導入は、上書きであろうとプリインストールであろうと、例えば先の図１から図７までに関連して既述した、圧縮、シャドウイング及びアドレッシング技法のような実行中のBIOSの取り決めに従うことを当業者は理解するであろう。従って、以下に記載の処理ステップが本発明を実施し得る態様で説明するのに充分であると発明者は考える。
【００４０】
図８は、本発明の一の実施例による論理的な処理ステップを示すプロセスフローチャートである。この例示的な実施例では、本発明の方法と装置は上記の如くＶ-ROM機能と統合がなされて提供される。この処理は、上書き可能なV-ROMチップはインストールがなされ、先に開示した諸実施例に従って動作し得ることを仮定する。
【００４１】
ステップ121では、プリブートのBIOS動作を開始する。ステップ123では、V-ROMはPAMモジュールを呼び出し、そして実行する。ステップ133は、PAMが動作を開始するプリブートモードを表す。ステップ135では、PAMは有効なMSD情報、例えばタイプ、サイズ、OSパラメータ等を得るために自己のFSSモジュールにアクセス及びスキャニングをする。MSD情報ポインタ群が利用可能であり、装置が認知されるならば、指定されたMSDは、ステップ137において分析される。本ステップは、整合の対象となるパラメータ、例えばタイプ（SCSI、ＩＤＥ）、サイズ（容量、利用可能なメモリ）、フォーマット（ブート区画数、OSのタイプ）を確かめる。ステップ139では、PAMは、整合がなされたかを判断する。もし整合がある場合、該処理は図９に示すステップ140に続行する。しかしながら、もし整合がない場合には、システムは修正された（違う命令が与えられた）又は該MSDは新たな装置であると仮定され、リセットされなければならない。
【００４２】
説明のため、上書き後に該システムは初めてブートされ又は新たなデフォルト状態のMSDが付加されていると仮定すると、ステップ139における整合はない。この節では、PAMは単純なバイナリーコードであり得るフラグをたて（ステップ141）、新たなMSDと関連する新たなパラメータ群は、次の起動動作のためにBIOS内にローディングされ得る。斯かるパラメータ群は、ドライバの位置及び識別を含む、但しこれに限定されない全ての必要な情報も含み得、プリブートアプリケーション群、例えばビデオ群、静止広告群、音声広告群、又は他のプリブート前の有益なディスプレー群にアクセスをし、開始する。その後、この処理は矢印で図示の如くステップ125に進み、OSを起動する。
【００４３】
ステップ125において開始されるOS起動の後、被接続MSDにアクセス及び分析する能力を有するFSSドライバは、他のドライバ群とともにステップ127において起動する。ステップ129では、ドライバはステップ141に設定されたプリセットフラグ(pre-set flag）を検査する。フラグが見つかった場合、即ち有効なMSDが現在インストールされていない場合、該処理はステップ143へ進み、この新たなMSDは分析がなされる。ステップ145では、MSDドライバ群と関連するパラメータ群及びプリブート動作中に実行される予定であるプリブートアプリケーション群に対して包括的である他のドライバは、MSD上に位置決めがなされる。ステップ147では、斯かるパラメータ群はステップ135のFSSモジュール内への転送のため、ローディング及び準備がなされる。ステップ149におけるMSDからFSSモジュール内へのパラメータ群の転送完了後、OSの完全なブーティングを含む標準的なシステム操作はステップ151において続行される。
【００４４】
次にシステムの電源が投入されると、新たな変更はプリブート分析の際に認識され、マルチメディア広告群を含むローディングされた広告は全て自動的にアクセスされ、表示され、その後OSはブートされる。しかしながら、もしステップ141にフラグの設定がない場合、ステップ129にフラグは見つからない。これは、必要な情報が先のブート現象の間に既にアクセスされ、ローディングされ、ステップ139で整合がなされていることを前提にする。この場合、該処理は前述したように図９へ進む。
【００４５】
図９は、図８のフローチャートに従属する処理フローチャートであり、本発明の一つの実施例によるアプリケーションローディングシーケンスを示す。図９は、MSDにアクセスし、ステップ139（図８）のFSSモジュールに含まれる整合情報に従った広告群などを表示するためのローディングシーケンスを示す。ステップ140では、FSSモジュールはMSDドライバ群をNVMにアクセス及びローディングする。ステップ142では、アプリケーションドライバ群は全て、同様にローディングがなされる。ステップ144では、対象アプリケーションプログラム（広告群）はいづれもMSDからローディングされる。その後、ロードされたアプリケーション（群）はステップ146において実行される。それからアプリケーションドライバは、完全にローディングされたOS下における正常な実行と整合する方法でステップ148において実行される。アプリケーション（群）は、電源投入からOSのローディング（プリブート及び可能ならはブート中）までの時間の間、表示される。その後新たなフラグは、ステップ150で設定され、次の起動のために、プリブート広告群に対する何らかの新たな追加又は変更を指し示す。
【００４６】
図８及び図９に教示される処理フローシーケンスは、該処理の例示であることを意図し、本発明の実施に実装され得る。 本発明の趣旨および範囲から逸脱することなく、多くの変更を含み得る。例えば、一つの実施例において、広告スケジュールは、被交換パケットネットワーク(a switched packet network)からMSDにダウンロードされ得る。この広告スケジュールは、複数の個別の広告を含み得、この広告は例えば、おそらくMPEGビデオクリップ群のように、一つのクリップがプリブート事象毎に連続的な順序で（回転がなされて）実行されるものである。広告スケジュールを普及する能力を有するFSSドライバは、先の広告の実行後に新たなフラグを次の広告に設定する。このようにして、次回システムの電源を投入する際、新しい広告は、ローディングされ、実行される。
【００４７】
本発明のもう一つの実施例では、アプリケーションは、接続したMSDにあるPAMソフトウェアの一部として提供され、システムBIOS内の対応するソフトウェアと情報をやりとりし得る。本実施例では、全メディアタイプの全ての新しい広告はユーザーにより選択され得、そして正常な動作時においていつでもBIOS内にフラッシングし得る。同様に、斯かる広告群及びドライバ情報は、目的にあった接続ネットワークサーバを利用することにより第三者によってBIOS内にフラッシングし得る。システムの電源投入後、新しいポインタ群は登録され、システムBIOS内（FSSモジュール）に保持される。斯かるポインタ群は、いくつかの実施例において、広告の存在する新しい又は代替的に選択されたMSD装置を示し得る。
【００４８】
さらに別の実施例においは、FSSモジュールは区分され得、別個の広告群を内在する複数のMSDに関連する別個の情報のブロックを包含する。この態様は、各個のビデオディスプレイユニット群（VDU）を多数一緒にネットワーク化及び最小の且つ個別的なMSD能力を有することを反映し得る。VDUのネットワークに連結される主要ブーティング局及びMSDは、各接続ユニットのためにBIOS初期化を提供し得る。本実施例において、プリブート広告又は命令は、斯かるVDUを指定される個人に対して特有化され得る。
【００４９】
図１０は、オペレーティングシステムがローディングされる前とオペレーティングシステムがローディングされる最中に、プリブートアプリケーションが如何にしてローディングされ、実行され得るか、更にオペレーティングシステムの起動後に該プリブートアプリケーションが如何にして登録され且つ使用され得るかを示すブロック図である。
【００５０】
図１０では、要素151は上述した上書きVROMを表し、BIOSコードは、ランダムアクセスメモリ（RAM）の上部アドレス153にシャドウイングされ（矢印155）、これは当該技術分野において典型的である。別の実施例では、図示の上書きVROMは他の種類のBIOS ROMであってもよい。BIOSコードがRAM内で動作可能となった後、該BIOSは、上記の通りプリブートアプリケーションをローディングする。これは本例において先にRAMにシャドウイングされ又は矢印161で示され且つ先に他の実施例で述べた大容量記憶装置（MSD）159のコードからローディングがなされる。
【００５１】
本実施例では、あるステップは該ステップ群を越えてなされ、先の諸例におけるプリブートアプリケーションを使用可能にする。そのステップは、自己の及びプリブートアプリケーションのアドレス空間を該BIOSがBIOSの一部として表し、ブートの際、OSが双方とも上書きしないようにする。これは、オペレーティングシステムによって種々の方法で実現され得、一般に周知である。
【００５２】
この処理により、プリブートアプリケーションはOSのローディングの最中にその動作を続け得、これは矢印163によって示される。場合によっては、該処理は該ポイントを越えて動作し得るが、安定したシステム動作を保証するために他のステップが必要となる。
更なるステップは、OSがローディングを完了時に起動する。本実施例では、この時にOS構成に先に含まれていた特別のドライバを実行する。それから、このドライバは、該アプリケーションをOS内に再配置し、又はOSのための該資源群を「自由化する」ことによりOSに制御された空間内に該アプリケーションを結合する一方、同時にそれらを使用する。例えば、ウインドウズ 98（登録商標）の場合、該ドライバは、バーチャルメモリマネージャ（VMM）と連動してバーチャルアドレス記述子（VAD）の規約を使用し、「回復された」空間の範囲を記録し得る。
【００５３】
本処理は、通常のブート動作とこれに続いて直ちになされる所望のアプリケーションの投入と比較して非常に複雑に見えるが、このユニークなシステムの効果を理解するには、本発明の実施例によって提供されるリアルタイムの問題を考慮する必要がある。OSのブートは、30秒から90秒だけしかかからないものの、状況により、それはアプリケーション投入の待ち時間として容認できない時間の長さかも知れない。例えば、利用者が、ブートがなされるコンピューターシステムを使用して緊急通報をしなければならない場合に、彼または彼女は従来システムのときには90秒ほど待たなければならないかもしれない。ここに提示される実施例によるシステムでは、ハードディスクのようなMSDを利用する場合、プリブートの段階はミリ秒単位または低い数の秒単位しかかからないかも知れない。
【００５４】
上述の実施例では、1つのアプリケーションをローディングし、OSをブートする前、その最中、そしてその後に実行する方法を教示する。本法を拡張し、斯かる一つのアプリケーションよりも多くのものをローディングし、実行し得ることは当業者であれば明らかである。例えば、ある利用者は、VROM又は他のBIOSにアドレス帳及びIP通話を可能ならしめるIP電話アプリケーション(IP telephony application) の双方とも設定し得る。ある利用者は、電子メールクライアントをも含み得る。かように多くの可能性があり、通信分野の応用は疑いなく望ましい候補となる。勿論、他の可能性もある。例えば、作家であれは、直接ワードプロセッサに行きたいであろう。
【００５５】
プリブートの適用例としては多数の異なる可能性がある。従って、本発明の方法と装置は最も幅広い範囲が与えられるべきである。本発明の趣旨および範囲は、本願明細書に記載する請求項にのみ制限される。
【図面の簡単な説明】
【図１】    本発明の一つの実施例による2Mb上書き可能ROM内の圧縮BIOSの拡張されたBIOSメモリーマップである。
【図２】  本発明の一つの実施例による解凍され及びRAMにシャドウイングされた図１のBIOSコードマップを図示する。
【図３】  本発明の一つの実施例によるVROMシステムのソフトウェアアーキテクチャを示す本発明の一の実施例によるブロック図である。
【図４】  本発明の一つの実施例によるVROM BIOSのための第三者によるソフトウェアインストールチェックに係る構造を示す表である。
【図５】  図４に示されるフィールドのフィールド定義表である。
【図６】  本発明の一つの実施例による第三者の一連のソフトウェア機能を示す表である。
【図７】  本発明の一つの実施例によるVROMリスト構造及び付随する定義表を示す表である。
【図８】  本発明の一つの実施例による処理ステップを示すプロセスフローチャートである。
【図９】  本発明の一つの実施例によるアプリケーションローディングシーケンスを示す図８のフローチャートに従属する処理フローチャートである。
【図１０】  本発明の別の実施例による、メモリーマップ内のプログラム群の記憶場所及び制御の伝達を示すブロック図である。
【符号の説明】
121  プリブートBIOS動作
123  コア半径
129  フラグの確認
139  FSS/MSDの整合
140  FSS/MSDドライバ群をローディングする
150  フラグをリセットする
【図１】
0004689006.tif 000002
【図２】
0004689006.tif 000003
【図３】
0004689006.tif 000004
【図４】
0004689006.tif 000005
【図５】
0004689006.tif 000006
【図６】
0004689006.tif 000007
【図７】
0004689006.tif 000008
【図８】
0004689006.tif 000009
【図９】
0004689006.tif 000010
【図１０】
0004689006.tif 000011