[go: up one dir, main page]

JP4332108B2 - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents

メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Download PDF

Info

Publication number
JP4332108B2
JP4332108B2 JP2004379711A JP2004379711A JP4332108B2 JP 4332108 B2 JP4332108 B2 JP 4332108B2 JP 2004379711 A JP2004379711 A JP 2004379711A JP 2004379711 A JP2004379711 A JP 2004379711A JP 4332108 B2 JP4332108 B2 JP 4332108B2
Authority
JP
Japan
Prior art keywords
information
block
physical block
written
flash memory
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.)
Expired - Fee Related
Application number
JP2004379711A
Other languages
English (en)
Other versions
JP2006185290A (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.)
TDK Corp
Original Assignee
TDK Corp
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 TDK Corp filed Critical TDK Corp
Priority to JP2004379711A priority Critical patent/JP4332108B2/ja
Publication of JP2006185290A publication Critical patent/JP2006185290A/ja
Application granted granted Critical
Publication of JP4332108B2 publication Critical patent/JP4332108B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“1”を示すデータが格納されている消去状態から、論理値“0”を示すデータが格納されている書込状態へと変化することができる。
これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
上述のような構成を有するNAND型フラッシュメモリでは、データの重ね書きを行うことができないため、データの書替を行う場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行わなければならない。このようなデータの書替を行った場合、書替後のデータは、書替前のデータと異なるブロックに書き込まれる。従って、ホストシステム側で管理されている論理アドレスと実際にデータが書き込まれたフラッシュメモリ内の物理アドレスの対応関係が、データを書替える毎に動的に変化する。
この論理アドレスと物理アドレスの対応関係を管理するため、ホストシステム側から与えられたユーザデータが書き込まれたブロックの冗長領域には、書き込んだデータに対応する論理アドレス情報が書き込まれる。この論理アドレス情報は、論理アドレスと物理アドレスの対応関係を示す変換テーブルを作成するときに読み出され、読み出した論理アドレス情報に基づいて変換テーブルが作成される。
ホストシステム側から与えられたユーザデータが書き込まれたブロックの冗長領域には、上記のように論理アドレス情報が書き込まれるが、カード情報(CIS:Card Information Structure)等の管理情報が書き込まれたブロックの冗長領域には、論理アドレス情報が書き込まれない。つまり、カード情報等の管理情報が書き込まれたブロックには、通常、論理アドレスが割当てられない。
管理情報が書き込まれるブロックは、通常、予め設定されたフラッシュメモリ内の位置(ブロック)に割当てられるため、論理アドレスが割当てられていなくても、そのブロックにアクセスすることができる。例えば、特許文献1では、カード情報をフラッシュメモリ内の先頭又は最後の物理ブロックに書き込んでいる。従って。フラッシュメモリ内の先頭又は最後の物理ブロックを見つけ出すことにより、カード情報を読み出すことができる。
特表2001−503166号公報
上述の技術によれば、管理情報が書き込まれたブロックとユーザデータが書き込まれたブロックは、冗長領域に書き込まれている論理アドレス情報に基づいて判別するこができる。しかしながら、フラッシュメモリでは、ディスターブ現象等でデータが変化することがあるため、論理アドレス情報に基づいて、管理情報が書き込まれたブロックとユーザデータが書き込まれたブロックを判別した場合、誤った判別がなされてしまう場合がある。誤った判別がなされた場合、ユーザデータの書替処理や、書き込まれているユーザデータのエラー訂正処理等で、誤って管理情報が訂正又は消去されることがある。又、管理情報が書き込まれたブロックの位置情報を常時管理して、管理情報が書き込まれたブロックを、ユーザデータの書替処理やエラー訂正処理等の処理対象から除外することもできるが、除外するか否かの判断をその都度行った場合、処理効率の低下が生じる。
そこで、本発明は、誤訂正や誤消去を簡単かつ確実に防止することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、
物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにアクセスする際に参照される管理情報を、理ブロック内のユーザ領域に書き込む第1の書込み手段と、
ホストシステムから供給されるユーザデータを、当該ユーザデータの論理アドレスが属する論理ブロックと対応する物理ブロック内のユーザ領域に書き込む第2の書込み手段と、
前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断手段と、
理ブロックの冗長領域に、当該物理ブロックの良否を示す第1の情報、当該物理ブロックと対応する論理ブロックを示す第2の情報及び当該物理ブロックに書き込まれているデータの種別を示す第3の情報を書き込む第3の書込み手段と
物理ブロック内の冗長領域であって前記第1の情報、前記第2の情報及び前記第3の情報の書込み先に割り当てられた領域を参照することにより、当該物理ブロックの良否、当該物理ブロックと対応する論理ブロック及び当該物理ブロックに書き込まれているデータの種別を判断する判断手段とを備え、
前記第3の書込み手段は、前記第1の情報として不良ブロックであることを示す情報を書き込む場合、前記第1の情報の書込み先に割り当てられた領域に含まれる1以上のビットを書込み状態にする書込みを行い、
前記第1の情報の書込み先に割り当てられた領域が消去状態である物理ブロックは、前記判断手段により良品ブロックであると判断され、
前記第2の書込み手段は、前記判断手段により良品ブロックであると判断された物理ブロックだけをユーザデータの書込み先の物理ブロックとし、
前記第3の書込み手段は、前記第1の書込み手段により前記管理情報が書き込まれた物理ブロック及び前記診断手段により不良ブロックであると診断された物理ブロックの冗長領域、不良ブロックであることを示す情報を前記第1の情報として書き込み、前記第2の書込み手段によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたユーザデータの論理アドレスが属する論理ブロックを示す情報を前記第2の情報として書き込み、前記第1の書込み手段により管理情報が書き込まれた物理ブロックの冗長領域に、書き込まれているデータが前記管理情報であることを示す情報を前記第3の情報として書き込ように構成されていることを特徴とする。
このような構成を採用したことにより、管理情報が書き込まれた物理ブロックの冗長領域には、不良ブロックであることを示す第1の情報が書き込まれる。また、管理情報が書き込まれた物理ブロックの冗長領域に、管理情報の種別を示す第3の情報が書き込まれるので、誤訂正や誤消去を簡単かつ確実に防止することができる。
尚、前記論理ブロックと前記フラッシュメモリの物理ブロックとの対応関係を示す変換テーブルを作成するテーブル作成手段を備え、
前記テーブル作成手段が、前記第1の情報に基づいて良品ブロックであると判断された物理ブロックだけから前記第2の情報を読み出し、読み出した第2の情報に基づいて前記変換テーブルを作成してもよい。
また、前記第3の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、特定した物理ブロックから前記管理情報を読み出す管理情報読出し手段を備えてもよい
上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステムは、本発明の第1の観点に係るメモリコントローラとフラッシュメモリとを備えることを特徴とする。
上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、
物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
フラッシュメモリにアクセスする際に参照される管理情報を、理ブロック内のユーザ領域に書き込む第1の書込み処理と、
ホストシステムから供給されるユーザデータを、当該ユーザデータの論理アドレスが属する論理ブロックと対応する物理ブロック内のユーザ領域に書き込む第2の書込み処理と、
前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断処理と、
物理ブロック内の冗長領域に、当該物理ブロックの良否を示す第1の情報、当該物理ブロックと対応する論理ブロックを示す第2の情報及び当該物理ブロックに書き込まれているデータの種別を示す第3の情報を書き込む第3の書込み処理と
物理ブロック内の冗長領域であって前記第1の情報、前記第2の情報及び前記第3の情報の書込み先に割り当てられた領域を参照することにより、当該物理ブロックの良否、当該物理ブロックと対応する論理ブロック及び当該物理ブロックに書き込まれているデータの種別を判断する判断処理とを含み、
前記第3の書込み処理では、前記第1の情報として不良ブロックであることを示す情報を書き込む場合、前記第1の情報の書込み先に割り当てられた領域に含まれる1以上のビットを書込み状態にする書込みを行い、
前記第1の情報の書込み先に割り当てられた領域が消去状態である物理ブロックは、前記判断処理により良品ブロックであると判断され、
前記第2の書込み処理では、前記判断処理により良品ブロックであると判断された物理ブロックだけをユーザデータの書込み先の物理ブロックとし、
前記第3の書込み処理では、前記第1の書込み処理により前記管理情報が書き込まれた物理ブロック及び前記診断処理により不良ブロックであると診断された物理ブロックの冗長領域に、不良ブロックであることを示す情報を前記第1の情報として書き込み、前記第2の書込み処理によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたユーザデータの論理アドレスが属する論理ブロックを示す情報を前記第2の情報として書き込み、前記第1の書込み処理により前記管理情報が書き込まれた物理ブロックの冗長領域に、書き込まれているデータが前記管理情報であることを示す情報を前記第3の情報として書き込ことを特徴とする。
尚、前記論理ブロックと前記フラッシュメモリの物理ブロックとの対応関係を示す変換テーブルを作成するテーブル作成処理を含み、
前記テーブル作成処理が、前記第1の情報に基づいて良品ブロックであると判断された物理ブロックだけから前記第2の情報を読み出し、読み出した第2の情報に基づいて前記変換テーブルを作成する処理であってもよい。
また、前記第3の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、特定した物理ブロックから前記管理情報を読み出す管理情報読出し処理を含んでもよい。
本発明によれば、論理アドレスが割当てられないブロックに書き込まれているカード情報等の管理情報が、誤って訂正又は消去されたりすることを簡単かつ確実に防止することができる。又、論理アドレスと物理アドレスの対応関係を示す変換テーブルを作成するときに、管理情報が書き込まれている物理ブロックが、不良ブロックと同等に取り扱われるため、管理情報が書き込まれている物理ブロックを除外する処理を別途行う必要がなくなり、変換テーブルの作成処理の効率が向上する。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステムの概要を示す構成図である。
図1に示したように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常、ホストシステム4に着脱可能に装着され、ホストシステム4に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ2及びメモリコントローラ3の詳細を説明する。
[フラッシュメモリ2の説明]
このフラッシュメモリシステム1において、データが記憶されるフラッシュメモリ2は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム4側から与えられる論理アドレスと、フラッシュメモリ2内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ2にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ2に対するアクセスが行なわれる。
図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。本実施形態では、1ブロックが32ページで構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されているものして説明する。
ここで、ユーザー領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
次に、フラッシュメモリ2の回路構成について説明する。
一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行っている。
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込状態)が、論理値"0"のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値"1"のデータに対応する。
[メモリコントローラ3の説明]
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック7は動作する。
ホストインターフェースブロック7は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口として、メモリコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口として、ホストシステム4に供給される。
さらに、ホストインターフェースブロック7は、ホストシステム4より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成されている。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4の受取準備ができるまで、バッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまで、バッファ9に保持される。
フラッシュメモリシーケンサブロック12は、内部コマンドに基づいて、フラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。
ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行なう機能ブロックである。
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[フラッシュメモリ2に対するアクセスの説明]
図3は、論理ブロックと物理ブロックの対応関係を示す説明図であり、論理アドレス空間を、セクタ単位で付けた連番であるLBA(Logical Block Address)で示している。
本実施例に係るフラッシュメモリシステム1では、複数の物理ブロックでゾーンを形成し、各ゾーンに対して、予め設定された論理アドレスの領域を割当てている。図3に示した例では、1024個の物理ブロックでゾーンが形成されている。又、このゾーンに対して、1000ブロック分(物理ブロック1000個分)の論理ブロック空間が割当てられている。
ここで、1セクタの容量がフラッシュメモリ2の1ページの容量と等しく、各物理ブロックが32個のページで構成されている場合、ゾーン内の各物理ブロックは、論理アドレス空間の32セクタ分の領域に割当てられる。従って、論理アドレス空間の32セクタ分の領域を1個の論理ブロックとすれば、1個の物理ブロックに対して1個の論理ブロックが割当てられる。又、1つのゾーンに割当てられる32000セクタ分の領域(LBA0〜LBA31999)を、32セクタ毎に区切った論理ブロックには、連番(LBN0〜LBN999)が付けられている(以下、論理ブロックに付けた連番を論理ブロック連番という)。一方、ゾーンを構成する1024個の物理ブロックにも連番(#0〜#1023)が付けられている(以下、物理ブロックに付けた連番を物理ブロック連番という)。
図3に示した例では、LBA0〜LBA31に対応する論理ブロック連番LBN0の論理ブロックが、物理ブロック連番#3の物理ブロックに割当てられ、LBA32〜LBA63に対応する論理ブロック連番LBN1の論理ブロックが、物理ブロック連番#1の物理ブロックに割当てられ、LBA64〜LBA95に対応する論理ブロック連番LBN2の論理ブロックが、物理ブロック連番#5の物理ブロックに割当てられ、LBA96〜LBA127に対応する論理ブロック連番LBN3の論理ブロックが、物理ブロック連番#7の物理ブロックに割当てられている。
フラッシュメモリ2にアクセスするときは、論理ブロックと物理ブロックの対応関係を示した変換テーブルを作成し、この変換テーブルを用いて、アクセスするページのアドレスを求めている。変換テーブルは、各物理ブロックの冗長領域に書き込まれている論理ブロック情報(その物理ブロックに書込まれているユーザーデータに対応する論理ブロックを示す情報)に基づいて作成される。
例えば、物理ブロックにユーザーデータを書込んだときに、そのユーザーデータに対応する論理ブロックの論理ブロック連番を、その物理ブロックの冗長領域に書込めば、この論理ブロック連番を順次読み出すことにより、変換テーブルを作成することができる。
図4は、変換テーブルの説明図である。
この変換テーブルは、1つのゾーンに対して作成されたものであり、ゾーンに割当てられている論理アドレス空間の論理ブロック連番LBN0〜LBN999と、これ対応する物理ブロックの物理ブロック連番#0〜#1023の対応関係を示している。図4に示した例では、論理ブロック連番LBN0は、物理ブロック連番#3に対応し、論理ブロック連番LBN1は、物理ブロック連番#1に対応し、論理ブロック連番LBN2は、物理ブロック連番#5に対応する。
このように、各論理ブロック連番に対応する物理ブロック連番が示されているので、ホストシステム4からコマンドと共にアドレス情報としてLBAが供給された場合は、そのLBAが属する論理ブロックの論理ブロック連番を変換テーブル上で検索することにより、それに対応する物理ブロックの物理ブロック連番を求めることができる。
物理ブロックの冗長領域には、論理ブロック情報と共にブロックステータスやデータ種別等の情報が書き込まれている。これらの情報について図5を参照して説明する。
図5は、冗長領域に書き込まれる情報を示す図である。
ブロックステータスは、その物理ブロックが良品ブロックであるか、又は不良ブロックであるかを示す情報である。図5に示した例では、ブロックステータスに対して8ビットのデータが割当てられている。
ブロックステータスの初期状態は、全てビットが消去状態(論理値の“1”)になっている(FFh(16進数))。そして、不良ブロックであると診断された場合には、8ビットのうちの3ビットを書込み状態(論理値の“0”)にする。又、このブロックステータスに基づいて良否を判断する場合、消去状態(論理値の“1”)のビットが1ビット以下であれば、良品ブロックと判断し、消去状態(論理値の“1”)のビットが2ビット以上であれば、不良ブロックと判断する。
なお、不良ブロックであると判断した場合に、書込み状態(論理値の“0”)にするビットの数は、フラッシュメモリ2の信頼性等を考慮して適宜設定すればよい。又、ブロックステータスに基づいて良否を判断する場合の基準、つまり、良品ブロックと判断する書込み状態(論理値の“0”)のビットの数の許容数についても、フラッシュメモリ2の信頼性等を考慮して適宜設定すればよい。
また、カード情報(CIS)が書き込まれている物理ブロックのブロックステータスは、F0h(16進数)が設定され、モード情報(MD)が書き込まれている物理ブロックのブロックステータスには、0Fh(16進数)が設定される。これらは、実質的に不良ブロックを示すブロックステータスとなる。
データ種別情報は、ユーザ領域に書き込まれているデータの種別を示す情報であり、4ビットのデータが割当てられている。例えば、ユーザ領域に、属性等のカード情報(CIS)、ホストシステム4から与えられるユーザデータ(YD)又は書込みモード等を示すモード情報(MD)が書き込まれている場合に、データ種別情報を検出することにより、各ブロックに書き込まれているデータがどれに該当するかを判断することができる。
図5では、ユーザデータ(YD)が書き込まれている物理ブロックのデータ種別情報は、全てのビットが消去状態(論理値の“1”)のFh(16進数)になっている。これに対し、カード情報(CIS)が書き込まれている物理ブロックのデータ種別情報は、3h(16進数)に設定され、モード情報(MD)が書き込まれている物理ブロックのデータ種別はCh(16進数)に設定されている。
この場合、不良ブロックのデータ種別情報も、ユーザデータ(YD)が書き込まれている物理ブロックのデータ種別情報と同じである。尚、ユーザデータ(YD)が書き込まれている物理ブロックのデータ種別情報は、不良ブロックのデータ種別情報と同一になっているが、Fh(16進数)と異なるデータ種別を設定にしても良い。
論理ブロック情報には、ユーザ領域に書き込まれているユーザデータ(YD)に対応する論理ブロックの論理ブロック連番が、10ビットデータで書き込まれている。対応する論理ブロックのないカード情報(CIS)やモード情報(MD)が書き込まれている物理ブロックには、論理ブロック情報が書き込まれず、全てのビットが消去状態(論理値の“1”)になっている。つまり、カード情報(CIS)やモード情報(MD)が書き込まれている物理ブロックの論理ブロック情報は、3FFhになっている。
冗長領域に書き込まれている論理ブロック情報、ブロックステータス、及びデータ種別等の情報は、図4に示した変換テーブルを作成する場合や、カード情報(CIS)やモード情報(MD)等の管理情報が書き込まれる物理ブロックにアクセスする場合に、参照される。
図4に示した変換テーブルを作成する場合には、ワークエリア8上に変換テーブルを作成する領域を確保し、この領域に論理ブロック連番と物理ブロック連番の対応関係を記述する。論理ブロック連番と物理ブロック連番の対応関係は、冗長領域から読み出した論理ブロック情報に基づいて記述される。論理ブロック情報を読み出すときには、良品ブロックの論理ブロック情報が順次読み出される。
良品ブロックの判断は、ブロックステータスに基づいて行われるため、ブロックステータスが不良ブロックを示す情報に設定されているカード情報(CIS)やモード情報(MD)等の管理情報が書き込まれている物理ブロックに対しては、論理ブロック情報の読み出しが行われない。
つまり、ブロックステータスに不良ブロックを示す情報が設定されている物理ブロックを、論理ブロック情報の読み出し対象から除外することにより、カード情報(CIS)やモード情報(MD)等の管理情報が書き込まれている物理ブロックも、論理ブロック情報の読み出し対象から除外することができる。
更に、カード情報(CIS)やモード情報(MD)等の管理情報が書き込まれている物理ブロックのブロックステータスを、不良ブロックを示す情報と同じにしたことにより、ユーザデータ(YD)が書き込まれている物理ブロックと間違えて、管理情報が書き替えられたり、又は消去されたりすることを少なくすることができる。つまり、フラッシュメモリは、ディスターブ現象等でデータが変化してしまうことがあるが、ブロックステータスが不良ブロックを示す情報に設定されていれば、良品ブロックと間違われることは殆どないため、誤った処理の対象となることが非常に少なくなる。
カード情報(CIS)やモード情報(MD)等の管理情報が書き込まれている物理ブロックのブロックステータスは、不良ブロックと同様の情報が設定されているが、データ種別の情報に基づいて、管理情報が書き込まれている物理ブロックを判別することができる。
つまり、不良ブロックのデータ種別は、全てのビットが消去状態(論理値の“1”)のFh(16進数)になっているが、カード情報(CIS)が書き込まれている物理ブロックのデータ種別は3h(16進数)に設定され、モード情報(MD)が書き込まれている物理ブロックのデータ種別はCh(16進数)に設定されている。
従って、データ種別が3h(16進数)の物理ブロックを検索することにより、カード情報(CIS)が書き込まれている物理ブロックを知得することができ、データ種別がCh(16進数)の物理ブロックを検索することにより、モード情報(MD)が書き込まれている物理ブロックを知得することができる。
次に、論理ブロック情報、ブロックステータス、及びデータ種別の設定処理について説明する。
診断処理で不良ブロックであると診断された場合、その物理ブロックの冗長領域に不良ブロックを示すブロックステータスを書き込む。尚、不良ブロックの診断処理では、例えば、消去を行ったときに全てのビットが消去状態になるかと、予め設定されたデータを書き込んだときに正常に書き込めたか等の診断が行われる。
カード情報(CIS)やモード情報(MD)等の管理情報を書き込んだ場合は、管理情報を書き込んだ物理ブロックの冗長領域に不良ブロックを示すブロックステータスを書き込むと共に、データ種別を示す情報を書き込む。ユーザデータ(YD)を書き込んだ場合は、ユーザデータ(YD)を書き込んだ物理ブロックの冗長領域に、論理ブロック情報を示す情報を書き込む。
尚、論理ブロック情報、ブロックステータス及びデータ種別の各情報が書き込まれなかった場合には、消去状態のままになる。つまり、論理ブロック情報を書き込まなかった場合、論理ブロック情報は3FFh(16進数)となり、ブロックステータスを書き込まなかった場合、ブロックステータスはFFh(16進数)となり、データ種別を書き込まなかった場合、データ種別はFh(16進数)となる。
本発明の実施形態に係るフラッシュメモリシステムのブロック図である。 フラッシュメモリのブロックとページの構成を示す図である。 論理ブロックと物理ブロックの対応関係を示す図である。 変換テーブルを示す図である。 冗長領域に書き込まれる情報を示す図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス

Claims (7)

  1. 物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
    前記フラッシュメモリにアクセスする際に参照される管理情報を、理ブロック内のユーザ領域に書き込む第1の書込み手段と、
    ホストシステムから供給されるユーザデータを、当該ユーザデータの論理アドレスが属する論理ブロックと対応する物理ブロック内のユーザ領域に書き込む第2の書込み手段と、
    前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断手段と、
    理ブロックの冗長領域に、当該物理ブロックの良否を示す第1の情報、当該物理ブロックと対応する論理ブロックを示す第2の情報及び当該物理ブロックに書き込まれているデータの種別を示す第3の情報を書き込む第3の書込み手段と
    物理ブロック内の冗長領域であって前記第1の情報、前記第2の情報及び前記第3の情報の書込み先に割り当てられた領域を参照することにより、当該物理ブロックの良否、当該物理ブロックと対応する論理ブロック及び当該物理ブロックに書き込まれているデータの種別を判断する判断手段とを備え、
    前記第3の書込み手段は、前記第1の情報として不良ブロックであることを示す情報を書き込む場合、前記第1の情報の書込み先に割り当てられた領域に含まれる1以上のビットを書込み状態にする書込みを行い、
    前記第1の情報の書込み先に割り当てられた領域が消去状態である物理ブロックは、前記判断手段により良品ブロックであると判断され、
    前記第2の書込み手段は、前記判断手段により良品ブロックであると判断された物理ブロックだけをユーザデータの書込み先の物理ブロックとし、
    前記第3の書込み手段は、前記第1の書込み手段により前記管理情報が書き込まれた物理ブロック及び前記診断手段により不良ブロックであると診断された物理ブロックの冗長領域、不良ブロックであることを示す情報を前記第1の情報として書き込み、前記第2の書込み手段によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたユーザデータの論理アドレスが属する論理ブロックを示す情報を前記第2の情報として書き込み、前記第1の書込み手段により管理情報が書き込まれた物理ブロックの冗長領域に、書き込まれているデータが前記管理情報であることを示す情報を前記第3の情報として書き込ように構成されていることを特徴とするメモリコントローラ。
  2. 前記論理ブロックと前記フラッシュメモリの物理ブロックとの対応関係を示す変換テーブルを作成するテーブル作成手段を備え、
    前記テーブル作成手段が、前記第1の情報に基づいて良品ブロックであると判断された物理ブロックだけから前記第2の情報を読み出し、読み出した第2の情報に基づいて前記変換テーブルを作成することを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記第3の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、特定した物理ブロックから前記管理情報を読み出す管理情報読出し手段を備えたことを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 請求項1乃至のいずれか1項に記載のメモリコントローラとフラッシュメモリとを備えることを特徴とするフラッシュメモリシステム。
  5. 物理ブロック単位で記憶データの消去が行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
    フラッシュメモリにアクセスする際に参照される管理情報を、理ブロック内のユーザ領域に書き込む第1の書込み処理と、
    ホストシステムから供給されるユーザデータを、当該ユーザデータの論理アドレスが属する論理ブロックと対応する物理ブロック内のユーザ領域に書き込む第2の書込み処理と、
    前記フラッシュメモリ内の物理ブロックが不良ブロックであるか否かを診断する診断処理と、
    物理ブロック内の冗長領域に、当該物理ブロックの良否を示す第1の情報、当該物理ブロックと対応する論理ブロックを示す第2の情報及び当該物理ブロックに書き込まれているデータの種別を示す第3の情報を書き込む第3の書込み処理と
    物理ブロック内の冗長領域であって前記第1の情報、前記第2の情報及び前記第3の情報の書込み先に割り当てられた領域を参照することにより、当該物理ブロックの良否、当該物理ブロックと対応する論理ブロック及び当該物理ブロックに書き込まれているデータの種別を判断する判断処理とを含み、
    前記第3の書込み処理では、前記第1の情報として不良ブロックであることを示す情報を書き込む場合、前記第1の情報の書込み先に割り当てられた領域に含まれる1以上のビットを書込み状態にする書込みを行い、
    前記第1の情報の書込み先に割り当てられた領域が消去状態である物理ブロックは、前記判断処理により良品ブロックであると判断され、
    前記第2の書込み処理では、前記判断処理により良品ブロックであると判断された物理ブロックだけをユーザデータの書込み先の物理ブロックとし、
    前記第3の書込み処理では、前記第1の書込み処理により前記管理情報が書き込まれた物理ブロック及び前記診断処理により不良ブロックであると診断された物理ブロックの冗長領域に、不良ブロックであることを示す情報を前記第1の情報として書き込み、前記第2の書込み処理によりユーザデータが書き込まれた物理ブロックの冗長領域に、書き込まれたユーザデータの論理アドレスが属する論理ブロックを示す情報を前記第2の情報として書き込み、前記第1の書込み処理により前記管理情報が書き込まれた物理ブロックの冗長領域に、書き込まれているデータが前記管理情報であることを示す情報を前記第3の情報として書き込ことを特徴とするフラッシュメモリの制御方法。
  6. 前記論理ブロックと前記フラッシュメモリの物理ブロックとの対応関係を示す変換テーブルを作成するテーブル作成処理を含み、
    前記テーブル作成処理が、前記第1の情報に基づいて良品ブロックであると判断された物理ブロックだけから前記第2の情報を読み出し、読み出した第2の情報に基づいて前記変換テーブルを作成する処理であることを特徴とする請求項に記載のフラッシュメモリの制御方法。
  7. 前記第3の情報に基づいて、前記管理情報が書き込まれている物理ブロックを特定し、特定した物理ブロックから前記管理情報を読み出す管理情報読出し処理を含むことを特徴とする請求項又はに記載のフラッシュメモリの制御方法。
JP2004379711A 2004-12-28 2004-12-28 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Expired - Fee Related JP4332108B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004379711A JP4332108B2 (ja) 2004-12-28 2004-12-28 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004379711A JP4332108B2 (ja) 2004-12-28 2004-12-28 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2006185290A JP2006185290A (ja) 2006-07-13
JP4332108B2 true JP4332108B2 (ja) 2009-09-16

Family

ID=36738349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004379711A Expired - Fee Related JP4332108B2 (ja) 2004-12-28 2004-12-28 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4332108B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845137B1 (ko) 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
JP5105351B2 (ja) * 2007-04-10 2012-12-26 株式会社メガチップス 不揮発性半導体記憶装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
JP3072722B2 (ja) * 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
JPH11345174A (ja) * 1998-03-09 1999-12-14 Mitsubishi Electric Corp 半導体ディスク装置及びその論理/物理アドレス変換テ―ブル作成方法
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
JP2003216507A (ja) * 2002-01-22 2003-07-31 Sharp Corp 記憶容量処理システム

Also Published As

Publication number Publication date
JP2006185290A (ja) 2006-07-13

Similar Documents

Publication Publication Date Title
KR101122485B1 (ko) 메모리 시스템
US7480762B2 (en) Erase block data splitting
US7818492B2 (en) Source and shadow wear-leveling method and apparatus
US7315870B2 (en) Memory controller, flash memory system, and method for recording data on flash memory
JP2006018373A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20040255076A1 (en) Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
JP4433792B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005316793A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4419525B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4213053B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081127

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: 20090609

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090619

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees