印刷を実行するプリントエンジンと、プログラムを記憶しているROM、前記ROMに記憶されている前記プログラムを実行するCPU、および、前記CPUの作業領域として用いられるRAMを備えており、前記プリントエンジンに印刷を実行させるメインコントローラーと、前記メインコントローラーより消費電力が小さい省エネコントローラーと、前記メインコントローラーへの電力の供給が停止されて前記省エネコントローラーに電力が供給されているスリープ状態から前記メインコントローラーが復帰するまでの何れかの時期の前記RAMの状態である復帰時RAM状態を記憶する不揮発性記憶装置とを備えており、前記CPUは、前記スリープ状態から復帰するときに前記RAMの状態を前記不揮発性記憶装置に記憶されている前記復帰時RAM状態にした後、残りの復帰処理を実行することを特徴とする画像形成装置。前記不揮発性記憶装置は、カーネルが起動された直後の前記RAMの状態を前記復帰時RAM状態として記憶していることを特徴とする請求項1に記載の画像形成装置。印刷を実行するプリントエンジンと、プログラムを記憶しているROM、前記ROMに記憶されている前記プログラムを実行するCPU、および、前記CPUの作業領域として用いられるRAMを備えており、前記プリントエンジンに印刷を実行させるメインコントローラーと、前記メインコントローラーより消費電力が小さい省エネコントローラーと、前記メインコントローラーへの電力の供給が停止されて前記省エネコントローラーに電力が供給されているスリープ状態から前記メインコントローラーが復帰するまでの何れかの時期の前記RAMの状態である復帰時RAM状態を記憶する不揮発性記憶装置とを備えている画像形成装置の前記CPUによって実行されるための復帰用プログラムであって、前記スリープ状態から復帰するときに前記RAMの状態を前記不揮発性記憶装置に記憶されている前記復帰時RAM状態にした後、残りの復帰処理を実行することを前記CPUに実行させることを特徴とする復帰用プログラム。しかしながら、特許文献1、2に記載された画像形成装置においては、スリープ状態中に省エネコントローラーが外部の機器からデータを受信すると、省エネコントローラーがメインコントローラーに電力を供給してメインコントローラーを復帰し、外部の機器から受信したデータをメインコントローラーによって処理するが、メインコントローラーの復帰に時間がかかるので、ネットワーク接続がタイムアウトしたり、利用者を長時間待たせてしまったりする。そこで、本発明は、スリープ状態においてメインコントローラーを従来より高速に復帰することができる画像形成装置を提供することを目的とする。本発明の画像形成装置は、印刷を実行するプリントエンジンと、プログラムを記憶しているROM、前記ROMに記憶されている前記プログラムを実行するCPU、および、前記CPUの作業領域として用いられるRAMを備えており、前記プリントエンジンに印刷を実行させるメインコントローラーと、前記メインコントローラーより消費電力が小さい省エネコントローラーと、前記メインコントローラーへの電力の供給が停止されて前記省エネコントローラーに電力が供給されているスリープ状態から前記メインコントローラーが復帰するまでの何れかの時期の前記RAMの状態である復帰時RAM状態を記憶する不揮発性記憶装置とを備えており、前記CPUは、前記スリープ状態から復帰するときに前記RAMの状態を前記不揮発性記憶装置に記憶されている前記復帰時RAM状態にした後、残りの復帰処理を実行することを特徴とする。この構成により、本発明の画像形成装置は、メインコントローラーのCPUがスリープ状態から復帰するときに不揮発性記憶装置に記憶されている復帰時RAM状態を使用するので、スリープ状態においてメインコントローラーを従来より高速に復帰することができる。また、本発明の画像形成装置の前記不揮発性記憶装置は、カーネルが起動された直後の前記RAMの状態を前記復帰時RAM状態として記憶していても良い。この構成により、本発明の画像形成装置は、異なるアプリケーションを搭載した種々の型式の装置として採用されることができる。本発明の復帰用プログラムは、印刷を実行するプリントエンジンと、プログラムを記憶しているROM、前記ROMに記憶されている前記プログラムを実行するCPU、および、前記CPUの作業領域として用いられるRAMを備えており、前記プリントエンジンに印刷を実行させるメインコントローラーと、前記メインコントローラーより消費電力が小さい省エネコントローラーと、前記メインコントローラーへの電力の供給が停止されて前記省エネコントローラーに電力が供給されているスリープ状態から前記メインコントローラーが復帰するまでの何れかの時期の前記RAMの状態である復帰時RAM状態を記憶する不揮発性記憶装置とを備えている画像形成装置の前記CPUによって実行されるための復帰用プログラムであって、前記スリープ状態から復帰するときに前記RAMの状態を前記不揮発性記憶装置に記憶されている前記復帰時RAM状態にした後、残りの復帰処理を実行することを前記CPUに実行させることを特徴とする。この構成により、本発明の復帰用プログラムを実行する画像形成装置は、メインコントローラーのCPUがスリープ状態から復帰するときに不揮発性記憶装置に記憶されている復帰時RAM状態を使用するので、スリープ状態においてメインコントローラーを従来より高速に復帰することができる。本発明の画像形成装置は、スリープ状態においてメインコントローラーを従来より高速に復帰することができる。以下、本発明の一実施の形態について、図面を用いて説明する。まず、本実施の形態に係る画像形成装置としてのMFPMultifunctionPeripheralの構成について説明する。図1は、本実施の形態に係るMFP10のブロック図である。図1に示すように、MFP10は、用紙に印刷を実行する印刷デバイスであるプリントエンジン11と、原稿を読み込んで画像データを生成する読取デバイスであるスキャナー12と、種々の情報を表示する例えばLCDなどの表示デバイスである表示パネル13と、プリントエンジン11に印刷を実行させるメインコントローラー14と、メインコントローラー14より消費電力が小さい省エネコントローラー15と、EEPROMElectricallyErasableProgrammableReadOnlyMemoryなどの不揮発性記憶装置16とを備えている。メインコントローラー14は、例えば、CPUCentralProcessingUnit14aと、本発明の復帰用プログラムを含むプログラムおよび各種のデータを予め記憶しているROM14bと、CPU14aの作業領域として用いられるRAM14cとを備えている。CPU14aは、ROM14bに記憶されているプログラムを実行することによってメインコントローラー14を動作させる演算処理装置である。RAM14cは、CPU14aによってプログラムが実行されるときにプログラムや各種のデータを一時的に記憶するようになっている。省エネコントローラー15は、例えば、CPU15aと、プログラムおよび各種のデータを予め記憶しているROM15bと、CPU15aの作業領域として用いられるRAM15cとを備えている。CPU15aは、ROM15bに記憶されているプログラムを実行することによって省エネコントローラー15を動作させる演算処理装置である。RAM15cは、CPU15aによってプログラムが実行されるときにプログラムや各種のデータを一時的に記憶するようになっている。不揮発性記憶装置16は、メインコントローラー14がスリープ状態から復帰するまでの何れかの時期のRAM14cの状態である復帰時RAM状態を記憶している。図2は、メインコントローラー14および省エネコントローラー15の機能を示すブロック図である。図2に示すように、省エネコントローラー15は、MFP10の外部の機器90から送信されてきたデータを受信する外部I/Finterfaceドライバー15dと、外部I/Fドライバー15dによって受信されたデータを処理する省エネ側処理実行部15eと、外部I/Fドライバー15dによって受信されたデータの処理を省エネ側処理実行部15eに指示する省エネ側外部I/F制御部15fと、プリントエンジン11、スキャナー12、表示パネル13などの各サブシステムや、メインコントローラー14への電力の供給を制御する電源制御部15gとして機能するようになっている。メインコントローラー14は、スリープ状態からの復帰の処理を実行する復帰処理実行部14dと、外部I/Fドライバー15dによって受信されたデータを処理するメイン側処理実行部14eと、外部I/Fドライバー15dによって受信されたデータの処理をメイン側処理実行部14eに指示するメイン側外部I/F制御部14fとして機能するようになっている。なお、MFP10と、機器90とは、USBUniversalSerialBusケーブルなどによって直に、または、LANLocalAreaNetworkなどのネットワークを介して、接続されている。また、機器90は、PCPersonalComputerなどの情報処理装置によって構成されている。次に、MFP10の動作について説明する。図3は、不揮発性記憶装置16が復帰時RAM状態を記憶していない場合のメインコントローラー14の復帰のフローチャートである。不揮発性記憶装置16が復帰時RAM状態を記憶していない場合、メインコントローラー14は、図3に示すようにスリープ状態から復帰する。図3に示すように、メインコントローラー14の復帰処理実行部14dは、ROM14bに記憶されているプログラムのうちブートプログラムを起動するS101。次いで、復帰処理実行部14dは、圧縮されてROM14bに記憶されているプログラムを、S101において起動されたブートプログラムによって伸長してRAM14cに展開するS102。次いで、復帰処理実行部14dは、S102においてRAM14cに展開されたプログラムのうちカーネルを、S101において起動されたブートプログラムによって起動するS103。最後に、復帰処理実行部14dは、S103において起動されたカーネルによって各種のアプリケーションを起動するS104。以上の処理によって、メインコントローラー14は、スリープ状態から復帰する。ここで、RAM14cの状態は、図3に示すようにメインコントローラー14がスリープ状態から復帰するまでの間で変化する。不揮発性記憶装置16には、上述したように、メインコントローラー14がスリープ状態から復帰するまでの何れかの時期のRAM14cの状態が復帰時RAM状態として記憶されている。以下、カーネルが起動されたS103直後のRAM14cの状態が復帰時RAM状態として不揮発性記憶装置16に記憶されている場合について説明する。省エネコントローラー15は、プリントエンジン11、スキャナー12、表示パネル13などの各サブシステムと、メインコントローラー14とへの電力の供給を電源制御部15gによって停止することによってスリープ状態に移行することができる。図4は、スリープ状態における省エネコントローラー15の動作のフローチャートである。省エネコントローラー15は、スリープ状態中に機器90からデータが送信されてくると、図4に示す処理を実行する。図4に示すように、省エネコントローラー15の外部I/Fドライバー15dは、機器90から送信されてきたデータを受信しS111、データを受信したことを省エネ側外部I/F制御部15fに通知するS112。次いで、省エネ側外部I/F制御部15fは、外部I/Fドライバー15dによって受信されたデータが省エネ側処理実行部15eによって処理できるデータであるか否かを判断するS113。省エネ側外部I/F制御部15fは、外部I/Fドライバー15dによって受信されたデータが省エネ側処理実行部15eによって処理できるデータであるとS113において判断すると、外部I/Fドライバー15dによって受信されたデータの処理を省エネ側処理実行部15eに指示するS114。次いで、省エネ側処理実行部15eは、外部I/Fドライバー15dによって受信されたデータの処理をS114における省エネ側外部I/F制御部15fからの指示に応じて実行しS115、処理の完了を省エネ側外部I/F制御部15fに通知するS116。次いで、省エネ側外部I/F制御部15fは、S116における省エネ側処理実行部15eからの通知に応じて機器90への応答を外部I/Fドライバー15dに指示するS117。次いで、外部I/Fドライバー15dは、S117における省エネ側外部I/F制御部15fからの指示に応じて機器90に応答してS118、図4に示す処理を終了する。省エネ側外部I/F制御部15fは、外部I/Fドライバー15dによって受信されたデータが省エネ側処理実行部15eによって処理できるデータ以外のデータであるとS113において判断すると、メインコントローラー14への電力の供給を省エネ側処理実行部15eに指示するS119。次いで、省エネ側処理実行部15eは、S119における省エネ側外部I/F制御部15fからの指示に応じて、メインコントローラー14への電力の供給を電源制御部15gに指示するS120。次いで、電源制御部15gは、S120における省エネ側処理実行部15eからの指示に応じてメインコントローラー14に電力を供給するS121。次いで、省エネ側外部I/F制御部15fは、電力が供給されることによって起動されたメインコントローラー14のメイン側外部I/F制御部14fに、外部I/Fドライバー15dによって受信されたデータの処理を指示するS122。図5は、メインコントローラー14の動作のフローチャートである。S121図4参照。において省エネコントローラー15の電源制御部15gによってメインコントローラー14に電力が供給されると、メインコントローラー14は、図5に示す処理を実行する。図5に示すように、メインコントローラー14の復帰処理実行部14dは、ROM14bに記憶されているプログラムのうちブートプログラムを起動するS131。ブートプログラムの起動によって、RAM14cに対するアクセスを制御するメモリーコントローラーも起動される。次いで、復帰処理実行部14dは、S131において起動されたメモリーコントローラーによって、RAM14cの状態を不揮発性記憶装置16に記憶されている復帰時RAM状態にするS132。したがって、RAM14cの状態は、メインコントローラー14がカーネルを起動したS103直後のRAM14cの状態となる。次いで、復帰処理実行部14dは、残りの復帰処理を実行するS133。すなわち、復帰処理実行部14dは、上述したS104の処理を実行する。以上の処理によって、メインコントローラー14は、スリープ状態から復帰する。そして、起動したメインコントローラー14のメイン側外部I/F制御部14fは、省エネコントローラー15の省エネ側外部I/F制御部15fからS122図4参照。における指示を受け取ると、S122における省エネコントローラー15の省エネ側外部I/F制御部15fからの指示に応じて、省エネコントローラー15の外部I/Fドライバー15dによって受信されたデータの処理をメイン側処理実行部14eに指示するS134。次いで、メイン側処理実行部14eは、外部I/Fドライバー15dによって受信されたデータの処理をS134におけるメイン側外部I/F制御部14fからの指示に応じて実行しS135、処理の完了をメイン側外部I/F制御部14fに通知するS136。次いで、メイン側外部I/F制御部14fは、S136におけるメイン側処理実行部14eからの通知に応じて機器90への応答を省エネコントローラー15の省エネ側外部I/F制御部15fに指示してS137、図5に示す処理を終了する。そして、省エネコントローラー15の省エネ側外部I/F制御部15fは、図4に示すように、S137図5参照。におけるメインコントローラー14のメイン側外部I/F制御部14fからの通知を受信しS123、S123において受信した通知に応じて機器90への応答を外部I/Fドライバー15dに指示するS117。次いで、外部I/Fドライバー15dは、S117における省エネ側外部I/F制御部15fからの指示に応じて機器90に応答してS118、図4に示す処理を終了する。なお、外部の機器90から受信したデータのうち省エネコントローラー15によって処理できるデータとしては、例えば、ARPAddressResolutionProtocolリクエスト、POP3PostOfficeProtocolversion3レスポンス、MFP10の状態を要求するコマンドが考えられる。ARPリクエストは、MFP10のMACMediaAccessControlアドレスを要求する機器90から受信するデータである。POP3レスポンスは、省エネコントローラー15が電子メールの確認のために機器90としてのメールサーバに送信したPOP3リクエストに対する応答として、機器90から受信するデータである。MFP10の状態を要求するコマンドは、スリープ状態、紙詰まり状態などのMFP10の状態を要求する機器90から受信するデータである。どのようなデータを省エネコントローラー15によって処理できるデータとするかは、設計次第である。また、外部の機器90から受信したデータのうち省エネコントローラー15によって処理できるデータ以外のデータとしては、例えば、機器90から受信する印刷要求が考えられる。なお、省エネコントローラー15は、機器90から印刷要求を受信した場合、メインコントローラー14に電力を供給してメインコントローラー14を起動させるだけでなく、印刷を実行するプリントエンジン11にも電力を供給してプリントエンジン11も起動させる。以上に説明したように、MFP10は、メインコントローラー14のCPU14aがスリープ状態から復帰するときに不揮発性記憶装置16に記憶されている復帰時RAM状態を使用するので、スリープ状態においてメインコントローラー14を従来より高速に復帰することができる。また、MFP10は、カーネルが起動された直後のRAM14cの状態を復帰時RAM状態として不揮発性記憶装置16が記憶しているので、異なるアプリケーションを搭載した種々の型式の装置として採用されることができる。なお、不揮発性記憶装置16は、本実施の形態においてカーネルが起動されたS103直後のRAM14cの状態を復帰時RAM状態として記憶しているが、メインコントローラー14がスリープ状態から復帰するまでの何れの時期のRAM14cの状態を復帰時RAM状態として記憶するようになっていても良い。例えば、MFP10は、各種のアプリケーションが起動されたS104直後のRAM14cの状態を不揮発性記憶装置16が復帰時RAM状態として記憶している場合、カーネルが起動されたS103直後のRAM14cの状態を不揮発性記憶装置16が復帰時RAM状態として記憶している構成と比較して、スリープ状態においてメインコントローラー14を高速に復帰することができる。不揮発性記憶装置16は、S103の処理の途中や、S104の処理の途中のRAM14cの状態を復帰時RAM状態として記憶するようになっていても良い。また、MFP10は、スリープ状態中に外部の機器90から受信したデータが省エネコントローラー15によって処理できるデータであるときS113でYES、メインコントローラー14を起動することなく、外部の機器90から受信したデータを省エネコントローラー15によって処理するS115。したがって、MFP10は、スリープ状態中に外部の機器90から受信したデータが省エネコントローラー15によって処理できるデータであるとき、そのデータを高速に処理することができる。また、MFP10は、スリープ状態中に外部の機器90から受信したデータが省エネコントローラー15によって処理できるデータであるときS113でYES、メインコントローラー14を起動しないので、スリープ状態中に外部の機器からデータを受信したときにメインコントローラーを起動する上述した特許文献1、2に記載された画像形成装置と比較して、消費電力を抑える能力が高い。また、MFP10は、スリープ状態中に外部の機器90から受信したデータが省エネコントローラー15によって処理できるデータ以外のデータであるときS113でNO、メインコントローラー14を起動してS121、外部の機器90から受信したデータをメインコントローラー14によって処理するS135。したがって、MFP10は、スリープ状態中に外部の機器90から受信したデータを漏れなく処理することができる。なお、本実施の形態においては、画像形成装置としてMFPについて説明しているが、プリントエンジンを備えている画像形成装置であれば、プリンタなど、MFP以外の画像形成装置であっても良い。