"第1のCPUと、第1のRAMと、前記第1のCPUを起動するために前記第1のRAMに書き込まれて実行される第1の通常起動プログラム及び、前記第1のCPUを起動するために前記第1のRAMに書き込まれて実行され、前記第1の通常起動プログラムに比べて前記第1のRAMへの書き込み時間が短い第1の高速起動プログラムが格納可能な第1の不揮発性記憶装置と、前記第1のCPUと同期をとるために前記第1のCPUと互いに初期通信をする第2のCPUと、第2のRAMと、前記第2のCPUを起動するために前記第2のRAMに書き込まれて実行される第2の通常起動プログラム及び、前記第2のCPUを起動するために前記第2のRAMに書き込まれて実行され、前記第2の通常起動プログラムに比べて前記第2のRAMへの書き込み時間が短い第2の高速起動プログラムが格納可能な第2の不揮発性記憶装置と、を備え、前記第1及び第2のCPUが、前記第1の不揮発性記憶装置に格納されている前記第1の通常起動プログラム及び前記第1の高速起動プログラム並びに前記第2の不揮発性記憶装置に格納されている前記第2の通常起動プログラム及び前記第2の高速起動プログラムをそれぞれ書き換える場合、前記第1及び第2の不揮発性記憶装置において、最初に書き換えるプログラムと次に書き換えるプログラムとは前記初期通信が成功可能なプログラムどうしであり、前記第1の通常起動プログラム、前記第1の高速起動プログラム、前記第2の通常起動プログラム及び前記第2の高速起動プログラムのいずれかの書き換えが失敗した段階で、以降の書き換えを中止し、前記第1及び第2のCPUを起動するために、前記第1のCPUが前記第1のRAMに前記第1の高速起動プログラムを書き込み、かつ前記第2のCPUが前記第2のRAMに前記第2の通常起動プログラムを書き込む場合、前記第2のCPUが前記第1のCPUと前記初期通信を開始する前に、前記第1のCPUが前記第2のCPUとの前記初期通信でタイムアウトが発生するように、前記第1の高速起動プログラムには前記初期通信の時間が設定されており、前記第1及び第2のCPUを起動するために、前記第1のCPUが前記第1のRAMに前記第1の通常起動プログラムを書き込み、かつ前記第2のCPUが前記第2のRAMに前記第2の高速起動プログラムを書き込む場合、前記第1のCPUが前記第2のCPUと前記初期通信を開始する前に、前記第2のCPUが前記第1のCPUとの前記初期通信でタイムアウトが発生するように、前記第2の高速起動プログラムには前記初期通信の時間が設定されており、前記第1のRAMに前記第1の高速起動プログラムが書き込まれ、かつ前記第2のRAMに前記第2の通常起動プログラムが書き込まれることによって、前記第1のCPUが前記第2のCPUとの前記初期通信でタイムアウトが発生した場合、前記第1のCPUは前記第2の通常起動プログラムと前記初期通信が成功可能な前記第1の通常起動プログラムを前記第1のRAMに書き込んで前記第2のCPUと前記初期通信をし、前記第1のRAMに前記第1の通常起動プログラムが書き込まれ、かつ前記第2のRAMに前記第2の高速起動プログラムが書き込まれることによって、前記第2のCPUが前記第1のCPUとの前記初期通信でタイムアウトが発生した場合、前記第2のCPUは前記第1の通常起動プログラムと前記初期通信が成功可能な前記第2の通常起動プログラムを前記第2のRAMに書き込んで前記第1のCPUと前記初期通信をする情報処理装置。前記第1及び第2のCPUは、前記第1の高速起動プログラム及び前記第2の高速起動プログラムのうち一方を先に他方を次に書き換えた後、前記第1の通常起動プログラム及び前記第2の通常起動プログラムのうち一方を先に他方を次に書き換える制御をする請求項1に記載の情報処理装置。前記第1のCPUが、書き換え後の前記第1の高速起動プログラムを前記第2の不揮発性記憶装置に転送することにより前記第2の高速起動プログラムの書き換えが実行され、前記第1のCPUが、書き換え後の前記第1の通常起動プログラムを前記第2の不揮発性記憶装置に転送することにより前記第2の通常起動プログラムの書き換えが実行される請求項1又は2に記載の情報処理装置。情報処理装置には同期して動作する二つのCPUを備えるものがある。例えば、画像形成装置において、メインのCPUとその画像形成装置の操作部を構成するタッチパネルの表示制御用のCPUとを備えるものがある。同期して動作する二つのCPUを起動させる起動プログラムはそれぞれ情報処理装置のEEPROM等に記憶されており、起動プログラムを書き換る際に、停電等が原因で一方のCPUの起動プログラムの書き換えは成功したが、他方のCPUの起動プログラムの書き換えに失敗することある。この場合、一方のCPUの起動プログラムが新バージョンであり、他方のCPUの起動プログラムが旧バーションとなるため、起動プログラムの整合性がなくなり、その結果、二つのCPUを同期させて起動させる際に深刻なエラーが発生する可能性がある。本発明は、起動プログラムの書き換えが失敗しても、同期して動作する二つのCPUのそれぞれの起動プログラムの整合性を確保することが可能な情報処理装置を提供することを目的とする。上記目的を達成する本発明に係る情報処理装置は、第1のCPUと、第1のRAMと、前記第1のCPUを起動するために前記第1のRAMに書き込まれて実行される第1の通常起動プログラム及び、前記第1のCPUを起動するために前記第1のRAMに書き込まれて実行され、前記第1の通常起動プログラムに比べて前記第1のRAMへの書き込み時間が短い第1の高速起動プログラムが格納可能な第1の不揮発性記憶装置と、前記第1のCPUと同期をとるために前記第1のCPUと互いに初期通信をする第2のCPUと、第2のRAMと、前記第2のCPUを起動するために前記第2のRAMに書き込まれて実行される第2の通常起動プログラム及び、前記第2のCPUを起動するために前記第2のRAMに書き込まれて実行され、前記第2の通常起動プログラムに比べて前記第2のRAMへの書き込み時間が短い第2の高速起動プログラムが格納可能な第2の不揮発性記憶装置と、を備え、前記第1及び第2のCPUが、前記第1の不揮発性記憶装置に格納されている前記第1の通常起動プログラム及び前記第1の高速起動プログラム並びに前記第2の不揮発性記憶装置に格納されている前記第2の通常起動プログラム及び前記第2の高速起動プログラムをそれぞれ書き換える場合、前記第1及び第2の不揮発性記憶装置において、最初に書き換えるプログラムと次に書き換えるプログラムとは前記初期通信が成功可能なプログラムどうしであり、前記第1の通常起動プログラム、前記第1の高速起動プログラム、前記第2の通常起動プログラム及び前記第2の高速起動プログラムのいずれかの書き換えが失敗した段階で、以降の書き換えを中止し、前記第1及び第2のCPUを起動するために、前記第1のCPUが前記第1のRAMに前記第1の高速起動プログラムを書き込み、かつ前記第2のCPUが前記第2のRAMに前記第2の通常起動プログラムを書き込む場合、前記第2のCPUが前記第1のCPUと前記初期通信を開始する前に、前記第1のCPUが前記第2のCPUとの前記初期通信でタイムアウトが発生するように、前記第1の高速起動プログラムには前記初期通信の時間が設定されており、前記第1及び第2のCPUを起動するために、前記第1のCPUが前記第1のRAMに前記第1の通常起動プログラムを書き込み、かつ前記第2のCPUが前記第2のRAMに前記第2の高速起動プログラムを書き込む場合、前記第1のCPUが前記第2のCPUと前記初期通信を開始する前に、前記第2のCPUが前記第1のCPUとの前記初期通信でタイムアウトが発生するように、前記第2の高速起動プログラムには前記初期通信の時間が設定されており、前記第1のRAMに前記第1の高速起動プログラムが書き込まれ、かつ前記第2のRAMに前記第2の通常起動プログラムが書き込まれることによって、前記第1のCPUが前記第2のCPUとの前記初期通信でタイムアウトが発生した場合、前記第1のCPUは前記第2の通常起動プログラムと前記初期通信が成功可能な前記第1の通常起動プログラムを前記第1のRAMに書き込んで前記第2のCPUと前記初期通信をし、前記第1のRAMに前記第1の通常起動プログラムが書き込まれ、かつ前記第2のRAMに前記第2の高速起動プログラムが書き込まれることによって、前記第2のCPUが前記第1のCPUとの前記初期通信でタイムアウトが発生した場合、前記第2のCPUは前記第1の通常起動プログラムと前記初期通信が成功可能な前記第2の通常起動プログラムを前記第2のRAMに書き込んで前記第1のCPUと前記初期通信をする。本発明に係る情報処理装置によれば、四つの起動プログラムを順番に書き換える時、最初に書き換えるプログラムと次に書き換えるプログラムとは初期通信が成功可能なプログラムどうしであり、四つの起動プログラムのいずれかの書き換えが失敗した段階で、以降の書き換えを中止している。そして、第1及び第2のCPUのうち、一方のCPUが高速起動プログラム、他方のCPUが通常起動プログラムを用いて起動する場合に初期通信にタイムアウトを発生させて、一方のCPUが通常起動プログラムに切り換えて起動して、初期通信を成功するようにしている。従って、例えば、第1の高速起動プログラム、第2の高速起動プログラム、第1の通常起動プログラム、第2の通常起動プログラムの順番で書き換えがされる場合、第1や第2の高速起動プログラムの書き換えが失敗すれば、第1及び第2のCPUは書き換え前の第1及び第2の通常起動プログラムを用いて起動することになる。また、第1や第2の通常起動プログラムの書き換えが失敗すれば、第1及び第2のCPUは書き換え後の第1及び第2の高速起動プログラムを用いて起動することになる。つまり、一方のCPUが書き換え後の起動プログラムを用いて起動し、他方のCPUが書き換え前の起動プログラムを用いて起動することをなくすことができる。以上の通り、本発明によれば、起動プログラムの書き換えが失敗しても、同期して動作する二つのCPUのそれぞれの起動プログラムの整合性を確保することができ、その結果、二つのCPUを正常に起動させることが可能となる。また、一方のCPUが高速起動プログラムを用いて起動し、他方のCPUが通常起動プログラムを用いて起動する場合に、一方のCPUは他方のCPUが通常起動プログラムを用いて起動している判定に、初期通信のタイムアウトを利用している。従って、一方のCPUと他方のCPUを接続する信号線を追加することなく、一方のCPUは他方のCPUが通常起動プログラムを用いて起動している判定をすることができる。上記構成において、前記第1及び第2のCPUは、前記第1の高速起動プログラム及び前記第2の高速起動プログラムのうち一方を先に他方を次に書き換えた後、前記第1の通常起動プログラム及び前記第2の通常起動プログラムのうち一方を先に他方を次に書き換える制御をすることができる。この構成によれば、高速起動プログラムが通常起動プログラムより先に書き換えられるので、四つの起動プログラムのいずれかの書き換えが失敗した段階で、以降の書き換えを中止した場合に、書き換え後の高速起動プログラムを利用できる可能性を高くすることができる。上記構成において、前記第1のCPUが、書き換え後の前記第1の高速起動プログラムを前記第2の不揮発性記憶装置に転送することにより前記第2の高速起動プログラムの書き換えが実行され、前記第1のCPUが、書き換え後の前記第1の通常起動プログラムを前記第2の不揮発性記憶装置に転送することにより前記第2の通常起動プログラムの書き換えが実行されるようにすることができる。この構成によれば、第2の高速起動プログラムや第2の通常起動プログラムが情報処理装置の外部から送られてくる場合に比べて、第2の高速起動プログラムや第2の通常起動プログラムの書き換えを迅速にすることができる。本発明によれば、起動プログラムの書き換えが失敗しても、同期して動作する二つのCPUのそれぞれの起動プログラムの整合性を確保することが可能となる。以下、図面に基づいて本発明の実施形態を詳細に説明する。図1は本発明に係る一実施形態に係る情報処理装置が適用可能な画像形成装置1の内部構造の概略を示す図である。画像形成装置1は例えば、コピー、プリンター、スキャナー及びファクシミリの機能を有するデジタル複合機に適用することができる。画像形成装置1は装置本体100、装置本体100の上に配置された原稿読取部200、原稿読取部200の上に配置された原稿給送部300及び装置本体100の上部前面に配置された操作部400を備える。原稿給送部300は自動原稿送り装置として機能し、原稿載置部301に置かれた複数枚の原稿を連続的に原稿読取部200に送ることができる。原稿読取部200は露光ランプ等を搭載したキャリッジ201、ガラス等の透明部材により構成された原稿台203、不図示のCCDセンサー及び原稿読取スリット205を備える。原稿台203に載置された原稿を読み取る場合、キャリッジ201を原稿台203の長手方向に移動させながらCCDセンサーにより原稿を読み取る。これに対して、原稿給送部300から給送された原稿を読み取る場合、キャリッジ201を原稿読取スリット205と対向する位置に移動させて、原稿給送部300から送られてきた原稿を、原稿読取スリット205を通してCCDセンサーにより読み取る。CCDセンサーは読み取った原稿を画像データとして出力する。装置本体100は用紙貯留部101、画像形成部103及び定着部105を備える。用紙貯留部101は装置本体100の最下部に配置されており、用紙の束を貯留することができる用紙トレイ107を備える。用紙トレイ107に貯留された用紙の束において、最上位の用紙がピックアップローラー109の駆動により、用紙搬送路111へ向けて送出される。用紙は用紙搬送路111を通って、画像形成部103へ搬送される。画像形成部103は搬送されてきた用紙にトナー画像を形成する。画像形成部103は感光体ドラム113、露光部115、現像部117及び転写部119を備える。露光部115は画像データに対応して変調された光を生成し、一様に帯電された感光体ドラム113の周面に照射する。これにより、感光体ドラム113の周面には画像データに対応する静電潜像が形成される。この状態で感光体ドラム113の周面に現像部117からトナーを供給することにより、周面には画像データに対応するトナー画像が形成される。このトナー画像は転写部119によって先ほど説明した用紙貯留部101から搬送されてきた用紙に転写される。トナー画像が転写された用紙は定着部105に送られる。定着部105において、トナー画像と用紙に熱と圧力が加えられて、トナー画像は用紙に定着される。用紙はスタックトレイ121又は排紙トレイ123に排紙される。操作部400は操作キー部401と表示部403を備える。表示部403はタッチパネル機能を有しており、ソフトキーを含む画面が表示される。ユーザは画面を見ながらソフトキーを操作することによって、コピー等の機能の実行に必要な設定等をする。操作キー部401にはハードキーからなる操作キーが設けられている。具体的にはスタートキー405、テンキー407、ストップキー409、リセットキー411、コピー、プリンター、スキャナー及びファクシミリを切り換えるための機能切換キー413等が設けられている。スタートキー405はコピー、ファクシミリ送信等の動作を開始させるキーである。テンキー407はコピー部数、ファクシミリ番号等の数字を入力するキーである。ストップキー409はコピー動作等を途中で中止させるキーである。リセットキー411は設定された内容を初期設定状態に戻すキーである。機能切換キー413はコピーキー及び送信キー等を備えており、コピー機能、送信機能等を相互に切り替えるキーである。コピーキーを操作すれば、コピーの初期画面が表示部403に表示される。送信キーを操作すれば、ファクシミリ送信及びメール送信の初期画面が表示部403に表示される。図2は図1に示す画像形成装置1の構成を示すブロック図である。画像形成装置1は装置本体100、原稿読取部200、原稿給送部300、操作部400、制御部500及び通信部600がバスによって相互に接続された構成を有する。装置本体100、原稿読取部200、原稿給送部300及び操作部400に関しては既に説明したので、説明を省略する。制御部500はCPU、ROM、RAM及び画像メモリ等を備える。CPUは画像形成装置1を動作させるために必要な制御を、装置本体100等の画像形成装置1の上記構成要素に対して実行する。ROMは画像形成装置1の動作の制御に必要なソフトウェアを記憶している。RAMはソフトウェアの実行時に発生するデータの一時的な記憶及びアプリケーションソフトの記憶等に利用される。画像メモリは画像データを一時的に記憶する。通信部600はファクシミリ通信部601及びネットワークI/F部603を備える。ファクシミリ通信部601は相手先ファクシミリとの電話回線の接続を制御するNCU及びファクシミリ通信用の信号を変復調する変復調回路を備える。ファクシミリ通信部601は電話回線605に接続される。ネットワークI/F部603はLAN607に接続される。ネットワークI/F部603はLAN607に接続されたパソコン等の端末装置との間で通信を実行するための通信インターフェイス回路である。図3は本実施形態に係る情報処理装置10のブロック図である。情報処理装置10は図2に示す制御部500の一部として備えられる。情報処理装置10はCPU11、EEPROM12及びRAM13並びにCPU21、EEPROM22及びRAM23を備え、それらはバス31で相互に接続されている。CPU11は第1のCPUの一例であり、例えば画像形成装置1のメインCPUであり、画像形成装置1の動作全体を制御する。EEPROM12は第1の不揮発性記憶装置の一例であり、EEPROM12にはCPU11により実行される不図示の各種プログラムに加えて、高速起動プログラム14、通常起動プログラム15及び書換用プログラム16が格納されている。高速起動プログラム14及び通常起動プログラム15はCPU11を起動するのに用いられるブートプログラムである。通常起動プログラム15は第1の通常起動プログラムの一例であり、CPU11を起動するためにRAM13に書き込まれて実行される。高速起動プログラム14は第1の高速起動プログラムの一例であり、CPU11を起動するためにRAM13に書き込まれて実行され、通常起動プログラム15に比べてRAM13への書き込み時間が短いプログラムである。高速起動プログラム14は通常起動プログラム15より優先して使用され、CPU11は高速起動プログラム14を用いて起動できない場合に、通常起動プログラム15を用いて起動する。通常起動プログラム15は、CPU11によりプログラムの内容が最初から順番にEEPROM12から読み出されてRAM13に書き込まれる。これに対して、高速起動プログラム14は、CPU11により通常起動プログラム15がRAM13に書き込まれた状態のものをEEPROM12に戻したものであり、これにより、通常起動プログラム15に比べてEEPROM12から読み出してRAM13に書き込みが完了するまでの時間を短くすることができる。書換用プログラム16は、EEPROM12に格納されている高速起動プログラム14及び通常起動プログラム15を書き換えるために、CPU11により実行されるプログラムである。RAM13にはCPU11で実行されるプログラムがCPU11によりEEPROM12から読み出されて書き込まれる。従って、CPU11が起動する際に高速起動プログラム14又は通常起動プログラム15がCPU11によりEEPROM12から読み出されて書き込まれる。また、EEPROM12において高速起動プログラム14及び通常起動プログラム15の書き換えを実行する際に書換用プログラム16がCPU11によりEEPROM12から読み出されて書き込まれる。CPU21は第2のCPUの一例であり、CPU11と同期をとるためにCPU11と互いに初期通信をする。CPU21は例えば操作部400の表示部403のタッチパネル機能を制御する。EEPROM22は第2の不揮発性記憶装置の一例であり、EEPROM22にはCPU21により実行される不図示の各種プログラムに加えて、高速起動プログラム24、通常起動プログラム25及び書換用プログラム26が格納されている。高速起動プログラム24及び通常起動プログラム25は、例えばCPU21を起動するのに用いられるブートプログラムである。通常起動プログラム25は第2の通常起動プログラムの一例であり、CPU21を起動するためにRAM23に書き込まれて実行される。高速起動プログラム24は第2の高速起動プログラムの一例であり、CPU21を起動するためにRAM23に書き込まれて実行され、通常起動プログラム25に比べてRAM23への書き込み時間が短いプログラムである。高速起動プログラム24は通常起動プログラム25より優先して使用され、CPU21は高速起動プログラム24を用いて起動できない場合に、通常起動プログラム25を用いて起動する。通常起動プログラム25は、CPU21によりプログラムの内容が最初から順番にEEPROM22から読み出されてRAM23に書き込まれる。これに対して、高速起動プログラム24は、CPU21により通常起動プログラム25がRAM23に書き込まれた状態のものをEEPROM22に戻したものであり、これにより、通常起動プログラム25に比べてEEPROM22から読み出してRAM23に書き込みが完了するまでの時間を短くすることができる。高速起動プログラム24は高速起動プログラム14のコピーがEEPROM12から転送されてきたものである。通常起動プログラム25は通常起動プログラム15のコピーがEEPROM12から転送されてきたものである。書換用プログラム26は、EEPROM22に格納されている高速起動プログラム24及び通常起動プログラム25を書き換えるために、CPU21により実行されるプログラムである。RAM23にはCPU21で実行されるプログラムがCPU21によりEEPROM22から読み出されて書き込まれる。従って、CPU21が起動する際に高速起動プログラム24又は通常起動プログラム25がCPU21によりEEPROM22から読み出されて書き込まれる。また、EEPROM22に格納されている高速起動プログラム24及び通常起動プログラム25の書き換えを実行する際に書換用プログラム26がCPU21によりEEPROM22から読み出されて書き込まれる。CPU11,21を起動させる場合、両方とも高速起動プログラムを用いて起動させるようにするか、又は両方とも通常起動プログラムを用いて起動させるようにして、エラーの発生を防止している。このためにはCPU11,21のうち一方のCPUは、他方のCPUが高速起動プログラムで起動しているのか、通常起動プログラムで起動しているのかを判定する必要がある。本実施形態では初期通信のタイムアウトを利用して判定する。詳細に説明すると、CPU11,21のうち一方のCPUがRAMに高速起動プログラムを書き込んで実行し、他方のCPUがRAMに通常起動プログラムを書き込んで実行する場合、他方のCPUが一方のCPUと同期をとるために初期通信を開始する前に、一方のCPUが他方のCPUとの初期通信でタイムアウトが発生するように、高速起動プログラムには初期通信を開始してから終了するまでの時間が設定されている。例えば、一方のCPUにおいて、高速起動プログラムのRAMへの書き込み開始から、高速起動プログラムを実行して他方のCPUと初期通信を開始するまでの時間を10秒とし、他方のCPUにおいて、通常起動プログラムのRAMへの書き込み開始から、通常起動プログラムを実行して一方のCPUと初期通信を開始するまでの時間を20秒とし、高速起動プログラムにおいてタイムアウトの時間が例えば5秒とする。このようにすれば、一方のCPUが高速起動プログラムを用いて起動し、他方のCPUが通常起動プログラムを用いて起動する場合、他方のCPUが一方のCPUと初期通信を開始する前に、一方のCPUではタイムアウトが発生するので、一方のCPUは他方のCPUが通常起動プログラムを用いて起動していることを判定できる。また、一方のCPUでタイムアウトが発生せず、一方のCPUが他方のCPUと初期通信に成功すれば、一方のCPUは他方のCPUが高速起動プログラムを用いて起動していることを判定できる。次に、情報処理装置10のCPU11,21の起動動作について4つのパターンに分けて説明する。図4はパターン1、図5はパターン2、図6はパターン3、図7はパターン4を示し、いずれも図3と対応している。新高速起動プログラムとはEEPROMにおいて書き換えに成功した高速起動プログラムであり、旧高速起動プログラムとはEEPROMにおいて書き換えがされる前の高速起動プログラムである。例えば、新高速起動プログラム24aはEEPROM22において書き換えに成功した高速起動プログラム24であり、旧高速起動プログラム24bはEEPROM22において書き換えがされる前の高速起動プログラム24である。本実施形態において、高速起動プログラム14、高速起動プログラム24、通常起動プログラム15、通常起動プログラム25の順番で書き換えが実行される。図4に示すように、パターン1は全ての起動プログラムに書き換えが成功した場合である。従って、EEPROM12には新高速起動プログラム14a及び新通常起動プログラム15aが格納され、EEPROM22には新高速起動プログラム24a及び新通常起動プログラム25aが格納されている。CPU11,21を起動させる場合、CPU11はEEPROM12に格納されている新高速起動プログラム14aをRAM13に書き込んだ後、CPU21と同期をとるためにCPU21との初期通信をトライする。一方、CPU21はEEPROM22に格納されている新高速起動プログラム24aをRAM23に書き込んだ後、CPU11と同期をとるためにCPU11との初期通信をトライする。CPU11,21の両方とも高速起動プログラムで起動するので、CPU11とCPU21との間の初期通信が成功し、CPU11とCPU21の起動が完了する。パターン2は図5に示すように、EEPROM12において高速起動プログラム14の書き換えが失敗し、以降の書き換えが中止された場合である。従って、EEPROM12には高速起動プログラム14が格納されておらず、旧通常起動プログラム15bが格納されている。EEPROM22には旧高速起動プログラム24b及び旧通常起動プログラム25bが格納されている。図5のに示すように、CPU11,21を起動させる場合、CPU11はEEPROM12に格納されている旧通常起動プログラム15bをRAM13に書き込んだ後、CPU21と同期をとるためにCPU21との初期通信をトライする。一方、CPU21はEEPROM22に格納されている旧高速起動プログラム24bをRAM23に書き込んだ後、CPU11と同期をとるためにCPU11との初期通信をトライする。CPU11が通常起動プログラムで起動し、CPU21が高速起動プログラムで起動しているので、CPU21で初期通信のタイムアウトが発生する。これにより、CPU21はCPU11が通常起動プログラムで起動していると判定する。CPU11はCPU21との初期通信を継続する。従って、図5のに示すように、CPU21はEEPROM22に格納されている旧通常起動プログラム25bをRAM23に書き込んだ後、CPU11と同期をとるためにCPU11との初期通信をトライする。CPU11,21の両方とも通常起動プログラムで起動するので、CPU11とCPU21との間の初期通信が成功し、CPU11とCPU21の起動が完了する。パターン3は図6に示すように、EEPROM12において高速起動プログラム14の書き換えが成功したが、EEPROM22において高速起動プログラム24の書き換えが失敗し、以降の書き換えが中止された場合である。従って、EEPROM12には新高速起動プログラム14a及び旧通常起動プログラム15bが格納されている。EEPROM22には高速起動プログラム24が格納されておらず、旧通常起動プログラム25bが格納されている。図6のに示すように、CPU11,21を起動させる場合、CPU11はEEPROM12に格納されている新高速起動プログラム14aをRAM13に書き込んだ後、CPU21と同期をとるためにCPU21との初期通信をトライする。一方、CPU21はEEPROM22に格納されている旧通常起動プログラム25bをRAM23に書き込んだ後、CPU11と同期をとるためにCPU11との初期通信をトライする。CPU11が高速起動プログラムで起動し、CPU21が通常起動プログラムで起動しているので、CPU11で初期通信のタイムアウトが発生する。これにより、CPU11はCPU21が通常起動プログラムで起動していると判定する。CPU21はCPU11との初期通信を継続する。従って、図6のに示すように、CPU11はEEPROM12に格納されている旧通常起動プログラム15bをRAM13に書き込んだ後、CPU21と同期をとるためにCPU21との初期通信をトライする。CPU11,21の両方とも通常起動プログラムで起動するので、CPU11とCPU21との間の初期通信が成功し、CPU11とCPU21の起動が完了する。パターン4は図7に示すように、EEPROM12において高速起動プログラム14の書き換えが成功し、EEPROM22において高速起動プログラム24の書き換えが成功したが、EEPROM12において通常起動プログラム15の書き換えが失敗し、以降の書き換えが中止された場合である。従って、EEPROM12には通常起動プログラム15が格納されておらず、新高速起動プログラム14aが格納されている。EEPROM22には新高速起動プログラム24a及び旧通常起動プログラム25bが格納されている。図7に示すように、CPU11,21を起動させる場合、CPU11はEEPROM12に格納されている新高速起動プログラム14aをRAM13に書き込んだ後、CPU21と同期をとるためにCPU21との初期通信をトライする。一方、CPU21はEEPROM22に格納されている新高速起動プログラム24aをRAM23に書き込んだ後、CPU11と同期をとるためにCPU11との初期通信をトライする。CPU11,21の両方とも高速起動プログラムで起動するので、CPU11とCPU21との間の初期通信が成功し、CPU11とCPU21の起動が完了する。次に、CPU11,21の起動の動作について、CPU11を例にして説明する。図8はCPU11の起動の動作を説明するフローチャートである。CPU21の起動の動作はCPU11のそれと同様である。CPU11はEEPROM12に格納されている起動プログラムを読み出してRAM13に書き込んで実行する。EEPROM12に高速起動プログラム14及び通常起動プログラム15の両方が格納されていれば、高速起動プログラム14を読み出してRAM13に書き込み、一方だけが格納されていれば、格納されている起動プログラムを読み出してRAM13に書き込む。EEPROM12に高速起動プログラム14及び通常起動プログラム15の一方だけが格納されている場合は、図5及び図7で説明したように、高速起動プログラム14及び通常起動プログラム15の書き換えが途中で失敗した際に発生する。次に、CPU11はCPU21との初期通信をトライする。CPU11はCPU21との初期通信に成功すれば、CPU11とCPU21の起動が完了する。初期通信に成功するのは、CPU11が高速起動プログラム14を用いて起動し、かつCPU21が高速起動プログラム24を用いて起動している場合、又はCPU11が通常起動プログラム15を用いて起動し、かつCPU21が通常起動プログラム25を用いて起動している場合である。CPU11がCPU21との初期通信に失敗するのは、CPU11が高速起動プログラム14を用いて起動し、かつCPU21が通常起動プログラム25を用いて起動している場合、又はCPU11が通常起動プログラム15を用いて起動し、かつCPU21が高速起動プログラム24を用いて起動している場合である。CPU11がCPU21との初期通信に失敗すれば、CPU11は、起動に用いたプログラムが高速起動プログラム14であれば、EEPROM12に格納されている通常起動プログラム15を読み出してRAM13に書き込んで実行する。CPU21はCPU11との初期通信を継続している。ステップS2と同様に、CPU11はCPU21との初期通信をトライする。CPU11,21の両方とも通常起動プログラムを用いて起動しているので、初期通信に成功し、CPU11とCPU21の起動が完了する。一方、CPU11は、起動に用いたプログラムが高速起動プログラム14でなければ、すなわち通常起動プログラム15であれば、ステップS3でCPU21との初期通信に失敗した原因はCPU21が高速起動プログラム24を用いて起動したからである。このため、CPU21はEEPROM22から通常起動プログラム25を読み出してRAM23に書き込んで、CPU11との初期通信をトライする。そこで、CPU11は起動に用いたプログラムが通常起動プログラム15であれば、CPU21との初期通信を継続する。CPU21が通常起動プログラム25をRAM23に書き込んで、CPU11との初期通信をトライすると、CPU11はCPU21との初期通信が成功する。次に、高速起動プログラム14,24及び通常起動プログラム15,25の書き換え動作について説明する。図9はその動作を説明するフローチャートである。高速起動プログラム14,24及び通常起動プログラム15,25の書き換えは、CPU11がEEPROM12に格納されている書換用プログラム16をRAM13に書き込んで、書換用プログラム16を実行し、かつCPU21がEEPROM22に格納されている書換用プログラム26をRAM23に書き込んで、書換用プログラム26を実行することにより行われる。CPU11は図2に示すネットワークI/F部603を介して画像形成装置1の外部から送られてきた書き換え用の高速起動プログラム14をEEPROM12に格納されている高速起動プログラム14に対して書き換えをトライする。CPU11は高速起動プログラム14の書き換えに成功しなければ、すなわち失敗すれば、以降の書き換えを中止する。これは図5に示すパターン2である。CPU11は高速起動プログラム14の書き換えに成功すれば、CPU11は書き換えられた高速起動プログラム14のコピーをEEPROM22に転送する。CPU21は転送されてきた新高速起動プログラム14aをEEPROM22に格納されている高速起動プログラム24に対して書き換えをトライする。CPU21は高速起動プログラム24の書き換えに失敗すれば、以降の書き換えを中止する。これは図6に示すパターン3である。CPU21が高速起動プログラム24の書き換えに成功すれば、EEPROM22には新高速起動プログラム24aが格納される。これは新高速起動プログラム14aのコピーである。次に、CPU11は図2に示すネットワークI/F部603を介して画像形成装置1の外部から送られてきた書き換え用の通常起動プログラム15をEEPROM12に格納されている通常起動プログラム15に対して書き換えを実行する。CPU11は通常起動プログラム15の書き換えに失敗すれば、以降の書き換えを中止する。これは図7に示すパターン4である。CPU11は通常起動プログラム15の書き換えに成功すれば、CPU11は書き換えられた通常起動プログラム15のコピーをEEPROM22に転送する。CPU21は転送されてきた新通常起動プログラム15aをEEPROM22に格納されている通常起動プログラム25に対して書き換えを実行する。CPU21は通常起動プログラム25の書き換えに失敗すれば、以降の書き換えを中止する。CPU21が通常起動プログラム25の書き換えに成功すれば、EEPROM22には新通常起動プログラム25aが格納される。これは新通常起動プログラム15aのコピーである。以上により、高速起動プログラム14,24及び通常起動プログラム15,25の書き換え動作が終了する。本実施形態の主な効果を説明する。情報処理装置10によれば、四つの起動プログラムを順番に書き換える時、高速起動プログラム14、高速起動プログラム24、通常起動プログラム15、通常起動プログラム25の順番で書き換えをし、四つの起動プログラムのいずれかの書き換えが失敗した段階で、以降の書き換えを中止している。そして、CPU11,21のうち、一方のCPUが高速起動プログラム、他方のCPUが通常起動プログラムを用いて起動する場合に初期通信にタイムアウトを発生させて、一方のCPUが通常起動プログラムに切り換えて起動して、初期通信を成功するようにしている。従って、図5や図6に示すように、高速起動プログラム14や高速起動プログラム24の書き換えが失敗すれば、CPU11,21は書き換え前の通常起動プログラム15,25を用いて起動することになる。また、通常起動プログラム15や通常起動プログラム25の書き換えが失敗すれば、図7に示すように、CPU11,21は書き換え後の高速起動プログラム14,24を用いて起動することになる。つまり、一方のCPUが書き換え後の起動プログラムを用いて起動し、他方のCPUが書き換え前の起動プログラムを用いて起動することをなくすことができる。以上の通り、本実施形態によれば、起動プログラムの書き換えが失敗しても、同期して動作するCPU11,21のそれぞれの起動プログラムの整合性を確保することができ、その結果、CPU11,21を正常に起動させることが可能となる。また、一方のCPUが高速起動プログラムを用いて起動し、他方のCPUが通常起動プログラムを用いて起動する場合に、一方のCPUは他方のCPUが通常起動プログラムを用いて起動している判定に、初期通信のタイムアウトを利用している。従って、一方のCPUと他方のCPUを接続する信号線を追加することなく、一方のCPUは他方のCPUが通常起動プログラムを用いて起動している判定をすることができる。本実施形態では、高速起動プログラム14、高速起動プログラム24、通常起動プログラム15、通常起動プログラム25の順番で書き換える場合を例に説明した。しかしながら、最初に書き換えるプログラムと次に書き換えるプログラムとは初期通信が成功可能なプログラムどうしであればよいので、通常起動プログラム15,25を書き換えた後に、高速起動プログラム14,24を書き換えてもよい。また、高速起動プログラム14を書き換えた後に高速起動プログラム24を書き換えているが、高速起動プログラム24を先に書き換えてもよい。さらに、高速起動プログラム14,24を書き換えた後に通常起動プログラム15を書き換えているが、通常起動プログラム25を先に書き換えてもよい。また、本実施形態によれば、高速起動プログラム14,24が通常起動プログラム15,25より先に書き換えられるので、四つの起動プログラムのいずれかの書き換えが失敗した段階で、以降の書き換えを中止した場合に、書き換え後の高速起動プログラムを利用できる可能性を高くすることができる。さらに、本実施形態によれば、CPU11が書き換え後の高速起動プログラム14のコピーをEEPROM22に転送することにより高速起動プログラム24の書き換えが実行され、CPU11が書き換え後の通常起動プログラム15のコピーをEEPROM22に転送することにより通常起動プログラム25の書き換えが実行される。従って、高速起動プログラム24や通常起動プログラム25が情報処理装置10の外部から送られてくる場合に比べて、高速起動プログラム24や通常起動プログラム25の書き換えを迅速にすることができる。本実施形態ではROMの機能を有する第1及び第2の不揮発性記憶装置として、EEPROMを用いているが、EEPROMの換わりにフラッシュメモリー等の他の不揮発性半導体メモリーを用いることができる。また、第1及び第2の不揮発性記憶装置として、USBメモリーやHDDを用いることもできる。"