(57)【要約】【課題】半導体記憶装置の動作の不安定要因に対応しつつ低消費電力化を実現する。【解決手段】半導体記憶装置１は、第１のメモリ部２２の動作環境とデータ誤り率との対応関係を示すメモリ特性保持部１６を記憶するための動作環境情報記憶部１１と、第１のメモリ部２２に格納されるデータに基づいて、データのビットの誤りを段階的に訂正する第１のエラー訂正部２０および第２のエラー訂正部３０と、アクセス回数保持部１７、温度情報保持部１８、データ保持期間保持部１９に保持される各パラメータとメモリ特性保持部１６とを比較して、アクセス対象となるメモリのデータの誤り率を推定する誤り率推定部１２と、推定される誤り率に基づいて、第２のエラー訂正部３０への電源供給を、エラー訂正段階に応じて制御する電源供給制御部１３とを含む。【選択図】図１
2014035673.tif 000002
【特許請求の範囲】
【請求項１】
メモリの動作環境とデータ誤り率との対応関係を示す、１種類以上の動作環境情報を記憶するための記憶部と、
前記メモリに格納されるデータに基づいて、前記データのビットの誤りを訂正するための複数の誤り訂正機能を有するエラー訂正部と、
前記メモリの動作環境を示す動作環境パラメータを取得し、前記動作環境情報と、前記動作環境パラメータとに基づいて、アクセス対象となるメモリのデータの誤り率を推定する推定部と、
前記推定される誤り率に基づいて、誤り訂正に使用する前記誤り訂正機能を選択し、選択した前記誤り訂正機能を実現する回路へ電源供給する制御部とを含む、
半導体記憶装置。
【請求項２】
前記エラー訂正部は、
前記誤り訂正機能を実行するための、１ビットのエラーを訂正する１ビット訂正部と、
前記誤り訂正機能を実行するための、２ビットのエラーを訂正する２ビット訂正部とを含み、
前記制御部は、前記誤り率が所定の閾値よりも大きい場合は、前記１ビット訂正部および前記２ビット訂正部を選択して前記1ビット訂正部および前記２ビット訂正部へ電源を供給し、前記誤り率が所定の閾値に満たない場合は、前記２ビット訂正部を選択せず前記２ビット訂正部への電源供給を停止する、
請求項１記載の半導体記憶装置。
【請求項３】
前記推定部は、前記メモリのアクセス対象となる各ラインについて、前記動作環境情報に基づいて前記誤り率を推定し、
前記制御部は、前記推定部が推定する、ラインごとの前記誤り率に基づいて、各ラインへのアクセス時の前記誤り訂正機能への電源供給を制御する、
請求項１記載の半導体記憶装置。
【請求項４】
前記記憶部は、前記メモリへのアクセス回数を、前記動作環境情報として記憶するためのものであり、
前記推定部は、前記動作環境パラメータとして、前記メモリへのアクセス回数を取得する、
請求項１記載の半導体記憶装置。
【請求項５】
前記記憶部は、前記メモリの動作温度を、前記動作環境情報として記憶するためのものであり、
前記推定部は、前記動作環境パラメータとして、前記メモリの動作温度を取得する、
請求項１記載の半導体記憶装置。
【請求項６】
前記記憶部は、前記メモリのデータ保持期間を、前記動作環境情報として記憶するためのものであり、
前記推定部は、前記動作環境パラメータとして、前記メモリのデータ保持期間を取得する、
請求項１記載の半導体記憶装置。
【請求項７】
半導体記憶装置における電源供給制御の方法であって、
前記半導体記憶装置は、メモリの動作環境とデータ誤り率との対応関係を示す、１種類以上の動作環境情報を記憶するための記憶部と、前記メモリに格納されるデータに基づいて、前記データのビットの誤りを訂正するための複数の誤り訂正機能を有するエラー訂正部とを含み、
前記方法は、前記半導体記憶装置が、
前記メモリの動作環境を示す動作環境パラメータを取得し、前記動作環境情報と、前記動作環境パラメータとに基づいて、アクセス対象となるメモリのデータの誤り率を推定するステップと、
前記推定される誤り率に基づいて、誤り訂正に使用する前記誤り訂正機能を選択し、選択した誤り訂正機能へ電源供給するステップとを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正機能を有する半導体記憶装置に関し、特に、消費電力を制御するための技術に関する。
【背景技術】
【０００２】
不揮発性メモリなどを備える半導体記憶装置は、メモリに記憶されるデータの信頼性を高めるため、誤り訂正など様々な技術が用いられている。このような誤り訂正技術とともに、低消費電力化のための技術も開発されている。
【０００３】
例えば、半導体記憶装置は、複数種類の誤り訂正技術を用いて、段階的に誤り訂正技術を適用する。特開２００９−８０６５１号公報（特許文献１）は、誤り訂正能力を損なうことなく消費電力および回路規模を低減するために、段階的に誤り訂正技術を適用する技術を開示する。特許文献１に記載された技術によると、半導体記憶装置は、誤り訂正処理の結果、全ての読み出しデータに誤りが存在しない場合は、以降の段階の誤り訂正処理を実行しないことにより、低消費電力化を実現する。特開２００９−２１１２０９号公報（特許文献２）は、フラッシュメモリ等の不良ビットのあるメモリに、誤り訂正技術を適用する場合に、誤り訂正能力の異なる複数種類の訂正符号化を行う技術を開示する。特開２００９−５９４２２号公報は（特許文献３）は、フラッシュメモリにおいて、消費電力を削減するための誤り訂正技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−８０６５１号公報
【特許文献２】特開２００９−２１１２０９号公報
【特許文献３】特開２００９−５９４２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、半導体記憶装置の動作が不安定となる要因は、様々なものがある。そのため、半導体記憶装置に保持されるデータは、これら様々な要因によりデータが反転する恐れがある。そのため、これら半導体記憶装置の動作が不安定となる要因に対応しつつ、低消費電力化を実現する半導体記憶装置が必要とされている。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施形態に従う半導体記憶装置は、メモリの動作環境とデータ誤り率との対応関係を示す、１種類以上の動作環境情報を記憶するための記憶部と、メモリに格納されるデータに基づいて、データのビットの誤りを訂正するための複数の誤り訂正機能を有するエラー訂正部と、メモリの動作環境を示す動作環境パラメータを取得し、動作環境情報と、動作環境パラメータに基づいて、アクセス対象となるメモリのデータの誤り率を推定する推定部と、推定される誤り率に基づいて、誤り訂正に使用する誤り訂正機能を選択し、選択した誤り訂正機能を実現する回路へ電源供給する制御部とを含む。
【発明の効果】
【０００８】
一実施形態に従う半導体記憶装置によると、省電力化を実現しつつ、半導体記憶装置が保持するデータの信頼性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】半導体記憶装置１の構成を示すブロック図である。
【図２】第１のメモリ部２２へのアクセス回数とデータ誤り率との対応関係を示す図である。
【図３】第１のメモリ部２２の動作温度とデータ誤り率との対応関係を示す図である。
【図４】第１のメモリ部２２のデータの保持期間とデータ誤り率との対応関係を示す図である。
【図５】誤り率推定部１２の動作を示すフローチャートである。
【図６】メモリアクセス制御部１４によるメモリアクセスおよびエラー訂正の制御を示す図である。
【図７】第２のエラー訂正部３０への電源供給が停止される場合の半導体記憶装置１の動作を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１１】
＜構成＞
図１は、半導体記憶装置１の構成を示すブロック図である。
【００１２】
図１に示すように、半導体記憶装置１は、制御部１０と、第１のエラー訂正部２０と、第２のエラー訂正部３０とを含む。
【００１３】
制御部１０は、動作環境情報記憶部１１と、誤り率推定部１２と、電源供給制御部１３と、メモリアクセス制御部１４とを含み、半導体記憶装置１の動作環境に応じて、後述する第２のエラー訂正部３０への電源供給を制御する。
【００１４】
動作環境情報記憶部１１は、メモリにより構成され、半導体記憶装置１の動作環境を示す各種パラメータを保持する。動作環境情報記憶部１１は、メモリ特性保持部１６と、アクセス回数保持部１７と、温度情報保持部１８と、データ保持期間保持部１９とを含む。
【００１５】
メモリ特性保持部１６は、第１のメモリ部２２および第２のメモリ部３２のメモリの特性を保持する。メモリの特性とは、メモリの動作環境と、メモリのデータ誤り率との対応関係を示すものである。メモリの動作環境とは、メモリへのアクセス回数、メモリにおけるデータ保持期間、メモリの動作温度などである。メモリの特性の詳細は、後述する。
【００１６】
アクセス回数保持部１７は、半導体記憶装置１が読み出しまたは書き込みするデータを保持する第１のメモリ部２２などのメモリの各アドレスと、そのアドレスへのアクセス回数とを対応づけて格納する。アクセス回数保持部１７では、メモリへのアクセス回数を、メモリのライン単位で管理する。
【００１７】
温度情報保持部１８は、半導体記憶装置１の動作温度を保持する。図示しない温度センサが第１のメモリ部２２の動作温度を測定しており、この温度センサの出力値が温度情報保持部１８に逐次格納される。
【００１８】
データ保持期間保持部１９は、第１のメモリ部２２などのメモリの各アドレスと、そのアドレスにおいてデータが保持されている保持期間とを対応づけて格納する。データ保持期間保持部１９では、メモリにおけるデータの保持期間を、メモリのライン単位で管理する。
【００１９】
誤り率推定部１２は、メモリ特性保持部１６に格納されるメモリの特性と、アクセス回数保持部１７、温度情報保持部１８、データ保持期間保持部１９に格納される各パラメータ（メモリの動作環境）とに基づいて、第１のメモリ部２２におけるデータの誤り率を推定し、推定結果を出力する。例えば、誤り率推定部１２は、データの誤り率を推定し、「高い」「低い」のいずれかを電源供給制御部１３へ出力する。
【００２０】
電源供給制御部１３は、誤り率推定部１２が出力する誤り率の推定値に基づいて、第２のエラー訂正部３０への電源供給を制御する。電源供給制御部１３は、例えば、誤り率推定部１２が出力する出力結果が、誤り率が「高い」であれば、第２のエラー訂正部３０へ電源を供給し、誤り率が「低い」であれば、第２のエラー訂正部３０への電源供給を停止する。
【００２１】
メモリアクセス制御部１４は、図示しない外部からのデータ書き込み要求またはデータ読み出し要求に応じて、第１のメモリ部２２へのデータの書き込み動作（ライト）、および、第１のメモリ部２２からのデータの読み出し動作（リード）を制御する。メモリアクセス制御部１４は、第１のメモリ部２２に含まれるメモリセルアレイへアクセスするため、アクセス対象のメモリアドレスを示すアドレス信号を行デコータおよび列デコーダへ出力する。また、メモリアクセス制御部１４は、第１のメモリ部２２および第２のメモリ部３２に含まれるメモリセルへアクセスするためのワードライン、ビットライン、センスアンプ等を活性化させるための各種信号を出力する。メモリアクセス制御部１４は、第１のメモリ部２２への書き込みデータを、１ビット誤り訂正部２１および２ビット誤り訂正部３１へ出力する。メモリアクセス制御部１４は、第１のメモリ部２２からの読み出しデータを受け付ける。また、メモリアクセス制御部１４は、後述する第１のエラー訂正部２０および第２のエラー訂正部３０における誤り判定の結果を受け付けて、訂正不能の誤りの場合に、エラーを表示するための処理を行う。
【００２２】
第１のエラー訂正部２０は、１ビット誤り訂正部２１第１のメモリ部２２１ビット誤り判定部２３を含み、半導体記憶装置１において読み出しまたは書き込みするデータを保持する。第１のエラー訂正部２０は、保持するデータの信頼性を高めるため、誤り訂正機能を有する。
【００２３】
１ビット誤り訂正部２１は、第１のメモリ部２２への書き込みデータに基づいて、１ビットの誤りを訂正するためのＥＣＣ（Error-Correcting Code）ビットを生成する。
【００２４】
第１のメモリ部２２は、不揮発性メモリなどにより構成され、アドレスごとに、半導体記憶装置１への書き込みデータと、この書き込みデータに対応して１ビット誤り訂正部２１で生成されたＥＣＣビットとを対応づけて保持する。図１では、第１のメモリ部２２での保持内容を、記憶データ及びＥＣＣビット２４Ａ、記憶データ及びＥＣＣビット２４Ｂ、・・として示している。
【００２５】
１ビット誤り判定部２３は、第１のメモリ部２２で保持されるＥＣＣビットに基づいて、第１のメモリ部２２で保持されるデータに誤りがあるか判定する。１ビット誤り判定部２３は、データに誤りがあると判定し、ＥＣＣビットにより１ビットの訂正が可能である場合は、訂正後のデータを、１ビット誤り訂正部２１へ出力する。１ビット誤り判定部２３は、第１のメモリ部２２から読みだしたデータを、メモリアクセス制御部１４へ出力する。また、１ビット誤り判定部２３は、誤り判定の結果を、メモリアクセス制御部１４へ出力する。
【００２６】
第２のエラー訂正部３０は、２ビット誤り訂正部３１と、第２のメモリ部３２と、２ビット誤り判定部３３を含み、第１のエラー訂正部２０と比較して、より強力な誤り訂正機能を発揮する。第１のエラー訂正部２０では、１ビットの誤り訂正と２ビットの誤り検出が可能であるのに対し、第２のエラー訂正部３０では、２ビットの誤り訂正と３ビットの誤り検出が可能である。
【００２７】
２ビット誤り訂正部３１は、メモリアクセス制御部１４から出力される書き込みデータに基づいて、２ビットの誤りを訂正するためのＥＣＣビットを生成する。
【００２８】
第２のメモリ部３２は、不揮発性メモリなどにより構成され、第１のメモリ部２２のアドレスごとに、書き込みデータと、この書き込みデータに対応して２ビット誤り訂正部３１で生成されたＥＣＣビットとを対応づけて保持する。図１では、第２のメモリ部３２での保持内容を、ＥＣＣビット３４Ａ、ＥＣＣビット３４Ｂ、・・として示している。
【００２９】
２ビット誤り判定部３３は、第２のメモリ部３２で保持されるＥＣＣビットに基づいて、第１のメモリ部２２で保持されるデータに誤りがあるか判定する。２ビット誤り判定部３３は、データに誤りがあると判定し、ＥＣＣビットにより２ビットの訂正が可能である場合は、訂正後のデータを、２ビット誤り訂正部３１へ出力する。２ビット誤り判定部３３は、誤り判定の結果を、メモリアクセス制御部１４へ出力する。
【００３０】
上記構成を備えることで、半導体記憶装置１は、不揮発性メモリなどのメモリの動作状況や、動作環境に基づいて、メモリで保持されるデータが誤る確率を推定し、誤る確率が高い場合に、第２のエラー訂正部３０のデータ訂正機能を発揮させる。一方、半導体記憶装置１は、メモリで保持されるデータが誤る確率が低い場合は、第２のエラー訂正部３０への電源供給を制限する。これにより、半導体記憶装置１は、メモリの動作状況や、動作環境に応じて、誤り訂正機能を過剰に使用することなく動作することができ、低消費電力化を実現する。
【００３１】
＜データ＞
次に、図２等を参照し、メモリ特性保持部１６において保持される、第１のメモリ部２２のメモリ特性について説明する。
【００３２】
図２は、第１のメモリ部２２へのアクセス回数とデータ誤り率との対応関係を示す図である。メモリは、アクセス回数が増えるにつれて劣化し、データの保持能力が低下する。図２に示すように、メモリのあるアドレスに対するアクセス回数の累計が増えてくるにつれて、データの誤り率が高まる。そのため、頻繁にアクセスされるアドレスにおいては、保持されるデータの信頼性が低下する。
【００３３】
図３は、第１のメモリ部２２の動作温度とデータ誤り率との対応関係を示す図である。図３に示すように、メモリは、動作に適した温度帯があり、この温度帯よりも低温か高温であると、メモリに保持されるデータの誤り率が高まる。
【００３４】
図４は、第１のメモリ部２２のデータの保持期間とデータ誤り率との対応関係を示す図である。保持期間とは、メモリへのアクセスが最後になされてから経過した時間である。図４に示すように、メモリにおいて、長期間アクセスがされないと、保持されるデータが反転する可能性が高まる。
【００３５】
＜動作＞
次に、図５等を参照し、半導体記憶装置１の動作について説明する。本実施形態では、半導体記憶装置１は、メモリアクセス制御部１４が、外部から第１のメモリ部２２への書き込み要求または第１のメモリ部２２からの読み出し要求を受けることで動作を開始する。メモリアクセス制御部１４は、アクセス先のメモリのラインを指定して、誤り率推定部１２へ制御信号を出力し、誤り率推定部１２に、アクセス先のラインにおける、第１のメモリ部２２の誤り率の推定を開始させる。
【００３６】
＜誤り率推定部１２の誤り率の推定動作＞
図５は、誤り率推定部１２の動作を示すフローチャートである。
【００３７】
ステップＳ５１において、誤り率推定部１２は、温度情報保持部１８から、第１のメモリ部２２の動作温度を読み出すとともに、メモリ特性保持部１６から、第１のメモリ部２２の動作温度とデータ誤り率との対応関係を示すメモリ特性に関する情報を読み出す。誤り率推定部１２は、読みだした動作温度と、メモリ特性に関する情報とを比較して、第１のメモリ部２２の動作温度に応じたデータ誤り率を取得する。
【００３８】
ステップＳ５３において、誤り率推定部１２は、データ保持期間保持部１９から、アクセス先のメモリのラインのデータ保持期間（最後にアクセスされてから経過した時間）を読みだすとともに、メモリ特性保持部１６から、第１のメモリ部２２のデータの保持期間とデータ誤り率との対応関係を示すメモリ特性に関する情報を読み出す。誤り率推定部１２は、読みだしたデータ保持期間と、メモリ特性に関する情報とを比較して、第１のメモリ部２２のデータの保持期間に応じたデータ誤り率を取得する。
【００３９】
ステップＳ５５において、誤り率推定部１２は、アクセス回数保持部１７から、アクセス先のメモリのラインのアクセス回数を読みだすとともに、メモリ特性保持部１６から、第１のメモリ部２２のアクセス回数とデータ誤り率との対応関係を示すメモリ特性に関する情報を読み出す。誤り率推定部１２は、読みだしたアクセス回数と、メモリ特性に関する情報とを比較して、第１のメモリ部２２へのアクセス回数に応じたデータ誤り率を取得する。
【００４０】
ステップＳ５７において、誤り率推定部１２は、ステップＳ５１、ステップＳ５３、ステップＳ５５で取得した各データ誤り率のうち、最も大きなデータ誤り率の値を、所定の閾値（０〜１００％の間の値。閾値は、保持するデータの信頼性について、半導体記憶装置１が要求される要件に応じて定められる）と比較する。誤り率推定部１２は、比較対象とするデータ誤り率の値が所定の閾値を上回る場合に、データ誤り率が「高い」と判定し、乗算後のデータ誤り率が所定の閾値以下の場合に、データ誤り率が「低い」と判定する。ステップＳ５７において、データ誤り率について、誤り率推定部１２が「高い」と判定する場合、誤り率推定部１２は、ステップＳ５９へ処理を進める。ステップＳ５７において、データ誤り率について、誤り率推定部１２が「低い」と判定する場合、誤り率推定部１２は、ステップＳ６３へ処理を進める。
【００４１】
誤り率推定部１２がデータ誤り率を「高い」と判定する場合を説明する。ステップＳ５９において、誤り率推定部１２は、電源供給制御部１３に対し制御信号を出力し、電源供給制御部１３が第２のエラー訂正部３０に電源を供給するよう指示する。電源供給制御部１３は、この誤り率推定部１２からの指示を受けて、第２のエラー訂正部３０へ電源を供給する。また、電源供給制御部１３は、制御信号をメモリアクセス制御部１４へ出力することで、第２のエラー訂正部３０へ電源を供給していることをメモリアクセス制御部１４へ通知する。
【００４２】
ステップＳ６１において、誤り率推定部１２は、アクセス先のメモリのラインのアクセス回数を更新し、更新後の値を、アクセス回数保持部１７に格納する。
【００４３】
誤り率推定部１２がデータ誤り率を「低い」と判定する場合を説明する。ステップＳ６３において、誤り率推定部１２は、電源供給制御部１３に対し制御信号を出力し、電源供給制御部１３が第２のエラー訂正部３０に電源を供給しないよう指示する。この誤り率推定部１２からの指示を受けて、電源供給制御部１３は、第２のエラー訂正部３０への電源供給を停止する。これにより、第２のエラー訂正部３０は、動作を停止する。また、電源供給制御部１３は、制御信号をメモリアクセス制御部１４へ出力することで、第２のエラー訂正部３０への電源供給を停止させたことをメモリアクセス制御部１４へ通知する。
【００４４】
ステップＳ６５において、誤り率推定部１２は、アクセス先のメモリのラインのアクセス回数を更新し、更新後の値を、アクセス回数保持部１７に格納する。
【００４５】
＜メモリアクセス制御部１４によるメモリアクセスおよびデータ訂正動作＞
次に、図６等を用いて半導体記憶装置１のメモリアクセス制御部１４の動作について説明する。図６は、メモリアクセス制御部１４によるメモリアクセスおよびエラー訂正の制御を示す図である。
【００４６】
ステップＳ７１において、メモリアクセス制御部１４は、誤り率推定部１２が誤り率を推定した結果、電源供給制御部１３が第２のエラー訂正部３０への電源供給をしているか、電源供給を停止しているかの通知を受けて、第２のエラー訂正部３０への電源供給の有無を判定する。メモリアクセス制御部１４は、第２のエラー訂正部３０へ電源供給されていると判定した場合、ステップＳ７３へ処理を進め、第２のエラー訂正部３０への電源供給が停止されていると判定した場合、後述する「Ｓ２」へと処理を進める。
【００４７】
＜第２のエラー訂正部３０への電源供給がある場合＞
ステップＳ７３において、メモリアクセス制御部１４は、外部からのメモリアクセスが、書き込み（ライト）動作であるか、読みこみ（リード）動作であるか判定する。メモリアクセス制御部１４は、書き込み動作と判定する場合、処理をステップＳ７５へ進める。メモリアクセス制御部１４は、読みこみ動作と判定される場合、ステップＳ８１およびステップＳ９１の処理を実行する。
【００４８】
＜第１のメモリ部２２への書き込み動作時＞
ステップＳ７５において、メモリアクセス制御部１４は、書き込み対象となるメモリのラインについて、データ保持期間保持部１９の記憶内容をクリアする。
【００４９】
ステップＳ７７において、メモリアクセス制御部１４は、第１のエラー訂正部２０および第２のエラー訂正部３０へ書き込みデータを出力する。第１のエラー訂正部２０は、書き込みデータをメモリアクセス制御部１４から受け付けて、１ビット誤り訂正部２１がＥＣＣビットを生成し、第１のメモリ部２２が、書き込みデータと、１ビット誤り訂正部２１が生成したＥＣＣビットとを対応づけて記憶する。第２のエラー訂正部３０は、書き込みデータをメモリアクセス制御部１４から受け付けて、２ビット誤り訂正部３１がＥＣＣビットを生成し、第２のメモリ部３２が、２ビット誤り訂正部３１が生成したＥＣＣビットを記憶する。
【００５０】
＜第１のメモリ部２２からの読み出し動作時＞
次に、メモリアクセス制御部１４が第１のメモリ部２２からデータを読み出す場合の半導体記憶装置１の動作について説明する。
【００５１】
ステップＳ８１において、メモリアクセス制御部１４は、アクセス先のアドレスに基づいて、第１のメモリ部２２にアクセスし、指定されたアドレスに格納される記憶データ及びＥＣＣビット２４を読みだす。１ビット誤り判定部２３は、読みだされた記憶データ及びＥＣＣビット２４のＥＣＣビットに基づいて、１ビット誤り訂正および２ビット誤り検出処理を実行する。
【００５２】
ステップＳ８３において、１ビット誤り判定部２３は、ＥＣＣビットを用いた誤り検出の結果、１ビットの誤りの場合、ステップＳ８５へ処理を進めるとともに、１ビットの誤りがあることをメモリアクセス制御部１４へ通知する。メモリアクセス制御部１４は、ステップＳ９９へ処理を進めて、１ビットの誤りがある旨を表示するためのエラー処理を実行する。ステップＳ８３において、１ビット誤り判定部２３は、２ビット以上の誤りと判定すると、２ビット以上の誤りがあることをメモリアクセス制御部１４へ通知する。メモリアクセス制御部１４は、ステップＳ９９へ処理を進めて、２ビット以上の誤りがある旨を表示するためのエラー処理を実行する。ステップＳ８３において、１ビット誤り判定部２３による誤り検出の結果、誤りがない場合、第１のメモリ部２２の読み出しデータがメモリアクセス制御部１４へ出力される。
【００５３】
ステップＳ８５において、１ビット誤り判定部２３は、１ビットの誤り訂正を行う。
また、メモリアクセス制御部１４は、２ビット誤り検出にも対応した処理を実行する。
【００５４】
ステップＳ９１において、メモリアクセス制御部１４は、第２のメモリ部３２から、アクセス先のアドレスに基づいて、第１のメモリ部２２のデータに対応するＥＣＣビット３４を読みだす。
【００５５】
ステップＳ９３において、２ビット誤り判定部３３は、誤り訂正処理を実行する。２ビット誤り判定部３３は、ＥＣＣビット３４に基づいて、２ビット誤り訂正および３ビット誤り検出処理を実行する。ステップＳ９３において、誤りがないと判定される場合は、２ビット誤り判定部３３からメモリアクセス制御部１４へ、誤りがないことの通知がなされて処理を終える。ステップＳ９３において、２ビット誤り判定部３３によるＥＣＣビット３４を用いた誤り検出の結果、２ビット以下の誤りと判定されると、ステップＳ９５へ処理を進める。ステップＳ９３において、３ビット以上の誤りがあると判定される場合は、２ビット誤り判定部３３は、３ビット以上の誤りがあることをメモリアクセス制御部１４へ通知する。メモリアクセス制御部１４は、ステップＳ９９へ処理を進めて、３ビット以上の誤りがある旨を表示するためのエラー処理を実行する。
【００５６】
＜第２のエラー訂正部３０への電源供給が停止される場合の動作＞
次に、ステップＳ７１において、第２のエラー訂正部３０への電源供給が停止される場合について、説明する。図７は、第２のエラー訂正部３０への電源供給が停止される場合の半導体記憶装置１の動作を示すフローチャートである。
【００５７】
ステップＳ１０１において、メモリアクセス制御部１４は、外部からのメモリアクセスが、書き込み（ライト）動作であるか、読みこみ（リード）動作であるか判定する。メモリアクセス制御部１４は、書き込み動作と判定する場合、処理をステップＳ１２１へ進める。メモリアクセス制御部１４は、読みこみ動作と判定される場合、ステップＳ１１１へ処理を進める。
【００５８】
＜読みこみ動作時＞
ステップＳ１１１において、メモリアクセス制御部１４は、アクセス先のアドレスに基づいて、第１のメモリ部２２にアクセスし、指定されたアドレスに格納される記憶データ及びＥＣＣビット２４を読みだす。１ビット誤り判定部２３は、読みだされた記憶データ及びＥＣＣビット２４のＥＣＣビットに基づいて、１ビット誤り訂正および２ビット誤り検出処理を実行する。
【００５９】
ステップＳ１１３において、１ビット誤り判定部２３は、ＥＣＣビットを用いた誤り検出の結果、誤りがない場合は、読みだしたデータをメモリアクセス制御部１４へ出力する。１ビット誤り判定部２３は、ＥＣＣビットを用いた誤り検出の結果、２ビット以上の誤りがある場合、２ビット以上の誤りがあることをメモリアクセス制御部１４へ通知してステップＳ１１５へ処理を進める。ステップＳ１１５において、メモリアクセス制御部１４は、２ビット以上の誤りがある旨を表示するためのエラー処理を実行する。
【００６０】
ステップＳ１１３において、１ビット誤り判定部２３は、ＥＣＣビットを用いた誤り検出の結果、１ビットの誤りの場合、ステップＳ１１７へ処理を進めるとともに、１ビットの誤りがあることをメモリアクセス制御部１４へ通知する。
【００６１】
ステップＳ１２１において、メモリアクセス制御部１４は、アクセス先のアドレスに対応するデータ保持期間保持部１９の記憶内容をクリアする。
【００６２】
ステップＳ１２３において、１ビット誤り判定部２３は、１ビットの誤り訂正後のデータを、１ビット誤り訂正部２１へ出力して、１ビット誤り訂正部２１に、誤り訂正後のデータに基づくＥＣＣビットを生成させる。１ビット誤り訂正部２１は、生成されたＥＣＣビットと、誤り訂正後のデータを、第１のメモリ部２２へ格納する。１ビット誤り判定部２３は、誤り訂正後のデータをメモリアクセス制御部１４へ出力する。
【００６３】
＜書き込み動作時＞
ステップＳ１０１において、外部からのメモリアクセスが書き込みと判定される場合、メモリアクセス制御部１４は、ステップＳ１２１へ処理を進める。
【００６４】
ステップＳ１２１において、メモリアクセス制御部１４は、アクセス先のアドレスに対応するデータ保持期間保持部１９の記憶内容をクリアする。
【００６５】
ステップＳ１２３において、メモリアクセス制御部１４は、１ビット誤り訂正部２１へ書き込みデータを出力する。１ビット誤り訂正部２１は、書き込みデータに基づいてＥＣＣビットを生成し、書き込みデータと、生成したＥＣＣビットを、アクセス先のアドレスに対応するように、第１のメモリ部２２へ格納する。
【００６６】
＜変形例＞
上記の実施形態の説明では、誤り率推定部１２は、温度情報、データ保持期間、メモリアクセス回数と、メモリ特性保持部１６に記憶されるメモリ特性に関する情報とを比較して、最もデータ誤り率の高いものに基づいて、データ誤り率を「高い」か「低い」かに判定するものと説明した。
【００６７】
これに限らず、例えば、温度情報、データ保持期間、メモリアクセス回数のそれぞれのパラメータに応じて、誤り率が得られるが、これら各パラメータについて、誤り率を「高い」か「低い」かに判定するための閾値を設定することとしてもよい。この場合、誤り率推定部１２は、各パラメータについて、誤り率と閾値とを比較する。この結果、例えば、いずれかのパラメータについて誤り率が閾値を上回れば、誤り率を「高い」と判定してもよい。
【００６８】
また、誤り率推定部１２は、温度情報、データ保持期間、メモリアクセス回数のそれぞれのパラメータに応じて得られる誤り率を乗算し、乗算後の値をデータ誤り率の推定値として算出することとしてもよい。このようにして得られる推定値に応じて、メモリアクセス制御部１４は、第１のエラー訂正部２０および第２のエラー訂正部３０への電源供給を制御することとしてもよい。
【００６９】
このように各実施形態について説明してきたが、これら実施形態を組み合わせてもよいことはいうまでもない。
【００７０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００７１】
１  半導体記憶装置、１０  制御部、１１  動作環境情報記憶部、１２  誤り率推定部、１３  電源供給制御部、１４  メモリアクセス制御部、１６  メモリ特性保持部、１７  アクセス回数保持部、１８  温度情報保持部、１９  データ保持期間保持部、２０  第１のエラー訂正部、２１  １ビット誤り訂正部、２２  第１のメモリ部、２３  １ビット誤り判定部、２４  記憶データ及びＥＣＣビット、３０  第２のエラー訂正部、３１  ２ビット誤り訂正部、３２  第２のメモリ部、３３  ２ビット誤り判定部、３４  ＥＣＣビット。
【図１】
2014035673.tif 000003
【図２】
2014035673.tif 000004
【図３】
2014035673.tif 000005
【図４】
2014035673.tif 000006
【図５】
2014035673.tif 000007
【図６】
2014035673.tif 000008
【図７】
2014035673.tif 000009