JP2014002613A - 情報処理装置、その制御方法及びコンピュータプログラム - Google Patents

情報処理装置、その制御方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2014002613A
JP2014002613A JP2012138172A JP2012138172A JP2014002613A JP 2014002613 A JP2014002613 A JP 2014002613A JP 2012138172 A JP2012138172 A JP 2012138172A JP 2012138172 A JP2012138172 A JP 2012138172A JP 2014002613 A JP2014002613 A JP 2014002613A
Authority
JP
Japan
Prior art keywords
software
kernel
unit
reboot
updated
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.)
Granted
Application number
JP2012138172A
Other languages
English (en)
Other versions
JP5932511B2 (ja
JP2014002613A5 (ja
Inventor
Akira Ishikawa
亮 石川
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2012138172A priority Critical patent/JP5932511B2/ja
Priority to US13/912,938 priority patent/US20130339939A1/en
Publication of JP2014002613A publication Critical patent/JP2014002613A/ja
Publication of JP2014002613A5 publication Critical patent/JP2014002613A5/ja
Application granted granted Critical
Publication of JP5932511B2 publication Critical patent/JP5932511B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】ソフトウェアの更新処理において、更新対象のソフトウェアにカーネルが含まれない場合はシステム全体を初期化することなくリブートすることにより更新処理時間を低減する情報処理装置を提供すること。
【解決手段】情報処理装置1は、記憶部に記憶されたソフトウェアの更新対象にアプリケーションだけが含まれているか否かを判断し、更新対象のソフトウェアを更新し、更新対象のソフトウェアにアプリケーションだけが含まれている場合はリブートせず、更新対象のソフトウェアにアプリケーション以外のソフトウェアが含まれている場合であって、更新対象のソフトウェアにカーネルが含まれているときはハードウェアの初期化を伴うリブートを行い、更新対象のソフトウェアに前記カーネルが含まれないときは前記ハードウェアの初期化を伴わないリブートを行う。
【選択図】図5

Description

本発明は、情報処理装置、その制御方法及びコンピュータプログラムに関する。
近年の複合機は汎用PCと同様に、市場に設置した後も定期的にソフトウェアを更新することで、機能追加や不具合修正を実施している。ソフトウェアは大きく分けて、独立性の高いアプリケーション部分と、システム全体に依存するOS部分から構成されている。アプリケーションのソフトウェアを更新する場合は、独立性が高いため対象のプログラムファイルを更新して、対象のアプリケーションのみを再立ち上げ(以下リブートまたはリブート処理と呼ぶ)すれば更新が完了する。OSのソフトウェアはシステム全体に依存するため更新したOSのソフトウェアのみをリブートすることができない。そのため、OSのソフトウェアを更新する時は、更新対象のファイルを更新用のプログラムファイルで差し換えた後にシステム全体をリブートすることが必要になる。このリブート処理はアプリケーション単体のリブートに比べて時間がかかるため、ダウンタイムが生じ、ユーザはシステムがリブートを完了するまで待たなければならない。汎用PC用のディストリビューションでは、更新対象にOSのソフトウェアが含まれているか否かを判断して、OSのソフトウェアが含まれていた場合のみリブートすることで、アプリケーションの更新には不要なリブートのダウンタイムを作らない様にしている。
また、OSのソフトウェアを更新する場合は、更新処理自体もOSが実施することになるが、更新の対象と更新の実行が同一であることから、更新処理中にプログラムファイルの不整合が発生し、システムが更新処理を実施できない課題がある。この課題への対処手段としては、従来からOS部分を機器内に2つ持ち、片方から他方を更新する手段がとられている。特許文献1は、更新用のファームウェアを非運用面のメモリ領域に記憶させ、運用面のメモリ領域で更新対象のファームウェアを同時並行的に実行し、両方のファームウェアの同期が取れたタイミングで更新用のファームウェアに切り替えるシステムを開示している。
特開平11−7382号公報
OSを2つ備えることで、更新処理におけるプログラムファイルの不整合を防ぐことが可能となったが、OSのソフトウェアを更新する場合はシステム全体を再立ち上げするリブート処理が必要であり、一般的には電源断を伴う。しかしながら、リブート処理で実施されるハードウェアの初期化は、必ずしも必要ではない。具体的には、OSの内、ハードウェア制御ソフトが含まれるカーネルの更新時は、システム全体の初期化が必要である。OSの内、ハードウェア制御ソフトが含まれないカーネル以外のソフトウェアの更新時は、システム全体の初期化は不要である。従来、OSのソフトウェアを更新する際には、カーネルが対象か否かに関わらずシステム全体の初期化、つまり電源断を伴う初期化を行っていたため、更新処理に時間がかかるという課題がある。そこで本発明は、ソフトウェアの更新処理において、更新対象のソフトウェアにカーネルが含まれない場合はシステム全体を初期化することなくリブートすることにより更新処理時間を低減する情報処理装置を提供することを目的とする。
本発明の一実施形態の情報処理装置は、ソフトウェアの更新処理を行う情報処理装置である。前記情報処理装置は、記憶部に記憶された前記ソフトウェアの更新対象にアプリケーションだけが含まれているか否かを判断する判断手段と、前記更新対象のソフトウェアを更新する更新手段と、前記更新対象のソフトウェアにアプリケーションだけが含まれている場合はリブートせず、前記更新対象のソフトウェアに前記アプリケーション以外のソフトウェアが含まれている場合であって、前記更新対象のソフトウェアにカーネルが含まれているときはハードウェアの初期化を伴うリブートを行い、前記更新対象のソフトウェアに前記カーネルが含まれないときは前記ハードウェアの初期化を伴わないリブートを行うリブート手段とを備える。
本発明の情報処理装置によれば、ソフトウェアの更新処理において、更新対象のソフトウェアにカーネルが含まれない場合はシステム全体を初期化することなくリブートすることにより更新処理時間を低減することが可能となる。
本発明の画像形成装置の構成例を示す図である。 画像形成装置の内部構成図である。 画像形成装置のコントローラ部の詳細を示すブロック図である。 画像形成装置のFlash上に配置されるデータの構造図である。 実施例1のバージョンアップを実施するフロー図である。 画像形成装置のFlash上に配置されるデータの構造図である。 実施例2のバージョンアップを実施するフロー図である。
(実施例1)
図1は、本実施例の情報処理装置として機能する画像形成装置の構成例を示す図である。本実施例では画像形成装置を例に説明するが、本発明は計算機システム全般に適用可能な技術である。画像形成装置1は、イーサネット(登録商標)等のLAN(Local Area Network)400を介してホストコンピュータ(本実施例ではPC3,4)に接続されている。
画像形成装置1は、リーダ部2、プリンタ部6操作部7、コントローラ部110、ハードディスク8を備える。リーダ部2は、画像データの読取処理を行う。プリンタ部6は、画像データの入出力処理を行う。操作部7は、ユーザの操作に応じた処理を実行する。例えば、操作部7は、画像データや各種機能の表示処理を行う液晶パネルを備える。コントローラ部110は、画像形成装置1が備える各処理部に指示することによって、画像形成装置全体を制御する。
リーダ部2は、原稿給紙ユニット10、スキャナユニット11を備える。原稿給紙ユニット10は、原稿用紙を搬送する。スキャナユニット11は、搬送された原稿画像を光学的に読み取って電気信号としての画像データに変換する。
プリンタ部6は、給紙ユニット12、マーキングユニット13、排紙ユニット14を備える。給紙ユニット12は、記録用紙を収容する。このために、給紙ユニット12は、複数段の給紙カセットを備える。マーキングユニット13は、画像データを記録用紙に転写、定着する。排紙ユニット14は、印字された記録用紙にソート処理やステイプル処理を施して、外部に排出する+。ハードディスク8には、制御プログラムや画像データ等が予め書き込まれている。
図2は、図1に示す画像形成装置が備えるリーダ部2及びプリンタ部6の詳細を示す内部構造であり、リーダ部2はプリンタ部6に載置されている。リーダ部2では、原稿給送ユニット210に積層された原稿用紙がその積層順にしたがって、先頭から順次1枚ずつプラテンガラス215上に給送される。スキャナユニット11が所定の読取動作を終了した後、読み取られた原稿用紙がプラテンガラス215上から原稿給送ユニット210に排出される。また、スキャナユニット11では、原稿用紙がプラテンガラス215上に搬送されてくるとランプ216が点灯し、次いで光学ユニット217が移動を開始する。このとき、原稿用紙は読み取り位置で固定される。光学ユニット217は、読取り位置で固定された原稿用紙を下方から照射し、走査する。原稿用紙からの反射光は、複数のミラー218乃至220、及びレンズ221を介してCCDイメージセンサー(以下、単に「CCD」と記す)222へと導かれ、走査された原稿画像はCCD222によって読み取られる。そして、CCD222によって読み取られた画像データは、所定の処理が施された後、コントローラ部110(図2では図示省略)に転送される。
別の方法として、プラテンガラス215上に原稿用紙が載置された時点でランプ216を点灯し、次いで光学ユニット217の移動を開始させ、原稿用紙を下方から照射し、走査することで、走査された原稿画像をCCD222によって読み取ることも可能である。以上の手順で送出されたリーダからの画像データは、コネクタ56を介してコントローラ部110に送出される。
次いで、プリンタ部6では、不図示のレーザドライバ23によって駆動されるレーザ発光部224が、コントローラ部110から出力された画像データに対応するレーザ光を発光する。該レーザ光により、マーキング部13の感光ドラム225にはレーザ光に応じた静電潜像が形成される。現像器226は、形成された静電潜像の部分に現像剤を付着する。
一方、レーザ光の照射開始と同期したタイミングで、給紙部12(給紙カセット212a,212b)は、記録用紙を給紙して転写部227に搬送する。転写部227は、感光ドラム225に付着している現像剤を給紙された記録用紙に転写する。画像データが転写された記録用紙は定着部228に搬送され、定着部228は加熱・加圧処理により画像データを記録紙に定着する。画像データが記録用紙に片面記録される場合は、排出ローラ229が定着部228を通過した記録用紙をそのまま排紙ユニット14に排出する。
排紙ユニット14は、排出された記録用紙を束ねて記録用紙の仕分けを行う。また、排紙ユニット14は仕分けされた記録用紙のステイプル処理を行う。また、排紙ユニット14は、画像データが記録用紙に両面記録される場合は、排出ローラ229まで記録用紙を搬送した後、排出ローラ229の回転方向を逆転させる。その後、記録用紙は、フラッパ230によって再給紙搬送路231へと導かれ、上述と同様にして転写部227に搬送される。コントローラ部110は、上述したように単一の電子部品で構成される。コントローラ部110はリーダ部2が読み取った画像データをコードに変換し、LAN400を介して第一及び第二のホストコンピュータ3、4に送信するスキャナ機能を有する。さらに、コントローラ部110は、ホストコンピュータ3、4から不図示のLANを介して受信したコードデータを画像データに変換し、プリンタ部6に出力するプリンタ機能を有する。上述した機能は一例であり、コントローラ部はその他の機能を有することが可能である。
図3は、図1に示す画像形成装置が備えるコントローラ部の構成例を示す図である。コントローラ部110が備える構成要素のうち、メインコントローラ32は、CPU33とバスコントローラ34と後述する各種コントローラ回路を含む機能ブロックとを備える。本実施形態の画像形成装置の制御方法は、CPU33がFLASHメモリ99に格納されたコンピュータプログラムを実行することによって実現される。
メインコントローラ32は、DRAMI/F37を介して、DRAM38と接続される。また、メインコントローラ32は、コーデックI/F39を介して、コーデック40と接続される。また、メインコントローラ32は、ネットワークI/F41を介して、ネットワークコントローラ32と接続される。また、メインコントローラ32は、スキャナバス45を介して、スキャナI/F46に接続される。また、メインコントローラ32は、プリンタバス47を介して、プリンタI/F48に接続される。また、メインコントローラ32は、PCIバス等の汎用高速バス49を介して拡張ボードを接続するための拡張コネクタ50及び入出力制御部(I/O制御部)51に接続されている。
DRAM38は、CPU33が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック40は、DRAM38に蓄積されたラスターイメージデータをMH/MR/MMR/JBIGなどの周知の圧縮方式で圧縮する。また、コーデック40は、圧縮されたデータをラスターイメージに伸長する。また、コーデック40にはSRAM43が接続されており、SRAM43は、コーデック40の一時的な作業領域として使用される。
ネットワークコントローラ42は、ネットワークコネクタ44を介して、LAN400(図2)との間で所定の制御動作を行う。I/O制御部51は、図2に示すリーダ部2やプリンタ部6との間で、制御コマンドを送受信する。I/O制御部51には、上記制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ52が2チャンネル装備されている。シリアル通信コントローラ52は、I/Oバス53を介して、スキャナI/F46及びプリンタI/F48に接続されている。
スキャナI/F46は、第一の調歩同期シリアルI/F54及び第一のビデオI/F55を介して、スキャナコネクタ56に接続されている。また、スキャナコネクタ56は、リーダ部2のスキャナユニット11に接続されている。そして、スキャナI/F46は、スキャナユニット11から受信した画像データに対して、所望の2値化処理や、主走査方向及び/又は副走査方向の変倍処理を行う。また、スキャナI/F46は、スキャナユニット11から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス45を介して、メインコントローラ32に転送する。
また、プリンタI/F48は、第2の調歩同期シリアルI/F57及び第2のビデオI/F58を介して、プリンタコネクタ59に接続されている。また、プリンタコネクタ59は、プリンタ部6のマーキングユニット13に接続されている。そして、プリンタI/F48は、メインコントローラ32から出力された画像データにスムージング処理を施して、マーキングユニット13に出力する。また、プリンタI/F48は、マーキングユニット13から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス47に出力する。プリンタI/F48は、例えば、LAN400に接続されたホストコンピュータから受信したPDL(ページ記述言語)データを解釈し、ラスターイメージデータに展開する。
また、バスコントローラ34は、スキャナI/F46プリンタI/F48、その他拡張コネクタ50等に接続された外部機器から入出力されるデータ転送を制御する。具体的には、バスコントローラ34は、バスの使用権のアービトレーション(調停)やDMAデータ転送の制御を行う。例えば、上述したDRAM38とコーデック40との間のデータ転送や、スキャナユニット11からDRAM38へのデータ転送、DRAM38からマーキングユニット13へのデータ転送等は、バスコントローラ34によって制御され、DMA転送される。
また、I/O制御部51は、LCDコントローラ60及びキー入力I/F61を介して、パネルI/F62に接続されている。パネルI/F62は、操作部7に接続されている。また、I/O制御部51は、E−IDEコネクタ63を介して、ハードディスク8および9、Flashメモリ99に接続されている。
Flashメモリ99は、メインコントローラ制御用の各種制御プログラム、各種データ記憶領域を記憶する。また、Flashメモリ99は、機器内で管理する日付と時刻を更新/保存するリアルタイムクロックモジュール64に接続されている。リアルタイムクロックモジュール64は、バックアップ用電池65に接続されて、バックアップ用電池65によりバックアップされている。BIOS
ROM98は、メインコントローラ32に接続され、IO初期化プログラムを記憶する。
次に図3と図4を参照し、Flash99の内部に配置されたソフトウェアの構成について説明する。Flash99は記憶部として機能し、内部的にソフトウェアとして、Boot
Loader1007、KernelA1008、InitrdA1009、Program StorageA1010を有する。さらに、Flash99は、KernelB1011、InitrdB1012、Program
StorageB1013を有する。
Boot Loader1007は、BIOS98によって、DRAM38に読み込まれたのち実行され、KernelA1008、InitrdA1009、KernelB1011およびInitrdB1012をDRAM38に読み込む。
InitrdA1009およびInitrdB1012は、DRAM38に読み込まれたのちに、カーネル初期化時の一時的な起動ディスクとして使用される。KernelA1008およびKernelB1011はそれぞれ、InitrdA1009およびInitrdB1012を一時起動ディスクとして起動する。その後、KernelA1008およびKernelB1011はそれぞれ、Program
StorageA1010またはProgram StorageB1013を実際の起動ディスクとして実装する。Program StorageA1010およびProgram
StorageB1013はそれぞれ、アプリケーション部およびOS部を含むソフトウェアを記憶する。KernelA1008もしくはKernelB1011は、Program
StorageA1010およびProgram StorageB1013を実装後に、内部に配置されたソフトウェアを起動することで複写機の機能を実行する。
本実施例では、CPU33は、作業部として使用するDRAM38上に全てのプログラムを展開してから実行するのではなく、デマンドローディング機構により、必要なプログラムだけをオンデマンドに選択してDRAM38に読み込むものとする。KernelA1008、InitrdA1009、Program
StorageA1010とKernelB1011、InitrdB1012、Program Storage10013はソフトウェア更新のため、冗長的に構成されている。片方が他方を更新することで、更新処理中の不整合を回避すると共に、更新失敗時のリカバリ処理を可能としている。KernelA1008とInitrdA1009、KernelB1011とInitrdB1012は、それぞれ組み合わせて用いられる。Program
StorageA1010とProgram StorageB1013は更新処理のシーケンスによって、KernelA1008とKernelB1011と任意の組み合わせで用いられる。
次に図5は、画像形成装置のソフトウェアのバージョンアップを説明する図である。図5に示すフローチャートは、Flashメモリ99に格納されたプログラムに従ってメインコントローラ32のCPU33が実行することによって実現される。ステップ2001でProgram
StorageA1010内に配置され、起動しているメインコントローラ32のソフトウェアがユーザの指示を受けバージョンアップを開始する。ステップ2001で使用されているソフトウェアは、KernelA1008、InitrdA1009、Program
StorageA1010であるものとする。
ステップ2002で、CPU33は、バージョンアップを指示されたソフトウェアの一覧を作成する。ステップ2003で、CPU33は、ステップ2002で作成したソフトウェア一覧にアプリケーションソフトウェア以外のソフトウェアが含まれているかを各ソフトウェアが有するメタデータを参照し確認する。すなわち、CPU33は、ソフトウェアの更新対象にアプリケーションだけが含まれているかを判断する判断手段として機能する。ステップ2003でアプリケーションソフトウェア以外のソフトウェアが検出されなかった場合、CPU33は、ステップ2031の処理を実施する。
ステップ2031で、CPU33は更新手段として機能し、更新対象のアプリケーションに対応するプログラムファイルをProgram
StorageA1010内で差し換えることで更新を実施する。そして、ステップ2013で、CPU33はバージョンアップを終了する。アプリケーションは、他のプロセスとの依存関係がなく独立性が高いため、CPU33はこの様に簡単な処理で更新することができる。また、この様に独立性の高いソフトウェアだけが、メタデータとしてアプリケーションであることを示す情報を有する。ハードウェアの初期化を伴わないとしてもリブート処理は数十秒から数分かかるため、アプリケーションのみの更新がもっとも高速に実施される。
ステップ2003で、CPU33は、アプリケーション以外のソフトウェアを検出した場合には、ステップ2004の処理を実施する。ステップ2004で、CPU33は、Program
StorageAの内容をProgram StorageBへ複製した後に、更新対象のOSのソフトウェアに対応するプログラムファイルを差し換えることで更新を実施する。これにより、更新処理中にプログラムファイルの不整合が発生することを防止する。カーネル、Initrdのソフトウェアが更新対象として含まれていた場合は、KernelA1008、InitrdA1009を更新後、KernelB1011、InitrdB1012に複製し、ステップ2005の処理を実施する。
ステップ2005で、CPU33は、システム内で起動し、実行しているプログラムに関する全プロセスに終了処理を依頼する。各プロセスは、CPU33から指示を受け、データの書き出しなど終了していない処理を実施し、プロセスの実行を終了する。この様にシステム全体の終了処理が必要なのは、OSのロジックが全てのプロセスに渡って影響を及ぼしており、それ故OSのソフトウェアを部分的に再起動するだけでは、各プロセスは、プロセス間の整合性が取れた状態で処理を再開できないためである。CPU33は、ステップ2006で全プロセスの終了が確認できるとステップ2007の処理を実施する。
ステップ2007で、CPU33は、ステップ2002で作成したソフトウェア一覧にカーネルとInitrdのソフトウェアが含まれているか確認する。CPU33は、ステップ2007でカーネルとInitrdのソフトウェアが含まれていることを確認した場合は、ステップ2008の処理を実施する。ステップ2008ではCPU33をリセットすることで、CPUを電源投入時の初期状態へ遷移させ、ステップ2009の処理を実施する。つまり、ステップ2007で更新対象のソフトウェアにカーネルが含まれていると判定された場合は、電源断(画像形成装置1を電源OFFにしてその後電源ONにする)を必要とするリブートを実行する。
ステップ2009で、CPU33は、BIOS ROM98をDRAM38へ読み込み、BIOSの初期化を開始する。BIOSの初期化で、CPU33は、IOデバイスを中心とした部分のハードウェアの初期化を実施した後、ステップ2010の処理を実施する。ステップ2010で、CPU33は、KernelB1011とInitrdB1012をDRAM38へ読み込み、カーネルの初期化を開始する。つまり、CPU33は、カーネルを初期化する必要がある場合は、Program
StorageA1010を保持しておく。カーネルの初期化で、CPU33は、カーネル内にデバイスドライバとして記述された全ハードウェアの初期化を実行し、終了後にステップ2011の処理を実施する。
ステップ2007でカーネルが含まれていないと判断された場合はステップ2021の処理を実施する。ステップ2021では、Program
StorageA1010の実装を解除し、ステップ2011の処理を実施する。カーネルが含まれていない場合は、電源断を伴うハードウェアの初期化が必要ないため、CPU33は、OSのソフトウェアに対応するプログラムを差し換えるだけで更新を実現できる。換言すれば、CPU33は、カーネルによる起動対象を実装していたProgram
StorageA1010からProgra StorageB1013に切り替える。更新処理が完了した後は、Program StorageA1010に含まれる内容は任意のタイミングで削除されてよい。上述の構成により、Progra
StorageB1013を実装後にバージョンアップが指示された場合は、CPU33は、Progra StorageB1013をProgram StorageA1010に複製する。そして複製されたProgram
StorageA1010が更新されることになる。つまり、ステップ2007で更新対象のソフトウェアにカーネルが含まれていないと判定された場合は、電源断を必要としないリブートを実行する。
ステップ2011では、CPU33はProgram StorageB1013を実装し、ステップ2012の処理を実施する。ステップ2012で、CPU33は、予め設計された起動シーケンスに従い、必要なプロセス群を起動する。例えば、ステップ2005で終了させたProgram
StorageA1010に含まれるプロセスと対応するProgram StorageB1013に含まれるプロセスを再起動する。すなわち、CPU33は、更新対象のソフトウェアに含まれるソフトウェアの種類に応じてリブートするリブート手段として機能する。つまり、CPU33は、更新対象のソフトウェアがアプリケーションのみの場合はリブートしない。CPU33は、更新対象のソフトウェアにアプリケーション以外のソフトウェアが含まれている場合であって、更新対象のソフトウェアがカーネルを含む場合は初期化を行い、カーネルを含まない場合は初期化を伴わないリブートを行う。そしてステップ2013で、CPU33はバージョンアップを終了する。
ステップ2003で、アプリケーションが含まれないとCPU33が判断した場合のバージョンアップ後に使用されるソフトウェアは、KernelA1008、InitrdA1009、Program
StorageA1010である。ステップ2007でカーネルが含まれていないとCPU33が判断した場合のバージョンアップ後に使用されるソフトウェアは、KernelA1008、InitrdA1009、Program
StorageB1013である。ステップ2007でカーネルが含まれているとCPU33が判断した場合のバージョンアップ後に使用されるソフトウェアはKernelB1011、InitrdB1012、Progra
StorageB1013である。
(実施例2)
次にCPU33がProgram StorageA1010およびProgram StorageB1013に配置したプログラムをデマンドローディングせず、起動時にDRAM38に全て読み込んでから実行する場合の実施例を説明する。
図3と図6を用いてFlash99の内部に配置されたソフトウェアの構成について説明する。
図6に示すように、Flash99は内部的に、Boot Loader3007、KernelA3008、InitrdA3009、及びProgram
StorageA3010を有する。CPU33は、BIOS98によって、DRAM38にBoot Loader3007を読み込み、読み込まれたBoot Loader3007が次にKernelA3008、InitrdA3009をDRAM38に読み込む。InitrdA3009はDRAM38に読み込まれたのちに、カーネル初期化時の一時的な起動ディスクとして使用される。KernelA3008は、InitrdA3009を一時起動ディスクとして起動する。その後、CPU33は、Program
StorageA3010の内容をDRAM38に全て読み込む。
このため、本実施例ではデマンドローディングを実行しないため、Program StorageA3010の容量よりも容量が大きいDRAM38が必要になる。Program
StorageA3010は、アプリケーションおよびOSのソフトウェアを記憶する。Program StorageA3010を読み込んだ後にKernelA3008が内部に配置されたソフトウェアを起動することで複写機の機能を実行する。起動処理が完了するとProgram
StorageA3010はアクセスされないため、CPU33は実行時の任意のタイミングでProgram StorageA3010を書き換え、バージョンアップを実施することができる。
次に図7を用いて、バージョンアップ実施のフローを説明する。本フローチャートはFlashメモリ99に格納されたプログラムに従ってメインコントローラ32のCPU33が実行することによって実現される。
ステップ4001でProgram StorageA3010内に配置され、起動しているメインコントローラのソフトウェアがユーザの指示を受けてバージョンアップを開始する。ステップ4002で、CPU33は、バージョンアップを指示されたソフトウェアの一覧を作成する。ステップ4003で、CPU33は、ステップ4002で作成されたソフトウェア一覧にアプリケーションソフトウェア以外のソフトウェアが含まれているか、各ソフトウェアが有するメタデータを参照し確認する。
ステップ4003で、アプリケーションソフトウェア以外のソフトウェアが検出されなかった場合は、CPU33はステップ4031の処理を実施する。ステップ4031で、CPU33は、更新対象のアプリケーションに対応するプログラムファイルをProgram
StorageA30010内およびDRAM38内で差し換える。その後、ステップ4013の処理を実施する。
ステップ4003でアプリケーション以外のソフトウェアが検出された場合には、CPU33はステップ4004の処理を実施する。ステップ4004で、CPU33は、Program
StorageA3010上で、更新対象のOSのソフトウェアに対応するプログラムファイルを差し換えることで更新を実施する。さらに、カーネル、Initrdが含まれていた場合は、KernelA3008、InitrdA3009を更新し、CPU33は、ステップ4005の処理を実施する。
ステップ4005で、CPU33は、システム内で起動し、実行しているプログラムに関する全プロセスに終了処理を依頼する。各プロセスは、CPU33から指示を受け、データの書き出しなど終了していない処理を実施し終了した後に、プロセスの実行を終了する。ステップ4006で全プロセスの終了が確認できるとステップ4007の処理を実施する。ステップ4007で、CPU33は、ステップ4002で作成したソフトウェア一覧にカーネルとInitrdが含まれているか確認する。
ステップ4007で、CPU33は、カーネルとInitrd含まれていることが確認された場合は、ステップ4008の処理を実施する。ステップ4008ではCPU33をリセットすることで、CPUを電源投入時の初期状態へ遷移させ、ステップ4009の処理を実施する。ステップ4009で、CPU33は、BIOS
ROM98をDRAM38へ読み込み、BIOSの初期化を開始する。BIOSの初期化ではIOデバイスを中心とした部分のハードウェアの初期化を実施した後、ステップ4010の処理を実施する。ステップ4010ではKernelA3008とInitrdA3009をDRAM38へ読み込み、カーネルの初期化を開始する。カーネルの初期化で、CPU33はカーネル内にデバイスドライバとして記述された全ハードウェアの初期化を実行した後、ステップ4011の処理を実施する。
ステップ4007で、CPU33はカーネルが含まれていないと判断した場合、ステップ4021の処理を実施する。ステップ4021で、CPU33は、Program
StorageA3010の再読み込みに備えて、DRAM38の内容を削除する。ステップ4011で、CPU33は、Program StorageA3010の内容をDRAM38に全て読み込み、ステップ4012の処理を実施する。ステップ4012で、CPU33は予め設計された起動シーケンスに従い、必要なプロセス群を起動する。そしてステップ4013で、CPU33はバージョンアップを終了する。
これらの処理により、DRAM38の容量を増やすことでFlash99の容量を削減することができる。
上記制御を行う事で、アプリケーション部のみの場合はファイルの差し換えのみを実施し、カーネルを含まないOS部の場合はハードウェアの初期化を伴わないリブートを実施し、カーネルを含む場合はハードウェアの初期化を伴うリブートを実施する。これにより、ユーザは不要なダウンタイムを待たされることが無くなる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
99 Flash
1007 Boot Loader
1008 KernelA
1009 InitrdA
1010 Program StorageA
1011 KernelB
1012 InitrdB
1013 Program StorageB

Claims (7)

  1. ソフトウェアの更新処理を行う情報処理装置であって、
    記憶部に記憶された前記ソフトウェアの更新対象にアプリケーションだけが含まれているか否かを判断する判断手段と、
    前記更新対象のソフトウェアを更新する更新手段と、
    前記更新対象のソフトウェアにアプリケーションだけが含まれている場合はリブートせず、前記更新対象のソフトウェアに前記アプリケーション以外のソフトウェアが含まれている場合であって、前記更新対象のソフトウェアにカーネルが含まれているときはハードウェアの初期化を伴うリブートを行い、前記更新対象のソフトウェアに前記カーネルが含まれないときは前記ハードウェアの初期化を伴わないリブートを行うリブート手段とを備える
    ことを特徴とする情報処理装置。
  2. 前記更新手段は、前記更新対象のソフトウェアに前記アプリケーションだけが含まれている場合は、前記記憶部に記憶されたソフトウェアを更新し、前記更新対象のソフトウェアに前記アプリケーション以外のソフトウェアが含まれている場合に、前記記憶部に記憶されたソフトウェアを前記記憶部とは異なる他の記憶部に複製した後に、複製された前記ソフトウェアを更新し、
    前記リブート手段は、前記ソフトウェアの更新対象に前記カーネルが含まれている場合は、前記記憶部に記憶された前記更新対象のソフトウェアを保持して前記ハードウェアの初期化を行い、前記初期化の終了後に前記他の記憶部に複製され更新されたソフトウェアを実装し、前記ソフトウェアの更新対象に前記カーネルが含まれていない場合は、カーネルによる起動対象を前記記憶部に記憶された前記更新対象のソフトウェアから前記他の記憶部に複製され更新されたソフトウェアに切り替える
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記記憶部に記憶されたソフトウェアは、デマンドローディングされて実行される
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記記憶部に記憶された全てのソフトウェアが実行時に読み込まれる作業部をさらに備え、
    前記更新手段は、前記ソフトウェアの更新対象にアプリケーションだけが含まれている場合は、前記作業部に読み込まれたソフトウェアおよび前記記憶部に記憶された前記ソフトウェアを更新し、前記更新対象のソフトウェアに前記アプリケーション以外のソフトウェアが含まれている場合は、前記記憶部に記憶されたソフトウェアを更新し、
    前記リブート手段は、前記ソフトウェアの更新対象に前記カーネルが含まれている場合は、前記作業部に読み込まれた前記ソフトウェアを保持して前記ハードウェアの初期化を行い、前記初期化の終了後に前記記憶部に記憶されたソフトウェアを実装し、前記ソフトウェアの更新対象に前記カーネルが含まれない場合は、前記作業部に読み込まれたソフトウェアを削除して前記記憶部に記憶されたソフトウェアを実装する
    ことを特徴とする請求項1に記載の情報処理装置。
  5. 前記ハードウェアの初期化を伴うリブートは、前記情報処理装置の電源断を必要とするリブートであり、前記ハードウェアの初期化を伴わないリブートは、前記情報処理装置の電源断を必要としないリブートであることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6. ソフトウェアの更新処理を行う情報処理装置の制御方法であって、
    記憶部に記憶された前記ソフトウェアの更新対象にアプリケーションだけが含まれているか否かを判断する判断工程と、
    前記更新対象のソフトウェアを更新する更新工程と、
    前記更新対象のソフトウェアにアプリケーションだけが含まれている場合はリブートせず、前記更新対象のソフトウェアに前記アプリケーション以外のソフトウェアが含まれている場合であって、前記更新対象のソフトウェアにカーネルが含まれているときはハードウェアの初期化を伴うリブートを行い、前記更新対象のソフトウェアに前記カーネルが含まれないときは前記ハードウェアの初期化を伴わないリブートを行うリブート工程とを含む
    ことを特徴とする制御方法。
  7. 請求項6に記載の制御方法をコンピュータにより実行させることを特徴とするコンピュータプログラム。
JP2012138172A 2012-06-19 2012-06-19 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム Active JP5932511B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012138172A JP5932511B2 (ja) 2012-06-19 2012-06-19 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム
US13/912,938 US20130339939A1 (en) 2012-06-19 2013-06-07 Information processing apparatus, control method thereof, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012138172A JP5932511B2 (ja) 2012-06-19 2012-06-19 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2014002613A true JP2014002613A (ja) 2014-01-09
JP2014002613A5 JP2014002613A5 (ja) 2015-08-06
JP5932511B2 JP5932511B2 (ja) 2016-06-08

Family

ID=49757193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012138172A Active JP5932511B2 (ja) 2012-06-19 2012-06-19 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US20130339939A1 (ja)
JP (1) JP5932511B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6706278B2 (ja) * 2018-03-27 2020-06-03 キヤノン株式会社 情報処理装置、及び情報処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US20030005037A1 (en) * 2001-06-27 2003-01-02 Gunnar Aija Crash recovery system
JP2006239923A (ja) * 2005-03-01 2006-09-14 Canon Inc プリンタ装置、情報処理装置及び通信機能拡張装置
JP2009006590A (ja) * 2007-06-28 2009-01-15 Fuji Xerox Co Ltd 画像形成装置及び制御基盤
JP2010176517A (ja) * 2009-01-30 2010-08-12 Brother Ind Ltd 情報処理装置及び制御プログラム
JP2011138231A (ja) * 2009-12-25 2011-07-14 Toshiba Tec Corp 電子機器及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537596A (en) * 1993-02-19 1996-07-16 Apple Computer, Inc. Method and apparatus for overriding resource maps in a computer system
US6044461A (en) * 1997-09-16 2000-03-28 International Business Machines Corporation Computer system and method of selectively rebooting the same in response to a system program code update
US6247081B1 (en) * 1998-02-19 2001-06-12 Nortel Networks Limited Method and apparatus for installing drivers without requiring system re-boot
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
US20040093592A1 (en) * 2002-11-13 2004-05-13 Rao Bindu Rama Firmware update in electronic devices employing SIM card for saving metadata information
US7149889B2 (en) * 2002-12-12 2006-12-12 Scientific-Atlanta, Inc. Proactive reboot
US8286238B2 (en) * 2006-09-29 2012-10-09 Intel Corporation Method and apparatus for run-time in-memory patching of code from a service processor
CA2717977A1 (en) * 2009-10-20 2011-04-20 Research In Motion Limited Enhanced fast reset in mobile wireless communication devices and associated methods
US8719559B2 (en) * 2010-10-13 2014-05-06 International Business Machines Corporation Memory tagging and preservation during a hot upgrade

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244874A (ja) * 2001-02-15 2002-08-30 Toshiba Corp 情報処理装置およびファームウェア更新方法
US20030005037A1 (en) * 2001-06-27 2003-01-02 Gunnar Aija Crash recovery system
JP2006239923A (ja) * 2005-03-01 2006-09-14 Canon Inc プリンタ装置、情報処理装置及び通信機能拡張装置
JP2009006590A (ja) * 2007-06-28 2009-01-15 Fuji Xerox Co Ltd 画像形成装置及び制御基盤
JP2010176517A (ja) * 2009-01-30 2010-08-12 Brother Ind Ltd 情報処理装置及び制御プログラム
JP2011138231A (ja) * 2009-12-25 2011-07-14 Toshiba Tec Corp 電子機器及びプログラム

Also Published As

Publication number Publication date
US20130339939A1 (en) 2013-12-19
JP5932511B2 (ja) 2016-06-08

Similar Documents

Publication Publication Date Title
JP5383516B2 (ja) 画像形成装置及びそのファームウェア更新方法、並びにプログラム
JP4732248B2 (ja) 画像処理装置およびその制御方法
US8922805B2 (en) Image processing apparatus having updatable firmware, method for controlling image processing apparatus, and program
US20090219569A1 (en) Information processing apparatus, information processing system, and information processing method
JP5943681B2 (ja) 情報処理装置、情報処理装置のファームウエア更新方法及びプログラム
JP2006293882A (ja) 画像処理装置、制御プログラムの更新方法、コンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2006201932A (ja) コンピュータ起動装置、及びコンピュータ起動方法、及びコンピュータ起動プログラム
JP2007038580A (ja) コンピュータの退避・復帰高速化手法
US9336463B2 (en) Image forming apparatus capable of changing partitions of storage unit, and control method and storage medium therefor
JP5932511B2 (ja) 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム
JP2006252094A (ja) 画像処理装置
JP2004086860A (ja) 画像形成装置及びその制御方法
US10447886B2 (en) Image processing apparatus for updating a non-volatile memory and method controlling image processing apparatus
JP2013250911A (ja) 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム
JP2011039847A (ja) 情報処理装置及びその制御方法
JP2001022690A (ja) 装置間のデータ通信方法及びそのシステム
JP2012190199A (ja) 画像形成装置
US20230300268A1 (en) Information processing apparatus, image forming apparatus, and method of installing an application program therefor
JP2002366362A (ja) 電子機器、および電子機器の制御方法
JP6150048B2 (ja) 画像形成システムおよび画像形成システムの診断方法
JP7424457B2 (ja) 画像形成装置及びプログラム
JP5812830B2 (ja) 情報処理装置、その制御方法、および制御プログラム
JP2009265980A (ja) 情報処理装置
JP2014178741A (ja) 画像形成装置及びその制御方法、並びにプログラム
JP6953828B2 (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160323

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R151 Written notification of patent or utility model registration

Ref document number: 5932511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151