JP7067270B2 - 情報処理装置,ロードプログラムおよびロード方法 - Google Patents

情報処理装置,ロードプログラムおよびロード方法 Download PDF

Info

Publication number
JP7067270B2
JP7067270B2 JP2018100420A JP2018100420A JP7067270B2 JP 7067270 B2 JP7067270 B2 JP 7067270B2 JP 2018100420 A JP2018100420 A JP 2018100420A JP 2018100420 A JP2018100420 A JP 2018100420A JP 7067270 B2 JP7067270 B2 JP 7067270B2
Authority
JP
Japan
Prior art keywords
memory
storage area
memory area
information
notification
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.)
Active
Application number
JP2018100420A
Other languages
English (en)
Other versions
JP2019204403A (ja
Inventor
将人 福森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018100420A priority Critical patent/JP7067270B2/ja
Priority to US16/407,246 priority patent/US11061691B2/en
Publication of JP2019204403A publication Critical patent/JP2019204403A/ja
Application granted granted Critical
Publication of JP7067270B2 publication Critical patent/JP7067270B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Description

本発明は、情報処理装置,ロードプログラムおよびロード方法に関する。
例えば、HPC(High Performance Computing)におけるOS(Operating System)ジッタ対策として、複数のCPU(Central Processing Unit)コアのうち特定のCPUコアにOSの処理を割り当て、その他のCPUコアで演算処理を行なうことが知られている。また、演算処理用に最大限メモリを割り当て、且つメモリの断片化を防ぐために、メモリ領域をOS処理用のメモリ領域と演算処理用のメモリ領域とに分割して用いることも行なわれている。このようなOS処理用のメモリ領域と演算処理用のメモリ領域との分割は、OSの機能によって実現される。
UEFI(Unified Extensible Firmware Interface)は、CPU上のOSとファームウェアのインタフェース仕様およびその仕様に準拠したファームウェアプログラム本体を指す。なお、以下、特に記載のない場合は、UEFIはファームウェアプログラム本体を指すものとする。
UEFIはCPUが起動された後、OSを起動するために最小限のハードウェアの初期化を行なった後、UEFI内部のドライバ(以降、UEFIドライバという)等をメモリ領域に配置する。そして、UEFIは、UEFIドライバによりHDD(Hard Disk Drive)などの記憶装置に対してディスクアクセスを行なったり、外部サーバに対するネットワークアクセスを行なったりすることで、OSイメージをDRAM(Dynamic Random Access Memory)などのメモリにロードし起動する。
OS起動後はUEFI内部の一部のプログラムがメモリ上に常駐し、OSからの呼び出しを受けて動作する。
特開2003-242026号公報 特開2008-158964号公報
上述の如く、OS起動前にUEFIもメモリ領域を使用する。また、従来においては、メモリをOS処理用の領域と演算処理用の領域とに分割することはOSの機能により実現している。従って、OSの起動前においてUEFIは、OS処理用/演算処理用といった領域を認識することなくメモリ領域を使用する。
また使用されたメモリ領域の一部には、UEFIのプログラムおよびデータが常駐し、OS処理及び演算処理のどちらの処理も使用できない領域となる。
これにより、演算処理用に設けたメモリ領域の途中にUEFIのプログラムおよびデータが存在することで、演算処理用のメモリ領域の断片化(フラグメンテーション)が生じ、性能低下を生じさせるという課題がある。
1つの側面では、本発明は、演算処理用のメモリ領域の断片化を抑制できるようにすることを目的とする。
このため、この情報処理装置は、プロセッサとメモリとを備えた情報処理装置であって、当該情報処理装置の起動処理において、前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定する設定部と、前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成する作成部と、前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動する起動処理部と、起動された前記オペレーティングシステムから発行されるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する応答部とを備える。
一実施形態によれば、演算処理用のメモリ領域の断片化を抑制できる。
実施形態の一例としての情報処理装置のハードウェア構成を模式的に示す図である。 実施形態の一例としての情報処理装置におけるメモリの記憶領域の使用方法を説明するための図である。 実施形態の一例としての情報処理装置における設定パラメータを例示する図である。 実施形態の一例としての情報処理装置の機能構成を示す図である。 実施形態の一例としての情報処理装置におけるメモリ領域通知用HOBの設定値を説明するための図である。 実施形態の一例としての情報処理装置におけるMemory Space Mapエントリの設定値を説明するための図である。 実施形態の一例としての情報処理装置におけるMemory Mapエントリの設定値を説明するための図である。 実施形態の一例としての情報処理装置におけるMemory Descriptorエントリの設定値を説明するための図である。 実施形態の一例としての情報処理装置におけるSEC処理部,PEI処理部,DXE処理部およびOSにおいてそれぞれ使用されるデータの関係を示す図である。 実施形態の一例としての情報処理装置におけるUEFI処理部によるOS起動処理を説明するためのシーケンス図である。 実施形態の一例としての情報処理装置におけるPEI処理部による処理を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるDXE処理部によるOS起動処理を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるDXE処理部によるメモリ情報の通知処理を説明するためのフローチャートである。
以下、図面を参照して本情報処理装置,ロードプログラムおよびロード方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としての情報処理装置1のハードウェア構成を模式的に示す図である。
本情報処理装置1は、図1に示すように、CPU10,主記憶装置20,ROM(Read Only Memory)21および記憶装置22を備えたコンピュータである。情報処理装置1の構成要素は、図1に例示したものに限定されるものではなく、例えば、ディスプレイ,キーボード,マウス等の他の構成要素を備えてもよい。
例えば、オペレータはこれらのキーボードやマウスを操作して、本情報処理装置1の再起動指示を含む種々の指示や情報の入力操作を行なってもよい。又、この情報処理装置1は、図示しない電源スイッチをそなえ、オペレータがこの電源スイッチを操作することにより電力投入が行なわれる。
記憶装置22は、例えば、HDD(Hard Disk Drive),SSD(Solid State Drive)等の記憶装置であって、CPU10が実行するOSや種々のプログラムやデータを格納するものである。
図1に示す例においては、記憶装置22にOS命令コード214が格納されている。
OS命令コード214は、OSを構成する命令コード群であり、CPU10のコア11-1~11-nに実行されることでOSとしての機能が実現される。
ROM21は、CPU10が実行するプログラムやデータを格納する半導体記憶装置である。
図1に示す例においては、ROM21にUEFI命令コード210および設定パラメータ220が格納されている。
UEFIにおいては、OSが起動するまでに、主に、SEC(Security)、PEI(Pre-EFI Initialization)、DXE(Driver Execution Environment)及びBDS(Boot Device Selection)の4つのフェーズをそなえ、各フェーズの処理オーダは、SEC、PEI、DXE、BDSの順となる。
UEFI命令コード210は、プラットフォーム・ファームウェアであるUEFIを構成する命令コード群であり、CPU10のコア11に実行されることで、本情報処理装置1のハードウェアにOSを読み込む(ロードする)準備を実現させる。すなわち、UEFI命令コード210はOSをロードさせるロードプログラムに相当する。
図1に示す例においては、UEFI命令コード210は、上述した各フェーズのうち、SEC,PEIおよびDXEをそれぞれ実現するためのUEFI(SEC)211,UEFI(PEI)212およびUEFI(DXE)213の各モジュールを備えている。
主記憶装置20は、種々のデータやプログラムを一時的に格納する記憶装置であって、CPU10がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。主記憶装置20は、例えば、RAM(Random Access Memory)である。以下、主記憶装置20をメモリ20という場合がある。また、以下、メモリ20の記憶領域をメモリ領域という場合がある。
図2は実施形態の一例としての情報処理装置1におけるメモリ20の記憶領域の使用方法を説明するための図である。
この図2に例示するように、本情報処理装置1においては、メモリ20の記憶領域を、OS処理用メモリ領域20aと演算処理用メモリ領域20bとに区分して用いる。
すなわち、OS処理用メモリ領域20aは、OSによる処理(OS処理)とUEFIによる処理(UEFI処理)とに用いられ、演算処理用メモリ領域20bは演算処理に用いられる。図2に示す例においては、演算処理用メモリ領域20bは演算処理Aと演算処理Bとに用いられている状態を示している。演算処理用メモリ領域20bはOS処理およびUEFI処理に用いられることはない。
これにより、演算処理用メモリ領域20bにおいて、UEFIが使用する領域による断片化を防止することができる。
以下、OS処理用メモリ領域20aおよび演算処理用メモリ領域20bに対して、区分されていないメモリ20全体の記憶領域を実メモリ領域という場合がある。
OS処理用メモリ領域20aおよび演算処理用メモリ領域20bは、設定パラメータ220を参照することで把握することができる。
設定パラメータ220はUEFI処理部100による処理において用いられる各種パラメータの設定値を格納する。
図3は実施形態の一例としての情報処理装置1における設定パラメータ220を例示する図である。
図3に例示する設定パラメータ220は、設定パラメータ名として、メモリ領域のサイズ,メモリ領域のベースアドレスおよび演算処理用メモリ領域のサイズを備える。
メモリ領域のサイズは、主記憶装置20のメモリ領域の全サイズであり、図3に示す例においては、“4GB”が設定されている。
メモリ領域のベースアドレスは、例えば、メモリ領域の先頭アドレスであり、図3に示す例においては、“0x0000_0000”が設定されている。
演算処理用メモリ領域のサイズは、メモリ領域における演算処理用メモリ領域20bのサイズであり、図3に示す例においては、“3GB”が設定されている。従って、メモリ20においては、メモリ領域のサイズ(4GB)から演算処理用メモリ領域20bのサイズ(3GB)を減算することで、OS処理用メモリ領域20aのサイズ(1GB)を求めることができる。
なお、設定パラメータ220は図3に示す例に限定されるものではなく、種々変形して実施することができる。例えば、図3に示す例においては、設定パラメータ220に演算処理用メモリ領域のサイズが備えられているが、これに限定されるものではない。すなわち、演算処理用メモリ領域のサイズに代えてOS処理用メモリ領域のサイズを備えてもよく、また、演算処理用メモリ領域のサイズとともにOS処理用メモリ領域のサイズを備えてもよい。また、設定パラメータ220には、図3に例示した以外の情報を備えてもよい。
設定パラメータ220は、後述するUEFI処理部100による処理の切り替えに用いられる。
CPU(プロセッサ)10は、種々の制御や演算を行なう処理装置であり、ROM21や記憶装置22等に格納されたプログラムを実行することにより、種々の機能を実現する。
CPU10は、n個(nは1以上の自然数)のコア(CPUコア)11-1~11-nと、m個(mは1以上の自然数)のMAC(Memory Access Controller)12-1~12-mを備える。
なお、以下、コアを示す符号としては、複数のコアのうち1つを特定する必要があるときには符号11-1~11-nを用いるが、任意のコアを指すときには符号11を用いる。また、以下、MACを示す符号としては、複数のMACのうち1つを特定する必要があるときには符号12-1~12-mを用いるが、任意のMACを指すときには符号12を用いる。
MAC12は各コア11からメモリ20の記憶領域に対するデータアクセスを制御する。各コア11はMAC12を介してメモリ領域にアクセスする。メモリ領域はCPU10(コア11)に対して物理アドレスが連続な一塊の領域としてマッピングされる。
そして、本情報処理装置1においてはCPU10に備えられた複数のコア11のうちプライマリに設定されたコア11(例えば、コア11-1)が、UEFI命令コード210(ロードプログラム)を実行することにより、図4に示すように、UEFI処理部100およびOS処理部107として機能する。
なお、これらのUEFI処理部100およびOS処理部107としての機能を実現するためのプログラム(ロードプログラム)は、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RW等),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
UEFI処理部100およびOS処理部107としての機能を実現する際には、内部記憶装置(本実施形態ではROM21)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではコア11)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
図4は実施形態の一例としての情報処理装置1の機能構成を示す図である。
この図4に示すように、本情報処理装置1は、UEFI処理部100およびOS処理部107としての機能を備える。
例えば、コア11がOS命令コード214を実行することで、OS処理部107としての機能が実現される。
OS処理部107は、OSとしての機能を実現する。なお、OSとしての機能は既知であり、その説明は省略する。
OS処理部107は、メモリ20のOS処理用メモリ領域20aを用いてその機能を実現する。
UEFI処理部100は、メモリ管理部101,SEC処理部102,PEI処理部103およびDXE処理部104としての機能を備える。
また、例えば、CPU10に備えられた複数のコア11のうちプライマリに設定されたコア11(例えば、コア11-1)がUEFI命令コード210を実行することで、UEFI処理部100としての機能が実現される。
UEFI処理部100は、本情報処理装置1のハードウェアにOSを読み込む準備を実現させる。
例えば、コア11-1がUEFI命令コード210に含まれる図示しないメモリ管理プログラムを実行することで、メモリ管理部101としての機能を実現してもよい。
メモリ管理部101は、メモリ20を管理する。例えば、メモリ管理部101は、本情報処理装置1の起動時において、メモリ20にOS処理用メモリ領域20aおよび演算処理用メモリ領域20bを設定する。
メモリ管理部101は、その起動時において実メモリ(メモリ20)のメモリ容量よりも小さい値をOS処理用メモリ領域20aのサイズとして、例えば、設定パラメータ220や図示しないレジスタ等に格納(設定)してもよい。本実施形態においては、メモリ管理部101は、実メモリ(メモリ20)のメモリ容量よりも小さい値である演算処理用メモリ領域20bのサイズを設定パラメータ220に設定する。その後、メモリ管理部101は、ドライバープログラムを起動する。
ドライバープログラムは、小さいメモリ領域(OS処理用メモリ領域20aや演算処理用メモリ領域20b)が設定されたメモリ管理プログラムを通じてメモリ20を獲得する。UEFI処理部100(DXE処理部104;詳細は後述)は、OSを起動する際に実メモリ領域を通知する。
また、CPU10に備えられた複数のコア11のうちプライマリに設定されたコア11(例えば、コア11-1)がUEFI命令コード210のUEFI(SEC)211を実行することでSEC処理部102としての機能が実現される。また、コア11-1がUEFI(PEI)212を実行することでPEI処理部103としての機能が実現され、コア11がUEFI(DXE)213を実行することでDXE処理部104としての機能が実現される。
SEC処理部102は、UEFIにおけるSECフェーズを実現する。SEC処理部102は、CPU10の初期化を行なう。例えば、SEC処理部102は、各部のリセット処理(Reset Event)を行なう。
その後、SEC処理部102は、UEFI(PEI)212をコア11-1に実行させることで、PEI処理部103を起動する。
PEI処理部103は、UEFIにおけるPEIフェーズを実現する。PEIフェーズにおいては、CPU10の初期化が終了し、メモリ20が検出される。
また、PEI処理部103は、設定パラメータ220を参照して、この設定パラメータ220に登録された情報に基づき、OS処理用メモリ領域20aおよび演算処理用メモリ領域20bを認識する。
そして、PEI処理部103は、全メモリ領域を初期化する。
また、PEI処理部103は、メモリ領域設定部108およびメモリ領域通知用HOB(Hand-Off-Block)作成部105としての機能を有する。
メモリ領域設定部108は、メモリ20の記憶領域においてOS処理用メモリ領域20aおよび演算処理用メモリ領域20bを設定(認識)する。
メモリ領域設定部108は、設定パラメータ220に設定された各値を読み出し、これらの値に基づいてOS処理用メモリ領域20aおよび演算処理用メモリ領域20bを認識する。
メモリ領域通知用HOB作成部105は、OS処理用メモリ領域20aを使用可能、且つ、演算処理用メモリ領域20bを使用不可能と設定した、メモリ領域通知用HOBを作成する。
このメモリ領域通知用HOBは、演算処理用メモリ領域20bが使用不可能であり且つOS処理用メモリ領域20aが使用可能であることを通知する第1通知情報に相当する。
そして、メモリ領域通知用HOB作成部105は、作成したメモリ領域通知用HOBをOS処理用メモリ領域20aに格納する。PEI処理部103は、このOS処理用メモリ領域20aを介してメモリ領域通知用HOBをDXE処理部104に通知する。
本情報処理装置1において、メモリ領域通知用HOBは属性情報が同じ物理連続なメモリ領域に対して1つ作成される。すなわち、メモリ領域通知用HOB作成部105は、メモリ20に対して、OS処理用メモリ領域20a用のメモリ領域通知用HOBと、演算処理用メモリ領域20b用のメモリ領域通知用HOBとの2つのメモリ領域通知用HOBを作成する。
以下、OS処理用メモリ領域20a用のメモリ領域通知用HOBをOS処理用メモリ領域通知用HOBという場合がある。また、演算処理用メモリ領域20b用のメモリ領域通知用HOBを演算処理用メモリ領域通知用HOBという場合がある。
また、以下、メモリ領域通知用HOBを単にHOBという場合がある。
図5は実施形態の一例としての情報処理装置1におけるメモリ領域通知用HOBの設定値を説明するための図であり、メモリ領域通知用HOBに備えられる項目(field)とその値(value)とを対応付けて示す。
この図5に示す例においては、メモリ領域通知用HOBに備えられる項目(field)として、Header,Owner,ResourceType,ResourceAttribute,PhysicalStartおよびResourceLengthを示している。これらの項目は、メモリ領域通知用HOBに備えられる項目の少なくとも一部を示す。
メモリ領域通知用HOB作成部105は、設定パラメータ220の値を用いてメモリ領域通知用HOBを作成する。
例えば、メモリ領域通知用HOB作成部105は、設定パラメータ220から読み出したメモリ領域のベースアドレス(例えば、0x0000_0000)をPhysicalStartに設定する。また、メモリ領域通知用HOB作成部105は、設定パラメータ220から読み出したメモリ領域のサイズ(例えば1GB)をResourceLengthに設定する。例えば、図3に例示する設定パラメータ220においては、1GBと3GBとをReourceLengthに設定した2つのHOBが作成される。
メモリ領域通知用HOB作成部105は、以下に示すように、OS処理用メモリ領域通知用HOBと演算処理用メモリ領域通知用HOBとにおいて、項目ResourceAttributeの値において違いを設ける。
すなわち、OS処理用メモリ領域通知用HOBにおいては、ResourceAttributeにおいて、以下の5つのフラグの値のOR値が備えられる。
EFI_RESOURCE_ATTRIBUTE_PRESENT
EFI_RESOURCE_ATTRIBUTE_INITIALIZED
EFI_RESOURCE_ATTRIBUTE_TESTED
EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC
EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE
ここで、フラグEFI_RESOURCE_ATTRIBUTE_PRESENTはOS処理用メモリ領域20aが存在する(PRESENT)ことを示す。また、フラグEFI_RESOURCE_ATTRIBUTE_INITIALIZEDはOS処理用メモリ領域20aが初期化済み(INITIALIZED)であることを示す。さらに、フラグEFI_RESOURCE_ATTRIBUTE_TESTEDは、OS処理用メモリ領域20aがテスト済み(TESTED)であることを示す。
従って、OS処理用メモリ領域20aに関しては、これらのフラグEFI_RESOURCE_ATTRIBUTE_PRESENTEFI_RESOURCE_ATTRIBUTE_INITIALIZEDおよびEFI_RESOURCE_ATTRIBUTE_TESTEDが設定されることで、このメモリ領域通知用HOBを受信したDXE処理部104において、存在し(PRESENT)、初期化済み(INITIALIZED)であり、且つテスト済み(TESTED)であり、使用可能な領域として取り扱われる。
従って、OS処理用メモリ領域通知用HOBは、OS処理用メモリ領域20aが使用可能であることを通知する通知情報として機能する。
一方、演算処理用メモリ領域通知用HOBにおいては、ResourceAttributeにおいて、以下の4種類のフラグのOR値が備えられる。
EFI_RESOURCE_ATTRIBUTE_PRESENT
EFI_RESOURCE_ATTRIBUTE_INITIALIZED
EFI_RESOURCE_ATTRIBUTE_SINGLE_BIT_ECC
EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE
このように、演算処理用メモリ領域20bに関しては、フラグEFI_RESOURCE_ATTRIBUTE_PRESENTおよびEFI_RESOURCE_ATTRIBUTE_INITIALIZEDが設定されているので、存在し(PRESENT)、且つ、初期化済み(INITIALIZED)であるが、テスト済(TESTED)であることが設定されていない。
これにより、演算処理用メモリ領域通知用HOBを受信したDXE処理部104において、演算処理用メモリ領域20bは、「未テストの状態」=「使用できるか不明な状態」と判断され、その結果「使用しない(使用不可能)領域」として取り扱われる。
従って、演算処理用メモリ領域通知用HOBは、演算処理用メモリ領域20bが使用不可能であることを通知する通知情報として機能する。
このように、PEI処理部103においてメモリ領域通知用HOB作成部105が演算処理用メモリ領域20bを使用不可能と設定したメモリ領域通知用HOB(演算処理用メモリ領域通知用HOB)をDXE処理部104に通知する。これにより、DXE処理部104は、メモリ20におけるOS処理用メモリ領域20aのみを使用可能な領域として認識する。すなわち、UEFI処理部100がメモリ20における演算処理用メモリ領域20bを使用することを阻止する。
PEI処理部103は、UEFI(DXE)213のイメージをOS処理用メモリ領域20aにコピーした後、このUEFI(DXE)213をコア11-1に実行させることで、DXE処理部104を起動させる。
DXE処理部104は、UEFIにおけるDXEフェーズを実現する。
DXE処理部104は、メモリ領域通知用HOBによって使用可能と通知されたメモリ領域、すなわち、OS処理用メモリ領域20aにおいて適宜使用するメモリを確保した後、OSを起動させる。
従って、DXE処理部104は、メモリ領域通知用HOBに基づき、OS処理用メモリ領域20aに領域を確保してOSを起動する起動処理部として機能する。
また、DXE処理部104は、メモリ領域情報通知部106としての機能を有する。
メモリ領域情報通知部106は、OSからメモリ情報通知要求を受信すると、メモリ領域通知用HOBで使用可能と通知されたメモリ領域(OS処理用メモリ領域20a)のうち、DXE処理部104ですでに使用済みの領域と未使用の領域との情報をOSに通知する。
メモリ情報通知要求は、OSの起動処理の過程において、OSからDXE処理部104に対して発行される問合せ通知であり、OSが使用できるメモリ領域を問い合わせる。
さらに、メモリ領域情報通知部106は、メモリ領域通知用HOBによって使用不可能と通知されたメモリ領域、すなわち演算処理用メモリ領域20bを、使用可能、且つ、未使用領域としてOSに通知する。この通知が、演算処理用メモリ領域20bを使用可能であることを通知する第2通知情報に相当する。
この第2通知情報により、本情報処理装置1において、OSがメモリ20における演算処理用メモリ領域20bを使用することができるようになる。すなわち、DXE処理部104は、演算処理用メモリ領域20bを使用不可能な状態から解放して使用可能な状態に移行させる。
従って、メモリ領域情報通知部106は、OSから発行されるメモリ情報通知要求に応じて、演算処理用メモリ領域20bを使用可能であることを通知する第2通知情報を応答する応答部として機能する。
DXE処理部104は、メモリ領域通知用HOBを用いてメモリスペースマップ(Memory Space Map)を作成する。Memory Space Mapは、DXE処理部104で認識するメモリ20の構成情報であり、Memory Space Mapエントリと呼ばれるデータ構造の集合である。
図6は実施形態の一例としての情報処理装置1におけるMemory Space Mapエントリの設定値を説明するための図であり、Memory Space Mapに備えられる項目(field)とその値(value)とを対応付けて示す。
この図6に示す例においては、Memory Space Mapに備えられる項目(field)として、BaseAddress,EndAddress, AttributesおよびGcdMemoryTypeを示している。これらの項目は、Memory Space Mapに備えられる項目の少なくとも一部を示す。
GcdMemoryTypeには、ハードウェアとしてのメモリ領域の種別を示す値が設定される。
すなわち、GcdMemoryTypeには、対応するメモリ領域通知用HOBのResourceAttributeの情報を基に設定されるメモリ領域の種別が設定される。
例えば、(i)メモリ領域通知用HOBのResourceAttributeにEFI_RESOURCE_ATTRIBUTE_TESTEDが設定されている場合、DXE処理部104は、GcdMemoryTypeにEfiGcdMemoryTypeSystemMemoryを設定する。このEfiGcdMemoryTypeSystemMemoryはOS処理用メモリ領域20aであることを示す。
また、(ii)メモリ領域通知用HOBのResourceAttributeにEFI_RESOURCE_ATTRIBUTE_TESTEDが設定されておらず、且つEFI_RESOURCE_ATTRIBUTE_INITIALIZEDもしくはEFI_RESOURCE_ATTRIBUTE_PRESENTのどちらかが設定されている場合は、DXE処理部104はGcdMemoryTypeにEfiGcdMemoryTypeReservedを設定する。このEfiGcdMemoryTypeReservedは、演算処理用メモリ領域20bであることを示す。
また、上記(i),(ii)のいずれにも該当しない場合には、DXE処理部104は、GcdMemoryTypeにEfiGcdMemoryTypeNonExistentを設定する。
従って、OS処理用メモリ領域20aに対してはEfiGcdMemoryTypeSystemMemoryが設定され、演算処理用メモリ領域20bに対してはEfiGcdMemoryTypeReservedが、それぞれ設定される。
DXE処理部104のメモリ領域情報通知部106は、メモリマップ(Memory Map)を作成する。Memory Mapは、メモリ20の管理に用いられ、現時点でメモリ20がどのように使用されているかを表す。Memory Mapは、Memory Mapエントリと呼ばれるデータ構造の集合である。
メモリ領域情報通知部106は、OSからメモリ情報通知要求を受信するとMemory Mapのエントリを作成する。
図7は実施形態の一例としての情報処理装置1におけるMemory Mapエントリの設定値を説明するための図であり、Memory Space Mapに備えられる項目(field)とその値(value)とを対応付けて示す。
この図7に示す例においては、Memory Mapに備えられる項目(field)として、Type,Start,EndおよびAttributeを示している。これらの項目は、Memory Mapに備えられる項目の少なくとも一部を示す。
Typeは、本エントリで表現するメモリ領域の種別を表し、プログラムによる使用用途を示す。
Typeのvalueには、UEFI仕様のEFI_MEMORY_TYPEにおいて規定される値が用いられる。
例えば、メモリ領域情報通知部106は、このTypeにおいて、エントリを新規作成(追加も含む)する際は、全てEfiConventionalMemoryを設定する。
MemoryMapを初期化する際に、MemoryMapの各エントリは、MemorySpaceMapのGcdMemoryTypeがEfiGcdMemoryTypeSystemMemoryとなっているエントリに記載されている領域にのみ作成される。
メモリ領域情報通知部106は、OSからメモリ情報の通知要求(メモリ情報通知要求)を受けった場合に、MemorySpaceMapのGcdMemoryTypeがEfiGcdMemoryTypeReservedとなっている領域に対応するエントリを追加する。
また、メモリ領域情報通知部106は、UEFIが動作中にメモリが枯渇した場合にも、MemorySpaceMapのGcdMemoryTypeがEfiGcdMemoryTypeReservedとなっている領域に対応するエントリを追加する。これにより、メモリ20のメモリ領域が不足した場合に、演算処理用メモリ領域20bを使用することを可能にし、本情報処理装置1の起動処理を確実に実行することができる。
さらに、メモリ領域情報通知部106は、メモリディスクリプタ(Memory Descriptor)の作成を行なう。Memory DescriptorはUEFI処理部100からOSに対して通知される情報であり、例えば、MemoryMapに基づいて作成される。Memory Descriptorは、Memory Descriptorエントリと呼ばれるデータ構造の集合である。
図8は実施形態の一例としての情報処理装置1におけるMemory Descriptorエントリの設定値を説明するための図であり、Memory Descriptorに備えられる項目(field)とその値(value)とを対応付けて示す。
この図8に示す例においては、Memory Descriptorに備えられる項目(field)として、Type,PhysicalStart,VirtualStartおよびNumberOfPagesを示している。これらの項目は、Memory Descriptorに備えられる項目の少なくとも一部を示す。
Typeは、本エントリで表現するメモリ領域の種別を表し、プログラムによる使用用途を示す。
Typeのvalueには、UEFI仕様のEFI_MEMORY_TYPEにおいて規定される値が用いられる。例えば、演算処理用メモリ領域20bに対して、EfiConventionalMemoryが設定される。これにより、OSが演算処理用メモリ領域20bを使用することが可能となる。なお、OS処理用メモリ領域20aに対しては、メモリ20の確保方法に対応した値が設定される。
図9は実施形態の一例としての情報処理装置1におけるSEC処理部102,PEI処理部103,DXE処理部104およびOSにおいてそれぞれ使用されるデータの関係を示す図である。
設定パラメータ220は、事前に作成されROM21に格納される。この設定パラメータ220はメモリ領域通知用HOBの作成に用いられる。
メモリ領域通知用HOBは、PEI処理部103(メモリ領域通知用HOB作成部105)によって作成され、メモリ20のOS処理用メモリ領域20aに格納される。メモリ領域通知用HOBは、OS処理用メモリ領域20aを介してDXE処理部104に通知される。
メモリ領域通知用HOBは、Memory Space Mapの作成に用いられる。Memory Space Mapは、DXE処理部104で認識するメモリ20の構成情報であって、DXE処理部104によって生成される。Memory Space Mapは、メモリ20のOS処理用メモリ領域20aに格納される。
Memory Space Mapは、Memory Mapの作成に用いられる。Memory Mapはメモリ20の管理に用いられ、その時点において(現時点で)メモリ209がどのように使用されているかを表す。このMemory Mapは、DXE処理部104(メモリ領域情報通知部106)によってMemory Space Mapに基づき作成される。
Memory MapはMemory Descriptorの作成に用いられる。Memory Descriptorは、OSに通知されるメモリ情報である。Memory Descriptorは、UEFI仕様にて規定されるEFI_MEMORY_DESCRIPTORに従った構造を有する。
(B)動作
上述の如く構成された実施形態の一例としての情報処理装置1において、CPU10に電力が供給されると、各コア11はROM21に格納されたUEFI命令コード210を読み込み、読み込んだ命令コードの実行を開始する。すなわち、UEFIとしての機能が実行される。
UEFIは、起動されると任意の1つのコア11(例えば、コア11-1)のみを使用してOS起動処理を行なう。本情報処理装置1においては、OS起動処理用コアであるコア11-1がOS処理を担当し、その他のコア11-2~11-nが演算処理を行なうものとする。
実施形態の一例としての情報処理装置1におけるUEFI処理部100によるOS起動処理を、図10に示すシーケンス図に従って説明する。
SEC処理部102は、リセット処理(Reset Event)をハンドリングした後に、PEI処理部103を起動する(矢印A1参照)。
PEI処理部103においてメモリ領域設定部108は、設定パラメータ220を参照して、この設定パラメータ220に登録された情報に基づき、OS処理用メモリ領域20aおよび演算処理用メモリ領域20bを認識する。そして、PEI処理部103は、全メモリ領域を初期化する(矢印A2参照)。
PEI処理部103においてメモリ領域通知用HOB作成部105は、OS処理用メモリ領域20aを使用可能、且つ、演算処理用メモリ領域20bを使用不可能と設定した、メモリ領域通知用HOB(第1通知情報)を作成する(矢印A3参照)。メモリ領域通知用HOB作成部105は、作成したメモリ領域通知用HOBをOS処理用メモリ領域20aに格納する。
PEI処理部103は、UEFI(DXE)213のイメージをOS処理用メモリ領域20aにコピーする(矢印A4参照)。
このように、PEI処理部103は、OS処理用メモリ領域通知用HOBやUEFI(DXE)213のイメージの格納にはOS処理用メモリ領域20aを用い、演算処理用メモリ領域通知用HOBは用いない。
その後、PEI処理部103は、UEFI(DXE)213をコア11-1に実行させることで、DXE処理部104を起動する(矢印A5参照)。
DXE処理部104は、メモリ領域通知用HOBで使用可能と通知されたメモリ領域(OS処理用メモリ領域20a)から、適宜、使用する領域を確保する(矢印A6参照)。その後、DXE処理部104はOSをロードさせて起動する(矢印A7参照)。
OSは、DXE処理部104に対して、メモリ情報通知要求を送信する(矢印A8参照)。このメモリ情報通知要求に対して、DXE処理部104のメモリ領域情報通知部106は、メモリ領域通知用HOBで使用可能と通知されたメモリ領域(OS処理用メモリ領域20a)のうち、DXE処理部104で既に使用済みの領域と未使用の領域とを通知する。さらに、メモリ領域情報通知部106は、メモリ領域通知用HOBで使用不可能と通知されたメモリ領域(演算処理用メモリ領域20b)を、使用可能、且つ、未使用領域としてOSに通知する(矢印A9参照)。
この演算処理用メモリ領域20bを、使用可能、且つ、未使用領域として示す情報が第2通知情報に相当する。
OSは、適宜、OS処理用メモリ領域20aを確保して処理を行なう(矢印A10参照)。また、OSは、例えば、演算処理を行なう各コア11-2~11-nに対して、演算処理の起動を指示する(矢印A11参照)。演算処理プロセスにおいては、演算処理用メモリ領域20bにおける領域の確保をOSに対して要求する(矢印A12)。
OSはこの要求に応じて演算処理用メモリ領域20bにおける領域を確保し、演算処理プロセスに応答する(矢印A13参照)。
次に、実施形態の一例としての情報処理装置1におけるPEI処理部103による処理を、図11に示すフローチャート(ステップB1~B5)に従って説明する。
ステップB1において、PEI処理部103のメモリ領域通知用HOB作成部105は設定パラメータ220の値を取得する。
ステップB2において、メモリ領域通知用HOB作成部105は、OS処理用メモリ領域20aに対応するメモリ領域通知用HOB(OS処理用メモリ領域通知用HOB)を作成する。作成したOS処理用メモリ領域通知用HOBはOS処理用メモリ領域20aに格納する。
ステップB3において、メモリ領域通知用HOB作成部105は、演算処理用メモリ領域20bに対応するメモリ領域通知用HOB(演算処理用メモリ領域通知用HOB)を作成する。作成した演算処理用メモリ領域通知用HOBはOS処理用メモリ領域20aに格納する。
ステップB4において、PEI処理部103は、UEFI(DXE)213をOS処理用メモリ領域20aにロードする。
ステップB5において、PEI処理部103は、UEFI(DXE)213をコア11-1に実行させることで、DXE処理部104を起動させる。
また、PEI処理部103は、ステップB2,B3において作成し、OS処理用メモリ領域20aに格納したメモリ領域通知用HOBの先頭アドレスをDXE処理部104に通知し、処理を終了する。
次に、実施形態の一例としての情報処理装置1におけるDXE処理部104によるOS起動処理を、図12に示すフローチャート(ステップC1~C4)に従って説明する。
ステップC1において、DXE処理部104は、OS処理用メモリ領域20aに格納されたメモリ領域通知用HOBを取得する。
ステップC2において、DXE処理部104は、メモリ領域通知用HOBの情報に基づき、Memory Space MapおよびMemory Mapを作成する。
ステップC3において、DXE処理部104は、OSのロード処理を行なう。この処理にはUEFIドライバのロードも含まれる。DXE処理部104は、Memory Mapの情報に基づいて適宜メモリ領域を確保する。メモリ領域が枯渇すると、DXE処理部104は、Memory Space MapのReserved領域をMemory Mapに追加し、そこからメモリ領域を確保する。
その後、ステップC4において、DXE処理部104はOSを起動する。これによりOSの起動処理が終了する。
次に、実施形態の一例としての情報処理装置1におけるDXE処理部104によるメモリ情報の通知処理を、図13に示すフローチャート(ステップD1~D3)に従って説明する。
ステップD1において、DXE処理部104のメモリ領域情報通知部106は、Memory Space MapのReserved領域をMemory Mapに追加することでエントリを作成する。
ステップD2において、メモリ領域情報通知部106は、Memory Mapの情報に基づき、Memory Descriptorを作成する。
ステップD3において、メモリ領域情報通知部106は、Memory Descriptorの先頭アドレスをOSに通知する。これによりDXE処理部104(メモリ領域情報通知部106)によるメモリ情報の通知処理は終了する。
(C)効果
このように、実施形態の一例としての情報処理装置1によれば、本情報処理装置1の起動プロセスにおいて、PEIフェーズにおいてメモリ領域通知用HOB作成部105が演算処理用メモリ領域20bを使用不可能と設定したメモリ領域通知用HOB(演算処理用メモリ領域通知用HOB)をDXE処理部104に通知する。
これにより、DXEフェーズにおいて、DXE処理部104は、メモリ20におけるOS処理用メモリ領域20aのみを使用可能な領域として認識する。すなわち、UEFI処理部100が、情報処理装置1の起動時において、OS処理用メモリ領域20aのみを用いてOSのロードを実現する。
従って、UEFI処理部100がメモリ20における演算処理用メモリ領域20bを使用することを阻止することができ、メモリ20の演算処理用メモリ領域20bにUEFI処理部100の使用による断片化の発生を抑制することができる。
また、DXEフェーズにおいて、メモリ領域情報通知部106は、メモリ領域通知用HOBによって使用不可能と通知されたメモリ領域、すなわち演算処理用メモリ領域20bを、使用可能、且つ、未使用領域としてOSに通知する。これにより、OSがメモリ20における演算処理用メモリ領域20bを使用することができるようになる。すなわち、メモリ領域情報通知部106は、CPU10に演算処理用メモリ領域20bを解放して使用可能な状態にする。これにより、OSや演算処理に影響を与えることがない。
(D)その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
プロセッサとメモリとを備えた情報処理装置であって、
当該情報処理装置の起動処理において、
前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定する設定部と、
前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成する作成部と、
前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動する起動処理部と、
起動された前記オペレーティングシステムから発行されるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する応答部と
を備えることを特徴とする、情報処理装置。
(付記2)
前記作成部が、作成した前記第1通知情報を前記第1記憶領域に格納し、
前記起動処理部が、前記第1記憶領域から前記第1通知情報を読み出す
ことを特徴とする、付記1記載の情報処理装置。
(付記3)
プロセッサとメモリとを備えた情報処理装置の起動時においてオペレーティングシステムをロードさせるロードプログラムであって、
前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定し、
前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成し、
前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動し、
起動された前記オペレーティングシステムから発行されるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する
処理を前記プロセッサに実行させることを特徴とする、ロードプログラム。
(付記4)
作成した前記第1通知情報を前記第1記憶領域に格納し、
前記第1記憶領域から読み出した前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動を読み出す
ことを特徴とする、付記3記載のロードプログラム。
(付記5)
プロセッサとメモリとを備えた情報処理装置の起動時において、
前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定する処理と、
前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成する処理と、
前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動する処理と、
起動された前記オペレーティングシステムから発行されるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する処理と
を備えることを特徴とする、ロード方法。
(付記6)
作成した前記第1通知情報を前記第1記憶領域に格納する処理を備え、
前記第1記憶領域から読み出した前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動を読み出す
ことを特徴とする、付記5記載のロード方法。
1 情報処理装置
10 CPU
11-1~11-n,11 コア
12-1~12-m,12 MAC
20 主記憶装置,メモリ
20a OS処理用メモリ領域
20b 演算処理用メモリ領域
21 ROM
22 記憶装置
100 UEFI処理部
101 メモリ管理部
102 SEC処理部
103 PEI処理部
104 DXE処理部
105 メモリ領域通知用HOB作成部
106 メモリ領域情報通知部
107 OS処理部
108 メモリ領域設定部
210 UEFI命令コード
211 UEFI(SEC)
212 UEFI(PEI)
213 UEFI(DXE)
214 OS命令コード
220 設定パラメータ

