(57)【特許請求の範囲】
【請求項１】
ＮＡＮＤ型のメモリアレイと、
前記メモリアレイの選択されたページから読み出したデータを保持し、または前記メモリアレイの選択されたページに書込むデータを保持するデータ保持手段と、
外部入出力端子と、
前記データ保持手段に接続され、前記データ保持手段に入力されるデータまたは前記データ保持手段から出力されるデータの誤り検出および訂正を行う誤り検出訂正手段と、
前記外部入出力端子と前記誤り検出訂正手段との間に接続され、データの圧縮および伸長を行う圧縮手段とを有し、
前記圧縮手段は、前記外部入出力端子から提供されたデータを圧縮し、圧縮したデータを前記誤り訂正手段へ提供し、前記誤り訂正手段から提供されたデータを伸長し、伸長されたデータを前記外部入出力端子へ提供し、
前記誤り検出訂正手段はさらに、圧縮された誤り検出および訂正されたデータに、前記圧縮手段によるデータの圧縮率に応じた論理がすべて０または１のダミーデータを付加し、１ページのデータサイズを復元する、半導体記憶装置。
【請求項２】
半導体記憶装置はさらに、前記外部入出力端子と前記圧縮手段との間に入出力バッファを含む、請求項１に記載の半導体記憶装置。
【請求項３】
前記圧縮手段は、入力されたデータを論理圧縮する、請求項１または２に記載の半導体記憶装置。
【請求項４】
前記圧縮手段は、入力されたデータを、データパターンと当該データパターンの一致回数を含むデータに圧縮する、請求項１ないし３いずれか１つに記載の半導体記憶装置。
【請求項５】
半導体記憶装置はさらに、前記圧縮手段を制御する制御手段を含み、前記圧縮手段は、前記制御手段からの制御信号に基づき可変長のデータパターンまたは固定長のデータパターンのいずれかを選択し、入力データの圧縮を行う、請求項４に記載の半導体記憶装置。
【請求項６】
前記圧縮手段は、入力されたデータとデータパターンとを比較する比較部と、入力されたデータとデータパターンとの一致回数をカウントするカウンタとを含む、請求項１ないし５いずれか１つに記載の半導体記憶装置。
【請求項７】
前記圧縮手段はさらに、Ｎバイトのデータパターンを発生するデータパターン発生部と、前記比較部の比較結果から得られたデータパターンが前の比較部で比較されたデータパターンに一致するか否かを判定する判定部と、圧縮されたデータを生成する圧縮データ生成部とを含み、前記判定部により一致しないと判定されたとき、前記圧縮データ生成部は、データパターンと当該データパターンの一致回数を含む圧縮データを生成する、請求項６に記載の半導体記憶装置。
【請求項８】
前記圧縮手段は、データパターンと当該データパターンの一致回数を含む圧縮されたデータを元のデータに伸長する伸長部を含む、請求項１ないし７いずれか１つに記載の半導体記憶装置。
【請求項９】
前記圧縮手段はさらに、圧縮されたデータに含まれる一致回数を減算するカウンタと、カウンタのカウント値が所定値に到達したか否かを判定する判定部とを備え、前記判定部により所定値に到達したと判定されるまで、前記伸長部は、データパターンの連結を生成する、請求項８に記載の半導体記憶装置。
【請求項１０】
前記誤り検出訂正手段はさらに、ダミーデータの付加を識別するためのフラグ情報を追加し、メモリアレイの選択されたページからデータが読み出されるとき、前記誤り検出訂正手段は、前記フラグ情報に基づきダミーデータの付加を判別し、ダミーデータが含まれていると判別した場合には、ダミーデータを消去し、残りのデータの誤り検出および訂正を行う、請求項１に記載の半導体記憶装置。
【請求項１１】
前記制御手段は、外部のコントローラからのコマンドに基づき前記制御信号を出力する、請求項５に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特に、入出力されるデータの圧縮伸長および誤り訂正に関する。
【背景技術】
【０００２】
フラッシュメモリ、ＤＲＡＭ等の半導体メモリでは、集積度が年々増加し、不良または欠陥のない記憶素子を製造することは難しい。このため、メモリチップ上には、製造工程中に発生する記憶素子の物理的な欠陥を見かけ上救済するための冗長スキームが利用される。例えば、ある冗長スキームでは、冗長メモリを設けることで、物理的な欠陥のある記憶素子を救済している。また、半導体メモリには、冗長メモリによる物理的な救済以外に、ソフトエラー対策として誤り検出訂正回路（ＥＣＣ：Error Checking Correction）がある。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、繰り返しデータのプログラムや消去を繰り返すことで、トンネル絶縁膜の劣化による電荷保持特性が悪化したり、トンネル絶縁膜にトラップした電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献１では、このようなビットエラー対策として、誤り検出訂正回路を搭載している。特に、ブロック選択トランジスタに近いセルでは、リソグラフィによるパターンのバラツキ、拡散層形成時のイオン注入のバラツキによって、ビットエラー率が高くなる傾向にあり、これをより多く救済可能にするためにＥＣＣコードを格納させている。
【０００４】
また、ＮＡＮＤフラッシュメモリに入力されるデータおよびそこから出力されるデータについてＥＣＣ処理を行うＥＣＣ部を備えた半導体装置が特許文献２に開示されている。この半導体装置は、ＮＡＮＤフラッシュメモリとＥＣＣ部との接続を切替え可能にすることで回路面積の低減を図っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１５２９８９号公報
【特許文献２】特開２０１１−１９７８１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＥＣＣ回路をオンチップで搭載するＮＡＮＤ型フラッシュメモリでは、読出しおよびプログラムされるすべてのビットデータに対し誤り検出訂正を行うと、その演算に非常に時間がかかる。特に、ＮＡＮＤ型フラッシュメモリでは、ページ単位で読出しおよびプログラムが行われるので、高集積化に伴い１ページ当たりのビット数が増加すれば、それに比例してＥＣＣ回路の演算時間が増加してしまう。このことは、読出し時間およびプログラム時間の短縮の障害になり得る。
【０００７】
本発明は、上記従来の課題を解決するものであり、データの信頼性の維持を図りつつ、データの入出力時間の短縮を図ることができる半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る半導体記憶装置は、メモリアレイと、前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、外部入出力端子と、前記データ保持手段に接続され、前記データ保持手段に入力されるデータまたは前記データ保持手段から出力されるデータの誤り検出および訂正を行う誤り検出訂正手段と、前記外部入出力端子と前記誤り検出訂正手段との間に接続され、データの圧縮および伸長を行う圧縮手段とを有し、前記圧縮手段は、前記外部入出力端子から提供されたデータを圧縮し、圧縮したデータを前記誤り訂正手段へ提供し、前記誤り訂正手段から提供されたデータを伸長し、伸長されたデータを前記外部入出力端子へ提供する。
【０００９】
好ましくは半導体記憶装置はさらに、前記外部入出力端子と前記圧縮手段との間に入出力バッファを含む。好ましくは前記圧縮手段は、入力されたデータを論理圧縮する。好ましくは前記圧縮手段は、入力されたデータを、データパターンと当該データパターンの一致回数を含むデータに圧縮する。好ましくは前記圧縮手段は、入力されたデータとパターンデータとを比較する比較部と、入力されたデータとパターンデータとの一致回数をカウントするカウンタとを含む。好ましくは前記圧縮手段はさらに、Ｎバイトのデータパターンを発生するデータパターン発生部と、前記比較部の比較結果から得られたデータパターンが前の比較部で比較されたデータパターンに一致するか否かを判定する判定部と、圧縮されたデータを生成する圧縮データ生成部とを含み、前記判定部により一致しないと判定されたとき、前記圧縮データ生成部は、パターンデータと当該パターンデータの一致回数を含む圧縮データを生成する。好ましくは前記圧縮手段は、パターンデータと当該パターンデータの一致回数を含む圧縮されたデータを元のデータに伸長する伸長部を含む。好ましくは前記圧縮手段はさらに、圧縮されたデータに含まれる一致回数を減算するカウンタと、カウンタのカウント値が所定値に到達したか否かを判定する判定部とを備え、前記判定部により所定値に到達したと判定されるまで、前記伸長部は、パターンデータの連結を生成する。好ましくは前記誤り検出訂正手段は、圧縮されたデータに論理がすべて０または１のダミーデータを付加する。
【発明の効果】
【００１０】
本発明によれば、外部入出力端子と誤り検出訂正手段との間にデータの圧縮および伸長可能な圧縮手段を設けることにより、誤り検出訂正手段による演算時間の短縮を図ることができる。それ故、データの入出力時間を短縮させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例に係るＮＡＮＤ型フラッシュメモリの全体の概略構成を示す図である。
【図２】本発明の実施例に係るメモリセルアレイのＮＡＮＤストリングの構成を示す回路図である。
【図３】本実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。
【図４】本発明の実施例に係るフラッシュメモリにデータが入力されるときの圧縮動作を説明する図である。
【図５】データの論理圧縮の一例を示す図である。
【図６】本発明の実施例に係るフラッシュメモリからデータが出力されるときの伸長動作を説明する図である。
【図７】圧縮されたデータの伸長の一例を示す図である。
【図８】本発明の実施例に係るフラッシュメモリにデータが入力されるときの処理時間の一例である。
【図９】本発明の実施例に係るフラッシュメモリからデータが出力されるときの処理時間の一例である。
【図１０】本発明の第２の実施例に係るフラッシュメモリを説明する図である。
【発明を実施するための形態】
【００１２】
次に、本発明の実施の形態について図面を参照して詳細に説明する。本発明は、種々のタイプの記憶構造を有する不揮発性メモリに適用することができるが、ここでは、好ましい形態としてＮＡＮＤ型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
【実施例】
【００１３】
本発明の実施例に係るフラッシュメモリの典型的な構成を図１に示す。但し、ここに示すフラッシュメモリは例示であって、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ１０は、複数のメモリセルが行列状に配列されたメモリアレイ１００と、外部入出力端子Ｉ／Ｏに接続され入出力データを保持する入出力バッファ１１０と、読み出されたビットデータおよびプログラムすべきビットデータの誤り検出・訂正を行うＥＣＣ回路１２０と、入出力バッファ１１０とＥＣＣ回路との間に接続されデータの圧縮・伸長を行う圧縮部１３０と、入出力バッファ１１０からのアドレスデータを受け取るアドレスレジスタ１４０と、入出力バッファ１１０からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部１５０と、アドレスレジスタ１４０から行アドレス情報Ａｘを受け取り、行アドレス情報Ａｘをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１６０と、ワード線選択回路１６０によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ／センス回路１７０と、アドレスレジスタ１４０から列アドレス情報Ａｙを受け取り、列アドレス情報Ａｙをデコードし、当該デコード結果に基づきページバッファ／センス回路１７０内のデータの選択等を行う列選択回路１８０と、データの読出し、プログラムおよび消去等のために必要な種々の電圧（書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど）を生成する内部電圧発生回路１９０とを含んで構成される。
【００１４】
メモリアレイ１００は、列方向に配置されたｍ個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ／センス回路１７０が配置される。このような構成以外にも、ページバッファ／センス回路１７０は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【００１５】
１つのメモリブロックには、図２に示すように、複数のメモリセルを直列に接続したＮＡＮＤストリングユニットＮＵが複数形成され、１つのメモリブロック内にｎ＋１個のストリングユニットＮＵが行方向に配列されている。セルユニットＮＵは、直列に接続された複数のメモリセルMCi(i=０、１、・・・、３１)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する１つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
【００１６】
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路１６０は、行アドレスＡｘまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図２は、典型的なセルユニットの構成を示しているが、セルユニットは、ＮＡＮＤストリング内に１つまたは複数のダミーセルを包含するものであってもよい。
【００１７】
メモリセルは、典型的に、Ｐウエル内に形成されたＮ型の拡散領域であるソース／ドレインと、ソース／ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むＭＯＳ構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「１」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「０」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、１ビット（２値データ）を記憶するＳＬＣタイプでもよいし、多ビットを記憶するＭＬＣタイプであってもよい。
【００１８】
図３は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧（例えば０Ｖ）を印加し、非選択ワード線にパス電圧Ｖｐａｓｓ（例えば４．５Ｖ）を印加し、選択ゲート線SGD、SGSに正の電圧（例えば４．５Ｖ）を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に０Ｖを印加する。プログラム（書込み）動作では、選択されたワード線に高電圧のプログラム電圧Vprog（１５〜２０Ｖ）を印加し、非選択のワード線に中間電位（例えば１０Ｖ）を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「０」または「１」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に０Ｖを印加し、Ｐウエルに高電圧（例えば２０Ｖ）を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【００１９】
圧縮部１３０は、入出力バッファ１１０とＥＣＣ回路１２０との間に配置され、入出力バッファ１１０から入力されたデータを論理圧縮し、論理圧縮されたデータをＥＣＣ回路１２０へ出力する。また、圧縮部１３０は、ＥＣＣ回路１２０からの圧縮されたデータを伸長し、伸長されたデータを入出力バッファ１１０へ出力する。
【００２０】
ＥＣＣ回路１２０は、フラッシュメモリ１０に入力されるすべてのビットデータについて誤り検出・訂正の演算を行い、かつ、フラッシュメモリから出力されるすべてのビットデータについて誤り検出・訂正の演算を行う。より具体的には、プログラム動作時、入出力バッファ１１０からのプログラムデータは、圧縮部１３０によって論理圧縮され、圧縮されたプログラムデータがＥＣＣ回路１２０によってＥＣＣ処理され、ＥＣＣ処理されたデータがページバッファ／センス回路１７０へ転送される。ＥＣＣ処理されたプログラムデータには、誤り訂正符号が含まれる。そして、メモリアレイ１００の選択されたページにプログラムデータが書込まれる。読出し動作時、メモリアレイ１００から読み出されたデータがページバッファ／センス回路１７０へ転送され、ページバッファ／センス回路１７０から転送されたデータがＥＣＣ回路１２０によってＥＣＣ処理され、ＥＣＣ処理されたデータが圧縮部１３０によって伸長され、伸長されたデータが入出力バッファへ提供される。
【００２１】
図４は、フラッシュメモリにデータが入力されるときの圧縮部１３０の構成および動作を説明する図である。フラッシュメモリ１０の外部入出力端子２００に印加されたデータは、入出力バッファ１１０に蓄積され、次いで、入出力バッファ１１０から圧縮部１３０へ提供される。圧縮部１３０は、図４に示すように、Ｎバイトのデータパターン（Ｎは、１以上の整数）を発生するデータパターン発生部２１０、入出力バッファ１１０から入力されたデータＤｉとデータパターン発生部２１０で発生されたＮバイトのデータパターンＤｐとを比較する比較部２２０、比較部２２０の比較結果に基づき一致したデータパターンＤｐが前回の比較部２２０の比較結果であるデータパターンＤｐ−ｎに一致するか否かを判定する判定部２３０、判定部２３０によって前回のデータパターンＤｐ−ｎに一致すると判定されたとき、その一致回数をカウントするカウンタ２４０、入力されたデータＤｉに関する圧縮されたデータＤｃを生成する圧縮データ生成部２５０を有する。
【００２２】
データパターン発生部２１０は、好ましくは、Ｎバイトのデータパターンを発生する。ある好ましい態様では、データパターン発生部２１０は、複数種のデータパターンを格納するキャッシュメモリであることができる。他の好ましい態様では、データパターン発生部２１０は、予め決められたアルゴリズムに従い複数種のデータパターンを発生させることができる。発生されるデータパターンは、固定長であってもよいし、可変長であってもよい。ある態様では、データパターン発生部２１０は、制御部１５０からの制御信号Ｓに基づき固定長のデータパターンまたは可変長のデータパターンのいずれかを発生させることができる。制御部１５０は、例えば、外部のコントローラからのコマンドに基づき固定長のデータパターンまたは可変長のデータパターンの設定をすることができる。もし、より高い圧縮率が要求されるならば、制御部１５０は、可変長のデータパターンによる圧縮を選択し、低い圧縮率が要求されるならば、固定長のデータパターンによる圧縮を選択する。
【００２３】
比較部２２０は、入力されたデータＤｉとデータパターンＤｐとの比較を行う。好ましくは比較部２２０は、データＤｉおよび／またはデータパターンＤｐを格納するためのレジスタ等を備える。比較部２２０は、データパターンＤｐがＮバイトの固定長であれば、入力されたデータＤｉのＮバイトのデータとＮバイトのデータパターンＤｐとを比較する。一方、データパターンＤｐが可変長であれば、比較部２２０は、少なくとも可変長の最大サイズのデータをレジスタ等に格納し、可変長のデータパターンＤｐとの比較を行う。比較部２２０は、データＤｉとデータパターンＤｐとを比較し、比較結果として、データＤｉに一致したデータパターンＤｐを判定部２３０へ提供する。
【００２４】
判定部２３０は、前回に一致したデータパターンＤｐ−ｎを保持し、比較部２２０で一致されたデータパターンＤｐが前回のデータパターンＤｐ−ｎに一致するか否かを判定する。Ｄｐ＝Ｄｐ−ｎと判定されたとき、カウンタ２４０は、カウント値を＋１だけインクリメントし、このカウント値を保持する。比較部２２０は、カウンタ２４０によってカウントの終了が通知されると、次のデータＤｉとパターンデータＤｐとを比較する。また、判定部２３０は、Ｄｐ≠Ｄｐ−ｎと判定したとき、Ｄｐ−ｎの内容を初期化し、かつ、その判定結果を圧縮データ生成部２５０へ通知する。データ生成部２５０は、この通知に応答して圧縮データを生成する。
【００２５】
次に、圧縮部の圧縮動作の一例について説明する。ここでは、Ｎバイトの固定長のデータパターンによる圧縮が行われるものとし、入力されるデータＤｉは、図５（Ａ）に示すように、Ｎバイトの“Pattern A”が連続して６回繰り返されるデータＤｉ−１、Ｄｉ−２、Ｄｉ−３、Ｄｉ−４、Ｄｉ−５、Ｄｉ−６が入力され、その後、“Pattern B”のデータＤｉ−７が入力されると仮定する。
【００２６】
比較部２２０は、ＮバイトのデータＤｉ−１とデータパターン発生部２１０で発生される、またはそこに記憶されるＮバイトのデータパターンＤｐとを比較し、一致するデータパターンを検索する。ここでは、比較部２２０は、データＤｉ−１がデータパターン“Pattern A”に一致する比較結果を判定部２３０へ提供する。判定部２３０は、Ｄｐ−ｎが初期化されているため、この場合、両データパターンが一致する判定結果をカウンタ２４０へ通知し、かつデータパターンＤｐ−ｎ＝“Pattern A”を保持する。これに応答して、カウンタ２４０は、カウント値＝１を保持する。
【００２７】
次に、比較部２２０は、データＤｉ−２とデータパターンＤｐとを比較し、比較結果としてデータパターンＤｐ＝“Pattern A”が判定部２３０へ提供される。判定部２３０は、Ｄｐ＝Ｄｐ−ｎであると判定し、その判定結果をカウンタ２４０へ通知する。これに応答して、カウンタ２４０は、カウント値＝２を保持する。同様の処理が、データＤｉ−６まで繰り返されたとき、カウンタ２４０には、カウント値＝６が保持される。
【００２８】
次に、比較部２２０は、データＤｉ−７とデータパターンＤｐとを比較し、比較結果としてデータパターンＤｐ＝“Pattern B”が判定部２３０へ提供される。判定部２３０は、Ｄｐ≠Ｄｐ−ｎであると判定し、その判定結果を圧縮データ生成部２５０へ通知し、かつＤｐ−ｎを初期化する。
【００２９】
圧縮データ生成部２５０は、判定部２３０による不一致の判定結果を受け取ると、データＤｉ−１ないしＤｉ−６に関する圧縮データＤｃを生成する。圧縮データ生成部２５０は、一致されたデータパターンＤｐが何回繰り返されたのかを識別できる情報を圧縮データとして生成する。具体的には、圧縮データ生成部２５０は、データＤｉ−１〜Ｄｉ−６が圧縮されたことを識別する情報“Comp Yes”２５２と、パターンデータの一致回数または繰り返された回数（上記の例では、６回）を識別する情報２５４と、パターンデータ“Pattern A”を識別する情報２５６とを包む圧縮データＤｃを生成する。圧縮データ生成部２５０は、予め決められたアルゴリズムに従い、識別情報２５０、２５２、２５４の配列、データサイズを決定し、圧縮データＤｃを構成する。
【００３０】
図５（Ａ）は、“Pattern B”が連続して繰り返されない例を示しており、それ故、識別情報２５２は、“Comp No”、一致回数を識別する情報２５４は、“１回”、パターンデータを識別する情報２５６は、“pattern B”となる。また、図５（Ｂ）は、パターンデータＤｐの可変長のときの例であり、この場合にも、固定長のときと同様の圧縮が行われるが、固定長のときよりも大きな圧縮率を期待することができる。
【００３１】
次に、フラッシュメモリからデータが出力されるときの圧縮部１３０の構成および動作を図６に示す。メインメモリ１００から読み出されたページデータは、ページバッファ／センス回路１７０へ転送され、次いで、ＥＣＣ回路１２０によりＥＣＣ処理され、ＥＣＣ処理されたデータが圧縮部１３０に入力される。圧縮部１３０は、図６に示すように、圧縮されたデータＤｃを受け取り、圧縮データＤｃに含まれる識別情報２５２、２５４、２５６を解析する解析部３００と、解析部３００によって解析された識別情報２５６に基づきデータパターンＤｐを保持するデータパターン保持部３１０、解析部３００によって解析された識別情報２５４に基づきデータパターンの一致回数を保持するカウンタ３２０、データパターン保持部３１０に保持されたデータパターンをカウンタ３２０のカウント値の一致回数だけ繰り返すことで元のデータＤｉを伸長するデータ伸長部３３０、データ伸長部３３０がデータパターンを１つ結合するたびにカウンタ３２０のカウント値を−１デクリメントさせ、カウント値が０に到達したか否かを判定する判定部３４０を備えている。判定部３４０によってカウント値＝０と判定されたとき、解析部３００は、次の圧縮データを受け取り、圧縮データの伸長を行う。
【００３２】
次に、圧縮部１３０の伸長動作について図７を参照して説明する。ここでは、図５（Ａ）に示す圧縮が行われたときの伸長を説明する。解析部３００は、図７（Ａ）に示すように、圧縮データＤｃを受け取ると、そこに含まれる識別情報２５２、２５４、２５６を抽出する。解析部３００は、識別情報２５２に基づきデータが圧縮されていると判定すると、識別情報２５４から一致回数を抽出し、識別情報２５６からデータパターンを識別する。次に、解析部３００は、データパターンとして“Pattern A”をデータパターン保持部３１０へ提供し、パターンデータ“Pattern A”の一致回数（この例では６回）をカウンタ３２０へ提供する。次に、データ伸長部３３０は、データパターン保持部３１０からのパターンデータに基づき、データＤｉ−１を生成する。データＤｉ−１が生成されると、判定部３４０は、カウント値が０か否かは判定する。カウント値は０ではないので、カウンタ３２０はカウント値を−１する。この例では、カウンタ３２０のカウント値は５になる。カウンタ３２０がデクリメントされると、データ伸長部３３０はさらにデータパターンに基づきデータＤｉ−２を生成する。同様の処理は、カウンタ３２０のカウント値が１になるまで繰り返される。最終的に、データ伸長部３３０は、データＤｉ−１〜Ｄｉ−６のデータを生成する。
【００３３】
また、同様の処理により次の圧縮データＤｃの伸長が行われ、“Pattern B”のデータＤｉ−７が伸長される。図７（Ｂ）の可変長の伸長例は、図５（Ｂ）の可変長の圧縮例に対応する。
【００３４】
次に、本実施例のフラッシュメモリのデータが入力されるときの処理時間の一例を図８に示す。図８（Ａ）は、本実施例のような圧縮部を持たないフラッシュメモリの例である。例えば、１ページが２ＫＢであり、クロック周波数が１０４ＭＨｚであるとしたとき、外部入出力端子からＥＣＣ回路１２０へデータを入力する時間は、約２０μｓである。また、２ＫＢのデータをＥＣＣ回路１２０で演算する時間と、ＥＣＣ回路からページバッファ／センス回路１７０までの転送する時間およびページバッファ／センス回路１７０から選択されたページへデータを転送する時間の合計は約３０μｓである。従って、外部入出力端子から選択ページに到達するまでの所要時間は、全体で約５０μｓである。
【００３５】
図８（Ｂ）は、本実施例のように外部入出力端子２００または入出力バッファ１１０とＥＣＣ回路１２０との間に直列に圧縮部１３０を設けた場合の例である。圧縮部１３０による遅延時間Ｔｃ＝２７０ｎｓ（約、０．３μｓ）であり、全体の所要時間は、約５０．３μｓである。但し、この例では、圧縮部１３０の圧縮率を無視している。
【００３６】
図８（Ｃ）は、圧縮部１３０の圧縮率を平均で８０％と想定したときの所要時間を示している。圧縮部１３０による圧縮率が８０％であるとき、１ページの２ＫＢのデータは、約１．６ＫＢに圧縮される。従って、ＥＣＣ回路１２０による演算時間は、３０μｓ×０．８＝２４μｓとなり、全体の所要時間を、約４４．３μｓに短縮させることができる。
【００３７】
図９は、フラッシュメモリからデータが出力されるときの処理時間の一例である。図９（Ａ）は、本実施例のように圧縮部を持たないフラッシュメモリの例であり、この場合には、図８（Ａ）のときと同様に、選択ページから外部入出力端子に出力されるまでの所要時間や約５０μｓである。図９（Ｂ）、（Ｃ）は、図８（Ｂ）、（Ｃ）にそれぞれ対応し、圧縮部１３０による圧縮率が８０％であるとき、データが出力されるまでの所要時間を約４４．３μｓまで短縮させることができる。
【００３８】
このように本実施例によれば、入出力されるすべてのビットデータについてＥＣＣ処理をフラッシュメモリにおいて、ＥＣＣ回路１２０と外部入出力端子または入出力バッファ１１０との間に圧縮部１３０を設けることでデータを圧縮するようにしたので、ＥＣＣ回路１２０による演算時間が短縮され、フラッシュメモリへのデータの入出力時間の短縮を図ることができる。さらに、圧縮部１３０による圧縮率を一定以上にすることで、メモリアレイの面積を圧縮率に応じて減少させることが可能になる。
【００３９】
次に、本発明の第２の実施例について説明する。上記実施例では、ＥＣＣ回路１２０は、圧縮されたデータＤｃのＥＣＣ処理を行うものであり、仮に、圧縮率が８０％であれば、ＥＣＣ回路１２０からページバッファ１７０へ転送されるデータは、１ページデータ×０．８である。これに対し、第２の実施例では、ページバッファ１７０へのデータの入出力を１ページ単位で行うものである。
【００４０】
図１０に示すように、圧縮部１３０に入力されたページデータＰ−Ｄｉは、圧縮されたページデータＰ−ＤｃとしてＥＣＣ回路１２０へ出力される。ＥＣＣ回路１３０は、圧縮
されたページデータＰ−ＤｃのＥＣＣ処理を行い、そこで、圧縮率に応じたダミーデータＤＤを付加し、１ページのデータサイズを復元する。この際、ダミーデータＤＤは、すべて“０”かすべて“１”に設定され、より好ましくは、ＥＣＣ回路１２０は、ダミーデータが付加されていることを識別するためのフラグ情報も一緒に追加する。こうして、ＥＣＣ回路１２０からページバッファ／センス回路１７０へ物理的に１ページサイズのデータが転送され、メモリアレイの選択されたページプログラムされる。
【００４１】
一方、メモリアレイの選択されたページから読み出されたデータがページバッファ／センス回路１７０へ転送され、さらにその１ページデータがＥＣＣ回路１３０へ入力される。ＥＣＣ回路１２０は、付加されたフラグ情報を参照し、圧縮されたページデータＰ−ＤｃにダミーデータＤＤが付加されていることを判別する。ＥＣＣ回路１２０は、ダミーデータＤＤをすべて消去し、それ以外の圧縮されたページデータのみをＥＣＣ処理し、ＥＣＣ処理したデータを圧縮部１３０へ提供する。圧縮部１３０は、圧縮されたページデータＰ−Ｄｃを元のページデータＰ−Ｄｉに伸長する。これにより、フラッシュメモリ内部では、圧縮部１３０が存在しないときと同様に、ページ単位でデータの転送制御を行うことができる。
【００４２】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。
【００４３】
上記実施例では、図４、図６に示すような圧縮および伸長の例を示したが、これらは一例であり、本発明は、これに限定されることなく、他の種々のアルゴリズムあるいは構成の圧縮および伸長の手段を用いることができる。さらに上記実施例では、圧縮部は、ＥＣＣ回路と入出力バッファとの間に設けられたが、これに限らず、圧縮部で圧縮されたデータがＥＣＣ回路に入力され、ＥＣＣ回路から出力されたデータが圧縮部で伸長される関係にあれば、圧縮部の配置する位置、または接続関係は特に制限されない。
【符号の説明】
【００４４】
１０：フラッシュメモリ
１００：メモリアレイ
１１０：入出力バッファ
１２０：ＥＣＣ回路
１３０：圧縮部
１４０：アドレスレジスタ
１５０：制御部
１６０：ワード線選択回路
１７０：ページバッファ／センス回路
１８０：列選択回路
１９０：内部電圧発生正回路
２１０：データパターン発生部
２２０：比較部
２３０：判定部
２４０：カウンタ
２５０：圧縮データ生成部
２５２、２５４、２５６：識別情報
３００：解析部
３１０：データパターン保持部
３２０：データ伸長部
３３０：カウンタ
３４０：判定部
【図１】
0005855150.tif 000002
【図２】
0005855150.tif 000003
【図３】
0005855150.tif 000004
【図４】
0005855150.tif 000005
【図５】
0005855150.tif 000006
【図６】
0005855150.tif 000007
【図７】
0005855150.tif 000008
【図８】
0005855150.tif 000009
【図９】
0005855150.tif 000010
【図１０】
0005855150.tif 000011