WO2010058440A1 - メモリ初期化方法、メモリ初期化プログラム - Google Patents

メモリ初期化方法、メモリ初期化プログラム Download PDF

Info

Publication number
WO2010058440A1
WO2010058440A1 PCT/JP2008/003390 JP2008003390W WO2010058440A1 WO 2010058440 A1 WO2010058440 A1 WO 2010058440A1 JP 2008003390 W JP2008003390 W JP 2008003390W WO 2010058440 A1 WO2010058440 A1 WO 2010058440A1
Authority
WO
WIPO (PCT)
Prior art keywords
area
kernel
initialization
storage device
main storage
Prior art date
Application number
PCT/JP2008/003390
Other languages
English (en)
French (fr)
Inventor
▲高▼井徹男
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2010539051A priority Critical patent/JP5158206B2/ja
Priority to PCT/JP2008/003390 priority patent/WO2010058440A1/ja
Publication of WO2010058440A1 publication Critical patent/WO2010058440A1/ja
Priority to US13/095,396 priority patent/US8423757B2/en

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

Definitions

  • FIG. 2 is a diagram showing a conventional memory initialization process by hardware provided in a computer.
  • the computer 1 shown in FIG. 2 includes three CPUs 10 (10-1, 10-2, 10-3), a memory 20, a ROM 30 in which firmware 31 is stored, and an external storage device 40 in which an OS 41 is stored.
  • the computer 1 is a multiprocessor computer including three CPUs 10.
  • FIG. 2 conventionally, even in a computer 1 having a multiprocessor configuration, one CPU 10 executes firmware and performs memory initialization processing.
  • FIG. 4 is a diagram showing a problem when the page size is 4 MB. As shown in FIG. 4, when 1 MB of data is written on a 4 MB page 23, a 3 MB unused area is generated on the page 23. Such a decrease in page use efficiency becomes more prominent as the page size is increased.
  • Japanese Laid-Open Patent Publication No. 10-260819 Japanese Unexamined Patent Publication No. 2007-264978 Japanese Laid-Open Patent Publication No. 10-260819 Japanese Unexamined Patent Publication No. 2007-264978
  • An object of the present invention is to speed up the time required for memory initialization processing in a computer boot sequence.
  • the memory initialization method of the present invention is premised on a memory initialization method in a boot sequence of a computer having a plurality of CPUs.
  • the CPU includes a CPU core mounted on a one-chip CPU. That is, in the present invention, when expressed as a plurality of CPUs, this has the same meaning as a plurality of CPU cores.
  • the memory initialization is performed by executing the firmware stored in the first storage means by the first CPU, and the first area necessary for the operation of the firmware on the main storage device And a step of initializing a second area necessary for starting the kernel, and execution of the firmware by the first CPU, loading the kernel stored in the second storage means into the second area,
  • the step of starting and executing the kernel by the second CPU, the kernel executed by the second CPU, and the firmware executed by the first CPU are executed in parallel on the remaining memory on the main storage device. And executing a process including initialization of the area.
  • FIG. 5A is a flowchart showing the procedure of the boot sequence of this embodiment.
  • the same step numbers as in FIG. 1A are assigned to steps that perform the same processing as in FIG.
  • the boot sequence shown in FIG. 5A is based on the boot sequence of a computer having a plurality of CPUs or CPU cores.
  • CPU when it is described as CPU, it includes CPU core.
  • the memory initialization processing in the kernel initial setting in step S3 is shared by the firmware 131 and the kernel, and each is executed by separate CPUs, whereby the memory initialization is performed by parallel processing.
  • the boot sequence method of the present embodiment makes it possible to shorten the time required for kernel initial setting (boot processing).
  • FIG. 6 is a flowchart showing the flowchart of FIG. 5A in more detail.
  • the same step numbers are assigned to the same steps as those in FIG.
  • FIG. 7 is a diagram showing an initialization part of the main memory 20 at each step in step S13 of the flowchart of FIG.
  • the kernel initial setting (boot process) in step S13 first, memory initialization by the firmware 131 is executed (step S131a).
  • memory initialization an area on the main memory 20 necessary for the firmware 131 to operate (area 20a-1 in FIG. 7) and a minimum area necessary for kernel activation (area 20a-2 in FIG. 7) Is initialized. Then, the kernel is loaded in the area 20a-2.
  • step S131C kernel activation
  • step S131b memory initialization by the firmware 131
  • the activated kernel initializes the area after the area 20a of the main memory 20 (area 20b in FIG. 7) (step S132).
  • the firmware 131 initializes the remaining part of the area 20a (area 20a-3 in FIG. 7) (step S131b).
  • step S131c and step S132 and execution of step S131b are performed in parallel by separate CPUs mounted on the computer. Accordingly, a part of the region 20a-3 and the region 20b are initialized simultaneously by the parallel processing.

Landscapes

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

Abstract

 複数のCPUまたは複数のCPUコアを備えたコンピュータにおいて、そのコンピュータブートシーケンスにおけるメモリ初期化処理を、ファームウェアとカーネルで並列実行する。このとき、ファームウェアとカーネルは、それぞれ、別々のCPUまたはCPUコアで実行させる。これにより、コンピュータのブートシーケンスにおけるメモリ初期化の所要時間が短縮される。

Description

