(57)【要約】本発明は、１以上のデータ転送の失敗を被った１以上のメモリ位置の追跡を実現するリプレースメントポリシーアルゴリズムを使用する各種方法、装置及びシステムに関し、本装置は、ビルトインセルフテストを通過し、その後の動作の間にエラーチェックメカニズムにより示される少なくとも１つの失敗を有する１以上のメモリ位置を第一のエントリが追跡する２以上のエントリを有するバッファと、リプレースメントポリシーアルゴリズムを使用するエージェントであって、１以上のメモリ位置の追跡を実現するバッファと共に動作するエージェントとを備えている。【特許請求の範囲】
【請求項１】
ビルトインセルフテストを通過し、その後の動作の間にエラーチェックメカニズムにより示される少なくとも１つの失敗を有する１以上のメモリ位置を第一のエントリが追跡する２以上のエントリを有するバッファと、
リプレースメントポリシーアルゴリズムを使用するエージェントであって、１以上のメモリ位置の追跡を実現するバッファと共に動作するエージェントと、
を備えることを特徴とする装置。
【請求項２】
該リプレースメントアルゴリズムは、無効のためのメモリ位置の候補を識別するため、ＬＲＦ（Least  Recently  Failed）リプレースメントポリシーを備える、
請求項１記載の装置。
【請求項３】
該ＬＲＦリプレースメントポリシーによる該メモリ位置の候補の識別は、少なくとも部分的に、それぞれ追跡されたメモリ位置のデータ転送の失敗のレートに基づく、
請求項２記載の装置。
【請求項４】
該ＬＲＦリプレースメントポリシーによる該メモリ位置の候補の識別は、少なくとも部分的に、それぞれ追跡されたメモリ位置に関連するデータ転送の失敗の総数に基づく、
請求項２記載の装置。
【請求項５】
該データ転送の失敗の少なくとも１つは、読取り動作から生じる誤ったデータを備える、
請求項４記載の装置。
【請求項６】
該データ転送の失敗の少なくとも一部は、期待される結果から離れる結果であって、エラーチェックメカニズムにより検出された誤ったデータを備える、
請求項４記載の装置。
【請求項７】
該バッファは有限の量のエントリを有し、該リプレースメントアルゴリズムは、追跡されたメモリ位置の総数が該バッファにおける有限の数のエントリを超えるとき、追跡されたメモリ位置と関連する情報を該バッファから除く、
請求項１記載の装置。
【請求項８】
該エージェントは、記録された失敗の数が閾値を超えるかを比較するコンパレータをさらに含む、
請求項７記載の装置。
【請求項９】
ビルトインセルフテストを通過し、その後の動作の間に少なくとも１つのデータ転送の失敗を有するメモリ位置と関連する１以上のデータ転送の失敗を追跡するステップと、
エラー検出チェックメカニズムによりデータ転送の失敗を検出するステップと、
を備えることを特徴とする方法。
【請求項１０】
リプレースメントポリシーに基づいて該メモリ位置を無効にするかを判定するステップをさらに備える、
請求項９記載の方法。
【請求項１１】
該リプレースメントポリシーにより、そのメモリ位置のデータ転送の失敗の数がデータ転送の失敗に関する閾値なる総数に等しいか又は該総数を超えるかを判定するステップをさらに備える、
請求項１０記載の方法。
【請求項１２】
該リプレースメントポリシーにより、メモリ位置のデータ転送の失敗のレートがデータ転送の失敗の閾値の数に等しいか又は該数を超えるかを判定するステップをさらに備える、
請求項１０記載の方法。
【請求項１３】
ビルトインセルフテストを通過し、その後の動作の間に少なくとも１つのデータ転送の失敗を有するメモリ位置に関連する１以上のデータ転送の失敗を追跡するための手段と、
エラーチェックメカニズムによりデータ転送の失敗を検出するための手段と、
を備える装置。
【請求項１４】
リプレースメントポリシーに基づいてメモリ位置を無効にするかを判定するための手段をさらに備える、
請求項１３記載の装置。
【請求項１５】
該リプレースメントポリシーにより、メモリ位置のデータ転送の失敗の数がデータ転送の失敗の閾値である総数に等しいか又は超えるかを判定するための手段をさらに備える、
請求項１４記載の装置。
【請求項１６】
該リプレースメントポリシーにより、メモリ位置のデータ転送の失敗のレートがデータ転送の失敗の閾値である数に等しいか又は該数を超えるかを判定するための手段をさらに備える、
請求項１４記載の装置。
【請求項１７】
マシンにより実行されたときに、
ビルトインセルフテストを通過し、その後の動作の間に少なくとも１つのデータ転送の失敗を有する１以上のデータ転送の失敗を追跡するステップと、
エラー検出チェックメカニズムにより該データ転送の失敗を検出するステップと、
を備える動作をマシンに実行させるための命令を有するマシン読取り可能な媒体。
【請求項１８】
該マシンにより実行されたときに、
リプレースメントポリシーに基づいてメモリ位置を無効にするかを判定するステップを備える動作をマシンに更に実行させるための命令を有する、
請求項１７記載のマシン読取り可能な媒体。
【請求項１９】
該マシンにより実行されたときに、
該リプレースメントポリシーにより、メモリ位置のデータ転送の失敗の総数がデータ転送の失敗に関する閾値である数に等しいか又は該数を超えるかを判定するステップを備える動作をマシンに更に実行させるための命令を有する、
請求項１８記載のマシン読取り可能な媒体。
【請求項２０】
該マシンにより実行されたときに、
該リプレースメントポリシーにより、メモリ位置のデータ転送の失敗のレートがデータ転送の失敗に関する閾値の数を超えるかを判定するステップを備える動作をマシンに更に実行させるための命令を有する、
請求項１８記載のマシン読取り可能な媒体。
【請求項２１】
該マシンにより実行されたときに、
１以上のデータ転送の失敗をそれぞれ受けた複数のメモリ位置を追跡するステップと、
該リプレースメントポリシーにより、どの追跡されているメモリ位置が、追跡されている全てのメモリ位置に関する年代順で最も最近ではない失敗を有するかを判定するステップと、
追跡されるメモリ位置の総数が有限の追跡されるメモリ位置の数を超える場合に、該追跡されたメモリ位置に関連する情報を追跡されることから除くステップと、
を備える方法をマシンに更に実行させる命令を有する請求項１８記載のマシン読取り可能な媒体。
【請求項２２】
マシンにより実行されたときに、
エラーチェックメカニズムにより示される１以上のデータ転送の失敗をそれぞれ受ける複数のメモリ位置を追跡するステップと、
ＬＦＦ（Least  Frequently  Failed）リプレースメントポリシーに基づいて、追跡されるメモリ位置を追跡されることから除くステップと、
を備える方法をマシンに実行させるための命令を有するマシン読取り可能な媒体。
【請求項２３】
該マシンにより実行されたときに、
第一のメモリ位置について記録されているデータ転送の失敗の総数が閾値である制限を超えることに基づいて、該第一のメモリ位置を無効のための候補として識別するステップを備える方法をマシンに実行させるための命令を有する請求項２２記載のマシン読取り可能な媒体。
【請求項２４】
該マシンにより実行されたときに、
第一のメモリ位置について記録されているデータ転送の失敗のレートが閾値である制限を超えることに基づいて、該第一のメモリ位置を無効のための候補として識別するステップを備える方法をマシンに実行させるための命令を有する請求項２２記載のマシン読取り可能な媒体。
【請求項２５】
エラーチェックメカニズムにより示される１以上のデータ転送の失敗をそれぞれ受ける複数のメモリ位置を追跡するための手段と、
ＬＦＦ（Least  Frequently  Failed）リプレースメントポリシーに基づいて、追跡されるメモリ位置を追跡されることから除くステップと、
を備えることを特徴とする装置。
【請求項２６】
第一のメモリ位置について記録されているデータ転送の失敗の総数が閾値である制限を超えることに基づいて、該第一のメモリ位置を無効のための候補として識別するための手段をさらに備える、
請求項２５記載の装置。
【請求項２７】
第一のメモリ位置について記録されているデータ転送の失敗のレートが閾値である制限を超えることに基づいて、該第一のメモリ位置を無効のための候補として識別するための手段をさらに備える、
請求項２５記載の装置。
【請求項２８】
リプレースメントアルゴリズムを使用して、１以上のメモリ位置の追跡を実行するためのエージェントと、
１以上のメモリ位置を有するメモリと、
ビルトインセルフテストを通過したが、その後の動作の間にエラーチェックメカニズムにより示される少なくとも１つの失敗を有する１以上のメモリ位置を第一のエントリが追跡する、２以上のエントリを有するバッファとを備え、
該エージェントは、１以上のメモリ位置の追跡を実現するために該バッファと共に動作する、
ことを特徴とするコンピュータシステム。
【請求項２９】
該メモリ位置の少なくとも１つは、メモリワードを備える、
請求項２８記載の装置。
【請求項３０】
該メモリ位置の少なくとも１つは、キャッシュラインを備える、
請求項２８記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の各種実施の形態は、メモリ位置の完全性を保証することに関する。より詳細には、本発明の１以上の実施の形態は、１以上のデータ転送の失敗を被った１以上のメモリ位置を追跡するためのリプレースメントポリシーアルゴリズムを使用する。
【背景技術】
【０００２】
パワーオンセルフテストのようなビルトイン・セルフテスト（ＢＩＳＴ）は、ＢＩＳＴテストの故障の閾値に達しない、磁気ディスクドライブ又は半導体メモリにおける欠陥のメモリワードを識別する。一般に、ＢＩＳＴの完了の後、２つの結果が起こりうる。ＢＩＳＴは、如何なる制約無しにメモリワードが使用可能であることを宣言するか、若しくはＢＩＳＴは、メモリワードを永続的に無効にするか又はディスエーブルにする。したがって、磁気ディスクドライブの不完全なセクタは、永続的に無効又はディスエーブルにされ、不完全なセクタの情報は、コンピュータのブートプロセスの間にユーザに典型的に伝達される。
【０００３】
しかし、特定のメモリワードで検出されたエラーの量がＢＩＳＴテストでプログラムされている故障の閾値を超えない場合、潜在的な欠陥を有するメモリワードは使用され続ける。したがって、繰返しエラーを生じさせるが、まれにしか起こらない間隔でエラーを生じさせる持続性のあるハードウェアの故障を有するメモリワードは許容され、システムのデータの完全性を劣化させる場合がある。
【０００４】
同様に、検査施設外の動作の間に故障するキャッシュラインは、いずれかのやり方で典型的に追跡又は監視されない。持続性のある故障をもつキャッシュラインは、システムのデータの完全性を劣化させ、システムをクラッシュ又はシャットダウンする。しかし、典型的に、キャッシュライン及びメモリワードは、その位置でのエラーが反復的であるか、したがって除去されることを必要とするハードな欠陥を示すことを判定するために追跡されない。
【０００５】
別の従来の技術は、キャッシュに記憶されているデータを置換するために実現されるＬＲＵ（Least  Recently  Used）リプレースメントポリシーである。キャッシュに関連される処理ユニットは、ＬＲＵリプレースメントアルゴリズムを使用して、最も古いデータを破棄しつつ、最近に使用されたデータをキャッシュに記憶する場合がある。ルールベースのアルゴリズムは、いずれか他のキャシュラインよりも最近ではなくキャッシュラインがリード又はライトのように使用されている場合にフラッシュされるべきキャッシュラインを選択するキャッシュシステムで使用される。フラッシュの間、第一のトランザクションに属するキャッシュラインに記憶されている変更されたデータは、第二のトランザクションがキャッシュラインを使用することができるようにメインメモリに書き込まれる。このように、リプレースメントアルゴリズムは、新たなデータブロックをキャッシュすることが望まれるとき、アソシアティブ型キャッシュにおけるどのエントリをメインメモリにフラッシュすべきかを判定する。“Least  Recently  Used”アルゴリズムは、最も長い時間の間にアクセスされていないブロックをフラッシュする。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１以上のデータ転送の失敗を被っている１以上のメモリ位置を追跡することを実行するためのリプレースメントポリシーアルゴリズムを使用する方法、装置及びシステムを提供することにある。
【発明を実施するための最良の形態】
【０００７】
本発明は、様々な変更及び代替的な形態を受け、本発明の特定の実施の形態は、添付図面における例により示され、本実施の形態で詳細に説明される。本発明は、開示される特定の形態に限定されないことが理解されるべきであるが、対照的に、本発明は、本発明の精神及び範囲に含まれる全ての変更、等価な構成、及び代替的な構成をカバーすることが理解されるべきである。
【０００８】
以下の説明では、本発明の完全な理解を提供するため、特定のリプレースメントアルゴリズム、指定されたコンポーネント、コネクション、メモリ位置のタイプ等の例のような様々な特定の詳細が述べられる。しかし、本発明の実施の形態はこれら特定の詳細無しで実施される場合があることを、当業者には明らかであろう。他の例では、公知のコンポーネント又は方法は、詳細に説明されていないが、本発明を不必要に曖昧にすることを回避するためにブロック図で説明されている。したがって、説明される特定の詳細は、単に例示するものである。特定の詳細は、本発明の精神及び範囲内で変動する場合があり、なお本発明の精神及び範囲内にあることが意図される。
【０００９】
一般に、ビルトインセルフテスト（Built  in  Self  Test）を通過したが、その後の動作の間に少なくとも１以上のデータ転送の失敗を有した１以上のメモリ位置のトラッキングを実行するための様々な方法、装置、及びシステムが説明される。
【００１０】
図１は、繰り返されるデータ転送の失敗を被るメモリ位置を追跡及び無効にするための１以上のリプレースメントポリシーを使用したエージェントと共同で動作するため、失敗したデータ転送動作を被るメモリ位置を追跡する情報を記憶するトラッキングバッファの実施の形態に関するブロック図を例示している。トラキングバッファ１０２は、エージェント１０４と共同で動作し、このエージェントは、無効にするための１以上のメモリ位置の候補を識別するためリプレースメントアルゴリズムを利用する。エージェント１０４は、ロジックであり、このロジックは、処理ユニット、ＣＰＵ、特定用途向け集積回路、ソフトウェアロジック、又はハードウェアロジックのようなリプレースメントアルゴリズムを実行する。
【００１１】
トラッキングバッファ１０２は、第一のエントリ１０６、第二のエントリ１０８、第三のエントリ１１０、及び第四のエントリ１１２のような多数のエントリを有している。それぞれのエントリ１０６〜１１２は、エラーチェックメカニズムにより失敗が指摘される１以上のメモリ位置を追跡する。それぞれのエントリ１０６〜１１２は、１以上のフィールド１１４〜１２０を含んでいる。それぞれのフィールド１１４〜１２０は、エラーチェックメカニズムにより失敗していることが指摘された１以上のメモリ位置と関連される情報を含んでいる。エージェント１０４は、リプレースメントポリシーアルゴリズムを使用し、１以上のメモリ位置のトラッキングを実行するためにバッファ１０２と共同で動作する。
【００１２】
トラッキングバッファ１０２は、失敗したデータ転送動作を被った、キャッシュライン又はメモリワードのようなメモリ位置に関する情報を記憶するための有限の記憶容量を有している。それぞれの失敗したメモリ位置に関する情報は、ＣＰＵ、チップセット、メインメモリ等を含むシステム内部のいずれかにあるメモリにおける有限サイズのバッファ１０２に保持することができる。メモリは、ダイナミック・ランダムアクセスメモリ（ＤＲＡＭ）又はスタティック・ランダムアクセスメモリ（ＳＲＡＭ）のような揮発性メモリであるか、フラッシュメモリ、磁気ストレージ、若しくはパワーシャットダウンを耐えることができるいずれか他の形式のメモリのような不揮発性メモリである。実施の形態では、トラッキングバッファ１０２は、それぞれのメモリ位置に関連される１以上のエントリ１０６〜１１２を有している。先に述べたように、トラッキングバッファ１０２は、それぞれのエントリ１０６〜１１２と関連される１以上のメモリ位置を有している。それぞれのメモリ位置は、エントリ１０６〜１１２により追跡されている。これは、記憶されているデータがデータ転送動作の間に読み出し又は書込みされたメモリ位置は、エラー検出メカニズムにより間違っていると検出されたためである。以下に更に説明されるように、データ転送の失敗は、読み出し又は書込み動作の間に検出された間違ったデータから生じるものであって、失敗したリードアクセス動作を含んでいる。
【００１３】
エントリ及びフィールドにおけるトラッキングバッファ１０２は、メモリ位置のアドレス、故障したメモリワード又はキャッシュラインのサイズ、及び／又は１以上の動作の瞬間の間にメモリ位置が失敗したとして検出された回数に対するポインタのような、欠陥のあるメモリ位置に関する情報を含んでいる。トラッキングバッファ１０２は、メモリ位置が訂正された回数、もし使えるのであれば設定及び方式情報、もし使えるのであればセクタ又はトラック情報、及びもし使えるのであればバンク、列又は行情報のような更なる情報をも含んでいる場合がある。メモリ位置と関連されるフィールド１１４〜１２０は、失敗の日付及び時間、そのメモリ位置の前の失敗と最後の失敗との間の間隔の時間の値、特定の時限でそのメモリ位置で失敗した回数、又は所与の時間単位、及び無効なメモリ位置に選定される前に訂正メカニズムにより失敗が訂正される閾値となる回数を含んでいる。
【００１４】
トラッキングバッファ１０２は、追跡されることによりそのメモリ位置が永続的に無効であるか又は除去されると選定されるまで、失敗したデータ転送動作を被ったメモリ位置に関する情報を記憶する。トラッキングに使用されるリプレースメントポリシーに依存して、ある情報の部分を省略することができる。実施の形態では、効率性の理由のため、トラッキングバッファ１０２は、有限の量のエントリ１０６〜１１２、したがって制限された量の追跡されたメモリ位置に関する情報を保持する場合がある。しかし、実施の形態では、新たなエントリのためにバッファ１０２で利用可能なスペースは、適合すると思われるように増加又は減少することができる。
【００１５】
トラッキングバッファ１０２は、そのメモリ位置を無効にするための候補を識別するため、データ転送の失敗を受けた有限の量のメモリ位置を監視する。無効とは、動作のレジメ（regime  of  operation）のためにデータストレージ又は検索の使用のためのメモリ位置を永続的又は一次的にディスエーブルにすることである。実施の形態では、トラッキングバッファ１０２は、ビルトインセルフテストからの失敗の分析結果を記憶する場合があるか、又は記憶しない場合があるが、いずれのケースであっても、トラッキングバッファ１０２により追跡されるメモリ位置は、最初のビルトインセルフテストを既に通過している。さもなければ、ＢＩＳＴに失敗したメモリ位置は、典型的に、少なくとも動作のレジメのために自動的に無効にされる。なお、ある動作のレジメでは、ＢＩＳＴは、メモリの完全性をチェックするために多数回適用される場合がある。トラッキングバッファ１０２は、それぞれのメモリ位置が被った失敗の累積数を追跡し続ける場合がある。
【００１６】
図２及び図３は、無効にするためのメモリ位置の候補を識別する例示的なリプレースメントポリシーアルゴリズムの実施の形態に関するフローチャートである。
【００１７】
ブロック２０２では、エージェントは、キャッシュライン又はメモリワードのような宣言された量のメモリ位置を追跡するトラッキングバッファと共同で動作するためのアルゴリズムを実行する。その追跡されたメモリ位置の全体の数は、この情報を追跡するバッファにおける有限のエントリ数を超えない。それぞれの追跡されたメモリ位置は、エラーチェックメカニズムにより失敗したとして示された１以上のデータ転送の失敗を被っている。
【００１８】
ブロック２０４では、エージェントは、追跡されているそれぞれのメモリ位置について記録されるデータ転送動作の失敗の数が記憶されるように指示するアルゴリズムを実行する。実施の形態では、トラッキングバッファは、この情報を記憶する。
【００１９】
ブロック２０６では、エージェントは、アルゴリズムを実行して、追跡されているそれぞれのメモリ位置についてそれぞれのデータ転送動作の失敗に関する年代順を維持することをトラッキングバッファに指示する。実施の形態では、バッファは、年代順を維持するため、ファーストイン−ファーストアウト方式を使用する。実施の形態では、データ転送の失敗のためにそれぞれのエントリと関連されるフィールドは、失敗のアドレス情報を何時その失敗が生じたかに関する実際のデータと同様に含む場合がある。
【００２０】
ブロック２０８では、アルゴリズムは、トラッキングバッファに指示して、バッファにおけるエントリとして、追跡されているそれぞれのメモリ位置について年代順のそれぞれのデータ転送動作の失敗を記憶させる。
【００２１】
ブロック２１０では、エージェントは、アルゴリズムを実行し、それぞれの失敗が生じた後にバッファにおけるメモリ位置のエントリを更新する。
【００２２】
ブロック２１２では、エージェントは、リプレースメントポリシーを利用して、制限された量の追跡されたメモリ位置がトラッキングバッファで許容される有限の量のエントリを超えたときのような、様々な状況下でバッファからエントリを除く。ＬＲＦ（Least  Recently  Failed）ポリシーのようなリプレースメントポリシーは、トラッキングバッファに前に記憶／追跡されたメモリ位置のうちの１つを、トラッキングバッファにその有限量のエントリを超えさせている現在のメモリ位置で置き換える。実施の形態では、エージェントは、記録された失敗の数が閾値に等しいとき、又は閾値を超えたときを判定するコンパレータを含んでいる場合がある。
【００２３】
ブロック２１４では、エージェントは、アルゴリズムを実行して、多数の条件に基づいてトラッキングバッファから特定のメモリ位置のエントリを除くことをトラッキングバッファに指示する。たとえば、トラッキング条件により除去のなかには、追跡されたメモリ位置の全体数がこの情報を追跡しているバッファで許可される有限のエントリ数を超えるかを判定する比較である場合がある。追跡されたメモリ位置は、無効のための候補として、識別されるべき全体の失敗の数を受けており、追跡されるメモリ位置は、閾値の失敗のレート、又は幾つかの他の類似の条件を超えている。
【００２４】
ブロック２１６では、実施の形態では、エージェントは、ＬＲＦ（Least  Recently  Failed）ポリシーを使用して、バッファに存在する全てのエントリと関連する失敗したメモリ位置のなかで年代的に最近に失敗していないメモリ位置に対応するトラッキングバッファにおけるエントリを、最近に失敗したメモリ位置のための新たなエントリで置き換える。また、リプレースメントポリシーは、それぞれのメモリ位置について記録される失敗の数により追跡されたメモリ位置を重み付けするか、及び／又はそれぞれのメモリ位置の失敗のレートにより追跡されたメモリ位置を重み付けすることで、置き換えられるべきメモリ位置のエントリを選択するような他の要素を考慮する場合がある。実施の形態では、アルゴリズムは、ファーストイン−ファーストアウトポリシー、ラストイン−ラストアウトポリシー、最も頻繁に使用されていない（LFU:  Least-Frequently-Used）ポリシー、又は別の類似のポリシーのような別のリプレースメントポリシー向けにプログラムされている場合がある。
【００２５】
図１を参照して、エージェント１０４は、少なくとも１つの失敗であるものの、無効であると未だ選定されていないメモリ位置を追跡するリプレースメントポリシーを利用する。失敗は、既知又は未知である可能なメカニズムのため、一時的なものである。かかる失敗の１つの例は、生じている場合があるソフトエラーである。同様に、失敗は、物理的、化学的、機械的、電気的、熱的又は知られていない欠陥を生じさせるメカニズムを含む如何なる可能性のあるプロセス又はメカニズムにより引き起こされるハードフェイルとも呼ばれる永久的な欠陥である。メモリ位置でエラーが頻繁に起こる場合、エラーは、信頼できない回路又はレイアウト設計の兆候であり、ハードフェイルとして分類することができる。
【００２６】
（一時的、断続的、反復的又は永続的な）失敗は、ＥＣＣ（Error  Correcting  Code）に基づいた訂正のような、データに適用される訂正メカニズムの前に、メモリ位置から読み取られる誤ったデータの形式でそれ自身明らかである。誤ったデータは、１ビットエラー、２ビットエラー又は３ビットエラーである。エラーの特性、若しくはキャッシュライン又はメモリワードにおけるエラーを検出するためのスキームは、事実上いずれかのタイプである場合がある。エージェント１０４は、データ処理後の出力で誤ったデータとなっているメモリ位置を検出及びフラグ立てするためのメカニズムと共同で動作する。シンプルなパリティ又はＥＣＣに基づいたエラー検出は、先の基準を満たすのに十分である。したがって、良好に定義された期待される結果をもつメモリ位置に記憶されるデータ値のサイプリングは、リード動作又はリードアクセスであると考えられる。このことは、ライトバック又はスヌープデータ、実行データ、若しくは電気的又は電気光学的プローブといった、いずれかの形式のデータを含んでいる。期待される結果から離れるデータ結果は、データ転送の失敗であると考えられる。
【００２７】
実施の形態では、用語「データ転送の失敗“data  transfer  failure”」は、それらメモリ位置へのデータ変更前に検出又は訂正されるキャッシュライン又はメモリワードへのライト動作の間に起こる失敗を含んでいる。かかる失敗は、アレイからのリードに応じて感知されるか、若しくは、パリティ、又はアレイへの到来するデータ適用される他のエラー検出スキームのようなメカニズムによりオリジナルのライト動作の間でさえも感知される場合がある。
【００２８】
エラー検出メカニズムがメモリ位置を誤っているとしてフラグをひとたび立てると、トラキングバッファ１０２は、システム、ＣＰＵ、メモリ等の現在の動作の間、メモリ位置を追跡する。先に述べたように、メモリ位置は、新たなパワーオンを含めて新たなリセット又はブートアップで開始する、全ての将来の動作管理についてディスエーブルにされる場合がある。ひとたび、パワーダウン及びパワーオンの後に生じると思われる、その動作の瞬間／動作の管理についてディスエーブルにされるか、又は全ての動作の瞬間／動作の管理について永続的にディスエーブルにされると、無効にされたメモリ位置は、如何なる有効なデータを記憶するために使用されない。したがって、トラッキングバッファ１０２は、各々の１つの動作の瞬間について新規にモニタリングを開始するか、（場合によって）ＣＰＵ又はシステム又はキャッシュ若しくはメモリのためのパワーシャットダウン及びその後のパワーアップにより分かれる多数の動作の瞬間を通して使用することができる。
【００２９】
メモリ位置を含むメモリのためのビルトインセルフテスト（ＢＩＳＴ）は、動作のレジメの開始で典型的に行われる。ＢＩＳＴは、メモリの完全性及びメモリのアクセスメカニズムを検査するため、典型的に、各メモリ位置に複数回書き込み及び読み出しされるデータを送出する。ＢＩＳＴは、システムのメモリ位置の完全性を検査するためのマーチメモリ（March  Memory）テストを利用し、ヒット、ミス待ち時間及び失敗を監視する場合がある。一般に、メモリ位置は、ＢＩＳＴの間に重度の欠陥をもつメモリ位置と、ソフトエラーのような誤った理由のために失敗を受けたメモリ位置とを除去することの釣り合いを取るため、幾つかの失敗を受ける必要がある。
【００３０】
無効にするために良好な候補を識別するため、失敗したメモリ位置を追跡するための幾つかの例示的なアルゴリズムが以下に示される。
【００３１】
なお、図４、図５及び図６は、データ転送の失敗を受けた同じ年代順に並べられた順序のメモリ位置である。例示的な年代順に並べられた順序のメモリ位置は、番号１、続いて番号２，３，２，更に１，更に２，更に４，５，更に２，及び更に１である。しかし、追跡されているメモリ位置の無効及び除去のための候補の識別は、それぞれのリプレースメントアルゴリズムについて異なる。
【００３２】
図４は、そのメモリ位置を無効にするためにメモリ位置の候補を識別するため、例示的なＬＲＦ（Least  Recently  Failed）リプレースメントポリシーを使用するエージェントと共に動作する例示的なトラッキングバッファに関する図である。例示的なトラッキングバッファ４０２は、最近失敗していない追跡されたメモリ位置４０６から最も最近に失敗した追跡されたメモリ位置４１２への順序でランク付けされる、有限サイズの３つのエントリを有している。リプレースメントポリシーは、無効であるとしてメモリ位置を識別する前に、４つの失敗からなる閾値を有している。リプレースメントポリシーは、特定のメモリ位置について最も最近に失敗していない（Least  Recently  Failed）ことの失敗の年代順、及びそのメモリ位置について記録された失敗の総数に基づいてメモリ位置を識別及び除く。
【００３３】
例示的な年代順の失敗のメモリ位置は、この動作のレジメのために開始する。メモリ位置番号１は、データ転送の失敗を受ける。トラッキングバッファ４０２は、最も最近に失敗した追跡されたメモリ位置４１２について、データ転送の失敗をエントリに記憶する。
【００３４】
第二のメモリ位置は、データ転送動作の失敗を受ける。次いで、トラッキングバッファ４０２は、最も最近に失敗した（Most  Recently  Failed）追跡されたメモリエントリ４１２における第二のメモリ位置について失敗を記憶し、次のエントリ４１０における第一のメモリ位置に関連する失敗をシフトダウンする。第三のメモリ位置が失敗を受けるとき、第三のメモリ位置の失敗は、第二及び第一の失敗したメモリ位置の上部にスタックされる。
【００３５】
第二の失敗が第二のメモリ位置について記録されるとき、年代順は、トラッキングバッファ４０２でシフトする。トラッキングバッファ４０２は、最も最近に失敗したエントリ４１２に第二のメモリ位置を記憶し、次のエントリ４１０に第三のメモリ位置を記憶し、次いで、最近に失敗していないエントリ４０６に第一のメモリ位置を記憶する。次に、第一のメモリ位置は、第二のデータ転送動作の失敗を受ける。トラッキングバッファ４０２は、最も最近に失敗した追跡されたエントリ４１２に第一のメモリ位置を記憶する。第二のメモリ位置は、第三のメモリ位置と同様に、次のエントリ４１０にシフトダウンされる。第三のメモリ位置は、最近に失敗していない追跡されたメモリ位置４０６を占める。
【００３６】
つぎに、第四のメモリ位置がデータ転送動作を受けるとき、以下が起こる。トラッキングバッファ４０２は、有限サイズの３つのエントリ４０６〜４１２を有している。４つの個別のメモリ位置は、データ転送の失敗を受ける。リプレースメントポリシーは、追跡されたメモリ位置を最も最近に失敗していないエントリ４０６から除く。第三のメモリ位置は、最も最近に失敗していないエントリ４０６に記憶される。エージェントは、第三のメモリ位置の情報をクリアするようにバッファ４０２に指示する。
【００３７】
したがって、第四のメモリ位置は、年代的に最も最近の失敗を受けているので、第四のメモリ位置のアドレスは、最も最近に失敗した追跡されたメモリ位置４１２に記憶される。これに応じて、第二のメモリアドレスは、次のエントリ４１０にシフトダウンされる。同様に、第一のメモリアドレス位置は、第二のメモリアドレス位置よりも低い、最も最近に失敗していないエントリ４０６にシフトされる。
【００３８】
つぎに、第五のメモリアドレスがデータ転送の失敗を受けたとき、第五のメモリ位置のアドレスは、最も最近に失敗したエントリ４１２に記憶される。第四のメモリアドレスはシフトダウンされ、第二のメモリアドレス位置は、最も最近に失敗していないエントリ４０６にシフトされる。第一のメモリアドレス位置及びその２つの記録された失敗はフラッシュされる。
【００３９】
第二のメモリアドレス位置は、これまで３つの失敗を被っている。第二のメモリアドレス位置が別のデータ転送の失敗を被る場合、第二のメモリアドレス位置が無効なメモリ位置として選定されるべき候補として識別される。第二のメモリ位置は、４つの失敗を被り、無効なメモリ位置であるとして識別された閾値の基準を満たす。第二のメモリ位置が無効にされるべき候補としてひとたび識別されると、第二のメモリ位置と関連するエントリにおける情報は、バッファ４０２から追跡されることにより除かれる。トラッキングバッファ４０２は、バッファの有限のエントリ数よりも少ない２つのメモリ位置を追跡する。
【００４０】
したがって、たとえば、メモリ位置１において、次のメモリ位置がデータ転送動作の失敗を受けたとき、メモリ位置１は、最も最近に失敗した追跡されたメモリ位置４１２に記憶される。第五のメモリ位置のアドレスは、バッファ４０２の第二のエントリ４１０に記憶されたままとなる。同様に、第四のメモリ位置のアドレスは、最も最近に失敗していない追跡されたメモリ位置４０６でもある、バッファ４０２の第三のエントリに記憶されたままである。
【００４１】
この例示的なリプレースメントアルゴリズムは、失敗したメモリ位置を追跡するＬＲＦ（Least  Recently  Failed）ポリシーを使用している。それぞれ追跡されたメモリ位置の情報は、ある動作レジメの間又は多数の動作レジメを通して、有限のトラキングバッファ４０２に保持される。バッファ４０２におけるエントリによるメモリ位置は、そのメモリ位置の最後のデータ転送がバッファ４０２にエントリを有する各メモリ位置の最後のデータ転送の失敗よりも年代的に早く生じた場合に、最も最近に失敗しておらず、すなわち「最も最近に失敗していない（ＬＲＦ）」と考えられる。
【００４２】
ひとたび、データ転送の失敗を受けたメモリ位置の全体の数がこの情報を追跡しているバッファ４０２におけるエントリ４０６〜４１２の数を超えると、ＬＲＦポリシーは、全ての追跡された失敗されたメモリ位置のなかで、最も最近ではない失敗を有するメモリ位置に対応するバッファ４０２におけるエントリを置き換えるために使用される。これにより、‘ｎ’個の最も最近に失敗したメモリ位置のトラッキングが可能となり、この場合に‘ｎ’はゼロよりも大きい正の整数である。
【００４３】
ひとたび、メモリ位置が指定された閾値を超えて多数回に失敗すると、メモリ位置は、その動作レジメ、及び／又は全ての動作レジメについて永続的に無効とされる。かかるアクションの時間で、トラッキングバッファエントリからそのメモリ位置に対応する情報をフラッシュする。したがって、このＬＲＦ（Least  Recently  Failed）リプレースメントアルゴリズムは、それぞれのエントリで明示的又は暗黙的のいずれかで維持されるべき失敗の年代順の情報を必要とする。このことは、年代順を保証するための置き換えが存在するたびに、エントリ４０６〜４１２の位置を記録すること、その順序を維持するための余分のフィールドを使用すること、又は年代順を決定することができる如何なる他の手段を使用することで行われる。
【００４４】
トラッキングバッファ４０２に対応するエントリを既に有するメモリ位置でのデータ転送の失敗が存在する場合、エントリを置き換える必要がない。しかし、エントリの年代順、又はこのエントリに関連する年代順の順付け情報は、考慮下にある最新のエントリが最も最近のエントリであることを反映するために再計算及び更新される。
【００４５】
本方法により、反復的なやり方で同じメモリ位置に関して明らかであるとき、ソフトエラーによる失敗を訂正、監視及び続いて廃棄することができる。同様に、訂正される場合があるハードエラーもモニタされ、複数回でデータ転送の失敗となる場合、それらメモリ位置が無効にされるまで、又は新たな失敗によりエントリで置き換えられるまで、対応するエントリが保持される。しかし、有限のバッファ４０２のサイズである‘ｎ’について、最も最近の‘ｎ’個の失敗を追跡することができる。（失敗のライン又はワードを繰返し読み取るか、若しくは失敗を観察するために複数回でかかるライン又はワードを書込み及び読取りするような）ソフトウェアベースの失敗と重度の欠陥を区別することが経験的な方法を使用して発見的に行われるので、バッファ４０２は、ソフトエラー又は重度の欠陥によるようなラベルの失敗を必ずしも必要としない。
【００４６】
例示的なLeast  Recent  Failedリプレースメントポリシーの実現のための例示的な擬似コードは、Ｃのような言語の擬似コードで表現される。実際の実現は、いずれかのプログラム言語を利用するか、又はハードウェアで完全に実現される。以下の表１〜表３は一連の処理である。
【００４７】
【表１】
2006510071.tif 000002
【表２】
2006510071.tif 000003
【表３】
2006510071.tif 000004
【００４８】
図５は、例示的なリプレースメントポリシーを示しており、このリプレースメントポリシーは、そのメモリ位置について記録されるデータ転送の失敗の全体の数が閾値の制限を超えることに基づいて、無効のための候補としてメモリ位置を識別し、１）それぞれ追跡されたメモリ位置と関連するデータ転送の失敗の全体の数、及び２）その失敗の年代順により追跡することから特定の候補を除くことを調整する。データ転送動作の失敗を受けるメモリ位置の年代の順序は、図４に既に記載されている年代順と同じである。しかし、このリプレースメントポリシーは、そのメモリ位置の最も最近に失敗していない失敗の年代順、及びそのメモリ位置について記録される失敗の総数に基づいてメモリ位置を識別及び除去するだけでなく、リプレースメントポリシーは、トラッキングバッファ５０２からそのメモリ位置を除く前に所与のメモリ位置について記録される失敗の総数により重み付け要素をも考慮するため、結果はかなり異なる。
【００４９】
第五のメモリ位置がデータ転送の失敗を受けたとき、失敗を受けるメモリ位置の数は、有限サイズのバッファ５０２におけるエントリ５０６〜５１２の数を超える。メモリ位置番号３と関連するメモリアドレスは、図４におけるように、有限のトラッキングバッファ５０２により追跡されることにより除かれるが、番号３で位置されるメモリアドレスは、異なる理由のために除かれる。このポイントで、失敗が第四のメモリアドレスについて生じたとき、メモリ位置番号２は、それに関連して３つの失敗を有し、メモリ位置１は、それに関連して２つの失敗を有し、及びメモリ位置３は、そのメモリ位置に関連して１つの失敗を有するのみである。したがって、メモリアドレス３は、そのアドレスに関連される失敗の最小数を有し、最近に最も失敗していない追跡されたメモリ位置５０６の位置を占有するため、トラッキングバッファ５０２から除かれる。
【００５０】
第四のメモリアドレスは、最も最近に失敗した追跡されたメモリ位置５１２に記憶される。第二のメモリアドレスは、次に失敗した追跡されたメモリ位置５１０に記憶される。第二のメモリアドレスと関連される３つの失敗が注目され、バッファ５０２に記憶される。第一のメモリアドレスは、最も最近に失敗していない追跡されたメモリ位置５０６に記憶される。第一のメモリアドレスと関連する２つの失敗が注目され、バッファ５０２に記憶される。
【００５１】
つぎに、第五のメモリアドレス位置は、データ転送の失敗を受ける。たとえ第四のメモリアドレスが最も最近に失敗した追跡されたメモリ位置５１２に記憶されたとしても、第四のメモリアドレスと関連するエントリにおける情報は、トラッキングバッファ５０２から除かれる。これは、第四のメモリアドレスが追跡されている他のアドレスのいずれかよりも少ない、そのアドレスと関連される失敗の全体の数を有するためである。したがって、第五のメモリアドレスは、最も最近に失敗した追跡されたメモリ位置５１２に記憶される。第一のメモリアドレスは、最も最近に失敗していない追跡されたメモリ位置５０６になお記憶される。
【００５２】
つぎに、第二のメモリアドレスがそのアドレスと関連されるその第四の失敗を受けるとき、第二のメモリアドレスが無効にするための候補として識別され、無効なメモリ位置として選定される。第二のメモリアドレスと関連される全てのエントリは、無効なメモリ位置として識別されたとき、バッファ５０２から除かれる。
【００５３】
重み付けリプレースメントポリシーにより調整される例示的なＬＲＦ（Least  Recently  Failed）は、データ転送の失敗を受けるメモリ位置を追跡するために使用される場合がある。重み調整リプレースメントポリシーは、図４に説明されたアルゴリズムと同様に動作するが、異なる点が存在する。ひとたび、データ転送の失敗を受けたメモリ位置の数がトラッキングバッファ５０２におけるエントリの数５０６〜５１２の数を超えると、変更されたＬＲＦ（Least  Recently  Failed）ポリシーは、失敗の頻度、すなわちトラッキングバッファ５０２により追跡されることにより除かれるべきメモリ位置を選択したときの既存のエントリのカウントにより調節する。なお、失敗のカウントは、トラッキングバッファ５０２により追跡されている間、データ転送の失敗を受けたメモリ位置の回数である。
【００５４】
データ転送の失敗があるメモリ位置で生じたとき、そのメモリ位置のエントリが前の失敗のためにバッファ５０２に存在する場合には、エージェントは、関連される失敗のカウントをインクリメントし、エントリの年代順又はそのエントリの年代の情報を更新する。失敗のカウントが特定の閾値であるそのメモリ位置の失敗の総数よりも大きい場合、アルゴリズムは、メモリ位置を無効にし、対応するエントリをバッファ５０２から削除する。実施の形態では、より大きな深刻さを有するエラーのため、より大きな量に失敗のカウントを増加させるため、エラーの深刻さに基づく失敗の「重み」が適用される場合がある。
【００５５】
新たなエントリのためにバッファ５０２にスペースが存在しない場合、エージェントは以下を実行する。エージェントは、トラッキングバッファ５０２に存在する最小の失敗のカウントをもつ全てのエントリを考慮する。エージェントは、最小の失敗のカウントを持つエントリのなかで、年代順に基づいてトラッキングバッファ５０２における最も最近ではないエントリを識別するため、重み付けされたＬＲＦ（Least  Recently  Failed）ポリシーを使用する。エージェントは、その識別されたエントリを最後の失敗に対応する新たな１つのエントリで置き換える。次いで、エージェントは、バッファ５０２におけるエントリの年代順を更新する。
【００５６】
例示的な重み付けされたＬＲＦ（Least  Recently  Failed）リプレースメントポリシーのための例示的な擬似コードが以下に記載される。以下の表４〜表６は一連の処理である。
【００５７】
【表４】
2006510071.tif 000005
【表５】
2006510071.tif 000006
【表６】
2006510071.tif 000007
【００５８】
図６は、ＬＲＦ（Least  Recently  Failed）リプレースメントポリシーを利用したエージェントと共同で動作する有限サイズの３つのエントリを有する例示的なバッファに関する図を説明しており、このＬＲＦ（Least  Recently  Failed）リプレースメントポリシーは、無効又は除去のための候補を識別するときにそのメモリ位置について記録されるデータ転送の失敗のレートをも考慮している。
【００５９】
メモリ位置の失敗の年代的な順序は、図４及び図５で生じるのと同じである。リプレースメントポリシーは、追跡されているメモリ位置のための最も最近に失敗していない年代的な順序、追跡されているそれぞれのメモリ位置について記録される失敗の総数による重み付け、及び追跡されるそれぞれのメモリ位置のための失敗のレートに基づいて、メモリ位置を識別及び除去する。
【００６０】
この例では、全体で５つの失敗からなるリプレースメントポリシー、又は１ヵ月当たり４つの失敗からなる発生レートのリプレースメントポリシーにおいて、閾値が設定されている。タイムスタンプは、それぞれの失敗と関連され、それぞれのメモリ位置及びそれぞれの失敗についてトラッキングバッファ６０２のフィールドのうちの１つに記憶される。
【００６１】
第四のメモリ位置がデータ転送の失敗を受けるとき、図５と同様に、メモリアドレス位置番号３は、追跡されることにより除かれる。メモリアドレス位置番号３は、第三のメモリ位置が最も最近に失敗していない追跡されたエントリ６０６であり、そのメモリ位置がそのメモリ位置と関連する最少の失敗を有したために除かれる。
【００６２】
置き換え及び順序付け動作は、第二のメモリアドレス位置がその第四の失敗を受けるまでは、図５におけるリプレースメントポリシーに類似している。失敗の閾値が５つの失敗に上昇されているので、第二のメモリ位置は、トラッキングバッファ６０２から追跡されていることにより除かれない。これは、第二のメモリ位置は、４つの失敗のみを受け、５つの失敗を受けないためである。しかし、第二のメモリアドレス位置に関連する第一の失敗は、２−２４−０２で生じ、第四の失敗は、３−２３−０２で１ヵ月以内に生じる。したがって、第二のメモリアドレス位置は、月４回である閾値の発生レートを超えるので、トラッキングバッファ６０２から追跡され、無効なメモリ位置として識別される。
【００６３】
あるメモリ位置でデータ転送の失敗が生じるとき、アルゴリズムは、エラーを生じさせるメモリ位置のためのエントリが前の失敗のためにバッファに存在するかを判定するため、トラッキングバッファをサーチする。メモリ位置のアドレスが既に記憶されていない場合、メモリ位置のためのエントリがつくられる。エントリは、１である失敗のカウント及び最初のエラーの検出時間を示すタイムスタンプ値を含んでいる。失敗を受けている現在のメモリ位置についてエントリが発見された場合、エラーカウントがインクリメントされ、エラーの頻度、すなわち所与のメモリ位置のエラーレートを計算するため、現在の時間と最初のエラーからの記憶された時間とを使用して、更なる処理が実行される。
【００６４】
メモリ位置は、２つの失敗の基準のいずれかが適合される場合に、無効にするための候補として識別される。２つの失敗の基準は、１）失敗の頻度のレートが予め定義された閾値にあるか、又は該閾値を超えること、又は２）失敗の総数が予め決定された閾値にあるか又は該閾値を超えることである。失敗のレートの閾値は、メモリ位置がこれらの閾値を超えるときに確かに故障の原因であって無効にされることが必要であることの高い信頼の程度が存在するように、統計的な分析又は他の適切な方法により決定される。
【００６５】
実施の形態では、アルゴリズムは、あるセットの時間の間に新たなエラーを受けていないメモリ位置について、エラーカウントをデクリメントする場合がある。メモリ位置のエラーカウントがデクリメント後にゼロになった場合、メモリ位置の記録は、トラッキングバッファから除かれる。エラーカウントがデクリメント後になお非ゼロである場合、エントリのタイムスタンプは、そのメモリ位置の現在のエラーの頻度及び現在の時間に基づいて更新される。
【００６６】
実施の形態では、有限のバッファサイズは、装置の統計的な失敗のレートを使用することで所与の実現についてバッファが決してオーバフローしないという高い信頼性が存在するように決定することができる。しかし、バッファの容量が満たされた場合、次のエラーにより、新たなエラーをもつメモリ位置のための余地を許容するため、前のエラーを有するメモリ位置の除去を生じさせる。除去されるメモリ位置は、最も低いエラーの頻度をもつラインである。
【００６７】
例示的なタイムスタンプされたＬＲＦ（Least  Recently  Failed）リプレースメントポリシーのための例示的な擬似コードが以下に説明される。以下の表７〜表１１は一連の処理である。
【００６８】
【表７】
2006510071.tif 000008
【表８】
2006510071.tif 000009
【表９】
2006510071.tif 000010
【表１０】
2006510071.tif 000011
【表１１】
2006510071.tif 000012
【００６９】
図７は、ビルトインセルフテストを通過しているがその後の動作の間に少なくとも１以上のデータ転送の失敗を有している１以上のメモリ位置を追跡するためのリプレースメントポリシーアルゴリズムを利用するエージェントと共に動作するトラッキングバッファを実現する例示的なコンピュータシステムを説明している。１実施の形態では、コンピュータシステム７００は、情報を伝達するための通信メカニズム又はバス７１１、情報を処理するためにバス７１１に結合されるプロセッサ７１２又はチップセット７３６のような集積回路コンポーネントを備えている。
【００７０】
コンピュータシステム７００は、プロセッサ７１２により実行されるべき情報及び命令を記憶するためにバス７１１に結合されるランダムアクセスメモリ（ＲＡＭ）又は他のダイナミックストレージ装置７０４（メインメモリと呼ばれる）を更に備えている。また、メインメモリ７０４は、プロセッサ７１２による命令の実行の間に、一時的な変数又は他の中間的な情報を記憶するために使用される場合がある。実施の形態では、プロセッサ７１２は、マイクロプロセッサを含む場合があるが、Ｐｅｎｔｉｕｍ（登録商標），ＰｏｗｅｒＰＣ等のようなマイクロプロセッサに限定されるものではない。
【００７１】
また、コンピュータシステム７００は、プロセッサ７１２、並びに磁気ディスク又は光ディスク及びその対応するディスクドライブのような大容量のストレージメモリ７０７のための静的な情報及び命令を記憶するためにバス７１１に結合されるリードオンリメモリ（ＲＯＭ）及び／又は他のスタティックストレージ装置７０６を備えている。大容量メモリ７０７は、情報及び命令を記憶するためにバス７１１に結合される。
【００７２】
実施の形態では、メモリワードは、メモリアレイにおける８ビット行のような、いずれかのメモリ７０７，７０６，７０７における所与のアドレスによりアクセスされる全てのビットである。キャッシュラインは、現実的にシステムコンポーネントのいずれかに位置され、データライン及びタグアレイといった２つの部分から構成されている。第一に、データラインは、８ビットのようなビットの集合であるが、シーケンシャルな行におけるようないずれかの構造に特化している必要はない。第二に、タグアレイは、データラインにマッピングする情報をもつフィールドを含み、かつステート及びリプレースメントステートのようなデータラインに記憶されるデータに関するコンテンツ情報を提供する。
【００７３】
このメモリ位置は、ＳＲＡＭ，ＤＲＡＭ，磁気ディスクベースのストレージ、強誘電体メモリ等を含む磁気メモリ全ての揮発性及び不揮発性メモリにおける失敗のメモリワードである場合がある。実施の形態では、キャッシュラインのＭＥＳＩステートビット又はそれぞれのキャッシュラインに関連するセパレートビットフィールドは欠陥を示し、これによりキャッシュラインを永続的に無効にする。
【００７４】
コンピュータシステム７００は、陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）のようなディスプレイ装置７２１に結合され、コンピュータユーザに情報を表示するためのバス７１１に結合される。アルファベット入力装置（キーボード）７２２は、アルファベット及び他のキーを含んでおり、プロセッサ７１２への情報及びコマンド選択を伝達するためにバス７１１に結合される場合がある。更なるユーザ入力装置は、プロセッサ７１２への方向情報及びコマンド選択を伝達し、ディスプレイ装置７１２でのカーソルの移動を制御するための、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーのようなカーソル制御装置７２３である。
【００７５】
バス７１１に結合される場合がある別の装置は、命令、データ又は他の情報を紙、フィルム又は類似のタイプの媒体のようなメディアにプリントするために使用される場合があるハードコピー装置７２４である。さらに、スピーカ及び／又はマイクロフォン（図示せず）サウンド記録及び再生装置は、コンピュータシステム７００とオーディオインタフェースするためにバス７１１に任意に結合される場合がある。バス７１１に結合される場合がある別の装置は、電話への伝達のための有線／無線通信機能７２５である。
【００７６】
１実施の形態では、アルゴリズムを容易にするために使用されるソフトウェアは、マシン読取り可能な媒体は、マシン（たとえば、コンピュータ）により読取り可能な形式で情報を提供（たとえば、記憶及び／又は送信）するメカニズムを含んでいる。たとえば、マシン読取り可能な媒体は、リードオンリメモリ（ＲＯＭ）；ランダムアクセスメモリ（ＲＡＭ）；磁気ディスクストレージメディア；光記憶媒体；フラッシュメモリ装置；ＤＶＤ；電気形式、光形式、音声形式又は他の形式の伝播された信号（たとえば、キャリア波、赤外線信号、デジタル信号、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＦＬＡＳＨ、磁気ディス又は光カード、又は電子的な命令を記憶するために適したタイプのメディア）を含んでいる。より低速な媒体は、より高速、より実用的な媒体にキャッシュすることができる。
【００７７】
先の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに関するアルゴリズム及びシンボル表現の観点で与えられる。これらアルゴリズム的な説明及び表現は、当業者の業務の実質的な部分を最も効果的に伝達するために、データ処理技術分野での当業者により使用される手段である。アルゴリズムは、所望の結果をもたらす自己完結した処理シーケンスである一般的に考えられる。処理は、物理量の物理的な処理を要求するステップである。一般に、必ずしも必要ではないが、これらの量は、記憶、転送、結合、比較及びさもなければ操作可能な電気信号又は磁気信号の形式をとる。これまで、これらの信号をビット、値、エレメント、シンボル、文字、用語、番号等として示すことは、一般的な使用のために基本的に便利なことであることが分かっている。
【００７８】
しかし、全てのこれらの用語及び他の用語は、適切な物理的な量と関連しており。これらの量に適用される単なる便宜上のラベルであることに留意すべきである。先に説明から明らかなように特に説明されない場合、説明を通して、「処理」又は「備える」又は「計算」又は「決定」又は「表示」等のような用語を利用する記載は、コンピュータシステム又は類似の電子計算装置の動作及び処理を示しており、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）な量をとして表されるデータを処理し、コンピュータシステム又はレジスタ、若しくは他のかかる情報ストレージ、送信又は表示装置内の物理的な量として同様に表される他のデータに変換する。
【００７９】
また、メモリ位置を有する計算システムは、たとえば、ローカルサーバキャッシュ、ウェブブラウザのキャッシュ、又は他の同様のシステムを含む場合がある。
【００８０】
本発明の特定の実施の形態が示されたが、本発明はこれらの実施の形態に限定されるものではない。たとえば、アルゴリズムは、最近に失敗していない（not  recently  failed）リプレースメントポリシーのような最も頻度が低い失敗のポリシー（least  frequently  failed）とは異なるアルゴリズムを含んでいる。同様に、電子的なハードウェアにより実行される大部分の機能は、ソフトウェアエミュレーションに複製される場合があり、逆も然りである。したがって、それら同じ機能を達成するために書かれるソフトウェアプログラムは、計算システムのハードウェアコンポーネントの機能をエミュレートする場合がある。なお、後続する動作は、その後の自己テストを含んでいる場合がある。バッファサイズは、動作のレジメの間にエージェントにより増加又は減少する場合がある。本発明は、本実施の形態で説明される特定の実施の形態により限定されず、特許請求の範囲によってのみ限定されることが理解されるべき出る。
【図面の簡単な説明】
【００８１】
【図１】失敗したデータ転送動作を被ったメモリ位置を追跡及び無効にするための１以上のリプレースメントポリシーを使用したエージェントと共同で動作するため、失敗したデータ転送動作を被ったメモリ位置を追跡するための情報を記憶するトラッキングバッファの実施の形態に関するブロック図である。
【図２】無効のためのメモリ位置の候補を識別するための例示的なリプレースメントポリシーアルゴリズムの実施の形態の一部に関するフローチャートである。
【図３】無効にするためのメモリ位置の候補を識別するための例示的なリプレースメントポリシーアルゴリズムの実施の形態の一部に関するフローチャートである。
【図４】そのメモリ位置を無効にするためのメモリ位置の候補を識別するための例示的なＬＲＦ（Least  Recently  Failed）リプレースメントポリシーを使用したエージェントと共同で動作する例示的なトラッキングバッファを示す図である。
【図５】そのメモリ位置について記録されたデータ転送の失敗の総数の閾値限界を超えることに基づいて、あるメモリ位置を無効のための候補として識別する例示的なリプレースメントポリシーであって、１）それぞれ追跡されたメモリ位置に関連されるデータ転送の失敗の総数、及び２）その失敗に関する年代の順序により追跡することから特定の候補の除去を調節するリプレースメントポリシーを示す図である。
【図６】無効又は除去するための候補を識別するとき、そのメモリ位置について記録されるデータ転送の失敗のレートをも考慮した、ＬＲＦ（Least  Recently  Failed）リプレースメントポリシーを利用するエージェントと共同で動作する有限サイズの３つのエントリを有する例示的なバッファに関する図である。
【図７】ビルトインセルフテストを通過したが、その後の動作の間に少なくとも１以上のデータ転送の失敗を有している１以上のメモリ位置を追跡するリプレースメントアルゴリズムを利用するエージェントと共同で動作するトラッキングバッファを実現する例示的なコンピュータシステムである。
【図１】
2006510071.tif 000013
【図２】
2006510071.tif 000014
【図３】
2006510071.tif 000015
【図４】
2006510071.tif 000016
【図５】
2006510071.tif 000017
【図６】
2006510071.tif 000018
【図７】
2006510071.tif 000019