JP4210301B2 - 転置状態パターンを利用するメモリ・チャネル - Google Patents

転置状態パターンを利用するメモリ・チャネル Download PDF

Info

Publication number
JP4210301B2
JP4210301B2 JP2006514913A JP2006514913A JP4210301B2 JP 4210301 B2 JP4210301 B2 JP 4210301B2 JP 2006514913 A JP2006514913 A JP 2006514913A JP 2006514913 A JP2006514913 A JP 2006514913A JP 4210301 B2 JP4210301 B2 JP 4210301B2
Authority
JP
Japan
Prior art keywords
pattern
memory
agent
memory agent
state
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
JP2006514913A
Other languages
English (en)
Other versions
JP2006526847A (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 JP2006526847A publication Critical patent/JP2006526847A/ja
Application granted granted Critical
Publication of JP4210301B2 publication Critical patent/JP4210301B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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

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 (27)

  1. 第二のメモリ・エージェントにリンクを通じて結合されているメモリ・エージェントであって、メモリ・エージェントはメモリ・システム内のメモリ・バッファ、メモリ・モジュールまたはメモリ・コントローラであり、
    当該メモリ・エージェントは、当該メモリ・エージェントの状態を表す状態パターンを発生させるパターン発生器を有しており、
    当該メモリ・エージェントは、前記リンクを通じてデータ・パターンおよび状態パターンを送ることができ、
    前記パターン発生器が前記状態パターンを転置することができることを特徴とするメモリ・エージェント。
  2. 当該メモリ・エージェントが、各フレームが誤り検査符号を付けて送られるよう構成されており、前記パターン発生器が誤った誤り検査符号が付いた状態パターンを発生させることができることを特徴とする、請求項1記載のメモリ・エージェント。
  3. 前記パターン発生器が、前記メモリ・エージェントがフェイルオーバー・モードで動作している場合には正しい誤り検査符号の付いた状態パターンを発生させることができることを特徴とする、請求項2記載のメモリ・エージェント。
  4. 請求項1記載のメモリ・エージェントにリンクを通じて結合される第二のメモリ・エージェントであって、当該第二のメモリ・エージェントが、前記リンクを通じてデータ・パターンおよび状態パターンを受信することができ、誤った誤り検査符号が付いた受信された状態パターンを状態パターンとして解釈することができることを特徴とする、第二のメモリ・エージェント。
  5. 当該第二のメモリ・エージェントが、正しい誤り検査符号の付いた受信された状態パターンをデータ・パターンとして解釈することができることを特徴とする、請求項4記載の第二のメモリ・エージェント。
  6. 当該メモリ・エージェントがメモリ・バッファであることを特徴とする、請求項1記載のメモリ・エージェント。
  7. 当該メモリ・エージェントがメモリ・モジュールであることを特徴とする、請求項1記載のメモリ・エージェント。
  8. 当該メモリ・エージェントがメモリ・コントローラであることを特徴とする、請求項1記載のメモリ・エージェント。
  9. 受信したパターンが所定の状態パターンに一致する場合にコマンドを再試行することができることを特徴とする、請求項記載の第二のメモリ・エージェント。
  10. 前記再試行に反応して受信された第二の受信したパターンが前記所定の状態パターンの所定の転置された状態パターンに一致する場合に前記第二の受信したパターンを状態パターンとして解釈することができることを特徴とする、請求項9記載の第二のメモリ・エージェント。
  11. 前記再試行に反応して受信された第二の受信したパターンが前記所定の状態パターンの所定の転置された状態パターンに一致しない場合に前記第二の受信したパターンをデータ・パターンとして解釈することができることを特徴とする、請求項9記載の第二のメモリ・エージェント。
  12. 前記パターン発生器が専用論理回路を有することを特徴とする、請求項1記載のメモリ・エージェント。
  13. 前記専用論理回路がフィードバック・シフト・レジスタを有することを特徴とする、請求項12記載のメモリ・エージェント。
  14. 前記状態パターンが無意味パターンであり、ここで、無意味パターンとはそのパターンが読み出しデータではないことを示す所定のパターンであることを特徴とする、請求項1記載のメモリ・エージェント。
  15. 前記状態パターンが警告パターンであり、ここで、警告パターンとはエラー状態を通知するための所定のパターンであることを特徴とする、請求項1記載のメモリ・エージェント。
  16. 前記パターン発生器が二つ以上の種類の状態パターンを生成することができ、それらの種類のうちの第一の種類の状態パターンがそれらの種類のうちの第二の種類の状態パターンの補数であることを特徴とする、請求項1記載のメモリ・エージェント。
  17. 前記第一の種類の状態パターンが無意味パターンであり、
    前記第二の種類の状態パターンが警告パターンであ
    ここで、無意味パターンとはそのパターンが読み出しデータではないことを示す所定のパターンであり、警告パターンとはエラー状態を通知するための所定のパターンであることを特徴とする、請求項16記載のメモリ・エージェント。
  18. 第一のメモリ・エージェントと、
    前記第一のメモリ・エージェントにリンクを通じて結合されている第二のメモリ・エージェントとを有しており、
    前記第一のメモリ・エージェントがデータ・パターンおよび状態パターンを前記リンク上で送信することができ、
    前記第二のメモリ・エージェントがデータ・パターンおよび状態パターンを前記リンク上で受信することができ、
    前記第一のメモリ・エージェントが前記状態パターンを転置することができる、
    ことを特徴とするシステム。
  19. 前記第二のメモリ・エージェントが転置された状態パターンを解釈することができることを特徴とする、請求項18記載のシステム。
  20. 前記第一のメモリ・エージェントがメモリ・モジュールであり、
    前記第二のメモリ・エージェントがメモリ・コントローラである、
    ことを特徴とする、請求項19記載のシステム。
  21. 前記第一のメモリ・エージェントがメモリ・バッファであり、
    前記第二のメモリ・エージェントがメモリ・コントローラである、
    ことを特徴とする、請求項19記載のシステム。
  22. 前記第二のメモリ・エージェントが、受信したパターンが所定の状態パターンに一致する場合にコマンドを再試行することができることを特徴とする、請求項19記載のシステム。
  23. 前記第二のメモリ・エージェントが、前記再試行に反応して受信された第二の受信したパターンが前記所定の状態パターンの所定の転置された状態パターンに一致する場合に前記第二の受信したパターンを状態パターンとして解釈することができることを特徴とする、請求項22記載のシステム。
  24. 前記第二のメモリ・エージェントが、前記再試行に反応して受信された第二の受信したパターンが前記所定の状態パターンの所定の転置された状態パターンに一致しない場合に前記第二の受信したパターンをデータ・パターンとして解釈することができることを特徴とする、請求項22記載のシステム。
  25. 第一のメモリ・エージェントが第二のメモリ・エージェントにリンクを通じてデータ・パターンを送信し、
    前記第一のメモリ・エージェントが前記第二のメモリ・エージェントに前記リンクを通じて状態パターンを送信し、
    前記第一のメモリ・エージェント内のパターン発生器が前記状態パターンを転置する、
    ことを有することを特徴とする方法。
  26. 前記データ・パターンの送信が、誤り検査符号を付けてデータ・パターンを送信することを含み、前記状態パターンの送信が、誤り検査符号を付けて状態パターンを送信することを含み、前記第一のメモリ・エージェント内のパターン発生器は誤った誤り検査符号が付いた状態パターンを発生させることを特徴とする、請求項25記載の方法。
  27. 前記第一のメモリ・エージェント内のパターン発生器は、前記メモリ・エージェントがフェイルオーバー・モードで動作している場合には正しい誤り検査符号の 付いた状態パターンを発生させることを特徴とする、請求項26記載の方法。
JP2006514913A 2003-06-03 2004-05-20 転置状態パターンを利用するメモリ・チャネル Expired - Fee Related JP4210301B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/454,400 US7200787B2 (en) 2003-06-03 2003-06-03 Memory channel utilizing permuting status patterns
PCT/US2004/015984 WO2004109712A2 (en) 2003-06-03 2004-05-20 Memory interface protocol for distinguishing status information from read data

Publications (2)

Publication Number Publication Date
JP2006526847A JP2006526847A (ja) 2006-11-24
JP4210301B2 true JP4210301B2 (ja) 2009-01-14

Family

ID=33510399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006514913A Expired - Fee Related JP4210301B2 (ja) 2003-06-03 2004-05-20 転置状態パターンを利用するメモリ・チャネル

Country Status (9)

Country Link
US (1) US7200787B2 (ja)
EP (1) EP1629393B1 (ja)
JP (1) JP4210301B2 (ja)
KR (1) KR100896982B1 (ja)
CN (1) CN100440188C (ja)
AT (1) ATE412941T1 (ja)
DE (1) DE602004017454D1 (ja)
HK (1) HK1080190A1 (ja)
WO (1) WO2004109712A2 (ja)

Families Citing this family (24)

* 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
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
US7386765B2 (en) * 2003-09-29 2008-06-10 Intel Corporation Memory device having error checking and correction
US6996749B1 (en) * 2003-11-13 2006-02-07 Intel Coporation Method and apparatus for providing debug functionality in a buffered memory channel
US20050138267A1 (en) * 2003-12-23 2005-06-23 Bains Kuljit S. Integral memory buffer and serial presence detect capability for fully-buffered memory modules
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
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
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
US7444479B2 (en) * 2005-12-28 2008-10-28 Alexander James W Fully buffered DIMM read data substitution for write acknowledgement
US7353316B2 (en) * 2006-03-24 2008-04-01 Micron Technology, Inc. System and method for re-routing signals between memory system components
US20070247185A1 (en) * 2006-03-30 2007-10-25 Hideo Oie Memory system with dynamic termination
US7345900B2 (en) * 2006-07-26 2008-03-18 International Business Machines Corporation Daisy chained memory system
US20080104424A1 (en) * 2006-10-31 2008-05-01 International Business Machines Corporation Systems and Methods to Reduce Deployment Security Exposure Using WOL
US7913128B2 (en) * 2007-11-23 2011-03-22 Mosaid Technologies Incorporated Data channel test apparatus and method thereof
JP5309938B2 (ja) * 2008-12-05 2013-10-09 富士通株式会社 要求処理装置、要求処理システムおよびアクセス試験方法
EP3049942B1 (en) * 2013-09-27 2021-10-20 Intel Corporation Mapping memory controller connectors to memory connectors
US9818457B1 (en) 2016-09-30 2017-11-14 Intel Corporation Extended platform with additional memory module slots per CPU socket
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
CN109949850A (zh) * 2017-12-21 2019-06-28 光宝电子(广州)有限公司 储存系统与储存方法

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2643933A1 (de) 1976-09-29 1978-03-30 Siemens Ag Verfahren zur kennzeichnung von nutzund steuerzeichen in datenuebertragungssystemen
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
US6408402B1 (en) 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
EP1037149A3 (en) 1994-03-22 2003-10-15 Hyperchip Inc. Efficient direct cell replacement fault tolerant architecture supporting completey integrated systems with means for direct communication with system operator
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
US5742840A (en) 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US6006318A (en) 1995-08-16 1999-12-21 Microunity Systems Engineering, Inc. General purpose, dynamic partitioning, 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
JPH09293015A (ja) 1996-04-24 1997-11-11 Mitsubishi Electric Corp メモリシステムおよびそれに用いられる半導体記憶装置
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 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
JP3127853B2 (ja) 1997-04-30 2001-01-29 日本電気株式会社 メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム
US5944797A (en) * 1997-05-28 1999-08-31 International Business Machines Corporation Data mover hardware controlled processing in a commanding system and in a commanded system for controlling frame communications on a link
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
US6757798B2 (en) 1997-06-30 2004-06-29 Intel Corporation Method and apparatus for arbitrating deferred read requests
US6442644B1 (en) 1997-08-11 2002-08-27 Advanced Memory International, Inc. Memory system having synchronous-link DRAM (SLDRAM) devices and controller
WO1999030240A1 (en) 1997-12-05 1999-06-17 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
ATE362682T1 (de) 1998-03-16 2007-06-15 Jazio Inc Hochgeschwindigkeitssignalisierung zur schnittstellenbildung von vlsi cmos- schaltungsanordnungen
US6510503B2 (en) 1998-07-27 2003-01-21 Mosaid Technologies Incorporated High bandwidth memory interface
US6493656B1 (en) * 1999-02-26 2002-12-10 Compaq Computer Corporation, Inc. Drive error logging
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
US6487102B1 (en) 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
US6369605B1 (en) 2000-09-18 2002-04-09 Intel Corporation Self-terminated driver to prevent signal reflections of transmissions between electronic devices
US6449213B1 (en) 2000-09-18 2002-09-10 Intel Corporation Memory interface having source-synchronous command/address signaling
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
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
US6493250B2 (en) 2000-12-28 2002-12-10 Intel Corporation Multi-tier point-to-point buffered memory interface
WO2004102403A2 (en) 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7194581B2 (en) * 2003-06-03 2007-03-20 Intel Corporation Memory channel with hot add/remove
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
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
US7143207B2 (en) * 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device

Also Published As

Publication number Publication date
EP1629393B1 (en) 2008-10-29
JP2006526847A (ja) 2006-11-24
CN1799039A (zh) 2006-07-05
CN100440188C (zh) 2008-12-03
HK1080190A1 (en) 2006-04-21
WO2004109712A3 (en) 2005-01-13
EP1629393A2 (en) 2006-03-01
KR20060029221A (ko) 2006-04-05
US7200787B2 (en) 2007-04-03
DE602004017454D1 (de) 2008-12-11
US20040260991A1 (en) 2004-12-23
WO2004109712A2 (en) 2004-12-16
KR100896982B1 (ko) 2009-05-14
ATE412941T1 (de) 2008-11-15

Similar Documents

Publication Publication Date Title
JP4210300B2 (ja) 電源投入状態での追加/取外しが可能なメモリ・チャネル
JP4210302B2 (ja) 単方向リンクを用いるメモリ・チャネル
JP4519839B2 (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
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080826

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees