JP6048020B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6048020B2
JP6048020B2 JP2012201142A JP2012201142A JP6048020B2 JP 6048020 B2 JP6048020 B2 JP 6048020B2 JP 2012201142 A JP2012201142 A JP 2012201142A JP 2012201142 A JP2012201142 A JP 2012201142A JP 6048020 B2 JP6048020 B2 JP 6048020B2
Authority
JP
Japan
Prior art keywords
cpu
address
information processing
processor
program
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.)
Active
Application number
JP2012201142A
Other languages
English (en)
Other versions
JP2014056453A (ja
Inventor
多聞 貞末
多聞 貞末
哲史 森
哲史 森
大橋 直弥
直弥 大橋
賢 青木
賢 青木
直也 守田
直也 守田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012201142A priority Critical patent/JP6048020B2/ja
Priority to US13/973,046 priority patent/US9268577B2/en
Publication of JP2014056453A publication Critical patent/JP2014056453A/ja
Application granted granted Critical
Publication of JP6048020B2 publication Critical patent/JP6048020B2/ja
Active 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/4401Bootstrapping
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses

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)

Description

本発明は、情報処理装置に関する。
従来、情報処理装置の起動処理に関して、種々の工夫がなされている。例えば、特許文献1には、第1及び第2のプロセッサを備え、第2のプロセッサが、第1のプロセッサが第1のメモリからプログラムに関する命令群を読み出して実行可能となるための準備処理を実行し、第1のプロセッサが、第2のプロセッサによる準備処理の実行と時間的に並行して第1のメモリとは異なる第2のメモリからプログラムに関する命令群を読み出して実行し、準備処理の完了に応じて命令群の取得先を第2のメモリから第1のメモリに切り替えてプログラムを継続的に実行する情報処理装置について記載されている。
しかしながら、上記特許文献1に記載の情報処理装置では、ハードウェア的なプロセッサの起動処理が一種類しか記載されておらず、情報処理装置への電源投入時に行われる通常起動とは異なる起動(例えば電源を維持した状態での再起動など)をハードウェア的に行う際にも、周辺モジュールの初期化や起動プログラムのべリファイ処理等を含めた一連の起動処理を全て行う必要が生じ得る。このため、通常起動とは異なる起動を行う際の起動時間が長くなる場合がある。
一つの側面では、特定の起動場面における起動時間を短縮することを目的とする。
上記目的を達成するための情報処理装置の一態様は、起動時に、記憶部における固定アドレス領域に格納された命令を実行する第1のプロセッサと、第1の起動プログラムと、前記第1の起動プログラムとは少なくとも一部の内容が異なる第2の起動プログラムとを格納した前記記憶部と、前記第1のプロセッサが、当該情報処理装置への電源投入時に行われる通常起動とは異なる特定起動をする際に、前記第1のプロセッサが発行した読み出し命令に含まれる前記第1の起動プログラムの格納領域を指し示すアドレスを、前記第2の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達するアドレス変換部と、起動時に、前記記憶部における前記第1のプロセッサにより指定されたアドレス領域に格納された命令を実行する第2のプロセッサと、を備え、前記第1の起動プログラムは、前記第2のプロセッサの起動制御に係る命令を含み、前記第2の起動プログラムは、前記第2のプロセッサの起動制御に係る命令を含まない。
一実施態様によれば、特定の起動場面における起動時間を短縮することができる。
第1実施例に係る情報処理装置1のハードウェア構成例である。 アドレス変換部52およびアクセス分配部54の構成例である。 情報処理装置1におけるメモリマップの一例である。 情報処理装置1への通常の電源投入時におけるメモリマップを例示した図である。 通常の電源投入からしばらく時間が経過し、ブートプログラムが実行された後のメモリマップを例示した図である。 通常起動時に、CPU10、アドレス変換部52、アクセス分配部54、およびCPU12により実行される処理の流れを示すフローチャートの一例である。 CPU10からフラッシュメモリ42に読み出し命令が伝達され、フラッシュメモリ42に格納された命令がCPU10に返される様子を示す図である。 通常起動が完了した状態におけるメモリマップを例示した図である。 再起動時にCPU10により実行される処理の流れを示すフローチャートの一例である。 情報処理装置2における、通常起動後のメモリマップを例示した図である。 通常起動時に、第2実施例に係るCPU10、アドレス変換部52、アクセス分配部54、およびCPU12により実行される処理の流れを示すフローチャートの一例である。 情報処理装置2における、CPU10に再起動要因が発生したことが通知された後のメモリマップを例示した図である。 再起動時に、第2実施例に係るCPU10、アドレス変換部52、およびCPU12により実行される処理の流れを示すフローチャートの一例である。 情報処理装置3のハードウェア構成例である。 省電力モード中に電力供給が遮断される機器を斜線で例示した図である。 第3実施例に係るCPU10およびCPU12により実行される処理の流れを示すフローチャートの一例である。 第3実施例に係るCPU10およびCPU12により実行される処理の流れを示すフローチャートの他の例である。 情報処理装置の他の構成例である。
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
以下、図面を参照し、情報処理装置の実施例について説明する。なお、以下の説明における「ゼロ番地」は、特許請求の範囲における「固定アドレス領域」の開始番地の一例であり、ゼロ番地では無い固定アドレスから開始するプロセッサに適用する場合には、「ゼロ番地」を「固定アドレス」と読み替えればよい。
<第1実施例>
[構成]
図1は、第1実施例に係る情報処理装置1のハードウェア構成例である。情報処理装置1は、例えば、CPU(Central Processing Unit)10および12と、周辺モジュール20と、RAM(Random Access Memory)コントローラ30およびRAM32と、NANDコントローラ40およびフラッシュメモリ42とを備える。これらの構成要素は、内部バス50によって接続されている。内部バス50は、アドレス変換部52およびアクセス分配部54を備える。また、CPU10および12、周辺モジュール20、RAMコントローラ30、NANDコントローラ40、および内部バス50は、例えば1つのチップ上に搭載されたSOC(System On Chip)として構成される。
CPU10および12は、例えば、制御部、命令フェッチユニット、命令デコーダ、命令発行部、各種演算器、LSU(Load Store Unit)、レジスタファイル等を有するプロセッサである。CPU10およびCPU12は、例えば、それぞれがOS(オペレーティングシステム)を搭載し、情報処理装置1はマルチOSの情報処理装置として機能する。
CPU10は、起動時に、フラッシュメモリ42における固定アドレス領域(例えば0番地から始まる領域)に格納された命令を実行するように制御される。一方、CPU12は、起動時に、RAM32又はフラッシュメモリ42におけるCPU10により指定された領域に格納された命令を実行するように制御される。すなわち、CPU10はCPU12に対してマスタープロセッサとして動作し、CPU12はCPU10に対してスレーブプロセッサとして動作する。
周辺モジュール20は、例えば、RAM32やフラッシュメモリ42以外の外部機器やイーサネット(登録商標)等のネットワークとの通信を行う通信インターフェース、表示装置の表示画像を生成する画像処理部、スピーカが出力する音声を生成する音声処理部等を含む。
RAM32は、フラッシュメモリ42に格納されたプログラムが展開(ロード)されたり、CPU10および12による演算結果が格納されたりする主記憶装置である。
フラッシュメモリ42は、CPU10および12が実行するプログラムを格納したプログラムメモリであり、情報処理装置1の電源がオフにされたときに保持すべきデータが格納される不揮発性メモリである。なお、フラッシュメモリ42に代えて、HDD(Hard Disk Drive)、マスクROM(Read Only Memory)等の他の種類の不揮発性メモリが用いられてもよい。
図2は、アドレス変換部52およびアクセス分配部54の構成例である。
アドレス変換部52は、起動済フラグ記憶部52Aと、再起動判定部52Bと、オフセット値テーブル52Cと、加算器52Dとを備える。
起動済フラグ記憶部52Aは、例えばレジスタであり、情報処理装置1が通常の起動をしたときに、再起動判定部52Bによって所定のフラグ(例えば値1を示すデータ)が書き込まれる。
再起動判定部52Bは、例えば論理回路であり、起動済フラグ記憶部52Aに所定のフラグを書き込んだり、オフセット値テーブル52Cの内容を書き換えたりする。再起動判定部52Bは、起動済フラグ記憶部52Aに所定のフラグが書き込まれている場合と、書き込まれていない場合とで異なる値がオフセット値テーブル52Cに格納されるように、オフセット値テーブル52Cを制御する。
オフセット値テーブル52Cは、RAM32やフラッシュメモリ42を含むメモリ領域の例えば全てについて、CPU10およびCPU12から送信されたアドレス信号のアドレス値をオフセットさせる量が格納されている。オフセット値テーブル52Cは、メモリ領域のうちオフセットさせない領域に関しては、値ゼロを格納している。
加算器52Dは、CPU10およびCPU12から送信されたアドレス信号に、オフセット値テーブル52Cに格納され、当該アドレス値に対応したオフセット値を加算して各種デバイス(例えばRAM32やフラッシュメモリ42)に出力する。
係る構成によって、アドレス変換部52は、CPU10およびCPU12から送信されたアドレス信号のうち、所望の領域に関するアドレス信号についてのみアドレス変換を行って、各種デバイスに出力することができる。
アクセス分配部54は、領域選択信号生成部54Aと、クロスバースイッチ54Bとを備える。CPU10およびCPU12から送信されるアドレス信号は、複数のデバイスを1つのメモリ領域として扱うものであるため、アクセス分配部54は、CPU10またはCPU12と、入力されるアドレス信号に対応したいずれかのデバイスとを接続させるように、クロスバースイッチ54Bを制御する。これによって、アクセス分配部54は、アクセス元のCPUと、特定のデバイスのみを接続させることができる。
図3は、情報処理装置1におけるメモリマップの一例である。メモリマップとは、CPUから見たアドレスと各デバイスのアドレスとの対応関係を示すものである。CPUから見たアドレス領域とは、アプリケーションプログラム等が認識する仮想アドレスが、MMU(Memory Management Unit)等によって絶対アドレスに変換されたものである。
図3に示すように、CPU10およびCPU12は、RAM32やフラッシュメモリ42の他、PCI(Peripheral Component Interconnect)、SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)等のバスや通信インターフェース等に対してもアドレスを割り当てている。図3における変換後相対アドレスとは、各デバイスが把握する内部アドレスである。なお、メモリマップにおけるRAM(1)、RAM(2)、RAM(3)は、RAM32が複数の物理RAMの集合である場合の各物理RAMを指すものであってもよいし、1つの物理RAMにおいて便宜的な分割を行った場合の各領域を指すものであってもよい。
[電源投入時の動作]
図4は、情報処理装置1への通常の電源投入時におけるメモリマップを例示した図である。フラッシュメモリ42には、ブートプログラム、CPU10起動プログラム、CPU12起動プログラム等が格納されており、CPU10は、まずブートプログラムを実行するように制御される。
ここで、「通常の電源投入時」とは、第3実施例で説明するような省電力モードからの復帰に係るCPU10への電源投入を除外した概念である。第3実施例で説明するように、省電力モードでは、CPU10への電力供給は停止されるが、CPU12への電力供給は維持される。このため、本明細書では、情報処理装置1全体が電源オフされた状態から電源投入されたときを、通常の電源投入時と称し、省電力モードからの復帰と区別する。また、通常の電源投入時に行われる起動処理を、通常起動と称する。
図5は、通常の電源投入からしばらく時間が経過し、ブートプログラムが実行された後のメモリマップを例示した図である。ブートプログラムが実行されると、フラッシュメモリ42に格納されたCPU10起動プログラムとCPU12起動プログラムがRAM32にコピーされる。CPU10は、自らコピー処理を行ってもよいし、図示しないDMAコントローラに命令を発行してコピー処理を行わせてもよい。
コピー処理が完了すると、アドレス変換部52およびアクセス分配部54は、オフセット値テーブル52Cおよびクロスバースイッチ54Bを制御することにより、CPU10のアクセス先をフラッシュメモリ42からRAM(2)に切り替える。その後、CPU10は、フラッシュメモリ42ではなくRAM32に格納されたプログラムを実行する状態に切り替わる。これによって、CPU10は、そのままフラッシュメモリ42からプログラムを実行するよりも、高速に起動を行うことができる。また、CPU10から見ると、そのままフラッシュメモリ42からプログラムを実行しているのと同じ状態であり、これによって、起動プログラムにアクセス先を切り替える動作等を盛り込む必要が無くなる。
また、これらの動作に並行して(或いは前後して)、フラッシュメモリ42に格納されたCPU10再起動プログラムが、RAM(3)にコピーされる。
図6は、通常起動時に、CPU10、アドレス変換部52、アクセス分配部54、およびCPU12により実行される処理の流れを示すフローチャートの一例である。なお、図6に示すフローチャートにおいて、並行して示される処理の順序に特段の制限はなく、例えばS140の処理がS103の処理よりも、時間的には後に実行されても構わない。
まず、CPU10が、CPU10のハードウェアを初期化する(S100)。具体的には、CPU10は、動作周波数やキャッシュ容量の初期設定を行い、CPUのプログラムカウンタやレジスタといったCPU10内部の記憶素子を最初の状態にする。これによって、プログラムカウンタ値が、例えばゼロ番地を示すようにセットされる。
次に、CPU10が、フラッシュメモリ42に格納されたブートプログラムを実行することにより、CPU10起動プログラムやCPU12起動プログラムをRAM32にコピーする(S101;図4、5を参照)。ブートプログラムの実行が完了すると、その旨を示す信号がアドレス変換部52に送信される。
図7は、CPU10からフラッシュメモリ42に読み出し命令が伝達され、フラッシュメモリ42に格納された命令がCPU10に返される様子を示す図である。図7において、CPU10がゼロ番地の読み出し命令を内部バス50に発行すると(1)、内部バス50は回路内部のアドレス変換テーブル52によってアドレス変換を行い(2)、更にアクセス先を決定して(3)、ゼロ番地アドレスが指し示すアドレスに読み出し命令を出力する(4)。フラッシュメモリ42の制御回路は、読み出し命令に係るアドレスに格納された命令を内部バス50に返し(5)、内部バス50は命令をCPU10に伝達する(6)。こうして、CPU10は、ゼロ番地に対応するアドレスに格納された命令を実行する(7)。プログラムは連続したデータであるため、上記(1)〜(7)が繰り返し行われることで、CPU10は、フラッシュメモリ42から命令を順次読み出して実行することができる。
次に、CPU10が、CPU12に開始アドレスを指定して起動指示を行う(S102)。開始アドレスは、例えばCPU12起動プログラムがコピーされたRAM32上のアドレス(図5におけるRAM(2)領域内のCPU12起動プログラムが格納された領域の先頭アドレス)である。
次に、アドレス変換部52およびアクセス分配部54が、CPU10のプログラムの読み出し先をRAM32のアドレス(図5におけるRAM(2)領域内のCPU10起動プログラムが格納された領域の先頭アドレス)に変更する(S120)。
次に、CPU12が、CPU12のハードウェアを初期化する(S140)。
そして、CPU10が、RAM32に格納されたCPU10起動プログラムを実行し(S103)、CPU12が、RAM32に格納されたCPU12起動プログラムを実行する(S141)。各起動プログラムには、例えば基本的な入出力システムであるBIOS(Basic Input/Output System)を起動する命令が含まれる。
次に、CPU10およびCPU12が、周辺モジュールを初期化する(S104、S142)。周辺モジュールには、タイマやデバッガ等が含まれ、各CPUは、これらの内部状態を最初の状態にする。
次に、CPU10が、アドレス変換部52に対して、起動済フラグを立てるように通知する(S105)。通知を受けたアドレス変換部52では、再起動判定部52Bが起動済フラグ記憶部52Aに所定のフラグを立てる(S121)。
次に、CPU10およびCPU12が、それぞれOSを起動し(S106、S143)、通常起動が完了する。OSは、例えば図4、5におけるRAM(1)に格納されている。
[再起動時の動作]
ところで、情報処理装置1は、通常の電源投入時の起動とは異なる特定の起動を行う場合がある。特定の起動には、再起動時、省電力モードからの復帰時等に行われる。省電力モードからの復帰については第3実施例で説明し、第1実施例では再起動についてのみ説明する。再起動は、例えばプログラムが応答しなくなったり、予期せぬ動作をした時に、CPU10の内部レジスタ等に記憶された内容をリセットし、プログラムを最初から実行しなおすものである。
図8は、通常起動が完了した状態におけるメモリマップを例示した図である。アドレス変換部52およびアクセス分配部54は、図6のS121の処理が行われた後、メモリマップを図8に例示したものに変更する。図8に示すように、通常起動が完了した状態において、ゼロ番地から始まるメモリ領域には、ブートプログラム、CPU10起動プログラム、およびCPU12起動プログラムを含む通常起動時の起動プログラム(図4、5における(※))とは異なる内容のCPU10再起動プログラムが格納されたRAM(3)が対応付けられている。
図8に示す状態でCPU10の再起動が行われると、CPU10は、通常起動時と同様にゼロ番地を指定した読み出し命令を発行する。CPU10がゼロ番地を指定した読み出し命令を発行すると、アドレス変換部52およびアクセス分配部54が、RAM(3)の開始アドレスを指定した読み出し命令に変換してRAM32に伝達する。
この結果、CPU10は、再起動を行う際には、フラッシュメモリ42に格納された通常起動時の起動プログラム(※)ではなく、RAM(3)に格納されたCPU10再起動プログラムを実行することになる。
CPU10再起動プログラムは、例えば、通常起動時の起動プログラム(※)からブートプログラムおよびCPU12起動プログラム等が省略されたものである。このため、CPU10再起動プログラムは、通常起動時の起動プログラム(※)に比して命令数が少なく、高速に実行完了することができる。
図9は、再起動時にCPU10により実行される処理の流れを示すフローチャートの一例である。
まず、CPU10は、RAM(3)に格納されたCPU10再起動プログラムを実行する(S200)。
そして、CPU10は、CPU10上でOSを起動し(S201)、再起動を完了する。
[まとめ]
通常、CPU10のようなマスタープロセッサがハードウェアリセットを行う際には、通常、ゼロ番地等の固定アドレスから命令を実行するように、機械的に設定されているため、通常起動時とは異なる起動プログラムを実行することができない。
これに対し、第1実施例の情報処理装置1では、アドレス変換部52やアクセス分配部54が再起動時における読み出し命令の発行先を変更するため、CPU10が、通常の電源投入時に行われる通常起動時と再起動時とで異なる起動プログラムを実行することができる。この結果、情報処理装置1は、再起動時すなわち特定の起動場面における起動時間を短縮することができる。
しかも、情報処理装置1は、起動プログラムの切り替えを、アドレス変換部52やアクセス分配部54といったハードウェアで実現しているため、ソフトウェア処理によってこのような再起動を実現するものに比して、ソフトウェア改変の負担を小さくすることができる。
<第2実施例>
以下、第2実施例に係る情報処理装置2について説明する。[構成]については第1実施例と共通するため、説明を省略する。なお、第2実施例において、起動済フラグ記憶部52Aは必須の構成ではない。
[電源投入時の動作]
情報処理装置2は、電源投入時に、図4に示すメモリマップ状態→図5に示すメモリマップ状態に遷移した後、通常起動が完了すると、ゼロ番地から開始するメモリ領域を、割り込みベクタ・テーブルが格納された領域(RAM(4))に対応付ける。図10は、情報処理装置2における、通常起動後のメモリマップを例示した図である。
このようにメモリマップを配置することによって、割り込み通知がなされたときに、自動的にゼロ番地を参照するように構成することができるため、処理の効率化を図ることができる。
図11は、通常起動時に、第2実施例に係るCPU10、アドレス変換部52、アクセス分配部54、およびCPU12により実行される処理の流れを示すフローチャートの一例である。なお、図11に示すフローチャートにおいて、並行して示される処理の順序に特段の制限はなく、例えばS340の処理がS303の処理よりも、時間的には後に実行されても構わない。
まず、CPU10が、CPU10のハードウェアを初期化する(S300)。具体的には、CPU10は、動作周波数やキャッシュ容量の初期設定を行い、CPUのプログラムカウンタやレジスタといったCPU10内部の記憶素子を最初の状態にする。これによって、プログラムカウンタ値が、例えばゼロ番地を示すようにセットされる。
次に、CPU10が、フラッシュメモリ42に格納されたブートプログラムを実行することにより、CPU10起動プログラムやCPU12起動プログラムをRAM32にコピーする(S301;図4、5を参照)。ブートプログラムの実行が完了すると、その旨を示す信号がアドレス変換部52およびアクセス分配部54に送信される。
次に、CPU10が、CPU12に開始アドレスを指定して起動指示を行う(S302)。開始アドレスは、例えばCPU12起動プログラムがコピーされたRAM32上のアドレス(図5におけるRAM(2)領域内のCPU12起動プログラムが格納された領域の先頭アドレス)である。
次に、アドレス変換部52およびアクセス分配部54が、CPU10のプログラムの読み出し先をRAM32のアドレス(図5におけるRAM(2)領域内のCPU10起動プログラムが格納された領域の先頭アドレス)に変更する(S320)。
次に、CPU12が、CPU12のハードウェアを初期化する(S340)。
そして、CPU10が、RAM32に格納されたCPU10起動プログラムを実行し(S303)、CPU12が、RAM32に格納されたCPU12起動プログラムを実行する(S341)。各起動プログラムには、例えば基本的な入出力システムであるBIOS(Basic Input/Output System)を起動する命令が含まれる。
次に、CPU10およびCPU12が、周辺モジュールを初期化する(S304、S342)。周辺モジュールには、タイマやデバッガ等が含まれ、各CPUは、これらの内部状態を最初の状態にする。
次に、CPU10が、アドレス変換部52に対して、割り込みベクタ・テーブルをゼロ番地に設定するように通知する(S305)。通知を受けたアドレス変換部52では、割り込みベクタ・テーブルをゼロ番地に対応付ける(S321)。
次に、CPU10およびCPU12が、それぞれOSを起動し(S306、S343)、通常起動が完了する。OSは、例えば図4、5におけるRAM(1)に格納されている。
[再起動時の動作]
情報処理装置2では、CPU10に再起動要因が発生したか否かをCPU12が監視している。CPU10の再起動要因は、CPU10からCPU12に再起動要因発生通知がなされることでCPU12によって検知されてもよいし、CPU12がCPU10の諸々の状態を監視することで検知されてもよい。
CPU12は、CPU10に再起動要因が発生したときに、その旨をアドレス変換部52の再起動判定部52Bに通知する。通知を受けたアドレス変換部52の再起動判定部52Bは、CPU10再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル52Cを書き換える。図12は、情報処理装置2における、CPU10に再起動要因が発生したことが通知された後のメモリマップを例示した図である。
図13は、再起動時に、第2実施例に係るCPU10、アドレス変換部52、およびCPU12により実行される処理の流れを示すフローチャートの一例である。図13に示すフローチャートは、CPU12が、CPU10に再起動要因が発生したことを何らかの手段により検知したタイミングで開始される。
まず、CPU12は、CPU10に再起動要因が発生したことをアドレス変換部52に通知する(S400)。
通知を受けたアドレス変換部52は、CPU10再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル52Cを書き換える(S410)。
次に、CPU10は、RAM(3)に格納されたCPU10再起動プログラムを実行する(S420)。なお、S420の処理がS410の処理の完了後に行われることを保証するために、例えば一定の待機時間を設けてもよい。
そして、CPU10は、CPU10上でOSを起動し(S421)、再起動を完了する。
[まとめ]
第2実施例の情報処理装置2は、第1実施例の情報処理装置1と同様、アドレス変換部52が再起動時における読み出し命令の発行先を変更するため、CPU10が、通常の電源投入時に行われる通常起動時と再起動時とで異なる起動プログラムを実行することができる。この結果、情報処理装置2は、再起動時すなわち特定の起動場面における起動時間を短縮することができる。
また、情報処理装置2は、起動プログラムの切り替えを、アドレス変換部52やアクセス分配部54といったハードウェアで実現しているため、ソフトウェア処理によってこのような再起動を実現するものに比して、ソフトウェア改変の負担を小さくすることができる。
更に、情報処理装置2は、通常起動から再起動までの間、ゼロ番地から開始する領域を割り込みベクタに対応付けているため、割り込み通知がなされたときの割り込み処理を効率的に行うことができる。
<第3実施例>
以下、第3実施例に係る情報処理装置3について説明する。
図14は、情報処理装置3のハードウェア構成例である。図14における破線は、PSU等の電源60からの電力供給経路を示している。第3実施例に係る情報処理装置3は、例えばCPU12の内部にスイッチ12Aを備え、CPU10および周辺モジュール12への電力供給を遮断した省電力モードを実行可能となっている。図15は、省電力モード中に電力供給が遮断される機器を斜線で例示した図である。図15はあくまで一例であり、例えば省電力モードにおいて、フラッシュメモリ42への電力供給も停止されてよい。省電力モードにおいて、CPU10は、例えば、制御状態等をRAM32に保存した状態で電力供給が停止される。一方、アドレス変換部52やアクセス分配部54には電力供給が維持される。
省電力モードの態様は、上記に限らず、例えばCPU10への電力供給を維持しつつ、クロック信号の供給のみ停止する等、種々の態様を採用することができる。
省電力モードは、例えば、ユーザによって特定のスイッチが操作されたとき、或いは入力操作部に対して何ら操作がなされず且つ他のコンピュータから動作要求が無い状態が所定時間継続したとき等に開始される。このような条件が満たされたかどうかは、例えばCPU10によって監視されている。省電力モードに移行するときには、CPU10からCPU12に通知がなされる。一方、省電力モードからの復帰は、例えば、ユーザによって上記特定のスイッチが再度操作されたとき、予め定められた復帰予定時刻が到来したとき、或いは他のコンピュータから動作要求があったとき等に行われる。
そして、第3実施例に係るCPU10は、情報処理装置3が省電力モードから復帰する際に、CPU10再起動プログラムを実行する。この際に、アドレス変換部52やアクセス分配部54への電力供給が維持されているため、例えば図8又は図12で例示したメモリマップが省電力モード中も維持されることになる。この結果、情報処理装置3が省電力モードから復帰する際に、CPU10が速やかにCPU10再起動プログラムを実行することができる。この結果、CPU10が再起動を行う際の起動時間だけでなく、省電力モードから復帰する際の再起動に係る起動時間をも短縮することができる。
(1)第3実施例において、割り込みベクタ・テーブルをゼロ番地に設定しない場合、第1実施例のように、通常起動の完了後に、CPU10再起動プログラムをゼロ番地に対応付ければよい(図6参照)。図16は、第3実施例に係るCPU10およびCPU12により実行される処理の流れを示すフローチャートの一例である。図16に示すフローチャートは、省電力モードに移行したタイミングで開始される。
まず、CPU12が、省電力モードからの復帰要因が発生するまで待機する(S500)。
省電力モードからの復帰要因が発生すると、CPU12は、CPU10への電力供給を再開し(S501)、CPU10に対して割り込み通知等により復帰指示を行う(S502)。
CPU10は、RAM(3)に格納されたCPU10再起動プログラムを実行する(S510)。ここで、メモリマップは、省電力モードの間、例えば図8に例示したものに維持されているため、CPU10は速やかにCPU10再起動プログラムを実行することができる。
そして、CPU10は、CPU10上でOSを起動し(S511)、省電力モードからの復帰を完了する。
(2)第3実施例において、割り込みベクタ・テーブルをゼロ番地に設定する場合、省電力モードに移行したときに、その旨をアドレス変換部52の再起動判定部52Bに通知すればよい。通知を受けたアドレス変換部52の再起動判定部52Bは、CPU10再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル52Cを書き換える。
図17は、第3実施例に係るCPU10およびCPU12により実行される処理の流れを示すフローチャートの他の例である。図17に示すフローチャートは、省電力モードに移行したタイミングで開始される。
まず、CPU12が、CPU10再起動プログラムをゼロ番地に対応付けるようにアドレス変換部52に通知する(S600)。
通知を受けたアドレス変換部52は、CPU10再起動プログラムをゼロ番地に対応付けるようにオフセット値テーブル52Cを書き換える(S610)。この結果、メモリマップは、例えば図10に例示した状態から図12に例示した状態に変更される。
次に、CPU12が、省電力モードからの復帰要因が発生するまで待機する(S601)。
省電力モードからの復帰要因が発生すると、CPU12は、CPU10への電力供給を再開し(S602)、CPU10に対して割り込み通知等により復帰指示を行う(S603)。
CPU10は、RAM(3)に格納されたCPU10再起動プログラムを実行する(S620)。ここで、メモリマップは、例えば図12に例示したものに維持されているため、CPU10は速やかにCPU10再起動プログラムを実行することができる。
そして、CPU10は、CPU10上でOSを起動し(S621)、省電力モードからの復帰を完了する。
[まとめ]
第3実施例の情報処理装置3は、アドレス変換部52が省電力モードからの復帰時における読み出し命令の発行先を変更するため、CPU10が、通常の電源投入時に行われる通常起動時と省電力モードからの復帰時で異なる起動プログラムを実行することができる。この結果、情報処理装置3は、省電力モードからの復帰時すなわち特定の起動場面における起動時間を短縮することができる。
また、情報処理装置3は、起動プログラムの切り替えを、アドレス変換部52やアクセス分配部54といったハードウェアで実現しているため、ソフトウェア処理によってこのような再起動を実現するものに比して、ソフトウェア改変の負担を小さくすることができる。
更に、情報処理装置3は、省電力モードからの復帰時に加えて、再起動時にもCPU10再起動プログラムを実行するものとしてよく、この場合、情報処理装置3は、省電力モードからの復帰時および再起動時における起動時間を短縮することができる。
なお、上記各実施例におけるCPU10が特許請求の範囲における「プロセッサ」の一例であり、CPU12が「第2のプロセッサ」の一例である。
上記各実施例の情報処理装置は、これを搭載する種々の機器に適用することができる。例えば、MFP(Multifunction Peripheral)等のプリンタやプロジェクタ、テレビ会議システム、移動体に搭載される制御システム、工作機械システム、パーソナルコンピュータ等に適用することができる。
<変形等>
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、上記各実施例では、内部バス50が(例えば所定の中継箇所に)アドレス変換部52やアクセス分配部54を備えるものとしたが、これに代えて、CPU10と内部バスの接続箇所(CPU10の内部でも構わない)に、アドレス変換部52が取り付けられるものとしてもよい。図18は、情報処理装置の他の構成例であり、CPU10と内部バスの接続箇所(CPU10の内部でも構わない)に、アドレス変換部52やアクセス分配部54が取り付けられた様子を示す図である。
また、上記各実施例は、CPUすなわちプロセッサを複数備える情報処理装置として説明したが、シングルプロセッサの情報処理装置に適用することもできる。この場合、通常起動時の起動プログラムはCPU12等のスレーブプロセッサの起動プログラムを含まず、CPU10再起動プログラムは、通常起動時の起動プログラムからブートプログラムや周辺モジュールの初期化に係る命令等を省略したものとなる。
1、2、3 情報処理装置
10、12 CPU
20 周辺モジュール
30 RAMコントローラ
32 RAM
40 NANDコントローラ
42 フラッシュメモリ
50 内部バス
52 アドレス変換部
52A 起動済フラグ記憶部
52B 再起動判定部
52C オフセット値テーブル
52D 加算器
54 アクセス分配部
54A 領域選択信号生成部
54B クロスバースイッチ
特開2010−146142号公報

