(57)【要約】 【課題】  不揮発性メモリの書き込み途上における電源遮断による異常を容易に外部に知らせる。【解決手段】  不揮発性メモリを制御するコントローラは、外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていないとき、当該論理アドレスに対応する第１の物理アドレスの割り当てを行なう。そして第１の物理アドレスの初期化済み単位メモリ領域(ＢＬＫ０)に論理アドレス情報(ＬＡ０)とその世代情報(ＧＲ０)を格納する。この後コントローラは、当該論理アドレスに対応する第２の物理アドレスの割り当てを行ない、第２の物理アドレスの初期化済み単位メモリ領域(ＢＬＫ１)に論理アドレス情報(ＬＡ０)と一世代更新したその世代情報(ＧＲ１)とデータ情報(ＤＡＴ０)を書き込む。書き込み途中での電源遮断により異常のある論理アドレスに対する読出しを行なったとき、読出しデータが全て初期状態とされることによって異常を検出させる。【選択図】        図７
2006323499.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する半導体装置であって、
前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有し、
前記コントローラは、外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていないとき、当該論理アドレスに対応する第１の物理アドレスの割り当てを行ない、第１の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報とその世代情報を格納した後、当該論理アドレスに対応する第２の物理アドレスの割り当てを行ない、第２の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込む半導体装置。
【請求項２】
前記コントローラは、前記第２の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込んだ後に、前記第１の物理アドレスの単位メモリ領域を初期化する請求項１記載の半導体装置。
【請求項３】
前記コントローラは、外部から与えられた論理アドレスに応ずる記憶情報を外部に出力するとき、論理アドレス情報が等しく世代情報が異なる複数の物理アドレスがある場合には古い世代情報を保有する物理アドレスのデータ情報を外部に出力する請求項２記載の半導体装置。
【請求項４】
前記コントローラは、外部から与えられた論理アドレスに対応して第３の物理アドレスが割り当てられているとき、当該論理アドレスに対応する第４の物理アドレスの割り当てを行ない、第４の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、書き込んだ後に前記第３の物理アドレスの単位メモリ領域を初期化する請求項３記載の半導体装置。
【請求項５】
前記コントローラは、前記データ情報を書き込む不揮発性メモリセルには４値以上の多値情報のプログラムを行い、前記論理アドレス情報と世代情報を書き込む不揮発性メモリセルには２値情報のプログラムを行なう請求項４記載の半導体装置。
【請求項６】
単位メモリ領域は初期化単位であり、初期化単位は複数のプログラム単位を有する請求項５記載の半導体装置。
【請求項７】
前記コントローラは、第１の書き込みコマンドに応答するときは、外部から指定された一つの論理アドレスに対するデータ情報をプログラム単位で全て第２の物理アドレスの単位メモリ領域に書き込むのを待って、前記第１の単位メモリ領域を初期化する請求項６記載の半導体装置。
【請求項８】
前記コントローラは、第１の書き込みコマンドに応答するときは、外部から指定された一つの論理アドレスに対するデータ情報をプログラム単位で全て第４の物理アドレスの単位メモリ領域に書き込むのを待って、前記第３の単位メモリ領域を初期化する請求項７記載の半導体装置。
【請求項９】
前記コントローラは、第２の書き込みコマンドに応答するときは、外部から指定された一つの論理アドレスに対するデータ情報を一つのプログラム単位だけ第２の物理アドレスの単位メモリ領域に書き込むのを待って、前記第１の単位メモリ領域を初期化する請求項６記載の半導体装置。
【請求項１０】
前記コントローラは、第２の書き込みコマンドに応答するときは、外部から指定された一つの論理アドレスに対するデータ情報を一つのプログラム単位だけ第４の物理アドレスの単位メモリ領域に書き込むのを待って、前記第３の単位メモリ領域を初期化する請求項９記載の半導体装置。
【請求項１１】
不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する半導体装置であって、
前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有し、
前記コントローラは、外部から指示された読出しコマンドに応答して、当該コマンドで指示された論理アドレスに対応する物理アドレスのデータ情報を外部に出力するとき、前記物理アドレスに対する情報の書き込み異常の痕跡に応答して、外部に出力するデータ情報の全てを不揮発性メモリセルの初期化状態のデータとする半導体装置。
【請求項１２】
前記書き込み異常の痕跡は、前記単位メモリ領域のデータ領域に対するプログラムの完了によって所定の状態に変更されるフラグが、所定の状態になっていないことである請求項１１記載の半導体装置。
【請求項１３】
前記書き込み異常の痕跡は、同じ論理アドレスに世代の異なる複数の物理アドレスが割り当てられて残っていることである請求項１１記載の半導体装置。
【請求項１４】
不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する半導体装置であって、
前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有し、
前記単位メモリ領域はそのデータ領域に対するプログラムの完了によって所定の状態に変更されるフラグを有し、
前記コントローラは、外部から指示された読出しコマンドに応答して、当該コマンドで指示された論理アドレスに対応する物理アドレスのデータ情報を外部に出力するとき、前記物理アドレスに対応するフラグが前記所定の状態でなければ、外部に出力するデータ情報の全てを不揮発性メモリセルの初期化状態のデータとする半導体装置。
【請求項１５】
不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する半導体装置であって、
前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有し、
前記単位メモリ領域は初期化単位とされ、初期化単位は複数のプログラム単位を有し、
前記コントローラは、外部から供給される所定の書き込みコマンドに応答して、一つの初期化単位を上限として複数のプログラム単位のデータ領域に情報を格納するとき、外部から与えられた論理アドレスに対応する物理アドレスの割り当てを行ない、割り当てられた物理アドレスの初期化済み単位メモリ領域の一つのプログラム単位に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、当該単位メモリ領域の別のプログラム単位に残りのデータ情報を書き込み、全てのデータ情報の書き込みを完了してから、同一論理アドレスに関する一つ前の世代情報を有する単位メモリ領域を初期化する半導体装置。
【請求項１６】
不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する半導体装置であって、
前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有し、
前記単位メモリ領域は初期化単位とされ、初期化単位は複数のプログラム単位を有し、
前記コントローラは、外部から供給される所定の書き込みコマンドに応答して、一つの初期化単位を上限として複数のプログラム単位のデータ領域に情報を格納するとき、外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていないとき、当該論理アドレスに対応する第１の物理アドレスの割り当てを行ない、第１の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報とその世代情報を格納した後、当該論理アドレスに対応する第２の物理アドレスの割り当てを行ない、第２の物理アドレスの初期化済み単位メモリ領域の一つのプログラム単位に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、当該単位メモリ領域の別のプログラム単位に残りのデータ情報を書き込み、全てのデータ情報の書き込みを完了してから、前記第１の物理アドレスの単位メモリ領域を初期化する半導体装置。
【請求項１７】
不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する半導体装置であって、
前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有し、
前記単位メモリ領域は初期化単位とされ、初期化単位は複数のプログラム単位を有し、
前記コントローラは、外部から供給される所定の書き込みコマンドに応答して、一つの初期化単位を上限として複数のプログラム単位のデータ領域に情報を格納するとき、外部から与えられた論理アドレスに対応する第３の物理アドレスが割り当てられているとき、当該論理アドレスに対応する第４の物理アドレスの割り当てを行ない、第４の物理アドレスの初期化済み単位メモリ領域の一つのプログラム単位に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、当該単位メモリ領域の別のプログラム単位に残りのデータ情報を書き込み、全てのデータ情報の書き込みを完了してから、前記第３の物理アドレスの単位メモリ領域を初期化する半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、閾値電圧の初期化とプログラムにより情報を書き込み可能にされる不揮発性メモリとそのコントローラを有する半導体装置に関し、例えばフラッシュメモリを用いたファイルメモリ、更にはメモリカードなどに適用して有効な技術に関する。
【背景技術】
【０００２】
フラッシュメモリを用いたファイルメモリは、各々物理アドレスを有する複数のメモリブロックを備え、ホスト装置から与えられる論理アドレスに対する物理アドレスの割り当てを行なう。メモリブロックはデータ領域と管理領域を有し、管理領域はメモリブロックに対応する論理アドレス情報や世代情報を保有する。ホスト装置はファイルメモリに論理アドレスを指定してデータ情報の書き込みを指示してくる。フラッシュメモリにおいてメモリブロックの書き込みを行なう場合には、論理アドレスに対応して既に存在するメモリブロックの情報が書き込み途中で失われないように、書き込み対象の論理アドレスに対応する別の物理アドレスを割り当てる。当該別の物理アドレスの管理領域に対応する論理アドレス情報と更新された世代情報を格納してから、新しい方の物理アドレスにデータ情報の書き込みを行ない、書き込みを完了した後に世代の古い方の物理アドレスのメモリブロックを初期化する。外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていないときは、当該論理アドレスに対応する物理アドレスの割り当てを行ない、割り当てられた物理アドレスの管理領域に論理アドレス情報と世代情報を格納してから、この物理アドレスにデータ情報の書き込みを行なう。この場合の論理アドレスに対する物理アドレスの割り当て世代は初代であるから前の世代の物理アドレスに対する初期化動作は必要ない。フラッシュメモリを用いたファイルメモリについては特許文献1に記載がある。
【０００３】
【特許文献１】特開２００４−１１８４０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者はフラッシュメモリを用いたファイルメモリにおいてデータの書き込み途上で動作電源が遮断されたときの不都合について検討した。即ち、書き込み途上で動作電源が遮断されると、その後のパワーオンの時、一つの論理アドレスに二つの物理アドレスが割り当てられる状態が存在することになる。この状態に対しては世代の古い方のメモリブロックを有効とすれば、書き込み途中で破壊されたデータが誤って利用されることはない。
【０００５】
しかしながら、未だ物理アドレスへの割り当てが行なわれていない論理アドレスに対する書き込みの場合には一世代古い対応する物理アドレスが存在しないため、書き込み途上で動作電源が遮断された後のパワーオンの時には書き込み途中で破壊されたデータが誤って利用される虞がある。これに対して、各物理アドレスの管理領域に書き込み完了フラグを設け、書き込み完了後に当該フラグをセット状態にする書き込みシーケンスを採用すれば、途中で電源遮断があっても、パワーオンの後にはそれによる異常を書き込み完了フラグを参照することによって認識可能になる。リセット状態の書き込み完了フラグを検出したとき、ファイルメモリはホスト装置にエラーコードを返すことによって異常をホスト装置に知らせる事ができる。しかしながら、エラーコードを返す場合にはそれを受け取る側のホスト装置との間でハードウェア及びソフトウェアの両面でインタフェース仕様が整合しなければならず、実効性が乏しい場合もあると考えられる。
【０００６】
また、それに関連して本発明者は次の問題点を見出した。消去単位がプログラム単位よりも大きい場合に、プログラム単位で書き込みを終わる度に、物理アドレスの割り当てを変更してデータコピーを行って次のプログラム単位のデータ書き込みを行うという書き込み手順を繰り返したのでは処理時間が長くなる。しかもデータコピー等による書き込み処理が多くなる分だけ途中で電源遮断される機会も多くなる。
【０００７】
本発明の目的は、不揮発性メモリの書き込み途上における電源遮断による異常を外部に知らせることが容易な半導体装置を提供することにある。
【０００８】
本発明の別の目的は、消去単位がプログラム単位よりも大きい不揮発性メモリに対する書き込み処理時間を短縮することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕半導体装置（１）は、不揮発性メモリ（２）と、外部からの指示に従って前記不揮発性メモリを制御するコントローラ（３）とを有する。前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域（ＢＬＫ）を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセル（７）を有する。前記コントローラは、外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていないとき、当該論理アドレスに対応する第１の物理アドレスの割り当てを行ない、第１の物理アドレスの初期化済み単位メモリ領域（図７のＢＬＫ０）に論理アドレス情報（ＬＡ０）とその世代情報（ＧＲ０）を格納する。この後、前記コントローラは、当該論理アドレスに対応する第２の物理アドレスの割り当てを行ない、第２の物理アドレスの初期化済み単位メモリ領域（図７のＢＬＫ１）に論理アドレス情報（ＬＡ０）と一世代更新したその世代情報（ＧＲ１）とデータ情報（ＤＡＴ０）を書き込む。
【００１２】
上記より、第1の場合として、第１の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報とその世代情報を格納するとき電源遮断を生じた場合には、その管理領域の情報（論理アドレス情報及び世代情報）は不定になるが、そのデータ情報は初期状態のままである。第２の場合として、第２の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報と一世代更新したその世代情報とを格納するとき電源遮断を生じた場合には、第２の物理アドレスの情報は全て不定になるが、第１の物理アドレスのデータ情報は初期状態を維持している。第３の場合として、第２の物理アドレスの初期化済み単位メモリ領域にデータ情報を書き込むとき電源遮断を生じた場合には、第２の物理アドレスのデータ情報は不定になってもその管理領域の情報は確定し、第１の物理アドレスにおけるデータ情報は初期状態を維持している。したがって、電源遮断後にパワーオンされると、第１の場合には論理アドレスと物理アドレスの対応を定義するアドレス変換テーブルの内容を実現する物理アドレスの管理領域の情報（論理アドレス情報及び世代情報）からそれを確認できる。よってこの場合には、当該物理アドレスは論理アドレスに割り当てられていない未割り当てブロックとして利用可能になる。第２の場合には論理アドレスと物理アドレスの対応を定義するアドレス変換テーブルにおいて前記論理アドレスに対応する物理アドレスは第１の物理アドレスと第２の物理アドレスとなるが、第２の物理アドレスの管理領域の情報（論理アドレス情報及び世代情報）からはそれを確認できないので、当該第２の物理アドレスは未割り当てブロックとして利用可能になる。第１の物理アドレスからは全部初期状態のデータを読み出すことができる。第３の場合には論理アドレスと物理アドレスの対応を定義するアドレス変換テーブルにおいて前記論理アドレスに対応する物理アドレスは第１の物理アドレスと第２の物理アドレスとなるが、その場合には世代の古い方の第１の物理アドレスから全部初期状態のデータを読み出すことができる。データの読出しにおいて、書き込み途中での電源遮断により異常のある論理アドレスに対する読出しを行なったとき、読出しデータが全て初期状態のデータであるときは、対応する物理アドレスのデータが正規データでないことを意味することになる。ホスト装置は、読出しコマンドによって返されるリードデータから其れを検出することができる。特別な認識ハードウェアやインタフェースプロトコルを必要としない。ホスト装置は、リードデータの全てが初期状態のデータであるときはその論理アドレスに対応する物理アドレスに異常の可能性があることを認識するソフトウェアを追加するだけで、対処することが可能になる。
【００１３】
本発明の具体的な一つの形態として、前記コントローラは、前記第２の物理アドレスの初期化済み単位メモリ領域（図８のＢＬＫ１）に論理アドレス情報（ＬＡ０）と一世代更新したその世代情報（ＧＲ１）とデータ情報（ＤＡＴ０）を書き込んだ後に、前記第１の物理アドレスの単位メモリ領域（図８のＢＬＫ０）を初期化する。書き込み途中で電源遮断したとき、書き込み対象とされていない領域が初期状態を維持することを容易に保証することができる。
【００１４】
本発明の具体的な他の一つの形態として、前記コントローラは、外部から与えられた論理アドレスに応ずる記憶情報を外部に出力するとき、論理アドレス情報が等しく世代情報が異なる複数の物理アドレスがある場合には古い世代情報を保有する物理アドレスのデータ情報を外部に出力する。同一論理アドレスに対して割り当てられる世代の異なる複数の物理アドレスが存在する場合に、何れを有効とするかを決める基本原則を提供する
本発明の具体的な他の一つの形態として、前記コントローラは、外部から与えられた論理アドレスに対応して第３の物理アドレスが割り当てられているとき、当該論理アドレスに対応する第４の物理アドレスの割り当てを行ない、第４の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、書き込んだ後に前記第３の物理アドレスの単位メモリ領域を初期化する。外部から与えられた論理アドレスに対応する物理アドレスが割り当てられているときの動作を規定するものであり、書き込み中の電源遮断に対する作用は、外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていない場合の制御手順と基本的に同じである。
【００１５】
本発明の具体的な他の一つの形態として、前記コントローラは、前記データ情報を書き込む不揮発性メモリセルには４値以上の多値情報のプログラムを行い、前記論理アドレス情報と世代情報（管理情報）を書き込む不揮発性メモリセルには２値情報のプログラムを行なう。データ情報の書き込み領域と前記管理情報の書き込み領域に対して並列にプログラムされる場合であっても、２値情報の方が早く書き上げることができるから、データ情報が不定で管理情報が確定するという不整合状態を生ずる可能が高くなる。換言すれば、本発明手段によって救済される頻度が高くなる。
【００１６】
本発明の具体的な他の一つの形態として、単位メモリ領域（ＢＬＫ）は初期化単位であり、初期化単位は複数のプログラム単位（ＳＣＴ）を有する。
【００１７】
この場合に、前記コントローラは、第１の書き込みコマンド（拡張書き込みコマンド）に応答するときは、外部から指定された一つの論理アドレスに対するデータ情報をプログラム単位で全て第２の物理アドレスの単位メモリ領域に書き込む処理（ブロックプログラム）を完了するのを待って、前記第１の単位メモリ領域を初期化する。また、前記コントローラは、第１の書き込みコマンドに応答するときは、外部から指定された一つの論理アドレスに対するデータ情報をプログラム単位で全て第４の物理アドレスの単位メモリ領域に書き込むのを待って、前記第３の単位メモリ領域を初期化する。プログラム単位毎に物理アドレスの割り当てを更新しながらデータコピーを繰り返す手間を省くことができる。
【００１８】
一方、プログラム単位毎に物理アドレスの割り当てを更新しながらデータコピーを繰り返す処理を行なう制御態様を使用することを妨げるものではない。即ち、前記コントローラは、第２の書き込みコマンド（書き込みコマンド）に応答するときは、外部から指定された一つの論理アドレスに対するデータ情報を一つのプログラム単位だけ第２の物理アドレスの単位メモリ領域に書き込むのを待って、前記第１の単位メモリ領域を初期化する。同様に、前記コントローラは、第２の書き込みコマンドに応答するときは、外部から指定された一つの論理アドレスに対するデータ情報を一つのプログラム単位だけ第４の物理アドレスの単位メモリ領域に書き込むのを待って、前記第３の単位メモリ領域を初期化する。
【００１９】
〔２〕書き込み途中の電源遮断による異常に対して不揮発性メモリの初期化データを出力するという点について別の観点による半導体装置は、不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する。前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有する。前記コントローラは、外部から指示された読出しコマンドに応答して、当該コマンドで指示された論理アドレスに対応する物理アドレスのデータ情報を外部に出力するとき、前記物理アドレスに対する情報の書き込み異常の痕跡に応答して、外部に出力するデータ情報の全てを不揮発性メモリセルの初期化状態のデータとする。
【００２０】
前記書き込み異常の痕跡は、前記単位メモリ領域のデータ領域に対するプログラムの完了によって所定の状態に変更されるフラグ（ＦＬＧ）が、所定に状態になっていないことである。
【００２１】
前記書き込み異常の痕跡は、同じ論理アドレスに世代の異なる複数の物理アドレスが割り当てられて残っていることである。
【００２２】
〔３〕最大限消去単位全体を書き上げるまで物理アドレスの割り当てを変更しない（ブロックプログラム）という点について別の観点による半導体装置は、不揮発性メモリと、外部からの指示に従って前記不揮発性メモリを制御するコントローラとを有する。前記不揮発性メモリは、物理アドレスが割り当てられた複数の単位メモリ領域を有し、前記単位メモリ領域は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセルを有する。前記単位メモリ領域は初期化単位とされ、初期化単位は複数のプログラム単位を有する。前記コントローラは、外部から供給される所定の書き込みコマンドに応答して、一つの初期化単位を上限として複数のプログラム単位のデータ領域に情報を格納するとき、外部から与えられた論理アドレスに対応する物理アドレスの割り当てを行ない、割り当てられた物理アドレスの初期化済み単位メモリ領域の一つのプログラム単位に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、当該単位メモリ領域の別のプログラム単位に残りのデータ情報を書き込み、全てのデータ情報の書き込みを完了してから、同一論理アドレスに関する一つ前の世代情報を有する単位メモリ領域を初期化する。
【００２３】
上記手段を２つの形態に分けて考えると、第１の形態に係る半導体装置においてコントローラは次の制御を行う。外部から供給される所定の書き込みコマンドに応答して、一つの初期化単位を上限として複数のプログラム単位のデータ領域に情報を格納するとき、外部から与えられた論理アドレスに対応する物理アドレスが割り当てられていないときは、当該論理アドレスに対応する第１の物理アドレスの割り当てを行なう。第１の物理アドレスの初期化済み単位メモリ領域に論理アドレス情報とその世代情報を格納した後、当該論理アドレスに対応する第２の物理アドレスの割り当てを行なう。第２の物理アドレスの初期化済み単位メモリ領域の一つのプログラム単位に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、当該単位メモリ領域の別のプログラム単位に残りのデータ情報を書き込み、全てのデータ情報の書き込みを完了してから、前記第１の物理アドレスの単位メモリ領域を初期化する。
【００２４】
第２の形態に係る半導体装置においてコントローラは次の制御を行う。外部から供給される所定の書き込みコマンドに応答して、一つの初期化単位を上限として複数のプログラム単位のデータ領域に情報を格納するとき、外部から与えられた論理アドレスに対応する第３の物理アドレスが割り当てられているときは、当該論理アドレスに対応する第４の物理アドレスの割り当てを行なう。第４の物理アドレスの初期化済み単位メモリ領域の一つのプログラム単位に論理アドレス情報と一世代更新したその世代情報とデータ情報を書き込み、当該単位メモリ領域の別のプログラム単位に残りのデータ情報を書き込む。全てのデータ情報の書き込みを完了してから、前記第３の物理アドレスの単位メモリ領域を初期化する。
【発明の効果】
【００２５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２６】
すなわち、不揮発性メモリの書き込み途上における電源遮断による異常を容易に外部に知らせることができる。
【００２７】
消去単位がプログラム単位よりも大きい不揮発性メモリに対する書き込み処理時間を短縮することができる。
【発明を実施するための最良の形態】
【００２８】
《ファイルメモリの全体的な構成》
図１にはファイル管理機能を備えたファイルメモリのブロック図が示される。ファイルメモリ１（ＦＭＲＲ）は、特に制限されないが、単結晶シリコンのような１個の半導体基板に相補型ＭＯＳなどの集積回路製造技術によって形成される。このファイルメモリ１（ＦＭＲＲ）は不揮発性メモリとしてフラッシュメモリ２、メモリコントローラ（ＣＯＮＴ）３、バッファＲＡＭ（ＢＲＡＭ）４、外部インタフェース（Ｉ／Ｆ）５を有する。外部インタフェース５にはホスト装置(ＨＯＳＴ)６が接続される。
【００２９】
前記フラッシュメモリ２はメモリアレイ（ＭＡＲＹ）８と書き込み読出し回路（ＷＲＣ）９を有する。メモリアレイ８は閾値電圧の初期化とプログラムにより情報を書き込み可能にされる複数の不揮発性メモリセル７を有する。不揮発性メモリセル７は、特に制限されないが電荷蓄積領域に絶縁膜を介してメモリゲートを重ねたスタックドゲート構造のメモリトランジスタによって構成される。例えばメモリセル７のドレインがビット線ＢＬに、ソースがソース線ＳＬに、メモリゲートがワード線ＷＬに接続される。メモリセル７のソース、ドレイン及びウェルに回路の接地電位を印加し、メモリゲートに負の高電圧を印加して電荷蓄積領域の電子を放出させる方向に移動させることで閾値電圧を低くすることができる。ここでは、メモリセル７の閾値電圧を低くすることを初期化（消去）と称する。また、メモリセル７のドレインからソースに電流を流し、ソース端の基板表面でホットエレクトロンを発生させ、これをメモリゲートの高電圧による電界で電荷蓄積領域に注入することで閾値電圧を高くすることができる。メモリセル７の閾値電圧を高くすることをプログラムと称する。記憶情報の読出しは、ビット線を予めプリチャージしておき、所定の読出し判定レベルをワード線選択レベルとしてメモリトランジスタを選択し、ビット線に流れる電流変化若しくはビット線に現れる電圧レベル変化によって記憶情報を判定する。特に図示はしないがメモリアレイ８には書き込みデータや読出しデータをラッチするセンスラッチ回路、及びメモリトランジスタを選択するためのアドレスデコーダやセレクタ等を有する。書き込み読出し回路（ＷＲＣ）９はプログラム及び消去のための高電圧発生回路を備えると共に、メモリセル７に対するプログラム、消去、読出しの各動作手順を制御するためのシーケンサを有する。
【００３０】
メモリコントローラ３はホスト装置６との間のインタフェース制御（ホストインタフェース機能）とフラッシュメモリ２及びＢＲＡＭ４に対するアクセス制御（アクセス制御機能）を行う。メモリコントローラ３のホストインタフェース機能は例えばハードディスク装置互換のＩＤＥ（Integrated Device Electronics）仕様に準拠する。ホスト装置６は論理アドレスを指定してデータの読出し又は書き込みを要求する。メモリコントローラ３は論理アドレスに対応するフラッシュメモリ２の物理アドレスを割り当て、その割り当ての管理とフラッシュメモリ２に割り当てた物理アドレスに対するファイルアクセスを指示する。ＢＲＡＭ４はフラッシュメモリ２から読み出されたデータ、又はフラッシュメモリ２に書き込むデータ等を一次的に保持する。
【００３１】
図２にはメモリアレイ８における不揮発性メモリセル７のアレイ構成が例示される。メモリアレイ８の記憶領域は、セクタＳＣＴ０〜ＳＣＴ３（代表してＳＣＴとも記す）の４セクタで１個のブロックＢＬＫを構成し、全体として複数ブロックＢＬＫを有する。一つのブロックＢＬＫが一つの論理アドレスに対応される。要するに論理アドレスに対応して割り当てられる物理アドレスはブロックＢＬＫ単位となる。１セクタ当たり例えば２キロバイト（ＫＢ）の記憶容量を有する。ブロックＢＬＫは消去単位（ＥＲＳ＿ＵＮＩＴ）とされ、消去対象とされる一つのブロックＢＬＫに含まれる全ての不揮発性メモリセルに前記消去のための高電圧パルスが一括して印加される。セクタＳＣＴはプログラム単位(ＰＧＭ＿ＵＮＩＴ)とされ、プログラム対象とされる一つのセクタＳＣＴの全ての不揮発性メモリセルにワード線を介してプログラム用の高電圧パルスが印加される。特に制限されないが、各セクタＳＣＴ０〜ＳＣＴ３はデータ領域ＤＦＬＤと管理領域ＣＦＬＤを有する。特に制限されないが、データ領域ＤＦＬＤにおいて１個の不揮発性メモリセル７は４値で情報を記憶する。記憶容量を増すためである。管理領域ＣＦＬＤにおいて１個の不揮発性メモリセル７は２値で情報を記憶する。信頼性を優先させるためである。
【００３２】
図３には４値による記憶情報とその閾値電圧分布が例示される。４値による記憶情報は、“１１”データ、“０１”データ、“００”データ、“１０”データとされる。“１１”データは消去（ＥＲＳ）によって得る。“０１”データ、“００”データ、“１０”データはプログラム（０１ＰＧＭ，００ＰＧＭ，１０ＰＧＭ）によって得る。記憶情報“１０”、“００”、“０１”に応じてメモリセルの閾値電圧が相違される。その相違は夫々のプログラム０１ＰＧＭ，００ＰＧＭ，１０ＰＧＭにおいて高電圧パルスの印加時間又は印加レベルを相違されることによって制御される。読出し動作では、 “１１”データ、“０１”データ、“００”データ、“１０”データを識別するためのワード線選択レベルを相違させる。２値による情報記憶は消去（ＥＲＳ）によって“１”データを記憶し、プログラム０１ＰＧＭによって“０”データを記憶する。“１１”データの閾値電圧分布と“０１”データの閾値電圧分布は相互に離れているので、４値記憶よりも２値記憶の方が情報記憶の信頼性が高い。
【００３３】
《ファイルアクセス制御機能》
メモリコントローラ３によるファイルアクセス制御機能を説明する。メモリコントローラ３は論理アドレスと物理アドレスの対応を図示を省略する論理・物理変換テーブル（論物変換テーブルとも記す）に形成する。論物変換テーブルはパワーオンでフラッシュメモリ２からＢＲＡＭ４にロードされ、パワーオフのときＢＲＡＭ４からフラッシュメモリ２にストアされる。メモリコントローラ３はホスト装置６からアクセス要求があると、論物変換テーブルを参照してその要求に係る論理アドレスに対応する物理アドレスを検索する。検索ヒットの場合には対応するブロックの先頭セクタから管理領域ＣＦＬＤの情報を読み出し、対応する論理アドレス情報ＬＡが含まれているかを判定する。対応する論理アドレス情報が含まれていればその物理アドレスのブロックＢＬＫを正規の割り当てブロックとして認識し、ホスト装置からの指示に応答する処理をフラッシュメモリ２に指示する。対応する論理アドレス情報が含まれていなければその物理アドレスのブロックＢＬＫを未割り当てブロックとして認識し、全体を消去し、論物変換テーブルからそのエントリを削除する。論物変換テーブルに対する検索ミスの場合には、論理アドレスに対応する物理アドレスを割り当てて、その変換エントリをテーブルに追加し、ホスト装置６からの指示に応答する処理をフラッシュメモリ２に指示する。データの書き込みを行なう場合には、対応する既存の物理アドレスに対して上書きを行なわず、未割り当ての別の物理アドレスに新たな割り当てを行ない、新たに割り当てた物理アドレスに既存物理アドレスのデータをコピーしてからそこに新たなデータの書き込みを行なう。このときには同一論理アドレスが異なる物理アドレスに割り当てられるので、そのような物理アドレスを世代管理によって識別可能にする。世代管理のために、管理領域ＣＦＬＤには世代情報ＧＲを記録する。世代情報は未割り当ての物理アドレスを初めて論理アドレスに割り当てたとき世代情報をＧＲ０（世代０）とし、同じ論理アドレスに対して別の物理アドレスを割り当てる毎に世代を＋１した世代情報を格納していく。データ領域ＤＦＬＤにはデータ情報ＤＡＴが格納される。同じ論理アドレスに対して割り当て世代の異なる物理アドレスが複数存在する場合には、最も古い世代の物理アドレスを用いる。
【００３４】
《物理アドレスのダミー割り当て》
特にメモリコントローラ３は、ホスト装置６から与えられた論理アドレスに対応する物理アドレスが割り当てられていないときは以下の処理を行なう。当該論理アドレスに対応する物理アドレスの割り当てを行ない、始めてその論理アドレスの割り当てを行なった物理アドレスの初期化済みブロックＢＬＫに論理アドレス情報とその世代情報を格納してダミーの割り当てを行なう。ダミーの割り当てに対してはデータ情報の書き込みを行なわず、メモリコントローラ３は、当該論理アドレスに対応する別の物理アドレスの割り当てを行ない、当該別の物理アドレスの初期化済みメモリブロックＢＬＫに論理アドレス情報と一世代更新したその世代情報を書き込んでからデータ情報の書き込みを行う。書き込み完了後にダミー割り当てを行なったメモリブロックを消去する。この動作を図４乃至図２２を用いて説明する。
【００３５】
図４に代表的に示されたブロックＢＬＫ０〜ＢＬＫ２は初期状態にされている。ホスト装置６から書き込みコマンドが与えられたとき、当該コマンドに付随する論理アドレスを検索キーとして論物変換テーブルが検索される。検索の結果、論物変換テーブルに当該論理アドレスに対応するエントリが存在していないことが判明した（検索ミス）とする。則ちその論理アドレスに対応する物理アドレスが割り当てられていない。このときは、例えばその論理アドレスをブロックＢＬＫ０の物理アドレスに割り当るために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は図５のようにブロックＢＬＫ０の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０と割り当て世代が最初の世代（世代０）であることを示す世代情報ＧＲ０を書き込む。このメモリブロックＢＬＫ０の割り当てはダミー割り当て（管理割り当て）とし、ブロックＢＬＫ０のデータ領域にはデータの書き込みを行なわない。次にメモリコントローラ３は同じ論理アドレスを更に別のブロックＢＬＫ１の物理アドレスに割り当てるために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は図６のようにブロックＢＬＫ１の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０と割り当て世代が第２世代（世代１）であることを示す世代情報ＧＲ１を書き込む。当該ブロックＢＬＫ１のデータ領域ＤＦＬＤにはセクタ０のデータ情報ＤＡＴ０を書き込み開始し、データ情報ＤＡＴ０が書き込み完了される（図７）。データ情報ＤＡＴ０の書き込み完了後に世代０のメモリブロックＢＬＫ０が消去される（図８）。
【００３６】
続けてセクタＳＣＴ１に対するデータ情報ＤＡＴ１の書き込みが指示されている場合には、メモリコントローラ３は同じ論理アドレスを更に別のブロックＢＬＫ２の物理アドレスに割り当てるために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は、図９のようにブロックＢＬＫ２の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０及び割り当て世代が第３世代（世代２）であることを示す世代情報ＧＲ２を書き込む。当該ブロックＢＬＫ２のセクタＳＣＴ０にはブロックＢＬＫ１が保有するセクタＳＣＴ０のデータ情報ＤＡＴ０をコピー開始し、そのデータコピーが完了される（図１０）。データコピーは、ソースブロック（ＢＬＫ１）からリードしたデータをＢＲＡＭ４に蓄え、そのデータを書き込みデータとしてディスティネーションブロック（ＢＬＫ２）に書き込む処理とされる。この後、当該ブロックＢＬＫ２のデータ領域ＤＦＬＤにはセクタＳＣＴ１のデータ情報ＤＡＴ１を書き込む（図１１）。データ情報ＤＡＴ１の書き込み完了後に世代１のメモリブロックＢＬＫ１が消去される（図１２）。
【００３７】
続けてセクタＳＣＴ２に対するデータ情報ＤＡＴ２の書き込みが指示されている場合には、メモリコントローラ３は同じ論理アドレスを更に別のブロックＢＬＫ０の物理アドレスに割り当てるために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は、図１３のようにブロックＢＬＫ０の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０及び割り当て世代が第４世代（世代３）であることを示す世代情報ＧＲ３を書き込む。当該ブロックＢＬＫ０のセクタＳＣＴ０にはブロックＢＬＫ２が保有するセクタＳＣＴ０のデータ情報ＤＡＴ０をコピー開始する（図１４）。同じく、当該ブロックＢＬＫ０のセクタＳＣＴ１にはブロックＢＬＫ２が保有するセクタＳＣＴ１のデータ情報ＤＡＴ１をコピーする（図１５）。この後、当該ブロックＢＬＫ０のデータ領域ＤＦＬＤにはセクタＳＣＴ２のデータ情報ＤＡＴ２を書き込む（図１６）。データ情報ＤＡＴ２の書き込み完了後に世代２のメモリブロックＢＬＫ２が消去される（図１７）。
【００３８】
続けてセクタＳＣＴ３に対するデータ３の書き込みが指示されている場合には、メモリコントローラ３は同じ論理アドレスを更に別のブロックＢＬＫ１の物理アドレスに割り当てるために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は、図１８のようにブロックＢＬＫ１の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０及び割り当て世代が第５世代（世代４）であることを示す世代情報ＧＲ４を書き込む。当該ブロックＢＬＫ１のセクタＳＣＴ０にはブロックＢＬＫ０が保有するセクタＳＣＴ０のデータ情報ＤＡＴ０をコピーする（図１９）。同じく、当該ブロックＢＬＫ１のセクタＳＣＴ１にはブロックＢＬＫ０が保有するセクタＳＣＴ１のデータ情報ＤＡＴ１をコピーし、当該ブロックＢＬＫ１のセクタＳＣＴ２にはブロックＢＬＫ０が保有するセクタＳＣＴ２のデータ情報ＤＡＴ２をコピーする（図２０）。この後、当該ブロックＢＬＫ１のデータ領域ＤＦＬＤにはセクタＳＣＴ３のデータ情報ＤＡＴ３を書き込む（図２１）。データ情報ＤＡＴ３の書き込み完了後に世代３のメモリブロックＢＬＫ０が消去される（図２２）。
【００３９】
特に図示はしないが、ホスト装置６から書き込みコマンドが与えられたとき、当該コマンドに付随する論理アドレスを検索キーとして論物変換テーブルを検索したとき、論物変換テーブルに当該論理アドレスに対応するエントリが存在していることが判明した（検索ヒット）時は、図４Ａ〜図４Ｅのダミー割り当て（管理割り当て）に係る処理は必要ない。例えばヒットしたメモリブロックＢＬＫ０の状態が図４Ｅであれば、図４Ｆから必要なところまで処理を行なえばよい。
【００４０】
図２３〜図３８には図４〜図２２に対する書き込みにおいて最初にダミー割り当て（管理割り当て）を行なわずに実行した時の処理手順を示す。出発点は図４と同じである。最初にダミー割り当て（管理割り当て）を行なわないから、最初に割り当てられたメモリブロックＢＬＫ０に対してセクタＳＣＴ０のデータ情報ＤＡＴ０の書き込みが行なわれ（図２３、図２４）、その書き込みが終わったら、次の初期化ブロックＢＬＫ１の割り当てが行なわれて書き込みが開始される（図２５）。図２６以降の処理は図１０以降の処理とブロックの割り当て状態が異なるだけで、基本的な処理は同じである。
【００４１】
物理アドレスのダミー割り当て（管理割り当て）を伴う書き込み処理の途中でファイルメモリ１の動作電源が遮断されたときの状態について説明する。その状態は５状態に大別することができる。第１の場合として、図５のようにダミー割り当て（管理割り当て）を行なったブロックＢＬＫ０に論理アドレス情報とその世代情報を格納するとき電源遮断を生じた場合には、その管理領域ＣＦＬＤの論理アドレス情報及び世代情報は不定になるが、そのデータ領域ＤＦＬＤは初期状態のままである。第２の場合として、図６のようにダミー割り当て（管理割り当て）の次の第２世代で割り当てられるブロックに論理アドレス情報と一世代更新した世代情報とを格納するとき電源遮断を生じた場合には、第２世代のブロックの情報は不定になるが、第１世代の割り当てブロックにおいて管理領域ＣＦＬＤは有意の管理情報を保持し、データ領域ＤＦＬＤは初期状態を維持している。第３の場合として、図６のようにダミー割り当て（管理割り当て）の次の第２世代で割り当てられるブロックＢＬＫ１のデータフィールドＤＦＬＤにデータ情報を格納しているとき電源遮断を生じた場合には、当該第２世代のブロックＢＬＫ１のデータフィールドＤＦＬＤのデータ情報は不定になってもその管理領域の情報は確定し、初代割り当てに係るブロックＢＬＫ０のデータ領域ＤＦＬＤは初期状態を維持している。第４の場合は、第３世代以降の割り当てブロックにおいて管理領域ＣＦＬＤのデータ情報ＤＡＴが不定になる場合である。第５の場合は、第３世代以降の割り当てブロックにおいてデータ領域ＤＦＬＤのデータ情報ＤＡＴが不定になる場合である。
【００４２】
第１の場合の電源遮断を生じた後にパワーオンされたとき、その電源遮断時に書き込みを行なっていた論理アドレスに対するアクセスが指示されても、論物変換テーブルの関係を対応する物理アドレスの管理領域の情報（論理アドレス情報及び世代情報）から確認することができない。よってこの場合には、その物理アドレスのブロックを初期化することにより、当該物理アドレスは論理アドレスに割り当てられていない未割り当てブロックとして利用可能になる。
【００４３】
第２の場合の電源遮断を生じた後にパワーオンされたとき、その電源遮断時に書き込みを行なっていた論理アドレスに対するアクセスが指示されると、論物変換テーブルにおいて前記論理アドレスに対応する物理アドレスは第1世代の物理アドレスと第２世代の物理アドレスとなる。こもとき、第２世代の物理アドレスの管理領域の情報（論理アドレス情報及び世代情報）からはそれを確認できないので、当該第２世代の物理アドレスは未割り当てブロックとして利用可能になる。第１世代の物理アドレスからは全部初期状態のデータを読み出すことができる。
【００４４】
第３の場合の電源遮断を生じた後にパワーオンされたとき、その電源遮断時に書き込みを行なっていた論理アドレスに対するアクセスが指示されると、論物変換テーブルにおいて前記論理アドレスに対応する物理アドレスは第1世代の物理アドレスと第２世代の物理アドレスとなる。その場合には世代の古い方の第１世代の物理アドレスから全部初期状態のデータを読み出すことができる。
【００４５】
第４の場合の電源遮断を生じた後にパワーオンされたとき、その電源遮断時に書き込みを行なっていた論理アドレスに対するアクセスが指示されると、論物変換テーブルにおいて前記論理アドレスに対応する物理アドレスは前後する２世代分の物理アドレスとなる。しかし、相対的に新しい世代の物理アドレスの管理領域の情報（論理アドレス情報及び世代情報）からはそれを確認できないので、当該新しい世代の物理アドレスは未割り当てブロックとして利用可能になる。相対的に古い世代の物理アドレスからは当該世代において正規のデータ状を読み出すことができる。
【００４６】
第５の場合の電源遮断を生じた後にパワーオンされたとき、その電源遮断時に書き込みを行なっていた論理アドレスに対するアクセスが指示されると、論物変換テーブルにおいて前記論理アドレスに対応する物理アドレスは前後する２世代分の物理アドレスとなる。しかし、その場合には世代の古い方の物理アドレスから当該世代において正規のデータ情報を読み出すことができる。
【００４７】
データの読出しにおいて、書き込み途中での電源遮断により異常のある論理アドレスに対する読出しを行なったとき、読出しデータが全て初期状態のデータであるときは、対応する物理アドレスのデータがどの世代においても正規データでないことを意味することになる。ホスト装置は、読出しコマンドによって返されるリードデータから其れを検出することができる。特別な認識ハードウェアやインタフェースプロトコルを必要としない。ホスト装置は、リードデータの全て初期状態のデータであるときはその論理アドレスに対応する物理アドレスに異常の可能性があることを認識するソフトウェアを追加するだけで、対処することが可能になる。
【００４８】
《ブロックプログラム》
メモリコントローラ３は、ホスト装置６から拡張書き込みコマンドが与えられたときはブロックプログラムによる書き込みを行なう。ブロックプログラムとは、セクタ毎に物理アドレスの割り当て世代を更新してきた上記処理を、最大限１ブロックの範囲でセクタを切り換えても物理アドレスの割り当て世代を更新しないようにデータの書き込みを行なう処理を意味する。図３９〜図４５に基づいてブロックプログラムによるデータ書き込み処理を説明する。
【００４９】
ブロックＢＬＫ０〜ＢＬＫ２の初期状態は図４の通りとする。ホスト装置６から拡張書き込みコマンドが与えられたとき、当該コマンドに付随する論理アドレスを検索キーとして論物変換テーブルが検索される。検索の結果が検索ミスであったとする。その論理アドレスに対応する物理アドレスが割り当てられていないので、例えばその論理アドレスをブロックＢＬＫ０の物理アドレスに割り当てるために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は図３９のようにブロックＢＬＫ０の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０と割り当て世代が第１世代（世代０）であることを示す世代情報ＧＲ０を書き込む。このメモリブロックＢＬＫ０の割り当てはダミー割り当てとし、ブロックＢＬＫ０のデータ領域にはデータの書き込みを行なわない。次にメモリコントローラ３は同じ論理アドレスを更に別のブロックＢＬＫ１の物理アドレスに割り当てるために、論物変換テーブルにその論理アドレスと物理アドレスとの対応を示すエントリを追加する。そして、その割り当てに従って、メモリコントローラ３は図４０のようにブロックＢＬＫ１の管理領域ＣＦＬＤに論理アドレス情報ＬＡ０と割り当て世代が第２世代（世代１）であることを示す世代情報ＧＲ１を書き込む。当該ブロックＢＬＫ１のデータ領域ＤＦＬＤにはセクタ０のデータ情報ＤＡＴ０を書き込み開始し、データ情報ＤＡＴ０が書き込み完了される（図４１）。次に、データ情報ＤＡＴ１の書き込みが指示されているときはメモリブロックＢＬＫ１のセクタＳＣＴ１にデータ情報ＤＡＴ１を書き込む（図４２）。続けてデータ情報ＤＡＴ２の書き込みが指示されているときは、メモリブロックＢＬＫ１のセクタＳＣＴ２にデータ情報ＤＡＴ２を書き込み（図４３）、データ情報ＤＡＴ３の書き込みが指示されているときはメモリブロックＢＬＫ１のセクタＳＣＴ３にデータ情報ＤＡＴ３を書き込む（図４４）。メモリブロックＢＬＫに対するデータ書き込みを完了した後に世代０のメモリブロックＢＬＫ０が消去される（図４５）。
【００５０】
上記よりデータの書き込み効率を向上させることができる。物理アドレスのダミー割り当てに対する効果は上記と同じである。
【００５１】
上記ブロックプログラムの手法は物理アドレスのダミー割り当て手法とは切り離して適用することができる。
【００５２】
《フラグを用いた初期化データ出力》
データの読出しにおいて、書き込み途中での電源遮断により異常のある論理アドレスに対する読出しを行なったとき、読出しデータを全て初期状態のデータとするのに替えて、フラグを用いる構成を説明する。これは、前記物理アドレスのダミー割り当て（管理割り当て）に代えて適用可能な構成である。
【００５３】
図４６にはフラグを用いるためのファイルメモリ１Ａの構成が例示される。基本的な構成は図1と同じである。メモリアレイ８ＡはセクタＳＣＴのデータ領域ＤＦＬＤにデータ情報ＤＡＴの他に1のメモリセルを用いたフラグＦＬＧを配置した点がメモリアレイ８と異なる。４値でデータ情報を格納する前記セクタＳＣＴに対して“１０”ＰＧＭのプログラム処理を完了することによってフラグＦＬＧは“１１”のローレベルから“１０”のハイレベルに変更される。“１０”ＰＧＭのプログラム処理が完了される前に動作電源が遮断されたときフラグＦＬＧは“１１”データのままになっている。セクタＳＣＴに対するプログラム処理を完了して始めてフラグＦＬＧはハイレベルとしての“１０”データに変化される。書き込み読出し回路９ＡはフラグＦＬＧのローレベルによって、データ情報ＤＡＴのデータ状態に拘わらず、“１１”データ（初期化データ）として出力する機能を備える。例えば、データ情報ＤＡＴのセンスラッチ１１の出力に対してビット毎にフラグＦＬＧのセンスラッチ１２の出力と論理和を採る回路１３を備える。回路１３は論理和ゲートであることを要しない。例えば、フラグＦＬＧの出力がローレベルのときにはデータ情報ＤＡＴのセンスラッチ１１の入力ノードをビット線側に接続し、フラグＦＬＧの出力がハイレベルのときにはデータ情報ＤＡＴのセンスラッチ１１の入力ノードをハイレベルに固定する回路構成などであってよい。メモリコントローラ３Ａは物理アドレスのダミー割り当て機能を備えることを要しない。
【００５４】
図４７〜図６２にはフラグ操作を伴うデータ書き込み処理が示される。出発点は図４と同じである。最初にダミー割り当て（管理割り当て）を行なわないから、最初に割り当てられたメモリブロックＢＬＫ０に対してセクタＳＣＴ０のデータ情報ＤＡＴ０の書き込みが行なわれ、最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図４７、図４８）。データ情報ＤＡＴ1の書き込みが指示されているときは、次の初期化ブロックＢＬＫ１の割り当てが行なわれて、そのセクタＳＣＴ０へのデータ情報ＤＡＴ０のコピーの最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図４９、図５０）。次にブロックＢＬＫ１のセクタＳＣＴ１にデータ情報ＤＡＴ１が書き込まれ、最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図５１）、前の世代のブロックＢＬＫ０が初期化される（図５２）。更にデータ情報ＤＡＴ２の書き込みが指示されているときは、続けて次の初期化ブロックＢＬＫ２の割り当てが行なわれ、ブロックＢＬＫ２のセクタＳＣＴ０にブロックＢＬＫ１のデータ情報ＤＡＴ０がコピーされ、このコピーの最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図５３、図５４）。更にブロックＢＬＫ２のセクタＳＣＴ１にブロックＢＬＫ１のデータ情報ＤＡＴ１がコピーされ、最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図５５）。続けて、ブロックＢＬＫ１のセクタＳＣＴ２にデータ情報ＤＡＴ２が書き込まれ、最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図５６）。前の世代のブロックＢＬＫ１が初期化される（図５７）。更にデータ情報ＤＡＴ３の書き込みが指示されているときは、続けて次の初期化ブロックＢＬＫ０の割り当てが行なわれ、ブロックＢＬＫ０のセクタＳＣＴ０にブロックＢＬＫ２のデータ情報ＤＡＴ０がコピーされ、このコピーの最後の“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれる（図５８、図５９）。更にブロックＢＬＫ０のセクタＳＣＴ１にブロックＢＬＫ２のデータ情報ＤＡＴ１がコピーされ、“１０”プログラムのときフラグＦＬＧにハイレベルのデータが書き込まれ、同様に当該ブロックＢＬＫ０のセクタＳＣＴ２にデータ情報ＤＡＴ２がコピーされ、ＦＬＧにハイレベルのデータが書き込まれる（図６０）。更にブロックＢＬＫ０のセクタＳＣＴ３にデータ情報ＤＡＴ３が書き込まれ、ＦＬＧにハイレベルのデータが書き込まれる（図６１）。前の世代のブロックＢＬＫ２が初期化される（図６２）。
【００５５】
上記書き込み処理において、書き込み対象のセクタのデータフィールドＤＦＬＤに対してする“１０”プログラムが完了する前に電源遮断があると、書き込み対象フラグＦＬＧは“１０”データにならない。このようなセクタを含むブロックＢＬＫは論理アドレスへの割り当てが行われていて、書き込み対象フラグＦＬＧが“１０”データになっていない。従ってこのような割り当て済み物理アドレスがリード対象にされたとき、“１０”データになっていないフラグＦＬＧの作用で当該セクタのリードデータは全ビット消去状態（初期化状態）とされ、図１の場合と同じように、ホスト装置６は当該論理アドレスに書き込み異常のあることを検出することができる。
【００５６】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５７】
例えば、不揮発性メモリセルはスタックゲート構造に限定されず、選択トランジスタ部とメモリトランジスタ部とを分離したスプリットゲート構造のメモリトランジスタを採用することができる。メモリセルのプログラムはホットエレクトロンによる電子の注入に限定されずトンネル酸化膜を介して基板側から電子を注入する形式などであってもよい。またメモリセルに対する初期化もＦＮトンネルに限定されず、基板側からのホットホールの注入で行なってもよい。また、セクタのデータフィールドは４値による情報記憶に限定されず８値記憶などであってもよい。管理領域も２値記憶に限定されず適宜変更可能である。データ領域と管理領域のデータ記憶形式を同じにすることも可能である。半導体装置は１チップに限定されず不揮発性メモリとコントローラをマルチチップで構成しても良い。不揮発性メモリはフラッシメモリに限定されず、ＥＥＰＲＯＭ、その他の記憶形式の不揮発性メモリにも広く適用することができる。
【図面の簡単な説明】
【００５８】
【図１】ファイル管理機能を備えたファイルメモリのブロック図である。
【図２】メモリアレイにおける不揮発性メモリセルのアレイ構成を例示する概念図である。
【図３】４値による記憶情報とその閾値電圧分布を例示する説明図である。
【図４】初期化された複数ブロックの状態を示すメモリアレイの状態図である。
【図５】物理アドレスのダミー割り当てを採用した書き込み動作の第１状態図である。
【図６】物理アドレスのダミー割り当てを採用した書き込み動作の第２状態図である。
【図７】物理アドレスのダミー割り当てを採用した書き込み動作の第３状態図である。
【図８】物理アドレスのダミー割り当てを採用した書き込み動作の第４状態図である。
【図９】物理アドレスのダミー割り当てを採用した書き込み動作の第５状態図である。
【図１０】物理アドレスのダミー割り当てを採用した書き込み動作の第６状態図である。
【図１１】物理アドレスのダミー割り当てを採用した書き込み動作の第７状態図である。
【図１２】物理アドレスのダミー割り当てを採用した書き込み動作の第８状態図である。
【図１３】物理アドレスのダミー割り当てを採用した書き込み動作の第９状態図である。
【図１４】物理アドレスのダミー割り当てを採用した書き込み動作の第１０状態図である。
【図１５】物理アドレスのダミー割り当てを採用した書き込み動作の第１１状態図である。
【図１６】物理アドレスのダミー割り当てを採用した書き込み動作の第１２状態図である。
【図１７】物理アドレスのダミー割り当てを採用した書き込み動作の第１３状態図である。
【図１８】物理アドレスのダミー割り当てを採用した書き込み動作の第１４状態図である。
【図１９】物理アドレスのダミー割り当てを採用した書き込み動作の第１５状態図である。
【図２０】物理アドレスのダミー割り当てを採用した書き込み動作の第１６状態図である。
【図２１】物理アドレスのダミー割り当てを採用した書き込み動作の第１７状態図である。
【図２２】物理アドレスのダミー割り当てを採用した書き込み動作の第１８状態図である。
【図２３】物理アドレスのダミー割り当てを採用しない書き込み動作の第１状態図である。
【図２４】物理アドレスのダミー割り当てを採用しない書き込み動作の第２状態図である。
【図２５】物理アドレスのダミー割り当てを採用しない書き込み動作の第３状態図である。
【図２６】物理アドレスのダミー割り当てを採用しない書き込み動作の第４状態図である。
【図２７】物理アドレスのダミー割り当てを採用しない書き込み動作の第５状態図である。
【図２８】物理アドレスのダミー割り当てを採用しない書き込み動作の第６状態図である。
【図２９】物理アドレスのダミー割り当てを採用しない書き込み動作の第７状態図である。
【図３０】物理アドレスのダミー割り当てを採用しない書き込み動作の第８状態図である。
【図３１】物理アドレスのダミー割り当てを採用しない書き込み動作の第９状態図である。
【図３２】物理アドレスのダミー割り当てを採用しない書き込み動作の第１０状態図である。
【図３３】物理アドレスのダミー割り当てを採用しない書き込み動作の第１１状態図である。
【図３４】物理アドレスのダミー割り当てを採用しない書き込み動作の第１２状態図である。
【図３５】物理アドレスのダミー割り当てを採用しない書き込み動作の第１３状態図である。
【図３６】物理アドレスのダミー割り当てを採用しない書き込み動作の第１４状態図である。
【図３７】物理アドレスのダミー割り当てを採用しない書き込み動作の第１５状態図である。
【図３８】物理アドレスのダミー割り当てを採用しない書き込み動作の第１６状態図である。
【図３９】ブロックプログラムによるデータ書き込み動作の第１状態図である。
【図４０】ブロックプログラムによるデータ書き込み動作の第２状態図である。
【図４１】ブロックプログラムによるデータ書き込み動作の第３状態図である。
【図４２】ブロックプログラムによるデータ書き込み動作の第４状態図である。
【図４３】ブロックプログラムによるデータ書き込み動作の第５状態図である。
【図４４】ブロックプログラムによるデータ書き込み動作の第６状態図である。
【図４５】ブロックプログラムによるデータ書き込み動作の第７状態図である。
【図４６】フラグを用いて初期化データを出力可能とするファイルメモリのブロック図である。
【図４７】フラグ操作を伴うデータ書き込み動作の第１状態図である。
【図４８】フラグ操作を伴うデータ書き込み動作の第２状態図である。
【図４９】フラグ操作を伴うデータ書き込み動作の第３状態図である。
【図５０】フラグ操作を伴うデータ書き込み動作の第４状態図である。
【図５１】フラグ操作を伴うデータ書き込み動作の第５状態図である。
【図５２】フラグ操作を伴うデータ書き込み動作の第６状態図である。
【図５３】フラグ操作を伴うデータ書き込み動作の第７状態図である。
【図５４】フラグ操作を伴うデータ書き込み動作の第８状態図である。
【図５５】フラグ操作を伴うデータ書き込み動作の第９状態図である。
【図５６】フラグ操作を伴うデータ書き込み動作の第１０状態図である。
【図５７】フラグ操作を伴うデータ書き込み動作の第１１状態図である。
【図５８】フラグ操作を伴うデータ書き込み動作の第１２状態図である。
【図５９】フラグ操作を伴うデータ書き込み動作の第１３状態図である。
【図６０】フラグ操作を伴うデータ書き込み動作の第１４状態図である。
【図６１】フラグ操作を伴うデータ書き込み動作の第１５状態図である。
【図６２】フラグ操作を伴うデータ書き込み動作の第１６状態図である。
【符号の説明】
【００５９】
１、１Ａ  ファイルメモリ
２、２Ａ  フラッシュメモリ
３、３Ａ  メモリコントローラ
６  ホスト装置
７  不揮発性メモリセル
８、８Ａ  メモリアレイ
９、９Ａ  書き込み読出し回路
ＢＬＫ  ブロック（初期化単位）
ＳＣＴ  セクタ（プログラム単位）
ＤＦＬＤ  データ領域
ＣＦＬＤ  管理領域
ＦＬＧ  フラグ
【図１】
2006323499.tif 000003
【図２】
2006323499.tif 000004
【図３】
2006323499.tif 000005
【図４】
2006323499.tif 000006
【図５】
2006323499.tif 000007
【図６】
2006323499.tif 000008
【図７】
2006323499.tif 000009
【図８】
2006323499.tif 000010
【図９】
2006323499.tif 000011
【図１０】
2006323499.tif 000012
【図１１】
2006323499.tif 000013
【図１２】
2006323499.tif 000014
【図１３】
2006323499.tif 000015
【図１４】
2006323499.tif 000016
【図１５】
2006323499.tif 000017
【図１６】
2006323499.tif 000018
【図１７】
2006323499.tif 000019
【図１８】
2006323499.tif 000020
【図１９】
2006323499.tif 000021
【図２０】
2006323499.tif 000022
【図２１】
2006323499.tif 000023
【図２２】
2006323499.tif 000024
【図２３】
2006323499.tif 000025
【図２４】
2006323499.tif 000026
【図２５】
2006323499.tif 000027
【図２６】
2006323499.tif 000028
【図２７】
2006323499.tif 000029
【図２８】
2006323499.tif 000030
【図２９】
2006323499.tif 000031
【図３０】
2006323499.tif 000032
【図３１】
2006323499.tif 000033
【図３２】
2006323499.tif 000034
【図３３】
2006323499.tif 000035
【図３４】
2006323499.tif 000036
【図３５】
2006323499.tif 000037
【図３６】
2006323499.tif 000038
【図３７】
2006323499.tif 000039
【図３８】
2006323499.tif 000040
【図３９】
2006323499.tif 000041
【図４０】
2006323499.tif 000042
【図４１】
2006323499.tif 000043
【図４２】
2006323499.tif 000044
【図４３】
2006323499.tif 000045
【図４４】
2006323499.tif 000046
【図４５】
2006323499.tif 000047
【図４６】
2006323499.tif 000048
【図４７】
2006323499.tif 000049
【図４８】
2006323499.tif 000050
【図４９】
2006323499.tif 000051
【図５０】
2006323499.tif 000052
【図５１】
2006323499.tif 000053
【図５２】
2006323499.tif 000054
【図５３】
2006323499.tif 000055
【図５４】
2006323499.tif 000056
【図５５】
2006323499.tif 000057
【図５６】
2006323499.tif 000058
【図５７】
2006323499.tif 000059
【図５８】
2006323499.tif 000060
【図５９】
2006323499.tif 000061
【図６０】
2006323499.tif 000062
【図６１】
2006323499.tif 000063
【図６２】
2006323499.tif 000064