JP2013539086A - バス障害を検出するための方法、システム及びコンピュータ・プログラム - Google Patents

バス障害を検出するための方法、システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2013539086A
JP2013539086A JP2013515811A JP2013515811A JP2013539086A JP 2013539086 A JP2013539086 A JP 2013539086A JP 2013515811 A JP2013515811 A JP 2013515811A JP 2013515811 A JP2013515811 A JP 2013515811A JP 2013539086 A JP2013539086 A JP 2013539086A
Authority
JP
Japan
Prior art keywords
lane
bus
syndromes
error
syndrome
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.)
Granted
Application number
JP2013515811A
Other languages
English (en)
Other versions
JP5623635B2 (ja
JP2013539086A5 (ja
Inventor
ガウアー、ケヴィン
ラストラス−モンターノ、ルイス
ミーニー、パトリック、ジェームズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013539086A publication Critical patent/JP2013539086A/ja
Publication of JP2013539086A5 publication Critical patent/JP2013539086A5/ja
Application granted granted Critical
Publication of JP5623635B2 publication Critical patent/JP5623635B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】シンドローム分析を使用して障害バス・レーンを検出すること。
【解決手段】本方法は、エラー検出コードの複数のシンドロームを受け取るステップを含む。前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、バスを介して送信された複数のフレームに関連する。本方法は、前記シンドロームの各々ごとに、前記レーンの各々について、当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力するステップと、前記復号結果が有効な復号であるか否かを決定するステップと、前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票するステップを含む。次に、前記投票に応答して、障害レーンが識別される。前記障害レーンは、前記バス上の少なくとも1つの他のレーンよりも多い投票を有することによって特徴づけられる。
【選択図】 図6

Description

本発明は、コンピュータのメモリ・システムに係り、さらに詳細に説明すれば、シンドローム分析を使用して障害バス・レーン(failing bus lane)を検出することに係る。
一般に、最近の高性能コンピュータ用の主メモリ・システムは、1つ以上の動的ランダム・アクセス・メモリ(DRAM)装置から構成される。これらのDRAM装置は、1つ以上のメモリ制御要素を介して、1つ以上のプロセッサに接続される。コンピュータ・システムの総合性能は、プロセッサの性能/構造、メモリ・キャッシュ、入出力(I/O)サブシステム、メモリ制御機能の効率、主メモリ装置、メモリ相互接続インタフェースのタイプ及び構造を含む、コンピュータ構造の重要な各要素によって影響される。
産業界では、システム/サブシステムの設計及び/又は構造を改良することを通してコンピュータ・システム全体の性能及び密度を最大化するための改良された及び/又は革新的な解決策を提供するべく、広範囲な研究開発努力に対する投資が継続的に行われている。高可用性システムは、システム全体の信頼性に関係するさらなる挑戦を提示する。というのは、顧客が期待するのは、新しいコンピュータ・システムが平均故障間隔(MTBF)の点で既存のシステムよりも著しく優れているというだけではなく、追加の機能、増大した性能、増大したストレージ、より低い運転コスト等を提供するというものであるからである。メモリ・システム設計の挑戦をさらに困難にする顧客の他の要件には、アップグレードの容易さ、システム環境(例えば、スペース、電力、冷却等)への影響を低減すること等がある。
メモリ・システム・バスのようなバス内の障害レーンを検出するための1つのアプローチは、エラー訂正コード(ECC)を使用することである。ECCは、多数の障害ビットを検出し且つ訂正することができるが、エラー検出コードよりも多い冗長ビットを必要とする。一般に、エラー検出コードは、エラーを検出することができるが、当該エラーの物理的な性質を完全に解決することができない。例えば、エラー検出コードは、障害レーン内の全ての可能なエラー・パターンについて当該障害レーンを完全に識別できないことがある。従って、エラー検出コードだけでは、エラーを特定の障害レーンに正確に分離できないことがある。障害レーンを検出するための他のアプローチは、レーン・シャドーイングを使用して、データのコピーをスペア・レーンを介して送信するというものである。しかし、レーン・シャドーイングは、任意の時点においてレーンのサブセットについてだけ機能するに過ぎないから、所与の障害レーン用の分析ウインドウの外部で生じるエラー・イベントを見逃すことがある。
本発明の第1の側面に従って、バス障害を検出するためのコンピュータによって実装される方法が提供される。本方法は、エラー検出コードの複数のシンドロームを受け取るステップを含む。前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、前記バスを介して送信された複数のフレームに関連する。本方法は、前記シンドロームの各々ごとに、前記レーンの各々について、当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力するステップと、前記復号結果が有効な復号であるか否かを決定するステップと、前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票するステップを含む。次に、前記投票に応答して、障害レーンが識別される。前記障害レーンは、前記バス上の少なくとも1つの他のレーンよりも多い投票を有することによって特徴づけられる。
本発明の第2の側面に従って、バス障害を検出するためのシステムが提供される。本システムは、前記バスを介して送信された複数のフレーム用のシンドロームを受け取り且つトラップするように構成されたバス・インタフェース装置を備える。各フレームは、各レーンごとに複数のビット転送を含む。本システムは、前記バス・インタフェース装置と通信するシンドローム処理論理をさらに備える。前記シンドローム処理論理は、エラー検出コードの複数のシンドロームを受け取る動作を実行するように構成される。前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、前記バスを介して送信された複数のフレームに関連する。前記シンドローム処理論理は、前記シンドロームの各々ごとに、前記レーンの各々について、当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力する動作と、前記復号結果が有効な復号であるか否かを決定する動作と、前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票する動作を実行するように構成される。前記投票に応答して、障害レーンが識別される。前記障害レーンは、前記バス上の少なくとも1つの他のレーンよりも多い投票を有することによって特徴づけられる。
本発明の第3の側面に従って、バス障害を検出するためのコンピュータ・プログラムが提供される。本コンピュータ・プログラムは、本発明の第1の側面に係る方法発明の各ステップをコンピュータに実行させるためのものである。
添付図面及び以下の詳細な説明を参照すれば、本発明に従った他のシステム、方法及び/又はコンピュータ・プログラムが、当業者にとって明白になるであろう。そのような追加のシステム、方法及び/又はコンピュータ・プログラムの全ては、本明細書の開示の範囲内に包含され、本発明の範囲内に包含され、請求項の記載によって保護されることが意図される。
本発明は、バスを介して転送される或るフレーム内で唯1つのビット障害が生じるような状況でエラー条件をモニタすることにより、障害レーンを分離する際の精度を向上させることができるという効果を奏する。例えば、或るフレーム内で唯1つのビット障害が検出されるケースでは、レーン障害識別における100%の精度を達成することができるという効果を奏する。
本発明の実施形態によって実装することができるカスケード相互接続メモリ・システムを示す図である。 下流の8転送フレームを示す図である。 下流の12転送フレームを示す図である。 下流の16転送フレームを示す図である。 上流の8転送フレームを示す図である。 シンドローム分析を使用して障害バス・レーンを検出するためのプロセスを示す図である。
本発明の実施形態は、エラー検出コードを使用して保護される、バス内の或る障害レーンを検出する。当該障害レーンを統計的に識別するために、複数のカウンタ及びエラー検出コードの複数のシンドロームの分析を使用することができる。分析の結果、バス内のレーンの数と等しい数のエントリを有するビット・ベクトルが得られる。各レーンごとにカウンタがあり、当該カウンタは分析の結果で増分される。もし、特定のレーンについて、ビット・ベクトルがゼロに等しければ、当該レーン用のカウンタは放置される。さもなければ、当該レーン用のカウンタは増分される。
前記分析は、どの障害レーンがエラーの原因であるかということを完全に解決する代わりに、障害レーンについての複数の可能性を与える。従って、単一のシンドロームが分析されるとき、2つ以上のカウンタが増分されることがある。このプロセスは、新しい複数のシンドロームが受け取られるにつれて、複数回にわたって反復される。単一のシンドローム分析については、障害レーンを解決することは可能ではないかもしれないが、複数のシンドロームが分析され且つ複数のカウンタの蓄積された内容が得られるにつれて、障害レーンは、高い確率でより高いカウントを有することになるであろう。分析されるシンドロームの数が多くなるほど、分析結果の品質が向上する。バスを介して転送される或るフレーム内で唯1つのビット障害が生じるような状況でエラー条件をモニタすると、或る障害レーンを分離する際の精度を向上させることができる。例えば、或るフレーム内で唯1つのビット障害が検出されるケースでは、レーン障害識別における100%の精度を達成することができるであろう。本明細書では、巡回冗長検査(CRC)を参照して、前記分析を詳細に説明する。しかし、前記分析は、任意の線形エラー検出コードにも適用可能であり、CRCだけに制限されない。
線形エラー検出コードは、パリティ検査行列Hによって特徴づけられる。一般に、このコードは、マルチビット・シンボルにも適用可能であるが、説明の便宜上、このコードは、バイナリ・シンボルに作用するものと仮定する。パリティ検査行列H内の行の数(r)は、このコード内の検査ビットの数と等しい。列の数は(n)は、n=r+kと等しい。但し、kは、エラー検出コード内のペイロード・ビットの数である。
dを、kペイロード・ビットを表す列ベクトルとし、cを、これらのkペイロード・ビットに関連するrビットを表す列ベクトルとする。その場合、バスを介して送信される全ベクトルは、次の通りである。
Figure 2013539086

但し、c及びdは、vを形成するように連結されている。検査ビットcの位置はこのベクトルの上部にある必要はないし、検査ビットは隣接して配置する必要もない。ここで、この構成を仮定するのは、この説明の理解を容易にするために過ぎない。ペイロードdが与えられると、Hv=0となるように検査ビットcが計算される。Hvは、2を法とする行列/ベクトル乗算を使用して、行列Hをベクトルvと乗算することを示す。その後、ベクトルvは、通信路を介して送信され、その結果、ベクトルv上にエラーが加わることがある。このエラーは、nエントリを有するエラー・ベクトルeによって表される。エラー・ベクトルeのnエントリは、エラーが存在しない場合は、複数のゼロを有し、エラーが存在する場合は、複数の1を有する。
バス内にLレーンが存在し、そして各レーンがバスを介した或るフレームの送信の全体にわたってn/Lビットを搬送するものと仮定する。従って、nがLによって割り切れることも仮定する。ベクトルvは、L部分に分割することができる。その各部分は、次のように隣接する複数のビットを有する。
Figure 2013539086
n/Lビットを含むL部分の各々は、通信路を介して送信される。同様に、エラー・ベクトルeは、次のように分割することができる。
Figure 2013539086
データ・パターンv+eが受け取られる場合、デコーダは、ベクトルvに依存しない式、s=H(v+e)=0+He=He、を使用して、対応するシンドロームを計算する。もし、エラーがなかったならば(e=0)、シンドロームsはゼロであり、当該フレームは良好であると見なされる。もし、s=Heがゼロに等しくなければ、エラーが検出されたことになり、通常は、再試行が要求されるであろう。
さらに、r>n/Lであるものと仮定する。すなわち、このコード内の検査ビットrの数が、所与のレーン内のビット数n/Lよりも多いということである。行列Hは、H=[H1H2 ...HL]として分割することができる。もし、レーンiにのみ集中しているエラーが存在すれば(但し、e=[0...ei ...0 0]であり、eiは非ゼロである)、受け取られたシンドロームは、s=Hi eiである。Hiは、2つのセクションに分割することができる。第1のセクションHi_Aは、n/L行を含み、第2のセクションHi_Bは、残りの行を含む。この分割は、次に示す通りである。
Figure 2013539086

同様に、シンドロームsは、次のように分割することができる。
Figure 2013539086
従って、Hi_Aは、次元(n/L)×(n/L)を有する正方行列であり、Hi_Bは、次元(r−n/L)×(n/L)を有する行列である。同様に、s_Aは、n/Lエントリを有し、s_Bは、r−n/Lエントリを有する。
もし、このコードが、Hi_Aが可逆行列であるようなものであれば、Hi_Aの逆数とs_Aの乗算結果は、eiに等しい。これは、inv(Hi_A)s_A=eiとして表すことができる。すなわち、当該レーンに影響するエラー・パターンeiを有効に回復するということである。留意すべきは、全てのiについてHi_Aが可逆であるという特性は、例えば、巡回コードを使用することによって得ることができ、そして或るレーン内の連続するビットが当該巡回コード内の連続するビットに対応することを保証する。巡回コードの幾つかの例は、クラスoのBCHコードである。前記エラー・パターンeiを回復した結果として、次の式(第2の等式)も当てはまる。
Figure 2013539086
留意すべきは、この式が第1の等式を使用してマーカmiを追加的に定義するということである。式(1)は、障害バス・レーンを検出するための基礎である。もし、レーンiが問題を有するレーンであれば、設計されたコードのH及びシンドロームsのみに依存する、式(1)の左側のマーカmiは、ゼロに等しくなければならない。どのレーンに障害があるかは知られていないので、式(1)の左側は、全てのLレーンについて計算される。但し、式(1)の左側を計算する間に、インデックスiを1からLまで変更させつつ、本質的に各レーンが障害レーンであるものと順々に仮定する。この計算がゼロに帰着したインデックスiについては、関連するレーンが障害レーン候補として宣言され、分析ビット・ベクトル投票_レーンのi番目のビットが1にセットされる。すなわち、投票_レーン[i]は、1にセットされる(本明細書では、これを「レーンiに投票する」と称する)。この計算が非ゼロに帰着したインデックスiについては、投票_レーン[i]は、0にセットされる(本明細書では、これを「レーンiに投票しない」と称する)。留意すべきは、各レーンごとにシンドロームs_Aのサブセットを使用してエラー量e_iが計算され、その間に、残りのシンドローム・ビットs_Bを使用して候補エラー・ベクトルのクロス検査が実行されるということである。もし、クロス検査が成功すれば、有効な復号信号が生成される。さもなければ、無効な復号信号が生成される。
1つのフレームに適用される前記手順の説明は、当分野で公知のバス・エラー訂正手順に対応しない。バス・エラー訂正手順では、各シンドロームの復号は、訂正不能エラー信号を生じるか、又はバスに適用されるとデータ破壊を除去するであろうと信じられる訂正を生じる。対照的に、前述の手順では、多数のフレームが処理された後にだけ障害レーンを検出することを目的として、各レーンが障害レーンであるという仮定の下に各シンドロームの復号を実行し、そして有効な復号が得られるならば、そのレーンは投票を受け取る。従って、前述の手順の実施形態を使用して、1つのフレームが処理されたときは、一意的な障害レーンが必ずしも識別されるとは限らない。
前述のように、実施形態に従って、各ビット・レーンごとに1つずつ設けられたカウンタは、障害レーンである関連するレーンの投票をカウントする。これらのカウンタは、複数のエラー検出(従ってシンドローム分析)イベントにわたって持続するから、これらのカウンタは「走行カウンタ」とも呼ばれる。ビット・ベクトル投票_レーンは、各ビット・レーン用のカウンタを増分するために使用することができる。具体的には、ビット・ベクトル投票_レーンの値が、これらのカウンタの現在値に加算される。唯1つのレーンについてマーカmiの計算結果がゼロになることがあるが、一般に、式(1)では、2つ以上のレーンについてマーカmiの計算結果がゼロになることがあり得る。このことは、対応するカウンタが増分されるであろうということを意味する。
もし、或るレーンが持続的なエラーを有するが、その実際のエラー・パターンがアクセス相互間で変化すれば、当該障害レーン用のカウンタは、他のレーン用のカウンタよりも多い増分を得る。複数のカウンタを追跡するハードウェア、ファームウェア又はソフトウェアは、これを使用することにより、或るカウンタが閾値に達したか否かを決定する。そうであれば、対応するレーンは、レーン・スペアリング用の良い候補である。
もし、エラー・パターンが単一ビット・エラーであれば、エラー検出コードが適切に設計されていることを条件として、少しの曖昧さもなく、障害レーンを正確に識別することができる。実施形態では、使用されるエラー検出コードは、少なくとも任意の2ビット・エラーを検出するという能力を有する。従って、任意の2つの単一ビット・エラーのシンドロームは、同じではあり得ない。単一ビット・エラーが存在する場合、2つ以上のレーンが単一ビット・エラーを有するeiを計算し、そして式(1)の計算の結果が同時にゼロになることはあり得ない。
代替実施形態では、式(1)の代わりに、式(2)及び(3)の2段階の計算を実行することができる。
Figure 2013539086

但し、eiは、レーンi用の候補エラー・ベクトルと呼ばれる。各レーンi={1 ...M}ごとに、ei内に正確に1ビット・エラーが存在し、そしてそれと同時に、mi=0であるか否かが決定される。この特性を有する唯1つの
Figure 2013539086

が見出されるときは、mi=0であるが、eiが正確に1ビット・エラーではない、
Figure 2013539086

と異なる他のiがあったとしても、オプションとして、常に、
Figure 2013539086

だけのために投票が生成される。これは、一般的なレーン・エラー・パターンのエラー検出能力をわずかに犠牲にするが、少しの曖昧さもなく、全ての単一ビット・エラーが検出されることを保証するという有利な効果を有する。換言すれば、単一ビット・エラーを示す候補エラー・ベクトルが存在するときは、常に、復号中に生成された諸レーン用の他の全ての可能な投票が取り消されるということである。
ここで、図1を参照して説明する。図1のメモリ・システム100に含まれる複数の完全バッファ型デュアル・インライン・メモリ・モジュール(DIMM)は、高速通信路を介して通信し、本明細書に開示するようなエラー検出コード・シンドロームの分析を使用する。メモリ・システム100は、処理システム102用の主メモリとして、ホスト処理システム内に組み入れることができる。メモリ・システム100に含まれる多数のDIMM103a〜103dは、ハブ装置104を備えており、通信路106又はカスケード相互接続バス(差動式の単方向性上流バス118及び差動式の単方向性下流バス116から構成される)を介して通信する。DIMM103a〜103dは、ダブル・データ・レート(DDR)動的ランダム・アクセス・メモリ(DRAM)装置でもよい、複数のメモリ装置109に加えて、当分野で公知の他のコンポーネント(例えば、抵抗、コンデンサ等)を含むことができる。DDRの任意のバージョン(例えば、DDR2、DDR3、DDR4等)をDIMM103a〜103d上に含めることができるので、メモリ装置109は、DRAM 109又はDDRxと呼ばれることもある。メモリ・コントローラ110は、DIMM 103aとインタフェースし、通信路106を介して、DIMM103a〜103dのうち任意のものを目標とするコマンド、アドレス及びデータ値を送信する。コマンド、アドレス及びデータ値は、フレームとしてフォーマット化され、高いデータ転送速度における送信のために直列化されることがある。一般に、ハブ装置104及びメモリ・コントローラ110は、バス・インタフェース装置と呼ばれることもある。
実施形態では、或るDIMMが上流DIMM又はメモリ・コントローラ110から或るフレームを受け取るとき、当該DIMMは、当該フレームをディジー・チェーン内の次のDIMMに再駆動する(例えば、DIMM103aはDIMM 103bに再駆動し、DIMM 103bはDIMM 103cに再駆動し、以下同様である)。それと同時に、当該DIMMは、当該フレームを復号してその内容を決定する。従って、各DIMMにおける再駆動及びコマンド復号は、並行に又は殆ど並行に生ずることができる。もし、当該コマンドが読み取り要求であれば、DIMM 103a〜103d及びメモリ・コントローラ110は、当該コマンドの内容を使用して、上流バス118上の読み取りデータ・トラフィックを追跡する。
DIMM 103a〜103d上のハブ装置104は、通信路106へのバス・インタフェース(例えば、ポート)を介して諸コマンドを受け取る。ハブ装置104上のバス・インタフェースは、幾つかあるコンポーネントのうち、特に受信機及び送信機を含む。実施形態では、各ハブ装置104は、通信路106を介して上流ハブ装置104又はメモリ・コントローラ110と通信するための上流バス・インタフェース及び通信路106を介して下流ハブ装置104と通信するための下流バス・インタフェースの両方を含む。また、各ハブ装置104は、カウンタ112、レジスタ114及びエラー処理論理(ERR LOGIC)120を含む。同様に、メモリ・コントローラ110も、カウンタ112、レジスタ114及びエラー処理論理120を含むことができる。カウンタ112は、エラー率を計算し且つ障害条件をレジスタ114内にセットするために、エラー処理論理120によって使用されるエラー・カウンタとして機能することができる。カウンタ112は、ソフトウェア、ファームウェア、ハードウェア又はその組み合わせの形態で実装することができる。特定の障害レーンを識別するためのシンドロームの詳細な処理は、処理システム102のシンドローム処理論理122にオフロードすることができる。
図1には、メモリ・コントローラ110を単一のメモリ装置上のハブ装置104に接続する単一のメモリ通信路106だけが示されているが、これらのモジュールから構成されるシステムは、2つ以上の個別のメモリ通信路を含むことができる。その場合、これらのメモリ通信路の各々は、所望のシステム機能性及び/又は性能を達成するために、(単一の通信路に複数のモジュールが装着されているときは)単独で動作されるか又は(2つ以上の通信路に複数のモジュールが装着されているときは)並列に動作される。さらに、通信路106内には、任意の数のレーンを含めることができる。例えば、下流バス116は、13ビット・レーンと、2スペア・レーンと、1クロック・レーンを含むことができる。それに対し、上流バス118は、20ビット・レーンと、2スペア・レーンと、1クロック・レーンを含むことができる。
8、12及び16転送フレームがサポートされるように(実施形態では、13ビット・レーンが各転送内に含まれる)、下流CRCの実施形態が選択/適用される。この下流CRCは、任意のレーン障害、任意の転送障害及び最大5ビットのランダム・エラーを検出する。これに加えて、下流CRCエラーが検出される場合は、その下流フレームの内容が無視され、そして障害情報レジスタ(FIR)ビットがレジスタ114内にセットされる。FIRは、ハブ装置104内で検出される障害に関する情報を格納するための、アーキテクチャで定義された手段である。メモリ・コントローラ110及び/又は他のシステム要素は、FIRを照会することにより、どのようなアクションを実行する必要があるか(もしあれば)を決定することができる。システム100がイネーブルされている場合、セットされているFIRビットに応答して、エラー回復状態に入ることができる。検査ビット用の「標準」ロケーションは、コードワードの先頭又は末尾にある。下流コードの実施形態は、検査ビット位置が「非標準」ロケーションにあるように設計されている。この非標準ロケーションが望ましいのは、プロトコルがどのように設計されているかという問題と関係するからである。さらに、検査ビットを標準の位置に配置した後、これらの検査ビットをあちこち移動させると、コードの重要な特性(例えば、全レーン障害検出等)が破壊されることがある。さらに、全てのロケーションがCRC検出を提供するのに適しているとは限らない。本明細書に開示する典型的な下流フレーム・フォーマットは、検査ビット位置の非標準ロケーションを使用する。
最大20ビット・レーンが最大8転送についてカバーされるように、上流CRCが選択/適用される。この上流CRCは、任意のレーン障害、任意の転送障害(エスケープ率は2**(−16))及び最大4ビットのランダム・エラーを検出する。さらに、全ての上流ハブ装置104は、当該ハブ装置104を通過する際に上流CRCデータをモニタすることにより、上流CRCエラーを検出する。任意のエラーが検出されると、当該ハブ装置104は、全ての読み取りトラフィックを中断し、ポイゾンされた(poisoned)CRCを転送し、FIRビットをセットし、エラー回復状態に入る。
実施形態では、下流CRC(エラー検出)コードは、13レーン×16ビート(最大)フレーム・フォーマット上で使用される。このCRCコードは、任意のレーン障害、任意の転送障害及び最大5ビットのランダム・エラーを検出することができる。特に、ランダムなサイレント・エラー率は、ほぼ2のマイナス17乗(〜2**(−17))である。
このCRC多項式の実施形態は、次の通りである。
Figure 2013539086

これは、(他のゼロのうち)連続的な5つのゼロを有するBCH(Bose Chaudhuri Hocquenghem)コードである。この典型的なコードは、最小距離6を有する。基本コードは、実際には17ビットを必要とするに過ぎないから、適切な長さを与えるために追加ビットが人為的に加えられている。
図2は、本明細書に開示する通信路CRCの実施形態を使用する、下流の8転送フレームを示す。図3は、本明細書に開示する通信路CRCの実施形態を使用する、下流の12転送フレームを示す。同様に、図4は、本明細書に開示する通信路CRCの実施形態を使用する、下流の16転送フレームを示す。図2〜図4に示すように、CRCビット位置は、次の通りである。156、157、158、159、169、170、171、172、182、183、184、185、186、195、196、197、198及び199。一般的なパリティ検査行列を計算した後に、前述の位置におけるCRCビットを計算するのに適した行列を得るために、ガウス消去法(Gaussian elimination)が使用された。CRCの符号化及び復号化の両方のために、標準的なシフトレジスタの実装を使用することができるが、高速バスについては、排他論理和を使用する並列アプローチが好ましい。エラー処理論理120内のCRC論理を再使用するために、CRCは、最長のフレーム・サイズについて定義される。16転送フレームの場合、最長のフレーム・サイズは、208ビットである。全ての208ビットを使用するとは限らない任意のフレームは、単に全ての未使用ビットをゼロにセットする。
基本的なCRCアルゴリズムの実施形態は、CRC検査ビットを符号化し、フレーム・プロトコルに従って、これらのCRC検査ビットをバスを介して送信する。当該データが当該バスの他端(例えば、図1のハブ装置104内)にあるチェッカによって受け取られた後、新しい又は再生成された1組のCRC検査ビットが計算される。次に、シンドローム・ベクトルを形成するために、前記受け取られたCRC検査ビット及び前記再生成されたCRC検査ビットが比較(排他論理和)される。もし、このシンドロームがビット単位の0ベクトルであれば、当該データの送信中にエラーが生じなかったと仮定される。任意の非ゼロ・シンドロームは、エラーが生じたことを示す。この実装は、標準的なCRCと同様に、シンドロームの調査による直接的なエラー分離をサポートしない。図1のハブ装置104は、下流CRCエラーを検出するとき、その下流フレームの全ての内容を無視し、適切なFIRビットをセットし、ポイゾンし、障害のあるCRCを転送し、そしてイネーブルされていることを条件として、エラー回復状態に入る。
図1のカウンタ112は、各受信機リンクごとに、CRCエラー率を計算するための構成可能なカウンタを含む。また、図1のカウンタ112は、各信号レーンごとに、各CRCシンドロームの分析結果を記録するためのエラー・カウンタを含むことができる。図1のエラー処理論理120内にあるエラー率論理は、各実行時間、メモリ通信路フレームごとにタイマを増分し、またカウンタ112を使用して、検出された任意の非ポイゾンCRCエラーをカウントする。前述の下流のケースと類似する態様で、可能な障害レーンを決定するために、障害のある各CRCシンドロームがシンドローム処理論理122によって分析される。その結果は、これらの障害が存在し得るレーンに投票することにより、当該論理によって通信される。CRCは、或るフレーム内の全ての単一ビット・エラーについてその障害レーンを一意的に識別し且つ統計的に有意な数の障害についてのランダムなレーン障害の間にその障害レーンを正確に識別するのに十分に強力である。CRCエラー訂正は、完全にランダムなレーン・エラーについては一意的なエラー検出を保証するには十分に強力ではないので、複数の障害候補が識別されることがあり得る。カウンタ112内のレーン・エラー・カウンタは、それらのレーンが障害候補として識別される(当該レーンに投票が行われる)ごとに増分する。メモリ通信路106が正常に動作しているとき、カウンタ112内の全てのレーン・エラー・カウンタは、CRCエラー閾値を超過していないので、周期的にクリアされるであろう。メモリ通信路106が再初期化によって訂正することができない間欠エラーを発生する場合、カウンタ112内のCRCエラー・カウンタは、その構成可能な閾値を超えるであろう。この時点で、カウンタ112内の全てのレーン・エラー・カウンタがフリーズし、そしてアテンションを要求するために、FIRビットがレジスタ114にセットされるであろう。
シンドローム処理論理122は、カウンタ112内のレーン・エラー・カウンタを読み取り且つどのレーン(もしあれば)を修復すべきであるかを決定することにより、前記アテンション要求をサービスすることができる。各CRCエラーについて複数のレーン障害候補が識別されることがあるが、エラー・カウンタが閾値を超えるのに十分なCRCシンドローム分析結果を蓄積したときは、最も頻繁に障害を起こしているレーンの明らかな統計的指標が存在するであろう。もし、識別された障害を修復するためにスペア・レーンが使用可能であれば、処理システム102は、障害レーンを非活動化するコマンドを発行することにより、前記間欠障害をハード障害に変更することができる。このハード障害は、メモリ・コントローラ110及び/又はハブ装置104によって自動的に起動される後続の再初期化及び修復シーケンスによって検出し且つ訂正することができる。
実施形態では、通信路106内の各受信機は、1つの障害CRCシンドロームの結果を記録するための、レジスタ114内の専用トラップ・レジスタを含む。かかるトラップ・レジスタは、検出された最初のCRCエラーを記録するか又は検出された最新のCRCエラーを連続的に更新するように構成することができる。新しいエラーが捕捉されるとき、有効ビットがトラップ・レジスタ内にセットされ、そしてトラップ・レジスタが処理システム102によって読み取られるとき、有効ビットが自動的にリセットされる。
実施形態では、1つのレーンの投票が他のレーンの投票を著しく上回らなければ、複数のレーンのうち1つのレーンが選択され且つ修復される。次に、新しいエラー率がモニタされる。もし、(例えば、閾値内で)修復後の新しいエラー率が以前のエラー率よりも著しく良くなければ、最初の修復がバックオフされ(元に戻され)、そして他のレーンが選択され且つ修復される。この修復及びバックオフの処理は、新しいエラー率が以前のエラー率よりも著しく良くなるまで、継続することができる。実施形態では、2つ以上のレーン修復が許容されるならば、修復のために上位の候補から2つ以上のレーンが選択される。このようにして、複数の修復を実行することができる。
図5は、本明細書に開示する通信路CRCの実施形態を使用する、上流の8転送フレームを示す。その上流CRCは、8転送フレーム・フォーマット並びにそのCRC及びエラー検査ビット番号について、次のように説明される。このコードは、20レーン×8ビート・フレーム・フォーマットについて使用することが意図される。このコードは、任意のレーン障害、任意の転送障害(エスケープ率は2**(−16))及び最大4ビットのランダム・エラーを検出することができる、
実施形態では、上流CRC多項式は、次の通りである。
Figure 2013539086

これは、(他のゼロのうち)連続的な4つのゼロを有するBCHコードである。従って、このコードは、最小距離5を有する。下流フォーマット用のこのコードの多項式は、上流フォーマット用のコードに1+xを乗算することにより得られた。図5に示されるようなCRCビット位置は、144、145、146、147、148、149、150、151、152、153、154、155、156、157、158及び159である。
典型的なCRCアルゴリズムは、CRC検査ビットを符号化し、フレーム・プロトコルに従って、これらのCRC検査ビットをバスを介して送信することを含む。当該データが当該バスの他端(例えば、図1のハブ装置104内)にあるチェッカによって受け取られた後、新しい又は再生成された1組のCRC検査ビットが計算される。次に、シンドローム・ベクトルを形成するために、前記受け取られたCRC検査ビット及び前記再生成されたCRC検査ビットが比較(排他論理和)される。もし、このシンドロームがビット単位の0ベクトルであれば、当該データの送信中にエラーが生じなかったと仮定される。任意の非ゼロ・シンドロームは、エラーが生じたことを示す。この実装は、標準的なCRCと同様に、シンドロームの調査による直接的なエラー分離をサポートしない。
この説明は、特定の数のレーン及び転送を有する下流フレーム及び上流フレーム、特定の最大数の単一ビット・エラーのためのエラー検出コード、レーン・エラー及び潜在的な転送エラーに焦点を合わせているが、他のパラメーターのためのエラー検出コードを設計することも可能である。本明細書に開示する技術は、エラー検出コードを使用する種々の通信バスに適用することができ、メモリ・システムへの適用に制限されない。
実施形態では、ハブ装置104は、分岐接続又は2地点間バス構造(さらに、かかるバス構造は1つ以上の追加のハブ装置に対するカスケード接続を含むことができる)を通して、図1のメモリ・コントローラ110に接続することができる。メモリ・アクセス要求は、メモリ・コントローラ110からバス構造(例えば、メモリ・バス)を通して選択されたハブ装置104に送信される。ハブ装置104は、これらのメモリ・アクセス要求を受け取ることに応答してこれを変換することにより、ハブ装置104からの書き込みデータを格納するか又は読み取りデータをハブ装置104に供給するようにメモリ装置109を制御する。読み取りデータは1つ以上の通信フレームへ符号化され、メモリ・バスを通してメモリ・コントローラ110に送信される。
代替実施形態では、メモリ・コントローラ110は、これを1つ以上のプロセッサ・チップ及びサポート用論理と統合して、1つ以上のプロセッサ及び/又はサポート用論理を搭載したマルチチップ・キャリア内に含まれる、個別のチップ(一般に「ノースブリッジ」チップと呼ばれるもの)内にパッケージ化するか、又はアプリケーション/環境と最も良く適合する種々の代替形式でパッケージ化することができる。これらの解決策のうち任意のものは、1つ以上のハブ・チップ及び/又はメモリ装置に接続するために、1つ以上の狭い/高速リンクを使用してもよいし、そのようなリンクを使用しなくてもよい。
図6は、シンドローム分析を使用して障害バス・レーンを検出するためのプロセス600を示す。ブロック602では、シンドローム処理論理122は、バス(例えば、図1の上流バス118)を介して送信された複数のフレーム用のシンドロームを受け取る。各フレームは、図2〜図5に示すように、レーンごとに複数のビット転送を含む。これらのシンドロームは、バス・インタフェース装置(例えば、メモリ・コントローラ110又はハブ装置104)からのトラップされた値とすることができる。これらのシンドロームは、図1のレジスタ114内にトラップすることができ、そしてエラー条件を分離するための詳細なシンドローム分析を開始すべき閾値をカウンタ112が超えたことをエラー検出論理120が決定するとき、障害指示がセットされる。
ブロック604では、シンドローム処理論理122は、各レーンが障害レーンであるという仮定の下に、これらのシンドロームをエラー・ベクトルに復号する。これらのエラー・ベクトルは、或るエラー条件に寄与するであろう特定のシンドローム・ビットの組み合わせを選択する。同じシンドローム・ビットが複数のエラー・ベクトル計算に関係することがあり得るので、全ての可能なエラーの組み合わせについて当該エラーを単一レーンに分離することは可能ではないことがある。
ブロック606では、シンドローム処理論理122は、複数のフレームのうち1つのフレームからのエラー・ベクトル内に単一ビット障害を有する唯1つのレーンを復号することに応答して、不良レーンを識別する。また、シンドローム処理論理122は、これらのシンドローム用の検証ビットが、これらのシンドロームから復号されたエラー・ベクトルに関して一致するか否かを決定することができる。なお、これらの検証ビットは、エラー検出コード内にある程度の冗長性を提供し、前記不良レーンに投票するためにエラー・ベクトルと組み合わせて使用することができる。シンドローム処理論理122は、前記単一ビット障害を有する唯1つのレーンを復号することに応答して、当該単一ビット障害に対する100%のエラー識別精度を保証するために、他の全てのレーンのための投票をクリアすることができる。
ブロック608では、シンドローム処理論理122は、複数の単一ビット障害が存在するという決定に応答して、本明細書に開示する投票プロセスの実施形態を使用することにより、エラー・ベクトルが複数のフレームにわたる或るエラーを一貫して示す場合には、不良レーンを識別する。実施形態では、シンドローム処理論理122は、或るエラーが一貫して示されるか否かを決定するために、受け取られた投票の数を比較する。この比較は、より少ない投票数を有するレーンに対するより多い投票数を有するレーンの比率を計算した後、当該計算された比率を比率閾値と比較することを含むことができる。例えば、或るレーンが示す障害頻度が他のレーンが示す障害頻度よりも4倍以上大きければ、当該レーンを不良レーンとして宣言することができる。この比較は、統計的に有意なサンプル・セットが使用されることを保証するために、所定数のシンドロームが分析された後に、これを行うことができる。実施形態では、走行カウンタは、不良レーンを識別し且つ修正アクション(例えば、バス・インタフェース装置のリセット、スペア・レーンの使用又はバス・レーンのリトレーニング)を開始した後にリセットされる。他の実施形態では、走行カウンタは、指定された期間の後にリセットされる。
請求項に記載された全ての手段又はステップ+機能要素に対応するフレーム、材料、行為及びそれらの均等物は、請求項に明示的に記載された他の要素と組み合わせてその機能を実施するための任意のフレーム、材料又は行為を含むことが意図される。本発明に関する記述は、例示及び説明を目的として与えられたものであり、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、本発明の範囲及び精神から逸脱することなく、多くの修正及び変形を施し得ることが明らかであろう。実施形態は、本発明の原理及び実際の応用を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
本発明の諸能力は、ソフトウェア、ファームウェア、ハードウェア又はそれらの組み合わせの形態で実装することができる。
当業者には明らかなように、本発明の諸側面は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明の諸側面は、完全にハードウェアの実施形態、(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)完全にソフトウェアの実施形態、又はソフトウェア及びハードウェア側面を組み合わせた実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と称することができる。さらに、本発明の諸側面は、コンピュータ可読プログラム・コードを1つ以上のコンピュータ可読媒体上に具体化したコンピュータ・プログラムの形式を取ることができる。
図1のシンドローム処理論理122を実行する諸命令を格納するために、1つ以上のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体システム、装置又はこれらの任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体の特定の例は、1つ以上の線を有する電気接続、ポータブル・コンピュータ用のフレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブルのコンパクト・ディスクを使った読み出し専用メモリ(CD−ROM)、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせとすることができる。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持するか又は格納することができる、任意の媒体とすることができる。
コンピュータ可読信号媒体は、伝搬されるデータ信号の形式を有することもできるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ使用可能プログラム・コードを具体化することができる。そのような伝搬信号は、電磁気、光学又はその任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない任意のコンピュータ可読媒体であって、命令実行システム等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し又は移送することができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF又はこれらの任意の適切な組み合わせを含む、適切な任意の媒体を使用して送信することができる。
本発明の諸側面に係る動作を実施するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語及び「C」プログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。かかるプログラム・コードは、完全にユーザのコンピュータ上で、部分的にはユーザのコンピュータ上で、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行可能であり、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行可能であり、或いは遠隔コンピュータ又はサーバ上で完全に実行可能である。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を(例えば、インターネット・サービス・プロバイダを使用するインターネットを通して)外部コンピュータに行うことができる。
以上では、本発明の実施形態に従った方法、装置(システム)及びコンピュータ・プログラムのフローチャート及び/又はブロック図を参照して、本発明の諸側面を説明した。この点に関し、フローチャート及び/又はブロック図の各ブロック、並びにフローチャート及び/又はブロック図の諸ブロックの組み合わせは、諸コンピュータ・プログラム命令によって実装することができることを理解されたい。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、前記コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ上で実行される諸命令が、前記フローチャート又はブロック図の諸ブロックで指定された機能/行為を実装するための手段を作成することを目的として、一のマシンを生産することができる。また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、前記コンピュータ可読媒体内に格納された諸命令が、前記フローチャート及び/又はブロック図の諸ブロックで指定された機能/行為を実装する命令手段を含む一の製品を生産することを目的として、コンピュータ又は他のプログラム可能なデータ処理装置に対し特定の態様で機能するように指示することができる。
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、前記コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、前記フローチャート及び/又はブロック図の諸ブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装方法を生成するように前記コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で一連の動作ステップを実行させることができる。
諸図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令から成る、モジュール、セグメント又はコード部分を表すことがある点に留意されたい。また、幾つかの代替的実装では、ブロック内に表記された機能を図面に示した順序とは異なる順序で実施することができる点にも留意されたい。例えば、特定の機能性に依存して、連続的に示した2つのブロックを実質的に並列に実施したり、これらのブロックを反対の順序で実施することができる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる点にも留意されたい。
添付図面は、1例であるに過ぎない。本発明の精神から逸脱することなく、これらの図面又はそこに記載された諸ステップ(諸動作)に対し多くの変形を施すことができる。例えば、これらのステップを異なる順序で行ったり、諸ステップを追加、除去又は修正することができる。これらの変形の全ては、本発明の範囲に属するものと考えられる。
100・・・メモリ・システム
102・・・処理システム
103a〜103d・・・デュアル・インライン・メモリ・モジュール
104・・・ハブ装置
106・・・メモリ通信路
109・・・メモリ装置
110・・・メモリ・コントローラ
112・・・カウンタ
114・・・レジスタ
116・・・単方向性下流バス
118・・・単方向性上流バス
120・・・エラー処理論理
122・・・シンドローム処理論理

Claims (21)

  1. バス障害を検出するためのコンピュータによって実装される方法であって、
    (a)エラー検出コードの複数のシンドロームを受け取るステップを含み、
    前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、前記バスを介して送信された複数のフレームに関連しており、
    (b)前記シンドロームの各々ごとに、前記レーンの各々について、
    (b1)当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力するステップと、
    (b2)前記復号結果が有効な復号であるか否かを決定するステップと、
    (b3)前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票するステップを含み、
    (c)前記投票に応答して、障害レーンを識別するステップをさらに含み、
    前記障害レーンが、前記バス上の少なくとも1つの他のレーンよりも多い投票を有することによって特徴づけられる、方法。
  2. 前記ステップ(b1)が、
    当該レーン用の候補エラー・ベクトルを生成するステップと、
    単一ビット・エラーを示す前記候補エラー・ベクトルに応答して、当該シンドロームを復号することによって生成された他のレーン用の投票を取り消すステップを含む、請求項1に記載の方法。
  3. 前記障害レーンが、前記バス上の他の任意のレーンと少なくとも同数の投票を有することにより特徴づけられる、請求項1に記載の方法。
  4. 前記レーンの各々が、値を格納する関連する走行カウンタを有し、
    前記ステップ(b3)が、当該レーンに関連する走行カウンタを増分するステップを含み、
    前記ステップ(c)が、前記障害レーンを選択するために複数の前記走行カウンタ内の値を比較するステップを含む、請求項1に記載の方法。
  5. 前記比較するステップが、より低い走行カウンタ値に対するより高い走行カウンタ値の比率を計算するステップを含み、前記ステップ(c)が、前記障害レーンを選択するために前記計算された比率を比率閾値と比較するステップをさらに含む、請求項4に記載の方法。
  6. 前記複数のシンドロームのうち指定された数のシンドロームが受け取られた後に、前記ステップ(c)が実行される、請求項1に記載の方法。
  7. 前記ステップ(b1)が、前記複数のシンドロームのサブセットについて実行され且つ候補エラー・ベクトルを生成するステップを含み、前記複数のシンドロームのうち前記サブセット内に存在しないシンドロームが、前記候補エラー・ベクトルをクロス検査するために前記ステップ(b1)によって使用される、請求項1に記載の方法。
  8. 前記障害レーンを識別し且つ修正アクションを開始することに応答して、前記投票がリセットされる、請求項1に記載の方法。
  9. 指定された期間の後に、前記投票がリセットされる、請求項1に記載の方法。
  10. バス障害を検出するためのシステムであって、
    前記バスを介して送信された複数のフレーム用の複数のシンドロームを受け取り且つ当該複数のシンドロームをトラップするように構成されたバス・インタフェース装置を備え、
    各フレームは、各レーンごとに複数のビット転送を含んでおり、
    前記バス・インタフェース装置と通信するシンドローム処理論理をさらに備え、
    前記シンドローム処理論理が、
    (a)エラー検出コードの複数のシンドロームを受け取る動作を実行するように構成され、
    前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、前記バスを介して送信された複数のフレームに関連しており、
    (b)前記シンドロームの各々ごとに、前記レーンの各々について、
    (b1)当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力する動作と、
    (b2)前記復号結果が有効な復号であるか否かを決定する動作と、
    (b3)前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票する動作を実行するように構成され、
    (c)前記投票に応答して、障害レーンを識別する動作を実行するようにさらに構成され、
    前記障害レーンが、前記バス上の少なくとも1つの他のレーンよりも多い投票を有することによって特徴づけられる、システム。
  11. 前記動作(b1)が、
    当該レーン用の候補エラー・ベクトルを生成する動作と、
    単一ビット・エラーを示す前記候補エラー・ベクトルに応答して、当該シンドロームを復号することによって生成された他のレーン用の投票を取り消す動作を含む、請求項10に記載のシステム。
  12. 前記障害レーンが、前記バス上の他の任意のレーンと少なくとも同数の投票を有することにより特徴づけられる、請求項10に記載のシステム。
  13. 前記レーンの各々が、値を格納する関連する走行カウンタを有し、
    前記動作(b3)が、当該レーンに関連する走行カウンタを増分する動作を含み、
    前記動作(c)が、前記障害レーンを選択するために複数の前記走行カウンタ内の値を比較する動作を含む、請求項10に記載のシステム。
  14. 前記比較する動作が、より低い走行カウンタ値に対するより高い走行カウンタ値の比率を計算する動作を含み、前記動作(c)が、前記障害レーンを選択するために前記計算された比率を比率閾値と比較する動作をさらに含む、請求項13に記載のシステム。
  15. 前記複数のシンドロームのうち指定された数のシンドロームが受け取られた後に、前記動作(c)が実行される、請求項10に記載のシステム。
  16. 前記動作(b1)が、前記複数のシンドロームのサブセットについて実行され且つ候補エラー・ベクトルを生成する動作を含み、前記複数のシンドロームのうち前記サブセット内に存在しないシンドロームが、前記候補エラー・ベクトルをクロス検査するために前記動作(b1)によって使用される、請求項10に記載のシステム。
  17. 前記障害レーンを識別し且つ修正アクションを開始することに応答して、前記投票がリセットされる、請求項10に記載のシステム。
  18. 指定された期間の後に、前記投票がリセットされる、請求項10に記載のシステム。
  19. 前記バス・インタフェース装置が、メモリ・システム内のハブ装置である、請求項10に記載のシステム。
  20. 前記バス・インタフェース装置が、メモリ・システム内のメモリ・コントローラである、請求項10に記載のシステム。
  21. 請求項1ないし請求項8の何れか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2013515811A 2010-06-24 2011-06-08 バス障害を検出するための方法、システム及びコンピュータ・プログラム Expired - Fee Related JP5623635B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/822,498 US8566682B2 (en) 2010-06-24 2010-06-24 Failing bus lane detection using syndrome analysis
US12/822,498 2010-06-24
PCT/EP2011/059533 WO2011160956A1 (en) 2010-06-24 2011-06-08 Failing bus lane detection using syndrome analysis

Publications (3)

Publication Number Publication Date
JP2013539086A true JP2013539086A (ja) 2013-10-17
JP2013539086A5 JP2013539086A5 (ja) 2014-09-04
JP5623635B2 JP5623635B2 (ja) 2014-11-12

Family

ID=44588269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013515811A Expired - Fee Related JP5623635B2 (ja) 2010-06-24 2011-06-08 バス障害を検出するための方法、システム及びコンピュータ・プログラム

Country Status (5)

Country Link
US (1) US8566682B2 (ja)
EP (1) EP2537095B1 (ja)
JP (1) JP5623635B2 (ja)
CN (1) CN102893262B (ja)
WO (1) WO2011160956A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9711240B2 (en) 2015-01-08 2017-07-18 Kabushiki Kaisha Toshiba Memory system

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862944B2 (en) * 2010-06-24 2014-10-14 International Business Machines Corporation Isolation of faulty links in a transmission medium
US8681839B2 (en) 2010-10-27 2014-03-25 International Business Machines Corporation Calibration of multiple parallel data communications lines for high skew conditions
US8767531B2 (en) 2010-10-27 2014-07-01 International Business Machines Corporation Dynamic fault detection and repair in a data communications mechanism
WO2012080405A1 (de) * 2010-12-15 2012-06-21 Hirschmann Automation And Control Gmbh Aderbruch-diagnose
US8898504B2 (en) 2011-12-14 2014-11-25 International Business Machines Corporation Parallel data communications mechanism having reduced power continuously calibrated lines
US9411750B2 (en) 2012-07-30 2016-08-09 International Business Machines Corporation Efficient calibration of a low power parallel data communications channel
DE102015218882A1 (de) * 2015-09-30 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
US9474034B1 (en) 2015-11-30 2016-10-18 International Business Machines Corporation Power reduction in a parallel data communications interface using clock resynchronization
US10666540B2 (en) * 2017-07-17 2020-05-26 International Business Machines Corporation Dynamic time-domain reflectometry analysis for field replaceable unit isolation in a running system
KR102499794B1 (ko) 2018-05-21 2023-02-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
DE102018115100A1 (de) * 2018-06-22 2019-12-24 Krohne Messtechnik Gmbh Verfahren zur Fehlerbehandlung bei Buskommunikation und Buskommunikationssystem
WO2022132184A1 (en) 2020-12-20 2022-06-23 Intel Corporation System, method and apparatus for total storage encryption
US20230091969A1 (en) * 2021-09-23 2023-03-23 Intel Corporation Lane based normalized historical error counter view for faulty lane isolation and disambiguation of transient versus persistent errors
CN115346590A (zh) * 2022-08-12 2022-11-15 腾讯科技(深圳)有限公司 一种通道修复方法及相关装置
CN118890226B (zh) * 2024-10-08 2025-01-21 杭州艾力特数字科技有限公司 一种基于数据总线的空间声场数据传输系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007146515A2 (en) * 2006-06-08 2007-12-21 Dot Hill Systems Corporation Fault-isolating sas expander
US20080005706A1 (en) * 2006-06-30 2008-01-03 Debendra Das Sharma Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
US20080002590A1 (en) * 2006-06-30 2008-01-03 Tessil Thomas Memory agent with error hardware

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4360917A (en) 1979-02-07 1982-11-23 The Warner & Swasey Company Parity fault locating means
US4964129A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. Memory controller with error logging
US5010544A (en) 1989-01-09 1991-04-23 Wiltron Company Fault location operating system with loopback
US6024486A (en) 1996-06-05 2000-02-15 Compaq Computer Corporation Data error detection and correction
US6557121B1 (en) 1997-03-31 2003-04-29 International Business Machines Corporation Method and system for fault isolation for PCI bus errors
US7020076B1 (en) 1999-10-26 2006-03-28 California Institute Of Technology Fault-tolerant communication channel structures
US7027389B2 (en) 2000-12-11 2006-04-11 Cisco Technology, Inc. Fast failure detection using RTT time considerations on a non-retransmit medium
DE60131164T2 (de) 2001-09-10 2008-08-14 Alcatel Lucent Empfänger mit drei Entscheidungsschaltungen
US20040179527A1 (en) * 2003-03-10 2004-09-16 Cypher Robert E. Stripping packet routing prefixes in a computer system network
US7451362B2 (en) 2003-12-12 2008-11-11 Broadcom Corporation Method and system for onboard bit error rate (BER) estimation in a port bypass controller
JP2006072717A (ja) 2004-09-02 2006-03-16 Hitachi Ltd ディスクサブシステム
US7380161B2 (en) 2005-02-11 2008-05-27 International Business Machines Corporation Switching a defective signal line with a spare signal line without shutting down the computer system
US7412642B2 (en) 2005-03-09 2008-08-12 Sun Microsystems, Inc. System and method for tolerating communication lane failures
US7353443B2 (en) 2005-06-24 2008-04-01 Intel Corporation Providing high availability in a PCI-Express link in the presence of lane faults
JP2007150468A (ja) 2005-11-24 2007-06-14 Toshiba Corp ダイバーシチ受信装置
US7543190B2 (en) 2006-06-28 2009-06-02 Walker Don H System and method for detecting false positive information handling system device connection errors
US8201069B2 (en) 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US8082474B2 (en) 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007146515A2 (en) * 2006-06-08 2007-12-21 Dot Hill Systems Corporation Fault-isolating sas expander
US20080005706A1 (en) * 2006-06-30 2008-01-03 Debendra Das Sharma Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
US20080002590A1 (en) * 2006-06-30 2008-01-03 Tessil Thomas Memory agent with error hardware

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9711240B2 (en) 2015-01-08 2017-07-18 Kabushiki Kaisha Toshiba Memory system
US10347353B2 (en) 2015-01-08 2019-07-09 Toshiba Memory Corporation Memory system

Also Published As

Publication number Publication date
JP5623635B2 (ja) 2014-11-12
EP2537095B1 (en) 2013-05-29
US8566682B2 (en) 2013-10-22
US20110320921A1 (en) 2011-12-29
WO2011160956A1 (en) 2011-12-29
EP2537095A1 (en) 2012-12-26
CN102893262B (zh) 2015-08-26
CN102893262A (zh) 2013-01-23

Similar Documents

Publication Publication Date Title
JP5623635B2 (ja) バス障害を検出するための方法、システム及びコンピュータ・プログラム
TWI465897B (zh) 記憶體模組之錯誤檢查與校正系統以及方法
US8484529B2 (en) Error correction and detection in a redundant memory system
US8713387B2 (en) Channel marking for chip mark overflow and calibration errors
US8856620B2 (en) Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems
US7227797B2 (en) Hierarchical memory correction system and method
US8352806B2 (en) System to improve memory failure management and associated methods
US20180217894A1 (en) Memory module, memory system including the same, and error correcting method thereof
CN105122213A (zh) 用于数据存储系统中的错误检测和纠正的方法和装置
US20130191698A1 (en) Hierarchical channel marking in a memory system
WO2011160923A1 (en) Homogeneous memory channel recovery in a redundant memory system
US11372720B2 (en) Systems and methods for encoding metadata
US9513993B2 (en) Stale data detection in marked channel for scrub
WO2011160957A1 (en) Isolation of faulty links in a transmission medium
US20130191685A1 (en) Per-rank channel marking in a memory system
WO2016122515A1 (en) Erasure multi-checksum error correction code
JP5772192B2 (ja) 半導体装置、情報処理装置およびエラー検出方法
JP7634349B2 (ja) 以前に発生したエラー分析を介してエラー対応動作を選択するためのメモリシステム及びメモリシステムを含むデータ処理システム
US10740179B2 (en) Memory and method for operating the memory
US11880573B2 (en) Disk array device, disk array control device, and disk array control method
WO2016038673A1 (ja) 誤り訂正装置、誤り訂正方法、及び誤り訂正システム
KR102828487B1 (ko) 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140627

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140627

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140627

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140701

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140819

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140819

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140912

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140912

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140924

R150 Certificate of patent or registration of utility model

Ref document number: 5623635

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees