(57)【要約】【課題】本発明は、限られたメモリエリアを有効活用し、より多くのプログラムを実行することが可能なプログラム制御方法および情報処理装置を提供する。【解決手段】実行する複数の拡張ＢＩＯＳの個々のサイズに基づいて、特に拡張ＢＩＯＳ実行時（拡張カード内のＲＯＭからメインメモリ２０３にコピーする際）のプログラムサイズの大きい拡張ＢＩＯＳから実行するよう実行順序を決定し、この実行順序に従って複数ある拡張ＢＩＯＳを実行するよう決定している。また、実行時のプログラムサイズが同じ拡張ＢＩＯＳが複数存在する場合には、実行後にメインメモリ２０３に常駐するプログラムサイズ（拡張ＢＩＯＳの常駐時のプログラムサイズ）に着目し、この常駐時のサイズが大きい順に拡張ＢＩＯＳを実行するよう決定している。【選択図】  図７
2004199305.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムを実行する情報処理装置におけるプログラム制御方法において、
前記各プログラムのサイズの大きい順に実行するよう前記複数のプログラムの実行順序を決定する順序決定ステップと、
この順序決定ステップによる順序に従って前記複数のプログラムを実行するよう制御する制御ステップと、
を有することを特徴とするプログラム制御方法。
【請求項２】
前記順序決定ステップは、前記各プログラムを実行する際のプログラムサイズの大きい順に実行するよう前記複数のプログラムの実行順序を決定することを特徴とする請求項１記載のプログラム制御方法。
【請求項３】
前記順序決定ステップは、
前記各プログラムを実行する際のプログラムサイズの大きい順に実行するよう前記複数のプログラムの実行順序を決定する第１の順序決定ステップと、
この第１の順序決定ステップにて実行する際のプログラムサイズが同じ大きさのプログラムについては、実行後のプログラムサイズの大きい順に実行するよう前記複数のプログラムの実行順序を決定する第２の順序決定ステップと、
を有することを特徴とする請求項１記載のプログラム制御方法。
【請求項４】
拡張する機器の動作を制御するための拡張用制御プログラムを実行する情報処理装置におけるプログラム制御方法において、
前記拡張用制御プログラムを複数実行する際に、各プログラムのサイズの大きい順に実行するよう前記複数の拡張用制御プログラムの実行順序を変更することを特徴とするプログラム制御方法。
【請求項５】
複数のプログラムを実行する情報処理装置において、
前記各プログラムのサイズを比較する比較手段と、
この比較手段による比較の結果、前記サイズの大きい順に前記複数のプログラムの実行順序を判断する判断手段と、
この判断手段で判断された順序に従って前記複数のプログラムを実行する制御手段と、
を有することを特徴とする情報処理装置。
【請求項６】
前記比較手段は、前記各プログラムを実行する際のプログラムサイズを比較することを特徴とする請求項５記載の情報処理装置。
【請求項７】
複数のプログラムを実行する情報処理装置において、
前記各プログラムを実行する際のプログラムサイズを比較する第１の比較手段と、
この第１の比較手段による比較の結果、前記実行する際のプログラムサイズの大きい順に前記複数のプログラムの実行順序を判断する第１の判断手段と、
この第１の比較手段による比較の結果、前記実行する際のプログラムサイズが同じ大きさのプログラムについて、実行後のプログラムサイズを比較する第２の比較手段と、
この第２の比較手段による比較の結果、前記実行後のプログラムサイズの大きい順に前記複数のプログラムの実行順序を判断する第２の判断手段と、
この第１および第２の判断手段で判断された順序に従って前記複数のプログラムを実行する制御手段と、
を有することを特徴とする情報処理装置。
【請求項８】
拡張する機器の動作を制御するための拡張用制御プログラムを実行する情報処理装置において、
前記拡張用制御プログラムを複数実行する際に、各プログラムのサイズを比較する比較手段と、
この比較手段による比較結果に基づいて、前記サイズの大きい順に実行するよう前記複数の拡張用制御プログラムの実行順序を変更する変更手段と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプログラムを実行する際にプログラムのサイズに基づいて決定した実行順序に従ってプログラムを実行するプログラム制御方法および情報処理装置に関する。
【０００２】
【従来の技術】
近年、デスクトップのみならずポータブルのパーソナルコンピュータにおいては、拡張性、操作性および性能性が求められており、様々なオプショナル機能が追加する傾向にある。しかしながら、近年の機能拡張に伴うプログラムの大容量化により、所定のメモリ空間に収めることができなくなってきている。このような問題を解決するため、例えば特開平９−６６７０号公報には、ＶＧＡ−ＢＩＯＳが配置されるメモリアドレスエリアを選択可能としてメモリアドレスエリアでの衝突が発生しないようにしたコンピュータシステムが開示されている。
【０００３】
【特許文献１】
特開平９−６６７０号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の装置では、ＶＧＡ−ＢＩＯＳ以外の様々なオプションカードの具体的な使用等については何等記載されていない。従って、この複数のオプションカードの容量によっては、ＶＧＡ−ＢＩＯＳの配置を工夫してメモリエリアを広く確保したとしても、限られたメモリエリアでは使用できない恐れもある。
【０００５】
本発明は、以上の点に鑑みなされたもので、限られたメモリエリアを有効活用し、より多くのプログラムを実行することが可能なプログラム制御方法および情報処理装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明のプログラム制御方法は、複数のプログラムを実行する情報処理装置におけるプログラム制御方法において、前記各プログラムのサイズの大きい順に実行するよう前記複数のプログラムの実行順序を決定する順序決定ステップと、この順序決定ステップによる順序に従って前記複数のプログラムを実行するよう制御する制御ステップと、を有することを特徴とする。
【０００７】
上記目的を達成するために、本発明のプログラム制御方法は、拡張する機器の動作を制御するための拡張用制御プログラムを実行する情報処理装置におけるプログラム制御方法において、前記拡張用制御プログラムを複数実行する際に、各プログラムのサイズの大きい順に実行するよう前記複数の拡張用制御プログラムの実行順序を変更することを特徴とする。
【０００８】
上記目的を達成するために、本発明の情報処理装置は、複数のプログラムを実行する情報処理装置において、前記各プログラムのサイズを比較する比較手段と、この比較手段による比較の結果、前記サイズの大きい順に前記複数のプログラムの実行順序を判断する判断手段と、この判断手段で判断された順序に従って前記複数のプログラムを実行する制御手段と、を有することを特徴とする。
【０００９】
上記目的を達成するために、本発明の情報処理装置は、複数のプログラムを実行する情報処理装置において、前記各プログラムを実行する際のプログラムサイズを比較する第１の比較手段と、この第１の比較手段による比較の結果、前記実行する際のプログラムサイズの大きい順に前記複数のプログラムの実行順序を判断する第１の判断手段と、この第１の比較手段による比較の結果、前記実行する際のプログラムサイズが同じ大きさのプログラムについて、実行後のプログラムサイズを比較する第２の比較手段と、この第２の比較手段による比較の結果、前記実行後のプログラムサイズの大きい順に前記複数のプログラムの実行順序を判断する第２の判断手段と、この第１および第２の判断手段で判断された順序に従って前記複数のプログラムを実行する制御手段と、を有することを特徴とする。
【００１０】
上記目的を達成するために、本発明の情報処理装置は、拡張する機器の動作を制御するための拡張用制御プログラムを実行する情報処理装置において、前記拡張用制御プログラムを複数実行する際に、各プログラムのサイズを比較する比較手段と、この比較手段による比較結果に基づいて、前記サイズの大きい順に実行するよう前記複数の拡張用制御プログラムの実行順序を変更する変更手段と、を有することを特徴とする。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明に係る実施の形態について詳細に説明する。本発明は、機能を拡張可能なコンピュータ全般に適用できる。従って、本実施例では、代表的なコンピュータ１（１Ａ、１Ｂ）の外観については個別に説明し、内部のブロック構成については同じ図面を用いてコンピュータ１と総称して説明する。
【００１２】
図１は、本発明の実施の形態における情報処理装置の一例であるノートブック型パーソナルコンピュータ１Ａ（以下ノート型パソコンと称す）の外観構成を示す斜視図である。図２及び図３は、本発明の実施の形態における情報処理装置の一例であるＰＣサーバ１Ｂの外観構成を示す図である。
【００１３】
図１に示すノート型パソコン１Ａの本体１０は樹脂製の上ケース２および樹脂製の下ケース３を有している。本体１０の上面にはキーボード９が搭載されている。本体１０の上面前部（キーボード９の前側）はユーザーがキーボード９へのデータ入力の際に掌を置くためのアームレスト７が形成される。
【００１４】
本体１０の後部には一対のヒンジ部５ａ、５ｂを介して表示装置４が開閉可能に接続されている。表示装置４にはデータを表示するためのＬＣＤ６が内蔵されている。また、本体１０には、拡張スロット８が形成されている。この拡張スロット８は、複数の拡張カード１００を互いに平行に装着可能となっており、システム拡張時に複数の拡張カード１００を選択的に取り外し可能に収容するものである。
【００１５】
図２及び図３は、デスクトップ型コンピュータやプリンタ等に接続して使用するＰＣサーバ１Ｂを示している。このＰＣサーバ１Ｂは、縦長の箱状をなす機器本体２２を備えている。この機器本体２２の後壁２８には、機器本体２２の高さ方向に延びる矩形の開口形状を有する通孔４０が形成されている。この通孔４０は、機器本体２２の内側から周壁としての金属製スロットパネル４１によって覆われている。
【００１６】
スロットパネル４１には、一対のコネクタパネル４４ａ、４４ｂがねじ止めされており、ディスプレイ６等の機器を接続するための複数のコネクタ４５を有している。更にスロットパネル４１には、内部の図示せぬカード収容部に連なる複数の拡張スロット４８が形成されている。
【００１７】
拡張スロット４８は、機器本体２２の幅方向に延びる長孔状をなしており、機器本体２２の高さ方向に間隔を存して互いに平行に配置されている。
【００１８】
夫々の拡張スロット４８に連なるカード収容部には、システム拡張時に複数の拡張カード１００を選択的に取り外し可能に収容できる。本実施例では３枚の拡張カードが収容されており、拡張カード１００の形状も連結金具５２と拡張基板５３とで構成されている。
【００１９】
図４は、上記図１乃至図３に示したコンピュータ１（１Ａ、１Ｂ）のシステム構成を示すブロック図である。このコンピュータ１には、図示するように、ＣＰＵ２０１、ノースブリッジ２０２、メインメモリ２０３、グラフィックスコントローラ２０４、サウスブリッジ２０５、ハードディスクドライブ（ＨＤＤ）２０６、マルチドライブ２０７、Ｉ／Ｏコントローラ２０８、ＦＤＤ２０９、ＢＩＯＳ−ＲＯＭ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ−ＲｅａｄＯｎｌｙ  Ｍｅｍｏｒｙ）２１５、不揮発性メモリ２１６、ＵＳＢ−１  ２２１、ｎ枚の拡張カード１００等が設けられている。
【００２０】
ＣＰＵ２０１は、ホストバスを介してノースブリッジ２０２と接続されており、本コンピュータ１全体の動作を制御するもので、ＨＤＤ２０６からメインメモリ２０３にロードされたオペレーティングシステム（ＯＳ）およびアプリケーションプログラム／ユーティリティプログラムを実行する。
【００２１】
ノースブリッジ２０２は、ＣＰＵ２０１とサウスブリッジ２０５との間のブリッジ処理、メインメモリ２０３の制御、グラフィックスコントローラ２０４の制御などを行う各種コントローラを備えたブリッジデバイスである。
【００２２】
メインメモリ２０３は、ノースブリッジ２０２に接続されており、ＣＰＵ２０１により処理されるＯＳ、各種ドライバ、各種アプリケーションなどを保持し、ＣＰＵ２０１のワークエリアとして機能する。本実施例では、後述する拡張カード１００に内蔵されたプログラム（後述する拡張ＢＩＯＳ）を実行する際には、メインメモリ２０３の予め設定されたメモリ範囲（Ｃ０００ｈ〜ＤＦＦＦｈ）のみ使用できる。即ち、このメモリ範囲を越える場合には、その拡張ＢＩＯＳを実行することはできない。
【００２３】
グラフィクスコントローラ２０４は、ノースブリッジ２０２に接続されており、本コンピュータ１のディスプレイモニタとして使用されるディスプレイ６（ＰＣサーバ１Ｂの場合には図示せぬディスプレイ）へのデータ表示を制御する。
【００２４】
サウスブリッジ２０５は、ハブリンクを介してノースブリッジ２０２に接続されており、ＬＰＣバス１０２上の各種デバイスや、ＰＣＩバス１０１上の各種デバイス、即ちＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）対応のディスクドライブ、ＵＳＢデバイス（ＵＳＢ−１  ２２１）、拡張カード１００等の制御を行う各種コントローラを備えたブリッジデバイスである。
【００２５】
ＨＤＤ２０６は、プライマリＩＤＥに対応するデバイスとしてＰＣＩバス１０１を介してサウスブリッジ２０５に接続されており、ＯＳや各種プログラムなどを記憶する内蔵ハードディスクを駆動する。
【００２６】
マルチドライブ２０７は、セカンダリＩＤＥに対応するデバイスとしてＰＣＩバス１０１を介してサウスブリッジ２０５に接続されており、リムーバブルな記録媒体であるＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷを駆動する。
【００２７】
Ｉ／Ｏコントローラ２０８は、ＬＰＣバス１０２に接続されており、外部とシリアル信号やパラレル信号の入出力制御を行うとともに、ＦＤＤ２０９との入出力制御をも行う。ＦＤＤ２０９は、Ｉ／Ｏコントローラ２０８に接続されており、リムーバブルな磁気記録媒体（ディスク）を駆動する。キーボード／マウス９は、ＬＰＣバス１０２に接続されており、ユーザが入力操作を行う際に使用するものである。
【００２８】
ＢＩＯＳ−ＲＯＭ２１５は、ＬＰＣバス１０２に接続されており、電源が投入された際にＣＰＵ２０１が主に装置内のハードウェアに対して実行する設定処理などの各種の制御プログラム（基本ＢＩＯＳ）を格納している。この基本ＢＩＯＳは、普通に電源が投入された場合には、ハードウェアの設定処理などを行うと共に拡張ＢＩＯＳをシステムに組み込み後、制御をＯＳに渡すようになっている。
【００２９】
不揮発性メモリ２１６は、ＬＰＣバス１０２に接続されており、本実施例における後述する実行表および一覧表を記憶する。
【００３０】
拡張カード１００は、ＰＣＩバス１０１を介してサウスブリッジ２０５に接続されている。この拡張カード１００は、拡張基板５３上あるいはその内部の図示せぬＲＯＭ内に、拡張ＢＩＯＳを内蔵している。この拡張ＢＩＯＳは、コンピュータ１が標準では持っていない機能を実現するためのプログラムで、例えば拡張する機器の動作を制御するためのプログラム等である。
【００３１】
そして、拡張ＢＩＯＳを実行する際には、まず拡張カード１００のＲＯＭ内に内蔵された拡張ＢＩＯＳはメインメモリ２０３のＣ０００ｈ〜ＤＦＦＦｈのメモリ範囲内にコピーされる。
【００３２】
このコピーした拡張ＢＩＯＳの先頭は、図５に示す構成となっており、オフセット３にある値「５１２ＫＢ」から、拡張カード内のＲＯＭからメインメモリ２０３にコピーする際の拡張ＢＩＯＳのプログラムサイズ（拡張ＢＩＯＳの実行時のプログラムサイズまたはメモリ占有サイズ）を把握することができる。
【００３３】
そして、ブート時に基本ＢＩＯＳによってその存在をチェックされ、このメインメモリ２０３のコピーされた拡張ＢＩＯＳが実行されることにより、メインメモリ２０３の上記メモリ範囲内に常駐し、システムに組み込まれる。
【００３４】
この拡張ＢＩＯＳの実行が完了すると、図５に示す拡張ＢＩＯＳの先頭のオフセット３にある値が常駐時のメモリ占有サイズに書き換えられる。このオフセット３のある値を読み取ることにより実行後にメインメモリ２０３に常駐するプログラムサイズ（拡張ＢＩＯＳの常駐時のプログラムサイズまたはメモリ占有サイズ）を把握することができる。
【００３５】
本実施例では、実行する複数の拡張ＢＩＯＳの個々のサイズを調べ、サイズの大きい拡張ＢＩＯＳから実行するよう実行順序を決定し、この実行順序に従って複数ある拡張ＢＩＯＳを実行していくようになっている。
【００３６】
特に、拡張カード内のＲＯＭからメインメモリ２０３にコピーする際の拡張ＢＩＯＳのプログラムサイズ（拡張ＢＩＯＳの実行時のプログラムサイズ）に着目し、この実行時のサイズが大きい順に拡張ＢＩＯＳを実行するよう決定している。
【００３７】
また、実行時のプログラムサイズが同じ拡張ＢＩＯＳが複数存在する場合には、実行後にメインメモリ２０３に常駐するプログラムサイズ（拡張ＢＩＯＳの常駐時のプログラムサイズ）に着目し、この常駐時のサイズが大きい順に拡張ＢＩＯＳを実行するよう決定している。
【００３８】
この結果、拡張ＢＩＯＳ実行時に使用できるメモリ範囲が制限されている状況下において、限られたメモリエリア（Ｃ０００ｈ〜ＤＦＦＦｈ）を有効活用し、より多くの拡張ＢＩＯＳを安定した状態で実行することができる。
【００３９】
次に、図６乃至図８を用いて、コンピュータ１において実行される複数の拡張ＢＩＯＳの実行順序の決定処理に関する動作を説明する。
【００４０】
本実施例では、コンピュータ１は３つの拡張カード１，２，３  １００を有しており、夫々の拡張カード１００のＲＯＭ内に内蔵された３つの拡張ＢＩＯＳ「Ｂ」「Ｃ」「Ｄ」を実行するものとする。
【００４１】
そして、限られたメモリ範囲でより多くの拡張ＢＩＯＳを実行するために、複数の拡張ＢＩＯＳの存在が確認された場合には、後述する図７に示す拡張ＢＩＯＳの順位決定ルールに基づいてその実行順序を判断し、図６に示す実行表を作成し、不揮発性メモリ２１６に記憶する。以降、この実行表の順番に従って拡張ＢＩＯＳを実行する。
【００４２】
図６に示す実行表においては、まず拡張ＢＩＯＳ「Ｃ」を実行し、次に拡張ＢＩＯＳ「Ｂ」を実行し、最後に拡張ＢＩＯＳ「Ｄ」を実行するようになっている。
【００４３】
拡張ＢＩＯＳ「Ｃ」は、拡張カード１からメインメモリ２０３の所定のメモリ範囲にコピーされる際（実行時）にメインメモリ２０３をプログラムサイズＣＳだけ使用し、実行後にはメインメモリ２０３をプログラムサイズＣＳ’だけ使用した状態で常駐する。
【００４４】
拡張ＢＩＯＳ「Ｂ」は、拡張カード１からメインメモリ２０３の所定のメモリ範囲にコピーされる際（実行時）にメインメモリ２０３をプログラムサイズＢＳだけ使用し、実行後にはメインメモリ２０３をプログラムサイズＢＳ’だけ使用した状態で常駐する。
【００４５】
拡張ＢＩＯＳ「Ｄ」は、拡張カード１からメインメモリ２０３の所定のメモリ範囲にコピーされる際（実行時）にメインメモリ２０３をプログラムサイズＤＳだけ使用し、実行後にはメインメモリ２０３をプログラムサイズＤＳ’だけ使用した状態で常駐する。
【００４６】
従って、図６に示す実行表の順番に従って拡張ＢＩＯＳを実行すると、まず拡張ＢＩＯＳ「Ｃ」が内蔵されている拡張カード２  １００のＲＯＭから拡張ＢＩＯＳ「Ｃ」を読み出し、メインメモリ２０３の所定のメモリ範囲にコピーする。この際に、拡張ＢＩＯＳ「Ｃ」が使用するメインメモリ２０３内のプログラムサイズはＣＳである。
【００４７】
そして、このコピーされた拡張ＢＩＯＳ「Ｃ」を実行することによりシステムに組み込まれ、メインメモリ２０３内にプログラムサイズＣＳ’で常駐する。ここでサイズＣＳ、ＣＳ’は限られたメモリ範囲（Ｃ０００ｈ〜ＤＦＦＦｈ）をオーバーしない。
【００４８】
次に、拡張ＢＩＯＳ「Ｂ」が内蔵されている拡張カード１  １００のＲＯＭから拡張ＢＩＯＳ「Ｂ」を読み出し、メインメモリ２０３の所定のメモリ範囲にコピーする。この際、拡張ＢＩＯＳ「Ｂ」が使用するメインメモリ２０３内のプログラムサイズはＢＳである。
【００４９】
そして、この段階でメインメモリ２０３における拡張ＢＩＯＳの占めるサイズはＣＳ’＋ＢＳとなる。又このサイズＣＳ’＋ＢＳは、メインメモリ２０３の限られたメモリ範囲（Ｃ０００ｈ〜ＤＦＦＦｈ）をオーバーしない。
【００５０】
そして、このコピーされた拡張ＢＩＯＳ「Ｂ」を実行することによりシステムに組み込まれ、メインメモリ２０３内にプログラムサイズＢＳ’で常駐する。従って、この段階でメインメモリ２０３における拡張ＢＩＯＳの占めるサイズはＣＳ’＋ＢＳ’となる。又このサイズＣＳ’＋ＢＳ’は限られたメモリ範囲（Ｃ０００ｈ〜ＤＦＦＦｈ）をオーバーしない。
【００５１】
次に、拡張ＢＩＯＳ「Ｄ」が内蔵されている拡張カード３  １００のＲＯＭから拡張ＢＩＯＳ「Ｄ」を読み出し、メインメモリ２０３の所定のメモリ範囲にコピーする。この際、拡張ＢＩＯＳ「Ｄ」が使用するメインメモリ２０３内のプログラムサイズはＤＳである。
【００５２】
そして、この段階でメインメモリ２０３における拡張ＢＩＯＳの占めるサイズはＣＳ’＋ＢＳ’＋ＤＳとなる。又このサイズＣＳ’＋ＢＳ’＋ＤＳは、メインメモリ２０３の限られたメモリ範囲（Ｃ０００ｈ〜ＤＦＦＦｈ）をオーバーしない。
【００５３】
そして、このコピーされた拡張ＢＩＯＳ「Ｄ」を実行することによりシステムに組み込まれ、メインメモリ２０３内にプログラムサイズＤＳ’で常駐する。従って、この段階でメインメモリ２０３における拡張ＢＩＯＳの占めるサイズはＣＳ’＋ＢＳ’＋ＤＳ’となる。又このサイズＣＳ’＋ＢＳ’＋ＤＳ’は限られたメモリ範囲（Ｃ０００ｈ〜ＤＦＦＦｈ）をオーバーしない。
【００５４】
次に、図７に示すフローチャート図を用いて、拡張ＢＩＯＳの実行順序を判断する順位決定ルールについて説明する。
【００５５】
基本ＢＩＯＳは、ＢＩＯＳ−ＲＯＭ２１５に格納された処理プログラムに従って、例えば拡張ＢＩＯＳ「Ｅ」の実行順所を判断する場合、まず実行表の内容を確認し（ＳＴ１１）、実行表に拡張ＢＩＯＳが全くない場合には（ＳＴ１２のＹｅｓ）、１番最初に実行する拡張ＢＩＯＳとして１番先頭の位置に登録する（ＳＴ１３）。
【００５６】
ＳＴ１１の確認の結果、図６に示すように、既に登録された拡張ＢＩＯＳが存在する場合（ＳＴ１２のＮｏ）、基本ＢＩＯＳは、既に登録されている拡張ＢＩＯＳ「Ｂ」「Ｃ」「Ｄ」の実行サイズ「ＢＳ」「ＣＳ」「ＤＳ」と、拡張ＢＩＯＳ「Ｅ」の実行サイズ「ＥＳ」とを比較する（ＳＴ１４）。ＳＴ１４の比較の結果、基本ＢＩＯＳは、実行サイズの大きい順に実行されるような実行表の位置に、拡張ＢＩＯＳ「Ｅ」を登録する（ＳＴ１６）。
【００５７】
ＳＴ１４の比較の結果、拡張ＢＩＯＳ「Ｅ」と同じ実行サイズを有する拡張ＢＩＯＳが既に実行表に登録されている場合には（ＳＴ１５のＹｅｓ）、次に、基本ＢＩＯＳは、実行サイズが同じだった拡張ＢＩＯＳの常駐サイズと、拡張ＢＩＯＳ「Ｅ」の常駐サイズを比較する（ＳＴ１７）。ＳＴ１７の比較の結果、基本ＢＩＯＳは、常駐サイズの大きい順に実行されるような実行表の位置に、拡張ＢＩＯＳ「Ｅ」を登録する（ＳＴ１９）。
【００５８】
ＳＴ１７の比較の結果、拡張ＢＩＯＳ「Ｅ」と実行サイズのみならず常駐サイズも同じ拡張ＢＩＯＳが既に実行表に登録されている場合（ＳＴ１８のＹｅｓ）、基本ＢＩＯＳは、既に登録されている実行サイズ／常駐サイズの同じ拡張ＢＩＯＳの次に拡張ＢＩＯＳ「Ｅ」が実行される順番に、拡張ＢＩＯＳ「Ｅ」を登録する（ＳＴ２０）。
【００５９】
尚、本実施例では、実行サイズも常駐サイズも同じ拡張ＢＩＯＳ同士の実行順序について、ＳＴ２０では既に登録されている拡張ＢＩＯＳの次に実行されるような順番に登録したが、これに限らず、既に登録されている拡張ＢＩＯＳの前に実行される順番としても良い。
【００６０】
次に、図８を用いて、具体的な数値を用いて、拡張ＢＩＯＳの実行順序を判断する順位決定ルール及び実行表について具体的に説明する。
【００６１】
図８（ａ）は、コンピュータ１で実行される複数の拡張ＢＩＯＳと、その実行時に占有するメモリサイズ、およびその常駐時に占有するメモリサイズとを示している。図８（ｂ）は、図８（ａ）に示す複数の拡張ＢＩＯＳに対して、図７に示す順位決定ルールによって実行順序を決定し、この実行順序に対応して作成された実行表である。
【００６２】
また、コンピュータ１のメインメモリ２０３において、拡張ＢＩＯＳに使用できるメモリ範囲を１００として説明する。そして、拡張ＢＩＯＳ「Ｂ」はその実行時に占有するメモリサイズが５０で、常駐時に占有するメモリサイズが３０である。
【００６３】
拡張ＢＩＯＳ「Ｃ」はその実行時に占有するメモリサイズが３０で、常駐時に占有するメモリサイズが１０である。拡張ＢＩＯＳ「Ｄ」はその実行時に占有するメモリサイズが７０で、常駐時に占有するメモリサイズが４０である。
【００６４】
仮に図８（ａ）に示す順番に拡張ＢＩＯＳを実行した場合、拡張ＢＩＯＳ「Ｄ」を実行する前の段階で、拡張ＢＩＯＳ「Ｂ」の常駐サイズ＋拡張ＢＩＯＳ「Ｃ」の常駐サイズによって、既にメモリ範囲１００のうち４０（＝３０＋１０）が使用される。
【００６５】
ここで拡張ＢＩＯＳ「Ｄ」を実行しようとすると、その実行時に占有するメモリサイズが７０であることから、予め決められたメモリ範囲１００を越えてしまうため（４０＋７０＝１１０）、拡張ＢＩＯＳ「Ｄ」が内蔵されている拡張カード１００のＲＯＭから読み出してメインメモリ２０３に格納することができず、拡張ＢＩＯＳ「Ｄ」を実行することができない。
【００６６】
図８（ａ）に示す複数の拡張ＢＩＯＳに対して、図７に示す順位決定ルールによって実行順序を決定すると、図８（ｂ）に示す実行順序となる。即ち、実行時に占有するメモリサイズの大きい順に実行する。ここで、実行時に占有するメモリサイズが同じ拡張ＢＩＯＳが複数ある場合には、常駐時に占有するメモリサイズの大きい順に実行する。
【００６７】
この結果、図８（ｂ）に示す実行表が作成され、まず拡張ＢＩＯＳ「Ｄ」を実行し、次に拡張ＢＩＯＳ「Ｂ」を実行し、最後に拡張ＢＩＯＳ「Ｃ」を実行することとなる。
【００６８】
まず、拡張ＢＩＯＳ「Ｄ」が内蔵されている拡張カード１００のＲＯＭから読み出し、メインメモリ２０３の所定のメモリ範囲にコピーする。この際のメモリ占有サイズは７０である。そしてコピーした拡張ＢＩＯＳ「Ｄ」を実行した後、メインメモリ２０３内の常駐時のメモリ占有サイズは４０となる。
【００６９】
次に、拡張ＢＩＯＳ「Ｂ」が内蔵されている拡張カード１００のＲＯＭから読み出し、メインメモリ２０３の所定のメモリ範囲にコピーする。この際のメモリ占有サイズは５０である。この段階で、既に常駐している拡張ＢＩＯＳ「Ｄ」と合計したメモリ占有サイズは４０＋５０＝９０であり、所定のメモリ範囲内に収まっている。
【００７０】
そして、コピーした拡張ＢＩＯＳ「Ｂ」を実行した後、メインメモリ２０３内の常駐時のメモリ占有サイズは３０である。この段階で、既に常駐している拡張ＢＩＯＳ「Ｄ」と合計したメモリ占有サイズは４０＋３０＝７０であり、所定のメモリ範囲内に収まっている。
【００７１】
最後に、拡張ＢＩＯＳ「Ｃ」が内蔵されている拡張カード１００のＲＯＭから読み出し、メインメモリ２０３の所定のメモリ範囲にコピーする。この際のメモリ占有サイズは３０である。この段階で、既に常駐している拡張ＢＩＯＳ「Ｄ」「Ｂ」と合計したメモリ占有サイズは４０＋３０＋３０＝１００であり、所定のメモリ範囲内に収まっている。
【００７２】
そして、コピーした拡張ＢＩＯＳ「Ｃ」を実行した後、メインメモリ２０３内の常駐時のメモリ占有サイズは１０である。既に常駐している拡張ＢＩＯＳ「Ｄ」「Ｂ」と合計したメモリ占有サイズは４０＋３０＋１０＝８０であり、所定のメモリ範囲内に収まっている。
【００７３】
従って、図７に示すように、複数ある拡張ＢＩＯＳに対して、実行時のメモリ占有サイズをまずチェックし、大きい順に実行する。ここで、実行時のメモリ占有サイズが同じ拡張ＢＩＯＳが複数ある場合には、常駐時のメモリ占有サイズをチェックし、大きい順に実行する。この順番を実行表として格納しておき、この実行表に従って複数ある拡張ＢＩＯＳを実行していくことにより、より多くの拡張ＢＩＯＳを実行することができる。
【００７４】
次に、図９及び図１０に示すフローチャートを用いて、実行表に基づいた複数の拡張ＢＩＯＳの実行処理について説明する。
【００７５】
尚、本実施例では、ブート時に基本ＢＩＯＳによって実行される拡張ＢＩＯＳに関する一覧表が作成されるようになっているが、これに限らず、不揮発性メモリ２１６に、実行する複数の拡張ＢＩＯＳに関する図示せぬ一覧表が予め格納されており、ブート時にこの一覧表を参照して、実行すべき複数の拡張ＢＩＯＳを判断するようにしても良い。
【００７６】
図９に示すように、ブート時、まず基本ＢＩＯＳは、装置内のハードウェアに対する各種設定処理を実行すると共に、実行する拡張ＢＩＯＳの有無を判断する。ここで判断された拡張ＢＩＯＳに基づいて、実行すべき拡張ＢＩＯＳの一覧表を作成する。
【００７７】
次に、基本ＢＩＯＳは、この一覧表と実行表とを比較し、一覧表にある拡張ＢＩＯＳの全てが実行表に登録されているか確認する（ＳＴ２１）。ＳＴ２１で実行表に全ての拡張ＢＩＯＳが登録されていると判断されたら（ＳＴ２２のＹｅｓ）、基本ＢＩＯＳは、実行表に登録された順番に従って拡張ＢＩＯＳを実行していき、拡張ＢＩＯＳをシステムに組み込むと、制御をＯＳに渡す（ＳＴ２３）。
【００７８】
ＳＴ２１で一覧表を参照し、実行表に登録されていない拡張ＢＩＯＳがあると判断されると（ＳＴ２２のＮｏ）、基本ＢＩＯＳは、図１０に示す拡張ＢＩＯＳのサイズ取得処理へと進む（ＳＴ１４）。このＳＴ１４の処理により実行表が完成すると、ＳＴ２３へと進み、実行表に登録された順番で拡張ＢＩＯＳを実行していき、拡張ＢＩＯＳをシステムに組み込むと、制御をＯＳに渡す（ＳＴ２３）。
【００７９】
ＳＴ１４の拡張ＢＩＯＳのサイズ取得処理について図１０を用いて詳述する。図１０に示すように、基本ＢＩＯＳは、まず一覧表における登録順番に従って、次に実行する拡張ＢＩＯＳを１つ決定する（ＳＴ３１）。ＳＴ３１で決定した拡張ＢＩＯＳが実行表に存在する場合には（ＳＴ３２のＹｅｓ）、一覧表を参照し、次に登録された拡張ＢＩＯＳを選択し、次に実行する拡張ＢＩＯＳとして決定する（ＳＴ３１）。
【００８０】
ＳＴ３１で決定した拡張ＢＩＯＳが実行表に存在しない場合には（ＳＴ３２のＮｏ）、基本ＢＩＯＳは、ＳＴ３１で決定された拡張ＢＩＯＳが内蔵されている拡張カード１００のＲＯＭから読み出し、メインメモリ２０３の所定のメモリ範囲に格納（コピー）する（ＳＴ３３）。
【００８１】
ＳＴ３３でコピーした拡張ＢＩＯＳの先頭は、図５に示す構成となっており、オフセット３にある値「５１２ＫＢ」から、実行時のメモリ占有サイズを把握することができる（ＳＴ３４）。そして、この段階でメモリ不足である場合には（ＳＹ３５のＹｅｓ）、再起動して（ＳＴ４０）、ＳＴ３１へと進み、一覧表における順番に従って、次に実行する拡張ＢＩＯＳを１つ決定することとなる（ＳＴ３１）。
【００８２】
ＳＴ３４で実行時のメモリ占有サイズを取得すると、基本ＢＩＯＳは、次にコピーした拡張ＢＩＯＳを実行する（ＳＴ３６）。そして実行が完了すると、図５に示す拡張ＢＩＯＳの先頭のオフセット３にある値が常駐時のメモリ占有サイズに書き換えられるので、このオフセット３のある値を読み取ることにより常駐時のメモリ占有サイズを把握する（ＳＴ３７）。
【００８３】
ＳＴ３４で読み出した実行時のメモリ占有サイズと、ＳＴ３７で読み出した常駐時のメモリ占有サイズとに基づいて、基本ＢＩＯＳは実行表を参照し、図７に示す順位決定ルールに基づいて、実行順序を決定し、当該拡張ＢＩＯＳの情報を実行表に追加登録する（ＳＴ３８）。
【００８４】
ここで、実行表に全ての拡張ＢＩＯＳが存在すると判断された場合には（ＳＴ３９のＹｅｓ）、コンピュータ１を再起動する（ＳＴ４０）。ここで、実行表の拡張ＢＩＯＳは全てではないと判断されると（ＳＴ３９のＮｏ）、ＳＴ３１に進み、一覧表における順番に従って、次に実行する拡張ＢＩＯＳを１つ決定することとなる（ＳＴ３１）。
【００８５】
上述するように、本実施例では、実行する複数の拡張ＢＩＯＳの個々のサイズに基づいて、特に拡張ＢＩＯＳ実行時（拡張カード内のＲＯＭからメインメモリ２０３にコピーする際）のプログラムサイズの大きい拡張ＢＩＯＳから実行するよう実行順序を決定し、この実行順序に従って複数ある拡張ＢＩＯＳを実行するよう決定している。
【００８６】
また、実行時のプログラムサイズが同じ拡張ＢＩＯＳが複数存在する場合には、実行後にメインメモリ２０３に常駐するプログラムサイズ（拡張ＢＩＯＳの常駐時のプログラムサイズ）に着目し、この常駐時のサイズが大きい順に拡張ＢＩＯＳを実行するよう決定している。
【００８７】
この結果を実行表として保持し、この実行表の登録順序に従って複数の拡張ＢＩＯＳを実行することにより、拡張ＢＩＯＳ実行時に使用できるメモリ範囲が制限されている状況下において、限られたメモリエリア（Ｃ０００ｈ〜ＤＦＦＦｈ）を有効活用し、より多くの拡張ＢＩＯＳを安定した状態で実行することができるという効果を奏する。
【００８８】
【発明の効果】
以上説明したように、本発明によれば、限られたメモリエリアを有効活用し、より多くのプログラムを実行することができる。
【図面の簡単な説明】
【図１】本発明の情報処理装置に係るノートブック型パーソナルコンピュータ１Ａの外観構成を示す斜視図。
【図２】本発明の情報処理装置に係るＰＣサーバ１Ｂの外観構成を示す斜視図。
【図３】ＰＣサーバ１Ｂの背面図。
【図４】コンピュータ１（含むノート型パソコン１Ａ及びＰＣサーバ１Ｂ）のシステム構成を示すブロック図。
【図５】拡張ＢＩＯＳの先頭の情報を概略的に示す図。
【図６】実行表を説明するための図。
【図７】拡張ＢＩＯＳの実行順序を決定する順位決定ルールを説明するためのフローチャート図。
【図８】順位決定ルールに基づいた具体例を説明する図。
【図９】実行表に基づいた複数の拡張ＢＩＯＳの実行処理の動作を説明するためのフローチャート図。
【図１０】拡張ＢＩＯＳのサイズ取得処理の動作を説明するためのフローチャート図。
【符号の説明】
１    コンピュータ
１Ａ    ノートブック型パーソナルコンピュータ（ノート型パソコン）
１Ｂ    ＰＣサーバ
８、４８    拡張スロット
１００    拡張カード
２０１    ＣＰＵ
２０３    メインメモリ
２１５    ＢＩＯＳ−ＲＯＭ
【図１】
2004199305.tif 000003
【図２】
2004199305.tif 000004
【図３】
2004199305.tif 000005
【図４】
2004199305.tif 000006
【図５】
2004199305.tif 000007
【図６】
2004199305.tif 000008
【図７】
2004199305.tif 000009
【図８】
2004199305.tif 000010
【図９】
2004199305.tif 000011
【図１０】
2004199305.tif 000012