JP4519839B2 - ビットレーン・フェイルオーバーのあるメモリ・チャネル - Google Patents

ビットレーン・フェイルオーバーのあるメモリ・チャネル Download PDF

Info

Publication number
JP4519839B2
JP4519839B2 JP2006514926A JP2006514926A JP4519839B2 JP 4519839 B2 JP4519839 B2 JP 4519839B2 JP 2006514926 A JP2006514926 A JP 2006514926A JP 2006514926 A JP2006514926 A JP 2006514926A JP 4519839 B2 JP4519839 B2 JP 4519839B2
Authority
JP
Japan
Prior art keywords
memory
agent
bit
circuit
bit lanes
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
JP2006514926A
Other languages
English (en)
Other versions
JP2006526849A (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 JP2006526849A publication Critical patent/JP2006526849A/ja
Application granted granted Critical
Publication of JP4519839B2 publication Critical patent/JP4519839B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4256Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a clocked protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • Hardware Redundancy (AREA)

Description

図1は、アメリカ電気・電子通信学会(IEEE: Institute of Electrical and Electronics Engineers)によって標準規格として提案された、非公式にラムリンク(RamLink)として知られる従来技術のメモリ・システムを示している。この規格はIEEE規格1596.4-1996と表示され、正式にはIEEE Standard for High-Bandwidth Memory Interface Based on Scalable Coherent Interface (SCI) Signaling Technology (RamLink)(スケーラブルな一貫インターフェース(SCI)信号伝送技術(RamLink)に基づく高バンド幅メモリ・インターフェースのためのIEEE規格)として知られている。図1のシステムはメモリ・コントローラ10および一つまたは複数のメモリ・モジュール12を含んでいる。メモリ・コントローラ10は典型的にはプロセッサに組み込まれるか、プロセッサのコンパニオン・チップセット上に作りつけられる。各メモリ・モジュール12は、リンク入力一つとリンク出力一つとを有するスレーブ・インターフェース14を有している。各要素はリングリンク(RingLink)として知られるラムリンクの信号伝送トポロジーで配列されており、要素間は単方向リンク16で結ばれている。各モジュール上にある制御インターフェース18はスレーブ・インターフェース14とメモリ素子20とのインターフェースになる。図1に示したシステムでは、スレーブ・インターフェースとメモリ素子との間に、シンクリンク(SyncLink)として知られるもう一つのラムリンク信号伝送トポロジーが使われている。
ラムリンク・システムの目的は、プロセッサにメモリ素子への高速アクセスを提供することである。データは、メモリ・コントローラとメモリ素子との間でパケットとして転送され、そのパケットはリングリンクに沿って循環する。コントローラは、すべての要求パケットを生成し、スレーブの応答パケットの戻りの計画を立てる役割を担っている。
書き出し処理は、コントローラがコマンド、アドレス、時刻、データを含む要求パケットをある特定のモジュールに送信することで開始される。パケットはモジュールからモジュールへと渡されて目的のスレーブに到着し、するとそのスレーブは当該データをメモリ素子の一つに渡して保存させる。次いでそのスレーブは応答パケットを送る。この応答パケットはモジュールからモジュールへと渡されてコントローラに到着し、書き出し処理が完了したことを確証する。
読み出し処理は、コントローラがコマンド、アドレス、時刻を含む要求パケットをあるモジュールに送信することで開始される。指定されたモジュール上のスレーブはメモリ素子の一つから要求されたデータを取得し、それを応答パケットの形でコントローラに返す。この応答パケットもやはりモジュールからモジュールへと渡されてコントローラに到着する。
図2は、従来技術のラムリンクのスレーブ・インターフェース回路である。図2の回路では、ソース同期のストロボ作用が入力データ信号をクロックするのに使われる。すなわち、入力データ信号にストロボ信号が付随し、そのストロボ信号が入力データをサンプリングするのに使われるのである。図2の回路は、他のスレーブ・インターフェース回路に分配される参照クロック信号から安定したローカル・クロック信号を生成するために位相ロック・ループ(PLL: phase-locked loop)を使っている。このローカル・クロック信号は、データが下流に渡されていくにつれてジッタが累積するのを避けるため、出力データ信号をクロックし直すのに使われる。
[発明を実施するための最良の形態]
この特許は独立した有用性をもつ数多く事項を包含する発明の一環である。場合によっては、原理のいくつかをさまざまに組み合わせて用いることでさらなる恩恵が実現され、それによりさらなる発明を生じることになる。これらの原理は無数の実施形態において実現しうるものである。いくつかの個別的な詳細が発明の原理を解説する目的で示されるが、ほかにも数多くの構成が本発明の原理に基づいて考案されうる。よって、発明の原理はここに開示される個別的な詳細に限定されるものではない。
図3は、本発明の原理に基づくメモリ・インターフェース・システムのある実施形態を示している。図3のシステムはメモリ・コントローラ50および一つまたは複数のメモリ・モジュール52を含んでおり、それらは単方向リンクからなるチャネルを通じて通信する。チャネルは、一つまたは複数の外向きリンク54を有する外向き経路と、一つまたは複数の内向きリンク56を有する内向き経路とを有している。各モジュールは外向き経路上でリンクからリンクへ、内向き経路上でリンクからリンクへと信号を再駆動することができてもよい。各モジュールはまた、たとえば該モジュールが自らが最外モジュールであると検知した場合、あるいはメモリ・コントローラからのコマンドに反応して、いずれかの再駆動機能を選択的に無効にすることができてもよい。
各モジュールは、前記経路の一つまたは複数との間でデータを転送するよう構成されている一つまたは複数のメモリ素子58を含んでいる。たとえば、当該モジュールは、外向き経路からのデータがメモリ素子に転送され、該メモリ素子からのデータが内向き経路に転送されるよう構成されてもよい。一つまたは複数のバッファが一つまたは複数のメモリ素子と一つまたは複数の経路との間に配置されていてもよい。モジュールおよびコントローラは、いかなる特定の機械的構成に限定されるものでもない。たとえば、モジュールはシステムの他の部分とは別個の基板上に作りつけられてもよいし、コントローラやリンクと共通の基板上に作りつけられてもよいし、その他いかなる機械的構成で実現されてもよい。モジュールはまた、いかなる特定の種類のメモリ素子、たとえば読み出し専用メモリ(ROM)、動的ランダム・アクセス・メモリ(DRAM)、フラッシュメモリなどに限定されるものでもない。
図4は、本発明の原理に基づくメモリ・モジュールのある実施形態を示す図である。図4のモジュールは、単方向リンク54Aおよび56A上の信号を受信する二つの再駆動回路60および62を含んでおり、それぞれ単方向リンク54Bおよび56B上の信号を再駆動する。一つまたは複数のメモリ素子58は、前記再駆動回路の一つまたは複数との間でデータを転送するよう構成されている。
図4のモジュールは単方向リンクのいかなる特定の構成にも、また再駆動回路との間のデータ転送のためのいかなる特定の構成にも限定されるものではない。図4のモジュールが図3で示したようなメモリ・システムにおいて使用される場合、再駆動回路60は外向き再駆動回路と呼称し、リンク54Aおよび54Bを含む外向き経路上の信号を受信して再駆動するよう構成され、もう一方の再駆動回路62は内向き再駆動回路と呼称し、リンク56Aおよび56Bを含む内向き経路上の信号を受信して再駆動するよう構成されてもよいであろう。この例では、一つまたは複数のメモリ素子58は、外向き再駆動回路60からメモリ素子へ、そして該メモリ素子から内向き再駆動回路62へとデータが転送されるよう構成されてもよい。
モジュールは、自らがチャネル上の最外モジュールであると検知して、いずれかの再駆動機能を選択的に無効にすることができてもよい。たとえば、図4のモジュールが図3に示したようなメモリ・システムにおいて使用され、該モジュールが自らが最外モジュールであると検知した場合、外向き再駆動回路はリンク54A上の入力信号を受信するが、それを再駆動はしない。同様に、内向き再駆動回路がリンク56Bを駆動するのも、メモリ素子から受け取ったデータに対応する信号や当該モジュールによって内部的に生成されうるその他の信号に対応してのみである。あるいはまた、当該モジュールが自らが最外モジュールだと検知したのでなくても、あたかも最外モジュールであるかのように動作できる(たとえば、メモリ・コントローラからのコマンドに反応して)よう構築されることもできる。その場合、当該モジュールは内向きリンク56A上で受信された信号は無視し、外向きリンク54Bへの信号は再駆動しないようにすることができる。
図5は、本発明の原理に基づくメモリ・モジュールのある別の実施形態およびメモリ・バッファのある実施形態を示している。図5のモジュールは、単方向リンク54Aおよび56A上の信号を受信し、該信号を単方向リンク54Bおよび56B上の信号を駆動する二つの再駆動回路それぞれ60および62を有するメモリ・バッファ64を含んでいる。このメモリ・バッファはまた、一つまたは複数のメモリ素子58との間でデータを転送するよう構成されているメモリ・インターフェース66をも含んでいる。このバッファは、自らがチャネル上の最後のエージェントであると検知して、いずれかの再駆動機能を選択的に無効にすることができてもよい。そうでなくても、このバッファは、たとえばメモリ・コントローラからのコマンドに反応して、あたかもチャネル上で最後のエージェントであるかのように動作できてもよい。ここで、エージェントというのは、前記チャネルとのインターフェースを与えられているいかなるメモリ・コントローラ(ホストともいう)、モジュール、バッファなどを指すのでもよい。
図5のモジュールおよびバッファは、単方向リンクのいかなる特定の構成にも、またメモリ・インターフェースと再駆動回路との間のデータ転送のためのいかなる特定の構成にも限定されるものではない。図5のモジュールが図3で示したようなメモリ・システムにおいて使用される場合、再駆動回路60は外向き再駆動回路と呼称し、リンク54Aおよび54Bを含む外向き経路上の信号を受信して再駆動するよう構成され、もう一方の再駆動回路62は内向き再駆動回路と呼称し、リンク56Aおよび56Bを含む内向き経路上の信号を受信して再駆動するよう構成されてもよいであろう。この例では、当該メモリ・インターフェースは、外向き再駆動回路60からデータを受け取って内向き再駆動回路62にデータを送るよう構成されてもよい。
図4および図5のメモリ・モジュールやバッファを実装するのには、さまざまな機械的構成が使用されうる。たとえば、メモリ素子58、再駆動回路60および62、バッファ64はみな、共通の回路基板上に搭載される別個の集積回路として実現されてもよいし、別個の回路基板上に実現されてもよい。共通の集積回路上に一緒に作りつけられる構成要素はさまざまな組み合わせがありうるし、全部が単一の集積回路上に作りつけられることもありうる。一つまたは複数の回路基板がもし使われるなら、それはマザーボード上のソケットに差し込みうる。ソケットはマザーボードと一体成形されていても、その他いかなる仕方で構成されていてもよい。たとえば、構成要素がマルチチップ・モジュールの一部として作りつけられている場合など、回路基板がないこともある。本発明の原理に基づくメモリ・バッファは、メモリ素子以外の素子にチャネルとのインターフェースを提供するのに用いることができる。たとえば、本発明の原理に基づくメモリ・バッファは、I/Oコントローラまたはブリッジにチャネルとのインターフェースを提供するのに用いることもできる。
本発明の原理に基づく装置のさらなる実施形態は、該装置が図3に示した実施形態のようなメモリ・システムにおいてどのように利用されうるかの理解を助けるため、「内向き」および「外向き」の経路、リンク、再駆動回路といった語句を用いながら記載される。しかし、これらの装置は単方向リンクのいかなる特定の構成にも、リンクと他の回路との間のデータ転送のために示された特定の構成にも、示されるいかなる実装上の詳細にも限定されるものではない。
図6は、本発明の原理に基づくメモリ・システム、メモリ・モジュールおよびメモリ・バッファの実施形態のさらなる例を示している。図6を参照すると、一つまたは複数のメモリ・モジュール52はプリント回路基板をベースとしており、そのプリント回路基板は、一端の両側に沿って接触端子があってデュアル・インライン・メモリ・モジュール(DIMM: dual inline memory module)を形成し、当該システムの他の構成要素を保持している別の回路基板上のコネクタに差し込むこともできる。そのモジュールには、たとえばダブル・データ・レートII(DDR2: Double Data Rate II)動的ランダム・アクセス・メモリ(DRAM: dynamic random access memory)モジュールに使われているようなDIMM外形寸法のような、既存の外形寸法を採用してもよい。
モジュールにはメモリ素子58が配置されている。メモリ素子は、たとえばDDR2 DRAMのような市販タイプのDRAMである。各モジュール上のメモリ・バッファ64は、それらのメモリ素子を、モジュールのメモリ・コントローラ50(ホストともいう)とのインターフェースになるチャネルから隔離する。チャネルは二点間構成の形で配線されており、外向きリンク54を含む外向き経路および内向きリンク56を含む内向き経路を有している。リンクは、低電圧差動信号(low-voltage differential signals)を使った平衡型の単方向ビットレーンを用いて実装してもよい。
図6の実施形態では、コマンド、リセット、初期化などの機能のための追加的な信号線は使われていない。これらの機能はチャネル上で送られるデータ内に直接エンコードされるのである。しかし、代替的に、そのような機能を実装するために追加の信号線をいくつ設けてもよい。
参照クロック信号REF CLKがクロック・シンセサイザ76によって生成され、ホストおよびモジュールに分配される。その際、クロック・バッファ78を経由してもよい。これにより、ローカルに生成されたクロック信号が入力データをサンプリングして再駆動するのに使われるという、準非同期クロック方式を容易にする。共通参照クロックが各エージェントにおいて利用可能なので、データ信号は周波数追跡することなくクロックされうる。代替的に、ローカルなクロック信号が参照信号とは独立して生成されてもよい。もう一つの代替として、ソース同期ストロボ作用のような同期クロック方式を用いてもよい。
ある可能な実施形態では、ホストは、外向き経路上の最内モジュールに、おそらくはパケットまたはフレーム(両者はここでは交換可能な語として用いている)の形でデータを送ることによってデータ転送を開始する。最内モジュールはそのデータを受信して、外向き経路上で次のモジュールへと再駆動する。各モジュールは外向きデータを受信しては再駆動していき、ついには最外モジュールに至る。最外モジュールは「存在しない」外向きリンクに対してデータを駆動しようと試みてもよいが、各モジュールは自らが最外モジュールであることを検知し(または指示され)、無用な電力消費やノイズなどを減らすために再駆動回路すべてを無効にできるようになっていてもよい。この実施形態では、ホストの方向への、すなわち内向きのデータ転送は、前記最外モジュールによって開始される。各モジュールは内向き経路に沿って内向きデータを受信しては再駆動していき、ついにはホストに至る。
物理チャネルにおいてはいかなる好適な通信プロトコルを用いてもよい。たとえば、ホストがすべての内向きおよび外向きのデータ転送のすべてを開始し、計画立てるよう指定されていてもよい。あるいはまた、どのエージェントもデータ転送を開始するのを認められているのでもよい。データのフレームはコマンドを伝えるよう構成されていてもよい。データ読み出し、データ書き出し、状態情報、エラー情報、初期化データ、無意味パターンなど、あるいはその任意の組み合わせなどである。プロトコルは、ホストがコマンド・フレームをある目的モジュールに対して外向き経路に沿って送ったときに、目的モジュールがすぐに応答フレームをホストに対して内向き経路に沿って送り返すように実装されていてもよい。そのような実施形態では、目標モジュールはコマンド・フレームを外向き経路に再駆動することはしない。
代替的な実施形態では、目標モジュールはコマンド・フレームを受信し、次いでそのコマンド・フレームを外向き経路上に再駆動する。最外モジュールがコマンド・フレームを受信すると、最外モジュールは応答フレームを内向き経路上に発生させる(単なる無意味フレームでもよい)。目標モジュールは、その内向き受信要素に前記応答フレームが到着するまで待っている。それから目標フレームは、たとえば最外モジュールによって送られた応答フレームを該目標フレームの真の応答フレームで置き換えることなどによって、内向きデータ・ストリーム内に自分の応答を混ぜ込む。
図7は、本発明の原理に基づくメモリ・バッファのもう一つの実施形態の例を示している。図7のメモリ・バッファは、リンク54Aおよび54Bを含む外向き経路上の信号を受信して再駆動する外向き再駆動回路60ならびに、リンク56Aおよび56Bを含む内向き経路上の信号を受信して再駆動する内向き再駆動回路62を含んでいる。メモリ・インターフェース66は、バッファと一つまたは複数のメモリ素子とのインターフェースとなる。それはメモリ・バス68を介してであってもよい。メモリ・インターフェースは、FIFOバッファのような読み出し・書き出しバッファを含んでいてもよい。外向き経路からのデータはメモリ・インターフェースに結合されるが、それはデスキュー回路70を介してであってもよい。デスキュー回路とは、外向き経路に二つ以上のビットレーンがあった場合にデータビットの間の位相差(skew)を解消するものである。パターン発生器72を使って状態パターンを生成し、それを内向き経路上に送出してもよい。これはたとえば、当該バッファがたまたまチャネル上の最外エージェントであって、内向きリンク56A上に入力信号が受信されないことがありうるような場合である。マルチプレクサ74は選択的にメモリ・インターフェースまたはパターン発生器からのデータを内向き再駆動回路に結合する。
前記メモリ・インターフェースはいかなる特定の構成に限定されるものでもなく、標準的なメモリ素子、特にDDR2 DRAMのような市販のメモリ素子と互換のものでもよい。当該メモリ・バッファ全体が単一の集積回路に組み込まれていてもよいし、一つまたは複数のメモリ素子に組み込まれていてもよいし、その構成要素が別個のコンポーネントに組み込まれていてもよいし、その他いかなる機械的構成を採用してもよい。図7に示した実施形態は単なる例であって、他の実施形態も本発明の原理に基づいて可能である。たとえば、図7の実施形態は外向き再駆動回路からメモリ・インターフェースへ、該メモリ・インターフェースから内向き再駆動回路へと流れる単方向データを用いて示しているが、このデータの流れは双方向でもよいし、その他の構成も考えられる。たとえ図7の実施形態が使われるチャネル・システムにおいて当該メモリ・インターフェースのためのデータが図7に示した通りの流れをする必要しかないとしても、それでも完全な双方向データ・アクセスを有する再駆動回路を用いて実現することができる。そうすればたとえば組み込み自己診断(BIST: built-in self-test)機能の実装などが容易になりうる。その場合、内向き経路からのデータの位相差解消のために第二のデスキュー回路を設けておくと有用となりうる。
図8は、本発明の原理に基づく再駆動回路のある実施形態を示している。図8の回路は一つまたは複数の入出力(I/O)セル74を含んでおり、そのそれぞれは入力データ信号RXを受信し、それを出力データ信号TXとして再駆動しうる。あるいはまた、I/Oセルは読み出しデータ信号RDXを置換または挿入によって出力データ信号に入れてもよい。書き出しデータ信号WDXを前記入力データ信号から取り出すのは、該入力データ信号が出力データ信号として再駆動される前でも後でもよい。
上記の信号名における「X」は、それが再駆動回路中にいくつかあるI/Oセルごとにある複数の同様の信号の一つでありうることを示している。たとえば、9つのビットレーンを有する再駆動回路は、R0、R1、…R8という名の入力データ信号をもつ9つのI/Oセルを有することになる。I/Oセルが一つだけの再駆動回路では、データ入力信号はR0または単にRとなる。総称としてRXを使うことで前記入力データ信号のいずれか、あるいは全部を指すものとする。
「書き出しデータ」の語は、I/Oセルを通るデータ・ストリームから取り出される任意のデータを指すのに便宜上使っている。ただし、これは書き出しデータがメモリ・インターフェースまたはメモリ素子に向けられなければならないことを含意するものではない。同様に、「読み出しデータ」はI/Oセルに入力される任意のデータを指すが、読み出しデータの出所はメモリ素子またはメモリ・インターフェースのみならずいかなるソースであってもよい。
再び図8を参照すると、クロック発生器80が参照クロック信号REF CLKに反応していくつかの位相クロック信号(phase clock signal)PCXおよび一つの送信クロック信号(transmit clock signal)TCを発生させる。クロック発生器は、送信クロックTCを参照クロック信号REF CLKの倍数周期として発生させる位相ロック・ループ(PLL)82と、位相クロック発生器84とを含んでいる。ある可能な実施形態では、4つの位相クロック信号PC0、PC1、PC2、PC3が90°間隔で、送信クロックTCから導かれて存在する。I/Oセルのそれぞれは、TCおよびPCXクロック信号の一つまたは複数を、データ信号をサンプリングおよび/または再駆動したり、追加的なローカルなクロック信号を発生させたりするのに使うことができる。この実施形態では、位相クロック信号および送信クロック信号は、いかなる入力データ信号RXの位相に応じても調整されないという意味で安定な信号である。
図9は、本発明の原理に基づくI/Oセルのある実施形態を示している。受信素子86はデータ信号RXを受信し、サンプリング・クロック信号SCに反応してそれをデータ信号TXとして再駆動するよう構成されている。サンプリング・クロック信号はサンプリング・クロック発生器88によって発生され、該サンプリング・クロック発生器88はデータ信号RXに反応してサンプリング・クロック信号を調整することができる。書き出しデータ信号WDXは受信素子86の入力または出力から取ることができる。もし図9に示すように受信素子の出力から取るのであれば、サンプリング・クロック信号SCは、書き出しデータに対するストロボ信号として、あるいは該ストロボ信号を導くために使われうる。サンプリング・クロック発生器への入力は、図9に示すような受信素子の入力以外の点から取ることができる。たとえば、受信素子の出力からも取ってよい。
図10は、本発明の原理に基づくI/Oセルのある別の実施形態を示している。図10の実施形態では、サンプリング・クロック発生器88は補間器90および受信素子追跡ユニット(RTU: receiver tracking unit)92を用いて実装されている。補間器は、受信素子追跡ユニットからの追跡信号に反応して、いくつかの位相クロック信号PCX(今の場合、90°ずつ位相のずれた4つの信号)の間を補間することによってサンプリング・クロック信号を発生させる。受信素子追跡ユニットはデータ信号RXを観測して、サンプリング・クロック信号が受信素子に適切な時点でデータ信号をサンプリングし、再駆動させるよう、追跡信号を調整する。よって、サンプリング・クロック信号は動的にデータ信号に追随しうる。
ある可能な実施形態では、受信素子追跡ユニットはデータ信号RXにおける遷移をデータ信号のオーバーサンプリングによって観測し、データ信号がデータの目の中心で、すなわちデータ信号の遷移の中間点でサンプリングされ、再駆動されるようサンプリング・クロック信号を調整する。サンプリング・クロック発生器88は、いくつかのビット・セルを測定し、当該データをよりデータの目の位置の中心近くで捕捉するためにサンプリング・クロック信号の位相を調整すべきかどうかを最終的に決定しうるループフィルタを含んでいてもよい。サンプリング・クロック発生器への入力は、図10に示すような受信素子の入力以外の点から取ることができる。たとえば、受信素子の出力からも取ってよい。
本発明の原理に基づくI/Oセルの実施形態は、動的にデータ信号を追跡するようI/Oセルをトレーニングする方式とともに用いてもよい。たとえば、図10のI/Oセルが図3に示したメモリ・モジュールの一つとして使用される場合、ホストは周期的にトレーニング・フレームを外向き経路上に送ってもよい。これらのトレーニング・フレームは、受信素子追跡ユニットがサンプリング・クロック信号を調整できるのに足る数の遷移をデータ信号中に観測することを保証するに十分な尖端密度を有している。同様に、図3における最外モジュールは周期的にトレーニング・フレームを内向き経路上に送ってもよい。
図11は、本発明の原理に基づくI/Oセルのある別の実施形態を示す図である。図11の実施形態は図9のものと同様であるが、データ信号の経路にバッファ94が追加されている。バッファ94はジッタ回避バッファまたはドリフト補償バッファであり、電圧や温度によって誘起される効果を補償するものである。バッファはデータ信号TXを送信クロック信号TCに再同期させる。送信クロック信号は、その位相が、データ信号に反応して、サンプリング・クロック信号SCのようには調整されないという意味で安定である。
図11の実施形態において、バッファは、モード信号に応じて素通しモードでも再駆動モードでも動作することができる。素通しモードでは、信号はサンプリングや再駆動を受けることなく通過する。再駆動モードでは、信号はクロック信号に反応してサンプリングされ、再駆動される。これにより、I/Oセルは異なる再駆動モードで動作できるようになる。ある可能な実施例では、バッファは、モード信号が加えられた場合に素通しモードで動作する。これは再サンプリングモードと称され、遅延が短くなる効果がある。データ信号がデータのサンプリングに使われるのと同じクロックによって再駆動されるからである。モード信号が加えられない場合にはバッファは再駆動モードで動作し、データは送信クロックに同期し直される。これは再同期モードと称され、遅延は長くなるがジッタを軽減する結果となりうる。I/Oセルはモード信号を受信するための入力を有するメモリ・バッファまたはメモリ・モジュールに組み込まれる設計でもよい。メモリ・バッファまたはメモリ・モジュールが次のエージェントまでの信号経路が比較的短いシステム上で使われるのであれば、入力を加えて(あるいは、極性によっては加えないで)I/Oセルを再サンプリングモードで動作させることができる。信号経路が短ければジッタが多くなっても許容されるからである。他方、メモリ・バッファまたはメモリ・モジュールが次のエージェントまでの信号経路が比較的長いシステム上で使われるのであれば、入力を加えるのをやめてI/Oセルを再同期モードで動作させることができる。遅延が長くなる可能性があるものの、ジッタが低減されるからである。代替方法として、メモリ・バッファまたはメモリ・モジュール上で、あるいは再駆動回路中で、あるいはI/Oセルそのものの中で、モード信号を制御するために記録されたフラグが使用されてもよい。
図12は、本発明の原理に基づくI/Oセルのある別の実施形態を示している。図12の実施形態では、受信データ信号RXおよび送信データ信号TXは差動信号であり、I/Oセルが作りつけられうる集積回路チップの端を横切るものとして示されている。受信素子86はサンプリング・ユニット96および終端ユニット98を含んでいる。サンプリング・ユニットは入力データ信号を、サンプリング・クロック発生器からの位相クロック信号に反応して補間器90によって生成されるサンプリング・クロック信号SCに反応してサンプリングする。終端ユニットは差動終端を提供し、差動データ信号をシングルエンド信号に変換する。ジッタ回避バッファまたはドリフト補償バッファ94はサンプリング・クロック信号SCまたは安定な送信クロック信号TCに反応してデータをクロックする。マルチプレクサ100は選択的にバッファ94またはシリアライザ102からのデータ信号を送信ラッチ104に結合する。読み出しデータ信号RDX[0…n]はI/Oセルにおいてはシリアライザ102で受信される。バッファ94と送信ラッチ104との間にもう一つマルチプレクサを配置して、一つの入力をバッファに、もう一つの入力を補間器の出力に接続してもよい。
I/Oセルが読み出しデータをデータ・ストリームにマージする必要がある場合は、マルチプレクサはシリアライザに結合されている入力を選択して、送信ラッチが読み出しデータを送信クロック信号TCに反応してI/Oセルから送出されるようクロックする。それ以外の場合には、マルチプレクサはデータ信号をバッファから選択し、次いで送信ラッチがその信号を再駆動する。送信データ信号は次の単方向リンクに送り出される前に送信素子106によって再度差動信号に変換される。書き出しデータは、送信ラッチの出力から取られ、デシリアライザ108で集められ、それからデスキュー回路、ビットレーン・フェイルオーバー機構その他の回路に送付される。デシリアライザはビット・ライン・クロック信号(BLC: bit line clock signal)も出力するようになっていてもよい。BLCはサンプリング・クロック信号から導くことができ、書き出しデータWDX[0…n]がいつ有効になるかを示すものである。
本発明の原理のいくつかは、再駆動経路とは別個に信号の位相差解消を行うことに関している。再駆動経路は、信号が受信されては再駆動される形で伝搬する一つまたは複数の構成要素によって定義される。たとえば、図9および図10の実施形態では、再駆動経路は受信素子86およびバッファ94を含んでいる。図12の実施形態では、再駆動経路はサンプリング・ユニット96、終端ユニット98、バッファ94、マルチプレクサ100、送信ラッチ104、送信素子106を含んでいる。
本発明の原理のいくつかによれば、デスキュー回路は再駆動回路に組み込まれて、デスキュー回路の個々のビットレーンが再駆動経路に含まれるようにする。よって、ビットレーン上の信号は各再駆動回路において経路に沿って再駆動される際に位相差解消が行われうる。しかし、代替的に、本発明の原理に基づくデスキュー回路は再駆動経路とは別個のものでもよい。たとえば、図7の実施形態では、デスキュー回路は、再駆動回路60の再駆動経路からのみならず再駆動回路全体からも独立している。あるいはまた、本発明の原理に基づくデスキュー回路は、再駆動回路に組み込まれてはいるが再駆動経路とは別個のものであってもよい。たとえば、図12の実施形態において、一つまたは複数のデスキュー・ラッチがシリアライザ102の出力に、あるいはデシリアライザ108の入力に、あるいはその両方に位置していてもよい。
再駆動経路とは別個に信号の位相差解消を行う方法および装置の上記したような実施形態は単なる例であり、これらの特定の例に限定されるものではない。さらに、この特許に基づく再駆動経路とは別個に位相差解消を行うことに関する原理は、この特許の他の発明の原理とは独立している。たとえば、図9〜図12において示されている再駆動回路の実施形態が別個の外向き経路と内向き経路を有するメモリ・システムでの使用に限定されないのとちょうど同じように、この特許に基づく再駆動経路とは別個に信号の位相差解消を行うことに関する原理も、たとえばラムリンクのようなリング型構成のリンクを利用したアーキテクチャなどの単方向リンクを利用するメモリ・アーキテクチャの他の型とともにも用いられうる。
本発明の原理のいくつかは、エラーのあったビットレーンへの対処に関するものである。たとえば、図3、4、5、6、7の実施形態に示されているエージェントのいずれかの間の単方向リンクのいずれかが二つ以上のビットレーンを有するようにしてもよい。本発明の原理によれば、不良ビットレーンを回避するため、前記複数のビットレーン上で二つ以上の信号の経路変更ができる。メモリ・コントローラ(ホスト)、モジュール、バッファなどといったどのエージェントでも、複数のビットレーン上で二つ以上の信号の経路変更ができてよい。信号の経路変更はリンクのどちらの端で行ってもよく、あるいは両端で行ってもよい。どのエージェントでも、エラーのあったビットレーンを検出することができてよく、それも自動的にでも、他のエージェントの助けを得てでもよい。そしてどのエージェントでも、他のエージェントからのコマンドに反応しての信号の経路変更ができてよい。
図13は本発明の原理に基づくフェイルオーバー回路のある実施形態を示している。図13のフェイルオーバー回路110が再駆動回路112のある実施形態とともに示されているのは解説のためだけであって、本発明の原理はいかなる特定の再駆動回路と共に使用されることにも限定されるものではなく、フェイルオーバー回路は図13に示された特定の詳細に限定されるものでもない。再駆動回路112は、単方向リンク上の信号を受信し、再駆動するよう構成されたいくつかのビットレーンを含んでいる。各ビットレーンは、受信素子116および送信素子118を有するI/Oセル114として具現されている。
フェイルオーバー回路とは、複数のビットレーンへの、あるいは複数のビットレーンからの一つまたは複数の信号を経路変更できる回路のことをいう。図13の実施形態では、フェイルオーバー回路は一つまたは複数のマルチプレクサ・スイッチ120を有するマルチプレクサとして実装されている。各スイッチは一つのビットレーンに結合された第一の入力と、隣接するビットレーンに結合された第二の入力とをもち、どちらのビットレーンからの信号を出力するようにも経路変更しうるようになっている。図13に示した実施形態は6つのビットレーンを扱う6つのスイッチをもつものとして描かれているが、使われるスイッチおよびビットレーンの数はいくつでもよく、スイッチの配列も図示した隣接ビットレーン構成以外のさまざまな構成の配置でよい。
通常の動作モードの間は、図14に示すように、スイッチのそれぞれはその第一の入力からの信号を出力に送り、書き出しデータ信号WD0、WD1、WD2、WD3、WD4、WD5はそれぞれ出力OUT0、OUT1、OUT2、OUT3、OUT4、OUT5に向けられる。そのような実施例では、ビットレーンの一つ、たとえばWD5に対応するビットレーンを他のビットレーン上のデータの誤り検査に使うことができる。
不良ビットレーンが検出された場合、マルチプレクサはフェイルオーバー・モードで動作でき、すると一つまたは複数のスイッチが操作されて不良ビットレーンを経路から除外しようとする。たとえば、WD3に関連付けられているビットレーンが正しく動作しない場合、マルチプレクサのスイッチは、図15に示すように書き出しデータ信号WD4およびWD5がそれぞれ出力OUT3およびOUT4に出力されるよう経路変更することができる。このモードでは、一ビットレーン分の信号容量が失われている。ビットレーンの一つが誤り検査用に指定されていたとすると、元来不良を起こしたビットレーンを使うはずだった信号はその誤り検査用レーンを通るよう経路制御され、誤り検査機能は無効とすることができる。
フェイルオーバー回路の出力は、メモリ・インターフェース、メモリ素子またはその他の回路に結合されていてもよい。図13の実施形態では、フェイルオーバー回路は再駆動回路とは別個のものとして示されているが、再駆動回路内に組み込まれていてもよい。本発明の原理に基づくフェイルオーバー回路は、図示したような単純なマルチプレクサを用いても実現できるが、完全なクロスバースイッチなどのような他の構成もまた可能である。
図13に示したフェイルオーバー回路の実施形態は、ビットレーンからの書き出しデータを出力に結合させるよう構成されていた。代替的に、本発明の原理に基づくフェイルオーバー回路の実施形態は、逆向きにデータを転送するよう構成されて、OUTXが読み出しデータを受け取る入力となって、マルチプレクサ・スイッチがデマルチプレクサ・スイッチと称されて、I/Oセルのそれぞれが受信素子と送信素子との間にフェイルオーバー回路からの読み出しデータをビットレーンにマージするためのマルチプレクサを有していてもよい。このように、マルチプレクサはマルチプレクサおよびでマルチプレクサの両方を指す。もう一つの代替として、本発明の原理に基づくフェイルオーバー回路の実施形態は、ビットレーンとメモリ素子、メモリ・インターフェースまたはその他の回路との間の双方向データフローのために構成されていてもよい。
メモリ・バッファ、メモリ・モジュール、メモリ・コントローラ(ホスト)またはビットレーン・フェイルオーバー機能をもつその他のエージェントはまた、エラーのあったビットレーンを検出し、信号を経路変更し、不良ビットレーンを経路から除外し、その他本発明の原理に基づく同様のことをするためのさまざまな機能を有していてもよい。たとえば、図13に示したフェイルオーバー回路の実施形態を有するエージェントは、たとえば別のエージェントから送られた試験データ・パターンを観測することによってエラーのあったビットレーンを検出し、信号を経路変更してエラーのあったビットレーンを経路から除外できるよう設計することができる。あるいはまた、当該エージェントは、たとえばメモリ・チャネル上の一つまたは複数のエージェントに指令するメモリ・コントローラなど他のエージェントからのコマンドに従ってエラーのあったビットレーンを経路から除外するよう設計することもできる。あるいはまた、当該エージェントは両方の機能を有していてもよい。
図16は、本発明の原理に基づくビットレーン・フェイルオーバー機能をもつメモリ・バッファの実施形態を示している。図16の実施形態は、図7と同様であるが、デスキュー回路70とメモリ・インターフェース66との間に結合されているフェイルオーバー回路122をも含んでいる。代替的な実施形態も可能である。たとえば、フェイルオーバー回路は再駆動回路60とデスキュー回路との間に配置されていてもよいし、再駆動回路に組み込まれていてもよい。図16の実施形態はまたもう一つのフェイルオーバー回路124をも含んでいる。これは、マルチプレクサ74と再駆動回路62との間に結合されて示されているが、これも再駆動回路に組み込まれたり、その他の配置をされたりしてもよい。図16のメモリ・バッファは代替的にメモリ・モジュールとして具現されてもよい。その場合、メモリ・インターフェースのところにはメモリ素子がはいる。
図17は、本発明の原理に基づくビットレーン・フェイルオーバー機能をもつメモリ・コントローラの実施形態を示している。図17のコントローラは、複数のビットレーンをもつ外向きおよび内向きの単方向リンク・インターフェース126および128を含んでいる。そのそれぞれがこの実施形態ではいくつかの送信素子および受信素子を含んでいる。フェイルオーバー回路130および132はそれぞれインターフェース126および128のビットレーンに結合されている。図17の実施形態では、フェイルオーバー回路はリンク・インターフェースとは別個のものとして示されているが、代替的に、リンク・インターフェースと一体になっていてもよい。当該コントローラはエラーのあったビットレーンを検出することができうる。その場合、フェイルオーバー回路がエラーのあったビットレーンを経路から除外しうる。追加的または代替的に、当該コントローラはエージェントにエラーのあったビットレーンを経路から除外するよう指示するコマンドを発することができるようになっていてもよい。
本発明の原理に基づく追加的なフェイルオーバーの方法および装置について、これから、本発明の原理に基づくメモリ・コントローラ(ホスト)、メモリ・モジュール、メモリ・バッファの追加的な実施形態を含む完全なメモリ・チャネル・システムの代表例としての実施形態を背景として説明する。ただし、いずれのコンポーネントも、この代表例としてのシステムにも、ここで記載されるいかなる詳細にも限定されるものではない。
前記代表例としてのシステムは、図17を参照しつつ説明したようなフェイルオーバー機能を有するホストの実施形態および、図16を参照しつつ説明したようなフェイルオーバー機能のあるバッファを有する一つまたは複数のメモリ・モジュールの実施形態を含んでいる。この例では、ホストおよびモジュールは、図7に示したような外向き経路と内向き経路とを有するチャネル構成に配置されている。ただし、システムに含まれるモジュールが一つだけであってもよい。
この例では、ホストおよびモジュールは「SMBus」として知られるシステム管理バス(system management bus)と相互接続されている。SMBusはシステム内の構成要素を管理するのに使われるシリアル・バス・システムである。しかし、SMBusの使用は本発明の原理に必須ではなく、メモリ・チャネル経路自身を含め、コンポーネント間の別の形の通信を使ってもよい。
この代表例としてのシステムにおける、エラーのあったビットレーンを検出して経路から除外するための本発明の原理に基づく方法のある実施形態は、次のように進行する。ホストが外向き経路の各ビットレーン上に試験パターンを送信する。試験パターンは外向き経路に沿って各モジュール上のバッファによって受信され、再駆動されていき、ついには最外モジュールに到着する。するとこの最外モジュールが内向き経路の各ビットレーン上で試験パターンを送信する。試験パターンは内向き経路に沿って各モジュール上のバッファによって受信され、再駆動されていき、ついにはホストに到着する。ホストと各モジュール上のバッファとは、内向き経路および/または外向き経路上の各ビットレーン上の試験パターンを観測し、ビットレーンが正しく動作しているかどうかを検査する。内向き経路および外向き経路のビットレーンは同時に検査してもよい。
エラーのあったビットレーンは、SMBusを通じてホストに結果を送信することによって、あるいは当該チャネルを通じてホストに結果フレームを送信することによって、あるいはその両方によって報告される。そのような結果フレームは、最外モジュールによって内向き経路上で発生されうる。他のモジュール(もしあれば)もその内向き経路のデータ中に自分たちの結果情報を混ぜ込むことができる。各モジュールからの結果が二つ以上のビットレーン上で冗長に送信される場合、エラーのあったビットレーンが結果の報告を妨げる可能性は低くなる。
ひとたびホストが結果を受信すると、ホストは、SMBusを通じて、あるいは当該チャネルを通じて、あるいは他のいかなる通信形態でもよいが、構成コマンドをモジュールに発しうる。構成コマンドはモジュールに、もし該当すればビットレーンが不良であり、経路から除外すべきであることを告げる。モジュールはこの構成コマンドに対して一つまたは複数のフェイルオーバー回路を操作してもしあれば不良ビットレーンを迂回するよう信号の経路変更をし、ビットレーンが減ったことを埋め合わせるため何らかの内部機能の再構成を行うことで応答する。たとえば、一本のビットレーンが誤り検査データとして指定されていたとすると、バッファやモジュールは誤り検査機能を無効にすることができる。
上述したフェイルオーバーの方法および装置の実施形態は単なる例であって、本発明の原理はこれらの特定の例に限定されるものではない。本発明に基づくフェイルオーバーの方法および装置の原理は、図3の実施形態のような別個の内向き経路と外向き経路とを有するメモリ・システムを参照しつつ説明してきたが、その原理は、たとえばラムリンクのようなリング型のリンク構成を利用するアーキテクチャのような、単方向リンクを利用したいかなるメモリ・アーキテクチャにも適用しうる。
本発明の原理のいくつかは、転置状態パターンに関するものである。先に図1や図3を参照しつつ説明したようなメモリの読み出し・書き込みデータがメモリ・エージェントの間で転送されるようなメモリ・システムにおいては、無意味パターン、警告パターン、その他の状態情報といった状態情報をメモリ・エージェントの間で送ることが有用であることもある。これは、データ・パターンと状態パターンとをメモリ・エージェントどうしを接続する同一の単数または複数のリンク上で送ることで実現されうる。本発明の原理によれば、状態パターンは転置されて時間とともに変化しうる。
たとえば、図3を参照すると、メモリ・コントローラ50は読み出しコマンドのようなデータ・パターンを有するフレームを一つまたは複数のモジュール52に向けて送りうる。モジュールは読み出しデータのようなデータ・パターンを有するフレームをコントローラに送り返すことで応答する。この一つまたは複数のモジュールがメモリ・コントローラに無意味パターンを有するフレームを送ることが有用となることがある。たとえば、そのモジュールがメモリ素子58から読み出しデータを十分な速さで取得できなかった場合である。無意味パターンとしてはあらかじめ決められたデータ・パターンを指定することができ、メモリ・コントローラがその無意味パターンを受け取ったら、メモリ・コントローラは読み出しデータを受信しているのではないと知るのである。ただし、本物の読み出しデータ・パターンがたまたま指定された無意味パターンと一致した場合、これは問題となりうる。
本発明の原理によれば、メモリ・コントローラおよび一つまたは複数のモジュールはいずれもそのような無意味パターンを予測可能な仕方で転置して、無意味パターンが時間とともに変化するようにすることができうる。たとえば、メモリ・コントローラおよびモジュールは、無意味フレームが送受信されるたびに所定のシーケンスに従って無意味パターンを変えてもよい。本発明の原理に基づくそのような方法の実施形態が図18に示されている。ここで、メモリ・コントローラが読み出しコマンド・フレームを送り(158)、応答フレームを受け取り(160)、その応答フレームが現行の無意味パターンを含んでいた場合(162)、メモリ・コントローラは同じ読み出しコマンドを再送信しうる(164)。第二の応答フレーム(166)も第一の応答フレームと同じパターンを含んでいれば(168)、メモリ・コントローラはそれが本物の読み出しデータであると解釈する。しかし、第二の応答フレーム中のパターンが転置された無意味パターンと一致すれば(168)、メモリ・コントローラは第一の応答フレームが無意味フレームだったと知るのである(172)。
本発明の原理によれば、状態パターンの形で送られる状態情報は無意味パターン、警告パターンその他の状態情報でありうる。その他の状態情報とは、モジュールからのコマンド・エラー情報、モジュールからの熱的過負荷情報、あるモジュールがメモリ・チャネルの外向き経路上に別のモジュールの存在を検出したことを示す情報などである。状態パターンの一部の種類は相補的なパターンとして実装されうる。たとえば、警告パターン(エージェントにエラー状態を通知するのに使われうる)は無意味パターンの論理的な補数として実装されうる。これはたとえば、メモリ・エージェントが無意味パターンと警告パターンに同じパターン発生器を使えるようにすることによって実装を単純化しうる。パターンの転置を使わなくても相補的な状態パターンの使用は有益でありうる。
本発明の原理に基づくメモリ・エージェントはまた、状態パターン中に巡回冗長検査(CRC: cyclic redundancy check)のような誤りを意図的に生成することができてもよい。そのような技法はデータ・パターンを状態パターンから区別する代替的または補足的な方法として有用でありうる。たとえば、いくつかのメモリ・システムでは、各フレームは該フレーム内のデータの保全性を検査するのに使われたCRC符号とともに送られる。
本発明の原理によれば、メモリ・エージェントは意図的に誤ったCRC符号を状態パターンを含むフレームとともに送りうる。すると受信エージェントはそのフレームをデータ・フレームではなく状態フレームとして解釈する。いくつかのメモリ・システムはCRCデータを伝えるために余分のビットレーンをもつ単数または複数の経路を利用しうる。もしそのようなシステムがフェイルオーバー・モードで動作することができれば、単数または複数のエージェントは、フェイルオーバー・モードでの動作でない場合に意図的なCRC誤りを利用するだけでよい。ここでは、CRCという用語を巡回冗長検査のみならず、フレームやパターンの保全性を検証するのに使われるその他あらゆる種類の誤り検査方式をも指すものとして使っている。
本発明の原理に従った状態パターンの転置および扱いの原則はいかなる種類のメモリ・エージェントにも適用可能なものであり、本発明の他の原理とは独立であるが、図7で示された実施形態のようなメモリ・バッファとの関連で、そして図6で示された実施形態のようなシステムを背景として、いくつかの追加的な側面を説明する。図6を参照すると、メモリ・バッファ64がメモリ・チャネル上の最外エージェントである場合、該メモリ・バッファは、ホストがメモリ・インターフェース68につながっているいずれかのメモリ素子に要求したデータを送信しているのでないときには、内向きリンク56B上で常時、転置無意味状態フレームを送信していることができる。
図19は、本発明の原理に基づく転置パターン発生器のある実施形態を示している。図19の実施形態は、多項式x12+x7+x4+x3+1を使った12ビットの線形フィードバックシフトレジスタ(LFSR: linear-feedback shift register)である。初期状態は000000000001と設定でき、LFSRは212−1状態(4095フレーム)の周期で同じパターンが繰り返される。LFSRの各ビットはデータ経路上のリンク中の一つのビットレーンに載せられうる。各ビットは、その対応するビットレーン上で、ある1フレーム全体の間に生じる転送のすべてに使われうる。たとえば、各リンクに12個のビットレーンがあるデータ経路をもつシステムでは、LFSRの各段階からの出力はビットレーンのうちの一つに載せられうる。追加的なレーン、たとえば13番目のビットレーンは、1フレーム遅れのLFSRの最下位ビットの値を使うことによって対応できる。
図20は、図19の転置パターン発生器によって生成される第1の状態パターンの例を示している。この例では、1フレームは転送12回分の長さである。図21〜22はそれぞれ第2、第3、第4の状態パターンを示している。ある1フレーム全体の間、各ビットレーン上で同じ値を使うことによって、電磁障害(EMI: electromagnetic interferenceすなわちノイズ)が軽減されうる。
ここでの12ビット転送分の長さの13ビットレーンのフレームというのは例として挙げたのであって、本発明の原理はこれらの詳細に、また上述の転置パターン発生器の特定の実施形態に限定されるものではない。たとえば、本発明の原理に基づく転置パターン発生器は上記のLFSRのような専用論理回路を用いて実装される必要はない。代替的に、プログラム可能論理を用いて実装されても、あるいは転置状態パターンを利用するメモリ・インターフェースにおける論理またはバッファもしくはその他のメモリ・エージェントの機能を監督したり実装したりするのに使われうるプロセッサその他のプログラム可能状態機械におけるアルゴリズムとして実装されてもよい。
本発明に基づくいくつかの追加的な発明的原理は、二つ以上のビットレーンをメモリ・リンク上のメモリ・エージェントの存在を検出するために利用することに関するものである。たとえば、図7に示されたメモリ・バッファの実施形態において、バッファは外向きリンク54Bに結合されている別のメモリ・エージェントがあるかどうかを検出することができてもよい。これは、リンク中のビットレーンの一つを別のメモリ・エージェントの存在を検査するために利用することによって実現されうる。しかし、リンク中にビットレーンが二つ以上あれば、本発明の原理に従って別のメモリ・エージェントの存在を検出するために二つ以上のビットレーンを使用することができる。これにより、不良ビットレーンの存在によって存在検出動作が妨げられることを防ぎうる。
便宜上、メモリ・エージェントの存在を検出するために二つ以上のビットレーンを利用することに関する本発明の原理のことは、個々に、そして総称的にも、冗長存在検出と称する。冗長存在検出は、複数のビットレーンをもつリンク・インターフェースを有するいかなる種類のメモリ・エージェントにも適用しうる。たとえば、図13の実施形態で示された送信素子118のいかなる二つ以上でもリンク・インターフェース、今の場合だと送信リンク・インターフェースと考えられる。同様に、図13で示された受信素子116のいかなる二つ以上でもリンク・インターフェース、今の場合だと受信リンク・インターフェースと考えられる。冗長存在検出はこれらのリンク・インターフェースのいずれにも、また図17の実施形態で示されたリンク・インターフェース126および128のいずれにも適用しうる。
例として今一度図7の実施形態に戻ると、メモリ・バッファは、リセットなどの存在検出イベントが発生したときに自分の存在を別のバッファに伝達するために、内向き送信リンク56B上の3つのビットレーンを所定の存在検出論理レベル(たとえば「1」)に駆動しうる。また、存在検出イベントの間、チャネル上で前記第一のバッファより内側に位置するある第二の同様のメモリ・バッファは、内向き受信リンク56A上の対応する3つのビットレーンを前記第一のバッファの存在を検出するよう構成しうる。この例では、第一のメモリ・バッファは外側のエージェント、第二のバッファは内側のエージェントと呼ぶことにする。
あるビットレーンを別のエージェントの存在を検出するよう構成するための技術の例は、そのビットレーンを受け持つ受信素子がそのビットレーンに、そのビットレーンが存在検出論理レベルと反対のレベルになるよう強制するようなバイアス電流を載せようとすることである。存在検出イベントの間に別のメモリ・エージェントがそのビットレーンに結合されていたら、該別のメモリ・エージェントのそのビットレーン上の送信素子がそのビットレーンが存在検出論理レベルとなるよう強制することになる。
内側のエージェントが前記3つのビットレーンのうちの2つに存在検出論理レベルを検出すれば、該内側のエージェントは外側のエージェントが存在することを知り、その外側ポートの全部または一部を有効のままにしうる。(今の例では、外側ポートは外向きリンク54Bのためのリンク・インターフェースおよび内向きリンク56Aのためのリンク・インターフェースを含む。)もし内側のエージェントが前記3つのビットレーンのうち少なくとも2つに存在検出論理レベルを検出しなかった場合、該内側のエージェントは外側のエージェントが存在しておらず、外側ポートの全部または一部を無効にしてもよいと知る。この内側のエージェントは、外側のエージェントの存在または不在を他のエージェントに報告することができてもよい。たとえば、状態検査コマンドに反応してメモリ・コントローラに報告するなどである。
冗長存在検出を利用するエージェントはまた、存在検出イベントを他のエージェントに伝達することができてもよい。たとえば、リセット・イベントが図7のバッファに外向き経路上のリセット・コマンドを通じて伝達された場合、このコマンドは外側のエージェント(もしあれば)に再駆動回路60によって中継されうる。これで両方のエージェントは存在検出モードにはいる。
本発明の原理に基づく冗長存在検出は上で議論した特定の実施形態に限定されるものではない。たとえば、存在検出に使われるビットレーンは上の例のように3つではなく2つだけでもよい。その場合、内側のエージェントは、外側のエージェントが存在すると結論するのに単一のビットレーン上に存在検出論理レベルが検出されるだけでいい。同様に、冗長存在検出は、たとえばラムリンクのようなリング型構成を利用するアーキテクチャなどその他さまざまな種類のメモリ・アーキテクチャを使ったシステムおよびコンポーネントに適用されうる。
本発明に基づくいくつかの追加的な発明的原理は、メモリ・チャネル上での構成要素の電源投入状態での追加および/または取外しに関するものである。すなわち、当該メモリ・チャネルの動作中に構成要素を追加したり取り外したりするのである。図24は本発明の原理に基づくメモリ・エージェント134のある実施形態を示している。図24の実施形態は、メモリ・モジュール、メモリ・バッファ、メモリ・コントローラなどでありうる。当該エージェントは第一のポート136および第二のポート138を含んでいる。単に解説の目的で当該エージェントが図6の実施形態におけるモジュール52の一つのようなメモリ・モジュールであるとすると、前記第一のポートはメモリ・コントローラのより近くに位置するメモリ・チャネル上の他のエージェントと通信するよう構成されうるので、内側ポートと称することができる。同様に、前記第二のポートはメモリ・コントローラからより遠くに位置するメモリ・チャネル上のエージェントと通信するよう構成されうるので、外側ポートと称することができる。こうした呼称は単に解説のためであり、本発明の原理はメモリ・エージェントのこれらの詳細にも、図6に示されたメモリ・チャネルの個別部分にも限定されるものではない。こうした原理は、図1に示されたラムリンク・アーキテクチャのようなその他のメモリ・チャネル・アーキテクチャにも適用可能でありうる。
本発明の原理に基づくメモリ・エージェントの各ポートは一つまたは複数のリンク・インターフェースを有している。図24の実施形態では、各ポートは受信リンク・インターフェースおよび送信リンク・インターフェースを有している。内側ポート136は受信リンク・インターフェース140および送信リンク・インターフェース142を有しており、受信リンク・インターフェース140は再駆動回路60の部分である一つまたは複数の受信素子でありえ、送信リンク・インターフェース142はもう一つの再駆動回路62の部分である一つまたは複数の送信素子でありうる。外側ポートは受信リンク・インターフェース144および送信リンク・インターフェース146を有しており、これらもやはりそれぞれ再駆動回路62および60の部分である。リンク・インターフェース140および146はそれぞれ外向きリンク54Aおよび54Bに結合されえ、リンク・インターフェース142および144はそれぞれ内向きリンク56Bおよび56Aに結合されうる。リンク・インターフェースのそれぞれは一つまたは複数のビットレーンを有していることができ、そうしたビットレーンおよびインターフェースはこうした用語の適当な組み合わせを用いて命名することができる。たとえば、インターフェース142のビットレーンは内向き送信ビットレーンまたは内向きTxビットレーンと称されうる。インターフェース144のビットレーンは内向き受信ビットレーンまたは内向きRxビットレーンと称されうる。
図24の実施形態は単なる例であって、メモリ・エージェントおよびポートは別の方法でも実施されうる。たとえば、リンク・インターフェースは必ずしも再駆動回路の一部でなくてもよい。このことは、図17で示したメモリ・コントローラの実施形態に示されている。図17でのポートは、再駆動回路の一部ではないリンク・インターフェース126および128を含んでいたのであった。リンク・インターフェースに含まれるビットレーンは一つだけでもいくつでもよく、ポートは受信リンク・インターフェースまたは送信リンク・インターフェースの一方だけしか有していなくてもよい。
本発明の原理に基づくメモリ・エージェントはその一つのポート上で別のメモリ・エージェントの存在を検出することができてもよく、また別のメモリ・エージェントの存在または不在に応じてさまざまな行動をとることができてもよい。たとえば、図24のメモリ・エージェントは、もしポートに別のメモリ・エージェントが存在していなければその外側ポートの全部または一部を無効にすることができてもよい。外側のエージェントの存在または不在を別のエージェント、たとえばメモリ・コントローラに内側ポートを通じて報告することができてもよい。図24のメモリ・エージェントは、存在検出イベントを外側ポート上に存在しうる外側のエージェントに向けて送出することを含めた存在検出動作を実行することができてもよい。また、高速リセット動作を実行することができてもよい。
電源投入状態での追加/取外しを容易にしうるこの特許出願に基づくいくつかの追加的な発明的原理について、メモリ・システムの実施形態の背景において説明する。その実施例は、図24のメモリ・エージェントを参照しつつ図6の実施形態のようなメモリ・システムを背景として説明する。この実施例では、図24のメモリ・エージェントは図6のバッファのうちの一つまたは複数を具現するものとして使われ、該バッファ自身はメモリ素子を有するモジュールの一部である。ただし、こうした詳細はみな単に説明のためのものであり、本発明の原理はこうした詳細に限定されるものではない。
今の例のシステムでは、メモリ・エージェントは高速リセット動作、完全リセット動作および/またはさまざまなポーリングもしくは存在検出動作を実行することができてもよい。今の例のシステムでは、各ビットレーン上で導出されたクロックをデータ・ストリームとロックしたままに保つには、ある最低数のクロック遷移が必要となりうる。このため、メモリ・コントローラ(またはホスト)は、ある所定の期間にわたって外向き経路内のビットレーンの一つまたは複数に1または0の連続ストリームを送ることによってリセット動作を開始できる。データは経路上の各バッファによって再駆動されるので、全バッファがリセット・コマンドすなわちリセット・イベントを受け取る。今の例のシステムでは、3つの最下位ビット(LSB: least significant bit)レーンをリセット動作の合図として使うことができる。受信エージェントは、3つのLSBのうちいずれか2つの上に0または1のストリームを感知することによってリセット・イベントを検出する。これにより、一つのビットレーンにエラーがあってもリセット動作は妨げられないことが保証されうる。ただし、本発明の原理は、二つ以上のビットレーンを必須とすらしておらず、そのような実装に限定されるものではない。
今の例のシステムでは、ホストは0の連続ストリームを送って、チャネル上の全エージェント(今の例ではバッファを有するモジュール)をある第一のリセット状態に置く。それは無期限で、たとえばホストが外的条件によってリセット状態に置かれている間続く。次いでホストは1のストリームをある第一の時間、たとえば2フレーム周期にわたって送り、それから0に戻ることで他のエージェントに高速リセット動作の実行を合図する。あるいはまた、ホストは1のストリームをある第二の時間、たとえば2フレーム周期より長い時間にわたって送ることで他のバッファに完全リセット動作の実行を合図することができる。完全リセットは、リンク上のインピーダンス整合、受信素子や駆動回路における電源較正、受信素子オフセット打消しなどといったさまざまな内部的な較正動作を含みうるものである。較正動作が実行されたのち、ホストは高速リセット動作への遷移をバッファに合図する。
高速リセット動作は較正動作などの完全リセットで実行される一部の動作を省略しうる。高速リセット動作は存在検出動作によって開始されうる。存在検出動作の間、チャネル上の各バッファは前記3つのLSB内向きRxビットレーン上に電流を載せて、それらが外側のエージェントに接続されていない場合に当該ビットを強制的に0にしようとしうる。存在検出動作の間にはまた、各バッファは前記3つのLSB内向きTxビットレーンを1に駆動しうる。次いで各バッファは自分の3つのLSB内向きRxビットレーンを調べ、3本のレーンのうちの2本で1を検出した場合には外側ポートを有効のままにしておき、状態レジスタをそれに従って更新しうる。該バッファが2つの1を検出しなかった場合には、外側のエージェントは存在しないと想定することができ、外側ポートの全部または一部を無効にし、チャネル上での最外エージェントの機能を実行するよう準備したり、状態レジスタをそれに従って更新したりしうる。ホストも、チャネル上にエージェントがあるかどうかを判別するために同様の存在検出動作をたどることができる。各バッファは、ホストからの状態要求に反応して状態フレームの形で状態情報をホストに中継しうる。
存在検出動作ののち、今の例のシステムのバッファは高速リセットの間にさまざまな他の動作状態を通過しうる。たとえば、バッファ上のローカル・クロックをデータ・ストリームにロックするようトレーニングするクロック・トレーニング状態、チャネル上を送られるフレームを整列するフレーム・トレーニング状態、全ビットレーンの動作を調べてバッファにその機能があればフェイルオーバー・モードに移行させるビットレーン試験などである。また、ひとたびホストがチャネルに接続されている他のエージェントの数を知ったら、ホストは全エージェントを受け入れるためにフレームの大きさ、タイミングなどを調整しうる。
今の例のシステムでは、メモリ・エージェントは追加的または代替的に、チャネル上に新たに追加されたエージェントの存在を検出するためのさまざまなポーリング動作を実行することができうる。たとえば、各バッファは、もし最外バッファであれば、チャネルに新たなエージェントが追加されたかどうかを判別するために、外側ポート上でポーリング動作を実行することができうる。図25は、本発明の原理に基づくそのようなポーリング動作の実施形態を示している。
148において、当該エージェントは外側ポートの全部または一部を無効にしていることがありうる。当該エージェントがバッファまたはモジュールであれば、150においてホットリセット動作に移行するホストからのポーリング・コマンドを待てばよい。当該エージェントがホストであれば、外側ポートの全部または一部を無効にして、システム環境からの覚醒コマンドを待てばよい。覚醒コマンドを受信したら、当該エージェントは外側ポートの全部または一部を有効にしてリセット状態に移行しうる。
150において、当該エージェントは外側ポートを有効にして0のストリームを3つのLSB外向きTxビットレーン上に駆動し、外側ポート上の潜在的な新規エージェントにリセットを送信する。当該エージェントは次に152のホット較正動作に移行する。
152において、当該エージェントは1のストリームを3つのLSB外向きTxビットレーン上に駆動し、潜在的な新規エージェントが較正動作を含む完全リセットを実施するよう強制する。新たに検出されたエージェントは通例較正が必要だからである。当該エージェントは次に154のホット検出動作に移行する。
154において、当該エージェントは0のストリームを3つのLSB外向きTxビットレーン上に駆動し、3つのLSB内向きRxビットレーン上にバイアス電流を載せ、外側のエージェントに接続されていないもののビットを強制的に0にしようとする。当該エージェントは次に3つのLSB内向きRxビットレーンを検査して、少なくとも2つの1を検出したら、155において外側のエージェントが存在していると判断し、156においてホット・エージェント存在動作に移行しうる。そうでなければ、当該エージェントは155において外側のエージェントは存在しないと判断し、148のスリープ動作に戻りうる。
156において、当該エージェントは、外側のエージェントを検出したことを示す状態レジスタを更新し、たとえば状態要求に反応してその情報をホストに中継したり、該情報をホストまたは他のエージェントに中継するための他の何らかの動作をしたりしうる。当該エージェントはチャネル・リセットを受信するのを待ってもよい。
ホストは、周期的な状態要求またはその他の技法を通じて新たに検出されたエージェントを認識し、チャネル全体を、当該チャネル上に新規エージェントが加わり、チャネル・タイミングにおいても適応されたものとなるよう再初期化をするために高速リセットを開始しうる。
以下は、本発明の原理に基づく、電源投入状態での追加/取外し手続きのいくつかの追加的な実施例である。これらの追加的な実施例も図6に示したメモリ・システムの実施形態を参照しつつ、ユーザー・インターフェースおよびシステム・ファームウェアを有するサーバーのようなより大きなシステムを背景として説明する。ただし、これらの追加的な実施例によって解説される本発明の原理はここに記載される特定の詳細に限定されるものではない。
本発明の原理に基づく電源投入状態での追加手続きは、ユーザーが新たなエージェントをメモリ・チャネルに、たとえば最外エージェントの外側ポート上に付け加えることによって開始されうる。ユーザーはシステム・ファームウェアにエージェントが付け加えられたことを知らせてもよい。そうすればファームウェアは付け加えられたエージェントに電源が供給されるようにし、ホストに覚醒コマンドを通じてエージェントが付け加えられたことを知らせる。ホストは次にポーリング・コマンドを従前の最外エージェントに送りうる。すると該従前の最外エージェントは、図25を参照して前述したようなポーリング動作を実行しうる。ポーリング動作ののち、従前の最外エージェントは新規の外側のエージェントの存在を報告しうる。するとホストは該新規エージェントの存在を検出して、該新規エージェントを動作状態にし、チャネル全体のタイミングをとりなおすために高速リセット・コマンドを発しうる。新規エージェントが動作状態になったのち、ホストはシステム・ファームウェアに割り込んで新規エージェントが動作状態になったことを報告しうる。あるいはまた、ホストは、新規エージェントが動作状態になったかどうかを判別するようシステム・ファームウェアから問い合わせがあるのを待ってもよい。システム・ファームウェアは次に、新規エージェントによって提示される新規ハードウェアを受け入れるようホストを構成しうる。新規ハードウェアとは、新規エージェントがメモリ・モジュールまたはバッファであった場合に存在しうる新規メモリ素子などである。
本発明の原理に基づく電源投入状態での取り外し手続きは、ユーザーがシステムにメモリ・チャネル上の特定のエージェントが取り外されることを知らせることによって開始されうる。システムは、対応するホスト・アドレス範囲をシステム・マップから除去しうる。システムがミラーリングを使っている場合、システムはエージェントのミラーのホスト・アドレス範囲をも再割り当てする。次いでシステムは、そのホスト・アドレス範囲のデータを、まだ移されていなければ別の位置にコピーまたは移動する。次いでシステムは未解決のすべての処理が完了するまでポーリングを行いうる。次いでシステムは、取り外されようとしているエージェントのすぐ内側のエージェントに対して、チャネル上で最外エージェントであると想定して動作するようホストからコマンドを送らせうる。それにより、該コマンドを受けたエージェントは外側ポートを無効にしてその後の高速リセットにおいて最外エージェントの機能を帯びることになる。(完全リセットがかかればこのコマンドよりそちらが優先する。)システムは次に、取り外し対象として選択されたエージェントおよび該選択されたエージェントにつながっている構成要素についてのあらゆるチャネル・インターフェースをシャットダウンする高速リセットを開始しうる。システムは次いで前記選択されたエージェントへの電源を切って、ユーザーにそのエージェントが取り外し可能であることを通知する。
本発明の原理に基づく電源投入状態での交換手続きは、上記の電源投入状態での取り外し手続きが完了したときに開始されうる。ユーザーは取り外したエージェントの代わりに新規エージェントを付け加え、システム・ファームウェアに新規エージェントが追加されたことを知らせうる。すると動作中のシステムは、新たに交換されたコンポーネントについてホストに準備をさせ、新規コンポーネントへの電源を供給しうる。次いでシステム・ファームウェアは、ホストから従前の最外エージェントにコマンドを送らせて、該従前の最外エージェントがもはや最外エージェントのつもりで動作すべきでないことを知らせるようにしうる。これにより、該従前の最外エージェントは次のリセットの際にその外側ポートを有効にし、ポーリング・コマンドを待ちうる。次いでファームウェアはホストに指示して、ポーリング・コマンドを従前の最外エージェントに送らせうる。すると該従前の最外エージェントは図25を参照しつつ前述したようなポーリング動作を実行しうる。それにより前記新規エージェントが初期化される。すると従前の最外エージェントは新規の外側のエージェントの存在を報告しうる。するとホストは該新規エージェントの存在を検出して、該新規エージェントを動作状態にし、チャネル全体のタイミングをとりなおすために高速リセット・コマンドを発しうる。新規エージェントが動作状態になったのち、ホストはシステム・ファームウェアに割り込んで新規エージェントが動作状態になったことを報告しうる。あるいはまた、ホストは、新規エージェントが動作状態になったかどうかを判別するようシステム・ファームウェアから問い合わせがあるのを待ってもよい。
ここで記載された実施形態は本発明の原理から外れることなく構成および詳細において修正されうる。したがって、そのような変更および修正は特許請求の範囲にはいるものと考えられる。
従来技術のラムリンク・メモリ・システムを示す図である。 従来技術のラムリンク・スレーブ・インターフェース回路を示す図である。 本発明の原理に基づくメモリ・インターフェース・システムのある実施形態を示す図である。 本発明の原理に基づくメモリ・モジュールのある実施形態を示す図である。 本発明の原理に基づくメモリ・モジュールのある別の実施形態およびメモリ・バッファのある実施形態を示す図である。 本発明の原理に基づくメモリ・システム、メモリ・モジュールおよびメモリ・バッファの実施形態のさらなる例を示す図である。 本発明の原理に基づくメモリ・バッファのある別の実施形態の例を示す図である。 本発明の原理に基づく再駆動回路のある実施形態を示す図である。 本発明の原理に基づくI/Oセルのある実施形態を示す図である。 本発明の原理に基づくI/Oセルのある別の実施形態を示す図である。 本発明の原理に基づくI/Oセルのある別の実施形態を示す図である。 本発明の原理に基づくI/Oセルのある別の実施形態を示す図である。 本発明の原理に基づくフェイルオーバー回路のある実施形態を示す図である。 本発明の原理に基づく、ノーマル・モードで動作しているフェイルオーバー回路のある別の実施形態を示す図である。 本発明の原理に基づく、フェイルオーバー・モードで動作しているフェイルオーバー回路のある別の実施形態を示す図である。 本発明の原理に基づく、ビットレーン・フェイルオーバー機能のあるメモリ・バッファのある実施形態を示す図である。 本発明の原理に基づく、ビットレーン・フェイルオーバー機能のあるメモリ・コントローラのある実施形態を示す図である。 本発明の原理に基づく、転置状態パターンを実装する方法のある実施形態を示す図である。 本発明の原理に基づく、転置パターン発生器のある実施形態を示す図である。 本発明の原理に基づく、状態パターンの実施例を示す図である。 本発明の原理に基づく、状態パターンの実施例を示す図である。 本発明の原理に基づく、状態パターンの実施例を示す図である。 本発明の原理に基づく、状態パターンの実施例を示す図である。 本発明の原理に基づく、メモリ・エージェントのある実施形態を示す図である。 本発明の原理に基づく、ポーリング動作のある実施形態を示す図である。
符号の説明
10 プロセッサまたはコントローラ
16 リングリンク
14 スレーブ
18 制御インターフェース
50 メモリ・コントローラ(ホスト)
52 メモリ・モジュール
58 メモリ素子
60 再駆動
62 再駆動
66 メモリ・インターフェース
64 バッファ
70 デスキュー
72 パターン発生器
76 クロック発生器
78 クロック・バッファ
82 位相ロック・ループ(PLL)
84 位相クロック発生器
88 サンプリング・クロック発生器
90 補間器
92 受信素子追跡ユニット(RTU)
94 バッファ
102 シリアライザ
104 デシリアライザ
122 フェイルオーバー
124 フェイルオーバー
130 フェイルオーバー
132 フェイルオーバー
136 内側ポート
138 外側ポート
148 スリープ
150 ホットリセット
152 ホット較正
154 ホット検出
155 外側のエージェントが存在?
156 ホット・エージェント・リセット
158 読み出しコマンド送信
160 第一の応答フレーム受信
162 第一の応答フレームのパターンが状態パターンか?
164 読み出しコマンド再送信
166 第二の応答フレーム受信
168 第二の応答フレームのパターンが転置した状態パターンか?
172 第一の応答フレームは状態フレームだったと判定
170 第一の応答フレームはデータ・フレームだったと判定

Claims (31)

  1. 第一のメモリ・エージェントから信号を受信して該信号を第二のメモリ・エージェントへの経路上に再駆動するよう構成された複数のビットレーンをもつ再駆動回路であって、各ビットレーンは前記第一のメモリ・エージェントと前記第二のメモリ・エージェントとの間の単方向ポイントツーポイント・チャネルをなすものである、再駆動回路と、
    当該メモリ・バッファをメモリ素子に結合するためのメモリ・インターフェースと、
    前記再駆動回路の前記複数のビットレーンと前記メモリ・インターフェースとの間に結合され、前記複数のビットレーンの第一のビットレーンからの信号を前記複数のビットレーンの第二のビットレーンに経路変更することのできるフェイルオーバー回路とを有しており、
    前記再駆動回路は、該再駆動回路がより外側のメモリ・エージェントに接続されていないかどうかに基づいて選択的に無効にされることを特徴とするメモリ・バッファ。
  2. 前記フェイルオーバー回路が前記再駆動回路とは別個であることを特徴とする、請求項1記載のメモリ・バッファ。
  3. 前記再駆動回路から受信されたデータのビット間のスキューを低減するための、前記複数のビットレーンと前記フェイルオーバー回路との間に結合されているデスキュー回路をさらに有することを特徴とする、請求項1記載のメモリ・バッファ。
  4. 前記再駆動回路から受信されたデータのビット間のスキューを低減するための、前記フェイルオーバー回路と前記メモリ・インターフェースとの間に結合されているデスキュー回路をさらに有することを特徴とする、請求項1記載のメモリ・バッファ。
  5. 前記フェイルオーバー回路がクロスバー・スイッチを有することを特徴とする、請求項1記載のメモリ・バッファ。
  6. 前記フェイルオーバー回路がマルチプレクサを有することを特徴とする、請求項1記載のメモリ・バッファ。
  7. 前記フェイルオーバー回路が、別のメモリ・エージェントによって送られた試験データパターンの観察に基づいて、エラーのあったビットレーンを検出することができることを特徴とする、請求項1記載のメモリ・バッファ。
  8. 前記フェイルオーバー回路が、信号を経路変更することによって、コマンドに反応してエラーのあったビットレーンを経路から除外することができることを特徴とする、請求項1記載のメモリ・バッファ。
  9. 第一のメモリ・エージェントから信号を受信して該信号を第二のメモリ・エージェントへの経路上に再駆動するよう構成された複数のビットレーンをもつ再駆動回路であって、各ビットレーンは前記第一のメモリ・エージェントと前記第二のメモリ・エージェントとの間の単方向ポイントツーポイント・チャネルをなすものである、再駆動回路と、
    メモリ素子と、
    前記再駆動回路の前記複数のビットレーンと前記メモリ素子との間に結合され、前記複数のビットレーンの第一のビットレーンからの信号を前記複数のビットレーンの第二のビットレーンに経路変更することのできるフェイルオーバー回路とを有しており、
    前記再駆動回路は、該再駆動回路がより外側のメモリ・エージェントに接続されていないかどうかに基づいて選択的に無効にされることを特徴とするメモリ・モジュール。
  10. エラーのあったビットレーンを検出することができることを特徴とする、請求項9記載のメモリ・モジュール。
  11. コマンドに反応してエラーのあったビットレーンを経路から除外することができることを特徴とする、請求項9記載のメモリ・モジュール。
  12. 複数のビットレーンをもつ単方向リンク・インターフェースと、
    前記複数のビットレーンに結合されたフェイルオーバー回路と、
    第一のメモリ・エージェントから信号を受信して該信号を第二のメモリ・エージェントへの経路上に再駆動するよう構成された、第三のメモリ・エージェントが結合されている再駆動回路を制御する手段とを有しており、
    前記再駆動回路が、前記第三のメモリ・エージェントが前記経路上の最後のメモリ・エージェントであるかどうかに基づいて選択的に無効にされることを特徴とするメモリ・コントローラ。
  13. エラーのあったビットレーンを検出することができることを特徴とする、請求項12記載のメモリ・コントローラ。
  14. 前記複数のビットレーンのうちエラーのあったものを経路から除外するようエージェントに指示するコマンドを発することができることを特徴とする、請求項12記載のメモリ・コントローラ。
  15. 第一のメモリ・エージェントと、
    第二のメモリ・エージェントと、
    前記第一のメモリ・エージェントと第二のメモリ・エージェントとの間に結合された複数のビットレーンをもつ単方向リンクとを有しており、
    前記第一のメモリ・エージェントが前記複数のビットレーン上の一つまたは複数の信号を経路変更することができ、
    前記第一のメモリ・エージェントに結合され、前記第一のメモリ・エージェントから信号を受信して該信号を別のメモリ・エージェントへの経路上に再駆動するよう構成された再駆動回路が、前記第一または第二のメモリ・エージェントの一つがより外側のメモリ・エージェントに接続されていないかどうかに基づいて選択的に無効にされることを特徴とする、メモリ・システム。
  16. 前記第二のエージェントが前記複数のビットレーン上の一つまたは複数の信号を経路変更することができることを特徴とする、請求項15記載のメモリ・システム。
  17. 前記第一のエージェントが、前記複数のビットレーンの第一のビットレーンからの信号を前記複数のビットレーンの第二のビットレーンに経路変更することのできるフェイルオーバー回路を有していることを特徴とする、請求項15記載のメモリ・システム。
  18. 前記第一のエージェントがエラーのあったビットレーンを検出することができることを特徴とする、請求項15記載のメモリ・システム。
  19. 前記第一のエージェントが、コマンドに反応して、エラーのあったビットレーンを経路から除外することができることを特徴とする、請求項15記載のメモリ・システム。
  20. メモリ・エージェントを動作させる方法であって、
    再駆動回路によって、複数のビットレーン上で信号を再駆動し、各ビットレーンは前記メモリ・エージェントと別のメモリ・エージェントとの間の単方向ポイントツーポイント・チャネルをなすものであり、
    前記別のメモリ・エージェントからの前記複数のビットレーンの信号を前記メモリ・エージェントに結合されたメモリ・インターフェースに結合し、
    記複数のビットレーンと前記メモリ・インターフェースとの間の一つまたは複数の信号を経路変更し
    前記メモリ・エージェントが前記複数のビットレーンのうちの一つまたは複数のビットレーン上の最後のメモリ・エージェントであるかどうかに基づいて、前記再駆動回路による前記再駆動を選択的に無効化する、
    ことを含むことを特徴とする、方法。
  21. エラーのあったビットレーンを検出することをさらに含むことを特徴とする、請求項20記載の方法。
  22. 一つまたは複数の信号の経路変更が、コマンドに反応して一つまたは複数の信号を経路変更することであることを特徴とする、請求項20記載の方法。
  23. メモリ・コントローラから信号を複数のビットレーンをもつ第一の単方向リンク上で送信し、
    前記メモリ・コントローラにおいて信号を複数のビットレーンをもつ第二の単方向リンク上で受信し、
    記単方向リンクの一方の複数のビットレーン上で一つまたは複数の信号を経路変更し
    前記メモリ・コントローラが、前記複数のビットレーン上の一つまたは複数の信号を再駆動する再駆動回路を制御し、
    前記再駆動回路は、該再駆動回路がより外側のメモリ・エージェントに接続されていないかどうかに基づいて選択的に無効化される、
    ことを特徴とする方法。
  24. 前記単方向リンクの両方の複数のビットレーン上の一つまたは複数の信号を経路変更することをさらに含むことを特徴とする、請求項23記載の方法。
  25. エラーのあったビットレーンを検出することをさらに含むことを特徴とする、請求項23記載の方法。
  26. コマンドに応じてエラーのあったビットレーンを経路から除外することをさらに含むことを特徴とする、請求項23記載の方法。
  27. 第一のメモリ・エージェントから信号を複数のビットレーンをもつ第一の単方向リンク上で第二のメモリ・エージェントに送信し、
    前記複数のビットレーン上で一つまたは複数の信号を経路変更し、
    前記第一または第二のメモリ・エージェントの一つが前記複数のビットレーンのうちの一つまたは複数のビットレーン上の最後のメモリ・エージェントであるかどうかに基づいて、前記複数のビットレーン上で一つまたは複数の信号を再駆動する、
    ことを特徴とする方法。
  28. エラーのあったビットレーンを検出することをさらに含むことを特徴とする、請求項27記載の方法。
  29. 一つまたは複数の信号の経路変更が、コマンドに反応して一つまたは複数の信号を再駆動することであることを特徴とする、請求項27記載の方法。
  30. 一つまたは複数の信号の経路変更が、エラーのあったビットレーンを経路から除外することであることを特徴とする、請求項27記載の方法。
  31. エラーのあったビットレーンを経路から除外することが、前記エラーのあったビットレーンを通るはずだった信号を前記第一のメモリ・エージェントおよび前記第二のメモリ・エージェントの両者において経路変更することであることを特徴とする、請求項30記載の方法。
JP2006514926A 2003-06-05 2004-05-20 ビットレーン・フェイルオーバーのあるメモリ・チャネル Expired - Fee Related JP4519839B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/456,353 US7386768B2 (en) 2003-06-05 2003-06-05 Memory channel with bit lane fail-over
PCT/US2004/016116 WO2004109526A2 (en) 2003-06-05 2004-05-20 Memory channel with bit lane fail-over

Publications (2)

Publication Number Publication Date
JP2006526849A JP2006526849A (ja) 2006-11-24
JP4519839B2 true JP4519839B2 (ja) 2010-08-04

Family

ID=33490147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006514926A Expired - Fee Related JP4519839B2 (ja) 2003-06-05 2004-05-20 ビットレーン・フェイルオーバーのあるメモリ・チャネル

Country Status (7)

Country Link
US (7) US7386768B2 (ja)
EP (1) EP1629389A2 (ja)
JP (1) JP4519839B2 (ja)
KR (1) KR100806446B1 (ja)
CN (1) CN100511192C (ja)
TW (1) TWI246081B (ja)
WO (1) WO2004109526A2 (ja)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643752B1 (en) * 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US7362697B2 (en) 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US8171331B2 (en) 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
DE10344877B3 (de) * 2003-09-26 2004-12-30 Infineon Technologies Ag Vorrichtung zum Testen eines Speichermoduls
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7447953B2 (en) 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7447240B2 (en) * 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US6980042B2 (en) * 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
DE102004026248A1 (de) * 2004-05-28 2005-12-29 Infineon Technologies Ag Halbleiter-Bauelement-Test-Verfahren, insbesondere für ein System mit mehreren jeweils ein Daten-Zwischenspeicher-Bauelement aufweisenden Modulen, sowie Test-Modul zur Verwendung bei einem derartigen Verfahren
DE102005015828A1 (de) * 2004-06-11 2006-01-05 Samsung Electronics Co., Ltd., Suwon Hub, Speichermodul, Speichersystem, sowie dazugehörige Schreib- und Leseverfahren
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
WO2006033945A2 (en) * 2004-09-16 2006-03-30 Mar-Rog Specialties, Inc. Spotlight mounted motion detector
US7417883B2 (en) * 2004-12-30 2008-08-26 Intel Corporation I/O data interconnect reuse as repeater
US7366931B2 (en) 2004-12-30 2008-04-29 Intel Corporation Memory modules that receive clock information and are placed in a low power state
KR101271245B1 (ko) 2005-04-21 2013-06-07 바이올린 메모리 인코포레이티드 상호접속 시스템
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US7464225B2 (en) 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7644347B2 (en) 2005-09-30 2010-01-05 Intel Corporation Silent data corruption mitigation using error correction code with embedded signaling fault detection
US7587625B2 (en) * 2006-02-16 2009-09-08 Intel Corporation Memory replay mechanism
US7353316B2 (en) 2006-03-24 2008-04-01 Micron Technology, Inc. System and method for re-routing signals between memory system components
DE102006045906A1 (de) * 2006-09-28 2008-04-17 Infineon Technologies Ag Modul mit einem Controller für eine Chipkarte
US8028186B2 (en) * 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US7797594B1 (en) * 2007-07-05 2010-09-14 Oracle America, Inc. Built-in self-test of 3-dimensional semiconductor memory arrays
US7624310B2 (en) * 2007-07-11 2009-11-24 Micron Technology, Inc. System and method for initializing a memory system, and memory device and processor-based system using same
US8086936B2 (en) * 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US8082482B2 (en) * 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US20100269021A1 (en) * 2007-09-05 2010-10-21 Gower Kevin C Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module
US8019919B2 (en) * 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US7913128B2 (en) * 2007-11-23 2011-03-22 Mosaid Technologies Incorporated Data channel test apparatus and method thereof
US8140936B2 (en) * 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
JP5233415B2 (ja) * 2008-05-29 2013-07-10 富士通株式会社 エラー特定方法、データ処理装置、及び半導体装置
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
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8234540B2 (en) * 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US8332729B2 (en) * 2008-09-29 2012-12-11 Oracle International Corporation System and method for automatic communication lane failover in a serial link
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
WO2010101835A1 (en) * 2009-03-02 2010-09-10 The Board Of Trustees Of The University Of Illinois Decoupled memory modules: building high-bandwidth memory systems from low-speed dynamic random access memory devices
US8539309B2 (en) * 2009-09-17 2013-09-17 International Business Machines Corporation System and method for responding to error detection
JP5544896B2 (ja) * 2010-01-22 2014-07-09 富士通株式会社 受信回路、情報処理装置、およびバッファ制御方法
US8938589B2 (en) 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
US9361955B2 (en) 2010-01-28 2016-06-07 Hewlett Packard Enterprise Development Lp Memory access methods and apparatus
US8381059B2 (en) * 2010-02-17 2013-02-19 Micron Technology, Inc. Error correction and recovery in chained memory architectures
US9146867B2 (en) 2011-10-31 2015-09-29 Hewlett-Packard Development Company, L.P. Methods and apparatus to access memory using runtime characteristics
TWI529730B (zh) * 2013-03-01 2016-04-11 慧榮科技股份有限公司 資料儲存裝置與快閃記憶體控制方法
KR102076858B1 (ko) * 2013-12-24 2020-02-12 에스케이하이닉스 주식회사 반도체장치 및 이를 포함하는 반도체시스템
KR20150135004A (ko) 2014-05-23 2015-12-02 삼성전자주식회사 어드레스 미러링 기능을 갖는 메모리 모듈
WO2016081190A1 (en) 2014-11-20 2016-05-26 Rambus Inc. Memory systems, modules, and methods for improved capacity
US9692589B2 (en) * 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
US10621119B2 (en) 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10216657B2 (en) 2016-09-30 2019-02-26 Intel Corporation Extended platform with additional memory module slots per CPU socket and configured for increased performance
US9818457B1 (en) 2016-09-30 2017-11-14 Intel Corporation Extended platform with additional memory module slots per CPU socket
US11023405B2 (en) * 2018-09-11 2021-06-01 Rockley Photonics Limited Daisy chain control network with data generators and token-forwarding connections
KR20220052018A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 스토리지 시스템
US12026119B2 (en) * 2022-06-10 2024-07-02 Chain Reaction Ltd. Cryptocurrency miner and device enumeration

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112287A (en) * 1993-03-01 2000-08-29 Busless Computers Sarl Shared memory multiprocessor system using a set of serial links as processors-memory switch
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
KR100391805B1 (ko) * 1994-03-22 2003-10-22 하퍼칩, 인코포레이티드 직접대체셀(cell)을갖는결함허용(faulttolerance)아키텍쳐자료처리시스템
US6408402B1 (en) * 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
US6154826A (en) * 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US5867422A (en) * 1995-08-08 1999-02-02 University Of South Florida Computer memory chip with field programmable memory cell arrays (fpmcas), and method of configuring
US6006318A (en) * 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, programmable media processor
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5860080A (en) * 1996-03-19 1999-01-12 Apple Computer, Inc. Multicasting system for selecting a group of memory devices for operation
US6125419A (en) * 1996-06-13 2000-09-26 Hitachi, Ltd. Bus system, printed circuit board, signal transmission line, series circuit and memory module
US6092229A (en) * 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
JP3455040B2 (ja) * 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
US5991891A (en) * 1996-12-23 1999-11-23 Lsi Logic Corporation Method and apparatus for providing loop coherency
JP3127853B2 (ja) * 1997-04-30 2001-01-29 日本電気株式会社 メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
US5898863A (en) * 1997-06-03 1999-04-27 Emc Corporation Method and apparatus for determining I/O size distribution of an input/output system and its use for load simulation
EP1036362B1 (en) 1997-12-05 2006-11-15 Intel Corporation Memory system including a memory module having a memory module controller
US6970968B1 (en) 1998-02-13 2005-11-29 Intel Corporation Memory module controller for providing an interface between a system memory controller and a plurality of memory devices on a memory module
US6968419B1 (en) 1998-02-13 2005-11-22 Intel Corporation Memory module having a memory module controller controlling memory transactions for a plurality of memory devices
US6327205B1 (en) * 1998-03-16 2001-12-04 Jazio, Inc. Signal latching of high bandwidth DRAM arrays when skew between different components is higher than signal rate
US6160423A (en) * 1998-03-16 2000-12-12 Jazio, Inc. High speed source synchronous signaling for interfacing VLSI CMOS circuits to transmission lines
EP1064767B8 (en) * 1998-03-16 2007-06-27 Jazio Inc. High speed signaling for interfacing vlsi cmos circuits
US6173382B1 (en) * 1998-04-28 2001-01-09 International Business Machines Corporation Dynamic configuration of memory module using modified presence detect data
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
US7100071B2 (en) * 1998-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for allocating fail-over memory
US6347350B1 (en) * 1998-12-22 2002-02-12 Intel Corporation Driving the last inbound signal on a line in a bus with a termination
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
JP2000222294A (ja) 1999-01-29 2000-08-11 Toshiba Corp 計算機システム及びバス障害回復方法
US6643752B1 (en) * 1999-12-09 2003-11-04 Rambus Inc. Transceiver with latency alignment circuitry
US6571355B1 (en) * 1999-12-29 2003-05-27 Emc Corporation Fibre channel data storage system fail-over mechanism
US6502161B1 (en) * 2000-01-05 2002-12-31 Rambus Inc. Memory system including a point-to-point linked memory subsystem
US6640282B2 (en) * 2000-01-25 2003-10-28 Hewlett-Packard Development Company, L.P. Hot replace power control sequence logic
US6785835B2 (en) * 2000-01-25 2004-08-31 Hewlett-Packard Development Company, L.P. Raid memory
US6961347B1 (en) * 2000-06-20 2005-11-01 Hewlett-Packard Development Company, L.P. High-speed interconnection link having automated lane reordering
US6316980B1 (en) * 2000-06-30 2001-11-13 Intel Corporation Calibrating data strobe signal using adjustable delays with feedback
US6487102B1 (en) * 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
US6317352B1 (en) * 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US6625687B1 (en) * 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6449213B1 (en) * 2000-09-18 2002-09-10 Intel Corporation Memory interface having source-synchronous command/address signaling
US6369605B1 (en) * 2000-09-18 2002-04-09 Intel Corporation Self-terminated driver to prevent signal reflections of transmissions between electronic devices
US6687780B1 (en) * 2000-11-02 2004-02-03 Rambus Inc. Expandable slave device system
US6493250B2 (en) * 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
TW594775B (en) * 2001-06-04 2004-06-21 Toshiba Corp Semiconductor memory device
US6543073B2 (en) * 2001-08-27 2003-04-08 Hsin-Tsai Wu Inflation seat assembly for an inflatable article
US6871294B2 (en) 2001-09-25 2005-03-22 Sun Microsystems, Inc. Dynamically reconfigurable interconnection
US6898728B2 (en) * 2001-09-25 2005-05-24 Sun Microsystems, Inc. System domain targeted, configurable interconnection
US7394823B2 (en) * 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
KR100448709B1 (ko) * 2001-11-29 2004-09-13 삼성전자주식회사 데이터 버스 시스템 및 그 제어방법
JP2004127147A (ja) * 2002-10-07 2004-04-22 Hitachi Ltd デスキュー回路およびそれを用いたディスクアレイ制御装置
US7362697B2 (en) * 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
US7421525B2 (en) * 2003-05-13 2008-09-02 Advanced Micro Devices, Inc. System including a host connected to a plurality of memory modules via a serial memory interconnect
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US7127629B2 (en) * 2003-06-03 2006-10-24 Intel Corporation Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
US7340537B2 (en) * 2003-06-04 2008-03-04 Intel Corporation Memory channel with redundant presence detect
US8171331B2 (en) * 2003-06-04 2012-05-01 Intel Corporation Memory channel having deskew separate from redrive
US7165153B2 (en) * 2003-06-04 2007-01-16 Intel Corporation Memory channel with unidirectional links
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7143207B2 (en) * 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
US7219294B2 (en) * 2003-11-14 2007-05-15 Intel Corporation Early CRC delivery for partial frame
US7447953B2 (en) * 2003-11-14 2008-11-04 Intel Corporation Lane testing with variable mapping
US20050268061A1 (en) * 2004-05-31 2005-12-01 Vogt Pete D Memory channel with frame misalignment
US7212423B2 (en) * 2004-05-31 2007-05-01 Intel Corporation Memory agent core clock aligned to lane
US7383399B2 (en) * 2004-06-30 2008-06-03 Intel Corporation Method and apparatus for memory compression
US20060004953A1 (en) * 2004-06-30 2006-01-05 Vogt Pete D Method and apparatus for increased memory bandwidth

Also Published As

Publication number Publication date
JP2006526849A (ja) 2006-11-24
EP1629389A2 (en) 2006-03-01
KR100806446B1 (ko) 2008-02-21
US8286039B2 (en) 2012-10-09
KR20060023985A (ko) 2006-03-15
US8510612B2 (en) 2013-08-13
TW200502955A (en) 2005-01-16
WO2004109526A3 (en) 2005-04-14
US20120102256A1 (en) 2012-04-26
US20110131370A1 (en) 2011-06-02
TWI246081B (en) 2005-12-21
US8020056B2 (en) 2011-09-13
US7761753B2 (en) 2010-07-20
US20100281315A1 (en) 2010-11-04
US20040250181A1 (en) 2004-12-09
US8135999B2 (en) 2012-03-13
US20120331356A1 (en) 2012-12-27
CN1799035A (zh) 2006-07-05
WO2004109526A2 (en) 2004-12-16
US20130097371A1 (en) 2013-04-18
US8489944B2 (en) 2013-07-16
CN100511192C (zh) 2009-07-08
US7386768B2 (en) 2008-06-10
US20090013211A1 (en) 2009-01-08

Similar Documents

Publication Publication Date Title
JP4519839B2 (ja) ビットレーン・フェイルオーバーのあるメモリ・チャネル
JP4210302B2 (ja) 単方向リンクを用いるメモリ・チャネル
JP4210300B2 (ja) 電源投入状態での追加/取外しが可能なメモリ・チャネル
JP4210301B2 (ja) 転置状態パターンを利用するメモリ・チャネル
JP4331756B2 (ja) 一部のフレームについての早期crc供給
US9335373B2 (en) Memory channel having deskew separate from redrive
US7127629B2 (en) Redriving a data signal responsive to either a sampling clock signal or stable clock signal dependent on a mode signal
JP2007514216A (ja) 可変マッピングを備えたレーン検査
JP2007511012A (ja) データ経路とメモリ装置との間でのデータ蓄積
US7340537B2 (en) Memory channel with redundant presence detect

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080910

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100303

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: 20100420

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: 20100519

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4519839

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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