JP2008015725A - 情報処理装置およびプログラム起動方法 - Google Patents

情報処理装置およびプログラム起動方法 Download PDF

Info

Publication number
JP2008015725A
JP2008015725A JP2006185174A JP2006185174A JP2008015725A JP 2008015725 A JP2008015725 A JP 2008015725A JP 2006185174 A JP2006185174 A JP 2006185174A JP 2006185174 A JP2006185174 A JP 2006185174A JP 2008015725 A JP2008015725 A JP 2008015725A
Authority
JP
Japan
Prior art keywords
program
memory
ram
flash memory
application 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.)
Pending
Application number
JP2006185174A
Other languages
English (en)
Inventor
Norihiko Hama
憲彦 浜
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.)
Alpine Electronics Inc
Original Assignee
Alpine Electronics Inc
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 Alpine Electronics Inc filed Critical Alpine Electronics Inc
Priority to JP2006185174A priority Critical patent/JP2008015725A/ja
Publication of JP2008015725A publication Critical patent/JP2008015725A/ja
Pending legal-status Critical Current

Links

Classifications

    • Y02B60/1225

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】バックアップ電源を使うことなくプログラムの起動時間を短縮化することが可能な「情報処理装置およびプログラム起動方法」を提供する。
【解決手段】情報処理装置の電源がオンにされたときに、プログラム実行領域である仮想アドレスをFlashメモリ13の物理メモリ領域にマップし、プログラムをFlashメモリ13上で動作させてタスクを起動する。その後、起動したタスクによりプログラムをRAM14へロードし、そのロードが完了した時点で、仮想アドレスをRAM14の物理メモリ領域にリマップする。これにより、Flashメモリ13に保存されているプログラムが、RAM14へロードされる前にFlashメモリ13上で起動し、プログラム起動前の段階では時間のかかるメモリ展開が行われないようにする。
【選択図】 図2

Description

