(57)【要約】  スクランブル部（５０１）は、第１の記憶部（５０２）内のツインセル（５０５）に書込むデータをスクランブルデータを用いてスクランブル処理する。書込み部（５０９）は、第１の記憶部（５０２）内のツインセル（５０５）にスクランブル処理後の書込みデータを書込む。書込み部（５１１）は、第２の記憶部（５０３）内のメモリセル（５１０）にスクランブルデータを書込む。ディスクランブル部（５０４）は、第２の記憶部（５０３）から読出されたスクラブルデータを用いて、第１の記憶部（５０２）から読出されたデータをディスクランブル処理する。
2015022741.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書換え可能で、閾値電圧の相違によって相補的に１ビットのデータを記憶するツインセルを含む第１の記憶部と、
電気的に書き換え可能なメモリセルを含む第２の記憶部と、
前記第１の記憶部内の前記ツインセルに書込むデータをスクランブルデータを用いてスクランブル処理するスクランブル部と、
前記第１の記憶部内の前記ツインセルにスクランブル処理後の書込みデータを書込む第１の書込み部と、
前記第２の記憶部内の前記メモリセルに前記スクランブルデータを書込む第２の書込み部と、
前記第２の記憶部から読出されたスクラブルデータを用いて、前記第１の記憶部から読出されたデータをディスクランブル処理するディスクランブル部とを備えた、半導体装置。
【請求項２】
前記第２の記憶部は、２つメモリセルからなり、前記スクランブルデータの１ビットを記憶するツインセルを含む、請求項１記載の半導体装置。
【請求項３】
前記第２の記憶部は、１つのメモリセルからなり、前記スクランブルデータの１ビットを記憶するシングルセルを含む、請求項１記載の半導体装置。
【請求項４】
前記第２の記憶部は、１つのメモリセルからなり、前記スクランブルデータの１ビットを記憶する複数のシングルセルを含み、前記複数のシングルセルは、スクランブルデータの１ビットを重複して記憶し、
一方の入力端子が前記複数の単一のメモリセルと接続する複数のビット線に同時に接続され、他方の入力端子が定電流源回路と接続されるセンスアンプを備える、請求項１記載の半導体装置。
【請求項５】
前記第２の記憶部は、２つメモリセルからなり、スクランブルデータの１ビットを記憶する複数のツインセルを含み、前記複数のツインセルは、スクランブルデータの１ビットを重複して記憶し、
前記複数のツインセルから読出された１ビットの値がすべて同一であるときには、前記同一の値を前記ディスクランブル部へ送り、前記複数のツインセルから読出された１ビットの値のうち他と異なるものがあるときには、頻度が少ない方の値を前記ディスクランブル部へ送る判定回路を備える、請求項１記載の半導体装置。
【請求項６】
前記スクランブル部は、
前記第１の記憶部の列ごとに設けられる複数個のスクランブラーを含み、
前記スクランブラーは、対応の列のツインセルに対する１ビットの書込みデータを前記スクランブルデータを用いてスクランブル処理し、
前記ディスクランブル部は、
前記第１の記憶部の列ごとに設けられる複数個のディスクランブラーを含み、
前記ディスクランブラーは、対応の列のツインセルから読出された１ビットのデータを前記第２の記憶部から読出されたスクランブルデータ用いてディスクランブル処理する、請求項１記載の半導体装置。
【請求項７】
前記スクランブルデータは、複数のビットで構成され、
前記スクランブラーは、対応の列のツインセルに対する１ビットの書込みデータを前記スクランブルデータを構成する複数ビットのうち前記列に対応する１ビットを用いてスクランブル処理し、
前記ディスクランブラーは、対応の列のツインセルから読出された１ビットのデータを前記スクランブルデータを構成する複数ビットのうち前記列に対応する１ビットを用いてディスクランブル処理する、請求項６記載の半導体装置。
【請求項８】
前記スクランブル部は、
前記第１の記憶部の複数の列に共通に設けられるスクランブラーを含み、
前記スクランブラーは、前記ツインセルに対する１ビットの書込みデータを前記スクランブルデータを用いてスクランブル処理し、
前記ディスクランブル部は、
前記第１の記憶部の複数の列に共通に設けられるディィスクランブラーを含み、
前記ディスクランブラーは、前記ツインセルから読出された１ビットのデータを前記第２の記憶部から読出されたスクランブルデータ用いてディスクランブル処理する、請求項１記載の半導体装置。
【請求項９】
前記スクランブルデータは、複数のビットで構成され、
前記スクランブラーは、ツインセルに対する１ビットの書込みデータを前記スクランブルデータを構成する複数ビットのうち前記ツインセルの列に対応する１ビットを用いてスクランブル処理し、
前記ディスクランブラーは、前記ツインセルから読出された１ビットのデータを前記スクランブルデータを構成する複数ビットのうち前記ツインセルの列に対応する１ビットを用いてディスクランブル処理する、請求項８記載の半導体装置。
【請求項１０】
複数組のデータ入力ピンおよびデータ出力ピンと、
データ入力ピンおよびデータ出力ピンの組ごとに、前記スクランブラーおよび前記ディスクランブラーを備え、
複数個の前記スクランブラーは、同一のスクランブルデータを用いてスクランブル処理し、複数個の前記ディスクランブラーは、同一のスクランブルデータを用いてディスクランブル処理する、請求項８記載の半導体装置。
【請求項１１】
前記第１の記憶部および前記第２の記憶部は、それぞれ同一の個数の小ブロックに分割され、
前記第１の記憶部の小ブロックおよび前記第２の記憶部の小ブロックの組は、同一のタイミングで消去される、請求項１記載の半導体装置。
【請求項１２】
前記第１の記憶部のデータが消去されるときには、前記第２の記憶部のデータも消去される、請求項１記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、たとえば相補的なデータを保持する２つの不揮発性メモリセルを含む半導体装置に関する。
【背景技術】
【０００２】
従来から、記憶データの秘匿性を高める技術が知られている。
たとえば、特開２００８−２０４５０７公報（特許文献１）の半導体装置は、乱数発生部により生成されたスクランブル情報を用いて、書込みデータに対しスクランブル処理を施してから、データ記憶部に書込みを行う方式が記載されている。スクランブル情報は、揮発性メモリであるＳＲＡＭに記憶されるので、半導体装置の電源オフ状態においてデータ記憶部に記憶データが残っていても、電源オフ時にスクランブル情報が消去されるためにデータ記憶部の記憶データを正しく読出すことができなくなる。これにより記憶データの秘匿性の向上を図ることができる。【０００３】
また、特開２０１０−２７７５８４号公報（特許文献２）にも、書込みデータをスクランブル処理して書込み、読出した後は、ディスクランブル処理をする不揮発性記憶装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０４５０７公報
【特許文献２】特開２０１０−２７７５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、相補的なデータを保持する２つのセルで構成されるツインセルにおいて、ツインセルデータの消去によって、２つのセルの閾値電圧をともに小さい状態にする。この際に、ツインセルデータ消去前の書込み状態における２つのセルの閾値電圧の差が、ツインセルデータ消去後も残る可能性が想定される。そのため、ツインセルデータを消去したにも関わらず、ツインセルデータ消去前の書込状態が読出され、セキュリティ上問題となる可能性がある。【０００６】
しかしながら、特許文献１に記載の方式では、電源をオフにするとデータ記憶部の記憶データは読出されなくなるという問題がある。【０００７】
また、特許文献２に記載の方式では、スクランブル処理された書込みデータとともに、書込み単位ごとに異なるビットパターンである書込み済みフラグと、誤り訂正符号とを記憶することによって、書込み中の電源遮断などの異常を検出することを目的としており、上述のようなセキュリティ上の問題を解決することができない。【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
【課題を解決するための手段】
【０００９】
本発明の一実施形態の半導体装置によれば、スクランブル部は、第１の記憶部内のツインセルに書込むデータをスクランブルデータを用いてスクランブル処理する。書込み部は、第１の記憶部内のツインセルにスクランブル処理後の書込みデータを書込む。書込み部は、第２の記憶部内のメモリセルにスクランブルデータを書込む。ディスクランブル部は、第２の記憶部から読出されたスクラブルデータを用いて、第１の記憶部から読出されたデータをディスクランブル処理する。
【発明の効果】
【００１０】
本発明の一実施形態によれば、ツインセルデータ消去前の書込状態が読出されるのを回避することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態の半導体装置の構成を表わす図である。
【図２】第１の実施形態の半導体装置におけるメモリアレイからのツインセルデータの消去処理の手順を表わすフローチャートである。
【図３】第３の実施形態のマイクロコンピュータの構成を表わす図である。
【図４】フラッシュメモリモジュールの構成を表わす図である。
【図５】（ａ）は、スプリットゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。（ｂ）は、ホットキャリア書込み方式を用いるスタックド・ゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。（ｃ）は、はＦＮトンネル書込み方式を用いるスタックド・ゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。
【図６】（ａ）は、ツインセルデータが“０”を記憶する状態を表わす図である。（ｂ）は、ツインセルデータが“１”を記憶する状態を表わす図である。（ｃ）は、ツインセルデータのイニシャライズ状態を表わす図である。
【図７】（ａ）は、ツインセルデータ“０”を消去する際のシーケンスを表わす図である。（ｂ）は、ツインセルデータ“１”を消去する際のシーケンスを表わす図である。
【図８】第２の実施形態のツインセルデータの読出し系、書込み系、消去系の詳細な回路構成を表わす図である。
【図９】第３の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【図１０】第４の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる拡張部の構成を表わす図である。
【図１１】第５の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【図１２】（ａ）は、シングルセルが、シングルセルデータ“０”を記憶する状態を表わす図である。（ｂ）は、シングルセルが、シングルセルデータ“１”を記憶する状態を表わす図である。
【図１３】第６の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【図１４】（ａ）は、３個のシングルセルが、シングルセルデータ“０”を記憶する状態を表わす図である。（ｂ）は、３個のシングルセルが、シングルセルデータ“１”を記憶する状態を表わす図である。
【図１５】読出し列選択回路＆センスアンプに含まれるセンスアンプを表わす図である。
【図１６】第７の実施形態の正規部と拡張部の構成を表わす図である。
【図１７】第７の実施形態の変形例の正規部と拡張部の構成を表わす図である。
【図１８】第８の実施形態のメモリアレイの１消去ブロック構成を表わす図である。
【図１９】第８の実施形態における複数のソース線の活性化タイミングを表わす図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を用いて説明する。
［第１の実施形態］
図１は、第１の実施形態の半導体装置の構成を表わす図である。
【００１３】
この半導体装置５００は、第１の記憶部５０２と、第２の記憶部５０３と、スクランブル部５０１と、書込み部５０９と、書込み部５１１と、ディスクランブル部５０４とを備える。
第１の記憶部５０２は、ツインセル５０５を含む。ツインセル５０５は、メモリセル５０６と、メモリセル５０７とからなる。メモリセル５０６とメモリセル５０７は、電気的に書換え可能である。ツインセル５０５は、メモリセル５０６とメモリセル５０７の閾値電圧の相違によって相補的に１ビットのデータを記憶する。
【００１４】
第２の記憶部５０３は、電気的に書き換え可能なメモリセル５１０を含む。
第１の記憶部５０２内のツインセル５０５のデータが消去されるときには、第２の記憶部５０３内のメモリセル５１０のデータも消去される。
【００１５】
スクランブル部５０１は、第１の記憶部５０２のツインセル５０５に書込むデータをスクランブルデータを用いてスクランブル処理する。
【００１６】
書込み部５０９は、第１の記憶部５０２内のツインセル５０５にスクランブル処理後の書込みデータを書込む。
【００１７】
書込み部５１１は、第２の記憶部５０３内のメモリセル５１０にスクランブルデータを書込む。
【００１８】
ディスクランブル部５０４は、第２の記憶部５０３から読出されたスクラブルデータを用いて、第１の記憶部５０２から読出されたデータをディスクランブル処理する。
【００１９】
図２は、第１の実施形態の半導体装置における第１の記憶部への書込みデータの書込み処理および読出し処理の手順を表わすフローチャートである。
【００２０】
まず、半導体装置は、書込み要求信号を受信する（ステップＳ１０１）。
スクランブル部５０１は、第１の記憶部５０２のツインセル５０５に書込むデータをスクランブルデータを用いてスクランブル処理する（ステップＳ１０２）。
【００２１】
次に、書込み部５０９は、第１の記憶部５０２内のツインセル５０５にスクランブル処理後の書込みデータを書込む（ステップＳ１０３）。
【００２２】
次に、書込み部５１１は、第２の記憶部５０３内のメモリセル５１０にスクランブルデータを書込む（ステップＳ１０４）。
【００２３】
次に、半導体装置は、読出し要求信号を受信する（ステップＳ１０５）。
次に、ディスクランブル部５０４は、第２の記憶部５０３から読出されたスクラブルデータを用いて、第１の記憶部５０２から読出されたデータをディスクランブル処理する（ステップＳ１０６）。
【００２４】
以上のように、本実施の形態によれば、スクランブル処理後の書込みデータが消去されたとしても、スクランブル処理後の書込みデータとスクランブルデータの両方が読出されない限り、書込みデータが復元されないようにすることができる。
【００２５】
［第２の実施形態］
本実施の形態の半導体装置は、マイクロコンピュータである。
（マイクロコンピュータ）
図３は、第２の実施形態のマイクロコンピュータ１の構成を表わす図である。
【００２６】
図３に示されるマイクロコンピュータ（ＭＣＵ）１は、たとえば相補型ＭＯＳ集積回路製造技術などによって、単結晶シリコンのような１個の半導体チップに形成される。
【００２７】
マイクロコンピュータ１は、特に制限されないが、高速バスＨＢＵＳと周辺バスＰＢＵＳを有する。高速バスＨＢＵＳと周辺バスＰＢＵＳは、特に制限されないが、それぞれデータバス、アドレスバスおよびコントロールバスを有する。２個のバスを設けることによって、共通バスに全ての回路を共通接続する場合に比べてバスの負荷を軽くし、高速アクセス動作を保証することができる。
【００２８】
高速バスＨＢＵＳには、命令制御部と実行部を備えて命令を実行する中央処理装置（ＣＰＵ）２、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）３、高速バスＨＢＵＳと周辺バスＰＢＵＳとのバスインタフェース制御若しくはバスブリッジ制御を行うバスインタフェース回路（ＢＩＦ）４が接続される。
【００２９】
高速バスＨＢＵＳには、さらに、中央処理装置２のワーク領域などに利用されるランダムアクセスメモリ（ＲＡＭ）５、およびデータやプログラムを格納する不揮発性メモリモジュールとしてのフラッシュメモリモジュール（ＦＭＤＬ）６が接続される。
【００３０】
周辺バスＰＢＵＳには、フラッシュメモリモジュール（ＦＭＤＬ）６に対するコマンドアクセス制御を行うフラッシュシーケンサ（ＦＳＱＣ）７、外部入出力ポート（ＰＲＴ）８，９、タイマ（ＴＭＲ）１０、およびマイクロコンピュータ１を制御するための内部のクロックＣＬＫを生成するクロックパルスジェネレータ（ＣＰＧ）１１が接続される。
【００３１】
さらに、マイクロコンピュータ１は、ＸＴＡＬ／ＥＸＴＡＬに発振子が接続され、または外部クロックが供給されるクロック端子、スタンバイ状態を指示する外部ハードウェアスタンバイ端子ＳＴＢ、リセットを指示する外部リセット端子ＲＥＳ、外部電源端子Ｖｃｃ、外部接地端子Ｖｓｓを備える。
【００３２】
ここでは、ロジック回路としてのフラッシュシーケンサ７と、アレイ構成のフラッシュメモリモジュール６は、別ＣＡＤツールを用いて設計されているため、便宜上別々の回路ブロックとして図示されているが、双方併せて一つのフラッシュメモリを構成する。フラッシュメモリモジュール６は、読出し専用の高速アクセスポート（ＨＡＣＳＰ）を介して高速バスＨＢＵＳに接続される。ＣＰＵ２またはＤＭＡＣ３は、高速バスＨＢＵＳから高速アクセスポートを介してフラッシュメモリモジュール６をリードアクセスすることができる。ＣＰＵ２またはＤＭＡＣ３は、フラッシュメモリモジュール６に対して書込みおよび初期化のアクセスを行うときは、バスインタフェース４を介して周辺バスＰＢＵＳ経由でフラッシュシーケンサ７にコマンドを発行する。これによってフラッシュシーケンサ７が周辺バスＰＢＵＳから低速アクセスポート（ＬＡＣＳＰ）を通じてフラッシュメモリモジュールの初期化や書込み動作の制御が行われる。
【００３３】
（フラッシュメモリモジュール）
図４は、フラッシュメモリモジュール６の構成を表わす図である。
【００３４】
フラッシュメモリモジュール６は、１ビットの情報の記憶を２個の不揮発性メモリセルを用いて行う。すなわち、メモリアレイ（ＭＡＲＹ）１９は、夫々書換え可能な２個の不揮発性メモリセルＭＣＰ，ＭＣＮを１ビットのツインセルとして複数個備える。図４には、代表的に１対だけ図示されている。本明細書では、メモリセルＭＣＰをポジティブセル、メモリセルＭＣＮをネガティブセルと呼ぶ。
【００３５】
揮発性メモリセルＭＣＰ，ＭＣＮは、たとえば、図５（ａ）に例示されるスプリットゲート型フラッシュメモリ素子である。このメモリ素子は、ソース・ドレイン領域の間のチャネル形成領域の上にゲート絶縁膜を介して配置されたコントロールゲートＣＧとメモリゲートＭＧを有する。メモリゲートＭＧとゲート絶縁膜の間にはシリコンナイトライドなどの電荷トラップ領域（SiN）が配置される。選択ゲート側のソースまたはドレイン領域は、ビット線ＢＬに接続され、メモリゲートＭＧ側のソースまたはドレイン領域はソース線ＳＬに接続される。
【００３６】
メモリセルの閾値電圧Ｖｔｈを下げるにはＢＬ＝Ｈｉ−Ｚ（高インピーダンス状態）、ＣＧ＝Ｏｐｅｎ、ＭＧ＝−１０Ｖ、ＳＬ＝６、ＷＥＬＬ＝０Ｖとし、ウェル領域（ＷＥＬＬ）とメモリゲートＭＧ間の高電界によって電荷トラップ領域（SiN）からウェル領域（ＷＥＬＬ）に電子が引き抜かれる。この処理単位はメモリゲートＭＧを共有する複数メモリセルとされる。
【００３７】
メモリセルの閾値電圧Ｖｔｈを上げるにはＢＬ＝０Ｖ、ＣＧ＝０．９Ｖ、ＭＧ＝１０Ｖ、ＳＬ＝６、ＷＥＬＬ＝０Ｖとし、ソース線ＳＬからビット線ＢＬに書込み電流を流し、それによってコントロールゲートＣＧとメモリゲートＭＧの境界部分で発生するホットエレクトロンが電荷トラップ領域（SiN）に注入される。電子の注入はビット線電流を流すか否かによって決まるからこの処理はビット単位で制御される。
【００３８】
読出しはＢＬ＝１．５Ｖ、ＣＧ＝１．５Ｖ，ＭＧ＝０Ｖ、ＳＬ＝０Ｖ、ＷＥＬＬ＝０Ｖで行われる。メモリセルの閾値電圧Ｖｔｈが低ければメモリセルはオン状態にされ、閾値電圧Ｖｔｈが高ければオフ状態にされる。
【００３９】
メモリ素子はスプリットゲート型フラッシュメモリ素子に限定されず、図５（ｂ），図５（ｃ）に例示されるスタックド・ゲート型フラッシュメモリ素子であってよい。このメモリ素子はソース・ドレイン領域の間のチャネル形成領域の上にゲート絶縁膜を介してフローツイングゲートＦＧとコントロールゲートＷＬがスタックされて構成される。図５（ｂ）では、ホットキャリア書込み方式によって閾値電圧Ｖｔｈを上げ、ウェル領域ＷＥＬＬへの電子の放出によって閾値電圧Ｖｔｈを下げる。図５（ｃ）では、ＦＮトンネル書込み方式によって閾値電圧Ｖｔｈを上げ、ビット線ＢＬへの電子の放出によって閾値電圧Ｖｔｈを下げる。
【００４０】
上述のメモリゲートＭＧ、コントロールゲートＣＧ、ソース線ＳＬ、ＷＥＬＬ、ビット線ＢＬへ与える電圧は、フラッシュシーケンサ７の制御によって、電源回路（ＶＰＧ）３１で生成されて供給される。
【００４１】
以下の説明では、メモリ素子がスプリットゲート型フラッシュメモリ素子であるとして説明する。
【００４２】
不揮発性メモリセルＭＣＰ，ＭＣＮから成る一つのツインセルによる情報記憶は不揮発性メモリセルＭＣＰ，ＭＣＮに相補データを格納することによって行う。
【００４３】
すなわち、メモリセルＭＣＰ，ＭＣＮのそれぞれは、セルデータ“１”（低閾値電圧状態；閾値電圧が消去ベリファイレベルよりも小さい状態）またはセルデータ“０”（高閾値電圧状態；閾値電圧が消去ベリファイレベル以上の状態）を保持することができる。
【００４４】
図６（ａ）に示すように、ツインセルデータ“０”は、ポジティブセルＭＣＰがセルデータ“０”、ネガティブセルＭＣＮがセルデータ“１”を保持する状態である。図６（ｂ）に示すように、ツインセルデータ“１”はポジティブセルＭＣＰがセルデータ“１”、ネガティブセルＭＣＮがセルデータ“０”を保持する状態である。図６（ｃ）に示すように、ツインセルのポジティブセルＭＣＰおよびネガティブセルＭＣＮが共にセルデータ“１”を保持する状態はイニシャライズ状態であり、ツインセルデータは不定になる。イニシャライズ状態は、ブランク消去状態ともいう。
【００４５】
ツインセルデータ“０”の状態およびツインセルデータ“１”の状態からイニシャライズ状態にすることをツインセルデータの消去という。また、イニシャライズ状態からツインセルデータ“１”保持状態またはツインセルデータ“０”保持状態にすることを通常の書込みという。
【００４６】
ツインセルデータの消去時には、一旦、ポジティブセルＭＣＰとネガティブセルＭＣＮの両方のセルデータを“０”にする処理（プレライトと呼ぶ）を行なってから、消去パルスを印加して両方のセルデータを“１”にする処理が行なわれる。プレライトでは、ポジティブセルＭＣＰとネガティブセルＭＣＮの両方に対して、印加する電圧を通常の書込み時よりも小さくする、または書込みパルスを与える期間を短くすることによって、通常の書込み時よりも弱い書込みを行なう。プレライトでは、閾値電圧が小さい方のメモリセルの閾値電圧の増加量が、通常の書込み時の閾値電圧Ｖｔｈの増加量よりも小さい。プレライトを実施する目的は、ポジティブセルＭＣＰとネガティブセルＭＣＮの間の消去ストレスのばらつきを小さくし、リテンション特性悪化を抑制するためである。プレライトによるストレスが、通常の書込みによるストレスよりも大きくならないよう、プレライト時には、図５に示した一般的な通常の書込み（Ｖｔｈ増加）のときの電圧よりも小さい電圧が与えられる。
【００４７】
図７（ａ）は、ツインセルデータ“０”を消去する際のシーケンスを表わす図である。
図７（ａ）に示すように、ツインセルデータ“０”の消去を実行する場合に、プレライトによって、両方のセルが共にセルデータ“１”を保持するイニシャライズ状態となるが、消去前はポジティブセルＭＣＰの閾値電圧Ｖｔｈの方がネガティブセルＭＣＮの閾値電圧Ｖｔｈよりも大きいため、消去後でもこの関係が維持される可能性が想定される。この関係が維持された状態で読出しを実施すると、イニシャライズ状態にも関わらずポジティブセルＭＣＰとネガティブセルＭＣＮの閾値電圧Ｖｔｈに差があるために、不定値ではなく実質的に直前のツインセルデータ“０”と等しいデータ“０”を読出してしまう可能性がある。
【００４８】
図７（ｂ）は、ツインセルデータ“１”を消去する際のシーケンスを表わす図である。
図７（ｂ）に示すように、ツインセルデータ“１”の消去を実行する場合に、プレライトによって、両方のセルが共にセルデータ“１”を保持するイニシャライズ状態となるが、消去前はネガティブセルＭＣＮの閾値電圧Ｖｔｈの方がポジティブセルＭＣＰの閾値電圧Ｖｔｈよりも大きいため、消去後でもこの関係が維持される可能性が想定される。この直前のツインセルデータ状態で読出しを実施すると、イニシャライズ状態にも関わらず、ポジティブセルＭＣＰとネガティブセルＭＣＮの閾値電圧Ｖｔｈに差があるために、不定値ではなく実質的に直前のツインセルデータ“１”と等しいデータ“１”を読出してしまう可能性がある。
【００４９】
このように消去したにも関わらず、読む度にデータが定まらないような不定値ではなく、高い確率で直前のツインセルデータと等しいデータが読み出せてしまうとしたら、セキュリティ上問題となる可能性がある。本発明の実施形態では、このような可能性のある問題を解決することを目的とする。
【００５０】
図４に代表的に示されたツインセルのメモリセルＭＣＰ，ＭＣＮにおいて、メモリゲートＭＧは、共通のメモリゲート選択線ＭＧＬに接続され、コントロールゲートＣＧは、共通のワード線ＷＬに接続される。実際には多数のツインセルがマトリクス配置され、行方向の配列単位で対応するメモリゲート選択線ＭＧＬおよびワード線ＷＬに接続される。メモリセルＭＣＰ，ＭＣＮは、列単位でビット線ＢＬＰ，ＢＬＮに接続される。
【００５１】
ワード線ＷＬは、第１行デコーダ（ＲＤＥＣ１）２４によって選択される。メモリゲート選択線ＭＧＬは、第２行デコーダ（ＲＤＥＣ２）２５によって選択される。第１行デコーダ２４および第２行デコーダ２５による選択動作は、読出しアクセスではＨＡＣＳＰに供給されるアドレス情報などに従い、データの書込み動作および初期化動作ではＬＡＣＳＰに供給されるアドレス情報などに従う。
【００５２】
書込み列選択回路５１は、列デコーダ(ＣＤＥＣ)３０のデコード結果に従って、書込み列を選択し、周辺バスＰＢＵＳのデータバス（ＰＢＵＳ＿Ｄ）にインタフェースされる入出力回路（ＩＯＢＵＦ）２９から送られる書込みデータをスクランブル部３５へ出力する。列デコーダ３０の選択動作は、ＬＡＣＳＰに供給されるアドレス情報などに従う。
【００５３】
スクランブル部３５は、書込み列選択回路５１から送られる書込みデータをスクランブル処理して、スクランブル処理された書込みデータを書込みラッチ部３６に送る。
【００５４】
書込みラッチ部３６は、スクランブル処理された書込みデータをラッチし、選択された書込み列のビット線ＢＬＰ，ＢＬＮのいずれかに書込み電流が流れるようにすることによって、選択された書込み列のメモリセルＭＣＰ，ＭＣＮのいずれかに対して書込みを行なう（すなわち、閾値電圧Ｖｔｈを上げる）。
【００５５】
ベリファイ部３３は、選択された書込み列のビット線ＢＬＰ，ＢＬＮの電圧と、書込みラッチ部３６に保持されているスクランブル処理された書込みデータに従って、メモリセルＭＣＰ，ＭＣＮの閾値電圧Ｖｔｈが書込みベリファイレベルよりも大きいか否かの検証を実行する。書込みベリファイ結果は、周辺データバスＰＢＵＳ＿Ｄを通じてフラッシュシーケンサ７に供給される。
【００５６】
ベリファイ部３３は、消去ベリファイを実行する。消去ベリファイにおいては、消去対象領域の各ツインセルを構成するメモリセルＭＣＰ，ＭＣＮの両方の閾値電圧Ｖｔｈが消去ベリファイレベルよりも小さいか否かの検証が行なわれる。消去ベリファイ結果は、周辺データバスＰＢＵＳ＿Ｄを通じてフラッシュシーケンサ７に供給される。
【００５７】
メモリセルＭＣＰと接続されるビット線ＢＬＰおよびメモリセルＭＣＮに接続されるビット線ＢＬＮは、列選択＆増幅部３７に接続される。
【００５８】
列選択＆増幅部３７は、読出し列を選択する。列選択＆増幅部３７は、選択された読出し列のビット線ＢＬＰ，ＢＬＮの電圧の差を増幅することによって、選択された読出し列のメモリセルＭＣＰ，ＭＣＮのツインセルデータを読出す。
【００５９】
ディスクランブル部３８は、列選択＆増幅部３７から出力される読出されたツインセルデータをディスクランブル処理して、出力バッファ(ＯＢＵＦ)２６を介して高速バスＨＢＵＳのデータバスＨＢＵＳ＿Ｄに出力する。
【００６０】
電源回路(ＶＰＧ)３１は、読出し、書込み、初期化に必要な各種動作電圧を生成する。  タイミングジェネレータ(ＴＭＧ)３２は、ＣＰＵ２等からＨＡＣＳＰに供給されるアクセスストローブ信号、ＦＳＱＣ７からＬＡＣＳＰに供給されるアクセスコマンド等に従って、内部動作タイミングを規定する内部制御信号を生成する。
【００６１】
フラッシュメモリの制御部は、フラッシュシーケンサ（ＦＳＱＣ）７とタイミングジェネレータ（ＴＭＧ）３２によって構成される。
【００６２】
図８は、第２の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【００６３】
図８に示すように、第２の実施形態の半導体装置は、正規部１００と、拡張部１０１とを備える。
【００６４】
正規部１００は、書込み列選択回路５１と、スクランブラー６１＿１〜６１＿Ｎと、インバータＩＶＮ＿１〜ＩＶＮ＿Ｎと、書込みラッチ回路６２Ｐ＿１〜６２Ｐ＿Ｎ，６２Ｎ＿１〜６２Ｎ＿Ｎと、正規マットＮＭＡＴ１と、読出し列選択回路＆センスアンプ６４と、ディスクランブラー６５＿１〜６５＿Ｎとを備える。
【００６５】
拡張部１０１は、スクランブルデータ発生回路５２と、インバータＩＶＥ＿１〜ＩＶＥ＿Ｎと、書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎと、拡張マットＥＭＡＴ１と、読出し列選択回路＆センスアンプ６６とを備える。
【００６６】
スクランブラー６１＿１〜６１＿Ｎは、図４のスクランブル部３５を構成する。ディスクランブラー６５＿１〜６５＿Ｎは、図４のディスクランブル部３８を構成する。書込みラッチ回路６２Ｐ＿１〜６２Ｐ＿Ｎ，６２Ｎ＿１〜６２Ｎ＿Ｎ，６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎは、図４の書込みラッチ部３６を構成する。読出し列選択回路＆センスアンプ６４，６６は、図４の列選択＆増幅部３７を構成する。
【００６７】
スクランブルデータ発生回路５２は、ＮビットのスクランブルデータＳ１〜ＳＮを発生する。各ビットＳｉは、書込みラッチ回路６３Ｐ＿ｉへ送られるとともに、インバータＩＶＥ＿ｉを経由して書込みラッチ回路６３Ｎ＿ｉへ送られる。
【００６８】
スクランブルデータ発生回路５２は、第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択される行が同一の書込みデータに対して、同一のスクランブルデータ（Ｓ１〜ＳＮ）を出力し、選択される行が互いに異なる書込みデータに対しては、互いに異なるスクランブルデータ（Ｓ１〜ＳＮ）を出力する。
【００６９】
スクランブルデータ発生回路５２は、発生したスクランブルデータが（Ｓ１〜ＳＮ）がＥＭＡＴ１に未だ書込まれていない場合に、スクランブルデータ（Ｓ１〜ＳＮ）を書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎへ出力する。
【００７０】
正規マットＮＭＡＴ１は、複数個のツインセルＭＴＣ（ｉ，ｊ）を備える。ただし、ｉは列を表わし、１〜Ｎとする。ｊは、行を表わし、１〜Ｌとする。ツインセルＭＴＣ（ｉ，ｊ）は、ポジティブセルＭＣＰ（ｉ，ｊ）とネガティブセルＭＣＮ（ｉ，ｊ）を含む。ポジティブセルＭＣＰ（ｉ，ｊ）は、ビット線ＢＬＮＰ＿ｉと接続する。ネガティブセルＭＣＮ（ｉ，ｊ）は、ビット線ＢＬＮＮ＿ｉと接続する。
【００７１】
拡張マットＥＭＡＴ１は、複数個のツインセルＥＴＣ（ｉ，ｊ）を備える。ただし、ｉは列を表わし、１〜Ｎとする。ｊは、行を表わし、１〜Ｌとする。ツインセルＥＴＣ（ｉ，ｊ）は、ポジティブセルＥＭＣＰ（ｉ，ｊ）とネガティブセルＥＭＣＮ（ｉ，ｊ）を含む。ポジティブセルＥＭＣＰ（ｉ，ｊ）は、ビット線ＢＬＥＰ＿ｉと接続する。ネガティブセルＥＭＣＮ（ｉ，ｊ）は、ビット線ＢＬＥＮ＿ｉと接続する。
【００７２】
正規マットＮＭＡＴ１のツインセルＭＴＣ（ｉ，ｊ）（ｉ＝１〜Ｎ、ｊ＝１〜Ｌ）のツインセルデータが消去されるときには、拡張マットＥＭＡＴ１のツインセルＥＴＣ（ｉ，ｊ）（ｉ＝１〜Ｎ、ｊ＝１〜Ｌ）のツインセルデータも消去される。
【００７３】
書込み列選択回路５１は、正規マットＮＭＡＴ１の第１列〜第Ｎ列のうちのデータを書込む列を選択する。書込み列選択回路５１は、選択した列がｊの場合には、選択した列ｊに対応するスクランブラー６１＿ｊに、入出力回路（ＩＯＢＵＦ）２９から送られる１ビットの書込みデータを出力する。
【００７４】
スクランブラー６１＿ｉ（ｉ＝１〜Ｎ）は、スクランブルデータ発生回路５２からＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットＳｉを受ける。スクランブラー６１＿ｉは、書込み列選択回路５１から１ビットの書込みデータＤが送られてきたときには、Ｓｉで１ビットの書込みデータをスクランブル処理する。スクランブル処理された書込みデータＤＳｉは、書込みラッチ回路６２Ｐ＿ｉへ送られるとともに、インバータＩＶＮ＿ｉを経由して書込みラッチ回路６２Ｎ＿ｉへ送られる。
【００７５】
スクランブル処理とは、スクランブルデータを用いて書込みデータを可逆的に変換することを意味する。ディスクランブル処理とは、スクランブルデータを用いてスクランブル処理後のデータを変換することによって元の書込みデータを得ることを意味する。
【００７６】
スクランブル処理の方式の一例では、スクランブル処理によって書込みデータとスクランブルデータの排他的論理和をとり、ディスクランブル処理によってスクランブル処理後のデータとスクランブルデータの排他的論理和をとり元の書込みデータを得る。ここで、Ｎ個のスクランブラー６１＿ｉ（ｉ＝１〜Ｎ）によるスクランブル処理の方式のすべてが同一であってもよいし、すべてが異なっていてもよいし、同一のものと相違するものとが混在していてもよい。
【００７７】
書込みラッチ回路６２Ｐ＿ｉ（ｉ＝１〜Ｎ）は、スクランブラー６１＿ｉから送られるスクランブル処理された書込みデータＤＳｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＮＰ＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＮＰ＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＭＣＰ（ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【００７８】
書込みラッチ回路６２Ｐ＿ｉ（ｉ＝１〜Ｎ）は、スクランブラー６１＿ｉから送られるスクランブル処理された書込みデータＤＳｉが「１」の場合には、ビット線ＢＬＮＰ＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＮＰ＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＭＣＰ（ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【００７９】
書込みラッチ回路６２Ｎ＿ｉ（ｉ＝１〜Ｎ）は、インバータＩＶＮ＿ｉから送られるスクランブル処理された書込みデータの反転データ／ＤＳｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＮＮ＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＮＮ＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＭＣＮ（ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【００８０】
書込みラッチ回路６２Ｎ＿ｉ（ｉ＝１〜Ｎ）は、インバータＩＶＮ＿ｉから送られるスクランブル処理された書込みデータの反転データ／ＤＳｉが「１」の場合には、ビット線ＢＬＮＮ＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＮＮ＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＭＣＮ（ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【００８１】
読出し列選択回路＆センスアンプ６４は、正規マットＮＭＡＴ１の第１列〜第Ｎ列のうちのデータを読出す列を選択する。読出し列選択回路＆センスアンプ６４は、選択した列がｊの場合には、ビット線ＢＬＮＰ＿ｊの電圧とビット線ＢＬＮＮ＿ｊの電圧の差を増幅して、スクランブル処理されたツインセルデータを読出して、ディスクランブラー６５＿ｊへ出力する。第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行がｋ行の場合には、ツインセルＭＴＣ（ｊ，ｋ）のスクランブル処理された書込みデータＲＤＳｊが読出される。ツインセルＭＴＣ(ｊ，ｋ）にスクランブル処理された書込みデータＤＳｊが書込まれた後、ツインセルＭＴＣ(ｊ，ｋ）のデータが消去されなかった場合に、読出されたデータＲＤＳｊはＤＳｊと等しくなる。一方、ツインセルＭＴＣ(ｊ，ｋ）のデータが消去された後に、ツインセルＭＴＣ（ｊ、ｋ）からデータが読出された場合には、読出されたデータＲＤＳｊは、本来は不定値となるはずであるが、図７を用いて説明したように、ＤＳｊと等しくなる場合がある。
【００８２】
書込みラッチ回路６３Ｐ＿ｉ（ｉ＝１〜Ｎ）は、スクランブルデータ発生回路５２からＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットＳｉを受ける。書込みラッチ回路６３Ｐ＿ｉは、Ｓｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＥＰ＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＥＰ＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＥＭＣＰ（ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【００８３】
書込みラッチ回路６３Ｐ＿ｉ（ｉ＝１〜Ｎ）は、Ｓｉが「１」の場合には、ビット線ＢＬＥＰ＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＥＰ＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＥＭＣＰ（ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【００８４】
書込みラッチ回路６３Ｎ＿ｉ（ｉ＝１〜Ｎ）は、インバータＩＶＥ＿ｉから送られるＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットＳｉの反転値／Ｓｉを受ける。書込みラッチ回路６３Ｎ＿ｉは、／Ｓｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＥＮ＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＥＮ＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＥＭＣＮ（ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【００８５】
書込みラッチ回路６３Ｎ＿ｉ（ｉ＝１〜Ｎ）は、／Ｓｉが「１」の場合には、ビット線ＢＬＮＮ＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＥＮ＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＥＭＣＮ（ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【００８６】
読出し列選択回路＆センスアンプ６６は、拡張マットＥＭＡＴ１の第１列〜第Ｎ列のうちのデータを読出す列を選択する。読出し列選択回路＆センスアンプ６６は、選択した列がｊの場合には、ビット線ＢＬＥＰ＿ｊの電圧とビット線ＢＬＥＮ＿ｊの電圧の差を増幅し、スクランブルデータを読出して、読出されたスクランブルデータをディスクランブラー６５＿ｊへ出力する。第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行がｋ行の場合には、ツインセルＥＴＣ（ｊ，ｋ）のスクランブルデータＲＳｊが出力される。ツインセルＥＴＣ(ｊ，ｋ）にスクランブルデータＳｊが書込まれた後、ツインセルＥＴＣ(ｊ，ｋ）のデータが消去されなかった場合に、読出されたツインセルデータＲＳｊはＳｊと等しくなる。一方、ツインセルＥＴＣ(ｊ，ｋ）のデータが消去された後に、ツインセルＥＴＣ（ｊ、ｋ）からデータが読出された場合には、読出されたデータＲＳｊは、本来は不定値となるはずであるが、図７を用いて説明したように、Ｓｊと等しくなる場合がある。
【００８７】
ディスクランブラー６５＿ｉ（ｉ＝１〜Ｎ）は、読出し列選択回路＆センスアンプ６４から出力された１ビットのスクランブル処理されたツインセルデータＲＤＳｉを、読出し列選択回路＆センスアンプ６６から出力された１ビットのスクランブルデータＲＳｉを用いてディスクランブル処理して、出力バッファ（ＯＢＵＦ）２６へ出力する。
【００８８】
ここで、Ｎ個のディスクランブラー６５＿ｉ（ｉ＝１〜Ｎ）によるディスクランブル処理の方式のすべてが同一であってもよいし、すべてが異なっていてもよいし、同一のものと相違するものとが混在していてもよい。ただし、ディスクランブラー６５＿ｉ（ｉ＝１〜Ｎ）によるディスクランブル処理の方式は、対応するスクランブラー６１＿ｉにおいてスクラブルデータＳｉを用いて変換された書込みデータＤＳｉを同一のスクランブルデータＳｉを用いて元の書込みデータＤに復元できるものでなくてはならない。
【００８９】
以上のように、本実施の形態によれば、スクランブル処理された書込みデータが正規マットに書込まれ、消去されていない場合には、スクランブル処理された書込みデータとスクランブルデータが正しく読出されるので、ディスクランブル処理によって書込みデータを正常に復元することができる。
【００９０】
スクランブル処理された書込みデータが正規マットに書込まれ、消去された場合には、スクランブルデータも拡張マットから消去される。この状態でも、消去前のスクランブル処理された書込みデータと、消去前のスクランブルデータの両方が読出される可能性はあるが、その確率は低いので、ディスクランブル処理によって書込みデータが復元される確率を低くすることができる。
【００９１】
［第２の実施形態の変形例］
第２の実施形態では、書込み列選択回路５１で選択された列、第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行のツインセルに１ビットのスクランブル処理された書込みデータが書込まれることとしたが、これに限定されるものではない。外部からＮビットの書込みデータが入力され、第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行のすべての列のそれぞれに、１ビットのスクランブル処理された書込みデータが書込まれることとしてもよい。
【００９２】
また、第２の実施形態では、スクランブラー６１＿ｉおよびディスクランブラー６５＿ｉは、１ビットのデータＳｉを用いて書込みデータをスクランブル処理およびディスクランブル処理することとしたが、これに限定するものではない。スクランブラー６１＿ｉおよびディスクランブラー６５＿ｉは、Ｎビットのスクランブルデータ（Ｓ１〜ＳＮ）のうちの複数ビットを用いて書込みデータをスクランブル処理およびディスクランブル処理することとしてもよい。
［第３の実施形態］
図９は、第３の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【００９３】
図９の半導体装置が、図８の第２の実施形態の半導体装置と相違する点は、以下である。図８の半導体装置の正規部１００が、Ｎ個のスクランブラー６１＿１〜６１＿ＮとＮ個のディスクランブラー６５＿１〜６５＿Ｎを備えたのに対して、図８の半導体装置の正規部２００が、１個のスクランブラー７１と１個のディスクランブラー７５を備える点である。
【００９４】
スクランブラー７１は、スクランブルデータ発生回路５２からＮビットのスクランブルデータＳ１〜ＳＮを受ける。スクランブラー７１は、書込み列選択回路５１が選択した列がｉで、書込み列選択回路５１から１ビットの書込みデータＤが送られてきたときには、Ｓｉで１ビットの書込みデータをスクランブル処理する。スクランブル処理された書込みデータＤＳｉは、書込みラッチ回路６２Ｐ＿ｉへ送られるとともに、インバータＩＶＮ＿ｉを経由して書込みラッチ回路６２Ｎ＿ｉへ送られる。
【００９５】
ディスクランブラー７５は、読出し列選択回路＆センスアンプ６４から出力された１ビットのスクランブル処理されたツインセルデータＲＤＳｉを、読出し列選択回路＆センスアンプ６６から出力された１ビットのスクランブルデータＲＳｉを用いてディスクランブル処理して、出力バッファ（ＯＢＵＦ）２６へ出力する。ここで、ディスクランブラー７５によるディスクランブル処理の方式は、スクランブラー７１においてスクラブルデータＳｉを用いて変換された書込みデータＤＳｉを同一のスクランブルデータＳｉを用いて元の書込みデータＤに復元できるものでなくてはならない。
【００９６】
以上のように、本実施の形態によれば、１個のスクランブラー７１および１個のディスクランブラー７５によって、Ｎ個の列の書込みデータのスクランブル処理およびディスクランブル処理を行なうので、回路の規模を第２の実施形態よりも小さくすることができる。
【００９７】
［第３の実施形態の変形例］
第３の実施形態においても、第２の実施形態の変形例と同様に、外部からＮビットの書込みデータが入力され、第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行のすべての列のそれぞれに、１ビットのスクランブル処理された書込みデータが書込まれることとしてもよい。
【００９８】
また、スクランブラー７１およびディスクランブラー７５は、Ｎビットのスクランブルデータ（Ｓ１〜ＳＮ）のうちの複数ビットを用いて書込みデータをスクランブル処理およびディスクランブル処理することとしてもよい。
［第４の実施形態］
図１０は、第４の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる拡張部の構成を表わす図である。正規部については、第２の実施形態と同様なので説明を繰り返さない。
【００９９】
拡張部３０１は、図８の第２の実施形態の半導体装置の拡張部１０１と相違する点は、以下である。
【０１００】
図８の拡張部１０１が、２Ｎ個の書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６２Ｎ＿Ｎを備えるのに対して、図１０の拡張部３０１が、６Ｎ個の書込みラッチ回路７３Ｐ１＿１〜７３Ｐ１＿Ｎ，７３Ｐ２＿１〜７３Ｐ２＿Ｎ，７３Ｐ３＿１〜７３Ｐ３＿Ｎ，７３Ｎ１＿１〜７３Ｎ１＿Ｎ，７３Ｎ２＿１〜７３Ｎ２＿Ｎ，７３Ｎ３＿１〜７３Ｎ３＿Ｎを備える。
【０１０１】
図８の拡張部１０１の拡張マットＥＭＡＴ１が、Ｎ×Ｌ個のツインセルＥＴＣ（ｉ，ｊ）を備える（ただし、ｉは１〜Ｎ、ｊ＝１〜Ｌ）のに対して、図１０の拡張部３０１の拡張マットＥＭＡＴ２が、３Ｎ×Ｌ個のツインセルＥＴＣ（ｓ，ｉ，ｊ）を備える（ただし、ｓ＝１〜３、ｉ＝１〜Ｎ、ｊ＝１〜Ｌ）。
【０１０２】
ツインセルＥＴＣ（ｓ，ｉ，ｊ）は、ポジティブセルＥＭＣＰ（ｓ，ｉ，ｊ）とネガティブセルＥＭＣＮ（ｓ，ｉ，ｊ）を含む。ポジティブセルＥＭＣＰ（ｓ，ｉ，ｊ）は、ビット線ＢＬＥＰｓ＿ｉと接続する。ネガティブセルＥＭＣＮ（ｓ，ｉ，ｊ）は、ビット線ＢＬＥＮｓ＿ｉと接続する。
【０１０３】
スクランブルデータ発生回路５２は、ＮビットのスクランブルデータＳ１〜ＳＮを発生する。各ビットＳｉは、書込みラッチ回路７３Ｐ１＿ｉ，７３Ｐ２＿ｉ，７３Ｐ３＿ｉへ送られるとともに、インバータＩＶＥ＿ｉを経由して書込みラッチ回路７３Ｎ１＿ｉ，７３Ｎ２＿ｉ，７３Ｎ３＿ｉへ送られる。
【０１０４】
書込みラッチ回路７３Ｐ１＿ｉ，７３Ｐ２＿ｉ，７３Ｐ３＿ｉは、スクランブルデータ発生回路５２からＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットＳｉを受ける。書込みラッチ回路７３Ｐ１＿ｉ，７３Ｐ２＿ｉ，７３Ｐ３＿ｉは、Ｓｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＥＰ１＿ｉ，ＢＬＥＰ２＿ｉ，ＢＬＥＰ３＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＥＰ１＿ｉ，ＢＬＥＰ２＿ｉ，ＢＬＥＰ３＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＥＭＣＰ（１，ｉ，ｋ），ＥＭＣＰ（２，ｉ，ｋ），ＥＭＣＰ（３，ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【０１０５】
書込みラッチ回路７３Ｐ１＿ｉ，７３Ｐ２＿ｉ，７３Ｐ３＿ｉは、Ｓｉが「１」の場合には、ビット線ＢＬＥＰ１＿ｉ，ＢＬＥＰ２＿ｉ，ＢＬＥＰ３＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＥＰ１＿ｉ，ＢＬＥＰ２＿ｉ，ＢＬＥＰ３＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＥＭＣＰ（１，ｉ，ｋ），ＥＭＣＰ（２，ｉ，ｋ），ＥＭＣＰ（３，ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【０１０６】
書込みラッチ回路７３Ｎ１＿ｉ，７３Ｎ２＿ｉ，７３Ｎ３＿ｉは、インバータＩＶＥ＿ｉからＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットの反転値／Ｓｉを受ける。書込みラッチ回路７３Ｎ１＿ｉ，７３Ｎ２＿ｉ，７３Ｎ３＿ｉは、／Ｓｉが「０」の場合には、書込みパルスＷＮＬＳが活性化された期間、ビット線ＢＬＥＮ１＿ｉ，ＢＬＥＮ２＿ｉ，ＢＬＥＮ３＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＥＮ１＿ｉ，ＢＬＥＮ２＿ｉ，ＢＬＥＮ３＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＥＭＣＮ（１，ｉ，ｋ），ＥＭＣＮ（２，ｉ，ｋ），ＥＭＣＮ（３，ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【０１０７】
書込みラッチ回路７３Ｎ１＿ｉ，７３Ｎ２＿ｉ，７３Ｎ３＿ｉは、／Ｓｉが「１」の場合には、ビット線ＢＬＥＮ１＿ｉ，ＢＬＥＮ２＿ｉ，ＢＬＥＮ３＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＥＮ１＿ｉ，ＢＬＥＮ２＿ｉ，ＢＬＥＮ３＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＥＭＣＮ（１，ｉ，ｋ），ＥＭＣＮ（２，ｉ，ｋ），ＥＭＣＮ（３，ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【０１０８】
読出し列選択回路＆センスアンプ６６は、拡張マットＥＭＡＴ２の第１列〜第Ｎ列のうちのデータを読出す列を選択する。読出し列選択回路＆センスアンプ６６は、選択した列がｊの場合には、ビット線ＢＬＥＰ１＿ｊの電圧とビット線ＢＬＥＮ１＿ｊの電圧の差を増幅し、スクランブルデータを読出して、判定回路７７へ出力する。読出し列選択回路＆センスアンプ６６は、選択した列がｊの場合には、ビット線ＢＬＥＰ２＿ｊの電圧とビット線ＢＬＥＮ２＿ｊの電圧の差を増幅し、スクランブルデータを読出して、判定回路７７へ出力する。読出し列選択回路＆センスアンプ６６は、選択した列がｊの場合には、ビット線ＢＬＥＰ３＿ｊの電圧とビット線ＢＬＥＮ３＿ｊの電圧の差を増幅し、スクランブルデータを読出して、判定回路７７へ出力する。
【０１０９】
第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行がｋ行の場合には、ツインセルＥＴＣ（１，ｊ，ｋ）の第１のスクランブルデータＲＳｊ１、ツインセルＥＴＣ（２，ｊ，ｋ）の第２のスクランブルデータＲＳｊ２、ツインセルＥＴＣ（３，ｊ，ｋ）の第３のスクランブルデータＲＳｊ３が読出される。
【０１１０】
ツインセルＥＴＣ(１，ｊ，ｋ）、ＥＴＣ（２，ｊ，ｋ）、ＥＴＣ（３，ｊ，ｋ）にスクランブルデータＳｊが書込まれた後、ツインセルＥＴＣ(１，ｊ，ｋ）、ＥＴＣ（２，ｊ，ｋ）、ＥＴＣ（３，ｊ，ｋ）のデータが消去されなかった場合には、読出されたデータＲＳｊ１，ＲＳｊ２，ＲＳｊ３はＳｊと等しくなる。一方、ツインセルＥＴＣ(１，ｊ，ｋ）、ＥＴＣ（２，ｊ，ｋ）、ＥＴＣ（３，ｊ，ｋ）のデータが消去された後に、ツインセルＥＴＣ（１，ｊ、ｋ），ＥＴＣ（２，ｊ，ｋ）、ＥＴＣ（３，ｊ，ｋ）からデータが読出された場合には、読出されたデータＲＳｊ１，ＲＳｊ２，ＲＳｊ３は、本来は不定値となるはずであるが、図７を用いて説明したように、Ｓｊと等しくなる場合がある。
【０１１１】
判定回路７７は、第１のスクランブルデータＲＳｉ１と、第２のスクランブルデータＲＳｉ２と、第３のスクランブルデータＲＳｉ３の値がすべて同一のときには、その同一の値を読出したスクランブルデータＲＳｉとして出力する。
【０１１２】
判定回路７７は、第１のスクランブルデータＲＳｉ１と、第２のスクランブルデータＲＳｉ２と、第３のスクランブルデータＲＳｉ３の中の２つが「１」で、残りが「０」の場合には、「０」をスクランブルデータＲＳｉとして出力する。判定回路７７は、第１のスクランブルデータＲＳｉ１と、第２のスクランブルデータＲＳｉ２と、第３のスクランブルデータＲＳｉ３の中の２つが「０」で、残りが「１」の場合には、「１」をスクランブルデータＲＳｉとして出力する。
【０１１３】
以上のように、本実施の形態によれば、拡張マットの３つのツインセルにスクランブルデータを書込み、読出し時には、３つのツインセルから読出されたデータの値に基づいて、スクランブルデータを決定するので、消去前のスクランブルデータが読出される確率を低くすることができる。
【０１１４】
［第５の実施形態］
図１１は、第５の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【０１１５】
図１１の半導体装置が、図８の第２の実施形態の半導体装置と相違する点は、以下である。図８の半導体装置が、２Ｎ個の書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎを備えるのに対して、図１１の拡張部４０１が、Ｎ個の書込みラッチ回路８３＿１〜８３＿Ｎを備える点である。
【０１１６】
また、図８の拡張部１０１の拡張マットＥＭＡＴ１が、Ｎ×Ｌ個のツインセルＥＴＣ（ｉ，ｊ）を備える（ただし、ｉは１〜Ｎ、ｊ＝１〜Ｌ）のに対して、図１１の拡張部４０１の拡張マットＥＭＡＴ３が、Ｎ×Ｌ個のシングルセルＥＭＣ（ｉ，ｊ）を備える（ただし、ｉ＝１〜Ｎ、ｊ＝１〜Ｌ）。シングルセルＥＭＣ（ｉ，ｊ）は、ビット線ＢＬＥ＿ｉと接続する。
【０１１７】
図１２（ａ）に示すように、シングルセルデータ“０”は、メモリセルＭＣがセルデータ“０”（高閾値電圧状態；閾値電圧が消去ベリファイレベル以上の状態）を保持する状態である。図１２（ｂ）に示すように、シングルセルデータ“１”は、メモリセルＭＣがセルデータ“１”（低閾値電圧状態；閾値電圧が消去ベリファイレベルよりも小さい状態）を保持する状態である。
【０１１８】
スクランブルデータ発生回路５２は、ＮビットのスクランブルデータＳ１〜ＳＮを発生する。各ビットＳｉは、書込みラッチ回路８３＿ｉへ送られる。
【０１１９】
書込みラッチ回路８３＿ｉ（ｉ＝１〜Ｎ）は、スクランブルデータ発生回路５２からＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットＳｉを受ける。書込みラッチ回路８３＿ｉは、Ｓｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＥ＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＥ＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのシングルセルＥＭＣ（ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。書込みラッチ回路８３＿ｉは、Ｓｉが「１」の場合には、ビット線ＢＬＥ＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＥ＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのシングルセルＥＭＣ（ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【０１２０】
読出し列選択回路＆センスアンプ８６は、拡張マットＥＭＡＴ３の第１列〜第Ｎ列のうちのデータを読出す列を選択する。読出し列選択回路＆センスアンプ６６のセンスアンプの一方の入力端子は、選択した列がｊの場合には、ビット線ＢＬＥ＿ｊと接続し、他方の入力端子が定電流源回路と接続する。このセンスアンプは、２つの入力端子の電圧の差を増幅し、スクランブルデータを読出してディスクランブラー６５＿ｊへ出力する。
【０１２１】
第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行がｋ行の場合には、シングルセルＥＭＣ（ｊ，ｋ）のスクランブルデータＲＳｊが出力される。シングルセルＥＭＣ(ｊ，ｋ）にスクランブルデータＳｊが書込まれた後、シングルセルＥＭＣ(ｊ，ｋ）のデータが消去されなかった場合に、読出されたデータＲＳｊはＳｊと等しくなる。一方、シングルセルＥＭＣ(ｊ，ｋ）のデータが消去された後に、シングルセルＥＭＣ（ｊ、ｋ）からデータが読出された場合には、読出されたデータＲＳｊは、固定値「１」となる。
【０１２２】
以上のように、本実施の形態によれば、スクランブル処理された書込みデータが正規マットに書込まれ、消去されていない場合には、スクランブル処理された書込みデータとスクランブルデータが正しく読出されるので、ディスクランブル処理によって書込みデータを正常に復元することができる。
【０１２３】
スクランブル処理された書込みデータが正規マットに書込まれ、消去された場合には、スクランブルデータも拡張マットから消去される。この状態では、消去前のスクランブル処理された書込みデータが読出される可能性があるが、消去前のスクランブルデータが読出されることはない（固定値「１」が読出される）ので、ディスクランブル処理によって書込みデータが復元されるのを回避できる。
【０１２４】
［第６の実施形態］
図１３は、第６の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【０１２５】
図１３の半導体装置が、図８の第２の実施形態の半導体装置と相違する点は、以下である。図８の半導体装置の２Ｎ個の書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６２Ｎ＿Ｎを備えるのに対して、図１３の拡張部５０１が、３Ｎ個の書込みラッチ回路９３＿１＿１〜９３＿１＿Ｎ，９３＿２＿１〜９３＿２＿Ｎ，９３＿３＿１〜９３＿３＿Ｎを備える点である。
【０１２６】
また、図８の拡張部１０１の拡張マットＥＭＡＴ１が、Ｎ×Ｌ個のツインセルＥＴＣ（ｉ，ｊ）を備える（ただし、ｉは１〜Ｎ、ｊ＝１〜Ｌ）のに対して、図１３の拡張部５０１の拡張マットＥＭＡＴ４が、３Ｎ×Ｌ個のシングルセルＥＭＣ（ｓ，ｉ，ｊ）を備える（ただし、ｓ＝１〜３、ｉ＝１〜Ｎ、ｊ＝１〜Ｌ）。シングルセルＥＭＣ（ｓ，ｉ，ｊ）は、ビット線ＢＬＥｓ＿ｉと接続する。
【０１２７】
スクランブルデータ発生回路５２は、ＮビットのスクランブルデータＳ１〜ＳＮを発生する。各ビットＳｉは、書込みラッチ回路９３＿１＿ｉ，９３＿２＿ｉ，９３＿３＿ｉへ送られる。
【０１２８】
書込みラッチ回路９３＿１＿ｉ，９３＿２＿ｉ，９３＿３＿ｉは、スクランブルデータ発生回路５２からＮビットのスクランブルデータＳ１〜ＳＮのうちの１ビットＳｉを受ける。書込みラッチ回路９３＿１＿ｉ，９３＿２＿ｉ，９３＿３＿ｉは、Ｓｉが「０」の場合には、書込みパルスＷＰＬＳが活性化された期間、ビット線ＢＬＥ１＿ｉ，ＢＬＥ２＿ｉ，ＢＬＥ３＿ｉを接地電圧Ｖｓｓと接続させることによって、ビット線ＢＬＥ１＿ｉ，ＢＬＥ２＿ｉ，ＢＬＥ３＿ｉに書込み電流が流れるようにする。これによって、選択された行ｋのメモリセルＥＭＣ（１，ｉ，ｋ），ＥＭＣ（２，ｉ，ｋ），ＥＭＣ（３，ｉ，ｋ）の閾値電圧Ｖｔｈが増加し、セルデータ「０」が書込まれる。
【０１２９】
書込みラッチ回路９３＿１＿ｉ，９３＿２＿ｉ，９３＿３＿ｉは、Ｓｉが「１」の場合には、ビット線ＢＬＥ１＿ｉ，ＢＬＥ２＿ｉ，ＢＬＥ３＿ｉを電源電圧ＶＤＤと接続させることによって、ビット線ＢＬＥ１＿ｉ，ＢＬＥ２＿ｉ，ＢＬＥ３＿ｉに書込み電流が流れないようにする。これによって、選択された行ｋのメモリセルＥＭＣ（１，ｉ，ｋ），ＥＭＣ（２，ｉ，ｋ），ＥＭＣ（３，ｉ，ｋ）の閾値電圧Ｖｔｈが変化しない。
【０１３０】
図１４（ａ）に示すように、記憶するＳｉが“０”の場合には、メモリセルＥＭＣ（１，ｉ，ｋ）、ＥＭＣ（２，ｉ，ｋ），ＥＭＣ（３，ｉ，ｋ）はセルデータ“０”（高閾値電圧状態；閾値電圧が消去ベリファイレベル以上の状態）を保持する状態である。図１４（ｂ）に示すように、記憶するＳｉが“１”の場合には、メモリセルＥＭＣ（１，ｉ，ｋ）、ＥＭＣ（２，ｉ，ｋ），ＥＭＣ（３，ｉ，ｋ）はセルデータ“１”（低閾値電圧状態；閾値電圧が消去ベリファイレベルよりも小さい状態）を保持する状態である。
【０１３１】
読出し列選択回路＆センスアンプ９６は、拡張マットＥＭＡＴ４の第１列〜第Ｎ列のうちのデータを読出す列を選択する。
【０１３２】
図１５は、読出し列選択回路＆センスアンプ９６のセンスアンプ９７を表わす図である。センスアンプ９７の一方の入力端子は、選択した列がｊの場合には、ビット線ＢＬＥ１＿ｊ、ＢＬＥ２＿ｊ、およびＢＬＥ３＿ｊと接続し、他方の入力端子が定電流源回路９８と接続する。センスアンプ９７は、２つの入力端子の電圧の差を増幅し、スクランブルデータを読出してディスクランブラー６５＿ｊへ出力する。
【０１３３】
本実施の形態では、３つのメモリセルのうちのいずれかのメモリセルのデータ保持特性が悪く閾値電圧が低下した場合でも、３つのメモリセルからの電流の合計値と定電流源回路９８からの電流の和とが比較されるので、読出しマージンを確保することができる。したがって、定電流源回路９８が出力する定電流は、読出しマージンを考慮した値に設定される。
【０１３４】
第１行デコーダ（ＲＤＥＣ１）２４および第２行デコーダ（ＲＤＥＣ２）２５によって選択された行がｋ行の場合には、シングルセルＥＭＣ（１，ｊ，ｋ）、ＥＭＣ（２，ｊ，ｋ）、ＥＭＣ（３，ｊ，ｋ）のスクランブルデータＲＳｊが出力される。シングルセルＥＭＣ(１，ｊ，ｋ），ＥＭＣ（２，ｊ，ｋ）、ＥＭＣ（３，ｊ，ｋ）にスクランブルデータＳｊが書込まれた後、シングルセルＥＭＣ(１，ｊ，ｋ），ＥＭＣ（２，ｊ，ｋ）、ＥＭＣ（３，ｊ，ｋ）のデータが消去されなかった場合に、読出されたデータＲＳｊはＳｊと等しくなる。一方、シングルセルＥＭＣ(１，ｊ，ｋ），ＥＭＣ（２，ｊｋ）、ＥＭＣ（３，ｊ，ｋ）のデータが消去された後に、シングルセルＥＭＣ（１，ｊ、ｋ），ＥＭＣ（２，ｊ，ｋ），ＥＭＣ（３，ｊ，ｋ）からデータが読出された場合には、読出されたデータＲＳｊは、固定値「１」となる。
【０１３５】
以上のように、本実施の形態によれば、スクランブル処理された書込みデータが正規マットに書込まれ、消去されていない場合には、スクランブル処理された書込みデータとスクランブルデータが正しく読出されるので、ディスクランブル処理によって書込みデータを正常に復元することができる。この際、拡張マット内のスクランブルデータの保持力を第５の実施形態よりも高めることができる。
【０１３６】
スクランブル処理された書込みデータが正規マットに書込まれ、消去された場合には、スクランブルデータも拡張マットから消去される。この状態では、消去前のスクランブル処理された書込みデータが読出される可能性があるが、消去前のスクランブルデータが読出されることはない（固定値「１」が読出される）ので、ディスクランブル処理によって書込みデータが復元されるのを回避できる。
【０１３７】
［第７の実施形態］
図１６は、第７の実施形態の正規部と拡張部の構成を表わす図である。
【０１３８】
図１６に示すように、本実施の形態の半導体装置は、図８の第２の実施形態の正規部１００をＭ個備える（正規部１００＿１〜１００＿Ｎ）。
【０１３９】
つまり、拡張部１０１のスクランブルデータ発生回路５２で生成されたＮビットのスクランブルデータＳ１〜ＳＮがＭ個の正規部１００＿１〜１００＿Ｍのスクランブラー６１＿１〜６１＿Ｎへ送られる。拡張部１０１の読出し列選択回路＆センスアンプ６６から出力された読出されたＮビットのスクランブルデータＲＳ１〜ＲＳＮがＭ個の正規部１００＿１〜１００＿Ｍのディスクランブラー６５＿１〜６５＿Ｎへ送られる。
【０１４０】
ここで、正規部１００＿ｉがＭ個のデータ入力ピンＤＩ１〜ＤＩＭの中のデータ入力ピンＤＩｉに対応し、Ｍ個のデータ出力ピンＤＯ１〜ＤＯＭの中のデータ出力ピンＤＯｉに対応する。
【０１４１】
Ｍ個の正規部１００＿１〜１００＿Ｍが、Ｍ個のデータ入力ピンＤＩ１〜ＤＩＭからのＭビットの書込みデータの同時書込みを実行し、Ｍ個の正規部１００＿１〜１００＿Ｍが同時読出しを実行して、Ｍ個のデータ出力ピンＤＯ１〜ＤＯＭから読出したＭビットのデータを出力する。
【０１４２】
以上のように、本実施の形態では、Ｎビットのスクランブルデータが正規部のＮ×Ｍ列の書込みデータに適用されるので、第２の実施形態に比べて、拡張マットの領域を小さくすることができる。
【０１４３】
［第７の実施形態の変形例］
図１７は、第７の実施形態の変形例の正規部と拡張部の構成を表わす図である。
【０１４４】
図１７に示すように、本変形例の半導体装置は、図９の第３の実施形態の正規部２００をＭ個備える（正規部２００＿１〜２００＿Ｍ）。
【０１４５】
つまり、拡張部１０１のスクランブルデータ発生回路５２で生成されたＮビットのスクランブルデータＳ１〜ＳＮがＭ個の正規部２００＿１〜２００＿Ｍのスクランブラー７１へ送られる。拡張部１０１の読出し列選択回路＆センスアンプ６６から出力された読出されたＮビットのスクランブルデータＲＳ１〜ＲＳＮがＭ個の正規部２００＿１〜２００＿Ｍのディスクランブラー７５へ送られる。
【０１４６】
ここで、第７の実施形態と同様に、正規部２００＿ｉがＭ個のデータ入力ピンＤＩ１〜ＤＩＭの中のデータ入力ピンＤＩｉに対応し、Ｍ個のデータ出力ピンＤＯ１〜ＤＯＭの中のデータ出力ピンＤＯｉに対応する。
【０１４７】
Ｍ個の正規部２００＿１〜２００＿Ｍが、Ｍ個のデータ入力ピンＤＩ１〜ＤＩＭからのＭビットの書込みデータの同時書込みを実行し、Ｍ個の正規部２００＿１〜２００＿Ｍが同時読出しを実行して、Ｍ個のデータ出力ピンＤＯ１〜ＤＯＭから読出したＭビットのデータを出力する。
【０１４８】
以上のように、本変形例では、Ｎビットのスクランブルデータが正規部のＮ×Ｍ列の書込みデータに適用されるので、第３の実施形態に比べて、拡張マットの領域を小さくすることができる。
【０１４９】
［第８の実施形態］
図１８は、第８の実施形態のメモリアレイの１消去ブロック構成を表わす図である。
【０１５０】
１消去ブロックは、正規マットと拡張マットからなる。１消去ブロックの正規マットは、小ブロックＮＭＡＴ＜０＞〜ＮＭＡＴ＜３１＞に分割される。１消去ブロックの拡張マットは、小ブロックＥＭＡＴ＜０＞〜ＥＭＡＴ＜３１＞に分割される。
【０１５１】
正規マットの小ブロックＮＭＡＴ＜ｉ＞と拡張マットの小ブロックＥＭＡＴ＜ｉ＞は、互いに隣接して配置される。一例として、拡張マットの小ブロックＥＭＡＴ＜ｉ＞に格納されたスクランブルデータは、正規マットの小ブロックＮＭＡＴ＜ｉ＞への書込みデータのスクランブル処理およびディスクランブル処理に用いるものとしてもよい。あるいは、拡張マットの小ブロックＥＭＡＴ＜ｉ＞に格納されたスクランブルデータの一部が、正規マットの小ブロックＮＭＡＴ＜ｉ＞への書込みデータのスクランブル処理およびディスクランブル処理に用い、残りが、他の１個以上の正規マットの小ブロックＥＭＡＴ＜ｊ＞（ｊ≠ｉ）への書込みデータのスクランブル処理およびディスクランブル処理に用いることとしてもよい。
【０１５２】
正規マットの小ブロックＮＭＡＴ＜ｉ＞と拡張マットの小ブロックＥＭＡＴ＜ｉ＞のメモリセルは、共通のソース線ＳＬ＜ｉ＞と接続され、これらのメモリセルは、同一のタイミングで消去が実行される。
【０１５３】
図１９に示すように、まず、ソース線ＳＬ＜０＞が活性化され、第１番目に正規マットの小ブロックＮＭＡＴ＜０＞と拡張マットの小ブロックＥＭＡＴ＜０＞のメモリセルが消去される。
【０１５４】
次に、ソース線ＳＬ＜１＞が活性化され、正規マットの小ブロックＮＭＡＴ＜１＞と拡張マットの小ブロックＥＭＡＴ＜１＞のメモリセルが消去される。
【０１５５】
最後に、ソース線ＳＬ＜３１＞が活性化され、正規マットの小ブロックＮＭＡＴ＜３１＞と拡張マットの小ブロックＥＭＡＴ＜３１＞のメモリセルが消去される。
【０１５６】
以上のように、本実施の形態によれば、拡張マットを物理的に分散して配置するので、拡張マットを物理的に集中して配置した場合に生じる、特定の時分割消去時のみ消去するビット数が増加したり、拡張マットを追加で時分割消去しなければならなくなる問題を回避できる。
【０１５７】
本発明は、上記実施形態に限定されるものではなく、たとえば以下のような変形例も含まれる。
【０１５８】
（１）切替制御
本発明の実施の形態の半導体装置は、書込み時に書込みデータをスクランブル処理し、読出し時に読出しデータをディスクランブル処理することとしたが、本発明は、上記第１段階の処理に限定されるものではない。
【０１５９】
たとえば、半導体装置は、通常の書込みおよび読出しの機能と、上記スクランブル処理を伴う書込みおよびディスクランブル処理を伴う読出しの機能の両方を備え、いずれの機能を実行するかを切り替えることができるものとしてもよい。
【０１６０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１６１】
１  マイクロコンピュータ（ＭＣＵ）、２  中央処理装置（ＣＰＵ）、３  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、４  バスインタフェース回路（ＢＩＦ）、５  ランダムアクセスメモリ（ＲＡＭ）、６  フラッシュメモリモジュール（ＦＭＤＬ）、７  フラッシュシーケンサ（ＦＳＱＣ）、８，９  外部入出力ポート（ＰＲＴ）、１０  タイマ（ＴＭＲ）、１１  クロックパルスジェネレータ（ＣＰＧ）、１９  メモリアレイ（ＭＡＲＹ）、２４  第１行デコーダ（ＲＤＥＣ１）、２５  第２行デコーダ（ＲＤＥＣ２）、２９  入出力回路（ＩＯＢＵＦ）、３０  列デコーダ(ＣＤＥＣ)、３１  電源回路(ＶＰＧ)、３２，タイミングジェネレータ（ＴＭＧ）、３３  ベリファイ部、３４  書込み列選択部、３５，５０１  スクランブル部、３６  書込みラッチ部、３７  列選択＆増幅部、３８，５０４  ディスクランブル部、５１  書込み列選択回路、５２  スクランブルデータ発生回路、６１＿１〜６１＿Ｎ，７１  スクランブラー、６２Ｐ＿１〜６２Ｐ＿Ｎ，６２Ｎ＿１〜６２Ｎ＿Ｎ，６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿２，７３Ｐ１＿１〜７３Ｐ１＿Ｎ，７３Ｐ２＿１〜７３Ｐ２＿Ｎ，７３Ｐ３＿１〜７３Ｐ３＿Ｎ，７３Ｎ１＿１〜７３Ｎ１＿Ｎ，７３Ｎ２＿１〜７３Ｎ２＿Ｎ，７３Ｎ３＿１〜７３Ｎ３＿Ｎ，８３＿１〜８３＿Ｎ，９３＿１＿１〜９３＿１＿Ｎ，９３＿２＿１〜９３＿２＿Ｎ，９３＿３＿１〜９３＿３＿Ｎ  書込みラッチ回路、６４，６６  読出し列選択回路＆センスアンプ、６５＿１〜６５＿Ｎ，７５  ディスクランブラー、９７  センスアンプ、９８  定電流源回路、１００，１００＿１〜１００＿Ｍ，２００，２００＿１〜２００＿Ｍ  正規部、１０１，３０１，４０１，５０１  拡張部、ＮＭＡＴ１，ＮＭＡＴ＜０＞〜ＮＭＡＴ＜３１＞  正規マット、ＥＭＡＴ１，ＥＭＡＴ２，ＥＭＡＴ３，ＥＭＡＴ４，ＥＭＡＴ＜０＞〜ＥＭＡＴ＜３１＞  拡張マット、５００  半導体装置、５０２  第１の記憶部、５０３  第２の記憶部、５０６，５０７，５１０，ＭＣＰ（ｉ，ｊ），ＭＣＮ（ｉ，ｊ），ＥＭＣＰ（ｉ，ｊ）,ＥＭＣＮ（ｉ，ｊ），ＥＭＣ（ｉ，ｊ），ＥＭＣ（ｓ，ｉ，ｊ），ＥＭＣＰ（ｓ，ｉ，ｊ），ＥＭＣＮ（ｓ，ｉ，ｊ）  メモリセル、５０５，ＭＴＣ（ｉ，ｊ），ＥＴＣ（ｉ，ｊ），ＥＴＣ（ｓ，ｉ，ｊ）  ツインセル５０９，５１１  書込み部、ＢＬＮＰ＿１〜ＢＬＮＰ＿Ｎ，ＢＬＮＮ＿１〜ＢＬＮＮ＿Ｎ，ＢＬＥＰ＿１〜ＢＬＥＰ＿Ｎ，ＢＬＥＮ＿１〜ＢＬＥＮ＿Ｎ，ＢＬＥ＿１〜ＢＬＥ＿Ｎ  ビット線、ＩＶＮ＿１〜ＩＶＮ＿Ｎ，ＩＶＥ＿１〜ＩＶＥ＿Ｎ  インバータ、ＰＢＵＳ＿Ｄ  周辺データバス、ＤＩ０〜ＤＩＭ  データ入力ピン、ＤＯ０〜ＤＯＭ  データ出力ピン。
【図１】
2015022741.tif 000003
【図２】
2015022741.tif 000004
【図３】
2015022741.tif 000005
【図４】
2015022741.tif 000006
【図５】
2015022741.tif 000007
【図６】
2015022741.tif 000008
【図７】
2015022741.tif 000009
【図８】
2015022741.tif 000010
【図９】
2015022741.tif 000011
【図１０】
2015022741.tif 000012
【図１１】
2015022741.tif 000013
【図１２】
2015022741.tif 000014
【図１３】
2015022741.tif 000015
【図１４】
2015022741.tif 000016
【図１５】
2015022741.tif 000017
【図１６】
2015022741.tif 000018
【図１７】
2015022741.tif 000019
【図１８】
2015022741.tif 000020
【図１９】
2015022741.tif 000021
【手続補正書】
【提出日】平成28年2月8日(2016.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
電気的に書換え可能で、閾値電圧の相違によって相補的に１ビットのデータを記憶するツインセルを含む第１の記憶部と、
電気的に書き換え可能なメモリセルを含む第２の記憶部と、
前記第１の記憶部内の前記ツインセルに書込むデータをスクランブルデータを用いてスクランブル処理するスクランブル部と、
前記第１の記憶部内の前記ツインセルにスクランブル処理後の書込みデータを書込む第１の書込み部と、
前記第２の記憶部内の前記メモリセルに前記スクランブルデータを書込む第２の書込み部と、
前記第２の記憶部から読出されたスクランブルデータを用いて、前記第１の記憶部から読出されたデータをディスクランブル処理するディスクランブル部とを備えた、半導体装置。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項４
【補正方法】変更
【補正の内容】
【請求項４】
前記第２の記憶部は、１つのメモリセルからなり、前記スクランブルデータの１ビットを記憶する複数のシングルセルを含み、前記複数のシングルセルは、スクランブルデータの１ビットを重複して記憶し、
一方の入力端子が前記複数のシングルセルと接続する複数のビット線に同時に接続され、他方の入力端子が定電流源回路と接続されるセンスアンプを備える、請求項１記載の半導体装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明の一実施形態の半導体装置によれば、スクランブル部は、第１の記憶部内のツインセルに書込むデータをスクランブルデータを用いてスクランブル処理する。書込み部は、第１の記憶部内のツインセルにスクランブル処理後の書込みデータを書込む。書込み部は、第２の記憶部内のメモリセルにスクランブルデータを書込む。ディスクランブル部は、第２の記憶部から読出されたスクランブルデータを用いて、第１の記憶部から読出されたデータをディスクランブル処理する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
【図１】第１の実施形態の半導体装置の構成を表わす図である。
【図２】第１の実施形態の半導体装置におけるメモリアレイからのツインセルデータの消去処理の手順を表わすフローチャートである。
【図３】第２の実施形態のマイクロコンピュータの構成を表わす図である。
【図４】フラッシュメモリモジュールの構成を表わす図である。
【図５】（ａ）は、スプリットゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。（ｂ）は、ホットキャリア書込み方式を用いるスタックド・ゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。（ｃ）は、はＦＮトンネル書込み方式を用いるスタックド・ゲート型フラッシュメモリ素子に与えるバイアス電圧の例を表わす図である。
【図６】（ａ）は、ツインセルデータが“０”を記憶する状態を表わす図である。（ｂ）は、ツインセルデータが“１”を記憶する状態を表わす図である。（ｃ）は、ツインセルデータのイニシャライズ状態を表わす図である。
【図７】（ａ）は、ツインセルデータ“０”を消去する際のシーケンスを表わす図である。（ｂ）は、ツインセルデータ“１”を消去する際のシーケンスを表わす図である。
【図８】第２の実施形態のツインセルデータの読出し系、書込み系、消去系の詳細な回路構成を表わす図である。
【図９】第３の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【図１０】第４の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる拡張部の構成を表わす図である。
【図１１】第５の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【図１２】（ａ）は、シングルセルが、シングルセルデータ“０”を記憶する状態を表わす図である。（ｂ）は、シングルセルが、シングルセルデータ“１”を記憶する状態を表わす図である。
【図１３】第６の実施形態の半導体装置におけるツインセルデータの書込みおよび読出しに携わる主要な構成要素を表わす図である。
【図１４】（ａ）は、３個のシングルセルが、シングルセルデータ“０”を記憶する状態を表わす図である。（ｂ）は、３個のシングルセルが、シングルセルデータ“１”を記憶する状態を表わす図である。
【図１５】読出し列選択回路＆センスアンプに含まれるセンスアンプを表わす図である。
【図１６】第７の実施形態の正規部と拡張部の構成を表わす図である。
【図１７】第７の実施形態の変形例の正規部と拡張部の構成を表わす図である。
【図１８】第８の実施形態のメモリアレイの１消去ブロック構成を表わす図である。
【図１９】第８の実施形態における複数のソース線の活性化タイミングを表わす図である。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
ここで、Ｎ個のディスクランブラー６５＿ｉ（ｉ＝１〜Ｎ）によるディスクランブル処理の方式のすべてが同一であってもよいし、すべてが異なっていてもよいし、同一のものと相違するものとが混在していてもよい。ただし、ディスクランブラー６５＿ｉ（ｉ＝１〜Ｎ）によるディスクランブル処理の方式は、対応するスクランブラー６１＿ｉにおいてスクランブルデータＳｉを用いて変換された書込みデータＤＳｉを同一のスクランブルデータＳｉを用いて元の書込みデータＤに復元できるものでなくてはならない。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
図８の拡張部１０１が、２Ｎ個の書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎを備えるのに対して、図１０の拡張部３０１が、６Ｎ個の書込みラッチ回路７３Ｐ１＿１〜７３Ｐ１＿Ｎ，７３Ｐ２＿１〜７３Ｐ２＿Ｎ，７３Ｐ３＿１〜７３Ｐ３＿Ｎ，７３Ｎ１＿１〜７３Ｎ１＿Ｎ，７３Ｎ２＿１〜７３Ｎ２＿Ｎ，７３Ｎ３＿１〜７３Ｎ３＿Ｎを備える。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
読出し列選択回路＆センスアンプ７６は、拡張マットＥＭＡＴ２の第１列〜第Ｎ列のうちのデータを読出す列を選択する。読出し列選択回路＆センスアンプ７６は、選択した列がｊの場合には、ビット線ＢＬＥＰ１＿ｊの電圧とビット線ＢＬＥＮ１＿ｊの電圧の差を増幅し、スクランブルデータを読出して、判定回路７７へ出力する。読出し列選択回路＆センスアンプ７６は、選択した列がｊの場合には、ビット線ＢＬＥＰ２＿ｊの電圧とビット線ＢＬＥＮ２＿ｊの電圧の差を増幅し、スクランブルデータを読出して、判定回路７７へ出力する。読出し列選択回路＆センスアンプ７６は、選択した列がｊの場合には、ビット線ＢＬＥＰ３＿ｊの電圧とビット線ＢＬＥＮ３＿ｊの電圧の差を増幅し、スクランブルデータを読出して、判定回路７７へ出力する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
読出し列選択回路＆センスアンプ８６は、拡張マットＥＭＡＴ３の第１列〜第Ｎ列のうちのデータを読出す列を選択する。読出し列選択回路＆センスアンプ８６のセンスアンプの一方の入力端子は、選択した列がｊの場合には、ビット線ＢＬＥ＿ｊと接続し、他方の入力端子が定電流源回路と接続する。このセンスアンプは、２つの入力端子の電圧の差を増幅し、スクランブルデータを読出してディスクランブラー６５＿ｊへ出力する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１２５
【補正方法】変更
【補正の内容】
【０１２５】
図１３の半導体装置が、図８の第２の実施形態の半導体装置と相違する点は、以下である。図８の半導体装置の２Ｎ個の書込みラッチ回路６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎを備えるのに対して、図１３の拡張部５０１が、３Ｎ個の書込みラッチ回路９３＿１＿１〜９３＿１＿Ｎ，９３＿２＿１〜９３＿２＿Ｎ，９３＿３＿１〜９３＿３＿Ｎを備える点である。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】０１３８
【補正方法】変更
【補正の内容】
【０１３８】
図１６に示すように、本実施の形態の半導体装置は、図８の第２の実施形態の正規部１００をＭ個備える（正規部１００＿１〜１００＿Ｍ）。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１６１
【補正方法】変更
【補正の内容】
【０１６１】
１  マイクロコンピュータ（ＭＣＵ）、２  中央処理装置（ＣＰＵ）、３  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、４  バスインタフェース回路（ＢＩＦ）、５  ランダムアクセスメモリ（ＲＡＭ）、６  フラッシュメモリモジュール（ＦＭＤＬ）、７  フラッシュシーケンサ（ＦＳＱＣ）、８，９  外部入出力ポート（ＰＲＴ）、１０  タイマ（ＴＭＲ）、１１  クロックパルスジェネレータ（ＣＰＧ）、１９  メモリアレイ（ＭＡＲＹ）、２４  第１行デコーダ（ＲＤＥＣ１）、２５  第２行デコーダ（ＲＤＥＣ２）、２９  入出力回路（ＩＯＢＵＦ）、３０  列デコーダ(ＣＤＥＣ)、３１  電源回路(ＶＰＧ)、３２，タイミングジェネレータ（ＴＭＧ）、３３  ベリファイ部、３４  書込み列選択部、３５，５０１  スクランブル部、３６  書込みラッチ部、３７  列選択＆増幅部、３８，５０４  ディスクランブル部、５１  書込み列選択回路、５２  スクランブルデータ発生回路、６１＿１〜６１＿Ｎ，７１  スクランブラー、６２Ｐ＿１〜６２Ｐ＿Ｎ，６２Ｎ＿１〜６２Ｎ＿Ｎ，６３Ｐ＿１〜６３Ｐ＿Ｎ，６３Ｎ＿１〜６３Ｎ＿Ｎ，７３Ｐ１＿１〜７３Ｐ１＿Ｎ，７３Ｐ２＿１〜７３Ｐ２＿Ｎ，７３Ｐ３＿１〜７３Ｐ３＿Ｎ，７３Ｎ１＿１〜７３Ｎ１＿Ｎ，７３Ｎ２＿１〜７３Ｎ２＿Ｎ，７３Ｎ３＿１〜７３Ｎ３＿Ｎ，８３＿１〜８３＿Ｎ，９３＿１＿１〜９３＿１＿Ｎ，９３＿２＿１〜９３＿２＿Ｎ，９３＿３＿１〜９３＿３＿Ｎ  書込みラッチ回路、６４，６６  読出し列選択回路＆センスアンプ、６５＿１〜６５＿Ｎ，７５  ディスクランブラー、９７  センスアンプ、９８  定電流源回路、１００，１００＿１〜１００＿Ｍ，２００，２００＿１〜２００＿Ｍ  正規部、１０１，３０１，４０１，５０１  拡張部、ＮＭＡＴ１，ＮＭＡＴ＜０＞〜ＮＭＡＴ＜３１＞  正規マット、ＥＭＡＴ１，ＥＭＡＴ２，ＥＭＡＴ３，ＥＭＡＴ４，ＥＭＡＴ＜０＞〜ＥＭＡＴ＜３１＞  拡張マット、５００  半導体装置、５０２  第１の記憶部、５０３  第２の記憶部、５０６，５０７，５１０，ＭＣＰ（ｉ，ｊ），ＭＣＮ（ｉ，ｊ），ＥＭＣＰ（ｉ，ｊ）,ＥＭＣＮ（ｉ，ｊ），ＥＭＣ（ｉ，ｊ），ＥＭＣ（ｓ，ｉ，ｊ），ＥＭＣＰ（ｓ，ｉ，ｊ），ＥＭＣＮ（ｓ，ｉ，ｊ）  メモリセル、５０５，ＭＴＣ（ｉ，ｊ），ＥＴＣ（ｉ，ｊ），ＥＴＣ（ｓ，ｉ，ｊ）  ツインセル５０９，５１１  書込み部、ＢＬＮＰ＿１〜ＢＬＮＰ＿Ｎ，ＢＬＮＮ＿１〜ＢＬＮＮ＿Ｎ，ＢＬＥＰ＿１〜ＢＬＥＰ＿Ｎ，ＢＬＥＮ＿１〜ＢＬＥＮ＿Ｎ，ＢＬＥ＿１〜ＢＬＥ＿Ｎ  ビット線、ＩＶＮ＿１〜ＩＶＮ＿Ｎ，ＩＶＥ＿１〜ＩＶＥ＿Ｎ  インバータ、ＰＢＵＳ＿Ｄ  周辺データバス、ＤＩ０〜ＤＩＭ  データ入力ピン、ＤＯ０〜ＤＯＭ  データ出力ピン。
【国際調査報告】
2015022741.tif 000022
2015022741.tif 000023
2015022741.tif 000024
2015022741.tif 000025