JP2009193301A - 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム - Google Patents

情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム Download PDF

Info

Publication number
JP2009193301A
JP2009193301A JP2008032986A JP2008032986A JP2009193301A JP 2009193301 A JP2009193301 A JP 2009193301A JP 2008032986 A JP2008032986 A JP 2008032986A JP 2008032986 A JP2008032986 A JP 2008032986A JP 2009193301 A JP2009193301 A JP 2009193301A
Authority
JP
Japan
Prior art keywords
initialization
information
main storage
storage area
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008032986A
Other languages
English (en)
Inventor
Akihito Kohiga
亮仁 小比賀
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008032986A priority Critical patent/JP2009193301A/ja
Priority to US12/358,812 priority patent/US8180930B2/en
Priority to CNA2009100063809A priority patent/CN101510158A/zh
Publication of JP2009193301A publication Critical patent/JP2009193301A/ja
Pending legal-status Critical Current

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/4411Configuring for operating with peripheral devices; Loading of device drivers

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

【課題】情報処理装置に接続されているデバイスの構成に変更があった場合でも、情報処理装置の起動の高速化を図る。
【解決手段】本発明の情報処理装置は、ファームウェアの実行により実現され、ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理を行う初期化手段と、OSの実行により実現され、OSからデバイスへのアクセスを可能にするための第2の初期化処理を行う制御手段と、主記憶手段と、を有する情報処理装置であって、初期化手段は、第1の初期化処理において、デバイスにアクセスするために必要なデバイス制御情報を設定するデバイス初期化手段と、デバイス初期化手段が設定したデバイス制御情報を含む初期化情報を主記憶手段に格納する初期化情報格納手段と、を有し、制御手段は、第2の初期化処理において、デバイスの初期化情報を主記憶手段から取得するデバイス情報適用手段を有する。
【選択図】図1

Description

