(57)【要約】【課題】データエラーの発生を抑制することができる。【解決手段】本実施の形態にかかる半導体装置は、リフレッシュ動作を行うＤＲＡＭ１１と、ＤＲＡＭ１１に電源電圧を供給する出力可変型レギュレータ３０と、ＤＲＡＭ１１のエラーを修正するＥＣＣ符号化復号化回路１８と、ＤＲＡＭ１１でのエラーレートを測定するエラーレートモニタ３５と、エラーレートモニタ３５で測定された最新のエラーレートと、前回のエラーレートを比較するエラーレート比較器３４と、エラーレート比較器３４での比較結果に応じて出力可変型レギュレータ３０が供給する電源電圧を増減させて、エラーレートを小さくするようにフィードバック制御する乗算器３３と、を備えたものである【選択図】図１
2013257918.tif 000002
【特許請求の範囲】
【請求項１】
リフレッシュ動作を行うメモリセルと、
前記メモリセルに電源電圧を供給する電源供給回路と、
前記メモリセルのエラーを修正するＥＣＣ回路と、
前記メモリセルでのエラーレートを測定するエラーレートモニタと、
前記エラーレートモニタで測定された最新のエラーレートと、前回のエラーレートを比較する比較器と、
前記比較器での比較結果に応じて前記電源供給回路が供給する電源電圧を増減させて、前記エラーレートを小さくするようにフィードバック制御する制御部と、を備え、
前記最新のエラーレートと前記前回のエラーレートの大小関係に応じて、前記電源電圧を増加させるか、又は減少させるかを決定する半導体装置。
【請求項２】
前記制御部は、
前記エラーレートの比較結果に応じて前記電源電圧を増加させた直後において、前記前回のエラーレートから前記最新のエラーレートが増加した場合に、前記制御部が前記電源電圧を減少させ、
前記エラーレートの比較結果に応じて前記電源電圧を増加させた直後において、前記前回のエラーレートから前記最新のエラーレートが減少した場合に、前記制御部が前記電源電圧を増加させ、
前記エラーレートの比較結果に応じて前記電源電圧を減少させた直後において、前記前回のエラーレートから前記最新のエラーレートが増加した場合に、前記制御部が前記電源電圧を増加させ、
前記エラーレートの比較結果に応じて前記電源電圧を減少させた直後において、前記前回のエラーレートから前記最新のエラーレートが減少した場合に、前記制御部が前記電源電圧を減少させる、請求項１に記載の半導体装置。
【請求項３】
前記最新のエラーレートと前記前回のエラーレートが同じである場合に、前記電源電圧を増減させずに維持する請求項２に記載の半導体装置。
【請求項４】
前記最新のエラーレートがしきい値以下またはエラーがない場合は、前記電源電圧を増減させずに維持する請求項３に記載の半導体装置。
【請求項５】
前記エラーレートモニタが、前記メモリセルのリフレッシュ周期のｎ倍（ｎは１以上の整数）の測定周期で検出したエラーの発生数に基づいて、前記エラーレートを測定する請求項１乃至４のいずれか１項に記載の半導体装置。
【請求項６】
前記エラーレートに応じて前記ｎの値を変化させる請求項５に記載の半導体装置。
【請求項７】
前記エラーレートモニタが、前記メモリセルで発生した最新のエラーから前回のエラーまでのリフレッシュサイクル数に基づいて、前記エラーレートを測定する請求項１乃至４のいずれか１項に記載の半導体装置。
【請求項８】
前記エラーレートに応じて、前記メモリセルのリフレッシュ周期を調整する周期調整部をさらに備えた請求項７に半導体装置。
【請求項９】
第１の時点におけるメモリのエラー発生率が所定の値よりも高い場合に、前記メモリの電源電圧を所定の電圧だけ高く設定し、
前記所定の電圧だけ高く設定された後の第２の時点における前記メモリのエラー発生率が前記第１の時点における前記エラーの発生率よりも高い場合に、前記メモリの電源電圧を前記第１の時点における前記メモリの電源電圧以下に設定する、
メモリの制御方法。
【請求項１０】
前記第１の時点における前記メモリの電源電圧以下に設定された後の第３の時点における前記メモリのエラー発生率が、前記第２の時点における前記エラー発生率よりも低い場合に、前記メモリの電源電圧を前記第３の時点における前記メモリの電源電圧以下に設定する請求項９に記載のメモリの制御方法。
【請求項１１】
メモリセルのデータのエラーをチェックし
前記メモリセルでのエラー発生回数をカウントし、
前記エラー発生回数に応じた最新のエラーレートを、前回のエラーレートと比較し、
前記エラーレートを小さくするように、前記最新のエラーレートと、前回のエラーレートとの比較結果に応じて、前記メモリセルに供給する電源電圧を増減させる、
メモリの制御方法。
【請求項１２】
前記最新のエラーレートと前記前回のエラーレートの大小関係に応じて、前記電源電圧を増加させるか、又は減少させるかを決定する請求項１１に記載のメモリの制御方法。
【請求項１３】
前記最新のエラーレートがしきい値以下の場合は、前記電源電圧を増減させずに維持する請求項１１に記載のメモリの制御方法。
【請求項１４】
前記エラーレートの比較結果に応じて、前記電源電圧を段階的に増減させる請求項１１に記載のメモリの制御方法。
【請求項１５】
前記エラーレートの比較結果に応じて前記電源電圧を増加させた直後において、前記前回のエラーレートから前記最新のエラーレートが増加した場合に、前記制御部が前記電源電圧を減少させ、
前記エラーレートの比較結果に応じて前記電源電圧を増加させた直後において、前記前回のエラーレートから前記最新のエラーレートが減少した場合に、前記制御部が前記電源電圧を増加させ、
前記エラーレートの比較結果に応じて前記電源電圧を減少させた直後において、前記前回のエラーレートから前記最新のエラーレートが増加した場合に、前記制御部が前記電源電圧を増加させ、
前記エラーレートの比較結果に応じて前記電源電圧を減少させた直後において、前記前回のエラーレートから前記最新のエラーレートが減少した場合に、前記制御部が前記電源電圧を減少させる、
請求項１１に記載のメモリの制御方法。
【請求項１６】
前記メモリセルのリフレッシュ周期のｎ倍（ｎは１以上の整数）の測定周期で検出したエラーの発生数に基づいて、前記エラーレートを測定する請求項１１に記載のメモリの制御方法。
【請求項１７】
前記エラーレートに応じて前記ｎの値を変化させる請求項１６に記載のメモリの制御方法。
【請求項１８】
前記メモリセルで発生した最新のエラーから前回のエラーまでのリフレッシュサイクル数に基づいて、前記エラーレートを測定する請求項１１に記載のメモリの制御方法。
【請求項１９】
前記エラーレートに応じて、前記メモリセルのリフレッシュ周期を調整する周期調整部をさらに請求項１１に記載のメモリの制御方法。
【請求項２０】
前記最新のエラーレートと前記前回のエラーレートが同じである場合に、前記電源電圧を増減させずに維持する請求項１１に記載のメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、及びメモリの制御方法に関し、例えば、メモリの電源電圧を制御する半導体装置、及びメモリの制御方法に関する。
【背景技術】
【０００２】
ｅＤＲＡＭ（embedded Dynamic Random Access Memory）−ＬＳＩ(Large Scale Integration)では種々な要因により保持データ化けが発生する。このため、半導体特有の拡散製造条件や電圧や温度などの動作条件、及びアクセス速度やリフレッシュ周期などの使用条件と、データ化け発生確率（エラーレートともいう）との相関が調査されている。
【０００３】
特許文献１には、エラーレートをモニタして、リフレッシュ周期を最適に設定する方法が開示されている。さらに、特許文献１には、メモリセルのデータ保持特性が良いと判定された場合に、電圧を小さくするとの記載がある。また、特許文献２には、誤り率をしきい値と比較して、電源レベルを変える方法が開示されている。具体的には、誤り率が過大な誤り率よりも大きい場合に、電源レベルをインクリメントし、誤り率が不十分な誤り率よりも大きい場合、電源レベルディクリメントとしている（図２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２５２９９号公報
【特許文献２】特開２００８−５４４３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１、２では、エラーレート（誤り率）を改善するために、電源レベルを増加している。しかしながら、この方法では、適切な電源レベルで動作させることが困難である。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、リフレッシュ動作を行うメモリセルと、前記メモリセルのエラーを修正するＥＣＣ回路と、最新のエラーレートと、前回のエラーレートを比較する比較器と、を備えており、前記比較器での比較結果に応じて前記電源供給回路が供給する電源電圧を増減させて、前記エラーレートを小さくするようにフィードバック制御する。
【発明の効果】
【０００８】
前記一実施の形態によれば、データエラーの発生を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる半導体装置の構成を示すブロック図である。
【図２】エラーレートと電源電圧の関係を示すグラフである。
【図３】実施の形態１にかかるメモリの制御方法を示すフローチャートである。
【図４】実施の形態１にかかるメモリの制御方法において、リフレッシュとＥＣＣの処理を詳細に示すフローチャートである。
【図５】実施の形態２にかかるメモリの制御方法を示すフローチャートである。
【図６】実施の形態３にかかる半導体装置の構成を示すブロック図である。
【図７】実施の形態３にかかるメモリの制御方法において、リフレッシュとＥＣＣの処理を詳細に示すフローチャートである。
【図８】実施の形態４にかかる半導体装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
実施の形態１
半導体装置は、メモリセルが組み込まれたｅＤＲＡＭ−ＬＳＩである。さらに、半導体装置は、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）によって、エラー訂正を行う。本実施の形態にかかる半導体装置について、図１を用いて説明する。図１は、本実施の形態にかかる半導体装置の構成を示すブロック図である。
【００１１】
半導体装置は、ＤＲＡＭ１１、Ｒ／Ｗアドレス入力回路１２、アドレス制御部１３、データＲ／Ｗ制御部１４、Ｉ／Ｏバッファ回路１５、リフレッシュアドレス／タイミング生成回路１６、ＥＣＣ符号化復号化回路１８を有している。さらに、半導体装置は、出力可変型レギュレータ３０電圧モニタ３１、電圧比較器３２、乗算器３３、エラーレート比較器３４、エラーレートモニタ３５を有している。各構成要素は、適宜バスラインによって接続されている。
【００１２】
ＤＲＡＭ１１はデータを記憶するメモリセルである。ＤＲＡＭ１１は複数のビット線と、複数のワード線を有している。ＤＲＡＭ１１は、リフレッシュ動作を行う。さらに、ＤＲＡＭ１１は、誤り訂正のためのＥＣＣコードを記憶する。
【００１３】
Ｒ／Ｗアドレス入力回路１２には、外部機器（ホスト装置）からのアドレス信号が入力される。そして、Ｒ／Ｗアドレス入力回路１２は、アドレス信号に基づいて、ＤＲＡＭ１１のアドレスをアドレス制御部１３に入力する。すなわち、Ｒ／Ｗアドレス入力回路１２は、ＤＲＡＭ１１にデータを書き込むためのアドレス、又はＤＲＡＭ１１からデータを読み出すためのアドレスをアドレス制御部１３に入力する。書き込みアドレス、及び読み出しアドレスは、ワード線、及びビット線、すなわち、ロウアドレス、及びカラムアドレスによって指定される。このように、アドレス制御部１３は、ＤＲＡＭ１１のアドレスを制御する。
【００１４】
Ｉ／Ｏバッファ回路１５は、外部回路等（図示せず）からＤＲＡＭ１１に書き込むデータ、及びＤＲＡＭ１１から外部回路等に読み出すデータをバッファする。データＲ／Ｗ制御部１４は、ＤＲＡＭ１１へのデータの書き込み、及びＤＲＡＭ１１からのデータの読み出しを制御する。アドレス制御部１３で指定されたアドレスに、データＲ／Ｗ制御部１４がデータを書き込む。あるいは、アドレス制御部１３で指定されたアドレスから、データＲ／Ｗ制御部１４がデータを読み出す。例えば、アドレス制御部１３で指定された書き込みアドレスの選択トランジスタを介して、キャパシタへの充放電が行われることで、データが書き込まれる。アドレス制御部１３で指定された書き込みアドレスの選択トランジスタを介して、キャパシタから流れる放電電流に基づいて、データが読み出される。このようにして、ＤＲＡＭ１１へのデータの書き込む、及びＤＲＡＭ１１からのデータの読み出しが制御される。
【００１５】
リフレッシュアドレス／タイミング生成回路１６は、ＤＲＡＭ１１のリフレッシュを行うアドレスとタイミングを生成する。リフレッシュアドレス／タイミング生成回路１６は、リフレッシュのアドレスを、アドレス制御部１３に出力する。従って、リフレッシュアドレス／タイミング生成回路１６で生成されたタイミング、及びアドレスで、ＤＲＡＭ１１のリフレッシュが行われる。例えば、リフレッシュアドレス／タイミング生成回路１６は、１ワード線毎に順番に指定していく。そして、最後のワード線を指定したら、最初のワード線に戻って、リフレッシュを繰り返す。ＤＲＡＭ１１の１カラム毎にリフレッシュが行われる。ここでのリフレッシュ動作は各キャパシタに蓄えられた電荷が放電してデータ化けが起こらないように、一定間隔以内に繰り返す必要がある。全アドレスを満遍なくリフレッシュする場合、１リフレッシュ周期は、ＤＲＡＭ１１の全データアドレスをリフレッシュするために要する時間と同じとなり、例えば、１０ｍｓｅｃ程度である。このように、アドレス制御部１３は、データの読み出し、データ書き込み、及び、リフレッシュにおけるＤＲＡＭ１１のアドレスを制御する。
【００１６】
ＥＣＣ符号化復号化回路１８は、ＥＣＣコードの符号化、及び復号化を行うＥＣＣ回路である。例えば、データをＤＲＡＭ１１に書き込む場合、データＲ／Ｗ制御部１４の書き込みデータを符号化して、ＥＣＣコードを生成する。そして、ＥＣＣ符号化復号化回路１８はＥＣＣコードをＤＲＡＭ１１に書き込む。これにより、書き込みデータとともに、ＥＣＣコードがＤＲＡＭ１１に書き込まれる。また、データを読み出す場合、ＥＣＣ符号化復号化回路１８は、データＲ／Ｗ制御部１４の読み出しデータに対応するＥＣＣコードを復号化する。
【００１７】
ＥＣＣ符号化復号化回路１８はエラーカウンタ１８ａを有している。ＥＣＣ符号化復号化回路１８は、復号化したＥＣＣコードに基づいて、読み出しデータのエラーチェックを行う。読み出しデータにエラーが発生していた場合、ＥＣＣ符号化復号化回路１８は、データ訂正を行う。ＥＣＣ符号化復号化回路１８がエラー訂正を行うことができない場合、ＥＣＣ符号化復号化回路１８は、外部回路等にＦａｉｌ信号を出力する。エラーカウンタ１８ａは、エラーチェックの結果に応じて、エラーカウント値Ｎｅをカウントしている。なお、エラーカウント値Ｎｅは、所定の時間内に、エラーが発生した回数に対応している。
【００１８】
ＥＣＣ符号化復号化回路１８は、エラーカウント値Ｎｅをエラーレートモニタ３５に出力する。エラーレートモニタ３５は、エラーカウント値Ｎｅに基づいて、エラーレートを求める。エラーレート（エラー発生率）は、所定の時間Ｔあたりに発生したエラーカウント値とすることができる。例えば、エラーレートモニタ３５は、時間Ｔ毎に積算したエラー発生回数を記憶して、エラーレートを算出する。そして、エラーレートモニタ３５は、最新のエラーレート値Ｅｍと、前回のエラーレート値Ｅ（ｍ−１）をエラーレート比較器３４に出力する。なお、前回のエラーレート値Ｅ（ｍ−１）は最新のエラーレート値Ｅｍよりも時間Ｔだけ前のエラーレートとなる。また、時間Ｔはリフレッシュ周期のｎ倍（ｎは１以上の整数）となっている。すなわち、リフレッシュ周期のｎ倍の測定周期で検出したエラーの発生数によって、エラーレートを算出していている。よって、簡便にエラーレートを測定することができる。ここでは、ｎ＝１として、１リフレッシュ周期で発生したエラーの数を、エラーカウント値Ｎｅとしている。なお、時間Ｔをエラーレートに応じて、可変としてもよい。
【００１９】
エラーレート比較器３４は、最新のエラーレート値Ｅｍと、前回のエラーレート値Ｅ（ｍ−１）とを比較する。そして、エラーレート比較器３４は、エラーレート値の比較結果を乗算器３３に出力する。最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも大きい場合、比較結果が＋（正）となる。最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも小さい場合、比較結果が−（負）となる。最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）と等しい場合、比較結果が０となる。
【００２０】
出力可変型レギュレータ３０は、出力電圧ＶｏをＤＲＡＭ１１に出力する。すなわち、出力可変型レギュレータ３０から出力される出力電圧ＶｏがＤＲＡＭ１１の電源電圧となる。ＤＲＡＭ１１は、出力電圧Ｖｏに基づいて、動作する。出力可変型レギュレータ３０から出力される出力電圧Ｖｏは、可変となっている。例えば、出力可変型レギュレータ３０は、出力電圧Ｖｏを段階的に変化させる。
【００２１】
電圧モニタ３１は、エラーレートモニタ３５と同期して、出力可変型レギュレータ３０から出力される出力電圧Ｖｏをモニタしている。そして、電圧モニタ３１は、最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）を記憶する。なお、最新の電圧値Ｖｍは、最新のエラーレート値Ｅｍの時の出力電圧Ｖｏに対応し、前回の電圧値Ｖ（ｍ−１）は、前回のエラーレート値Ｅ（ｍ−１）の時の出力電圧Ｖｏに対応している。電圧モニタ３１は、最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）を電圧比較器３２に出力する。
【００２２】
電圧比較器３２は、最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）を比較して、比較結果を乗算器３３に出力する。最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）より小さい場合、比較結果が＋（正）となる。一方、最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）以上の場合、比較結果が−（負）となる。
【００２３】
乗算器３３は、エラーレート値の比較結果と、電圧値の比較結果を乗算する。上記のように、エラーレート値の比較結果は、＋、０、又は−であり、電圧値の比較結果は、＋又は−となっている。よって、乗算器３３の乗算結果は、＋、０、又は−となる。乗算器３３は、乗算結果に応じたステップ信号を出力する。出力可変型レギュレータ３０の出力電圧Ｖｏは、ステップ信号に応じて制御される。例えば、乗算器３３の乗算結果が＋の場合、出力電圧Ｖｏが１段階増加する。乗算器３３の乗算結果が−の場合、出力電圧Ｖｏが１段階減少する。乗算器３３の乗算結果が０の場合、出力電圧Ｖｏがそのまま維持される。このように、出力可変型レギュレータ３０は、乗算器３３の乗算結果に応じて、出力電圧Ｖｏをステップ的に増減させる。
【００２４】
このように、エラーレートモニタ３５と電圧モニタ３１のそれぞれで、最新値と、時間Ｔだけ前の値とを比較する。そして、それらの比較結果を基に、乗算器３３が、出力可変型レギュレータの出力電圧値を制御する。エラーレートの比較結果に応じて、ＤＲＡＭ１１の電源電圧をフィードバック制御することで、エラーレートを最小にすることができる。さらに、エラーレートを逐次モニタしているため、動作環境が変化した場合でも、ＤＲＡＭ１１に最適な電源電圧を供給することができる。以下、この理由について説明する。
【００２５】
図２は、ＤＲＡＭ１１のエラーレートと、電源電圧との相関を示す特性図である。ＤＲＡＭ１１のエラーレートは、大別して、その回路動作安定性とデータ保持性の２種類の要因に依存している。回路動作安定性は、その構成要素であるセンスアンプやタイミング回路の動作マージンが減少する低電圧領域で悪化する傾向にある。よって、回路動作安定性の要因によるエラーレートも低電圧ほど増加する。例えば、回路動作安定性の要因によるエラーレートの変化は、図２のＡに示すようになる。
【００２６】
一方、データ保持性は、そのデータ保持を担うチャージがリークし易くなる高電圧領域で悪化する。すなわち、高電圧になるほど、トランジスタのリークが発生しやすくなり、データの保持特性が劣化する。従って、データ保持性の要因によるエラーレートも高電圧ほど増加する。例えば、データ保持性の要因によるエラーレートの変化は、図２のＢに示すようになる。
【００２７】
ＤＲＡＭ１１のエラーレートは二つの特性が重畳した双曲線状のカーブを描く事になる。よって、ＤＲＡＭ１１のエラーレートは図２のＣに示すようになる。エラーレートが最小になる電源電圧の最適ポイントが存在する。また、その最適ポイントは、デバイス毎の製造バラツキや温度条件により変化する為、その設定値はデバイス個別にその動作環境（温度等）毎に調整する必要がある。すなわち、エラーレートが最小となる電源電圧は、ＤＲＡＭ１１毎に異なり、かつ、同じＤＲＡＭ１１であっても、温度が変わると変化する。
【００２８】
エラーレートを継続的にモニタして、最新のエラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）とを比較する。そして、最新のエラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）との大小関係に応じて、出力電圧Ｖｏを増加させるか、減少させるかを決定する。具体的には、最新のエラーレート値が減少するように、出力電圧Ｖｏを増減させる。すなわち、出力電圧Ｖｏを１ステップ（最小ステップ値）増加させた後、エラーレート値が増加した場合は、出力電圧Ｖｏを１ステップ減少させる。出力電圧Ｖｏを１ステップ減少させた後、エラーレート値が減少した場合は、出力電圧Ｖｏをさらに１ステップ減少させる。出力電圧Ｖｏを１ステップ増加させた後、エラーレート値が減少した場合は、出力電圧Ｖｏをさらに１ステップ増加させる。出力電圧Ｖｏを１ステップ減少させた後、エラーレート値が増加した場合は、出力電圧Ｖｏを１ステップ増加させる。最新のエラーレート値と、前回のエラーレート値が同じである場合は、出力電圧Ｖｏをそのまま維持する。このようにすることで、エラーレートが最小になるように、出力可変型レギュレータ３０の出力電圧Ｖｏをフィードバック制御することができる。
【００２９】
このように、ＤＲＡＭ１１の電源電圧をフィードバック制御することで、エラーレートを最小とすることができる。製造バラツキ等によって、最適な動作電圧が異なる半導体装置であっても、それぞれエラーレートを抑制することが可能になる。環境温度等の動作環境が変わった場合でも、最適な動作電圧での動作が可能になる。さらに、電源電圧を必要以上に高くすることがないため、低消費電力での動作が可能になる。
【００３０】
次に、本実施の形態にかかるメモリの制御方法について、図３を用いて説明する。図３は、制御方法を示すフローチャートである。ここでは、説明のため、エラー発生回数を１リフレッシュ周期積算した値を、エラーカウント値Ｎｅとした場合を一例として例示する。すなわち、１リフレッシュ周期におけるエラー発生回数が、エラーレート値Ｅｍとなっている。
【００３１】
制御がスタートすると、エラーレートモニタ３５と電圧モニタ３１とが、エラーレート値Ｅｍと、電圧値Ｖｍの値をそれぞれ、初期化する（ステップＳ１０１）。そして、リフレッシュアドレス／タイミング生成回路１６、及びＥＣＣ符号化復号化回路１８等が、ＤＲＡＭ１１の全アドレスのリフレッシュとＥＣＣを行う（ステップＳ１０２）。リフレッシュとＥＣＣは、上記のように１カラム毎に順番に行われる。なお、ステップＳ１０２の処理の詳細については後述する。
【００３２】
そして、ＥＣＣ符号化復号化回路１８によって算出されたエラーカウント値Ｎｅがしきい値ＴＨよりも大きいか否かを判定する（ステップＳ１０３）。ここでは、しきい値ＴＨを０としている。すなわち、ＤＲＡＭ１１の全データアドレスに対してＥＣＣを行った時に、エラーが発生したか否かを、ＥＣＣ符号化復号化回路１８が判定する。エラーカウント値Ｎｅがしきい値ＴＨ以下の場合（ステップＳ１０３のＮＯ）、すなわち、１リフレッシュ周期において、エラーが１回も発生していない場合は、ステップＳ１１３に移行する。
【００３３】
ステップＳ１１３では、セルフリフレッシュが完了したか否かを判定する。セルフリフレッシュが完了していない場合（ステップＳ１１３のＮＯ）、ステップＳ１０２に戻って、再度ＤＲＡＭ１１の全アドレスのリフレッシュとＥＣＣを行う。セルフリフレッシュが完了した場合（ステップＳ１１３のＹＥＳ）、処理を終了する。このように、エラーカウント値Ｎｅがしきい値ＴＨ以下の場合は、出力可変型レギュレータ３０がＤＲＡＭ１１の電源電圧を増減させずに維持する。
【００３４】
エラーカウント値Ｎｅがしきい値ＴＨを越えた場合（ステップＳ１０３のＹＥＳ）、ステップＳ１０４に移行する。ステップＳ１０４では、ｍをインクリメントする。前回の電圧値はＶ（ｍ−１）、前回のエラーレート値はＥ（ｍ−１）で表される。
【００３５】
また、ＥＣＣ符号化復号化回路１８で測定されたエラーカウント値Ｎｅに基づいて、エラーレートモニタ３５が算出した最新のエラーレート値をＥｍに設定する。この例では、エラーカウント値Ｎｅが１リフレッシュ周期における積算値であるため、エラーカウント値Ｎｅがエラーレート値Ｅｍとなる。さらに、出力可変型レギュレータ３０の現在の出力電圧Ｖｏを、最新の電圧値Ｖｍとして設定する。
【００３６】
そして、エラーレート比較器３４が最新のエラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）を比較する。具体的には、エラーレート比較器３４が、最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも大きいか否かを判定する（ステップＳ１０５）。最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも大きい場合（ステップＳ１０５のＹＥＳ）、電圧比較器３２が、最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）以上であるか否かを判定する（ステップＳ１０６）。すなわち、電圧比較器３２が最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）とを比較する。
【００３７】
最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）以上である場合（ステップＳ１０６のＹＥＳ）、出力可変型レギュレータ３０が出力電圧Ｖｏを現在の電圧値Ｖｍから１ステップ減少させる（ステップＳ１０７）。最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）以上でない場合（ステップＳ１０６のＮＯ）、出力可変型レギュレータ３０が出力電圧Ｖｏを現在の電圧値Ｖｍよりも１ステップ増加させる（ステップＳ１０８）。
【００３８】
一方、最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも大きくない場合（ステップＳ１０５のＮＯ）、最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも小さいか否かを判定する（ステップＳ１０９）。最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも小さい場合（ステップＳ１０９のＹＥＳ）、電圧比較器３２が、最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）よりも小さいか否かを判定する（ステップＳ１１０）。すなわち、電圧比較器３２が最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）とを比較する。
【００３９】
最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）よりも小さい場合（ステップＳ１１０のＹＥＳ）、出力可変型レギュレータ３０が出力電圧Ｖｏを現在の電圧値Ｖｍから１ステップ減少させる（ステップＳ１１１）。最新の電圧値Ｖｍが前回の電圧値Ｖ（ｍ−１）よりも小さくない場合（ステップＳ１１０のＮＯ）、出力可変型レギュレータ３０が出力電圧Ｖｏを現在の電圧値Ｖｍから１ステップ増加させる（ステップＳ１１２）。
【００４０】
ステップＳ１０７、ステップＳ１０８、ステップＳ１１１、及びステップＳ１１２では、最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）の大小関係に応じて、出力電圧Ｖｏを増加させるか、又は減少させるかを決定している。出力電圧Ｖｏを１ステップ増加、又は減少させたら、ステップＳ１１３に移行する。ステップＳ１１３では、セルフリフレッシュが完了したか否かを判定する。セルフリフレッシュが完了した場合（ステップＳ１１３のＹＥＳ）、処理が終了する。セルフリフレッシュが完了していない場合（ステップＳ１１３のＮＯ）、ステップＳ１０２に戻って、同様の処理を繰り返す。すなわち、セルフリフレッシュが完了するまで、ステップＳ１０２〜ステップＳ１１３の処理が繰り返し行われる。
【００４１】
また、最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）よりも小さくない場合（ステップＳ１０９のＮｏ）、すなわち、最新のエラーレート値Ｅｍが前回のエラーレート値Ｅ（ｍ−１）と等しい場合、出力電圧Ｖｏを増減させずに、ステップＳ１１３に移行する。そして、上記と同様に、セルフリフレッシュが完了するまで、ステップＳ１０２〜ステップＳ１１３の処理を繰り返す。
【００４２】
なお、ステップＳ１０５、及びステップＳ１０９では、エラーレート比較器３４が最新のエラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）を比較する。そして、エラーレート比較器３４がエラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）の大小関係に応じて、＋、０、又は−を乗算器３３に出力する。ステップＳ１０６、及びステップＳ１１０では、電圧モニタ３１が最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）を比較している。そして、電圧モニタ３１が、その比較結果に応じて、＋、又は−を乗算器３３に出力する。したがって、乗算器３３の出力は、＋、０、及び−のいずれかを示すことになる。
【００４３】
そして、出力可変型レギュレータ３０は、乗算器３３の出力に応じて、出力電圧Ｖｏを段階的に変化させる。例えば、乗算器３３の出力が＋の場合、出力可変型レギュレータ３０は、出力電圧Ｖｏを１ステップ増加させる。乗算器３３の出力が−の場合、出力可変型レギュレータ３０は、出力電圧Ｖｏを１ステップ減少させる。乗算器３３の出力が０の場合、出力可変型レギュレータ３０は、出力電圧Ｖｏをそのまま維持する。なお、出力電圧Ｖｏを変化させるステップを一定としてもよく、可変としてもよい。１ステップの幅、すなわち、出力電圧Ｖｏの最小調整量は、ＤＲＡＭ１１のエラーレートの電源電圧感度と、出力可変型レギュレータ３０の制御制度によって適宜決定することができる。
【００４４】
このように、エラーレート値との比較結果と、電圧値の比較結果とに基づいて、出力可変型レギュレータ３０が出力電圧Ｖｏを制御する。したがって、出力可変型レギュレータ３０が出力電圧Ｖｏを常時、エラーレート値を最小にする最適値にすることができる。すなわち、出力電圧Ｖｏの最適値は、ＤＲＡＭ１１の個体差や、ＤＲＡＭ１１の使用環境に応じて変化するが、上記の方法によって、常時最適な出力電圧ＶｏでＤＲＡＭ１１が動作することができる。よって、エラーレートが低く、高性能なＤＲＡＭ１１を実現することができる。さらに、出力電圧Ｖｏが必要以上に高くなるのを防ぐことができるため、消費電力を低減することができる。
【００４５】
次に、図４を用いて、ステップＳ１０２の処理について説明する。図４は、ステップＳ１０２の処理の詳細を示すフローチャートである。図４に示す処理を行うことで、１リフレッシュ周期におけるエラーカウント値Ｎｅが積算される。
【００４６】
全アドレスのリフレッシュ、及びＥＣＣを行う場合、まず、リフレッシュアドレス／タイミング生成回路１６、及びＥＣＣ符号化復号化回路１８が、それぞれリフレッシュカウント、及びエラーカウント値Ｎｅを０にする（ステップＳ２０１）。そして、リフレッシュアドレス／タイミング生成回路１６が、リフレッシュ動作を行う（ステップＳ２０１）。ＤＲＡＭ１１の所定のアドレス（ここでは、アドレス０）で、リフレッシュ動作が行われる。
【００４７】
そして、ＥＣＣ符号化復号化回路１８が、リフレッシュ動作を行ったアドレスのデータに対して、エラーチェックを行う（ステップＳ２０３）。ＥＣＣ符号化復号化回路１８はＥＣＣコードに基づいて、読み出したデータのエラーチェックを行う。そして、ＥＣＣ符号化復号化回路１８がエラーの有無を判定する（ステップＳ２０４）。エラーが無い場合（ステップＳ２０４のＮＯ）、ステップＳ２０９に移行する。エラーがあった場合（ステップＳ２０４のＹＥＳ）、ＥＣＣ符号化復号化回路１８がエラーを修正可能であるか否かを判定する（ステップＳ２０５）。
【００４８】
エラーが修正できない場合（ステップＳ２０５のＮＯ）、ＥＣＣ符号化復号化回路１８がＦａｉｌ信号を外部回路に出力して（ステップＳ２０６）、終了する。すなわち、ＥＣＣ符号化復号化回路１８がデータに誤りがあることを通知する。エラーが修正可能な場合（ステップＳ２０５のＹＥＳ）、ＥＣＣ符号化復号化回路１８がＥＣＣ復号化を行って、エラーを修正する（ステップＳ２０７）。
【００４９】
エラー訂正をした後、エラーカウント値ＮｅをＮｅ＋１とする（ステップＳ２０８）。すなわち、エラーカウント値Ｎｅをインクリメントして、ステップＳ２０９に移行する。ステップＳ２０９では、リフレッシュカウント数がＭａｘとなったか否かを判定する。ここでは、１リフレッシュ周期毎に、エラーカウントを積算している。このため、ＤＲＡＭ１１のカラム数がＭａｘの値と一致している。リフレッシュカウント数がＭａｘではない場合（ステップＳ２０９のＮＯ）、リフレッシュアドレスをインクリメントして、ステップＳ２０２に戻る。すなわち、全アドレスについてリフレッシュが終了するまで、ステップＳ２０２以降の処理を繰り返す。これにより、全アドレスリフレッシュが終了するまで、１カラム毎に順番にリフレッシュが行われる。
【００５０】
そして、リフレッシュカウント数がＭａｘとなった場合（ステップＳ２０９のＮＯ）、ＥＣＣ符号化復号化回路１８が、その時点でのエラーカウント値Ｎｅをレポートする（ステップＳ２１１）。すなわち、ＤＲＡＭ１１の全アドレスをリフレッシュした時のエラーカウントの積算値がエラーカウント値Ｎｅとして、エラーレートモニタ３５に出力される。上記のステップＳ２０１〜Ｓ２１１を繰り返し行うことで、逐次、エラーカウント値Ｎｅをモニタすることができる。
【００５１】
このように、１リフレッシュ周期において、発生したエラーを積算している。ここでは、Ｍａｘを予め定められた値としている。このように、予め定められた時間Ｔにおいて発生したエラーを積算して、エラーレートを求めている。そして、エラーレートの増減に応じて、ＤＲＡＭ１１の電源電圧を増加、又は減少させている。このように、エラーレートを逐次モニタすることで、電源電圧を最適化することができる。
【００５２】
また、時間Ｔにおいて発生したエラー回数がしきい値ＴＨよりも大きくない場合、出力電圧Ｖｏを増減させない。ここでは、しきい値ＴＨが０となっているため、時間Ｔにおいて、エラーが発生しなかった場合、出力電圧Ｖｏがそのまま維持される。１リフレッシュ周期に１回エラーが発生するかしないかの低レベルの場合、前回のエラーレート値Ｅｍを観測した時と、最新のエラーレート値Ｅｍを観測した時の時間間隔が、エラーが０回のリフレッシュ周期分だけ、延びることになる。そして、エラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）共に繰り上げられた形で、値が１になる。エラーが０回であった場合、最新のエラーレート値、及び電圧値Ｖｍは更新されない（ステップＳ１０３参照）。
【００５３】
このように、第１の時点におけるＤＲＡＭ１１のエラーレートが所定の値よりも高い場合に、出力可変型レギュレータ３０は、ＤＲＡＭ１１の電源電圧を所定の電圧だけ高く設定する。所定の電圧だけ高く設定された後の第２の時点におけるＤＲＡＭ１１のエラーレートが第１の時点におけるエラーレートよりも高い場合に、ＤＲＡＭ１１の電源電圧を第１の時点におけるＤＲＡＭ１１の電源電圧以下に設定する。すなわち、エラーレート比較器３４がエラーレートを前回のエラーレートを比較している。そして、出力可変型レギュレータ３０が、その比較結果に応じて、電源電圧を増減させている。こうすることで、ＤＲＡＭ１１の電源電圧を適切に設定することができ、エラーの発生を防ぐことができる。さらに、電源電圧が高くなりすぎるのを防ぐことができるため、消費電力の増加を防ぐことができる。また、エラーがしきい値ＴＨよりも小さい場合、電源電圧がそのまま維持される。こうすることで、エラーが発生しない場合に、電源電圧が変更されるのを防ぐことができる。よって、より適切な電電減圧に調整することができる。さらに、出力電圧を段階的に変更しているため、適切に電源電圧に調整することができる。
【００５４】
電源電圧を調整する事でデータエラー率を改善することができる。よって、リフレッシュ周期やジャンクション温度などの、動作条件や使用条件に対し過剰な制約を課す事なく、エラーレートを低減することができる。よって、データのリカバリ率を補償することができ、高性能な半導体装置を実現することができる。
【００５５】
実施の形態２．
本実施の形態にかかるメモリの制御方法について、図５を用いて説明する。図５は、制御方法を示すうフローチャートである。本実施の形態では、エラー発生頻度が非常に低いレベルを想定した制御を行っている。具体的には、リフレッシュ周期毎に発生するかしない程度を想定している。そのため、本実施の形態では、前回のエラー発生から、次のエラー発生までのインターバルカウントＩｃをカウントしている。インターバルカウントＩｃは、前回のエラー発生から、次のエラー発生までに積算したリフレッシュの回数である。インターバルカウントＩｃの逆数に基づいて、エラーレート値Ｅｍを算出している。具体的には、Ｎｅ／Ｉｃをエラーレート値Ｅｍとしている。
【００５６】
この処理について、図５のフローチャートにしたがって説明する。なお、実施の形態１と同様の処理については、適宜説明を省略する。まず、処理を開始すると、インターバルカウントＩｃ、エラーレート値Ｅｍ、及び電圧値Ｖｍを初期化する。ここでは、最初のリフレッシュであるため、インターバルカウントＩｃが１に設定される。そして、リフレッシュＤＲＡＭ１１の全アドレスのリフレッシュとＥＣＣを行う（ステップＳ３０２）。ステップＳ３０２は、実施の形態１のステップＳ１０２と同様である。すなわち、図４に示すフローにしたがって、処理が行われる。
【００５７】
次に、１リフレッシュ周期におけるエラーカウント値Ｎｅがしきい値ＴＨを越えているか否かを判定する（ステップＳ３０３）。ここでは、しきい値ＴＨを０としている。エラーカウント値Ｎｅがしきい値ＴＨを越えていない場合（ステップＳ３０３のＮＯ）、インターバルカウントＩｃをインクリメントする（ステップＳ３０４）。そして、ステップＳ３１５に移行する。
【００５８】
エラーカウント値Ｎｅがしきい値ＴＨよりも大きい場合（ステップＳ３０３のＹＥＳ）、ステップＳ３０５に移行する。ステップＳ３０５では、ステップＳ１０４と同様に、ｍをｍ＋１として、電圧モニタ３１、及びエラーレートモニタ３５に記憶されていた電圧値Ｖｍ、及びエラーレート値Ｅｍが、それぞれ、前回の電圧値Ｖ（ｍ−１）、エラーレート値Ｅ（ｍ−１）に設定される。
【００５９】
さらに、ＥＣＣ符号化復号化回路１８で測定されたエラーカウント値Ｎｅに基づいて、エラーレートモニタ３５が最新のエラーレート値Ｅｍを設定する。ここでは、エラーカウント値ＮｅがインターバルカウントＩｃに対応する時間における積算値であるため、Ｎｅ／Ｉｃがエラーレート値Ｅｍとなる。なお、エラーレートが非常に低いレベルであるため、エラーカウント値Ｎｅは通常１となっているが、エラー発生確率の大幅な変動によっては、２以上のエラーが１リフレッシュ周期で発生することがある。さらに、出力可変型レギュレータ３０の現在の出力電圧Ｖｏを、電圧モニタ３１が最新の電圧値Ｖｍと設定する。そして、ステップＳ３０６に移行する。
【００６０】
ステップＳ３０６〜ステップＳ３１３は、図３のステップＳ１０５〜ステップＳ１１２と同様である。すなわち、最新のエラーレート値Ｅｍと前回のエラーレート値Ｅ（ｍ−１）との比較結果、及び最新の電圧値Ｖｍと前回の電圧値Ｖ（ｍ−１）の比較結果に応じて、出力可変型レギュレータ３０の出力電圧Ｖｏを増減させる。そして、インターバルカウントＩｃを初期化して（ステップＳ３１４）、ステップＳ３１５に移行する。ステップＳ３１４では、インターバルカウントＩｃが１となる。
【００６１】
ステップＳ３１５は、ステップＳ１１３と同様である。すなわち、セルフリフレッシュが完了したか否かを判定する。そして、セルフリフレッシュが完了するまで、ステップＳ３０２からの処理を繰り返す。したがって、１リフレッシュ周期におけるエラーカウント値Ｎｅが０である限り、インターバルカウントＩｃがインクリメントされていく。そして、次のエラーがカウントされるまでのインターバルカウントＩｃの逆数に応じて、エラーレート値Ｅｍを算出している。
【００６２】
このようにすることで、エラー発生頻度が低いＤＲＡＭ１１についても正確にエラーレート値を算出することができる。よって、最適な出力電圧Ｖｏをより正確に求めることができる。また、実施形態１と実施形態２の処理フローを重ねて、広いエラーレート・レンジに対応する事が可能である事ができる。なお、この場合、エラーレート値を保持するレジスタや比較回路が大きくなる為、デバイス毎のエラーレート実力値に合わせて、処理フローを絞り込んだ方が好ましい。
【００６３】
実施の形態３．
本実施の形態にかかる半導体装置について、図６を用いて説明する。図６は、半導体装置の構成を示すブロック図である。本実施の形態では、実施の形態１の構成に、リフレッシュ周期を調整する構成を追加している。具体的には、インターバル調整器４１と、基準エラーカウント比較器４２が設けられている。なお、これら以外の構成については、実施の形態１と同様であるため、説明を省略する。
【００６４】
ＥＣＣ符号化復号化回路１８は、基準エラーカウント比較器４２に、エラーカウント値Ｎｅを出力する。また、基準エラーカウント比較器４２には、しきい値となる基準エラーカウント値Ｎｅ＿ｍａｘが入力されている。基準エラーカウント比較器４２は基準エラーカウント値Ｎｅ＿ｍａｘと最新のエラーカウント値Ｎｅを比較する。そして、基準エラーカウント比較器４２は、その比較結果をインターバル調整器４１に出力する。なお、基準エラーカウント値Ｎｅ＿ｍａｘは、ＥＣＣ符号化復号化回路１８が修正できるエラー数の最大値である。基準エラーカウント値Ｎｅ＿ｍａｘは、ＥＣＣビット数等に応じて、設定される。
【００６５】
インターバル調整器４１はエラーカウントの比較結果に応じて、リフレッシュ周期を調整する。具体的には、インターバル調整器４１は、リフレッシュ周波数を分周する１／Ｎ分周器４１ａを有している。１／Ｎ分周器４１ａは、Ｎの値に応じて、リフレッシュ周波数ｆを生成する。Ｎ（Ｎは２以上の整数）の値が可変となっており、Ｎが大きくなるほどリフレッシュ周波数ｆが小さくなる。
【００６６】
そして、１／Ｎ分周器４１ａは、エラーカウントの比較結果に応じて、Ｎの値を増減させる。例えば、エラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘよりも大きい場合、Ｎの値を小さくして、リフレッシュ周波数ｆを大きくする。すなわち、リフレッシュ間隔を短くして、エラーレートを減らす。
【００６７】
一方、エラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘよりも小さい場合、Ｎの値を大きくして、リフレッシュ周波数を小さくする。すなわち、リフレッシュ間隔を長くして、消費電力を低減する。このようにすることで、リフレッシュ周期を最適化することができる。すなわち、エラーレートを基準エラーカウント値Ｎｅ＿ｍａｘよりも小さくすることができるとともに、消費電力の増大を防ぐことができる。
【００６８】
このように、エラーレートによるリフレッシュ周期調整機能を備えた半導体装置に対しても、本実施の形態による制御は適用が可能である。なお、リフレッシュ周期調整と、電源電圧調整が同一周期、または同一タイミングで行われると、競合により動作が不安定となってしまうおそれがある。そのため、本実施の形態では、リフレッシュ周期を調整するのと同一タイミングではレギュレータ出力を調整しないようにする仕組みを設けている。すなわち、インターバル調整をしている場合には、エラーカウンタ１８ａのエラーカウント値はエラーレートモニタ３５へレポートされず、従って出力可変型レギュレータ３０が電圧を変化させないようにしている。詳細は図７の制御フローで説明するが、このようにすることで、リフレッシュ周期と電源電圧が同時に変化するのを防ぐことができ、安定した調整が可能になる。また、電源電圧の調整周期と、リフレッシュ周期を大きく異ならせるようにしてもよい。
【００６９】
本実施の形態にかかる制御方法について、図７を用いて説明する。図７は、ステップＳ１０２、又はステップＳ３０２の処理を詳細に示すフローチャートである。処理を開始すると、まず、リフレッシュカウントと、エラーカウント値Ｎｅを０に設定する（ステップＳ４０１）。そして、リフレッシュアドレス／タイミング生成回路１６がＤＲＡＭ１１のリフレッシュ動作を行う（ステップＳ４０２）。そして、ＥＣＣ符号化復号化回路１８がリフレッシュ動作で読み出したデータに対して、エラーチェックを行う（ステップＳ４０３）。ＥＣＣ符号化復号化回路１８が読み出したデータに対してエラーの有無を判別する（ステップＳ４０４）。データにエラーがない場合（ステップＳ４０４のＮＯ）、ステップＳ４０９に移行する。
【００７０】
データにエラーがある場合（ステップＳ４０４のＹＥＳ）、エラーが修正可能であるか否かを判別する（ステップＳ４０５）。ＥＣＣ符号化復号化回路１８がエラーを修正できない場合（ステップＳ４０５のＮＯ）、ＥＣＣ符号化復号化回路１８が外部にＦａｉｌ信号を出力して（ステップＳ４０６）、終了する。ＥＣＣ符号化復号化回路１８がエラーを修正できる場合（ステップＳ４０５のＹＥＳ）、ＥＣＣ符号化復号化回路１８がＥＣＣ復号化して、エラーを修正する（ステップＳ４０７）。
【００７１】
そして、ＥＣＣ符号化復号化回路１８が、エラーカウント値ＮｅをＮｅ＋１とする（ステップＳ４０８）。すなわち、エラーカウント値Ｎｅをインクリメントして、ステップＳ４０９に移行する。ステップＳ４０９では、リフレッシュカウント数がＭａｘになったか否かを判定する。
【００７２】
リフレッシュカウント数がＭａｘになっていない場合（ステップＳ４０９のＮＯ）、リフレッシュアドレスをインクリメントする（ステップＳ４１０）。そして、ステップＳ４０２からのリフレッシュ、及びＥＣＣを再び行う。すなわち、ＤＲＡＭ１１の次のアドレスに対して、リフレッシュを行う。そして、リフレッシュカウント数がＭａｘになるまでステップＳ４０２〜ステップＳ４０９の処理を繰り返す。すなわち、全アドレスのリフレッシュが終了するまで、リフレッシュ動作がアドレス順に行われていく。
【００７３】
リフレッシュカウント数がＭａｘになった場合（ステップＳ４０９のＹＥＳ）、エラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘより大きいか否かを判定する（ステップＳ４１１）。エラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘより大きい場合（ステップＳ４１１のＹＥＳ）、リフレッシュ間隔を短くする（ステップＳ４１２）。すなわち、エラーカウント値Ｎｅが大きいため、１／Ｎ分周器４１ａが、Ｎをインクリメントして、リフレッシュ周期を短くする。そして、ステップＳ４０１に戻る。すなわち、エラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘよりも小さくなるまで、処理を繰り返す。
【００７４】
１リフレッシュ周期において、発生したエラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘよりも大きい場合、リフレッシュ周期を短くして、単位時間当たりのリフレッシュ回数を増やす。このようにすることで、１リフレッシュ周期において、エラーが多発することを防ぐことができ、エラーを確実に修正することができる。換言すると、１リフレッシュ周期において、エラーが多数発生してしまうと、ＥＣＣ符号化復号化回路１８がエラーを修正できなくなってしまう。したがって、エラーレートが大きい場合には、１リフレッシュ周期毎に連続して、出力可変型レギュレータ３０を調整することなく、リフレッシュ周期を短く変化させていくことで、エラーを確実に修正することができる。よって、データのリカバリ率を補償することができる。
【００７５】
一方、エラーカウント値Ｎｅが基準エラーカウント値Ｎｅ＿ｍａｘ以下の場合（ステップＳ４１１のＹＥＳ）、インターバル調整器４１がリフレッシュ間隔を長くする（ステップＳ４１３）。すなわち、エラーカウント値Ｎｅが十分に小さい場合には、１／Ｎ分周器４１ａが、Ｎをインクリメントして、リフレッシュ周期を若干長くする。従って、エラーカウント値が基準エラーカウント値Ｎｅ＿ｍａｘ以下の状態が続く間は、１リフレッシュ周期毎に、単位時間当たりのリフレッシュ回数を徐々に減らしていって、リフレッシュ動作による消費電力の減少させることができる。リフレッシュ間隔を若干長くした後、エラーカウンタ１８ａがエラーカウント値Ｎｅをエラーレートモニタ３５にレポートする（ステップＳ４１４）。上記のステップＳ４０１〜Ｓ４１４を繰り返し行うことで、逐次、基準エラーカウント値Ｎｅ＿ｍａｘ境界付近に調整されたエラーカウント値Ｎｅをモニタすることができる。そして、このエラーカウント値Ｎｅを用いて、図３、又は図５に示したように、出力可変型レギュレータ３０が、前記調整されたリフレッシュ間隔でのエラーレートを更に改善するようにＤＲＡＭ１１の電源電圧を調整する。
【００７６】
このように、電源電圧だけでなく、リフレッシュ間隔を調整している。このようにすることで、消費電力の増加を防ぐことができる。さらに、実施の形態１、２と同様に、エラーを確実に修正することができる。また、リフレッシュ間隔を調整した後に、ＥＣＣ符号化復号化回路１８がエラーカウント値Ｎｅをエラーレートモニタ３５にレポートしている。よって、リフレッシュ周期と電源電圧が同時に変化するのを防ぐことができ、安定した調整が可能になる。
【００７７】
実施の形態４．
本実施の形態にかかる半導体装置について、図８を用いて説明する。本実施の形態にかかる半導体装置は、メモリ５１と、ＥＣＣ回路５２と、制御部５３と、電源供給回路５４とを備えている。メモリ５１は、リフレッシュ動作を行うＤＲＡＭのメモリセルである。ＥＣＣ回路５２は、メモリ５１に記憶されているデータを読み出して、エラーチェックと、エラーを修正する。また、ＥＣＣ回路５２は、エラーの発生回数をカウントしており、エラーレートを算出する。
【００７８】
電源供給回路５４は、メモリ５１に電源を供給する。すなわち、メモリ５１は、電源供給回路５４から供給される電源電圧を動作電圧として動作する。制御部５３は、ＥＣＣ回路５２で測定されたエラーレートに応じて、電源供給回路５４を制御する。これにより、電源供給回路から供給される電源電圧が、調整される。
【００７９】
制御部５３は、第１の時点におけるメモリ５１のエラーレートが所定の値よりも高い場合に、メモリ５１の電源電圧を所定の電圧だけ高く設定する。そして、所定の電圧だけ高く設定された後の第２の時点におけるメモリ５１のエラー発生率が第１の時点におけるエラーの発生率よりも高い場合に、メモリ５１の電源電圧を第１の時点におけるメモリ５１の電源電圧以下に設定する。このように、第１の時点と第２の時点におけるエラーレートの比較結果に応じて、メモリ５１の電源電圧を調整する。こうすることで、エラーレートの増加を防ぐことができる。
【００８０】
また、第１の時点におけるメモリ５１の電源電圧以下に設定された後の第３の時点におけるメモリ５１のエラー発生率が、第２の時点におけるエラー発生率よりも低い場合に、メモリ５１の電源電圧を第２の時点におけるメモリ５１の電源電圧以上に設定する。
【００８１】
なお、上記の実施の形態１〜４を適宜組み合わせて使用することも可能である。
【００８２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００８３】
１１  ＤＲＡＭ
１２  Ｒ／Ｗアドレス入力回路
１３  アドレス制御部
１４  データＲ／Ｗ制御部
１５  Ｉ／Ｏバッファ回路
１６  リフレッシュアドレス／タイミング生成回路
１８  ＥＣＣ符号化復号化回路
３０  出力可変型レギュレータ
３１  電圧モニタ
３２  電圧比較器
３３  乗算器
３４  エラーレート比較器
３５  エラーレートモニタ
４１  インターバル調整器
４１ａ  １／Ｎ分周器
４２  基準エラーカウント比較器
５１  メモリ
５２  ＥＣＣ回路
５３  制御部
５４  電源供給回路
【図１】
2013257918.tif 000003
【図２】
2013257918.tif 000004
【図３】
2013257918.tif 000005
【図４】
2013257918.tif 000006
【図５】
2013257918.tif 000007
【図６】
2013257918.tif 000008
【図７】
2013257918.tif 000009
【図８】
2013257918.tif 000010