"不揮発性の記憶領域にデータを記憶するメモリ部と、前記記憶領域に保持されているデータの状態を検査するためのデータ保持マージン検査用データを生成するメモリ制御回路とを具備し、前記メモリ制御回路は、通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で、前記記憶領域から連続的に読みだされた前記データに基づいて誤り検出用コードを生成する演算器と、生成された前記誤り検出用コードを保持する誤り検出用コード記憶回路と、前記誤り検出用コードと、予め生成された比較用データとを比較する比較回路とを具備し、前記比較回路は、前記通常のデータ読み出し電圧に基づいて供給される前記比較用データと、前記誤り検出用コード記憶回路に保持された前記誤り検出用コードとを比較した比較結果を、前記データ保持マージン検査用データとして出力する不揮発性半導体記憶装置。請求項1に記載の不揮発性半導体記憶装置において、前記メモリ制御部は、前記マージン検査用読み出し電圧を変更することなく前記記憶領域から連続的に前記データを読み出し、前記演算器は、連続的に読みだされた前記データを連続的に演算して前記誤り検出用コードを生成する不揮発性半導体記憶装置。請求項1または2記載の不揮発性半導体記憶装置において、前記メモリ部は、前記比較用データを保持する比較用データ格納領域と、前記比較用データ格納領域と異なる通常データ格納領域とを備え、前記演算器は、前記誤り検出用コードを生成して前記誤り検出用コード記憶回路に格納し、前記比較回路は、前記通常のデータ読み出し電圧で前記比較用データ格納領域から読みだされた前記比較用データと、前記誤り検出用コード記憶回路から読みだされた前記誤り検出用コードとを比較する不揮発性半導体記憶装置。請求項1または2に記載の不揮発性半導体記憶装置において、前記メモリ制御回路は、さらに、前記比較用データを保持する比較用データ記憶回路を備え、前記演算器は、前記通常のデータ読み出し電圧で前記記憶領域から読みだされた前記データに基づいて、前記比較用データを生成して前記比較用データ記憶回路に格納し、前記比較回路は、前記比較用データ記憶回路から読みだされた前記比較用データと、前記誤り検出用コード記憶回路から読みだされた前記誤り検出用コードとを比較する不揮発性半導体記憶装置。請求項4に記載の不揮発性半導体記憶装置において、前記メモリ制御回路は、前記記憶領域の下位アドレスが指定されたとき、前記下位アドレスに対応するデータの保持マージン検査を実行するための下位アドレスデータ保持マージン検査用データを生成する下位アドレスデータ保持マージン検証ブロックと、前記制御信号供給ブロックから、前記記憶領域の上位アドレスが指定されたとき、前記上位アドレスに対応するデータの保持マージン検査を実行するための上位アドレスデータ保持マージン検査用データを生成する上位アドレスデータ保持マージン検証ブロックとを備え、前記下位アドレスデータ保持マージン検証ブロックは、前記記憶領域の下位アドレスに対応する領域から、通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で連続的に読みだされた前記データを連続的に演算して下位アドレス側の誤り検出用コードを生成し、前記記憶領域の下位アドレスに対応する領域から、前記通常のデータ読み出し電圧で連続的に読みだされた前記データを連続的に演算して下位アドレス側の比較用データを生成し、前記上位アドレスデータ保持マージン検証ブロックは、前記記憶領域の上位アドレスに対応する領域から、通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で連続的に読みだされた前記データを連続的に演算して上位アドレス側の誤り検出用コードを生成し、前記記憶領域の上位アドレスに対応する領域から、前記通常のデータ読み出し電圧で連続的に読みだされた前記データを連続的に演算して上位アドレス側の比較用データを生成する不揮発性半導体記憶装置。請求項1から5の何れか一項に記載の不揮発性半導体記憶装置において、前記演算器は、供給されるデータに対してCRC演算を実行する不揮発性半導体記憶装置。不揮発性の記憶領域にデータをメモリ部から読み出すデータ読み出しステップと、前記記憶領域に保持されているデータの状態を検査するためのデータ保持マージン検査用データを生成するデータ保持マージン検査用データ生成ステップとを具備し、前記データ保持マージン検査用データ生成ステップは、a通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で、前記記憶領域から連続的に読みだされた前記データに基づいて誤り検出用コードを生成するステップと、b生成された前記誤り検出用コードを、誤り検出用コード記憶回路に書き込むステップと、c前記誤り検出用コードと、予め生成された比較用データとを比較するステップとを備え、前記cステップは、前記通常のデータ読み出し電圧に基づいて供給される前記比較用データと、前記誤り検出用コード記憶回路に保持された前記誤り検出用コードとを比較した比較結果を、前記データ保持マージン検査用データとして出力するステップを含む不揮発性半導体記憶装置の保持マージン検査方法。請求項7に記載の不揮発性半導体記憶装置の保持マージン検査方法において、前記aステップは、前記マージン検査用読み出し電圧を変更することなく前記記憶領域から連続的に前記データを読み出すステップと、連続的に読みだされた前記データを連続的に演算して前記誤り検出用コードを生成するステップとを含む不揮発性半導体記憶装置の保持マージン検査方法。請求項7または8記載の不揮発性半導体記憶装置の保持マージン検査方法において、前記データ読み出しステップは、比較用データ格納領域から前記比較用データを読み出すステップと、前記比較用データ格納領域と異なる通常データ格納領域から前記データを読み出すステップとを含み、前記cステップは、前記通常のデータ読み出し電圧で前記比較用データ格納領域から読みだされた前記比較用データと、前記誤り検出用コード記憶回路から読みだされた前記誤り検出用コードとを比較するステップを含む不揮発性半導体記憶装置の保持マージン検査方法。請求項7または8に記載の不揮発性半導体記憶装置の保持マージン検査方法において、を備え、前記aステップは、前記通常のデータ読み出し電圧で前記記憶領域から読みだされた前記データに基づいて、前記比較用データを生成するステップと、前記比較用データを、メモリ制御回路に設けられた比較用データ記憶回路に書き込むステップとを含み前記cステップは、前記比較用データ記憶回路から読みだされた前記比較用データと、前記誤り検出用コード記憶回路から読みだされた前記誤り検出用コードとを比較するステップを含む不揮発性半導体記憶装置の保持マージン検査方法。請求項10に記載の不揮発性半導体記憶装置の保持マージン検査方法において、前記データ保持マージン検査用データ生成ステップは、さらに、前記記憶領域の下位アドレスが指定されたとき、前記下位アドレスに対応するデータの保持マージン検査を実行するための下位アドレスデータ保持マージン検査用データを生成するステップと、前記記憶領域の上位アドレスが指定されたとき、前記上位アドレスに対応するデータの保持マージン検査を実行するための上位アドレスデータ保持マージン検査用データを生成するステップと、を備え、前記下位アドレスデータ保持マージン検査用データを生成するステップは、前記記憶領域の下位アドレスに対応する領域から、通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で連続的に読みだされた前記データを連続的に演算して下位アドレス側の誤り検出用コードを生成するステップと、前記記憶領域の下位アドレスに対応する領域から、前記通常のデータ読み出し電圧で連続的に読みだされた前記データを連続的に演算して下位アドレス側の比較用データを生成するステップとを含み、前記上上位アドレスデータ保持マージン検査用データを生成するステップは、前記記憶領域の上位アドレスに対応する領域から、通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で連続的に読みだされた前記データを連続的に演算して上位アドレス側の誤り検出用コードを生成するステップと、前記記憶領域の上位アドレスに対応する領域から、前記通常のデータ読み出し電圧で連続的に読みだされた前記データを連続的に演算して上位アドレス側の比較用データを生成するステップとを含む不揮発性半導体記憶装置の保持マージン検査方法。請求項7から11の何れか一項に記載の不揮発性半導体記憶装置の保持マージン検査方法において、前記aステップは、供給されるデータに対してCRC演算を実行するステップを含む不揮発性半導体記憶装置の保持マージン検査方法。不揮発性半導体記憶装置は、例えば、車載向けマイクロコンピュータなどにも搭載されている。そのようなマイクロコンピュータは、不揮発性半導体記憶装置のデータが適切に保持されているか否かの検査を、保持不良が発生する前に実施している。そして、保持不良が発生しそうな場合には、保持不良が発生する前に、そのデータのリフレッシュを実行している。そのようなマイクロコンピュータにおいて、データが適切に保持されているか否かの検査を行っている間は、CPU動作を停止させておく必要がある。しかしながら、長時間の動作の停止は、そのマイクロコンピュータに関連する様々な機能に影響を与えてしまう。したがって、保持不良が発生しそうか否かを検査する時間を短縮することが求められている。例えば、上述の特許文献1に記載の技術では、1アドレス毎にメモリセルのコントロールゲートに異なる電圧を与えてリードしていた。そのため、保持マージンのチェックに費やす時間が長くなってしまっていた。本発明が解決しようとする課題は、フラッシュメモリなどの不揮発性半導体記憶装置を搭載する半導体装置において、データ保持マージンチェックを高速化する技術を提供することにある。以下に、[発明を実施するための形態]で使用される番号を用いて、[課題を解決するための手段]を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。上記の課題を解決するために、不揮発性の記憶領域56にデータを記憶するメモリ部2と、記憶領域5に保持されているデータの状態を検査するためのデータ保持マージン検査用データを生成するメモリ制御回路3とを具備する不揮発性半導体記憶装置1を構成する。メモリ制御回路3は、通常のデータ読み出し電圧よりも高いマージン検査用読み出し電圧で、記憶領域5から連続的に読みだされたデータに基づいて誤り検出用コードCRCコードを生成する演算器22と、生成された誤り検出用コードCRCコードを保持する誤り検出用コード記憶回路24と、誤り検出用コードCRCコードと、予め生成された比較用データCRCコード格納領域のCRCコード、または、ラッチ回路のCRCコードとを比較する比較回路25とを具備する。そして、比較回路25は、通常のデータ読み出し電圧に基づいて供給される比較用データCRCコード格納領域のCRCコード、または、ラッチ回路のCRCコードと、誤り検出用コード記憶回路24に保持された誤り検出用コードCRCコードとを比較した比較結果を、データ保持マージン検査用データとして出力する。その不揮発性半導体記憶装置1において、メモリ制御部は、マージン検査用読み出し電圧を変更することなく記憶領域5から連続的にデータを読み出す。また、演算器22は、連続的に読みだされたデータを連続的に演算して誤り検出用コードCRCコードを生成する。本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、高速に不揮発性半導体記憶装置のデータ保持マージンチェックを行うことができるという効果がある。[第1実施形態]以下、本発明の実施の形態を図面に基づいて説明する。なお、実施の形態を説明するための図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施形態においては、本願発明の不揮発性半導体記憶装置1が、マイクロコンピュータに搭載される場合を例示して、本願発明の不揮発性半導体記憶装置1の構成動作を説明する。図1は、本願発明の第1実施形態の構成を例示するブロック図である。不揮発性半導体記憶装置1は、フラッシュメモリ領域2と、メモリ制御回路3とを備えている。また、不揮発性半導体記憶装置1は、CPU4から供給される命令に応答して、データ保持マージンのチェック動作を実行する。不揮発性半導体記憶装置1のフラッシュメモリ領域2は、通常のデータを格納するデータ格納領域5とCRCコード格納領域6とを備えている。以下の実施形態においては、データ保持マージンのチェックに用いる誤り検出符号の方式としてCRCCyclicRedundancyCheckを採用した場合を例示している。なお、本実施形態の誤り検出符号の方式に制限はなく、例えば、チェックサム方式などであっても良い。データ格納領域5は、マイクロコンピュータが通常の動作を実行するときなどに、CPU4が参照するデータを保持している。CRCコード格納領域6は、データ格納領域5に保持されているデータに対して予めCRC演算を実行した実行結果を保持している。図1に示されているように、不揮発性半導体記憶装置1のメモリ制御回路3は、制御信号供給ブロック7とデータ保持マージン検証ブロック8とを備えている。制御信号供給ブロック7は、CPU4から受け取った命令に応答して、フラッシュメモリ領域2のデータの読み出し、書き込み、および消去を実行するための制御信号を供給する。データ保持マージン検証ブロック8は、CPU4から受け取った命令に応答して、フラッシュメモリ領域2に格納されているデータに基づいて、そのデータ保持マージンのチェック動作を実行する。第1実施形態の制御信号供給ブロック7は、領域選択信号ライン11と、アドレス選択信号ライン12と、ディスチャージモード信号ライン13と、リードモード信号ライン14と、マージンリードモード信号ライン15とを備えている。領域選択信号ライン11は、フラッシュメモリ領域2のデータ格納領域5とCRCコード格納領域6とを選択するための信号領域選択信号を供給する。アドレス選択信号ライン12は、アドレス選択信号を供給する。ディスチャージモード信号ライン13は、フラッシュメモリ領域2をディスチャージモードに移行させるための信号ディスチャージモード信号を供給する。リードモード信号ライン14は、フラッシュメモリ領域2からデータを読み出すときの読み出し電圧を、通常読み出し電圧に設定するための信号リードモード信号を供給する。マージンリードモード信号ライン15は、フラッシュメモリ領域2からデータを読み出すときの読み出し電圧を、通常読み出し電圧よりも高いマージン検査用読み出し電圧マージンリード電圧に設定するための信号マージンリードモード信号を供給する。データ保持マージン検証ブロック8は、リードデータバスライン21と、CRC演算回路22と、セレクタ23と、CRC演算結果格納用ラッチ回路24と、比較回路25と、ラッチイネーブル信号ライン26と、一致信号供給ライン27とを備えている。リードデータバスライン21は、フラッシュメモリ領域2から読みだされたデータをCRC演算回路22または比較回路25に供給する。CRC演算回路22は、フラッシュメモリ領域2のデータ格納領域5から読みだされたデータに対し、CRC演算を実行する。セレクタ23は、ラッチイネーブル信号ライン26を介して供給されるラッチイネーブル信号に応答して、CRC演算回路22の出力を選択的にCRC演算結果格納用ラッチ回路24に供給する。CRC演算結果格納用ラッチ回路24は、CRC演算回路22がCRC演算を実行した実行結果を保持する。比較回路25は、CRC演算結果格納用ラッチ回路24に保持されているデータと、リードデータバスライン21を介して直接的供給されるデータとを比較する。一致信号供給ライン27は、比較回路25の比較結果を、バスインターフェース回路9を介してCPU4に供給する。上述のように第1実施形態の不揮発性半導体記憶装置1に備えられたフラッシュメモリ領域2は、データ格納領域5とCRCコード格納領域6とを備えている。CRCコード格納領域6には、データ格納領域5に格納されているデータから生成されるCRCコードが予め格納されている。また、第1実施形態のメモリ制御回路3には、フラッシュメモリ領域2のデータ格納領域5から読み出した読み出しデータを、CRC演算するCRC演算回路22と、その結果をラッチするCRC演算結果格納用ラッチ回路24と、そのCRC演算結果格納用ラッチ回路24の出力と、フラッシュメモリ領域2のCRCコード格納領域6から読み出した読み出しデータを比較する比較回路25を備えている。図2は、第1実施形態の不揮発性半導体記憶装置1の動作を例示するタイミングチャートである。本実施形態の不揮発性半導体記憶装置1において、領域選択信号がインアクティブレベル例えば、Lowレベルのときに、フラッシュメモリ領域2のデータ格納領域5が選択され、領域選択信号がアクティブレベル例えば、Highレベルのときに、フラッシュメモリ領域2のCRCコード格納領域6が選択されるものとする。また、リードモード信号がアクティブレベル例えば、Highレベルのときに、通常読み出し電圧で、フラッシュメモリ領域2からデータが読みだされるものとする。また、マージンリードモード信号がアクティブレベル例えば、Highレベルのときに、通常読み出し電圧よりも高いマージン検査用読み出し電圧で、フラッシュメモリ領域2からデータが読みだされるものとする。図2を参照すると、ディスチャージモード信号をアクティブレベル例えば、Highレベルにするとともに、リードモード信号をインアクティブレベル例えば、Lowレベルにして、フラッシュメモリ領域2のメモリセルのコントロールゲートのディスチャージを行う。その後、マージンリードモード信号をアクティブレベル例えば、Highレベルにして、フラッシュメモリ領域2のメモリセルのコントロールゲートに通常読み出し電圧よりも高い電圧を与える。その後、アドレス選択信号によって、連続アドレスA0,A1,A2,Anを指定し、メモリセルのコントロールゲートに通常読み出し電圧よりも高い電圧を与えてデータ領域をリードする。このとき、ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各アドレスに対応したデータD0、D1、D2Dnのリードを行う度にCRC演算を行いその結果C0、C1、C2、Cnをラッチする。データ格納領域のリードが完了すると、ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。このとき、ラッチ回路24にはCRC演算結果としてCRCコードCnが格納されている。その後、ディスチャージモード信号をアクティブレベル例えば、Highレベルにするとともに、マージンリードモード信号をインアクティブレベル例えば、Lowレベルにして、フラッシュメモリ領域2のメモリセルのコントロールゲートのディスチャージを行う。その後、リードモード信号をアクティブレベル例えば、Highレベルにしてから、領域選択信号をアクティブレベル例えば、Highレベルにして、フラッシュメモリ領域2のCRCコード格納領域6に格納しているCRCコードを読み出すために、アドレスAxを指定し、アドレスAxに基づいてフラッシュメモリ領域2のメモリセルのコントロールゲートに通常読み出し電圧を印加し、対応するデータDxCRCコードを読み出す。メモリセルのコントロールゲートに通常読み出し電圧を与えて読みだされたCRCコードDxは、比較回路25に供給される。比較回路25は、メモリ制御回路3のCRC演算結果格納用ラッチ回路24がラッチしているCRCコードCnと、通常読み出し電圧を与えて読みだされたCRCコードDxとを比較する。CPU4は、一致信号供給ライン27を介してその比較結果一致信号を受け取り、保持マージンチェックの判定を行う。判定の結果、リフレッシュが必要と判断された場合には、データ格納領域5から読み出したデータを、適切な閾値となるように再度書き込みを行う。図3は、本実施形態の不揮発性半導体記憶装置1における、電荷蓄積状態に対する、コントロールゲート電圧と読み出しデータとの対応を示す図である。本実施形態の不揮発性半導体記憶装置1において、書き込みベリファイ時のコントロールゲート電圧と、通常読み出し時のコントロールゲート電圧との間に、マージンリードのコントロールゲート電圧が設定されている。図3に示されているように、書き込み直後のメモリセルの閾値電圧は、書き込みベリファイ時のコントロールゲート電圧よりも高い。したがって、データを読み出した場合、書き込み状態を示す論理0が読みだされる。一定の時間が経過した場合、メモリセルの閾値電圧は書き込みベリファイ時のコントロールゲート電圧よりも低くなる。この場合であっても、通常読み出し時のゲート電圧は、書き込みベリファイ時のコントロールゲート電圧よりも低く、通常の読み出し時には、書き込み状態を示す論理0が読みだされる。また、閾値電圧がマージン検査用読み出し電圧よりも高い場合、マージン検査用読み出し電圧でデータを読み出した場合にも、書き込み状態を示す論理0が読みだされる。さらに時間が経過した場合などにおいて、保持特性がさらに低下することがある。図3に示されているように、閾値電圧が、通常読み出し時のコントロールゲート電圧よりも高い場合であっても、時間の経過に伴ってマージン検査用読み出し電圧よりも低くなってしまうことがある。この場合、本実施形態の不揮発性半導体記憶装置1は、マージン検査用読み出し電圧でデータを読み出した場合と、通常読み出し電圧でデータを読み出した場合とで、異なる論理のデータが読みだされる。このように、通常読み出し時とマージンリード検査時とで出力されるデータが異なることから、そのメモリセルの保持特性が低下していると判断することができる。したがって、マージン検査用読み出し電圧でデータ格納領域5に格納されているデータを読み出しCRC演算した結果と、通常読み出し電圧でCRCコード格納領域6のデータとを比較することによって、データ格納領域5に配置されているメモリセルの保持特性が低下しているか否かを判断することができる。このとき、本実施形態の不揮発性半導体記憶装置1は、データ保持マージンが下がっていることをCPU4に通知する。CPU4は、その通知に応答してフラッシュメモリ領域2のデータのリフレッシュを実行する。上述の特許文献1に記載の技術では、1アドレス毎にメモリセルのコントロールゲートに異なる電圧を与えてリードしていた。そのため、保持マージンのチェックに係る時間が長くなってしまっていた。また、パリティを用いてデータチェックを行っているため、2ビット以上の誤りを検出することが困難である。本実施形態の不揮発性半導体記憶装置1は、フラッシュメモリ領域2のコントロールゲートに通常読み出し時よりも高い電圧を印加して、データ格納領域5に格納されているデータを連続して読み出してCRC演算を実行している。このCRC演算結果と、コントロールゲートに通常読み出し電圧を与えて読みだされたCRCコードとを比較することによって保持マージンチェックを行なっているので、従来技術のように1アドレス毎にメモリセルのコントロールゲートに与える電圧を変える必要がない。その結果、高速に保持マージチェックを行うことができる。さらに、誤り検出方式としてCRCを使用するため、1ビット以上の誤りも精度よく検出することができる。[第2実施形態]以下に、図面を参照して本願発明の第2実施形態について説明を行う。図4は、第2実施形態の不揮発性半導体記憶装置1の構成を例示するブロック図である。第2実施形態の不揮発性半導体記憶装置1は、フラッシュメモリ領域2のCRCコード格納領域6に保持されていたデータを、データ保持マージンのチェック動作を開始してから生成する機能を備えている。そのデータは、メモリ制御回路3の内部に構成された記憶領域に保持される。図4を参照すると、第2実施形態の不揮発性半導体記憶装置1において、フラッシュメモリ領域2は、第1実施形態のフラッシュメモリ領域2のCRCコード格納領域6に対応する領域を有しない構成となっている。また第2実施形態のメモリ制御回路3の制御信号供給ブロック7は、アドレス選択信号ライン12と、ディスチャージモード信号ライン13と、リードモード信号ライン14と、マージンリードモード信号ライン15とを備えている。第2実施形態の不揮発性半導体記憶装置1は、領域選択信号ライン11による領域の選択を行うことなく、保持マージンのチェックを行う機能を備えている。第2実施形態の不揮発性半導体記憶装置1において、メモリ制御回路3のデータ保持マージン検証ブロック8は、第1実施形態と同様に、リードデータバスライン21と、CRC演算回路22と、比較回路25と、一致信号供給ライン27とを備えている。図4に示されているように、そのデータ保持マージン検証ブロック8は、第1セレクタ31と、第1CRC演算結果格納用ラッチ回路32と、第1ラッチイネーブル信号ライン33と、第2セレクタ34と、第2CRC演算結果格納用ラッチ回路35と、第2ラッチイネーブル信号ライン36とを備えている。リードデータバスライン21は、フラッシュメモリ領域2から読みだされたデータをCRC演算回路22に供給する。CRC演算回路22は、フラッシュメモリ領域2のデータ格納領域5から読みだされたデータに対し、CRC演算を実行する。第1セレクタ31は、第1ラッチイネーブル信号ライン33を介して供給されるラッチイネーブル信号に応答して、CRC演算回路22の出力を第1CRC演算結果格納用ラッチ回路32に供給する。第1CRC演算結果格納用ラッチ回路32は、CRC演算回路22がCRC演算を実行した実行結果を保持する。第2セレクタ34は、第2ラッチイネーブル信号ライン36を介して供給されるラッチイネーブル信号に応答して、第1CRC演算結果格納用ラッチ回路32に保持されているデータを第2CRC演算結果格納用ラッチ回路35に供給する。第2CRC演算結果格納用ラッチ回路35は、第1CRC演算結果格納用ラッチ回路32が保持していたCRC演算を実行した実行結果を保持する。そして、比較回路25は、第1CRC演算結果格納用ラッチ回路32に保持されているデータと、第2CRC演算結果格納用ラッチ回路35に保持されているデータとを比較する。一致信号供給ライン27は、比較回路25の比較結果を、バスインターフェース回路9を介してCPU4に供給する。換言すると、第2実施形態の不揮発性半導体記憶装置1は、CRC演算回路22と、その演算結果をラッチする第1CRC演算結果格納用ラッチ回路32と、第1CRC演算結果格納用ラッチ回路32の出力をCPUからの命令でラッチする第2CRC演算結果格納用ラッチ回路35と、第1CRC演算結果格納用ラッチ回路32の出力と第2CRC演算結果格納用ラッチ回路35の出力を比較するための比較回路25とを備えている。また、第2実施形態のフラッシュメモリ領域2には、第1実施形態のフラッシュメモリ領域2のようなCRCコード格納領域6が形成されていない。図5は、第2実施形態の不揮発性半導体記憶装置1の動作を例示するタイミングチャートである。第2実施形態の不揮発性半導体記憶装置1は、第1実施形態と同様に、リードモード信号がアクティブレベル例えば、Highレベルのときに、通常読み出し電圧で、フラッシュメモリ領域2からデータが読みだされるものとする。また、マージンリードモード信号がアクティブレベル例えば、Highレベルのときに、通常読み出し電圧よりも高いマージン検査用読み出し電圧で、フラッシュメモリ領域2からデータが読みだされるものとする。図5を参照すると、ディスチャージモード信号をアクティブレベル例えば、Highレベルにするとともに、リードモード信号をインアクティブレベル例えば、Lowレベルにして、フラッシュメモリ領域2のメモリセルのコントロールゲートのディスチャージを行う。その後、マージンリードモード信号をアクティブレベル例えば、Highレベルにして、フラッシュメモリ領域2のメモリセルのコントロールゲートに通常の読み出し電圧よりも高い電圧マージン検査用読み出し電圧を与える。アドレス選択信号によって、連続アドレスA0,A1,A2,Anを指定し、メモリセルのコントロールゲートに通常読み出し電圧よりも高い電圧を与えてデータ領域をリードする。このとき、第1ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各アドレスに対応したデータD0、D1、D2Dnのリードを行う度にCRC演算を行いその結果をラッチする。データ格納領域のリードが完了すると、第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。その後、第2ラッチイネーブル信号をアクティブレベル例えば、Highレベルにして、第1CRC演算結果格納用ラッチ回路32のデータを第2CRC演算結果格納用ラッチ回路35に供給する。このとき、第2CRC演算結果格納用ラッチ回路35にはCRC演算結果としてCRCコードCnが格納されている。その後、ディスチャージモード信号をアクティブレベル例えば、Highレベルにするとともに、マージンリードモード信号をインアクティブレベル例えば、Lowレベルにして、フラッシュメモリ領域2のメモリセルのコントロールゲートのディスチャージを行う。その後、リードモード信号をアクティブレベル例えば、Highレベルにしてから、アドレス選択信号によって、連続アドレスA0,A1,A2,Anを指定し、メモリセルのコントロールゲートに通常読み出し電圧を与えてデータ領域をリードする。このとき、再度第1ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各アドレスに対応したデータD0、D1、D2Dnのリードを行う度にCRC演算を行いその結果を第1CRC演算結果格納用ラッチ回路32にラッチする。データ格納領域のリードが完了すると、第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。全領域のリードが終了し、再度第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルになったとき、第1CRC演算結果格納用ラッチ回路32の出力CRCコードCn’と第2CRC演算結果格納用ラッチ回路35の出力CRCコードCnは、比較回路25に供給される。比較回路25は、CRCコードCn’とCRCコードCnを比較する。比較回路25は、比較によって得られた比較結果を、一致信号供給ライン27を介してCPU4に供給する。CPU4は、一致信号供給ライン27を介してその比較結果一致信号を受け取り、保持マージンチェックの判定を行う。第2実施形態の不揮発性半導体記憶装置1において、フラッシュメモリ領域2は、CRCコードを格納する領域CRCコード格納領域6を備える必要がない。そのため、フラッシュマクロの面積が小さい不揮発性半導体記憶装置1を構成することが可能となる。[第3実施形態]以下に、図面を参照して本願発明の第3実施形態について説明を行う。図6は、第3実施形態の不揮発性半導体記憶装置1の構成を例示するブロック図である。第3実施形態の不揮発性半導体記憶装置1は、フラッシュメモリ領域2のデータ格納領域5を部分的に特定して、データ保持マージンのチェック動作を行う機能を備えている。図6を参照すると、第3実施形態のメモリ制御回路3において、データ保持マージン検証ブロック8は、下位アドレス側データ保持マージン検証ブロック8aと上位アドレス側データ保持マージン検証ブロック8bとを備えている。下位アドレス側データ保持マージン検証ブロック8aは、データ格納領域5の下位アドレス側のデータ保持マージンのチェックを行う。また、上位アドレス側データ保持マージン検証ブロック8bは、データ格納領域5の上位アドレス側のデータ保持マージンのチェックを行う。下位アドレス側データ保持マージン検証ブロック8aは、下位アドレス側CRC演算回路22aと、下位アドレス側比較回路25aと、下位アドレス側一致信号供給ライン27aと、下位アドレス側第1セレクタ31aと、下位アドレス側第1CRC演算結果格納用ラッチ回路下位アドレス側第1ラッチ32aと、下位アドレス側第1ラッチイネーブル信号ライン33aと、下位アドレス側第2セレクタ34aと、下位アドレス側第2CRC演算結果格納用ラッチ回路下位アドレス側第2ラッチ35aと、第2ラッチイネーブル信号ライン37を備えている。同様に、上位アドレス側データ保持マージン検証ブロック8bは、上位アドレス側CRC演算回路22bと、上位アドレス側比較回路25bと、上位アドレス側一致信号供給ライン27bと、上位アドレス側第1セレクタ31bと、上位アドレス側第1CRC演算結果格納用ラッチ回路上位アドレス側第1ラッチ32bと、上位アドレス側第1ラッチイネーブル信号ライン33bと、上位アドレス側第2セレクタ34bと、上位アドレス側第2CRC演算結果格納用ラッチ回路上位アドレス側第2ラッチ35bと、第2ラッチイネーブル信号ライン37を備えている。下位アドレス側データ保持マージン検証ブロック8aには、下位アドレスが指定されたときの、その下位アドレスに対応したデータが供給される。下位アドレス側データ保持マージン検証ブロック8aは、供給されるデータに基づいて、上述の第2実施形態のデータ保持マージン検証ブロック8と同様に動作して、比較結果をCPU4に供給する。また、上位アドレス側データ保持マージン検証ブロック8bには、上位アドレスが指定されたときの、その上位アドレスに対応したデータが供給される。上位アドレス側データ保持マージン検証ブロック8bは、供給されるデータに基づいて、上述の第2実施形態のデータ保持マージン検証ブロック8と同様に動作して、比較結果をCPU4に供給する。図7は、第3実施形態の不揮発性半導体記憶装置1の動作を例示するタイミングチャートである。第3実施形態の不揮発性半導体記憶装置1は、第1、2実施形態と同様に、リードモード信号ライン14を介して供給されるリードモード信号がアクティブレベル例えば、Highレベルのときに、通常読み出し電圧で、フラッシュメモリ領域2からデータが読みだされるものとする。また、アドレス選択信号ライン12を介して供給されるマージンリードモード信号がアクティブレベル例えば、Highレベルのときに、通常読み出し電圧よりも高いマージン検査用読み出し電圧で、フラッシュメモリ領域2からデータが読みだされるものとする。なお、以下の第3実施形態の説明においては、本実施形態の理解を容易にするために、マージン検査用読み出し電圧での読み出しを行った後、通常読み出し電圧での読み出しを行う場合を例示する。図7に示されているように、マージンリードモードにおいて、アドレス選択信号によって、下位アドレスを連続で指定して、データ領域をマージン検査用読み出し電圧でリードする。このとき、下位アドレス側第1ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各下位アドレスに対応したデータのリードを行う度にCRC演算を行いその結果をラッチする。下位アドレスのデータ格納領域のリードが完了すると、下位アドレス側第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。このとき、下位アドレス側第1CRC演算結果格納用ラッチ回路32aにはCRC演算結果としてCRCコードC1nが格納されている。次に、アドレス選択信号によって、上位アドレスを連続で指定してデータ領域をリードする。このとき、上位アドレス側第1ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各上位アドレスのリードを行う度にCRC演算を行いその結果をラッチする。このとき、上位アドレス側第1CRC演算結果格納用ラッチ回路32bにはCRC演算結果としてCRCコードC2nが格納されている。上位アドレスのデータ格納領域のリードが完了すると、上位アドレス側第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。その後、第3ラッチイネーブル信号をアクティブレベル例えば、Highレベルにして、下位アドレス側データ保持マージン検証ブロック8aは、下位アドレス側第1CRC演算結果格納用ラッチ回路32aのデータCRCコードC1nを、下位アドレス側第2CRC演算結果格納用ラッチ回路35aに供給する。また、上位アドレス側データ保持マージン検証ブロック8bは、上位アドレス側第1CRC演算結果格納用ラッチ回路32bのデータCRCコードC2nを、上位アドレス側第2CRC演算結果格納用ラッチ回路35bに供給する。次に、リードモードにおいて、アドレス選択信号によって、下位アドレスを連続で指定してデータ領域を、通常読み出し電圧でリードする。このとき、下位アドレス側第1ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各下位アドレスのリードを行う度にCRC演算を行いその結果をラッチする。このとき、下位アドレス側第1CRC演算結果格納用ラッチ回路32aには、CRC演算結果としてCRCコードC1n’が格納されている。下位アドレスのデータ格納領域のリードが完了すると、下位アドレス側第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。次に、アドレス選択信号によって、上位アドレスを連続で指定してデータ領域をリードする。このとき、上位アドレス側第1ラッチイネーブル信号をアクティブレベル例えば、Highレベルにし、各上位アドレスのリードを行う度にCRC演算を行いその結果をラッチする。このとき、上位アドレス側第1CRC演算結果格納用ラッチ回路32bにはCRC演算結果としてCRCコードC2n’が格納されている。上位アドレスのデータ格納領域のリードが完了すると、上位アドレス側第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルにする。全領域のリードが終了し、再度第1ラッチイネーブル信号をインアクティブレベル例えば、Lowレベルになったとき、下位アドレス側比較回路25aは、下位アドレス側第1CRC演算結果格納用ラッチ回路32aの出力CRCコードC1n’と下位アドレス側第2CRC演算結果格納用ラッチ回路35aの出力CRCコードC1nとを比較する。下位アドレス側比較回路25aは、比較結果一致信号をCPU4に供給する。このとき同様に、上位アドレス側比較回路25bは、上位アドレス側第1CRC演算結果格納用ラッチ回路32bの出力CRCコードC2n’と上位アドレス側第2CRC演算結果格納用ラッチ回路35bの出力CRCコードC2nとを比較する。上位アドレス側比較回路25bは、比較結果一致信号をCPU4に供給する。CPU4は、一致信号供給ライン27a、27bを介してその比較結果一致信号を受け取り、保持マージンチェックの判定を行う。第3実施形態の不揮発性半導体記憶装置1は、下位アドレス側データ保持マージン検証ブロック8aと上位アドレス側データ保持マージン検証ブロック8bとを備え、それらをアドレスのブロックを示す信号で制御することで、上位/下位アドレス用の一致信号下位アドレス側比較回路25a、上位アドレス側比較回路25bの出力を生成している。第3実施形態の不揮発性半導体記憶装置1は、データの不一致が発生しているブロックを特定し、そのブロックを選択的にリフレッシュすることが可能となる。これによって、リフレッシュの時間を短縮することができるようになる。なお、上述の複数の実施形態において、その動作を自動で行うシーケンサをフラッシュ制御マクロに搭載することで、CPUは保持マージンチェックの実行中、RAM上のプログラムを実行することができる。さらに、保持マージンチェックが終了したことを示す割り込み信号をCPUに与えることで、CPUは保持マージンチェックの終了を自動で検出することができる。このようなシステムにすることにより、保持マージンチェック中も、チェック対象以外のメモリに格納されたアプリケーションを動作させたいユーザに対応することができる。以上、本願発明の実施の形態を具体的に説明した。本願発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。"