"当該電子機器の動作状態をスリープ状態に移行させるメインコントローラーを備え、前記スリープ状態は、前記メインコントローラーの電源がオフとなる前記動作状態であり、前記メインコントローラーは、コントローラープログラムを記憶した不揮発性メモリーと、前記コントローラープログラムを読み出して実行するプロセッサーとを有し、前記コントローラープログラムに従って、前記不揮発性メモリーからの前記コントローラープログラムのリード回数が所定の閾値に到達すると、当該電子機器の動作状態を前記スリープ状態に移行させる前に、前記不揮発性メモリーにおける前記コントローラープログラムの記憶領域に対する修復処理を実行すること、を特徴とする電子機器。前記メインコントローラーは、当該電子機器の次回起動前に前記スリープ状態に移行させる場合には、前記スリープ状態の直前に前記修復処理を実行し、当該電子機器の次回起動時まで前記スリープ状態への移行が発生しなかった場合には、当該電子機器の次回起動時に、前記不揮発性メモリーにおける前記コントローラープログラムの記憶領域に対する修復処理を実行することを特徴とする請求項1記載の電子機器。当該電子機器の有する1または複数の機能をそれぞれ実現する1または複数のサブシステムと、前記スリープ状態において所定のイベントが検出されると、当該電子機器の動作状態を、前記スリープ状態から通常状態へ復帰させる補助コントローラーとをさらに備え、前記メインコントローラーは、当該電子機器の動作状態を前記スリープ状態へ移行させる場合、前記補助コントローラーに、当該メインコントローラーと前記1または複数のサブシステムのすべての電源をオフさせること、を特徴とする請求項1記載の電子機器。前記閾値は、前記不揮発性メモリーにおいてリードディスターブエラーが発生しないリード回数上限値であることを特徴とする請求項1から請求項3のうちのいずれか1項記載の電子機器。電子機器の動作状態をスリープ状態に移行させる当該電子機器内のメインコントローラーで実行されるシステム管理プログラムにおいて、前記スリープ状態は、前記メインコントローラーの電源がオフとなる前記動作状態であり、前記メインコントローラー内のコンピューターに、当該システム管理プログラムを記憶した不揮発性メモリーからの当該システム管理プログラムのリード回数が所定の閾値に到達すると、前記電子機器の動作状態を前記スリープ状態に移行させる前に、前記不揮発性メモリーにおける前記コントローラープログラムの記憶領域に対する修復処理を実行させること、を特徴とするシステム管理プログラム。NANDフラッシュなどの不揮発性メモリーからコントローラープログラムを読み出して実行する電子機器において、スリープ時に、コントローラー内のプロセッサーの電源がオフされる場合、スリープからの復帰時には不揮発性メモリーからコントローラープログラムが読み出されて実行される。このため、そのようなスリープ状態と通常状態との間の状態遷移が頻繁に発生すると、コントローラープログラムにリードディスターブエラーが発生する可能性がある。スリープ状態に入ると、コントローラー内のRAMの電源もオフになるため、上記特許文献1の技術を使用しても、リードディスターブエラーが回避されない。また、コントローラープログラムにリードディスターブエラーが発生した場合に、上記特許文献2の技術で、ROMから不揮発性メモリーへコントローラープログラムをダウンロードして修復することが考えられるが、その場合、コントローラープログラムは修復後に起動されるため、コントローラープログラムが起動するまでに時間がかかってしまう。そして、この起動遅延に起因して、外部装置との通信においてタイムアウトが発生したり、コントローラープログラムの修復後にシステム全体の再起動が必要になったりする場合には受信済みのデータが消失してしまうなどの不具合が発生する可能性がある。本発明は、上記の問題に鑑みてなされたものであり、スリープ状態と通常状態との間の状態遷移が多く発生しても、コントローラープログラムに発生するリードディスターブエラーを回避して、継続して正常に動作する電子機器およびシステム管理プログラムを得ることを目的とする。上記の課題を解決するために、本発明では以下のようにした。本発明に係る電子機器は、当該電子機器の動作状態をスリープ状態に移行させるメインコントローラーを備える。そのスリープ状態は、メインコントローラーの電源がオフとなる動作状態である。そして、メインコントローラーは、コントローラープログラムを記憶した不揮発性メモリーと、コントローラープログラムを読み出して実行するプロセッサーとを有し、コントローラープログラムに従って、不揮発性メモリーからのコントローラープログラムのリード回数が所定の閾値に到達すると、当該電子機器の動作状態をスリープ状態に移行させる前に、不揮発性メモリーにおけるコントローラープログラムの記憶領域に対する修復処理を実行する。これにより、コントローラープログラムのリード回数に応じてスリープ状態への移行前にコントローラープログラムの記憶領域に対する修復処理が行われるため、コントローラープログラムに発生するリードディスターブエラーが回避され、電子機器が継続して正常に動作する。また、本発明に係る電子機器は、上記の電子機器に加え、次のようにしてもよい。この場合、メインコントローラーは、当該電子機器の次回起動前にスリープ状態に移行させる場合には、スリープ状態の直前に修復処理を実行し、当該電子機器の次回起動時までスリープ状態への移行が発生しなかった場合には、当該電子機器の次回起動時に、不揮発性メモリーにおけるコントローラープログラムの記憶領域に対する修復処理を実行する。また、本発明に係る電子機器は、上記の電子機器に加え、次のようにしてもよい。この場合、電子機器は、当該電子機器の有する1または複数の機能をそれぞれ実現する1または複数のサブシステムと、スリープ状態において所定のイベントが検出されると、当該電子機器の動作状態を、スリープ状態から通常状態へ復帰させる補助コントローラーとをさらに備える。そして、メインコントローラーは、当該電子機器の動作状態をスリープ状態へ移行させる場合、補助コントローラーに、当該メインコントローラーと1または複数のサブシステムのすべての電源をオフさせる。また、本発明に係る電子機器は、上記の電子機器に加え、次のようにしてもよい。この場合、上述の閾値は、不揮発性メモリーにおいてリードディスターブエラーが発生しないリード回数上限値である。これにより、リードディスターブエラーが確実に回避される。本発明に係るシステム管理プログラムは、電子機器の動作状態をスリープ状態に移行させる当該電子機器内のメインコントローラーで実行されるシステム管理プログラムである。そのスリープ状態は、メインコントローラーの電源がオフとなる動作状態である。そして、このシステム管理プログラムは、メインコントローラー内のコンピューターに、当該システム管理プログラムを記憶した不揮発性メモリーからの当該システム管理プログラムのリード回数が所定の閾値に到達すると、電子機器の動作状態をスリープ状態に移行させる前に、不揮発性メモリーにおけるコントローラープログラムの記憶領域に対する修復処理を実行させる。これにより、コントローラープログラムのリード回数に応じてスリープ状態への移行前にコントローラープログラムの記憶領域に対する修復処理が行われるため、コントローラープログラムに発生するリードディスターブエラーが回避され、電子機器が継続して正常に動作する。本発明によれば、電子機器において、スリープ状態と通常状態との間の状態遷移が多く発生しても、コントローラープログラムに発生するリードディスターブエラーを回避し、電子機器を継続して正常に動作させることができる。以下、図に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態に係る電子機器である画像形成装置の構成を示すブロック図である。図1において、画像形成装置1は、プリンター、ファクシミリ機、複合機などの装置であり、パーソナルコンピューターなどのホスト装置2を接続され、そのホスト装置2からデータを受信し、適宜処理する電子機器である。画像形成装置1は、メインコントローラー11、1または複数のサブシステム12-1~12-N、省エネコントローラー13、並びに主電源スイッチ14を有する。メインコントローラー11は、サブシステム12-1~12-Nに対して各種処理を実行させる装置であり、サブシステム12-ii=1,,Nは、当該画像形成装置1の有する1つの機能プリンター機能、スキャナー機能、ファクシミリ通信機能、操作パネルのユーザーインターフェース機能などをそれぞれ実現する装置である。省エネコントローラー13は、ホスト装置2などの外部装置から、ネットワーク、電話回線などを介して信号またはデータを受信するとともに、メインコントローラー11並びに1または複数のサブシステム12-1~12-Nの動作状態を、メインコントローラー11からの指令に従って切り換える装置である。メインコントローラー11、1または複数のサブシステム12-1~12-N、並びに省エネコントローラー13は、それぞれ独立したハードウェア例えば回路基板で実装されており、ハードウェアごとに電源のオン/オフが可能となっている。この画像形成装置1の動作状態つまり、メインコントローラー11およびサブシステム12-1~12-Nの動作状態は、通常動作状態、ライトスリープ状態、およびディープスリープ状態のいずれかとなる。通常動作状態では、メインコントローラー11、1または複数のサブシステム12-1~12-N、および省エネコントローラー13が動作している。ライトスリープ状態では、メインコントローラー11および省エネコントローラー13が動作しており、サブシステム12-1~12-Nの一部または全部が電源オフ状態となっている。ディープスリープ状態では、省エネコントローラー13が動作しており、メインコントローラー11およびサブシステム12-1~12-Nが電源オフ状態となっている。通常動作状態からライトスリープ状態またはディープスリープ状態への移行、およびライトスリープ状態から通常動作状態への移行は、メインコントローラー11により決定され、ディープスリープ状態から通常動作状態への移行は、省エネコントローラー13により決定される。なお、ディープスリープ状態の方が、ライトスリープ状態と比較して消費電力が小さいため省エネ効果が大きい。しかしながら、ディープスリープ状態においては、ライトスリープ状態よりも通常動作状態に移行するのに時間が掛かる。そのため、外部からデータを受信したときに、そのデータの処理が遅れることになる。従って、ユーザーの所望により、画像形成装置1にFAXボードが装着されていたり、USBメモリーその他のUSB機器、ネットワークケーブル等が接続されていたりする場合には、通常状態からディープスリープ状態ではなく、ライトスリープ状態に移行するよう設定することが可能である。主電源スイッチ14は、メインコントローラー11、サブシステム12-1~12-N、省エネコントローラー13などの画像形成装置1の内部デバイスへの電源電力の供給をオン/オフするためのスイッチである。主電源スイッチ14がオフからオンへ切り換えられると、画像形成装置1が起動し、主電源スイッチ14がオンからオフへ切り換えられると、画像形成装置1がシャットダウンする。図2は、図1におけるメインコントローラー11の構成を示すブロック図である。図2において、メインコントローラー11は、ROM21、不揮発性メモリー22、RAM23、およびMPUMicroProcessingUnit24を有する。ROM21は、書き換え不可の不揮発性メモリーである。この実施の形態では、ROM21には、ブートプログラム31が記憶されている。ブートプログラム31は、メインコントローラー11の起動時つまり、メインコントローラー11の電源オン時にMPU24により実行され、コントローラープログラム32を起動させるためのプログラムである。不揮発性メモリー22は、書き換え可能な不揮発性メモリーであって、リードディスターブが発生する可能性のあるNANDフラッシュなどといったメモリーである。この実施の形態では、不揮発性メモリー22には、コントローラープログラム32、修復プログラム33、およびカウンター34が記憶されている。コントローラープログラム32は、サブシステム12-1~12-Nの制御およびメインコントローラー11の内部処理を実行するためのプログラムである。さらに、コントローラープログラム32は、不揮発性メモリー22から当該コントローラープログラム32を読み出す回数、すなわちリード回数が所定の閾値に到達すると、画像形成装置1の動作状態をディープスリープ状態へ移行させる前に、不揮発性メモリー22におけるコントローラープログラム32の記憶領域に対する修復処理つまり、修復プログラム33を実行させるためのプログラムである。この実施の形態では、この閾値は、不揮発性メモリー22においてリードディスターブエラーが発生しないリード回数上限値である。修復プログラム33は、コントローラープログラム32の記憶領域を修復リフレッシュするためのプログラムである。この実施の形態では、リード回数が所定の閾値に到達した場合、画像形成装置1の主電源スイッチ14がユーザーによってオフされ、次に主電源スイッチ14がオンされて画像形成装置1が起動するときに、不揮発性メモリー22におけるコントローラープログラム32の記憶領域に対する修復処理つまり、修復プログラム33が実行される。また、リード回数が所定の閾値に到達した場合、画像形成装置1の主電源スイッチ14がユーザーによってオフされる前に、ディープスリープ状態への移行のイベントが検出されると、ディープスリープ状態へ移行させる直前に、不揮発性メモリー22におけるコントローラープログラム32の記憶領域に対する修復処理つまり、修復プログラム33が実行される。カウンター34は、コントローラープログラム32のリード回数を示すデータである。RAM23は、コントローラープログラム32などのプログラムがロードされたり、MPU24による各種処理で扱われるデータを一時的に記憶したりする揮発性のメモリーである。MPU24は、ブートプログラム31、コントローラープログラム32、修復プログラム33などの各種プログラムを実行するプロセッサーである。なお、ROM21、不揮発性メモリー22、RAM23、およびMPU24は、バスやコントローラーチップなどによって相互に接続されており、相互にデータの送受が可能となっている。次に、上記画像形成装置の動作について説明する。ここでは、起動時の動作、スリープ状態への移行時の動作、およびスリープ状態からの復帰時の動作について説明する。1起動時の動作図3は、図1に示す画像形成装置1の起動時の動作を説明するフローチャートである。主電源スイッチ14がオフであるとき、画像形成装置1への電源電力の供給は行われていない。そして、ユーザーにより主電源スイッチ14がオンされるとステップS1、画像形成装置1への電源電力の供給が開始され、メインコントローラー11では、MPU24がブートプログラム31をロードし実行するステップS2。MPU24は、ブートプログラム31またはブートプログラム31によって起動させる別のプログラムに従って、カウンター34を読み出し、コントローラープログラム32のリード回数が所定の閾値以上であるか否かを判定するステップS3。コントローラープログラム32のリード回数が所定の閾値以上ではない場合、MPU24は、ブートプログラム31に従って、コントローラープログラム32を不揮発性メモリー22から読み出してRAM23にロードしステップS4、コントローラープログラム32を実行するステップS5。このとき、MPU24は、コントローラープログラム32またはブートプログラム31に従って、カウンター34の値を1だけ増加させる。一方、コントローラープログラム32のリード回数が所定の閾値以上である場合、MPU24は、修復プログラム33を読み出してRAM23にロードし実行するステップS6。これにより、コントローラープログラム32の領域が修復される。このとき、MPU24は、修復プログラム33に従って、カウンター34の値をゼロにリセットする。なお、この修復に要する時間は、コントローラープログラム32のサイズ、MPU32などのハードウェアの性能などによって変わるが、通常は、数分である。そして、修復完了後、MPU24は、修復プログラム33に従って、メインコントローラー11を最初から再起動させるステップS7。これにより、ブートプログラム31が再度実行されステップS2、コントローラープログラム32が実行されるステップS4,S5。このように、画像形成装置1の起動時において、コントローラープログラム32のリード回数が所定の閾値に達していれば、コントローラープログラム32の領域の修復が実行される。2スリープ状態への移行時の動作図4は、図1に示す画像形成装置1のスリープ状態への移行時の動作を説明するフローチャートである。メインコントローラー11では、MPU24は、コントローラープログラム32を実行しており、ユーザー操作が検出されずに一定期間が経過した、ジョブの受け付けが一定期間ない、スリープ移行ボタン押下などのイベントを検出するとステップS11、画像形成装置1の状態に応じてスリープモードを決定するステップS12。決定したスリープモードがディープスリープである場合ステップS13、MPU24は、コントローラープログラム32に従って、カウンター34を読み出して、コントローラープログラム32のリード回数が所定の閾値以上であるか否かを判定しステップS14、そのリード回数が所定の閾値以上でなければ、動作状態をディープスリープ状態へ移行させるための指令を、省エネコントローラー13へ送信する。省エネコントローラー13は、その指令を受信すると、メインコントローラー11およびサブシステム12-1~12-Nの電源をオフする。これにより、ディープスリープ状態となるステップS15。一方、決定したスリープモードがディープスリープであるが、リード回数が閾値以上である場合には、MPU24は、修復プログラム33を読み出してRAM23にロードし実行するステップS16。これにより、コントローラープログラム32の領域が修復される。このとき、MPU24は、修復プログラム33に従って、カウンター34の値をゼロにリセットする。修復完了後、MPU24は、コントローラープログラム32に従って、動作状態をディープスリープ状態へ移行させるための指令を、省エネコントローラー13へ送信する。省エネコントローラー13は、その指令を受信すると、メインコントローラー11およびサブシステム12-1~12-Nの電源をオフする。これにより、ディープスリープ状態となるステップS15。また、決定したスリープモードがライトスリープである場合ステップS13、MPU24は、コントローラープログラム32に従って、動作状態をライトスリープ状態へ移行させるための指令を、省エネコントローラー13へ送信する。省エネコントローラー13は、その指令を受信すると、サブシステム12-1~12-Nの一部または全部の電源をオフする。これにより、ライトスリープ状態となるステップS17。このように、コントローラープログラム32のリード回数が所定の閾値以上である場合には、ディープスリープ状態への移行のトリガーとなるイベントが発生すると、ディープスリープ状態への移行の前に修復処理が実行される。3スリープ状態からの復帰時の動作について説明する。図5は、図1に示す画像形成装置1の、ディープスリープ状態からの復帰時の動作を説明するフローチャートである。まず、ライトスリープ状態の場合、スリープ状態からの復帰のトリガーとなるイベントが省エネコントローラー13またはメインコントローラー11で検出されると、省エネコントローラー13は、電源がオフ状態となっているサブシステム12-iの電源をオン状態とする。これにより、動作状態が、ライトスリープ状態から通常動作状態へ復帰する。このとき、メインコントローラー11は、不揮発メモリー22からコントローラープログラム31を読み出すことなく、RAM23に残されたコントローラープログラムを実行する。他方、ディープスリープ状態の場合、スリープ状態からの復帰のトリガーとなるイベントが省エネコントローラー13で検出されるとステップS21、省エネコントローラー13は、電源がオフ状態となっているメインコントローラー11およびサブシステム12-1~12-Nの電源をオン状態とする。メインコントローラー11では、電源電力の供給が開始されると、MPU24は、ブートプログラム31をロードし実行するステップS22。そして、MPU24は、ブートプログラム31に従って、コントローラープログラム32を不揮発性メモリー22から読み出してRAM23にロードしステップS23、コントローラープログラム32を実行するステップS24。このとき、MPU24は、コントローラープログラム32またはブートプログラム31に従って、カウンター34の値を1だけ増加させる。このように、スリープ状態からの復帰時には、コントローラープログラム32の領域の修復が行われない。以上のように、上記実施の形態によれば、メインコントローラー11は、画像形成装置1の動作状態をスリープ状態に移行させる。そのスリープ状態は、メインコントローラーの電源がオフとなる動作状態である。そして、メインコントローラー11は、コントローラープログラム32を記憶した不揮発性メモリー22と、コントローラープログラム32を読み出して実行するMPU24とを有し、コントローラープログラム32に従って、不揮発性メモリー22からのコントローラープログラム32のリード回数が所定の閾値に到達すると、画像形成装置1の動作状態をスリープ状態に移行させる前に、不揮発性メモリー22におけるコントローラープログラム32の記憶領域に対する修復処理を実行する。これにより、コントローラープログラム32のリード回数に応じてスリープ状態への移行前にコントローラープログラム32の記憶領域に対する修復処理が行われるため、コントローラープログラム32に発生するリードディスターブエラーが回避され、画像形成装置1が継続して正常に動作する。なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。例えば、上記実施の形態において、ブートプログラム31は不揮発性メモリー22に記憶されるようにしてもよい。その場合、コントローラープログラム32の領域の修復時に、ブートプログラム31の領域の修復も併せて実行される。また、上記実施の形態において、修復プログラム33はROM21に記憶されるようにしてもよい。"