(57)【特許請求の範囲】
【請求項１】
複数のメモリデバイスと、メモリハブと、を備えたメモリモジュールであって、
該メモリハブは、
該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を受信するリンクインターフェースと、
該メモリデバイスに結合されたメモリデバイスインターフェースであって、該リンクインターフェースから転送されたメモリ要求を受信し、かつ、該メモリデバイスの少なくとも１つに、該メモリデバイスの該少なくとも１つにおけるメモリセルのロウへのアクセスのための前記受信したメモリ要求を結合するように動作可能であり、かつ、該メモリ要求の少なくとも１つに応答してリードデータを受信するように動作可能である、メモリデバイスインターフェースと、
該メモリデバイスインターフェースに結合されたロウキャッシュメモリであって、該メモリデバイスインターフェースから該メモリデバイスの該少なくとも１つに結合された該メモリ要求に応答してアクセスされている該メモリセルのロウからのリードデータを受信して格納する、ロウキャッシュメモリと、
該リンクインターフェースと、該メモリデバイスインターフェースと、該ロウキャッシュメモリとに結合されたシーケンサであって、該シーケンサは、前記アクセスされているメモリセルのロウにおける未だ読み出されていない残り全てのカラムのメモリセルからデータを読み出すためのメモリ要求を生成して該メモリデバイスインターフェースに結合するように動作可能であり、該シーケンサによって生成されたメモリ要求に応答して該メモリセルから読み出されたリードデータの少なくとも一部は該ロウキャッシュメモリに格納され、該シーケンサは、該リンクインターフェースによって受信されたメモリ要求が該メモリデバイスインターフェースに転送されていない時だけ、該シーケンサによって生成されたメモリ要求を該メモリデバイスインターフェースに結合するよう動作可能である、シーケンサと、
を備えた、メモリモジュール。
【請求項２】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスの少なくとも１つに転送するように動作可能である、請求項１に記載のメモリモジュール。
【請求項３】
前記リンクインターフェースはファーストイン・ファーストアウトバッファを備え、該ファーストイン・ファーストアウトバッファは、メモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスインターフェースに転送するように動作可能である、請求項１に記載のメモリモジュール。
【請求項４】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスの少なくとも１つに転送するように動作可能である、請求項３に記載のメモリモジュール。
【請求項５】
前記リンクインターフェースは、光入力／出力ポートを備えた、請求項１に記載のメモリモジュール。
【請求項６】
前記メモリデバイスは、ダイナミックＲＡＭデバイスを備えた、請求項１に記載のメモリモジュール。
【請求項７】
前記シーケンサは、前記リンクインターフェースから受信された各リードメモリ要求に含まれるアドレスを出力するように動作可能であり、前記ロウキャッシュメモリは、該シーケンサから該アドレスを受信して、該メモリ要求によって要求されたデータが、該ロウキャッシャメモリに格納されているかどうかを決定するように動作可能であり、該ロウキャッシュメモリは、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されているとき、該格納されているリードデータを出力すると共にヒット信号を生成し、また、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されていないとき、ミス信号を生成する、請求項１に記載のメモリモジュール。
【請求項８】
前記ロウキャッシュメモリおよび前記メモリデバイスインターフェースに結合されたデータ入力と、前記リンクインターフェースに結合されたデータ出力と、該ロウキャッシュメモリから前記ヒット信号およびミス信号を受信するよう結合された制御入力とを有するマルチプレクサをさらに備えており、該マルチプレクサは、該ミス信号に応答して、該メモリデバイスインターフェースからのリードデータを結合し、該ヒット信号に応答して、該ロウキャッシュメモリからのリードデータを結合する、請求項７に記載のメモリモジュール。
【請求項９】
複数のメモリデバイスと、メモリハブと、を備えたメモリモジュールであって、
該メモリハブは、
該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を受信するリンクインターフェースと、
該メモリデバイスに結合されたメモリデバイスインターフェースであって、該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を該メモリデバイスに結合するように動作可能であり、かつ、該メモリ要求の少なくともいくつかに応答してリードデータを受信するように動作可能であり、該メモリ要求の少なくともいくつかは、該リンクインターフェースから該メモリデバイスインターフェースに転送されたメモリ要求に応答して、該メモリデバイスに結合される、メモリデバイスインターフェースと、
該リンクインターフェースおよび該メモリデバイスインターフェースに結合されたシーケンサであって、該シーケンサは、該リンクインターフェースから受信された各リードメモリ要求を該メモリデバイスインターフェースに出力するように動作可能であり、該シーケンサは、更に、前記アクセスされているメモリセルのロウにおける未だ読み出されていない残り全てのカラムのメモリセルからデータを読み出すためのリードメモリ要求を生成して該メモリデバイスインターフェースに出力するように動作可能であり、該シーケンサによって生成されたリードメモリ要求は、該リンクインターフェースから受信されたメモリ要求が該メモリデバイスインターフェースに出力されていない時だけ、該メモリデバイスインターフェースに結合される、シーケンサと、
該メモリデバイスインターフェースに結合されたロウキャッシュメモリであって、該メモリデバイスインターフェースから該メモリデバイスの少なくとも１つに結合された該メモリ要求の１つに応答してアクセスされているメモリセルのロウからのリードデータを受信して格納するロウキャッシュメモリであって、該ロウキャッシュメモリは、該シーケンサによって生成されたメモリ要求に応答して該メモリセルから読み出されたリードデータの少なくとも一部を格納するよう動作可能であり、さらに、該メモリ要求によって要求されたデータが該ロウキャッシャメモリに格納されているかどうかを決定するために、該シーケンサからアドレスを受信するよう動作可能であり、該ロウキャッシュメモリは、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されているとき、該格納されているリードデータを出力すると共にヒット信号を生成し、また、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されていないとき、ミス信号を生成する、ロウキャッシュメモリと、
該ロウキャッシュメモリおよび該メモリデバイスインターフェースに結合されたデータ入力と、該リンクインターフェースに結合されたデータ出力と、該ロウキャッシュメモリから該ヒット信号およびミス信号を受信するように結合された制御入力とを有するマルチプレクサであって、該ミス信号に応答して、該メモリデバイスインターフェースからのリードデータを結合し、該ヒット信号に応答して、該ロウキャッシュメモリからのリードデータを結合する、マルチプレクサと、
を備えた、メモリモジュール。
【請求項１０】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスの少なくとも１つに転送するように動作可能である、請求項９に記載のメモリモジュール。
【請求項１１】
前記リンクインターフェースはファーストイン・ファーストアウトバッファを備え、該ファーストイン・ファーストアウトバッファは、メモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスインターフェースに転送するように動作可能である、請求項９に記載のメモリモジュール。
【請求項１２】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスの少なくとも１つに転送するように動作可能である、請求項１１に記載のメモリモジュール。
【請求項１３】
前記リンクインターフェースは、光入力／出力ポートを備えた、請求項９に記載のメモリモジュール。
【請求項１４】
前記メモリデバイスは、ダイナミックＲＡＭデバイスを備えた、請求項９に記載のメモリモジュール。
【請求項１５】
メモリ要求を受信するリンクインターフェースであって、該メモリ要求の少なくともいくつかはロウアドレスを含む、リンクインターフェースと、
メモリ要求を出力するように動作可能であり、かつ、該メモリ要求の少なくともいくつかに応答してリードデータを受信するように動作可能なメモリデバイスインターフェースであって、該メモリ要求の少なくともいくつかは、該リンクインターフェースから該メモリデバイスインターフェースに転送されたメモリ要求に応答して、該メモリデバイスインターフェースによって出力される、メモリデバイスインターフェースと、
該メモリデバイスインターフェースに結合されたロウキャッシュメモリであって、該メモリデバイスインターフェースから出力された該メモリ要求の少なくとも１つに応答して、該メモリデバイスインターフェースからリードデータを受信して格納する、ロウキャッシュメモリと、
該リンクインターフェースと、該メモリデバイスインターフェースと、該ロウキャッシュメモリとに結合されたシーケンサであって、該シーケンサは、該リンクインターフェースから該メモリデバイスインターフェースに転送されたメモリ要求に応答して、データを読み出すためのメモリ要求を該メモリデバイスインターフェースに結合するように動作可能であり、該シーケンサは更に、前記アクセスされているメモリセルのロウにおける未だ読み出されていない残り全てのカラムのメモリセルからデータを読み出すためのメモリ要求を生成して該メモリデバイスインターフェースに結合するように動作可能であり、該シーケンサは更に、該リンクインターフェースから受信したメモリ要求が該メモリデバイスインターフェースに結合されていない時だけ、該シーケンサによって生成されたメモリ要求を該メモリデバイスインターフェースに結合するように動作可能であり、該シーケンサからのメモリ要求に応答して読み出されて受信されたリードデータは、該ロウキャッシュメモリに格納される、シーケンサと、
を備えた、メモリハブ。
【請求項１６】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で出力するように動作可能である、請求項１５に記載のメモリハブ。
【請求項１７】
前記リンクインターフェースはファーストイン・ファーストアウトバッファを備え、該ファーストイン・ファーストアウトバッファは、メモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で該メモリデバイスインターフェースに転送するように動作可能である、請求項１５に記載のメモリハブ。
【請求項１８】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で出力するように動作可能である、請求項１７に記載のメモリハブ。
【請求項１９】
前記リンクインターフェースは、光入力／出力ポートを備えた、請求項１５に記載のメモリハブ。
【請求項２０】
前記シーケンサは、前記リンクインターフェースから受信された各リードメモリ要求に含まれるアドレスを出力するように動作可能であり、前記ロウキャッシュメモリは、該シーケンサから該アドレスを受信して、該メモリ要求によって要求されたデータが、該ロウキャッシャメモリに格納されているかどうかを決定するように動作可能であり、該ロウキャッシュメモリは、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されているとき、該格納されているリードデータを出力すると共にヒット信号を生成し、また、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されていないとき、ミス信号を生成する、請求項１５に記載のメモリハブ。
【請求項２１】
前記ロウキャッシュメモリおよび前記メモリデバイスインターフェースに結合されたデータ入力と、前記リンクインターフェースに結合されたデータ出力と、該ロウキャッシュメモリから前記ヒット信号およびミス信号を受信するよう結合された制御入力とを有するマルチプレクサをさらに備えており、該マルチプレクサは、該ミス信号に応答して、該メモリデバイスインターフェースからのリードデータを結合し、該ヒット信号に応答して、該ロウキャッシュメモリからのリードデータを結合する、請求項２０に記載のメモリハブ。
【請求項２２】
中央演算処理装置（ＣＰＵ）と、
該ＣＰＵに結合されているシステムコントローラであって、入力ポートおよび出力ポートを有するシステムコントローラと、
該システムコントローラを介して該ＣＰＵに結合されている入力デバイスと、
該システムコントローラを介して該ＣＰＵに結合されている出力デバイスと、
該システムコントローラを介して該ＣＰＵに結合されている格納デバイスと、
複数のメモリモジュールであって、該複数のメモリモジュールのそれぞれが、複数のメモリデバイスと、メモリハブと、を備えた、複数のメモリモジュールと、
該システムコントローラの該出力ポートを該メモリモジュールのそれぞれにおける該メモリハブの入力ポートに結合し、該システムコントローラの該入力ポートを該メモリモジュールのそれぞれにおける該メモリハブの出力ポートに結合する通信リンクと、
を備えたコンピュータシステムであって、
該メモリハブは、
入力ポートおよび出力ポートを有するリンクインターフェースであって、該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を該入力ポートを介して受信し、該メモリ要求に応答して、該出力ポートを介してデータを出力する、リンクインターフェースと、
該メモリデバイスに結合されたメモリデバイスインターフェースであって、該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を該メモリデバイスに結合するように動作可能であり、かつ、該メモリ要求の少なくともいくつかに応答してリードデータを受信するように動作可能であり、該メモリ要求の少なくともいくつかは、該リンクインターフェースから該メモリデバイスインターフェースに転送されたメモリ要求に応答して、該メモリデバイスに結合される、メモリデバイスインターフェースと、
該メモリデバイスインターフェースに結合されたロウキャッシュメモリであって、該メモリデバイスインターフェースから該メモリデバイスの少なくとも１つに結合された該メモリ要求の少なくとも１つに応答してアクセスされているメモリセルのロウからのリードデータを受信して格納する、ロウキャッシュメモリと、
該リンクインターフェースと、該メモリデバイスインターフェースと、該ロウキャッシュメモリとに結合されたシーケンサであって、該シーケンサは、該リンクインターフェースから該メモリデバイスインターフェースに転送されたメモリ要求に応答して、データを読み出すためのメモリ要求を該メモリデバイスインターフェースに結合可能であり、該シーケンサは更に、該リンクインターフェースから転送されたメモリ要求が該メモリデバイスインターフェースに結合されていない時だけ、前記アクセスされているメモリセルのロウにおける未だ読み出されていない残り全てのカラムのメモリセルからデータを読み出すためのメモリ要求を生成して該メモリデバイスインターフェースに結合するように動作可能であり、前記アクセスされているメモリセルの該ロウにおける該メモリセルから読み出された該リードデータは、該ロウキャッシュメモリに格納される、シーケンサと、
を備えた、コンピュータシステム。
【請求項２３】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスの少なくとも１つに転送するように動作可能である、請求項２２に記載のコンピュータシステム。
【請求項２４】
前記リンクインターフェースはファーストイン・ファーストアウトバッファを備え、該ファーストイン・ファーストアウトバッファは、メモリ要求を受信して格納し、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスインターフェースに転送するように動作可能である、請求項２２に記載のコンピュータシステム。
【請求項２５】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で前記メモリデバイスの少なくとも１つに転送するように動作可能である、請求項２４に記載のコンピュータシステム。
【請求項２６】
前記メモリデバイスは、ダイナミックＲＡＭデバイスを備えた、請求項２２に記載のコンピュータシステム。
【請求項２７】
前記シーケンサは、前記リンクインターフェースから受信された各リードメモリ要求に含まれるアドレスを出力するように動作可能であり、前記ロウキャッシュメモリは、該シーケンサから該アドレスを受信して、該メモリ要求によって要求されたデータが、該ロウキャッシャメモリに格納されているかどうかを決定するように動作可能であり、該ロウキャッシュメモリは、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されているとき、該格納されているリードデータを出力すると共にヒット信号を生成し、また、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されていないとき、ミス信号を生成する、請求項２２に記載のコンピュータシステム。
【請求項２８】
前記ロウキャッシュメモリおよび前記メモリデバイスインターフェースに結合されたデータ入力と、前記リンクインターフェースに結合されたデータ出力と、該ロウキャッシュメモリから前記ヒット信号およびミス信号を受信するよう結合された制御入力とを有するマルチプレクサをさらに備えており、該マルチプレクサは、該ミス信号に応答して、該メモリデバイスインターフェースからのリードデータを結合し、該ヒット信号に応答して、該ロウキャッシュメモリからのリードデータを結合する、請求項２７に記載のコンピュータシステム。
【請求項２９】
前記システムコントローラの前記入力および出力ポートは、前記通信リンクに結合された一体の入力・出力ポートを備え、前記メモリハブのそれぞれの該入力および出力ポートは、該通信リンクに結合された一体の入力・出力ポートを備えた、請求項２２に記載のコンピュータシステム。
【請求項３０】
前記通信リンクは、光通信リンクを備え、前記システムコントローラの前記入力および出力ポートは、該光通信リンクに結合された光入力・出力ポートを備え、前記メモリハブのそれぞれの該入力および出力ポートは、該光通信リンクに結合されたそれぞれの入力・出力ポートを備えた、請求項２９に記載のコンピュータシステム。
【請求項３１】
中央演算処理装置（ＣＰＵ）と、
該ＣＰＵに結合されているシステムコントローラであって、入力ポートと出力ポートを有するシステムコントローラと、
該システムコントローラを介して該ＣＰＵに結合されている入力デバイスと、
該システムコントローラを介して該ＣＰＵに結合されている出力デバイスと、
該システムコントローラを介して該ＣＰＵに結合されている格納デバイスと、
複数のメモリモジュールであって、該複数のメモリモジュールのそれぞれが、複数のメモリデバイスと、メモリハブと、を備えた、複数のメモリモジュールと、
該システムコントローラの該出力ポートを該メモリモジュールのそれぞれにおける該メモリハブの入力ポートに結合し、該システムコントローラの該入力ポートを該メモリモジュールのそれぞれにおける該メモリハブの出力ポートに結合する通信リンクと、
を備えたコンピュータシステムであって、
該メモリハブは、
該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を受信するリンクインターフェースと、
該メモリデバイスに結合されたメモリデバイスインターフェースであって、該メモリデバイスの少なくとも１つにおけるメモリセルのロウへのアクセスのためのメモリ要求を該メモリデバイスに結合するように動作可能であり、かつ、該メモリ要求の少なくともいくつかに応答してリードデータを受信するように動作可能であり、該メモリ要求の少なくともいくつかは、該リンクインターフェースから該メモリデバイスインターフェースに転送されたメモリ要求に応答して、該メモリデバイスに結合される、メモリデバイスインターフェースと、
該リンクインターフェースおよび該メモリデバイスインターフェースに結合されたシーケンサであって、該シーケンサは、該リンクインターフェースから受信された各リードメモリ要求を該メモリデバイスインターフェースに出力するように動作可能であり、該シーケンサは更に、アクセスされているメモリセルのロウにおける未だ読み出されていない残り全てのカラムのメモリセルからデータを読み出すためのリードメモリ要求を生成して該メモリデバイスインターフェースに出力するように動作可能であり、該シーケンサによって生成された該リードメモリ要求は、該リンクインターフェースから受信されたメモリ要求が該メモリデバイスインターフェースに出力されていない時だけ、該メモリデバイスインターフェースに結合されるよう動作可能である、シーケンサと、
該メモリデバイスインターフェースに結合されたロウキャッシュメモリであって、該メモリデバイスインターフェースから該メモリデバイスの少なくとも１つに結合された該メモリ要求の１つに応答してアクセスされているメモリセルのロウからのリードデータを受信して格納するロウキャッシュメモリであって、該ロウキャッシュメモリは更に、該シーケンサによって生成されたメモリ要求に応答して該メモリセルから読み出されたリードデータの少なくとも一部を格納するよう動作可能であり、該ロウキャッシュメモリは更に、該メモリ要求によって要求されたデータが、該ロウキャッシャメモリに格納されているかどうかを決定するために、該シーケンサからアドレスを受信するよう動作可能であり、該ロウキャッシュメモリは、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されているとき、該格納されているリードデータを出力すると共にヒット信号を生成し、また、該メモリ要求によって要求された該データが該ロウキャッシュメモリに格納されていないとき、ミス信号を生成する、ロウキャッシュメモリと、
該ロウキャッシュメモリおよび該メモリデバイスインターフェースに結合されたデータ入力と、該リンクインターフェースに結合されたデータ出力と、該ロウキャッシュメモリから該ヒット信号およびミス信号を受信するように結合された制御入力とを有するマルチプレクサであって、該ミス信号に応答して、該メモリデバイスインターフェースからのリードデータを結合し、該ヒット信号に応答して、該ロウキャッシュメモリからのリードデータを結合する、マルチプレクサと、
を備えた、コンピュータシステム。
【請求項３２】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で該メモリデバイスの少なくとも１つに転送するように動作可能である、請求項３１に記載のコンピュータシステム。
【請求項３３】
前記リンクインターフェースはファーストイン・ファーストアウトバッファを備え、該ファーストイン・ファーストアウトバッファは、メモリ要求を受信して格納するように動作可能であり、かつ、該格納されているメモリ要求を、該メモリ要求の受信された順序で該メモリデバイスインターフェースに転送するように動作可能である、請求項３１に記載のコンピュータシステム。
【請求項３４】
前記メモリデバイスインターフェースはファーストイン・ファーストアウトバッファをさらに備え、該ファーストイン・ファーストアウトバッファは、前記シーケンサからのメモリ要求を受信して格納するように動作可能であり、かつ、該格納されたメモリ要求を、該メモリ要求の受信された順序で該メモリデバイスの少なくとも１つに転送するように動作可能である、請求項３３に記載のコンピュータシステム。
【請求項３５】
前記リンクインターフェースは、光入力／出力ポートを備えた、請求項３１に記載のコンピュータシステム。
【請求項３６】
前記メモリデバイスは、ダイナミックＲＡＭデバイスを備えた、請求項３１に記載のコンピュータシステム。
【請求項３７】
前記システムコントローラの前記入力および出力ポートは、前記通信リンクに結合された一体の入力・出力ポートを備え、前記メモリハブのそれぞれの該入力および出力ポートは、該通信リンクに結合された一体の入力・出力ポートを備えた、請求項３１に記載のコンピュータシステム。
【請求項３８】
前記通信リンクは、光通信リンクを備え、前記システムコントローラの前記入力および出力ポートは、該光通信リンクに結合された光入力・出力ポートを備え、前記メモリハブのそれぞれの該入力および出力ポートは、該光通信リンクに結合されたそれぞれの入力・出力ポートを備えた、請求項３７に記載のコンピュータシステム。
【請求項３９】
複数のメモリモジュールに結合されたコントローラを用いて、該複数のメモリモジュールのそれぞれにおけるデータを読み出す方法であって、
該複数のメモリモジュールのうちの第１のモジュールによって該コントローラからメモリ要求を受信することであって、該メモリ要求の少なくとも１つは、該第１のメモリモジュールに含まれる複数のメモリデバイスにおける少なくとも１つのメモリデバイスのメモリセルのロウにおけるメモリセルにアクセスするための要求である、ことと、
該第１のメモリモジュールにおける該少なくとも１つのメモリデバイスに、該受信されたメモリ要求を結合することと、
該少なくとも１つのメモリデバイスのメモリセルのロウにおけるメモリセルにアクセスするための該要求に応答してアクセスされているメモリセルの該ロウにおける未だ読み出されていない残り全てのカラムのメモリセルからデータを読み出すための要求を生成することであって、該要求は、該コントローラからのメモリ要求が該少なくとも１つのメモリデバイスに結合されていないとき、生成される、ことと、
該少なくとも１つのメモリデバイスに、該生成されたメモリ要求を結合することと、
受信されたメモリ要求と、該生成されたメモリ要求とに応答して、該第１のメモリモジュール内のロウキャッシュメモリにリードデータを格納することと、
を包含する方法。
【請求項４０】
前記第１のメモリモジュールからのデータを読み出すための前記コントローラからのメモリ要求に応答して、
前記ロウキャッシュメモリに前記リードデータが格納されているかどうかを決定することと、
該リードデータが該ロウキャッシュメモリに格納されているとき、該ロウキャッシュメモリから該コントローラに前記要求されたリードデータを転送することと、
該リードデータが該ロウキャッシュメモリに格納されていないとき、該少なくとも１つのメモリデバイスから該コントローラに該要求されたリードデータを転送することと、
をさらに包含する、請求項３９に記載の方法。
【請求項４１】
前記複数のメモリモジュールのうちの前記第１のモジュールによって前記コントローラからメモリ要求を受信する動作は、該受信されたメモリ要求に対応する光信号を受信することを包含する、請求項３９に記載の方法。
【請求項４２】
前記第１のメモリモジュールに含まれる前記メモリデバイスは、ダイナミックＲＡＭデバイスを包含する、請求項３９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、詳細には、プロセッサもしくは他のメモリアクセスデバイスに数個のメモリデバイスを結合するメモリハブを有するコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムは、ダイナミックＲＡＭ（「ＤＲＡＭ」）デバイスといったメモリデバイスを用いて、プロセッサによってアクセスされる命令およびデータを格納する。これらのメモリデバイスは、通常、コンピュータシステムにおいてシステムメモリとして用いられる。典型的なコンピュータシステムにおいて、プロセッサは、プロセッサバスおよびメモリコントローラを介してシステムメモリと通信する。プロセッサは、リードコマンドといったメモリコマンドとデータもしくは命令が読み取られるべき場所を指し示すアドレスとを含むメモリ要求を出す。メモリコントローラは、コマンドおよびアドレスを用いて、適切なコマンド信号とともにロウアドレスおよびカラムアドレスを生成する。これらの信号およびアドレスは、システムメモリに供給される。コマンドおよびアドレスを受けて、データは、システムメモリとプロセッサとの間で転送される。メモリコントローラは、しばしばシステムコントローラの一部である。システムコントローラは、またＰＣＩバスといった拡張バスにプロセッサバスを結合するバスブリッジ回路を含む。
【０００３】
メモリデバイスの動作速度は、継続的に増加したが、動作速度におけるこの増加は、プロセッサの動作速度における増加のペースについていっていなかった。メモリデバイスにプロセッサを結合するメモリコントローラの動作速度における増加がさらにスローになった。メモリコントローラおよびメモリデバイスのこのかなりの低速度は、プロセッサとメモリデバイスとの間のデータ帯域幅を制限する。
【０００４】
プロセッサとメモリデバイスとの間のこの制限された帯域幅に加えて、コンピュータシステムの性能は、またシステムメモリデバイスからデータを読み出すために必要とされる時間を増加する待ち時間の問題によって制限される。詳細には、メモリデバイスリードコマンドは、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）デバイスといったシステムメモリデバイスに結合されているとき、リードデータは、数回のクロック期間の遅延の後にだけＳＤＲＡＭデバイスから出力される。従って、ＳＤＲＡＭデバイスが、高いデータ率でバーストデータを同調して出力するが、データを最初に提供することにおけるこの遅延は、このようなＳＤＲＡＭデバイスを用いるコンピュータシステムの動作速度を著しくスローにし得る。
【０００５】
メモリの待ち時間の問題を軽減する１つのアプローチは、メモリハブを介してプロセッサに結合されている複数のメモリデバイスを用いることである。メモリハブのアーキテクチャにおいて、システムコントローラもしくはメモリコントローラは、数個のメモリデバイスに結合される。メモリモジュールのそれぞれは、数個のメモリデバイスに結合されているメモリハブを含む。メモリハブは、コントローラとメモリデバイスとの間のメモリ要求および応答を効率的にルーティングする。このアーキテクチャを利用するコンピュータシステムは、より高い帯域幅を有し得る。なぜなら、１つのメモリデバイスが前のメモリアクセスに応答している一方で、プロセッサは、他のメモリデバイスにアクセスし得るからである。例えば、プロセッサは、システム内の１つのメモリデバイスが、プロセッサにリードデータを用意している一方で、システム内の他のメモリデバイスにライトデータを出力し得る。メモリハブを用いるコンピュータシステムは、優れた性能を提供するが、それらは、いくつかの理由のため最適な速度で動作できない。例えば、メモリバスは、より大きいメモリ帯域幅を有するコンピュータシステムを提供し得るが、それらは依然として上述のタイプの待ち時間の問題を被る。詳細には、１つのメモリデバイスが、データを転送する用意をしている一方で、プロセッサは、他のメモリデバイスと通信し得るが、１つのメモリデバイスからのデータが用いられ得る前に、他のメモリデバイスからデータを受信することが時々必要になる。１つのメモリデバイスから受信されたデータが用いられ得る前に、他のメモリデバイスからデータが受信されなければならない場合には、待ち時間の問題は、このようなコンピュータシステムの動作速度をスローにすることを継続する。
【０００６】
メモリデバイスにおける待ち時間を減少させるために用いられてきた１つの技術は、キャッシュメモリである。キャッシュメモリは、システムメモリから最近アクセスされたデータを格納する。キャッシュメモリは、通常、スタティックＲＡＭ（「ＳＲＡＭ」）の形状である。ＳＲＡＭは、システムメモリとして典型的に用いられるダイナミックＲＡＭ（「ＤＲＡＭ」）と比べて、よりかなり短いアクセスタイムを有する。さらに、ＳＲＡＭのキャッシュメモリは、通常、ＤＲＡＭシステムメモリの典型であるシステムコントローラ等を介するよりむしろプロセッサバスを介してプロセッサに直接的に結合される。キャッシュメモリのより速い速度およびキャッシュメモリのプロセッサへのより近い近接の結果として、キャッシュメモリの使用は、メモリリード動作の待ち時間を非常に減少させる。
【０００７】
従来のキャッシュメモリは、従来のコンピュータシステムにおけるメモリアクセスの待ち時間を減少させたが、キャッシュメモリは、メモリハブを用いるコンピュータシステムにおいて最適な性能を提供する態様で用いられなかった。特に、典型的なメモリハブシステムメモリの非常に大きい容量と比較して、典型的なキャッシュメモリの制限された格納容量は、キャッシュヒットが起きる可能性がより低くなるので、キャッシュメモリの価値を下げる。この問題は、次のメモリアクセスの対象であろうキャッシュメモリにデータを転送することにおける難しさによって悪化した。詳細には、メモリコントローラを介してすべてのメモリモジュールから次に必要とされるデータをプロセッサに結合し、それからプロセッサからキャッシュメモリに結合することは難しい。また、メモリハブと、プロセッサバスを介してプロセッサに結合されているキャッシュメモリとを用いるコンピュータシステムにおいてキャッシュコヒーレンスを維持することは難しいかもしれない。キャッシュコヒーレンスを維持することは大きいハードウェアリソースを要求し得る。さらに、キャッシュメモリを維持するために必要とされるタイムは、キャッシュメモリを用いる性能利点の大半が失われる程にメモリの性能をスローにし得る。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、メモリハブのアーキテクチャの利点を提供し、またこのようなシステムにおいて共通のこの待ち時間の問題を最小にし、これによって、高い帯域幅と短い待ち時間を有するメモリデバイスを提供するコンピュータアーキテクチャが求められている。
【課題を解決するための手段】
【０００９】
複数のメモリモジュールが、コンピュータシステムにおいてコントローラに結合されている。メモリモジュールのそれぞれは、複数のメモリデバイスとメモリハブとを含む。メモリハブは、コントローラに結合されているリンクインターフェースと、メモリデバイスに結合されているメモリデバイスインターフェースとを備える。リンクインターフェースは、メモリデバイスの少なくとも１つにおけるメモリセルのロウにアクセスのためのコントローラからメモリ要求を受信する。リンクインターフェースは、メモリデバイスインターフェースにメモリ要求を転送し、それからメモリデバイスインターフェースは、メモリデバイスの少なくとも１つにおけるメモリセルのロウにアクセスするメモリデバイスにメモリ要求を結合する。それから、メモリデバイスインターフェースは、メモリ要求の少なくともいくつかに応答して、メモリデバイスからリードデータを受信する。メモリハブのそれぞれは、またメモリデバイスインターフェースに結合されているロウキャッシュメモリであって、メモリ要求の少なくとも１つに応答して、リードデータを受信し、格納するロウキャッシュメモリを含む。また、メモリハブに含まれるシーケンサは、リンクインターフェースと、メモリデバイスインターフェースと、ロウキャッシュメモリとに結合される。シーケンサは、リンクインターフェースからメモリデバイスインターフェースに転送されたメモリ要求に応答して、アクセスされているメモリセルのロウにおけるメモリセルからデータを読み取るためにメモリ要求を生成し、そのメモリ要求をメモリデバイスインターフェースに結合する。生成されたメモリ要求に応答して、アクセスされているメモリセルのロウにおけるメモリセルからのリードデータは、またロウキャッシュメモリに格納される。シーケンサは、好ましくはメモリ要求がコントローラから受信されていないとき、メモリ要求を生成する。
【発明を実施するための最良の形態】
【００１０】
本発明の１つの例に従ったコンピュータシステム１００が、図１に示されている。コンピュータシステム１００は、特定の計算もしくはタスクを実行するために特定のソフトウェアを実行するといったさまざまな計算機能を実行するプロセッサ１０４を含む。プロセッサ１０４は、通常、アドレスバスと、コントロールバスと、データバスとを含むプロセッサバス１０６を含む。プロセッサバス１０６は、上述のように、通常、スタティックＲＡＭ（「ＳＲＡＭ」）であるメモリキャッシュ１０８に典型的に結合される。最終的に、プロセッサバス１０６は、またときどき「ノースブリッジ」もしくは「メモリコントローラ」と呼ばれるシステムコントローラ１１０に結合される。
【００１１】
システムコントローラ１１０は、さまざまな他のコンポーネントに対して、プロセッサ１０４への通信パスの役割を果たす。詳細には、システムコントローラ１１０は、通常、グラフィックコントローラ１１２とビデオターミナルとに交代で通常、結合されているグラフィックスポート含む。システムコントローラ１１０は、またキーボードもしくはマウスといった１つ以上の入力デバイス１１８に結合されることにより、オペレータが、コンピュータシステム１００とインターフェースすることを可能にする。通常、コンピュータシステム１００は、またシステムコントローラ１１０を介して、プロセッサ１０４に接続されているプリンタといった１つ以上の出力デバイスを含む。１つ以上のデータ格納デバイス１２４は、また通常システムコンローラ１１０を介してプロセッサ１０４に結合されることにより、プロセッサ１０４が、データを格納すること、もしくは内部または外部格納媒体（図示されず）からデータを検索することを可能にする。典型的な格納デバイス１２４の例は、ハードディスクと、フロッピー（登録商標）ディスクと、カセットテープと、コンパクトディスク読み取り専用メモリ（ＣＤ―ＲＯＭ）とを含む。
【００１２】
システムコントローラ１１０は、数個のメモリモジュール１３０ａ、ｂ、．．．ｎに結合されている。メモリモジュールは、コンピュータシステム１００に対して、システムメモリの役割を果たす。メモリモジュール１３０は、好ましくは高速リンク１３４を介してシステムコンローラ１１０に結合されている。高速リンク１３４は、光通信パス、電気通信パスもしくは他の種類の通信パスであり得る。高速リンク１３４が、光通信パスとしてインプリメントされる場合、光通信パスは、例えば、１つ以上の光ファイバーの形状であり得る。このような場合、システムコントローラ１１０およびメモリモジュールは、光通信パスに結合されている光入力／出力ポートもしくは別々の入力および出力ポートを含む。メモリモジュール１３０は、マルチドロップ配置においてシステムコントローラ１１０に結合されていることが示されている。マルチドロップ配置では、単一の高速リンク１３４が、すべてのメモリモジュール１３０に結合されている。しかしながら、ポイント・ツー・ポイント結合配置といった他のトポロジーもまた用いられえることが理解される。ポイント・ツー・ポイント結合では、別々の高速リンク（図示されず）がシステムコントローラ１１０にメモリモジュール１３０のそれぞれを結合するために用いられえる。スイッチングトポロジーが、また用いられ得る。ここでは、システムコントローラ１１０が、スイッチ（図示されず）を介してメモリモジュール１３０のそれぞれに選択的に結合されている。用いられ得る他のトポロジーは、当業者には、明らかである。
【００１３】
メモリモジュール１３０のそれぞれは、６個のメモリデバイス１４８へのアクセスをコントロールするメモリハブ１４０含む。図２に示されている例において、メモリデバイス１４８は、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）デバイスである。しかしながら、より数の少ないもしくは多いメモリデバイス１４８が用いられ得る。ＳＤＲＡＭデバイス以外のメモリデバイスもまた当然用いられ得る。メモリハブ１４０は、バスシステム１５０を介してシステムメモリデバイス１４８のそれぞれに結合されている。バスシステム１５０は、通常、コンロールバスと、アドレスバスと、データバスとを含む。
【００１４】
図１のメモリハブ１４０の１つの例が図２に示されている。メモリハブ１４０は、高速リンク１３４に結合されているリンクインターフェース１５２を含む。リンクインターフェース１５２の性質は、高速リンク１３４の特性に依存する。例えば、高速リンク１３４が、光通信パスを用いてインプリメントされる場合、リンクインターフェース１５２は、光入力／出力ポートを含み、光通信パスを介して光信号を電気信号に変換する。いかなる場合でも、リンクインターフェース１５２は、好ましくはメモリ要求が高速リンク１３４を介して受信されたとき、メモリ要求を受信し、格納するファーストイン・ファーストアウトバッファ１５４といったバッファを含む。メモリ要求は、メモリハブ１４０によってプロセスされ得るまで、バッファ１５４に格納される。
【００１５】
メモリハブ１４０が、メモリ要求をプロセスし得るとき、バッファ１５４に格納されているメモリ要求の１つがメモリシーケンサ１６０に転送される。メモリシーケンサ１６０は、システムコントローラ１１０から出力されたフォーマットからのメモリ要求を、メモリデバイス１４８によって用いられ得るフォーマットを有するメモリ要求に変換する。これらのリフォーマットされた要求信号は、通常、メモリコマンド信号、およびロウとカラムのアドレス信号を含む。メモリコマンド信号は、メモリハブ１４０によって受信されるメモリ要求に含まれるメモリコマンドから得られる。ロウとカラムのアドレス信号は、メモリハブ１４０によって受信されるメモリ要求に含まれるアドレスから得られる。メモリ要求がライトメモリ要求の場合、リフォーマットされた要求信号は、通常、メモリハブ１４によって受信されるメモリ要求に含まれるライトデータから得られるライトデータ信号含む。例えば、メモリデバイス１４８が従来のＤＲＡＭデバイスのとき、メモリシーケンサ１６０は、ロウアドレス信号と、ロウアドレスのストローブ（「ＲＡＳ」）信号と、アクティブハイライト／アクティブローライト信号（「Ｗ／Ｒ＊」）と、カラムアドレス信号と、カラムアドレスのストローブ（「ＣＡＳ」）信号を出力する。リフォーマットされたメモリ要求は、好ましくはメモリデバイス１４８によって用いられる順序で、シーケンサ１６０から出力される。
【００１６】
メモリシーケンサ１６０は、メモリデバイスインターフェース１６６にリフォーマットされたメモリ要求を供給する。メモリデバイスインターフェースの性質は、またメモリデバイス１４８の特性に依存する。いずれの場合も、メモリデバイスインターフェース１６６は、好ましくはリンクインターフェース１５２から受信されるとき、１つ以上のメモリ要求を受信し、格納するＦＩＦＯバッファ１６８といったバッファを含む。メモリ要求は、メモリデバイス１４８によってプロセスされるまで、バッファ１６８に格納される。しかしながら、メモリデバイスインターフェース１６６が、数個のメモリ要求を格納する場合、メモリデバイスインターフェース１６６は、メモリ要求を再順序化し得る。その結果、メモリ要求は、他の順序でメモリデバイスに供給される。例えば、メモリ要求は、他の種類の要求（例えば、ライト要求）の前に１つの種類の要求（例えば、リード要求）がプロセスされるようにさせる様態でインターフェース１６６に格納され得る。
【００１７】
メモリ要求は、メモリデバイス１４８にメモリ要求が供給されるフォーマットとは異なるフォーマットでメモリハブ１４０によって受信されるものとして上述されている。しかしながら、システムコントローラ１１０は、代わりにプロセッサ１０４からのメモリ要求をメモリデバイス１４８によって用いられ得るフォーマットにリフォーマットし得る（図１）。このような場合、シーケンサ１６０が、メモリ要求をリフォーマットする必要はない。代わりに、シーケンサ１６０は、メモリデバイス１４８によって用いられるために必要とされる順序でリフォーマットされたメモリ要求信号をスケジュール化する。１つ以上のメモリ要求に対するメモリ要求信号は、それから、メモリデバイスインターフェース１６６に転送される。その結果、メモリ要求信号は、次にメモリデバイス１４８に供給され得る。
【００１８】
上述のように、メモリハブを用いる不利点の１つは、メモリハブがときどき作成し得る増加した待ち時間である。また上述されるように、プロセッサ１０４におけるキャッシュメモリもしくは、プロセッサバス１０６に結合されているキャッシュメモリ（図１）は、メモリリードの待ち時間を減少させる従来のアプローチであるが、メモリハブを用いるメモリシステムにあまり適していない。図２に示されるメモリハブ１４０の例は、メモリハブ１４０のそれぞれにおいてロウキャッシュメモリ１７０を含むことによって、比較的低いメモリリードの待ち時間を提供する。ロウキャッシュメモリ１７０は、設計において、データメモリ（図示されず）と、タグメモリ（図示されず）と、従来のアドレス比較ロジック（図示されず）とを含む従来のキャッシュシステムと同様であり得る。ロウキャッシュメモリ１７０は、モジュール１４０の１つ以上のメモリデバイス１４８における以前にアドレス指定されたメモリセルの１つ以上のロウに含まれるデータを格納する。ロウキャッシュメモリ１７０は、リンクインターフェース１５２からのメモリ要求の一部を形成するアドレスを受信する。アドレスは、キャッシュされたデータのアドレスと比較される。メモリ要求によってフェッチされているデータが、ロウキャッシュメモリ１７０に格納されていると示すアドレスマッチの場合、メモリ１７０は、要求されたデータおよびキャッシュヒットを示す“ＲＯＷ  ＨＩＴ”信号を出力する。ＲＯＷ  ＨＩＴ信号は、マルチプレクサ１７６に供給されることにより、キャッシュメモリ１７０からデータがリンクインターフェース１５２に結合されるようにさせる。ロウキャッシュミスの場合、マルチプレスサ１７６は、リンクインターフェース１５２にメモリデバイスインターフェース１６６からのデータを結合する。ＲＯＷ  ＨＩＴ信号は、またメモリシーケンサ１６０に供給される。したがって、ロウヒットの場合、シーケンサは、メモリデバイスインターフェース１６６にメモリ要求を結合しない。なぜなら、メモリ要求によって要求されたデータは、既にロウキャッシュメモリ１７０によって供給されたからである。
【００１９】
ロウキャッシュメモリ１７０は、以前にアクセスされたロウにおけるカラムだけからのデータを格納し得るが、メモリハブ１４０が、システムコントローラ１１０からのメモリ要求に応答するのにビジーでないとき、メモリ１７０は、好ましくはキャッシュされたロウの多くのもしくはすべてのカラムからデータをプリフェッチする。詳細には、メモリシーケンサ１６０は、アクセスされているロウのどのカラムが、ロウキャッシュメモリ１７０に転送され、そこに格納されているデータを有しているかを把握する従来の回路を含む。シーケンサ１６０が、インターフェース１５２からのメモリ要求を供給するのにビジーでないとき、シーケンサ１６０は、メモリデバイスインターフェース１６６に供給されるメモリ要求を生成することにより、アドレス指定されたロウの残りのカラムに格納されているデータをロウキャッシュメモリ１７０に転送されるようにさせる。結果として、メモリアクセスは、通常、同じロウにおける一連のメモリロケーションに対してであるので、ロウキャッシュメモリ１７０は、次のメモリ要求でフェッチされるデータを格納する可能性が高い。
【００２０】
メモリハブ１４０は、さまざまなプロシージャを用いてメモリデバイス１４８の１つにおけるメモリセルの新しいロウに向けられる次のメモリ要求を処理し得る。例えば、ロウキャッシュメモリ１７０が、１つより多いロウからのデータを格納することが可能であるとき、シーケンサ１６０は、次にアクセスされたロウに格納されているデータをロウキャッシュメモリ１７０に単に転送させ得るだけである。ロウキャッシュメモリが、メモリセルの単一のロウだけからデータを格納することが可能であるとき、もしくは、キャッシュメモリ１７０がその格納容量に達すとき、メモリセルの新たにアクセスされたロウに格納されているデータが、以前格納されたデータを単にオーバーライトし得るだけである。
【００２１】
図２に示されておらず、また上述されていないが、メモリハブ１４０は、好ましくは従来のメモリキャッシュ技術を用いてキャッシュの整合性を保持する回路を含む。例えば、ハブ１４０は、ライトのためのロケーションへのメモリ要求の後に、リードのための同じロケーションへのメモリ要求がくる場合、“ライトスルー”動作モードもしくは“ライトバック”動作モードを利用し得る。
【００２２】
上述から、例示のために本発明の特定の実施形態が記載されてきたが、さまざまな変形が、本発明の精神および範囲を逸脱することなくされることは認識される。したがって、本発明は、添付の請求項によって限定される。
【図面の簡単な説明】
【００２３】
【図１】本発明の１つの例に従ったコンピュータシステムのブロック図であって、メモリハブが、複数のメモリモジュールのそれぞれに含まれているブロック図である。
【図２】図１のコンピュータシステムに用いられるメモリハブのブロック図である。
【図１】
0004517237.tif 000002
【図２】
0004517237.tif 000003