メモリ初期化方法、メモリ初期化プログラム
 本発明は、情報処理装置の電源投入時におけるブートシーケンスに係り、特に、ブートシーケンスにおいて情報処理装置の主記憶装置を初期化するメモリ初期化方法、メモリ初期化プログラム及び情報処理装置に関する。
 コンピュータ等の情報処理装置は、電源が投入されることにより、オペレーティングシステム(OS)のカーネルが起動され、アプリケーションプログラムの利用が可能となる。この電源が投入されてからオペレーティングシステムが起動されるまでの一連の動作は、一般に、ブートシーケンスと呼ばれる。ここで、カーネルとは、オペレーティングシステムの中核に位置し、特権モードで動作するプログラムを指す。但し、オペレーティングシステムの種類によってカーネルの定義はまちまちであるので、オペレーティングシステムのどの部分までがカーネルに含まれるかどうかの定義は、各オペレーティングシステムの設計方針に従うものとする。
 図1は、ブートシーケンスを示す図である。
 図1(a)はブートシーケンスの手順を示すフローチャートである。
 ブートシーケンスにおいて、まず、POST(Power On Self Test)診断が実行される(ステップS1)。このPOSTは、例えば、BIOS(Basic Input/Output System)により実行される。BIOSは、例えば、ROM(Read Only Memory)、PROM(Programmable ROM)又はフラッシュメモリ等に格納されている。POSTにおいては、演算処理装置としてのCPU、メインメモリ(主記憶装置)、ディスクコントローラ、シリアル/パラレルポート、キーボードコントローラなどの、情報処理装置としてのコンピュータを構成するハードウェアデバイスが正常に機能しているかどうかの確認が行われる。
 次に、CPUがROM等に格納されているファームウェアを起動する(ステップS2)。CPUにより起動・実行されたファームウェアは、カーネル初期設定(ブート処理)を行い、メインメモリの初期化を実行する(ステップS3)。
 このカーネル初期設定(ブート処理)の詳細を図1(b)に示す。
 ブート処理において、まず、ファームウェアにより、メインメモリの初期化が行われる(ステップS31)。このメモリ初期化においては、図1(c)に模式的に示すように、メインメモリ20の先頭から、順次、メインメモリが初期化されていく。メモリ初期化においては、「仮想アドレス(論理アドレス)から物理アドレス(実アドレス)へのマッピング」、「ページテーブルの作成」などが行われる。尚、ここで、仮想アドレスとは、仮想記憶方式のコンピュータおける仮想空間上でのアドレスのことである。このメモリ初期化の詳細については後述する。カーネル初期設定において、次に、ブートプログラムにより、外部記憶装置からカーネルがメインメモリにロードされ、カーネルが起動される。カーネルは、自分自身の初期化、カーネルモジュールとデバイスドライバのメインメモリのロードを行い、最後に、initプロセスを生成・起動する(ステップS32)。
 initプロセスは、init処理を実行する(ステップS4)。init処理において、initプロセスは、ハードディスクの正常確認や、デーモン(バックグラウンドで実行するプロセス)の起動などを行い、最後にログインマネージャの起動を行う。
 図2は、コンピュータが備えるハードウェアによる従来のメモリ初期化処理を示す図である。
 図2に示すコンピュータ1は、3つのCPU10(10-1、10-2、10-3)、メモリ20、ファームウェア31が格納されたROM30、OS41が格納された外部記憶装置40を備えている。このように、コンピュータ1は、3つのCPU10を備えたマルチプロセッサ構成の計算機である。図2に示すように、従来は、マルチプロセッサ構成のコンピュータ1であっても、1つのCPU10がファームウェアを実行してメモリ初期化処理を行っていた。
 図3は、メモリ初期化処理の詳細を示す図である。
 以下、図3を参照しながら、メモリ初期化処理の手順を説明する。
 図3に示すCPU10は、ALU(Arithmetic Logical Unit:算術論理演算ユニット)等の演算ユニット11とMMU(Memory Management Unit:メモリ管理ユニット)12を備えている。MMU12は、仮想アドレスを物理アドレスに変換するアドレス変換機能やメモリ保護機能を備えている。MMU12は、該アドレス変換機能を行う回路であるTLB(Translation Look-aside Buffer)121を備えている。この例のMMU12は、2つのTLB121(121-1、121-2)を備えている。
 以下、図3を参照しながらメモリ初期化の手順を説明する。
(1)ファームウェア(Bootプログラム)31は、メインメモリ20の物理アドレスと仮想アドレスのマッピング情報を格納する変換テーブル50を作成する。
(2)MMU12は、該変換テーブル50を参照し、仮想アドレスを物理アドレスに変換する処理を実施する。
(3)MMU12は、上記変換結果(仮想アドレスと物理アドレスの対応付け)をTLB121に格納する。
(4)ファームウェア31は、メインメモリ(物理メモリ)20上に、メインメモリ20の物理アドレスと、メインメモリ20上に作成されるページPA1、PA2、PA3、・・・のサイズ(ページテーブルサイズ)を管理するページテーブル21を作成する。ここで、ページPA1、PA2、PA3、・・・は、仮想記憶方式で管理されるメインメモリ20に格納されるデータのアクセス単位である。
 コンピュータ1において、演算ユニット11は、目的とするデータを取得するためにメインメモリ20にアクセスする際、TLB121を参照して、該目的とするデータの仮想アドレスを物理アドレスに変換する。そして、その変換により得られた物理アドレスを用いて、メインメモリ20をアクセスし、メインメモリ20から目的とするデータを読み出す。
 従来は、コンピュータに搭載されるメインメモリの容量は小さかったため、メインメモリの初期化は、上記ファームウェアのみによる初期化だけで実用上問題はなかった。しかしながら、近年は、半導体メモリの集積化技術の進歩に伴い、コンピュータに搭載されるメインメモリの容量も増大している。これに伴い、メモリ初期化に要する時間も増大し、OSの起動、すなわち、コンピュータのシステムが起動するまでの時間が遅くなってきている。
 これは、従来のファームウェアによるメモリ初期化手法が、下記(1)~(3)の問題点を有しているためであると考えられる。
