(57)【要約】【課題】高いセキュリティを有する半導体装置を提供する。【解決手段】半導体装置は、データを記憶することが可能な複数のメモリセルを有するメモリ領域と、メモリ領域の読出対象のメモリセルを流れる電流と参照電流とを比較することによってデータ読出を行う参照リード方式と、メモリ領域の読出対象の相補データが格納された第１および第２のメモリセルを流れる電流を比較することによってデータ読出を行う相補リード方式とを切り替えることが可能な読出回路と、セキュリティ状態を設定するレジスタと、モードを設定するモードコントローラと、モードコントローラからのモードを設定する信号とレジスタとの値に基づいて、読出回路におけるデータ読出を行う参照リード方式と相補リード方式とを制御する制御回路とを備える。【選択図】図１０
2017174481.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶することが可能な複数のメモリセルを有するメモリ領域と、
前記メモリ領域の読出対象のメモリセルを流れる電流と参照電流とを比較することによってデータ読出を行う参照リード方式と、前記メモリ領域の読出対象の相補データが格納された第１および第２のメモリセルを流れる電流を比較することによってデータ読出を行う相補リード方式とを切り替えることが可能な読出回路と、
セキュリティ状態を設定するレジスタと、
モードを設定するモードコントローラと、
前記モードコントローラからのモードを設定する信号と前記レジスタとの値に基づいて、前記読出回路における前記データ読出を行う前記参照リード方式と前記相補リード方式とを制御する制御回路とを備える、半導体装置。
【請求項２】
前記制御回路は、前記モードコントローラからのブートモードを設定する信号と前記レジスタに格納される読出禁止フラグに従う信号とに基づき、前記読出回路における前記データ読出を行う前記相補リード方式を前記参照リード方式に切り替える、請求項１記載の半導体装置。
【請求項３】
各々が、閾値電圧の相違によって２値データを保持する、第１記憶素子および第２記憶素子を有する複数の相補セルを含むメモリ領域と、
前記相補セルを初期化するための消去制御回路と、
セキュリティ状態を設定するレジスタとを備え、
前記消去制御回路は、
前記レジスタの値が第１の値である場合には、
前記相補セルの前記第１記憶素子および前記第２記憶素子の両方の閾値電圧を下げ、前記第１記憶素子および前記第２記憶素子の少なくとも一方の閾値電圧を第１の書き込みレベルよりも低く初期化レベルよりも高い中間レベルに変更する第１の初期化制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子とのいずれか一方の閾値電圧を前記第１の書き込みレベルに変更する第１の書き込み制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記初期化レベルに変更する第２の初期化制御を実行し、
前記レジスタの値が第２の値である場合には、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記第１の書き込みレベルに変更する第２の書き込み制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記初期化レベルに変更する第３の初期化制御を実行する、半導体装置。
【請求項４】
前記レジスタは、読出禁止フラグの値を格納し、
前記読出禁止フラグの値が前記第１の値は、前記読出禁止フラグが有効である場合であり、前記第２の値は、前記読出禁止フラグが無効である場合である、請求項３記載の半導体装置。
【請求項５】
前記メモリ領域は、ユーザモードで使用するデータを格納するユーザ領域と、設定情報が格納されたセキュリティ領域とを含み、
前記レジスタの値は、リセット動作に従って前記セキュリティ領域に格納されている前記設定情報に基づいて設定される、請求項３記載の半導体装置。
【請求項６】
各々が、閾値電圧の相違によって２値データを保持する、第１記憶素子および第２記憶素子を有する複数の相補セルを含むメモリ領域と、
前記相補セルを初期化するための消去制御回路とを備え、
前記メモリ領域は、通常領域とセキュリティ領域とに分割され、
前記消去制御回路は、
前記セキュリティ領域を初期化する場合には、
前記相補セルの前記第１記憶素子および前記第２記憶素子の両方の閾値電圧を下げ、前記第１記憶素子および前記第２記憶素子の少なくとも一方の閾値電圧を第１の書き込みレベルよりも低く初期化レベルよりも高い中間レベルに変更する第１の初期化制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子とのいずれか一方の閾値電圧を前記第１の書き込みレベルに変更する第１の書き込み制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記初期化レベルに変更する第２の初期化制御を実行し、
前記通常領域を初期化する場合には、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記第１の書き込みレベルに変更する第２の書き込み制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記初期化レベルに変更する第３の初期化制御を実行する、半導体装置。
【請求項７】
前記メモリ領域は、ユーザモードで使用するデータを格納するユーザ領域に相当する、請求項６記載の半導体装置。
【請求項８】
前記消去制御回路は、指定されたアドレスに従って、前記通常領域および前記セキュリティ領域のいずれか一方に対するアクセスであるかを判断する、請求項６記載の半導体装置。
【請求項９】
各々が、閾値電圧の相違によって２値データを保持する、第１記憶素子および第２記憶素子を有する複数の相補セルを含むメモリ領域と、
前記相補セルを初期化するための消去制御回路と、
セキュリティの高い制御処理を実行する第１のコントローラと、
通常の制御処理を実行する第２のコントローラとを備え、
前記消去制御回路は、
前記第１のコントローラからの指示に従って初期化する場合には、
前記相補セルの前記第１記憶素子および前記第２記憶素子の両方の閾値電圧を下げ、前記第１記憶素子および前記第２記憶素子の少なくとも一方の閾値電圧を第１の書き込みレベルよりも低く初期化レベルよりも高い中間レベルに変更する第１の初期化制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子とのいずれか一方の閾値電圧を前記第１の書き込みレベルに変更する第１の書き込み制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記初期化レベルに変更する第２の初期化制御を実行し、
前記第２のコントローラからの指示に従って初期化する場合には、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記第１の書き込みレベルに変更する第２の書き込み制御を実行し、
前記相補セルの前記第１記憶素子と前記第２記憶素子との両方の閾値電圧を前記初期化レベルに変更する第３の初期化制御を実行する、半導体装置。
【請求項１０】
前記メモリ領域は、ユーザモードで使用するデータを格納するユーザ領域と、設定情報が格納されたセキュリティ領域とを含む、請求項９記載の半導体装置。
【請求項１１】
前記ユーザ領域は、通常ユーザ領域とセキュリティユーザ領域とを含む、請求項１０記載の半導体装置。
【請求項１２】
前記消去制御回路は、前記第１のコントローラあるいは前記第２のコントローラからの消去を示すコマンドを受信するコマンド受信用領域を含む、請求項９記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、半導体装置に関し、たとえば、不揮発性メモリを備えたマイクロコンピュータなどの半導体装置に関する。
【背景技術】
【０００２】
中央処理装置及びフラッシュメモリなど搭載したマイクロコンピュータにおいて、フラッシュメモリには当該マクロコンピュータを用いるセットメーカ等が開発したプログラムやパラメータデータ等が書き込まれて利用される。
【０００３】
そのような記憶情報に対して不正アクセスの恐れがある。例えば、そのようなマイクロコンピュータが、外部書込装置（プログラマとも称する）に接続され、フラッシュメモリの記憶領域に対する消去及び書込が可能にされる動作モードを持つ場合、当該動作モードを設定すれば、記憶領域に格納されたプログラムは比較的容易に外部へ読み出すことが可能にされる。
【０００４】
すなわち、マイクロコンピュータは見掛け上、単体フラッシュメモリと同じようにされ、外部から与えられる読み出しのアクセスコマンドにしたがって動作可能な状態にされるからである。
【０００５】
そこで、そのような記憶情報に対する不正アクセスを防止する機密保護のための技術が必要である。
【０００６】
この点で、特開２００３−４４４５７号公報においては、データ書換の利便性とデータ漏洩の防止を両立するために、全面消去を実行後にデータ書込を可能にする方式を提案している。データ書込を可能にするために一時的にセキュリティを解除するが、事前に全面消去を実行することにより、保護していたデータの漏洩を防止する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−４４４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一方で、相補方式のフラッシュメモリは、消去後のデータが不定値になる特徴があり、消去前のデータを読むことが可能である。
【０００９】
したがって、データの漏洩を防止する点で高いセキュリティを有する半導体装置を提供することを目的とする。
【００１０】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
一実施例によれば、半導体装置は、データを記憶することが可能な複数のメモリセルを有するメモリ領域と、メモリ領域の読出対象のメモリセルを流れる電流と参照電流とを比較することによってデータ読出を行う参照リード方式と、メモリ領域の読出対象の相補データが格納された第１および第２のメモリセルを流れる電流を比較することによってデータ読出を行う相補リード方式とを切り替えることが可能な読出回路と、セキュリティ状態を設定するレジスタと、モードを設定するモードコントローラと、モードコントローラからのモードを設定する信号とレジスタとの値に基づいて、読出回路におけるデータ読出を行う参照リード方式と相補リード方式とを制御する制御回路とを備える。
【発明の効果】
【００１２】
一実施例によれば、制御回路は、モードを設定する信号とレジスタとの値に基づいて、読出回路における参照リード方式と読出リード方式とを制御する。参照リード方式に切り替えた場合には、消去済みの領域について消去前のデータを読み出すことはできなくなるためセキュリティを高めることが可能である。
【図面の簡単な説明】
【００１３】
【図１】実施形態１に基づく半導体装置の構成を示すブロック図である。
【図２】メモリセルの構成および動作を説明するための図である。
【図３】メモリセルの構成および動作を説明するための別の図である。
【図４】相補リード方式の場合のセルデータについて説明するための図である。
【図５】参照電流リード方式の場合のセルデータについて説明するための図である。
【図６】図１のフラッシュメモリ６の構成を表わすブロック図である。
【図７】図６の階層センスアンプ帯の詳細な構成を示す図である。
【図８】図７の回路構成において相補リード方式の場合のメモリセル電流の経路を示す図である。
【図９】図７の階層センスアンプ帯の各制御信号線を駆動するための駆動回路の構成を示す図である。
【図１０】図９の制御信号ＣＭＰＬＯＮの生成回路の一例を示す図である。
【図１１】ユーザ領域２２１をリードした場合のデータについて説明する図である。
【図１２】実施形態２に基づく半導体装置の構成を示すブロック図である。
【図１３】実施形態２に基づく消去フローを説明する図である。
【図１４】実施形態２に基づく初期化方法で初期化した場合の、ツインセル（データ「１」）を構成する両メモリセルの閾値電圧分布の遷移を示す図である。
【図１５】実施形態４に基づく半導体装置の構成を示すブロック図である。
【図１６】実施形態４に基づくＣＰＵの種類に基づく消去方式を説明する図である。
【発明を実施するための形態】
【００１４】
実施形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
【００１５】
（実施形態１）
＜Ａ．マイクロコンピュータの構成＞
（ａ１．全体構成）
図１は、実施形態１に基づく半導体装置の構成を示すブロック図である。
【００１６】
図１を参照して、本例においては半導体装置の例としてマイクロコンピュータ（ＭＣＵ）１の構成が示されている。
【００１７】
マイクロコンピュータ１は、たとえばＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）集積回路製造技術などを用いることによって、単結晶シリコンのような１個の半導体チップに形成される。
【００１８】
マイクロコンピュータ１は、中央処理装置（ＣＰＵ）２と、ランダムアクセスメモリ（ＲＡＭ）５と、フラッシュメモリ（ＦＭＤＬ）６とを備える。中央処理装置２は、命令制御部と実行部を備えて命令を実行する。フラッシュメモリ６は、データおよびプログラムを格納する不揮発性メモリとして設けられる。
【００１９】
ＲＡＭ５は、中央処理装置２のワーク領域などに利用される。たとえば、フラッシュメモリ６が書込／消去中で、フラッシュメモリ６からの読出が実行できない場合に、フラッシュメモリ６からＲＡＭ５にデータをコピーすることで、ＣＰＵ２が処理を継続することが可能になる。また、プログラマから受信したフラッシュメモリ６への書込データを一次退避する必要がある場合にも、ＲＡＭ５を使用することが可能である。
【００２０】
マイクロコンピュータ１は、さらに、フラッシュシーケンサ（ＦＳＱＣ）７と、モードコントローラ８と、シリアルＩＯ９と、周辺バス１０とを備える。
【００２１】
フラッシュシーケンサ７は、フラッシュメモリ（ＦＭＤＬ）６に対するコマンドアクセス制御を行う。
【００２２】
本例においては、フラッシュシーケンサ７は、セキュリティ状態を設定するセキュリティ状態レジスタ２３０と、コマンド受信用領域２３１と、アドレス指定レジスタ２３２と、アドレス割当レジスタ２３３とを含む。
【００２３】
アドレス指定レジスタ２３２は、フラッシュメモリ６のどのアドレスに対し書き込み／消去を行うかを指定するためのレジスタである。
【００２４】
アドレス割当レジスタ２３３は、フラッシュメモリ６の領域を区別するアドレスを指定するためのレジスタである。また、領域毎にリード方式を指定するための情報も含まれている。
【００２５】
コマンド受信用領域２３１は、書き込み／消去などのコマンド受信用の領域であり、ＣＰＵ２がコマンド受信用領域２３１に対して特定のコマンドを送信することによって、フラッシュシーケンサ７がフラッシュメモリ６の制御を実行する。
【００２６】
セキュリティ状態レジスタ２３０は、フラッシュメモリ６のセキュリティ設定領域２２２に格納された設定情報のコピーを格納する。
【００２７】
周辺バス１０の各々は、特に制限されないが、データバス、アドレスバスおよびコントロールバスを有する。
【００２８】
周辺バス１０には、フラッシュシーケンサ７、シリアルＩＯ９、ＣＰＵ２が接続される。
【００２９】
モードコントローラ８は、チップ外部からのモード端子１１に対するモード信号ＭＤおよびリセット信号ＲＥＳなどが入力される。
【００３０】
マイクロコンピュータ１のパワーオンリセットあるいはハードウェアリセットによりリセット信号ＲＥＳが「Ｌ」レベルにされると、そのローレベル期間においてマイクロコンピュータ１の内部でリセット動作が行われる。リセット信号ＲＥＳによるリセットの解除後、モード信号ＭＤの状態に応じて、マイクロコンピュータ１の動作モードが決定される。
【００３１】
ＣＰＵ２は、その動作モードに応じたプログラム領域のスタートベクタをリードし、そのアドレスの命令をフェッチし、フェッチした命令を解読して、命令実行を開始する。
【００３２】
シリアルＩＯ９は、外部とのインタフェースに利用可能とされ、アドレス、データ、及び制御信号のインタフェース機能を有する。シリアルＩＯ９は、シリアル通信端子１２を介して外部に設けられたプログラマと接続され、プログラマとの間でデータの授受が実行される。
【００３３】
ＣＰＵ２は、特に制限されないが、フェッチした命令を解読して命令実行を制御する命令制御部と、命令制御部の制御を受けて演算処理を行なって命令を実行する実行部とを有する。例えば、実行部は演算器、汎用レジスタ、プログラムカウンタ、及びステータスレジスタ等を有し、命令制御部は命令レジスタ、命令デコーダ、及び命令シーケンスロジック等を有する。
【００３４】
図１において、ロジック回路としてのフラッシュシーケンサ７と、アレイ構成のフラッシュメモリ６とは、別ＣＡＤツールを用いて設計されているため、便宜上別々の回路ブロックとして図示されているが、双方を合わせて１つのフラッシュメモリとすることも可能である。
【００３５】
ＣＰＵ２は、フラッシュメモリ６に対してデータ書込および初期化のアクセスを行うときは、周辺バス（ＰＢＵＳ）１０経由でフラッシュシーケンサ７にコマンドを発行する。フラッシュシーケンサ７のコマンド受信用領域２３１で当該コマンドが受信される。フラッシュシーケンサ７は、このコマンドに応答して、フラッシュメモリ６の初期化や書込動作の制御を実行する。
【００３６】
フラッシュメモリ６のアレイ領域は、格納するデータの種別に従って分割されている。
具体的には、フラッシュメモリ６は、ブートモードでＣＰＵ２が使用するブートファームウェアを格納するブートファームウェア格納領域２２０と、ユーザモードでＣＰＵ２が使用するユーザプログラムを格納するユーザ領域２２１と、マイクロコンピュータ１のセキュリティ関連に関するデータを格納するセキュリティ設定領域２２２とを含む。
【００３７】
一般的に、不揮発性メモリの記憶方式は、各メモリセルまたはメモリセルのペアに「１」または「０」のデータを記憶させる方式と、メモリセルのペアに「１」および「０」の相補データを記憶させる方式とがある。前者の場合には、メモリセルを流れる電流と参照電流とを比較することによってそのメモリセルのデータが読み出される（以下、参照電流リード方式とも称する）。後者の場合には、ペアを構成する各メモリセルに流れる電流を比較することによってそのメモリセルペアのデータが読み出される（以下、相補リード方式とも称する）。
【００３８】
参照電流リード方式は、相補リード方式に比べて、読出速度が速くできる。しかしながら、メモリセルを十分に消去する必要があるので、書換可能回数が相補リード方式に比べて少ないというデメリットがある。
【００３９】
このため、参照電流リード方式は、頻繁に書換えを行わない領域に用いられることが多い。
【００４０】
一方、相補リード方式の場合には、参照リード方式に比べて読出電流を小さくできるとともに書換可能回数も大きくできる。このため、相補リード方式は、頻繁に書換えを行う領域に用いられる。
【００４１】
本例におけるフラッシュメモリ６のアレイ領域は、領域種別に応じてデータの読出方式が変更可能に設けられている。
【００４２】
一例として、ブートファームウェア格納領域２２０およびセキュリティ設定領域２２２は、頻繁に書換えを行わない参照リード方式、ユーザ領域２２１は、頻繁に書換えを行う相補リード方式に設定されている場合について説明する。
【００４３】
なお、ブートファームウェア格納領域２２０、ユーザ領域２２１およびセキュリティ設定領域２２２のそれぞれのアドレスに関する情報はアドレス割当レジスタ２３３に格納されている。
【００４４】
（ａ２．メモリセルの構成および動作）
図２は、メモリセルの構成および動作を説明するための図である。
【００４５】
図２には、一例として、スプリットゲート型フラッシュメモリ素子の場合が示されている。
【００４６】
図２（Ａ）を参照して、スプリットゲート型フラッシュメモリ素子は、ソース領域とドレイン領域との間のチャネル形成領域の上にゲート絶縁膜を介して配置されたコントロールゲートＣＧとメモリゲートＭＧとを含む。メモリゲートＭＧとゲート絶縁膜の間にはシリコンナイトライドなどの電荷トラップ領域（ＳｉＮ）が配置される。コントロールゲートＣＧはワード線ＷＬに接続され、メモリゲートＭＧはメモリゲート選択線ＭＧＬに接続される。コントロールゲートＣＧ側のドレイン領域（またはソース領域）はビット線ＢＬに接続され、メモリゲートＭＧ側のソース領域（またはドレイン領域）はソース線ＳＬに接続される。
【００４７】
図２（Ｂ）には、スプリットゲート型フラッシュメモリ素子の読出時および書込／消去時におけるビット線ＢＬ、コントロールゲートＣＧ、メモリゲートＭＧ、ソース線ＳＬ、およびウェル領域（ＷＥＬＬ）の電圧設定の例が示されている。
【００４８】
具体的に、メモリセルの閾値電圧Ｖｔｈを下げるには、たとえば、ＢＬ＝１．５Ｖ、ＣＧ＝０．０Ｖ、ＭＧ＝−１０Ｖ、ＳＬ＝６Ｖ、ＷＥＬＬ＝０Ｖに設定される。これによって、ウェル領域（ＷＥＬＬ）とメモリゲートＭＧとの間の高電界によって発生した電子と正孔のうち正孔が、ウェル領域（ＷＥＬＬ）から電荷トラップ領域（ＳｉＮ）に注入される。この処理はメモリゲートを共有する複数のメモリセルを単位として実行される。
【００４９】
メモリセルの閾値電圧Ｖｔｈを上げるには、たとえば、ＢＬ＝０Ｖ、ＣＧ＝１．５Ｖ、ＭＧ＝１０Ｖ、ＳＬ＝６、ＷＥＬＬ＝０Ｖに設定される。この場合、ソース線ＳＬからビット線に書込電流が流れることによって、コントロールゲートとメモリゲートとの境界部分でホットエレクトロンが発生し、発生したホットエレクトロンが電荷トラップ領域（ＳｉＮ）に注入される。電子の注入はビット線電流を流すか否かによって決まるので、この処理はビット単位で制御される。
【００５０】
読出時には、たとえば、ＢＬ＝１．５Ｖ、ＣＧ＝１．５Ｖ，ＭＧ＝０Ｖ、ＳＬ＝０Ｖ、ＷＥＬＬ＝０Ｖに設定される。メモリセルの閾値電圧Ｖｔｈが低ければメモリセルの抵抗は小さくなり（オン状態）、閾値電圧Ｖｔｈが高ければメモリセルの抵抗は大きくなる（オフ状態）。
【００５１】
本例においては、スプリットゲート型フラッシュメモリ素子の場合について説明するが、特に当該素子に限られず、他のメモリ素子についても同様に適用可能である。たとえば、スタックド・ゲート型フラッシュメモリセルを利用することも可能である。
【００５２】
図３は、メモリセルの構成および動作を説明するための別の図である。
図３（Ａ）に示されたスタックド・ゲート型フラッシュメモリ素子は、ソース領域とドレイン領域との間のチャネル形成領域の上にゲート絶縁膜を介してフローティングゲートＦＧとコントロールゲートＣＧがスタックされることによって構成される。コントロールゲートＣＧはワード線ＷＬに接続される。ドレイン領域はビット線ＢＬに接続され、ソース領域はソース線ＳＬに接続される。
【００５３】
図３（Ｂ）および（Ｃ）には、スタックド・ゲート型フラッシュメモリ素子の読出および書込／消去時におけるビット線ＢＬ、ワード線ＷＬ、ソース線ＳＬ、およびウェル領域（ＷＥＬＬ）の電圧設定の例が示されている。図３（Ｂ）は、ホットキャリア書込方式によって閾値電圧Ｖｔｈを上げ、ウェル領域ＷＥＬＬへの電子の放出によって閾値電圧Ｖｔｈを下げる場合の電圧設定例が示されている。図３（Ｃ）はＦＮトンネル書込方式によって閾値電圧Ｖｔｈを上げ、ビット線ＢＬへの電子の放出によって閾値電圧Ｖｔｈを下げる場合の電圧設定例が示されている。
【００５４】
なお、コントロールゲートＣＧを制御電極とも称し、ビット線ＢＬに接続される不純物領域を第１の主電極とも称し、ソース線ＳＬに接続される不純物領域を第２の主電極とも称する。
【００５５】
（ａ３．参照電流リード方式と相補リード方式について）
図４は、相補リード方式の場合のセルデータについて説明するための図である。
【００５６】
図４を参照して、相補リード方式では、メモリアレイ内の予め定められた２個の書換え可能な不揮発性メモリセルＭＣ１，ＭＣ２が１ビットのツインセルとして利用される。本明細書では、メモリセルＭＣ１をポジティブセル、メモリセルＭＣ２をネガティブセルと呼ぶ。メモリセルＭＣ１，ＭＣ２のそれぞれは、セルデータ「１」（低閾値電圧状態；閾値電圧が消去ベリファイレベル未満の状態）またはセルデータ「０」（高閾値電圧状態；閾値電圧が消去ベリファイレベル以上の状態）を保持することができる。
【００５７】
相補リード方式におけるツインセルによる情報記憶は、ツインセルを構成する不揮発性メモリセルＭＣ１，ＭＣ２に相補データを格納することによって行われる。すなわち、図４（Ａ）に示すように、データ「０」は、ポジティブセルＭＣ１がセルデータ「０」を保持し、ネガティブセルＭＣ２がセルデータ「１」を保持する状態である。図４（Ｂ）に示すように、データ「１」はポジティブセルＭＣ１がセルデータ「１」を保持し、ネガティブセルＭＣ２がセルデータ「０」を保持する状態である。図４（Ｃ）に示すように、ツインセルのポジティブセルＭＣ１およびネガティブセルＭＣ２が共にセルデータ「１」を保持する状態はイニシャライズ状態であり、ツインセルのデータは不定になる。
【００５８】
図５は、参照電流リード方式の場合のセルデータについて説明するための図である。
図５を参照して、本例における参照電流リード方式では、メモリアレイ内の予め定められた２個の書換え可能な不揮発性メモリセルＭＣ１，ＭＣ２が１ビットのツインセルとして利用される。
【００５９】
参照リード方式におけるツインセルによる情報記憶は、ツインセルを構成する不揮発性メモリセルＭＣ１，ＭＣ２に同じデータを格納することによって行われる。したがって、参照電流リード方式の場合には、ツインセル内においてポジティブセルとネガティブセルとの区別はない。一例として、データ「０」は、メモリセルＭＣ１およびＭＣ２がセルデータ「０」（高閾値電圧状態）を保持する状態である。データ「１」は、メモリセルＭＣ１およびＭＣ２がセルデータ「１」（低閾値電圧状態）を保持する状態である。
【００６０】
図５（Ａ）に示すように、メモリセルＭＣ１およびＭＣ２がセルデータ「０」（高閾値電圧状態）を保持する状態であるため、メモリセルＭＣ１およびＭＣ２を流れる合計電流はリードレベル（参照電流）と比較した場合に下回る。これによりデータ「０」が読み出される。
【００６１】
図５（Ｂ）に示すように、メモリセルＭＣ１およびＭＣ２がセルデータ「１」（低閾値電圧状態）を保持する状態であるため、メモリセルＭＣ１およびＭＣ２を流れる合計電流はリードレベル（参照電流）と比較した場合に上回る。これによりデータ「１」が読み出される。
【００６２】
（ａ４．フラッシュメモリの構成）
図６は、図１のフラッシュメモリ６の構成を表わすブロック図である。
【００６３】
図６を参照して、紙面の上下方向を列方向と称し、紙面の左右方向を行方向と称する。フラッシュメモリ６は、メモリマット２０と、出力バッファ（ＯＢＵＦ）３４と、第１の行デコーダ（ＲＤＥＣ１）３０と、第２の行デコーダ（ＲＤＥＣ２）３１とを含む。
【００６４】
メモリマット２０は、階層センスアンプ帯２３と、階層センスアンプ帯２３に対して列方向の両側に設けられたメモリアレイ２２，２４とを１つの構成単位（以下、メモリブロック２１と称する）として含む。メモリマット２０には、このようなメモリブロック２１が列方向に複数配置されている（図６では１つのメモリブロック２１のみが代表的に示されている）。以下では、メモリアレイ２２を「上側のメモリアレイ２２」とも称し、メモリアレイ２４を「下側のメモリアレイ２４」とも称する。
【００６５】
メモリマット２０は、行方向に延びる複数のワード線ＷＬ、行方向に延びる複数のメモリゲート選択線ＭＧＬ、行方向に延びる複数のソース線ＳＬ、列方向に延びる複数の副ビット線ＳＢＬを含む。これらの制御信号線はメモリアレイ２２，２４ごとに設けられている。
【００６６】
メモリマット２０は、メモリマット２０で共通に設けられた複数の書込系主ビット線ＷＭＢＬと読出系主ビット線ＲＷＢＬとを含む。書込系主ビット線ＷＭＢＬの各々は、複数の副ビット線ＳＢＬに対応し、対応する副ビット線ＳＢＬに副ビット線セレクタ２６Ｕ，２６Ｄを介して接続される。すなわち、書込系主ビット線ＷＭＢＬおよび副ビット線ＳＢＬは階層化されている。
【００６７】
メモリアレイ２２，２４には、複数のメモリセルＭＣが行列状に配設されている。メモリアレイの行は複数のワード線ＷＬにそれぞれ対応するとともに、複数のメモリゲート選択線ＭＧＬにそれぞれ対応する。すなわち、ワード線ＷＬおよびメモリゲート選択線ＭＧＬは、メモリアレイの行単位で設けられている。メモリアレイの列は、複数の副ビット線ＳＢＬにそれぞれ対応する。すなわち、副ビット線ＳＢＬは、メモリアレイの列単位で設けられている。ソース線ＳＬは、メモリアレイの複数行で共通に接続される。データ読出時には、ソース線ＳＬは接地ノードＶＳＳに接続されている。
【００６８】
なお、図６には、各メモリセルがスプリットゲート型フラッシュメモリ素子である場合が示されている。各メモリセルは、スタックド・ゲート型フラッシュメモリ素子であってもよい。この場合には、メモリゲート選択線ＭＧＬは設けられない。
【００６９】
図６のフラッシュメモリ６の特徴は、１ビットの情報の記憶を２個の不揮発性メモリセルにそれぞれ流れる電流差を検出して読み出す相補リード方式と、１ビットの情報の記憶を２個の不揮発性メモリセルの電流の合計と参照電流との電流差を検出した読み出す参照電流リード方式との切替えが可能である点にある。
【００７０】
フラッシュメモリ６では、共通のワード線ＷＬに接続された書換え可能な１対の不揮発性メモリセルがツインセルとして用いられる。図６のメモリアレイ２４では、共通のワード線ＷＬに接続された１対のメモリセルＭＣ１，ＭＣ２が代表的に示されている。同様にメモリアレイ２２では、共通のワード線ＷＬに接続された１対のメモリセルＭＣ３，ＭＣ４が代表的に示されている。本明細書では、メモリセルＭＣ１，ＭＣ３を「ポジティブセル」と称し、メモリセルＭＣ２，ＭＣ４を「ネガティブセル」と称する。
【００７１】
ツインセルを構成するメモリセルＭＣ１，ＭＣ２において、各メモリゲートＭＧは、対応する共通のメモリゲート選択線ＭＧＬに接続され、各コントロールゲートＣＧは、対応する共通のワード線ＷＬに接続される。各メモリセルのソースは、共通のソース線ＳＬに接続される。メモリセルＭＣ１，ＭＣ２は、さらに、列単位でそれぞれ対応する副ビット線ＳＢＬに接続される。
【００７２】
階層センスアンプ帯２３は、センスアンプＳＡと、読出列セレクタ２５と、副ビット線セレクタ２６Ｕ，２６Ｄとを含む。
【００７３】
センスアンプＳＡは、第１および第２の入力ノードを備え、第１の入力ノードに接続された第１の出力信号線ＣＢＬＵに流れる電流と、第２の入力ノードに接続された第２の出力信号線ＣＢＬＤに流れる電流との差を増幅することによって、両電流値の比較結果を出力する（以下では、第１の出力信号線ＣＢＬＵを上側の出力信号線とも称し、第２の出力信号線ＣＢＬＤを下側の出力信号線とも称する）。センスアンプＳＡの出力信号は、列方向に延びる読出系主ビット線ＲＭＢＬを介して出力バッファ（ＯＢＵＦ）３４に伝達される。出力バッファ３４は、センスアンプＳＡの出力を図１のＣＰＵ２などに出力する。
【００７４】
読出列セレクタ２５は、複数のＰＭＯＳトランジスタ５１Ｕ〜５４Ｕ，５１Ｄ〜５４Ｄを含み、これらのＰＭＯＳトランジスタを切替えることによって、各副ビット線ＳＢＬと上記の出力信号線ＣＢＬＵ，ＣＢＬＤとの接続切替えを行う接続切替え部として機能する（以下、上記のようにスイッチとして用いられるＭＯＳトランジスタをＭＯＳトランジスタスイッチとも称する）。基本的に、上側のメモリアレイ２２で用いられる副ビット線ＳＢＬは、ＰＭＯＳ（Positive-channel  MOS）トランジスタスイッチ（５１Ｕ，５３Ｕ；５２Ｕ，５４Ｕなど）を介して、上側の出力信号線ＣＢＬＵに接続される。同様に、下側のメモリアレイ２４で用いられる副ビット線ＳＢＬは、ＰＭＯＳトランジスタスイッチ（５１Ｄ，５３Ｄ；５２Ｄ，５４Ｄなど）を介して、下側の出力信号線ＣＢＬＤに接続される。
【００７５】
さらに、読出列セレクタ２５は、相補リード方式の場合に、ネガティブセルを上記の基本的な場合の接続先と逆の出力信号線（ＣＢＬＵまたはＣＢＬＤ）に接続するためのＰＭＯＳトランジスタスイッチ５５Ｕ，５５Ｄを含む。たとえば、メモリセルＭＣ１，ＭＣ２によって構成されるツインセルのデータを読み出す場合には、メモリセルＭＣ１は、ＰＭＯＳトランジスタスイッチ５３Ｄ，５１Ｄを介して下側の出力信号線ＣＢＬＤに接続される。メモリセルＭＣ２は、ＰＭＯＳトランジスタスイッチ５４Ｄ，５５Ｄを介して上側の出力信号線ＣＢＬＵに接続される。同様に、メモリセルＭＣ３，ＭＣ４によって構成されるツインセルのデータを読み出す場合には、メモリセルＭＣ３は、ＰＭＯＳトランジスタスイッチ５３Ｕ，５１Ｕを介して上側の出力信号線ＣＢＬＵに接続される。メモリセルＭＣ４は、ＰＭＯＳトランジスタスイッチ５４Ｕ，５５Ｕを介して下側の出力信号線ＣＢＬＤに接続される。
【００７６】
参照電流リード方式の場合には、上記のＰＭＯＳトランジスタスイッチ５５Ｕ，５５Ｄは常時オフ状態となっている。
【００７７】
たとえば、下側のメモリアレイ２４に設けられたメモリセルＭＣ１とＭＣ２のデータを読み出す場合には、ＰＭＯＳトランジスタスイッチ５１Ｄ〜５４Ｄを介して、メモリセルＭＣ１およびＭＣ２が下側の出力信号線ＣＢＬＤに接続される。上側の出力信号線ＣＢＬＵは図示しない参照電流源に接続される。このときＰＭＯＳトランジスタスイッチ５１Ｕ〜５４Ｕもオン状態にすることによって、メモリセルＭＣ３およびＭＣ４に設けられた副ビット線ＳＢＬも上側の出力信号線ＣＢＬＵに接続される。この理由は、下側の出力信号線ＣＢＬＤに接続されている副ビット線ＳＢＬの配線容量と同等の配線容量を上側の出力信号線ＣＢＬＵにも付加するためである。
【００７８】
副ビット線セレクタ２６Ｕ，２６Ｄは、複数のＮＭＯＳ（Negative-channel  MOS）トランジスタスイッチ６０Ｕ，６０Ｄを含み、これらのＮＭＯＳトランジスタスイッチ６０Ｕ，６０Ｄのオンおよびオフを切り替えることによって、書込系主ビット線ＷＭＢＬに対して、対応する副ビット線ＳＢＬを選択的に接続する。
【００７９】
具体的には、メモリアレイ２２に設けられた副ビット線ＳＢＬは、対応する主ビット線ＷＭＢＬとＮＭＯＳトランジスタスイッチ６０Ｕを介して接続される。メモリアレイ２４に設けられた副ビット線ＳＢＬは、対応する主ビット線ＷＭＢＬとＮＭＯＳトランジスタスイッチ６０Ｄを介して接続される。第１の実施形態の場合、副ビット線セレクタ２６Ｕ，２６Ｄは、データ書込時のみに用いられ、データ読出時には用いられない。
【００８０】
第１の行デコーダ（ＲＤＥＣ１）３０は、ワード線ＷＬを選択的に活性化するためのドライバ１８０を含む。第２の行デコーダ（ＲＤＥＣ２）３１は、メモリゲート線ＭＧＬを選択的に活性化するためのドライバ１８２、およびソース線ＳＬを選択的に活性化するためのドライバ１８３を含む。第２の行デコーダ３１は、さらに、副ビット線セレクタ２６Ｕ，２６Ｄを制御する制御信号線ＺＬを選択的に活性化するためのドライバ１８３を含む。この制御信号線ＺＬは、副ビット線セレクタ２６Ｕ，２６Ｄに設けられたＮＭＯＳトランジスタスイッチ６０Ｕ，６０Ｄのゲートに接続される。第１の行デコーダ３０および第２の行デコーダ３１による選択動作は、読出アクセス、データの書込動作および初期化動作（消去動作）ではアドレス情報などに従う。
【００８１】
フラッシュメモリ６は、さらに、入出力バッファ（ＩＯＢＵＦ）３３と、主ビット線電圧制御回路３９と、列デコーダ（ＣＤＥＣ）３２と、書換列セレクタ３８と、ベリファイ回路３７と、電源回路（ＶＰＧ）３５と、タイミングジェネレータ（ＴＭＧ）３６とを含む。
【００８２】
入出力バッファ（ＩＯＢＵＦ）３３は、ＣＰＵ２およびフラッシュシーケンサ７に接続される。入出力バッファ３３は、フラッシュシーケンサ７から書込データを受ける。入出力バッファ３３は、さらに、ベリファイセンスアンプＶＳＡの判定結果をフラッシュシーケンサ７に出力する。また、入出力バッファ３３は、読出データをＣＰＵ２に出力する。
【００８３】
主ビット線電圧制御回路３９は、書込系主ビット線ＷＭＢＬにそれぞれ対応して設けられた複数のプログラムラッチ回路ＰＲＧＬを含む。プログラムラッチ回路ＰＲＧＬは、入出力バッファ３３を介して供給された書込データを保持する。データ書込の際に書込系主ビット線ＷＭＢＬには、対応するプログラムラッチ回路ＰＲＧＬに保持されたデータ（「１」または「０」）に従った書込電流が選択的に流れる。
【００８４】
列デコーダ（ＣＤＥＣ）３２は、アドレス情報などに従って、書込系主ビット線ＷＭＢＬを選択するための制御信号などを生成する。
【００８５】
書換列セレクタ３８は、各書込系主ビット線ＷＭＢＬとベリファイセンスアンプＶＳＡとを選択的に接続するためのＮＭＯＳトランジスタスイッチ８０Ｂと、入出力バッファ３３とプログラムラッチ回路ＰＲＧＬとを選択的に接続するためのＮＭＯＳトランジスタスイッチ８０Ｌとを含む。ＮＭＯＳトランジスタスイッチ８０Ｂ，８０Ｌは、列デコーダ３２からの制御信号に従ってオンまたはオフに切り替わる。ＮＭＯＳトランジスタスイッチ８０Ｌがオンすることによって、対応するプログラムラッチ回路ＰＲＧＬに入出力バッファ３３から書込データが入力される。
【００８６】
ベリファイ回路３７は、書込対象のメモリセルのデータと、プログラムラッチ回路ＰＲＧＬに保持されている書込データとが一致するか否かを判定することによって、書込対象のメモリセルに所望のデータが書き込まれているかどうかを判定する。ベリファイ回路３７は、書込対象のメモリセルのデータを読み出すためのベリファイセンスアンプＶＳＡを含む。ベリファイセンスアンプＶＳＡは、書換列セレクタ３８の選択動作によって（すなわち、対応するＮＭＯＳトランジスタスイッチ８０Ｂがオンすることによって）、書込対象のメモリセルに対応する書込系主ビット線ＷＭＢＬと接続される。
【００８７】
電源回路(ＶＰＧ)３５は、読出、書込、初期化（消去）に必要な各種動作電圧を生成する。生成される複数の電圧のうち、電源電圧（電源ノードＶＤＤの電圧）は、半導体装置内におけるＣＭＯＳ回路の電源電圧である。上述のメモリゲートＭＧ、コントロールゲートＣＧ、ソース線ＳＬ、ウェル（ＷＥＬＬ）、ビット線ＢＬへ与える電圧は、フラッシュシーケンサ７の制御に従って、電源回路（ＶＰＧ）３５で生成されて供給される。
【００８８】
タイミングジェネレータ(ＴＭＧ)３６は、図１のＣＰＵ２等から供給されるアクセスストローブ信号、フラッシュシーケンサ（ＦＳＱＣ）７から供給されるアクセスコマンド等に従って、内部動作タイミングを規定する内部制御信号を生成する。
【００８９】
（ａ５．読出系回路の詳細）
図７は、図６の階層センスアンプ帯の詳細な構成を示す図である。
【００９０】
図７には、図６の階層センスアンプ帯２３のうち、センスアンプＳＡ、読出列セレクタ２５、および下側の副ビット線セレクタ２６Ｄの構成と、下側のメモリアレイ２４の第ｍ行の構成とが示されている。さらに、図６では、読出列セレクタ２５と副ビット線セレクタ２６Ｄとの間に設けられた充放電回路２７Ｄの構成も示されている。なお、図７では図示していないが、読出列セレクタ２５と上側の副ビット線セレクタ２６Ｕとの間にも、充放電回路２７Ｄと同様の構成の充放電回路２７Ｕが設けられている。
【００９１】
図７では、４本の書込系主ビット線ＷＭＢＬ０〜ＷＭＢＬ３、上側のメモリアレイ２２に設けられた８本の副ビット線ＳＢＬ＿Ｕ０〜ＳＢＬ＿Ｕ７、下側のメモリアレイ２４に設けられた８本の副ビット線ＳＢＬ＿Ｄ０〜ＳＢＬ＿Ｄ７、および１本の読出系主ビット線ＲＭＢＬ０が代表的に示されている。図７では図示していないが、実際のフラッシュメモリ６では、これらのビット線が行方向に繰り返して設けられている。
【００９２】
副ビット線ＳＢＬは、１本の書込系主ビット線ＷＭＢＬに対して、メモリアレイごとに２本ずつ割り当てられる。具体的に、下側のメモリアレイ２４では、書込系主ビット線ＷＭＢＬｉ（ただし、ｉ＝０〜３）に副ビット線ＳＢＬ＿Ｄ２×ｉ，ＳＢＬ＿Ｄ２×ｉ＋１が割当てられる。上側のメモリアレイ２２では、書込系主ビット線ＷＭＢＬｉ（ただし、ｉ＝０〜３）に副ビット線ＳＢＬ＿Ｕ２×ｉ，ＳＢＬ＿Ｕ２×ｉ＋１が割当てられる。
【００９３】
ツインセルは、互いに異なる副ビット線ＳＢＬに接続され、かつ、共通のワード線ＷＬに接続されたメモリセル同士で構成される。具体的には、図７の場合において、副ビット線ＳＢＬ＿Ｄ０，ＳＢＬ＿Ｄ４に接続されたメモリセルのうちで、共通のワード線ＷＬに接続されたメモリセル同士がツインセルを構成する。同様に、副ビット線ＳＢＬ＿Ｄｉ，ＳＢＬ＿Ｄｉ＋４（ただし、ｉ＝０〜３）に接続されたメモリセル同士がツインセルを構成する。副ビット線ＳＢＬ＿Ｄ０〜ＳＢＬ＿Ｄ３に接続されたメモリセルはポジティブセルとして用いられ、ＳＢＬ＿Ｄ４〜ＳＢＬ＿Ｄ７に接続されたメモリセルはネガティブセルとして用いられる。上側のメモリアレイ２２に設けられたメモリセルについても同様である。
【００９４】
副ビット線セレクタ２６Ｄは、副ビット線ＳＢＬ＿Ｄ０〜ＳＢＬ＿Ｄ７にそれぞれ対応するＮＭＯＳトランジスタスイッチ６０Ｄ０〜６０Ｄ７と、制御信号線ＺＬ＿Ｄ０，ＺＬ＿Ｄ１とを含む。各ＮＭＯＳトランジスタスイッチ６０Ｄ０〜６０Ｄ７は、対応する副ビット線ＳＢＬと、対応する副ビット線ＳＢＬが割当てられた書込系主ビット線ＷＭＢＬとの間に接続される。制御信号線ＺＬ＿Ｄ０は偶数番目のＮＭＯＳトランジスタスイッチ６０Ｄ０，６０Ｄ２，６０Ｄ４，６０Ｄ６のゲートに接続され、制御信号線ＺＬ＿Ｄ１は奇数番目のＮＭＯＳトランジスタスイッチ６０Ｄ１，６０Ｄ３，６０Ｄ５，６０Ｄ７のゲートに接続される。
【００９５】
充放電回路２７Ｄは、偶数番目の副ビット線ＳＢＬ＿Ｄ０，ＳＢＬ＿Ｄ２，ＳＢＬ＿Ｄ４，ＳＢＬ＿Ｄ６に個別に対応する複数のＰＭＯＳトランジスタスイッチ５８Ｄ０と、奇数番目の副ビット線ＳＢＬ＿Ｄ１，ＳＢＬ＿Ｄ３，ＳＢＬ＿Ｄ５，ＳＢＬ＿Ｄ７に個別に対応する複数のＰＭＯＳトランジスタスイッチ５８Ｄ１と、制御信号線ＣＨ＿Ｄ０Ｎ，ＣＨ＿Ｄ１Ｎとを含む。
【００９６】
各ＰＭＯＳトランジスタスイッチ５８Ｄ０または５８Ｄ１は、対応する副ビット線ＳＢＬと電源ノードＶＤＤとの間に接続される。制御信号線ＣＨ＿Ｄ０Ｎは偶数番目のＰＭＯＳトランジスタ５８Ｄ０のゲートに接続され、制御信号線ＣＨ＿Ｄ１Ｎは奇数番目のＰＭＯＳトランジスタ５８Ｄ１のゲートに接続される。
【００９７】
充放電回路２７Ｄは、さらに、偶数番目の副ビット線ＳＢＬ＿Ｄ０，ＳＢＬ＿Ｄ２，ＳＢＬ＿Ｄ４，ＳＢＬ＿Ｄ６に個別に対応する複数のＮＭＯＳトランジスタスイッチ５９Ｄ０と、奇数番目の副ビット線ＳＢＬ＿Ｄ１，ＳＢＬ＿Ｄ３，ＳＢＬ＿Ｄ５，ＳＢＬ＿Ｄ７に個別に対応する複数のＮＭＯＳトランジスタスイッチ５９Ｄ１と、制御信号線ＤＣ＿Ｄ０，ＤＣ＿Ｄ１とを含む。
【００９８】
各ＮＭＯＳトランジスタスイッチ５９Ｄ０または５９Ｄ１は、対応する副ビット線ＳＢＬと接地ノードＶＳＳとの間に接続される。制御信号線ＤＣ＿Ｄ０は偶数番目のＮＭＯＳトランジスタ５９Ｄ０のゲートに接続され、制御信号線ＤＣ＿Ｄ１は奇数番目の各ＮＭＯＳトランジスタ５９Ｄ１のゲートに接続される。
【００９９】
充放電回路２７Ｕの構成は、上記の充放電回路２７Ｄの構成の説明において、添え字のＤをＵに置き換えたものに相当するので説明を繰返さない。
【０１００】
読出列セレクタ２５は、下側のメモリアレイ２４に設けられている副ビット線ＳＢＬ＿Ｄ０〜ＳＢＬ＿Ｄ７を下側の出力信号線ＣＢＬＤに選択的に接続するためのＰＭＯＳトランジスタスイッチ５１Ｄ，５２Ｄ，５３Ｄ０〜５３Ｄ３，５４Ｄ０〜５４Ｄ３を含む。さらに、読出列セレクタ２５は、上側のメモリアレイ２２に設けられた副ビット線ＳＢＬ＿Ｕ０〜ＳＢＬ＿Ｕ７を上側の出力信号線ＣＢＬＵに選択的に接続するためのＰＭＯＳトランジスタスイッチ５１Ｕ，５２Ｕ，５３Ｕ０〜５３Ｕ３，５４Ｕ０〜５４Ｕ３を含む。
【０１０１】
上記のＰＭＯＳトランジスタスイッチの具体的な接続関係は次のとおりである。まず、ＰＭＯＳトランジスタスイッチ５３Ｄ０〜５３Ｄ３は副ビット線ＳＢＬ＿Ｄ０〜Ｄ３にそれぞれ対応し、各々が、対応の副ビット線ＳＢＬと共通ノード６２Ｄとの間にそれぞれ接続される。ＰＭＯＳトランジスタスイッチ５１Ｄは、共通ノード６２Ｄと下側の出力信号線ＣＢＬＤとの間に接続される。ＰＭＯＳトランジスタスイッチ５４Ｄ０〜５４Ｄ３は副ビット線ＳＢＬ＿Ｄ４〜Ｄ７にそれぞれ対応し、各々が、対応の副ビット線ＳＢＬと共通ノード６３Ｄとの間にそれぞれ接続される。ＰＭＯＳトランジスタスイッチ５２Ｄは、共通ノード６３Ｄと下側の出力信号線ＣＢＬＤとの間に接続される。
【０１０２】
同様に、ＰＭＯＳトランジスタスイッチ５３Ｕ０〜５３Ｕ３は副ビット線ＳＢＬ＿Ｕ０〜Ｕ３にそれぞれ対応し、各々が、対応の副ビット線ＳＢＬと共通ノード６２Ｕとの間にそれぞれ接続される。ＰＭＯＳトランジスタスイッチ５１Ｕは、共通ノード６２Ｕと上側の出力信号線ＣＢＬＵとの間に接続される。ＰＭＯＳトランジスタスイッチ５４Ｕ０〜５４Ｕ３は副ビット線ＳＢＬ＿Ｕ４〜Ｕ７にそれぞれ対応し、各々が、対応の副ビット線ＳＢＬと共通ノード６３Ｕとの間にそれぞれ接続される。ＰＭＯＳトランジスタスイッチ５２Ｕは、共通ノード６３Ｕと上側の出力信号線ＣＢＬＵとの間に接続される。
【０１０３】
読出列セレクタ２５は、さらに、上記のＰＭＯＳトランジスタスイッチのオンおよびオフを切り替えるための制御信号線ＹＲＢ＿Ｄ０Ｎ，ＹＲＢ＿Ｄ１Ｎ，ＹＲＡ＿Ｄ０Ｎ〜ＹＲＡ＿Ｄ３Ｎ，ＹＲＢ＿Ｕ０Ｎ，ＹＲＢ＿Ｕ１Ｎ，ＹＲＡ＿Ｕ０Ｎ〜ＹＲＡ＿Ｕ３Ｎを含む。
【０１０４】
具体的に、制御信号線ＹＲＢ＿Ｄ０Ｎ，ＹＲＢ＿Ｄ１Ｎは、ＰＭＯＳトランジスタスイッチ５１Ｄ，５２Ｄのゲートにそれぞれ接続される。制御信号線ＹＲＡ＿ＤｉＮは（ｉ＝０〜３）、ＰＭＯＳトランジスタスイッチ５３Ｄｉおよび５４Ｄｉのゲートに接続される。各制御信号線ＹＲＡ＿ＤｉＮが、２個のＰＭＯＳトランジスタスイッチ５３Ｄｉ，５４Ｄｉに接続されているのは、ツインセルに対応する２本の副ビット線ＳＢＬを同時に選択するためである。
【０１０５】
同様に、制御信号線ＹＲＢ＿Ｕ０Ｎ，ＹＲＢ＿Ｕ１Ｎは、ＰＭＯＳトランジスタスイッチ５１Ｕ，５２Ｕのゲートにそれぞれ接続される。制御信号線ＹＲＡ＿ＵｉＮは（ｉ＝０〜３）、ＰＭＯＳトランジスタスイッチ５３Ｕｉおよび５４Ｕｉのゲートに接続される。
【０１０６】
読出列セレクタ２５は、さらに、定電流源ＣＳ１，ＣＳ２と、これらの定電流源ＣＳ１，ＣＳ２と上側の出力信号線ＣＢＬＵとの接続をそれぞれ切替えるためのＮＭＯＳトランジスタスイッチ５６Ｕ，５７Ｕと、これらの定電流源ＣＳ１，ＣＳ２と下側の出力信号線ＣＢＬＤとの間の接続をそれぞれ切替えるためのＮＭＯＳトランジスタスイッチ５６Ｄ，５７Ｄとを含む。
【０１０７】
ＰＭＯＳトランジスタ５６Ｕ，５６Ｄは、共通ノード６２Ｕ，６２Ｄと定電流源ＣＳ１との間にそれぞれ接続される。ＰＭＯＳトランジスタ５７Ｕ，５７Ｄは、共通ノード６３Ｕ，６３Ｄと定電流源ＣＳ２との間にそれぞれ接続される。読出列セレクタ２５は、さらに、ＮＭＯＳトランジスタスイッチ５６Ｕ，５７Ｕのゲートに接続された制御信号線ＲＥＦ＿Ｕと、ＮＭＯＳトランジスタスイッチ５６Ｄ，５７Ｄのゲートに接続された制御信号線ＲＥＦ＿Ｄとを含む。
【０１０８】
上記の電流源ＣＳ１，ＣＳ２は、たとえば、定電圧がゲートに印加されたＮＭＯＳトランジスタによって構成される。なお、電流源ＣＳ１，ＣＳ２に相当する参照セルを各メモリアレイ内に設け、参照セルを流れる電流と読出対象のメモリセルを流れる電流とを比較するように階層センスアンプ帯２３を構成してもよい。
【０１０９】
読出列セレクタ２５は、さらに、下側のメモリアレイ２４のネガティブセルと上側の出力信号線ＣＢＬＵとの接続を切替えるためのＰＭＯＳトランジスタスイッチ５５Ｄと、上側のメモリアレイ２２のネガティブセルと下側の出力信号線ＣＢＬＤとの接続を切替えるためのＰＭＯＳトランジスタスイッチ５５Ｕとを含む。ＰＭＯＳトランジスタスイッチ５５Ｄは、共通ノード６３Ｄと上側の出力信号線ＣＢＬＵとの間に接続され、ＰＭＯＳトランジスタスイッチ５５Ｕは、共通ノード６３Ｕと下側の出力信号線ＣＢＬＤとの間に接続される。
【０１１０】
なお、上記の制御信号線の表記において参照符号の末尾がＮの場合には、ローレベル（Ｌレベル）の信号によって当該制御信号線は活性化され、当該活性化された制御信号線に接続されているＰＭＯＳトランジスタスイッチがオン状態になることを意味している。上記の制御信号線の表記において参照符号の末尾がＮでない場合には、ハイレベル（Ｈレベル）の信号によって当該制御信号線は活性化され、当該活性化された制御信号線に接続されているＮＭＯＳトランジスタスイッチがオン状態になることを意味している。
【０１１１】
（ａ６．参照電流リード方式におけるメモリセル電流および参照電流の経路について）
次に、図７を参照して、参照電流リード方式において、ツインセル（メモリセルＭＣ１およびＭＣ２）のデータを読み出す場合のセル電流Ｉｃの経路と参照電流Ｉｒｅｆの経路とについて説明する。
【０１１２】
ツインセル（メモリセルＭＣ１およびＭＣ２）のデータを読み出す場合には、メモリセルＭＣ１およびＭＣ２のコントロールゲートに接続されているワード線ＷＬｍがＨレベルに活性化される。さらに、制御信号線ＹＲＡ＿Ｄ０Ｎ、ＹＲＢ＿Ｄ０Ｎ、ＹＲＢ＿Ｄ１Ｎを活性化させることによって、セル電流Ｉｃを発生させる。セル電流Ｉｃは、セル電流Ｉｃ１とセル電流Ｉｃ２の合計電流になる。セル電流Ｉｃ１は、センスアンプＳＡから、出力信号線ＣＢＬＤ、ＰＭＯＳトランジスタスイッチ５１Ｄ，５３Ｄ０、副ビット線ＳＢＬ＿Ｄ０、メモリセルＭＣ１を順に経由して、ソース線ＳＬに至る方向に流れる。セル電流Ｉｃ２は、センスアンプＳＡから、出力信号線ＣＢＬＤ、ＰＭＯＳトランジスタスイッチ５２Ｄ，５４Ｄ０、副ビット線ＳＢＬ＿Ｄ４、メモリセルＭＣ２を順に経由して、ソース線ＳＬに至る方向に流れる。データ読出時には、ソース線ＳＬは接地ノードＶＳＳに接続されている。
【０１１３】
参照電流Ｉｒｅｆを発生させるためには、制御信号線ＹＲＢ＿Ｕ０Ｎ，ＹＲＢ＿Ｕ１Ｎ、ＲＥＦ＿Ｕを活性化させる。参照電流Ｉｒｅｆは、参照電流Ｉｒｅｆ１とＩｒｅｆ２の合計電流になる。参照電流Ｉｒｅｆ１は、センスアンプＳＡから、出力信号線ＣＢＬＵ、ＰＭＯＳトランジスタスイッチ５１Ｕ，５６Ｕ、電流源ＣＳ１を順に経由して、接地ノードＶＳＳに至る方向に流れる。参照電流Ｉｒｅｆ２は、センスアンプＳＡから、出力信号線ＣＢＬＵ、ＰＭＯＳトランジスタスイッチ５２Ｕ，５７Ｕ、電流源ＣＳ２を順に経由して、接地ノードＶＳＳに至る方向に流れる。
【０１１４】
電流源ＣＳ１およびＣＳ２によって参照電流Ｉｒｅｆの大きさが調整される。参照電流Ｉｒｅｆを発生させる際には、さらに、制御信号線ＹＲＡ＿Ｕ０Ｎを活性化することによって、ＰＭＯＳトランジスタスイッチ５３Ｕ０，５４Ｕ０をオンする。これによって、副ビット線ＳＢＬ＿Ｕ０とＳＢＬ＿Ｕ４の配線容量が、電流源ＣＳ１側とＣＳ２側の出力信号線ＣＢＬＵに付加される。副ビット線ＳＢＬ＿Ｕ０とＳＢＬ＿Ｕ４の配線容量は、メモリセルＭＣ１とメモリセルＭＣ２とに接続された副ビット線ＳＢＬ＿Ｄ０とＳＢＬ＿Ｄ４の配線容量とほぼ同じ値である。したがって、センスアンプＳＡの第１の入力ノードの負荷と第２の入力ノードの負荷とをほぼ等しくすることができるので、セル電流Ｉｃと参照電流Ｉｒｅｆの正確な比較（すなわち、ツインセル（メモリセルＭＣ１およびＭＣ２）のデータの正確な検出）が可能になる。
【０１１５】
センスアンプＳＡは、セル電流Ｉｃと参照電流Ｉｒｅｆとの差を増幅する。センスアンプＳＡの出力信号は、読出系主ビット線ＲＭＢＬ０を介して出力バッファ３４に伝達される。
【０１１６】
なお、参照電流リード方式の場合には、制御信号線ＹＲＢ＿Ｕ１ＣＮ，ＹＲＢ＿Ｄ１ＣＮは常に非活性状態（Ｈレベル）に維持される。すなわち、ＰＭＯＳトランジスタスイッチ５５Ｕ，５５Ｄは常にオフ状態である。
【０１１７】
（ａ７．相補リード方式におけるメモリセル電流の経路について）
図８は、図７の回路構成において相補リード方式の場合のメモリセル電流の経路を示す図である。
【０１１８】
図８では、ツインセルを構成するメモリセルＭＣ１，ＭＣ２のデータを読み出す場合において、メモリセルＭＣ１を流れるセル電流Ｉｃ１の経路と、メモリセルＭＣ２を流れるセル電流Ｉｃ２の経路とが示されている。
【０１１９】
メモリセルＭＣ１，ＭＣ２のデータを読み出す場合には、メモリセルＭＣ１，ＭＣ２に共通に接続されているワード線ＷＬｍが活性化される。この状態で、制御信号線ＹＲＡ＿Ｄ０Ｎ，ＹＲＢ＿Ｄ０Ｎ，ＹＲＢ＿Ｄ１ＣＮを活性化させることによって、セル電流Ｉｃ１およびＩｃ２を発生させる。セル電流Ｉｃ１は、センスアンプＳＡから、出力信号線ＣＢＬＤ、ＰＭＯＳトランジスタスイッチ５１Ｄ，５３Ｄ０、副ビット線ＳＢＬ＿Ｄ０、メモリセルＭＣ１を順に経由して、ソース線ＳＬに至る方向に流れる。セル電流Ｉｃ２は、センスアンプＳＡから、出力信号線ＣＢＬＵ、ＰＭＯＳトランジスタスイッチ５５Ｄ，５４Ｄ０、副ビット線ＳＢＬ＿Ｄ４、メモリセルＭＣ２を順に経由して、ソース線ＳＬに至る方向に流れる。データ読出時には、ソース線ＳＬは接地ノードＶＳＳに接続されている。センスアンプＳＡは、セル電流Ｉｃ１とセル電流Ｉｃ２との差を増幅する。センスアンプＳＡの出力信号は、読出系主ビット線ＲＭＢＬ０を介して出力バッファ３４に伝達される。
【０１２０】
なお、相補リード方式の場合には、制御信号線ＲＥＦ＿Ｕ，ＲＥＦ＿Ｄは常にＬレベルに非活性化され、制御信号線ＹＲＢ＿Ｕ１Ｎ，ＹＲＢ＿Ｄ１Ｎは常にＨレベルに非活性化される。すなわち、ＮＭＯＳトランジスタ５６Ｕ，５６Ｄ，５７Ｕ，５７ＤおよびＰＭＯＳトランジスタ５２Ｕ，５２Ｄは常時オフ状態である。
【０１２１】
（ａ８．階層センスアンプ帯の制御信号線の駆動回路について）
図９は、図７の階層センスアンプ帯の各制御信号線を駆動するための駆動回路の構成を示す図である。
【０１２２】
図９（Ａ）は図６の上側のメモリアレイ２２の読出および書込に関係する制御信号線用の駆動回路の構成を示し、図９（Ｂ）は図６の下側のメモリアレイ２４の読出および書込に関係する制御信号線用の駆動回路を示す。
【０１２３】
図９（Ａ）および（Ｂ）の入力信号のうち、制御信号ＣＭＰＬＯＮは、読出および書込対象のメモリセルが相補リード方式か参照電流リード方式かを区別するための信号であり、図１のフラッシュシーケンサ（ＦＳＱＣ）７から供給される。相補リード方式の場合、制御信号ＣＭＰＬＯＮはＨレベル（「１」）となり、参照電流リード方式の場合、制御信号ＣＭＰＬＯＮはＬレベル（「０」）となる。
【０１２４】
その他の入力信号は、フラッシュシーケンサ（ＦＳＱＣ）７からの制御信号と、図６のタイミングジェネレータ３６からの制御信号と、入出力バッファ（ＩＯＢＵＦ）３３に入力されたアドレスに基づいて、列デコーダ（ＣＤＥＣ）３２によって生成される。特に、制御信号ＹＲＡ＿Ｕ０〜３＿ｉｎ，ＹＲＡ＿Ｄ０〜３＿ｉｎは下位アドレスに基づく列選択信号であり、制御信号ＹＲＢ＿Ｕ０〜３＿ｉｎ，ＹＲＢ＿Ｄ０〜３＿ｉｎは上位アドレスに基づく列選択信号である。
【０１２５】
図９（Ａ）を参照して、制御信号線ＺＬ＿Ｕ０，ＺＬ＿Ｕ１，ＤＣ＿Ｕ０，ＤＣ＿Ｕ１に供給される信号は、それぞれ、制御信号ＺＬ＿Ｕ０＿ｉｎ，ＺＬ＿Ｕ１＿ｉｎ，ＤＣ＿Ｕ０＿ｉｎ，ＤＣ＿Ｕ１＿ｉｎがバッファ１０１，１０２，１０５，１０６によって増幅されることによって生成される。同様に図９（Ｂ）を参照して、制御信号線ＺＬ＿Ｄ０，ＺＬ＿Ｄ１，ＤＣ＿Ｄ０，ＤＣ＿Ｄ１に供給される信号は、それぞれ、制御信号ＺＬ＿Ｄ０＿ｉｎ，ＺＬ＿Ｄ１＿ｉｎ，ＤＣ＿Ｄ０＿ｉｎ，ＤＣ＿Ｄ１＿ｉｎがバッファ１２７，１２８，１２５，１２６によって増幅されることによって生成される。
【０１２６】
図９（Ａ）を参照して、制御信号線ＣＨ＿Ｕ０Ｎ，ＣＨ＿Ｕ１Ｎ，ＹＲＡ＿Ｕ０Ｎ〜ＹＲＡ＿Ｕ３Ｎ，ＹＲＢ＿Ｕ０Ｎに供給される信号は、それぞれ、制御信号ＣＨ＿Ｕ０＿ｉｎ，ＣＨ＿Ｕ１＿ｉｎ，ＹＲＡ＿Ｕ０＿ｉｎ〜ＹＲＡ＿Ｕ３＿ｉｎ，ＹＲＢ＿Ｕ０＿ｉｎがインバータ１０３，１０４，１０７〜１１０，１１２によって反転増幅されることによって生成される。
【０１２７】
同様に図９（Ｂ）を参照して、制御信号線ＣＨ＿Ｄ０Ｎ，ＣＨ＿Ｄ１Ｎ，ＹＲＡ＿Ｄ０Ｎ〜ＹＲＡ＿Ｄ３Ｎ，ＹＲＢ＿Ｄ０Ｎに供給される信号は、それぞれ、制御信号ＣＨ＿Ｄ０＿ｉｎ，ＣＨ＿Ｄ１＿ｉｎ，ＹＲＡ＿Ｄ０＿ｉｎ〜ＹＲＡ＿Ｄ３＿ｉｎ，ＹＲＢ＿Ｄ０＿ｉｎがインバータ１２３，１２４，１１９〜１２２，１１５によって反転増幅されることによって生成される。
【０１２８】
図９（Ａ）を参照して、制御信号線ＲＥＦ＿Ｕ，ＹＲＢ＿Ｕ１Ｎ，ＹＲＢ＿Ｕ１ＣＮに供給される信号は、それぞれ論理ゲート１１１，１１３，１１４によって生成される。具体的に、論理ゲート１１１は、制御信号ＣＭＰＬＯＮ＝「０」（参照電流リード方式）の場合に、制御信号ＲＥＦ＿Ｕ＿ｉｎを増幅した信号を制御信号線ＲＥＦ＿Ｕに出力する。論理ゲート１１１は、制御信号ＣＭＰＬＯＮ＝「１」（相補リード方式）の場合に、制御信号ＲＥＦ＿Ｕ＿ｉｎによらずにＬレベル（「０」）の信号を出力することによって、制御信号線ＲＥＦ＿Ｕを非活性化する。
【０１２９】
論理ゲート１１３は、制御信号ＣＭＰＬＯＮ＝「０」（参照電流リード方式）の場合に、制御信号ＹＲＢ＿Ｕ１＿ｉｎを反転増幅した信号を制御信号線ＹＲＢ＿Ｕ１Ｎに出力する。論理ゲート１１３は、制御信号ＣＭＰＬＯＮ＝「１」（相補リード方式）の場合に、制御信号ＹＲＢ＿Ｕ１＿ｉｎによらずにＨレベル（「１」）の信号を出力することによって、制御信号線ＹＲＢ＿Ｕ１Ｎを非活性化する。
【０１３０】
論理ゲート１１４は、ＣＭＰＬＯＮ＝「０」（参照電流リード方式）の場合に、制御信号ＹＲＢ＿Ｕ１＿ｉｎによらずにＨレベル（「１」）の信号を出力することによって、制御信号線ＹＲＢ＿Ｕ１ＣＮを非活性化する。論理ゲート１１４は、制御信号ＣＭＰＬＯＮ＝「１」（相補リード方式）の場合に、制御信号ＹＲＢ＿Ｕ０＿ｉｎを反転増幅した信号を制御信号線ＹＲＢ＿Ｕ１ＣＮに出力する。
【０１３１】
同様に、図９（Ｂ）を参照して、制御信号線ＲＥＦ＿Ｄ，ＹＲＢ＿Ｄ１Ｎ，ＹＲＢ＿Ｄ１ＣＮに供給される信号は、それぞれ論理ゲート１１８，１１６，１１７によって生成される。具体的に、論理ゲート１１８は、制御信号ＣＭＰＬＯＮ＝「０」（参照電流リード方式）の場合に、制御信号ＲＥＦ＿Ｄ＿ｉｎを増幅した信号を制御信号線ＲＥＦ＿Ｄに出力する。論理ゲート１１８は、制御信号ＣＭＰＬＯＮ＝「１」（相補リード方式）の場合に、制御信号ＲＥＦ＿Ｄ＿ｉｎによらずにＬレベル（「０」）の信号を出力することによって、制御信号線ＲＥＦ＿Ｄを非活性化する。
【０１３２】
論理ゲート１１６は、制御信号ＣＭＰＬＯＮ＝「０」（参照電流リード方式）の場合に、制御信号ＹＲＢ＿Ｄ１＿ｉｎを反転増幅した信号を制御信号線ＹＲＢ＿Ｄ１Ｎに出力する。論理ゲート１１６は、制御信号ＣＭＰＬＯＮ＝「１」（相補リード方式）の場合に、制御信号ＹＲＢ＿Ｄ１＿ｉｎによらずにＨレベル（「１」）の信号を出力することによって、制御信号線ＹＲＢ＿Ｄ１Ｎを非活性化する。
【０１３３】
論理ゲート１１７は、制御信号ＣＭＰＬＯＮ＝「０」（参照電流リード方式）の場合に、制御信号ＹＲＢ＿Ｄ１＿ｉｎによらずにＨレベル（「１」）の信号を出力することによって、制御信号線ＹＲＢ＿Ｄ１ＣＮを非活性化する。論理ゲート１１７は、制御信号ＣＭＰＬＯＮ＝「１」（相補リード方式）の場合に、制御信号ＹＲＢ＿Ｄ０＿ｉｎを反転増幅した信号を制御信号線ＹＲＢ＿Ｄ１ＣＮに出力する。
【０１３４】
（ａ９．制御信号ＣＭＰＬＯＮの生成回路の一例）
図１０は、図９の制御信号ＣＭＰＬＯＮの生成回路の一例を示す図である。
【０１３５】
図１０に示す回路は、図６のフラッシュシーケンサ（ＦＳＱＣ）７に設けられる。この回路は、アドレス割当レジスタ２３３と、比較器２３４と、セキュリティ状態レジスタ２３０と、調整回路２３５とを含む。
【０１３６】
比較器２３４は、ＣＰＵ２がフラッシュメモリ６の読み出し時に出力する読み出し先のアドレス情報ＡＤＤＲと、アドレス割当レジスタ２３３に格納されたアドレス情報とを比較し、両者が一致した場合に制御信号ＰＣＭＰＬＯＮをアサートする。
【０１３７】
アドレス割当レジスタ２３３には、図６のメモリマット２０を構成する複数の領域のうち、相補リード方式で利用したい領域のアドレス情報が予め格納されている。
【０１３８】
例えば、アドレス情報ＡＤＤＲがユーザ領域２２１を指定した場合には、制御信号ＰＣＭＰＬＯＮ＝「１」が出力される。
【０１３９】
制御信号ＰＣＭＰＬＯＮは、調整回路２３５に入力される。調整回路２３５は、制御信号ＰＣＭＰＬＯＮを必要に応じて調整して制御信号ＣＭＰＬＯＮとして出力する。
【０１４０】
具体的には、調整回路２３５は、モード信号ＭＤと、セキュリティ状態レジスタ２３０の読出禁止フラグの値とに基づいて制御信号ＣＭＰＬＯＮを出力する。
【０１４１】
調整回路２３５は、通常の場合に制御信号ＰＣＭＰＬＯＮを制御信号ＣＭＰＬＯＮとしてそのまま出力する。
【０１４２】
例えば、調整回路２３５は、制御信号ＰＣＭＰＬＯＮ（「１」）を制御信号ＣＭＰＬＯＮ（「１」）として出力し、相補リード方式に設定する。
【０１４３】
一方で、本例においては、モード信号ＭＤとしてブートモード信号が入力され、読出禁止フラグが有効である場合に制御信号ＰＣＭＰＬＯＮ（「１」）を制御信号ＣＭＰＬＯＮ（「０」（参照リード方式））に変更する。
【０１４４】
なお、参照電流リード方式と相補リード方式とで、読出タイミングなどを変更する必要があるときは、図６のタイミングジェネレータ３６において生成されるリードタイミング信号をＣＭＰＬＯＮ信号に基づき変更することで安定的な読出が可能になる。
【０１４５】
＜Ｂ．マイクロコンピュータの動作説明＞
（Ｂ１．ブートモードとユーザモードの説明）
ブートモードは、例えば、ＣＰＵ２にブートファームウェア格納領域２２０に格納されたプログラムを実行することが可能である。
【０１４６】
例えば、マイクロコンピュータ１は、モード信号ＭＤとしてブートモードが入力された場合には、ＣＰＵ２は、ブートファームウェア格納領域２２０のプログラムの実行を開始する。このプログラムでは、プログラマからシリアルＩＯ９が受信したコマンドを解析し、プログラマから指示された動作に応じてフラッシュシーケンサ７の制御やフラッシュメモリ６の読出処理を実行する。
【０１４７】
例えば、プログラマから書込／消去を指示するコマンドを受信した場合には、フラッシュシーケンサ７を制御してフラッシュメモリ６の書込／消去を実行する。また、プログラマから読出を指示するコマンドを受信した場合には、指示されたフラッシュメモリ６の領域から読出したデータを、シリアルＩＯ９経由でプログラマへ送信する。
【０１４８】
例えば、マイクロコンピュータ１は、モード信号ＭＤとしてユーザモードが入力された場合には、ＣＰＵ２は、ユーザ領域２２１のプログラムの実行を開始する。
【０１４９】
ユーザ領域２２１のプログラムには、ユーザが開発したインタフェース制御プログラム、消去制御プログラム、書込制御プログラムなどが含まれ、それらのプログラムを実行することにより、当該プログラムに従ってフラッシュメモリ６を消去又は書込可能になる。
【０１５０】
マイクロコンピュータ１のリセット動作中には、フラッシュシーケンサ７はフラッシュメモリ６のセキュリティ設定領域２２２から設定情報を読み出して、セキュリティ状態レジスタ２３０にコピーする。セキュリティ設定領域２２２からセキュリティ状態レジスタ２３０にコピーされる設定情報には、プログラマからのリードを禁止するか否かを判断するフラグ（リード（読出）禁止フラグ）が格納されている。
【０１５１】
（Ｂ２．ユーザ領域２２１の動作説明）
フラッシュシーケンサ７は、ユーザ領域２２１の書込／消去時にはユーザ領域２２１のリード方式を相補リード方式に設定する。
【０１５２】
ユーザ領域２２１に書き込む場合には、ツインセルを構成するそれぞれのメモリセルに相補なデータが書き込まれる。
【０１５３】
また、ユーザ領域２２１を消去した場合には、ツインセルを構成する両方のメモリセルが消去状態になる。
【０１５４】
一方、フラッシュシーケンサ７は、ユーザ領域２２１の書込／消去以外の場合には、所定条件の場合にユーザ領域２２１のリード方式を切り替える。具体的には、相補リード方式から参照リード方式に切り替える。本例においては、モード信号ＭＤとしてブートモード信号が入力され、セキュリティ状態レジスタ２３０の読出禁止フラグが有効である場合にユーザ領域２２１をリードすると制御信号ＣＭＰＬＯＮを「０」（参照リード方式）に変更する。
【０１５５】
これに伴いリード方式は相補リード方式から参照リード方式に切り替わる。
図１１は、ユーザ領域２２１をリードした場合のデータについて説明する図である。
【０１５６】
図１１に示されるように、フラッシュシーケンサ７は、モード信号ＭＤとしてブートモード信号が入力され、セキュリティ状態レジスタ２３０の読出禁止フラグが有効である場合には、フラッシュメモリ６のリード方式を参照電流リード方式に設定する。
【０１５７】
それ以外の場合には、フラッシュメモリ６のリード方式を相補リード方式に設定する。
ユーザ領域２２１について、参照電流リード方式で消去済みの領域をリードした場合、フラッシュメモリは消去を示す値（全て「１」など）を出力する。
【０１５８】
メモリセルＭＣ１，ＭＣ２に相補データが格納された書込済みの領域を参照電流リード方式でリードした場合、メモリセルＭＣ１およびＭＣ２を流れる合計電流は、参照電流に近くなる。合計電流は、メモリセルＭＣ１およびＭＣ２にセルデータ「０」を書き込んだ場合に流れる電流と、メモリセルＭＣ１およびＭＣ２にセルデータ「１」を書き込んだ場合に流れる電流との中間値となる。したがって、フラッシュメモリ６からは不定データが出力される。
【０１５９】
一方で、ユーザ領域２２１について、相補リード方式で書込済みの領域をリードした場合、フラッシュメモリ６は書込んだ値を出力する。
【０１６０】
相補リード方式で消去済みの領域をリードした場合、消去状態にある２つのメモリセルの閾値差によってリード値が変わるため、フラッシュメモリ６は不定値を出力する。
【０１６１】
この際、２つのメモリセルの閾値差が、消去前の書き込みデータに依存する場合があるため、フラッシュメモリ６は消去前のデータを出力する可能性がある。
【０１６２】
したがって、上記したようにモード信号ＭＤとしてブートモード信号が入力され、セキュリティ状態レジスタ２３０の読出禁止フラグが有効である場合に制御信号ＣＭＰＬＯＮを「０」（参照リード方式）に変更することにより、消去済みの領域から消去前のデータを読み出すことができないようにセキュリティ性を向上することが可能である。
【０１６３】
また、上記したようにモード信号ＭＤとしてブートモード信号が入力され、セキュリティ状態レジスタ２３０の読出禁止フラグが有効である場合に制御信号ＣＭＰＬＯＮを「０」（参照リード方式）に変更することにより、書き込み済みの領域からデータを読み出す場合であっても、データが不定となるためデータを読み出すことができないようにセキュリティ性を向上することが可能である。
【０１６４】
これにより、マイクロコンピュータ１の外部にデータ漏洩することを防止することが可能となる。
【０１６５】
なお、本例ではセキュリティ設定情報をマイクロコンピュータ１のリセット動作中にフラッシュシーケンサ７にコピーするが、保護対象となる動作が発生するたびにフラッシュメモリ６のセキュリティ設定情報を読み出すことでセキュリティ機能を実現可能な場合には、セキュリティ状態レジスタ２３０へのコピーをリセット動作中に行わなくてもよい。
【０１６６】
（実施形態２）
上記の実施形態１においては、リード方式を変更することによりセキュリティ性を向上させる方式について説明した。
【０１６７】
実施形態２においては、消去方式を切り替える方式について説明する。
図１２は、実施形態２に基づく半導体装置の構成を示すブロック図である。
【０１６８】
図１２を参照して、マイクロコンピュータ１をマイクロコンピュータ１＃に置換した点が異なる。フラッシュメモリ６をフラッシュメモリ６＃に置換する。
【０１６９】
フラッシュメモリ６＃のユーザ領域２２１は、通常データが格納される通常ユーザ領域１４０とセキュリティ性の高いデータが格納される高セキュリティユーザ領域１４１とに分割されている。
【０１７０】
本例においては、セキュリティ状態レジスタ２３０に格納されているリード禁止フラグが有効か無効かに基づいて消去方式を切り替える。
【０１７１】
具体的には、フラッシュシーケンサ７は、コマンド受信用領域２３１に消去を示すコマンドが受信された場合に、セキュリティ状態レジスタ２３０を確認する。そして、リード禁止フラグが有効であると判断した場合には、高セキュリティイニシャライズモードによる消去を実行する。一方、リード禁止フラグが無効である場合には、高速イニシャライズモードによる消去を実行する。
【０１７２】
マイクロコンピュータ１＃のリセット動作中は、フラッシュシーケンサ７はフラッシュメモリ６＃のセキュリティ設定領域２２２から設定情報を読み出して、セキュリティ状態レジスタ２３０にコピーする。セキュリティ設定領域２２２からセキュリティ状態レジスタ２３０にコピーされる設定情報には、プログラマからのリードを禁止するか否かを判断するフラグ（リード禁止フラグ）が格納されている。
【０１７３】
図１３は、実施形態２に基づく消去フローを説明する図である。
図１３を参照して、フラッシュシーケンサ７は、リード禁止フラグが有効か否かを判断する（ステップＳ２）。
【０１７４】
フラッシュシーケンサ７は、リード禁止フラグが無効であると判断した場合（ステップＳ２においてＹＥＳ）には、アドレス指定レジスタ２３２により指定されたアドレスのメモリセルＭＣ１，ＭＣ２に対してプレライト制御を行う（ステップＳ４）。プレライト制御を行った結果、両メモリセルの閾値電圧Ｖｔｈは高くなる。
【０１７５】
次に、フラッシュシーケンサ７は、指定されたアドレスのメモリセルＭＣ１，ＭＣ２に対してイニシャライズ制御を行う（ステップＳ６）。イニシャライズ制御を行った結果、両メモリセルの閾値電圧Ｖｔｈは低閾値電圧状態となる。
【０１７６】
次に、フラッシュシーケンサ７は、指定されたメモリセルＭＣ１，ＭＣ２が目的とする低閾値電圧状態に到達したか否かを判定する（イニシャライズ・ベリファイ）（ステップＳ８）。具体的には、ベリファイ回路３７は、指定されたアドレスのメモリセルＭＣ１，ＭＣ２のセルデータが低閾値電圧状態に到達したか否かを判断する。
【０１７７】
ステップＳ８において、ベリファイ回路３７の判断結果に基づいて、メモリセルＭＣ１，ＭＣ２のセルデータが低閾値電圧状態に到達したと判断した場合には（ステップＳ８にてＹＥＳ）、消去フローの制御を終了する（エンド）。一方、フラッシュシーケンサ７は、メモリセルＭＣ１，ＭＣ２のセルデータが低閾値電圧状態に到達していないと判断した場合には（ステップＳ８においてＮＯ）、再度イニシャライズ制御を行う指示をフラッシュメモリ６＃へ出力する。
【０１７８】
一方、ステップＳ２において、フラッシュシーケンサ７は、リード禁止フラグが無効でない、すなわち有効と判断した場合（ステップＳ２においてＮＯ）には、アドレス指定レジスタ２３２により指定されたアドレスのメモリセルＭＣ１，ＭＣ２に対して弱いイニシャライズ制御を行う（ステップＳ１０）。具体的には、電源回路３５は、指定されたアドレスのメモリセルＭＣ１，ＭＣ２に対して、ＢＬ＝Ｈｉ−Ｚ（高インピーダンス状態）、ＣＧ＝１．５Ｖ、ＭＧ＝−５Ｖ、ＳＬ＝６Ｖ、ＷＥＬＬ＝０Ｖの電圧を５μｓ間印加する。実際には、目的とする電圧（たとえば、ＭＧ＝−５Ｖ）がメモリセルＭＣ１，ＭＣ２に印加されるまでの遅延時間が存在するため、目的とする電圧がメモリセルＭＣ１，ＭＣ２に印加されている時間は５μｓよりも遅延時間分だけ短くなる。
【０１７９】
次に、フラッシュシーケンサ７は、データ「１」の書き込み制御を行う（ステップＳ１２）。具体的には、電源回路３５は、指定されたアドレスのメモリセルＭＣ２に対してＢＬ＝０Ｖ、ＣＧ＝１．５Ｖ、ＭＧ＝１０Ｖ、ＳＬ＝６、ＷＥＬＬ＝０Ｖの電圧を５μｓ間印加する。目的とする電圧を印可した結果、メモリセルＭＣ２の閾値電圧Ｖｔｈは５Ｖになる。
【０１８０】
次に、フラッシュシーケンサ７は、指定されたメモリセルＭＣ１，ＭＣ２が目的とする閾値電圧Ｖｔｈに到達したか否かを確認する（書込ベリファイ）（ステップＳ１４）。具体的には、電源回路３５は、メモリセルＭＣ１およびＭＣ２に対してＢＬ＝１．５Ｖ、ＣＧ＝１．５Ｖ、ＭＧ＝５Ｖ、ＳＬ＝０Ｖ、ＷＥＬＬ＝０Ｖの電圧を１μｓを印加する。
【０１８１】
ベリファイ回路３７は、指定されたアドレスのメモリセルＭＣ１，ＭＣ２から出力されたセルデータに基づいて正しくデータを書き込めたか否かを判定する。
【０１８２】
フラッシュシーケンサ７は、ベリファイ回路３７の判定結果として正しくデータが書き込めたと判定した場合（ステップＳ１４においてＹＥＳ）には、次のイニシャライズステップ（ステップＳ１６）に進む。一方、フラッシュシーケンサ７は、正しくデータが書き込まれていないと判定した場合（ステップＳ１４においてＮＯ）には、再度データ「１」の書込制御を行う指示をフラッシュメモリ６＃に出力する。
【０１８３】
ステップＳ１６において、プレライト制御を行う。プレライト制御を行った結果、両メモリセルの閾値電圧Ｖｔｈは高くなる。
【０１８４】
次に、フラッシュシーケンサ７は、指定されたアドレスのメモリセルＭＣ１，ＭＣ２の閾値電圧Ｖｔｈを低閾値電圧状態にする（ステップＳ１８）。具体的には、電源回路３５は、メモリセルＭＣ１，ＭＣ２に対してＢＬ＝Ｈｉ−Ｚ（高インピーダンス状態）、ＣＧ＝１．５Ｖ、ＭＧ＝−１０Ｖ、ＳＬ＝６Ｖ、ＷＥＬＬ＝０Ｖの電圧を５０μｓ間印加する。
【０１８５】
次に、フラッシュシーケンサ７は、指定されたメモリセルＭＣ１，ＭＣ２が目的とする低閾値電圧状態に到達したか否かを判断する（イニシャライズ・ベリファイ）（ステップＳ２０）。
【０１８６】
具体的には、ベリファイ回路３７は、指定されたアドレスのメモリセルＭＣ１，ＭＣ２のセルデータが低閾値電圧状態に到達したか否かを判断する。
【０１８７】
ステップＳ２０において、ベリファイ回路３７の判断結果に基づいて、メモリセルＭＣ１，ＭＣ２のセルデータが低閾値電圧状態に到達したと判断した場合には（ステップＳ２０にてＹＥＳ）、消去フローの制御を終了する（エンド）。一方、フラッシュシーケンサ７は、メモリセルＭＣ１，ＭＣ２のセルデータが低閾値電圧状態に到達していないと判断した場合には（ステップＳ２０においてＮＯ）、再度イニシャライズ制御を行う指示をフラッシュメモリ６＃へ出力する。
【０１８８】
図１４は、実施形態２に基づく初期化方法で初期化した場合の、ツインセル（データ「１」）を構成する両メモリセルの閾値電圧分布の遷移を示す図である。
【０１８９】
図１４に示されるように、フラッシュシーケンサ７が、ツインセルにデータ「１」の書き込み制御を行うと、ツインセルのうちのメモリセルＭＣ１は低閾値電圧状態に、メモリセルＭＣ２は高閾値電圧状態になる。
【０１９０】
次に、フラッシュシーケンサ７がプレライト制御を行うと、メモリセルＭＣ１の閾値電圧Ｖｔｈは高閾値電圧状態となり、メモリセルＭＣ２の閾値電圧Ｖｔｈは高くなる。プレライト制御を行った結果、プレライト制御前の両メモリセルの閾値電圧Ｖｔｈの差が影響し、メモリセルＭＣ２の閾値電圧ＶｔｈがメモリセルＭＣ１の閾値電圧Ｖｔｈより高くなる。次に、フラッシュシーケンサ７は、イニシャライズ制御を行う。イニシャライズ制御を行った結果、イニシャライズ前の両メモリセルの閾値電圧Ｖｔｈの差が影響し、メモリセルＭＣ２の閾値電圧ＶｔｈがメモリセルＭＣ１の閾値電圧Ｖｔｈより高くなる。
【０１９１】
したがって、ツインセルのデータが「０」，「１」のいずれの状態から初期化した場合でも、ツインセルのデータは「１」（メモリセルＭＣ２の閾値電圧ＶｔｈがメモリセルＭＣ１の閾値電圧Ｖｔｈより高い状態）となる。
【０１９２】
したがって、上記に基づく初期化方法を実行した場合には、初期化前に書き込まれたツインセルのデータが「０」か「１」かを判定できない。
【０１９３】
本例においては、セキュリティ状態レジスタ２３０に格納されているリード禁止フラグを有効に設定することより、セキュリティ性の高い消去方式による初期化を実行する。これにより、データ漏洩を防止することが可能となる。
【０１９４】
なお、本例ではセキュリティ設定情報をマイクロコンピュータ１のリセット動作中にフラッシュシーケンサ７にコピーするが、保護対象となる動作が発生するたびにフラッシュメモリ６のセキュリティ設定情報を読み出すことでセキュリティ機能を実現可能な場合には、セキュリティ状態レジスタ２３０へのコピーをリセット動作中に行わなくてもよい。
【０１９５】
（実施形態３）
上記においては、リード禁止フラグが有効か無効かに基づいてイニシャライズ制御を切り替える方式について説明した。一方で、初期化する領域種別に従ってイニシャライズ制御を切り替えるようにしても良い。
【０１９６】
具体的には、ユーザ領域２２１における通常ユーザ領域１４０と、高セキュリティユーザ領域１４１とで切り替えるようにしても良い。
【０１９７】
通常ユーザ領域１４０と、高セキュリティユーザ領域１４１とのアドレス情報については、アドレス割当レジスタ２３３に格納されているものとする。
【０１９８】
具体的には、フラッシュシーケンサ７は、アドレス指定レジスタ２３２により指定されたアドレスに従って、アドレス割当レジスタ２３３を確認する。
【０１９９】
そして、フラッシュシーケンサ７は、指定されたアドレスが通常ユーザ領域１４０に対するものであるのか、高セキュリティユーザ領域１４１に対するものであるのかを判断する。
【０２００】
フラッシュシーケンサ７は、指定されたアドレスが高セキュリティユーザ領域１４１に対するものであると判断した場合には、高セキュリティイニシャライズモードによる消去を実行する。一方、フラッシュシーケンサ７は、指定されたアドレスが通常ユーザ領域１４０に対するものであると判断した場合には、高速イニシャライズモードによる消去を実行する。
【０２０１】
当該処理により、高セキュリティユーザ領域１４１についてはセキュリティ性の高い消去方式による初期化を実行する。
【０２０２】
これにより、高セキュリティユーザ領域１４１については高セキュリティイニシャライズによる消去が実行されるためデータの漏洩を防止し、高いセキュリティ性を確保することが可能となる。
【０２０３】
（実施形態４）
上記の実施形態２および３においては、消去方式を切り替えることによりセキュリティ性を高める方式について説明した。
【０２０４】
実施形態３においては、アクセスするＣＰＵの種別に従って消去方式を切り替える場合について説明する。
【０２０５】
図１５は、実施形態４に基づく半導体装置の構成を示すブロック図である。
図１５を参照して、マイクロコンピュータ１をマイクロコンピュータ１Ｐに置換した点が異なる。フラッシュメモリ６をフラッシュメモリ６＃に置換する。
【０２０６】
また、通常のＣＰＵ２、ＲＡＭ５とともに、セキュア用のＣＰＵ２ＳおよびＲＡＭ５Ｓを設けた点が異なる。
【０２０７】
本例においては、セキュリティ制御に関わるソフトウェアプログラムおよびデータを、セキュアＣＰＵ２Ｓ専用の領域に分離することを可能としている。
【０２０８】
ＣＰＵ２は、通常ユーザ領域１４０およびＲＡＭ５に格納されているソフトウェアプログラムとデータを利用してデータ処理を実行する。
【０２０９】
セキュアＣＰＵ２Ｓは、高セキュリティユーザ領域１４１およびセキュアＲＡＭ５Ｓに格納されたソフトウェアプログラムとデータを利用してマイクロコンピュータ１Ｐのセキュリティに関わるデータ処理を実行する。
【０２１０】
フラッシュシーケンサ７は、消去を示すコマンドをコマンド受信用領域２３１に受信すると、いずれのＣＰＵからの指示かを識別して、識別結果に基づいて消去方式を切り替える。
【０２１１】
具体的には、ＣＰＵ２からの指示の場合には、高速イニシャライズモードによる消去を実行する。一方、セキュアＣＰＵ２Ｓからの指示の場合には、高セキュリティイニシャライズモードによる消去を実行する。
【０２１２】
図１６は、実施形態４に基づくＣＰＵの種類に基づく消去方式を説明する図である。
図１６に示されるように、フラッシュシーケンサ７は、ＣＰＵ２から消去を示すコマンドをコマンド受信用領域２３１に受信した場合には、高速イニシャライズモードによる消去を実行する。
【０２１３】
なお、ＣＰＵ２によって高セキュリティユーザ領域１４１が消去されると、セキュアＣＰＵ２Ｓの誤動作によりセキュリティ上の問題が発生する可能性があるため、ＣＰＵ２から高セキュリティユーザ領域１４１に対する消去が指示された場合には、フラッシュシーケンサ７は消去を停止するようにしても良い。
【０２１４】
また、フラッシュシーケンサ７は、セキュアＣＰＵ２Ｓから消去を示すコマンドをコマンド受信用領域２３１に受信した場合には、高セキュリティイニシャライズによる消去を実行する。
【０２１５】
当該処理により、セキュアＣＰＵ２Ｓからの指示による消去は、高セキュリティイニシャライズによる消去が実行されるためデータの漏洩を防止し、高いセキュリティ性を確保することが可能となる。
【０２１６】
以上、本開示を実施形態に基づき具体的に説明したが、本開示は、実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０２１７】
１，１＃，１Ｐ  マイクロコンピュータ、２  中央処理装置、５，５Ｓ  ＲＡＭ、６，６＃  フラッシュメモリ、７  フラッシュシーケンサ、８  モードコントローラ、１０  周辺バス、１１  モード端子、１２  シリアル通信端子、２０  メモリマット、２１  メモリブロック、２２，２４  メモリアレイ、２３  階層センスアンプ帯、２５  読出列セレクタ、２６Ｄ，２６Ｕ  副ビット線セレクタ、２７Ｄ，２７Ｕ  充放電回路、３０  第１の行デコーダ、３１  第２の行デコーダ、３２  列デコーダ、３３  入出力バッファ、３４  出力バッファ、３５  電源回路、３６  タイミングジェネレータ、３７  ベリファイ回路、３８  書換列セレクタ、３９  主ビット線電圧制御回路、２２０  ブートファームウェア格納領域、２２１  ユーザ領域、２２２  セキュリティ設定領域、２３０  セキュリティ状態レジスタ、２３１  コマンド受信用領域、２３２  アドレス指定レジスタ、２３３  アドレス割当レジスタ、２３４  比較器、２３５  調整回路。
【図１】
2017174481.tif 000003
【図２】
2017174481.tif 000004
【図３】
2017174481.tif 000005
【図４】
2017174481.tif 000006
【図５】
2017174481.tif 000007
【図６】
2017174481.tif 000008
【図７】
2017174481.tif 000009
【図８】
2017174481.tif 000010
【図９】
2017174481.tif 000011
【図１０】
2017174481.tif 000012
【図１１】
2017174481.tif 000013
【図１２】
2017174481.tif 000014
【図１３】
2017174481.tif 000015
【図１４】
2017174481.tif 000016
【図１５】
2017174481.tif 000017
【図１６】
2017174481.tif 000018