本発明は、情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラムに関し、特にファームウェアによりOS実行前に実行されたデバイスの初期化処理により取得した初期化情報を用いることで、OSによるデバイスの初期化処理の一部を省略する技術に関する。
ハードディスク、グラフィックカード、ネットワークカードなど多くのデバイスは、情報処理装置からのアクセスを可能にするためには、情報処理装置において初期化処理を行うが必要がある。
情報処理装置におけるデバイスの初期化処理とは、デバイスの接続状況を確認し、デバイスにI/O(Input/Output)ポート番号やIRQ(Interrupt ReQuest)番号などの重要な資源を割り当て、デバイス固有のレジスタにレジスタ情報を設定することにより、デバイスを情報処理装置からアクセスが可能な状態にすることである。
ここで、デバイスの接続状況の確認とは、情報処理装置に接続されているデバイスを検出し、検出したデバイスのデバイス名などの基本的な情報を取得する処理である。なお、デバイスの検出方法はデバイスによって異なる。
I/Oポート番号とは、情報処理装置から各デバイスに割り当てられるデバイスの識別番号である。
IRQとは、デバイスに何らかの状態の変化が生じた場合、デバイスが情報処理装置のCPU(Central Processing Unit)に対してその変化を通知するための電気信号である。IRQ番号とは、CPUに対して状態の変化を通知した時にどのデバイスがその通知を行っているかを識別するための識別番号である。
なお、情報処理装置がデバイスへアクセスする際には、inb,outb等のオペコードに対して、I/Oポート番号や、デバイスへのアクセスの際に必要となるデータの格納場所をオペランドとして指定することにより、デバイスへのデータの入出力などを行う。
この様に、情報処理装置は、接続されているデバイスに対しI/Oポート番号やIRQ番号を割り当てることにより、そのデバイスを認識出来るようになり、デバイスに割り当てたI/Oポート番号やIRQ番号を指定することにより、デバイスへのアクセスが可能となる。
通常の情報処理装置では、上述したデバイスの初期化処理は、BIOS(Basic Input/Output System)等のファームウェアと、OS(Operating System:オペレーティングシステム)と、でそれぞれ行われる。
ファームウェアにおいては、ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするためにデバイスの初期化処理(第1の初期化処理)が行われる。ファームウェアでは、例えばパーソナルコンピューターであれば、ディスクデバイスやキーボード、マウスやビデオカードなど、情報処理装置の基本的な機能を実現するためのデバイスの初期化処理が行われる。なお、ファームウェアとは、情報処理装置に電源が入れられてから最初に実行されるプログラムであり、情報処理装置のハードウェアの故障の確認および上述したデバイスの初期化処理を行い、その後、ハードディスクなどの不揮発性記憶媒体からOSをメモリにロードし、OSを実行するなどの役割を持つ。
一方、OSにおいては、OSもしくはOS上で動作するユーザアプリケーションから情報処理装置に接続されているデバイスへのアクセスを可能にするためにデバイスの初期化処理(第2の初期化処理)が行われる。OSでは、例えばパーソナルコンピューターであればOSが有する各デバイスドライバに対応するデバイスなど、OSが使用するデバイスの初期化処理が行われる。
この様に、情報処理装置の起動時にデバイスの初期化処理をファームウェアとOSとで合計2回行う必要があるため、初期化処理に時間がかかるデバイスが情報処理装置に接続されている場合、情報処理装置の起動に時間がかかってしまう。
初期化処理かかる時間は、デバイスの種類に依存し、初期化処理に時間がかかるデバイスの具体例としては、SCSI(Small Computer System Interface)を用いて接続されるSCSIデバイスが挙げられる。なお、SCSIとは、情報処理装置とデバイス間でデータのやりとりを行うためのインターフェース(規格)である。
情報処理装置は、接続されているSCSIデバイスを識別するために、上述したI/Oポート番号の代わりに、SCSI-IDと呼ばれるSCSIデバイスにあらかじめ設定されている識別番号を利用する。なお、SCSI−IDは、各SCSIデバイスに設置されたジャンパスイッチを操作することにより設定することが出来る。
情報処理装置は、接続されているSCSIデバイスの初期化処理において、各SCSI−IDを順番に指定し、SCSIバスへ特殊な信号を送信する。
指定したSCSI−IDを持つSCSIデバイスが存在する場合、そのSCSIデバイスは情報処理装置に対して返答を行い、情報処理装置はSCSIデバイスからの返答によりそのSCSI−IDを持つSCSIデバイスが接続されていることを検出し、認識することが出来る。
一方、指定したSCSI−IDを持つSCSIデバイスが存在しない場合、情報処理装置はあらかじめ設定された一定時間が経過するまでSCSIデバイスからの返答を待ち、返答がない場合、そのSCSI−IDを持つSCSIデバイスは接続されていないと判断する。
この様に、情報処理装置は、SCSIデバイスの初期化処理において、上述したSCSIデバイスを認識するための処理を全てのSCSI−IDに対して順番に行い、デバイスが存在しないSCSI−IDを指定するたびに一定時間の待ち時間が発生するため、SCSIデバイスの初期化処理には非常に時間がかかってしまう(非特許文献1参照)。
上述したように、情報処理装置からデバイスへのアクセスを可能な状態にするためには、情報処理装置の起動時にデバイスの初期化処理を行う必要がある。しかし、情報処理装置に接続されているデバイスの構成に前回起動したときと変更が無い場合、デバイスの初期化処理のうち一部の処理が必要ない場合が存在する。
例えば、情報処理装置に接続されたデバイスは、情報処理装置から割り当てられたI/Oポート番号やIRQ番号を、そのデバイスが情報処理装置から切り離されるか、情報処理装置に新たなデバイスが接続され情報処理装置に接続されたデバイスの構成に変更が生じるまで使い続ける。
また、SCSI−IDのようにあらかじめデバイスに設定されているなど、デバイス固有のレジスタに設定するレジスタ情報が情報処理装置の起動時に毎回決定される情報ではない場合、すなわち、一度値が決められたら情報処理装置から切り離されるまで変更がないような情報の場合、デバイスは、デバイス固有のレジスタ情報も同一のものを使い続ける。
したがって、接続されているデバイスの構成に変更がない場合、I/Oポート番号や、IRQ番号や、デバイス固有のレジスタ情報などの、情報処理装置がデバイスにアクセスするために必要なデバイス制御情報が変更されないため、再度デバイスの初期化処理を行う際には、前回設定したデバイス制御情報を再利用すれば、デバイス制御情報を設定する処理(デバイス認識処理)を行う必要がなくなる。
この様な特徴を利用して、情報処理装置に接続されているデバイスの構成に変更がない場合、一度デバイスに設定したデバイス制御情報を不揮発性記憶媒体に格納しておき、再度デバイスの初期化処理を行う際に、不揮発性記憶媒体に格納されているデバイス制御情報を用いることで、デバイスの初期化処理からデバイス認識処理を省略する方法が存在する。
この方法を用いた例として、特許文献1には、BIOSにおけるデバイスの初期化処理において、一度デバイスに設定したデバイス制御情報を含むデバイス情報をフラッシュBIOS−ROMに格納しておき、再度デバイスの初期化処理を行う際にフラッシュBIOS−ROMに格納しておいたデバイス情報を用いることで、デバイス認識処理を省略する技術が記載されている。
以下に、特許文献1に記載されている、デバイス認識処理を省略する技術を用いたシステムの構成および動作について、図14のブロック図と、図15および図16のフローチャートと、を用いて説明する。
はじめに、このシステムの構成について説明する。図14に示すように、特許文献1に記載されているシステムは、フラッシュBIOSメモリ1000を有しており、情報処理装置の起動時に、BIOSにおけるデバイスの初期化処理において、フラッシュBIOSメモリ1000内にメモリ情報1001やドライブ情報1002など各デバイスのデバイス情報を格納しておき、再度BIOSがデバイスの初期化処理を行う際に、格納しておいたデバイス情報を使用する。
以下、特許文献1に記載されている技術を用いたシステムの動作を説明する。
図15のフローチャートを参照すると、まず、情報処理装置に電源が入れられる(電源オン)(S36)。
次にEC/KBCからウェイクアップ要因を取得する(S37)。EC/KBCとは電源が押されていた時間を計測し、その長さによってウェイクアップ要因が、簡易POST処理か通常のPOST処理かを区別する。POST処理とは電源が入れられた後、自動的に行われる処理の集合を指す。このPOST処理にはBIOSによるデバイスの初期化処理も含まれる。
次に、取得したウェイクアップ要因が簡易POST処理か通常のPOST処理かを判断する(S38)。
取得したウェイクアップ要因が、簡易POST処理ならば(S38のYES)、フラッシュBIOS−ROM1000に簡易POST処理のフラグをセットする(S39)。
一方、通常のPOST処理ならば(S38のNO)、フラグのセットはせずに、メモリデバイスの初期化処理をスタートする(S40)。
次に、フラッシュBIOS−ROM1000にフラグがセットされているかを確認する(S41)。
フラッシュBIOS−ROM1000に、フラグがセットされていなければ(S41のNO)、フラッシュBIOS−ROM1000に格納されている、メモリデバイスのデバイス情報である、メモリ情報1001に従って、メモリの初期化処理を行う(S42)。
一方、フラグがセットされていれば(S41のYES)、メモリデバイスからメモリ情報1001を取得(リード)し、取得したメモリ情報に従って、メモリデバイスの初期化処理を行い(S43)、フラッシュBIOS−ROM1000にメモリデバイスから取得したメモリ情報1001を格納する(S44)。
以上の処理により、メモリデバイスの初期化処理が終了する(S45)。
次に、図16のフローチャートへと処理が移り、ドライブデバイスの初期化処理がスタートする(S46)。
次に、フラッシュBIOS−ROM1000にフラグがセットされているかを確認し(S47)、フラグがセットされていれば(S47のYES)、フラッシュBIOS−ROM1000に格納されている、ドライブデバイスのデバイス情報であるドライブ情報1002に従ってドライブデバイスの初期化処理を行う(S48)。
一方、フラグがセットされていなければ(S47のNO)、ドライブデバイスからドライブ情報1002を取得(リード)し、取得したドライブ情報1002に従ってドライブデバイスの初期化処理を行い(S49)、ドライブデバイスから取得したドライブ情報1002をフラッシュBIOS−ROM1000に格納する(S50)。
その後、BIOSは、ドライブデバイス初期化処理を終了し(S51)、OSを起動する(S52)。
特許文献1に記載されている技術においては、この様な動作によりBIOSにおけるデバイスの初期化処理からデバイス認識処理を省略している。
また、特許文献2には、OSの初期化処理において、OSの初期化処理が完了した時点でのメモリイメージを不揮発性記憶媒体に格納しておき、再度OSの初期化処理を行う際に、格納しておいたメモリイメージをメモリに展開することで、デバイス認識処理を含む様々な処理をOSの初期化処理から省略する技術が記載されている。
この様に、ファームウェアやOSにおけるデバイスの初期化処理から、デバイス制御情報を設定するデバイス認識処理を省略することが可能な場合、情報処理装置の起動の高速化を図ることが出来る。
特開2006−259903号公報 特開2005−284491号公報 菅谷誠一著「SCSI−2詳細解説」CQ出版株式会社、1994年8月15日、pp.47−53
しかし、特許文献1や特許文献2に記載されている技術には、以下のような問題が存在する。
特許文献1や特許文献2に記載されている技術は、一度取得したデバイス情報は情報処理装置に接続されているデバイスの構成に変更が無い限りにおいて再利用が可能であるといった特徴を利用して、ファームウェアもしくはOSにおけるデバイスの初期化処理にかかる時間を短縮し、情報処理装置の起動の高速化を図っている。
そのため、これらの技術では、情報処理装置に接続されているデバイスの構成に変更が生じた場合、情報処理装置の起動の高速化を図ることが出来ないという課題が存在する。
本発明の目的は、上述した課題を解決することが出来る情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラムを提供することにある。
上記目的を達成するために本発明の情報処理装置は、
ファームウェアの実行により実現され、前記ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理を行う初期化手段と、前記ファームウェアの実行後、オペレーティングシステムの実行により実現され、前記オペレーティングシステムから前記デバイスへのアクセスを可能にするための第2の初期化処理を行う制御手段と、主記憶手段と、を有する情報処理装置であって、
前記初期化手段は、
前記第1の初期化処理において、該第1の初期化処理の対象となるデバイスにアクセスするために必要なデバイス制御情報を設定するデバイス初期化手段と、
前記デバイス初期化手段が設定した前記デバイス制御情報を含む初期化情報を前記主記憶手段に格納する初期化情報格納手段と、を有し、
前記制御手段は、前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスの初期化情報を前記主記憶手段から取得するデバイス情報適用手段を有することを特徴とする。
上記目的を達成するために本発明のデバイス初期化処理省略方法は、
ファームウェアの実行により実現され、前記ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理を行う初期化手段と、前記ファームウェアの実行後、オペレーティングシステムの実行により実現され、前記オペレーティングシステムから前記デバイスへのアクセスを可能にするための第2の初期化処理を行う制御手段と、主記憶手段と、を有する情報処理装置が行うデバイス初期化方法であって、
前記初期化手段が、
前記第1の初期化処理において、該第1の初期化処理の対象となるデバイスにアクセスするために必要なデバイス制御情報を設定する第1デバイス初期化ステップと、
前記第1デバイス初期化ステップで設定した前記デバイス制御情報を含む初期化情報を前記主記憶手段に格納する格納ステップと、を有し、
前記制御手段が、前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスの初期化情報を前記主記憶手段から取得する第2デバイス初期化ステップを有することを特徴とする。
上記目的を達成するために本発明のデバイス初期化処理省略プログラムは、
情報処理装置に、
ファームウェアの実行により実現され、前記ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理において、該第1の初期化処理の対象となるデバイスにアクセスするために必要なデバイス制御情報を設定する第1デバイス初期化手順と、
前記第1デバイス初期化手順で設定した前記デバイス制御情報を含む初期化情報を主記憶手段に格納する格納手順と、を前記ファームウェアにより実行させ、
オペレーティングシステムから前記デバイスへのアクセスを可能にするための第2の初期化処理において、該第2の初期化処理の対象となるデバイスの初期化情報を前記主記憶手段から取得する第2デバイス初期化手順を前記オペレーティングシステムにより実行させることを特徴とするデバイス初期化プログラム。
本発明の情報処理装置によれば、ファームウェアの実行により実現される初期化手段は、第1の初期化処理において、第1の初期化処理の対象となるデバイスのデバイス制御情報を設定し、設定したデバイス制御情報を含む初期化情報を主記憶手段に格納し、オペレーティングシステムの実行により実現される制御手段は、第2の初期化処理において、第2の初期化処理の対象となるデバイスの初期化情報を主記憶手段から取得する構成となっている。
したがって、情報処理装置に接続されているデバイスの構成に変更があった場合でも、初期化手段は、第1の初期化処理において、デバイスの構成の変更内容を反映した初期化情報を取得して主記憶手段に格納することが出来るため、制御手段は、第2の初期化処理において、主記憶手段から取得した初期化情報を用いてデバイスの初期化処理を行うことにより、第2の初期化処理からデバイス制御情報を設定する処理を省略することが出来る。
これにより、情報処理装置に接続されているデバイスの構成に変更があった場合でも、情報処理装置の起動の高速化を図ることが出来るという効果が得られる。
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
(第1の実施形態)
図1に、本発明の第1の実施形態の情報処理装置の構成を示す。
図1に示すように、本実施形態の情報処理装置は、初期化手段100と、主記憶手段200と、制御手段300、とを有している。また、初期化手段100はデバイス初期化手段102と初期化情報格納手段103を有しており、制御手段300はデバイス情報適用手段を有しているものとする。
初期化手段100は、情報処理装置に電源が入れられファームウェアが実行されることにより実現される。ファームウェアはOSの実行前に実行されるため、初期化手段100における処理は全てOSの実行前に行われる。
初期化手段100は、まず、情報処理装置のハードウェアの故障を診断し、その後、ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするためにデバイス初期化手段102によりデバイスの初期化処理(第1の初期化処理)を行う。初期化手段100においては、例えば、パーソナルコンピューターであればディスクデバイスやキーボード、マウスやビデオカードなど、情報処理装置の基本的な機能を実現するためのデバイスの初期化処理を行う。
デバイス初期化手段102は、初期化手段100におけるデバイスの初期化処理において、初期化処理の対象となるデバイスにアクセスするために必要な、I/Oポート番号や、IRQ番号や、デバイス固有のレジスタ情報などのデバイス制御情報を設定するデバイス認識処理を行う。
初期化情報格納手段103は、デバイス初期化手段102が設定したデバイス制御情報を含む初期化情報500を主記憶手段200に格納する。
主記憶手段200は、情報処理装置が有する主たる記憶手段であり、本実施形態においては初期化情報格納領域103が初期化情報500を格納するための手段として用いる。
制御手段300は、初期化手段100によるデバイスの初期化処理後に、OSが実行されることで実現される。制御手段300は、OSから情報処理装置に接続されているデバイスへのアクセスを可能にするために、デバイス情報適用手段306によりデバイスの初期化処理(第2の初期化処理)を行う。なお、制御手段300においては、OSが使用するデバイスの初期化処理が行われる
デバイス情報適用手段306は、制御手段300におけるデバイスの初期化処理において、主記憶手段200から初期化情報500を取得する。これにより、デバイス情報適用手段306は、取得した初期化情報500を用いることで、デバイスの初期化処理から、デバイス制御情報を設定する処理、つまりデバイス認識処理を省略することが出来る。
次に、図2のフローチャートを参照して本実施形態の動作について説明する。
まず、デバイス初期化手段102は、デバイスの初期化処理を行う(S1)。デバイス初期化手段102は、デバイスの初期化処理において、初期化手段100において初期化処理の対象となるデバイスのデバイス認識処理を行い、デバイス制御情報を設定する。
次に、初期化情報格納手段103は、デバイス初期化手段102が設定したいデバイス制御情報を含む初期化情報500を主記憶手段200に格納する(S2)。
次に、デバイス情報適用手段306は、制御手段300におけるデバイスの初期化処理において、主記憶手段200に格納されている初期化情報500を取得する(S3)。
その後、デバイス情報適用手段306は、取得した初期化情報500を用いて、制御手段300において初期化処理の対象となるデバイスの初期化処理を行う(S4)。
これにより、デバイス情報適用手段306は、制御手段300におけるデバイスの初期化処理から、デバイス認識処理を省略することが出来る。
次に、本実施形態の効果について説明する。
上述したように、本実施形態の情報処理装置においては、ファームウェアの実行により実現される初期化手段100は、第1の初期化処理において、第1の初期化処理の対象となるデバイスのデバイス制御情報を設定し、設定したデバイス制御情報を含む初期化情報500を主記憶手段200に格納し、オペレーティングシステムの実行により実現される制御手段300は、第2の初期化処理において、第2の初期化処理の対象となるデバイスの初期化情報500を主記憶手段200から取得する構成となっている。
したがって、情報処理装置に接続されているデバイスの構成に変更があった場合でも、初期化手段100は、第1の初期化処理において、デバイスの構成の変更内容を反映した初期化情報500を取得して主記憶手段200に格納することが出来るため、制御手段300は、第2の初期化処理において、主記憶手段200から取得した初期化情報500を用いてデバイスの初期化処理を行うことにより、第2の初期化処理からデバイス制御情報を設定する処理を省略することが出来る。
これにより、情報処理装置に接続されているデバイスの構成に変更があった場合でも、情報処理装置の起動の高速化を図ることが出来るという効果が得られる。
(第2の実施形態)
図3に、本発明の第2の実施形態の情報処理装置の構成を示す。
図3に示すように、本実施形態の情報処理装置は、図1に示した第1の実施形態と比較して、初期化手段100が主記憶領域情報提供手段101を有している点と、主記憶手段200が初期化情報格納領域201を有している点と、制御手段300が主記憶領域情報取得手段301と主記憶領域情報302と初期化情報303とデバイスドライバ307とデバイス認識手段305とを有している点と、が異なる。また、デバイスドライバ307は、デバイスドライバ初期化関数304を有しているものとする。他の構成要素については第1の実施形態と同様であるため、図1と同様の符号を付し、適宜説明を省略する。
本実施形態のデバイス初期化手段102は、第1の実施形態で行った処理に加え、初期化手段100において初期化処理の対象となるデバイスのデバイス名を取得する処理を行う。
本実施形態の初期化情報格納手段103は、第1の実施形態で用いた初期化情報500にデバイス初期化手段102が取得したデバイス名を追加し、初期化情報500に加え、デバイスの種類や、I/Oメモリアドレスなどの情報を含むデバイス情報400を主記憶手段200の初期化情報格納領域201に格納する。また、初期化情報格納手段103は、主記憶手段200上のデバイス情報400を格納した初期化情報格納領域201の位置情報を、主記憶領域情報提供手段101が管理する主記憶手段200上の各領域の位置情報である主記憶領域情報302として格納する。
主記憶領域情報提供手段101は、主記憶領域情報302を管理し、制御手段300に提供するための手段である。なお、主記憶領域情報提供手段101が制御手段300の主記憶領域情報取得手段301により呼び出される前に、初期化情報格納手段103により初期化情報格納領域201の位置情報が主記憶領域情報302として格納される。
本実施形態の主記憶手段200は、デバイス情報400を格納するための初期化情報格納領域201を有している。
初期化情報格納領域201は、初期化情報格納手段103がデバイス情報400を格納するための領域である。図4に初期化情報格納領域201の構造を示す。図4に示すように、初期化情報格納領域201には各デバイスのデバイス情報400が格納されている。また、図4に示すように、初期化情報格納領域201に格納されているデバイス情報400には、デバイス名や、デバイスの種類や、I/Oポート番号や、IRQ番号や、I/Oメモリアドレスや、その他デバイス固有の設定情報などが含まれているものとする。
主記憶領域情報取得手段301は、主記憶領域情報提供手段101が提供する主記憶領域情報302を取得する手段である。主記憶領域情報取得手段301が取得した主記憶領域情報302には、デバイス情報400を格納した初期化情報格納領域201の位置情報が含まれており、デバイス情報適用手段306により利用される。
初期化情報リスト303は、初期化情報500を登録してあるリストである。初期化情報リスト303に登録されている初期化情報500には、デバイス名や、I/Oポート番号や、IRQ番号や、その他デバイス固有の設定情報などが含まれている。
なお、OSは、初期化情報リスト303に登録されている各デバイスの初期化情報500を用いることでデバイスを認識し、デバイスへのアクセスが可能となる。
デバイスドライバ307は、OSやOS上で動作するユーザアプリケーションに対し、情報処理装置に接続されているデバイスにアクセスするための機能を提供する。そのため、デバイスドライバ307は、デバイスドライバ初期化関数304を用いてデバイスの初期化処理を行う。その後、デバイスドライバ307は、デバイスの初期化処理により得られた初期化情報500を基に、制御手段300が提供するread,writeなどの抽象的な関数のインターフェイスに対して、実際に動作する部分となるデバイスの操作関数を関連付ける。これにより、OSやユーザアプリケーションは、制御手段300の用意するread,write等の関数呼び出しを通して、デバイスにアクセスするが出来るようになる。なお、デバイスにより設定する情報や、操作方法が異なるため、デバイスドライバ307はデバイス毎にそれぞれ固有のものが用意される。
この様に、OSはデバイスドライバ307を通してデバイスにアクセスするため、OSにおけるデバイスの初期化処理(第2の初期化処理)では、OSが使用するデバイス、つまり、OSが有する各デバイスドライバ307に対応する特定のデバイスの初期化処理が行われる。
デバイスドライバ初期化関数304は、デバイスドライバ307より呼び出され、情報処理装置に接続されているデバイスの中から、デバイスドライバ307が対応する特定のデバイスの初期化処理を行う。デバイスドライバ初期化関数304もデバイスドライバ307と同様に各デバイスそれぞれに固有のものが用意される。
デバイス認識手段305は、デバイスドライバ初期化関数304より呼び出され、情報処理装置に接続されているデバイスの中から、デバイスドライバ307およびデバイスドライバ初期化関数304が対応する特定のデバイスの初期化処理を行う。
具体的には、まず、デバイス認識手段305は、特定のデバイスの接続状況の確認を行い、特定のデバイスのデバイス名などの基本的な情報を取得する。次に、デバイス認識手段305は、特定のデバイスのデバイス認識処理を行う前に、デバイス情報適用手段306に特定のデバイスのデバイス名が初期化情報格納領域201から取得したデバイス情報400に含まれるデバイス名と一致するかを判定させる。デバイス認識手段305は、デバイス名が一致する場合、特定のデバイスのデバイス認識処理を行うことでデバイス制御情報を設定し、特定のデバイスのデバイス名とデバイス制御情報を含む初期化情報500を初期化情報リスト303に登録する。
本実施形態のデバイス情報適用手段306は、デバイス認識手段305から特定のデバイスのデバイス名が知らされると、主記憶領域情報302から初期化情報格納領域201の位置情報を抽出し、抽出した初期化情報格納領域201の位置情報を用いて主記憶手段200上の初期化情報格納領域201の位置を特定する。その後、デバイス情報適用手段306は、位置を特定した初期化情報格納領域201からデバイス情報400を取得する。
また、デバイス情報適用手段306は、特定のデバイスのデバイス名と初期化情報格納領域201から取得したデバイス情報400に含まれるデバイス名が一致するかを判定し、一致する場合、初期化情報格納領域201から取得したデバイス情報400から初期化情報500を抽出し、抽出した初期化情報500を、特定のデバイスの初期化情報として初期化情報リスト303に登録する。
次に、図5及び図6のフローチャートを参照して本実施形態の情報処理装置の動作について説明する。
図5のフローチャートは、初期化手段100の各手段の動作を示している。なお、これらの動作は、OSの実行により制御手段300が実現され、デバイスドライバ307を通してデバイスドライバ初期化関数304が実行される前に予め行われる。
図5のフローチャートを参照すると、まず、デバイス初期化手段102は情報処理装置に接続されているデバイスの初期化処理を行う(S5)。デバイス初期化手段102は、デバイスの初期化処理において、初期化手段100において初期化処理の対象となるデバイスのデバイス名を取得するとともに、そのデバイスのデバイス認識処理を行うことでデバイス制御情報を設定する。
次に、初期化情報格納手段103は、デバイス初期化手段102が取得したデバイス名や設定したデバイス制御情報を含む初期化情報500と、デバイスの種類やI/Oメモリアドレスなどの情報と、を含むデバイス情報400を主記憶手段200上の初期化情報格納領域201に格納する(S6)。
次に、初期化情報格納手段103は、初期化すべきデバイスが残っているかを判定する(S7)。
初期化情報格納手段103は、初期化すべきデバイスが残っている場合(S7のYES)、デバイス初期化手段102に次のデバイスの初期化処理を行わせる。初期化情報格納手段103は、初期化手段100において初期化処理の対象となる全てデバイスの初期化処理が終わるまでこの処理を繰り返す。
初期化情報格納手段103は、初期化すべきデバイスが残っていない場合(S7のNO)、各デバイスのデバイス情報400を格納した主記憶手段200上の初期化情報格納領域201の位置情報を、主記憶領域情報提供手段101が管理する主記憶情報302に追加する。(S8)。
図6のフローチャートは、制御手段300の各手段の動作を示している。なお、これらの動作は、初期化手段100におけるデバイスの初期化処理後、ファームウェアがOSを主記憶手段200にロードし実行することにより実現された制御手段300によりデバイスドライバ307を通してデバイスドライバ初期化関数304が実行された時に開始される。
図6のフローチャートを参照すると、まず、デバイスドライバ初期化関数304は、情報処理装置に接続されているデバイスの中から、対応する特定のデバイスの初期化処理を行うために、デバイス認識手段305を呼び出す。
デバイス認識手段305は、特定のデバイスの初期化処理を行うに当たり、まず、特定のデバイスの接続状況の確認を行い、特定のデバイスのデバイス名を取得する(S9)。その後、デバイス認識手段305は、特定のデバイスのデバイス認識処理を行う前に、取得した特定のデバイスのデバイス名を指定してデバイス情報適用手段306を呼び出す。
次に、デバイス情報適用手段306は、主記憶領域情報302から初期化情報格納領域201の位置情報を抽出する(S10)。
次に、デバイス情報適用手段306は、主記憶領域情報302から抽出した初期化情報格納領域201の位置情報を用いて初期化憶装置200上の初期化情報格納領域201の位置を特定し、位置を特定した初期化情報格納領域201からデバイス情報400を取得する(S11)。
次に、デバイス情報適用手段306は、デバイス認識手段305が取得した特定のデバイスのデバイス名と、初期化情報格納領域201から取得したデバイス情報400に含まれるデバイス名と、が一致するかを判定する(S12)。
デバイス情報適用手段306は、デバイス名が一致する場合(S12のYES)、取得したデバイス情報400から初期化情報500を抽出し初期化情報リスト303に登録する(S13)。
初期化情報リスト303に初期化情報500を登録することで、OSから特定のデバイスへのアクセスが可能となり、特定のデバイスの初期化処理は終了となる。この場合、初期化情報格納領域201から取得したデバイス情報400から初期化情報500抽出したため、初期化処理からデバイス認識処理を省略したことになる。
一方、デバイス情報適用手段306は、デバイス名が一致しない場合(S12のNO)、初期化情報格納領域201に他のデバイス情報400が残っているかを判定する(S14)。
デバイス情報適用手段306は、初期化情報格納領域201に他のデバイス情報400が残っている場合(S14のYES)、初期化情報格納領域201から他のデバイス情報400を取得する。デバイス情報適用手段306は、この処理を繰り返すことで特定のデバイスのデバイス名を含むデバイス情報400が初期化情報格納領域201に格納されているかを判定する。
デバイス情報適用手段306は、初期化情報格納領域201に他のデバイス情報400が残っていない場合(S14のNO)、つまり、特定のデバイスのデバイス名を含むデバイス情報400が存在しない場合、処理を終了し、デバイス認識手段305を呼び出す。
デバイス認識手段305は、初期化情報格納領域201に特定のデバイスのデバイス名を含むデバイス情報400が存在しない場合、通常のデバイスの初期化処理通り、特定のデバイスのデバイス認識処理を行うことでデバイス制御情報を設定し(S15)、特定のデバイスのデバイス名とデバイス制御情報を含む初期化情報500を初期化情報リスト303に登録する(S16)。
次に、本実施の形態の効果について説明する。
上述したように、本実施形態の情報処理装置においては、ファームウェアの実行により実現される初期化手段100は、主記憶領域情報302にデバイス情報400を格納した初期化情報格納領域201の位置情報を追加し、OSの実行により実現される制御手段300は、初期化手段100から取得した主記憶領域情報302から初期化情報格納領域201の位置情報を抽出することで主記憶手段200上の初期化情報格納領域201の位置を特定し、位置を特定した初期化情報格納領域201からデバイス情報400を取得する構成となっている。
したがって、第1の実施形態で得られる効果に加え、初期化情報格納領域201を主記憶手段200上の任意の位置に確保することが出来るといった効果が得られる。
また、上述したように、本実施形態の情報処理装置においては、OSの実行により実現される制御手段300は、特定のデバイスのデバイス名と初期化情報格納領域201から取得したデバイス情報400に含まれるデバイス名が一致しない場合、特定のデバイスのデバイス制御情報を設定し(デバイス認識処理)、特定のデバイスのデバイス名とデバイス制御情報を含む初期化情報500を初期化情報リストに登録する構成となっている。
したがって、上述した効果に加え、初期化手段100におけるデバイスの初期化処理でデバイス情報400が取得されなかったデバイスが存在した場合でも、OSからそのデバイスにアクセスすることが出来るという効果が得られる。
(第3の実施形態)
図7に、本発明の第3の実施形態の情報処理装置の構成を示す。
図7に示すように、本実施形態は、図3に示した第2の実施形態と比較して、制御手段300に、デバイス初期化判定手段308と、デバイス非初期化判定リスト309と、を追加した点が異なる。他の構成要素については第3の実施形態と同様であるため、図3と同様の符号を付し説明を省略する。
デバイス非初期化判定リスト309は、制御手段300におけるデバイスの初期化処理において、初期化情報格納領域201からデバイス情報400を取得しないデバイスのデバイス名を記載したリストである。図8にデバイス非初期化判定リスト309の具体例を示す。
デバイス初期化判定手段308は、デバイス非初期化判定リスト309にデバイス認識手段305が取得した特定のデバイスのデバイス名が記載されているかを判定する。
デバイス初期化判定手段308は、特定のデバイスのデバイス名が記載されている場合、初期化情報格納領域からデバイス情報400を取得しないデバイスと判断し、デバイス認識手段305を呼び出す。デバイス認識手段305は、通常のデバイスの初期化処理通り、特定デバイスのデバイス認識処理を行うことでデバイス制御情報を設定し、特定のデバイスのデバイス名とデバイス制御情報を含む初期化情報500を初期化情報リスト303に登録する。
一方、デバイス初期化判定手段308は、特定のデバイスのデバイス名が記載されていない場合、デバイス情報適用手段306を呼び出す。デバイス情報適用手段306は初期化情報格納領域201からデバイス情報400を取得し、特定のデバイスの初期化処理を行う。
次に、図9及び図10のフローチャートを参照して本実施形態の動作について説明する。なお、初期化手段100における各手段の動作は、図5に示した第2の実施形態における動作と同様のため説明を省略する。
図9および図10のフローチャートは、制御手段300の各手段の動作を示している。なお、これらの動作は、初期化手段100によるデバイスの初期化処理後、ファームウェアがOSを主記憶手段200にロードし実行することにより実現された制御手段300によりデバイスドライバ307を通してデバイスドライバ初期化関数304が実行された時に開始される。
図9のフローチャートを参照すると、まず、デバイスドライバ初期化関数304は、情報処理装置に接続されているデバイスの中から、対応する特定のデバイスの初期化処理を行うために、デバイス認識手段305を呼び出す。
デバイス認識手段305は、特定のデバイスの初期化処理を行うに当たり、まず、特定のデバイスの接続状況の確認を行い、特定のデバイスのデバイス名を取得する(S17)。その後、デバイス認識手段305は、特定のデバイスのデバイス認識処理を行う前に、取得した特定のデバイスのデバイス名を指定してデバイス初期化判定手段308を呼び出す。
次に、デバイス初期化判定手段308は、デバイス非初期化判定リスト309にデバイス認識手段305が取得した特定のデバイスのデバイス名が記載されているか判定する(S18)。
デバイス初期化判定手段308は、特定のデバイスのデバイス名が記載されている場合(S18のYES)、デバイス認識手段305を呼び出す。デバイス初期化判定手段308により呼び出されたデバイス認識手段305は、通常のデバイスの初期化処理通りに、特定のデバイスのデバイス認識処理を行うことでデバイス制御情報を設定し(S19)、特定のデバイスのデバイス名とデバイス制御情報を含む初期化情報500を初期化情報リスト303に登録する(S20)。
なお、特定のデバイスのデバイス名が記載されていない場合、図10に移行する。図10のS21〜S27の処理は、図6のS10〜S16の処理と同様のため説明を省略する。
次に、本実施形態の効果について説明する。
上述したように、本実施形態の情報処理装置においては、OSの実行により実現される制御手段300は、デバイス非初期化判定リスト309に制御手段300における初期化処理の対象となるデバイスのデバイス名が記載されているかを判定することで、初期化情報格納領域201からデバイス情報400を取得してデバイスの初期化処理を行うかを判定する構成となっている。
これにより、第1および第2の実施形態の効果に加え、情報処理装置に接続されているデバイスの中から、デバイス情報400を取得してデバイスの初期化処理を行うデバイスを取捨選択すること出来るという効果が得られる。
以下に、具体的な実施例を用いて、本発明を実施するための最良の形態を説明する。
図11に、本実施例の情報処理装置の構成を示す。
なお、本実施例は、図3に示した第2の実施形態を具体化したものであり、情報処理装置にPCIを用いて接続されたPCIデバイスの初期化処理において、本発明を適用した場合の動作を説明するものである。
図11に示すように、本実施例は、初期化手段100の具体例としてBIOS600を、制御手段300の具体例としてLinuxOS800を、主記憶手段200の具体例として物理メモリ700を、主記憶領域情報提供手段101の具体例としてBIOS命令(0x15)601を、主記憶領域情報取得手段301の具体例としてsetup関数801を、主記憶領域情報302の具体例としてbiosmap情報802を、初期化情報リスト303の具体例としてpci_devices構造体803を、デバイスドライバ初期化関数304の具体例としてpci_init関数804を、デバイス認識手段305の具体例としてpci_enable_device関数805を、それぞれ備えている。他の構成要素については第2の実施形態と同様であるため、図3と同様の符号を付し説明を省略する。
BIOS命令とは、BIOS600が提供する様々なサービスを利用するための命令である。CPUレジスタに指定された数値を設定し、BIOS命令を呼び出すことによって、CPUスピード情報を取得したり、物理メモリ700のサイズ情報を取得したりすることが出来る。本実施例においては、BIOS命令のうち、BIOS600が提供する物理アドレスマップ(biosmap情報802)を取得するBIOS命令(0x15)601を利用する。
biosmap情報802は、BIOS600がデバイスの初期化処理の際に使用した物理メモリ700上の各領域の位置情報を記録したものである。
図12に、biosmap情報802の具体例を示す。図12に示すように、biosmap情報802は、各情報を格納した領域の、先頭アドレスと、最終アドレスと、その領域の利用方法と、の3つのエントリから構成される。本実施例においては、初期化情報格納手段103がbiosmap情報802に初期化情報格納領域201の位置情報を追加することにより、デバイス情報適用手段306が初期化情報格納領域201の位置情報を取得し、主記憶手段上の初期化情報格納領域201の位置を特定出来るようにしている。
setup関数801は、LinuxOS800を実行するのに必要な環境を準備するための関数である。LinuxOS800は、setup関数801を用いてBIOS命令(0x15)601を呼び出し、biosmap情報802を取得する。LinuxOS800は、取得したbiosmap情報802を物理メモリ700の管理を行う際の参考情報として用いる。
pci_devices構造体803は、第2の実施形態における初期化情報500を格納するpci_dev構造体900のリストである。pci_devices構造体803に格納されているpci_dev構造体900は、第2の実施形態における初期化情報500と同様に、デバイス名(ベンダーIDおよびデバイスIS)と、I/Oポート番号と、IRQ番号と、その他デバイス固有の設定情報と、を格納している。
pci_init関数804は、情報処理装置にpciを用いて接続されたpciデバイスためのデバイスドライバ307をLinuxOS800がロードする際に、最初に実行される関数である。pci_init関数804は、pci_enable_device関数805を呼び出すことで、pciデバイスの初期化処理を行う。
pci_enable_device関数805は、pciデバイスの初期化処理を行い、有効化するための関数である。
なお、本実施例においては、pci_enable_device関数805は、pci_init関数804により呼び出されると、まず、自身が対応する特定のデバイスの接続状況の確認し、特定のデバイスのデバイス名を取得し、その後、デバイス認識処理を行う前に、デバイス情報適用手段306を呼び出し、取得した特定のデバイス名と初期化情報格納領域201から取得したデバイス情報400に含まれるデバイス名とが一致するかを判定させる。
次に、図13のフローチャートを参照して本実施例の動作について説明する。
なお、BIOS600における各手段の動作は、図5に示した第2の実施形態におけるファーウェア100の実行により実現する初期化手段100の対応する各手段の動作と同様であるため、ここでは説明を省略する。
図13のフローチャートは、LinuxOS800の各手段の動作を示している。なお、これらの動作は、BIOS600によるデバイスの初期化処理後、BIOS600がLinuxOS800を物理メモリ700にロードすることで実行し、LinuxOS800がデバイスドライバ307を通してpci_init関数804を実行した時に開始される。
まず、LinuxOS800は、デバイスドライバ307をロードすることで、pci_enable_device関数805を呼び出す。
pci_enable_device関数805は呼び出されると、まず、情報処理装置にpciを用いて接続されているpciデバイスの接続状況の確認を行い、pciデバイスからベンダーIDやデバイスIDなどの情報を取得しpci_dev構造体900に格納する(S28)。
ここで、ベンダーIDとは、そのデバイスを作成した会社に対して世界で一意に与えられた識別子である。また、デバイスIDとは、各ベンダー内で作成した各デバイスに対して一意に与えられる識別子である。
なお、このベンダーIDとデバイスIDは実質的なデバイス名として利用される。本実施例においてもベンダーIDとデバイスIDをデバイス名として使用するものとする。
次に、pci_enable_device関数805は、デバイス情報適用手段306を呼び出す。
次に、デバイス情報適用手段306は、biosmap情報802から初期化情報格納領域201の位置情報を抽出する(S29)。
次に、デバイス情報適用手段306は、抽出した初期化情報格納領域201の位置情報を用いて初期化憶装置200上の初期化情報格納領域201の位置を特定し、初期化情報格納領域201からデバイス情報400を取得する(S30)。
次に、デバイス情報適用手段306は、pci_enable_device関数805が取得したpciデバイスのデバイス名が、デバイス情報400に含まれるデバイス名と一致するかを判定する(S31)。
デバイス情報適用手段306は、デバイス名が一致する場合(S31のYES)、取得したデバイス情報400を用いてpci_dev構造体900に必要な情報を格納し、pci_dev構造体900をpci_devices構造体803に登録する(S32)。
一方、デバイス情報適用手段306は、デバイス名が一致しない場合(S31のNO)、初期化情報格納領域201に他のデバイス情報が残っているかを判定する(S33)。
デバイス情報適用手段306は、初期化情報格納領域201に他のデバイス情報400が残っている場合(S33のYES)、初期化情報格納領域201から他のデバイス情報400を取得し、特定のデバイスのデバイス名と他のデバイス情報400に含まれるデバイス名とが一致するかの判定を繰り返す。
デバイス情報適用手段306は、初期化情報格納領域201に他のデバイス情報400が残っていない場合(S33のNO)、処理を終了し、pci_enable_device関数805を呼び出す。
その後、pci_enable_device関数805はpciデバイスのデバイス認識処理を行うことでデバイス制御情報を設定し(S34)、pciデバイスのデバイス名とデバイス制御情報を含む情報をpci_dev構造体900に格納し、pci_devices構造体803に登録する(S35)。
なお、本発明の情報処理装置は、上述のようにファームウェアおよびOSの実行により実現されるもの以外に、ファームウェアおよびOSにその機能を実行させるためのプログラムを、情報処理装置で読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムを情報処理装置に読み込ませ、実行するものであってもよい。情報処理装置で読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、CD−ROM等の記録媒体、情報処理装置に内蔵されるハードディスク装置等の記憶装置を指す。さらに、情報処理装置で読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的に情報処理装置内手段の揮発性メモリのように一定時間プログラムを保持しているものを含む。
本発明の第1の実施形態の情報処理装置の構成を示すブロック図である。 図1に示した情報処理装置の動作を説明するフローチャートである。 本発明の第2の実施形態の情報処理装置の構成を示すブロック図である。 図3に示した初期化情報格納領域の構造の具体例を示す図である。 図3に示した初期化手段におけるデバイスの初期化処理の動作を説明するフローチャートである。 図3に示した制御手段におけるデバイスの初期化処理の動作を説明するフローチャートである。 本発明の第3の実施形態の情報処理装置の構成を示すブロック図である。 図7に示したデバイス非初期化判定リストの具体例を示す図である。 図7に示した制御手段におけるデバイスの初期化処理の動作を説明するフローチャートである。 図7に示した制御手段におけるデバイス初期化省略処理の動作を説明するフローチャートである。 本発明の第2の実施形態を具体化した実施例の構成を示すブロック図である。 図11に示したbiosmap情報の具体例を示す図である。 図11に示したLinuxOSにおけるデバイスの初期化処理の動作を説明するフローチャートである。 特許文献1に記載のシステムの構成を説明するブロック図である。 図14に示したシステムにおけるメモリデバイスの初期化処理の動作を説明するフローチャートである。 図14に示したシステムにおけるドライブデバイスの初期化処理の動作を説明するフローチャートである。
符号の説明
100 初期化手段
101 主記憶領域情報提供手段
102 デバイス初期化手段
103 初期化情報格納手段
200 主記憶手段
201 初期化情報格納領域
300 制御手段
301 主記憶領域情報取得手段
302 主記憶領域情報
303 初期化情報リスト
304 デバイスドライバ初期化関数
305 デバイス認識手段
306 デバイス情報適用手段
307 デバイスドライバ
308 デバイス初期化判定手段
309 デバイス非初期化判定リスト
400 デバイス情報
500 初期化情報
600 BIOS
601 BIOS命令(0x15)
700 物理メモリ
800 LinuxOS
801 setup関数
802 biosmap情報
803 pci_devices構造体
804 pci_init関数
805 pci_enable_device関数
900 pci_dev構造体
1000 フラッシュBIOS−ROM
1001 メモリ情報
1002 ドライブ情報

