(57)【要約】【課題】物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能な情報処理装置およびメモリアドレス空間割り当て方法を実現する。【解決手段】ＣＰＵ１１１のメモリアドレス空間に主メモリ１１６をＩ／Ｏデバイスよりも優先して割り当てるメモリサイズ優先モードが指定された場合、ＣＰＵ１１１によって実行されるシステムＢＩＯＳは、標準メモリアドレス空間２０１および少なくともメモリ／ＭＭＩＯアドレス空間２０２内の一部に主メモリ１１６を割り当てる。一方、ＣＰＵ１１１のメモリアドレス空間にＩ／Ｏデバイスを主メモリ１１６よりも優先して割り当てる拡張デバイス優先モードが指定された場合、システムＢＩＯＳは、使用可能なメモリサイズが標準メモリアドレス空間２０１のメモリサイズに制限されるように標準メモリアドレス空間２０１に主メモリ１１６を割り当てる。【選択図】図６
2007141066.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）等が割り当てられている。ＰＣＩＥＸＢＡＲは、ＰＣＩコンフィグレジスタをアクセスするためのＭＭＩＯアドレス空間である。ＡＰＩＣは、割り込みコントローラをアクセスするためのＭＭＩＯアドレス空間である。ＦＷＨレジスタスペースは、ＢＩＯＳ−ＲＯＭ１３０内のＩ／Ｏレジスタ群が割り当てられたＭＭＩＯアドレス空間である。ＦＷＨＢＩＯＳスペースは、ＢＩＯＳ−ＲＯＭ１３０内のフラッシュメモリが割り当てられたＭＭＩＯアドレス空間である。
【００３５】
３２ビットＣＰＵは、図３に示すように、アドレス値００００＿００００ｈ〜ＦＦＦＦ＿ＦＦＦＦｈまでの４Ｇバイト空間のみアクセスすることが可能である。本コンピュータ１０においては、上述のように本コンピュータ１０の各コンポーネントを動作させるために、ＰＣＩデバイス等をＭＭＩＯアドレス空間２０３に割り当て、ＰＣＩＥＸＢＡＲ、ＡＰＩＣ、ＦＷＨレジスタスペース、ＦＷＨＢＯＩＳスペース等をシステム固有のＭＭＩＯアドレス空間２０４に割り当てておく必要がある。このシステム固有のＭＭＩＯアドレス空間２０４と、ＰＣＩデバイスのＭＭＩＯアドレス空間２０３および標準メモリアドレス空間２０１とを４Ｇバイトの全メモリアドレス空間から除いたものが、オプションＩ／Ｏデバイスに割り当て可能なメモリ／ＭＭＩＯアドレス空間２０２になる。
【００３６】
標準メモリアドレス空間２０１にマッピングされたＣＰＵアドレス範囲は、００００＿００００ｈ〜ＢＦＦＦ＿ＦＦＦＦｈ（０Ｍバイト〜３０７２Ｍバイト）である。
【００３７】
メモリ／ＭＭＩＯアドレス空間２０２にマッピングされたＣＰＵアドレス範囲は、Ｃ０００＿００００ｈ〜ＤＦＦＦ＿ＦＦＦＦｈ（３０７２Ｍバイト〜３５８４Ｍバイト）である。
【００３８】
メモリサイズ優先モードにおいては、標準メモリアドレス空間２０１のみならず、メモリ／ＭＭＩＯアドレス空間２０２にも、主メモリ１１６として機能する物理メモリを割り当てることができる。従って、本システムで使用可能な最大メモリサイズは標準メモリアドレス空間２０１とメモリ／ＭＭＩＯアドレス空間２０２との合計メモリサイズ（およそ３．５Ｇバイト）となる。
【００３９】
拡張デバイス優先モードにおいては、基本的には、メモリ／ＭＭＩＯアドレス空間２０２は、オプションＩ／Ｏデバイスを割り当てるために使用されるので、本システムで使用可能な最大メモリサイズは標準メモリアドレス空間２０１のメモリサイズ（およそ３．０Ｇバイト）に制限される。しかし、拡張デバイス優先モードにおいては、例えばシステムＢＩＯＳによって提供されるＢＩＯＳセットアップメニュー画面によってメモリ／ＭＭＩＯアドレス空間２０２を２つのエリアに分割し、一方のエリアを標準メモリアドレス空間２０１の拡張エリアとして使用し、他方のエリアをオプションＩ／Ｏデバイスを割り当てるためのＭＭＩＯアドレス空間２０２として使用することができる。拡張エリアとして使用される一方のエリアのサイズは、図４に示すように、１２８Ｍバイト単位で変更することができる。したがって、拡張デバイス優先モードにおいては、主メモリ１１６として使用可能な最大メモリサイズは、３０７２ＭＢ、３２００ＭＢ、３３２８ＭＢ、３４５６ＭＢのいずれかとなる。
【００４０】
図５には、ＢＩＯＳセットアップメニュー画面の例が示されている。このＢＩＯＳセットアップメニュー画面は、本コンピュータ１０のパワーオンシーケンス中に、キーボード１３の所定のキー（ＳＥＴ  ＵＰキー）が押された場合、システムＢＩＯＳによってＬＣＤ１７に表示される。
【００４１】
このセットアップメニュー画面は、項目３０１、３０２を表示する。項目３０１は、本コンピュータ１０に搭載された物理メモリの実際のメモリサイズを示す。即ち、項目３０１は、本コンピュータ１０に搭載された主メモリ１１６のメモリサイズおよび拡張メモリモジュールのメモリサイズを合計したメモリサイズを示す。項目３０２は、メモリリソースプライオリティ情報(Memory Resource Priority）の内容を設定するための項目である。ユーザは、項目３０２を用いて、例えば上記メモリサイズ優先モードを示す“Physical Memory”あるいは上記拡張デバイス優先モードを示す“Optional Device”のいずれか一方を選択することができる。具体的にはカーソル３０３がメモリリソースプライオリティの“Physical Memory”上に位置している状態で、例えば、キーボード１３の“↓”キーがユーザによって押される度に、“Optional Device”，“Physical Memory”，“Optional Device”…とトグルされる。ＢＩＯＳセットアップメニュー画面Ｗ１は、メモリリソースプライオリティが“Physical Memory”に設定されている例を示している。このとき、本コンピュータ１０の動作モードはメモリサイズ優先モードに設定されている。
【００４２】
“Optional Device”が選択された状態で、例えばユーザによってキーボード１３のエンターキーが押された場合、ＢＩＯＳセットアップメニュー画面Ｗ２に示すように、ユーザブルメモリサイズ（Usable Memory Size）項目が表示される。このとき、カーソル３０３は、ユーザブルメモリサイズ項目のメモリサイズを指定する位置を示す“3200MB”上に移動する。カーソル３０３がユーザブルメモリサイズ項目の“3200MB”上に位置している状態で、例えば、キーボード１３の“↓”キーがユーザによって押される度に、“3200MB”，“3328MB”，“3456MB”，“3072MB”，“3200MB”，…とトグルされる。主メモリ１１６として使用可能なメモリサイズ（Usable Memory Size）が、“3072MB”，“3200MB”，“3328MB”，“3456MB”のいずれかに指定されると、この指定されたメモリサイズに従って、メモリ／ＭＭＩＯアドレス空間２０３は、二つのメモリアドレス空間に分割される。
【００４３】
システムＢＩＯＳは、上記ＢＩＯＳセットアップメニュー画面上で設定されたメモリリソースプライオリティ情報（メモリサイズ優先モード“Physical Memory”、拡張デバイス優先モード“Optional Device”）を不揮発性メモリ１２５に格納する。また、システムＢＩＯＳは、拡張デバイス優先モード“Optional Device”が選択された場合には、上記ＢＩＯＳセットアップメニュー画面上で設定されたユーザブルメモリサイズ（“3072MB”，“3200MB”，“3328MB”，“3456MB”のいずれか一つ）を不揮発性メモリ１２５に格納する。
【００４４】
次に、図６を参照して、物理メモリのメモリサイズをＣＰＵ１１１のメモリアドレス空間に割り当てるメモリアドレス空間割り当て処理の様子の例を説明する。
【００４５】
メモリサイズ優先モードにおいては、システムＢＩＯＳは、標準メモリアドレス空間２０１とメモリ／ＭＭＩＯアドレス空間２０２との双方に物理メモリを割り当て、これによって、主メモリ１１６の最大メモリサイズを、標準メモリアドレス空間２０１のサイズとメモリ／ＭＭＩＯアドレス空間２０２のサイズとの合計値（３．５Ｇバイト）に設定する。つまり、メモリサイズ優先モードにおいては、標準メモリアドレス空間２０１のサイズと、メモリ／ＭＭＩＯアドレス空間２０２のサイズとを合計したサイズ（Ａ＋Ｂ）が、使用可能な最大メモリサイズとなる。
【００４６】
拡張デバイス優先モードにおいては、システムＢＩＯＳは、標準メモリアドレス空間の２０１のみに物理メモリを割り当て、これによって、主メモリ１１６の最大メモリサイズを、標準メモリアドレス空間２０１のサイズ（３．０Ｇバイト）に設定する。メモリ／ＭＭＩＯアドレス空間２０２には、オプションＩ／Ｏデバイスを割り当てることができる。
【００４７】
次に、図７のフローチャートを参照して、システムＢＩＯＳによって実行されるメモリアドレス空間割り当て処理の手順の第１の例を説明する。このメモリアドレス空間割り当て処理の手順の第１の例においては、例えば、物理メモリのサイズが４Ｇバイトである場合を想定する。
【００４８】
本コンピュータ１０が電源オンされた場合、システムＢＩＯＳは、不揮発性メモリ１２５に格納されたメモリリソースプライオリティ情報を参照してメモリサイズ優先モードが指定されているか否かを判別する（ステップＳ１０１）。メモリサイズ優先モードが指定されていると判別された場合（ステップＳ１０１のＹＥＳ）、システムＢＩＯＳは、（Ａ）標準メモリアドレス空間２０１および（Ｂ）メモリ／ＭＭＩＯアドレス空間２０２を主メモリ１１６に割り当てる処理を実行する（ステップＳ１０２）。ステップＳ１０２においては、メモリサイズは、（Ａ）標準メモリアドレス空間２０１および（Ｂ）メモリ／ＭＭＩＯアドレス空間２０２を合計した値（３．５Ｇバイト）になる。
【００４９】
一方、メモリサイズ優先モードではないと判別された場合、即ち拡張デバイス優先モードであると判別された場合（ステップＳ１０１のＮＯ）、システムＢＩＯＳは、（Ａ）標準メモリアドレス空間２０１のみを主メモリ１１６に割り当てる処理を実行する（ステップＳ１０３）。ステップＳ１０３においては、メモリサイズは（Ａ）標準メモリアドレス空間２０１のみの値（３．０Ｇバイト）になる。
【００５０】
メモリアドレス空間割り当て処理の第１の例においては、ユーザによってメモリサイズ優先モードが指定された場合、本システムは、最大で３．５Ｇバイトの物理メモリを主メモリ１１６として使用することが出来る。一方、ユーザによって拡張デバイス優先モードが指定された場合、本システムは、３．０Ｇバイトまでの物理メモリしか使用することが出来ないが、本コンピュータ１０に接続されたオプションＩ／Ｏデバイスの動作を保証することができる。
【００５１】
次に、図８のフローチャートを参照して、システムＢＩＯＳによって実行されるメモリリソースプライオリティ設定処理の手順の例を説明する。
【００５２】
システムＢＩＯＳは、本コンピュータ１０の動作モードがメモリサイズ優先モードであるか否かを判別する（ステップＳ２０１）。ステップＳ２０１においては、システムＢＩＯＳは、ＢＩＯＳセットアップメニュー画面上で設定された“メモリリソースプライオリティ”項目が“Physical Memory”であるか否かを判別する。
【００５３】
メモリサイズ優先モードではないと判別された場合、即ち拡張デバイス優先モードであると判別された場合（ステップＳ２０１のＮＯ）、システムＢＩＯＳは、拡張デバイス優先モードであることを示すメモリリソースプライオリティ情報を例えば不揮発性メモリ１２５に格納する（ステップＳ２０２）。そして、システムＢＩＯＳは、ＢＩＯＳセットアップメニュー画面上で設定された“ユーザブルメモリサイズ”を例えば不揮発性メモリ１２５に格納する（ステップＳ２０３）。
【００５４】
一方、メモリサイズ優先モードであると判別された場合（ステップＳ２０１のＹＥＳ）、システムＢＩＯＳは、“メモリサイズ優先モード”であることを示すメモリリソースプライオリティ情報を不揮発性メモリ１２５に格納する（ステップＳ２０４）。
【００５５】
次に、図９および図１０のフローチャートを参照して、システムＢＩＯＳによって実行されるメモリアドレス空間割り当て処理の手順の第２の例を説明する。
【００５６】
本コンピュータ１０がパワーオンされた場合、システムＢＩＯＳは、本コンピュータシステムに接続された主メモリ１１６のメモリサイズを検出する（ステップＳ３０１）。ステップＳ３０１においては、具体的には、システムＢＩＯＳは、例えば主メモリ１１６に設けられたＳＰＤ（Serial Presence Detect）などのＥＥＰＲＯＭ（Electrically Erasable Programmable Read-only Memory）からメモリサイズを検出する。
【００５７】
システムＢＩＯＳは、検出されたメモリサイズが、最大割り当て可能なメモリサイズよりも大きいか否かを判別する（ステップＳ３０２）。本実施形態においては、最大割り当て可能なメモリサイズは３５８４Ｍバイト（およそ３．５Ｇバイト）である。ステップＳ３０２においては、例えば検出されたメモリサイズが３．５Ｇバイトよりも大きいか否かを判別する。検出されたメモリサイズが最大割り当て可能なメモリサイズよりも大きいと判別された場合（ステップＳ３０２のＹＥＳ）、システムＢＩＯＳは、最大割り当て可能なメモリサイズを主メモリ１１６の暫定メモリサイズとして設定する（ステップＳ３０３）。一方、検出されたメモリサイズが最大割り当て可能なメモリサイズよりも大きくないと判別された場合（ステップＳ３０２のＮＯ）、システムＢＩＯＳは、検出されたメモリサイズを主メモリ１１６の暫定メモリサイズとして設定する（ステップＳ３１０）。
【００５８】
ステップＳ３０３またはステップＳ３１０のいずれかを実行した後、システムＢＩＯＳは、暫定メモリサイズが最小割り当て可能なメモリサイズよりも大きいか否かを判別する（ステップＳ３０４）。本実施形態においては、最小割り当て可能なメモリサイズは３０７２Ｍバイト（およそ３．０Ｇバイト）である。ステップＳ３０４においては、例えば暫定メモリサイズが３０７２Ｍバイト（およそ３．０Ｇバイト）よりも大きいか否を判別する。暫定メモリサイズが最小割り当て可能なメモリサイズよりも大きくないと判別された場合（ステップＳ３０４のＮＯ）、システムＢＩＯＳは、暫定メモリサイズをメモリコントローラ１１４のレジスタ１１５にセットし、主メモリ１１６のメモリサイズを暫定メモリサイズに設定する（ステップＳ３１１）。ステップＳ３１１においては、システムＢＩＯＳは、暫定メモリサイズに対応するアドレス情報（先頭メモリアドレス、終端メモリアドレス）をレジスタ１１５に格納する。
【００５９】
一方、暫定メモリサイズが最小割り当て可能なメモリサイズよりも大きいと判別された場合（ステップＳ３０４のＹＥＳ）、システムＢＩＯＳは、不揮発性メモリ１２５からメモリリソースプライオリティ情報を取得する（ステップＳ３０５）。
【００６０】
ステップＳ３０５を実行したあと、システムＢＩＯＳは、本コンピュータ１０の動作モードがメモリサイズ優先モードか否かを判別する（ステップＳ３０６）。ステップＳ３０６においては、システムＢＩＯＳは、取得したメモリリソースプライオリティ情報がメモリサイズ優先モードを示す“Physical Memory”であるか否かを判別する。メモリサイズ優先モードであると判別された場合、つまり、メモリリソースプライオリティ情報が“Physical Memory”であると判別された場合（ステップＳ３０６のＹＥＳ）、システムＢＩＯＳは、暫定メモリサイズをメモリコントローラ１１４のレジスタ１１５にセットして、主メモリ１１６のメモリサイズを暫定メモリサイズに設定する（ステップＳ３１１）。もし、物理メモリのメモリサイズが４Ｇバイトであるならば、暫定メモリサイズは３．５Ｇバイトであるので、主メモリ１１６のメモリサイズは３．５Ｇバイトに設定される。
【００６１】
。一方、メモリサイズ優先モードではないと判別された場合、つまり、メモリリソースプライオリティが“Optional Device”であると判別された場合（ステップＳ３０６のＮＯ）、システムＢＩＯＳは、不揮発性メモリ１２５から“ユーザブルメモリサイズ”を取得する（ステップＳ３０７）。システムＢＩＯＳは、暫定メモリサイズが取得したユーザブルメモリサイズよりも大きいか否かを判別する（ステップＳ３０８）。暫定メモリサイズが取得したユーザブルメモリサイズよりも大きくないと判別された場合（ステップＳ３０８のＮＯ）、システムＢＩＯＳは、ステップＳ３１１に進む。一方、暫定メモリサイズが取得したユーザブルメモリサイズよりも大きいと判別された場合（ステップＳ３０８のＹＥＳ）、システムＢＩＯＳは、ユーザブルメモリサイズをメモリコントローラ１１４のレジスタ１１５にセットして、主メモリ１１６のメモリサイズをユーザブルメモリサイズに設定する（ステップＳ３０９）。ステップＳ３０９においては、システムＢＩＯＳは、ユーザブルメモリサイズに対応するアドレス情報（先頭メモリアドレス、終端メモリアドレス）をメモリコントローラ１１４のレジスタ１１５に格納する。
【００６２】
ステップＳ３０９，Ｓ３１１のいずれかを実行した後、システムＢＩＯＳは、本コンピュータ１０に接続されたＰＣＩデバイス等のＩ／Ｏデバイス、つまり、本コンピュータ１０内に備えられたＰＣＩデバイス等のＩ／Ｏデバイスおよび本コンピュータ１０に接続されたオプションＩ／Ｏデバイスを検出する。システムＢＩＯＳは、その検出結果に応じて、各Ｉ／ＯデバイスをＭＭＩＯアドレス空間（メモリ／ＭＭＩＯアドレス空間２０２，ＰＣＩデバイスのＭＭＩＯアドレス空間２０３，システム固有のＭＭＩＯアドレス空間２０４）に割り当てるメモリアドレス割り当て処理を実行する（図１０のステップＳ３１２）。
【００６３】
システムＢＩＯＳは、ＭＭＩＯとして機能する全てのＩ／ＯデバイスをＭＭＩＯアドレス空間に割り当てることが出来たか否かを判別する（ステップＳ３１３）。ＭＭＩＯとして機能する全てのＩ／ＯデバイスをＭＭＩＯアドレス空間に割り当てることが出来たと判別された場合（ステップＳ３１３のＹＥＳ）、システムＢＩＯＳは、例えばＰＯＳＴ（Power-On Self Test）処理などによってその他のコンポーネントの初期化処理を実行し、オペレーティングシステム（ＯＳ）を起動（ブート）する（ステップＳ３１９，ステップＳ３２０）。
【００６４】
一方、ＭＭＩＯアドレス空間に割り当てることが出来なかったＩ／Ｏデバイスが存在すると判別された場合（ステップＳ３１３のＮＯ）、システムＢＩＯＳは、ＭＭＩＯアドレス空間に割り当てることができなかったＩ／Ｏデバイスがあることを示すメッセージをＬＣＤ１７に表示する（ステップＳ３１４）。ステップＳ３１４においては、ＭＭＩＯアドレス空間に割り当てることできず、使用することができないＩ／Ｏデバイス（ＰＣＩデバイス，オプションＩ／Ｏデバイス）を示すメッセージが表示される。システムＢＩＯＳは、上記ＢＩＯＳセットアップメニュー画面の表示を指示するＢＩＯＳセットアップ起動キー（ＳＥＴ  ＵＰキー）の入力を所定時間待機する（ステップＳ３１５）。システムＢＩＯＳは、上記所定時間内にＳＥＴ  ＵＰキーが押されたか否かを判別する（ステップＳ３１６）。所定時間内にＳＥＴ  ＵＰキーが押されなかったと判別された場合（ステップＳ３１６のＮＯ）、システムＢＩＯＳは、ステップＳ３１９に進む。この場合、ＭＭＩＯアドレス空間に割り当てることができなかったＩ／Ｏデバイス（ＰＣＩデバイス，オプションＩ／Ｏデバイス）は使用することが出来ない状態が維持されたまま、ＯＳがブートされる。
【００６５】
一方、所定時間内にＳＥＴ  ＵＰキーが押されたと判別された場合（ステップＳ３１６のＹＥＳ）、システムＢＩＯＳは、メモリリソースプライオリティ情報の変更（あるいはユーザブルメモリサイズの変更）をユーザに促すために、ＢＩＯＳセットアップメニュー画面をＬＣＤ１７に再び表示する（ステップＳ３１７）。ＢＩＯＳセットアップメニュー画面上でユーザによってメモリリソースプライオリティ情報が再設定された場合、システムＢＩＯＳは、再生設定されたメモリリソースプライオリティ情報（拡張デバイス優先モードにおいては、ユーザブルメモリサイズも含む）を不揮発性メモリ１２５に格納し、本コンピュータ１０を再起動（リブート）する。そして、システムＢＩＯＳは、再びステップＳ３０１に進む。
【００６６】
システムＢＩＯＳは、ステップＳ３０１からステップＳ３１１までの手順によって本コンピュータ１０において使用可能なメモリサイズを設定する。
【００６７】
このように、メモリアドレス空間割り当て処理の第２の例においては、オプションＩ／Ｏデバイス優先モードがユーザによって指定された場合、ユーザは、物理メモリに割り当てる可能な標準メモリアドレス空間のメモリサイズおよびＰＣＩデバイスのＭＭＩＯアドレス空間のメモリサイズを変更することが出来る。これによって、例えば、本コンピュータ１０に接続するオプションＩ／Ｏデバイスを用いる場合、このオプションＩ／Ｏデバイスを正常に動作するようにオプションＩ／Ｏデバイスのメモリアドレス空間を割り当てるとともに、主メモリ１１６に割り当て可能な標準メモリアドレス空間２０１を可能な限り広くすることもできる。
【００６８】
また、本実施形態のメモリリソースプライオリティ設定処理は、システムＢＩＯＳによって実行されたが、例えばシステムＢＩＯＳ以外のソフトウェア（ＯＳ、またはＯＳ上で動作するアプリケーションプログラム等）によって実行されてもよい。即ち、本コンピュータ１０のパワーオンシーケンス中以外であっても上記ソフトウェアによって実行される。
【００６９】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７０】
【図１】本発明の一実施形態に係る情報処理装置の外観を示す斜視図。
【図２】図１の情報処理装置のシステム構成の例を示すブロック図。
【図３】図１の情報処理装置に設けられたＣＰＵのメモリアドレス空間の構成の例を説明するための図。
【図４】図１の情報処理装置に設けられたＣＰＵのメモリアドレス空間の構成の他の例を説明するための図。
【図５】図１の情報処理装置によって実行されるＢＩＯＳセットアップメニュー画面が表示装置に表示された様子を説明するための図。
【図６】図１の情報処理装置によって設定される動作モードに応じて、ＣＰＵ１１１のメモリアドレス空間にメモリを割り当てる様子を説明するための図。
【図７】図１の情報処理装置によって実行されるメモリアドレス空間割り当て処理の手順の例を説明するためのフローチャート。
【図８】図１の情報処理装置によって実行されるメモリリソースプライオリティ設定処理の手順の第１の例を説明するためのフローチャート。
【図９】図１の情報処理装置によって実行されるメモリアドレス空間割り当て処理の手順の第２の例を説明するための第１のフローチャート。
【図１０】図１の情報処理装置によって実行されるメモリアドレス空間割り当て処理の手順の第２の例を説明するための第２のフローチャート。
【符号の説明】
【００７１】
１０…パーソナルコンピュータ、１７…ＬＣＤ、１１１…ＣＰＵ、１１２…サウスブリッジ、１１３…表示コントローラ、１１４…メモリコントローラ、１１５…レジスタ、１１６…主メモリ、１２０…サウスブリッジ、１２１…ＵＳＢコントローラ、１２２，１２４…ホストコントローラ、１２３…ＩＤＥコントローラ、１２２Ａ，１２２Ｂ…拡張ポート、１２５…不揮発性メモリ、１３０…ＢＩＯＳ−ＲＯＭ、１２８，１２９…拡張ＰＣＩデバイス、２０１…標準メモリアドレス空間、２０２…メモリ／ＭＭＩＯアドレス空間、２０３…ＰＣＩデバイスのＭＭＩＯアドレス空間、２０４…システム固有のＭＭＩＯアドレス空間、Ｗ１，Ｗ２…ＢＩＯＳセットアップウィンドウ。
【図１】
2007141066.tif 000003
【図２】
2007141066.tif 000004
【図３】
2007141066.tif 000005
【図４】
2007141066.tif 000006
【図５】
2007141066.tif 000007
【図６】
2007141066.tif 000008
【図７】
2007141066.tif 000009
【図８】
2007141066.tif 000010
【図９】
2007141066.tif 000011
【図１０】
2007141066.tif 000012