互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置であって、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新手段と、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定手段と、前記判定手段によって前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御手段とを有することを特徴とする情報処理装置。前記モジュールの各々について前記ソフトウェアが更新中であるか否かを示すステータスが記録されたモジュール状態テーブルを有し、前記判定手段は、前記ジョブで用いるモジュールで前記ソフトウェアの更新が行なわれているか否かについて前記モジュール状態テーブルを参照して判定することを特徴とする請求項1に記載の情報処理装置。前記制御手段は、実行を待機させたジョブを予約ジョブとして、前記判定手段によって前記予約ジョブで用いるモジュールにおいて前記ソフトウェアの更新が終了したと判定されると、前記予約ジョブを実行することを特徴とする請求項1又は2に記載の情報処理装置。前記ジョブにおけるジョブ設定に関連付けてモジュールが規定されたモジュール関連付けテーブルを備え、前記判定手段は、前記ジョブに備えられたジョブ設定に応じて前記モジュール関連付けテーブルを参照して、当該ジョブで用いるモジュールを判定することを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。前記判定手段によって前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、ユーザに当該ジョブが待機となる旨の報知を行う報知手段を有することを特徴とする請求項1~4のいずれか1項に記載の情報処理装置。前記報知に応じてユーザがキャンセルの旨を入力すると、前記制御手段は前記ジョブをキャンセルすることを特徴とする請求項5に記載の情報処理装置。互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置の制御方法であって、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを有することを特徴とする制御方法。互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置で用いられる制御プログラムであって、前記情報処理装置に備えられたコンピュータに、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを実行させることを特徴とする制御プログラム。ところが、上述の特許文献1では、更新すべきソフトウェアパーツがある場合において、その更新と予約画像処理ジョブとをスケジューリングしているだけであって、例えば、ソフトウェアパーツの更新中にプリント処理要求コマンドを受信した場合には処理を行うことが困難となってしまう。つまり、特許文献1に記載の画像形成装置では、ソフトウェアパーツを更新している際に、当該ソフトウェアパーツを用いるプリント処理要求などのジョブを受信しても、当該ジョブを実行することができず、このジョブはキャンセルせざるを得ない。よって、ユーザは再度ジョブを投入しなければならず、ユーザにとっては使い勝手が極めて悪い。同様に、特許文献2においても、画像処理ジョブの実行中にファームウェアをダウンロードすべきタイミングが到来した際の処理を行っているのみで、ファームウェアのダウンロード中にプリント処理要求コマンドを受けた際には処理を行うことが困難となってしまう。従って、特許文献2に記載の画像形成装置においても、ファームウェアのダウンロード中にプリント処理要求などのジョブを受信しても、当該ジョブを実行することができず、このジョブはキャンセルせざるを得ない。よって、ユーザは再度ジョブを投入しなければならず、ユーザにとっては使い勝手が極めて悪い。よって、本発明の目的は、ソフトウェアパーツプログラムを更新している際に、ジョブ処理要求を受信した場合においても、当該ジョブがキャンセルされることがなく、ユーザにとって利便性の向上した情報処理装置、その制御方法、および制御プログラムを提供することにある。上記の目的を達成するため、本発明による情報処理装置は、互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置であって、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新手段と、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定手段と、前記判定手段によって前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御手段とを有することを特徴とする。本発明による制御方法は、互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置の制御方法であって、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを有することを特徴とする。本発明による制御プログラムは、互いに独立して動作する複数のモジュールと、前記モジュールの各々に備えられ当該モジュールで動作するソフトウェアが格納されたモジュール記憶手段とを有し、前記複数のモジュールを選択的に用いてジョブを実行する情報処理装置で用いられる制御プログラムであって、前記情報処理装置に備えられたコンピュータに、前記モジュール記憶手段に格納された前記ソフトウェアを更新する更新ステップと、前記モジュールのいずれかで前記ソフトウェアの更新が行われている際、前記ジョブを受け付けると、当該ジョブで用いるモジュールが前記ソフトウェアの更新中であるか否かを判定する判定ステップと、前記判定ステップで前記ジョブで用いるモジュールが前記ソフトウェアの更新中であると判定されると、前記ソフトウェアの更新が終了するまで、前記ジョブの実行を待機させる制御ステップとを実行させることを特徴とする。本発明よれば、ソフトウェアが更新中であるモジュールを用いるジョブを受けても、当該ジョブをキャンセルすることなく待機させるようにしたので、ユーザにとって利便性が向上する。以下、本発明の実施の形態による情報処理装置の一例について図面を参照して説明する。図1は、本発明の実施の形態による情報処理装置の一つである画像形成装置の一例についてその構成を概略的に示す断面図である。図1において、図示の画像形成装置は、所謂カラー複合機であり、画像形成装置本体100、画像読取装置140、および後処理装置160を備えている。いま、図示の画像形成装置を用いてコピーを行おうとする際には、読み取りガラス142上に原稿が配置される。そして、スキャナーユニット143によって原稿上の画像が光学的に読み取られて、光学像として光電変換部例えば、CCD144に与えられる。光電変換部114は光学像を電気信号画像信号に変換する。そして、この電気信号は制御装置図示せずに与えられて、ここで、所定の処理が施されて、画像データとされる。画像形成装置本体100は、イエローYプロセスユニット101y、マゼンダMプロセスユニット101m、シアンCプロセスユニット101c、およびブラックKプロセスユニット101kを備えている。そして、これらプロセスユニットの各々は感光ドラム、現像器、および帯電ローラなどを有している。ここで、Kプロセスユニット101kに注目して、Kプロセスユニット101kには感光ドラム102kが収納されている。この感光ドラム102kはドラムモータ図示せずによって回転駆動される。感光ドラム102kの表面は帯電ローラ103kによって一様に帯電される。レーザスキャナユニット104kは、画像データに応じて変調されたレーザ光を、ポリゴンミラー回転体図示せずによって感光ドラム102kをその長手方向に走査する。レーザ光の走査によって、感光ドラム102kの表面には画像データに応じた静電潜像が形成される。現像器105kには、例えば、Kトナーおよびキャリアを有する二成分現像剤が収納されている。この現像器105kには、トナーが充填されたトナーボトル106kが連結され、トナーボトル106kからKトナーが現像器105kに供給される。現像器105kは感光ドラム102k上の静電潜像をKトナーで現像してKトナー像とする。Kプロセスユニット101kには、補助帯電ブラシ109kが備えられており、中間転写ベルト中間転写体108にKトナー像を転写した際に感光ドラム102kに残留する転写残トナーを一様に帯電させる。そして、この転写残トナーは感光ドラム102kから除去されて回収される。なお、Yプロセスユニット101y、Mプロセスユニット101m、Cプロセスユニット101cはKプロセスユニット101kと同様の構成を有している。Yプロセスユニット101y、Mプロセスユニット101m、Cプロセスユニット101c、およびKプロセスユニット101kに中間転写ベルト108を介してそれぞれ一次転写ローラ107y、107m、107c、および107kが対向している。そして、一次転写107y、107m、107c、および107kによってYプロセスユニット101y、Mプロセスユニット101m、Cプロセスユニット101c、およびKプロセスユニット101kから順次Yトナー像、Mトナー像、Cトナー像、およびKトナー像が中間転写ベルト108に転写されて重ね合わされる。これによって、中間転写ベルト108にはカラートナー像が形成される。中間転写ベルト108上のカラートナー像は、中間転写ベルト108の回転によって二次転写位置に搬送される。一方、用紙カセット給紙カセット又は単にカセットともいう113、125、および126から選択的に給紙ローラ114、127、および128によって用紙が用紙搬送路に搬送される。そして、用紙はレジストローラ115によって斜行を補正された後、二次転写位置に送られる。二次転写位置において、中間転写ベルト108上のカラートナー像は二次転写ローラ110によって用紙に転写される。その後、用紙は定着器に送られて、ここで、定着ローラ117および加圧ローラ118によって用紙上のカラートナー像が熱定着される。なお、トナー濃度補正を行うため、Kプロセスユニット101kの出口近傍にはパターン濃度検知センサ112が配置されている。トナー濃度補正を行う際には、予め定めらたれパターンを有する濃度補正用パターンが中間転写ベルト108上に形成される。そして、濃度検知センサ112によって濃度補正用パターンを検知してその検知結果に応じて濃度補正が行われる。また、中間転写ベルト108に残留した転写残トナーは中間転写体クリーナ111によって回収される。片面印刷の際には、定着器を出た用紙は、排紙フラッパ119によって排紙ローラ120を備える排紙経路に送られる。そして、後処理を行う際には、用紙は後処理フラッパ152によって、バッファパス搬送ローラ151を備えるバッファパスユニット150に搬送されて、ここから後処理装置フィニッシャ160に送られる。後処理装置160は用紙又は用紙束に対して所定の後処理を行った後、フィニッシャトレイ161又は162に用紙又は用紙束を排紙する。後処理を行わない場合には、用紙は後処理フラッパ152によって、排紙トレイ121に排紙される洞内排紙。両面印刷を行う場合には、定着器を出た用紙は排紙フラッパ119によって両面反転フラッパ123を介して両面反転駆動ローラ122に送られる。続いて、両面判定駆動ローラ122によって用紙は逆方向に搬送されて、反転フラッパ123によって、両面再給紙駆動ローラ124を備える両面印刷搬送路に送られる。そして、用紙は再度レジストローラ115に送られて、前述のようにして、裏面側に印刷が行われることになる。なお、モノクロ印刷の際には、Kプロセスユニット101kのみが用いられ、Kプロセスユニット101kから中間転写ベルト108にKトナー像が転写される。図2は、図1に示す画像形成装置の制御系制御部の一例を示すブロック図である。次に、本画像形成装置の制御回路構成について、図2のブロック図を用いて説明する。図示の制御部はメインCPU201を備えており、このメインCPU201は画像形成装置全体の制御を司る。ROM202にはメインCPU201上で動作する制御プログラムなどが格納され、RAM203はメインCPU201が一時的にデータなどを記憶するために用いられる。バックアップRAM204は画像形成装置が動作する際に設定された設定情報などが記憶される。バックアップRAM204にはバックアップバッテリ図示せずによって電源が供給され、画像形成装置のメイン電源を断としても、バックアップRAM204に記憶された設定情報は保持される。モータドライバ205は、図1に示す給紙ローラ114およびレジストローラ115などの回転制御を行う。メインCPU201にはシリアルインターフェイスSCI206が備えられており、SCI206は8CH8チャンネルの信号線によってメインCPU201に接続された各種モジュールと通信を行う。各チャンネルは2本の信号線を備え、これによって全二重通信が行われる。そして、メインCPU201は後述するモジュールを制御する。ネットワークインターフェイスI/F207は画像データを供給するプリンタコントローラシステムコントローラ:図示せずと接続される。レーザドライバ208は、図1に示すレーザスキャナユニット104y、104m、104c、および104kを制御する。YMCドラムモータ/高圧ドライバ209はYプロセスユニット101y、Mプロセスユニット101m、およびCプロセスユニット101cの各々に備えられた感光ドラム駆動モータ図示せずを駆動制御するとともに、帯電、現像、および一次転写に係る電圧制御を行う。Kドラム/高圧ITBモータ二次転写高圧ドライバ210はKプロセスユニット101kに備えられた感光ドラム駆動モータ図示せずを駆動制御するとともに、帯電、現像、および一次転写に係る電圧制御を行う。さらに、Kドラム/高圧ITBモータ二次転写高圧ドライバ210は中間転写体108の駆動モータを駆動制御するとともに、二次転写ローラ110に係る二次転写電圧制御を行う。両面反転ユニットドライバ211は。両面反転駆動ローラ122および両面再給紙駆動ローラ124を駆動制御するとともに、両面反転フラッパ123の回動制御を行う。オプションカセットドライバ212は増設給紙カセットである用紙カセット125および126において給紙ローラ127および128を駆動制御する。バッファパス/フィニッシャドライバ213はバッファパスユニット150およびフィニッシャ160を制御する。つまり、バッファパス/フィニッシャドライバ213はバッファパス搬送ローラ151を駆動制御するとともに、フィニッシャ上トレイ161およびフィニッシャ下トレイ162の昇降制御を行う。図3は、図2に示すYMCドラムモータ/高圧ドライバ209、Kドラム/高圧ITBモータ二次転写高圧ドライバ210、両面/反転ユニットドライバ211、オプションカセットドライバ212、およびバッファパス/フィニッシャドライバ213について説明するためのブロック図である。図2で説明したCPU201、ROM202、RAM203、およびバックアップRAM204はメインエンジンコントローラボード201aに搭載されている。YMCドラムモータ/高圧ドライバ209は、サブCPU301、フラッシュROM302、およびSRAM303を備えている。フラッシュROM302にはサブCPU301上で動作する制御プログラムが格納されている。SRAM303は、例えば、サブCPU301の作業領域として用いられる。そして、サブCPU301はCPU201の制御下でYMCドラムモータ304およびYMC高圧ユニット305を制御する。Kドラム/高圧ITBモータ二次転写高圧ドライバ210は、サブCPU311、フラッシュROM312、およびSRAM313を備えている。フラッシュROM312にはサブCPU311上で動作する制御プログラムが格納されている。SRAM313は、サブCPU311の作業領域として用いられる。そして、サブCPU311は、CPU201の制御下でKドラムITBモータ314、K高圧ユニット315、および二次転写高圧ユニット316を制御する。両面/反転ユニットドライバ211は、サブCPU321、フラッシュROM322、およびSRAM323を備えている。フラッシュROM322にはサブCPU321上で動作する制御プログラムが格納されている。SRAM323は、サブCPU321の作業領域として用いられる。そして、サブCPU321はCPU201の制御下で両面反転モータ324および両面再給紙モータ325を制御する。オプションカセットドライバ212は、サブCPU331、フラッシュROM332、およびSRAM333を備えている。フラッシュROM332にはサブCPU331上で動作する制御プログラムが格納されている。SRAM333は、サブCPU331の作業領域として用いられる。そして、サブCPU331は、CPU201の制御下で増設カセット給紙モータ334および335を制御する。バッファパス/フィニッシャドライバ213は、サブCPU341、フラッシュROM342、およびSRAM343を備えている。フラッシュROM342にはサブCPU341上で動作する制御プログラムが格納されている。SRAM343は、サブCPU341の作業領域として用いられる。そして、サブCPU341は、CPU201の制御下でバッファパスモータ344、フィニッシャ上トレイ161およびフィニッシャ下トレイ162を駆動する昇降モータ345、およびフィニッシャ160が備えるステイプル機構346を制御する。図4は、図1に示す画像形成装置に備えられたユーザ操作部401の一例を示す図である。ユーザ操作部401は電源スイッチ404を備えており、電源スイッチ404の操作によって画像形成装置の主電源がオン又はオフされる。節電ボタン403の操作によって画像形成装置は所定の節電モードに移行する。電源LED404は主電源がオンの場合に、例えば、緑色に点灯する。また、電源LED404はユーザの操作で選択された機能が動作中であると緑色に点滅する。さらに、電源LED404は画像形成装置においてエラーなどが発生した際には赤色に点灯して、ユーザに異常を報知する。液晶表示部LCD501は、例えば、タッチパネル式のTFTドットマトリクス型の液晶パネルによって構成される。そして、LCD501において画像形成装置における各モードの操作表示が行われ、各モードの切り替えが行われる。テンキー406は、例えば、コピー枚数およびFAX送信先などの数字を入力する際に用いられる。リセットキー407は入力した数値をクリアする際に用いられ、さらに現在選択中のモードにおいて初期状態に戻る際に用いられる。スタートキー408は、液晶表示部501又はテンキー406による入力操作に応じた動作を開始するためのキーである。ストップキー409は、スタートキー408によって開始された動作を、動作途中でキャンセルするためのキーである。ヘルプキー410はユーザの操作によって表示画面に対する説明文章を表示するためのキーである。ユーザモードボタン411はユーザが予めユーザ設定を行うためのキーである。図5は、図4に示すユーザ操作部401に表示された表示画面の一例を示す図である。図5に示す表示画面はLCD501に表示される。ここでは、ユーザによってコピーモードが詮索された際の表示画面つまり、コピーモード画面が示されている。コピーモード画面は、ファンクション選択ボタン画面501、操作パネル画面502、およびステータス表示画面511を有する。ファンクション選択ボタン画面502において、ユーザが所望のファンクションキーをタッチすると、CPU201は当該タッチされたキーに応じた動作つまり、機能に切り替える。機能が切り替わると、CPU201は当該切り替わった機能を表示する表示画面をLCD501に表示する。図示の例では、コピーモードであるから、COPYが点灯しているが、ユーザが、例えば、FAXをタッチすると、FAX動作モード画面がLCD501に表示される。この際には、ファンクション選択ボタン画面502において、FAXが点灯する。操作パネル画面503には、コピーが実行可能であるか否かを示す情報が表示され、さらに、用紙サイズの設定などのモード設定およびコピー枚数などが表示される。コピー枚数はテンキー406からの入力によって設定され、操作パネル画面503に表示される。さらに、操作パネル画面503には、色モード設定504、倍率設定505、片面両面設定506、用紙選択設定507、および排紙トレイ設定508が表示される。そして、ユーザはタッチ操作によって色モード、倍率、片面両面設定、用紙選択、および排紙トレイの設定を行う。つまり、色モード設定504では白黒モード又はカラーモードのいずれかを選択することができる。倍率設定505では、縮小、等倍、又は拡大の設定を行うことができ、選択された倍率は、前述のように、操作パネル画面503に表示される。片面両面設定506では、片面コピー又は両面コピーのいずれかを選択することができる。用紙選択設定507ではいずれの給紙カセットに収納された用紙を用いるかを選択することができる。排紙トレイ設定508では、プリント後の用紙をいずれのトレイに排紙するかを設定する。ステータス表示画面511には、画像形成装置の状態が変化した際に、その状態変化の旨がメッセージとして表示される。図6は、図3に示すメインCPU201とサブCPU301との接続形態の一例を示すブロック図である。図6においては、メインCPU201とサブCPU301との接続形態について説明するが、メインCPU301とサブCPU311~341との接続形態についてもサブCPU301と同様である。メインCPU201はリセット信号線RESET601、ブートモード信号線BOOTMODE602、送信信号線TxD信号線603、および受信信号線RxD信号線604によってサブCPU301に接続されている。RESET601は、メインCPU201が出力側となって、サブCPU301が入力側となって、メインCPU201によって所定のタイミングでサブCPU301をリセットする際に用いられる。そして、RESET601は動作時にHハイレベルとなり、リセット時にはLローレベルとなる。BOOTMODE602は、メインCPU201が出力側、サブCPU301が入力側となって、サブCPU301がリセットして再起動した後の動作モードを決定するために用いられる。BOOTMODE602は通常時にHレベルとなり、ファームウェア更新モード時にはLレベルとなる。TxD603は、メインCPU201からサブCPU301にシリアル通信信号を送信するためのものである。TxD603においては、TTLレベルの調歩同期で8ビットずつ情報が送信される。RxD604は、サブCPU301からメインCPU201にシリアル通信信号を送信するためのものである。RxD604においても同様にTTLレベルの調歩同期で8ビットずつ情報が送信される。続いて、図3に示すサブCPU301~341におけるファームウェアの更新処理について説明する。ここでは、サブCPU301におけるファームウェアの更新処理を例に挙げて説明するが、サブCPU311~341におけるファームウェアの更新処理についても同様である。サブCPU301の制御プログラムが格納されたフラッシュROM302は、例えば、32kバイトの容量を備えている。そして、このフラッシュROM302は所定の手順に応じてアクセスを行って書き込み処理を行うことができる。サブCPU301に係る制御プログラムの更新中においては、更新対象であるフラッシュROM302にプログラムコードつまり、制御プログラムが存在すると、書き換えプログラムが動作することができない。よって、まず、サブCPU301のワーク領域であるSRAM303に書き換えプログラムを保存して、書き換えプログラムをサブCPU301で動作させるためのプログラムモードに移行するつまり、モード切り替え処理を行う必要がある。図7は、図6に示すメインCPU201とサブCPU301とにおいて行われるモード切り替え処理を説明するためのフローチャートである。ファームウェア更新処理を開始すると、メインCPU201はファームウェア更新対象であるサブCPU301についてRESET601をオンLレベルして、サブCPU301をリセットするステップS702。そして、メインCPU201はBOOTMODE602をアクティブLレベルに設定する。つまり、メインCPU201はBOOTMODE602をプログラムモードに設定するステップS703。サブCPU301は、BOOTMODE602がアクティブの状態でリセットを解除が行われるとステップS704、フラッシュROM302のプログラムモードで起動される。プログラムモードにおいては、サブCPU301はTxD603からの通信待ちとなってフラッシュROM302の書き換えプログラムをワークメモリであるSRAM303に展開する。以後、メインCPU201とサブCPU301との通信およびフラッシュROM302の書き換え制御は、SRAM303上に展開されたプログラムに応じて行われる。後述するようにして、サブCPU301において、フラッシュROM302の書き換え書き込みが行われた後ステップS705、メインCPU201はサブCPU301を再度リセットするステップS706。そして、メインCPU201はBOOTMODE602をインアクティブに設定する。つまり、メインCPU201はBOOTMODE602を通常モードに設定するステップS707。その後、メインCPU201はサブCPU302のリセットを解除してステップS708、ファームウェア更新処理を終了する。図8は、プログラムモードの際に図6に示すメインCPU201とサブCPU301との間で行われる通信について説明するためのフローチャートである。フラッシュROM302の書き換えを行う際、まず、メインCPU201は書き換えを行うためのネゴシエーション情報ファーム更新リクエストをサブCPU301に送信するステップS802。続いて、メインCPU201はファーム更新リクエストに対する応答書き換え可能応答をサブCPU301から受信したか否かを判定するステップ803。書き換え可能応答を受信しないとステップS803において、NO、メインCPU201は待機する。一方、書き換え可能応答を受信するとステップS803において、YES、メインCPU201はフラッシュROM302を直接書き換えることができないため、書き換えに先立ってサブCPU301に対してフラッシュメモリ消去要求を発行するステップ804。続いて、メインCPU201は、フラッシュROM302の消去を行ったことを示す応答フラッシュメモリ消去応答をサブCPU301から受信したか否かを判定するステップS805。フラッシュメモリ消去応答を受信しないとステップS805において、NO、メインCPU201は待機する。フラッシュメモリ消去要求を受けると、サブCPU301はフラッシュROM302の全ブロックの消去を行う。そして、全ブロックの消去が完了すると、サブCPU302はフラッシュメモリ消去応答をメインCPU201に返信するステップ804。フラッシュメモリ消去応答を受信するとステップS805において、YES、メインCPU201は内蔵するブロックカウンタにn=0を設定するステップS806。ここで、フラッシュROM302のブロック数は256であるとする。つまり、フラッシュROM302には第0~第255のブロックがあるものとする。続いて、メインCPU201はフラッシュROM301の第0のブロックに書き込むファームウェアイメージを128バイトずつに分割してパケットを生成する。そして、メインCPU201は先頭のパケットファームウェア更新データをサブCPU301に送信するステップ807。パケットには先頭マーカー又は終端マーカーがヘッダ部に設けられており、先頭のパケットは先頭マーカーで識別される。また、最後のパケットは終端マーカーで識別が可能である。パケットを送信した後、メインCPU201は、サブCPU301からブロックへの書込みが完了したことを示すブロック書込み応答を受信したか否かを判定するステップS808。ブロック書込み応答を受信しないとステップS808において、NO、メインCPU201は待機する。サブCPU302はパケットを受信すると、ファーム更新データをフラッシュROM302に書き込む。1つのブロックの書き込みが完了すると、サブCPU301はブロック書き込み完了応答をメインCPU201に返信する。ブロック書き込み応答を受信するとステップS808において、YES、メインCPU201はブロックカウンタをインクリメント1するステップS809。そして、メインCPU201はブロックカウンタが256未満であるか否かを判定するステップS810。ブロックカウンタが256未満であるとステップS810において、YES、メインCPU201はステップS807の処理に戻って、次のブロックに対するファーム更新データを送信する。このようにして、フラッシュROM302に対する書き込みはブロックごとに繰り返されて、サブCPU301は合計256個のパケットを受信して、フラッシュROM302の全てのブロックについてファームウェアの更新が終了する。ブロックカウンタが256となるとステップS810において、NO、メインCPU201はサブCPU301にチェックサムの取得要求を送信するステップ811。このチェックサムは、例えば、フラッシュROM302の全領域について奇数アドレスおよび偶数アドレスの値を総計した結果の下位16ビットを用いる。メインCPU201はサブCPU301からチェックサム値を受信したか否かを判定するステップS812。チェックサム値を受信しないとステップS812において、NO、メインCPU201は待機する。サブCPU301はチェックサム取得要求に応答して、メインCPU201に対して奇数アドレスおよび偶数アドレスのチェックサム値を返信する。メインCPU201は、送信したファームウェアイメージのチェックサム値を保持チェックサム値として保持している。チェックサム値を受信チェックサム値として受信するとステップ812において、YES、サブCPUから受信チェックサム値と保持チェックサム値とが一致するか否かを判定するステップ813。受信チェックサム値と保持チェックサム値とが一致しないとステップS813において、NO、メインCPU201はフラッシュROM302に書き込まれたファームウェアが送信したファームウェアイメージと一致していないとして、ステップS806の処理に戻る。そして、メインCPU201はリトライ制御によって先頭パケットから再度送信する。受信チェックサム値と保持チェックサム値とが一致するとステップS813において、YES、メインCPU201はフラッシュROM302の更新は正常に終了したとして、ファームウェア更新を終了する。ここで、プログラムモードにおけるメインCPU201とサブCPU301との通信について図9に示すシーケンス図を用いて説明する。図9は、プログラムモードの際に図6に示すメインCPU201とサブCPU301との間で行われる通信について説明するためのシーケンス図である。まず、メインCPU201がフラッシュ更新リクエストFlashUpdateReqをサブCPU301に送信するS901。このフラッシュ更新リクエストに応答して、サブCPU301はメインCPU201にフラッシュ書き換え可能応答FlashUpdateAckOKを返すS902。次に、メインCPU201はサブCPU301にフラッシュ消去要求FlashEraseReqを送信するS903。フラッシュ消去要求に応答して、サブCPU301はフラッシュROM302の全ブロックの消去を行い、消去が完了すると、サブCPU302はメインCPU201にフラッシュ消去応答FlashEraseAckOKを返すS904。続いて、メインCPU201は、ファームウェアイメージを先頭ブロックであるID=0から順番に送信するFlashDataSendID=0Top:S905。サブCPU301は該当ブロックに対するファームウェアイメージの書き込みが完了すると、メインCPU201にブロック書き込み完了応答FlashDataReceivedID=0OKを返すS906。さらに、メインCPU201はブロックカウンタを1インクリメントして、ID=1のブロックにファームウェアイメージを送信するFlashDataSendID=1:S907。サブCPU301は当該ブロックに対する書き込みが完了すると、メインCPU201にブロック書き込み完了応答FlashDataReceivedID=1を返すS908。この処理を繰り返して、メインCPU201はID=255の最終ブロックに対するファームウェアイメージを送信するFlashDataSendID=255:S909。そして、サブCPU301は当該ブロックに対する書き込みが完了すると、メインCPU201にブロック書き込み完了応答FlashDataReceivedID=255OKを返すS910。最後に、メインCPU201はサブCPU301に対してチェックサムの取得要求FlashCheckSumReqを送信するS911。これに応答して、サブCPU301はチェックサムを求めて、メインCPU201にチェックサム値を返信するFlashCheckSumReport:S912。図10は、図6に示すメインCPU201とサブCPU301との間でファームウェア更新を行った際の信号波形を説明するためのタイムチャートである。前述したように、メインCPU201はRESET601をLレベルとした後S702、BOOTMODE602をLレベルとするS703。その後、メインCPU201はRESET601をHレベルとしてS704、TxD603でファーム更新リクエストを送信するS802。サブCPU301からRxD604で応答を受信するとS803、メインCPU201はTxD603でフラッシュメモリ消去要求を送信するS804。サブCPU301からRxD604で応答を受信するとS805、メインCPU201は前述のようにして、TXD603でファーム更新データを送信するS807。サブCPU301からRxD604で応答を受信するとS808、全てのブロックについて更新が終了していれば、メインCPU201はチェックサムを行うチェックサムについては図10には示されていない。その後、メインCPU201はRESET601をLレベルとした後S706、BOOTMODE602をHレベルとするS707。そして、メインCPU201はRESET601をHレベルとする。このように、ファームウェアの更新を完了した後、メインCPU201は一旦サブCPU301をリセットした後、BOOTMODE602をインアクティブに設定する。そして、メインCPU201はサブCPU301のリセット解除を行う。前述のように、メインCPU201にはサブCPU301、311、321、331、および341が互いに独立したシリアル信号線によって接続されている。このため、メインCPU201はサブCPU301、311、321、331、および341の各々に対して同時に通信を行うことができる。従って、サブCPU301、311、321、331、および341のうちいずれかにおいてファームウェアが更新中であっても、他のサブCPUにおいては動作を継続することができる。ここでは、いずれのサブCPUが司る機能がファームウェアの更新中のために使用不能であるか知る必要があるため、メインCPU201はRAM203にサブCPU状態テーブルを保持する。図11は、図3に示すRAM203に保持されるサブCPU状態テーブルの一例を示す図である。図11において、サブCPU状態テーブルモジュール状態テーブル1101にはモジュールModule欄、状態Status欄、および残量Remain欄が備えられている。Module欄には、サブCPU301~341が記載される。図示の例では、サブCPU301、311、331、321、および341に対応して、そのStatusがそれぞれファームウェア更新中Updating、動作中Active、動作中、ファームウェア更新中、および動作中となっている。そして、ファームウェア更新中である場合には、Remain欄に残り更新サイズ残量がバイトで示される。ここで、サブCPU状態テーブルが図11に示す状態である場合に、スタートキー408が押し下げられた際のメインCPU201の動作について説明する。図12は、図3に示すいずれかのサブCPUにおいてファームウェアの更新中である場合にスタートキー408が押し下げられた際のメインCPU201の動作を説明するためのフローチャートである。ここでは、サブCPU状態テーブルは図11に示す状態であるとする。また、ジョブとしてコピーが行われるものとする。そして、図5に示すように、ジョブ設定において、カラー、等倍、片面、カセット113用紙サイズA4、およびトレイ121が選択されたものとする。スタートキー408が押し下げられると、メインCPU201は当該ジョブを受け付けるステップS1501。続いて、メインCPU201は受け付けたジョブのモード解析つまり、ジョブ設定を行って、当該解析結果に応じて使用するモジュールのサブCPUを判定するステップS1502。例えば、メインCPU201はジョブを受付けた際、ユーザ操作部401図4からジョブモード情報を受信する。図13は、図3に示すメインCPU201がユーザ操作部401から受けるジョブモード情報の一例を示す図である。図13において、ジョブモード情報は、給紙段ID、カラー/モノクロ、片面/両面、排紙先ID、および後処理モードなどのモード情報を有している。図示の例では、給紙段ID=カセット113、カラー/モノクロ=カラー、片面/両面=片面、排紙先ID=トレイ121、そして、後処理モード=ノンソートとなっている。メインCPU201はジョブモード情報に応じて、予め定められたサブCPU関連付けテーブルモジュール関連付けテーブルを参照して、受け付けたジョブがいずれのサブCPUを使用するかについて判定する。このサブCPU関連付けテーブルは、例えば、ROM202に格納される。図14は、図3に示すROM202に格納されたサブCPU関連付けテーブルの一例を示す図である。図示のサブCPU関連付けテーブルは、ジョブモード情報とサブCPUとを関連付けるためのテーブルである。サブCPU関連付けテーブルには、給紙段ID、カラー/モノクロ、片面/両面、および排紙先IDの項目が規定され、これら項目毎に選択肢が設定されている。そして、選択肢毎に使用するサブCPU、つまり、ドライバが設定されている。このサブCPU関連付けテーブルは、予め製品構成のラインナップに応じてROM202に記録するようにする。なお、画像形成装置立上げの際におけるモジュール接続情報に応じてメインCPU201がサブCPU関連付けテーブルを生成して、このサブCPU関連付けテーブルをRAM203に記録するようにしてもよい。図15は、図12に示す使用サブCPU判定処理ステップS1502の一例を詳細に説明するためのフローチャートである。使用サブCPU判定処理を開始すると、まず、メインCPU201はジョブモード情報において給紙段IDに用紙カセット113が設定されているか否かを確認するステップS1510。カセット113が設定されていない場合ステップS1510において、NO、メインCPU201はサブCPU関連付けテーブルを参照して、増設給紙カセット125および126を制御するオプションカセットドライバのサブCPU331が使用されると判定するステップS1511。続いて、メインCPU201はジョブモード情報においてカラー/モノクロがカラーモードに設定されているか否かを確認するステップS1512。なお、カセット113が設定されているとステップS1510において、YES、処理はステップS1512に進む。カラーモードであればステップS1512において、YES、メインCPU201はサブCPU関連付けテーブルを参照して、YMCドラムモータ304およびYMC高圧ユニット305を制御するYMCドラムモータ/高圧ドライバのサブCPU301が使用されると判定するステップS1513。続いて、メインCPU201はサブCPU関連付けテーブルを参照して、KドラムITBモータ314、K高圧ユニット315、および二次転写高圧ユニット316を制御するKドラム/高圧ITBモータ二次転写高圧ドライバのサブCPU311が使用されると判定するステップS1514なお、カラーモードでなくてもステップS1512において、NO、Kドラム/高圧ITBモータ二次転写高圧ドライバのサブCPU311が使用されるので、処理はステップS1514に進む。次に、メインCPU201は、ジョブモード情報において片面/両面が片面モードに設定されているか否かを確認するステップS1515。両面モードであるとステップS1515において、NO、メインCPU201はサブCPU関連付けテーブルを参照して、両面反転駆動ローラ122、両面再給紙駆動ローラ124、および両面反転フラッパ123を制御する両面/反転ユニットドライバのサブCPU321を使用すると判定するステップS1516。次に、メインCPU201は、ジョブモード情報において排紙先IDがトレイ121に設定されているか否かを確認するステップS1517。排紙先IDがトレイ121でない場合ステップS1517において、NO、メインCPU201は用紙がバッファパスユニット150を介してフィニッシャ上トレイ161又はフィニッシャ下トレイ162に排出されると判定する。これによって、メインCPU201はサブCPU関連付けテーブルを参照して、バッファパスユニット150を制御するバッファパス/フィニッシャドライバのサブCPU341を使用すると判定するステップS1518。そして、メインCPU201は使用サブCPU判定処理を終了する。一方、排紙先IDがトレイ121であるとステップS1517において、YES、メインCPU201は使用サブCPU判定処理を終了する。なお、画像形成装置に備えられたモジュールが多いほど、サブCPU関連付けテーブルは細分化され、図15で説明した使用サブCPU判定処理におけるステップ数は増加する。再び、図12を参照して、上述のようにして、使用サブCPU判定処理が終了すると、続いて、メインCPU201はサブCPU状態テーブルを参照して、使用すると判定されたサブCPU使用サブCPUについてファームウェアの更新中ダウンロード中であるか否かを判定するステップS1503。ファームウェアのダウンロード中でない場合ステップS1503において、NO、メインCPU201は使用すると判定した全てのサブCPUについて更新中であるかのサーチが完了したかを確認するステップS1504。使用すると判定した全てのサブCPUについて更新中であるかのサーチが完了していないとステップS1504において、NO、メインCPU201は他に使用すると判定したサブCPUに移行してステップS1505、ステップS1503の処理を行う。一方、使用すると判定した全てのサブCPUについて更新中であるかのサーチが完了するとステップS1504において、YES、メインCPU201は受け付けたジョブを実行してステップS1506、ジョブ処理を終了する。使用すると判定したサブCPUがファームウェアのダウンロード中であるとステップS1503において、YES、メインCPU201は受け付けたジョブを予約ジョブとしてステップS1507、ジョブ処理を終了する。このように、使用すると判定されたサブCPUのいずれか1つがファームウェアをダウンロード中であれば、メインCPU201は受け付けたジョブを実行を待機する。そして、メインCPU201は受け付けたジョブに係るジョブモード情報をRAM203に格納する。図16は、図5に示すジョブモードの設定ジョブ設定が行われた際の使用サブCPU判定処理における判定結果を示す図である。図5に示すジョブ設定を行うと、図16にグレーアウトして示すように、Kドラム/高圧ITBモータ二次転写高圧ドライバ、YMCドラムモータ/高圧ドライバ、およびバッファパス/フィニッシャドライバに係るサブCPUが使用サブCPUとされる。そして、図11に示す例では、サブCPU301および321がファームウェアの更新中であるので、メインCPU201は受け付けたジョブを待機する。つまり、予約ジョブとする。図17は、図12で説明した予約ジョブの実行を説明するためのフローチャートである。前述のように、予約ジョブとされると、当該予約ジョブに係るジョブモード情報はRAM203に格納される。予約ジョブの処理が開始されると、メインCPU201はサブCPUにおけるファームウェアの更新終了を検知したか否かを確認するステップS1530。ここでは、図8に示すステップS812およびS813において、サブCPUからチェックサム値の応答を受けて、チェックサム値が一致すると、メインCPU201は当該サブCPUにおけるファームウェアの更新が終了したとする。ファームウェアの更新終了を検知しないとステップS1530において、NO、メインCPU201は待機する。一方、ファームウェアの更新終了を検知するとステップS1530において、YES、メインCPU201は予約ジョブがあるか否かを確認するステップS1531。ここでは、メインCPU201はRAM203にジョブモード情報が格納されているか否かを確認することになる。予約ジョブが存在しないとステップS1531において、NO、メインCPU201は予約ジョブ処理を終了して、図12に示すステップS1501の処理に戻る。予約ジョブが存在するとステップS1531において、YES、メインCPU201はジョブモード情報に基づいてジョブの再投入を行うステップ1532。そして、メインCPU201は予約ジョブ処理を終了して、図12に示すステップ1501の処理に戻る。図5に示すジョブ設定では、YMCドラムモータ/高圧ドライバのサブCPU301がファームウェアの更新を終了すると、メインCPU201は予約ジョブを再投入することになる。続いて、ジョブ投入の投入後、使用サブCPUがファームウェアの更新中であった際のジョブのキャンセルについて説明する。図18は、図3に示すいずれかのサブCPUにおいてファームウェアの更新中である場合にスタートキーが押し下げられた際のメインCPUの動作の他の例を説明するためのフローチャートである。なお、図3に示す処理と同一の処理については同一の参照符号を付して、説明を省略する。ステップS1503において、使用すると判定したサブCPUがファームウェアのダウンロード中であると、メインCPU210は受け付けたジョブをキャンセルするか否かを判定するステップS1508。ここでは、まず、メインCPU201はダウンロード中である旨の状態通知を行うとともに、ジョブを継続するか否かを決定する画面をユーザ操作部401に表示する。図19は、図18に示すジョブキャンセル判定処理の際にユーザ操作部401に表示されるポップアップウィンドウの一例を示す図である。使用すると判定したサブCPUがファームウェアのダウンロード中であると、メインCPU210は、図19に示すように、操作パネル画面503上にポップアップウィンドウ509に表示する。このポップアップウィンドウ509には、ファームウェアが更新中でありジョブに待機時間が生じる旨の文言とキャンセルするか否かを問う文言が表示される。ユーザがYesボタン510を押し下げると、メインCPU201は受け付けたジョブをキャンセルすると判定する。一方、ユーザNoボタンを押し下げると、メインCPU201は受け付けたジョブをキャンセルしないと判定する。受け付けたジョブをキャンセルしないと判定するとステップS1508において、NO、メインCPU201はステップS1507の処理に進んで、当該受け付けたジョブを予約ジョブとする。受け付けたジョブをキャンセルすると判定するとステップS1508において、YES、メインCPU201は当該受け付けたジョブをキャンセルするステップS1509。そして、メインCPU201はジョブ処理を終了する。以上のように、本発明の実施の形態によれば、ファームウェアのダウンロード中にジョブ処理要求を受信した際に、当該ジョブ処理要求に係るジョブを予約ジョブとして、当該予約ジョブで使用するモジュールにおいてファームウェアのダウンロードが終了すると、当該予約ジョブを実行するようにしたので、ファームウェアのダウンロードに起因してジョブ処理要求がキャンセルされることがない。従って、ユーザは再度ジョブを投入するという手間が省け、ユーザの利便性が向上する。上述の説明から明らかなように、図3に示す例では、メインCPU201およびサブCPU301~341が更新手段として機能する。また、メインCPU201は判定手段および制御手段として機能する。なお、フラッシュROM302~342の各々はモジュール記憶手段として用いられる。また、メインCPU201およびユーザ操作部401は報知手段として機能する。上述の実施の形態では、情報処理装置の一例として、画像形成装置を例に挙げて説明したが、画像形成装置に限らず他の情報処理装置、例えば、画像処理装置においても複数モジュールが互いに独立して動作する構成であれば同様にして本発明を適用することができる。また、上述の実施の形態では、ファームウェアを更新する場合については説明したが、ファームウェアに限らずソフトウェアの更新を行う場合であれば同様にして適用することができる。以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。例えば、上記の実施の形態の機能を制御方法として、この制御方法を情報処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、この制御プログラムを情報処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。この際、制御方法および制御プログラムの各々は、少なくとも更新ステップ、判定ステップ、および制御ステップを有することになる。また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。