(57)【要約】【課題】  メモリ領域の利用効率を改善しつつ利便性の高い半導体記憶装置を提供する。【解決手段】  本発明のフラッシュメモリ１００は、メモリコントローラ２００と、ＮＡＮＤ型のメモリ装置３００とを含む。メモリコントローラ２００は、論理アドレスを物理アドレスに変換する変換テーブルを記憶するＳＲＡＭ２１０と、小サイズのプログラムすべきデータを一時的に格納するＲＲＡＭ２２０と、プログラムすべきデータをＲＲＡＭ２２０またはメモリ装置３００のＮＡＮＤメモリセルに選択的に書込む書込み／セレクタ２３０とを含む。【選択図】  図３
2020149151.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを含むＮＡＮＤ型のメモリセルアレイと、
データの読み書きが可能な不揮発性メモリと、
外部からプログラムコマンド、アドレス情報およびプログラムすべきデータが入力されたとき、プログラムすべきデータが基準サイズ未満であるとき、プログラムすべきデータおよび前記アドレス情報を前記不揮発性メモリに書込み、プログラムすべきデータが基準サイズ以上であるとき、プログラムすべきデータを前記メモリセルアレイにプログラムするプログラム手段と、
を有する半導体記憶装置。
【請求項２】
前記プログラム手段は、前記不揮発性メモリに蓄積された同一ページのプログラムすべきデータが前記基準サイズ以上になったとき、蓄積されたプログラムすべきデータを前記メモリセルアレイの選択ページにプログラムする、請求項１に記載の半導体記憶装置。
【請求項３】
半導体記憶装置はさらに、外部から読出しコマンドおよびアドレス情報が入力されたとき、入力されたアドレス情報に一致するアドレス情報が前記不揮発性メモリにある場合には前記不揮発性メモリからデータを読出し、入力されたアドレス情報に一致するアドレス情報が前記不揮発性メモリにない場合には前記メモリセルアレイからデータを読み出す読出し手段を含む、請求項１または２に記載の半導体記憶装置。
【請求項４】
半導体記憶装置はさらに、論理アドレスを物理アドレスに変換する変換テーブルを記憶するメモリを含み、
前記プログラム手段は、前記変換テーブルを参照して外部から入力された論理アドレスを物理アドレスに変換し、前記不揮発性メモリには、前記アドレス情報として論理アドレスと物理アドレスとが書込まれる、請求項１に記載の半導体記憶装置。
【請求項５】
前記プログラム手段は、前記不揮発性メモリに蓄積されたプログラムすべきデータを前記メモリセルアレイにプログラムした後に、前記不揮発性メモリの該当するデータを無効にする、請求項１または２に記載の半導体記憶装置。
【請求項６】
前記プログラム手段は、見かけ上、前記メモリセルアレイへのバイト単位またはワード単位のプログラムを可能にする、請求項１ないし５いずれか１つに記載の半導体記憶装置。
【請求項７】
前記不揮発性メモリは、抵抗変化型メモリである、請求項１ないし６いずれか１つに記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特に、ＮＡＮＤ型フラッシュメモリのプログラム動作に関する。
【背景技術】
【０００２】
通常、ＮＡＮＤ型フラッシュメモリは、パッケージ内に、メモリチップと当該メモリチップを制御するためのメモリコントローラとを含んで構成される。メモリコントローラに、メモリチップのエラー訂正やバッドブロックの管理等の一定の負荷を負わせることで、ホスト側のコンピュータの負荷を軽減させることができる。
【０００３】
例えば、特許文献１のフラッシュメモリシステムは、図１に示すように、フラッシュメモリ１０と、ホストデバイス４０とを含み、フラッシュメモリ１０は、メモリコントローラ２０とメモリチップ３０とを含む。メモリコントローラ２０は、ホストデバイス４０との間でデータの転送を行うホストインターフェース２２、メモリチップ３０との間でデータの転送を行うメモリインターフェース２４、データ転送やメモリチップの動作を制御するＭＰＵ、プログラムやデータを記憶するＲＯＭ、ＲＡＭなどを備えている。メモリチップ３０は、例えばＮＡＮＤ型フラッシュメモリのチップである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１７５８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＮＡＮＤ型のフラッシュメモリでは、読出しおよびプログラムはページ単位で行われ、消去はブロック単位で行われる。ホストデバイスは、これらの動作を指示するとき、読み出し、プログラム、消去のための論理アドレスをメモリコントローラに出力する。メモリコントローラは、受け取った論理アドレスを、ＳＲＡＭに保持された変換テーブルを参照して物理アドレスに変換し、メモリセルアレイへのプログラム等を行う。変換テーブルは、電源投入時に、メモリセルアレイに用意された領域からＳＲＡＭにロードされる。
【０００６】
ホストデバイスは、プログラムを指示するとき、各種制御信号（ＡＬＥ、ＣＬＥ等）に加えて、プログラム命令、プログラムすべきデータおよび論理アドレスＬＡＤをメモリコントローラへ出力する。論理アドレスＬＡＤは、論理ブロックアドレスＬＢＡ、論理ページアドレスＬＰＡおよび論理カラムアドレスＬＣＡを含む。メモリコントローラは、上記したように変換テーブルを参照し、論理ブロックアドレスＬＢＡを物理ブロックアドレスＰＢＡに変換し、物理ブロックアドレスＰＢＡで指定されたブロックのページにデータをプログラムする。ブロック内のページは、論理ページアドレスＬＰＡで指定される。
【０００７】
プログラムすべきデータのサイズが１ページよりも小さい場合、そのページにはプログラムに利用されない無駄な領域が生じてしまう。また、ＮＡＮＤフラッシュメモリには、パーシャルページプログラム機能、すなわち１ページ（例えば、２Ｋバイト）よりも小さいサイズのデータを同一ページに複数回プログラムする機能を備えるものがある。しかし、パーシャルページプログラム機能では、同一ワード線に高いプログラム電圧が繰り返し印加されることの悪影響を防止するため、同一ページに許容されるプログラムの最大回数ＮＯＰ（number of programming）が規定されている。このため、最大回数ＮＯＰに到達した時点でページに未使用な領域があると、無駄な空き容量域が生じてしまう。
【０００８】
また、メモリセルアレイの高集積化に伴い１ページのデータサイズが増加する傾向にある。そうすると、ページ単位でプログラムするデータサイズも大きくなるが、ユーザーとしては、ページサイズよりも小さい単位のデータ（例えば、バイト単位、ワード単位のデータ）のプログラムを望むこともある。しかしながら、上記したようにＮＯＰの制約があると、事実上、小サイズのデータをプログラムすることは不可能である。
【０００９】
本発明は、上記したような従来の課題を解決するものであり、メモリ領域の利用効率を改善しつつ小サイズのデータのプログラムが可能な利便性の高い半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る半導体記憶装置は、複数のブロックを含むＮＡＮＤ型のメモリセルアレイと、データの読み書きが可能な不揮発性メモリと、外部からプログラムコマンド、アドレス情報およびプログラムすべきデータが入力されたとき、プログラムすべきデータが基準サイズ未満であるとき、プログラムすべきデータおよび前記アドレス情報を前記不揮発性メモリに書込み、プログラムすべきデータが基準サイズ以上であるとき、プログラムすべきデータを前記メモリセルアレイにプログラムするプログラム手段とを有する。
【００１１】
ある実施態様では、前記プログラム手段は、前記不揮発性メモリに蓄積された同一ページのプログラムすべきデータが前記基準サイズ以上になったとき、蓄積されたプログラムすべきデータを前記メモリセルアレイの選択ページにプログラムする。ある実施態様では、半導体記憶装置はさらに、外部から読出しコマンドおよびアドレス情報が入力されたとき、入力されたアドレス情報に一致するアドレス情報が前記不揮発性メモリにある場合には前記不揮発性メモリからデータを読出し、入力されたアドレス情報に一致するアドレス情報が前記不揮発性メモリにない場合には前記メモリセルアレイからデータを読み出す読出し手段を含む。ある実施態様では、半導体記憶装置はさらに、論理アドレスを物理アドレスに変換する変換テーブルを記憶するメモリを含み、前記プログラム手段は、前記変換テーブルを参照して外部から入力された論理アドレスを物理アドレスに変換し、前記不揮発性メモリには、前記アドレス情報として論理アドレスと物理アドレスとが書込まれる。ある実施態様では、前記プログラム手段は、前記不揮発性メモリに蓄積されたプログラムすべきデータを前記メモリセルアレイにプログラムした後に、前記不揮発性メモリの該当するデータを無効にする。ある実施態様では、前記プログラム手段は、見かけ上、前記メモリセルアレイへのバイト単位またはワード単位のプログラムを可能にする。ある実施態様では、前記不揮発性メモリは、抵抗変化型メモリである。
【発明の効果】
【００１２】
本発明によれば、プログラムすべきデータが基準サイズ未満であるとき、プログラムすべきデータおよびアドレス情報を不揮発性メモリに書込み、プログラムすべきデータが基準サイズ以上であるとき、プログラムすべきデータをメモリセルアレイにプログラムするようにしたので、メモリセルアレイの１ページよりも小さいデータをプログラムすることが可能となり、かつ選択ページの使用されない無駄な空き容量を削減することができる。また、同一ページに許容されるプログラムの最大回数ＮＯＰによる制限を受けずに小サイズのデータを繰り返しプログラムすることができるようになるので、ＮＡＮＤ型フラッシュメモリの利便性の向上を図ることができる。
さらに不揮発性メモリに蓄積されたデータが基準サイズに到達したとき、不揮発性メモリに蓄積されたデータをメモリセルアレイに書換えるようにしたので、メモリセルアレイのプログラム回数を減らすことができ、これにより、ＮＡＮＤフラッシュメモリのエンデュランス特性やデータ保持特性を改善することができる。
【図面の簡単な説明】
【００１３】
【図１】従来の半導体メモリの一例を示す図である。
【図２】本発明の実施例に係るフラッシュメモリの全体構成を示す図である。
【図３】本発明の実施例に係るメモリコントローラの内部構成を示すブロック図である。
【図４】本発明の実施例に係るメモリセルアレイのブロックの内部構成を示す図である。
【図５】ＳＲＡＭに保持された変換テーブルによりホストデバイスからの論理アドレスを物理アドレスに変換する動作を説明する図である。
【図６】本発明の実施例に係るプログラム動作のフローを示す図である。
【図７】本発明の実施例に係るＲＲＡＭの格納例を示す図である。
【図８】本発明の実施例に係るＲＲＡＭのデータをＮＡＮＤメモリセルにプログラムするときの動作フローを示す図である。
【図９】本発明の実施例に係る読出し動作のフローを示す図である。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明のフラッシュメモリは、ＮＡＮＤ型ストリングのメモリセルを有するメモリ装置と、メモリ装置を制御するメモリコントローラとを含んで構成される。メモリコントローラは、メモリ装置を形成するチップと同一のチップ上に形成されてもよいし、異なるチップ上に形成されてもよい。また、フラッシュメモリが複数のチップから構成されるとき、複数のチップは積層されるように構成されてもよい。
【実施例】
【００１５】
図２は、本発明の実施例に係るフラッシュメモリ１００の構成を示す図である。本実施例のフラッシュメモリ１００は、メモリコントローラ２００と、１つまたは複数のＮＡＮＤ型メモリ装置３００とを含んで構成される。メモリコントローラ２００は、ホストデバイスから各種制御信号（コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥなど）、データ、コマンド等を受け取り、これらの信号等に基づきメモリ装置３００の読出し、プログラム（書込み）、消去等を制御する。また、メモリコントローラ２００は、メモリ装置の動作状態を示すＲｅａｄｙ信号やＢｕｓｙ信号をホストデバイス４０に出力する。
【００１６】
図３に、メモリコントローラ２００の内部構成を示す。本実施例のメモリコントローラ２００は、電圧検出部２１０、ＳＲＡＭ２１０、ＲＲＡＭ（抵抗変化型メモリ（２２０）および書込み／セレクタ２３０を含んで構成される。なお、メモリコントローラ２００は、これ以外にも、マイクロプロセッサ（ＭＰＵ）やＲＯＭなどを含み、ＲＯＭに格納されたソフトウエアプログラムを実行することで、メモリ装置３００の種々の動作を制御したり、書込み／セレクタ２３０を制御する。
【００１７】
ＳＲＡＭ２１０は、メモリ装置３００の動作に必要な種々のデータを保持することができる。例えば、上記した論理アドレスと物理アドレスとの関係を規定する変換テーブル、メモリ装置のブロックの各ページのステータス（データが書込まれている、消去されている、無効であるなど）を表すテーブルなどを保持する。これらのデータは、電源投入時にパワーオンシーケンスが実行されたとき、メモリ装置３００のメモリセルアレイに用意された領域からロードされる。
【００１８】
ＲＲＡＭ２２０は、可逆的かつ不揮発性の可変抵抗素子にデータを記憶することができる可変抵抗型ランダムアクセスメモリである。ＲＲＡＭ２２０は、ＳＲＡＭ２１０と同様に高速でデータの読み書きが可能であり、かつ電源が喪失してもデータを保持することができる不揮発性のメモリである。
【００１９】
ＲＲＡＭ２２０は、メモリ装置３００のＮＡＮＤ型メモリセルアレイの一時的または代替的なメモリ空間を提供する。具体的には、ＲＲＡＭ２２０は、メモリ装置３００へのプログラムすべきデータが決められた基準サイズＵよりも小さいとき、プログラムすべきデータとそのアドレス情報（論理アドレスとその変換された物理アドレスとを含む）とを記憶する。
【００２０】
基準サイズＵは、任意に設定可能である。例えば、１ページのデータサイズをＰとしたとき、基準サイズＵは、Ｕ＝Ｐ−Ｍに設定することができる。Ｍを０または非常に小さくすることで、１回のプログラム時に未使用になるデータ領域を極力小さくすることができる。また、フラッシュメモリ１００にパーシャルページプログラム機能が搭載されている場合には、基準サイズＵは、同一ページに許容される最大プログラム回数ＮＯＰに応じて設定されるようにしてもよい。仮にＮＯＰが５回であれば、１回のプログラム時のデータサイズがＰ／５を下回れば、ＮＯＰの許容回数に到達したときページに空き領域が生じる可能性がある（プログラムすべきデータが均等であると仮定した場合）。このため、基準サイズＵを、Ｕ≧Ｐ／５に設定するようにしてもよい。
【００２１】
ＲＲＡＭ２２０は、プログラムすべきデータが基準サイズＵよりも小さければ、そのようなプログラムすべきデータを順次蓄積していく。そして、蓄積されたデータサイズが決められたサイズ、例えば１ページにほぼ等しくなるか、あるいはそれを超えたとき、ＲＲＡＭ２２０に蓄積されたデータは、メモリ装置３００のＮＡＮＤメモリセルアレイの選択ページに書換えられる。
【００２２】
書込み／セレクタ２３０は、ホストデバイス４０からプログラムの指示を受けたとき、ＲＲＡＭ２２０またはメモリ装置３００を選択し、選択されたＲＲＡＭ２２０またはメモリ装置３００への書込みまたはプログラムを制御する。また、書込み／セレクタ２３０は、ホストデバイス４０から論理アドレスＬＡＤを受け取ると、ＳＲＡＭ２１０に保持された変換テーブルを参照して論理アドレスＬＡＤを物理アドレスＰＤＡに変換する。変換された物理アドレスは、メモリ装置３００をアクセスするために使用される。
【００２３】
書込み／セレクタ２３０は、コントローラ２００の制御下において、プログラムすべきデータが基準サイズＵよりも小さいとき、プログラムすべきデータとそのアドレス情報とをＲＲＡＭ２２０に書込み、プログラムすべきデータが基準サイズＵ以上であれば、通常通り、プログラムすべきデータをメモリ装置３００のメモリセルアレイの選択ページにプログラムする。
【００２４】
メモリ装置３００は、ＮＡＮＤ型ストリングから構成されるメモリセルアレイ、行アドレスに基づきメモリセルアレイの選択されたブロックのワード線を選択する行選択回路、列アドレスに基づきビット線を選択する列選択回路、選択ワード線により読み出されたデータをセンスしたり、プログラムするデータを保持するページバッファ／センス回路等を含む。行選択回路でデコードされる行アドレスは、物理ブロックアドレスＰＢＡと論理ページアドレスＬＰＡとを含む物理アドレスである。また、列選択回路でデコードされる列アドレスは、論理列アドレスＬＰＡである。
【００２５】
メモリセルアレイの１つのブロックには、図４に示すように、複数のメモリセルを直列に接続したＮＡＮＤストリングが行方向にｎ個（例えば、２ＫＢ）配列されている。１つのＮＡＮＤストリングＮＵは、直列に接続された複数のメモリセルMCi(i=１、２、３・・・、６４)と、一方の端部であるメモリセルMC64のドレイン側に接続されたビット線側選択トランジスタTdと、メモリセルMC0のソース側に接続されたソース線側選択トランジスタTsとを含む。ビット線側選択トランジスタTdのドレインは、対応する１つのビット線BLに接続され、ソース線側選択トランジスタTsのソースは、共通のソース線SLに接続される。メモリセルは、１ビットのデータを記憶するもの、あるいはビットのデータを記憶するものいずれであってもよい。さらにメモリセルアレイは、基板上に２次元的に形成されるもの、あるいは基板上に３次元的に形成されるものいずれであってもよい。
【００２６】
読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧（例えば０Ｖ）を印加し、非選択ワード線にパス電圧（例えば４．５Ｖ）を印加し、選択ゲート線SGD、SGSに正の電圧（例えば４．５Ｖ）を印加し、ビット線側選択トランジスタTd、ソース線側選択トランジスタTsをオンし、共通ソース線SLを０Ｖにする。プログラム動作では、選択されたワード線に高電圧のプログラム電圧（例えば、１５〜２０Ｖ）を印加し、非選択のワード線に中間電位（例えば１０Ｖ）を印加し、ビット線側選択トランジスタTdをオンさせ、ソース線側選択トランジスタTsをオフさせ、データ「０」または「１」に応じた電位をビット線BLに供給する。消去動作では、ブロック内の選択されたワード線に０Ｖを印加し、Ｐウエルに高電圧（例えば２０Ｖ）を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【００２７】
次に、フラッシュメモリ１００のプログラム動作について説明する。ホストデバイス４０は、フラッシュメモリ１００へのプログラムを行うとき、各種制御信号に加えて、プログラム命令、プログラムすべきデータ、論理アドレスＬＡＤをフラッシュメモリ１００に出力する。ホストデバイスから入力される論理アドレスＬＡＤは、図５に示すように、論理ブロックアドレスＬＢＡ、論理ページアドレスＬＰＡおよび論理カラムアドレスＬＣＡを含んで構成される。
【００２８】
書込み／セレクタ２３０は、論理アドレスＬＡＤを受け取ると、ＳＲＡＭ２１０に保持された変換テーブルを参照し、論理ブロックアドレスＬＢＡを物理ブロックアドレスＰＢＡに変換する。本例では、メモリ装置３００をアクセスするための行アドレスは１８ビットであり、列アドレスは１２ビットである。行アドレスの上位１２ビットがブロックを指定するアドレスであり、下位６ビットがページを指定するアドレスである。論理ページアドレスＬＰＡおよび論理列アドレスＬＡＣは、変換されることなくそのまま物理アドレスを構成する。こうして、論理アドレスＬＡＤが、メモリ装置をアクセスするための物理アドレスＰＤＡ（＝ＰＢＡ＋ＬＡＰ＋ＬＣＡ）に変換される。
【００２９】
書込み／セレクタ２３０は、コントローラ２００の制御下において、変換された物理アドレスをメモリ装置３００のワード線選択回路や列選択回路に供給する。これに応答して、ワード線選択回路によりブロック／ページが選択され、列選択回路によりビット線が選択され、選択ページの選択メモリセルにデータがプログラムされる。また、選択メモリセルのベリファイが行われ、プログラムが終了すれば、Ｒｅａｄｙ信号がホストデバイス４０に出力され、プログラム中であれば、Ｂｕｓｙ信号がホストデバイス４０に出力される。
【００３０】
次に、ホストデバイス４０から基準サイズＵよりも小さいデータが入力されたときのプログラム動作を図６のフローを参照して説明する。書込み／セレクタ２３０（またはコントローラ２００）は、ホストデバイス４０からプログラム命令、論理アドレス、プログラムすべきデータを受け取ると（Ｓ１００）、プログラムすべきデータのサイズを算出する（Ｓ１１０）。プログラムすべきデータの算出は、例えば、フラッシュメモリ１００の外部入出力端子に供給されたプログラムすべきデータを内部の入力バッファに取り込むときのストローブ信号（例えば、／ＷＥ信号）のクロック数をカウントすることにより行われる。あるいは、入力バッファのデータ格納位置を示すアドレスポインタ等から算出するようにしてもよい。
【００３１】
次に、書込み／セレクタ２３０は、プログラムすべきデータが基準サイズＵよりも小さいか否かを判定する（Ｓ１２０）。プログラムすべきデータが基準サイズＵ以上であれば、入力バッファに保持されたデータは、従来と同様に、ページバッファ／センスアンプにセットされ、メモリ装置３００のＮＡＮＤメモリセルアレイの選択ページにプログラムされる（Ｓ１３０）。他方、基準サイズＵより小さい場合には、入力バッファに保持されたデータは、アドレス情報とともにＲＲＡＭ２２０に書込まれる（Ｓ１４０）。
【００３２】
図７にＲＲＡＭ２２０の格納例を示す。同図に示すように、ＲＲＡＭ２２０は、例えば、プログラムすべきデータ、論理ブロックアドレスＬＢＡ、論理ページアドレスＬＰＡ、論理カラムアドレスＬＣＡ、物理ブロックアドレスＰＢＡ、プログラムすべきデータのサイズ、プログラムすべきデータが有効か否かを示すフラグを格納する。もし、ホストデバイス４０から基準サイズＵに満たないプログラムすべきデータが連続的または断続的に入力された場合には、ＲＲＡＭ２２０には、そのような基準サイズＵに満たない断片的なプログラムすべきデータが蓄積される。蓄積された断片的なデータが基準サイズＵまたは決められたサイズに到達すると、それらのデータがメモリ装置３００のＮＡＮＤメモリセルアレイにプログラムされる。
【００３３】
図８に、ＲＲＡＭに格納されたデータをメモリ装置３００に書換えるときの動作フローを示す。書込み／セレクタ２３０は、ＲＲＡＭ２２０のフラグを参照し、有効である断片的なデータを検索する。そして、同一ページの未書換えの断片的なデータサイズの合計をカウントする（Ｓ２００）。書込み／セレクタ２３０は、断片的なデータサイズの合計が基準サイズＵまたは決められた値を超えるか否かを判定する（Ｓ２１０）。決められた値は、前述したように基準サイズＵを、ページサイズＰ／許容回数ＮＯＰに応じて設定した場合には、１ページのデータサイズもしくはそれに近似する値にすることができる。さらに複数ページへの連続プログラムを実行する場合には、決められた値は、複数ページ分のデータサイズもしくはそれに近似する値にすることも可能である。
【００３４】
断片的なデータサイズの合計が基準サイズＵまたは決められた値を超える場合には、それらの断片的なデータは、論理カラムアドレスＬＣＡに従いページバッファ／センス回路にセットされ（Ｓ２２０）、次に、物理ブロックアドレスＰＢＡ、論理ページアドレスＬＰＡに従い選択ワード線にプログラム電圧が印加され、断片的なデータの集合は、ＮＡＮＤメモリセルアレイの選択ページにプログラムされる（Ｓ２３０）。次に、書込み／セレクタ２３０は、ＲＲＡＭ２２０に保持されたデータを無効にするためフラグをリセットするか消去される（Ｓ２４０）。フラグをリセットした場合には、その後、データは消去される。
なお、ＲＲＡＭ２２０に格納されたデータをメモリ装置３００のＮＡＮＤメモリセルアレイに書換えるタイミングは、フラッシュメモリ１００のバックグラウンドで実行されるようにしてもよいし、決められた動作に関連付けして実行されるようにしてもよい。
【００３５】
次に、本発明の実施例に係る読出し動作について図９のフローを参照して説明する。コントローラ２００は、ホストデバイス４０から読出し命令および論理アドレスを受け取ると（Ｓ３００）、ＲＲＡＭ２２０のフラグを参照し、入力された論理アドレス（ＬＢＡ＋ＬＰＡ＋ＬＣＡ）に一致する未書換えのデータの有無を検索する（Ｓ３１０）。あるいは、入力された論理アドレスを変換した物理アドレス（ＰＢＡ＋ＬＰＡ＋ＬＣＡ）に一致する未書換えのデータの有無を検索するようにしてもよい。
【００３６】
一致する未書換えのデータが存在するとき（Ｓ３２０）、コントローラ２００は、書込み／セレクタ２３０を介してＲＲＡＭ２２０から該当するデータを読出し（Ｓ３３０）、読み出したデータをホストデバイス４０に出力する。他方、一致する未書換えデータが存在しないとき、コントローラ２００は、書込み／セレクタ２３０を介してメモリ装置３００から該当するデータを読出し（Ｓ３４０）、読み出されたデータをホストデバイス４０に出力する。
【００３７】
このように本実施例によれば、基準サイズＵに満たない小サイズのデータをＲＲＡＭ２２０に書込むことで、フラッシュメモリ１００の同一ページの許容最大プログラム回数ＮＯＰの制約を受けることなく小サイズのデータをフラッシュメモリ１００にプログラムすることができる。また、ＲＲＡＭ２２０に蓄積されたデータが基準サイズＵまたは決められた値に到達したときにＮＡＮＤメモリセルアレイへの書換えを行うようにしたので、ＮＡＮＤメモリセルアレイへのプログラム回数を減らすことができる。これにより、ＮＡＮＤメモリセルアレイのエンデュランス特性やデータ保持特性を改善することができる。
【００３８】
上記実施例は、例えば、同一ページに連続的に断片的なデータをプログラムしたい場合などに特に有効である。ある実施態様では、ホストデバイス４０は、見かけ上、バイト単位あるいはワード単位でフラッシュメモリ１００の同一ページにプログラムすることができる。１ページのデータサイズが、例えば２ＫＢであれば、ホストデバイス４０は、同一ページの許容プログラム回数ＮＯＰに無関係に、バイト単位のデータを２Ｋ回繰り返し書込むことが可能になる。
【００３９】
なお、上記実施例では、不揮発性メモリとしてＲＲＡＭを使用したが、ＮＡＮＤ型メモリよりも高速にデータを書込むことができるものであれば、ＲＲＡＭ以外にもＭＲＡＭ（磁性体メモリ）を使用することも可能である。
【００４０】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４１】
１００：フラッシュメモリ
２００：メモリコントローラ
２１０：ＳＲＡＭ
２２０：ＲＲＡＭ
２３０：書込み／セレクタ
３００：メモリ装置
【図１】
2020149151.tif 000003
【図２】
2020149151.tif 000004
【図３】
2020149151.tif 000005
【図４】
2020149151.tif 000006
【図５】
2020149151.tif 000007
【図６】
2020149151.tif 000008
【図７】
2020149151.tif 000009
【図８】
2020149151.tif 000010
【図９】
2020149151.tif 000011