(57)【要約】【課題】誤書き込みや再書き込みによる書き込み回数の増大を防止してチップ寿命を向上させる。【解決手段】ホスト３に接続されてデータを記録する不揮発性半導体メモリ装置であって、複数個のページから構成されるブロック２に分割されたメモリセルアレイを備えたＮＡＮＤ型ＥＥＰＲＯＭ１と、ＮＡＮＤ型ＥＥＰＲＯＭ１に格納され、ホスト３が指定した論理ページに対応しデータの書き込みが行われるべき物理ブロックを特定するための情報と、ＮＡＮＤ型ＥＥＰＲＯＭ１に対し、ブロック２内の一番ソース側の物理ページから順次データを書き込むために使用されるポインタ２１とを備える管理テーブル２０とを備え、或いは又、ＮＡＮＤ型ＥＥＰＲＯＭ１には、ホスト３から与えられたデータとデータに対応するＥＣＣコードとが書き込まれることを特徴とする不揮発性半導体メモリ装置。【選択図】  図１
2004265594.tif 000002
【特許請求の範囲】
【請求項１】
ホストに接続されてデータを記録する不揮発性半導体メモリ装置であって、
複数個のページから構成されるブロックに分割されたメモリセルアレイを備えたＮＡＮＤ型ＥＥＰＲＯＭと、
前記ＮＡＮＤ型ＥＥＰＲＯＭに格納され、前記ホストが指定した論理ページに対応しデータの書き込みが行われるべき物理ブロックを特定するための情報と、前記ＮＡＮＤ型ＥＥＰＲＯＭに対し、前記ブロック内の一番ソース側の前記物理ページから順次データを書き込むために使用されるポインタとを備える管理テーブル
とを備えることを特徴とする不揮発性半導体メモリ装置。
【請求項２】
前記ＮＡＮＤ型ＥＥＰＲＯＭには、前記ホストから与えられたデータと該データに対応するＥＣＣコードとが書き込まれることを特徴とする請求項１記載の不揮発性半導体メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書き換え可能な不揮発性半導体メモリ素子（ＥＥＰＲＯＭ）のうちのＮＡＮＤ型ＥＥＰＲＯＭを用いた不揮発性半導体メモリ装置に関する。
【背景技術】
【０００２】
コンピュータの２次記憶装置には、現在磁気ディスク装置が広く用いられているが、近年、電気的に書き換え可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）が、その機械的強度に対する信頼性、低消費電力、可搬性の良さ、高速アクセスといった特徴を生かして、磁気ディスクを置き換えるような用途に使われだした。
【０００３】
しかし、磁気ディスク装置とＥＥＰＲＯＭには機能的な相違点があるため、従来の磁気ディスク装置をそのまま置き換えるためには、これを埋めるための制御が必要となる。
【０００４】
ＥＥＰＲＯＭの一つとして、高集積化が可能なＮＡＮＤ型ＥＥＰＲＯＭが知られている。これは、複数のメモリセルをそれらのソース、ドレインを隣接するもの同士で共有する形で直列接続して一単位とし、ビット線に接続するものである。メモリセルは通常、電荷蓄積層と制御ゲートが積層されたＦＥＴＭＯＳ構造を有する。メモリセルアレイは、ｐ型基板、又はｎ型基板に形成されたｐ型ウェル内に集積形成される。ＮＡＮＤセルのドレイン側は選択ゲートを介してビット線に接続され、ソース側はやはり選択ゲートを介して、ソース線（基準電位配線に接続される（図１２）。メモリセルの制御ゲートは、行方向に連続的に接続されてワード線となる。通常同一ワード線につながるメモリセルの集合を１ページと呼び、一組のドレイン側及びソース側の選択ゲートに挟まれたページの集合を１ＮＡＮＤブロック又は単に１ブロックと呼ぶ（図１３）。通常１ブロックは独立に消去可能な最小単位となる。
【０００５】
ＮＡＮＤ型ＥＥＰＲＯＭの動作は次の通りである。データの消去は１ＮＡＮＤブロック内のメモリセルに対して同時に行われる。即ち選択されたＮＡＮＤブロックの全ての制御ゲートを基準電位ＶＳＳとし、ｐ型ウェル及びｎ型基板に高電圧ＶＰＰ（例えば２０Ｖ）を印加する。これにより、全てのメモリセルにおいて浮遊ゲートから基板に電子が放出され、しきい値は負の方向にシフトする。通常この状態を”１”状態と定義する。またチップ消去は全ＮＡＮＤブロックを選択状態にすることによりなされる。
【０００６】
データの書き込み動作は、ビット線から最も離れた位置のメモリセルから順に行われる。ＮＡＮＤブロック内の選択された制御ゲートには高電圧ＶＰＰ（例えば２０Ｖ）を印加し、他の非選択ゲートには中間電位ＶＭ（例えば１０Ｖ）を与える。またビット線にはデータに応じて、ＶＳＳ又はＶＭを与える。ビット線にＶＳＳが与えられたとき（”０”書き込み）、その電位は選択メモリセルに伝達され、浮遊ゲートに電子注入が生ずる。これによりその選択メモリセルのしきい値は正方向にシフトする。通常この状態を”０”状態と定義する。ビット線にＶＭが与えられた（”１”書き込み）メモリセルには電子注入は起らず、従ってしきい値は変化せず負に留まる。データの読み出し動作はＮＡＮＤブロック内の選択されたメモリセルの制御ゲートをＶＳＳとして、それ以外の制御ゲート及び選択ゲートをＶＣＣとし選択メモリセルで電流が流れるか否かを検出することにより行われる。
【０００７】
ＮＡＮＤ型ＥＥＰＲＯＭではデータの書き込みはソース線に近いページからドレイン側のページに順に行なわれる必要がある。その必要性を図１４を参照して以下に説明する。”１”書き込みは中間電位ＶＭ（１０Ｖ程度）を選択メモリセルのドレインに転送し、電子の注入を起こさせず消去状態（即ち負のしきい値）を保つ。図１４は制御ゲート１が選択状態（ＶＰＰ）のときを示している。よって制御ゲート２は非選択でＶＭが与えられている。またドレインにもＶＭ（”１”書き込み）が与えられている。図１４（ａ）はソース側から書き込みを行なったときの図、図１４（ｂ）はドレイン側から書き込みを行なった場合のものである。図１４（ａ）の場合ドレイン側のセルＭａ２のしきい値は負であるので、ドレインの電位ＶＭは確実にソース側セルＭａ１に転送される。しかしながら、図１４（ｂ）の場合ドレイン側セルＭｂ２にすでに”０”書き込み動作がなされ、正のしきい値（たとえば３．５Ｖ）を持っていたとすると、ソース側セルＭｂ１に”１”を書き込む際、セルＭｂ１にはＶＭからセルＭｂ２のしきい値電圧分差し引いた電圧しか転送されてこない。よってセルＭｂ１では制御ゲートと基板間の電位差が大きくなって誤書き込みが起こる可能性がある。以上のようにソース側から順に書き込む手段は誤書き込みを防ぐ意味で重要である。
【０００８】
従来磁気ディスク装置では、データの読み出しや書き込みといったアクセスの単位はセクタであった。媒体の円周上に形成されるトラックは数十個のセクタに分割されていて、このセクタには、回転方向に従って順に番号（アドレス）が付いている。いま仮に１トラックに５０セクタあったとして、１回目のアクセスで第５セクタから４セクタ分のデータを書き込み、２回目のアクセスで第１セクタから４セクタ分のデータを書き込むといったアクセスは普通に行われる。一方、ＮＡＮＤ型ＥＥＰＲＯＭのアクセス単位はページである。４ＭビットＮＡＮＤ型ＥＥＰＲＯＭを例に取ると、１ページは５１２バイトで、１ブロックは８ページで構成されている。よって、磁気ディスク装置をＮＡＮＤ型ＥＥＰＲＯＭで置き換えるような応用において、ディスクの１セクタをＮＡＮＤ型ＥＥＰＲＯＭの１ページマッピングすると変換が容易である。しかしながら、磁気ディスクと同様に、１ブロック中のソース側から５番目のページから４ページを書き込んでから、１番目から４ページを書き込むといったアクセスを行うと先に述べたように、誤書き込みが起こる可能性がある。
【０００９】
これを避けるための一つの方法は、２回目のアクセスにおいて、最初に書いた第５ページから４ページ分を１度バッファに待避してからこのブロックを消去し、第１ページから８ページ分のデータを書き込むという手順を踏むことである。
【００１０】
しかし、この操作は、ＥＥＰＲＯＭの限られた書き換え回数を浪費することになる。また他の方法は、ＮＡＮＤ型ＥＥＰＲＯＭのアクセス単位を消去単位のブロックにしてしまうことである。この場合には、前述のようなブロックの一部のデータを書き換えるには、ブロック内の既に書き込まれたデータを一旦バッファに読み込み、書き換えるデータをバッファ上で重ね書きし、上記と同様に、このブロックを消去して、第１ページから８ページ分のデータを書き込むという手順を踏む。
【００１１】
以上のようにＮＡＮＤ型ＥＥＰＲＯＭでは、データのアクセスは磁気ディスクのセクタに相当するページを単位として行われるが、磁気ディスクのようにページ単位でランダムなデータ書き込みを行うと、ブロック内での書き込み順が規則からはずれて誤書き込みをする可能性がでるという問題があった。これを避けるために、バッファに先に書き込まれたデータを吸い上げてブロック消去を行った後に再書き込みをすることは、書き換え回数を増大させて、チップの寿命を縮めるという問題があった。また、アクセス単位をブロックすると、データの書き込みもブロック内の全てのページに対して１度に行われる。このとき、書き込まれるべきデータはバッファからＮＡＮＤ型ＥＥＰＲＯＭに転送されるが、バッファ内のデータは、全てが有効であるとは限らない。即ち、あるブロックに書き込みを行う場合で、その書き込みがそのブロックに対する初めての書き込みである場合、又はそのブロックに書き込んであるデータを無効にする場合、書き換えに先だってブロック内のデータを読み出す必要はない。よって、このとき一部のページにだけしか書き込むデータがなければ、残りのページに対するデータは無効である。通常、無効部分にデータはセットされないから、バッファが前に使われた時の”消し残した”データが残っていて、これがそのまま書き込まれる。従来の磁気ディスク装置では、データとして”１”を書き込む場合も”０”を書き込む場合も書き込みの時間に違いはなかった。しかし、ＮＡＮＤ型ＥＥＰＲＯＭの場合は、先に説明したように消去状態では、全てのデータは”１”であり、”０”のデータを書き込む場合だけ電子の注入が行われる。また、電子の注入にかかる時間は、ビットごとに一定していないので、”０”が正常に書き込まれたかどうかをベリファイしながら進められる。よって、もしページ内のデータが全て”１”であったなら、書き込みは瞬時にして終了する。さらに、電子の注入が起きないから酸化膜に対するストレスも軽減される。このように、ＮＡＮＤ型ＥＥＰＲＯＭの特性を考慮すると、無効なデータ部分は全て”１”に設定しておけば、これが１ページにわたった場合そのページの書き込みには無駄な時間をかけないで済むはずであるが、従来の入出力システムはこのような特性を持たない磁気ディスクのためのものであったから、この点に関する考慮がなされていなかった。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、上述のような問題に鑑みなされたもので、書き込み順の逆転による誤書き込みや再書き込みによる書き込み回数の増大を防止し、またメモリセルの絶縁膜に無駄なストレスを与えることを防止してチップの寿命を向上させ、さらに書き込みに要する時間を最小限に抑えることのできる不揮発性半導体メモリ装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の実施の形態の特徴は、（イ）ホストに接続されてデータを記録する不揮発性半導体メモリ装置であって、（ロ）複数個のページから構成されるブロックに分割されたメモリセルアレイを備えたＮＡＮＤ型ＥＥＰＲＯＭと、（ハ）ＮＡＮＤ型ＥＥＰＲＯＭに格納され、ホストが指定した論理ページに対応しデータの書き込みが行われるべき物理ブロックを特定するための情報と、ＮＡＮＤ型ＥＥＰＲＯＭに対し、ブロック内の一番ソース側の物理ページから順次データを書き込むために使用されるポインタとを備える管理テーブルとを備える不揮発性半導体メモリ装置であることを要旨とする。
【発明の効果】
【００１４】
第１に、メモリ手段へのデータの書き込みに際しては、ホストシステム等からのページへのアクセス順序によらず、書き込み順に関する規則、即ち常にブロック内のソース側等のページから書き込みが行われる。これによりドレイン側等のページが先に書き込まれたことに起因する誤書き込みや、ドレイン側等に書き込まれたデータを消してから再書き込みを行うことによる書き込み回数の増大でチップの寿命を縮めることが回避される。
【００１５】
第２に、ブロックへのデータの書き込みに際し、バッファ内の有効なデータが存在しない領域のデータが、全て消去状態のデータと同じになるように初期化される。これにより無効なデータのみで満たされたページの書き込みが最短時間で終了し、またメモリセルの絶縁膜に対して無駄なストレスを与えることがなくなってチップの寿命を縮めることが回避される。
【発明を実施するための最良の形態】
【００１６】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る不揮発性半導体メモリ装置の全体構成を示すブロック図である。同図において１はメモリ手段としてのＮＡＮＤ型ＥＥＰＲＯＭモジュールであり、複数個のページからなるブロックに分割されたメモリセルアレイで構成されている。ＥＥＰＲＯＭモジュール１はデータ線で結ばれたホストインターフェイス３を介して図示省略のホストシステムに接続されている。
【００１７】
データ線上には、マルチプレクサ１０及びデータバッファ１１が設けられている。また、ホストインターフェイス３内には、データレジスタ４、アドレスレジスタ５、カウントレジスタ６、コマンドレジスタ７、ステータレジスタ８及びエラーレジスタ９が設けられている。１２はコントロールロジック、１３はＥＣＣ（誤差修正コード）ジェネレータ／チェッカ、１４はアドレスジェネレータ、１５は制御手段としての機能を有するＣＰＵ、１６は後述のページ管理テーブル等が読み込まれる作業用ＲＡＭ、１７は制御プログラムＲＯＭである。制御プログラムＲＯＭ１７には、データ書き込み等のための一連の制御プログラムが格納されるようになっている。
【００１８】
本実施の形態のメモリ装置は、不揮発性メモリ領域であるＥＥＰＲＯＭモジュール１に記録されるデータに関し、そのブロック内でのページ位置を割付け、管理するためにページ管理テーブルを使用する。このテーブルは、他のユーザ・データとともにＥＥＰＲＯＭモジュール１に記録されるが、この装置が起動するときに自動的に作業用ＲＡＭ１６に読み込まれる。また、このテーブルはＥＥＰＲＯＭモジュール１への書き込みが行われる度にその内容が更新されるが、この更新されたテーブルは、その都度、或いは装置の使用が終了する時点でＥＥＰＲＯＭモジュール１に書き戻されることとする。
【００１９】
図２は、ブロック内のページアドレス（論理ページ）と物理的な位置（物理ページ）との対応を管理し、ＥＥＰＲＯＭモジュール１の書き込み順に関する規則に従って次に使用されるべきページの物理的な位置をポイントするための管理手段としてのページ管理テーブル２０の１例である。このページ管理テーブル２０は、図２（ａ）に示すようにｎ個の領域に分割されていて、各領域１８はＥＥＰＲＯＭモジュール１の各ブロックに対応している。ここでは簡単のため、メモリ装置を構成しているＮＡＮＤ型ＥＥＰＲＯＭが４ＭビットＥＥＰＲＯＭ１個であると仮定すると、ｎ即ちブロック数は１２８である。これらの領域１８は、さらに、同図（ｂ）に示すようにポイント手段となる１個のポインタ２１とページ数（＝８）のフラグ領域２２から構成されている。ポインタ２１はブロック内のページへの書き込みをソース側から順に行うためのものでまだ書き込みの行われていない最もソース側のページを示すものとし、もしこの値がブロック当たりのページ数を越えた場合（この例では９になった場合）には、ブロック消去をしないと書き込みが行えないことを示すものとする。論理ページのフラグ２２は、その論理ページがまだ書き込まれていない場合には”０”に設定され、書き込まれた場合には、実際に書き込まれた物理的な位置をソース側から何番目の物理ページであったかで示すものとする。
【００２０】
具体的な例を用いてデータが記録される際の動作の概要を述べる。あるブロックに、まだ何も書き込まれていなかったとすると、そのあるブロックに対応するページ管理テーブル２０の領域１８中のポインタ及びフラグの内容は、図３（ａ）のようになっている。このとき、このブロックの第５論理ページから３ページ分のデータを書き込むとする。まず、ポインタ２１の値が１であるから、第５論理ページの内容は、一番ソース側の物理ページに書き込まれ、第５論理ページのフラグ２２の値は１に更新され、ポインタ２１の値もソース側から２番目のページを示すためにインクリメントされる。この操作がさらに２ページ分繰り返されて、図３（ｂ）のように更新される。次に、同じブロックに第１論理ページから５ページ分の書き込みを行うとすると、ポインタ２１は４番目の物理ページを指しているから、ここから５ページ分の書き込みを行い、テーブルを図３（ｃ）のように更新する。この結果、ポインタ２１は９になるので、このブロックへの次回の書き込みは、書き換えられないデータをバッファに待避してからブロック消去を行って新たなデータとともに書き戻すといった処理が必要になる。例えば、図３（ｃ）の状態で、第１論理ページから２ページ分のデータを書き換えるとすると、書き換えられない第３論理ページから第７論理ページの内容をバッファに吸い上げてブロック消去を行い、ポインタ２１も１に初期化する。その後、バッファ内の７ページ分のデータをブロックに書き込む。この場合の更新されたテーブルの内容を図３（ｄ）に示す。また、ポインタの内容が９になっていなくても、書き込もうとするページ数が残りページ数より多い場合にも（例えば、図３（ｂ）の状態で第３論理ページから６ページ分の書き込み要求がきた場合）、同様の処理をする必要がある。データの読み出しに際しては、ブロック内のページアドレスと物理的な位置との対応をこのページ管理テーブル２０から求め必要なデータをアクセスする。
【００２１】
次に、この装置の動作をフローチャートを用いて説明する。ホストシステムは、図１のホストインターフェース３内のアドレスレジスタ５にアクセス開始アドレスを、カウントレジスタ６にアクセスしたいデータのセクタ長をセットし、最後にコマンドレジスタ７に読み出し／書き込み等の命令をセットする。ホストインターフェース３のコマンドレジスタ７にアクセス命令が書き込まれると、コントローラ内のＣＰＵ１５は、コマンドレジスタ７内の命令を読み込み、制御プログラムＲＯＭ１７に納められたコマンド実行のための一連の制御プログラムを実行する。以下の説明では、簡単のためホストシステムの指定してくるセクタ長とＥＥＰＲＯＭモジュール１におけるページ長は一致しているものと仮定する。
【００２２】
図４は、ＥＥＰＲＯＭモジュール１からデータを読み出す手順を示すフローチャートである。まず、図１のＣＰＵ１５は、ホストインターフェース３にセットされた開始アドレスとページ管理テーブル２０内のアドレス変換テーブルを参照して読み出しを行うべきＥＥＰＲＯＭモジュール１の物理的なアドレスを決定する（ステップ１０１）。次に、ＥＥＰＲＯＭモジュール１からデータバッファ１１にデータを読み出す（ステップ１０２）。次いで、後に詳述するようなエラー処理及びデータバッファ１１からホストシステムへのデータ転送等を実行する（ステップ１０３〜１０５）。
【００２３】
図５は、ＥＥＰＲＯＭモジュールからデータバッファにデータを読み出す手順を示すフローチャートである。ＣＰＵ１５は、ＥＥＰＲＯＭモジュール１をマルチプレクサ１０を通してアクセスし読み出しモードに設定し、データバッファ１１を読み出しモードに設定する（ステップ２０１，２０２）。アドレスジェネレータ１４には、読み出しを行うべきＥＥＰＲＯＭモジュール１の物理的なアドレスを設定する（ステップ２０３）。そして、データバッファ１１に、読み出したデータを蓄えるべき領域を決定してその先頭番地をデータバッファ１０への書き込みアドレスとして設定する（ステップ２０４）。その後、コントロールロジック１２に対してデータ読み出しのための定められたシーケンスを実行するように指令を送る。
【００２４】
コントロールロジック１２は、マルチプレクサ１０をＥＥＰＲＯＭモジュール１からの読み出しデータがデータバッファ１１に流れるように設定し、アドレスジェネレータ１４の内容をインクリメントしながら、１セクタ分のデータを読み出す（ステップ２０５）。また、ＥＣＣジェネレータ／チェッカ１３をこれらのデータ及びこれに付随して読み出されるＥＣＣコードを使って誤りを検出するように制御する。１セクタ分のデータが読み出されると、ＣＰＵ１５は、ＥＣＣジェネレータ／チェッカ１３をチェックしデータの誤りを検査する（ステップ２０６）。誤りが検出されなかった場合、又は検出されても訂正が行えた場合は、データバッファ１１からホストシステムにデータを転送する。もし、訂正不可能な誤りが検出された場合には、ホストシステムに対するデータ転送は行わずに、ＣＰＵ１５は、ホストインターフェース３内のステータスレジスタ８にエラーが起きたことを示すコードを、エラーレジスタ９にエラーの内容を示すコードを設定し、ホストシステムに命令の実行が異常終了したことを通知して処理を終了する（ステップ２０７〜２１０）。
【００２５】
図６は、データバッファからホストシステムにデータを転送する手順を示すフローチャートである。ＣＰＵ１５は、データバッファ１１に読み出したデータが蓄えられた領域の先頭番地を同バッファからの読み出しアドレスとして設定し（ステップ３０１，３０２）、コントロールロジック１２に対して、ホストシステムに１セクタ分のデータの転送を行うように指令する。コントロールロジック１２は、データバッファ１１とホストインターフェース３を制御してホストシステムに対して１セクタ分のデータを転送し（ステップ３０３）、これが終了するとアドレスレジスタ５を１セクタ分進め、カウントレジスタ６から１を減じ、ＣＰＵ１５に転送が終了したことを通知する。ホストシステムに転送すべきデータが残っている限り、ＣＰＵ１５はこの制御を繰り返す。読み出しデータが全て転送されたら、ＣＰＵ１５は、ホストインターフェース３内のステータスレジスタ８にエラーの無かったことを示すコードを設定し、ホストシステムに命令の実行が終了したことを通知して処理を終了する。
【００２６】
図７及び図８は、ＥＥＰＲＯＭモジュール１へデータを書き込む手順を示すフローチャートである。ＣＰＵ１５はホストインターフェース３にセットされた開始アドレスから、ホストシステムが書き込みを行おうとしているＥＥＰＲＯＭモジュール１上のブロックを割り出す（ステップ４０１）。ホストシステムの指示するＥＥＰＲＯＭモジュール１のブロック中の未使用ページ数が、書き込まれるページ数より少なく、かつ、ホストシステムからの要求がこのブロックのデータの全てを書き換えるものでない場合は、ブロック内の書き換えられないデータをデータバッファに読み込む（ステップ４０２〜４０４）。ＥＥＰＲＯＭからデータバッファ１１にデータを読み出す手順は、先に図５のフローチャートを用いて説明した。ブロック内の重ね書きされない部分のデータが全てバッファに読み込まれるまで、図５の処理が繰り返される。ブロック中の未使用ページ数が、書き込まれるページ数以上の場合以外は、この後にブロック消去を行う（ステップ４０５）。次いで、後に詳述するようなホストシステムからデータバッファ１１への書き込みデータの転送、データバッファ１１からＥＥＰＲＯＭモジュール１へのデータの書き込み処理及びエラー処理等を実行し、さらにページ管理テーブル中のポインタを初期化する（ステップ４０６〜４１１）。
【００２７】
図９は、ホストシステムからデータバッファに書き込みデータを転送する手順を示している。ＣＰＵ１５は、データバッファ１１を書き込みモードに設定し（ステップ５０１）、ホストシステムから転送されてくるデータが蓄えられるデータバッファ１１上のアドレスを同バッファへの書き込みアドレスとして設定する（ステップ５０２）。その後、コントロールロジック１２に対して、ホストシステムから１セクタ分のデータの転送を行うように指令する。コントロールロジック１２は、データバッファ１１とホストインターフェース３を制御してホストシステムから１セクタ分のデータを受け取り、これが終了するとＣＰＵ１５に転送が終了したことを通知する（ステップ５０３）。図９の処理は、ホストシステムから転送すべきデータが残っていて、かつ、データバッファ１１にＥＥＰＲＯＭモジュール１の書き込みを行おうとしているブロックのためのデータが不足している限り続けられる。ホストシステムからの転送が終了したら、ＣＰＵ１５はホストインターフェース３にセットされた開始アドレスに対応するブロックのページ管理テーブルのポインタを参照して、先に説明したように、データバッファ１１に蓄えられた１ページ分のデータが書き込まれるべきＥＥＰＲＯＭモジュール１上の該当ブロックのページ位置を決定し、書き込みを行う。
【００２８】
図１０は、データバッファ内のデータ１ページ分をＥＥＰＲＯＭモジュールに書き込む手順を示したフローチャートである。ＣＰＵ１５は、ＥＥＰＲＯＭモジュール１とデータバッファ１１に必要ならば初期設定を施した後（ステップ６０１，６０２）、書き込みを行うページの先頭アドレスをアドレスジェネレータ１４に設定し（ステップ６０３）、データバッファ１１には、書き込まれるデータの先頭アドレスを同バッファの読み出しアドレスとして設定する（ステップ６０４）。そして、コントロールロジック１２に対してデータ書き込みのための定められたシーケンスを実行するように指令を送る。コントロールロジック１２は、マルチプレクサ１０をデータバッファ１１からの書き込みデータがＥＥＰＲＯＭモジュール１に流れるように設定し、アドレスジェネレータ１４の内容をインクリメントしながらデータを書き込む（ステップ６０５）。また、ＥＣＣジェネレータ／チェッカ１３をこれらのデータからＥＣＣコードを生成するように制御し、データとともにこのコードも記録する（ステップ６０６）。図１０の処理は、書き込みエラーが発生するか、該当ブロックに書き込むべき、データを書き終えるかするまで、ページ管理テーブルのポインタをインクリメントしながら続けられる。データの書き込みが正常に行えなかった場合は必要なエラー処理を行い、再度、書き込みを行う（ステップ６０７，６０８）。書き込みが正常に終了したらページ管理テーブルの内容を更新する。ホストシステムの要求するデータを全て記録し終えるか、エラーからの回復が不可能で処理を中断した場合は、ＣＰＵ１５は、ホストインターフェース３内のステータスレジスタ８に所定のコードを設定し、ホストシステムに命令の実行が終了したことを通知する。
【００２９】
なお、本実施の形態では、ＥＥＰＲＯＭモジュールは、ホストインターフェースを介して、ホストシステムと並行して動作可能なコントローラにより制御される形態を取っているが、ホストシステムのＣＰＵにより直接制御される形態を取ってもよい。
【００３０】
（第２の実施の形態）
図１１は、本発明の第２実施の形態に係る不揮発性半導体メモリ装置を示すブロック図である。ＣＰＵ１５は、インターフェース２５をとおしてＥＥＰＲＯＭモジュール１をアクセスする。また、アクセスに際しては、ＲＡＭ２６の一部に設けられたバッファ３０を使用するようになっている。いま、ＥＥＰＲＯＭモジュール１が、４ＭビットＮＡＮＤ型ＥＥＰＲＯＭで構成されているとすると、１ブロックは４ｋバイトであるからバッファ３０の大きさ、即ち入出力の単位は４ｋバイトである。バッファ３０中の３１〜３８に相当する部分は、ＮＡＮＤ型ＥＥＰＲＯＭのブロック中のページに相当する部分であるが、この装置では独立したデータとしては扱われない。
【００３１】
まず、ＥＥＰＲＯＭモジュール１内のあるブロック２のデータの一部を書き換える場合を考える。ブロック２の書き換えられない部分のデータは残さなければならないので予め読み出す必要があるが、この装置ではアクセス単位が１ブロックであるから、ブロック２のデータ全てがバッファ３０に転送される。次にバッファ３０上でデータの書き換えが行われ、同時にＥＥＰＲＯＭモジュール１のブロック２は消去される。そして、バッファ３０の内容が、ソース側のページから順に１ブロック分書き込まれる。
【００３２】
次に、ブロック２の内容は無効にして、３ページ分のデータだけを書き込む場合を考える。この場合ブロック２のデータは破棄するので予め読み出す必要はない。ブロック２は即消去される。いま仮に、３ページ分のデータがページ３１〜３３の位置に書き込まれるものであるとすると、ＣＰＵ１５はまずこの部分にデータを設定する。この時点では、バッファ３０内の３４〜３８には、このアクセスの前にＥＥＰＲＯＭモジュールにアクセスを行った時のデータがそのまま残っている。よって、このままバッファ３０のデータをブロック２に書き込むと、本来意味の無いデータの入ったページ３４〜３８の内容がベリファイまでされてそのまま書き込まれるため無駄な時間を浪費する。そこで、ＣＰＵ１５は、ブロック２への書き込みに先だって、バッファ３０内の３４〜３８にはＥＥＰＲＯＭモジュールの消去時のデータである”１”をセットする。このように、本実施の形態では、データの書き込みに際し、バッファ３０内の有効なデータが存在しない領域のデータが全て消去状態のデータと同じになるように初期化されるので、書き込みが最短時間で終了し、かつ、ＮＡＮＤ型ＥＥＰＲＯＭの酸化膜に対して無駄なストレスを与えることが回避される。
【００３３】
なお、本実施の形態では、ＥＥＰＲＯＭモジュール１はインターフェース２５を介してバス２７上のＣＰＵ１５により直接制御される形態を取っているが、インターフェース２５とＥＥＰＲＯＭモジュール１の間に介在しＣＰＵ１５と並行して動作可能なコントローラにより制御される形態を取ってもよい。その他、本実施の形態はその主旨を逸脱しない範囲で種々変形して用いることができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の第１実施の形態に係る不揮発性半導体メモリ装置を示すブロック図である。
【図２】第１の実施の形態におけるページ管理テーブルの構成を示す図である。
【図３】上記ページ管理テーブルの操作を説明するための図である。
【図４】第１実施の形態においてＥＥＰＲＯＭモジュールからデータの読み出し処理を説明するためのフローチャートである。
【図５】第１実施の形態においてＥＥＰＲＯＭモジュールからデータバッファへのデータの読み出し処理を説明するためのフローチャートである。
【図６】第１実施の形態においてデータバッファからホストシステムへの読み出しデータの転送処理を説明するためのフローチャートである。
【図７】第１実施の形態においてＥＥＰＲＯＭモジュールへのデータの書き込み処理を説明するためのフローチャートである。
【図８】第１実施の形態においてＥＥＰＲＯＭモジュールへのデータの書き込み処理を説明するためのフローチャートである。
【図９】第１実施の形態においてホストシステムからデータバッファへの書き込みデータの転送処理を説明するためのフローチャートである。
【図１０】第１実施の形態においてデータバッファ内のデータをＥＥＰＲＯＭモジュールに書き込む処理を説明するためのフローチャートである。
【図１１】本発明の第２実施の形態に係る不揮発性半導体メモリ装置を示すブロック図である。
【図１２】ＥＥＰＲＯＭの一つのＮＡＮＤセルを示す等価回路図である。
【図１３】ＥＥＰＲＯＭのメモリセルアレイを示す等価回路図である。
【図１４】ＮＡＮＤ型ＥＥＰＲＯＭの書き込み動作を説明するための図である。
【符号の説明】
【００３５】
１…ＥＥＰＲＯＭモジュール（メモリ手段）
２…ブロック
３・・・ホストインタフェース
４・・・データレジスタ
５・・・アドレスレジスタ
６・・・カウントレジスタ
７・・・コマンドレジスタ
８・・・ステータスレジスタ
９・・・エラーレジスタ
１０・・・マルチプレクサ
１１・・・データバッファ
１２・・・コントロールロジック
１３・・・ＥＣＣジェネレータ／チェッカ
１４・・・アドレスジェネレータ
１５・・・ＣＰＵ（制御手段）
１６・・・作業用ＲＡＭ
１７・・・制御プログラムＲＯＭ
１８・・・領域（ブロック）
２０…管理手段となるページ管理テーブル
２１…ポイント手段ポインタ（ポイント手段）
２２・・・フラグ（領域）
２５・・・インタフェース
２６・・・ＲＡＭ
２７・・・バス
３０…バッファ
３１，３２，３３，３４，３５，３６，３７，３８・・・ページ
１０１〜１０５，２０１〜２１０，３０１〜３０３，４０１〜４１１，５０１〜５０３，６０１〜６０８・・・ステップ
【図１】
2004265594.tif 000003
【図２】
2004265594.tif 000004
【図３】
2004265594.tif 000005
【図４】
2004265594.tif 000006
【図５】
2004265594.tif 000007
【図６】
2004265594.tif 000008
【図７】
2004265594.tif 000009
【図８】
2004265594.tif 000010
【図９】
2004265594.tif 000011
【図１０】
2004265594.tif 000012
【図１１】
2004265594.tif 000013
【図１２】
2004265594.tif 000014
【図１３】
2004265594.tif 000015
【図１４】
2004265594.tif 000016