【実施例】
【0016】
図2は、本発明の実施例に係るNAND型フラッシュメモリの構成を示す図である。フラッシュメモリ100は、複数のメモリセルが行列状に配列されたメモリアレイ110と、外部端子に接続され入出力データを保持する入出力バッファ120と、入出力バッファ120からのアドレスデータを受け取るアドレスレジスタ130と、CPU(中央処理装置)140と、RAM150と、ROM160と、アドレスレジスタ130から行アドレス情報Axを受け取り、行アドレス情報Axのデコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路170と、ワード線選択回路170によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ/センス回路180と、アドレスレジスタ130から列アドレス情報Ayを受け取り、列アドレス情報Ayのデコード結果に基づきページバッファ/センス回路180内のデータの選択等を行う列選択回路190と、データの読出し、プログラムおよび消去等のために必要な種々の電圧(書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど)を生成する内部電圧発生回路200とを含んで構成される。
【0017】
メモリアレイ110は、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。1つのメモリブロックには、複数のメモリセルを直列に接続したNANDストリングが複数形成される。さらにメモリアレイ110は、メモリの動作条件に関するオプションデータを記憶するオプションデータ記憶部210を備えている。オプションデータ記憶部210は、他のブロックと同様にNANDストリングから構成され、従って、ワード線選択回路170、ページバッファセンス回路180、列選択回路190等を介して、オプションデータ記憶部210の選択ページからデータの読出し、あるいは選択ページへのプログラム、さらには選択ブロックの消去が可能である。
【0018】
ROM160は、フラッシュメモリ100の動作(読出し、プログラム、消去、テスト等)を制御するためのプログラムやデータが恒久的に記憶される。ROM160は、特に限定されるものではないが、例えば、マスクROM、ヒューズROM、ワンタイムPROMなどから構成される。RAM150は、ROM160からロードされたデータを一時的に記憶したり、あるいは後述するようにオプションデータ記憶部210から読み出されたデータを一時的に記憶したり、さらには外部端子または入出力バッファ120に供給されたデータを一時的に記憶する。RAM150は、特に限定されるものではないが、例えば、読出し/書込みの速度が速いSRAMまたはDRAM等から構成される。
【0019】
CPU150は、RAM150やROM160から読み出されたプログラムやデータに従いフラッシュメモリ100の動作を制御する。さらにCPU150は、入出力バッファ120から入力されたコマンドや外部制御信号に応答してフラッシュメモリ100の動作を制御する。
【0020】
フラッシュメモリ100の読出し動作では、ビット線に或る正の電圧を印加し、選択ページに或る電圧(例えば0V)を印加し、非選択ページにパス電圧Vpass(例えば4.5V)を印加し、選択ページのデータがページバッファ/センス回路180に読み出される。プログラム動作では、選択ページに高電圧のプログラム電圧Vpgm(15〜25V)を印加し、非選択ページに中間電位(例えば10V)を印加し、ページバッファ/センス回路180にプログラムデータに保持し、選択ページのプログラムが行われる。プログラムベリファイでは、プログラムベリファイ電圧を選択ページに印加し、選択ページを読出すことでベリファイが行われ、好ましくは、ISPPによりプログラムパルスが印加される。消去動作では、ブロック内の選択ワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、ブロック単位でデータを消去する。プログラムベリファイでは、プログラムベリファイ電圧を選択ページに印加し、選択ページを読出すことでベリファイが行われ、好ましくは、ISPEにより消去パルスが印加される。
【0021】
一般的な手法によれば、フラッシュメモリの動作条件に関する全てのオプションデータがROM160に格納される。この場合の詳細を
図3を用いて説明する。ROM160には、消去の動作条件に関するデータとして、HVセットアップ、消去バイアスA、B、C、消去ベリファイA、B、C、HVリセットが記憶され、プログラムの動作条件に関するデータとして、HVセットアップ、プログラムバイアスA、B、C、プログラムベリファイA、B、C、HVリセットが記憶される。ここで、HVセットアップは、内部電圧発生回路200のチャージポンプ回路等の動作条件に関するデータであり、例えば、チャージポンプ回路の動作順序などを決定するデータが含まれる。HVリセットは、チャージポンプ回路による高電圧を降下させるときの動作条件に関するデータである。
【0022】
消去バイアスA、B、Cは、選択ブロックのPウエルに印加する消去パルスの波高値やステップ幅、印加時間、その他の消去動作に関するあらゆるデータや消去の動作手順(オペレーションの順番等)に関するデータを含むことができる。例えば、消去バイアスAは、消去パルスの初期値が19Vであり、ステップ幅が1Vであり、消去バイアスBは、消去パルスの初期値が20Vであり、ステップ幅が0.8Vである。消去ベリファイA、B、Cは、消去された選択ブロックをベリファイするときにワード線に印加する電圧、印加時間、その他の消去ベリファイに関するあらゆるデータや消去ベリファイの動作手順(オペレーションの順番等)に関するデータを含むことができる。例えば、消去ベリファイAは、ワード線に印加する電圧が0Vであり、消去ベリファイBは、ワード線に印加する電圧が0.1Vである。
【0023】
プログラムバイアスA、B、Cは、選択ページのワード線に印加するプログラムパルスの波高値やステップ幅、印加時間、その他のプログラム動作に関するあらゆるデータやプログラムの動作手順(オペレーションの順番等)に関するデータを含むことができる。例えば、プログラムバイアスAは、プログラムパルスの初期値が15Vであり、ステップ幅が1Vであり、プログラムバイアスBは、プログラムパルスの初期値が16Vであり、ステップ幅が0.8Vである。プログラムベリファイA、B、Cは、選択ページのワード線に印加する電圧、印加時間、その他のプログラムベリファイに関するあらゆるデータやプログラムベリファイの動作手順(オペレーションの順番等)に関するデータを含む。これら全てのオプションデータの中から最適なオプションデータを選択するための選択コードは、例えば、評価テストに基づき出荷前にヒューズROMなどをトリミングすることでプログラムされる。
【0024】
図4は、製品出荷前に記憶されるオプションデータと、製品出荷後にオプションデータを用いた動作を説明する図である。製品出荷前、ROM160には、HVセットアップ/リセット、読出しに関するデータ、プログラムバイアスA、B、C、プログラムベリファイA、B、C、消去バイアスA、B、C、消去ベリファイA、B、C等が記憶された状態にある(ステップS100)。ROM160がマスクROMであるとき、チップの製造工程において、マスクによりウエハーにデータの焼き付けが行われる。
【0025】
メモリセルや周辺回路等を構成するトランジスタや配線等には、製造工程においてバラツキや変動があるため、フラッシュメモリの最適な動作条件は、それぞれチップ毎に異なることがある。それ故、チップにとっての最適な動作条件を製造前に決定することは難しく、ROM160には、多数の選択可能なオプションデータが予め記憶される。製造後の評価テストにより、フラッシュメモリ100を動作させることで、プログラムバイアス、プログラムベリファイ、消去バイアス、消去ベリファイ等の動作条件の最適なオプションを決定することができ、その最適なオプションデータを選択するための選択コードがヒューズROM等のトリミングによりプログラムされる。
【0026】
製品出荷後、CPU140は、外部から入力されたコマンドに応じて読出し、消去、プログラム等の動作を実行する。CPU140は、要求された動作に対応するROM140のプログラムを実行する。また、ROM140には、
図3に示したように、複数のオプションデータが含まれるが、これらの中から選択コードにより選択された最適なオプションデータがCPU140により読み出され、CPU140は、最適なオプションデータに基づき内部電圧発生回路200、ワード線選択回路170、ページバッファ/センス回路180および列選択回路190を制御し、メモリセルアレイ110のPウエルに印加される消去パルスや消去ベリファイ電圧を制御する。例えば、同図に示すよう、消去動作が行われるとき、CPU140は、ROM160から読み出したHVセットアップに関するデータにより内部電圧発生回路200の動作条件を決定し、高電圧の発生を制御する(S110)。また、選択コードによって、ROM160の全オプションデータの中から最適なオプションデータが選択され、つまり、消去バイアスA、B、Cの中から1つの消去バイアスが選択され、消去ベリファイA、B、Cの中から1つの消去ベリファイが選択され(S120)、その最適な組合せに従い、消去が実行される。消去が終了すると、CPU140は、HVリセットに関するデータによりチャージポンプ回路をリセットする(S130)。
【0027】
このような方法では、ROM160が全オプションデータを記憶するため、ROM160内のオプションデータに割り当てるリソースが大きくなってしまう。また、マスクROMOにより全オプションデータを記憶した場合に、オプションデータを変更することは非常に煩雑である。そこで、本実施例では、メモリセルアレイ110内にオプションデータを記憶するオプションデータ記憶部210を設け、動作時に、オプションデータ記憶部210からオプションデータをリアルタイムでRAM150にロードし、RAM150にロードされたオプションデータを用いてCPU140が動作条件を制御できるようにする。
【0028】
図5は、本実施例によるオプションデータの記憶例を説明する図であり、ここに例示のオプションデータは、
図3のオプションデータに対応する。ROM160には、
図5(A)に示すように、必要最小限のオプションデータが記憶される。具体的には、消去シーケンスのオプションデータとして、高電圧(HV)のセットアップおよびリセットに関するデータが記憶される。さらに、消去シーケンスは、このオプションデータとともに、オプションデータ記憶部210から消去シーケンスの他の最適なオプションデータを読み出すための読出し用データRead1が記憶される。読出し用データRead1は、CPU140が消去動作を実行するとき、オプションデータ記憶部210から最適なオプションデータを読み出すための読出しコマンドおよびアドレスを含む。
【0029】
プログラムシーケンスのオプションデータとして、高電圧(HV)のセットアップおよびリセットに関する情報が記憶される。さらに、このオプションデータとともに、オプションデータ記憶部210からプログラムシーケンスの他の最適なオプションデータを読み出すための読出し用データRead2が記憶される。読出し用データRead2は、CPU140がプログラム動作を実行するとき、オプションデータ記憶部210から最適なオプションデータを読み出すための読出しコマンドおよびアドレス情報を含む。また、読出しシーケンスに関しては、
図3の場合と同様に、他のオプションを持たない例を示している。
【0030】
一方、メモリセルアレイ110のオプションデータ記憶部210には、最適なオプションデータがプログラムされる。具体的には、
図5(B)に示すように、オプションデータ記憶部210の第1の記憶領域には、消去シーケンスに関して、消去バイアスA、B、Cのいずれかの最適なオプションデータが記憶され、消去ベリファイA、B、Cのいずれかの最適なオプションデータが記憶される。第1の記憶領域に記憶されたオプションデータは、読出し用データRead1に基づきCPU140によりRAM150に読み出される。また、オプションデータ記憶部210の第2の記憶領域には、プログラムシーケンスに関して、プログラムバイアスA、B、Cのいずれかの最適なオプションデータが記憶され、プログラムベリファイA、B、Cのいずれかの最適なオプションデータが記憶される。第2の記憶領域に記憶されたデータは、読出し用データRead2に基づきCPU140により読み出される。オプションデータ記憶部210に記憶される最適なオプションデータは、出荷前の評価テストにより決定される。
【0031】
図6は、オプションデータ記憶部210から読み出されたオプションデータがRAMにロードされるときのデータの流れを示す図、
図7は、そのときの動作フローである。CPU140は、外部からコマンドが入力されると(S200)、そのコマンドに基づき要求される動作を判別する(S210)。次に、CPU140は、要求される動作に応じたシーケンスをROM160から読み出す(S220)。例えば、消去コマンドが入力されたとき、CPU140は、ROM160から消去シーケンスに関するデータを読出す。
図5の例で言えば、CPU140は、HVセットアップ、読出し用データRead1、HVリセットのデータをROM140から読み出す。CPU140は、読出し用データRead1に基づき、通常のメモリセルアレイの読出し動作と同様に、行選択回路170、ページバッファ/センス回路180、列選択回路190等を介してオプションデータ記憶部230をアクセスし(S230)、オプションデータ記憶部210から消去シーケンスに関する最適なオプションデータを読出し、読み出したデータをRAM150にロードする(S240)。CPU140は、最適なオプションデータの読出しと並行して、ROM160から読み出したHVセットアップに従い内部電圧発生回路200による高電圧の生成を制御することができる。次に、CPU140は、RAM150に保持された最適なオプションデータに従いPウエルに消去パルスを印加し、その後、選択ブロックの消去ベリファイを実行する(S250)。消去動作が終了したとき、CPU140は、HVリセットに従い内部電圧発生回路200による高電圧の放電を制御する。
【0032】
プログラム動作のときも同様であり、外部からプログラム動作に該当するコマンドが入力されると、CPU140は、ROM160からプログラムシーケンスに関するデータを読出し、HVセットアップに従い内部電圧発生回路200による高電圧の生成を制御し、読出し用データRead2に基づき行/列選択回路170、180等を介してオプションデータ記憶部210からプログラムシーケンスの最適なオプションデータを読出し、これをRAM150にロードする。次に、CPU140は、RAM150に保持された最適なプログラムバイアスに従いプログラムパルスを選択ワード線に印加し、その後、選択ページのプログラムベリファイを実行する。プログラム動作が終了したとき、CPU140は、HVリセットに従い内部電圧発生回路200による高電圧の放電を制御する。
【0033】
読出しコマンドが入力された場合には、本例では特に最適なオプションデータがオプションデータ記憶部210に記憶されていないので、CPU140は、ROM160に格納された読出しバイアスに従い、選択ページの読出しを行う。
【0034】
図8は、本実施例を用いたときの製品出荷前に記憶されるオプションデータと、製品出荷後にオプションデータを用いた動作制御を説明する図である。ROM160がマスクROMから構成されるとき、フラッシュメモリの製造工程中に、
図5に示すような必要最小限のオプションデータおよび読出し用データRead1、Read2がシリコンウエハーに焼き付けられる(S300)。
【0035】
製造後、ウエハーレベルまたはチップレベルで、フラッシュメモリ100の評価テストが実行され(S310)、そのテスト結果に基づき、最適なオプションデータが決定され、オプションデータ記憶部210には最適なオプションデータがプログラムされる(S320)。このプログラムは、他のメモリセルアレイ110へのプログラムと同様の方法により行われる。最適なオプションデータのプログラムが終了した後、フラッシュメモリ100が出荷される。
【0036】
出荷後、フラッシュメモリ100は、要求される動作に応じて、リアルタイムでオプションデータ記憶部210から最適なオプションデータをRAM150にロードし、CPU140は、RAM150にロードされた最適なオプションデータに用いて動作を制御する。図の例は、消去動作の例を示している。CPU140は、外部から消去コマンドが入力されると、ROM160から消去シーケンスのデータを読出し、そこに含まれるHVセットにより高電圧の生成を制御し(S330)、さらに読出し用データRead1に従いオプションデータ記憶部210から最適なオプションデータを読出し、これをRAM150に一時的に保持させる。CPU140は、最適な消去バイアスに従い生成された消去パルスをPウエルに印加させる(S340)。最適な消去バイアスは、A、B、またはCのいずれかである。次に、CPU140は、最適な消去ベリファイの条件に従い選択ブロックの全ページの消去ベリファイを行う(S350)。最適な消去ベリファイは、A、B、またはCのいずれかである。消去動作が終了すると、CPU140は、HVリセットに従い内部電圧発生回路200をリセットする(S360)。
【0037】
このように本実施例によれば、オプションデータ記憶部210に最適なオプションデータを記憶し、フラッシュメモリの動作時に、オプションデータ記憶部210から最適なオプションデータをリアルタイムでRAM150に読み出すようにしたので、ROM160に割り当てるオプションデータのリソースを削減することができる。
【0038】
上記実施例では、製品出荷前に最適なオプションデータをオプションデータ記憶部210にプログラムするようにしたが、これに限らず、製品出荷後に最適なオプションデータをオプションデータ記憶部210にプログラムするようにしてもよい。この場合、ホスト装置からフラッシュメモリ100に最適なオプションデータが提供され、それがオプションデータ記憶部210にプログラムされる。これにより、製品出荷後であっても、フラッシュメモリの最適なオプションデータを変更することができ、フラッシュメモリの動作条件が経年変化や使用サイクル等により変化しても、これにフレキシブルに対応することができる。特に、ROM160がマスクROMの場合、マスクの改変を行うことは時間的およびコスト的に負荷が大きいが、本実施例のように通常のNANDストリングのメモリセルアレイへのデータの書き換えであれば、その作業は容易である。
【0039】
上記実施例では、消去バイアス、消去ベリファイ、プログラムバイアスおよびプログラムベリファイをオプションデータの一例としてオプションデータ記憶部210に格納する例を示したが、オプションデータは、上記以外のフラッシュメモリ100の動作条件を決定し得るあらゆるデータであることができる。また、どのようなオプションデータをROM160に格納し、どのようなオプションデータをオプションデータ記憶部210に格納するかは、上記の例に限定されることなく、任意に設定することが可能である。
【0040】
次に、本実施例のフラッシュメモリにおいて、製品出荷前にオプションデータのプログラムする方法について説明する。チップが製造された段階では、オプションデータ記憶部210およびRAM150にはデータが格納されていない(データが空である)。従って、この状態では、RAM150のデータに従いフラッシュメモリ100の動作条件を決定することができないので、評価テストにおいて、最適なオプションデータを決定することができない。
【0041】
そこで、本実施例のフラッシュメモリは、製品出荷前の評価テストを行うとき、RAM150に必要なデータを外部から直接書込みすることができるようにする。評価テストを行うとき、フラッシュメモリ100は、
図9に示すように、テストポートTPを介してテスト装置300に電気的に接続される。評価テストは、ウエハーレベル、またはチップレベルのいずれであってもよく、テストポートTPは、例えば、データを入出力するための外部端子またはそのパッド、あるいはテスト専用の端子またはそのパッドであることができる。
【0042】
1つの好ましい例では、テスト装置300は、テストを開始するためのテスト開始信号をテストポートTPに出力する。テストポートTPに印加されたテスト開始信号はテスト検出部310により検出され、この検出信号がCPU140に供給される。CPU140は、検出信号を受け取ると、ROM160に格納されたテスト用プログラムを実行し、テストシーケンスを開始する。あるいは、他の好ましい例では、フラッシュメモリは、CPU140以外に、組み込み自己テスト回路(BIST回路(Built-In Self Test))を含み、BIST回路がテスト検出部310の検出信号に応答してテストを実行するものであってもよい。
【0043】
CPU140は、テストシーケンスを開始すると、テストポートTP(または入出力バッファ120)とRAM150との間にデータパスを形成し、テスト装置300からテストポートTPに供給されるデータをRAM150の所定の記憶領域に書込むことを可能にする。RAM150に書込まれるデータは、フラッシュメモリの動作条件に関するデータであり、言い換えれば、オプションデータ記憶部210に記憶されるオプションデータと等価なものである。CPU140は、テストシーケンスに従い、あるいはテスト装置300からのコマンドに基づき、消去やプログラムを行うが、このとき、RAM150に格納されたテスト装置300からのデータを用いて消去やプログラム等の動作条件を決定し、テストを行う。
【0044】
テスト装置300により最適なオプションデータが決定されると、テスト装置300は、フラッシュメモリ100のオプションデータ記憶部210に最適なオプションデータをプログラムする。すなわち、テスト装置300は、フラッシュメモリ100に対して、プログラムコマンド、およびオプションデータ記憶部210にプログラムするためのアドレス(このアドレスは、読出し用データRead1、Read2が最適なオプションデータを読み出すときのアドレスに一致する)を出力する。これにより、オプションデータ記憶部210に最適なオプションデータがプログラムされる。
【0045】
以上のように本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、上記実施例は、NAND型フラッシュメモリを例示したが、本発明は、それ以外の半導体記憶装置に適用するものであってもよい。