(57)【要約】  誤りの数が誤りしきい値より大きく、かつリフレッシュレートが最大レートに達していない場合には、ランダムアクセスメモリ（ＲＡＭ）のリフレッシュレートを上げる。誤りの数が誤りしきい値以下である場合には、ＲＡＭのリフレッシュレートが通常レートに設定される。【選択図】図３
2016505184.tif 000002
【特許請求の範囲】
【請求項１】
誤りを有するランダムアクセスメモリ（ＲＡＭ）のセルの数をカウントする検出ユニットと、
誤りを有するセルの数と、誤りしきい値とに基づいて、前記ＲＡＭのリフレッシュレートを決定するしきい値ユニットと
を備えてなるデバイスであって、
前記しきい値ユニットは、前記誤りの数が前記誤りしきい値より大きく、かつ前記リフレッシュレートが最大レートに達していない場合には、前記ＲＡＭの前記リフレッシュレートを上げるものであり、
前記しきい値ユニットは、前記誤りの数が前記誤りしきい値以下である場合には、前記ＲＡＭの前記リフレッシュレートを通常レートに戻すものである、デバイス。
【請求項２】
前記しきい値ユニットは、前記通常レートをしきい値と乗算すること、及びしきい値レートを前記リフレッシュレートに加算することのうちの少なくとも１つによって、前記リフレッシュレートを上げるものであり、
前記しきい値ユニットは、前記リフレッシュレートを上げるたびに、前記しきい値を上げるものであり、
前記しきい値ユニットは、該しきい値ユニットが前記ＲＡＭの前記リフレッシュレートを前記通常レートに戻す場合には、前記しきい値をリセットすることになる、請求項１に記載のデバイス。
【請求項３】
前記誤りの数が前記誤りしきい値より大きく、かつ前記リフレッシュレートが前記最大レートに達した場合に前記誤りを訂正する訂正ユニットを更に含んでおり、
前記訂正ユニットは、メモリサブシステム冗長機構を介して前記誤りを訂正するものであり、前記機構は、チップスペア、ランクスペア及びミラーリングのうちの少なくとも１つを含むものである、請求項１に記載のデバイス。
【請求項４】
前記検出ユニットは、移動平均及び誤りの全数のうちの少なくとも１つに従って前記誤りの数をカウントするものであり、
前記誤りの全数は、前記リフレッシュレートが変更された後に再計算されるものである、請求項１に記載のデバイス。
【請求項５】
前記最大レートは、チップセットの能力に基づくものであり、
前記通常レート及び前記誤りしきい値のうちの少なくとも１つは、ユーザの性能要件に基づくものである、請求項１に記載のデバイス。
【請求項６】
前記検出ユニットは、前記誤りを見つけるために前記ＲＡＭをポーリングするものであり、
前記検出ユニットは、前記ＲＡＭがポーリングされた後に検出された前記誤りの数によってインクリメントされるカウンタを含むものである、請求項１に記載のデバイス。
【請求項７】
前記ポーリングの間隔は、信頼性要件及び誤り蓄積能力のうちの少なくとも１つに基づくものである、請求項６に記載のデバイス。
【請求項８】
前記検出ユニットは、メモリセルの誤り訂正符号（ＥＣＣ）をチェックすることによって前記誤りを検出することになり、
前記検出ユニットは、前記誤りが検出された後に、制御及びステータスレジスタ（ＣＳＲ）に書き込むものである、請求項１に記載のデバイス。
【請求項９】
前記ＲＡＭはダイナミックＲＡＭ（ＤＲＡＭ）であり、
前記検出された誤りは、訂正可能なソフトエラーであり、
前記誤りは、前記デバイスがアクティブ状態である間に検出される、請求項１に記載のデバイス。
【請求項１０】
誤りを見つけるためにランダムアクセスメモリ（ＲＡＭ）をスキャンするステップと、
前記スキャンされたＲＡＭにおいて見つけられた前記誤りの数をカウントするステップと、
前記誤りの数が誤りしきい値より大きく、かつリフレッシュレートが最大レートでない場合には、前記リフレッシュレートを上げるステップと、
前記誤りの数が前記誤りしきい値以下である場合には、前記リフレッシュレートを通常レートになるように設定するステップと
を含んでなる方法であって、
前記上げるステップ後に、前記スキャンするステップ及び前記カウントするステップを繰り返し、
前記誤りの数が前記誤りしきい値より大きいままである場合には、前記上げるステップを繰り返すものである、方法。
【請求項１１】
前記誤りの数が前記誤りしきい値より大きく、かつ前記リフレッシュレートが前記最大レートである場合には、前記誤りを訂正するステップを更に含み、
前記誤りはメモリサブシステム冗長機構を介して訂正される、請求項１０に記載の方法。
【請求項１２】
前記誤りの数が前記誤りしきい値以下のままである場合には、前記スキャンするステップ及び前記カウントするステップを、前記設定するステップ後に連続した間隔で繰り返すものである、請求項１０に記載の方法。
【請求項１３】
持続的にコンピュータに読み取り可能な記憶媒体であって、デバイスのプロセッサによって実行されるときに、前記プロセッサに対し、
リフレッシュレートを通常レートに設定させる命令と、
誤りを見つけるためにランダムアクセスメモリ（ＲＡＭ）をスキャンさせる命令であって、各誤りは不正確なデータを記憶する前記ＲＡＭのメモリセルを示す、スキャンさせる命令と、
前記ＲＡＭ内の誤りの全数を誤りしきい値と比較させる命令と、
前記誤りの全数が前記誤りしきい値より大きく、かつ前記リフレッシュレートが最大レート未満である場合には、前記リフレッシュレートを上げさせる命令と、
前記誤りの全数が前記誤りしきい値以下である場合には、前記リフレッシュレートを前記通常レートにリセットさせる命令と
を記憶している、コンピュータに読み取り可能な記憶媒体。
【請求項１４】
前記リフレッシュレートを上げた後に、前記誤りを見つけるために前記ＲＡＭがスキャンされ、
前記リフレッシュレートを上げた後に、前記誤りの全数が前記誤りしきい値と比較される、請求項１３に記載のコンピュータに読み取り可能な記憶媒体。
【請求項１５】
前記リフレッシュレートを前記通常レートの倍数だけ上げるものであり、
前記リフレッシュレートを上げた後に、前記誤りの全数が前記誤りしきい値より大きいままである場合には、前記倍数の値を上げるものである、請求項１４に記載のコンピュータに読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
メモリデバイスが複雑になるにつれて、メモリデバイスは次第にデータ誤りを起こしやすくなる場合がある。例えば、幾つかのタイプのデータアクセスパターンは、メモリのワード線間の漏洩を引き起こし、結果として、データが失われるか、又は破損するおそれがある。製造業者及び／又は販売業者は、メモリデバイスの待ち時間及び／又は性能劣化を最小限に抑えながら、メモリデバイスのデータ誤りの可能性を低減するように要求される場合がある。
【０００２】
以下の詳細な説明は図面を参照する。
【図面の簡単な説明】
【０００３】
【図１】誤りの数に基づいてＲＡＭのリフレッシュレートを変更するデバイスの例示的なブロック図である。
【図２】誤りの数に基づいてＲＡＭのリフレッシュレートを変更するデバイスの別の例示的なブロック図である。
【図３】誤りの数に基づいてＲＡＭのリフレッシュレートを変更するための命令を含むコンピューティングデバイスの例示的なブロック図である。
【図４】誤りの数に基づいてＲＡＭのリフレッシュレートを変更するための方法の例示的な流れ図である。
【発明を実施するための形態】
【０００４】
実施形態を完全に理解してもらうために、以下の説明において具体的な細部が与えられる。しかしながら、これらの具体的な細部を用いることなく、それらの実施形態を実施できることが理解されるであろう。例えば、不必要に詳しくして実施形態をわかりにくくしないように、システムがブロック図において示される場合がある。他の事例では、実施形態をわかりにくくすることを避けるために、既知のプロセス、構造及び技法は、不必要に詳しくすることなく示される場合がある。
【０００５】
メモリデバイスのダイフィーチャサイズが小さくなり、かつメモリデバイスの記憶容量が大きくなるのに応じて、メモリデバイスは複雑になりつつある。結果として、メモリデバイスにおいて直面する故障メカニズムも更に複雑になりつつある。メモリデバイスにおいて直面する１つのタイプの問題は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）内で行アドレス情報を搬送するワード線間の漏洩によって引き起こされる、訂正可能な一次的な誤りの「多発（storms）」である。これらの誤り多発は、障害が疑われるワード線が繰り返しアクセスされることによって引き起こされ、その結果として、障害が疑われるワード線に物理的に隣接するワード線内のデータが破損するおそれがある。メモリデバイスが集積されるシステムレベル等のより上位のレベルでは、ユーザは、メモリデバイスの欠陥を悪用してそのような誤り多発を引き起こす、ストレスの多い又は悪質なアプリケーション動作を、ほとんど又は全く制御することができない場合がある。
【０００６】
メモリデバイスのメモリサブシステムが、データ誤りを定期的にチェックすることができる。したがって、これらの一時的な誤りはチップセット及び／又は基本入出力システム（ＢＩＯＳ）によって訂正することができるが、誤り多発が継続する場合には、システムに以下のような悪影響を及ぼすおそれがある。例えば、誤りを除去するために、ユーザがハードウェアを交換するように通知される場合があり、結果として、システムダウンタイム及び／又は顧客の不満が生じることになる。さらに、あまりにも多くの一時的な誤りによって、訂正不可能な事象が生じる場合には、システムがクラッシュするおそれがある。少ない事例ではあるが、ランダムな一時的な誤りが、顕在化しないデータ破損を引き起こす場合もある。また、（複数の場合もある）メモリデバイスと通信するプロセッサが、アプリケーションを実行する代わりに、誤りを訂正することに時間を費やす場合があるので、システム性能が影響を受けるおそれがある。
【０００７】
実施形態によれば、メモリリフレッシュレートを動的に変更することにより、ＤＲＡＭ等のメモリ内のワード線漏洩による欠陥に関連付けられる誤り率を下げることによって、誤り多発を引き起こすデータパターンを中断し、システム信頼性を高めることができる。例えば、検出ユニットが、誤りを有するランダムアクセスメモリ（ＲＡＭ）のセルの数をカウントすることができる。しきい値ユニットは、誤りを有するセルの数と、誤りしきい値とに基づいて、ＲＡＭのリフレッシュレートを決定することができる。しきい値ユニットは、誤りの数が誤りしきい値より大きく、かつリフレッシュレートが最大レートに達していない場合には、リフレッシュレートを上げることができる。しきい値ユニットは、誤りの数が誤りしきい値以下である場合には、ＲＡＭのリフレッシュレートを通常レートに戻すことができる。
【０００８】
メモリリフレッシュレートを上げると、リフレッシュサイクルを挿入することによって、誤り多発を引き起こすメモリアクセスパターンが中断される。また、各リフレッシュはＤＲＡＭ等のＲＡＭ内のセルの状態を既知の良好な状態に復元し、デバイス基板内に蓄積され、一時的なメモリ誤りを引き起こすおそれがある潜在的な有害な電荷量を除去する。さらに、実施形態によれば、誤り多発がバースト性である傾向を考慮に入れることによって、上げられたメモリリフレッシュレートに関連付けられる性能への影響を制限することができる。例えば、誤りの数を減らすのに効果的である期間にわたってのみ、リフレッシュレートが上げられ、その後、誤り多発の合間では、リフレッシュレートは下げられ、通常レートに戻される。
【０００９】
したがって、実施形態によれば、性能への影響を小さくするか、又は最小限に抑えながら、ワード線漏洩問題に関連付けられるメモリ誤りを低減又は解消することができる。ワード線漏洩問題に関連付けられる誤り多発にさらされるユーザに対する保証コスト及びダウンタイムも低減することができる。同時に、常にリフレッシュレートを上げ、全てのユーザに対する性能を低下させることになる大まかな手法は適用されないので、ワード線漏洩問題にさらされないユーザにとって性能への影響はない。
【００１０】
代わりに、必要なときにのみリフレッシュレートを上げることによって、性能への影響は、ユーザがバースト性の誤り多発を受けている時点のみに限定される。さらに、実施形態によれば、システム設計者は、ワード線漏洩問題を引き起こすアプリケーションを有するユーザと連携できる場合がある。例えば、実施形態によって引き起こされた、上げられたリフレッシュレートを検出することができる。そして、誤り多発を引き起こすアプリケーションを検出し、修正して、誤り多発を低減又は解消することができる。
【００１１】
ここで図面を参照すると、図１は、誤り１１２の数に基づいてＲＡＭ１５０のリフレッシュレート１２２を変更するデバイス１００の例示的なブロック図である。デバイス１００は、メモリコントローラ、マイクロプロセッサ、メモリ回路、集積回路（ＩＣ）等の、メモリのリフレッシュレートを制御することに関連する任意のタイプのデバイスとすることができる。図１の実施形態では、デバイス１００は、検出ユニット１１０と、しきい値ユニット１２０とを含む。さらに、デバイス１００は、ＲＡＭ１５０とのインターフェースを備える。ＲＡＭ１５０は、例えば、ダイナミックＲＡＭ（ＤＲＡＭ）とすることができ、複数のメモリセル１５２−１〜１５２−ｎを有する。ただし、ｎは自然数である。
【００１２】
リフレッシュレートという用語は、ある期間内のリフレッシュサイクルの数を指すことができる。各メモリリフレッシュサイクルが、メモリセルの一連のエリアをリフレッシュし、それにより、ラウンドロビン方式で全てのセルをリフレッシュする。リフレッシュという用語は、情報を維持する目的で、ＤＲＡＭ等のメモリの或るエリアから情報を定期的に読み出し、読み出された情報を変更することなく同じエリアに直ちに書き込むプロセスを指すことができる。ＤＲＡＭチップにおいて、リフレッシュレートは、７．８マイクロ秒（μｓ）当たり１行等の、ＤＲＡＭの各行がリフレッシュされる間隔を指すことができる。リフレッシュサイクルが生じている間、通常の読出し動作及び書込み動作のためにメモリを利用できない場合がある。
【００１３】
検出ユニット１１０及びしきい値ユニット１２０は、例えば、制御ロジック及び／又はメモリ等の、以下に説明される機能を実施するための電子回路を含むハードウェアデバイスを含みうる。それに加えて、又はその代わりに、検出ユニット１１０及びしきい値ユニット１２０は、機械可読記憶媒体上に符号化され、プロセッサによって実行可能な一連の命令として実現される場合もある。
【００１４】
検出ユニット１１０は、誤り１１２を有するランダムアクセスメモリ（ＲＡＭ）のセル１５２−１〜１５２−ｎの数をカウントすることになる。例えば、検出ユニット１１０は、メモリセル１５２−１〜１５２−ｎの誤り訂正符号（ＥＣＣ）をチェックすることによって誤り１１２を検出することができる。検出ユニット１１０は、例えば、移動平均及び／又は誤りの全数に従って、誤り１１２の数をカウントすることができる。誤りの全数は、リフレッシュレート１２２が変更された後に再計算することができる。例えば、誤り１１２の数が移動平均に従って計算される場合には、直前の３分間の誤りの数を用いることができる。一方、誤り１１２の数が誤りの全数に従って計算される場合には、誤りの数を、リフレッシュレート１２２が変化するまでカウントし続けることができる。この時点で、誤り１１２の数をリセットして、０から再開することができる。検出された誤り１１２は、デバイス１００がスリープ状態又は非アクティブ状態ではなくアクティブ状態である間に検出される訂正可能なソフトエラー（soft error）とすることができる。
【００１５】
しきい値ユニット１２０は、誤り１１２を有するセル１５２−１〜１５２−ｎの数と、誤りしきい値１２４とに基づいて、ＲＡＭ１５０のリフレッシュレート１２２を決定することができる。例えば、しきい値ユニット１２０は、誤り１１２の数が誤りしきい値１２４より大きく、かつリフレッシュレート１２２が最大レート１２８にまだ達していない場合に、ＲＡＭ１５０のリフレッシュレート１２２を上げることができる。誤りしきい値１２４及び最大レート１２８は、チップセット及び／又はＢＩＯＳ能力によって決まる場合があり、ユーザが規定することができる。誤りしきい値１２４は、例えば、約１０個〜１００個の誤りとすることができる。最大レート１２８は、デバイス１００のチップセット（図示せず）の能力に基づくことができる。
【００１６】
しきい値ユニット１２０は、誤り１１２の数が誤りしきい値１２４以下である場合には、ＲＡＭ１５０のリフレッシュレート１２２を通常レート１２６に戻すことになる。通常レート１２６は、例えば、７．８μｓとすることができる。通常レート１２６及び／又は誤りしきい値１２４は、ユーザの性能要件に基づいて設定することができる。検出ユニット１１０及びしきい値ユニット１２０は、自律的に、及び／又はデバイス１００のメインプロセッサ（図示せず）から独立して動作することができる。ＲＡＭ１５０はデバイス１００の外部にあるように示されるが、実施形態はデバイス１００の内部にあるＲＡＭ１５０も含みうる。誤りのバーストが検出されるときにリフレッシュレート１２２を上げ、誤りのバーストが治まった後にリフレッシュレート１２２をリセットすることによって、実施形態によれば、性能への影響を制限しながら、誤り多発によって引き起こされる誤りの数を低減することができる。
【００１７】
図２は、誤り１１２の数に基づいてＲＡＭ１５０のリフレッシュレート１２２を変更するデバイス２００の別の例示的なブロック図である。デバイス２００は、メモリコントローラ、マイクロプロセッサ、メモリ回路、集積回路（ＩＣ）等の、メモリのリフレッシュレートを制御することに関連する任意のタイプのデバイスとすることができる。図２のデバイス２００は少なくとも、図１のデバイス１００の機能及び／又はハードウェアを含みうる。例えば、図２のデバイス２００に含まれる検出ユニット２１０及びしきい値ユニット２２０はそれぞれ、図１のデバイス１００に含まれる検出ユニット１１０及びしきい値ユニット１２０の機能を含みうる。さらに、図２のデバイス２００は、制御及びステータスレジスタ（ＣＳＲ）２３０及び訂正ユニット２４０も含む。
【００１８】
ＣＳＲ２３０及び訂正ユニット２４０は、例えば、制御ロジック及び／又はメモリ等の、以下に説明される機能を実施するための電子回路を含むハードウェアデバイスを含みうる。それに加えて、又はその代わりに、ＣＳＲ２３０及び訂正ユニット２４０は、機械可読記憶媒体上に符号化され、プロセッサによって実行可能な一連の命令又はマイクロコードとして実現することができる。
【００１９】
図２において、検出ユニット２１０は、例えば、１分〜５分ごとに、誤り１１２を見つけるためにＲＡＭ１５０をポーリングすることができる。ポーリングの間隔は、信頼性要件及び誤り蓄積能力のうちの少なくとも１つに基づくことができる。検出ユニット２１０は、ＲＡＭ１５０がポーリングされた後に検出された誤りの数だけインクリメントされるカウンタ２１２を含みうる。検出ユニット２１０は、誤りが検出された後にＣＳＲ２３０に書き込むこともできる。ＣＳＲ２３０を訂正ユニット２４０等の他の構成要素によって用いて、誤り１１２があるか否かを判断することができる。
【００２０】
しきい値ユニット２２０は、種々の方法に従ってリフレッシュレート１２２を上げることができる。一実施形態では、しきい値ユニット２２０は、通常レート１２６をしきい値２２２と乗算して、リフレッシュレート１２２を上げることができる。例えば、通常レート１２６及びリフレッシュレート１２２が１行／７．８μｓであり、しきい値２２２が２である場合には、しきい値ユニット２２０は、１行／７．８μｓに２を掛けて、リフレッシュレート１２２を７．８μｓ当たり１行から７．８μｓ当たり２行に上げることができる。
【００２１】
他の実施形態では、しきい値ユニット２２０は、しきい値レート２２２をリフレッシュレート１２２に加算して、リフレッシュレート１２２を上げることができる。例えば、リフレッシュレート１２２が１行／７．８μｓであり、しきい値レート２２２が、０．５行／７．８μｓである場合には、しきい値ユニット２２０は、０．５行／７．８μｓを１行／７．８μｓに足して、リフレッシュレート１２２を７．８μｓ当たり１行から７．８μｓ当たり１．５行に上げることができる。
【００２２】
ＲＡＭ１５０が、上げられたリフレッシュレート１２２においてリフレッシュされた後に、検出ユニット２１０は再び誤り１１２の数をカウントすることができる。誤り１１２の数が誤りしきい値１２４より依然として大きく、かつリフレッシュレート１２２が最大レート１２８に達していない場合には、しきい値ユニット２２０は、リフレッシュレート１２２を更に上げることができる。一例では、しきい値ユニット２２０は、しきい値２２２を、例えば、２から３に上げることができる。この場合、しきい値ユニット２２０は、１行／７．８μｓ等の通常レート１２６に３を掛けて、リフレッシュレート１２２を７．８μｓ当たり２行から７．８μｓ当たり３行に上げることができる。別の例では、しきい値ユニット２２０は再び、１．５行／７．８μｓ等の既存のリフレッシュレート１２２に、０．５行／７．８μｓ等のしきい値レート２２２を足して、リフレッシュレート１２２を７．８μｓ当たり２行に上げることができる。
【００２３】
一方、ＲＡＭ１５０が上げられたリフレッシュレート１２２においてリフレッシュされた後に、誤り１１２の数が代わりに減少している場合がある。この場合、ここで、誤り１１２の数が誤りしきい値１２４以下である場合には、しきい値ユニット２２０は、しきい値２２２を、例えば、１にリセットするか、又は既存のリフレッシュレート１２２を、７．８μｓ当たり１行等の通常レート１２６に上書きすることによって、リフレッシュレート１２２をリセットすることができる。
【００２４】
誤り１１２の数が誤りしきい値１２４より大きく、かつリフレッシュレート１２２が最大レート１２８に達している場合には、検出ユニット２２０は単に、訂正ユニット２４０が誤り１１２を訂正できるようにする場合がある。これは、最も高い許容可能なリフレッシュレート１２２に達した後であっても、そのような多くの数の誤り１１２が存続することが、その誤り１１２が一時的な誤り多発以外の原因に起因することを示す場合があるためである。この場合、訂正ユニット２４０は、チップスペア、ランクスペア、ミラーリング等の、誤り１１２を訂正するメモリサブシステム冗長能力又は機構を用いることができる。
【００２５】
図３は、誤りの数に基づいて、ＲＡＭのリフレッシュレートを変更するための命令を含むコンピューティングデバイス３００の例示的なブロック図である。図３の実施形態において、コンピューティングデバイス３００は、プロセッサ３１０と、機械可読記憶媒体３２０とを含む。機械可読記憶媒体３２０は、誤りの数に基づいてＲＡＭ（図示せず）のリフレッシュレートを変更するための命令３２１、３２３、３２５、３２７及び３２９を更に含む。
【００２６】
コンピューティングデバイス３００は、例えば、セキュアマイクロプロセッサ、ノートブックコンピュータ、デスクトップコンピュータ、オールインワンシステム、サーバ、ネットワークデバイス、コントローラ、ワイヤレスデバイス、又は命令３２１、３２３、３２５、３２７及び３２９を実行することができる任意の他のタイプのデバイスとすることができる。或る特定の例では、コンピューティングデバイス３００は、メモリ、コントローラ等の付加構成要素を含むか、又はそのような付加構成要素に接続される場合がある。
【００２７】
プロセッサ３１０は、少なくとも１つの中央処理ユニット（ＣＰＵ）、少なくとも１つの半導体ベースのマイクロプロセッサ、少なくとも１つのグラフィックス処理ユニット（ＧＰＵ）、マイクロコントローラ、マイクロコードによって制御される専用ロジックハードウェア、若しくは機械可読記憶媒体３２０内に記憶される命令を検索し、実行するのに適した他のハードウェアデバイス、又はその組み合わせとすることができる。プロセッサ３１０は、誤りの数に基づいてＲＡＭのリフレッシュレートの変更を実施するために、命令３２１、３２３、３２５、３２７及び３２９をフェッチし、復号し、実行することができる。命令を検索し、実行する代わりに、又はそれに加えて、プロセッサ３１０は、命令３２１、３２３、３２５、３２７及び３２９の機能を実行するための幾つかの電子構成要素を含む、少なくとも１つの集積回路（ＩＣ）、他の制御ロジック、他の電子回路、又はその組み合わせを含みうる。
【００２８】
機械可読記憶媒体３２０は、実行可能命令を含むか、又は記憶する任意の電子、磁気、光又は他の物理的記憶デバイスとすることができる。したがって、機械可読記憶媒体３２０は、例えば、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、ストレージデバイス、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）等とすることができる。その場合に、機械可読記憶媒体３２０は非一時的とすることができる。後に詳細に説明されるように、機械可読記憶媒体３２０は、誤りの数に基づいてＲＡＭのリフレッシュレートを変更するための一連の実行可能命令で符号化することができる。
【００２９】
さらに、命令３２１、３２３、３２５、３２７及び３２９は、プロセッサによって（例えば、プロセッサの１つ以上の処理素子を介して）実行されるときに、プロセッサに、図４のプロセス等のプロセスを実行させることができる。例えば、リフレッシュレートを通常レートに設定するために、プロセッサ３１０によって設定命令３２１を実行することができる。ＲＡＭをスキャンして誤りを見つけるために、プロセッサ３１０によってスキャン命令３２３を実行することができ、各誤りは、不正確なデータを記憶するＲＡＭのメモリセルを示すことになる。ＲＡＭ内の誤りの全数を誤りしきい値と比較するために、プロセッサ３１０によって比較命令３２５を実行することができる。誤りの全数が誤りしきい値より大きく、かつリフレッシュレートが最大レート未満である場合には、リフレッシュレートを上げるために、プロセッサ３１０によって上昇命令３２７を実行することができる。誤りの全数が誤りしきい値以下である場合には、リフレッシュレートを通常レートにリセットするために、プロセッサ３１０によってリセット命令３２９を実行することができる。
【００３０】
リフレッシュレートが上げられた後に、誤りを見つけるためにＲＡＭを再びスキャンすることができる。さらに、リフレッシュレートが上げられた後に、誤りの全数を誤りしきい値と比較することができる。リフレッシュレートは通常レートの倍数だけ上げることができる。リフレッシュレートが上げられた後に、誤りの全数が誤りしきい値より大きいままである場合には、倍数の値を上げることができる。例えば、上昇命令３２７はリフレッシュレートを通常レートの２倍になるように設定するが、その後に計算された誤りの全数が誤りしきい値より大きいままである場合には、リフレッシュレートが最大レート未満であるとすると、上昇命令３２７はリフレッシュレートを通常レートの３倍になるように設定することができる。
【００３１】
図４は、誤りの数に基づいてＲＡＭのリフレッシュレートを変更する方法４００の例示的な流れ図である。方法４００の実行が、デバイス２００を参照しながら以下に説明されるが、デバイス１００等の、方法４００を実行するのに適した他の構成要素を利用することもできる。さらに、方法４００を実行するための構成要素は、複数のデバイス（例えば、入力デバイス及び出力デバイスと通信する処理デバイス）間に分散させることができる。或る特定のシナリオでは、協調して動作する複数のデバイスを、方法４００を実行する単一のデバイスと見なすことができる。方法４００は、記憶媒体３２０等の機械可読記憶媒体上に記憶される実行可能命令の形で、及び／又は電子回路の形で実現することができる。
【００３２】
ブロック４１０において、デバイス２００の検出ユニット２１０が、誤り１１２を見つけるためにランダムアクセスメモリ（ＲＡＭ）１５０をスキャンする。その後、ブロック４２０において、検出ユニット２１０は、スキャンされたＲＡＭ１５０において見つけられた誤り１１２の数をカウントし、誤り１１２の数をデバイス２００のしきい値ユニット２２０に送信する。ブロック４３０において、しきい値ユニット２２０は、誤り１１２の数を誤りしきい値１２４と比較する。
【００３３】
しきい値ユニット２２０が、ブロック４３０において誤り１１２の数が誤りしきい値１２４以下であると判断する場合には、ブロック４４０において、しきい値ユニット２２０は、リフレッシュレート１２２を通常レート１２６になるように設定する（又は、既に通常レート１２６である場合には、リフレッシュレート１２２を維持する）。その後、方法４００の流れはブロック４１０に戻り、検出ユニット２１０が、誤りを見つけるためにＲＡＭ１５０をスキャンし続ける。
【００３４】
一方、しきい値ユニット２２０が、ブロック４３０において誤り１１２の数が誤りしきい値１２４より大きいと判断する場合には、ブロック４５０において、しきい値ユニット２２０は、リフレッシュレート１２２を最大レート１２８と比較する。しきい値ユニット２２０が、ブロック４５０においてリフレッシュレート１２２が最大レート１２８未満であると判断する場合には、ブロック４６０において、しきい値ユニット２２０はリフレッシュレート１２２を上げる。しかしながら、しきい値ユニット２２０が、ブロック４５０においてリフレッシュレート１２２が最大レート１２８以上であると判断する場合には、しきい値ユニット２２０は、訂正ユニット２４０に知らせる。そして、ブロック４７０において、訂正ユニット２４０は、例えば、メモリサブシステム冗長機構を介して、誤り１１２を訂正する。ブロック４６０及び４７０の後に、方法４００の流れはブロック４１０に戻る。
【００３５】
このようにして、ブロック４１０及び４２０におけるスキャン動作及びカウント動作は、ブロック４６０及び４７０における上昇動作後に繰り返される。さらに、ブロック４６０における上昇動作は、ブロック４３０において誤り１１２の数が誤りしきい値より大きいままであり、かつブロック４５０においてリフレッシュレート１２２が最大レート１２８未満である場合に繰り返される。さらに、ブロック４３０における誤り１１２の数が誤りしきい値１２４以下のままである場合には、ブロック４１０及び４２０におけるスキャン動作及びカウント動作は、ブロック４４０における設定動作後に連続した間隔で繰り返される。
【００３６】
上記によれば、実施形態は、メモリリフレッシュレートを動的に上げることに基づいて、ＤＲＡＭ等のメモリ内のワード線漏洩による欠陥に関連付けられる誤り率を低減することによって、誤り多発を引き起こすデータパターンを中断する方法及び／又はデバイスを提供する。さらに、実施形態が、誤り多発がバースト性である傾向を考慮に入れることによって、上げられたメモリリフレッシュレートに関連付けられる性能への影響を制限することができる。例えば、誤りの数を減らすのに効果的である期間にわたってのみ、リフレッシュレートが上げられ、そして、誤り多発の合間では、リフレッシュレートは下げられ、通常レートに戻される。
【図１】
2016505184.tif 000003
【図２】
2016505184.tif 000004
【図３】
2016505184.tif 000005
【図４】
2016505184.tif 000006
【国際調査報告】
2016505184.tif 000007
2016505184.tif 000008