"情報を記憶する半導体メモリセルと、前記半導体メモリセルに情報を書き込む書込信号を発生させる書込制御回路と、前記半導体メモリセルからの出力信号を取得して多段階を有する読取信号に変換する変換回路と、を備え、前記書込制御回路は、前記書込信号の特性を規定する書込パラメータを1以上組み合わせたパラメータセットの初期値を設定して前記書込信号を発生させて前記半導体メモリセルに情報を書き込んだ後、前記半導体メモリセルに書き込んだ情報を読み出して書き込んだ情報と一致するか否かを検証し、書き込んだ情報と読み出した情報が異なる前記半導体メモリセルについては、前記パラメータセットを前記初期値から変更して生成した新たな2以上の前記パラメータセットを用いて前記半導体メモリセルに情報を書き込み、その半導体メモリセルについて前記変換回路の出力を取得し、前記変換回路の出力の最大値が得られた前記パラメータセットと、最小値が得られた前記パラメータセットとをパラメータ空間上で結ぶ延長上に位置する、他の前記パラメータセットを、新たな前記初期値として設定して前記検証を再実施し、書き込んだ情報と読み出した情報が一致する前記半導体メモリセルについては、前記初期値を用いた前記検証を終了することを特徴とする半導体記憶装置。請求項1において、前記書込制御回路は、前記半導体メモリセルの現在の出力信号よりも高い出力信号に対応するビットを前記半導体メモリセルに書き込むときは、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最小値から前記最大値に向かう方向に結ぶ延長上に、前記新たな初期値を設定し、前記半導体メモリセルの現在の出力信号よりも低い出力信号に対応するビットを前記半導体メモリセルに書き込むときは、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最大値から前記最小値に向かう方向に結ぶ延長上に、前記新たな初期値を設定することを特徴とする半導体記憶装置。請求項2において、前記書込制御回路は、前記半導体メモリセルにビット1を書き込むために用いる前記パラメータセットについて前記検証を実施する際には、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最小値から前記最大値に向かう方向に結ぶ延長上に、前記新たな初期値を設定することを特徴とする半導体記憶装置。請求項2において、前記書込制御回路は、前記半導体メモリセルにビット0を書き込むために用いる前記パラメータセットについて前記検証を実施する際には、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最大値から前記最小値に向かう方向に結ぶ延長上に、前記新たな初期値を設定することを特徴とする半導体記憶装置。請求項3において、前記書込制御回路は、前記半導体メモリセルにビット1を書き込むために用いる前記パラメータセットについて前記検証を実施した結果、書き込んだ情報と読み出した情報が異なる回数が所定回数連続した場合は、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最大値から前記最小値に向かう方向に結ぶ延長上に、前記新たな初期値を設定することを特徴とする半導体記憶装置。請求項4において、前記書込制御回路は、前記半導体メモリセルにビット0を書き込むために用いる前記パラメータセットについて前記検証を実施した結果、書き込んだ情報と読み出した情報が異なる回数が所定回数連続した場合は、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを、前記パラメータ空間上で前記最小値から前記最大値に向かう方向に結ぶ延長上に、前記新たな初期値を設定することを特徴とする半導体記憶装置。請求項2において、前記書込制御回路は、前記変換回路の出力の最大値が得られた前記書込パラメータと最小値が得られた前記パラメータセットを結ぶ延長上に、前記新たな初期値を設定すると、前記書込パラメータの定義域を超過する場合は、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを延長させる向きを反転して、前記新たな初期値を設定することを特徴とする半導体記憶装置。請求項7において、前記書込制御回路は、前記変換回路の出力の最大値が得られた前記パラメータセットと最小値が得られた前記パラメータセットを延長させる向きを反転して、前記新たな初期値を設定するとともに、前記書込パラメータを変更する変更幅を変更することを特徴とする半導体記憶装置。請求項1において、前記書込制御回路は、書き込んだ情報と読み出した情報が異なる前記半導体メモリセルの個数が、エラー訂正処理によって訂正できる個数未満となった時点で、前記検証を終了することを特徴とする半導体記憶装置。請求項1において、前記半導体メモリセルは、フラッシュ型のメモリセルであることを特徴とする半導体記憶装置。請求項1において、前記半導体メモリセルは、相変化型のメモリセルであることを特徴とする半導体記憶装置。半導体記憶装置では、1つのチップが記憶すべきデータ容量を高めることへの要求が急速に増大しており、それに伴って更なる微細化を進める必要がある。微細化を進めて行くと、上記のような単純なベリファイ方式では、信頼性を上げることが困難になることが懸念される。すなわち、微細化の極限では、書き込みパルスのパルス幅、パルス電圧などのライトパラメータとリード信号との間の関数関係がメモリセルごとに異なるようになる。また、個々のメモリセルにおいても、ライトパラメータとリード信号との間の関数関係は、非線形になったり、ライトパラメータの要素間の相互関係が無視できなくなったりと、より複雑になることが予想される。この結果、ライトパラメータの要素間の相互関係が要素毎に線形であると仮定して最適なライトパラメータを予測することはできなくなることはもちろん、メモリセルの複製を作って、それをモデルとして最適なライトパラメータを決めることも困難になる。そのような極限環境下では、ベリファイにおいてエラーが起きた際に、どのような方針でライトパラメータを更新するかということが大きな課題になると予想される。半導体記憶装置の中でも特に、メモリセル内で特殊な構造のMOSトランジスタを利用し、またはシリコン以外の特殊な材料を使う不揮発性のものでは、上記の事態が近い将来、深刻な課題になることが懸念される。従来の技術では、上記の問題を解決するのは、非常に困難である。例えば、上記特許文献1の段落0015には、初回書き込みの前後におけるメモリセルのしきい値変動の様子と、あらかじめ用意してある評価サンプルのデータとが比較されるとの記述がある。しかし、そのようなモデル化は、微細化の極限では困難になると考えられる。また、書き込み前にリードを実施し、しきい値を測定した後、ライト後に再度しきい値を測定しただけでは、最初のリードの状態がどのようなライトパルスを与えた結果であるのか、と言った情報が欠落しているので、最適なライトパルスを推定することは困難である。上記特許文献2は、段落0016に記載されているように、ダブルデータレート型メモリDDR-SDRAM、DDR2-SDRAM等を含む半導体記憶装置に関するものである。段落0124には、同文献におけるメモリ制御システム、メモリ制御方法、メモリ制御プログラム及び記録媒体が、メモリとメモリコントローラとの間のメモリ動作を決定する複数のパラメータを設定する技術に有用であると記載されている。しかし、同文献におけるベリファイのための最適なパラメータの探索は、段落0033に記載されているように、複数のパラメータが取り得る値の全てについて評価するものである。この方式では、パラメータの数が増加すると、その数のべき乗で組合せの数が急激に増加してしまう。そのため、全部の組合せを試すには、非常に時間がかかる。ライト動作ごとにベリファイを実施するような場合にこの方式を適用すると、ライトにかかる時間が膨大になってしまう。また、特許文献2に記載されている技術では、メモリセルへのライト回数の増大も課題となる。不揮発性の半導体メモリを構成するメモリセルは、通常書き換え回数に上限が存在するので、なるべくベリファイにおけるライト動作の繰り返し回数を削減する必要がある。したがって、特許文献2に記載されているように、全部の組合せをテストするようなベリファイ方式は適当でない。本発明は、上記のような課題を解決するためになされたものであり、ライトパラメータを効率よく探索することができる半導体記憶装置を得ることを目的とする。本発明に係る半導体記憶装置は、メモリセルから最大出力が得られたライトパラメータセットと、最小出力が得られたライトパラメータセットとを結ぶ延長方向に、最適なライトパラメータを探索する。本発明によれば、微細構造を有する半導体記憶装置において、少ない回数でベリファイ動作を終え、信頼性や速度を向上させることができる。<用語の定義>以下では、はじめに本明細書で用いる用語を定義し、次に図面を用いて、本発明の具体的な実施例について説明する。ベリファイとは、メモリセルに対してリードを実施し、所望のデータが書き込まれているかどうかを確認する動作のことである。このとき、正しいデータが書き込まれていたと判断される場合をパス、正しくない値が書き込まれていたと判断される場合をフェイルと呼ぶことにする。ライトパラメータとは、メモリセルに対してライトを実施する際にライトの条件を調整するパラメータのことである。例えば、メモリセルに与えるライトパルスの電圧または電流のピーク値、パルス幅、立ち上がり時間、立ち下がり時間などのパラメータ、またはこれらの値を調整するパラメータのことである。デジタルセンスアンプとは、選択されたメモリセルから読み出されたアナログ信号をデジタル出力に変換する回路である。出力のビット数は、例えば4ビットなどとすることができる。<実施の形態1:半導体記憶装置の構成>図1は、本発明の実施形態1に係る半導体記憶装置の構成例を示すブロック図である。図1では、半導体基板上に微細な素子を集積した、いわゆる半導体メモリチップ部分の構成を示している。実際の半導体記憶装置は、この半導体メモリチップを複数組合せ、それらを制御するコントローラチップなどを含んで構成されるが、本発明の内容を理解するうえでは必要ないので省略する。図1に示す半導体メモリチップCHIPは、共通レジスタC-REG、メモリブロックM-BLK、制御回路CTL、入出力回路IOを備える。共通レジスタC-REGは、後述のベリファイシーケンスにおけるライトパラメータのデフォルト値、ライトパラメータの更新のためのパラメータkやΔのデフォルト値を記憶するためのレジスタである。これらパラメータについては後述する。共通レジスタC-REGに記憶されているパラメータは、後述するベリファイシーケンスを開始するとき、選択された複数のメモリブロックM-BLK、後述するライトパラメータ保持用レジスタWP-REG、および更新用パラメータ保持用レジスタREV-REGに転送される。メモリブロックM-BLKは、データを記憶するためのメモリセルを複数集積したものである。メモリセルが選択される、つまりアクセスされるときにはx個のメモリブロックが選択され、それぞれのメモリブロックから1つずつのメモリセルが選択される。入出力回路IOは、半導体メモリチップCHIP内部のメモリセルからデータを読み出したり、半導体メモリチップCHIP外部からデータを書き込んだりする際に、データDATAやコマンドCMD等を一時的に記憶したり、所定の電気的インターフェースやプロトコルに変換したりする回路である。制御回路CTLは、入出力回路IOからコマンドやデータを受け取り、半導体メモリチップCHIP内部の回路を制御する回路である。図2は、メモリブロックM-BLKの構成例を示す図である。メモリブロックM-BLKは、メモリセルアレイMCA、メモリブロック制御回路MB-C、デジタルセンスアンプDSA、ライトパルス発生回路WPG、フェイルパスフラグ用レジスタFP-REG、ライトパラメータ保持用レジスタWP-REG、更新用パラメータ保持用レジスタREV-REG、リード結果保持用レジスタR-REG、フェイルパス判定回路FP-Cを備える。メモリセルアレイMCAは、情報を記憶する複数のメモリセルから構成される。メモリブロック制御回路MB-Cは、メモリセルアレイMCA、デジタルセンスアンプDSA、ライトパルス発生回路WPG、フェイルパスフラグ用レジスタFP-REG、ライトパラメータ保持用レジスタWP-REG、更新用パラメータ保持用レジスタREV-REG、リード結果保持用レジスタR-REG、フェイルパス判定回路FP-Cを制御することにより、メモリブロックM-BLKに対するアクセス動作を制御する。デジタルセンスアンプDSAは、メモリブロック中の選択されたメモリセルからの信号を増幅し、デジタル変換する回路である。詳細は後述の図3で説明する。ライトパルス発生回路WPGは、ライトパラメータの値に依存したパルス形状を持つパルスを発生し、メモリブロックM-BLK中の選択したメモリセルにそのパルスを印加する回路である。詳細は後述の図4で説明する。フェイルパスフラグ用レジスタFP-REGは、後述のベリファイ動作の結果、所望のデータがライトされたパスか、所望のライトデータがうまくライトされなかったフェイルかを示すフラグを記憶するレジスタである。詳細は後述するが、ベリファイシーケンスの途中で、このフラグを確認してパスしたメモリブロックについてはその後のベリファイシーケンスを終了し、フェイルしたメモリブロックについてはベリファイシーケンスを継続する。ライトパラメータ保持用レジスタWP-REGは、後述のベリファイシーケンスにおいて、更新されたライトパラメータを記憶するためのレジスタである。更新用パラメータ保持用レジスタREV-REGは、後述のベリファイシーケンスにおいてライトパラメータを更新するために用いる、kやΔなどのパラメータを記憶するレジスタである。リード結果保持用レジスタR-REGは、ベリファイシーケンスにおけるリードによってデジタルセンスアンプDSAから出力された値をデジタル値で記憶するためのレジスタである。フェイルパス判定回路FP-Cは、まず、デジタル化されたメモリセルからの出力信号がビット1と0のいずれに相当するかを判定する。次に、その判定結果がライトしたい値と一致しているか否か、すなわちパスかフェイルかを判定し、上記フラグを発生する。本実施形態1における書込制御回路は、制御回路CTL、メモリブロック制御回路MB-C、ライトパルス発生回路WPGがこれに相当する。変換回路は、デジタルセンスアンプDSAがこれに相当する。図3は、デジタルセンスアンプDSAの構成例を示す図である。デジタルセンスアンプDSAは、後述のベリファイシーケンスにおけるリード動作時に、メモリセルからのアナログ出力信号をデジタル値に変換し、その結果を上記のリード結果保持用レジスタR-REGに保存する回路である。デジタルセンスアンプDSAは、アナログアンプAMPとAD変換回路AD-Cを備える。アナログアンプAMPの入力は、メモリセルからの出力信号AM-SIGである。アナログアンプAMPは、信号AM-SIGを増幅してAD変換回路AD-Cに出力する。AD変換回路AD-Cは、アナログアンプAMPの出力をデジタル値に変換する。AD変換回路AD-Cの出力DM-SIGは、リード結果保持用レジスタR-REGに記憶される。以下では、AD変換回路AD-Cの出力が4ビットであるものとして説明するが、本発明はこれに限定される訳ではない。ビット数を多くすれば、より細かい判定を実施することができる。一方、本実施例のように少ないビットにしておくと、回路規模が小さくなるだけでなく、処理速度も高速になる。なお、アナログアンプAMPは、入力信号と出力信号の対応関係の線形性が正確なものである必要はない。また、メモリブロックM-BLKごとにアンプ特性に多少のばらつきがあっても、半導体記憶装置の動作に支障はないと考えられる。上記の理由は、本発明のベリファイシーケンスにおいては、それぞれのメモリブロックM-BLKごとに選択された1つのメモリセルに対してライトパラメータを更新するからである。すなわち、特定のデジタルセンスアンプDSAの動作結果は、特定のメモリセルだけに利用されるので、異なるメモリブロックM-BLK内のデジタルセンスアンプDSAの特性ばらつきや個々のデジタルセンスアンプDSAの線形性が悪くても、そのメモリブロックM-BLK内においては動作を完結することができる。このことは、後述のベリファイシーケンスの説明において、より明白に理解されるであろう。図4は、ライトパルス発生回路WPGの構成例を示す図である。図4に示すライトパルス発生回路WPGは、独立した2つのライトパラメータの値によってパルスのピーク値とパルス幅を変えることができる。図4に示すライトパルス発生回路WPGは、後述のベリファイシーケンスにおいて、メモリセルごとに最適なピーク値とパルス幅を持つライトパルスを発生するのに適している。入力信号INが低電位から高電位に切り替わると、信号IN3-Dがしばらく遅れて上がる。このときの遅れは、スイッチSWB3-1からSWB3-4のうち導通していないものに接続されているディレイ回路DR3-1~DR3-4のいずれか1以上の遅延時間の合計によって決まる。NOR回路NOR3の一方の入力に入力信号INが入力されているので、信号φ3は信号IN3-Dの遅延に支配されずに高電位Vddに遷移する。その結果、出力信号OUTすなわちライトパルスもディレイ回路DR3に影響されず高電位に遷移する。出力信号OUTの電位は、容量MC3-1~MC3-4により昇圧されるので、電位Vddより高くなる。昇圧される電位は、スイッチSWA3-1~SWA3-4のうちの導通しているものに接続されている容量MC3-1~MC3-4のいずれか1以上の合計に依存する。入力信号INが高電位Vddから低電位Vssに遷移すると、信号IN3-Dが上記と同じ理由で遅れて低電位Vssに下がる。このときは、NOR回路NOR3の一方に入力信号INが入力されていても、信号φ3は信号IN3-Dの遅延に支配されて低電位Vssに遷移し、出力信号OUTも信号φ3が下がった直後に下がる。このように、入力信号INが立ち上がってから立ち下がるまでの時間、つまり入力信号INのパルス幅が一定でも、出力信号OUTのパルス幅をスイッチSWB3-1~SWB3-4の開閉によって制御することができる。図5は、図4に示したライトパルス発生回路WPGの動作波形例を示すである。ここでは、ピークが高く幅の狭いライトパルスWP3-1と、ピークが低く幅が広いライトパルスWP3-2の例を示した。例えばMOS容量MC3-1~MC3-4の容量値を1:2:4:8の比率にすることにより、出力電圧のピーク値を16通りに変更することができる。また、上記とは別の4ビットのライトパラメータを用いて4つのスイッチSWB3-1~SWB3-4を開閉することにより、ライトパルスの幅を制御することができる。例えば、4個のディレイ回路DR3-1~DR3-4の遅延時間を1:2:4:8にすることにより、パルス幅を16通りに変えることができる。以上のように、図4に示すライトパルス発生回路WPGは、4ビットずつの2つのライトパラメータにより、ライトパルスのピーク値とパルス幅を、それぞれ16通りに制御することができる。フラッシュメモリなどでは、このような回路が有効である。一方、例えば相変化メモリのように、メモリセルを流れる電流の立ち下り時間を調整することにより、メモリセルの状態を書換えるようなメモリセルも存在する。相変化メモリでは、ジュール熱を利用して、メモリセル内部の相変化材料の状態を変化させることにより、メモリセルに情報を書き込む。ライトパルスのピークを高く幅を狭くすると、メモリセルが高温になった後に急冷されてアモルファス状態となる。ライトパルスのピークを低く幅を広くして、立ち下り時間を長めにすると、メモリセルを結晶状態にすることができる。アモルファス状態と結晶状態では、相変化材料の抵抗値が互いに異なるので、これを利用してメモリセルに情報を書き込むことができる。図6は、相変化メモリに適したライトパルス発生回路WPGの構成例を示す図である。同図に示す構成例は、図4に示す構成例に、パルスの立ち下り時間を調整する機能を加えたものである。図6に示すライトパルス発生回路WPGは、出力端子OUTに接続されたnMOSトランジスタMN3と接地の間に直列に、nMOSトランジスタMN3-Bを新たに設けた。nMOSトランジスタMN3-Bのゲート電極には、スイッチSWC3-1~SWC3-4を介して、電流源CS3-1~CS3-4が接続されている。nMOSトランジスタMN3-Bと電流源CS3-1~CS3-4がスイッチSWC3-1~SWC3-4を介して導通すると、カレントミラー回路が構成される。ライトパルスが立ち下がる時間は、nMOSトランジスタMN3-Bを流れる電流で決まる。したがって、4ビットの新たなライトパラメータを用いてスイッチSWC3-1~SWC3-4を開閉することにより、ライトパルスの立ち下り時間を制御することができる。例えば、電流源CS3-1~CS3-4の電流値をおおよそ1:2:4:8の比率に設定すれば、ライトパルスの立下り時間を15通りに調整することができる。16通りではなく15通りとしたのは、全てのスイッチSWC3-1~SWC3-4が開いた状態、つまりnMOSトランジスタMN3-Bのゲート電極の電圧が不定となる状態を除外したためである。図7は、図6に示したライトパルス発生回路WPGの動作波形例を示すである。ここでは、ピーク値が高く幅が細い立ち下がりが急なライトパルスWP4-1と、ピーク値が低く幅が大きい立ち下りが緩やかなライトパルスWP4-2の例を示した。<実施の形態1:ライトパラメータの調整>以上、本発明に係る半導体メモリチップCHIPの構成や回路の構成例を説明した。次に、本発明において、複数のライトパラメータをどのように調整すれば効率的なベリファイができるかについて説明する。以下ではライトパラメータが複数あることを前提とするが、より単純な場合としてライトパラメータが1つの場合でも本発明を適用できることはもちろんである。説明の見通しを良くするために、以下では次のように考える。複数のライトパラメータをまとめて多次元変数と考える。個々のライトパラメータは、図4と図6で説明したように、複数の値を取ることができる。複数のパラメータが取り得る値の組み合せは、ライトパラメータ数を次元数とするパラメータ空間内に配置された探索候補点と考えることができる。また、各探索候補点に対応するパラメータを用いてライトを実施した後のデジタルセンスアンプDSAの出力Sは、この探索空間で定義される関数の出力値と考えることができる。例えば、ライトパラメータが2つの例では、2つのパラメータをa,bと記し、それらのパラメータが取り得る状態を変数とする2次元平面を考える。一組のライトパラメータセットは、上記2次元平面上の1点a,bに対応させる。例えばパラメータセットa,bを、ライトパルスのピーク値とパルス幅をそれぞれ制御するパラメータに対応させることができる。同様に、ライトパラメータが3つの例では、3つのパラメータをa,b,cと記し、それらのパラメータが取り得る状態を変数とする3次元空間を考える。一組のライトパラメータセットは、上記3次元空間上の1点a,b,cに対応させる。例えばパラメータセットa,b,cは、ライトパルスのピーク値、パルス幅、パルスの立ち下がり時間をそれぞれ制御するパラメータに対応させることができる。相変化メモリセルやフラッシュメモリセルなどの不揮発性の半導体記憶装置では、一般にライトできる回数に上限が存在する。したがって、上記ライトパラメータの空間の中で所望のデータを記録できるライトパラメータを、なるべく少ない回数のベリファイで探索することが重要となる。メモリセルの種類によって、ライトに電流パルスが適しているか、電圧パルスが適しているかが異なるが、ベリファイシーケンスは同じなので、以下の説明ではこれらを区別しないで単にライトパルスと記す。また、以下では説明を煩雑にしないために、メモリセルは1か0の2値を記憶するものとするが、多値を記憶するメモリセルに対しても同様の原理が適応できることは言うまでもない。以下では、デジタルセンスアンプDSAは、メモリセルからの出力信号に対して16レベル、すなわち4ビットのデジタル出力0000~1111を持つものを使う例を説明する。また、ライトパラメータも2進表現で0000~11111の16レベルの値を取り得るものとする。図4と図6で説明した例では、パラメータによっては4ビットのパラメータに対して16通りではなく15通りの値を取るものを紹介したが、説明が煩雑になるため、以下ではどのライトパラメータも16通りの値を取るものとする。必要に応じて16レベルより多いあるいは少ない出力を持つ回路を用いてもよいことは、もちろんである。多くのパラメータレベルを持つ回路を用いれば、より細かいパラメータ調整が可能となり、ベリファイの信頼性を上げることができる。一方、少ないパラメータレベルを持つ回路では、回路規模を小さくできることや動作速度が高速になるという利点がある。なお、以下では、デジタルセンスアンプDSAの出力が高く、16段階のレベルのうち15段階1110以上であれば、メモリセルが記憶している情報は1であり、2段階0001以下の低いレベルであればメモリセルが記憶している情報は0であると判定することにする。本発明は、この値に限定されるものでないことは、もちろんである。図8は、本実施形態1におけるベリファイシーケンスを説明する図である。図8に示すベリファイシーケンスでは、ライトパラメータとして制御するのは書き込みパルスのピーク値とパルス幅とし、それぞれ変数a,bで表記する。以下、図8の各ステップについて説明する。図8:準備動作制御回路CTLは、図8に示すシーケンスの始めに、メモリブロックM-BLKを選択し、選択した個々のメモリブロックM-BLKのメモリセルアレイMCAのなかから1つずつメモリセルを選択する。メモリブロック制御回路MB-Cは、選択したメモリセルについて、以下のシーケンスによってベリファイを実施する。図8:ステップ1:選択セルの現在値読み出しメモリブロック制御回路MB-Cは、その選択したメモリセルに対してリードを実施し、ライトしたいデータが既に書き込まれているか否か、すなわち同メモリセルに対するベリファイ結果がパスかフェイルかを判定する。例えば、データ1をライトしたいメモリセルについては、センスアンプの出力が1110以上、すなわち1110か1111をパスとし、それ以外ではフェイルとする。データ0をライトしたいメモリセルについては、センスアンプの出力が0001以下、すなわち0001か0000をパスとし、それ以外をフェイルとする。本ステップでパスしたメモリセルについては、以下のシーケンスは実施しない。メモリブロック制御回路MB-Cは、本ステップでフェイルしたメモリセルについては、デジタルセンスアンプDSAの出力値をリード結果保持用レジスタR-REGに保存する。また、パスしたメモリセルについてはフェイルパスフラグ用レジスタFP-REGの所定ビットを0にセットし、フェイルしたメモリセルについては同ビットを1にセットする。図8:ステップ2:ライトパラメータA,Bの初期値設定メモリブロック制御回路MB-Cは、ステップ1でフェイルしたメモリセルについてライトを実施し、正しいデータを記録するよう試みる。また、ライトを実施するために用いるライトパラメータの初期値を、ステップ1でフェイルしたメモリセルが属しているメモリセルアレイに対応するライトパラメータ保持用レジスタWP-REGに記憶する。図8:ステップ2:補足ここでは、ライトパラメータの初期値を、データ1をライトしたいメモリセルのライトパラメータ初期値:a1,b1データ0をライトしたいメモリセルのライトパラメータ初期値:a0,b0と表記する。図8:ステップ3:初期値を用いたライトおよびベリファイメモリブロック制御回路MB-Cは、ステップ1でフェイルしたメモリセルについて、ライトパラメータ保持用レジスタWP-REGに記憶したライトパラメータの初期値を用いてライトを実施した後、ベリファイを実施する。パスかフェイルかの判断条件はステップ1と同様である。メモリブロック制御回路MB-Cは、本ステップでパスしたメモリセルについては、以下のシーケンスを実施しない。メモリブロック制御回路MB-Cは、本ステップでフェイルしたメモリセルについては、デジタルセンスアンプDSAの出力値をリード結果保持用レジスタR-REGに保存する。また、パスしたメモリセルについてはフェイルパスフラグ用レジスタFP-REGの所定ビットを0にセットし、フェイルしたメモリセルについては同ビットを1にセットする。図8:ステップ4:初期値近傍におけるライトおよびベリファイメモリブロック制御回路MB-Cは、ステップ3でフェイルしたメモリセルについて、ステップ3で試したライトパラメータ初期値の近傍のライトパラメータを用いてライトおよびベリファイを実施する。各近傍パラメータを用いたライトおよびベリファイは、連続して実施する。パスかフェイルかの判断条件はステップ1と同様である。メモリブロック制御回路MB-Cは、本ステップでパスしたメモリセルについては、以下のシーケンスを実施しない。メモリブロック制御回路MB-Cは、本ステップでフェイルしたメモリセルについては、デジタルセンスアンプDSAの出力値をリード結果保持用レジスタR-REGに保存する。また、パスしたメモリセルについてはフェイルパスフラグ用レジスタFP-REGの所定ビットを0にセットし、フェイルしたメモリセルについては同ビットを1にセットする。図8:ステップ4:補足その1本ステップにおいて、初期値近傍のライトパラメータの数や値の選び方には様々なバリエーションが考えられるが、ここでは3つの近傍点、すなわちデータ1をライトするメモリセルについての近傍点:a1Δ,b1、a1,b1Δ、a1Δ,b1Δデータ0をライトするメモリセルについての近傍点:a0Δ,b0、a0,b0Δ、a0Δ,b0Δの3点を用いる。図8:ステップ4:補足その2本ステップが終了した時点でフェイルとなっているメモリセルについては、リード結果保持用レジスタR-REGには、ライトパラメータの初期値および3つの近傍点を合わせた4点に対応するデジタルセンスアンプDSAの出力値が保存されている。図8:ステップ5:ライトパラメータa,bの初期値の更新メモリブロック制御回路MB-Cは、ステップ4で近傍ライトパラメータを用いてベリファイを実施した各メモリセルについて、4つのライトパラメータセットの中で、デジタルセンスアンプDSAの出力値が最大であるライトパラメータセットと、最小になるライトパラメータセットとを決定する。以下では、デジタルセンスアンプDSAの出力が最大値となったライトパラメータセットをamax,bmax、最小値となったライトパラメータセットをamin,bminと記す。これらの値は、メモリセルごとに異なることに注意されたい。メモリブロック制御回路MB-Cは、下記式12にしたがって、新しいライトパラメータの初期値を設定する。図8:ステップ5:新たなライトパラメータの演算式ライトするデータが1の場合:a1,b1=amaxk/Δamax-amin,bmaxk/Δbmax-bmin式1ライトするデータが0の場合:a0,b0=amink/Δamin-amax,bmink/Δbmin-bmax式2係数kはパラメータであり、その意味は後述する。図8:ステップ5:新たなライトパラメータの演算例例えば、データ1をライトしたいセルにおいて、元の初期値a1,b1とその3つの近傍点の中で、デジタルセンスアンプDSAの出力が最大になったパラメータセットがa1,b1Δであり、最小となったパラメータセットがa1Δ,b1であったとすると、式1に基づき、新しい初期値は、a1-k,b1Δk式3となる。図8:ステップ5:ライトパラメータ更新後の処理メモリブロック制御回路MB-Cは、上記式12を用いて、ライトパラメータ保持用レジスタWP-REG内のライトパラメータの初期値を更新した後、ステップ3に戻って同様の処理を繰り返す。繰り返しの途中で、フェイルしているメモリセルの数が所望の値、例えば、ECCErrorCheckandCorrect:エラー検出訂正機能で修復することができる数を下回った場合には、ベリファイシーケンスを終了する。図8:ステップ5:補足その1場合によっては、本ベリファイシーケンスを繰り返しても、フェイルしているメモリセルの数が、所望の値を下回らない場合が考えられる。そのような場合に備える方法としては、例えば、ライトパラメータセットの初期値を更新した回数があらかじめ決めていた回数を超えたときにベリファイシーケンスを停止し、フェイルしているメモリセルについては、ライトパラメータセットの初期値を前回実施時から変更してステップ1からやり直すことが考えられる。あるいは、パラメータΔやkなどを変更した上で、設定した回数だけさらにベリファイシーケンスを続けることも考えられる。図8:ステップ5:補足その2パラメータΔは、ライトパラメータ空間において、初期値と近傍点の間の距離を表すパラメータである。パラメータkは、初期値とその更新後の値との間の距離を表すパラメータである。例えば、パラメータΔを上記16レベルの1レベル分とすると、初期値に隣接する点が近傍点として選択される。また、パラメータkを1とすると、初期値を更新するときの変化量は最小となる。パラメータkは、通常は正の整数にしておく。その理由は後述する。図9は、図8で説明したベリファイシーケンスにおいて、ライトパラメータ平面上でライトパラメータの探索範囲が移動していく様子を示す図である。図9において、ライトパラメータを更新するためのパラメータkとΔを両方とも1とした。これらのパラメータは上述のように1に限るものでないことはもちろん、ベリファイシーケンスの途中でメモリセルごとに変更してもよい。図9において、目視で本発明の原理を理解できるように、1をライトしたいメモリセルと0をライトしたいメモリセルの2つだけを選んで探索範囲の移動過程を示した。実際の半導体チップでは、数千あるいはそれ以上のメモリセルを同時に選択することも珍しくはなく、本発明のシーケンスにおいても、原理上、並列に処理できるメモリセルの数には制限はない。図9において、Data‘1’と記されている正方形の左下隅の点に対応するライトパラメータが、図8で説明したベリファイシーケンスのステップ2におけるライトパラメータa1,b1である。同様に、Data‘0’と記されている正方形の左下隅の点に対応するライトパラメータが、図8で説明したベリファイシーケンスのステップ2におけるライトパラメータa0,b0である。図8のステップ3で初期値を用いたベリファイを実施した結果がフェイルになると、ステップ4で初期値に対して3つの近傍点が定義される。初期値とこれら3つの近傍点をライトパラメータ平面上で結ぶと、図9に示すように正方形となる。近傍点でも全てフェイルとなった場合、ステップ5で初期値が更新され、ステップ3に戻る。ライトパラメータの初期値が変更されると、本図のライトパラメータ平面上では、初期値が移動することになる。初期値の移動先は、式12で説明したように、デジタルセンスアンプDSAから得られる信号が最大となるパラメータセットと最小となるパラメータセットを結ぶ延長上であるので、最大点と最小点それぞれの位置によっては、初期値の移動先はパラメータ平面の両軸方向ともに正方向負方向いずれにもなり得る。新しい初期値の計算は、前述のように個々のメモリセルからの読み出し信号に対するデジタルセンスアンプDSAの出力に基づき決められる。そのため、ベリファイシーケンスを開始するときの初期値はメモリセル全部について共通であったとしても、新しい初期値はメモリセルごとに最適な値が選ばれることになる。したがって、更新されたライトパラメータの初期値は、メモリセル間で共通となることは少なく、一般的にはメモリセルごとに異なる軌道を辿って探索が実施される。例えば、あるメモリセルに関するライトパラメータを探索する際には図9の実線矢印のように初期値が移動し、別のメモリセルに関するライトパラメータを探索する際には点線矢印のように初期値が移動する可能性がある。なお、図8で説明したように、ベリファイシーケンスの途中でパスしたメモリセルについては、それ以後のシーケンスは実施しないので、実際には図9に示す正方形の4点全てについてベリファイを実施するとは限らない。例えば、あるメモリセルについては正方形の左上点に相当するパラメータセットによってベリファイ結果がパスとなってシーケンス終了となり、別のメモリセルについては正方形の右下点に相当するパラメータセットによってベリファイ結果がパスとなってシーケンス終了となる場合があり得る。ただし、図9では、説明の便宜上、全ての初期値について4点全てを結んで正方形を記載した。<実施の形態1:ベリファイシーケンスの効果>以上、ライトパラメータを調整するためのベリファイシーケンスについて説明した。以下では、図8~図9で説明したベリファイシーケンスの効果について述べる。ライトパラメータの初期値を更新する際には、式12で説明したように、デジタルセンスアンプDSAの出力が最大となるパラメータセットと最小となるパラメータセットをパラメータ空間上で結ぶ延長上に、新たなライトパラメータの初期値を設定する。この延長方向は、デジタルセンスアンプDSAの出力が急峻に変化する方向を示しているので、同方向の延長上に、デジタルセンスアンプDSAの出力がさらに大きくなり、またはさらに小さくなるパラメータセットが存在している可能性が高いと考えられる。すなわち、上述の式12で説明した探索手法によれば、デジタルセンスアンプDSAの出力値がより大きくなり、またはより小さくなるパラメータセットを、効率よく探索することが期待できる。換言すると、上記手法によれば、ビット1またはビット0をメモリセルに書き込むためにより適したライトパラメータセットを、効率よく探索することができると考えられる。具体的には、式12におけるパラメータkが正の値であれば、ビット1を書き込むメモリセルについては、ライトパラメータの2次元平面においてデジタルセンスアンプDSAの出力が最小になるパラメータセットから見て、デジタルセンスアンプDSAの出力が最大になるパラメータセットに向かう方向の延長上、つまり傾斜の上り方向に、新しいライトパラメータの初期値が設定される。一方、ビット0をライトするメモリセルについては、デジタルセンスアンプDSAの出力が最大になるパラメータセットから見てデジタルセンスアンプDSAの出力が最小になるパラメータセットに向かう方向の延長上、つまり傾斜の下り方向に、新しいライトパラメータの初期値が設定される。<実施の形態1:パラメータkとΔの変更>デジタルセンスアンプDSAの出力値の関数形状は、メモリセルを構成する微細な素子や半導体基板上に形成されたセンスアンプなどの回路特性のばらつきなどによって決まるので、ライトパラメータの空間上で複数の極値を持っている可能性がある。そのような場合は、パラメータkを常時正にしておくと、探索プロセスが、1をライトするメモリセルについては極大値に捕まり、0をライトするメモリセルについては極小値いわゆるローカルマキシマムあるいはローカルミニマムに捕まって、ベリファイ結果がいつまでもフェイルを続ける可能性がある。このような場合には、フェイルが続く回数をカウントしておき、ある回数を超えたらパラメータkを一時的に負にするとよい。これにより、それまで探索していた方向と逆の方向にライトパラメータを更新することになるので、探索プロセスが極大値や極小値に捕まる可能性を抑制することができる。また、ベリファイシーケンスの途中でライトパラメータの更新値がライトパラメータの定義域を超えそうになった場合も、パラメータkを一時的に負の値にするとよい。その場合は、単なる逆戻りを繰り返さないようにパラメータΔの値も併せて変化させるとよい。ところで、本実施形態1では、1回ライトするごとにリードしてベリファイを実施している。しかし、メモリセルの特性によっては、1回データを書き換えるために、複数回ライトパルスを印加した方がよい場合も有り得る。そのような場合は、複数回ライトパルスを印加した後に、リードしてベリファイを実施すればよい。<実施の形態1:まとめ>以上のように、本実施形態1によれば、デジタルセンスアンプDSAの出力とライトパラメータとの間の関係が不明、あるいは予測が不可能な場合であっても、フェイルしたメモリセルをパスするライトパラメータを高い確率で見つけることが期待できる。また、本実施形態1では、ライトパラメータを探索する過程において、デジタルセンスアンプDSAの出力が最大になるパラメータセットと最小になるパラメータセットをパラメータ平面上で結ぶ延長上に、新たなパラメータセットの初期値を設定する。この探索手法により、メモリセルにビット1を書き込む場合はデジタルセンスアンプDSAの出力値がより大きくなるライトパラメータセットを効率よく探索し、メモリセルにビット0を書き込む場合はデジタルセンスアンプDSAの出力値がより小さくなるライトパラメータセットを効率よく探索することができる。また、本実施形態1において、各メモリセルに対するベリファイ結果がフェイルとなった場合、単にその結果のみを記録するのではなく、そのときのデジタルセンスアンプDSAの出力値も併せて記録する。これは、上述のように最大パラメータセットと最小パラメータセットを結ぶ方向にライトパラメータを探索するからである。これに対し、単にベリファイ結果のみを記録する場合、そのときのライトパラメータセットによってメモリセルからいかなる出力信号が得られるかが不明であるため、結果として広範な範囲を探索しない限りは適切なライトパラメータが得られがたいと考えられる。なお、本実施形態1では、デジタルセンスアンプDSAがその出力ビット数に応じて多レベルの出力値を出力することとしたが、本実施形態1と同様に探索方向を定めることができるのであれば、多レベルのアナログ出力値を出力するアンプをデジタルセンスアンプDSAに代えて用いることもできる。以下の実施形態でも同様である。<実施の形態2>図10は、図9とは異なるパラメータkおよびΔを用いて、ライトパラメータ平面上でライトパラメータの探索範囲が移動していく様子を示す図である。本実施形態2では、パラメータΔ=2、パラメータk=3とした。したがって、図10における正方形の一辺の長さは2であり、初期値の変化量は3である。ライトパラメータの変化に対して、デジタルセンスアンプDSAの出力値の変化が少ない場合には、このようにパラメータΔを大きくして、3つの近傍点を初期値からある程度離れたところに設定するとよい。同様に、パラメータkを大きくすることにより、初期値の更新値をより離れたところに選ぶようにするとよい。これにより、ベリファイ結果がパスとなるまでのベリファイ回数を減少させる効果が期待できる。<実施の形態3>本発明の実施形態3では、ライトパラメータが3つの場合において、パラメータ空間上でライトパラメータセットを探索する動作例を説明する。図11は、本実施形態3におけるベリファイシーケンスを説明する図である。本実施形態3では、ライトパラメータとして制御するのは、書き込みパルスのピーク値、パルス幅、パルスの立ち下り時間とし、これらをそれぞれ変数A、B、Cで表記する。以下、図11の各ステップについて説明する。図11:準備動作~ステップ1:選択セルの現在値読み出しメモリブロック制御回路MB-Cは、図11に示すシーケンスの始めに、図8と同様の準備動作を実施する。ステップ1は、図8のステップ1と同様である。図11:ステップ2:ライトパラメータA,B,Cの初期値の設定本実施形態3では、ライトパラメータが3つあるので、ライトパラメータの空間が3次元となる。メモリブロック制御回路MB-Cは、ライトパラメータの初期値を、データ1をライトしたいメモリセルのライトパラメータ初期値:a1,b1,c1データ0をライトしたいメモリセルのライトパラメータ初期値:a0,b0,c0にセットする。その他の動作は、図8のステップ2と同様である。図11:ステップ3:初期値を用いたライトおよびベリファイ本ステップは、図8のステップ3と同様である。図11:ステップ4:初期値近傍でのライトおよびベリファイ本ステップは、図8のステップ4と同様であるが、ライトパラメータが3つになっているので、近傍点の数と位置が図8とは異なる。図11:ステップ4:補足その1本ステップにおいて、初期値近傍のライトパラメータの数や値の選び方には様々なバリエーションが考えられるが、ここでは7つの近傍点、すなわちデータ1をライトするメモリセルについての近傍点:a1Δ,b1,c1、a1,b1Δ,c1、a1,b1,c1Δ、a1Δ,b1Δ,c1、a1,b1Δ,c1Δ、a1Δ,b1,c1Δ、a1Δ,b1Δ,c1Δデータ0をライトするメモリセルについての近傍点:a0Δ,b0,c0、a0,b0Δ,c0、a0,b0,c0Δ、a0Δ,b0Δ,c0、a0,b0Δ,c0Δ、a0Δ,b0,c0Δ、a0Δ,b0Δ,c0Δの7点を用いる。図11:ステップ4:補足その2本ステップが終了した時点でフェイルとなっているメモリセルについては、リード結果保持用レジスタR-REGには、ライトパラメータの初期値および7つの近傍点を合わせた8点に対応するデジタルセンスアンプDSAの出力値が保存されている。図11:ステップ5:ライトパラメータA,B,Cの初期値の更新メモリブロック制御回路MB-Cは、ステップ4で近傍ライトパラメータを用いてベリファイを実施した各メモリセルについて、8つのライトパラメータセットの中で、デジタルセンスアンプDSAの出力値が最大であるライトパラメータセットと、最小になるライトパラメータセットとを決定する。以下では、デジタルセンスアンプDSAの出力が最大値となったライトパラメータセットをamax,bmax,cmax、最小値となったライトパラメータセットをamin,bmin,cminと記す。これらの値は、メモリセルごとに異なることに注意されたい。メモリブロック制御回路MB-Cは、下記式45にしたがって、新しいライトパラメータの初期値を設定する。図11:ステップ5:新たなライトパラメータの演算式ライトするデータが1の場合:a1,b1,c1=amaxk/Δamax-amin,bmaxk/Δbmax-bmin,cmaxk/Δcmax-cmin式4ライトするデータが0の場合:a0,b0,co=amink/Δamin-amax,bmink/Δbmin-bmax,cmink/Δcmin-cmax式5図11:ステップ5:新たなライトパラメータの演算例例えば、データ1をライトしたいセルにおいて、元の初期値a1,b1,c1とその7つの近傍点の中で、デジタルセンスアンプDSAの出力が最大になったパラメータセットがa1,b1Δ,c1であり、最小となったパラメータセットがa1Δ,b1,c1-Δであったとすると、式4に基づき、新しい初期値は、a1-k,b1Δk,c1k式6となる。図11:ステップ5:ライトパラメータ更新後の処理ライトパラメータを更新した後の処理は、図8と同様である。<実施の形態3:まとめ>以上のように、本実施形態3によれば、ライトパラメータが3つの場合でも、実施形態1~2と同様の効果を発揮することができる。上記の説明から判るように、本発明は、ライトパラメータが多い場合にも容易に拡張することができる。ここではライトパラメータが2つと3つの場合について説明したが、ライトパラメータが1つの場合はもちろんのこと、ライトパラメータが4つ以上の場合にも本発明に係るベリファイシーケンスは容易に拡張できることが理解されよう。ライトパラメータが増加すると、デジタルセンスアンプDSAの出力とライトパラメータとの間の関係がますます複雑になると予想されるので、本発明のメリットはさらに大きくなる。以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。"