JP4283221B2 - 繰返し失敗したメモリ位置を無効にする実行をイネーブルにするため、失敗したメモリ位置を追跡する各種方法及び装置 - Google Patents

繰返し失敗したメモリ位置を無効にする実行をイネーブルにするため、失敗したメモリ位置を追跡する各種方法及び装置 Download PDF

Info

Publication number
JP4283221B2
JP4283221B2 JP2004527709A JP2004527709A JP4283221B2 JP 4283221 B2 JP4283221 B2 JP 4283221B2 JP 2004527709 A JP2004527709 A JP 2004527709A JP 2004527709 A JP2004527709 A JP 2004527709A JP 4283221 B2 JP4283221 B2 JP 4283221B2
Authority
JP
Japan
Prior art keywords
data transfer
memory location
memory
tracked
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004527709A
Other languages
English (en)
Other versions
JP2006510071A (ja
Inventor
ヤダヴァリ,シタラム
ドリスデール,ガレット
カーン,ハスナラ
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2006510071A publication Critical patent/JP2006510071A/ja
Application granted granted Critical
Publication of JP4283221B2 publication Critical patent/JP4283221B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明の各種実施の形態は、メモリ位置の完全性を保証することに関する。より詳細には、本発明の1以上の実施の形態は、1以上のデータ転送の失敗を被った1以上のメモリ位置を追跡するためのリプレースメントポリシーアルゴリズムを使用する。
パワーオンセルフテストのようなビルトイン・セルフテスト(BIST)は、BISTテストの故障の閾値に達しない、磁気ディスクドライブ又は半導体メモリにおける欠陥のメモリワードを識別する。一般に、BISTの完了の後、2つの結果が起こりうる。BISTは、如何なる制約無しにメモリワードが使用可能であることを宣言するか、若しくはBISTは、メモリワードを永続的に無効にするか又はディスエーブルにする。したがって、磁気ディスクドライブの不完全なセクタは、永続的に無効又はディスエーブルにされ、不完全なセクタの情報は、コンピュータのブートプロセスの間にユーザに典型的に伝達される。
しかし、特定のメモリワードで検出されたエラーの量がBISTテストでプログラムされている故障の閾値を超えない場合、潜在的な欠陥を有するメモリワードは使用され続ける。したがって、繰返しエラーを生じさせるが、まれにしか起こらない間隔でエラーを生じさせる持続性のあるハードウェアの故障を有するメモリワードは許容され、システムのデータの完全性を劣化させる場合がある。
同様に、検査施設外の動作の間に故障するキャッシュラインは、いずれかのやり方で典型的に追跡又は監視されない。持続性のある故障をもつキャッシュラインは、システムのデータの完全性を劣化させ、システムをクラッシュ又はシャットダウンする。しかし、典型的に、キャッシュライン及びメモリワードは、その位置でのエラーが反復的であるか、したがって除去されることを必要とするハードな欠陥を示すことを判定するために追跡されない。
別の従来の技術は、キャッシュに記憶されているデータを置換するために実現されるLRU(Least Recently Used)リプレースメントポリシーである。キャッシュに関連される処理ユニットは、LRUリプレースメントアルゴリズムを使用して、最も古いデータを破棄しつつ、最近に使用されたデータをキャッシュに記憶する場合がある。ルールベースのアルゴリズムは、いずれか他のキャシュラインよりも最近ではなくキャッシュラインがリード又はライトのように使用されている場合にフラッシュされるべきキャッシュラインを選択するキャッシュシステムで使用される。フラッシュの間、第一のトランザクションに属するキャッシュラインに記憶されている変更されたデータは、第二のトランザクションがキャッシュラインを使用することができるようにメインメモリに書き込まれる。このように、リプレースメントアルゴリズムは、新たなデータブロックをキャッシュすることが望まれるとき、アソシアティブ型キャッシュにおけるどのエントリをメインメモリにフラッシュすべきかを判定する。“Least Recently Used”アルゴリズムは、最も長い時間の間にアクセスされていないブロックをフラッシュする。
本発明の目的は、1以上のデータ転送の失敗を被っている1以上のメモリ位置を追跡することを実行するためのリプレースメントポリシーアルゴリズムを使用する方法、装置及びシステムを提供することにある。
本発明は、様々な変更及び代替的な形態を受け、本発明の特定の実施の形態は、添付図面における例により示され、本実施の形態で詳細に説明される。本発明は、開示される特定の形態に限定されないことが理解されるべきであるが、対照的に、本発明は、本発明の精神及び範囲に含まれる全ての変更、等価な構成、及び代替的な構成をカバーすることが理解されるべきである。
以下の説明では、本発明の完全な理解を提供するため、特定のリプレースメントアルゴリズム、指定されたコンポーネント、コネクション、メモリ位置のタイプ等の例のような様々な特定の詳細が述べられる。しかし、本発明の実施の形態はこれら特定の詳細無しで実施される場合があることを、当業者には明らかであろう。他の例では、公知のコンポーネント又は方法は、詳細に説明されていないが、本発明を不必要に曖昧にすることを回避するためにブロック図で説明されている。したがって、説明される特定の詳細は、単に例示するものである。特定の詳細は、本発明の精神及び範囲内で変動する場合があり、なお本発明の精神及び範囲内にあることが意図される。
一般に、ビルトインセルフテスト(Built in Self Test)を通過したが、その後の動作の間に少なくとも1以上のデータ転送の失敗を有した1以上のメモリ位置のトラッキングを実行するための様々な方法、装置、及びシステムが説明される。
図1は、繰り返されるデータ転送の失敗を被るメモリ位置を追跡及び無効にするための1以上のリプレースメントポリシーを使用したエージェントと共同で動作するため、失敗したデータ転送動作を被るメモリ位置を追跡する情報を記憶するトラッキングバッファの実施の形態に関するブロック図を例示している。トラキングバッファ102は、エージェント104と共同で動作し、このエージェントは、無効にするための1以上のメモリ位置の候補を識別するためリプレースメントアルゴリズムを利用する。エージェント104は、ロジックであり、このロジックは、処理ユニット、CPU、特定用途向け集積回路、ソフトウェアロジック、又はハードウェアロジックのようなリプレースメントアルゴリズムを実行する。
トラッキングバッファ102は、第一のエントリ106、第二のエントリ108、第三のエントリ110、及び第四のエントリ112のような多数のエントリを有している。それぞれのエントリ106〜112は、エラーチェックメカニズムにより失敗が指摘される1以上のメモリ位置を追跡する。それぞれのエントリ106〜112は、1以上のフィールド114〜120を含んでいる。それぞれのフィールド114〜120は、エラーチェックメカニズムにより失敗していることが指摘された1以上のメモリ位置と関連される情報を含んでいる。エージェント104は、リプレースメントポリシーアルゴリズムを使用し、1以上のメモリ位置のトラッキングを実行するためにバッファ102と共同で動作する。
トラッキングバッファ102は、失敗したデータ転送動作を被った、キャッシュライン又はメモリワードのようなメモリ位置に関する情報を記憶するための有限の記憶容量を有している。それぞれの失敗したメモリ位置に関する情報は、CPU、チップセット、メインメモリ等を含むシステム内部のいずれかにあるメモリにおける有限サイズのバッファ102に保持することができる。メモリは、ダイナミック・ランダムアクセスメモリ(DRAM)又はスタティック・ランダムアクセスメモリ(SRAM)のような揮発性メモリであるか、フラッシュメモリ、磁気ストレージ、若しくはパワーシャットダウンを耐えることができるいずれか他の形式のメモリのような不揮発性メモリである。実施の形態では、トラッキングバッファ102は、それぞれのメモリ位置に関連される1以上のエントリ106〜112を有している。先に述べたように、トラッキングバッファ102は、それぞれのエントリ106〜112と関連される1以上のメモリ位置を有している。それぞれのメモリ位置は、エントリ106〜112により追跡されている。これは、記憶されているデータがデータ転送動作の間に読み出し又は書込みされたメモリ位置は、エラー検出メカニズムにより間違っていると検出されたためである。以下に更に説明されるように、データ転送の失敗は、読み出し又は書込み動作の間に検出された間違ったデータから生じるものであって、失敗したリードアクセス動作を含んでいる。
エントリ及びフィールドにおけるトラッキングバッファ102は、メモリ位置のアドレス、故障したメモリワード又はキャッシュラインのサイズ、及び/又は1以上の動作の瞬間の間にメモリ位置が失敗したとして検出された回数に対するポインタのような、欠陥のあるメモリ位置に関する情報を含んでいる。トラッキングバッファ102は、メモリ位置が訂正された回数、もし使えるのであれば設定及び方式情報、もし使えるのであればセクタ又はトラック情報、及びもし使えるのであればバンク、列又は行情報のような更なる情報をも含んでいる場合がある。メモリ位置と関連されるフィールド114〜120は、失敗の日付及び時間、そのメモリ位置の前の失敗と最後の失敗との間の間隔の時間の値、特定の時限でそのメモリ位置で失敗した回数、又は所与の時間単位、及び無効なメモリ位置に選定される前に訂正メカニズムにより失敗が訂正される閾値となる回数を含んでいる。
トラッキングバッファ102は、追跡されることによりそのメモリ位置が永続的に無効であるか又は除去されると選定されるまで、失敗したデータ転送動作を被ったメモリ位置に関する情報を記憶する。トラッキングに使用されるリプレースメントポリシーに依存して、ある情報の部分を省略することができる。実施の形態では、効率性の理由のため、トラッキングバッファ102は、有限の量のエントリ106〜112、したがって制限された量の追跡されたメモリ位置に関する情報を保持する場合がある。しかし、実施の形態では、新たなエントリのためにバッファ102で利用可能なスペースは、適合すると思われるように増加又は減少することができる。
トラッキングバッファ102は、そのメモリ位置を無効にするための候補を識別するため、データ転送の失敗を受けた有限の量のメモリ位置を監視する。無効とは、動作のレジメ(regime of operation)のためにデータストレージ又は検索の使用のためのメモリ位置を永続的又は一次的にディスエーブルにすることである。実施の形態では、トラッキングバッファ102は、ビルトインセルフテストからの失敗の分析結果を記憶する場合があるか、又は記憶しない場合があるが、いずれのケースであっても、トラッキングバッファ102により追跡されるメモリ位置は、最初のビルトインセルフテストを既に通過している。さもなければ、BISTに失敗したメモリ位置は、典型的に、少なくとも動作のレジメのために自動的に無効にされる。なお、ある動作のレジメでは、BISTは、メモリの完全性をチェックするために多数回適用される場合がある。トラッキングバッファ102は、それぞれのメモリ位置が被った失敗の累積数を追跡し続ける場合がある。
図2及び図3は、無効にするためのメモリ位置の候補を識別する例示的なリプレースメントポリシーアルゴリズムの実施の形態に関するフローチャートである。
ブロック202では、エージェントは、キャッシュライン又はメモリワードのような宣言された量のメモリ位置を追跡するトラッキングバッファと共同で動作するためのアルゴリズムを実行する。その追跡されたメモリ位置の全体の数は、この情報を追跡するバッファにおける有限のエントリ数を超えない。それぞれの追跡されたメモリ位置は、エラーチェックメカニズムにより失敗したとして示された1以上のデータ転送の失敗を被っている。
ブロック204では、エージェントは、追跡されているそれぞれのメモリ位置について記録されるデータ転送動作の失敗の数が記憶されるように指示するアルゴリズムを実行する。実施の形態では、トラッキングバッファは、この情報を記憶する。
ブロック206では、エージェントは、アルゴリズムを実行して、追跡されているそれぞれのメモリ位置についてそれぞれのデータ転送動作の失敗に関する年代順を維持することをトラッキングバッファに指示する。実施の形態では、バッファは、年代順を維持するため、ファーストイン−ファーストアウト方式を使用する。実施の形態では、データ転送の失敗のためにそれぞれのエントリと関連されるフィールドは、失敗のアドレス情報を何時その失敗が生じたかに関する実際のデータと同様に含む場合がある。
ブロック208では、アルゴリズムは、トラッキングバッファに指示して、バッファにおけるエントリとして、追跡されているそれぞれのメモリ位置について年代順のそれぞれのデータ転送動作の失敗を記憶させる。
ブロック210では、エージェントは、アルゴリズムを実行し、それぞれの失敗が生じた後にバッファにおけるメモリ位置のエントリを更新する。
ブロック212では、エージェントは、リプレースメントポリシーを利用して、制限された量の追跡されたメモリ位置がトラッキングバッファで許容される有限の量のエントリを超えたときのような、様々な状況下でバッファからエントリを除く。LRF(Least Recently Failed)ポリシーのようなリプレースメントポリシーは、トラッキングバッファに前に記憶/追跡されたメモリ位置のうちの1つを、トラッキングバッファにその有限量のエントリを超えさせている現在のメモリ位置で置き換える。実施の形態では、エージェントは、記録された失敗の数が閾値に等しいとき、又は閾値を超えたときを判定するコンパレータを含んでいる場合がある。
ブロック214では、エージェントは、アルゴリズムを実行して、多数の条件に基づいてトラッキングバッファから特定のメモリ位置のエントリを除くことをトラッキングバッファに指示する。たとえば、トラッキング条件により除去のなかには、追跡されたメモリ位置の全体数がこの情報を追跡しているバッファで許可される有限のエントリ数を超えるかを判定する比較である場合がある。追跡されたメモリ位置は、無効のための候補として、識別されるべき全体の失敗の数を受けており、追跡されるメモリ位置は、閾値の失敗のレート、又は幾つかの他の類似の条件を超えている。
ブロック216では、実施の形態では、エージェントは、LRF(Least Recently Failed)ポリシーを使用して、バッファに存在する全てのエントリと関連する失敗したメモリ位置のなかで年代的に最近に失敗していないメモリ位置に対応するトラッキングバッファにおけるエントリを、最近に失敗したメモリ位置のための新たなエントリで置き換える。また、リプレースメントポリシーは、それぞれのメモリ位置について記録される失敗の数により追跡されたメモリ位置を重み付けするか、及び/又はそれぞれのメモリ位置の失敗のレートにより追跡されたメモリ位置を重み付けすることで、置き換えられるべきメモリ位置のエントリを選択するような他の要素を考慮する場合がある。実施の形態では、アルゴリズムは、ファーストイン−ファーストアウトポリシー、ラストイン−ラストアウトポリシー、最も頻繁に使用されていない(LFU: Least-Frequently-Used)ポリシー、又は別の類似のポリシーのような別のリプレースメントポリシー向けにプログラムされている場合がある。
図1を参照して、エージェント104は、少なくとも1つの失敗であるものの、無効であると未だ選定されていないメモリ位置を追跡するリプレースメントポリシーを利用する。失敗は、既知又は未知である可能なメカニズムのため、一時的なものである。かかる失敗の1つの例は、生じている場合があるソフトエラーである。同様に、失敗は、物理的、化学的、機械的、電気的、熱的又は知られていない欠陥を生じさせるメカニズムを含む如何なる可能性のあるプロセス又はメカニズムにより引き起こされるハードフェイルとも呼ばれる永久的な欠陥である。メモリ位置でエラーが頻繁に起こる場合、エラーは、信頼できない回路又はレイアウト設計の兆候であり、ハードフェイルとして分類することができる。
(一時的、断続的、反復的又は永続的な)失敗は、ECC(Error Correcting Code)に基づいた訂正のような、データに適用される訂正メカニズムの前に、メモリ位置から読み取られる誤ったデータの形式でそれ自身明らかである。誤ったデータは、1ビットエラー、2ビットエラー又は3ビットエラーである。エラーの特性、若しくはキャッシュライン又はメモリワードにおけるエラーを検出するためのスキームは、事実上いずれかのタイプである場合がある。エージェント104は、データ処理後の出力で誤ったデータとなっているメモリ位置を検出及びフラグ立てするためのメカニズムと共同で動作する。シンプルなパリティ又はECCに基づいたエラー検出は、先の基準を満たすのに十分である。したがって、良好に定義された期待される結果をもつメモリ位置に記憶されるデータ値のサイプリングは、リード動作又はリードアクセスであると考えられる。このことは、ライトバック又はスヌープデータ、実行データ、若しくは電気的又は電気光学的プローブといった、いずれかの形式のデータを含んでいる。期待される結果から離れるデータ結果は、データ転送の失敗であると考えられる。
実施の形態では、用語「データ転送の失敗“data transfer failure”」は、それらメモリ位置へのデータ変更前に検出又は訂正されるキャッシュライン又はメモリワードへのライト動作の間に起こる失敗を含んでいる。かかる失敗は、アレイからのリードに応じて感知されるか、若しくは、パリティ、又はアレイへの到来するデータ適用される他のエラー検出スキームのようなメカニズムによりオリジナルのライト動作の間でさえも感知される場合がある。
エラー検出メカニズムがメモリ位置を誤っているとしてフラグをひとたび立てると、トラキングバッファ102は、システム、CPU、メモリ等の現在の動作の間、メモリ位置を追跡する。先に述べたように、メモリ位置は、新たなパワーオンを含めて新たなリセット又はブートアップで開始する、全ての将来の動作管理についてディスエーブルにされる場合がある。ひとたび、パワーダウン及びパワーオンの後に生じると思われる、その動作の瞬間/動作の管理についてディスエーブルにされるか、又は全ての動作の瞬間/動作の管理について永続的にディスエーブルにされると、無効にされたメモリ位置は、如何なる有効なデータを記憶するために使用されない。したがって、トラッキングバッファ102は、各々の1つの動作の瞬間について新規にモニタリングを開始するか、(場合によって)CPU又はシステム又はキャッシュ若しくはメモリのためのパワーシャットダウン及びその後のパワーアップにより分かれる多数の動作の瞬間を通して使用することができる。
メモリ位置を含むメモリのためのビルトインセルフテスト(BIST)は、動作のレジメの開始で典型的に行われる。BISTは、メモリの完全性及びメモリのアクセスメカニズムを検査するため、典型的に、各メモリ位置に複数回書き込み及び読み出しされるデータを送出する。BISTは、システムのメモリ位置の完全性を検査するためのマーチメモリ(March Memory)テストを利用し、ヒット、ミス待ち時間及び失敗を監視する場合がある。一般に、メモリ位置は、BISTの間に重度の欠陥をもつメモリ位置と、ソフトエラーのような誤った理由のために失敗を受けたメモリ位置とを除去することの釣り合いを取るため、幾つかの失敗を受ける必要がある。
無効にするために良好な候補を識別するため、失敗したメモリ位置を追跡するための幾つかの例示的なアルゴリズムが以下に示される。
なお、図4、図5及び図6は、データ転送の失敗を受けた同じ年代順に並べられた順序のメモリ位置である。例示的な年代順に並べられた順序のメモリ位置は、番号1、続いて番号2,3,2,更に1,更に2,更に4,5,更に2,及び更に1である。しかし、追跡されているメモリ位置の無効及び除去のための候補の識別は、それぞれのリプレースメントアルゴリズムについて異なる。
図4は、そのメモリ位置を無効にするためにメモリ位置の候補を識別するため、例示的なLRF(Least Recently Failed)リプレースメントポリシーを使用するエージェントと共に動作する例示的なトラッキングバッファに関する図である。例示的なトラッキングバッファ402は、最近失敗していない追跡されたメモリ位置406から最も最近に失敗した追跡されたメモリ位置412への順序でランク付けされる、有限サイズの3つのエントリを有している。リプレースメントポリシーは、無効であるとしてメモリ位置を識別する前に、4つの失敗からなる閾値を有している。リプレースメントポリシーは、特定のメモリ位置について最も最近に失敗していない(Least Recently Failed)ことの失敗の年代順、及びそのメモリ位置について記録された失敗の総数に基づいてメモリ位置を識別及び除く。
例示的な年代順の失敗のメモリ位置は、この動作のレジメのために開始する。メモリ位置番号1は、データ転送の失敗を受ける。トラッキングバッファ402は、最も最近に失敗した追跡されたメモリ位置412について、データ転送の失敗をエントリに記憶する。
第二のメモリ位置は、データ転送動作の失敗を受ける。次いで、トラッキングバッファ402は、最も最近に失敗した(Most Recently Failed)追跡されたメモリエントリ412における第二のメモリ位置について失敗を記憶し、次のエントリ410における第一のメモリ位置に関連する失敗をシフトダウンする。第三のメモリ位置が失敗を受けるとき、第三のメモリ位置の失敗は、第二及び第一の失敗したメモリ位置の上部にスタックされる。
第二の失敗が第二のメモリ位置について記録されるとき、年代順は、トラッキングバッファ402でシフトする。トラッキングバッファ402は、最も最近に失敗したエントリ412に第二のメモリ位置を記憶し、次のエントリ410に第三のメモリ位置を記憶し、次いで、最近に失敗していないエントリ406に第一のメモリ位置を記憶する。次に、第一のメモリ位置は、第二のデータ転送動作の失敗を受ける。トラッキングバッファ402は、最も最近に失敗した追跡されたエントリ412に第一のメモリ位置を記憶する。第二のメモリ位置は、第三のメモリ位置と同様に、次のエントリ410にシフトダウンされる。第三のメモリ位置は、最近に失敗していない追跡されたメモリ位置406を占める。
つぎに、第四のメモリ位置がデータ転送動作を受けるとき、以下が起こる。トラッキングバッファ402は、有限サイズの3つのエントリ406〜412を有している。4つの個別のメモリ位置は、データ転送の失敗を受ける。リプレースメントポリシーは、追跡されたメモリ位置を最も最近に失敗していないエントリ406から除く。第三のメモリ位置は、最も最近に失敗していないエントリ406に記憶される。エージェントは、第三のメモリ位置の情報をクリアするようにバッファ402に指示する。
したがって、第四のメモリ位置は、年代的に最も最近の失敗を受けているので、第四のメモリ位置のアドレスは、最も最近に失敗した追跡されたメモリ位置412に記憶される。これに応じて、第二のメモリアドレスは、次のエントリ410にシフトダウンされる。同様に、第一のメモリアドレス位置は、第二のメモリアドレス位置よりも低い、最も最近に失敗していないエントリ406にシフトされる。
つぎに、第五のメモリアドレスがデータ転送の失敗を受けたとき、第五のメモリ位置のアドレスは、最も最近に失敗したエントリ412に記憶される。第四のメモリアドレスはシフトダウンされ、第二のメモリアドレス位置は、最も最近に失敗していないエントリ406にシフトされる。第一のメモリアドレス位置及びその2つの記録された失敗はフラッシュされる。
第二のメモリアドレス位置は、これまで3つの失敗を被っている。第二のメモリアドレス位置が別のデータ転送の失敗を被る場合、第二のメモリアドレス位置が無効なメモリ位置として選定されるべき候補として識別される。第二のメモリ位置は、4つの失敗を被り、無効なメモリ位置であるとして識別された閾値の基準を満たす。第二のメモリ位置が無効にされるべき候補としてひとたび識別されると、第二のメモリ位置と関連するエントリにおける情報は、バッファ402から追跡されることにより除かれる。トラッキングバッファ402は、バッファの有限のエントリ数よりも少ない2つのメモリ位置を追跡する。
したがって、たとえば、メモリ位置1において、次のメモリ位置がデータ転送動作の失敗を受けたとき、メモリ位置1は、最も最近に失敗した追跡されたメモリ位置412に記憶される。第五のメモリ位置のアドレスは、バッファ402の第二のエントリ410に記憶されたままとなる。同様に、第四のメモリ位置のアドレスは、最も最近に失敗していない追跡されたメモリ位置406でもある、バッファ402の第三のエントリに記憶されたままである。
この例示的なリプレースメントアルゴリズムは、失敗したメモリ位置を追跡するLRF(Least Recently Failed)ポリシーを使用している。それぞれ追跡されたメモリ位置の情報は、ある動作レジメの間又は多数の動作レジメを通して、有限のトラキングバッファ402に保持される。バッファ402におけるエントリによるメモリ位置は、そのメモリ位置の最後のデータ転送がバッファ402にエントリを有する各メモリ位置の最後のデータ転送の失敗よりも年代的に早く生じた場合に、最も最近に失敗しておらず、すなわち「最も最近に失敗していない(LRF)」と考えられる。
ひとたび、データ転送の失敗を受けたメモリ位置の全体の数がこの情報を追跡しているバッファ402におけるエントリ406〜412の数を超えると、LRFポリシーは、全ての追跡された失敗されたメモリ位置のなかで、最も最近失敗していないメモリ位置に対応するバッファ402におけるエントリを置き換えるために使用される。これにより、‘n’個の最も最近に失敗したメモリ位置のトラッキングが可能となり、この場合に‘n’はゼロよりも大きい正の整数である。
ひとたび、メモリ位置が指定された閾値を超えて多数回に失敗すると、メモリ位置は、その動作レジメ、及び/又は全ての動作レジメについて永続的に無効とされる。かかるアクションの時間で、トラッキングバッファエントリからそのメモリ位置に対応する情報をフラッシュする。したがって、このLRF(Least Recently Failed)リプレースメントアルゴリズムは、それぞれのエントリで明示的又は暗黙的のいずれかで維持されるべき失敗の年代順の情報を必要とする。このことは、年代順を保証するための置き換えが存在するたびに、エントリ406〜412の位置を記録すること、その順序を維持するための余分のフィールドを使用すること、又は年代順を決定することができる如何なる他の手段を使用することで行われる。
トラッキングバッファ402に対応するエントリを既に有するメモリ位置でのデータ転送の失敗が存在する場合、エントリを置き換える必要がない。しかし、エントリの年代順、又はこのエントリに関連する年代順の順付け情報は、考慮下にある最新のエントリが最も最近のエントリであることを反映するために再計算及び更新される。
本方法により、反復的なやり方で同じメモリ位置に関して明らかであるとき、ソフトエラーによる失敗を訂正、監視及び続いて廃棄することができる。同様に、訂正される場合があるハードエラーもモニタされ、複数回でデータ転送の失敗となる場合、それらメモリ位置が無効にされるまで、又は新たな失敗によりエントリで置き換えられるまで、対応するエントリが保持される。しかし、有限のバッファ402のサイズである‘n’について、最も最近の‘n’個の失敗を追跡することができる。(失敗のライン又はワードを繰返し読み取るか、若しくは失敗を観察するために複数回でかかるライン又はワードを書込み及び読取りするような)ソフトウェアベースの失敗と重度の欠陥を区別することが経験的な方法を使用して発見的に行われるので、バッファ402は、ソフトエラー又は重度の欠陥によるようなラベルの失敗を必ずしも必要としない。
例示的なLeast Recent Failedリプレースメントポリシーの実現のための例示的な擬似コードは、Cのような言語の擬似コードで表現される。実際の実現は、いずれかのプログラム言語を利用するか、又はハードウェアで完全に実現される。以下の表1〜表3は一連の処理である。
Figure 0004283221
Figure 0004283221
Figure 0004283221
図5は、例示的なリプレースメントポリシーを示しており、このリプレースメントポリシーは、そのメモリ位置について記録されるデータ転送の失敗の全体の数が閾値の制限を超えることに基づいて、無効のための候補としてメモリ位置を識別し、1)それぞれ追跡されたメモリ位置と関連するデータ転送の失敗の全体の数、及び2)その失敗の年代順により追跡することから特定の候補を除くことを調整する。データ転送動作の失敗を受けるメモリ位置の年代の順序は、図4に既に記載されている年代順と同じである。しかし、このリプレースメントポリシーは、そのメモリ位置の最も最近に失敗していない失敗の年代順、及びそのメモリ位置について記録される失敗の総数に基づいてメモリ位置を識別及び除去するだけでなく、リプレースメントポリシーは、トラッキングバッファ502からそのメモリ位置を除く前に所与のメモリ位置について記録される失敗の総数により重み付け要素をも考慮するため、結果はかなり異なる。
第五のメモリ位置がデータ転送の失敗を受けたとき、失敗を受けるメモリ位置の数は、有限サイズのバッファ502におけるエントリ506〜512の数を超える。メモリ位置番号3と関連するメモリアドレスは、図4におけるように、有限のトラッキングバッファ502により追跡されることにより除かれるが、番号3で位置されるメモリアドレスは、異なる理由のために除かれる。このポイントで、失敗が第四のメモリアドレスについて生じたとき、メモリ位置番号2は、それに関連して3つの失敗を有し、メモリ位置1は、それに関連して2つの失敗を有し、及びメモリ位置3は、そのメモリ位置に関連して1つの失敗を有するのみである。したがって、メモリアドレス3は、そのアドレスに関連される失敗の最小数を有し、最近に最も失敗していない追跡されたメモリ位置506の位置を占有するため、トラッキングバッファ502から除かれる。
第四のメモリアドレスは、最も最近に失敗した追跡されたメモリ位置512に記憶される。第二のメモリアドレスは、次に失敗した追跡されたメモリ位置510に記憶される。第二のメモリアドレスと関連される3つの失敗が注目され、バッファ502に記憶される。第一のメモリアドレスは、最も最近に失敗していない追跡されたメモリ位置506に記憶される。第一のメモリアドレスと関連する2つの失敗が注目され、バッファ502に記憶される。
つぎに、第五のメモリアドレス位置は、データ転送の失敗を受ける。たとえ第四のメモリアドレスが最も最近に失敗した追跡されたメモリ位置512に記憶されたとしても、第四のメモリアドレスと関連するエントリにおける情報は、トラッキングバッファ502から除かれる。これは、第四のメモリアドレスが追跡されている他のアドレスのいずれかよりも少ない、そのアドレスと関連される失敗の全体の数を有するためである。したがって、第五のメモリアドレスは、最も最近に失敗した追跡されたメモリ位置512に記憶される。第一のメモリアドレスは、最も最近に失敗していない追跡されたメモリ位置506になお記憶される。
つぎに、第二のメモリアドレスがそのアドレスと関連されるその第四の失敗を受けるとき、第二のメモリアドレスが無効にするための候補として識別され、無効なメモリ位置として選定される。第二のメモリアドレスと関連される全てのエントリは、無効なメモリ位置として識別されたとき、バッファ502から除かれる。
重み付けリプレースメントポリシーにより調整される例示的なLRF(Least Recently Failed)は、データ転送の失敗を受けるメモリ位置を追跡するために使用される場合がある。重み調整リプレースメントポリシーは、図4に説明されたアルゴリズムと同様に動作するが、異なる点が存在する。ひとたび、データ転送の失敗を受けたメモリ位置の数がトラッキングバッファ502におけるエントリの数506〜512の数を超えると、変更されたLRF(Least Recently Failed)ポリシーは、失敗の頻度、すなわちトラッキングバッファ502により追跡されることにより除かれるべきメモリ位置を選択したときの既存のエントリのカウントにより調節する。なお、失敗のカウントは、トラッキングバッファ502により追跡されている間、データ転送の失敗を受けたメモリ位置の回数である。
データ転送の失敗があるメモリ位置で生じたとき、そのメモリ位置のエントリが前の失敗のためにバッファ502に存在する場合には、エージェントは、関連される失敗のカウントをインクリメントし、エントリの年代順又はそのエントリの年代の情報を更新する。失敗のカウントが特定の閾値であるそのメモリ位置の失敗の総数よりも大きい場合、アルゴリズムは、メモリ位置を無効にし、対応するエントリをバッファ502から削除する。実施の形態では、より大きな深刻さを有するエラーのため、より大きな量に失敗のカウントを増加させるため、エラーの深刻さに基づく失敗の「重み」が適用される場合がある。
新たなエントリのためにバッファ502にスペースが存在しない場合、エージェントは以下を実行する。エージェントは、トラッキングバッファ502に存在する最小の失敗のカウントをもつ全てのエントリを考慮する。エージェントは、最小の失敗のカウントを持つエントリのなかで、年代順に基づいてトラッキングバッファ502における最も最近ではないエントリを識別するため、重み付けされたLRF(Least Recently Failed)ポリシーを使用する。エージェントは、その識別されたエントリを最後の失敗に対応する新たな1つのエントリで置き換える。次いで、エージェントは、バッファ502におけるエントリの年代順を更新する。
例示的な重み付けされたLRF(Least Recently Failed)リプレースメントポリシーのための例示的な擬似コードが以下に記載される。以下の表4〜表6は一連の処理である。
Figure 0004283221
Figure 0004283221
Figure 0004283221
図6は、LRF(Least Recently Failed)リプレースメントポリシーを利用したエージェントと共同で動作する有限サイズの3つのエントリを有する例示的なバッファに関する図を説明しており、このLRF(Least Recently Failed)リプレースメントポリシーは、無効又は除去のための候補を識別するときにそのメモリ位置について記録されるデータ転送の失敗のレートをも考慮している。
メモリ位置の失敗の年代的な順序は、図4及び図5で生じるのと同じである。リプレースメントポリシーは、追跡されているメモリ位置のための最も最近に失敗していない年代的な順序、追跡されているそれぞれのメモリ位置について記録される失敗の総数による重み付け、及び追跡されるそれぞれのメモリ位置のための失敗のレートに基づいて、メモリ位置を識別及び除去する。
この例では、全体で5つの失敗からなるリプレースメントポリシー、又は1ヵ月当たり4つの失敗からなる発生レートのリプレースメントポリシーにおいて、閾値が設定されている。タイムスタンプは、それぞれの失敗と関連され、それぞれのメモリ位置及びそれぞれの失敗についてトラッキングバッファ602のフィールドのうちの1つに記憶される。
第四のメモリ位置がデータ転送の失敗を受けるとき、図5と同様に、メモリアドレス位置番号3は、追跡されることにより除かれる。メモリアドレス位置番号3は、第三のメモリ位置が最も最近に失敗していない追跡されたエントリ606であり、そのメモリ位置がそのメモリ位置と関連する最少の失敗を有したために除かれる。
置き換え及び順序付け動作は、第二のメモリアドレス位置がその第四の失敗を受けるまでは、図5におけるリプレースメントポリシーに類似している。失敗の閾値が5つの失敗に上昇されているので、第二のメモリ位置は、トラッキングバッファ602から追跡されていることにより除かれない。これは、第二のメモリ位置は、4つの失敗のみを受け、5つの失敗を受けないためである。しかし、第二のメモリアドレス位置に関連する第一の失敗は、2−24−02で生じ、第四の失敗は、3−23−02で1ヵ月以内に生じる。したがって、第二のメモリアドレス位置は、月4回である閾値の発生レートを超えるので、トラッキングバッファ602から追跡され、無効なメモリ位置として識別される。
あるメモリ位置でデータ転送の失敗が生じるとき、アルゴリズムは、エラーを生じさせるメモリ位置のためのエントリが前の失敗のためにバッファに存在するかを判定するため、トラッキングバッファをサーチする。メモリ位置のアドレスが既に記憶されていない場合、メモリ位置のためのエントリがつくられる。エントリは、1である失敗のカウント及び最初のエラーの検出時間を示すタイムスタンプ値を含んでいる。失敗を受けている現在のメモリ位置についてエントリが発見された場合、エラーカウントがインクリメントされ、エラーの頻度、すなわち所与のメモリ位置のエラーレートを計算するため、現在の時間と最初のエラーからの記憶された時間とを使用して、更なる処理が実行される。
メモリ位置は、2つの失敗の基準のいずれかが適合される場合に、無効にするための候補として識別される。2つの失敗の基準は、1)失敗の頻度のレートが予め定義された閾値にあるか、又は該閾値を超えること、又は2)失敗の総数が予め決定された閾値にあるか又は該閾値を超えることである。失敗のレートの閾値は、メモリ位置がこれらの閾値を超えるときに確かに故障の原因であって無効にされることが必要であることの高い信頼の程度が存在するように、統計的な分析又は他の適切な方法により決定される。
実施の形態では、アルゴリズムは、あるセットの時間の間に新たなエラーを受けていないメモリ位置について、エラーカウントをデクリメントする場合がある。メモリ位置のエラーカウントがデクリメント後にゼロになった場合、メモリ位置の記録は、トラッキングバッファから除かれる。エラーカウントがデクリメント後になお非ゼロである場合、エントリのタイムスタンプは、そのメモリ位置の現在のエラーの頻度及び現在の時間に基づいて更新される。
実施の形態では、有限のバッファサイズは、装置の統計的な失敗のレートを使用することで所与の実現についてバッファが決してオーバフローしないという高い信頼性が存在するように決定することができる。しかし、バッファの容量が満たされた場合、次のエラーにより、新たなエラーをもつメモリ位置のための余地を許容するため、前のエラーを有するメモリ位置の除去を生じさせる。除去されるメモリ位置は、最も低いエラーの頻度をもつラインである。
例示的なタイムスタンプされたLRF(Least Recently Failed)リプレースメントポリシーのための例示的な擬似コードが以下に説明される。以下の表7〜表11は一連の処理である。
Figure 0004283221
Figure 0004283221
Figure 0004283221
Figure 0004283221
Figure 0004283221
図7は、ビルトインセルフテストを通過しているがその後の動作の間に少なくとも1以上のデータ転送の失敗を有している1以上のメモリ位置を追跡するためのリプレースメントポリシーアルゴリズムを利用するエージェントと共に動作するトラッキングバッファを実現する例示的なコンピュータシステムを説明している。1実施の形態では、コンピュータシステム700は、情報を伝達するための通信メカニズム又はバス711、情報を処理するためにバス711に結合されるプロセッサ712又はチップセット736のような集積回路コンポーネントを備えている。
コンピュータシステム700は、プロセッサ712により実行されるべき情報及び命令を記憶するためにバス711に結合されるランダムアクセスメモリ(RAM)又は他のダイナミックストレージ装置704(メインメモリと呼ばれる)を更に備えている。また、メインメモリ704は、プロセッサ712による命令の実行の間に、一時的な変数又は他の中間的な情報を記憶するために使用される場合がある。実施の形態では、プロセッサ712は、マイクロプロセッサを含む場合があるが、Pentium(登録商標),PowerPC等のようなマイクロプロセッサに限定されるものではない。
また、コンピュータシステム700は、プロセッサ712、並びに磁気ディスク又は光ディスク及びその対応するディスクドライブのような大容量のストレージメモリ707のための静的な情報及び命令を記憶するためにバス711に結合されるリードオンリメモリ(ROM)及び/又は他のスタティックストレージ装置706を備えている。大容量メモリ707は、情報及び命令を記憶するためにバス711に結合される。
実施の形態では、メモリワードは、メモリアレイにおける8ビット行のような、いずれかのメモリ707,706,707における所与のアドレスによりアクセスされる全てのビットである。キャッシュラインは、現実的にシステムコンポーネントのいずれかに位置され、データライン及びタグアレイといった2つの部分から構成されている。第一に、データラインは、8ビットのようなビットの集合であるが、シーケンシャルな行におけるようないずれかの構造に特化している必要はない。第二に、タグアレイは、データラインにマッピングする情報をもつフィールドを含み、かつステート及びリプレースメントステートのようなデータラインに記憶されるデータに関するコンテンツ情報を提供する。
このメモリ位置は、SRAM,DRAM,磁気ディスクベースのストレージ、強誘電体メモリ等を含む磁気メモリ全ての揮発性及び不揮発性メモリにおける失敗のメモリワードである場合がある。実施の形態では、キャッシュラインのMESIステートビット又はそれぞれのキャッシュラインに関連するセパレートビットフィールドは欠陥を示し、これによりキャッシュラインを永続的に無効にする。
コンピュータシステム700は、陰極線管(CRT)又は液晶ディスプレイ(LCD)のようなディスプレイ装置721に結合され、コンピュータユーザに情報を表示するためのバス711に結合される。アルファベット入力装置(キーボード)722は、アルファベット及び他のキーを含んでおり、プロセッサ712への情報及びコマンド選択を伝達するためにバス711に結合される場合がある。更なるユーザ入力装置は、プロセッサ712への方向情報及びコマンド選択を伝達し、ディスプレイ装置712でのカーソルの移動を制御するための、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーのようなカーソル制御装置723である。
バス711に結合される場合がある別の装置は、命令、データ又は他の情報を紙、フィルム又は類似のタイプの媒体のようなメディアにプリントするために使用される場合があるハードコピー装置724である。さらに、スピーカ及び/又はマイクロフォン(図示せず)サウンド記録及び再生装置は、コンピュータシステム700とオーディオインタフェースするためにバス711に任意に結合される場合がある。バス711に結合される場合がある別の装置は、電話への伝達のための有線/無線通信機能725である。
1実施の形態では、アルゴリズムを容易にするために使用されるソフトウェアは、マシン読取り可能な媒体は、マシン(たとえば、コンピュータ)により読取り可能な形式で情報を提供(たとえば、記憶及び/又は送信)するメカニズムを含んでいる。たとえば、マシン読取り可能な媒体は、リードオンリメモリ(ROM);ランダムアクセスメモリ(RAM);磁気ディスクストレージメディア;光記憶媒体;フラッシュメモリ装置;DVD;電気形式、光形式、音声形式又は他の形式の伝播された信号(たとえば、キャリア波、赤外線信号、デジタル信号、EPROM、EEPROM、FLASH、磁気ディス又は光カード、又は電子的な命令を記憶するために適したタイプのメディア)を含んでいる。より低速な媒体は、より高速、より実用的な媒体にキャッシュすることができる。
先の詳細な説明の幾つかの部分は、コンピュータメモリ内のデータビットに関するアルゴリズム及びシンボル表現の観点で与えられる。これらアルゴリズム的な説明及び表現は、当業者の業務の実質的な部分を最も効果的に伝達するために、データ処理技術分野での当業者により使用される手段である。アルゴリズムは、所望の結果をもたらす自己完結した処理シーケンスである一般的に考えられる。処理は、物理量の物理的な処理を要求するステップである。一般に、必ずしも必要ではないが、これらの量は、記憶、転送、結合、比較及びさもなければ操作可能な電気信号又は磁気信号の形式をとる。これまで、これらの信号をビット、値、エレメント、シンボル、文字、用語、番号等として示すことは、一般的な使用のために基本的に便利なことであることが分かっている。
しかし、全てのこれらの用語及び他の用語は、適切な物理的な量と関連しており。これらの量に適用される単なる便宜上のラベルであることに留意すべきである。先に説明から明らかなように特に説明されない場合、説明を通して、「処理」又は「備える」又は「計算」又は「決定」又は「表示」等のような用語を利用する記載は、コンピュータシステム又は類似の電子計算装置の動作及び処理を示しており、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)な量をとして表されるデータを処理し、コンピュータシステム又はレジスタ、若しくは他のかかる情報ストレージ、送信又は表示装置内の物理的な量として同様に表される他のデータに変換する。
また、メモリ位置を有する計算システムは、たとえば、ローカルサーバキャッシュ、ウェブブラウザのキャッシュ、又は他の同様のシステムを含む場合がある。
本発明の特定の実施の形態が示されたが、本発明はこれらの実施の形態に限定されるものではない。たとえば、アルゴリズムは、最近に失敗していない(not recently failed)リプレースメントポリシーのような最も頻度が低い失敗のポリシー(least frequently failed)とは異なるアルゴリズムを含んでいる。同様に、電子的なハードウェアにより実行される大部分の機能は、ソフトウェアエミュレーションに複製される場合があり、逆も然りである。したがって、それら同じ機能を達成するために書かれるソフトウェアプログラムは、計算システムのハードウェアコンポーネントの機能をエミュレートする場合がある。なお、後続する動作は、その後の自己テストを含んでいる場合がある。バッファサイズは、動作のレジメの間にエージェントにより増加又は減少する場合がある。本発明は、本実施の形態で説明される特定の実施の形態により限定されず、特許請求の範囲によってのみ限定されることが理解されるべき出る。
失敗したデータ転送動作を被ったメモリ位置を追跡及び無効にするための1以上のリプレースメントポリシーを使用したエージェントと共同で動作するため、失敗したデータ転送動作を被ったメモリ位置を追跡するための情報を記憶するトラッキングバッファの実施の形態に関するブロック図である。 無効のためのメモリ位置の候補を識別するための例示的なリプレースメントポリシーアルゴリズムの実施の形態の一部に関するフローチャートである。 無効にするためのメモリ位置の候補を識別するための例示的なリプレースメントポリシーアルゴリズムの実施の形態の一部に関するフローチャートである。 そのメモリ位置を無効にするためのメモリ位置の候補を識別するための例示的なLRF(Least Recently Failed)リプレースメントポリシーを使用したエージェントと共同で動作する例示的なトラッキングバッファを示す図である。 そのメモリ位置について記録されたデータ転送の失敗の総数の閾値限界を超えることに基づいて、あるメモリ位置を無効のための候補として識別する例示的なリプレースメントポリシーであって、1)それぞれ追跡されたメモリ位置に関連されるデータ転送の失敗の総数、及び2)その失敗に関する年代の順序により追跡することから特定の候補の除去を調節するリプレースメントポリシーを示す図である。 無効又は除去するための候補を識別するとき、そのメモリ位置について記録されるデータ転送の失敗のレートをも考慮した、LRF(Least Recently Failed)リプレースメントポリシーを利用するエージェントと共同で動作する有限サイズの3つのエントリを有する例示的なバッファに関する図である。 ビルトインセルフテストを通過したが、その後の動作の間に少なくとも1以上のデータ転送の失敗を有している1以上のメモリ位置を追跡するリプレースメントアルゴリズムを利用するエージェントと共同で動作するトラッキングバッファを実現する例示的なコンピュータシステムである。

