(57)【特許請求の範囲】
【請求項１】
第１記憶装置と、
前記第１記憶装置よりも書き込み速度が遅い第２記憶装置と、
画像データを順次生成するための生成部と、
順次生成される前記画像データを格納するためのバッファと、
前記バッファに順次格納される前記画像データを前記第１記憶装置および前記第２記憶装置のそれぞれに書き込むための書込部と、
前記バッファがオーバーフローした場合に、前記第１記憶装置に書き込み済みである画像データの一部または全部を前記バッファから削除するとともに、前記生成部によって生成される新たな画像データを前記バッファに書き込むためのバッファ書込部と、
前記生成部によって生成された複数の画像データうち前記第２記憶装置に書き込まれなかった画像データを、前記生成部による一連の画像データの生成終了後に、前記第１記憶装置から前記第２記憶装置にコピーするためのコピー部とを備え、
前記バッファ書込部は、前記生成部によって生成される画像データを当該画像データの生成順に前記バッファ上で連続するように書き込み、
前記書込部は、前記第１記憶装置に画像データを書き込み中に参照する前記バッファ上のアドレスと、前記第２記憶装置に画像データを書き込み中に参照する前記バッファ上のアドレスとの間の差が所定値以上になったときに、前記バッファから前記第２記憶装置への画像データの書き込みを中止し、前記第１記憶装置に書き込み中の画像データに合わせて、前記バッファから前記第２記憶装置への画像データの書き込みを再開する、画像形成装置。
【請求項２】
前記バッファから削除される前記画像データは、前記第１記憶装置に書き込み済みの画像データであり、かつ前記第２記憶装置に書き込み中ではない画像データである、請求項１に記載の画像形成装置。
【請求項３】
前記第１記憶装置および前記第２記憶装置に書き込まれる前記画像データは、前記バッファに格納される画像データの順に書き込まれ、
前記書込部は、前記バッファがオーバーフローした場合に、前記バッファから前記第２記憶装置への画像データの書き込みを中止し、前記第１記憶装置に書き込み中の画像データに合わせて、前記バッファから前記第２記憶装置への画像データの書き込みを再開する、請求項１に記載の画像形成装置。
【請求項４】
前記第２記憶装置に書き込まれなかった前記画像データが前記バッファに残っている場合には、前記コピー部は、当該画像データを前記バッファから前記第２記憶装置に書き込む、請求項１〜３のいずれか１項に記載の画像形成装置。
【請求項５】
コンピュータの制御方法であって、
前記コンピュータは、
第１記憶装置と、
前記第１記憶装置よりも書き込み速度が遅い第２記憶装置と、
画像データを順次生成するための生成部と、
順次生成される前記画像データを格納するためのバッファとを備え、
前記制御方法は、
前記バッファに順次格納される前記画像データを前記第１記憶装置および前記第２記憶装置のそれぞれに書き込むステップと、
前記バッファがオーバーフローした場合に、前記第１記憶装置に書き込み済みである画像データの一部または全部を前記バッファから削除するとともに、前記生成部によって生成される新たな画像データを前記バッファに書き込むステップと、
前記生成部によって生成された複数の画像データうち前記第２記憶装置に書き込まれなかった画像データを、前記生成部による一連の画像データの生成終了後に、前記第１記憶装置から前記第２記憶装置にコピーするステップとを備え、
前記バッファに順次格納される前記画像データを前記第１記憶装置および前記第２記憶装置のそれぞれに書き込むステップは、前記第１記憶装置に画像データを書き込み中に参照する前記バッファ上のアドレスと、前記第２記憶装置に画像データを書き込み中に参照する前記バッファ上のアドレスとの間の差が所定値以上になったときに、前記バッファから前記第２記憶装置への画像データの書き込みを中止し、前記第１記憶装置に書き込み中の画像データに合わせて、前記バッファから前記第２記憶装置への画像データの書き込みを再開するステップを含む、制御方法。
【請求項６】
コンピュータの制御プログラムであって、
前記コンピュータは、
第１記憶装置と、
前記第１記憶装置よりも書き込み速度が遅い第２記憶装置と、
画像データを順次生成するための生成部と、
順次生成される前記画像データを格納するためのバッファとを備え、
前記制御プログラムは、前記コンピュータに、
前記バッファに順次格納される前記画像データを前記第１記憶装置および前記第２記憶装置のそれぞれに書き込むステップと、
前記バッファがオーバーフローした場合に、前記第１記憶装置に書き込み済みである画像データの一部または全部を前記バッファから削除するとともに、前記生成部によって生成される新たな画像データを前記バッファに書き込むステップと、
前記生成部によって生成された複数の画像データうち前記第２記憶装置に書き込まれなかった画像データを、前記生成部による一連の画像データの生成終了後に、前記第１記憶装置から前記第２記憶装置にコピーするステップとを実行させ、
前記バッファに順次格納される前記画像データを前記第１記憶装置および前記第２記憶装置のそれぞれに書き込むステップは、前記第１記憶装置に画像データを書き込み中に参照する前記バッファ上のアドレスと、前記第２記憶装置に画像データを書き込み中に参照する前記バッファ上のアドレスとの間の差が所定値以上になったときに、前記バッファから前記第２記憶装置への画像データの書き込みを中止し、前記第１記憶装置に書き込み中の画像データに合わせて、前記バッファから前記第２記憶装置への画像データの書き込みを再開するステップを含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像形成装置の制御に関し、特に、ミラーリングを行なう画像形成装置の制御に関する。
【背景技術】
【０００２】
従来、同一のデータを複数の記憶装置に格納する所謂ミラーリング技術が開発されている。ミラーリング機能が搭載されているシステムは、１つの記憶装置が故障したとしても、他の記憶装置に格納されているデータを用いて復旧することができる。
【０００３】
ミラーリング技術に関し、特開平１０−３２０１３０号公報（特許文献１）は、「ディスク処理におけるアクセス速度を向上させる」ディスク処理装置を開示している。当該ディスク処理装置は、２つのＨＤＤ（Hard  Disc  Drive）を備える。一般的に、ＨＤＤの書き込み速度は、書き込む場所がディスクの外側に向かうにつれて速くなる。当該ディスク処理装置は、一方のＨＤＤにおいては外側から書き込みを行ない、他方のＨＤＤにおいては内側から書き込みを行なう。これにより、当該ディスク処理装置は、２つのＨＤＤの書き込み速度を異ならせる。当該ディスク処理装置は、２つのＨＤＤの書き込み速度の差が大きくなるようにミラーリングを行なう。その結果、当該ディスク処理装置は、低速のＨＤＤの書き込み完了を待たずに、高速のＨＤＤに対する次のデータの書き込みを開始できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−３２０１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、近年では、ＭＦＰ（Multi-Functional  Peripheral）等の画像形成装置においても、ミラーリング機能が搭載されている。当該画像形成装置は、スキャナーによって生成された画像データをバッファに一時的に格納し、バッファリングされた画像データをＨＤＤ等の各記憶装置に書き込むことによりミラーリングを実現する。画像形成装置は、バッファを用いることにより、記憶装置への画像データの書き込みが終わるのを待たずに、次の画像データを読み込むことができる。特許文献１は、このようなバッファを用いたミラーリングについては開示していない。
【０００６】
バッファがオーバーフローした場合には、画像形成装置は、バッファに空き領域を作る必要がある。このとき、低速の記憶装置に対する画像データの書き込みが終了するまで高速の記憶装置が画像データの書き込みを待つと、画像形成装置が画像データを生成するパフォーマンスが低下してしまう。
【０００７】
本開示は上述のような問題点を解決するためになされたものであって、その目的は、順次生成される画像データを書き込み速度の異なる記憶装置に対してミラーリングする場合に、低速な記憶装置に対する画像データの書き込みの完了を待たずに次の画像データを生成できる画像形成装置を提供することである。他の局面における目的は、順次生成される画像データを書き込み速度の異なる記憶装置に対してミラーリングする場合に、低速な記憶装置に対する画像データの書き込みの完了を待たずに次の画像データを生成できる可能なコンピュータの制御方法を提供することである。さらに他の局面における目的は、順次生成される画像データを書き込み速度の異なる記憶装置に対してミラーリングする場合に、低速な記憶装置に対する画像データの書き込みの完了を待たずに次の画像データを生成できるコンピュータの制御プログラムを提供することである。
【課題を解決するための手段】
【０００８】
ある局面に従うと、画像形成装置は、第１記憶装置と、第１記憶装置よりも書き込み速度が遅い第２記憶装置と、画像データを順次生成するための生成部と、順次生成される画像データを格納するためのバッファと、バッファに順次格納される画像データを第１記憶装置および第２記憶装置のそれぞれに書き込むための書込部と、バッファがオーバーフローした場合に、第１記憶装置に書き込み済みである画像データの一部または全部をバッファから削除するとともに、生成部によって生成される新たな画像データをバッファに書き込むためのバッファ書込部と、生成部によって生成された複数の画像データうち第２記憶装置に書き込まれなかった画像データを、生成部による一連の画像データの生成終了後に、第１記憶装置から第２記憶装置にコピーするためのコピー部とを備える。
【０００９】
好ましくは、バッファから削除される画像データは、第１記憶装置に書き込み済みの画像データであり、かつ第２記憶装置に書き込み中ではない画像データである。
【００１０】
好ましくは、第１記憶装置および第２記憶装置に書き込まれる画像データは、バッファに格納される画像データの順に書き込まれる。書込部は、バッファがオーバーフローした場合に、バッファから第２記憶装置への画像データの書き込みを中止し、第１記憶装置に書き込み中の画像データに合わせて、バッファから第２記憶装置への画像データの書き込みを再開する。
【００１１】
好ましくは、第２記憶装置に書き込まれなかった画像データがバッファに残っている場合には、コピー部は、当該画像データをバッファから第２記憶装置に書き込む。
【００１２】
好ましくは、バッファ書込部は、生成部によって生成される画像データを当該画像データの生成順にバッファ上で連続するように書き込む。書込部は、第１記憶装置に画像データを書き込み中に参照するバッファ上のアドレスと、第２記憶装置に画像データを書き込み中に参照するバッファ上のアドレスとの間の差が所定値以上になったときに、バッファから第２記憶装置への画像データの書き込みを中止し、第１記憶装置に書き込み中の画像データに合わせて、バッファから第２記憶装置への画像データの書き込みを再開する。
【００１３】
他の局面に従うと、コンピュータの制御方法が提供される。コンピュータは、第１記憶装置と、第１記憶装置よりも書き込み速度が遅い第２記憶装置と、画像データを順次生成するための生成部と、順次生成される画像データを格納するためのバッファとを備える。制御方法は、バッファに順次格納される画像データを第１記憶装置および第２記憶装置のそれぞれに書き込むステップと、バッファがオーバーフローした場合に、第１記憶装置に書き込み済みである画像データの一部または全部をバッファから削除するとともに、生成部によって生成される新たな画像データをバッファに書き込むステップと、生成部によって生成された複数の画像データうち第２記憶装置に書き込まれなかった画像データを、生成部による一連の画像データの生成終了後に、第１記憶装置から第２記憶装置にコピーするステップとを備える。
【００１４】
さらに他の局面に従うと、コンピュータの制御プログラムが提供される。コンピュータは、第１記憶装置と、第１記憶装置よりも書き込み速度が遅い第２記憶装置と、画像データを順次生成するための生成部と、順次生成される画像データを格納するためのバッファとを備える。制御プログラムは、コンピュータに、バッファに順次格納される画像データを第１記憶装置および第２記憶装置のそれぞれに書き込むステップと、バッファがオーバーフローした場合に、第１記憶装置に書き込み済みである画像データの一部または全部をバッファから削除するとともに、生成部によって生成される新たな画像データをバッファに書き込むステップと、生成部によって生成された複数の画像データうち第２記憶装置に書き込まれなかった画像データを、生成部による一連の画像データの生成終了後に、第１記憶装置から第２記憶装置にコピーするステップとを実行させる。
【発明の効果】
【００１５】
ある局面において、順次生成される画像データを書き込み速度の異なる記憶装置に対してミラーリングする場合に、低速な記憶装置に対する画像データの書き込みの完了を待たずに次の画像データを生成できる。
【００１６】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１７】
【図１】ＭＦＰとして構成される画像形成装置の外観を示す図である。
【図２】第１の実施の形態に従う画像形成装置のミラーリング処理を概略的に示した図である。
【図３】記憶装置の書き込み速度の差を概略的に示した概念図である。
【図４】第１の実施の形態に従う画像形成装置のミラーリング処理の一例を示す図である。
【図５】第１の実施の形態に従う画像形成装置の機能構成の一例を示すブロック図である。
【図６】バッファがオーバーフローする前におけるミラーリング処理を示す図である。
【図７】バッファがオーバーフローした場合のミラーリング処理を示す図である。
【図８】第１の実施の形態に従う画像形成装置のミラーリング処理を示すフローチャートである。
【図９】図８のステップＳ５０で実行されるコピー処理を示すフローチャートである。
【図１０】第１の実施の形態に従う画像形成装置の主要なハードウェア構成を示すブロック図である。
【図１１】第２の実施の形態に従う画像形成装置のミラーリング処理の一例を示す図である。
【図１２】第３の実施の形態に従う画像形成装置のミラーリング処理の一例を示す図である。
【図１３】画像データがバッファから記憶装置に書き込まれている様子を示した図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。また、以下で説明する各実施の形態または変形例は、適宜選択的に組み合わされてもよい。
【００１９】
＜第１の実施の形態＞
［画像形成装置１００Ａ］
図１および図２を参照して、第１の実施の形態に従う画像形成装置１００Ａの概要について説明する。図１は、ＭＦＰとして構成される画像形成装置１００Ａの外観を示す図である。図２は、画像形成装置１００Ａのミラーリング処理を概略的に示した図である。
【００２０】
ＭＦＰとしての画像形成装置１００Ａには、スキャナー機能、コピー機能、およびプリンター機能が搭載されている。図１および図２に示されるように、画像形成装置１００Ａは、ＣＰＵ（Central  Processing  Unit）２と、スキャナー６（生成部）と、フィーダー８と、操作パネル９と、複数の記憶装置２０Ａ，２０Ｂとを備える。以下では、記憶装置２０Ａ，２０Ｂを記憶装置２０と総称する場合もある。
【００２１】
ＣＰＵ２は、画像形成装置１００Ａの制御プログラムなどの各種プログラムを実行することで、画像形成装置１００Ａの動作を制御する。ＣＰＵ２は、スキャナー６によって生成される画像データを一時的に記憶するためのバッファ２Ａを有する。バッファ２Ａは、たとえば、ＣＰＵ２のキャッシュメモリに相当する。
【００２２】
操作パネル９は、画像形成装置１００Ａに対するユーザーのタッチ操作を受け付ける。操作パネル９がスキャンの開始操作をユーザーから受け付けると、フィーダー８は、セットされている原稿を順次スキャナー６に送る。スキャナー６は、フィーダー８から送られてくる原稿を順次スキャンし、当該原稿の画像データを生成する。
【００２３】
図２に示されるように、スキャナー６は、生成した画像データをＣＰＵ２に出力する。ＣＰＵ２は、生成された画像データをバッファ２Ａに一時的に格納する。その後、ＣＰＵ２は、バッファ２Ａに順次格納される画像データを記憶装置２０Ａ，２０Ｂのそれぞれに書き込む。これにより、記憶装置２０Ａ，２０Ｂのそれぞれには、同一の画像データが書き込まれ、ミラーリングが実現される。
【００２４】
このように、スキャナー６は、読み書きの速度が記憶装置２０Ａ，２０Ｂよりも高速であるバッファ２Ａに画像データを書き込むことにより、記憶装置２０Ａ，２０Ｂに対する画像データの書き込みが終わるのを待たずに次の原稿を読み込むことができる。その結果、画像形成装置１００Ａは、スキャン処理に要する時間を短縮することができる。
【００２５】
なお、図１には、ＨＤＤとしての記憶装置２０Ａ，２０Ｂが示されているが、記憶装置２０Ａ，２０Ｂは、ＨＤＤに限定されない。たとえば、記憶装置２０Ａ，２０Ｂは、ＳＳＤ（Solid  State  Drive）やその他の記録媒体であってもよい。また、記憶装置２０Ａ，２０Ｂは、同一種類の記録媒体であってもよいし、異なる種類の記録媒体であってもよい。さらに、画像形成装置１００Ａに備えられる記憶装置の数は、２つに限定されない。たとえば、画像形成装置１００Ａは、３つ以上の記憶装置を備えてもよい。
【００２６】
［記憶装置２０Ａ，２０Ｂ］
図３を参照して、記憶装置２０Ａ，２０Ｂの書き込み速度の差について説明する。図３は、記憶装置２０Ａ，２０Ｂの書き込み速度の差を概略的に示した概念図である。
【００２７】
図３には、ＨＤＤとしての記憶装置２０（すなわち、記憶装置２０Ａ，２０Ｂ）が示されている。記憶装置２０は、ディスクおよび磁気ヘッドを有する。記憶装置２０は、ディスクを高速に回転し、当該ディスク上の磁気の並び方を磁気ヘッドで変えることで画像データを書き込む。
【００２８】
記憶装置２０Ａ，２０Ｂの回転速度が同じである場合には、ディスクの外側に向かうほど磁気ヘッドが一定時間に進める距離は長くなる。そのため、書き込み速度は、ディスクの外側に向かうにつれて速くなる。
【００２９】
以下の説明では、記憶装置２０Ａは、ディスクの外周部分２１Ａから画像データの書き込みを開始し、記憶装置２０Ｂは、ディスクの内周部分から画像データの書き込みを開始するものとする。すなわち、記憶装置２０Ａの書き込み速度は、記憶装置２０Ｂの書き込み速度よりも早くなる。このことから、以下では、記憶装置２０Ａを「高速の記憶装置２０Ａ」ともいい、記憶装置２０Ｂを「低速の記憶装置２０Ｂ」ともいう。
【００３０】
なお、図３においては、記憶装置２０Ａ，２０Ｂの書き込み速度の差がディスクの外周と内周との差に起因する例について説明を行なったが、記憶装置２０Ａ，２０Ｂの書き込み速度の差は、他の要因に起因してもよい。たとえば、記憶装置２０の書き込み速度の差は、性能差に起因してもよいし、ＨＤＤのサイズ差に起因してもよい。
【００３１】
また、記憶装置２０Ａ，２０Ｂのいずれが高速であるかは、一例として、予め設定されている。あるいは、画像形成装置１００Ａは、所定時間内（たとえば、１秒以内）に書き込まれる画像データのサイズが大きい方の記憶装置を高速の記憶装置として決定してもよい。
【００３２】
［ミラーリング処理の概要］
図４を参照して、第１の実施の形態に従う画像形成装置１００Ａのミラーリング処理について説明する。図４は、画像形成装置１００Ａのミラーリング処理の一例を示す図である。
【００３３】
ステップ（Ａ）に示されるように、スキャナー６は、画像データＡ〜Ｄを順に生成する。画像データＡ〜Ｄの各々は、読み込まれた原稿と一対一に対応するデータであってもよいし、原稿の一部を示す断片的なデータであってもよい。
【００３４】
バッファ２Ａは、スキャナー６によって生成された画像データＡ〜Ｄを一時的に格納する。好ましくは、バッファ２Ａに書き込まれる画像データは、スキャナー６によって生成される画像データの順に書き込まれ、バッファ２Ａの記憶領域上で連続するように順に書き込まれる。
【００３５】
画像形成装置１００Ａは、バッファ２Ａに格納された画像データを、高速の記憶装置２０Ａの書き込み速度に合わせて記憶装置２０Ａ，２０Ｂのそれぞれに順次書き込む。ステップ（Ａ）において、記憶装置２０Ａに対する画像データＡ〜Ｄの書き込みが完了したとする。画像形成装置１００Ａは、低速の記憶装置２０Ｂに対しては画像データＡを書き込んでいる最中であるとする。このとき、バッファ２Ａがオーバーフローしたとする。
【００３６】
ステップ（Ｂ）に示されるように、高速の記憶装置２０Ａは、低速の記憶装置２０Ｂの書き込みを待たずに次の画像データの書き込みを開始する。より具体的には、画像形成装置１００Ａは、バッファ２Ａがオーバーフローした場合に、高速の記憶装置２０Ａに書き込み済みである画像データの一部または全部をバッファ２Ａから削除するとともに、スキャナー６からの新たな画像データをバッファ２Ａに書き込む。
【００３７】
一例として、バッファ２Ａから削除される画像データは、高速の記憶装置２０Ａに書き込み済みの画像データであり、かつ低速の記憶装置２０Ｂに書き込み中ではない画像データである。ステップ（Ｂ）の例では、記憶装置２０Ｂに書き込み中の画像データＡの次に生成された画像データＢが削除されている。これにより、記憶装置２０Ｂは、書き込み処理を中止することなく続けて画像データＡを書き込むことができる。画像形成装置１００Ａは、画像データＢを削除することによりバッファ２Ａに空き領域を作り、新たな画像データＥを当該空き領域に書き込む。その結果、高速の記憶装置２０Ａは、画像データＥの書き込みを開始できる。
【００３８】
ステップ（Ｃ）において、画像形成装置１００Ａは、スキャナー６によって生成された画像データＡ〜Ｅうち低速の記憶装置２０Ｂに書き込まれなかった画像データＢ〜Ｅを、スキャナー６の動作終了後に、記憶装置２０Ａから記憶装置２０Ｂにコピーする。これにより、画像形成装置１００Ａは、生成された画像データを記憶装置２０Ａ，２０Ｂにミラーリングすることができる。
【００３９】
以上のようにして、画像形成装置１００Ａは、バッファ２Ａに順次格納される画像データを記憶装置２０Ａおよび記憶装置２０Ｂのそれぞれに書き込む。画像形成装置１００Ａは、バッファ２Ａがオーバーフローした場合に、記憶装置２０Ａに書き込み済みである画像データの一部または全部をバッファ２Ａから削除するとともに、スキャナー６によって生成される新たな画像データをバッファ２Ａに書き込む。その後、画像形成装置１００Ａは、スキャナー６によって生成された画像データＡ〜Ｅのうち記憶装置２０Ｂに書き込まれなかった画像データＢ〜Ｅを、スキャナー６による一連の画像データの生成終了後に、記憶装置２０Ａから記憶装置２０Ｂにコピーする。
【００４０】
このように、画像形成装置１００Ａは、低速の記憶装置２０Ｂへの画像データの書き込み完了を待たずに、バッファ２Ａに新たな画像データを書き込む。これにより、高速の記憶装置２０Ａに対する画像データの書き込み時間を短縮することができる。また、バッファ２Ａがオーバーフローした場合に、画像形成装置１００Ａは、高速の記憶装置２０Ａの書き込み速度に合わせてバッファ２Ａに空き領域を確保するので、スキャナー６による原稿の読み込みに遅延が生じない。
【００４１】
［画像形成装置１００Ａの機能構成］
図５を参照して、画像形成装置１００Ａの機能について説明する。図５は、画像形成装置１００Ａの機能構成の一例を示すブロック図である。図５に示されるように、画像形成装置１００Ａは、ＣＰＵ２と、記憶装置２０Ａ，２０Ｂとを備える。ＣＰＵ２は、画像データを一時的に記憶するためのバッファ２Ａを有する。また、ＣＰＵ２は、機能構成として、バッファ書込部２１０と、記憶装置書込部２２０（書込部）と、コピー部２３０とを備える。
【００４２】
バッファ書込部２１０は、スキャナー６によって生成された画像データを順次バッファ２Ａに書き込む。好ましくは、バッファ書込部２１０は、生成された画像データをバッファ２Ａのアドレスの順に書き込むことで、バッファ２Ａ上での画像データの連続性を維持する。バッファ書込部２１０は、画像データを書き込む場所がバッファ２Ａの最後に達したときは、再度バッファ２Ａの最初に次の画像データを書き込む。このように、バッファ書込部２１０は、画像データを書き込む場所をバッファ２Ａ上でループさせることで、バッファ２Ａ上での画像データの連続性を維持する。
【００４３】
また、バッファ書込部２１０は、バッファ２Ａがオーバーフローした場合には、記憶装置２０Ａに書き込み済みである画像データをバッファ２Ａから削除する。これにより、バッファ書込部２１０は、バッファ２Ａに空き領域を作り、当該空き領域に新たな画像データを書き込む。
【００４４】
記憶装置書込部２２０は、高速の記憶装置２０Ａの書き込み速度に合わせて、バッファ２Ａに格納される画像データを記憶装置２０Ａ，２０Ｂのそれぞれに順次書き込む。すなわち、記憶装置書込部２２０は、低速の記憶装置２０Ｂに対する画像データの書き込みの終了を待たずに、高速の記憶装置２０Ａに対する画像データの書き込みを行なう。
【００４５】
コピー部２３０は、スキャナー６の動作が終了ことに基づいて、スキャナー６によって生成された画像データうち低速の記憶装置２０Ｂに書き込まれなかった画像データを記憶装置２０Ａから取得し、当該画像データを記憶装置２０Ｂにコピーする。これにより、コピー部２３０は、記憶装置２０Ａおよび記憶装置２０Ｂをミラーリングする。
【００４６】
［ミラーリング処理の具体例］
図６および図７を参照して、図４に示されるミラーリング処理のさらに具体的な例について説明する。図６は、バッファ２Ａがオーバーフローする前におけるミラーリング処理を示す図である。図７は、バッファ２Ａがオーバーフローした場合のミラーリング処理を示す図である。図７に示されるミラーリング処理は、図６に示されるミラーリング処理の続きである。
【００４７】
図６のステップ（Ａ）において、スキャナー６は、原稿を読み取って画像データＡを生成する。画像形成装置１００Ａは、生成された画像データＡをバッファ２Ａに格納する。画像形成装置１００Ａは、バッファ２Ａに格納した画像データＡを記憶装置２０Ａおよび記憶装置２０Ｂに書き込む。
【００４８】
図６のステップ（Ｂ）において、スキャナー６は、新たに原稿を読み取って画像データＢ〜Ｄを生成する。画像形成装置１００Ａは、生成された画像データＢ〜Ｄをバッファ２Ａに順に格納する。このとき、高速の記憶装置２０Ａは、画像データＤを書き込んでいるとする。低速の記憶装置２０Ｂにおいては、画像データＢの書き込みが完了したとする。画像形成装置１００Ａは、記憶装置２０Ａ，２０Ｂの両方に書き込んだ画像データＡ，Ｂをバッファ２Ａから削除する。このように、画像形成装置１００Ａは、バッファ２Ａを監視し、記憶装置２０Ａ，２０Ｂの両方に対して書き込んだ画像データを順次削除する。
【００４９】
図６のステップ（Ｃ）において、スキャナー６は、画像データＡ，Ｂの削除によって確保された空き領域に新たな画像データＥを格納する。これにより、記憶装置２０Ａは、画像データＥの書き込みを開始する。
【００５０】
図７のステップ（Ａ）において、バッファ２Ａには、画像データＤ〜Ｇが格納されている。記憶装置２０Ａに対しては、画像データＧの書き込みが完了したとする。記憶装置２０Ｂは、画像データＤを書き込んでいる最中であるとする。
【００５１】
図７のステップ（Ｂ）において、バッファ２Ａがオーバーフローしたとする。このとき、高速の記憶装置２０Ａは、低速の記憶装置２０Ｂの書き込みを待たずに次の画像データの書き込みを開始する。より具体的には、図７のステップ（Ｂ）に示されるように、画像形成装置１００Ａは、バッファ２Ａがオーバーフローした場合に、高速の記憶装置２０Ａに書き込み済みである画像データをバッファ２Ａから削除するとともに、スキャナー６からの新たな画像データをバッファ２Ａに書き込む。図７のステップ（Ｂ）の例では、画像データＤ〜Ｆのいずれかがバッファ２Ａから削除される。たとえば、画像形成装置１００Ａは、低速の記憶装置２０Ｂが書き込み中である画像データＤの次の画像データＥを削除する。
【００５２】
図７のステップ（Ｃ）において、画像形成装置１００Ａは、バッファ２Ａの新たな空き領域に画像データＨを格納する。これにより、記憶装置２０Ａは、画像データＨの書き込みを開始する。記憶装置２０Ｂは、引き続き画像データＤの書き込みを行なう。画像データＤの書き込みが完了すると、記憶装置２０Ａは、バッファ２Ａから削除された画像データＥの次の画像データである画像データＦの書き込みを開始する。
【００５３】
図７のステップ（Ｄ）において、記憶装置２０Ａは、スキャナー６によって生成された全ての画像データＡ〜Ｚを書き込んだとする。画像形成装置１００Ａは、スキャナー６の動作が終了ことに基づいて、画像データＡ〜Ｚうち低速の記憶装置２０Ｂに書き込まれなかった画像データを、記憶装置２０Ａから記憶装置２０Ｂにコピーする。好ましくは、画像形成装置１００Ａは、記憶装置２０Ａに書き込まれなかった画像データのうちバッファ２Ａに残っている画像データについてはバッファ２Ａから記憶装置２０Ａにコピーする。すなわち、画像形成装置１００Ａは、バッファ２Ａに残っていない画像データＥについては記憶装置２０Ａから記憶装置２０Ｂにコピーし、バッファ２Ａに残っている画像データＷ〜Ｚについてはバッファ２Ａから記憶装置２０Ｂにコピーする。これにより、画像形成装置１００Ａは、ミラーリングに要する時間をさらに短縮することができる。
【００５４】
図７のステップ（Ｅ）において、画像形成装置１００Ａは、ミラーリングを完了する。記憶装置２０Ａおよび記憶装置２０Ｂは、同一の画像データＡ〜Ｚが書き込まれた状態となる。
【００５５】
［画像形成装置１００Ａの制御構造］
図８および図９を参照して、画像形成装置１００Ａの制御構造について説明する。図８は、画像形成装置１００Ａのミラーリング処理を示すフローチャートである。図９は、図８のステップＳ５０で実行されるコピー処理を示すフローチャートである。図８および図９の処理は、画像形成装置１００ＡのＣＰＵ２がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。
【００５６】
ステップＳ１０において、ＣＰＵ２は、スキャナー６から画像データを取得する。ステップＳ１２において、ＣＰＵ２は、バッファ２Ａに空きがあるか否かを判断する。たとえば、ＣＰＵ２は、バッファ２Ａに格納されている画像データのサイズが所定のデータサイズ以下である場合に、バッファ２Ａに空きがあると判断する。また、ＣＰＵ２は、バッファ２Ａに格納されている画像データのサイズが所定のデータサイズよりも大きい場合に、バッファ２Ａがオーバーフローしたと判断する。ＣＰＵ２は、バッファ２Ａに空きがあると判断した場合（ステップＳ１２においてＹＥＳ）、制御をステップＳ１８に切り替える。そうでない場合には（ステップＳ１２においてＮＯ）、ＣＰＵ２は、制御をステップＳ１４に切り替える。
【００５７】
ステップＳ１４において、ＣＰＵ２は、高速の記憶装置２０Ａに書き込み済みである画像データの一部または全部を削除する。これにより、ＣＰＵ２は、バッファ２Ａに空き領域を作る。
【００５８】
ステップＳ１６において、ＣＰＵ２は、削除した画像データを記憶装置２０Ａに書き込んだ場所を示すアドレス情報を記憶する。当該アドレス情報は、記憶装置２０Ａのセクタの位置を示す。一例として、ＣＰＵ２は、不揮発性のメモリ（たとえば、記憶装置２０等）に当該アドレスを格納する。ステップＳ１８において、ＣＰＵ２は、スキャナー６から得られた画像データをバッファ２Ａに書き込む。
【００５９】
ステップＳ２０において、ＣＰＵ２は、高速の記憶装置２０Ａに書き込んでいない画像データがバッファ２Ａに存在するか否かを判断する。ＣＰＵ２は、記憶装置２０Ａに書き込んでいない画像データがバッファ２Ａに存在すると判断した場合（ステップＳ２０においてＹＥＳ）、制御をステップＳ２２に切り替える。そうでない場合には（ステップＳ２０においてＮＯ）、ＣＰＵ２は、制御をステップＳ４０に切り替える。
【００６０】
ステップＳ２２において、ＣＰＵ２は、未書き込みの画像データを記憶装置２０Ａに書き込む。このとき、ＣＰＵ２は、記憶装置２０Ａ内のディスクの外周部に画像データを書き込む。これにより、記憶装置２０Ａの書き込み速度は、記憶装置２０Ｂの書き込み速度よりも速くなる。
【００６１】
ステップＳ３０において、ＣＰＵ２は、低速の記憶装置２０Ｂに書き込んでいない画像データがバッファ２Ａに存在するか否かを判断する。ＣＰＵ２は、記憶装置２０Ｂに書き込んでいない画像データがバッファ２Ａに存在すると判断した場合（ステップＳ３０においてＹＥＳ）、制御をステップＳ３２に切り替える。そうでない場合には（ステップＳ３０においてＮＯ）、ＣＰＵ２は、制御をステップＳ１０に戻す。
【００６２】
ステップＳ３２において、ＣＰＵ２は、未書き込みの画像データを記憶装置２０Ｂに書き込む。このとき、ＣＰＵ２は、記憶装置２０Ａ内のディスクの内周部に画像データを書き込む。これにより、記憶装置２０Ｂの書き込み速度は、記憶装置２０Ａの書き込み速度よりも遅くなる。
【００６３】
ステップＳ３４において、ＣＰＵ２は、記憶装置２０Ａ，２０Ｂの両方に書き込み済みの画像データをバッファ２Ａから削除する。より具体的には、低速の記憶装置２０Ｂに書き込んだ画像データは、高速の記憶装置２０Ａにも既に書き込まれているため、ＣＰＵ２は、画像データが低速の記憶装置２０Ｂに書き込まれた時点で、当該画像データをバッファ２Ａから削除する。
【００６４】
ステップＳ４０において、ＣＰＵ２は、全ての原稿のスキャンが終了したか否かを判断する。たとえば、ＣＰＵ２は、スキャナー６からスキャン処理の終了を示す信号を受けた場合に、全ての原稿のスキャンを終了したと判断する。ＣＰＵ２は、全ての原稿のスキャンが終了したと判断した場合（ステップＳ４０においてＹＥＳ）、制御をステップＳ５０に切り替える。そうでない場合には（ステップＳ４０においてＮＯ）、ＣＰＵ２は、制御をステップＳ１０に戻す。
【００６５】
ステップＳ５０において、ＣＰＵ２は、スキャナーによって生成された画像データうち低速の記憶装置２０Ｂに書き込まれなかった画像データを、記憶装置２０Ａから記憶装置２０Ｂにコピーする。以下では、図９を参照して、図８のステップＳ５０のコピー処理についてさらに詳細に説明する。
【００６６】
ステップＳ５２において、ＣＰＵ２は、低速の記憶装置２０Ｂに書き込まれずにバッファ２Ａから削除された画像データを記憶装置２０Ａから読み出す。より具体的には、ＣＰＵ２は、図８のステップＳ１６で記憶したアドレス情報を参照し、当該アドレス情報で示されるに記憶装置２０Ａの記憶領域に格納されている画像データを読み出す。ＣＰＵ２は、記憶装置２０Ａから読み出した画像データをバッファ２Ａに書き込む。
【００６７】
ステップＳ５４において、ＣＰＵ２は、バッファ２Ａに格納されている画像データを記憶装置２０Ｂに書き込む。
【００６８】
ステップＳ５６において、ＣＰＵ２は、記憶装置２０Ｂに書き込んでいない画像データが記憶装置２０Ａにあるか否かを判断する。ＣＰＵ２は、記憶装置２０Ｂに書き込んでいない画像データが記憶装置２０Ａにあると判断した場合（ステップＳ５６においてＹＥＳ）、制御をステップＳ５２に戻す。そうでない場合には（ステップＳ５６においてＮＯ）、ＣＰＵ２は、ステップＳ５０のコピー処理を終了する。
【００６９】
［画像形成装置１００Ａのハードウェア構成］
図１０を参照して、画像形成装置１００Ａのハードウェア構成の一例について説明する。図１０は、画像形成装置１００Ａの主要なハードウェア構成を示すブロック図である。図１０に示されるように、画像形成装置１００Ａは、ＲＯＭ（Read  Only  Memory）１と、ＣＰＵ２と、ＲＡＭ（Random  Access  Memory）３と、ネットワークＩ／Ｆ（インタフェース）４と、スキャナー６と、プリンター７と、操作パネル９と、記憶装置２０とを備える。
【００７０】
ＲＯＭ１は、画像形成装置１００Ａで実行される制御プログラムなどを格納する。ＣＰＵ２は、画像形成装置１００Ａの制御プログラムなどの各種プログラムを実行することで、画像形成装置１００Ａの動作を制御する。また、ＣＰＵ２は、スキャナー６によって生成された画像データを一時的に格納するためのバッファ２Ａを有する。バッファ２Ａは、たとえば、ＣＰＵ２のキャッシュメモリに相当する。なお、バッファ２Ａは、ＲＯＭ１、ＲＡＭ３などに確保されてもよい。ＲＡＭ３は、ワーキングメモリとして機能し、制御プログラムの実行に必要な各種データを一時的に格納する。
【００７１】
ネットワークＩ／Ｆ４には、アンテナ（図示しない）などが接続される。画像形成装置１００Ａは、当該アンテナを介して、他の通信機器との間でデータをやり取りする。他の通信機器は、たとえば、スマートフォンなどの携帯通信端末、サーバーなどを含む。画像形成装置１００Ａは、本実施の形態に従うミラーリングプログラム２２を、アンテナを介してサーバーからダウンロードできるように構成されてもよい。
【００７２】
スキャナー６は、画像形成装置１００Ａにセットされた原稿を光学的に読み取って、原稿の画像データを生成する。スキャナー６における画像データの生成方法には、公知の方法が採用され得る。
【００７３】
プリンター７は、たとえば電子写真方式により、スキャナー６で読み取られた画像データや、外部の情報処理装置から送信されたプリントデータを、印刷のためのデータに変換し、変換後のデータに基づいて文書等の画像を印刷する装置である。画像形成の方法には、公知の方法が採用され得る。
【００７４】
操作パネル９は、タッチパネルとして構成され、画像形成装置１００Ａに対するユーザーのタッチ操作を受け付ける。操作パネル９は、表示パネルと、表示パネルに重ねて設けられるタッチセンサとで構成される。
【００７５】
記憶装置２０は、たとえば、ハードディスクや外付けの記憶装置などの記憶媒体である。記憶装置２０は、一例として、本実施の形態に従うミラーリング処理を実現するためのミラーリングプログラム２２を格納する。
【００７６】
なお、本実施の形態に従うミラーリングプログラム２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従うプログラムの趣旨を逸脱するものではない。さらに、本実施の形態に従うミラーリングプログラム２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも１つのサーバーが本実施の形態に従うミラーリング処理を実現する、所謂クラウドサービスのような形態で画像形成装置１００Ａが構成されてもよい。
【００７７】
［小括］
以上のようにして、本実施の形態に従う画像形成装置１００Ａは、高速の記憶装置２０Ａの書き込み速度に合わせて、バッファ２Ａに順次格納される画像データを記憶装置２０Ａおよび記憶装置２０Ｂのそれぞれに書き込む。バッファ２Ａがオーバーフローした場合に、画像形成装置１００Ａは、記憶装置２０Ａに書き込み済みである画像データの一部または全部をバッファ２Ａから削除するとともに、スキャナー６からの新たな画像データをバッファ２Ａに書き込む。その後、画像形成装置１００Ａは、スキャナー６によって生成された画像データＡ〜Ｅのうち記憶装置２０Ｂに書き込まれなかった画像データを、スキャナー６の動作終了後に、記憶装置２０Ａから記憶装置２０Ｂにコピーする。
【００７８】
このように、画像形成装置１００Ａは、低速の記憶装置２０Ｂへの画像データの書き込み完了を待たずに、バッファ２Ａに新たな画像データを書き込む。これにより、画像形成装置１００Ａは、バッファ２Ａに対する画像データの書き込み速度を改善することができ、高速の記憶装置２０Ａに対する画像データの書き込み時間を短縮することができる。また、バッファ２Ａがオーバーフローした場合に、画像形成装置１００Ａは、高速の記憶装置２０Ａの書き込み速度に合わせてバッファ２Ａに空き領域を確保するので、スキャナー６による原稿の読み込みに遅延が生じない。
【００７９】
＜第２の実施の形態＞
［概要］
第２の実施の形態においては、バッファ２Ａのオーバーフロー時に空き領域を作る方法が、第１の実施の形態に従う画像形成装置１００Ａとは異なる。より具体的には、第１の実施の形態においては、上述の図７のステップ（Ｂ）に示されるように、バッファ２Ａに空き領域を作るために削除される画像データは、記憶装置２０Ｂが書き込み中でない画像データＥであった。これに対して、第２の実施の形態においては、バッファ２Ａに空き領域を作るために削除される画像データは、低速の記憶装置２０Ｂが書き込み中である画像データＤである。
【００８０】
第２の実施の形態に従う画像形成装置１００Ｂのハードウェア構成等は、第１の実施の形態に従う画像形成装置１００Ａと同じであるので、それらの説明については繰り返さない。
【００８１】
［ミラーリング処理］
図１１を参照して、第２の実施の形態におけるミラーリング処理について説明する。図１１は、画像形成装置１００Ｂのミラーリング処理の一例を示す図である。
【００８２】
図１１のステップ（Ａ）において、バッファ２Ａには、画像データＤ〜Ｇが格納されているとする。また、記憶装置２０Ａにおいては、画像データＡ〜Ｇの書き込みが完了しているとする。さらに、記憶装置２０Ｂにおいては、画像データＡ〜Ｃの書き込みが完了しているとする。さらに、記憶装置２０Ｂは、画像データＤを書き込んでいる最中であるとする。
【００８３】
図１１のステップ（Ｂ）において、バッファ２Ａがオーバーフローしたとする。このとき、画像形成装置１００Ｂは、バッファ２Ａに空き領域を作るために、高速の記憶装置２０Ａに書き込み済みである画像データをバッファ２Ａから削除する。本実施の形態においては、画像形成装置１００Ｂは、低速の記憶装置２０Ｂによる書き込み処理を中止するとともに、記憶装置２０Ｂが書き込み中の画像データＤをバッファ２Ａから削除する。これにより、画像形成装置１００Ｂは、バッファ２Ａに空き領域を作ることができ、当該空き領域に新たな画像データＨを書き込む。
【００８４】
図１１ステップ（Ｃ）において、画像形成装置１００Ｂは、記憶装置２０Ａに書き込み中の画像データＨに合わせて、バッファ２Ａから記憶装置２０Ｂへの画像データの書き込みを再開する。すなわち、記憶装置２０Ｂは、画像データＥ〜Ｇを飛ばして、画像データＨから書き込みを再開する。これにより、画像形成装置１００Ｂは、バッファ２Ａ上における画像データの並び順を、スキャナー６によって生成された画像データの順に常に合わせることができる。その結果、画像形成装置１００Ｂは、バッファ２Ａ上における画像データの連続性を維持でき、バッファ２Ａに対する画像形成装置１００Ｂのアクセス速度が向上する。
【００８５】
図１１のステップ（Ｄ）において、記憶装置２０Ａは、スキャナー６によって生成された全ての画像データＡ〜Ｚを書き込んだとする。画像形成装置１００Ｂは、スキャナー６の動作が終了ことに基づいて、画像データＡ〜Ｚうち低速の記憶装置２０Ｂに書き込まれなかった画像データを、記憶装置２０Ａから記憶装置２０Ｂにコピーする。すなわち、画像形成装置１００Ｂは、記憶装置２０Ａに格納されている画像データＤ〜Ｇを記憶装置２０Ｂにコピーする。
【００８６】
図１１のステップ（Ｅ）において、記憶装置２０Ａおよび記憶装置２０Ｂは、同一の画像データＡ〜Ｚが書き込まれた状態となる。これにより、画像形成装置１００Ｂは、ミラーリングを完了する。
【００８７】
［小括］
以上のようにして、本実施の形態に従う画像形成装置１００Ｂは、バッファ２Ａがオーバーフローしたときに、バッファ２Ａから低速の記憶装置２０Ｂへの画像データの書き込みを中止し、高速の記憶装置２０Ａに書き込み中の画像データに合わせて、バッファ２Ａから記憶装置２０Ｂへの画像データの書き込みを再開する。これにより、画像形成装置１００Ｂは、バッファ２Ａ上における画像データの並び順を、スキャナー６によって生成された画像データの順に常に合わせることができる。その結果、画像形成装置１００Ｂは、バッファ２Ａ上における画像データの連続性を維持でき、バッファ２Ａに対する画像形成装置１００Ｂのアクセス速度が向上する。
【００８８】
＜第３の実施の形態＞
［概要］
第３の実施の形態においては、バッファ２Ａのオーバーフロー時に空き領域を作る方法が、第１の実施の形態に従う画像形成装置１００Ａと異なる。より具体的には、上述の図７のステップ（Ｂ）に示されるように、第１の実施の形態に従う画像形成装置１００Ａは、記憶装置２０Ａが書き込み済みの画像データの一部を削除することによりバッファ２Ａに空き領域を作っていた。これに対して、第３の実施の形態に従う画像形成装置１００Ｃは、記憶装置２０Ａが書き込み済みの画像データを全て削除することによりバッファ２Ａに空き領域を作る。
【００８９】
第３の実施の形態に従う画像形成装置１００Ｃのハードウェア構成等は、第１の実施の形態に従う画像形成装置１００Ａと同じであるので、それらの説明については繰り返さない。
【００９０】
［ミラーリング処理］
図１２を参照して、第３の実施の形態におけるミラーリング処理について説明する。図１２は、画像形成装置１００Ｃのミラーリング処理の一例を示す図である。
【００９１】
図１２のステップ（Ａ）において、バッファ２Ａには、画像データＤ〜Ｇが格納されているとする。また、記憶装置２０Ａにおいては画像データＡ〜Ｇの書き込みが完了しているとする。さらに、記憶装置２０Ｂにおいては画像データＡ〜Ｃの書き込みが完了しているとする。さらに、記憶装置２０Ｂは、画像データＤを書き込んでいる最中であるとする。
【００９２】
図１２のステップ（Ｂ）において、バッファ２Ａがオーバーフローしたとする。このとき、画像形成装置１００Ｃは、バッファ２Ａに空き領域を作るために、高速の記憶装置２０Ａに書き込み済みである全ての画像データをバッファ２Ａから削除する。本実施の形態においては、画像形成装置１００Ｃは、低速の記憶装置２０Ｂによる書き込み処理を中止するとともに、記憶装置２０Ａへの書き込みが完了している画像データＤ〜Ｇをバッファ２Ａから削除する。その結果、画像形成装置１００Ｃは、より多くの空き領域をバッファ２Ａに確保することができる。画像形成装置１００Ｃは、当該空き領域に新たな画像データＨを書き込む。
【００９３】
図１２ステップ（Ｃ）において、記憶装置２０Ａは、新たな画像データＨの書き込みを開始する。画像形成装置１００Ｃは、記憶装置２０Ａに書き込み中の画像データＨに合わせて、バッファ２Ａから記憶装置２０Ｂへの画像データの書き込みを再開する。
【００９４】
図１２のステップ（Ｄ）において、記憶装置２０Ａは、スキャナー６によって生成された全ての画像データＡ〜Ｚを書き込んだとする。画像形成装置１００Ｃは、スキャナー６の動作が終了ことに基づいて、画像データＡ〜Ｚうち低速の記憶装置２０Ｂに書き込まれなかった画像データを、記憶装置２０Ａから記憶装置２０Ｂにコピーする。すなわち、画像形成装置１００Ｃは、記憶装置２０Ａに格納されている画像データＤ〜Ｇを記憶装置２０Ｂにコピーする。
【００９５】
図１２のステップ（Ｅ）において、記憶装置２０Ａおよび記憶装置２０Ｂは、同一の画像データＡ〜Ｚが書き込まれた状態となる。これにより、画像形成装置１００Ｃは、ミラーリングを完了する。
【００９６】
［小括］
以上のようにして、本実施の形態に従う画像形成装置１００Ｃは、バッファ２Ａがオーバーフローしたときに、高速の記憶装置２０Ａへの書き込みが完了している画像データを全て削除する。その結果、画像形成装置１００Ｃは、より多くの空き領域をバッファ２Ａに確保することができる。
【００９７】
＜第４の実施の形態＞
［概要］
第１の実施の形態においては、低速の記憶装置２０Ｂに書き込まれる画像データは、バッファ２Ａがオーバーフローした場合を除いて、バッファ２Ａに格納される画像データの順に書き込まれていた。これに対して、第４の実施の形態においては、低速の記憶装置２０Ｂと高速の記憶装置２０Ａとの間で画像データの書き込みにある程度差が生じた場合に、低速の記憶装置２０Ｂは、画像データの書き込みを中止し、高速の記憶装置２０Ａに書き込み中の画像データに合わせて画像データの書き込みを再開する。
【００９８】
第４の実施の形態に従う画像形成装置１００Ｄのハードウェア構成等は、第１の実施の形態に従う画像形成装置１００Ａと同じであるので、それらの説明については繰り返さない。
【００９９】
［ミラーリング処理］
図１３を参照して、第４の実施の形態におけるミラーリング処理について説明する。図１３は、画像データがバッファ２Ａから記憶装置２０Ａ，２０Ｂに書き込まれている様子を示した図である。
【０１００】
図１３のステップ（Ａ）において、画像形成装置１００Ｄは、スキャナーによって生成される画像データを当該画像データの生成順に前記バッファ上で連続するように書き込む。図１３のステップ（Ａ）の例では、順に生成された画像データＡ〜Ｄのそれぞれが、バッファ２Ａ上の連続する領域を示すアドレス３０１〜３０４のそれぞれに格納されている例が示されている。図１３のステップ（Ａ）において、高速な記憶装置２０Ａは、画像データＡ〜Ｃの書き込みを終了し、画像データＤを書き込み中であるとする。高速な記憶装置２０Ａは、画像データＡを書き込み中であるとする。
【０１０１】
画像形成装置１００Ｄは、高速な記憶装置２０Ａに画像データを書き込み中に参照するバッファ２Ａ上のアドレスと、低速な記憶装置２０Ｂに画像データを書き込み中に参照するバッファ２Ａ上のアドレスとの間の差（以下、「アドレス差」ともいう。）を算出する。図１３のステップ（Ａ）においては、画像形成装置１００Ｄは、アドレス３０１とアドレス３０４との間のアドレス差３５０を算出する。画像形成装置１００Ｄは、アドレス差が所定値以上になったときに、バッファ２Ａから低速な記憶装置２０Ｂへの画像データの書き込みを中止する。そして、画像形成装置１００Ｄは、記憶装置２０Ａに書き込み中の画像データに合わせて、バッファ２Ａから記憶装置２０Ｂへの画像データの書き込みを再開する。
【０１０２】
図１３のステップ（Ｂ）においては、画像形成装置１００Ｄは、低速な記憶装置２０Ｂへの画像データＡの書き込みを中止し、記憶装置２０Ａに書き込み中の画像データＤから書き込みを再開している。
【０１０３】
［小括］
以上のようにして、本実施の形態に従うにおいては、低速の記憶装置２０Ｂと高速の記憶装置２０Ａとの間で画像データの書き込みにある程度差が生じた場合に、低速の記憶装置２０Ｂは、画像データの書き込みを中止し、高速の記憶装置２０Ａに書き込み中の画像データに合わせて画像データの書き込みを再開する。これにより、記憶装置２０Ａ，２０Ｂによってバッファ２Ａ上で参照されるアドレスが一定以上離れないため、バッファ２Ａのアクセス効率が改善される。
【０１０４】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１０５】
１  ＲＯＭ、２  ＣＰＵ、２Ａ  バッファ、３  ＲＡＭ、４  ネットワークＩ／Ｆ、６  スキャナー、７  プリンター、８  フィーダー、９  操作パネル、２０，２０Ａ，２０Ｂ  記憶装置、２１Ａ  外周部、２１Ｂ  内周部、２２  ミラーリングプログラム、１００Ａ〜１００Ｄ  画像形成装置、２１０  バッファ書込部、２２０  記憶装置書込部、２３０  コピー部、３０１〜３０４  アドレス、３５０  アドレス差、Ａ〜Ｚ  画像データ。
【図１】
0006578675.tif 000002
【図２】
0006578675.tif 000003
【図３】
0006578675.tif 000004
【図４】
0006578675.tif 000005
【図５】
0006578675.tif 000006
【図６】
0006578675.tif 000007
【図７】
0006578675.tif 000008
【図８】
0006578675.tif 000009
【図９】
0006578675.tif 000010
【図１０】
0006578675.tif 000011
【図１１】
0006578675.tif 000012
【図１２】
0006578675.tif 000013
【図１３】
0006578675.tif 000014