Claims (18)

  1. ファームウェアの実行により実現され、前記ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理を行う初期化手段と、前記ファームウェアの実行後、オペレーティングシステムの実行により実現され、前記オペレーティングシステムから前記デバイスへのアクセスを可能にするための第2の初期化処理を行う制御手段と、主記憶手段と、を有する情報処理装置であって、
    前記初期化手段は、
    前記第1の初期化処理において、該第1の初期化処理の対象となるデバイスにアクセスするために必要なデバイス制御情報を設定するデバイス初期化手段と、
    前記デバイス初期化手段が設定した前記デバイス制御情報を含む初期化情報を前記主記憶手段に格納する初期化情報格納手段と、を有し、
    前記制御手段は、前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスの初期化情報を前記主記憶手段から取得するデバイス情報適用手段を有することを特徴とする情報処理装置。
  2. 前記デバイス初期化手段は、前記第1の初期化処理において、該第1の初期化処理の対象となるデバイスのデバイス名を取得し、
    前記初期化情報格納手段は、前記デバイス初期化手段が取得したデバイス名を前記初期化情報に追加して前記主記憶手段に格納し、
    前記制御手段は、前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスのデバイス名を取得するデバイス認識手段をさらに有し、
    前記デバイス情報適用手段は、前記デバイス認識手段が取得したデバイス名と前記主記憶手段から取得した前記初期化情報に含まれるデバイス名とが一致する場合、該初期化情報を、前記第2の初期化処理の対象となるデバイスの初期化情報として初期化情報リストに登録する、請求項1に記載の情報処理装置。
  3. 前記デバイス認識手段は、前記第2の初期化処理において、前記デバイス認識手段が取得したデバイス名と前記主記憶手段から取得した前記初期化情報に含まれるデバイス名とが一致しない場合、前記第2の初期化処理の対象となるデバイスの前記デバイス制御情報を設定し、該デバイスのデバイス名と前記デバイス制御情報を含む初期化情報を前記初期化情報リストに登録する、請求項2に記載の情報処理装置。
  4. 前記制御手段は、前記第2の初期化処理において、前記主記憶手段から前記初期化情報を取得しないデバイスのデバイス名が記載されたデバイス非初期化判定リストに、前記第2の初期化処理の対象となるデバイスのデバイス名が記載されているかを判定するデバイス初期化判定手段をさらに有し、
    前記デバイス認識手段は、前記デバイス非初期化判定リストに前記第2の初期化処理の対象となるデバイスのデバイス名が記載されている場合、該デバイスの前記デバイス制御情報を設定し、該デバイスのデバイス名と前記デバイス制御情報を含む初期化情報を前記初期化情報リストに登録する、請求項3に記載の情報処理装置。
  5. 前記デバイス情報適用手段は、前記第2の初期化処理において、前記デバイス非初期化判定リストに該第2の初期化処理の対象となるデバイスのデバイス名が記載されていない場合、前記主記憶領域から該デバイスの初期化情報を取得する、請求項4に記載の情報処理装置。
  6. 前記主記憶手段は、前記初期化情報を格納するための初期化情報格納領域を有し、
    前記初期化情報格納手段は、前記初期化情報を前記初期化情報格納領域に格納するとともに、前記初期化情報格納領域の位置情報を前記主記憶手段上の各領域の位置情報である主記憶領域情報として格納し、
    前記初期化手段は、前記主記憶領域情報を前記制御手段に提供する主記憶領域情報提供手段をさらに有し、
    前記制御手段は、前記第2の初期化処理において、前記主記憶領域情報提供手段が提供する前記主記憶領域情報を取得する主記憶領域情報取得手段をさらに有し、
    前記デバイス情報適用手段は、前記主記憶領域情報取得手段が取得した前記主記憶領域情報から前記初期化情報格納領域の位置情報を抽出し、抽出した位置情報を用いて前記主記憶手段上の前記初期化情報格納領域の位置を特定し、位置を特定した前記初期化情報格納領域から前記初期化情報を取得する、請求項5に記載の情報処理装置。
  7. ファームウェアの実行により実現され、前記ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理を行う初期化手段と、前記ファームウェアの実行後、オペレーティングシステムの実行により実現され、前記オペレーティングシステムから前記デバイスへのアクセスを可能にするための第2の初期化処理を行う制御手段と、主記憶手段と、を有する情報処理装置が行うデバイス初期化方法であって、
    前記初期化手段が、
    前記第1の初期化処理において、該第1の初期化処理の対象となるデバイスにアクセスするために必要なデバイス制御情報を設定する第1デバイス初期化ステップと、
    前記第1デバイス初期化ステップで設定した前記デバイス制御情報を含む初期化情報を前記主記憶手段に格納する格納ステップと、を有し、
    前記制御手段が、前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスの初期化情報を前記主記憶手段から取得する第2デバイス初期化ステップを有することを特徴とするデバイス初期化方法。
  8. 前記第1デバイス初期化ステップにおいて、前記第1の初期化処理の対象となるデバイスのデバイス名を取得し、
    前記格納ステップにおいて、前記第1デバイス初期化ステップで取得したデバイス名を前記初期化情報に追加して前記主記憶手段に格納し、
    前記制御手段が、前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスのデバイス名を取得するデバイス名取得ステップを有し、
    前記第2デバイス初期化ステップにおいて、前記デバイス名取得ステップで取得したデバイス名と前記主記憶手段から取得した前記初期化情報に含まれるデバイス名とが一致する場合、該初期化情報を、前記第2の初期化処理の対象となるデバイスの初期化情報として初期化情報リストに登録する、請求項7に記載のデバイス初期化方法。
  9. 前記第2デバイス初期化ステップにおいて、前記デバイス名取得ステップで取得したデバイス名と前記主記憶手段から取得した前記初期化情報に含まれるデバイス名とが一致しない場合、前記第2の初期化処理の対象となるデバイスの前記デバイス制御情報を設定し、該デバイスのデバイス名と前記デバイス制御情報を含む初期化情報を前記初期化情報リストに登録する、請求項8に記載のデバイス初期化方法。
  10. 前記制御手段が、
    前記第2の初期化処理において、前記主記憶手段から前記初期化情報を取得しないデバイスのデバイス名が記載されたデバイス非初期化判定リストに、前記第2の初期化処理の対象となるデバイスのデバイス名が記載されているかを判定するデバイス初期化判定ステップと、
    前記デバイス初期化判定ステップにおいて、前記デバイス非初期化判定リストに前記第2の初期化処理の対象となるデバイスのデバイス名が記載されている場合、該デバイスの前記デバイス制御情報を設定し、該デバイスのデバイス名と前記デバイス制御情報を含む初期化情報を前記初期化情報リストに登録する通常初期化ステップと、を有する、請求項9に記載のデバイス初期化方法。
  11. 前記デバイス初期化判定ステップにおいて、前記デバイス非初期化判定リストに前記第2の初期化処理の対象となるデバイスのデバイス名が記載されていない場合、前記第2デバイス初期化ステップを行う、請求項10に記載のデバイス初期化方法。
  12. 前記格納ステップにおいて、前記初期化情報を前記主記憶手段上の初期化情報格納領域に格納するとともに、該初期化情報格納領域の位置情報を前記主記憶手段上の各領域の位置情報である主記憶領域情報として格納し、
    前記制御手段が、前記第2の初期化処理において、前記初期化手段から前記主記憶領域情報を取得する主記憶領域情報取得ステップをさらに有し、
    前記第2デバイス初期化ステップにおいて、前記主記憶領域情報取得ステップで取得した前記主記憶領域情報から前記初期化情報格納領域の位置情報を抽出し、抽出した位置情報を用いて前記主記憶手段上の前記初期化情報格納領域の位置を特定し、位置を特定した前記初期化情報格納領域から前記初期化情報を取得する、請求項11に記載のデバイス初期化方法。
  13. 情報処理装置に、
    ファームウェアの実行により実現され、前記ファームウェアから情報処理装置に接続されているデバイスへのアクセスを可能にするための第1の初期化処理において、該第1の初期化処理の対象となるデバイスにアクセスするために必要なデバイス制御情報を設定する第1デバイス初期化手順と、
    前記第1デバイス初期化手順で設定した前記デバイス制御情報を含む初期化情報を主記憶手段に格納する格納手順と、を前記ファームウェアにより実行させ、
    オペレーティングシステムから前記デバイスへのアクセスを可能にするための第2の初期化処理において、該第2の初期化処理の対象となるデバイスの初期化情報を前記主記憶手段から取得する第2デバイス初期化手順を前記オペレーティングシステムにより実行させることを特徴とするデバイス初期化プログラム。
  14. 前記第1デバイス初期化手順において、前記第1の初期化処理の対象となるデバイスのデバイス名を取得し、
    前記格納手順において、前記第1デバイス初期化手順で取得したデバイス名を前記初期化情報に追加して前記主記憶手段に格納し、
    前記第2の初期化処理において、該第2の初期化処理の対象となるデバイスのデバイス名を取得するデバイス名取得手順を前記オペレーティングシステムにより実行させ、
    前記第2デバイス初期化手順において、前記デバイス名取得ステップで取得したデバイス名と前記主記憶手段から取得した前記初期化情報に含まれるデバイス名とが一致する場合、該初期化情報を、前記第2の初期化処理の対象となるデバイスの初期化情報として初期化情報リストに登録する、請求項13に記載のデバイス初期化プログラム。
  15. 前記第2デバイス初期化手順において、前記デバイス名取得手順で取得したデバイス名と前記主記憶手段から取得した前記初期化情報に含まれるデバイス名とが一致しない場合、前記第2の初期化処理の対象となるデバイスの前記デバイス制御情報を設定し、該デバイスのデバイス名と前記デバイス制御情報を含む初期化情報を前記初期化情報リストに登録する、請求項14に記載のデバイス初期化プログラム。
  16. 前記第2の初期化処理において、前記主記憶手段から前記初期化情報を取得しないデバイスのデバイス名が記載されたデバイス非初期化判定リストに、前記第2の初期化処理の対象となるデバイスのデバイス名が記載されているかを判定するデバイス初期化判定手順と、
    前記デバイス初期化判定手順において、前記デバイス非初期化判定リストに前記第2の初期化処理の対象となるデバイスのデバイス名が記載されている場合、該デバイスの前記デバイス制御情報を設定し、該デバイスのデバイス名と前記デバイス制御情報を含む初期化情報を前記初期化情報リストに登録する通常初期化手順と、を前記オペレーティングシステムにより実行させる、請求項15に記載のデバイス初期化プログラム。
  17. 前記デバイス初期化判定手順において、前記デバイス非初期化判定リストに前記第2の初期化処理の対象となるデバイスのデバイス名が記載されていない場合、前記第2デバイス初期化手順を前記オペレーティングシステムにより実行させる、請求項16に記載のデバイス初期化プログラム。
  18. 前記格納手順において、前記初期化情報を前記主記憶手段上の初期化情報格納領域に格納するとともに、該初期化情報格納領域の位置情報を前記主記憶手段上の各領域の位置情報である主記憶領域情報として格納し、
    前記第2の初期化処理において、前記主記憶領域情報を取得する主記憶領域情報取得手順を前記オペレーティングシステムにより実行させ、
    前記第2デバイス初期化手順において、前記主記憶領域情報取得手順で取得した前記主記憶領域情報から前記初期化情報格納領域の位置情報を抽出し、抽出した位置情報を用いて前記主記憶手段上の前記初期化情報格納領域の位置を特定し、位置を特定した前記初期化情報格納領域から前記初期化情報を取得する、請求項17に記載のデバイス初期化プログラム。