Claims (14)

  1. ビルトインセルフテストを通過し、その後の動作の間にエラーチェックメカニズムにより示される少なくとも1つの失敗を有する1以上のメモリ位置を第一のエントリが追跡する2以上のエントリを有するバッファを含むメモリと、
    リプレースメントポリシーアルゴリズムを使用するエージェントであって、前記1以上のメモリ位置の追跡を実現するためにバッファと共に動作するエージェントを含むプロセッサと、
    を備え、
    該リプレースメントポリシーアルゴリズムは、無効なメモリ位置の候補を識別し、全ての追跡されたテータ転送の失敗を受けたメモリ位置のなかで、最もデータ転送の失敗を受けていないメモリ位置に対応する該バッファにおけるエントリを、該識別されたメモリ位置の候補で置き換えるLRF(Least Recently Failed)リプレースメントポリシーを含む
    ことを特徴とする装置。
  2. 該LRFリプレースメントポリシーによる該メモリ位置の候補の識別は、少なくとも部分的に、それぞれ追跡されたメモリ位置のデータ転送の失敗のレートに基づく、
    請求項記載の装置。
  3. 該LRFリプレースメントポリシーによる該メモリ位置の候補の識別は、少なくとも部分的に、それぞれ追跡されたメモリ位置に関連するデータ転送の失敗の総数に基づく、
    請求項記載の装置。
  4. 該データ転送の失敗、読取り動作から生じる誤りデータの結果を備える、
    請求項記載の装置。
  5. 該データ転送の失敗、期待されない結果から離れる誤りデータの結果であって、エラーチェックメカニズムにより検出された誤りデータの結果を備える、
    請求項記載の装置。
  6. 該バッファは有限の量のエントリを有し、該リプレースメントアルゴリズムは、追跡されたメモリ位置の総数が該バッファにおける有限の数のエントリを超えるとき、追跡されたメモリ位置と関連する情報を該バッファから除く、
    請求項1記載の装置。
  7. 該エージェントは、記録された失敗の数が閾値を超えるかを比較するコンパレータをさらに含む、
    請求項記載の装置。
  8. ビルトインセルフテストを通過し、その後の動作の間に少なくとも1つのデータ転送の失敗を有するメモリ位置に関連する1以上のデータ転送の失敗を追跡する手段と、エラー検出チェックメカニズムにより該データ転送の失敗を検出する手段とを含むメモリと、
    無効なメモリ位置の候補を識別し、全ての追跡されたテータ転送の失敗を受けたメモリ位置のなかで、最もデータ転送の失敗を受けていないメモリ位置に対応する該バッファにおけるエントリを、該識別されたメモリ位置の候補で置き換えるLRF(Least Recently Failed)リプレースメントポリシーに基づいてメモリ位置を無効にするかを判定する手段を含むプロセッサと
    を備える装置。
  9. 該プロセッサは、該LRFリプレースメントポリシーにより、メモリ位置のデータ転送の失敗の数がデータ転送の失敗の閾値である総数に等しいか又は超えるかを判定する手段をさらに備える、
    請求項記載の装置。
  10. 該プロセッサは、該LRFリプレースメントポリシーにより、メモリ位置のデータ転送の失敗のレートがデータ転送の失敗の閾値である数に等しいか又は該数を超えるかを判定する手段をさらに備える、
    請求項記載の装置。
  11. コンピュータにより実行されたときに、
    ビルトインセルフテストを通過し、その後の動作の間に少なくとも1つのデータ転送の失敗を有するメモリ位置に関連する1以上のデータ転送の失敗を追跡するステップと、
    エラー検出チェックメカニズムにより該データ転送の失敗を検出するステップと、
    無効なメモリ位置の候補を識別し、全ての追跡されたテータ転送の失敗を受けたメモリ位置のなかで、最もデータ転送の失敗を受けていないメモリ位置に対応する該バッファにおけるエントリを、該識別されたメモリ位置の候補で置き換えるLRF(Least Recently Failed)リプレースメントポリシーに基づいてメモリ位置を無効にするかを判定するステップと
    を含む動作をコンピュータに実行させる命令を有するコンピュータ読取り可能な記録媒体。
  12. コンピュータにより実行されたときに、
    該LRFリプレースメントポリシーにより、メモリ位置のデータ転送の失敗の総数がデータ転送の失敗に関する閾値である数に等しいか又は該数を超えるかを判定するステップを含む動作をコンピュータに更に実行させる命令を有する、
    請求項11記載のコンピュータ読取り可能な記録媒体。
  13. コンピュータにより実行されたときに、
    該LRFリプレースメントポリシーにより、メモリ位置のデータ転送の失敗のレートがデータ転送の失敗に関する閾値の数を超えるかを判定するステップを含む動作をコンピュータに更に実行させる命令を有する、
    請求項11記載のコンピュータ読取り可能な記録媒体。
  14. コンピュータにより実行されたときに、
    1以上のデータ転送の失敗をそれぞれ受けた複数のメモリ位置を追跡するステップと、
    該LRFリプレースメントポリシーにより、どの追跡されているメモリ位置が、追跡されている全てのメモリ位置に関する年代順で最もデータ転送の失敗がないかを判定するステップと、
    追跡されるメモリ位置の総数が有限の追跡されるメモリ位置の数を超える場合に、該追跡されたメモリ位置に関連する情報を追跡されることから除くステップと、
    を含む動作をコンピュータに更に実行させる命令を有する請求項11記載のコンピュータ読取り可能な記録媒体。
