(57)【特許請求の範囲】
【請求項１】
印刷手段を制御するとともに前記印刷手段の動作によって更新される印刷関連情報を取得する印刷制御手段と、
前記印刷関連情報を含むデータが記憶される複数の記憶部を含む不揮発性の第１の記憶手段と、
前記記憶部のデータが書き込まれる第２の記憶手段と、
前記記憶部のデータを前記第２の記憶手段に書き込む書込み手段と、
前記印刷制御手段が取得した印刷関連情報が書き込まれる第２の記憶手段と、
前記複数の記憶部に対応して設けられた複数の計数手段と、
前記第２の記憶手段のデータを前記複数の記憶部に書き戻す書戻し処理を行うとともに、書戻し先の記憶部と対応する前記計数手段の計数処理を行って書戻したデータの量に応じた計数値とする書戻し手段と、を備え、
前記書込み手段は、前記複数の計数手段のうち計数値が書戻し完了値となっている計数手段と対応する記憶部のデータを前記第２の記憶手段へ書き込むことを特徴とする印刷装置におけるデータ記憶処理装置。
【請求項２】
前記第１の記憶手段は不揮発性の記憶手段であり、
前記書込み手段は、少なくとも印刷装置の電源投入時に起動されることを特徴とする請求項１に記載の印刷装置におけるデータ記憶処理装置。
【請求項３】
前記書戻し手段は、前記第２の記憶手段のデータを前記複数の記憶部へ書き戻す際の書戻しタイミングをずらして前記書戻し処理を行うことを特徴とする請求項１に記載の印刷装置におけるデータ記憶処理装置。
【請求項４】
前記書戻し手段は、前記複数の記憶部のうち前記第２の記憶手段のデータの書き戻し先とする前記記憶部を順番に切り換えることを特徴とする請求項１に記載の印刷装置におけるデータ記憶処理装置。
【請求項５】
前記印刷手段を分担して制御する複数の前記制御手段を備え、
前記制御手段は、前記印刷制御手段、前記記憶部、前記第２の記憶手段、前記計数手段、前記書込み手段及び前記書戻し手段を、それぞれ個別に備え、
前記印刷制御手段は、取得した印刷関連情報を前記第２の記憶手段に書き込むことで当該第２の記憶手段のデータを更新し、
前記書戻し手段は、前記第２の記憶手段のデータを前記記憶部に書き戻す書戻し処理を行うとともに書戻したデータの量に応じた計数値となるように当該記憶部と対応する前記計数手段の計数処理を行い、
前記書込み手段は、前記各計数手段の計数値が全て書戻し完了値となっていれば、書戻し完了値となっている計数手段と対応する記憶部のデータを前記第２の記憶手段へ書き込み、前記各計数手段の計数値のうち少なくとも一つが書戻し完了値となっておりかつ少なくとも他の一つが書戻し完了値となっていない場合、前記各制御手段の各計数手段のうち前記書戻し完了値となっている計数手段と対応する前記制御手段側の記憶部のデータを、書戻し完了値となっていない計数手段と対応する前記制御手段側の記憶部へ書き込むことを特徴とする請求項１に記載の印刷装置におけるデータ記憶処理装置。
【請求項６】
前記印刷制御手段は、前記印刷関連情報として、前記印刷手段の印刷動作に応じて更新される稼働情報と、ユーザーによる指示で設定動作を行ったときに更新される設定情報とを取得し、
前記書戻し手段は、前記第２の記憶手段の前記データのうち前記稼働情報を前記記憶部に書き戻すとともに、前記設定情報を前記第１の記憶手段のうち前記記憶部以外の所定記憶領域に書戻し、前記複数の記憶部のうち前記稼働情報の書き戻し先の前記記憶部を順番に切り換えることを特徴とする請求項１に記載の印刷装置におけるデータ記憶処理装置。
【請求項７】
前記書戻し手段は、前記複数の記憶部のうち最も直近にデータの書戻しが行われた一の記憶部を識別可能な識別情報を前記第１の記憶手段に記憶し、
前記書込み手段は、前記複数の記憶部のうち前記識別情報を基に識別した一の記憶部のデータを前記第２の記憶手段に書き込むことを特徴とする請求項４又は５に記載の印刷装置におけるデータ記憶処理装置。
【請求項８】
前記書込み手段は、前記複数の計数手段の各計数値が全て書戻し完了値ではないと判定した場合、前記記憶部のデータのうち対応する前記計数手段の計数値に相当する分までの一部のデータを用いて前記データを修復する修復手段を更に備えたことを特徴とする請求項４又は５に記載の印刷装置におけるデータ記憶処理装置。
【請求項９】
前記書込み手段は、前記複数の計数手段の各計数値が全て書戻し完了値ではないと判定した場合、前記記憶部のデータのうち対応する前記計数手段の計数値に相当する分までの少なくとも一部のデータを、印刷装置と通信可能に接続された上位装置に送り、当該上位装置で修復されて当該上位装置から受信したデータを前記第２の記憶手段に書き込むことを特徴とする請求項４又は５に記載の印刷装置におけるデータ記憶処理装置。
【請求項１０】
前記印刷手段と、前記印刷手段を制御する制御装置とを備えた印刷装置であって、
前記制御装置は、請求項１乃至９のいずれか一項に記載の前記データ記憶処理装置を備えたことを特徴とする印刷装置。
【請求項１１】
印刷装置におけるデータ記憶処理方法であって、
印刷装置には、印刷関連情報を含むデータが記憶される複数の記憶部を含む第１の記憶手段と、
前記記憶部のデータが書き込まれるとともに当該データの更新のために印刷制御手段による前記データの書込みアクセスが許可された第２の記憶手段とが備えられ、
前記第１の記憶手段のうち前記記憶部のデータを前記第２の記憶手段に書き込む書込み段階と、
印刷手段を制御するとともに前記印刷手段の動作によって更新される印刷関連情報を取得する印刷制御段階と、
前記印刷制御段階で取得した印刷関連情報を前記第２の記憶手段に書き込んでデータを更新するデータ更新段階と、
前記第２の記憶手段のデータを前記複数の記憶部にそれぞれ書き戻す書戻し処理を行うとともに、書戻し先の記憶部に対応する計数手段の計数処理を行って書戻したデータの量に応じた計数値とする書戻し段階と、を備え、
前記書込み段階では、前記計数値が書戻し完了値であるか否かを判定し、前記複数の計数手段のうち計数値が書戻し完了値となっている計数手段と対応する記憶部のデータを前記第２の記憶手段へ書き込むことを特徴とする印刷装置におけるデータ記憶処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置の稼働中に更新される印刷関連情報を含むデータを不揮発性記憶手段に記憶させて保存する印刷装置におけるデータ記憶処理装置、印刷装置及びデータ記憶処理方法に関する。
【背景技術】
【０００２】
例えば特許文献１、２には、インク残量の情報などのデータを不揮発性メモリーに記憶して保存する印刷装置が開示されている。
例えば特許文献１に記載の記録装置では、記録ヘッドに搭載されている不揮発性メモリーと、インクタンクに搭載されている不揮発性メモリーとを備え、記録ヘッドに搭載されている不揮発性メモリーに、インクタンクに搭載された不揮発性メモリーの内容をコピーする技術が開示されている。印刷終了時、回復動作完了時など、インクを消費する動作を行った場合に、インクタンクの不揮発性メモリーと記録ヘッドの不揮発性メモリーの内容を同時に書き換える。このため、データ書込み中のインクタンクの着脱などの不意な行為によりインクタンクの不揮発性メモリーへのデータの書き換えが失敗しても、記録ヘッドの不揮発性メモリーの内容でインクタンクの不揮発性メモリーの内容を復元することができる。
【０００３】
また、特許文献２には、１ページの印刷が完了する度に、インク残量を演算し、これを不揮発性メモリー（ＥＥＰＲＯＭ）に書き戻す印刷装置が開示されている。そして、パワーダウン命令が出力された場合には、不揮発性メモリーのインク残量のデータを、インクカートリッジの不揮発性の記憶素子に書き込むようになっていた。
【０００４】
しかし、ＲＡＭ又は不揮発性メモリーから他の不揮発性メモリー（不揮発性の記憶素子）へのデータの書き戻しは、電源オフ時に行っていたので、停電の発生時や電源プラグが抜けたときには、電源が遮断されるまでの短時間（例えば二次電池機能をもつコンデンサーの放電時間）のうちに書き戻し処理を完了しなければならなかった。この場合、データの書き戻しを最後まで行うことができず、不揮発性メモリーに一部旧いデータが混在するなどの問題が発生する虞があった。
【０００５】
このように書込み可能回数に制限のあるＥＥＰＲＯＭのような不揮発性メモリーを用いた構成の場合、データの書戻しは、パワーダウン命令が出力されたとき、インクカートリッジ交換時などに制限されていたので、上記の問題が発生する。近年、書込み可能回数に実質的に制限がない程度に耐久性のあるＦｅＲＡＭのような不揮発性メモリーも使用されるようになってきている。この場合、逐次更新されたインク残量などの更新データはＲＡＭに記憶しておき、ＲＡＭの書込み頻度よりも少ない書込み頻度で不揮発性メモリーに書き込むことができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１９３５９３号公報
【特許文献２】特開２００３−１９８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、不意な電源遮断時に、ＲＡＭ又は不揮発性メモリーなどの一の記憶手段（第２の記憶手段）から不揮発性メモリーからなる他の記憶手段（第１の記憶手段）へデータを書き戻す場合、電力供給が早めに止まって、第２の記憶手段から第１の記憶手段へのデータの書戻し処理が途中で中断される場合があった。この場合、書戻し中断までの新しいデータと、書戻しによる更新がなされなかった前回の旧いデータとを繋げた間違ったデータが、不揮発性メモリーに保存されてしまうという問題があった。例えば、この新旧のデータの境界が１つの情報の途中にあった場合、その情報は間違った情報になってしまう。
【０００８】
不揮発性メモリー（第１の記憶手段）に間違ったデータが保存されたまま電源が遮断されると、次回電源オン時に不揮発性メモリーから読み出された間違ったデータを基に取得される例えばインク残量の情報が実際のインク残量と異なっている場合が起こり得た。この場合、インク残量情報の上ではインクエンドになっていないにも拘らず、実際のインク残量が無くなって印刷途中でインク切れとなったり、実際にはインクが残っているにも拘らずインクエンドと判定されて印刷動作が強制的に停止されたりする不都合が発生するという問題がある。もちろん、不揮発性メモリー（第１の記憶手段）にはインク残量以外にも種々のデータが保存されるので、間違ったデータにより引き起こされる問題はデータ種ごとに異なる。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、その目的の一つは、書戻しを完了した正しいデータを第１の記憶手段から第２の記憶手段へ書き込むことができ、しかも書戻し処理が中断されても、書戻しを完了した比較的新しいデータを第２の記憶手段に書き込むことができる印刷装置におけるデータ記憶処理装置、印刷装置及びデータ記憶処理方法を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的の一つを達成するために、本発明の態様の一つは、印刷装置におけるデータ記憶処理装置であって、印刷手段を制御するとともに前記印刷手段の動作によって更新される印刷関連情報を取得する印刷制御手段と、前記印刷関連情報を含むデータが記憶される複数の記憶部を含む不揮発性の第１の記憶手段と、前記記憶部のデータが書き込まれる第２の記憶手段と、前記記憶部のデータを前記第２の記憶手段に書き込む書込み手段と、前記印刷制御手段が取得した印刷関連情報が書き込まれる第２の記憶手段と、前記複数の記憶部に対応して設けられた複数の計数手段と、前記第２の記憶手段のデータを前記複数の記憶部に書き戻す書戻し処理を行うとともに、書戻し先の記憶部と対応する前記計数手段の計数処理を行って書戻したデータの量に応じた計数値とする書戻し手段と、を備え、前記書込み手段は、前記複数の計数手段のうち計数値が書戻し完了値となっている計数手段と対応する記憶部のデータを前記第２の記憶手段へ書き込むことを要旨とする。
【００１１】
この発明の一態様によれば、第１の記憶手段の記憶部のデータが、書込み手段により第２の記憶手段に書き込まれる。印刷制御手段は印刷手段を制御し、印刷手段の動作によって更新される印刷関連情報を取得し、その取得した印刷関連情報を第２の記憶手段に書き込むことでデータを更新する。書戻し手段は、第２の記憶手段のデータを、第１の記憶手段の複数の記憶部にそれぞれ書き戻す書戻し処理を行い、このとき書戻し先の記憶部と対応する計数手段の計数処理を行って書戻したデータの量に応じた計数値とする。この結果、第２の記憶手段のデータは、複数の記憶部にそれぞれ書き戻される。その後、書込み手段が書き込みを行う際は、複数の計数手段のうち計数値が書戻し完了値となっている計数手段と対応する記憶部のデータを第２の記憶手段へ書き込む。つまり、書戻しが中断された記憶部が存在しても、その記憶部の書戻し途中のデータが第２の記憶手段に書き込まれる事態が回避される。従って、書戻しを完了した正しいデータを第１の記憶手段から第２の記憶手段へ書き込むことができ、しかも書戻し処理が中断されても、書戻しを完了した比較的新しいデータを第２の記憶手段に書き込むことができる。
【００１２】
本発明の態様の一つであるデータ記憶処理装置では、前記第１の記憶手段は不揮発性の記憶手段であり、前記書込み手段は、少なくとも印刷装置の電源投入時に起動されることが好ましい。
【００１３】
この発明の一態様によれば、書込み手段は、少なくとも印刷装置の電源投入時に起動される。このとき、書込み手段は、複数の計数手段のうち計数値が書戻し完了値となっている一の計数手段と対応する記憶部のデータを、第２の記憶手段へ書き込む。このため、書戻しを完了した正しいデータを、第１の記憶手段から第２の記憶手段へ書き込むことができる。つまり、書戻しが中断されて間違っている虞のあるデータが第２の記憶手段に書き戻される事態を回避できる。
【００１４】
本発明の態様の一つであるデータ記憶処理装置では、前記書戻し手段は、前記第２の記憶手段のデータを前記複数の記憶部へ書き戻す際の書戻しタイミングをずらして前記書戻し処理を行うことが好ましい。
【００１５】
この発明の一態様によれば、書戻し手段は、第２の記憶手段のデータを複数の記憶部へ書き戻す際の書戻しタイミングをずらして書戻し処理を行う。このため、複数の記憶部のデータには、例えば書戻し完了値の計数手段と、書戻し完了値でない計数手段とが存在することになる。よって、書戻し完了値の計数手段と対応する記憶部のデータを書き戻すことができる。
【００１６】
本発明の態様の一つであるデータ記憶処理装置では、前記書戻し手段は、前記複数の記憶部のうち前記第２の記憶手段のデータの書き戻し先とする前記記憶部を順番に切り換えることが好ましい。
【００１７】
この発明の一態様によれば、書戻し手段は、複数の記憶部のうち第２の記憶手段のデータの書き戻し先とする記憶部を順番に切り換える。このため、例えば複数の記憶部のうち一の記憶部へのデータの書戻しが中断された場合、他の記憶部と対応する計数手段が書戻し完了値になっており、この書戻し完了値の計数手段と対応する記憶部からデータを書き戻すことができる。
【００１８】
本発明の態様の一つであるデータ記憶処理装置では、前記印刷手段を分担して制御する複数の前記制御手段を備え、前記制御手段は、前記印刷制御手段、前記記憶部、前記第２の記憶手段、前記計数手段、前記書込み手段及び前記書戻し手段を、それぞれ個別に備え、前記印刷制御手段は、取得した印刷関連情報を前記第２の記憶手段に書き込むことで当該第２の記憶手段のデータを更新し、前記書戻し手段は、前記第２の記憶手段のデータを前記記憶部に書き戻す書戻し処理を行うとともに書戻したデータの量に応じた計数値となるように当該記憶部と対応する前記計数手段の計数処理を行い、前記書込み手段は、前記各計数手段の計数値が全て書戻し完了値となっていれば、書戻し完了値となっている計数手段と対応する記憶部のデータを前記第２の記憶手段へ書き込み、前記各計数手段の計数値のうち少なくとも一つが書戻し完了値となっておりかつ少なくとも他の一つが書戻し完了値となっていない場合、前記各制御手段の各計数手段のうち前記書戻し完了値となっている計数手段と対応する前記制御手段側の記憶部のデータを、書戻し完了値となっていない計数手段と対応する前記制御手段側の記憶部へ書き込むことが好ましい。
【００１９】
この発明の一態様によれば、印刷手段を分担して制御する複数の前記制御手段は、印刷制御手段、記憶部、第２の記憶手段、計数手段、書込み手段及び書戻し手段を、それぞれ個別に備える。すなわち、第１の記憶手段に含まれる複数の記憶部は、それぞれ複数の制御手段に分けて設けられる。各制御手段の各印刷制御手段は、それぞれ取得した印刷関連情報を、対応する第２の記憶手段に書き込むことでそれぞれのデータが更新される。各制御手段の各書戻し手段は、第２の記憶手段のデータを記憶部に書き戻す書戻し処理を行い、このとき書戻したデータの量に応じた計数値となるように記憶部と対応する計数手段の計数処理を行う。その後、各制御手段の各書込み手段は、各計数手段の計数値が全て書戻し完了値となっていれば、書戻し完了値となっている計数手段と対応する記憶部のデータを第２の記憶手段へ書き込む。一方、各計数手段の計数値のうち少なくとも一つが書戻し完了値となっておりかつ少なくとも他の一つが書戻し完了値となっていない場合は、各計数手段のうち書戻し完了値となっている計数手段と対応する制御手段側の記憶部のデータを、書戻し完了値となっていない計数手段と対応する制御手段側の記憶部へ書き込む。よって、このように印刷手段を複数の制御手段で分担して制御する構成の場合でも、書戻しを完了した正しいデータを第２の記憶手段へ書き込むことができる。
【００２０】
本発明の態様の一つであるデータ記憶処理装置では、前記印刷制御手段は、前記印刷関連情報として、前記印刷手段の印刷動作に応じて更新される稼働情報と、ユーザーによる指示で設定動作を行ったときに更新される設定情報とを取得し、前記書戻し手段は、前記第２の記憶手段の前記データのうち前記稼働情報を前記記憶部に書き戻すとともに、前記設定情報を前記第１の記憶手段のうち前記記憶部以外の所定記憶領域に書戻し、前記複数の記憶部のうち前記稼働情報の書き戻し先の前記記憶部を順番に切り換えることが好ましい。
【００２１】
この発明の一態様によれば、印刷制御手段は、印刷関連情報として、印刷手段の印刷動作に応じて更新される稼働情報と、ユーザーによる指示で設定動作を行ったときに更新される設定情報とを取得する。書戻し手段は、第２の記憶手段のデータのうち稼働情報を記憶部に書き戻すとともに、前記設定情報を前記第１の記憶手段のうち前記記憶部以外の所定記憶領域に書戻し、前記複数の記憶部のうち前記稼働情報の書き戻し先の記憶部を順番に切り換える。
【００２２】
本発明の態様の一つであるデータ記憶処理装置では、前記書戻し手段は、前記複数の記憶部のうち最も直近にデータの書戻しが行われた一の記憶部を識別可能な識別情報を前記第１の記憶手段に記憶し、前記書込み手段は、前記複数の記憶部のうち前記識別情報を基に識別した一の記憶部のデータを前記第２の記憶手段に書き込むことが好ましい。
【００２３】
この発明の一態様によれば、書戻し手段は、複数の記憶部のうち最も直近にデータの書戻しが行われた一の記憶部を識別可能な識別情報を第１の記憶手段に記憶する。書込み手段は、複数の記憶部のうち識別情報を基に識別した一の記憶部のデータを第２の記憶手段に書き込む。このため、最も直近に更新されたデータを第２の記憶手段に書き込むことができる。
【００２４】
本発明の態様の一つであるデータ記憶処理装置では、前記書込み手段は、前記複数の計数手段の各計数値が全て書戻し完了値ではないと判定した場合、前記記憶部のデータのうち対応する前記計数手段の計数値に相当する分までの一部のデータを用いて前記データを修復する修復手段を更に備えている。
【００２５】
この発明の一態様によれば、書込み手段は、複数の計数手段の各計数値が全て書戻し完了値ではないと判定した場合、修復手段により、記憶部のデータのうち対応する計数手段の計数値に相当する分までの一部のデータを用いてデータを修復する。よって、全ての記憶部への書戻しが中断された場合、一部でも最新のデータを使って、なるべく信頼性の高いデータを修復することができる。
【００２６】
本発明の態様の一つであるデータ記憶処理装置では、前記書込み手段は、前記複数の計数手段の各計数値が全て書戻し完了値ではないと判定した場合、前記記憶部のデータのうち対応する前記計数手段の計数値に相当する分までの少なくとも一部のデータを、印刷装置と通信可能に接続された上位装置に送り、当該上位装置で修復されて当該上位装置から受信したデータを前記第２の記憶手段に書き込むことが好ましい。
【００２７】
この発明の一態様によれば、書込み手段は、複数の計数手段の各計数値が全て書戻し完了値ではないと判定した場合、記憶部のデータのうち対応する計数手段の計数値に相当する分までの一部のデータを上位装置に送る。そして、書込み手段は、上位装置で修復されて当該上位装置から受信したデータを前記第２の記憶手段に書き込む。
【００２８】
本発明の態様の一つは、前記印刷手段と、前記印刷手段を制御する制御装置とを備えた印刷装置であって、前記制御装置は、上記発明の態様の一つである前記データ記憶処理装置を備えたことを要旨とする。
【００２９】
この発明の一態様によれば、印刷装置は、上記発明の幾つかの態様のいずれか一つに係る前記データ記憶処理装置を備えているので、前記データ記憶処理装置に係る発明の幾つかの態様のうちいずれか一つが有する効果を同様に得ることができる。
【００３０】
本発明の態様の一つは、印刷装置におけるデータ記憶処理方法であって、印刷装置には、印刷関連情報を含むデータが記憶される複数の記憶部を含む第１の記憶手段と、前記記憶部のデータが書き込まれるとともに当該データの更新のために印刷制御手段による前記データの書込みアクセスが許可された第２の記憶手段とが備えられ、前記第１の記憶手段のうち前記記憶部のデータを前記第２の記憶手段に書き込む書込み段階と、印刷手段を制御するとともに前記印刷手段の動作によって更新される印刷関連情報を取得する印刷制御段階と、前記印刷制御段階で取得した印刷関連情報を前記第２の記憶手段に書き込んでデータを更新するデータ更新段階と、前記第２の記憶手段のデータを前記複数の記憶部にそれぞれ書き戻す書戻し処理を行うとともに、書戻し先の記憶部に対応する計数手段の計数処理を行って書戻したデータの量に応じた計数値とする書戻し段階と、を備え、前記書込み段階では、前記計数値が書戻し完了値であるか否かを判定し、前記複数の計数手段のうち計数値が書戻し完了値となっている計数手段と対応する記憶部のデータを前記第２の記憶手段へ書き込むことを要旨とする。この発明の一態様によれば、上記発明の態様の一つである前記データ記憶処理装置と同様の作用効果を得ることができる。
【図面の簡単な説明】
【００３１】
【図１】第１実施形態における印刷システムの模式側面図。
【図２】印刷システムの電気的構成を示すブロック図。
【図３】コントローラーの機能構成を説明するブロック図。
【図４】コントローラーのハードウェア構成を示すブロック図。
【図５】（ａ）（ｂ）タスク優先順位管理テーブルを示す模式図。
【図６】不揮発性メモリーの構成及びデータ記憶処理を説明するブロック図。
【図７】不揮発性メモリーの２つの領域の構成を示す模式図。
【図８】通常時におけるデータ記憶処理を説明するシーケンス図。
【図９】電源オフ時におけるデータ記憶処理を説明するシーケンス図。
【図１０】書戻し処理を示すフローチャート。
【図１１】書込み処理を示すフローチャート。
【図１２】第２実施形態における印刷システムの電気的構成を示すブロック図。
【図１３】複数のコントローラーの同期処理機能に係る機能構成を示すブロック図。
【図１４】データ記憶処理を説明するブロック図。
【図１５】不揮発性メモリーの構成を示す模式図。
【図１６】書戻し処理を示すフローチャート。
【図１７】書込み処理を示すフローチャート。
【図１８】書戻し処理の中断時のデータを説明する模式図。
【図１９】変形例における不揮発性メモリーの構成を示す模式図。
【発明を実施するための形態】
【００３２】
以下、本発明をラテラル方式のインクジェット式プリンターの印刷制御装置に具体化した一実施形態を図１〜図１２に従って説明する。
図１は、ラテラル方式のインクジェット式プリンターを備えた印刷システムの模式図である。図１に示すように、印刷システム１００は、画像データを生成する画像生成装置１１０と、画像生成装置１１０から受信した画像データを基に印刷データを生成する上位装置の一例としてのホスト装置１２０と、ホスト装置１２０から受信した印刷データに基づく画像を印刷する印刷装置の一例としてのラテラル方式のインクジェット式プリンター（以下、単に「プリンター１１」と称す）とを備えている。
【００３３】
画像生成装置１１０は、例えばパーソナルコンピューターにより構成され、その本体１１１内のＣＰＵが画像作成用ソフトウェアを実行することで構築される画像生成部１１２を備える。ユーザーは、画像生成部１１２を起動して入力装置１１３の操作でモニター１１４上で画像を作成し、入力装置１１３を操作して画像の印刷を指示する。すると、その画像に係る画像データが所定の通信インターフェイスを介してホスト装置１２０へ送信される。
【００３４】
ホスト装置１２０は、例えばパーソナルコンピューターにより構成され、その本体１２１内のＣＰＵがプリンタードライバー用ソフトウェアを実行することで構築されるプリンタードライバー１２２を備える。プリンタードライバー１２２は、画像生成装置１１０から受信した画像データを基に印刷データを生成し、プリンター１１に設けられた制御装置Ｃへ送信する。制御装置Ｃは、プリンタードライバー１２２から受信した印刷データに基づいてプリンター１１を制御し、プリンター１１に印刷データに基づく画像を印刷させる。なお、モニター１２３には、プリンター１１に制御用設定値を入力設定するためのメニュー画面や印刷対象の画像等が表示される。
【００３５】
次に、図１に示すプリンター１１の構成について説明する。なお、以下における明細書中の説明において、「左右方向」、「上下方向」をいう場合は、図１に矢印で示した方向を基準として示すものとする。また、図１において手前側を前側、奥側を後側とする。
【００３６】
図１に示すように、プリンター１１は、直方体状の本体ケース１２を備える。本体ケース１２内には、長尺状のシート１３を繰り出す繰出し部１４と、そのシート１３にインクの噴射により印刷を施す印刷室１５と、その印刷によりインクが付着したシート１３に乾燥処理を施す乾燥装置１６と、乾燥処理が施されたシート１３を巻き取る巻取り部１７とが設けられている。
【００３７】
すなわち、本体ケース１２内におけるやや上寄りの位置には、本体ケース１２内を上下に区画する平板状の基台１８が設けられており、この基台１８よりも上側の領域が矩形板状の支持部材１９を基台１８上に支持してなる印刷室１５となっている。そして、基台１８よりも下側の領域において、シート１３の搬送方向で上流側となる左側寄りの位置に、繰出し部１４が配設されると共に、下流側となる右側寄りの位置に、乾燥装置１６及び巻取り部１７が配設されている。
【００３８】
図１に示すように、繰出し部１４には、前後方向に延びる巻き軸２０が回転自在に設けられ、その巻き軸２０に対してシート１３が予めロール状に巻かれた状態で一体回転可能に支持されている。すなわち、シート１３は、巻き軸２０が回転することにより、繰出し部１４から繰り出されるようになっている。また、繰出し部１４から繰り出されたシート１３は、巻き軸２０の右側に位置する第１ローラー２１に巻き掛けられて上方へ案内される。
【００３９】
一方、支持部材１９の左側であって下側の第１ローラー２１と上下方向で対応する位置には、第２ローラー２２が下側の第１ローラー２１と平行な状態で設けられている。そして、第１ローラー２１によって搬送方向が鉛直上方向に変換されたシート１３は、この第２ローラー２２に左側下方から巻き掛けられることにより、その搬送方向が水平右方向に変換されて支持部材１９の上面に摺接するようになっている。
【００４０】
また、支持部材１９の右側には、左側の第２ローラー２２と支持部材１９を挟んで対向する第３ローラー２３が第２ローラー２２と平行な状態で設けられている。なお、第２ローラー２２及び第３ローラー２３は各々の周面の頂部が支持部材１９の上面と同一高さとなるように位置調整されている。
【００４１】
印刷室１５内で左側の第２ローラー２２により搬送方向が水平右方向に変換されたシート１３は、支持部材１９の上面に摺接しつつ下流側となる右側に搬送された後、第３ローラー２３に右側上方から巻き掛けられることにより搬送方向が鉛直下方向に変換されて基台１８よりも下側の乾燥装置１６に向けて搬送されるようになっている。そして、乾燥装置１６内を通過することにより乾燥処理が施されたシート１３は、更に鉛直下方向に搬送された後、第４ローラー２４に巻き掛けられて搬送方向を水平右方向に変換され、この第４ローラー２４の右側に配設された巻取り部１７の巻取り軸２５が搬送モーター６１（図２参照）の駆動力に基づいて回転することによりロール状に巻き取られる。
【００４２】
図１に示すように、印刷室１５内における支持部材１９の前後両側には、左右方向に延びるガイドレール２６（図１では２点鎖線で示す）が対をなすように設けられている。ガイドレール２６の上面は支持部材１９の上面よりも高くなっており、両ガイドレール２６の上面には、矩形状のキャリッジ２７が第１キャリッジモーター６２（図２参照）の駆動に基づき両ガイドレール２６に沿って図１に示す主走査方向Ｘ（図１では左右方向）への往復移動が可能な状態で支持されている。また、キャリッジ２７は第２キャリッジモーター６３（図２参照）の駆動に基づき副走査方向（図１では紙面と直交する前後方向）への移動も可能となっている。そして、このキャリッジ２７の下面側には支持板２８を介して記録手段の一例である複数の記録ヘッド２９が支持されている。
【００４３】
支持部材１９の左端から右端までの一定範囲が印刷領域とされており、この印刷領域単位でシート１３は間欠的に搬送されるようになっている。そして、支持部材１９上に停止したシート１３に対してキャリッジ２７の往復移動に伴い記録ヘッド２９からインクが噴射されることでシート１３に印刷が施される。
【００４４】
なお、印刷時には、支持部材１９の下側に設けられた吸引装置３０が駆動され、支持部材１９の上面に開口する多数の吸引孔に及ぶ負圧による吸引力により、シート１３は支持部材１９の上面に吸着される。そして、シート１３への１回分の印刷が終わると、吸引装置３０の負圧が解除され、シート１３の搬送が行われるようになっている。
【００４５】
また、印刷室１５内において、第３ローラー２３よりも右側となる非印刷領域には、非印刷時に記録ヘッド２９のメンテナンスを行うためのメンテナンス装置３２が設けられている。メンテナンス装置３２は、記録ヘッド２９毎にキャップ３３と昇降装置３４とを備える。各キャップ３３は昇降装置３４の駆動により、記録ヘッド２９のノズル形成面に当接するキャッピング位置と、ノズル形成面から離間する退避位置との間を移動する。
【００４６】
また、図１に示すように、本体ケース１２内には、異なる色のインクをそれぞれ収容した複数（例えば８個）のインクカートリッジＩＣ１〜ＩＣ８が着脱可能に装着されている。そして、各インクカートリッジＩＣ１〜ＩＣ８はインク供給路等（図示省略）を通じて記録ヘッド２９に接続され、各記録ヘッド２９は各インクカートリッジＩＣ１〜ＩＣ８から供給されたインクを噴射する。このため、本例のプリンター１１では、８色のインクを用いたカラー印刷が可能となっている。なお、本体ケース１２においてインクカートリッジＩＣ１〜ＩＣ８の配置位置と対応する箇所には開閉式のカバー３８が設けられている。インクカートリッジＩＣ１〜ＩＣ８の交換作業はカバー３８を開けて行われる。インクカートリッジ交換等を行う際のカバー３８の開操作は、制御装置Ｃにより検出されるようになっている。
【００４７】
８個のインクカートリッジＩＣ１〜ＩＣ８は、例えば黒（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）等の各インクを収容する。なお、保湿液を収容する保湿液カートリッジが装填される構成も採用できる。もちろん、インクの種類（色数）は適宜設定でき、黒インクだけでモノクロ印刷する構成や、インクを２色としたり、８色以外で３色以上の任意の色数としたりした構成も採用できる。
【００４８】
各インクカートリッジＩＣ１〜ＩＣ８はカートリッジホルダー（図示省略）を介して制御装置Ｃと電気的に接続されており、各インクカートリッジＩＣ１〜ＩＣ８に実装された不揮発性の記憶素子４７（図２参照）には、対応する色のインク残量情報が書き込まれるようになっている。また、本実施形態では、制御装置Ｃには、無停電電源４８が接続されており、プリンター１１の各種駆動系及び表示系への電力供給は、無停電電源４８から制御装置Ｃを介して行われるようになっている。なお、無停電電源４８に替えて、無停電機能を備えない通常の電源を用いてもよい。
【００４９】
図２は、印刷システム１００の電気構成を示すブロック図である。図２に示すホスト装置１２０内のプリンタードライバー１２２は、モニター１２３に表示させるべきメニュー画面及び印刷条件設定画面などの各種画面の表示制御を行うと共に、各画面の表示状態において操作部１２４から入力した操作信号に応じた所定処理を行うホスト制御部１２５を備えている。ホスト制御部１２５は、プリンタードライバー１２２を統括的に制御する。また、プリンタードライバー１２２には、上位の画像生成装置１１０から受信した画像データに対して印刷データの生成に必要な画像処理を施す、解像度変換部１２６、色変換部１２７及びハーフトーン処理部１２８を備えている。解像度変換部１２６は、画像データを表示解像度から印刷解像度へ変換する解像度変換処理を行う。色変換部１２７は、表示用の表色系（例えばＲＧＢ表色系やＹＣｂＣｒ表色系）から印刷用の表色系（例えばＣＭＹＫ表色系）に色変換する色変換処理を行う。さらにハーフトーン処理部１２８は、表示用の高階調（例えば２５６階調）の画素データを印刷用の低階調（例えば２階調又は４階調）の画素データに階調変換するハーフトーン処理などを行う。そして、プリンタードライバー１２２は、これらの画像処理を施した結果生成された印刷画像データに、印刷制御コード（例えばＥＳＣ／Ｐ）で記述されたコマンドを付して印刷ジョブデータ（以下、単に「印刷データＰＤ」と称す）を生成する。
【００５０】
ホスト装置１２０はデータの転送制御を行う転送制御部１２９を備える。転送制御部１２９は、プリンタードライバー１２２が生成した印刷データＰＤを所定容量のパケットデータずつプリンター１１へ順次シリアル転送する。
【００５１】
一方、プリンター１１側の制御装置Ｃは、ホスト装置１２０から印刷データＰＤを受信して記録系の制御をはじめとする各種制御を行うコントローラー４０を備えている。コントローラー４０は、複数個（本例では１５個）の記録ヘッド２９を制御する。
【００５２】
図２に示すように、本実施形態のホスト装置１２０は、シリアル通信ポートＵ１を備えている。また、コントローラー４０もシリアル通信ポートＵ２を備えている。そして、転送制御部１２９は、シリアル通信ポートＵ１，Ｕ２間の通信を介してコントローラー４０へ対応する印刷データＰＤをシリアル転送するようになっている。
【００５３】
図２に示すように、コントローラー４０には、複数個（Ｎ個（本例では８個））のヘッド制御ユニット４５（以下、単に「ＨＣＵ４５」という）が接続され、各ＨＣＵ４５にはそれ一個につき記録ヘッド２９が複数個（Ｍ個（本例では２個））ずつ接続されている。
【００５４】
また、コントローラー４０に接続された各通信回路４６には、８個のインクカートリッジＩＣ１〜ＩＣ８に実装された８個の記憶素子４７がそれぞれ接続されている。コントローラー４０は８個のインクカートリッジＩＣ１〜ＩＣ４に実装された記憶素子４７と通信可能である。記憶素子４７は不揮発性の記憶素子により構成されている。記憶素子４７には、対応するインクカートリッジＩＣのインク残量情報、インク色、使用期限、メンテナンス情報、品番などの各種のインク関連情報が記憶される。なお、インクカートリッジＩＣ（図１参照）がカートリッジホルダーに装着された状態で、記憶素子４７とカートリッジホルダー側の端子部とが電気的に接続されることにより、通信回路４６は記憶素子４７に対して読み取り及び書き込みのための通信が可能となる。
【００５５】
コントローラー４０は、８個のインクカートリッジＩＣ１〜ＩＣ８のインク残量等を管理する。コントローラー４０は、通信回路４６を介してインクカートリッジＩＣ１〜ＩＣ８の各記憶素子４７と通信してインク関連情報の読出し及び書込みが可能となっている。
【００５６】
さらに、制御装置Ｃは、コントローラー４０の出力側（制御下流側）に通信線ＳＬ１を通じて接続されたメカコントローラー４３を備えている。メカコントローラー４３は主に搬送系及びキャリッジ駆動系を含むメカニカル機構４４の制御を司る。コントローラー４０は、自身が受け持つ複数個（例えば１５個）の記録ヘッド２９の印刷準備ができた段階（つまりインク滴噴射制御に使用する印刷画像データが準備された段階）でキャリッジ起動コマンドをメカコントローラー４３へ送信するようになっている。これにより、コントローラー４０のうち一方の印刷準備完了前にキャリッジ２７が起動されてしまうことに起因し、記録ヘッド２９が噴射位置に到達したにも拘わらずインク滴が噴射されない噴射ミスが防止される。
【００５７】
また、コントローラー４０は、自身が受け持つ複数個の記録ヘッド２９の印刷を完了した段階で、シート１３の搬送を指令する搬送コマンドをメカコントローラー４３へ送信する。これにより、印刷完了前の段階でシート１３が搬送開始（又は支持部材１９上のシートの吸着解除）されてしまうことに起因し、記録ヘッド２９から噴射されたインク滴のシート１３に対する着弾位置ずれ（印刷位置ずれ）が防止される。
【００５８】
図２に示すように、コントローラー４０にはリニアエンコーダー５０が接続されている。このリニアエンコーダー５０はキャリッジ２７の移動経路に沿って設けられ、コントローラー４０には、このリニアエンコーダー５０からキャリッジ２７の移動距離に比例する数のパルスをもつ検出信号（エンコーダーパルス信号）が入力される。コントローラー４０に入力されたエンコーダーパルス信号は、キャリッジ２７の主走査方向における位置（キャリッジ位置）及びキャリッジ移動方向の取得や、記録ヘッド２９へ出力される噴射タイミング信号の生成に用いられる。
【００５９】
図２に示すように、コントローラー４０は、ＣＰＵ５１（中央処理装置）、ＡＳＩＣ５２（Application Specific IC（特定用途向け集積回路））、ＲＯＭ５３、第２の記憶手段の一例としてのＲＡＭ５４、及び第１の記憶手段の一例としての不揮発性メモリー５５を備えている。ＣＰＵ５１は、ＲＯＭ５３に記憶されたプログラムを実行することにより、印刷制御に必要な各種タスクを実行する。また、ＡＳＩＣ５２は、印刷データＰＤの処理など記録系のデータ処理などを行う。もちろん、各タスクを含むプログラムは不揮発性メモリー５５に記憶されてもよい。
【００６０】
本実施形態では、ＲＡＭ５４にはＤＲＡＭ（Dynamic Random Access Memory）が用いられている。ＤＲＡＭとしては、SDRAM（Synchronous DRAM）、DDR SDRAM（Double-Data-Rate SDRAM）、DDR2 SDRAM、DDR3 SDRAMなどが用いられているが、その他、EDO DRAM（Extended Data Out DRAM）、バーストEDO DRAMなどを用いることもできる。もちろん、ＲＡＭ５４には、ＳＲＡＭ（Static Random Access Memory）を用いてもよい。
【００６１】
また、本実施形態では、不揮発性メモリー５５として、例えばＦｅＲＡＭ（強誘電体メモリー）が用いられているが、ＭＲＡＭ（Magnetoresistive ＲＡＭ）、ＰＲＡＭ（Phase change ＲＡＭ）、ＲｅＲＡＭ（Resistive ＲＡＭ）でもよい。もちろん、書込み可能回数が比較的多ければ、ＥＥＰＲＯＭやフラッシュメモリーでもよい。
【００６２】
一方、メカコントローラー４３には、モーター駆動回路６０を介してメカニカル機構４４を構成する搬送モーター６１、第１キャリッジモーター（以下、「第１ＣＲモーター６２」ともいう）及び第２キャリッジモーター（以下、「第２ＣＲモーター６３」ともいう）がそれぞれ接続されている。また、メカコントローラー４３には、吸引装置３０及びメンテナンス装置３２がそれぞれ接続されている。なお、本実施形態では、記録ヘッド２９及びメカニカル機構４４により印刷手段の一例が構成される。このため、第１ＣＲモーター６２及び第２ＣＲモーター６３も、印刷手段の構成要素の一例を構成している。また、メカニカル機構４４のうち搬送モーター６１と各ローラー２１〜２４と軸２０，２５等により、印刷手段のうちの搬送手段の一例が構成される。
【００６３】
また、メカコントローラー４３には、入力系として、電源スイッチ６５、エンコーダー６６及び温度センサー６７がそれぞれ接続されている。電源スイッチ６５がオン操作されたときのオン信号及びオフ操作されたときのオフ信号はメカコントローラー４３を介してコントローラー４０へ送信される。コントローラー４０及びメカコントローラー４３には、無停電電源４８が接続されており、コントローラー４０は電源スイッチ６５のオン信号の入力に基づき無停電電源４８の電力供給を指示し、電源スイッチ６５のオフ信号の入力に基づき無停電電源４８に電力供給の停止を指示する。
【００６４】
また、メカコントローラー４３は、コントローラー４０から通信線ＳＬ１を通じて受信した各種コマンドに従って、各モーター６１〜６３、吸引装置３０及びメンテナンス装置３２を駆動制御する。エンコーダー６６は、搬送モーター６１を動力源とする搬送駆動系の回転軸の回転を検出するものであり、メカコントローラー４３は、エンコーダー６６の検出信号（エンコーダーパルス信号）を用いてシート１３の搬送量及び搬送位置を検出する。
【００６５】
また、温度センサー６７は、シート１３の温度を検出するためのものであり、メカコントローラー４３には温度センサー６７からシート温度に応じた温度検出信号が入力される。このシート温度はプリンター１１が動作するのに必要な調整値を求めるために使用される。
【００６６】
制御装置Ｃは、印刷時に、搬送モーター６１を駆動してシート１３の次の被印刷領域を支持部材１９上に配置すべくシート１３を搬送する搬送動作と、シート搬送後に次の被印刷領域を支持部材１９に吸着させる吸着動作と、記録ヘッド２９によるシート１３への印刷動作と、１回分（１頁分）の印刷終了後にシート１３の吸着を解除する吸着解除動作とを行う。このとき、印刷動作（記録動作）は、キャリッジ２７の主走査方向Ｘへの移動中に記録ヘッド２９からインク滴を噴射することにより行われる。この印刷動作は、第１ＣＲモーター６２の駆動によるキャリッジ２７の主走査方向Ｘへの移動（１パス動作）と、１パス終了毎に行われる第２ＣＲモーター６３の駆動によるキャリッジ２７の副走査方向への移動とを、所定回数繰り返すことにより行われる。
【００６７】
図４は、コントローラー４０内のコンピューターに係る部分の電気的構成を示すブロック図である。図４に示すように、ＣＰＵ５１、ＡＳＩＣ５２、ＲＯＭ５３、ＲＡＭ５４、及び不揮発性メモリー５５は、バス５６に接続されており、ＣＰＵ５１及びＡＳＩＣ５２はバス５６を介してＲＯＭ５３、ＲＡＭ５４及び不揮発性メモリー５５にアクセスすることが可能になっている。また、バス５６にはメモリーコントローラー５７が接続されており、このメモリーコントローラー５７にはバス５８を介して他のＲＡＭ５９が接続されている。このＲＡＭ５９は、主に印刷データの画像処理の際に、処理前、処理途中、処理後の各種データを格納するためのバッファーとして用いられる。ＡＳＩＣ５２はメモリーコントローラー５７を介してＲＡＭ５９にアクセスすることで、印刷データ、その処理途中の印刷画像データの読み出し、及び読み出したデータに画像処理を施した後のデータ（プレーンデータ、ヘッド制御データ等）の書き込みを行う。また、画像処理のうち一部はＣＰＵ５１が行い、ＣＰＵ５１もメモリーコントローラー５７を介してＲＡＭ５９にアクセスして印刷画像データ等の読み出し及び画像処理後のデータの書き込みを行う。また、ＡＳＩＣ５２とＲＡＭ５９間のデータ転送（ＤＭＡ転送）はメモリーコントローラー５７が行う。このメモリーコントローラー５７へのデータ転送処理の指示及びその転送条件などの設定は、ＣＰＵ５１がメモリーコントローラー５７にアクセスして行う。
【００６８】
ＣＰＵ５１とＡＳＩＣ５２により、印刷データに各種の画像処理が施されることにより、プレーンデータ、ヘッド制御データが順番に生成される。すなわち、ＣＰＵ５１により、印刷データの解凍処理、印刷画像データの画素をノズルに割り付けるマイクロウィーブ処理などが施されることによりプレーンデータは生成され、ＡＳＩＣ５２により、プレーンデータに縦横変換処理などの画像処理が施されることによりヘッド制御データが生成される。なお、本実施形態では、プレーンデータ及びヘッド制御データが、画像処理により生成される記録データに相当する。
【００６９】
ＲＡＭ５９に格納されたヘッド制御データは図２に示すＨＣＵ４５を介して各記録ヘッド２９へ転送される。記録ヘッド２９には不図示のヘッド駆動回路が内蔵され、ヘッド駆動回路がノズル毎に設けられた不図示の噴射駆動素子をヘッド制御データに基づいて駆動制御することにより記録ヘッド２９のノズルからインク滴が噴射される。なお、噴射駆動素子としては、電圧を振動に変換する圧電素子（ピエゾ素子）や静電駆動素子の他、インクを加熱して沸騰した際の気泡の力を利用してインク滴を噴射させるヒーター素子を用いることもできる。
【００７０】
図３は、コントローラー４０の機能構成を説明するブロック図である。図３に示すコントローラー４０内の各種機能構成部分は、ＣＰＵ５１がプログラムを実行することにより構築されている。
【００７１】
図３に示すように、コントローラー４０は、ＯＳ（Operating System）として、制御手段の一例であるリアルタイムＯＳ７１を備えている。そして、コントローラー４０内には、このリアルタイムＯＳ７１の管理下で選択的に起動される複数のタスク部８１〜９２等が備えられている。複数のタスク部には、図３に示すように、主制御部８１、通信部８２、画像処理部８３、コマンド解析部８４、印刷タスク部８５、メカ制御部８６、メカ通信部８７、ヘッド制御部８８、インク管理部８９、緊急タスク部９０（エマージェンシータスク部）、書込み手段及びコピー手段の一例である書込みタスク部９１、及び書戻し手段の一例である書戻しタスク部９２などがある。主制御部８１は、各タスク部８２〜９２を統括的に制御する。なお、本実施形態では、リアルタイムＯＳ７１、各タスク部８１〜９２、ＲＡＭ５４及び不揮発性メモリー５５により、データ記憶処理装置の一例が構成される。
【００７２】
リアルタイムＯＳ７１は、スケジューラー７２及び優先順位変更手段の一例としての優先順位変更部７３を備える。スケジューラー７２は、タスク管理部７４及びディスパッチ部７５を備えている。
【００７３】
スケジューラー７２は、タスク部８１〜９２のスケジュール管理を行う。すなわち、タスク部８１〜９２の起動要求を受け付けると、空きがあればそのタスク部を起動するが、既に他のタスク部が実行中（Run状態）であれば、そのタスク部をReady状態とする。そして、実行中のタスク部から処理を終了した旨あるいは待ちが発生した旨の通知ＳＣ（サービスコール）を受け付けると、そのときReady状態のタスク部が存在すればそのうち優先順位の一番高いタスク部を起動させることで実行タスク（起動タスク）を切り換えるようになっている。タスク管理部７４は、タスクの状態（Wait，Ready，Run等）を管理する。ディスパッチ部７５は、スケジューラー７２がタスク切り換えイベントとなる通知ＳＣ（サービスコール）を受け付けると、タスク管理部７４が管理するタスクの状態を参照してReady状態のタスク部のうち優先順位の一番高いタスク部に起動指示を通知してこれを起動させる。
【００７４】
タスク管理部７４は、図５に示す優先順位管理テーブル９７を有している。この優先順位管理テーブル９７には、タスクが優先順位の順番に配列されている。図５の例では、複数のタスクが上側から優先順位の高い順番に配列されており、上側に位置するタスクほど優先順位が高く設定されている。
【００７５】
優先順位変更部７３は、優先順位管理テーブル９７の優先順位の順番を並び替え、スケジューラー７２が起動させるべきタスクの優先順位を変更する機能を有する。電源オン時には、リアルタイムＯＳ７１は図５（ａ）に示す通常時の優先順位管理テーブル９７を設定する。優先順位変更部７３は、電源スイッチ６５のオフ操作によるプリンター１１の電源オフ時（通常電源オフ時）と、電源プラグ抜けや電源故障などによる電源遮断時（異常電源オフ時）に、優先順位管理テーブル９７を、図５（ａ）に示す通常時の優先順位の順番から、図５（ｂ）に示す電源オフ時の優先順位の順番に変更する。ここで、各タスクのうちＣＰＵ５１が一のタスクを実行することにより、図３に示す各タスク部８１〜９２のうち一のタスク部が起動される。図３に示す各タスク部８１〜９２は、ＣＰＵ５１の実行対象である、主制御タスク、通信タスク、コマンド解析タスク、画像処理タスク、印刷タスク、メカ制御タスク、メカ通信タスク、ヘッド制御タスク、インク管理タスク、緊急タスク、書込みタスク及び書戻しタスクとそれぞれ対応している。なお、無停電機能を備えない通常の電源を用いた構成の場合は、停電も異常電源オフの原因となる。
【００７６】
図５（ａ）に示す通常時の優先順位管理テーブル９７には、緊急タスク、書込みタスク、ヘッド制御タスク、画像処理タスク、…、書戻しタスクの順番に優先順位が設定されている。つまり、印刷系タスク部８１〜８９よりも書込みタスク部９１の優先順位が高く設定されるとともに、書戻しタスク部９２が印刷系タスク部８１〜８９よりも低い優先順位に設定されている。ここで、印刷系タスク部８１〜８９とは、印刷データＰＤに基づく印刷処理を行ううえで必要な処理を担うタスク部を指す。本実施形態では、印刷系タスク部には、通信系タスク部に属する通信部８２及びメカ通信部８７と、記録系タスク部に属する主制御部８１、画像処理部８３及びヘッド制御部８８と、メカ駆動系タスク部（コマンド処理系タスク部）に属するコマンド解析部８４、印刷タスク部８５及びメカ制御部８６とが含まれる。なお、通信系タスク部８２，８７は、記録系及びメカ駆動系の両方に属する通信部８２と、メカ駆動系のみに属するメカ通信部８７とに分かれる。また、本実施形態では、印刷系タスク部８１〜８９により、印刷制御手段の一例が構成される。
【００７７】
本実施形態では、このように通常時には、書込みタスク部９１は緊急タスク部９０を除くタスクの中で一番高い優先順位に設定されており、書戻しタスク部９２は一番低い優先順位に設定されている。よって、書込みタスク部９１は印刷系タスク部８１〜８９よりも高い優先順位に設定され、書戻しタスク部９２は印刷系タスク部８１〜８９よりも低い一優先順位に設定されている。
【００７８】
また、図５（ｂ）に示す電源オフ時の優先順位管理テーブル９７には、緊急タスク、書込みタスク、書戻しタスク、ヘッド制御タスク、画像処理タスク、…の順番に優先順位が設定されている。つまり、書込みタスク部９１と書戻しタスク部９２との優先順位の関係を通常時と同じ関係に保持したまま、緊急タスク部９０以外のタスクの中で書込みタスク部９１と書戻しタスク部９２とをそれぞれ第１位と第２位の優先順位に設定されるようになっている。このように電源オフ時には、書込みタスク部９１と書戻しタスク部９２は、書込みタスク部９１の方が書戻しタスク部９２よりも高い優先順位になる関係を保持したまま、共に印刷系タスク部８１〜８９よりも高い優先順位に設定される。換言すれば、電源オフ時には、書戻しタスク部９２は、書込みタスク部９１との優先順位の関係を保持したまま、印刷系タスク部８１〜８９よりも低い優先順位から、印刷系タスク部８１〜８９よりも高い優先順位へ変更される。
【００７９】
図３に戻って、各タスク部８２〜９２の機能について説明する。
通信部８２は、シリアル通信ポートＵ２を制御する通信ドライバーソフトウェアを含み、シリアル通信ポートＵ２を介してホスト装置１２０との間で行われるシリアル通信を制御する。通信部８２が受信した印刷データＰＤは、画像バッファー５９Ａに格納される。この画像バッファー５９ＡはＲＡＭ５９の少なくとも一部の記憶領域により構成される。画像バッファー５９Ａは、詳しくは、受信バッファーと中間バッファー（プレーンバッファ）と印刷バッファー（イメージバッファー）とを含み、印刷データＰＤはまず受信バッファーに格納される。
【００８０】
画像処理部８３は、画像バッファー５９Ａから印刷データＰＤを読み出し、印刷データＰＤをまず解凍する。ここで、印刷データＰＤは印刷画像データと印刷言語記述コマンドとを含み、画像処理部８３は、解凍後の印刷画像データを画像バッファー５９Ａ（詳しくはプレーンバッファー）に一時格納するとともに、印刷言語記述コマンドをコマンド解析部８４に送る。
【００８１】
コマンド解析部８４は、解凍後の印刷データＰＤ中の印刷言語記述コマンドを解析して制御用のコマンドを取得し、その取得したコマンドを印刷タスク部８５へ送る。
画像処理部８３は、印刷データＰＤの解凍後の処理として、画像バッファー５９Ａから読み出した印刷画像データ（プレーンデータ）にマイクロウィーブ処理（ノズル割付処理）などの画像処理を順次施し、記録ヘッド２９の制御に用いられるヘッド制御データを生成して画像バッファー５９Ａ（詳しくはイメージバッファー）に格納する。なお、マイクロウィーブ処理とは、記録ヘッド２９のノズル形成面において副走査方向に隣接するノズルにより記録される主走査ライン（ドットライン）が隣接しないように印刷画像データ（プレーンデータ）の各ドットを各ノズルに割り付ける特定の割付処理を指す。なお、本実施形態では、縦横変換処理などの一部の画像処理は、ＡＳＩＣ５２内の縦横変換回路などの画像処理用回路（図示省略）により行われる。この縦横変換処理の際には、ＡＳＩＣ５２はＲＡＭ５９との間でメモリーコントローラー５７（図４参照）を介してデータ転送を行う。このメモリーコントローラー５７に対する転送開始指示や転送条件設定処理は、ＣＰＵ５１が行う。このため、本実施形態では、ＣＰＵ５１がデータ転送処理及び転送条件設定処理などを行うソフトウェア部分によって、主制御部８１の一部が構成されている。この点において、主制御部８１は、記録ヘッド２９の記録動作に用いられる噴射系データ生成のための画像処理を含む記録系処理を行う記録系タスク部８１〜８３，８８に属する。本実施形態では、記録系タスク部８１〜８３，８８により、記録系処理手段の一例が構成される。
【００８２】
ヘッド制御部８８は、画像バッファー５９Ａからヘッド制御データを読み出し、このヘッド制御データを記録ヘッド２９毎に分割して各ＨＣＵ４５へ割り振りつつ転送する。さらに、ＨＣＵ４５は受け付けたヘッド制御データを、対応する各記録ヘッド２９へ逐次送信する。記録ヘッド２９内の不図示のヘッド駆動回路は、ヘッド制御データに基づきノズル毎の噴射駆動素子を駆動制御することで、ノズルからインク滴を噴射させる。このとき、ヘッド駆動回路は、リニアエンコーダー５０のエンコーダーパルス信号を基に生成された噴射タイミング信号を入力し、この噴射タイミング信号に基づく噴射タイミング毎に噴射駆動素子を駆動させることにより、シート１３上に主走査方向Ｘに所定の印刷解像度でインク滴によるドットを形成する。
【００８３】
図３に示す印刷タスク部８５は、コマンド解析部８４から受け付けたコマンドを、メカコントローラー４３へ指示できる形態のコマンドに処理するコマンド処理を行い、処理後のコマンドをメカ制御部８６へ送る。
【００８４】
メカ制御部８６は、受け付けたコマンドを実行順に管理してジョブを制御するジョブ制御部９３と、ジョブ制御部９３から実行順に受け付けたコマンドの出力先及び出力タイミングを制御して、ヘッド駆動系・搬送系・キャリッジ駆動系等の各種デバイスを制御するデバイス制御部９４とを備えている。ジョブ制御部９３は、印刷ジョブで指示された印刷動作を行う過程でヘッド駆動系、搬送系、キャリッジ駆動系のシーケンス動作の完了通知コマンドをデバイス制御部９４を介して受け付けるため、ヘッド駆動系、搬送系、キャリッジ駆動系の駆動タイミングの把握が可能である。このため、ジョブ制御部９３は、印刷動作の切れ目となるタイミングを把握することが可能である。ここで、印刷動作の切れ目とは、１ページ分の印刷が終わった改ページのタイミング、あるいはキャリッジ２７が主走査方向Ｘに一回移動して１行分の印刷（１パス）を終了したタイミングなどを指す。
【００８５】
デバイス制御部９４は、メカ通信部８７、ヘッド制御部８８、インク管理部８９及び緊急タスク部９０などと接続され、これら各部宛毎のコマンドを出力したり、各部からの通知を受け付けたりして、これらのデバイスを制御等する一種のデバイスマネージャー機能を有している。デバイス制御部９４は、例えばヘッド制御部８８の処理の進捗を監視し、次パスの印刷に使用するヘッド制御データが準備できた段階で、メカシーケンス用のコマンドをメカ通信部８７へ送る。また、デバイス制御部９４は、メカコントローラー４３から通知された装置状態情報（ステータス情報）に基づいて、メカニカル機構４４における搬送系及びキャリッジ駆動系の状態を把握し、噴射開始に適切な状態になったタイミングでヘッド制御部８８に噴射開始の旨を指示する。
【００８６】
シーケンス制御用のコマンドには、例えば搬送コマンド、吸着コマンド、第１キャリッジ起動コマンド（キャリッジ主走査方向移動コマンド）、第２キャリッジ起動コマンド（キャリッジ副走査方向移動コマンド）、吸着解除コマンドなどがある。デバイス制御部９４は、これらのコマンドを、ヘッド制御部８８の進捗に合わせた適宜なタイミング、あるいはメカコントローラー４３側の進捗に合わせた適宜なタイミングで発行する。
【００８７】
メカ通信部８７は、メカ制御部８６からコマンドを受け付けると、そのコマンドをメカコントローラー４３へ送信する。また、メカ通信部８７は、メカコントローラー４３からコマンド受信成功の応答（ＡＣＫ信号）、コマンド受信失敗の応答であるリトライ要求（ＮＡＣＫ信号）、メカコントローラー４３が発行したコマンドや状態情報を受け付けると、上位のメカ制御部８６へ送る。
【００８８】
図３に示すインク管理部８９は、各インクカートリッジＩＣ１〜ＩＣ８のインク関連情報を管理する。インク管理部８９は演算部９５を備えている。演算部９５は、記録ヘッド２９及びメンテナンス装置３２で消費されたインク消費量及び各インクカートリッジＩＣ１〜ＩＣ８のインク残量を演算する。詳しくは、演算部９５は、各記録ヘッド２９が消費した８色分のインク消費量を演算する。ここで、ヘッド制御部８８は、ヘッド制御データに基づき記録ヘッド２９のインク滴噴射回数に相当するドット数を色別に計数するドットカウンター（図示せず）を内蔵している。演算部９５は、ヘッド制御部８８から各記録ヘッド２９の色別のドット数を取得し、その取得したドット数を色別に合計し、さらにその合計した色別のドット数を基に全記録ヘッド２９が消費したインク色別のインク消費量を演算する。また、インク管理部８９は、メンテナンス装置３２が記録ヘッド２９に施したクリーニングの種類（強度・時間等）に応じたインク消費量を取得する。
【００８９】
そして、インク管理部８９は、１回の印刷が終わったとき、インクカートリッジ交換が行われたとき、クリーニング終了時、電源スイッチ６５がオフ操作された際の電源遮断時などの所定時期に、全ての記録ヘッド２９で消費された８色分のインク消費量を色別（インクカートリッジ別）に算出する。さらに演算部９５は、この８色分の各インク消費量を、この８色の前回のインク残量からそれぞれ減算することで、現在の８色のインク残量を算出する。本実施形態では、インク管理部８９は、インク残量情報とこれ以外のインクに係る情報などとを含むインク関連情報（データの一部）を取得する。
【００９０】
さらにインク管理部８９は、インクカートリッジＩＣの状態を監視し、インク関連のエラー検出も行う。インク管理部８９は、例えば演算部９５が算出したインク残量がインクエンド閾値未満になったか否かを判定し、インク残量がその閾値未満である場合にインクエンドと判定する。例えばインクエンドになってから、一定の許容印刷時間又は一定の許容インク量が消費されるまでの期間を過ぎると、強制的に印刷動作を停止させるためのエラーが、メカ制御部８６を介して緊急タスク部９０に通知される。また、インクカートリッジＩＣの外れや、色違いのインクカートリッジＩＣの装着を検出したときにも、メカ制御部８６を介して緊急タスク部９０にエラーが通知される。このエラー通知には、エラー内容を把握できる識別子（例えばエラーコマンド番号）やパラメーター値が付与される。このようにインク管理部８９は、インク関連のエラー検出情報もインク関連情報の一部として取得する。
【００９１】
緊急タスク部９０は、インク管理部８９からエラー通知を受け付けると、その識別子やパラメーター値を基にそのエラーの内容を判断し、その判断したエラー内容に応じた種類のエラーコマンドを発行する。エラーコマンドはメカ制御部８６を介して適切な送信先へ送られる。例えばインクエンド通知用のエラーコマンドは、メカコントローラー４３及びホスト制御部１２５に送られ、メカニカル機構４４の動作の非常停止や、ホスト装置１２０のモニター１２３へのインクエンドの旨を報知する表示が行われる。また、緊急タスク部９０は、電源オフ機能及び電源遮断検出機能を備えている。緊急タスク部９０は、電源スイッチ６５がオフ操作された際のオフ信号を入力すると、電源オフ機能により、前述の優先順位変更要求をリアルタイムＯＳ７１へ出力し、その後、データバックアップ処理終了の旨の書戻し完了通知を受け付けると、プリンター１１の終了処理を行い、終了処理の後に電源を遮断させる。また、緊急タスク部９０は、電源遮断検出機能により、電源プラグ抜けや電源故障などの不意な電源遮断を検出したときにも、同様の優先順位変更要求をリアルタイムＯＳ７１へ出力する。なお、電源オフ時の書戻し完了通知は、書込みタスク部９１と書戻しタスク部９２によるデータバックアップ処理完了の旨を通知するものである。
【００９２】
書込みタスク部９１は、電源スイッチ６５がオン操作された際のプリンター１１の起動時に、ＣＰＵ５１とバス５６を介して接続された不揮発性メモリー５５からデータＤ（印刷関連情報を含む）を読み込み、その読み込んだデータＤをＲＡＭ５４に書き込む書込み処理を行う。なお、データＤには、印刷関連情報以外に、主制御部８１が印刷タスク部８５に指示し、印刷タスク部８５が記録ヘッド２９及びメカニカル機構４４を駆動させる調整処理を行わせた際に、調整処理の結果として取得された調整値データ（補正値データ）などが含まれる。調整処理としては、キャリッジ２７の往動時と復動時における記録ヘッド２９の噴射タイミングを、プリンター１１の個体差や、シート１３の厚み（媒体厚）に応じて調整する噴射タイミング調整処理などを挙げることができる。この噴射タイミング調整処理では、例えばテストパターンを印刷し、そのテストパターンの中からユーザーが最適と判断した番号又は数値を入力する方法、テストパターンをスキャナーに読み取らせて取得した画像データを画像解析してその画像解析結果から最適な調整値をプリンター１１が求める方法などが挙げられる。この場合、主制御部８１は、第１記憶部１３１のデータＤ中の噴射タイミング用の調整値（補正値）を更新する。この種の調整値（補正値）は、ユーザーが調整処理の実施を選択したときに限り更新されるものであり、通常、過去に一度設定されればその後ほとんど更新されることのない固定値に近い情報である。よって、この種の調整値は、プリンター１１の電源オン時に一度読み出されて設定されれば、その後、ほとんど読み出しも書き替えも行われることがない。本実施形態では、印刷関連情報には、インク残量、インク消費量及びインクカートリッジ使用期限残り時間などのインク関連情報と、印刷ページ数、課金情報、メンテナンス情報（メンテナンス項目毎の実施回数）、印刷実施時刻情報などが含まれている。
【００９３】
また、書戻しタスク部９２は、ＲＡＭ５４に記憶されているデータＤを読み出し、その読み出したデータＤを不揮発性メモリー５５に書き戻す書戻し処理を行う。
図３に示すように、ＲＡＭ５４は、プログラムデータ記憶部１３０と、第１記憶部１３１（ミラー記憶領域部）と、第２記憶部１３２（コピー記憶領域部）とを有する。プログラムデータ記憶部１３０は、ＲＯＭ５３（又は不揮発性メモリー５５）から読み出されたプログラムデータや各種の設定値の書込み先となる記憶領域である。
【００９４】
第１記憶部１３１（ミラー記憶領域部）は、不揮発性メモリー５５から読み出されたデータＤの書込み先となる記憶領域である。第１記憶部１３１は、印刷系タスク部８１〜８９、緊急タスク部９０がアクセスしてデータの読出し及び書込みが可能な記憶領域である。電源オン時に不揮発性メモリー５５から第１記憶部１３１に書き込まれたデータＤは、プリンター１１の稼働中（電源オン中）において各タスク部８１〜９０からの書込みアクセスにより逐次更新される。例えばインク管理部８９が第１記憶部１３１に書込みアクセスし、インク残量やインクカートリッジ使用期限残り時間などの印刷関連情報を、第１記憶部１３１に書き込むことにより、データＤのうちインク残量情報などの一部の情報が更新される。もちろん、他の印刷系タスク部の書込みアクセスによっても、第１記憶部１３１のデータＤは更新される。なお、各タスク部毎のデータ更新内容の詳細については後述する。
【００９５】
第２記憶部１３２（コピー記憶領域部）は、第１記憶部１３１から読み出されたデータＤのコピー先となる記憶領域である。この第２記憶部１３２は、書込みタスク部９１による書込みアクセスと書戻しタスク部９２による読み出しアクセスは許可されているものの、各タスク部８１〜９０の第２記憶部１３２への書込みアクセスが禁止されている。但し、各タスク部８１〜９０の第２記憶部１３２への読出しアクセスは許可しても構わない。
【００９６】
書戻しタスク部９２は、各タスク部８１〜９２の中で一番優先順位が低いので（図５（ａ）参照）、印刷動作やメンテナンス動作などが行われていないプリンター１１の待機中に起動されることになる。そして、プリンター１１が待機状態にあるときに起動された書戻しタスク部９２は、第２記憶部１３２に記憶されたデータＤを不揮発性メモリー５５へ書き戻す処理（書戻し処理）を行う。書戻しタスク部９２は、書戻し処理を完了すると、書込みタスク部９１に対して書戻し完了通知を行うようになっている。
【００９７】
書込みタスク部９１は、書戻しタスク部９２から書戻し完了通知を受け付けると、リアルタイムＯＳ７１に起動要求を出す。書込みタスク部９１は、緊急タスク部９０以外の各タスク部８１〜８９，９１，９２の中で一番優先順位が高いので、書戻しタスク部９２による書戻し処理の完了後直ぐに起動される。書込みタスク部９１は、書戻し完了通知を受け付けて起動されたときは、第１記憶部１３１のデータＤ（更新データ）を第２記憶部１３２に上書きすることでコピーする。もちろん、前回コピー時と今回コピー時との間に、第１記憶部１３１のデータＤの更新が行われていないときなどは、コピーしても第２記憶部１３２のデータＤが変らない場合もある。
【００９８】
また、電源オフ操作時、電源プラグ抜けや電源故障などの電源オフ時（電源遮断時）は、緊急タスク部９０が起動され、この緊急タスク部９０が優先順位変更部７３に優先順位変更処理を要求する。優先順位変更部７３は、優先順位管理テーブル９７を、図５（ｂ）に示す優先順、すなわち、書戻しタスク部９２を印刷系タスク部８１〜８９の優先順位より高い順位（本例では第３位の優先順位）に変更する優先順位変更処理を行う。このため、電源遮断時は、書戻しタスク部９２が直ぐ起動され、そのときの第２記憶部１３２の最新のデータＤが不揮発性メモリー５５へ書戻しされるようになっている。なお、コピー処理中の電源遮断時は、より優先順位の高い書込みタスク部９１が起動されて、その途中のコピー処理を終えてから、書戻しタスク部９２が起動される。
【００９９】
ここで、不揮発性メモリー５５をＦｅＲＡＭとしている本例では、不揮発性メモリー５５に保存できるデータ記憶容量が、例えばフラッシュメモリーに比べ比較的小さい。本実施形態では、これまで不揮発性メモリー（例えばフラッシュメモリー）に保存していたデータを、プリンター稼働中に全く更新されないか殆ど更新されないデータ（不変データ）と、印刷の実施や時間経過などに伴って更新されるデータ（可変データ）とに大きく分け、不変データのかなりの部分についてはホスト装置１２０のホスト記憶部１２０Ｍに保存することにしている。このため、不揮発性メモリー５５に保存しておくべきデータＤの容量が比較的小さくなり、不揮発性メモリー５５としてＦｅＲＡＭを使用することが可能になった。フラッシュメモリーは、書込み可能回数がＦｅＲＡＭに比べ非常に少なく、書戻し処理を電源オフ時などに制限する必要があったが、本実施形態では、不揮発性メモリー５５としてＦｅＲＡＭを使用するため、電源オフ時以外のプリンター１１の稼働中においても不揮発性メモリー５５へのデータＤの書戻しを行うことができる。なお、電源オフ時には、書戻しタスク部９１は、ＲＡＭ５４の第２記憶部１３２から読み出した最新のデータＤを記憶素子４７にも書き戻すようになっている。
【０１００】
図６は、不揮発性メモリー５５の構成と、書込み処理、コピー処理、書戻し処理とを説明するブロック図である。図６に示すように、本実施形態の不揮発性メモリー５５には、更新フラグＦと、第１領域１４０Ａと、第２領域１４０Ｂとを備えている。第１領域１４０Ａには、計数手段の一例としての第１カウンター１４１が設けられ、第２領域１４０Ｂには、計数手段の一例としての第２カウンター１４２が設けられている。また、第１領域１４０Ａには、データＤを記憶するための第１記憶領域１４３が設けられ、第２領域１４０Ｂには、データＤを記憶するための第２記憶領域１４４が設けられている。各領域１４０Ａ，１４０Ｂには、先頭側の領域にカウンター１４１，１４２が配置され、カウンター１４１，１４２よりも後側の領域に各記憶領域１４３，１４４が配置されている。
【０１０１】
本実施形態では、書戻しタスク部９２による第２記憶部１３２のデータＤの書戻しは、第１記憶領域１４３と第２記憶領域１４４との間で交互に切り換えられるようになっている。更新フラグＦには、２つの記憶領域１４３，１４４のうち書戻し先の記憶領域を選択するために設けられている。更新フラグＦが「０」であれば、第１記憶領域１４３が書戻し先として選択され、更新フラグＦが「１」であれば、第２記憶領域１４４が書戻し先として選択される。この更新フラグＦは、データＤの書戻し処理が完了する度にそのフラグ値が切り換えられるようになっている。なお、本実施形態では、第１記憶領域１４３と第２記憶領域１４４とにより、不揮発性メモリーに設けられた複数の記憶部の一例が構成されている。すなわち、本実施形態では、複数の記憶部が２つの例となる。
【０１０２】
電源オン時には、ＲＯＭ５３のプログラムデータ等がＲＡＭ５４のプログラムデータ記憶部１３０に書き込まれ、ＣＰＵ５１がそのうちブートプログラムを実行することによりリアルタイムＯＳ７１が起動される。このリアルタイムＯＳ７１が起動された最初に、書込みタスク部９１が起動される。図６に示すように、電源オン時に書込みタスク部９１により不揮発性メモリー５５の記憶領域１４３又は１４４からＲＡＭ５４の第１記憶部１３１へのデータＤの書込み処理が行われる（図６中の（１））（書込み段階）。すなわち、書込みタスク部９１は、電源オン時に、前回の電源オフ時（電源遮断時）に不揮発性メモリー５５に保存されたデータＤを、その不揮発性メモリー５５から読み出し、その読み出したデータＤをＲＡＭ５４の第１記憶部１３１に書き込む。
【０１０３】
書込みタスク部９１は、この電源オン時の書込み処理のときに限り、書込み処理に続けてコピー処理も行い、第１記憶部１３１のデータＤを第２記憶部１３２にコピーする（図６中の（２））（コピー段階）。
【０１０４】
その後、プリンター１１が待機状態になると、各タスク部８１〜９２の中で一番優先順位の低い書戻しタスク部９２が起動される。そして、書戻しタスク部９２は、第２記憶部１３２のデータＤを不揮発性メモリー５５に書き戻す（図６中の（３））（書戻し段階）。このとき、書戻しタスク部９２は、更新フラグＦのフラグ値を基に、第１記憶領域１４３と第２記憶領域１４４のうち書戻し先とすべき一つの記憶領域を選択し、その選択した記憶領域へ第２記憶部１３２のデータＤを書き戻す。この書戻し処理の開始に先立ち、２つのカウンター１４１，１４２のうち書戻し先の記憶領域に対応する一つのカウンターの計数値ＣＴが書戻し開始値Ａに変更される。書戻しタスク部９２は、データＤの書戻し中は、Ｋバイトのデータを書き戻す度に、書戻し先の記憶領域に対応するカウンターの計数処理を行う。本実施形態では、書戻しタスク部９２は、Ｋバイトのデータを書き戻す度にカウンターをインクリメントする。
【０１０５】
書戻しタスク部９２が、データＤを全て書戻し、１回の書戻し処理を完了すると、書戻し完了通知を書込みタスク部９１へ送る。この書戻し完了通知の送信時は、書戻し先の記憶領域に対応するカウンターの計数値ＣＴが書戻し完了値Ｂ（例えば最大値）となっている。書込みタスク部９１は、書戻し完了通知を受け付けると起動し、第１記憶部１３１から第２記憶部１３２へデータＤをコピーするコピー処理を行う（図６中の（２））。書込みタスク部９１は、印刷系タスク部より優先順位の高いタスクであるため書戻し完了通知を受け付ければ、エラー発生時や電源遮断時などの緊急時を除く大抵の場合に、直ぐ起動される。こうして書戻し完了の度に書戻しタスク部９１から送られてくる書戻し完了通知を受け付ける度に書込みタスク部９１は起動し、前回コピー時と今回コピー時の間の期間に更新された第１記憶部１３１のデータＤを、第２記憶部１３２へコピーする（図６中の（２））。そして、プリンター１１が待機状態になる度に、書戻しタスク部９２が起動し、そのコピーされた第２記憶部１３２のデータＤを不揮発性メモリー５５に書戻す（図６中の（３））。
【０１０６】
図７は、不揮発性メモリー５５における第１領域１４０Ａ及び第２領域１４０Ｂの構成を示す。但し、第１領域１４０Ａ及び２領域１４０Ｂは同じ構成であるので、図７では一方の第１領域１４０Ａの構成を示している。図７に示すように、第１領域１４０Ａ（又は第２領域１４０Ｂ）は、カウンター１４１（１４２）として使用されるカウンター領域１４１Ａ（１４２Ａ）と、データＤ（バックアップデータ）を記憶させるためのデータ記憶領域である第１記憶領域１４３（又は第２記憶領域１４４）とを備えている。カウンター領域１４１Ａ（１４２Ａ）は、印刷系タスク部８１〜８９及び緊急タスク部９０による書込み禁止領域となっているが、書込みタスク部９１及び書戻しタスク部９２による書込みアクセスは許可されている。そのため、書込みタスク部９１及び書戻しタスク部９２によるカウンター１４１（１４２）の計数値を変更する処理（リセット、セット、計数処理など）が可能になっている。
【０１０７】
カウンター領域１４１Ａ（１４２Ａ）には、一例として１バイト確保されており、８ビットのカウンター１４１（１４２）が構成されている。本実施形態では、データＤのデータサイズ（つまりデータＤの記憶領域容量）を２５５分割した値であるＫバイト（Ｋ＝データＤのデータ容量／２５５）を、カウンター１４１（１４２）を「１」だけ計数する計数処理の単位としている。本例では、書戻し開始値Ａを最小値「00000000」（２進数）としており、書込みタスク部９１によるコピー処理完了後に開始したデータＤの書戻しを全て完了すると、カウンター１４１（１４２）の計数値が最大値「11111111」（２進数）になるようになっている。このように本実施形態では、カウンター１４１（１４２）のビット数をＧとすると、書戻しすべきデータＤの容量ＤＢ（バイト）を、「２のＧ乗−１」で除した値Ｋ（バイト）を、カウンター１４１（１４２）の計数処理を行う単位としている。なお、容量ＤＢはＫの倍数になるように設定している。
【０１０８】
以下、プリンター１１において不揮発性メモリー５５とＲＡＭ５４との間におけるデータＤの書込み、コピー、書戻しによって行われるデータ記憶処理を、図５〜図１１等を参照しつつ説明する。図８及び図９は、書込みタスク部９１、書戻しタスク部９２及び印刷系タスク部８１〜８９の処理の流れを示すシーケンス図である。ここで、図８は通常時のデータ記憶処理の流れを示すシーケンス図、図９は電源遮断時のデータ記憶処理の流れを示すシーケンス図である。まず電源オンから電源オフ前までの通常時のデータ記憶処理について図５（ａ）、図６〜図８及び図１０等を用いて説明する。
【０１０９】
図８に示すように、電源オン時には、ＲＯＭ５３のプログラムデータ等がＲＡＭ５４のプログラムデータ記憶部１３０に書き込まれ、ＣＰＵ５１がそのうちブートプログラム等を実行することによりリアルタイムＯＳ７１が起動される。このとき、リアルタイムＯＳ７１は、図５（ａ）に示す優先順位管理テーブル９７を設定する。通常時に、タスク管理部７４が参照する優先順位管理テーブル９７は、書込みタスクが印刷系タスクよりも高い優先順位であり、かつ書戻しタスクが印刷系タスクよりも低い優先順位に設定されている。このリアルタイムＯＳ７１の起動後、最初に書込みタスク部９１が起動され、書込みタスク部９１は、不揮発性メモリー５５の２つの記憶領域１４３，１４４のうち直近に更新された一方の記憶領域のデータＤを、ＲＡＭ５４の第１記憶部１３１に書き込む書込み処理を行う（図６、図８中の（１））（書込み段階）。
【０１１０】
書込みタスク部９１は、この電源オン時に限り、書込み処理に続けてコピー処理も行う（図６中の（２）、図８中の最初の（２））（コピー段階）。すなわち、書込みタスク部９１は、第１記憶部１３１のデータＤを第２記憶部１３２にコピーする。この電源オン時には、プリンター１１はメカニカル機構４４の初期化処理を行う。この初期化処理の前又は後にプリンター１１が待機状態になると、各タスク部８１〜９２の中で一番優先順位の低い書戻しタスク部９２が起動される。そして、書戻しタスク部９２は、第２記憶部１３２のデータＤを不揮発性メモリー５５に書き戻す（図６、図８中の（３））（書戻し段階）。書戻しタスク部９２は、データＤを全て書戻すと、書戻し完了通知を書込みタスク部９１へ送る。書込みタスク部９１は、書戻し完了通知を受け付けると起動し、第１記憶部１３１のデータＤを第２記憶部１３２へコピーするコピー処理を行う（図６中の（２）、図８中の２回目以降の（２））。
【０１１１】
こうしてプリンター１１が待機状態にある間は、書込みタスク部９１による第１記憶部１３１のデータＤの第２記憶部１３２へのコピー（図８中の（２））と、書戻しタスク部９２による第２記憶部１３２のデータＤの不揮発性メモリー５５への書戻し（図８中の（３））とが繰り返し行われる。
【０１１２】
例えばプリンター１１の電源オン後、ユーザーが画像生成装置１１０で印刷実行の指示操作を行うと、ホスト装置１２０からプリンター１１へ印刷データＰＤが送られてくる。プリンター１１へ送られてきた印刷データＰＤは、コントローラー４０内のリアルタイムＯＳ７１によって起動された通信部８２が受信する。以下、リアルタイムＯＳ７１は、印刷系タスク部８１〜８９のうち、記録処理系のデータの流れ、コマンド処理系のコマンドの流れに従って起動させるべき一つのタスク部を選択的に切り替えることにより、印刷系タスク部８１〜８９に、記録系処理及びコマンド処理（搬送系・キャリッジ駆動系処理）を含む印刷系処理をマルチタスク処理で実施させる。
【０１１３】
記録系処理では、通信部８２が受信した印刷データＰＤの画像処理部８３による解凍処理、印刷画像データ（プレーンデータ）からヘッド制御データを生成する画像処理、ヘッド制御データをヘッド制御部８８がＨＣＵ４５を介して記録ヘッド２９へ転送する転送処理などが行われる。搬送系・ＣＲ駆動系のコマンド処理では、コマンド解析部８４による印刷言語記述コマンドの解析（コマンド解析）、印刷タスク部８５によるコマンド処理、メカ制御部８６によるコマンドのキュー管理及びメカシーケンスに従ったコマンドの出力タイミング制御、メカ通信部８７によるコマンドのメカコントローラー４３への送信が行われる。このように搬送系及びキャリッジ駆動系のコマンドに従ったメカニカル機構４４のメカシーケンス制御と、記録ヘッド２９のインク噴射制御とが、適切なタイミングで行われることで、プリンター１１は印刷データＰＤに基づく画像をシート１３に印刷する印刷動作を行う。
【０１１４】
この印刷動作では、キャリッジ起動コマンドに基づき第１ＣＲモーター６２が駆動されてキャリッジ２７が主走査方向Ｘへ移動し、その移動途中で記録ヘッド２９内のヘッド駆動回路がヘッド制御データに基づいて噴射駆動素子を駆動してノズルからインク滴を噴射させることにより１パス分の印刷が行われる。そして、キャリッジ２７が１パス分の移動を終える度に第２ＣＲモーター６３が駆動されてキャリッジ２７が副走査方向に移動し、これを複数パス繰り返すことで１頁分の印刷が行われる。１頁分の印刷を終えると、メカコントローラー４３はコントローラー４０からの吸着解除コマンドに基づいて吸引装置３０の吸引を開放した後、搬送コマンドに基づいて搬送モーター６１を駆動してシート１３を所定の搬送ピッチだけ搬送させる。また、印刷中の所定時期には、キャリッジ２７をフラッシング位置に移動させ、記録ヘッド２９のノズルからキャップ３３（廃液受容器）に向けて、印刷とは関係のないインク滴を噴射することで、ノズルの目詰まりを予防又は解消するフラッシング（空吐出）が行われる。また、前回のクリーニング実施時期からの経過時間が一定時間を経過したとき、又は電源オン時にその経過時間が一定時間を超えていたときには、メンテナンス装置３２を駆動して、記録ヘッド２９のノズルからインクを強制的に排出させるクリーニングが行われる。このクリーニングは、昇降装置３４の駆動によってキャップ３３を記録ヘッド２９のノズル形成面に当接させたキャッピング状態下で、不図示の吸引ポンプを駆動させてキャップ３３内に負圧を導入することにより行われる。なお、フラッシング動作やクリーニング動作も、その一部は、印刷系タスク部８１〜８９の一部が起動されることにより行われる。
【０１１５】
インク管理部８９は、印刷動作、フラッシング動作、クリーニング動作などのインクの消費を伴う所定動作が行われるときには、例えばその動作の途中（例えば動作の切れ目）又は動作の直後など予め決められた所定時期に、演算部９５にインク消費量及びインク残量の演算を行わせる。例えばインク残量は、今回算出したインク消費量を前回のインク残量から減算して求められる。インク管理部８９は、ＲＡＭ５４の第１記憶部１３１のデータＤのうち前回のインク消費量及びインク残量等のデータを、今回のインク消費量及びインク残量等のデータに書き替える。
【０１１６】
また、インク管理部８９は、電源オン時やインクカートリッジ交換時などの所定時期に、記憶素子４７にアクセスし、インクカートリッジＩＣの装着状態（装着外れ、装着間違い（色間違い）の有無など）、使用期限、インクエンド（インク切れ）などを検出する。例えば記憶素子４７にアクセスできなければ装着外れであると検出される。また、記憶素子４７には、インク色、使用期限、インク残量等のインクに関する各種情報が記憶されている。インク管理部８９は、記憶素子４７から読み出したインク色とそのときアクセスした装着位置に装着されるべきインクカートリッジのインク色とが対応していなければ、装着間違い（色間違い）であると検出する。また、インク管理部８９は、記憶素子４７から読み出した使用日限情報とリアルタイムクロック（図示せず）の時刻情報とを基にインクカートリッジ使用期限残り時間を演算する。インク管理部８９は、このインクカートリッジ使用期限残り時間が「０」未満の値であると、使用日限エラーであると検出する。さらにインク管理部８９は、記憶素子４７から読み出したインク残量が、予め決められたインクエンド情報の値以下になっていると、インク切れ（インクエンド）であると検出する。なお、記憶素子４７のインク残量は、初期には満充填（フル）のインク残量が設定され、少なくとも電源オフの度に第１記憶部１３１のインク残量等が書き込まれることで更新される。
【０１１７】
インク管理部８９は、インク関連情報（インク消費量、インク残量、インク切れ情報、使用期限残り時間、装着外れ、装着間違い、使用日限エラー情報など）を、ＲＡＭ５４の第１記憶部１３１の所定記憶領域にアクセスして更新する。
【０１１８】
また、ジョブ制御部９３は、ホスト装置１２０から指示された印刷ジョブに関するジョブ情報を取得する。ジョブ制御部９３は、メカコントローラー４３から取得した搬送系の稼働情報を基にジョブ毎の印刷長又は印刷枚数を求める。さらにジョブ制御部９３は、その印刷長又は印刷枚数を基に課金情報を算出する。そして、ジョブ制御部９３は、課金情報を含むこれらのジョブ情報を、第１記憶部１３１の所定記憶領域にアクセスして更新する。
【０１１９】
また、メカコントローラー４３には、搬送系のエンコーダー６６の出力パルス数を計数してシート１３の搬送量に相当する計数値を取得する不図示のカウンターが設けられ、印刷中におけるそのカウンターの計数値の変化量を基に、印刷されたシート１３の長さである印刷長又は印刷枚数の情報が取得される。また、メカコントローラー４３は、搬送系、キャリッジ駆動系及びクリーニング系などに関する種々のメカパラメーター情報を取得する。メカパラメーター情報には、例えば搬送状態（位置・速度等）、キャリッジ駆動状態（位置・速度等）、クリーニング状態などのステータス情報の他、搬送系、キャリッジ駆動系、クリーニング系の各種モーター等の駆動時間や駆動回転数などの稼働履歴情報が含まれる。この種のメカパラメーター情報はメカコントローラー４３からコントローラー４０へ定期的に送信される。このメカパラメーター情報はコントローラー４０内のデバイス制御部９４が受信する。また、デバイス制御部９４は、リアルタイムクロックの時刻情報を基に、プリンター１１の稼働時間を取得する。そして、デバイス制御部９４は、メカコントローラー４３から取得した情報にこの稼働時間等を加えたメカパラメーター情報を、ＲＡＭ５４の第１記憶部１３１にアクセスして書き替える。
【０１２０】
ヘッド制御部８８は、記録ヘッド２９のインク滴噴射回数（ドット数）をインク色別に計数するドットカウンターを備え、その計数値からインク色毎のインク滴噴射回数（ドット数）を含むヘッド情報を取得する。そして、ヘッド制御部８８は、取得したヘッド情報をＲＡＭ５４の第１記憶部１３１にアクセスして更新する。
【０１２１】
また、プリンター１１は、種々の調整値（補正値）を取得するための調整機能を備える。例えば、ある調整機能はその測定部を動作させて実測値を計測し、初期設定値と実測値との差分を基に、初期設定値を調整（補正）するための調整値（補正値）を取得する。この種の調整値には、主走査方向Ｘにおけるフラッシング開始位置・終了位置、キャップ位置、印刷時の噴射開始位置を決める基準位置、搬送基準位置、シート温度に応じたシート１３の伸びを考慮して搬送量を補正するための調整値（補正値）などがある。ここで、シート温度は、温度センサー６７により検出され、メカコントローラー４３からコントローラー４０へ送信される。印刷タスク部８５は、検出されたシート温度に応じた搬送調整値を演算する。
【０１２２】
また、他の調整機能としては、テストパターンを印刷し、そのテストパターンの中から最適な印刷結果であるとユーザーが判断して入力した１つのテストパターンに対応する番号を基に、その番号に対応する噴射タイミング調整値を取得する機能がある。この種の調整値には、一方向印刷時における記録ヘッド２９の主走査方向Ｘの噴射タイミングを調整するUni-ｄ調整値、双方向印刷におけるキャリッジ２７の往動時と復動時の噴射タイミングを調整するBi-d調整値がある。このUni-ｄ調整値又はBi-d調整値を用いて、シート厚（例えば紙厚）に応じた噴射タイミングを演算できるようになっている。この種の調整情報は、ユーザーの操作によりプリンター１１の調整機能が動作したとき、又はユーザーの操作で最適なテストパターンなど最適な指標に対応する番号等が入力されたときに更新される。この更新された調整情報は、印刷タスク部８５がＲＡＭ５４の第１記憶部１３１にアクセスすることで更新される。これらの調整情報データは、プリンター１１の出荷検査段階、プリンター１１をユーザーが初めて使用する際の最初の起動時、ユーザーが調整機構を動作させて行う調整作業時、故障修理のメンテナンス時などに設定され、一度設定されると、しばらくは更新されることのない種類のデータである。
【０１２３】
このようにデータＤには、プリンター１１の稼働中に比較的頻繁に更新されるインク関連情報、ジョブ情報、メカパラメーター情報及びヘッド情報等を含む稼働情報データＤ１と、プリンター１１の稼働中もほとんど更新されることのない（更新頻度の低い）調整情報を含む調整情報データＤ２（固定情報データ）とがある。本実施形態では、データＤには、先頭側に稼働情報データＤ１が配置され、その後側に続けて調整情報データＤ２が配置されている。このため、書戻し処理では最初に稼働情報データＤ１が書戻しされ、これに続けて調整情報データＤ２が書戻しされることになる。但し、調整情報の中には、コントローラー４０が定期的に調整機能を動作させて最適な調整情報を比較的頻繁に更新する種類のものもあり、この種の調整情報は、稼働情報データＤ１の領域に配置されている。
【０１２４】
緊急タスク部９０は、印刷動作上のエラーが発生すると、そのエラー内容の解析が可能な程度の情報を含むエラー情報を、ＲＡＭ５４の第１記憶部１３１に書き込む。本実施形態では、ホスト装置１２０はインターネットを介してユーザーサポート用のサーバー（図示せず）に接続されており、エラー情報はホスト装置１２０からサーバーに送信されるようになっている。このサーバーは、エラー情報を解析してエラーの原因をつきとめたり、プリンター１１をエラーから回復させる方法を探し出したりする処理を行う。なお、本例では、エラー情報は、調整情報データＤ２に含まれる領域に配置される。
【０１２５】
こうして印刷系タスク部８１〜８９が起動される印刷処理時には、適宜のタイミングで、第１記憶部１３１のデータＤが更新される（データ更新段階）。更新された第１記憶部１３１のデータＤは、起動された書込みタスク部９１により第２記憶部１３２にコピーされる。なお、本実施形態では、インク関連情報、ジョブ情報、メカパラメーター情報、ヘッド情報、調整情報及びエラー情報が、プリンター１１の動作によって更新される印刷関連情報に相当する。また、データＤの中には、プリンター１１の動作によって更新される訳ではないが、不揮発性メモリー５５（第１の記憶手段）に書き込まれる情報も存在する。
【０１２６】
本実施形態では、ホスト装置１２０のホスト制御部１２５は、定期的又は不定期にコントローラー４０へデータＤの送信を要求する。コントローラー４０はその要求に応答する形で、印刷動作やクリーニング動作等が行われていない空いた時期や電源オフ時の終了処理の際に、ＲＡＭ５４の第１記憶部１３１又は第２記憶部１３２のデータＤをホスト制御部１２５へ送信する。ホスト制御部１２５は、受信したデータＤをホスト記憶部１２０Ｍに保存する。よって、ホスト装置１２０のホスト記憶部１２０Ｍにも、書戻し頻度に比べ低い頻度ではあるものの定期又は不定期に更新されたデータＤが保存される。また、データＤの一部又は全部がホスト装置１２０からインターネットを経由してプリンターメーカーのサーバーに送られ、プリンター１１の稼働状況の解析などに用いられるようになっている。
【０１２７】
印刷処理や印刷動作が行われているときは、優先順位の一番低い書戻しタスク部９２が起動されることはない。このため、書込みタスク部９１が書戻し完了通知を受け付けることがないので、印刷処理中や印刷動作中は書込みタスク部９１によるデータＤのコピー処理は基本的に行われない。
【０１２８】
印刷動作もクリーニング動作も行われていない待機状態になると、書戻しタスク部９２が起動される。そして、書戻しタスク部９２は、第２記憶部１３２のデータＤを不揮発性メモリー５５へ書き戻す（図８中の（３））。このときのデータＤは、最後に書き戻しタスク部９２がコピーしたものなので、印刷動作前の旧いデータである。しかし、書込みタスク部９１から書戻し完了通知を受け付けると、書込みタスク部９１は、第１記憶部１３１の最新のデータＤを第２記憶部１３２へコピーする（図８中の（２））。このコピー処理後、再び起動された書戻しタスク部９２が第２記憶部１３２の最新のデータＤを不揮発性メモリー５５へ書き戻す。こうしてプリンター１１が待機状態になる度に、更新されたデータＤの書戻しが行われる。
【０１２９】
ここで、書込みタスク部９１は、印刷系タスク部８１〜８９よりも優先順位が高いので、コピー処理の途中に印刷系タスク部８１〜８９の割込みが入りコピー元データが書き替えられる事態は発生しない。また、第２記憶部１３２が、印刷系タスク部８１〜８９及び緊急タスク部９０による書込みアクセスが禁止されているので、書戻しタスク部９２による書戻し途中で書戻し元データが印刷系タスク部８１〜８９により書き替えられる事態が回避される。さらに、書込みタスク部９１の起動条件は書戻しタスク部９２がデータＤを書戻し終わったときの書戻し完了通知を受け付けたときであるので、書戻しタスク部９２による書戻し途中で、コピー処理が割り込んで書戻し元データを書き替えてしまう事態を回避できる。この結果、書戻しタスク部９２により、ＲＡＭ５４から不揮発性メモリー５５へ正しいデータＤを書き戻すことができる。なお、印刷系タスク部が印刷のための処理を行って、印刷関連情報を取得する段階が、印刷制御段階に相当する。
【０１３０】
次に書戻し処理について詳細に説明する。本実施形態では、書戻しタスク部９２は、第２記憶部１３２のデータＤの書戻し先を、不揮発性メモリー５５の第１記憶領域１４３と第２記憶領域１４４との間で交互に切換える。すなわち、書戻しタスク部９２は、更新フラグＦが「０」のときは、第１記憶領域１４３へのデータＤの書戻しを行い、この書戻しを完了すると、更新フラグＦを「０」から「１」へ切り換える。また、書戻しタスク部９２は、更新フラグＦが「１」のときは、第２記憶領域１４４へのデータＤの書戻しを行い、この書戻しを完了すると、更新フラグＦを「１」から「０」へ切り換える。このように第２記憶部１３２のデータは、第１記憶領域１４３と第２記憶領域１４４に交互に書き戻しされる。
【０１３１】
また、データＤの書戻し処理の過程では、二つのカウンター１４１，１４２のうち書戻し先の記憶領域と対応するカウンターの計数処理が行われる。この計数処理が行われる結果、そのカウンターの計数値ＣＴは書戻しされたデータ量に応じた値をとることになる。
【０１３２】
以下、書戻しタスク部９２が起動して行われる書戻し処理を、図１０に示すフローチャートに従って説明する。図１０は、書戻しタスクの内容をフローチャートで示す書戻し処理ルーチンである。コピー処理後、プリンター１１が待機状態のときに、書戻しタスク部９２は起動する。まず図１０におけるステップＳ１０において、更新フラグＦ＝０であるか否かを判定する。更新フラグＦ＝０であればステップＳ２０に進み、更新フラグＦ＝０でなければ（つまりＦ＝１であれば）ステップＳ３０に進む。
【０１３３】
ステップＳ２０では第１記憶領域１４３を書戻し先に選択する。このとき、書戻し処理の開始に先立ち、書戻し先の第１記憶領域１４３に対応する第１カウンター１４１の計数値ＣＴを書戻し開始値Ａに変更する。
【０１３４】
一方  ステップＳ３０では第２記憶領域１４４を書戻し先に選択する。このとき、書戻し処理の開始に先立ち、書戻し先の第２記憶領域１４４に対応する第２カウンター１４２の計数値ＣＴを書戻し開始値Ａに変更する。
【０１３５】
ステップＳ４０では、第２記憶部１３２のデータＤのうちＪバイト分のデータを不揮発性メモリー５５の書戻し先として選択した記憶領域に書き戻す。すなわち、更新フラグＦ＝０であって、書戻し先として第１記憶領域１４３を選択した場合（Ｓ２０）は、この第１記憶領域１４３にデータＤを書戻し、一方、更新フラグＦ＝１であって、書戻し先として第２記憶領域１４４を選択した場合（Ｓ３０）は、この第２記憶領域１４４にデータＤを書戻す。また、新たに第２記憶部１３２にコピーされたデータＤを書き戻す場合は、データＤの最初からＪバイトずつ順番に書戻しを行う。また、前回書戻しを中断した続きから同一のデータＤを書き戻す場合は、そのときの計数値ＣＴに対応する箇所からＪバイトずつ順番に書戻しを行う。ここで、Ｊバイトは書戻しの最小単位であり、本例では、カウンター１４１，１４２の計数処理を行う単位であるＫバイトの自然数ｎ分の１の値（Ｊ＝Ｋ／ｎ）である。なお、書戻し処理開始前に行うカウンターの書戻し開始値Ａへの変更（例えばリセット）は、コピー処理完了時に書込みタスク部９１が行ってもよい。
【０１３６】
次のステップＳ５０では、Ｋバイト分を書き戻したか否かを判断する。Ｋバイト分を書き戻していなければ次のＪバイト分のデータを不揮発性メモリー５５に書き戻す（Ｓ４０）。そして、Ｊバイト分ずつの書戻しをｎ回繰り返してＫ（＝Ｊ×ｎ）バイト分を書き戻すと（ステップＳ５０で肯定判定）、ステップＳ６０に進む。
【０１３７】
ステップＳ６０では、カウンターの計数処理を行う。すなわち、カウンター１４１，１４２のうち書戻し先の記憶領域に対応するカウンターの計数処理を行う。本例では、計数処理として、カウンターの計数値ＣＴを「１」だけインクリメントする。
【０１３８】
そして、ステップＳ７０において、カウンター１４１，１４２の計数値ＣＴが書戻し完了値Ｂに達したか否かを判断する。書戻し完了値Ｂに達していなければステップＳ４０に戻り、以下同様に、Ｓ４０〜Ｓ７０の各処理を、計数値ＣＴが書戻し完了値Ｂに達するまで（Ｓ７０で肯定判定）繰り返す。この結果、Ｋバイト分の書戻しを完了する度に、カウンターが計数処理でインクリメントされる。そして、データＤを全て不揮発性メモリー５５に書戻し終えると、カウンターの計数値ＣＴが書戻し完了値Ｂに達する（Ｓ７０で肯定判定）ので、ステップＳ８０に進む。
【０１３９】
ステップＳ８０では、更新フラグＦの切り換えを行う。そして、書戻し完了通知を書込みタスク部９１へ送信後、当該ルーチンを終了する。つまり、書戻しタスク部９２は休止する。なお、電源遮断時（電源オフ時）の処理として行った書戻し処理を終えた際は、書戻し完了通知は緊急タスク部９０へ送信される。また、書戻し処理中に、書戻しタスク部９２より優先順位の高い他のタスク部の割り込みがあれば、カウンターの計数値ＣＴが書戻し完了値Ｂに達していなくても、その時点で書戻しタスク部９２はレディ状態に移行し、書戻し処理が中断される。
【０１４０】
こうしてプリンター１１の稼働中は印刷系タスク部８１〜８９や緊急タスク部９０によりＲＡＭ５４の第１記憶部１３１のデータＤが更新される。そして、その更新されたデータＤは第１記憶部１３１から第２記憶部１３２へコピーされ、その後、待機状態のときなどの所定時期に不揮発性メモリー５５に書き戻される。この不揮発性メモリー５５への書戻しは、第１記憶領域１４３と第２記憶領域１４４との間で交互に切り換えられる。すなわち、書戻しタスク部９２は、更新フラグＦが「０」のときは、第１記憶領域１４３へのデータＤの書戻しを行い、この書戻しを完了すると、更新フラグＦを「０」から「１」へ切り換える。また、書戻しタスク部９２は、更新フラグＦが「１」のときは、第２記憶領域１４４へのデータＤの書戻しを行い、この書戻しを完了すると、更新フラグＦを「１」から「０」へ切り換える。さらに第１記憶領域１４３へのデータＤの書戻しを終えると、第１記憶領域１４３に対応する第１カウンター１４１の計数値ＣＴが書戻し完了値Ｂとなる。次に第２記憶領域１４４へのデータＤの書戻しを開始すると、その書戻し中はその書戻し先の第２記憶領域１４４と対応する第２カウンター１４２の計数値ＣＴが書戻したデータ量に応じた値となる。そして、第２記憶領域１４４への書戻しを終えると、第２記憶領域１４４に対応する第２カウンター１４２の計数値ＣＴが書戻し完了値Ｂとなる。次に第１記憶領域１４３へのデータＤの書戻しを開始すると、その書戻し中はその書戻し先の第１記憶領域１４３と対応する第１カウンター１４１の計数値ＣＴが書戻したデータ量に応じた値となる。そして、第１記憶領域１４３への書戻しを終えると、第１記憶領域１４３に対応する第１カウンター１４１の計数値ＣＴが書戻し完了値Ｂとなる。
【０１４１】
このため、第１記憶領域１４３と第２記憶領域１４４の両方が共にデータＤの書戻しが終わっているときは、それぞれに対応するカウンター１４１，１４２の各計数値ＣＴが共に書戻し完了値Ｂとなっている。また、第１記憶領域１４３と第２記憶領域１４４のうち一方のみデータＤの書戻しが終わっていて他方が書戻し途中のときには、カウンター１４１，１４２のうちその一方と対応するカウンターの計数値ＣＴが書戻し完了値Ｂとなっており、他方と対応するカウンターの計数値ＣＴが書戻し完了値Ｂ以外の例えば中間値となっている。
【０１４２】
次に電源遮断（電源オフ）時におけるデータ記憶処理について、図５及び図９等を参照しつつ説明する。なお、電源遮断（電源オフ）には、ユーザーが電源スイッチ６５をオフ操作したときの正常電源遮断（正常電源オフ）と、電源プラグ抜けや電源故障などの不意な電源遮断及びシステムダウン時の電源遮断などの異常電源遮断（異常電源オフ）とがある。電源遮断時のデータ記憶処理において、正常電源オフと異常電源オフとの違いは、図９に示す終了処理（図９中の（１５））の有無である。図９の例は、正常電源オフ時におけるデータ記憶処理を示すが、図９において終了処理を廃止したものが異常電源オフ時におけるデータ記憶処理になる。なお、本実施形態では、プリンター１１は二次電池を備えており、電源プラグ抜けや電源故障などの不意な電源遮断（異常電源オフ）発生時でも、二次電池が放電されるまでの例えば１０〜５００ミリ秒の範囲内の所定時間の間は二次電池から電力が供給されるようになっている。
【０１４３】
ユーザーが電源スイッチ６５を操作した際の正常電源オフ（正常電源遮断）は、オフ信号がコントローラー４０内に入力されることにより検出される。一方、電源プラグ抜けや電源故障などが原因で発生した異常電源オフ（異常電源遮断）は、コントローラー４０内の緊急タスク部９０の電源遮断検出機能により検出される。
【０１４４】
図９に示すように、正常又は異常の電源オフ（電源遮断）が検出されると、緊急タスク部９０が起動される。すなわち、リアルタイムＯＳ７１は、起動要求を受け付けているタスク部のうち一番優先順位の高い緊急タスク部９０を起動させる。例えば印刷動作中に電源が遮断される場合もあり得るが、印刷系タスク部８１〜８９より優先順位が高い緊急タスク部９０が起動される。起動された緊急タスク部９０は、まずリアルタイムＯＳ７１に優先順位変更要求を行う（図９中の（１１））。この優先順位変更要求はリアルタイムＯＳ７１内の優先順位変更部７３が受け付け、優先順位変更部７３は、タスク管理部７４によって参照される優先順位管理テーブル９７を、図５（ａ）に示す通常時のタスク優先順から図５（ｂ）に示す電源オフ時のタスク優先順に変更するタスク優先順位変更処理を行う（図９中の（１２））。優先順位変更部７３は、例えば優先順位管理テーブル９７のタスクの順番を並び替える処理を行う。もちろん、このタスク優先順位変更処理は、複数用意された優先順位管理テーブル９７のうち参照すべきテーブルを図５（ｂ）に示すものに切り替える処理としてもよい。
【０１４５】
このタスク優先順位変更処理の結果、書込みタスク部９１及び書戻しタスク部９２の優先順位の関係を保持したまま、両タスク部９１，９２の優先順位が、印刷系タスク部８１〜８９よりも高くなる。つまり、書戻しタスク部９２が、書込みタスク部９１よりも低く、かつ印刷系タスク部８１〜８９よりも高い優先順位に変更される。
【０１４６】
このため、電源遮断（電源オフ）時には、仮にそのとき印刷動作中であっても、書戻しタスク部９２が起動される。また、プリンター１１の待機中の電源遮断時は、書込みタスク部９１又は書戻しタスク部９２が起動されている。例えば印刷動作中の電源遮断時は、その印刷動作開始直前に書き戻されたデータＤが不揮発性メモリー５５に保存されている。また、印刷動作が行われていない待機中の電源遮断時は、それまでの待機中に最新のデータＤが繰り返し書き戻され、不揮発性メモリー５５には最新のデータＤが保存されている。
【０１４７】
図９の例のように、この電源オフ（電源遮断）の際に、仮に書込みタスク部９１がコピー処理中であった場合は、より優先順位の高い書込みタスク部９１のコピー処理を終えた後に、次に優先順位の高い書戻しタスク部９２が起動される。そして、書戻しタスク部９２は、そのコピーされたデータＤの書戻し処理を行う（図９中の（１３），（１４）、図１０のＳ１０〜Ｓ８０）。このような起動優先順位により、書込みタスク部９１によるコピー途中の電源遮断時に書戻しタスク部９２が割り込んで、コピー途中のデータＤを書き戻す事態が回避される。このため、電源遮断時には、書込みタスク部９１によるコピーが完了した正しい最新のデータＤを不揮発性メモリー５５に書き戻すことができる。
【０１４８】
また、電源遮断時に書戻し中であった場合は、緊急タスク部９０からＣＰＵ実行権が切り換わった際に書戻しタスク部９２が再起動される。このとき、書戻しタスク部９２は、計数値ＣＴと対応する箇所からデータＤの書戻し処理を行う（図１０のＳ１０〜Ｓ８０）。
【０１４９】
この電源遮断時に書戻し処理を正常に終えたときには、書戻し先の記憶領域に対応するカウンターの計数値ＣＴは書戻し完了値Ｂとなっている（ＣＴ＝Ｂ）。一方、書戻し処理を正常に終えられなかったときには、書戻し先の記憶領域に対応するカウンターの計数値ＣＴが書戻し完了値Ｂ以外の値（ＣＴ≠Ｂ）となる。
【０１５０】
正常電源オフ時は、書戻しタスク部９２から書戻し完了通知を受け付けた緊急タスク部９０が起動し、プリンター１１の終了処理を行う。この終了処理は、電源オフ時にプリンター１１を終了時にあるべき状態にする処理であり、電源遮断前の準備処理に相当する。終了処理ではデータの退避処理など所定の処理が行われる。もちろん、終了処理は、例えばキャリッジ２７がホームポジションになければ、ホームポジションに移動させて記録ヘッド２９をキャッピングするなど、各種の動作部を初期位置に戻すなどの終了動作を含んでもよい。緊急タスク部９０は、終了処理を終わると、電源を遮断する。なお、正常電源オフ時は、電源遮断までの電力供給時間に余裕があるので、終了処理を先に行ってから、書戻しタスク部９２による書戻し処理を行ってもよい。また、この電源オフ時は、インク関連情報もインクカートリッジＩＣの記憶素子４７にも書き込まれる。
【０１５１】
例えば電源プラグ抜けや電源４８の故障などによる不意な電源遮断、あるいはコントローラー４０のシステムダウン（ハングアップ等）などが発生した際は、そのとき書戻し処理の途中であれば、その書戻し処理が途中のまま電源が遮断されることになる。このような場合、２つのカウンター１４１，１４２のうち一方の計数値ＣＴが書戻し完了値Ｂをとり、他方の計数値ＣＴが書戻し完了値Ｂ以外の値をとることになる。
【０１５２】
この電源遮断（電源オフ）後、ユーザーが電源スイッチ６５を操作してプリンター１１の電源を投入した電源オン時には、書込みタスク部９１が起動される。以下、図１１のフローチャートに従って書込み処理を説明する。
【０１５３】
まずステップＳ１１０では、全てのカウンター１４１，１４２の各計数値ＣＴが書戻し完了値Ｂであるか否かを判断する。全ての計数値ＣＴが書戻し完了値ＢであればステップＳ１２０に進み、全ての計数値ＣＴが書戻し完了値ＢでなければステップＳ１３０に進む。
【０１５４】
ステップＳ１２０では、更新フラグＦ＝１であるか否かを判定する。更新フラグＦ＝１であればステップＳ１３０に進み、更新フラグＦ＝１でなければ（つまりＦ＝０であれば）ステップＳ１４０に進む。
【０１５５】
ステップＳ１３０では、不揮発性メモリー５５のうち第１記憶領域１４３のデータＤをＲＡＭ５４の第１記憶部１３１に書き込む（書込み処理）。更新フラグＦ＝１のときは、前回の電源遮断前に最後に行われた書戻し処理の書戻し先が第１記憶領域１４３であるので、この第１記憶領域１４３からデータＤを書き込むことにより、不揮発性メモリー５５から最新のデータＤをＲＡＭ５４の第１記憶部１３１に書き込むことができる。この書込み処理を終えると、本ルーチンを終了する。すなわち、書込みタスク部９１は休止する。
【０１５６】
一方、ステップＳ１４０では、不揮発性メモリー５５のうち第１記憶領域１４３のデータＤをＲＡＭ５４の第１記憶部１３１に書き込む（書込み処理）。更新フラグＦ＝０のときは、前回の電源遮断前に最後に行われた書戻し処理の書戻し先が第２記憶領域１４４であるので、この第２記憶領域１４４からデータＤを書き込むことにより、不揮発性メモリー５５から最新のデータＤをＲＡＭ５４の第１記憶部１３１に書き込むことができる。この書込み処理を終えると、本ルーチンを終了する。すなわち、書込みタスク部９１は休止する。
【０１５７】
一方、全てのカウンター１４１，１４２の計数値ＣＴが書戻し完了値Ｂでない場合（Ｓ１１０で否定判定）は、ステップＳ１５０において、書戻しエラーを報知する。つまり、計数値ＣＴが書戻し完了値Ｂに達していないカウンターが存在する場合は、電源遮断前に最後に行われた書戻し処理でデータＤの書戻しが完了していないことを意味するので、その旨をユーザーに知らせるために書戻しエラーを報知する。書込みタスク部９１は主制御部８１へ書戻しエラー通知を行い、さらに主制御部８１が通信部８２を介してホスト制御部１２５へその書戻しエラー通知を送ることにより、ホスト制御部１２５へ書戻しエラーの旨が通知される。ホスト制御部１２５は、書戻しエラー通知を受け付けると、モニター１２３に書戻しエラー発生の旨（例えばエラー画面）を表示する。この結果、書戻しエラー発生の旨がユーザーに報知される。
【０１５８】
次のステップＳ１６０では、不揮発性メモリー５５における２つの記憶領域１４３，１４４のうち計数値ＣＴが書戻し完了値Ｂになっている側のカウンターに対応する記憶領域のデータＤを、ＲＡＭ５４の第１記憶部１３１に書き込む。この結果、前回の電源遮断前に最後に書戻し処理を完了したデータＤが、ＲＡＭ５４の第１記憶部１３１に書き込まれる。
【０１５９】
次のステップＳ１７０では、書戻し途中の記憶領域のデータＤのうち計数値ＣＴに相当する分までの一部のデータをＲＡＭ５４の第１記憶部１３１に書き込む。つまり、不揮発性メモリー５５における２つの記憶領域１４３，１４４のうち計数値ＣＴが書戻し完了値Ｂ以外の値になっている側のカウンターに対応する記憶領域のデータＤのうち計数値ＣＴに相当する分までの一部のデータ、すなわち前回の電源遮断時に書戻しができたところまでの一部のデータを、をＲＡＭ５４の第１記憶部１３１に書き込む。ここで、前回の電源遮断時に、データＤのうちそのときの計数値ＣＴに相当する一つの情報中の途中箇所で電源が遮断された場合、当該１つの情報は書戻しが中断されて信頼できないので、当該一つの情報の１つ前の情報までの信頼できる一部のデータＤを、ＲＡＭ５４の第１記憶部１３１に書き込む。
【０１６０】
このデータ修復処理の結果、前回の電源遮断前に書戻しが中断されたデータＤのうち書戻しが完了できたところまでの一部のデータを、前回の電源遮断前に書戻しを完了できた１回旧いデータＤの一部で補ったなるべく新しいデータＤに修復できる。この修復を終えると、書込みタスク部９１は本ルーチンを終了する。この電源オン時には書込みタスク部９１は続いてコピー処理も行い、書き込んだ第１記憶部１３１のデータＤを第２記憶部へコピーする。そして、コピー処理を終えた書込みタスク部９１は休止する。なお、本実施形態では、この修復処理を行う書込みタスク部９１により、修復手段の一例が構成される。
【０１６１】
以上詳述したように、本実施形態によれば、以下に示す効果を得ることができる。
（１）書戻しタスク部９２は、ＲＡＭ５４の第２記憶部１３２のデータＤを、不揮発性メモリー５５の複数の記憶領域１４３，１４４に交互に書き戻し、このときカウンター１４１，１４２のうち書戻し先の記憶領域と対応するカウンターの計数処理を行って書戻したデータ量に応じた計数値とするようにした。そして、電源オン時には、書込みタスク部９１は、複数のカウンター１４１，１４２のうち計数値ＣＴが書戻し完了値Ｂとなっているカウンターに対応する記憶領域のデータをＲＡＭ５４の第１記憶部１３１に書き込む。このため、例えば不意な電源遮断により、書戻し処理が中断されても、その書戻しが中断された間違ったデータがＲＡＭ５４に書き込まれる事態を回避できる。従って、書戻しを完了した正しいデータを不揮発性メモリー５５からＲＡＭ５４へ書き込むことができ、しかも前回の電源遮断時に書戻し処理が中断されても、その中断時の１回前に書き戻された比較的新しいデータをＲＡＭ５４に書き込むことができる。
【０１６２】
（２）不揮発性メモリー５５に２つの記憶領域１４３，１４４を設け、データＤの書戻し先を２つの記憶領域１４３，１４４間で交互に切り換える構成としたので、データ記憶容量を比較的多く確保できる。例えば３つ以上の記憶領域を確保して、書戻し先の記憶領域を順番に切り換える構成とした場合、データ記憶容量が小さくなってしまい、例えば大記憶容量の不揮発性メモリー５５を用意しなければならなくなる。しかし、記憶領域の個数を書戻し先を切り換え可能な最少個数である２個としているので、データ記憶容量を比較的多く確保できる、
（３）不揮発性メモリー５５に設けられた２つの記憶領域１４３，１４４間で交互に切り換える構成としたので、少なくとも一つの記憶領域と対応するカウンターが書戻し完了値Ｂとなっている。このため、書戻し完了値Ｂのカウンターに対応する記憶領域から正しいデータＤをＲＡＭ５４へ書き込むことができる。例えば一つの記憶領域へのデータの書戻しを完了する前の書戻し途中で、他の一つの記憶領域へのデータの書戻しを開始する構成とすると、不意な電源遮断時に２つのカウンターが共に書戻し完了値Ｂとならない事態が発生する。しかし、一つの記憶領域へのデータの書戻しを完了した後、他の一つの記憶領域へのデータの書戻しを開始する構成なので、必ず一つの記憶領域には書戻しを完了した正しいデータが格納された状態にすることができる。よって、書戻しを完了した信頼性の高いデータＤをＲＡＭ５４に書き込むことができる。
【０１６３】
（４）書戻しタスク部９２はプリンター１１の電源遮断時に起動され、そのときの最新のデータＤの書戻し処理を行うので、なるべく最新のデータＤを不揮発性メモリー５５に書き戻すことができる。
【０１６４】
（５）電源オン時に、書込みタスク部９１は、計数値ＣＴが書戻し完了値Ｂになっていないカウンターが存在すると、その旨をホスト制御部１２５へ通知し、モニター１２３（報知手段）に書戻しエラーの旨を表示させることによりエラー報知を行う。この結果、ユーザーは、このエラー報知によって、前回の電源遮断時に書戻し処理を失敗した虞がある旨（つまり不揮発性メモリー５５のデータが間違っている虞がある旨）を知ることができる。このため、ユーザーはデータ修復の必要性を認知できる。
【０１６５】
（６）書戻し完了値Ｂ以外の計数値ＣＴをもつカウンターが存在してエラー報知を行った場合、書込みタスク部９１は、書戻しが中断されたデータのうち書戻しを終えたところまでの一部のデータを、書戻しを完了した１回旧いデータの一部で補完し、比較的新しいデータに修復する。書戻しが行われた分までの一部のデータを利用して少なくともその部分については最新のデータが用いられた修復データを取得できる。
【０１６６】
（７）例えばカウンターに替えてフラグを採用した構成にすると、書戻し処理が中断された場合にデータＤ中のどの箇所で中断されたかを把握することができないが、カウンター１４１，１４２であるので、その計数値ＣＴから、データＤにおいて書戻し処理が中断された箇所を特定することができる。この結果、書戻しが中断された一部のデータを利用して適切な修復処理を行うことができ、修復データの信頼性を高めることができる。
【０１６７】
（８）印刷系タスク部より優先順位の高い書込みタスク部９１が、第１記憶部１３１のデータＤを、印刷系タスク部による書込みが禁止された第２記憶部１３２にコピーし、書戻しタスク部９２が第２記憶部１３２のデータＤを不揮発性メモリー５５に書き戻すので、不揮発性メモリー５５に正確なデータＤを書き戻すことができる。例えば書戻し途中に優先順位の高いタスクが起動されても、第２記憶部１３２のデータＤは書き替えられることはないので、その後、書戻しタスク部９２が起動し、中断した続きからデータの書戻し処理を再開した場合に、前回と今回で同一のデータを対象に書き戻しをすることができる。よって、印刷系タスク部の割り込みによる中断によって複数回に分けて断続的に書戻し処理を行っても、不揮発性メモリー５５に正しいデータＤを書き戻すことができる。
【０１６８】
（９）書込みタスク部９１の優先順位を印刷系タスク部よりも高くしているので、第１記憶部１３１から第２記憶部１３２へのデータＤのコピーを、印刷系タスク部に優先して行うことができる。このため、書込みタスク部９１によるコピーが印刷系タスク部の起動により中断され、コピー途中でコピー元のデータＤが書き替えられる事態を回避できる。よって、第１記憶部１３１のデータを第２記憶部１３２に正しくコピーすることができる。
【０１６９】
（１０）書込みタスク部９１は、書戻しタスク部９２から受け付けた書戻し完了通知をトリガーにして、データＤのコピーを開始する。このため、書戻しタスク部９２による書戻し途中にその書戻し元データが書き替えられてしまう事態を回避できる。よって、正しいデータＤを不揮発性メモリー５５に書き戻すことができる。
【０１７０】
（１１）書戻しタスク部９２の優先順位を、印刷系タスク部８１〜８９よりも低く設定した。このため、印刷画像データ及びヘッド制御データなどの噴射系データ生成処理と、記録ヘッド２９への噴射系データの転送処理の最中に、書戻しタスク部の割り込みが発生せず、これらの記録ヘッド系処理が書戻し処理に優先して行われる。このため、例えば噴射系データが間に合わず、ノズルからインクが噴射されない噴射不良（ドット抜け）の発生頻度や、ヘッド制御データの準備が遅れキャリッジ２７の起動タイミングが遅延する頻度をなるべく低減することができる。よって、噴射不良に起因する印刷不良の発生を防止しつつ、キャリッジ２７の起動タイミングの遅延発生頻度を低減して印刷スループットの低下を抑制することができる。
【０１７１】
また、印刷動作（記録系動作及び搬送系動作）やクリーニング動作などの所定動作が行われていないプリンター１１の待機状態のときに、データＤの書戻し処理を行う。よって、印刷系処理の最中に書戻し処理の割り込みが発生せず、印刷系処理が書戻し処理に優先して実施され、印刷スループットの低下を抑制できる。
【０１７２】
（１２）緊急タスク部９０は、電源オフ時にタスク優先順位の変更をリアルタイムＯＳ７１に要求し、優先順位管理テーブル９７を電源オフ時のタスク優先順位（図５（ｂ））に更新する。この優先順位の変更によって、書込みタスクと書戻しタスクとの優先順位の関係を保ちつつ、両タスクの優先順位を印刷系タスクよりも高くする。このため、電源オフ時にも、書戻しタスク部９２の起動が可能となり、なるべく最新のデータＤを不揮発性メモリー５５に書き戻すことができる。また、電源遮断時にも、書込みタスク部９１の優先順位を書戻しタスク部９２より高く設定したので、例えばコピー途中に電源遮断を検出しても、そのコピーを全て終えてからそのデータＤの書き戻しを開始できる。例えば、書戻しタスク部９２を書込みタスク部９１よりも高い優先順位とすると、コピー途中の電源遮断時に、そのコピー途中のデータＤを書き戻すことになり、データＤの信頼性が損なわれる。これに対し、本実施形態では、コピー途中の電源遮断時にも、コピーをし終わった正しいデータＤを不揮発性メモリー５５に書き戻すことができる。
【０１７３】
（第２実施形態）
次に第２実施形態について図１２〜図１８を用いて説明する。本実施形態のプリンターは、記録ヘッドを制御するコントローラーが複数設けられ、複数の記録ヘッドを複数のコントローラーが分担して制御する構成である。
【０１７４】
図１２は、本実施形態のプリンターの電気的構成を示すブロック図である。本実施形態のプリンター１１の制御装置Ｃは、記録ヘッド２９を分担して制御する複数（本例では２個）のコントローラー４１，４２を備えている。マスター側コントローラー４１は複数個（例えば７個）の記録ヘッド２９Ａの噴射制御（記録制御）を行い、スレーブ側コントローラー４２は複数個（例えば８個）の記録ヘッド２９Ｂの噴射制御（記録制御）を行う。
【０１７５】
ホスト装置１２０内のプリンタードライバー１２２は、２つのコントローラー４１，４２がそれぞれ受け持つ記録ヘッド２９の配置位置（記録領域）に応じて印刷画像データを２つに分割し、分割した各印刷画像データに同一の印刷言語記述コマンドを付して２つの印刷データＰ１，Ｐ２を生成する。ホスト装置１２０は、転送制御部１２９により、シリアル通信ポートＵ１，Ｕ３間の通信を介してマスター側コントローラー４１へ印刷データＰ１をシリアル転送すると共に、シリアル通信ポートＵ２，Ｕ４間の通信を介してスレーブ側コントローラー４２へ印刷データＰ２をシリアル転送する。
【０１７６】
また、２つのコントローラー４１，４２に接続された各通信回路４６には、８個のインクカートリッジＩＣ１〜ＩＣ８に実装された８個の記憶素子４７のうち半分の４個ずつがそれぞれ接続されている。マスター側コントローラー４１は４個のインクカートリッジＩＣ１〜ＩＣ４に実装された各記憶素子４７と通信可能であり、スレーブ側コントローラー４２は４個のインクカートリッジＩＣ５〜ＩＣ８に実装された各記憶素子４７と通信可能である。記憶素子４７には、第１実施形態と同様に、対応するインクカートリッジＩＣのインク残量情報、インク色、使用期限、メンテナンス情報、品番などの各種のインク関連情報が記憶される。
【０１７７】
マスター側コントローラー４１は、通信回路４６を介してインクカートリッジＩＣ１〜ＩＣ４の各記憶素子４７と通信してインク関連情報の読出し及び書込みが可能となっている。同様に、スレーブ側コントローラー４２は、通信回路４６を介して各インクカートリッジＩＣ５〜ＩＣ８に実装された記憶素子４７と通信してインク関連情報の読出し及び書込みが可能となっている。
【０１７８】
このように、各コントローラー４１，４２の構成は、記録ヘッド２９及びインクカートリッジＩＣを制御及び管理する個数が異なる以外は、基本的に第１実施形態と同様である。各コントローラー４１，４２は、第１実施形態と同様に、ＣＰＵ５１、ＡＳＩＣ５２、ＲＯＭ５３、ＲＡＭ５４及び不揮発性メモリー５５をそれぞれ備えている。図１２では、マスター側とスレーブ側の不揮発性メモリー５５を区別するため、マスター側の不揮発性メモリーを５５Ａ、スレーブ側の不揮発性メモリーを５５Ｂとしている。なお、記録ヘッド２９を分担して制御している関係から、両コントローラー４１，４２間でコマンド出力タイミングの同期をとる必要があり、両コントローラー４１，４２が同期処理機能を備えている点が、第１実施形態と異なる。この同期処理機能について後述する。
【０１７９】
図１２に示すように、本実施形態では、マスター側コントローラー４１が通信線ＳＬ１を介してメカコントローラー４３と接続されている。また、リニアエンコーダー５０の出力信号はマスター側コントローラー４１へ入力されるとともに、マスター側コントローラー４１から信号線ＳＬ２を介してスレーブ側コントローラー４２へ送られる。また、両コントローラー４１，４２は、上記同期処理機能を実現するために通信線ＳＬ３を介して互いに接続されている。また、インクカートリッジＩＣの管理を分担している関係から、自身が管理する記録ヘッド２９で消費されたインク消費量のうち相手側のコントローラーが管理するインクカートリッジのインク色に対応するインク消費量を相手側のコントローラーへ送信するため、両コントローラー４１，４２は通信線ＳＬ４を介した通信が可能に接続されている。
【０１８０】
マスター側コントローラー４１は、自身が受け持つ７個の記録ヘッド２９Ａの印刷準備ができ（つまりインク滴噴射制御に使用する印刷画像データが準備され）、かつスレーブ側コントローラー４２が受け持つ８個の記録ヘッド２９Ｂも印刷準備ができた段階でキャリッジ起動コマンドをメカコントローラー４３へ送信するようになっている。これにより、コントローラー４１，４２のうち一方の印刷準備完了前にキャリッジ２７が起動されてしまうことに起因し、記録ヘッド２９が噴射位置に到達したにも拘わらずインク滴が噴射されない噴射ミスが防止されるようにしている。
【０１８１】
また、マスター側コントローラー４１は、自身が受け持つ７個の記録ヘッド２９Ａの印刷を完了し、かつスレーブ側コントローラー４２が受け持つ８個の記録ヘッド２９Ｂも印刷を完了した段階で、シート１３の搬送を指令する搬送コマンドをメカコントローラー４３へ送信する。これにより、コントローラー４１，４２のうち一方が印刷完了前の段階でシート１３が搬送開始（又は支持部材１９上のシートの吸着解除）されてしまうことに起因し、記録ヘッド２９から噴射されたインク滴のシート１３に対する着弾位置のずれ（印刷位置ずれ）が防止されるようにしている。
【０１８２】
このようにマスター側コントローラー４１は、スレーブ側コントローラー４２と進捗の同期をとってコマンドを送信する前述の同期処理機能を備えている。同期処理機能では、スレーブ側コントローラー４２はマスター側コントローラー４１へコマンドを出力し、マスター側コントローラー４１は、スレーブ側から受け付けたコマンドと自身のコマンドとが揃いかつコマンド内容が一致することを確認した時点で、メカコントローラー４３へコマンドを出力する。本実施形態では、同期処理機能を実現するために各コントローラー４１，４２に設けられた構成が、マスター側とスレーブ側で少し異なる。
【０１８３】
図１３は、マスター側コントローラー４１とスレーブ側コントローラー４２の機能構成を説明するブロック図である。図１３に示すように、両コントローラー４１，４２は、同じプログラムの構成で実現されている。但し、同期処理機能の部分のみ起動される一部のプログラムが異なるため、異なる機能が実現されている。なお、図１３では、コマンド処理系及び同期処理系の機能ブロックのみを示し、リアルタイムＯＳ７１、画像処理部８３、ヘッド制御部８８、インク管理部８９及び緊急タスク部９０などは省略している。
【０１８４】
図１３に示すように、各コントローラー４１，４２は、第１実施形態のコントローラー４０と同様に、リアルタイムＯＳ７１、主制御部８１、通信部８２、画像処理部８３、コマンド解析部８４、印刷タスク部８５、メカ制御部８６、メカ通信部８７、ヘッド制御部８８、インク管理部８９、緊急タスク部９０、書込みタスク部９１及び書戻しタスク部９２を備えている。
【０１８５】
さらに本実施形態では、同期処理機能を実現するため、マスター側コントローラー４１は、同期手段の一例としての仮想メカコントローラー９８（仮想メカコン９８）を備え、スレーブ側コントローラー４２は、ダミーメカコントローラー９９（ダミーメカコン９９）を備えている。
【０１８６】
また、スレーブ側コントローラー４２のメカ通信部８７は、マスター側コントローラー４１の仮想メカコン９８と通信線ＳＬ３を通じて接続されている。すなわち、マスター側コントローラー４１のメカ通信部８７が実際のメカコントローラー４３に接続されているのに対して、スレーブ側のメカ通信部８７はマスター側コントローラー４１内に設けられた仮想メカコン９８に接続されている。スレーブ側のメカ通信部８７はメカコントローラー４３へコマンドを出力したつもりで実際は仮想メカコン９８へコマンドを送信している。
【０１８７】
次に同期処理機能について説明する。デバイス制御部９４は、ジョブ制御部９３から受信したコマンドをメカ通信部８７へ出力する（図１３中の（１））。メカ通信部８７は、コマンドを受信すると、マスター側では仮想メカコン９８にコマンドの問合せをし（図１３中の（２））、スレーブ側ではダミーメカコン９９にコマンドの問合せをする（図１３中の（２））。
【０１８８】
スレーブ側ではダミーメカコン９９は問合せを受け付けると、無条件で直ちにＡＣＫ信号を応答する（図１３中の（３））。スレーブ側のメカ通信部８７はその応答を受け付けると、コマンドを通信線ＳＬ３へ出力する（図１３中の（４））。この出力されたコマンドは、マスター側の仮想メカコン９８が受信する。
【０１８９】
仮想メカコン９８は、マスター側とスレーブ側の両メカ通信部８７からコマンドを受け付けると、両コマンドが一致するか否かを判断し、一致すれば、マスター側のメカ通信部８７に対してＡＣＫ信号を応答する（図１３中の（５））。そして、マスター側のメカ通信部８７はＡＣＫ信号の応答を受け付けると、メカコントローラー４３へコマンドを送信する（図１３中の（６））。つまり、仮想メカコン９８の同期処理においてマスター側とスレーブ側の両方で同一のコマンドが揃ったことが確認されたタイミングで、マスター側のメカ通信部８７からメカコントローラー４３へコマンドが送信される。なお、メカ通信部８７は、コマンドをメカコントローラー４３へ出力する度に、メカ制御部８６へコマンド出力の旨を応答する。メカ制御部８６はコマンド出力の旨の応答を受け付けると、次のコマンドを出力する。
【０１９０】
図１４は、本実施形態のＲＡＭと不揮発性メモリーの構成を示す。本実施形態では、マスター側とスレーブ側ともにＲＡＭと不揮発性メモリーの構成は同じである。図１４では、マスター側コントローラー４１内のＲＡＭ５４及び不揮発性メモリー５５Ａを示している。なお、図１４では、スレーブ側コントローラー４２の不揮発性メモリー５５Ｂの対応する構成の符号を（  ）内に示している。
【０１９１】
図１４に示すように、ＲＡＭ５４は、第１実施形態と同様に、プログラムデータ記憶部１３０と、第１記憶部１３１（ミラー記憶領域部）と、第２記憶部１３２（コピー記憶領域部）とを有する。
【０１９２】
第１記憶部１３１（ミラー記憶領域部）は、不揮発性メモリー５５から読み出されたデータＤの書込み先となる記憶領域であり、印刷系タスク部８１〜８９、緊急タスク部９０がアクセスしてデータの読出し及び書込みが可能な記憶領域である。
【０１９３】
第２記憶部１３２（コピー記憶領域部）は、第１記憶部１３１から読み出されたデータＤのコピー先となる記憶領域であり、書込みタスク部９１による書込みアクセスと書戻しタスク部９２による読み出しアクセスは許可されているものの、各タスク部８１〜９０の第２記憶部１３２への書込みアクセスが禁止されている。
【０１９４】
また、図１４に示すように、本実施形態の不揮発性メモリー５５Ａ（５５Ｂ）には、計数手段の一例としてのカウンター１５１（１５３）と、データＤを記憶するための記憶部１５２（１５４）が１つずつ設けられている。この第２実施形態では、各コントローラー４１，４２に設けられた不揮発性メモリー５５Ａ，５５Ｂの各記憶部１５２，１５４が、複数の記憶部の一例を構成している。そして、本例では、複数の記憶部が２つの例である。
【０１９５】
図１４に示すように、電源オン時に書込みタスク部９１により不揮発性メモリー５５からＲＡＭ５４の第１記憶部１３１へのデータＤの書込み処理が行われる（図１４中の（１））（書込み段階）。すなわち、書込みタスク部９１は、電源オン時に、前回の電源オフ時（電源遮断時）に不揮発性メモリー５５に保存されたデータＤを、その不揮発性メモリー５５から読み出し、その読み出したデータＤをＲＡＭ５４の第１記憶部１３１に書き込む。
【０１９６】
書込みタスク部９１は、この電源オン時の書込み処理のときに限り、書込み処理に続けてコピー処理も行い、第１記憶部１３１のデータＤを第２記憶部１３２にコピーする（図１４中の（２））（コピー段階）。
【０１９７】
その後、プリンター１１が待機状態になると、各タスク部８１〜９２の中で一番優先順位の低い書戻しタスク部９２が起動される。そして、書戻しタスク部９２は、第２記憶部１３２のデータＤを不揮発性メモリー５５に書き戻す（図１４中の（３））（書戻し段階）。書戻し処理に先立ち、カウンター１５１，１５３は書戻し開始値Ａに変更される。書戻しタスク部９２は、データＤの書戻し中は、Ｋバイトのデータを書き戻す度にカウンター１５１（１５３）をインクリメントする計数処理を行う。
【０１９８】
書戻しタスク部９２が、データＤを全て書戻し、書戻し処理を完了すると、カウンター１５１（１５３）の計数値ＣＴは書戻し完了値Ｂ（例えば最大値）となっている。書込みタスク部９１は、書戻し処理を完了した書込みタスク部９１から書戻し完了通知を受け付けると起動し、第１記憶部１３１から第２記憶部１３２へデータＤをコピーするコピー処理を行う（図１４中の（２））。書込みタスク部９１は、印刷系タスク部より優先順位の高いタスクであるため書戻し完了通知を受け付ければ大抵の場合は直ぐに起動される。この書戻し完了の度に書戻しタスク部９１から送られてくる書戻し完了通知を受け付ける度に書込みタスク部９１は起動し、前回コピー時と今回コピー時の間の期間に更新された第１記憶部１３１のデータＤを、第２記憶部１３２へコピーする（図１４中の（２））。コピー処理後、プリンター１１が待機状態になる度に、書戻しタスク部９２が起動し、第２記憶部１３２のデータＤを不揮発性メモリー５５に書戻す（図１４中の（３））。
【０１９９】
また、電源オフ操作時、電源プラグ抜けや電源故障などの電源オフ時（電源遮断時）は、優先順位変更部７３が、優先順位管理テーブル９７を、図５（ｂ）に示す優先順、すなわち、書戻しタスク部９２を印刷系タスク部８１〜８９の優先順位より高い順位（本例では第３位の優先順位）とする優先順に変更する。このため、本実施形態においても、電源オフ時（電源遮断時）には、書戻しタスク部９２が起動される。
【０２００】
図１５は、不揮発性メモリー５５の構成を示す。図１５に示すように、不揮発性メモリー５５Ａ（５５Ｂ）は、カウンター１５１（１５３）として使用されるカウンター領域１５１Ａ（１５３Ａ）と、データＤ（バックアップデータ）を記憶させるための記憶部１５２（１５４）とを備えている。カウンター領域１５１Ａ（１５３Ａ）は、印刷系タスク部による書込み禁止領域となっているが、書込みタスク部９１及び書戻しタスク部９２による書込みアクセスは許可されている。そのため、書込みタスク部９１及び書戻しタスク部９２によるカウンター１５１（１５３）の計数値を変更する処理（リセット、セット、計数処理など）が可能になっている。
【０２０１】
カウンター領域１５１Ａ（１５３Ａ）には、第１実施形態と同様に、例えば１バイト確保されており、８ビットのカウンター１５１（１５３）が構成されている。本実施形態でも同様に、データＤのデータサイズを２５５分割した値であるＫバイト（Ｋ＝データＤのデータ容量／２５５）を、カウンター１５１（１５３）を「１」だけ計数する計数処理の単位としている。書戻し開始値Ａを最小値「00000000」（２進数）とし、データＤの書戻しを全て完了したときの書戻し完了値Ｂを最大値「11111111」（２進数）になるようにしている。また、データＤは、稼働情報データＤ１と調整情報データＤ２とを含み、第１実施形態と同様に、相対的に更新頻度の高い稼働情報データＤ１が記憶部１５２（１５４）のうち書戻し開始側の領域に格納され、相対的に更新頻度の低い調整情報データＤ２が記憶部１５２（１５４）のうち書戻し終了側の領域に格納されるようになっている。なお、本実施形態では、マスター側の不揮発性メモリー５５における記憶部１５２を第１記憶部と称し、スレーブ側の不揮発性メモリー５５における記憶部１５４を第２記憶部と称する場合もある。
【０２０２】
以下、各コントローラー４１，４２内で書戻しタスク部９２が起動して行われる書戻し処理を、図１６に示すフローチャートに従って説明する。コピー処理後、プリンター１１が待機状態のときに、各コントローラー４１，４２の書戻しタスク部９２がそれぞれ起動する。各コントローラー４１，４２は非同期で動作するものの、プリンター１１が印刷動作を行うタイミングや、プリンター１１が待機状態になるタイミングに合わせて、各タスク部は起動する。このため、各コントローラー４１，４２において、書込みタスク部９１及び書戻しタスク部９２は同じように起動する。なお、以下では、マスター側コントローラー４１における書戻し処理を説明し、スレーブ側の対応する符号を（  ）内に示して説明する。
【０２０３】
まず図１６におけるステップＳ２１０において、第２記憶部１３２のデータＤのうちＪバイト分のデータを不揮発性メモリー５５に書き戻す。このとき、新たに第２記憶部１３２にコピーされたデータＤを書き戻す場合は、カウンターの計数値ＣＴを書戻し開始値Ａに変更後、データＤの最初からＪバイトずつ順番に書戻しを行う。また、前回書戻しを中断した続きから同一のデータＤを書き戻す場合は、そのときの計数値ＣＴに対応する箇所からＪバイトずつ順番に書戻しを行う。なお、カウンターの書戻し開始値Ａへの変更は、コピー処理完了時に書込みタスク部９１が行ってもよい。
【０２０４】
次のステップＳ２２０では、Ｋバイト分を書き戻したか否かを判断する。Ｋバイト分を書き戻していなければ次のＪバイト分のデータを不揮発性メモリー５５に書き戻す（Ｓ２１０）。そして、Ｊバイト分ずつの書戻しをｎ回繰り返してＫ（＝Ｊ×ｎ）バイト分を書き戻すと（ステップＳ２２０で肯定判定）、ステップＳ２３０に進む。
【０２０５】
ステップＳ２３０では、カウンター１５１（１５３）の計数処理を行う。本例では、計数処理として、カウンター１５１（１５３）の計数値ＣＴを「１」だけインクリメントする。
【０２０６】
そして、ステップＳ２４０において、カウンター１５１（１５３）の計数値ＣＴが書戻し完了値Ｂに達したか否かを判断する。書戻し完了値Ｂに達していなければステップＳ２１０に戻り、以下同様に、Ｓ２１０〜Ｓ２４０の各処理を、計数値ＣＴが書戻し完了値Ｂに達するまで（Ｓ２４０で肯定判定）繰り返す。この結果、Ｋバイト分の書戻しを完了する度に、カウンター１５１（１５３）が計数処理でインクリメントされる。そして、データＤを全て不揮発性メモリー５５に書戻し終えると、カウンター１５１（１５３）の計数値ＣＴが書戻し完了値Ｂに達し（Ｓ２４０で肯定判定）、書戻し完了通知を書込みタスク部９１へ送信後、当該ルーチンを終了する。つまり、書戻しタスク部９２は休止する。なお、電源遮断時（電源オフ時）の処理として行った書戻し処理を終えた際は、書戻し完了通知は緊急タスク部９０へ送信される。また、書戻し処理中に、書戻しタスク部９２より優先順位の高い他のタスク部の割り込みがあれば、カウンター１５１（１５３）の計数値ＣＴが書戻し完了値Ｂに達していなくても、その時点で書戻しタスク部９２はレディ状態に移行し、書戻し処理が中断される。
【０２０７】
次に電源遮断（電源オフ）時におけるデータ記憶処理について説明する。例えば不意な電源遮断時には、プリンター１１が備える二次電池が放電されるまでの所定時間はデータ記憶処理を行うことができる。この不意な電源遮断は、各コントローラー４１，４２内の緊急タスク部９０の電源遮断検出機能により検出される。
【０２０８】
電源遮断が検出されると、緊急タスク部９０が起動され、緊急タスク部９０がリアルタイムＯＳ７１に優先順位変更要求を行うことにより、優先順位変更部７３がタスク優先順位変更処理を行う。この結果、タスク管理部７４によって参照される優先順位管理テーブル９７が、図５（ａ）に示す通常時のタスク優先順から図５（ｂ）に示す電源オフ時のタスク優先順に変更される。
【０２０９】
このため、電源遮断時には、書戻しタスク部９２が起動される。但し、コピー処理中に電源が遮断された場合は、より優先順位の高い書込みタスク部９１がコピー処理を終えた後、次に優先順位の高い書戻しタスク部９２が起動される。そして、書戻しタスク部９２は、そのコピーされたデータＤの書戻し処理を行う（図１６のＳ２１０〜Ｓ２４０）。また、書戻し処理中に電源が遮断された場合は、そのときの計数値ＣＴに対応する書戻しが中断された箇所からデータＤの書戻し処理を行う（図１６のＳ２１０〜Ｓ２４０）。このとき、書戻し処理を最後まで完了できた場合は、カウンター１５１（１５３）の計数値ＣＴは、書戻し完了値Ｂになっている（ＣＴ＝Ｂ）。このとき不揮発性メモリー５５Ａ（５５Ｂ）には書戻し処理を完了した正しいデータＤが保存されている。一方、書戻し処理を最後まで完了できなかった場合は、カウンター１５１（１５３）の計数値ＣＴは、書戻し完了値Ｂ以外の値（ＣＴ≠Ｂ）となる。このとき不揮発性メモリー５５Ａ（５５Ｂ）には書戻し途中の間違ったデータＤが保存されている虞がある。
【０２１０】
例えば電源プラグ抜けや電源４８の故障などによる不意な電源遮断、あるいはコントローラー４０のシステムダウン（ハングアップ等）などが発生した際は、そのとき書戻し処理の途中であれば、その書戻し処理が途中のまま電源が遮断されてしまう場合がある。このような場合、各コントローラー４１，４２は非同期なので、各カウンター１５１，１５３のうち一方の計数値ＣＴが書戻し完了値Ｂをとり、他方の計数値ＣＴが書戻し完了値Ｂ以外の値をとることもありうる。また、カウンター１５１，１５３の各計数値ＣＴが共に書戻し完了値Ｂ以外の値をとることもありうる。
【０２１１】
この電源遮断（電源オフ）後、ユーザーが電源スイッチ６５を操作してプリンター１１の電源を投入した電源オン時には、書込みタスク部９１が起動される。以下、図１７のフローチャートに従って書込み処理を説明する。
【０２１２】
まずステップＳ３１０では、全てのカウンター１５１，１５３の各計数値ＣＴが書戻し完了値Ｂであるか否かを判断する。全ての計数値ＣＴが書戻し完了値ＢであればステップＳ３２０に進み、全ての計数値ＣＴが書戻し完了値ＢでなければステップＳ３３０に進む。
【０２１３】
ステップＳ３２０では、不揮発性メモリー５５Ａ（５５Ｂ）のデータＤをＲＡＭ５４の第１記憶部１３１に書き込む（書込み処理）。前回の電源遮断前に最後に行われた書戻し処理が完了した正しいデータＤをＲＡＭ５４の第１記憶部１３１に書き込むことができる。この書込み処理を終えると、本ルーチンを終了する。すなわち、書込みタスク部９１は休止する。
【０２１４】
一方、ステップＳ３３０では、計数値ＣＴが書戻し完了値Ｂのカウンターがあるか否かを判断する。書戻し完了値ＢのカウンターがあればステップＳ３４０に進み、書戻し完了値ＢのカウンターがなければステップＳ３６０に進む。
【０２１５】
ステップＳ３４０では、不揮発性メモリー５５Ａ，５５Ｂのうち書戻し完了値Ｂを計数値ＣＴにもつカウンター側の不揮発性メモリーのデータＤを、ＲＡＭ５４の第１記憶部１３１に書き込む（書込み処理）。
【０２１６】
そして、次のステップＳ３５０では、データ修復の旨を報知する。例えば書込みタスク部９１は、主制御部８１を介してホスト制御部１２５にデータ修復の旨を通知し、この通知を受け付けたホスト制御部１２５がモニター１２３にデータ修復の旨を表示することにより報知される。ここで、データ修復の旨を報知するのは、一方のコントローラーで書戻し処理が完了していなかった旨を報知するためのものであり、このときデータＤは正しく修復される。こデータ修復の旨の報知を終えると、書込みタスク部９１は休止する。なお、ステップＳ３４０の書込み処理は、モニター１２３にデータ修復処理の実行をユーザーに選択させる選択肢を表示し、操作部１２４の操作によりデータ修復実行の旨が選択操作された場合に行ってもよい。
【０２１７】
一方、書戻し完了値Ｂを計数値ＣＴにもつカウンターがなかった場合は、ステップＳ３６０において、書戻しエラーを報知する。例えば書込みタスク部９１は、主制御部８１を介してホスト制御部１２５にエラーの旨を通知し、この通知を受け付けたホスト制御部１２５がモニター１２３にエラーの旨を表示することにより報知される。
【０２１８】
そして、以下のステップＳ３７０，Ｓ３８０の処理によりデータ修復処理を行う。
ステップＳ３７０では、不揮発性メモリー５５Ａ，５５Ｂのうち計数値ＣＴの大きいカウンター側の不揮発性メモリーのデータＤのうち計数値ＣＴに相当する箇所の一部を除くデータＤを、各コントローラー４１，４２のＲＡＭ５４の第１記憶部１３１に書き込む。
【０２１９】
次のステップＳ３８０では、ホスト装置１２０から計数値ＣＴに相当する一部のデータを取得し、その取得したデータを、コントローラー４１，４２の各ＲＡＭ５４における計数値ＣＴと対応する位置（アドレス）に書き込む。なお、本実施形態のプリンター１１では、各コントローラー４１，４２は定期的にデータＤをホスト制御部１２５へ送信しているため、ホスト装置１２０内のホスト記憶部１２０Ｍには前回の電源遮断前に最後に送信されたデータＤが保存されている。このため、計数値ＣＴに相当する箇所の一部の情報のみ、ホスト記憶部１２０Ｍに保存されているデータＤを用いて修復する。
【０２２０】
こうしてデータ修復処理によって修復されたデータＤがコントローラー４１，４２の各ＲＡＭ５４に書き込まれる。この書込み処理を終えると、書込みタスク部９１は休止する。書込み処理終了後、書込みタスク部９１は直ぐ起動され、続いてコピー処理を行う。なお、ステップＳ３６０において報知した際のエラー表示画面には、例えばデータ修復処理を実行をユーザーに選択させる選択肢を表示し、操作部１２４の操作によりデータ修復実行の旨が選択操作された場合に次のステップＳ３７０に進むようにしてもよい。
【０２２１】
ここで、計数値ＣＴに対応する箇所のみホスト記憶部１２０Ｍに保存されたデータＤで修復する理由は、次のとおりである。図１８は、書戻し処理が中断された場合における書戻し先のデータＤの中断箇所の周辺部分を示すものである。図１８に示すように、書戻し処理が中断された場合、前回行われた（Ｎ−１）回目の書戻しデータＤ（図１８におけるハッチング部分）に、今回行われたＮ回目の書戻しデータＤが上書きされる。図１８に示すように箇所で書戻しが中断された場合、１つの情報の途中まで書き戻されているので、この１つの情報は前回の旧い情報のデータと今回の新しい情報のデータとが混在し、間違った情報になっている虞がある。このため、この書戻しが中断された１つの情報より１つ前までは今回（Ｎ回目）の新しい情報を採用し、この１つの情報より１つ後の情報以降については前回（Ｎ−１回目）の１回分旧い情報を採用する。そして、計数値ＣＴに相当する書戻し中断箇所の情報については、各コントローラー４１，４２から定期又は不定期にホスト装置１２０に送信してホスト記憶部１２０Ｍに保存されていたデータＤを利用してデータＤを修復する。
【０２２２】
データＤの書戻し処理では、相対的に更新頻度の高い稼働情報データＤ１が先に書き戻され、相対的に更新頻度の低い調整情報データＤ２が後から書き戻される。このため、前回（Ｎ−１回目）の１回分旧いデータが使用されるのが、相対的に更新頻度の低い調整情報データＤ２になる可能性が高い。このため、１回分旧いデータが使用されても、実質的に新しい情報と同じ情報に修復できる可能性が高い。
【０２２３】
この第２実施形態においても、以下の効果を得ることができる。
（１３）印刷手段を分担して制御する複数のコントローラー４１，４２を備えたプリンター１１において、電源オン時に、カウンター１５１，１５３の計数値ＣＴを確認し、不揮発性メモリー５５Ａ，５５Ｂのうち計数値ＣＴが書戻し完了値Ｂとなったカウンター側の不揮発性メモリーのデータＤをＲＡＭ５４の第１記憶部１３１に書き込む。よって、電源オン時に、不揮発性メモリーから正しいデータをＲＡＭ５４に書き込むことができる。
【０２２４】
（１４）電源オン時に、カウンター１５１，１５３のうち一方が書戻し完了値Ｂでなかった場合、計数値ＣＴが書戻し完了値Ｂとなっているカウンター側の不揮発性メモリーのデータＤを、コントローラー４１，４２の各ＲＡＭ５４の第１記憶部１３１に書き込む。よって、不意な電源遮断やシステムダウン（例えばハングアップ等）に起因して、コントローラー４１，４２の一方で書戻し処理が中断された場合でも、他方のコントローラーの不揮発性メモリーのデータＤを利用して一方のコントローラーのＲＡＭ５４の第１記憶部１３１に正しいデータＤを書き込むことができる。
【０２２５】
（１５）電源オン時に、カウンター１５１，１５３の両方が書戻し完了値Ｂでなかった場合、計数値ＣＴの大きい方のカウンター側の不揮発性メモリーのデータＤのうち計数値ＣＴと対応する箇所の一部の情報を除くデータＤに、ホスト記憶部１２０Ｍに保存されたデータＤのうち計数値ＣＴと対応する箇所の情報を補完することにより、データＤを修復した。よって、両コントローラー４１，４２で書戻しが中断された場合でも、電源オン時に、比較的正しく修復されたデータＤをコントローラー４１，４２の各ＲＡＭ５４の第１記憶部１３１に書き込むことができる。
【０２２６】
なお、上記実施形態は以下のような形態に変更することもできる。
・データＤの一部のみを複数の記憶部に書き戻す構成でもよい。図１９に示すように、不揮発性メモリー５５には、データＤのうち稼働情報データＤ１を記憶するための記憶領域として第１記憶領域１４５及び第２記憶領域１４６を備え、調整情報データＤ２を記憶するための記憶領域として第３記憶領域１４７を備えている。この不揮発性メモリー５５の先頭領域には、第１記憶領域１４５へ書戻されたデータ量を計数するための第１カウンター１４１と、第２記憶領域１４６へ書戻されたデータ量を計数するための第２カウンター１４２とが設けられている。さらに不揮発性メモリー５５には、第１及び第２記憶領域１４５，１４６のうち、更新されたばかりのデータを記憶する記憶領域がどちらであるかを識別するための識別情報として更新フラグＦが設けられている。稼働情報データＤ１は毎回その書戻し先が交互に切り換えられ、第１記憶領域１４５と第２記憶領域１４６に交互に書き戻される。また、調整情報データＤ２は常に第３記憶領域１４７に書き戻される。この構成によれば、データＤのうち調整情報データＤ２を記憶するための記憶領域が第３記憶領域１４７の一面で済むので、不揮発性メモリー５５の記憶容量を有効に活用できる。よって、不揮発性メモリー５５にデータＤの記憶に使用できる容量をより多く確保できる。なお、調整情報データＤ２は、ユーザーがプリンター１１の調整機能を動作させたときに限り、更新される種類の情報なので、プリンター１１の稼働の度に更新される訳ではなく、更新頻度は極めて低い。従って、仮にホスト記憶部１２０Ｍから取得しても、正常時と同じ調整情報データＤ２をＲＡＭ５４に書き込むことができる。
【０２２７】
・書込みタスク部９１による書込み処理の実施タイミングは電源投入時（電源オン時）に限定されない。プリンター１１の稼働中において定期的又は不定期に書込み処理を行ってもよい。この構成でも、書戻しを完了した正しいデータを不揮発性メモリー５５からＲＡＭ５４に書き込むことができる。
【０２２８】
・書戻し手段は、データの書戻し先を交互に書き戻す構成に限定されない。例えば、各記憶部のうち同一の記憶部に２回以上連続して書き戻してもよい。この場合、各記憶部毎に連続書戻し回数は同じであっても異なっていてもよい。要するに、書き戻すタイミングがずれていれば足りる。また、直近に書戻しを完了した記憶部を、更新フラグＦ等により特定できればよい。
【０２２９】
・記憶部は２個に限定されない。記憶部を例えば３個以上の複数個設けてもよい。この場合、書戻し先の記憶部を所定の順番で切り換えてもよいし、順番をランダムにして切り換えてもよい。
【０２３０】
・第２実施形態におけるデータ修復処理は、書戻しが中断されたデータＤと計数値ＣＴの情報などをプリンター１１からホスト装置１２０へ送信し、ホスト制御部１２５がその受信した情報と、ホスト記憶部１２０ＭのデータＤとを用いて行ってもよい。そして、ホスト制御部１２５から受信した修復済みのデータＤをＲＡＭ５４に書き込む構成とする。
【０２３１】
・書込みタスク部９１（コピー手段）が起動したときにカウンター１４１，１４２，１５１，１５３の計数値ＣＴが書戻し完了値Ｂに達する前の中間値（Ａ値でもＢ値でもない計数値）であり書戻し途中であった場合は、そのときの計数値ＣＴから把握できる書戻しが終わっている位置までのデータを第１記憶部１３１から第２記憶部１３２へコピーしてもよい。
【０２３２】
・書戻しタスク部９２による書戻し処理は、電源遮断時にのみ行ってもよい。
・電源遮断時に、カウンターの計数値ＣＴを確認し、書戻し完了値Ｂであれば、書戻し処理を行わない構成としてもよい。この構成によれば、不意な電源遮断時の書戻し処理が中断されることを回避し易くなる。
【０２３３】
・インクカートリッジＩＣの記憶素子４７を不揮発性メモリーとして、データ記憶処理装置を構成してもよい。
・計数手段の一例としてのカウンターは適宜のビット数に変更してもよい。要するに、書戻し処理が中断された場合に、データＤのどの箇所まで書戻しが完了しているかを把握できるビット数であればよい。例えば２〜７ビットのうち任意のビット数のカウンターでもよい。さらに１バイトを超えてもよく、例えば９ビット、１０ビット、さらには２バイトのカウンターを採用することもできる。
【０２３４】
・計数手段の一例としてのカウンターの計数処理は、計数値のデクリメントでもよい。例えば書戻し開始値Ａを最大値（例えば「２５５」）、書戻し完了値Ｂを最小値（例えば「０」）とし、最大値から書戻し処理を開始するとともに書戻し処理が進むに連れて計数値ＣＴをデクリメントする。
【０２３５】
・書戻し完了値Ｂは、最大値の「２５５」（Ｂ＝２５５）又は最小値の「０」（Ｂ＝０）に限定されない。書戻し完了値Ｂを例えば最小値と最大値の間の中間値としてもよい。要するに書戻しが完了したことを判別できる値であれば足りる。
【０２３６】
・データＤのデータサイズを２５５で分割したデータ量を１単位としてカウンター１４１，１４２，１５１，１５３の計数処理を行ったが、これに限定されない。つまりＮビットのカウンターであれば、データの最大容量（データ記憶領域）の分割数は「２のＧ乗−１」に限定されず、「２のＧ乗−１」未満の値でもよい。例えば１バイトカウンターであれば、２００とし、２０１〜２５５を他の用途の判定値又は他の用途の計数値のために使用してもよい。
【０２３７】
・コピーされたデータ量に応じた計数値を取得できるように、コピー処理時にもカウンターの計数処理を行ってもよい。
・通常時のタスク部の優先順位は、図５（ａ）に示す順序に限定されない。例えば、書戻しタスク部９２の優先順位は、印刷系タスク部８１〜８９のうち記録系タスク部８１〜８３，８８よりも低く、印刷系タスク部のうちその他のタスク部８４〜８７よりも高く設定されてもよい。つまり、書戻しタスク部９２を、印刷系タスク部のうちコマンド処理系のタスク部８４〜８７（搬送系・キャリッジ駆動系のタスク部を含む）よりも高い優先順位に設定する。この構成によれば、記録系処理中に書戻しタスク部９２による割り込みが発生せず、記録系処理の遅延が発生し難い。また、書戻しタスク部９２の優先順位が、タスク部８４〜８７よりも高いので、印刷動作中における記録系処理の合間に、搬送系やキャリッジ駆動系の処理動作に優先して、データＤの書戻し処理を行うことができる。よって、印刷スループットの低下の抑制を図りつつ、データＤの書戻し頻度を高めることができる。この結果、電源遮断時における不揮発性メモリー５５のデータＤの信頼性を高めることができ、またデータ修復時における修復データの信頼性も高めることができる。
【０２３８】
・第１記憶部１３１（ミラー記憶領域）のデータ更新の有無を監視する監視部（監視手段）を設ける。そして、監視部からデータ更新の旨の通知を受け付けたときに書戻しタスク部９２は起動し、そのときカウンター１４１，１４２，１５１，１５３が書戻し開始値Ａであれば、第２記憶部１３２のデータを不揮発性メモリー５５へ書き戻す書戻し処理を行う構成とする。上記の監視部は、データ更新の旨を書込みタスク部９１（コピー手段）に通知し、書込みタスク部９１が更新の旨の通知を受け付けると、コピー処理を開始する構成も採用できる。さらにコピー処理を完了すると、書込みタスク部９１がコピー完了通知を書戻しタスク部９２へ送り、書戻しタスク部９２がコピー完了通知を受け付けると起動される構成としてもよい。
【０２３９】
・書込みタスク部９１が、データの書込み機能とコピー機能とを兼ねる構成に替え、不揮発性メモリー５５のデータＤを第１記憶部１３１に書き込む書込みタスク部（書込み手段）と、第１記憶部１３１のデータＤを第２記憶部１３２にコピーするコピータスク部（コピー手段）とを別々に設けてもよい。この場合、書込みタスク部とコピータスク部との優先順位を異ならせてもよい。
【０２４０】
・書戻しタスク部の優先順位は適宜変更してもよい。例えば書戻しタスクの優先順位を、記録系タスク部に属する一部のタスク部よりも低く、かつ記録系タスク部に属する他の一部のタスク部よりも高くしてもよい。このように書戻しタスク部は、記録系タスク部に属する全てのタスク部よりも優先順位が低いことには限定されず、記録系タスク部が複数のタスクから構成される場合は、記録系タスク部に属する少なくとも１つのタスク部よりも優先順位が低ければ足りる。この場合、その優先順位の高い１つのタスク部が書戻しタスク部より優先的に起動することで、記録系処理の遅延を回避し易くなる。また、書戻しタスクの優先順位を、キャリッジ駆動系と搬送駆動系タスクとの間に設定してもよい。
【０２４１】
・コピー手段は、印刷制御手段が複数のタスク部から構成される場合、その全てのタスク部よりも優先順位が高い必要はなく、そのうち第１記憶部に書込みを行う全てのタスク部よりも優先順位が高ければ足りる。この構成によっても、コピー手段によるコピー途中に第１記憶部のコピー元データが印刷制御手段を構成するタスク部によって書き替えられることは回避できる。例えば、書込みタスク部９１（コピー手段）の優先順位を、印刷系タスク部に属する複数のタスク部のうち、第１記憶部に書込みアクセスする一部のタスク部より高く設定とする。この構成であっても、コピー途中にコピー元データが書き替えられる事態を回避できる。
【０２４２】
・電源遮断時には、書戻しタスク部９２を書込みタスク部９１よりも高い優先順位としてもよい。この場合、コピー処理の中断もありうるが、計数値ＣＴが書戻し完了値Ｂになっているので、そのコピー中断のデータが書戻しされることがないので、何ら問題はない。印刷動作中の電源遮断の場合は、不揮発性メモリー５５には最新ではないが印刷動作開始直前の比較的新しいデータＤが保存される。
【０２４３】
・書込みタスク部９１及び書戻しタスク部９２の起動優先順位は適宜変更してよい。例えば書込みタスク部９１及び書戻しタスク部９２を共に、記録系タスク部よりも低い優先順位としたり、印刷系タスク部よりも低い優先順位としたりしてもよい。さらに例えば書込みタスク部９１及び書戻しタスク部９２を共に、記録系タスク部よりも高い優先順位としたり、印刷系タスク部よりも高い優先順位としたりしてもよい。
【０２４４】
・書込みタスク部９１（コピー手段）は、書戻し完了通知をトリガーとしてコピーを開始する構成に限定されない。例えば書戻し手段（書戻しタスク部９２）が起動されると、まず書込みタスク部９１（コピー手段）にコピー要求を送り、書込みタスク部９１はこのコピー要求を受け付けるとコピー処理を開始する。書込みタスク部９１がコピーを終えてプリンター１１が待機状態になると、書戻しタスク部９２が再び起動されてこの再起動のときに書戻しタスク部９２は第２記憶部１３２のデータＤを不揮発性メモリー５５に書戻す。この構成によれば、最新のデータをコピーした直後に書戻しを行うことができる。前記実施形態の方法では、印刷が終わって待機状態になった最初は第１記憶部１３１のデータＤが印刷開始前にコピーされた旧いデータになるので、最初の書戻しで旧いデータの書き戻しを行う。これに対してこの変形例の方法であれば、最初の書戻しで最新データを書き戻すことができる。
【０２４５】
・ＯＳはリアルタイムＯＳに限定されない。その他のＯＳを採用してもよい。要するに、複数のタスクのうち優先度の高いタスクにＣＰＵの実行権を割り当てる機能を有するＯＳであればよい。
【０２４６】
・電源オフ時にタスク優先順位を変更しない構成も採用できる。例えば電源オフ時に優先的に起動される緊急タスク部が書戻し処理を行ってもよい。
・データ記憶処理装置は、例えばＣＰＵによるソフトウェアではなく、ＡＳＩＣ等の集積回路によるハードウェアで構成してもよい。さらには、ソフトウェアとハードウェアとの協働により構成してもよい。また、ソフトウェアで構成する場合、マルチタスク処理に限定されない。
【０２４７】
・前記実施形態において、第２の記憶手段を不揮発性メモリーとしてもよい。例えばプリンター稼働中には、プリンター本体側の不揮発性メモリー（第２の記録手段）に更新データを逐次書込み、この不揮発性メモリーのデータをインクカートリッジに実装された不揮発性の記憶素子４７（第１の記憶手段）に書き戻す構成も採用できる。例えば電源オン時には記憶素子４７からインク残量等のインク関連情報を含むデータＤを本体側の不揮発性メモリーに書き込む構成とする。
【０２４８】
・制御装置Ｃを、コントローラー４０とメカコントローラー４３とを一体とした構成としてもよい。この場合、コントローラーには、搬送制御タスク部やキャリッジ制御タスク部などのメカ駆動制御系のタスク部が追加される。この搬送制御タスク部は、搬送制御手段の一例を構成する。
【０２４９】
・印刷媒体は、紙又は樹脂などからなる長尺状のシートに限定されず、単票紙や単票状の樹脂フィルムでもよい。また、金属製フィルム、布、フィルム基板、樹脂基板、半導体ウェハなどでもよい。また、ＣＤ、ＤＶＤなどの光ディスクや磁気ディスクなどでもよい。さらに、印刷媒体はシート状に限定されず、所定の立体形状の表面に印刷できる機構を有する印刷装置の場合、そのような所定の立体形状を有する物体も含む。
【０２５０】
・印刷装置は、ラテラル式のプリンター１１に限定されず、シリアルプリンター、ラインプリンター、ページプリンターでもよい。さらにインクジェット式に限定されず、ドットインパクト式プリンター、レーザープリンターなどでもよい。
【０２５１】
・前記実施形態では、印刷装置として、インクジェット式のプリンター１１が採用されているが、インク以外の他の流体を噴射したり吐出したりする流体噴射装置を採用してもよい。また、微小量の液滴を吐出させる液体噴射ヘッド等を備える各種の液体噴射装置に流用可能である。この場合、液滴とは、上記液体噴射装置から吐出される液体の状態を言い、粒状、涙状、糸状に尾を引くものも含むものとする。また、ここでいう液体とは、液体噴射装置が噴射させることができるような材料であればよい。例えば、物質が液相であるときの状態のものであればよく、粘性の高い又は低い液状体、ゾル、ゲル水、その他の無機溶剤、有機溶剤、溶液、液状樹脂、液状金属（金属融液）のような流状体、また物質の一状態としての液体のみならず、顔料や金属粒子などの固形物からなる機能材料の粒子が溶媒に溶解、分散または混合されたものなどを含む。また、液体の代表的な例としては上記実施形態で説明したようなインクや液晶等が挙げられる。ここで、インクとは一般的な水性インクおよび油性インク並びにジェルインク、ホットメルトインク等の各種液体組成物を包含するものとする。液体噴射装置の具体例としては、例えば液晶ディスプレイ、ＥＬ（エレクトロルミネッセンス）ディスプレイ、面発光ディスプレイ、カラーフィルタの製造などに用いられる電極材や色材などの材料を分散または溶解のかたちで含む液体を噴射する液体噴射装置が挙げられる。さらに、バイオチップ製造に用いられる生体有機物を噴射する液体噴射装置、精密ピペットとして用いられ試料となる液体を噴射する液体噴射装置、捺染装置やマイクロディスペンサ等であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を噴射する液体噴射装置、光通信素子等に用いられる微小半球レンズ（光学レンズ）などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に噴射する液体噴射装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を噴射する液体噴射装置を採用してもよい。そして、これらのうちいずれか一種の液体噴射装置に本発明を適用することができる。また、流体は、トナーなどの粉粒体でもよい。なお、本明細書でいう流体には、気体のみからなるものは含まないものとする。
【符号の説明】
【０２５２】
１１…印刷装置の一例であるプリンター、１３…印刷媒体の一例であるシート、２７…キャリッジ、２９…印刷手段の構成要素の一例である記録ヘッド、４０…コントローラー、４３…メカコントローラー、４４…印刷手段の構成要素の一例である印刷用のメカニカル機構、４５…ヘッド制御ユニット（ＨＣＵ）、４６…通信回路、４７…記憶素子、５０…リニアエンコーダー、５１…ＣＰＵ、５２…ＡＳＩＣ、５３…ＲＯＭ、５４…第２の記憶手段の一例であるＲＡＭ、５５…第１の記憶手段の一例である不揮発性メモリー、５９Ａ…画像バッファー、６１…印刷手段及び搬送手段の構成要素の一例である搬送モーター、６２…印刷手段の構成要素の一例である第１ＣＲモーター、６３…印刷手段の構成要素の一例である第２ＣＲモーター、６５…電源スイッチ、６８…計数手段の一例であるカウンター、７１…制御手段の一例であるリアルタイムＯＳ、７２…制御手段の一例を構成するスケジューラー、７３…優先順位変更手段の一例である優先順位変更部、７４…タスク管理部、７５…ディスパッチ部、８１…主制御部、８２…通信部、８３…画像処理部、８４…コマンド解析部、８５…印刷タスク部、８６…メカ制御部、８７…メカ通信部、８８…ヘッド制御部、８９…インク管理部、９０…緊急タスク部、９１…書込み手段の一例である書込みタスク部、９２…書戻し手段及び修復手段の一例である書戻しタスク部、９３…ジョブ制御部、９４…デバイス制御部、９５…演算部、９７…優先順位管理テーブル、１００…印刷システム、１１０…画像生成装置、１２０…上位装置の一例であるホスト装置、１２０Ｍ…ホスト記憶部、１２２…プリンタードライバー、１２５…上位装置の一例を構成するホスト制御部、１３１…第１記憶部、１３２…第２記憶部、１４３…記憶部の一例である第１記憶領域、１４４…記憶部の一例である第２記憶領域、１５２，１５４…記憶部、Ｃ…制御装置、Ｕ２…シリアル通信ポート、ＩＣ１〜ＩＣ８…印刷材収容体の一例であるインクカートリッジ、ＰＤ…印刷データ、Ｄ…データ（印刷関連情報を含む）、ＣＴ…計数値、Ａ…書戻し開始値、Ｂ…書戻し完了値。
【図１】
0005609436.tif 000002
【図２】
0005609436.tif 000003
【図３】
0005609436.tif 000004
【図４】
0005609436.tif 000005
【図５】
0005609436.tif 000006
【図６】
0005609436.tif 000007
【図７】
0005609436.tif 000008
【図８】
0005609436.tif 000009
【図９】
0005609436.tif 000010
【図１０】
0005609436.tif 000011
【図１１】
0005609436.tif 000012
【図１２】
0005609436.tif 000013
【図１３】
0005609436.tif 000014
【図１４】
0005609436.tif 000015
【図１５】
0005609436.tif 000016
【図１６】
0005609436.tif 000017
【図１７】
0005609436.tif 000018
【図１８】
0005609436.tif 000019
【図１９】
0005609436.tif 000020