(57)【要約】【課題】情報処理装置におけるＯＳ等のプログラムを起動する処理に要する時間を削減する。【解決手段】情報処理装置１は、プロセッサ１０及び１１を有する。プロセッサ１１は、プロセッサ１０がＤＲＡＭ１３からＯＳに関する命令群を読み出して実行可能となるための準備処理（例えばＤＲＡＭ１３に保持されたカーネルイメージの整合性チェック）を実行する。一方、プロセッサ１０は、プロセッサ１１による準備処理の実行と時間的に並行して、フラッシュメモリ１４からＯＳに関する命令群を読み出して実行する。さらに、プロセッサ１０は、準備処理の完了に応じてＯＳに関する命令群の取得先をフラッシュメモリ１４からＤＲＡＭ１３に切り替えてＯＳを継続的に実行する。【選択図】図３
2010146142.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２のプロセッサを備え、
前記第２のプロセッサは、前記第１のプロセッサが第１のメモリからプログラムに関する命令群を読み出して実行可能となるための準備処理を実行し、
前記第１のプロセッサは、前記第２のプロセッサによる前記準備処理の実行と時間的に並行して、前記第１のメモリとは異なる第２のメモリから前記プログラムに関する命令群を読み出して実行し、
前記第１のプロセッサは、前記準備処理の完了に応じて命令群の取得先を前記第２のメモリから前記第１のメモリに切り替えて、前記プログラムを継続的に実行する、情報処理装置。
【請求項２】
前記第１のプロセッサと前記第１及び第２のメモリとの間に配置され、前記プロセッサが前記プログラムに関する命令群の取得のために生成する物理アドレスを受信する変更部をさらに備え、
前記変更部は、前記準備処理の完了前には前記第２のメモリがアクセスされ、前記準備処理の完了後には前記第１のメモリがアクセスされるように、前記物理アドレスによるアクセス先を変更する、請求項１に記載の情報処理装置。
【請求項３】
前記第１のプロセッサは、前記準備処理の完了前後に関わらず、前記第１のメモリに対応したアドレスを前記物理アドレスとして生成し、
前記変更部は、前記準備処理の完了前において、前記物理アドレスを前記第２のメモリに対応する別アドレスに変換する、請求項２に記載の情報処理装置。
【請求項４】
前記第１及び第２のプロセッサと時間的に並行して動作し、前記準備処理の一部を分担して実行する第３のプロセッサをさらに備える、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記準備処理は、前記第１のメモリに記憶された命令群の正常性チェックを含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記準備処理は、前記第２のメモリから前記第１のメモリへの命令群のコピーを含む、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１のメモリは、前記第２のメモリに比べてアクセス速度が高速である、請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
第１のプロセッサが第１のメモリからプログラムに関する命令群を読み出して実行可能となるための準備処理を、第２のプロセッサに実行させるステップ（ａ）と、
前記第２のプロセッサによる前記準備処理の実行と時間的に並行して、前記第１のプロセッサに、前記第１のメモリとは異なる第２のメモリから前記プログラムに関する命令群を読み出して実行させるステップ（ｂ）と、
前記準備処理の完了に応じて、前記第１のプロセッサによる前記プログラムに関する命令群の取得先を前記第２のメモリから前記第１のメモリに切り替えるステップ（ｃ）と、
を備える、プログラムの起動制御方法。
【請求項９】
前記第１のプロセッサによる前記プログラムに関する命令群の取得先の切り替えは、前記プロセッサが生成する物理アドレスによるアクセス先を前記第１及び第２のメモリの間で変更することにより行われる、請求項８に記載の方法。
【請求項１０】
前記物理アドレスによるアクセス先の変更は、前記第１のプロセッサと前記第１及び第２のメモリとの間に配置された変更部を制御することにより行う、請求項９に記載の方法。
【請求項１１】
前記物理アドレスは、前記準備処理の完了前後に関わらず、前記第１のメモリに対応したアドレスとして生成され、
前記ステップ（ｂ）では、前記物理アドレスが前記第２のメモリに対応する別アドレスに変換されるよう前記変更部を制御する、請求項１０に記載の方法。
【請求項１２】
前記準備処理は、前記第１のメモリに記憶された命令群の正常性チェックを含む、請求項８〜１１のいずれか１項に記載の方法。
【請求項１３】
前記準備処理は、前記第２のメモリから前記第１のメモリへの命令群のコピーを含む、請求項８〜１０のいずれか１項に記載の方法。
【請求項１４】
第１及び第２のプロセッサを備える情報処理装置に実行されることにより、特定プログラムの起動制御を実現する起動制御プログラムであって、
前記第１のプロセッサが第１のメモリから前記特定プログラムに関する命令群を読み出して実行可能となるための準備処理を、前記第２のプロセッサに実行させるプログラムコードと、
前記第２のプロセッサによる前記準備処理の実行と時間的に並行して、前記第１のプロセッサに、前記第１のメモリとは異なる第２のメモリから前記プログラムに関する命令群を読み出して実行させるプログラムコードと、
前記準備処理の完了に応じて、前記第１のプロセッサによる前記プログラムに関する命令群の取得先を前記第２のメモリから前記第１のメモリに切り替える処理を実行させるプログラムコードと、
を含む、起動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを有する情報処理装置におけるプログラムの起動制御に関する。
【背景技術】
【０００２】
本明細書で定義して使用されるプロセッサの用語は、メモリから命令を読み出し、命令をデコードし、デコードされた命令に応じた処理、例えば、算術演算及び論理演算等の演算処理、並びにメモリに対するリードアクセス及びライトアクセスを実行する装置を意味する。プロセッサの具体例は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、マイクロコントローラ、ＤＳＰ（Digital Signal Processor）等である。
【０００３】
また、ＯＳは、上述のプロセッサによって実行されることにより、プロセッサ及びメモリ等のハードウェア資源を利用して、タスク管理、メモリ管理、時間管理、デバイス管理等を実行する。最近のＯＳの多くは、マルチプログラミング環境を実現する。マルチプログラミング環境とは、複数のアプリケーションプログラムを定期的に切り替えて実行したり、あるイベントの発生に応じて実行するアプリケーションプログラムを切り替えたりすることによって、複数のアプリケーションプログラムがあたかも並列実行されているような環境を意味する。マルチプログラミング環境は、マルチタスク環境とも呼ばれる。タスクとは、マルチプログラミング環境で並列実行されるプログラム単位を意味する。
【０００４】
少なくとも１つのプロセッサを有する情報処理装置は、システム電源が投入された後にメモリに格納されているカーネルイメージを読み出すことによってオペレーティングシステム（ＯＳ）の起動処理を開始する。ここで、カーネルイメージとは、ＯＳの基本機能に関する命令群を含むプログラムである。
【０００５】
情報処理装置の一般的な構成では、カーネルイメージは、不揮発性の低速メモリ（例えば、フラッシュメモリ）に格納されている。システム電源が投入されると、始めにプロセッサは、低速メモリに格納されたカーネルイメージを揮発性の高速メモリ（例えばＤＲＡＭ：Dynamic Random Access Memory）にコピーする。そして、プロセッサは、高速メモリからカーネルイメージを読み出すことによりＯＳの起動処理を行う。しかし、近年ではＯＳの高機能化に伴ってカーネルイメージのサイズが増大している。このため、不揮発性の低速メモリから揮発性の高速メモリにカーネルイメージをコピーする処理に要する時間の増加が問題となっていた。
【０００６】
上記の問題に対応する技術として、ＤＲＡＭの記憶内容を保持するためのバックアップ電源を使用することが知られている（例えば特許文献１を参照）。バックアップ電源からＤＲＡＭに電力を供給することで、システム電源がＯＦＦされている場合にもＤＲＡＭの記憶内容を保持しておくことができる。これにより、フラッシュメモリ（不揮発性の低速メモリ）からＤＲＡＭへのカーネルイメージのロードを行うことなく、システム電源投入時のＯＳ起動処理を開始できる。
【０００７】
しかしながら、バックアップ電源の電圧低下などの何らかの原因によってＤＲＡＭ内でデータ化け（メモリ化け）が発生する可能性がある。このため、バックアップ電源を用いる情報処理装置では、ＤＲＡＭに保持されているカーネルイメージを使用してＯＳを起動する前に、ＤＲＡＭ内のカーネルイメージの正常性（妥当性）をチェックする必要がある。正常性のチェックは、チェックサム、ＣＲＣ（Cyclic Redundancy Check）、ハッシュ値、パリティ等の誤り検出技術を用いて行われる。つまり、バックアップ電源を使用する情報処理装置は、ＯＳの起動処理の開始をデータの整合性が確認されるまで待つ必要があるため、システム電源の投入からＯＳの起動処理を開始するまでに時間を要する。さらに、ＤＲＡＭ内のカーネルイメージにデータ化けが生じていた場合には、フラッシュメモリに保持されているカーネルイメージをＤＲＡＭにコピーする必要がある。この場合には、バックアップ電源を使用しない場合と同様に、ＯＳの起動処理の開始をコピーが完了するまで待たなければならない。
【０００８】
なお、特許文献２は、バックアップ電源を使用せずにプログラム起動時間の短縮化を図る情報処理装置を開示している。特許文献２の情報処理装置は、ブートローダ（ＩＰＬ（Initial Program Loader）とも呼ばれる）の実行後に、フラッシュメモリに格納されたＯＳを読み出して実行し、マルチタスク動作を開始する。さらに、マルチタスク環境下でプログラムコピー用のタスクを起動する。マルチタスク環境下で実行されるプログラムコピー用のタスクは、フラッシュメモリからＤＲＡＭへのプログラムコピーを実行し、コピー完了後にＯＳを含むプログラムをＲＡＭ上で実行するためのメモリリマップを行う。
【特許文献１】特開２００３−１３１８８０号公報
【特許文献２】特開２００８−１５７２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、従来の情報処理装置の１つは、不揮発性の低速メモリ（例えばフラッシュメモリ）から揮発性の高速メモリ（例えばＤＲＡＭ）にカーネルイメージをコピーした後にＯＳの起動を開始するため、ＯＳの起動処理の開始が遅れる。このため、システム電源が投入されてからＯＳの起動完了までに長時間を要するという問題がある。また、バックアップ電源を使用する改良された情報処理装置であっても、システム電源の投入後に揮発性の高速メモリ（ＤＲＡＭ）に保持されたＯＳの正常性チェックを行った後にＯＳの起動を開始するため、ＯＳの起動処理に要する時間を十分に短縮することができない。
【００１０】
なお、特許文献２に開示された技術では、マルチタスク環境（マルチプログラミング環境）を提供するＯＳの起動処理（実行開始＆初期化処理）が終わってマルチタスク環境が得られた後でなければ、ＯＳ（カーネルイメージ）をＤＲＡＭへコピーをすることができない。よって、ＯＳの起動処理の全てをフラッシュメモリ上で行う特許文献２の技術では、ＯＳの起動処理を高速化することは困難であると考えられる。
【００１１】
本発明は上述した知見に基づいてなされたものであって、情報処理装置においてＯＳ等のプログラムを起動する処理に要する時間を削減することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の態様にかかる情報処理装置は、第１及び第２のプロセッサを有する。前記第２のプロセッサは、前記第１のプロセッサが第１のメモリからプログラムに関する命令群を読み出して実行可能となるための準備処理を実行する。一方、前記第１のプロセッサは、前記第２のプロセッサによる前記準備処理の実行と時間的に並行して、前記第１のメモリとは異なる第２のメモリから前記プログラムに関する命令群を読み出して実行する。さらに、前記第１のプロセッサは、前記準備処理の完了に応じて命令群の取得先を前記第２のメモリから前記第１のメモリに切り替えて、前記プログラムを継続的に実行する。
【発明の効果】
【００１３】
本発明により、情報処理装置におけるＯＳ等のプログラムを起動する処理に要する時間を削減することができる。
【発明を実施するための最良の形態】
【００１４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００１５】
＜発明の実施の形態１＞
図１は、本実施の形態にかかる情報処理装置１の構成例を示すブロック図である。情報処理装置１は、少なくとも２つのプロセッサ１０及び１１を有するマルチプロセッサシステムである。情報処理装置１の具体例の１つは、複数のプロセッサコア（プロセッサ１０及び１１に相当）が１つの半導体チップに集積されたマルチコアプロセッサ（マルチコアＣＰＵ）を有するコンピュータシステムである。また、情報処理装置１は、複数のＣＰＵを有するマルチＣＰＵ構成のコンピュータシステムであってもよい。
【００１６】
図１において、アクセス先変更部１２は、プロセッサ１０による物理アドレス空間に対するアクセス（すなわちメモリアクセス）を制御する。より詳細に述べると、アクセス先変更部１２は、プロセッサ１０が要求する物理アドレスに対応付けられるアクセス先（すなわち記憶デバイス内の記憶領域）を変更できる。アクセス先変更部１２の具体的な動作、アクセス先の変更条件の具体例などについては後述する。
【００１７】
揮発性メモリ１３は、ＤＲＡＭ、ＳＲＡＭ（Static Random Access Memory）等の揮発性の記憶デバイスである。揮発性メモリ１３は、プロセッサ１０及び１１に読み出されて実行されるＯＳやアプリケーションプログラムの格納領域、及びＯＳやアプリケーションプログラムによって使用されるデータの格納領域として使用される。図１のカーネルイメージ１３１は、後述する不揮発性メモリ１４から揮発性メモリ１３にロードされたＯＳプログラムである。なお、図１の揮発性メモリ１３は、論理的な構成単位を示している。すなわち、揮発性メモリ１３は、例えば、複数のＤＲＡＭデバイスの組み合わせ、又はＳＲＡＭデバイスとＤＲＡＭデバイスの組み合わせ等でもよい。以下の説明では、揮発性メモリ１３がＤＲＡＭデバイスである場合を例にとって説明する。
【００１８】
不揮発性メモリ１４は、電力の供給を受けることなく、揮発性メモリ１３に比べて安定的に記憶内容を維持することが可能なメモリデバイスである。例えば、不揮発性メモリ１４は、ＲＯＭ（Read Only Memory）、フラッシュメモリ若しくはハードディスクドライブ、又はこれらの組み合わせである。以下の説明では、不揮発性メモリ１４がフラッシュメモリである場合を例にとって説明する。
【００１９】
フラッシュメモリ１４は、ブートローダ１４０、カーネルイメージ１４１等のプログラムを格納する。ブートローダ１４０は、ＯＳ起動制御用のプログラムであり、システム電源１５が投入された後にＯＳの起動を開始するために実行される。
【００２０】
システム電源１５は、図１に示した情報処理装置１に含まれる各構成要素の動作に必要な電力を供給する。バックアップ電源１６は、システム電源１５による電力供給が停止されている場合に、ＤＲＡＭ１３の記憶内容を保持するために必要な電力をＤＲＡＭ１３に供給する。
【００２１】
次に、アクセス先変更部１２の動作例について図２を参照して説明する。図２は、本実施の形態における物理アドレス空間のメモリマップの具体例とアクセス先変更部１２の動作を模式的に示している。図２に示す物理アドレス空間１００のメモリマップは、システム電源１５が投入された直後の状態を示している。物理アドレス空間１００の０番地（0x0000_0000）からフラッシュメモリ１４のサイズ分のアドレス領域は、フラッシュメモリ１４にマッピングされている。よって、図２に示すように、フラッシュメモリ１４の先頭アドレス部分にブートローダ１４０を格納しておけば、プロセッサ１０が０番地にジャンプすることでブートローダ１４０の実行を開始できる。
【００２２】
アクセス先変更部１２は、プロセッサ１０からアクセス先の物理アドレスを含むメモリアクセス要求（具体的にはリード要求又はライト要求）を受信する。アクセス先変更部１２は、カーネルイメージの格納領域を示す物理アドレスを受信した場合に、当該物理アドレスに対応する実際のアクセス先をＤＲＡＭ１３内のカーネルイメージ格納領域（カーネルイメージ１３１）とするか、フラッシュメモリ１４内のカーネルイメージ格納領域（カーネルイメージ１４１）とするかを決定する。
【００２３】
例えば、プロセッサ１０がカーネルイメージ取得のために生成する物理アドレスがフラッシュメモリ１４のアドレス範囲である場合を考える。この場合、アクセス先変更部１２は、フラッシュメモリ１４をアクセスする際に物理アドレスの変換を行わなければよい。一方、ＤＲＡＭ１３をアクセスする際には、アクセス先変更部１２は、プロセッサ１０によって生成された物理アドレスをＤＲＡＭ１３のアドレス範囲に対応した別のアドレスに変換する。
【００２４】
続いて以下では、情報処理装置１におけるＯＳ起動手順について説明する。図３は、ＯＳ起動手順に関するプロセッサ１０及び１１のシーケンス図である。
【００２５】
図３のステップＳ１００では、システム電源１５がＯＮされ、情報処理装置１内の各構成要素に対する電力供給が開始される。ステップＳ１０１では、プロセッサ１０は、予め定められた物理アドレスにジャンプする。具体的には、図２に示したように、物理アドレス空間の０番地をブートローダ１４０に対応させておき、プロセッサ１０は０番地にジャンプすればよい。
【００２６】
ステップＳ１０２では、プロセッサ１０がブートローダ１４０を実行する。ブートローダ１４０の実行によって、フラッシュメモリ１４内のカーネルイメージ１４１が呼び出される。具体的には、プロセッサ１０のプログラムカウンタ（不図示）をカーネルイメージ１４１のエントリポイントを示す値によって更新すればよい。エントリポイントとは、カーネルイメージ１４１の実行開始位置を示すアドレスである。また、このとき、アクセス先変更部１２は、カーネルイメージ参照のためにプロセッサ１０により生成される物理アドレスをフラッシュメモリ１４内のカーネルイメージ１４１の格納領域に対応付ければよい。
【００２７】
さらに、ステップＳ１０２において、ブートローダ１４０は、ＤＲＡＭ１３内に保持されたカーネルイメージ１３１の正常性チェックをもう一方のプロセッサ１１に開始させる。具体的には、ブートローダ１４０を実行するプロセッサ１０が、プロセッサ１１を起動するとともに、正常性チェック用のプログラムのエントリポイントをプロセッサ１１に供給すればよい。正常性チェック用のプログラムは、フラッシュメモリ１４に格納されていてもよいし、プロセッサ１１がアクセス可能なその他の不揮発性メモリデバイス（不図示）に保持されていてもよい。また、電源投入されたプロセッサ１１が最初にアクセスする予め定められた記憶領域に正常性チェック用のプログラムを配置してもよい。この場合、ブートローダ１４０を実行するプロセッサ１０は、プロセッサ１１の起動指示のみを行えばよい。また、プロセッサ１１は、プロセッサ１０からの起動指示に依存せず、システム電源１５の投入後に自律的にＤＲＡＭ１３の正常性チェックを開始してもよい。
【００２８】
ステップＳ１０３では、プロセッサ１０が、フラッシュメモリ１４からカーネルイメージ１４１を直接的に読み出して実行することにより、ＯＳの起動処理を開始する。
【００２９】
ステップＳ１１１では、フラッシュメモリ１４内に格納されたカーネルイメージ１４１を用いたＯＳの起動処理（ステップＳ１０３）と時間的に並行して、プロセッサ１１がＤＲＡＭ１３内のカーネルイメージ１３１の正常性をチェックする。正常性のチェックは、チェックサム、ＣＲＣ、ハッシュ値、パリティ等の誤り検出技術を用いて行えばよい。
【００３０】
図４Ａは、プロセッサ１０によるＯＳの起動処理と、プロセッサ１１によるＤＲＡＭ１３の正常性チェックが同時に行われる様子を示す概念図である。プロセッサ１０は、アクセス先変更部１２を介してフラッシュメモリ１４にアクセスし、カーネルイメージ１４１を読み出して実行する。一方、プロセッサ１１は、ＤＲＡＭ１３にアクセスし、ＤＲＡＭ１３内の少なくともカーネルイメージ１３１が格納された領域について正常性チェックを行う。
【００３１】
図３に戻り説明を続ける。ステップＳ１１２では、プロセッサ１１は、正常性チェックの結果を判定する。正常性チェック結果の判定がＯＫであった場合、つまりデータ誤りが検出されなかった場合又は全ての誤りを修復できた場合、プロセッサ１１は、ステップＳ１１４に進む。ステップＳ１１４では、プロセッサ１１は、アクセス先変更部１２に対してアクセス先の変更を要求する。
【００３２】
プロセッサ１１による要求に応じて、アクセス先変更部１２は、プロセッサ１０により生成されるカーネルイメージの読み出しアドレスに対応したアクセス先をフラッシュメモリ１４からＤＲＡＭ１３に変更する。これにより、プロセッサ１０により生成される物理アドレスによるアクセス先が低速なフラッシュメモリ１４から高速なＤＲＡＭ１３に切り替えられ、プロセッサ１０によるＯＳの起動処理が継続される。
【００３３】
図４Ｂは、プロセッサ１１によるアクセス先の変更要求（図３のＳ１１４）が行われた後のプロセッサ１０によるＯＳ起動処理の様子を示す概念図である。プロセッサ１１は、アクセス先変更部１２にアクセス先の変更要求を通知する。プロセッサ１０は、アクセス先変更部１２を介してＤＲＡＭ１３にアクセスし、カーネルイメージ１３１を読み出して実行する。
【００３４】
図３に戻り説明を続ける。ステップＳ１１２における正常性チェック結果の判定がＮＧであった場合、つまり、修復不可能なデータ誤りが検出された場合、プロセッサ１１は、フラッシュメモリ１４からＤＲＡＭ１３へカーネルイメージのコピーを行う。コピーが行われている間、プロセッサ１０は、フラッシュメモリ１４に格納されたカーネルイメージ１４１を実行することにより、ＯＳの起動処理を継続できる。ＤＲＡＭ１３へのカーネルイメージのコピーが完了した場合、既に述べた正常性チェック結果の判定がＯＫであった場合と同様に、プロセッサ１１はアクセス先変更部１２に対してアクセス先の変更を要求する（ステップＳ１１４）。
【００３５】
上述したように、本実施の形態にかかる情報処理装置１は、マルチプロセッサ構成を有している。そして、１つのプロセッサ１０は、システム電源１５がＯＮされた後に、不揮発性メモリ１４に格納されたカーネルイメージを読み出してＯＳの起動処理を開始する。もう１つのプロセッサ１１は、プロセッサ１０によるＯＳ起動処理と並行して、揮発性メモリ１３からＯＳを起動するための準備処理を行う。ここでの準備処理は、揮発性メモリ１３に保持されたＯＳプログラム（カーネルイメージ）の正常性をチェックと、データ誤りを検知した場合の不揮発性メモリ１４から揮発性メモリ１３へのＯＳプログラムのロードを含む。
【００３６】
これにより、情報処理装置１は、不揮発性メモリ１４から揮発性メモリ１３へのＯＳプログラムのロード処理や、揮発性メモリ１３にバックアップされたＯＳプログラムの正常性チェックの完了を待つことなく、これらの処理と並行して速やかにＯＳ起動処理を開始することができる。なお、情報処理装置１は、揮発性メモリ１３内のＯＳプログラムの正常性チェック結果がＯＫであるかＮＧであるかに関わらず、ＯＳ起動処理の開始タイミングを早期化できる。
【００３７】
さらに、情報処理装置１は、プロセッサ１１の準備処理によって揮発性メモリ１３内のＯＳプログラム（カーネルイメージ１３１）が使用可能と判断されたことに応じて、プロセッサ１０のＯＳ起動処理に関するアクセス先を不揮発性メモリ１４からアクセス速度が高速な揮発性メモリ１３に変更する。
【００３８】
つまり、情報処理装置１は、不揮発性メモリ１４にアクセスしていち早くＯＳの起動処理を開始するとともに、揮発性メモリ１３内のＯＳプログラムが使用可能となったことに応じてアクセス先を揮発性メモリ１３に変更してＯＳの起動処理を継続する。このため、情報処理装置１は、システム電源１５が投入されてからＯＳの起動が完了するまでに要する時間を短縮できる。
【００３９】
＜発明の実施の形態２＞
本実施の形態にかかる情報処理装置２の構成を図５に示す。情報処理装置２は、第３のプロセッサ２２を有する点において、上述した情報処理装置１と構成上相違する。プロセッサ２２は、プロセッサ１１が行う準備処理、即ちＤＲＡＭ１３に保持されたカーネルイメージ１３１の正常性チェック処理とフラッシュメモリ１４からＤＲＡＭ１３へのカーネルイメージのロード処理の一部を分担して実行する。
【００４０】
なお、２つのプロセッサ１１及び２１にカーネルイメージ１３１の正常性チェック処理を分担させるためには、カーネルイメージ１３１を少なくとも２つのブロックに区切り、ブロック毎のチェックサムを保持しておけばよい。そして、プロセッサ１１及び２１にブロック単位で処理を分担させればよい。
【００４１】
本実施の形態によれば、プロセッサ１０が不揮発性メモリ１４からＯＳプログラムを読み出して実行可能となるための準備処理を複数のプロセッサ１１及び２２により分担して実行できる。このため、準備処理に要する時間が短縮され、ＯＳ起動処理の完了までに要する時間を短縮することができる。
【００４２】
なお、図５には、合計３つのプロセッサを配置し、１つのプロセッサが不揮発性メモリ１４からＯＳ起動を開始するとともに、残りの２つのプロセッサが準備処理を分担する場合について説明した。ここでの準備処理は、揮発性メモリ１３の正常性チェック、及び必要に応じて行われる不揮発性メモリ１４から揮発性メモリ１３へのＯＳプログラム（カーネルイメージ）のコピーを含む。しかしながら、準備処理を分担するプロセッサの数は、２つに限られない。つまり、情報処理装置２は、４つ以上のプロセッサを有し、３つ以上のプロセッサが準備処理を分担してもよい。
【００４３】
＜発明の実施の形態３＞
上述した発明の実施の形態１及び２では、揮発性メモリ１３の記憶内容を保持するためのバックアップ電源１６を有する情報処理装置に関して説明した。本実施の形態では、バックアップ電源１６を持たない情報処理装置に本発明を適用した場合について説明する。図６は、本実施の形態にかかる情報処理装置３の構成を示すブロック図である。情報処理装置３は、バックアップ電源１６を有していないため、システム電源１５の投入後にフラッシュメモリ１４からＤＲＡＭ１３にカーネルイメージをロードする必要がある。
【００４４】
情報処理装置３は、２つのプロセッサ１０及び３１を有する。このうち、プロセッサ１０は、フラッシュメモリ１４からカーネルイメージ１４１を読み出して実行することによりＯＳの起動処理を開始する。当該処理は、上述した発明の実施の形態１及び２と同様である。一方、プロセッサ３１は、プロセッサ１０がＤＲＡＭ１３からカーネルイメージを読み出して実行可能となるための準備処理を実行する。ここでの準備処理は、フラッシュメモリ１４からＤＲＡＭ１３へのカーネルイメージのコピーを含む。
【００４５】
図７は、情報処理装置３におけるＯＳ起動手順を示すプロセッサ１０及び３１のシーケンス図である。図７のシーケンス図は、ステップＳ１１１及びＳ１１２を含まない点が図３に示した発明の実施の形態のシーケンス図と異なる。図７の例では、ブートローダ１４０は、フラッシュメモリ１４からＤＲＡＭ１３へのカーネルイメージのコピーをプロセッサ３１に開始させる。なお、プロセッサ３１は、プロセッサ１０からの起動指示に依存せず、システム電源１５の投入後に自律的にカーネルイメージのコピーを開始してもよい。なお、図７に示した各ステップの処理内容は、図３に示したシーケンス図の対応するステップと同様であるため、ここでは重複説明を省略する。
【００４６】
本実施の形態によれば、不揮発性メモリ１４から揮発性メモリ１３へのＯＳプログラム（カーネルイメージ）をコピー処理の完了を待つことなく、当該処理と並行してＯＳの起動処理を開始することができ、システム電源１５の投入後からＯＳ起動処理の完了までに要する時間を短縮できる。
【００４７】
＜その他の実施の形態＞
発明の実施の形態３は、発明の実施の形態１又は２と組み合わせてもよい。つまり、情報処理装置１及び２が初めて起動される場合など、揮発性メモリ１３にＯＳプログラムがバックアップされていない場合に、図７に示したＯＳ起動手順を実行すればよい。
【００４８】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の形態１にかかる情報処理装置のブロック図である。
【図２】本発明の実施の形態１における物理アドレス空間のメモリマップとアクセス先変更部の動作を示す概念図である。
【図３】本発明の実施の形態１におけるＯＳ起動手順を示すシーケンス図である。
【図４Ａ】本発明の実施の形態１における物理アドレス空間のメモリマップと各構成要素の動作を示す概念図である。
【図４Ｂ】本発明の実施の形態１における物理アドレス空間のメモリマップと各構成要素の動作を示す概念図である。
【図５】本発明の実施の形態２にかかる情報処理装置のブロック図である。
【図６】本発明の実施の形態３にかかる情報処理装置のブロック図である。
【図７】本発明の実施の形態３におけるＯＳ起動手順を示すシーケンス図である。
【符号の説明】
【００５０】
１、２、３  情報処理装置
１０、１１、２２、３１  プロセッサ
１２  アクセス先変更部
１３  揮発性メモリ（ＤＲＡＭ）
１４  不揮発性メモリ（フラッシュメモリ）
１５  システム電源
１６  バックアップ電源
１００  物理アドレス空間
１３１  カーネルイメージ
１４０  ブートローダ
１４１  カーネルイメージ
【図１】
2010146142.tif 000003
【図２】
2010146142.tif 000004
【図３】
2010146142.tif 000005
【図４Ａ】
2010146142.tif 000006
【図４Ｂ】
2010146142.tif 000007
【図５】
2010146142.tif 000008
【図６】
2010146142.tif 000009
【図７】
2010146142.tif 000010