本発明は、情報処理装置およびプログラム起動方法に関し、特に、プログラムを不揮発性メモリから揮発性メモリへロードして実行する情報処理装置および、同装置に用いられるプログラム起動方法に関するものである。
従来、ナビゲーション装置等の車載機やPDA(Personal Digital Assistance)のように、ハードディスクを持たない情報処理装置は、不揮発性のFlashメモリを備え、このFlashメモリにOS(Operating System)を含む各種アプリケーションプログラム(以下、単にアプリケーションプログラムと言う)を格納している。この種の情報処理装置では、プログラム実行の応答性能向上のため、アプリケーションプログラムはFlashメモリからアクセス速度がより高速なRAMにコピーされて、RAM上で実行されることが多い。
このような情報処理装置は、装置の機能を実現するアプリケーションプログラムの他に、アプリケーションプログラムの起動時に最低限の処理を行うIPL(initial Program Loader)を持つ構成となっている。このIPLもFlashメモリに保存されていて、FlashメモリからRAMにコピーされて、RAM上で実行される。具体的には、情報処理装置の電源をオンにすると、まずIPLがRAMにロードされて起動する。そして、このIPLの処理によってアプリケーションプログラムがFlashメモリからRAMにロードされ、RAM上でアプリケーションプログラムが起動する。
図4は、従来のプログラム起動シーケンスを示す図である。図4に示すように、情報処理装置の電源をオンにすると、IPLがFlashメモリからRAMにロードされて起動し、CPU周りの初期化が行われた後(ステップS101)、アプリケーションプログラムの正当性がチェックされる(ステップS102)。ここでプログラムの正当性が確認されると、アプリケーションプログラムがFlashメモリからRAMにロードされる(ステップS103)。
アプリケーションプログラムのRAMへの展開が終わると、その他の初期化処理が行われ(ステップS104)、アプリケーションプログラムへの分岐処理が行われる(ステップS105)。アプリケーションプログラムでは複数のタスクが順次に立ち上がり、それぞれのタスクで所定の処理が実行される。最初に起動するタスクでは、RAMに展開されたOSの初期化が行われた後(ステップS106)、マルチタスクの動作開始が指示される(ステップS107)。これに応じて、続く各タスクにおいて初期化が順次行われ(ステップS108,S109,S110)、アプリケーションプログラムの起動が完了する。
以上のように、アプリケーションプログラムがFlashメモリからRAMにロードされた後は、高速にアクセスが可能なRAM上でアプリケーションプログラムが実行されるので、プログラム実行のパフォーマンスが向上する。しかしながら、装置を起動する度にアプリケーションプログラムをRAMにロードしなければならないので、起動に時間がかかるという問題があった。近年の情報処理装置は多機能化が進んでおり、今後もプログラムサイズはますます拡大していく方向にある。メモリ展開に要する時間は、アプリケーションプログラムのサイズに依存して長くなるため、起動時間の短縮化は大きな課題となっている。
なお、起動時にRAMにプログラムがロード済みであるか否かをチェックし、ロード済みであれば、そのプログラムがRAM上で正常に起動できるか否かをチェックし、正常であれば当該プログラムを実行することにより、起動時におけるプログラムのロード処理を省略して起動時間の短縮化を図った情報処理装置が提案されている(例えば、特許文献1参照)。
特開2003−131880号公報
しかしながら、上記特許文献1に記載の従来技術では、揮発性のRAMにプログラムを保存しておくために、情報処理装置のメイン電源がオフにされてもRAMへの電力供給が停止しないように、バックアップ電源を使う必要がある。そのため、バックアップ電源を持たない情報処理装置の場合は、特許文献1に記載の技術を使って起動時間の高速化を図ることはできない。また、バックアップ電源を有する情報処理装置であっても、電源の消費電力が多くなってしまうという問題があった。
本発明は、このような問題を解決するために成されたものであり、バックアップ電源を使うことなく、装置の電源オン時におけるプログラム起動時間を短縮化できるようにすることを目的とする。
上記した課題を解決するために、本発明では、情報処理装置の電源がオンにされたときに、プログラム実行領域である仮想アドレスを不揮発性メモリの物理メモリ領域にマップし、プログラムを不揮発性メモリ上で動作させてタスクを起動する。そして、起動したタスクによりプログラムを揮発性メモリへロードし、そのロードが完了した時点で、仮想アドレスを揮発性メモリの物理メモリ領域にリマップするようにしている。
上記のように構成した本発明によれば、情報処理装置の電源がオンにされたときに、不揮発性メモリに保存されているプログラムが、揮発性メモリへロードされる前に不揮発性メモリ上で起動するので、従来はプログラム起動の前に行われていたメモリ展開の処理をプログラム起動前の段階では省略することができ、プログラムが起動するまでの時間を短縮することができる。また、プログラムの起動後には、不揮発性メモリから揮発性メモリに対するプログラムのロードがプログラム自身のタスクとして行われる。そして、ロードが完了した時点で、当該プログラムの実行領域である仮想アドレスが不揮発性メモリの物理メモリ領域から揮発性メモリの物理メモリ領域にリマップされることで、プログラムは何も意識することなく揮発性メモリ上での動作に切り替わる。これにより、プログラムの起動後におけるプログラム実行の応答速度性能も確保することができる。
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態による情報処理装置のハードウェア構成例を示すブロック図である。図1に示すように、本実施形態の情報処理装置は、CPU11と、このCPU11にシステムバス10を介して接続されたキーインタフェース12、Flashメモリ13、RAM14およびLCD(Liquid Crystal Display)等の表示装置15と、キーインタフェース12に接続された、電源をオンにするための電源キー16とを備えている。
Flashメモリ13は、本発明の不揮発性メモリに相当するものであり、アプリケーションプログラムやIPL等のローダプログラムがあらかじめ記憶されている他、ユーザにより作成されたデータや追加されたプログラムなどが適宜記憶される。このFlashメモリ13に記憶されたプログラムやデータは、RAM14にロードされて使用される。
RAM14は、本発明の揮発性メモリに相当するものであり、Flashメモリ13からロードされるアプリケーションプログラムやローダプログラム、ユーザデータなどが記憶される。また、このRAM14には、アプリケーションプログラムのチェックサム値やロード完了フラグなどが記憶される。ロード完了フラグはアプリケーションプログラムのロードが完了したか否かを示すものである。
CPU11は、本装置全体の制御を行うものであり、プログラムを読み込むことによって、そのプログラムに記述された手順に従って所定の処理を実行する。CPU11は、その機能構成として、本発明のプログラムロード手段とリマップ手段とを備えている。リマップ手段は、CPU11のメモリ空間において、あるアドレスの空間を、仮想的に選択された物理メモリ領域として見せることができるようにしたものである。仮想アドレスに見せることができる物理メモリ領域は複数持つことができ、プログラムで切り替えることにより、複数の物理メモリ領域を仮想アドレスに見せることができる。なお、このリマップ機能自体は公知の技術を利用することが可能である。
本実施形態では、このリマップ機能を利用して、アプリケーションプログラムをメモリ空間の仮想アドレス上で動作させる。プログラム起動時は仮想アドレスをFlashメモリ13の物理メモリ領域にマップすることで、Flashメモリ13上でアプリケーションプログラムを実行する。そして、アプリケーションプログラムの初期化処理中に、Flashメモリ13からRAM14へアプリケーションプログラムを動的にロードする。
すなわち、情報処理装置の電源がオンにされたときに、アプリケーションプログラムをRAM14へロードせずに、アプリケーションプログラムをFlashメモリ13上で動作させてタスクを起動する。そして、起動したタスクによってアプリケーションプログラムをRAM14へロードする。このアプリケーションプログラムのロードが完了するまでは、仮想アドレスはFlashメモリ13の物理メモリ領域にマッピングしたままである。
その後、アプリケーションプログラムのRAM14へのロードが完了した時点で、仮想アドレスをRAM14の物理メモリ領域にリマップする。これにより、アプリケーションプログラムは何も意識することなく、RAM14上での実行に切り替わる。図3は、リマップ手段によるアプリケーションプログラムの実行メモリの遷移状態を示す図である。なお、図3において、Bank0は仮想アドレス、Bank24はFlashメモリ13の物理メモリ領域、Bank25はRAM14の物理メモリ領域である。
図3に示すように、プログラム起動時には、仮想アドレス(Bank0)がFlashメモリ13の物理メモリ領域(Bank24)にマッピングされている。これにより、仮想アドレスのプログラム実行領域には、Flashメモリ13のプログラム格納領域が見えている。このため、仮想アドレス上において、Flashメモリ13のプログラム格納領域に格納されているアプリケーションプログラムを実行することが可能となる。
アプリケーションプログラムをFlashメモリ13からRAM14へ展開しているときも、仮想アドレス(Bank0)がFlashメモリ13の物理メモリ領域(Bank24)にマッピングされたままになっている。これにより、仮想アドレスのプログラム実行領域には、依然としてFlashメモリ13のプログラム格納領域が見えている。このため、アプリケーションプログラムをFlashメモリ13からRAM14へとロードしながら、当該アプリケーションプログラムを仮想アドレス上において実行することが可能となる。
その後、アプリケーションプログラムのRAM14へのロードが完了した時点で、仮想アドレス(Bank0)がRAM14の物理メモリ領域(Bank25)にリマップされる。これにより、仮想アドレスのプログラム実行領域には、RAM14のプログラム格納領域が見えるように切り替わる。このため、仮想アドレス上において、RAM14のプログラム格納領域に展開されたアプリケーションプログラムを実行することが可能となる。このとき、同じ仮想アドレス上でアプリケーションプログラムが実行されるので、アプリケーションプログラムは何も意識することなく、Flashメモリ13上での実行からRAM14上での実行に切り替わる。
図2は、本実施形態の情報処理装置によって実現されるプログラム起動シーケンスの例を示す図である。図2に示すように、情報処理装置の電源をオンにすると、IPLがFlashメモリ13からRAM14にロードされて起動し、CPU11周りの初期化を行った後(ステップS1)、アプリケーションプログラムの正当性をチェックする(ステップS2)。
ここでプログラムの正当性が確認されると、アプリケーションプログラムをRAM14に展開せずにその他の初期化処理を行った後(ステップS3)、アプリケーションプログラムが格納されているFlashメモリ13上のアドレスに分岐する(ステップS4)。このとき、CPU11の仮想アドレスはFlashメモリ13の物理メモリ領域にマッピングされており、アプリケーションプログラムはFlashメモリ13上で動作するようになっている。
アプリケーションプログラムでは複数のタスクが順次に立ち上がり、それぞれのタスクで所定の処理が実行される。最初に起動するタスクでは、Flashメモリ13に格納されているOSの初期化を行った後(ステップS5)、マルチタスクの動作開始を指示する(ステップS6)。これに応じて、続く各タスクにおいて初期化が順次行われ(ステップS7,S8,S9)、アプリケーションプログラムの起動が完了する。
マルチタスク動作の開始によって最初に立ち上がったタスクでは、初期化の終了後に、アプリケーションプログラムをFlashメモリ13からRAM14にロードするメモリ展開処理を行う(ステップS10)。続いて立ち上がる各タスクの初期化処理は、このメモリ展開処理と並行して行われ、最終的にアプリケーションのメインタスクが起動する。メモリ展開を行っているタスクでは、Flashメモリ13からRAM14へのロードが完了した時点でメモリのリマップ処理を行い、アプリケーションプログラムをRAM14上での動作に切り替える(ステップS11)。これ以降、アプリケーションプログラムはRAM14上で通常動作を開始する。
上述のように、ステップS11でリマップ処理が完了するまでは、アプリケーションプログラムはFlashメモリ13上で動作している。この間のCPU11のプログラム実行応答性能は、RAM14上で実行する場合と比較するとやや劣る。しかし、アプリケーションの初期化処理中であるため、実際の機能を実行するピーク時の性能は要求されない。メモリのリマップ処理が完了すると、アプリケーションプログラムはRAM14上で実行されることになる。これ以降、全ての処理はRAM14上で実行されるため、プログラム実行の応答性能も充分に向上させることができる。
以上詳しく説明したように、本実施形態によれば、装置の電源がオンとされたときに、アプリケーションプログラムをFlashメモリ13上で実行することで、アプリケーションプログラムをRAM14に展開するタイミングをできるだけ遅らせ、アプリケーションプログラムのメインタスクの起動(初期化完了)までの時間を短縮することができる。また、装置の電源オフ後にアプリケーションプログラムをRAM14上に保存しておく必要もないので、バックアップ電源を使うことなく、プログラム起動時間を短縮化することができる。また、メモリ展開後はアプリケーションプログラムをRAM14上で実行することにより、アプリケーションプログラムの機能を実際に使用する処理ピーク時において、プログラム実行の応答速度性能を確保することもできる。
なお、上記実施形態では、不揮発性メモリの例としてFlashメモリ13、揮発性メモリの例としてRAM14を挙げたが、これに限定されない。
また、上記実施形態では、マルチタスク動作の開始によって最初に立ち上がったタスクにおいてメモリ展開処理を行う例について説明したが、2番目以降のタスクにおいてメモリ展開処理を行うようにしても良い。ただし、プログラムの起動後にできるだけ早くRAM14へのリマップを行うために、最初に立ち上がったタスクにおいてメモリ展開処理を行うのが好ましい。また、最初に立ち上げるタスクをメモリ展開専用のタスクとしても良い。
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本実施形態による情報処理装置のハードウェア構成例を示すブロック図である。 本実施形態の情報処理装置によって実現されるプログラム起動シーケンスの例を示す図である。 本実施形態によるプログラムの実行メモリの遷移(メモリのリマップ機能)について説明するための図である。 従来のプログラム起動シーケンスを示す図である。
符号の説明
11 CPU
13 Flashメモリ
14 RAM

