(57)【要約】  ホスト機器から転送されるユーザデータと、論理アドレスと物理アドレスとの対応を示す第１の情報テーブル３５をフラッシュメモリ２０の第1領域に記録する。第１の情報テーブル３５が記録されている物理ブロックアドレスと製造時からの第１の情報テーブルを記録する物理ブロックの更新回数を要素とする第２の情報テーブル３８を、フラッシュメモリ２０の第２領域に記録する。第１，第２の領域の物理ブロックは独立に循環させて記録する。そして、第２の情報テーブルの記録から第１領域の総書き換え回数を換算する。これにより、第２領域の書き換え回数を抑制することができ、第２領域に記録された製造時からの第１の情報テーブルの更新回数の信頼性を向上することができる。
2008139689.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理ブロックによって構成される少なくとも１つの不揮発性メモリと、
前記不揮発性メモリにデータを書き込み、前記不揮発性メモリから読み出すメモリコントローラとを具備する半導体記録装置であって、
前記不揮発性メモリは、
物理ブロック単位で第１領域と第２領域に分割され、
前記第１領域は、ホスト機器が発行する論理アドレスと物理アドレスとの対応を物理ブロック単位で作成した第１の情報テーブルとホスト機器から転送されるユーザデータを記録し、
前記第２領域は、前記第１の情報テーブルが記録されている物理ブロックの物理アドレスと製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を要素とする第２の情報テーブルを記録するものであり、
前記メモリコントローラは、
前記不揮発性メモリの第１領域における物理ブロックを管理する空きブロック管理テーブルと、
ホスト機器から発行されるライト命令を受け、前記空きブロック管理テーブルを参照してユーザデータを記録する物理ブロックを前記第１領域内で割り当てるとともに、前記第１の情報テーブルが記録されている物理ブロックを新たに割り当てる場合は、前記空きブロック管理テーブルを参照して新規に物理ブロックを割り当てる第１の管理部と、
ホスト機器から転送されるユーザデータを記録する物理ブロックが新たに割り当てられた場合は、前記第１の情報テーブルを更新する第１の情報テーブル更新部と、
前記第１の管理部が前記第１の情報テーブルを記録する物理ブロックを新たに割り当てた場合に、前記第２の情報テーブルを更新する第２の情報テーブル更新部と、
前記第２の情報テーブルが記録されている物理ブロックを管理し、当該物理ブロックを前記不揮発性メモリの第２領域で循環記録する第２の管理部と、
前記第２の情報テーブルに格納された製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を当該不揮発性メモリの第１領域の総書き換え回数に変換する書き換え回数変換部とを有し、
前記不揮発性メモリの第１領域の総書き換え回数を書き換え回数としてホスト機器に通知する半導体記録装置。
【請求項２】
前記不揮発性メモリの物理ブロックは、Ｎ（Ｎは自然数）個のページによって構成され、
前記第１の情報テーブルは前記不揮発性メモリの第１領域に割り当てられた第１の情報テーブル用の物理ブロックに記録され、
ホスト機器から転送されるユーザデータを記録する物理ブロックが割り当てられる毎にページ単位で更新する請求項１に記載の半導体記録装置。
【請求項３】
前記不揮発性メモリの第２の領域に割り当てる物理ブロック数は、内蔵する不揮発性メモリの書き換え回数の信頼性に対応させて決定する請求項１に記載の半導体記録装置。
【請求項４】
複数の物理ブロックによって構成され、物理ブロック単位の第１，第２の領域を有する不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すメモリコントローラであって、
前記不揮発性メモリの前記第１領域における物理ブロックを管理する空きブロック管理テーブルと、
ホスト機器から発行されるライト命令を受け、前記空きブロック管理テーブルを参照してユーザデータを記録する物理ブロックを前記第１領域内で割り当てるとともに、ホスト機器が発行する論理アドレスと物理アドレスとの対応を物理ブロック単位で作成した第１の情報テーブルが記録されている物理ブロックを新たに割り当てる場合は、前記空きブロック管理テーブルを参照して新規に物理ブロックを割り当てる第１の管理部と、
ホスト機器から転送されるユーザデータを記録する物理ブロックが新たに割り当てられた場合は、前記第１の情報テーブルを更新する第１の情報テーブル更新部と、
前記第１の管理部が前記第１の情報テーブルを記録する物理ブロックを新たに割り当てた場合に、前記第１の情報テーブルが記録されている物理ブロックの物理アドレスと製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を要素とする第２の情報テーブルを更新する第２の情報テーブル更新部と、
前記第２の情報テーブルが記録されている物理ブロックを管理し、当該物理ブロックを前記不揮発性メモリの前記第２領域で循環記録する第２の管理部と、
前記第２の情報テーブルに格納された製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を当該不揮発性メモリの第１領域の総書き換え回数に変換する書き換え回数変換部とを有し、
前記不揮発性メモリの第１領域の総書き換え回数を書き換え回数としてホスト機器に通知するメモリコントローラ。
【請求項５】
前記不揮発性メモリの物理ブロックは、Ｎ（Ｎは自然数）個のページによって構成され、
前記第１の情報テーブルは前記不揮発性メモリの第１領域に割り当てられた第１の情報テーブル用の物理ブロックに記録され、
ホスト機器から転送されるユーザデータを記録する物理ブロックが割り当てられる毎にページ単位で更新する請求項４に記載のメモリコントローラ。
【請求項６】
前記不揮発性メモリの第２の領域に割り当てる物理ブロック数は、内蔵する不揮発性メモリの書き換え回数の信頼性に対応させて決定する請求項４に記載のメモリコントローラ。
【請求項７】
ホスト機器が発行する論理アドレスと物理アドレスとの対応をブロック単位で作成した第1の情報テーブル、及びホスト機器から転送されるユーザデータを平均化させて不揮発性メモリの第１領域に記録し、
前記第１の情報テーブルが記録されている物理ブロックの物理アドレスと製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を要素とする第２の情報テーブルを、平均化させて前記不揮発性メモリの第２領域に記録し、
外部から書き換え回数が求められたときに、前記第２の情報テーブルに格納された製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を当該不揮発性メモリの第１領域の総書き換え回数に変換し、
前記不揮発性メモリの第１領域の総書き換え回数を書き換え回数として通知する書き換え回数通知方法。
【請求項８】
前記不揮発性メモリの物理ブロックは、Ｎ（Ｎは自然数）個のページによって構成され、
前記第１の情報テーブルは前記不揮発性メモリの第１領域に割り当てられた第１の情報テーブル用の物理ブロックに記録され、
ホスト機器から転送されるユーザデータを記録する物理ブロックが割り当てられる毎にページ単位で更新する請求項７に記載の書き換え回数通知方法。
【請求項９】
前記不揮発性メモリの第２の領域に割り当てる物理ブロック数は、内蔵する不揮発性メモリの書き換え回数の信頼性に対応させて決定する請求項７に記載の書き換え回数通知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリなどの不揮発性メモリを含むメモリコントローラ、半導体記録装置及び書き換え回数通知方法に関し、特に、データの記録回数を管理する技術に関する。
【背景技術】
【０００２】
従来、フラッシュメモリが内蔵されたカード型の半導体記録装置であるＳＤ（Secure Digital）カード（登録商標）等のメモリカードは、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。【０００３】
メモリカード等の半導体記録装置に内蔵されているフラッシュメモリは、一定サイズのブロック単位でデータを消去し書き換えできるメモリであり、その書き換え回数には制限がある。【０００４】
フラッシュメモリにおいては、記録済みのページに上書きすることはできない。データを更新する場合は、消去単位である物理ブロックを消去することで物理ブロックの全ページを一括消去し、ページ単位で書き込んでいく。例えば、ある物理ブロックが全ページ記録済みであり、その物理ブロックのページ０のみを更新する場合は、以下の４ステップにより実行される。
（１）その物理ブロックの全ページのデータを読み出し揮発性メモリに格納する。
（２）揮発性メモリ上でページ０のみを更新する。
（３）当該物理ブロックを消去する。
（４）当該物理ブロックの全ページに揮発性メモリのデータを書き込む。【０００５】
しかしながら、上記の手法では以下の問題点がある。
物理ブロックが不良になった場合には、不良物理ブロックには書き込めないので、論理ブロック番号と物理ブロック番号の変換テーブルを実装し、不良となった場合には別の物理ブロック番号が付された物理ブロックに書き込む。このため、不良ブロックの発生予測数分だけ、余分に物理ブロックを予め確保しておき、書き込みエラーが発生した場合は書き込みエラーが発生したブロックをエラーブロックとして登録し、エラーブロック以外の物理ブロックに書き込むという手法が用いられる。【０００６】
又フラッシュメモリには書き換え回数寿命があるが、同一の物理ブロックのみが多く書き換えられる可能性がある。現状では約１０万回の書き換えが可能とされており、１０万回を超えて書き換えを行った場合は、書き込みエラーが発生する確率が増加する。【０００７】
例えば、動画をリアルタイムにフラッシュメモリに記録する場合においては、書き込みエラーが高い頻度で発生すると、生成された映像がフラッシュメモリに伝達される速度よりフラッシュメモリへの書き込み速度が小さくなる。従って動画を連続的に記録することができなくなるという問題が生じる。【０００８】
この問題の発生を遅らせるために、特許文献１にはメモリの書き換え回数を見かけ上増加させる従来技術が知られている。この従来技術においては、メモリを複数の領域に分割し各領域の書き換え回数を記憶する。メモリの書き換えは記憶された各領域の書き換え回数に基づいて、各領域の書き換え回数の差が少なくなるように、つまり書き換え回数の少ない領域を優先的に使用するように制御する技術である。なお、このように各領域の書き換え回数の差が少なくなるように制御する手法は、レベリングと呼ばれている。この従来技術をメモリカードに適用すると、同一の論理ブロックにデータを書き込もうとした場合にも、フラッシュメモリにおいて実際に記録する物理ブロックは変化する。レベリングが完璧に実施されると、書き換え可能回数は、（メモリカードの容量／書き換えブロックのサイズ）×（書き換えブロック毎の書き換え可能回数）まで増加することになる。【０００９】
しかし特許文献１では、レベリングによって書き換え回数を増大させることができても、実際に書き換え回数を参照可能に記録してユーザにメモリカードの寿命を知らせることはできなかった。【００１０】
本発明者は、特許文献２において、ホスト機器の要求に対応してフラッシュメモリへ書き込みを行ったブロック数である書き換え回数を計数する書き換え回数計数部と、フラッシュメモリに書き込まれている総書き換え回数を読み出す書き換え回数リード部と、書き換え回数計数部によって計数された書き換え回数と、書き換え回数リード部によって読み出された総書き換え回数に基づいて、新たに初回からの総計値である総書き換え回数を求めて、求めた総書き換え回数をフラッシュメモリに書き込む書き換え回数ライト部と備えたメモリカードを提案した。この書き換え回数ライト部は、求めた総書き換え回数を、前に総書き換え回数の書き込みを行ったときからの書き換え回数が所定回数以上に到達した時点で、フラッシュメモリに書き込むことを特徴とする。【００１１】
画像データを記録するカメラレコーダ等では、メモリカードの全容量分のデータを記録するとＨＤＤ等にデータを転送した後に、メモリカードをフォーマットして再記録に使用する。このような用途においては、（物理ブロックサイズ）＊書き換え回数／容量が半導体メモリの書き換え回数上限値にほぼ一致する。
【特許文献１】特開平６−３０２１９４号公報
【特許文献２】特開２００５−２８４６５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記のように従来の半導体記録装置では、レベリングによってメモリの書き換え回数を見かけ上増大させること、及び書き換え回数をフラッシュメモリに書き込むことによって半導体記録装置の寿命を知る手法は確立されている。
しかしながら、以下の２個の課題について対策が不十分である。
（課題１）書き換え回数の増大に伴う書き換え回数を登録したブロックのデータ保持特性の劣化。
（課題２）メモリカード等の電断に伴う書き換え回数誤差の蓄積。
以下、上記課題について説明する。【００１３】
まず、（課題１）の保持特性について説明する。フラッシュメモリは現在大容量化が進行中である。大容量化は多値ＮＡＮＤフラッシュメモリによるところが大きい。２値ＮＡＮＤメモリでは初期のデータ保持時間が１０年、１０万回の書き換え後のデータ保持時間が１年とされている。一方、昨今の技術トレンドである多値フラッシュメモリでは、初期のデータ保持時間が１０年、１万回書き換え後のデータ保持時間が１年とされている。また、多値フラッシュメモリにおいては、ゲート酸化膜に蓄積される電荷量を多値レベル、例えば４レベルに分離して記録するため、プロセスの微細化につれてデータ保持時間はさらに短くなることが予想される。ユーザが記録したデータに関しては、データ保持時間がさらに短くなっても、例えばカメラレコーダで記録した後にすぐにＨＤＤに転送すれば実用上問題はない。しかし書き換え回数の情報はメモリカードに固有の情報であり、他に転送することはできない。ゆえに、書き換え回数のデータ保持の信頼性を向上させることが要求されている。【００１４】
次に（課題２）の電断にかかる課題について説明する。特許文献２のメモリカードでは、書き換え回数の書き込みが全体の書き換え回数の増加に与える影響を少なくするため、書き込み毎に総書き換え回数を更新せず、前に総書き換え回数を書き込んだときからの書き換え回数が所定回数以上に到達した時点で、フラッシュメモリに書き込むことを特徴としていた。しかしながら、前に総書き換え回数の書き込みを行ったときからの書き換え回数が所定回数以上に到達する前に電断が起こったり、あるいは突然メモリカードを抜いたりした場合には、書き換え回数の増加が記録に反映されない。そのため、総書き換え回数の誤差が増大するといった課題が発生する。また、多値ＮＡＮＤフラッシュメモリの場合は書き換え回数の上限値が小さいため、電断等による書き換え回数の登録漏れによる書き換え回数の計数誤差は無視できない。【００１５】
本発明は、上記問題を解決するものであり、半導体記録装置の書き換え回数を外部に出力する場合に、書き換え回数の保持特性を改善すると共に、電断による書き換え回数の登録漏れ防止を実現し、書き換え回数の信頼性、精度を大幅に改善することができるメモリコントローラ、半導体記録装置及び書き換え回数通知方法を提供する。
【課題を解決するための手段】
【００１６】
この課題を解決するために、本発明の半導体記録装置は、複数の物理ブロックによって構成される少なくとも１つの不揮発性メモリと、前記不揮発性メモリにデータを書き込み、前記不揮発性メモリから読み出すメモリコントローラとを具備する半導体記録装置であって、前記不揮発性メモリは、物理ブロック単位で第１領域と第２領域に分割され、前記第１領域は、ホスト機器が発行する論理アドレスと物理アドレスとの対応を物理ブロック単位で作成した第１の情報テーブルとホスト機器から転送されるユーザデータを記録し、前記第２領域は、前記第１の情報テーブルが記録されている物理ブロックの物理アドレスと製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を要素とする第２の情報テーブルを記録するものであり、前記メモリコントローラは、前記不揮発性メモリの第１領域における物理ブロックを管理する空きブロック管理テーブルと、ホスト機器から発行されるライト命令を受け、前記空きブロック管理テーブルを参照してユーザデータを記録する物理ブロックを前記第１領域内で割り当てるとともに、前記第１の情報テーブルが記録されている物理ブロックを新たに割り当てる場合は、前記空きブロック管理テーブルを参照して新規に物理ブロックを割り当てる第１の管理部と、ホスト機器から転送されるユーザデータを記録する物理ブロックが新たに割り当てられた場合は、前記第１の情報テーブルを更新する第１の情報テーブル更新部と、前記第１の管理部が前記第１の情報テーブルを記録する物理ブロックを新たに割り当てた場合に、前記第２の情報テーブルを更新する第２の情報テーブル更新部と、前記第２の情報テーブルが記録されている物理ブロックを管理し、当該物理ブロックを前記不揮発性メモリの第２領域で循環記録する第２の管理部と、前記第２の情報テーブルに格納された製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を当該不揮発性メモリの第１領域の総書き換え回数に変換する書き換え回数変換部とを有し、前記不揮発性メモリの第１領域の総書き換え回数を書き換え回数としてホスト機器に通知するものである。【００１７】
ここで前記不揮発性メモリの物理ブロックは、Ｎ（Ｎは自然数）個のページによって構成され、前記第１の情報テーブルは前記不揮発性メモリの第１領域に割り当てられた第１の情報テーブル用の物理ブロックに記録され、ホスト機器から転送されるユーザデータを記録する物理ブロックが割り当てられる毎にページ単位で更新するようにしてもよい。【００１８】
ここで前記不揮発性メモリの第２の領域に割り当てる物理ブロック数は、内蔵する不揮発性メモリの書き換え回数の信頼性に対応させて決定するようにしてもよい。【００１９】
この課題を解決するために、本発明のメモリコントローラは、複数の物理ブロックによって構成され、物理ブロック単位の第１，第２の領域を有する不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出すメモリコントローラであって、前記不揮発性メモリの前記第１領域における物理ブロックを管理する空きブロック管理テーブルと、ホスト機器から発行されるライト命令を受け、前記空きブロック管理テーブルを参照してユーザデータを記録する物理ブロックを前記第１領域内で割り当てるとともに、ホスト機器が発行する論理アドレスと物理アドレスとの対応を物理ブロック単位で作成した第１の情報テーブルが記録されている物理ブロックを新たに割り当てる場合は、前記空きブロック管理テーブルを参照して新規に物理ブロックを割り当てる第１の管理部と、ホスト機器から転送されるユーザデータを記録する物理ブロックが新たに割り当てられた場合は、前記第１の情報テーブルを更新する第１の情報テーブル更新部と、前記第１の管理部が前記第１の情報テーブルを記録する物理ブロックを新たに割り当てた場合に、前記第１の情報テーブルが記録されている物理ブロックの物理アドレスと製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を要素とする第２の情報テーブルを更新する第２の情報テーブル更新部と、前記第２の情報テーブルが記録されている物理ブロックを管理し、当該物理ブロックを前記不揮発性メモリの前記第２領域で循環記録する第２の管理部と、前記第２の情報テーブルに格納された製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を当該不揮発性メモリの第１領域の総書き換え回数に変換する書き換え回数変換部とを有し、前記不揮発性メモリの第１領域の総書き換え回数を書き換え回数としてホスト機器に通知するものである。【００２０】
ここで前記不揮発性メモリの物理ブロックは、Ｎ（Ｎは自然数）個のページによって構成され、前記第１の情報テーブルは前記不揮発性メモリの第１領域に割り当てられた第１の情報テーブル用の物理ブロックに記録され、ホスト機器から転送されるユーザデータを記録する物理ブロックが割り当てられる毎にページ単位で更新するようにしてもよい。【００２１】
ここで前記不揮発性メモリの第２の領域に割り当てる物理ブロック数は、内蔵する不揮発性メモリの書き換え回数の信頼性に対応させて決定するようにしてもよい。【００２２】
この課題を解決するために、本発明の書き換え回数通知方法は、ホスト機器が発行する論理アドレスと物理アドレスとの対応をブロック単位で作成した第1の情報テーブル、及びホスト機器から転送されるユーザデータを平均化させて不揮発性メモリの第１領域に記録し、前記第１の情報テーブルが記録されている物理ブロックの物理アドレスと製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を要素とする第２の情報テーブルを、平均化させて前記不揮発性メモリの第２領域に記録し、外部から書き換え回数が求められたときに、前記第２の情報テーブルに格納された製造時からの前記第１の情報テーブルが記録されている物理ブロックの更新回数を当該不揮発性メモリの第１領域の総書き換え回数に変換し、前記不揮発性メモリの第１領域の総書き換え回数を書き換え回数として通知するものである。【００２３】
ここで前記不揮発性メモリの物理ブロックは、Ｎ（Ｎは自然数）個のページによって構成され、前記第１の情報テーブルは前記不揮発性メモリの第１領域に割り当てられた第１の情報テーブル用の物理ブロックに記録され、ホスト機器から転送されるユーザデータを記録する物理ブロックが割り当てられる毎にページ単位で更新するようにしてもよい。【００２４】
ここで前記不揮発性メモリの第２の領域に割り当てる物理ブロック数は、内蔵する不揮発性メモリの書き換え回数の信頼性に対応させて決定するようにしてもよい。
【発明の効果】
【００２５】
本発明のメモリコントローラ及び半導体記録装置及び書き換え回数通知方法によれば、第１のメモリ領域の物理ブロックと第２のメモリ領域の物理ブロックを独立に平均化して記録することによりフラッシュメモリの第２領域の書き換え回数を抑制することができ、メモリの第２領域に記録された製造時からの前記第１の情報テーブルの更新回数の信頼性を向上することができる。【００２６】
また、第１の情報テーブルを更新する毎に不揮発性メモリに記録することにより、総書き換え回数の値が１回増加することになる。従って１回の電断に伴う書き換え回数の誤差は、高々１回に過ぎないため、電断に伴う書き換え回数誤差の蓄積を抑制することができる。【００２７】
よって、不揮発性メモリの第２領域に記録された製造時からの前記第1の情報テーブルの更新回数より、不揮発性メモリの書き換え回数を算出してホスト機器に通知することにより、容易に書き換え回数を検出できる信頼性の高いシステムを構築することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は本発明の実施の形態１におけるメモリカードの構成図である。
【図２】図２は本実施の形態のフラッシュメモリにおけるメモリ領域の説明図である。
【図３】図３はフラッシュメモリを構成する物理ブロックの構成図である。
【図４】図４は本発明の第１の情報テーブルの説明図である。
【図５】図５は本発明の空きブロック管理テーブルの説明図である。
【図６Ａ】図６Ａは本発明の第１の情報テーブルの遷移図である。
【図６Ｂ】図６Ｂは本発明の第１の情報テーブルの遷移図である。
【図６Ｃ】図６Ｃは本発明の第１の情報テーブルの遷移図である。
【図７Ａ】図７Ａは本発明の第１の情報テーブルを格納している物理ブロックの遷移図である。
【図７Ｂ】図７Ｂは本発明の第１の情報テーブルを格納している物理ブロックの遷移図である。
【図７Ｃ】図７Ｃは本発明の第１の情報テーブルを格納している物理ブロックの遷移図である。
【図８】図８は本発明の第２の情報テーブルの説明図である。
【図９Ａ】図９Ａは本発明の第２の情報テーブルを格納している物理ブロックの遷移図である。
【図９Ｂ】図９Ｂは本発明の第２の情報テーブルを格納している物理ブロックの遷移図である。
【図９Ｃ】図９Ｃは本発明の第２の情報テーブルを格納している物理ブロックの遷移図である。
【図９Ｄ】図９Ｄは本発明の第２の情報テーブルを格納している物理ブロックの遷移図である。
【符号の説明】
【００２９】
１１  半導体記録装置
１２  ホスト機器
２０  フラッシュメモリ
３０  メモリコントローラ
３１  外部インターフェイス
３２  コマンド解析部
３３  第１の管理部
３４  空きブロック管理テーブル
３５  第１の情報テーブル
３６  第１の情報テーブル更新部
３７  第２の管理部
３８  第２の情報テーブル
３９  第２の情報テーブル更新部
４０  フラッシュ制御部
４１  書き換え回数変換部
【発明を実施するための最良の形態】
【００３０】
図１に本発明の実施の形態による半導体記録装置の構成図を示す。図１において、半導体記録装置１１は例えばメモリカードとして実現され、ホスト機器１２に接続されて使用される。半導体記録装置１１は不揮発性メモリであるフラッシュメモリ２０、及びこのフラッシュメモリ２０に対してデータの書き込み及び読み出しを制御するメモリコントローラ３０を含んで構成されている。【００３１】
次にメモリコントローラ３０について詳細に説明する。外部インターフェイス３１は、ホスト機器１１からのコマンドを受信し、データの転送を行うインターフェイスである。コマンド解析部３２は外部インターフェイス３１によって受信されたコマンドを解析する。これに加えてコマンド解析部３２は、リードコマンドやライトコマンドの他に、本発明に特有のホストコマンドからフラッシュメモリの書き換え回数リードコマンドが与えられたときにこのコマンドであることを認識する。尚メモリコントローラ３０では、コマンド解析に伴いフラッシュメモリ２０にデータを書き込み及び読み出すブロックが必要であるが、これらは従来のものと同様であるので図１では記載を省略しており、本発明に特徴的な部分のみを記載している。【００３２】
次に第１の管理部３３は空ブロック管理テーブル（図中でＭＴ）３４と第１の情報テーブル（図中でＩＴ１）３５を管理するものである。空ブロック管理テーブル３４は、フラッシュメモリ２０の物理ブロックが使用済みか空きブロックかを管理するテーブルであり、揮発性メモリで構成される。【００３３】
第１の情報テーブル３５はホストから発行される論理ブロック番号とフラッシュメモリ２０にライトされている物理ブロック番号との対応を示す論物変換テーブルである。このテーブルはメモリコントローラ３０の揮発性メモリに記録され、同時にフラッシュメモリ２０のいずれかの物理ブロックの１ページに記録される。第１の情報テーブル更新部３６は、ホスト機器１１よりライトコマンドが発行され新規の物理ブロックが論理ブロックに割り当てられた場合に、第１の情報テーブル３５を更新し、フラッシュメモリ２０内の第１の情報テーブルの記録も更新するものである。【００３４】
第２の管理部３７は第２の情報テーブル（図中でＩＴ２）３８を管理するものである。第２の情報テーブル３８は、第１の情報テーブルが記録されている物理ブロックについての情報を記録したテーブルであり、揮発性メモリで構成される。第２の情報テーブル３８には、以下の情報が記録される。
（Ａ）第１の情報テーブルが記録されている物理ブロック番号
（Ｂ）製造時からの第１の情報テーブルが格納された物理ブロックが更新された回数
このテーブルはメモリコントローラ３０の揮発性メモリに記録され、同時にフラッシュメモリ２０のいずれかの物理ブロックの１ページに記録される。又第２の情報テーブル更新部３９は、第１の情報テーブルが記録されている物理ブロック位置が更新された場合に、第２の情報テーブルを更新し、フラッシュメモリ２０内の第２の情報テーブルの記録も更新するものである。【００３５】
次にフラッシュ制御部４０はライトコマンドやリードコマンド及び第１，第２の情報テーブル更新部３６，３９の指示に基づいてフラッシュメモリ２０へのデータのライト及びフラッシュメモリ２０からのデータのリードを行うものである。【００３６】
書き換え回数変換部４１は、書き換え回数リードコマンドがホスト機器１１より与えられたときに、第１，第２の情報テーブル３５，３８の情報に基づいて書き換え回数を算出し、その結果を外部インターフェイス３１より出力するものである。【００３７】
次にフラッシュメモリ２０について説明する。図２はフラッシュメモリ２０の領域マップであり、図３はその１つの物理ブロックの構成図を示す。【００３８】
フラッシュメモリ２０はＡ個（Ａは自然数）の物理ブロックより構成されており、本実施の形態では、Ａ個の物理ブロックに対して０〜（Ａ−１）の物理ブロック番号（ＰＢＮ）を付している。このうち物理ブロック番号０〜（Ｂ−１）（Ｂは、Ｂ＜Ａを満たす自然数）のＢ個の物理ブロックをフラッシュメモリ２０の第１領域２０−１、物理ブロック番号Ｂ〜（Ａ−１）の（Ａ−Ｂ）個の物理ブロックをフラッシュメモリ２０の第２領域２０−２としている。各物理ブロックは図３に示すＮ個（Ｎは自然数）のページによって構成され、各ページには０〜（Ｎ−１）のページ番号（ＰＮ）が付されている。【００３９】
次に本実施の形態では、ユーザデータを記録する論理ブロック番号（ＬＢＮ）０〜（Ｂ−ｍ）の（Ｂ−ｍ＋１）（ｍは自然数）個の論理ブロックは図２で示すフラッシュメモリ２０の第１領域２０−１の物理ブロックにマッピングされ、ユーザデータが記録される。今仮にｍ＝９とすると、第１領域２０−１はＢ個の物理ブロックから構成されており、この中の（Ｂ−８）個の物理ブロックがユーザデータの記録用に用いられる。残りの８個の物理ブロックは第１の情報テーブルを保持しておく物理ブロック、及び予備ブロックとして使用される。つまり、第１領域２０−１のＢ個の物理ブロックは、
（タイプ０）：  論理ブロックに対応したユーザデータ記録用の物理ブロック
（タイプ１）：  第１の情報テーブル記録用の物理ブロック
（タイプ２）：  後発不良ブロックが生じたときのための予備の物理ブロック
の３タイプに分類される。【００４０】
次に第１の情報テーブル３５について説明する。第１の情報テーブル３５は論理ブロック番号と物理ブロック番号の変換テーブルであり、図４にその一例を示す。図４は、論理ブロック番号０の論理ブロックが物理ブロック番号３の物理ブロックに、論理ブロック番号１の論理ブロックが物理ブロック番号６の物理ブロックにマッピングされていることを示している。また論理ブロック番号Ｌ及び（Ｌ＋１）は対応する物理ブロックの欄が「Ａ」であり、これはデータが書かれていない空ブロックであることを示している。このように第１の情報テーブル３５を用いて論理ブロックと物理ブロックを対応づけ、後発の不良ブロックが生じた場合にはその物理ブロックを用いないようにして不良ブロックの発生に対応することができる。【００４１】
更に、本実施の形態では第１領域と第２領域とを分けてレベリングしている。第１領域のレベリングでは、（タイプ０）と（タイプ１）の物理ブロックの使用頻度を平均化している。その手法として各物理ブロックの使用状態を示す空ブロック管理テーブル３４を用いて未使用の物理ブロックを平均的に使用するように制御する。このため第１領域内で未使用の物理ブロックを循環的に使用するようにしてもよく、又未使用の物理ブロックの中からランダムに書き込むべき物理ブロックを選択するようにしてもよい。以下では循環的に使用するものとして説明する。【００４２】
次に空きブロック管理テーブル３４について説明する。図５は空きブロック管理テーブル３４の一例を示す図であり、各物理ブロックの使用状態を示す。使用状態が１の物理ブロックは使用中、０の物理ブロックは空きで新たに使用することが可能であることを示す。空きブロック管理テーブル３４は同一の内容をフラッシュメモリ２０に保持するものではなく、電源投入毎に以下のようなステップで作成される。
（１）電源が供給されると、全ブロックを空き状態に初期化する。
（２）不良ブロックを使用済みに更新する。（不良ブロックの管理は発明の本質から外れるので詳細な説明はしないが、フラッシュメモリの固定位置に不良ブロックの番号を記録しておく。）
（３）第１の情報テーブル３５を読み出し、使用されている物理ブロックを空きブロック管理テーブル３４で使用済みに更新する。
（４）第１の情報テーブル３５が更新されたときにその更新をテーブル３４に反映する。【００４３】
上記のように、電源供給時に空ブロック管理テーブル３４を作成し、次に空き物理ブロックにライトする場合は、空ブロック管理テーブル３４より順にサーチした空ブロックを新規ブロックとして割り当てると共に、空ブロック管理テーブル３４を更新していく。【００４４】
次に第１の情報テーブル３５を格納するタイプ１の物理ブロックの記録動作について説明する。図６Ａ〜図６Ｃは第１の情報テーブル３５の遷移を示す図であり、図６Ａはある時点での第１の情報テーブルの状態を示す。図７Ａ〜図７Ｃは第１の情報テーブル３５を格納する物理ブロックの状態遷移を示す図であり、斜線部は使用済みのページを示している。図７Ａでは物理ブロック番号ＰＢＮ０が第１の情報テーブル３５を格納している。この物理ブロックは第１の情報テーブル３５が図６Ａの時点においてページ０〜ページ（Ｎ−２）が記録済みで、ページ（Ｎ−１）が未記録である。本実施の形態では、第１の情報テーブル３５は物理ブロックの先頭ページから順番に１ページごとに記録されるので、図７Ａの状態では当該物理ブロックには（Ｎ−１）個の第１の情報テーブルが記録済みであり、図６Ａに示した最新の第１の情報テーブル３５はページ（Ｎ−２）に保持されていることを示している。【００４５】
図６Ａ，図７Ａに示す状態で、ホスト機器１１からＬ番の論理ブロックに対してライトコマンドが発行された場合の動作について、図５、図６、図７を用いて説明する。【００４６】
現在の第１の情報テーブル３５は図６Ａに示すように、論理ブロック番号Ｌに対応する物理ブロックは無効を示す「Ａ」であり、物理ブロックは割り当てられていない。よって、第１の管理部３３は空ブロック管理テーブル３４を参照して空ブロックサーチを行う。現在の空きブロック管理テーブル３４は図５に示す状態であり、（Ｂ−１）番の物理ブロックがサーチされたとする。よって、第１の管理部３３は、論理ブロック番号Ｌの論理ブロックに、物理ブロック番号（Ｂ−１）番の物理ブロックを割り当てる。又第１の情報テーブル更新部３６は、第１の情報テーブル３５を図６Ｂに示すように更新し、更新した第１の情報テーブル３５をフラッシュ制御部４０を介してフラッシュメモリ２０に書き込む。現在の第１の情報テーブルに割り当てられているＰＢＮ０の物理ブロックは、ページ（Ｎ−１）番に更新された第１の情報テーブルを書き込むことにより、図７Ａから図７Ｂの状態に遷移する。【００４７】
さらに（Ｌ＋１）番の論理ブロックにライトコマンドが発行された場合について説明する。この時点での第１の情報テーブルは図６Ｂに示すように、（Ｌ＋１）番の論理ブロックに対応する物理ブロックは無効を示す「Ａ」であり、物理ブロックは割り当てられていない。よって、第１の管理部３３は空ブロックサーチを行い、物理ブロック番号１の物理ブロックがサーチされたとする。第１の管理部３３は、論理ブロック番号（Ｌ＋１）の論理ブロックに、物理ブロック番号１を割り当てる。第１の情報テーブル更新部３６は、第１の情報テーブル３５を図６Ｃに示すように更新し、更新した第１の情報テーブル３５をフラッシュ制御部４０を介してフラッシュメモリ２０に書き込む。現在の第１の情報テーブルに割り当てられている物理ブロック番号０の物理ブロックは、図７Ｂに示すように全てのページが記録済みである。この場合、第１の管理部３３は空ブロックサーチを実施する。このサーチによって物理ブロック番号２の物理ブロックをサーチしたとする。そして物理ブロック番号２の物理ブロックのページ０に図６Ｃに示す最新の第１の情報テーブルを書き込む。そして物理ブロック番号０の物理ブロックが未使用ブロック、物理ブロック番号２の物理ブロックが使用ブロックになるよう空きブロック管理テーブル３４を更新する。図７Ｃはこの状態を示している。【００４８】
次に、第１の情報テーブル３５の管理について説明する。第１の情報テーブル３５は第２の情報テーブル３８によって管理する。図８は第２の情報テーブル３８の一例を示している。図９Ａ〜図９Ｄは、フラッシュメモリ２０における第２の情報テーブル３８を記録する物理ブロックの状態遷移の説明図である。第２の情報テーブルは図２に示すフラッシュメモリ２０の第２領域２０−２の中で循環して記録される。例えば、製造時は物理ブロック番号（Ａ−１）の物理ブロックを第２の情報テーブルを記録する物理ブロックとして割り当て、図９Ａに示すようにページ０に第２の情報テーブル３８の初期値を書き込む。そして、第１の情報テーブルを格納しているタイプ１の物理ブロックが他の物理ブロックに移動すると、第２の情報テーブル更新部３９は第２の情報テーブル３８を更新し、物理ブロック番号（Ａ−１）の物理ブロックのページ１に更新された第２の情報テーブル３８を記録する。以後はタイプ１の物理ブロックの移動毎にこの処理を行う。図９Ｂは（Ｎ−１）回第１の情報テーブルの物理ブロック番号が更新された時点での物理ブロック番号（Ａ−１）の物理ブロックの状態を示す。この場合の製造時からの第１の情報テーブルが格納された物理ブロックが更新された回数は（Ｎ−１）回である。図９Ｃは、Ｎ回第１の情報テーブルの物理ブロック番号は更新された時点での第２の情報テーブルが格納された物理ブロックＰＢＮ（Ａ−１）の状態を示す。この場合の製造時からの第１の情報テーブルが格納された物理ブロックが更新された回数はＮ回である。【００４９】
さて（Ｎ＋１）回第１の情報テーブル３５の物理ブロック番号が更新されると、物理ブロック番号（Ａ−１）の物理ブロックは全ページが書き込み済みであるため、物理ブロック番号ＰＢＮ（Ａ−２）の物理ブロックに第２の情報テーブル３８を記録する。図９Ｄはこの時点でのＰＢＮ（Ａ−１），ＰＢＮ（Ａ−２）の物理ブロックの状態を示す。この場合の製造時からの第１の情報テーブルが格納された物理ブロックが更新された回数は（Ｎ＋１）回である。【００５０】
このように、フラッシュメモリの第２領域２０−２ではＰＢＮ（Ａ−１）番の物理ブロックからＰＢＮ（Ａ−２）番の物理ブロック、・・・第２領域２０−２の先頭であるＢ番の物理ブロック、ＰＢＮ（Ａ−１）番の物理ブロックというように、第２領域２０−２内で循環記録していく。【００５１】
第２の管理部３７は、システムへの電源供給時に、フラッシュ制御部４０を介してフラッシュメモリ２０の第２領域２０−２に記録された最新の第２の情報テーブルを読み出し、タイプ１の物理ブロックの製造時からの更新回数を参照して現時点の第２の情報テーブル３８を確定する。そして、第１の情報テーブルが格納された物理ブロックが更新される毎に、第２の情報テーブル更新部３９は情報テーブル３８を更新し、フラッシュ制御部４０を介してフラッシュメモリ２０に記録する。【００５２】
次に書き換え回数変換部４１の動作について説明する。書き換え回数は第１，第２の情報テーブル３５，３８のデータから換算することができる。
第１の情報テーブル３５は論理ブロックと物理ブロックの変換テーブルであり、１ブロックが変換される毎に第１の情報テーブルを更新していけば、次式（１）が成り立つ。
第１の情報テーブルの更新回数
＝第１領域の物理ブロックの総書き換え回数  ・・・（１）
さらに、第１の情報テーブルはページ単位で更新されるため、製造時からのタイプ１の物理ブロックの更新回数をUPDATE#BLK#NUM、物理ブロックを構成するページ数をN、現在の第１の情報テーブルが存在する物理ブロックのページ番号をXとすると、製造時からの第１の情報テーブルの書き換え回数は次式（２）で示される。
製造時からの第１の情報テーブルの書き換え回数
＝（UPDATE #BLK#NUM）＊N＋X  ・・・（２）
また、第１の情報テーブルの物理ブロックの書き換え回数は次式（３）で示される。
第1の情報テーブルの物理ブロックの書き換え回数
＝UPDATE#BLK#NUM  ・・・（３）
従って第１領域の物理ブロックの総書き換え回数は、式(１)，式（２），式（３）より、次式（４）によって求められる。
第１領域の物理ブロックの総書き換え回数
＝（UPDATE#BLK#NUM）＊（N＋１）＋X  ・・・（４）【００５３】
上記のように第１の情報テーブルの記録ページ番号Ｘと第2の情報テーブルに保持されている更新回数UPDATE#BLK#NUMを参照して、メモリの第1領域の物理ブロックの総書き換え回数を式（４）により求めることができる。【００５４】
そしてフラッシュメモリ２０の第1領域２０−１の物理ブロック数はＢ個であるから、第１領域を全て書き換える回数は次式（５）で示される。
第1領域の書き換え回数
＝（第１の領域の物理ブロックの総書き換え回数）／（第1領域の物理ブロック数）
＝（（UPDATE#BLK#NUM）＊（N＋１）＋X）／Ｂ  ・・・（５）
ホスト機器よりフラッシュメモリの書き換え回数リードコマンドが発行されたときに、コマンド解析部３２によってこのコマンドが書き換え回数変換部４１に与えられる。書き換え回数変換部４１はフラッシュメモリの書き換え回数を式（５）により導出し、外部インターフェイス３１を介してホスト機器１１に転送する。こうすれば容易に書き換え回数を検出できる信頼性の高いシステムを構築することができる。【００５５】
次に、フラッシュメモリの第２領域の書き換え回数について説明する。メモリの第２領域の物理ブロックの総書き換え回数は次式（６）で示される。尚Ｉnt［Ｙ］はＹを超えない最大の整数とする。
第２領域の物理ブロックの総書き換え回数＝
Ｉnt［第１の情報テーブルの物理ブロックの書き換え回数／N］＋１  ・・・（６）
従って式（３）より、メモリの第２領域の物理ブロックの総書き換え回数は次式（７）で示される。
メモリの第２領域の物理ブロックの総書き換え回数＝
Ｉnt［UPDATE#BLK#NUM）／Ｎ］＋１  ・・・（７）
また、メモリの第２の領域の物理ブロック数は（Ａ−Ｂ）個であることより、メモリの第２領域全体の書き換え回数は、次式（８）で示される。
第２領域の書き換え回数
＝（Ｉnt［UPDATE#BLK#NUM／Ｎ］＋１）／（Ａ−Ｂ）  ・・・（８）【００５６】
ここで、フラッシュメモリの物理ブロック当たりの記録ページ数は１００ページ程度であること、書き換え回数は１００００回程度であること、フラッシュメモリの物理ブロック数は１００００ブロック程度であること、及びＸの影響は微小なことから、
メモリの第1領域の書き換え回数＝１００００、Ｂ＝１００００、Ｎ＝１００、Ｘ＝０を式（５）に代入し、UPDATE#BLK#NUMを求めると
UPDATE#BLK#NUM＝１.０×１０6  程度になる。
第２領域に１０個の物理ブロックを割り当てた場合のフラッシュメモリの第２領域の書き換え回数は式（８）より１.０×１０3程度になる。即ち、第２領域の書き換え回数は、メモリの第１領域の書き換え回数と比較して圧倒的に小さくなる。上記の例では、メモリの第２領域の書き換え回数はメモリの第１の領域の書き換え回数の１／１０となり、大幅に抑制することが可能である。よって、第１の領域の物理ブロックと第２のメモリ領域の物理ブロックを独立に循環させて記録することにより、フラッシュメモリの第２領域の書き換え回数を抑制することができ、第２領域に記録された製造時からの前記第１の情報テーブルの更新回数の信頼性を向上することができる。これにより第１の課題である書き換え回数の増大に伴う書き換え回数登録ブロックの保持特性の劣化を抑制することができる。【００５７】
次に、本発明が解決しようとする第２の課題「メモリカード等の電断に伴う書き換え回数誤差の蓄積」について説明する。本実施の形態では、第１の情報テーブルの書き込みが総書き換え回数の１回分に相当するため、電断発生による総書き換え回数の計数誤差は以下の２つの場合になる。
（１）第１の情報テーブルを書き込む直前の電断
この場合の誤差は１回になる。
（２）第１の情報テーブルの書き込み中の電断
この場合も、更新する情報テーブルにかかる更新箇所の物理ブロックが登録されないため、誤差は１回になる。
一方、第２の情報テーブルを書き込む直前の電断又は書き込み中の電断については、第２の領域にかかる書き換え回数のため、誤差に影響はない。ゆえに、本実施の形態によれば、電断による書き換え回数誤差の蓄積も極小にすることができる。【００５８】
尚、本実施の形態では、メモリの第２領域の書き換え回数を１０００回程度に設定することでメモリの第２領域の信頼性を高くした。一般的に第２領域の物理ブロック数とその書き換え回数は反比例の関係にあるので、第２領域に割り当てる物理ブロックを増加させれば、より信頼性の高いシステムの構築が可能となる。つまり、内蔵するフラッシュメモリの書き換え回数のデータに高い信頼性が求められる程、第２領域に割り当てる物理ブロック数を増加するように設定すればよい。【００５９】
また、本実施の形態では第１の情報テーブルの記録位置Ｘと、第２の情報テーブルに記録された書き換え回数を算出しているが、Ｘの影響が軽微なので製造時からの前記第１の情報テーブルの更新回数だけから書き換え回数を算出してホスト機器に通知するようにしてもよい。【００６０】
尚この実施の形態では、フラッシュメモリの第１及び第２の領域のいずれについても循環して記録するようにしているが、夫々の領域の物理ブロックを平均的に使用すればよく、循環に限らず夫々の領域毎にランダムに空きブロックを選択して書き込むようにしてもよい。
【産業上の利用可能性】
【００６１】
本発明のメモリコントローラ、半導体記録装置は、書き換え回数をホスト機器が検出し、メモリカード及びメモリカードドライブの交換時期を知ることができるので、大容量のデータを記録する業務用映像分野で使用される可能性が大きい。
【図１】
2008139689.tif 000003
【図２】
2008139689.tif 000004
【図３】
2008139689.tif 000005
【図４】
2008139689.tif 000006
【図５】
2008139689.tif 000007
【図６Ａ】
2008139689.tif 000008
【図６Ｂ】
2008139689.tif 000009
【図６Ｃ】
2008139689.tif 000010
【図７Ａ】
2008139689.tif 000011
【図７Ｂ】
2008139689.tif 000012
【図７Ｃ】
2008139689.tif 000013
【図８】
2008139689.tif 000014
【図９Ａ】
2008139689.tif 000015
【図９Ｂ】
2008139689.tif 000016
【図９Ｃ】
2008139689.tif 000017
【図９Ｄ】
2008139689.tif 000018
【国際調査報告】
2008139689.tif 000019
2008139689.tif 000020