(57)【要約】【課題】ダイナミックメモリデバイスのリフレッシュおよびエラースクラビングの方法およびシステムを提供すること。【解決手段】ダイナミックメモリデバイスに格納されたデータの保全性を保持するための方法は、ダイナミックメモリデバイスのリフレッシュ速度要件およびエラースクラビング速度要件に基づき、複数のメモリ素子を有するダイナミックメモリデバイスのリフレッシュ−スクラブアクセス時間間隔を決定するステップと、リフレッシュ−スクラブアクセス時間間隔を超えない周期でダイナミックメモリデバイスの各メモリ素子にエラースクラビング機能を実行するステップとを備える。【選択図】図１
2007035035.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイス（３５０、５１０）のリフレッシュ−エラースクラビング機能を実施する方法（１００）であって、
リフレッシュ−スクラブアクセス時間間隔を、前記メモリデバイス（３５０、５１０）のリフレッシュ速度要件および反転修正のためのエラースクラビング速度要件が共に満たされるように選択するステップ（１１０）と、
メモリデバイスの複数の記憶域に収容されたデータを順次読み取るステップ（１２２）と、
前記複数の記憶域に格納されたデータのエラーをチェックするステップ（１２３）と、
エラーが検出された場合記憶域データを修正するステップ（１２４）とを備え、
前記複数の記憶域内のすべての記憶域は、前記リフレッシュ−スクラブアクセス時間間隔を超えない周期で繰り返し読み取られる方法。
【請求項２】
前記メモリデバイス（３５０、５１０）はそれぞれ複数の要素（３８２）を有する複数の行（３８０）をさらに備え、各要素（３８２）は前記メモリデバイス（３５０、５１０）の記憶域を備え、データを順次読み取るステップはさらに、
前記メモリデバイス（３５０、５１０）の行リフレッシュ時間間隔よりも短い時間間隔内に前記複数の各行（３８０）のｎ番目の要素（３８２）に含まれるデータを読み取るステップを備える請求項１に記載の方法。
【請求項３】
データを順次読み取るステップはさらに、要素のエラースクラビング間隔よりも短い時間間隔内に前記複数の各行（３８０）のすべての要素（３８２）に含まれるデータを読み取るステップを備える請求項２に記載の方法。
【請求項４】
前記メモリデバイス（３５０、５１０）はそれぞれ複数の要素（３８２）を有する複数の行（３８０）をさらに備え、各要素（３８２）は前記メモリデバイス（３５０、５１０）の記憶域を備え、前記メモリデバイス（３５０、５１０）はｎ個の要素のバーストアクセス用に最適化され、データを順次読み取るステップはさらに、
前記メモリデバイス（３５０、５１０）の行リフレッシュ時間間隔よりも短い時間間隔内に前記複数の各行（３８０）からｎ個の要素（３８２）までのバーストに含まれるデータを読み取るステップを備える請求項１に記載の方法。
【請求項５】
データを順次読み取るステップはさらに、要素のエラースクラビング間隔よりも短い時間間隔内に前記複数の各行（３８０）のすべての要素（３８２）に含まれるデータを読み取るステップを備える請求項４に記載の方法。
【請求項６】
ダイナミックメモリデバイスに格納されたデータの保全性を保持する方法（１００）であって、
複数のメモリ素子を有するダイナミックメモリデバイス（３５０、５１０）のリフレッシュ−スクラブアクセス時間間隔を、前記ダイナミックメモリデバイス（３５０、５１０）のリフレッシュ速度要件およびエラースクラビング速度要件に基づいて決定するステップと、
前記ダイナミックメモリデバイス（３５０、５１０）の各メモリ素子に前記リフレッシュ−スクラブアクセス時間間隔を超えない周期でエラースクラビング機能を実行するステップとを備える方法。
【請求項７】
データを格納するシステムであって、 
１つまたは複数のダイナミックメモリデバイス（３５０、５１０）と、
前記１つまたは複数のメモリデバイス（３５０、５１０）に結合されたメモリ管理モジュール（５２０）であって、前記１つまたは複数のメモリデバイス（３５０、５１０）内の記憶域がリフレッシュ−スクラブアクセス時間間隔に必要とされる時間内にエラースクラビングされるように、１つまたは複数のメモリデバイス（３５０、５１０）でリフレッシュ−スクラビング機能を周期的に実行するように適合されたメモリ管理モジュール（５２０）とを備えるシステム。
【請求項８】
前記メモリ管理モジュール（５２０）はさらに、前記１つまたは複数のメモリデバイス（３５０、５１０）のすべての記憶域を通して周期的に繰り返し、前記各記憶域の内容を読み取り、エラーを識別するように適合される請求項７に記載のシステム。
【請求項９】
データを格納するシステムであって、
データを格納する手段（３５０、５１０）であって、前記データを格納する手段（３５０、５１０）は複数のメモリ素子にデータ値を格納する手段と、
前記複数の記憶域に格納された前記データ値を読み取る手段（５２０）と、
前記複数の記憶域に格納されたデータ値のエラーを識別する手段（５２０）と、
エラーが検出された場合データ値を修正する手段（５２０）とを備え、
前記読み取る手段は、前記複数のメモリ素子をそれぞれ、リフレッシュ−スクラブアクセス時間間隔を超えない周期で読み取るシステム。
【請求項１０】
前記リフレッシュ−スクラブアクセス時間間隔は、データを格納する前記手段のリフレッシュ速度の要件およびエラースクラビング速度の要件を満たすことに基づく請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、デジタルコンピュータに関し、具体的にはダイナミックメモリデバイスに関する。
【背景技術】
【０００２】
高高度および大気圏外におけるような高い放射線環境の影響を受けやすいメモリデバイスは、放射線粒子による衝撃を受けた結果メモリセル値が変化（つまり反転）する可能性があるという、シングルイベント効果（ｓｉｎｇｌｅ  ｅｖｅｎｔ  ｅｆｆｅｃｔ）感受性の損害を被る。この問題に対する従来の解決策は、各記憶域が定期的に読み取られ、エラーがないかチェックされるエラースクラビングを含む。エラーが検出された場合、正しい値は冗長ソースから取り出され、記憶域に書き戻される。さらに、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など、多くのメモリデバイスは、適切に機能するために定期的にリフレッシュされる必要がある。メモリデバイスのリフレッシュおよびエラースクラビングはそれぞれ、他の場合であればメモリデバイスにデータを格納するアプリケーションに使用されていたはずのメモリアクセス時間を消費する。放射線に対して堅固なメモリ技術は、シングルイベント効果の影響を受けにくいが、一般的に集積度が小さいので、非堅固なデバイスの場合の少ない数で使用可能な記憶容量と同等の容量を得るために、さらに多くのデバイスが必要となる。
【０００３】
前述の理由および本明細書を読み理解すれば当業者には明らかとなる以下に述べるその他の理由から、当技術分野においてリフレッシュおよびエラースクラビングメモリデバイスの改良された方法およびシステムが必要とされている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、メモリデバイスをリフレッシュおよびエラースクラビングするための方法およびシステムを提供し、以下の明細書を読み、検討することによって理解されよう。
【０００５】
一実施形態において、メモリデバイスのリフレッシュ−エラースクラビング機能を実施する方法が提供される。方法は、メモリデバイスの複数の記憶域に収容されているデータを順次読み取るステップと、複数の記憶域に格納されているデータにエラーがないかチェックするステップと、エラーが検出された場合に記憶域データを修正するステップとを備える。複数の記憶域内のすべての記憶域は、リフレッシュ−スクラブアクセス時間間隔を超えない周期で繰り返し読み取られる。
【０００６】
別の実施形態において、データを格納するシステムが提供される。システムは、１つまたは複数のダイナミックメモリデバイス、および１つまたは複数のメモリデバイスに結合されたメモリ管理モジュールを備える。メモリ管理モジュールは、１つまたは複数のメモリデバイス内の記憶域がリフレッシュ−スクラブアクセス時間間隔に必要とされる時間内にエラースクラビングされるように、１つまたは複数のメモリデバイスでリフレッシュ−スクラビング機能を定期的に実行するように適合される。
【０００７】
さらに別の実施形態において、データを格納するシステムが提供される。システムは、複数のメモリ素子にデータ値を格納するデータを格納する手段と、複数のメモリ素子に格納されたデータ値を読み取る手段と、複数のメモリ素子に格納されたデータ値のエラーを識別する手段と、エラーが検出された場合にデータ値を修正する手段とを備える。読み取る手段は、複数のメモリ素子をそれぞれ、リフレッシュ−スクラブアクセス時間間隔を超えない周期で読み取る。
【０００８】
さらに別の実施形態において、ダイナミックメモリデバイスに格納されたデータの保全性を保持する方法のためのコンピュータ実行可能プログラム命令を有するコンピュータ可読媒体が提供される。方法は、複数のメモリ素子を有するダイナミックメモリデバイスの各メモリ素子にリフレッシュ−スクラブアクセス時間間隔を超えない周期でエラースクラビング機能を実行するステップを備える。
【０００９】
本発明は、好ましい実施形態の説明および以下の図を考慮して検討すれば、さらに容易に理解され、更なるその利点および用途が容易に明らかになるであろう。
【課題を解決するための手段】
【００１０】
一般的な慣行に従い、説明されるさまざまな機能は一定の縮尺で描かれておらず、本発明に関連する特徴を強調するように描かれている。参照文字は、図面および本文全体を通じて類似した要素を示す。
【００１１】
以下の詳細な説明において、その一部を形成する添付の図への参照が行われ、図において本発明が実施されうる特定の実施形態が例示により示されている。これらの実施形態は、当業者が本発明を実施できるようにするのに十分詳細に説明されており、他の実施形態が使用されることができ、本発明の範囲を逸脱することなく論理的、機構的、および電気的変更を行うことができることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で把握されるべきではない。
【００１２】
本発明の実施形態は、エラースクラビングおよびメモリリフレッシュの機能を単一のアクティビティに一体化することにより、アプリケーションを使用するためのメモリデバイスの可用性を高める。エラースクラビング機能は、エラーの発生確率に基づいて最小間隔内に各メモリデバイス位置をチェックする必要がある。この確率は、メモリデバイスの特性および環境因子両方の関数である。エラーが検出された場合、正しい値は冗長ソースから取り出され、記憶域に書き戻される。
【００１３】
メモリデバイスのエラースクラビング速度は、累積的な反転の数がもはや修正できない地点に達する前に、反転が確実に発見されて修正されるように選択される。通常、所定の環境における所定の素子の動作に対して、反転発生の確率および反転が予想されうる頻度を判別するために放射線効果の分析が使用される。エラースクラビング速度は通常、１つの反転が予想される見込み時間内にメモリ全体がスクラビングされるように選択される。見込み時間は、エラースクラビングの間隔内で特定の要素（つまりデバイスアドレス）が繰り返される必要のある要素エラースクラビング間隔を確立する。たとえば、１６００要素のデバイスで１つの反転を予想する見込み時間が１．６秒である場合、そのデバイスのエラースクラビング速度は１６００（要素）／１．６（秒）、つまり毎秒１０００要素と等しい。エラースクラビング機能は、１．６秒の要素エラースクラビング間隔を満たすために少なくとも毎秒１０００要素の速度でエラースクラビングを行う必要がある。
【００１４】
ＤＲＡＭなどのダイナミックメモリデバイスは、メモリデバイスの内容の損失を防ぐために、ある最小間隔内にメモリデバイスの全内容をリフレッシュする必要がある。一実施形態において、メモリデバイスのリフレッシュ速度は、製造者の指定した行リフレッシュ間隔に基づいて決められ、この間隔は特定の行に対してリフレッシュサイクルを繰り返す最大時間間隔を指定する。メモリデバイスの全内容は、メモリデバイスの内容の損失を防ぐために、製造者によって指定された時間間隔内にリフレッシュされる必要がある。たとえば、６４００行メモリデバイスの製造者の行リフレッシュ間隔が６４ミリ秒である場合、そのデバイスのリフレッシュ速度は６４００（行）／６４（ミリ秒）、つまり毎秒１００，０００行と等しい。リフレッシュ機能は、６４ミリ秒の行リフレッシュ間隔の要件を満足するために少なくとも毎秒１００，０００行の速度でリフレッシュを行う必要がある。
【００１５】
本発明の実施形態は、リフレッシュおよびエラースクラビング間隔を適切に整合させ、結果としてリフレッシュおよびエラースクラビングの両方の機能を同時に達成するメモリデバイスアクセスパターンを定義し、それによりこれらのオーバーヘッドアクティビティによって浪費されるメモリアクセス時間を減少させる。
【００１６】
本発明の実施形態は、記憶域からの読み取りが記憶域の内容のリフレッシュを実行するＤＲＡＭの特性を利用する。メモリデバイス内の記憶域が周期的パターンで継続的に読み取られる限り、別個のリフレッシュ操作は必要ではない。コンピュータアプリケーションの通常の実行では、すべての必要とされる記憶域読み取りを実行してメモリデバイス全体をリフレッシュすることを当てにすることはできない。なぜなら、通常のコンピュータアプリケーションは、必要に応じて特定の記憶域との間で読み取りおよび書き込みを行うことによってメモリにアクセスするのみであるからである。したがって、アプリケーションによるメモリデバイスのアクセスは、メモリデバイスのリフレッシュ速度の要件を満足するのに十分な頻度ですべての記憶域が確実にリフレッシュされるようにするには不十分な、ほとんどランダムな読み取りおよび書き込みのパターンをもたらす。対照的に、エラースクラビング機能は、修正すべき反転を探しながら、すべての記憶域にアクセスするので、メモリデバイスのリフレッシュをエラースクラビング機能に依存することができる。本発明の実施形態はエラースクラビング速度およびリフレッシュ速度の両方を満足し、別個のリフレッシュ操作を実行する必要をなくし、それによりメモリデバイスのオーバーヘッド時間要件を軽減しながら同時にアプリケーションのアクセスにメモリデバイスが使用可能な時間を増大させるのに十分な頻度およびパターンのエラースクラビングメモリアクセスを実行する方法を提供する。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の一実施形態のメモリデバイスに対する一体化されたリフレッシュ−エラースクラビング機能を実施する方法１００を示す流れ図である。図１の方法１００は、記憶域からのデータ読み取りが記憶域のリフレッシュも行うダイナミックメモリの特性を利用する。方法は最初に、リフレッシュ−スクラブアクセス時間間隔を選択するステップを備える（１１０）。リフレッシュ−スクラブアクセス時間間隔は、メモリデバイスのリフレッシュ速度要件および反転修正のためのエラースクラビング速度要件が共に確実に満たされるように、メモリデバイス内のすべての記憶域がエラースクラビング機能によって読み取られる必要がある時間間隔である。一実施形態において、リフレッシュ−スクラブアクセス時間間隔は単に、行リフレッシュ間隔と要素エラースクラビング間隔のうち短いほうの間隔である。方法は次に、リフレッシュ−エラースクラビング機能を実行するステップを備える（１２０）。リフレッシュ−エラースクラビング機能は、エラースクラビングアクセスを実行するメモリデバイスのすべての記憶域を通して周期的に繰り返す。方法１００は最初に、エラーを識別するために記憶域の内容を読み取る（１２２）。ダイナミックメモリデバイスの性質により、記憶域に収容されたデータを読み取ることによって、記憶域は同時にリフレッシュされる。エラーが検出された場合（１２３）、正しい値は冗長ソースから取り出され（１２４）、記憶域に書き戻される（１２６）。リフレッシュ−エラースクラビング機能は、すべての場所がエラースクラビングされるまで（１２８）各記憶域を通して引き続き周期的に繰り返す。方法は、リフレッシュ−エラースクラビング機能を実行するステップ（１２０）を再開する。
【００１８】
一実施形態において、方法１００は時間間隔Ｔの間一時停止し（１３０）、アプリケーションがメモリデバイスにアクセスできるようにする。一時停止時間間隔は、リフレッシュ−スクラビング機能が、リフレッシュ−スクラブアクセス時間間隔によって必要とされる時間内に各記憶域の内容を確実に読み取る（１２２）ように選択される。一実施形態において、時間間隔Ｔの一時停止（１３０）は、リフレッシュ−スクラブアクセス時間間隔全体にわたりエラースクラビングアクセスを均一に分散するために、各後続エラースクラビングアクセスの間に配置される。間隔全体にわたり遅延を分散することで、アプリケーションのメモリアクセスに対するアクセス待ち時間が減少する。リフレッシュ−スクラビングがすべて一度に実行される場合、メモリへのアプリケーションアクセスは、継続期間中は中断される必要がある。一部のアプリケーションには、そのような動作を許容できないものもある。代替として、アプリケーションが制限付きメモリアクセスの期間を有することが知られている場合は、それらの期間中にリフレッシュ−スクラビング機能を実行するように選択することは有益である。リフレッシュ−スクラビングアクションのタイミングおよび細分性は、リフレッシュ−スクラブアクセス時間の制約が満たされる限り、アプリケーション固有であるとみなされるべきである。ほとんどのアプリケーションは、メモリに機能アクセスの最小待ち時間をもたらす、細分化され、分散された動作を好む傾向がある。
【００１９】
図２は、記憶域の行内の記憶域からデータを読み取ることがその記憶域をリフレッシュするだけでなく行全体もリフレッシュするというダイナミックメモリデバイスの特性をさらに利用するアルゴリズムの一実施形態の方法２００を示す。図３Ａに示されるように、一実施形態において、メモリデバイス３５０の記憶域は、各行が複数の記憶域要素３８２を備える複数の行３８０を有するマトリクスで構成される（簡単にするために、図３Ａ、図３Ｂ、および図３Ｃにおいては、４つの要素を備える４つの行のみが示される）。方法２００は、リフレッシュ速度要件およびエラースクラビング速度要件を満たすためにメモリデバイス３５０の記憶域を通じて周期的に繰り返す場合、エラースクラビングアクセスを実行する効率的なパターンを提供する。第１の行３１０の第１の記憶域（つまり行１の要素１）で始まり、方法２００は、同時に行１のすべての記憶域のリフレッシュをもたらすエラースクラブアクセスをその要素で実行する。次に方法２００は続行し、最終行３１２の最初の記憶域（たとえば行４の要素１）を完了するまで、次の隣接する行（３２０−１で示される）の最初の記憶域を通して周期的に繰り返し、エラースクラブグアクセスを実行する。このパターンの結果は、各行の１つの要素をエラースクラビングするために要する時間の間に、メモリデバイス３５０内のすべての記憶域がリフレッシュされるということである。次に方法はこのシーケンスを繰り返し、各行の２番目の要素を通して周期的に繰り返し（３２０−２で示される）、すべての記憶域がエラースクラビングされるまで、各行のｎ番目の要素（３２０−３および３２０−４で示される）を通して周期的に繰り返す。
【００２０】
方法２００のアルゴリズムは、ＬＯＣ＿ＩＮＣ、ＬＯＣ＿ＲＡＮＧＥ、およびＩＮＮＥＲ＿ＬＯＯＰ＿ｌＴＥＲＡＴＩＯＮ＿ＲＡＮＧＥ（ＩＬＩＲ）という３つの定数を定義する。ＬＯＣ＿ＩＮＣは、ある行の１番目の要素と隣接する行の１番目の要素との間のメモリデバイス位置における差異（つまり、行あたり含まれる記憶域要素の数）として定義される。ＬＯＣ＿ＲＡＮＧＥは、リフレッシュ−スクラブアクセス時間間隔内にリフレッシュされエラースクラビングされる必要のある記憶域要素の合計数として定義される。ＩＮＮＥＲ＿ＬＯＯＰ＿ＩＴＥＲＡＴＩＯＮ＿ＲＡＮＧＥは、ＬＯＣ＿ＩＮＣで除算されたＬＯＣ＿ＲＡＮＧＥと等しい。
【００２１】
２００のアルゴリズムは、１からＬＯＣ＿ＩＮＣまで１ステップ増分で繰り返す第１のループシーケンス（２１０）を備える。変数ＯＵＴＥＲ＿ＩＮＤＥＸは、第１のループシーケンスの現行値から１を減算したものと等しい（２２０）。第１のループシーケンス内で、第２のループシーケンス（２３０）は、１からＩＬＩＲまで１ステップ増分で繰り返す。ＩＮＮＥＲ＿ＩＮＤＥＸは、第２のループシーケンスの現行値から１を減算しものと等しい（２４０）。第２の各ループシーケンス内で、アルゴリズムは、メモリデバイス３５０の行を通して（３２０−１から４で示される）周期的に繰り返し、各行内の１つの記憶域でエラースクラブアクセスを実行する（２７０）。一実施形態において、方法２００はさらに、関数ＰＯＳＩＴＩＯＮをＯＵＴＥＲ＿ＩＮＤＥＸ＋（ＩＮＮＥＲ＿ＩＮＤＥＸ＊ＬＯＣ＿ＩＮＣ）と等しくなるよう定義する（２５０）。ＰＯＳＩＴＩＯＮ関数は、次にエラースクラビングされるべき、現在のＯＵＴＥＲ＿ＩＮＤＥＸ値およびＩＮＮＥＲ＿ＩＮＤＥＸ値を記憶域に相関させる整数値を（図３Ｂに示されるように）計算する。各要素のＰＯＳＩＴＩＯＮ値は、通常３５５において示される。たとえば、ＰＯＳＩＴＩＯＮが０と等しい場合、メモリデバイス３５０内の対応するメモリ素子は行１、要素１である。ＰＯＳＩＴＩＯＮが１５と等しい場合、メモリデバイス３５０内の対応するメモリ素子は行４、要素４である。メモリデバイス３５０の場合、第１のループシーケンスは１からＬＯＣ＿ＩＮＣ（この例では４）まで周期的に繰り返し、第２のループシーケンスは１からＩＬＩＲ（この例では同様に４）まで周期的に繰り返すので、ＰＯＳＩＴＩＯＮは０、４、８、１２、１、５、９、１３、２、６、１０、１４、３、７、１１、および１５の値を通して繰り返し、それぞれの第１および第２のループ反復中にどの記憶域をエラースクラビングするかを示す。これらのＰＯＳＩＴＩＯＮ値に対してそれぞれの相関する行：要素は、１：１、２：１、３：１、４：１、１：２、２：２、３：２、４：２、１：３、２：３、３：３、４：３、１：４、２：４、３：４、および４：４である。一実施形態において、方法２００はさらに、ＰＯＳＩＴＩＯＮ関数からの整数値を標準メモリアドレス形式に変換するステップ（２６０）を備える。そのメモリアドレスに対してエラースクラブアクセスが実行される場合、メモリの行全体がリフレッシュされる。当業者であれば、この明細書を読めば標準的なメモリデバイスのアドレスデコード構造へのＰＯＳＩＴＩＯＮ値のマッピングがデバイスアーキテクチャに固有であることを理解するであろう。図３Ｂは、１つの一般的な例を表すが、他のデバイスアーキテクチャも、本発明の実施形態の範囲内で可能である。
【００２２】
リフレッシュ−スクラビング−アクセス時間間隔を満たすために、第２のループ（２３０）シーケンスを完了するために必要な時間は、メモリデバイスの行リフレッシュ間隔よりも短い必要がある。さらに、第１のループ（２１０）シーケンスを完了するために必要な時間は、要素エラースクラビング間隔よりも短い必要がある。しかし、方法２００が連続的に繰り返すことができるようにすることで、アプリケーションがデータを格納または取り出すためにメモリデバイス３５０にアクセスするのを防げる。したがって、方法２００はさらに、アプリケーションが、各エラースクラブアクセスの後にＴ１の時間間隔の間メモリデバイス３５０にアクセスできるようにする時間遅延（２８０）を備える。時間間隔Ｔ１は、方法２００のリフレッシュ−スクラビング機能全体が、リフレッシュ−スクラブアクセス時間間隔によって必要とされる時間内に実行されるように選択される。一実施形態において、時間間隔Ｔ１は、リフレッシュ速度およびエラースクラビング速度の要件を依然として満たす可能な最大時間間隔として選択される。各エラースクラブアクセスの後の一時停止は、リフレッシュ−スクラブアクセス時間間隔全体にわたりさらに均一にエラースクラブアクセスを分散するので、メモリデバイス３５０にアクセスする必要のあるアプリケーションのアクセス待ち時間が減少する。
【００２３】
当業者には本明細書を読めば理解されるように、メモリ素子内のデータの順次読み取りは、連続するメモリデバイスの行または列に制限されないが、リフレッシュ速度およびエラースクラビング速度の要件が満たされる限り、任意のシーケンスを備えることができる。一実施形態において、方法２００のアルゴリズムは、使用される特定のメモリデバイスのさらに他の特有の性質を利用するように変更されうる。たとえば、ＳＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）などの特定のダイナミックメモリデバイスは、メモリ素子へのバーストアクセス用に最適化されるが、これに限定されることはない。一実施形態において、メモリデバイスは、バーストあたり約２から８の順次アドレスのバーストアクセス用に最適化される。アドレスあたりの合計アクセスオーバーヘッドは、一度に１つの素子位置ではなく、バースト単位でエラースクラブアクセスを実行することにより減少させることができる。たとえば、一実施形態において、メモリデバイス３５０は、バーストあたり約２つのアドレスのバーストアクセス用に最適化される。この２つの要素のバーストアクセス最適化を利用するため、本発明の一実施形態の代替アルゴリズムは、図３Ｃに示されるように、０、１、４、５、８、９、１２、１３、２、３、６、７、１０、１１、１４、１５のＰＯＳＩＴＩＯＮ値を通して周期的に繰り返す。デバイスの構成に応じて、各バーストは１つまたは複数の行に作用し、作用される各行をリフレッシュすることができる。１つの行のみが作用される場合、過度のエラースクラブアクセスはリフレッシュについては冗長であるが、エラースクラビングにとって有益である。
【００２４】
図４は、バーストアクセス最適化をさらに利用する、方法２００のようなアルゴリズムの一実施形態の方法４００を示す。方法４００のアルゴリズムは、上述の方法２００の場合と同様に定数ＬＯＣ＿ＩＮＣ、ＬＯＣ＿ＲＡＮＧＥ、およびＩＬＩＲを定義し、メモリデバイス３５０がバーストアクセスするように最適化された順次アドレスアクセスの数を指定する定数ＢＵＲＳＴをさらに定義する。方法４００のアルゴリズムは、１からＬＯＣ＿ＩＮＣまでＢＵＲＳＴの値と等しい増分ステップで周期的に繰り返す第１のループシーケンス（４１０）を備える。変数ＯＵＴＥＲ＿ＩＮＤＥＸは、第１のループシーケンスの現行値から１を引いたものと等しい（４２０）。第１のループシーケンス内で、第２のループシーケンス（４３０）は、１からＩＬＩＲまで１ステップ増分で周期的に繰り返す。ＩＮＮＥＲ＿ＩＮＤＥＸは、第２のループシーケンスの現行値から１を引いたものと等しい（４４０）。第２のループシーケンス内で、第３のループシーケンス（４４２）は、バーストアクセスに対するアドレスのバーストカウントを確立し、１からＢＵＲＳＴまで周期的に繰り返す。ＢＵＲＳＴ＿ＩＮＤＥＸは、第３のループシーケンスの現行値から１を引いたものと等しい（４４４）。
【００２５】
第３の各ループシーケンス内に、アルゴリズムは、メモリデバイス３５０を通して（３３０−１から３３０−３で示される）周期的に繰り返し、ＢＵＲＳＴと等しい記憶域の合計数までエラースクラブアクセス（４７０）を実行する。一実施形態において、方法４００はさらに、（ＯＵＴＥＲ＿ＩＮＤＥＸ＋（ＩＮＮＥＲ＿ＩＮＤＥＸ＊ＬＯＣ＿ＩＮＣ））＋ＢＵＲＳＴ＿ＩＮＤＥＸと等しくなるようにＰＯＳＩＴＩＯＮを定義する（４５０）。ＰＯＳＩＴＩＯＮ関数は、上記の図３Ｂに関して説明されるように、現在のＯＵＴＥＲ＿ＩＮＤＥＸ値、ＩＮＮＥＲ＿ＩＮＤＥＸ値、およびＢＵＲＳＴ＿ＩＮＤＥＸ値を記憶域に相関させる整数値を計算する。メモリデバイス３５０に適用される方法４００のアルゴリズムの場合、ＰＯＳＩＴＩＯＮは、０、１、４、５、８、９、１２、１３、２、３、６、７、１０、１１、１４、１５の値を通して周期的に繰り返し、エラースクラビングする記憶域の順序を示す。一実施形態において、方法４００はさらに、ＰＯＳＩＴＩＯＮ関数からの整数値を標準メモリアドレス形式に変換するステップ（４６０）を備える。
【００２６】
方法４００はさらに、アプリケーションが、各エラースクラブアクセスバーストの後にＴ２の時間間隔の間メモリデバイス３５０にアクセスできるようにする時間遅延（４８０）を備える。方法２００の場合と同様に、リフレッシュ−スクラブアクセス時間間隔を満たすため、第２のループ（４３０）シーケンスを完了するために必要な時間は、メモリデバイス３５０の行リフレッシュ間隔よりも短い必要がある。さらに、第１のループ（４１０）シーケンスを完了するために必要な時間は、要素エラースクラビング間隔よりも短い必要がある。したがって、時間間隔Ｔ２は、方法（４００）のリフレッシュ−スクラビング機能全体が、リフレッシュ−スクラブアクセス時間間隔によって必要とされる時間内に確実に実行されるように選択される。一実施形態において、時間間隔Ｔ２は、リフレッシュ速度およびエラースクラビング速度の要件を依然として満たす可能な最大時間間隔として選択される。各エラースクラブアクセスバーストの後の一時停止は、リフレッシュ−スクラブアクセス時間間隔全体にわたりさらに均一にエラースクラブアクセスを分散するので、メモリデバイス３５０にアクセスする必要のあるアプリケーションのアクセス待ち時間が減少する。
【００２７】
図２、図３Ａ〜図３Ｃ、および図４は、４つの要素の４つの行から成る仮定のメモリデバイスによる方法の適用を示すが、当業者であれば、本明細書を読めば本発明の実施形態がこの仮定のデバイスに限定されないことが容易に理解されよう。逆に、本発明の実施形態は、記憶域からのデータの読み取りがリフレッシュを提供する特性を有する任意のダイナミックメモリデバイスに適用可能である。たとえば、一実施形態において、メモリデバイス３５０は、必要なリフレッシュ間隔が６４ミリ秒で４バンクに８１９２行を有するＤＤＲ  ＳＤＲＡＭ（倍速シンクロナスＤＲＡＭ）メモリデバイスである。
【００２８】
図５は、本発明の一実施形態のデジタルデータを格納するシステム５００を示すブロック図である。システム５００は、１つまたは複数のメモリデバイス５１０、メモリデバイス５１０に結合されたメモリ管理モジュール５２０を備える。メモリデバイス５１０は、ＤＲＡＭ、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、またはメモリデバイスの記憶域から読み取ることがその記憶域のリフレッシュを実行するという特性を有する同様のメモリデバイスなど、１つまたは複数のメモリデバイスを備えるが、これらに限定されることはない。一実施形態において、メモリ管理モジュール５２０は、エラースクラブアクセスをメモリリフレッシュと組み合わせるメモリデバイス５１０上のリフレッシュ−エラースクラビング機能を実行する。一実施形態において、リフレッシュ−エラースクラビング機能は、図１、図２、図３Ａ〜３Ｃ、および図４に関して説明されているようなアルゴリズムを実行する。一実施形態において、エラースクラブアクセスは、エラーを識別するために記憶域の内容を読み取るメモリ管理モジュール５２０を備える。記憶域に収容されたデータを読み取ることによって、その記憶域はリフレッシュされる。エラーが検出された場合、メモリ管理モジュール５２０は、正しい値を取り出して、記憶域に正しい値を書き戻す。
【００２９】
一実施形態において、メモリ管理モジュール５２０は、リフレッシュ−スクラブアクセス時間間隔によって必要とされる時間内にすべての記憶域でエラースクラブアクセスが確実に実行されるようにするため、周期的にエラースクラブアクセスを実行する。リフレッシュ−スクラブアクセス時間間隔は、メモリデバイス５１０のリフレッシュ速度要件および反転修正のためのエラースクラビング速度要件が共に確実に満たされるように、メモリデバイス５１０内のすべての記憶域が読み取られる必要がある時間間隔である。
【００３０】
いくつかの手段が、方法およびアルゴリズムを実施するために使用することができ、前述のようなメモリ管理モジュールを実現する。これらの手段は、デジタルコンピュータシステム、プログラマブルコントローラ、またはフィールドプログラマブルゲートアレイなどのコントローラを含むが、これらに限定されることはない。したがって、本発明の他の実施形態は、そのようなコントローラによって実施されればコントローラが本発明の実施形態を実施できるようにするコンピュータ可読媒体上に常駐するプログラム命令である。コンピュータ可読媒体は、パンチカード、磁気ディスクまたはテープ、任意の光データ記憶システム、フラッシュ読み出し専用メモリ（ＲＯＭ）、不揮発性ＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（Ｅ−ＰＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、または他の形態の永続、半永続、または一次記憶装置システムまたはデバイスを含む任意の形態のコンピュータメモリを含むが、これらに限定されることはない。プログラム命令は、コンピュータシステムプロセッサによって実行されるコンピュータ実行可能命令、およびＶｅｒｙ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＶＨＳＩＣ）  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＶＨＤＬ）などのハードウェア記述言語を含むが、これらに限定されることはない。
【００３１】
特定の実施形態が本明細書に示され説明されてきたが、同一の目的を達成するために予想される任意の構成が、示されている特定の実施形態に代用されうることが当業者には理解されるであろう。本出願は、本発明の任意の適合または変種を網羅することが意図されている。したがって、本発明が特許請求の範囲およびその等価物によってのみ限定されることが明白に意図される。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態の方法を示す流れ図である。
【図２】本発明の一実施形態の方法を示す流れ図である。
【図３−Ａ】本発明の一実施形態のリフレッシュ−エラースクラビングのパターンを示す図である。
【図３−Ｂ】本発明の一実施形態のリフレッシュ−エラースクラビングのパターンを示す図である。
【図３−Ｃ】本発明の一実施形態のリフレッシュ−エラースクラビングのパターンを示す図である。
【図４】本発明の一実施形態の方法を示す流れ図である。
【図５】本発明の一実施形態のデジタルデータを格納するシステムを示すブロック図である。
【符号の説明】
【００３３】
１１０  リフレッシュ−スクラブアクセス時間間隔を選択
１２０  リフレッシュ−スクラビング機能を実行
１２２  エラーがないか記憶域の内容を読み取る
１２３  エラーが検出されたか
１２４  正しいデータを取得
１２６  正しいデータを記憶域に書き込む
１２８  すべての記憶域がエラースクラビングされたか
１３０  時間間隔Ｔの間一時停止
【図１】
2007035035.tif 000003
【図２】
2007035035.tif 000004
【図３−Ａ】
2007035035.tif 000005
【図３−Ｂ】
2007035035.tif 000006
【図３−Ｃ】
2007035035.tif 000007
【図４】
2007035035.tif 000008
【図５】
2007035035.tif 000009
【外国語明細書】
2007035035000001.pdf