(57)【特許請求の範囲】
【請求項１】
電気的にデータの消去及び書き込みが可能なメモリセルを複数有する不揮発性メモリと、
前記不揮発性メモリのデータを一時記憶するためのキャッシュメモリと、
前記不揮発性メモリ及び前記キャッシュメモリを制御するコントロール回路と、
ホストとの通信を行うインターフェース回路と、を具備し、
前記コントロール回路は、
前記不揮発性メモリの所望のページからデータを読み出し、データ"0"のカウント数が所定の判定基準に達したか否かを判定条件に使用することによって消去済み領域を判定し、書き込み済み領域と未書き込み領域との境界を判別する消去ページ検知機能を有し、
前記消去ページ検知機能を実行する場合に、前記不揮発性メモリから読み出したデータを前記キャッシュメモリに転送することなく、前記未書き込み領域のアドレスを取得することが可能である、
ことを特徴とするメモリシステム。
【請求項２】
前記コントロール回路は、前記判定基準を可変設定する機能を有することを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記コントロール回路は、
前記不揮発性メモリへ書き込むデータが全て”1”の場合に、データ”0”を含むECC符号を生成して付加するECCモジュールを具備し、
前記消去ページ検知機能を実行する場合に、前記不揮発性メモリから読み出したデータにECCエラーが生じているか否かを消去済み領域の判定条件に使用する
ことを特徴とする請求項１記載のメモリシステム。
【請求項４】
前記コントロール回路は、
前記不揮発性メモリへ書き込むデータに、データ”0”を含む識別番号を付加する識別番号チェックモジュールを具備し、
前記消去ページ検知機能を実行する場合に、前記不揮発性メモリから読み出したデータに識別番号が付加されているか否かを消去済み領域の判定条件に使用する
ことを特徴とする請求項１乃至３のいずれか１項に記載のメモリシステム。
【請求項５】
前記コントロール回路は、前記不揮発性メモリの消去済み領域を判定する判定条件として、消去ページの連続数を使用する機能をさらに有することを特徴とする請求項１乃至４のいずれか１項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュEEPROM（Flash-EEPROM）型の不揮発性メモリを用いたメモリシステムに係り、特に昇順プログラム制約のあるNAND型フラッシュメモリを用いたメモリシステムに関するもので、例えばハードディスク装置の代替に使用されるものである。
【背景技術】
【０００２】
現在、半導体メモリは大型コンピュータの主記憶から、パーソナルコンピュータ、家電製品、携帯電話等、至る所で利用されている。市場が大きく伸びているものは、NAND-Flash Memory に代表されるフラッシュEEPROM型の不揮発性メモリである。これは、電源を切ってもデータが消えない、高集積化に適した構造になっている、などといったことから、今では携帯電話やデジタルカメラ等、多くの情報機器に利用されている。すなわち、デジタルカメラ、デジタルビデオ、MP3 等の音楽機器、モバイル用パソコン等の記憶媒体、デジタルテレビ等において、画像、動画、音声、ゲーム等の情報を記憶する媒体として、各種メモリカード（SDカード、MMC カード、MSカード、CFカード等）、パソコンの記憶媒体としてUSB 対応のメモリ（USB メモリ）、携帯電話のメモリ等にも用いられている。
【０００３】
フラッシュEEPROM型の不揮発性メモリは主にNOR 型のメモリ（NOR フラッシュメモリ）とNAND型のメモリ（NANDフラッシュメモリ）が有る。NOR フラッシュメモリは、高速読み出し、読み出し回数が1013程度の特性を有し、携帯機器の命令コード記憶として使われているが、書き込みの実効バンド幅が小さいので、ファイル記録には適していない。
【０００４】
これに対して、NANDフラッシュメモリは、NOR フラッシュメモリに比べて高集積化が可能であり、読み出し特性に関しては、アクセス時間は25us程度と遅いが、バースト読み出しが可能であって実効バンド幅が高い。また、書き込み特性に関しては、プログラム時間が200us 、消去時間が1ms 程度と遅いが、一度にプログラム、消去可能なビット数が多く、バースト動作で書き込みデータを取り込み、一度に多数のビットをページ単位でプログラムできるので、実効バンド幅が高い。
【０００５】
また、NANDフラッシュメモリは、高集積化による大容量化が可能であるので、最近ではハードディスクの置き換えとしても考えられているが、使用上の幾つかの制約がある。まず、書き込み（＆消去）回数によるデータ劣化があるので、書き込み回数制限（プログラム・消去回数制限）がある。すなわち、NANDフラッシュメモリのプログラムは、基板に対してメモリセルトランジスタのゲートに高電圧をかけることによってフローティングゲートに電子を注入させる。この動作を何回も行うと、メモリセルトランジスタのフローティングゲート周りの酸化膜が劣化し、データを破壊してしまう。現在、NANDフラッシュメモリの書き込み（＆消去）可能な回数は、105 回程度であり、他の不揮発メモリと比べて非常に少なく、今後のプロセスの微細化やセルの多値化に伴い、書き込み回数がさらに少なくなっていく見込みである。NANDフラッシュメモリをメモリカードやUSB メモリなどで用いる場合は、105 回程度アクセスするには相当な時間がかかるので、NANDフラッシュメモリを現実的に使用可能である。しかし、NANDフラッシュメモリをハードディスクの置き換え用のシステムに載せることを考えると、かなりの短期間で105 回程度のアクセスがなされてしまう。
【０００６】
また、NANDフラッシュメモリには二度書き禁止の制約もある。NANDフラッシュメモリのプログラムはフローティングゲートに電子を注入する方向（データ"1" →データ"0" の方向：0 書き) でしか制御できず、電子を引き抜く際には（データ"0" →データ"1" の方向：1 書き) 、消去をしなければならない。この際、一般に、プログラムはページ単位であるのに対して、消去は数ページから構成されるブロック単位でしかできない。そこで、プログラム済みのページのデータを変更したい場合には、同じブロックにあるデータを別の領域に一時退避させ、消去を行ってから再度プログラムする必要がある。実際は、前記した書き換え回数制限があるので、書き換えたいページを別の消去済み領域に書き込み、論理−物理変換テーブルなどを用いて管理することにより、プログラム／消去の過度な動作を回避している。
【０００７】
NANDフラッシュメモリのさらなる制約条件として、NANDフラッシュメモリではページ逆順プログラムが禁止されている。例えば、あるブロック内でプログラムする際には、ページアドレス0 から昇順に実行しなければならない制約がある。
【０００８】
以上のようなNANDフラッシュメモリを用いたメモリシステムを構築する、特にハードディスクの代替に使用するメモリシステムを構築する場合、現状では、データキャッシュ＆管理情報保管用の揮発性RAM と不揮発メインストレージ用のNANDフラッシュメモリで構成することが多い。このような構成においては、ホスト側から瞬断対策として揮発性メモリ領域のデータを不揮発性メモリ領域に退避させるためのコマンド（フラッシュキャッシュコマンド）を頻繁に発行してくるので、結局、NANDフラッシュメモリへ管理情報の更新分（以下、管理ログと称する）を追記しなくてはならない。
【０００９】
このようなメモリシステムでは、電源オン毎に、NANDフラッシュメモリ内に書き込まれた管理ログから最新情報を抽出し、管理情報の再構築を行う必要がある。この際、管理ログがメモリ領域のどこまでか（有効な情報の領域はどこまでか）の境界を把握する必要がある。
【００１０】
また、近年、NANDフラッシュメモリの様々な制約条件をカバーするため、また、不揮発性RAM の大容量化を背景として、データキャッシュ＆管理情報保管用に不揮発性RAM（例えば、FeRAM 、MRAM等）とNANDフラッシュメモリとを組み合わせる構成も提案されている。このような構成では、頻繁な書き換えが生じる管理情報を不揮発RAM 上に配置することによって、前記のような管理ログの問題を回避することができる。しかし、NANDフラッシュメモリへのデータ書き込み中における瞬断時に、どのデータまで書き込み終了（ブロック内のどのページまでプログラム済み）したかを把握する際にも同じ問題が生じる。
【００１１】
なお、特許文献１の「フラッシュメモリ内蔵の半導体装置、フラッシュメモリの制御方法およびそのプログラム」には、フラッシュメモリ消去単位ブロックに任意のデータ長を有する最新データを追加記憶させる点が開示されている。具体例として、消去ブロック単位毎にデータ書き換えを行う際に、ブロックの先頭アドレスから最終アドレスまでアドレスを１ワード単位にずらしながら格納データを検索し、検索したデータが消去状態である全て論理レベルの“１”レベルであれば先頭アドレスから順次に最新データを書き込み、検索したデータが非消去状態である場合は、当該アドレス値に予め定める数値を加算して求めたアドレス値が最終アドレス値よりも小さければ当該アドレスから最新データを書き込み、加算して求めたアドレス値が最終アドレス値よりも大きければ当該ブロックのデータを消去して先頭アドレスから最新データを書き込む。
【００１２】
また、特許文献２「半導体記憶装置およびそのブランクページ検索方法」には、ページ内のデータをバイト単位で読み出すことなく、ページ全体がデータ初期状態（消去状態）にあるブランクページを高速に見つけ出す手法が開示されている。具体例として、メモリセルからの読み出し時にビット線の電位をセンスして選択されたメモリセルのデータを確定させ、読み出したデータをデータバッファに保持する。そして、全データバッファが全て“０”データを保持しているか否か、及び全データバッファが全て“１”データを保持しているか否かの両方を検知する。
【００１３】
上記、特許文献１および２は、NANDフラッシュメモリ内での解決法であるが、本提案はNANDフラッシュメモリコントローラの処理で解決する。
【特許文献１】特開２００４−３１０２６８号公報
【特許文献２】特開２００５−３５３１７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は前記した従来の問題点を解決すべくなされたもので、フラッシュEEPROM型不揮発性メモリにデータを保存する際、消去ページを検知することにより、データ格納領域（書き込みデータの有効領域）とデータ未格納領域（書き込みデータの無効領域）との境界を検知することが可能なメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、電気的にデータの消去及び書き込みが可能なメモリセルを複数有する不揮発性メモリと、前記不揮発性メモリのデータを一時記憶するためのキャッシュメモリと、前記不揮発性メモリ及び前記キャッシュメモリを制御するコントロール回路と、ホストとの通信を行うインターフェース回路と、を具備し、前記コントロール回路は、前記不揮発性メモリの所望のページからデータを読み出し、データ"0"のカウント数が所定の判定基準に達したか否かを判定条件に使用することによって消去済み領域を判定し、書き込み済み領域と未書き込み領域との境界を判別する消去ページ検知機能を有し、前記消去ページ検知機能を実行する場合に、前記不揮発性メモリから読み出したデータを前記キャッシュメモリに転送することなく、前記未書き込み領域のアドレスを取得することが可能であることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、大容量化が可能であるフラッシュEEPROM型不揮発性メモリにデータを保存する際、消去ページを検知することにより、データ格納領域とデータ未格納領域との境界（書き込みデータの有効領域と無効領域との境界）を検知することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施形態を説明する。この説明に際して、全図にわたり共通する部分には共通する参照符号を付す。
【００１８】
＜第１の実施形態＞
図１は、本発明のメモリシステムの第１の実施形態を示すブロック図である。このメモリシステム10は、フローティングゲートを有する電気的にデータの消去、書き込みが可能なメモリセルを複数配設してなるフラッシュ型EEPROM不揮発性メモリ（本例では、集積度が高い大容量のNANDフラッシュメモリ）11と、このNANDフラッシュメモリ11のデータを一時記憶するためのキャッシュメモリ（本例では、フラッシュメモリに比べて読み出し／書き込み速度は高速であるが中容量であるDRAM）13と、これらの２種類のメモリを制御するコントロール回路（NANDメモリコントローラ12、DRAMコントローラ14）と、MPU 15と、ホストコンピュータとの通信を行うインターフェース回路（ＩＦ）16を有する。
【００１９】
MPU 15は、NANDフラッシュメモリ11の消去ページを検知したい領域の情報（先頭アドレス、転送ページ数）と、消去ページ検知モードの設定をNANDメモリコントローラ12に設定する機能を有する。
【００２０】
そして、NANDメモリコントローラ12は、制御レジスタ（図３中31）、NAND-IF 制御モジュール（図３中32）、ダイレクトメモリアクセスコントローラ（DMAC）（図３中33）を有する。上記NAND-IF 制御モジュール32は、"0" データカウントモジュール（"0" データカウンタ）34と、処理動作の手順を制御するシーケンス制御回路（シーケンサ）35などを含む。
【００２１】
NANDメモリコントローラ12は、NANDフラッシュメモリ11の消去済み領域を判定することによってNANDフラッシュメモリ11の書き込み済み／未書き込み領域を判別する機能を有する。本例では、NANDメモリコントローラ12は、NANDフラッシュメモリ11から対象領域の先頭からデータをDRAM13へ読み出しつつ、コントローラ内部でページ毎にデータ"0" の数をカウントする機能を有する。
【００２２】
なお、前記キャッシュメモリは、揮発性メモリ（DRAM、SRAMなど）または不揮発性メモリ（FeRAM 、MRAM、PRAM、RRAMなど）のどちらを使用してもよい。
【００２３】
図２は、図１のメモリシステムにおける処理内容の一例を示す。図３は、図１のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す。図１のメモリシステムにおける処理は、まず、MPU 15が、NANDフラッシュメモリ11の消去ページを検知したい領域の情報（先頭アドレス、転送ページ数）と、消去ページ検知モード（Erase 検知モード）の設定をNANDメモリコントローラ12に設定する。これにより、NANDメモリコントローラ12はNANDフラッシュメモリ11から対象領域の先頭から（ページアドレス0 から昇順に）データを読み出し、ページ転送を開始する。この際、NANDフラッシュメモリ11にはページ逆順プログラム禁止制約があるので、同じブロック（Block ）内では、ページアドレス0 から昇順に読み出していく。本例では、NANDフラッシュメモリ11は、データをDRAM13へ転送しつつ、コントローラ内部でページ毎にデータ"0" の数をカウントする。この際、対象領域が書き込み済みのページであれば、大抵はデータ自身に"0" データが混じっている。そこで、NANDフラッシュメモリ11から読み出したデータのページ転送時のデータ"0" が0 個の場合は、消去ページ検知とみなし、そのアドレスをコントローラ内部の制御レジスタに格納する。この場合、ページ逆順プログラム制約からあるページで消去ページを検知すれば、そのアドレス以降は消去ページとして把握する、つまり、書き込みデータの有効／無効の境界を把握することができる。換言すれば、消去状態のページは、全て"1" データが格納されているはずなので、コントローラ側でデータ有効／無効を判断したい領域を読み出し、１単位毎にデータ"0" の数をカウントし、0 個であれば消去ページと判断する。この際、NANDフラッシュメモリ11にはページ逆順プログラム禁止制約があるので、初回に検知したアドレスを保持し、続きのデータ転送で消去検知しても上書きしないようにする。このような検知動作を最終ページまで実行する。そして、消去ページ検知結果をMPU 15に対して割り込み等で通知する。これにより、MPU 15は、制御レジスタから消去ページ検知のアドレスを取得し、有効データの境界を把握し、管理情報の構築等を行う。
【００２４】
上記処理例では、消去ページ検知モード時には、NANDフラッシュメモリ11から読み出したデータをDRAM13へ転送する場合を想定したが、データ転送は必要とせずに消去ページアドレスのみ検知したい場合もあるので、読み出したデータをDRAM13に転送する／しないのモードオプションを追加することが望ましい。
【００２５】
上記処理は、NANDフラッシュメモリ11に接続されているMPU 15でも実施することは可能であるが、データの比較に要する時間が長くなり、他の処理へのオーバーヘッドになるので、本実施形態ではNANDメモリコントローラ12に上記処理の機能を持たせている。
【００２６】
＜第２の実施形態＞
図４は、第２の実施形態のメモリシステムにおける処理内容の一例を示す。このメモリシステムは、前述した第１の実施形態のメモリシステムと比べて、消去ページを検知したい領域をDRAM13に転送しつつ、データ"0" の数をカウントしていく際、同じブロック内で消去を検知した時に直ちにDRAM13への転送、およびNANDフラッシュメモリ11からの読み出しを中断する機能をシーケンサ34に付加している。
【００２７】
書き込みデータの有効／無効の判断は、消去ページを検知した時点で把握でき、その後のデータは無効データ（消去済みのデータ）であるので、DRAM13に転送する必要は無い。この機能によって、余計なデータ転送時間を省くことができ、システムでかかる処理時間を短くすることができる。
【００２８】
＜第３の実施形態＞
図５は、第３の実施形態のメモリシステムにおける処理内容の一例を示す。図６は、第３の実施形態のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す。
【００２９】
前述した第１の実施形態あるいは第２の実施形態のメモリシステムでは、消去ページを検知したい領域をDRAM13に転送しつつ、データ"0" の数をカウントしていく際、判定条件としてデータ"0" のカウント数を1 個以上とした。しかし、従来例で述べたように、近年のNANDフラッシュメモリでは、少数の不良ビットを含む形での出荷も行われており、使用中の書き込み回数増加に伴うセルの劣化、データの経年劣化対策として、誤り訂正(ECC)回路の使用が一般的となっている。この場合、消去処理を行っても消去済みページが全て"1" データになる保障は無いので、前述した第１の実施形態あるいは第２の実施形態の処理方法では誤った判断を下してしまう。
【００３０】
そこで、第３の実施形態のメモリシステムでは、前述した第１の実施形態あるいは第２の実施形態のメモリシステムと比べて、"0" カウント数の判定閾値を可変にできる機能を付加している。この機能を実現する手段の一例として、NANDメモリコントローラ12の制御レジスタ61内に"0" カウント数を設定する設定レジスタ62を付加し、この設定レジスタ62の設定値と"0" データカウントモジュール34のカウント値とを比較して判定を行うように構成している。
【００３１】
したがって、不良ビットの数が予め判明していれば、MPU 15が設定レジスタ62に"0" カウント数設定値をセットすることにより、不良ビットを含む形でも消去ページを検知することが可能になる。
【００３２】
＜第４の実施形態＞
図７は、第４の実施形態のメモリシステムにおける処理内容の一例を示す。図８は、第４の実施形態のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す。
【００３３】
前述した第１〜第３の実施形態のメモリシステムでは、消去ページの検知条件として、データ"0" のカウント数のみを使用していた。一方、近年ではNANDフラッシュメモリの使用上、データに対してECC 符号を付加することが必須となっている。また、NANDフラッシュメモリでは、１ページ内にECC 符号を格納するための冗長領域が確保されている。NANDフラッシュメモリに書き込まれたデータにはECC 符号が付加されているのに対して、消去ページに関してはECC 符号が付加されていないので必ずECC エラーが生じる。
【００３４】
そこで、第４の実施形態のメモリシステムでは、NANDメモリコントローラ12内にECC モジュール81を付加しておく。そして、NANDフラッシュメモリ12に書き込むデータが全て"1" データの場合であっても、データに付加されるECC 符号にデータ"0" を含むような生成多項式を選び、消去ページ検知条件（判定条件）として、データ"0" のカウント数に加え、ECC 訂正結果も使用して消去済みの判定を行う機能をシーケンサ35に付加している。
【００３５】
したがって、NANDフラッシュメモリ11の消去ページを検知したい領域から読み出したデータをDRAM13に転送しつつ、"0" データカウントモジュール34でデータ"0" の数をカウントしたカウント数に基づく判定と、ECC エラーの有無判定の２段階で消去ページの検知処理を行うことにより、第１〜第３の実施形態よりも正確に消去ページを検知することが可能になる。
【００３６】
＜第５の実施形態＞
図９は、第５の実施形態のメモリシステムにおける処理内容の一例を示し、図１０は、第５の実施形態のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す。
【００３７】
第５の実施形態のメモリシステムでは、前述した第４の実施形態のメモリシステムと比べて、書き込みデータ自体に識別番号を付加する機能を有する。この機能を実現する手段の一例として、NANDメモリコントローラ12内に識別番号をチェックするモジュール（識別番号チェックモジュール）101 を付加しておき、NANDフラッシュメモリ11にデータを書き込む時に必ずデータ"0" を複数含むような識別番号を付加する。管理情報のログなどは、データサイズに制約は無いので、識別番号を付加することは安易である。一方、ホスト側からのデータに関しては、データサイズが決まっている（例えば、HDD IFであるATA は最小単位が512B）ような場合でも、NANDフラッシュメモリ11の冗長領域に識別番号を書き込むように予め決めておく。
【００３８】
これにより、消去検知のため読み出しの際に、識別番号をチェックし、合致していれば有効（書き込まれた）データ、間違っていれば無効（消去ページ）データと判定する処理を、前述した第４の実施形態の検知条件に加えることによって、より正確に消去ページを検知することが可能になる。
【００３９】
なお、上述したように書き込みデータ自体に識別番号を書き込んでおく手法は、前述した第４の実施形態に限らず、第１〜第３の実施形態にも適用可能である。
【００４０】
＜第６の実施形態＞
NANDフラッシュメモリにはページ逆順プログラム禁止制約があるので、同じブロック内であれば、消去検知後は必ず消去ページであると考えられる。前述した各実施形態のメモリシステムではページ単位で独立に消去ページかどうかを判断していたが、第６の実施形態では複数ページの関係から消去ページの判断をする機能をシーケンサ35に付加している。
【００４１】
例えば、第１〜第５の実施形態の検知条件で消去ページを検知した後、さらに、２ページ連続して消去ページ（つまり、３ページ連続して消去ページ）であれば、検知したページは消去ページと判断する。この場合、検知基準とする連続ページ数（上記例では「3 」）をコントローラ側に設定できるようにしておく。但し、連続ページを複数に設定しても、ブロック内の残り1 ページで消去ページを検知した場合は、検知条件としての連続ページ数は無視する等の処理を行う。
【図面の簡単な説明】
【００４２】
【図１】本発明のメモリシステムの第１の実施形態を示すブロック図。
【図２】図１のメモリシステムにおける処理内容の一例を示す図。
【図３】図１のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す図。
【図４】第２の実施形態のメモリシステムにおける処理内容の一例を示す図。
【図５】第３の実施形態のメモリシステムにおける処理内容の一例を示す図。
【図６】第３の実施形態のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す図。
【図７】第４の実施形態のメモリシステムにおける処理内容の一例を示す。
【図８】第４の実施形態のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す。
【図９】第５の実施形態のメモリシステムにおける処理内容の一例を示す。
【図１０】第５の実施形態のメモリシステムにおける構成の一部およびデータ処理動作の一例を示す。
【符号の説明】
【００４３】
10…メモリシステム、11…NANDフラッシュメモリ、12…NANDメモリコントローラ、13…キャッシュメモリ、14…DRAMコントローラ、15…MPU 、16…インターフェース回路。
【図１】
0004729062.tif 000002
【図２】
0004729062.tif 000003
【図３】
0004729062.tif 000004
【図４】
0004729062.tif 000005
【図５】
0004729062.tif 000006
【図６】
0004729062.tif 000007
【図７】
0004729062.tif 000008
【図８】
0004729062.tif 000009
【図９】
0004729062.tif 000010
【図１０】
0004729062.tif 000011