JP5180957B2 - メモリコントローラ、半導体記録装置及び書き換え回数通知方法 - Google Patents

メモリコントローラ、半導体記録装置及び書き換え回数通知方法 Download PDF

Info

Publication number
JP5180957B2
JP5180957B2 JP2009513989A JP2009513989A JP5180957B2 JP 5180957 B2 JP5180957 B2 JP 5180957B2 JP 2009513989 A JP2009513989 A JP 2009513989A JP 2009513989 A JP2009513989 A JP 2009513989A JP 5180957 B2 JP5180957 B2 JP 5180957B2
Authority
JP
Japan
Prior art keywords
information table
area
physical block
physical
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009513989A
Other languages
English (en)
Other versions
JPWO2008139689A1 (ja
Inventor
健 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009513989A priority Critical patent/JP5180957B2/ja
Publication of JPWO2008139689A1 publication Critical patent/JPWO2008139689A1/ja
Application granted granted Critical
Publication of JP5180957B2 publication Critical patent/JP5180957B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

本発明は、フラッシュメモリなどの不揮発性メモリを含むメモリコントローラ、半導体記録装置及び書き換え回数通知方法に関し、特に、データの記録回数を管理する技術に関する。
従来、フラッシュメモリが内蔵されたカード型の半導体記録装置であるSD(Secure Digital)カード(登録商標)等のメモリカードは、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。
メモリカード等の半導体記録装置に内蔵されているフラッシュメモリは、一定サイズのブロック単位でデータを消去し書き換えできるメモリであり、その書き換え回数には制限がある。
フラッシュメモリにおいては、記録済みのページに上書きすることはできない。データを更新する場合は、消去単位である物理ブロックを消去することで物理ブロックの全ページを一括消去し、ページ単位で書き込んでいく。例えば、ある物理ブロックが全ページ記録済みであり、その物理ブロックのページ0のみを更新する場合は、以下の4ステップにより実行される。
(1)その物理ブロックの全ページのデータを読み出し揮発性メモリに格納する。
(2)揮発性メモリ上でページ0のみを更新する。
(3)当該物理ブロックを消去する。
(4)当該物理ブロックの全ページに揮発性メモリのデータを書き込む。
しかしながら、上記の手法では以下の問題点がある。
物理ブロックが不良になった場合には、不良物理ブロックには書き込めないので、論理ブロック番号と物理ブロック番号の変換テーブルを実装し、不良となった場合には別の物理ブロック番号が付された物理ブロックに書き込む。このため、不良ブロックの発生予測数分だけ、余分に物理ブロックを予め確保しておき、書き込みエラーが発生した場合は書き込みエラーが発生したブロックをエラーブロックとして登録し、エラーブロック以外の物理ブロックに書き込むという手法が用いられる。
又フラッシュメモリには書き換え回数寿命があるが、同一の物理ブロックのみが多く書き換えられる可能性がある。現状では約10万回の書き換えが可能とされており、10万回を超えて書き換えを行った場合は、書き込みエラーが発生する確率が増加する。
例えば、動画をリアルタイムにフラッシュメモリに記録する場合においては、書き込みエラーが高い頻度で発生すると、生成された映像がフラッシュメモリに伝達される速度よりフラッシュメモリへの書き込み速度が小さくなる。従って動画を連続的に記録することができなくなるという問題が生じる。
この問題の発生を遅らせるために、特許文献1にはメモリの書き換え回数を見かけ上増加させる従来技術が知られている。この従来技術においては、メモリを複数の領域に分割し各領域の書き換え回数を記憶する。メモリの書き換えは記憶された各領域の書き換え回数に基づいて、各領域の書き換え回数の差が少なくなるように、つまり書き換え回数の少ない領域を優先的に使用するように制御する技術である。なお、このように各領域の書き換え回数の差が少なくなるように制御する手法は、レベリングと呼ばれている。この従来技術をメモリカードに適用すると、同一の論理ブロックにデータを書き込もうとした場合にも、フラッシュメモリにおいて実際に記録する物理ブロックは変化する。レベリングが完璧に実施されると、書き換え可能回数は、(メモリカードの容量/書き換えブロックのサイズ)×(書き換えブロック毎の書き換え可能回数)まで増加することになる。
しかし特許文献1では、レベリングによって書き換え回数を増大させることができても、実際に書き換え回数を参照可能に記録してユーザにメモリカードの寿命を知らせることはできなかった。
本発明者は、特許文献2において、ホスト機器の要求に対応してフラッシュメモリへ書き込みを行ったブロック数である書き換え回数を計数する書き換え回数計数部と、フラッシュメモリに書き込まれている総書き換え回数を読み出す書き換え回数リード部と、書き換え回数計数部によって計数された書き換え回数と、書き換え回数リード部によって読み出された総書き換え回数に基づいて、新たに初回からの総計値である総書き換え回数を求めて、求めた総書き換え回数をフラッシュメモリに書き込む書き換え回数ライト部と備えたメモリカードを提案した。この書き換え回数ライト部は、求めた総書き換え回数を、前に総書き換え回数の書き込みを行ったときからの書き換え回数が所定回数以上に到達した時点で、フラッシュメモリに書き込むことを特徴とする。
画像データを記録するカメラレコーダ等では、メモリカードの全容量分のデータを記録するとHDD等にデータを転送した後に、メモリカードをフォーマットして再記録に使用する。このような用途においては、(物理ブロックサイズ)*書き換え回数/容量が半導体メモリの書き換え回数上限値にほぼ一致する。
特開平6−302194号公報 特開2005−284659号公報
上記のように従来の半導体記録装置では、レベリングによってメモリの書き換え回数を見かけ上増大させること、及び書き換え回数をフラッシュメモリに書き込むことによって半導体記録装置の寿命を知る手法は確立されている。
しかしながら、以下の2個の課題について対策が不十分である。
(課題1)書き換え回数の増大に伴う書き換え回数を登録したブロックのデータ保持特性の劣化。
(課題2)メモリカード等の電断に伴う書き換え回数誤差の蓄積。
以下、上記課題について説明する。
まず、(課題1)の保持特性について説明する。フラッシュメモリは現在大容量化が進行中である。大容量化は多値NANDフラッシュメモリによるところが大きい。2値NANDメモリでは初期のデータ保持時間が10年、10万回の書き換え後のデータ保持時間が1年とされている。一方、昨今の技術トレンドである多値フラッシュメモリでは、初期のデータ保持時間が10年、1万回書き換え後のデータ保持時間が1年とされている。また、多値フラッシュメモリにおいては、ゲート酸化膜に蓄積される電荷量を多値レベル、例えば4レベルに分離して記録するため、プロセスの微細化につれてデータ保持時間はさらに短くなることが予想される。ユーザが記録したデータに関しては、データ保持時間がさらに短くなっても、例えばカメラレコーダで記録した後にすぐにHDDに転送すれば実用上問題はない。しかし書き換え回数の情報はメモリカードに固有の情報であり、他に転送することはできない。ゆえに、書き換え回数のデータ保持の信頼性を向上させることが要求されている。
次に(課題2)の電断にかかる課題について説明する。特許文献2のメモリカードでは、書き換え回数の書き込みが全体の書き換え回数の増加に与える影響を少なくするため、書き込み毎に総書き換え回数を更新せず、前に総書き換え回数を書き込んだときからの書き換え回数が所定回数以上に到達した時点で、フラッシュメモリに書き込むことを特徴としていた。しかしながら、前に総書き換え回数の書き込みを行ったときからの書き換え回数が所定回数以上に到達する前に電断が起こったり、あるいは突然メモリカードを抜いたりした場合には、書き換え回数の増加が記録に反映されない。そのため、総書き換え回数の誤差が増大するといった課題が発生する。また、多値NANDフラッシュメモリの場合は書き換え回数の上限値が小さいため、電断等による書き換え回数の登録漏れによる書き換え回数の計数誤差は無視できない。
本発明は、上記問題を解決するものであり、半導体記録装置の書き換え回数を外部に出力する場合に、書き換え回数の保持特性を改善すると共に、電断による書き換え回数の登録漏れ防止を実現し、書き換え回数の信頼性、精度を大幅に改善することができるメモリコントローラ、半導体記録装置及び書き換え回数通知方法を提供する。
この課題を解決するために、本発明の半導体記録装置は、複数の物理ブロックによって構成される少なくとも1つの不揮発性メモリと、前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出す媒体制御部と前記媒体制御部を介して、前記物理アドレスと論理アドレスとをブロック単位で対応付ける第1の情報テーブル、及びユーザデータを、少なくとも一つの物理ブロックからなる第1の領域に、各物理ブロックに平均化して記録するとともに、前記第1の情報テーブルが記録されている物理ブロックの更新回数を含む第2の情報テーブルを、前記第1の領域とは異なる物理ブロックからなる第2の領域に、各物理ブロックに平均化して記録するよう制御する記録制御部と、を備える
ここで、半導体記録装置は、前記第2の情報テーブル中の前記更新回数を基に、前記第1領域または前記第2領域の物理ブロックの書き換え回数を算出する書き換え回数変換部と、前記書き換え回数を、外部機器に通知する外部インタフェースと、を備えるようにしてもよい。
ここで前記記録制御部は、前記第2の領域の物理ブロック数を、前記不揮発性メモリの書き換え回数の信頼性に対応させて決定するようにしてもよい。
この課題を解決するために、本発明のメモリコントローラは、複数の物理ブロックによって構成される少なくとも1つの不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出す媒体制御部と、前記媒体制御部を介して、前記物理アドレスと論理アドレスとをブロック単位で対応付ける第1の情報テーブル、及びユーザデータを、少なくとも一つの物理ブロックからなる第1の領域に、各物理ブロックに平均化して記録するとともに、前記第1の情報テーブルが記録されている物理ブロックの更新回数を含む第2の情報テーブルを、前記第1の領域とは異なる物理ブロックからなる第2の領域に、各物理ブロックに平均化して記録するよう制御する記録制御部と、を備える
ここで、メモリコントローラは、前記第2の情報テーブル中の前記更新回数を基に、前記第1領域または前記第2領域の物理ブロックの書き換え回数を算出する書き換え回数変換部と、前記書き換え回数を、外部機器に通知する外部インタフェースと、を備えるようにしてもよい。
ここで前記記録制御部は、前記第2の領域の物理ブロック数を、前記不揮発性メモリの書き換え回数の信頼性に対応させて決定するようにしてもよい。
この課題を解決するために、本発明の書き換え回数通知方法は、複数の物理ブロックによって構成される少なくとも1つの不揮発性メモリにおける、前記物理アドレスと論理アドレスとをブロック単位で対応付ける第1の情報テーブル、及びユーザデータを、少なくとも一つの物理ブロックからなる第1の領域に、各物理ブロックに平均化して記録するステップと、前記第1の情報テーブルが記録されている物理ブロックの更新回数を含む第2の情報テーブルを、前記第1の領域とは異なる物理ブロックからなる第2の領域に、各物理ブロックに平均化して記録するステップと、前記第2の情報テーブル中の前記更新回数を基に、前記第1領域または前記第2領域の物理ブロックの書き換え回数を算出するステップと、前記書き換え回数を、外部機器に通知するステップと、を含む
本発明のメモリコントローラ及び半導体記録装置及び書き換え回数通知方法によれば、第1のメモリ領域の物理ブロックと第2のメモリ領域の物理ブロックを独立に平均化して記録することによりフラッシュメモリの第2領域の書き換え回数を抑制することができ、メモリの第2領域に記録された製造時からの前記第1の情報テーブルの更新回数の信頼性を向上することができる。
また、第1の情報テーブルを更新する毎に不揮発性メモリに記録することにより、総書き換え回数の値が1回増加することになる。従って1回の電断に伴う書き換え回数の誤差は、高々1回に過ぎないため、電断に伴う書き換え回数誤差の蓄積を抑制することができる。
よって、不揮発性メモリの第2領域に記録された製造時からの前記第1の情報テーブルの更新回数より、不揮発性メモリの書き換え回数を算出してホスト機器に通知することにより、容易に書き換え回数を検出できる信頼性の高いシステムを構築することができる。
図1は本発明の実施の形態1におけるメモリカードの構成図である。 図2は本実施の形態のフラッシュメモリにおけるメモリ領域の説明図である。 図3はフラッシュメモリを構成する物理ブロックの構成図である。 図4は本発明の第1の情報テーブルの説明図である。 図5は本発明の空きブロック管理テーブルの説明図である。 図6Aは本発明の第1の情報テーブルの遷移図である。 図6Bは本発明の第1の情報テーブルの遷移図である。 図6Cは本発明の第1の情報テーブルの遷移図である。 図7Aは本発明の第1の情報テーブルを格納している物理ブロックの遷移図である。 図7Bは本発明の第1の情報テーブルを格納している物理ブロックの遷移図である。 図7Cは本発明の第1の情報テーブルを格納している物理ブロックの遷移図である。 図8は本発明の第2の情報テーブルの説明図である。 図9Aは本発明の第2の情報テーブルを格納している物理ブロックの遷移図である。 図9Bは本発明の第2の情報テーブルを格納している物理ブロックの遷移図である。 図9Cは本発明の第2の情報テーブルを格納している物理ブロックの遷移図である。 図9Dは本発明の第2の情報テーブルを格納している物理ブロックの遷移図である。
符号の説明
11 半導体記録装置
12 ホスト機器
20 フラッシュメモリ
30 メモリコントローラ
31 外部インターフェイス
32 コマンド解析部
33 第1の管理部
34 空きブロック管理テーブル
35 第1の情報テーブル
36 第1の情報テーブル更新部
37 第2の管理部
38 第2の情報テーブル
39 第2の情報テーブル更新部
40 フラッシュ制御部
41 書き換え回数変換部
図1に本発明の実施の形態による半導体記録装置の構成図を示す。図1において、半導体記録装置11は例えばメモリカードとして実現され、ホスト機器12に接続されて使用される。半導体記録装置11は不揮発性メモリであるフラッシュメモリ20、及びこのフラッシュメモリ20に対してデータの書き込み及び読み出しを制御するメモリコントローラ30を含んで構成されている。
次にメモリコントローラ30について詳細に説明する。外部インターフェイス31は、ホスト機器11からのコマンドを受信し、データの転送を行うインターフェイスである。コマンド解析部32は外部インターフェイス31によって受信されたコマンドを解析する。これに加えてコマンド解析部32は、リードコマンドやライトコマンドの他に、本発明に特有のホストコマンドからフラッシュメモリの書き換え回数リードコマンドが与えられたときにこのコマンドであることを認識する。尚メモリコントローラ30では、コマンド解析に伴いフラッシュメモリ20にデータを書き込み及び読み出すブロックが必要であるが、これらは従来のものと同様であるので図1では記載を省略しており、本発明に特徴的な部分のみを記載している。
次に第1の管理部33は空ブロック管理テーブル(図中でMT)34と第1の情報テーブル(図中でIT1)35を管理するものである。空ブロック管理テーブル34は、フラッシュメモリ20の物理ブロックが使用済みか空きブロックかを管理するテーブルであり、揮発性メモリで構成される。
第1の情報テーブル35はホストから発行される論理ブロック番号とフラッシュメモリ20にライトされている物理ブロック番号との対応を示す論物変換テーブルである。このテーブルはメモリコントローラ30の揮発性メモリに記録され、同時にフラッシュメモリ20のいずれかの物理ブロックの1ページに記録される。第1の情報テーブル更新部36は、ホスト機器11よりライトコマンドが発行され新規の物理ブロックが論理ブロックに割り当てられた場合に、第1の情報テーブル35を更新し、フラッシュメモリ20内の第1の情報テーブルの記録も更新するものである。
第2の管理部37は第2の情報テーブル(図中でIT2)38を管理するものである。第2の情報テーブル38は、第1の情報テーブルが記録されている物理ブロックについての情報を記録したテーブルであり、揮発性メモリで構成される。第2の情報テーブル38には、以下の情報が記録される。
(A)第1の情報テーブルが記録されている物理ブロック番号
(B)製造時からの第1の情報テーブルが格納された物理ブロックが更新された回数
このテーブルはメモリコントローラ30の揮発性メモリに記録され、同時にフラッシュメモリ20のいずれかの物理ブロックの1ページに記録される。又第2の情報テーブル更新部39は、第1の情報テーブルが記録されている物理ブロック位置が更新された場合に、第2の情報テーブルを更新し、フラッシュメモリ20内の第2の情報テーブルの記録も更新するものである。
次にフラッシュ制御部40はライトコマンドやリードコマンド及び第1,第2の情報テーブル更新部36,39の指示に基づいてフラッシュメモリ20へのデータのライト及びフラッシュメモリ20からのデータのリードを行うものである。
書き換え回数変換部41は、書き換え回数リードコマンドがホスト機器11より与えられたときに、第1,第2の情報テーブル35,38の情報に基づいて書き換え回数を算出し、その結果を外部インターフェイス31より出力するものである。
次にフラッシュメモリ20について説明する。図2はフラッシュメモリ20の領域マップであり、図3はその1つの物理ブロックの構成図を示す。
フラッシュメモリ20はA個(Aは自然数)の物理ブロックより構成されており、本実施の形態では、A個の物理ブロックに対して0〜(A−1)の物理ブロック番号(PBN)を付している。このうち物理ブロック番号0〜(B−1)(Bは、B<Aを満たす自然数)のB個の物理ブロックをフラッシュメモリ20の第1領域20−1、物理ブロック番号B〜(A−1)の(A−B)個の物理ブロックをフラッシュメモリ20の第2領域20−2としている。各物理ブロックは図3に示すN個(Nは自然数)のページによって構成され、各ページには0〜(N−1)のページ番号(PN)が付されている。
次に本実施の形態では、ユーザデータを記録する論理ブロック番号(LBN)0〜(B−m)の(B−m+1)(mは自然数)個の論理ブロックは図2で示すフラッシュメモリ20の第1領域20−1の物理ブロックにマッピングされ、ユーザデータが記録される。今仮にm=9とすると、第1領域20−1はB個の物理ブロックから構成されており、この中の(B−8)個の物理ブロックがユーザデータの記録用に用いられる。残りの8個の物理ブロックは第1の情報テーブルを保持しておく物理ブロック、及び予備ブロックとして使用される。つまり、第1領域20−1のB個の物理ブロックは、
(タイプ0): 論理ブロックに対応したユーザデータ記録用の物理ブロック
(タイプ1): 第1の情報テーブル記録用の物理ブロック
(タイプ2): 後発不良ブロックが生じたときのための予備の物理ブロック
の3タイプに分類される。
次に第1の情報テーブル35について説明する。第1の情報テーブル35は論理ブロック番号と物理ブロック番号の変換テーブルであり、図4にその一例を示す。図4は、論理ブロック番号0の論理ブロックが物理ブロック番号3の物理ブロックに、論理ブロック番号1の論理ブロックが物理ブロック番号6の物理ブロックにマッピングされていることを示している。また論理ブロック番号L及び(L+1)は対応する物理ブロックの欄が「A」であり、これはデータが書かれていない空ブロックであることを示している。このように第1の情報テーブル35を用いて論理ブロックと物理ブロックを対応づけ、後発の不良ブロックが生じた場合にはその物理ブロックを用いないようにして不良ブロックの発生に対応することができる。
更に、本実施の形態では第1領域と第2領域とを分けてレベリングしている。第1領域のレベリングでは、(タイプ0)と(タイプ1)の物理ブロックの使用頻度を平均化している。その手法として各物理ブロックの使用状態を示す空ブロック管理テーブル34を用いて未使用の物理ブロックを平均的に使用するように制御する。このため第1領域内で未使用の物理ブロックを循環的に使用するようにしてもよく、又未使用の物理ブロックの中からランダムに書き込むべき物理ブロックを選択するようにしてもよい。以下では循環的に使用するものとして説明する。
次に空きブロック管理テーブル34について説明する。図5は空きブロック管理テーブル34の一例を示す図であり、各物理ブロックの使用状態を示す。使用状態が1の物理ブロックは使用中、0の物理ブロックは空きで新たに使用することが可能であることを示す。空きブロック管理テーブル34は同一の内容をフラッシュメモリ20に保持するものではなく、電源投入毎に以下のようなステップで作成される。
(1)電源が供給されると、全ブロックを空き状態に初期化する。
(2)不良ブロックを使用済みに更新する。(不良ブロックの管理は発明の本質から外れるので詳細な説明はしないが、フラッシュメモリの固定位置に不良ブロックの番号を記録しておく。)
(3)第1の情報テーブル35を読み出し、使用されている物理ブロックを空きブロック管理テーブル34で使用済みに更新する。
(4)第1の情報テーブル35が更新されたときにその更新をテーブル34に反映する。
上記のように、電源供給時に空ブロック管理テーブル34を作成し、次に空き物理ブロックにライトする場合は、空ブロック管理テーブル34より順にサーチした空ブロックを新規ブロックとして割り当てると共に、空ブロック管理テーブル34を更新していく。
次に第1の情報テーブル35を格納するタイプ1の物理ブロックの記録動作について説明する。図6A〜図6Cは第1の情報テーブル35の遷移を示す図であり、図6Aはある時点での第1の情報テーブルの状態を示す。図7A〜図7Cは第1の情報テーブル35を格納する物理ブロックの状態遷移を示す図であり、斜線部は使用済みのページを示している。図7Aでは物理ブロック番号PBN0が第1の情報テーブル35を格納している。この物理ブロックは第1の情報テーブル35が図6Aの時点においてページ0〜ページ(N−2)が記録済みで、ページ(N−1)が未記録である。本実施の形態では、第1の情報テーブル35は物理ブロックの先頭ページから順番に1ページごとに記録されるので、図7Aの状態では当該物理ブロックには(N−1)個の第1の情報テーブルが記録済みであり、図6Aに示した最新の第1の情報テーブル35はページ(N−2)に保持されていることを示している。
図6A,図7Aに示す状態で、ホスト機器11からL番の論理ブロックに対してライトコマンドが発行された場合の動作について、図5、図6、図7を用いて説明する。
現在の第1の情報テーブル35は図6Aに示すように、論理ブロック番号Lに対応する物理ブロックは無効を示す「A」であり、物理ブロックは割り当てられていない。よって、第1の管理部33は空ブロック管理テーブル34を参照して空ブロックサーチを行う。現在の空きブロック管理テーブル34は図5に示す状態であり、(B−1)番の物理ブロックがサーチされたとする。よって、第1の管理部33は、論理ブロック番号Lの論理ブロックに、物理ブロック番号(B−1)番の物理ブロックを割り当てる。又第1の情報テーブル更新部36は、第1の情報テーブル35を図6Bに示すように更新し、更新した第1の情報テーブル35をフラッシュ制御部40を介してフラッシュメモリ20に書き込む。現在の第1の情報テーブルに割り当てられているPBN0の物理ブロックは、ページ(N−1)番に更新された第1の情報テーブルを書き込むことにより、図7Aから図7Bの状態に遷移する。
さらに(L+1)番の論理ブロックにライトコマンドが発行された場合について説明する。この時点での第1の情報テーブルは図6Bに示すように、(L+1)番の論理ブロックに対応する物理ブロックは無効を示す「A」であり、物理ブロックは割り当てられていない。よって、第1の管理部33は空ブロックサーチを行い、物理ブロック番号1の物理ブロックがサーチされたとする。第1の管理部33は、論理ブロック番号(L+1)の論理ブロックに、物理ブロック番号1を割り当てる。第1の情報テーブル更新部36は、第1の情報テーブル35を図6Cに示すように更新し、更新した第1の情報テーブル35をフラッシュ制御部40を介してフラッシュメモリ20に書き込む。現在の第1の情報テーブルに割り当てられている物理ブロック番号0の物理ブロックは、図7Bに示すように全てのページが記録済みである。この場合、第1の管理部33は空ブロックサーチを実施する。このサーチによって物理ブロック番号2の物理ブロックをサーチしたとする。そして物理ブロック番号2の物理ブロックのページ0に図6Cに示す最新の第1の情報テーブルを書き込む。そして物理ブロック番号0の物理ブロックが未使用ブロック、物理ブロック番号2の物理ブロックが使用ブロックになるよう空きブロック管理テーブル34を更新する。図7Cはこの状態を示している。
次に、第1の情報テーブル35の管理について説明する。第1の情報テーブル35は第2の情報テーブル38によって管理する。図8は第2の情報テーブル38の一例を示している。図9A〜図9Dは、フラッシュメモリ20における第2の情報テーブル38を記録する物理ブロックの状態遷移の説明図である。第2の情報テーブルは図2に示すフラッシュメモリ20の第2領域20−2の中で循環して記録される。例えば、製造時は物理ブロック番号(A−1)の物理ブロックを第2の情報テーブルを記録する物理ブロックとして割り当て、図9Aに示すようにページ0に第2の情報テーブル38の初期値を書き込む。そして、第1の情報テーブルを格納しているタイプ1の物理ブロックが他の物理ブロックに移動すると、第2の情報テーブル更新部39は第2の情報テーブル38を更新し、物理ブロック番号(A−1)の物理ブロックのページ1に更新された第2の情報テーブル38を記録する。以後はタイプ1の物理ブロックの移動毎にこの処理を行う。図9Bは(N−1)回第1の情報テーブルの物理ブロック番号が更新された時点での物理ブロック番号(A−1)の物理ブロックの状態を示す。この場合の製造時からの第1の情報テーブルが格納された物理ブロックが更新された回数は(N−1)回である。図9Cは、N回第1の情報テーブルの物理ブロック番号は更新された時点での第2の情報テーブルが格納された物理ブロックPBN(A−1)の状態を示す。この場合の製造時からの第1の情報テーブルが格納された物理ブロックが更新された回数はN回である。
さて(N+1)回第1の情報テーブル35の物理ブロック番号が更新されると、物理ブロック番号(A−1)の物理ブロックは全ページが書き込み済みであるため、物理ブロック番号PBN(A−2)の物理ブロックに第2の情報テーブル38を記録する。図9Dはこの時点でのPBN(A−1),PBN(A−2)の物理ブロックの状態を示す。この場合の製造時からの第1の情報テーブルが格納された物理ブロックが更新された回数は(N+1)回である。
このように、フラッシュメモリの第2領域20−2ではPBN(A−1)番の物理ブロックからPBN(A−2)番の物理ブロック、・・・第2領域20−2の先頭であるB番の物理ブロック、PBN(A−1)番の物理ブロックというように、第2領域20−2内で循環記録していく。
第2の管理部37は、システムへの電源供給時に、フラッシュ制御部40を介してフラッシュメモリ20の第2領域20−2に記録された最新の第2の情報テーブルを読み出し、タイプ1の物理ブロックの製造時からの更新回数を参照して現時点の第2の情報テーブル38を確定する。そして、第1の情報テーブルが格納された物理ブロックが更新される毎に、第2の情報テーブル更新部39は情報テーブル38を更新し、フラッシュ制御部40を介してフラッシュメモリ20に記録する。
次に書き換え回数変換部41の動作について説明する。書き換え回数は第1,第2の情報テーブル35,38のデータから換算することができる。
第1の情報テーブル35は論理ブロックと物理ブロックの変換テーブルであり、1ブロックが変換される毎に第1の情報テーブルを更新していけば、次式(1)が成り立つ。
第1の情報テーブルの更新回数
=第1領域の物理ブロックの総書き換え回数 ・・・(1)
さらに、第1の情報テーブルはページ単位で更新されるため、製造時からのタイプ1の物理ブロックの更新回数をUPDATE#BLK#NUM、物理ブロックを構成するページ数をN、現在の第1の情報テーブルが存在する物理ブロックのページ番号をXとすると、製造時からの第1の情報テーブルの書き換え回数は次式(2)で示される。
製造時からの第1の情報テーブルの書き換え回数
=(UPDATE #BLK#NUM)*N+X ・・・(2)
また、第1の情報テーブルの物理ブロックの書き換え回数は次式(3)で示される。
第1の情報テーブルの物理ブロックの書き換え回数
=UPDATE#BLK#NUM ・・・(3)
従って第1領域の物理ブロックの総書き換え回数は、式(1),式(2),式(3)より、次式(4)によって求められる。
第1領域の物理ブロックの総書き換え回数
=(UPDATE#BLK#NUM)*(N+1)+X ・・・(4)
上記のように第1の情報テーブルの記録ページ番号Xと第2の情報テーブルに保持されている更新回数UPDATE#BLK#NUMを参照して、メモリの第1領域の物理ブロックの総書き換え回数を式(4)により求めることができる。
そしてフラッシュメモリ20の第1領域20−1の物理ブロック数はB個であるから、第1領域を全て書き換える回数は次式(5)で示される。
第1領域の書き換え回数
=(第1の領域の物理ブロックの総書き換え回数)/(第1領域の物理ブロック数)
=((UPDATE#BLK#NUM)*(N+1)+X)/B ・・・(5)
ホスト機器よりフラッシュメモリの書き換え回数リードコマンドが発行されたときに、コマンド解析部32によってこのコマンドが書き換え回数変換部41に与えられる。書き換え回数変換部41はフラッシュメモリの書き換え回数を式(5)により導出し、外部インターフェイス31を介してホスト機器11に転送する。こうすれば容易に書き換え回数を検出できる信頼性の高いシステムを構築することができる。
次に、フラッシュメモリの第2領域の書き換え回数について説明する。メモリの第2領域の物理ブロックの総書き換え回数は次式(6)で示される。尚Int[Y]はYを超えない最大の整数とする。
第2領域の物理ブロックの総書き換え回数=
Int[第1の情報テーブルの物理ブロックの書き換え回数/N]+1 ・・・(6)
従って式(3)より、メモリの第2領域の物理ブロックの総書き換え回数は次式(7)で示される。
メモリの第2領域の物理ブロックの総書き換え回数=
Int[UPDATE#BLK#NUM)/N]+1 ・・・(7)
また、メモリの第2の領域の物理ブロック数は(A−B)個であることより、メモリの第2領域全体の書き換え回数は、次式(8)で示される。
第2領域の書き換え回数
=(Int[UPDATE#BLK#NUM/N]+1)/(A−B) ・・・(8)
ここで、フラッシュメモリの物理ブロック当たりの記録ページ数は100ページ程度であること、書き換え回数は10000回程度であること、フラッシュメモリの物理ブロック数は10000ブロック程度であること、及びXの影響は微小なことから、
メモリの第1領域の書き換え回数=10000、B=10000、N=100、X=0を式(5)に代入し、UPDATE#BLK#NUMを求めると
UPDATE#BLK#NUM=1.0×106 程度になる。
第2領域に10個の物理ブロックを割り当てた場合のフラッシュメモリの第2領域の書き換え回数は式(8)より1.0×103程度になる。即ち、第2領域の書き換え回数は、メモリの第1領域の書き換え回数と比較して圧倒的に小さくなる。上記の例では、メモリの第2領域の書き換え回数はメモリの第1の領域の書き換え回数の1/10となり、大幅に抑制することが可能である。よって、第1の領域の物理ブロックと第2のメモリ領域の物理ブロックを独立に循環させて記録することにより、フラッシュメモリの第2領域の書き換え回数を抑制することができ、第2領域に記録された製造時からの前記第1の情報テーブルの更新回数の信頼性を向上することができる。これにより第1の課題である書き換え回数の増大に伴う書き換え回数登録ブロックの保持特性の劣化を抑制することができる。
次に、本発明が解決しようとする第2の課題「メモリカード等の電断に伴う書き換え回数誤差の蓄積」について説明する。本実施の形態では、第1の情報テーブルの書き込みが総書き換え回数の1回分に相当するため、電断発生による総書き換え回数の計数誤差は以下の2つの場合になる。
(1)第1の情報テーブルを書き込む直前の電断
この場合の誤差は1回になる。
(2)第1の情報テーブルの書き込み中の電断
この場合も、更新する情報テーブルにかかる更新箇所の物理ブロックが登録されないため、誤差は1回になる。
一方、第2の情報テーブルを書き込む直前の電断又は書き込み中の電断については、第2の領域にかかる書き換え回数のため、誤差に影響はない。ゆえに、本実施の形態によれば、電断による書き換え回数誤差の蓄積も極小にすることができる。
尚、本実施の形態では、メモリの第2領域の書き換え回数を1000回程度に設定することでメモリの第2領域の信頼性を高くした。一般的に第2領域の物理ブロック数とその書き換え回数は反比例の関係にあるので、第2領域に割り当てる物理ブロックを増加させれば、より信頼性の高いシステムの構築が可能となる。つまり、内蔵するフラッシュメモリの書き換え回数のデータに高い信頼性が求められる程、第2領域に割り当てる物理ブロック数を増加するように設定すればよい。
また、本実施の形態では第1の情報テーブルの記録位置Xと、第2の情報テーブルに記録された書き換え回数を算出しているが、Xの影響が軽微なので製造時からの前記第1の情報テーブルの更新回数だけから書き換え回数を算出してホスト機器に通知するようにしてもよい。
尚この実施の形態では、フラッシュメモリの第1及び第2の領域のいずれについても循環して記録するようにしているが、夫々の領域の物理ブロックを平均的に使用すればよく、循環に限らず夫々の領域毎にランダムに空きブロックを選択して書き込むようにしてもよい。
本発明のメモリコントローラ、半導体記録装置は、書き換え回数をホスト機器が検出し、メモリカード及びメモリカードドライブの交換時期を知ることができるので、大容量のデータを記録する業務用映像分野で使用される可能性が大きい。

Claims (7)

  1. 複数の物理ブロックによって構成される少なくとも1つの不揮発性メモリと、
    前記不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出す媒体制御部と
    前記媒体制御部を介して、前記物理アドレスと論理アドレスとをブロック単位で対応付ける第1の情報テーブル、及びユーザデータを、少なくとも一つの物理ブロックからなる第1の領域に、各物理ブロックに平均化して記録するとともに、前記第1の情報テーブルが記録されている物理ブロックの更新回数を含む第2の情報テーブルを、前記第1の領域とは異なる物理ブロックからなる第2の領域に、各物理ブロックに平均化して記録するよう制御する記録制御部と、
    を備える半導体記録装置。
  2. 前記第2の情報テーブル中の前記更新回数を基に、前記第1領域または前記第2領域の物理ブロックの書き換え回数を算出する書き換え回数変換部と、
    前記書き換え回数を、外部機器に通知する外部インタフェースと、
    を備える請求項1に記載の半導体記録装置。
  3. 前記記録制御部は、
    前記第2の領域の物理ブロック数を、前記不揮発性メモリの書き換え回数の信頼性に対応させて決定する
    請求項1または2に記載の半導体記録装置。
  4. 複数の物理ブロックによって構成される少なくとも1つの不揮発性メモリにデータを書き込み、前記不揮発性メモリからデータを読み出す媒体制御部と、
    前記媒体制御部を介して、前記物理アドレスと論理アドレスとをブロック単位で対応付ける第1の情報テーブル、及びユーザデータを、少なくとも一つの物理ブロックからなる第1の領域に、各物理ブロックに平均化して記録するとともに、前記第1の情報テーブルが記録されている物理ブロックの更新回数を含む第2の情報テーブルを、前記第1の領域とは異なる物理ブロックからなる第2の領域に、各物理ブロックに平均化して記録するよう制御する記録制御部と、
    を備えるメモリコントローラ。
  5. 前記第2の情報テーブル中の前記更新回数を基に、前記第1領域または前記第2領域の物理ブロックの書き換え回数を算出する書き換え回数変換部と、
    前記書き換え回数を、外部機器に通知する外部インタフェースと、
    を備える請求項4に記載のメモリコントローラ。
  6. 前記記録制御部は、
    前記第2の領域の物理ブロック数を、前記不揮発性メモリの書き換え回数の信頼性に対応させて決定する
    請求項4または5に記載のメモリコントローラ。
  7. 複数の物理ブロックによって構成される少なくとも1つの不揮発性メモリにおける、前記物理アドレスと論理アドレスとをブロック単位で対応付ける第1の情報テーブル、及びユーザデータを、少なくとも一つの物理ブロックからなる第1の領域に、各物理ブロックに平均化して記録するステップと、
    前記第1の情報テーブルが記録されている物理ブロックの更新回数を含む第2の情報テーブルを、前記第1の領域とは異なる物理ブロックからなる第2の領域に、各物理ブロックに平均化して記録するステップと、
    前記第2の情報テーブル中の前記更新回数を基に、前記第1領域または前記第2領域の物理ブロックの書き換え回数を算出するステップと、
    前記書き換え回数を、外部機器に通知するステップと、
    を含む書き換え回数通知方法。
JP2009513989A 2007-05-10 2008-04-18 メモリコントローラ、半導体記録装置及び書き換え回数通知方法 Active JP5180957B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009513989A JP5180957B2 (ja) 2007-05-10 2008-04-18 メモリコントローラ、半導体記録装置及び書き換え回数通知方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007125921 2007-05-10
JP2007125921 2007-05-10
PCT/JP2008/001025 WO2008139689A1 (ja) 2007-05-10 2008-04-18 メモリコントローラ、半導体記録装置及び書き換え回数通知方法
JP2009513989A JP5180957B2 (ja) 2007-05-10 2008-04-18 メモリコントローラ、半導体記録装置及び書き換え回数通知方法

Publications (2)

Publication Number Publication Date
JPWO2008139689A1 JPWO2008139689A1 (ja) 2010-07-29
JP5180957B2 true JP5180957B2 (ja) 2013-04-10

Family

ID=40001915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009513989A Active JP5180957B2 (ja) 2007-05-10 2008-04-18 メモリコントローラ、半導体記録装置及び書き換え回数通知方法

Country Status (3)

Country Link
US (1) US8397015B2 (ja)
JP (1) JP5180957B2 (ja)
WO (1) WO2008139689A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5264459B2 (ja) * 2008-12-17 2013-08-14 パナソニック株式会社 半導体記憶装置
KR101786027B1 (ko) * 2009-04-07 2017-10-18 콘티넨탈 오토모티브 시스템 주식회사 자동차의 데이터 저장 방법
JP6118045B2 (ja) * 2012-07-31 2017-04-19 株式会社メガチップス 半導体記憶装置
JP6152999B2 (ja) * 2012-08-10 2017-06-28 株式会社メガチップス 半導体記憶装置
JP5683558B2 (ja) * 2012-11-01 2015-03-11 東芝情報システム株式会社 フラッシュメモリ制御装置、フラッシュメモリ制御方法及びフラッシュメモリ制御用プログラム
JP6890238B2 (ja) * 2017-04-07 2021-06-18 パナソニックIpマネジメント株式会社 使用回数を増大させた不揮発性メモリ
US11218360B2 (en) 2019-12-09 2022-01-04 Quest Automated Services, LLC Automation system with edge computing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06302194A (ja) * 1993-01-20 1994-10-28 Canon Inc 情報処理装置
JP2003022682A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体装置
JP2005284659A (ja) * 2004-03-29 2005-10-13 Matsushita Electric Ind Co Ltd メモリカード及びメモリカードドライブ
JP2006323751A (ja) * 2005-05-20 2006-11-30 Nec Infrontia Corp 情報処理装置、寿命監視方法およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841669A (en) * 1996-01-26 1998-11-24 Howmet Research Corporation Solidification control including pattern recognition
US5740936A (en) * 1996-11-20 1998-04-21 Nash; William L. Electric outlet box assembly
JP4031190B2 (ja) * 2000-09-29 2008-01-09 株式会社東芝 メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置
JP2004310650A (ja) * 2003-04-10 2004-11-04 Renesas Technology Corp メモリ装置
TW200705180A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc Adjustable flash memory management system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06302194A (ja) * 1993-01-20 1994-10-28 Canon Inc 情報処理装置
JP2003022682A (ja) * 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体装置
JP2005284659A (ja) * 2004-03-29 2005-10-13 Matsushita Electric Ind Co Ltd メモリカード及びメモリカードドライブ
JP2006323751A (ja) * 2005-05-20 2006-11-30 Nec Infrontia Corp 情報処理装置、寿命監視方法およびプログラム

Also Published As

Publication number Publication date
WO2008139689A1 (ja) 2008-11-20
US8397015B2 (en) 2013-03-12
JPWO2008139689A1 (ja) 2010-07-29
US20100138593A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
JP4688584B2 (ja) ストレージ装置
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
KR100910680B1 (ko) 소거 카운트 블록을 유지하는 방법 및 장치
US6405323B1 (en) Defect management for interface to electrically-erasable programmable read-only memory
US6427186B1 (en) Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers
US8037232B2 (en) Data protection method for power failure and controller using the same
KR100914089B1 (ko) 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치
US7526599B2 (en) Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US9213629B2 (en) Block management method, memory controller and memory stoarge apparatus
JP5180957B2 (ja) メモリコントローラ、半導体記録装置及び書き換え回数通知方法
US8332696B2 (en) Defect management method for storage medium and system thereof
US20090327804A1 (en) Wear leveling in flash storage devices
US7649794B2 (en) Wear leveling method and controller using the same
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
KR20050067203A (ko) 비휘발성 저장 시스템의 평균 소거 카운트 유지 방법 및장치
US9268688B2 (en) Data management method, memory controller and memory storage apparatus
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US8762810B2 (en) Semiconductor recording device, control method of semiconductor recording device, and semiconductor recording system
JP2007193865A (ja) 情報記録装置及びその制御方法
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2008097132A (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110126

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120207

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130111

R150 Certificate of patent or registration of utility model

Ref document number: 5180957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150