Claims (2)

  1. 電源のオン時にプログラムを不揮発性メモリから揮発性メモリへロードして実行する情報処理装置において、
    上記電源がオンにされたときに、上記プログラムを上記揮発性メモリへロードせずに、上記プログラムを上記不揮発性メモリ上で動作させてタスクを起動し、起動したタスクにより上記プログラムを上記揮発性メモリへロードするプログラムロード手段と、
    上記プログラムをメモリ空間の仮想アドレス上で動作させ、上記プログラムの上記揮発性メモリへのロードが完了するまでは上記仮想アドレスを上記不揮発性メモリの物理メモリ領域にマップし、上記プログラムの上記揮発性メモリへのロードが完了した時点で上記仮想アドレスを上記揮発性メモリの物理メモリ領域にリマップするリマップ手段とを備えたことを特徴とする情報処理装置。
  2. 電源のオン時にプログラムを不揮発性メモリから揮発性メモリへロードして実行するように成されるとともに、上記プログラムをメモリ空間の仮想アドレス上で動作させるように成された情報処理装置に用いられるプログラム起動方法であって、
    上記情報処理装置の電源がオンにされたときに、上記仮想アドレスを上記不揮発性メモリの物理メモリ領域にマップし、上記プログラムを上記不揮発性メモリ上で動作させてタスクを起動する第1のステップと、
    上記第1のステップで起動したタスクにより上記プログラムを上記揮発性メモリへロードする第2のステップと、
    上記プログラムの上記揮発性メモリへのロードが完了した時点で、上記仮想アドレスを上記揮発性メモリの物理メモリ領域にリマップする第3のステップとを有することを特徴とするプログラム起動方法。