JP2008032986A 2008-02-14 2008-02-14 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム Pending JP2009193301A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008032986A JP2009193301A (ja) 2008-02-14 2008-02-14 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム
US12/358,812 US8180930B2 (en) 2008-02-14 2009-01-23 Information processing device, and device initialization method in the information processing device
CNA2009100063809A CN101510158A (zh) 2008-02-14 2009-02-16 信息处理设备及信息处理设备中的设备初始化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008032986A JP2009193301A (ja) 2008-02-14 2008-02-14 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム

Publications (1)

Publication Number Publication Date
JP2009193301A true JP2009193301A (ja) 2009-08-27

Family

ID=40956141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008032986A Pending JP2009193301A (ja) 2008-02-14 2008-02-14 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム

Country Status (3)

Country Link
US (1) US8180930B2 (ja)
JP (1) JP2009193301A (ja)
CN (1) CN101510158A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190128A (ja) * 2011-03-09 2012-10-04 Nec Corp ハードウェア構成縮退時の高速立ち上げ方法、高速立ち上げ装置及び高速立ち上げプログラム
JP2013101710A (ja) * 2013-03-01 2013-05-23 Toshiba Corp 情報処理装置及び起動制御方法
US9838254B2 (en) 2014-03-31 2017-12-05 Nec Corporation Information processing equipment, information processing method and storage medium

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9543956B2 (en) * 2011-05-09 2017-01-10 Intel Corporation Systems and methods for configuring an SOPC without a need to use an external memory
CN102521195B (zh) * 2011-11-18 2015-04-29 华为技术有限公司 一种地址资源分配方法及存储器
CN103701707B (zh) * 2013-12-03 2017-02-15 杭州华三通信技术有限公司 一种网络设备
JP6995745B2 (ja) * 2015-10-06 2022-01-17 ザイリンクス インコーポレイテッド マルチステージブートイメージロードおよびプログラマブルロジックデバイスの構成
CN110968201B (zh) * 2019-11-12 2023-10-20 珠海市学思电子科技有限公司 键盘按键固件生成方法、计算机装置和计算机可读存储介质
US11320885B2 (en) * 2020-05-26 2022-05-03 Dell Products L.P. Wide range power mechanism for over-speed memory design

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421776B1 (en) * 1994-10-14 2002-07-16 International Business Machines Corporation Data processor having BIOS packing compression/decompression architecture
US6654816B1 (en) * 2000-05-31 2003-11-25 Hewlett-Packard Development Company, L.P. Communication interface systems for locally analyzing computers
US6591358B2 (en) * 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
JP2003084981A (ja) 2001-09-11 2003-03-20 Seiko Epson Corp 情報処理装置の起動方法
JP4187151B2 (ja) * 2003-01-08 2008-11-26 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP2005284491A (ja) 2004-03-29 2005-10-13 Mitsubishi Electric Corp 計算機の起動時間短縮方式
US7761863B2 (en) * 2004-06-08 2010-07-20 Covia Labs, Inc. Method system and data structure for content renditioning adaptation and interoperability segmentation model
US7404105B2 (en) * 2004-08-16 2008-07-22 International Business Machines Corporation High availability multi-processor system
JP2006259903A (ja) 2005-03-15 2006-09-28 Toshiba Corp 情報処理装置および起動方法
US20080209198A1 (en) * 2007-02-26 2008-08-28 Majni Timothy W Boot Acceleration For Computer Systems
JP5119947B2 (ja) * 2008-01-24 2013-01-16 富士通株式会社 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012190128A (ja) * 2011-03-09 2012-10-04 Nec Corp ハードウェア構成縮退時の高速立ち上げ方法、高速立ち上げ装置及び高速立ち上げプログラム
JP2013101710A (ja) * 2013-03-01 2013-05-23 Toshiba Corp 情報処理装置及び起動制御方法
US9838254B2 (en) 2014-03-31 2017-12-05 Nec Corporation Information processing equipment, information processing method and storage medium

