(57)【要約】  本発明の実施形態は、一般に、メモリ再生メカニズム用のシステム、方法、及び装置に係る。ある実施形態では、再生ロジックは、ポイント・ツー・ポイントメモリインターコネクトにおける複数のリンクのうちの少なくとも一部をリセットするリセットロジックを含む。更に、再生ロジックは、トランザクションデータを格納する再生キューと、トランザクションデータが定義済みトランザクション応答エラーを示す場合に、リセットを開始する再生コントローラを含みうる。他の実施形態も説明し且つ特許請求の範囲に記載する。【選択図】  図３
2009527819.tif 000002
【特許請求の範囲】
【請求項１】
ポイント・ツー・ポイントメモリインターコネクトにおける複数のリンクのうちの少なくとも一部をリセットするリセットロジックと、
メモリトランザクションに関連付けられるトランザクションデータを格納する再生キューと、
前記リセットロジック及び前記再生キューに接続され、また、前記トランザクションデータが定義済みトランザクション応答エラーを示す場合に、リセットを開始する再生コントローラロジックと、
を含む、集積回路。
【請求項２】
前記定義済みトランザクション応答エラーは、メモリモジュールからの警告、巡回冗長チェック（ＣＲＣ）エラー、及び、訂正不可エラーチェックコード（ＥＣＣ）エラーのうちいずれかである、請求項１に記載の集積回路。
【請求項３】
前記再生コントローラロジックは、前記リセットが成功する場合に、前記メモリトランザクションの再生を開始する、請求項１に記載の集積回路。
【請求項４】
前記メモリトランザクションは、冗長情報転送であり、
前記リセットロジックは更に、前記ポイント・ツー・ポイントメモリインターコネクトのローカルブランチ及びリモートブランチの両方をリセットする、請求項３に記載の集積回路。
【請求項５】
前記冗長情報転送は、冗長メモリ読出し、及び、冗長メモリ書込みのうちいずれかを含む、請求項４に記載の集積回路。
【請求項６】
前記再生コントローラロジックは、前記冗長情報転送が冗長メモリ読出しである場合に、前記リモートブランチへの前記メモリトランザクションを再生する、請求項５に記載の集積回路。
【請求項７】
前記再生コントローラは、
前記ローカルブランチが、規模縮小閾値を超えるトランザクション応答エラーを示すか否か判断し、前記ローカルブランチが前記規模縮小閾値を超えるトランザクション応答エラーを示す場合に、前記ローカルブランチを無効にする規模縮小ロジックを含む、請求項６に記載の集積回路。
【請求項８】
前記再生コントローラロジックは、前記冗長情報転送が冗長メモリ書込みである場合に、前記ローカルブランチへの前記メモリトランザクションを再生する、請求項５に記載の集積回路。
【請求項９】
ポイント・ツー・ポイントメモリインターコネクトから、トランザクションに関連付けられるトランザクションデータを受信する段階と、
前記トランザクションに関連付けられるトランザクション応答エラーを検出する段階と、
前記トランザクションに関連付けられる前記トランザクション応答エラーの検出に少なくとも部分的に呼応して高速リセットを開始する段階と、
を含む方法。
【請求項１０】
前記トランザクション応答エラーは、メモリモジュールからの警告、巡回冗長チェック（ＣＲＣ）エラー、及び、訂正不可エラーチェックコード（ＥＣＣ）エラーのうち少なくとも１つを含む、請求項９に記載の方法。
【請求項１１】
前記高速リセットが成功する場合に、前記トランザクションを再生する段階を更に含む、請求項９に記載の方法。
【請求項１２】
前記トランザクションは、冗長情報転送であり、
高速リセットを開始する段階は更に、
前記メモリインターコネクトのローカルブランチ及びリモートブランチの両方の高速リセットを開始する段階を含む、請求項１１に記載の方法。
【請求項１３】
前記冗長情報転送は、冗長メモリ読出し、及び、冗長メモリ書込みのうちいずれかを含む、請求項１２に記載の方法。
【請求項１４】
前記トランザクションを再生する段階は、
前記冗長情報転送が冗長メモリ読出しである場合に、前記リモートブランチへの前記トランザクションを再生する段階を含む、請求項１３に記載の方法。
【請求項１５】
前記ローカルブランチが、規模縮小閾値を超えるトランザクション応答エラーを示すか否か判断する段階と、
前記ローカルブランチが前記規模縮小閾値を超えるトランザクション応答エラーを示す場合に、前記ローカルブランチを無効にする段階と、
を更に含む、請求項１５に記載の方法。
【請求項１６】
前記トランザクションを再生する段階は、
前記冗長情報転送が冗長メモリ書込みである場合に、前記トランザクション応答エラーを示す（前記ローカルブランチ）ブランチへの前記トランザクションを再生する段階を含む、請求項１３に記載の方法。
【請求項１７】
ポイント・ツー・ポイントメモリインターコネクトに接続されるメモリモジュールと、
前記ポイント・ツー・ポイントメモリインターコネクトを介して前記メモリモジュールに接続されるメモリコントローラと、
を含み、
前記メモリコントローラは、
前記ポイント・ツー・ポイントメモリインターコネクトの少なくとも一部をリセットするリセットロジックと、
メモリトランザクションに関連付けられるトランザクションデータを格納する再生キューと、
前記リセットロジック及び前記再生キューに接続され、また、前記トランザクションデータが定義済みトランザクション応答エラーを示す場合に、リセットを開始する再生コントローラロジックと、
を含む、システム。
【請求項１８】
前記定義済みトランザクション応答エラーは、メモリモジュールからの警告、巡回冗長チェック（ＣＲＣ）エラー、及び、訂正不可エラーチェックコード（ＥＣＣ）エラーのうちいずれかである、請求項１７に記載のシステム。
【請求項１９】
前記再生コントローラロジックは、前記リセットが成功する場合に、前記メモリトランザクションの再生を開始する、請求項１７に記載のシステム。
【請求項２０】
前記メモリトランザクションは、冗長情報転送であり、
前記リセットロジックは更に、前記ポイント・ツー・ポイントメモリインターコネクトのローカルブランチ及びリモートブランチの両方をリセットする、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般に、集積回路の分野に係り、より具体的には、メモリ再生メカニズム用のシステム、方法、及び装置に係る。
【背景技術】
【０００２】
メモリシステムは、一般に、信頼性、可用性、及び保守性（ＲＡＳ）に対する特定レベルのサポートを含む。ＲＡＳに対するサポートには、特定のメモリコンテンツエラーを検出及び／又は訂正するサポートが含まれうる。更に、ＲＡＳに対するサポートには、受信器において欠陥ビットを発生する特定のシグナリングエラーを検出及び／又は訂正するサポートが含まれうる。
【０００３】
エラー検出及び／又は訂正メカニズムは、一般に、データに冗長情報を追加して、特定の欠陥からデータを保護することが関連する。エラー検出メカニズムの１つの例としては、巡回冗長コード（ＣＲＣ）が挙げられる。エラー訂正メカニズムの１つの例としては、エラー訂正コード（ＥＣＣ）が挙げられる。
【０００４】
プロセッサの速度が増加するに従って、メモリバスによってサポートされるデータ転送速度も対応して増加しなければならないという圧力が存在する。一般に、従来のメモリバスは、マルチポイント（しばしば、マルチドロップと称される）アーキテクチャに基づく。この従来のマルチポイントメモリバスアーキテクチャは、メモリ速度及びサイズを大幅に増加しなければならないので、次第に敬遠されてきている。
【０００５】
ポイント・ツー・ポイントのメモリインターコネクトは、しばしば、従来のメモリバスより高速のデータ転送速度をサポートする。ポイント・ツー・ポイントのメモリインターコネクトは、バッファを有するメモリモジュールを使用しうる。バッファは、メモリインターコネクトをモジュール上のメモリデバイスから離す。ポイント・ツー・ポイントのメモリアーキテクチャの例には、フリー・バッファード・デュアル・インライン・メモリモジュール（ＤＩＭＭ）技術に基づいたアーキテクチャが挙げられる。フリー・バッファードＤＩＭＭ技術とは、半導体技術協会（ＪＥＤＥＣ）により推奨されるいずれかのフリー・バッファードＤＩＭＭ仕様に少なくとも部分的に基づいたメモリアーキテクチャを指す。フリー・バッファードＤＩＭＭといったポイント・ツー・ポイントメモリアーキテクチャによりサポートされる高いデータ転送速度は、適切なレベルのＲＡＳを提供するという点で新しい課題を提示する。
【図面の簡単な説明】
【０００６】
本発明の実施形態は、添付図面において限定的ではなく例示的に説明し、添付図面中の同様の参照番号は、同様の構成要素を指す。
【図１】本発明の一実施形態に従って実施されるコンピューティングシステムの選択されたアスペクトを示すハイレベルブロック図である。
【図２】本発明の一実施形態による、複数のブランチを有するメモリシステムの選択されたアスペクトを示すハイレベルブロック図である。
【図３】本発明の一実施形態による再生ロジックの選択されたアスペクトを示すブロック図である。
【図４】本発明の一実施形態による、非冗長メモリ読出し方法の選択されたアスペクトを説明するフロー図である。
【図５】本発明の一実施形態による、非冗長メモリ書込み方法の選択されたアスペクトを説明するフロー図である。
【図６】本発明の一実施形態による、設定読出し方法の選択されたアスペクトを説明するフロー図である。
【図７】本発明の一実施形態による、冗長メモリ読出しの選択されたアスペクトを説明するフロー図である。
【図８】本発明の一実施形態による、冗長メモリ読出し及びメモリブランチの規模縮小化の選択されたアスペクトを説明するフロー図である。
【図９】本発明の一実施形態による、冗長メモリ書込みの選択されたアスペクトを説明するフロー図である。
【図１０】本発明の一実施形態による、再生時にスクラブを行う非冗長メモリ読出し方法の選択されたアスペクトを説明するフロー図である。
【図１１】本発明の一実施形態による、再生時にスクラブを行う冗長メモリ読出しの選択されたアスペクトを説明するフロー図である。
【図１２】本発明の一実施形態による、冗長メモリ読出し及び再生時にスクラブを行うメモリブランチの規模縮小化の選択されたアスペクトを説明するフロー図である。
【図１３】本発明の一実施形態による、電子システムの選択されたアスペクトを示すブロック図である。
【図１４】本発明の代替の実施形態による、電子システムの選択されたアスペクトを示すブロック図である。
【発明を実施するための最良の形態】
【０００７】
本発明の実施形態は、一般に、メモリ再生メカニズム用のシステム、方法、及び装置に係る。ある実施形態では、再生ロジックは、インフライトトランザクションのトランザクション応答データを分析してそのデータが、定義済みのトランザクション応答エラーを含むか否かを判断する。データがエラーを含む場合、再生メカニズムは、メモリインターコネクトの複数のリンクのハードウェアに基づいたリセットを実行する。再生ロジックは、次に、トランザクションを再生しうる。以下により詳細に説明するように、再生ロジックは、メモリ読出し／書込み、設定読出し／書込み、リシルバー（re-silver）トランザクション、メモリスクラブ、スペアコピートランザクション等を含む様々なメモリデータトランザクションをサポートしうる。
【０００８】
図１は、本発明の一実施形態に従って実施されるコンピューティングシステムの選択されたアスペクトを示すハイレベルブロック図である。コンピューティングシステム１００は、リクエスタ１０２、ホスト１１０、及び１つ以上のメモリモジュール１０４を含む。リクエスタ１０２は、プロセッサ（例えば、中央演算処理ユニット及び／又はコア）、サービスプロセッサ、入出力デバイス（例えば、ＰＣＩ  Ｅｘｐｒｅｓｓ（ペリフェラル・コンポーネント・インターコネクト・エキスプレス）デバイス）、メモリ自体、又は、メモリへのアクセスを要求するシステム１００の任意の他の構成要素でありうる。
【０００９】
メモリモジュール１０４は、様々な構造及びピン設定のうちの任意の構造及びピン設定を有しうる。例えば、メモリモジュール１０４は、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）、スモール・アウトラインＤＩＭＭ（ＳＯ−ＤＩＭＭ）、マイクロＤＩＭＭ等として構造化されうる。メモリモジュール１０４は、２４０ピン、１４４ピン、７２ピン等を含む略全てのピン設定を有する電気接点コネクタを有するインターコネクト１３０に接続されうる。
【００１０】
メモリモジュール１０４は、複数のメモリデバイス１２２を含む。説明の便宜上、図面には４つのメモリデバイスを示す。本発明の実施形態は、より多くのメモリデバイス、又は、より少ないメモリデバイスを含みうることは理解されよう。メモリデバイス１２２は、例えば、ダイナミック・ランダム・アクセス・メモリ・デバイス（ＤＲＡＭ）を含む様々なメモリデバイスのうちの任意のメモリデバイスでありうる。
【００１１】
ある実施形態では、各メモリモジュール１０４は、バッファ１２０を含む。バッファ１２０は、複数のメモリデバイス１２２をインターコネクト１３０から離す。ある実施形態では、システム１００は、フリー・バッファードＤＩＭＭ技術に少なくとも部分的に基づく。そのような実施形態では、バッファ１２０は、アドバンスド・メモリ・バッファ（ＡＭＢ）でありうる。ある実施形態では、バッファ１２０は、ホスト１１０から受信するメモリトランザクションに特定のエラーを検出する場合、ホスト１１０に警告（又は警告ストリーム）を送信する。例えば、バッファ１２０は、書込みデータ内にシグナリングエラー（例えば、ＣＲＣエラー）、読出しコマンド内にエラー等を検出する場合等に、警告を送信しうる。同様に、バッファ１２０は、例えば、メモリ書込みを無事に受信した場合、肯定応答を供給しうる（又は単に、受信確認しうる）。
【００１２】
インターコネクト１３０は、ポイント・ツー・ポイントのインターコネクトである。ポイント・ツー・ポイントインターコネクトは、１つ以上のポイント・ツー・ポイントリンク（例えば、１３０１及び１３０２）から構成されるインターコネクトを広義に指す。インターコネクト１３０は、差動又はシングルエンドでありうる。図示する実施形態では、インターコネクト１３０は、１つ以上のノースバウンド（north bound）ビットレーン１３４及び１つ以上のサウスバウンド（south bound）ビットレーン１３２を含む。ある実施形態では、インターコネクト１３０は、フリー・バッファードＤＩＭＭ技術に少なくとも部分的に基づいている。
【００１３】
ホスト１１０は、リクエスタ１０２と（例えば、複数のメモリモジュール１０４によって提供される）メインシステムメモリとの間のインターフェイスを供給する。ある実施形態では、ホスト１１０は、メモリコントローラである。メモリコントローラは、プロセッサに組み込まれても、又は、別個の集積回路（例えば、メモリコントローラハブ）上に実装されてもよい。ホスト１１０は、再生ロジック１１２を含む。再生ロジック１１２は、特定のトランザクション応答エラーが検出される場合に様々なメモリトランザクションを再生するメカニズムを供給する。用語「トランザクション応答エラー」は、メモリトランザクション（例えば、読出しトランザクション、書込みトランザクション、メモリ設定等）に対する応答において検出されるエラーを指す。ある実施形態では、再生ロジック１１２は高速リセットロジックを含み、特定のトランザクション応答エラーが検出される場合に、インターコネクト１３０の複数のリンクを自動的にリトレインする。再生ロジック１１２は、図３−図８を参照して以下により詳細に説明する。
【００１４】
ある実施形態では、インターコネクト１３０は、２つ以上のブランチを含む。ブランチとは、ロックステップで動作する複数のチャネルのコレクションを指す。ブランチは、単一のチャンネルであってもよい。追加のブランチを使用して、冗長（即ち、ミラーリングされた）メモリをサポートしうる。この冗長メモリ内には、２つ（以上）の実質的に同一のメモリイメージがある。図２は、本発明の一実施形態による、複数のブランチを有するメモリシステムの選択されたアスペクトを示すハイレベルブロック図である。
【００１５】
コンピューティングシステム２００は、リクエスタ１０２、ホスト１１０、及びポイント・ツー・ポイントインターコネクト２３０を含む。ポイント・ツー・ポイントインターコネクト２３０は、ブランチ２４０及び２４２（それぞれ、１つ以上のメモリモジュール１０４を有する）を含む。ある実施形態では、コンピューティングシステム２００は、ブランチ２４０及び２４２が実質的に同一のメモリイメージを含む冗長メモリシステムを提供する。つまり、ブランチ２４０は、ブランチ２４２と本質的に同じデータを含みうる。ある実施形態では、リクエスタ１０２は、どちらのイメージからもデータを読出しすることができる。一部の実施形態では、リクエスタ１０２からのデータ書込みは、ブランチ２４０及びブランチ２４２の両方に書込みされる。
【００１６】
図３は、本発明の一実施形態による、再生ロジックの選択されたアスペクトを示すブロック図である。ある実施形態では、再生ロジック３１０は、特定のトランザクション応答エラーが検出される場合にメモリトランザクションを再生するメカニズムを提供する。例えば、再生ロジック３１０は、メモリ（例えば、図１に示すメモリ１０６）からトランザクション応答データを受信して、そのトランザクション応答データがトランザクション応答エラーを含むか否か判断する。以下により詳細に説明するように、再生ロジック３１０は、応答エラーを検出する場合、その応答エラーを生成したメモリトランザクションの再生を開始しうる。
【００１７】
再生ロジック３１０は、高速リセットシーケンサ３２０、再生コントローラ３３０、再生キュー３４０、及びデータ経路３５０を含む。代替の実施形態では、再生ロジック３１０は、図３に示すよりも多くの構成要素、少ない構成要素、及び／又は異なる要素を含みうる。インターコネクト３６０は、再生ロジック３１０を、１つ以上のメモリモジュール（例えば、図１に示すメモリモジュール１０４）に接続する。ある実施形態では、インターコネクト３６０は、フリー・バッファードＤＩＭＭ技術に少なくとも部分的に基づいている。
【００１８】
データ経路３５０は、インターコネクト３６０からトランザクション応答データを受信する。トランザクション応答データは、例えば、読出しデータ、肯定応答、及び／又は警告を含みうる。警告とは、ホストとメモリ間の通信におけるコマンドエラー及び／又はデータエラーを示す、バッファ（例えば、図１に示すバッファ１２０）からの警告を指す。ある実施形態では、データ経路３５０は、エラー検出／訂正ロジック３７０とインタラクトして、トランザクション応答データにエラー（例えば、シグナリングエラー及び／又はメモリコンテンツエラー）が含まれるか否かを判断する。エラー検出／訂正ロジック３７０は、トランザクション応答データにトランザクション応答エラーが含まれるか否かを判断する。エラー検出／訂正ロジック３７０は、シグナリングエラー及び／又はメモリコンテンツエラーを検出するのに適した任意のエラー検出／訂正ロジックでありうる。例えば、エラー検出／訂正ロジック３７０は、ＥＣＣ及び／又はＣＲＣでありうる。
【００１９】
再生キュー３４０は、インフライトのメモリトランザクションを追跡する。「インフライト」のメモリトランザクションとは、メモリサブシステムで発行されたがまだリタイアされていないトランザクションを指す。各トランザクションについて、データ経路３５０は、トランザクションデータ３４２を、再生キュー３４０に転送する。トランザクションデータ３４２は、例えば、トランザクション識別子（ＩＤ）、アドレス指定情報、イニシエータ（ＩＤ）等を含みうる。ある実施形態では、トランザクションデータ３４２は更に、トランザクション応答データがトランザクション応答エラーを含むか否かの指示子を含む。例えば、図示する実施形態では、トランザクションデータ３４２は、複数のステータスビット３４４を含む。ステータスビット３４４は、特定のトランザクション応答エラーがトランザクション応答データ内に検出されたか否かを示す。ある実施形態では、３つのステータスビット３４４があり、これらのステータスビットのそれぞれは、警告、ＣＲＣエラー、及び訂正不可ＥＣＣエラーである応答エラーのうちの１つが検出されたか否かを示す。代替の実施形態では、異なる数のステータスビットがありうる、及び／又は、ステータスビットは、より多くの、より少ない、及び／又は異なるトランザクション応答エラーを示しうる。
【００２０】
再生コントローラ３３０は、再生ロジック３１０の選択されたアスペクトを制御する。ある実施形態では、再生コントローラ３３０は、再生キュー３４０内に記憶されたトランザクションデータ（例えば、３４２）を分析し、（１）検出されたトランザクション応答エラー、（２）メモリシステムが冗長であるか否か、（２）及びトランザクションのタイプ（例えば、メモリ読出し／書込み、設定読出し／書込み等）といった要素に基づいて適切な再生処理を決定する。再生コントローラ３３０によって制御される再生処理は更に、図４−図９を参照して以下に説明する。
【００２１】
ある実施形態では、略どのような種類の情報転送でも再生されうる。用語「情報転送」とは、データを含む転送を指す。データは、メモリデータ（例えば、メモリ読出し又はメモリ書込み用）、又は、設定データ（例えば、メモリモジュール、そのバッファ、及び／又はＤＲＡＭの様々なアスペクトの設定用）でありうる。メモリデータトランザクションは、様々な外部及び／又は内部のリクエスタから発されることが可能である。外部リクエスタは、プロセッサ、Ｉ／Ｏデバイス、システム管理バス等を含みうる。内部リクエスタは、ホスト（例えば、メモリコントローラ）自体を含みうる。例えば、ホストは、リシルバー（re-silver）トランザクション、スクラブトランザクション、スペアコピートランザクション等のメモリデータトランザクションを生成しうる。「リシルバー（re-silver）トランザクション」とは、（例えば、データが冗長ブランチにおいて喪失された後に）データが冗長ブランチに再コピーされるトランザクションを指す。「スペアコピートランザクション」とは、必要に応じてデータを冗長ランクにコピーしてスペアコピーを作成することを指す。ランクとは、データを供給する一組のメモリデバイスである。スクラブトランザクションとは、メモリサブシステム内に記憶されたデータをスクラブして、例えば、メモリ内の訂正可能なエラーを修復することを指す。
【００２２】
再生コントローラ３３０は更に、高速リセットシーケンサ３２０を制御する。高速リセットシーケンサ３２０は、ハードウェアに基づいたリンク／チャネルのリトレインメカニズムである。用語「リンク／チャネルのリトレイン」とは、メモリインターコネクト（例えば、図１に示すインターコネクト１３０）のリンク上の全ての（又は一部の）ビットレーンを再整列させることを指す。ある実施形態では、高速リセットシーケンサ３２０は、一般的に内蔵型オペレーティングシステム（ＢＩＯＳ）からプッシュオーバーされる比較的複雑な（且つソフトウェアに基づいた）初期のトレインシーケンスより簡単である（従って、より速い）ハードウェアに基づいたリンク／チャネルのトレインアルゴリズムを実施する。動作時、再生コントローラ３３０は、トランザクションデータ３４２内に特定のトランザクション応答エラーが検出される場合は、高速リセットシーケンサ３２０に自動的に命令して、高速リセットを開始させうる。例えば、ある実施形態では、再生コントローラ３３０は、ステータスビット３４４が警告、ＣＲＣエラー、又は訂正不可ＥＣＣエラーであるエラーのうちのいずれかを示す場合、高速リセットシーケンサ３２０に命令して高速リセットを開始させる。
【００２３】
一般に、再生ロジック３１０の動作は、ポイント・ツー・ポイントインターコネクト３６０からトランザクション応答データを受信することと、そのデータが特定のトランザクション応答エラーを含むか否かを判断することを含む。データがエラーを含む場合、再生コントローラ３３０は、高速リセットを開始して、トランザクション（例えば、再生トランザクション）の再生を行う。再生トランザクションの詳細は、再生されるトランザクションのタイプ（例えば、メモリ読出し／書込み、設定読出し／書込み等）、及び、メモリシステムが冗長であるか否かに依存して異なりうる。再生ロジック３１０の動作を更に、図４−図９を参照して以下に説明する。
【００２４】
図４は、本発明の一実施形態による、非冗長メモリ読出し方法の選択されたアスペクトを説明するフロー図である。用語「非冗長メモリ読出し」とは、非冗長メモリシステムでのメモリ読出しを指す。外部リクエスタ又は内部リクエスタのいずれかが（例えば、スペアコピー又はリシルバートランザクション時に）、４０２に示すように非冗長メモリ読出しを生成しうる。
【００２５】
再生ロジック（例えば、図３に示す再生ロジック３１０）は、処理ブロック４０４、４１０、及び４１２に示すように、トランザクション応答データに、特定の定義済みエラーが含まれるか否か判断する。ある実施形態では、定義済みエラーには、警告、ＣＲＣエラー、及び訂正不可ＥＣＣエラーが含まれる。再生ロジックが定義済みエラーを検出しない場合、トランザクションは、再生なしで完了することができる（４１０）。例えば、データにエラーが含まれない場合（４１０）、データは、リクエスタに転送される（４２８）。同様に、データにＥＣＣ訂正可能エラーが含まれる場合（４０４）、エラー検出／訂正ロジックがエラーを訂正し、そのデータは、リクエスタに転送される（４０６）。
【００２６】
処理ブロック４１２を参照するに、ここでは、再生ロジックは、応答データ内に定義済みエラーのうちの１つを検出する。ある実施形態では、再生ロジックは、応答データが定義済みエラーのうちの１つを含む場合、高速リセットを自動的に実行する（４１４）。高速リセットが失敗する場合（４１６）、データはポイズンされ（poisoned）、リクエスタに通知される（４０８）。
【００２７】
或いは、高速リセットが成功する場合、再生コントローラは、エラーを生成したトランザクションを再生する（４１８）。再生トランザクション応答データ（再生応答データ）は分析され、４２０、４２２、及び４２６に示すようにそのデータに定義済みエラーのうちの１つが含まれるか否かが判断される。データに定義済みエラー（４２２及び４２６）のうちの１つが含まれない場合、データはリクエスタに転送される（４２８）か、又は、ＥＣＣ訂正可能エラーの場合、エラーは訂正され、そのデータはリクエスタに転送される（４２４）。再生応答データに定義済みエラーのうちの１つが含まれる場合、データはポイズンされ、リクエスタに通知される（４０８）。
【００２８】
図５は、本発明の一実施形態による、非冗長メモリ（又は設定）書込み方法の選択されたアスペクトを説明するフロー図である。用語「非冗長メモリ書込み」とは、非冗長メモリシステムでのメモリ書込みを指す。処理ブロック５０２を参照するに、ホスト（例えば、ホスト１１０）がメモリ書込みを実行する。再生ロジックは、トランザクション応答データを分析して、そのデータに定義済みエラーが含まれるか否かを判断する（５０４及び５０８）。データに定義済みエラーが含まれない場合（５０４）、トランザクションは完了する（５０６）。
【００２９】
処理ブロック５０８を参照するに、応答データには、定義済みエラーのうちの１つが含まれる。ある実施形態では、定義済みエラーには、警告及び／又は肯定応答エラーが含まれうる。再生ロジックは、応答データに、定義済みエラーのうちの１つが含まれる場合に、高速リセットを実行し（５１０）、高速リセットが成功したか否かを判断する。高速リセットが失敗する場合（５１２）、トランザクションはドロップされる（５１４）。
【００３０】
或いは、高速リセットが成功する場合、メモリ書込みは再生される（５１６）。この再生応答データは分析されて、そのデータに特定の定義済みエラーが含まれるか否か判断される（５１８及び５２０）。再生応答に定義済みエラーのうちの１つも含まれない場合（例えば、データが良好な肯定応答である場合）、トランザクションは完了する（５０６）。しかし、再生応答に、定義済みエラーのうちの１つが含まれる場合（５１８）、トランザクションはドロップされる（５１４）。
【００３１】
図６は、本発明の一実施形態による、設定読出し方法の選択されたアスペクトを説明するフロー図である。用語「設定読出し」とは、メモリ（例えば、図１に示すメモリ１０６）の要素から設定情報を読出しすることを指す。ある実施形態では、メモリモジュール上に位置付けられるバッファ（例えば、図１に示すバッファ１２０）が、ステータスビット、温度データ等の設定データを含む。「設定読出し」には、１つ以上のメモリバッファから一部の又は全てのこの設定データを読出しすることが含まれる。メモリ読出し用のリクエスタは、内部であっても外部であってもよい。外部リクエスタの１つの例としては、例えば、メモリモジュールに対して設定データを読出し及び／又は書込みしうるシステムＢＩＯＳが挙げられる。
【００３２】
処理ブロック６０２を参照するに、ホストは、設定読出しを行う。再生ロジックは、トランザクション応答データに定義済みエラーが含まれるか否かを判断する（６０４及び６０８）。応答データにエラーが含まれない場合、ホストは、そのデータをリクエスタに転送する（６０６）。
【００３３】
処理ブロック６０８を参照するに、ここでは、再生ロジックは、定義済みエラーのうちの少なくとも１つを検出する。定義済みエラーには、例えば、警告及び／又はＣＲＣエラーが含まれうる。ある実施形態では、再生ロジックは、定義済みエラーのうちの１つを検出する場合、高速リセットを自動的に行い、高速リセットが成功したか否かを判断する（６１０）。高速リセットが失敗する場合（６１２）、再生ロジックマスタは、トランザクションをアボートし、リクエスタに通知する（６１４）。
【００３４】
或いは、高速リセットが成功する場合、再生ロジックは、設定読出しを再生する（６１６）。再生ロジックは、再生応答データを分析して、そのデータに定義済みエラーが含まれるか否か判断する（６１８及び６２０）。再生応答データに定義済みエラーが含まれない場合（６２０）、そのデータは、リクエスタに転送される（６０６）。再生応答データに定義済みエラーが含まれる場合（６１８）、再生ロジックマスタは、設定をアボートし、リクエスタに通知する（６１４）。
【００３５】
図７は、本発明の一実施形態による、冗長メモリ読出しの選択されたアスペクトを説明するフロー図である。用語「冗長メモリ読出し」とは、冗長メモリシステムでのメモリ読出しを指す。一般に、冗長メモリシステムは、２つ以上のブランチ（例えば、図２に示すブランチ２４０及び２４２）を含みうる。各ブランチは、実質的に同一のメモリイメージを含みうる。説明の便宜上、用語「ローカルブランチ」は、メモリ読出しトランザクションが発行されたブランチを示す目的で使用する。用語「リモートブランチ」は、メモリ読出しが発行されたブランチ以外のブランチを指す。
【００３６】
ある実施形態では、冗長メモリシステム上での再生メカニズムは、ローカルブランチ上で発生するトランザクション応答エラーが規模縮小閾値を超えるか否かを考慮する。用語「規模縮小閾値」とは、例えば、冗長メモリシステムの複数のブランチのうちの１つを無効にすることで冗長メモリシステムを規模縮小化するための閾値を指す。規模縮小閾値は、トランザクション応答が発生する回数、トランザクションエラーが発生する頻度等を含む様々な基準（及び／又はポリシー）により決定されうる。一実施形態では、規模縮小閾値は、２つの連続したトランザクション応答エラーが同じブランチ上で検出されることに基づく。説明の便宜上、２つの連続的な読出しに基づいた規模縮小閾値に関して実施形態を以下に説明する。なお、別の実施形態は、異なる規模縮小閾値に基づきうることは明らかであろう。
【００３７】
処理ブロック７０２を参照するに、ホストは、ブランチＸに対して第１の冗長メモリ読出しを行う。用語「冗長メモリ読出し」とは、冗長メモリシステムでのメモリ読出しを指す。「第１の」冗長メモリ読出しとは、規模縮小閾値を超えないメモリ読出しを指す。用語「ブランチＸ」及び「ブランチＹ」とは、冗長メモリシステムにおける２つのブランチを区別するために便宜上使用するラベルである。冗長メモリ読出しについて、ブランチ「Ｘ」は、ローカルブランチであり、ブランチ「Ｙ」はリモートブランチである。
【００３８】
再生ロジックは、トランザクション応答データに、定義済みエラーが含まれるか否か判断する（７１４、７１０、及び７０４）。データに定義済みエラーが含まれない場合、任意の他のエラー（例えば、訂正可能なＥＣＣエラー）が必要に応じて訂正され（７１２）、そのデータはリクエスタに転送される（７１２、７０６）。定義済みエラーが検出されない場合、次の冗長読出しが、第１の冗長読出しと見なされる（７０８）。
【００３９】
しかし、定義済みエラーが検出される場合（７１４）、再生ロジックは、両方のブランチに対して高速リセットを自動的に行い、その高速リセットが成功したか否かを判断する（７１６）。ブランチＸ及びＹの片方又は両方において高速リセットが失敗する場合（７３２、７４２）、ブランチＸが無効にされる（７３４、７４４）。ブランチＹにおいて失敗する場合（又は、両方のブランチにおいて失敗する場合）、トランザクションはポイズンされ、リクエスタに通知される（７４０）。ブランチＸのみにおいて失敗する場合、ブランチＸを無効にした後、処理フローは、両方のブランチにおいて高速リセットが成功する場合と実質的に同じ処理を従う。
【００４０】
両方のブランチにおいて高速リセットが成功する場合（７１８）、次の冗長読出しは、「第２の」冗長読出しと見なされる（７２０）。再生ロジックは、７２２においてブランチＹ（例えば、もう片方のブランチ）上で非冗長メモリ読出しを再生する。再生応答データに定義済みエラーが含まれる場合、そのトランザクションはポイズンされ、リクエスタは通知される（７４０）。データにエラーが含まれない場合（７２４及び７２６）、任意の他のエラーが必要に応じて訂正され（７２８）、そのデータは、リクエスタに転送される（７２８及び７３０）。
【００４１】
図８は、本発明の一実施形態による、冗長メモリ読出し及びメモリブランチの規模縮小化の選択されたアスペクトを説明するフロー図である。説明の便宜上、規模縮小閾値は、同じブランチからの２つの連続応答データエラーであると仮定する。なお、代替の実施形態では、異なる規模縮小閾値を用いてもよいことは理解すべきである。
【００４２】
処理ブロック８０２を参照し、ここでは、再生ロジックは、第２の冗長メモリ読出しをブランチＸに対して行う。つまり、ブランチＸに対する前の冗長メモリ読出しは、定義済みトランザクション応答エラーのうちの１つをもたらした。再生ロジックは、応答データに定義済みエラーが含まれるか否かを判断する（８１４、８１０、及び８０４）。応答データに定義済みエラーが含まれない場合（８１０及び８０４）、任意の他のエラーが必要に応じて訂正され、そのデータは、リクエスタに転送される（８１２及び８０６）。ある実施形態では、応答データに定義済みエラーが含まれない場合、次の冗長メモリ読出しは、「第１の」冗長メモリ読出しとみなされる（８０８）。
【００４３】
応答データに定義済みエラーが含まれる場合（８１４）、再生ロジックは、両方のブランチＸ及びブランチＹに高速リセットを行う（８１６）。ある実施形態では、ブランチＸは無効にされ（８１８）、それにより、一貫したインプリメンテーションをサポートし、次の読出しは、非冗長読出しとなる（８２０）。再生ロジックは、８２２においてブランチＹ（例えば、反対のブランチ）上で非冗長メモリ読出しを再生する。再生応答データに、定義済みエラーが含まれる場合（８３２）、トランザクションはポイズンされ、リクエスタは通知される（８３４）。データにエラーが含まれない場合（８２４及び８２８）、任意の他のエラーが必要に応じて訂正され（８２６）、そのデータはリクエスタに転送される（８２６及び８３０）。
【００４４】
図９は、本発明の一実施形態による、冗長メモリ書込みの選択されたアスペクトを説明するフロー図である。「冗長メモリ書込み」とは、冗長メモリシステムへの書込みを指す。ホストは、両方のブランチに対して冗長メモリ書込みを行い（９０２）、応答データに定義済みエラーが含まれるか否かを判断する（９０４−９１０）。応答データに定義済みエラーが含まれない場合（９０４）、トランザクションは完了する（９１８）。いずれかのブランチからの応答データに定義済みエラーが含まれる場合（９０６−９１０）、再生ロジックは、両方のブランチの高速リセットを行い（９１２−９１６）、高速リセットが各ブランチについて成功したか否かを判断する。
【００４５】
どちらかのブランチにおいて高速リセットが失敗する場合（例えば、９２０）、その失敗したブランチは無効にされる（例えば、９２２）。両方のブランチにおいて成功する場合、書込みの失敗によって高速リセットが行われたブランチと同じブランチに冗長メモリ書込みが再生される（９２４）。再生応答データは、定義済みエラーについて確認される（例えば、９２６及び９２８）。再生応答データに定義済みエラーが含まれない場合、トランザクションは完了する（例えば、９３０）。再生応答データに定義済みエラーが含まれる場合、そのトランザクションが再生されたブランチは無効にされ（例えば、９３２）、そのトランザクションは完了する（例えば、９３４）。図９は更に、本発明のある実施形態による、ブランチ失敗、ブランチ無効、及び再生の追加の組み合わせも示す。
【００４６】
再生時のスクラブ
ある実施形態では、自動的に再生されるトランザクション応答エラーには、ＥＣＣ訂正可能エラーといった訂正可能なエラーが含まれる。そのような実施形態では、再生時にデマンドスクラブ（demand scrub）が実施されうる。用語「デマンドスクラブ」とは、メモリ内の訂正可能なエラーが再生動作時に検出される場合に、その訂正可能なエラーを修復することを指す。図１０、図１１、及び図１２は、それぞれ、図４、図７、及び図８と類似するが、各図１０、図１１、及び図１２は、再生時にデマンドスクラブを実施することの選択されたアスペクトを説明する点で異なる。参照の便宜上、図１０、図１１、及び図１２の説明は、再生時のデマンドスクラブという特徴に焦点をあてる。
【００４７】
図示する実施形態では、訂正可能なエラー（例えば、ＥＣＣ訂正可能エラー）の検出は、１００２、１１０２、及び１２０２に示すように、リセットを自動的にトリガする。リセットが成功する場合、トランザクションは再生される（４１８、７２２、及び８２２）。再生トランザクション応答データは分析されて、データにエラーが含まれるか否か判断される。
【００４８】
再生トランザクション応答データに、訂正可能なエラーが含まれる場合、そのエラーは訂正されて、訂正された応答データはリクエスタに転送され、また、その訂正されたデータのコピーがメモリに書込みされる（例えば、１００４、１１０４、及び１２０４）。再生時にメモリへの書込みがあることによって、書込みに対する悪い応答への「入れ子式」の再生の機会を作ってしまう。従って、ある実施形態では、その書込みでの任意の更なるエラーは、全く新しい書込みとして扱われる。
【００４９】
ある実施形態では、ホストは、「新しい」応答データと前の応答データの両方におけるシグナリングフォルト、及び／又は、ソフトエラーとのシグナリングフォルトの組み合わせのうちのどちらかのフォルトの組み合わせを検出可能でありうる。このような実施形態では、「新しい」応答データ（再生動作後に取得）は、先行する読出し動作からの応答データと（少なくとも部分的に）比較される（例えば、１００６、１１０６、１２０６）。「新しい」応答データが、前に伝送された応答データと一致する場合、シグナリングフォルトは発生しておらず、ＥＣＣロジックを通常通りに使用して、訂正可能又は訂正不可フォルトを分離し、また、データに対して適切な動作を完了することができる。「新しい」応答データが、前に伝送された応答データと一致しない場合、シグナリングフォルトが２つの伝送のうちの片方に発生しており、２つの連続伝送からのデータが一致するまで、別のリトライ動作が行われる。
【００５０】
図１３は、本発明の一実施形態による電子システムの選択されたアスペクトを説明するブロック図である。電子システム１３００は、プロセッサ１３１０、メモリコントローラ１３２０、メモリ１３３０、入出力（Ｉ／Ｏ）コントローラ１３４０、無線周波数（ＲＦ）回路１３５０、及びアンテナ１３６０を含む。動作時、システム１３００は、アンテナ１３６０を使用して信号を送受信し、これらの信号は、図１３に示す様々な構成要素によって処理される。アンテナ１３６０は、指向性アンテナであっても無指向性アンテナであってもよい。本願に使用するように、用語「無指向性アンテナ」とは、少なくとも１つの面において実質的に均一なパターンを有する任意のアンテナを指す。例えば、ある実施形態では、アンテナ１３６０は、ダイポールアンテナ又は４分の１波長アンテナといった無指向性アンテナでありうる。更に、例えば、ある実施形態では、アンテナ１３６０は、パラボリックディッシュアンテナ、パッチアンテナ、又は八木アンテナといった指向性アンテナでありうる。ある実施形態では、アンテナ１３６０は、複数の物理的なアンテナを含んでもよい。
【００５１】
無線周波数回路１３５０は、アンテナ１３６０とＩ／Ｏコントローラ１３４０と通信する。ある実施形態では、ＲＦ回路１３５０は、通信プロトコルに対応する物理インターフェイス（ＰＨＹ）を含む。例えば、ＲＦ回路５５０は、変調器、復調器、混合器、周波数合成器、低雑音増幅器、電力増幅器等を含みうる。ある実施形態では、ＲＦ回路１３５０は、ヘテロダイン受信器を含み、また、別の実施形態では、ＲＦ回路１３５０は、直接変換受信器を含みうる。例えば、複数のアンテナ１３６０を有する実施形態では、各アンテナは、対応する受信器に接続されうる。動作時、ＲＦ回路１３５０は、アンテナ１３６０から通信信号を受信し、アナログ又デジタル信号をＩ／Ｏコントローラ１３４０に供給する。更に、Ｉ／Ｏコントローラ１３４０は、ＲＦ回路１３５０に信号を供給し、ＲＦ回路はこれらの信号を処理して、処理信号をアンテナ１３６０に伝送しうる。
【００５２】
プロセッサ１３１０は、任意のタイプの処理デバイスでありうる。例えば、プロセッサ１３１０は、マイクロプロセッサ、マイクロコントローラ等でありうる。更にプロセッサ１３１０は、任意の数の処理コア、又は、任意の数の個別プロセッサを含んでもよい。
【００５３】
メモリコントローラ１３２０は、図１３に示すプロセッサ１３１０と他の構成要素との間の通信路を供給する。ある実施形態では、メモリコントローラ１３２０は、他の機能も提供するハブデバイスの一部でありうる。図１３に示すように、メモリコントローラ１３２０は、プロセッサ１３１０、Ｉ／Ｏコントローラ１３４０、及びメモリ１３３０に接続される。ある実施形態では、メモリコントローラ１３２０は、再生ロジック（例えば、図３に示す再生ロジック３１０）を含み、定義済みエラーを検出し、自動高速リセットを実行し、また、特定のトランザクションを再生する。
【００５４】
メモリ１３３０は、複数のメモリデバイスを含みうる。これらのメモリデバイスは、任意のタイプのメモリ技術に基づきうる。例えば、メモリ１３３０は、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ＦＬＡＳＨメモリといった不揮発性メモリ、又は任意のタイプのメモリでありうる。
【００５５】
メモリ１３３０は、単一のメモリデバイス、又は、１つ以上のモジュール上の多数のメモリデバイスを表しうる。メモリコントローラ１３２０は、データを、インターコネクト１３２２を介してメモリ１３３０に供給し、また、読出し要求に応答してメモリ１３３０からのデータを受信する。コマンド及び／又はアドレスは、インターコネクト１３２２、又は、異なるインターコネクト（図示せず）を介してメモリ１３３０に供給されうる。メモリコントローラ１３３０は、プロセッサ１３１０又は別のソースからメモリ１３３０内に記憶されるべきデータを受信しうる。メモリコントローラ１３３０は、メモリ１３３０から受信したデータをプロセッサ１３１０又は別の宛先に供給しうる。インターコネクト１３２２は、双方向性インターコネクトであっても単一方向性インターコネクトであってもよい。インターコネクト１３２２は、多数の並行導体を含みうる。信号は差動エンド又はシングルエンドでありうる。ある実施形態では、インターコネクト１３２２は、フォワードされた多相クロックスキームを使用して動作される。
【００５６】
メモリコントローラ１３２０は更に、Ｉ／Ｏコントローラ１３４０に接続されて、プロセッサ１３１０とＩ／Ｏコントローラ１３４０との間に通信路を供給する。Ｉ／Ｏコントローラ１３４０は、シリアルポート、パラレルポートは、汎用シリアルバス（ＵＳＢ）ポート等のＩ／Ｏ回路と通信するための回路を含む。図１３に示すように、Ｉ／Ｏコントローラ１３４０は、ＲＦ回路１３５０への通信路を供給する。
【００５７】
図１４は、本発明の代替の実施形態による電子システムの選択されたアスペクトを示すブロック図である。電子システム１４００は、メモリ１３３０、Ｉ／Ｏコントローラ１３４０、ＲＦ回路１３５０、及びアンテナ１３６０を含み、これらは全て、図１３に関連して説明した。電子システム１４００は更に、プロセッサ１４１０及びメモリコントローラ１４２０を含む。図１４に示すように、メモリコントローラ１４２０は、プロセッサ１４１０と同じダイ上にあってもよい。ある実施形態では、メモリコントローラ１４２０は、再生ロジック（例えば、図３に示す再生ロジック３１０）を含み、定義済みエラーを検出し、自動高速リセットを実行し、また、特定のトランザクションを再生する。プロセッサ１４１０は、プロセッサ１３１０（図５）に関連して上述した任意のタイプのプロセッサでありうる。図１３及び図１４によって表される例示的なシステには、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、携帯電話機、携帯情報端末、デジタルホームシステム等が含まれる。
【００５８】
本発明の実施形態の構成要素は、機械可読命令を格納する機械可読媒体としても提供されうる。機械可読媒体には、以下に限定されないが、フラッシュメモリ、光学ディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイル／ビデオディスク（ＤＶＤ）ＲＯＭ、ランダム・アクセス・メモリ（ＲＡＭ）、消去可能プログラム可能読出し専用メモリ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）、磁気又は光学カード、伝播媒体、又は、電子命令を格納するのに好適な他のタイプの機械可読媒体が含まれうる。例えば、本発明の実施形態は、リモートコンピュータ（例えば、サーバ）から要求を出しているコンピュータ（例えば、クライアント）に、搬送波、又は、通信リンク（例えば、モデム又はネットワーク接続）を介する他の伝播媒体で具現化されるデータ信号によって転送されうるコンピュータプログラムとしてダウンロードされうる。
【００５９】
本明細書における「一実施形態」との言及は、その実施形態に関連して説明した特定の機能、構造、又は特徴が、少なくとも１つの本発明の実施形態に含まれることを理解すべきである。従って、本明細書の様々な箇所における「一実施形態では」又は「代替の実施形態では」との２回以上の言及は、全て必ずしも同じ実施形態について言及しているわけではないことをここに強調し且つ理解されたい。更に、特定の機能、構造、又は特徴は、１つ以上の本発明の実施形態において適宜組み合わせられうる。
【００６０】
同様に、本発明の実施形態の上述の説明において、１つ以上の様々な新規的側面を理解することを促進するよう開示の合理化の目的で、様々な機能が、単一の実施形態、図面、又はその説明にまとめられることは理解すべきである。しかし、この開示方法は、特許請求対象は、各請求項において記載されるよりも多くの機能を必要とすることを意図すると解釈すべきではない。むしろ、特許請求の範囲に示すように、新規的側面は、単一の上述実施形態の全ての機能を含まないところにもある。従って、特許請求の範囲は、この詳細な説明に明示的に組み込まれる。
【図１】
2009527819.tif 000003
【図２】
2009527819.tif 000004
【図３】
2009527819.tif 000005
【図４】
2009527819.tif 000006
【図５】
2009527819.tif 000007
【図６】
2009527819.tif 000008
【図７】
2009527819.tif 000009
【図８】
2009527819.tif 000010
【図９】
2009527819.tif 000011
【図１０】
2009527819.tif 000012
【図１１】
2009527819.tif 000013
【図１２】
2009527819.tif 000014
【図１３】
2009527819.tif 000015
【図１４】
2009527819.tif 000016
【国際調査報告】
2009527819.tif 000017
2009527819.tif 000018