(57)【要約】【課題】ＮＡＮＤフラッシュメモリ等の不揮発性半導体メモリの評価時間を大幅に短縮する。【解決手段】  レジスタ４０３に論理ブロックアドレス：７ＦＦ（Ｈ）を設定して、最大物理ブロックアドレス指定コマンドＡＡ（Ｈ）を「ｃｏｍｍａｎｄ」に書き込むことで、レジスタ４０３内のデータが７ＦＦ（Ｈ）に書き換えられる。  このとき、アドレス変換制御部４０１は、レジスタ４０３内の７ＦＦ（Ｈ）をテーブルＮＯ．の最大値（最大テーブルＮＯ．）に適用して、つまり、テーブルＮＯ．の最大値を「０ｘ０７ｆｆ」に変更して、つまり、テーブルＮＯ．の最大値を「０ｘ０７ｆｆ」として、「０ｘ０７ｆｆ」以下のテーブルＮＯ．（論理ブロックアドレス）のみに対してアドレス変換を行うように制御する。【選択図】  図４
2009211550.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行うリードライト制御部を備えた不揮発性メモリ制御装置であって、
論理ブロックアドレスと物理ブロックアドレスとの対応関係情報を格納する格納手段と、
前記格納手段の対応関係情報に基づいて、外部装置からの論理ブロックアドレスを物理ブロックアドレスに変換するアドレス変換手段と、
外部装置から入力された上限物理ブロックアドレスを記憶する記憶手段と、
前記記憶手段に記憶された上限物理ブロックアドレスを上限として、前記アドレス変換手段がアドレス変換を行うように制御するアドレス変換制御手段と、を有することを特徴とする不揮発性メモリ制御装置。
【請求項２】
外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行うリードライト制御部を備えた不揮発性メモリ制御装置であって、
論理ブロックアドレスと物理ブロックアドレスとの対応関係情報を格納する格納手段と、
予め複数の物理ブロックアドレスを記憶している記憶手段と、
前記記憶手段に記憶された複数の物理ブロックアドレスのうち一つを選択する選択手段と、
前記選択手段が選択した物理ブロックアドレスを上限として、前記アドレス変換手段がアドレス変換を行うように制御するアドレス変換制御手段と、を有することを特徴とする不揮発性メモリ制御装置。
【請求項３】
請求項１又は２に記載された不揮発性メモリ制御装置において、
前記格納手段は、前記物理ブロックアドレスへのデータの書込回数情報を格納しており、
前記アドレス変換制御手段は、
外部装置から受信した論理ブロックアドレスに対応する物理ブロックアドレスの書込回数情報を前記格納手段から取得する手段と、
前記書込回数情報と、前記格納手段に格納されている全物理ブロックアドレスの書込回数情報のうち最小の書込回数情報とを比較する手段とを有し、
前記書込回数情報と、前記最小の書込回数情報との回数の差が所定値以上であるとき、前記論理ブロックアドレスに対応する物理ブロックアドレスを、書込回数情報が最小である物理ブロックアドレスに変更することを特徴とする不揮発性メモリ制御装置。
【請求項４】
請求項１ないし３のいずれかに記載された不揮発性メモリ制御装置を備えたことを特徴とする画像処理装置。
【請求項５】
外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行う不揮発性メモリ制御方法であって、
外部装置から入力された上限物理ブロックアドレスを記憶する工程と、
リードライト処理を行う物理ブロックアドレスに対応する論理ブロックアドレスを前記外部装置から受信する工程と、
前記記憶手段に記憶されている上限物理ブロックアドレスを上限として、前記受信した論理ブロックアドレスを物理ブロックアドレスに変換する工程と、を有することを特徴とする不揮発メモリ制御方法。
【請求項６】
外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行う不揮発性メモリ制御方法であって、
リードライト処理を行う物理ブロックアドレスに対応する論理ブロックアドレスを前記外部装置から受信する工程と、
記憶手段に予め記憶された複数の物理ブロックアドレスのうち一つを選択する選択工程と、
前記記憶手段に記憶されている物理ブロックアドレスを上限として、前記受信した論理ブロックアドレスを物理ブロックアドレスに変換する工程と、を有することを特徴とする不揮発メモリ制御方法。
【請求項７】
請求項５又は６に記載された不揮発性メモリ制御方法において、
外部装置から受信した論理ブロックアドレスに対応する物理ブロックアドレスの書込回数情報を取得する工程と、
前記書込回数情報と、全物理ブロックアドレスの書込回数情報のうち最小の書込回数情報とを比較する工程と、
前記書込回数情報と、前記最小の書込回数情報との回数の差が所定値以上であるとき、前記論理ブロックアドレスに対応する物理ブロックアドレスを、書込回数情報が最小である物理ブロックアドレスに変更する工程とを有することを特徴とする不揮発性メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＮＡＮＤフラッシュメモリ等の不揮発性メモリの書込評価に要する時間を短縮できる不揮発性メモリ制御装置及びこれを備えた画像処理装置、不揮発性メモリ制御方法に関する。
【背景技術】
【０００２】
従来、電源が供給されなくてもデータを保持できる不揮発性メモリとして、ＮＡＮＤフラッシュメモリが知られている。このＮＡＮＤフラッシュメモリは、データの書き込み及び消去を電気的に行うことができ、この書き込み及び消去はＦＮ（Ｆｏｗｌｅｒ−Ｎｏｒｄｈｅｉｍ）トンネル現象により行われる。
【０００３】
このＮＡＮＤフラッシュメモリにデータを書き込むとき、このトンネル現象を発生させるために、フラッシュメモリのＩＣ（Integrated  Circuit）内に約２０Ｖの高電圧を加えるため、ＩＣ内に設けられた酸化膜（例えば、ＳｉＯ２：二酸化シリコン）が高電圧により劣化する。従って、特定のメモリブロックにデータの書き込みを複数回、一般的に１０万回程度繰り返すと、酸化膜の劣化によりデータの記録ができない、いわゆる不良ブロックが発生する。
【０００４】
特定のメモリブロックのみにデータの書き込み／消去が集中して、そのメモリブロックが他のメモリブロックに比して早く不良ブロックになることを防止するため、ＮＡＮＤフラッシュメモリには、各メモリブロックへのデータの書き込み回数を平均化するためのデータの書込方式であるウェアレベリング方式が利用されている。
【０００５】
このウェアレベリング方式の一例として、所定回数以上の書き込みが行われているメモリブロックに対する書き込みを、未使用のメモリブロックに対して行うようにするデータの書込方式が知られている。
即ち、仮想的に使用するアドレス（論理アドレス）の上限を、ＮＡＮＤフラッシュメモリ上で有効なアドレス（物理アドレス）に対して小さく設定し、使用できない物理アドレスを予め設けておく。ＮＡＮＤフラッシュメモリに書き込みを行い、書き込み回数が多い特定の物理アドレスが発生したとき、この物理アドレスに対応する論理アドレスを未使用の物理アドレスに対応するように変更する、即ち、未使用の物理アドレスを書き込み回数の多い物理アドレスの代替領域として用いる。
【０００６】
また、別のウェアレベリング方式として、例えば、各メモリブロックへの書き込み回数をカウントしておき、そのカウント数の少ないブロックへ書き込むようにメモリアクセス制御する書込方式が知られている。
即ち、各々の物理アドレスへのデータの書き込み回数をカウントしておき、ある物理アドレスに対応するブロックにデータを書き込むとき、この物理アドレスと比べて書き込み回数の少ない他の物理アドレスがある場合は、他の物理アドレスに対応するブロックへデータが書き込まれるように論理アドレスと物理アドレスの対応関係を変更する。
以上のように、従来、物理アドレスに対して書き込み回数を平均化するようにメモリアクセス制御を行うことによって、特定の物理アドレスへ書き込みが集中しないようにし、ＮＡＮＤフラッシュメモリの長寿命化を図っている。
【０００７】
このＮＡＮＤフラッシュメモリのメモリブロックが不良ブロックになるまでの書き込み回数（書き込み可能回数）は、ＮＡＮＤフラッシュメモリを例えば画像処理装置などの製品に搭載するにあたって必要なデータであるため、この書き込み可能回数を予め評価することが行われる。
【０００８】
しかしながら、ＮＡＮＤフラッシュメモリの容量を１（ＧＢ（ギガバイト））、インタフェース速度を（１０ＭＢ（メガバイト）／秒）とし、ウェアレベリングが理想的に行われてＮＡＮＤフラッシュメモリの容量×１０万回の書き込みができると想定すると、この評価時間は、（１０００（ＭＢ）×１０（万回））／１０（ＭＢ／秒）＝１０００万秒＝約２７７７時間＝約１１５日であり、長期間を要するという問題がある。また、評価サンプル数を増やした場合は更に長い期間を要する。
【０００９】
上記評価時間を短縮するためには、データの書込時間を短縮することが有効な手段の一つであると考えられる。
例えば、データの書き込み後に必要なベリファイ（読み出し）の回数を低減させて書込時間を短縮させる不揮発性半導体メモリが知られている（特許文献１参照）。
また、複数の不揮発性半導体メモリを同時にテストする際、書き込み動作の結果をベリファイする動作を不要として、全体の書込時間を短縮し、その結果テスト時間を短縮する不揮発性半導体メモリ及びそのテスト方法も知られている（特許文献２参照）。
【００１０】
しかしながら、上記各特許文献に記載された不揮発性半導体メモリ等では、多少の評価時間の短縮が見込まれる可能性はあるが、大幅な短縮は難しい。
また、評価時間を短縮するために、物理アドレスへの書き込み方法、即ちウェアレベリング方式を改善することも考えられるが、ウェアレベリングの方式は各社毎に異なり、その内容がユーザに公開されていない場合が多いため、ユーザがアドレスを制御して評価時間の短縮を行うことは困難である。
【特許文献１】特開平１０−５５６９１号公報
【特許文献２】特開２００７−２５０１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、上記従来の問題を解決するためになされたもので、その目的は、ＮＡＮＤフラッシュメモリ等の不揮発性半導体メモリの評価時間を大幅に短縮することである。
【課題を解決するための手段】
【００１２】
本発明は、外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行うリードライト制御部を備えた不揮発性メモリ制御装置であって、論理ブロックアドレスと物理ブロックアドレスとの対応関係情報を格納する格納手段と、前記格納手段の対応関係情報に基づいて、外部装置からの論理ブロックアドレスを物理ブロックアドレスに変換するアドレス変換手段と、外部装置から入力された上限物理ブロックアドレスを記憶する記憶手段と、前記記憶手段に記憶された上限物理ブロックアドレスを上限として、前記アドレス変換手段がアドレス変換を行うように制御するアドレス変換制御手段と、を有することを特徴とする。
また、本発明は、外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行うリードライト制御部を備えた不揮発性メモリ制御装置であって、論理ブロックアドレスと物理ブロックアドレスとの対応関係情報を格納する格納手段と、予め複数の物理ブロックアドレスを記憶している記憶手段と、前記記憶手段に記憶された複数の物理ブロックアドレスのうち一つを選択する選択手段と、前記選択手段が選択した物理ブロックアドレスを上限として、前記アドレス変換手段がアドレス変換を行うように制御するアドレス変換制御手段と、を有することを特徴とする。
また、本発明は、外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行う不揮発性メモリ制御方法であって、外部装置から入力された上限物理ブロックアドレスを記憶する工程と、リードライト処理を行う物理ブロックアドレスに対応する論理ブロックアドレスを前記外部装置から受信する工程と、前記記憶手段に記憶されている上限物理ブロックアドレスを上限として、前記受信した論理ブロックアドレスを物理ブロックアドレスに変換する工程と、を有することを特徴とする。
また、本発明は、外部装置からの論理ブロックアドレスに基づいて不揮発性メモリの所定の物理ブロックアドレスにデータのリードライト処理を行う不揮発性メモリ制御方法であって、リードライト処理を行う物理ブロックアドレスに対応する論理ブロックアドレスを前記外部装置から受信する工程と、記憶手段に予め記憶された複数の物理ブロックアドレスのうち一つを選択する選択工程と、前記記憶手段に記憶されている物理ブロックアドレスを上限として、前記受信した論理ブロックアドレスを物理ブロックアドレスに変換する工程と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ＮＡＮＤフラッシュメモリ等の不揮発性半導体メモリの評価時間を大幅に短縮して、評価にかかる手間及び消費電力を低減させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の不揮発性メモリ制御装置の実施の形態に係るＳＳＤ（Solid  State  Disc）について、添付した図面を参照して説明する。
図１は、ＳＳＤとホスト装置から成るシステムの構成を示すブロック図である。
【００１５】
ホスト装置１０１とＳＳＤ１００とは、互いにＡＴＡ（AT  Attachment）ケーブル１１０で接続されている。
ＳＳＤ１００は、ＡＴＡケーブル１１０を接続するＡＴＡスレーブインタフェース部１０６と、ＡＴＡスレーブインタフェース部１０６の制御を行ってホスト装置１０１とデータの送受信を行うＡＴＡスレーブインタフェース制御部１０７と、ホスト装置１０１から受信したデータを保存する不揮発性メモリであるＮＡＮＤフラッシュメモリ１０９と、ＮＡＮＤフラッシュメモリ１０９のリードライトの制御を行うリードライト制御部１０８とから成っている。
リードライト制御部１０８は、ＮＡＮＤフラッシュメモリ１０９の各物理ブロックアドレスに対する書き込み回数を平均化するために後述するウェアレベリングの処理を行う。
【００１６】
ホスト装置１０１は、ＳＳＤ１００の外部装置である画像形成装置やパーソナルコンピュータ等の電子装置であり、このシステム全体の制御を行う主制御部１０２と、ＳＳＤ１００と送受信するデータを蓄積する記憶部であるデータ蓄積部１０３と、ＡＴＡケーブル１１０を接続するＡＴＡマスタインタフェース部１０４と、ＡＴＡマスタインタフェース部１０４の制御を行ってＳＳＤ１００とデータの送受信を行うＡＴＡマスタインタフェース制御部１０５とを備えている。
主制御部１０２は、ＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）を備えたマイクロコンピュータを有し、ＳＳＤ１００へデータの記憶の要求（ライトコマンド）と、その記憶させるデータの送信と、所定のデータの読み出し要求（リードコマンド）とその読み出し要求に対して送信されたデータの受信等を行う。
【００１７】
このシステムにおいて、ホスト装置１０１からＳＳＤ１００に対するデータの転送（書き込み）は、ホスト装置１０１がＳＳＤ１００のリードライト制御部１０８内のＩ／Ｏレジスタに対してＡＴＡコマンドを書き込むことで行われる。
図２は、ＡＴＡケーブル１１０の信号線の状態に対応するＩ／Ｏレジスタの一覧を示す図である。
Ｉ／Ｏレジスタは、図示のようにコマンドブロックレジスタとコントロールブロックレジスタに分類されており、ＡＴＡケーブル１１０の各々の信号線（ＣＳ０−、ＣＳ１−、ＤＡ２、ＤＡ１、ＤＡ０）の状態に応じて、ホスト装置１０１がコマンドブロックレジスタ又はコントロールブロックレジスタのいずれかのレジスタにＡＴＡコマンドを書き込むことで、データの転送が行われる。
【００１８】
ＡＴＡコマンドをＩ／Ｏレジスタに書き込むときは、Ｉ／Ｏレジスタに必要なパラメータを指定しておく。即ち、例えば、ＡＴＡコマンド（ライトコマンド）を発行するときは、データを書き込む論理ブロックアドレス（ＬＢＡ：Logical  Block  Address）と、書き込むデータ量をレジスタに設定（記憶）した後にＡＴＡコマンドを書き込む。
【００１９】
図３は、ホスト装置１０１がＳＳＤ１００にデータを書き込むためのパラメータを設定するレジスタ（Ｉ／Ｏレジスタ）の一覧を示す図である。
ここで、レジスタに設定する論理ブロックアドレスは、ＮＡＮＤフラッシュメモリ１０９のメモリブロック毎に定められている物理ブロックアドレスに対応するアドレスであり、ホスト装置１０１が論理ブロックアドレスを設定してＡＴＡコマンドをレジスタに書き込むことで、設定した論理ブロックアドレスに対応する物理ブロックアドレスを有するメモリブロックに、データが書き込まれる。
【００２０】
論理ブロックアドレスは、２８ビットからなるデータであり、１アドレス毎にＮＡＮＤフラッシュメモリ１０９上の１セクタ（５１２バイト）が対応している。
図３は、論理ブロックアドレスの０〜７ビット、８〜１５ビット、１６〜２３ビット、２４〜２７ビットの数値がそれぞれ、Sector  Number（セクタナンバーレジスタ）、Cylinder  Low（シリンダローレジスタ）、Cylinder  High（シリンダハイレジスタ）、Device／Head（デバイス／ヘッドレジスタ）に設定されることを示している。
例えば、論理ブロックアドレス：７ＦＦ（Ｈ）をレジスタに設定するときは、セクタナンバーレジスタに「０ｘｆｆ」を、シリンダローレジスタに「０ｘ０７」を、シリンダハイレジスタに「０ｘ００」を、デバイス／ヘッドレジスタに「０ｘ０」を設定することになる。
【００２１】
また、ホスト装置１０１がＮＡＮＤフラッシュメモリ１０９に書き込むデータ量は、Sector  Count（セクタカウントレジスタ）に設定する。即ち、１〜２５５セクタ分のデータ量を格納するときは、セクタカウントレジスタにそのセクタ数を設定し、２５６セクタ分のデータ量を格納するときは、セクタカウントレジスタに例外的に０を設定する。
【００２２】
以上で説明したように、ＳＳＤ１００では、データを書き込む論理ブロックアドレスと、書き込むデータ量をレジスタに設定してＡＴＡコマンドをレジスタに書き込むと、図１に示したリードライト制御部１０８が、ＮＡＮＤフラッシュメモリ１０９にデータの書き込みを行う。
なお、このとき、リードライト制御部１０８は、特定の物理ブロックアドレスへの書き込み回数を平均化するため、後述するウェアレベリング方式でデータを書き込む。
【００２３】
図４は、本リードライト制御部１０８内のこのウェアレベリング処理を行う部分の機能ブロック図である。
リードライト制御部１０８内のウェアレベリング処理を行う部分の機能ブロックは、論理ブロックアドレスと物理ブロックアドレスとの対応関係情報を格納している格納手段である変換テーブル４０２と、この変換テーブル４０２に格納された上記対応関係情報に基づいて、ホスト装置１０１から受信した論理ブロックアドレスを物理ブロックアドレスに変換するアドレス変換制御部４０１と、各種データの記憶手段であるレジスタ４０３とから成っている。
【００２４】
図５は、変換テーブル４０２に格納されているデータを示す図である。
変換テーブル４０２では、テーブルＮＯ．と論理ブロックアドレスが１対１で対応しており、各テーブルＮＯ．毎に物理ブロックアドレスと、この物理ブロックアドレスに対する書き込み回数が記録されている。
また、この変換テーブル４０２のうち、予め一つのテーブルＮＯ．を後述する代替物理ブロックアドレス用テーブルとして設定し、後述するウェアレベリングを行うときの、ホスト装置１０１から入力された論理ブロックアドレスに対応する物理ブロックアドレスの代替領域としている（例えば、図中（ｂ）で示すテーブルＮＯ．「０ｘ０ｆ０１」）。
【００２５】
リードライト制御部１０８が、所定の物理ブロックアドレスに書き込みを行うと、テーブル内の物理ブロックアドレスに対応した書き込み回数がインクリメントされて記憶される。
なお、変換テーブル４０２に対する読み出しやデータの更新は、アドレス変換制御部４０１が行う。
【００２６】
図６は、アドレス変換制御部４０１がＮＡＮＤフラッシュメモリ１０９にデータを書き込むときに行う、ウェアレベリング処理のフロー図である。
まず、アドレス変換制御部４０１はホスト装置１０１から入力された論理ブロックアドレスに対応したテーブルＮＯ．（「ＬＢ＿Ｎ」）、例えば図５中（ａ）で示した「０ｘ００００」のテーブル情報を参照し（Ｓ１０１）、論理ブロックアドレスに対応したテーブルＮＯ．の書き込み回数を読み取る（Ｓ１０２）。
次に、読み取った書き込み回数と、変換テーブル４０２内の最小書き込み回数（ＭＮ＿ＮＵＭ）とを比較し、その差が予め設定された閾値「０ｘ７ｆ」以上か否かを判定する（Ｓ１０３）。
【００２７】
上記差が「０ｘ７ｆ」以上であるときは（Ｓ１０３、ＹＥＳ）、論理ブロックアドレスに対応したテーブルＮＯ．のテーブルに格納されている情報を、レジスタ４０３内に設けられた図示しないバッファ（ＢＵＦ１）に一時的に蓄積する（Ｓ１０４）。
続いて、変換テーブル４０２に格納されている代替物理ブロックアドレス用テーブルＮＯ．（ＳＵＢ＿Ｎ）のテーブル情報を参照して（Ｓ１０５）、論理ブロックアドレスに対応したテーブルＮＯ．のテーブル内の物理ブロックアドレスを変換テーブル４０２に格納されている代替物理ブロックアドレス用テーブルＮＯ．のテーブル内の物理ブロックアドレスに変更し（Ｓ１０６）、論理ブロックアドレスに対応したテーブルＮＯ．のテーブル内の物理ブロックアドレスの書き換え回数を変換テーブル４０２に格納されている代替物理ブロックアドレス用テーブルＮＯ．のテーブル内の書き込み回数に１を加えた値に変更する（Ｓ１０７）。
【００２８】
次に、アドレス変換制御部４０１は、代替物理ブロックアドレス用テーブルＮＯ．内の物理ブロックアドレスに、変更後の論理ブロックアドレスに対応したテーブルＮＯ．のテーブル内の物理ブロックアドレスを出力し（Ｓ１０８）、代替物理ブロックアドレス用テーブルＮＯ．内のテーブル情報、即ち、物理ブロックアドレスと書き込み回数をＢＵＦ１に蓄積していた論理ブロックアドレスに対応したテーブルＮＯ．（ＬＢ＿Ｎ）の変更前のテーブルの情報に変更する（Ｓ１０９）。
以上の処理を終えた後、代替物理ブロックアドレス用テーブルＮＯ．を書き込み回数が最も少ない物理ブロックアドレスを格納したテーブルＮＯ．に更新して終了する（代替物理ブロックアドレス更新処理）（Ｓ１１１）。
【００２９】
一方、上記差が「０ｘ７ｆ」未満であるときは（Ｓ１０３、ＮＯ）、論理ブロックアドレスに対応したテーブルＮＯ．のテーブル内の物理ブロックアドレスをそのまま出力し（Ｓ１１０）、同様に変換テーブル４０２に格納されている代替物理ブロックアドレス用テーブルＮＯ．を書き込み回数が最も少ない物理ブロックアドレスを格納したテーブルＮＯ．に更新して終了する（Ｓ１１１）。
【００３０】
図７は、図６に示したステップＳ１１１の代替物理ブロックアドレス更新処理のサブルーチンを示すフロー図である。
まず、変換テーブル４０２内の最小書き込み回数（ＭＮ＿ＮＵＭ）に所定の値「０ｘｆｆｆｆｆ」を設定し、参照するテーブルＮＯ．（ＴＮ）に「０ｘ００００」を設定する（Ｓ２０１）。続いて、参照するテーブルＮＯ．のテーブルに格納された書き込み回数（Ｒ＿ＮＵＭ）の値を読み取り（Ｓ２０２）、読み取った参照するテーブルＮＯ．のテーブルに格納された書き込み回数と変換テーブル４０２内の最小書き込み回数とを比較する（Ｓ２０３）。
変換テーブル４０２内の最小書き込み回数が、参照するテーブルＮＯ．のテーブルに格納された書き込み回数より大きいときは（Ｓ２０３、ＹＥＳ）、代替物理ブロックアドレス用テーブルＮＯ．の値を参照するテーブルＮＯ．の値に変更し（Ｓ２０４）、参照するテーブルＮＯ．のテーブルに格納された書き込み回数の値を変換テーブル４０２内の最小書き込み回数の値に変更する（Ｓ２０５）。
変換テーブル４０２内の最小書き込み回数が参照するテーブルＮＯ．のテーブルに格納された書き込み回数より小さいときは（Ｓ２０３、ＮＯ）、代替物理ブロックアドレス用テーブルＮＯ．及び参照するテーブルＮＯ．のテーブルに格納された書き込み回数の値は変更せず、次のステップに進む。
【００３１】
次に、参照するテーブルＮＯ．の値と、変換テーブル４０２に格納されているテーブルＮＯ．の最大値（ＭＸ＿ＴＢＬ＿ＮＵＭ）とを比較し（Ｓ２０６）、参照するテーブルＮＯ．が上記テーブルＮＯ．の最大値より小さいときは（Ｓ２０６、ＹＥＳ）、参照するテーブルＮＯ．の値に１を加えて（Ｓ２０７）、ステップＳ２０２の処理に戻る。
参照するテーブルＮＯ．が上記テーブルＮＯ．の最大値より小さくない、即ち参照するテーブルＮＯ．と上記テーブルＮＯ．の最大値とが同値のときは（Ｓ２０６、ＮＯ）、処理を終了する。
【００３２】
以上の処理により、代替物理ブロックアドレス用テーブルＮＯ．が変換テーブル４０２内の最も書き込み回数が少ない物理ブロックアドレスを含むテーブルＮＯ．になるように更新することができ、図６に示したウェアレベリング処理で、所定条件のときに最も書き込み回数の少ない物理ブロックアドレスに書き込み処理を行うことができる。
【００３３】
図８は、図６及び図７で説明した処理を行った後の、変換テーブル４０２に格納されているデータを示す図である。
図６及び図７で説明した処理により、図示のように、図５に示したテーブルＮＯ．「０ｘ００００」内のテーブル情報（物理ブロックアドレスと、書き込み回数）（図５中（ａ））が、「０ｘ０ｆ０２」内のテーブル情報（図５中（ｂ））と交換されており、交換後のテーブルＮＯ．「０ｘ００００」内の書き込み回数が１インクリメントされている（図中（ｃ）、（ｄ））。
【００３４】
以上で説明したように、リードライト制御部１０８を備えたＳＳＤ１００では、ある物理ブロックアドレスに対する書き込み回数が他の物理ブロックアドレスと比較して所定値以上多くなると、書き込み回数が多くなった物理ブロックアドレスに対応していた論理ブロックアドレス（テーブルＮＯ．）を、書き込み回数が少ない物理ブロックアドレスに対応するように変更することで、特定の物理ブロックアドレスへの書き込み回数を平均化する。
【００３５】
次に、リードライト制御部１０８について説明する。
本リードライト制御部１０８においては、以上で説明したウェアレベリングを行いつつ、ＳＳＤ１００のＮＡＮＤフラッシュメモリ１０９へ書込評価を行うにあたって、ホスト装置１０１からのＳＳＤ１００へのＡＴＡコマンドにより、データを書き込む対象となる変換テーブル４０２内のテーブルＮＯ．（論理ブロックアドレス）の上限を設定して、その結果、論理ブロックアドレスに対応する物理ブロックアドレスを制限し、書込評価時間を短縮する。
即ち、図４に示した変換テーブル４０２の全てのテーブルＮＯ．の書き込み回数が０で、論理ブロックアドレスと物理ブロックアドレスが一致する状態（以下、「初期状態」という）において、予め図４に示したレジスタ４０３に上限物理ブロックアドレスを設定した後、規格で定められていないコマンド「ＡＡ（Ｈ）」を、図２に示したコマンドブロックレジスタの「ｃｏｍｍａｎｄ」に書き込むことで、設定した上限物理ブロックアドレスをデータの書き込み対象となる物理ブロックアドレスの上限とする。つまり、このような初期状態では、論理ブロックアドレスと物理ブロックアドレスが一致するから、設定した上限物理アドレスと同じ値を論理ブロックアドレスの上限としてアクセスを行った場合に、ウェアレベリング処理が行われても、アクセスされる物理アドレスは０から上限物理アドレスの範囲内となる。
【００３６】
例えば、図４に示したレジスタ４０３に上限物理ブロックアドレス：７ＦＦ（Ｈ）を設定して、アドレス上限設定コマンドＡＡ（Ｈ）を「ｃｏｍｍａｎｄ」に書き込むことで、レジスタ４０３内のデータが７ＦＦ（Ｈ）に書き換えられる（更新される）。
このとき、本願発明のアドレス変換制御手段に対応するアドレス変換制御部４０１は、レジスタ４０３内の７ＦＦ（Ｈ）を上限としてテーブルＮＯ．の最大値に適用して、つまり、テーブルＮＯ．の最大値を「０ｘ０７ｆｆ」として、「０ｘ０７ｆｆ」以下のテーブルＮＯ．（論理ブロックアドレス）のみに対してアドレス変換を行うように制御する。従って、「０ｘ０７ｆｆ」より大きな論理ブロックアドレスに対応する物理ブロックアドレスには書き込みを行わないようになる。
【００３７】
最大物理ブロックアドレスが７ＦＦ（Ｈ）であるときは、１メモリブロックが５１２Ｂｙｔｅ（バイト）であるので、制限されたＮＡＮＤフラッシュメモリの物理ブロックアドレスの空間（容量）は、７ＦＦ（Ｈ）×５１２＝約１ＭＢとなる。
物理ブロックアドレスの空間が１ＭＢに制限された場合の書込評価時間は、リードライト制御部４０１のウェアレベリング処理により、理論上、１ＭＢ×１０万回の書き込みができると考えられることから、ＡＴＡマスタインタフェース制御部１０５、ＡＴＡスレーブインタフェース制御部１０７間の転送速度が１０ＭＢ／秒とすると、（１（ＭＢ）×１０（万回））／１０（ＭＢ／秒）＝１万秒＝約２．７７７時間となり、１ＧＢの物理ブロックアドレス空間を書込評価する場合に比して、１／１０００の評価時間に短縮される。
【００３８】
このように、物理ブロックアドレスの上限を設定することで、ウェアレベリング等の処理を行うリードライト制御部１０８の機能を変更することなく、評価時間を短縮することができ、結果として、書込評価に必要な消費電力を抑制することができる。
また、リードライト制御部１０８のアドレス変換制御部４０１が自動的に物理ブロックアドレスの上限を設定するから、ユーザがホスト装置１０１を操作するだけで容易に評価時間を短縮することができる。
なお、上記のように物理ブロックアドレスに上限を設定し、その範囲内の物理ブロックアドレスに対してのみ評価を行っても、デバイスの特性はアドレスによってほぼ変わらないと考えられるため、評価の信頼性に対する影響は少ないと考えられる。
【００３９】
次に、本リードライト制御部１０８の別の実施形態について説明する。
図９は、別の実施形態に係るリードライト制御部１０８内のウェアレベリング処理を行う部分の機能ブロック図である。
このリードライト制御部１０８内のウェアレベリング処理を行う部分の機能ブロックは、論理ブロックアドレスと物理ブロックアドレスとを対応させたデータを格納している変換テーブル９０２と、この変換テーブル９０２に基づいて、ホスト装置１０１から受信した論理ブロックアドレスを物理ブロックアドレスに変換するアドレス変換制御部９０１と、変換テーブル９０２内の実際のテーブルＮＯ．の最大値である実最大値９０４か、書込評価する際に用いるテーブルＮＯ．である評価用最大値９０５かを選択する選択部９０３とを有する。
なお、この実最大値９０４と評価用最大値９０５は、図示しない記憶手段に記憶されている。
【００４０】
選択部９０３はＳＳＤ１００に搭載された操作手段であるスイッチ９０６により、実最大値９０４と評価用最大値９０５とのいずれを選択するかが指定される、即ち、スイッチ９０６がオフ状態（図示の状態）のときは実最大値９０４が、オン状態のときは評価用最大値が選択されるように指定される。
従って、例えば評価用最大値９０５が７ｆｆ（Ｈ）に設定されている場合に、選択部９０３が評価用最大値９０５を選択すると、アドレス変換制御部９０１は、評価用最大値９０５をテーブルＮＯ．の最大値に適用して、上述したように、書込評価用として物理ブロックアドレス空間を約１ＭＢに設定し、評価時間を短縮することができる。
また、上記実施形態に係るリードライト制御部１０８に比して、外部にスイッチ機構を設ける必要があるが、特別なソフトウェアを不要とし、簡易的に物理ブロックアドレスの上限を設定することができる。
【００４１】
なお、スイッチ９０６が、複数の状態に切り替え可能な構成であれば、それぞれの状態に応じた物理ブロックアドレスを図示しない記憶手段に記憶させておくことで、スイッチ９０６で選択部９０３にそれぞれの物理ブロックアドレスのいずれかを選択させ、アドレス変換制御部９０１がその物理ブロックアドレスを上限として、アドレス変換するように制御することもできる。
【００４２】
次に、本不揮発性メモリ制御装置であるＳＳＤを搭載した画像処理装置について説明する。
図１０は、ＳＳＤを搭載した画像処理装置の１実施形態であるディジタル複写機の構成を示す概略側面図である。
このディジタル複写機３００は、原稿の画像を読み取るためのスキャナ部３０１と、読み取った画像に基づいて用紙へ画像形成を行うレーザ記録部３０２と、画像形成を行った用紙（出力紙）を揃え、これにステープル、パンチ処理を行う後処理部３０３とから成っている。
【００４３】
スキャナ部３０１は、透明ガラス体で構成された原稿台３０４と、原稿台３０４の上に原稿を給送するＲＡＤＦ（自動両面原稿送り装置：Reversing  Auto  Document  Feeder）３０５と、原稿台３０４上に給送された原稿の画像を読み取るスキャナユニット３０６とから成っている。
ＲＡＤＦ３０５は、図示しない原稿トレイから原稿台３０４を経由して、図示しない排紙トレイに至るまでの片面原稿給送路と、スキャナユニット３０６で片面の画像を読み取った原稿の表裏面を反転して再度原稿台３０４に給送するための両面原稿給送路を有している。
スキャナユニット３０６は、ＲＡＤＦ３０５から給送された原稿に半導体レーザで光を照射し、レンズ、ミラー等で原稿の反射光を光電変換素子の受光面に結合させる。その光電変換素子は原稿の画像面における反射光を電気信号に変換する。
【００４４】
レーザ記録部３０２は、用紙を搬送する用紙搬送部３０７と、スキャナユニット３０６で読み取った画像データを感光体上に画像形成するレーザ書込ユニット３０８と、用紙に画像を形成する電子写真プロセス部（画像形成部）３０９を有している。
用紙搬送部３０７は、図示しない給紙トレイから電子写真プロセス部３０９に用紙を搬送する主搬送路と、用紙の両面に画像を形成する両面転写モード時に、図示しない定着ローラを通過した用紙を、その表裏面を反転して再度電子写真プロセス部３０９に搬送する複搬送路を備えている。
レーザ書込ユニット３０８は、スキャナユニット３０６で読み取った画像データに基づいてレーザ光を照射する半導体レーザを備え、この半導体レーザから照射された光をミラーやレンズを通して電子写真プロセス部３０９の感光体ドラムの表面に配光する。これにより、電子写真プロセス部３０９の感光体ドラム表面には静電潜像が形成され、現像装置からトナーが供給されてトナー画像が形成される。
このトナー画像は、用紙搬送部３０７から搬送された用紙上に転写された後、定着ローラにて加熱及び加圧され、トナーが溶融して用紙の表面に定着する。
【００４５】
図１１は、このディジタル複写機３００の制御部のブロック図である。
この制御部は、画像データに対して各種の画像処理を施す画像処理ボード２０１を有している。
この画像処理ボード２０１は、ユニット毎に配置されたボード、即ち、光電変換素子を周辺部品と共に搭載したＣＣＤ（Charge  Coupled  Device）ボード２１０、このディジタル複写機３００の上面に設けられたＬＣＤ（Liquid  Crystal  Display）２２３と操作キー２２４を備えた操作パネル２２５を制御するオペレーションパネルボード２２８、プロセス部２１５、読取スキャナ部２１６、両面ユニット２１７を制御するマシンコントロールボード２３１を制御する。
【００４６】
画像処理ボード２０１は、各ボード２１０，２２８，２３１を制御するＣＰＵ（Central  Processing  Unit）２０２と、このＣＰＵ２０２の作業領域であるＲＡＭ（Random  Access  Memory）２０３と、図１０に示したスキャナユニット３０６で読み取った画像を処理する画像処理部２０４と、画像処理部で処理した画像を蓄積するメモリ２０６と、メモリ２０６に画像を保存し、又はメモリ２０６から画像を読み出す画像蓄積制御部２０５と、画像処理部２０４で処理した画像を感光体に書き込むレーザ書込部２０９を制御するレーザコントロール部２０７とから成っている。
【００４７】
ＣＣＤボード２１２は、ＲＡＤＦ３０５により搬送された原稿の画像を読み取るＣＣＤ２１３と、このＣＣＤ２１３を制御するＣＣＤ制御部２１２と、読み取った画像データの出力信号にゲイン調整を行うアナログ回路２１４と、アナログ信号をデジタル信号に変換するＡ／Ｄ（アナログ／デジタル）変換部２１１とを有する。
【００４８】
オペレーションパネルボード２２８は、画像処理ボード２０１のＣＰＵ２０２と制御データを送受信して操作パネル２２４を制御するＣＰＵ２２６と、この作業領域であるＲＡＭ２２７とを有する。
マシンコントロールボード２３１は、ディジタル複写機３００のマシン、即ち、プロセス部２１５、読み取りスキャナ部２１６、両面ユニット２１７、後処理部３０３、ＲＡＤＦ３０５、用紙搬送部３０７を駆動制御するＣＰＵ２３０と、この作業領域であるＲＡＭ２２９とを有し、画像処理ボード２０１のＣＰＵ２０２と制御データのやり取りを行う。
【００４９】
このディジタル複写機３００においてコピーを行うときは、まず、ＲＡＤＦ３０５により図１０に示した原稿台３０４に給送された原稿の画像を順次ＣＣＤ２１３が読み取り、その後、読み取った画像データの出力信号はアナログ回路２１４でゲイン調整が行われ、Ａ／Ｄ変換部２１１から８ビットの画像データとして画像処理ボード２０１に送られる。
続いて、この画像データは、画像処理部２０４において所定の画像処理が施された後、画像蓄積制御部２０５により、一度メモリ２０６に蓄積された後、ＳＳＤ（Solid  State  Disc）２０８に転送（記憶）される。
以上の画像データの処理がＲＡＤＦ３０５にセットされた全ての原稿について行われる。
【００５０】
原稿の画像読み取りが終了すると、ＳＳＤ２０８に格納された複数枚分の画像データは画像蓄積制御部２０５により、ページ順に読み出す処理が設定部数回だけ繰り返して実行され、画像処理部２０４において所定の画像処理後、レーザコントロール部２０７を介してレーザ書込部２０９に供給され、用紙に画像の書き込みが終了した後、後処理部３０３において一部分の出力用紙が揃えられ、ステープル、パンチ処理が行われ、トレイに排紙される。
【００５１】
このディジタル複写機３００において、ＳＳＤ２０８を本不揮発性メモリ制御装置であるＳＳＤとし、上述したように最大物理ブロックアドレスを設定することで、ディジタル複写機３００に搭載した状態、即ち実際の使用条件に近い状態で書込評価を行うことができ、この評価時間を従来に比して短時間で行うことができる。
【図面の簡単な説明】
【００５２】
【図１】ＳＳＤとホスト装置から成るシステムの構成を示すブロック図である。
【図２】ＡＴＡケーブルの信号線の状態に対応するＩ／Ｏレジスタの一覧を示す図である。
【図３】ホスト装置がＳＳＤにデータを書き込むためのパラメータを設定するレジスタの一覧を示す図である。
【図４】本リードライト制御部内のウェアレベリング処理を行う部分の機能ブロック図である。
【図５】変換テーブルに格納されているデータを示す図である。
【図６】アドレス変換制御部がＮＡＮＤフラッシュメモリにデータを書き込むときに行う、ウェアレベリング処理のフロー図である。
【図７】代替物理ブロックアドレス更新処理のサブルーチンを示すフロー図である。
【図８】変換テーブルに格納されているデータを示す図である。
【図９】別の実施形態に係るリードライト制御部内のウェアレベリング処理を行う部分の機能ブロック図である。
【図１０】ＳＳＤを搭載した画像処理装置の１実施形態であるディジタル複写機の構成を示す概略側面図である。
【図１１】このディジタル複写機の制御部のブロック図である。
【符号の説明】
【００５３】
１００，２０８・・・ＳＳＤ、１０１・・・ホスト装置、１０２・・・主制御部、１０３・・・データ蓄積部、１０４・・・ＡＴＡマスタインタフェース部、１０５・・・ＡＴＡマスタインタフェース制御部、１０６・・・ＡＴＡスレーブインタフェース部、１０７・・・ＡＴＡスレーブインタフェース制御部、１０８・・・リードライト制御部、１０９・・・ＮＡＮＤフラッシュメモリ、１１０・・・ＡＴＡケーブル、２０１・・・画像処理ボード、２０２，２２１，２２２，２２６，２３０・・・ＣＰＵ、２０３，２２７，２２９・・・ＲＡＭ、２０４・・・画像処理部、２０５・・・画像蓄積制御部、２０６・・・メモリ、２０７・・・レーザコントロール部、２０９・・・レーザ書込部、２１０・・・ＣＣＤボード、２１１・・・Ａ／Ｄ変換部、２１２・・・ＣＣＤ制御部、２１３・・・ＣＣＤ、２１４・・・アナログ回路、２１５・・・プロセス部、２１６・・・読み取りスキャナ部、２１７・・・両面ユニット、２２３・・・ＬＣＤ、２２４・・・操作キー、２２５・・・操作パネル、２２８・・・オペレーションパネルボード、２３１・・・マシンコントロールボード、３０１・・・スキャナ部、３０２・・・レーザ記録部、３０３・・・後処理部、３０４・・・原稿台、３０５・・・ＲＡＤＦ、３０６・・・スキャナユニット、３０７・・・用紙搬送部、３０８・・・レーザ書き込みユニット、３０９・・・電子写真プロセス部。
【図１】
2009211550.tif 000003
【図２】
2009211550.tif 000004
【図３】
2009211550.tif 000005
【図４】
2009211550.tif 000006
【図５】
2009211550.tif 000007
【図６】
2009211550.tif 000008
【図７】
2009211550.tif 000009
【図８】
2009211550.tif 000010
【図９】
2009211550.tif 000011
【図１０】
2009211550.tif 000012
【図１１】
2009211550.tif 000013