(57)【要約】【課題】不揮発メモリの寿命がなくなることが原因で記録装置が使用できなくなってしまうことを抑制すること。【解決手段】  本発明は、揮発メモリと、ブロック単位でデータの書換えが行われ、書換え回数に上限がある不揮発メモリと、前記揮発メモリ及び前記不揮発メモリの、印刷データを一時的に格納するスプールバッファとしての使用を管理する管理手段と、を有する記録装置であって、前記管理手段は、前記不揮発メモリの不良ブロックの状態を示す状態情報とは異なる前記不揮発メモリの推定寿命に基づき、前記不揮発メモリの使用を制限することを特徴とする記録装置である。【選択図】図８
2019179292.tif 000002
【特許請求の範囲】
【請求項１】
揮発メモリと、
ブロック単位でデータの書換えが行われ、書換え回数に上限がある不揮発メモリと、
前記揮発メモリ及び前記不揮発メモリの、印刷データを一時的に格納するスプールバッファとしての使用を管理する管理手段と、
を有する記録装置であって、
前記管理手段は、前記不揮発メモリの不良ブロックの状態を示す状態情報とは異なる前記不揮発メモリの推定寿命に基づき、前記不揮発メモリの使用を制限することを特徴とする記録装置。
【請求項２】
前記推定寿命を導出する導出手段を更に有することを特徴とする請求項１に記載の記録装置。
【請求項３】
前記不揮発メモリは、第１の記憶方式と第２の記憶方式との何れかでデータを記憶することが可能であり、
前記導出手段は、前記不揮発メモリで採用される記憶方式に応じた前記推定寿命を導出することを特徴とする請求項２に記載の記録装置。
【請求項４】
前記導出手段は、前記不揮発メモリの各ブロックの平均書換え回数のブロック数分の総和を、該不揮発メモリの全ブロック合計の書換え耐用回数で除算することで、前記推定寿命を導出することを特徴とする請求項２又は３に記載の記録装置。
【請求項５】
前記管理手段は、前記導出した推定寿命が所定値以上の場合、前記不揮発メモリの使用を制限し、該導出した推定寿命が該所定値未満の場合、前記不揮発メモリの使用を制限しないことを特徴とする請求項４に記載の記録装置。
【請求項６】
前記推定寿命は、Ｄｅｖｉｃｅ  ｌｉｆｅ  ｔｉｍｅ  ｅｓｔｉｍａｔｉｏｎの値であることを特徴とする請求項１乃至５のいずれか１項に記載の記録装置。
【請求項７】
前記不揮発メモリと前記導出手段とは、１チップのｅＭＭＣに含まれることを特徴とする請求項２乃至５の何れかに記載の記録装置。
【請求項８】
前記揮発メモリにおける前記スプールバッファには、セキュア印刷の印刷データと非セキュア印刷の印刷データとが格納され、
前記不揮発メモリにおける前記スプールバッファには、前記セキュア印刷の印刷データが格納されることを特徴とする請求項１乃至７の何れかに記載の記録装置。
【請求項９】
前記管理手段は、前記不揮発メモリへの書込み要求を受け取った場合、又は、該不揮発メモリへの書込みが必要と判定した場合、前記不揮発メモリへの書込み処理を実行する前に、前記不揮発メモリの使用を制限するか判定する判定手段を更に有することを特徴とする請求項１乃至８の何れかに記載の記録装置。
【請求項１０】
前記不揮発メモリの使用の制限とは、該不揮発メモリの前記スプールバッファとしての使用の禁止を指すことを特徴とする請求項１乃至９の何れかに記載の記録装置。
【請求項１１】
前記前記不揮発メモリの不良ブロックの状態を示す状態情報と、前記推定寿命を示す情報は、前記不揮発メモリに保持されることを特徴とする請求項１乃至１０の何れかに記載の記録装置。
【請求項１２】
揮発メモリと、
ブロック単位でデータの書換えが行われ、書換え回数に上限がある不揮発メモリと、
前記揮発メモリ及び前記不揮発メモリの、印刷データを一時的に格納するスプールバッファとしての使用を管理する管理手段と、
を有する記録装置の制御方法であって、
前記管理手段が、前記不揮発メモリの不良ブロックの状態を示す状態情報とは異なる前記不揮発メモリの推定寿命に基づき、前記不揮発メモリの使用を制限するステップを有することを特徴とする制御方法。
【請求項１３】
コンピュータに、請求項１２に記載の方法を実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置、その制御方法、及びプログラムに関し、具体的には、印刷データを記録装置にスプールする技術に関する。
【背景技術】
【０００２】
オフィスで共用するプリンタにおいて、ユーザが印刷データを送信した後、実際にプリンタの所に行くまで印刷物を出力せず、ユーザがプリンタの前で印刷出力を指示したタイミングで印刷物の出力を開始する方式が採用されることがある。このような印刷方式を情報セキュリティの観点から「セキュア印刷」と呼称する。これに対し、前述したような印刷データがプリンタに送られたタイミングで印刷物の出力を開始する方式を「非セキュア印刷」と呼称する。
【０００３】
セキュア印刷可能な環境を提供するためには、プリンタが、印刷データをすぐに印刷出力せずに一時的に格納する手段を備える必要がある。
【０００４】
なお、一般に印刷データを一時的に格納しておくことをスプールと呼び、スプールデータ格納用のメモリ領域をスプールバッファと呼び、プリンタがスプールバッファとしてＮＡＮＤフラッシュを使用することも考えられる。
【０００５】
ここでＮＡＮＤフラッシュのように書換え回数に制限がある不揮発メモリを制御する方法が特許文献１に開示されている。特許文献１では、書換え回数に制限がある不揮発メモリのブロックのうちの不良ブロックを検出し、該検出した不良ブロックの数が所定数に達した場合、該不揮発メモリへの書込みを規制する方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５５４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１では、不揮発メモリ内の不良ブロック数を正確に把握できることが前提となっているが、昨今普及しているＮＡＮＤ応用製品では不良ブロック数を把握できない物も存在している。例えばＮＡＮＤ応用製品には、Ｅｍｂｅｄｄｅｄ Ｍｕｌｔｉ Ｍｅｄｉａ Ｃａｒｄ（以下ｅＭＭＣ）と呼ばれる物が存在する。ｅＭＭＣは、ＮＡＮＤフラッシュコントローラとＮＡＮＤフラッシュメモリとが１チップで構成され、メモリ部の管理、制御を内部で独立して行うことを可能としている。ｅＭＭＣを使用することで、プリンタ制御部ではウェアレベリング等の煩雑な処理を気にすること無く、書込み、読出し、消去等をコマンドとして発行することで容易に行うことが可能となるという利点がある。但し、このようなＮＡＮＤ応用製品では、ＮＡＮＤフラッシュコントローラが行っている管理、制御の内容をプリンタ制御部が知るために利用可能な手段が限定的となっており、正確な不良ブロック数を知る手段が用意されていない。ｅＭＭＣの場合、プリンタ制御部は、ｅＭＭＣ内で発生した不良ブロックへの代替ブロック置き換えに依り代替ブロックの８０％が使用された時点か、ほぼ枯渇状態となり緊急の対処が必要になった時点で、プリンタ制御部は、かかる不良ブロックの情報を検出する。つまり検出した時点では不良ブロックが既に多数発生した状態であり、ウェアレベリングにより各ブロックが均一に使用されることを考慮すると、他のブロックも近々に不良ブロック化する可能性が高くなっている。そのため、不良ブロックの情報を検出した時点で不揮発メモリへの書込み制限を行ったとしても、プリンタ自体が近く動作できなくなるという問題を回避できないおそれがあった。
【０００８】
そこで本発明は、上記の課題に鑑み、不揮発メモリの寿命を延ばし、記録装置の仕様で規定される製品寿命に達する前に、不揮発メモリの寿命がなくなることが原因で記録装置が使用できなくなってしまうことを抑制することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、揮発メモリと、ブロック単位でデータの書換えが行われ、書換え回数に上限がある不揮発メモリと、前記揮発メモリ及び前記不揮発メモリの、印刷データを一時的に格納するスプールバッファとしての使用を管理する管理手段と、を有する記録装置であって、前記管理手段は、前記不揮発メモリの不良ブロックの状態を示す状態情報とは異なる前記不揮発メモリの推定寿命に基づき、前記不揮発メモリの使用を制限することを特徴とする記録装置である。
【発明の効果】
【００１０】
本発明により、不揮発メモリの寿命がなくなることが原因で記録装置が使用できなくなってしまうことを抑制することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】記録装置が待機状態にあるときの図
【図２】記録装置の制御構成を示すブロック図
【図３】コントローラユニットの詳細な構成を示すブロック図
【図４】メモリ領域の管理手法の説明図
【図５】ｅＭＭＣとメインコントローラとの接続形態を示すブロック図
【図６】Ｐｒｅ ＥＯＬ Ｉｎｆｏｒｍａｔｉｏｎの説明図
【図７】Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎの説明図
【図８】不揮発メモリに対するスプールデータ書込み処理のフローチャート
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
【００１３】
［第１実施形態］
＜記録装置の構成について＞
図１は、本実施形態で使用するインクジェット記録装置１（以下、記録装置１）の内部構成図である。図において、ｘ方向は水平方向、ｙ方向は後述する記録ヘッド８において吐出口が配列する方向、ｚ方向は鉛直方向をそれぞれ示す。
【００１４】
記録装置１は、プリント部２とスキャナ部３を備える複合機であり、記録動作と読取動作に関する様々な処理を、プリント部２とスキャナ部３で個別にあるいは連動して実行することができる。スキャナ部３は、ＡＤＦ（オートドキュメントフィーダ）とＦＢＳ（フラットベッドスキャナ）を備えており、ＡＤＦで自動給紙される原稿の読み取りと、ユーザによってＦＢＳの原稿台に置かれた原稿の読み取り（スキャン）を行うことができる。なお、本実施形態はプリント部２とスキャナ部３を併せ持った複合機であるが、スキャナ部３を備えない形態であってもよい。図１は、記録装置１が記録動作も読取動作も行っていない待機状態にあるときを示す。
【００１５】
プリント部２において、筐体４の鉛直方向下方の底部には、記録媒体（カットシート）Ｓを収容するための第１カセット５Ａと第２カセット５Ｂが着脱可能に設置されている。第１カセット５ＡにはＡ４サイズまでの比較的小さな記録媒体が、第２カセット５ＢにはＡ３サイズまでの比較的大きな記録媒体が、平積みに収容されている。第１カセット５Ａ近傍には、収容されている記録媒体を１枚ずつ分離して給送するための第１給送ユニット６Ａが設けられている。同様に、第２カセット５Ｂ近傍には、第２給送ユニット６Ｂが設けられている。記録動作が行われる際にはいずれか一方のカセットから選択的に記録媒体Ｓが給送される。
【００１６】
搬送ローラ７、排出ローラ１２、ピンチローラ７ａ、拍車７ｂ、ガイド１８、インナーガイド１９、及びフラッパ１１は、記録媒体Ｓを所定の方向に導くための搬送機構である。搬送ローラ７は、記録ヘッド８の上流側および下流側に配され、不図示の搬送モータによって駆動される駆動ローラである。ピンチローラ７ａは、搬送ローラ７と共に記録媒体Ｓをニップして回転する従動ローラである。排出ローラ１２は、搬送ローラ７の下流側に配され、不図示の搬送モータによって駆動される駆動ローラである。拍車７ｂは、記録ヘッド８の下流側に配される搬送ローラ７および排出ローラ１２と共に記録媒体Ｓを挟持して搬送する。
【００１７】
ガイド１８は、記録媒体Ｓの搬送経路に設けられ、記録媒体Ｓを所定の方向に案内する。インナーガイド１９は、ｙ方向に延在する部材で湾曲した側面を有し、当該側面に沿って記録媒体Ｓを案内する。フラッパ１１は、両面記録動作の際に、記録媒体Ｓが搬送される方向を切り替えるための部材である。排出トレイ１３は、記録動作が完了し排出ローラ１２によって排出された記録媒体Ｓを積載保持するためのトレイである。
【００１８】
本実施形態の記録ヘッド８は、フルラインタイプのカラーインクジェット記録ヘッドであり、記録データに従ってインクを吐出する吐出口が、図１におけるｙ方向に沿って記録媒体Ｓの幅に相当する分だけ複数配列されている。記録ヘッド８が待機位置にあるとき、記録ヘッド８の吐出口面８ａは、図１のようにキャップユニット１０によってキャップされている。記録動作を行う際は、後述するプリントコントローラ２０２によって、吐出口面８ａがプラテン９と対向するように記録ヘッド８の向きが変更される。プラテン９は、ｙ方向に延在する平板によって構成され、記録ヘッド８によって記録動作が行われる記録媒体Ｓを背面から支持する。
【００１９】
インクタンクユニット１４は、記録ヘッド８へ供給される４色のインクをそれぞれ貯留する。インク供給ユニット１５は、インクタンクユニット１４と記録ヘッド８を接続する流路の途中に設けられ、記録ヘッド８内のインクの圧力及び流量を適切な範囲に調整する。本実施形態では循環型のインク供給系を採用しており、インク供給ユニット１５は記録ヘッド８へ供給されるインクの圧力と記録ヘッド８から回収されるインクの流量を適切な範囲に調整する。
【００２０】
メンテナンスユニット１６は、キャップユニット１０とワイピングユニット１７を備え、所定のタイミングにこれらを作動させて、記録ヘッド８に対するメンテナンス動作を行う。
【００２１】
図２は、記録装置１における制御構成を示すブロック図である。制御構成は、主にプリント部２を統括するプリントエンジンユニット２００と、スキャナ部３を統括するスキャナエンジンユニット３００と、記録装置１全体を統括するコントローラユニット１００とによって構成されている。プリントコントローラ２０２は、コントローラユニット１００のメインコントローラ１０１の指示に従ってプリントエンジンユニット２００の各種機構を制御する。スキャナエンジンユニット３００の各種機構は、コントローラユニット１００のメインコントローラ１０１によって制御される。以下に制御構成の詳細について説明する。
【００２２】
コントローラユニット１００において、ＣＰＵにより構成されるメインコントローラ１０１は、ＲＯＭ１０７に記憶されているプログラムや各種パラメータに従って、ＲＡＭ１０６をワークエリアとしながら記録装置１全体を制御する。例えば、ホストインターフェース（以下、インターフェースをＩＦと略記する）１０２またはワイヤレスＩＦ１０３を介してホスト装置４００から印刷ジョブが入力されたとする。この場合、メインコントローラ１０１の指示に従って、画像処理部１０８が受信した画像データに対して所定の画像処理を施す。そして、メインコントローラ１０１はプリントエンジンＩＦ１０５を介して、画像処理を施した画像データをプリントエンジンユニット２００へ送信する。
【００２３】
尚、記録装置１は無線通信や有線通信を介してホスト装置４００から画像データを取得しても良いし、記録装置１に接続された外部記憶装置（ＵＳＢメモリ等）から画像データを取得しても良い。無線通信や有線通信に利用される通信方式は限定されない。例えば、無線通信に利用される通信方式として、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）が適用可能である。また、有線通信に利用される通信方式としては、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等が適用可能である。また、例えばホスト装置４００から読取コマンドが入力されると、メインコントローラ１０１は、スキャナエンジンＩＦ１０９を介してこのコマンドをスキャナ部３に送信する。
【００２４】
操作パネル１０４は、ユーザが記録装置１に対して入出力を行うための機構である。ユーザは、操作パネル１０４を介してコピーやスキャン等の動作を指示したり、印刷モードを設定したり、記録装置１の情報を認識したりすることができる。
【００２５】
プリントエンジンユニット２００において、ＣＰＵにより構成されるプリントコントローラ２０２は、ＲＯＭ２０３に記憶されているプログラムや各種パラメータに従って、ＲＡＭ２０４をワークエリアとしながら、プリント部２が備える各種機構を制御する。コントローラＩＦ２０１を介して各種コマンドや画像データが受信されると、プリントコントローラ２０２は、これを一旦ＲＡＭ２０４に保存する。記録ヘッド８が記録動作に利用できるように、プリントコントローラ２０２は画像処理コントローラ２０５に、保存した画像データを記録データへ変換させる。記録データが生成されると、プリントコントローラ２０２は、ヘッドＩＦ２０６を介して記録ヘッド８に記録データに基づく記録動作を実行させる。この際、プリントコントローラ２０２は、搬送制御部２０７を介して図１に示す給送ユニット６Ａ、６Ｂ、搬送ローラ７、排出ローラ１２、フラッパ１１を駆動して、記録媒体Ｓを搬送する。プリントコントローラ２０２の指示に従って、記録媒体Ｓの搬送動作に連動して記録ヘッド８による記録動作が実行され、印刷処理が行われる。
【００２６】
ヘッドキャリッジ制御部２０８は、記録装置１のメンテナンス状態や記録状態といった動作状態に応じて記録ヘッド８の向きや位置を変更する。インク供給制御部２０９は、記録ヘッド８へ供給されるインクの圧力が適切な範囲に収まるように、インク供給ユニット１５を制御する。メンテナンス制御部２１０は、記録ヘッド８に対するメンテナンス動作を行う際に、メンテナンスユニット１６におけるキャップユニット１０やワイピングユニット１７の動作を制御する。
【００２７】
スキャナエンジンユニット３００においては、メインコントローラ１０１が、ＲＯＭ１０７に記憶されているプログラムや各種パラメータに従って、ＲＡＭ１０６をワークエリアとしながら、スキャナコントローラ３０２のハードウェアリソースを制御する。これにより、スキャナ部３が備える各種機構は制御される。例えば、コントローラＩＦ３０１を介してメインコントローラ１０１がスキャナコントローラ３０２内のハードウェアリソースを制御することにより、ユーザによってＡＤＦに搭載された原稿を、搬送制御部３０４を介して搬送し、センサ３０５によって読み取る。そして、スキャナコントローラ３０２は読み取った画像データをＲＡＭ３０３に保存する。尚、プリントコントローラ２０２は、前述したように取得された画像データを記録データに変換することで、記録ヘッド８に、スキャナコントローラ３０２で読み取った画像データに基づく記録動作を実行させることが可能である。
【００２８】
＜コントローラユニットの詳細な構成について＞
図３は、図２に示した構成要素のうち、特に本実施形態にとって重要な構成要素を抜粋したブロック図である。尚、図３では、図２に示したメインコントローラ１０１、ホストＩＦ１０２、ＲＡＭ１０６、ＲＯＭ１０７を夫々、メインコントローラ３００１、ホストＩＦ３００２、ＲＡＭ３００３、ＲＯＭ３００４と記載している。
【００２９】
ホストＩＦ３００２を介して受信した印刷データは一旦、記録装置１のスプールバッファに格納される。前述の通り印刷方式にはセキュア印刷と非セキュア印刷があり、これらの方式の混在での利用を考慮すると、セキュア印刷用と非セキュア印刷用との２種類のスプールバッファを準備する必要がある。
【００３０】
非セキュア印刷では、プリントエンジンユニット２００が空き次第、順次出力が開始される。そのため、非セキュア印刷用の印刷データが記録装置１に滞留する時間は短く、複数ユーザが印刷データを送信するような場合であっても、小容量のスプールバッファで処理可能である。従って、非セキュア印刷用のスプールバッファは、ＲＡＭ３００３の領域のみで実現可能である。一方、セキュア印刷では、複数ユーザが印刷データを送信したが、ユーザがプリンタの前で印刷出力を指示しないような場合には、大量の印刷データが記録装置１に滞留し、大容量のスプールバッファが必要となってしまう可能性がある。従って、セキュア印刷用のスプールバッファは、ＲＡＭ３００３上及びＲＯＭ３００４の両者に確保される。
【００３１】
ＲＡＭ３００３として、記録装置１を制御するＩＣ内のＳＲＡＭを用いて良いし、該ＩＣ外のＤＲＡＭを用いても良い。尚、本実施形態では、スプールバッファは比較的大容量のメモリ領域を必要とすることから、ＤＲＡＭの使用を想定している。また、ＲＯＭ３００４として、ＮＯＲ型フラッシュやＮＡＮＤ型フラッシュを用いて良い。但し、大容量のメモリ領域の必要性という観点から、ＮＡＮＤ型フラッシュが望ましく、特に本実施形態では、ウェアレベリング等の制御を行うコントローラ部をＮＡＮＤ型フラッシュメモリと共にチップ内に内蔵したｅＭＭＣの使用を想定している。ｅＭＭＣ上のスプール領域は、ＣＰＵから直接メモリマップ上に見ることが可能な非ファイルシステム領域でも良いし、ファイルシステムを介したファイルシステム領域でも構わない。尚、本実施形態では、ｅＭＭＣ上のスプール領域は、非ファイルシステム領域であるものとする。
【００３２】
前述の通り、ＲＯＭには書換え回数の制限がある。従って、スプールデータは通常、書換え回数制限の無いＲＡＭに格納し、ＲＡＭ内に確保しているスプールバッファの容量を超えた場合のみＲＯＭに格納するといったように、ＲＯＭを補助的に使用することが望ましい。また、印刷データにはユーザの機密情報が含まれる場合があるため、特別な事情が無い限り、印刷出力された印刷データはプリンタ内から消去する事が望ましい。従って、ＲＡＭにスプールデータを格納する場合、万一印刷データを消去し損ねる事態が発生したとしても、記録装置１の電源が抜かれればＲＡＭ内の印刷データは自動的に消去されるため、都合が良い。一方、ＲＯＭにスプールデータを格納する場合、記録装置１の電源が抜かれてもＲＯＭ内の印刷データは自動的に消去されないため、セキュリティの観点からＲＡＭより不利である。また、印刷データの記録と消去という二回の書込みが発生することから、書換え回数制限の観点からも、ＲＡＭより不利である。以上のことから、図３では、セキュア印刷と非セキュア印刷との両方の方式で使用する優先度の高いバッファとして、ＲＡＭ３００３をスプールバッファ１と記載している。これに対し、セキュア印刷のみで使用する優先度の低いバッファとして、ＲＯＭ３００４をスプールバッファ２と記載している。尚、本実施形態では、セキュア印刷時のみＲＯＭ３００４をスプールバッファ２として使用し、印刷後、格納してから一定時間経過後、及び記録装置１の電源オフ時には必ず、ＲＯＭ３００４からのスプールデータの消去を実行する。また、本実施形態のスプールデータの一例は、印刷データである。
【００３３】
＜メモリ領域の管理について＞
以下、前述のＲＯＭ、ＲＡＭにおけるメモリ領域の管理について、図４を用いて説明する。図４は、揮発メモリと不揮発メモリとの夫々における、内部の領域管理の概要を示す図である。尚、図４では、図３に示したＲＡＭ３００３を揮発メモリ４０１０と記載し、ＲＯＭ３００４を不揮発メモリ４０２０と記載している。
【００３４】
揮発メモリ４０１０は、プログラム領域４０１１と、ワーク領域４０１２と、非セキュア印刷用スプール領域４０１３と、セキュア印刷用スプール領域４０１４と、その他領域４０１５とを含む。プログラム領域４０１１は不揮発メモリ４０２０からコピーされた実行プログラムが置かれる領域であり、ブート後のＣＰＵは、この領域からプログラムをフェッチし動作する。但し、実行プログラムは不揮発メモリから直接フェッチされる場合もあるため、揮発メモリにおけるプログラム領域は必ずしも必須ではない。ワーク領域４０１２は、処理中の中間データ等が置かれる。非セキュア印刷用スプール領域４０１３には、非セキュア印刷でのみ用いられるスプールデータが格納される。セキュア印刷用スプール領域４０１４には、セキュア印刷でのみ用いられるスプールデータが格納される。尚、非セキュア印刷用スプール領域４０１３とセキュア印刷用スプール領域４０１４とは、広い意味ではワーク領域の一部ととらえることが出来るが、ここではメモリ領域の管理手法について言及しているため、便宜上ワーク領域と分けて表記している。その他領域４０１５は、揮発メモリ４０１０内での管理に用いるブロック、具体的には、不良ブロックに代替するブロック等で構成されている。
【００３５】
不揮発メモリ４０２０は、プログラム格納領域４０２１と、ユーザデータ格納領域４０２２と、ジョブ履歴格納領域４０２３と、セキュア印刷用スプール領域４０２４と、その他領域４０２５とを含む。プログラム格納領域４０２１は実行プログラムの実体が格納されている。前述の通りＣＰＵは、プログラム格納領域４０２１に格納されているプログラムを揮発メモリ４０１０にコピーしてフェッチするか、不揮発メモリ４０２０から直接フェッチすることで実行する。尚、本実施形態では、プログラム格納領域４０２１に格納される実行プログラムには、記録ヘッドに対するメンテナンス動作の際に用いられる情報（メンテナンス情報とする）が含まれる。メンテナンス情報とは例えば、既定のタイミングでのメンテナンス動作を実行するためのスケジュールに関するデータである。
【００３６】
ユーザデータ格納領域４０２２には、ユーザデータが格納される。ユーザデータとは具体的には、ユーザの電話帳やアドレス帳、及び、液晶ディスプレイ（ＬＣＤ）の輝度やＵＩの音量といった記録装置１における各種設定に関する情報等である。尚、本実施形態で用いる、スプールバッファの分割、使用するスプールバッファの切り替え等に関する情報も、ユーザデータ格納領域４０２２に格納される。ここで、スプールバッファの分割に関する情報とは例えば、揮発メモリ４０１０内のスプール領域と不揮発メモリ４０２０内のスプール領域とのサイズである。また、スプールバッファの切り替えに関する情報とは例えば、スプールデータのサイズである。格納するスプールデータのサイズに応じて、セキュア印刷用スプール領域４０１４と、セキュア印刷用スプール領域４０２４との何れに格納するかが決まる。
【００３７】
ジョブ履歴格納領域４０２３には、１日や１週間といった一定期間に受信した印刷ジョブの数、印刷データのサイズ等の情報が格納される。セキュア印刷用スプール領域４０２４には、セキュア印刷でのみ用いられるスプールデータが格納され、揮発メモリ４０１０内のセキュア印刷用スプール領域４０１４の空き容量よりサイズの大きいスプールデータが発生した場合に用いられる。その他領域４０２５は、不揮発メモリ４０２０内での管理に用いるブロック、具体的には、不良ブロックに代替するブロック等で構成されている。
【００３８】
＜ｅＭＭＣの機能について＞
以下、不揮発メモリ４０２０としての使用を想定しているｅＭＭＣの機能について、図５を用いて説明する。図５は、ｅＭＭＣ５００１とメインコントローラ３００１との接続形態を示すブロック図である。
【００３９】
図５では、図４に示した不揮発メモリ４０２０を、ｅＭＭＣ５００１と記載している。ｅＭＭＣ５００１は前述の通り、ＮＡＮＤフラッシュコントローラ５００２とＮＡＮＤフラッシュメモリ５００３とが１チップで構成された物である。ＮＡＮＤフラッシュコントローラ５００２は、外部ＩＦ５００４と、管理部５００５と、ＮＡＮＤ‐ＩＦ５００６とで構成される。外部ＩＦ５００４は、コマンドに基づき、ホストとなるメインコントローラ３００１との通信を行う。管理部５００５は、ウェアレベリング、不良ブロック管理等を行う。ＮＡＮＤ‐ＩＦ５００６は、ｅＭＭＣ５００１内のＮＡＮＤフラッシュメモリ５００３との通信を行う。
【００４０】
管理部５００５は各種レジスタを有する。このレジスタには、ｅＭＭＣ５００１自身の動作条件を保持する動作条件レジスタ（ＯＣＲ）や、ｅＭＭＣ５００１の特性を示すデータ（Ｄｅｖｉｃｅ Ｓｐｅｃｉｆｉｃ Ｄａｔａ）を保持するレジスタが含まれる。尚、Ｄｅｖｉｃｅ Ｓｐｅｃｉｆｉｃ Ｄａｔａは従来、ＭＭＣカード互換によりＣａｒｄ Ｓｐｅｃｉｆｉｃ Ｄａｔａとも呼ばれるため、本明細書ではこれをＣＳＤと略記し、ＣＳＤを保持するレジスタをＣＳＤレジスタと呼ぶ。
【００４１】
ＣＳＤレジスタの中でも、半導体技術協会（ＪＥＤＥＣ）で規定され規格の更新毎に機能追加されることが多い拡張ＣＳＤレジスタは、対応機能やその設定、内部の状態情報を示す物が準備されている。特にＶｅｒｓｉｏｎ５．０以降では、不良ブロックに対応する代替ブロックの状態を示すＰｒｅ ＥＯＬ ＩＮＦＯＲＭＡＴＩＯＮ（以下ＰＲＥ＿ＥＯＬ＿ＩＮＦＯ）の項目が追加されている。
【００４２】
また、ｅＭＭＣの寿命推定を可能とするＤｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎの項目も追加されている。つまり、本実施形態の不揮発メモリ４０２０は、不揮発メモリ４０２０の不良ブロックの状態を示す状態情報（図６）と、図６とは異なる不揮発メモリ４０２０の推定寿命（図７）とを保持している。この項目では、各ブロックの平均書換え回数のブロック数分の総和を、全ブロック合計の書換え耐用回数で除算した値に対応する値として０ｘ００〜０ｘ０Ａが規定されている。Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎを使用することで、ｅＭＭＣの寿命が尽きる前に、メインコントローラ３００１が、その内部状態を検出することが可能となっている。
【００４３】
しかし、このようなレジスタを使用した場合でも、使用形態次第では不十分である。例えばＰＲＥ＿ＥＯＬ＿ＩＮＦＯで検出できる状態は、図６に示すように３段階のみのため、準備された代替ブロックの内８０%が置換え消費された時点で、当該状態が検出されても遅い場合がある。これはＮＡＮＤフラッシュの特性として書換えの耐用回数を超えたブロックが不良ブロックとなり易く、不良ブロック多発の状態では、ウェアレベリングで書換え回数が均一化されている。よって、他の正常ブロックも近く不良ブロック化する可能性が高いためである。従って、この時点で書換え頻度の高いセキュア印刷用のスプールバッファとして使用することを停止しても遅い可能性、つまり、その後の他の正常ブロックへの書換えによって正常ブロックの不良ブロック化がすぐに進行する可能性があった。このような場合、ｅＭＭＣの寿命がほぼ製品の寿命となってしまう。
【００４４】
一方、セキュア印刷用スプールバッファの主な役割としては、前述のデータ滞留によるユーザによる印刷データ投入完了までの待ち時間短縮であり、仮に待ち時間が延長されても製品として使用できなくなるよりは良いという考えが多い。そのため、製品として妥当性のあるタイミングとして、不良ブロックが発生する前、又は、各ブロックへの書換え回数が耐用回数に対して十分に余裕がある段階で、スプールバッファとしての使用を停止することが望ましい。そこで本発明では、ｅＭＭＣ５００１へのデータ書込み前に、メインコントローラ３００１は、前述のＤｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎの値を参照する。そして、参照した値が所定値以上の場合、ｅＭＭＣの寿命が近づいているとみなして、スプールバッファとしての使用を停止した上でユーザに警告を行い、製品寿命を延ばすために必要な修理対応等の準備を促す。
【００４５】
Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎでは、図７に示すように０ｘ００〜０ｘ０Ａの値を用いることで、デバイスの状態を１０段階で表現することが可能である。尚、ここで示す寿命が推定となる理由は、ウェアレベリング処理により各ブロックの書換え回数は均一化されるものの、内部状態により少なからずバラつきが発生することから、該書換え回数を全ブロックの平均値として算出するためである。
【００４６】
また、Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎは詳細には、ＴｙｐｅＡとＴｙｐｅＢとの２種類があり、各値が示す内容は前述の通り共通にＪＥＤＥＣで規定されているが、ＴｙｐｅＡとＴｙｐｅＢとの使い分けについては規定されていない。そのため、デバイスベンダ毎にそれぞれの使用方法が異なる。但し一般的には、ｅＭＭＣを構成するＮＡＮＤフラッシュメモリにおける記憶方式に合わせた形でＴｙｐｅＡとＴｙｐｅＢとを使い分ける。ここでの記憶方式とは、各メモリセルに記憶する記憶密度である。昨今、大容量化対応のため１セルに格納するデータが多ビット化している。
【００４７】
通常１セルに格納されるデータは、対象のセルに電荷が有るか無いかの２値、１ｂｉｔで判定するＳｉｎｇｌｅ−Ｌｅｖｅｌ Ｃｅｌｌ（以下ＳＬＣ）方式で記憶される。これに対し、多ビット品である、例えばＭｕｌｔｉ−Ｌｅｖｅｌ Ｃｅｌｌ（以下ＭＬＣ）方式で記憶されるデバイスでは、１セル内の電圧状態として４段階（つまり２ｂｉｔ）の何れかの状態を取り得る。そのため、ＭＬＣはＳＬＣと比較して、２倍のデータを格納できるため大容量化が容易であるというメリットがあるが、同一容量のＳＬＣと比較すると書込み時間が長くなる、ブロック単位での書換え耐用回数が低下する等のデメリットもある。尚、本実施形態では、ＭＬＣ方式のＮＡＮＤフラッシュメモリを内蔵したｅＭＭＣを使用することを想定している。
【００４８】
前述のメリット、デメリットは搭載製品都合により優先される点が異なるため、回避策の一つとして、ＭＬＣ方式のセルに対してＳＬＣと同様に２段階での電圧状態を用いてのデータ格納を可能とする疑似ＳＬＣと呼ばれる記憶方式が用意されている。そのためＤｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎのＴｙｐｅＡとＴｙｐｅＢとの内の一方は、ｅＭＭＣ内のＮＡＮＤフラッシュメモリにおけるデフォルトの記憶方式（ここではＭＬＣ方式）で記憶した場合の寿命推定を示す。また、他方は、疑似ＳＬＣ方式で記憶した場合の寿命推定を示す。
【００４９】
尚、多ビット品には８段階の電圧状態を用いることで、１セルあたり３ｂｉｔで記憶可能なＴｒｉｐｌｅ−Ｌｅｖｅｌ Ｃｅｌｌ（以下ＴＬＣ）と呼ばれる方式等もある。この場合であっても前述の場合と同様、Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎのＴｙｐｅＡとＴｙｐｅＢとの内の一方は、デフォルトの記憶方式（ここではＴＬＣ方式）で記憶した場合の寿命推定を示す。また、他方は、疑似ＳＬＣ方式に対する寿命推定を示す。
【００５０】
尚、本実施形態は前述のように、ＴｙｐｅＡとＴｙｐｅＢとのどちらが、デフォルトと疑似ＳＬＣとの何れの記憶方式で記憶した場合の寿命推定を示すか明確にしていない。何れの記憶方式を採用した場合であっても、書換え回数に上限がある不揮発メモリのスプールバッファとしての使用を、適切なタイミングで停止することを目的としている。
【００５１】
＜不揮発メモリに対するスプールデータ書込み処理について＞
ここで本実施形態における課題の一例について詳細に説明する。スプールバッファとして、揮発メモリであるＤＲＡＭ、又は、不揮発メモリであるＨＤＤ等を利用して実現されることが多い。スプールバッファは、ユーザが印刷指示を入力して印刷物を出力するまでの間、印刷データを一時的に格納する領域であり、特別な事情が無い限り、印刷出力後に印刷データを保持しておく必要は無い。特にセキュア印刷では、セキュリティの観点から印刷出力完了後は直ちにスプールバッファから印刷データを消去することが望ましいため、スプールバッファとして、揮発メモリであるＤＲＡＭが適する。
【００５２】
しかし、ＤＲＡＭはメモリ容量単価が比較的高額のため、使用容量を必要最低限に抑えることが望ましく、その限られた容量の一部をスプールバッファとして用いた場合、複数ユーザが送信してきた印刷データを格納すると不足する可能性がある。そのため、メモリ容量単価が比較的安価なＨＤＤをスプールバッファとして使用することが多いが、ＨＤＤはディスクの回転機構の経年劣化等の機械的な故障の虞があり、また、比較的大きな動作電力を必要とする等の問題がある。これらの問題を解決する手段として、ＮＡＮＤフラッシュ等の不揮発性の半導体メモリを使用することが考えられる。ＮＡＮＤフラッシュは近年、低価格化、大容量化が進んでおり、ＨＤＤに代わりプログラムデータやユーザデータの格納等に利用され、用途が拡大されている。
【００５３】
しかし、ＮＡＮＤフラッシュは書換え回数に制限があり、書換えを繰り返すことで許容書換え回数を超えたブロックは使用できなくなるという問題がある。尚、ここでの書換えとは、消去と書込みとをセットで行うことを指す。使用できなくなったブロックは不良ブロックとして扱われ、ＮＡＮＤフラッシュ内の未使用ブロックを代替のブロックとして割り当てることで、この問題に対処している。但し、代替ブロックを割り当てられないほど不良ブロックが増加すると、ＮＡＮＤフラッシュは謳われている容量のメモリとして使用できない状態になる。このため、ウェアレベリングと呼ばれる平準化処理が行われる。この平準化処理によって、各ブロックの書換えが均一化される様にＮＡＮＤフラッシュコントローラはＮＡＮＤフラッシュ内の各ブロックへの書換えの管理及び制御、並びに、代替ブロック割り当てを行う事で寿命が延びる。
【００５４】
ＮＡＮＤフラッシュコントローラは一般的にＮＡＮＤフラッシュメモリと接続され、ＣＰＵを内蔵するＡＳＩＣ内に構成されるか、又は、ＣＰＵと直接通信可能な別デバイスとしてＣＰＵと接続するように構成される。このような構成のもと、ＮＡＮＤフラッシュコントローラは、ＣＰＵからの制御に基づきＮＡＮＤフラッシュメモリの制御を行う。尚、一般的にＮＡＮＤフラッシュにおける書込み、読出しはメモリセルの集合であるページと呼ばれる単位で、消去はページの集合となるブロックと呼ばれる単位で実施することが可能である。さらに内部構造上、保存済みのデータを直接書換えることができず、書換え対象となるデータを対象ページからＤＲＡＭ等に読出し、必要箇所の書換え後に消去済みの別ページに改めて書込む必要がある。この際、書換え前のデータを格納していた元の対象ページを消去する場合には、同一ブロック内の消去対象外のデータも合わせて読出しと他のブロックへの書込みを行う必要がある。そのため、前述のようにＮＡＮＤフラッシュをスプールバッファの一部として使用した場合、基本的にスプールデータは印刷の度に変化するため消去頻度が高くなる。つまり、使われ方次第では、プリンタの製品としての寿命（耐用出力枚数等）の前に、ＮＡＮＤフラッシュが仕様上の既定容量を格納することができなくなるおそれがあった。結果、ＮＡＮＤフラッシュをプリンタの制御プログラムやログデータ等の格納にも用いる場合には、プリンタ自体が動作できなくなるおそれがあった。このような課題を図８の処理を実行することで解決することが可能となる。
【００５５】
以下、本実施形態における、不揮発メモリ内のセキュア印刷用のスプールバッファを継続して使用するか、或いは、該スプールバッファの使用を制限するかの判定を伴う、不揮発メモリに対するスプールデータ書込み処理について、図８を用いて説明する。なお、図８は、セキュア印刷データを受信した場合に開始される。
【００５６】
Ｓ８０１において、メインコントローラ３００１は、ｅＭＭＣであるＲＯＭ３００４への書込み要求を受け取り、又は、ＲＯＭ３００４への書込みが必要と判定する。例えば、メインコントローラ３００１は、受信したセキュア印刷データの全てをＲＡＭ３００３に保存できないと判定した場合、ＲＯＭ３００４への書込みが必要と判定する。
【００５７】
Ｓ８０２において、メインコントローラ３００１は、拡張ＣＳＤレジスタで保持される、Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎのＴｙｐｅＡとＴｙｐｅＢとの２項目の値を読み出す。
【００５８】
Ｓ８０３において、メインコントローラ３００１は、Ｓ８０２で読み出した値を用いて、ＲＯＭ３００４の寿命が充分残っているか判定する。具体的に本実施形態では、Ｓ８０２で読み出した２項目の値が何れも所定値を超えていないか判定する。本ステップの判定結果が真の場合、ＲＯＭ３００４の寿命が充分残っているとみなしてＳ８０４に進む一方、該判定結果が偽の場合、Ｓ８０７に進む。尚、ここでは、Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎのＴｙｐｅＡとＴｙｐｅＢとの２項目の値の夫々が、所定値を超えていないか判定しているが、本発明はこの形態に限定されない。例えば、ＴｙｐｅＡの値とＴｙｐｅＢの値とを比較し、これらの２値のうち何れか大きい方の値が所定値を超えていないか判定しても良い。例えば、メインコントローラ３００１が、ＲＯＭ３００４への問い合わせ結果として９を受信したか否かを判定しても良い。つまり、この処理は、メインコントローラ３００１が９０〜１００％デバイス寿命が使用されたことを示す値を受信したか否かの判定に相当する。
【００５９】
Ｓ８０４において、メインコントローラ３００１は、拡張ＣＳＤレジスタで保持されるＰＲＥ＿ＥＯＬ＿ＩＮＦＯの値を読み出す。
【００６０】
Ｓ８０５において、メインコントローラ３００１は、Ｓ８０４で読み出した値を用いて、代替ブロックの消費率が所定値未満か判定する。具体的には、Ｓ８０４で読み出したＰＲＥ＿ＥＯＬ＿ＩＮＦＯの値が“０ｘ０１”であるか、つまり代替ブロックの消費率が８０％未満か判定する。本ステップの判定結果が真の場合、Ｓ８０６に進む一方、該判定結果が偽の場合、Ｓ８０７に進む。尚、本ステップは、省略することも可能である。
【００６１】
Ｓ８０６において、メインコントローラ３００１は、Ｓ８０１で受け取った書込み要求に応じたＲＯＭ３００４への書込みを実行する。例えば、メインコントローラ３００１は、セキュア印刷用の印刷データをＲＯＭ３００４へ格納する。
【００６２】
Ｓ８０７において、メインコントローラ３００１は、ＲＯＭ３００４のセキュア印刷用スプールバッファとしての利用を制限する。本ステップにより、以降のＲＯＭ３００４へのスプールデータの書込みが禁止される。尚、既に、ＲＯＭ３００４内のセキュア印刷用スプール領域４０２４に格納済みの印刷データに関しては、該印刷データに基づく印刷完了後、又は、所定時間経過後の消去が実行されるまで、保持し続ける。印刷データが消去された空きブロックは、ウェアレベリング処理用領域として利用される。
【００６３】
Ｓ８０８において、メインコントローラ３００１は、操作パネル１０４を介して、ＲＯＭ３００４の寿命が近づいているためスプールバッファの容量が減少する旨の警告をユーザに通知し、修理等の製品が使用不能になる前の対応を促す。尚、操作パネル１０４を介する他、メインコントローラは、ホストＩＦ３００２経由で接続されているホスト機器におけるドライバ等を通じて、ユーザに警告を通知しても良い。以上が、本実施形態における不揮発メモリに対するスプールデータ書込み処理の内容である。
【００６４】
＜本実施形態の効果、変形例について＞
本実施形態では前述の通り、不揮発メモリの寿命が尽きる前に、不揮発メモリのスプールバッファとしての使用を制限する。これにより、不揮発メモリの寿命を延ばし、仕様上規定される記録装置の製品寿命に達する前に、不揮発メモリの寿命がなくなることが原因で記録装置が使用できなくなってしまうことを抑制することが可能になる。また、不揮発メモリの寿命が近くなっており、修理等を必要としていることをユーザに事前に通知することで、ユーザは、余裕をもって対応することが可能になる。
【００６５】
さらにセキュア印刷の性質上、保存したデータを確実に消去することが求められるが、ｅＭＭＣは代替ブロックが枯渇すると読出し専用となってしまい、寿命限界まで使用すると最後に保存したデータを消去できなくなる可能性があった。本実施形態ではこのようなデータを消去できなくなる可能性についても、書込み前に推定寿命の導出を実行するため抑制可能である。
【００６６】
尚、製品としては想定される使用条件に対応したシナリオに合わせてセキュア印刷用のスプールバッファ領域も十分なサイズを準備する必要があることは言うまでもない。つまり本実施形態は、揮発メモリ４０１０内のセキュア印刷用スプール領域４０１４にタイムアウトまで消去されないデータが常時保存され、不揮発メモリ４０２０内のセキュア印刷用スプール領域４０２４が頻繁に使用される場合等の例外的な場合に適用される。
【００６７】
また、前述の説明では、Ｄｅｖｉｃｅ ｌｉｆｅ ｔｉｍｅ ｅｓｔｉｍａｔｉｏｎのＴｙｐｅＡとＴｙｐｅＢ、及び、ＰＲＥ＿ＥＯＬ＿ＩＮＦＯの各項目の値をそれぞれ必要なタイミングで読み出し参照している。しかし、これらの値は同一の拡張ＣＳＤレジスタで保持されているから、不揮発メモリへの書込み要求を受け取った直後に、一括で読み出しておき使用しても良い。
【００６８】
さらに、前述の説明では、ｅＭＭＣを用いる場合を説明したが、ｅＭＭＣを用いない場合、例えば、メインコントローラ内にＮＡＮＤ−ＩＦとＮＡＮＤコントローラとを設け、ＮＡＮＤフラッシュメモリと直接接続する場合にも本実施形態を適用できる。この場合、ＮＡＮＤコントローラが、不良ブロックの管理、ウェアレベリング処理、及び、各ブロックの書換え回数と推定寿命との導出を実行する機能を有する。
【００６９】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７０】
１          記録装置
３００１    メインコントローラ
３００３    ＲＡＭ
３００４    ＲＯＭ
５００５    管理部
【図１】
2019179292.tif 000003
【図２】
2019179292.tif 000004
【図３】
2019179292.tif 000005
【図４】
2019179292.tif 000006
【図５】
2019179292.tif 000007
【図６】
2019179292.tif 000008
【図７】
2019179292.tif 000009
【図８】
2019179292.tif 000010