JP2012033222A - 半導体記憶装置およびその制御方法 - Google Patents
半導体記憶装置およびその制御方法 Download PDFInfo
- Publication number
- JP2012033222A JP2012033222A JP2010171134A JP2010171134A JP2012033222A JP 2012033222 A JP2012033222 A JP 2012033222A JP 2010171134 A JP2010171134 A JP 2010171134A JP 2010171134 A JP2010171134 A JP 2010171134A JP 2012033222 A JP2012033222 A JP 2012033222A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- read
- backup
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】書き込みエラーが発生しても、継続して動作可能な半導体記憶装置を提供する。
【解決手段】実施形態に係る半導体記憶装置1は、メモリ本体7、データ比較手段8、バックアップ手段9,10、アドレス比較手段12、選択手段13を備える。データ比較手段8は、書き込みデータでありメモリ本体7に書き込まれる前の第1のデータと、メモリ本体7に書き込まれた後に読み出された第2のデータとを比較する。バックアップ手段9,10は、データ比較結果が不一致の場合に、第1のデータおよび書き込みアドレスを記憶する。アドレス比較手段12は、読み出し対象データに対応する読み出しアドレスとバックアップ手段10に記憶されているアドレスとを比較する。選択手段13は、アドレス比較結果が不一致の場合に、メモリ本体7から読み出されたデータを読み出し対象データとして選択し、アドレス比較結果が一致の場合に、バックアップ手段9から読み出されたデータを読み出し対象データとして選択する。
【選択図】 図1
【解決手段】実施形態に係る半導体記憶装置1は、メモリ本体7、データ比較手段8、バックアップ手段9,10、アドレス比較手段12、選択手段13を備える。データ比較手段8は、書き込みデータでありメモリ本体7に書き込まれる前の第1のデータと、メモリ本体7に書き込まれた後に読み出された第2のデータとを比較する。バックアップ手段9,10は、データ比較結果が不一致の場合に、第1のデータおよび書き込みアドレスを記憶する。アドレス比較手段12は、読み出し対象データに対応する読み出しアドレスとバックアップ手段10に記憶されているアドレスとを比較する。選択手段13は、アドレス比較結果が不一致の場合に、メモリ本体7から読み出されたデータを読み出し対象データとして選択し、アドレス比較結果が一致の場合に、バックアップ手段9から読み出されたデータを読み出し対象データとして選択する。
【選択図】 図1
Description
本発明の実施形態は、アドレスに応じてデータを書き込む半導体記憶装置およびその制御方法に関する。
半導体記憶装置では、稀に書き込みエラーが発生する。例えば、書き込みエラーを検出するために、半導体記憶装置は、書き込み対象データでありメモリマットに対して書き込まれる前のデータ(以下、書き込み前データという)を保存し、メモリマットに書き込み対象データを書き込む。次に、半導体記憶装置は、メモリマットに書き込まれた書き込み対象データを読み出す。そして、半導体記憶装置は、書き込み前データと、書き込み後に読み出されたデータ(以下、書き込み後データという)とを比較し、書き込み後データが正当か否か判断する。
通常の半導体記憶装置は、書き込み後データにエラーが検出された場合(正しい書き込みが行われていない場合)、メモリマットに書き込み対象データを再度書き込む。書き込み時間が長くてもよい場合には、この再書き込みにより処理時間に遅れが発生してもよい。しかしながら、次々にデータを書き込む必要があり、スループットが重要な場合には、この再書き込みによる処理の遅延が問題になる場合がある。また、書き込み後に読み出しを次々に行う場合に再書き込みを行うと、CPUが再書き込み終了まで待たされ、例えばリアルタイムアプリケーションにおいて処理が間に合わなくなり、リアルタイム性の確保が困難になる場合がある。
本発明の実施形態は、書き込みエラーが発生しても、継続して動作可能な半導体記憶装置およびその制御方法を提供することを目的とする。
実施形態によれば、半導体記憶装置は、メモリ本体と、データ比較手段と、データバックアップ手段と、アドレスバックアップ手段と、アドレス比較手段と、選択手段とを備える。データ比較手段は、書き込み対象データでありメモリ本体に書き込まれる前の第1のデータと、メモリ本体に書き込まれた後に読み出された第2のデータとを比較する。データバックアップ手段は、データ比較手段の比較結果が不一致の場合に、第1のデータを記憶する。アドレスバックアップ手段は、データ比較手段の比較結果が不一致の場合に、書き込み対象データに対応する書き込みアドレスを記憶する。アドレス比較手段は、読み出し対象データに対応する読み出しアドレスとアドレスバックアップ手段に記憶されているアドレスとを比較する。選択手段は、アドレス比較手段の比較結果が不一致の場合に、読み出しアドレスに応じてメモリ本体から読み出されたデータを読み出し対象データとして選択し、アドレス比較手段の比較結果が一致の場合に、データバックアップ手段から読み出されたデータを読み出し対象データとして選択する。
以下、図面を参照しながら本発明の各実施の形態について説明する。なお、以下の説明において、略または実質的に同一の機能および構成要素については、同一符号を付し、必要に応じて説明を行う。
(第1の実施形態)
本実施形態では、書き込み前データと、書き込み直後に読み出された書き込み後データとを比較し、エラーが検出された場合であっても動作を継続可能な半導体記憶装置について説明する。
本実施形態では、書き込み前データと、書き込み直後に読み出された書き込み後データとを比較し、エラーが検出された場合であっても動作を継続可能な半導体記憶装置について説明する。
図1は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
半導体記憶装置1は、例えばCPU(Central Processing Unit)、メモリコントローラ、SoC(System-on-a-chip)などの外部装置2から書き込み対象データと、この書き込み対象データの書き込み先を示す書き込みアドレスとを受け取る。
さらに、半導体記憶装置1は、読み出し対象データに対する読み出しアドレスを受け取り、この読み出しアドレスの示す位置に記憶されている読み出し対象データを外部装置2に返す。
半導体記憶装置1は、アドレスインタフェース3、データインタフェース4、アドレスバッファ5、ページバッファ6、例えばメモリセルアレイなどのようなメモリマット7、データ比較部8、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11、アドレス比較部12、選択部13、制御部14を具備する。
半導体記憶装置1は、ページバッファ6の書き込み前データとメモリマット7から読み出された書き込み後データとを比較するデータ比較部8を具備し、比較結果が不一致の場合に書き込み前データと書き込みアドレスとをそれぞれデータバックアップ部9およびアドレスバックアップ部10に退避する。
半導体記憶装置1は、読み出しアドレスとアドレスバックアップ部10のアドレスとを比較し、比較結果が一致した場合にデータバックアップ部9のデータを外部装置2に送出する。
半導体記憶装置1は、エラー検出時に、フラグ記憶装置11にエラー発生を示すエラーフラグをセットし、書き込みおよび読み出しのいずれも行われていない場合に、データバックアップ部9のデータを、アドレスバックアップ部10のアドレスの示すメモリマット7の位置に書き込む。
半導体記憶装置1の各構成要素について説明する。
アドレスインタフェース3は、アドレス線のインタフェースである。アドレスインタフェース3は、書き込み時に、外部装置2から書き込みアドレスを受け取り、書き込みアドレスをアドレスバッファ5に記憶する。また、アドレスインタフェース3は、読み出し時に、外部装置2から読み出しアドレスを受け取り、読み出しアドレスをアドレスバッファ5に記憶する。
データインタフェース4は、外部装置2に接続されており、例えば16bitから64bit程度の幅でデータの入出力を行う。データインタフェース4は、書き込み時に、外部装置2から受け取った書き込み対象データをページバッファ6に記憶する。また、データインタフェース4は、読み出し時に、アドレスバッファ5に記憶されている読み出しアドレスに対応しており、ページバッファ6に記憶されている読み出し対象データを外部装置2に送る。
アドレスバッファ5は、メモリマット7に対して一度に読み出しまたは書き込みを行うデーサイズに相当するアドレスを溜める記憶バッファである。
ページバッファ6は、例えば、1024bit、2048bitなどにように、メモリマット7に対して一度に読み出しまたは書き込みを行うサイズになるまで、データを溜める記憶バッファである。
メモリマット7は、メモリ本体である。メモリマット7としては、例えば、MRAM(Magnetoresistive Random access memory:磁気抵抗メモリ)、PRAM(Phase change Random access memory:相変化メモリ)、ReRAM(Resistive Random access memory:抵抗変化型メモリ)、FeRAM(Ferroelectric Random Access Memory)、NAND型フラッシュメモリ、NOR型フラッシュメモリなどを用いることができる。
書き込み時において、ページバッファ6の書き込み対象データは、アドレスバッファ5のアドレスの示すメモリマット7の位置に、書き込まれる。
データ比較部8は、書き込みエラーを検出するために、ページバッファ6の書き込み前データと、メモリマット7から読み出された書き込み後データを読み出す。データ比較部8は、書き込み前データと書き込み後データとを比較し、書き込み後データが正当か否か(すなわち、データ書き込みが正しく実行されたか否か)判断する。
データ比較部8は、書き込み後データにエラーが検出された場合に、この書き込み後データと比較された書き込み前データをデータバックアップ部9に記憶し、書き込み対象データに対応するアドレスをアドレスバックアップ部10に記憶する。
また、データ比較部8は、書き込み後データにエラーが検出された場合、エラーが発生したことを示すエラーフラグをフラグ記憶部11に記憶する。
データバックアップ部9は、書き込み後データにエラーが検出された場合に、この書き込み後データと比較された書き込み前データを記憶する。すなわち、このデータバックアップ部9は、メモリマット7に書き込まれるべき正当なデータを記憶する。例えば、このデータバックアップ部9には、ページバッファ5と同じように、書き込みサイズまたは読み出しサイズ単位で、データが記憶される。データバックアップ部9は、1以上の読み出しサイズのデータを記憶可能である。
アドレスバックアップ部10は、書き込み後データにエラーが検出された場合に、この書き込み後データに対応する書き込みアドレスを記憶する。アドレスバックアップ部10は、1以上の読み出しサイズに対応するアドレスを記憶可能である。
データバックアップ部9とアドレスバックアップ部10には、エラーの検出された書き込み後データと比較された書き込み前データとそのアドレスとが、互いに関連付けられた状態で記憶される。
例えば、書き込み前データとそのアドレスは、それぞれデータバックアップ部9とアドレスバックアップ部10に追記される。これにより、データバックアップ部9とアドレスバックアップ部10とにおける記憶順序に基づいて、書き込み前データとそのアドレスとが認識可能である。
なお、例えば、データバックアップ部9とアドレスバックアップ部10とを単一の記憶部とし、この単一の記憶部における同一のエントリに、書き込み前データとそのアドレスとを記憶するとしてもよい。
データバックアップ部9およびアドレスバックアップ部10としては、例えばフリップフロップ回路などで形成されるレジスタが用いられる。
フラグ記憶部11は、メモリマット7の記憶内容にエラーが発生した場合に、エラー発生を示すエラーフラグを記憶する。すなわち、エラーフラグは、データの不一致が発生したことを示す。フラグ記憶部11は、例えば、エラーが発生した場合に「1」(エラーフラグ)、エラーが発生していない場合に「0」を記憶する。フラグ記憶部11としては、例えばレジスタが用いられる。
アドレス比較部12は、読み出し時においてフラグ記憶部11にエラーフラグが記憶されている場合に、アドレスバッファ6のアドレスとアドレスバックアップ部10のアドレスとを比較する。アドレス比較部12は、アドレスバッファ6のアドレスとアドレスバックアップ部10のアドレスとが一致する場合、この一致するアドレスに関する読み出しはデータバックアップ部9に対して行うことを命令する通知情報を、選択部13に送る。例えば、アドレス比較部12は、データバックアップ部9のどの位置に記憶されているデータを読み出すべきかを示すバックアップ位置情報を通知情報に含める。このバックアップ位置情報は、例えばアドレスバックアップ部10におけるアドレスの記憶位置に基づいて生成可能である。
選択部13は、アドレス比較部12からの通知情報に応じて、読み出し対象データをメモリマット7またはデータバックアップ部9から読み出し、読み出された読み出し対象データをページバッファ4に記憶する。
より具体的に説明すると、選択部13は、フラグ記憶部11にエラーフラグが記憶されており、アドレスバックアップ部10に記憶されているアドレスとアドレスバッファ5に記憶されている読み出しアドレスとが一致する場合、この読み出しアドレスに対応する読み出し対象データをデータバックアップ部9から読み出す。そして、選択部13は、データバックアップ部9から読み出された読み出し対象データを、ページバッファ6に記憶する。
一方、選択部13は、フラグ記憶部11にエラーフラグが記憶されていない場合、または、アドレスバックアップ部10に記憶されているアドレスとアドレスバッファ5に記憶されている読み出しアドレスとが一致しない場合、読み出しアドレスに対応する読み出し対象データをメモリマット7から読み出す。そして、選択部13は、メモリマット7から読み出された読み出し対象データを、ページバッファ6に記憶する。
制御部14は、半導体記憶装置1に備えられている各種の構成要素に対して制御動作を行う。
例えば、制御部14は、フラグ記憶部11にエラーフラグが記憶されている場合、アドレスバックアップ部10に記憶されているアドレスに基づいて、データバックアップ部9に記憶されているデータを、メモリマット7に再度書き込む処理を実行する。
制御部14による再書き込みは、読み出しおよび書き込みのいずれも実行されていない期間に行われる。再書き込みのタイミングは、任意に設定可能である。再書き込みは、例えば、制御部14によって自発的に行われるとしてもよく、外部装置2によって一定時間ごとに実行されるとしてもよい。
例えば、制御部14は、読み出しおよび書き込みのどちらも行われていない期間におけるクロック数をカウントし、カウント値が予め設定されている閾値より大きくなると、再書き込みを実行する。
また、例えば、制御部14は、タイマーにより読み出しおよび書き込みのどちらも行われていない時間を測定し、測定された時間が閾値より大きくなると、再書き込みを実行する。
再書き込みに用いられる閾値は、例えば、読み出しおよび書き込みのない経過時間と、読み出しおよび書き込みの発生する確率との実測値に基づいて、読み出しおよび書き込みの発生する確率が低くなる経過時間に基づいて求められる。
例えば、外部装置2は、制御部14と同様に、再書き込みが実行されるタイミングを検出し、制御部14で再書き込みが行われる場合に、再書き込みに必要と推測される所定の期間、半導体記憶装置1に対する書き込みおよび読み出しを禁止する。これにより、半導体記憶装置1における再書き込みと、外部装置2からの書き込みまたは読み出しとが衝突することを防止することができる。
例えば、制御部14は、半導体記憶装置1の電源遮断時に、再書き込みを実行するとしてもよい。
図2は、本実施形態に係る半導体記憶装置1の書き込み処理(動作)の一例を示すフローチャートである。
ステップS1において、半導体記憶装置1は、アドレスに基づいて、書き込み前データをメモリマット7に書き込む。
ステップS2において、半導体記憶装置1は、同一のアドレスに基づいて、メモリマット7から書き込み後データを読み出す。
ステップS3において、半導体記憶装置1は、書き込み前データと書き込み後データとを比較する。
比較の結果が一致している場合、書き込み処理は終了する。
比較の結果が一致していない場合、ステップS4において、半導体記憶装置1は書き込み前データ(正確なデータ)をデータバックアップ部9に記憶する。ステップS5において、半導体記憶装置1は、書き込みアドレスをアドレスバックアップ部10に記憶する。ステップS6において、半導体記憶装置1は、フラグ記憶部11に、エラーフラグを記憶する。
書き込み処理後は、次の処理に移行する。
なお、ステップS4〜S6の実行順序は、自由に変更可能であり、並列に実行されてもよい。
図3は、本実施形態に係る半導体記憶装置1の読み出し処理の第1の例を示すフローチャートである。
ステップT1において、半導体記憶装置1は、読み出しアドレスに基づいて、メモリマット7から読み出し対象データを読み出す。
ステップT2において、半導体記憶装置1は、フラグ記憶部11にエラーフラグが記憶されているか否か判断する。
エラーフラグが記憶されている場合、ステップT3において、半導体記憶装置1は、読み出しアドレスと、アドレスバックアップ部10に記憶されているアドレスとを比較し、一致するか否か判断する。
読み出しアドレスと、アドレスバックアップ部10のアドレスとが一致する場合、ステップT4において、半導体記憶装置1は、データバックアップ部9から、読み出しアドレスに対応するデータを読み出す。
上記のステップT2においてエラーフラグがフラグ記憶部11に記憶されていない場合、または、上記のステップT3において、アドレスの比較が一致しない場合、ステップT5において、半導体記憶装置1は、メモリマット7から読み出されたデータをそのまま外部装置2に送る。また、半導体記憶装置1は、エラーフラグがフラグ記憶部11に記憶されており、かつ、アドレスの比較が一致する場合、メモリマット7から読み出されたデータをデータバックアップ部9から読み出されたデータに置き換え、このデータバックアップ部9から読み出されたデータを外部装置2に送る。
この読み出し処理後は、次の処理に移行する。
図4は、本実施形態に係る半導体記憶装置1の読み出し処理の第2の例を示すフローチャートである。この図4の例では、メモリマット7からデータを読み出す処理を行う順序が図3の例と相違している。
ステップU1において、半導体記憶装置1は、フラグ記憶部11にエラーフラグが記憶されているか否か判断する。
エラーフラグが記憶されている場合、ステップU2において、半導体記憶装置1は、読み出しアドレスと、アドレスバックアップ部10に記憶されているアドレスとを比較し、一致するか否か判断する。
読み出しアドレスと、アドレスバックアップ部10のアドレスとが一致する場合、ステップU3において、半導体記憶装置1は、データバックアップ部9から、読み出しアドレスに対応するデータを読み出す。その後、処理はステップU5に移動する。
これに対して、半導体記憶装置1は、上記のステップU1においてエラーフラグが記憶されていない場合、または、上記のステップU2において、アドレスの比較が一致しない場合、ステップU4において、メモリマット7から、読み出しアドレスに対応するデータを読み出す。その後、処理はステップU5に移動する。
ステップU5において、半導体記憶装置1は、読み出し対象データを外部装置2に送信する。
この読み出し処理後は、次の処理に移行する。
図5は、本実施形態に係る半導体記憶装置1の再書き込み処理の一例を示すフローチャートである。再書き込みは、半導体記憶装置1で書き込みおよび読み出しの実行されていないアイドル状態において実行される。半導体記憶装置1に対する書き込みまたは読み出しが連続して実行される場合であっても、動作の切れ目は存在する。上述したように、例えば、再書き込みは、動作が一定時間行われなかった場合に、半導体記憶装置1側で自発的に実行されるか、あるいは、一定時間ごとに外部装置2から再書き込み処理が読み出されることにより、実行される。
ステップV1において、半導体記憶装置1は、フラグ記憶部11にエラーフラグが記憶されているか否か判断する。
エラーフラグが記憶されていない場合、再書き込み処理は終了する。
エラーフラグが記憶されている場合、ステップV2において、半導体記憶装置1は、アドレスバックアップ部10のアドレスに基づいて、データバックアップ部9のデータをメモリマット7に書き込む。
ステップV3において、半導体記憶装置1は、同じアドレスに基づいて、再書き込み後のデータをメモリマット7から読み出す。
ステップV4において、半導体記憶装置1は、再書き込み後のデータとデータバックアップ部9から読み出されたデータとを比較し、一致するか否か判断する。
比較の結果が一致していない場合、ステップV5において、半導体記憶装置1は、再書き込み処理の終了条件を満たすか否か判断する。例えば、所定回数以上、メモリマット7に対する再書き込みが実行されたが、再書き込み後のデータとデータバックアップ部9から読み出されたデータとが一致しない場合、終了条件を満たすとする。
終了条件が満たされていない場合、処理はステップV2に移動する。
終了条件が満たされている場合、処理は終了する。
一方、比較の結果が一致している場合、ステップV6において、半導体記憶装置1は、フラグ記憶部11からエラーフラグを消去する。
この再書き込み処理後は、次の処理に移行する。
なお、この図5において、ステップV3〜V5は省略してもよい。
以上説明した本実施形態においては、メモリマット7にデータを書き込んだ直後にデータの読み出しが行われ、正しく書き込みが行われなかった場合に、再書き込みが直ちに実行されるのではなく、正しいデータが一時的にデータバックアップ部9に保存される。本実施形態において、後続の読み出しまたは書き込みは、再書き込みによって止められることなく、先の書き込みと連続して実行される。
本実施形態においては、エラー発生後直ちに再書き込みが行われないため、高速に処理を行うことができ、リアルタイム性を確保することができる。
本実施形態では、読み出し時に、メモリマット7に誤って書き込まれているデータの代わりに、データバックアップ部9に記憶されている正しいデータを外部装置2に送ることができる。
本実施形態においては、書き込みおよび読み出しの発生していない期間に再書き込みが実行される。したがって、再書き込みによって書き込みおよび読み出しが中断、停止または待ち状態にされることはない。
なお、本実施形態において、再書き込みを実行している途中に、外部装置2から半導体記憶装置1へのアクセスが発生した場合、制御部14は、再書き込みを中止するとしてもよい。これにより、再書き込みの途中に外部装置2からのアクセスが発生した場合であっても、外部装置2からのアクセスに遅れが生じることを防止することができる。
本実施形態において、フラグ記憶部11は削除してもよい。この場合、エラーが発生したか否かは、例えば、データバックアップ部9にデータが記憶されているかまたはアドレスバックアップ部10にアドレスが記憶されているか否かに基づいて、判断することができる。
(第2の実施形態)
本実施形態は、上記第1の実施形態の変形例である。本実施形態においては、エラーフラグ、データバックアップ部9のデータ、アドレスバックアップ部10のアドレスを、不揮発性記憶装置に記憶する半導体記憶装置について説明する。
本実施形態は、上記第1の実施形態の変形例である。本実施形態においては、エラーフラグ、データバックアップ部9のデータ、アドレスバックアップ部10のアドレスを、不揮発性記憶装置に記憶する半導体記憶装置について説明する。
図6は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
半導体記憶装置15は、上記の第1の実施形態の半導体記憶装置1の構成要素に加えて、不揮発性記憶部16〜18を具備する。
不揮発性記憶部16〜18は、それぞれ、半導体記憶装置1の電源遮断前に、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11の記憶内容を記憶する。
再書き込みが実行されることなく半導体記憶装置15の電源が遮断され、その後電源が再投入されると、不揮発性記憶部16〜18の記憶内容は、それぞれ、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11にコピーされる。そして、半導体記憶装置15は、電源投入後、フラグ記憶部11にエラーフラグが記憶されている場合に、再書き込みを実行する。
データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11の記憶内容を、不揮発性記憶部16〜18に記憶する動作、および不揮発性記憶部16〜18の記憶内容を、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11に記憶する動作は、制御部14によって行われるとしてもよい。
図7は、本実施形態に係る半導体記憶装置15の書き込み処理の一例を示すフローチャートである。
ステップW1〜W6は、上記のステップS1〜S6と同じである。このステップW1〜W6を概説すると、半導体記憶装置15は、メモリマット7に対してデータを書き込んだ後に、読み出しを行う。半導体記憶装置15は、書き込み前データと書き込み後データとが不一致の場合に、そのデータとアドレスとをデータバックアップ部9とアドレスバックアップ部10とに記憶し、エラーフラグをフラグ記憶部11に記憶し、その後、次の処理に移る。
本実施形態においては、データとアドレスとをデータバックアップ部9とアドレスバックアップ部10とに記憶し、エラーフラグをフラグ記憶部11に記憶した後、ステップW7において、半導体記憶装置15は、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11の記憶内容を、それぞれ不揮発性記憶部16〜18に記憶する。この書き込み処理後は、次の処理に移行する。
図8は、本実施形態に係る半導体記憶装置15の電源投入時の処理の一例を示すフローチャートである。
ステップX1において、半導体記憶装置15は、エラーフラグ用の不揮発性記憶部18をアクセスする。
ステップX2において、半導体記憶装置15は、エラーフラグ用の不揮発性記憶部18にエラーフラグが記憶されているか否か判断する。
エラーフラグが記憶されていない場合、半導体記憶装置15は、処理を終了する。
エラーフラグが記憶されている場合、ステップX3において、半導体記憶装置15は、不揮発性記憶部16〜18の記憶内容を読み出して、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11に記憶する。そして、不揮発性記憶部16〜18の記憶内容を消去する。
ステップX4において、半導体記憶装置15は、アドレスバックアップ部10のアドレスに基づいて、データバックアップ部9のデータをメモリマット7に書き込む再書き込みを行う。
ステップX5において、半導体記憶装置15は、再書き込み後のデータをメモリマット7から読み出す。
ステップX6において、半導体記憶装置15は、再書き込み後のデータとデータバックアップ部9から読み出されたデータとを比較し、一致するか否か判断する。
比較の結果が一致していない場合、ステップX7において、半導体記憶装置15は、再書き込み処理の終了条件を満たすか否か判断する
終了条件が満たされていない場合、処理はステップX4に移動する。
終了条件が満たされていない場合、処理はステップX4に移動する。
終了条件が満たされている場合、処理は終了する。
一方、比較の結果が一致している場合、ステップX8において、半導体記憶装置15は、フラグ記憶部11のエラーフラグを消去する。
この電源投入時の処理の後は、次の処理に移行する。
なお、この図8において、ステップX4〜X8は省略してもよい。
以上説明した本実施形態においては、再書き込みが実行されていない状態で半導体記憶装置15の電源が遮断され、その後電源が再投入された場合に、半導体記憶装置15を電源遮断前の状態に復元することができる。
さらに、本実施形態においては、半導体記憶装置15を電源遮断前の状態に復元後、再書き込みを実行することができる。
なお、本実施形態においては、不揮発性記憶部16〜18を備えることなく、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11自体が不揮発性の記憶装置であるとしてもよい。
本実施形態においては、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11に対して、それぞれ専用の不揮発性記憶部16〜18を備えている。しかしながら、データバックアップ部9、アドレスバックアップ部10、フラグ記憶部11は自由に組み合わせてもよく、また不揮発性記憶部16〜18についても自由に組み合わせてもよい。
(第3の実施形態)
本実施形態は、上記第1および第2の実施形態の変形例である。以下において、第2の実施形態の変形例について説明するが、第1の実施形態の変形例についても同様である。
本実施形態は、上記第1および第2の実施形態の変形例である。以下において、第2の実施形態の変形例について説明するが、第1の実施形態の変形例についても同様である。
本実施の形態においては、エラーの発生したデータに代えてエラーの発生しているビットの位置を管理する半導体記憶装置について説明する。
図9は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
本実施形態に係る半導体記憶装置19では、上記第2の実施形態に係る半導体記憶装置15のデータバックアップ部9および不揮発性記憶部16が削除されている。
また、半導体記憶装置19は、上記半導体記憶装置15のデータ比較部8、アドレスバックアップ部10、選択部13に代えて、データ比較部20、アドレスバックアップ部21、訂正部22を具備する。
データ比較部20は、書き込みエラーを検出するために、ページバッファ6の書き込み前データと、メモリマット7から読み出された書き込み後データを読み出す。データ比較部20は、書き込み前データと書き込み後データとを比較し、書き込み後データが正当か否か判断する。
データ比較部20は、書き込み後データにエラーが検出された場合、このエラーの検出されたデータに対応するアドレスとエラービット位置とをアドレスバックアップ部21に記憶する。
また、データ比較部20は、書き込み後データにエラーが検出された場合、エラーフラグをフラグ記憶部11に記憶する。
訂正部22は、フラグ記憶部11にエラーフラグが記憶されており、アドレスバックアップ部21に記憶されているアドレスとアドレスバッファ5に記憶されている読み出しアドレスとが一致する場合、このアドレスに対応する読み出し対象データをメモリマット7から読み出す。さらに、訂正部22は、アドレスバックアップ部21に記憶されているエラービット位置に基づいて、メモリマット7から読み出された読み出し対象データにおけるエラービット位置のビットを反転し、読み出し対象データを訂正する。
そして、訂正部22は、訂正された読み出し対象データをページバッファ6に記憶する。
一方、訂正部22は、フラグ記憶部11にエラーフラグが記憶されている場合、または、アドレスバックアップ部21に記憶されているアドレスとアドレスバッファ5に記憶されている読み出しアドレスとが一致しない場合、読み出しアドレスに対応する読み出し対象データをメモリマット7から読み出す。そして、訂正部22は、メモリマット7から読み出された読み出し対象データを、そのままページバッファ6に記憶する。
なお、本実施形態においても、訂正部22によって訂正された読み出し対象データを用いて、メモリマット7に対して再書き込みを行ってもよい。
本実施形態においては、エラーの発生したデータに代えて、エラーの発生したデータのエラービット位置が記憶される。このため、エラーが発生した場合に必要とされる記憶容量を削減することができる。また、本実施形態においては、回路構成を簡略化できる。
なお、本実施形態においては、アドレスバックアップ部21に、エラーの発生したデータに関連するアドレスとエラービット位置とが記憶されているが、エラーの発生したデータに関連するアドレスを記憶する記憶部とエラービット位置を記憶する記憶部とを分けてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1,15,19…半導体記憶装置、2…外部装置、3…アドレスインタフェース、4…データインタフェース、5…アドレスバッファ、6…ページバッファ、7…メモリマット、8,20…データ比較部、9…データバックアップ部、10,21…アドレスバックアップ部、11…フラグ記憶部、12…アドレス比較部、13…選択部、14…制御部、16〜18…不揮発性記憶部、22…訂正部。
Claims (6)
- メモリ本体と、
書き込み対象データであり前記メモリ本体に書き込まれる前の第1のデータと、前記メモリ本体に書き込まれた後に読み出された第2のデータとを比較するデータ比較手段と、
前記データ比較手段の比較結果が不一致の場合に、前記第1のデータを記憶するデータバックアップ手段と、
前記データ比較手段の比較結果が不一致の場合に、前記書き込み対象データに対応する書き込みアドレスを記憶するアドレスバックアップ手段と、
読み出し対象データに対応する読み出しアドレスと前記アドレスバックアップ手段に記憶されているアドレスとを比較するアドレス比較手段と、
前記アドレス比較手段の比較結果が不一致の場合に、前記読み出しアドレスに応じて前記メモリ本体から読み出されたデータを前記読み出し対象データとして選択し、前記アドレス比較手段の比較結果が一致の場合に、前記データバックアップ手段から読み出されたデータを前記読み出し対象データとして選択する選択手段と
を具備する半導体記憶装置。 - 前記データ比較手段の比較結果が不一致の場合に、エラー発生を示すエラーフラグを記憶するフラグ記憶手段をさらに具備し、
前記アドレス比較手段は、前記フラグ記憶手段に前記エラーフラグが記憶されている場合に、前記読み出しアドレスと前記アドレスバックアップ手段に記憶されているアドレスとの比較を行う
ことを特徴とする請求項1記載の半導体記憶装置。 - 前記フラグ記憶手段に前記エラーフラグが記憶されている場合に、前記メモリ本体に対する書き込みと読み出しとのうちの少なくとも一方が発生しているか否か判断し、前記書き込みと前記読み出しのいずれも発生していない場合に、前記アドレスバックアップ手段に記憶されているアドレスに基づいて、前記データバックアップ手段から読み出されたデータを前記メモリ本体に書き込む手段、をさらに具備する請求項2記載の半導体記憶装置。
- 前記データバックアップ手段の記憶内容を電源遮断前に記憶する第1の不揮発性記憶手段と、
前記アドレスバックアップ手段の記憶内容を前記電源遮断前に記憶する第2の不揮発性記憶手段と
をさらに具備し、
前記データバックアップ手段は、電源再投入後に前記第1の不揮発性記憶手段の記憶内容を記憶し、
前記アドレスバックアップ手段は、前記電源再投入後に前記第2の不揮発性記憶手段の記憶内容を記憶する
ことを特徴とする請求項1乃至請求項3のいずれか1項に記載の半導体記憶装置。 - メモリ本体と、
書き込み対象データであり前記メモリ本体に書き込まれる前の第1のデータと、前記メモリ本体に書き込まれた後に読み出された第2のデータとを比較するデータ比較手段と、
前記データ比較手段の比較結果が不一致の場合に、前記書き込み対象データに対応する書き込みアドレスおよび不一致の発生したエラービット位置を記憶するバックアップ手段と、
読み出し対象データに対応する読み出しアドレスと前記バックアップ手段に記憶されているアドレスとを比較するアドレス比較手段と、
前記読み出しアドレスに応じて前記メモリ本体から読み出されたデータを読み出し、前記アドレス比較手段の比較結果が一致の場合に、前記バックアップ手段に記憶されているエラービット位置に基づいて、前記メモリ本体から読み出されたデータを訂正する訂正手段と
を具備する半導体記憶装置。 - 書き込み対象データでありメモリ本体に書き込まれる前の第1のデータと、前記メモリ本体に書き込まれた後に読み出された第2のデータとを比較すること、
前記第1のデータと前記第2のデータとの比較結果が不一致の場合に、前記第1のデータをデータバックアップ手段に記憶すること、
前記第1のデータと前記第2のデータとの比較結果が不一致の場合に、前記書き込み対象データに対応する書き込みアドレスをアドレスバックアップ手段に記憶すること、
読み出し対象データに対応する読み出しアドレスと前記アドレスバックアップ手段に記憶されているアドレスとを比較すること、
前記読み出しアドレスと前記アドレスバックアップ手段に記憶されているアドレスとの比較結果が不一致の場合に、前記読み出しアドレスに応じて前記メモリ本体から読み出されたデータを前記読み出し対象データとして選択し、前記読み出しアドレスと前記アドレスバックアップ手段に記憶されているアドレスとの比較結果が一致の場合に、前記データバックアップ手段から読み出されたデータを前記読み出し対象データとして選択すること
を具備する半導体記憶装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010171134A JP2012033222A (ja) | 2010-07-29 | 2010-07-29 | 半導体記憶装置およびその制御方法 |
US13/194,122 US8856614B2 (en) | 2010-07-29 | 2011-07-29 | Semiconductor memory device detecting error |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010171134A JP2012033222A (ja) | 2010-07-29 | 2010-07-29 | 半導体記憶装置およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012033222A true JP2012033222A (ja) | 2012-02-16 |
Family
ID=45846469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010171134A Withdrawn JP2012033222A (ja) | 2010-07-29 | 2010-07-29 | 半導体記憶装置およびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012033222A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016153928A (ja) * | 2015-02-20 | 2016-08-25 | 日本電気株式会社 | 記憶装置およびその制御方法 |
JP2017502445A (ja) * | 2014-01-08 | 2017-01-19 | クアルコム,インコーポレイテッド | 抵抗性メモリのビット不良のリアルタイム訂正 |
CN112542199A (zh) * | 2020-12-30 | 2021-03-23 | 深圳市芯天下技术有限公司 | 检测flash存储出错的方法、电路、存储介质和终端 |
-
2010
- 2010-07-29 JP JP2010171134A patent/JP2012033222A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017502445A (ja) * | 2014-01-08 | 2017-01-19 | クアルコム,インコーポレイテッド | 抵抗性メモリのビット不良のリアルタイム訂正 |
KR101746701B1 (ko) | 2014-01-08 | 2017-06-13 | 퀄컴 인코포레이티드 | 저항성 메모리에서의 비트 결함의 실시간 정정 |
JP2016153928A (ja) * | 2015-02-20 | 2016-08-25 | 日本電気株式会社 | 記憶装置およびその制御方法 |
CN112542199A (zh) * | 2020-12-30 | 2021-03-23 | 深圳市芯天下技术有限公司 | 检测flash存储出错的方法、电路、存储介质和终端 |
CN112542199B (zh) * | 2020-12-30 | 2024-04-12 | 芯天下技术股份有限公司 | 检测flash存储出错的方法、电路、存储介质和终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10061512B2 (en) | Data storage device and data writing method thereof | |
US8856614B2 (en) | Semiconductor memory device detecting error | |
JP5283845B2 (ja) | ビットエラーの予防方法、情報処理装置 | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
JP2008198310A (ja) | ビットエラーの修復方法および情報処理装置 | |
US10152280B2 (en) | Storage device and control method | |
JP2003058432A (ja) | メモリカード及びメモリコントローラ | |
US9804921B2 (en) | Nonvolatile memory apparatus and control method of nonvolatile memory apparatus | |
US10198198B2 (en) | Storage device that stores setting values for operation thereof | |
WO2016180093A1 (zh) | Flash芯片读写控制电路和方法、AMOLED应用电路 | |
JP5981906B2 (ja) | 画像形成装置 | |
US20120221773A1 (en) | Nonvolatile semiconductor memory device | |
US9043675B2 (en) | Storage device | |
JP2012033222A (ja) | 半導体記憶装置およびその制御方法 | |
JP5883284B2 (ja) | 半導体メモリ制御装置及び制御方法 | |
JP2016018473A (ja) | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 | |
JP4661369B2 (ja) | メモリコントローラ | |
JP2010108253A5 (ja) | ||
TWI483107B (zh) | 串列介面快閃記憶體裝置及其狀態暫存器的寫入方法 | |
JP2008310896A (ja) | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 | |
JP2009230475A (ja) | 不揮発性半導体記憶部を含む記憶システム | |
CN108255633B (zh) | 存储控制方法、存储装置 | |
JP2013200692A (ja) | メモリシステム | |
US10120614B2 (en) | Storage device, storage system, and method of controlling storage device | |
JP6631513B2 (ja) | メモリ制御装置、メモリ装置およびメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131001 |