Claims (7)

  1. 情報処理装置であって、
    起動時に、記憶部における固定アドレス領域に格納された命令を実行する第1のプロセッサと、
    第1の起動プログラムと、前記第1の起動プログラムとは少なくとも一部の内容が異なる第2の起動プログラムとを格納した前記記憶部と、
    前記第1のプロセッサが、当該情報処理装置への電源投入時に行われる通常起動とは異なる特定起動をする際に、前記第1のプロセッサが発行した読み出し命令に含まれる前記第1の起動プログラムの格納領域を指し示すアドレスを、前記第2の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達するアドレス変換部と、
    起動時に、前記記憶部における前記第1のプロセッサにより指定されたアドレス領域に格納された命令を実行する第2のプロセッサと、
    を備え、
    前記第1の起動プログラムは、前記第2のプロセッサの起動制御に係る命令を含み、前記第2の起動プログラムは、前記第2のプロセッサの起動制御に係る命令を含まない、
    情報処理装置。
  2. 請求項記載の情報処理装置であって、
    前記記憶部は不揮発性メモリとRAMを含み、
    前記通常起動が行われる際に、前記第1の起動プログラムおよび前記第2の起動プログラムは、不揮発性メモリに格納されており、
    前記特定起動が行われる前に、前記第2の起動プログラムが前記RAMにコピーされ、
    前記アドレス変換部は、前記第1のプロセッサが前記特定起動をする際に、前記第1のプロセッサが発行した読み出し命令に含まれる前記第1の起動プログラムの格納領域を指し示すアドレスを、前記RAMにおける前記第2の起動プログラムの格納領域を指し示すアドレスに変換して前記RAMに伝達する、
    情報処理装置。
  3. 請求項記載の情報処理装置であって、
    前記アドレス変換部は、前記通常起動が行われた後、前記第1のプロセッサが発行した読み出し命令に含まれる前記第1の起動プログラムの格納領域を指し示すアドレスを、前記第2の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達する状態に変化する、
    情報処理装置。
  4. 請求項記載の情報処理装置であって、
    前記アドレス変換部は、
    前記第1のプロセッサが前記通常起動を行った後、前記固定アドレス領域に、割り込み処理に係るプログラムが格納された領域を対応付けた状態に変化し、
    前記第2のプロセッサから、前記第1のプロセッサが特定起動をすることを示す通知がなされたときに、前記第1のプロセッサが発行した読み出し命令に含まれる前記第1の起動プログラムの格納領域を指し示すアドレスを、前記第2の起動プログラムの格納領域を指し示すアドレスに変換して前記記憶部に伝達する状態に変化する、
    情報処理装置。
  5. 請求項記載の情報処理装置であって、
    前記アドレス変換部は、前記第1のプロセッサおよび前記第2のプロセッサと前記記憶部を接続するバスにおける、所定の中継箇所に取り付けられる、
    情報処理装置。
  6. 請求項記載の情報処理装置であって、
    前記アドレス変換部は、前記第1のプロセッサおよび前記第2のプロセッサと前記記憶部を接続するバスから前記第1のプロセッサに分岐する通信路に取り付けられる、
    情報処理装置。
  7. 請求項記載の情報処理装置であって、
    前記第1のプロセッサの消費電力を低減する省電力モードへの移行を実行することができ、
    前記第2のプロセッサが前記省電力モードからの復帰要因を監視し、
    前記省電力モードの実行中において、前記アドレス変換部への電力供給が維持される、
    情報処理装置。
