(57)【要約】【課題】特定の起動場面における起動時間を短縮すること。【解決手段】情報処理装置であって、起動時に、記憶部における固定アドレス領域に格納された命令を実行するプロセッサと、第１の起動プログラムと、前記第１の起動プログラムとは少なくとも一部の内容が異なる第２の起動プログラムとを格納した前記記憶部と、前記のプロセッサが、当該情報処理装置への電源投入時に行われる通常起動とは異なる特定起動をする際に、前記プロセッサが発行した読み出し命令に含まれる前記第１の起動プログラムの格納領域を指し示すアドレスを、前記第２の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達するアドレス変換部と、を備える情報処理装置。【選択図】図１
2014056453.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
起動時に、記憶部における固定アドレス領域に格納された命令を実行するプロセッサと、
第１の起動プログラムと、前記第１の起動プログラムとは少なくとも一部の内容が異なる第２の起動プログラムとを格納した前記記憶部と、
前記のプロセッサが、当該情報処理装置への電源投入時に行われる通常起動とは異なる特定起動をする際に、前記プロセッサが発行した読み出し命令に含まれる前記第１の起動プログラムの格納領域を指し示すアドレスを、前記第２の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達するアドレス変換部と、
を備える情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
起動時に、前記記憶部における前記プロセッサにより指定されたアドレス領域に格納された命令を実行する第２のプロセッサを備え、
前記第１の起動プログラムは、前記第２のプロセッサの起動制御に係る命令を含み、前記第２の起動プログラムは、前記第２のプロセッサの起動制御に係る命令を含まない、
情報処理装置。
【請求項３】
請求項１又は２記載の情報処理装置であって、
前記記憶部は不揮発性メモリとＲＡＭを含み、
前記通常起動が行われる際に、前記第１の起動プログラムおよび前記第２の起動プログラムは、不揮発性メモリに格納されており、
前記特定起動が行われる前に、前記第２の起動プログラムが前記ＲＡＭにコピーされ、
前記アドレス変換部は、前記第１のプロセッサが前記特定起動をする際に、前記第１のプロセッサが発行した読み出し命令に含まれる前記第１の起動プログラムの格納領域を指し示すアドレスを、前記ＲＡＭにおける前記第２の起動プログラムの格納領域を指し示すアドレスに変換して前記ＲＡＭに伝達する、
情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項記載の情報処理装置であって、
前記アドレス変換部は、前記通常起動が行われた後、前記第１のプロセッサが発行した読み出し命令に含まれる前記第１の起動プログラムの格納領域を指し示すアドレスを、前記第２の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達する状態に変化する、
情報処理装置。
【請求項５】
請求項２記載の情報処理装置であって、
前記アドレス変換部は、
前記第１のプロセッサが前記通常起動を行った後、前記固定アドレス領域に、割り込み処理に係るプログラムが格納された領域を対応付けた状態に変化し、
前記第２のプロセッサから、前記第１のプロセッサが特定起動をすることを示す通知がなされたときに、前記第１のプロセッサが発行した読み出し命令に含まれる前記第１の起動プログラムの格納領域を指し示すアドレスを、前記第２の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達する状態に変化する、
情報処理装置。
【請求項６】
請求項２記載の情報処理装置であって、
前記アドレス変換部は、前記プロセッサおよび前記第２のプロセッサと前記記憶部を接続するバスにおける、所定の中継箇所に取り付けられる、
情報処理装置。
【請求項７】
請求項２記載の情報処理装置であって、
前記アドレス変換部は、前記プロセッサおよび前記第２のプロセッサと前記記憶部を接続するバスから前記プロセッサに分岐する通信路に取り付けられる、
情報処理装置。
【請求項８】
請求項２記載の情報処理装置であって、
前記プロセッサの消費電力を低減する省電力モードへの移行を実行することができ、
前記第２のプロセッサが前記省電力モードからの復帰要因を監視し、
前記省電力モードの実行中において、前記アドレス変換部への電力供給が維持される、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
従来、情報処理装置の起動処理に関して、種々の工夫がなされている。例えば、特許文献１には、第１及び第２のプロセッサを備え、第２のプロセッサが、第１のプロセッサが第１のメモリからプログラムに関する命令群を読み出して実行可能となるための準備処理を実行し、第１のプロセッサが、第２のプロセッサによる準備処理の実行と時間的に並行して第１のメモリとは異なる第２のメモリからプログラムに関する命令群を読み出して実行し、準備処理の完了に応じて命令群の取得先を第２のメモリから第１のメモリに切り替えてプログラムを継続的に実行する情報処理装置について記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記特許文献１に記載の情報処理装置では、ハードウェア的なプロセッサの起動処理が一種類しか記載されておらず、情報処理装置への電源投入時に行われる通常起動とは異なる起動（例えば電源を維持した状態での再起動など）をハードウェア的に行う際にも、周辺モジュールの初期化や起動プログラムのべリファイ処理等を含めた一連の起動処理を全て行う必要が生じ得る。このため、通常起動とは異なる起動を行う際の起動時間が長くなる場合がある。
【０００４】
一つの側面では、特定の起動場面における起動時間を短縮することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するための情報処理装置の一態様は、起動時に、記憶部における固定アドレス領域に格納された命令を実行するプロセッサと、第１の起動プログラムと、前記第１の起動プログラムとは少なくとも一部の内容が異なる第２の起動プログラムとを格納した前記記憶部と、前記のプロセッサが、当該情報処理装置への電源投入時に行われる通常起動とは異なる特定起動をする際に、前記プロセッサが発行した読み出し命令に含まれる前記第１の起動プログラムの格納領域を指し示すアドレスを、前記第２の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達するアドレス変換部と、を備える。
【発明の効果】
【０００６】
一実施態様によれば、特定の起動場面における起動時間を短縮することができる。
【図面の簡単な説明】
【０００７】
【図１】第１実施例に係る情報処理装置１のハードウェア構成例である。
【図２】アドレス変換部５２およびアクセス分配部５４の構成例である。
【図３】情報処理装置１におけるメモリマップの一例である。
【図４】情報処理装置１への通常の電源投入時におけるメモリマップを例示した図である。
【図５】通常の電源投入からしばらく時間が経過し、ブートプログラムが実行された後のメモリマップを例示した図である。
【図６】通常起動時に、ＣＰＵ１０、アドレス変換部５２、アクセス分配部５４、およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。
【図７】ＣＰＵ１０からフラッシュメモリ４２に読み出し命令が伝達され、フラッシュメモリ４２に格納された命令がＣＰＵ１０に返される様子を示す図である。
【図８】通常起動が完了した状態におけるメモリマップを例示した図である。
【図９】再起動時にＣＰＵ１０により実行される処理の流れを示すフローチャートの一例である。
【図１０】情報処理装置２における、通常起動後のメモリマップを例示した図である。
【図１１】通常起動時に、第２実施例に係るＣＰＵ１０、アドレス変換部５２、アクセス分配部５４、およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。
【図１２】情報処理装置２における、ＣＰＵ１０に再起動要因が発生したことが通知された後のメモリマップを例示した図である。
【図１３】再起動時に、第２実施例に係るＣＰＵ１０、アドレス変換部５２、およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。
【図１４】情報処理装置３のハードウェア構成例である。
【図１５】省電力モード中に電力供給が遮断される機器を斜線で例示した図である。
【図１６】第３実施例に係るＣＰＵ１０およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。
【図１７】第３実施例に係るＣＰＵ１０およびＣＰＵ１２により実行される処理の流れを示すフローチャートの他の例である。
【図１８】情報処理装置の他の構成例である。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【０００９】
以下、図面を参照し、情報処理装置の実施例について説明する。なお、以下の説明における「ゼロ番地」は、特許請求の範囲における「固定アドレス領域」の開始番地の一例であり、ゼロ番地では無い固定アドレスから開始するプロセッサに適用する場合には、「ゼロ番地」を「固定アドレス」と読み替えればよい。
【００１０】
＜第１実施例＞
［構成］
図１は、第１実施例に係る情報処理装置１のハードウェア構成例である。情報処理装置１は、例えば、ＣＰＵ（Central  Processing  Unit）１０および１２と、周辺モジュール２０と、ＲＡＭ（Random  Access  Memory）コントローラ３０およびＲＡＭ３２と、ＮＡＮＤコントローラ４０およびフラッシュメモリ４２とを備える。これらの構成要素は、内部バス５０によって接続されている。内部バス５０は、アドレス変換部５２およびアクセス分配部５４を備える。また、ＣＰＵ１０および１２、周辺モジュール２０、ＲＡＭコントローラ３０、ＮＡＮＤコントローラ４０、および内部バス５０は、例えば１つのチップ上に搭載されたＳＯＣ（System  On  Chip）として構成される。
【００１１】
ＣＰＵ１０および１２は、例えば、制御部、命令フェッチユニット、命令デコーダ、命令発行部、各種演算器、ＬＳＵ（Load  Store  Unit）、レジスタファイル等を有するプロセッサである。ＣＰＵ１０およびＣＰＵ１２は、例えば、それぞれがＯＳ（オペレーティングシステム）を搭載し、情報処理装置１はマルチＯＳの情報処理装置として機能する。
【００１２】
ＣＰＵ１０は、起動時に、フラッシュメモリ４２における固定アドレス領域（例えば０番地から始まる領域）に格納された命令を実行するように制御される。一方、ＣＰＵ１２は、起動時に、ＲＡＭ３２又はフラッシュメモリ４２におけるＣＰＵ１０により指定された領域に格納された命令を実行するように制御される。すなわち、ＣＰＵ１０はＣＰＵ１２に対してマスタープロセッサとして動作し、ＣＰＵ１２はＣＰＵ１０に対してスレーブプロセッサとして動作する。
【００１３】
周辺モジュール２０は、例えば、ＲＡＭ３２やフラッシュメモリ４２以外の外部機器やイーサネット（登録商標）等のネットワークとの通信を行う通信インターフェース、表示装置の表示画像を生成する画像処理部、スピーカが出力する音声を生成する音声処理部等を含む。
【００１４】
ＲＡＭ３２は、フラッシュメモリ４２に格納されたプログラムが展開（ロード）されたり、ＣＰＵ１０および１２による演算結果が格納されたりする主記憶装置である。
【００１５】
フラッシュメモリ４２は、ＣＰＵ１０および１２が実行するプログラムを格納したプログラムメモリであり、情報処理装置１の電源がオフにされたときに保持すべきデータが格納される不揮発性メモリである。なお、フラッシュメモリ４２に代えて、ＨＤＤ（Hard  Disk  Drive）、マスクＲＯＭ（Read  Only  Memory）等の他の種類の不揮発性メモリが用いられてもよい。
【００１６】
図２は、アドレス変換部５２およびアクセス分配部５４の構成例である。
【００１７】
アドレス変換部５２は、起動済フラグ記憶部５２Ａと、再起動判定部５２Ｂと、オフセット値テーブル５２Ｃと、加算器５２Ｄとを備える。
【００１８】
起動済フラグ記憶部５２Ａは、例えばレジスタであり、情報処理装置１が通常の起動をしたときに、再起動判定部５２Ｂによって所定のフラグ（例えば値１を示すデータ）が書き込まれる。
【００１９】
再起動判定部５２Ｂは、例えば論理回路であり、起動済フラグ記憶部５２Ａに所定のフラグを書き込んだり、オフセット値テーブル５２Ｃの内容を書き換えたりする。再起動判定部５２Ｂは、起動済フラグ記憶部５２Ａに所定のフラグが書き込まれている場合と、書き込まれていない場合とで異なる値がオフセット値テーブル５２Ｃに格納されるように、オフセット値テーブル５２Ｃを制御する。
【００２０】
オフセット値テーブル５２Ｃは、ＲＡＭ３２やフラッシュメモリ４２を含むメモリ領域の例えば全てについて、ＣＰＵ１０およびＣＰＵ１２から送信されたアドレス信号のアドレス値をオフセットさせる量が格納されている。オフセット値テーブル５２Ｃは、メモリ領域のうちオフセットさせない領域に関しては、値ゼロを格納している。
【００２１】
加算器５２Ｄは、ＣＰＵ１０およびＣＰＵ１２から送信されたアドレス信号に、オフセット値テーブル５２Ｃに格納され、当該アドレス値に対応したオフセット値を加算して各種デバイス（例えばＲＡＭ３２やフラッシュメモリ４２）に出力する。
【００２２】
係る構成によって、アドレス変換部５２は、ＣＰＵ１０およびＣＰＵ１２から送信されたアドレス信号のうち、所望の領域に関するアドレス信号についてのみアドレス変換を行って、各種デバイスに出力することができる。
【００２３】
アクセス分配部５４は、領域選択信号生成部５４Ａと、クロスバースイッチ５４Ｂとを備える。ＣＰＵ１０およびＣＰＵ１２から送信されるアドレス信号は、複数のデバイスを１つのメモリ領域として扱うものであるため、アクセス分配部５４は、ＣＰＵ１０またはＣＰＵ１２と、入力されるアドレス信号に対応したいずれかのデバイスとを接続させるように、クロスバースイッチ５４Ｂを制御する。これによって、アクセス分配部５４は、アクセス元のＣＰＵと、特定のデバイスのみを接続させることができる。
【００２４】
図３は、情報処理装置１におけるメモリマップの一例である。メモリマップとは、ＣＰＵから見たアドレスと各デバイスのアドレスとの対応関係を示すものである。ＣＰＵから見たアドレス領域とは、アプリケーションプログラム等が認識する仮想アドレスが、ＭＭＵ（Memory  Management  Unit）等によって絶対アドレスに変換されたものである。
【００２５】
図３に示すように、ＣＰＵ１０およびＣＰＵ１２は、ＲＡＭ３２やフラッシュメモリ４２の他、ＰＣＩ（Peripheral  Component  Interconnect）、ＳＰＩ（Serial  Peripheral  Interface）、Ｉ２Ｃ（Inter-Integrated  Circuit）等のバスや通信インターフェース等に対してもアドレスを割り当てている。図３における変換後相対アドレスとは、各デバイスが把握する内部アドレスである。なお、メモリマップにおけるＲＡＭ（１）、ＲＡＭ（２）、ＲＡＭ（３）は、ＲＡＭ３２が複数の物理ＲＡＭの集合である場合の各物理ＲＡＭを指すものであってもよいし、１つの物理ＲＡＭにおいて便宜的な分割を行った場合の各領域を指すものであってもよい。
【００２６】
［電源投入時の動作］
図４は、情報処理装置１への通常の電源投入時におけるメモリマップを例示した図である。フラッシュメモリ４２には、ブートプログラム、ＣＰＵ１０起動プログラム、ＣＰＵ１２起動プログラム等が格納されており、ＣＰＵ１０は、まずブートプログラムを実行するように制御される。
【００２７】
ここで、「通常の電源投入時」とは、第３実施例で説明するような省電力モードからの復帰に係るＣＰＵ１０への電源投入を除外した概念である。第３実施例で説明するように、省電力モードでは、ＣＰＵ１０への電力供給は停止されるが、ＣＰＵ１２への電力供給は維持される。このため、本明細書では、情報処理装置１全体が電源オフされた状態から電源投入されたときを、通常の電源投入時と称し、省電力モードからの復帰と区別する。また、通常の電源投入時に行われる起動処理を、通常起動と称する。
【００２８】
図５は、通常の電源投入からしばらく時間が経過し、ブートプログラムが実行された後のメモリマップを例示した図である。ブートプログラムが実行されると、フラッシュメモリ４２に格納されたＣＰＵ１０起動プログラムとＣＰＵ１２起動プログラムがＲＡＭ３２にコピーされる。ＣＰＵ１０は、自らコピー処理を行ってもよいし、図示しないＤＭＡコントローラに命令を発行してコピー処理を行わせてもよい。
【００２９】
コピー処理が完了すると、アドレス変換部５２およびアクセス分配部５４は、オフセット値テーブル５２Ｃおよびクロスバースイッチ５４Ｂを制御することにより、ＣＰＵ１０のアクセス先をフラッシュメモリ４２からＲＡＭ（２）に切り替える。その後、ＣＰＵ１０は、フラッシュメモリ４２ではなくＲＡＭ３２に格納されたプログラムを実行する状態に切り替わる。これによって、ＣＰＵ１０は、そのままフラッシュメモリ４２からプログラムを実行するよりも、高速に起動を行うことができる。また、ＣＰＵ１０から見ると、そのままフラッシュメモリ４２からプログラムを実行しているのと同じ状態であり、これによって、起動プログラムにアクセス先を切り替える動作等を盛り込む必要が無くなる。
【００３０】
また、これらの動作に並行して（或いは前後して）、フラッシュメモリ４２に格納されたＣＰＵ１０再起動プログラムが、ＲＡＭ（３）にコピーされる。
【００３１】
図６は、通常起動時に、ＣＰＵ１０、アドレス変換部５２、アクセス分配部５４、およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。なお、図６に示すフローチャートにおいて、並行して示される処理の順序に特段の制限はなく、例えばＳ１４０の処理がＳ１０３の処理よりも、時間的には後に実行されても構わない。
【００３２】
まず、ＣＰＵ１０が、ＣＰＵ１０のハードウェアを初期化する（Ｓ１００）。具体的には、ＣＰＵ１０は、動作周波数やキャッシュ容量の初期設定を行い、ＣＰＵのプログラムカウンタやレジスタといったＣＰＵ１０内部の記憶素子を最初の状態にする。これによって、プログラムカウンタ値が、例えばゼロ番地を示すようにセットされる。
【００３３】
次に、ＣＰＵ１０が、フラッシュメモリ４２に格納されたブートプログラムを実行することにより、ＣＰＵ１０起動プログラムやＣＰＵ１２起動プログラムをＲＡＭ３２にコピーする（Ｓ１０１；図４、５を参照）。ブートプログラムの実行が完了すると、その旨を示す信号がアドレス変換部５２に送信される。
【００３４】
図７は、ＣＰＵ１０からフラッシュメモリ４２に読み出し命令が伝達され、フラッシュメモリ４２に格納された命令がＣＰＵ１０に返される様子を示す図である。図７において、ＣＰＵ１０がゼロ番地の読み出し命令を内部バス５０に発行すると（１）、内部バス５０は回路内部のアドレス変換テーブル５２によってアドレス変換を行い（２）、更にアクセス先を決定して（３）、ゼロ番地アドレスが指し示すアドレスに読み出し命令を出力する（４）。フラッシュメモリ４２の制御回路は、読み出し命令に係るアドレスに格納された命令を内部バス５０に返し（５）、内部バス５０は命令をＣＰＵ１０に伝達する（６）。こうして、ＣＰＵ１０は、ゼロ番地に対応するアドレスに格納された命令を実行する（７）。プログラムは連続したデータであるため、上記（１）〜（７）が繰り返し行われることで、ＣＰＵ１０は、フラッシュメモリ４２から命令を順次読み出して実行することができる。
【００３５】
次に、ＣＰＵ１０が、ＣＰＵ１２に開始アドレスを指定して起動指示を行う（Ｓ１０２）。開始アドレスは、例えばＣＰＵ１２起動プログラムがコピーされたＲＡＭ３２上のアドレス（図５におけるＲＡＭ（２）領域内のＣＰＵ１２起動プログラムが格納された領域の先頭アドレス）である。
【００３６】
次に、アドレス変換部５２およびアクセス分配部５４が、ＣＰＵ１０のプログラムの読み出し先をＲＡＭ３２のアドレス（図５におけるＲＡＭ（２）領域内のＣＰＵ１０起動プログラムが格納された領域の先頭アドレス）に変更する（Ｓ１２０）。
【００３７】
次に、ＣＰＵ１２が、ＣＰＵ１２のハードウェアを初期化する（Ｓ１４０）。
【００３８】
そして、ＣＰＵ１０が、ＲＡＭ３２に格納されたＣＰＵ１０起動プログラムを実行し（Ｓ１０３）、ＣＰＵ１２が、ＲＡＭ３２に格納されたＣＰＵ１２起動プログラムを実行する（Ｓ１４１）。各起動プログラムには、例えば基本的な入出力システムであるＢＩＯＳ（Basic  Input/Output  System）を起動する命令が含まれる。
【００３９】
次に、ＣＰＵ１０およびＣＰＵ１２が、周辺モジュールを初期化する（Ｓ１０４、Ｓ１４２）。周辺モジュールには、タイマやデバッガ等が含まれ、各ＣＰＵは、これらの内部状態を最初の状態にする。
【００４０】
次に、ＣＰＵ１０が、アドレス変換部５２に対して、起動済フラグを立てるように通知する（Ｓ１０５）。通知を受けたアドレス変換部５２では、再起動判定部５２Ｂが起動済フラグ記憶部５２Ａに所定のフラグを立てる（Ｓ１２１）。
【００４１】
次に、ＣＰＵ１０およびＣＰＵ１２が、それぞれＯＳを起動し（Ｓ１０６、Ｓ１４３）、通常起動が完了する。ＯＳは、例えば図４、５におけるＲＡＭ（１）に格納されている。
【００４２】
［再起動時の動作］
ところで、情報処理装置１は、通常の電源投入時の起動とは異なる特定の起動を行う場合がある。特定の起動には、再起動時、省電力モードからの復帰時等に行われる。省電力モードからの復帰については第３実施例で説明し、第１実施例では再起動についてのみ説明する。再起動は、例えばプログラムが応答しなくなったり、予期せぬ動作をした時に、ＣＰＵ１０の内部レジスタ等に記憶された内容をリセットし、プログラムを最初から実行しなおすものである。
【００４３】
図８は、通常起動が完了した状態におけるメモリマップを例示した図である。アドレス変換部５２およびアクセス分配部５４は、図６のＳ１２１の処理が行われた後、メモリマップを図８に例示したものに変更する。図８に示すように、通常起動が完了した状態において、ゼロ番地から始まるメモリ領域には、ブートプログラム、ＣＰＵ１０起動プログラム、およびＣＰＵ１２起動プログラムを含む通常起動時の起動プログラム（図４、５における（※））とは異なる内容のＣＰＵ１０再起動プログラムが格納されたＲＡＭ（３）が対応付けられている。
【００４４】
図８に示す状態でＣＰＵ１０の再起動が行われると、ＣＰＵ１０は、通常起動時と同様にゼロ番地を指定した読み出し命令を発行する。ＣＰＵ１０がゼロ番地を指定した読み出し命令を発行すると、アドレス変換部５２およびアクセス分配部５４が、ＲＡＭ（３）の開始アドレスを指定した読み出し命令に変換してＲＡＭ３２に伝達する。
【００４５】
この結果、ＣＰＵ１０は、再起動を行う際には、フラッシュメモリ４２に格納された通常起動時の起動プログラム（※）ではなく、ＲＡＭ（３）に格納されたＣＰＵ１０再起動プログラムを実行することになる。
【００４６】
ＣＰＵ１０再起動プログラムは、例えば、通常起動時の起動プログラム（※）からブートプログラムおよびＣＰＵ１２起動プログラム等が省略されたものである。このため、ＣＰＵ１０再起動プログラムは、通常起動時の起動プログラム（※）に比して命令数が少なく、高速に実行完了することができる。
【００４７】
図９は、再起動時にＣＰＵ１０により実行される処理の流れを示すフローチャートの一例である。
【００４８】
まず、ＣＰＵ１０は、ＲＡＭ（３）に格納されたＣＰＵ１０再起動プログラムを実行する（Ｓ２００）。
【００４９】
そして、ＣＰＵ１０は、ＣＰＵ１０上でＯＳを起動し（Ｓ２０１）、再起動を完了する。
【００５０】
［まとめ］
通常、ＣＰＵ１０のようなマスタープロセッサがハードウェアリセットを行う際には、通常、ゼロ番地等の固定アドレスから命令を実行するように、機械的に設定されているため、通常起動時とは異なる起動プログラムを実行することができない。
【００５１】
これに対し、第１実施例の情報処理装置１では、アドレス変換部５２やアクセス分配部５４が再起動時における読み出し命令の発行先を変更するため、ＣＰＵ１０が、通常の電源投入時に行われる通常起動時と再起動時とで異なる起動プログラムを実行することができる。この結果、情報処理装置１は、再起動時すなわち特定の起動場面における起動時間を短縮することができる。
【００５２】
しかも、情報処理装置１は、起動プログラムの切り替えを、アドレス変換部５２やアクセス分配部５４といったハードウェアで実現しているため、ソフトウェア処理によってこのような再起動を実現するものに比して、ソフトウェア改変の負担を小さくすることができる。
【００５３】
＜第２実施例＞
以下、第２実施例に係る情報処理装置２について説明する。［構成］については第１実施例と共通するため、説明を省略する。なお、第２実施例において、起動済フラグ記憶部５２Ａは必須の構成ではない。
【００５４】
［電源投入時の動作］
情報処理装置２は、電源投入時に、図４に示すメモリマップ状態→図５に示すメモリマップ状態に遷移した後、通常起動が完了すると、ゼロ番地から開始するメモリ領域を、割り込みベクタ・テーブルが格納された領域（ＲＡＭ（４））に対応付ける。図１０は、情報処理装置２における、通常起動後のメモリマップを例示した図である。
【００５５】
このようにメモリマップを配置することによって、割り込み通知がなされたときに、自動的にゼロ番地を参照するように構成することができるため、処理の効率化を図ることができる。
【００５６】
図１１は、通常起動時に、第２実施例に係るＣＰＵ１０、アドレス変換部５２、アクセス分配部５４、およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。なお、図１１に示すフローチャートにおいて、並行して示される処理の順序に特段の制限はなく、例えばＳ３４０の処理がＳ３０３の処理よりも、時間的には後に実行されても構わない。
【００５７】
まず、ＣＰＵ１０が、ＣＰＵ１０のハードウェアを初期化する（Ｓ３００）。具体的には、ＣＰＵ１０は、動作周波数やキャッシュ容量の初期設定を行い、ＣＰＵのプログラムカウンタやレジスタといったＣＰＵ１０内部の記憶素子を最初の状態にする。これによって、プログラムカウンタ値が、例えばゼロ番地を示すようにセットされる。
【００５８】
次に、ＣＰＵ１０が、フラッシュメモリ４２に格納されたブートプログラムを実行することにより、ＣＰＵ１０起動プログラムやＣＰＵ１２起動プログラムをＲＡＭ３２にコピーする（Ｓ３０１；図４、５を参照）。ブートプログラムの実行が完了すると、その旨を示す信号がアドレス変換部５２およびアクセス分配部５４に送信される。
【００５９】
次に、ＣＰＵ１０が、ＣＰＵ１２に開始アドレスを指定して起動指示を行う（Ｓ３０２）。開始アドレスは、例えばＣＰＵ１２起動プログラムがコピーされたＲＡＭ３２上のアドレス（図５におけるＲＡＭ（２）領域内のＣＰＵ１２起動プログラムが格納された領域の先頭アドレス）である。
【００６０】
次に、アドレス変換部５２およびアクセス分配部５４が、ＣＰＵ１０のプログラムの読み出し先をＲＡＭ３２のアドレス（図５におけるＲＡＭ（２）領域内のＣＰＵ１０起動プログラムが格納された領域の先頭アドレス）に変更する（Ｓ３２０）。
【００６１】
次に、ＣＰＵ１２が、ＣＰＵ１２のハードウェアを初期化する（Ｓ３４０）。
【００６２】
そして、ＣＰＵ１０が、ＲＡＭ３２に格納されたＣＰＵ１０起動プログラムを実行し（Ｓ３０３）、ＣＰＵ１２が、ＲＡＭ３２に格納されたＣＰＵ１２起動プログラムを実行する（Ｓ３４１）。各起動プログラムには、例えば基本的な入出力システムであるＢＩＯＳ（Basic  Input/Output  System）を起動する命令が含まれる。
【００６３】
次に、ＣＰＵ１０およびＣＰＵ１２が、周辺モジュールを初期化する（Ｓ３０４、Ｓ３４２）。周辺モジュールには、タイマやデバッガ等が含まれ、各ＣＰＵは、これらの内部状態を最初の状態にする。
【００６４】
次に、ＣＰＵ１０が、アドレス変換部５２に対して、割り込みベクタ・テーブルをゼロ番地に設定するように通知する（Ｓ３０５）。通知を受けたアドレス変換部５２では、割り込みベクタ・テーブルをゼロ番地に対応付ける（Ｓ３２１）。
【００６５】
次に、ＣＰＵ１０およびＣＰＵ１２が、それぞれＯＳを起動し（Ｓ３０６、Ｓ３４３）、通常起動が完了する。ＯＳは、例えば図４、５におけるＲＡＭ（１）に格納されている。
【００６６】
［再起動時の動作］
情報処理装置２では、ＣＰＵ１０に再起動要因が発生したか否かをＣＰＵ１２が監視している。ＣＰＵ１０の再起動要因は、ＣＰＵ１０からＣＰＵ１２に再起動要因発生通知がなされることでＣＰＵ１２によって検知されてもよいし、ＣＰＵ１２がＣＰＵ１０の諸々の状態を監視することで検知されてもよい。
【００６７】
ＣＰＵ１２は、ＣＰＵ１０に再起動要因が発生したときに、その旨をアドレス変換部５２の再起動判定部５２Ｂに通知する。通知を受けたアドレス変換部５２の再起動判定部５２Ｂは、ＣＰＵ１０再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル５２Ｃを書き換える。図１２は、情報処理装置２における、ＣＰＵ１０に再起動要因が発生したことが通知された後のメモリマップを例示した図である。
【００６８】
図１３は、再起動時に、第２実施例に係るＣＰＵ１０、アドレス変換部５２、およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。図１３に示すフローチャートは、ＣＰＵ１２が、ＣＰＵ１０に再起動要因が発生したことを何らかの手段により検知したタイミングで開始される。
【００６９】
まず、ＣＰＵ１２は、ＣＰＵ１０に再起動要因が発生したことをアドレス変換部５２に通知する（Ｓ４００）。
【００７０】
通知を受けたアドレス変換部５２は、ＣＰＵ１０再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル５２Ｃを書き換える（Ｓ４１０）。
【００７１】
次に、ＣＰＵ１０は、ＲＡＭ（３）に格納されたＣＰＵ１０再起動プログラムを実行する（Ｓ４２０）。なお、Ｓ４２０の処理がＳ４１０の処理の完了後に行われることを保証するために、例えば一定の待機時間を設けてもよい。
【００７２】
そして、ＣＰＵ１０は、ＣＰＵ１０上でＯＳを起動し（Ｓ４２１）、再起動を完了する。
【００７３】
［まとめ］
第２実施例の情報処理装置２は、第１実施例の情報処理装置１と同様、アドレス変換部５２が再起動時における読み出し命令の発行先を変更するため、ＣＰＵ１０が、通常の電源投入時に行われる通常起動時と再起動時とで異なる起動プログラムを実行することができる。この結果、情報処理装置２は、再起動時すなわち特定の起動場面における起動時間を短縮することができる。
【００７４】
また、情報処理装置２は、起動プログラムの切り替えを、アドレス変換部５２やアクセス分配部５４といったハードウェアで実現しているため、ソフトウェア処理によってこのような再起動を実現するものに比して、ソフトウェア改変の負担を小さくすることができる。
【００７５】
更に、情報処理装置２は、通常起動から再起動までの間、ゼロ番地から開始する領域を割り込みベクタに対応付けているため、割り込み通知がなされたときの割り込み処理を効率的に行うことができる。
【００７６】
＜第３実施例＞
以下、第３実施例に係る情報処理装置３について説明する。
【００７７】
図１４は、情報処理装置３のハードウェア構成例である。図１４における破線は、ＰＳＵ等の電源６０からの電力供給経路を示している。第３実施例に係る情報処理装置３は、例えばＣＰＵ１２の内部にスイッチ１２Ａを備え、ＣＰＵ１０および周辺モジュール１２への電力供給を遮断した省電力モードを実行可能となっている。図１５は、省電力モード中に電力供給が遮断される機器を斜線で例示した図である。図１５はあくまで一例であり、例えば省電力モードにおいて、フラッシュメモリ４２への電力供給も停止されてよい。省電力モードにおいて、ＣＰＵ１０は、例えば、制御状態等をＲＡＭ３２に保存した状態で電力供給が停止される。一方、アドレス変換部５２やアクセス分配部５４には電力供給が維持される。
【００７８】
省電力モードの態様は、上記に限らず、例えばＣＰＵ１０への電力供給を維持しつつ、クロック信号の供給のみ停止する等、種々の態様を採用することができる。
【００７９】
省電力モードは、例えば、ユーザによって特定のスイッチが操作されたとき、或いは入力操作部に対して何ら操作がなされず且つ他のコンピュータから動作要求が無い状態が所定時間継続したとき等に開始される。このような条件が満たされたかどうかは、例えばＣＰＵ１０によって監視されている。省電力モードに移行するときには、ＣＰＵ１０からＣＰＵ１２に通知がなされる。一方、省電力モードからの復帰は、例えば、ユーザによって上記特定のスイッチが再度操作されたとき、予め定められた復帰予定時刻が到来したとき、或いは他のコンピュータから動作要求があったとき等に行われる。
【００８０】
そして、第３実施例に係るＣＰＵ１０は、情報処理装置３が省電力モードから復帰する際に、ＣＰＵ１０再起動プログラムを実行する。この際に、アドレス変換部５２やアクセス分配部５４への電力供給が維持されているため、例えば図８又は図１２で例示したメモリマップが省電力モード中も維持されることになる。この結果、情報処理装置３が省電力モードから復帰する際に、ＣＰＵ１０が速やかにＣＰＵ１０再起動プログラムを実行することができる。この結果、ＣＰＵ１０が再起動を行う際の起動時間だけでなく、省電力モードから復帰する際の再起動に係る起動時間をも短縮することができる。
【００８１】
（１）第３実施例において、割り込みベクタ・テーブルをゼロ番地に設定しない場合、第１実施例のように、通常起動の完了後に、ＣＰＵ１０再起動プログラムをゼロ番地に対応付ければよい（図６参照）。図１６は、第３実施例に係るＣＰＵ１０およびＣＰＵ１２により実行される処理の流れを示すフローチャートの一例である。図１６に示すフローチャートは、省電力モードに移行したタイミングで開始される。
【００８２】
まず、ＣＰＵ１２が、省電力モードからの復帰要因が発生するまで待機する（Ｓ５００）。
【００８３】
省電力モードからの復帰要因が発生すると、ＣＰＵ１２は、ＣＰＵ１０への電力供給を再開し（Ｓ５０１）、ＣＰＵ１０に対して割り込み通知等により復帰指示を行う（Ｓ５０２）。
【００８４】
ＣＰＵ１０は、ＲＡＭ（３）に格納されたＣＰＵ１０再起動プログラムを実行する（Ｓ５１０）。ここで、メモリマップは、省電力モードの間、例えば図８に例示したものに維持されているため、ＣＰＵ１０は速やかにＣＰＵ１０再起動プログラムを実行することができる。
【００８５】
そして、ＣＰＵ１０は、ＣＰＵ１０上でＯＳを起動し（Ｓ５１１）、省電力モードからの復帰を完了する。
【００８６】
（２）第３実施例において、割り込みベクタ・テーブルをゼロ番地に設定する場合、省電力モードに移行したときに、その旨をアドレス変換部５２の再起動判定部５２Ｂに通知すればよい。通知を受けたアドレス変換部５２の再起動判定部５２Ｂは、ＣＰＵ１０再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル５２Ｃを書き換える。
【００８７】
図１７は、第３実施例に係るＣＰＵ１０およびＣＰＵ１２により実行される処理の流れを示すフローチャートの他の例である。図１７に示すフローチャートは、省電力モードに移行したタイミングで開始される。
【００８８】
まず、ＣＰＵ１２が、ＣＰＵ１０再起動プログラムをゼロ番地に対応付けるようにアドレス変換部５２に通知する（Ｓ６００）。
【００８９】
通知を受けたアドレス変換部５２は、ＣＰＵ１０再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル５２Ｃを書き換える（Ｓ６１０）。この結果、メモリマップは、例えば図１０に例示した状態から図１２に例示した状態に変更される。
【００９０】
次に、ＣＰＵ１２が、省電力モードからの復帰要因が発生するまで待機する（Ｓ６０１）。
【００９１】
省電力モードからの復帰要因が発生すると、ＣＰＵ１２は、ＣＰＵ１０への電力供給を再開し（Ｓ６０２）、ＣＰＵ１０に対して割り込み通知等により復帰指示を行う（Ｓ６０３）。
【００９２】
ＣＰＵ１０は、ＲＡＭ（３）に格納されたＣＰＵ１０再起動プログラムを実行する（Ｓ６２０）。ここで、メモリマップは、例えば図１２に例示したものに維持されているため、ＣＰＵ１０は速やかにＣＰＵ１０再起動プログラムを実行することができる。
【００９３】
そして、ＣＰＵ１０は、ＣＰＵ１０上でＯＳを起動し（Ｓ６２１）、省電力モードからの復帰を完了する。
【００９４】
［まとめ］
第３実施例の情報処理装置３は、アドレス変換部５２が省電力モードからの復帰時における読み出し命令の発行先を変更するため、ＣＰＵ１０が、通常の電源投入時に行われる通常起動時と省電力モードからの復帰時で異なる起動プログラムを実行することができる。この結果、情報処理装置３は、省電力モードからの復帰時すなわち特定の起動場面における起動時間を短縮することができる。
【００９５】
また、情報処理装置３は、起動プログラムの切り替えを、アドレス変換部５２やアクセス分配部５４といったハードウェアで実現しているため、ソフトウェア処理によってこのような再起動を実現するものに比して、ソフトウェア改変の負担を小さくすることができる。
【００９６】
更に、情報処理装置３は、省電力モードからの復帰時に加えて、再起動時にもＣＰＵ１０再起動プログラムを実行するものとしてよく、この場合、情報処理装置３は、省電力モードからの復帰時および再起動時における起動時間を短縮することができる。
【００９７】
なお、上記各実施例におけるＣＰＵ１０が特許請求の範囲における「プロセッサ」の一例であり、ＣＰＵ１２が「第２のプロセッサ」の一例である。
【００９８】
上記各実施例の情報処理装置は、これを搭載する種々の機器に適用することができる。例えば、ＭＦＰ（Multifunction  Peripheral）等のプリンタやプロジェクタ、テレビ会議システム、移動体に搭載される制御システム、工作機械システム、パーソナルコンピュータ等に適用することができる。
【００９９】
＜変形等＞
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１００】
例えば、上記各実施例では、内部バス５０が（例えば所定の中継箇所に）アドレス変換部５２やアクセス分配部５４を備えるものとしたが、これに代えて、ＣＰＵ１０と内部バスの接続箇所（ＣＰＵ１０の内部でも構わない）に、アドレス変換部５２が取り付けられるものとしてもよい。図１８は、情報処理装置の他の構成例であり、ＣＰＵ１０と内部バスの接続箇所（ＣＰＵ１０の内部でも構わない）に、アドレス変換部５２やアクセス分配部５４が取り付けられた様子を示す図である。
【０１０１】
また、上記各実施例は、ＣＰＵすなわちプロセッサを複数備える情報処理装置として説明したが、シングルプロセッサの情報処理装置に適用することもできる。この場合、通常起動時の起動プログラムはＣＰＵ１２等のスレーブプロセッサの起動プログラムを含まず、ＣＰＵ１０再起動プログラムは、通常起動時の起動プログラムからブートプログラムや周辺モジュールの初期化に係る命令等を省略したものとなる。
【符号の説明】
【０１０２】
１、２、３  情報処理装置
１０、１２  ＣＰＵ
２０        周辺モジュール
３０        ＲＡＭコントローラ
３２        ＲＡＭ
４０        ＮＡＮＤコントローラ
４２        フラッシュメモリ
５０        内部バス
５２        アドレス変換部
５２Ａ      起動済フラグ記憶部
５２Ｂ      再起動判定部
５２Ｃ      オフセット値テーブル
５２Ｄ      加算器
５４        アクセス分配部
５４Ａ      領域選択信号生成部
５４Ｂ      クロスバースイッチ
【先行技術文献】
【特許文献】
【０１０３】
【特許文献１】特開２０１０−１４６１４２号公報
【図１】
2014056453.tif 000003
【図２】
2014056453.tif 000004
【図３】
2014056453.tif 000005
【図４】
2014056453.tif 000006
【図５】
2014056453.tif 000007
【図６】
2014056453.tif 000008
【図７】
2014056453.tif 000009
【図８】
2014056453.tif 000010
【図９】
2014056453.tif 000011
【図１０】
2014056453.tif 000012
【図１１】
2014056453.tif 000013
【図１２】
2014056453.tif 000014
【図１３】
2014056453.tif 000015
【図１４】
2014056453.tif 000016
【図１５】
2014056453.tif 000017
【図１６】
2014056453.tif 000018
【図１７】
2014056453.tif 000019
【図１８】
2014056453.tif 000020