Claims (7)

  1. プロセッサとメモリとを備えた情報処理装置であって、
    当該情報処理装置の起動処理において、
    前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定する設定部と、
    前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成する作成部と、
    前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動する起動処理部と、
    起動された前記オペレーティングシステムから発行されて前記オペレーティングシステムが使用できる前記メモリの記憶領域を問い合わせるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する応答部と
    を備えることを特徴とする、情報処理装置。
  2. 前記第1通知情報に基づき、前記第1記憶領域に領域を確保してファームウェアの一部をロードする処理部をさらに備え、
    前記起動処理部は、前記ファームウェアを実行して前記第1記憶領域において前記オペレーティングシステムをロードして前記オペレーティングシステムを起動する、
    ことを特徴とする、請求項1に記載の情報処理装置。
  3. 前記作成部が、作成した前記第1通知情報を前記第1記憶領域に格納し、
    前記起動処理部が、前記第1記憶領域から前記第1通知情報を読み出す
    ことを特徴とする、請求項1又は2に記載の情報処理装置。
  4. プロセッサとメモリとを備えた情報処理装置の起動時においてオペレーティングシステムをロードさせるロードプログラムであって、
    前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定し、
    前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成し、
    前記第1通知情報に基づき、前記第1記憶領域に領域を確保して前記オペレーティングシステムを起動し、
    起動された前記オペレーティングシステムから発行されて前記オペレーティングシステムが使用できる前記メモリの記憶領域を問い合わせるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する
    処理を前記プロセッサに実行させることを特徴とする、ロードプログラム。
  5. 前記第1通知情報に基づき、前記第1記憶領域に領域を確保してファームウェアの一部をロードする、
    処理を前記プロセッサに実行させ、
    前記オペレーティングシステムを起動する処理は、
    前記ファームウェアを実行して前記第1記憶領域において前記オペレーティングシステムをロードして前記オペレーティングシステムを起動する、
    処理を含むことを特徴とする、請求項4に記載のロードプログラム。
  6. プロセッサとメモリとを備えた情報処理装置の起動時において、
    前記メモリの記憶領域に、前記記憶領域よりも小さい第1記憶領域および第2記憶領域を設定する処理と、
    前記第2記憶領域が使用不可能であり且つ前記第1記憶領域が使用可能であることを通知する第1通知情報を作成する処理と、
    前記第1通知情報に基づき、前記第1記憶領域に領域を確保してオペレーティングシステムを起動する処理と、
    起動された前記オペレーティングシステムから発行されて前記オペレーティングシステムが使用できる前記メモリの記憶領域を問い合わせるメモリ情報通知要求に応じて、前記第2記憶領域を使用可能であることを通知する第2通知情報を応答する処理と
    を前記プロセッサが実行することを特徴とする、ロード方法。
  7. 前記第1通知情報に基づき、前記第1記憶領域に領域を確保してファームウェアの一部をロードする、
    処理を前記プロセッサが実行し、
    前記オペレーティングシステムを起動する処理は、
    前記ファームウェアを実行して前記第1記憶領域において前記オペレーティングシステムをロードして前記オペレーティングシステムを起動する、
    処理を含むことを特徴とする、請求項6に記載のロード方法。