(1)メモリ初期化に要する時間は、メインメモリの容量(メインメモリサイズ)に依存する。
(2)カーネルの起動初期にメインメモリの全域が初期化されている必要がないにもかかわらず、メインメモリの全域を初期化している。
(3)ファームウェアの実行を一つのCPUで行っているため、ファームウェアによるメモリ初期化の並列処理が実行できず、メモリ初期化処理は逐次実行により行われる。
 上記システム起動の遅延問題に対して、現在は、主に、メモリ初期化時に初期化単位(ページサイズ)を大きくする手法を採用することで対処している。
 例えば、メインメモリを、ページサイズを8KB(キロバイト)単位と4MB(メガバイト)単位で初期化する場合を比較すると、下記の表1に示すように、初期化回数に圧倒的な差が生じる。
Figure JPOXMLDOC01-appb-T000001
 表1に示すように、メインメモリの容量が1GB(ギガバイト)であった場合、8KB単位で初期化した場合の初期化回数は13万1,072回になるが、4MB単位で初期化した場合には256回で済む。
 仮想記憶方式の場合、データの書き込みはページ単位で行われる。したがって、単純にページサイズを増大させると、メインメモリの領域の使用効率の低下を招くという問題が発生する。
 図4は、ページサイズを4MBとした場合の問題点を示す図である。
 図4に示すように、4MBのページ23に1MBのデータを書き込んだ場合、ページ23に3MBの未使用域が生じてしまう。このようなページの使用効率の低下は、ページサイズを大きくすればするほど顕著になってくる。
特開平10-260819号公開公報 特開2007-264978号公開公報
 本発明の目的は、コンピュータのブートシーケンスにおけるメモリ初期化処理に要する時間を高速化することである。
 本発明のメモリ初期化方法は、複数のCPUを備えるコンピュータのブートシーケンスにおけるメモリ初期化方法を前提とする。ここで、CPUには、1チップのCPUに搭載れるCPUコアも含まれるものとする。すなわち、本発明において複数のCPUと表現する場合、これは複数のCPUコアと同じ意味を持つものとする。
 本発明のメモリ初期化方法は、メモリ初期化を、第1のCPUによる第1の記憶手段に格納されているファームウェアの実行により、主記憶装置上の該ファームウェアの動作に必要な第1の領域とカーネル起動に必要な第2の領域を初期化するステップと、前記第1のCPUによる前記ファームウェアの実行により、第2の記憶手段に格納されているカーネルを前記第2の領域にロードし、該カーネルを第2のCPUに起動・実行させるステップと、該第2のCPUにより実行されるカーネルと前記第1のCPUにより実行されるファームウェアが、並行して、前記主記憶装置上の残りの領域の初期化を実行するステップと、を含む処理により実行する。
 前記第1の記憶手段は、例えば、ROM(Read Only Memory)やフラッシュメモリなどの不揮発性メモリである。また、前記第2の記憶手段は、例えば、HDD(Hard Disk Drive) などの外部記憶装置やCD(Compact Disc)などの可搬型記憶媒体である。
 本発明の初期化方法によれば、ファームウェアとカーネルが、主記憶装置の初期化を分担して並行して実行するので、主記憶装置の初期化に要する時間を従来よりも短縮できる。この時間短縮の効果は、主記憶装置の容量が大きくなるほど顕著となる。
ブートシーケンスを示す図である。 コンピュータが備えるハードウェアによる従来のメモリ初期化処理を示す図である。 メモリ初期化処理の詳細を示す図である。 ページサイズを4MBとした場合の問題点を示す図である。 (a)~(c)は、ブートシーケンス方法の一実施形態を示す図である。 図5(a)のフローチャートを、より詳細したフローチャートである。 図6のフローチャートのステップS13内の各ステップおけるメインメモリの初期化部分を示す図である。 本実施形態のメモリ初期化方法を実施するコンピュータのハードウェア構成を示す図である。 本実施形態の第1の実施例によるメモリ初期化方法を示す図である。 本実施形態の第2の実施例によるメモリ初期化方法チを示す図である。 第2の実施例によりメインメモリ上に作成されるページテーブルとページを示す図である。 第3の実施例によるメモリ初期化の方法を示す図である。 第3の実施例によるメモリ初期化方法を実行するコンピュータのハードウェア構成を示す図である。
 以下、図面を参照しながら、本実施形態を説明する。
 [本実施形態のブートシーケンス方法]
 図5は、ブートシーケンス方法の一実施形態を示す図である。図5において、上述した図1と同じステップ及び構成要素には同じ符号を付与しており、これらについての説明は省略する。
 図5(a)は、本実施形態のブートシーケンスの手順を示すフローチャートである。このフローチャートにおいて、図1(a)と同じ処理を行うステップには、図1(a)と同様のステップ番号を付与している。
 図5(a)に示すブートシーケンスは、複数のCPUまたはCPUコアを備えるコンピュータのブートシーケンスを前提としている。以後の説明では、CPUと記述した場合、それはCPUコアも含むものとする。
