(57)【特許請求の範囲】
【請求項１】
メモリセルを有する複数のページとこれ等ページにプログラムするプログラムデータを一時保持するページバッファとを備えている不揮発性半導体メモリを制御するメモリコントローラであって、
システムから供給される前記ページバッファのサイズより小さい第１プログラムデータを保持するデータバッファと、
前記メモリセルにプログラムされないマスクデータを前記第１プログラムデータに付加して、前記ページバッファのサイズに等しい第２プログラムデータを生成し、生成した前記第２プログラムデータを前記ページバッファに出力するデータ付加回路と、
プログラムされる前記ページにおける前記第１プログラムデータのプログラム先を示すアドレス信号を前記システムから受信するアドレス受信回路と、
プログラムされる前記ページ内における前記第１プログラムデータがプログラムされる記憶領域を示すフラグ信号を、前記アドレス信号に応じて生成するフラグ生成回路とを備え、
前記フラグ信号は、前記不揮発性半導体メモリの前記各ページに対応するスペアエリアにプログラムされることを特徴とするメモリコントローラ。
【請求項２】
不揮発性半導体メモリおよびメモリコントローラが搭載されているメモリシステム装置であって、
前記不揮発性半導体メモリは、メモリセルを有する複数のページとこれ等ページにプログラムするプログラムデータを一時保持するページバッファとを備え、
前記メモリコントローラは、
システムから供給される前記ページバッファのサイズより小さい第１プログラムデータを保持するデータバッファと、
前記メモリセルにプログラムされないマスクデータを前記第１プログラムデータに付加して、前記ページバッファのサイズに等しい第２プログラムデータを生成し、生成した前記第２プログラムデータを前記ページバッファに出力するデータ付加回路と、
プログラムされる前記ページにおける前記第１プログラムデータのプログラム先を示すアドレス信号を前記システムから受信するアドレス受信回路と、
プログラムされる前記ページ内における前記第１プログラムデータがプログラムされる記憶領域を示すフラグ信号を、前記アドレス信号に応じて生成するフラグ生成回路とを備え、
前記不揮発性半導体メモリは、前記ページにそれぞれ対応するスペアエリアを備え、
前記フラグ信号は、前記スペアエリアにプログラムされることを特徴とするメモリシステム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムからの命令に基づいて不揮発性半導体メモリをアクセスするメモリコントローラに関する。また、本発明は、不揮発性半導体メモリおよびメモリコントローラを搭載するメモリシステム装置に関する。
【０００２】
【従来の技術】
メモリコントローラは、システムから供給されるコマンド、アドレス等を不揮発性半導体メモリに対応する信号に変換し、システムに代わって不揮発性半導体メモリをアクセスする。例えば、NAND型フラッシュメモリ（以下、単にフラッシュメモリとも称する）を制御するメモリコントローラは、データの書き込み動作時（プログラム時）に、システムからの命令に基づいて、書き込みコマンド、アドレス、およびプログラムデータ等を、フラッシュメモリのデータ端子に順次出力する。
【０００３】
NAND型フラッシュメモリは、例えば、メモリカードに搭載され、ファイル格納用として使用される。メモリカードには、フラッシュメモリを制御するメモリコントローラが搭載される。メモリコントローラは、メモリカードに搭載されるフラッシュメモリの総記憶容量に合わせて、フラッシュメモリに出力するアドレスのビット数等を決める。すなわち、メモリカードの互換性は、メモリコントローラにより維持される。
【０００４】
NAND型フラッシュメモリの書き込み動作および読み出し動作は、ページ単位で実行される。１ページのサイズは、フラッシュメモリの記憶容量に依存せず５１２バイトである。このため、メモリコントローラは、システムから受信したプログラムデータを５１２バイト単位でフラッシュメモリに出力する。フラッシュメモリへの１回の書き込み動作（５１２バイトの書き込み）は、約２００μｓを必要とする。例えば、６４Ｍビットのフラッシュメモリでは、全メモリセルにデータを書き込むために、数秒が必要である。
【０００５】
【発明が解決しようとする課題】
上述したように、ページサイズは、フラッシュメモリの記憶容量に依存せず一定であるため、ページの数は、記憶容量が大きいほど多くなる。したがって、データの書き込み回数および書き込み時間は、記憶容量の増加とともに増加する傾向にある。書き込み回数を減らし、書き込み時間を短縮するために、今後ページサイズは大きくなると考えられる。
ページサイズの大きいフラッシュメモリが開発され、メモリカードに搭載される場合、このメモリカードは、既存のシステムで使用できなくてはならない。具体的には、ページサイズの大きいメモリカードの入出力インタフェースを、既存のメモリカードの入出力インタフェースに合わせ、互換性を保つ必要がある。このためには、新たなメモリコントローラを開発する必要がある。しかしながら、ページサイズの大きいフラッシュメモリを搭載するメモリカードを、既存のシステムで使用するためのメモリコントローラは、提案されていない。
【０００６】
本発明の目的は、フラッシュメモリのページサイズが大きくなった場合にも、既存のシステムで使用できるメモリコントローラおよびメモリシステム装置を提供することにある。
【０００７】
【課題を解決するための手段】
本発明のメモリコントローラおよびメモリシステム装置では、メモリコントローラは、メモリセルを有する複数のページとページバッファとを有する不揮発性半導体メモリを制御する。ページバッファは、ページにプログラムされるプログラムデータを一時保持する。メモリコントローラのデータバッファは、ページバッファのサイズより小さい第１プログラムデータをシステムから受信し、受信したデータを保持する。
メモリコントローラのデータ付加回路は、第１プログラムデータにマスクデータを付加して、ページバッファのサイズに等しい第２プログラムデータを生成する。第２プログラムデータは、ページバッファに出力される。マスクデータは、不揮発性半導体メモリのメモリセルにプログラムされないデータである。このため、不揮発性半導体メモリのページには、システムから供給された第１プログラムデータのみがプログラムされる。すなわち、システムから出力されるプログラムデータが、ページバッファのサイズより小さい場合にも、プログラムデータを不揮発性半導体メモリに正しくプログラムできる。換言すれば、不揮発性半導体メモリのページバッファのサイズが大きくなった場合にも、本発明のメモリコントローラを使用することで、既存のシステムに対する互換性を維持できる。
【０００８】
メモリコントローラのデータ付加回路は、第１プログラムデータにマスクデータを付加して、ページバッファのサイズに等しい第２プログラムデータを生成する。第２プログラムデータは、ページバッファに出力される。マスクデータは、不揮発性半導体メモリのメモリセルにプログラムされないデータである。このため、不揮発性半導体メモリのページには、システムから供給された第１プログラムデータのみがプログラムされる。すなわち、システムから出力されるプログラムデータが、ページバッファのサイズより小さい場合にも、プログラムデータを不揮発性半導体メモリに正しくプログラムできる。換言すれば、不揮発性半導体メモリのページバッファのサイズが大きくなった場合にも、本発明のメモリコントローラを使用することで、既存のシステムに対する互換性を維持できる。
【０００９】
例えば、メモリコントローラのアドレス受信回路は、ページバッファにおける第１プログラムデータの格納先を示すアドレス信号をシステムから受信する。メモリコントローラのデータ付加回路は、アドレス信号に応じて、第１プログラムデータの前および後の少なくともいずれかにマスクデータを付加する。すなわち、システムからのアドレス信号を利用することで、データ付加回路を簡易な論理で構成できる。例えば、アドレス信号がページバッファの先頭を示すとき、第１プログラムデータは、ページバッファの先頭から格納され、マスクデータは、第１プログラムの後に格納される。
【００１０】
さらに、メモリコントローラのアドレス受信回路は、プログラムされるページにおける第１プログラムデータのプログラム先を示すアドレス信号をシステムから受信する。メモリコントローラのフラグ生成回路は、プログラムされるページ内において、第１プログラムデータがプログラムされる記憶領域を示すフラグ信号を、アドレス信号に応じて生成する。フラグ信号は、不揮発性半導体メモリの各ページに対応するスペアエリアにプログラムされる。このため、システムは、各ページ内において第１プログラムデータがプログラムされた記憶領域とプログラムされていない記憶領域とを認識できる。すなわち、不揮発性半導体メモリのページバッファのサイズが大きくなった場合にも、システムは、不揮発性半導体メモリのプログラムの状況を容易に管理できる。
【００１１】
【発明の実施の形態】
以下、本発明の実施形態を図面を用いて説明する。図中、太線で示した信号線は、複数本で構成されている。また、太線が接続されているブロックの一部は、複数の回路で構成されている。
図１は、本発明のメモリコントローラおよびメモリシステム装置の一実施形態を示している。
メモリコントローラ１０は、例えば、NAND型フラッシュメモリ１２とともにメモリカード１４に搭載されている。メモリカード１４は、パーソナルコンピュータ、デジタルカメラ等のシステム１６に着脱自在に接続され、メモリシステム装置として動作する。
【００１２】
システム１６は、既存のメモリカードのスロット（図示せず）を有する。フラッシュメモリ１２は、例えば８ビットのデータ端子I/O、コマンド端子FCMD、およびレディ/ビジー端子R/Bを有している。コマンド端子FCMDには、コマンドラッチイネーブル信号、アドレスラッチイネーブル信号、ライトイネーブル信号等が供給される。フラッシュメモリ１２は、後述するように２ｋバイトの記憶容量（従来の４倍）のページを複数有している。
【００１３】
メモリコントローラ１０は、データバッファ１８、アドレス変換回路２０、コマンド制御回路２２、フラグ生成回路２４、スイッチ制御回路２６、第１スイッチ回路２８、および第２スイッチ回路３０を有している。アドレス変換回路２０は、システム１６からアドレス信号ADDを受信するアドレス受信回路としても動作する。スイッチ制御回路２６および第１スイッチ回路２８は、データ付加回路として動作する。
【００１４】
メモリコントローラ１０の各回路は、システム１６から供給されるクロックCLKに同期して動作する。メモリコントローラ１０は、図示した以外にも、フラッシュメモリ１２の読み出し動作に関係する制御回路およびフラッシュメモリ１２から出力されるレディ/ビジー信号R/Bの制御回路等を有している。
データバッファ１８は、システム１６から例えば３２ビットのデータ信号DTを受信し、受信したデータ信号DTを保持する。また、データバッファ１８は、保持しているデータ信号DTを同期信号SYNに同期してデータ信号DT2として出力する。データ信号DT2は、８ビット単位で出力される。データ信号DT、DT2は、システム１６から供給される第１プログラムデータである。
【００１５】
アドレス変換回路２０は、システム１６から最初のプログラムデータのアドレスを示すアドレス信号ADDを受信する。アドレス変換回路２０は、受信した信号ADDを８ビットのデータに対応するアドレス信号ADD8に変換し、変換した信号ADD8を第２スイッチ回路３０に出力する。アドレス信号ADD8は、例えば、アドレス信号ADDの下位に２ビットを付加して生成される。
【００１６】
コマンド制御回路２２は、システム１６からコマンド信号CMDを受信して、受信したコマンド信号CMDをフラッシュメモリ１２が認識可能なコマンドに変換し、コマンド信号FCMDとして出力する。また、コマンド制御回路２２は、コマンド信号CMDに応じて、フラッシュメモリ１２のデータ端子I/Oを介して供給するコマンド信号IOCMDを生成し、生成した信号IOCMDを第２スイッチ回路３０に出力する。例えば、書き込み動作時に、１６進数の"80"および"10"がコマンド信号IOCMDとして順次生成される。
【００１７】
フラグ生成回路２４は、アドレス変換回路２０からのアドレス信号ADD8に応じてフラグ信号FLGを生成する。フラグ信号FLGの詳細は、後述する。
スイッチ制御回路２６は、アドレス変換回路２０からのアドレス信号ADD8を受信し、同期信号SYNおよび切替信号SW1を生成する。また、スイッチ制御回路２６は、コマンド制御回路２２からのコマンド信号IOCMDを受信し、切替信号SW2を生成する。
【００１８】
第１スイッチ回路２８は、切替信号SW1に応じて電源電圧VCC（マスクデータ）、データ信号DT2、およびフラグ信号FLGのいずれかを選択し、選択した信号をデータ信号DT3（第２プログラムデータ）として出力する。
第２スイッチ回路３０は、切替信号SW2に応じてデータ信号DT3、アドレス信号ADD8、およびコマンド信号IOCMDのいずれかを選択し、選択した信号をデータ信号I/Oとして出力する。
【００１９】
図２は、図１に示したフラッシュメモリ１２の概要を示している。フラッシュメモリ１２は、メモリセルアレイALYおよびメモリセルアレイALYにプログラムされるデータを一時保持するページバッファPBUF（データレジスタとも称する）を有している。
メモリセルアレイALYは、メモリセルを有する複数のページPAGと、これ等ページPAGにそれぞれ対応する複数のスペアエリアSPAとを有している。複数のページPAGおよびそれに対応する複数のスペアエリアSPAにより、複数のブロックBLKが形成されている。
【００２０】
各ページPAGは、２ｋバイトの記憶容量を有している。ここでは、以降の説明を分かりやすくするため、各ページPAGを５１２バイト毎の４つの記憶領域M1、M2、M3、M4に分けている。なお、ページサイズは、２ｋバイトに限られたものではなく、例えば、１ｋバイトでも４ｋバイトでもよい。
各スペアエリアSPAは、１６バイトの記憶容量を有している。各スペアエリアSPAのうち４ビットには、フラグ領域FLAが割り当てられている。フラグ領域FLAには、記憶領域M1-M4に対応するフラグFが割り当てられている。各フラグFは、対応する記憶領域M1-M4に有効なデータが書き込まれているときに"0"を示し、対応する記憶領域M1-M4に有効なデータが書き込まれていないときに"1"を示す。
【００２１】
ページバッファPBUFは、ページPAGに対応する２ｋバイトの主領域MAと、スペアエリアSPAに対応する１６バイトの副領域SAを有している。ページバッファPBUFの主領域MAの容量は、従来の４倍である。メモリコントローラ１０が出力するプログラムデータ（第２プログラムデータ）は、ページバッファPBUFに一旦書き込まれた後、アドレスに応じたページPAGおよびスペアエリアSPAに書き込まれる。
【００２２】
図３は、メモリコントローラ１０の制御により、フラッシュメモリ１２の所定のページPAGにデータが順次プログラムされる様子を示している。初期状態（ａ）において、フラッシュメモリ１２には、データがプログラムされておらず、ページPAGの記憶領域M1-M4には全て"1"データが記憶されている（ALL"1"）。フラグ領域FLAのフラグFにも全て"1"データが記憶されている。
【００２３】
図１に示したシステム１６は、既存のシステムである。このため、装着されたメモリカード内のフラッシュメモリのページサイズを全て５１２バイトと認識して、このメモリカードをアクセスする。すなわち、システム１６は、プログラムデータを５１２バイト単位でメモリカード１４に順次出力する。
まず、図１に示したコマンド制御回路２２は、システム１６からのコマンド信号CMDを解読し、コマンド信号FCMD、IOCMDを出力する。スイッチ制御回路２６は、コマンド信号IOCMDに同期して切替信号SW2を変化させる。第２スイッチ回路３０は、切替信号SW2に応じてスイッチを切り替え、コマンド信号IOCMD（ページプログラムコマンド"80"）をフラッシュメモリ１２のデータ端子I/Oに伝達する。
【００２４】
データバッファ１８は、システム１６から５１２バイトのデータを３２ビットずつ順次受信する。アドレス変換回路２０は、システム１６からアドレス信号ADDを受信し、プログラムするデータの開始アドレスを示すアドレス信号ADD8を出力する。この例では、図３（ｂ）に示すように、アドレス信号ADD8は、メモリ領域M1の先頭を示す。
【００２５】
次に、スイッチ制御回路２６は、切替信号SW1、SW2を変化させ、第１および２スイッチ回路２８、３０のスイッチを切り替える。また、スイッチ制御回路２６は、データバッファ１８にデータ出力用の同期信号SYNを出力する。データバッファ１８は、同期信号SYNに同期してデータ信号DT2を順次出力する。
第１スイッチ回路２８は、切替信号SW1に応じてスイッチを切り替え、データ信号DT2をデータ信号DT3として出力する。第２スイッチ回路３０は、切替信号SW2に応じてスイッチを切り替え、データ信号DT3をフラッシュメモリ１２のデータ端子I/Oに順次伝達する。
【００２６】
５１２バイトのデータがフラッシュメモリ１２に転送された後、スイッチ制御回路２６は、切替信号SW1を変化させる。第１スイッチ回路２８は、切替信号SW1に応じてスイッチを切り替え、高レベルのデータ（電源電圧VCC）をデータ信号DT3として出力する。そして、１５３６バイトの高レベルのデータ信号DT3が、フラッシュメモリ１２に出力される。このデータ信号DT3は、メモリセルに与えられてもプログラムされないマスクデータである。
【００２７】
このように、メモリコントローラ１０は、システム１６から受信した５１２バイトのデータにマスクデータを付加し、２ｋバイトのデータとしてフラッシュメモリに転送する。したがって、ページPAGのサイズが従来より大きいフラッシュメモリ１２を搭載するメモリカード１４においても、既存のシステム１６を変更することなく、フラッシュメモリ１２にデータをプログラムできる。すなわち、メモリカード１４の互換性が維持される。
【００２８】
次に、スイッチ制御回路２６は、切替信号SW1を変化させる。第１スイッチ回路２８は、切替信号SW1に応じてスイッチを切り替え、フラグ生成回路２４からのフラグ信号FLGをデータ信号DT3として出力する。
この後、コマンド制御回路２２は、書き込み動作の開始を指示するページプログラムコマンドをコマンド信号IOCMDとして出力する。第２スイッチ回路３０は、切替信号SW2に応じてスイッチを切り替え、ページプログラムコマンド"10"をフラッシュメモリ１２のデータ端子I/Oに伝達する。そして、フラッシュメモリ１２のプログラム動作が実行され、図３（ｂ）に示すように、ページPAGの記憶領域M1のみにデータDATAがプログラムされる。また、フラグ領域FLAにおいて、記憶領域M1に対応するフラグF（図の左端）がプログラムされる。
【００２９】
同様にして、次の５１２バイトのデータがシステム１６からメモリカード１４に転送される。コマンド制御回路２２は、システム１６からコマンド信号CMDに応じて、コマンド信号FCMD、IOCMDを出力する。コマンド信号FCMD、IOCMDは、フラッシュメモリ１２のコマンド端子FCMD、データ端子I/Oにそれぞれ供給される。
【００３０】
データバッファ１８は、５１２バイトのデータを順次受信する。アドレス変換回路２０は、アドレス信号ADDに応じて、プログラムの開始アドレスを示すアドレス信号ADD8を出力する。この例では、図３（ｃ）に示すように、アドレス信号ADD8は、メモリ領域M3の先頭を示す。
次に、第１および２スイッチ回路２８、３０が切り替わり、１０２４バイトの高レベルのデータ信号DT3（マスクデータ）が、フラッシュメモリ１２に出力される。すなわち、メモリ領域M1、M2に対応するデータは、全てマスクデータになる。このため、メモリ領域M1にすでにプログラムされたデータDATAが書き替わることを防止できる。
【００３１】
この後、第１スイッチ回路２８が切り替わり、データバッファ１８に保持されている５１２バイトのデータ信号DT2が、フラッシュメモリ１２のデータ端子I/Oに順次伝達される。５１２バイトのデータは、メモリ領域M3にプログラムされるデータである。
５１２バイトのデータがフラッシュメモリ１２に転送された後、第１スイッチ回路２８が切り替わり、５１２バイトの高レベルのデータ信号DT3（マスクデータ）が、フラッシュメモリ１２に出力される。すなわち、メモリ領域M4に対応するデータは、全てマスクデータになる。次に、第１スイッチ回路２８が切り替わり、フラグ信号FLGがデータ信号DT3として出力される。
【００３２】
そして、フラッシュメモリ１２のプログラム動作が実行され、図３（ｃ）に示すように、ページPAGの記憶領域M3のみにデータDATAがプログラムされる。また、フラグ領域FLAにおいて、記憶領域M3に対応するフラグF（図の左から３番目）がプログラムされる。上述したように、データがすでにプログラムされた記憶領域M1は、高レベルのマスクデータが供給されるため、プログラムされない。
【００３３】
この後、上述と同様にして、５１２バイト毎にプログラム動作が実行され、図３（ｄ）に示すように、ページPAGの全記憶領域M1-M4にデータがプログラムされる。このとき、フラグ領域FLAの全てのフラグFがプログラムされる。
以上、本実施形態では、システム１６から供給されるプログラムデータにマスクデータを付加した。このため、システム１６から出力されるプログラムデータが、ページバッファPBUFのサイズより小さい場合にも、プログラムデータをフラッシュメモリ１２に正しくプログラムできる。したがって、メモリカード１４に搭載されるフラッシュメモリ１２のページバッファPBUFのサイズが大きくなった場合にも、システム１６は、従来のメモリカードと同様にプログラムデータをプログラムできる。すなわち、従来のメモリカードとの互換性を維持できる。
【００３４】
スイッチ制御回路２６は、システム１６からのアドレス信号ADD（ADD８）に応じて第１スイッチ回路２８を制御し、システム１６からのプログラムデータDT（DT2）にマスクデータ（VCC）を付加した。このため、簡易な第１スイッチ回路２８でマスクデータを付加できる。
フラグ生成回路２４は、システム１６からのプログラムデータDT（DT2）がプログラムされる記憶領域Mを示すフラグ信号FLGを、システム１６からのアドレス信号ADD（ADD８）に応じて生成した。そして、メモリコントローラ１０は、フラグ信号FLGをフラッシュメモリ１２のフラグ領域FLAにフラグFとしてプログラムした。このため、システム１６は、フラグ領域FLAに記憶されているフラグFを読み出すことで、プログラムデータDTがプログラムされた記憶領域とプログラムされていない記憶領域とを認識できる。すなわち、ページバッファPBUFのサイズが大きいフラッシュメモリが開発された場合にも、システム１６は、このフラッシュメモリのプログラムの状況を容易に管理できる。
【００３５】
以上、本発明について詳細に説明してきたが、上記の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【００３６】
【発明の効果】
本発明のメモリコントローラおよびメモリシステム装置では、システムから出力されるプログラムデータが、ページバッファのサイズより小さい場合にも、プログラムデータを不揮発性半導体メモリに正しくプログラムできる。換言すれば、不揮発性半導体メモリのページバッファのサイズが大きくなった場合にも、本発明のメモリコントローラを使用することで、既存のシステムに対する互換性を維持できる。
【００３７】
また、システムは、各ページ内において第１プログラムデータがプログラムされた記憶領域とプログラムされていない記憶領域とを認識できる。すなわち、不揮発性半導体メモリのページバッファのサイズが大きくなった場合にも、システムは、不揮発性半導体メモリのプログラムの状況を容易に管理できる。
【図面の簡単な説明】
【図１】本発明の実施形態を示すブロック図である。
【図２】図１のフラッシュメモリを示す説明図である。
【図３】本発明の動作を示す説明図である。
【符号の説明】
１０  メモリコントローラ
１２  フラッシュメモリ
１４  メモリカード
１６  システム
１８  データバッファ
２０  アドレス変換回路
２２  コマンド制御回路
２４  フラグ生成回路
２６  スイッチ制御回路
２８  第１スイッチ回路
３０  第２スイッチ回路
ADD 、ADD8  アドレス信号
ALY  メモリセルアレイ
BLK  ブロック
CLK  クロック
CMD  コマンド信号
DT、DT2、DT3  データ信号
F  フラグ
FCMD  コマンド端子、コマンド信号
FLA  フラグ領域
FLG  フラグ信号
I/O  データ端子、データ信号
IOCMD  コマンド信号
M1、M2、M3、M4  記憶領域
MA  主領域
PAG  ページ
PBUF  ページバッファ
R/B  レディ/ビジー端子、レディ/ビジー信号
SA  副領域
SPA  スペアエリア
SW1、SW2  切替信号
SYN  同期信号
VCC  電源電圧
【図１】
0004034971.tif 000002
【図２】
0004034971.tif 000003
【図３】
0004034971.tif 000004