説明

印刷装置及びその制御方法

【課題】印刷データのリード速度が低下することを抑制すると共に、リードエラーを回復可能な半導体不揮発性記憶素子を搭載した印刷装置及びその制御方法を提供する。
【解決手段】装置全般の制御を司る制御部210は、高い処理スピードが要求される処理動作を実行することを検知する。制御部210は、データを記憶すると共にデータのリード時にリフレッシュする機能を持つ記憶部制御部221を備えた記憶部220からデータをリードする時にリフレッシュ動作を停止させるためのリフレッシュ停止手段を備える。制御部210は、高い処理スピードが要求される処理動作の際にリフレッシュ動作を停止させた場合に、高い処理スピードが要求される処理動作の終了後にリフレッシュ動作を許可するためのリフレッシュ許可手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶装置としての半導体不揮発性記憶素子を搭載した、印刷装置及びその制御方法に係る。例えば、記憶装置として、半導体不揮発性記憶素子であるNAND型フラッシュメモリを備えたSSD(Solid State Drive)を搭載した、半導体不揮発性記憶素子を搭載した、印刷装置及びその制御方法に関する。
【背景技術】
【0002】
従来のHDD(Hard Disk Drive)を搭載した印刷装置では、印刷動作の際に、HDDに一時的に印刷データを記憶した後、HDDから印刷データを読み出して印刷する。このため、従来の印刷装置では、HDDのアクセス速度がボトルネックとなるため、HDDを並列に動作させる構成を用いて、アクセス速度の向上を図るものがある。
【0003】
また、印刷装置では、HDDよりも、省電力、耐衝撃性、データ転送の高速化及びランダムアクセス時のリードの高速化に優れているSSDを利用したものの開発が進んでいる。このSSDは、HDD互換のインターフェース(IDE、SATA、SAS等)に接続可能であるため、印刷装置に容易に搭載できる。このため、HDDに代えてSSDを搭載した場合には、ある程度の印刷速度まで印刷処理の速度向上を図れる。さらに、印刷処理速度の向上を図る場合には、SSDを並列に動作させることで、より高速な印刷速度を実現することができる。
【0004】
このように用いられるSSDは、NAND型フラッシュメモリとして構成されているのが普通である。(以下、本明細書中では、特に断りがない限り、NAND型フラッシュメモリを用いたSSDをSSDと呼ぶ。また、以下、本明細書中では、特に断りがない限り、NAND型フラッシュメモリをフラッシュメモリと呼ぶ。)
近年、このようなフラッシュメモリでは、製造する半導体プロセスの微細化に伴い、フラッシュメモリのセル内に保持される電荷が減少する傾向にある。そのため、フラッシュメモリでは、そのセル内に少しの電荷注入や電荷抜けが起きると、データ化けといったリードエラーが起き易い。
【0005】
このリードエラーの主な原因は、以下の2つである。第1の原因は、データ リテンションと呼ばれる、時間が経つにつれ浮遊ゲートに電荷の注入または放出が起こる現象である。このデータ リテンションは、セルへの高電圧印加による浮遊ゲートの帯電やゲート酸化膜の欠損によるリークで起き、電源オフの状態でも起きる。また、フラッシュメモリでは、プログラム又はイレース回数が増えると、より多くの電荷の注入又は放出が起こるため、データ リテンションが起き易くなる。
【0006】
また、フラッシュメモリにおけるリードエラーの2つ目の原因は、リードディスターブと呼ばれる、読み出し動作を繰り返す事により発生するビットエラーである。このビットエラーは、読み出し動作を繰り返すことで、メモリセルの制御ゲートに電圧が印加され、浮遊ゲートに電荷が注入されてしい、弱くプログラムされたのと同じ状態となり、記憶データが破壊されるものである。
【0007】
このようなリードエラーを防ぐため、従来のフラッシュメモリでは、フラッシュメモリデバイスにリフレッシュ(再プログラム)管理テーブルを設ける。そして、フラッシュメモリでは、ブロック毎のデータリード回数とイレース回数を随時記憶、更新する。さらに、フラッシュメモリでは、ブロックのデータリード回数が予め決定した閾値に至ったときに、ブロックにリフレッシュフラグを設定し、このフラグに基づいてリフレッシュを実行する。従来のフラッシュメモリでは、このようなリフレッシュ動作を実行することによって、データエラーを回復することが提案されている(例えば、特許文献1参照。)。
【0008】
この他に従来のフラッシュメモリでは、フラッシュメモリコントローラに誤りビット検出及び誤り訂正回路(ECC)を設け、誤りビットが予め決定した閾値に至ったときリフレッシュ(再プログラム)を実行する。この従来のフラッシュメモリでは、リフレッシュ動作によって、データエラーを回復し、リードエラーを防ぐことが提案されている(例えば、特許文献2参照。)。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2009−223876号公報
【特許文献2】特開2004−326867号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、フラッシュメモリでは、リードエラーを防ぐためのリフレッシュ動作を行うと、リード速度が大幅に低下する。NANDフラッシュメモリは、ブロック単位(複数ページ)でイレースした後、ページ単位でプログラムするよう構成されている。このため、NANDフラッシュメモリでは、リフレッシュの際、イレースの前に同一ブロックの全ページの内容を一旦待避した上でブロックをイレースし、ブロック分だけ書き戻すことになる。例えば、NANDフラッシュメモリでは、1ブロックが64ページの場合、1ページをリフレッシュするために、64ページの読み込み時間と、1ブロックのイレース時間と、64ページのプログラム時間が必要になる。このように、リフレッシュには、1ページのリードの数十倍の時間がかかる(同時に、リフレッシュ時のイレースの動作及びプログラムの動作の増大によって、SSDの使用寿命が短くなる)。
【0011】
また、印刷装置では、印刷の際、フラッシュメモリのリフレッシュを実行して印刷データのリード速度が遅くなると、印刷速度の低下、紙詰まり、白紙排紙、印刷画像不良及び誤動作等の不具合が起きる虞がある。
【0012】
さらに、一般的なSLC型NANDフラッシュメモリでは、リードディスターブが発生する読み出し回数が10万回〜100万回程度である。MLC型NANDフラッシュメモリの場合には、1万回〜10万回程度である。このため、フラッシュメモリでは、読み出し回数が増えると、より多くのメモリセルが影響を受ける。
【0013】
また、印刷装置に搭載される印刷データを記憶するフラッシュメモリのブロックは、印刷データを書き込んだ後、読み出す回数が少ないので、リードディスターブが発生しにくい。
【0014】
しかし、起動プログラム等、頻繁に読まれるが書き込まれることが少ないフラッシュメモリのブロックの場合には、以下の理由により、リードディスターブが発生する可能性がある。
【0015】
つまり、フラッシュメモリは、マトリックス状に接続された複数のメモリセルで構成されている。フラッシュメモリでは、図示しないが、ページリード時に、選択したページ選択線に接続された非選択のメモリセル及び選択したビット選択線に接続された非選択のメモリセルも、リードディスターブの影響を受ける。ここで、フラッシュメモリでは、非選択のメモリセルにおいてページリードによる誤り検出及び誤り訂正が実行されないので、リードディスターブが悪化してしまう。そのため、フラッシュメモリでは、印刷してない時にリフレッシュを抑制してしまうとリードエラーが発生する。このとき、最悪の場合には、回復不能なリードエラーが発生する可能性がある。
【0016】
本発明の目的は、印刷データのリード速度が低下することを抑制すると共に、リードエラーを回復可能な半導体不揮発性記憶素子を搭載した、印刷装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【0017】
上記目的を達成するために、本発明の印刷装置は、装置全般の制御を司る制御部と、当該制御部に制御されてデータを記憶すると共に、前記データのリード時にリフレッシュする機能を持つ記憶部制御部を備えた記憶部と、を有する印刷装置において、前記制御部は、高い処理スピードが要求される処理動作を実行することを検知した場合に、前記記憶部から前記データをリードする時に前記リフレッシュ動作を停止させるためのリフレッシュ停止手段と、前記制御部は、高い処理スピードが要求される処理動作の際に前記リフレッシュ動作を停止させた場合に、高い処理スピードが要求される処理動作の終了後に前記リフレッシュ動作を許可するためのリフレッシュ許可手段と、を有することを特徴とする。
【発明の効果】
【0018】
本発明によれば、印刷データのリード速度が低下することを抑制すると共に、リードエラーを回復できるという効果がある。
【図面の簡単な説明】
【0019】
【図1】本発明の実施の形態に係る印刷装置で実行されるリフレッシュ管理処理の手順を示すフローチャートである。
【図2】本発明の実施の形態に係る印刷装置を備えた、印刷システムの要部の構成を示すブロック図である。
【図3】本発明の実施の形態に係る印刷装置で実行される印刷動作処理の手順を示すフローチャートである。
【図4】本発明の実施の形態に係る印刷装置で実行される複数部印刷動作処理の手順を示すフローチャートである。
【図5】本発明の実施の形態に係る印刷装置で実行されるリードディスターブを考慮して多数部を印刷する場合の複数部印刷動作処理の手順を示すフローチャートである。
【図6】本発明の実施の形態に係る印刷装置で実行されるリードディスターブを考慮して多数部を印刷する場合の他の複数部印刷動作処理の手順を示すフローチャートである。
【図7】本発明の実施の形態に係る印刷装置の記憶部における記憶内容の論理構成示す説明図である。
【図8】本発明の実施の形態に係る印刷装置で実行されるリフレッシュ動作の制御処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明の実施の形態について図面を参照しながら説明する。まず、本実施の形態に係る印刷装置を備えた印刷システムの要部について、図2のブロック図を参照して説明する。
【0021】
この図2で、200は印刷装置、201は印刷ジョブを送信するホストコンピュータである。この印刷装置200は、印刷装置200の制御を司る制御部210、印刷データを一時的に記憶するSSD220等の記憶部及び紙等の媒体に印刷する印刷部230を備える。
【0022】
この制御部210は、CPU211及びホストコンピュータと通信するためのインターフェース212を備える。このインターフェース212は、例えば、イーサーネット、USB、IEEE1284又は光ファイバー等の有線インターフェースで構成されている。また、このインターフェース212は、無線LAN、Bluetooth又は赤外線通信等の無線インターフェースで構成しても良い。
【0023】
この印刷装置200は、制御部(211〜212、214〜216)が読み書きするためのメモリ213を備える。さらに、この印刷装置200は、印刷のための画像データを生成する画像処理部214、記憶部220と接続する記憶部インターフェース215及び印刷部230と接続するインターフェース216を備える。
【0024】
この印刷装置200における記憶部220は、記憶部220内の制御を司ると共に制御部210と接続するための記憶部制御部221と、記憶素子222とを備える。
【0025】
次に、本実施の形態の印刷システムで、印刷装置200のCPU211が実行するリフレッシュ動作を管理する制御の手順について、図1のリフレッシュ管理処理のフローチャートを参照して説明する。このリフレッシュ管理処理を実行するためのプログラムは、記憶部220又は制御部210内の図示しないROM若しくはHDD等に記憶されている。
【0026】
この印刷装置200では、印刷動作が可能な状態となると、リフレッシュ管理処理が開始される。このリフレッシュ管理処理では、CPU211が、印刷装置200がプリント動作中か否かを判断し、プリント中と判定した場合(ステップS101でYES)にステップS102に進む。また、CPU211は、プリント中でないと判定した場合(ステップS101でNO)に、ステップS103に進む。
【0027】
次に、CPU211は、プリント中と判定した場合(ステップS101でYES)に、印刷装置200の記憶部220のリフレッシュ(再プログラム)動作を抑制する(ステップS102)。例えば、CPU211は、記憶部220にコマンドを送信して、記憶部220がリフレッシュ動作を抑制する設定とする。ここで、リフレッシュ動作を抑制するとは、リフレッシュを禁止する又はリフレッシュを実行するかどうかを判別するための閾値を変化させて、リフレッシュ動作が実行される頻度を下げることである。すなわち、CPU211は、リフレッシュの実行の可否を決定するための閾値を設定する閾値設定手段としての機能を備える。なお、記憶部220でリフレッシュ動作を抑制する場合の図8に示す具体例は、後述する。
【0028】
このように記憶部220でリフレッシュ動作をすることを抑制した場合には、印刷装置200の記憶部220におけるリード時のアクセス速度を向上できる。
【0029】
また、CPU211は、プリント中でないと判定した場合(ステップS101でNO)に、印刷装置200の記憶部220におけるリフレッシュ(再プログラム)を抑制しない(ステップS103)。例えば、CPU211は、記憶部220にコマンドを送信して、記憶部220のリフレッシュ動作を抑制しない設定とする。
【0030】
これにより、印刷装置200では、プリント中でない時(例えば、ファクシミリ又はスキャナの動作中等)にリフレッシュ動作を実行することとなる。よって、印刷装置200では、リフレッシュ動作の実行により記憶部220の記憶内容を回復できるので、記憶部220でリードエラーが発生することを抑制できる。
【0031】
すなわち、印刷装置200では、上述したリフレッシュ管理処理を実行することにより、プリント動作中にリード速度が大幅に低下することを防止できる。これと共に、この印刷装置200では、プリント中でない時にリフレッシュ動作を実行するので、記憶部220でリードエラーが発生することを抑制できる。
【0032】
言い換えると、印刷装置200では、印刷中の場合に、CPU211が、印刷装置の記憶部のリフレッシュ(再プログラム)を抑制する。例えば、CPU211が、記憶部220にコマンドを送信して、記憶部220のリフレッシュを抑制する設定にする。このようにリフレッシュを抑制した場合には、印刷装置200の記憶部220のリード時のアクセス速度を向上できる。
【0033】
また、印刷装置200では、印刷中でない場合に、印刷装置200の記憶部220のリフレッシュ(再プログラム)を抑制しない。例えば、CPU211が、記憶部220にコマンドを送信して、記憶部220のリフレッシュを抑制しない設定にする。この印刷装置200では、印刷していない時(例えば、ファクシミリ又はスキャナの動作中など)にリフレッシュを実行することで、記憶部220の記憶内容を回復するので、記憶部220のリードエラーが発生しにくくできる。
【0034】
次に、この印刷装置200におけるCPU211で実行される、印刷動作処理の手順について、図3のフローチャートを参照して説明する。この図3に示す印刷動作処理は、前述した図2に示すリフレッシュ管理処理の具体例に相当する。この印刷動作処理を実行するためのプログラムは、メモリ213、記憶部220又は制御部210内の図示しないROM若しくはHDDのいずれかに記憶されている。なお、ここでは、説明の便宜のため、記憶部220又は制御部210内の図示しないROM若しくはHDDの何れかに記憶されたプログラムが、メモリ213に読み出されて、CPU211で実行されるものについて説明する。
【0035】
本実施の形態の印刷システムでは、ユーザから印刷の指令を受けたホストコンピュータ201が、印刷ジョブを印刷装置200に送信することにより、印刷動作処理が開始される。この印刷動作処理が開始されると、CPU211は、記憶部インターフェース215を動作させ、印刷装置200のホストインタフェース212で受信した印刷ジョブをメモリ213に記憶する。これと共に、CPU211は、メモリ213に記憶した場合に印刷動作処理中であるので、記憶部制御部221にリフレッシュ動作を抑制する設定をする(ステップS301)。
【0036】
次に、CPU211は、ステップS302へ進む。そして、CPU211は、印刷ジョブがメモリ213に入りきらない場合又は印刷ジョブを先頭から解釈できない場合に、記憶部インターフェース215を動作させ、メモリ213上の印刷ジョブを記憶部220に記憶させる。
【0037】
次に、CPU211は、記憶部インターフェース215を動作させ、記憶部220に記憶した印刷ジョブを再度メモリ213に記憶させる(ステップS303)。次に、CPU211は、メモリ213上の印刷ジョブを解釈して、画像処理部214を動作させ、印刷データをメモリ213上に生成する(ステップS304)。
【0038】
次に、CPU211は、ステップS305へ進む。そして、CPU211は、印刷データがメモリ213に入りきらない場合又は複数部数を印刷する場合に、記憶部インターフェース215を動作させ、メモリ213に記憶した印刷データを記憶部220に記憶させる。次に、CPU211は、1ページ分の印刷データを展開した後、記憶部インターフェース215を動作させ、記憶部220に記憶した印刷データを再度メモリ213に記憶させる(ステップS306)。
【0039】
次に、CPU211は、印刷部インターフェース216を動作させ、メモリ213上の印刷データを印刷部230に送信する。すると印刷部230は、印刷データを紙などの媒体に印刷する。そして、CPU211は、印刷動作を終了し、記憶部制御部221にリフレッシュ動作を抑制しない設定をし(ステップS307)、印刷動作処理を終了する。
【0040】
このように印刷装置で印刷動作処理を実行する場合には、リフレッシュ動作によって、リード速度が大幅に低下することを抑制できる。
【0041】
なお、この印刷装置200では、前述した図2に示すリフレッシュ管理処理のステップS101又は図3に示す印刷動作処理のステップS307において、印刷された紙が全て排紙されたときに印刷終了としても良い。
【0042】
さらに、この印刷装置200では、前述した図2に示すリフレッシュ管理処理において、印刷された紙が全て排紙される前にステップS103(リフレッシュを抑制しない)に分岐しても良い。この場合には、例えば、最終部数の印刷において、印刷データを再び読み込むことが無いので、最終部数の1つ前の部数の印刷データの読み出しが終了したら、直ちに印刷終了であるとする。そして、この場合には、図2に示すリフレッシュ管理処理におけるステップS103に分岐して記憶部220のリフレッシュを禁止しないように構成しても良い。
【0043】
また、図3に示す印刷動作処理では、印刷終了後、リフレッシュを抑制しない設定をするものについて説明した。しかし、図3に示す印刷動作処理では、ステップS306において、記憶部220に記憶した印刷データを再度メモリ213に記憶させた後、リフレッシュを抑制しない設定をするように構成しても良い。また、図3に示す印刷動作処理では、ステップS307において、メモリ213上の印刷データを印刷部230に送信後、リフレッシュを抑制しない設定をするように構成しても良い。これらの場合でも、前述したと同様の効果が得られる。
【0044】
この図3に示す印刷動作処理では、印刷ジョブ及び印刷データに対して、メモリ213上に一時格納し又は処理を行い、記憶部220に格納する構成について説明した。しかし、この印刷装置200では、メモリ213上で一時格納し又は処理を行うことを一部省略して、記憶部220上で処理を行うように構成しても良い。
【0045】
この印刷装置200では、記憶部220がSSDである場合について説明したが、HDD互換インターフェース(IDE、SATA、SAS等)で接続される必然性はない。この印刷装置200では、USB、SDカード、CFカード、eMMC、MMC、UFS、OpenNAND等のフラッシュメモリを利用した記憶装置として構成しても良い。
【0046】
この印刷装置200の記憶部220は、NANDフラッシュメモリを利用した記憶装置であるものについて説明したが、記憶部220を強誘電体メモリ(FeRAM)等の読み取り回数の上限がある記憶媒体で構成しても良い。なお、NANDフラッシュメモリを用いた場合には、1万〜10万回よりも少ない部数であれば、印刷データを繰り返し読み出しても、リードディスターブが発生する可能性は低く、リフレッシュを禁止しても問題ない。しかし、この場合には、NANDフラッシュメモリの微細化に伴いリードディスターブが発生する読み出し回数が減少する傾向がある。このため、この場合には、読み出し回数をリードディスターブが発生する回数よりも少ないかどうかの判断が必要になってくる。
【0047】
次に、この印刷装置200におけるCPU211で実行される、複数部数印刷する場合の複数部印刷動作処理の手順について、図4のフローチャートを参照して説明する。なお、図4に示す複数部印刷動作処理は、前述した図1〜図3に示す印刷動作処理とほぼ同様な動作を実行するものであるので、異なる部分のみを以下に説明する。
【0048】
印刷動作が開始すると、CPU211は、部数を検知する部数判断手段としての機能を備え、複数部数(少なくとも2部以上の)印刷するか否かを判断する(ステップS401)。そして、CPU211は、複数部数印刷(2部以上印刷)すると判別した場合(ステップS401でYES)に、ステップS402に進む。また、CPU211は、その部数を検知する部数判断手段としての機能により、複数部数印刷しない(1部印刷)と判別した場合(ステップS401でNO)にステップS403に進む。ここで、図3において、S401はS101に替わってS301で実行して構わない。次に図4のステップS402において、複数部数印刷する場合、印刷装置の記憶部のリフレッシュ(再プログラム)を禁止しない。例えば、CPUが、記憶部にコマンドを送信して、記憶部のフレッシュを禁止しない設定にする。この場合には、リフレッシュを実行することで、印刷装置の記憶部の記憶内容を回復するため、印刷装置の記憶部のリードエラーが発生しにくくできる。
【0049】
次に、CPU211は、印刷装置200の記憶部220のリフレッシュ(再プログラム)動作を禁止する。このため例えば、CPU211は、記憶部220にコマンドを送信して、記憶部220のリフレッシュを禁止する設定にする。このようにCPU211がリフレッシュ動作を禁止する動作を実行した場合には、印刷装置200の記憶部220のリード時のアクセス速度を向上できる。すなわち、印刷装置200が図4に示す複数部印刷動作処理を実行する場合には、リフレッシュ動作によって、リード速度が大幅に低下することを防止できるという効果がある。
【0050】
なお、図4に示すステップS401では、複数部数(少なくとも2部以上)を印刷するか否かを判断する場合について説明したが、この部数に限定されるものではない。このステップS401では、リードディスターブが発生する繰り返し読み出し回数を上回るか、下回るかを判断するようにしても良い。
【0051】
次に、この印刷装置200におけるCPU211で実行される、リードディスターブを考慮して多数部を印刷する場合の複数部印刷動作処理の手順について、図5のフローチャートを参照して説明する。なお、図5に示す複数部印刷動作処理は、前述した図1〜図4に示す印刷の動作処理とほぼ同様な動作を実行するものであるので、異なる部分のみを以下に説明する。
【0052】
多数部の印刷動作が開始すると、CPU211は、リードディスターブを想定するため、リードディスターブが発生する可能性がある繰り返し読み出し回数と、印刷ジョブに書かれた印刷部数を比較する(ステップS501)。そして、CPU211は、リードディスターブの想定よりも、印刷部数が大きいと判定した場合(ステップS501でYES)に、ステップS502に進む。また、CPU211は、リードディスターブの想定よりも、印刷部数が小さいと判定した場合(ステップS501でNO)に、ステップS503に進む。ここで、ステップS502の処理は、前述した図4のステップS402と同様の処理であり、ステップS503の処理は、ステップS403と同様の処理であるので、これらの説明を省略する。
【0053】
次に、図5のフローチャートに示す多数部の印刷動作処理の具体例に係る、MLC型NANDフラッシュメモリのリードディスターブが発生する繰り返し読み出し回数が1万回の場合の動作例について説明する。
【0054】
この場合にCPU211は、印刷ジョブに書かれた部数が1万部数未満か否かを判断し、1万部数未満でないと判定した場合(ステップS501でNO)に、記憶部220のリフレッシュを禁止する(ステップS503)。また、CPU211は、印刷ジョブに書かれた部数が1万部数以上であると判定した場合(ステップS501でYES)に、記憶部220のリフレッシュを禁止しない(ステップS502)。
【0055】
図5に示す多数部の印刷動作処理では、ステップS502において、リフレッシュ動作が実行されるので、印刷装置200の記憶部220の記憶内容を回復することができ、この記憶部220のリードエラーの発生を抑制できる。
【0056】
また、図5に示す多数部の印刷動作処理では、ステップS503において、リフレッシュ動作を禁止するので、印刷装置200の記憶部220におけるリード時のアクセス速度を向上できる。すなわち、図5に示す多数部の印刷動作処理を実行する印刷装置200では、リフレッシュによって、リード速度が大幅に低下することを抑制できるという効果がある。
【0057】
次に、この印刷装置200におけるCPU211で実行される、リードディスターブを考慮して多数部を印刷する場合の他の複数部印刷動作処理の手順について、図6のフローチャートを参照して説明する。なお、図6に示す複数部印刷動作処理は、前述した図1〜図5に示す印刷の動作処理とほぼ同様な動作を実行するものであるので、異なる部分のみを以下に説明する。
【0058】
多数部の印刷動作が開始すると、CPU211は、リードディスターブを想定するため、リードディスターブが発生する可能性がある繰り返し読み出し回数と、印刷中の印刷部数とを比較する(ステップS601)。そして、CPU211は、リードディスターブの想定よりも、印刷中の印刷部数が大きいと判定した場合(ステップS601でYES)に、ステップS602に進む。また、CPU211は、リードディスターブの想定よりも、印刷中の印刷部数が小さいと判定した場合(ステップS601でNO)に、ステップS603に進む。なお、ステップS602は、前述したステップS402及びS502と同様であり、ステップS603は、ステップS403及びS503と同様であるので、これらの説明を省略する。
【0059】
なお、このリードディスターブを考慮して多数部を印刷する場合の他の複数部印刷動作処理は、記憶部220のリフレッシュを禁止する又は禁止しないという設定を、印刷中に変動させるものである。
【0060】
次に、図6のフローチャートに示す多数部の他の印刷動作処理の具体例に係る、印刷ジョブに書かれた印刷部数が2万部で、MLC型NANDフラッシュメモリのリードディスターブが発生する繰り返し読み出し回数が1万回の場合の動作例について説明する。
【0061】
この場合にCPU211は、リードディスターブを想定するため、印刷中の印刷部数が1万部数未満か又は1万部数以上かを判定する。そして、CPU211は、印刷中の印刷部数が1万部数未満であると判定した場合(ステップS601でNO)に、ステップS603に進み、記憶部220のリフレッシュ動作を禁止する。すなわち、CPU211は、印刷中の印刷部数が1万部数未満である場合に、リフレッシュ動作を禁止することで、印刷装置200の記憶部220におけるリード時のアクセス速度を向上し、リード速度の大幅な低下を抑制できる。
【0062】
また、CPU211は、印刷中の印刷部数が1万部数以上であると判定した場合(ステップS601でYES)に、記憶部220のリフレッシュ動作を禁止しない(ステップS602)。すなわち、CPU211は、印刷中の印刷部数が1万部数以上である場合には、リフレッシュを実行することで、印刷装置200の記憶部220の記憶内容を回復させるので、記憶部220でリードエラーが発生することを抑制できる。
【0063】
次に、本実施の形態に係る印刷装置200における記憶部において、記憶内容の特徴に合わせてパーティションを作り、パーティション毎にリフレッシュの設定を行う場合について説明する。また、印刷装置200における記憶部において、記憶内容の特徴に合わせて論理ボリュームを作り、論理ボリューム毎にリフレッシュの設定を行うように構成しても良い。この記憶部は、記憶内容の論理構成が図7に示すように構成されている。この図7に示す記憶部700は、図2に示す記憶部220と同様に構成されている。
【0064】
この図7に示す記憶部700の記憶領域は、論理的に分割された701〜705の5つのパーティションに分割されている。これらパーティション701〜705は、それぞれ格納されているファイルの種類及び記憶部700のリフレッシュの動作条件が異なる。
【0065】
この図7で、701は、プログラムが格納されているパーティション0であり、頻繁にライトされないのでフラッシュメモリのセルが劣化しにくい状態にある。このパーティション701は、データ化けがあるとシステムが誤動作するため、信頼性を重視して、リフレッシュを実行しやすい設定にする。
【0066】
この図7で、702は、一時的に保存される印刷ジョブのPDL(Page Description Language)又はDL(中間言語 Display List)が格納されているパーティション1である。このパーティション702は、頻繁にライトされる。このパーティション702では、データ化けを生じると印刷時に目立つので、信頼性を重視して、リフレッシュを実行しやすい設定にする。
【0067】
この図7で、703は、一時的に保存される印刷データのうち、自然画像が格納されるパーティション2であり、頻繁にライトされる。このパーティション703では、多少のデータ化けならば印刷時に目立たないので、リフレッシュ動作が実行されにくい設定にする。
【0068】
この図7で704は、一時的に保存される印刷データのうち、テキストデータ(キャラクターコード)又は合成画像(描画された線、矩形等)が格納されているパーティション3であり、頻繁にライトされる。このパーティション704では、データ化けがあると印刷時に目立つため、リフレッシュを実行しやすい設定にする。
【0069】
この図7で705は、保存用印刷データ(ホールド)、保存用スキャン画像、受信ファックス画像、画像合成用画像又は印刷履歴保存データ等の保存データが格納されているパーティション4である。このパーティション705は、頻繁にライトされないのでフラッシュメモリのセルが劣化しにくい状態にある。このパーティション705は、ユーザにとって重要なデータが格納されるため、信頼性を重視して、リフレッシュ動作が実行され易い設定にする。
【0070】
この図7に示す記憶部700において、前述のようにリフレッシュを実行し易い設定とされたパーティションでは、リフレッシュ動作が実行されることにより印刷装置200の記憶部700における記憶内容が回復される。このため、リフレッシュを実行し易い設定とされたパーティションを備えた記憶部700では、リードエラーの発生を抑制できる。
【0071】
また、この図7に示す記憶部700において、前述のようにリフレッシュを実行しにくい設定とされたパーティションでは、リフレッシュ動作が抑制される。このため、リフレッシュを実行しにくい設定とされたパーティションを備えた記憶部700では、リード時のアクセス速度を向上できる。よって、図7に示す記憶部700を搭載した印刷装置200では、リフレッシュ動作によって、リード速度が大幅に低下することを抑制できる。
【0072】
前述のように、印刷データを記憶するフラッシュメモリのブロックは、印刷データを書き込んだ後、読み出す回数が少ないので、リードディスターブが発生しにくい。
【0073】
例えば、印刷装置200において、フラッシュメモリからRAMに印刷データを1ページごと読み出して印刷する動作について見ると、印刷データの読み出し回数は、印刷部数と一致する。よって、この印刷データの読み出し回数は、リードディスターブが発生する可能性のある読み出し回数よりも十分小さい。また、印刷データを生成してすぐに印刷されるので、データリテンションも問題にならない。よって、印刷データにおいて、フラッシュメモリのリフレッシュを抑制しても問題ない。しかし、起動プログラムなど、頻繁に読まれるが書き込まれることが少ないブロックに関しては、リードディスターブが発生する可能性があるため、フラッシュメモリのリフレッシュを抑制しないことが望ましい。
【0074】
なお、前述した図7の説明では、記憶部700の記憶内容を5つのパーティションに分けた例について説明した。しかし、本発明は、パーティション数が5に限定されものでは無く、その他の種々のパーティション数を採用できることは勿論である。また、前述した実施の形態では、ファイルの例として、プログラム、フォント、PDL、DL、自然画像、テキスト、合成画像、保存用印刷データ、保存用スキャンデータ、印刷履歴、FAX受信画像、合成用画像について説明した。しかし、本発明は上述のファイルの例に限定されないことは勿論である。さらに、印刷装置200は、上述したファイルを全て備える必要はなく、少なくともプログラムの他に一つのファイルに対して、リフレッシュを抑制する設定をし又はリフレッシュを抑制しない設定をするよう構成しても良いことは勿論である。
【0075】
また、前述した実施の形態では、記憶部220と記憶部700とが1つのドライブである場合について説明した。しかし、本発明は、ドライブ数に限定されるものではない。本発明では、論理ボリュームとして複数のドライブを仮想的に1つのパーティションにまとめても、個々のドライブをそれぞれパーティションに割り当てても、本発明の目的を達成できることは、言うまでもない。
【0076】
次に、印刷装置200の記憶部制御部221において、設定されたリフレッシュの閾値に基づくと共に印刷装置200の状況に応じてリフレッシュ動作の制御処理の手順について、図8のフローチャートを参照して説明する。このリフレッシュ動作の制御処理は、記憶部制御部221内の図示しないROMに格納されたプログラムを記憶部制御部221内の図示しないCPUによって実行される。
【0077】
この記憶部制御部221は、印刷装置200の電源が投入されると、リフレッシュ動作の制御処理を開始し、制御部210からコマンドを受信するまで待機する(ステップS801でNO)。この記憶部制御部221は、制御部210からコマンドを受信すると(ステップS801でYES)、ステップS802に進む。
【0078】
次に、この記憶部制御部221は、受信したコマンドが設定コマンドか否かを判断し、設定コマンドであると判定した場合(ステップS802でYES)に、ステップS803に進む。また、この記憶部制御部221は、設定コマンドでないと判定した場合(ステップS802でNO)にステップS804に進む。
【0079】
さらに、この記憶部制御部221は、設定コマンドである場合に、ステップS803でリフレッシュ動作をするか否かの条件となる閾値を設定し、ステップS801に戻る。ここで、閾値の例を2つ説明する。
【0080】
第1の閾値は、データリード回数の閾値である。このデータリード回数の閾値は、後述のステップS806〜S808において、データリード回数が予め決定した閾値に至ったときブロックに設定したリフレッシュフラグに基づいてリフレッシュを実行するためのものである。
【0081】
第2の閾値は、誤りビットの閾値である。この誤りビットの閾値は、後述のステップS806〜S808において、誤りビットが予め決定した閾値に至ったときにリフレッシュ(再プログラム)を実行させるためのものである。
【0082】
次に、この記憶部制御部221は、ステップS801で受信したコマンドがリードコマンドか否かを判断し、リードコマンドであると判定した場合(ステップS804でYES)にステップS805に進む。また、この記憶部制御部221は、設定コマンドでないと判定した場合(ステップS804でNO)にステップS810に進む。
【0083】
次に、この記憶部制御部221は、リードコマンドを受信した場合に、記憶素子222からリードする(ステップS805)。次に、この記憶部制御部221は、第1の閾値の例の場合に、誤り訂正・検出(ECC)のための誤りビットを計算する(ステップS806)。また、この記憶部制御部221は、第2の閾値の例の場合に、リードしたページを含むブロックのデータリード回数を計算する(ステップS806)。
【0084】
次に、この記憶部制御部221は、第1の閾値の例の場合に、誤りビットと閾値を比較し、誤りが多いと判断した場合(ステップS807でYES)にステップS808に進む。また、この記憶部制御部221は、誤りが少ないと判断した場合(ステップS807でNO)に、ステップS809に進む。また、第二の閾値の例の場合に、この記憶部制御部221は、データリード回数が予め決定した閾値に至ったと判断したとき(ステップS807でYES)にステップS808に進む。また、この記憶部制御部221は、データリード回数が予め決定した閾値に至らないと判断したとき(ステップS807でNO)に、ステップS809に進む。
【0085】
次に、この記憶部制御部221は、データリード回数が閾値に至ったときに、リフレッシュ動作であるブロックリード、ブロックイレース、ブロックライトを行い(ステップS808)、ステップS809へ進む。また、この記憶部制御部221は、ステップS809において、ECCで訂正されたリードデータを返し、ステップS801へ戻る。
【0086】
次に、この記憶部制御部221は、ステップS801で受信したコマンドがライトコマンドか否かを判断し、ライトコマンドであると判断した場合(ステップS810でYES)ステップS811に進む。また、この記憶部制御部221は、ライトコマンドでないと判断した場合(ステップS810でNO)に、ステップS801に戻る。
【0087】
次に、この記憶部制御部221は、ライトコマンドである場合に、ウエアレベリングであるライトブロックを平準化するため、実際にライトするブロックを決定する(ステップS811)。
【0088】
次に、この記憶部制御部221は、必要に応じてブロックリードし、ブロックイレースし、ブロックリードしたデータの一部を書き換えて、ブロックライトし(ステップS812)、ステップS801に戻る。
【0089】
以上説明したように、図8に示すリフレッシュ動作の制御処理では、記憶部制御部221が、制御部210から受信したリフレッシュの閾値を設定する。さらに、この記憶部制御部221は、印刷装置200の状況に応じて、リフレッシュを禁止若しくはリフレッシュを実行させる又はリフレッシュしにくい設定とする若しくはリフレッシュしやすい設定とすることができる。
【0090】
要するに、本実施の形態の印刷装置200では、制御部210のCPU211が、印刷装置200における印刷ジョブの制御及び記憶部220の制御等を含む装置全般の制御を司るように構成されている。また、記憶部220(SSD)では、制御部210のCPU211の指令に基づいて、記憶部制御部221が、例えばリード時又はアイドリング時に従来公知の手段で自動的にリフレッシュ動作を実行する機能を備える。
【0091】
この印刷装置200では、高い処理スピードが要求されない処理動作を実行する場合に、記憶部220(SSD)からのリード動作と同時に、リフレッシュ動作を実行する。このリフレッシュ動作では、記憶部220(SSD)から読み出したデータのエラーを検出し、そのエラーを修正し、修正済のデータを再度、この記憶部220(SSD)に書き込む動作を実行する。
【0092】
この印刷装置200では、記憶部220(SSD)からデータを読み出すとき高い処理スピードが要求される処理動作を実行する場合(例えば、印刷ジョブの実行の際)に、記憶部220(SSD)でリード動作だけを実行する。なお、高い処理スピードが要求される場合とは、印刷ジョブに限られるものではなく、各種のプログラムの実行等であっても良い。
【0093】
この印刷装置200では、CPU211が、高い処理スピードが要求される場合のリード動作中に、記憶部220でリフレッシュの動作が実行されることを禁止するようリフレッシュ停止の制御をする。これにより、この印刷装置200では、高い処理スピードが要求される場合に記憶部220でのリード速度を向上できる。
【0094】
この印刷装置200では、CPU211が、高い処理スピードが要求される場合(例えば、印刷ジョブ)の開始を検知する。そして、CPU211は、高速処理を要するジョブのために記憶部220でリード動作が開始される時点までに、記憶部220の記憶部制御部221に、リフレッシュ動作の停止を指令するリフレッシュ停止手段を備える。これにより、CPU211は、記憶部220でのリード動作中に、リフレッシュ動作が実行されないよう制御する。なお、例えば、印刷ジョブの場合には、印刷用データのエラーを修正せずにプリントすることになる。
【0095】
次に、CPU211は、高速処理を要するジョブのために記憶部220で実行されたリード動作が終了後に、リフレッシュ動作が再開可能とされるよう、記憶部制御部221に、リフレッシュ動作の再開を許可する指令を行う。これにより記憶部制御部221は、高速処理を要するジョブの終了後又はアイドリング時等の適当な時期に、リフレッシュ動作を実行することになる。これにより、印刷装置200では、記憶部220の記憶内容を回復させ、記憶部220でリードエラーが発生することを抑制できる。
【0096】
また、このCPU211は、記憶部220でリード動作が開始される時点までに記憶部制御部221にリフレッシュ動作を停止させるため、リフレッシュ動作停止の指令を記憶部制御部221に送信する。すなわち、このリフレッシュ動作停止の指令は、記憶部220でリード動作が開始される時点以前に記憶部制御部221に送信する。
【0097】
さらに、このCPU211は、高速処理を要するジョブのために記憶部220で実行されたリード動作が終了直後又はそれ以降の時点で、リフレッシュ動作が可能とされるようリフレッシュ動作を許可する制御を行う。このため、CPU211は、例えば、印刷ジョブの場合における印刷用データのリード動作中に、最後の1枚のプリントを指令後に、予想したリード動作の終了時点以降に、リフレッシュ動作の許可を指令しても良い。また、CPU211は、印刷ジョブの場合に、最後の1枚の印刷済の印刷媒体(プリント)が印刷装置200からトレイ上に排紙されたことを検知した時点で、リフレッシュ動作の許可を指令するリフレッシュ許可手段を備えても良い。
【符号の説明】
【0098】
200 印刷装置
211 CPU
220 記憶部
221 記憶部制御部