本実施形態は、ステップS3のカーネル初期設定におけるメモリ初期化処理を、ファームウェア131とカーネルで分担し、それぞれを、別々のCPUで実行することで、メモリ初期化を並列処理により行う。このことにより、本実施形態のブートシーケンス方法は、カーネル初期設定(ブート処理)に要する時間を短縮することを可能にしている。
 図5(b)、(c)を参照しながら、上記並列処理の手順を、より詳細に説明する。
(1)まず、ファームウェア131が、メインメモリ(主記憶装置)20上のファームウェア動作とカーネル起動に必要な最小限の領域を初期化する(ステップS131a)。この領域は、図6(c)に示すメインメモリ20の前半部分の領域20aの一部である。
(2)ファームウェア31と、ファームウェア31により起動されたカーネルは、並行して、メモリ20の残りの初期化領域の初期化を実行する。この場合、ファームウェア31は領域20aの未初期化部分を、カーネルは、メインメモリ20の領域20a以外の領域20b(メインメモリ20の後半部分)を初期化する。
 {メモリ初期化の詳細}
 次に、図6と図7を参照しながら、図5のフローチャートのステップS13におけるメモリ初期化処理を、より詳細に説明する。
 図6は、図5(a)のフローチャートを、より詳細にしたフローチャートである。図6において、図5(a)のステップと同一のステップには同じステップ番号を付与している。
 図7は、図6のフローチャートのステップS13内の各ステップおけるメインメモリ20の初期化部分を示す図である。
 ステップS13のカーネル初期設定(ブート処理)において、まず、ファームウェア131によるメモリ初期化が実行される(ステップS131a)。このメモリ初期化により、メインメモリ20上の、ファームウェア131が動作するために必要な領域(図7の領域20a-1)とカーネル起動に必要な最低限の領域(図7の領域20a-2)が初期化される。そして、領域20a-2に、カーネルがロードされる。
 次に、カーネルの起動(ステップS131C)とファームウェア131によるメモリ初期化(ステップS131b)が並行して開始される。起動されたカーネルは、メインメモリ20の領域20a以降の領域(図7の領域20b)を初期化する(ステップS132)。また、ファームウェア131は、領域20aの残りの部分(図7の領域20a-3)を初期化する(ステップS131b)。ここで、ステップS131cとステップS132の実行と、ステップS131bの実行は、コンピュータに実装されている別々のCPUにより、並行して行われる。したがって、領域20a-3の一部と領域20bは、並行処理により、同時に初期化される。
 ここで、メインメモリ20の初期化領域を整理すると、メインメモリ20の初期化領域は、ファームウェア131が初期化する領域(図7の領域20a)と、カーネルが初期化する領域(図7の領域20b)に分割される。また、メインメモリ20の使用的側面を考慮すると、メインメモリ20は、ファームウェア131が使用する領域(図7の領域20a-1)と、OSが使用する領域(図7の領域20a-2、20a-3、20b)に分割される。
 {初期化境界の指定方法}
 本実施形態は、ファームウェアとカーネルにより、メモリ初期化を同時並列に実行する際、メインメモリ20の領域20aと領域20bの境界に着目する。すなわち、ファームウェアが初期化する領域とカーネルが初期化する領域の境界に着目する。ここで、この境界を、便宜上、「初期化境界」と定義する。この初期化境界は、図7においては初期化境界203として示されている。
 本実施形態では、初期化境界の指定として、下記に示す2種類の方法を用いる。
 第1の方法(方法1):ユーザが指定する。この場合、ユーザは、初期化境界の物理アドレス、または、初期化境界で分割される、メインメモリ20の2つの領域の割合(前記領域20aと前記領域20bの割合)を指定する。この指定は、例えば、ファームウェアのコマンドにより行う。
 第2の方法(方法2):初期化境界は、予め、固定的に定める。すなわち、例えば、前記初期化境界の物理アドレス、または、上記2つの領域の割合を既定値とする。
 [本実施形態のメモリ初期化方法を実施するコンピュータのハードウェア構成]
 図8は、上述した本実施形態のメモリ初期化方法を実施するコンピュータのハードウェア構成を示す図である。図8において、上述した図2の構成要素と同じ構成要素には同一の符号を付与しており、これらについては、詳しい説明は省略する。
 図8に示すコンピュータ100のハードウェア構成は、図2に示すコンピュータ1と同様である。両者の構成上の相違点は、ROMに格納されるファームウェアの内容と、外部記憶装置に格納されているOSのカーネルの内容である。コンピュータ100が備えるROM130に格納されているファームウェア131と、外部記憶装置140に格納されているOSのカーネルは、上述した図6の処理手順により、メインメモリ20の初期化を実施する。
 該処理手順において、ファームウェア131はCPU10-1により実行され、カーネルはCPU10-2により実行される。このとき、ファームウェア131とカーネルは、それぞれ、CPU10-1、10-2によって、並行して実行される。このとき、ファームウェア131とカーネルは、それぞれ、図7に示すメインメモリ20の領域20a-3と領域20bを、並行して同時に初期化する。この結果、領域20a-3と領域20bの初期化は、並列処理により実行される。
 このように、本実施形態では、コンピュータのブートシーケンスにおけるメモリ初期化において、メインメモリの一部の初期化を、ファームウェアとカーネルが分担して並列処理するので、メモリ初期化を高速化できる。
 [実施例]
 次に、上記実施形態の具体的な実施例を説明する。
 {初期化境界の設定に関する実施例}
 <デフォルト値による初期化が行われる実施例(第1の実施例)>
  まず、本実施形態の第1の実施例について説明する。第1の実施例は、メモリ初期化に関する設定を何もしない。
 図9に、第1の実施例によるメモリ初期化の方法を示す。
 本実施例の場合、図9(a)に模式的に示すように、コンピュータ100を起動する際、コンピュータ100に対して、メモリ初期化に関する設定を何も行わない。この場合、図9(b)に示す初期化境界のアドレス203はデフォルト値となる。また、ファームウェア131により初期化されるメインメモリ20の領域(領域20a-1、20a-2)とカーネルにより初期化されるメインメモリ20の領域(領域20b)のページサイズは同じサイズとなる。したがって、この実施例では、上述した図6に示すフローチャートのステップS13にしたがって、ファームウェア131とカーネルによるメインメモリ20の初期化が並行して実行されるのみであるこのため、初期化境界203の設定のための調整作業やページサイズの見積もりなどは不要となる。
 <チューニングにより初期化が行われる実施例(第2の実施例)>
 次に、本実施形態の第2の実施例を説明する。第2の実施例は、チューニングを行い、コンピュータの運用に最適なページサイズで、メインメモリの初期化を行う。
 図10に、第2の実施例によるメモリ初期化の方法を示す。
 本実施例では、上記チューニングに加え、初期化境界を設定することも可能である。ページサイズの指定と初期化境界の指定は、例えば、図10(a)に模式的に示すように、コンピュータ100へのコマンド入力により行う。この場合、図10(b)に示すように、ファームウェア131が初期化する領域(領域20a-3)のページサイズは固定となるが、カーネルが初期化する領域(領域20b)のページサイズは任意のサイズに指定可能である。この場合、初期化境界203を指定可能なので、カーネルが初期化する領域20bのページサイズに合わせて、初期化境界203を任意に設定することが可能となる。
 図11は、本実施例によるファームウェアとカーネルの並列実行によるメモリ初期化の一例を示す摸式図である。
 図11に示す例は、ファームウェア131が初期化するメインメモリ20の領域20a-3のページサイズが8KB(キロバイト)、カーネルが初期化する領域20bのページサイズが4MB(メガバイト)に指定された場合の例である。
 この場合、図11模式的に示すように、メインメモリ20の領域20a-3は、サイズが8KBのページ(物理ページ)201aによって複数に分割される。また、メインメモリ20の領域20bは、サイズが4MBのページ(物理ページ)201bによって複数に分割される。
 また、このとき、ファームウェア131とカーネルは、それぞれ、メインメモリ20上にページテーブル300a、300bを作成する。ページテーブル300aは、仮想記憶空間上の仮想ページを、メインメモリ20の領域20a-3上の物理ページ201aにマッピングするためのアドレス変換情報等を格納しているテーブルである。また、ページテーブル300bは、仮想記憶空間上の仮想ページを、メインメモリ20の領域20b上の物理ページ201bにマッピングするためのアドレス変換情報等を格納しているテーブルである。これらのページテーブル300a、300bの構成は、例えば、公知の仮想記憶技術で用いられるページテーブルと同様である。
 {カーネルによるメモリ初期化を並列処理する実施例(第3の実施例)}
 続いて、本実施形態の第3の実施例を説明する。第3の実施例は、カーネルによるメモリ初期化を並列処理により実行する。
 図12は、第3の実施例によるメモリ初期化の方法を示す図である。図12において、(a)は、図11(a)と同様である。したがって、第3の実施例においても、第2の実施例と同様に、「初期化境界の指定」と「ページサイズの指定」が、コンピュータ100でのコマンド入力等により行われる。但し、第3の実施例では、ファームウェア131が初期化するメインメモリ20の領域20a-3についてのみ、ページサイズを指定する。カーネルにより初期化されるメインメモリ20の領域20bのページサイズはデフォルト値である。
 第3の実施例においては、領域20bは2つの領域20b-1、20b-2に分割され、領域20b-1の初期化と領域20b-2の初期化は並行して実行される。このため、第3の実施例においては、カーネルによるメモリ初期化の処理時間が第2の実施例よりも短縮される。
 図13は、第3の実施例によるメモリ初期化方法を実行するコンピュータのハードウェア構成を示す図である。図13において、図8に示す構成要素と同じ構成要素には同一の符号を付与している。
 図13に示す例の場合、カーネルをCPU20-2、20-3で並列して同時実行する。このとき、例えば、CPU20-2で実行されるカーネルが図12(b)に示す領域20b-1を初期化し、CPU20-3で実行されるカーネルが図12(b)に示す領域20b-2を初期化する。
 本実施形態によれば、以下のような効果が得られる。
