"メモリ本体から読み出されたデータに対するエラー訂正を行うエラー訂正部と、前記エラー訂正部によって訂正されたデータを記憶する第1の記憶部と、前記エラー訂正部によって訂正されたデータに対応するアドレスを記憶する第2の記憶部と、前記メモリ本体に対する読み出し/書き込みが実行されていないタイミングにおいて、前記第1の記憶部に記憶されているデータと前記第2の記憶部に記憶されているアドレスに基づいて、前記メモリ本体に対して再書き込みを行う制御部とを具備する半導体記憶装置。読み出し対象アドレスと、前記第2の記憶部に記憶されているアドレスとを比較し、一致するか否か判断するアドレス比較部と、前記アドレス比較部によって一致すると判断された場合に、前記読み出し対象アドレスに対応する読み出し対象データとして、前記第1の記憶部に記憶されている前記訂正されたデータを選択し、前記アドレス比較部によって一致しないと判断された場合に、前記読み出し対象データとして、前記メモリ本体から読み出されたデータを選択する選択部とをさらに具備する請求項1記載の半導体記憶装置。前記制御部は、前記メモリ本体に対する読み出し/書き込みが実行されていない期間が閾値を超えた場合に、前記再書き込みを行うことを特徴とする請求項1又は請求項2記載の半導体記憶装置。前記エラー訂正部によってエラー訂正が行われ、当該エラー訂正に対する前記メモリ本体に対する再書き込みが実行されていないことを示すエラーフラグを記憶する第3の記憶部をさらに具備し、前記制御部は、前記第3の記憶部に前記エラーフラグが記憶されている場合に、前記再書き込みを行うことを特徴とする請求項1乃至請求項3のいずれか1項に記載の半導体記憶装置。前記第1の記憶部の記憶内容を電源遮断前に記憶する第1の不揮発性記憶部と、前記第2の記憶部の記憶内容を前記電源遮断前に記憶する第2の不揮発性記憶部とをさらに具備し、前記第1の記憶部は、電源再投入後に前記第1の不揮発性記憶部の記憶内容を記憶し、前記第2の記憶部は、前記電源再投入後に前記第2の不揮発性記憶部の記憶内容を記憶することを特徴とする請求項1乃至請求項4のいずれか1項に記載の半導体記憶装置。メモリ本体から読み出されたデータに対するエラー訂正を行うエラー訂正部と、前記エラー訂正部によって訂正されたデータのエラー位置を記憶するエラー位置記憶部と、前記メモリ本体に対する読み出し/書き込みが実行されていないタイミングにおいて、前記エラー位置記憶部に記憶されている前記エラー位置に基づいて、前記メモリ本体に対して再書き込みを行う制御部とを具備する半導体記憶装置。メモリ本体から読み出されたデータに対するエラー訂正を行うことと、訂正されたデータを第1の記憶部に記憶し、前記訂正されたデータに対応するアドレスを第2の記憶部に記憶することと、前記メモリ本体に対する読み出し/書き込みが実行されていないタイミングにおいて、前記第1の記憶部に記憶されているデータと前記第2の記憶部に記憶されているアドレスに基づいて、前記メモリ本体に対して再書き込みを行うこととを具備する半導体記憶装置の制御方法。本発明の実施形態は、読み出されたデータにエラーが発生している場合、エラー訂正されたデータの再書き込みによって他の動作が遅延しない半導体記憶装置及びその制御方法を提供することを目的とする。実施形態によれば、半導体記憶装置は、エラー訂正部、第1の記憶部、第2の記憶部、制御部を含む。エラー訂正部は、メモリ本体から読み出されたデータに対するエラー訂正を行う。第1の記憶部は、エラー訂正部によって訂正されたデータを記憶する。第2の記憶部は、エラー訂正部によって訂正されたデータに対応するアドレスを記憶する。制御部は、メモリ本体に対する読み出し/書き込みが実行されていないタイミングにおいて、第1の記憶部に記憶されているデータと第2の記憶部に記憶されているアドレスに基づいて、メモリ本体に対して再書き込みを行う。以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略または実質的に同一の機能および構成要素については、同一符号を付し、必要に応じて説明を行う。第1の実施形態本実施形態においては、読み出し時にエラー訂正されたデータの再書き込みが、例えば書き込み及び読み出しなどの他の動作に影響しないタイミングで実行される半導体記憶装置について説明する。図1は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。半導体記憶装置1は、例えばCPUCentralProcessingUnit、メモリコントローラ、SoCSystemonachipなどの外部装置2から書き込み対象データと、この書き込み対象データの書き込み先を示す書き込みアドレスとを受け取る。さらに、半導体記憶装置1は、読み出し対象データに対する読み出しアドレスを受け取り、この読み出しアドレスの示す位置に記憶されている読み出し対象データを外部装置2に返す。半導体記憶装置1は、アドレスインタフェース3、データインタフェース4、アドレスバッファ5、ページバッファ6、ECCErrorCorrectingCode付加部7、例えばメモリセルアレイなどのようなメモリマット8、エラー訂正部ECC:ErrorcheckingandCorrecting9、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12、再書き込み制御部13、制御部デコーダ14を具備する。半導体記憶装置1は、メモリマット8から読み出されたデータにエラーが発生している場合に、エラー訂正を実行する。半導体記憶装置1は、エラー訂正されたデータを外部装置2に返す。加えて、半導体記憶装置1は、エラー訂正されたデータとそのアドレスを記憶しておく。そして、半導体記憶装置1は、他の動作例えば書き込み及び読み出しを含みリアルタイム性が求められる動作に影響を与えないタイミングにおいて、エラー訂正されたデータとそのアドレスとに基づいて、メモリマット8に対する再書き込みを実行する。半導体記憶装置1の各構成要素について説明する。アドレスインタフェース3は、外部装置2に接続されており、アドレス線のインタフェースである。アドレスインタフェース3は、例えば、外部装置2から半導体記憶装置1に対する各種のコマンド書き込みコマンド、読み出しコマンドを含むを受け取り、コマンドを制御部14に送る。アドレスインタフェース3は、書き込み時に、外部装置2から書き込みアドレスを受け取り、書き込みアドレスをアドレスバッファ5に記憶する。また、アドレスインタフェース3は、読み出し時に、外部装置2から読み出しアドレスを受け取り、読み出しアドレスをアドレスバッファ5に記憶する。データインタフェース4は、外部装置2に接続されており、例えば16bitから64bit程度の幅でデータの入出力を行う。データインタフェース4は、書き込み時に、外部装置2から受け取った書き込み対象データを、ページバッファ6に記憶する。また、データインタフェース4は、読み出し時に、アドレスバッファ5に記憶されている読み出しアドレスに対応しページバッファ6に記憶されている読み出し対象データ、を外部装置2に送る。アドレスバッファ5は、メモリマット8に対して一度に読み出しまたは書き込みを行うデーサイズに相当するアドレスを溜める記憶バッファである。ページバッファ6は、例えば、1024bit、2048bitなどにように、メモリマット8に対して一度に読み出しまたは書き込みを行うサイズになるまで、データを溜める記憶バッファである。ECC付加部7は、書き込み時において、ページバッファ6の書き込み対象データに対して、エラー訂正のためのパリティを付加する。メモリマット8は、メモリ本体である。メモリマット8としては、例えば、MRAMMagnetoresistiveRandomaccessmemory:磁気抵抗メモリ、PRAMPhasechangeRandomaccessmemory:相変化メモリ、ReRAMResistiveRandomaccessmemory:抵抗変化型メモリ、FeRAMFerroelectricRandomAccessMemory、NAND型フラッシュメモリ、NOR型フラッシュメモリなど半導体記憶部を用いることができる。書き込み時において、ECC付加部7によってパリティが付加された書き込み対象データは、アドレスバッファ5の書き込みアドレスに対応するメモリマット8の位置に、書き込まれる。読み出し時においては、アドレスバッファ5の読み出しアドレスに対応する位置のデータがメモリマット8から読み出される。エラー訂正部9は、メモリマット8から読み出されたデータからエラーが検出されない場合に、正常な読み出されたデータをページバッファ12に記憶する。エラー訂正部9は、読み出されたデータからエラーが検出された場合に、エラー検出通知を再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12に送る。さらに、エラー訂正部9は、読み出されたデータからエラーが検出された場合に、このエラーを訂正する。エラー訂正部9は、エラー訂正されたデータを、ページバッファ6に記憶し、さらに再書き込みデータ記憶部10に送る。再書き込みデータ記憶部10は、エラー訂正部9からエラー検出通知を受けた場合に、エラー訂正部9から受けたエラー訂正されたデータを記憶する。本実施形態において、再書き込みデータ記憶部10に記憶された訂正されたデータ以下、再書き込みデータというは、再書き込み制御部13による再書き込みの後、消去されるとしてもよい。再書き込みアドレス記憶部11は、エラー訂正部9からエラー検出通知を受けた場合に、アドレスバッファ5からエラー訂正されたデータに対応する読み出しアドレスを受け、このエラー訂正されたデータに対応する読み出しアドレスを記憶する。本実施形態において、再書き込みアドレス記憶部11に記憶されたアドレス以下、再書き込みアドレスというは、再書き込み制御部13による再書き込みの後、消去されるとしてもよい。フラグ記憶部12は、エラー訂正部9からエラー検出通知を受けた場合に、エラー検出を示すエラーフラグ再書き込みフラグを記憶する。フラグ記憶部12は、例えば、エラーが検出された場合に1エラーフラグ、エラーが発生していない場合に0を記憶する。本実施形態において、フラグ記憶部112に記憶されたエラーフラグは、再書き込み制御部13による再書き込みの後、消去される。このため、フラグ記憶部12にエラーフラグが記憶されていることは、読み出し時にエラー訂正されたデータに対して再書き込みが未実行であることを示す。制御部14は、外部装置2からアドレスインタフェース3経由で受けたコマンドに基づいて、半導体記憶装置1に備えられている各種の構成要素に対する制御を行う。再書き込み制御部13は、読み出し時にエラー訂正されたデータについてメモリマット8に再書き込みを行う場合の、信号経路及び再書き込みタイミングの制御を行う。例えば、再書き込み制御部13は、半導体記憶装置1からの連続する読み出し/書き込みなどの他の動作に影響を与えないタイミングにおいて、フラグ記憶部12にエラーフラグが記憶されているか否か判断する。そして、再書き込み制御部13は、エラーフラグが記憶されていると判断された場合に、再書き込みデータ記憶部10の再書き込みデータを、再書き込みアドレス記憶部11の再書き込みアドレスに対応するメモリマット8の位置に書き込む再書き込みを実行する。再書き込みの実行後、再書き込み制御部13は、フラグ記憶部12のエラーフラグを消去する。なお、再書き込み制御部13は、再書き込みの実行後、再書き込みデータ及び再書き込みアドレスを消去してもよい。本実施形態において、再書き込み制御部13は、メモリマップ8に対して再書き込みされたデータを読み出し、再書き込みの前と後とでデータを比較し、再書き込みが正当に行われたか否か判断してもよい。例えば、再書き込みが正当に行われていない場合、再書き込み制御部13は、再び再書き込みを実行してもよい。以下に、再書き込みの実行タイミングについて説明する。例えば、再書き込み制御部13による再書き込みは、メモリマット8に対する読み出しおよび書き込みのいずれも実行されていない期間に行われる。再書き込みのタイミングは、任意に設定可能である。再書き込みは、例えば、制御部14と再書き込み制御部13とのうちの少なくとも一方によって自発的自律的に行われるとしてもよく、設定時間ごとに外部装置2からの命令にしたがって実行されるとしてもよい。例えば、再書き込み制御部13は、読み出しおよび書き込みのどちらも行われていない期間におけるクロック数をカウントし、カウント値が予め設定されている閾値より大きくなると、再書き込みを実行する。また、例えば、再書き込み制御部13は、タイマーにより読み出しおよび書き込みのどちらも行われていない時間を測定し、測定された時間が閾値より大きくなると、再書き込みを実行する。再書き込みに用いられる閾値は、例えば、読み出しおよび書き込みのない経過時間と、読み出しおよび書き込みの発生する確率との実測値に基づいて、読み出しおよび書き込みの発生する確率が低くなる経過時間に基づいて求められる。例えば、外部装置2は、再書き込み制御部13と同様に、再書き込みが実行されるタイミングを検出し、再書き込み制御部13で再書き込みが行われる場合に、再書き込みに必要と推測される所定の期間、半導体記憶装置1に対する書き込みおよび読み出しを禁止する。これにより、半導体記憶装置1における再書き込みと、外部装置2からの書き込み及び読み出しとが衝突することを防止することができる。例えば、再書き込み制御部13は、半導体記憶装置1に対するアイドルコマンド又はスタンバイコマンドが制御部14によって受け付けられた場合に、再書き込みを実行するとしてもよい。例えば、再書き込み制御部13は、半導体記憶装置1の電源遮断時に、再書き込み動作を実行するとしてもよい。なお、本実施形態においては、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12として、例えば、レジスタを用いるとしてもよく、DRAMDynamicRandomAccessMemory、スタックメモリなどの他の記憶装置を用いるとしてもよい。本実施形態において、再書き込みデータ記憶部10及び再書き込みアドレス記憶部11は、一組の再書き込みデータ及び再書き込みアドレスを記憶するとしてもよく、複数の組の再書き込みデータ及び再書き込みアドレスを記憶するとしてもよい。複数の組の再書き込みデータ及び再書き込みアドレスが再書き込みデータ記憶部10及び再書き込みアドレス記憶部11に記憶される場合には、再書き込みデータと再書き込みアドレスとが互いに関連付けられているとする。例えば、読み出し時にエラー訂正されたデータとそのアドレスは、それぞれ再書き込みデータ記憶部10及び再書き込みアドレス記憶部11に追記される。これにより、再書き込みデータ記憶部10と再書き込みアドレス記憶部11とにおける記憶順序に基づいて、互いに関連する再書き込みデータ及び再書き込みアドレスとが認識可能である。なお、例えば、再書き込みデータ記憶部10と再書き込みアドレス記憶部11とを単一の記憶部とし、この単一の記憶部における同一のエントリに、読み出し時にエラー訂正されたデータとそのアドレスとを記憶するとしてもよい。本実施形態においては、再書き込み制御部13と制御部14とを別構成としているが、再書き込み制御部13と制御部14とは一体構成としてもよく、さらに分割した構成としてもよい。本実施形態においては、フラグ記憶部12を削除してもよい。この場合、例えば、再書き込み制御部13は、再書き込みの終了後、再書き込みデータ記憶部10のデータと再書き込みアドレス記憶部11のアドレスとのうちの少なくとも一方を消去する。再書き込み制御部13は、再書き込みデータ記憶部10に再書き込みデータが記憶されていることと、再書き込みアドレス記憶部11に再書き込みアドレスが記憶されていることとのうちの少なくとも一方をチェックすることで、再書き込みを行うか否か判断するとしてもよい。図2は、本実施形態に係る半導体記憶装置1のエラー訂正部9、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12の動作の一例を示すフローチャートである。ステップS1において、エラー訂正部9は、メモリマット8から読み出されたデータを受ける。ステップS2において、エラー訂正部9は、読み出されたデータに対するエラー検出を行う。読み出されたデータからエラーが検出されなかった場合には、処理はステップS5に移る。読み出されたデータにエラーが検出された場合、ステップS3において、エラー訂正部9は、読み出されたデータのエラーを訂正するとともに、エラー検出通知を、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12に送る。ステップS4において、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12は、それぞれ、エラー訂正されたデータ、エラー訂正されたデータに対応するアドレス、エラーフラグを記憶する。ステップS5において、エラー訂正部9は、エラーの検出されなかった読み出しデータ又はエラー訂正されたデータを、ページバッファ6に記憶する。図3は、本実施形態に係る再書き込み制御部13による再書き込み動作の一例を示すフローチャートである。ステップT1において、再書き込み制御部13は、再書き込みに対する制御を実行するか否か判断する。再書き込みに対する制御を終了する場合には、処理は終了される。再書き込みに対する制御を実行する場合には、ステップT2において、再書き込み制御部13は、再書き込みの実行タイミングか否か判断する。再書き込みの実行タイミングでなければ処理はステップT1に戻る。再書き込みの実行タイミングの場合、ステップT3において、再書き込み制御部13は、エラーフラグがフラグ記憶部12に記憶されているか否か判断する。エラーフラグが記憶されていない場合、処理はステップT1に戻る。エラーフラグが記憶されている場合、ステップT4において、再書き込み制御部13は、再書き込みデータ記憶部10の再書き込みデータを、再書き込みアドレス記憶部11の再書き込みアドレスの示すメモリマップ8の位置に、再書き込みを行う。ステップT5において、再書き込み制御部13は、再書き込みデータ記憶部10に記憶されている再書き込みデータとメモリマップ8に再書き込みされその後読み出されたデータとを比較し、再書き込み後に読み出されたデータが正当か否か判断する。再書き込み後に読み出されたデータが正当でない場合には、処理はステップT4に戻る。再書き込み後に読み出されたデータが正当な場合、ステップT6において、再書き込み制御部13は、フラグ記憶部12に記憶されているエラーフラグを消去し、処理はステップT1に戻る。以上説明した本実施形態においては、読み出されたデータにおける訂正可能なエラーが訂正され、エラー訂正されたデータとそのアドレスが一時記憶され、半導体記憶装置1の他の動作に影響することなく、エラー訂正されたデータの再書き込みを実行することができる。本実施形態においては、半導体記憶装置1に対して高速動作が求められる場合において、読み出しエラー又はリテンションエラーに対して再書き込みを行うことができる。半導体記憶装置1に対して、書き込み/読み出しが連続に行われている場合であっても、半導体記憶装置1における動作の切れ目は存在する。本実施形態においては、半導体記憶装置1で動作が一定時間行われない場合に、半導体記憶装置1側で自発的に、又は、外部装置2からの再書き込みコマンドに応じて、再書き込みが実行される。なお、本実施形態においては、例えば、設定された時間、半導体記憶装置1に対するアクセスが発生しなかった場合、再書き込みに必要な時間が経過するまでは、半導体記憶装置1に対するアクセスが禁止され、再書き込みが実行されるとしてもよい。これにより、半導体記憶装置1に対する外部装置2からのアクセスと、再書き込みとが衝突することを防止することができる。なお、この設定された時間は、使用されるアプリケーションのメモリアクセス頻度などに基づいて決定されるとしてもよい。本実施形態において、再書き込みアドレス記憶部11に記憶される再書き込みアドレスによってエラービットが特定可能な場合には、再書き込みデータ記憶部10は、省略することができる。第2の実施形態本実施形態においては、上記第1の実施形態の変形例であり、読み出し対象アドレスと、再書き込みアドレス記憶部11の再書き込みアドレスとが同じ場合に、再書き込みデータ記憶部10の再書き込みデータを読み出し対象データとして返す半導体記憶装置について説明する。図4は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。半導体記憶装置15は、上記第1の実施形態に係る半導体記憶装置1の構成要素に加えて、アドレス比較部16と選択部17とを具備する。再書き込みデータ記憶部10は、読み出し時にエラー訂正されたデータを記憶する。再書き込みアドレス記憶部11は、読み出し時にエラーが検出されたアドレスを記憶する。フラグ記憶部12は、エラー訂正され再書き込みデータ記憶部10に記憶された再書き込みデータについて、再書き込みが行われていないことを示すエラーフラグを記憶する。アドレス比較部16は、読み出し時であり、フラグ記憶部12にエラーフラグが記憶されている場合に、アドレスバッファ5に記憶されている読み出し対象アドレスと、再書き込みアドレス記憶部11の再書き込みアドレスとを比較する。そして、アドレス比較部16は、比較結果が一致を示す場合、再書き込みデータ記憶部10の再書き込みデータを選択する旨の選択命令を、選択部17に送る。他方、アドレス比較部16は、比較結果が不一致を示す場合、メモリマット8から読み出されたデータを選択する旨の選択命令を、選択部17に送る。選択部17は、読み出し時に、アドレス比較部16から選択命令を受ける。選択命令が再書き込みデータの選択を示す場合、読み出し対象アドレスに対応する読み出し対象データとして、再書き込みデータ記憶部10の再書き込みデータを選択し、エラー訂正部9に送る。他方、選択命令がメモリマット8から読み出されたデータの選択を示す場合、読み出し対象アドレスに対応する読み出し対象データとして、メモリマット8から読み出されたデータを選択し、エラー訂正部9に送る。エラー訂正部9は、メモリマット8から読み出されたデータを選択部17から受けた場合、このメモリマット8から読み出されたデータに対して、上記第1の実施形態で説明したエラー検出及び訂正を行う。なお、エラー訂正部9は、再書き込みデータ記憶部10から読み出された再書き込みデータを選択部17から受けた場合、この再書き込みデータをそのままページバッファ6に記憶してもよく、再書き込みデータに対して上記第1の実施形態で説明したエラー検出及び訂正を行うとしてもよい。図5は、本実施形態に係るアドレス比較部16及び選択部17の動作の一例を示すフローチャートである。ステップU1において、アドレス比較部16は、エラーフラグがフラグ記憶部12に記憶されているか否か判断する。エラーフラグがフラグ記憶部12に記憶されていない場合には、読み出しエラーが発生していないか、又は再書き込みによって訂正済みであるため、処理はステップU4に移動する。エラーフラグがフラグ記憶部12に記憶されている場合には、いずれかのアドレスについてエラーが発生しているため、アドレス比較部16は、ステップU2において、アドレスバッファ5に記憶されている読み出し対象アドレスと、再書き込みアドレス記憶部11に記憶されている再書き込みアドレスとが一致するか否か判断する。アドレスが不一致の場合、処理はステップU4に移動する。アドレスが一致する場合、ステップU3において、選択部17は、メモリマット8からデータを読み出すのではなく、再書き込みデータ記憶部10に記憶されている再書き込みデータを読み出し、エラー訂正部9に送る。再書き込みデータは、再書き込みデータ記憶部10に記憶される時点でエラー訂正済みであるため、そのまま使用可能である。これに対して、先の読み出し時にエラーの検出されたデータをメモリマット8から再度読み出すと、エラービットが増加している場合があり、エラー訂正ができない場合がある。このため、選択部17は、アドレスが一致する場合、メモリマット8から読み出されたデータを訂正することよりも、再書き込みデータ記憶部10の再書き込みデータを使用することを優先する。その後、処理はステップU8に移動する。なお、処理はステップU5に移動し、この再書き込みデータに対してエラー訂正部9によってエラーの検出及び訂正を行うとしてもよい。ステップU4において、選択部17は、アドレスバッファ5に記憶されている読み出し対象アドレスに基づいて、メモリマット8からデータを読み出す。ステップU5において、選択部17は、メモリマット8から読み出されたデータのエラー検出を行う。読み出されたデータからエラーが検出されなかった場合には、動作はステップU8に移る。読み出されたデータにエラーが検出された場合、ステップU6において、エラー訂正部9は、読み出されたデータのエラーを訂正するとともに、エラー検出通知を、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12に送る。ステップU7において、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12は、それぞれ、エラー訂正されたデータ、当該エラー訂正されたデータに対応するアドレス、エラーフラグを記憶する。ステップU8において、エラー訂正部9は、再書き込みデータ記憶部10からの再書き込みデータ、メモリマット8から読み出されエラー訂正部9によってエラーの検出されなかったデータ、又は、メモリマット8から読み出されエラー訂正部9によってエラー訂正されたデータを、ページバッファ6に記憶する。なお、この図5においては、ステップU1,U2の後にステップU4を実行しているが、ステップU1,U2の前にステップU4を実行するとしてもよい。以上説明した本実施形態においては、アドレスバッファ5の読み出し対象アドレスと、再書き込みアドレス記憶部11の再書き込みアドレスとが比較され、一致した場合に、再書き込みデータ記憶部10の再書き込みデータが読み出し対象データとして送出される。本実施形態においては、エラーが検出された場合に、メモリマット8から読み出されたデータが訂正して使用されるのではなく、再書き込みデータ記憶部10に記憶されている訂正されたデータが優先して使用される。これにより、メモリマット8に記憶されているデータのエラービットが増加し、訂正できなくなり、誤ったデータが読み出されることを防止することができる。第3の実施形態本実施形態は、上記第1及び第2の実施形態の変形例である。本実施形態においては、上記第1の実施形態の変形例を代表して説明するが、上記第2の実施形態の変形例も同様である。本実施形態においては、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12に記憶されている再書き込みデータ、再書き込みアドレス、エラーフラグを、不揮発性記憶装置に記憶し、再書き込み前での電源遮断を許容する半導体記憶装置について説明する。図6は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。半導体記憶装置18は、上記の第1の実施形態の半導体記憶装置1の構成要素に加えて、不揮発性記憶部19~21を具備する。不揮発性記憶部19~21は、それぞれ、例えば半導体記憶装置1の電源遮断前に、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12の記憶内容を記憶する。再書き込みが実行されることなく半導体記憶装置18の電源が遮断され、その後電源が再投入されると、不揮発性記憶部19~21の記憶内容は、それぞれ、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12にコピーされ、半導体記憶装置18は復帰する。そして、半導体記憶装置18の再書き込み制御部13は、電源投入後、フラグ記憶部12にエラーフラグが記憶されている場合に、再書き込みのための制御を実行する。再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12の記憶内容を、不揮発性記憶部19~21に記憶する動作、および不揮発性記憶部19~21の記憶内容を、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12に記憶する動作は、再書き込み制御部13と制御部14とのうちの少なくとも一方によって行われるとしてもよい。図7は、本実施形態に係る半導体記憶装置18の読み出し時における不揮発性記憶部19~21の動作の一例を示すフローチャートである。ステップS1~S5は、上記の図2で説明されている。メモリマット8から読み出されたデータに対してエラーが検出された場合、エラー訂正されたデータが出力されるとともに、再書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12にそれぞれエラー訂正されたデータ、アドレス、エラーフラグが記憶される。その後、ステップVにおいて、書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12の内容が専用の不揮発性記憶部19~21に記憶される。図8は、本実施形態に係る半導体記憶装置15の電源投入時における不揮発性記憶部19~21の動作の一例を示すフローチャートである。ステップW1において、半導体記憶装置15は、エラーフラグ用の不揮発性記憶部21にエラーフラグが記憶されているか否か判断する。エラーフラグが記憶されていない場合、不揮発性記憶部19~21に対する電源投入時の動作は終了する。エラーフラグが記憶されている場合、ステップW2において、書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12は、それぞれ不揮発性記憶部19~21の記憶内容を記憶する。なお、不揮発性記憶部19~21から書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12にデータがコピーされた後、不揮発性記憶部19~21の記憶内容は消去されてもよい。この図8の動作の後、上記図3で説明した動作が実行される。以上説明した本実施形態においては、再書き込みが実行されていない状態で半導体記憶装置18の電源が遮断され、その後電源が再投入された場合に、半導体記憶装置18を電源遮断前の状態に復元することができる。さらに、本実施形態においては、半導体記憶装置18を電源遮断前の状態に復元後、再書き込みを実行することができる。なお、本実施形態においては、不揮発性記憶部19~21を備えることなく、書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12自体が不揮発性の記憶装置であるとしてもよい。本実施形態においては、書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12に対して、それぞれ専用の不揮発性記憶部19~21を備えている。しかしながら、書き込みデータ記憶部10、再書き込みアドレス記憶部11、フラグ記憶部12は自由に組み合わせてもよく、また不揮発性記憶部19~21についても自由に組み合わせてもよい。第4の実施形態本実施形態は、上記第1から第3の実施形態までの変形例である。以下において、第1の実施形態の変形例について説明するが、第2及び第3の実施形態の変形例についても同様である。本実施の形態においては、読み出し時においてエラー訂正されたデータに代えてエラーの検出されたビットの位置を管理する半導体記憶装置について説明する。図9は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。本実施形態に係る半導体記憶装置22は、上記第1の実施形態に係る半導体記憶装置1のエラー訂正部9、再書き込みデータ記憶部10、再書き込み制御部13に代えて、エラー訂正部23、エラー位置記憶部24、再書き込み制御部25を備える。また、半導体記憶装置22では、上記第1の実施形態に係る半導体記憶装置15の再書き込みアドレス記憶部11が省略されている。エラー訂正部23は、読み出し時に、メモリマット8から読み出されたデータに対するエラーの検出と訂正とを行う。エラー訂正部23は、エラーの検出されていないデータ又はエラー訂正されたデータを、ページバッファ6に記憶する。エラー訂正部23は、エラーが検出された場合には、エラーフラグをフラグ記憶部12に記憶する。さらに、エラー訂正部23は、エラーが検出された場合には、このエラーの発生しているメモリマット8のビット位置例えば、アドレスとそのアドレス内でのエラービットの位置をエラー位置記憶部24に記憶する。再書き込み制御部25は、半導体記憶装置1の動作に影響しない実行タイミングで、フラグ記憶部12にエラーフラグが記憶されているか否か判断する。そして、再書き込み制御部25は、エラーフラグが記憶されている場合、エラー位置記憶部24に記憶されているビット位置に対応するメモリマット8のデータを反転することにより、訂正されたデータの再書き込みを行う。その後、再書き込み制御部25は、フラグ記憶部12のエラーフラグを消去する。なお、再書き込み制御部25は、再書き込みの実行後、エラー位置記憶部24の記憶内容を消去してもよい。本実施形態においては、エラー訂正されたデータに代えて、エラー位置が記憶される。この場合、読み出し時においてエラーが検出された場合に必要とされる記憶容量を削減することができる。また、本実施形態においては、回路構成を簡略化できる。本実施形態においては、エラービット位置と、エラーの検出されたデータに対応するアドレスとを関連付けて、エラー位置記憶部24に記憶するとしてもよい。これにより、上記の第2の実施形態と同様に、アドレス比較部16を用いることができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"