(57)【要約】ローカルデータをシリアル化して、それをシリアル化したフィードスルー・データと選択的にマージしてシリアルデータストリームを出力して、パラレル−イン−シリアル−アウト（ＰＩＳＯ）シフトレジスタ、マルチプレクサ、及び、トランスミッタを備える集積回路。ＰＩＳＯシフトレジスタは、ローカル・データバス上のパラレルデータを、シリアル化されたローカルデータにシリアル化する。マルチプレクサは、シリアル化されたローカルデータ及びフィードスルー・データを選択的にマージしてシリアルデータストリームにする。トランスミッタは、シリアルデータリンク上にシリアルデータストリームをドライブする。本発明の他の実施形態において、メモリモジュールのための方法は、入力シリアルデータストリームを受信することと、マージイネーブル信号に応じて、データのローカル・フレーム及びデータのフィードスルー・フレームを一緒にマージして出力シリアルデータストリームにすること、そして、次のメモリモジュール又はメモリコントローラにノースバウンドデータ出力上の出力シリアルデータストリームを送信すること、を含む。【選択図】図６−１
2008529175.tif 000002
【特許請求の範囲】
【請求項１】
一以上のレーンを有する一のシリアル入出力インタフェースを備え、各レーンは、
一のローカル・データバスに結合した一のパラレル入力と、一の第１のクロック信号に結合された一のクロック入力と、一のロード信号に結合された一のロード／シフトバー入力と、を有し、前記ローカル・データバス上のパラレルデータを一の第１のシリアル出力上のシリアル化されたローカルデータにシリアル化する一の第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタと、
前記第１のシリアル出力に結合された一の第１のデータ入力と、フィードスルー・データを受信するための一の第２のデータ入力と、一のローカル・データ選択信号に結合された一の選択入力と、を有し、前記ローカル・データ選択信号に応じて前記シリアル化されたローカルデータとフィードスルー・データとを選択的にマージして一の多重化された出力上の一のシリアル・データストリームにする一の第１のマルチプレクサと、
前記シリアル・データストリームを受信するための前記多重化された出力に結合された一の入力を有し、一のシリアル・データリンク上へ前記シリアル・データストリームをドライブする一のトランスミッタと、
を備える集積回路。
【請求項２】
前記フィードスルー・データは、２ビット長であり、
前記第１のＰＩＳＯシフトレジスタのパラレル入力は、少なくとも６ビット長で、前記第１のＰＩＳＯシフトレジスタのシリアル出力は、２ビット長であり、
前記第１のマルチプレクサは、一の２ビット・バス・マルチプレクサであり、前記多重化された出力の前記シリアル・データストリームは２ビット長であり、
前記トランスミッタは、前記２ビット・シリアル・データストリームを受信して、それを前記シリアル・データリンク上への一のシングル・ビットシリアル・データストリームとしてシリアル化する
請求項１に記載の集積回路。
【請求項３】
各レーンは、
再同期データを受信するための一の第１のデータ入力と、再サンプリングされたデータを受信するための一の第２のデータ入力と、一のローカル・クロック・モード信号に結合された一の選択入力と、を含み、前記再サンプリングされたデータ又は前記ローカル・クロック・モード信号に応じたフィードスルー・データとしての前記再同期データを選択する一の第２のマルチプレクサを更に有する
請求項１に記載の集積回路。
【請求項４】
各レーンは、前記第１のマルチプレクサ及び前記第１のＰＩＳＯシフトレジスタに結合され、前記第１のクロック信号及び一のマージ・イネーブル信号を受信し、マージ・イネーブル信号及び第１のクロック信号に応じて、前記シリアル化されたローカルデータ及び前記フィードスルー・データを前記シリアル・データストリームにマージする前記ローカル・データ選択信号を生成する制御ロジックを更に有する
請求項１に記載の集積回路。
【請求項５】
前記制御ロジックは、前記マージ・イネーブル信号に結合された一の第１のデータ入力及びロード信号に結合された一の選択入力を有する、一の第２マルチプレクサと、
前記第２のマルチプレクサに結合された一のＤタイプフリップフロップと、を含むマージ制御ロジックを有し、前記Ｄタイプフリップフロップは、前記第２のマルチプレクサの一の出力に結合された一のデータ入力と、前記第１のクロック信号に結合された一のクロック入力と、前記第１のマルチプレクサの前記選択入力及び前記第２のマルチプレクサの一の第２のデータ入力に結合された一のデータ出力と、を有し、前記Ｄタイプフリップフロップは、前記データ出力上の前記ローカル・データ選択信号を生成するために、前記ロード信号及び前記第１のクロック信号に応じて、マージ・イネーブル信号を記録し、
前記第２のマルチプレクサは、前記ロード信号の一の反転信号に応じて、前記ローカル・データ選択信号を前記Ｄタイプフリップフロップの前記データ入力に再循環させる
請求項４に記載の集積回路。
【請求項６】
前記第１のＰＩＳＯシフトレジスタのパラレル入力は、前記ローカル・データバス複数のビットの半分に結合され、
各レーンは、
前記ローカル・データバスの複数のビットの残りの半分に結合された一のパラレル入力と、前記第１のクロック信号に結合された一のクロック入力と、前記ロード信号に結合された一のロード／シフトバー入力と、前記第１のＰＩＳＯシフトレジスタの一のシリアル入力に結合した一の第２のシリアル出力と、を含み、前記ローカル・データバスの前記複数のビットの前記残りの半分上のパラレルデータをシリアル化して、前記第１のＰＩＳＯシフトレジスタの前記シリアル入力に結合するための前記第２のシリアル出力上のシリアル化されたローカルデータにする一の第２のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタを更に有する
請求項１に記載の集積回路。
【請求項７】
各レーンは、
前記ローカル・バス及び前記第１のＰＩＳＯシフトレジスタの間で結合された一のバス・マルチプレクサを更に有し、前記バス・マルチプレクサは、前記ローカル・データバスの前記複数のビットの前記半分に結合された一の第１のデータ入力と、前記ローカル・データバスの前記複数のビットの残り半分に結合された一の第２のデータ入力と、前記第１のＰＩＳＯシフトレジスタのパラレル入力に結合された一の多重化出力と、一のデータバス選択信号に結合された一の選択入力と、を有し、前記バス・マルチプレクサは、データバス選択信号に応じて、前記ローカル・データバスの前記複数のビットの前記半分又は前記ローカル・データバスの前記複数のビットの前記残りの半分に選択的に結合させて、前記第１のＰＩＳＯシフトレジスタの前記パラレル入力にする、
請求項６に記載の集積回路。
【請求項８】
前記各レーンは、
前記マルチプレクサ及び前記第１のＰＩＳＯシフトレジスタに結合された制御ロジックを更に有し、前記制御ロジックは、前記第１のクロック信号と、一のモード選択信号と、一のマージ・イネーブル信号と、を受信し、前記制御ロジックは、前記マージ・イネーブル信号と前記第１のクロック信号に応じて、前記シリアル化されたローカルデータと前記フィードスルー・データとをマージさせて、前記シリアル・データストリームにするための前記ローカル・データ選択信号と、を生成し、前記制御ロジックは、前記モード選択信号に応じて、前記データバス選択信号を更に生成する、
請求項７に記載の集積回路。
【請求項９】
前記ロード信号は、前記第２のＰＩＳＯシフトレジスタのロード／シフトバーのバー入力に結合された一の初期のロード・パルス信号であり、
前記制御ロジックは、マージ制御ロジックを有し、それは、
前記マージ・イネーブル信号に結合された一の第１のデータ入力と、前記初期のロード・パルス信号に結合された一の選択入力と、を含む一の第２のマルチプレクサと、
前記第２のマルチプレクサに結合された一の第１のＤタイプフリップフロップと、を含み、前記第１のＤタイプフリップフロップは、前記第２のマルチプレクサの一の出力に結合された一のデータ入力と、前記第１のクロック信号に結合された一のクロック入力と、前記第１のマルチプレクサと前記第２のマルチプレクサの一の第２のデータ入力との前記選択入力に結合された一のデータ出力と、を有し、前記第１のＤタイプフリップフロップは、前記初期のロード・パルス信号と前記データ出力上の前記ローカル・データ選択信号を生成するための前記第１のクロック信号に応じて、前記マージ・イネーブル信号を記録し、
前記第２のマルチプレクサは、前記初期のロード・パルス信号が一の論理上のローになるのに応じて、前記ローカル・データ選択信号を前記第１のＤタイプフリップフロップのデータ入力に再循環させ、前記マージ・イネーブル信号は、前記初期のロード・パルス信号が一の論理上のハイになるのに応じて前記第１のＤタイプフリップフロップに結合され、
前記制御ロジックは、モード制御ロジックを更に有し、それは、
一の第３のマルチプレクサを含み、前記第３のマルチプレクサは、前記初期のロード・パルス信号に結合された一の第１のデータ入力を含み、
一の第２のＤタイプフリップフロップを含み、前記第２のＤタイプフリップフロップは、前記第３のマルチプレクサに結合され、前記第３のマルチプレクサの一の出力に結合された一のデータ入力と、前記第１のクロック信号に結合された一のクロック入力と、一の反転バス・モード信号に結合された一のクリア入力と、前記バス・マルチプレクサの前記選択入力に結合された一のデータ出力と、前記第３マルチプレクサの一の第２のデータ入力と、を含み、前記第２のＤタイプフリップフロップは、前記反転バス・モード信号、前記初期のロード・パルス信号、及び、前記第１のクロック信号に応じて、前記データ出力上の前記データバス選択信号を生成させ、
一のＯＲゲートを含み、前記ＯＲゲートは、前記初期のロード・パルス信号に結合された一の第１の入力と、一の遅れたロード・パルス信号に結合された一の第２の入力と、を有し、前記ＯＲゲートは、前記初期のロード・パルス信号と、前記遅れたロード・パルス信号を、論理的にＯＲ演算し、
一のＡＮＤゲートを含み、前記ＡＮＤゲートは、前記ＯＲゲートの一の出力に結合された一の第１の入力と、一のバス・モード信号に結合された一の第２の入力と、前記第３のマルチプレクサの一の選択入力に結合された一の出力と、を有し、
一のインバータを含み、前記インバータは、バス・モード信号に結合された一の入力と、前記第２のＤタイプフリップフロップの前記クリア入力が結合された一の出力、を有し、前記インバータは、バス・モード信号に応じて、前記反転バス・モード信号を生成し、
一の第４のマルチプレクサを含み、前記第４のマルチプレクサは、前記初期のロード・パルス信号に結合された一の第１のデータ入力、前記ＯＲゲートの前記出力に結合する一の第２のデータ入力、前記バス・モード信号に結合する一の制御入力、及び、前記第１のＰＩＳＯシフトレジスタのロード／シフトバーのバー入力に結合する一の多重化された出力を有し、
前記第３マルチプレクサは、前記逆バス・モード信号に応じて、データバス選択信号を、前記第２のＤタイプフリップフロップのデータ入力に再循環させ
前記第４のマルチプレクサは、前記初期のロード・パルス信号か、又は、前記初期のロード・パルス信号と前記遅れたロード・パルス信号との両方を、前記第１のＰＩＳＯシフトレジスタのロード／シフトバーのバー入力に、選択的に結合させる。
請求項８に記載の集積回路。
【請求項１０】
前記集積回路は、一のバッファ集積回路であり、
前記ローカルバスは、１２ビット長であり、
各レーンの前記バス・マルチプレクサは、前記データバス選択信号に応じて、前記ローカルバスのより下位の６ビットを前記第１のＰＩＳＯシフトレジスタに選択的に結合し、前記ローカルバスのより上位の６ビットを前記第１のＰＩＳＯシフトレジスタに選択的に結合する
請求項９に記載の集積回路。
【請求項１１】
データのアイドル状態の複数のフレーム間に散在するデータの複数のフィードスルーフレームを表す一の入力シリアルデータストリームを受信することと、
データの複数のローカルフレームとデータの前記複数のフィードスルーフレームとを、一のマージ・イネーブル信号に応じて、前記入力シリアルデータストリームをデコードせずに、共にマージして一の出力シリアルデータストリームにすることと、
一のノースバウンド・データ出力上の前記出力シリアルデータストリームを、一の次のメモリーモジュール又は一のメモリーコントローラに送信すること、
を備えるメモリーモジュールのための方法。
【請求項１２】
データの前記複数のローカルフレームは、前記入力シリアルデータストリーム中のデータの複数のアイドル状態のフレームを置換することにより、前記出力シリアルデータストリームにマージされる、
請求項１１に記載の方法。
【請求項１３】
前記入力シリアルデータストリームを前記受信することは、
前記入力シリアルデータストリーム中のデータの前記複数のビットをサンプリングすることを有する、
請求項１１に記載の方法。
【請求項１４】
前記入力シリアルデータストリームを前記受信することは、
前記入力シリアルデータストリーム中のデータの前記複数のビットを再同期することを有する、
請求項１１に記載の方法。
【請求項１５】
前記データの複数のローカルフレームとデータの前記複数のフィードスルーフレームとを共にマージングすることは、
データの前記複数のローカルフレームの複数のパラレルビットをデータの複数のシリアルビットにシリアル化することと、
データの前記複数のローカルフレームのデータの前記複数のシリアルビットと、データの前記複数のフィードスルーフレームの複数のシリアルビットとを、前記マージ・イネーブル信号に応じて、多重化して前記出力シリアルデータストリームの複数のシリアルビットにすること、を有する
請求項１１に記載の方法。
【請求項１６】
データの一のローカルフレームは、一のバス・モード信号に応じて、一のローカルバスの上で、選択的にパラレルで６ビット又は１２ビットの複数のパケットを受信する
請求項１１に記載の方法。
【請求項１７】
命令、及び、プロセス・データを実行するための一のプロセッサと、
前記プロセッサに結合され、一のメモリーコントローラと、を備え、
前記メモリーコントローラは、前記プロセッサから書込みデータを有するメモリ書込み命令を受信し、前記プロセッサからメモリ読出し命令を受信し、読出しデータを前記プロセッサに供給し、
メモリの少なくとも一のバンクは、前記メモリーコントローラに結合され、前記メモリの少なくとも一のバンクが、一つ以上のメモリモジュールを有し、各前記一つ以上のメモリモジュールは、
一のバッファ集積回路と、
少なくとも一のメモリ集積回路と、を含み、
前記バッファ集積回路は、
前記メモリーコントローラから前記書込みデータを受信するための、一つ以上のシリアルレーンを有する一のサウスバウンド・シリアル入出力インタフェースと、
一のノースバウンド・シリアル入力と一のノースバウンド・シリアル出力の一つ以上のシリアルレーンを有する一のノースバウンド・シリアル入出力インタフェースと、を含み、前記ノースバウンド・シリアル入出力インタフェースは、前記読出されたデータを前記メモリーコントローラに送信し、前記ノースバウンド・シリアル入出力インタフェースは、各シリアル・レーン用に、
一のローカル・データバスの複数のパラレルビットに結合された一のパラレル入力、一の第１のクロック信号に結合された一のクロック入力、一のロード信号に結合された一のロード／シフトバー入力、を有する一のパラレル／シリアル・コンバータを含み、前記パラレル／シリアル・コンバータは、前記ローカル・データバス上のデータの前記複数のパラレルビットをシリアル化して、一の第１のシリアル出力上のシリアル化されたローカルデータにし、
前記パラレル／シリアル・コンバータの前記シリアル出力に結合された一の第１のデータ入力と、前記ノースバウンド・シリアル入力からシリアル・フィードスルー・データを受信するための一の第２のデータ入力と、一のローカル・データ選択信号に結合された一の選択入力とを有する一の第１のマルチプレクサを含み、前記マルチプレクサは、前記ローカルデータ選択信号に応じて、前記シリアル化されたローカルデータと前記シリアル・フィードスルー・データとを選択的にマージして前記ノースバウンド・シリアル出力上の一のシリアル・データストリームにする、
を備えるシステム。
【請求項１８】
前記ノースバウンド・シリアル入出力インタフェースの各シリアル・レーンは、
前記シリアルデータストリームを受信するために、前記第１のマルチプレクサの前記多重化された出力に結合された一の入力を有する一のトランスミッタ、を更に備え、
前記トランスミッタは、
前記シリアルデータストリームを、前記メモリーコントローラに向けて、前記ノースバウンド・シリアル・データ出力上へドライブする、
請求項１７に記載のシステム。
【請求項１９】
メモリの各バンクのために、
前記メモリーコントローラは、
前記一つ以上のメモリモジュールからシリアルデータの一つ以上のレーンを受信するための一のノースバウンド・シリアル入力インタフェースと、
前記一つ以上メモリモジュールにシリアルデータの一つ以上のレーンを送信するための一のサウスバウンド・シリアル出力インタフェースと、を有する
請求項１７に記載のシステム。
【請求項２０】
前記ノースバウンド・シリアル入出力インタフェースの各シリアル・レーンは、
前記マルチプレクサと、前記第１のパラレル／シリアル・コンバータに結合された制御ロジック、を更に有し、前記制御ロジックは、前記第１のクロック信号と、一のマージ・イネーブル信号を受信し、前記制御ロジックは、前記マージ・イネーブル信号と前記第１のクロック信号に応じて、前記シリアル化されたローカルデータと、前記シリアル・フィードスルー・データをマージして前記シリアルデータストリームにするための前記ローカルデータ選択信号を生成する
請求項１７に記載のシステム。
【請求項２１】
前記ノースバウンド・シリアル入出力インタフェースの各シリアル・レーンは、
再同期されたシリアル・データを受信するための一の第１のデータ入力、再サンプリングされたシリアル・データを受信するための一の第２のデータ入力、一のローカル・クロック・モード信号に結合された一の選択入力、を有する一の第２のマルチプレクサ、を更に有し、
前記第２のマルチプレクサは、前記ローカル・クロック・モード信号に応じて、前記シリアル・フィードスルー・データとして、前記再サンプリングされたシリアル・データ又は前記再同期されたシリアル・データを選択する
請求項１７に記載のシステム。
【請求項２２】
一のエッジ・コネクションを有する一のプリント回路基板と、
前記プリント回路基板に結合された複数のメモリ集積回路と、
前記複数のメモリ集積回路と、前記エッジ・コネクションに、更に電気的に結合され、一のサウスバウンド入出力インタフェースと、一のノースバウンド入出力インタフェースとを有するプリント回路基板に結合された一のバッファ集積回路と、を備え、前記ノースバウンド入出力インターフェースは、複数のシリアルデータストリームの複数のレーンのための複数のマージ・ロジックスライスを有するデータ・マージ・ロジック、を含み、各マージ・ロジックスライスは、
一のローカル・データバスに結合された一のパラレル入力、一の第１のクロック信号に結合された一のクロック入力、一の第１のロード信号に結合された一のロード／シフトバー入力、を含み、前記ローカル・データバス上のパラレルデータをシリアル化して一の第１のシリアル出力上のシリアル化されたローカルデータにする一の第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタを含み、
一の第１のマルチプレクサは、前記第１のＰＩＳＯシフトレジスタの前記第１のシリアル出力に結合された一の第１のデータ入力、シリアル化されたフィードスルー・データを受信するための一の第２のデータ入力、一のローカル・データ選択信号に結合された一の選択入力、を有し、前記第１のマルチプレクサは、前記ローカルデータ選択信号に応じて、前記シリアル化されたローカルデータと、前記シリアル化されたフィードスルー・データとを選択的にマージして一の多重化された出力上の一のシリアル・データストリームにする、
バッファー付きメモリーモジュール。
【請求項２３】
前記ノースバウンド入出力インターフェースは、
各マージ・ロジック・スライスの前記第１のマルチプレクサの一の対応する出力に結合された一の入力を更に有し、前記シリアルデータストリームを受信し、それを一のシリアル・データリンク上へドライブする複数のトランスミッタを有する
請求項２２に記載のバッファー付きメモリーモジュール。
【請求項２４】
各マージロジック・スライスは、
再同期されたシリアル・データを受信するための一の第１のデータ入力、再サンプリングされたシリアル・データを受信するための一の第２のデータ入力、一のローカル・クロック・モード信号に結合された一の選択入力、を有し、前記ローカル・クロック・モード信号に応じて、シリアル化されたフィードスルー・データとして、前記再サンプリングされたシリアル・データ又は再同期されたシリアル・データを選択する一の第２のマルチプレクサ、を更に有する
請求項２２に記載のバッファー付きメモリーモジュール。
【請求項２５】
各マージ・ロジック・スライスは、
第１のマルチプレクサと前記第１のＰＩＳＯシフトレジスタに結合され、前記第１のクロック信号と一のマージ・イネーブル信号とを受信し、前記マージ・イネーブル信号と前記第１のクロック信号とに応じて、前記シリアル化されたローカルデータとシリアル化されたフィードスルー・データとをマージして前記シリアルデータストリームにするための前記ローカルデータ選択信号を生成する制御ロジックを更に備える
請求項２４に記載のバッファー付きメモリーモジュール。
【請求項２６】
メモリの一のバンクを形成するために共にデイジーチェーンでつながれた複数のバッファー付きメモリモジュール、を備え、各バッファ付きメモリーモジュールは、
複数のメモリ集積回路と、
前記複数のメモリ集積回路に結合する一のバッファ集積回路と、を有し、前記バッファ集積回路は、
一のメモリーコントローラ又は一の前のバッファー付きメモリーモジュールから、一の次のバッファー付きメモリーモジュールへの、サウスバウンド・シリアル・データを受信して再送信するための、一のサウスバウンド入出力シリアルインターフェース、
少なくとも一のバッファー付きメモリーモジュールから、シリアル化されたフィードスルー・データとして、ノースバウンド・シリアル・データ受信して前記メモリーコントローラに向けてそれを再送信するための一のノースバウンド入出力シリアルインターフェース、を含み、前記ノースバウンド入出力シリアルインターフェースは、受信されたノースバウンド・シリアルデータをデコードせずに、前記複数のメモリ集積回路からのローカルデータをシリアル化して、シリアル化されたフィードスルー・データと、それをマージして一のノースバウンド・シリアルデータストリームにし、前記ノースバウンド入出力シリアルインターフェースは、更に、前記メモリーコントローラに向かう、シリアル化されたフィードスルー・データと、シリアル化されたローカルデータと、を含む前記ノースバウンド・シリアル・データストリームを送信し、
一の書込みデータ先入れ先出し方式（ＦＩＦＯ）バッファは、サウスバウンド入出力シリアルインターフェースに結合され、前記書込みデータＦＩＦＯバッファは、前記サウスバウンド入出力シリアルインターフェースからの書込みデータを、一の書込みコマンドにより、前記バッファー付きメモリーモジュールのアドレスが指定されて記憶し、
一のメモリ入出力インタフェースは、前記複数のメモリ集積回路と前記書込みデータＦＩＦＯバッファに結合され、前記メモリ入出力インタフェースは、前記書込みデータＦＩＦＯバッファに記憶された書込みデータを、前記複数のメモリ集積回路の少なくとも一つに転送し、一の読出しデータＦＩＦＯバッファは、ノースバウンド入出力シリアルインターフェースと前記メモリ入出力インタフェースに結合され、前記読出しデータＦＩＦＯバッファは、前記複数のメモリ集積回路の少なくとも一つからの読出しデータを、一の読出されたコマンドにより前記バッファー付きメモリーモジュールからアドレスが指定された前記ローカルデータとして、記憶し、
前記メモリ入出力インタフェースは、前記複数のメモリ集積回路の少なくとも一つからの読出しデータを前記読出しデータＦＩＦＯバッファに転送する
メモリシステム。
【請求項２７】
前記複数バッファ付きメモリーモジュールの少なくとも一つに結合されたメモリーコントローラ、を更に有し、
前記メモリーコントローラは、
前記サウスバウンド・シリアル・データストリームを前記複数のバッファー付きメモリモジュールの少なくとも一つに送信する一のサウスバウンド出力シリアルインターフェースと、
前記複数のバッファー付きメモリモジュールの少なくとも一つからの前記ノースバウンド・シリアル・データストリームを受信する一のノースバウンド入力シリアルインターフェースと、を含む
請求項２６に記載のメモリシステム。
【請求項２８】
前記バッファ集積回路の前記ノースバウンド入出力シリアルインターフェースは、
一の第３のＦＩＦＯバッファと、
前記第３のＦＩＦＯバッファに結合されたデータ・マージ・ロジックと、を有し、前記データ・マージ・ロジックは、複数のマージ・ロジックスライスを含み、各マージ・ロジックスライスは、
一の第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタを含み、前記第１のＰＩＳＯシフトレジスタは、一のローカル・データバスに結合された一のパラレル入力と、一の第１のクロック信号に結合された一のクロック入力と、一の第１のロード信号に結合された一のロード／シフトバー入力と、を有し、前記第１のＰＩＳＯシフトレジスタは、前記ローカル・データバス上のパラレルデータをシリアル化して一の第１のシリアル出力上のシリアル化されたローカルデータにする、
一の第１のマルチプレクサを含み、前記第１のマルチプレクサは、前記第１のＰＩＳＯシフトレジスタの前記第１のシリアル出力に結合された一の第１のデータ入力、シリアル化されたフィードスルー・データを受信するための一の第２のデータ入力、一のローカル・データ選択信号に結合された一の選択入力、を有し、前記第１のマルチプレクサは、前記ローカルデータ選択信号に応じて、前記シリアル化されたローカルデータとシリアル化されたフィードスルー・データとを選択的にマージして一の多重化された出力上の一のシリアル・データストリームにし、
前記データ・マージ・ロジックに結合された複数のトランスミッタを含み、前記複数のトランスミッタの各々は、各マージ・ロジック・スライス内の前記第１のマルチプレクサの一の対応する出力に結合された一の入力を有し、前記複数のトランスミッタは、前記シリアルデータストリームを受信し、それを一のシリアル・データリンク上へドライブする
請求項２６に記載のメモリシステム。
【請求項２９】
前記データマージ・ロジックの各マージ・ロジック・スライスは、
再同期されたシリアル・データを受信するための一の第１のデータ入力、再サンプリングされたシリアル・データを受信するための一の第２のデータ入力、一のローカル・クロック・モード信号に結合された一の選択入力、を有する一の第２のマルチプレクサ、を更に有し、前記第２のマルチプレクサは、前記ローカル・クロック・モード信号に応じて、シリアル化されたフィードスルー・データとして、前記再サンプリングされたシリアル・データ又は再同期されたシリアル・データを選択する
請求項２８に記載のメモリシステム。
【請求項３０】
前記データマージ・ロジックの各マージ・ロジック・スライスは、
前記第１のマルチプレクサと前記第１のＰＩＳＯシフトレジスタに結合され、前記第１のクロック信号と一のマージ・イネーブル信号を受信し、前記制御ロジックは、前記マージ・イネーブル信号と前記第１のクロック信号に応じて、前記シリアル化されたローカルデータと前記シリアル化されたフィードスルー・データをマージして前記シリアルデータストリームにするために、前記ローカルデータ選択信号を生成する制御ロジックを更に有する
請求項２８に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般的にはメモリに関し、特に、メモリバッファからシリアルデータチャンネル上へデータをマージすることに関する。
【背景技術】
【０００２】
メモリ回路において、一般的に、有効なデータのためにメモリ回路の読出しにかかる期間であるメモリ読出しレーテンシがある。メモリ書込みレーテンシは、一般的に、また、メモリにデータを書込むためのメモリ回路に有効なデータを保持するために要求される期間である。メモリ読出しレーテンシ及びメモリ書込みレーテンシは、時々キャッシュメモリによってプロセッサからバッファリングされてもよい。しかしながら、求められたデータがキャッシュメモリの中で見つけられないときがある。それらのケースでは、プロセッサは、メモリ回路に、その時、データを読出すか又は書込むことを必要とする場合がある。このように、それぞれのメモリ読出しレーテンシ又はメモリ書込みレーテンシが、プロセッサによって実施（経験）されてもよい。メモリ回路が異なるならば、メモリ読出しレーテンシ及びメモリ書込みレーテンシは、一のメモリ回路から次まで一致していなくてもよい。その場合には、プロセッサによって実施（経験）されたメモリ読出しレーテンシ及びメモリ書込みレーテンシは異なることになる。
【０００３】
事前に、メモリモジュールは、マザー又はホスト・プリント回路基板に結合され、それにより、パラレルデータでメモリから読出しでき及びメモリに書込みできるように、パラレルデータ・バスとパラレルに結合される。パラレル・データバスは、一度にデータの少なくとも一のデータバイト又はワードを転送するために共に同期したパラレルデータビットラインを有する。パラレルデータビットラインは、一般的に、プリント回路基板（ＰＣＢ）上の一のメモリモジュール・ソケットから他への間隔をまたぐようにルートを決められる。これは、第１の寄生容量性負荷を発生させる。メモリモジュールがメモリ・ソケットに結合されるので、追加の寄生容量性負荷は、パラレル・データバスのパラレルデータビットラインの上に発生される。プラグが差し込まれる多くのメモリモジュールがあってもよいので、追加の寄生の容量性負荷は重大な量になり、高周波メモリ回路を動作させなくすることがある。
【０００４】
一のメモリモジュールは、一般的に、アドレスライン上のアドレスによって一度にアドレス指定される。一のアドレスされた記憶モジュールは、一般的にパラレルのデータバス上へ一度にデータを書込む。他のメモリモジュールは、衝突を避けるために、パラレルデータバス上への書込みデータを一般的に待機させなければならない。
【０００５】
パラレルデータビットラインは、データフローの速度を上げる場合がある一方で、メモリのパラレル・データバスは、メモリ回路及びプロセッサ間のデータの読出し及び書込みのアクセスを遅くすることがある。
【発明を実施するための最良の形態】
【０００６】
本発明の各実施形態の以下の詳細な説明においては、本発明の完全な理解を与えるために、多数の具体的な詳細が記載される。しかし、本発明のその各実施形態が、これらの特定の詳細なしで実行されてもよいことは、当業者にとって明らかである。他の場合において、不必要に本発明の各実施形態の態様を不明瞭にしないために、周知の方法、プロシージャ、コンポーネント、及び、回路は、詳述していない。
【０００７】
一般的に、本発明の各実施形態では、高速で、高速リンク上のデータの一部をそれ自身のデータと変換するノースバウンド（上りシリアルリンク）・データ・マージ（ＮＢＤＭ）と称されるデータ・マージ機能を提供する。すなわち、本発明の各実施形態は、シリアル・データリンク上の入力シリアル・データトラフィック（例えば「アイドル状態のパケット又はフレーム」）の一部を、入力シリアル・データトラフィックが、どこへローカル・データを挿入するべきかについて決定して、その中に挿入されたローカル・データを備える入力データトラフィックを再送信する処理（例えば、シリアル／パラレル変換、フレームへのアセンブル、及び、デパケッタイズ／デインターリーブ・データ）を内部コア・ロジックが実施することなく、そのローカルデータと変換する。
【０００８】
あらかじめ、入力シリアルデータは、フレームにアセンブルされて、コア・ロジックによりローカルデータを伝送するために、受信されていなければならない。メモリモジュールの入力／出力（ＩＯ）インタフェースは、ローカルデータを送信するための入力シリアルデータ処理を有さずに、シリアル・データリンク上の他のメモリモジュール、又は、メモリコントローラから受信されて、バッファ集積化回路の内部コア・ロジックをバイパスしている入力シリアルデータストリームを単に再送信してもよい。これは、シリアルデータストリームのデータ・レーテンシを減らすことができる。再送信されたシリアルデータストリームの一部は、時々「フィードスルデータ」、又は、「フィードスルーデータ」（ＦＴＤ）と称される。
【０００９】
いかなるローカルデータを送信することなく、入出力インタフェースは、通常、チップのコア・ロジックをバイパスして、受信されたシリアルデータストリームを再送信する。バッファ・メモリチップのコア・ロジックは、ローカルデータを送信することを必要とするときに、ローカル・データと共にマージ・リクエストを入出力インタフェースに送信する。ローカル・データを生成するコア・クロックが、トレーニングの間、本発明の各実施形態の高速シリアル・データリンクのフレーム・クロックに同調するので、入出力インタフェースは、アイドル状態のパケット、又は、フレームを変換するために、該当するフレーム境界で、直ちにデータをマージすることができる。
【００１０】
先に、受信されたシリアル・データがフレームにアセンブルされて、コア・ロジックによって受信されて、それから出力のリンクに再送信されることが意図された。この場合、もしコア・ロジックが出力のリンクで送信するローカルデータを有するなら、その時にいくつかの着信データがそれ自身のデータと取り替えられ、出力リンク上へデータがリパケッタイズ及びシリアル化される。これは、データに少なくとも２フレームのデータ・レーテンシを招く。本発明の各実施形態は、ローカル・データが出力リンクにマージできるようにするためのイニシャルトレーニングの間に、アイドル状態のパケットを変換するための正常動作の間に入力データを受信して分析することなく、マージ・タイミングを設定する。本発明の各実施形態は、バッファ・メモリ集積回路により、少なくとも２フレームのデータ・ダウンから２、３ビット・インターバルのデータ・レーテンシを減らすことができる。
【００１１】
本発明の一実施形態において、少なくとも一つのレーンを有するシリアル入出力インタフェースを含む集積回路が与えられる。シリアル通信チャネルの各レーンは、第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタ、第１のマルチプレクサ、及び、シリアル・トランスミッタを共に結合させて備えてもよい。
【００１２】
第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタは、ローカル・データバスに結合するパラレル入力、第１のクロック信号に結合するクロック入力、ロード信号に結合するロード／シフトバー入力を有する。第１のＰＩＳＯシフトレジスタは、ローカル・データバス上のパラレルデータを、第１のシリアル出力上のシリアル化されたローカルデータにシリアル化する。
【００１３】
Ｔｈｅ  第１のマルチプレクサは、第１のシリアル出力に結合する第１のデータ入力、フィードスルー・データを受信するための第２のデータ入力、及び、ローカル・データ選択信号に結合する第１の選択制御入力を有する。マルチプレクサは、ローカル・データ選択信号に応じて、選択的にシリアル化されたローカルデータ、及び、フィードスルー・データをマージして、多重化出力のシリアル・データストリームにする。
【００１４】
シリアル・トランスミッタは、シリアル・データストリームを受信するために、マルチプレクサの多重化された出力と結合する入力を有する。シリアル・トランスミッタは、シリアル・データリンク上へシリアル・データストリームをドライブする。
【００１５】
フィードスルー・データは、２ビット長であってもよく、一方、ＰＩＳＯシフトレジスタへのパラレル入力は６ビット長であってもよく、ＰＩＳＯシフトレジスタのシリアル出力は２ビット長であってもよい。この場合、第１のマルチプレクサは、シリアル・トランスミッタが  ２つのビットシリアル・データストリームを受信してそれをシリアル・データリンク上へのシングルビットシリアル・データストリームとしてシリアル化するような、そのような多重化された出力のシリアルデータストリームが２ビット長である、２ビット・バス・マルチプレクサであってもよい。
【００１６】
各レーンは、再同期したデータを受信するための第１の入力、再サンプリングされたデータを受信するための第２の入力、及び、ローカル・クロック・モード信号に結合する選択入力を有する第２のマルチプレクサを更に備えてもよい。第２のマルチプレクサは、出力されたローカルクロック・モード信号に応じたフィードスルー・データとして、再同期したデータ、又は、再サンプリングされたデータの間で選択する。各レーンは、第１のマルチプレクサ及び第１のＰＩＳＯシフトレジスタと結合する制御ロジックを更に備えてもよい。制御ロジックは、マージ制御ロジック、及び、モード制御ロジックを備えてもよい。制御ロジックは、第１のクロック信号、及び、マージ・イネーブル信号及び第１のクロック信号に応じて、シリアル化されたローカルデータ及びフィードスルー・データをマージしてシリアル・データストリームにするための、ローカル・データ選択信号を生成するためのマージ・イネーブル信号を受信してもよい。
【００１７】
本発明の他の実施形態において、データのアイドル状態のフレームの間に散在するデータのフィードスルーフレームを表している入力シリアルデータストリームを受信すること、入力シリアルデータストリームを復号することなく、マージ・イネーブル信号に応じて、データのローカルフレームとデータのフィードスルーフレームとを共にマージして出力シリアルデータストリームにすること、及び、次のメモリモジュール又はメモリコントローラに出力されたノースバウンド・データ上の出力シリアル・データストリームを送信することを含むメモリモジュールのための方法が提供される。データのローカルフレームは、入力されたシリアル・データストリームのデータのアイドル状態のフレームを変換することにより、出力されたシリアル・データストリームにマージされることができる。受信している入力シリアルデータストリームにおいて、入力されたシリアル・データストリームのデータのビットをサンプリングすること（また、再サンプリングすることと称してもよい）、又は、入力されたシリアル・データストリームのデータのビットを再同期することが、提供されてもよい。データのローカルフレームと、フィードスルーフレームのデータとを共にマージングすることにおいて、データのローカルフレームのパラレルビットを、データのシリアルビットにシリアル化すること、そして、マージ・イネーブル信号に応じて、データのローカルフレームのデータのシリアルビットと、データのフィードスルーフレームのシリアルビットとを多重化して、出力シリアル・データストリームのシリアルビットにすることが、提供されてもよい。データのローカルなフレームは、バス・モード信号に応じて、ローカルバスの上に、６ビット、又は、１２ビットのパケットで、パラレルに、選択的に受信されてもよい。
【００１８】
本発明の他の実施形態のシステムは、プロセッサ、プロセッサに結合するメモリコントローラ、及び、メモリコントローラに結合するメモリの少なくとも一つバンクを備えて提供される。プロセッサは、命令、及び、プロセス・データを実行するために提供される。メモリコントローラは、プロセッサからの書込みデータを有する書込みメモリ命令を受信するためと、プロセッサから読出しメモリ命令を受信して読出しデータをそれに対して出力するために提供される。
【００１９】
メモリの一つバンクは、それぞれが、共に結合しているバッファ集積回路、及び、ランダムアクセスメモリ集積回路を有する少なくとも一つのメモリモジュールを含む。バッファ集積回路は、メモリコントローラから書込みデータを受け取るための、少なくとも一つのシリアルレーンを有するサウスバウンド（下りシリアルリンク）シリアル入出力インタフェースと、ノースバウンドシリアル入力の少なくとも一つのシリアルレーン及びメモリコントローラに読出されたデータを送信するためのノースバウンドシリアル出力を有するノースバウンドシリアル入出力インタフェースとを含む。
【００２０】
ノースバウンド入出力インタフェースの各シリアル・レーンは、パラレル／シリアル・コンバータ、及び、第１のマルチプレクサを有する。パラレル／シリアル・コンバータは、ローカル・データバスのパラレルビットと、第１のクロック信号に結合するクロック入力と、ロード信号に結合するロード／シフト−バー入力と、に結合するパラレル入力を有する。パラレル／シリアル・コンバータは、ローカル・データバス上のデータのパラレルビットを、第１のシリアル出力上のシリアル化されたローカルデータにシリアル化する。第１のマルチプレクサは、パラレル／シリアル・コンバータのシリアル出力に結合する第１のデータ入力、ノースバウンドシリアル入力からシリアル・フィードスルー・データを受け取るための第２のデータ入力、及び、ローカル・データ選択信号に結合する選択入力を有する。ローカル・データ選択信号に応じて、シリアル化されたローカルデータ、及び、シリアル・フィードスルー・データを選択的にマージしてノースバウンドシリアル出力上のシリアル・データストリームにする第１のマルチプレクサ。
【００２１】
ノースバウンドシリアル入出力インタフェースの各シリアル・レーンは、シリアル・データストリームを、ノースバウンドシリアル・データ出力上で、シリアル・データストリームを受信する第１のマルチプレクサの多重化された出力に結合する入力を有するメモリコントローラの方へドライブするために、トランスミッタを更に有してもよい（トランスミッタ）。
【００２２】
ノースバウンド・シリアル入出力インタフェースの各シリアル・レーンは、マルチプレクサ及び第１のパラレル／シリアル・コンバータに結合する制御ロジックを更に備えてもよい。制御ロジックは、第１のクロック信号、及び、ローカル・データ選択信号を生成するためのマージ・イネーブル信号を受信し、マージ・イネーブル信号及び第１のクロック信号に応じて、シリアル化されたローカルデータとシリアル・フィードスルー・データをマージしてシリアル・データストリームにする。
【００２３】
システムのメモリの各バンクのために、メモリコントローラは、少なくとも一つのメモリモジュールからシリアルデータの少なくとも一つのレーンを受信するノースバウンドシリアル入力インタフェース、及び、少なくとも一つのメモリモジュールに、シリアルデータの少なくとも一つのレーンを送信するサウスバウンドシリアル出力インタフェースを備える。
【００２４】
本発明の他の実施形態において、バッファー付きメモリモジュールは、プリント回路基板、複数のランダムアクセスメモリ（ＲＡＭ）集積回路、及び、バッファ集積回路を備えて、提供される。プリント回路基板は、ホストシステムのレセプタクルに結合させるエッジ結合を有する。複数のランダムアクセスメモリは、（ＲＡＭ）集積回路の及び、バッファ集積回路は、プリント回路基板に結合される。バッファ集積回路は、複数のＲＡＭ集積回路、及び、エッジ結合に、電気的に結合する。バッファ集積回路は、シリアルデータストリームの複数のレーンのための複数のマージ・ロジックスライスを有しているデータ・マージ・ロジックを有するサウスバウンド入出力インタフェース、及び、ノースバウンド入出力インタフェースを備える。
【００２５】
バッファ集積回路の各マージロジック・スライスは、第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタ、及び、第１のマルチプレクサを含む。第１のパラレル入力−シリアル出力された（ＰＩＳＯ）シフトレジスタは、ローカル・データバス、第１のクロック信号に結合するクロック入力、第１のロード信号に結合するロード／シフトバー入力に結合するパラレル入力を有する。第１のＰＩＳＯシフトレジスタは、ローカル・データバス上のパラレルデータを、第１のシリアル出力上のシリアル化されたローカルデータにシリアル化する。第１のマルチプレクサは、第１のＰＩＳＯシフトレジスタの第１のシリアル出力に結合する第１のデータ入力、シリアル化されたフィードスルー・データを受信するための第２のデータ入力、及び、ローカル・データ選択信号に結合する第１の選択入力を有する。第１のマルチプレクサは、ローカル・データ選択信号に応じて、シリアル化されたローカルデータと、シリアル化されたフィードスルー・データとを選択的にマージして、多重化された出力上のシリアル・データストリームにする。
【００２６】
各マージ・ロジック・スライスは、第１のマルチプレクサ、及び、第１のＰＩＳＯシフトレジスタに結合する制御ロジックを更に備えていてもよい。制御ロジックは、マージ・イネーブル信号、及び、第１のクロック信号に応じて、シリアル化されたローカルデータ、及び、シリアル化されたフィードスルー・データをマージしてシリアル・データストリームにするローカル・データ選択信号を生成するために、第１のクロック信号、及び、マージ・イネーブル信号を受信する。
【００２７】
バッファー付きメモリモジュールのバッファ集積回路のノースバウンド入出力インタフェースは、各マージ・ロジック・スライスに、各々が第１のマルチプレクサの対応する出力に結合された入力を有する複数のトランスミッタ、シリアル・データストリームを受信して、それをシリアル・データリンク上へドライブするための複数のトランスミッタを更に備えてもよい。
【００２８】
本発明の他の実施形態において、メモリシステムは、メモリのバンクを形成するために共にデイジーチェーン方式でつながれた複数のバッファー付きメモリモジュールを備えて与えられる。各バッファー付きメモリモジュールは、複数のメモリ集積回路、及び、複数のメモリ集積回路に結合するバッファ集積回路を備える。バッファ集積回路は、メモリコントローラ、又は、従来のバッファー付きメモリモジュールからサウスバウンドシリアル・データを受信して次のバッファー付きメモリモジュールに再送信するサウスバウンド入出力シリアルインターフェース、シリアル化されたフィードスルー・データとしての少なくとも一つのバッファー付きメモリモジュールからノースバウンド・シリアル・データを受信してそれをメモリコントローラに向けて再送信出力するノースバウンド入出力シリアルインターフェース、書込みコマンドによってバッファー付きメモリモジュールにアドレス指定されたサウスバウンド入出力シリアルインターフェースから書込みデータを記憶する書込みデータ先入れ先出し方式（ＦＩＦＯ）バッファ、書込みデータＦＩＦＯバッファに記憶された書込みデータを複数のメモリ集積回路の少なくとも一つに転送して読出しデータを複数のメモリ集積回路の少なくとも一つから読出しデータＦＩＦＯバッファに転送するメモリ入出力インタフェース、及び、読出されたコマンドによってバッファー付きメモリモジュールからアドレス指定されたローカル・データとしてメモリ集積回路の少なくとも一つからの読出しデータを記憶する読出しデータＦＩＦＯバッファ、を含む。
【００２９】
ノースバウンド入出力シリアルインターフェースは、複数のメモリ集積回路からのローカル・データをシリアル化し、それをマージして、タイミング・ベース上で、受信されたノースバウンド・シリアルデータをデコードせずに、シリアル化されたフィードスルー・データを有するノースバウンド・シリアルデータストリームにする。ノースバウンド入出力シリアルインターフェースは、第３のＦＩＦＯバッファ、第３のＦＩＦＯバッファに結合するデータ・マージ・ロジック、及び、データマージロジックに結合する複数のトランスミッタを備える。
【００３０】
データ・マージ・ロジックは、各々が、ローカル・データバス上のパラレルデータをシリアル化して、第１のシリアル出力上のシリアル化されたローカルデータにする第１のパラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタと、ローカル・データ選択信号に応じて、シリアル化されたローカルデータとシリアル化されたフィードスルー・データとを選択的にマージして、多重化された出力上のシリアル・データストリームにする第１のマルチプレクサを備える。ＰＩＳＯシフトレジスタは、ローカル・データバス、第１のクロック信号に結合するクロック入力、及び、第１のロード信号に結合するロード／シフトバー入力に結合するパラレル入力を有する。第１のマルチプレクサは、第１のＰＩＳＯシフトレジスタの第１のシリアル出力に結合する第１のデータ入力、シリアル化されたフィードスルー・データを受信する第２のデータ入力、ローカル・データ選択信号に結合する第１の選択入力、を有する。
【００３１】
複数のトランスミッタの各々は、各マージ・ロジック・スライスの第１のマルチプレクサに対応する出力に結合する入力を有する。複数のトランスミッタは、シリアル・データストリームからデータを受信し、シリアル・データリンク上へそれをドライブする。
【００３２】
メモリシステムにおいて、データマージロジックの各マージロジック・スライスは、第１のマルチプレクサ、及び、第１のクロック信号及びマージ・イネーブル信号を受信し、シリアル化されたローカルデータ、及び、シリアル化されたフィードスルー・データをマージしてシリアル・データストリームにするローカル・データ選択信号を生成するための第１のＰＩＳＯシフトレジスタに結合した制御ロジックを更に含んでも良い。
【００３３】
メモリシステムは、複数のバッファー付きメモリモジュールの少なくとも一つに結合するメモリコントローラを更に備えてもよい。メモリコントローラは、サウスバウンド・シリアル・データストリームを、複数のバッファー付きメモリモジュールの少なくとも一つに送信するサウスバウンド出力シリアルインターフェースと、ノースバウンド・シリアル・データストリームを、複数のバッファー付きメモリモジュールの少なくとも一つから受信するノースバウンド入力シリアルインターフェースとを有する。
【００３４】
ここで図１Ａを参照する。本発明の各実施形態が利用されてもよい代表的なコンピュータシステム１００のブロック図が示されている。コンピュータシステム１００Ａは、中央処理装置（ＣＰＵ）１０１、キーボードのような入出力装置（Ｉ／Ｏ）１０２、モデム、プリンタ、外部記憶装置など、及び、  ＣＲＴ、又は、グラフィックディスプレイのようなモニタ装置（Ｍ）１０３、を備える。モニタ装置（Ｍ）１０３は、視覚、又は、音声フォーマットのような人間の理解できるフォーマットのコンピュータ情報を提供してもよい。システム１００は、コンピュータシステム以外の多くの異なる電子的システムであってもよい。
【００３５】
ここで図１Ｂを参照する。本発明の各実施形態が利用されてもよいクライアント・サーバーシステム１００Ｂが示されている。クライアント・サーバーシステム１００Ｂは、ネットワーク１１２に結合された少なくとも一つのクライアント１１０Ａ−１１０Ｍ、及び、ネットワーク１１２に結合するサーバ１１４を備える。クライアント１１０Ａ−１１０Ｍは、情報を送信又は受信してサーバに必要になるであろう、いかなるデータベースおよび／またはアプリケーションソフトウェアとのアクセスを得るためのネットワーク１１２を通してサーバ１１４と通信する。サーバ１１４は、メモリを備えた中央処理装置を有して、少なくとも一つのディスクドライブ・ストレージ・デバイスを更に備えてもよい。サーバ１１４は、例えばネットワーク付属のストレージ（ＮＡＳ）デバイスとしてストレージ・エリアネットワーク（ＳＡＮ）において使用されてもよくて、ディスクアレイを有していてもよい。サーバ１１４に対するデータアクセスは、多重クライアント１１０Ａ−１１０Ｃを有するネットワーク１１２を通じて共有される。
【００３６】
ここで図２Ａを参照することで、本発明の各実施形態が利用されてもよい中央処理装置１０１Ａのブロック図が示される。中央処理装置１０１Ａは、図示されたように共に結合されたプロセッサ２０１、メモリコントローラ２０２、及び、第１のメモリ・チャンネルの第１のメモリ２０４Ａを備える。中央処理装置１０１Ａは、メモリコントローラ２０２、及び、プロセッサ２０１の間に結合されたキャッシュメモリ２０３、及び、プロセッサ２０１に結合されたディスクストレージデバイス２０６を更に備えてもよい。中央処理装置１０１Ａは、メモリコントローラ２０２に結合された第２のメモリ２０４Ｂを有する第２のメモリ・チャンネルを更に備えてもよい。中央処理装置１０１Ａにて図示したように、メモリコントローラ２０２、及び、キャッシュメモリ２０３は、プロセッサ２０１の外部にあってもよい。
【００３７】
ここで図２Ｂを参照する。本発明の各実施形態が利用されてもよい他の中央処理装置１０１Ｂのブロック図が示されている。中央処理装置１０１Ｂは、内部メモリコントローラ２０２'、及び、プロセッサ２０１'の中で内蔵メモリ・コントローラ２０２'に結合されたメモリ２０４Ａに伴われる第１のメモリ・チャンネルを有するプロセッサ２０１'を備える。プロセッサ２０１'は、内部キャッシュメモリ２０３'を更に備えてもよい。中央処理装置１０１Ｂは、第２のメモリ・チャンネルのための第２メモリ２０４Ｂ、及び、プロセッサ２０１'に結合させたディスク記憶デバイス２０６を更に備えてもよい。
【００３８】
ディスクストレージデバイス２０６は、フロッピーディスク、ｚｉｐディスク、ＤＶＤディスク、ハードディスク、書換形光ディスク、フラッシュメモリ、又は、他の不揮発性ストレージ・デバイスであってもよい。
【００３９】
プロセッサ２０１、２０１'は、少なくとも一つの実行ユニット、及び、少なくとも一つのレベルのキャッシュメモリを更に備えてもよい。他のレベルのキャッシュメモリは、プロセッサの外部、及び、メモリコントローラのインタフェースにあってもよい。プロセッサ、少なくとも一つ実行ユニット、又は、少なくとも一つのレベルのキャッシュメモリは、メモリ２０４Ａ−２０４Ｂを伴うメモリコントローラ通して、（命令を含む）データを読出し、又は、書込んでもよい。メモリコントローラ２０２、２０２'にインターフェイスする場合に、メモリインタフェースの一部として、メモリに結合されたアドレス、データ、制御及びクロックの各信号があってもよい。プロセッサ２０１、２０１'及びディスクストレージデバイス２０６は、メモリ２０４Ａ、２０４Ｂに情報を読出し及び書込みの両方とも実施してよい。
【００４０】
各図２Ａ−２Ｂ中に示されたメモリ２０４Ａ及び２０４Ｂは、例えば、フルバッファー付きデュアルインライン（ＦＢ）メモリモジュール（ＤＩＭＭ）、（ＦＢＤＩＭＭ）、又は、フルバッファー付き（ＦＢ）シングルインラインメモリモジュール（ＳＩＭＭ）、（ＦＢＳＩＭＭ）のような、少なくとも一つのバッファー付きメモリモジュール（ＭＭ１−ＭＭｎ）を備えてもよい。
【００４１】
メモリコントローラ２０２、２０２'は、各メモリ２０４Ａ−２０４Ｂをインターフェイスする。本発明の一実施形態において、メモリコントローラ２０２、２０２'は、特に、各メモリ２０４Ａ−２０４Ｂの第１のバッファー付きメモリモジュールＭＭ１中のバッファ（図２Ａ−２Ｂに不図示、しかし、図５のバッファ４５０Ａを参照のこと）をインターフェイスする。メモリコントローラ２０２、２０２'を用いて、メモリモジュールのバッファにインターフェイスすることは、バッファー付きメモリモジュール（ＭＭ１−ＭＭｎ）のメモリデバイスに対する直接のインタフェースを避けることができる。このように、バッファ、及び、メモリコントローラ間のインタフェースを整合したままにできるとき、メモリ領域を提供するために異なるタイプのメモリ素子を使用することができる。
【００４２】
ここで図３を参照する。少なくとも一つのメモリバンク３０４Ａ−３０４Ｆ（メモリバンク３０４、又は、複数のメモリバンク３０４と一般に称される）に結合されたバッファー付きメモリモジュール（ＢＭＭ）メモリコントローラ（ＢＭＭＭＣ）３０２が図示されている。メモリコントローラ３０２は、メモリの２つ以上のチャンネル、及び、メモリモジュールの２つ以上のメモリバンクをサポートすることができる。各メモリバンク３０４は、シリアル・チェインに共に結合された複数のバッファー付きメモリモジュール３１０Ａ−３１０Ｈで構成される。バッファー付きメモリモジュール３１０Ａ−３１０Ｈのこのシリアル・チェインは、時々、デイジーチェーンとも称される。隣接したメモリモジュールは、互いに結合され、時々、例えば、隣接したメモリモジュール３１０Ｂに結合されているメモリモジュール３１０Ａのように、デイジーチェーン方式で共に結合されるように示されている。
【００４３】
各バンクの各メモリモジュール３１０Ａ−３１０Ｈは、メモリコントローラ３０２を伴うシリアル形態で、メモリモジュール３１０Ａ−３１０Ｈのシリアル・チェインに沿って、双方向に通信する。メモリコントローラ３０２から各メモリバンク３０４への、出力のコマンド（例えば、読み書きする）及びデータを備えた出力のデータリンクとして参照されてもよいサウスバウンド・シリアル・データリンク（ＳＢ）がある。メモリコントローラからのメモリモジュールに書込まれることになっている全書込みデータは、サウスバウンド・シリアル・データリンクを通じて送信される。各メモリバンク３０４からメモリコントローラ３０２への、帰りのデータを備えた帰りのデータリンクとして参照されてもよい、ノースバウンド・シリアル・データリンク（Ｎｂ）がある。メモリモジュールからの全読出しデータは、ノースバウンド・シリアル・データリンク上のメモリコントローラに送信される。
【００４４】
サウスバウンド・シリアル・データリンク（ＳＢ）において、メモリコントローラ３０２から第１のメモリバンク３０４へのデータ出力は、データを読出すことができて、それをメモリモジュール３１０Ｂに通過させることができる第１のメモリモジュール３１０Ａに結合される。メモリモジュール３１０Ｂは、データを読出すことができて、シリアル・チェインの次のメモリモジュールに、それを通過させることができ、サウスバウンド・シリアル・チェインの最後のメモリモジュールに達するまで、同様に実施される。サウスバウンド・シリアル・チェインの最後のメモリモジュール、メモリモジュール３１０Ｈは、もはや更にデータを通過させるメモリモジュールを備えないので、サウスバウンド・シリアル・データリンクは、終了する。
【００４５】
ノースバウンド・シリアル・データリンク（Ｎｂ）において、データは、メモリバンク３０４からメモリコントローラ３０２の方向にシリアルに通信される。各メモリバンクの各メモリモジュールは、メモリの方へノースバウンド・シリアル・データリンク（Ｎｂ）上のコントローラを戻り方向に通信する。メモリモジュール３１０Ｈは、メモリコントローラの方へデータを通過させているメモリモジュールのシリアル・チェインを開始する。メモリモジュール３１０Ｈによって送信されたシリアルデータは、メモリモジュール３１０Ｇにより、通過されるか、又は、そうでなければ再送信される。
【００４６】
メモリモジュール３１０Ｇが前のメモリモジュール３１０Ｈからのシリアルデータを通過、又は、再送信してもよいとき、それは、また、それ自身のローカルデータを、メモリコントローラ３０２に向かうノースバウンド・シリアル・データストリームに加えるか、マージしてもよい。同様に、チェインを下る各メモリモジュールは、先のメモリモジュールからのシリアルデータを通過させるか、又は、再送信し、それら自身のローカルデータを、メモリコントローラ３０２に向かうノースバウンド・シリアル・データストリームに加えるか、又は、マージする。ノースバウンド・シリアル・チェインの最後のメモリモジュール、メモリモジュール３１０Ａは、最終的なノースバウンド・シリアルデータストリームをメモリコントローラ３０２に送信する。
【００４７】
ノースバウンド、及び、サウスバウンド・シリアル・データリンクは、１つのメモリモジュールから他のメモリモジュールへのポイントからポイントへの通信を、シリアル・チェインに沿って同様に提供するように検討されてもよい。メモリコントローラ３０２から、メモリモジュール３１０Ａからメモリモジュール３１０Ｈまでに、流れ出すシリアルデータは、サウスバウンド・データフローと称してもよい。メモリモジュール３１０Ｈからメモリモジュール３１０Ｚを通してメモリコントローラ３０２へのシリアルデータ流れは、ノースバウンド・データフローと称してもよい。図３において、サウスバウンド・データフローは、ＳＢと記載された矢印によって示され、一方、ノースバウンド・データフローは、ＮＢと記載された矢印によって図示される。
【００４８】
ここで図４を参照することで、メモリモジュール３１０Ａ−３１０Ｈを例示するバッファー付きメモリモジュール（ＢＭＭ）３１０を図示する。バッファー付きメモリモジュール３１０は、例えば、ＳＩＭＭ、又は、ＤＩＭＭのようないかなるタイプであってもよい。バッファー付きメモリモジュール３１０は、プリント回路基板４５１に結合された、バッファ集積回路チップ（「バッファ」）４５０と、メモリ集積回路チップ（「メモリ素子」）４５２と、を備える。プリント回路基板４５１は、プリント回路基板をホストのエッジコネクタに結合するエッジコネクタ、又は、エッジコネクション４５４を備える。メモリモジュール３１０のサウスバウンド・データ入力（ＳＢＤＩ）、及び、ノースバウンド・データ出力（ＮＢＤＯ）は、それぞれ、前のバッファー付きメモリモジュール、又は、バッファー付きメモリコントローラ、から受信されるか、又は、に送信される。メモリモジュール３１０のノースバウンド・データ入力（ＮＢＤＩ）、及び、サウスバウンド・データ出力（ＳＢＤＯ）は、それぞれ、もしあれば、次のバッファー付きメモリモジュール、から受信されるか、又は、に送信される。
【００４９】
ここで図４を参照する。メモリコントローラ３０２は、サウスバウンド・データフロー、及び、ノースバウンド・データフローを使用することで、各メモリバンク３０４内の各メモリモジュール３１０Ａ−３１０Ｈのバッファ４５０と通信している。各バンクのメモリコントローラに最も近接する第１のメモリモジュールであるメモリモジュール３１０Ａのエッジ・コネクション４５４は、各メモリモジュール３１０Ａのバッファ４５０をメモリコントローラ３０２に結合する。メモリモジュール３１０Ａは、ノースバウンド・データフローのパスにおいて、もはや隣接するメモリモジュールを有していない。メモリモジュール３１０Ａからのノースバウンド・データフローは、メモリコントローラ３０２に結合される。各バンクの隣接したメモリモジュール３１０Ａ−３１０Ｈは、データが、書込み、読出し、各メモリモジュールの各バッファ４５０を通過、ができるように共に結合される。各バンクのメモリコントローラから最も遠い最後のメモリモジュールである、メモリモジュール３１０Ｈは、サウスバウンド・データフローのパスにおいて、もはや隣接するメモリモジュールを有していない。このように、メモリモジュール３１０Ｈは、メモリモジュールのシリアル・チェインに沿って、更なるサウスバウンド・データフローを通過させない。
【００５０】
メモリコントローラ３０２は、いかなるメモリモジュール内のメモリデバイス４５２とも直接に結合しない。各メモリバンク３０４内の各メモリモジュール３１０Ａ−３１０Ｈ内のバッファ４５０は、プリント回路基板３５１上のメモリデバイス４５２に直接に結合する。バッファ４５０は、メモリモジュール３１０の同じプリント回路基板４５１上の全部のメモリ集積回路チップ、又は、デバイス４５２に、データのバッファリングを提供する。バッファ４５０は、データのインタリーブ／デインターリーブ、及び、パケット化／デパケッタイズとを実行すると同様に、必要に応じて、データのシリアル／パラレル変換、及び、パラレル／シリアル変換を更に実行する。バッファ４５０は、また、ノースバウンド、及び、サウスバウンド・データリンクのシリアル・チェインのその一部を、隣接したメモリモジュールにより制御する。さらに、第１のメモリモジュールである、メモリモジュール３１０Ａの場合、バッファ４５０は、又、ノースバウンド、及び、サウスバウンド・データリンクのシリアル・チェインのその一部を、メモリコントローラ３０２により制御する。さらに、最後のメモリモジュールであるメモリモジュール３１０Ｈの場合、バッファ４５０は、また、メモリモジュールのシリアル・チェインの初期化、アイドル状態のフレーム又はノースバウンド・データリンクのデータのアイドル状態のパケットの生成、及び、メモリコントローラ３０２へのノースバウンド・データフロー、を制御する。
【００５１】
メモリモジュールのメモリコントローラ３０２、及び、メモリデバイス４５２間の直接結合がない場合、メモリチップ又はデバイス４５２は、バッファ４５０がどこと通信するかにより、タイプ、速度、サイズ、その他が異なっていてもよい。これは、メモリコントローラとメモリモジュールとの間のハードウェアインタフェースをアップデートすることを必要とせずに、新規のホスト、又は、マザーボードのプリント回路基板を購入することにより、メモリモジュールに改良されたメモリチップが使用されることを許容する。プリント回路基板をホスト、又は、マザーボードに結合するメモリモジュールは、その代わりにアップデートされる。本発明の一実施形態において、メモリチップ、集積回路、又は、デバイス４５２は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を備えたＤＤＲメモリチップである。さもなければ、本発明の他の各実施形態において、メモリチップ、集積回路、又は、デバイス４５２は、いかなる他のタイプのメモリ、又は、ストレージ・デバイスであってもよい。
【００５２】
ここで図５を参照する。メモリシステムのメモリバンク３０４Ａ−３０４Ｆの、バッファー付きメモリモジュール（ＢＭＭ）メモリコントローラ３０２に結合された、１個のメモリバンク３０４をより詳細に図示している。本発明の一実施形態において、ＢＭＭメモリコントローラ３０２は、フルバッファー付きデュアル・インライン（ＦＢＤ）メモリコントローラであり、各メモリモジュール３１０Ａ−３１０Ｈは、フルバッファー付きデュアル・インライン（ＦＢＤ）メモリモジュール（ＦＢＤＩＭＭ）である。メモリバンク３０４は、デイジーチェーン方式で共につながれる少なくとも一つのメモリモジュール３１０Ａ−３１０ｎを備える。各メモリモジュール３１０は、ノースバウンド・データリンク（Ｎｂ）、及び、サウスバウンド・データリンク（ＳＢ）に沿って、シリアルビットストリームに流れる有効なデータのためのリピータのように動作する。
【００５３】
メモリバンク３０４の各メモリモジュール３１０Ａ−３１０ｎは、それぞれ、バッファ４５０Ａ−４５０ｎを備える。それぞれの各バッファー付きメモリモジュール３１０Ａ−３１０Ｎは、互いに異なってもよいメモリデバイス４５２Ａ−４５２Ｎを備える。例えば、バッファー付きメモリモジュール３１０Ａ内のメモリデバイス４５２Ａは、バッファー付きメモリモジュール３１０Ｂ内のメモリデバイス４５２Ｂと異なってもよい。すなわち、各メモリモジュールのバッファ４５０は、メモリコントローラ３０２からトランスペアレントなメモリ素子に使用されるメモリのタイプを作る。
【００５４】
各メモリモジュールのバッファ４５０は、ノースバウンド・データリンク（Ｎｂ）、及び、サウスバウンド・データリンク（ＳＢ）に沿って、シリアルビットストリームで流れているデータのためのリピータのように動作する。さらに、各メモリモジュールのバッファ４５０は、アイドル状態の、又は、無効なデータのフレーム、又は、部分的なフレームの代わりに、それ自身のローカルデータを、ノースバウンド・データリンク（Ｎｂ）に沿って流れるシリアルビットストリームのレーンに挿入、又は、マージしてもよい。
【００５５】
メモリバンク３０４内のメモリコントローラ３０２とメモリモジュール３１０Ａ−３１０ｎとのタイミングを共に同期させるために、各メモリモジュール、及び、メモリコントローラに結合されたクロック・ジェネレータ５００が提供される。クロック・ジェネレータ５００からのクロック信号５０１は、メモリコントローラ３０２に結合される。クロック信号５０２Ａ−５０２ｎは、それぞれメモリモジュール３１０Ａ−３１０ｎのバッファ４５０Ａ−４５０ｎに結合される。
【００５６】
メモリコントローラ３０２は、メモリバンク３０４内のメモリモジュールを通して、サウスバウンド・データリンクＳＢｌ−ＳＢｎの上で通信する。メモリコントローラ３０２は、メモリバンク３０４内で、ノースバウンド・データリンクＮＢ１−ＮＢｎの上で、各メモリモジュール３１０からデータを受信してもよい。サウスバウンド・データリンクＳＢｌ−ＳＢｎは、シリアルデータの少なくとも一つのレーンを備えてもよい。同様に、ノースバウンド・データリンクＮＢｌ−ＮＢｎは、シリアルデータの少なくとも一つのレーンを備えてもよい。本発明の一実施形態において、ノースバウンド・データリンクＮＢｌ−ＮＢｎのシリアルデータには、１４本のレーンがある。
【００５７】
最後のメモリモジュールである、メモリモジュール３１０ｎは、それが送信するデータを有するか否かに関わらず、疑似乱数のビットストリームを生成して、それをノースバウンド・リンクＮＢｎ上のメモリコントローラ３０２の方へ流し始める。疑似乱数のビットストリームは、ノースバウンド・リンクＮＢ１−ＮＢｎ上の１つのメモリモジュールから次まで通過させてもよい。メモリモジュール３１０ｎがメモリコントローラ３０２に送信するローカルデータを有する場合、メモリモジュール３１０ｎは、ローカルデータを備えているデータのフレームを生成して、そのフレームを疑似乱数のビットストリームのデータのフレームの代わりに、ノースバウンド・リンクＮＢｎに配置する。疑似乱数のビットストリームは、データのアイドル状態のフレームを示すデータのフレームにパケット化されたビットのシーケンスを備えてもよい。データのアイドル状態のフレームは、ローカルデータのフレームをノースバウンド・リンクＮＢ１−ＮＢｎ．の上を流れるシリアルビットストリームにマージするために、更に完全に他のメモリモジュール（メモリモジュール３１０Ａ−３１０ｎ）と取り替えられてもよい。例えば、メモリモジュール３１０Ｂは、入力ノースバウンド・リンクＮＢ３上のアイドル状態のフレームを受信してもよく、アイドル状態のフレームの代わりにローカルデータのフレームを、出力ノースバウンド・リンクＮＢ２上のシリアルビットストリームにマージしてもよい。
【００５８】
図５において図示されたメモリシステムは、メモリコントロール３０２から各メモリモジュール３１０Ａ−３１０Ｎに結合されたＳＭバス（ＳＭＢｕｓ）５０６を更に備えてもよい。ＳＭバス５０６は、シリアル・データバスであってもよい。ＳＭバス５０６は、バッファの内部レジスタにアクセスするためのサイドバンドメカニズムである。リンク・パラメータは、ノースバウンド、及び、サウスバウンド・シリアル・データリンクをあげることの前に、バッファの  ＢＩＯＳにより設定されてもよい。ＳＭ−バスは、また、バッファの内部レジスタにアクセスすることにより、システムをデバッグするために使用されてもよい。
【００５９】
メモリコントローラ３０２は、（図２Ｂのプロセッサ２０１'及びメモリコントローラ２０２'で図示されたように）プロセッサの一部であってもよく、又は、（図２Ａのプロセッサ２０１及びメモリコントローラ２０２で図示されたように）別々の集積回路であってもよい。いずれにせよ、メモリコントローラ３０２は、メモリへ又はメモリからそれぞれの書込み又は読出しデータのために、プロセッサから書込みデータを備えた書込みメモリ命令を受信し、プロセッサから読出されたメモリ命令を受信し、プロセッサに読出しデータを出力することができる。メモリコントローラ３０２は、メモリの各バンクの少なくとも一つのメモリモジュールにシリアルデータの少なくとも一つのレーンを送信するための、サウスバウンド・シリアル出力インタフェース（ＳＢＯ）５１０を備えてもよい。メモリコントローラ３０２は、メモリの各バンクの少なくとも一つのメモリモジュールからシリアルデータの少なくとも一つのレーンを受信するための、ノースバウンド・シリアル入力インタフェース（ＮＢＩ）５１１を更に備えてもよい。
【００６０】
ここで図６（図６−１及び６−２）を参照する。バッファー付きメモリモジュール３１０のバッファ４５０の機能ブロック図が示されている。バッファ４５０は、バッファー付きメモリモジュール３１０のプリント回路基板４５１に取り付けられることができる集積回路である。バッファー付きメモリモジュール３１０に及びからデータを結合するために、バッファ４５０は、サウスバウンド・バッファ入出力インターフェイス６００Ａ、及び、ノースバウンド・バッファ入出力インターフェイス６００Ｂを備える。
【００６１】
ノースバウンド・バッファ入出力インターフェイス６００Ｂは、ノースバウンドデータ出力（ＮＢＤＯ）６０１、及び、ノースバウンドデータ入力（ＮＢＤＩ）６０２をインターフェイスする。サウスバウンド・バッファ入出力インターフェイス６００Ａは、サウスバウンドデータ入力（ＳＢＤＩ）６０３、及び、サウスバウンドデータ出力（ＳＢＤＯ）６０４をインターフェイスする。本発明の一実施形態において、ノースバウンドデータ入力６０２、及び、ノースバウンドデータ出力６０１は、シリアルデータストリームの１４レーンを備える。本発明の一実施形態において、サウスバウンドデータ入力６０３、及び、サウスバウンドデータ出力６０４は、シリアルデータストリームの１０レーンを備える。
【００６２】
メモリデバイス４５２にインターフェイスするために、バッファ４５０は、メモリ入出力インターフェイス６１２を備える。メモリ入出力インターフェイス６１２で、ＤＲＡＭデータは、双方向にＤＲＡＭデータ／ストローブ・バス６０５の上を搬送され、一方、アドレス及びコマンドは、メモリデバイスに送出するためにＤＲＡＭアドレス／コマンド・バス６０６Ａ−６０６Ｂ上を搬送される。メモリ素子４５２は、メモリ入出力インターフェイス６１２を備えたデータ転送を同期させるために、ＤＲＡＭクロック・バス６０７Ａ−６０７Ｂによって計時される。バッファ４５０のコア・ロジックから、メモリ入出力インターフェイス６１２は、マルチプレクサ６３５からＣＭＤアウト・バス６９２の上のコマンド、マルチプレクサ６３７からのＡＤＤアウト・バス６９３上のアドレス、マルチプレクサ６３６からのデータ・アウト・バス６９１上の書込データ、を受信する。データ・アウト・バス６９１上の書込みデータは、ＤＲＡＭデータ／ストローブ・バス６０５の上の該当するメモリデバイスに通信される。データアウトバス６９１上のアドレス・データは、ＤＲＡＭアドレス／コマンド・バス６０６Ａ−６０６Ｂの上の該当するメモリデバイスに通信される。ＣＭＤアウトバス６９２上のコマンドは、ＤＲＡＭアドレス／コマンド・バス６０６Ａ−６０６Ｂの上の該当するメモリデバイスに通信される。
【００６３】
バッファ４５０の機能ブロックのためのコア・クロック信号６１１を生成するために、結合されたフェイズロックループ（ＰＬＬ）６１３は、リファレンスクロック（ＲＥＦ  ＣＬＯＣＫ）５０２を受信する。リファレンスクロック（ＲＥＦ  ＣＬＯＣＫ）５０２は、差分の入力信号であってもよく、差分入力受信機によって適切に受信される。バッファ４５０は、ＳＭバスコントローラ６２９に結合されたＳＭバス５０６を更に受信する。
リセット信号（Ｒｅｓｅｔ＃）６０８は、それがアクティブローになる時に、バッファ４５０、及び、機能ブロックをリセットするために、リセット制御ブロック６２８に結合される。
【００６４】
メモリ入出力インターフェイス６１２、及び、バッファ入出力インターフェイス６００Ａ−６００Ｂの間は、バッファ４５０のコア・ロジックである。バッファ４５０のコア・ロジックは、メモリデバイスからのデータの読出し、ノースバウンド・データインタフェース６００Ｂを通してのローカルデータとしてのデータの出力、に使用される。さらに、メモリモジュールからの他のいかなるレスポンスも、バッファによって出力され、ノースバウンド・データインタフェース６００Ｂを通して、ノースバウンド・シリアル・データストリームに入力される。バッファ４５０のコア・ロジックは、また、サウスバウンド・データインタフェース６００Ａから受信されたメモリデバイスへの書込みデータに使用される。データを読出し及び書込むコマンドは、サウスバウンド・データインタフェース６００Ａから受信される。与えられたバッファー付きメモリモジュール３１０のメモリデバイス４５２がアクセスされない場合、ノースバウンド・データ入力６０２、及び、サウスバウンド・データ入力６０３上のシリアルデータは、それぞれ、バッファ入出力インターフェイス６００Ａ−６００Ｂを通って、ノースバウンド・データ出力６０１上、及び、サウスバウンド・データ出力６０４上まで通過してもよい。このように、他のバッファー付きメモリモジュール３１０からのデータは、バッファ４５０のコア・ロジックによって処理されることなく、ノースバウンド・データインタフェース６００Ｂ上のメモリコントローラを通過する。同様に、メモリコントローラからのデータは、バッファ４５０のコア・ロジックによって処理されることなく、サウスバウンド・データインタフェース６００Ａ上の他のメモリモジュールの上を通過してもよい。
【００６５】
バッファ４５０のコア・ロジックは、データをメモリデバイス４５２から読出すため及びメモリデバイス４５２に書込むための機能ブロックを有する。バッファ４５０のコア・ロジックは、位相同期ループ（ＰＬＬ）６１３、データＣＲＣジェネレータ６１４、読出されたＦＩＦＯバッファ６３３、５入力１出力バス・マルチプレクサ６１６、同期及びアイドル状態のパターンジェネレータ６１８、ＮＢ  ＬＡＩバッファ６２０、リンク（ＩＢＩＳＴ）６２２Ｂのための集積化されたビルトインセルフテスタ、リンク初期化ＳＭ及び制御とコンフィギュレーションのステータスレジスタ（ＣＳＲ）６２４Ｂ、リセット・コントローラ６２５、コア制御及びコンフィギュレーション・ステータスレジスタ（ＣＳＲ）ブロック６２７、ＬＡＩコントローラ・ブロック６２８、ＳＭバスコントローラ６２９、外部ＭＥＭＢＩＳＴメモリキャリブレーションブロック６３０、及び、図６に示されたように共に結合されたフェールオーバ・ブロック６４６Ｂを備える。バッファ４５０のコア・ロジックは、コマンド・デコーダ及びＣＲＣチェッカ・ブロック６２６、アイドル状態のビルトイン・セルフテスタ（ＩＢＩＳＴ）ブロック６２２Ａ、リンク初期化ＳＭ及び制御及びＣＳＲブロック６２４Ａ、メモリの状態コントローラ及びＣＳＲ６３２、書込みデータＦＩＦＯバッファ６３４、４入力１出力バス・マルチプレクサ６３５、４入力１出力バス・マルチプレクサ６３６、３入力１出力バス・マルチプレクサ６３７、ＬＡＩロジック・ブロック６３８、初期化パターン・ブロック６４０、１つのバス・マルチプレクサ６４２への二つ及び共に図６に示すように結合されたフェールオーバ・ブロック６４６Ａを有する。
【００６６】
マルチプレクサは、少なくとも２つのデータ入力、出力、及び、マルチプレクサの出力に与えられるデータ入力を選択するための少なくとも一つ制御入力又は選択入力を有する。２入力マルチプレクサのために、１つの制御入力又は選択入力は、マルチプレクサでの出力であるデータを選択するために使用される。バス・マルチプレクサは、各データ入力でビットを受信し、同様に、ビットを含む出力を有する。２入力１出力バス・マルチプレクサは、そのデータ入力、及び、単一のバス出力としての２つのバスを有する。３入力１出力バス・マルチプレクサは、そのデータ入力、及び、単一のバス出力として３つのバスを有する。４入力１出力バス・マルチプレクサは、そのデータ入力、及び、単一のバス出力として４つのバスを有する。
【００６７】
バッファ４５０内では、各バッファ入出力インターフェイス６００Ａ−６００Ｂは、ＦＩＦＯバッファ６５１、データマージ・ロジック６５０、トランスミッタ６５２、レシーバ６５４、再同期ブロック６５３、及び、デマルチプレクサ／シリアル・パラレル・コンバータ・ブロック６５６を有する。データは、コア・ロジックにインターフェイスせずに、再同期パス６６１又は再サンプリングするパス６６２を通って、各バッファ入出力インターフェイス６００Ａ−６００Ｂを通過することができる。本発明の各実施形態によれば、バッファ４５０に関連するローカルデータは、シリアル・データストリームを受信するコア・ロジックを有さずにアイドル状態のフレームに上書きして、アイドル状態のフレームがその中に位置するところを決定するために、シリアルデータストリームにマージされることができる。
【００６８】
マルチプレクサ６１６は、ノースバウンド・データ出力６０１のシリアルレーン上のローカルデータとして出力するために、どのデータが、ノースバウンド・バッファ入出力インターフェイス６００ＢのＦＩＦＯバッファ６５１の方向に向かうのかを選択する。一般的に、マルチプレクサ６１６は、コア制御、及び、ＣＳＲブロック６２７からのステータス、又は、読出されたＦＩＦＯバッファ６３３からの読出しデータ、ＣＲＣジェネレータ６１４からの付属のＣＲＣデータを有する読出しデータ、パターンジェネレータ６１８からの同期又はアイドル状態のパターン、又は、ＩＢＩＳＴブロック６２２Ｂからのテストパターン・データからの他の制御情報を選んでもよい。
【００６９】
マルチプレクサ６４２は、サウスバウンドデータ出力６０４のシリアルレーン上へ出力するために、どのデータが、サウスバウンド・バッファ入出力インターフェイス６００ＡのＦＩＦＯバッファ６５１の方向に向かうのかを選択する。一般的に、マルチプレクサ６４２は、初期化パターン・ブロック６４０からの初期化パターン、又は、ＩＢＩＳＴブロック６２２Ａからのテストパターン・データ、を選んでもよい。
【００７０】
ここで、図７Ａを参照する。トランスミッタに６５２に結合されたデータ・マージ・ロジック６５０のブロック図が示されている。トランスミッタ６５２は、トランスミッタ７５２Ａ−７５２ｎのＮレーンで構成される。上記したように、本発明の一実施形態において、レーンの数は１０である。本発明の他の実施形態において、レーンの数は１４である。データ・マージ・ロジック６５０においては、Ｎレーンのそれぞれのための、データ・マージ・ロジック・スライス７００Ａ−７００ｎがある。
【００７１】
先入れ先出し方式（ＦＩＦＯ）バッファ６５１からのパラレル・ローカルデータ・バス６６０は、各データ・マージロジック・スライス７００Ａ−７００ｎに結合する。再同期パス６６１のシリアルデータのそれぞれのレーンは、各々個々のデータ・マージロジック・スライス７００Ａ−７００ｎに結合する。再同期バス６６１のビット長は、レーンの数の２倍である。再同期バス６６１の各々個々のレーンの２ビットは、各々個々のデータ・マージ・ロジック・スライス７００Ａ−７００Ｎに結合される。再サンプリングするバス６６２のシリアルデータの個々のレーンは、各々個々のデータ・マージロジック・スライス７００Ａ−７００ｎに結合する。再サンプリングバス６６２のビット長は、レーンの２倍の数である。再サンプリングバス６６２の各々個々のレーンの２ビットは、各々個々のデータ・マージ・ロジック・スライス７００Ａ−７００Ｎに結合される。
【００７２】
再サンプリングするバス６６２、及び、再同期バス６６１の両方共は、  各レーンのために、２ビットシリアル・データストリームを、各々個々のデータマージロジック・スライス７００Ａ−７００Ｎに転送する。対照的に、パラレル・データバス６６０は、各レーンのための６又は１２ビットを各々個々のデータマージロジック・スライス７００Ａ−７００Ｎに結合する。パラレル・ローカルデータ・バス６６０のビット長は、レーン数の１２倍である。しかし６ビットのモードにおいて、１２ビット中の６ビットだけがレーンごとにアクティブになることができる。各データ・マージ・ロジックスライス７００Ａ−７００Ｎからの出力は、シリアル・トランスミッタ７５２Ａ−７５２Ｎにそれぞれ結合され２ビットシリアル・データストリームである。各シリアル・トランスミッタ７５２は、図７Ａに示すように、シリアルデータの２つのパラレルビットを、ノースバウンド・データ出力（ＮＢＤＯ）６０４の中の、個々のレーン６０１Ａ−６０１Ｎ、又は、サウスバウンドデータ出力（ＳＢＤＯ）６０１の中の個々のレーン６０４Ａ−６０４Ｎの上の単一のビットシリアル・データストリームに変換する。
【００７３】
ここで図７Ｂを参照する。トランスミッタ７５２ｉに結合されたデータ・マージ・ロジック・スライス７００ｉの回路図が示されている。データ・マージ・ロジック・スライス７００ｉは、図７Ａに図示された各Ｎレーンのための、データ・マージ・ロジックスライス７００Ａ−７００ｎのうちの１つを表す。トランスミッタ７５２ｉは、図７Ａに図示された各Ｎレーンのためのトランスミッタ７５２Ａ−７５２ｎのうちの一つを表す。
【００７４】
各データ・マージ・ロジック・スライス７００ｉは、１２ビット長の全フレーム・モード（１２ビットモードとも称される）、又は、６ビット長のハーフ・フレーム・モード（６ビットモードとも称される）、の２ビット長モードのうちの１つにおいて動作することができる。モード制御信号（６ｂｉｔ＿ｍｏｄｅ）７２２は、データマージロジック・スライス７００ｉが、どちらの２ビット長モードのコア・ロジックで動作するかを示し、制御する。
【００７５】
全フレーム・モード、又は、１２ビットのモードにおいて、コア・ロジックは、データマージロジック・スライス７００ｉを用いてバス６６０ｉ上でデータを通信するために、１２ビットの全フレームを使用する。バス６６０ｉの下位の６ビットは、Ｄａｔａ［５：０］  バス７２６に表され、一方、バス６６０ｉの上位の６ビットは、Ｄｅｌａｙｅｄ＿ｄａｔａ［５：０］バス７２７に表される。シリアルデータストリームにマージされて送信されたローカルデータの１２ビット（Ｄａｔａ［５：０］、及び、Ｄｅｌａｙｅｄ＿ｄａｔａ［５：０］）は、それぞれ、フレームの初めに、「Ｅａｒｌｙ＿Ｌｏａｄ＿Ｐｕｌｓｅ」制御信号７２０により、下位のパラレル入力シリアル出力（ＰＩＳＯ）コンバータ７０８Ｂ、及び、上位のパラレル入力シリアル出力（ＰＩＳＯ）コンバータ７０８にラッチされる。
【００７６】
下位のパラレル入力シリアル出力（ＰＩＳＯ）コンバータ７０８Ｂ、及び、上位のパラレル入力シリアル出力（ＰＩＳＯ）コンバータ７０８Ａは、パラレル入力シリアル出力（ＰＩＳＯ）シフトレジスタであり、また、本願明細書においてもそのように参照される。各ＰＩＳＯコンバータ７０８Ａ−７０８Ｂは、また、ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂとしても参照され、パラレル・データ入力、クロック入力、ロード／シフトバー入力、シリアル入力（ＳＩＮ）、及び、シリアル出力（ＳＯ）を有する。上位のＰＩＳＯシフトレジスタ７０８Ａのシリアル出力は、ローカルデータ・バス６６０ｉの１２パラレルビットをシリアル化することをサポートするために、下位のＰＩＳＯシフトレジスタ７０８Ｂのシリアル入力に結合される。上位のＰＩＳＯシフトレジスタ７０８Ａのシリアル入力は、本発明の一実施形態における論理上のロー（例えばグランド）、又は、本発明の他の実施形態における論理上のハイ（例えばＶＤＤ）に結合されることができる。ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂのシリアル出力（ＳＯＵＴ）は、本発明の一実施形態において、一度に２ビットである。本発明の他の実施形態において、ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂのシリアル出力（ＳＯＵＴ）は、一度に１ビットであってもよい。
【００７７】
１２ビット・モードにおいて、バス７２６の６ビットは、下位のＰＩＳＯシフトレジスタ７０８Ｂのパラレル・データ入力（ピン）に結合され、一方、バス７２７の６ビットは、上位のＰＩＳＯシフトレジスタ７０８のパラレル・データ入力（ピン）に結合される。これらの１２ビットは、１２ビット・バス・モードを示すモード制御信号７２２を備えた初期のロード・パルス７２０の間に、各ＰＩＳＯシフトレジスタにそれぞれロードされる。（例えば、本発明の一実施形態において、モード制御信号７２２は、論理上のローレベルであることにより１２ビットのモード、論理上のハイ・レベルであることにより６ビットのモードであることを示す。）１２ビット・モードにおいて、Ｄ−ｔｙｐｅフリップフロップ７０６Ａへのクリア入力は、論理的にハイ・セッティングであり、Ｄ−ｔｙｐｅフリップフロップ７０６ＡのＱ出力は、マルチプレクサ７０３への制御入力が、バス７２８上への出力にバス７２６が選択されるように、論理上のゼロである。
【００７８】
ハーフ・フレーム・モード、又は、６ビットのモードにおいて、コア・ロジックは、データマージロジック・スライス７００ｉにより、バス６６０ｉ上でデータを通信するために、一度に６ビットのハーフ・フレームを使用するだけである。コア・ロジックは、一度に６ビットのデータ、又は、フレームの半分によりオフセットされた初期のデータ（Ｄａｔａ［５：０］７２６）、及び、遅れたデータ（Ｄｅｌａｙｅｄ＿ｄａｔａ［５：０］）を送信する。ハーフ・フレーム・モードにおいて、データ・マージ・ロジック・スライス７００ｉの下位のＰＩＳＯシフトレジスタ７０８Ｂのみが、送信するためのシリアルデータストリームにデータをマージするために使用される。
【００７９】
６−ビット・モードのマルチプレクサ７０３は、初期のロード・パルス７２０の間に、選択的にバス７２６の６ビットを、下位のＰＩＳＯシフトレジスタ７０８Ｂのパラレル・データ入力（ピン）に結合し、遅れたロードパルス７２１の間に、バス７２７の６ビットを、下位のＰＩＳＯシフトレジスタ７０８Ｂのパラレル・データ入力（ピン）に結合する。バス７２６の６つのビットは、遅れたロード・パルス７２１の間に、６ビットのバス・モードを示すモード制御信号７２２により、ＰＩＳＯシフトレジスタ７０８Ｂにロードされる。バス７２７の６ビットは、初期のロード・パルス７２０の間に、６ビットのバス・モードを示すモード制御信号７２２により、ＰＩＳＯシフトレジスタ７０８Ｂにロードされる。
【００８０】
データ・マージ・スライス７００ｉは、データパス・ロジック、及び、制御ロジック７０１ｉを有する。データパス・ロジックは、ローカルデータ、及び、フィードスルー・データを、シリアルビットストリームに選択的にマージする。制御ロジック７０１ｉは、ローカルデータ及びフィードスルー・データのシリアルビットストリームへのマージングを適切に同期させるために、各データ・マージ・スライスのデータパス・ロジックを制御する。
【００８１】
モード制御ロジック、及び、マージ制御ロジックを備える制御ロジック７０１ｉは、図７Ｂに示されて、図示されたように、共に結合された、３つのシングル・ビット２入力１出力マルチプレクサ７０２Ａ−７０２Ｃ、セット／リセットＤフリップフロップ７０６Ａ−７０６Ｂ、ＯＲゲート７１０、ＡＮＤゲート７１１、及び、インバータ７１２を有する。制御ロジック７０１ｉによって生成された信号は、データパス・ロジックに結合される。マルチプレクサ７０２Ａ−７０２Ｂ、Ｄ−ｔｙｐｅフリップフロップ７０６Ａ、ＯＲゲート７１０、ＡＮＤゲート７１１、及び、インバータ７１２は、モード制御ロジックを提供する。マルチプレクサ７０２Ｃ、及び、Ｄ−ｔｙｐｅフリップフロップ７０６Ｂは、マージ制御ロジックを提供する。
【００８２】
データパス・ロジックは、図７Ｂに図示されたように、共に結合された、６ビットの２入力１出力バス・マルチプレクサ７０３、２ビット２入力１出力バス・マルチプレクサ７０４−７０５、一対の６ビット入力／２ビット出力のパラレル入力シリアル出力（ＰＩＳＯ）コンバータ７０８Ａ−７０８Ｂを有する。
【００８３】
データ・マージ・ロジック６５０の各スライス７００ｉは、再同期データ６６１ｉの２ビット・シリアル・レーン、再サンプリングデータ６６２ｉの２ビット・シリアル・レーン、及び、ローカルデータ６６０ｉの１２ビット・パラレル・レーンを受信してもよい。ローカルデータ６６０ｉのパラレル・レーンは、バッファ４５０のコア・ロジックからであり、様々なタイプのデータであってもよい。例えば、ローカルデータ６６０ｉは、メモリデバイス４５２からの読出しデータ、サイクリックリダンダンシチェック（ＣＲＣ）データ、試験データ、ステータス・データ、又は、バッファのコア・ロジックにより受信され、送信され、又は、生成された他のいかなるデータ、であってもよい。
【００８４】
再同期データ６６１ｉの２ビット・レーン、及び、再サンプリングデータ６６２ｉの２ビット・レーンは、与えられたバッファ４５０のコア・ロジックに結合点を有しておらず、マルチプレクサ７０５により、ローカル・クロック・モード信号７３６に応じて、フィードスルー・データ（また、本願明細書において「フィードスルー・データ」としても参照される）７２５に多重化される。バッファ４５０がローカル・クロック・モードで動作している場合、再同期データは、フィードスルー・データ７２５の上へ多重化される。バッファ４５０がローカルクロック・モードで動作していない場合、再サンプリングデータ６６２ｉは、フィードスルー・データ７２５の上へ多重化される。ローカル・クロック・モードにおいて、フェーズ・ロック・ループ（ＰＬＬ）クロック・ジェネレータは、再同期データを生成するために、入力シリアルデータストリームを再同期することに使用されたバッファ内で、遠隔クロック信号を生成するために使用される。ローカル・クロック・モードでない場合、再サンプリングデータを生成するために、受信されたクロックが、入力シリアルデータストリームのサンプルをとるために使用された受信されたシリアル・データストリーム内のデータのフレームから生成され、同期される。クロック信号Ｃｌｏｃｋ＿２ＵＩ７２３は、ローカル・クロック・モード信号７３６に応じて、局所的に生成されたクロック信号と受信されたクロック信号との間で切替えられる。フィードスルー・データ７２５のソースは、ノースバウンド（Ｎｂ）側（また、伝送されたノースバウンド・データとも称する）上の他のメモリモジュール３１０のバッファ４５０から、又は、サウスバウンド（ＳＢ）側（また、伝送されたサウスバウンド・データと称する）上の他のメモリモジュール３１０のバッファ４５０から、代わりに、サウスバウンド（ＳＢ）側上のメモリコントローラ３０２から、であってもよい。
【００８５】
２入力１出力バス・マルチプレクサ７０４は、第１の入力としてのシリアル・フィードスルー・データ７２５の２ビット、第２の入力としての６−２ＰＩＳＯシフトレジスタ７０８Ｂからの２ビット・シリアル出力、及び、制御入力におけるローカル・データ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２を受信する。６−２ＰＩＳＯシフトレジスタ７０８Ｂからの２ビット・シリアル出力７３５は、パラレル・データバス６６０ｉからのローカルデータ７３５の２つのシリアル化されたビットである。このように、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２に応じて、マルチプレクサ７０４は、フィードスルー・データ７２５の２ビット、又は、パラレル・データバス６６０ｉから、６−２ＰＩＳＯシフトレジスタ７０８Ｂによって発生され、シリアル化されたローカルデータ７３５の２ビットのどちらも出力に選択する。マルチプレクサ７０４からの２ビット出力７３０は、トランスミッタ７５２に結合され、更に、レーンＮＢＤＯｉ／ＳＢＤＯｉ６０１ｉ、６０４ｉの上へのシングル・ビットにシリアル化される。このように、コア・ロジックからのローカルデータは、フィードスルー・データと多重化され、ＮＢＤＯｉ／ＳＢＤＯｉ６０１ｉ、６０４ｉで、シリアルビットストリームのレーンにマージすることができる。
【００８６】
データのシリアルビットストリームへのマージングを制御するローカル・データ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２は、Ｄフリップフロップ７０６Ｂにより発生される。マージ・イネーブル信号７２４に応じて、Ｄフリップフロップ７０６Ｂは、クロック信号Ｃｌｏｃｋ＿２ＵＩ７２３の立ち上がりエッジ上のローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２を生成する。マージ・イネーブル信号７２４は、マルチプレクサ７０２Ｃの第１の入力に結合される。ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２は、フィードバックされ、マルチプレクサの７０２Ｃの第２入力に結合される。マルチプレクサ７０２Ｃの出力は、Ｄフリップフロップ７０６ＢのＤ入力に結合される。初期のロード・パルス（ＥＡＲＬＹ＿ＬＤ＿ＰＵＬＳＥ）信号７２０は、マルチプレクサ７０２Ｃの選択制御入力に結合される。初期のロード・パルス７２０がアクティブハイである場合、マージ・イネーブル信号７２４はマルチプレクサ７０２Ｃにより出力され、Ｄフリップフロップ７０６ＢのＤ入力に結合される。初期のロード・パルス７２０がローである場合、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２は、マルチプレクサ７０２Ｃフィードバックにされ、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２の現在状態を保持するために、Ｄフリップフロップ７０６ＢのＤ入力に結合する。初期のロード・パルス７２０は周期的に記録されるので、マージ・イネーブル信号７２４がローである場合、それは、適切な時期にＤフリップフロップ７０６Ｂをクリアする、したがって、そのＱ出力は、データのマージを終了するロー論理レベル信号である。
【００８７】
マージイネーブル信号７２４は、クロック信号Ｃｌｏｃｋ＿２ＵＩ７２３のエッジ上で、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２に同期される。ｍｅｒｇｅ＿ｅｎａｂｌｅ信号７２４は、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２を生成するために、ｅａｒｌｙ＿ｌｏａｄ＿ｐｕｌｓｅ７２０の間にサンプリングされて、マルチプレクサ７０４は、フレーム境界（フレームのレーンごとにデータの１２ビット）で切り替えられる。マージ・イネーブル信号７２４が、クロック信号Ｃｌｏｃｋ＿２ＵＩ７２３の立ち上がりエッジ上のアクティブハイである場合、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２は、ローカルデータ７３５の２つのシリアル化されたビットを選択するためのマルチプレクサ７０４、と同様にその２ビット出力７３０、を制御するために、アクティブハイになる。マージ・イネーブル信号７２４が、クロック信号Ｃｌｏｃｋ＿２ＵＩ７２３の立ち上がりエッジ上のローである場合、ローカルデータ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２は、データ７２５の２つのフィードスルービットを選択するためのマルチプレクサ７０４、と同様にその２ビット出力７３０、を制御するためにローのままである。
【００８８】
ローカル・データ選択信号（ＰＩＳＯ−ＳＥＬ）７３２が論理上のハイであることに応じて、パラレル・データバス６６０ｉの２つのシリアルビットは、レーンＮＢＤＯｉ／ＳＢＤＯｉ６０１ｉ、６０４ｉ．にマージされる。ローカル・データ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２が論理上のローであることに応じて、フィードスルー・データ７２５の２ビットは、マルチプレクサ７０４によりレーンＮＢＤＯｉ／ＳＢＤＯｉ６０１ｉ、６０４ｉ．の上の出力に選ばれる。
【００８９】
ローカル・データ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２は、マージ・イネーブル信号７２４に応ずるので、マージ・イネーブル信号７２４の生成は、レーンＮＢＤＯｉ／ＳＢＤＯｉ６０１ｉ、６０４ｉのシリアル・データストリームの上へマージされるバス６６０ｉのパラレルデータを与える。マージ・イネーブル信号７２４は、リンク制御ロジック（図６に示されたリンク初期化ＳＭ及び制御及びＣＳＲ機能ブロック６２４Ｂ）によりシリアル・データストリームにマージされるためのローカルデータを与えるために、適切な時期の時間内に生成される。
【００９０】
一時的に図５に戻って参照する。マージ・イネーブル信号のタイミングは、システムの初期化及びトレーニングの間の各メモリモジュール３１０に対して決められている。バンク３０４の最後のメモリモジュール３１０ｎについては、マージイネーブル信号は、ノースバウンド・データリンクにおいて、続けて生成しているデータの更なるメモリーモジュールがもはやないといった、データ送信信号よりも多くの意味があることに注意する。
【００９１】
ここで図１０を参照する。フローチャートは、初期化、トレーニング、及び、ローカルデータとフィードスルー・データを共にシリアル・データストリーム出力にマージする場合のバッファの動作のために図示している。フローチャートは、ブロック１０００から始まる。
【００９２】
ブロック１００２で、各メモリバンクの各メモリモジュールのバッファは、初期化される。メモリバンク３０４の初期化の間、各メモリモジュールでは、そのサウスバウンド、及び、ノースバウンド・シリアル・データリンクが初期化（また、リンク・トレーニングの一部であることと称してもよい）される。メモリコントローラ３０２は、サウスバウンド（ＳＢ）データリンクＳＢｌ−ＳＢｎ上の外の初期化パターンを送信する。初期化の間、最後のメモリーモジュールの３１０ｎのバッファ４５０ｎは、サウスバウンド・データリンクＳＢｎ上の初期化パターンを受信し、それを他のメモリモジュールを通して、ノースバウンド（Ｎｂ）データリンクＮＢ１−ＮＢｎの上を再送信してメモリーコントローラ３０２に戻す。各バッファがそれ自身のクロックを有するように、ノースバウンド（Ｎｂ）データリンクＮＢ１−ＮＢｎでバッファにより受信された初期化パターンは、ビットをロックするためと、シリアルデータの各レーンのフレームを同期させる目的で使用される。バッファのクロックは、初期化パターンに同期してもよい。ロジックのタイミングは、シリアル・データストリームのデータのパケットを受信するためと、同様にデータのフレームからのヘッダ、及び、いかなるエラー訂正／検出、又は、パケット内の他のデータフィールドを解析するために、初期化パターンに合わせられてもよい。Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ７２０の生成は、与えられたメモリモジュールによって受信されたデータのフレームの始まりと一致するように設定される。Ｌａｔｅ＿ＬＤ＿Ｐｕｌｓｅ７２１の生成は、与えられたメモリモジュールによって受信されたデータのフレームのハーフ・フレーム境界にあるように設定される。
【００９３】
次にブロック１００４で、各メモリーバンクの各メモリモジュールの各バッファは、トレーニングされる。初期化パターンを送出した後に、メモリ・コントローラ３０２は、トレーニングの間に与えられたバンク３０４の最後のメモリモジュールまでトレーニング・パターンを送信する。トレーニングの間、最後のメモリモジュールの３１０ｎのバッファ４５０ｎは、サウスバウンドデータリンクＳＢｎ上のトレーニング・パターンを受信して、それをメモリ・コントローラ３０２に戻すために、他のメモリモジュールを通して、ノースバウンド（Ｎｂ）データリンクＮＢ１−ＮＢｎの上へ再送信する。各メモリモジュールは、サウスバウンド（ＳＢ）データリンク上のトレーニング・パターンのうちの１つを観察して、ノースバウンド（Ｎｂ）データリンク上で同じメモリモジュールに戻すための時間又はそのためのクロックサイクルを決定する。ラウンドトリップ時間は、各メモリモジュールの与えられたポジションに対して決定される。
【００９４】
リクエストが過剰に集中されないと仮定するならば、ラウンドトリップ時間は、他のメモリモジュールの有効なデータと衝突せずに、ノースバウンド・データリンク上へデータをマージするための、与えられたメモリモジュールのために安全である時間内のスロットを表す。与えられたメモリモジュールで、アイドル状態のデータ・パケットは、サウスバウンド・データリンク上のメモリ・リクエストコマンドを確かめた後の、その瞬間に、ノースバウンド・データリンク上で受信されることが求められる。その時点で、アイドル状態のデータパケットは、ローカル・データパケットと取り替えられることができる。与えられたメモリモジュールのためのデータ遅延時間に対するラウンドトリップ時間、及び、コマンドは、ノースバウンドデータリンクにローカル・データをマージすることを制御するために使用されるマージ・イネーブル信号のタイミングをセットするための根拠である。ラウンドトリップ時間が長いならば、データは、先にフェッチされ、ＦＩＦＯバッファに置かれ、ノースバウンド・データストリームにマージされるための適当な時間を待つことができる。バッファのノースバウンド・インタフェースの読み書きＦＩＦＯバッファ・ポインタの間の距離は、ラウンドトリップタイミングに基づいてセットすることができる。
【００９５】
ラウンドトリップ時間は、ビットレートクロック（ｃｌｏｃｋ＿２ＵＩ  ７２３）の周期の整数の関数として、決定されてもよい。チャネルのメモリモジュールの数、及び、チャネルの最後のメモリモジュールのデータ遅延に対するコマンドは、そのチャネルの往復の時間を決定する。
【００９６】
各メモリモジュールに対するデータ遅延のためのコマンドは、各メモリモジュールのマージイネーブル信号のタイミングを確立することをアシストするために更に決定されてもよい。データ遅延タイミングに対するコマンドは、少なくとも一つの以下の期間を有してもよい：サウスバウンド入出力インターフェイス６００Ａからメモリ入出力インタフェース６１２にコマンドが転送されるための時間、メモリ入出力インタフェース６１２からメモリデバイス４５２までコマンドが転送されるための時間、メモリ入出力インタフェース６１２、及び、メモリデバイス４５２のクロック・タイミングの差、メモリデバイス４５２に対するクロック信号、及び、コマンド信号のルートを決めることによる遅延、バッファ４５０、及び、メモリデバイス４５２のためのいかなるセットアップ／ホールド時間、メモリデバイス４５２（例えばＣＡＳタイミング、及び、いかなる追加レーテンシも）の読出しレーテンシ、メモリデバイス４５２からバッファ４５０へのデータ信号、及び、ストローブ信号のルートを決めることによる遅延、メモリデバイス間のデータの遅延スキュー、メモリ入出力インタフェース６１２による遅延、バッファ４５０、及び、メモリ機器４５２のためのいかなるセットアップ／ホールド時間、及び、メモリ入出力インタフェース６１２からノースバウンド入出力インタフェース６００Ｂまでデータが転送されるための時間（これは、バッファ４５０の中でデータがバッファリング、及び、計時されるための遅延を含んでもよい）。データ遅延タイミングに対するコマンドは、フレームのマルチプルの数、又は、ビット・レート・クロックの周期（フレーム／１２又はｃｌｏｃｋ＿２ｕｉ／２のようなビットタイミング）の整数の関数として存在する遅延時間の粒状性により、それのフラクションとして決定されてもよい。例えば最後のメモリモジュール３１０ｎのようなメモリモジュールのデータ遅延タイミングに対するコマンドは、追加の遅延時間が求められる場合、プログラム的にレジスタをセットすることにより増大させることができる。
【００９７】
次のブロック１００６で、初期化、及び、トレーニングの後には、各バッファは、シリアル・データ入力から入力シリアルデータストリームを受信する準備ができている。しかし、メモリバンク３０４の最後のメモリモジュール３１０ｎのバッファは、ノースバウンド・データリンク上のメモリ・コントローラ３０２の方へのアイドル状態のパケット又は読み出しリクエストされたデータ・パケットのどちらも送信する。一方、入力シリアルデータストリームは、データのアイドル状態のフレーム間に散在するデータのフィードスルー・フレームを表したものが受信される。
【００９８】
次のブロック１００８で、判定は、ローカルデータのアベイラビリティに関してなされてもよい。シリアル・データストリームにマージするローカルデータがある場合、その時、制御フローはブロック１０１０へジャンプする。シリアル・データストリームにマージするローカルデータがもはやない場合、その時、制御フローはブロック１０１４へジャンプする。
【００９９】
マージするローカルデータのないブロック１０１４で、フィードスルー・データは、シリアル・データ出力の上へ送信される。フィードスルー・データは、再サンプリングされた入力シリアルデータストリームのデータのそのビットを有してもよい。代わりに、フィードスルー・データは、再同期された入力シリアルデータストリームのデータのそのビットを有してもよい。その時、制御フローは、連続的に入力シリアルデータストリームを受信するために、ブロック１００６へ戻るようにジャンプする。
【０１００】
ローカルデータのマージに関するブロック１０１０で、ローカルデータのフレームは、出力シリアルデータストリームのフィードスルー・データと置き換えられる。すなわち、ローカルデータがバッファによって送信されることを必要とする場合、入力シリアルデータストリームのデータのフレームは、ドロップされ、ローカルデータのフレームは、その場所においてマージ・イネーブル信号に応じて送信される。ローカル・データ、及び、フィードスルー・データのフレームは、データのローカル・フレームのパラレルビットをデータのシリアル・ビットにシリアル化することによって共にマージされて、それから、マージイネーブル信号に応じて、データのローカル・フレームのデータのシリアル・ビット、及び、データのフィードスルー・フレームのシリアル・ビットを、出力シリアルデータストリームのシリアル・ビットに多重送信されてもよい。初期化及びトレーニングの間、ホスト及びメモリ・コントローラは、入力シリアルデータストリームのデータのアイドル状態のフレームをデータのローカル・フレームと取り替えることを確保する。バッファは、交換されている入力シリアルデータストリームの入力フレームがデータがアイドル状態のフレームであるか否かをチェックする必要がない。
【０１０１】
ブロック１０１２で、マージされたデータを備える出力シリアルデータストリームは、チェインの上で次のメモリモジュールへのシリアル・データ出力上へ、又は、代わりにメモリコントローラに送信される。
【０１０２】
次に、制御プロセスは、シリアル・データ入力から入力シリアルデータストリームを受信することを続けるために、ブロック１００６へジャンプする。
【０１０３】
上記したように、コア・ロジック、及び、バッファ４５０からのローカルデータは、一度に６ビットのチャンク、又は、１２ビットのチャンクの出力であってもよい。モード制御信号（６ｂｉｔ＿ｍｏｄｅ）７２２は、データ・マージ・ロジック・スライス７００ｉが、６ビット・モード（ハーフ・フレーム・モード）、又は、１２ビット・モード（全フレーム・モード）において動作するかを決定する。モード制御信号（６ｂｉｔ＿ｍｏｄｅ）７２２は、マルチプレクサ７０２Ａ、及び、ＡＮＤゲート７１１の第１の入力、及び、インバータ７１２への入力の選択入力又は制御入力に結合される。
【０１０４】
初期の負荷パルス信号７２０は、パラレルデータバス６６０ｉ上の最初の６ビットのローディングを制御する。遅れた負荷パルス信号７２１は、パラレルデータバス６６０ｉ上の第２の６ビットのローディングを制御する。遅れたロード・パルス７２１は、ＯＲゲート７１０の第１の入力に結合される。初期のロード・パルス制御信号７２０は、マルチプレクサ７０２Ｂの第１の入力、ＯＲゲート７１０の第２の入力、マルチプレクサ信号７０２Ａの第１の入力、６−２ＰＩＳＯシフトレジスタ７０８Ａのｌｏａｄ／ｓｈｉｆｔ−バー入力、及び、マルチプレクサの７０２Ｃ選択入力に結合される。
【０１０５】
クロック信号Ｃｌｏｃｋ＿２ＵＩ７２３は、Ｄ  ｆｌｉｐ−ＦＬＯＰＳ７０６Ａ−７０６Ｂのクロック入力、及び、６−２ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂのクロック入力に結合する。マルチプレクサ７０２Ａの出力は、６−２ＰＩＳＯシフトレジスタ７０８Ｂ．のｌｏａｄ／ｓｈｉｆｔ−バー入力に結合する。
【０１０６】
６−２ＰＩＳＯシフトレジスタ７０８Ａのパラレル入力は、６ビット遅延されたデータバス７２７に結合する。６−２ＰＩＳＯシフトレジスタ７０８Ａの２ビット・シリアル出力は、６−２ＰＩＳＯシフトレジスタ７０８Ｂの２ビット・シリアル入力に結合する。６−２ＰＩＳＯシフトレジスタ７０８Ｂのパラレル入力は、マルチプレクサ７０３からの６ビット出力に結合する。このようにデータ・マージ・ロジカル・スライス７００ｉが１２ビット・モードであるときに、１２ビットのデータは、６−２ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂにロードされることができ、それから、マルチプレクサ７０４により２ビットシリアル出力７０８Ｂからシリアルにシフト出力され、トランスミッタ７５２ｉに結合される。
【０１０７】
シリアル・トランスミッタ７５２ｉは、２パラレルビットを、その出力６０１ｉ、６０４ｉで、シリアル１ビットにセットするために、クロック信号によってダブルクロックされる。
【０１０８】
データマージロジカル・スライス７００ｉは、６ｂｉｔ＿ｍｏｄｅ制御信号７２２が論理上のローであるときに、１２ビット・モードである。データ・マージｌｏｇｉｃａｌ／７００ｉは、６ビットモード制御信号７２２が論理上のハイであるときに、６ビット・モードである。マルチプレクサ７０２Ｂ、及び、Ｄフリップフロップ７０６Ａとの制御ロジック７１０−７１２は、６ビット・モード制御信号７２２に応じて１２ビット・モード又は６ビット・モードを決めるために、マルチプレクサ７０３の選択入力に結合されたデータバス選択（Ｄａｔａ＿Ｓｅｌ）信号７２９を生成する。データバス選択信号７２９が論理的にローであるときに、データの１２ビットは、６−２ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂとパラレルにロードされる。データバス選択信号７２９が論理上のハイであるときに、データバス７２７の６ビットは、６−２ＰＩＳＯシフトレジスタ７０８Ｂに結合される。
【０１０９】
６ビット・モードにおいて、初期のロード・パルス信号７２０、又は、遅れたロード・パルス７２１のどちらも、６−２ＰＩＳＯシフトレジスタ７０８Ｂにパラレルデータをロードすることができる。６ビットモードも、又は、１２ビットのモードのいずれにおいても、初期のロード・パルス７２０は、データバス７２７から６−２ＰＩＳＯシフトレジスタ７０８Ａに、パラレルデータをロードするためだけに使用される。
【０１１０】
６−２ＰＩＳＯシフトレジスタ７０８Ａのシリアル入力は、送信されたデータの後にゼロだけがシリアルにシフトされるように、グランドに結合される。代わりに６−２ＰＩＳＯシフトレジスタ７０８Ａのシリアル入力は、送信されたデータの後に論理上のものだけがシリアルにシフトされるように、ＶＤＤに結合される。
【０１１１】
Ｄフリップフロップ７０６ＡのＱ出力は、ＡＮＤゲート７１１の出力が論理上のローであるときに、マルチプレクサ７０２Ｂの第２の入力に結合され、Ｑ出力は、ロードされた論理状態をデータバス選択（ＤＡＴＡ＿ＳＥＬ）信号７２９のその中で保持するために、Ｄフリップフロップ７０６ＡのＤ入力に結合される。
【０１１２】
ここで、図８を参照する。１２ビットのモードにおいて動作しているデータ・マージ・ロジック・スライス７００ｉを表す波形のタイミング図が示されている。すなわち、６ビットのモード制御信号７２２は、図８のタイミング図における論理上のローである。
【０１１３】
図８において、Ｃｌｏｃｋ＿２ＵＩ信号７２３は、波形８２３で示される。コア・クロック信号６１１は、波形８１１で示される。パラレル・データバス６９０上のデータ（ＭＥＭ＿ＤＡＴＡ入力［５：０］）６９０Ａのより下位の６ビットは、波形８９０Ａで示される。パラレル・データバス６９０上のデータ（ＭＥＭ＿ＤＡＴＡ入力［１１：６］）６９０Ｂの上位の６ビットは、波形図８９０Ｂで示される。パラレル・データバス６６０ｉ上のデータ（ＦＢＤ＿ＤＡＴＡ［５：０］）７２６の下位の６ビットは、波形図８２６で示される。パラレル・データバス６６０ｉ上のデータ（ＦＢＤ＿ＤＡＴＡ［１１：６］）７２７の上位の６ビットは、波形図８２７で示される。マージイネーブル制御信号７２４は、波形図８２４で示される。初期のロード・パルス制御信号７２０は、波形８２０で示される。遅れたロード・パルス制御信号７２１は、波形８２１で示される。ローカルデータ選択制御信号（ＰＩＳＯ＿ＳＥＬ）７３２は、波形８３２で図示される。シングルビットシリアル出力データストリームＮＢＤＯｉ６０１ｉは、波形８０１で示される。
【０１１４】
ノースバウンド・シリアルデータストリームにマージするいかなるローカル・データなしでも、バッファ４５０は、ノースバウンド・データ入力６０２に受信されたビット（「フィードスルーデータ」７２５）を、バッファ４５０のコア・ロジックを迂回することで、高速クロック領域のトランスミッタ７５２ｉに通過させる。ローカルデータ選択制御信号（ＰＩＳＯ＿ＳＥＬ）７３２は、波形８３２で図示されたように、フィードスルー・データ７２５がトランスミッタ７５２ｉに多重化されるときは、ローである。
【０１１５】
上記したように、「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」７２０は、フレーム（リンクに参照されるように）の始まりと一致するようにセットされ、ｌａｔｅ＿ｌｄ＿ｐｕｌｓｅ７２１は、シリアル・データリンクのレーンの最初のトレーニングの間に、ハーフ・フレーム境界にあるようにセットされる。本発明の一実施形態において、データのフレームは、全フレーム動作モードの場合、リンク上のデータの論理ユニットであり、１２ビットのデータで作られる。
【０１１６】
全フレーム動作モードにおいて、フレームの１２のビットは、「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」信号７２０を使用しているＰＩＳＯシフトレジスタにロードされる。「ｌａｔｅ＿ｌｄ＿ｐｕｌｓｅ」信号７２１は、ＰＩＳＯシフトレジスタにビットをロードするために使用されない。上下のＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂの両方は、このモードにおいて使用される。６ｂｉｔ＿ｍｏｄｅ制御信号７２２は、１２ビット・モードにおいてローであり、Ｄフリップフロップ７０６Ａの出力をクリアすることによって１２ビットのモードにおいてローになるために、Ｄａｔａ＿Ｓｅｌ信号７２９を生じさせる。１２のビット・モードにおいて「Ｄａｔａ＿Ｓｅｌ」信号７２９がローであることで、６つのより下位のデータ・ビット（バス６６０ｉのＦＢＤ＿ＤＡＴＡ［５：０］７２６）が、マルチプレクサ７０３により、より下位のＰＩＳＯシフトレジスタ７０８Ｂに結合される。
【０１１７】
Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ７２０の周期的な生成は、また、Ｄフリップフロップ７０６Ｂによって「Ｍｅｒｇｅ＿ｅｎａｂｌｅ」信号７２４のサンプリングを可能にする。Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ７２０の周期的な生成は、アクティブ、ハイであり、Ｄフリップフロップ７０６Ｂのデータ入力Ｄに結合されたデータの出力としてのｍｅｒｇｅ＿ｅｎａｂｌｅ信号７２４を選択するために、選択的にマルチプレクサ７０２Ｃを制御する。
【０１１８】
上記したように、マージイネーブル信号７２４は、与えられたメモリモジュールからローカル・データをノースバウンド・シリアル・データのレーンに挿入して、シリアルデータストリームのデータのパケット又はアイドル状態のフレームを交換するために、適切な時期に発生される。波形８２４は、ローカル・データが、データバス６６０ｉより上のビット（ＦＢＤＪＤ  ＡＴＡ［１１：６］）７２７、及び、それより下のビット（ＦＢＤ＿ＤＡＴＡ［５：０］）７２６上で有効になる場合に、発生されたアクティブ・ハイ・パルス８４４を示す。
【０１１９】
マージイネーブル信号７２４の波形８２４にアクティブ・ハイ・パルス８４４が発生する時に、ｅａｒｌｙ＿ｌｄ＿ｐｕｌｓｅ信号７２０のパルス８４０Ａ−８４０Ｂは、マージイネーブル信号７２４のアクティブ・ハイ・パルス８４４がｃｌｏｃｋ＿２ＵＩ信号７２３を使用しているＤフリップフロップ７０６Ｂによりサンプルをとることを認める。これは、ローカル・データ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２の波形８３２にアクティブ・ハイ・パルス８４２を発生させる。ローカル・データ選択信号（ＰＩＳＯ＿ＳＥＬ）７３２のアクティブ・ハイ・パルス８４２は、その出力で２ビットの「フィードスルーデータ」７２５を与えることから、その代わりに、その出力で２ビットのシリアル化ローカル・データ７３５を与えるように、マルチプレクサ７０４を切り替えさせる。ローカルデータ７３５に対するフィードスルー・データ７２５からの切替は、アクティブ・ハイ・パルス８４２が最初に発生するときに、フレーム境界で起こる。これは、ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂにシフトさせ始める「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」７２０の立下りエッジは、フレーム開始位置と一致するという理由からである。
【０１２０】
「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」７２０を備えるマージング・データと、マルチプレクサ出力７３１の両方ともがローであるとき、ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂは、ローカルデータの１２  ビットを、「Ｃｌｏｃｋ＿２ｕｉ」クロック信号７２３を使用して、シリアル出力７３５上に、一度に２ビットを、シリアルにシフト出力する。トランスミッタ７２５ｉは、上記の波形８０１に示されたローカルデータで示されるように、ＮＢＤＯｉ出力６０１ｉ上の２ビットをシングル・ビットシリアル・データストリームに更にシリアル化する。
【０１２１】
ここで図９を参照する。６ビット・モードにおいて動作するデータ・マージ・ロジック・スライス７００ｉを表している波形のタイミング図が示されている。すなわち、６ビット・モード制御信号（６ＢＩＴＪＶＩＯＤＥ）７２２は、図９のタイミング図の波形９２２で示すように論理上のハイである。
【０１２２】
図９において、Ｃｌｏｃｋ＿２ＵＩ信号７２３は、波形９２３で図示される。コア・クロック信号（ｃｏｒｅ＿ｃｌｋ）６１１は、波形９０１で図示される。メモリーデータバス６９０上のより下位の６つのパラレルデータビット（ＭＥＭ＿ＤＡＴＡ入力［５：０］）６９０Ａは、波形９９０Ａで示される。メモリデータバス６９０の上位の６つのパラレル・データビット（ＭＥＭ−データ入力［１１：６］）６９０Ｂは、波形９９０Ｂで示される。パラレルデータバス６６０ｉ上のデータ（ＦＢＤ＿ＤＡＴＡ［５：０］）７２６のより下位の６ビットは、波形図９２６で示される。パラレルデータバス６６０ｉ上のデータ（ＦＢＤ＿ＤＡＴＡ［１１：６］）７２７のより上位の６ビットは、波形図９２７で示される。マージ・イネーブル制御信号７２４は、波形図９２４によって示され、図８の波形８２４のそれより早く発生する。初期のロード・パルス制御信号（ＥＡＲＬＹ＿ＬＤ＿ＰＵＬＳＥ）７２０は、波形９２０で示される。遅れるロード・パルス制御信号（ＬＡＴＥ＿ＬＤ＿ＰＵＬＳＥ）７２１は、波形９２１で示される。データバス選択制御信号（ＤＡＴＡ＿ＳＥＬ）７２９は、波形９２９で示される。ローカルなデータ選択制御信号（ＰＩＳＯ＿ＳＥＬ）７３２は、波形９３２で示される。シングルビットシリアル出力データストリームＮＢＤＯｉ６０１ｉは、波形９０１で示される。
【０１２３】
６ビット・モードにおいて、より下位のＰＩＳＯシフトレジスタ７０８Ｂは、データのパラレルビットをシフトさせたビット出力によりシリアルデータに変換するために使用される。データバス選択信号（ＤＡＴＡ＿ＳＥＬ）７２９は、フレームの最下位６ビット、ＦＢＤ＿Ｄａｔａ［５：０］７２６、又は、フレームの最上位６ビット、ＦＢＤ＿Ｄａｔａ［１１：６］７２７、を切り換え、バス・マルチプレクサ７０３の選択された出力により、より下位のＰＩＳＯシフトレジスタ７０８Ｂにロードされる。
【０１２４】
「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」７２０、及び、「Ｌａｔｅ＿Ｌｄ＿Ｐｕｌｓｅ」７２１の双方は、６ＢＩＴ＿ＭＯＤＥ信号７２２がアクティブハイである時にマルチプレクサ７０２Ａにより、ＯＲゲート７１０の出力がより下位のＰＩＳＯシフトレジスタ７０８Ｂのロード／シフトバー入力に結合されたので、より下位のＰＩＳＯシフトレジスタ７０８Ｂにロード・データ又はシフト・データのどちらも出力させることができる。
【０１２５】
「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」７２０、及び、「Ｌａｔｅ＿Ｌｄ＿Ｐｕｌｓｅ」７２１がローのときに、ビットはより下位のＰＩＳＯシフトレジスタ７０８Ｂからシフト出力される。また、ビットのパラレルロードがより下位のＰＩＳＯシフトレジスタ７０８Ｂに入力する間の、ロード／シフトバー制御入力がハイであるときに、予めロードされたビットは、シフトされて出力され続ける。ロード／シフトバー制御入力が、データビットのパラレルロードの後に、ローに復帰するときに、新しくロードされたビットは、その時、より下位のＰＩＳＯシフトレジスタ７０８Ｂによりシフト出力される。このように、データの全６ビットは、パラレルビットの新規のセットがロードされている時に、シフト出力されてもよい。
【０１２６】
フレームの最下位の６ビット、ＦＢＤ＿Ｄａｔａ［５：０］７２６は、データバス選択信号（ＤＡＴＡ＿ＳＥＬ）７２９が、例えば、ローの点９４９Ｃ、９４９Ｄのようなローであるとき、「Ｅａｒｌｙ＿Ｌｄ＿Ｐｕｌｓｅ」７２０の入力波形９２０のパルス９４０Ａ、及び、９４０Ｂによりより下位のＰＩＳＯシフトレジスタ７０８Ｂにロードされる。フレームの最上位の６ビット、ＦＢＤ＿Ｄａｔａ［１１：６］７２７は、データバス選択信号（ＤＡＴＡ＿ＳＥＬ）７２９が、例えば、パルス９４９Ａ、９４９Ｂの間のようなハイであるとき、「Ｌａｔｅ＿Ｌｄ＿Ｐｕｌｓｅ」７２１の入力波形９２１のパルス９４１Ａ、及び、９４１Ｂによりより下位のＰＩＳＯシフトレジスタ７０８Ｂにロードされる。
【０１２７】
６ビット・モードにおいて、シリアル化された「フィードスルーデータ」７２５とシリアル化されたローカルデータ７３５との間の切替は、前述した１２ビットモードの動作に類似しており、簡潔にする理由からここでは繰り返さない。
【０１２８】
データをマージするとき、ＰＩＳＯシフトレジスタ７０８Ｂは、シリアルにシフト出力しているローカルデータの最上位６ビット、又は、最下位６ビット出力を、Ｃｌｏｃｋ＿２ＵＩクロック信号７２３を使用して、一度に２ビットをシリアル出力７３５の上へ変換する。トランスミッタ７２５ｉは、上記の波形９０１に示されたローカルデータにより図示されるように、ＮＢＤＯｉ出力６０１ｉ上の２ビットをシングル・ビットシリアル・データストリームに更にシリアル化する。
【０１２９】
６ビット・モードの間、全フレームのデータは、さらに送信され、本発明の各実施形態は、シリアル・データストリームにマージされたことデ、更にローカルデータのレーテンシを減らす。図８、及び、９を共に比較する場合、ローカルデータのマージングは、図９よりも１フレーム期間早くなる。
【０１３０】
本発明の各実施形態は、アイドル状態のパケットの場所を決定するために、シリアル入力データストリームのデコード入力パケットを有さずに、フィードスルー・データ、及び、ローカルデータを共にして高速のシリアル・データリンクにマージングすることを可能にする。予め、入力シリアルデータストリームは、受信され、デパケッタイズ／デコードされ、及び、再送信された前コア・ロジックによってフレームにリアセンブルされる。本発明の各実施形態は、入力シリアルデータストリームがデパケッタイズ／デコードされ、データのフレームにそれがリアセンブリされることを避け、そして、再送信のためのエンコーディング／パケット化を防ぐ。本発明の各実施形態は、入力シリアルデータストリームの再送信と、バッファ集積回路のコア・ロジックを有さないでの、シリアル・データストリームへのローカルデータのマージングを可能にする。マルチ・メモリーモジュール・システムにおいて、シリアル通信チャネルは、メモリーが回路を集積化してデイジーチェーン方式でつながれたメモリーモジュールの一つの入力が機能しない場合であっても、動作し続けることができる。
【０１３１】
本発明の各実施形態は、低いレーテンシのメモリアクセス・オペレーションを提供するように設計されている。これは、チャンネルのメモリーモジュールの数が増加するにつれて、システム性能を低下させるメモリアクセス・レーテンシなしで、各バンクにより多くのメモリーモジュールを有するより大きいメモリを与えることができる。
【０１３２】
一例としての実施形態が、記述され、そして添付の図面に示されているが、そのような実施形態は、単に図示するだけであり、広義の発明を制限するものではなく、この発明を、図示され記述された特定の構造及びそのアレンジに限定するものではない。なぜなら当業者によれば多様な他の変形例を形成できることが理解できるからである。例えば、本発明の一実施形態は、フルバッファー付きのデュアル・インライン・メモリモジュールのためのシリアル・データリンクを提供するために述べられている。しかし、本発明の各実施形態は、他のタイプのメモリモジュール、及び、システムにおいてインプリメントされてもよい。他の実施形態として、データは、ＰＩＳＯシフトレジスタ７０８Ａ−７０８Ｂの周囲の２ビット・バス上で、本発明の一実施形態における和やかなデータ・タイミングを提供するために、マージ・ロジックにより、一度に２ビットがシリアル化される。しかし、本発明の各実施形態は、ローカルデータをフィードスルー・データとシングル・ビットシリアル・データストリームにシリアル化した、異なるクロック・タイミングのシングルビット出力ＰＩＳＯが使用され、マルチプレクサ７０４、７０５が、シングル・ビットシリアル・データストリームをサポートするために提供されてもよい。
【図面の簡単な説明】
【０１３３】
【図１Ａ】本発明の各実施形態が用いられてもよい代表的なコンピュータシステムのブロック図を示す。
【０１３４】
【図１Ｂ】本発明の各実施形態が用いられてもよいクライアント−サーバーシステムのブロック図を示す。
【０１３５】
【図２Ｂ】本発明の各実施形態が用いられてもよい他の中央処理装置のブロック図を示す。
【０１３６】
【図３】バッファー付きメモリモジュールのバンクに入力及び出力するデータを結合させるバッファー付きメモリコントローラの簡略ブロック図を示す。
【０１３７】
【図４】データをフィードスルー・データとマージしてもよいバッファを備えているバッファー付きメモリモジュールのブロック図を示す。
【０１３８】
【図５】バッファー付きメモリモジュールのバンクに結合されたバッファー付きメモリコントローラの詳細なブロック図を示す。
【０１３９】
【図６−１】バッファー付きメモリモジュールのバッファの機能ブロック図を示す。
【図６−２】バッファー付きメモリモジュールのバッファの機能ブロック図を示す。
【０１４０】
【図７Ａ】トランスミッタに結合するデータ・マージ・ロジックスライスのレーンを含むデータ・マージ・ロジックの簡略ブロック図を示す。
【０１４１】
【図７Ｂ】シリアルデータの一つのレーンのためのデータ・マージ・ロジック・スライスの回路図を示す。
【０１４２】
【図８】１２ビット・モードで動作しているデータ・マージ・ロジック・スライスのための信号のタイミング図を示す。
【０１４３】
【図９】６ビット・モードで動作しているデータ・マージ・ロジック・スライスのための信号のタイミング図を示す。
【０１４４】
【図１０】ローカルデータ及びフィードスルー・データを共にマージしてシリアルデータストリーム出力にする場合の、バッファの初期化、トレーニング、及び、動作することのフローチャートを示す。
【図１Ａ】
2008529175.tif 000003
【図１Ｂ】
2008529175.tif 000004
【図２Ａ】
2008529175.tif 000005
【図２Ｂ】
2008529175.tif 000006
【図３】
2008529175.tif 000007
【図４】
2008529175.tif 000008
【図５】
2008529175.tif 000009
【図６−１】
2008529175.tif 000010
【図６−２】
2008529175.tif 000011
【図７Ａ】
2008529175.tif 000012
【図７Ｂ】
2008529175.tif 000013
【図８】
2008529175.tif 000014
【図９】
2008529175.tif 000015
【図１０】
2008529175.tif 000016
【国際調査報告】
2008529175.tif 000017
2008529175.tif 000018