(1)ファームウェア単独ではなく、カーネルも、ファームウェアと並行してメモリ初期化を実行するので、メモリ初期化に要する時間が従来よりも短縮される。この時間短縮は、メインメモリのサイズが大きいほど顕著となる。
(2)ファームウェアにより初期化されるメインメモリの領域のページサイズは固定であるが、カーネルにより初期化されるメインメモリの領域のページサイズは、運用するコンピュータシステムの構成や利用形態などに合わせて調整することが可能である。
 尚、本実施形態は、上述した実施形態及び実施例に限定されることなく、本実施形態の趣旨を逸脱しない範囲内で種々に変形して実施することが可能である。例えば、上述した第3の実施例では、2つのCPUによりカーネルを並列して実行させて、メインメモリの初期化を並列処理するようにしているが、3個以上のCPUがカーネルを並行して実行することで、メインメモリの初期化を並列処理するようにしてもよい。また、ファームウェアが格納される記憶装置は、ROMに限定されるものではなく、フラッシュメモリなどのようなデータ書き換え可能な半導体メモリであってもよい。また、開示のメモリ初期化方法、メモリ初期化プログラム及び情報処理装置は、コンピュータのリセット操作が行なわれた場合のブートシーケンスにおけるメモリ初期化にも適用可能である。
 開示のメモリ初期化方法、メモリ初期化プログラム及び情報処理装置は、複数のCPUまたはマルチCPUコアのCPUを備える計算機、例えば、PCサーバ、UNIX(登録商標)サーバ、並列計算機などに適用可能である。

