(57)【要約】 【課題】書き込みを行うとともに長寿命化を図れる不揮発性半導体メモリ装置を提供することを目的とする。【解決手段】 書き込み及び消去可能な複数のブロックを有するメモリセルアレイ、複数のブロックがそれぞれ消去済みか否かを示す消去フラグを有する管理手段、複数のブロックのうち未使用ブロックを割り出し新たなデータを未使用ブロックに書き込む制御手段、書きかえられるべき旧データが記録されたブロックに対応する消去フラグを消去済みにセットする手段、消去フラグがセットされたブロックを選択的に消去する手段、旧データを有していたブロックの物理アドレスに対応付けられていた論理アドレスを新たなデータが書きこまれたブロックの物理アドレスに対応付ける手段とを有し、複数のブロックのそれぞれはメモリセルアレイが実現されている不揮発性半導体メモリチップよりも小さい単位としての消去単位である。【選択図】  図１
2006053950.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが選択的に書き込み及び消去可能な複数のブロックを有するメモリセルアレイと、
前記複数のブロックのそれぞれが消去済みか否かを示す消去フラグを有する管理手段と、
前記複数のブロックのうち未使用ブロックを割り出し、新たなデータを前記未使用ブロックに書き込む制御手段と、
書きかえられるべき旧データが記録されたブロックに対応する前記消去フラグを消去済みにセットする手段と、
前記消去フラグがセットされた前記ブロックを選択的に消去する手段と、
前記旧データを有していたブロックの物理アドレスに対応付けられていた論理アドレスを前記新たなデータが書きこまれたブロックの物理アドレスに対応付ける手段とを有し、
前記複数のブロックのそれぞれは前記メモリセルアレイが実現されている不揮発性半導体メモリチップよりも小さい単位としての消去単位であることを特徴とする不揮発性半導体メモリ装置。
【請求項２】
それぞれが選択的に書き込み及び消去可能な複数のブロックを有するメモリセルアレイを含む不揮発性半導体メモリ装置のデータ書き換え制御方法において、
前記複数のブロックのそれぞれは前記メモリセルアレイが実現されている不揮発性半導体メモリチップよりも小さい単位としての消去単位であり、
前記複数のブロックのうち、未使用ブロックを割り出すステップと、
書きかえられる旧データを有するブロックを消去せずに前記未使用ブロックに新たなデータを書き込むステップと、
前記旧データを有していたブロックの物理アドレスに対応付けられていた論理アドレスを前記新たなデータが書きこまれたブロックの物理アドレスに対応付けるステップと、
前記未使用ブロックに対する書き込みが終了したことをホストシステムに通知するステップと、
前記通知するステップの後に、前記旧データを記録していた前記ブロックを選択的に消去するステップ
とを含むことを特徴とする不揮発性半導体メモリ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書換可能な不揮発性半導体メモリ素子（ＥＥＰＲＯＭ）の中のＮＡＮＤ型ＥＥＰＲＯＭを用いた不揮発性半導体メモリ装置及びその制御方法に関する。
【背景技術】
【０００２】
一般にコンピュータシステムにおける書換可能な記憶装置（記憶素子）は、その容量に物理的な限界があるため、不要になった情報の上に新しい情報を重ね書きして使用される。書換可能な記憶装置（記憶素子）は、その重ね書きの方法で大別すると２通りに分けることが出来る。その一つは、ランダムアクセスメモリ（ＲＡＭ）やハードディスク、フロッピディスク或いは磁気テープのように、古い情報の上に新しい情報をそのまま上書き出来るものである。他の一つは、ある種の光記憶装置やＥＥＰＲＯＭのように重ね書きされる古い情報を一度消去してからでないと新しい情報が書き込めないものである。
【０００３】
ＮＡＮＤ型ＥＥＰＲＯＭの消去方法は２通りあり、その一つは、例えばインテル社製フラッシュＥＥＰＲＯＭのようにチップ全体の情報を一度に消去する方法である。他の一つは、チップの一部分の情報のみを選択的に消去する方法である。
【０００４】
ＮＡＮＤ型ＥＥＰＲＯＭでは、連続してデータを読み出したり、データを書き込んだりするための構造的に連続する複数の記憶セルをページという単位で呼んでいる。例えば、４ＭビットＥＥＰＲＯＭでは、１ページは、４０９６ビットの記憶セルで構成されている。また、構造的に連続する複数ページはブロックという単位で呼ばれる。例えば、４ＭビットＥＥＰＲＯＭでは、８ページ（４ｋバイト）分の記憶セルで１ブロックが構成されている。ＮＡＮＤ型ＥＥＰＲＯＭで、チップの一部分の情報のみを選択的に消去する場合の単位は、このブロックと一致している。
【０００５】
ＮＡＮＤ型ＥＥＰＲＯＭは、上記のようにデータの一部分のみを消去できるので、磁気ディスク装置におけるように、１セクタ分のデータのみを書き換えるといった操作が比較的容易におこなえる不揮発性記憶素子である。そこで、機械的強度に関する信頼性、低消費電力、読み出し時間の高速性といった半導体メモリの特徴を生かして、従来の磁気ディスク装置を置き換えるような用途に使われだした。
【０００６】
ところが、ＥＥＰＲＯＭは、データ読み出しのためのアクセス時間が高速である割に、データ書き込みには時間がかかる。例えば、４ＭビットＮＡＮＤ型ＥＥＰＲＯＭの場合、１ブロックのデータ読み出しに要する時間が約４９０μｓｏｃであるのに対し、１ブロックを消去して書き換えるには、消去に約１０ｍｓｅｃ、データ書き込みに約４ｍｓｅｃの時間を要する。
【０００７】
さらに、現状の技術ではデータの書換回数に制限があり、１０4 回ないし１０５回程度の書換で寿命となる。よって、同一のブロックに対してデータの重ね書きが集中するとチップ自体の寿命を縮めてしまうという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
以上のようにＮＡＮＤ型ＥＥＰＲＯＭを用いた従来の不揮発性半導体メモリ装置は、データの読み出し時間に比べて書き込みに時間がかかり、しかも、書換回数に制限があるため同一ブロックに重ね書きが集中すると寿命を縮めるという問題があった。
【０００９】
本発明は、このような問題を解決し、書き込みを高速に行うことができるとともに長寿命化を図ることのできる不揮発性半導体メモリ装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は上記課題を解決するために、本発明の第１の特徴は、（イ）それぞれが選択的に書き込み及び消去可能な複数のブロックを有するメモリセルアレイと、（ロ）複数のブロックがそれぞれ消去済みか否かを示す消去フラグを有する管理手段と、（ハ）複数のブロックのうち未使用ブロックを割り出し、新たなデータを未使用ブロックに書き込む制御手段と、（ニ）書きかえられるべき旧データが記録されたブロックに対応する消去フラグを消去済みにセットする手段と、（ホ）消去フラグがセットされたブロックを選択的に消去する手段と、（ヘ）旧データを有していたブロックの物理アドレスに対応付けられていた論理アドレスを新たなデータが書きこまれたブロックの物理アドレスに対応付ける手段とを有し、（ト）複数のブロックのそれぞれはメモリセルアレイが実現されている不揮発性半導体メモリチップよりも小さい単位としての消去単位であることを特徴とする不揮発性半導体メモリ装置であることを要旨とする。
【００１１】
また、本発明の第２の特徴は、それぞれが選択的に書き込み及び消去可能な複数のブロックを有する不揮発性半導体メモリ装置のデータ書き換え制御方法において、（イ）複数のブロックのそれぞれはメモリセルアレイが実現されている不揮発性半導体メモリチップよりも小さい単位としての消去単位であり、（ロ）複数のブロックのうち、未使用ブロックを割り出すステップと、（ハ）書きかえられる旧データを有するブロックを消去せずに未使用ブロックに新たなデータを書き込むステップと、（ニ）旧データを記録していたブロックを選択的に消去するステップと、（ホ）旧データを有していたブロックの物理アドレスに対応付けられていた論理アドレスを新たなデータが書きこまれたブロックの物理アドレスに対応付けるステップとを含むことを特徴とする不揮発性半導体メモリ装置の制御方法であることを要旨とする。
〔作用〕
【００１２】
本発明の第１の特徴によれば、新たなデータの書き込みは、可能な限り予め消去された未使用のブロック領域に対して行われる。これにより不揮発性半導体メモリ装置において本来書き込みに先だって行う必要があり且つアクセス時間の増大を余儀なくさせる消去動作が省略されて高速書き込みが可能になる。また、同一データを更新／変更する場合でも、物理的な書き込み位置は書き込みの都度変るため、特定のブロックに対する書き込み回数の増加が回避されて長寿命化を図ることが可能となる。
【００１３】
また、本発明の第２の特徴によれば、新たなデータの書き込みは、可能な限り予め消去された未使用のブロック領域に対して行われる。これにより不揮発性半導体メモリ装置において本来書き込みに先だって行う必要があり且つアクセス時間の増大を余儀なくさせる消去動作が省略されて高速書き込みが可能になる。また、同一データを更新／変更する場合でも、物理的な書き込み位置は書き込みの都度変るため、特定のブロックに対する書き込み回数の増加が回避されて長寿命化を図ることが可能となる。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、新たなデータの書き込みは、可能な限り予め消去された未使用のブロックに対して行うようにしたため、本来書き込みに先だって行う必要があり且つアクセス時間の増大を余儀なくさせる消去動作が省略されて書き込みを高速に行うことができる。また、同一データを更新／変更する場合でも、物理的な書き込み位置は書き込みの度ごとに変るため、特定のブロックに対する書き込み回数の増加が回避されて長寿命化を図ることができる不揮発性半導体メモリ装置及びその制御方法を提供できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施例を図面を参照して説明する。図１は、不揮発性半導体メモリ装置の全体構成を示すブロック図である。同図において１はメモリ手段としてのＮＡＮＤ型ＥＥＰＲＯＭモジュールであり、複数個のページからなるブロックに分割されたメモリセルアレイで構成されている。ＥＥＰＲＯＭモジュール１はデータ線で結ばれたホストインターフェイス２を介して図示省略のホストシステムに接続されている。データ線上には、マルチプレクサ９及びデータバッファ１０が設けられている。また、ホストインターフェイス２内には、データレジスタ３、アドレスレジスタ４、カウントレジスタ５、コマンドレジスタ６、ステータスレジスタ７及びエラーレジスタ８が設けられている。１１はコントロールロジック、１２はＥＣＣ（誤差修正コード）ジェネレータ／チェッカ、１３はアドレスジェネレータ、１４は消去手段及び制御手段としての機能を有するＣＰＵ、１５は作業用ＲＡＭ、１６は制御プログラムＲＯＭである。制御プログラムＲＯＭ１６には、データ書き込み等のための一連の制御プログラムが格納されるようになっている。
【００１６】
本実施例のメモリ装置は、不揮発性メモリ領域であるＥＥＰＲＯＭモジュール１に記録されるデータに関し、その位置を割付け、管理するために管理テーブルを使用する。このテーブルは、他のユーザデータとともにＥＥＰＲＯＭモジュール１に記録されるが、この装置が起動するときに自動的に作業用ＲＡＭ１５に読み込まれる。また、このテーブルは、ＥＥＰＲＯＭモジュール１への書き込みが行われる度にその内容が更新されるが、この更新されたテーブルは、その都度、或いは装置の使用が終了する時点でＥＥＰＲＯＭモジュール１に書き戻されることとする。
【００１７】
このテーブルの一つは、図３にその構成を示す未使用ブロックを管理するためのテーブル（管理テーブル）である。他の一つは、図４に示すホストシステムが指定してくるアドレスとメモリモジュール上の物理的なアドレスとの対照テーブルである。
【００１８】
まず図３の未使用ブロックを管理するためのテーブルの一例を説明する。テーブルの１番目２１０は、未使用のデータブロックを連鎖状に管理するためのもので、チェインの先頭のブロックへのポインタである。テーブルの２番目２１１は、同じ目的のポインタであるがチェインの最後尾へのポインタである。テーブルの３番目からｎ＋２番目は、ＮＡＮＤ型ＥＥＰＲＯＭモジュール１の物理的なブロックの１番目からｎ番目に対応している。これらの内容は、２１２に例示するように、さらに、次の未使用ブロックへのポインタ２１３と消去フラグ２１４とから構成されている。テーブルのｍ番目２１８の中のポインタのようにその内容が”−１”であった場合にはチェインの最後尾であることを示すものとする。よってこの例では、最後尾ポインタ２１１はテーブルのｍ番目２１８をポイントするため内容はｍにセットされる。消去フラグ２１４は、対応するブロックが消去済みであるか否かを示すもので、ここでは”０”の場合は消去済み、”１”の場合は未消去を表すものとする。
【００１９】
具体的な例を用いてデータが記録される際の動作の概要を述べる。いま、未使用ブロックの連鎖が図２（ａ）のようであると仮定する。データを記録するには、まず、先頭ポインタ１０１の内容を調べる。図２（ａ）では５３番目のテーブルをポイントしているから、書き込み可能なＮＡＮＤ型ＥＥＰＲＯＭモジュール１上の物理的なブロックアドレスはオフセット２を減じた５１となる。ブロック５１に書き込みを行なったら、先頭ポインタ１０１の値を、１０２のポイント先３３にセットしなおしてブロック５１に対応するテーブル１０２をこのチェインから外す。結果を図２（ｂ）に示す。
【００２０】
この書き込みに伴なって、既存のブロックのデータが不要になった場合には、さらに、図２（ｃ）に示すようにテーブルが更新されるような操作を行う。不要になったデータを記録していたのがブロック４５であったとすると、最後尾ポインタ１０５がポイントしているテーブルの１５１番目１０４の中のポインタと最後尾ポインタ１０５の値をブロック４５に対応するテーブル番号４７にセットしなおす。テーブルの４７番目１０７の中のポインタは”−１”に、消去フラグは”−１”に設定される。
【００２１】
未使用ブロックのチェインに加えられた直後のブロックは消去されていないので、読み出し／書き込みアクセスが途絶えたときにチェインを順次手繰りながら、消去を行い、そのブロックに対応するテーブルの消去フラグを”０”にセットする。
【００２２】
次いで、図４の対照テーブルを説明する。テーブルの長さｎは、ＮＡＮＤ型ＥＥＰＲＯＭモジュール１のブロック以下とする。例えば、以後簡単のためにここではＥＥＰＲＯＭモジュール１が４ＭビットＥＥＰＲＯＭ１個で構成されていると仮定すると、１ブロックの容量は４ｋバイトであるから、ブロックの総数は１２８個となり、対照テーブルの項目数ｎも１２８以下である。
【００２３】
この装置では、ＥＥＰＲＯＭモジュール１のブロックの容量に相当するデータ量を単位として、ＥＥＰＲＯＭモジュール１上の物理的位置の割り付けを行う。即ち、テーブルの１項目めは、ホストシステムから指定される最初の４ｋバイト分のデータが実際に記録される物理的位置を示している。図４の例では、２０３は、テーブルの３番目の項目であるから、ホストシステムから指定してくるアドレス（以後論理アドレスと記載）の８ｋバイト目からの４ｋバイトが、実際にはＥＥＰＲＯＭモジュール１の１０１番目のブロックに割り当てられていることを示している。また、２０１，２０２のように”−１”の書かれたテーブルは、その位置に対応する論理アドレスへの書き込みがまだ行われていないため、物理的な領域の割り付けが行われていないことを示す。
【００２４】
次に、この装置の動作を説明する。ホストシステムは、図１のホストインターフェイス２内のアドレスレジスタ４にアクセス開始アドレスを、カウントレジスタ５にアクセスしたいデータのセクタ長をセットし、最後にコマンドレジスタ６に読み出し／書き込み等の命令をセットする。ホストインターフェイス２のコマンドレジスタ６にアクセス命令が書き込まれると、コントローラ内のＣＰＵ１４は、コマンドレジスタ６内の命令を読み込み、制御プログラムＲＯＭ１６に納められたコマンド実行のための一連の制御プログラムを実行する。以下の説明では、簡単のためホストシステムの指定してくるセクタ長とＥＥＰＲＯＭモジュール１におけるページ長は一致しているものと仮定する。
【００２５】
図５は、ＥＥＰＲＯＭモジュール１からデータを読み出す手順を示すフローチャートである。まず、図１のＣＰＵ１４は、ホストインターフェイス２にセットされた開始アドレスと管理テーブル内のアドレス変換テーブルを参照して読み出しを行うべきＥＥＰＲＯＭモジュール１上の物理的なアドレスを決定する（ステップ３０１）。次に、ＥＥＰＲＯＭモジュール１からデータバッファ１０にデータを読み出す（ステップ３０２）。次いで、後に詳述するようなエラー処理及びデータバッファ１０からホストシステムへのデータ転送等を実行する（ステップ３０３〜３０５）。
【００２６】
図６は、ＥＥＰＲＯＭモジュール１からデータバッファ１０にデータを読み出す手順を示すフローチャートである。ＣＰＵ１４は、ＥＥＰＲＯＭモジュール１をマルチプレクサ９を通してアクセスし読み出しモードに設定し、データバッファ１０を読み出しモードに設定する（ステップ４０１，４０２）。アドレスジェネレータ１３には、読み出しを行うべきＥＥＰＲＯＭモジュール１の物理的なアドレスを設定する（ステップ４０３）。そして、データバッファ１０に、読み出したデータを蓄えるべき領域を決定してその先頭番地をデータバッファ１０への書き込みアドレスとして設定する（ステップ４０４）。その後、コントロールロジック１１に対してデータ読み出しのための定められたシーケンスを実行するように指令を送る。
【００２７】
コントロールロジック１１は、マルチプレクサ９をＥＥＰＲＯＭモジュール１からの読み出しデータがデータバッファ１０に流れるように設定し、アドレスジェネレータ１３の内容をインクリメントしながら、１セクタ分のデータを読み出す（ステップ４０５）。また、ＥＥＣジェネレータ／チェッカ１２をこれらのデータ及びこれに付随して読み出されるＥＣＣコードを使って誤りを検出するように制御する。１セクタ分のデータが読み出されると、ＣＰＵ１４は、ＥＣＣジェネレータ／チェッカ１２をチェックしデータの誤りを検査する（ステップ４０６）。誤りが検出されなかった場合、又は検出されても訂正が行えた場合は、データバッファ１０からホストシステムにデータを転送する。もし、訂正不可能な誤りが検出された場合には、ホストシステムに対するデータ転送は行わずに、ＣＰＵ１４は、ホストインターフェイス２内のステータスレジスタ７にエラーが起きたことを示すコードを、エラーレジスタ８にエラーの内容を示すコードを設定し、ホストシステムに命令の実行が異常終了したことを通知して処理を終了する（ステップ４０７〜４１０）。
【００２８】
図７は、データバッファからホストシステムにデータを転送する手順を示すフローチャートである。ＣＰＵ１４は、データバッファ１０に読み出したデータが蓄えられた領域の先頭番地を同バッファからの読み出しアドレスとして設定し（ステップ５０１，５０２）、コントロールロジック１１に対して、ホストシステムに１セクタ分のデータの転送を行うように指令する。コントロールロジック１１は、データバッファ１０とホストインターフェイス２を制御してホストシステムに対して１セクタ分のデータを転送し（ステップ５０３）、これが終了するとアドレスレジスタ４を１セクタ分進め、カウントレジスタ５から１を減じ、ＣＰＵ１４に転送が終了したことを通知する。ホストシステムに転送すべきデータが残っている限り、ＣＰＵ１４はこの制御を繰り返す。読み出しデータが全て転送されたら、ＣＰＵ１４は、ホストインターフェイス２内のステータスレジスタ７にエラーの無かったことを示すコードを設定し、ホストシステムに命令の実行が終了したことを通知して処理を終了する。
【００２９】
図８及び図９は、ＥＥＰＲＯＭモジュール１へデータを書き込む手順を示すフローチャートである。ＣＰＵ１４はホストインターフェイス２にセットされた開始アドレスと管理テーブル内のアドレス変換テーブルを参照して、ホストシステムが書き込みを行おうとしているアドレスに割り振られているＥＥＰＲＯＭモジュール１上のブロックを割り出す（ステップ６０１）。ホストシステムの指示するアドレスに対応するＥＥＰＲＯＭモジュール１上のブロックが既に割り振られていて、かつ、ホストシステムからの要求がそのブロックのデータの全てを書き換えるものでない場合は、ブロック内の書き換えられないデータをデータバッファ１０に読み込む（ステップ６０２〜６０４）。ＥＥＰＲＯＭモジュール１からデータバッファ１０にデータを読み出す手順は、先に図６のフローチャートを用いて説明した。ブロック内の重ね書きされない部分のデータが全てデータバッファ１０に読み込まれるまで図６の処理が繰り返される。次いで、後に詳述するようなホストシステムからデータバッファ１０への書き込みデータの転送、データバッファ１０からＥＥＰＲＯＭモジュール１へのデータの書き込み処理及びエラー処理等を実行する（ステップ６０５〜６１１）。
【００３０】
図１０は、ホストシステムからデータバッファ１０に書き込みデータを転送する手順を示している。ＣＰＵ１４は、データバッファ１０を書き込みモードに設定し（ステップ７０１）、ホストシステムから転送されてくるデータが蓄えられるデータバッファ１０上のアドレスを同バッファへの書き込みアドレスとして設定する（ステップ７０２）。その後、コントロールロジック１１に対して、ホストシステムから１セクタ分のデータの転送を行うように指令する。コントロールロジック１１は、データバッファ１０とホストインターフェイス２を制御してホストシステムから１セクタ分のデータを受け取り、これが終了するとＣＰＵ１４に転送が終了したことを通知する（ステップ７０３）。図１０の処理は、ホストシステムから転送すべきデータが残っていて、かつ、データバッファ１０にＥＥＰＲＯＭモジュール１の書き込みを行おうとしているブロックのためのデータが不足している限り続けられる。ホストシステムからの転送が終了したら、ＣＰＵ１４はホストインターフェイス２にセットされた開始アドレスと未使用ブロックを管理するテーブルを参照して、先に説明したように未使用ブロックのチェインを手繰って、データバッファ１０に蓄えられた１ブロック分のデータが書き込まれるべきＥＥＰＲＯＭモジュール１上の未使用ブロックを決定し、ＥＥＰＲＯＭモジュール１上に書き込みを行う。
【００３１】
図１１は、データバッファ１０内のデータ１ページ分をＥＥＰＲＯＭモジュールに書き込む手順を示したフローチャートである。ＣＰＵ１４は、ＥＥＰＲＯＭモジュール１とデータバッファ１０に必要ならば初期設定を施した後（ステップ８０１，８０２）、書き込みを行うページの先頭アドレスをアドレスジェネレータ１３に設定し（ステップ８０３）、データバッファ１０には、書き込まれるデータの先頭アドレスを同バッファの読み出しアドレスとして設定する（ステップ８０４）。そして、コントロールロジック１１に対してデータ書き込みのための定められたシーケンスを実行するように指令を送る。コントロールロジック１１は、マルチプレクサ９をデータバッファ１０からの書き込みデータがＥＥＰＲＯＭモジュール１に流れるように設定し、アドレスジェネレータ１３の内容をインクリメントしながらデータを書き込む（ステップ８０５）。また、ＥＣＣジェネレータ／チェッカ１２をこれらのデータからＥＣＣコードを生成するように制御し、データとともにこのコードも記録する（ステップ８０６）。図１１の処理は、書き込みエラーが発生するか、１ブロック分のデータを書き終えるかするまで続けられる（ステップ８０７）。データの書き込みが正常に行えなかった場合はエラー処理を行い、１ブロック分のデータが書き込まれるべきＥＥＰＲＯＭモジュール１上のブロックを割付けなおして、再度、書き込みを行なう。書き込みが正常に終了したら管理テーブルの内容を更新する。
【００３２】
ホストシステムの要求するデータを全て記録し終えるか、エラーからの回復が不可能で処理を中断した場合は、ＣＰＵ１４は、ホストインターフェイス２内のステータスレジスタ７に所定のコードを設定し、ホストシステムに命令の実行が終了したことを通知する。ホストインターフェイス２のコマンドレジスタ６にアクセス命令が書き込まれない適当なタイミングに、コントローラ内のＣＰＵ１４は、先に説明したように、未使用ブロック管理テーブルのチェインを手繰りながら未消去のブロックを順次消去してゆく。
【００３３】
なお、上記の実施例では、ＥＥＰＲＯＭモジュール１は、ホストインターフェイス２を介して、ホストシステムと並行して動作可能なコントローラにより制御される形態を取っているが、ホストシステムのＣＰＵにより直接制御される形態を取ってもよい。その他、本発明はその主旨を逸脱しない範囲で種々変形して用いることができる。
【図面の簡単な説明】
【００３４】
【図１】本発明に係る不揮発性半導体メモリ装置の実施例を示すブロック図である。
【図２】本実施例において未使用ブロックを管理するテーブルの操作を説明するための図（その１）である。
【図３】本実施例における未使用ブロックを管理するテーブルの操作を説明するための図（その２）である。
【図４】本実施例におけるアドレス変換用の対照テーブルの構成を示す図である。
【図５】本実施例においてＥＥＰＲＯＭモジュール１からデータの読み出し処理を説明するためのフローチャートである。
【図６】本実施例においてＥＥＰＲＯＭモジュール１からデータバッファ１０へのデータの読み出し処理を説明するためのフローチャートである。
【図７】本実施例においてデータバッファ１０からホストシステムへの読み出しデータの転送処理を説明するためのフローチャートである。
【図８】本実施例においてＥＥＰＲＯＭモジュール１へのデータの書き込み処理を説明するためのフローチャート（その１）である。
【図９】本実施例においてＥＥＰＲＯＭモジュール１へのデータの書き込み処理を説明するためのフローチャート（その２）である。
【図１０】本実施例においてホストシステムからデータバッファ１０への書き込みデータの転送処理を説明するためのフローチャートである。
【図１１】本実施例においてデータバッファ１０内のデータをＥＥＰＲＯＭモジュール１に書き込む処理を説明するためのフローチャートである。
【符号の説明】
【００３５】
１…ＥＥＰＲＯＭモジュール（メモリ手段）
２…ホストインターフェイス
３…データレジスタ
４…アドレスレジスタ
５…カウントレジスタ
６…コマンドレジスタ
７…ステータスレジスタ
８…エラーレジスタ
９…マルチプレクサ
１０…データバッファ
１１…コントロールロジック
１２…ＥＥＣジェネレータ／チェッカ
１３…アドレスジェネレータ
１４…未消去ブロックの消去処理、書き込み処理及びコピー処理等を実行するＣＰＵ
１５…作業用ＲＡＭ
１６…制御プログラムＲＯＭ
【図１】
2006053950.tif 000003
【図２】
2006053950.tif 000004
【図３】
2006053950.tif 000005
【図４】
2006053950.tif 000006
【図５】
2006053950.tif 000007
【図６】
2006053950.tif 000008
【図７】
2006053950.tif 000009
【図８】
2006053950.tif 000010
【図９】
2006053950.tif 000011
【図１０】
2006053950.tif 000012
【図１１】
2006053950.tif 000013