(57)【特許請求の範囲】
【請求項１】
バス障害を検出するためのコンピュータによって実装される方法であって、
エラー検出コードの複数のシンドロームを受け取るステップであって、前記エラー検出コードは、前記バスを介して送信された複数のフレームに関連付けられており、前記バスは、複数のレーンを含み且つ前記エラー検出コードによって保護され、前記複数のレーンの各々が、値を格納する関連付けられた走行カウンタを有する、前記受け取るステップと、
前記シンドロームの各々ごとに、前記レーンの各々について、
前記レーンが障害レーンであるという仮定の下に、前記シンドロームを復号することであって、前記シンドロームは、シングル・エラーの複数の可能な障害レーンを示し、前記復号することは復号結果を出力することである、前記復号すること、
前記復号結果が有効な復号であるか否かを決定すること、及び、
前記復号結果が有効な復号であるという決定に応答して、前記レーンに投票することであって、前記投票することは、前記レーンに関連付けられた走行カウンタを増分することを含み、前記増分が前記シングル・エラーの複数の可能な障害レーンのそれぞれについて繰り返される、前記投票すること
を実行するステップと、
前記投票に応答して、障害レーンを識別するステップであって、前記識別することは、前記障害レーンを選択するために、前記走行カウンタ内の値を互いに比較することを含み、前記障害レーンが、前記バス上の少なくとも１つの他のレーンよりも多い投票を有することによって特徴づけられる、前記識別するステップと
を含む、前記方法。
【請求項２】
前記復号することが、
前記レーン用の候補エラー・ベクトルを生成するステップと、
単一ビット・エラーを示す前記候補エラー・ベクトルに応答して、前記シンドロームを復号することによって生成された他のレーン用の投票を取り消すステップと
を含む、請求項１に記載の方法。
【請求項３】
前記障害レーンが、前記バス上の他の任意のレーンよりも多い投票を有することによって特徴づけられる、請求項１に記載の方法。
【請求項４】
前記比較することが、
より低い走行カウンタ値に対するより高い走行カウンタ値の比率を計算するステップ
を含み、
前記識別するステップが、
前記障害レーンを選択するために前記計算された比率を比率閾値と比較するステップ
をさらに含む、請求項１に記載の方法。
【請求項５】
前記複数のシンドロームのうちの指定された数のシンドロームが受け取られた後に、前記識別することが実行される、請求項１に記載の方法。
【請求項６】
前記復号することが、前記受け取られた複数のシンドロームのサブセットについて実行され、且つ候補エラー・ベクトルを生成することを含み、
前記受け取られた複数のシンドロームのうちの前記サブセット内に存在しないシンドロームが、前記候補エラー・ベクトルをクロス検査するために前記復号することによって使用される、
請求項１に記載の方法。
【請求項７】
前記障害レーンを識別し且つ修正アクションを開始することに応答して、前記投票がリセットされる、請求項１に記載の方法。
【請求項８】
指定された期間の後に、前記投票がリセットされる、請求項１に記載の方法。
【請求項９】
バス障害を検出するためのシステムであって、
前記バスを介して送信された複数のフレーム用の複数のシンドロームを受け取り且つ当該複数のシンドロームをトラップするように構成されたバス・インタフェース装置であって、前記バスは、複数のレーンを含み、各フレームは、各レーンごとに複数のビット転送を含む、前記バス・インタフェース装置と、
前記バス・インタフェース装置と通信するシンドローム処理論理と
を備えており、
前記シンドローム処理論理が、請求項１〜８のいずれか一項に記載の方法の各ステップを実行するように構成されている、
前記システム。
【請求項１０】
前記バス・インタフェース装置が、メモリ・システム内のハブ装置である、請求項９に記載のシステム。
【請求項１１】
前記バス・インタフェース装置が、メモリ・システム内のメモリ・コントローラである、請求項９に記載のシステム。
【請求項１２】
コンピュータに、請求項１〜８のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのメモリ・システムに係り、さらに詳細に説明すれば、シンドローム分析を使用して障害バス・レーン（failing bus lane）を検出することに係る。
【背景技術】
【０００２】
一般に、最近の高性能コンピュータ用の主メモリ・システムは、１つ以上の動的ランダム・アクセス・メモリ（ＤＲＡＭ）装置から構成される。これらのＤＲＡＭ装置は、１つ以上のメモリ制御要素を介して、１つ以上のプロセッサに接続される。コンピュータ・システムの総合性能は、プロセッサの性能／構造、メモリ・キャッシュ、入出力（Ｉ／Ｏ）サブシステム、メモリ制御機能の効率、主メモリ装置、メモリ相互接続インタフェースのタイプ及び構造を含む、コンピュータ構造の重要な各要素によって影響される。
【０００３】
産業界では、システム／サブシステムの設計及び／又は構造を改良することを通してコンピュータ・システム全体の性能及び密度を最大化するための改良された及び／又は革新的な解決策を提供するべく、広範囲な研究開発努力に対する投資が継続的に行われている。高可用性システムは、システム全体の信頼性に関係するさらなる挑戦を提示する。というのは、顧客が期待するのは、新しいコンピュータ・システムが平均故障間隔（ＭＴＢＦ）の点で既存のシステムよりも著しく優れているというだけではなく、追加の機能、増大した性能、増大したストレージ、より低い運転コスト等を提供するというものであるからである。メモリ・システム設計の挑戦をさらに困難にする顧客の他の要件には、アップグレードの容易さ、システム環境（例えば、スペース、電力、冷却等）への影響を低減すること等がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリ・システム・バスのようなバス内の障害レーンを検出するための１つのアプローチは、エラー訂正コード（ＥＣＣ）を使用することである。ＥＣＣは、多数の障害ビットを検出し且つ訂正することができるが、エラー検出コードよりも多い冗長ビットを必要とする。一般に、エラー検出コードは、エラーを検出することができるが、当該エラーの物理的な性質を完全に解決することができない。例えば、エラー検出コードは、障害レーン内の全ての可能なエラー・パターンについて当該障害レーンを完全に識別できないことがある。従って、エラー検出コードだけでは、エラーを特定の障害レーンに正確に分離できないことがある。障害レーンを検出するための他のアプローチは、レーン・シャドーイングを使用して、データのコピーをスペア・レーンを介して送信するというものである。しかし、レーン・シャドーイングは、任意の時点においてレーンのサブセットについてだけ機能するに過ぎないから、所与の障害レーン用の分析ウインドウの外部で生じるエラー・イベントを見逃すことがある。
【課題を解決するための手段】
【０００５】
本発明の第１の側面に従って、バス障害を検出するためのコンピュータによって実装される方法が提供される。本方法は、エラー検出コードの複数のシンドロームを受け取るステップを含む。前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、前記バスを介して送信された複数のフレームに関連する。本方法は、前記シンドロームの各々ごとに、前記レーンの各々について、当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力するステップと、前記復号結果が有効な復号であるか否かを決定するステップと、前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票するステップを含む。次に、前記投票に応答して、障害レーンが識別される。前記障害レーンは、前記バス上の少なくとも１つの他のレーンよりも多い投票を有することによって特徴づけられる。
【０００６】
本発明の第２の側面に従って、バス障害を検出するためのシステムが提供される。本システムは、前記バスを介して送信された複数のフレーム用のシンドロームを受け取り且つトラップするように構成されたバス・インタフェース装置を備える。各フレームは、各レーンごとに複数のビット転送を含む。本システムは、前記バス・インタフェース装置と通信するシンドローム処理論理をさらに備える。前記シンドローム処理論理は、エラー検出コードの複数のシンドロームを受け取る動作を実行するように構成される。前記エラー検出コードは、複数のレーンを含み且つ前記エラー検出コードによって保護される、前記バスを介して送信された複数のフレームに関連する。前記シンドローム処理論理は、前記シンドロームの各々ごとに、前記レーンの各々について、当該レーンが障害レーンであるという仮定の下に、当該シンドロームを復号して復号結果を出力する動作と、前記復号結果が有効な復号であるか否かを決定する動作と、前記復号結果が有効な復号であるという決定に応答して、当該レーンに投票する動作を実行するように構成される。前記投票に応答して、障害レーンが識別される。前記障害レーンは、前記バス上の少なくとも１つの他のレーンよりも多い投票を有することによって特徴づけられる。
【０００７】
本発明の第３の側面に従って、バス障害を検出するためのコンピュータ・プログラムが提供される。本コンピュータ・プログラムは、本発明の第１の側面に係る方法発明の各ステップをコンピュータに実行させるためのものである。
【０００８】
添付図面及び以下の詳細な説明を参照すれば、本発明に従った他のシステム、方法及び／又はコンピュータ・プログラムが、当業者にとって明白になるであろう。そのような追加のシステム、方法及び／又はコンピュータ・プログラムの全ては、本明細書の開示の範囲内に包含され、本発明の範囲内に包含され、請求項の記載によって保護されることが意図される。
【発明の効果】
【０００９】
本発明は、バスを介して転送される或るフレーム内で唯１つのビット障害が生じるような状況でエラー条件をモニタすることにより、障害レーンを分離する際の精度を向上させることができるという効果を奏する。例えば、或るフレーム内で唯１つのビット障害が検出されるケースでは、レーン障害識別における１００%の精度を達成することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態によって実装することができるカスケード相互接続メモリ・システムを示す図である。
【図２】下流の８転送フレームを示す図である。
【図３】下流の１２転送フレームを示す図である。
【図４】下流の１６転送フレームを示す図である。
【図５】上流の８転送フレームを示す図である。
【図６】シンドローム分析を使用して障害バス・レーンを検出するためのプロセスを示す図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態は、エラー検出コードを使用して保護される、バス内の或る障害レーンを検出する。当該障害レーンを統計的に識別するために、複数のカウンタ及びエラー検出コードの複数のシンドロームの分析を使用することができる。分析の結果、バス内のレーンの数と等しい数のエントリを有するビット・ベクトルが得られる。各レーンごとにカウンタがあり、当該カウンタは分析の結果で増分される。もし、特定のレーンについて、ビット・ベクトルがゼロに等しければ、当該レーン用のカウンタは放置される。さもなければ、当該レーン用のカウンタは増分される。
【００１２】
前記分析は、どの障害レーンがエラーの原因であるかということを完全に解決する代わりに、障害レーンについての複数の可能性を与える。従って、単一のシンドロームが分析されるとき、２つ以上のカウンタが増分されることがある。このプロセスは、新しい複数のシンドロームが受け取られるにつれて、複数回にわたって反復される。単一のシンドローム分析については、障害レーンを解決することは可能ではないかもしれないが、複数のシンドロームが分析され且つ複数のカウンタの蓄積された内容が得られるにつれて、障害レーンは、高い確率でより高いカウントを有することになるであろう。分析されるシンドロームの数が多くなるほど、分析結果の品質が向上する。バスを介して転送される或るフレーム内で唯１つのビット障害が生じるような状況でエラー条件をモニタすると、或る障害レーンを分離する際の精度を向上させることができる。例えば、或るフレーム内で唯１つのビット障害が検出されるケースでは、レーン障害識別における１００%の精度を達成することができるであろう。本明細書では、巡回冗長検査（ＣＲＣ）を参照して、前記分析を詳細に説明する。しかし、前記分析は、任意の線形エラー検出コードにも適用可能であり、ＣＲＣだけに制限されない。
【００１３】
線形エラー検出コードは、パリティ検査行列Ｈによって特徴づけられる。一般に、このコードは、マルチビット・シンボルにも適用可能であるが、説明の便宜上、このコードは、バイナリ・シンボルに作用するものと仮定する。パリティ検査行列Ｈ内の行の数（ｒ）は、このコード内の検査ビットの数と等しい。列の数は（ｎ）は、ｎ＝ｒ＋ｋと等しい。但し、ｋは、エラー検出コード内のペイロード・ビットの数である。
【００１４】
ｄを、ｋペイロード・ビットを表す列ベクトルとし、ｃを、これらのｋペイロード・ビットに関連するｒビットを表す列ベクトルとする。その場合、バスを介して送信される全ベクトルは、次の通りである。
【数１】
0005623635.tif 000002
但し、ｃ及びｄは、ｖを形成するように連結されている。検査ビットｃの位置はこのベクトルの上部にある必要はないし、検査ビットは隣接して配置する必要もない。ここで、この構成を仮定するのは、この説明の理解を容易にするために過ぎない。ペイロードｄが与えられると、Ｈｖ＝０となるように検査ビットｃが計算される。Ｈｖは、２を法とする行列／ベクトル乗算を使用して、行列Ｈをベクトルｖと乗算することを示す。その後、ベクトルｖは、通信路を介して送信され、その結果、ベクトルｖ上にエラーが加わることがある。このエラーは、ｎエントリを有するエラー・ベクトルｅによって表される。エラー・ベクトルｅのｎエントリは、エラーが存在しない場合は、複数のゼロを有し、エラーが存在する場合は、複数の１を有する。
【００１５】
バス内にＬレーンが存在し、そして各レーンがバスを介した或るフレームの送信の全体にわたってｎ／Ｌビットを搬送するものと仮定する。従って、ｎがＬによって割り切れることも仮定する。ベクトルｖは、Ｌ部分に分割することができる。その各部分は、次のように隣接する複数のビットを有する。
【数２】
0005623635.tif 000003
【００１６】
ｎ／Ｌビットを含むＬ部分の各々は、通信路を介して送信される。同様に、エラー・ベクトルｅは、次のように分割することができる。
【数３】
0005623635.tif 000004
【００１７】
データ・パターンｖ＋ｅが受け取られる場合、デコーダは、ベクトルｖに依存しない式、ｓ＝Ｈ（ｖ＋ｅ）＝０＋Ｈｅ＝Ｈｅ、を使用して、対応するシンドロームを計算する。もし、エラーがなかったならば（ｅ＝０）、シンドロームｓはゼロであり、当該フレームは良好であると見なされる。もし、ｓ＝Ｈｅがゼロに等しくなければ、エラーが検出されたことになり、通常は、再試行が要求されるであろう。
【００１８】
さらに、ｒ＞ｎ／Ｌであるものと仮定する。すなわち、このコード内の検査ビットｒの数が、所与のレーン内のビット数ｎ／Ｌよりも多いということである。行列Ｈは、Ｈ＝［Ｈ１Ｈ２ ．．．ＨＬ］として分割することができる。もし、レーンｉにのみ集中しているエラーが存在すれば(但し、ｅ＝［０．．．ｅｉ ．．．０ ０］であり、ｅｉは非ゼロである）、受け取られたシンドロームは、ｓ＝Ｈｉ ｅｉである。Ｈｉは、２つのセクションに分割することができる。第１のセクションＨｉ＿Ａは、ｎ／Ｌ行を含み、第２のセクションＨｉ＿Ｂは、残りの行を含む。この分割は、次に示す通りである。
【数４】
0005623635.tif 000005
同様に、シンドロームｓは、次のように分割することができる。
【数５】
0005623635.tif 000006
【００１９】
従って、Ｈｉ＿Ａは、次元（ｎ／Ｌ）×（ｎ／Ｌ）を有する正方行列であり、Ｈｉ＿Ｂは、次元（ｒ−ｎ／Ｌ）×（ｎ／Ｌ）を有する行列である。同様に、ｓ＿Ａは、ｎ／Ｌエントリを有し、ｓ＿Ｂは、ｒ−ｎ／Ｌエントリを有する。
【００２０】
もし、このコードが、Ｈｉ＿Ａが可逆行列であるようなものであれば、Ｈｉ＿Ａの逆数とｓ＿Ａの乗算結果は、ｅｉに等しい。これは、ｉｎｖ（Ｈｉ＿Ａ）ｓ＿Ａ＝ｅｉとして表すことができる。すなわち、当該レーンに影響するエラー・パターンｅｉを有効に回復するということである。留意すべきは、全てのｉについてＨｉ＿Ａが可逆であるという特性は、例えば、巡回コードを使用することによって得ることができ、そして或るレーン内の連続するビットが当該巡回コード内の連続するビットに対応することを保証する。巡回コードの幾つかの例は、クラスｏのＢＣＨコードである。前記エラー・パターンｅｉを回復した結果として、次の式（第２の等式）も当てはまる。
【数６】
0005623635.tif 000007
【００２１】
留意すべきは、この式が第１の等式を使用してマーカｍｉを追加的に定義するということである。式（１）は、障害バス・レーンを検出するための基礎である。もし、レーンｉが問題を有するレーンであれば、設計されたコードのＨ及びシンドロームｓのみに依存する、式（１）の左側のマーカｍｉは、ゼロに等しくなければならない。どのレーンに障害があるかは知られていないので、式（１）の左側は、全てのＬレーンについて計算される。但し、式（１）の左側を計算する間に、インデックスｉを１からＬまで変更させつつ、本質的に各レーンが障害レーンであるものと順々に仮定する。この計算がゼロに帰着したインデックスｉについては、関連するレーンが障害レーン候補として宣言され、分析ビット・ベクトル投票＿レーンのｉ番目のビットが１にセットされる。すなわち、投票＿レーン［ｉ］は、１にセットされる（本明細書では、これを「レーンｉに投票する」と称する）。この計算が非ゼロに帰着したインデックスｉについては、投票＿レーン［ｉ］は、０にセットされる（本明細書では、これを「レーンｉに投票しない」と称する）。留意すべきは、各レーンごとにシンドロームｓ＿Ａのサブセットを使用してエラー量ｅ＿ｉが計算され、その間に、残りのシンドローム・ビットｓ＿Ｂを使用して候補エラー・ベクトルのクロス検査が実行されるということである。もし、クロス検査が成功すれば、有効な復号信号が生成される。さもなければ、無効な復号信号が生成される。
【００２２】
１つのフレームに適用される前記手順の説明は、当分野で公知のバス・エラー訂正手順に対応しない。バス・エラー訂正手順では、各シンドロームの復号は、訂正不能エラー信号を生じるか、又はバスに適用されるとデータ破壊を除去するであろうと信じられる訂正を生じる。対照的に、前述の手順では、多数のフレームが処理された後にだけ障害レーンを検出することを目的として、各レーンが障害レーンであるという仮定の下に各シンドロームの復号を実行し、そして有効な復号が得られるならば、そのレーンは投票を受け取る。従って、前述の手順の実施形態を使用して、１つのフレームが処理されたときは、一意的な障害レーンが必ずしも識別されるとは限らない。
【００２３】
前述のように、実施形態に従って、各ビット・レーンごとに１つずつ設けられたカウンタは、障害レーンである関連するレーンの投票をカウントする。これらのカウンタは、複数のエラー検出（従ってシンドローム分析）イベントにわたって持続するから、これらのカウンタは「走行カウンタ」とも呼ばれる。ビット・ベクトル投票＿レーンは、各ビット・レーン用のカウンタを増分するために使用することができる。具体的には、ビット・ベクトル投票＿レーンの値が、これらのカウンタの現在値に加算される。唯１つのレーンについてマーカｍｉの計算結果がゼロになることがあるが、一般に、式（１）では、２つ以上のレーンについてマーカｍｉの計算結果がゼロになることがあり得る。このことは、対応するカウンタが増分されるであろうということを意味する。
【００２４】
もし、或るレーンが持続的なエラーを有するが、その実際のエラー・パターンがアクセス相互間で変化すれば、当該障害レーン用のカウンタは、他のレーン用のカウンタよりも多い増分を得る。複数のカウンタを追跡するハードウェア、ファームウェア又はソフトウェアは、これを使用することにより、或るカウンタが閾値に達したか否かを決定する。そうであれば、対応するレーンは、レーン・スペアリング用の良い候補である。
【００２５】
もし、エラー・パターンが単一ビット・エラーであれば、エラー検出コードが適切に設計されていることを条件として、少しの曖昧さもなく、障害レーンを正確に識別することができる。実施形態では、使用されるエラー検出コードは、少なくとも任意の２ビット・エラーを検出するという能力を有する。従って、任意の２つの単一ビット・エラーのシンドロームは、同じではあり得ない。単一ビット・エラーが存在する場合、２つ以上のレーンが単一ビット・エラーを有するｅｉを計算し、そして式（１）の計算の結果が同時にゼロになることはあり得ない。
【００２６】
代替実施形態では、式（１）の代わりに、式（２）及び（３）の２段階の計算を実行することができる。
【数７】
0005623635.tif 000008
但し、ｅｉは、レーンｉ用の候補エラー・ベクトルと呼ばれる。各レーンｉ＝｛１ ．．．Ｍ｝ごとに、ｅｉ内に正確に１ビット・エラーが存在し、そしてそれと同時に、ｍｉ＝０であるか否かが決定される。この特性を有する唯１つの
【数８】
0005623635.tif 000009
が見出されるときは、ｍｉ＝０であるが、ｅｉが正確に１ビット・エラーではない、
【数９】
0005623635.tif 000010
と異なる他のｉがあったとしても、オプションとして、常に、
【数１０】
0005623635.tif 000011
だけのために投票が生成される。これは、一般的なレーン・エラー・パターンのエラー検出能力をわずかに犠牲にするが、少しの曖昧さもなく、全ての単一ビット・エラーが検出されることを保証するという有利な効果を有する。換言すれば、単一ビット・エラーを示す候補エラー・ベクトルが存在するときは、常に、復号中に生成された諸レーン用の他の全ての可能な投票が取り消されるということである。
【００２７】
ここで、図１を参照して説明する。図１のメモリ・システム１００に含まれる複数の完全バッファ型デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）は、高速通信路を介して通信し、本明細書に開示するようなエラー検出コード・シンドロームの分析を使用する。メモリ・システム１００は、処理システム１０２用の主メモリとして、ホスト処理システム内に組み入れることができる。メモリ・システム１００に含まれる多数のＤＩＭＭ１０３ａ〜１０３ｄは、ハブ装置１０４を備えており、通信路１０６又はカスケード相互接続バス(差動式の単方向性上流バス１１８及び差動式の単方向性下流バス１１６から構成される）を介して通信する。ＤＩＭＭ１０３ａ〜１０３ｄは、ダブル・データ・レート（ＤＤＲ）動的ランダム・アクセス・メモリ（ＤＲＡＭ）装置でもよい、複数のメモリ装置１０９に加えて、当分野で公知の他のコンポーネント（例えば、抵抗、コンデンサ等）を含むことができる。ＤＤＲの任意のバージョン（例えば、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４等）をＤＩＭＭ１０３ａ〜１０３ｄ上に含めることができるので、メモリ装置１０９は、ＤＲＡＭ １０９又はＤＤＲｘと呼ばれることもある。メモリ・コントローラ１１０は、ＤＩＭＭ  １０３ａとインタフェースし、通信路１０６を介して、ＤＩＭＭ１０３ａ〜１０３ｄのうち任意のものを目標とするコマンド、アドレス及びデータ値を送信する。コマンド、アドレス及びデータ値は、フレームとしてフォーマット化され、高いデータ転送速度における送信のために直列化されることがある。一般に、ハブ装置１０４及びメモリ・コントローラ１１０は、バス・インタフェース装置と呼ばれることもある。
【００２８】
実施形態では、或るＤＩＭＭが上流ＤＩＭＭ又はメモリ・コントローラ１１０から或るフレームを受け取るとき、当該ＤＩＭＭは、当該フレームをディジー・チェーン内の次のＤＩＭＭに再駆動する（例えば、ＤＩＭＭ１０３ａはＤＩＭＭ １０３ｂに再駆動し、ＤＩＭＭ １０３ｂはＤＩＭＭ １０３ｃに再駆動し、以下同様である）。それと同時に、当該ＤＩＭＭは、当該フレームを復号してその内容を決定する。従って、各ＤＩＭＭにおける再駆動及びコマンド復号は、並行に又は殆ど並行に生ずることができる。もし、当該コマンドが読み取り要求であれば、ＤＩＭＭ １０３ａ〜１０３ｄ及びメモリ・コントローラ１１０は、当該コマンドの内容を使用して、上流バス１１８上の読み取りデータ・トラフィックを追跡する。
【００２９】
ＤＩＭＭ １０３ａ〜１０３ｄ上のハブ装置１０４は、通信路１０６へのバス・インタフェース（例えば、ポート）を介して諸コマンドを受け取る。ハブ装置１０４上のバス・インタフェースは、幾つかあるコンポーネントのうち、特に受信機及び送信機を含む。実施形態では、各ハブ装置１０４は、通信路１０６を介して上流ハブ装置１０４又はメモリ・コントローラ１１０と通信するための上流バス・インタフェース及び通信路１０６を介して下流ハブ装置１０４と通信するための下流バス・インタフェースの両方を含む。また、各ハブ装置１０４は、カウンタ１１２、レジスタ１１４及びエラー処理論理（ERR LOGIC）１２０を含む。同様に、メモリ・コントローラ１１０も、カウンタ１１２、レジスタ１１４及びエラー処理論理１２０を含むことができる。カウンタ１１２は、エラー率を計算し且つ障害条件をレジスタ１１４内にセットするために、エラー処理論理１２０によって使用されるエラー・カウンタとして機能することができる。カウンタ１１２は、ソフトウェア、ファームウェア、ハードウェア又はその組み合わせの形態で実装することができる。特定の障害レーンを識別するためのシンドロームの詳細な処理は、処理システム１０２のシンドローム処理論理１２２にオフロードすることができる。
【００３０】
図１には、メモリ・コントローラ１１０を単一のメモリ装置上のハブ装置１０４に接続する単一のメモリ通信路１０６だけが示されているが、これらのモジュールから構成されるシステムは、２つ以上の個別のメモリ通信路を含むことができる。その場合、これらのメモリ通信路の各々は、所望のシステム機能性及び／又は性能を達成するために、（単一の通信路に複数のモジュールが装着されているときは）単独で動作されるか又は（２つ以上の通信路に複数のモジュールが装着されているときは）並列に動作される。さらに、通信路１０６内には、任意の数のレーンを含めることができる。例えば、下流バス１１６は、１３ビット・レーンと、２スペア・レーンと、１クロック・レーンを含むことができる。それに対し、上流バス１１８は、２０ビット・レーンと、２スペア・レーンと、１クロック・レーンを含むことができる。
【００３１】
８、１２及び１６転送フレームがサポートされるように（実施形態では、１３ビット・レーンが各転送内に含まれる）、下流ＣＲＣの実施形態が選択／適用される。この下流ＣＲＣは、任意のレーン障害、任意の転送障害及び最大５ビットのランダム・エラーを検出する。これに加えて、下流ＣＲＣエラーが検出される場合は、その下流フレームの内容が無視され、そして障害情報レジスタ（ＦＩＲ）ビットがレジスタ１１４内にセットされる。ＦＩＲは、ハブ装置１０４内で検出される障害に関する情報を格納するための、アーキテクチャで定義された手段である。メモリ・コントローラ１１０及び／又は他のシステム要素は、ＦＩＲを照会することにより、どのようなアクションを実行する必要があるか（もしあれば）を決定することができる。システム１００がイネーブルされている場合、セットされているＦＩＲビットに応答して、エラー回復状態に入ることができる。検査ビット用の「標準」ロケーションは、コードワードの先頭又は末尾にある。下流コードの実施形態は、検査ビット位置が「非標準」ロケーションにあるように設計されている。この非標準ロケーションが望ましいのは、プロトコルがどのように設計されているかという問題と関係するからである。さらに、検査ビットを標準の位置に配置した後、これらの検査ビットをあちこち移動させると、コードの重要な特性（例えば、全レーン障害検出等）が破壊されることがある。さらに、全てのロケーションがＣＲＣ検出を提供するのに適しているとは限らない。本明細書に開示する典型的な下流フレーム・フォーマットは、検査ビット位置の非標準ロケーションを使用する。
【００３２】
最大２０ビット・レーンが最大８転送についてカバーされるように、上流ＣＲＣが選択／適用される。この上流ＣＲＣは、任意のレーン障害、任意の転送障害（エスケープ率は２**（−１６））及び最大４ビットのランダム・エラーを検出する。さらに、全ての上流ハブ装置１０４は、当該ハブ装置１０４を通過する際に上流ＣＲＣデータをモニタすることにより、上流ＣＲＣエラーを検出する。任意のエラーが検出されると、当該ハブ装置１０４は、全ての読み取りトラフィックを中断し、ポイゾンされた（poisoned）ＣＲＣを転送し、ＦＩＲビットをセットし、エラー回復状態に入る。
【００３３】
実施形態では、下流ＣＲＣ（エラー検出）コードは、１３レーン×１６ビート（最大）フレーム・フォーマット上で使用される。このＣＲＣコードは、任意のレーン障害、任意の転送障害及び最大５ビットのランダム・エラーを検出することができる。特に、ランダムなサイレント・エラー率は、ほぼ２のマイナス１７乗（〜２**（−１７））である。
【００３４】
このＣＲＣ多項式の実施形態は、次の通りである。
【数１１】
0005623635.tif 000012
これは、（他のゼロのうち）連続的な５つのゼロを有するＢＣＨ（Bose Chaudhuri Hocquenghem）コードである。この典型的なコードは、最小距離６を有する。基本コードは、実際には１７ビットを必要とするに過ぎないから、適切な長さを与えるために追加ビットが人為的に加えられている。
【００３５】
図２は、本明細書に開示する通信路ＣＲＣの実施形態を使用する、下流の８転送フレームを示す。図３は、本明細書に開示する通信路ＣＲＣの実施形態を使用する、下流の１２転送フレームを示す。同様に、図４は、本明細書に開示する通信路ＣＲＣの実施形態を使用する、下流の１６転送フレームを示す。図２〜図４に示すように、ＣＲＣビット位置は、次の通りである。１５６、１５７、１５８、１５９、１６９、１７０、１７１、１７２、１８２、１８３、１８４、１８５、１８６、１９５、１９６、１９７、１９８及び１９９。一般的なパリティ検査行列を計算した後に、前述の位置におけるＣＲＣビットを計算するのに適した行列を得るために、ガウス消去法（Gaussian elimination）が使用された。ＣＲＣの符号化及び復号化の両方のために、標準的なシフトレジスタの実装を使用することができるが、高速バスについては、排他論理和を使用する並列アプローチが好ましい。エラー処理論理１２０内のＣＲＣ論理を再使用するために、ＣＲＣは、最長のフレーム・サイズについて定義される。１６転送フレームの場合、最長のフレーム・サイズは、２０８ビットである。全ての２０８ビットを使用するとは限らない任意のフレームは、単に全ての未使用ビットをゼロにセットする。
【００３６】
基本的なＣＲＣアルゴリズムの実施形態は、ＣＲＣ検査ビットを符号化し、フレーム・プロトコルに従って、これらのＣＲＣ検査ビットをバスを介して送信する。当該データが当該バスの他端（例えば、図１のハブ装置１０４内）にあるチェッカによって受け取られた後、新しい又は再生成された１組のＣＲＣ検査ビットが計算される。次に、シンドローム・ベクトルを形成するために、前記受け取られたＣＲＣ検査ビット及び前記再生成されたＣＲＣ検査ビットが比較（排他論理和）される。もし、このシンドロームがビット単位の０ベクトルであれば、当該データの送信中にエラーが生じなかったと仮定される。任意の非ゼロ・シンドロームは、エラーが生じたことを示す。この実装は、標準的なＣＲＣと同様に、シンドロームの調査による直接的なエラー分離をサポートしない。図１のハブ装置１０４は、下流ＣＲＣエラーを検出するとき、その下流フレームの全ての内容を無視し、適切なＦＩＲビットをセットし、ポイゾンし、障害のあるＣＲＣを転送し、そしてイネーブルされていることを条件として、エラー回復状態に入る。
【００３７】
図１のカウンタ１１２は、各受信機リンクごとに、ＣＲＣエラー率を計算するための構成可能なカウンタを含む。また、図１のカウンタ１１２は、各信号レーンごとに、各ＣＲＣシンドロームの分析結果を記録するためのエラー・カウンタを含むことができる。図１のエラー処理論理１２０内にあるエラー率論理は、各実行時間、メモリ通信路フレームごとにタイマを増分し、またカウンタ１１２を使用して、検出された任意の非ポイゾンＣＲＣエラーをカウントする。前述の下流のケースと類似する態様で、可能な障害レーンを決定するために、障害のある各ＣＲＣシンドロームがシンドローム処理論理１２２によって分析される。その結果は、これらの障害が存在し得るレーンに投票することにより、当該論理によって通信される。ＣＲＣは、或るフレーム内の全ての単一ビット・エラーについてその障害レーンを一意的に識別し且つ統計的に有意な数の障害についてのランダムなレーン障害の間にその障害レーンを正確に識別するのに十分に強力である。ＣＲＣエラー訂正は、完全にランダムなレーン・エラーについては一意的なエラー検出を保証するには十分に強力ではないので、複数の障害候補が識別されることがあり得る。カウンタ１１２内のレーン・エラー・カウンタは、それらのレーンが障害候補として識別される（当該レーンに投票が行われる）ごとに増分する。メモリ通信路１０６が正常に動作しているとき、カウンタ１１２内の全てのレーン・エラー・カウンタは、ＣＲＣエラー閾値を超過していないので、周期的にクリアされるであろう。メモリ通信路１０６が再初期化によって訂正することができない間欠エラーを発生する場合、カウンタ１１２内のＣＲＣエラー・カウンタは、その構成可能な閾値を超えるであろう。この時点で、カウンタ１１２内の全てのレーン・エラー・カウンタがフリーズし、そしてアテンションを要求するために、ＦＩＲビットがレジスタ１１４にセットされるであろう。
【００３８】
シンドローム処理論理１２２は、カウンタ１１２内のレーン・エラー・カウンタを読み取り且つどのレーン（もしあれば）を修復すべきであるかを決定することにより、前記アテンション要求をサービスすることができる。各ＣＲＣエラーについて複数のレーン障害候補が識別されることがあるが、エラー・カウンタが閾値を超えるのに十分なＣＲＣシンドローム分析結果を蓄積したときは、最も頻繁に障害を起こしているレーンの明らかな統計的指標が存在するであろう。もし、識別された障害を修復するためにスペア・レーンが使用可能であれば、処理システム１０２は、障害レーンを非活動化するコマンドを発行することにより、前記間欠障害をハード障害に変更することができる。このハード障害は、メモリ・コントローラ１１０及び／又はハブ装置１０４によって自動的に起動される後続の再初期化及び修復シーケンスによって検出し且つ訂正することができる。
【００３９】
実施形態では、通信路１０６内の各受信機は、１つの障害ＣＲＣシンドロームの結果を記録するための、レジスタ１１４内の専用トラップ・レジスタを含む。かかるトラップ・レジスタは、検出された最初のＣＲＣエラーを記録するか又は検出された最新のＣＲＣエラーを連続的に更新するように構成することができる。新しいエラーが捕捉されるとき、有効ビットがトラップ・レジスタ内にセットされ、そしてトラップ・レジスタが処理システム１０２によって読み取られるとき、有効ビットが自動的にリセットされる。
【００４０】
実施形態では、１つのレーンの投票が他のレーンの投票を著しく上回らなければ、複数のレーンのうち１つのレーンが選択され且つ修復される。次に、新しいエラー率がモニタされる。もし、（例えば、閾値内で）修復後の新しいエラー率が以前のエラー率よりも著しく良くなければ、最初の修復がバックオフされ（元に戻され）、そして他のレーンが選択され且つ修復される。この修復及びバックオフの処理は、新しいエラー率が以前のエラー率よりも著しく良くなるまで、継続することができる。実施形態では、２つ以上のレーン修復が許容されるならば、修復のために上位の候補から２つ以上のレーンが選択される。このようにして、複数の修復を実行することができる。
【００４１】
図５は、本明細書に開示する通信路ＣＲＣの実施形態を使用する、上流の８転送フレームを示す。その上流ＣＲＣは、８転送フレーム・フォーマット並びにそのＣＲＣ及びエラー検査ビット番号について、次のように説明される。このコードは、２０レーン×８ビート・フレーム・フォーマットについて使用することが意図される。このコードは、任意のレーン障害、任意の転送障害（エスケープ率は２**（−１６））及び最大４ビットのランダム・エラーを検出することができる、
【００４２】
実施形態では、上流ＣＲＣ多項式は、次の通りである。
【数１２】
0005623635.tif 000013
これは、（他のゼロのうち）連続的な４つのゼロを有するＢＣＨコードである。従って、このコードは、最小距離５を有する。下流フォーマット用のこのコードの多項式は、上流フォーマット用のコードに１＋ｘ２を乗算することにより得られた。図５に示されるようなＣＲＣビット位置は、１４４、１４５、１４６、１４７、１４８、１４９、１５０、１５１、１５２、１５３、１５４、１５５、１５６、１５７、１５８及び１５９である。
【００４３】
典型的なＣＲＣアルゴリズムは、ＣＲＣ検査ビットを符号化し、フレーム・プロトコルに従って、これらのＣＲＣ検査ビットをバスを介して送信することを含む。当該データが当該バスの他端（例えば、図１のハブ装置１０４内）にあるチェッカによって受け取られた後、新しい又は再生成された１組のＣＲＣ検査ビットが計算される。次に、シンドローム・ベクトルを形成するために、前記受け取られたＣＲＣ検査ビット及び前記再生成されたＣＲＣ検査ビットが比較（排他論理和）される。もし、このシンドロームがビット単位の０ベクトルであれば、当該データの送信中にエラーが生じなかったと仮定される。任意の非ゼロ・シンドロームは、エラーが生じたことを示す。この実装は、標準的なＣＲＣと同様に、シンドロームの調査による直接的なエラー分離をサポートしない。
【００４４】
この説明は、特定の数のレーン及び転送を有する下流フレーム及び上流フレーム、特定の最大数の単一ビット・エラーのためのエラー検出コード、レーン・エラー及び潜在的な転送エラーに焦点を合わせているが、他のパラメーターのためのエラー検出コードを設計することも可能である。本明細書に開示する技術は、エラー検出コードを使用する種々の通信バスに適用することができ、メモリ・システムへの適用に制限されない。
【００４５】
実施形態では、ハブ装置１０４は、分岐接続又は２地点間バス構造（さらに、かかるバス構造は１つ以上の追加のハブ装置に対するカスケード接続を含むことができる）を通して、図１のメモリ・コントローラ１１０に接続することができる。メモリ・アクセス要求は、メモリ・コントローラ１１０からバス構造（例えば、メモリ・バス）を通して選択されたハブ装置１０４に送信される。ハブ装置１０４は、これらのメモリ・アクセス要求を受け取ることに応答してこれを変換することにより、ハブ装置１０４からの書き込みデータを格納するか又は読み取りデータをハブ装置１０４に供給するようにメモリ装置１０９を制御する。読み取りデータは１つ以上の通信フレームへ符号化され、メモリ・バスを通してメモリ・コントローラ１１０に送信される。
【００４６】
代替実施形態では、メモリ・コントローラ１１０は、これを１つ以上のプロセッサ・チップ及びサポート用論理と統合して、１つ以上のプロセッサ及び／又はサポート用論理を搭載したマルチチップ・キャリア内に含まれる、個別のチップ（一般に「ノースブリッジ」チップと呼ばれるもの）内にパッケージ化するか、又はアプリケーション／環境と最も良く適合する種々の代替形式でパッケージ化することができる。これらの解決策のうち任意のものは、１つ以上のハブ・チップ及び／又はメモリ装置に接続するために、１つ以上の狭い／高速リンクを使用してもよいし、そのようなリンクを使用しなくてもよい。
【００４７】
図６は、シンドローム分析を使用して障害バス・レーンを検出するためのプロセス６００を示す。ブロック６０２では、シンドローム処理論理１２２は、バス（例えば、図１の上流バス１１８）を介して送信された複数のフレーム用のシンドロームを受け取る。各フレームは、図２〜図５に示すように、レーンごとに複数のビット転送を含む。これらのシンドロームは、バス・インタフェース装置（例えば、メモリ・コントローラ１１０又はハブ装置１０４）からのトラップされた値とすることができる。これらのシンドロームは、図１のレジスタ１１４内にトラップすることができ、そしてエラー条件を分離するための詳細なシンドローム分析を開始すべき閾値をカウンタ１１２が超えたことをエラー検出論理１２０が決定するとき、障害指示がセットされる。
【００４８】
ブロック６０４では、シンドローム処理論理１２２は、各レーンが障害レーンであるという仮定の下に、これらのシンドロームをエラー・ベクトルに復号する。これらのエラー・ベクトルは、或るエラー条件に寄与するであろう特定のシンドローム・ビットの組み合わせを選択する。同じシンドローム・ビットが複数のエラー・ベクトル計算に関係することがあり得るので、全ての可能なエラーの組み合わせについて当該エラーを単一レーンに分離することは可能ではないことがある。
【００４９】
ブロック６０６では、シンドローム処理論理１２２は、複数のフレームのうち１つのフレームからのエラー・ベクトル内に単一ビット障害を有する唯１つのレーンを復号することに応答して、不良レーンを識別する。また、シンドローム処理論理１２２は、これらのシンドローム用の検証ビットが、これらのシンドロームから復号されたエラー・ベクトルに関して一致するか否かを決定することができる。なお、これらの検証ビットは、エラー検出コード内にある程度の冗長性を提供し、前記不良レーンに投票するためにエラー・ベクトルと組み合わせて使用することができる。シンドローム処理論理１２２は、前記単一ビット障害を有する唯１つのレーンを復号することに応答して、当該単一ビット障害に対する１００%のエラー識別精度を保証するために、他の全てのレーンのための投票をクリアすることができる。
【００５０】
ブロック６０８では、シンドローム処理論理１２２は、複数の単一ビット障害が存在するという決定に応答して、本明細書に開示する投票プロセスの実施形態を使用することにより、エラー・ベクトルが複数のフレームにわたる或るエラーを一貫して示す場合には、不良レーンを識別する。実施形態では、シンドローム処理論理１２２は、或るエラーが一貫して示されるか否かを決定するために、受け取られた投票の数を比較する。この比較は、より少ない投票数を有するレーンに対するより多い投票数を有するレーンの比率を計算した後、当該計算された比率を比率閾値と比較することを含むことができる。例えば、或るレーンが示す障害頻度が他のレーンが示す障害頻度よりも４倍以上大きければ、当該レーンを不良レーンとして宣言することができる。この比較は、統計的に有意なサンプル・セットが使用されることを保証するために、所定数のシンドロームが分析された後に、これを行うことができる。実施形態では、走行カウンタは、不良レーンを識別し且つ修正アクション（例えば、バス・インタフェース装置のリセット、スペア・レーンの使用又はバス・レーンのリトレーニング）を開始した後にリセットされる。他の実施形態では、走行カウンタは、指定された期間の後にリセットされる。
【００５１】
請求項に記載された全ての手段又はステップ＋機能要素に対応するフレーム、材料、行為及びそれらの均等物は、請求項に明示的に記載された他の要素と組み合わせてその機能を実施するための任意のフレーム、材料又は行為を含むことが意図される。本発明に関する記述は、例示及び説明を目的として与えられたものであり、網羅的であること及び開示された形態に本発明を限定することを意図するものではない。当業者にとって、本発明の範囲及び精神から逸脱することなく、多くの修正及び変形を施し得ることが明らかであろう。実施形態は、本発明の原理及び実際の応用を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
【００５２】
本発明の諸能力は、ソフトウェア、ファームウェア、ハードウェア又はそれらの組み合わせの形態で実装することができる。
【００５３】
当業者には明らかなように、本発明の諸側面は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明の諸側面は、完全にハードウェアの実施形態、（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）完全にソフトウェアの実施形態、又はソフトウェア及びハードウェア側面を組み合わせた実施形態の形式を取ることができ、これらの全てを一般に「回路」、「モジュール」又は「システム」と称することができる。さらに、本発明の諸側面は、コンピュータ可読プログラム・コードを１つ以上のコンピュータ可読媒体上に具体化したコンピュータ・プログラムの形式を取ることができる。
【００５４】
図１のシンドローム処理論理１２２を実行する諸命令を格納するために、１つ以上のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体システム、装置又はこれらの任意の適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体の特定の例は、１つ以上の線を有する電気接続、ポータブル・コンピュータ用のフレキシブル・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブルのコンパクト・ディスクを使った読み出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせとすることができる。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持するか又は格納することができる、任意の媒体とすることができる。
【００５５】
コンピュータ可読信号媒体は、伝搬されるデータ信号の形式を有することもできるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ使用可能プログラム・コードを具体化することができる。そのような伝搬信号は、電磁気、光学又はその任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではない任意のコンピュータ可読媒体であって、命令実行システム等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し又は移送することができる。
【００５６】
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦ又はこれらの任意の適切な組み合わせを含む、適切な任意の媒体を使用して送信することができる。
【００５７】
本発明の諸側面に係る動作を実施するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語及び「Ｃ」プログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書くことができる。かかるプログラム・コードは、完全にユーザのコンピュータ上で、部分的にはユーザのコンピュータ上で、独立のソフトウェア・パッケージとしてユーザ・コンピュータ上で完全に実行可能であり、その一部をユーザ・コンピュータ上で且つ他の一部を遠隔コンピュータ上で実行可能であり、或いは遠隔コンピュータ又はサーバ上で完全に実行可能である。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）又は広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通してユーザ・コンピュータに接続することができ、或いはその接続を（例えば、インターネット・サービス・プロバイダを使用するインターネットを通して）外部コンピュータに行うことができる。
【００５８】
以上では、本発明の実施形態に従った方法、装置（システム）及びコンピュータ・プログラムのフローチャート及び／又はブロック図を参照して、本発明の諸側面を説明した。この点に関し、フローチャート及び／又はブロック図の各ブロック、並びにフローチャート及び／又はブロック図の諸ブロックの組み合わせは、諸コンピュータ・プログラム命令によって実装することができることを理解されたい。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、前記コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサ上で実行される諸命令が、前記フローチャート又はブロック図の諸ブロックで指定された機能／行為を実装するための手段を作成することを目的として、一のマシンを生産することができる。また、これらのコンピュータ・プログラム命令をコンピュータ可読媒体内に格納すると、前記コンピュータ可読媒体内に格納された諸命令が、前記フローチャート及び／又はブロック図の諸ブロックで指定された機能／行為を実装する命令手段を含む一の製品を生産することを目的として、コンピュータ又は他のプログラム可能なデータ処理装置に対し特定の態様で機能するように指示することができる。
【００５９】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、前記コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、前記フローチャート及び／又はブロック図の諸ブロックで指定された機能／行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装方法を生成するように前記コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で一連の動作ステップを実行させることができる。
【００６０】
諸図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ以上の実行可能命令から成る、モジュール、セグメント又はコード部分を表すことがある点に留意されたい。また、幾つかの代替的実装では、ブロック内に表記された機能を図面に示した順序とは異なる順序で実施することができる点にも留意されたい。例えば、特定の機能性に依存して、連続的に示した２つのブロックを実質的に並列に実施したり、これらのブロックを反対の順序で実施することができる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェア・ベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる点にも留意されたい。
【００６１】
添付図面は、１例であるに過ぎない。本発明の精神から逸脱することなく、これらの図面又はそこに記載された諸ステップ（諸動作）に対し多くの変形を施すことができる。例えば、これらのステップを異なる順序で行ったり、諸ステップを追加、除去又は修正することができる。これらの変形の全ては、本発明の範囲に属するものと考えられる。
【符号の説明】
【００６２】
１００・・・メモリ・システム
１０２・・・処理システム
１０３ａ〜１０３ｄ・・・デュアル・インライン・メモリ・モジュール
１０４・・・ハブ装置
１０６・・・メモリ通信路
１０９・・・メモリ装置
１１０・・・メモリ・コントローラ
１１２・・・カウンタ
１１４・・・レジスタ
１１６・・・単方向性下流バス
１１８・・・単方向性上流バス
１２０・・・エラー処理論理
１２２・・・シンドローム処理論理
【図１】
0005623635.tif 000014
【図２】
0005623635.tif 000015
【図３】
0005623635.tif 000016
【図４】
0005623635.tif 000017
【図５】
0005623635.tif 000018
【図６】
0005623635.tif 000019