JP2004527709A 2002-08-12 2003-08-01 繰返し失敗したメモリ位置を無効にする実行をイネーブルにするため、失敗したメモリ位置を追跡する各種方法及び装置 Expired - Fee Related JP4283221B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/217,984 US7168010B2 (en) 2002-08-12 2002-08-12 Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
PCT/US2003/024141 WO2004015717A2 (en) 2002-08-12 2003-08-01 Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations

Publications (2)

Publication Number Publication Date
JP2006510071A JP2006510071A (ja) 2006-03-23
JP4283221B2 true JP4283221B2 (ja) 2009-06-24

Family

ID=31495244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004527709A Expired - Fee Related JP4283221B2 (ja) 2002-08-12 2003-08-01 繰返し失敗したメモリ位置を無効にする実行をイネーブルにするため、失敗したメモリ位置を追跡する各種方法及び装置

Country Status (7)

Country Link
US (1) US7168010B2 (ja)
EP (1) EP1579460A2 (ja)
JP (1) JP4283221B2 (ja)
CN (2) CN101019192B (ja)
AU (1) AU2003257121A1 (ja)
TW (1) TWI254206B (ja)
WO (1) WO2004015717A2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493534B2 (en) * 2003-08-29 2009-02-17 Hewlett-Packard Development Company, L.P. Memory error ranking
US7484065B2 (en) 2004-04-20 2009-01-27 Hewlett-Packard Development Company, L.P. Selective memory allocation
US7555677B1 (en) * 2005-04-22 2009-06-30 Sun Microsystems, Inc. System and method for diagnostic test innovation
US7430145B2 (en) * 2005-09-16 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for avoiding attempts to access a defective portion of memory
IL171963A0 (en) 2005-11-14 2006-04-10 Nds Ltd Secure read-write storage device
EP1808863A1 (en) * 2006-01-16 2007-07-18 Deutsche Thomson-Brandt Gmbh Method and apparatus for recording high-speed input data into a matrix of memory devices
DE102006008017A1 (de) * 2006-02-21 2007-08-30 Infineon Technologies Ag Verfahren zum Herstellen und Verfahren zum Betreiben eines integrierten Halbleiterspeichers
US20080010566A1 (en) * 2006-06-21 2008-01-10 Chang Tsung-Yung Jonathan Disabling portions of memory with non-deterministic errors
KR101413736B1 (ko) 2007-09-13 2014-07-02 삼성전자주식회사 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
US8635491B2 (en) * 2007-09-28 2014-01-21 Seagate Technology Llc Storage device maintenance in a portable device based on a power event
US20090132876A1 (en) * 2007-11-19 2009-05-21 Ronald Ernest Freking Maintaining Error Statistics Concurrently Across Multiple Memory Ranks
US8032706B2 (en) * 2008-08-05 2011-10-04 Intel Corporation Method and apparatus for detecting a data access violation
US9678878B2 (en) 2008-09-30 2017-06-13 Intel Corporation Disabling cache portions during low voltage operations
US8713267B2 (en) * 2009-01-23 2014-04-29 Lsi Corporation Method and system for dynamic storage tiering using allocate-on-write snapshots
JP2011018187A (ja) * 2009-07-09 2011-01-27 Fujitsu Ltd 試験方法、試験プログラム、試験装置、及び試験システム
US8103900B2 (en) * 2009-07-28 2012-01-24 International Business Machines Corporation Implementing enhanced memory reliability using memory scrub operations
US8750059B2 (en) 2009-08-12 2014-06-10 Taiwan Semiconductor Manufacturing Company, Ltd. Self-repairing memory
US20110041016A1 (en) * 2009-08-12 2011-02-17 Taiwan Semiconductor Manufacturing Company, Ltd. Memory errors and redundancy
US9042191B2 (en) 2009-08-12 2015-05-26 Taiwan Semiconductor Manufacturing Company, Ltd. Self-repairing memory
US8640006B2 (en) * 2011-06-29 2014-01-28 International Business Machines Corporation Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis
DE102011107936B4 (de) * 2011-07-19 2015-07-23 Texas Instruments Deutschland Gmbh Halbleitervorrichtung und Verfahren für die Ablaufverfolgung elnes Speichers einer Halbleitervorrichtung
JP5962269B2 (ja) * 2012-07-09 2016-08-03 富士通株式会社 評価装置,分散格納システム,評価方法及び評価プログラム
US8924775B1 (en) * 2012-09-25 2014-12-30 Western Digital Technologies, Inc. Methods, devices and systems for tracking and relocating intermittently defective disk sectors to prevent indefinite recycling thereof
US9389937B2 (en) * 2013-11-19 2016-07-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing faulty memory pages in a computing system
KR102532581B1 (ko) * 2016-03-17 2023-05-17 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
US9910606B2 (en) 2016-03-23 2018-03-06 Seagate Technology Llc End of life extension of solid state memory
US9852060B2 (en) * 2016-03-31 2017-12-26 Dell Products L.P. Storage class memory (SCM) memory mode cache system
CN107122256B (zh) * 2017-06-13 2018-06-19 北京邮电大学 动态修补的高性能片上缓存容错架构
CN112131071B (zh) * 2017-09-18 2024-05-17 华为技术有限公司 一种内存评估的方法及装置
US11740928B2 (en) 2019-08-26 2023-08-29 International Business Machines Corporation Implementing crash consistency in persistent memory
US11928497B2 (en) 2020-01-27 2024-03-12 International Business Machines Corporation Implementing erasure coding with persistent memory
CN114637616A (zh) * 2020-12-15 2022-06-17 超威半导体(上海)有限公司 用于记载和记录错误处理信息的方法和系统
CN112601153B (zh) * 2021-03-01 2021-05-07 成都大熊猫繁育研究基地 一种声音自动采集与传输装置及其使用方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2276255A (en) 1993-02-17 1994-09-21 Andor Int Ltd Track buffer with embedded error data
EP0675436B1 (en) 1994-03-31 1999-10-27 STMicroelectronics, Inc. Recoverable set associative cache
US5974576A (en) * 1996-05-10 1999-10-26 Sun Microsystems, Inc. On-line memory monitoring system and methods
US6085334A (en) * 1998-04-17 2000-07-04 Motorola, Inc. Method and apparatus for testing an integrated memory device
US6505305B1 (en) * 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6370622B1 (en) * 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US6467048B1 (en) * 1999-10-07 2002-10-15 Compaq Information Technologies Group, L.P. Apparatus, method and system for using cache memory as fail-over memory
US6496538B1 (en) * 1999-12-31 2002-12-17 Intel Corporation Method and apparatus for motion estimation for digital video encoding
US6691252B2 (en) * 2001-02-23 2004-02-10 Hewlett-Packard Development Company, L.P. Cache test sequence for single-ported row repair CAM
EP1444580B1 (en) * 2001-11-09 2005-10-05 Sun Microsystems, Inc. Method and apparatus for fixing bit errors encountered during cache references without blocking
US6865694B2 (en) * 2002-04-30 2005-03-08 Texas Instruments Incorporated CPU-based system and method for testing embedded memory

