"フラッシュメモリ内のブロックに対してプログラムを行う際に、前記ブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間を計測する機能と、前記第1時間と所定の判定基準値である第2時間とを比較する機能と、前記ブロックにおいて前記第1時間が前記第2時間を下回った場合は、当該ブロックに次回からアクセスする際には、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする機能と、を備えることを特徴とする不揮発性半導体記憶装置。メモリセルがアレイ状に配列されたメモリ領域を有するフラッシュメモリと前記フラッシュメモリの動作を制御する制御部とを有し、前記フラッシュメモリは、プログラム対象となるブロック内のプログラムすべきメモリセルのうちの予め設定したNN=1~100の任意の数のメモリセルがプログラムベリファイをパスしたときに、このNのメモリセルがプログラムベリファイをパスしたことを示すNパス情報を外部に出力する機能と、外部からの要求に応じて当該フラッシュメモリにおける動作条件を変更する機能と、を備え、前記制御部は、前記フラッシュメモリから出力されるNパス情報をモニタすることにより、前記プログラム対象となるブロックにおけるプログラムの開始から前記Nのメモリセルがプログラムベリファイをパスするまでに要した第1時間を計測する機能と、前記第1時間と前記第2時間とを比較する機能と、前記プログラム対象となるブロックにおいて前記第1時間が前記第2時間を下回った場合に、当該ブロックのブロックアドレスを記憶するとともに、次回より当該ブロックにアクセスする際には、前記フラッシュメモリの動作条件を前記所定の動作条件に変更するように前記フラッシュメモリに要求する機能と、を備えることを特徴とする請求項1に記載の不揮発性半導体記憶装置。前記制御部は、前記フラッシュメモリ内の前記ブロックに対してプログラムを行う際に前記第1時間が前記第2時間を下回る毎に、前記ブロックに次にアクセスする際、前記フラッシュメモリに対して異なる動作条件を設定する、ことを特徴とする請求項2に記載の不揮発性半導体記憶装置。プログラム対象となるブロックにおけるプログラム開始から前記Nパス情報が出力されるまでの第1時間を計測するとともに、この第1時間と前記第2時間とを比較するNパス時間判定部と、プログラム対象となるブロックにおいて前記第1時間が前記第2時間を下回った場合に、当該ブロックのブロックアドレスと、当該ブロックにおいて前記第1時間が前記第2時間を下回った回数である補正回数と、を対応付けて記憶するブロックアドレス記憶部と、前記補正回数と、この補正回数に応じて前記フラッシュメモリに対して適用されるべき動作条件と、を対応付け保持する条件テーブルと、を備え、前記制御部は、前記フラッシュメモリ内のブロックに対してアクセスを開始する前に、前記ブロックアドレス記憶部と前記条件テーブルとを参照し、当該ブロックのブロックアドレスが前記ブロックアドレス記憶部に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を前記条件テーブルから抽出し、この抽出した動作条件を前記フラッシュメモリに対して設定した後に、当該ブロックに対してアクセスを開始することを特徴とする請求項3に記載の不揮発性半導体記憶装置。前記アクセスする際に変更する動作条件は、ブロックに対してプログラム、プログラムベリファイ、リード、イレースのいずれか、または全部の処理を行う際の動作条件であることを特徴とする請求項1から請求項4のいずれか一項に記載の不揮発性半導体記憶装置。前記ブロックに対してプログラムを行なう際に、所定の同一データを書き込むための書き込み専用領域を前記ブロック内に設け、前記第1時間を判定する機能として、前記ブロックへのプログラム開始から前記書き込み専用領域内のメモリセルのうちの所定の割合のメモリセルのプログラムが完了するまでの時間を前記第1時間として判定する、ことを特徴とする請求項1から請求項5いずれか一項に記載の不揮発性半導体記憶装置。前記書き込み専用領域に書き込まれるデータは、フラッシュメモリのメモリセルのフローティングゲートに電荷を注入して書き込まれるデータであることを特徴とする請求項6に記載の不揮発性半導体記憶装置。フラッシュメモリ内のプログラム対象となるブロックに対してプログラムを行う際に、前記ブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間を計測する手順と、前記第1時間と所定の判定基準値である第2時間とを比較する手順と、前記第1時間が前記第2時間を下回った場合に、次回から当該ブロックにアクセスする際には、前記フラッシュメモリの動作条件を所定の動作条件に変更する手順と、を含むことを特徴とする不揮発性半導体記憶装置における動作条件制御方法。NAND型フラッシュメモリは、プログラムおよび消去動作等のサイクリングCyclingを重ねるとメモリセルの酸化膜が劣化し、酸化膜中にチャージトラップが発生し、プログラムしたセルの閾値Vtの分布が広がる傾向がある。例えば、図10は、SLCSingleLevelCellの閾値Vtの分布を示す図であり、図10Aは、サイクリング前における閾値Vtの分布を示し、図10Bは、サイクリング後における閾値Vtの分布を示している。この図において、Vpgmvは、プログラムベリファイ時のワード線に印加される電圧を示し、Vreadは、リード時の非選択ワード線の電圧を示す。この図に示すように、サイクリングを繰り返すことにより、サイクリング後の閾値Vtの分布範囲が、サイクリング前と比較して広がることが分かる。このプログラムしたセルの閾値Vtの分布が広がると、次のような問題が起こる可能性がある。例えば、NAND型フラッシュメモリがSLCの場合に、オーバプログラミングOverProgrammingによるカラムリードColumnRead不良が発生する可能性があり、MLCMultipleLevelCellの場合は、複数の閾値Vtの各々が隣接ステートStateと重なることによるリード不良が発生することがある。これらはNAND型フラッシュメモリの信頼性の面で重大な問題となる。従来、このような問題を回避するため、例えば、ECCErrorCheckingandCorrection:エラー検出訂正機能の拡充、各ブロックのサイクリング回数プログラム及び消去動作等の実施回数を可能な限り平均化するためのシステムによる対処WareLeveling、または、NAND型フラッシュメモリ全体の平均サイクリング回数を管理し、この平均サイクリング回数に応じてNAND型フラッシュメモリの動作条件を変更する方法が行われている。しかしながら、ECCを拡充する場合は、ECCの情報を記憶するためのメモリ領域が必要となり、NAND型フラッシュメモリのチップ面積の増加を招く。また、データの読み書きにおいてECCを算出する処理が必要となるため、システム側にも負担がかかる。また、各ブロックのサイクリング回数を平均化する場合は、システム側に多数のレジスタサイクリング回数をブロックごとに保持するレジスタが必要になり、これもまた負担となる。また、サイクリング回数によりNAND型フラッシュメモリの動作条件を変更する場合は、NAND型フラッシュメモリ全体のサイクリング回数により動作条件が管理されるため、サイクリング回数が実際には少ないブロックに対しても新たな動作条件が適用されることになり、NAND型フラッシュメモリのパフォーマンスの低下につながるという欠点がある。本発明は、斯かる実情に鑑みなされたものであり、本発明の目的は、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態により、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる、不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法を提供することにある。本発明は、上記課題を解決するためになされたものであり、本発明の不揮発性半導体記憶装置は、フラッシュメモリ内のブロックに対してプログラムを行う際に、前記ブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間を計測する機能と、前記第1時間と所定の判定基準値である第2時間とを比較する機能と、前記ブロックにおいて前記第1時間が前記第2時間を下回った場合は、当該ブロックに次回からアクセスする際には、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする機能と、を備えることを特徴とする。本発明の不揮発性半導体記憶装置においては、フラッシュメモリ内のブロックに対してプログラムを行う際に、ブロック内のプログラムされるべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了する時間を判定計測し、この時間が判定基準値を下回った場合は、次にそのブロックにアクセスする際に、フラッシュメモリの動作条件を所定の動作条件に変更する。これにより、本発明の不揮発性半導体記憶装置においては、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。[第1の実施形態]以下、本発明の実施の形態を添付図面を参照して説明する。[概要]本実施形態の不揮発性半導体記憶装置においては、サイクリング回数ではなく、個々のブロックメモリセルアレイに対してアクセス例えば、プログラム等する際の単位となるブロックのプログラム時間をモニタし、プログラム時間が判定基準値を下回ったときのブロックアドレスを記憶し、そのブロックに次にアクセスする際に、NAND型フラッシュメモリの動作条件を変更する。すなわち、NAND型フラッシュメモリは、サイクリングを重ねることでメモリセルの酸化膜が劣化することにより、チャージトラップが発生し、このチャージトラップに電子が捕獲されることで、メモリセルのプログラム時間は早くなっていくプログラムしやすくなる。しかし、NAND型フラッシュメモリでは複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い時間が長いビットslowprogrambitが存在する。このためプログラム時間の変化は、プログラム速度の遅いビットによって判定されるため、個々のビットの傾向を知ることができない。そこで、速度が遅いプログラム時間が長いビットにより全体のプログラム時間の変化がわからなくなるのを防ぐため、NAND型フラッシュメモリには、プログラムフェイルビット数をカウントし、プログラムビット総数に対してNN=1~100の任意の数のメモリセルがプログラムされたときに外部にフラグを出力する機能を設ける。また、NAND型フラッシュメモリに、外部からの要求に応じて動作条件を変更することができる機能を設ける。そして、NAND型フラッシュメモリを使用する不揮発性半導体記憶装置は、フラッシュメモリのNN=1~100の任意の数のメモリセルがプログラムベリファイをパスしたときに出力されるフラグF_MajorityNパス情報をモニタし、Nパス時間tPROG_Majorityプログラム開始からフラグF_Majorityが出力されるまでの時間を判定計測する。このとき、不揮発性半導体記憶装置は、Nパス時間tPROG_Majority単に時間tPROG_Majorityとも呼ぶの判定基準値例えば、150μsと時間tPROG_Majorityとを比較し、時間tPROG_Majorityが判定基準値を下回った回数に応じて、次にNAND型フラッシュメモリに適用されるべき動作条件を変更して設定する。そして、不揮発性半導体記憶装置では、時間tPROG_Majorityが判定基準値を下回った回数に応じて、次回よりそのブロックアドレスにアクセスするときには新しい動作条件を適用するようにNAND型フラッシュメモリに要求する。上記動作条件とは、例えばプログラム/プログラムベリファイ/リード/イレースProgaram/ProgarmVerify/Read/Eraseの際の動作条件である。[不揮発性半導体記憶装置の構成]図1は、本発明の第1の実施形態に係わる不揮発性半導体記憶装置の構成を示す図である。図1に示す不揮発性半導体記憶装置1は、NAND型フラッシュメモリ本明明細書では、単にフラッシュメモリとも呼ぶ20を有する不揮発性半導体記憶装置であり、本発明に直接関係する部分のみを示したものである。この図1に示すように、本実施形態の不揮発性半導体記憶装置1は、メモリセルがアレイ状に配列されたNAND型フラッシュメモリ20と、このフラッシュメモリ20を制御するコントローラ10と、を有して構成される。また、NAND型フラッシュメモリ20は、メモリセルがアレイ状に配列されたメモリセルアレイ21を有している。コントローラ10は、NAND型フラッシュメモリ20内のブロックフラッシュメモリ20内のメモリセルアレイ21へアクセスする際の単位となるブロックに対して、プログラムの実行指令等のコマンドを発行するとともに、フラッシュメモリ20における動作条件を設定するためのコマンド動作条件変更設定コマンドCMDを発行する。NAND型フラッシュメモリ20は、コントローラ10から入力したコマンドCMDに含まれる動作条件の変更設定情報に従い、例えば、プログラム電圧や、リード電圧等の動作条件を設定する。また、NAND型フラッシュメモリ20は、後述するフラグF_MajorityNパス情報の信号をコントローラ10に出力する。コントローラ10は、フラッシュメモリ20から入力したフラグF_Majorityを基に、Nパス時間判定部tPROG_Majority判定部13により、プログラム対象となるブロックにおけるプログラム開始からフラグF_Majorityが出力されるまでの時間tPROG_Majorityを計測する、また、Nパス時間判定部13は、時間tPROG_Majorityが所定の判定基準値例えば、150μsを下回ったか否かを判定する。ブロックアドレス記憶部12は、Nパス時間判定部13により、プログラム対象となるブロックにおける時間tPROG_Majorityが所定の判定基準値例えば、150μsを下回った判定された場合に、当該ブロックのアドレスと、当該ブロックおいて時間tPROG_Majorityが判定基準値を下回った回数補正回数を記憶する。上記構成の不揮発性半導体記憶装置1において、NAND型フラッシュメモリ20内のブロックにアクセスする場合、コントローラ10は、最初に、ブロックアドレス記憶部12と、条件テーブル11とを参照する。なお、条件テーブル11には、後述するように、時間tPROG_Majorityの判定基準値と、時間tPROG_Majorityが判定基準値を下回った回数補正回数と、この下回った回数に対応して次回からの動作でそのブロックに適用されるべきフラッシュメモリ20の動作条件と、が対応付けられて記憶されている図6を参照。そして、コントローラ10は、アクセスしようとするブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、その回数補正回数およびそれに対応する動作条件を条件テーブル11から読み出す。コントローラ10は、この条件テーブル11から読み出した動作条件をNAND型フラッシュメモリ20に対して設定し、その後に、所望の動作リード/プログラム/イレースを行う。NAND型フラッシュメモリ20は、コントローラ10から要求された動作条件変更設定指令動作条件変更設定コマンドCMDに応じて動作条件を変更できる機能を備える。動作条件の変更例としては、例えば、フラッシュメモリ20は、プログラムストレスProgramstressの開始電圧Vipgmを変更する下げる。また、例えば、フラッシュメモリ20は、メモリセルのゲート電圧を一定電圧Vstep上昇させながらプログラムミングを行う増加型パルスプログラムIncrementalStepPulse-Program:ISPPサイクルにおける電圧ステップ幅Vstepを変更する小さくする。これにより、フラッシュメモリ20において、プログラム速度を抑え、過書き込みオーバプログラミングを防止する。或いは、フラッシュメモリ20は、リード時の非選択ワード線の電圧Vreadを変更する高くする。これにより、フラッシュメモリ20は、メモリセルに対して多少過書き込みが発生しても、メモリセルからデータを読み出す際に、データを正常に読み出せるようにマージン余裕度を持つことができる。或いは、フラッシュメモリ20は、プログラムベリファイ時の選択ワード線の電圧Vselを変更する高くする。メモリセルはサイクリングを重ねるとプログラムしやすくなるが同時に電荷保持特性も劣化するので、これに対して、フラッシュメモリ20は、プログラムベリファイ時の選択ワード線の電圧Vselを変更高くするすることにより、データを正常に読み出せるようにマージンを持つことができる。図2は、NAND型フラッシュメモリ20の構成を示す図であり、本発明に関係する部分を示したものである。この図2に示すように、NAND型フラッシュメモリ20は、メモリセルアレイ21と、ページバッファデコーダ22Aを備えるページバッファ22と、ロウデコーダ23とを有する。また、NAND型フラッシュメモリ20は、このNAND型フラッシュメモリ20の全体の動作を統括して制御するメモリ制御回路31と、動作条件変更設定部32と、出力データバッファ33と、入力データバッファ34と、プログラムビットカウンタ35と、プログラムビット比計算部36と、フェイルビットカウンタ37と、動作電圧コントローラ38と、を有している。上記構成のNAND型フラッシュメモリ20において、メモリセルアレイ21は、図3に示すブロックを複数ブロック備えている。各ブロックは、図3に示すように、N1本のビット線BL0~BLNビット線BLで総称と、n1本のワード線WL0~WLnワード線WLで総称と、共通ソース線CSLと、各ビット線BLと共通ソース線CSLとの間にそれぞれ接続されたN1個のメモリストリングST0~STNメモリストリングSTで総称と、を備える。各メモリストリングSTは、互いに直列接続されたn1個のフローティングゲート構造の電気的書き換え可能な不揮発性のメモリセルMC0~MCnを備え、ドレイン側のメモリセルMCnは選択ゲートトランジスタSS1を介して対応するビット線BLに接続され、ソース側のメモリセルMC0は選択ゲートトランジスタGS1を介して共通ソース線CSLに接続される。また、同一行のメモリセルの制御ゲートは、共通のワード線WLに接続されている。図3に示すブロックにおいて、メモリセルの消去は、例えば、半導体基板に高電圧を印加し、ワード線WL0~WLnに0Vを印加することにより行われる。これにより、例えばポリシリコンなどからなる電荷蓄積層であるフローティングゲートより電子を引き抜いて、メモリセルMCの閾値電圧を消去閾値電圧VtL例えば、-1Vに設定する。一方、書き込みプログラムにおいては、例えば、ソース及びドレインに0Vを与え、制御ゲート選択したワード線WLに高電圧を印加することにより、フローティングゲートに電子を注入し、閾値電圧を上昇させて書込閾値電圧VtHに設定する。そして、メモリセルMC0~MCnの閾値電圧が閾値電圧VtLの場合、当該メモリセルのデータ値を1とし、閾値電圧が閾値電圧VtHの場合、当該メモリセルのデータ値を0とする。また、メモリセルからデータを読み出すときには、全てのビット線BLを所定の電圧でプリチャージした後に、閾値VtLとVtH間の読み出し電圧を、読み出し対象のメモリセルMCに共通に接続されたワード線WLを介して、選択メモリセルの各制御ゲートに印加する。また、高電圧を、上記選択メモリセル以外のメモリセルMCおよび選択トランジスタSS1,GS1の各制御ゲートに印加して、上記選択メモリセル以外のメモリセルMCならびに選択ゲートトランジスタSS1,GS1を導通させる。従って、選択メモリセルのデータ値が1のときには、当該選択メモリセルにセル電流が流れる一方、選択メモリセルのデータ値が0のときには、当該選択メモリセルにセル電流が流れないので、セル電流が流れるか否かに基づいて、各選択メモリセルに書き込まれているデータを読み出すことができる。また、図2に示すNAND型フラッシュメモリ20において、動作条件変更設定部32は、コントローラ10から入力したコマンド動作条件変更設定コマンドCMDが指示する動作条件に従い、NAND型フラッシュメモリ20における動作条件を設定する。また、出力データバッファ33は、メモリセルアレイ21から読み出したデータの外部出力用のバッファ回路であり、外部装置との接続線となるデータ入出線I/Osにデータを出力する。入力データバッファ34は、同じくデータ入出線I/Osに接続され、外部装置からのデータの入力、アドレス信号の入力、及び動作制御のコマンド等の入力に使用されるバッファ回路である。プログラムビットカウンタ35は、プログラム対象となるブロックにおけるプログラムすべきメモリセルのビット数書き込むべきビット総数を検出し、このプログラムビット数の情報をプログラムビット比計算部36に出力する。フェイルビットカウンタ37は、ベリファイ読み出し時において、フェイルセルと判定されたメモリセルのビット数フェイルセル数とも呼ぶをカウントし、このフェイルセル数の情報をプログラムビット比計算部36に出力する。プログラムビット比計算部36は、プログラムビットカウンタ35から入力したプログラムビット数Pbの情報と、フェイルビットカウンタ37から入力したフェイルセル数Fbの情報と、を基に、以下の式によりプログラムビット比を算出する。なお、パスビット比は、プログラムするブロックおいて、プログラムに成功プログラムベリファイをパスしたメモリセルの割合を示す数値である。また、プログラムビット比をNレシオと呼ぶことがある。プログラムビット比Nレシオ=Pb-Fb×100/Pbそして、プログラムビット比計算部36は、プログラムビット比プログラムベリファイをパスしたメモリセルの割合が、所定の割合例えば、70を超えたときにフラグF_Majorityをコントローラ10に向けて出力する。動作電圧コントローラ38は、データ書き換えプログラム、消去イレース、読み出しリード等の動作時に用いる昇圧された高電圧や中間電圧を発生する。この動作電圧コントローラ38で生成された電圧信号は、信号Vread、Vpgm、Vers等としてロウデコーダ23とページバッファ22に出力される。この動作電圧コントローラ38における電圧信号の発生動作は、メモリセルMCからのデータの読み出しリード、書き換えプログラム及び消去イレース動作等に応じて、メモリ制御回路31および動作条件変更設定部32から出力される制御指令に基づいて行われる。[本実施形態の不揮発性半導体記憶装置1の動作説明]上述したように、NAND型フラッシュメモリ20は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていくプログラムしやすくなる。しかし、NAND型フラッシュメモリ20では複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い時間が長いビットが存在し、合計したプログラム時間tPROGとしては現れにくい。そこで、速度が遅い時間が長いビットにより大方のセルMajorityのプログラム時間がわからなくなるのを防ぐため、プログラム対象となるブロックにおいてプログラムフェイルビット数をカウントし、プログラムビット総数に対してNN=1~100の任意の数のメモリセルがプログラムされたときに外部にフラグF_Majorityを出力する機能を設ける。また、NAND型フラッシュメモリ20に、外部からの要求に応じて動作条件を変更することのできる機能を設ける。そして、不揮発性半導体記憶装置1は、プログラム対象となるブロックのNN=1~100の任意の数のメモリセルがプログラムベリファイをパスしたときに出力されるグラグF_Majorityをモニタして時間tPROG_Majority_Majorityプログラム開始からフラグF_Majorityが出力されるまでの時間を判定する。そして、不揮発性半導体記憶装置1は、プログラム対象となるブロックにおけるNパス時間tPROG_Majorityが判定基準値例えば、150μsを下回ったとき、そのブロックアドレスと、当該ブロックおいて時間tPROG_Majorityが判定基準値を下回った回数補正回数とをブロックアドレス記憶部12に記憶する。そして、次回よりそのブロックアドレスにアクセスするときには、補正回数を基に条件テーブル11を参照し、新しい動作条件を適用することをNAND型フラッシュメモリ20に要求する。図4は、サイクリング回数に対するプログラム時間tPROGとNパス時間tPROG_Majorityとイレース時間tERSの変化特性を示す図である。この図4では、横軸にサイクリング回数logスケールを示し、縦軸に時間を示している。なお、縦軸に示す時間は、tPROGとtPROG_MajorityとtERSのそれぞれの特性曲線に応じたA.U任意単位である。この図4に示すように、サイクリング回数0からN1の間では、プログラム時間tPROGと時間tPROG_Majorityとイレース時間tERSのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数N1以降、フラッシュメモリ20では、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間tPROGは短くなっていくプログラムしやすくなる。また、逆にイレース時間tERSは長くなっていく。また、プログラム開始からフラグF_Majorityが出力される時間tPROG_Majorityも短くなって行く。そして、時間tPROG_Majorityが短くなり、判定基準値時間Rtimeを下回ったときサイクリング回数N2のときに、コントローラ10は、フラッシュメモリ20にコマンドCMDを発行し、フラッシュメモリ20における動作条件動作条件の詳細な内容については後述するを変更する。そして、フラッシュメモリ20の動作条件を変更することにより、時間tPROG_Majorityは、一旦、元の時間サイクリング回数N1以下のtPROG_Majorityの時間まで復帰する。図5は、フラッシュメモリにおける動作条件の変更とtPROG_Majorityの変化を示す図である。この図5では、図4と同様に、横軸にサイクリング回数logスケール、縦軸に時間A.U.を示している。この図5に示すように、サイクリング回数0からN1の間では、プログラム時間tPROGとNパス時間tPROG_Majorityとイレース時間tERSのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数N1以降、フラッシュメモリ20は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、時間tPROG_Majorityは短くなっていく。また、逆にイレース時間tERSは長くなっていく。そして、サイクリング回数N2において、時間tPROG_Majorityが短くなり、判定基準値時間Rtimeを下回ったときに、コントローラ10は、フラッシュメモリ20にコマンドCMDを発行し、フラッシュメモリ20における動作条件を変更する。そして、フラッシュメモリ20における動作条件を変更することにより、tPROG_Majorityの時間は、一旦、元の時間サイクリング回数N1以下のtPROG_Majorityの時間まで復帰する。サイクリング回数N2において、動作条件を変更することにより、時間tPROG_Majorityが元に復帰するが、その後、さらにサイクリング回数を重ねることにより、フラグF_Majorityが出力される時間tPROG_Majorityが次第に短くなっていく。そして、サイクリング回数N3において、時間tPROG_Majorityが短くなり、判定基準値時間Rtimeを下回ったときに、コントローラ10は、フラッシュメモリ20にコマンドCMDを発行し、フラッシュメモリ20における動作条件を変更する。そして、フラッシュメモリ20における動作条件を変更することにより、時間tPROG_Majority間は、再び、元の時間に復帰する。このように、コントローラ10は、NAND型フラッシュメモリ20から出力されるフラグF_Majorityの信号をモニタして時間tPROG_Majorityを判定計測し、このtPROG_Majorityが所定の判定基準値を下回るごとに、NAND型フラッシュメモリ20における動作条件を変更する。上記フラッシュメモリ20おける動作条件を変更するために、コントローラ10内の条件テーブル11には、時間tPROG_Majorityの判定基準値と、tPROG_Majorityを下回った回数と、この下回った回数に対応して次回からの動作でそのブロックに適用されるべき動作条件と、が対応付けられて記憶されている。図6は、条件テーブルの一例を示す図である。この図6に示す表においては、上から順番に、補正回数何回目の補正であるかを示す数と、この補正回数に対応するNAND型フラッシュメモリ20の動作条件リード時、プログラム時、ベリファイプログラム時、およびイレース時における動作条件とを示している。なお、この表において、リード時の電圧Vreadは、リード時の非選択ワード線の初期電圧を示し、プログラム時の電圧Vipgmは、プログラム時の初期電圧を示している。また、プログラムベリファイ時の電圧Vpassは、プログラムベリファイ時の非選択ワード線の初期電圧を示し、電圧Vselは、選択ワード線の初期電圧を示している。また、イレース時の電圧Versは、メモリセルのイレース時の消去電圧初期電圧を示している。また、時間tPROG_Majorityの判定基準時間Rtimeとして、150μsμsecが設定されている。この図6に示すように、Nパス時間tPROG_Majorityより正確には、プログラム開始からフラグF_Majorityが出力されるまでの時間が判定基準時間150μsよりも最初に短くなった時図5に示すサイクリング回数N2のときに、1回目の動作条件の補正が行われる。この補正1回目では、リード時の非選択ワード線の電圧Vreadを初期電圧Vreadから0.1V増加させてVread1とするVread1=Vread0.1V。これは、フラッシュメモリの酸化膜が劣化することにより、プログラム速度が速くなりプログラム電圧が低下し、メモリセルがオーバプログラミング閾値Vtが上昇されている可能性があるため、非選択ワード線の電圧Vreadを上昇させて対応するものである。また、この補正1回目では、プログラム時の初期電圧Vipgmを初期電圧Vipgmから1.0V減少させてVipgm1Vipgm1=Vipgm-1.0Vとする。これは、フラッシュメモリの酸化膜が劣化することにより、プログラム速度が速くなり、メモリセルがオーバプログラミングされることを防ぐために、プログラム電圧Vipgmを低下させて対応するものである。また、補正1回目では、増加型パルスプログラムISPPサイクルにおけるステップ電圧Vstep1を、初期電圧VstepのままとするVstep1=Vstep。なお、増加型パルスプログラムISPPは、メモリセルのゲートに印加する電圧をステップ状に増加させて書き込みを行う方式であり、NAND型フラッシュメモリ20において、プログラム電圧をループ毎に一定値ずつ増加させて、所望のメモリセルへのデータの書き込みを行うものである。また、補正1回目では、プログラムベリァイ時の非選択ワード線の電圧Vpassを、初期電圧Vpassから0.1V増加させてVpass1Vpass1=Vpass0.1Vとする。これは、フラッシュメモリの酸化膜が劣化することにより、閾値Vtが低下することがあるため、逆に、ベリファイ時における非選択ワード線の電圧Vpassを上昇させて対応するものである。また、プログラムベリァイ時の電圧Vselを、初期電圧Vselから0.1V増加させてVsel1Vsel1=Vsel0.1Vとし、イレース時の電圧Vers1は初期電圧VersのままとするVers1=Vers。なお、この例では、イレース時の電圧Vers1を初期電圧Versのままにしているが、メモリセルがオーバプログラミングされている可能性を考慮して増加させるようにしてもよい。次に、時間tPROG_Majorityが基準時間150μsよりも2回目に短くなった時図5に示すサイクリング回数N3のときに、2回目の動作条件の補正が行われる。この補正2回目では、リード時の非選択ワード線の電圧Vreadを、初期電圧Vreadから0.2V増加させてVread2とするVread2=Vread0.2V。また、プログラム電圧Vipgmを、初期電圧Vipgmから-1.5V減少させてVipgm2Vipgm2=Vipgm-1.5Vとする。また、ISPPサイクルにおけるステップ電圧Vstepを、初期電圧Vstepから0.1V減少させてVstep2Vstep2=Vstep-0.1Vとする。また、補正2回目では、プログラムベリァイ時の非選択ワード線の電圧Vpassを、初期電圧Vpassから0.2V増加させてVpass2Vpass2=Vpass0.2Vとする。また、プログラムベリァイ時の電圧Vselを、初期電圧Vselから0.1V増加させてVsel2Vsel2=Vsel0.1Vとする。なお、イレース時の電圧Vers2は初期電圧VersのままとするVers2=Vers。同様にして、コントローラ10では、時間tPROG_Majorityが判定基準値を下回ったことを検出するごとに、3回目、4回目、、と順番に補正を繰り返す。上述のように、本実施形態のNAND型フラッシュメモリ20を使用する不揮発性半導体記憶装置1は、フラッシュメモリ20からフラグF_Majorityが出力される時間tPROG_Majorityをモニタし、時間tPROG_Majorityが判定基準値を下回った場合、コントローラ10では、そのブロックアドレスと、当該ブロックにおいてtPROG_Majorityが判定基準値を下回った回数補正回数とをブロックアドレス記憶部12に記憶する初回目ならば1、2回目ならば2、3回目ならば3、。そして、コントローラ10は、ブロックアドレス記憶部12にブロックアドレスが記憶されているブロックにアクセスしようとする場合は、ブロックアドレス記憶部12に記憶されている当該ブロックの補正回数を基に条件テーブル11を参照し、この補正回数に対応する動作条件を読み出し、その読み出した動作条件をまずNAND型フラッシュメモリ20に対して設定し、その後に、所望の動作リード/プログラム/イレースを行う。なお、図6に示す条件テーブルにおける設定値は、例えば、実験データにより決定することができる。また、図6に示す条件テーブルは、一例を示すものであって、不揮発性半導体記憶装置の種類や構成に応じて、その設定条件は、変更される得るものである。また、あるブロックにおける補正回数が増大特性劣化が進行した場合は、当該ブロックを使用しないようにすることができる。これにより、フラッシュメモリ20の寿命を延ばすとともに、フラッシュメモリ20における信頼性の向上を図ることができる。また、図7は、上述した不揮発性半導体記憶装置1における概略の動作の流れをフローチャートで示したものである。図7Aは、フラッシュメモリ20におけるプログラム動作時の処理の流れを示し、図7Bは、プログラム動作時におけるコントローラ10の処理の流れを示している。最初に、図7Aに示すフローチャートを参照して、フラッシュメモリ20における動作の流れについて説明する。最初に、フラッシュメモリ20においては、動作条件が初期状態に設定されているものとするステップS101。そして、フラッシュメモリ20は、コントローラ10から、メモリセルアレイ21内のあるブロックへのプログラム実行指令を受信した場合にステップS102、このプログラム実行指令とともに動作条件変更設定コマンドCMDを受信したか否かを判定するステップS103。フラッシュメモリ20は、ステップS103において動作条件変更設定コマンドCMDを受信しなかったと判定した場合ステップS103:Noは、ステップS105に移行し、メモリセルアレイ21に対する動作条件を変更することなく、プログラム対象となるブロックに対してプログラムを実行するステップS105。一方、フラッシュメモリ20は、ステップS103において動作条件変更設定コマンドCMDを受信したと判定した場合ステップS103:Yesに、動作条件変更設定コマンドCMDに含まれる動作条件のデータを基に、動作条件変更設定部32によりメモリセルアレイ21に対する動作条件を変更するステップS104。その後、メモリセルアレイ21は、ステップS105に移行し、メモリセルアレイ21に対する動作条件を変更した状態において、当該ブロックに対してプログラムを実行するステップS105。続いて、フラッシュメモリ20では、ISPPの各サイクルのプログラムベリファイの際に、フェイルビットカウンタ37およびプログラムビット比計算部36によりNレシオプログラムビット比を演算算出しステップS106、このNレシオが所定の比率Rn:例えば、70を超えたか否かを判定するステップS107。フラッシュメモリ20は、Nレシオが所定の比率Rnを超えていないステップS107で判定された場合ステップS107:Noに、ステップS109に移行し、対象となるブロックへのプログラムが完了したか否かを判定するステップS109。一方、フラッシュメモリ20は、ステップS107においてNレシオが所定の比率Rnを超えたと判定された場合ステップS107:Yesに、すでにフラグF_Majorityをコントローラ10に送信済みか否かを判定するステップS108。そして、フラッシュメモリ20は、ステップS108においてフラグF_Majorityを送信済みと判定された場合ステップS108:Yesに、ステップS110に移行して、プログラムが完了したか否かを判定する。また、フラッシュメモリ20は、ステップS108においてフラグF_Majorityを送信済みでないと判定された場合ステップS108:Noに、コントローラ10に対して、フラグF_Majorityを送信しステップS109、その後、ステップS110に移行する。ステップS110ではプログラム対象となるブロックへのプログラムが完了したか否かが判定され、フラッシュメモリ20は、ステップS110においてブロックへのプログラムが完了したと判定された場合ステップS110:Yesに、ステップS111に移行してプログラム動作を終了する。一方、フラッシュメモリ20は、ステップS110においてブロックへのプログラムが完了していないと判定された場合ステップS110:Noに、ステップS105に移行しプログラム動作を継続する。次に、図7Bを参照して、プログラム動作時におけるコントローラ10の処理の流れについて説明する。図7Bに示すフローチャートを参照して、フラッシュメモリ20内のプログラム対象となるブロックへのプログラムが開始されるとステップS201、コントローラ10では、条件テーブル11と、ブロックアドレス記憶部12とを参照しステップS202、当該ブロックに対するフラッシュメモリ20の動作条件を変更するか否かを判定するステップS203。このステップS203の判定において、コントローラ10は、プログラム対象となるブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合に、このブロックに対してフラッシュメモリ20の動作条件を変更すると判定するとともに、このブロックにおける補正回数を読み出し、この補正回数に応じた動作条件を条件テーブル11から抽出する。そして、コントローラ10は、ステップS203においてフラッシュメモリ20の動作条件を変更すると判定された場合ステップS203:Yesに、フラッシュメモリ20に対して、プログラム実行指令を送信するとともにステップS204、動作条件変更設定コマンドCMDを送信するステップS205。一方、コントローラ10は、ステップS203においてフラッシュメモリ20の動作条件を変更しないとステップS203で判定された場合ステップS203:Noに、フラッシュメモリ20に対して、プログラム実行指令のみを送信するステップS206。そして、フラッシュメモリ20においてプログラム動作が開始されると、コントローラ10は、フラッシュメモリ20から出力されるフラグF_MajorityをモニタしステップS207、フラッシュメモリ20からフラグF_Majorityを受信したか否かを判定するステップS208。コントローラ10は、このフラグF_Majorityのモニタを、フラッシュメモリ20におけるプログラム実行の期間中、継続して実行する。コントローラ10は、ステップS208においてフラッシュメモリ20からフラグF_Majorityを受信したと判定された場合ステップS208:Yesに、ステップS209に移行する。そして、コントローラ10は、プログラムを開始してからフラグF_Majorityを受信するまでの時間tPROG_Majorityを判定算出するステップS209。その後、ステップS210に移行し、コントローラ10は、時間tPROG_Majorityが所定の判定基準時間Rtimeより短いか否かを判定するステップS210。コントローラ10は、ステップS210において時間tPROG_Majorityが、所定の判定基準時間Rtimeよりも長いと判定された場合ステップS210:Noに、ステップS214に移行して処理を終了する。一方、コントローラ10は、ステップS210において、時間tPROG_Majorityが所定の判定基準時間Rtimeよりも短いと判定された場合ステップS210:Yesに、当該ブロックのブロックアドレスをブロックアドレス記憶部12に記憶するとともにステップS211、当該ブロックアドレスに対応する補正回数をインクリメント補正回数=補正回数1してブロックアドレス記憶部12に記憶するステップS212。これにより、コントローラ10は、当該ブロックに対して、補正回数に応じたフラッシュメモリ20の動作条件を設定しステップS213、その後、ステップS214に移行して処理を終了する。以上、説明したように、コントローラ10は、NN=1~100の任意の数のプログラムすべきセルがログラムベリファイをパスしたときに出力されるフラグF_Majorityをモニタして時間tPROG_Majorityを判定する。また、コントローラ10は、時間tPROG_Majorityの判定基準値と、時間tPROG_Majorityが判定基準値を下回った回数補正回数に応じてフラッシュメモリ20に適用されるべき動作条件を条件テーブル11に保持する。そして、不揮発性半導体記憶装置1では、プログラム対象となるブロックにおいて、時間tPROG_Majorityが判定基準値を下回った場合は、このブロックのブロックアドレスを、このブロックにおいて判定基準値を下回った回数補正回数とともにブロックアドレス記憶部12に記憶しておき、このブロックに次にアクセスする際には、条件テーブル11を参照し、補正回数に応じた新しい動作条件を適用するようにフラッシュメモリ20に要求する。このように、上記不揮発性半導体記憶装置1においては、NAND型フラッシュメモリ20上での個々のブロックのサイクリング回数を記憶しておく必要がないのでレジスタ領域が少なくてすむ。また、個々のブロックごとに特性の劣化状態の管理可能なので、平均のサイクリング回数を利用してNAND型フラッシュメモリ20の動作条件を変更する場合に比べて、NAND型フラッシュメモリの全体の特性劣化を招くことがなく、NAND型フラッシュメモリ20の信頼性の向上を図ることができる。[第2の実施形態]第2の実施形態では、不揮発性半導体記憶装置に、プログラム時間をモニタするために、各ブロックごとにオール0全てのデータがゼロの書き込み専用領域を設ける。そして、NAND型フラッシュメモリを使用する不揮発性半導体記憶装置は、プログラム対象となるブロックの書き込み専用領域のNN=1~100の任意の数のメモリセルがプログラムベリファイをパスしたときに出力されるグラグF_MajorityNパス情報をモニタし、Nパス時間tPROG_Majority_Majority書き込み専用領域におけるプログラム開始からフラグF_Majorityが出力されるまでの時間を判定計測する。また、不揮発性半導体記憶装置は、Nパス時時間tPROG_Majority単に時間tPROG_Majorityとも呼ぶの判定基準値と、時間tPROG_Majorityが判定基準値を下回ったときに、次にNAND型フラッシュメモリに適用されるべき動作条件を保持する。[不揮発性半導体記憶装置の構成]図8は、第2の実施形態に係わる不揮発性半導体記憶装置1Aの構成を示す図である。なお、図8において、図1と同一の部分については同一の符号を付し、その説明を省略する。不揮発性半導体記憶装置1Aは、メモリセルがアレイ状に配列されたNAND型フラッシュメモリ20Aと、このNAND型フラッシュメモリ20Aを制御するコントローラ10と、を有して構成される。このNAND型フラッシュメモリ20Aは、後述するように複数のメモリセルがアレイ状に配列されたメモリセルアレイ21と、オール0の書き込み専用領域21Aを有している。図9は、NAND型フラッシュメモリ20Aの構成を示す図であり、本発明に関係する部分を示したものである。なお、図9において、図2と同一の部分については同一の符号を付し、その説明を省略する。NAND型フラッシュメモリ20Aは、メモリセルアレイ21と、このメモリセルアレイ21内の書き込み専用領域21Aと、ページバッファデコーダ22Aを備えるページバッファ22と、ロウデコーダ23とを有する。また、NAND型フラッシュメモリ20は、このNAND型フラッシュメモリ20の全体の動作を統括して制御するメモリ制御回路31と、動作条件変更設定部32と、出力データバッファ33と、入力データバッファ34と、プログラムビット比計算部36Aと、フェイルビットカウンタ37Aと、動作電圧コントローラ38と、を有している。メモリセルアレイ21上には、書き込み専用領域21Aが設けられている。この書き込み専用領域21Aは、図上では、一箇所に集合した状態で示されているが、実際にはプログラム単位例えば、データの書き込み単位となる各ブロック内に、オール0のデータの書き込み専用領域として設けられるものである。この書き込み専用領域21Aにデータの書き込みおよび消去を行うことにより、各ブロックにおける特性劣化をモニタするものである。なお、この書き込み専用領域21Aにオール0のデータの書き込みを行うことにより、各ブロックにおける特性劣化を最悪条件により判定することができる。フェイルビットカウンタ37Aは、ベリファイ読み出し時において、書き込み専用領域21Aにおいてフェイルセルと判定されたメモリセルのビット数フェイルセル数とも呼ぶをカウントし、このフェイルセル数Fbの情報をプログラムビット比計算部36Aに出力する。プログラムビット比計算部36Aは、書き込み専用領域21Aにおいてオール0を書き込んだビット数Pb予め設定されたビット数の情報と、フェイルビットカウンタ37Aから入力したフェイルセル数Fbと、を基に、プログラムビット比を算出する。そして、プログラムビット比計算部36Aは、プログラムビット比プログラムベリファイをパスしたメモリセルの割合が、所定の割合例えば、70を超えたときにフラフF_Majorityのコントローラ10に向けて出力する。NAND型フラッシュメモリ20Aは、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていくプログラムしやすくなる。しかし、NAND型フラッシュメモリ20Aでは複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い時間が長いビットが存在し、合計したプログラム時間tPROGとしては現れにくい。そこで、速度が遅いプログラム時間が長いビットにより大方のプログラム時間の変化がわからなくなるのを防ぐため、NAND型フラッシュメモリ20Aに、オール0の書き込み専用領域21Aを設けている。NAND型フラッシュメモリ20Aは、この書き込み専用領域21Aにおけるプログラムフェイルビット数をカウントし、書き込み専用領域21AのNN=1~100の任意の数のメモリセルがプログラムベリファイをパスしたときにフラグF_Majorityを外部に出力する機能を設ける。また、NAND型フラッシュメモリ20Aに、外部からの要求に応じて動作条件を変更することのできる機能を設ける。そして、不揮発性半導体記憶装置1Aは、図4~図6を用いて説明した不揮発性半導体記憶装置1と同様に、プログラム対象となる書き込み専用領域21Aにおける時間tPROG_Majorityをモニタし、時間tPROG_Majorityが判定基準値を下回った場合、そのブロックアドレスと、当該ブロックにおいて時間tPROG_Majorityが判定基準値を下回った回数補正回数と、ブロックアドレス記憶部12に記憶する初回目ならば1、2回目ならば2、3回目ならば3、。そして、コントローラ10は、ブロックアドレス記憶部12にブロックアドレスが記憶されているブロックにアクセスしようとする場合は、ブロックアドレス記憶部12に記憶されている当該ブロックの補正回数を基に条件テーブル11を参照し、この補正回数に対応する動作条件を読み出し、その読み出した動作条件をまずNAND型フラッシュメモリ20Aに対して設定し、その後に、所望の動作リード/プログラム/イレースを行う。なお、図7Aにおいて示したフラッシュメモリ20におけるプログラム動作時の処理流れは、フラッシュメモリ20Aにおけるプログラム動作時の処理流れにも当てはまる。ただし、ステップS106における演算処理は、フラッシュメモリ20Aでは、フェイルビットカウンタ37Aおよびプログラムビット比計算部36Aが行なう。コントローラ10は、書き込み専用領域21A内のNN=1~100の任意の数のプログラムすべきセルがログラムベリファイをパスしたときに出力されるフラグF_Majorityをモニタして時間tPROG_Majorityを判定する。また、コントローラ10は、時間tPROG_Majorityの判定基準値と、時間tPROG_Majorityが判定基準値を下回った回数補正回数に応じてフラッシュメモリ20Aに適用されるべき動作条件を条件テーブル11に保持する。そして、不揮発性半導体記憶装置1Aでは、プログラム対象となるブロックにおいて、時間tPROG_Majorityが判定基準値を下回った場合は、このブロックのブロックアドレスを、このブロックにおいて判定基準値を下回った回数補正回数とともにブロックアドレス記憶部12に記憶しておき、このブロックに次にアクセスする際には、条件テーブル11を参照し、補正回数に応じた新しい動作条件を適用するようにフラッシュメモリ20Aに要求する。このように、上記不揮発性半導体記憶装置1Aにおいては、NAND型フラッシュメモリ20A上での個々のブロックのサイクリング回数を記憶しておく必要がないのでレジスタ領域が少なくてすむ。また、個々のブロックごとに特性の劣化状態の管理可能なので、平均のサイクリング回数を利用してNAND型フラッシュメモリ20Aの動作条件を変更する場合に比べて、NAND型フラッシュメモリの全体の特性劣化を招くことがなく、NAND型フラッシュメモリ20Aの信頼性の向上を図ることができる。なおここで、本発明と上記実施形態の対応について補足して説明しておく。上記実施形態において、本発明における不揮発性半導体記憶装置は、図1に示す不揮発性半導体記憶装置1が対応し、本発明におけるフラッシュメモリは、NAND型フラッシュメモリ本明細書では、単にフラッシュメモリとも呼ぶ20が対応する。また、本発明における制御部は、図1に示すコントローラ10が対応し、本発明における条件テーブルは、条件テーブル11が対応する。また、本発明におけるブロックアドレス記憶部は、ブロックアドレス記憶部12が対応し、本発明におけるNパス時間判定部は、Nパス時間tPROG_Majority判定部13が対応する。また、本発明におけるNパス情報は、フラッシュメモリ20から出力されるフラグF_Majorityが対応し、本発明における第1時間は、時間tPROG_Majorityが対応し、本発明における第2時間は、判定基準値が対応する。1そして、上記実施形態において、不揮発性半導体記憶装置1は、フラッシュメモリ20内のブロックに対してプログラムを行う際に、このブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間tPROG_Majorityを計測する機能と、第1時間tPROG_Majorityと所定の判定基準値である第2時間とを比較する機能と、上記ブロックにおいて第1時間tPROG_Majorityが第2時間を下回った場合は、当該ブロックに次回からアクセスする際には、フラッシュメモリ20の動作条件を所定の動作条件に変更してアクセスする機能と、を備える。このような構成の不揮発性半導体記憶装置1では、プログラム対象となるブロックにおいてプログラムされるべきメモリセルのNN=1~100の任意の数のメモリセルがプログラムベリファイをパスする第1時間tPROG_Majorityを判定計測し、この時間tPROG_Majorityが判定基準値を下回ったときに、当該ブロックのブロックアドレスを記憶しておき、次にそのブロックにアクセスする際には、そのブロックに対してのみフラッシュメモリ20の動作条件を変更する。これにより、フラッシュメモリ内の個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。また、メモリセルが劣化していないブロックに対しては通常の動作条件を設定できる。さらには、劣化の程度が大きい劣化が進んだブロックを使用しないようにすることもできる。このため、フラッシュメモリの全体の特性劣化を招くことがなく、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。2また、上記実施形態において、不揮発性半導体記憶装置1は、メモリセルがアレイ状に配列されたメモリ領域を有するフラッシュメモリ20とフラッシュメモリ20の動作を制御する制御部コントローラ10とを有し、フラッシュメモリ20は、プログラム対象となるブロック内のプログラムすべきメモリセルのうちの予め設定したNN=1~100の任意の数のメモリセルがプログラムベリファイをパスしたときに、このNのメモリセルがプログラムベリファイをパスしたことを示すNパス情報フラグF_Majorityを外部コントローラ10に出力する機能と、外部コントローラ10からの要求に応じて当該フラッシュメモリ20における動作条件を変更する機能と、を備え、制御部コントローラ10は、フラッシュメモリ20から出力されるNパス情報フラグF_Majorityをモニタすることにより、プログラム対象となるブロックにおけるプログラムの開始からNのメモリセルがプログラムベリファイをパスするまでに要した第1時間tPROG_Majorityを判定する機能と、第1時間tPROG_Majorityと第2時間とを比較する機能と、プログラム対象となるブロックにおいて第1時間tPROG_Majorityが第2時間を下回った場合に、当該ブロックのブロックアドレスを記憶するとともに、次回より当該ブロックにアクセスする際には、フラッシュメモリ20の動作条件を所定の動作条件に変更するようにフラッシュメモリ20に要求する機能と、を備える。このような構成の不揮発性半導体記憶装置1では、フラッシュメモリ20は、プログラム対象となるブロック内のメモリセルの総数に対してNN=1~100の任意の数のメモリセルがプログラムされたときに外部コントローラ10にNパス情報フラグF_Majorityを出力する。また、フラッシュメモリ20は、外部コントローラ10からの要求に応じて動作条件を変更することができる。制御部コントローラ10では、フラッシュメモリ20から出力されるNパス情報フラグF_Majorityをモニタして、第1時間tPROG_Majorityプログラム開始からフラグF_Majorityが出力されるまでの時間を判定する。そして、制御部コントローラ10は、時間tPROG_Majorityが第2時間判定基準値を下回ったとき、そのブロックアドレス及びそのブロックに次回から適用すべき動作条件を記憶し、次回よりそのブロックアドレスにアクセスするときには新しい動作条件を適用するようにフラッシュメモリ20に要求する。上記動作条件とは、例えばプログラム/プログラムベリファイ/リード/イレースProgaram/ProgarmVerify/Read/Eraseの際の動作条件である。これにより、フラッシュメモリにおける個々のブロックのサイクリング回数を記憶することなく、個々のブロックごとにメモリセルの特性の劣化を検出し、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。3また、上記実施形態において、制御部コントローラ10は、フラッシュメモリ20内の1つのブロックに対してプログラムを行う際に第1時間tPROG_Majorityが第2時間判定基準値を下回る毎に、当該ブロックに次にアクセスする際、フラッシュメモリ20に対して異なる動作条件を設定する。このような構成の不揮発性半導体記憶装置1では、ある1のブロックに対してフラッシュメモリ20の動作条件を第1動作条件に変更した後に、当該1のブロックにおいて再び第1時間tPROG_Majorityが第2時間判定基準値を下回るようになった場合は、当該1のブロックに対するフラッシュメモリ20の動作条件を次の第2動作条件に変更する。以降、当該1のブロックにおいて第1時間tPROG_Majorityが第2時間を下回るごとに、この下回った回数に応じて予め設定記憶された動作条件をフラッシュメモリ20に対して設定する。これにより、あるブロックにおいて、メモリセルの特性劣化が進行する場合には、このブロックに対して、メモリセルの特性劣化の状態に応じた動作条件を設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。4また、上記実施形態において、不揮発性半導体記憶装置1は、プログラム対象となるブロックにおけるプログラム開始からNパス情報フラグF_Majorityが出力されるまでの第1時間tPROG_Majorityを判定するとともに、この第1時間tPROG_Majorityと第2時間とを比較するNパス時間判定部13と、プログラム対象となるブロックにおいて第1時間tPROG_Majorityが第2時間を下回った場合に、当該ブロックのブロックアドレスと、当該ブロックにおいて第1時間tPROG_Majorityが第2時間を下回った回数である補正回数と、を対応付けて記憶するブロックアドレス記憶部12と、補正回数と、この補正回数に応じてフラッシュメモリ20に対して適用されるべき動作条件と、を対応付け保持する条件テーブル11と、を備え、制御部コントローラ10は、フラッシュメモリ20内のブロックに対してアクセスを開始する前に、ブロックアドレス記憶部12と条件テーブル11とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を条件テーブル11から抽出し、この抽出した動作条件をフラッシュメモリ20に対して設定した後に、当該ブロックに対してアクセスを開始する。このような構成の不揮発性半導体記憶装置1では、Nパス時間判定部13により、プログラム対象となるブロックにおけるプログラム開始からNパス情報フラグF_Majorityが出力されるまでの第1時間tPROG_Majorityを判定するとともに、該第1時間tPROG_Majorityと第2時間判定基準値とを比較する。また、第1時間tPROG_Majorityが第2時間を下回ったブロックについては、当該ブロックのブロックアドレスを、当該ブロックにおいて第1時間tPROG_Majorityが第2時間を下回った回数補正回数とともにブロックアドレス記憶部12に記憶する。また補正回数と、この補正回数に応じてフラッシュメモリ20に対して適用されるべき動作条件と、を対応付けて条件テーブル11に保持する。そして、制御部コントローラ10は、フラッシュメモリ20内のブロックにアクセスを開始する前に、ブロックアドレス記憶部12と条件テーブル11とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を条件テーブル11から抽出し、この抽出した動作条件をフラッシュメモリ20に対して設定した後に、当該ブロックに対してアクセスを開始する。これにより、あるブロックにおいてメモリセルの特性が劣化した場合は、このブロックのブロックアドレスを保持記憶するとともに、このブロック内のメモリセルの特性劣化に応じた動作条件をフラッシュメモリ20に対して設定することができる。5また、上記実施形態において、アクセスする際に変更する動作条件は、フラッシュメモリ20のブロックに対してプログラム、プログラムベリファイ、リード、イレースのいずれか、または全部の処理を行う際の動作条件であるこれにより、あるブロックにおいて、メモリセルの特性が劣化した場合には、このメモリセルの劣化状態に応じて、プログラム時、プログラムベリファイ時、リード時、およびイレース時の動作条件例えば、プログラム電圧、リード電圧、ベリファイ電圧等の電圧条件等を適切に設定することができる。6また、本発明における書き込み専用領域は、書き込み専用領域21Aが対応する。不揮発性半導体記憶装置1Aでは、ブロックに対してプログラムを行なう際に、所定の同一データを書き込むための書き込み専用領域21Aをブロック内に設け、第1時間を判定する機能として、ブロックへのプログラム開始から書き込み専用領域21A内のメモリセルのうちの所定の割合のメモリセルのプログラムが完了するまでの時間を第1時間として判定する。7また、上記実施形態において、書き込み専用領域21Aに書き込まれるデータは、フラッシュメモリのメモリセルのフローティングゲートに電荷を注入して書き込まれるデータである。これにより、あるブロックにおけるメモリセルの劣化を判定する場合に、書き込み専用領域21A内のメモリセルに最もストレス負担を与えるデータを書き込むことができる。このため、ブロック内のメモリセルの劣化状態を最悪条件で評価することができる。以上、本発明の実施の形態について説明したが、本発明の不揮発性半導体記憶装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、上述した実施形態では、フラッシュメモリがNAND型フラッシュメモリの例を示したが、フラッシュメモリは、NOR型のフラッシュメモリであってもよい。また、本発明は、上述した不揮発性半導体記憶装置に限らず、フラッシュメモリを内蔵する種々のシステムに効果的に適用できるものである。"