【特許請求の範囲】
【請求項1】
装置全般の制御を司る制御部と、当該制御部に制御されてデータを記憶すると共に、前記データのリード時にリフレッシュする機能を持つ記憶部制御部を備えた記憶部と、を有する印刷装置において、
前記制御部は、高い処理スピードが要求される処理動作を実行することを検知した場合に、前記記憶部から前記データをリードする時に前記リフレッシュ動作を停止させるためのリフレッシュ停止手段と、
前記制御部は、高い処理スピードが要求される処理動作の際に前記リフレッシュ動作を停止させた場合に、高い処理スピードが要求される処理動作の終了後に前記リフレッシュ動作を許可するためのリフレッシュ許可手段と、
を有することを特徴とする印刷装置。
【請求項2】
前記制御部は、
印刷ジョブを記憶部に記憶させたときに、高い処理スピードが要求される処理動作を実行することを検知し、
最後の1枚の印刷済の印刷媒体が排紙されたときに高い処理スピードが要求される処理動作の終了後であることを検知する、
ことを特徴とする請求項1記載の印刷装置。
【請求項3】
前記制御部は、
印刷ジョブを記憶部に記憶させたときに、高い処理スピードが要求される処理動作を実行することを検知し、
最終部数の1つ前の部数において、前記記憶部から印刷データの読み出しが終了したときに高い処理スピードが要求される処理動作の終了後であることを検知する、
ことを特徴とする請求項1記載の印刷装置。
【請求項4】
印刷ジョブで印刷する部数を判断する部数判断手段と、
前記記憶部制御部で、前記リフレッシュの実行の可否を決定するための閾値を設定する閾値設定手段と、をさらに備え、
前記制御部は、
前記部数判断手段で少なくとも2部以上印刷することを検知した場合に、前記閾値設定手段が前記リフレッシュを禁止しない閾値を設定するよう制御し、
前記部数判断手段で1つの部数の印刷ジョブを実行することを検知した場合に、前記閾値設定手段が前記リフレッシュを禁止する閾値を設定するよう制御する、
ことを特徴とする請求項1記載の印刷装置。
【請求項5】
印刷ジョブで印刷する部数を検知する部数判断手段と、
前記記憶部でのリードエラーが想定される繰り返し読み出し回数を検出する繰り返し読み出し回数の検出手段と、
前記記憶部制御部で、前記リフレッシュの実行の可否を決定するための閾値を設定する閾値設定手段と、をさらに備え、
前記制御部は、
前記部数判断手段で検知した印刷する部数と、前記繰り返し読み出し回数の検出手段で検知した前記リードエラーが想定される繰り返し読み出し回数とを比較し、
前記リードエラーが想定される繰り返し読み出し回数よりも、前記印刷する部数の方が多い場合に、前記閾値設定手段が前記リフレッシュを禁止しない閾値を設定するよう制御し、
前記リードエラーが想定される繰り返し読み出し回数よりも、前記印刷する部数の方が少ない場合に、前記閾値設定手段が前記リフレッシュを禁止する閾値を設定するよう制御する、
ことを特徴とする請求項1記載の印刷装置。
【請求項6】
印刷中の部数を検知する部数判断手段と、
前記記憶部でのリードエラーが想定される繰り返し読み出し回数を検出する繰り返し読み出し回数の検出手段と、
前記記憶部制御部で、前記リフレッシュの実行の可否を決定するための閾値を設定する閾値設定手段と、をさらに備え、
前記制御部は、
前記部数判断手段で検知した印刷中の部数と、前記繰り返し読み出し回数の検出手段で検知した前記リードエラーが想定される繰り返し読み出し回数とを比較し、
前記リードエラーが想定される繰り返し読み出し回数よりも、前記印刷中の部数の方が多い場合に、前記閾値設定手段が前記リフレッシュを禁止しない閾値を設定するよう制御し、
前記リードエラーが想定される繰り返し読み出し回数よりも、前記印刷中の部数の方が少ない場合に、前記閾値設定手段が前記リフレッシュを禁止する閾値を設定するよう制御する、
ことを特徴とする請求項1記載の印刷装置。
【請求項7】
前記記憶部は、
記憶内容の特徴に合わせて、パーティション又は論理ボリュームが設定され、
前記閾値設定手段は、
前記パーティション毎又は前記論理ボリューム毎に、前記記憶部制御部で、前記リフレッシュの実行の可否を決定するための閾値が設定される、
ことを特徴とする請求項4乃至6の何れか1項に記載の印刷装置。
【請求項8】
前記記憶部における、プログラム、PDL(Page Description Language)、中間言語(Display List)、テキストデータ(キャラクターコード)、合成画像(描画された線、矩形)、保存用印刷データ(ホールド)、保存用スキャン画像、受信ファックス画像、画像合成用画像若しくは印刷履歴保存データ、が格納される前記パーティション又は前記論理ボリュームに対して、前記閾値設定手段が前記リフレッシュを抑制しない設定をし、
自然画像が格納される前記パーティション又は前記論理ボリュームに対して、前記閾値設定手段が前記リフレッシュを抑制する設定をする、
ことを特徴とする請求項7記載の印刷装置。
【請求項9】
装置全般の制御を司る制御部と、当該制御部に制御されてデータを記憶すると共に、前記データのリード時にリフレッシュする機能を持つ記憶部制御部を備えた記憶部と、を有する印刷装置の制御方法において、
前記制御部は、高い処理スピードが要求される処理動作を実行することを検知した場合に、前記記憶部から前記データをリードする時に前記リフレッシュ動作を停止させるためのリフレッシュ停止ステップと、
前記制御部は、高い処理スピードが要求される処理動作の際に前記リフレッシュ動作を停止させた場合に、高い処理スピードが要求される処理動作の終了後に前記リフレッシュ動作を許可するためのリフレッシュ許可ステップと、
を有することを特徴とする印刷装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−240397(P2012−240397A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−115788(P2011−115788)
【出願日】平成23年5月24日(2011.5.24)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】