JP2012014637A - 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 - Google Patents

起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 Download PDF

Info

Publication number
JP2012014637A
JP2012014637A JP2010153190A JP2010153190A JP2012014637A JP 2012014637 A JP2012014637 A JP 2012014637A JP 2010153190 A JP2010153190 A JP 2010153190A JP 2010153190 A JP2010153190 A JP 2010153190A JP 2012014637 A JP2012014637 A JP 2012014637A
Authority
JP
Japan
Prior art keywords
information
common
area
module
pei
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.)
Granted
Application number
JP2010153190A
Other languages
English (en)
Other versions
JP5609333B2 (ja
Inventor
Norimi Tanaka
法美 田中
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 JP2010153190A priority Critical patent/JP5609333B2/ja
Priority to US13/074,502 priority patent/US20120005464A1/en
Publication of JP2012014637A publication Critical patent/JP2012014637A/ja
Application granted granted Critical
Publication of JP5609333B2 publication Critical patent/JP5609333B2/ja
Expired - Fee Related 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/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • G06F9/44563Sharing
    • 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

Landscapes

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

Abstract

【課題】、情報処理の起動処理にかかるプログラムサイズを小さくするとともに、起動処理過程におけるフェーズ間での情報を共有できるようにする。
【解決手段】2以上のモジュールにより共通に用いられる第1共通情報SLをそなえる第1モジュールM11をロードするステップと、記憶領域101に第1共通情報SLへアクセスするためのアクセス情報104を格納するステップと、アクセス情報104にアクセスするためのインタフェース情報SIをそなえる第2モジュールM12をロードするステップと、第2モジュールM12により、インタフェース情報SIによってアクセス情報に10アクセスし、このアクセス情報104を介して第1共通情報SLを取得するステップとをそなえる。
【選択図】図10

Description

本件は、情報処理装置の起動処理を行なう技術に関する。
近年、PC(Personal Computer)の起動処理に、BIOS(Basic Input/Output System)に代えて、EFI(Extensible Firmware Interface)を用いる手法が知られている(下記特許文献1,非特許文献1)。EFIは、BIOSに代わるプラットフォーム・ファームウェアであり、PCのハードウェアにOS(Operating System)を読み込む準備をさせる作業を行なう。マザーボードにEFIを組み込むことにより、PCの起動時間を短縮でき、ハードウェアの設計やソフトウェアの開発が容易になる。このEFI BIOSは、Unified EFI Forumによって規格の策定が進められている。
EFIにおいては、OSが起動するまでに、主に、SEC(Security)、PEI(Pre-EFI Initialization)、DXE(Driver Execution Environment)及びBDS(Boot Device Selection)の4つのフェーズをそなえ、各フェーズの処理オーダは、SEC、PEI、DXE、BDSの順となる。
また、各フェーズは、複数のモジュールから構成されており、PEIフェーズのモジュールをPEIモジュール(PEIM)という。又、DXEフェーズのモジュールとしては、DXEドライバやEFIドライバがある。
各モジュールは、BIOS Flashから読み出され、CPU(Central Processing Unit)キャッシュやメモリ等の実行領域に展開(ロード)された後、各モジュールが動作できる条件(EFIではプロトコルという)が整ったタイミングでそれぞれ実行される。なお、CPUキャッシュにおけるモジュールがロードされる領域のことを、CAR(Cache As Ram)領域という。
図26はEFIの各フェーズを説明するための図であり、各フェーズ(EFI Phase)について、プログラムロード動作領域、CPUモード及び開発言語を示している。又、図27は従来のEFIにおけるモジュール構成を説明するための図、図28はEFIのフェーズ毎のプログラムロード領域を模式的に示す図である。
EFIにおいては、図26に示すように、EFIフェーズでCPUの動作モードが異なり、16ビット(bit),32ビット,64ビット,32ビットのSMM(System Management Mode)及び64ビットのSMMの各モードがある。又、図26〜図28に示すように、EFIにおいては、モジュールのプログラムがロードされ、このプログラムが動作する領域(プログラムロード動作領域)もEFIフェーズで異なる。なお、プログラムロード実行領域としては、図26に示すように、BIOSFlash、CAR及びメモリ(SMMを含む)がある。
従来のEFIによるPCの起動処理においては、先ず、BIOS Flash上にプログラムがロードされCARの機能を有効にする。すなわち、SECフェーズにおいては、図27に示すように、BIOS Flash上にプログラムがロードされる。
そして、PEIフェーズにおいては、このCAR領域にプログラムがロードされ、このPEIにおいて、メモリコントローラの初期化が行なわれ、メモリアクセスが有効になった後に、メモリ上にプログラムがロードされる。すなわち、PEIフェーズにおいては、その初期段階においてCAR領域にプログラムがロードされた後、メモリ上にプログラムがロードされる。
その後、PEIの後半において、チップセットの設定等が行なわれ、DXEが動作できるための必要最小限のチップセット設定等が行なわれる。DXEフェーズにおいては、メモリ上にプログラムがロードされ、その後、BDSが読み出される。
また、使用されるプログラム言語もフェーズによって異なり、図26に示すように、SECはアセンブラ言語であり、PEI、DXE、BDSはC言語がメインとなる。
そして、このような従来のEFIにおいては、画面表示やキーボード入力のような各モジュール間で共通に必要な機能はライブラリ化され、各モジュールにこれらの共通機能ライブラリをそれぞれ付加している。
すなわち、図27に示すように、従来のEFIにおいては、PEI及びDXE(BDS)の各モジュールにそれぞれ共通機能ライブラリが付加されている。
また、従来のEFIにおいては、異なるフェーズ間で、メモリサイズやCPUの種別等の情報を共有する手法として、HOB(Hand Of Block)構造体を用いることが知られている。
具体的には、PEIフェーズにおいて構築したHOB構造体と呼ばれる情報を、メモリを介してDXEフェーズに受け渡すことにより、PEIフェーズとDXEフェーズとの間での情報の共有を実現している。
特開2008−102906号公報
Vincent Zimmer著 「BIOSに代わるプラットフォーム・ファームウェアをあらゆるインテルシリコンに(日本語参考訳)」(Technology@IntelMagazine)2004年1月 http://download.intel.com/jp/developer/jpdoc/it01043_j.pdf
しかしながら、このような従来のEFIにおいては、図27に示したように、各モジュールにそれぞれ共通機能ライブラリがそなえられているので、共通機能ライブラリのサイズが大きくなると、モジュール自身のサイズも大きくなる。これにより、EFIが使用するリソースサイズの肥大化が顕著となる。例えば、サーバや組込み系システムでは、必要とされるRAS(Reliability, Availability and Serviceability;信頼性、可用性、保守性)機能が多く、共通機能数が多くなるので、共通機能ライブラリのサイズが大きくなる。従って、サーバや組込み系システムではリソースサイズの肥大化が生じ易い。
すなわち、従来のEFIにおいては、各モジュールにそれぞれ共通機能ライブラリがそなえられているので、モジュールのサイズが大きくなり、EFIを格納するBIOS Flashの領域やEFIが使用するプログラムロード動作領域のサイズも肥大化するという課題がある。
また、従来のEFIにおけるフェーズ間での情報共有手法に関し、PEIからDXEへのフェーズの切り替え時においては、32ビットから64ビットへのCPUモードの切り替え等、DXEフェーズが動作するためのモジュール(DXEコアという)が整うまではHOB構造体の参照を行なうことはできないという課題がある。
例えば、ハードエラーが検出され、メモリ構成等を参照する必要がある場合等においては、PEIからDXEへのフェーズの切り替え時に、これらのフェーズ間での情報共有が必要になるケースが発生する。しかしながら、上述の如く、DXEコアの準備が完了するまで情報共有を行なうことができず、処理の遅滞をまねくおそれがある。
また、各モジュールにおいて、共通機能ライブラリが展開されるアドレスはモジュール毎に異なり、これらのモジュール間で共通機能ライブラリの情報を共有することもできない。従って、従来のEFIにおいては、たとえ共通機能ライブラリに共有域を設けたとしても、この共有域の情報をモジュール間で共有することができず、又、フェーズ切り替え時における情報参照も行なうことができない。
本件の目的の一つは、このような課題に鑑み創案されたもので、情報処理の起動処理にかかるプログラムサイズを小さくするとともに、起動処理過程におけるフェーズ間での情報を共有できるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、この起動処理方法は、プロセッサをそなえた情報処理装置の起動処理方法であって、該プロセッサにより実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとをそなえる。
また、この情報処理装置は、プロセッサをそなえた情報処理装置であって、起動処理時に、該プロセッサにより実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードする第1モジュール設定部と、起動処理時に、該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するアクセス情報設定部と、起動処理時に、該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードする第2モジュール設定部と、該起動処理時に、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得する第1情報取得部とをそなえる。
さらに、この起動処理プログラムは、起動処理をコンピュータに実行させるための起動処理プログラムであって、該コンピュータに実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとを、該コンピュータに実行させる。又、このコンピュータ読取可能な記録媒体は、上述した起動処理プログラムを記録したものである。
開示の技術によれば、情報処理装置の起動処理において、第1モジュールにそなえられた第1共通情報を第2モジュールが取得して使用することができるので、複数のモジュール間で第1共通情報を共有することができる。これにより、情報処理装置の起動処理にかかるモジュールやプログラムのサイズを小さくすることができ、ロードされるメモリサイズやBIOS Flashの容量を小さく構成することができる。従って、処理速度の向上や製造コストを低減することができる。
実施形態の一例としての情報処理装置のハードウェア構成を模式的に示す図である。 実施形態の一例としての情報処理装置のBIOS Flashに格納されたEFIのプログラムデータPを模式的に示す図である。 実施形態の一例としての情報処理装置におけるEFIのフェーズ毎のモジュールや各種情報のロード領域を模式的に示す図である。 実施形態の一例としての情報処理装置におけるデータ参照手法を模式的に示す図である。 実施形態の一例としての情報処理装置の起動時におけるEFIのフェーズの処理を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるSECフェーズの処理を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるPEIフェーズの処理を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるDXE(BDS)フェーズの処理を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるPEIフェーズ(CAR領域)での共通ライブラリSLの読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるPEIフェーズ(CAR領域)での共通ライブラリSLへの参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるPEIフェーズ(CAR領域)での共通領域に格納された共通領域情報の読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるPEIフェーズ(CAR領域)での共通領域への参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるPEIフェーズ(メモリ領域)での共通ライブラリSLの読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるPEIフェーズ(メモリ領域)での共通ライブラリSLへの参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるPEIフェーズ(メモリ領域)での共通領域に格納された共通領域情報の読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるPEIフェーズ(メモリ領域)での共通領域への参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるDXEフェーズ(メモリ領域)での共通ライブラリSLの読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるDXEフェーズ(メモリ領域)での共通ライブラリSLへの参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるDXEフェーズ(メモリ領域)での共通領域に格納された共通領域情報の読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるDXEフェーズ(メモリ領域)での共通領域への参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるSMMフェーズ(PEI,DXE)での共通ライブラリSLの読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるSMMフェーズ(PEI)及びSMMフェーズ(DXE)での共通ライブラリSLへの参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるSMMフェーズ(PEI,DXE)での共通領域に格納された共通領域情報の読み出し手法を説明するためのフローチャートである。 実施形態の一例としての情報処理装置におけるSMMフェーズ(PEI)での共通領域への参照経路を説明する図である。 実施形態の一例としての情報処理装置におけるSMMフェーズ(DXE)での共通領域への参照経路を説明する図である。 EFIの各フェーズを説明するための図である。 従来のEFIにおけるモジュール構成を説明するための図である。 EFIのフェーズ毎のプログラムロード領域を模式的に示す図である。
以下、図面を参照して本起動処理方法,情報処理装置及び起動プログラムに係る実施の形態を説明する。
図1は実施形態の一例としての情報処理装置のハードウェア構成を模式的に示す図である。図2は実施形態の一例としての情報処理装置100のBIOS Flash22に格納されたEFIのプログラムデータPを模式的に示す図である。図3は実施形態の一例としての情報処理装置におけるEFIのフェーズ毎のモジュールや各種情報のロード領域を模式的に示す図である。
本情報処理装置100は、図1に示すように、CPU10,RAM20,ROM21,BIOS Flash22,ストレージ23,ディスプレイ24,キーボード25及びマウス26をそなえたコンピュータである。又、キーボード25及びマウス26は入力装置であり、オペレータはこれらのキーボード25やマウス26を操作して、本情報処理装置100の再起動指示を含む種々の指示や情報の入力操作を行なう。又、この情報処理装置100は、図示しない電源スイッチをそなえ、オペレータがこの電源スイッチを操作することにより電力投入が行なわれる。
ストレージ23は、ハードディスクドライブ(Hard disk drive:HDD)、SSD(Solid State Drive)等の記憶装置であって、OSや種々のプログラムやデータを格納するものである。
ディスプレイ24は、種々のデータやオペレータに対するメッセージ等の情報を表示する表示装置である。
ROM21は、CPU10が実行するプログラムや種々のデータを格納する記憶装置である。
RAM20は、種々のデータやプログラムを一時的に格納する主記憶装置であって、CPU10がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。又、RAM20は、本情報処理装置100の起動過程において、その所定の記憶領域が固有のメモリ領域201(図3参照)やSMM固定のメモリ領域211(図3参照)として機能する。固有のメモリ領域201には、管理域2001と共通領域202とが含まれ、管理域2001には、後述する共通ライブラリへのアドレス情報201と、同じく後述する共通領域へのアドレス情報203とが格納される。又、共通領域202の詳細についても後述する。
BIOS Flash22は、EFIのプログラムデータPを格納するメモリであり、例えば、フラッシュメモリ(フラッシュROM)である。
プログラムデータPは、図2に示すように、n個(nは自然数:図2に示す例ではn=3)のモジュールプログラムPn(図2に示す例ではP1〜P3)や、起動処理を制御する制御プログラムP0をそなえる。モジュールプログラムPnは、後述するEFIの個々のモジュールを実現するプログラムであり、各モジュール毎にそなえられている。各モジュールプログラムPnは、それぞれヘッダ部Hと実行可能イメージPIをそなえている。
制御プログラムP0は、後述するCPU10に実行されることにより、モジュールプログラムPnを所定の順序でロードさせ、EFIの起動処理を実現させるプログラムである。本情報処理装置100の起動時において、CPU10がこの制御プログラムP0に従い、BIOS Flash22からモジュールプログラムPnの実行可能イメージPIを順次読み出し、情報処理装置100における所定のロード領域に展開(ロード)して実行することにより、起動処理が行なわれる。
このように、情報処理装置100における所定の領域にロードされた各モジュールの実行可能イメージPIは、各モジュールとしての機能を実現する。
なお、図2に示す例においては、モジュールプログラムPnの例としてPEIモジュールにかかるモジュールプログラムP1,P2とDXEドライバにかかるモジュールプログラムP3とを示しているが、これに限定されるものではなく、SECモジュールや他の機能を実現するプログラムをモジュールプログラムに含めることを否定するものではなく、種々変形して実施することができる。
また、本情報処理装置においては、BIOS Flash22に格納された各モジュールプログラムP1の実行可能イメージPに、共有ライブラリSLや共有インタフェースライブラリSLが含まれている。
共通ライブラリSLは、例えば、ディスプレイ24への画面表示やキーボード25やマウス26の入力制御のような、複数のモジュールがそれぞれ使用しうる共通の情報(第1共通情報)である。この共通ライブラリSLは、これらの複数のモジュール間で共通に必要な機能をライブラリ化することにより、複数のモジュールが共通に使用できるようにしたものである。この共通ライブラリSLは、当該共通ライブラリSLをそなえるモジュールが使用できるとともに、後述する共通インタフェースライブラリSLをそなえる他のモジュールからも使用される。
また、共通ライブラリSLは、後述するCAR領域101やRAM20における所定の領域へアクセスするためのアクセス関数もそなえている。後述するCPU10が、このアクセス関数を実行することにより、例えば、CAR領域101やRAM20における所定の領域へアクセスするためのアドレス演算が行なわれる。
これにより、例えば、PEIモジュールM11の共通ライブラリSLからCAR領域101の共通領域へのアドレス情報103にアクセスすることができる。同様に、PEIモジュールM21やPEIモジュールM21の共通ライブラリSLから固定のメモリ領域201の共通領域へのアドレス情報203へアクセスすることができる。又、DEXドライバD1やDEXドライバD3の共通ライブラリSLから固定のメモリ領域201の共通領域へのアドレス情報203へアクセスすることができる。
共通ライブラリSLは、本情報処理装置100の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報として機能するのである。
なお、PEI,DXE,SMM(DXE)の各フェーズにおいてロード領域が一致するグループ毎において、同一の共通ライブラリSLが重複してそなえられることがないようにすることが望ましい。つまり、共通ライブラリSLは、上記グループ毎に1つ構築される。これにより、共通ライブラリSLの格納に要する容量を削減し、各モジュールのサイズを小さくすることができる。すなわち、BIOS Flash22やこれらのモジュールをロードするプログラムロード動作領域を小さくすることができる。望ましくは、共通ライブラリSLは、上記フェーズ毎に1つ構築される。
図3に示す例においては、PEIフェーズの初期段階においてCAR領域101に展開される2つのPEIモジュールM11,M12からなる第1のグループにおいては、PEIモジュールM11に共有ライブラリSLがそなえられている。なお、PEIモジュールM11が、自身にそなえた共通ライブラリSLを使用することは言うまでもない。以下、PEIフェーズにおいて、モジュールのロード場所がCAR領域101の状態をPEIフェーズ(CAR領域)と表す場合がある。
また、PEIフェーズの途中からは、RAM20が使用可となり、このRAM20(メモリ領域)にモジュールが展開される。図3に示す例において、メモリ領域に展開される2つのPEIモジュールM21,M22からなる第2のグループにおいては、PEIモジュールM21に共有ライブラリSLがそなえられている。なお、PEIモジュールM21が、自身にそなえた共通ライブラリSLを使用することは言うまでもない。以下、PEIフェーズにおいてモジュールのロード場所がRAM20の状態をPEIフェーズ(メモリ領域)と表す場合がある。
さらに、図3に示す例において、PEIフェーズにおいてSMM領域301に展開される2つのPEIモジュールM23,M24からなる第3のグループにおいては、PEIモジュールM23に共有ライブラリSLがそなえられている。なお、PEIモジュールM23が、自身にそなえた共通ライブラリSLを使用することは言うまでもない。そして、以下、PEIフェーズにおいてモジュールのロード場所がSMMの状態をSMMフェーズ(PEI)と表す場合がある。
同様に、図3に示す例において、DXEフェーズにおいてメモリ領域に展開される2つのDXEドライバD1,D2からなる第4のグループにおいては、DXEドライバD1に共有ライブラリSLがそなえられている。なお、DEXドライバD1,D3が、自身にそなえた共通ライブラリSLを使用することは言うまでもない。又、DXEフェーズにおいてSMM領域302に展開される2つのDXEドライバD3,D4からなる第5のグループにおいては、DXEドライバD3に共有ライブラリSLがそなえられている。そして、以下、DXEフェーズにおいてモジュールのロード場所がSMMの状態をSMMフェーズ(DXE)と表す場合がある。
共通インタフェースライブラリSIは、他のモジュールに含まれる共通ライブラリSLや後述する共通領域102,202へアクセスするためのインタフェースであり、例えば、管理域1001,2001,2101における所定のアドレスへのポインタをそなえる。
各モジュールは、この共通インタフェースライブラリSIを介することで、後述する管理域1001,2001,2101を経由し、共通ライブラリSLや共通領域102,202にアクセスすることができる。すなわち、共通インタフェースライブラリSIは、共通ライブラリSLや共通領域102,202に格納された共通領域情報へアクセスするためのインタフェース情報として機能する。
また、BIOS Flash22には、後述する共通ライブラリへのアドレス情報104,204,212や共通領域へのアドレス情報103,203の他、共通領域102,202に格納する共通情報が格納されている。
CPU(プロセッサ)10は、種々の制御や演算を行なう処理装置であり、ストレージ23等に格納されたプログラムを実行することにより、種々の機能を実現する。又、CPU10は、図示しないキャッシュメモリ(プロセッサキャッシュ)をそなえている。このキャッシュメモリは、データや命令などの情報を一時的に格納する記憶領域であり、CPU10がアクセスしたいデータやそのアドレス、状態、設定など属性情報をコピーし保持する。なお、このキャッシュメモリは、PEIフェーズ(CAR領域)においては、このPEIモジュールが展開(ロード)され、PEIジュールの実行領域となる。
そして、このCPU10は、本情報処理装置100の起動時において、BIOS Flash22に格納されたEFIのプログラムP(制御プログラムP0)を実行することにより、本情報処理部100の起動処理を行なう起動処理部11として機能する。以下、本情報処理装置100における起動処理について説明する。なお、この起動処理は、例えば、本情報処理装置100の電源投入時や再起動時に行なわれる。
この起動処理部11としての機能を実現するためのプログラム(起動処理プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
起動処理部11としての機能を実現する際には、内部記憶装置(本実施形態ではRAM20やROM21)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU10)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置100がコンピュータとしての機能を有しているのである。
起動処理部11は、本情報処理部100の起動処理をEFIの仕様に従って行なうものであり、本情報処理装置100の起動(電源投入)からOSへの制御の移行に至るまでのプラットフォームの初期化にかかる処理を実施する。
この起動処理部11は、SEC,PEI,DXE及びDXEの4つのフェーズを順次行なうことにより、EFIの仕様に沿った起動処理を実現する。EFIにおいては、各フェーズで利用可能なインフラストラクチャは中心となるフレームワークによって提供される。そして、プラットフォーム固有の機能は相互通信可能なモジュールを使って実装される。以下、PEIフェーズのモジュールをPEIモジュールという。又、DXEフェーズのモジュールとしては、DXEドライバやEFIドライバがある。
なお、図3に示す例においては、PEIモジュールに符号M11,M12,M21〜M24を付して表し、又、DXEドライバに符号D1〜D4を付して表す。又、以下、PEIモジュールを示す符号としては、複数のPEIモジュールのうち1つを特定する必要があるときには符号M11,M12,M21〜M24を用いるが、任意のPEIモジュールを指すときには符号Mを用いる。同様に、以下、DXEドライバを示す符号としては、複数のDXEドライバのうち1つを特定する必要があるときには符号D1〜D4を用いるが、任意のDXEドライバを指すときには符号Dを用いる。
起動処理部11は、図1に示すように、モジュール設定部111,アクセス情報設定部112,共通領域アクセス情報設定部113,共通領域設定部114及び情報取得部115をそなえ、これらの各部が機能することにより起動処理を実現する。
モジュール設定部111は、BIOS Flash22から、各モジュールに対応するモジュールプログラムPnの実行可能イメージPIを読み出し、それぞれの所定の実行領域(プログラムロード動作領域,ロード領域)にロード(設定,格納)するローダとして機能する。
以下、モジュールに対応するモジュールプログラムPnの実行可能イメージPIをロード領域にロードすることを、便宜上、単にモジュールをロードすると表現する。
モジュール設定部111は、SECフェーズにおいて、BIOS Flash22にSECモジュール(図示省略)をロードする。そして、CPU10がBIOS Flash22上のSECモジュールを実行することにより、CPU10のキャッシュが設定されCARの機能が有効になる。
また、PEIフェーズにおいては、CAR領域にPEIモジュールMがロードされ、このPEIにおいて、メモリコントローラの初期化が行なわれ、RAM20に対するメモリアクセスが有効になった後に、メモリ上に各モジュールの実行可能イメージP1がロードされるのである。
モジュール設定部111は、EFIの各フェーズを実行するためのPEIモジュールMやDEXドライバDのデータをBIOS Flash22から読み出し、キャッシュメモリ12やRAM20等のそれぞれの所定の実行領域にロードする。
具体的には、モジュール設定部111は、PEIフェーズの初期段階においては、BIOS Flash22から読み出したPEIモジュールMをCPU10のキャッシュメモリにおけるCAR領域101に展開する。又、モジュール設定部111は、PEIフェーズにおいて、CPU10がPEIモジュールMを実行することによりRAM20の初期設定が完了し、このRAM20が有効となり使用可能となった後においては、このRAM20上の固定のメモリ領域201もしくはSMM領域301にPEIモジュールMをロードする。
また、モジュール設定部111は、DXEフェーズにおいては、BIOS Flash22から読み出したDEXドライバDを、RAM20もしくはRAM20におけるSMM領域311上にロードする。
そして、このモジュール設定部111によってロードされるモジュールには、共通ライブラリSLや共通インタフェースライブラリSLをそなえるものも含まれる。すなわち、モジュール設定部111は、起動処理時に、2以上のモジュールにより共通に用いられる共通ライブラリSLをそなえるモジュールをロードする第1モジュール設定部として機能する。更に、モジュール設定部111は、起動処理時に、共通インタフェースライブラリSLをそなえるモジュールをロードする第2モジュール設定部としても機能する。
共通領域設定部114は、CPU10のキャッシュメモリにおけるCAR領域101やRAM20における固有のメモリ領域201に、共通領域情報(第2共通情報)を格納する共通領域102,202を設定する。
ここで、共通領域情報は、例えば、メモリサイズやCPU10の種別等、EFIの複数のフェーズ間で共通に使用される情報である。このような共通領域情報は、例えば、PEIフェーズのPEIモジュールMとDXEフェーズのDXEドライバDとのように、異なるフェーズのモジュールによって共通して使用される(共有される)。
共通領域設定部114は、PEIフェーズの初期段階において、CAR領域101における所定位置に共通領域102を確保し、BIOS Flash22から共通領域情報を読み出して、この読み出した共通領域情報を共通領域102に格納する。ここで、共通領域102においては、同一の共通領域情報が重複することがないように格納することが望ましい。
また、共通領域設定部114は、PEIフェーズにおいてRAM20が有効となった後においては、RAM20の固定のメモリ領域201における所定位置に共通領域202を確保する。そして、共通領域設定部114は、CAR領域101の共通領域102に格納されている共通領域情報を読み出して、この読み出した共通領域情報を共通領域202に格納する。すなわち、共通領域設定部114は、CAR領域101の共通領域102の共通領域情報を固有のメモリ領域201の共通領域202にコピーする。
これにより、PEIフェーズ(CAR領域)において使用されていた共通領域情報を、PEIフェーズ(メモリ領域)やDXEフェーズやSMMフェーズ(PEI),SMMフェーズ(DXE)においても使用(共用)することができる。
アクセス情報設定部112は、CPU10のキャッシュメモリにおけるCAR領域101や、RAM20における固有のメモリ領域201,SMM固定のメモリ領域211に、共通ライブラリへのアドレス情報104,204,212を格納(設定)する。
具体的には、アクセス情報設定部112は、PEIフェーズの初期段階において、BIOS Flash22からPEI用32ビットの共通ライブラリへのアドレス情報を読み出して、この読み出した共通ライブラリへのアドレス情報を、CPU10のキャッシュメモリにおけるCAR領域101の所定の領域に格納する。
ここで、共通ライブラリへのアドレス情報104とは、モジュールにそなえられた共通ライブラリSLへアクセスするためのアドレス情報であり、例えば、共通ライブラリSLへのポインタを含む。又、この共通ライブラリSLへのポインタとしては、単なるアドレスを示すポインタ(共有情報ポインタ)の他、関数ポインタが用いられる。
また、アクセス情報設定部112は、RAM20が有効となった後に、BIOS Flash22からPEI用32ビットの共通ライブラリへのアドレス情報204を読み出し、この読み出したPEI用32ビットの共通ライブラリへのアドレス情報204をRAM20上の固定のメモリ領域201に格納する。
さらに、アクセス情報設定部112は、RAM20におけるSMM(System Management Mode)領域に対しても、その特定の領域であるSMM固定のメモリ領域211に共通ライブラリにアドレス情報212の設定を行なう。
アクセス情報設定部112は、PEIフェーズにおいて、BIOS Flash22からDXE用64ビットの共通ライブラリへのアドレス情報212を読み出し、この読み出したDXE用64ビットの共通ライブラリへのアドレス情報212をSMM固定のメモリ領域211に格納する。
なお、共有領域情報は、PEI用32ビットとDXE用64ビットとでそのまま共用可能である。
共通領域アクセス情報設定部113は、CPU10のキャッシュメモリにおけるCAR領域101やRAM20における固有のメモリ領域201に、共通領域へのアドレス情報103,203を格納する。
具体的には、共通領域アクセス情報設定部113は、PEIフェーズの初期段階において、CPU10のキャッシュメモリにおけるCAR領域101の所定の領域に、共通領域へのアドレス情報103を格納する。
ここで、共通領域へのアドレス情報103は、共通領域102へアクセスするための情報(共有領域アクセス情報)であり、例えば、共通領域102における共通領域情報の格納位置を表すポインタ(共有情報ポインタ)を含む。これにより、共通ライブラリSL103にアクセスするモジュールは、共通領域102に格納された共通領域情報にアクセスすることが可能となる。
同様に、共通領域アクセス情報設定部113は、RAM20が使用可能となった後において、このRAM20の所定の領域に、共通領域へのアドレス情報203を格納する。
ここで、共通領域へのアドレス情報203は、共通領域202へアクセスするための情報である共有領域アクセス情報であり、例えば、共通領域202における共通領域情報の格納位置を表すポインタ(共有情報ポインタ)を含む。これにより、共通ライブラリSL203にアクセスするモジュールは、共通領域202に格納された共通領域情報にアクセスすることが可能となる。
なお、CAR領域101における、共通ライブラリへのアドレス情報104及び共通領域へのアドレス情報103が格納される領域を管理領域1001という場合がある。同様に、RAM20(固定のメモリ領域201)における、共通ライブラリへのアドレス情報及び共通領域へのアドレス情報が格納される領域を管理域2001という場合がある。又、RAM20のSMM(固定のメモリ領域211)における、共通ライブラリへのアドレス情報が格納される領域を管理域2101という場合がある。
情報取得部115は、本情報処理装置100の起動処理時において、PEIモジュールMやDEXドライバD等のモジュールを実行する際に、共通ライブラリSLや共通領域情報を参照・取得する。
この情報取得部115は、以下に詳述するように、共通インタフェースライブラリSLや共通ライブラリへのアドレス情報104,204,212を用いて共通ライブラリSLを取得する。すなわち、第1情報取得部として機能する。又、情報取得部115は、以下に詳述するように、共通インタフェースライブラリSLや共通ライブラリへのアドレス情報104,204,212、共通ライブラリSL及び共通領域へのアドレス情報103,203を用いて、共通領域102,202の共通領域情報を取得する。すなわち、第2情報取得部として機能する。
図4は実施形態の一例としての情報処理装置100におけるデータ参照手法を模式的に示す図である。
起動処理部11は、共通インタフェースライブラリSIをそなえるモジュールの実行に際して、各共通インタフェースライブラリSLを介して、管理域1001,2001,2101にアクセスする。そして、これらの管理域1001,2001,2101に格納された共通ライブラリへのアドレス情報104,204,212や共通領域へのアドレス情報103,203にアクセスする。起動処理部11は、これらの情報を用いて共通ライブラリSLや共通領域情報にアクセスし、これらの情報を用いて本情報処理装置100の起動処理を実行する。
上述の如く構成された、実施形態の一例としての情報処理装置100の起動時におけるEFIのフェーズの処理を、図5に示すフローチャート(ステップA10〜A30)に従って説明する。
本実施形態の一例としての情報処理装置100に電源投入(PON:Power ON)が行なわれると、先ず、SECフェーズが行なわれた後(ステップA10)、PEIフェーズが行なわれ(ステップA20)、更に、DXE(BDS)フェーズ(ステップA30)が行なわれる。これらのEFIにかかる各フェーズの処理によりシステムの初期化が完了し、その後、OSローダによるOSの起動処理が開始される。
次に、本実施形態の一例としての情報処理装置100におけるSECフェーズの処理を、図6に示すフローチャート(ステップA101〜A105)に従って説明する。
SECフェーズにおいては、先ず、CPU10の初期化を行なった後(ステップA101)、CAR領域101(CPUキャッシュ)の設定を行なう(ステップA102)。
そして、CAR領域101のスタックポインタを予め規定された所定量ずらすことにより、共通ライブラリへのアドレス情報104や共通領域へのアドレス情報103及び共通領域102の領域を確保する(ステップA103)。なお、スタックポインタをずらす量は、共通ライブラリへのアドレス情報104,共通領域へのアドレス情報103及び共通領域102のサイズに対応する。
その後、CAR領域101の設定を行ない(ステップA104)、BIOS Flash22におけるPEIの開始アドレスを読み出し(ステップA105)、SECフェーズを修了する。
次に、本実施形態の一例としての情報処理装置100におけるPEIフェーズの処理を、図7に示すフローチャート(ステップA201〜A209)に従って説明する。
PEIフェーズにおいては、先ず、アクセス情報設定部112及び共通領域アクセス情報設定部113が、CARのスタック領域にPEI用32ビットの共通ライブラリへのアドレス情報104及び共通領域へのアドレス情報103を設定する(ステップA201)
次に、モジュール設定部111が、PEIモジュールをBIOS Flash22から読み出してCAR領域101へロードし、これらのPEIモジュールをそれぞれ実行する(ステップA202)。これらのPEIモジュールによりRAM20の初期化が実行され(ステップA203)、RAM20が使用可能になる。
アクセス情報設定部112及び共通領域アクセス情報設定部113は、固定のメモリ領域201に、PEI用32ビットの共通ライブラリへのアドレス情報204及びPEI用32ビットの共通領域へのアドレス情報203を設定する(ステップA204)。
また、共通領域設定部114が、CAR領域101の共通領域102に格納されている共通領域情報を固定のメモリ領域201の共通領域202にコピーする(ステップA205)。ここで、キャッシュが無効化される。
モジュール設定部111は、PEIモジュールMをRAM20(メモリ領域)にロードし、これらのPEIモジュールMの各処理を実行させる(ステップA206)。
次に、アクセス情報設定部112及び共通領域アクセス情報設定部113は、固定のメモリ領域201に、PEI用32ビットの共通ライブラリへのアドレス情報204及びPEI用32ビットの共通領域へのアドレス情報203を設定する(ステップA207)。
その後、RAM20にDXEのメイン部分をロードし(ステップA208)、このRAM20上におけるDXEコアの開始アドレスを読み出して(ステップA209)処理を修了する。
また、本実施形態の一例としての情報処理装置100におけるDXE(BDS)フェーズの処理を、図8に示すフローチャート(ステップA301〜A302)に従って説明する。
DXE(BDS)フェーズにおいては、先ず、アクセス情報設定部112及び共通領域アクセス情報設定部113が、固定のメモリ領域201にDXE用64ビットの共通ライブラリへのアドレス情報104及び共通領域へのアドレス情報103を設定する(ステップA301)
次に、モジュール設定部111が、DXEドライバDをBIOS Flash22から読み出してRAM20上にロードし、これらの各DXEドライバをそれぞれ実行することにより(ステップA302)、DXE(BDS)フェーズを完了させる。
なお、図7に示す例においては、PEIフェーズの途中(ステップA207参照)において、固定のメモリ領域201に、PEI用32ビットの共通ライブラリへのアドレス情報204及びPEI用32ビットの共通領域へのアドレス情報203を設定しているが、これに限定されるものではない。
例えば、DXE(BDS)フェーズのステップA302においてDXEドライバをRAM20上にロードし、これらの各DXEドライバをそれぞれ実行した後に行なってもよく、適宜変更して実施することができる。
次に、本実施形態の一例としての情報処理装置100におけるPEIフェーズ(CAR領域)での共通ライブラリSLの読み出し手法を、図10を参照しながら、図9に示すフローチャート(ステップB10〜B30に従って説明する)。なお、図10は本情報処理装置100におけるPEIフェーズ(CAR領域)での共通ライブラリSLへの参照経路を説明する図である。
PEIフェーズ(CAR領域)において、PEIモジュールM12(第2モジュール)がPEIモジュールM11(第1モジュール)の共通ライブラリSLの関数を用いる例について説明する。
CAR領域において、PEIモジュールM12は共通インタフェースライブラリSLを呼び出し(ステップB10:図10の符号P01参照)、CAR領域101の共通ライブラリへのアドレス情報104を取得する(ステップB20:図10の符号P02参照)。PEIモジュールM12は、この共通ライブラリへのアドレス情報104を用いて、PEIモジュールM11の共通ライブラリSLの関数を呼び出す(ステップB30:図10の符号P03参照)。
このように、PEIフェーズ(CAR領域)においては、PEIモジュールMは、共通インタフェースライブラリSLを用いて、CAR領域101の共通ライブラリへのアドレス情報104を介してPEIモジュールM11の共通ライブラリSLを読み出すことができる。又、PEIモジュールM11も自身がそなえる共通ライブラリSLを用いることができる。
従って、PEIモジュールM11の共通ライブラリSLを、PEIモジュールM11とPEIモジュールM12とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるPEIフェーズ(CAR領域)での共通領域に格納された共通領域情報の読み出し手法を、図12を参照しながら、図11に示すフローチャート(ステップC10〜C50に従って説明する)。なお、図12は本情報処理装置100におけるPEIフェーズ(CAR領域)での共通領域102への参照経路を説明する図である。
CAR領域において、PEIモジュールM12(第2モジュール)は共通インタフェースライブラリSLを呼び出し(ステップC10:図12の符号P11参照)、CAR領域101の共通ライブラリへのアドレス情報104を取得する(ステップC20:図12の符号P12参照)。PEIモジュールM12は、この共通ライブラリへのアドレス情報104を用いて、PEIモジュールM11(第1モジュール)の共通ライブラリSLの関数を呼び出す(ステップC30:図12の符号P13参照)。
PEIモジュールM12は、この共通ライブラリSLから、CAR領域101の共通領域へのアドレス情報103へアクセスするための情報(例えば、ポインタ)を取得し、この情報に基づいてCAR領域101の共通領域へのアドレス情報103を取得する(ステップC40:図12の符号P14参照)。PEIモジュールM12は、この共通領域へのアドレス情報103を用いて、CAR領域101の共通領域102にアクセスし(ステップC50:図12の符号P15参照)、この共通領域102に格納されている共通領域情報を取得する。
このように、PEIフェーズ(CAR領域)においては、PEIモジュールM12は、共通インタフェースライブラリSLを用いて、CAR領域101の共通ライブラリへのアドレス情報104を介してPEIモジュールM11の共通ライブラリSLを読み出す。更に、この共通ライブラリSLを用いてCAR領域101の共通領域へのアドレス情報103を取得し、この共通領域へのアドレス情報103を用いて共通領域情報を取得することができる。
また、PEIモジュールM11も自身がそなえる共通ライブラリSLを用いて、CAR領域101の共通領域へのアドレス情報103を取得し、この共通領域へのアドレス情報103を用いて共通領域情報を取得することができる
従って、CAR領域101の共通領域102の共通領域情報を、PEIモジュールM11とPEIモジュールM12とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるPEIフェーズ(メモリ領域)での共通ライブラリSLの読み出し手法を、図14を参照しながら、図13に示すフローチャート(ステップD10〜D30に従って説明する)。なお、図14は本情報処理装置100におけるPEIフェーズ(メモリ領域)での共通ライブラリSLへの参照経路を説明する図である。
PEIフェーズ(メモリ領域)において、PEIモジュールM22(第2モジュール)がPEIモジュールM21(第1モジュール)の共通ライブラリSLの関数を用いる例について説明する。
メモリ領域において、PEIモジュールM22は共通インタフェースライブラリSLを呼び出し(ステップD10:図14の符号P31参照)、固有のメモリ領域201の共通ライブラリへのアドレス情報204を取得する(ステップD20:図14の符号P32参照)。PEIモジュールM12は、この共通ライブラリへのアドレス情報204を用いて、PEIモジュールM21の共通ライブラリSLの関数を呼び出す(ステップD30:図14の符号P33参照)。
このように、PEIフェーズ(メモリ領域)においても、PEIモジュールM22は、共通インタフェースライブラリSLを用いて、固有のメモリ領域201の共通ライブラリへのアドレス情報204を介してPEIモジュールM21の共通ライブラリSLを読み出すことができる。又、PEIモジュールM21も自身がそなえる共通ライブラリSLを用いることができる
従って、PEIモジュールM21の共通ライブラリSLを、PEIモジュールM21とPEIモジュールM22とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるPEIフェーズ(メモリ領域)での共通領域202に格納された共通領域情報の読み出し手法を、図16を参照しながら、図15に示すフローチャート(ステップE10〜E50に従って説明する)。なお、図16は本情報処理装置100におけるPEIフェーズ(メモリ領域)での共通領域202への参照経路を説明する図である。
メモリ領域において、PEIモジュールM22(第2モジュール)は共通インタフェースライブラリSLを呼び出し(ステップE10:図16の符号P41参照)、固有のメモリ領域201の共通ライブラリへのアドレス情報204を取得する(ステップE20:図16の符号P42参照)。PEIモジュールM22は、この共通ライブラリへのアドレス情報204を用いて、PEIモジュールM21(第1モジュール)の共通ライブラリSLを呼び出す(ステップE30:図16の符号P43参照)。
PEIモジュールM22は、この共通ライブラリSLから、固有のメモリ領域201の共通領域へのアドレス情報203へアクセスするための情報(例えば、ポインタ)を取得し、この情報に基づいて固定のメモリ領域201の共通領域へのアドレス情報203を取得する(ステップE40:図16の符号P44参照)。PEIモジュールM22は、この共通領域へのアドレス情報203を用いて、固有のメモリ領域201の共通領域202にアクセスし(ステップE50:図16の符号P45参照)、この共通領域202に格納されている共通領域情報を取得する。
このように、PEIフェーズ(メモリ領域)においても、PEIモジュールM22は、共通インタフェースライブラリSLを用いて、固有のメモリ領域201の共通ライブラリへのアドレス情報204を介してPEIモジュールM21の共通ライブラリSLを読み出す。更に、この共通ライブラリSLを用いて固有のメモリ領域201の共通領域へのアドレス情報203を取得し、この共通領域へのアドレス情報203を用いて共通領域情報を取得することができる。
また、PEIモジュールM21も自身がそなえる共通ライブラリSLを用いて、固有のメモリ領域201の共通領域へのアドレス情報203を取得し、この共通領域へのアドレス情報203を用いて共通領域情報を取得することができる。
従って、固有のメモリ領域201の共通領域202の共通領域情報を、PEIモジュールM21とPEIモジュールM22とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるDXEフェーズ(メモリ領域)での共通ライブラリSLの読み出し手法を、図18を参照しながら、図17に示すフローチャート(ステップF10〜F30に従って説明する)。なお、図18は本情報処理装置100におけるDXEフェーズ(メモリ領域)での共通ライブラリSLへの参照経路を説明する図である。
DXEフェーズ(メモリ領域)において、DEXドライバD2(第2モジュール)がDEXドライバD1(第1モジュール)の共通ライブラリSLの関数を用いる例について説明する。
メモリ領域において、DEXドライバD2は共通インタフェースライブラリSLを呼び出し(ステップF10:図18の符号P51参照)、固有のメモリ領域201の共通ライブラリへのアドレス情報204を取得する(ステップF20:図18の符号P52参照)。DEXドライバD2は、この共通ライブラリへのアドレス情報204を用いて、DEXドライバD1の共通ライブラリSLの関数を呼び出す(ステップF30:図18の符号P53参照)。
このように、DEXフェーズ(メモリ領域)においても、DEXドライバD2は、共通インタフェースライブラリSLを用いて、固有のメモリ領域201の共通ライブラリへのアドレス情報204を介してDEXドライバD1の共通ライブラリSLを読み出すことができる。又、DEXドライバD1も自身がそなえる共通ライブラリSLを用いることができる
従って、DEXドライバD1の共通ライブラリSLを、DEXドライバD1とDEXドライバD2とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるDXEフェーズ(メモリ領域)での共通領域202に格納された共通領域情報の読み出し手法を、図20を参照しながら、図19に示すフローチャート(ステップG10〜G50に従って説明する)。なお、図20は本情報処理装置100におけるDXEフェーズ(メモリ領域)での共通領域202への参照経路を説明する図である。
メモリ領域において、DXEドライバD2(第2モジュール)は共通インタフェースライブラリSLを呼び出し(ステップG10:図20の符号P61参照)、固有のメモリ領域201の共通ライブラリへのアドレス情報204を取得する(ステップG20:図20の符号P62参照)。DXEドライバD2は、この共通ライブラリへのアドレス情報204を用いて、DEXドライバD1(第1モジュール)の共通ライブラリSLを呼び出す(ステップG30:図20の符号P63参照)。
DEXドライバD2は、この共通ライブラリSLから、固有のメモリ領域201の共通領域へのアドレス情報203へアクセスするための情報(例えば、ポインタ)を取得し、この情報に基づいて固定のメモリ領域201の共通領域へのアドレス情報203を取得する(ステップG40:図20の符号P64参照)。DEXドライバD2は、この共通領域へのアドレス情報203を用いて、固有のメモリ領域201の共通領域202にアクセスし(ステップG50:図20の符号P65参照)、この共通領域202に格納されている共通領域情報を取得する。
このように、DEXフェーズ(メモリ領域)においても、DEXドライバD2は、共通インタフェースライブラリSLを用いて、固有のメモリ領域201の共通ライブラリへのアドレス情報204を介してDEXドライバD1の共通ライブラリSLを読み出す。更に、この共通ライブラリSLを用いて固有のメモリ領域201の共通領域へのアドレス情報203を取得し、この共通領域へのアドレス情報203を用いて共通領域情報を取得することができる。
また、DEXドライバD1も自身がそなえる共通ライブラリSLを用いて、固有のメモリ領域201の共通領域へのアドレス情報203を取得し、この共通領域へのアドレス情報203を用いて共通領域情報を取得することができる。
従って、固有のメモリ領域201の共通領域202の共通領域情報を、DEXドライバD1とDEXドライバD2とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるSMMフェーズ(PEI,DXE)での共通ライブラリSLの読み出し手法を、図22を参照しながら、図21に示すフローチャート(ステップH10〜H30に従って説明する)。なお、図22は本情報処理装置100におけるSMMフェーズ(PEI)及びSMMフェーズ(DXE)での共通ライブラリSLへの参照経路を説明する図である。
ここでは、便宜上、SMMフェーズ(PEI)において、PEIモジュールM24(第2モジュール)がPEIモジュールM23(第1モジュール)の共通ライブラリSLの関数を用いる例と、SMMフェーズ(DXE)において、DEXドライバD4(第2モジュール)がDEXドライバD3(第1モジュール)の共通ライブラリSLの関数を用いる例とをまとめて説明する。
SMM領域において、PEIモジュールM24は共通インタフェースライブラリSIを呼び出し(ステップH10:図22の符号P81参照)、SMM固定のメモリ領域211の共通ライブラリへのアドレス情報212を取得する(ステップH20:図22の符号P82参照)。PEIモジュールM24は、この共通ライブラリへのアドレス情報212を用いて、PEIモジュールM23の共通ライブラリSLの関数を呼び出す(ステップH30:図22の符号P83参照)。
同様に、SMM領域において、DEXドライバD4は共通インタフェースライブラリSIを呼び出し(ステップH10:図22の符号P71参照)、SMM固定のメモリ領域211の共通ライブラリへのアドレス情報212を取得する(ステップH20:図22の符号P72参照)。DEXドライバD4は、この共通ライブラリへのアドレス情報212を用いて、DEXドライバD3の共通ライブラリSLの関数を呼び出す(ステップH30:図22の符号P73参照)。
このように、SMMフェーズ(PEI)及びSMMフェーズ(DXE)のいずれにおいても、PEIモジュールM24やDEXドライバD4は、共通インタフェースライブラリSIを用いて、固有のメモリ領域211の共通ライブラリへのアドレス情報212を介してPEIモジュールM23やDEXドライバD3の共通ライブラリSLを読み出すことができる。
また、PEIモジュールM23やDEXドライバD3も自身がそなえる共通ライブラリSLを用いることができる
従って、PEIモジュールM23の共通ライブラリSLを、PEIモジュールM23とPEIモジュールM24とによって共用することが可能となり、又、DEXドライバD3の共通ライブラリSLを、DEXドライバD3とDEXドライバD4とによって共用することが可能となる。
次に、本実施形態の一例としての情報処理装置100におけるSMMフェーズ(PEI,DXE)での共通領域202に格納された共通領域情報の読み出し手法を、図24及び図25を参照しながら、図23に示すフローチャート(ステップJ10〜J50に従って説明する)。なお、図24は本情報処理装置100におけるSMMフェーズ(PEI)での共通領域202への参照経路を説明する図、図25は本情報処理装置100におけるSMMフェーズ(DXE)での共通領域202への参照経路を説明する図である。
SMM領域において、PEIモジュールM24(第2モジュール)やDXEドライバD4(第2モジュール)はそれぞれ共通インタフェースライブラリSLを呼び出し(ステップJ10:図24の符号P91及び図25の符号P101参照)、SMM固有のメモリ領域211の共通ライブラリへのアドレス情報212を取得する(ステップJ20:図24の符号P92及び図25の符号P102参照)。
PEIモジュールM24やDXEドライバD4は、この共通ライブラリへのアドレス情報212を用いて、PEIモジュールM23(第1モジュール)やDEXドライバD3(第1モジュール)の共通ライブラリSLを呼び出す(ステップJ30:図24の符号P93及び図25の符号P103参照)。
PEIモジュールM24やDEXドライバD4は、この共通ライブラリSLから、固有のメモリ領域201の共通領域へのアドレス情報203へアクセスするための情報(例えば、ポインタ)を取得し、この情報に基づいて固定のメモリ領域201の共通領域へのアドレス情報203を取得する(ステップJ40:図24の符号P94及び図25の符号P104参照)。PEIモジュールM24やDEXドライバD4は、この共通領域へのアドレス情報203を用いて、固有のメモリ領域201の共通領域202にアクセスし(ステップJ50:図24の符号P95及び図25の符号P105参照)、この共通領域202に格納されている共通領域情報を取得する。
このように、SMMフェーズ(PEI)やSMMフェーズ(DXE)においても、PEIモジュールM24やDEXドライバD4は、共通インタフェースライブラリSLを用いて、固有のメモリ領域201の共通ライブラリへのアドレス情報204を介してPEIモジュールM23やDEXドライバD3の共通ライブラリSLを読み出す。更に、この共通ライブラリSLを用いて固有のメモリ領域201の共通領域へのアドレス情報203を取得し、この共通領域へのアドレス情報103を用いて共通領域情報を取得することができる。
また、PEIモジュールM23やDEXドライバD3も、各自がそなえる共通ライブラリSLを用いて、固有のメモリ領域201の共通領域へのアドレス情報203を取得し、この共通領域へのアドレス情報203を用いて、それぞれ共通領域情報を取得することができる。
従って、固有のメモリ領域201の共通領域202の共通領域情報を、PEIモジュールM23とPEIモジュールM24とや、DEXドライバD3とDEXドライバD4とで共有することが可能となる。
なお、本実施形態においては、PEIモジュールM12,M22,M24やDEXドライバD2,D4が、共通インタフェースライブラリSLを用いて、共通ライブラリSLや共通領域情報を取得している。すなわち、これらのPEIモジュールM12,M22,M24やDEXドライバD2,D4を実行することにより、前述した情報取得部115としての機能が実現されるといえる。
このように、実施形態の一例としての情報処理装置によれば、PEIモジュールM11が自身がそなえる共通ライブラリSLを用いることができる。その一方で、PEIモジュールM12が、共通インタフェースライブラリSL及び共通ライブラリへのアドレス情報104を介して、PEIモジュールM11の共通ライブラリSLを用いることができる。
同様にして、PEIモジュールM21,M23やDEXドライバD1,D3が、それぞれがそなえる共通ライブラリSLを使用できる。その一方で、PEIモジュールM22がPEIモジュールM21の共通ライブラリSLを、又、PEIモジュールM24がPEIモジュールM23の共通ライブラリSLを用いることができる。更に、DXEドライバD2がDXEドライバd3の共通ライブラリSLを、又、DXEドライバD4がDXEドライバD3の共通ライブラリSLをそれぞれ用いることができる。
すなわち、共通インタフェースライブラリSLをそなえるモジュールが、他のモジュールにそなえられた共通ライブラリSLを使用することができ、共通ライブラリSLを共用することができる。これにより、各モジュールやプログラムデータPのサイズを小さくすることができ、モジュールがロードされるプロセッサキャッシュやRAM20のサイズや、プログラムデータPを格納するBIOS Flash22の容量を小さく構成することができる。従って、処理速度の向上や製造コストを低減することができる。
また、PEIモジュールM11が自身がそなえる共通ライブラリSLを用いて共通領域102の共通領域情報を用いることができる。その一方で、PEIモジュールM12が、共通インタフェースライブラリSL,共通ライブラリSL及び共通領域へのアドレス情報103を用いて共通領域102の共通領域情報を用いることができる。
同様にして、PEIモジュールM21,M23やDEXドライバD1,D3が、それぞれがそなえる共通ライブラリSLを用いて、固定のメモリ領域201の共通領域へのアドレス情報203を介して共通領域202の共通領域情報を使用できる。その一方で、PEIモジュールM22がPEIモジュールM21の共通ライブラリSLを、又、PEIモジュールM24がPEIモジュールM23の共通ライブラリSLを用いて、固定のメモリ領域201の共通領域へのアドレス情報203を介して共通領域202の共通領域情報を使用できる。更に、DXEドライバD2がDXEドライバd3の共通ライブラリSLを、又、DXEドライバD4がDXEドライバD3の共通ライブラリSLをそれぞれ用いて、固定のメモリ領域201の共通領域へのアドレス情報203を介して共通領域202の共通領域情報を使用できる。
従って、複数のモジュールが共通領域102や共通領域202の共通領域情報を使用することができ、これらの共通領域情報を共用することができる。これによっても、各モジュールやプログラムデータPのサイズを小さくすることができ、モジュールがロードされるプロセッサキャッシュやRAM20のサイズや、プログラムデータPを格納するBIOS Flash22の容量を小さく構成することができる。従って、処理速度の向上や製造コストを低減することができる。
また、固定のメモリ領域201に共通領域情報を格納する共通領域202をそなえ、PEIモジュールM21〜M24やDEXドライバD1〜D4が、それぞれ、この共通領域202の共通領域情報を使用できる。これにより、PEIフェーズとDXEフェーズという異なるフェーズのモジュールで共通領域情報を共用することができ、処理速度の向上や製造コストを低減することができる他、利便性が向上する。
また、共通領域設定部114が、CAR領域101の共通領域102に格納されている共通領域情報を固有のメモリ領域201の共通領域202にコピーすることにより、PEIフェーズ(CAR領域)において使用されていた共通領域情報を、PEIフェーズ(メモリ領域)やDXEフェーズやSMMフェーズ(PEI),SMMフェーズ(DXE)においても使用(共用)することができ、利便性が向上する。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、PEIモジュールM11,M21,M23やDEXドライバD1,D3に共通ライブラリSLをそなえ、PEIモジュールM12,M22,M24やDEXドライバD2,D4に共通インタフェースライブラリSLをそなえているが、これに限定されるものではない。すなわち、複数のモジュールのうち、どのモジュールに共通ライブラリSLをそなえてもよく、又、同様に、どのモジュールに共通インタフェースライブラリSLをそなえてもよい。又、同一のモジュールに共通ライブラリSLと他のモジュールの共通ライブラリSLを参照するための共通インタフェースライブラリSLとの両方をそなえてもよく、種々変形して実施することができる。
また、上述した実施形態においては、PEIフェーズ(CAR領域),PEIフェーズ(メモリ領域),SMMフェーズ(PEI)及びSMMフェーズ(DXE)の各フェーズにおいて、それぞれ2つのモジュールで共通ライブラリSLや共通領域情報を共有する例を示しているが、これに限定されるものではない。すなわち、3以上のモジュールで共通ライブラリSLや共通領域情報を共有してもよく、各モジュールの数は適宜変更して実施することができる。
さらに、上述した実施形態においては、プロセッサとしてCPU10をそなえ、このCPU10において起動処理部11としての各種機能を実現しているが、これに限定されるものではなく、例えば、MPU(Micro-Processing Unit)等、他のプロセッサを用いてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
プロセッサをそなえた情報処理装置の起動処理方法であって、
該プロセッサにより実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、
該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、
該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとをそなえることを特徴とする、起動処理方法。
(付記2)
該記憶領域に、2以上のモジュールにより共通に用いられる第2共通情報を格納する共通領域を形成するステップと、
該記憶領域に、該共通領域へアクセスするための共通領域アクセス情報を格納するステップと、
該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、アクセスした当該アクセス情報を用いて該第1共通情報にアクセスし、アクセスした当該第1共通情報に基づいて該共通領域アクセス情報にアクセスし、アクセスした当該共通領域アクセス情報を用いて、該共通領域に格納された該第2共通情報を取得するステップとをそなえることを特徴とする、付記1記載の起動処理方法。
(付記3)
該起動処理が複数のフェーズをそなえ、
該複数のフェーズのうち一のフェーズにおいて、該プロセッサのプロセッサキャッシュを該記憶領域として用い、
該情報処理装置の主記憶装置が使用可能な状態となった後に、該プロセッサキャッシュに格納されている該第2共通情報を該主記憶装置に複写するステップをそなえることを特徴とする、付記1又は2記載の起動処理方法。
(付記4)
プロセッサをそなえた情報処理装置であって、
起動処理時に、該プロセッサにより実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードする第1モジュール設定部と、
起動処理時に、該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するアクセス情報設定部と、
起動処理時に、該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードする第2モジュール設定部と、
該起動処理時に、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得する第1情報取得部とをそなえることを特徴とする、情報処理装置。
(付記5)
該起動処理時に、該記憶領域に、2以上のモジュールにより共通に用いられる第2共通情報を格納する共通領域を形成する共通領域設定部と、
該起動処理時に、該記憶領域に、該共通領域へアクセスするための共通領域アクセス情報を格納する共通領域アクセス情報設定部と、
該起動処理時に、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、アクセスした当該アクセス情報を用いて該第1共通情報にアクセスし、アクセスした当該第1共通情報に基づいて該共通領域アクセス情報にアクセスし、アクセスした当該共通領域アクセス情報を用いて、該共通領域に格納された該第2共通情報を取得する第1情報取得部とをそなえることを特徴とする、付記4記載の情報処理装置。
(付記6)
該起動処理が複数のフェーズをそなえ、
該複数のフェーズのうち一のフェーズにおいて、該プロセッサのプロセッサキャッシュを該記憶領域として用い、
該共通領域設定部が、該情報処理装置の主記憶装置が使用可能な状態となった後に、該プロセッサキャッシュに格納されている該第2共通情報を該主記憶装置に複写することを特徴とする、付記4又は5記載の情報処理装置。
(付記7)
起動処理をコンピュータに実行させるための起動処理プログラムであって、
該コンピュータに実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、
該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、
該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとを、該コンピュータに実行させることを特徴とする、起動処理プログラム。
(付記8)
該記憶領域に、2以上のモジュールにより共通に用いられる第2共通情報を格納する共通領域を形成するステップと、
該記憶領域に、該共通領域へアクセスするための共通領域アクセス情報を格納するステップと、
該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、アクセスした当該アクセス情報を用いて該第1共通情報にアクセスし、アクセスした当該第1共通情報に基づいて該共通領域アクセス情報にアクセスし、アクセスした当該共通領域アクセス情報を用いて、該共通領域に格納された該第2共通情報を取得するステップとを、該コンピュータに実行させることを特徴とする、付記7記載の起動処理プログラム。
(付記9)
該起動処理が複数のフェーズをそなえ、
該複数のフェーズのうち一のフェーズにおいて、該プロセッサのプロセッサキャッシュを該記憶領域として用い、
該情報処理装置の主記憶装置が使用可能な状態となった後に、該プロセッサキャッシュに格納されている該第2共通情報を該主記憶装置に複写するステップを該コンピュータに実行させることを特徴とする、付記7又は8記載の起動処理プログラム。
(付記10)
起動処理をコンピュータに実行させるための起動処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
該起動処理プログラムが、
該コンピュータに実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、
該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、
該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとを、該コンピュータに実行させることを特徴とする、起動処理プログラムを記録したコンピュータ読取可能な記録媒体。
(付記11)
該起動処理プログラムが、
該記憶領域に、2以上のモジュールにより共通に用いられる第2共通情報を格納する共通領域を形成するステップと、
該記憶領域に、該共通領域へアクセスするための共通領域アクセス情報を格納するステップと、
該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、アクセスした当該アクセス情報を用いて該第1共通情報にアクセスし、アクセスした当該第1共通情報に基づいて該共通領域アクセス情報にアクセスし、アクセスした当該共通領域アクセス情報を用いて、該共通領域に格納された該第2共通情報を取得するステップとを、該コンピュータに実行させることを特徴とする、付記10記載の起動処理プログラムを記録したコンピュータ読取可能な記録媒体。
(付記12)
該起動処理が複数のフェーズをそなえ、
該起動処理プログラムが、
該複数のフェーズのうち一のフェーズにおいて、プロセッサキャッシュを該記憶領域として用い、
該情報処理装置の主記憶装置が使用可能な状態となった後に、該プロセッサキャッシュに格納されている該第2共通情報を該主記憶装置に複写するステップを該コンピュータに実行させることを特徴とする、付記10又は11記載の起動処理プログラムを記録したコンピュータ読取可能な記録媒体。
10 CPU(プロセッサ)
11 起動処理部
20 RAM
21 ROM
22 BIOS Flash
23 ストレージ
24 ディスプレイ
100 情報処理装置
101 CAR領域(記憶領域)
102 共通領域
103,203 共通領域へのアドレス情報(共通領域アクセス情報)
104,204,212 共通ライブラリへのアドレス情報(アクセス情報)
111 モジュール設定部(第1モジュール設定部,第2モジュール設定部)
112 アクセス情報設定部
113 共通領域アクセス情報設定部
114 共通領域設定部
115 情報取得部(第1情報取得部,第2情報取得部)
201 固定のメモリ領域(記憶領域)
211 SMM固定のメモリ領域
301,311 SMM領域
1001,2001,2101 管理域
D,D1〜D4 DEXドライバ(モジュール)
H ヘッダ
M,M11,M12,M21〜M24 PEIモジュール(モジュール)
P プログラムデータ
P1〜P3 モジュールプログラム
PI 実行可能イメージ
SL 共通ライブラリ(第1共通情報)
SI 共通インタフェースライブラリ(インタフェース情報)

Claims (8)

  1. プロセッサをそなえた情報処理装置の起動処理方法であって、
    該プロセッサにより実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
    該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、
    該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、
    該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとをそなえることを特徴とする、起動処理方法。
  2. 該記憶領域に、2以上のモジュールにより共通に用いられる第2共通情報(共通領域情報)を格納する共通領域を形成するステップと、
    該記憶領域に、該共通領域へアクセスするための共通領域アクセス情報(共通領域へのアドレス情報)を格納するステップと、
    該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、アクセスした当該アクセス情報を用いて該第1共通情報にアクセスし、アクセスした当該第1共通情報に基づいて該共通領域アクセス情報にアクセスし、アクセスした当該共通領域アクセス情報を用いて、該共通領域に格納された該第2共通情報を取得するステップとをそなえることを特徴とする、請求項1記載の起動処理方法。
  3. 該起動処理が複数のフェーズをそなえ、
    該複数のフェーズのうち一のフェーズにおいて、該プロセッサのプロセッサキャッシュを該記憶領域として用い、
    該情報処理装置の主記憶装置が使用可能な状態となった後に、該プロセッサキャッシュに格納されている該第2共通情報を該主記憶装置に複写するステップをそなえることを特徴とする、請求項1又は2記載の起動処理方法。
  4. プロセッサをそなえた情報処理装置であって、
    起動処理時に、該プロセッサにより実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードする第1モジュール設定部と、
    起動処理時に、該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するアクセス情報設定部と、
    起動処理時に、該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードする第2モジュール設定部と、
    該起動処理時に、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得する第1情報取得部とをそなえることを特徴とする、情報処理装置。
  5. 該起動処理時に、該記憶領域に、2以上のモジュールにより共通に用いられる第2共通情報を格納する共通領域を形成する共通領域設定部と、
    該起動処理時に、該記憶領域に、該共通領域へアクセスするための共通領域アクセス情報を格納する共通領域アクセス情報設定部と、
    該起動処理時に、該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、アクセスした当該アクセス情報を用いて該第1共通情報にアクセスし、アクセスした当該第1共通情報に基づいて該共通領域アクセス情報にアクセスし、アクセスした当該共通領域アクセス情報を用いて、該共通領域に格納された該第2共通情報を取得する第1情報取得部とをそなえることを特徴とする、請求項4記載の情報処理装置。
  6. 該起動処理が複数のフェーズをそなえ、
    該複数のフェーズのうち一のフェーズにおいて、該プロセッサのプロセッサキャッシュを該記憶領域として用い、
    該共通領域設定部が、該情報処理装置の主記憶装置が使用可能な状態となった後に、該プロセッサキャッシュに格納されている該第2共通情報を該主記憶装置に複写することを特徴とする、請求項4又は5記載の情報処理装置。
  7. 起動処理をコンピュータに実行させるための起動処理プログラムであって、
    該コンピュータに実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
    該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、
    該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、
    該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとを、該コンピュータに実行させることを特徴とする、起動処理プログラム。
  8. 起動処理をコンピュータに実行させるための起動処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
    該起動処理プログラムが、
    該コンピュータに実行されることにより当該情報処理装置の起動プロセスの一部を実現する複数のモジュールのうち、2以上のモジュールにより共通に用いられる第1共通情報をそなえる第1モジュールをロードするステップと、
    該情報処理装置にそなえられた記憶領域に、該第1共通情報へアクセスするためのアクセス情報を格納するステップと、
    該アクセス情報にアクセスするためのインタフェース情報をそなえる第2モジュールをロードするステップと、
    該第2モジュールにより、該インタフェース情報によって該アクセス情報にアクセスし、該アクセス情報を介して該第1共通情報を取得するステップとを、該コンピュータに実行させることを特徴とする、起動処理プログラムを記録したコンピュータ読取可能な記録媒体。
JP2010153190A 2010-07-05 2010-07-05 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 Expired - Fee Related JP5609333B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010153190A JP5609333B2 (ja) 2010-07-05 2010-07-05 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US13/074,502 US20120005464A1 (en) 2010-07-05 2011-03-29 Start up processing method, information processing apparatus, and computer-readable storage medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010153190A JP5609333B2 (ja) 2010-07-05 2010-07-05 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体

Publications (2)

Publication Number Publication Date
JP2012014637A true JP2012014637A (ja) 2012-01-19
JP5609333B2 JP5609333B2 (ja) 2014-10-22

Family

ID=45400641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010153190A Expired - Fee Related JP5609333B2 (ja) 2010-07-05 2010-07-05 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体

Country Status (2)

Country Link
US (1) US20120005464A1 (ja)
JP (1) JP5609333B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6129376B1 (ja) * 2016-03-28 2017-05-17 株式会社ラック プログラム
US9858085B2 (en) 2014-01-28 2018-01-02 Nec Corporation Information processing including BIOS apparatus, information processing method thereof, and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102010062835A1 (de) * 2010-12-10 2012-06-14 Codewrights Gmbh Verfahren zur Erstellung eines kundenspezifischen Setups für eine Bibliothek von Gerätetreibern
US11314578B2 (en) * 2019-03-06 2022-04-26 Dell Products L.P. Information handling system and method to detect and recover from spurious resets of PCIe devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
JP2006139795A (ja) * 1998-01-08 2006-06-01 Lg Electronics Inc コンピュータシステムのbiosデータ格納装置及びその駆動方法
US7512719B1 (en) * 2006-03-16 2009-03-31 American Megatrends, Inc. Sharing a dynamically located memory block between components executing in different processor modes in an extensible firmware interface environment
US20110283098A1 (en) * 2009-02-03 2011-11-17 Gillespie Kurt D Electronic device with overlapped boot task fetches and boot task execution

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133994B2 (en) * 2003-04-17 2006-11-07 International Business Machines Corporation Configuration size determination in logically partitioned environment
US7310725B2 (en) * 2004-06-30 2007-12-18 Intel Corporation Common platform pre-boot and run-time firmware services
US8131986B2 (en) * 2006-09-29 2012-03-06 Lenovo (Singapore) Pte. Ltd. System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems
US8176311B1 (en) * 2009-01-23 2012-05-08 Juniper Networks, Inc. Initializing platform-specific features of a platform during early stages of booting the kernel

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JP2006139795A (ja) * 1998-01-08 2006-06-01 Lg Electronics Inc コンピュータシステムのbiosデータ格納装置及びその駆動方法
JP2005196286A (ja) * 2003-12-26 2005-07-21 Okuma Corp リアルタイムアプリケーションプログラムを動作可能なオペレーティングシステム及びその制御方法、共有ライブラリをロードする方法
US7512719B1 (en) * 2006-03-16 2009-03-31 American Megatrends, Inc. Sharing a dynamically located memory block between components executing in different processor modes in an extensible firmware interface environment
US20110283098A1 (en) * 2009-02-03 2011-11-17 Gillespie Kurt D Electronic device with overlapped boot task fetches and boot task execution

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858085B2 (en) 2014-01-28 2018-01-02 Nec Corporation Information processing including BIOS apparatus, information processing method thereof, and storage medium
JP6129376B1 (ja) * 2016-03-28 2017-05-17 株式会社ラック プログラム
JP2017182202A (ja) * 2016-03-28 2017-10-05 株式会社ラック プログラム

Also Published As

Publication number Publication date
JP5609333B2 (ja) 2014-10-22
US20120005464A1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
US10282192B1 (en) Updating device code through a bus
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
JP6089349B2 (ja) マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム
US11106622B2 (en) Firmware update architecture with OS-BIOS communication
JP2016508647A5 (ja)
US10860307B2 (en) Fragmented firmware storage system and method therefor
JP2016035770A (ja) コンピュータシステムにおけるオペレーティングシステムの通信ネットワーク経由でのロードおよびブートを最適化するための方法、コンピュータプログラム、および装置
US11334427B2 (en) System and method to reduce address range scrub execution time in non-volatile dual inline memory modules
JP2016518654A (ja) サーバ制御方法及びサーバ制御装置
TWI514263B (zh) 用於多核心處理單元的啟動載入處理器指派的技術
US11461178B2 (en) System and method to prevent endless machine check error of persistent memory devices
US11429298B2 (en) System and method for tying non-volatile dual inline memory modules to a particular information handling system
US20050240669A1 (en) BIOS framework for accommodating multiple service processors on a single server to facilitate distributed/scalable server management
US20210055946A1 (en) Minimizing downtime when importing virtual machines from other platforms
JP5609333B2 (ja) 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US8789155B2 (en) Pure offline software appliance configuration
JP6198843B2 (ja) ハードディスクシステム操作方法、ストレージシステム及びプロセッサ
TW201112131A (en) Controllers, apparatuses, and methods for transferring data
US11003778B2 (en) System and method for storing operating life history on a non-volatile dual inline memory module
US20200364040A1 (en) System and Method for Restoring a Previously Functional Firmware Image on a Non-Volatile Dual Inline Memory Module
TWI662419B (zh) 具有儲存實體資源的本地磁碟的網路系統
JP4569368B2 (ja) 計算機システム、メモリ初期化方法、および計算機システムのプログラム
US11403162B2 (en) System and method for transferring diagnostic data via a framebuffer
US11263023B1 (en) System and method for updating host operating system drivers from a management controller
JP4023441B2 (ja) コンピュータシステム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140530

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: 20140805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140818

R150 Certificate of patent or registration of utility model

Ref document number: 5609333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees