(57)【要約】【課題】製品コストを抑えた情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供する。【解決手段】サーバ１は、ＳＤＲＡＭ１３及びブートファームウェアプログラムを送信するサービスプロセッサ１１を備える。さらに、サーバ１は、サービスプロセッサ１１から送信されたブートファームウェアプログラムを格納するキャッシュ１２２を有し、キャッシュ１２２に格納されたブートファームウェアプログラムを実行してＳＤＲＡＭ１３を起動し、起動したＳＤＲＡＭ１３を用いてサーバ１の起動を実行するＣＰＵ１２を備える。【選択図】図１
2015191606.tif 000002
【特許請求の範囲】
【請求項１】
主記憶部と、
起動用プログラムを送信するプログラム送信部と、
前記プログラム送信部から送信された前記起動用プログラムを格納する内蔵記憶部を有し、前記内蔵記憶部に格納された前記起動用プログラムを実行して前記主記憶部を起動し、起動した前記主記憶部を用いて自装置の起動を実行する演算処理部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記プログラム送信部は、前記演算処理部をリセットし、起動用プログラムを前記内蔵記憶部に格納させ、
前記演算処理部は、前記内蔵記憶部に格納されている前記起動用プログラムを起動した前記主記憶部に格納させ、前記主記憶部に格納された前記起動用プログラムを用いて自装置の起動を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記演算処理部は、前記内蔵記憶部に格納された前記起動用プログラムを実行して前記主記憶部の初期化及び前記主記憶部へのリセット信号の送信を行うことで、前記主記憶部を起動することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記プログラム送信部は、常時電力が供給されており、起動命令を受けて前記起動用プログラムを送信し、
前記演算処理部及び前記主記憶部は、前記プログラム送信部が起動命令を受信すると電源の供給が開始される
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記プログラム送信部は、他の装置から起動用プログラムを取得することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
内蔵記憶部を有する第１プロセッサ、第２プロセッサ及び主記憶部を備えた情報処理装置の制御方法であって、
起動用プログラムの前記内蔵記憶部への格納を前記第２プロセッサに実行させ、
前記内蔵記憶部に格納された前記起動用プログラムを前記第１プロセッサに実行させて前記主記憶部を起動させ、
起動させた前記主記憶部を用いた自装置の起動を前記第１プロセッサに実行させる
ことを特徴とする情報処理装置の制御方法。
【請求項７】
内蔵記憶部を有する第１プロセッサ、第２プロセッサ及び主記憶部を備えた情報処理装置の制御プログラムであって、
起動用プログラムを前記内蔵記憶部へ格納させる処理を前記第２プロセッサに実行させ、
前記内蔵記憶部に格納された前記起動用プログラムを実行させて前記主記憶部を起動させ、起動した前記主記憶部を用いて自装置を起動させる処理を前記第１プロセッサに実行させる
ことを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
近年、サーバなどの情報処理装置は、演算処理装置としてのＣＰＵ（Central  Processing  Unit）を含めた情報処理装置全体の動作について外部から遠隔操作及び管理を行うための独立したコンピュータであるサービスプロセッサを備えることが多い。サービスプロセッサは、例えば、サーバの異常時に対する非常操作や平常時の起動／停止を行う。  
【０００３】
ここで、図９を参照して、サービスプロセッサを有する従来の情報処理装置について説明する。図９は、サービスプロセッサを有する従来のサーバの一例の図である。例えば、サーバ９００は、ＣＰＵ９０２とサービスプロセッサ９０１とがリセット信号線９０５で結線される。さらに、ＣＰＵ９０２は、揮発性主記憶装置であるＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）９０３に接続する。また、ＣＰＵ９０２は、ブートＲＯＭ（Read  Only  Memory）９０４とバス９０６により結線される。ＳＤＲＡＭ９０３は、複数のＳＤＲＡＭが集まったＳＤＲＡＭ群である。ブートＲＯＭ９０４には、ブートファームウェアプログラムが格納される。
【０００４】
また、ＣＰＵ９０２は、プログラムから１つのプロセッサとして認識される１個以上のコア９２１とＳＤＲＡＭ９０３に対するキャッシュ９２２を有する。また、ＣＰＵ９０２は、バスによってＩＯ（Input  Output）コントローラ９０７及びネットワークインタフェースコントローラ９０９と接続される。また、ＩＯコントローラ９０７には、ハードディスクなどの外部記憶装置９０８が接続される。
【０００５】
サーバ９００は、例えば、以下のような手順でシステムのリセット及びブートを実行する。サービスプロセッサ９０１が、リセット信号線９０５を経由させてＣＰＵ９０２へリセット信号を入力する。具体的には、サービスプロセッサ９０１は、リセット信号を入力するとき以外は、ＣＰＵ９０２に０を入力しており、リセット信号を入力するときにＣＰＵ９０２に入力する値を１に変更する。その後、サービスプロセッサ９０１は、ＣＰＵ９０２に入力する値を０に戻すことでリセット信号を解除し、ＣＰＵ９０２のリセットの実行命令をＣＰＵ９０２に入力する。
【０００６】
ＣＰＵ９０２に含まれる全てのコア９２１は、サービスプロセッサ９０１からリセット実行命令の入力を受ける。そして、全てのコア９２１は、固定物理アドレスを割り付けたブートＲＯＭ９０４内の固定アドレスから命令フェッチと起動処理の実行命令を開始する。この固定アドレスは、リセットアドレスとも呼ばれる。
【０００７】
この時、ＣＰＵ９０２に内蔵されるキャッシュ９２２は、ノンキャッシャブルでアクセスされる固定物理アドレスが割り付けられたＳＤＲＡＭデバイスとして動作する。
【０００８】
ブートＲＯＭ９０４内のリセットアドレスには、サーバ９００のブートを実行するためのプログラムであるブートファームウェアプログラム９４１が格納される。ＣＰＵ９０２は、リセットが解除されるとブートＲＯＭ９０４内に格納されているブートファームウェアプログラム９４１を実行する。
【０００９】
ＣＰＵ９０２は、ブードファームウェア９４１を実行することで、以下の処理を実行する。まず、ＰＯＳＴ（Power  On  Self-Test）により、ＣＰＵ９０２内部の動作テストが行われる。次に、ＰＯＳＴにおいて重大な異常が検出されず動作継続可能であれば、ＳＤＲＡＭ９０３が初期化され、ＳＤＲＡＭ９０３のリフレッシュが開始される。これ以降、ＳＤＲＡＭ９０３は書き込まれたデータを保持するようになり、主記憶装置として動作する。次に、ブートファームウェアプログラム９４１が、ＳＤＲＡＭ９０３にコピーされる。さらに、ＳＤＲＡＭ９０３内のブートファームウェアプログラムにより使用されるデータ域が初期化される。その後、サーバの動作モードは、ＣＰＵ９０２が有するキャッシュ９２２をＳＤＲＡＭ９０３のキャッシュとして動作するモードに変更される。ＣＰＵ９０２に含まれる全てのコア９２１が、ＳＤＲＡＭ９０３に格納されたブートファームウェアプログラムを実行する。以後、ＳＤＲＡＭ９０３は、ブートファームウェアプログラムの格納領域及びブード時のデータの格納領域として使用される。その後、サービスプロセッサ９０１、ＣＰＵ９０２、ＳＤＲＡＭ９０３及びブートＲＯＭ９０４以外のハードウェアの初期化が行われる。そして、ＣＰＵ９０２は、Ｉ／Ｏ（Input/Output）装置に対するＯＳ（Operating  System）ブートローダの読み込みを行い、読み込んだＯＳブートローダの実行を開始する。
【００１０】
コンピュータのブート方法として、ベースボードマネジメントコントローラがメモリからファームウェアをロードし、キャッシュメモリに格納してブードを行う従来技術がある。また、ＣＰＵがブートファームウェアプログラムを読み込んでキャッシュメモリに格納しブートを行う従来技術がある。さらに、サーバの診断用のプロセッサがブートファームウェアプログラムを主記憶装置上にコピーしてブートを行う従来技術がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特表２００６−５１５９４０号公報
【特許文献２】特開２００８−１６０２０号公報
【特許文献３】特開２００９−２１７３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の情報処理装置では、ブートするために使用するブートファームウェアプログラムを格納しておくブートＲＯＭが設けられており、製品コストが増加する。
【００１３】
また、キャッシュメモリや主記憶装置にブートファームウェアプログラムを読み込む従来技術であっても、ブートファームウェアプログラムを格納しておくためのブートＲＯＭなどの記憶装置が設けられており、製品コストを下げることは困難である。
【００１４】
開示の技術は、上記に鑑みてなされたものであって、製品コストを抑えた情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムは、一つの態様において、主記憶部、起動用プログラムを送信するプログラム送信部及び演算処理部を備える。そして、演算処理部は、前記プログラム送信部から送信された前記起動用プログラムを格納する内蔵記憶部を有する。さらに、演算処理部は、前記内蔵記憶部に格納された前記起動用プログラムを実行して前記主記憶部を起動し、起動した前記主記憶部を用いて自装置の起動を実行する。
【発明の効果】
【００１６】
本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムの一つの態様によれば、製品コストを抑えることができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例に係るサーバのハードウェア構成を表す概略図である。
【図２】図２は、実施例に係るサーバのブート時の動作を説明するための第１図である。
【図３】図３は、実施例に係るサーバのブート時の動作を説明するための第２図である。
【図４】図４は、実施例に係るサーバのブート時の動作を説明するための第３図である。
【図５】図５は、実施例に係るサーバのブート時の動作を説明するための第４図である。
【図６】図６は、実施例に係るサーバのブート時の動作を説明するための第５図である。
【図７】図７は、実施例に係るサーバのブート時の動作を説明するための第６図である。
【図８】図８は、実施例に係るサーバのブート処理のフローチャートである。
【図９】図９は、サービスプロセッサを有する従来のサーバの一例の図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラムが限定されるものではない。
【実施例】
【００１９】
図１は、実施例に係るサーバのハードウェア構成を表す概略図である。情報処理装置であるサーバ１は、サービスプロセッサ１１、演算処理部であるＣＰＵ１２、主記憶装置であるＳＤＲＡＭ１３を有している。さらに、サーバ１は、ネットワークインタフェースコントローラ１４、ＩＯコントローラ１５、外部記憶装置１６及びネットワークインタフェースコントローラ１７を有している。
【００２０】
ネットワークインタフェースコントローラ１４は、ネットワーク２に接続するためのインタフェースである。
【００２１】
サービスプロセッサ１１は、ＣＰＵ１２とリセット信号線２１で結線されている。また、サービスプロセッサ１１は、命令フェッチ停止信号線２２でＣＰＵ１２のコア１２１と結線されている。さらに、サービスプロセッサ１１は、ＣＰＵ１２に内蔵されたキャッシュ１２２とＣＰＵ−ＳＶＰ（Service  Processor）間データバス２３で結線されている。
【００２２】
また、サービスプロセッサ１１は、ネットワークインタフェースコントローラ１４に接続される。
【００２３】
サービスプロセッサ１１は、サーバ１の電源がオフされた状態でも電力供給を受けている。これに対して、サーバ１におけるサービスプロセッサ１１以外のハードウェアは、電源がオンされた後に電力供給を受ける。
【００２４】
サービスプロセッサ１１は、ブートを実行するまでは、０の値のリセット信号をリセット信号線２１を介してＣＰＵ１２へ出力する。また、サービスプロセッサ１１は、ブートを実行するまでは、０の値の命令フェッチ停止信号を命令フェッチ停止信号線２２を介してＣＰＵ１２のコア１２１へ出力する。
【００２５】
そして、サービスプロセッサ１１は、ネットワーク２を介して外部の装置からサーバ１のブート命令を受信する。ここで、本実施例では、ブートを行う場合の一例として、サービスプロセッサ１１が外部からブート命令を受けた場合で説明するが、これに限らず、サーバ１のブートが発生するタイミングであれば本実施例で説明する処理が実施させる。例えば、電源のオンや再起動の命令を受けた場合のブートであってもよい。
【００２６】
サーバ１のブート命令を受信すると、サービスプロセッサ１１は、リセット信号線２１を介してＣＰＵ１２へ出力するリセット信号の値を１に変更する。これにより、ＣＰＵ１２は、リセット実行の待機状態となる。また、サービスプロセッサ１１は、命令フェッチ停止信号線２２を介してコア１２１へ出力する命令フェッチ停止信号を１に変更する。これにより、コア１２１は、命令フェッチ及び命令実行が停止状態となる。
【００２７】
次に、サービスプロセッサ１１は、リセット信号線２１を介してＣＰＵ１２へ出力するリセット信号の値を０に変更し、ＣＰＵ１２にリセットを実行させる。
【００２８】
次に、サービスプロセッサ１１は、ネットワーク２からブートファームウェアプログラムを取得する。具体的には、サービスプロセッサ１１は、ネットワーク２上に配置された他のサーバなどからブートファームウェアプログラムを取得する。ここで、本実施例では、ネットワーク２からブートファームウェアプログラムを取得したが、これに限らず、例えば、サービスプロセッサ１１がブートファームウェアプログラムを予め記憶しておいてもよい。このブートファームウェアプログラムが、「起動用プログラム」の一例にあたる。
【００２９】
そして、サービスプロセッサ１１は、ＣＰＵ−ＳＶＰ間データバス２３を経由させて、ＣＰＵ１２に内蔵されたキャッシュ１２２にブートファームウェアプログラムを送信し格納させる。
【００３０】
次に、サービスプロセッサ１１は、命令フェッチ停止信号線２２を介してコア１２１へ出力する命令フェッチ停止信号を０に変更する。これにより、コア１２１は、命令フェッチ及び命令実行を開始する。このサービスプロセッサ１１が、「プログラム送信部」の一例にあたる。
【００３１】
ＳＤＲＡＭ１３は、揮発性主記憶装置であるＳＤＲＡＭを複数有するＳＤＲＡＭ群である。ＳＤＲＡＭ１３は、コア１２１により初期化されリフレッシュが開始されると、書き込まれたデータを保持するようになり、主記憶装置として動作する。
【００３２】
ＣＰＵ１２は、複数のコア１２１及びキャッシュ１２２を有している。各コア１２１とキャッシュ１２２とは内部バスで接続されている。キャッシュ１２２は、ＳＤＲＡＭ１３と接続されている。ただし、この接続は一例であり、例えば、コア１２１とＳＤＲＡＭ１３とが直接接続されてもよい。このキャッシュ１２２が、「内蔵記憶部」の一例にあたる。
【００３３】
さらに、ＣＰＵ１２は、ＩＯコントローラ１５及びネットワークインタフェースコントローラ１７とバス２４を介して接続している。
【００３４】
ＣＰＵ１２は、サービスプロセッサ１１から入力されたリセット信号の値が１から０に変わると、ＣＰＵ１２全体をリセットする。具体的には、ＣＰＵ１２は、Program  Counter（ＰＣ）がＳＤＲＡＭとして動作するキャッシュ１２２の固定アドレスであるリセットアドレスを指すようにコア１２１に指示する。また、ＣＰＵ１２は、固定アドレスであるリセットアドレスを持ちノンキャッシャブルでアクセスされるＳＤＲＡＭとして動作するようにキャッシュ１２２に指示する。
【００３５】
コア１２１は、命令レジスタ１２３及びＰＣレジスタ１２４を有する。コア１２１は、命令フェッチ停止信号線２２を介してサービスプロセッサ１１から、値が１の命令フェッチ停止信号の入力を受ける。値が１の命令フェッチ停止信号の入力を受けている間、コア１２１は、命令フェッチ及び命令実行を停止し続ける。
【００３６】
また、コア１２１は、ＰＣがキャッシュ１２２のリセットアドレスを指すようにする指示をＣＰＵ１２から受ける。そして、コア１２１は、ＰＣレジスタ１２４が有するＰＣがキャッシュ１２２のリセットアドレスを指すように設定する。
【００３７】
その後、コア１２１は、値が０の命令フェッチ停止信号の入力を命令フェッチ停止信号線２２を介してサービスプロセッサ１１から受ける。すなわち、コア１２１に入力される命令フェッチ停止信号の値が１から０に変わる。命令フェッチ停止信号の値が１から０に変わると、コア１２１は、ＰＣレジスタ１２４が指すキャッシュ１２２のリセットアドレスに格納されているブートファームウェアプログラムから命令フェッチを行い、命令レジスタ１２３に命令コードを格納する。そして、コア１２１は、命令レジスタ１２３に格納した命令コードを実行する。
【００３８】
コア１２１は、ブートファームウェアプログラムから取得した命令コードを実行することで、以下の処理を行う。まず、コア１２１は、ＰＯＳＴを行い、ＣＰＵ１２の内部の動作テストを行う。そして、ＰＯＳＴで重大な異常が検出されず動作継続が可能であれば、コア１２１は、ＳＤＲＡＭ１３を初期化する。そして、コア１２１はＳＤＲＡＭ１３のリフレッシュを開始する。これ以降、ＳＤＲＡＭ１３は、書き込まれたデータを保持するようになり、主記憶装置として動作するようになる。
【００３９】
ＳＤＲＡＭ１３が主記憶装置として動作するようになると、ブートファームウェアプログラムから取得した命令コードを実行することで、以下の処理を行う。コア１２１は、キャッシュ１２２に格納されているブートファームウェアプログラムをＳＤＲＡＭ１３にコピーする。さらに、コア１２１は、ブートファームウェアプログラムの実行で用いるＳＤＲＡＭ１３上のデータ域を初期化する。さらに、コア１２１は、キャッシュ１２２をＳＤＲＡＭ１３のキャッシュとして動作するモードに変更する。
【００４０】
次に、コア１２１は、ＳＤＲＡＭ１３に格納されたブートファームウェアプログラムを用いて以降のブート処理を実行するように変更する。この処理は、コア１２１がＳＤＲＡＭ１３上のブートファームウェアプログラムにJumpさせられると呼ばれる場合もある。この処理も、ブートファームウェアプログラムから取得した命令コードをコア１２１が実行することで実現させる。これにより、これ以降、コア１２１は、ブートファームウェアプログラムの実行に当たり、プログラムの格納領域及びデータの格納領域の双方としてＳＤＲＡＭ１３を用いて動作する。
【００４１】
その後、コア１２１は、ＳＤＲＡＭ１３上のブートファームウェアプログラムを実行して以下の処理を行う。コア１２１は、サービスプロセッサ１１、ＣＰＵ１２及びＳＤＲＡＭ１３以外のサーバ１のハードウェア（例えば、ＩＯコントローラ１５、外部記憶装置１６及びネットワークインタフェースコントローラ１７）を初期化する。そして、コア１２１は、ＯＳブートローダを、例えば、外部記憶装置１６から読み込む。さらに、コア１２１は、読み込んだＯＳブートローダを実行する。ここで、本実施例では、コア１２１は外部記憶装置１６からＯＳブートローダを読み込んでいるが、ＯＳの読み込み場所はこれに限らず、例えば、ネットワーク３からＯＳを読み込んでもよい。以上の処理は、コア１２１毎に行われる。
【００４２】
ＩＯコントローラ１５は、外部記憶装置１６へのデータの読み書きを制御する。外部記憶装置１６は、ハードディスクなどの補助記憶装置である。ネットワークインタフェースコントローラ１７は、ネットワーク３に接続するためのインタフェースである。
【００４３】
次に、図２〜図７を参照して、サーバ１のブート時の処理の流れをブートファームウェアプログラムの移動とともにまとめて説明する。図２〜図７は、それぞれ実施例に係るサーバのブート時の動作を説明するための第１図〜第６図である。
【００４４】
図２に示すように、サービスプロセッサ１１は、ネットワーク２上のブートファームウェアプログラム１０１を取得する（ステップＳ１）。図２では、ステップＳ１で、サービスプロセッサ１１が取得したブートファームウェアプログラムを、ブートファームウェアプログラム１０２として表している。
【００４５】
次に、図３に示すように、サービスプロセッサ１１は、リセット信号として１をリセット信号線２１を介してＣＰＵ１２へ出力する（ステップＳ２）。また、サービスプロセッサ１１は、命令フェッチ停止信号として１を命令フェッチ停止信号線２２を介してコア１２１へ出力する（ステップＳ３）。次に、サービスプロセッサ１１は、ブートファームウェアプログラム１０２をＣＰＵ−ＳＶＰ間データバス２３を介してキャッシュ１２２へ送信し、キャッシュ１２２にブートファームウェアプログラム１０３として記憶させる（ステップＳ４）。
【００４６】
次に、図４に示すように、サービスプロセッサ１１は、命令フェッチ停止信号として０を命令フェッチ停止信号線２２を介してコア１２１へ出力する（ステップＳ５）。入力される命令フェッチ停止信号が０に変わると、コア１２１は、ＰＣレジスタ１２４に格納されるキャッシュ１２２のリセットアドレスを取得する。そして、コア１２１は、取得したキャッシュ１２２のリセットアドレスに格納されているブートファームウェアプログラム１０３から命令フェッチを行い、ブートファームウェア実行命令コード１０４を命令レジスタ１２３に格納し実行する（ステップＳ６）。この時、コア１２１は、ＰＯＳＴを実行し、ＣＰＵ１２内部の動作をテストする。
【００４７】
ＰＯＳＴで重大なエラーが検出されず動作継続が可能な場合、図５に示すように、サービスプロセッサ１１は、ＳＤＲＡＭ１３を初期化した後、リフレッシュを開始する（ステップＳ７）。
【００４８】
次に、図６に示すように、コア１２１は、キャッシュ１２２上のブートファームウェアプログラム１０３から命令フェッチを行うことで（ステップＳ８）、以下の処理を実行する。コア１２１は、キャッシュ１２２に格納されているブートファームウェアプログラム１０３をＳＤＲＡＭ１３にコピーし、ＳＤＲＡＭ１３にブートファームウェアプログラム１０５を格納させる（ステップＳ９）。さらに、コア１２１は、ＳＤＲＡＭ１３上のブートファームウェアプログラムの実行に使用するデータ域を初期化する（ステップＳ１０）。
【００４９】
その後、コア１２１は、実行するプログラムをＳＤＲＡＭ１３上のブートファームウェアプログラム１０５に変更する。そして、図７に示すように、コア１２１は、ＳＤＲＡＭ１３上のブートファームウェアプログラム１０５から命令フェッチを行い、ブートファームウェア実行命令コード１０７を命令レジスタ１２３に格納し実行する（ステップＳ１１）。このとき、コア１２１は、初期したＳＤＲＡＭ１３上のデータ域にデータ１０６を格納しつつブートファームウェアプログラムを実行する。これにより、コア１２１は、サービスプロセッサ１１、ＣＰＵ１２及びＳＤＲＡＭ１３以外のサーバ１のハードウェアの初期化を行う。さらに、コア１２１は、ＯＳブートローダを外部記憶装置１６から読み込み、読み込んだＯＳブートローダを実行する。
【００５０】
さらに、図８を参照して、本実施例に係るサーバによるブート処理の流れについて説明する。図８は、実施例に係るサーバのブート処理のフローチャートである。
【００５１】
サービスプロセッサ１１は、リセット信号として１をＣＰＵ１２に入力する。また、サービスプロセッサ１１は、命令フェッチ停止信号として１をコア１２１に入力する（ステップＳ１０１）。
【００５２】
次に、サービスプロセッサ１１は、リセット信号として０を入力する（ステップＳ１０２）。すなわち、ＣＰＵ１２に入力されるリセット信号が１から０に変化する。
【００５３】
次に、サービスプロセッサ１１は、ブートファームウェアプログラムをＣＰＵ１２に内蔵されたキャッシュ１２２に書き込む（ステップＳ１０３）。
【００５４】
そして、サービスプロセッサ１１は、命令フェッチ停止信号として０を入力する（ステップＳ１０４）。すなわち、コア１２１に入力される命令フェッチ信号が１から０に変化する。
【００５５】
コア１２１は、ＣＰＵ１２に内蔵されたキャッシュ１２２のリセットアドレスに格納されているブートファームウェアプログラムから命令フェッチを行い実行する（ステップＳ１０５）。
【００５６】
そして、コア１２１は、ＰＯＳＴを実行する（ステップＳ１０６）。
【００５７】
ＰＯＳＴで重大なエラーが発見されず動作継続可能な場合、コア１２１は、ＳＤＲＡＭ１３の初期化及びリフレッシュを実行する（ステップＳ１０７）。
【００５８】
さらに、コア１２１は、キャッシュ１２２に格納されているブートファームウェアプログラムをＳＤＲＡＭ１３へのコピーを行う。また、コア１２１は、ＳＤＲＡＭ１３におけるブートファームウェアプログラムの実行で使用するデータ域を初期化する（ステップＳ１０８）。
【００５９】
そして、コア１２１は、実行するプログラムをＳＤＲＡＭ１３上のブートファームウェアプログラムに変更する（ステップＳ１０９）。
【００６０】
その後、コア１２１は、ＳＤＲＡＭ１３上のブートファームウェアプログラムを実行して、サーバ１のサービスプロセッサ１１、ＣＰＵ１２及びＳＤＲＡＭ１３以外の残りのハードウェアを初期化する（ステップＳ１１０）。
【００６１】
そして、コア１２１は、ＯＳブートローダを外部記憶装置１６から読み込み実行する（ステップＳ１１１）。
【００６２】
以上に説明したように、本実施例に係る情報処理装置は、ブートファームウェアプログラムを格納しておくブートＲＯＭを設けなくてもよい。そのため、製品全体の製造コストを抑えることができる。
【００６３】
また、本実施例に係る情報処理装置は、ブートファームウェアプログラムをＣＰＵに内蔵されたキャッシュから命令フェッチして実行するので、主記憶装置上のブートファーウェアプログラムから命令フェッチを行う従来技術よりも実行速度が速い。また、本実施例に係る情報処理装置は、ＣＰＵ外部のキャッシュに格納されたブートファームウェアプログラムを使用する場合と比べても実行速度が速い。
【００６４】
さらに、本実施例に係る情報処理装置は、ブートファームウェアプログラムを外部から取得することができる。これにより、ブートファームウェアプログラムの更新時にブートＲＯＭを書き換えなくてもよくなる。ＲＯＭの書き込み速度はＣＰＵやＳＤＲＡＭの動作に比べて遅く、更新作業に時間がかかる。本実施例に係る情報処理装置では、このように多くの時間がかかるブートＲＯＭの更新作業を削減することができる。
【００６５】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００６６】
（付記１）主記憶部と、起動用プログラムを送信するプログラム送信部と、前記プログラム送信部から送信された前記起動用プログラムを格納する内蔵記憶部を有し、前記内蔵記憶部に格納された前記起動用プログラムを実行して前記主記憶部を起動し、起動した前記主記憶部を用いて自装置の起動を実行する演算処理部とを備えたことを特徴とする情報処理装置。
【００６７】
（付記２）前記プログラム送信部は、前記演算処理部をリセットし、起動用プログラムを前記内蔵記憶部に格納させ、前記演算処理部は、前記内蔵記憶部に格納されている前記起動用プログラムを起動した前記主記憶部に格納させ、前記主記憶部に格納された前記起動用プログラムを用いて自装置の起動を実行することを特徴とする付記１に記載の情報処理装置。
【００６８】
（付記３）前記プログラム送信部は、前記演算処理部をリセットし且つ前記起動用プログラムを前記内蔵記憶部に格納させるまでは、前記演算処理部の命令フェッチを停止させておくことを特徴とする付記２に記載の情報処理装置。
【００６９】
（付記４）前記演算処理部は、前記プログラム送信部によりリセットされると、前記内蔵記憶部をアクセスされる固定物理アドレスを持った記憶装置として動作させ、前記内蔵記憶部の固定アドレスに命令フェッチ開始アドレスを設定することを特徴とする付記２又は３に記載の情報処理装置。
【００７０】
（付記５）前記演算処理部は、前記内蔵記憶部に格納された前記起動用プログラムを実行して前記主記憶部の初期化及び前記主記憶部へのリセット信号の送信を行うことで、前記主記憶部を起動することを特徴とする付記１〜４のいずれか一つに記載の情報処理装置。
【００７１】
（付記６）前記プログラム送信部は、常時電力が供給されており、起動命令を受けて前記起動用プログラムを送信し、前記演算処理部及び前記主記憶部は、前記プログラム送信部が起動命令を受信すると電源の供給が開始されることを特徴とする付記１〜５のいずれか一つに記載の情報処理装置。
【００７２】
（付記７）前記プログラム送信部は、他の装置から起動用プログラムを取得することを特徴とする付記１〜６のいずれか一つに記載の情報処理装置。
【００７３】
（付記８）補助記憶装置をさらに備え、前記演算処理部は、前記主記憶部に格納された前記起動用プログラムを用いてを用いて前記補助記憶装置を起動させることを特徴とする付記１〜７のいずれか一つに記載の情報処理装置。
【００７４】
（付記９）前記演算処理部は、前記内蔵記憶部をアクセスされる固定物理アドレスを持った記憶装置として動作させ、前記内蔵記憶部に格納された前記起動用プログラムを実行することを特徴とする付記１〜８のいずれか一つに記載の情報処理装置。
【００７５】
（付記１０）内蔵記憶部を有する第１プロセッサ、第２プロセッサ及び主記憶部を備えた情報処理装置の制御方法であって、起動用プログラムの前記内蔵記憶部への格納を前記第２プロセッサに実行させ、前記内蔵記憶部に格納された前記起動用プログラムを前記第１プロセッサに実行させて前記主記憶部を起動させ、起動させた前記主記憶部を用いた自装置の起動を前記第１プロセッサに実行させることを特徴とする情報処理装置の制御方法。
【００７６】
（付記１１）内蔵記憶部を有する第１プロセッサ、第２プロセッサ及び主記憶部を備えた情報処理装置の制御プログラムであって、起動用プログラムを前記内蔵記憶部へ格納させる処理を前記第２プロセッサに実行させ、前記内蔵記憶部に格納された前記起動用プログラムを実行させて前記主記憶部を起動させ、起動した前記主記憶部を用いて自装置を起動させる処理を前記第１プロセッサに実行させることを特徴とする情報処理装置の制御プログラム。
【符号の説明】
【００７７】
１  サーバ
１１  サービスプロセッサ
１２  ＣＰＵ
１３  ＳＤＲＡＭ
１４  ネットワークインタフェースコントローラ
１５  ＩＯコントローラ
１６  外部記憶装置
１７  ネットワークインタフェースコントローラ
１２１  コア
１２２  キャッシュ
１２３  命令レジスタ
１２４  ＰＣレジスタ
【図１】
2015191606.tif 000003
【図２】
2015191606.tif 000004
【図３】
2015191606.tif 000005
【図４】
2015191606.tif 000006
【図５】
2015191606.tif 000007
【図６】
2015191606.tif 000008
【図７】
2015191606.tif 000009
【図８】
2015191606.tif 000010
【図９】
2015191606.tif 000011