JP2007141066A - 情報処理装置およびメモリアドレス空間割り当て方法 - Google Patents
情報処理装置およびメモリアドレス空間割り当て方法 Download PDFInfo
- Publication number
- JP2007141066A JP2007141066A JP2005335933A JP2005335933A JP2007141066A JP 2007141066 A JP2007141066 A JP 2007141066A JP 2005335933 A JP2005335933 A JP 2005335933A JP 2005335933 A JP2005335933 A JP 2005335933A JP 2007141066 A JP2007141066 A JP 2007141066A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- area
- size
- mode
- address space
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000010365 information processing Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
Abstract
【課題】物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能な情報処理装置およびメモリアドレス空間割り当て方法を実現する。
【解決手段】CPU111のメモリアドレス空間に主メモリ116をI/Oデバイスよりも優先して割り当てるメモリサイズ優先モードが指定された場合、CPU111によって実行されるシステムBIOSは、標準メモリアドレス空間201および少なくともメモリ/MMIOアドレス空間202内の一部に主メモリ116を割り当てる。一方、CPU111のメモリアドレス空間にI/Oデバイスを主メモリ116よりも優先して割り当てる拡張デバイス優先モードが指定された場合、システムBIOSは、使用可能なメモリサイズが標準メモリアドレス空間201のメモリサイズに制限されるように標準メモリアドレス空間201に主メモリ116を割り当てる。
【選択図】図6
【解決手段】CPU111のメモリアドレス空間に主メモリ116をI/Oデバイスよりも優先して割り当てるメモリサイズ優先モードが指定された場合、CPU111によって実行されるシステムBIOSは、標準メモリアドレス空間201および少なくともメモリ/MMIOアドレス空間202内の一部に主メモリ116を割り当てる。一方、CPU111のメモリアドレス空間にI/Oデバイスを主メモリ116よりも優先して割り当てる拡張デバイス優先モードが指定された場合、システムBIOSは、使用可能なメモリサイズが標準メモリアドレス空間201のメモリサイズに制限されるように標準メモリアドレス空間201に主メモリ116を割り当てる。
【選択図】図6
Description
本発明は、メモリアドレス空間に主記憶およびI/Oデバイスを割り当て可能な情報処理装置および同装置で用いられるメモリアドレス空間割り当て方法に関する。
近年、ノートブック型パーソナルコンピュータのような各種携帯型情報処理装置が開発されている。このようなコンピュータは、その機能拡張のために、I/Oデバイスなどが必要に応じて接続可能なように構成されている。
このようなI/Oデバイスの中には、MMIO(Memory-mapped Input/Output)として機能するI/Oデバイスがある。MMIOとして機能するI/Oデバイスは、プロセッサのメモリアドレス空間に割り当てられる。
特許文献1には、MMIOをサポートするコンピュータシステムが開示されている。
特開2003−99388号公報
通常、MMIOをサポートするシステムにおいては、主記憶を割り当てる空間の他にMMIO空間をプロセッサのメモリアドレスにマッピングすることが必要となる。
ところで、32ビットプロセッサにおいては、このプロセッサがアクセス可能なメモリアドレス空間のサイズは4Gバイトまでに制限されている。このため、コンピュータに4Gバイトの物理メモリを搭載した場合、実際に主記憶として使用できるメモリサイズは、4GバイトからMMIOアドレス空間のサイズを引いた残りのサイズに制限される。MMIOアドレス空間のサイズを小さくすれば、主記憶として使用可能なメモリサイズは大きくなる。しかし、このようにすると、MMIOとして機能するI/Oデバイスが正常に動作しなくなってしまう可能性がある。
本発明は上述の事情を考慮してなされたものであり、物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能な情報処理装置およびメモリアドレス空間割り当て方法を提供することを目的とする。
上述の課題を解決するため、本発明の情報処理装置は、主記憶を割り当て可能な第1エリアとI/Oデバイスを割り当て可能な第2エリアとがマッピングされたメモリアドレス空間をアクセス可能なプロセッサと、前記主記憶として機能する物理メモリと、前記メモリアドレス空間に前記主記憶を前記I/Oデバイスよりも優先して割り当てる第1モードおよび前記メモリアドレス空間に前記I/Oデバイスを前記主記憶よりも優先して割り当てる第2モードの一方を指定するモード指定手段と、前記物理メモリのメモリサイズが前記第1エリアのサイズよりも大きい場合、前記第1モードおよび前記第2モードのどちらのモードが指定されているかを判別する判別手段と、前記第1モードが指定されていることが判別された場合、前記主記憶として使用可能なメモリサイズが前記第1エリアのサイズよりも大きいサイズに設定されるように前記第1エリアおよび少なくとも前記第2エリア内の一部に前記物理メモリを割り当て、前記第2モードが指定されていることが判別された場合、前記使用可能なメモリサイズが前記第1エリアのサイズに制限されるように前記第1エリアに前記物理メモリを割り当てる割り当て手段とを具備することを特徴とする。
本発明によれば、物理メモリに割り当て可能なメモリアドレス空間のサイズを変更することが可能となる。
以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態に係る情報処理装置の構成が示されている。この情報処理装置は、例えば、バッテリ駆動可能なノートブック型の携帯型パーソナルコンピュータ10として実現されている。このノートブック型の携帯型パーソナルコンピュータ10は、USB(Universal Serial Bus)デバイス、CardBus規格に対応するCardBusカードデバイスおよびPCIExpress(Peripheral Component Interconnect Express)規格に対応するPCIExpressカードデバイスなどの各種I/Oデバイス(オプションI/Oデバイス)が取り外し自在に接続できるように構成されている。
本コンピュータ10は、本体11およびディスプレイユニット12とから構成されている。本体11の上面には、キーボード13、本コンピュ−タ10を電源オン/電源オフするためのパワーボタンスイッチ14およびタッチパッド15などが設けられている。本体11の例えば背面には、上記各種オプションI/Oデバイスを接続するための接続ポートが配置されている。ディスプレイユニット12の内面にはLCD(Liquid Crystal Display)17から構成される表示装置が組み込まれており、そのLCD17の表示画面は、ディスプレイユニット12のほぼ中央に位置されている。ディスプレイユニット12は、本体11に支持され、その本体11に対して本体11の上面が露出される開放位置と本体11の上面を覆う閉塞位置との間を回動自在に取り付けられている。
図2には、本コンピュータ10のシステム構成の例が示されている。
本コンピュータ10は、図2に示されているように、CPU111、ノースブリッジ(NB)112、主メモリ116、サウスブリッジ(SB)120、ハードディスクドライブ(HDD)126A、光ディスクドライブ(ODD)126B、BIOS−ROM130、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)140等から構成されている。
CPU111は、本コンピュータ10の各コンポーネントの動作を制御するプロセッサである。このCPU111は、HDD126Aから主メモリ116にロードされる、オペレーティングシステム(OS)および各種アプリケーションプログラムを実行する。また、CPU111は、BIOS−ROM130に格納されたシステムBIOS(Basic Input Output System)も実行する。システムBIOSはハードウェア制御のためのプログラムである。システムBIOSは、本コンピュータ10の各コンポーネントの動作環境を設定するためのBIOSセットアップメニュー画面をLCD17に表示する機能を有している。CPU111は、例えば32ビットプロセッサとして実現されており、4Gバイトのメモリアドレス空間をアクセスすることができる。このメモリアドレス空間には、主メモリ(主記憶)116として使用される物理メモリを割り当て可能な標準メモリエリアと、MMIO(Memory-mapped Input/Output)のようなI/Oデバイスを割り当て可能なMMIOエリアとがマッピングされている。
ノースブリッジ112は、CPU111とサウスブリッジ120との間を接続するブリッジデバイスである。このノースブリッジ112は、表示コントローラ113とメモリコントローラ114とを備えている。
表示コントローラ113はPCIデバイスとして機能し、本コンピュータ10のディスプレイモニタとして使用されるLCD17を制御する。この表示コントローラ113は、ビデオメモリを有しており、このビデオメモリに書き込まれた映像データからLCD17に送出すべき表示信号を生成する。
メモリコントローラ114は、主メモリ116を制御するコントローラである。このメモリコントローラ114は、レジスタ115を有している。このレジスタ115には、例えば、主メモリ116を割り当て可能なメモリアドレス空間内のエリアを指定するアドレス情報(エリアの先頭アドレス、エリアの終端アドレス)がシステムBIOSによってセットされる。CPU111から出力されるメモリアドレス値が、レジスタ115にセットされたアドレス情報で指定されたエリア内に属する場合、メモリコントローラ114は、主メモリ116をアクセスする。
主メモリ116は、例えばDRAM(Dynamic Random Access Memory)などの物理メモリによって構成されている。本体11に内蔵されたメモリモジュールのみならず、本体11に接続された拡張メモリモジュールも物理メモリとして使用される。
サウスブリッジ120には、PCIバス2およびLPC(Low Pin Count)バス3が接続されている。サウスブリッジ120には、USBコントローラ121、ホストコントローラ122,124、IDEコントローラ123および不揮発性メモリ125等が設けられている。
USBコントローラ121はPCIデバイスとして機能する。USBコントローラ121は、USBポート121Aに接続されている。USBポート121AはUSB規格に対応するUSBデバイス127等が接続可能な接続ポートである。USBコントローラ121は、USBポート121Aに接続されたUSBデバイス127等のオプションI/Oデバイスを制御する。
ホストコントローラ122はPCIデバイスとして機能し、PCIバス2を介して拡張バススロット122Aおよび122Bに接続されている。拡張バススロット122Aおよび122Bは、CardBusカードデバイスおよびPCIExpressカードデバイスなどのオプションI/Oデバイスが接続可能に構成されている。
IDE(Integrate Drive Electronics)コントローラ123はPCIデバイスとして機能し、HDD126Aおよび光ディスクドライブ(ODD)126Bに接続されている。IDEコントローラ123は、HDD126AおよびODD126Bを制御する。
不揮発性メモリ125は、メモリリソースプライオリティ情報を格納している。このメモリリソースプライオリティ情報は、システムBIOSによって不揮発性メモリ125に格納される。この不揮発性メモリ125に格納されたメモリリソースプライオリティ情報は、CPU111のメモリアドレス空間に主メモリ116をI/Oデバイスよりも優先して割り当てるメモリサイズ優先モードと、CPU111のメモリアドレス空間にI/Oデバイスを主メモリ116よりも優先して割り当てる拡張デバイス優先モードとのいずれか一方の動作モードを示す情報である。また、不揮発性メモリ125には、BIOSセットアップメニュー画面上で設定された各種セットアップ情報も格納されている。
LPCバス3上にはBIOS−ROM130およびエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)140等が接続されている。
BIOS−ROM130に格納されたシステムBIOSは、上述のメモリリソースプライオリティ情報に従って、メモリアドレス空間割り当て処理を実行する。
(1)メモリサイズ優先モード
本コンピュータ10に搭載された物理メモリのメモリサイズが標準メモリエリアのサイズよりも大きい場合、システムBIOSは、主メモリ116として使用可能なメモリサイズが標準メモリエリアよりも大きいサイズに設定されるように、この標準メモリエリアと上記MMIOエリアの一部とに物理メモリを割り当てる。
本コンピュータ10に搭載された物理メモリのメモリサイズが標準メモリエリアのサイズよりも大きい場合、システムBIOSは、主メモリ116として使用可能なメモリサイズが標準メモリエリアよりも大きいサイズに設定されるように、この標準メモリエリアと上記MMIOエリアの一部とに物理メモリを割り当てる。
(2)拡張デバイス優先モード
本コンピュータ10に搭載された物理メモリのメモリサイズが標準メモリエリアのサイズよりも大きい場合、システムBIOSは、主メモリ116として使用可能なメモリサイズが標準メモリエリアのサイズに制限されるように、標準メモリエリアにのみ物理メモリを割り当てる。
本コンピュータ10に搭載された物理メモリのメモリサイズが標準メモリエリアのサイズよりも大きい場合、システムBIOSは、主メモリ116として使用可能なメモリサイズが標準メモリエリアのサイズに制限されるように、標準メモリエリアにのみ物理メモリを割り当てる。
キーボードコントローラ/エンベデッドコントローラ(EC/KBC)140は、電力管理のためのエンベデッドコントローラと、キーボード(KB)13およびタッチパッド15を制御するためのキーボードコントローラとが集積化された1チップマイクロコンピュータである。このEC/KBC140は、パワーボタンスイッチ14がユーザによって押下された時、電源回路141と共同して本コンピュータ10をパワーオンする。電源回路141は、バッテリ142からの電力、ACアダプタ143から供給される電力を用いて動作電源を生成する。
図3には、CPU111のメモリアドレス空間の構成の例が示されている。このメモリアドレス空間には、(A)標準メモリアドレス空間201、(B)メモリ/MMIOアドレス空間202、(C)PCIデバイスのMMIOアドレス空間203、および(D)システム固有のMMIOアドレス空間204等がマッピングされている。
標準メモリアドレス空間201は、CPU111によって読み書き可能な主メモリ116を割り当て可能なメモリアドレス空間であり、上述の標準メモリエリアとして使用される。
メモリ/MMIOアドレス空間202は、主メモリ116を割り当て可能なメモリアドレス空間または各種オプションI/Oデバイスを割り当て可能なMMIOアドレス空間として使用可能なメモリアドレス空間である。このメモリ/MMIOアドレス空間202は、上述のMMIOメモリエリアの一つであり、オプションI/OデバイスのようなI/Oデバイスを割り当てるために使用される。
(C)PCIデバイスのMMIOアドレス空間203は、本コンピュータ10内の各PCIデバイスのようなI/Oデバイスが割り当てられるメモリアドレス空間である。
(D)システム固有のMMIOアドレス空間204は、本コンピュータ10固有のコンポーネントが割り当てられるメモリアドレス空間である。例えば、このシステム固有のMMIOアドレス空間204には、PCIEXBAR(Peripheral Component Interconnect Express Base Address)、APIC(Advanced Programmable Interrupt Controller)、FWH(Firmware Hub)レジスタスペース(Register Space)およびFWHBIOSスペース(Firmware Hub BIOS Space)等が割り当てられている。PCIEXBARは、PCIコンフィグレジスタをアクセスするためのMMIOアドレス空間である。APICは、割り込みコントローラをアクセスするためのMMIOアドレス空間である。FWHレジスタスペースは、BIOS−ROM130内のI/Oレジスタ群が割り当てられたMMIOアドレス空間である。FWHBIOSスペースは、BIOS−ROM130内のフラッシュメモリが割り当てられたMMIOアドレス空間である。
32ビットCPUは、図3に示すように、アドレス値0000_0000h〜FFFF_FFFFhまでの4Gバイト空間のみアクセスすることが可能である。本コンピュータ10においては、上述のように本コンピュータ10の各コンポーネントを動作させるために、PCIデバイス等をMMIOアドレス空間203に割り当て、PCIEXBAR、APIC、FWHレジスタスペース、FWHBOISスペース等をシステム固有のMMIOアドレス空間204に割り当てておく必要がある。このシステム固有のMMIOアドレス空間204と、PCIデバイスのMMIOアドレス空間203および標準メモリアドレス空間201とを4Gバイトの全メモリアドレス空間から除いたものが、オプションI/Oデバイスに割り当て可能なメモリ/MMIOアドレス空間202になる。
標準メモリアドレス空間201にマッピングされたCPUアドレス範囲は、0000_0000h〜BFFF_FFFFh(0Mバイト〜3072Mバイト)である。
メモリ/MMIOアドレス空間202にマッピングされたCPUアドレス範囲は、C000_0000h〜DFFF_FFFFh(3072Mバイト〜3584Mバイト)である。
メモリサイズ優先モードにおいては、標準メモリアドレス空間201のみならず、メモリ/MMIOアドレス空間202にも、主メモリ116として機能する物理メモリを割り当てることができる。従って、本システムで使用可能な最大メモリサイズは標準メモリアドレス空間201とメモリ/MMIOアドレス空間202との合計メモリサイズ(およそ3.5Gバイト)となる。
拡張デバイス優先モードにおいては、基本的には、メモリ/MMIOアドレス空間202は、オプションI/Oデバイスを割り当てるために使用されるので、本システムで使用可能な最大メモリサイズは標準メモリアドレス空間201のメモリサイズ(およそ3.0Gバイト)に制限される。しかし、拡張デバイス優先モードにおいては、例えばシステムBIOSによって提供されるBIOSセットアップメニュー画面によってメモリ/MMIOアドレス空間202を2つのエリアに分割し、一方のエリアを標準メモリアドレス空間201の拡張エリアとして使用し、他方のエリアをオプションI/Oデバイスを割り当てるためのMMIOアドレス空間202として使用することができる。拡張エリアとして使用される一方のエリアのサイズは、図4に示すように、128Mバイト単位で変更することができる。したがって、拡張デバイス優先モードにおいては、主メモリ116として使用可能な最大メモリサイズは、3072MB、3200MB、3328MB、3456MBのいずれかとなる。
図5には、BIOSセットアップメニュー画面の例が示されている。このBIOSセットアップメニュー画面は、本コンピュータ10のパワーオンシーケンス中に、キーボード13の所定のキー(SET UPキー)が押された場合、システムBIOSによってLCD17に表示される。
このセットアップメニュー画面は、項目301、302を表示する。項目301は、本コンピュータ10に搭載された物理メモリの実際のメモリサイズを示す。即ち、項目301は、本コンピュータ10に搭載された主メモリ116のメモリサイズおよび拡張メモリモジュールのメモリサイズを合計したメモリサイズを示す。項目302は、メモリリソースプライオリティ情報(Memory Resource Priority)の内容を設定するための項目である。ユーザは、項目302を用いて、例えば上記メモリサイズ優先モードを示す“Physical Memory”あるいは上記拡張デバイス優先モードを示す“Optional Device”のいずれか一方を選択することができる。具体的にはカーソル303がメモリリソースプライオリティの“Physical Memory”上に位置している状態で、例えば、キーボード13の“↓”キーがユーザによって押される度に、“Optional Device”,“Physical Memory”,“Optional Device”…とトグルされる。BIOSセットアップメニュー画面W1は、メモリリソースプライオリティが“Physical Memory”に設定されている例を示している。このとき、本コンピュータ10の動作モードはメモリサイズ優先モードに設定されている。
“Optional Device”が選択された状態で、例えばユーザによってキーボード13のエンターキーが押された場合、BIOSセットアップメニュー画面W2に示すように、ユーザブルメモリサイズ(Usable Memory Size)項目が表示される。このとき、カーソル303は、ユーザブルメモリサイズ項目のメモリサイズを指定する位置を示す“3200MB”上に移動する。カーソル303がユーザブルメモリサイズ項目の“3200MB”上に位置している状態で、例えば、キーボード13の“↓”キーがユーザによって押される度に、“3200MB”,“3328MB”,“3456MB”,“3072MB”,“3200MB”,…とトグルされる。主メモリ116として使用可能なメモリサイズ(Usable Memory Size)が、“3072MB”,“3200MB”,“3328MB”,“3456MB”のいずれかに指定されると、この指定されたメモリサイズに従って、メモリ/MMIOアドレス空間203は、二つのメモリアドレス空間に分割される。
システムBIOSは、上記BIOSセットアップメニュー画面上で設定されたメモリリソースプライオリティ情報(メモリサイズ優先モード“Physical Memory”、拡張デバイス優先モード“Optional Device”)を不揮発性メモリ125に格納する。また、システムBIOSは、拡張デバイス優先モード“Optional Device”が選択された場合には、上記BIOSセットアップメニュー画面上で設定されたユーザブルメモリサイズ(“3072MB”,“3200MB”,“3328MB”,“3456MB”のいずれか一つ)を不揮発性メモリ125に格納する。
次に、図6を参照して、物理メモリのメモリサイズをCPU111のメモリアドレス空間に割り当てるメモリアドレス空間割り当て処理の様子の例を説明する。
メモリサイズ優先モードにおいては、システムBIOSは、標準メモリアドレス空間201とメモリ/MMIOアドレス空間202との双方に物理メモリを割り当て、これによって、主メモリ116の最大メモリサイズを、標準メモリアドレス空間201のサイズとメモリ/MMIOアドレス空間202のサイズとの合計値(3.5Gバイト)に設定する。つまり、メモリサイズ優先モードにおいては、標準メモリアドレス空間201のサイズと、メモリ/MMIOアドレス空間202のサイズとを合計したサイズ(A+B)が、使用可能な最大メモリサイズとなる。
拡張デバイス優先モードにおいては、システムBIOSは、標準メモリアドレス空間の201のみに物理メモリを割り当て、これによって、主メモリ116の最大メモリサイズを、標準メモリアドレス空間201のサイズ(3.0Gバイト)に設定する。メモリ/MMIOアドレス空間202には、オプションI/Oデバイスを割り当てることができる。
次に、図7のフローチャートを参照して、システムBIOSによって実行されるメモリアドレス空間割り当て処理の手順の第1の例を説明する。このメモリアドレス空間割り当て処理の手順の第1の例においては、例えば、物理メモリのサイズが4Gバイトである場合を想定する。
本コンピュータ10が電源オンされた場合、システムBIOSは、不揮発性メモリ125に格納されたメモリリソースプライオリティ情報を参照してメモリサイズ優先モードが指定されているか否かを判別する(ステップS101)。メモリサイズ優先モードが指定されていると判別された場合(ステップS101のYES)、システムBIOSは、(A)標準メモリアドレス空間201および(B)メモリ/MMIOアドレス空間202を主メモリ116に割り当てる処理を実行する(ステップS102)。ステップS102においては、メモリサイズは、(A)標準メモリアドレス空間201および(B)メモリ/MMIOアドレス空間202を合計した値(3.5Gバイト)になる。
一方、メモリサイズ優先モードではないと判別された場合、即ち拡張デバイス優先モードであると判別された場合(ステップS101のNO)、システムBIOSは、(A)標準メモリアドレス空間201のみを主メモリ116に割り当てる処理を実行する(ステップS103)。ステップS103においては、メモリサイズは(A)標準メモリアドレス空間201のみの値(3.0Gバイト)になる。
メモリアドレス空間割り当て処理の第1の例においては、ユーザによってメモリサイズ優先モードが指定された場合、本システムは、最大で3.5Gバイトの物理メモリを主メモリ116として使用することが出来る。一方、ユーザによって拡張デバイス優先モードが指定された場合、本システムは、3.0Gバイトまでの物理メモリしか使用することが出来ないが、本コンピュータ10に接続されたオプションI/Oデバイスの動作を保証することができる。
次に、図8のフローチャートを参照して、システムBIOSによって実行されるメモリリソースプライオリティ設定処理の手順の例を説明する。
システムBIOSは、本コンピュータ10の動作モードがメモリサイズ優先モードであるか否かを判別する(ステップS201)。ステップS201においては、システムBIOSは、BIOSセットアップメニュー画面上で設定された“メモリリソースプライオリティ”項目が“Physical Memory”であるか否かを判別する。
メモリサイズ優先モードではないと判別された場合、即ち拡張デバイス優先モードであると判別された場合(ステップS201のNO)、システムBIOSは、拡張デバイス優先モードであることを示すメモリリソースプライオリティ情報を例えば不揮発性メモリ125に格納する(ステップS202)。そして、システムBIOSは、BIOSセットアップメニュー画面上で設定された“ユーザブルメモリサイズ”を例えば不揮発性メモリ125に格納する(ステップS203)。
一方、メモリサイズ優先モードであると判別された場合(ステップS201のYES)、システムBIOSは、“メモリサイズ優先モード”であることを示すメモリリソースプライオリティ情報を不揮発性メモリ125に格納する(ステップS204)。
次に、図9および図10のフローチャートを参照して、システムBIOSによって実行されるメモリアドレス空間割り当て処理の手順の第2の例を説明する。
本コンピュータ10がパワーオンされた場合、システムBIOSは、本コンピュータシステムに接続された主メモリ116のメモリサイズを検出する(ステップS301)。ステップS301においては、具体的には、システムBIOSは、例えば主メモリ116に設けられたSPD(Serial Presence Detect)などのEEPROM(Electrically Erasable Programmable Read-only Memory)からメモリサイズを検出する。
システムBIOSは、検出されたメモリサイズが、最大割り当て可能なメモリサイズよりも大きいか否かを判別する(ステップS302)。本実施形態においては、最大割り当て可能なメモリサイズは3584Mバイト(およそ3.5Gバイト)である。ステップS302においては、例えば検出されたメモリサイズが3.5Gバイトよりも大きいか否かを判別する。検出されたメモリサイズが最大割り当て可能なメモリサイズよりも大きいと判別された場合(ステップS302のYES)、システムBIOSは、最大割り当て可能なメモリサイズを主メモリ116の暫定メモリサイズとして設定する(ステップS303)。一方、検出されたメモリサイズが最大割り当て可能なメモリサイズよりも大きくないと判別された場合(ステップS302のNO)、システムBIOSは、検出されたメモリサイズを主メモリ116の暫定メモリサイズとして設定する(ステップS310)。
ステップS303またはステップS310のいずれかを実行した後、システムBIOSは、暫定メモリサイズが最小割り当て可能なメモリサイズよりも大きいか否かを判別する(ステップS304)。本実施形態においては、最小割り当て可能なメモリサイズは3072Mバイト(およそ3.0Gバイト)である。ステップS304においては、例えば暫定メモリサイズが3072Mバイト(およそ3.0Gバイト)よりも大きいか否を判別する。暫定メモリサイズが最小割り当て可能なメモリサイズよりも大きくないと判別された場合(ステップS304のNO)、システムBIOSは、暫定メモリサイズをメモリコントローラ114のレジスタ115にセットし、主メモリ116のメモリサイズを暫定メモリサイズに設定する(ステップS311)。ステップS311においては、システムBIOSは、暫定メモリサイズに対応するアドレス情報(先頭メモリアドレス、終端メモリアドレス)をレジスタ115に格納する。
一方、暫定メモリサイズが最小割り当て可能なメモリサイズよりも大きいと判別された場合(ステップS304のYES)、システムBIOSは、不揮発性メモリ125からメモリリソースプライオリティ情報を取得する(ステップS305)。
ステップS305を実行したあと、システムBIOSは、本コンピュータ10の動作モードがメモリサイズ優先モードか否かを判別する(ステップS306)。ステップS306においては、システムBIOSは、取得したメモリリソースプライオリティ情報がメモリサイズ優先モードを示す“Physical Memory”であるか否かを判別する。メモリサイズ優先モードであると判別された場合、つまり、メモリリソースプライオリティ情報が“Physical Memory”であると判別された場合(ステップS306のYES)、システムBIOSは、暫定メモリサイズをメモリコントローラ114のレジスタ115にセットして、主メモリ116のメモリサイズを暫定メモリサイズに設定する(ステップS311)。もし、物理メモリのメモリサイズが4Gバイトであるならば、暫定メモリサイズは3.5Gバイトであるので、主メモリ116のメモリサイズは3.5Gバイトに設定される。
。一方、メモリサイズ優先モードではないと判別された場合、つまり、メモリリソースプライオリティが“Optional Device”であると判別された場合(ステップS306のNO)、システムBIOSは、不揮発性メモリ125から“ユーザブルメモリサイズ”を取得する(ステップS307)。システムBIOSは、暫定メモリサイズが取得したユーザブルメモリサイズよりも大きいか否かを判別する(ステップS308)。暫定メモリサイズが取得したユーザブルメモリサイズよりも大きくないと判別された場合(ステップS308のNO)、システムBIOSは、ステップS311に進む。一方、暫定メモリサイズが取得したユーザブルメモリサイズよりも大きいと判別された場合(ステップS308のYES)、システムBIOSは、ユーザブルメモリサイズをメモリコントローラ114のレジスタ115にセットして、主メモリ116のメモリサイズをユーザブルメモリサイズに設定する(ステップS309)。ステップS309においては、システムBIOSは、ユーザブルメモリサイズに対応するアドレス情報(先頭メモリアドレス、終端メモリアドレス)をメモリコントローラ114のレジスタ115に格納する。
ステップS309,S311のいずれかを実行した後、システムBIOSは、本コンピュータ10に接続されたPCIデバイス等のI/Oデバイス、つまり、本コンピュータ10内に備えられたPCIデバイス等のI/Oデバイスおよび本コンピュータ10に接続されたオプションI/Oデバイスを検出する。システムBIOSは、その検出結果に応じて、各I/OデバイスをMMIOアドレス空間(メモリ/MMIOアドレス空間202,PCIデバイスのMMIOアドレス空間203,システム固有のMMIOアドレス空間204)に割り当てるメモリアドレス割り当て処理を実行する(図10のステップS312)。
システムBIOSは、MMIOとして機能する全てのI/OデバイスをMMIOアドレス空間に割り当てることが出来たか否かを判別する(ステップS313)。MMIOとして機能する全てのI/OデバイスをMMIOアドレス空間に割り当てることが出来たと判別された場合(ステップS313のYES)、システムBIOSは、例えばPOST(Power-On Self Test)処理などによってその他のコンポーネントの初期化処理を実行し、オペレーティングシステム(OS)を起動(ブート)する(ステップS319,ステップS320)。
一方、MMIOアドレス空間に割り当てることが出来なかったI/Oデバイスが存在すると判別された場合(ステップS313のNO)、システムBIOSは、MMIOアドレス空間に割り当てることができなかったI/Oデバイスがあることを示すメッセージをLCD17に表示する(ステップS314)。ステップS314においては、MMIOアドレス空間に割り当てることできず、使用することができないI/Oデバイス(PCIデバイス,オプションI/Oデバイス)を示すメッセージが表示される。システムBIOSは、上記BIOSセットアップメニュー画面の表示を指示するBIOSセットアップ起動キー(SET UPキー)の入力を所定時間待機する(ステップS315)。システムBIOSは、上記所定時間内にSET UPキーが押されたか否かを判別する(ステップS316)。所定時間内にSET UPキーが押されなかったと判別された場合(ステップS316のNO)、システムBIOSは、ステップS319に進む。この場合、MMIOアドレス空間に割り当てることができなかったI/Oデバイス(PCIデバイス,オプションI/Oデバイス)は使用することが出来ない状態が維持されたまま、OSがブートされる。
一方、所定時間内にSET UPキーが押されたと判別された場合(ステップS316のYES)、システムBIOSは、メモリリソースプライオリティ情報の変更(あるいはユーザブルメモリサイズの変更)をユーザに促すために、BIOSセットアップメニュー画面をLCD17に再び表示する(ステップS317)。BIOSセットアップメニュー画面上でユーザによってメモリリソースプライオリティ情報が再設定された場合、システムBIOSは、再生設定されたメモリリソースプライオリティ情報(拡張デバイス優先モードにおいては、ユーザブルメモリサイズも含む)を不揮発性メモリ125に格納し、本コンピュータ10を再起動(リブート)する。そして、システムBIOSは、再びステップS301に進む。
システムBIOSは、ステップS301からステップS311までの手順によって本コンピュータ10において使用可能なメモリサイズを設定する。
このように、メモリアドレス空間割り当て処理の第2の例においては、オプションI/Oデバイス優先モードがユーザによって指定された場合、ユーザは、物理メモリに割り当てる可能な標準メモリアドレス空間のメモリサイズおよびPCIデバイスのMMIOアドレス空間のメモリサイズを変更することが出来る。これによって、例えば、本コンピュータ10に接続するオプションI/Oデバイスを用いる場合、このオプションI/Oデバイスを正常に動作するようにオプションI/Oデバイスのメモリアドレス空間を割り当てるとともに、主メモリ116に割り当て可能な標準メモリアドレス空間201を可能な限り広くすることもできる。
また、本実施形態のメモリリソースプライオリティ設定処理は、システムBIOSによって実行されたが、例えばシステムBIOS以外のソフトウェア(OS、またはOS上で動作するアプリケーションプログラム等)によって実行されてもよい。即ち、本コンピュータ10のパワーオンシーケンス中以外であっても上記ソフトウェアによって実行される。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに異なる実施形態に構成要素を適宜組み合わせてもよい。
10…パーソナルコンピュータ、17…LCD、111…CPU、112…サウスブリッジ、113…表示コントローラ、114…メモリコントローラ、115…レジスタ、116…主メモリ、120…サウスブリッジ、121…USBコントローラ、122,124…ホストコントローラ、123…IDEコントローラ、122A,122B…拡張ポート、125…不揮発性メモリ、130…BIOS−ROM、128,129…拡張PCIデバイス、201…標準メモリアドレス空間、202…メモリ/MMIOアドレス空間、203…PCIデバイスのMMIOアドレス空間、204…システム固有のMMIOアドレス空間、W1,W2…BIOSセットアップウィンドウ。
Claims (10)
- 主記憶を割り当て可能な第1エリアとI/Oデバイスを割り当て可能な第2エリアとがマッピングされたメモリアドレス空間をアクセス可能なプロセッサと、
前記主記憶として機能する物理メモリと、
前記メモリアドレス空間に前記主記憶を前記I/Oデバイスよりも優先して割り当てる第1モードおよび前記メモリアドレス空間に前記I/Oデバイスを前記主記憶よりも優先して割り当てる第2モードの一方を指定するモード指定手段と、
前記物理メモリのメモリサイズが前記第1エリアのサイズよりも大きい場合、前記第1モードおよび前記第2モードのどちらのモードが指定されているかを判別する判別手段と、
前記第1モードが指定されていることが判別された場合、前記主記憶として使用可能なメモリサイズが前記第1エリアのサイズよりも大きいサイズに設定されるように前記第1エリアおよび少なくとも前記第2エリア内の一部に前記物理メモリを割り当て、前記第2モードが指定されていることが判別された場合、前記使用可能なメモリサイズが前記第1エリアのサイズに制限されるように前記第1エリアに前記物理メモリを割り当てる割り当て手段とを具備することを特徴とする情報処理装置。 - 前記第2エリアを、前記主記憶を割り当て可能な第3エリアと前記I/Oデバイスを割り当て可能な第4エリアとに分割する分割手段をさらに具備し、
前記割り当て手段は、前記第2モードが指定されていることが判別された場合、前記使用可能なメモリサイズが前記第1エリアのサイズと前記第3エリアとのサイズの合計サイズに制限されるように前記第1エリアおよび前記第3エリアに前記物理メモリを割り当てる手段を含むことを特徴とする請求項1記載の情報処理装置。 - 前記モード指定手段は、前記第1モードおよび前記第2モードの一方をユーザに選択させる画面を表示装置に表示する表示手段と、前記画面上で実行される選択操作に応じて前記第1モードおよび前記第2モードの一方を指定する手段とを含むことを特徴とする請求項1記載の情報処理装置。
- 前記第2エリアに前記I/Oデバイスを割り当てることができたか否かを判別する判別手段と、
前記第2エリアに前記I/Oデバイスを割り当てることができなかった場合、前記選択操作の実行を前記ユーザに促すために、前記第2エリアに前記I/Oデバイスを割り当てることができなかったことを示すメッセージを前記表示装置に表示する表示手段とをさらに具備することを特徴とする請求項3記載の情報処理装置。 - 前記I/Oデバイスは、前記情報処理装置の本体に取り外し可能に接続されるオプションI/Oデバイスであることを特徴とする請求項1記載の情報処理装置。
- 主記憶を割り当て可能な第1エリアとI/Oデバイスを割り当て可能な第2エリアとがマッピングされたメモリアドレス空間をアクセス可能なプロセッサと前記主記憶として機能する物理メモリとを備えた情報処理装置に適用されるメモリアドレス空間割り当て方法であって、
前記メモリアドレス空間に前記主記憶を前記I/Oデバイスよりも優先して割り当てる第1モードおよび前記メモリアドレス空間に前記I/Oデバイスを前記主記憶よりも優先して割り当てる第2モードの一方を指定するモード指定ステップと、
前記物理メモリのメモリサイズが前記第1エリアのサイズよりも大きい場合、前記第1モードおよび前記第2モードのどちらのモードが指定されているかを判別する判別ステップと、
前記第1モードが指定されていることが判別された場合、前記主記憶として使用可能なメモリサイズが前記第1エリアのサイズよりも大きいサイズに設定されるように前記第1エリアおよび少なくとも前記第2エリア内の一部に前記物理メモリを割り当て、前記第2モードが指定されていることが判別された場合、前記使用可能なメモリサイズが前記第1エリアのサイズに制限されるように前記第1エリアに前記物理メモリを割り当てる割り当てステップとを具備することを特徴とするメモリアドレス空間割り当て方法。 - 前記第2エリアを、前記主記憶を割り当て可能な第3エリアと前記I/Oデバイスを割り当て可能な第4エリアとに分割する分割ステップをさらに具備し、
前記割り当てステップは、前記第2モードが指定されていることが判別された場合、前記使用可能なメモリサイズが前記第1エリアのサイズと前記第3エリアとのサイズの合計サイズに制限されるように前記第1エリアおよび前記第3エリアに前記物理メモリを割り当てるステップを含むことを特徴とする請求項6記載のメモリアドレス空間割り当て方法。 - 前記モード指定ステップは、前記第1モードおよび前記第2モードの一方をユーザに選択させる画面を前記情報処理装置の表示装置に表示するステップと、前記画面上で実行される選択操作に応じて前記第1モードおよび前記第2モードの一方を指定するステップとを含むことを特徴とする請求項6記載のメモリアドレス空間割り当て方法。
- 前記第2エリアに前記I/Oデバイスを割り当てることができたか否かを判別する判別ステップと、
前記第2エリアに前記I/Oデバイスを割り当てることができなかった場合、前記選択操作の実行を前記ユーザに促すために、前記第2エリアに前記I/Oデバイスを割り当てることができなかったことを示すメッセージを前記表示装置に表示する表示ステップとをさらに具備することを特徴とする請求項8記載のメモリアドレス空間割り当て方法。 - 前記I/Oデバイスは、前記情報処理装置の本体に取り外し可能に接続されるオプションI/Oデバイスであることを特徴とする請求項6記載のメモリアドレス空間割り当て方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005335933A JP2007141066A (ja) | 2005-11-21 | 2005-11-21 | 情報処理装置およびメモリアドレス空間割り当て方法 |
US11/602,115 US20070118717A1 (en) | 2005-11-21 | 2006-11-20 | Information processing apparatus and memory address space assignment method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005335933A JP2007141066A (ja) | 2005-11-21 | 2005-11-21 | 情報処理装置およびメモリアドレス空間割り当て方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007141066A true JP2007141066A (ja) | 2007-06-07 |
Family
ID=38054828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005335933A Pending JP2007141066A (ja) | 2005-11-21 | 2005-11-21 | 情報処理装置およびメモリアドレス空間割り当て方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070118717A1 (ja) |
JP (1) | JP2007141066A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017528813A (ja) * | 2014-08-20 | 2017-09-28 | クアルコム,インコーポレイテッド | システムオンチップ用のメモリを拡張するためのシステムおよび方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2346233A4 (en) * | 2008-11-03 | 2013-04-24 | Zte Corp | METHOD AND SYSTEM FOR GIVING A MEMORY PLACE OF A MOBILE DEVICE |
US9454378B2 (en) * | 2013-09-30 | 2016-09-27 | Apple Inc. | Global configuration broadcast |
CN106383802B (zh) * | 2016-11-25 | 2023-05-16 | 湖南长城银河科技有限公司 | 基于飞腾平台的lpc接口访问装置及方法、笔记本电脑 |
US10127053B2 (en) * | 2016-12-28 | 2018-11-13 | Mellanox Technologies, Ltd. | Hardware device safe mode |
TWI767266B (zh) * | 2020-06-30 | 2022-06-11 | 神雲科技股份有限公司 | 基於記憶體對映輸入輸出的記憶體空間自動分配方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225316B2 (en) * | 2003-11-17 | 2007-05-29 | Intel Corporation | Memory mapping apparatus, systems, and methods |
US7426625B2 (en) * | 2004-03-31 | 2008-09-16 | International Business Machines Corporation | Data processing system and computer program product for support of system memory addresses with holes |
US20060095708A1 (en) * | 2004-11-04 | 2006-05-04 | International Business Machines Corporation | Apparatus and method for parallel installation of logical partitions |
-
2005
- 2005-11-21 JP JP2005335933A patent/JP2007141066A/ja active Pending
-
2006
- 2006-11-20 US US11/602,115 patent/US20070118717A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017528813A (ja) * | 2014-08-20 | 2017-09-28 | クアルコム,インコーポレイテッド | システムオンチップ用のメモリを拡張するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070118717A1 (en) | 2007-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007052728A (ja) | 情報処理装置およびアクセス方法 | |
JP2007052727A (ja) | 情報処理装置およびアクセス方法 | |
US9940291B2 (en) | Assigning processors to memory mapped configuration | |
JP2007141066A (ja) | 情報処理装置およびメモリアドレス空間割り当て方法 | |
JP2008287505A (ja) | 情報処理装置およびレガシーエミュレーション処理停止制御方法 | |
EP3889735A1 (en) | Information processing apparatus and control method | |
JP2006293760A (ja) | 情報処理装置 | |
EP4027214A1 (en) | Information processing apparatus and control method | |
JP2007233534A (ja) | 情報処理装置およびメモリアドレス空間割り当て方法 | |
JP2006259903A (ja) | 情報処理装置および起動方法 | |
JP2016018555A (ja) | 動作環境の切換方法、コンピュータ、およびコンピュータ・プログラム | |
JP7149394B1 (ja) | 情報処理装置、及び制御方法 | |
CN110825421A (zh) | 一种固件升级方法、系统及可读存储介质 | |
JP2006285674A (ja) | 情報処理装置および該情報処理装置におけるブート処理制御方法 | |
US20050172113A1 (en) | Method and apparatus for basic input output system loading | |
JP2022136411A (ja) | 情報処理装置、及び制御方法 | |
JP2021168004A (ja) | 情報処理装置、及び制御方法 | |
JP2010152681A (ja) | 情報処理装置およびエミュレーション方法 | |
KR100631966B1 (ko) | 멀티 부팅 전원 버튼을 구비한 컴퓨터, 주변 장치 및 그운영 방법 | |
US20110051275A1 (en) | Computer system, disk storage device and method of controlling the same | |
JP5085493B2 (ja) | 情報処理装置及びそのブート制御方法 | |
KR101672282B1 (ko) | 단일 운영체제 시스템에서의 다중 운영체제 지원방법 및 그를 위한 장치 | |
US20080077766A1 (en) | Information processing apparatus and information processing method | |
KR100823293B1 (ko) | 컴퓨터시스템 및 그 제어방법 | |
KR20030068244A (ko) | 컴퓨터 시스템의 보안방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080919 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080924 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090303 |