JP2006185174A 2006-07-05 2006-07-05 情報処理装置およびプログラム起動方法 Pending JP2008015725A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006185174A JP2008015725A (ja) 2006-07-05 2006-07-05 情報処理装置およびプログラム起動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006185174A JP2008015725A (ja) 2006-07-05 2006-07-05 情報処理装置およびプログラム起動方法

Publications (1)

Publication Number Publication Date
JP2008015725A true JP2008015725A (ja) 2008-01-24

Family

ID=39072685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006185174A Pending JP2008015725A (ja) 2006-07-05 2006-07-05 情報処理装置およびプログラム起動方法

Country Status (1)

Country Link
JP (1) JP2008015725A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186411A (ja) * 2009-02-13 2010-08-26 Toshiba Corp プログラム実行装置、プログラム実行方法、及びプログラム
JP2013097715A (ja) * 2011-11-04 2013-05-20 Nikon Corp 電子機器およびプログラム
JP2013117932A (ja) * 2011-12-05 2013-06-13 Canon Inc コントローラ、記録装置及びその処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11129558A (ja) * 1997-08-28 1999-05-18 Seiko Epson Corp 情報処理装置、プリンタ、情報処理装置の制御方法および記録媒体
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2005025732A (ja) * 2003-06-12 2005-01-27 Fuji Xerox Co Ltd コントローラ、画像処理装置およびプログラムの実行を制御する方法
JP2005078419A (ja) * 2003-09-01 2005-03-24 Ricoh Co Ltd 情報処理装置及びファイル管理方法
JP2005107938A (ja) * 2003-09-30 2005-04-21 Casio Comput Co Ltd コンピュータの起動システム及びデータ記憶装置
JP2006163714A (ja) * 2004-12-06 2006-06-22 Fuji Photo Film Co Ltd 撮影装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11129558A (ja) * 1997-08-28 1999-05-18 Seiko Epson Corp 情報処理装置、プリンタ、情報処理装置の制御方法および記録媒体
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法
JP2005025732A (ja) * 2003-06-12 2005-01-27 Fuji Xerox Co Ltd コントローラ、画像処理装置およびプログラムの実行を制御する方法
JP2005078419A (ja) * 2003-09-01 2005-03-24 Ricoh Co Ltd 情報処理装置及びファイル管理方法
JP2005107938A (ja) * 2003-09-30 2005-04-21 Casio Comput Co Ltd コンピュータの起動システム及びデータ記憶装置
JP2006163714A (ja) * 2004-12-06 2006-06-22 Fuji Photo Film Co Ltd 撮影装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186411A (ja) * 2009-02-13 2010-08-26 Toshiba Corp プログラム実行装置、プログラム実行方法、及びプログラム
JP2013097715A (ja) * 2011-11-04 2013-05-20 Nikon Corp 電子機器およびプログラム
JP2013117932A (ja) * 2011-12-05 2013-06-13 Canon Inc コントローラ、記録装置及びその処理方法