Also Published As

Publication number Publication date
US20040030957A1 (en) 2004-02-12
US7168010B2 (en) 2007-01-23
TWI254206B (en) 2006-05-01
AU2003257121A1 (en) 2004-02-25
CN101019192B (zh) 2014-10-01
WO2004015717A3 (en) 2006-06-01
AU2003257121A8 (en) 2004-02-25
JP2006510071A (ja) 2006-03-23
EP1579460A2 (en) 2005-09-28
WO2004015717A2 (en) 2004-02-19
TW200413915A (en) 2004-08-01
CN101019192A (zh) 2007-08-15

Similar Documents

Publication Publication Date Title
JP4283221B2 (ja) 繰返し失敗したメモリ位置を無効にする実行をイネーブルにするため、失敗したメモリ位置を追跡する各種方法及び装置
US7640395B2 (en) Maintaining write ordering in a system
EP1659494B1 (en) Method and apparatus for classifying memory errors
US9405639B2 (en) Systems and methods for retrieving data
US8977820B2 (en) Handling of hard errors in a cache of a data processing apparatus
TWI425511B (zh) 校正資料儲存及處理方法
US7313749B2 (en) System and method for applying error correction code (ECC) erasure mode and clearing recorded information from a page deallocation table
KR101139151B1 (ko) 캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US20080294847A1 (en) Cache control device and computer-readable recording medium storing cache control program
KR102515417B1 (ko) 캐시 메모리 장치 및 그것의 동작 방법
US9727244B2 (en) Expanding effective storage capacity of a data storage system while providing support for address mapping recovery
JP2012103826A (ja) キャッシュメモリシステム
US10262754B2 (en) Fine grained online remapping to handle memory errors
JP2015201204A (ja) データ記憶装置におけるデータ保全性管理
US10922234B2 (en) Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
JP2023510709A (ja) ストレージ・クラス・メモリ
US7308638B2 (en) System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
US7062611B2 (en) Dirty data protection for cache memories
JP2006286135A (ja) 半導体記憶装置及びその読み書き制御方法
JPS61259351A (ja) バツフア・ストレイジ・エラ−処理方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080708

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090318

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees