(57)【要約】【課題】トリムデータなどの調整用データやプログラムコードを、従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶することができ、しかも上記調整用データ等を簡単な方法で展開して取り出すことができる。【解決手段】複数のメモリセルにてなり、本体メモリセルと補助メモリセルとを含む不揮発性のメモリセルアレイと、上記メモリセルアレイへのデータの書き込み及び上記メモリセルアレイからのデータの読み出しを制御する制御回路とを備えた不揮発性半導体記憶装置において、上記制御回路は、所定の圧縮方法により圧縮されたデータを外部装置から入力して上記補助メモリセルに格納した後、所定のタイミングにおいて上記圧縮されたデータを上記補助メモリセルから読み出して上記圧縮方法に対応する展開方法により展開して揮発性メモリに格納する。【選択図】図１
2010040057.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルにてなり、本体メモリセルと補助メモリセルとを含む不揮発性のメモリセルアレイと、上記メモリセルアレイへのデータの書き込み及び上記メモリセルアレイからのデータの読み出しを制御する制御回路とを備えた不揮発性半導体記憶装置において、
上記制御回路は、所定の圧縮方法により圧縮されたデータを外部装置から入力して上記補助メモリセルに格納した後、所定のタイミングにおいて上記圧縮されたデータを上記補助メモリセルから読み出して上記圧縮方法に対応する展開方法により展開して揮発性メモリに格納することを特徴とする不揮発性半導体記憶装置。
【請求項２】
上記圧縮されたデータは、所定のビット幅を有する「パターンデータ」とその繰り返し回数を表す「カウント値」とから構成され、上記制御回路は、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
上記データは、
（ａ）上記不揮発性半導体記憶装置により実行されるプログラムコードと、
（ｂ）上記不揮発性半導体記憶装置において用いられる設定データと、
（ｃ）ユーザデータと
のうちの少なくとも１つであり、
上記制御回路は、電源オン時又はユーザの所望時に上記圧縮されたデータを上記補助メモリセルから読み出して上記展開方法により展開して揮発性メモリに格納した後、上記展開されたプログラムコードを実行し、上記展開された設定データを用いて動作させ、又は上記展開されたユーザデータを出力させることを特徴とする請求項１又は２記載の不揮発性半導体記憶装置。
【請求項４】
上記補助メモリセルは、上記不揮発性のメモリセルアレイ内の領域に代えて、上記不揮発性のメモリセルアレイ以外の領域に設けられたことを特徴とする請求項１乃至３のうちのいずれか１つに記載の不揮発性半導体記憶装置。
【請求項５】
複数のメモリセルにてなり、本体メモリセルと補助メモリセルとを含む不揮発性のメモリセルアレイと、上記メモリセルアレイへのデータの書き込み及び上記メモリセルアレイからのデータの読み出しを制御する不揮発性半導体記憶装置の制御方法において、
所定の圧縮方法により圧縮されたデータを外部装置から入力して上記補助メモリセルに格納した後、所定のタイミングにおいて上記圧縮されたデータを上記補助メモリセルから読み出して上記圧縮方法に対応する展開方法により展開して揮発性メモリに格納する制御ステップを含むことを特徴とする不揮発性半導体記憶装置の制御方法。
【請求項６】
上記圧縮されたデータは、所定のビット幅を有する「パターンデータ」とその繰り返し回数を表す「カウント値」とから構成され、上記制御ステップは、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開することを含むことを特徴とする請求項５記載の不揮発性半導体記憶装置の制御方法。
【請求項７】
上記データは、
（ａ）上記不揮発性半導体記憶装置により実行されるプログラムコードと、
（ｂ）上記不揮発性半導体記憶装置において用いられる設定データと、
（ｃ）ユーザデータと
のうちの少なくとも１つであり、
上記制御ステップは、電源オン時又はユーザの所望時に上記圧縮されたデータを上記補助メモリセルから読み出して上記展開方法により展開して揮発性メモリに格納した後、上記展開されたプログラムコードを実行し、上記展開された設定データを用いて動作させ、又は上記展開されたユーザデータを出力させることを含むことを特徴とする請求項５又は６記載の不揮発性半導体記憶装置の制御方法。
【請求項８】
上記補助メモリセルは、上記不揮発性のメモリセルアレイ内の領域に代えて、上記不揮発性のメモリセルアレイ以外の領域に設けられたことを特徴とする請求項５乃至７のうちのいずれか１つに記載の不揮発性半導体記憶装置の制御方法。
【請求項９】
圧縮すべきデータから所定のビット幅を有する「パターンデータ」とその繰り返し回数を検出して、上記「パターンデータ」とその「カウント値」とから構成される圧縮されたデータを圧縮されたデータとして出力する制御回路を備えたことを特徴とするデータ圧縮回路。
【請求項１０】
上記制御回路は、上記圧縮されたデータを記憶装置に書き込む手段をさらに備えたことを特徴とする請求項９記載のデータ圧縮回路。
【請求項１１】
所定のビット幅を有する「パターンデータ」とその繰り返し回数を表す圧縮されたデータに基づいて、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開して出力する制御回路を備えたことを特徴とするデータ展開回路。
【請求項１２】
上記圧縮されたデータは記憶装置に書き込まれ、
上記制御回路は、
上記記憶装置から上記圧縮されたデータを読み出す手段と、
上記圧縮されたデータを展開したデータを外部装置に読み出す手段とをさらに備えたことを特徴とする請求項１１記載のデータ展開回路。
【請求項１３】
圧縮すべきデータから所定のビット幅を有する「パターンデータ」とその繰り返し回数を検出して、上記「パターンデータ」とその「カウント値」とから構成される圧縮されたデータを圧縮されたデータとして記憶装置に書き込んだ後、上記圧縮されたデータを上記記憶装置から読み出し、上記読み出した圧縮されたデータに基づいて、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開して外部装置に読み出す制御回路を備えたことを特徴とするデータ圧縮展開回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばフラッシュメモリなどの電気的書き換え可能な不揮発性半導体記憶装置（ＥＥＰＲＯＭ）とその制御方法、データ圧縮回路、データ展開回路、並びにデータ圧縮展開回路に関する。
【背景技術】
【０００２】
ビット線とソース線との間に複数のメモリセルトランジスタ（以下、メモリセルという）を直列に接続してＮＡＮＤメモリストリングを構成し、高集積化を実現したＮＡＮＤ型不揮発性半導体記憶装置が知られている（例えば、非特許文献１−５参照。）。当該ＮＡＮＤ型不揮発性半導体記憶装置は、今日では、低電圧駆動による低消費電力、不揮発性、大容量、高速性の特徴を生かして種々の機器において使用されている。
【０００３】
しかしながら、テクノロジーの発展に伴って、不揮発性半導体記憶装置のＩＣチップにおいて様々な電源オプションやタイミングの調整が必要となり、いわゆるトリムデータと呼ばれる調整用データのデータ量が膨大になりつつある。
【０００４】
【特許文献１】特開平９−１４７５８２号公報。
【特許文献２】特開２０００−２８５６９２号公報。
【特許文献３】特開２００３−３４６４８５号公報。
【特許文献４】特開２００１−０２８５７５号公報。
【特許文献５】特開２００１−３２５７９６号公報。
【特許文献６】特開２００６−０９９９１２号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そのため、当該調整用データの格納領域の増大、さらには、電源オン時に当該調整用データを読み出すときの必要時間も増大しているという問題点があった。
【０００６】
上記問題点を解決するために、例えば、特許文献６において、例えばヒューズデータなどのリダンダンシ情報をデータ圧縮することが開示されているが、あらゆるデータパターンを圧縮しデータサイズを物理的に小さくするものと異なり、リダンダンシ情報はリダンダンシ保存領域の未使用領域をスキップ（無視）するための判別に用いられ、物理的にデータ保存領域もしくはデータ容量を「圧縮」しておらず、メモリ領域を減少させることはできない。
【０００７】
本発明の第１の目的は以上の問題点を解決し、いわゆるトリムデータなどの調整用データやプログラムコードを、従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶することができ、しかも上記圧縮した調整用データ等を簡単な方法で展開して取り出すことができる不揮発性半導体記憶装置とその制御方法を提供することにある。
【０００８】
また、本発明の第２の目的は以上の問題点を解決し、所定のデータを従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶することができるデータ圧縮回路を提供することにある。
【０００９】
さらに、本発明の第３の発明は以上の問題点を解決し、上記圧縮したデータを簡単な方法で展開して取り出すことができるデータ展開回路を提供することにある。
【００１０】
またさらに、本発明の第４の目的は以上の問題点を解決し、所定のデータを従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶した後、上記圧縮したデータを読み出し、簡単な方法で展開して取り出すことができるデータ圧縮展開回路を提供することにある。
【課題を解決するための手段】
【００１１】
第１の発明に係る不揮発性半導体記憶装置は、複数のメモリセルにてなり、本体メモリセルと補助メモリセルとを含む不揮発性のメモリセルアレイと、上記メモリセルアレイへのデータの書き込み及び上記メモリセルアレイからのデータの読み出しを制御する制御回路とを備えた不揮発性半導体記憶装置において、
上記制御回路は、所定の圧縮方法により圧縮されたデータを外部装置から入力して上記補助メモリセルに格納した後、所定のタイミングにおいて上記圧縮されたデータを上記補助メモリセルから読み出して上記圧縮方法に対応する展開方法により展開して揮発性メモリに格納することを特徴とする。
【００１２】
上記不揮発性半導体記憶装置において、上記圧縮されたデータは、所定のビット幅を有する「パターンデータ」とその繰り返し回数を表す「カウント値」とから構成され、上記制御回路は、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開することを特徴とする。
【００１３】
また、上記不揮発性半導体記憶装置において、上記データは、
（ａ）上記不揮発性半導体記憶装置により実行されるプログラムコードと、
（ｂ）上記不揮発性半導体記憶装置において用いられる設定データと、
（ｃ）ユーザデータと
のうちの少なくとも１つであり、
上記制御回路は、電源オン時又はユーザの所望時に上記圧縮されたデータを上記補助メモリセルから読み出して上記展開方法により展開して揮発性メモリに格納した後、上記展開されたプログラムコードを実行し、上記展開された設定データを用いて動作させ、又は上記展開されたユーザデータを出力させることを特徴とする。
【００１４】
さらに、上記不揮発性半導体記憶装置において、上記補助メモリセルは、上記不揮発性のメモリセルアレイ内の領域に代えて、上記不揮発性のメモリセルアレイ以外の領域に設けられたことを特徴とする。
【００１５】
第２の発明に係る不揮発性半導体記憶装置の制御方法は、複数のメモリセルにてなり、本体メモリセルと補助メモリセルとを含む不揮発性のメモリセルアレイと、上記メモリセルアレイへのデータの書き込み及び上記メモリセルアレイからのデータの読み出しを制御する不揮発性半導体記憶装置の制御方法において、
所定の圧縮方法により圧縮されたデータを外部装置から入力して上記補助メモリセルに格納した後、所定のタイミングにおいて上記圧縮されたデータを上記補助メモリセルから読み出して上記圧縮方法に対応する展開方法により展開して揮発性メモリに格納する制御ステップを含むことを特徴とする。
【００１６】
上記不揮発性半導体記憶装置の制御方法において、上記圧縮されたデータは、所定のビット幅を有する「パターンデータ」とその繰り返し回数を表す「カウント値」とから構成され、上記制御ステップは、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開することを含むことを特徴とする。
【００１７】
また、上記不揮発性半導体記憶装置の制御方法において、上記データは、
（ａ）上記不揮発性半導体記憶装置により実行されるプログラムコードと、
（ｂ）上記不揮発性半導体記憶装置において用いられる設定データと、
（ｃ）ユーザデータと
のうちの少なくとも１つであり、
上記制御ステップは、電源オン時又はユーザの所望時に上記圧縮されたデータを上記補助メモリセルから読み出して上記展開方法により展開して揮発性メモリに格納した後、上記展開されたプログラムコードを実行し、上記展開された設定データを用いて動作させ、又は上記展開されたユーザデータを出力させることを含むことを特徴とする。
【００１８】
さらに、上記不揮発性半導体記憶装置の制御方法において、上記補助メモリセルは、上記不揮発性のメモリセルアレイ内の領域に代えて、上記不揮発性のメモリセルアレイ以外の領域に設けられたことを特徴とする。
【００１９】
第３の発明に係るデータ圧縮回路は、圧縮すべきデータから所定のビット幅を有する「パターンデータ」とその繰り返し回数を検出して、上記「パターンデータ」とその「カウント値」とから構成される圧縮されたデータを圧縮されたデータとして出力する制御回路を備えたことを特徴とする。
【００２０】
上記データ圧縮回路において、上記制御回路は、上記圧縮されたデータを記憶装置に書き込む手段をさらに備えたことを特徴とする。
【００２１】
第４の発明に係るデータ展開回路は、所定のビット幅を有する「パターンデータ」とその繰り返し回数を表す圧縮されたデータに基づいて、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開して出力する制御回路を備えたことを特徴とする。
【００２２】
上記データ展開回路において、上記圧縮されたデータは記憶装置に書き込まれ、
上記制御回路は、
上記記憶装置から上記圧縮されたデータを読み出す手段と、
上記圧縮されたデータを展開したデータを外部装置に読み出す手段とをさらに備えたことを特徴とする。
【００２３】
第５の発明に係るデータ圧縮展開回路は、圧縮すべきデータから所定のビット幅を有する「パターンデータ」とその繰り返し回数を検出して、上記「パターンデータ」とその「カウント値」とから構成される圧縮されたデータを圧縮されたデータとして記憶装置に書き込んだ後、上記圧縮されたデータを上記記憶装置から読み出し、上記読み出した圧縮されたデータに基づいて、上記「パターンデータ」を上記「カウント値」だけ書き出すことにより上記圧縮されたデータを展開して外部装置に読み出す制御回路を備えたことを特徴とする。
【発明の効果】
【００２４】
従って、本発明に係る不揮発性半導体記憶装置とその制御方法によれば、いわゆるトリムデータなどの調整用データやプログラムコードを、従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶することができ、しかも上記圧縮した調整用データ等を簡単な方法で展開して取り出すことができる。
【００２５】
また、本発明に係るデータ圧縮回路によれば、所定のデータを従来技術に比較してデータ量を大幅に圧縮して出力することができる。
【００２６】
さらに、本発明に係るデータ展開回路によれば、上記圧縮したデータ等を従来技術に比較して簡単な方法で展開して取り出すことができる。
【００２７】
またさらに、本発明に係るデータ圧縮展開回路によれば、所定のデータを従来技術に比較してデータ量を大幅に圧縮して出力することができ、しかも上記圧縮したデータ等を従来技術に比較して簡単な方法で展開して取り出すことができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００２９】
図１は本発明の一実施形態に係るＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００の全体構成を示すブロック図である。また、図２は図１のメモリセルアレイ１０とその周辺回路の構成を示す回路図である。まず、本実施形態に係るＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００の構成について以下に説明する。
【００３０】
図１において、本実施形態に係るＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００は、１個のＩＣチップにより構成され、本体メモリセル１０Ａ及び補助メモリセル１０Ｂを含むメモリセルアレイ１０と、その動作を制御する制御回路（ＣＰＵ）１１と、ロウデコーダ１２と、高電圧発生回路１３と、データ書き換え及び読み出し回路１４と、カラムデコーダ１５と、コマンドレジスタ１７と、アドレスレジスタ１８と、動作ロジックコントローラ１９と、データ入出力バッファ５０と、データ入出力端子５１とを備えて構成される。また、フラッシュＥＥＰＲＯＭ１００は、テスタ装置６０を接続するためのテスト端子６１と、テスト端子６１を介してデータを入出力することを制御するデータ入出力コントローラ２１と、データ入出力コントローラ２１に接続された内部データバス２０と、内部データバス２０に接続されたデータバスコントローラ３０と、内部ＳＲＡＭ４０とをさらに備える。ここで、データバスコントローラ３０は、データアクセスコントローラ３１と、コーデック３２とを備えて構成され、内部ＳＲＡＭ４０はコードメモリ４１と、レジスタメモリ４２とを備えて構成される。本実施形態に係るＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００は特に、データバスコントローラ３０と、内部ＳＲＡＭ４０とを備えたことを特徴としている。
【００３１】
メモリセルアレイ１０は、図２に示すように、例えば１６個のスタックト・ゲート構造の電気的書き換え可能な不揮発性メモリセルＭＣ０〜ＭＣ１５を直列接続してＮＡＮＤセルユニットＮＵ（ＮＵ０，ＮＵ１， …）が構成される。各ＮＡＮＤセルユニットＮＵは、ドレイン側が選択ゲートトランジスタＳＧ１を介してビット線ＢＬに接続され、ソース側が選択ゲートトランジスタＳＧ２を介して共通ソース線ＣＥＬＳＲＣに接続される。ロウ方向に並ぶメモリセルＭＣの制御ゲートは共通にワード線ＷＬに接続され、選択ゲートトランジスタＳＧ１，ＳＧ２のゲート電極はワード線ＷＬと平行して配設される選択ゲート線ＳＧＤ，ＳＧＳに接続される。１本のワード線ＷＬにより選択されるメモリセルの範囲が書き込み及び読み出しの単位となる１ページである。１ページ又はその整数倍の範囲の複数のＮＡＮＤセルユニットＮＵの範囲がデータ消去の単位である１ブロックとなる。書き換え及び読み出し回路１４は、ページ単位のデータ書き込み及び読み出しを行うために、ビット線毎に設けられたセンスアンプ回路（ＳＡ）及びラッチ回路（ＤＬ）を含み、以下、ページバッファという。
【００３２】
図２のメモリセルアレイ１０は、簡略化した構成を有し、複数のビット線でページバッファを共有してもよい。この場合は、データ書き込み又は読み出し動作時にページバッファに選択的に接続されるビット線数が１ページの単位となる。また、図２は、１個の入出力端子５２との間でデータの入出力が行われるセルアレイの範囲を示している。メモリセルアレイ１０のワード線ＷＬ及びビット線ＢＬの選択を行うために、それぞれロウデコーダ１２及びカラムデコーダ１５が設けられている。制御回路１１は、データ書き込み、消去及び読み出しのシーケンス制御を行う。制御回路１１により制御される高電圧発生回路１３は、データ書き換え、消去、読み出しに用いられる昇圧された高電圧や中間電圧を発生する。
【００３３】
入出力バッファ５０は、データの入出力及びアドレス信号の入力に用いられる。すなわち、入出力バッファ５０及びデータ線５２を介して、入出力端子５１とページバッファ１４の間でデータの転送が行われる。入出力端子５２から入力されるアドレス信号は、アドレスレジスタ１８に保持され、ロウデコーダ１２及びカラムデコーダ１５に送られてデコードされる。入出力端子５２からは動作制御のコマンドも入力される。入力されたコマンドはデコードされてコマンドレジスタ１７に保持され、これにより制御回路１１が制御される。チップイネーブル信号ＣＥＢ、コマンドラッチイネーブルＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、書き込みイネーブル信号ＷＥＢ、読み出しイネーブル信号ＲＥＢ等の外部制御信号は動作ロジックコントロール回路１９に取り込まれ、動作モードに応じて内部制御信号が発生される。内部制御信号は、入出力バッファ５０でのデータラッチ、転送等の制御に用いられ、さらに制御回路１１に送られて、動作制御が行われる。
【００３４】
ページバッファ１４は、２個のラッチ回路１４ａ，１４ｂを備え、多値動作の機能とキャッシュの機能を切り換えて実行できるように構成されている。すなわち、１つのメモリセルに１ビットの２値データを記憶する場合に、キャッシュ機能を備え、１つのメモリセルに２ビットの４値データを記憶する場合には、キャッシュ機能とするか、又はアドレスによって制限されるがキャッシュ機能を有効とすることができる。
【００３５】
なお、図１及び図２において、メモリセルアレイ１０へのデータの書き込み、消去の基本動作は例えば非特許文献４−５において開示されており周知技術であり、詳細説明を省略する。
【００３６】
次いで、本実施形態に係るＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００の特徴であるデータバスコントローラ３０及び内部ＳＲＡＭ４０の構成及び動作について以下に説明する。
【００３７】
図１において、当該ＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００の製造出荷直前のテスト中において、テスト端子６１にテスタ装置６０が接続され、テスタ装置６０は、当該ＥＥＰＲＯＭ１００の調整用データ及びプログラムコードをテスト端子６１を介して補助メモリセル１０Ｂに書き込むときに、データ入出力コントローラ２１を用いて圧縮されたデータの形式で書き込むとともに、電源オン時の読み出し時に、データバスコントローラ３０及び内部ＳＲＡＭ４０を用いて圧縮されたデータを展開して読み出して実行等することを特徴としている。
【００３８】
内部データバス２０はページバッファ１４を介して補助メモリセル１０Ｂに接続され、内部データバス２０にはデータバスコントローラ３０及び内部ＳＲＡＭ４０が接続される。ここで、データバスコントローラ３０はデータアクセスコントローラ３１とコーデック３２とを備えて構成され、内部ＳＲＡＭ４０はコードメモリ４１とレジスタメモリ４２とを備えて構成される。
【００３９】
テスト中に書き込まれる、いわゆるトリムデータと呼ばれる調整用データ及びプログラムコード（以下、調整用データ等という。）をテスタ装置６０によりオンチップの所定の圧縮展開方法（詳細後述する新規な方法であり、展開方法は圧縮方法に対応する。）を用いて圧縮された後、データ入出力コントローラ２１の制御によりテスト端子６１から内部データバス２０を介して補助メモリセル１０Ｂに書き込まれる。そのためテストの調整用データの転送時間が短縮される。調整用データ及びプログラムコードを補助メモリセル１０Ｂから読み出すときは、データアクセスコントローラ３１が補助メモリセル１０Ｂの先頭アドレスからデータバス幅に従って順番に読み出しを行うように制御する。コーデック３２は調整用データ等を順に展開して内部ＳＲＡＭ４０内のレジスタメモリ４２及びコードメモリ４１に格納する。また、コーデック３２が展開したデータを内部ＳＲＡＭ４０に転送している間はデータアクセスコントローラ３１からの調整用データ等の転送を制御する。
【００４０】
ここで、調整用データ等とは以下のデータを含む。
【００４１】
（Ａ）調整用データ（トリムデータ又は設定データ）：チップオペレーションで使用される各種設定値をいう。
（ａ）電圧基準電圧設定値；
（ｂ）プログラム時のゲート電圧設定値；
（ｃ）消去時のゲート電圧設定値；
（ｄ）リード時のゲート電圧設定値；
（ｅ）ベリファイ時のゲート電圧設定値；
（ｆ）プログラム時のドレイン電圧設定値；
（ｇ）消去時のドレイン電圧設定値；
（ｈ）リード時のドレイン電圧設定値；
（ｉ）ベリファイ時のドレイン電圧設定値；
（ｊ）プログラム時のソース電圧設定値；
（ｋ）消去時のソース電圧設定値；
（ｌ）リード時のソース電圧設定値；
（ｍ）ベリファイ時のソース電圧設定値；
（ｎ）プログラム時の待機期間設定値；
（ｏ）消去時の待機期間設定値；
（ｐ）リード時の待機期間設定値；
（ｑ）ベリファイ時の待機期間設定値；
（ｒ）プログラム時のストレス期間設定値；
（ｓ）消去時のストレス期間設定値；
（ｔ）リード時のセンスレベル設定値；
（ｕ）ベリファイ時のセンスレベル設定値；
（ｖ）発振器周期設定値；
（ｗ）電源オン時の検出電圧設定値；
（ｘ）ロックアウト電圧設定値；
（ｙ）テストデータパターン設定値；
（ｚ）プログラム時の繰り返し回数設定値；
（ａａ）消去時の繰り返し回数設定値；
（ａｂ）テストモードの実行設定項目。
（Ｂ）プログラムコード：当該ＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００内に設けられたＣＰＵが実行するソースコードをいう。ＣＰＵはこれを読み込み記述されている命令に従って、各種動作を行う。
【００４２】
図３は図１のテスタ装置６０により圧縮されコーデック３２により展開される圧縮展開方法を示すビットパターンを示す図である。調整用データ等の圧縮展開方法として、非常に簡単な論理を有する新規なＬＺ法を使用する。当該ＬＺ法では、所定のビット幅を有する同一の「パターンデータ」が１個以上あるときに、その「パターンデータ」とその繰り返し数をＣＰＵ又はＤＳＰ（デジタルシグナルプロセッサ）などの制御回路を用いて検出し、その「パターンデータ」とその繰り返し数とにより構成されるデータを圧縮されたデータとして出力することによりデータ圧縮を行う。
【００４３】
これに対して、展開処理では、上記圧縮されたデータ（「パターンデータ」とその「カウント値」とにより表された）に基づいて「パターンデータ」をその「カウント値」だけ書き出すことで展開する。ここで、当該ＬＺ法を用いた場合の圧縮・展開効率は、圧縮・展開単位を８ビット（＝内部データバス２０のビット幅）の場合、図３に示すように、８ビットを、４ビットのデータパターンと、４ビットカウント値（計数値）とに分ける。この場合において、４ビット幅で１６個の繰り返しパターンを判別し、最大１６回繰り返しデータを生成できる。これにより、理論上の最大圧縮効果は１／８まで圧縮できる。パターン及びカウント値（ビット幅）を変えることができるので、例えば調整用データ等に「００」データが多い場合は、カウント値の幅を大きくとれば圧縮効果が飛躍的に上がる場合もある。
【００４４】
展開方法は、圧縮・展開単位（本実施形態では８ビット）のデータを読み込んだときに、ビット［７：４］と同じデータをビット［３：０］の回数分生成する方法を用いて行う。４ビットのデータパターンの検出のために１００ゲートと、繰り返し回数のカウントに１００ゲートと、データアクセスコントローラに５０ゲート程度の論理素子を使用する。
【００４５】
例えば電源オン時に（又はユーザの命令実行等の所望時に）、圧縮されたプログラムコードについては、データアクセスコントローラ３１が補助メモリセル１０Ｂから読み出して、コーデック３２が上記展開方法により展開して、ＣＰＵのプログラムコード用のコードメモリ４１（キャッシュメモリ）に格納した後、ＣＰＵが当該プログラムコードを実行することになる。また、例えば電源オン時に、圧縮されたトリムデータについては、データアクセスコントローラ３１が補助メモリセル１０Ｂから読み出して、コーデック３２が上記展開方法により展開して、トリムデータ用のレジスタメモリ４２に格納した後、当該ＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００が動作するときの設定データとして用いられ、もしくは、ＣＰＵが当該プログラムコードを実行するときの設定データとして用いられる。本実施形態では、膨大な量のデータを少ない補助メモリセル１０Ｂに格納することができるため、ＣＰＵのプログラムコードを格納し、柔軟に内部動作を変更することを実現したり、必要な情報を早いうちに展開して、内部データバス２０を開放し、あとから残りの情報を展開・格納することも可能になる。
【００４６】
なお、ユーザが、ユーザの所望時に、コーデック３２と同一アルゴリズムで圧縮したデータを書き込み、読み出し時にオンチップコーデックを使用してデータを展開して出力することも可能である。その際、ユーザは読み出し時に展開作業が不要となり、書き込み時間の短縮と容量の節約となる。具体的には、図１において、コードメモリ４１に展開されたプログラムコード（このデータは、プログラムコードに限らず、ユーザが使用する画像データ、音声データ、ＡＶデータなどの各種ユーザデータであってもよい。）はデータ入出力コントローラ２１によりテスト端子６１を介して外部装置に読み出すことができる。
【００４７】
図４は図１のテスタ装置６０により実行される書き込み処理を示すフローチャートである。図４において、まず、ステップＳ１において書き込むべき調整用データ等を所定の圧縮アルゴリズム（上述のＬＺ法）で圧縮し、ステップＳ２において圧縮した調整用データ等を所定の単位でテスト端子６１及びデータ入出力コントローラ２１を介してメモリセルアレイ１０内の補助メモリセル１０Ｂに書き込む。次いで、ステップＳ３において、書き込んだ調整用データ等を読み出し、当該調整用データ等と書き込むべき調整用データ等とを照合し、ステップＳ４において一致するか否かについて判断し、ＹＥＳのときはステップＳ６に進む一方、ＮＯのときはステップＳ５に進む。Ｓ５において再度上記圧縮された調整用データ等を補助メモリセル１０Ｂに書き込み、ステップＳ３に戻る。一方、ステップＳ６では、すべての書き込むべきトリムデータについて処理したか否かが判断され、ＹＥＳのときは当該処理を終了する一方、ＮＯのときはステップＳ２に戻る。
【００４８】
図５は図１のデータバスコントローラ３０により実行される調整用データ等の展開処理を示すフローチャートである。図５において、まず、ステップＳ１１において補助メモリセル１０ＢのアドレスＡＤＤを０（開始アドレス）にリセットし、ステップＳ１２において補助メモリセル１０Ｂ内のアドレスＡＤＤにおけるトリムデータを読み出す。次いで、ステップＳ１３において読み出した調整用データ等の復号化するデータパターンを判別し、ステップＳ１４において、判別したデータパターンの繰り返し回数を判別する。そして、ステップＳ１５において判別したデータパターン及び繰り返し回数をコーデック３２にセットする。ステップＳ１６において、コーデック３２は、上記判別したデータパターンを１回レジスタメモリ４２に書き出し、ステップＳ１７上記繰り返し回数だけ書き出したか否かが判断され、ＹＥＳのときはステップＳ１８に進む一方、ＮＯのときはステップＳ１６に戻る。さらに、ステップＳ１８においてアドレスＡＤＤは最終アドレスか否かが判断され、ＹＥＳのときは当該処理を終了する一方、ＮＯのときはステップＳ１９に進む。ステップＳ１９では、アドレスＡＤＤを１だけインクリメントした後、ステップＳ１２に戻る。
【００４９】
図６は図１のデータアクセスコントローラ３１とコーデック３２とその周辺回路の詳細構成を示すブロック図である。図７は図６のデータアクセスコントローラ３１の詳細構成を示す回路図であり、図８は図６のコーデック出力部３２Ａの詳細構成を示す回路図であり、図９は図６のコーデック入力部３２Ｂの詳細構成を示す回路図である。さらに、図１０は図６乃至図９の回路の動作を示すタイミングチャートである。
【００５０】
図６の回路は、データアクセスコントローラ３１と、コーデック出力部３２Ａと、コーデック入力部３２Ｂと、Ｙカウンタ２２と、Ｙパス回路２３と、コードメモリ４１ａ，４１ｂと、レジスタメモリ４２ａ，４２ｂとを備えて構成される。ここで、コーデック出力部３２Ａは、ラッチＤＬ０〜ＤＬ３と、バッファアンプＢＡ０〜ＢＡ３とを備えて構成され、コーデック入力部３２Ｂは、ラッチＬ００〜Ｌ０４と、ロジック回路３３とを備えて構成される。内部データバス２０には、Ｙパス回路２３と、ラッチＬ００〜Ｌ０４と、ラッチＤＬ０〜ＤＬ３とが接続され、ライトデータバス３５にはバッファアンプＢＡ０〜ＢＡ３が接続される。
【００５１】
データアクセスコントローラ３１はロジック回路３１ａ及びサイクルカウンタ３１ｃを含み構成され、クロックＣＬＫ、調整用データ等の読み出し指示信号ＦｕｓｅＲｅａｄ及びコーデック入力部３２Ｂからの一致信号ｍａｔｃｈに基づいて、データパターンの入力タイミングを示すデータイン信号ＤａｔａＩｎと、カウント値の入力タイミングを示すサイクルイン信号ＣｙｃＩｎと、上記カウント値に対応する期間だけ待機するための内部バス待機信号ＩｎＢｕｓＷａｉｔと、ライトデータバス３５を介してデータを書き込むタイミングを示す出力バス待機信号ＯｕｔＢｕｓＷａｉｔとを発生する。ここで、サイクルイン信号ＣｙｃＩｎはロジック回路３３に入力される。内部バス待機信号ＩｎＢｕｓＷａｉｔはロジック回路３３に入力されるとともに、Ｙカウンタ２２に入力されてクロックＣＬＫに基づいて計数されることにより、カラムアドレスを発生しＹパス回路２３に入力され、Ｙパス回路２３により内部データバス２０を介してカラムアドレスが指定される。また、内部データバス２０上のカウントのデータ（４ビット）は読み出し指示信号ＦｕｓｅＲｅａｄ及びクロックＣＬＫに基づいてコーデック入力部３２ＢのラッチＬ００〜Ｌ０４により一時的に記憶された後、ロジック回路３３に出力されて、サイクルカウンタ３１ｃからの内部バス待機信号ＩｎＢｕｓＷａｉｔとともに所定の論理演算を行って一致信号ｍａｔｃｈを発生してデータアクセスコントローラ３１に出力する。さらに、内部データバス２０上のデータパターンのデータ（４ビット）は読み出し指示信号ＦｕｓｅＲｅａｄ及びクロックＣＬＫに基づいてコーデック３２ＡのラッチＤＬ０〜ＤＬ３により一時的に格納された後、上記出力バス待機信号ＯｕｔＢｕｓＷａｉｔに基づいてバッファアンプＢＡ０〜ＢＡ３を介して、さらにはライトデータバス３５を介してコードメモリ４１，４１ｂ及びレジスタメモリ４２ａ，４２ｂのいずれかに書き込まれる。
【００５２】
図７において、データアクセスコントローラ３１は、９個のインバータＩＶ１１〜ＩＶ１５，ＩＶ２１〜ＩＶ２４と、４個のノアゲートＮＯＲ５〜ＮＯＲ８と、２個のナンドゲートＮＡＮＤ２１〜ＮＡＮＤ２２と、４個のラッチＬ３０〜Ｌ３２，Ｌ４０とを備えて構成される。ここで、ラッチＬ４０とノアゲートＮＯＲ５により調整用データ等を最初に読み出すときのタイミングを示すタイミング信号ｉＦＲ１ｓｔを発生してコーデック入力部３２Ｂに出力する。また、ラッチＬ３０，Ｌ３１，Ｌ３２からそれぞれ、データイン信号ＤａｔａＩｎ、サイクルイン信号ＣｙｃＩｎ及び内部バス待機信号ＩｎＢｕｓＷａｉｔが出力される。
【００５３】
図８において、コーデック出力部３２Ａは、１個のナンドゲートＮＡＮＤ４と、７個のインバータＩＮＶ０〜ＩＮＶ６と、４個のラッチＤＬ０〜ＤＬ３と、４個のバッファアンプＢＡ０〜ＢＡ３とを備えて構成される。図８から明らかなように、書き込むデータは４個のラッチＤＬ０〜ＤＬ３で一時的に格納された後、出力バス待機信号ＯｕｔＢｕｓＷａｉｔのタイミングでバッファアンプＢＡ０〜ＢＡ３からライトデータバス３３に出力される。
【００５４】
図９において、コーデック入力部３２Ｂは、１２個のインバータＩＶ０〜ＩＶ３，ＩＶ３１〜ＩＶ３３，ＩＶ４１〜ＩＶ４５と、６個のノアゲートＮＯＲ０〜ＮＯＲ４，ＮＯＲ１１と、１１個のナンドゲートＮＡＮＤ０〜ＮＡＮＤ３，ＮＡＮＤ１１〜ＮＡＮＤ１３，ＣＭＰ０〜ＣＭＰ３と、９個のラッチＬ００〜Ｌ０３，Ｌ１０〜Ｌ１３，Ｌ２０とを備えて構成される。図９から明らかなように、内部データバス２０からのカウント値のデータ（４ビット）はラッチＬ００〜Ｌ０３によりラッチされ、各５個の論理素子により所定のタイミング信号と所定の論理演算がなされた後、カウント値の比較結果データ（４ビット）ＣｙｃＣｍｐ＜０＞〜ＣｙｃＣｍｐ＜３＞を得て、その後、内部バス待機信号ＩｎＢｕｓＷａｉｔ等との所定の論理演算により一致信号ｍａｔｃｈを発生し、当該一致信号ｍａｔｃｈがデータアクセスコントローラ３１内のロジック回路３１ａに出力される。
【００５５】
図１０の動作タイミングチャートから明らかなように、読み出し開始信号ＦｕｓｅＲｅａｄの立ち上がりにより調整用データ等の展開処理が開始され、データイン信号ＤａｔａＩｎの指定タイミングでバス２０上のデータを「パターンデータ」として取り込み、サイクルイン信号ＣｙｃｌＩｎの指定タイミングでバス２０上のデータを「カウント値」として取り込み、その後、内部バス待機信号ＩｎＢｕｓＷａｉｔをオンにする。ここで、サイクルイン信号ＣｙｃｌＩｎの指定タイミング以降、上記取り込んだ「パターンデータ」が指定「カウント値」だけライトデータバス３５に出力されることにより、圧縮されたデータが展開されてゆくことがわかる。図１０の例では、
（１）パターンデータ「Ｆｈ」が６個出力されて展開出力され、
（２）パターンデータ「Ａｈ」が１個出力されて展開出力され、
（３）パターンデータ「５ｈ」が５個出力されて展開出力され、
（４）パターンデータ「０ｈ」が５個出力されて展開出力されている。
【００５６】
以上説明したように、本実施形態によれば、いわゆるトリムデータなどの調整用データやプログラムコードを、従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶することができ、しかも上記調整用データ等を簡単な方法で展開して取り出すことができる。
【００５７】
以上の実施形態においては、ＮＡＮＤ型フラッシュＥＥＰＲＯＭについて説明しているが、本発明はこれに限らず、ＮＯＲ型フラッシュＥＥＰＲＯＭなどのフローティングゲートにデータを書き込むことが可能な不揮発性半導体記憶装置に広く適用できる。
【００５８】
以上の実施形態においては、圧縮されたデータをメモリセルアレイ１０の補助メモリセル１０Ｂに格納しているが、本発明はこれに限らず、当該ＩＣチップ内の他のメモリに格納してもよい。
【産業上の利用可能性】
【００５９】
以上詳述したように、本発明に係る不揮発性半導体記憶装置とその制御方法によれば、いわゆるトリムデータなどの調整用データやプログラムコードを、従来技術に比較してデータ量を大幅に圧縮して不揮発性半導体記憶装置のＩＣチップ内に記憶することができ、しかも上記圧縮した調整用データ等を簡単な方法で展開して取り出すことができる。
【００６０】
また、本発明に係るデータ圧縮回路によれば、所定のデータを従来技術に比較してデータ量を大幅に圧縮して出力することができる。
【００６１】
さらに、本発明に係るデータ展開回路によれば、上記圧縮したデータ等を従来技術に比較して簡単な方法で展開して取り出すことができる。
【００６２】
またさらに、本発明に係るデータ圧縮展開回路によれば、所定のデータを従来技術に比較してデータ量を大幅に圧縮して出力することができ、しかも上記圧縮したデータ等を従来技術に比較して簡単な方法で展開して取り出すことができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態に係るＮＡＮＤ型フラッシュＥＥＰＲＯＭ１００の全体構成を示すブロック図である。
【図２】図１のメモリセルアレイ１０とその周辺回路の構成を示す回路図である。
【図３】図１のテスタ装置６０により圧縮されコーデック３２により展開される圧縮展開方法を示すビットパターンを示す図である。
【図４】図１のテスタ装置６０により実行される書き込み処理を示すフローチャートである。
【図５】図１のデータバスコントローラ３０により実行される調整用データ等の展開処理を示すフローチャートである。
【図６】図１のデータアクセスコントローラ３１とコーデック３２とその周辺回路の詳細構成を示すブロック図である。
【図７】図６のデータアクセスコントローラ３１の詳細構成を示す回路図である。
【図８】図６のコーデック出力部３２Ａの詳細構成を示す回路図である。
【図９】図６のコーデック入力部３２Ｂの詳細構成を示す回路図である。
【図１０】図６乃至図９の回路の動作を示すタイミングチャートである。
【符号の説明】
【００６４】
１０…メモリセルアレイ、
１０Ａ…本体メモリセル、
１０Ｂ…補助メモリセル、
１１…制御回路、
１２…ロウデコーダ、
１３…高電圧発生回路、
１４，１４Ａ…データ書き換え及び読み出し回路（ページバッファ）、
１４ａ，１４ｂ…ラッチ回路、
１５…カラムデコーダ、
１７…コマンドレジスタ、
１８…アドレスレジスタ、
１９…動作ロジックコントローラ、
２０…内部データバス、
２１…データ入出力コントローラ、
２２…Ｙカウンタ、
２３…Ｙパス回路、
３０…データバスコントローラ、
３１…データアクセスコントローラ、
３１ａ…ロジック回路、
３１ｃ…サイクルカウンタ、
３２…コーデック、
３２Ａ…コーデック出力部、
３２Ｂ…コーデック入力部、
３３…ロジック回路、
３５…ライトデータバス、
４０…内部ＳＲＡＭ、
４１，４１ａ，４１ｂ…コードメモリ、
４２，４２ａ，４２ｂ…レジスタメモリ、
５０…データ入出力バッファ、
５１…データ入出力端子、
５２…データ線、
６０…テスタ装置、
６１…テスト端子、
１００…ＮＡＮＤ型フラッシュＥＥＰＲＯＭ、
ＢＡ０〜ＢＡ３…バッファアンプ、
Ｌ１，Ｌ２，ＬＬ００〜Ｌ０４，ＤＬ０〜ＤＬ３…ラッチ。
【図１】
2010040057.tif 000003
【図２】
2010040057.tif 000004
【図３】
2010040057.tif 000005
【図４】
2010040057.tif 000006
【図５】
2010040057.tif 000007
【図６】
2010040057.tif 000008
【図７】
2010040057.tif 000009
【図８】
2010040057.tif 000010
【図９】
2010040057.tif 000011
【図１０】
2010040057.tif 000012