Similar Documents

Publication Publication Date Title
US10754558B2 (en) Vehicular device
KR101602360B1 (ko) 시스템 고속 부팅 장치 및 방법
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
JP4422136B2 (ja) 記憶装置及び起動方法
JP6399916B2 (ja) 情報処理装置およびその制御方法
EP3491519A1 (en) Optimized uefi reboot process
JPWO2002095556A1 (ja) 待機モードを有する装置、プログラム、及び待機モードを有する装置の制御方法
TW201624273A (zh) 韌體變量更新方法
KR20080001268A (ko) 다중 운영체제를 지원하는 휴대용기기 및 그 지원방법
JP2015102889A (ja) ファームウェアの更新方法、電子機器、コンピュータおよびコンピュータ・プログラム
WO2012163275A1 (zh) 控制方法、控制装置以及计算机系统
JP2014534521A (ja) ブートデータのロード
TW201106271A (en) Method of switching different operating systems in computer
JP2011060225A (ja) オペレーティングシステム起動方法
JP2007206933A (ja) 情報処理装置、情報処理装置におけるブートローダ生成方法およびプログラム転送方法
JP2008015725A (ja) 情報処理装置およびプログラム起動方法
WO2000054133A1 (fr) Dispositif de traitement de donnees, procede de sauvegarde/chargement de donnees et support de memorisation de donnees
JP2006099704A (ja) 情報処理装置および起動制御方法
JP2013182577A (ja) 情報処理装置、画像形成装置およびプログラム
JP2005258642A (ja) 組込型情報処理装置
JP4359646B1 (ja) 情報処理装置、外部記憶装置、制御方法
JP7180542B2 (ja) 情報処理装置および情報処理方法
JP2009176151A (ja) 情報処理装置およびその起動方法
JP2003044284A (ja) コンピュータ装置の起動方法および起動用プログラム
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090220

A977 Report on retrieval

Effective date: 20111027

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111221

A131 Notification of reasons for refusal

Effective date: 20120117

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

A131 Notification of reasons for refusal

Effective date: 20120403

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20120523

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120612