(57)【要約】【課題】ノイズの増大を抑えつつフラッシュメモリへの書き込み速度を高速化すること。【解決手段】メモリコントローラは、高速書き込みモードでは、第１の個数より多い第２の個数のメモリセルに対して同時に、第１の書き込み電流より電流値が小さい第２の書き込み電流による第１の書き込み動作を行う。メモリコントローラは、第１の書き込み動作完了時、判定処理においてセンスアンプにより書き込み動作が完了していないと判定されたメモリセルに対して同時に、第２の書き込み電流よりも電流値が大きい第３の書き込み電流による第２の書き込み動作を行う。【選択図】図６
2020071889.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルと、
前記複数のメモリセルを制御するメモリコントローラと、
チャージポンプと、
前記メモリセルに対する書き込み動作が完了したかどうかの判定処理を行うセンスアンプと、
を備え、
前記メモリコントローラは、第１の個数の前記メモリセルに対して同時に、第１の書き込み電流による書き込み動作を行う通常書き込みモードに対し、高速書き込みモードでは、前記第１の個数より多い第２の個数の前記メモリセルに対して同時に、前記第１の書き込み電流より電流値が小さい第２の書き込み電流による第１の書き込み動作を行い、前記第１の書き込み動作完了時、前記判定処理において前記センスアンプにより書き込み動作が完了していないと判定された前記メモリセルに対して同時に、前記第２の書き込み電流よりも電流値が大きい第３の書き込み電流による第２の書き込み動作を行う、
半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記第１の書き込み動作では、前記メモリコントローラは、前記第２の書き込み電流のパルスを第１の回数印加する、
半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記第１の書き込み動作では、前記パルスが１回印加されるごとに前記センスアンプによる前記判定処理が行われる、
半導体装置。
【請求項４】
請求項１に記載の半導体装置において、
前記第２の個数と前記第２の書き込み電流の電流値との積は、前記第１の個数と前記第１の書き込み電流の電流値との積以下である、
半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記第２の個数は、前記第１の個数の２倍の値であり、前記第２の書き込み電流の電流値は、前記第１の書き込み電流の電流値の１／２倍の値である、
半導体装置。
【請求項６】
請求項１に記載の半導体装置において、
前記第３の書き込み電流の電流値は、前記第１の書き込み電流の電流値と同一である、
半導体装置。
【請求項７】
請求項１に記載の半導体装置において、
前記第１の書き込み動作が行われる前記メモリセルのそれぞれに対応して設けられ、前記センスアンプの判定結果に基づいて前記第２の書き込み動作の要否を切り換えるスイッチ回路を備えている、
半導体装置。
【請求項８】
請求項７に記載の半導体装置において、
前記センスアンプ及び前記スイッチ回路は、ビット線ごとに設けられている、
半導体装置。
【請求項９】
請求項１に記載の半導体装置において、
前記メモリコントローラは、低ノイズ書き込みモードでは、前記メモリセルへの書き込み電流、及び同時に書き込まれる前記メモリセルの個数により規定される前記チャージポンプの能力を前記通常書き込みモードよりも低く設定し、設定された前記能力を超えない範囲で、前記第１の個数以下の第３の個数のメモリセルに対して同時に、前記第１の書き込み電流より電流値が小さい第４の書き込み電流による書き込み動作を同時に行う第３の書き込み動作を行い、前記第３の書き込み動作完了時、前記判定処理において前記センスアンプにより書き込み動作が完了していないと判断された前記メモリセルに対し前記第４の書き込み電流より電流値が大きい第５の書き込み電流による書き込み動作を行う、
半導体装置。
【請求項１０】
請求項９に記載の半導体装置において、
前記第３の書き込み動作では、前記メモリコントローラは、前記第４の書き込み電流のパルスを第２の回数印加する、
半導体装置。
【請求項１１】
請求項１０に記載の半導体装置において、
前記第３の書き込み動作では、前記パルスが１回印加されるごとに前記センスアンプによる前記判定処理が行われる、
半導体装置。
【請求項１２】
請求項１に記載の半導体装置において、
前記メモリコントローラは、低電圧書き込みモードでは、前記メモリセルの閾値電圧を初期閾値電圧に設定し、選択した複数の前記メモリセルに対して同時に、電流値が初期電流値の書き込み電流による書き込み動作を行い、すべての前記選択した複数のメモリセルが、前記判定処理において前記センスアンプにより書き込み動作が完了したと判定された場合には、前記メモリセルの閾値電圧を前記初期閾値電圧より高い値に設定し、少なくとも一部の前記メモリセルが、前記判定処理において前記センスアンプにより書き込み動作が完了していないと判定された場合には、書き込み電流の電流値を前記初期電流値より大きい値に切り換えながら、最終的に書き込み動作が完了したと判定される最終閾値電圧において、すべての前記選択した複数のメモリセルが、前記判定処理において前記センスアンプにより書き込み動作が完了したと判定されるまで書き込み動作を行う、
半導体装置。
【請求項１３】
請求項１２に記載の半導体装置において、
前記メモリコントローラは、前記メモリセルの閾値電圧を前記最終閾値電圧に設定し、前記書き込み電流の前記電流値を複数回切り換え、それぞれの前記電流値における複数の前記メモリセルの閾値電圧の分布を取得する、
半導体装置。
【請求項１４】
請求項１３に記載の半導体装置において、
前記メモリコントローラは、前記最終閾値電圧より小さい閾値電圧において書き込み可能な電流値から、前記最終閾値電圧より大きい閾値電圧において書き込み可能な電流値まで、前記書き込み電流の前記電流値を順次高くする、
半導体装置。
【請求項１５】
請求項１に記載の半導体装置において、
前記半導体装置は、不揮発性メモリである、
半導体装置。
【請求項１６】
請求項１５に記載の半導体装置において、
前記不揮発性メモリは、フラッシュメモリである、
半導体装置。
【請求項１７】
請求項１に記載の半導体装置において、
ＣＰＵを備え、
前記メモリコントローラは、前記ＣＰＵにより制御される、
半導体装置。
【請求項１８】
請求項１７に記載の半導体装置において、
前記半導体装置は、車載用半導体装置である、
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。
【背景技術】
【０００２】
例えば車載用の半導体装置には、ＣＰＵ（Central Processing Unit）やフラッシュメモリ等の不揮発性メモリ等が搭載されている。近年、車載用半導体装置は、ＯＴＡ（Over The Air）等の各種機能が搭載される等、高機能化が進んでいる。これに伴い、コード量及びデータ量が増大するため、フラッシュメモリの容量は大容量化している。
【０００３】
ところが、フラッシュメモリの容量が増大すると、テスト時間が長くなり、テストコストが増大する。そこで、例えば特許文献１には、不揮発性メモリセルに対する書き込み動作を高速化する半導体集積回路等が開示されている。
【０００４】
具体的には、特許文献１のフラッシュメモリは、第１のしきい値電圧を持つ前記不揮発性メモリセルのしきい値電圧が第２のしきい値電圧に変化されるまで不揮発性メモリセルにパルス状電圧を与える。また、フラッシュメモリは、書き込みモードとして、パルス状電圧の印加毎に変化される不揮発性メモリセルのしきい値電圧の変化量が相対的に大きくされる第１の書込みモード（粗い書込み）と、相対的に小さくされる第２の書込みモード（高精度書込み）とを有する。メモリセルのしきい値電圧を変化させるのに必要なパルスの数は、粗い書込みモードの方が少ない。このため、粗い書込みモードが用いられた場合のベリファイ回数の方が少なく、これによって全体としての書込み動作が高速化される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１０６２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法では、フラッシュメモリへの書き込み時間は十分に短縮されているとは言えず、更なる書き込み時間の短縮が求められている。例えば、特許文献１の構成において、データ書き換え時における選択セル数を増やせば、スループットが向上し、書き込み時間が短縮される。しかし、選択セル数が増えると、より多くの電流が必要となるためチャージポンプに掛かる負荷が大きくなる。また、電流量の増大によるノイズの影響も大きくなる。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本明細書には、複数の実施の形態の半導体装置が記載されているが、一実施の形態の半導体装置を述べると、次の通りである。半導体装置は、複数のメモリセルと、複数のメモリセルを制御するメモリコントローラと、チャージポンプと、メモリセルに対する書き込み動作が完了したかどうかの判定処理を行うセンスアンプと、を備えている。メモリコントローラは、第１の個数のメモリセルに対して同時に、第１の書き込み電流による書き込み動作を行う通常書き込みモードに対し、高速書き込みモードでは、第１の個数より多い第２の個数のメモリセルに対して同時に、第１の書き込み電流より電流値が小さい第２の書き込み電流による第１の書き込み動作を行う。メモリコントローラは、第１の書き込み動作完了時、判定処理においてセンスアンプにより書き込み動作が完了していないと判定されたメモリセルに対して同時に、第２の書き込み電流よりも電流値が大きい第３の書き込み電流による第２の書き込み動作を行う。
【発明の効果】
【０００９】
一実施の形態によれば、ノイズの増大を抑えつつフラッシュメモリへの書き込み速度を高速化することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態１に係る半導体装置の構成の一例を示すブロック図である。
【図２】本発明の実施の形態１に係る不揮発性メモリの構成の一例を示すブロック図である。
【図３】本発明の実施の形態１に係るメモリセルの構成の一例を示す断面図である。
【図４】メモリセルに対する書き込み動作、消去動作、読み出し動作においてメモリセルの各電極に印加される電圧値を例示する図である。
【図５】通常書き込みモードの一例を示すフローチャート図である。
【図６】高速書き込みモードの一例を示すフローチャート図である。
【図７】通常書き込みモードの書き込み電流と高速書き込みモードの書き込み電流とを比較する図である。
【図８】本発明の実施の形態１の効果を例示する図である。
【図９】低ノイズ書き込みモードの一例を示すフローチャート図である。
【図１０】低ノイズ書き込みモードの具体例を示す図である。
【図１１】低電圧書き込みモードの一例を示すフローチャート図である。
【図１２】低電圧書き込みモードにおける書き込み電流と閾値電圧との関係を示す図である。
【図１３】低電圧書き込みモードにおけるベリファイ結果の一覧を示す図である。
【図１４】最適な書き込み電流を得る方法を説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するためのすべての図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１２】
（実施の形態１）
実施の形態１では、不揮発性メモリへの書き込み動作を高速化させた半導体装置について説明する。
【００１３】
＜半導体装置の構成＞
図１は、本発明の実施の形態１に係る半導体装置の構成の一例を示すブロック図である。図１に示すように、半導体装置１は、ＣＰＵ１０、ＲＡＭ（Random Access Memory）２０、メモリコントローラ３０、フラッシュメモリ（不揮発性メモリ）４０、周辺バス５０等を備えている。半導体装置１は、例えば自動車等に搭載される車載用の半導体装置である。図１に示すように、ＣＰＵ１０及びメモリコントローラ３０は、周辺バス５０と接続され、周辺バス５０を介して各種情報の入出力が行われる。
【００１４】
ＣＰＵ１０は、半導体装置１の各構成要素の制御に関連する演算処理や、ＯＴＡに関連する演算処理等を行う機能ブロックである。また、ＣＰＵ１０は、半導体装置１と接続される各種装置と連携し、車両制御に関連する演算処理を行う。ＣＰＵ１０は、フラッシュメモリ４０に格納されたプログラムを読み出し、読み出したプログラムをＲＡＭ２０に展開する。ＣＰＵ１０は、ＲＡＭ２０に展開されたプログラムを実行することにより、各機能を実現する機能ブロックを実現する。ＣＰＵ１０の内部にはキャッシュ１１が設けられ、演算処理において使用頻度の高い情報はキャッシュ１１に格納される。また、ＣＰＵ１０はＲＡＭ２０にプログラムを展開せずにフラッシュメモリ４０から読みだしたプログラム(キャッシュ１１格納情報も含む)を直接実行してもよい。
【００１５】
ＲＡＭ２０は、すでに述べたように、フラッシュメモリ４０から読み出したプログラムを展開する。また、ＲＡＭ２０は、ＣＰＵ１０による演算処理により生成された情報等を一時的に格納してもよい。
【００１６】
メモリコントローラ３０は、フラッシュメモリ４０の制御を行う機能ブロックである。メモリコントローラ３０は、フラッシュメモリ４０に対する書き込み動作、読み出し動作、消去動作等に関する処理を行う。具体的に述べると、メモリコントローラ３０は、通常使用時や出荷前の製品テスト時における書き込み動作、消去動作、及び読み出し動作に関する制御を行う。メモリコントローラ３０は、単独でフラッシュメモリ４０の制御を行ってもよいし、ＣＰＵ１０から出力される信号に基づいてフラッシュメモリ４０の制御を行ってもよい。メモリコントローラ３０の動作については、後で詳しく説明する。
【００１７】
フラッシュメモリ４０は、半導体装置１に関わる各種情報を格納する機能ブロックである。図１〜２では、フラッシュメモリ４０が不揮発性メモリとして例示されているが、これ以外の不揮発性メモリでもよい。図２は、本発明の実施の形態１に係る不揮発性メモリの構成の一例を示すブロック図である。図２には、フラッシュメモリ４０以外にも、メモリコントローラ３０も併せて示されている。図３は、本発明の実施の形態１に係るメモリセルの構成の一例を示す断面図である。図２に示すように、フラッシュメモリ４０は、メモリアレイ４１、ソースドライバ４２、メモリゲートドライバ４３、チャージポンプ４４、書き込み電流設定回路４５、センスアンプ４７、スイッチ回路４８を備えている。
【００１８】
なお、図１〜図２では、メモリコントローラ３０とフラッシュメモリ４０とが別体で示されているが、フラッシュメモリ４０及びメモリコントローラ３０は、一体で構成されてもよい。
【００１９】
メモリアレイ４１は、複数のメモリセルＭＣを備えている。図２には、１つのメモリセルＭＣのみが便宜上示されているが、実際には、複数のメモリセルＭＣがアレイ状に配置される。複数のメモリセルＭＣは、図２に示すＹ方向に延在するビット線ＢＬ及びＸ方向に延在するソース線ＳＬに沿って格子状に配置される。具体的に述べると、フラッシュメモリ４０には、Ｙ方向に延在するビット線ＢＬが複数設けられており、複数のビット線ＢＬは、Ｘ方向に配列されている。また、フラッシュメモリ４０には、Ｘ方向に延在するソース線ＳＬが複数設けられており、複数のソース線ＳＬは、Ｙ方向に配列されている。そして、複数のメモリセルＭＣは、複数のビット線ＢＬと複数のソース線ＳＬのそれぞれの交点に対応して配置される。
【００２０】
メモリセルＭＣは、図２〜図３に示すように選択トランジスタＳＴ、メモリトランジスタＭＴを備えている。選択トランジスタＳＴの一方の電極は、ビット線ＢＬと接続されている。メモリトランジスタＭＴの一方の電極は、ソース線ＳＬを介してソースドライバ４２と接続されている。選択トランジスタＳＴの他方の電極は、メモリトランジスタＭＴの他方の電極と接続されている。このように、メモリセルＭＣは、選択トランジスタＳＴ及びメモリトランジスタＭＴが、ソース線ＳＬとビット線ＢＬとの間で直列に接続されている。選択トランジスタＳＴはコントロールゲートＣＧを備え、メモリトランジスタＭＴは、電荷記憶層ＣＬ及びメモリゲートＭＧを備えている。メモリゲートＭＧは、メモリゲートドライバ４３と接続されている。図３に示すように、メモリセルＭＣは、ソース線ＳＬ側がソースＳ、ビット線ＢＬ側がドレインＤである。
【００２１】
ここで例示されたフラッシュメモリの書き込み方式は、ドレイン−ソース間に書き込み電流を流し、電荷記憶層ＣＬに電荷をトラップする、ホット・エレクトロン注入方式である。具体的に述べると、メモリゲートＭＧ及びソース線ＳＬに高電圧が印加され、電荷がトラップされ易くした状態でドレイン−ソース間に電流を流す。そして、電荷記憶層ＣＬが電荷をトラップすることにより、メモリセルＭＣにデータが書き込まれる。電荷記憶層ＣＬはフローティングゲート方式でもチャージトラップ方式どちらでもよい。
【００２２】
図４は、メモリセルに対する書き込み動作、消去動作、読み出し動作においてメモリセルの各電極に印加される電圧値を例示する図である。図４において、Ｖｄは、メモリセルＭＣのドレインＤに印加される電圧である。すなわち、Ｖｄは、ビット線ＢＬの電圧である。Ｖｃｇは、メモリセルＭＣのコントロールゲートＣＧに印加される電圧である。Ｖｍｇは、メモリセルＭＣのメモリゲートＭＧに印加される電圧である。Ｖｓは、メモリセルＭＣのソースＳに印加される電圧である。すなわち、Ｖｓは、ソース線ＳＬの電圧である。
【００２３】
図４に示すように、書き込み動作時、メモリセルＭＣの各電極に印加される電圧は、Ｖｄ＝０．５［Ｖ］、Ｖｃｇ＝１［Ｖ］、Ｖｍｇ＝１０［Ｖ］、Ｖｓ＝５［Ｖ］にそれぞれ設定される。消去動作時、メモリセルＭＣの各電極に印加される電圧は、Ｖｄ＝０［Ｖ］、Ｖｃｇ＝０［Ｖ］、Ｖｍｇ＝−１０［Ｖ］、Ｖｓ＝５［Ｖ］にそれぞれ設定される。読み出し動作時、メモリセルＭＣの各電極に印加される電圧は、Ｖｄ＝１［Ｖ］、Ｖｃｇ＝１［Ｖ］、Ｖｍｇ＝０［Ｖ］、Ｖｓ＝０［Ｖ］にそれぞれ設定される。なお、これらの電圧は、あくまで一例であり、メモリセルＭＣの特性に応じて適宜変更される。
【００２４】
ソースドライバ４２は、各ソース線ＳＬの電位を設定する機能ブロックである。ソースドライバ４２は、メモリコントローラ３０、チャージポンプ４４、及び複数のソース線ＳＬと接続されている。ソースドライバ４２は、例えばメモリコントローラ３０から出力される信号に基づき、各ソース線ＳＬの電圧を制御する。ソースドライバ４２は、例えばチャージポンプ４４で生成される電圧をソース線ＳＬへ供給する。その際、ソースドライバ４２は、チャージポンプ４４で生成される電圧をそのままソース線ＳＬへ供給してもよいし、所定の電圧に変圧したのちソース線ＳＬへ供給してもよい。
【００２５】
メモリゲートドライバ４３は、各メモリトランジスタＭＴのメモリゲートＭＧの電圧を制御する機能ブロックである。メモリゲートドライバ４３は、メモリコントローラ３０、チャージポンプ４４、及び複数のメモリゲートＭＧと接続されている。メモリゲートドライバ４３は、例えばメモリコントローラ３０から出力される信号に基づき、各メモリゲートＭＧの電圧を制御する。メモリゲートドライバ４３は、例えばチャージポンプ４４で生成される電圧をメモリゲートＭＧへ供給する。その際、メモリゲートドライバ４３は、チャージポンプ４４で生成される電圧をそのままメモリゲートＭＧへ供給してもよいし、所定の電圧に変圧したのちメモリゲートＭＧへ供給してもよい。なお、メモリゲートドライバ４３は、コントロールゲートＣＧの制御を行ってもよい。
【００２６】
チャージポンプ４４は、メモリセルＭＣ等へ供給する電力を生成する機能ブロックである。チャージポンプ４４は、メモリコントローラ３０、ソースドライバ４２、メモリゲートドライバ４３と接続されている。チャージポンプ４４は、例えばメモリコントローラ３０から出力される信号に基づき、書き込み動作、消去動作、読み出し動作に応じた電圧を生成する。
【００２７】
図４を参照して述べると、書き込み動作時、チャージポンプ４４は、１０［Ｖ］の電圧を生成し、メモリゲートドライバ４３へ供給する。また、チャージポンプ４４は、５［Ｖ］の電圧を生成し、ソースドライバ４２へ供給する。なお、この場合、ソースドライバ４２へ供給する電圧は、メモリゲートドライバ４３へ供給する電圧の生成過程において分流したものでもよい。
【００２８】
消去動作時、チャージポンプ４４は、−１０［Ｖ］の電圧を生成し、メモリゲートドライバ４３へ供給する。また、チャージポンプ４４は、５［Ｖ］の電圧を生成し、ソースドライバ４２へ供給する。そして、読み出し動作時、チャージポンプ４４は、５［Ｖ］の電圧を生成し、ソースドライバ４２及びメモリゲートドライバ４３へ供給する。
【００２９】
書き込み電流設定回路４５は、メモリセルＭＣへの書き込み動作時における書き込み電流の電流値を設定する機能ブロックである。書き込み電流設定回路４５は、例えばビット線ＢＬごとに設けられる。書き込み電流設定回路４５は、メモリコントローラ３０から出力される信号に基づき、書き込み電流の電流値を設定する。書き込み電流の設定については、後で詳しく説明する。
【００３０】
センスアンプ４７は、メモリセルＭＣに対する書き込み動作が完了したかどうかの判定処理を行う機能ブロックである。センスアンプ４７は、例えばビット線ＢＬごとに設けられる。各センスアンプ４７は、対応するビット線ＢＬ及び対応するスイッチ回路４８のビットラッチ４８ｃと接続されている。書き込み動作後に読み出し動作が行われ、センスアンプ４７は、読み出し動作によりビット線ＢＬへ流れる電流と、例えばメモリコントローラ３０から供給されるレファレンス信号ＲＥＦの電流とを比較する。なお、このような処理を、ベリファイとも呼ぶ。そして、センスアンプ４７は、例えば、ビット線ＢＬに流れる電流がレファレンス信号ＲＥＦの電流より大きい場合、メモリセルＭＣに所定のデータが書き込まれたものと判定し、書き込み完了信号ＣＯＭＰをビットラッチ４８ｃへ出力する。
【００３１】
スイッチ回路４８は、メモリセルＭＣへの書き込み動作の可否を切り換える機能ブロックである。スイッチ回路４８は、ビット線ＢＬごとに設けられる。スイッチ回路４８は、第１のスイッチ４８ａ、第２のスイッチ４８ｂ、ビットラッチ４８ｃを備えている。第１のスイッチ４８ａは、例えばＮＭＯＳ（Negative Metal Oxide Semiconductor）で構成されている。第１のスイッチ４８ａの一方の電極は、書き込み電流設定回路４５と接続されている。第１のスイッチ４８ａの他方の電極は、第２のスイッチ４８ｂの一方の電極と接続されている。第１のスイッチ４８ａのゲート電極は、例えばメモリコントローラ３０と接続されている。第１のスイッチのゲート電極に、メモリコントローラ３０からハイレベルの書き込み信号ＰＲＧＭが供給されると、第１のスイッチ４８ａがオンになる。これにより、メモリセルＭＣへの書き込み動作が可能になる。
【００３２】
第２のスイッチ４８ｂは、センスアンプ４７による判定結果に基づいて、メモリセルＭＣへの書き込み動作の可否を切り換える素子である。第２のスイッチ４８ｂは、例えばＮＭＯＳで構成されている。第２のスイッチ４８ｂの他方の電極は、接地されている。第２のスイッチ４８ｂのゲートは、ビットラッチ４８ｃと接続されている。第２のスイッチ４８ｂは、ビットラッチ４８ｃから出力される信号に基づいてオン・オフを切り換える。
【００３３】
ビットラッチ４８ｃは、センスアンプ４７における判定結果に基づく所定の信号を第２のスイッチ４８ｂへ出力する。書き込み動作開始時、ビットラッチ４８ｃは、所定のデータ（以下、ラッチデータとも呼ぶ）を保持する。このラッチデータに基づき、ビットラッチ４８ｃは、例えばハイレベルの信号を第２のスイッチ４８ｂのゲート電極へ出力する。このとき、第２のスイッチ４８ｂは、オン状態となる。そして、書き込み動作後の読み出し動作時において、センスアンプ４７から書き込み完了信号ＣＯＭＰが出力されると、ビットラッチ４８ｃは、ラッチデータを反転させ、反転させたラッチデータを保持する。この反転させたラッチデータに基づき、ビットラッチ４８ｃは、例えばローレベルの信号を第２のスイッチ４８ｂのゲート電極へ出力する。これにより、第２のスイッチ４８ｂは、オフ状態となり、対応するメモリセルＭＣへの書き込みが禁止される。
【００３４】
＜通常書き込みモード＞
ここで、通常書き込みモードについて説明する。図５は、通常書き込みモードの一例を示すフローチャート図である。図５に示すように、通常書き込みモードでは、ステップＳ１０〜Ｓ５０の処理が行われる。なお、通常書き込みモード開始時には、メモリコントローラ３０により書き込み対象のメモリセルＭＣは選択されており、対応するスイッチ回路４８はオン状態であるものとする。例えば、ビット線ＢＬごとに書き込み対象のメモリセルＭＣが選択され、選択されたメモリセルＭＣのビット線に対応するスイッチ回路４８の第１のスイッチ４８ａ、第２のスイッチ４８ｂはオン状態であるものとする。
【００３５】
まず、ステップＳ１０は、書き込み電流（第１の書き込み電流）の電流値を設定するステップである。書き込み電流設定回路４５は、例えばメモリコントローラ３０からの信号に基づき、書き込み電流の電流値をＡ１（以下では電流値Ａ１とも称する）に設定する。具体的には、メモリコントローラ３０は、設定予定の電流値Ａ１に従って定電流源の電流を変更する。そして、メモリコントローラ３０は、カレントミラー回路により電流値Ａ１のミラー電流を生成し、生成したミラー電流を書き込み電流設定回路４５へ供給する。この電流値Ａ１は、例えば、ワースト条件のメモリセルＭＣに対する書き込み電流の下限値に対して十分なマージンを持つ値である。
【００３６】
ステップＳ２０では、ステップＳ１０で設定された電流値Ａ１の書き込み電流による書き込み動作が行われる。具体的に述べると、メモリコントローラ３０は、書き込み対象のメモリセルＭＣに対し、電流値Ａ１の書き込み電流のパルスを印加する。
【００３７】
ステップＳ３０では、パルスが印加されたメモリセルＭＣに対するベリファイが行われる。言い換えると、ビット線ＢＬごとに判定処理（ベリファイ）が行われる。まず、ステップＳ２０においてパルスが印加されたメモリセルＭＣに対する読み出し動作が行われる。その際、ベリファイ対象のメモリセルＭＣの各電極には、図４の読み出し動作に対応する電圧がそれぞれ印加される。そして、各センスアンプ４７は、ビット線ＢＬに流れる電流と、レファレンス信号ＲＥＦの電流とを比較することにより、対応するメモリセルＭＣに対するベリファイを行う。センスアンプ４７は、例えば、対応するビット線ＢＬの電流がレファレンス電流ＲＥＦより大きい場合、対応するメモリセルＭＣには所定のデータが書き込まれたと判定し、書き込み完了信号ＣＯＭＰを対応するスイッチ回路４８のビットラッチ４８ｃへ出力する。
【００３８】
ステップＳ４０では、ステップＳ２０においてパルスが印加されたすべてのメモリセルＭＣが、ベリファイをパスしたかどうかが判定される。メモリコントローラ３０は、すべてのメモリセルＭＣがベリファイをパスしたと判定すると（Ｙｅｓ）、通常書き込みモードを終了する。一方、メモリコントローラ３０は、少なくとも一部のメモリセルＭＣがベリファイをフェイルしたと判定すると（Ｎｏ）、ステップＳ５０へ移行する。
【００３９】
ステップＳ５０では、ベリファイをパスしたメモリセルＭＣに対応するスイッチ回路４８がオフ状態に設定される。具体的には、ベリファイをパスした場合、対応するセンスアンプ４７は、書き込み完了信号ＣＯＭＰを対応するスイッチ回路４８へ出力する。そして、ビットラッチ４８ｃは、書き込み完了信号ＣＯＭＰが入力されると、保持しているラッチデータを反転させ、反転させたラッチデータに基づきローレベルの信号を第２のスイッチ４８ｂのゲート電極へ出力する。これにより、第２のスイッチ４８ｂはオフ状態となる。このように、ベリファイをパスした場合、対応するスイッチ回路４８はオフ状態となり、対応するメモリセルＭＣはマスクされ、追加のパルス印加及びベリファイが行われなくなる。
【００４０】
ステップＳ５０の処理が完了すると、ステップＳ２０以降の処理が再度行われる。再度のステップＳ２０〜Ｓ３０では、直前のステップＳ３０においてベリファイをフェイルしたメモリセルＭＣ、すなわち、マスクされていないメモリセルＭＣに対して再度のパルス印加及びベリファイが行われる。このときの書き込み電流の電流値は、ステップＳ１０で設定されたＡ１である。再度のステップＳ４０において、すべてのメモリセルＭＣがベリファイをパスしたと判定されると（Ｙｅｓ）、通常書き込み動作が終了する。このように、すべてのメモリセルＭＣがベリファイをパスするまで、パルス印加（Ｓ２０）、ベリファイ（Ｓ３０）、ベリファイ判定（Ｓ４０）、ビットラッチ反転（Ｓ５０）の処理が繰り返し行われる。
【００４１】
なお、ステップＳ５０の動作は、ステップＳ３０に引き続いて行われてもよい。この場合、ステップＳ４０において、すべてのメモリセルＭＣがベリファイをパスしたと判定したとき、対応するすべてのスイッチ回路４８がオフ状態となる。
【００４２】
使用状況に応じて、メモリコントローラ３０は、別グループのメモリセルＭＣを選択し、選択したメモリセルＭＣに対し通常書き込みモードでの書き込み動作を行ってもよいし、このような処理を繰り返し、全メモリセルＭＣに対し書き込み動作を行ってもよい。
【００４３】
＜高速書き込みモード＞
次に、高速書き込みモードについて説明する。図６は、高速書き込みモードの一例を示すフローチャート図である。図６に含まれる一部のステップは、図５と類似している。このため、図６の説明において、図５と重複する箇所については適宜省略する。
【００４４】
高速書き込みモードは、図６に示すように、ステップＳ０１〜Ｓ２１０の処理が行われる。これらのステップのうち、ステップＳ１１０〜Ｓ１６０は、第１の書き込み動作であり、ステップＳ１７０〜Ｓ２１０は、第２の書き込み動作である。
【００４５】
ステップＳ０１は、書き込みモードの選択を行うステップである。例えば、メモリコントローラ３０は、高速書き込みモード又は後述の低ノイズ書き込みモードのいずれかを選択する。ここでは、高速書き込みモードが選択されるものとする。
【００４６】
ステップＳ１１０は、書き込み電流（第２の書き込み電流）の電流値を設定するステップである。ステップＳ１１０はステップＳ１０と類似しているので、主に相違点について説明する。メモリコントローラ３０は、設定予定の電流値Ａ２に従って定電流源の電流を変更する。そして、メモリコントローラ３０は、カレントミラー回路により電流値Ａ２のミラー電流を生成し、生成したミラー電流を書き込み電流設定回路４５へ供給する。このように、書き込み電流の電流値Ａ２が設定される。第２の書き込み電流の電流値Ａ２は、第１の書き込み電流の電流値Ａ１よりも小さい（Ａ２＜Ａ１）。具体的には、メモリコントローラ３０は、高速書き込みモードでは、通常書き込みモードと比較して、書き込み電流の電流値を１／２倍に設定する。
【００４７】
図７は、通常書き込みモードの書き込み電流と高速書き込みモードの書き込み電流とを比較する図である。図７において、横軸は書き込み電流の電流値、縦軸はメモリセルＭＣ個数をそれぞれ示している。図７において、曲線Ｇ１は、通常書き込みモードにおけるメモリセルＭＣ個数に対する書き込み電流の分布を示している。通常書き込みモードの書き込み電流は、設定電流値Ａ１に対し、書込み電流の電流値Ａ１が最も高いピークとなる分布となっている。
【００４８】
一方、曲線Ｇ２は、高速書き込みモードの第１の書き込み動作におけるメモリセルＭＣ個数に対する書き込み電流の分布を示している。第１の書き込み動作の書き込み電流は、電流値Ａ２をピークとした分布となっている。また、図７に示すように、第１の書き込み動作の書き込み電流の電流値Ａ２は、ワースト条件のメモリセルＭＣに対する書き込み電流の下限値ＡＬに近い。このため、書き込み電流の一部は、ワースト条件のメモリセルＭＣに対する書き込み電流の下限値ＡＬよりも小さい電流値を持つ電流も含む場合がある。このような条件で書き込み動作が行われると、第１の書き込み動作において書き込みが完了しないおそれがあるが、このようなメモリセルＭＣには、後述する第２の書き込み動作が行われる。
【００４９】
ステップＳ１１５では、第１の書き込み動作により同時に書き込まれるメモリセルＭＣが選択される。例えば、メモリコントローラ３０は、例えばビット線ＢＬごとに選択される。ここで選択されるメモリセルＭＣの個数（第２の個数）は、通常書き込みモードにおいて選択されるメモリセルの個数（第１の個数）より大きい。例えば、第２の個数は、第１の個数の２倍の値である。すなわち、メモリコントローラ３０は、高速書き込みモードでは、通常書き込みモードの２倍のメモリセルを選択する。
【００５０】
なお、ステップＳ１１０において設定される書き込み電流の電流値、及びステップＳ１１５において選択されるメモリセルＭＣの個数は、これに限定されるものではない。具体的に述べると、第２の個数と第２の書き込み電流の電流値との積が、第１の個数と第１の書き込み電流の電流値との積以下となるように、書き込み電流の電流値及びメモリセルＭＣの個数が設定される。これにより、チャージポンプ４４の能力の範囲内で高速書き込み動作が実行可能となる。
【００５１】
ステップＳ１２０では、ステップＳ２０と同様であり、ステップＳ１１５において選択された第２の個数のメモリセルＭＣに対して同時に、例えば電流値Ａ２の書き込み電流のパルスが印加される。
【００５２】
ステップＳ１３０では、電流値Ａ２の書き込み電流のパルスが印加されたメモリセルＭＣに対するベリファイが行われる。その他の処理については、ステップＳ３０と同様であるので、説明は省略する。すなわち、第１の書き込み動作では、パルスが１回印加されるごとにセンスアンプ４７による判定処理が行われる。
【００５３】
ステップＳ１４０では、ステップＳ１２０においてパルスが印加されたすべてのメモリセルＭＣが、ベリファイをパスしたかどうかが判定される。メモリコントローラ３０は、すべてのメモリセルＭＣがベリファイをパスしたと判定すると（Ｙｅｓ）、高速書き込みモードを終了する。一方、メモリコントローラ３０は、少なくとも一部のメモリセルＭＣがベリファイをフェイルしたと判定すると（Ｎｏ）、ステップＳ１５０へ移行する。
【００５４】
ステップＳ１５０では、ステップＳ５０と同様の処理が行われる。すなわち、ベリファイをパスしたメモリセルＭＣはマスクされ、追加のパルス印加及びベリファイは行われなくなる。このように、第１の書き込み動作が行われるメモリセルＭＣのそれぞれに対応してスイッチ回路４８が設けられ、センスアンプ４７の判定結果に基づいて第２の書き込み動作の要否が切り換えられる。
【００５５】
ステップＳ１６０では、パルス印加が所定の回数（第１の回数；Ｎ１回）行われたかどうかが判定される。パルス印加回数がＮ１回より少ない場合（Ｎｏ）、ステップＳ１２０の処理が引き続き行われる。一方、パルス印加回数がＮ１回に達した場合（Ｙｅｓ）、ステップＳ１７０に移行し、第２の書き込み動作が引き続き行われる。すなわち、Ｎ１回のパルスが印加され、第１の書き込み動作が行われた後も、書き込み動作が完了していないメモリセルＭＣに対しては、第２の書き込み動作が引き続き行われることとなる。
【００５６】
ただし、第２の書き込み動作が行われるメモリセルＭＣの個数の割合は、第２の個数と比較すればごくわずかである。図７を参照して説明したように、ワースト条件のメモリセルＭＣに、書き込み電流の下限値ＡＬよりも小さい電流値をもつ書き込み電流のパルスが印加された場合に、第２の書き込み動作が実行される。
【００５７】
ステップＳ１７０は、書き込み電流（第３の書き込み電流）の電流値を設定するステップである。ステップＳ１７０はステップＳ１０，１１０と類似している。メモリコントローラ３０は、第３の書き込み電流の電流値Ａ３を、第２の書き込み電流の電流値Ａ２よりも大きな値に設定する（Ａ３＞Ａ２）。例えば、第３の書き込み電流の電流値Ａ３は、第１の書き込み電流の電流値Ａ１と同一に設定されてもよい（Ａ３＝Ａ１）。この構成によれば、書き込み電流の設定に係る負荷が軽減され、回路規模の増大が抑えられる。
【００５８】
なお、ここでは、パルスが１回印加されるごとにベリファイが行われる例が示されているが、Ｎ１回パルスが印加されてからベリファイが行われてもよい。この構成によれば、センスアンプ４７による判定処理及び読み出し動作の回数が削減されるので、第１の書き込み動作がより高速に行われる。
【００５９】
ステップＳ１８０では、第１の書き込み動作完了時、判定処理によりセンスアンプ４７により書き込み動作が完了していないと判定されたメモリセルＭＣに対して同時に、例えば電流値Ａ３の書き込み電流のパルスが印加される。ステップＳ１８０は、ステップＳ１２０等と類似している。
【００６０】
ステップＳ１９０では、電流値Ａ３の書き込み電流のパルスが印加されたメモリセルＭＣに対するベリファイが行われる。ステップＳ１９０は、ステップＳ１３０と類似している。
【００６１】
ステップＳ２００では、メモリセルＭＣがベリファイをパスしたかどうかが判定される。その際、メモリコントローラ３０は、ステップＳ１９０においてパルスが印加されたメモリセルＭＣのみを判定対象とする。メモリコントローラ３０は、すべてのメモリセルＭＣがベリファイをパスしたと判定すると（Ｙｅｓ）、高速書き込みモードを終了する。一方、メモリコントローラ３０は、少なくとも一部のメモリセルＭＣがベリファイをフェイルしたと判定すると（Ｎｏ）、ステップＳ２１０へ移行する。
【００６２】
ステップＳ２１０は、ステップＳ１５０等と同様の処理が行われる。すなわち、ベリファイをパスしたメモリセルＭＣはマスクされ、追加のパルス印加及びベリファイは行われなくなる。
【００６３】
ステップＳ２１０の処理が完了すると、引き続き、ステップＳ１８０〜Ｓ２００の処理が再度行われる。再度のステップＳ１８０〜Ｓ２００の処理は、すべてのメモリセルＭＣがベリファイをパスするまで繰り返し行われる。なお、第２の書き込み動作では、第１の書き込み動作よりも書き込み電流が大きいので、１又は数回のパルス印加により書き込み動作が完了する場合がほとんどである。ただし、メモリセルＭＣの故障により書き込み動作が完了しない場合もあり得るので、パルス印加回数の上限が所定の回数に制限されてもよい。
【００６４】
＜本実施の形態による主な効果＞
本実施の形態によれば、高速書き込みモードでは、第２の個数のメモリセルＭＣに対して同時に、第２の書き込み電流による第１の書き込み動作が行われる。そして、第１の書き込み動作完了時、判定処理においてセンスアンプ４７により書き込み動作が完了していないと判定されたメモリセルＭＣに対して同時に、第３の書き込み電流による第２の書き込み動作が行われる。
【００６５】
すなわち、第１の書き込み動作では、通常書き込み動作よりも電流値が小さい書き込み電流で、ほとんどのメモリセルＭＣに対する書き込み動作が完了し、第２の書き込み動作では、残りのわずかなメモリセルＭＣに対して電流値が大きい書き込み電流で書き込み動作が行われる。この構成によれば、スループットが向上させることができるので、ノイズの増大を抑えつつ、フラッシュメモリ４０への書き込み速度を高速化することが可能となる。これにより、テスト時間が短縮され、テストコストが削減される。
【００６６】
また、本実施の形態によれば、第１の書き込み動作では、パルスが１回印加されるごとにセンスアンプ４７による判定処理（ベリファイ）が行われる。この構成によれば、所定の回数（Ｎ１回）よりも少ない回数ですべてのメモリセルＭＣに対する書き込み動作が完了した場合、直ちに書き込み動作を停止することができ、より高速に書き込み動作を行うことが可能となる。
【００６７】
また、本実施の形態によれば、第２の個数と第２の書き込み電流の電流値との積が、第１の個数と第１の書き込み電流の電流値との積以下となるように、書き込み電流の電流値及びメモリセルＭＣの個数が設定される。これにより、高速書き込みモードにおけるピーク電流が、通常書き込みモードよりも少なくなるので、ノイズが低減される。これにより、ＯＴＡ中のソフトウェアの動作を安定させることが可能となる。また、この構成によれば、チャージポンプ４４の能力の範囲内で高速書き込み動作が実行可能となる。また、既存のチャージポンプ４４を流用できるので、回路設計に要する工数が短縮される。
【００６８】
図８は、本発明の実施の形態１の効果を例示する図である。図８には、書き込み電流の電流値、選択されたメモリセルＭＣの個数、チャージポンプ４４の能力、書き込み速度の各項目が、通常書き込みモード及び高速書き込みモードとを対比させて示されている。なお、図８の各数値は、通常書き込みモードに対する比率として示されている。すなわち、図８では、通常書き込みモードの各項目の値は「１」である。
【００６９】
図８では、高速書き込みモードの第１の書き込み動作において、書き込み電流が、通常書き込みモードの１／２倍（０．５）、同時書き込みされるメモリセルＭＣの個数が、通常書き込みモードの２倍の場合の数値が示されている。このとき、チャージポンプ４４の能力は、通常書き込みモードとほぼ同じである。
【００７０】
一方、第２の書き込み動作では、書き込み電流の電流値は、通常書き込みモードと同じであるが、同時書き込みされるメモリセルＭＣの個数が、通常書き込みモードよりもはるかに少ない。このため、チャージポンプ４４は、通常書き込みモードよりも非常に小さい能力で動作可能である。また、第２の書き込み動作では、パルス印加回数は、１〜数回であるので、書き込み速度に与える影響はほとんどない。したがって、高速書き込みモードにおける書き込み速度は、通常書き込みモードの２倍である。
【００７１】
（実施の形態２）
次に、実施の形態について説明する。本実施の形態では、実施の形態１よりも低ノイズで書き込み動作を行うことが可能な半導体装置について説明する。
【００７２】
＜低ノイズ書き込みモード＞
図９は、低ノイズ書き込みモードの一例を示すフローチャート図である。図９に含まれる一部のステップは、図６と類似している。このため、図９の説明において、図６と重複する箇所については適宜省略する。
【００７３】
低ノイズ書き込みモードは、図９に示すように、ステップＳ０１〜Ｓ４１０の処理が行われる。これらのステップのうち、ステップＳ３０５〜Ｓ３６０は、第３の書き込み動作であり、ステップＳ３７０〜Ｓ４１０は、第４の書き込み動作である。ステップＳ０１は、書き込みモードの選択を行うステップである。ここでは、低ノイズ書き込みモードが選択されるものとする。
【００７４】
ステップＳ３０５は、チャージポンプ４４の能力を設定するステップである。チャージポンプ４４の能力は、メモリセルＭＣへの書き込み電流、及び同時に書き込まれるメモリセルＭＣの個数により規定される値である。メモリコントローラ３０は、低ノイズ書き込みモードでは、チャージポンプ４４の能力を通常書き込みモードよりも低く設定する。具体的には、低ノイズ書き込みモードにおけるチャージポンプ４４の能力を通常書き込みモードの１／２倍（０．５）や１／４倍（０．２５）の値に設定する。
【００７５】
例えば、メモリコントローラ３０は、チャージポンプ４４に含まれるリングオシレータの周期や、チャージポンプ４４の基数を切り換えることにより、チャージポンプ４４の能力を設定する。
【００７６】
ステップＳ３１０書き込み電流（第４の書き込み電流）の電流値Ａ４を設定するステップである。ステップＳ３１０はステップＳ１１０等と類似している。相違点は、チャージポンプ４４の能力に基づき、書き込み電流が設定される点である。第４の書き込み電流の電流値Ａ４は、第１の書き込み電流の電流値Ａ１より小さい値に設定される（Ａ４＜Ａ１）。
【００７７】
ステップＳ３１５では、第３の書き込み動作により同時に書き込まれるメモリセルＭＣが選択される。ステップ３１５において選択されるメモリセルＭＣの個数（第３の個数）は、チャージポンプ４４の能力に基づいて設定される。例えば、第３の個数は、通常書き込みモードにおいて選択されるメモリセルＭＣの個数（第１の個数）以下である。この点、低ノイズ書き込みモードは、高速書き込みモードとは異なる。第４の書き込み電流の電流値Ａ４及びメモリセルＭＣの第３の個数は、電流値Ａ４と第３の個数との積がチャージポンプの能力を超えない範囲で設定される。なお、ステップＳ３１０〜Ｓ３１５の順序は、状況に応じて入れ替わってもよい。
【００７８】
図１０は、低ノイズ書き込みモードの具体例を示す図である。図１０には、書き込み電流の電流値、選択されたメモリセルＭＣの個数、チャージポンプ４４の能力、書き込み速度の各項目が、通常書き込みモード及び低ノイズ書き込みモードとを対比させて示されている。なお、図１０の各数値は、通常書き込みモードに対する比率として示されている。すなわち、図１０では、通常書き込みモードの各項目の値は「１」である。
【００７９】
図１０の中段には、チャージポンプ４４の能力が、通常書き込みモードの１／２倍（０．５）の値に設定された場合が示されている。このとき、書き込み電流の電流値は、例えば、通常書き込みモードの１／２倍（０．５）に設定される。また、同時書き込みされるメモリセルＭＣの個数は、通常書き込みモードと同数である。そして、電流値とメモリセルＭＣの個数との積は、０．５であり、チャージポンプ４４の能力を超えない値となっている。
【００８０】
一方、図１０の下段には、チャージポンプ４４の能力が、通常書き込みモードの１／４倍（０．２５）の値に設定された場合が示されている。このとき、書き込み電流の電流値は、例えば、通常書き込みモードの１／２倍（０．５）に設定される。また、同時書き込みされるメモリセルＭＣの個数は、通常書き込みモードの１／２倍（０．５）に設定される。そして、電流値とメモリセルＭＣの個数との積は、０．５であり、この場合もチャージポンプ４４の能力を超えない値となっている。もちろん、個々に示された電流値とメモリセルＭＣの個数はあくまで一例であり、チャージポンプ４４の能力を超えない範囲で任意に設定可能である。
【００８１】
ステップＳ３２０は、ステップＳ１２０等と同様であり、ステップＳ３１５において選択された第３の個数のメモリセルＭＣに対して同時に、例えば電流値Ａ４の書き込み電流のパルスが印加される。
【００８２】
ステップＳ３３０〜Ｓ３４０では、ステップＳ１３０〜Ｓ１４０と同様の処理が行われる。ステップＳ３４０では、ステップＳ３２０においてパルスが印加されたすべてのメモリセルＭＣがベリファイをパスしたと判定されると（Ｙｅｓ）、低ノイズ書き込みモードが終了する。一方、少なくとも一部のメモリセルＭＣがベリファイをフェイルしたと判定されると（Ｎｏ）、ステップＳ３５０の処理が行われる。
【００８３】
ステップＳ３５０〜Ｓ３６０では、ステップＳ１５０〜Ｓ１６０と同様の処理が行われる。ステップＳ３６０において判定されるパルス印加回数（第２の回数）Ｎ２は、高速書き込みモードにおける第１の回数と同数でもよいし、これと異なる値でもよい。
【００８４】
ステップＳ３７０は、書き込み電流（第５の書き込み電流）の電流値Ａ５を設定するステップである。ステップＳ３７０はステップＳ１７０等と類似している。メモリコントローラ３０は、第５の書き込み電流の電流値Ａ５を、第４の書き込み電流の電流値Ａ４よりも大きな値に設定する（Ａ５＞Ａ４）。第５の書き込み電流の電流値Ａ５は、例えば図１０に示すように、第１の書き込み電流の電流値Ａ１と同一の値に設定されてもよい（Ａ５＝Ａ１）。この構成によれば、書き込み電流の設定に係る負荷が軽減され、回路規模の増大が抑えられる。
【００８５】
なお、第４の書き込み動作においてほとんどのメモリセルＭＣはベリファイをパスするので、第３の書き込み動作完了時、判定処理においてセンスアンプ４７により書き込み動作が完了していないと判断されたメモリセルＭＣの個数はごくわずかである。したがって、第５の書き込み電流の電流値Ａ５をＡ１と同じ値に設定しても、チャージポンプ４４の能力を超えることはない。
【００８６】
ステップＳ３８０は、ステップＳ１８０等と同様であり、第３の書き込み動作完了時、判定処理によりセンスアンプ４７により書き込み動作が完了していないと判定されたメモリセルＭＣに対して同時に、例えば電流値Ａ５の書き込み電流のパルスが印加される。
【００８７】
ステップＳ３９０〜Ｓ４００では、ステップＳ１９０〜Ｓ２００等と同様の処理が行われる。ステップＳ４００では、ステップＳ３９０において、パルスが印加されたすべてのメモリセルＭＣがベリファイをパスしたと判定されると（Ｙｅｓ）、低ノイズ書き込みモードが終了する。一方、少なくとも一部のメモリセルＭＣがベリファイをフェイルしたと判定されると（Ｎｏ）、ステップＳ４１０の処理が行われる。ステップＳ４１０では、ステップＳ２１０等と同様の処理が行われる。
【００８８】
本実施の形態によれば、高速書き込みモードよりもさらにノイズを低減させて書き込み動作を行うことが可能である。
【００８９】
なお、すでに述べたように、第３の書き込み動作において選択されるメモリセルＭＣの個数は、第１の個数以下であるとしている。ただし、チャージポンプ４４の能力を超えなければ、このメモリセルＭＣの個数は第１の個数より大きい値に設定されても構わない。この場合、書き込み速度を向上させつつ、ノイズをさらに低減させた書き込み動作が行われる。
【００９０】
（実施の形態３）
次に、実施の形態３について説明する。本実施の形態では、低電圧書き込みモードについて説明する。低電圧書き込みモードでは、メモリセルＭＣの閾値電圧及び書き込み電流の電流値を切り換えながら書き込み動作が行われる。
【００９１】
＜低電圧書き込みモード＞
図１１は、低電圧書き込みモードの一例を示すフローチャート図である。図１１に示すように、低電圧書き込みモードでは、ステップＳ５１０〜Ｓ５７０の処理が行われる。図１２は、低電圧書き込みモードにおける書き込み電流と閾値電圧との関係を示す図である。図１２において、横軸はメモリセルＭＣの閾値電圧、縦軸はメモリセルＭＣの個数をそれぞれ示している。なお、図１２における曲線Ｇ１０は、書き込み動作開始前の消去状態におけるメモリセルＭＣの閾値電圧の分布を示している。図１３は、低電圧書き込みモードにおけるベリファイ結果の一覧を示す図である。
【００９２】
ステップＳ５１０は、書き込み電圧の電流値を初期電流値に設定するステップである。ステップＳ５１０は、ステップＳ１１０等と類似している。ステップＳ５１５は、メモリセルＭＣの閾値電圧を初期閾値電圧（例えばＶ１）に設定するステップである。メモリコントローラ３０は、例えば、閾値電圧とメモリセルＭＣのゲート電圧（あるいはゲート電流）とを対応させる閾値対応情報を内部に格納し、閾値対応情報に基づき、初期閾値に対応する閾値設定信号をチャージポンプ４４へ出力する。そして、チャージポンプ４４は、閾値設定信号に基づき、初期閾値に対応する電圧（あるいは電流）をゲート電極へ供給する。なお、閾値対応情報は、フラッシュメモリ４０内のプログラム等の格納領域に格納されてもよい。
【００９３】
ステップＳ５２０は、ステップ５１０において設定された電流値の書き込み電流のパルスが、選択されたメモリセルＭＣにそれぞれ印加される。ステップＳ５２０は、ステップＳ１２０等と類似している。なお、今回は、最初のパルス印加であるので、初期電流値の書き込み電流のパルスがメモリセルＭＣに印加される。
【００９４】
ステップＳ５２０において、パルスがメモリセルＭＣに印加される回数は、複数回、例えば高速書き込みモードにおける第１の回数や、低ノイズ書き込みモードにおける第２の回数等の十分な回数であることが好ましい。パルスの印加回数が１又は数回では、書き込みが不十分となり、書き込み電流の電流値の上昇を招き、本実施の形態の目的としている低電流での書き込みを達成できなくなるおそれが生じるからである。
【００９５】
ステップＳ５３０〜Ｓ５４０は、ステップＳ１３０〜１４０と類似している。ステップＳ１４０において、すべての選択したメモリセルＭＣが、ベリファイをパスしたと判定された場合には（Ｙｅｓ）、ステップＳ５５０の処理が行われる。例えば、パルスＰ１が印加されると、メモリセルＭＣの閾値分布は、図１２のように、消去状態の曲線Ｇ１０から曲線Ｇ１１となる。曲線Ｇ１１について検討すると、メモリセルＭＣの閾値電圧の最小値は、初期閾値電圧Ｖ１よりも大きい。そうすると、図１３に示すように、すべてのメモリセルＭＣは、ベリファイをパスする。
【００９６】
ステップＳ５５０は、現在の閾値電圧が、最終的に書き込み動作が完了したと判定される最終閾値電圧ＰＶであるかどうかが判定される。現在の閾値電圧はＶ１であるので、メモリコントローラ３０は、現在の閾値電圧は、ＰＶではないと判定し（Ｎｏ）、ステップＳ５７０の処理が実行される。
【００９７】
ステップＳ５７０は、メモリセルＭＣの閾値電圧を再設定するステップである。ステップＳ５７０は、ステップＳ５１５と類似している。今回のステップＳ５７０では、閾値電圧が、初期閾値電圧より高い閾値電圧（例えばＶ２）に設定される。そして、ステップＳ５２０〜Ｓ５４０の処理が再度行われる。なお、このとき、メモリセルＭＣに印加されるパルスは、電流値が再設定されていないのでＰ１である。図１２に示すように、メモリセルＭＣの閾値電圧の最小値は、閾値電圧Ｖ２より大きい。したがって、図１３に示すように、今回もすべてのメモリセルＭＣは、ベリファイをパスする（Ｙｅｓ）。そして、今回のステップＳ５５０においても、閾値電圧Ｖ２は、最終閾値電圧ＰＶではないと判定され（Ｎｏ）、ステップＳ５７０の処理が実行される。
【００９８】
ステップＳ５７０において、閾値電圧が、例えば、Ｖ２より高いＶ３に設定されたのち、ステップＳ５２０〜Ｓ５４０の処理が行われる。ところが、閾値電圧Ｖ３は、メモリセルＭＣの閾値電圧の最小値よりも高くなっている。このため、今回のステップＳ５４０では、図１３にも示すように、少なくとも一部のメモリセルＭＣは、ベリファイをフェイルし（Ｎｏ）、ステップＳ５６０の処理が行われる。
【００９９】
ステップＳ５６０は、書き込み電流の電流値の再設定を行うステップである。ステップＳ５６０は、ステップＳ５１０等と類似している。今回のステップＳ５６０では、書き込み電流の電流値は、例えば、初期電流値より大きい値に切り換えられる。そして、ステップＳ５２０〜Ｓ５４０の処理が再度行われる。今回のステップＳ５２０では、直前のステップＳ５６０において設定された電流値をもつ書き込み電流のパルスＰ２がメモリセルＭＣに印加される。
【０１００】
例えば、パルスＰ２が印加されると、メモリセルＭＣの閾値分布は、図１２のように、Ｇ１１から曲線Ｇ１２となる。曲線Ｇ１２について検討すると、メモリセルＭＣの閾値電圧の最小値は、閾値電圧Ｖ３よりも小さい。したがって、図１３に示すように、今回のステップＳ５４０においても、少なくとも一部のメモリセルＭＣは、ベリファイをフェイルする（Ｎｏ）。
【０１０１】
今回のステップＳ５６０では、書き込み電流の電流値が、現在の電流値より大きい値に切り換えられる。そして、ステップＳ５２０〜ステップＳ５４０に処理が再度行われる。今回のステップＳ５２０では、直前のステップＳ５６０において設定された電流値をもつ書き込み電流のパルスＰ３がメモリセルＭＣに印加される。
【０１０２】
例えば、パルスＰ３が印加されると、メモリセルＭＣの閾値分布は、図１２のように、Ｇ１２から曲線Ｇ１３となる。曲線Ｇ１３について検討すると、メモリセルＭＣの閾値電圧の最小値は、閾値電圧Ｖ３よりも大きい。したがって、図１３に示すように、今回のステップＳ５４０では、すべてのメモリセルＭＣは、ベリファイをパスしたと判定される（Ｙｅｓ）。
【０１０３】
なお、図１２に示すように、パルスＰ３が印加されたとき、メモリセルＭＣの閾値電圧の最小値は、閾値電圧Ｖ４、及び最終閾値電圧ＰＶよりも大きい。このため、この後は、閾値電圧がＰＶに達するまで、ステップＳ５５０、Ｓ５７０、Ｓ５２０〜Ｓ５４０の処理が繰り返し行われる。そして、最後のステップＳ５５０では、閾値電圧がＰＶであると判定され（Ｙｅｓ）、低電圧書き込みモードが終了する。
【０１０４】
本実施の形態によれば、メモリセルＭＣに対するベリファイの結果をみながら、閾値電圧及び書き込み電流の電流値を初期値から徐々に上げていくことで、最終閾値電圧ＰＶにおける書き込み動作が行われる。すでに述べた実施の形態では、当初から、最終閾値電圧ＰＶにおいて書き込み可能な電流量をもつパルスをメモリセルＭＣに印加しなければならないが、本実施の形態では、書き込み電流を少ない量から徐々に上げながらメモリセルＭＣへの書き込み動作が行われる。
【０１０５】
この構成によれば、低電圧の状態から効率的に書き込み動作を行うことができ、書き込み動作に係る消費電力が抑制される。また、消費電流が少なくなることから、ノイズを低減させることも可能となる。
【０１０６】
なお、本実施の形態では、例えば、閾値電圧がＰＶに達していなくとも、所定の閾値電圧に達するまで書き込み動作を行った後、一時的に書き込み動作を中断することにより、ＯＴＡ中の書き込み動作を高速化させてもよい。そして、例えばイグニッションオフになると、書き込み動作を再開し、閾値電圧がＰＶに達するまで書き込み動作を行うようにしてもよい。
【０１０７】
また、本実施の形態では、ステップＳ５７０において閾値電圧が変更された後、メモリセルＭＣに対してパルスが印加されているが、閾値電圧が再設定された後に行われるパルス印加は適宜省略されてもよい。これにより、書き込み速度が高速化される。
【０１０８】
（実施の形態４）
次に、実施の形態４について説明する。本実施の形態では、最適な書き込み電流を得るための方法について説明する。図１４は、最適な書き込み電流を得る方法を説明する図である。図１４において、横軸はメモリセルＭＣの閾値電圧、縦軸はメモリセルＭＣの個数をそれぞれ示している。図１４における曲線Ｇ２０は、書き込み動作開始前の消去状態におけるメモリセルＭＣの閾値電圧の分布を示している。
【０１０９】
メモリコントローラ３０は、メモリセルＭＣの閾値電圧を最終閾値電圧ＰＶに設定する。閾値電圧の設定処理は、すでに述べたステップＳ５１５やＳ５７０と類似している。また、メモリコントローラ３０は、書き込み電流の最初の電流値を設定する。このときの電流値は、例えば、最終閾値電圧ＰＶより小さい閾値電圧において書き込み可能な電流値に設定される。具体的には、最初の電流値は、実施の形態３で述べた初期電流値でもよいし、初期電流値より大きくてもよい。この処理は、例えば、ステップＳ５１０やＳ５６０と類似している。
【０１１０】
そして、メモリコントローラ３０は、最初の電流値をもつ書き込み電流のパルス（例えばＰ１１）をメモリセルＭＣに印加し、各メモリセルの閾値電圧を測定する。例えば、メモリコントローラ３０は、各センスアンプ４７に供給されるレファレンス信号ＲＥＦの電流値（あるいは電圧値）を切り換えながら、パルスＰ１１が印加されたメモリセルＭＣの閾値電圧を測定する。このように、メモリコントローラ３０は、最初の電流値における複数のメモリセルＭＣの閾値電圧の分布（例えばＧ２１）を取得する。
【０１１１】
メモリコントローラ３０は、書き込み電流の電流値を複数回切り換えながら、メモリセルＭＣに対しパルス（例えばＰ１２，Ｐ１３）を印加し、それぞれの電流値における複数のメモリセルＭＣの閾値電圧の分布（例えばＧ２２，Ｇ２３）を取得する。
【０１１２】
その際、メモリコントローラ３０は、最終閾値電圧より小さい閾値電圧において書き込み可能な電流値から、最終閾値電圧より大きい閾値電圧において書き込み可能な電流値まで、書き込み電流の電流値を順次高くする。図１４を参照すると、パルスＰ１１は、最終閾値電圧より小さい閾値電圧において書き込み可能な電流値をもつ書き込み電流のパルスである。そして、パルスＰ１２，Ｐ１３は、最終閾値電圧より大きい閾値電圧において書き込み可能な電流値をもつ書き込み電流のパルスである。
【０１１３】
図１４によれば、パルスＰ１２が印加されたときの分布Ｇ２２をみると、閾値電圧の最小値が最終閾値電圧ＰＶより小さく、かつ最終閾値電圧ＰＶに近い値となっている。パルスＰ１２を印加して書き込み動作を行えば、消費電流を抑えつつ、ほとんどのメモリセルＭＣへの書き込み動作が完了する。したがって、図１４によれば、パルスＰ１２に対応する書き込み電流が、最適な書き込み電流であることが分かる。
【０１１４】
図１４では、３種類のパルスが印加されたときの閾値電圧の分布が示されているが、さらに多種類のパルスが印加されたときの閾値電圧の分布が取得されてもよい。
【０１１５】
本実施の形態によれば、電流値が異なる複数種類のパルスが印加されたときの閾値電圧の分布が取得される。この構成によれば、最適な書き込み電流を取得することができ、書き込み電流を低減させ、ノイズを低減させることが可能となる。
【０１１６】
ここまで、例えば、車載用半導体装置としてＣＰＵ１０等を備えた構成について説明してきたが、フラッシュメモリ４０及びメモリコントローラ３０のみで、半導体記憶装置として構成されてもよい。
【０１１７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１１８】
１…半導体装置、１０…ＣＰＵ、３０…メモリコントローラ、４０…フラッシュメモリ、４１…メモリアレイ、４４…チャージポンプ、４７…センスアンプ、４８…スイッチ回路、４８ｃ…ビットラッチ、ＭＣ…メモリセル
【図１】
2020071889.tif 000003
【図２】
2020071889.tif 000004
【図３】
2020071889.tif 000005
【図４】
2020071889.tif 000006
【図５】
2020071889.tif 000007
【図６】
2020071889.tif 000008
【図７】
2020071889.tif 000009
【図８】
2020071889.tif 000010
【図９】
2020071889.tif 000011
【図１０】
2020071889.tif 000012
【図１１】
2020071889.tif 000013
【図１２】
2020071889.tif 000014
【図１３】
2020071889.tif 000015
【図１４】
2020071889.tif 000016