(57)【特許請求の範囲】
【請求項１】
高速シリアル通信を有するフラッシュ・ベースのメモリ・システムであって：
複数の入出力モジュールであり、それぞれの入出力モジュールは１つ以上の外部通信リンクを通じて、外部デバイスと通信するように構成されている複数の入出力モジュール；
複数のフラッシュ・ベースのメモリ・カードであって、それぞれのフラッシュ・ベースのメモリ・カードは複数のフラッシュ・メモリ素子を含み、それぞれのフラッシュ・メモリ素子は、ブロックに分割された物理メモリ・スペースを有し、それぞれのブロックは更にページに分割されており、それぞれのページは、その上でメモリ操作が遂行される、個別にアドレス可能なメモリロケーションを表し、多数のそのようなメモリロケーションは、１ブロックのグルーピング内で、同時に消去可能である、それぞれの複数のフラッシュ・ベースのメモリ・カード；並びに
複数のクロスバー・スイッチング素子であって、それぞれのクロスバー・スイッチング素子は、フラッシュ・ベースのメモリ・カードのそれぞれの１つと接続され、及び前記入出力モジュールのそれぞれの１つが、フラッシュ・ベースのメモリ・カードのそれぞれの１つと通信することが可能なように構成されている、複数のクロスバー・スイッチング素子とを含み、
それぞれの入出力モジュールは、それぞれのクロスバー・スイッチング素子と、高速シリアル通信リンクにより接続され、それぞれの高速シリアル通信リンクは、それぞれの入出力モジュールが、それぞれのクロスバー・スイッチング素子への、及びクロスバー・スイッチング素子からのコマンド、命令、及び／又はデータを表すビットを送受信することを可能にし、並びにそれぞれのクロスバー・スイッチング素子は、フラッシュ・ベースのメモリ・カードのそれぞれの１つに、複数の並列通信リンクにより接続され、それぞれの並列通信リンクは、１つのクロスバー・スイッチング素子を、フラッシュ・ベースのメモリ・カードのそれぞれの１つのフラッシュ・メモリ素子の１つと接続している、フラッシュ・ベースのメモリ・システム。
【請求項２】
入出力モジュールから送信されるコマンド、命令、及び／又はデータを表す前記ビットが、読み出し−修正−書き込みを含むＤＭＡ要求を含む直接メモリ・アクセス（ＤＭＡ）要求の一部である、請求項１に記載のフラッシュ・ベースのメモリ・システム。
【請求項３】
前記入出力モジュールが、以下のプロトコル：ファイバー・チャンネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）、インフィニバンド（ＩｎｆｉｎｉＢａｎｄ）、イーサーネット（Ｅｔｈｅｒｎｅｔ）、及び前面パネル・データ・ポート（Ｆｒｏｎｔ  Ｐａｎｅｌ  Ｄａｔａ  Ｐｏｒｔ）のうちの１つを含む高速通信プロトコルを用いる１つ以上の外部通信リンクを通じて、外部デバイスと通信するために構成されている請求項１に記載のフラッシュ・ベースのメモリ・システム。
【請求項４】
それぞれの前記入出力モジュールが、高速通信プロトコルを用いる１つ以上の外部通信リンクを通じて、前記入出力モジュールが外部デバイスと通信可能とするために構成された高速インターフェースを含む、請求項３に記載のフラッシュ・ベースのメモリ・システム。
【請求項５】
それぞれの前記入出力モジュールが、更に複数のマルチ・ギガビット・トランシーバーを有する高速制御装置を含み、１つの前記マルチ・ギガビット・トランシーバーは前記入出力モジュールに接続されたそれぞれの高速シリアル通信リンクのためであり、それぞれの前記入出力モジュールは、前記マルチ・ギガビット・トランシーバーを用いて、それぞれの前記クロスバー・スイッチング素子との間のコマンド、命令及び／又はデータを表すビットを送受信するために構成される、請求項４に記載のフラッシュ・ベースのメモリ・システム。
【請求項６】
それぞれの前記入出力モジュールが、更にＣＰＵ及び共有スイッチング素子を含み、この共有スイッチング素子は、ＣＰＵ、１つ以上の外部通信リンクを介する外部デバイス、及び前記マルチ・ギガビット・トランシーバーの間の通信を規制するために構成されている、請求項５に記載のフラッシュ・ベースのメモリ・システム。
【請求項７】
それぞれの前記クロスバー・スイッチング素子が、複数のマルチ・ギガビット・トランシーバーを有する高速制御装置を含み、それぞれの高速シリアル通信リンクのための１つの前記マルチ・ギガビット・トランシーバーは前記クロスバー・スイッチング素子に接続され、それぞれの前記クロスバー・スイッチング素子は、前記マルチ・ギガビット・トランシーバーを用いて、それぞれの前記入出力モジュールとの間のコマンド、命令及び／又はデータを表すビットを送受信するために構成される、請求項１に記載のフラッシュ・ベースのメモリ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１０年９月２４日に出願された、“Ｈｉｇｈ−Ｓｐｅｅｄ  Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍ”と題された米国特許仮出願第６１／３８６，２３７号による優先権を主張し、同仮出願は、引用によりその全体が本願に組み込まれる。
【０００２】
本開示は一般的に、外部ホスト装置及び／又は外部通信装置によりアクセスされる記憶システムに関する。
【背景技術】
【０００３】
記憶システムは、しばしば、入来するデータ及びデータ要求を受け取り、並びにそれらの要求をデータの記憶又は取り出しのために処理するために、さまざまな方法及びデバイスを用いる。しばしば、そのような記憶システムは、限られた数の入出力ポートしか持たないため、及び／又は、そのシステム内に存在するボトルネックのために、その帯域幅が限定される。そのようなボトルネックは、比較的遅いデータバスの使用と同様に、複雑なスイッチング又は伝送構造、及び／又は伝送プロトコルの使用により生じ得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
より効果的な、効率的な、及び最適なメモリ・システムが要求される。
【課題を解決するための手段】
【０００５】
開示される実施態様は、より効果的な、効率的な、及び最適な高速メモリ・システムを提供するための方法及び装置に関する。一態様においては、本願で開示される実施態様は、一般に、高速度のシリアル通信を有する、フラッシュ・ベースのメモリ・モジュールに関する。このフラッシュ・ベースのメモリ・モジュールは、複数の入出力（Ｉ／Ｏ）モジュールであって、それぞれの入出力モジュールは１つ以上の外部通信リンクを通じて、外部デバイスと通信するように構成されている、複数の入出力モジュールを含み、複数のフラッシュ・ベースのメモリ・カードであって、それぞれのフラッシュ・ベースのメモリ・カードは複数のフラッシュ・メモリ素子を含み、それぞれのフラッシュ・メモリ素子は、ブロックに分割された物理メモリ・スペースを有し、それぞれのブロックは更にページに分割されており、それぞれのページは、その上でメモリ操作が遂行される、個別にアドレス可能なメモリロケーションを表し、多数のそのようなメモリロケーションは、１ブロックのグルーピング内で、同時に消去可能である、それぞれの複数のフラッシュ・ベースのメモリ・カードを含み、並びに複数のクロスバー・スイッチング素子であって、それぞれのクロスバー・スイッチング素子は、フラッシュ・ベースのメモリ・カードのそれぞれの１つと接続され、及び前記入出力モジュールのそれぞれの１つが、フラッシュ・ベースのメモリ・カードのそれぞれの１つと通信することが可能なように構成されている、複数のクロスバー・スイッチング素子とを、特に含む。それぞれの入出力モジュールは、それぞれのクロスバー・スイッチング素子と、高速シリアル通信リンクにより接続され、それぞれの高速シリアル通信リンクは、それぞれの入出力モジュールが、それぞれのクロスバー・スイッチング素子への、及びクロスバー・スイッチング素子からのコマンド、命令、及び／又はデータを表すビットを送受信することを可能にし、並びにそれぞれのクロスバー・スイッチング素子は、フラッシュ・ベースのメモリ・カードのそれぞれの１つに、複数の並列通信リンクにより接続され、それぞれの並列通信リンクは、１つのクロスバー・スイッチング素子を、フラッシュ・ベースのメモリ・カードのそれぞれの１つのフラッシュ・メモリ素子と接続している。
【０００６】
一般に、別の態様では、開示される実施態様は、拡張可能な高速メモリに関する。この拡張可能な高速メモリは、印刷回路板（ＰＣＢ）、ＰＣＢ上に取り付けられ、及び高速メモリ・カードが、１つ以上の高速シリアル通信リンクを通じた１つ以上の外部デバイスからのコマンド、命令、及び／又はデータをあらわすビットを受信可能になるように構成されたインターフェース回路を含み、ＰＣＢ上に取り付けられた複数のメモリ素子であって、それぞれのメモリ素子はその上でメモリ操作が遂行される物理的メモリ空間を有する複数のメモリ素子を含み、並びにＰＣＢ上に取り付けられた制御装置であって、インターフェース回路及び複数のメモリ素子に接続され、前記制御装置は、メモリ操作を遂行するためにインターフェース回路及びそれぞれのメモリ素子の間の通信を制御するように構成されている、制御装置とを、特に含む。前記インターフェース回路は前記制御装置に、複数の高速シリアル通信回線により接続され、それぞれの高速シリアル通信回線は、高速シリアル通信リンクの１つに対応し、及び前記制御装置は、前記複数のメモリ素子に、所定の数の並列通信回線により接続されており、前記制御装置は、高速シリアル通信リンクからのコマンド、命令及び／又はデータを表すビットを、シリアル・フォーマットから、並列フォーマットに変換するように構成されている。
【０００７】
一般に、更に別の態様では、開示される実施態様は、高速シリアル通信を有するメモリ・モジュールに関する。前記メモリ・モジュールは、第一の複数の入力処理ブロック及び第二の複数の入力処理ブロックを含み、それぞれの入力処理ブロックは、シリアル・フォーマットに従ったコマンド、命令及び／又はデータを表すビットを受け取り、及びそのコマンド、命令及び／又はデータを表すビットを、並列フォーマットに従うように再配列するために構成されており、複数のメモリ素子であって、それぞれのメモリ素子は、その上でメモリ操作が遂行される物理的メモリ空間を有する複数のメモリ素子を含み、及び第一及び第二の複数の入力処理ブロックと前記メモリ素子を接続する制御装置であって、及び前記制御装置はメモリ操作を遂行するために、第一及び第二の複数の入力処理ブロック及びそれぞれのメモリ素子の間の通信を制御するために構成されている、制御装置を特に含む。
前記制御装置は：
（ａ）第一及び第二の複数の入力処理ブロックにそれぞれ接続された第一の多重チャンネル・バッファー及び第二の多重チャンネル・バッファーであって、それぞれの多重チャンネル・バッファーは、並列フォーマットのコマンド、命令及び／又はデータを表すビットを前記第一及び第二の複数の入力処理ブロックからそれぞれ受け取り、及びコマンド、命令及び／又はデータを表すビットから所定の数のワードを構築するために構成されており、それぞれのワードは所定の数のビットから成っている、第一の多重チャンネル・バッファー及び第二の多重チャンネル・バッファーを含み、
（ｂ）第一のエラー修正及びデータ保護回路、及び第二のエラー修正及びデータ保護回路であって、前記第一及び第二の多重チャンネル・バッファーにそれぞれ接続され、前記第一及び第二のエラー修正及びデータ保護回路は、前記第一及び第二の多重チャンネル・バッファーからのワードを、それぞれ受け取り、前記ワードを用いる１つ以上のエラー修正コードのビットを生成させ、それぞれのワードのための前記エラー修正コードのビットを前記ワードに加え、及びそれぞれのワードを、そのワードに加えられたエラー修正コードのビットとともに出力するために構成されている、第一のエラー修正及びデータ保護回路、及び第二のエラー修正及びデータ保護回路を含み；
（ｃ）第一及び第二の修正及びデータ保護回路にそれぞれ接続された、第一の出力バッファー及び第二の出力バッファーであって、前記第一及び第二の出力バッファーは、第一及び第二のエラー修正及びデータ保護回路の１つからの第一のワードが、第一及び第二の出力バッファーの１つに提供され、及び第一及び第二のエラー修正及びデータ保護回路の別の１つからの次のワードが、第一及び第二の出力バッファーの別の１つに提供されることができるように、順々に第一及び第二のエラー修正及びデータ保護回路からの、前記エラー修正コードビットが加えられたワードを受け取るために構成されている、第一の出力バッファー及び第二の出力バッファーを含み、並びに
（ｄ）メモリ・バッファーであって、前記エラー修正コードのビットが加えられたワードを、前記第一及び第二の出力バッファーから受け取り、及び前記所定の数のワードを所定の方式によって、スーパーワードを形成するために組み合わせるために構成されている、メモリ・バッファーとを特に含む。
【図面の簡単な説明】
【０００８】
【図１】本開示の特定の教示に従って構築された高速記憶システムを図示している。
【図１Ａ】本開示の高速記憶システムにおいて行われ得るＤＭＡ読み出し（ＲＥＡＤ）−修正（ＭＯＤＩＦＹ）−書き込み（ＷＲＩＴＥ）操作の例を図示している。
【図１Ｂ】本開示の高速記憶システムにおいて行われ得るＤＭＡ読み出し−修正−書き込み操作の例を図示している。
【図１Ｃ】本開示の高速記憶システムにおいて行われ得るＤＭＡ読み出し−修正−書き込み操作の例を図示している。
【図２】本開示の高速記憶システムにおいて用い得る入出力モジュールの例示的な実施態様を図示している。
【図３】本開示の高速記憶システムにおいて用い得る入出力モジュールの代替の例示的な実施態様を図示している。
【図４】図１に関連して上述された種類のクロスバー・モジュールを実行するための例示的なアプローチの１つを図示している。
【図５】本開示のシステムにおいて用い得るメモリ・カードの例示的な実施態様の１つを図示している。
【図６】本開示の高速記憶システムにおいて用い得るメモリ・カードの代替的な実施態様の１つを図示している。
【図７】入出力モジュールが、クロスバー・モジュールなしで、直接メモリ・ボードと通信する代替的な高速記憶システムを図示している。
【図８】図７の高速記憶システムにおいて用い得る高速メモリ・ボードの例示的な実施態様を図示している。
【図９】例示的な高速メモリボードの一部分の一般的な詳細を図示している。
【図１０Ａ】高速メモリ・ボードのシリアライザ／デシリアライザ及びパッキング・モジュールの例示的な実施態様を図示している。
【図１０Ｂ】高速メモリ・ボードのための先入れ先出し（ＦＩＦＯ）記憶バッファーの例示的な実施態様を図示している。
【図１０Ｃ】高速メモリ・ボードのためのＦＩＦＯ記憶バッファーの例示的な実施態様を図示している。
【図１０Ｄ】高速メモリ・ボードのためのＦＩＦＯ記憶バッファーの例示的な実施態様を図示している。
【図１１】高速メモリ・ボードのための多重チャンネルＦＩＦＯバッファーの例示的な実施態様を図示している。
【図１２】エラー修正及びデータ保護回路から高速メモリ・ボードの出力ＦＩＦＯバッファーへのデータ移動の例示的なプロセスを図示している。
【図１２Ａ】エラー修正及びデータ保護回路から高速メモリ・ボードの出力ＦＩＦＯバッファーへのデータ移動の例示的なプロセスを図示している。
【図１３Ａ】多重の個別高速シリアル通信リンクを通じたデータ移動の例示的なプロセスを図示している。
【図１３Ｂ】多重の個別高速シリアル通信リンクを通じたデータ移動の例示的なプロセスを図示している。
【図１４Ａ】データが、高速シリアル通信リンクを通じて移動されるときに、異なるＷＲＩＴＥ操作から不適切にデータを「混ぜること」（ｉｎｔｅｒｍｉｎｇｌｉｎｇ）を防止するための例示的なプロセスを図示している。
【図１４Ｂ】データが、高速シリアル通信リンクを通じて移動されるときに、異なるＷＲＩＴＥ操作から不適切にデータを「混ぜること」（ｉｎｔｅｒｍｉｎｇｌｉｎｇ）を防止するための例示的なプロセスを図示している。
【図１４Ｃ】データが、高速シリアル通信リンクを通じて移動されるときに、異なるＷＲＩＴＥ操作から不適切にデータを「混ぜること」（ｉｎｔｅｒｍｉｎｇｌｉｎｇ）を防止するための例示的なプロセスを図示している。
【図１４Ｄ】データが、高速シリアル通信リンクを通じて移動されるときに、異なるＷＲＩＴＥ操作から不適切にデータを「混ぜること」（ｉｎｔｅｒｍｉｎｇｌｉｎｇ）を防止するための例示的なプロセスを図示している。
【図１５】本開示の高速記憶システムの高速シリアル通信リンクを通じて移動されるデータのためのＲＥＡＤ及びＷＲＩＴＥアクセスの間の競合制御のための例示的なプロセスを図示している。
【図１６】例示的な制御装置及び本開示の高速記憶システムにおける制御装置及び物理ＲＡＭメモリの間の接続を図示している。
【図１７】図１７は、本開示の高速記憶システムにおける２つの基本的なメモリ周期を通じた図１６の制御装置の例示的な操作を図示している。
【発明を実施するための形態】
【０００９】
上述の図並びに下記の具体的な構造及び機能の記載は、出願人の発明の範囲、又は添付の請求範囲を限定するために提示されるのではない。むしろ、上述の図及び明細書は、任意の当業者が、特許による保護が求められている発明を作成し、使用することを教示するために提供されている。当業者は、明瞭性及び理解のために、本発明の工業的な実施態様の全ての特徴が記載されるか、又は示されているのではないことを認識するであろう。当技術分野の熟練者は、本発明の態様を組み込んでいる実際の工業的な実施態様の開発が、工業的な実施態様のための開発者の究極の目的を達成するために、莫大な数の、実施に特異的な決断を必要とするであろう事を認識するであろう。実施に特異的な決断としては、おそらく限定はされないが、システム関連、ビジネス関連、政府関連、及び他の制限に対する遵守であって、それらは、具体的な実施、場所により、及び時により変化するであろう。開発者の努力は、絶対的な感覚で、複雑であり、多大な時間を要するものであろうが、そのような努力は、しかしながら、本開示の利益を有する当業者にとっては、日常的な業務であろう。本明細書において開示された発明、及び教示（ｔａｕｇｈｔ）は、莫大な数の、並びにさまざまな修正及び代替形態を許容するものであることを理解されたい。最後に、限定はされないが、“ａ”などの、単数形の使用は、その品目の数を限定することを意図していない。また、限定はされないが、「頂点」、「底部」、「左」、「右」、「上の」、「下の」、「下へ」、「上へ」、「側面」などの関係語の使用は、明細書において、図への特定の参照において明瞭性のために用いられ、及び発明又は添付の請求の範囲を限定することを意図していない。
【００１０】
図、特に図１に移るが、ここには、本開示の特定の教示に従い構築される高速記憶システム１００が図示されている。一般にこの高速記憶システム１００は、ＲＥＡＤ及びＷＲＩＴＥ要求などのデータ関連要求を外部ホスト装置から受け取り、及び物理メモリへの／物理メモリからのデータの記憶及び／又は取り出しのためにそれらの要求を処理する。
【００１１】
例示的な記憶システム１００は、接続可能な高帯域記憶システムを提供するために、複数の入出力モジュール，高速シリアル通信チャンネル、設定変更可能なクロスバー・モジュール、並列メモリ・バス、及び物理メモリ・カードを包含して利用する。システム及びその多くの新規な態様の追加的な詳細は。以下で提供される。
【００１２】
図１を参照するが、上記システム１００は、複数の入出力（Ｉ／Ｏ）インターフェース・モジュール１０２、１０４、１０６、１０８及び１１０を包含する。この例には、５つの入出力モジュールが図示されているが、入出力モジュールの数は致命的に重要ではなく、変更の対象となる。それぞれの入出力モジュールは、１つ以上の外部ホスト装置と、ホスト通信チャンネル（それぞれ、１０２ａ、１０４ａ、１０６ａ、１０８ａ及び１１０ａ）を介して連結される。これらのチャンネル１０２ａ、１０４ａ、１０６ａ、１０８ａ及び１１０ａは、サーバーや他の装置などの、ホストとして稼動可能な外部デバイスが、入出力インターフェース・モジュール１０２、１０４、１０６、１０８及び１１０から、コマンド、命令及びデータを受け取ること、及び／又はそれらへ、コマンド、命令及びデータを提供することを可能にする。
【００１３】
このホスト通信チャンネルは、さまざまな形態をとることができ、及び限定はされないが、ファイバー・チャンネル、インフィニバンド、イーサーネット（登録商標）、及び前面パネル・データ・ポート（ＦＰＤＰ）などのさまざまなプロトコルに従う。この通信リンクの正確な物理及び論理構成はこの開示されたシステムにとり致命的に重要ではないが、開示されたシステムにより提供される利益を最大限に利用するためには、ホスト通信リンクが、高帯域データ移転をサポートする能力があることが望ましい。
【００１４】
図１の例においては、入出力モジュール１０２、１０４、１０６、１０８及び１１０のそれぞれは、複数の高速シリアル通信チャンネル（図１に１１５として集合的に標識されている）により、４つの設定変更可能なクロスバー・モジュール１２０、１２２、１２４及び１２６に連結されている。以下でより詳細に記載するが、これらのチャンネルは、入出力モジュールがクロスバー・モジュールとの間でコマンド、命令及び／又はデータを通信することを可能にする。
【００１５】
図示された例においては、４つのクロスバー・モジュール１２０、１２２、１２４及び１２６があるが、クロスバー・モジュールの数は致命的に重要ではなく、変化できることが理解されるであろう。図１では、４つのクロスバー・モジュールのそれぞれが、５つの入出力モジュールのそれぞれと、個別の（ｄｉｓｔｉｎｃｔ）直列システム通信チャンネルを介して連結される。代替的な実施態様は、クロスバー・モジュールの１つ以上が入出力モジュールの全てよりも少ない数に連結されるものに想定される。
【００１６】
図１に反映されているように、例示的なシステムにおいては、それぞれのクロスバー・モジュールは、複数の並列メモリ・バスにより、メモリ・カードの集団に連結されている。例えば、図示された例においては、クロスバー・モジュール１２０は、メモリ・カードの第一のグループ１４０に、並列メモリ・バスの第一のグループ１３０により連結されている。同様の方法で、クロスバー・モジュール１２２、１２４及び１２６は、メモリ・カード・グループ１４２、１４４及び１４６に、それぞれ並列メモリ・バス・グループ１３２、１３４及び１３６を介して連結されている。図示された例においては、それぞれのクロスバー・モジュールは、５つのメモリ・カードのグループに、それぞれがデータ転送と同様に制御、コマンド、モニタリング情報を通信するために使用できる、５つの多重送信並列バスにより連結されている。メモリ・カードの数及びメモリ・インターフェース・バスの種類は、本開示の教示を逸脱することなく変更できることが認識されるであろう。
【００１７】
図示された例においては、それぞれのメモリ・カード、及び従ってメモリ・カードのグループのそれぞれは、一般的にメモリロケーションの特定の範囲に対応する。この特定の範囲は、実際の物理アドレス範囲（例えば、それぞれのアドレスが、前記メモリ・カードに関連付けられている特定の物理メモリロケーションに対応しているアドレスの範囲）、又は論理アドレス範囲（例えば、それぞれの論理アドレスメモリ・カード上の制御装置又は外部制御装置により、メモリ・カードに付随する物理メモリロケーションに対してマップされることができる、論理アドレス範囲）であることができる。
【００１８】
図１の例においては、全体のシステム１００は、一連の利用可能な記憶アドレスを外部ホストに提供し、及びそれぞれのメモリ・カードは、一般的にシステム１００により提供されるアドレスの特定の範囲に対応する。加えて、メモリ・カードのそれぞれのグループがアドレスの特定の範囲に関連付けられているために、それぞれのクロスバーも、それが接続されているメモリ・カードのグループに対応するアドレスの範囲に関連付けられる。
【００１９】
図１のシステム１００においては、システム制御装置１５０は、入出力モジュール１０２、１０４、１０６、１０８及び１１０のそれぞれ、及びクロスバー・モジュール１２０、１２２、１２４及び１２６のそれぞれに連結されている。システム制御装置は図１の５つの入出力モジュールの全てに接続されているが、そのような接続のうちの１つだけが図示されている。同様に、システム制御装置、及びクロスバー・モジュールの間の４つの接続の内の１つだけが示されている。一般にシステム制御装置１５０は、タイミング及び同期信号を提供するが、それは、監視、報告及び他の監督タスクの遂行のためにも用い得る。
【００２０】
一般的な操作においては、入出力モジュールのそれぞれは、入出力モジュールが接続されている外部ホスト装置から、外部データ関連要求を、そのホスト通信リンクを通じて受け取る。それぞれの入出力モジュールは、記憶システム１００への、又は記憶システム１００からのデータの、記憶及び／又は取り出しを可能にするために、これらのデータ関連要求を処理する。図１の実施態様においては、このデータ要求が受け取られ、及び個別の通信「パケット」の形態の応答が返されるが、代替的な通信プロトコルを用いることもできる。
【００２１】
正確なプロトコルの詳細は用途に依存するが、外部プロトコルは、高いデータのスループットを促進するために低い通信オーバーヘッドに対して選択されるべきである。図１のシステムにおいては、前記入出力モジュールにより受け取られて、処理される通信パケットは、典型的にはヘッダー、及びそのパケットがデータを移転するものであれば、データ・ペイロードを含む。ヘッダーの正確な内容及びフォーマットは、用途ごとに異なるが、このヘッダーは典型的には以下のものを含む：（ａ）要求の種類を識別する識別子（例えば、その要求が、システム内にデータを記憶するためのＷＲＩＴＥ要求であるか、又はそのシステム内に以前に記憶されたデータを取り出すためのＲＥＡＤ要求であるのか）；（ｂ）要求に関連付けられた特定のアドレスを示す識別子（例えば、ＷＲＩＴＥ要求については、一般的にその要求に関連付けられたデータの記憶が開始されるロケーションを識別するか、又はＲＥＡＤ要求については、その要求に関連付けられたデータの取り出しが開始されるべきロケーションを識別する、特定の論理又は物理“アドレス”であって、これらのアドレスのそれぞれは、時に「ＴＡＲＧＥＴ  ＡＤＤＲＥＳＳ」と称される）；並びにいくつかのシステムについては、（ｃ）データ関連要求のソースの識別（時に「ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳ」と称される）；及び（ｄ）要求に関連付けられたデータの量を示す識別子（例えば、その要求の一部としてのシステムへの保存、又はシステムからの取り出しのためのバイト数、ページ数、又は他のデータ量の表示）。いくつかの通信プロトコルについては、全ての外部データ関連要求は、特定のサイズにされたデータのページ、又は特定の数のデータ・ワードなどの、データの特定の量に関連付けられていると推測される。このようなプロトコルでは、要求が、特定のプロトコルのためのデータの標準量に関することが暗黙的であるために、特定の外部要求に関連付けられたデータの量を明確に指定することは必要ない。
【００２２】
外部デバイスがデータ関連要求を、それらが接続された入出力モジュールに発行するちょうどそのときに、入出力モジュールもＤＭＡ（直接メモリ・アクセス）要求、又は単にＤＭＡと呼ばれる要求を、それらが接続されたクロスバー・モジュール及びそれらが取り付けられたメモリ・カードに発行する。それぞれの外部要求は、多重のメモリ・カード、及びクロスバー・モジュールに及ぶシステム・アドレスの範囲にアクセスを要求することができる。たとえ、特定の外部要求が、ただ１つのメモリ・カードにアクセスを要求する場合でも、外部要求に関連付けられたデータの量は、単独のＤＭＡ要求に関連付けられたデータの最大量を超える可能性がある。この理由のために、入出力モジュールは、それが受け取るそれぞれの外部要求のために２つ以上のＤＭＡ要求を発行することができる。この場合には、それらのＤＭＡ要求は、データ記憶又は取り出しが、そのシステム内の正しい物理メモリロケーションで行われるようにメモリ・カードに向けられる。外部ＲＥＡＤ要求の場合には、例えば、この入出力モジュールは、要求されたデータを、それが保存されているさまざまなロケーションから「収集する」ために、１つ以上のＤＭＡ  ＲＥＡＤ要求を発行する。外部ＷＲＩＴＥ要求の場合には、この入出力モジュールは、全ての受け取られたデータを、それが保存されるべきさまざまなロケーションに送達するために、１つ以上のＤＭＡ  ＷＲＩＴＥ要求を一般的に発行する。
【００２３】
一般にＤＭＡ  ＷＲＩＴＥ要求は、その要求及び同一のパケット内に存在する関連付けられたデータとともに、「パケット」に編成される。一方、ＤＭＡ  ＲＥＡＤ要求は、一般的に要求情報（アドレス、データ量など）のみを含む。これらの要求タイプのそれぞれに対する応答は、おおむね相補的である。入出力モジュールにより発行されたそれぞれのＤＭＡ  ＷＲＩＴＥ要求に対して、クロスバーは、ＷＲＩＴＥ操作が成功したか失敗したかを示す状況情報を最小限含むＤＭＡ  ＷＲＩＴＥ応答パケットを返す。入出力モジュールから発行されたそれぞれのＤＭＡ  ＲＥＡＤ要求に対して、クロスバーは、要求されたデータ及び、最小限返されたデータの正当性を示す状況情報の両方を含むＤＭＡ  ＲＥＡＤ応答パケットを返す。
【００２４】
システム内のメモリ・カードそれぞれがフラッシュ・メモリを用いる一実施態様では、それぞれのＤＭＡ要求は、データの固定量の移転を、その固定量が単一のフラッシュ・メモリ・「ページ」に記憶された等しいものとして特定する。この例では、１ページは、一般的に個別的にフラッシュ・メモリに書き込まれることが可能な情報の最小量である。
【００２５】
図１のシステム１００では、一般的に、ＤＭＡ要求は固定量のデータ（４キロバイト）を、固定されたアドレス境界上に整列されたアドレス（４キロバイト）から、及びそのアドレスへと、移転することであると定義される。いくつかの場合には、外部ＷＲＩＴＥ要求により広げられるアドレス範囲が、これらの固定ＤＭＡ要求アドレス境界上に整列しないことも可能である。図１Ａ〜１Ｃに示されるように、外部ＷＲＩＴＥ要求は、ＤＭＡ要求の許可された開始アドレスに対応しないアドレスから開始されることができる。同様に、ＤＭＡ  ＷＲＩＴＥ要求は、ＤＭＡ要求の終了アドレスに対応しないアドレスで終了できる。この「不均衡（ｍｉｓａｌｉｇｎｍｅｎｔ）」が起きるとき、前記入出力カードは、１つ以上の読み出し−修正−書き込み（ＲＭＷ）操作を遂行できる。読み出し−修正−書き込み操作では、前記入出力モジュールは、外部ＷＲＩＴＥ要求の開始及び／又は終了にまたがるアドレス範囲からのシステム・メモリからデータを取り出すためにＤＭＡ  ＲＥＡＤ要求を発行する。次いで、前記入出力モジュールは、この取り出されたデータの一部を、整列されていないＷＲＩＴＥ要求からの外部データによって修正（置換）し、及び次いで、相補的なＤＭＡ  ＷＲＩＴＥ要求を発行することにより、この修正されたデータを、システムメモリに返す。このような方法で、前記入出力モジュールは、個別のＤＭＡ要求の整列制限に従わないアドレス範囲のシステムメモリ内でのデータの保存を可能にする。
【００２６】
図１Ａは、外部ＷＲＩＴＥ要求が１ページに完全に含まれるが、開始アドレスがＤＭＡアドレス境界に整列していないために、読み出し−修正−書き込み操作が遂行されることを引き起こす、データのアドレス及び量１６０を特定する、「中に含まれる（ｃｏｎｔａｉｎｅｄ  ｗｉｔｈｉｎ）」場合の例を示している。この場合には、１つのＤＭＡ  ＲＥＡＤ要求のみが必要である。新しい（修正された）データは、ＤＭＡ  ＲＥＡＤ要求と同じ（整列された）アドレスを使用する発行されたＤＭＡ  ＷＲＩＴＥ要求とともに、以前に保存されたデータのロケーションの上に重ねられる。図１Ｂは、外部ＷＲＩＴＥ要求を２つのフラッシュ・ページにまたがる、特定されたアドレス及びデータ量１７０とともに示している。この「またがる（ｓｔｒａｄｄｌｅ）」ケースは、データの取り出しのために２つのＤＭＡ  ＲＥＡＤ要求を生成させ、及び続いて新しいデータ・イメージを戻すために２つのＤＭＡ  ＷＲＩＴＥ要求を生成させる。図１Ｃは、その特定されたアドレス及びデータ量１８０が３パージにわたっている外部ＷＲＩＴＥ要求を示している。この「広がる（ｓｐａｎｎｉｎｇ）」場合では、入出力カードは、第一のページに対し１つのＤＭＡ  ＲＥＡＤ要求を発行し、新しいデータを重ね、及びこの変化に責任を持つためにＤＭＡ  ＷＲＩＴＥ要求を発行する。次のページは完全に新しいデータにより上書きされるために、入出力カードは、このページで読み出し−修正−書き込み操作を行う必要はなく、及び整列されたアドレスへ、単にＤＭＡ  ＷＲＩＴＥ要求を発行する。しかしながら、新しいデータ・セットの残りは、第３のページを完全には満たさない。従って、入出力カードは、以前に記載した方式でこのページのために読み出し−修正−書き込みを遂行する。これらの３つの場合は、外部ＷＲＩＴＥ要求操作の種類の、遂行できるサブセットに過ぎず、及び単に読み出し−修正−書き込み操作を図示することが意図されていることが理解されるであろう。
【００２７】
外部要求の構造は一般的にプロトコル依存性である一方、内部ＤＭＡ要求／応答プロトコルは、一般的に特定のシステムに対して固定されており、及びシステム性能を最大化するために設計されている。図１のシステムでは、ＤＭＡ要求及びＤＭＡ応答はヘッダー、及びもしパケットがデータ転送のためのものである場合には、データ・ペイロードを含むパケットとして構造化される。
【００２８】
ＤＭＡ要求は典型的には以下のものを含む：（ａ）ＤＭＡ要求の種類を示す識別子（すなわち、ＤＭＡ要求が、データをシステム内に保存するためのＷＲＩＴＥ要求であるか、又はシステム内に以前に保存されたデータを取り出すためのＲＥＡＤ要求であるか）；（ｂ）そのＤＭＡ要求に関連付けられた特定のアドレスを示す識別子（例えば、ＤＭＡ  ＷＲＩＴＥ要求に対しては、一般的に、要求に関連付けられたデータの保存が開始されるべきロケーションを特定するか、又はＤＭＡ  ＲＥＡＤ要求に対しては要求に関連付けられたデータの取り出しが開始されるべきロケーションを特定する、特定の論理又は物理「アドレス」）；（ｃ）ＤＭＡ要求がそこから由来する入出力モジュールを示す識別子；及び（ｄ）それぞれの入出力モジュールに対しては、そのモジュールから由来する特定のＤＭＡ要求を一意的に識別する「タグ（ｔａｇ）」。ＤＭＡ  ＷＲＩＴＥ要求に対しては、この要求は、その要求に対してシステムメモリ中に保存されるべきデータも含む。図１のシステム１００においては、それぞれのＤＭＡ要求に関連付けられたデータの量は固定されている。データ量が可変であるシステムに対しては、ヘッダーは更に（ｅ）その要求に関連付けられたデータの量を示す識別子も含む。
【００２９】
ＤＭＡ応答は典型的に以下のものを含む：（ａ）ＤＭＡ応答の種類を示す識別子（すなわち、応答がＤＭＡ  ＷＲＩＴＥ要求か、又はＤＭＡ  ＲＥＡＤ要求に対応するものか）、（ｂ）それぞれの入出力モジュールに対しては、入出力モジュールにより、それぞれのＤＭＡ応答を、それに対応するＤＭＡ要求に一意的に関連付けるために使用できる「タグ」、及び（ｃ）ＤＭＡ  ＷＲＩＴＥ応答に対しては、対応するＷＲＩＴＥ操作が成功であるか、失敗であるかを表示し、又はＤＭＡ  ＲＥＡＤ要求に対しては、取り出されたデータの正当性を表示する、状況インジケーター。ＤＭＡ  ＲＥＡＤ応答に対しては、その応答は、さらにオリジナルのＤＭＡ  ＲＥＡＤ要求により要求されたデータも含む。
【００３０】
図１のシステム１００においては、入出力モジュールは、外部要求を満たすために対応するＤＭＡ要求が向けられるべきクロスバー（及び、可能であればそのメモリボード）を決定するために、それがＲＥＡＤ要求であるか、又はＷＲＩＴＥ要求であるかを決定するために、特に、その要求を最小限度処理することにより、外部データ関連要求に対して応答する。
【００３１】
上述のように、入出力モジュールにより外部データ関連要求が最小限処理された後に、システムの構成要素は要求を満たすために作動する。例えば、入出力モジュールは、その種類（ＲＥＡＤ又はＷＲＩＴＥ）を識別するためと同時に、外部要求を満たすために発行されるべき特定のＤＭＡ要求を決定するために、最初にそれぞれの外部データ関連要求を処理する。この入出力モジュールは、次いで、更なる処理のために、必要なＤＭＡ要求を適切なクロスバー・モジュールに伝達する。クロスバー・モジュールは、順々に、（ａ）それぞれの受け取られたＤＭＡ要求が向けられるべきメモリ・カードを決定し、（ｂ）それぞれの受け取られたＤＭＡ要求を、シリアル・フォーマットからメモリ・カードに提供するのに適切な並列フォーマットに変換し、及び次いで、（ｃ）それぞれのＤＭＡ要求の全部又は一部を、そのアドレス範囲が前記ＤＭＡ要求に関連付けられているアドレスに広がっている、メモリ・カードに転送する。以下でより詳細に記載するように、メモリ・カード内の電気回路は、提供されたデータを物理メモリに保存するためか（ＤＭＡ  ＷＲＩＴＥ要求に対して）、又は物理メモリからデータを取り出すか（ＤＭＡ  ＲＥＡＤ要求に対して）の、いずれかのために、更にそのＤＭＡ要求を処理する。一般的に、それぞれのＤＭＡ  ＷＲＩＴＥ要求に関連付けられたデータ・ペイロードが、その要求の一部として送達されることに注目することが重要である。いくつかの実施態様では、データが成功裡にメモリ・カードに伝送されたことを確認するために、肯定応答（ＡＣＫ）信号が、クロスバー・モジュール及びメモリ・カードの間に存在することができる。
【００３２】
入出力モジュールのための高速シリアル・システム通信リンク、及びクロスバー・モジュール、設定変更可能なクロスバー・モジュール、及びクロスバー・モジュールのための高速並列メモリ通信リンク、及びメモリ・カードの組み合わせの使用により、記憶システム１００は、極度に高帯域のシステムを提供する。
【００３３】
上記で開示された実施例において、入出力インターフェース・モジュールをクロスバー・モジュールに連結させる高速シリアル通信リンクは、コマンド及び制御情報（例えば、ＤＭＡ要求のヘッダーに見出される種類の情報）、並びにデータ（例えば、データ・ペイロード中で提供される情報）の両方を運搬するために用いられる。データ・ペイロード中で受け取られた種類のデータの移転を含まない通信を提供するために、いくつかの追加的な最小限のシリアル通信リンクが用いられている代替的な実施態様が想起される。例えば、比較的低帯域、低速のシリアル通信リンクが、通信の特定のカテゴリーに用いることができるであろうし、従って高速リンクから一定量のトラフィックをオフロード（ｏｆｆｌｏａｄｉｎｇ）し、及びこれらのリンクの性能の中で、対応するブーストを達成する実施態様が想起される。それぞれのＤＭＡ  ＲＥＡＤ要求及びＤＭＡ  ＷＲＩＴＥ応答は、例えば、この方式で伝送でき、その両方ともが、それぞれのパケットの中で、データを移送するＤＭＡ  ＷＲＩＴＥ要求及びＤＭＡ  ＲＥＡＤ応答に対して高速シリアル・リンクを保存する。ＤＭＡ  ＲＥＡＤ要求、びＤＭＡ  ＷＲＩＴＥ応答はいかなるデータ・ペイロードも転送しないため、それらは一般的にサイズにおいてはるかに小さく、及びより遅い通信リンクを、顕著な性能の低下なしで利用することができるであろう。代替的な実施態様では、ＤＭＡ  ＲＥＡＤ要求及びＤＭＡ  ＷＲＩＴＥ応答は、代替的な低帯域シリアル・チャンネルを通じて転送されるか、全てのクロスバーへ、又は全てのクロスバーから別個に共有される高速リンクを通じるブロードキャストし得る。
【００３４】
高速シリアル・リンクは、データと同様の信号速度において、このサイドバンド・データを提供するために、マルチドロップ・バスを用いて、全てのクロスバーを全ての入出力モジュールに接続するためにも使用し得るであろう。代替的に、前記サイドバンド・リンクは、環状構造において実行し得るであろう。両方の場合に、このことは、追加される競合制御論理（ａｒｂｉｔｒａｔｉｏｎ  ｌｏｇｉｃ）及びハードウエアを費やして、システム内のポイントツーポイント接続の数を減らすであろうが、より高いデータ処理能力及び帯域幅の追加的利益を伴う。
【００３５】
上記で説明された特定の素子に関する追加的詳細、及びその素子の代替的な実施態様及び／又は全体のシステムは以下で提供される。
【００３６】
入出力モジュール
図１の入出力モジュールは、多くの形態をとることができる。好適な入出力モジュールの１つの例示的な実施態様が図２に提供されている。
【００３７】
図２を参照すると、例示的な入出力モジュール２００が図示されている。この例では、入出力モジュール２００は、２つの別個のファイバー・チャンネル（ＦＣ）ポート（２０１及び２０３）を有するインターフェースを提供し、それぞれが、特定の入出力モジュール２００がファイバー・チャンネル・ホスト・バス・アダプター（図示されていない）と接続することを可能にし、それによって、外部ホストがＳＣＳＩ装置としてのシステム１００にアクセスすることを可能にする。それぞれのポート（２０１又は２０３）は、単独のトランスミット・リンク及び単独のレシーブ・リンクを含み、それぞれのリンクは２．１２５ギガビット／秒（Ｇｂ／ｓｅｃ）、又は４．２５Ｇｂ／ｓｅｃのいずれかで作動する。それぞれのポートは、ポイントツーポイント及び競合制御型ループ・ファイバー・チャンネル・プロトコルをサポートできる。この物理インターフェース、及び前記ＳＣＳＩ、及びファイバー・チャンネル（ＦＣ）プロトコルは、例示的であって、他の物理インターフェース及びプロトコルを用い得ることが理解されるであろう。
【００３８】
図２を参照し、前記例示的な入出力モジュール２００は、情報を光と電気フォーマットの間で変換するための光電変換器２０２ａ及び２０２ｂを含む。一般にこれらの装置のそれぞれ（２０２ａ及び２０２ｂ）は、その外部光レシーブ・リンク（２０１又は２０３）で受け取った信号を電気信号に変換し、その電気信号は次いで高速制御装置２０４に転送される。同様に、これらの装置のそれぞれは、高速制御装置２０４で受け取られた電気信号を光信号に変換し、この光信号はその外部光トランスミット・リンクを通じて伝送される。周知の光電変換器を用いることができる。
【００３９】
上記で示唆されたように、前記光電変換器は、高速制御装置２０４に連結される。図２の例では、前記高速制御装置２０４は、例えばＸｉｌｉｎｘ  Ｖｉｒｔｅｘ−４  ＦＰＧＡ装置のような、構成されたフィールド・プログラマブル・ゲート・アレー（ＦＰＧＡ）である。この制御装置２０４は、通信リンクにより、Ｆｒｅｅｓｃａｌｅ  ＭＰＣ８５４７プロセッサ２０６などの、プログラム可能なマイクロプロセッサ（ＣＰＵ）２０６及びメモリ２０８に連結されている。図示された例においては、メモリ２０８は、ＤＤＲメモリ成分から形成されている。
【００４０】
見られるように、前記制御装置２０４は４つの高速シリアル・システム通信チャンネル２１０、２１２、２１４及び２１６を提供する。前記プロセッサ２０６及び制御装置２０４は、前記外部ファイバー・チャンネル・ポート（２０１及び２０３）及び前記４つのシリアル・システム通信チャンネル２１０、２１２、２１４及び２１６の間でのプロトコル変換機能をともに遂行する。図示された例においては、シリアル・システム通信チャンネルのそれぞれは、トランスミット（ＴＸ）サブチャンネル及びレシーブ（ＲＸ）サブチャンネルの両方を含む全二重物理層を含む。それぞれのサブチャンネルは、ともに結合されて、１０Ｇｂ／ｓデータのデータ移転速度の能力がある単独のサブチャンネルを形成する、２つの個別の５Ｇｂ／ｓシリアル通信リンクを更に含む。この例では、データは、シリアル・システム通信チャンネルを通じて伝送される前に、８Ｂ／１０Ｂで符号化され、８Ｇｂ／ｓｅｃ（又は毎秒あたり１Ｇバイト（ＧＢ／ｓｅｃ））のデータ転送速度をもたらす。代替的な符号化のスキーム（例えば、６４Ｂ／６６Ｂ符号化）も用い得るであろう。図２の例では、それぞれのシリアル通信チャンネルは、Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ−４ＦＰＧＡ装置内で利用可能なマルチ・ギガビット・トランシーバー（ＭＧＴ）モジュールを用いて実行されるが、他の同様な実行方法が、本開示の教示を逸脱することなく使用できることが理解されるであろう。ＦＰＧＡ装置のＸｉｌｉｎｘ  Ｖｉｒｔｅｘ−４ファミリーにより可能になるような通信リンクを結合するために利用可能な手順を、前記通信チャンネルを形成するために用いることができる。代替的に、他のシリアル化／脱シリアル化（ＳｅｒＤｅｓ）プロトコルに関連付けられた結合スキームも用い得る。
【００４１】
図２の例では、前記入出力インターフェース・モジュール２００は、４つのシリアル・システム通信チャンネル２１０、２１２、２１４及び２１６を提供し、それぞれは、異なるクロスバー・モジュールに接続されている。４つの全二重シリアル・システム通信チャンネルの使用は、それぞれの入出力モジュールに対して、潜在的な４ＧＢ／ｓｅｃのリード帯域及び４ＧＢ／ｓｅｃのライト帯域を集合的に提供する。もし、図１のシステム１００が５個の入出力モジュールを使うならば、例示的な図示されたシステムは、合計２０ＧＢ／ｓｅｃのリード帯域及び合計２０ＧＢ／ｓｅｃのライト帯域を有するであろう。
【００４２】
一般に前記高速制御装置２０４は、ＦＣインターフェース２０１及び２０３を通じて受け取られる外部データ関連要求を受け取り、及び処理する。上述したように、それぞれの外部データ関連要求は、典型的には以下を示すヘッダーを含み：（ａ）要求がＲＥＡＤ又はＷＲＩＴＥ要求のどちらであるのか、及び（ｂ）ＴＡＲＧＥＴ  ＡＤＤＲＥＳＳを示す。このヘッダーは随意に、（ｃ）ＳＯＵＲＣＥ  ＡＤＤＲＥＳＳ、及び（ｄ）要求に関連付けられたデータの量の表示、を示すことができる。ＷＲＩＴＥ要求に対しては、前記要求は、更にデータ・ペイロードを含む。前記高速制御装置２０４は、前記要求を処理し、及びヘッダー情報の大半（しかしデータ・ペイロードではなく）を、プロセッサ又はＣＰＵ２０６に提供できる。このＣＰＵ２０６は、ＦＣプロトコルの少なくともいくつかの部分を管理し、及びシステムインターフェース全体の管理を支援する。
【００４３】
前に説明したように、前記高速制御装置２０４及びＣＰＵ２０６は、外部ファイバー・チャンネル・リンクを管理するために、ともに作動する。いくらかの最小のＣＰＵ支援に加えて、ほとんどの実施態様では、前記高速制御装置２０４は、外部データ関連要求のそれぞれを満たすために要求される内部ＤＭＡ要求を発行することに単独で責任を負う。特に、前記高速制御装置２０４は、それぞれの外部要求を満たすために、発行するべき特定のＤＭＡ要求、及びどのクロスバーにそのＤＭＡ要求が発行するべきかを決定する。高速制御装置が、外部要求を満たすために、要求されるクロスバー・モジュール及びＤＭＡ要求を特定するとすぐに、それは適切なクロスバーに対するＤＭＡ要求の発行を開始する。一般に、入出力モジュール２００により発行されることのできる、未処理のＤＭＡ要求（それらに対する応答が未だ受け取られていない要求）の数は、ＤＭＡヘッダー内のタグ・フィールドのサイズにより限定される。比較的小さい移転については、要求されるＤＭＡ要求の数は少なく、及び前記高速制御装置２０４は、応答の受領を待つことなくそれらの全てを発行できる。大きな移転に関しては、要求されるＤＭＡ要求の数は大きく、及び前記高速制御装置２０４は、ＤＭＡ要求の発行を遅延させるように強いられる。８ビットのタグ値の場合、例えば、前記高速制御装置は、タグ値を再使用することなく、最初に２５６個のＤＭＡ要求を発行できるであろう。それぞれの未処理ＤＭＡ要求は、一意的にタグ付けされ、前記高速制御装置がそれぞれのＤＭＡ応答を対応するＤＭＡ要求に関連付けることを可能にする。ＤＭＡ要求への応答が返されたときに、前記高速制御装置は、完了されたＤＭＡ要求からのタグ（それに対するＤＭＡ応答が受け取られたもの）の再使用を開始できるであろうし、それにより、その後のＤＭＡ要求の発行を可能にする。
【００４４】
一般にＤＭＡ要求及びそれらに対応するＤＭＡ応答は、シリアル・システム通信チャンネル２１０、２１２、２１４、及び２１６を通じて移転される。それぞれの入出力モジュールは、４つのシリアル通信チャンネルに提供するために、それは、同時に、又はほぼ同時に、独立して、４つの異なるクロスバー・モジュールへの、又は４つの異なるクロスバー・モジュールからのデータを独立して伝送及び／又は受け取る。
【００４５】
以前に説明したように、前記高速制御装置２０４は、それぞれの外部データ関連要求を満たすために、ＲＥＡＤ及びＷＲＩＴＥ  ＤＭＡ要求を適正なクロスバー・モジュールに送達することに責任を有する。一実施態様では、前記高速制御装置２０４は、前記高速制御装置メモリ２０８中に保持される、ルックアップ・テーブルを使用することにより、それぞれのＤＭＡ要求をどのクロスバー・モジュールが受け取るべきかを決定する。この実施態様では、前記制御装置２０４は、特定のクロスバー・モジュールを有するシステムにより提供されるアドレスの全体範囲の中で、アドレスの特定の範囲に相関する情報を含むルックアップ・テーブルにアクセスし、及び維持する。このアプローチの１つの利益は、それが、設定における、ある程度の柔軟性及びシステムの再配置を提供することである。より更なる実施態様では、メモリ２０８内部の前記ルックアップ・テーブルは、受け取られたアドレスが、予定のクロスバー・モジュール、及び所定のクロスバー・モジュールに連結された、特定のメモリ・カードと相関させることができるように、提示されたアドレスの特定の範囲を、所定のメモリ・カードと、及びさまざまなメモリ・カードをクロスバー・モジュールと更に関連付ける。
【００４６】
代替的な実施態様では、所定のクロスバー及び受け取られたアドレスの間の関係は所定のアドレス範囲が、常に特定のクロスバー・モジュールに対応できるように「組み込まれ（ｈａｒｄｗｉｒｅｄ）」ている。
【００４７】
もっと別の実施態様では、所定のクロスバー及び受け取られたアドレスの間の関係は動的であり、それにより不合格の、又はさもなければ使用不可能のメモリ・カード又はクロスバーを別のメモリ・カード又はクロスバーに「再マップする」ことを可能にする。
【００４８】
図２の入出力インターフェース・モジュール２００などの、入出力モジュールにより発行されるＤＭＡ移転は、固定、又は可変のデータ量のいずれかの移転を特定できる。ＤＭＡ移転サイズが固定されている実施態様については、ＤＭＡ要求が、移転されるべきデータ量に関する情報を提供することは不必要であり得る。メモリ・カードがフラッシュ・メモリを用いる実施態様では、前記ＤＭＡ移転サイズは、単独のフラッシュ・メモリ・ページに記憶されるデータ量に固定されている。
【００４９】
ＤＭＡ操作は、可変量のデータを移転できる。そのような実施態様では、それぞれのＤＭＡ要求は、典型的には、移転されるべきデータの量（しばしばデータの最小量の倍数として）の表示を含む。
【００５０】
ＤＭＡ  ＷＲＩＴＥ操作の間、ＤＭＡ移転が固定又は可変移転サイズを用いて遂行されるかどうかに無関係に、前記高速制御装置２０４は、それが取り付けられた外部ホスト装置から受け取るデータをキュー待ちさせる。多重のＤＭＡ  ＷＲＩＴＥ要求から成る、より大きなデータ転送については、前記入出力インターフェースは、ＤＭＡ  ＷＲＩＴＥ要求の発行を開始する前に、全ての外部データの受け取りを待つ必要はない。その代わり、前記高速制御装置は、ＤＭＡ  ＷＲＩＴＥ要求を発行開始し、及びそれぞれのＤＭＡ  ＷＲＩＴＥ要求をサポートするために十分なデータが利用可能になるとすぐに、ＤＭＡ  ＷＲＩＴＥ要求を発行し続ける。
【００５１】
ＤＭＡ  ＲＥＡＤ操作の間、前記高速制御装置は、データ流を反対方向にキュー待ちさせる（システムメモリの外へ）。この場合には、前記高速制御装置は、多数のＤＭＡ  ＲＥＡＤ要求を発行し、及び次いでＤＭＡ  ＲＥＡＤ応答が、個別のクロスバー・モジュールから返されることを待つ。これらの応答は、それらの対応するＤＭＡ  ＲＥＡＤ要求とは違う順序で受け取られることができるため、前記高速制御装置は、前記クロスバーから受け取られたデータを、それらのデータが、その正しい順序で送達されることができるまで、キュー待ちさせなければならない。外部データ要求が、２５６個のＤＭＡ  ＲＥＡＤ要求の発行を要求するシナリオを想定すると、最後のＤＭＡ  ＲＥＡＤ応答が、第一のＤＭＡ  ＲＥＡＤ要求に対応することが可能であり、それにより２５６個のＤＭＡ移転からのデータをキュー待ちさせることを、前記入出力インターフェースに要求する。前記入出力インターフェースは、データが連続して送達される場合にのみ、外部要求者（ホスト装置）へのデータをアンロードできる。
【００５２】
上述された方式によって、前記入出力インターフェース・モジュール２００は、前記要求を満たし、及び要求されたデータを外部のホスト装置に提供するために、外部ホストからデータ関連要求を受け取ることができ、システム１００内のメモリにアクセスできる。
【００５３】
図２の前記入出力インターフェース・モジュールは、本開示のシステムにおいて使用可能な入出力インターフェース・モジュールの一例でしかないことを理解されたい。代替的な入出力インターフェースを用いることができる。代替的なインターフェースの一例は図３に提供されている。
【００５４】
図３は、複数の高速インフィニバンド・ポート（集合的に３０１と称されている）を介したデータ関連要求の受け取り能力のある、代替的な入出力インターフェース・モジュール３００を図示している。
【００５５】
図３を参照するが、前記例示的な代替的な入出力モジュール３００は、複数のインフィニバンド（ＩｎｆｉｎｉＢａｎｄ）ポート３０１を通じて、データ関連要求及び応答を受け取り、伝送する能力のあるインフィニバンド・インターフェース・チップ３０２を含む。このインフィニバンド・インターフェース・チップは、Ｍｅｌｌａｎｏｘから入手できるような、標準インフィニバンド・チップであってよい。
【００５６】
一般に前記インフィニバンド・インターフェース・チップ３０２は、データ関連要求をインフィニバンド・ポート３０１を経由して受け取り、及び少なくともコマンド・ヘッダーを、及び外部ＷＲＩＴＥ要求については、少なくともデータ・ペイロード識別する程度に受け取った要求を最小限復号する。インターフェース・チップ３０２は、次いで、図３の例ではＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）スイッチである、スイッチング素子、ルーティング素子、又は共有メモリ素子３０５の使用を介して、制御ＣＰＵ３０６が利用可能なコマンド・ヘッダー情報を作成する。スイッチング／ルーティング／メモリ素子３０５を使用して、インターフェース・チップ３０２は、高速制御装置３０４（構成されたＦＰＧＡであることができる）が利用可能な受け取られたデータも作成する。前記高速制御装置３０４、多重シリアル・システム通信チャンネル３１０、３１２、３１４及び３１６を、クロスバー・モジュールに提供し、及び図２の高速制御装置２００に関連して上記に記載されているのと同様の方式で、クロスバー・モジュールへの、及びクロスバー・モジュールからの、情報及びデータを受け取り、及び提供するために、受け取られたデータ関連要求を操作する。
【００５７】
上記で説明された、前記入出力インターフェース・モジュール２００及び３００は、単に例示的であり、及び他の種類の入出力インターフェース・モジュール、異なる物理層、異なる通信プロトコル、及び個別素子（構成されたＦＰＧＡｓとは対照的に）を用いるものも含めて、本開示を逸脱することなく、使用できるであろうことが、理解されるであろう。
【００５８】
一般に入出力モジュールの主な要件は、外部から提供されたデータ関連要求を受け取り、及び応答することができること、並びにそれらの要求（及びその要求に応答するために情報及びデータを受け取ること）を複数の高速システム通信チャンネルを通じて多重クロスバー・モジュールに伝送できることである。
【００５９】
クロスバー・モジュール
上述したように、本開示のシステム中のそれぞれのクロスバー・モジュールの全体的な一般的機能は：（ａ）前記入出力モジュールからＤＭＡ要求を受け取り、及びそれらのＤＭＡ要求（加えて、付随するデータ・ペイロード）を、クロスバー・モジュールに接続された、適切なメモリ・カードに提供すること、並びに（ｂ）取り出されたデータをクロスバー・モジュールに接続されたメモリ・カードから受け取り、及び取り出されたデータ（及び潜在的ないくつかの情報）を、取り出しデータに関連付けられえた前記入出力モジュールに提供することである。
【００６０】
開示されたシステムのクロスバー・モジュールを実行するためには、さまざまなアプローチを用い得る。図４は、図１に関連して上記に記載されたクロスバー・モジュールを実行するための１つの例示的なアプローチを図示している。
【００６１】
図４を参照するが、例示的なクロスバー・モジュール４００が図示されている。クロスバー・モジュールはディスクリート電気回路、特定用途向け集積回路（ＡＳＩＣｓ）、又はこれらの２つの混合により実行できるが、図４の実施態様では、前記クロスバー・モジュール４００は、Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ４  ＦＰＧＡのような構成されたＦＰＧＡの使用により実行される。
【００６２】
この例では、構成されたＦＰＧＡは、５つのシリアル・システム通信ポート４０２、４０４、４０６、４０８及び４１０を提供するために構成されている。それぞれのシリアル通信ポートは、高速、双方向通信チャンネルを、それ自身と、入出力モジュールの前記高速通信ポートの１つとの間に提供するために構成され、及び接続されている。従って、この例では、クロスバー・モジュール４００が、５つの全二重通信ポートを提供しているために、それは同時に及び独立してシステム１００の前記入出力モジュールのそれぞれと通信できる。従って、シリアル通信が、前記入出力モジュールのそれぞれ及びクロスバー・モジュール４００の間に存在するように、通信ポート４０２は、入出力インターフェース・モジュール１０２のシリアル通信ポートの１つに連結でき、ポート４０４は、入出力インターフェース・モジュール１０４のポートに連結でき、その他も同様である。
【００６３】
上述の５つのシリアル通信ポートを提供することに加えて、図４のクロスバー・モジュール４００は、クロスバー・モジュール４００及び複数のメモリ・カードの間の通信を可能にするために用いられる、多重並列通信バスも提供する。図４の例では、５つのメモリ・カード４１２、４１４、４１６、４１８及び４２０があり、及びクロスバー・モジュール４００は、並列バスを用いてメモリ・カードと通信する。図４の例では、クロスバー・モジュール４００、及び個別のメモリ・カードのそれぞれの間の通信は、この例では、それぞれのメモリ・カードに対して１６ビット長のデータ・バス及び５ビット長の制御バスを含む、並列バスを用いて達成される。
【００６４】
一般的な操作において、クロスバー・モジュール４００は、第一にシリアル・システム・リンクの１つを経由して、ＤＭＡ要求を受け取り、ＤＭＡ要求が向けられるべき特定のメモリ・カードを特定し、受け取られたＤＭＡ要求をシリアル・フォーマットから並列フォーマットに変換し、及びその並列フォーマット化されたＤＭＡ要求を適切なメモリ・カードに提供する手段として機能する。加えて、クロスバー・モジュール４００は、典型的にはメモリ・カードにより提供されたデータを受け取り、そのデータが、どの入出力モジュールを意図しているか決定し、及び受け取られたデータを、シリアル・システム通信リンクの１つを通じて、ＤＭＡ応答として適切な入出力モジュールに転送する。
【００６５】
例示的なケースでは、クロスバー・モジュール４００は、それぞれの入出力モジュールと、シリアル・インターフェース・バスを用いて通信し、及びそれぞれのメモリ・カードとは、並列インターフェース・バスを用いて通信する。前記入出力インターフェース・バスの実行は、前記入出力モジュールに依存し、及びメモリインターフェース・バスは、メモリ・カードに依存することに注意されたい。理論的には、そのバスが要求されるデータ速度で実行するという前提で、どちらのバスも、シリアル又は並列インターフェースのいずれかにより実行される。インターフェース・バスは、用途依存性であり、及び特定のバスの選択に影響する設計決定は、当業者にとっては自明である。例として、コネクタ密度を最小化するために、前記メモリ・カード・インターフェースは、前記入出力モジュールに本質的に同様である高速シリアル通信として実行されることができ、クロスバーとメモリ間のインターフェースを単純化できるであろう。
【００６６】
クロスバーポートを入出力モジュールに接続するバスのそれぞれは、ポイントツーポイント（ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ）であるために、競合制御（ａｒｂｉｔｒａｔｉｏｎ）は最小であり、及びオーバーランを防止することが必要な場合には、クロスバーが前記入出力バスをホールドオフする（ｈｏｌｄｏｆｆ）ることを可能にするために設計されたメカニズムにより規制される。
【００６７】
これらのタスクを遂行するためのＦＰＧＡの構成は、本開示の利益を受ける当業者にとり自明である。
【００６８】
メモリ・カード
開示されたシステムで用い得るメモリ・カードは多くの形態をとり得る。さまざまな種類のランダムアクセスメモリ（ＤＤＲ  ＲＡＭ、ＤＤＲ２  ＲＡＭ、ＤＤＲ３  ＲＡＭなどの）及びさまざまな種類のフラッシュ・メモリ（ＭＬＣフラッシュ・メモリ及びＳＬＣフラッシュ・メモリなどを含む）を含むさまざまなメモリを使うことができる。メモリ・カードの構造も、部分的には使用されるメモリに応じて変更できる。
【００６９】
図５は、フラッシュ・メモリを用い、及び本開示のシステムにおいて用い得るメモリ・カード５００の例示的な実施態様を図示している。図５の例では、このフラッシュ・メモリは、ＳＬＣフラッシュ・メモリであるが、ＭＬＣフラッシュ・メモリが用いられる実施態様も予測される。
【００７０】
図５を参照するが、このフラッシュ・メモリ・カード５００は、システム制御装置をクロスバー・モジュール（図５には図示されていない）の１つと連結させている、並列バス５０４を通じて情報を受け取るシステム制御装置５０２を含む。上述したように、並列バス５０４は、１６ビット長のデータ・バス及び５ビット長の制御バスを含む。クロスバー・モジュールから提供されるＤＭＡ要求は、システム制御装置５０２により受け取られて、及び処理される。システム制御装置５０２は、メモリ・カード及びクロスバー・モジュールの間の通信プロトコルを取り扱い、及びバス・エラー管理のためのエラー修正などの機能を実行できる。加えて、システム制御装置５０２は、メモリ・カード上のどの特定のメモリ素子が、ＴＡＲＧＥＴ  ＡＤＤＲＥＳＳと関連付けられているかを決定するために、受け取られたＴＡＲＧＥＴ  ＡＤＤＲＥＳＳアドレスを部分的に処理することもできる。
【００７１】
例示的なシステムでは、システム制御装置５０２は、多数の個別のフラッシュ制御装置５０６、５０８、５１０及び５１２と、直接接続を介して通信する。システム制御装置５０２は、個別のフラッシュ制御装置との通信もできるＣＰＵ５０３とも通信する。この通信は、図５に示されるように、フラッシュ制御装置への直接接続を介するか、又はＣＰＵ５０３がフラッシュ制御装置にアクセスするために、システム制御装置５０２と通信する「通過（ｐａｓｓ−ｔｈｒｏｕｇｈ）」接続を介することができる。これは、典型的にはバスのファンアウト（ｆａｎ−ｏｕｔ）を減少させるために行われ、及び当業者には明白な設計検討である。
【００７２】
図示された例においては、システム制御装置５０２、及びフラッシュ制御装置５０６、５０８、５１０及び５１２との間の通信は、独立した１６ビット長の並列バスを用いて達成され、そのような独立した並列バスは、システム制御装置５０２及び個別のフラッシュ制御装置５０６、５０８、５１０、及び５１２のそれぞれの間に連結されている。同様の独立した１６ビット長の並列バスは、ＣＰＵ５０３がそれぞれのフラッシュ制御装置５０６、５０８、５１０及び５１２と直接通信する実施態様において使用できる。
【００７３】
個別のフラッシュ制御装置のそれぞれは、物理フラッシュ・メモリ空間５１３、５１４、５１５、及び５１６、制御装置メモリ５１７、５１８、５１９、及び５２０（例えば、ＤＤＲ  ＲＡＭメモリであってよい）とそれぞれ連結されている。図示された例においては、それぞれの物理フラッシュ・メモリ空間（５１３〜５１６）は、１０個の独立したフラッシュ・メモリ・チップから形成されている。操作においては、フラッシュ制御装置５０２は、提供されたデータを特定の物理フラッシュ・メモリに保存し、及び要求されたデータを取り出し、及びそれをシステム制御装置５０２に提供するために、ＤＭＡ要求を処理する。多数のさまざまな種類のフラッシュ制御装置を用い得る。好適な制御装置及びその操作の一つは、２００９年９月５日に出願された同時係属の米国特許出願第１２／５５４，８８８号、１２／５５４，８９１号、及び１２／５５４，８９２号により詳細が記載されており、参照により本願に組み込まれる。
【００７４】
特に、本開示のシステム１００は、前記入出力インターフェース・モジュールにより受け取られたＴＡＲＧＥＴ  ＡＤＤＲＥＳＳが、メモリ・カードに提供されるアドレスであるように作動するため、本願のシステムは、フラッシュ・メモリ（究極的に受け取られたＴＡＲＧＥＴ  ＡＤＤＲＥＳＳの物理フラッシュ・アドレスロケーションへの移行を必要とする）及びＲＡＭメモリ（又は論理から物理アドレス変換を必要としない他のメモリ）の両方と容易に使用できる。更に、ＴＡＲＧＥ  ＡＤＤＲＥＳＳから物理フラッシュ・アドレスのいかなる変換も、ＤＭＡ要求がメモリ・カードに提供された後に行われるために、本願のシステムは、フラッシュ・メモリ・カード及びＲＡＭメモリ・カードの両方の使用を可能にする。このことは、受け取られたＴＡＲＧＥＴ  ＡＤＤＲＥＳＳを特定の物理フラッシュ・アドレスにマッピングするフラッシュ制御装置の操作が、クロスバー・モジュールをメモリ・カードに連結させるインターフェース・バスにとって、大部分トランスペアレント（ｔｒａｎｓｐａｒｅｎｔ）であるためである。
【００７５】
図６は、本開示のシステムにおいて用い得るＲＡＭメモリを用いるメモリ・カード６００の代替的な実施態様を図示している。この実施態様においてはクロスバー・モジュールによりメモリ・カードに提供されるアドレスは、アクセスするＲＡＭメモリに対して物理アドレスとして使用される。図を参照するが、メモリ・カード６００は単独の多重層印刷回路板に配置され添付されることのできる多数の素子を含む。
【００７６】
一般に、メモリ・カード６００は、システム制御装置６０２を含み、このシステム制御装置６０２は、図５からの前記制御装置５０２のように、ＤＭＡ要求をクロスバー・モジュールから受け取り、及びその要求を、そのシステム（エラー修正を含むか、又はそれと結合されることのできる）のために採用されたプロトコルを用いて処理する。システム制御装置は、次いで要求及びデータ・ペイロードがあれば、それを受け取られたデータのＴＡＲＧＥＴ  ＡＤＤＲＥＳＳに対応する、適切な物理アドレスへの急速ＤＭＡ移転を手配できる（ＷＲＩＴＥ要求に対して）メモリ制御装置６０４に渡すか、又はＤＭＡ移転を用いて、データをＲＡＭメモリ６０６（ＤＤＲ、ＤＤＲ２、ＤＤＲ３又は任意の他の高速ＲＡＭメモリであってよい）から取り出し、及びそのデータをシステム制御装置６０２に提供する（ＲＥＡＤ要求に対して）。図６に示される矢印の方向性は、ＷＲＩＴＥ操作の例を描写することのみを意味していることが理解されるであろう。実行の目的で、制御装置６０２及び制御装置６０４の両方が１つのＦＰＧＡ装置に結合されることも理解されるであろう。
【００７７】
代替的なシステムの実施態様：
上述のシステム１００では、クロスバー・モジュールは、シリアル形式で伝送されたデータ関連要求を受け取り、及びそれらの要求を、メモリ・カードに提供される並列形式の要求に変換するために用いられる。クロスバー・モジュールが除去され、及び前期データ関連要求が、シリアル形式で直接前記入出力モジュールからメモリ・カードに伝送される代替的な実施態様が想起される。
【００７８】
図７は、入出力モジュール又は装置が、クロスバー・モジュールを使わずに高速シリアル通信リンクを用いて直接的にメモリ・ボードと通信できる代替的な記憶システム７００を図示している。
【００７９】
図７を参照するが、代替的な記憶システム７００は、複数の入出力モジュール７０１、７０２、７０３、７０４、７０５、７０６、７０７、７０８、７０９、７１０、７１１、及び７１２を含み、それらのそれぞれは、１つ以上の外部ホストと、１つ以上の通信チャンネルを経由して連結されている。図示された例においては、それぞれの入出力モジュールは、前記入出力モジュールのそれぞれが、複数のメモリ・ボード７４０、７４２、７４４及び７４６のそれぞれ１つと通信することを可能にする、複数の高速双方向性全二重シリアル通信チャンネルを提供する。図７の例では、それぞれの入出力モジュール７０１〜７１２は、８個のシリアル通信ポートを提供し、及びそれぞれの入出力モジュール及びメモリ・ボードの接続回線は、２つの個別の全二重通信チャンネルを反映することが意図されている。
【００８０】
前記入出力モジュール７０１〜７１２は、メモリ・ボード７４０、７４２、７４４及び７４６に、極度に高帯域通信が可能になる方法で連結されている。例えば、第一の入出力モジュール７０１は、８個のシリアル・データ・ポート（メモリ・ボードのそれぞれに対して２個）を提供する。従って、前記入出力モジュール７０１が提供できる最大データ速度は、シリアル通信チャンネルの最大帯域幅の８倍である。
【００８１】
操作においては、前記入出力モジュール７０１〜７１２は、図２及び３に関連して上記で記載された、前記入出力モジュールと同様の操作を行う。しかしながら、図７の入出力モジュールは、より多数のシリアル通信チャンネルを提供するため、それらは、同時で、及び独立した、より多くのデータ関連要求又は応答通信を可能にする。このことは、一般的に記憶システム７００に、並びに特に前記入出力モジュール７０１〜７１２とメモリ・ボード７４０、７４２、７４４及び７４６の間に、より高い帯域幅をもたらす。例えば、前記入出力モジュール７０１は、８個のシリアル通信ポート（メモリ・ボードのそれぞれに対して２個）を提供するため、同時（又はほぼ同時）に、及び独立して２つのＷＲＩＴＥ要求を、メモリ・ボード７４０、７４２、７４４及び７４６のそれぞれに対し発行し、合計８個の同時（又はほぼ同時）に処理されたＷＲＩＴＥ要求を発行できるであろう。元のシステム１００において言及されたように、クロスバーなしでは、同じ競合制御（ａｒｂｉｔｒａｔｉｏｎ）及びホールドオフメカニズムは、いくつかの実施態様ではそれぞれのメモリ・ボードに配置される。
【００８２】
図７の例では、それぞれのシリアル・システム通信リンクは、前記入出力モジュール又は通信装置及びメモリ・ボードへのデータ及び制御情報の両方を、又はそれらからのデータ及び制御情報の両方を、渡させるために用いられる。とりわけ、それぞれのメモリ・ボードは、デジタル・データを受け取り、及びＷＲＩＴＥ要求に応答し（メモリ・ボード上の物理的メモリ空間の中の特定のメモリロケーションの中にデジタル・データを記憶させるために）、及びＲＥＡＤ要求に応答する（ボード上の物理メモリの特定のメモリロケーションの中に記憶されたデジタル・データを取り出し及び提供するために）。それぞれの高速シリアル通信リンクは、非常に高速（この実施例では６２５ＭＢ／ｓｅｃ）で、シリアル・データを受け取るか、又は伝送するため、図７のシステムは、非常に高いデータ速度でデータの記憶、又は取り出しができる。
【００８３】
図８は、図７のシステム７００で使用するための、例示的なメモリ・ボード８００の構造に関する詳細を図示している。
【００８４】
図８に転じて、メモリ・ボード８００は、記憶制御ユニット８０２及び複数の個別のメモリ・チップから形成された物理的メモリ空間８０４を含む。このメモリ・ボードは、メモリ・ボードが複数のシリアル通信リンクを受け取ることを可能にするために、更に適切なインターフェース回路８０６を含む。図８では、インターフェース回路８０６は、メモリ・ボード８００が、２４個のシリアル通信リンクからの入力を受け取ることを可能にする。図８の例では、さまざまな要素全てが同一の印刷回路板８００の上に配置されている。
【００８５】
記憶制御ユニット８０２は、Ｘｉｌｉｎｘから入手可能な３３３ＭＨｚで稼動するＶｉｒｔｅｘ−６ＦＰＧＡ（ＸＣ６ＶＬＸ２４０Ｔ−２ＦＦＧ１１５６ＣＥＳ）などの、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）の使用により形成できる。しかしながら、記憶制御ユニット８０２は、代替的に他の種類のＦＰＧＡ装置、ディスクリート回路、プログラムされたマイクロプロセッサ、又はそれらの任意の、又は全ての組み合わせによっても実行できるであろうことが理解されるであろう。
【００８６】
図示された例においては、物理的メモリ空間８０４は、Ｍｉｃｒｏｎ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃから入手可能な３３３ＭＨｚで稼動するＤＤＲ３−８００（ＭＴ４Ｊ１２８Ｍ８ＢＹ−２５Ｅ）のような複数のダブルデータレートダイナミックＲＡＭ・チップ、ＤＤＲ、を用いて構築される。しかしながら、代替的なＤＤＲデバイス、フラッシュ及び他の種類のメモリなどの他の形態のメモリが、本開示の教示を逸脱することなく使用できることが理解されるであろう。
【００８７】
この実施例では、記憶制御ユニット８０２は、物理的メモリ空間８０４への２８８本の外部並列データ回線（図９によりよく示される）を駆動する。メモリ空間は、３３３ＭＨｚでクロックされるＤＤＲメモリを使用するため、図８の前記高速メモリ・ボードは、それぞれのクロック・サイクルに対して物理的メモリ空間内に、最大５７６ビットのデジタル情報（５１２ビットのデータ及び６４ビットのＥＣＣ）を記憶する能力があり、従って全体でデータ及びＥＣＣについては約２４０００ＭＢ／ｓｅｃ、データ単独では２０．８３ＧＢ／ｓｅｃの記憶速度を提供する。
【００８８】
図９は、例示的な高速メモリ・ボードの構造の一部分をより詳細に図示している。特に、図９は、シリアル通信リンクからのデジタル・データを受け取り、物理的メモリ空間８０４内への記憶のために、そのようなデータを操作するために使うことができる、図８の記憶制御ユニット８０２内の構造を図示している。
【００８９】
図９を参照するが、前記高速シリアル通信リンクの１つ、シリアル・リンク９００が、記憶制御ユニット８０２と連結しているところが図示されている。前記高速シリアル通信リンク９００は、記憶制御回路８０２内に配置されるシリアライザ／デシリアライザ及びパッキング・モジュール９１２に提供される。このシリアライザ／デシリアライザ及びパッキング・モジュール９１２は、図１０Ａに更に説明されており、シリアル・リンクが記憶制御ユニット８０２内に配置されるマルチ・ギガビット・トランシーバー（ＭＧＴ）１０１０へ入力されるところを描写している。ＭＧＴ１０１０は、シリアル通信リンクからシリアル・データを受け取り、及び定期的に、受け取られたシリアル・データを並列データに変換する。図１０Ａの実施例に進んで、ＭＧＴ１０１０はシリアル・データを受け取り、及び１５６．２５ＭＨｚで並列３２ビット長のデータを提供する。
【００９０】
図１０Ａの例では、ＭＧＴ１０１０からの３２ビット長の並列データは、２５６ビット長の多重ワード・ディープ先入れ先出し（ＦＩＦＯ）記憶バッファー１０１２に、ＭＧＴ１０１０から受け取られた３２ビット長のデータが２５６ビット長のデータ・ワードにパックされる方式で提供される。このプロセスは図１０Ｂ〜１０Ｄに一般的に図示されている。
【００９１】
図１０Ｂを参照するが、２５６ビット長のＦＩＦＯ記憶装置１０１２が、２５６ビット長のワードＡ１〜Ａ８とパックされるところが模式的に図示されている。２５６ビット長のワードを形成するために、図示されたシステムでＭＧＴ１０１０からの３２ビット長のデータをパックしている方法は以下のものである。第一に、この例ではＡ１である、最初の３２ビット長のワードがＭＧＴ１０１０から受け取られる。その最初の３２ビット長のワードＡ１は、図１０Ｂに反映されているように最初のデータメモリロケーションに記憶される。ＭＧＴ１０１０から、この例ではＡ２である、次の３２ビット長のワードが受け取られて、第二のメモリロケーションに記憶され、第三のワードＡ３が３番目のメモリロケーションに記憶され、図１０Ｂに示されているように、２５６ビット長のワードＡ１〜Ａ８を形成するために８個のワードＡ１〜Ａ８が受け取られ、ＦＩＦＯ１０１２に記憶されるまで、以下同様となる。
【００９２】
２５６ビット長のワードＡ１〜Ａ８が、上述のプロセスで形成され、及びこの例ではＢ１である、別の３２ビット長のワードが、ＭＧＴ１０１０から受け取られると、最初のワードＡ１〜Ａ８は、ＦＩＦＯ１０１２内の別のメモリロケーションにシフト「下げ」され、及び新しく受け取られた３２ビット長のワードは、図１０Ｃに反映されているように、最初のメモリロケーションに記憶される。図１０Ｃに反映されているように、このプロセスは、第二の完全な２５６ビット長のワードＢ１〜Ｂ８が構築されるまで繰り返される。ＭＧＴ１０１０から３２ビットのワードを受け取り、受け取られた３２ビットのワード２５６ビットのワードにパックし、及び２５６ビット長のワードをＦＩＦＯ１０１２を通じてシフトさせるプロセスは、ＦＩＦＯ１０１２内の２５６ビット長のメモリロケーションが、完全に占められるまで継続する。より完全に占められているＦＩＦＯ１０１２の例は、図１０Ｄに図示されている。
【００９３】
スタッキングＦＩＦＯ１０１２の「深さ（ｄｅｐｔｈ）」は実行に応じて変化するが、図９の例、及び１０Ａ〜１０Ｄにおいては、ＦＩＦＯ１０１２は、少なくとも３２個の２５６ビット長ワードの深さである。このことは、この例では、３２個の２５６ビット長のワードのグループが、物理的メモリ空間８０４への、又は物理的メモリ空間８０４からの、データ転送において使用される基本単位であるためである。そのようなものとして、本願では、３２個の２５６ビット長のワードのそれぞれのグループを、基本メモリ周期（Ｂａｓｉｃ  Ｍｅｍｏｒｙ  Ｃｙｃｌｅ：ＢＭＣ）単位と称する。この例では、それぞれのＢＭＣ単位は８個の、１９２データビット（３２ｘ２５６）又は１ＫＢのデータを含む。
【００９４】
図９に戻って、パッキングＦＩＦＯ９１２からのデータは、多重チャンネルＦＩＦＯバッファー９１４に提供されるが、図９では、それらのうちの１つのチャンネルだけが図示されている。図示された例においては、多重チャンネルＦＩＦＯバッファー９１４は２５６ビット長であり、データを２５６ビット／秒の速度でデータを受け取ることができ、及び２７．７ＭＨｚの速度でクロックされている。データは、シリアライザ／デシリアライザ及びパッキング・モジュール９１２から、多重チャンネルＦＩＦＯバッファー９１４に、データの完全なＢＭＣ単位が、３２クロック周期を通じて転送される、バースト転送を用いて提供される。
【００９５】
データの完全なＢＭＣ単位が、シリアライザ／デシリアライザ及びパッキング・モジュール９１２から、多重チャンネルＦＩＦＯバッファー９１４に転送されると、多重チャンネルＦＩＦＯバッファー９１４は、データの完全なＢＭＣ単位を、３２個の連続的な２５６ビットの「ワード」の形態で含むようになる。図示された例においては、多重チャンネルＦＩＦＯバッファー９１４の深さは、それがデータの多重ＢＭＣ単位を記憶することができるようなものである。このことは、多重チャンネルＦＩＦＯバッファー９１４の内容が３つのデータのＢＭＣ単位を含むものとして描写されている（１１４０ａ、１１４０ｂ及び１１４０ｃのブロックにより表されている）図１１に一般的に反映されている。
【００９６】
図９に戻り参照すると、多重チャンネルＦＩＦＯバッファー９１４に記憶されたデータは、３３３ＭＨｚで稼動する２５６ビット長の並列データ・バスを経由してエラー修正及びデータ保護回路９１６に提供される。エラー修正及びデータ保護回路９１６は、受け取られたデータを１つ以上のエラー修正コード（ＥＣＣ）・ビットを導入するために処理し、及びそのデータの破損に対する強化された保護のためにデータを処理する。ＥＣＣ処理の例は、当業者にとって周知であり、及びいかなる適切なＥＣＣ処理機構をも使用できる。加えて、前記エラー修正及びデータ保護回路は、他のデータ保護技法又はチップキル（ＣｈｉｐＫｉｌｌ）などの変換、及び強化されたデータ保護のために通常用いられる技法も実行できる。当業者が理解し得るチップキルは、ＩＢＭにより開発された進化したＥＣＣの形態であり、コンピュータ・メモリ・システムを、いかなる単独のメモリ・チップの不具合からと同時に、単独のメモリ・チップのいかなる部分のマルチビット・エラーからも保護する。チップキルに関する追加的情報は、以下の文献に見出すことができ、これは参照により本願に組み込まれる：Ｔｉｍｏｔｈｙ  Ｊ．  Ｄｅｌｌ，Ａ  Ｗｈｉｔｅ  Ｐａｐｅｒ  ｏｎ  ｔｈｅ  Ｂｅｎｅｆｉｔｓ  ｏｆ・Ｃｈｉｐｋｉｌｌ−Ｃｏｒｒｅｃｔ  ＥＣＣ  ｆｏｒ  ＰＣ  Ｓｅｒｖｅｒ  Ｍａｉｎ  Ｍｅｍｏｒｙ,（１９９７）,ＩＢＭ  Ｍｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｄｉｖｉｓｉｏｎ。
【００９７】
エラー修正及びデータ保護回路９１６の操作の結果として、回路に提供されるそれぞれの２５６ビット“ワード”にビットが加えられ、及び結果として生成する回路の出力は、この実施例ではそれぞれの２５６ビットの入力に対して２８８ビットである。この２８８ビットの出力はＥＣＣ及びデータ保護回路９１６に提供される入力データは、回路９１６により加えられる保護及びＥＣＣビットに対応する。
【００９８】
このデータ保護回路９１６からの２８８ビット長の出力は、２８８ビット長の並列バスを経由して、２つの出力ＦＩＦＯバッファー９１８及び９２０に提供される。この実施例では、この並列バスは、３３３ＭＨｚでクロックされている。データ保護回路からのデータは、ピンポン方式で出力ＦＩＦＯバッファー９１８及び９２０に提供される回路からの第一の２８８ビット“ワード”が出力ＦＩＦＯバッファー（例えば、出力ＦＩＦＯバッファー９１８）の１つに提供され、一方次の２８８ビット“ワード”は、次のクロック周期で出力ＦＩＦＯバッファー（例えば、ＦＩＦＯバッファー９２０）の他の１つに提供される。この方式で、完全なＢＭＣ単位に対応するデータは、データの半分がそれぞれの出力ＦＩＦＯバッファーに存在するように、２つの出力ＦＩＦＯバッファー９１８及び９２０に配置される。この実施例では、それぞれの出力ＦＩＦＯバッファー９１８及び９２０の深さは、それぞれのバッファーが、多重ＢＭＣ単位に対応するデータを保存できるようなものである。
【００９９】
回路９１６から、出力ＦＩＦＯバッファー９１８及び９２０へのデータ移動のこのプロセスは、図１２及び１２Ａに一般的に図示されており、ここでは出力ＦＩＦＯバッファー９１８及び９２０の例示的な内容は、ＢＭＣ単位の移転後が図示されている。この図に反映されているように、例示的なＢＭＣ単位のデータは、両方のバッファーに含まれ、及び完全なＢＭＣ単位を作り上げるデータは、２つの出力ＦＩＦＯバッファー９１８及び９２０の間に「インターリーブ」される。
【０１００】
図９に戻って参照するが、２つの出力ＦＩＦＯバッファー９１８及び９２０からのデータは高速の５７６ビット長の出力メモリ・バッファー９２２に提供される。図９の例では、それぞれのＦＩＦＯ出力バッファー９１８及び９２０は、２８８ビットのデータ及びエラー保護情報を、それぞれのクロック周期で、前記高速出力メモリ・バッファー９２２に提供し、及び前記高速メモリ・バッファー９２２への入力は、この実施例では、３３３ＭＨｚでクロックされている。このスピード及びデータ転送速度では、データ（３２ワード）の完全なＢＭＣ単位は、１６クロック周期に変換される。ここで、１６ワードがＦＩＦＯ出力バッファー９１８及び９２０のそれぞれに記憶され、及び従ってＢＭＣ全体の移転には１６周期が必要である。
【０１０１】
出力ＦＩＦＯバッファー９１８及び９２０と、前記高速出力メモリ・バッファー９２２の間の連結は、出力ＦＩＦＯバッファー９１８及び９２０に記憶されていた、かつて、インターリーブされた（ｉｎｔｅｒｌｅａｖｅｄ）データが、単一の適正に順序付けられた５７６ビットの“スーパー・ワード”を形成するために組み合わされるようなものであり、このスーパー・ワードの中では、前記高速シリアル通信リンク９００を通じてデータがもともと受け取られたときの順序を反映している。
【０１０２】
図９に戻って参照するが、前記高速出力バッファーからのデータは、３３３ＭＨｚ  ＤＤＲでクロックされている２８８ビット長の並列バスを通じて、物理メモリ８０４（図示されていない）に提供される。このＤＤＲクロックは、データを両方のクロック・エッジで移転し、出力メモリ・バッファー９２２からのデータは、効果的に６６７ＭＨｚの速度で移転される。結果として図９の回路のメモリへの効果的なデータ転送速度は２０．８３ＧＢ／ｓｅｃである。
【０１０３】
説明の目的のために、図９の実施例は、この実施例では（図７を参照のこと）シリアル入力７０１である、単独の高速シリアル入力のみとの関連において本システムの操作を図示及び記述している。完全な例示的なシステムにおいては、最大２４個の個別の高速シリアル通信リンクが提供され得る。そのような多重シリアル通信リンクを有するシステムからのデータが、本開示のシステムにより処理される方式は、図１３Ａ〜１３Ｂに反映されている。
【０１０４】
最初に図１３Ａを参照するが、図９との関係で上記で説明されたものに酷似したシステムが図示されている。しかしながら、図１３Ａの例では、例示的な高速入力についての入力ＭＧＴ１０１０及びパッキングＦＩＦＯバッファー１０１２は、入力処理ブロック１３７０を形成するために組み合わされている。加えて、それぞれが対応する入力処理ブロックを有する、１１個の他のシリアル入力１３７１〜１３８１が示されている。これらの入力処理ブロックのそれぞれは、データの完全なＢＭＣ単位を、バーストモード方式で多重チャンネルＦＩＦＯバッファー９１４に提供することを可能にするために、図９及び１０Ａ〜１０Ｄとの関係で上記に記載された回路のように作動する。
【０１０５】
図１３Ａのシステムの設計のために、ピーク作動状態の間には、ＷＲＩＴＥ操作からのデータは、ほとんど常に多重チャンネルＦＩＦＯバッファー９１４に提供され、及び多重チャンネルＦＩＦＯバッファー９１４からのデータは、ほとんど常にエラー修正及びデータ保護回路９１６に提供されるように、このシステムは、データを非常な高速で受け取ることができる。
【０１０６】
しかしながら、図１３Ａのシステムは、好適には、記載されたシステムにより提供される前記高速シリアル通信リンクの半分からのデータを処理する。図１３Ｂに示されるように、この例示的なシステムは、残りの１２個のシリアル通信リンクからのデータを処理し、及びそのデータを第二のエラー修正及びデータ保護回路９１６’に提供する、別の多重チャンネルＦＩＦＯバッファー９１４’を含む、上記に記載されたものと同様の、別の一式の回路を含む。
【０１０７】
図１３Ｂに反映されているように、第二のエラー修正及びデータ保護回路９１６’は、“ピンポン”方式で、その出力を出力ＦＩＦＯバッファー９１８及び９２０に提供する。しかしながら、この例示的なシステムでは、第二のエラー修正及びデータ保護回路９１６’からのデータを移転する手順は、第一のデータ保護回路９１６がデータを出力ＦＩＦＯバッファーの１つ（例えば、出力ＦＩＦＯバッファー９１８）に出力している間、第二のエラー修正及びデータ保護回路９１６’は、データを他の出力ＦＩＦＯバッファー（例えば、出力ＦＩＦＯバッファー９２０）に移転するようなやり方で、第一のエラー修正及びデータ保護回路９１６とは、「位相ずれ（ｏｕｔ−ｏｆ−ｐｈａｓｅ）」で作動する。次のクロック周期の間、この移転は「スイッチ」する。この方式により、それぞれのクロック周期の間に、データは常に両方の出力ＦＩＦＯバッファー９１８及び９２０に送達される。
【０１０８】
異なるＷＲＩＴＥ操作からのデータを不適切に「混合する」ことを防止するために、第一及び第二のエラー修正及びデータ保護回路９１６及び９１６’により提供されたデータは、単一のシリアル通信リンクを通じて受け取られたデータに見えるように再結合できる方式で、好適には、出力ＦＩＦＯバッファー９１８及び９２０へ移転される。これを達成するための１つのアプローチは、図１４Ａ及び１４Ｂに反映されている。
【０１０９】
図１４Ａ及び１４Ｂを参照するが、第一のデータ転送操作の間、第一のエラー修正及びデータ保護回路９１６（例えば、ワード０、ａ０）から移転される準備ができているＢＭＣ単位の第一の偶数のワードは、第一の回路９１６により、第一の回路９１６のために予約されている出力ＦＩＦＯバッファー９１８の一部分に移転される。同時に、第二のエラー修正及びデータ保護回路９１６’から移転される準備のできているＢＭＣ単位の第一の偶数ワード（ワード０、ｂ０）は、第二の回路９１６’からのデータの記憶のために予約されている出力ＦＩＦＯバッファー９２０の一部分に移転される。次のクロック周期の間、第一の回路９１６中のＢＭＣからの第一の奇数ワード（例えば、ワード１、ａ１）は、出力ＦＩＦＯバッファー９２０の予約された空間に記憶され、及びＦＩＦＯ９１６’中のＢＭＣからの第一の偶数ワード（例えば、ワード１、ｂ１）は、出力ＦＩＦＯバッファー９１８内の予約された空間に記憶される。この方法により、最大帯域幅が保持されるように、データは常に出力ＦＩＦＯバッファー９１８及び９２０の両方に移転される。
【０１１０】
代替的な方法では、第二のエラー修正及びデータ保護回路９１６’からのデータの書き込みは、全ての偶数のワードが出力ＦＩＦＯバッファー９１８に記憶され、及び全ての奇数のワードが出力ＦＩＦＯバッファー９２０に記憶できるように、１周期遅らせることができる（図１４Ｃ及び１４Ｄを参照のこと）。
【０１１１】
上記で説明した図９及び他の図に反映されているように、データの受け取り及び処理のための電気回路のために提供することに加え、それが、前記高速シリアル通信チャンネルの１つを通じて、要求されたデータを次いで適切なホストに提供できる入出力インターフェース・モジュールに移転されるように、それぞれのメモリ・カードは、高速のデータ速度でのＲＡＭメモリからのデータの取り出し、及び受け取られたデータを解凍するための同様の構造（本質的に逆順に操作する）を含むことができる。
【０１１２】
図示された例においては、メモリ制御装置８０２を物理ＲＡＭメモリ８０４に連結するデータ及びアドレス回線は、任意の所定の時間に、ＲＥＡＤアクセスのみ、又はＷＲＩＴＥアクセスのみが遂行できるようになっている。従って、最適の成績を提供するためには、図１５に一般的に示されるように、前記制御装置８０２は、何らかの形態の競合制御を行わなければならない。一実施態様では、この競合制御は、前記制御装置８０２内に、それぞれのデータ関連要求に対するコマンド・ヘッダー情報を受け取り、及びその情報を、その要求を提供した前記入出力インターフェース・モジュールに関連付けられたバッファー中に記憶する競合制御モジュール１５０４を組み込むことで達成される。好適な実施態様では、この競合制御モジュール１５０４は、前記制御装置８０２が、入出力インターフェース・モジュール単位で、入出力インターフェース・モジュール上のバッファーされた記憶装置の中で、それぞれの入出力インターフェース・モジュールから受け取られたＲＥＡＤ及びＷＲＩＴＥ要求又はコマンドのリストを保持するように、ＲＥＡＤ操作のための個別のバッファー１５００及び１５０２、並びにＷＲＩＴＥ操作のための個別のバッファー１５０１及び１５０３を保持する。一般にこのリストは、タイム・スタンプ、又は時間順の原理で保持されることができ、及びリストへのそれぞれのエントリーは、入出力インターフェース・モジュールから受け取られたそれぞれのデータ関連要求に関連付けられたコマンド情報、すなわち、ＴＡＲＧＥＴ  ＡＤＤＲＥＳＳ、ワード・カウント（又は移転されるべきデータ量の他の表示）及び移転方向の表示（例えば、それがＲＥＡＤ又はＷＲＩＴＥ操作のいずれであるか）を、含むことができる。
【０１１３】
性能を最適化するために、ＲＥＡＤ及びＷＲＩＴＥ要求は以下のように処理されることができる：
一般に前記競合制御・モジュール１５０４は、ＲＥＡＤ要求を優先し、及び以下で説明する条件が満たされない限り、さまざまな入出力インターフェース・モジュールのために、ＲＥＡＤ要求バッファー中のＲＥＡＤ要求を先着順の原理で処理する。
【０１１４】
もし、競合制御・モジュール１５０４及び前記制御装置８０２が、未処理のＲＥＡＤ要求がないように、全てのＲＥＡＤ要求を処理すると、競合制御・モジュール１５０４及び前記制御装置８０２は、次いでＷＲＩＴＥ要求バッファー中の未処理のＷＲＩＴＥ要求を先着順の原理で処理する。
【０１１５】
多すぎる未処理のＷＲＩＴＥ要求を持つことを避けるため、並びにアドレス待ち時間及び一貫性の問題を助力するために、競合制御・モジュール１５０４及び前記制御装置８０２は、未処理のＷＲＩＴＥ要求の数が特定の閾値数を越えていると決定された場合には、ＷＲＩＴＥ要求を処理する。競合制御・モジュール１５０４は、この閾値を越えている決定を以下のことを考慮して行う：（ｉ）前記入出力インターフェース・モジュールの合計からの全ての未処理のＷＲＩＴＥ要求の合計数；（ｉｉ）所定の入出力インターフェース・モジュールからの未処理ＷＲＩＴＥ要求の合計数；又は（ｉｉｉ）上記のいくつかの組み合わせ。例えば、もし未処理ＷＲＩＴＥ要求の合計数、及び所定の入出力インターフェース・モジュールのためのＷＲＩＴＥ要求の数が考慮される場合、競合制御・モジュール１５０４は、以下のどちらかである場合に、前記制御装置８０２にＷＲＩＴＥ要求を処理させることができる：（ｉ）未処理のＷＲＩＴＥ要求の合計数が第一の閾値を越える（この場合には、未処理のＷＲＩＴＥ要求は先着順の原理で処理される）又は（ｉｉ）所定の入出力インターフェース・モジュールのための未処理のＷＲＩＴＥ要求が第二の閾値を越える場合（第一の閾値よりも低くてよい）、この場合には、競合制御・モジュール１５０４は、前記制御装置８０２に、先着順の原理で、閾値を越えるバッファーに関連付けられる特定の入出力インターフェース・モジュールにＷＲＩＴＥ要求を処理させる。
【０１１６】
更に、競合制御部は、妨害又は絞り（ｔｈｒｏｔｔｌｉｎｇ）なしで、前記入出力インターフェース・モジュールが、データ及びデータ関連要求を、送信し続けることができるように、それがデータ受け取りに関連付けられた出力ＦＩＦＯバッファーの１つの中に記憶されたデータが、出力ＦＩＦＯバッファーの記憶能力の１／２を超える量などの特定の限界を越えたと判断した場合は、ＷＲＩＴＥ要求を処理でき、この場合にはそのＷＲＩＴＥ要求に関連付けられた出力ＦＩＦＯバッファーが、処理される。
【０１１７】
上述のことに加えて、競合制御・モジュール１５０４は、データの一貫性が維持されるようにどのようにＲＥＡＤ及びＷＲＩＴＥ要求が処理されるかを制御することもできる。例えば、未処理のＲＥＡＤ要求が特定のアドレスに向けられること、及び時間的に早い未処理のＷＲＩＴＥ要求があることが決定される場合、競合制御・モジュール１５０４は、適切なデータを、ＷＲＩＴＥ要求への応答を確実に返すために、前記制御装置８０２に未処理のＷＲＩＴＥ要求を処理させることができる。
【０１１８】
メモリ・チップ・アクセス
メモリ制御装置８０２が物理ＲＡＭメモリへ、又は物理ＲＡＭメモリからデータを移転するために使用できるさまざまなアプローチ及び方法がある。一実施態様では、前記制御装置８０２は、競合制御・モジュール１５０４からコマンド情報をデータ転送のタイミングを制御する開始インジケーターとともに受け取るＤＤＲ３メモリ制御モジュールとして機能するか、又はＤＤＲ３メモリ制御モジュールを含むことができる。一般に競合制御・モジュール１５０４から提供されるこのコマンド情報は、以下のものを含むことができる：競合制御の目的で用いられるバッファーに記憶された同じ情報、すなわち、ターゲット・アドレス、及びより具体的には、移転のための開始アドレス；移転されるべきデータの量の識別子、これはワード・カウントであってよい；及び移転方向。メモリ制御モジュールとして作用する前記制御装置８０２は、次いで、ＴＡＲＧＥＴ  ＡＤＤＲＥＳＳ（開始アドレス）により指示されたときに、適切なメモリ・チップを活性化する。
【０１１９】
移転の方向がメモリへのＷＲＩＴＥを示す場合、前記制御装置８０２は、出力メモリ・バッファー９２２からのデータを転移する一方、メモリ・チップへのコマンド（例えば、タイミング及びアドレスコマンド）の発行を調整する。
【０１２０】
移転の方向がＲＡＭメモリへのＲＥＡＤを示す場合、前記制御装置８０２は、メモリ・チップからのデータを、データが向けられる前記入出力インターフェース・モジュールに関連付けられた出力ＦＩＦＯバッファーに転移する一方、適切なアドレス及びタイミング・コマンドのメモリ・チップへの発行を調整する。
【０１２１】
１つの実施例では、前記制御装置８０２は、以前のコマンドに関連付けられたデータ転送が完了する前に、次のコマンド情報のセットを受け取り、従ってシステムが最大の帯域で作動することを可能にする。
【０１２２】
物理ＲＡＭメモリへの、又は物理ＲＡＭからの、データ移転を制御する時の前記制御装置８０２の概略の作動は、図１６及び１７に一般的に反映されている。
【０１２３】
最初に図１６を参照するが、前記物理ＲＡＭメモリの１つの特定の配置が示されている。図１６の実施態様では、制御装置８０２が図示され、及び前記制御装置８０２及び物理ＲＡＭメモリの間の接続が示されている。この例では、前記制御装置８０２に連結された物理ＲＡＭメモリは、４つのセクション（１６０２、１６０４、１６０６、及び１６０８）に分割された７２個のメモリ・チップの形態をとり、それぞれのセクションが１８個のメモリ・チップを有する。この例では、それぞれのメモリ・チップが、４つのバンク（Ａ、Ｂ、Ｃ、Ｄ）を有する。メモリ・チップは、それらが以下のものを共有するように連結される：（ａ）アドレス及び制御回線（この実施例では２２）、及び（ｂ）データ回線（この実施例では７２）。図１６に示される連結は物理メモリ・チップを制御装置８０２に接続するただ１つの方法である。４つのセクションの全ては、個別の制御バスを持つにもかかわらず、調和して作動し、及び同時に同じバンクに対してコマンドが発行される。
【０１２４】
メモリ制御装置８０２の操作に関する追加的な詳細は、図１７に見出すことができる。図１７は、２つの基本メモリ周期（ここでは第二の基本メモリ周期は未完成として示されている）を通じた前記制御装置８０２の操作を図示している。一般にそれぞれのメモリ周期は３２個の２８８ビットのワードのＤＤＲメモリへの（又は、ＤＤＲメモリからの）移転を含む。この特定の実施例では、この移転は、１６の実際のクロック周期を通じて起きる。３３３ＭＨｚでは、これは、それぞれのメモリ・カードに対して、４８ｎｓごとに１Ｋバイトのデータ、又は２０．８３Ｇバイト／秒（データ単独）の移転速度を提供する。図７に反映されているシステムが、多数のメモリ・カードを持つことができることを考慮すると、システムの合計の帯域幅は２０．８３Ｇバイト／秒よりも顕著に高くなることができ、及び５個以上のメモリ・カードが用いられる場合には、１００Ｇバイト／秒を超えることができる。
【０１２５】
図１７を参照するが、コマンド・バスを通じてそれぞれのセクションに付随するメモリのバンクＡを活性化することにより、基本メモリ周期が開始される。これは、図１７の例ではクロック周期１で起きる。４クロック周期後の、クロック周期５では、活性化コマンドが、バンクＢに提供される。４周期後の、クロック周期９では、バンクＣが活性化され、及びそれより４周期後の、クロック周期１３では、バンクＤが活性化される。さまざまなバンクを選択的に活性化するこのアプローチは、バンクＡは、バンクＡに対する次の活性化（ａｃｔｉｖａｔｅ）コマンドが発行される周期６及び１９の間にプレチャージされるために、いかなる物理的プレチャージ時間（ｐｒｅｃｈａｒｇｅ  ｔｉｍｅ）に違反しないことを可能にする。
【０１２６】
さまざまなバンクのそれぞれに対して、バンクが活性化された５周期後に、データ転送が、ＲＥＡＤであるか、又はＷＲＩＴＥであるかを示すコマンドがその特定のバンクにアサートされる。従って、これは、バンクＡに対してはクロック周期６で、バンクＢに対してはクロック周期１０で、バンクＣに対してはクロック周期１４で、及びバンクＤに対してはクロック周期１８で起きる。
【０１２７】
移転がＲＥＡＤであるか、又はＷＲＩＴＥであるかの指示の供給の５クロック周期後に、４つの連続周期の間、データがデータ回線に提供される。ダブルデータレート（ＤＤＲ）でデータが移転されるために、それぞれのメモリクロック周期の間に２ワードが移転される。従ってそれぞれのバンクについて、基本メモリ周期全体にわたって８個の２８８ビットのワードのデータが移転される（図１７中のデータ・バスに対する表記であるＷ０は、２つの２８８ビットのワードを包含する）。
【０１２８】
説明されている基本メモリ周期の間のデータ転送のコースの間に、クロック周期１９でのバンクＡに対する活性化コマンドのアサーションにより、次のメモリ周期に対する基本メモリ周期が開始される。次の基本メモリ周期の残りは、第一の基本メモリ周期に関して上記で以前に記述したことに従う。
【０１２９】
上記が示すように、完全な１キロバイトのデータが、基本メモリ周期ごとに移転される。一実施態様では、このシステムは、５１２バイトだけが移転される「ハーフライト」周期を提供できる。そのような半選択書き込み周期では、２つだけの連続したバンクの活性化がアサートされる（例えば、バンクＡ及びＢ、又はバンクＣ及びＤ）。その他のバンクは、周期の間、アイドル状態にとどまる。移転についてのＴＡＲＧＥＴ  ＡＤＤＲＥＳＳは、移転のために４つのバンクの内のどの２つを活性化するかを決定する。
【０１３０】
上記の実施態様は説明的であり、及び限定的ではない。上述された本発明の１つ以上の態様を用いる、他の及び更なる開示される実施態様の趣旨を逸脱することなく、他の更なる実施態様を考案することができる。更に、本明細書に記載されたステップの順序は、特別に限定される場合を除き、さまざまな配列で起こることができる。本明細書に記載されたさまざまなステップは、他のステップと組み合わせること、公表されたステップの間に差し挟むこと、及び／又は複数のステップに分割することができる。同様に、素子は機能的に記載されており、及び個別の構成要素として具体化することができ、又は複数の機能を有する構成要素に組み合わせることができる。
【０１３１】
開示されている実施態様は、好適な他の実施態様との関連で記載され、全ての実施態様は記載されていない。記載されている実施態様への明白な修正、及び変形は、当業者には利用可能である。開示されている、及び開示されていない実施態様は、本出願人により着想された、本発明の範囲及び適用性を限定、又は制限することを意図していない。本出願人は、以下の特許請求の範囲又は等価物の範囲内に含まれる、そのような修正及び改良の全てを完全に保護することを意図している。
【図１】
0005872560.tif 000002
【図１Ａ】
0005872560.tif 000003
【図１Ｂ】
0005872560.tif 000004
【図１Ｃ】
0005872560.tif 000005
【図２】
0005872560.tif 000006
【図３】
0005872560.tif 000007
【図４】
0005872560.tif 000008
【図５】
0005872560.tif 000009
【図６】
0005872560.tif 000010
【図７】
0005872560.tif 000011
【図８】
0005872560.tif 000012
【図９】
0005872560.tif 000013
【図１０Ａ】
0005872560.tif 000014
【図１０Ｂ】
0005872560.tif 000015
【図１０Ｃ】
0005872560.tif 000016
【図１０Ｄ】
0005872560.tif 000017
【図１１】
0005872560.tif 000018
【図１２】
0005872560.tif 000019
【図１２Ａ】
0005872560.tif 000020
【図１３Ａ】
0005872560.tif 000021
【図１３Ｂ】
0005872560.tif 000022
【図１４Ａ】
0005872560.tif 000023
【図１４Ｂ】
0005872560.tif 000024
【図１４Ｃ】
0005872560.tif 000025
【図１４Ｄ】
0005872560.tif 000026
【図１５】
0005872560.tif 000027
【図１６】
0005872560.tif 000028
【図１７】
0005872560.tif 000029