"メモリセルアレイと、外部とデータの入出力を行う入出力部と、前記メモリセルアレイに通常データを書き込むとき、前記入出力部から入力された外部冗長データと、前記入出力部から入力された前記通常データとに基づいて生成された内部冗長データを出力するECC回路とを備えることを特徴とする半導体記憶装置。前記内部冗長データは、前記外部冗長データと、前記通常データに対して生成された標準冗長データとを分離可能に合わせたことを特徴とする請求項1記載の半導体記憶装置。前記ECC回路は、前記通常データを読み出すとき、前記内部冗長データから前記外部冗長データと前記標準冗長データを分離し、前記標準冗長データに基づいて、前記メモリセルアレイの通常データを訂正することを特徴とする請求項2記載の半導体記憶装置。前記内部冗長データは、前記外部冗長データと前記通常データとを合わせた結合データに対して生成されることを特徴とする請求項1記載の半導体記憶装置。前記ECC回路は、前記通常データを読み出すとき、前記内部冗長データに基づいて前記結合データを訂正し、前記結合データを前記外部冗長データと前記通常データとに分離することを特徴とする請求項4記載の半導体記憶装置。実施形態は、外部装置を変更せずに、データを復元可能な半導体記憶装置を提供する。本実施形態の半導体記憶装置によれば、メモリセルアレイと、外部とデータの入出力を行う入出力部と、前記メモリセルアレイに通常データを書き込むとき、前記入出力部から入力された外部冗長データと、前記入出力部から入力された前記通常データとに基づいて生成された内部冗長データを出力するECC回路とを備えることを特徴とする。以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。また、図面の寸法比率は、図示の比率に限定されるものではない。第1の実施形態[半導体記憶装置の構成]本実施形態の半導体記憶装置の全体構成を、図1のブロック図を用いて説明する。図1に示すように、NAND型不揮発性半導体記憶装置100は、メモリセルアレイ10、制御回路11、ロウデコーダ12、電圧発生装置13、ページバッファ14、カラムデコーダ15、コマンドバッファ17a、データ入出力バッファ17b、アドレスバッファ17c、ECC部18を有する。<メモリセルアレイ>次に、メモリセルアレイ10について、図2の回路図を用いて説明する。図2に示すように、メモリセルアレイ10は、複数の不揮発性のメモリセルM0~Mnを含んだブロック図示略を複数個、備える。この複数のブロックそれぞれは、マトリックス状に配置された複数のNANDストリングNSを有する。このNANDストリングNSは、複数の不揮発性のメモリセルM0~Mnなお、メモリセルを総称する場合には、メモリセルMと記載すると、選択トランジスタST1、ST2を含む。図2に示すように、n1個nは0以上の整数のメモリセルM0~Mnは、選択トランジスタST1、ST2間に、その電流経路が直列接続されるようにして配置される。直列接続されたメモリセルMnの一端側のドレイン領域は選択トランジスタST1のソース領域に接続され、メモリセルM0の他端側のソース領域は選択トランジスタST2のドレイン領域に接続されている。また、メモリセルMは、隣接するもの同士でソース、ドレインを共有している。メモリセルMは、2値以上のデータを保持可能とする。このメモリセルMの構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層例えば絶縁膜と、電荷蓄積層上に形成された絶縁膜電荷蓄積層より誘電率の高い絶縁膜と、この絶縁膜上に形成された制御ゲートとを有するMONOS構造である。なお、メモリセルMTの構造は、FG型であってもよい。FG型とは、p型半導体基板上にゲート絶縁膜を介在して形成された浮遊ゲート導電層と、浮遊ゲート上にゲート間絶縁膜を介在して形成された制御ゲートとを含んだ構造である。メモリセルM0~Mnの制御ゲートはワード線WL0~WLnそれぞれに電気的に接続され、ドレインはビット線BLに電気的に接続され、ソースはソース線SLに電気的に接続されている。ビット線BLは、図2の第1の方向NANDストリングNSが延在する方向に延在して配置され、半導体基板図示略上のNANDストリングNSの上方に配置される。一方、ワード線WL0~WLnは、第2の方向第1の方向にに対して直交する方向に延び、且つ、第1の方向に所定の間隔をおいて配置されている。同一行にあるメモリセルMの制御ゲートはワード線WL0~WLnのいずれかに共通接続され、同一行にあるメモリセルMTの選択トランジスタST1、ST2のゲート電極は、それぞれセレクトゲート線SGD、SGSに共通接続されている。選択ゲート線SGS,SGDが、複数のワード線WL0~WLnを挟むように、ワード線WL0とワード線WLnの両端にそれぞれ平行に配置されている。また、メモリセルアレイ10において同一列にある選択トランジスタST1のドレインは、いずれかのビット線BL0~BLjに共通接続される。選択トランジスタST2のソースはソース線SLに共通接続される。また、同一のワード線WLに接続された複数のメモリセルMには一括してデータが書き込まれ、この単位をページと呼ぶ。更に、複数のメモリセルMはブロックBLK単位で一括してデータが消去される。図1に示すように、このメモリセルアレイ10は、通常データを保存可能な第1領域16aと、第2領域16bを有する。ここで、第2領域16bは、制御回路11後述のプログラムデータ、各種トリミングデータ、不良アドレスデータ、パリティ冗長データを保持可能な領域である。<制御回路>制御回路11は、動作モードに応じて供給されるコマンドやデータに基づいて、電圧発生回路13やページバッファ14に内部制御信号を出力し、データの書き込み、データの読み出し及び消去のシーケンスの制御を行うための回路である。<ロウデコーダ>ロウデコーダ12は、アドレスバッファ17cから提供されるロウアドレスをデコードして、複数のワード線WLのうち所定のワード線WLを選択する。ロウアドレスは、選択されたワード線WLの位置情報であり、この選択されたワード線WLに対し後述する電圧発生装置13により出力電圧が供給される。<電圧発生装置>電圧発生装置13は、例えばローカルポンプ回路を含む制御ゲートドライバ回路図示略と、チャージポンプ回路図示略を含む。制御回路11から入力される内部制御信号に基づいて、ローカルポンプ回路やチャージポンプ回路などの昇圧回路を動作する。<ページバッファ>ページバッファ14は、内部に複数のデータラッチとセンスアンプを備えている。ページバッファ14のデータラッチは、メモリセルMに書き込みを行なうための書き込みデータのラッチと、再書き込みデータのラッチを行う。また、センスアンプは、ビット線BLの電位を検知するためのセンス動作、書き込み及び消去後のベリファイ読み出しのためのセンス動作を行う。ここで、複数のデータラッチは、メモリセルアレイ10同様に、第3領域と第4領域を有する。第3領域は通常データを保持可能な領域であり、第4領域はパリティを保持可能な領域であり、例えば、第4領域の容量は16バイトである。<カラムデコーダ>カラムデコーダ15は、アドレスバッファ17cから提供されるカラムアドレスをデコードして、ページバッファ15内の所定のラッチ回路を選択する。<ECC部>ECC部18は、通常データを書き込むとき、この通常データについてパリティの生成を行う機能を有する。また、通常データをメモリセルアレイ10から読み出すとき、ECC部18は、メモリセルアレイ10に保持された通常データに対して、書き込む際に生成したパリティを用いてエラーの検出及び訂正を行う。ECC部18は、ECCバッファ19a、ECCエンジン19bを備える。ECC部18は、データ入出力バッファ17bとページバッファ14とに接続される。ECCバッファ19aは、メモリセルアレイ10同様に、第5領域と第6領域を有する。第5領域は通常データを保持可能な領域であり、第6領域はパリティを保持可能な領域であり、例えば、第6領域の容量は16バイトである。ECCエンジン19bは、例えばECCバッファ19aに保持された通常データに対して、パリティを用いてECC処理を行う。このECCエンジン19aは、例えばハミングコードを用いた1ビット訂正方式を用いる。そして、訂正処理に必要な最小限のパリティデータを使用する。[ECC部18の動作]次に、通常データの書き込み動作又は読み出し動作時において、第1実施形態のECC部18、制御回路11の動作について、図3及び図4を用いて説明する。<書き込み動作時について>まず、通常データの書き込み動作におけるECC部18、制御回路11の動作について、図3を用いて説明する。ここで、説明の便宜上、書き込み動作時には、通常データ例えば512バイトと、外部装置によりこの通常データに対して設定されたパリティ外部冗長データともいうとを1セットとして、複数のセットが順に入力される場合を例に説明する。すなわち、書き込み動作時に、通常データA、パリティA外部装置により通常データAに対して設定されたパリティ、通常データB、パリティB外部装置により通常データBに対して設定されたパリティ、通常データC、...の順序で入力される。なお、書き込み動作時において、通常データとパリティの入力される順序が上記の場合に限られず、例えば、全ての通常データが入力されたのちに、全てのパリティが入力されてもよい。すなわち、通常データA,B,C、...が入力されたのちに、パリティA,B,...が入力されてもよい。この場合には、通常データと対応するパリティの1セットを抽出する工程が必要となる。<<動作フロー>>図3に示すように、ステップS1で、ECCバッファ19aに、データ入出力バッファ17bから通常データAとパリティAを入力されると、ECCバッファ19aは、第5領域に通常データAを保持し、第6領域にパリティAを保持する。このパリティAは16バイト以内の容量であって、例えばaビットを訂正するために必要なパリティとして2バイトとする。ステップS2で、ECCエンジン19bは、ECCバッファ19aに保持された通常データAを用いて、半導体記憶装置内部におけるパリティAA内部冗長データを生成する。このパリティAAは、パリティAとは異なるアルゴリズムで生成されており、例えば、bビットb>aとするを訂正するために必要なパリティとする。ここで、このパリティAAも、パリティAと同様に、16バイト以内の容量であって、例えば9バイトとする。次に、ステップS3で、ECCバッファ19aは、保持していた通常データAとステップS2で生成したパリティAAをページバッファ14に出力する。これにより、通常データAはページバッファ14の第3領域に保持され、パリティAAはページバッファ14の第4領域に保持される。ステップS4で、制御回路11は内部制御信号を用いて電圧発生装置13とページバッファ14を制御し、ステップS3でページバッファ14に保持された通常データAをメモリセルアレイ10内の第1領域に書き込む。また、制御回路11の内部制御信号に基づき、ページバッファ14に保持されたパリティAAを再度ECCバッファ19aに出力する。その結果、ECCバッファ19a内の第6領域にパリティAAが保持される。すなわち、パリティAAは第6領域内で、既に保持されているパリティAとは異なるブロックに保持される。その結果、第6領域にパリティAとパリティAAが保持される。パリティAとパリティAAの合わせた容量も16バイトを超えないため、パリティAとパリティAAを保持できる。ステップS5で、ECC部18は、第6領域に保持されたパリティAとパリティAAを合わせて1つのパリティAAA結合冗長データを生成する。つまり、このパリティAAAのビット列のうち、所望の範囲のビット列はパリティAを示し、残りのビット列はパリティAAを示す。この所望の範囲を示すデータは、予めECC部18内の例えば不揮発性メモリに保持される。なお、これに限定されることなく、所望の範囲を示すデータは、半導体記憶装置内のいずれに保持されていてもよい。例えば、パリティAAAのビット列のうち初めの2バイトは、パリティAであり、残りの9バイトはパリティAAを示す。したがって、パリティAAAの容量は、11バイトとなる。ステップS6で、ECCバッファ19aは、このパリティAAAをページバッファ14に出力する。ステップS7で、制御回路11は内部制御信号を用いて電圧発生装置13とページバッファ14を制御し、メモリセルアレイ10内の第2領域にパリティAAAを書き込む。このステップS1からステップS7までの一連の動作を、通常データBを含む1セット、通常データCを含む1セット、...と入力されるデータが完了するまで繰り返す。<読み出し動作時について>次に、通常データの読み出し動作におけるECC部18、制御回路11の動作について、図4を用いて説明する。説明の便宜上、書き込み動作時に1セットごと、入力されたことを前提として説明する。<<動作フロー>>図4に示すように、ステップS1で、制御回路11は内部制御信号を用いて電圧発生装置13とページバッファ14を制御し、ページバッファ14にメモリセルアレイ10内の通常データAとパリティAAAを、それぞれメモリセルアレイ10の第1領域、第2領域から入力する。これにより、ページバッファ14は、第3領域に通常データAを保持し、第4領域にパリティAAAを保持する。ステップS2で、制御回路11を用いてページバッファ14を制御し、ECCバッファ19aに、通常データAとパリティAAAが入力されると、ECCバッファ19aは、第5領域に通常データを保持される。同様に、ECCバッファ19aは、第6領域にパリティAAAを保持する。そして、ECCエンジン19bは、第6領域に保持されたパリティAAAから、外部冗長データであるパリティAと内部冗長データであるパリティAAに分割する。具体的には、ECCエンジン19bは、ECC部18内に保持された所望の範囲を示すデータパリティAとパリティAAのビット列の境界を示すデータを読み出し、パリティAとパリティAAを分割する。ステップS3で、ECCエンジン19bは、ステップS2で分割したパリティAAを用いて、通常データAに対してエラー検出及び訂正を行う。具体的には、ECCエンジン19bは、パリティAAとなるビット列のみを読み出し、このパリティAAを用いて通常データAに対してエラー検出などを行い、パリティAはECCバッファ19a内に保持したままとする。ステップS4で、ECC部18は、ECC処理済み誤り訂正済みの通常データAと、ECCバッファ19a内のパリティAをデータ入出力バッファ17bに出力する。[第1実施形態の効果]以上より、本実施形態の半導体記憶装置は、外部装置を変更せずに、データを復元可能な半導体記憶装置を提供できる。具体的には、以下のとおりである。外部装置により通常データAに対して設定されたパリティAと半導体記憶装置内で生成されたパリティAAを合わせない比較例を検討する。元々、メモリセルアレイ10の第2領域は、半導体記憶装置の動作で使用する領域であり、外部装置からメモリセルアレイ10内の第2領域を指定してデータを書き込む動作、読み出す動作や消去動作はできない。このため、パリティAを第2領域に保持できない。比較例の半導体記憶装置では、このパリティAを保持できないため、外部装置で通常データAを読み出せない場合がある。また、半導体記憶装置内で生成されたパリティを用いて、外部装置でエラー検出及び訂正はできない。半導体記憶装置内のパリティと外部装置のパリティを生成するアルゴリズムが異なるためである。上記の課題を解消するために、比較例の半導体記憶装置では、外部装置のECC処理動作を行わないなどの特別な動作を行う検討ができる。例えば、半導体記憶装置内のECC部が動作する場合に、外部装置のECC動作を停止するなどを行う。しかしながら、半導体記憶装置内のECC部が動作する場合に、外部装置のECC動作を停止する場合には、外部装置を動作する例えばソフトウェアなどの大幅な変更を行う必要があり、不便である。本実施形態の半導体記憶装置では、外部装置のECC動作を停止せずとも、すなわち外部装置を変更せずに、通常データを外部装置に読み出しできる。したがって、本実施形態の半導体記憶装置は、外部装置を変更せずに、データを復元可能な半導体記憶装置を提供できる。第2実施形態次に、第2実施形態の半導体記憶装置について説明する。第1実施形態の半導体記憶装置は、第1実施形態の半導体記憶装置に対して、結合冗長データの生成方法が異なり、その他の動作方法及び構成については第1の実施形態と同様である。[半導体記憶装置の構成]第2実施形態の半導体記憶装置の構成について図5を用いて説明する。図5に示すように、第2実施形態の半導体記憶装置101は、第1実施形態の半導体記憶装置100にさらに、レジスタ20を有する。このレジスタ20は、通常データと外部装置から設定されたパリティを合わせたデータに対して、半導体記憶装置内で生成したパリティ内部冗長パリティを保持する機能を有する。このレジスタ20は、例えばECC部18内に設けられる。[ECC部18の動作]次に、通常データの書き込み動作又は読み出し動作時において、第2実施形態のECC部18、制御回路11の動作について、図6及び図7を用いて説明する。<書き込み動作時について>まず、通常データの書き込み動作におけるECC部18、制御回路11の動作について、図5を用いて説明する。ここで、説明の便宜上、書き込み動作時には、通常データ例えば512バイトと、外部装置によりこの通常データに対して設定されたパリティ外部冗長データともいうとを1セットとして、複数のセットが順に入力される場合を例に説明する。すなわち、書き込み動作時に、通常データA、パリティA外部装置により通常データAに対して設定されたパリティ、通常データB、パリティB外部装置により通常データBに対して設定されたパリティ、通常データC、...の順序で入力される。なお、書き込み動作時において、通常データとパリティの入力される順序が上記の場合に限られず、例えば、全ての通常データが入力されたのちに、全てのパリティが入力されてもよい。すなわち、通常データA,B,C、...が入力されたのちに、パリティA,B,...が入力されてもよい。この場合には、通常データと対応するパリティの1セットを抽出する工程が必要となる。<<動作フロー>>図6に示すように、ステップS1で、ECCバッファ19aに、データ入出力バッファ17bから通常データAとパリティAを入力されると、ECCバッファ19aは、第5領域に通常データAを保持し、第6領域にパリティAを保持する。このパリティAは16バイト以内の容量であって、例えばaビットを訂正するために必要なパリティとして2バイトとする。ステップS2で、ECCエンジン19bは、ECCバッファ19aに保持された通常データAとパリティA標準冗長データを合わせたデータA’結合冗長データに基づいて、半導体記憶装置内部のパリティAA’内部冗長データを生成する。次に、ステップS3で、ECC部18は、ページバッファ14にデータA’を出力し、例えばレジスタ20にパリティAA’を出力する。これにより、データA’はページバッファ14に保持される。ステップS4で、制御回路11は内部制御信号を用いて電圧発生装置13とページバッファ14を制御し、ステップS3でページバッファ14に保持されたデータA’をメモリセルアレイ10内に書き込む。<読み出し動作時について>次に、通常データの読み出し動作におけるECC部18、制御回路11の動作について、図7を用いて説明する。説明の便宜上、書き込み動作時に1セットごと、入力されたことを前提として説明する。<<動作フロー>>図7に示すように、ステップS1で、制御回路11は内部制御信号を用いて電圧発生装置13とページバッファ14を制御し、ページバッファ14にメモリセルアレイ10内のデータA’を入力する。これにより、ページバッファ14はデータA’を保持する。ステップS2で、制御回路11を用いてページバッファ14を制御し、ECC部18は、ページバッファ14から入力されるデータA’と、レジスタ20から入力されるパリティAA’を保持する。ステップS3で、ECCエンジン19bは、パリティAA’を用いて、データA’のエラー検出及び訂正を行う。ステップS4で、ECC部18は、ECC処理済み誤り訂正済みのデータA’を通常データAとパリティAAに分割する。これにより、ECCバッファ19aのうち第5領域に通常データAが保持され、第6領域にパリティAAが保持される。ステップS5で、ECCバッファ19a内の通常データAとパリティAAをデータ入出力バッファ17bに出力する。[第2実施形態の効果]以上より、本実施形態の半導体記憶装置は、第1実施形態の半導体記憶装置と同様に、外部装置のECC動作を停止せずとも、すなわち外部装置を変更せずに、通常データを外部装置に読み出しできる。したがって、本実施形態の半導体記憶装置は、外部装置を変更せずに、データを復元可能な半導体記憶装置を提供できる。なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。"