Claims (20)

  1.  複数の演算処理装置を備える情報処理装置のブートシーケンスにおけるメモリ初期化方法であって、
     前記メモリ初期化の処理は、
     第1の演算処理装置による第1の記憶手段に格納されているファームウェアの実行により、主記憶装置上の該ファームウェアの動作に必要な第1の領域とカーネル起動に必要な第2の領域を初期化するステップと、
     前記第1の演算処理装置による前記ファームウェアの実行により、前記第2の領域に格納された該カーネルを第2の演算処理装置に起動・実行させるステップと、
     該第2の演算処理装置により実行されるカーネルと前記第1の演算処理装置により実行されるファームウェアが、並行して、前記主記憶装置上の残りの領域の初期化を実行するステップと、
     を含むことを特徴とするメモリ初期化方法。
  2.  前記メモリ初期化方法であって、
     前記カーネルは、前記主記憶装置を仮想記憶方式により管理するオペレーティングシステムであり、
     前記主記憶装置のメモリ初期化は、主記憶装置上のオペレーティングシステムが管理する領域をページ単位に分割する処理と、論理ページを主記憶装置上の物理ページに変換するページテーブルを作成する処理を含むことを特徴とする請求項1記載のメモリ初期化方法。
  3.  前記メモリ初期化方法であって、
    前記カーネルが初期化する主記憶装置上の領域のページは、所定のサイズであることを特徴とする請求項1記載のメモリ初期化方法。
  4.  前記メモリ初期化方法であって、
     前記カーネルが初期化する主記憶装置上の領域のページサイズは、前記ファームウェアが初期化する主記憶装置上の領域のページサイズと同じであることを特徴とする請求項3記載のメモリ初期化方法。
  5.  前記メモリ初期化方法であって、
     前記カーネルが初期化する主記憶装置上の領域のページは、任意のサイズに指定可能であることを特徴とする請求項1記載のメモリ初期化方法。
  6.  前記メモリ初期化方法であって、
     ファームウェアが初期化する領域とカーネルが初期化する領域は、主記憶装置上で分割されており、その分割位置を示す初期化境界のアドレスは固定であることを特徴とする請求項1記載のメモリ初期化方法。
  7.  前記メモリ初期化方法であって、
     ファームウェアが初期化する領域とカーネルが初期化する領域は、主記憶装置上で分割されており、前記分割の位置を示す初期化境界のアドレスは指定可能であることを特徴とする請求項1記載のメモリ初期化方法。
  8.  前記メモリ初期化方法であって、
     前記カーネルによる主記憶装置の領域の初期化は、複数の演算処理装置がカーネルを並行実行されることを特徴とする請求項1記載のメモリ初期化方法。
  9.  複数の演算処理装置を備える情報処理装置のブートシーケンスにおけるメモリ初期化を実行する初期化プログラムであって、
     前記プログラムは、第1の記憶手段に格納されているファームウェアと第2の記憶手段に格納されているカーネルを備え、
     前記ファームウェアは、
     第1の演算処理装置による第1の記憶手段に格納されているファームウェアの実行により、主記憶装置上の該ファームウェアの動作に必要な第1の領域とカーネル起動に必要な第2の領域を初期化するステップと、
     前記第1の演算処理装置による前記ファームウェアの実行により、第2の記憶手段に格納されているカーネルを前記第2の領域にロードし、該カーネルを第2の演算処理装置に起動・実行させるステップと、
     前記第1の演算処理装置に、主記憶装置上のオペレーティングシステムが使用する第3の領域を初期化させるステップと、
     を含む処理を情報処理装置に実行させ、
     前記カーネルは、
     第2の演算処理装置に、主記憶装置上の前記第1、第2及び第3の領域以外のオペレーティングシステムが使用する第4の領域を初期化するステップを含む処理を、情報処理装置に実行させ、
     前記第1の演算処理装置に主記憶装置上のオペレーティングシステムが使用する第3の領域を初期化させるステップと前記第2の演算処理装置に前記主記憶装置上の前記第1、第2及び第3の領域以外のオペレーティングシステムが使用する第4の領域を初期化させるステップは、並行して実行されることを特徴とする初期化プログラム。
  10.  前記初期化プログラムであって、
     前記カーネルは、前記主記憶装置を仮想記憶方式により管理するオペレーティングシステムであり、
     前記主記憶装置のメモリ初期化は、主記憶装置上のオペレーティングシステムが管理する領域をページ単位に分割する処理と、論理ページを主記憶装置上の物理ページに変換するページテーブルを作成する処理を含むことを特徴とする請求項9記載の初期化プログラム。
  11.  前記初期化プログラムであって、
     前記カーネルが初期化する主記憶装置上の領域のページは、任意のサイズに指定可能であることを特徴とする請求項10記載の初期化プログラム。
  12.  前記初期化プログラムであって、
     ファームウェアが初期化する領域とカーネルが初期化する領域は、主記憶装置上で分割されており、その分割位置を示す初期化境界のアドレスは固定であることを特徴とする請求項9記載の初期化プログラム。
  13.  前記初期化プログラムであって、
     ファームウェアが初期化する領域とカーネルが初期化する領域は、主記憶装置上で分割されており、その分割位置を示す初期化境界のアドレスは指定可能であることを特徴とする請求項9記載の初期化プログラム。
  14.  前記初期化プログラムであって、
     前記カーネルによる主記憶装置の領域の初期化は、複数の演算処理装置がカーネルを並行実行されることを特徴とする請求項9記載の初期化プログラム。
  15.  複数の演算処理装置を備える情報処理装置のブートシーケンスにおけるメモリ初期化を実行する情報処理装置であって、
     第1の演算処理装置に第1の記憶手段に格納されているファームウェアを実行させることにより、該ファームウェアの動作に必要な第1の領域とカーネル起動に必要な第2の領域を初期化させる手段と、
     前記第1の演算処理装置によるファームウェアの実行により、第2の記憶手段に格納されているカーネルを前記第2の領域にロードし、該カーネルを第2の演算処理装置に起動・実行させる手段と、
     前記第1の演算処理装置と該第2の演算処理装置に、それぞれ、前記ファームウェアと前記カーネルを、並行して実行させ、前記主記憶装置上の残りの領域の初期化させる手段と、
     を含むことを特徴とする情報処理装置。
  16.  前記情報処理装置であって、
     前記カーネルは、前記主記憶装置を仮想記憶方式により管理するオペレーティングシステムであり、
     前記主記憶装置のメモリ初期化は、主記憶装置上のオペレーティングシステムが管理する領域をページ単位に分割する処理と、論理ページを主記憶装置上の物理ページに変換するページテーブルを作成する処理を含むことを特徴とする請求項15記載の情報処理装置。
  17.  前記情報処理装置であって、
     前記カーネルが初期化する主記憶装置上の領域のページは、任意のサイズに指定可能であることを特徴とする請求項16記載の情報処理装置。
  18.  前記情報処理装置であって、
     ファームウェアが初期化する領域とカーネルが初期化する領域は、主記憶装置上で分割されており、その分割位置を示す初期化境界のアドレスは固定であることを特徴とする請求項15記載の情報処理装置。
  19.  前記情報処理装置であって、
     ファームウェアが初期化する領域とカーネルが初期化する領域は、主記憶装置上で二分割されており、その分割位置を示す初期化境界のアドレスは指定可能であることを特徴とする請求項15記載の情報処理装置。
  20.  前記情報処理装置であって、
     前記カーネルによる主記憶装置の領域の初期化は、複数の演算処理装置がカーネルを並行実行されることを特徴とする請求項15記載のメモリ初期化方法。
     