JP2018100420A 2018-05-25 2018-05-25 情報処理装置,ロードプログラムおよびロード方法 Active JP7067270B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018100420A JP7067270B2 (ja) 2018-05-25 2018-05-25 情報処理装置,ロードプログラムおよびロード方法
US16/407,246 US11061691B2 (en) 2018-05-25 2019-05-09 Suppression of memory area fragmentation caused by booting an operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018100420A JP7067270B2 (ja) 2018-05-25 2018-05-25 情報処理装置,ロードプログラムおよびロード方法

Publications (2)

Publication Number Publication Date
JP2019204403A JP2019204403A (ja) 2019-11-28
JP7067270B2 true JP7067270B2 (ja) 2022-05-16

Family

ID=68613707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018100420A Active JP7067270B2 (ja) 2018-05-25 2018-05-25 情報処理装置,ロードプログラムおよびロード方法

Country Status (2)

Country Link
US (1) US11061691B2 (ja)
JP (1) JP7067270B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015144008A (ja) 2015-03-13 2015-08-06 日本電気株式会社 情報処理装置、及び、情報処理方法
US20160283250A1 (en) 2015-03-24 2016-09-29 Fujitsu Limited Boot controlling processing apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61157952A (ja) * 1984-12-28 1986-07-17 Matsushita Electric Ind Co Ltd システム起動方法
US6385721B1 (en) * 1999-01-22 2002-05-07 Hewlett-Packard Company Computer with bootable hibernation partition
US6643754B1 (en) * 2000-02-15 2003-11-04 International Business Machines Corporation System and method for dynamically allocating computer memory
JP3702233B2 (ja) 2002-02-21 2005-10-05 株式会社東芝 情報処理システムおよびプログラム実行モード制御方法
KR101115486B1 (ko) * 2003-08-08 2012-02-27 엘지전자 주식회사 컴퓨터 시스템의 부팅 제어 장치 및 방법
CN101506793B (zh) * 2006-08-23 2012-09-05 陈锦夫 在动态虚拟记忆中运行操作系统
JP2008158964A (ja) 2006-12-26 2008-07-10 Nec Access Technica Ltd メモリ用アドレスマッピング方法、それを適用したメモリデバイス
KR100894251B1 (ko) * 2006-12-28 2009-04-21 삼성전자주식회사 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법
US7577814B1 (en) * 2006-12-29 2009-08-18 American Megatrends, Inc. Firmware memory management
JP4988008B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ
CN103430147B (zh) * 2011-03-18 2016-03-30 富士通株式会社 信息处理装置及信息处理装置的控制方法
US20120303927A1 (en) * 2011-05-24 2012-11-29 Richard Goldberg Memory allocation using power-of-two block sizes
JP6083136B2 (ja) * 2012-06-22 2017-02-22 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US8909980B1 (en) * 2012-06-29 2014-12-09 Emc Corporation Coordinating processing for request redirection
US9201662B2 (en) * 2013-03-29 2015-12-01 Dell Products, Lp System and method for pre-operating system memory map management to minimize operating system failures
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US20160041782A1 (en) * 2014-08-07 2016-02-11 Randall Deetz Storage Device Copying of a larger system to a smaller system
JP6589417B2 (ja) * 2015-07-03 2019-10-16 富士通株式会社 起動制御プログラム、起動制御方法及び起動制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015144008A (ja) 2015-03-13 2015-08-06 日本電気株式会社 情報処理装置、及び、情報処理方法
US20160283250A1 (en) 2015-03-24 2016-09-29 Fujitsu Limited Boot controlling processing apparatus
JP2016181106A (ja) 2015-03-24 2016-10-13 富士通株式会社 情報処理装置、およびプログラム

