(57)【要約】【課題】物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能な情報処理装置およびメモリアドレス空間割り当て方法を実現する。【解決手段】記憶装置に格納された割り当てサイズを取得し、前記取得した割り当てサイズを用いて前記第１エリアに前記物理メモリを割り当て、前記第２エリアに割り当て可能なＩ／Ｏデバイスを検出し、検出されたＩ／Ｏデバイスに応じて前記記憶装置に格納された前記割り当てサイズ情報を変更する。【選択図】      図４
2007233534.tif 000002
【特許請求の範囲】
【請求項１】
主記憶を割り当て可能な第１エリアとシステムに固有なコンポーネントおよびＩ／Ｏデバイスを割り当て可能な第２エリアとがマッピングされたメモリアドレス空間をアクセス可能なプロセッサと、
前記主記憶として機能する物理メモリと、
割り当てサイズが格納された記憶装置と、
前記割り当てサイズを用いて前記第１エリアに前記物理メモリを割り当てる手段と、
前記第２エリアに割り当て可能なＩ／Ｏデバイスの構成に応じて、前記記憶装置に格納された前記割り当てサイズ情報を変更する手段とを具備することを特徴とする情報処理装置。
【請求項２】
前記変更手段は、
前記第２エリアに割り当て可能なＩ／Ｏデバイスを検出し、検出されたＩ／Ｏデバイスおよびシステムに固有なコンポーネントを第２エリアに割り当てるのに必要なサイズを求める手段と、
前記求められたサイズと前記メモリアドレス空間のサイズとから前記主記憶として使用可能なメモリサイズを求める手段と、
前記使用可能なメモリサイズと前記割り当てサイズとが異なるか否かを判別する手段と、
前記使用可能なメモリサイズが前記割り当てサイズと異なると判別された場合に、前記使用可能なメモリサイズを用いて前記記憶装置に格納された前記割り当てサイズ情報を変更する手段とを具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記記憶装置に格納された前記割り当てサイズ情報を変更した場合に、システムをリスタートさせる手段を更に具備することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記変更手段は、
前記第２エリアに割り当て可能なＩ／Ｏデバイスを検出し、検出されたＩ／Ｏデバイスおよびシステムに固有なコンポーネントを第２エリアに割り当てるのに必要なサイズを求める手段と、
前記求められたサイズと前記メモリアドレス空間のサイズとから前記主記憶として使用可能なメモリサイズを求める手段と、
前記第２エリアに前記Ｉ／Ｏデバイスを割り当てることができたか否かを判別する判別手段と、
前記第２エリアに前記Ｉ／Ｏデバイスを割り当てることができないと判別された場合に、前記使用可能なメモリサイズを用いて前記記憶装置に格納された前記割り当てサイズ情報を変更する手段とを具備することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記記憶装置に格納された前記割り当てサイズ情報を変更した場合に、システムをリスタートさせる手段を更に具備することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記割り当てサイズが前記物理メモリのサイズより大きいか否かを判別する手段と、
前記割り当てサイズが前記物理メモリのサイズより大きく無いと判別された場合に、前記物理メモリのサイズを用いて前記第１のエリアに前記物理メモリを割り当てる手段を更に具備することを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記メモリアドレス空間のサイズから、前記システムに固有なコンポーネントを第２エリアに割り当てるために必要なサイズと前記情報処理装置の本体に内蔵されたＩ／Ｏデバイスを第２のエリアに割り当てるために必要なサイズの和を減じた最大割り当て可能メモリサイズを格納する第２の記憶装置と、
前記第１の記憶装置に前記割り当てサイズが格納されているか否かを判別する手段と、
前記第１の記憶装置に前記割り当てサイズが格納されていないと判別された場合に、前記物理メモリのサイズが前記最大割り当て可能メモリサイズより大きいか否かを判定する手段と、
前記物理メモリのサイズが前記最大割り当て可能メモリサイズより大きいと判別された場合に、前記最大割り当て可能メモリサイズを用いて前記第１エリアに前記物理メモリを割り当てる手段と、
前記物理メモリのサイズが前記最大割り当て可能メモリサイズより大きくないと判別された場合に、前記物理メモリのサイズを用いて前記第１のエリアに前記物理メモリを割り当てる手段とを具備することを特徴とする請求項１記載の情報処理装置。
【請求項８】
主記憶を割り当て可能な第１エリアとシステムに固有なコンポーネントおよびＩ／Ｏデバイスを割り当て可能な第２エリアとがマッピングされたメモリアドレス空間をアクセス可能なプロセッサと前記主記憶として機能する物理メモリとを備えた情報処理装置に適用されるメモリアドレス空間割り当て方法であって、
記憶装置に格納された割り当てサイズを取得し、
前記取得した割り当てサイズを用いて前記第１エリアに前記物理メモリを割り当て、
前記第２エリアに割り当て可能なＩ／Ｏデバイスを検出し、
検出されたＩ／Ｏデバイスに応じて前記記憶装置に格納された前記割り当てサイズ情報を変更することを特徴とするメモリアドレス空間割り当て方法。
【請求項９】
前記変更は、
前記第２エリアに割り当て可能なＩ／Ｏデバイスを検出し、検出されたＩ／Ｏデバイスおよびシステムに固有なコンポーネントを第２エリアに割り当てるのに必要なサイズを求め、
前記求められたサイズと前記メモリアドレス空間のサイズとから前記主記憶として使用可能なメモリサイズを求め、
前記使用可能なメモリサイズと前記割り当てサイズとが異なるか否かを判別し、
前記使用可能なメモリサイズが前記割り当てサイズと異なると判別された場合に、前記使用可能なメモリサイズを用いて前記記憶装置に格納された前記割り当てサイズ情報を変更することを特徴とする請求項８記載のメモリアドレス空間割り当て方法。
【請求項１０】
前記割り当てサイズ情報を変更した場合に、システムをリスタートさせることを特徴とする請求項９記載のメモリアドレス空間割り当て方法。
【請求項１１】
前記変更は、
前記第２エリアに割り当て可能なＩ／Ｏデバイスを検出し、検出されたＩ／Ｏデバイスおよびシステムに固有なコンポーネントを第２エリアに割り当てるのに必要なサイズを求め、
前記求められたサイズと前記メモリアドレス空間のサイズとから前記主記憶として使用可能なメモリサイズを求め、
前記第２エリアに前記Ｉ／Ｏデバイスを割り当てることができたか否かを判別する判別し、
前記第２エリアに前記Ｉ／Ｏデバイスを割り当てることができないと判別された場合に、前記使用可能なメモリサイズを用いて前記記憶装置に格納された前記割り当てサイズ情報を変更することを特徴とする請求項７記載のメモリアドレス空間割り当て方法。
【請求項１２】
前記割り当てサイズ情報を変更した場合に、システムをリスタートさせることを特徴とする請求項１１記載のメモリアドレス空間割り当て方法。
【請求項１３】
前記割り当てサイズが前記物理メモリのサイズより大きいか否かを判別し、
前記割り当てサイズが前記物理メモリのサイズより大きく無いと判別された場合に、前記物理メモリのサイズを用いて前記第１のエリアに前記物理メモリを割り当てることを特徴とする請求項７記載のメモリアドレス空間割り当て方法。
【請求項１４】
前記情報処理装置は、前記メモリアドレス空間のサイズから、前記システムに固有なコンポーネントを第２エリアに割り当てるために必要なサイズと前記情報処理装置の本体に内蔵されたＩ／Ｏデバイスを第２のエリアに割り当てるために必要なサイズの和を減じた最大割り当て可能メモリサイズを格納する第２の記憶装置を有し、
前記第１の記憶装置に前記割り当てサイズが格納されているか否かを判別し、
前記第１の記憶装置に前記割り当てサイズが格納されていないと判別した場合に、前記物理メモリのサイズが前記最大割り当て可能メモリサイズ以上であるか否かを判別し、
前記物理メモリのサイズが前記最大割り当て可能メモリサイズ以上であると判定された場合、前記最大割り当て可能メモリサイズを用いて前記第１エリアに前記物理メモリを割り当て、
前記物理メモリのサイズが前記最大割り当て可能メモリサイズ以上では無いと判別された場合、前記物理メモリのサイズを用いて前記第１のエリアに前記物理メモリを割り当てることを特徴とする請求項７記載のメモリアドレス空間割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアドレス空間に主記憶およびＩ／Ｏデバイスを割り当て可能な情報処理装置および同装置で用いられるメモリアドレス空間割り当て方法に関する。
【背景技術】
【０００２】
近年、ノートブック型パーソナルコンピュータのような各種携帯型情報処理装置が開発されている。このようなコンピュータは、その機能拡張のために、Ｉ／Ｏデバイスなどが必要に応じて接続可能なように構成されている。
【０００３】
このようなＩ／Ｏデバイスの中には、ＭＭＩＯ（Memory-mapped Input/Output）として機能するＩ／Ｏデバイスがある。ＭＭＩＯとして機能するＩ／Ｏデバイスは、プロセッサのメモリアドレス空間に割り当てられる。
【０００４】
特許文献１には、ＭＭＩＯをサポートするコンピュータシステムが開示されている。
【特許文献１】特開２００３−９９３８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通常、ＭＭＩＯをサポートするシステムにおいては、主記憶を割り当てる空間の他にＭＭＩＯ空間をプロセッサのメモリアドレスにマッピングすることが必要となる。
【０００６】
ところで、３２ビットプロセッサにおいては、このプロセッサがアクセス可能なメモリアドレス空間のサイズは４Ｇバイトまでに制限されている。このため、コンピュータに４Ｇバイトの物理メモリを搭載した場合、実際に主記憶として使用できるメモリサイズは、４ＧバイトからＭＭＩＯアドレス空間のサイズを引いた残りのサイズに制限される。ＭＭＩＯアドレス空間のサイズを小さくすれば、主記憶として使用可能なメモリサイズは大きくなる。しかし、このようにすると、ＭＭＩＯとして機能するＩ／Ｏデバイスが正常に動作しなくなってしまう可能性がある。
【０００７】
本発明は、物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能な情報処理装置およびメモリアドレス空間割り当て方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、主記憶を割り当て可能な第１エリアとＩ／Ｏデバイスを割り当て可能な第２エリアとがマッピングされたメモリアドレス空間をアクセス可能なプロセッサと、前記主記憶として機能する物理メモリと、前記メモリアドレス空間に前記主記憶を前記Ｉ／Ｏデバイスよりも優先して割り当てる第１モードおよび前記メモリアドレス空間に前記Ｉ／Ｏデバイスを前記主記憶よりも優先して割り当てる第２モードの一方を指定するモード指定手段と、前記物理メモリのメモリサイズが前記第１エリアのサイズよりも大きい場合、前記第１モードおよび前記第２モードのどちらのモードが指定されているかを判別する判別手段と、前記第１モードが指定されていることが判別された場合、前記主記憶として使用可能なメモリサイズが前記第１エリアのサイズよりも大きいサイズに設定されるように前記第１エリアおよび少なくとも前記第２エリア内の一部に前記物理メモリを割り当て、前記第２モードが指定されていることが判別された場合、前記使用可能なメモリサイズが前記第１エリアのサイズに制限されるように前記第１エリアに前記物理メモリを割り当てる割り当て手段とを具備することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の実施形態を説明する。
【００１１】
図１には、本発明の一実施形態に係る情報処理装置の構成が示されている。この情報処理装置は、例えば、バッテリ駆動可能なノートブック型の携帯型パーソナルコンピュータ１０として実現されている。このノートブック型の携帯型パーソナルコンピュータ１０は、ＵＳＢ（Universal Serial Bus）デバイス、ＣａｒｄＢｕｓ規格に対応するＣａｒｄＢｕｓカードデバイスおよびＰＣＩＥｘｐｒｅｓｓ（Peripheral Component Interconnect Express）規格に対応するＰＣＩＥｘｐｒｅｓｓカードデバイスなどの各種Ｉ／Ｏデバイス（オプションＩ／Ｏデバイス）が取り外し自在に接続できるように構成されている。
【００１２】
本コンピュータ１０は、本体１１およびディスプレイユニット１２とから構成されている。本体１１の上面には、キーボード１３、本コンピュ−タ１０を電源オン／電源オフするためのパワーボタンスイッチ１４およびタッチパッド１５などが設けられている。本体１１の例えば背面には、上記各種オプションＩ／Ｏデバイスを接続するための接続ポートが配置されている。ディスプレイユニット１２の内面にはＬＣＤ（Liquid Crystal Display）１７から構成される表示装置が組み込まれており、そのＬＣＤ１７の表示画面は、ディスプレイユニット１２のほぼ中央に位置されている。ディスプレイユニット１２は、本体１１に支持され、その本体１１に対して本体１１の上面が露出される開放位置と本体１１の上面を覆う閉塞位置との間を回動自在に取り付けられている。
【００１３】
図２には、本コンピュータ１０のシステム構成の例が示されている。
【００１４】
本コンピュータ１０は、図２に示されているように、ＣＰＵ１１１、ノースブリッジ（ＮＢ）１１２、主メモリ１１６、サウスブリッジ（ＳＢ）１２０、ハードディスクドライブ（ＨＤＤ）１２６Ａ、光ディスクドライブ（ＯＤＤ）１２６Ｂ、ＢＩＯＳ−ＲＯＭ１３０、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１４０等から構成されている。
【００１５】
ＣＰＵ１１１は、本コンピュータ１０の各コンポーネントの動作を制御するプロセッサである。このＣＰＵ１１１は、ＨＤＤ１２６Ａから主メモリ１１６にロードされる、オペレーティングシステム（ＯＳ）および各種アプリケーションプログラムを実行する。また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１３０に格納されたシステムＢＩＯＳ（Basic Input Output System）も実行する。システムＢＩＯＳはハードウェア制御のためのプログラムである。システムＢＩＯＳは、本コンピュータ１０の各コンポーネントの動作環境を設定するためのＢＩＯＳセットアップメニュー画面をＬＣＤ１７に表示する機能を有している。ＣＰＵ１１１は、例えば３２ビットプロセッサとして実現されており、４Ｇバイトのメモリアドレス空間をアクセスすることができる。このメモリアドレス空間には、主メモリ（主記憶）１１６として使用される物理メモリを割り当て可能な標準メモリエリアと、ＭＭＩＯ（Memory-mapped Input/Output）のようなＩ／Ｏデバイスを割り当て可能なＭＭＩＯエリアとがマッピングされている。
【００１６】
ノースブリッジ１１２は、ＣＰＵ１１１とサウスブリッジ１２０との間を接続するブリッジデバイスである。このノースブリッジ１１２は、表示コントローラ１１３とメモリコントローラ１１４とを備えている。
【００１７】
表示コントローラ１１３はＰＣＩデバイスとして機能し、本コンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７を制御する。この表示コントローラ１１３は、ビデオメモリを有しており、このビデオメモリに書き込まれた映像データからＬＣＤ１７に送出すべき表示信号を生成する。
【００１８】
メモリコントローラ１１４は、主メモリ１１６を制御するコントローラである。このメモリコントローラ１１４は、レジスタ１１５を有している。このレジスタ１１５には、例えば、主メモリ１１６を割り当て可能なメモリアドレス空間内のエリアを指定するアドレス情報（エリアの先頭アドレス、エリアの終端アドレス）がシステムＢＩＯＳによってセットされる。ＣＰＵ１１１から出力されるメモリアドレス値が、レジスタ１１５にセットされたアドレス情報で指定されたエリア内に属する場合、メモリコントローラ１１４は、主メモリ１１６をアクセスする。
【００１９】
主メモリ１１６は、例えばＤＲＡＭ（Dynamic Random Access Memory）などの物理メモリによって構成されている。本体１１に内蔵されたメモリモジュールのみならず、本体１１に接続された拡張メモリモジュールも物理メモリとして使用される。
【００２０】
サウスブリッジ１２０には、ＰＣＩバス２およびＬＰＣ（Low Pin Count）バス３が接続されている。サウスブリッジ１２０には、ＵＳＢコントローラ１２１、ホストコントローラ１２２，１２４、ＩＤＥコントローラ１２３および不揮発性メモリ１２５等が設けられている。
【００２１】
ＵＳＢコントローラ１２１はＰＣＩデバイスとして機能する。ＵＳＢコントローラ１２１は、ＵＳＢポート１２１Ａに接続されている。ＵＳＢポート１２１ＡはＵＳＢ規格に対応するＵＳＢデバイス１２７等が接続可能な接続ポートである。ＵＳＢコントローラ１２１は、ＵＳＢポート１２１Ａに接続されたＵＳＢデバイス１２７等のオプションＩ／Ｏデバイスを制御する。
【００２２】
ホストコントローラ１２２はＰＣＩデバイスとして機能し、ＰＣＩバス２を介して拡張バススロット１２２Ａおよび１２２Ｂに接続されている。拡張バススロット１２２Ａおよび１２２Ｂは、ＣａｒｄＢｕｓカードデバイスおよびＰＣＩＥｘｐｒｅｓｓカードデバイスなどのオプションＩ／Ｏデバイスが接続可能に構成されている。
【００２３】
ＩＤＥ（Integrate Drive Electronics）コントローラ１２３はＰＣＩデバイスとして機能し、ＨＤＤ１２６Ａおよび光ディスクドライブ（ＯＤＤ）１２６Ｂに接続されている。ＩＤＥコントローラ１２３は、ＨＤＤ１２６ＡおよびＯＤＤ１２６Ｂを制御する。
【００２４】
不揮発性メモリ１２５は、割り当てサイズ情報を格納している。割り当てサイズ情報は、ＣＰＵ１１１のメモリアドレス空間に主メモリ１１６を割り当てるメモリサイズである。また、割り当てサイズ情報を変更したか否かを示す割り当てサイズ情報変更フラグを格納している。割り当てサイズ情報を変更した場合、サイズ情報変更フラグがイネーブルになる。
【００２５】
またさらに、不揮発性メモリ１２５は最大割り当て可能メモリサイズ情報を格納している。最大割当て可能メモリサイズ情報は、ＣＰＵがアクセス可能なメモリアドレス空間のサイズからシステムに固有なＭＭＩＯアドレス空間サイズとコンピュータ本体内に内蔵したＰＣＩデバイスのＭＭＩＯアドレス空間サイズの和を減じたメモリサイズである。例えば、ＣＰＵが３２ビットプロセッサで、ＣＰＵ１１１がアクセス可能なメモリアドレス空間のサイズが４Ｇバイトのシステムの場合、ＭＭＩＯで使用するアドレス空間が最小で０．５ＧＢ（５１２ＭＢ）であるとすると、最大割当て可能メモリサイズは３．５Ｇバイト（３４８４ＭＢ）となる。
【００２６】
なお、システム固有のＭＭＩＯアドレス空間２０４は、本コンピュータ１０固有のコンポーネントが割り当てられるメモリアドレス空間である。例えば、このシステム固有のＭＭＩＯアドレス空間２０４には、ＰＣＩＥＸＢＡＲ（Peripheral Component Interconnect Express Base Address）、ＡＰＩＣ（Advanced Programmable Interrupt Controller）、ＦＷＨ（Firmware Hub）レジスタスペース（Register Space）およびＦＷＨＢＩＯＳスペース（Firmware Hub BIOS Space）等が割り当てられている。ＰＣＩＥＸＢＡＲは、ＰＣＩコンフィグレジスタをアクセスするためのＭＭＩＯアドレス空間である。ＡＰＩＣは、割り込みコントローラをアクセスするためのＭＭＩＯアドレス空間である。ＦＷＨレジスタスペースは、ＢＩＯＳ−ＲＯＭ１３０内のＩ／Ｏレジスタ群が割り当てられたＭＭＩＯアドレス空間である。ＦＷＨＢＩＯＳスペースは、ＢＩＯＳ−ＲＯＭ１３０内のフラッシュメモリが割り当てられたＭＭＩＯアドレス空間である。
【００２７】
また、コンピュータ本体内に内蔵したＰＣＩデバイスとは、本コンピュータ１０内の各ＰＣＩデバイスのようなＩ／Ｏデバイスが割り当てられるメモリアドレス空間である。
【００２８】
ＬＰＣバス３上にはＢＩＯＳ−ＲＯＭ１３０およびエンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１４０等が接続されている。
【００２９】
３２ビットＣＰＵでは、図３に示すようなアドレス００００００００ｈ〜ＦＦＦＦＦＦＦＦｈの４Ｇバイト空間しかアクセスすることができない。ＰＣではシステムを動作させるために、ＢＩＯＳ  ＲＯＭ、ＡＰＩＣ、ＰＣＩＥＸＢＡＲ（ＰＣＩコンフィグレジスタをＭＭＩＯとしてアクセスする空間）等予めシステム固定で確保しておく空間２０４が必要である。
【００３０】
また、システム内蔵のＰＣＩデバイスをいくつか持っており、そのＰＣＩデバイスに割り当てるためのＭＭＩＯ空間２０３が必要である。上記、システム固定で確保しておく空間２０４と実際にメモリとして使用可能な空間２０１を４Ｇバイトの空間から除いたものが、ＰＣＩデバイスのＭＭＩＯに割り当て可能空間２０３になる。
【００３１】
図４、図５のフローチャートを用いて、本発明のメモリサイズ決定時の実施例を説明する。
【００３２】
ＰＣの電源を投入するとＣＰＵ１０２は、ＢＩＯＳ  ＲＯＭ１０６に格納されているＢＩＯＳプログラムを実行する。ＢＩＯＳプログラムのメモリ初期化処理において、符号１０５のメモリを初期化し、接続されているメモリのメモリサイズを取得する（ステップＳ１０１）。ステップＳ１０１においては、具体的には、システムＢＩＯＳは、例えば主メモリ１１６に設けられたＳＰＤ（Serial Presence Detect）などのＥＥＰＲＯＭ（Electrically Erasable Programmable Read-only Memory）からメモリサイズを検出する。
【００３３】
不揮発性メモリ１２５に格納されている割り当てサイズ情報を参照し、実際にＨ／Ｗに設定する割り当てメモリサイズを格納する。
【００３４】
次いで、システムＢＩＯＳは、不揮発性メモリ１２５から標準メモリエリアに割り当てるサイズである割り当てサイズ情報を取得する（ステップＳ１０２）。
【００３５】
次いで、システムＢＩＯＳは、ステップＳ１０２で取得した割り当てサイズ情報のサイズが０で有るか否かを判定する（ステップＳ１０３）。０ではないと判定された場合（ステップＳ１０３のＮｏ）、即ち事前に計算しておいた割り当てメモリサイズが格納されていた場合、システムＢＩＯＳはステップＳ１０２で取得した割り当てサイズ情報のサイズがステップＳ１０１で取得した接続メモリサイズより大きいか否かを判定する（ステップＳ１０４）。
【００３６】
割り当てサイズ情報が接続メモリサイズより大きくないと判定された場合（ステップＳ１０４のＮｏ）、システムＢＩＯＳは割り当てメモリサイズ情報のメモリサイズを標準メモリエリアに割り当てるメモリサイズとする。
【００３７】
割り当てサイズ情報のサイズが接続メモリサイズより大きいと判定された場合（ステップＳ１０４のＹｅｓ）、システムＢＩＯＳは接続メモリのサイズを標準メモリエリアに割り当てるメモリサイズとする（ステップＳ１０７）。
【００３８】
ステップＳ１０３の処理において、割り当てサイズ情報のサイズが０で有ると判定された場合（ステップＳ１０３のＹｅｓ）、システムＢＩＯＳは、接続メモリのサイズと不揮発性メモリ１２５に格納された最大割り当て可能メモリのサイズを比較し、接続メモリサイズが最大割当て可能メモリサイズより大きいか否かを判定する（ステップＳ１０６）。
【００３９】
接続メモリサイズが最大割当て可能メモリサイズより大きくないと判定された場合（ステップＳ１０６のＮｏ）、システムＢＩＯＳは、接続メモリサイズを割り当てメモリサイズとする（ステップＳ１０７）。
【００４０】
接続メモリサイズが最大割り当て可能メモリサイズより大きいと判定された場合（ステップＳ１０７のＹｅｓ）、システムＢＩＯＳは、最大割り当て可能メモリサイズを割り当てメモリサイズとする（ステップＳ１０８）。
【００４１】
上記のステップＳ１０１〜ステップＳ１０８の処理で標準メモリエリアに割り当てるサイズが決定することでＰＣＩデバイスへの割り当て可能なＭＭＩＯアドレス空間が決定する。
【００４２】
ステップＳ１０５，ステップＳ１０７，およびステップＳ１０８の何れかの処理を実行した後、システムＢＩＯＳは、割当てメモリサイズをメモリコントローラ１１４のレジスタ１１５にセットし、主メモリ１１６のメモリサイズを割当てメモリサイズに設定する（ステップＳ１１１）。ステップＳ１１１においては、システムＢＩＯＳは、割当てメモリサイズに対応するアドレス情報（先頭メモリアドレス、終端メモリアドレス）をレジスタ１１５に格納する。
【００４３】
次いで、システムＢＩＯＳは、本コンピュータ１０に接続されたＰＣＩデバイス等のＩ／Ｏデバイス、つまり、本コンピュータ１０内に備えられたＰＣＩデバイス等のＩ／Ｏデバイスおよび本コンピュータ１０に接続されたオプションＩ／Ｏデバイスを検出する（ステップＳ１１０）。
【００４４】
システムＢＩＯＳは、検出された全てのオプションＩ／Ｏデバイスをメモリアドレス空間に割り当てるのに必要なＭＭＩＯ空間サイズを求める。そして、システムＢＩＯＳは、求められたＭＭＩＯアドレス空間のサイズにシステム固有のＭＭＩＯ空間サイズを加えた、ＭＭＩＯアドレス空間のサイズを求める（ステップＳ１１１）。
【００４５】
そして、システムＢＩＯＳは、ステップＳ１０１で取得した接続メモリのサイズから求められたＭＭＩＯ空間のサイズを減じ、割り当て可能メモリサイズを算出する（ステップＳ１１２）。
【００４６】
そして、システムＢＩＯＳは、ステップＳ１１０の検出結果に応じて、各Ｉ／ＯデバイスをＭＭＩＯアドレス空間（ＰＣＩデバイスのＭＭＩＯアドレス空間２０３，システム固有のＭＭＩＯアドレス空間２０４）に割り当てるメモリアドレス割り当て処理を実行する（ステップＳ１１３）。
【００４７】
システムＢＩＯＳは、ＭＭＩＯとして機能する全てのＩ／ＯデバイスをＭＭＩＯアドレス空間に割り当てることが出来たか否かを判別する（ステップＳ１１４）。ＭＭＩＯとして機能する全てのＩ／ＯデバイスをＭＭＩＯアドレス空間に割り当てることが出来たと判別された場合（ステップＳ１１４のＹＥＳ）、システムＢＩＯＳは、ステップＳ１１２で算出した割当て可能メモリサイズが割当てサイズ情報のサイズと等しいか否かを判別する（ステップＳ１１５）。
【００４８】
また、ステップＳ１１４でＭＭＩＯとして機能する全てのＩ／ＯデバイスをＭＭＩＯアドレス空間に割り当てることが出来ないと判別された場合（ステップＳ１１４のＮｏ）、またはステップＳ１１５で算出した割当て可能メモリサイズが割当てサイズ情報のサイズと等しくないと判定された場合（ステップＳ１１５のＮｏ）、システムＢＩＯＳは、不揮発性メモリ１２５の割当てサイズ情報のサイズを使用可能メモリサイズに変更する（ステップＳ１１６）。そして、システムＢＩＯＳは、割当てサイズ変更フラグをイネーブルにし（ステップＳ１１７）。リスタートする（ステップＳ１１８）。なおリスタートが必要な理由は、ステップＳ１０９のメモリサイズを設定する処理は一度しか設定ができないためである。
【００４９】
ステップＳ１５で使用可能メモリサイズが割り当てサイズ情報のサイズと等しいと判定された場合（ステップＳ１３のＹｅｓ）、システムＢＩＯＳは、例えばＰＯＳＴ（Power-On Self Test）処理などによってその他のコンポーネントの初期化処理を実行する（ステップＳ１１９）。そして、割当てサイズ変更フラグがイネーブルであるか否かを判別する（ステップＳ１２０）。割当てサイズ変更フラグがイネーブルであると判別された場合（ステップＳ１２０のＹｅｓ）、ＬＣＤ１７に例えば“System was restarted for modifying a memory address space assignment.”と表示することによって、割当てメモリサイズ変更処理のためにリスタートした旨を表示する（ステップＳ１２１）。また、システムＢＩＯＳは、割当てサイズ変更フラグをディスイネーブルにする。
【００５０】
そして、ステップＳ１２０で割当てサイズ変更フラグがイネーブルではないと判別された場合（ステップＳ１２０のＮｏ）、またはステップＳ１２１を実行した後、オペレーティングシステム（ＯＳ）を起動（ブート）する（ステップＳ１２２）。
【００５１】
上述したように、接続されているＰＣＩデバイスの構成を検出し、構成に応じてＣＰＵ１１１のメモリアドレス空間に主メモリ１１６を割り当てるメモリサイズを変更することによって、搭載した主メモリを有効に活用できる。また、ＭＭＩＯアドレス空間サイズを優先して割り付けるため、デバイスが動作不可になる不具合を回避することができる。
【００５２】
なお、メモリアドレス空間に主メモリ１１６を割り当てたメモリサイズが、搭載メモリのサイズより減少する場合、その旨のメッセージを表示しても良い。
【００５３】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施形態に係る情報処理装置の外観を示す斜視図。
【図２】図１の情報処理装置のシステム構成の例を示すブロック図。
【図３】図１の情報処理装置に設けられたＣＰＵのメモリアドレス空間の構成の例を説明するための図。
【図４】図１の情報処理装置によって実行されるメモリアドレス空間割り当て処理の手順の例を説明するためのフローチャート。
【図５】図１の情報処理装置によって実行されるメモリアドレス空間割り当て処理の手順の例を説明するためのフローチャート。
【符号の説明】
【００５５】
１０…パーソナルコンピュータ、１７…ＬＣＤ、１１１…ＣＰＵ、１１２…サウスブリッジ、１１３…表示コントローラ、１１４…メモリコントローラ、１１５…レジスタ、１１６…主メモリ、１２０…サウスブリッジ、１２１…ＵＳＢコントローラ、１２２，１２４…ホストコントローラ、１２３…ＩＤＥコントローラ、１２２Ａ，１２２Ｂ…拡張ポート、１２５…不揮発性メモリ、１３０…ＢＩＯＳ−ＲＯＭ、１２８，１２９…拡張ＰＣＩデバイス、２０１…標準メモリアドレス空間、２０３…ＰＣＩデバイスのＭＭＩＯアドレス空間、２０４…システム固有のＭＭＩＯアドレス空間、Ｗ１，Ｗ２…ＢＩＯＳセットアップウィンドウ。
【図１】
2007233534.tif 000003
【図２】
2007233534.tif 000004
【図３】
2007233534.tif 000005
【図４】
2007233534.tif 000006
【図５】
2007233534.tif 000007