PCT/JP2008/003390 2008-11-19 2008-11-19 メモリ初期化方法、メモリ初期化プログラム WO2010058440A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010539051A JP5158206B2 (ja) 2008-11-19 2008-11-19 メモリ初期化方法、メモリ初期化プログラム
PCT/JP2008/003390 WO2010058440A1 (ja) 2008-11-19 2008-11-19 メモリ初期化方法、メモリ初期化プログラム
US13/095,396 US8423757B2 (en) 2008-11-19 2011-04-27 Memory initialization by performing parallel execution of firmware and kernel by different CPUs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/003390 WO2010058440A1 (ja) 2008-11-19 2008-11-19 メモリ初期化方法、メモリ初期化プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/095,396 Continuation US8423757B2 (en) 2008-11-19 2011-04-27 Memory initialization by performing parallel execution of firmware and kernel by different CPUs

Publications (1)

Publication Number Publication Date
WO2010058440A1 true WO2010058440A1 (ja) 2010-05-27

Family

ID=42197887

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/003390 WO2010058440A1 (ja) 2008-11-19 2008-11-19 メモリ初期化方法、メモリ初期化プログラム

Country Status (3)

Country Link
US (1) US8423757B2 (ja)
JP (1) JP5158206B2 (ja)
WO (1) WO2010058440A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012256117A (ja) * 2011-06-07 2012-12-27 Mitsubishi Electric Corp マルチプロセッサシステム
TWI464681B (zh) * 2010-08-17 2014-12-11 Wistron Corp 加速開機方法及系統
WO2017104168A1 (ja) * 2015-12-16 2017-06-22 三菱電機株式会社 映像記録再生装置及び起動方法
US10459645B2 (en) 2016-03-28 2019-10-29 Fujitsu Limited Information processing apparatus and method of controlling information processing apparatus

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5783809B2 (ja) * 2011-06-03 2015-09-24 キヤノン株式会社 情報処理装置、起動方法およびプログラム
US10346177B2 (en) * 2016-12-14 2019-07-09 Intel Corporation Boot process with parallel memory initialization
US11593487B2 (en) * 2021-06-14 2023-02-28 Dell Products, L.P. Custom baseboard management controller (BMC) firmware stack monitoring system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086914A (ja) * 1994-06-17 1996-01-12 Toshiba Corp マルチプロセッサシステムにおける主記憶装置初期化方法
JPH09212431A (ja) * 1996-01-31 1997-08-15 Toshiba Corp 計算機装置
JPH11265289A (ja) * 1998-03-16 1999-09-28 Mitsubishi Electric Corp 情報処理装置および情報処理装置の高速初期起動方法
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826090A (en) 1997-03-17 1998-10-20 International Business Machines Corporation Loadable hardware support
US7065688B1 (en) * 2003-02-19 2006-06-20 Advanced Micro Devices, Inc. Simultaneous multiprocessor memory testing and initialization
US7194660B2 (en) * 2003-06-23 2007-03-20 Newisys, Inc. Multi-processing in a BIOS environment
JP5011780B2 (ja) 2006-03-28 2012-08-29 ブラザー工業株式会社 情報処理装置、及びその起動方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086914A (ja) * 1994-06-17 1996-01-12 Toshiba Corp マルチプロセッサシステムにおける主記憶装置初期化方法
JPH09212431A (ja) * 1996-01-31 1997-08-15 Toshiba Corp 計算機装置
JPH11265289A (ja) * 1998-03-16 1999-09-28 Mitsubishi Electric Corp 情報処理装置および情報処理装置の高速初期起動方法
US6158000A (en) * 1998-09-18 2000-12-05 Compaq Computer Corporation Shared memory initialization method for system having multiple processor capability

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI464681B (zh) * 2010-08-17 2014-12-11 Wistron Corp 加速開機方法及系統
JP2012256117A (ja) * 2011-06-07 2012-12-27 Mitsubishi Electric Corp マルチプロセッサシステム
WO2017104168A1 (ja) * 2015-12-16 2017-06-22 三菱電機株式会社 映像記録再生装置及び起動方法
JPWO2017104168A1 (ja) * 2015-12-16 2018-04-12 三菱電機株式会社 映像記録再生装置及び起動方法
US10459645B2 (en) 2016-03-28 2019-10-29 Fujitsu Limited Information processing apparatus and method of controlling information processing apparatus