Also Published As

Publication number Publication date
JP2019204403A (ja) 2019-11-28
US11061691B2 (en) 2021-07-13
US20190361709A1 (en) 2019-11-28

Similar Documents

Publication Publication Date Title
US7185189B2 (en) Method of storing BIOS modules and transferring them to memory for execution
US8281116B2 (en) System and method for utilizing a protected/hidden region of semiconductor based memory/storage
EP3230873B1 (en) Computing method and apparatus with persistent memory
US20030233534A1 (en) Enhanced computer start-up methods
US10860307B2 (en) Fragmented firmware storage system and method therefor
US8112620B2 (en) Method and system for discovery of a root file system
US20150278068A1 (en) Initialization trace of a computing device
US8285978B2 (en) Storage medium storing master boot record, computer system having the same and booting method of the computer system
JP2016167143A (ja) 情報処理システムおよび情報処理システムの制御方法
TWI417789B (zh) 電腦系統及啟動方法
TWI517047B (zh) 用於更快速開機之釘選開機資料
US11461178B2 (en) System and method to prevent endless machine check error of persistent memory devices
US20230112734A1 (en) Modular firmware updates in an information handling system
WO2011082653A1 (zh) 用于多存储器的控制器、终端设备及其启动和访问方法
JP6065115B2 (ja) マシン提供方法,マシン提供システム,およびマシン提供プログラム
JP7067270B2 (ja) 情報処理装置,ロードプログラムおよびロード方法
US9542207B2 (en) Plurality of interface files usable for access to BIOS
US9965334B1 (en) Systems and methods for virtual machine storage provisioning
US20220374256A1 (en) Information processing system, information processing apparatus, method of controlling the same, and storage medium
TWI662419B (zh) 具有儲存實體資源的本地磁碟的網路系統
US20120005464A1 (en) Start up processing method, information processing apparatus, and computer-readable storage medium storing program
JP5673844B2 (ja) 情報処理装置,基本システム起動方法,及び基本システム起動プログラム
US9760661B2 (en) Providing virtual optical disk drive
WO2014091629A1 (ja) 記憶装置の管理プログラム、電子装置及び記憶装置の管理方法
US8533447B2 (en) Method and device for modular configuration deployment at run time

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220411

R150 Certificate of patent or registration of utility model

Ref document number: 7067270

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150