JP2012201142A 2012-09-13 2012-09-13 情報処理装置 Active JP6048020B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012201142A JP6048020B2 (ja) 2012-09-13 2012-09-13 情報処理装置
US13/973,046 US9268577B2 (en) 2012-09-13 2013-08-22 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012201142A JP6048020B2 (ja) 2012-09-13 2012-09-13 情報処理装置

Publications (2)

Publication Number Publication Date
JP2014056453A JP2014056453A (ja) 2014-03-27
JP6048020B2 true JP6048020B2 (ja) 2016-12-21

Family

ID=50234608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012201142A Active JP6048020B2 (ja) 2012-09-13 2012-09-13 情報処理装置

Country Status (2)

Country Link
US (1) US9268577B2 (ja)
JP (1) JP6048020B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10237296B2 (en) * 2014-01-27 2019-03-19 Cronus Cyber Technologies Ltd Automated penetration testing device, method and system
JP6323040B2 (ja) 2014-02-12 2018-05-16 株式会社リコー 画像処理装置、画像処理方法およびプログラム
US9767264B2 (en) 2014-05-23 2017-09-19 Ricoh Company, Ltd. Apparatus, method for controlling apparatus, and program
US10157008B2 (en) * 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
CN105786607B (zh) * 2016-03-24 2019-11-12 宇龙计算机通信科技(深圳)有限公司 一种多系统的冻结与唤醒方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3584446D1 (de) * 1985-06-18 1991-11-21 Ibm Mikroprozessor.
SE520101C2 (sv) * 1998-05-13 2003-05-27 Axis Ab Integrerad krets och metod för att förmå en intgrerad krets att exekvera instruktioner
US6931474B1 (en) * 1999-09-23 2005-08-16 Intel Corporation Dual-function computing system having instant-on mode of operation
JP3893910B2 (ja) * 2001-07-12 2007-03-14 富士ゼロックス株式会社 電子機器およびその制御方法
JP2004070461A (ja) * 2002-08-02 2004-03-04 Nec Engineering Ltd メモリアクセス制御方式
KR100575156B1 (ko) * 2004-05-19 2006-04-28 삼성전자주식회사 컴퓨터 시스템 및 그 제어방법
US7614055B2 (en) * 2004-06-14 2009-11-03 Alcatel-Lucent Usa Inc. Selecting a processor to run an executable of a distributed software application upon startup of the distributed software application
JP2006099704A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 情報処理装置および起動制御方法
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
US20080126784A1 (en) * 2006-08-28 2008-05-29 Fujitsu Limited Storage apparatus, control method, and control device
JP4232121B2 (ja) * 2006-12-28 2009-03-04 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
JP4902499B2 (ja) 2007-11-05 2012-03-21 株式会社リコー 画像表示装置、画像表示方法、および画像表示システム
JP2009118148A (ja) 2007-11-06 2009-05-28 Ricoh Co Ltd 画像表示装置、画像表示方法、画像表示プログラム及び記憶媒体
JP2009301319A (ja) 2008-06-13 2009-12-24 Panasonic Corp マルチプロセッサシステム
US8239667B2 (en) * 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
JP5035227B2 (ja) 2008-12-17 2012-09-26 日本電気株式会社 情報処理装置、プログラムの起動制御方法、及び起動制御プログラム
KR101596222B1 (ko) * 2009-08-25 2016-02-23 삼성전자주식회사 영상 재생 장치의 부팅을 제어하는 방법 및 그 장치
JP2012059024A (ja) 2010-09-09 2012-03-22 Ricoh Co Ltd 情報処理装置、起動制御方法、起動制御プログラム及び記録媒体
JP5984361B2 (ja) * 2011-11-08 2016-09-06 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
US9268577B2 (en) 2016-02-23
JP2014056453A (ja) 2014-03-27
US20140075176A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
JP6048020B2 (ja) 情報処理装置
JP2007041781A (ja) リコンフィグ可能な集積回路装置
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP5885390B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP2004086912A (ja) ワーキングコンテキスト格納及び再格納装置、並びに方法
JP2007219757A (ja) 仮想計算機システムを機能させるためのプログラム
JP2006516780A5 (ja)
JP5610566B2 (ja) 半導体装置及びデータ処理システム
JP2013017139A (ja) 画像処理装置、その制御方法、及びプログラム
US20180357089A1 (en) Dynamic halt polling control
JP5578811B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2008186357A (ja) データ処理装置
JP2008090390A (ja) マイコンデバッグシステムおよびマイクロコンピュータ
JP5328410B2 (ja) 被起動オペレーティングシステム(os)動作計算機、計算機のos起動方法およびos起動プログラム
JP6109340B2 (ja) 情報機器
JP5852431B2 (ja) 画像処理装置、その制御方法、及びプログラム
JP2009175960A (ja) 仮想マルチプロセッサシステム
JP2008041059A (ja) マルチプロセッサ制御装置及び情報処理装置
JP2010003151A (ja) データ処理装置
JP2012137946A (ja) 半導体装置
JP5996110B2 (ja) 計算機システム及び制御方法
JP2016170649A (ja) 情報処理装置、情報処理装置の制御方法
JP2011059426A (ja) 画像形成装置
JP5783348B2 (ja) 制御装置、制御プログラム、画像形成装置
JP6049781B2 (ja) 画像形成装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161107

R151 Written notification of patent or utility model registration

Ref document number: 6048020

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151