Also Published As

Publication number Publication date
US20110213955A1 (en) 2011-09-01
US8423757B2 (en) 2013-04-16
JPWO2010058440A1 (ja) 2012-04-12
JP5158206B2 (ja) 2013-03-06

Similar Documents

Publication Publication Date Title
JP5158206B2 (ja) メモリ初期化方法、メモリ初期化プログラム
US9195472B2 (en) System and method for booting up a computer based on data captured in a non-volatile semiconductor memory during a learn mode
US7206931B2 (en) Aggressive content pre-fetching during pre-boot runtime to support speedy OS booting
US8495350B2 (en) Running operating system on dynamic virtual memory
US9170823B2 (en) Fast-boot list to speed booting an operating system
US8352718B1 (en) Method, system, and computer-readable medium for expediting initialization of computing systems
KR101846612B1 (ko) 부트 데이터 로드
KR102434170B1 (ko) 하이브리드 메모리 시스템
US11967952B2 (en) Electronic system including FPGA and operation method thereof
KR20140118093A (ko) 메모리 가상화 기반 스냅샷 부트 장치 및 방법
US20100241815A1 (en) Hybrid Storage Device
US20170024223A1 (en) Installation of Device Drivers from Virtual Media
US8583890B2 (en) Disposition instructions for extended access commands
WO2013088818A1 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
US20180293187A1 (en) Systems and devices having a scalable basic input/output system (bios) footprint and associated methods
KR20180013693A (ko) 초과 공급 메모리 장치들을 통합하기 위한 시스템 및 방법
CN114201222A (zh) 针对提早显示器初始化和可视化改善引导过程
US20070101098A1 (en) Apparatus and method of reducing page fault rate in virtual memory system
US8291206B2 (en) Method for booting computer system
KR102443593B1 (ko) 하이브리드 메모리 시스템
US20100017588A1 (en) System, method, and computer program product for providing an extended capability to a system
US20140359263A1 (en) Boot from logical volume spanning plurality of pci devices
KR20170055206A (ko) 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법
US10216524B2 (en) System and method for providing fine-grained memory cacheability during a pre-OS operating environment
US10761872B1 (en) Windows memory reduction at boot time by memory page reset to zero for virtual machine

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08878237

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010539051

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08878237

Country of ref document: EP

Kind code of ref document: A1