Also Published As

Publication number Publication date
CN101510158A (zh) 2009-08-19
US20090210565A1 (en) 2009-08-20
US8180930B2 (en) 2012-05-15

Similar Documents

Publication Publication Date Title
JP2009193301A (ja) 情報処理装置、情報処理装置におけるデバイス初期化方法、およびデバイス初期化プログラム
KR20110084403A (ko) 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
WO2016074127A1 (zh) 计算机设备及计算机设备内存启动的方法
JP6136127B2 (ja) コントローラ、電子機器及びusbデバイスの制御方法
US7921230B2 (en) USB devices pre-configuration for KVM switch
CN103699372A (zh) 从中央存储装置引导计算机系统
JP6194764B2 (ja) 情報処理装置、制御方法、および制御プログラム
CN107135462B (zh) Uefi固件的蓝牙配对方法及其计算系统
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
TWI707274B (zh) 用於更新系統之rom編碼之電腦實施方法、電腦系統以及電腦可讀取媒體
US10491736B2 (en) Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
CN104685443A (zh) 锁定引导数据用以更快引导
US9304779B2 (en) Optimizing boot time of a storage system
EP2869189A1 (en) Boot up of a multiprocessor computer
US20140280263A1 (en) Electronic device with a funiction of applying applications of different operating systems and method thereof
CN111930575A (zh) 一种固件获取方法、装置及电子设备
JP2010146384A (ja) コンピュータ起動システム、コンピュータ起動方法、コンピュータ起動プログラム
US20130097412A1 (en) Performing A Boot Sequence In A Multi-Processor System
US6986034B2 (en) Setting a system indication in response to a user when execution of the system setup program is desired
TWI518594B (zh) 計算機系統與計算機系統啓動方法
JP2014170271A (ja) 情報処理装置、初期化方法、前処理方法、及びプログラム
JP4597032B2 (ja) コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
WO2017076034A1 (zh) 一种对移动终端的存储器进行格式化的方法和装置
CN102346676B (zh) 计算器多重开机管理方法