(57)【要約】      （修正有）【課題】ライトパラメータを効率よく探索することができる半導体記憶装置を提供する。【解決手段】半導体記憶装置は、パラメータセットを初期値から変更して生成した新たな２以上のパラメータセットを用いて半導体メモリセルに情報を書き込み、その半導体メモリセルについて変換回路の出力を取得し、変換回路の出力の最大値が得られたパラメータセットと、最小値が得られたパラメータセットとをパラメータ空間上で結ぶ延長上に位置する、他のパラメータセットを、新たな初期値として設定して検証を再実施し、書き込んだ情報と読み出した情報が一致する半導体メモリセルについては、初期値を用いた検証を終了する。【選択図】図９
2013033568.tif 000002
【特許請求の範囲】
【請求項１】
情報を記憶する半導体メモリセルと、
前記半導体メモリセルに情報を書き込む書込信号を発生させる書込制御回路と、
前記半導体メモリセルからの出力信号を取得して多段階を有する読取信号に変換する変換回路と、
を備え、
前記書込制御回路は、
前記書込信号の特性を規定する書込パラメータを１以上組み合わせたパラメータセットの初期値を設定して前記書込信号を発生させて前記半導体メモリセルに情報を書き込んだ後、前記半導体メモリセルに書き込んだ情報を読み出して書き込んだ情報と一致するか否かを検証し、
書き込んだ情報と読み出した情報が異なる前記半導体メモリセルについては、
前記パラメータセットを前記初期値から変更して生成した新たな２以上の前記パラメータセットを用いて前記半導体メモリセルに情報を書き込み、その半導体メモリセルについて前記変換回路の出力を取得し、
前記変換回路の出力の最大値が得られた前記パラメータセットと、最小値が得られた前記パラメータセットとをパラメータ空間上で結ぶ延長上に位置する、他の前記パラメータセットを、新たな前記初期値として設定して前記検証を再実施し、
書き込んだ情報と読み出した情報が一致する前記半導体メモリセルについては、前記初期値を用いた前記検証を終了する
ことを特徴とする半導体記憶装置。
【請求項２】
請求項１において、
前記書込制御回路は、
前記半導体メモリセルの現在の出力信号よりも高い出力信号に対応するビットを前記半導体メモリセルに書き込むときは、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最小値から前記最大値に向かう方向に結ぶ延長上に、前記新たな初期値を設定し、
前記半導体メモリセルの現在の出力信号よりも低い出力信号に対応するビットを前記半導体メモリセルに書き込むときは、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最大値から前記最小値に向かう方向に結ぶ延長上に、前記新たな初期値を設定する
ことを特徴とする半導体記憶装置。
【請求項３】
請求項２において、
前記書込制御回路は、
前記半導体メモリセルにビット”１”を書き込むために用いる前記パラメータセットについて前記検証を実施する際には、
前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最小値から前記最大値に向かう方向に結ぶ延長上に、前記新たな初期値を設定する
ことを特徴とする半導体記憶装置。
【請求項４】
請求項２において、
前記書込制御回路は、
前記半導体メモリセルにビット”０”を書き込むために用いる前記パラメータセットについて前記検証を実施する際には、
前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最大値から前記最小値に向かう方向に結ぶ延長上に、前記新たな初期値を設定する
ことを特徴とする半導体記憶装置。
【請求項５】
請求項３において、
前記書込制御回路は、
前記半導体メモリセルにビット”１”を書き込むために用いる前記パラメータセットについて前記検証を実施した結果、書き込んだ情報と読み出した情報が異なる回数が所定回数連続した場合は、
前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最大値から前記最小値に向かう方向に結ぶ延長上に、前記新たな初期値を設定する
ことを特徴とする半導体記憶装置。
【請求項６】
請求項４において、
前記書込制御回路は、
前記半導体メモリセルにビット”０”を書き込むために用いる前記パラメータセットについて前記検証を実施した結果、書き込んだ情報と読み出した情報が異なる回数が所定回数連続した場合は、
前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最小値から前記最大値に向かう方向に結ぶ延長上に、前記新たな初期値を設定する
ことを特徴とする半導体記憶装置。
【請求項７】
請求項２において、
前記書込制御回路は、
前記変換回路の出力の最大値が得られた前記書込パラメータと最小値が得られた前記パラメータセットを結ぶ延長上に、前記新たな初期値を設定すると、前記書込パラメータの定義域を超過する場合は、
前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを延長させる向きを反転して、前記新たな初期値を設定する
ことを特徴とする半導体記憶装置。
【請求項８】
請求項７において、
前記書込制御回路は、
前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを延長させる向きを反転して、前記新たな初期値を設定するとともに、前記書込パラメータを変更する変更幅を変更する
ことを特徴とする半導体記憶装置。
【請求項９】
請求項１において、
前記書込制御回路は、
書き込んだ情報と読み出した情報が異なる前記半導体メモリセルの個数が、エラー訂正処理によって訂正できる個数未満となった時点で、前記検証を終了する
ことを特徴とする半導体記憶装置。
【請求項１０】
請求項１において、前記半導体メモリセルは、フラッシュ型のメモリセルである
ことを特徴とする半導体記憶装置。
【請求項１１】
請求項１において、前記半導体メモリセルは、相変化型のメモリセルである
ことを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関する。
【背景技術】
【０００２】
半導体記憶装置は、装置が微細化されるに伴い、メモリセルを構成する素子の特性ばらつきが急速に増大する。このため、微細加工された大容量の半導体記憶装置は、エラーを生じないような工夫がなされている。
【０００３】
例えば従来では、ベリファイ動作と呼ばれる動作が利用されている。ベリファイ動作とは、メモリセルからデータをリードして、書き込みたいデータが書き込まれているか否かを確かめる動作のことである。両データが一致していなければ、ライト条件を変更して再度ライトを実施し、それをリードして再びチェックすることを繰り返す。ベリファイ動作を実施すれば、ライトした後のデータ状態を確認することができるので、メモリセルの素子特性がある程度ばらついていても、正しいライト、リード動作が期待できる。
【０００４】
下記特許文献１には、フラッシュメモリのベリファイに関する従来技術が記載されている。フラッシュメモリでは、書き込み信号を印加してメモリセルの電荷蓄積層の電荷蓄積量を変化させ、しきい値電圧を制御することによりデータを書き込む。特許文献１には、次のような５つのステップからなるベリファイ方式が開示されている。
【０００５】
まず、ステップ１において、メモリセルの初期しきい値Ｖｔを測定し、次にステップ２において、メモリセルに書き込みパルスを印加する。次に、ステップ３において、再度しきい値を測定し、書き込みパルスを印加する前後の上記しきい値に基づいてメモリセルの特性を判断する。ステップ４において、メモリセルの特性に合った最適な書き込みパルスのパルス幅またはパルス電圧を設定し、ステップ５において、この書き込みパルスをメモリセルに印加する。
【０００６】
特許文献１には、上記の手法によって書き込み後のメモリセルのしきい値分布を狭小化するとともに、書き込み時間を短縮化したり、書き込み時のストレスを低減させたりすることが可能であると記載されている。
【０００７】
下記特許文献２には、メモリ動作の複数パラメータの組合せを順次設定しながらベリファイを繰り返し、最適な組合せを求める方式が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１１３６８６号公報
【特許文献２】特開２０１０−１６０７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
半導体記憶装置では、１つのチップが記憶すべきデータ容量を高めることへの要求が急速に増大しており、それに伴って更なる微細化を進める必要がある。微細化を進めて行くと、上記のような単純なベリファイ方式では、信頼性を上げることが困難になることが懸念される。すなわち、微細化の極限では、書き込みパルスのパルス幅、パルス電圧などのライトパラメータとリード信号との間の関数関係がメモリセルごとに異なるようになる。
【００１０】
また、個々のメモリセルにおいても、ライトパラメータとリード信号との間の関数関係は、非線形になったり、ライトパラメータの要素間の相互関係が無視できなくなったりと、より複雑になることが予想される。この結果、ライトパラメータの要素間の相互関係が要素毎に線形であると仮定して最適なライトパラメータを予測することはできなくなることはもちろん、メモリセルの複製を作って、それをモデルとして最適なライトパラメータを決めることも困難になる。そのような極限環境下では、ベリファイにおいてエラーが起きた際に、どのような方針でライトパラメータを更新するかということが大きな課題になると予想される。
【００１１】
半導体記憶装置の中でも特に、メモリセル内で特殊な構造のＭＯＳトランジスタを利用し、またはシリコン以外の特殊な材料を使う不揮発性のものでは、上記の事態が近い将来、深刻な課題になることが懸念される。従来の技術では、上記の問題を解決するのは、非常に困難である。
【００１２】
例えば、上記特許文献１の段落００１５には、初回書き込みの前後におけるメモリセルのしきい値変動の様子と、あらかじめ用意してある評価サンプルのデータとが比較されるとの記述がある。しかし、そのようなモデル化は、微細化の極限では困難になると考えられる。また、書き込み前にリードを実施し、しきい値を測定した後、ライト後に再度しきい値を測定しただけでは、最初のリードの状態がどのようなライトパルスを与えた結果であるのか、と言った情報が欠落しているので、最適なライトパルスを推定することは困難である。
【００１３】
上記特許文献２は、段落００１６に記載されているように、ダブルデータレート型メモリ（ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ等）を含む半導体記憶装置に関するものである。段落０１２４には、同文献におけるメモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体が、メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータを設定する技術に有用であると記載されている。
【００１４】
しかし、同文献におけるベリファイのための最適なパラメータの探索は、段落００３３に記載されているように、複数のパラメータが取り得る値の全てについて評価するものである。この方式では、パラメータの数が増加すると、その数のべき乗で組合せの数が急激に増加してしまう。そのため、全部の組合せを試すには、非常に時間がかかる。ライト動作ごとにベリファイを実施するような場合にこの方式を適用すると、ライトにかかる時間が膨大になってしまう。
【００１５】
また、特許文献２に記載されている技術では、メモリセルへのライト回数の増大も課題となる。不揮発性の半導体メモリを構成するメモリセルは、通常書き換え回数に上限が存在するので、なるべくベリファイにおけるライト動作の繰り返し回数を削減する必要がある。したがって、特許文献２に記載されているように、全部の組合せをテストするようなベリファイ方式は適当でない。
【００１６】
本発明は、上記のような課題を解決するためになされたものであり、ライトパラメータを効率よく探索することができる半導体記憶装置を得ることを目的とする。
【課題を解決するための手段】
【００１７】
本発明に係る半導体記憶装置は、メモリセルから最大出力が得られたライトパラメータセットと、最小出力が得られたライトパラメータセットとを結ぶ延長方向に、最適なライトパラメータを探索する。
【発明の効果】
【００１８】
本発明によれば、微細構造を有する半導体記憶装置において、少ない回数でベリファイ動作を終え、信頼性や速度を向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態１に係る半導体記憶装置の構成例を示すブロック図である。
【図２】メモリブロックＭ−ＢＬＫの構成例を示す図である。
【図３】デジタルセンスアンプＤＳＡの構成例を示す図である。
【図４】ライトパルス発生回路ＷＰＧの構成例を示す図である。
【図５】図４に示したライトパルス発生回路ＷＰＧの動作波形例を示すである。
【図６】相変化メモリに適したライトパルス発生回路ＷＰＧの構成例を示す図である。
【図７】図６に示したライトパルス発生回路ＷＰＧの動作波形例を示すである。
【図８】実施形態１におけるベリファイシーケンスを説明する図である。
【図９】図８で説明したベリファイシーケンスにおいて、ライトパラメータ平面上でライトパラメータの探索範囲が移動していく様子を示す図である。
【図１０】図９とは異なるパラメータｋおよびΔを用いて、ライトパラメータ平面上でライトパラメータの探索範囲が移動していく様子を示す図である。
【図１１】実施形態３におけるベリファイシーケンスを説明する図である。
【発明を実施するための形態】
【００２０】
＜用語の定義＞
以下では、はじめに本明細書で用いる用語を定義し、次に図面を用いて、本発明の具体的な実施例について説明する。
【００２１】
ベリファイとは、メモリセルに対してリードを実施し、所望のデータが書き込まれているかどうかを確認する動作のことである。このとき、正しいデータが書き込まれていたと判断される場合をパス、正しくない値が書き込まれていたと判断される場合をフェイルと呼ぶことにする。
【００２２】
ライトパラメータとは、メモリセルに対してライトを実施する際にライトの条件を調整するパラメータのことである。例えば、メモリセルに与えるライトパルスの電圧または電流のピーク値、パルス幅、立ち上がり時間、立ち下がり時間などのパラメータ、またはこれらの値を調整するパラメータのことである。
【００２３】
デジタルセンスアンプとは、選択されたメモリセルから読み出されたアナログ信号をデジタル出力に変換する回路である。出力のビット数は、例えば４ビットなどとすることができる。
【００２４】
＜実施の形態１：半導体記憶装置の構成＞
図１は、本発明の実施形態１に係る半導体記憶装置の構成例を示すブロック図である。図１では、半導体基板上に微細な素子を集積した、いわゆる半導体メモリチップ部分の構成を示している。実際の半導体記憶装置は、この半導体メモリチップを複数組合せ、それらを制御するコントローラチップなどを含んで構成されるが、本発明の内容を理解するうえでは必要ないので省略する。
【００２５】
図１に示す半導体メモリチップＣＨＩＰは、共通レジスタＣ−ＲＥＧ、メモリブロックＭ−ＢＬＫ、制御回路ＣＴＬ、入出力回路ＩＯを備える。
【００２６】
共通レジスタＣ−ＲＥＧは、後述のベリファイシーケンスにおけるライトパラメータのデフォルト値、ライトパラメータの更新のためのパラメータｋやΔのデフォルト値を記憶するためのレジスタである。これらパラメータについては後述する。
【００２７】
共通レジスタＣ−ＲＥＧに記憶されているパラメータは、後述するベリファイシーケンスを開始するとき、選択された複数のメモリブロックＭ−ＢＬＫ、後述するライトパラメータ保持用レジスタＷＰ−ＲＥＧ、および更新用パラメータ保持用レジスタＲＥＶ−ＲＥＧに転送される。
【００２８】
メモリブロックＭ−ＢＬＫは、データを記憶するためのメモリセルを複数集積したものである。メモリセルが選択される、つまりアクセスされるときにはｘ個のメモリブロックが選択され、それぞれのメモリブロックから１つずつのメモリセルが選択される。
【００２９】
入出力回路ＩＯは、半導体メモリチップＣＨＩＰ内部のメモリセルからデータを読み出したり、半導体メモリチップＣＨＩＰ外部からデータを書き込んだりする際に、データＤＡＴＡやコマンドＣＭＤ等を一時的に記憶したり、所定の電気的インターフェースやプロトコルに変換したりする回路である。
【００３０】
制御回路ＣＴＬは、入出力回路ＩＯからコマンドやデータを受け取り、半導体メモリチップＣＨＩＰ内部の回路を制御する回路である。
【００３１】
図２は、メモリブロックＭ−ＢＬＫの構成例を示す図である。メモリブロックＭ−ＢＬＫは、メモリセルアレイＭＣＡ、メモリブロック制御回路ＭＢ−Ｃ、デジタルセンスアンプＤＳＡ、ライトパルス発生回路ＷＰＧ、フェイル・パスフラグ用レジスタＦＰ−ＲＥＧ、ライトパラメータ保持用レジスタＷＰ−ＲＥＧ、更新用パラメータ保持用レジスタＲＥＶ−ＲＥＧ、リード結果保持用レジスタＲ−ＲＥＧ、フェイル・パス判定回路ＦＰ−Ｃを備える。
【００３２】
メモリセルアレイＭＣＡは、情報を記憶する複数のメモリセルから構成される。
メモリブロック制御回路ＭＢ−Ｃは、メモリセルアレイＭＣＡ、デジタルセンスアンプＤＳＡ、ライトパルス発生回路ＷＰＧ、フェイル・パスフラグ用レジスタＦＰ−ＲＥＧ、ライトパラメータ保持用レジスタＷＰ−ＲＥＧ、更新用パラメータ保持用レジスタＲＥＶ−ＲＥＧ、リード結果保持用レジスタＲ−ＲＥＧ、フェイル・パス判定回路ＦＰ−Ｃを制御することにより、メモリブロックＭ−ＢＬＫに対するアクセス動作を制御する。
【００３３】
デジタルセンスアンプＤＳＡは、メモリブロック中の選択されたメモリセルからの信号を増幅し、デジタル変換する回路である。詳細は後述の図３で説明する。
ライトパルス発生回路ＷＰＧは、ライトパラメータの値に依存したパルス形状を持つパルスを発生し、メモリブロックＭ−ＢＬＫ中の選択したメモリセルにそのパルスを印加する回路である。詳細は後述の図４で説明する。
【００３４】
フェイル・パスフラグ用レジスタＦＰ−ＲＥＧは、後述のベリファイ動作の結果、所望のデータがライトされた（パス）か、所望のライトデータがうまくライトされなかった（フェイル）かを示すフラグを記憶するレジスタである。詳細は後述するが、ベリファイシーケンスの途中で、このフラグを確認してパスしたメモリブロックについてはその後のベリファイシーケンスを終了し、フェイルしたメモリブロックについてはベリファイシーケンスを継続する。
【００３５】
ライトパラメータ保持用レジスタＷＰ−ＲＥＧは、後述のベリファイシーケンスにおいて、更新されたライトパラメータを記憶するためのレジスタである。
更新用パラメータ保持用レジスタＲＥＶ−ＲＥＧは、後述のベリファイシーケンスにおいてライトパラメータを更新するために用いる、ｋやΔなどのパラメータを記憶するレジスタである。
リード結果保持用レジスタＲ−ＲＥＧは、ベリファイシーケンスにおけるリードによってデジタルセンスアンプＤＳＡから出力された値をデジタル値で記憶するためのレジスタである。
【００３６】
フェイル・パス判定回路ＦＰ−Ｃは、まず、デジタル化されたメモリセルからの出力信号がビット１と０のいずれに相当するかを判定する。次に、その判定結果がライトしたい値と一致しているか否か、すなわちパスかフェイルかを判定し、上記フラグを発生する。
【００３７】
本実施形態１における「書込制御回路」は、制御回路ＣＴＬ、メモリブロック制御回路ＭＢ−Ｃ、ライトパルス発生回路ＷＰＧがこれに相当する。「変換回路」は、デジタルセンスアンプＤＳＡがこれに相当する。
【００３８】
図３は、デジタルセンスアンプＤＳＡの構成例を示す図である。デジタルセンスアンプＤＳＡは、後述のベリファイシーケンスにおけるリード動作時に、メモリセルからのアナログ出力信号をデジタル値に変換し、その結果を上記のリード結果保持用レジスタＲ−ＲＥＧに保存する回路である。
【００３９】
デジタルセンスアンプＤＳＡは、アナログアンプＡＭＰとＡＤ変換回路ＡＤ−Ｃを備える。アナログアンプＡＭＰの入力は、メモリセルからの出力信号ＡＭ−ＳＩＧである。アナログアンプＡＭＰは、信号ＡＭ−ＳＩＧを増幅してＡＤ変換回路ＡＤ−Ｃに出力する。ＡＤ変換回路ＡＤ−Ｃは、アナログアンプＡＭＰの出力をデジタル値に変換する。ＡＤ変換回路ＡＤ−Ｃの出力ＤＭ−ＳＩＧは、リード結果保持用レジスタＲ−ＲＥＧに記憶される。
【００４０】
以下では、ＡＤ変換回路ＡＤ−Ｃの出力が４ビットであるものとして説明するが、本発明はこれに限定される訳ではない。ビット数を多くすれば、より細かい判定を実施することができる。一方、本実施例のように少ないビットにしておくと、回路規模が小さくなるだけでなく、処理速度も高速になる。
【００４１】
なお、アナログアンプＡＭＰは、入力信号と出力信号の対応関係の線形性が正確なものである必要はない。また、メモリブロックＭ−ＢＬＫごとにアンプ特性に多少のばらつきがあっても、半導体記憶装置の動作に支障はないと考えられる。
【００４２】
上記の理由は、本発明のベリファイシーケンスにおいては、それぞれのメモリブロックＭ−ＢＬＫごとに選択された１つのメモリセルに対してライトパラメータを更新するからである。すなわち、特定のデジタルセンスアンプＤＳＡの動作結果は、特定のメモリセルだけに利用されるので、異なるメモリブロックＭ−ＢＬＫ内のデジタルセンスアンプＤＳＡの特性ばらつきや個々のデジタルセンスアンプＤＳＡの線形性が悪くても、そのメモリブロックＭ−ＢＬＫ内においては動作を完結することができる。このことは、後述のベリファイシーケンスの説明において、より明白に理解されるであろう。
【００４３】
図４は、ライトパルス発生回路ＷＰＧの構成例を示す図である。図４に示すライトパルス発生回路ＷＰＧは、独立した２つのライトパラメータの値によってパルスのピーク値とパルス幅を変えることができる。図４に示すライトパルス発生回路ＷＰＧは、後述のベリファイシーケンスにおいて、メモリセルごとに最適なピーク値とパルス幅を持つライトパルスを発生するのに適している。
【００４４】
入力信号ＩＮが低電位から高電位に切り替わると、信号ＩＮ３−Ｄがしばらく遅れて上がる。このときの遅れは、スイッチＳＷＢ３−１からＳＷＢ３−４のうち導通していないものに接続されているディレイ回路（ＤＲ３−１〜ＤＲ３−４のいずれか１以上）の遅延時間の合計によって決まる。
【００４５】
ＮＯＲ回路ＮＯＲ３の一方の入力に入力信号ＩＮが入力されているので、信号φ３は信号ＩＮ３−Ｄの遅延に支配されずに高電位Ｖｄｄに遷移する。その結果、出力信号ＯＵＴ（すなわちライトパルス）もディレイ回路ＤＲ３に影響されず高電位に遷移する。
【００４６】
出力信号ＯＵＴの電位は、容量ＭＣ３−１〜ＭＣ３−４により昇圧されるので、電位Ｖｄｄより高くなる。昇圧される電位は、スイッチＳＷＡ３−１〜ＳＷＡ３−４のうちの導通しているものに接続されている容量（ＭＣ３−１〜ＭＣ３−４のいずれか１以上）の合計に依存する。
【００４７】
入力信号ＩＮが高電位Ｖｄｄから低電位Ｖｓｓに遷移すると、信号ＩＮ３−Ｄが上記と同じ理由で遅れて低電位Ｖｓｓに下がる。このときは、ＮＯＲ回路ＮＯＲ３の一方に入力信号ＩＮが入力されていても、信号φ３は信号ＩＮ３−Ｄの遅延に支配されて低電位Ｖｓｓに遷移し、出力信号ＯＵＴも信号φ３が下がった直後に下がる。
【００４８】
このように、入力信号ＩＮが立ち上がってから立ち下がるまでの時間、つまり入力信号ＩＮのパルス幅が一定でも、出力信号ＯＵＴのパルス幅をスイッチＳＷＢ３−１〜ＳＷＢ３−４の開閉によって制御することができる。
【００４９】
図５は、図４に示したライトパルス発生回路ＷＰＧの動作波形例を示すである。ここでは、ピークが高く幅の狭いライトパルスＷＰ３−１と、ピークが低く幅が広いライトパルスＷＰ３−２の例を示した。
【００５０】
例えばＭＯＳ容量ＭＣ３−１〜ＭＣ３−４の容量値を１：２：４：８の比率にすることにより、出力電圧のピーク値を１６通りに変更することができる。また、上記とは別の４ビットのライトパラメータを用いて４つのスイッチＳＷＢ３−１〜ＳＷＢ３−４を開閉することにより、ライトパルスの幅を制御することができる。例えば、４個のディレイ回路ＤＲ３−１〜ＤＲ３−４の遅延時間を１：２：４：８にすることにより、パルス幅を１６通りに変えることができる。
【００５１】
以上のように、図４に示すライトパルス発生回路ＷＰＧは、４ビットずつの２つのライトパラメータにより、ライトパルスのピーク値とパルス幅を、それぞれ１６通りに制御することができる。フラッシュメモリなどでは、このような回路が有効である。
【００５２】
一方、例えば相変化メモリのように、メモリセルを流れる電流の立ち下り時間を調整することにより、メモリセルの状態を書換えるようなメモリセルも存在する。相変化メモリでは、ジュール熱を利用して、メモリセル内部の相変化材料の状態を変化させることにより、メモリセルに情報を書き込む。
【００５３】
ライトパルスのピークを高く幅を狭くすると、メモリセルが高温になった後に急冷されてアモルファス状態となる。ライトパルスのピークを低く幅を広くして、立ち下り時間を長めにすると、メモリセルを結晶状態にすることができる。アモルファス状態と結晶状態では、相変化材料の抵抗値が互いに異なるので、これを利用してメモリセルに情報を書き込むことができる。
【００５４】
図６は、相変化メモリに適したライトパルス発生回路ＷＰＧの構成例を示す図である。同図に示す構成例は、図４に示す構成例に、パルスの立ち下り時間を調整する機能を加えたものである。
【００５５】
図６に示すライトパルス発生回路ＷＰＧは、出力端子ＯＵＴに接続されたｎＭＯＳトランジスタＭＮ３と接地の間に直列に、ｎＭＯＳトランジスタＭＮ３−Ｂを新たに設けた。ｎＭＯＳトランジスタＭＮ３−Ｂのゲート電極には、スイッチＳＷＣ３−１〜ＳＷＣ３−４を介して、電流源ＣＳ３−１〜ＣＳ３−４が接続されている。ｎＭＯＳトランジスタＭＮ３−Ｂと電流源ＣＳ３−１〜ＣＳ３−４がスイッチＳＷＣ３−１〜ＳＷＣ３−４を介して導通すると、カレントミラー回路が構成される。
【００５６】
ライトパルスが立ち下がる時間は、ｎＭＯＳトランジスタＭＮ３−Ｂを流れる電流で決まる。したがって、４ビットの新たなライトパラメータを用いてスイッチＳＷＣ３−１〜ＳＷＣ３−４を開閉することにより、ライトパルスの立ち下り時間を制御することができる。例えば、電流源ＣＳ３−１〜ＣＳ３−４の電流値をおおよそ１：２：４：８の比率に設定すれば、ライトパルスの立下り時間を１５通りに調整することができる。１６通りではなく１５通りとしたのは、全てのスイッチＳＷＣ３−１〜ＳＷＣ３−４が開いた状態、つまりｎＭＯＳトランジスタＭＮ３−Ｂのゲート電極の電圧が不定となる状態を除外したためである。
【００５７】
図７は、図６に示したライトパルス発生回路ＷＰＧの動作波形例を示すである。ここでは、ピーク値が高く幅が細い立ち下がりが急なライトパルスＷＰ４−１と、ピーク値が低く幅が大きい立ち下りが緩やかなライトパルスＷＰ４−２の例を示した。
【００５８】
＜実施の形態１：ライトパラメータの調整＞
以上、本発明に係る半導体メモリチップＣＨＩＰの構成や回路の構成例を説明した。次に、本発明において、複数のライトパラメータをどのように調整すれば効率的なベリファイができるかについて説明する。
【００５９】
以下ではライトパラメータが複数あることを前提とするが、より単純な場合としてライトパラメータが１つの場合でも本発明を適用できることはもちろんである。説明の見通しを良くするために、以下では次のように考える。
【００６０】
複数のライトパラメータをまとめて多次元変数と考える。個々のライトパラメータは、図４と図６で説明したように、複数の値を取ることができる。複数のパラメータが取り得る値の組み合せは、ライトパラメータ数を次元数とするパラメータ空間内に配置された探索候補点と考えることができる。また、各探索候補点に対応するパラメータを用いてライトを実施した後のデジタルセンスアンプＤＳＡの出力Ｓは、この探索空間で定義される関数の出力値と考えることができる。
【００６１】
例えば、ライトパラメータが２つの例では、２つのパラメータを（ａ，ｂ）と記し、それらのパラメータが取り得る状態を変数とする２次元平面を考える。一組のライトパラメータセットは、上記２次元平面上の１点（ａ，ｂ）に対応させる。例えばパラメータセット（ａ，ｂ）を、ライトパルスのピーク値とパルス幅をそれぞれ制御するパラメータに対応させることができる。
【００６２】
同様に、ライトパラメータが３つの例では、３つのパラメータを（ａ，ｂ，ｃ）と記し、それらのパラメータが取り得る状態を変数とする３次元空間を考える。一組のライトパラメータセットは、上記３次元空間上の１点（ａ，ｂ，ｃ）に対応させる。例えばパラメータセット（ａ，ｂ，ｃ）は、ライトパルスのピーク値、パルス幅、パルスの立ち下がり時間をそれぞれ制御するパラメータに対応させることができる。
【００６３】
相変化メモリセルやフラッシュメモリセルなどの不揮発性の半導体記憶装置では、一般にライトできる回数に上限が存在する。したがって、上記ライトパラメータの空間の中で所望のデータを記録できるライトパラメータを、なるべく少ない回数のベリファイで探索することが重要となる。
【００６４】
メモリセルの種類によって、ライトに電流パルスが適しているか、電圧パルスが適しているかが異なるが、ベリファイシーケンスは同じなので、以下の説明ではこれらを区別しないで単にライトパルスと記す。また、以下では説明を煩雑にしないために、メモリセルは１か０の２値を記憶するものとするが、多値を記憶するメモリセルに対しても同様の原理が適応できることは言うまでもない。
【００６５】
以下では、デジタルセンスアンプＤＳＡは、メモリセルからの出力信号に対して１６レベル、すなわち４ビットのデジタル出力（００００〜１１１１）を持つものを使う例を説明する。また、ライトパラメータも２進表現で（００００〜１１１１１）の１６レベルの値を取り得るものとする。
【００６６】
図４と図６で説明した例では、パラメータによっては４ビットのパラメータに対して１６通りではなく１５通りの値を取るものを紹介したが、説明が煩雑になるため、以下ではどのライトパラメータも１６通りの値を取るものとする。必要に応じて１６レベルより多いあるいは少ない出力を持つ回路を用いてもよいことは、もちろんである。多くのパラメータレベルを持つ回路を用いれば、より細かいパラメータ調整が可能となり、ベリファイの信頼性を上げることができる。一方、少ないパラメータレベルを持つ回路では、回路規模を小さくできることや動作速度が高速になるという利点がある。
【００６７】
なお、以下では、デジタルセンスアンプＤＳＡの出力が高く、１６段階のレベルのうち１５段階（１１１０）以上であれば、メモリセルが記憶している情報は１であり、２段階（０００１）以下の低いレベルであればメモリセルが記憶している情報は０であると判定することにする。本発明は、この値に限定されるものでないことは、もちろんである。
【００６８】
図８は、本実施形態１におけるベリファイシーケンスを説明する図である。図８に示すベリファイシーケンスでは、ライトパラメータとして制御するのは書き込みパルスのピーク値とパルス幅とし、それぞれ変数（ａ，ｂ）で表記する。以下、図８の各ステップについて説明する。
【００６９】
（図８：準備動作）
制御回路ＣＴＬは、図８に示すシーケンスの始めに、メモリブロックＭ−ＢＬＫを選択し、選択した個々のメモリブロックＭ−ＢＬＫのメモリセルアレイＭＣＡのなかから１つずつメモリセルを選択する。メモリブロック制御回路ＭＢ−Ｃは、選択したメモリセルについて、以下のシーケンスによってベリファイを実施する。
【００７０】
（図８：ステップ１：選択セルの現在値読み出し）
メモリブロック制御回路ＭＢ−Ｃは、その選択したメモリセルに対してリードを実施し、ライトしたいデータが既に書き込まれているか否か、すなわち同メモリセルに対するベリファイ結果がパスかフェイルかを判定する。例えば、データ１をライトしたいメモリセルについては、センスアンプの出力が１１１０以上、すなわち１１１０か１１１１をパスとし、それ以外ではフェイルとする。データ０をライトしたいメモリセルについては、センスアンプの出力が０００１以下、すなわち０００１か００００をパスとし、それ以外をフェイルとする。本ステップでパスしたメモリセルについては、以下のシーケンスは実施しない。メモリブロック制御回路ＭＢ−Ｃは、本ステップでフェイルしたメモリセルについては、デジタルセンスアンプＤＳＡの出力値をリード結果保持用レジスタＲ−ＲＥＧに保存する。また、パスしたメモリセルについてはフェイル・パスフラグ用レジスタＦＰ−ＲＥＧの所定ビットを０にセットし、フェイルしたメモリセルについては同ビットを１にセットする。
【００７１】
（図８：ステップ２：ライトパラメータＡ，Ｂの初期値設定）
メモリブロック制御回路ＭＢ−Ｃは、ステップ１でフェイルしたメモリセルについてライトを実施し、正しいデータを記録するよう試みる。また、ライトを実施するために用いるライトパラメータの初期値を、ステップ１でフェイルしたメモリセルが属しているメモリセルアレイに対応するライトパラメータ保持用レジスタＷＰ−ＲＥＧに記憶する。
【００７２】
（図８：ステップ２：補足）
ここでは、ライトパラメータの初期値を、
データ１をライトしたいメモリセルのライトパラメータ初期値：（ａ１，ｂ１）
データ０をライトしたいメモリセルのライトパラメータ初期値：（ａ０，ｂ０）
と表記する。
【００７３】
（図８：ステップ３：初期値を用いたライトおよびベリファイ）
メモリブロック制御回路ＭＢ−Ｃは、ステップ１でフェイルしたメモリセルについて、ライトパラメータ保持用レジスタＷＰ−ＲＥＧに記憶したライトパラメータの初期値を用いてライトを実施した後、ベリファイを実施する。パスかフェイルかの判断条件はステップ１と同様である。メモリブロック制御回路ＭＢ−Ｃは、本ステップでパスしたメモリセルについては、以下のシーケンスを実施しない。メモリブロック制御回路ＭＢ−Ｃは、本ステップでフェイルしたメモリセルについては、デジタルセンスアンプＤＳＡの出力値をリード結果保持用レジスタＲ−ＲＥＧに保存する。また、パスしたメモリセルについてはフェイル・パスフラグ用レジスタＦＰ−ＲＥＧの所定ビットを０にセットし、フェイルしたメモリセルについては同ビットを１にセットする。
【００７４】
（図８：ステップ４：初期値近傍におけるライトおよびベリファイ）
メモリブロック制御回路ＭＢ−Ｃは、ステップ３でフェイルしたメモリセルについて、ステップ３で試したライトパラメータ初期値の近傍のライトパラメータを用いてライトおよびベリファイを実施する。各近傍パラメータを用いたライトおよびベリファイは、連続して実施する。パスかフェイルかの判断条件はステップ１と同様である。メモリブロック制御回路ＭＢ−Ｃは、本ステップでパスしたメモリセルについては、以下のシーケンスを実施しない。メモリブロック制御回路ＭＢ−Ｃは、本ステップでフェイルしたメモリセルについては、デジタルセンスアンプＤＳＡの出力値をリード結果保持用レジスタＲ−ＲＥＧに保存する。また、パスしたメモリセルについてはフェイル・パスフラグ用レジスタＦＰ−ＲＥＧの所定ビットを０にセットし、フェイルしたメモリセルについては同ビットを１にセットする。
【００７５】
（図８：ステップ４：補足その１）
本ステップにおいて、初期値近傍のライトパラメータの数や値の選び方には様々なバリエーションが考えられるが、ここでは３つの近傍点、すなわち
・データ１をライトするメモリセルについての近傍点：（ａ１＋Δ，ｂ１）、（ａ１，ｂ１＋Δ）、（ａ１＋Δ，ｂ１＋Δ）
・データ０をライトするメモリセルについての近傍点：（ａ０＋Δ，ｂ０）、（ａ０，ｂ０＋Δ）、（ａ０＋Δ，ｂ０＋Δ）
の３点を用いる。
【００７６】
（図８：ステップ４：補足その２）
本ステップが終了した時点でフェイルとなっているメモリセルについては、リード結果保持用レジスタＲ−ＲＥＧには、ライトパラメータの初期値および３つの近傍点を合わせた４点に対応するデジタルセンスアンプＤＳＡの出力値が保存されている。
【００７７】
（図８：ステップ５：ライトパラメータａ，ｂの初期値の更新）
メモリブロック制御回路ＭＢ−Ｃは、ステップ４で近傍ライトパラメータを用いてベリファイを実施した各メモリセルについて、４つのライトパラメータセットの中で、デジタルセンスアンプＤＳＡの出力値が最大であるライトパラメータセットと、最小になるライトパラメータセットとを決定する。以下では、デジタルセンスアンプＤＳＡの出力が最大値となったライトパラメータセットを（ａｍａｘ，ｂｍａｘ）、最小値となったライトパラメータセットを（ａｍｉｎ，ｂｍｉｎ）と記す。これらの値は、メモリセルごとに異なることに注意されたい。メモリブロック制御回路ＭＢ−Ｃは、下記式（１）（２）にしたがって、新しいライトパラメータの初期値を設定する。
【００７８】
（図８：ステップ５：新たなライトパラメータの演算式）
ライトするデータが１の場合：
（ａ１，ｂ１）＝（ａｍａｘ＋（ｋ／Δ）（ａｍａｘ−ａｍｉｎ），
ｂｍａｘ＋（ｋ／Δ）（ｂｍａｘ−ｂｍｉｎ））  ・・・式（１）
ライトするデータが０の場合：
（ａ０，ｂ０）＝（ａｍｉｎ＋（ｋ／Δ）（ａｍｉｎ−ａｍａｘ），
ｂｍｉｎ＋（ｋ／Δ）（ｂｍｉｎ−ｂｍａｘ））  ・・・式（２）
係数ｋはパラメータであり、その意味は後述する。
【００７９】
（図８：ステップ５：新たなライトパラメータの演算例）
例えば、データ１をライトしたいセルにおいて、元の初期値（ａ１，ｂ１）とその３つの近傍点の中で、デジタルセンスアンプＤＳＡの出力が最大になったパラメータセットが（ａ１，ｂ１＋Δ）であり、最小となったパラメータセットが（ａ１＋Δ，ｂ１）であったとすると、式（１）に基づき、新しい初期値は、
（ａ１−ｋ，ｂ１＋Δ＋ｋ）  ・・・式（３）
となる。
【００８０】
（図８：ステップ５：ライトパラメータ更新後の処理）
メモリブロック制御回路ＭＢ−Ｃは、上記式（１）（２）を用いて、ライトパラメータ保持用レジスタＷＰ−ＲＥＧ内のライトパラメータの初期値を更新した後、ステップ３に戻って同様の処理を繰り返す。繰り返しの途中で、フェイルしているメモリセルの数が所望の値、例えば、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ：エラー検出訂正機能）で修復することができる数を下回った場合には、ベリファイシーケンスを終了する。
【００８１】
（図８：ステップ５：補足その１）
場合によっては、本ベリファイシーケンスを繰り返しても、フェイルしているメモリセルの数が、所望の値を下回らない場合が考えられる。そのような場合に備える方法としては、例えば、ライトパラメータセットの初期値を更新した回数があらかじめ決めていた回数を超えたときにベリファイシーケンスを停止し、フェイルしているメモリセルについては、ライトパラメータセットの初期値を前回実施時から変更してステップ１からやり直すことが考えられる。あるいは、パラメータΔやｋなどを変更した上で、設定した回数だけさらにベリファイシーケンスを続けることも考えられる。
【００８２】
（図８：ステップ５：補足その２）
パラメータΔは、ライトパラメータ空間において、初期値と近傍点の間の距離を表すパラメータである。パラメータｋは、初期値とその更新後の値との間の距離を表すパラメータである。例えば、パラメータΔを上記１６レベルの１レベル分とすると、初期値に隣接する点が近傍点として選択される。また、パラメータｋを１とすると、初期値を更新するときの変化量は最小となる。パラメータｋは、通常は正の整数にしておく。その理由は後述する。
【００８３】
図９は、図８で説明したベリファイシーケンスにおいて、ライトパラメータ平面上でライトパラメータの探索範囲が移動していく様子を示す図である。図９において、ライトパラメータを更新するためのパラメータｋとΔを両方とも１とした。これらのパラメータは上述のように１に限るものでないことはもちろん、ベリファイシーケンスの途中でメモリセルごとに変更してもよい。
【００８４】
図９において、目視で本発明の原理を理解できるように、１をライトしたいメモリセルと０をライトしたいメモリセルの２つだけを選んで探索範囲の移動過程を示した。実際の半導体チップでは、数千あるいはそれ以上のメモリセルを同時に選択することも珍しくはなく、本発明のシーケンスにおいても、原理上、並列に処理できるメモリセルの数には制限はない。
【００８５】
図９において、Ｄａｔａ‘１’と記されている正方形の左下隅の点に対応するライトパラメータが、図８で説明したベリファイシーケンスのステップ２におけるライトパラメータ（ａ１，ｂ１）である。同様に、Ｄａｔａ‘０’と記されている正方形の左下隅の点に対応するライトパラメータが、図８で説明したベリファイシーケンスのステップ２におけるライトパラメータ（ａ０，ｂ０）である。
【００８６】
図８のステップ３で初期値を用いたベリファイを実施した結果がフェイルになると、ステップ４で初期値に対して３つの近傍点が定義される。初期値とこれら３つの近傍点をライトパラメータ平面上で結ぶと、図９に示すように正方形となる。
【００８７】
近傍点でも全てフェイルとなった場合、ステップ５で初期値が更新され、ステップ３に戻る。ライトパラメータの初期値が変更されると、本図のライトパラメータ平面上では、初期値が移動することになる。初期値の移動先は、式（１）（２）で説明したように、デジタルセンスアンプＤＳＡから得られる信号が最大となるパラメータセットと最小となるパラメータセットを結ぶ延長上であるので、最大点と最小点それぞれの位置によっては、初期値の移動先はパラメータ平面の両軸方向ともに正方向・負方向いずれにもなり得る。
【００８８】
新しい初期値の計算は、前述のように個々のメモリセルからの読み出し信号に対するデジタルセンスアンプＤＳＡの出力に基づき決められる。そのため、ベリファイシーケンスを開始するときの初期値はメモリセル全部について共通であったとしても、新しい初期値はメモリセルごとに最適な値が選ばれることになる。したがって、更新されたライトパラメータの初期値は、メモリセル間で共通となることは少なく、一般的にはメモリセルごとに異なる軌道を辿って探索が実施される。
【００８９】
例えば、あるメモリセルに関するライトパラメータを探索する際には図９の実線矢印のように初期値が移動し、別のメモリセルに関するライトパラメータを探索する際には点線矢印のように初期値が移動する可能性がある。
【００９０】
なお、図８で説明したように、ベリファイシーケンスの途中でパスしたメモリセルについては、それ以後のシーケンスは実施しないので、実際には図９に示す正方形の４点全てについてベリファイを実施するとは限らない。例えば、あるメモリセルについては正方形の左上点に相当するパラメータセットによってベリファイ結果がパスとなってシーケンス終了となり、別のメモリセルについては正方形の右下点に相当するパラメータセットによってベリファイ結果がパスとなってシーケンス終了となる場合があり得る。ただし、図９では、説明の便宜上、全ての初期値について４点全てを結んで正方形を記載した。
【００９１】
＜実施の形態１：ベリファイシーケンスの効果＞
以上、ライトパラメータを調整するためのベリファイシーケンスについて説明した。以下では、図８〜図９で説明したベリファイシーケンスの効果について述べる。
【００９２】
ライトパラメータの初期値を更新する際には、式（１）（２）で説明したように、デジタルセンスアンプＤＳＡの出力が最大となるパラメータセットと最小となるパラメータセットをパラメータ空間上で結ぶ延長上に、新たなライトパラメータの初期値を設定する。この延長方向は、デジタルセンスアンプＤＳＡの出力が急峻に変化する方向を示しているので、同方向の延長上に、デジタルセンスアンプＤＳＡの出力がさらに大きくなり、またはさらに小さくなるパラメータセットが存在している可能性が高いと考えられる。
【００９３】
すなわち、上述の式（１）（２）で説明した探索手法によれば、デジタルセンスアンプＤＳＡの出力値がより大きくなり、またはより小さくなるパラメータセットを、効率よく探索することが期待できる。換言すると、上記手法によれば、ビット１またはビット０をメモリセルに書き込むためにより適したライトパラメータセットを、効率よく探索することができると考えられる。
【００９４】
具体的には、式（１）（２）におけるパラメータｋが正の値であれば、ビット１を書き込むメモリセルについては、ライトパラメータの２次元平面においてデジタルセンスアンプＤＳＡの出力が最小になるパラメータセットから見て、デジタルセンスアンプＤＳＡの出力が最大になるパラメータセットに向かう方向の延長上、つまり傾斜の上り方向に、新しいライトパラメータの初期値が設定される。一方、ビット０をライトするメモリセルについては、デジタルセンスアンプＤＳＡの出力が最大になるパラメータセットから見てデジタルセンスアンプＤＳＡの出力が最小になるパラメータセットに向かう方向の延長上、つまり傾斜の下り方向に、新しいライトパラメータの初期値が設定される。
【００９５】
＜実施の形態１：パラメータｋとΔの変更＞
デジタルセンスアンプＤＳＡの出力値の関数形状は、メモリセルを構成する微細な素子や半導体基板上に形成されたセンスアンプなどの回路特性のばらつきなどによって決まるので、ライトパラメータの空間上で複数の極値を持っている可能性がある。
【００９６】
そのような場合は、パラメータｋを常時正にしておくと、探索プロセスが、１をライトするメモリセルについては極大値に捕まり、０をライトするメモリセルについては極小値（いわゆるローカルマキシマムあるいはローカルミニマム）に捕まって、ベリファイ結果がいつまでもフェイルを続ける可能性がある。このような場合には、フェイルが続く回数をカウントしておき、ある回数を超えたらパラメータｋを一時的に負にするとよい。これにより、それまで探索していた方向と逆の方向にライトパラメータを更新することになるので、探索プロセスが極大値や極小値に捕まる可能性を抑制することができる。
【００９７】
また、ベリファイシーケンスの途中でライトパラメータの更新値がライトパラメータの定義域を超えそうになった場合も、パラメータｋを一時的に負の値にするとよい。その場合は、単なる逆戻りを繰り返さないようにパラメータΔの値も併せて変化させるとよい。
【００９８】
ところで、本実施形態１では、１回ライトするごとにリードしてベリファイを実施している。しかし、メモリセルの特性によっては、１回データを書き換えるために、複数回ライトパルスを印加した方がよい場合も有り得る。そのような場合は、複数回ライトパルスを印加した後に、リードしてベリファイを実施すればよい。
【００９９】
＜実施の形態１：まとめ＞
以上のように、本実施形態１によれば、デジタルセンスアンプＤＳＡの出力とライトパラメータとの間の関係が不明、あるいは予測が不可能な場合であっても、フェイルしたメモリセルをパスするライトパラメータを高い確率で見つけることが期待できる。
【０１００】
また、本実施形態１では、ライトパラメータを探索する過程において、デジタルセンスアンプＤＳＡの出力が最大になるパラメータセットと最小になるパラメータセットをパラメータ平面上で結ぶ延長上に、新たなパラメータセットの初期値を設定する。この探索手法により、メモリセルにビット１を書き込む場合はデジタルセンスアンプＤＳＡの出力値がより大きくなるライトパラメータセットを効率よく探索し、メモリセルにビット０を書き込む場合はデジタルセンスアンプＤＳＡの出力値がより小さくなるライトパラメータセットを効率よく探索することができる。
【０１０１】
また、本実施形態１において、各メモリセルに対するベリファイ結果がフェイルとなった場合、単にその結果のみを記録するのではなく、そのときのデジタルセンスアンプＤＳＡの出力値も併せて記録する。これは、上述のように最大パラメータセットと最小パラメータセットを結ぶ方向にライトパラメータを探索するからである。これに対し、単にベリファイ結果のみを記録する場合、そのときのライトパラメータセットによってメモリセルからいかなる出力信号が得られるかが不明であるため、結果として広範な範囲を探索しない限りは適切なライトパラメータが得られがたいと考えられる。
【０１０２】
なお、本実施形態１では、デジタルセンスアンプＤＳＡがその出力ビット数に応じて多レベルの出力値を出力することとしたが、本実施形態１と同様に探索方向を定めることができるのであれば、多レベルのアナログ出力値を出力するアンプをデジタルセンスアンプＤＳＡに代えて用いることもできる。以下の実施形態でも同様である。
【０１０３】
＜実施の形態２＞
図１０は、図９とは異なるパラメータｋおよびΔを用いて、ライトパラメータ平面上でライトパラメータの探索範囲が移動していく様子を示す図である。本実施形態２では、パラメータΔ＝２、パラメータｋ＝３とした。したがって、図１０における正方形の一辺の長さは２であり、初期値の変化量は３である。
【０１０４】
ライトパラメータの変化に対して、デジタルセンスアンプＤＳＡの出力値の変化が少ない場合には、このようにパラメータΔを大きくして、３つの近傍点を初期値からある程度離れたところに設定するとよい。同様に、パラメータｋを大きくすることにより、初期値の更新値をより離れたところに選ぶようにするとよい。これにより、ベリファイ結果がパスとなるまでのベリファイ回数を減少させる効果が期待できる。
【０１０５】
＜実施の形態３＞
本発明の実施形態３では、ライトパラメータが３つの場合において、パラメータ空間上でライトパラメータセットを探索する動作例を説明する。
【０１０６】
図１１は、本実施形態３におけるベリファイシーケンスを説明する図である。本実施形態３では、ライトパラメータとして制御するのは、書き込みパルスのピーク値、パルス幅、パルスの立ち下り時間とし、これらをそれぞれ変数Ａ、Ｂ、Ｃで表記する。以下、図１１の各ステップについて説明する。
【０１０７】
（図１１：準備動作〜ステップ１：選択セルの現在値読み出し）
メモリブロック制御回路ＭＢ−Ｃは、図１１に示すシーケンスの始めに、図８と同様の準備動作を実施する。ステップ１は、図８のステップ１と同様である。
【０１０８】
（図１１：ステップ２：ライトパラメータＡ，Ｂ，Ｃの初期値の設定）
本実施形態３では、ライトパラメータが３つあるので、ライトパラメータの空間が３次元となる。メモリブロック制御回路ＭＢ−Ｃは、ライトパラメータの初期値を、
データ１をライトしたいメモリセルのライトパラメータ初期値：（ａ１，ｂ１，ｃ１）
データ０をライトしたいメモリセルのライトパラメータ初期値：（ａ０，ｂ０，ｃ０）
にセットする。その他の動作は、図８のステップ２と同様である。
【０１０９】
（図１１：ステップ３：初期値を用いたライトおよびベリファイ）
本ステップは、図８のステップ３と同様である。
【０１１０】
（図１１：ステップ４：初期値近傍でのライトおよびベリファイ）
本ステップは、図８のステップ４と同様であるが、ライトパラメータが３つになっているので、近傍点の数と位置が図８とは異なる。
【０１１１】
（図１１：ステップ４：補足その１）
本ステップにおいて、初期値近傍のライトパラメータの数や値の選び方には様々なバリエーションが考えられるが、ここでは７つの近傍点、すなわち
・データ１をライトするメモリセルについての近傍点：（ａ１＋Δ，ｂ１，ｃ１）、（ａ１，ｂ１＋Δ，ｃ１）、（ａ１，ｂ１，ｃ１＋Δ）、（ａ１＋Δ，ｂ１＋Δ，ｃ１）、（ａ１，ｂ１＋Δ，ｃ１＋Δ）、（ａ１＋Δ，ｂ１，ｃ１＋Δ）、（ａ１＋Δ，ｂ１＋Δ，ｃ１＋Δ）
・データ０をライトするメモリセルについての近傍点：（ａ０＋Δ，ｂ０，ｃ０）、（ａ０，ｂ０＋Δ，ｃ０）、（ａ０，ｂ０，ｃ０＋Δ）、（ａ０＋Δ，ｂ０＋Δ，ｃ０）、（ａ０，ｂ０＋Δ，ｃ０＋Δ）、（ａ０＋Δ，ｂ０，ｃ０＋Δ）、（ａ０＋Δ，ｂ０＋Δ，ｃ０＋Δ）
の７点を用いる。
【０１１２】
（図１１：ステップ４：補足その２）
本ステップが終了した時点でフェイルとなっているメモリセルについては、リード結果保持用レジスタＲ−ＲＥＧには、ライトパラメータの初期値および７つの近傍点を合わせた８点に対応するデジタルセンスアンプＤＳＡの出力値が保存されている。
【０１１３】
（図１１：ステップ５：ライトパラメータＡ，Ｂ，Ｃの初期値の更新）
メモリブロック制御回路ＭＢ−Ｃは、ステップ４で近傍ライトパラメータを用いてベリファイを実施した各メモリセルについて、８つのライトパラメータセットの中で、デジタルセンスアンプＤＳＡの出力値が最大であるライトパラメータセットと、最小になるライトパラメータセットとを決定する。以下では、デジタルセンスアンプＤＳＡの出力が最大値となったライトパラメータセットを（ａｍａｘ，ｂｍａｘ，ｃｍａｘ）、最小値となったライトパラメータセットを（ａｍｉｎ，ｂｍｉｎ，ｃｍｉｎ）と記す。これらの値は、メモリセルごとに異なることに注意されたい。メモリブロック制御回路ＭＢ−Ｃは、下記式（４）（５）にしたがって、新しいライトパラメータの初期値を設定する。
【０１１４】
（図１１：ステップ５：新たなライトパラメータの演算式）
ライトするデータが１の場合：
（ａ１，ｂ１，ｃ１）＝（ａｍａｘ＋（ｋ／Δ）（ａｍａｘ−ａｍｉｎ），
ｂｍａｘ＋（ｋ／Δ）（ｂｍａｘ−ｂｍｉｎ），
ｃｍａｘ＋（ｋ／Δ）（ｃｍａｘ−ｃｍｉｎ））  ・・・式（４）
ライトするデータが０の場合：
（ａ０，ｂ０，ｃｏ）＝（ａｍｉｎ＋（ｋ／Δ）（ａｍｉｎ−ａｍａｘ），
ｂｍｉｎ＋（ｋ／Δ）（ｂｍｉｎ−ｂｍａｘ），
ｃｍｉｎ＋（ｋ／Δ）（ｃｍｉｎ−ｃｍａｘ））  ・・・式（５）
（図１１：ステップ５：新たなライトパラメータの演算例）
例えば、データ１をライトしたいセルにおいて、元の初期値（ａ１，ｂ１，ｃ１）とその７つの近傍点の中で、デジタルセンスアンプＤＳＡの出力が最大になったパラメータセットが（ａ１，ｂ１＋Δ，ｃ１）であり、最小となったパラメータセットが（ａ１＋Δ，ｂ１，ｃ１−Δ）であったとすると、式（４）に基づき、新しい初期値は、
（ａ１−ｋ， ｂ１＋Δ＋ｋ， ｃ１＋ｋ）・・・式（６）
となる。
【０１１５】
（図１１：ステップ５：ライトパラメータ更新後の処理）
ライトパラメータを更新した後の処理は、図８と同様である。
【０１１６】
＜実施の形態３：まとめ＞
以上のように、本実施形態３によれば、ライトパラメータが３つの場合でも、実施形態１〜２と同様の効果を発揮することができる。
【０１１７】
上記の説明から判るように、本発明は、ライトパラメータが多い場合にも容易に拡張することができる。ここではライトパラメータが２つと３つの場合について説明したが、ライトパラメータが１つの場合はもちろんのこと、ライトパラメータが４つ以上の場合にも本発明に係るベリファイシーケンスは容易に拡張できることが理解されよう。ライトパラメータが増加すると、デジタルセンスアンプＤＳＡの出力とライトパラメータとの間の関係がますます複雑になると予想されるので、本発明のメリットはさらに大きくなる。
【０１１８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１１９】
ＣＨＩＰ：半導体メモリチップ
Ｃ−ＲＥＧ：共通レジスタ
ＣＴＬ：制御回路
ＩＯ：入出力回路
Ｍ−ＢＬＫ：メモリブロック
ＭＣＡ：メモリセルアレイ
ＭＢ−Ｃ：メモリブロック制御回路
ＤＳＡ：デジタルセンスアンプ
ＷＰＧ：ライトパルス発生回路
ＦＰ−ＲＥＧ：フェイル・パスフラグ用レジスタ
ＷＰ−ＲＥＧ：ライトパラメータ保持用レジスタ
ＲＥＶ−ＲＥＧ：更新用パラメータ保持用レジスタ
Ｒ−ＲＥＧ：リード結果保持用レジスタ
ＦＰ−Ｃ：フェイル・パス判定回路
ＡＭＰ：アナログアンプ
ＡＤ−Ｃ：ＡＤ変換回路
ＤＭ−ＳＩＧ：メモリセルのデジタル出力信号
ＡＭ−ＳＩＧ：メモリセルのアナログ出力信号
ＩＮ：入力信号
ＯＵＴ：出力信号
Ｖｄｄ：高電位
Ｖｓｓ：低電位
ＭＰ３：ｐＭＯＳトランジスタ
ＭＮ３、ＭＮ３−Ｂ：ｎＭＯＳトランジスタ
ＭＤ３：ｎＭＯＳダイオード
ＭＣ３−１〜ＭＣ３−４：ＭＯＳ容量
ＳＷＡ３−１〜ＳＷＡ３−４、ＳＷＢ３−１〜ＳＷＢ３−４、ＳＷＣ３−１〜ＳＷＣ３−４：スイッチ
ＩＮＶ３−１、ＩＮＶ３−２：インバータ
ＮＯＲ３：ＮＯＲ回路
ＤＲ３−１〜ＤＲ３−４：ディレイ回路
ＷＰ３−１、 ＷＰ３−２、ＷＰ４−１、ＷＰ４−２：ライトパルス波形の例
ＣＳ３−１〜ＣＳ３−４：電流源
Ａ、Ｂ、Ｃ：ライトパラメータ
Δ、ｋ：ライトパラメータ更新のためのパラメータ
【図１】
2013033568.tif 000003
【図２】
2013033568.tif 000004
【図３】
2013033568.tif 000005
【図４】
2013033568.tif 000006
【図５】
2013033568.tif 000007
【図６】
2013033568.tif 000008
【図７】
2013033568.tif 000009
【図８】
2013033568.tif 000010
【図９】
2013033568.tif 000011
【図１０】
2013033568.tif 000012
【図１１】
2013033568.tif 000013