(57)【要約】【課題】  不揮発性メモリへの書き込みを高速に行うことができるメモリ制御装置、メモリ制御方法、およびプログラムを提供する。【解決手段】  不揮発性メモリにおける所定の記憶領域の全体に所定の値が書き込まれている第１の状態を処理装置が所定の状態でないことを示すフラグ情報とする。また当該所定の記憶領域の一部に、前記所定の状態であることを特定するための情報に対応する値が書き込まれている第２の状態を、当該所定の状態ではあることを示すフラグ情報とする。そして、当該第１の状態と当該第２の状態のいずれかに対応するフラグ情報を不揮発性メモリに記憶させる。【選択図】  図７
2015125599.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリへの書き込みを行うメモリ制御装置であって、
所定の処理装置が所定の状態であるか特定するための情報を取得する取得手段と、
前記取得手段により取得された情報に基づき、前記処理装置が前記所定の状態であるか否かを示すフラグ情報を前記不揮発性メモリに記憶させる記憶制御手段と、を有し、
前記記憶制御手段は、前記不揮発性メモリにおける所定の記憶領域の全体に所定の値が書き込まれている第１の状態を、前記処理装置が前記所定の状態でないことを示す第１のフラグ情報とし、当該第１の状態における当該所定の記憶領域の一部に前記取得手段により取得された情報に対応する値が書き込まれている第２の状態を、当該所定の状態を示し当該第１のフラグ情報よりも優先して書き込まれる第２のフラグ情報として、当該不揮発性メモリに記憶させることを特徴とするメモリ制御装置。
【請求項２】
前記取得手段は、前記取得手段により取得された情報を前記メモリ制御装置が備える揮発性メモリに記憶させ、前記記憶制御手段は、当該揮発性メモリに記憶された当該情報に基づいて、前記フラグ情報を前記不揮発性メモリに記憶させることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記記憶制御手段は、前記第１の状態である前記所定の記憶領域を前記第２の状態に遷移させる場合に、当該所定の記憶領域の一部に前記情報に対応する値を書き込み、当該所定の記憶領域の残りには値を書き込まないことで、当該第２の状態に遷移させることを特徴とする請求項１または２に記載のメモリ制御装置。
【請求項４】
前記不揮発性メモリの前記所定の記憶領域から前記記憶制御手段により記憶された前記フラグ情報を読み出す読み出し手段と、
前記読み出し手段により読み出された前記フラグ情報が前記第２のフラグ情報である場合に、前記処理装置に対する所定の制御を行う制御手段と、
を有することを特徴とする請求項１乃至３のいずれか１項に記載のメモリ制御装置。
【請求項５】
前記所定の処理装置は、記録ヘッドから記録剤を印刷媒体に付与することで画像を印刷するプリンタであり、
前記記憶制御手段は、前記記録ヘッドがキャッピングされていない場合、前記所定の状態であるとして、前記第２のフラグ情報を記憶させ、当該記録ヘッドがキャッピングされている場合、前記第１のフラグ情報を記憶させ、
前記制御手段は、前記所定の制御として、前記記録ヘッドの回復動作を制御することを特徴とする請求項４に記載のメモリ制御装置。
【請求項６】
前記所定の処理装置は、印刷媒体を搬送させ、当該搬送された印刷媒体に画像を印刷するプリンタであり、
前記記憶制御手段は、印刷媒体が前記プリンタの所定の搬送路において搬送されている場合、前記所定の状態であるとして、前記第２のフラグ情報を記憶させ、印刷媒体が当該搬送路において搬送されていない場合、前記第１のフラグ情報を記憶させ、
前記制御手段は、前記所定の制御として、前記印刷媒体の所定の方向への搬送を制御することを特徴とする請求項４に記載のメモリ制御装置。
【請求項７】
前記所定の処理装置は、着脱可能な記録ヘッドから記録剤を印刷媒体に付与することで画像を印刷するプリンタであり、
前記記憶制御手段は、記録ヘッドが交換された場合、前記所定の状態であるとして、前記第２のフラグ情報を記憶させ、記録ヘッドが交換されていない場合、前記第１のフラグ情報を記憶させ、
前記制御手段は、前記所定の制御として、前記記録ヘッドの交換に応じた、前記プリンタの初期化処理を制御することを特徴とする請求項４に記載のメモリ制御装置。
【請求項８】
前記読み出し手段による読み出しにより、前記フラグ情報が前記第１のフラグ情報と前記第２のフラグ情報のいずれでも無いと判定された場合、前記記憶制御手段は、当該第１の状態と当該第２の状態のいずれかに当該所定の領域を更新することを特徴とする請求項４乃至７のいずれか１項に記載のメモリ制御装置。
【請求項９】
前記読み出し手段は、前記メモリ制御装置が起動したときに、前記読み出しを行うことを特徴とする請求項４乃至８のいずれか１項に記載のメモリ制御装置。
【請求項１０】
前記不揮発性メモリはフラッシュメモリであり、前記所定の記憶領域は、当該フラッシュメモリの記憶領域が分割されたブロックであることを特徴とする請求項１乃至９のいずれか１項に記載のメモリ制御装置。
【請求項１１】
前記記憶制御手段は、前記メモリ制御装置が備える不揮発性メモリに、前記フラグ情報を記憶させることを特徴とする請求項１乃至１０のいずれか１項に記載のメモリ制御装置。
【請求項１２】
前記記憶制御手段が、前記不揮発性メモリにおける前記所定の記憶領域とは異なる記憶領域にデータを記憶させる場合、当該データの書き込みの前に、当該記憶領域に前記所定の値を書き込み、当該所定の値が書き込まれた当該記憶領域に当該データを書き込むことを特徴とする請求項１乃至１１のいずれか１項に記載のメモリ制御装置。
【請求項１３】
不揮発性メモリへの書き込みを行うメモリ制御方法であって、
所定の処理装置が所定の状態であるか特定するための情報を取得する取得工程と、
前記取得工程において取得された前記情報に基づき、前記処理装置が前記所定の状態であるか否かを示すフラグ情報を前記不揮発性メモリに記憶させる記憶制御工程と、
前記記憶制御工程では、前記不揮発性メモリにおける所定の記憶領域の全体に所定の値が書き込まれている第１の状態を、前記処理装置が前記所定の状態でないことを示す第１のフラグ情報とし、当該第１の状態における当該所定の記憶領域の一部に前記取得工程において取得された情報に対応する値が書き込まれている第２の状態を、当該所定の状態を示し当該第１のフラグ情報よりも優先して書き込まれる第２のフラグ情報として、当該不揮発性メモリに記憶させることを特徴とするメモリ制御方法。
【請求項１４】
請求項１乃至１２のいずれか１項に記載のメモリ制御装置の各手段としてコンピュータを機能させるための、または請求項１３に記載のメモリ制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリへの書き込みを行うメモリ制御装置、メモリ制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、装置内の不揮発性メモリとしてＥＥＰＲＯＭやフラッシュメモリを備える装置があった。このような不揮発性メモリへのデータの書き込みの途中で電源が遮断された場合、電源が再投入されたときに書き込みが適切に完了しなかったデータが読み出されてしまうことがある。また上記のような不揮発性メモリには書き換えの制限回数が設けられていることがある。そのため、不揮発性メモリへのデータ書き込み、データの読み出しを制御するための情報を当該不揮発性メモリに記憶させる技術がある。
【０００３】
特許文献１には、フラッシュメモリに割り当てられたブロックへのデータ書き込みが正常に完了した後に、フラッシュメモリ内に設けられた当該ブロックに対応するフラグの値を書き換えることが記載されている。そして、電源オン時には、上記フラグの値を確認し、データ書き込みが適切に完了したブロックを判定することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１６９７２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記従来技術では、フラグ情報の書き換えのために、不揮発性メモリのブロックの消去（イレース）処理を行った上でデータ書き込みを行う。例えばフラグ情報として「０」、「１」のいずれを書き込む場合でも、上記消去処理、書き込みの両方を実行しなくてはならず、書き換え完了までに時間を要する場合があった。
【０００６】
上記の課題を鑑みて本発明は、不揮発性メモリへの書き込みを高速に行うことができるメモリ制御装置、メモリ制御方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のメモリ制御装置は、不揮発性メモリへの書き込みを行うメモリ制御装置であって、所定の処理装置が所定の状態であるか特定するための情報を取得する取得手段と、前記取得手段により取得された情報に基づき、前記処理装置が前記所定の状態であるか否かを示すフラグ情報を前記不揮発性メモリに記憶させる記憶制御手段と、を有し、前記記憶制御手段は、前記不揮発性メモリにおける所定の記憶領域の全体に所定の値が書き込まれている第１の状態を、前記処理装置が前記所定の状態でないことを示す第１のフラグ情報とし、当該第１の状態における当該所定の記憶領域の一部に前記取得手段により取得された情報に対応する値が書き込まれている第２の状態を、当該所定の状態を示し当該第１のフラグ情報よりも優先して書き込まれる第２のフラグ情報として、当該不揮発性メモリに記憶させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、不揮発性メモリにおける所定の記憶領域の全体に所定の値が書き込まれている第１の状態を処理装置が所定の状態でないことを示すフラグ情報とする。また当該所定の記憶領域の一部に、前記所定の状態であることを特定するための情報に対応する値が書き込まれている第２の状態を、当該所定の状態ではあることを示すフラグ情報とする。よって、不揮発性メモリへの書き込みを高速に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態におけるメモリ制御装置の一例である、インクジェットプリンタ３を示す図である。
【図２】インクジェットプリンタ３の内部に組み込まれ、インクジェットプリンタ３を制御するための電子制御回路基板１を説明するための図である。
【図３】揮発性メモリ１０２とフラッシュメモリ１０３の内部のデータマッピングの概略図である。
【図４】一般情報のデータセットを示す図である。
【図５】制御フラグ情報のデータセットを示す図である。
【図６】図６はフラッシュメモリ１０３への書き込み処理の一例を示す図である。
【図７】ブロックにおいて制御フラグ情報が書き込まれている状態を説明するための図である。
【図８】フラッシュメモリへの書き込み処理を示すフローチャートである。
【図９】制御フラグ情報の読み出し処理を示すフローチャートである。
【図１０】キャッピングフラグ情報を書き込む処理の一例を示すフローチャートで
【図１１】フラッシュメモリ１０３への書き込み中の電源遮断を考慮した読み出し処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本実施形態について説明する。なお、以下の実施形態はあくまで実施の一例を示したものであり、本発明は以下の実施形態に限定されるものではない。
【００１１】
（１）システムの構成
まず本実施形態において不揮発性メモリの制御を行うシステムの構成について説明する。図１は、本実施形態におけるメモリ制御装置の一例である、インクジェットプリンタ３を示す図である。なお、メモリ制御装置はインクジェットプリンタに限らず、例えば印刷のための記録剤としてトナーを用いる電子写真方式の印刷装置でもよいし、プリンタに加え、原稿を読み取るためのスキャナを備えた複合機であってもよい。またプリンタに限らず、ＰＣ（パーソナルコンピュータ）や、スマートフォンやタブレット、携帯電話、デジタルカメラなどの各種の装置であってもよい。
【００１２】
操作ＵＩ部３０１は、ユーザに対する各種の表示を行い、またユーザが操作を行って各種の指示を入力するためのユーザインタフェースである。上記の表示として、例えば印刷対象の画像やインクジェットプリンタ３の機能や状態が表示される。また、ユーザが操作するための操作デバイスとして、タッチパネルが表示画面上に設けられている。ただし、ボタン等の操作デバイスが設けられる場合であってもよい。
【００１３】
用紙積載部３０４は、画像が印刷される用紙を積載する。また排紙トレイ３０３は、印刷後の用紙を保持する。
【００１４】
さらにインクジェットプリンタ３の内部には、用紙積載部３０４から用紙をピックアップし、その用紙を搬送するための搬送機構、また着脱可能な記録ヘッドを装着するための装着部を含むプリントエンジン部３０２が設けられている。プリントエンジン部３０２はさらに、上記装着部をシート搬送方向と垂直方向に往復運動をするキャリッジ、キャリッジを駆動するキャリッジモータを備える。
【００１５】
そして、例えば操作ＵＩ部３０１や、外部装置から印刷が指示されると、上記プリントエンジン部３０２の搬送機構により搬送された用紙に対して、上記キャリッジが往復運動しながら記録ヘッドからインクが吐出される。これにより当該用紙にインクが付与されることで画像が印刷され、その用紙が排紙トレイ３０３に排紙される。
【００１６】
またプリントエンジン部３０２は、記録ヘッドにおけるインク吐出口で乾燥によりインクが固まるのを防ぐための回復部を備える。回復部は、記録ヘッドに取り付き記録ヘッドのインク吐出面を乾燥から保護するキャップ、記録ヘッドの表面をワイピングするワイパーなどを含む。記録ヘッドはインクを吐出するための微細な吐出口を有している。
【００１７】
印刷によりインクが吐出されると、その吐出口に残ったインクが乾燥によって固着する場合や、また吐出されたインクがミスト状になってインクが付着し、吐出面が汚れることがある。この場合、本来の吐出量とは異なる量のインクが吐出される場合や、また複数の色のインクが混ざり合うなど、適切な印刷ができない場合がある。
【００１８】
そこで回復部は、記録ヘッドの吐出口のインク詰まりや吐出面の汚れを解消するための動作を行う。具体的には、印刷が終了した後、記録ヘッドのインク吐出面をワイピングして吐出面に残存したインクを除去する（ワイピング）。そして、記録ヘッドがキャップの真上の位置になるようキャリッジを移動させて上記キャップを押し上げ、記録ヘッドの吐出面をキャッピングする（キャップクローズ）。そして、印刷動作を開始するときに、そのキャップを引き下げて、記録ヘッドのインク吐出面を露出させる動作（キャップオープン）を行う。
【００１９】
本実施形態のインクジェットプリンタ３は、不揮発性メモリに記憶された制御変数により、上記の回復動作の必要性を判断する。例えば、記録ヘッドがキャップされているか否かを示すキャッピングフラグ情報を不揮発性メモリに記憶させ、インクジェットプリンタ３が起動されたときにキャッピングフラグ情報を確認する。そして、キャッピングフラグ情報がキャップオープンの状態を示す場合、キャップクローズ動作を行い、さらにインク吐出口のインク詰まりを防ぐために、インクの吐出を行う。
【００２０】
本実施形態では、上記のキャッピングフラグ情報として、キャップオープンの状態であることを示す情報をより確実に不揮発性メモリに記憶させるための処理を説明する。具体的には、キャップオープンの情報を不揮発性メモリに書き込む処理が、キャップクローズの情報を不揮発性メモリに書き込む処理よりも高速に行われるように、上記キャッピングフラグ情報を設定する。以下、本実施形態の処理を詳細に説明する。
【００２１】
図２は、インクジェットプリンタ３の内部に組み込まれ、インクジェットプリンタ３を制御するための電子制御回路基板１を説明するための図である。
【００２２】
ＣＰＵ１０１は、電子制御回路基板１、またインクジェットプリンタ３の全体を制御するための制御部である。フラッシュメモリ（Ｆｌａｓｈ  ＲＯＭ）１０３は、不揮発性のメモリであり、インクジェットプリンタの各部を制御する制御プログラムや、各種の設定に関する制御情報を記憶する。揮発性メモリ１０２は、制御プログラムや各種制御情報を一時的に保持する揮発性のメモリであり、例えばＲＡＭである。
【００２３】
ＣＰＵ１０１は、フラッシュメモリ１０３に記憶されている上記の制御プログラムや各種の制御情報を揮発性メモリ１０２に読み出し、当該制御情報に従って制御プログラムを実行することで、インクジェットプリンタ３の全体を制御することができる。
【００２４】
入出力ポート１０４は、ＣＰＵ１０１と、後述の操作ＵＩ部制御回路１０５、プリントエンジン部制御回路１０６とを接続するためのポートである。
【００２５】
操作ＵＩ部制御回路１０５は、入出力ポート１０４を介したＣＰＵ１０１の制御に従って、上記の操作ＵＩ部３０１に画像や各種の情報を表示させる。また操作ＵＩ部制御回路１０５は、操作ＵＩ部３０１に対するユーザの操作に応じて各種のユーザ指示を入力する。ＣＰＵ１０１は、入出力ポートを介してユーザ指示を入力することで、当該ユーザ指示に応じた制御を行う。
【００２６】
プリントエンジン部制御回路１０６は、ＣＰＵ１０１による制御に従って、印刷対象の画像をプリントエンジン部３０２に出力し、プリントエンジン部３０２に当該画像を印刷媒体へ印刷させる。
【００２７】
電源回路１０７は、ＡＣ電源等の外部電源２に電源ケーブルを介して接続することができる。電源回路１０７が外部電源２と接続されると外部電源２から電源回路１０７に電力が供給され、その電力が電子制御回路基板１の全体に供給される。そして、上記のように電子制御回路基板１に電力が供給可能な状態においてユーザが不図示の電源ボタンを押下することで、インクジェットプリンタ３を起動することができる。
【００２８】
なお本実施形態では、電源回路１０７から電力が電子制御回路基板１に電力が供給されたときに、フラッシュメモリ１０３に記憶されている制御プログラムや各種の制御情報が揮発性メモリ１０２に記憶される。またインクジェットプリンタ３が起動している状態においてユーザが上記不図示の電源ボタンを押下することで、インクジェットプリンタの電源を切ることができる。その際に、揮発性メモリ１０２に記憶されている各種の制御情報がフラッシュメモリ１０３に記憶される。そのため、ユーザが上記電源ボタンを押下してインクジェットプリンタ３の電源を切った後に電源ケーブルを外部電源２から外した場合、起動中に揮発性メモリ１０２に書き込まれたデータを不揮発性メモリであるフラッシュメモリ１０３に書き込むことができる。
【００２９】
またインクジェットプリンタ３は、不図示の読取エンジンによる原稿の読み取り、またファクシミリ通信や、ＬＡＮ、インターネット等のネットワークを介したデータの送受信が可能であってもよい。
【００３０】
（２）フラッシュメモリ１０３に格納されるデータについて
次に、揮発性メモリ１０２からフラッシュメモリ１０３に書き込まれる、またフラッシュメモリ１０３から揮発性メモリ１０２に読み出されるデータについて説明する。図３は、揮発性メモリ１０２とフラッシュメモリ１０３の内部のデータマッピングの概略図である。
【００３１】
フラッシュメモリ１０３は、制御プログラムを格納するためのプログラム格納領域４０１と、後述する一般情報、制御フラグ情報を格納する保存情報格納領域４０２を含む。同様に揮発性メモリ１０２は、フラッシュメモリ１０３から読み出された制御プログラムが展開されるための、またプログラム実行時のワークメモリとして利用されるプログラム実行領域４０３を含む。また揮発性メモリ１０２は、フラッシュメモリ１０３から一般情報や制御フラグ情報を展開するための保存情報展開領域４０４を含む。
【００３２】
このようにフラッシュメモリ１０３における保存情報格納領域４０２には、大きく分けて、一般情報と制御フラグ情報が格納される。
【００３３】
一般情報とは、ユーザが設定する印刷品位や濃度の情報（図４における制御変数）や、インクジェットプリンタ３における印刷回数やインク消費量（図４における履歴情報）などである。これらの制御変数や履歴情報は、１つのデータセットとして纏められて記憶される。また上記のような各種の制御変数や履歴情報等が、図３において「データセット一般情報１、データセット一般情報２、データセット一般情報３・・」と区別されているように、その情報の種類に対応付けられて保存情報格納領域４０２に記憶されている。
【００３４】
例えばデータセット一般情報１は、印刷用の情報であり、設定可能な印刷部数、印刷品位、印刷濃度等の制御変数や、印刷回数やインク消費量などの履歴情報を含む。またインクジェットプリンタ３がファクシミリ通信を実行可能な装置の場合、データセット一般情報２には、例えばファクシミリ通信のための情報が含まれる。例えば、インクジェットプリンタ３のＦＡＸ番号、電話帳等の制御変数、ユーザが過去に設定した各種の履歴情報が含まれる。さらに、インクジェットプリンタ３がネットワーク通信を実行可能な装置の場合、データセット一般情報３には、インクジェットプリンタ３のＩＰアドレス、ＬＡＮに接続するための設定情報等の制御変数が含まれる。また履歴情報には、ネットワーク通信を行ったアクセス先等が含まれる。
【００３５】
一方、制御フラグ情報はインクジェットプリンタ３の状態を示し、プリントエンジン部３０２の動作と同期しながらフラッシュメモリ１０３に確実に記憶する必要のある情報である。例えば、キャッピングフラグ情報が制御フラグ情報に該当する。
【００３６】
このように保存情報格納領域４０２では一般情報、制御フラグ情報のそれぞれがデータセットとして書き込まれる。またこれらの複数のデータセットのそれぞれにＩＤが設定されており、データセットの読み出しはこのＩＤに応じて行われる。
【００３７】
またフラッシュメモリ１０３の保存情報格納領域４０２は、複数のブロックに分割されており、各データセットを格納するためのメモリ領域としてブロック単位でメモリ領域が割り当てられている。本実施形態では、１ブロックが４Ｋｂｙｔｅの領域であるとする。そして、データセットのそれぞれが、ブロックのそれぞれに個別に格納される。
【００３８】
保存情報格納領域４０２は、一般情報の各データセット（１、２、３・・）に対して複数のブロックが割り当てられている。例えば図３のデータセット一般情報１が既に書き込まれている場合にデータセット一般情報１を新たに書き込む場合、上書きするのではなく、別のブロックに書き込むことができる。これにより、例えば新たなデータセットの書き込みの途中で電源が遮断された場合など、当該書き込みに失敗した場合でも、電源再投入時に、過去に書き込んだ情報を読み出すことができる。
【００３９】
上記の書き込みについて具体的に説明する。例えば揮発性メモリ１０２に展開されているデータセット１がフラッシュメモリ１０３に書き込まれる場合、各ブロックを参照することで、各ブロックにデータが既に書き込まれているか、またデータの書き込みが古いブロックが判定される。そして、データが書き込まれていないブロックがあればそのブロックにデータが書き込まれ、またデータが書き込まれていないブロックがなければ、データ書き込みの古いブロックに書き込みが行われる。上記判定は、後述するカウンタに基づいて行われる。
【００４０】
次に揮発性メモリ１０２における記憶領域について説明する。
【００４１】
図３のプログラム実行領域４０３は、フラッシュメモリ１０３のプログラム格納領域４０１に格納されている制御プログラムが、例えばインクジェットプリンタ３の起動時に展開される領域である。ＣＰＵ１０１は、このように展開された制御プログラムを実行することで各種の制御を行う。
【００４２】
図３の保存情報展開領域４０４は、１つ以上のブロック単位のセクションに分割されており、１つのブロック単位サイズのデータセットにつき１つのセクションが割り当てられている。ここでのブロック単位とは、前述のフラッシュメモリ１０３のブロック単位（４Ｋｂｙｔｅ）とする。また揮発性メモリ１０２のデータ容量はフラッシュメモリ１０３のデータ容量よりも小さいため、フラッシュメモリ１０３に書き込まれているデータセットの一部が揮発性メモリ１０２に読み出される。
【００４３】
インクジェットプリンタ３に電力が供給され、起動したときに、制御プログラムとともに、制御情報がフラッシュメモリ１０３から揮発性メモリ１０２に展開される。そして、インクジェットプリンタ３が稼働している状態では、様々なタイミングで制御変数や履歴情報に変更が発生し、その都度ＣＰＵ１０１は、揮発性メモリ１０２の保存情報展開領域４０４の該当データを更新する。また、パワーオフ時や、ユーザが操作ＵＩ部３０１から印刷設定を変更したときや、印刷完了時などの特定のタイミングにおいて、ＣＰＵ１０１は、揮発性メモリ１０２の制御情報データを、データセットごとにフラッシュメモリ１０３へ保存する。
【００４４】
（３）一般情報の詳細について
図４は、一般情報のデータセットを示す図である。１つのデータセットは、各種制御変数や履歴情報などの制御情報および、チェックサムデータを格納する保存情報領域と、データの書き込み回数を記憶したカウンタ値を格納する、２つのカウンタ領域を含む。カウンタ領域（上部）は、保存情報領域よりも上部にマッピングされ、保存情報領域よりも先に書き込みが行われる。もう１つのカウンタ領域は、保存情報領域よりも下部にマッピングされ、保存情報領域への書き込みが完了した後に書き込みが行われる。
【００４５】
上記２つのカウンタ領域には、当該データセットが書き込まれるブロックへの書き込み回数を示すカウント情報が記憶される。本実施形態においてはフラッシュメモリの書き換え上限回数が１０万回であるため、カウンタ領域のサイズは、１０万以上の値を記録可能な４ｂｙｔｅ以上とする。
【００４６】
本実施形態では、電源が切られる場合など揮発性メモリ１０２に記憶されているデータセットをフラッシュメモリ１０３に書き込む場合、そのデータセットが書き込まれるブロックの書き込み回数がカウント情報として２つのカウンタ領域に書き込まれる。
【００４７】
また、例えば起動時などにフラッシュメモリ１０３に記憶されているデータセットを揮発性メモリ１０２に展開する場合、２つのカウンタ領域に書き込まれているカウント情報を参照することで、揮発性メモリ１０２に展開されるデータセットを選択する。
【００４８】
本実施形態では、図４に示したように、カウント情報と制御情報の両方が同じブロックに格納される。よって、例えば制御情報とは別のブロックにカウント情報を書き込む場合に比べ、カウント情報の書き込み、読み出しを高速に行うことができる。
【００４９】
また上記のように、カウント情報のブロックと制御情報のブロックが異なる場合、その２つのブロックを対応付けなければならない。本実施形態では、カウント情報が制御情報と同じブロック内に書き込まれるため、カウント情報を容易に管理することができる。
【００５０】
さらに、カウント情報のブロックと制御情報のブロックが異なる場合、カウント情報のために４ｋｂｙｔｅの領域を別途設けなければならず、またカウント情報の書き込みのために、ブロックへの書き込み回数が多くなってしまう。本実施形態では、カウント情報が制御情報と同じブロック内に書き込まれるため、制御情報、カウント情報の書き込みのためのメモリ容量、またブロックへの書き込み回数を削減することができる。
【００５１】
（４）制御フラグ情報の詳細について
制御フラグ情報はインクジェットプリンタ３の状態を示す情報である。前述したキャッピングフラグ情報が制御フラグ情報に該当する。この制御フラグ情報は、揮発性メモリ１０２およびフラッシュメモリ１０３において、各制御フラグ情報につき１つのデータセットで管理される。
【００５２】
また上記の一般情報は、例えばその内容に変更があったとしても揮発性メモリ１０２が更新されるが、フラッシュメモリ１０３では更新されなくてもよい。そして、例えばインクジェットプリンタ３の電源ボタンを押下したときに、揮発性メモリ１０２の内容がフラッシュメモリ１０３に格納される。
【００５３】
しかし制御フラグ情報は、フラッシュメモリ１０３により確実に記憶するために、内容に変更が生じるような動作をインクジェットプリンタ３が行う場合、その動作に同期して更新後の情報がフラッシュメモリ１０３に記憶される。
【００５４】
図５は、制御フラグ情報のデータセットを示す図である。２ｂｙｔｅの特殊フラグ情報を含み、それ以外の領域の全てのビットに所定の値「１」が書き込まれている。なお、このように所定の値「１」が書き込まれビットが立っている状態を、本実施形態では、データ消去がされている状態とも呼ぶ。また一つのブロック（４Ｋｂｙｔｅ）に対して、一つの制御フラグ情報のみ割り当てられる。さらに、制御フラグ情報はプリントエンジン部３０２の動作と同期する必要があるため、揮発性メモリ１０２の保存情報展開領域４０４の該当データを更新した直後に、フラッシュメモリ１０３の該当データは更新される。
【００５５】
（５）本実施形態におけるフラッシュメモリへの書き込みについて
図６はフラッシュメモリ１０３への書き込み処理の一例を示す図である。なお、図６では、一般情報の書き込みを示す。
【００５６】
フラッシュメモリ１０３への書き込み処理は、ブロック単位で実行され、書き込み前の状態５０１であり書き込み対象のブロックに対し、ブロック内の全てのビットを立てることでデータ消去を実行する。そして、ブロック全体が消去状態５０２となった後に１ｂｙｔｅ単位のライト処理を繰り返すことで、書き込み終了状態５０３となる。
【００５７】
上記処理の実行時間として、ブロック全体の消去に約８００ミリ秒、１ｂｙｔｅ単位の書き込み処理に数ミリ秒程度の時間を要する。そのため、フラッシュメモリ１０３への書き込み処理に要する時間は最大１秒程度となる。この書き込み処理の途中で、電源ケーブルが外部電源から抜かれた場合や停電等の電源遮断が発生した場合、フラッシュメモリ１０３への書き込み処理が終了せず、また書き込みの対象の情報が揮発性メモリ１０２から消去されてしまう。
【００５８】
特に、印刷開始時にキャッピングフラグ情報がフラッシュメモリ１０３に適切に書き込まれなかった場合、電源が再投入されたときに、キャッピングフラグ情報がキャップクローズを示していたとしても、キャップオープンの状態であることがある。この場合、記録ヘッドの回復処理が行われず、吐出口にインクが詰まったまま印刷が行われてしまう恐れがある。
【００５９】
そこで本実施形態では、キャップオープンの状態を示す情報を、より確実にフラッシュメモリ１０３に書き込むための処理を行う。この処理について図７〜図１１を用いて詳細に説明する。
【００６０】
図７は、ブロックにおいて制御フラグ情報が書き込まれている状態を説明するための図である。なお、揮発性メモリ１０２に記憶されている制御フラグ情報が反転した場合、フラッシュメモリ１０３への書き込みが発生する。揮発性メモリ１０２において制御フラグ情報は、２値（０もしくは１）のいずれかの状態を示すものとする。
【００６１】
図７の６０１に示す状態では、制御フラグ情報として「５Ａ５Ａ」が書き込まれており、この状態を制御フラグ情報が示す「０」、「１」の状態のいずれかであるとする。具体的には、制御フラグ情報がキャッピングフラグ情報である場合、６０１の状態が、キャップオープン状態を示すものとする。
【００６２】
また６０１の状態においてフラグ情報を書き換える場合、ブロック内の全ビットを立てることで一括消去が実行され、６０２に示す状態となる。本実施形態では、この状態を、制御フラグ情報が示す、もう一方の状態であるとする。例えばキャッピングフラグ情報の場合、６０１の状態がキャップオープン状態であれば、６０２の状態をキャップクローズ状態であるとする。
【００６３】
即ち本実施形態では、フラッシュメモリ１０３に記憶される制御フラグ情報は、６０１の２ｂｙｔｅデータのライト処理による「指定ｂｉｔが落ちている状態」と、６０２のブロック単位の一括消去処理による「全ｂｉｔが立っている状態」で表現される。この２つの状態は、揮発性メモリ１０２に記憶される２値の制御フラグ情報にそれぞれ対応する。
【００６４】
例えば、６０１のように「５Ａ５Ａ」が記述された状態を制御フラグ情報が「０」の状態とする。そして、「５Ａ５Ａ」とは異なる情報（例えば「４Ａ４Ａ」）が記述された状態を「１」の状態とした場合、「０」から「１」、または「１」から「０」に更新するためには、ブロックの一括消去、情報の書き込みの両方を行わなければならない。
【００６５】
一方、本実施形態では、一括消去が行われた状態である６０２を、制御フラグ情報の「０」または「１」の状態に割り当てるので、高速な書き込みを行うことができる。即ち、図７の６０１から６０２の状態に遷移させるためには、一括消去を実行するが、それに加えて情報の書き込みは行わなくてもよい。
【００６６】
逆に６０２から６０１の状態に遷移させるためには、先頭２ｂｙｔｅへの書き込みを行うが、一括消去は行わなくてもよい。フラッシュメモリの各記憶セルは消去動作により各々の記憶セルが電気的にチャージされ、ビットセット状態となる。このため、所望のフラッシュメモリ上の特定のアドレスのビット状態を「１」から「０」にするために、一括消去動作を行わなくてもよい。
【００６７】
以上のことから本実施形態によれば、制御フラグ情報を「０」と「１」、または「１」から「０」に変化させるために、一括消去、データ書き込みのいずれかを実行すればよく、その両方を行わなくてもよいため、高速な書き込みを実行することができる。
【００６８】
特に、図７の６０２の状態から６０１の状態にするためには、先頭２Ｂｙｔｅにおいて特定のアドレスのビット状態を落とす処理を行えばよい。そのため、先頭２Ｂｙｔｅ以外の、３９９８ｂｙｔｅの領域については、ビットを立てる処理を行わなくても、６０１の状態に遷移させることができる。
【００６９】
よって「全ｂｉｔが立っている状態」である６０２から、「指定ｂｉｔが落ちている状態」である６０１へ遷移させる処理は、逆の場合よりもさらに高速に行うことができる。よって、より確実に記憶する必要のある情報を「指定ｂｉｔが落ちている状態」６０１に対応付ける。これにより、停電等によって、その重要な情報の不揮発性メモリへの書き込みが完了しないまま、電源が遮断されてしまうことをより確実に防ぐことができる。
【００７０】
例えば制御フラグ情報が上述のキャッピングフラグ情報である場合、記録ヘッドがキャップされていないキャップオープン状態を、より確実に書き込む必要がある情報として、６０１の状態に割り当てる。仮に電源が再投入された際にキャップオープン状態であるにも関わらず、ＣＰＵ１０１がそれを認識できない場合、記録ヘッドの回復動作が行われないまま印刷が実行されてしまうことがある。この場合、インク吐出口のインク詰まりなどにより、印刷結果に影響を与えてしまうことがある。一方、キャップクローズ状態であるにも関わらず、ＣＰＵ１０１がキャップオープン状態と認識した場合、回復動作が行われるが、上記の場合に比べて印刷結果への影響は少ない。そのため、キャップオープン状態を、キャップクローズ状態よりも確実に記憶させる必要がある情報とする。
【００７１】
よって本実施形態では、図７の６０２の状態（キャップクローズ状態）から６０１の状態（キャップオープン状態）に高速に遷移させることができる。そのため、仮に印刷開始時に電源が遮断されたとしても、制御フラグ情報としてキャップオープン状態を示す情報より確実にフラッシュメモリ１０３に書き込むことができる。
【００７２】
また制御フラグ情報の別の例として、インクジェットプリンタ３が印刷用紙の両面に印刷する場合に、印刷用紙が搬送路に有るか否かを示すフラグ（紙有無フラグ情報）でもよい。このフラグ情報は、インクジェットプリンタ内部にあるモーターの回転方向を決定し、印刷用紙を所定の上記搬送路の所定の方向に搬送するための要因の一つである。そのため、両面搬送路に印刷用紙を引き込んだことを示す情報が失われると、誤った方向にモーターが回転し、印刷用紙を傷つける可能性がある。そのため、少なくとも印刷用紙を両面搬送路に引き込んだ状態を示す情報を、高速に書き込む必要がある。即ち、この場合は、印刷用紙が両面印刷のための搬送路に引き込まれていることを確実に記憶する必要がある。そのため、６０１の「指定ｂｉｔが落ちている状態」を、印刷用紙を引き込んでいる状態とし、６０２の「全ｂｉｔが立っている状態」を、印刷用紙を引き込んでいない状態として割り当てる。
【００７３】
さらに制御フラグ情報の別の例として、記録ヘッドが交換されたか否かを示す、ヘッド交換フラグ情報でもよい。このフラグ情報は、ヘッドを交換したかを示すフラグ情報であり、この情報を基にヘッド交換後の初期化処理の必要性を判断する。そのため、ヘッドを交換したことを示す情報が失われると、交換後に行われるべき初期化処理が行われず、印刷品質に影響が出る可能性がある。即ち、ヘッドが交換された状態であることを確実に記憶する必要がある。そのため、ヘッドが交換された状態を、６０１の「指定ｂｉｔが落ちている状態」とし、ヘッドが交換されていない状態を、６０２の「全ｂｉｔが立っている状態」に割り当てる。
【００７４】
本実施形態のメモリ制御装置による、不揮発性メモリの書き込み、読み込みの詳細について説明する。図８は、フラッシュメモリ１０３への書き込み処理を示すフローチャートである。図８に示す処理は、ＣＰＵ１０１により実現される。
【００７５】
図８（ａ）のＳ００１でＣＰＵ１０１は、書き込み対象のデータセットのＩＤを確認する。次に、Ｓ００２で確認したＩＤを基に、データセットが一般情報を保存しているか、制御フラグ情報を保存しているかの判定を行う。データセットが一般情報である場合、Ｓ００３においてＣＰＵ１０１は、図４に示したようにカウンタ値とデータの書き込みを行う。一方、データセットが制御フラグ情報である場合、Ｓ００４においてＣＰＵ１０１は、制御フラグ情報の書き込み処理を行う。
【００７６】
Ｓ００４の具体的な処理の内容を図８（ｂ）に示す。
【００７７】
図８（ｂ）におけるＳ１０１でＣＰＵ１０１は、揮発性メモリ１０２に保存されている制御フラグ情報を読み込むことで、当該制御フラグ情報を取得する。更新対象である情報は制御フラグ情報であるため、Ｓ１０２においてＣＰＵ１０１は、Ｓ１０１で読み込んだ制御フラグ情報を反転し、Ｓ１０３において、反転された制御フラグ情報を揮発性メモリ１０２に書き込む。このとき揮発性メモリ１０２に書き込まれる情報は、例えば「０」または「１」である。
【００７８】
次に、Ｓ１０４においてＣＰＵ１０１は、Ｓ１０３において揮発性メモリ１０２に書き込まれた「０」または「１」に対応する、フラッシュメモリ１０３に書き込まれる制御フラグ情報の値を判定する。
【００７９】
揮発性メモリ１０２に記憶されている制御フラグ情報が「値１」に更新されていた場合は、ＣＰＵ１０１はＳ１０５に処理を進める。ＣＰＵ１０１はＳ１０５において、フラッシュメモリ１０３の該当ブロックにブロック単位（４Ｋｂｙｔｅ）の一括消去処理を記憶制御処理として実行する。これにより、制御フラグ情報を「全ｂｉｔが立っている状態」６０２に書き換えることができる。この「指定ｂｉｔが落ちている状態」６０１から「全ｂｉｔが立っている状態」６０２への書き換え処理は約８００ミリ秒で終了する。
【００８０】
一方、揮発性メモリ１０２に記憶した制御フラグ情報が「値０」に更新されていた場合は、ＣＰＵ１０１はＳ１０６に処理を進める。ＣＰＵ１０１は、本実施形態における記憶制御処理として、Ｓ１０６でフラッシュメモリ１０３の制御フラグ情報を記憶しているブロックに１ｂｙｔｅ単位のライト処理を実行（図７において５Ａ５Ａをライト）する。そして、保存されている制御フラグ情報を「指定ｂｉｔが落ちている状態」６０１に書き換える。この「全ｂｉｔが立っている状態」６０２から「指定ｂｉｔが落ちている状態」６０１への書き換えは、Ｓ１０５における処理よりも高速であり、数ミリ秒で終了する。
【００８１】
なお、例えば制御フラグ情報がキャッピングフラグ情報である場合、印刷結果への影響が大きいキャップオープン状態を、不揮発性メモリにおける制御フラグ「０」、フラッシュメモリ１０３における６０１の状態に割り当てる。これにより、キャップオープン状態をより高速に書き込むことができるため、電源遮断によりキャップオープン状態が書き込めなくなることをより確実に防ぐことができる。
【００８２】
次に、制御フラグ情報をフラッシュメモリ１０３から揮発性メモリ１０２に読み出す処理について説明する。この処理は、例えばインクジェットプリンタ３が電源オフ状態から電源オン状態へ遷移した際に、ＣＰＵ１０１により実行される。
【００８３】
図９は、制御フラグ情報の読み出し処理を示すフローチャートである。図９に示す処理は、ＣＰＵ１０１による処理により実現される。具体的には、フラッシュメモリ１０３に記憶されている制御フラグ情報を読み込み、そして、読み込んだ値に応じて揮発性メモリ１０２に値を書き込む処理を実行する。図９に示す処理は、例えばインクジェットプリンタ３に電源が供給されている状態で、不図示の電源ボタンがユーザにより押下されたときにＣＰＵ１０１により実行される。
【００８４】
Ｓ２０１でＣＰＵ１０１は、フラッシュメモリ１０３の制御フラグ情報を記憶しているブロックの先頭２ｂｙｔｅを読み込む。次に、Ｓ２０２でＣＰＵ１０１は読み込んだデータを判定する。
【００８５】
Ｓ２０２で読み込まれたデータが制御フラグ情報の「全ｂｉｔが立っている状態」６０２を表すデータ（図７においてＦＦＦＦ）であった場合は、ＣＰＵ１０１はＳ２０３に処理を進める。Ｓ２０３でＣＰＵ１０１は、揮発性メモリ１０２に制御フラグ情報として「値１」を書き込む。
【００８６】
一方、Ｓ２０２における判定において、フラッシュメモリ１０３から読み込んだ制御フラグ情報が「指定ｂｉｔが落ちている状態」６０１を表すデータ（図７において５Ａ５Ａ）であった場合は、ＣＰＵ１０１はＳ２０４に処理を進める。Ｓ２０４においてＣＰＵ１０１は、揮発性メモリ１０２に制御フラグ情報として「値０」を書き込む。
【００８７】
以上の図８、図９に示した処理により、揮発性メモリ１０２に記憶されている制御フラグ（「０」または「１」）のフラッシュメモリ１０３への書き込み、またフラッシュメモリ１０３に記憶されている制御フラグの揮発性メモリ１０２への読み込みが実行される。
【００８８】
またインクジェットプリンタ３は、制御フラグ情報としてキャッピングフラグ情報をフラッシュメモリ１０３に書き込む場合、図８（ｂ）に示したような書き込み方法ではなく、以下図１０で説明する方法により書き込みが行われてもよい。図１０に示す処理では、ＣＰＵ１０１の制御によりプリントエンジン部３０２が動作する場合に、その動作と同期させながら、ＣＰＵ１０１が、揮発性メモリ１０２やフラッシュメモリ１０３に制御フラグ情報を記憶する。
【００８９】
図１０は、キャッピングフラグ情報を書き込む処理の一例を示すフローチャートであり、図８（ａ）のＳ００４の具体的内容を示す図である。
【００９０】
インクジェットプリンタ３は印刷処理を実行する際に、ＣＰＵ１０１およびプリントエンジン部制御回路１０６は、Ｓ３０１でプリントエンジン部３０２に含まれる記録ヘッドのキャップオープン処理を開始する。具体的には、キャップ機構を引き下げて記録ヘッドのインク吐出面を露出させる。インク吐出面の露出が完了すると、ＣＰＵ１０１はＳ３０２において、揮発性メモリ１０２に、キャップオープンを示すキャッピングフラグ情報の「（値０）」を書き込む。
【００９１】
次に、Ｓ３０３でＣＰＵ１０１は、本実施形態の記憶制御処理として、フラッシュメモリ１０３のキャッピングフラグ情報を記憶しているブロックに１ｂｙｔｅ単位のライト処理（図７において５Ａ５Ａをライト）を開始する。これにより制御フラグ情報が「指定ｂｉｔが落ちている状態」６０１に書き換わる。１ｂｙｔｅ単位のライト処理は数ミリ秒で終了し、記録ヘッドの状態とフラッシュメモリ１０３に記憶するキャッピングフラグ情報は同期し、書き込み処理が終了する。
【００９２】
また、インクジェットプリンタ３が印刷処理を終了し、規定された時間が経過した際に、ＣＰＵ１０１およびプリントエンジン部制御回路１０６は、Ｓ３０４でプリントエンジン部３０２に含まれる記録ヘッドのキャップクローズ処理を実行する。具体的には、キャップを押し上げて記録ヘッドのキャップが完了すると、ＣＰＵ１０１はＳ３０５において、揮発性メモリ１０２に、キャップクローズ状態に対応するキャッピングフラグ情報の「（値１）」を書き込む。
【００９３】
次に、Ｓ３０６においてＣＰＵ１０１は、本実施形態の記憶制御処理として、フラッシュメモリ１０３の該当ブロックにブロック単位（４Ｋｂｙｔｅ）の消去処理を開始し、制御フラグ情報を「全ｂｉｔが立っている状態」６０２に書き換える。ブロック単位の消去処理は約８００ミリ秒で終了し、書き込み処理が終了する。キャップオープン処理での書き込み時間と比較し、キャップクローズ処理の書き込み時間は比較的長い。そのため、不意の電源遮断によりキャップクローズを示す情報がフラッシュメモリ１０３に書き込まれず、また揮発性メモリ１０２から消失する可能性がある。しかし、すでに記録ヘッドのキャップは閉じており、仮に電源投入時にキャップクローズを認識できなくても、印刷品質への影響は少ない。
【００９４】
一方、キャップオープンを示す状態がフラッシュメモリ１０３に書き込まれない場合、インクが吐出口に詰まっていたとしても回復動作が行われず、適切な印刷が行えない場合がある。よって、キャップオープンを示すフラグ情報は、キャップクローズを示すフラグ情報よりも優先してフラッシュメモリ１０３に書き込まれる情報である。本実施形態では、キャップオープン状態を示す情報を、キャップクローズを示す情報よりも高速に書き込める。そのため、不意な電源遮断によりその情報が書き込めず、印刷品質に影響が及んでしまう可能性を低くすることができる。加えて、キャップオープン状態を示す情報をより高速に書き込むことができるため、印刷開始時におけるフラッシュメモリ１０３への書き込み時間を短縮することができる。よって、キャッピングフラグ情報の書き込みによるメカ動作の遅延を抑えることができ、印刷処理を素早く早く行うことができる。
【００９５】
なお、本実施形態は、フラグ制御情報の一例としてキャッピングフラグ情報について説明しているが、キャッピングフラグ情報以外のフラッシュメモリ１０３に高速にデータを記憶する必要のあるデータについて、適用可能である。例えば、両面印刷において用紙が搬送される送路紙に用紙が有るか否かを示すフラグ情報の場合は、印刷用紙を両面搬送路に引き込んだ状態を示す情報がより優先され、より高速に書き込まれる必要がある。そのため、インクジェットプリンタ３が印刷用紙を両面搬送路に引き込んでいない状態の場合、フラッシュメモリ１０３は「全ｂｉｔが立っている状態」６０２とし、揮発性メモリ１０２は「値１」とするようフラグを割り当てる。またヘッド交換中フラグ情報は、ヘッドを交換した状態を示す情報が、より優先され、より高速に書き込まれる必要がある。そのため、インクジェットプリンタ３がヘッドを交換した状態の場合、フラッシュメモリ１０３を「全ｂｉｔが立っている状態」６０２とし、揮発性メモリ１０２は「（値１）」とするようフラグを割り当てる。
【００９６】
なお、図１０に示した処理によりフラッシュメモリ１０３に１ｂｙｔｅ単位のライト処理もしくはブロック単位（４Ｋｂｙｔｅ）の一括消去処理を実行している最中に不意の電源遮断が起きる場合がある。そして、その後インクジェットプリンタ３が電源オフ状態から電源オン状態へ遷移した状況を想定する。例えばキャップオープン状態を示す情報をフラッシュメモリ１０３に書き込むために、図７に示す６０２の状態から６０１の状態に遷移させるよう「５Ａ５Ａ」を書き込む場合がある。そして、例えば「５Ａ」を書き込んだ状態で電源が遮断されると、６０１、６０２のいずれにも該当しない状態でフラッシュメモリ１０３への書き込みが終了する。
【００９７】
図１１は、フラッシュメモリ１０３への書き込み中の電源遮断を考慮した読み出し処理を示すフローチャートである。図１１の処理は、例えばインクジェットプリンタ３に電源が供給されている状態で、不図示の電源ボタンがユーザにより押下されたときにＣＰＵ１０１により実行される。
【００９８】
Ｓ４０１〜Ｓ４０４は、図９のＳ２０１〜Ｓ２０４と同様であるため、詳細な説明は省略する。ただしＳ４０２では、フラッシュメモリ１０３に記憶されている制御フラグ情報が、６０２の「全ｂｉｔが立っている状態」および６０１の「指定ｂｉｔが落ちている状態」を表すデータでない場合を判定できる。
【００９９】
Ｓ４０２において上記判定が行われた場合、ＣＰＵ１０１はＳ４０５、Ｓ４０６に処理を進めて、揮発性メモリ、またフラッシュメモリの該当ブロックの初期化処理を行う。Ｓ４０５においてＣＰＵ１０１は、揮発性メモリ１０２に初期値を書き込む。Ｓ４０６においてＣＰＵ１０１は、フラッシュメモリ１０３の制御フラグ情報を記憶しているブロックを揮発性メモリ１０２の値に対応した状態に変更する。
【０１００】
例えば、制御フラグ状態がキャッピングフラグ情報の場合、Ｓ４０５では初期値データとしてキャップオープン状態に対応する「値１」を揮発性メモリ１０２に書き込み、Ｓ５０６では、図７に示す６０１の状態に当該ブロックを更新する。これにより実際のキャップの状態がキャップオープン、クローズのいずれの状態であったとしても、キャップオープン状態を想定した回復動作が実行され、少なくとも印刷品質に影響を少なくすることができる。なお、Ｓ４０５で初期値データとしてキャップクローズ状態に対応する「値０」を揮発性メモリ１０２に書き込み、Ｓ５０６では、図７に示す６０２の状態に当該ブロックを更新してもよい。
【０１０１】
なお、以上の実施形態はメモリ制御装置として、インクジェットプリンタに組み込まれた電子制御回路基板を例に説明しているがこれに限らない。例えば印刷のための記録剤としてのトナーを印刷媒体に付与する電子写真方式の印刷装置でもよいし、プリンタに加え、原稿を読み取るためのスキャナを備えた複合機であってもよい。またプリンタに限らず、ＰＣ（パーソナルコンピュータ）や、スマートフォンやタブレット、携帯電話、デジタルカメラなどの各種の装置であってもよい。
【０１０２】
また、本実施形態におけるメモリ制御装置は、当該装置の内部に備える不揮発性メモリに対する書き込み、読み出しを行う場合に限らず、当該装置に接続された外部の不揮発性メモリに対して書き込み、読み出しを行う場合であってもよい。
【０１０３】
さらに以上の実施形態では、不揮発性メモリとしてフラッシュメモリを例に説明したが、これに限らない。例えばＥＥＰＲＯＭ等の種々のメモリに本実施形態を適用することができる。
【０１０４】
なお、本実施形態の機能は以下の構成によっても実現することができる。つまり、本実施形態の処理を行うためのプログラムコードをシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がプログラムコードを実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することとなり、またそのプログラムコードを記憶した記憶媒体も本実施形態の機能を実現することになる。
【０１０５】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【符号の説明】
【０１０６】
１０１  ＣＰＵ
１０２  揮発性メモリ
１０３  フラッシュメモリ
【図１】
2015125599.tif 000003
【図２】
2015125599.tif 000004
【図３】
2015125599.tif 000005
【図４】
2015125599.tif 000006
【図５】
2015125599.tif 000007
【図６】
2015125599.tif 000008
【図７】
2015125599.tif 000009
【図８】
2015125599.tif 000010
【図９】
2015125599.tif 000011
【図１０】
2015125599.tif 000012
【図１１】
2015125599.tif 000013