(57)【要約】メモリハブに接続されるいくつかのメモリデバイスを含むメモリハブは、個々のプロセッサに接続されるいくつかのリンクインターフェイス、個々のメモリデバイスに接続されるいくつかのメモリインターフェイス、これらを接続するクロスバースイッチを含む。各メモリインターフェイスは、メモリコントローラ、書き込みバッファ、読み出しキャッシュ、およびデータマイニングモジュールを含み、データマイニングモジュールは、検索データメモリを含み、検索データメモリは、検索データの少なくとも１つの項目を受信および記憶するために上記リンクインターフェイスに接続される。コンパレータは、上記メモリデバイスからの読み出しデータおよび上記検索データの両方を受信する。このコンパレータは、次いで、この読み出しデータを検索データの個々の項目と比較し、そして一致するときにヒット指示を提供する。
2007504531.tif 000002
【特許請求の範囲】
【請求項１】
メモリデバイスとともに使用するためのメモリハブであって：
メモリリクエストを受信するためのリンクインターフェイス；
該リンクインターフェイスに接続されるメモリデバイスインターフェイスであって、該メモリデバイスインターフェイスは、書き込みメモリリクエストおよび書き込みデータを出力し、それらに対応して読み出しメモリリクエストを出力しつつ読み出しデータをさらに受信する、メモリデバイスインターフェイス；および
該リンクインターフェイスに接続されるデータマイニングモジュールであって、該データマイニングモジュールは、該リンクインターフェイスを通じて検索データの少なくとも１つの項目を受信し、読み出しメモリリクエストが該メモリハブから繰り返し出力されるようにし、各々の該読み出しメモリリクエストに応答する読み出しデータを受信し、そして該受信した読み出しデータを該検索データの少なくとも１つの項目と比較するよう作動可能である、データマイニングモジュール、を備える、メモリハブ。
【請求項２】
複数のリンクインターフェイス、複数のメモリデバイスインターフェイス、および該複数のリンクインターフェイスの１つと該複数のメモリデバイスインターフェイスの１つを選択的に接続するためのスイッチ、をさらに備える、請求項１に記載のメモリハブ。
【請求項３】
前記データマイニングモジュールが、前記読み出しメモリリクエストを生成し、そして前記メモリハブから該読み出しメモリリクエストを出力するよう作動可能である、請求項１に記載のメモリハブ。
【請求項４】
前記データマイニングモジュールが：
前記リンクインターフェイスに接続されるダイレクトメモリアクセスエンジンであって、前記読み出しメモリリクエストを生成するよう作動可能である、ダイレクトメモリアクセスエンジン；
前記検索データの少なくとも１つの項目を受信および記憶するために、該リンクインターフェイスに接続される、検索データメモリ；および
前記検索データメモリ中に記憶される検索データの各項目のためのコンパレータであって、各コンパレータは該検索データメモリから検索データの個々の項目を受信するように接続され、かつ前記読み出しデータを受信するように接続され、該コンパレータは該読み出しデータを該検索データの個々の項目と比較するよう作動可能であり、そして一致するときにヒット指示を提供するコンパレータ、を備える、請求項１に記載のメモリハブ。
【請求項５】
前記コンパレータの出力が、前記ヒット指示を前記リンクインターフェイスに接続するために、該リンクインターフェイスに接続される、請求項４に記載のメモリハブ。
【請求項６】
前記データマイニングモジュールが、前記ダイレクトメモリアクセスエンジンに接続されるメモリデバイスシーケンサをさらに備え、該メモリデバイスシーケンサが、前記読み出しリクエストの各々にコマンドおよびアドレス信号のセットを生成する、請求項４に記載のメモリハブ。
【請求項７】
前記検索データメモリが、複数の前記検索データ項目を記憶し、そして該データマイニングモジュールが、該検索データメモリ中に記憶された検索データ項目の数と対応する数の複数のコンパレータを備える、請求項４に記載のメモリハブ。
【請求項８】
前記各コンパレータによって生成された各々の前記ヒット指示を記憶するために、該コンパレータの出力に接続されるリザルトメモリをさらに備える、請求項４に記載のメモリハブ。
【請求項９】
前記リザルトメモリが、前記ヒット指示の各々を生じる前記読み出しデータに対応するメモリデバイスアドレスを記憶するよう作動可能である、請求項８に記載のメモリハブ。
【請求項１０】
前記リザルトメモリが、検索データの対応する項目を、各々の前記メモリデバイスアドレスとともに記憶するようさらに作動可能である、請求項９に記載のメモリハブ。
【請求項１１】
前記リンクインターフェイス、前記メモリデバイスインターフェイス、および前記データマイニングモジュールが、共通の半導体基板上に集積回路として製作される、請求項１に記載のメモリハブ。
【請求項１２】
メモリモジュールであって：
複数のメモリデバイス；および
メモリハブ、を備え、該メモリハブが：
少なくとも１つの該メモリデバイスにアクセスするためのメモリリクエストを受信するためのリンクインターフェイス；
該リンクインターフェイスおよび該メモリデバイスに接続されるメモリデバイスインターフェイスであって、該メモリデバイスインターフェイスは、書き込みメモリリクエストおよび書き込みデータを該メモリデバイスに接続し、読み出しメモリリクエストを該メモリデバイスにさらに接続し、そして該メモリデバイスから読み出しデータを接続する、メモリデバイスインターフェイス；および
少なくとも１つの該メモリデバイスに接続されるデータマイニングモジュールであって、該データマイニングモジュールは、該リンクインターフェイスを通じて検索データの少なくとも１つの項目を受信し、読み出しメモリリクエストが繰り返し該メモリハブから出力されるようにし、該読み出しメモリリクエストの各々に応答する読み込みデータを受信し、そして該受信された読み出しデータを該検索データの少なくとも１つの項目と比較するよう作動可能である、データマイニングモジュール、を備える、メモリモジュール。
【請求項１３】
前記データマイニングモジュールが、前記読み出しメモリリクエストを生成し、そして前記メモリハブから該読み出しメモリリクエストを出力するよう作動可能である、請求項１２に記載のメモリモジュール。
【請求項１４】
前記メモリハブが、複数のリンクインターフェイス、個々のメモリデバイスに接続される複数のメモリデバイスインターフェイス、および該複数のリンクインターフェイスおよび該複数のメモリデバイスインターフェイスの１つを選択的に接続するためのスイッチをさらに備える、請求項１２に記載のメモリモジュール。
【請求項１５】
前記データマイニングモジュールの１つが、前記メモリデバイスインターフェイスの各々に提供され、該データマイニングモジュールの各々が、該個々のメモリデバイスインターフェイスが接続される前記メモリデバイスに接続される、請求項１４に記載のメモリモジュール。
【請求項１６】
前記メモリモジュールが、前記スイッチを通じて前記メモリデバイスインターフェイスの各々に接続される単一のデータマイニングモジュールを含む、請求項１４に記載のメモリモジュール。
【請求項１７】
前記データマイニングモジュールが：
前記リンクインターフェイスに接続されるダイレクトメモリアクセスエンジンであって、前記メモリデバイスに接続するための前記読み出しメモリリクエストを生成するように作動可能である、ダイレクトメモリアクセスエンジン；
前記検索データの少なくとも１つの項目を受信および記憶するために、該リンクインターフェイスに接続される、検索データメモリ；および
前記検索データメモリ中に記憶される検索データの各項目のためのコンパレータであって、各コンパレータは該検索データメモリから検索データの個々の項目を受信するように接続され、かつ該メモリデバイスから前記読み出しデータを受信するように接続され、該コンパレータは該読み出しデータを該検索データの個々の項目と比較するよう作動可能であり、そして一致するときにヒット指示を提供する、コンパレータ、を備える、請求項１２に記載のメモリモジュール。
【請求項１８】
前記コンパレータの出力が、前記ヒット指示を前記リンクインターフェイスに接続するために、該リンクインターフェイスに接続される、請求項１７に記載のメモリモジュール。
【請求項１９】
前記データマイニングモジュールが、前記ダイレクトメモリアクセスエンジンおよび前記メモリデバイスに接続されるメモリデバイスシーケンサをさらに備え、該メモリデバイスシーケンサが、前記読み出しリクエストの各々に対し、該メモリデバイスに接続するためのコマンドおよびアドレス信号のセットを生成する、請求項１７に記載のメモリモジュール。
【請求項２０】
前記検索データメモリが、複数の前記検索データ項目を記憶し、そして前記データマイニングモジュールが、該検索データメモリ中に記憶された検索データ項目の数と対応する数の複数のコンパレータを備える、請求項１７に記載のメモリモジュール。
【請求項２１】
前記コンパレータの各々によって生成された前記ヒット指示の各々を記憶するために、該コンパレータの出力に接続されるリザルトメモリをさらに備える、請求項１７に記載のメモリモジュール。
【請求項２２】
前記リザルトメモリが、前記ヒット指示の各々を生ずる読み出しデータが記憶された前記メモリデバイス中の位置の表示するメモリデバイスアドレス記憶するよう作動可能である、請求項２１に記載のメモリモジュール。
【請求項２３】
前記リザルトメモリが、さらに、前記個々のアドレスに記憶された読み出しと一致する検索データの対応する項目を、前記メモリデバイスアドレスの各々とともに記憶するよう作動可能である、請求項２２に記載のメモリモジュール。
【請求項２４】
前記複数のメモリデバイスが、複数のシンクロナスランダムアクセスメモリデバイスを備える、請求項１２に記載のメモリモジュール。
【請求項２５】
前記リンクインターフェイス、前記メモリデバイスインターフェイス、および前記データマイニングモジュールが、共通の半導体基板上に集積回路として製作される、請求項１２に記載のメモリモジュール。
【請求項２６】
前記共通の半導体基板が、前記メモリデバイスをさらに備える、請求項２６に記載のメモリモジュール。
【請求項２７】
メモリモジュールであって：
メモリデバイス；および
メモリハブ、を備え、該メモリハブは：
該メモリデバイスにアクセスするためにメモリリクエストを受信するためのリンクインターフェイスと；
該リンクインターフェイスおよび該メモリデバイスに接続されるメモリデバイスインターフェイスであって、該メモリデバイスインターフェイスは、書き込みメモリリクエストおよび書き込みデータを該メモリデバイスに接続し、さらに、読み出しメモリリクエストを該メモリデバイスに接続し、そして該メモリデバイスから読み出しデータを接続する、メモリデバイスインターフェイス；
該リンクインターフェイスに接続されるダイレクトメモリアクセスエンジンであって、該メモリデバイスに接続するために該読み出しメモリリクエストを生成するよう作動可能である、ダイレクトメモリアクセスエンジン；
前記検索データの少なくとも1つの項目を受信および記憶するために該リンクインターフェイスに接続される、検索データメモリ；および
前記検索データメモリ中に記憶された検索データの各項目のためのコンパレータであって、各コンパレータは、該検索データメモリから検索データの個々の項目を受信するために接続され、かつ該メモリデバイスから該読み出しデータを受信するために接続され、該読み出しデータを該検索データの個々の項目と比較し、そして一致するときにヒット指示を提供するよう作動可能であるコンパレータ、を備える、メモリモジュール。
【請求項２８】
前記メモリモジュールが複数のメモリデバイスを備え、そしてここで前記メモリハブが複数のリンクインターフェイス、個々のメモリデバイスに接続される複数のメモリデバイスインターフェイス、および該複数のリンクインターフェイスの１つと該複数のメモリデバイスインターフェイスの１つを選択的に接続するためのスイッチをさらに備える、請求項２７に記載のメモリモジュール。
【請求項２９】
前記コンパレータの出力が、前記ヒット指示を前記リンクインターフェイスに接続するために、該リンクインターフェイスに接続される、請求項２７に記載のメモリモジュール。
【請求項３０】
前記データマイニングモジュールが、前記ダイレクトメモリアクセスエンジンおよび前記メモリデバイスに接続されるメモリデバイスシーケンサをさらに備え、該メモリデバイスシーケンサが、該メモリデバイスに接続するために前記読み出しリクエストの各々に対して、コマンドおよびアドレス信号のセットを生成する、請求項２７に記載のメモリモジュール。
【請求項３１】
前記検索データメモリが、複数の前記検索データ項目を記憶し、そして前記メモリハブが、該検索データメモリ中に記憶された検索データ項目の数と対応する数の複数のコンパレータを備える、請求項２７に記載のメモリモジュール。
【請求項３２】
前記コンパレータの各々によって生成された前記ヒット指示の各々を記憶するために、該コンパレータの出力に接続されるリザルトメモリをさらに備える、請求項２７に記載のメモリモジュール。
【請求項３３】
前記リザルトメモリが、前記ヒット指示の各々を生じる読み出しデータが記憶された前記メモリデバイス中の位置を表示するメモリデバイスアドレスを記憶するよう作動可能である、請求項２７に記載のメモリモジュール。
【請求項３４】
前記リザルトメモリが、前記個々のアドレスに記憶された読み出しと一致する検索データの対応する項目を、前記メモリデバイスアドレスの各々とともに記憶するようにさらに作動可能である、請求項３３に記載のメモリモジュール。
【請求項３５】
前記複数のメモリデバイスが、複数のシンクロナスランダムアクセスメモリデバイスを備える、請求項２７に記載のメモリモジュール。
【請求項３６】
前記リンクインターフェイス、前記メモリデバイスインターフェイス、前記ダイレクトメモリアクセスエンジン、前記検索データメモリ、および前記検索データメモリ中に記憶された検索データの各項目のための前記コンパレータが、共通の半導体基板上に集積回路として製作される、請求項２７に記載のメモリモジュール。
【請求項３７】
前記共通の半導体基板が、前記メモリデバイスをさらに備える、請求項３６に記載のメモリモジュール。
【請求項３８】
プロセッサを基本とするシステムであって：
プロセッサバスを有するプロセッサ；
該プロセッサバスに接続されるシステムコントローラであって、システムメモリポートおよび周辺装置ポートを有するシステムコントローラ；
該システムコントローラの該周辺デバイスポートに接続される、少なくとも１つの入力デバイス；
該システムコントローラの該周辺デバイスポートに接続される、少なくとも１つの出力デバイス；
該システムコントローラの該周辺デバイスポートに接続される、少なくとも1つのデータ記憶デバイス；および
該システムコントローラの該システムメモリポートに接続されるメモリモジュール、を備え、該メモリモジュールが：
複数のメモリデバイス；および
メモリハブ、を備え、該メモリハブが；
該メモリデバイスの少なくとも１つにアクセスするメモリリクエストを受信するための、リンクインターフェイス；
該リンクインターフェイスおよび該メモリデバイスに接続されるメモリデバイスインターフェイスであって、該メモリデバイスインターフェイスは、書き込みメモリリクエストおよび書き込みデータを該メモリデバイスに接続し、さらに、読み出しメモリリクエストを該メモリデバイスに接続し、かつ該メモリデバイスから読み出しデータを接続する、メモリデバイスインターフェイス；および
該メモリデバイスの少なくとも１つに接続されるデータマイニングモジュールであって、該データマイニングモジュールは、該リンクインターフェイスを通じて検索データの少なくとも１つの項目を受信し、読み出しメモリリクエストを該メモリハブから繰り返し出力するようにし、該読み出しメモリリクエストの各々に応答する読み出しデータを受信し、そして該受信した読み出しデータを該検索データの少なくとも1つの項目と比較するように作動可能である、データマイニングモジュール、を備える、プロセッサを基本とするシステム。
【請求項３９】
前記データマイニングモジュールが、前記読み出しメモリリクエストを生成し、そして前記メモリハブから該読み出しメモリリクエストを出力するように作動可能である、請求項３８に記載のプロセッサを基本とするシステム。
【請求項４０】
前記メモリハブが、複数のリンクインターフェイス、個々のメモリデバイスに接続される複数のメモリデバイスインターフェイス、および該複数のリンクインターフェイスの１つおよび該複数のメモリデバイスインターフェイスの１つを選択的に接続するためのスイッチをさらに備える、請求項３８に記載のプロセッサを基本とするシステム。
【請求項４１】
前記データマイニングモジュールの１つが、前記メモリデバイスインターフェイスの各々に提供され、該データマイニングモジュールの各々が、個々のメモリデバイスインターフェイスが接続される前記メモリデバイスに接続される、請求項４０に記載のプロセッサを基本とするシステム。
【請求項４２】
前記メモリモジュールが、前記スイッチを通じて前記メモリデバイスの各々に接続される単一のデータマイニングモジュールを含む、請求項４０に記載のプロセッサを基本とするシステム。
【請求項４３】
前記データマイニングモジュールが：
前記リンクインターフェイスに接続されるダイレクトメモリアクセスエンジンであって、前記メモリデバイスに接続するための前記読み出しメモリリクエストを生成するように作動可能である、ダイレクトメモリアクセスエンジン；
前記検索データの少なくとも１つの項目を受信および記憶するために、該リンクインターフェイスに接続される、検索データメモリ；および
前記検索データメモリ中に記憶される検索データの各項目のためのコンパレータであって、各コンパレータは該検索データメモリから検索データの個々の項目を受信するように接続され、かつ該メモリデバイスから前記読み出しデータを受信するように接続され、該コンパレータが、該読み出しデータを該検索データの個々の項目と比較するよう作動可能であり、そして一致するときにヒット指示を提供する、コンパレータ、を備える、請求項３８に記載のプロセッサを基本とするシステム。
【請求項４４】
前記コンパレータの出力が、前記ヒット指示を前記リンクインターフェイスに接続するために、該リンクインターフェイスに接続される、請求項４３に記載のプロセッサを基本とするシステム。
【請求項４５】
前記データマイニングモジュールが、前記ダイレクトメモリアクセスエンジンおよび前記メモリデバイスに接続されるメモリデバイスシーケンサをさらに備え、該メモリデバイスシーケンサが、前記読み出しリクエストの各々に対し、該メモリデバイスに接続するためのコマンドおよびアドレス信号のセットを生成する、請求項４３に記載のプロセッサを基本とするシステム。
【請求項４６】
前記検索データメモリが、複数の前記検索データ項目を記憶し、そして前記データマイニングモジュールが、該検索データメモリ中に記憶された検索データ項目の数と対応する数の複数のコンパレータを備える、請求項４３に記載のプロセッサを基本とするシステム。
【請求項４７】
前記コンパレータの各々によって生成された前記ヒット指示の各々を記憶するために、該コンパレータの出力に接続されるリザルトメモリをさらに備える、請求項４３に記載のプロセッサを基本とするシステム。
【請求項４８】
前記リザルトメモリが、前記ヒット指示の各々を生じる読み出しデータが記憶された前記メモリデバイス中の位置を表示するメモリデバイスアドレスを記憶するように作動可能である、請求項４７に記載のプロセッサを基本とするシステム。
【請求項４９】
前記リザルトメモリが、前記個々のアドレスに記憶された読み出しと一致する検索データの対応する項目を、前記メモリデバイスアドレスの各々とともに記憶するようにさらに作動可能である、請求項４８に記載のプロセッサを基本とするシステム。
【請求項５０】
前記複数のメモリデバイスが、複数のシンクロナスランダムアクセスメモリデバイスを備える、請求項３８に記載のプロセッサを基本とするシステム。
【請求項５１】
前記リンクインターフェイス、前記メモリデバイスインターフェイス、および前記データマイニングモジュールが、共通の半導体基板上に集積回路として製作される、請求項３８に記載のプロセッサを基本とするシステム。
【請求項５２】
前記共通の半導体基板が、前記メモリデバイスをさらに備える、請求項５１に記載のメモリモジュール。
【請求項５３】
プロセッサを基本とするシステムであって；
プロセッサバスを有するプロセッサ；
該プロセッサバスに接続されるシステムコントローラであって、システムメモリポートおよび周辺デバイスポートを有するシステムコントローラ；
該システムコントローラの該周辺デバイスポートに接続される、少なくとも１つの入力デバイス；
該システムコントローラの該周辺デバイスポートに接続される、少なくとも１つの出力デバイス；
該システムコントローラの該周辺デバイスポートに接続される、少なくとも１つのデータ記憶デバイス；および
該システムコントローラの該システムメモリポートに接続される、メモリモジュールを備え、
該メモリモジュールが：
メモリデバイス；および
メモリハブ、を備え、該メモリハブが：
該メモリデバイスにアクセスするためにメモリリクエストを受信するためのリンクインターフェイス；
該リンクインターフェイスおよび該メモリデバイスに接続されるメモリデバイスインターフェイスであって、該メモリデバイスインターフェイスは、書き込みメモリリクエストおよび書き込みデータを該メモリデバイスに接続し、さらに読み出しメモリリクエストを該メモリデバイスに接続し、そして該メモリデバイスから読み出しデータを接続する、メモリデバイスインターフェイス；
該リンクインターフェイスに接続されるダイレクトメモリアクセスエンジンであって、該メモリデバイスに接続するために該読み出しメモリリクエストを生成するよう作動可能である、ダイレクトメモリアクセスエンジン；
該検索データの少なくとも1つの項目を受信および記憶するために該リンクインターフェイスに接続される、検索データメモリ；および
該検索データメモリ中に記憶された検索データの各項目のためのコンパレータであって、各コンパレータは、該検索データメモリから検索データの個々の項目を受信するために接続され、かつ該メモリデバイスから該読み出しデータを受信するために接続され、該読み出しデータを該検索データの個々の項目と比較し、そして一致するときにヒット指示を提供するよう作動可能であるコンパレータ、を備える、プロセッサを基本とするシステム。
【請求項５４】
前記メモリモジュールが、複数のメモリデバイスを備え、そして前記メモリハブが、複数のリンクインターフェイス、個々のメモリデバイスに接続される複数のメモリデバイスインターフェイス、および該複数のリンクインターフェイスの１つおよび該複数のメモリデバイスインターフェイスの１つを選択的に接続するためのスイッチをさらに備える、請求項５３に記載のプロセッサを基本とするシステム。
【請求項５５】
前記コンパレータの出力が、前記ヒット指示を前記リンクインターフェイスに接続するために、該リンクインターフェイスに接続される、請求項５３に記載のプロセッサを基本とするシステム。
【請求項５６】
前記データマイニングモジュールが、前記ダイレクトメモリアクセスエンジンおよび前記メモリデバイスに接続されるメモリデバイスシーケンサをさらに備え、該メモリデバイスシーケンサが、該メモリデバイスに接続するために前記読み出しリクエストの各々に対して、コマンドおよびアドレス信号のセットを生成する、請求項５３に記載のプロセッサを基本とするシステム。
【請求項５７】
前記検索データメモリが、複数の前記検索データ項目を記憶し、そして前記メモリハブが、該検索データメモリ中に記憶された検索データ項目の数と対応する数の複数のコンパレータを備える、請求項５３に記載のプロセッサを基本とするシステム。
【請求項５８】
前記コンパレータの各々によって生成された前記ヒット指示の各々を記憶するために、前記コンパレータの出力に接続されるリザルトメモリをさらに備える、請求項５３に記載のプロセッサを基本とするシステム。
【請求項５９】
前記リザルトメモリが、前記ヒット指示の各々を生じる読み出しデータが記憶された前記メモリデバイス中の位置を表示するメモリデバイスアドレスを記憶するように作動可能である、請求項５８に記載のプロセッサを基本とするシステム。
【請求項６０】
前記リザルトメモリが、前記個々のアドレスに記憶された読み出しと一致する検索データの対応する項目を、前記メモリデバイスアドレスの各々とともに記憶するようにさらに作動可能である、請求項５９に記載のプロセッサを基本とするシステム。
【請求項６１】
前記複数のメモリデバイスが、複数のシンクロナスランダムアクセスメモリデバイスを備える、請求項５３に記載のプロセッサを基本とするシステム。
【請求項６２】
前記リンクインターフェイス、前記メモリデバイスインターフェイス、前記ダイレクトメモリアクセスエンジン、前記検索データメモリ、および前記検索データメモリ中に記憶された検索データの各項目のための前記コンパレータが、共通の半導体基板上に集積回路として製作される、請求項５３に記載のプロセッサを基本とするシステム。
【請求項６３】
前記共通の半導体基板が、前記メモリデバイスをさらに備える、請求項６２に記載のプロセッサを基本とするシステム。
【請求項６４】
メモリモジュール内に位置決めされるメモリデバイス中に記憶される検索データの項目を検索する方法であって、該方法は：
検索データの少なくとも１つの項目をメモリモジュールに通す工程；
該メモリモジュール内から検索データの少なくとも１つの項目を記憶する工程；
該メモリモジュール中の複数の読み出しメモリリクエストを連続的に開始する工程；
該メモリリクエストを該メモリデバイスに連続的に接続する工程；
該読み出しメモリリクエストの各々に応答する該メモリモジュールの読み出しデータを受信する工程；
該読み出しデータを該メモリモジュール内の該検索データの少なくとも1つの項目と比較し、データ一致があるか否かを決定する工程；
各データの一致に応答するリザルト指示を生成する工程；および
該メモリモジュールから該リザルト指示を接続する工程、を包含する方法。
【請求項６５】
各データの一致に応答するリザルト指示を生成する動作が、該データの一致の各々を生ずる読み出しデータが記憶された前記メモリデバイス中の位置の表示するメモリデバイスアドレスを提供することを包含する、請求項６４に記載の方法。
【請求項６６】
各データの一致に応答するリザルト指示を生成する動作が、一致された検索データの対応する項目を各メモリデバイスアドレスに提供することをさらに包含する、請求項６５に記載の方法。
【請求項６７】
前記メモリモジュールから前記リザルト指示を接続する前に、各データの一致に応答する該リザルト指示の記憶する工程をさらに包含する、請求項６４に記載の方法。
【請求項６８】
システムメモリポートを有するシステムコントローラに接続されるプロセッサを有する、プロセッサを基本とするシステムにおいて、メモリモジュール中に位置決めされるシステムメモリデバイス中に記憶された検索データの項目を検索する方法であって、該方法は；
検索データの少なくとも1つの項目を、該プロセッサから該メモリモジュールに接続する工程；
該メモリモジュール中に該検索データの少なくとも1つの項目を記憶する工程；
該メモリモジュール内から複数の読み出しメモリリクエストを連続的に開始する工程；
該読み出しメモリリクエストを該メモリデバイスに接続する工程；
該読み出しメモリリクエストの各々に応答する該メモリデバイスから読み出しデータを接続する工程；
該読み出しデータを該メモリモジュール内の該検索データの少なくとも1つの項目と比較し、データ一致があるか否かを決定する工程；
各データの一致に応答するリザルト指示を生成する工程；および
該メモリモジュールから該リザルト指示を該プロセッサに接続する工程、を包含する方法。
【請求項６９】
各データの一致に応答するリザルト指示を生成する動作が、該データの一致の各々を生ずる読み出しデータが記憶された前記メモリデバイス中の位置を表示するメモリデバイスアドレスを提供することを包含する、請求項６８に記載の方法。
【請求項７０】
各データの一致に応答するリザルト指示を生成する動作が、一致された検索データの対応する項目を各メモリデバイスアドレスに提供する工程をさらに包含する、請求項６９に記載の方法。
【請求項７１】
前記リザルト指示を前記メモリモジュールから前記プロセッサに接続する前に、各データの一致に応答する該メモリモジュール内に該リザルト指示を記憶する工程をさらに包含する、請求項６８に記載の方法。
【請求項７２】
前記読み出しメモリリクエストを前記メモリデバイスに接続する動作、および該メモリデバイスから前記読み出しデータを接続する動作が、前記メモリモジュール内で完全に実行される、請求項６８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本発明はメモリデバイスに関し、そしてより詳細には、メモリデバイスを含むメモリモジュールであって、かつこのメモリモジュール内に上記メモリデバイス中に記憶されたデータを検索する能力を有するメモリモジュールに関する。
【背景技術】
【０００２】
（発明の背景）
コンピューターシステムのようなプロセッサを基本とするシステムは、プロセッサによってアクセスされる命令およびデータを記憶するために、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）デバイスのようなメモリデバイスを使用する。これらのメモリデバイスは、代表的には、コンピューターシステムにおけるシステムメモリとして使用される。代表的なコンピューターシステムでは、プロセッサはメモリコントローラを通じて上記システムメモリと通信する。このプロセッサはメモリリクエストを出し、このメモリリクエストは、読み出しコマンドのようなメモリコマンド、および、データまたは命令が読み出されるべき位置を指定するアドレスを含む。上記メモリコントローラは、適切なコマンド信号、および上記システムメモリに付与されるロー（ｒｏｗ）アドレスおよびカラム（ｃｏｌｕｍｎ）アドレスを生成するために、上記コマンドおよびアドレスを使用する。このコマンドおよびアドレスに応答して、データが、上記システムメモリと上記プロセッサとの間で転送される。上記メモリコントローラは、しばしば、システムコントローラの一部分であり、これはまた、上記プロセッサバスをＰＣＩバスのような拡張バスに接続するためのバスブリッジ回路を含む。
【０００３】
メモリデバイスの上記動作速度が連続的に増加したとしても、動作速度のこの増加は、プロセッサの上記動作速度における増加に追随しない。メモリコントローラの動作速度における増加はまた、プロセッサの動作速度におけるこの急速な増加に遅れをとる。この相対的に低い速度のメモリコントローラおよびメモリデバイスは、しばしば、コンピューターが演算し得る速度を制限する。
【０００４】
コンピューターシステムの上記動作速度はまた、システムメモリデバイスからデータを読み出すために必要な時間を増加する待ち時間問題によって制限される。より具体的には、メモリデバイスの読み出しコマンドが、シンクロナスＤＲＡＭ（「ＳＤＲＡＭ」）デバイスのようなシステムメモリに接続されるとき、上記読み出しデータは、数クロック周期の遅れの後にのみ、ＳＤＲＡＭデバイスから出力される。したがって、ＳＤＲＡＭデバイスは、高データ転送速度でバーストデータを同調的に出力し得るけれども、最初にこのデータを提供することにおける遅延が、このようなＳＤＲＡＭデバイスを使用するコンピューターの動作速度を有意に遅くし得る。
【０００５】
このようなメモリデバイスを使用するプロセッサを基本とするシステムの動作に関する、上記に記載された問題の悪影響は、このシステムによって実行される動作の性質に広範囲に依存する。高度にメモリ集約的動作、すなわち、頻繁な読み出しおよび書き込み動作に対して、上記に記載された問題は、プロセッサを基本とするシステムの動作速度を非常に有害であり得る。例えば、コンピューターシステムのようなプロセッサを基本とするシステムが、「データマイニング」動作を実行し得る速度は、主としてプロセッサが、代表的にはこのような動作の間にシステムメモリ内に記憶されるデータをアクセスし得る速度の関数である。データマイニング動作では、上記プロセッサは、システムメモリ内に記憶された特定の数字または文字のような特定のデータ内容を捜す。上記プロセッサは、データの項目を繰り返しフェッチすること、そして次いで各フェッチされたデータ項目を上記検索の対象であるデータ内容と比較することによってこの動作を実行する。データ項目がフェッチされるたびに、上記プロセッサは読み出しメモリコマンドおよびメモリアドレスを出力しなければならず、この読み出しメモリコマンドおよびメモリアドレスの両方はシステムメモリに接続されなければならない。上記プロセッサは、次いで、システムメモリデバイスがこの読み出しデータを出力し、そしてこの読み出しデータをプロセッサに接続されるまで待たなければならない。システムメモリデバイス（これらは代表的にはダイナミックランダムアクセス（「ＤＲＡＭ」）デバイスである）の有意な待ち時間の結果として、上記システムメモリが上記読み出しメモリコマンドおよびアドレスに応答し、そして読み出しデータ項目を上記プロセッサに出力するためにいくつかのクロック周期を要し得る。多量のデータが検索されなければならないとき、データマイニングは、相当の期間を必要とし得る。
【０００６】
データマイニングのような、より速いメモリ集約的動作を提供するために、メモリデバイスの動作速度を増加することに対する１つのアプローチは、メモリハブを通じて上記プロセッサに接続される複数のメモリデバイスを使用することである。メモリハブ基本設計（ａｒｃｈｉｔｅｃｔｕｒｅ）では、システムコントローラまたはメモリハブコントローラは、いくつかのメモリモジュールに接続され、その各々は、いくつかのメモリデバイスに接続されるメモリハブを含む。このメモリハブは、上記コントローラと上記メモリデバイス間で、メモリリクエストおよびメモリ応答の経路を効率的に決める。この基本設計を採用するコンピューターシステムは、より高いデータバンド幅を有し得る。なぜなら、プロセッサは、別のメモリデバイスが先のメモリアクセスに応答している間に、１つのメモリデバイスにアクセスし得るからである。例えば、プロセッサは、システム中の別のメモリデバイスが読み出しデータをこのプロセッサに提供するために準備している間に、このシステム中で読み出しデータリクエストをメモリデバイスの１つに出し得る。メモリハブ構造を使用するコンピューターシステムの動作効率は、それらを、いくつかのプロセッサがメモリデバイスの各々にアクセスするシステムよりも顕著に速い、データマイニングのようなメモリ集約的動作を実行するようにする。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
メモリハブ基本設計は、データマイニングのようなメモリ集約的動作を実行するとき、プロセッサがより速くシステムメモリデバイスにアクセスすることを可能にするけれども、メモリハブ基本設計は、反復データフェッチ動作に固有の問題をなくさない（解決しない）。結果として、データマイニングのようなメモリ集約的動作は、コンピューターシステムがメモリハブ基本設計を有すシステムメモリを使用するときでさえ、なお相当な期間を必要とし得る。
【０００８】
従って、多数の繰り返しメモリ読み出し動作の必要性を避けることによって、プロセッサが顕著により高速でデータマイニングを実行することを可能にするシステムおよび方法の必要性が存在する。
【課題を解決するための手段】
【０００９】
（発明の要旨）
メモリモジュールは、メモリデバイスおよびメモリハブを含む。このメモリハブは、リンクインターフェイス、およびこのリンクインターフェイスとこのメモリデバイスの両方に接続されるデータマイニングモジュールを含む。このデータマイニングモジュールは、上記リンクインターフェイスを通じて検索データの少なくとも１つの項目を受信するよう作動可能である。このデータマイニングモジュールは、次いで、読み出しメモリリクエストを上記メモリデバイスに繰り返し接続し、そしてこのメモリデバイスは、読み出しデータを上記データマイニングモジュールに出力することによって応答する。このデータマイニングモジュールは、次いで、データ一致が存在するか否かを決定するために、上記読み出しデータと上記検索データとを比較する。データの一致があるとき、データの一致する指示は、データの一致が生じるとき、またはリザルトメモリ中に記憶された後のいずれかに上記メモリモジュールから接続される。
【発明を実施するための最良の形態】
【００１０】
（好ましい実施形態の詳細な説明）
本発明の実施形態は、データマイニング演算を内部で実行する能力を有するメモリハブモジュールに関する。特定の詳細は、本発明の様々な実施形態の十分な理解を提供するために、下記に記載されている。しかし、本発明が、これらの特定の詳細なくして実行され得ることは、当業者に明らかである。他の実例では、周知の回路、コントロール信号、およびタイミングプロトコルは、本発明を不必要に混乱させることを防ぐために詳細に示されていない。
【００１１】
本発明の実施形態によるコンピューターシステム１００が、図１に示されている。このコンピューターシステム１００は、特定の演算またはタスクを実行するために特定のソフトウェアを実行するような、様々な計算機能を実行するプロセッサ１０４を含む。このプロセッサ１０４は、アドレスバス、コントロールバス、およびデータバスを標準的に含むプロセッサバス１０６を含む。このプロセッサバス１０６は代表的には、キャッシュメモリ１０８に接続され、キャッシュメモリ１０８は代表的には、スタティックランダムアクセスメモリ（「ＳＲＡＭ」）である。最後に、上記プロセッサバス１０６は、システムコントローラ１１０に接続され、システムコントローラ１１０もまた、時にはバスブリッジと呼ばれる。
【００１２】
上記システムコントローラ１１０は、様々な他の構成要素のための上記プロセッサ１０４への通信パスとして供する。さらに具体的には、上記システムコントローラ１１０は、代表的にはグラフィックスコントローラ１１２に接続されるグラフィックスポートを含み、グラフィックスコントローラは、次に、ビデオ端末１１４に接続される。上記システムコントローラ１１０はまた、キーボードまたはマウスのような、１つ以上の入力デバイス１１８に接続され、オペレーターが上記コンピューターシステム１００とインターフェイスをとることを可能にする。代表的には、上記コンピューターシステム１００はまた、プリンターのような１つ以上の出力デバイス１２０を含み、上記システムコントローラ１１０を通じて上記プロセッサ１０４に接続される。１つ以上のデータ記憶デバイス１２４もまた、代表的には、上記システムコントローラ１１０を通じて上記プロセッサ１０４に接続され、プロセッサ１０４が内部または外部の記憶媒体（図示せず）からデータを記憶またはデータを読み出すことを可能にする。代表的な記憶デバイス１２４の例は、ハードディスクおよびフロッピー（登録商標）ディスク、テープカセット、およびコンパクトディスク読み取り専用メモリ（ＣＤ-ＲＯＭ）を含む。
【００１３】
上記システムコントローラ１１０は、メモリハブコントローラ１２８を含み、メモリハブコントローラ１２８は、上記コンピューターシステム１００のためのシステムメモリとして供給されるいくつかのメモリモジュール１３０ａ，ｂ．．．ｎに接続される。このメモリモジュール１３０は、好ましくは、高速リンク１３４を通じて上記メモリハブコントローラ１２８に接続され、これは、光学的または電気的通信パスもしくは特定の他のタイプの通信パスであり得る。上記高速リンク１３４が、光学的通信パスとして実行される場合、この光学的通信パスは、１つ以上の光ファイバーの形態であり得る。そのような場合、上記メモリハブコントローラ１２８および上記メモリモジュールは、光学的入力／出力ポートまたは別々の入力または出力ポートを含み、上記光学的通信パスに接続される。上記メモリモジュール１３０は、マルチドロップ配置の上記メモリハブコントローラ１２８に接続されて示され、そこでは、上記単一の高速リンク１３４が、全ての上記メモリモジュール１３０に接続される。しかし、他の接続形態もまた使用され得ることが理解される。例えば、２地点間の接続配置が使用され得、そこでは別個の高速リンク（図示せず）が各々の上記メモリモジュール１３０を上記メモリハブコントローラ１２８に接続するために使用される。スイッチング接続形態もまた使用され得、そこでは上記メモリハブコントローラ１２８は、スイッチ（図示せず）を通じて各々の上記メモリモジュール１３０に選択的に接続される。使用され得る他の接続形態は、当業者に明白である。
【００１４】
上記メモリモジュール１３０の各々は、８個のメモリデバイス１４８へのアクセスを制御するメモリハブ１４０を含み、これは、図１に示される例では、シンクロナスダイナミックランダムアクセスメモリ（「ＳＤＲＡＭ」）デバイスである。しかし、より少ないまたはより多いメモリデバイス１４８が使用され得、そしてＳＤＲＡＭデバイス以外のメモリデバイスもまた使用され得る。上記メモリハブ１４０は、バスシステム１５０を通じて各々の上記システムメモリデバイス１４８に接続され、これは、通例、コントロールバス、アドレスバス、およびデータバスを含む。しかし、共有のコマンド／アドレスバスを使用するバスシステムのような、他のバスシステムもまた、使用され得る。
【００１５】
図２は、本発明の１つの実施形態によるメモリハブ２００を示し、これは図１の上記メモリハブ１４０として使用され得る。このメモリハブ２００は、４個のメモリデバイス２４０ａ〜ｄに接続されて示され、これは、この例では、従来のＳＤＲＡＭデバイスである。代替の実施形態では、上記メモリハブ２００は、単に４個の異なるメモリデバイス２４０ａ〜ｄよりも、むしろメモリデバイスの４個の異なるバンクに接続され、それぞれのバンクは代表的には複数のデバイスを有する。しかし、例を提供する目的のために、上記メモリハブ２００は４個のメモリデバイス２４０ａ〜２４０ｄに接続されて示される。このメモリハブ２００に対する必要な改良が、メモリデバイスの数の増減、または複数のバンクメモリを収容することであるということは、当業者の知識内にあるということが認識される。
【００１６】
上記メモリハブ２００にさらに含められるのは、リンクインターフェイス２１０ａ〜ｄであり、これは、上記メモリハブ２００を個々のプロセッサまたは他のメモリアクセスデバイスに接続するために使用され得る。図１に示される実施形態では、ただ１つのメモリアクセスデバイスであり、そしてそれ故、リンクインターフェイス２１０ａでのみ使用される。上記メモリハブ２００はまた、上記メモリモジュールを接続するためのリンクインターフェイス２１２ａ〜ｄを含み、この上でメモリハブ２００が他のメモリモジュール（図示せず）に位置決めされる。これらのリンクインターフェイス２１０ａ〜ｄは、図１の実施形態では使用されていない。いずれの場合でも、上記リンクインターフェイス２１０ａ〜ｄおよび２１２ａ〜ｄは、好ましくは、第１の高速データリンク２２０および第２の高速データリンク２２２にそれぞれ接続される。図１に関して先に考察したように、上記高速データリンク２２０，２２２は、光学的または電気的通信パスまたは特定の他のタイプの通信パスを使用して実行され得る。上記リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、従来型であり、そして上記高速データリンク２２０、２２２に、およびそれからデータ、コマンド、およびアドレス情報を伝達するために使用される回路を含む。周知のように、このような回路は、当該技術分野で公知の送信器および受信機を含む。当業者は、特定のタイプの通信パスとともに使用されるべき、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄを改変するための十分な理解を有していること、しかもこのリンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄに対するこのような改変が、本発明の範囲から逸脱することなくなされ得ることが認識される。例えば、上記高速データリンク２２０，２２２が光学的通信パスを使用して実行される場合、上記リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、上記光学通信パスを通じて接続された光信号を電気信号に変換し得る光入力／出力ポートを含む。
【００１７】
上記リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、上記メモリハブ１４０が様々な形態で上記システムメモリ中で接続されることを可能にする回路を含む。例えば、図１に示されるように、上記マルチドロップ配列が、各メモリモジュールを、上記リンクインターフェイス２１０ａ〜ｄまたは２１２ａ〜ｄのいずれかを通じて、上記メモリハブコントローラ１２８に接続することによって実行され得る。あるいは、２地点間またはデージーチェーン形態が、直列に上記メモリモジュールを接続することによって実行され得る。例えば、上記リンクインターフェイス２１０ａ〜ｄが、第１のメモリモジュールを接続するために使用され得、そして上記リンクインターフェイス２１２ａ〜ｄが、第２のメモリモジュールに接続するために使用され得る。プロセッサ、またはシステムコントローラに接続されるメモリモジュールは、１セットのリンクインターフェイスを通じてさらに接続され、そしてさらに別のメモリモジュールが他のセットのリンクインターフェイスを通じて接続される。本発明の１つの実施形態では、このメモリモジュールのメモリハブ２００は、２地点間配置で上記プロセッサに接続され、そこでは、このプロセッサ１０４とこのメモリハブ２００との間の上記接合部に接続される他のデバイスはない。このタイプの相互接続は、相対的に低いキャパシタンス、信号を反射するための相対的に相対的に少数の回路の不連続点、および相対的に短い信号パスを含む、様々な原因のために、上記プロセッサ１０４と上記メモリハブ２００との間のより良好な信号接続を提供する。
【００１８】
上記リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄは、バス２１４によって代表されるような、複数のバスおよび信号線を通じてスイッチ２６０に接続される。単一の双方向のデータバスは、それに代わってこのリンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄを通じて、両方向にデータを接続するために提供され得るが、バス２１４は従来型であり、そして書き込みデータバスおよび読み出しデータバスを含む。これらのバス２１４が例として提供されるということは当業者によって認識され、しかもこれらのバス２１４は、より少ないを含み得、または、キャッシュ・コヒーレンシーを維持するために使用され得る、リクエストラインおよびスヌープラインをさらに含むように、より多い信号線を含み得る。
【００１９】
上記スイッチ２６０は、４つのメモリインターフェイス２７０ａ〜ｄにさらに接続され、次に、このメモリインターフェイス２７０ａ〜ｄは、上記メモリデバイス２４０ａ〜ｄにそれぞれに接続される。各メモリデバイス２４０ａ〜ｄに対して、別個および独立したメモリインターフェイス２７０ａ〜ｄをそれぞれ提供することによって、上記メモリハブ２００は、代表的には単一チャンネルメモリ構造で起こるバスまたはメモリバンクの接触を防ぐ。上記スイッチ２６０は、バス２７４によって代表される複数のバスおよび信号線を通じて各メモリインターフェイスに接続される。これらのバス２７４は、書き込みデータバス、読み出しデータバス、およびリクエストラインを含む。しかし、単一の双方向データバスおよび特定の他のタイプのバスシステムが、別個の書き込みデータバスおよび読み出しデータバスに代わってあるいは使用され得る。さらに、これらのバス２７４は、先に記載されたものよりも、より多くまたはより少ない数の信号線を含み得る。
【００２０】
本発明の実施形態では、各メモリインターフェイス２７０ａ〜ｄは、それに接続される上記メモリデバイス２４０ａ〜ｄに特に適応されている。より詳細には、各メモリインターフェイス２７０ａ〜ｄは、それに接続される上記メモリデバイス２４０ａ〜ｄによって、受信および生成された上記特定の信号を提供および受信するようにそれぞれ特に適用されている。また、上記メモリインターフェイス２７０ａ〜ｄは、異なるクロック周波数とともに動作するメモリデバイス２４０ａ〜ｄとともに動作可能である。結果として、上記メモリインターフェイス２７０ａ〜ｄは、上記メモリハブ２３０と上記メモリハブ２００に接続されたメモリデバイス２４０ａ〜ｄとの間の上記インターフェイスで生じ得る変化から、上記プロセッサ１０４を隔離し、そして上記メモリデバイス２４０ａ〜ｄがインターフェイスし得る、よりコントロールされた環境を提供する。
【００２１】
上記リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄと上記メモリインターフェイス２７０ａ〜ｄとを接続する上記スイッチ２６０は、任意のさまざまな従来型または下記の開発されたスイッチであり得る。例えば、上記スイッチ２６０はクロスバースイッチであり得、これは、リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄおよび上記メモリインターフェイス２７０ａ〜ｄを、さまざまな配置で互いに同時に接続し得る。上記スイッチ２６０はまた、クロスバースイッチと同じレベルの接続性レベルを提供しないマルチプレクサのセットであり得るが、それにもかかわらず、いくつかまたは全ての上記リンクインターフェイス２１０ａ〜ｄ、２１２ａ〜ｄを、各々の上記メモリインターフェイス２７０ａ〜ｄに接続し得る。上記スイッチ２６０はまた、調整論理回路（図示せず）を含み得、どのメモリアクセスが他のメモリアクセスを超えて優先して受信するかを決定する。この機能を実行するバス調整は、当業者に周知である。
【００２２】
図２をさらに参照すると、各々の上記メモリインターフェイス２７０ａ〜ｄは、それぞれのメモリコントローラ２８０、それぞれの書き込みバッファ２８２、それぞれのキャッシュメモリユニット２８４、およびそれぞれのデータマイニングモジュール２９０を含む。このメモリコントローラ２８０は、コントロール信号、アドレス信号およびデータ信号を、それに接続されたメモリデバイス２４０ａ〜ｄに提供し、データ信号を、それに接続されたこのメモリデバイス２４０ａ〜ｄから受信することによって、従来型のメモリコントローラと同じ機能を実行する。しかし、上記メモリコントローラ２８０によって送信および受信される上記信号の性質は、上記メモリデバイス２４０ａ〜ｄが、送信および受信するように適応される信号の性質と対応する。上記キャッシュメモリユニット２８４は、キャッシュメモリの標準的な構成要素を含み、これは、当該分野で周知であるように、タグメモリ、データメモリ、コンパレータなどを含む。上記書き込みバッファ２８２で使用されるメモリデバイスは、およびキャッシュメモリユニット２８４は、ＤＲＡＭデバイス、スタティックランダムアクセスメモリ（「ＳＲＡＭ」）デバイス、他のタイプのメモリデバイス、または３つの全ての組み合わせであり得る。さらに、上記キャッシュメモリユニット２８４で使用される任意または全てのこれらのメモリデバイスおよびその他の構成要素は、内蔵されるかまたは独立したデバイスであり得る。
【００２３】
各メモリインターフェイス２７０ａ〜ｄ中の上記書き込みバッファ２８２は、読み出しリクエストがサービスされている間、書き込みリクエストを記憶するために使用される。そのようなシステムでは、たとえ書き込みリクエストが命令されたメモリデバイスが、前の書き込みまたは読み出しリクエストをサービスしてビジーであったとしても、上記プロセッサ１０４は、書き込みリクエストをシステムメモリデバイス２４０ａ〜ｄに供給し得る。上記書き込みバッファ２８２は、好ましくは、上記スイッチ２６０から受信したいくつかの書き込みリクエストを蓄積し、これらは読み出しリクエストとともに分散し、そして次いで、それらを、任意の介在する読み出しリクエストなしで、各々の上記メモリデバイス２４０ａ〜ｄの各々に順に付与する。このように上記書き込みリクエストをパイプライン処理することによって、それらは、より効率的に処理され得る。なぜなら、読み出し／書き込み方向転換に固有の遅れが避けられるからである。サービスされるべき読み出しリクエストを可能にするバッファ書き込みリクエストの能力はまた、読み出しリクエストがそれらの命令の入力順に関係なく第１の優先度を与えられ得るので、メモリ読み出し待ち時間を大幅に縮小し得る。
【００２４】
各メモリインターフェイス２７０ａ〜ｄの上記キャッシュメモリユニット２８４の使用は、上記プロセッサ１０４が上記メモリデバイス２４０ａ〜ｄを待たずに個々のシステムデバイス２４０ａ〜ｄに命令される読み出しコマンドに応答性のデータを受容すること、このデータがそのメモリデバイス２４０ａ〜ｄから最近読み出されたか、またはそれに書き込まれた場合、そのようなデータを提供することを可能にする。上記キャッシュメモリユニット２８４は、したがって、上記システムメモリデバイス２４０ａ〜ｄの上記読み出し時間を短縮し、上記コンピューターシステムの上記メモリのバンド幅を最大にする。同様に、上記プロセッサ１０４は上記キャッシュメモリユニット２８４の書き込みデータを記憶し得、そして次いで他の機能を実行し、一方で、上記同じメモリインターフェイス２７０ａ〜ｄ内の上記メモリコントローラ２８０は、それに接続される上記システムメモリデバイス２４０ａ〜ｄに、上記書き込みデータを上記キャッシュメモリユニット２８４から転送する。
【００２５】
上記データマイニングモジュール２９０は、バス２９２を通じて上記スイッチ２６０に接続され、そして上記メモリデバイス２４０ａ〜ｄのそれぞれ１つに接続される。このデータマイニングモジュール２９０は、上記個々のメモリデバイス２４０ａ〜ｄで検索されるデータを受信する。上記検索データは、プロセッサまたは他のメモリアクセスデバイス（図２では図示せず）からデータマイニングモジュール２９０に、個々のリンクインターフェイス２１０ａ〜ｄおよび上記スイッチ２６０を通じて接続される。上記データマイニングモジュール２９０に接続された検索データは、文字または数字、またはデータのいくつかの異なる項目のような、データの単一の項目のいずれかであり得る。このデータマイニングモジュール２９０は、読み出しデータの項目を、その個々のメモリデバイス２４０ａ〜ｄから繰り返し読み出し、そして次いで、読み出しデータの各項目を上記検索データと比較し、そして各正の比較（ｐｏｓｉｔｉｖｅ  ｃｏｍｐａｒｉｓｏｎ）の結果を、上記プロセッサまたは他のメモリアクセスデバイスに、上記スイッチ２６０およびリンクインターフェイス２１０ａ〜ｄを通じて接続する。それに代わって、いくつかの正の比較のこれらの結果は、記憶デバイスに保存され得る。例えば、検索データのいくつかの項目に対する上記各リザルトデータは、上記個々のメモリデバイス２４０ａ〜ｄ中のすべてのデータが検索された後に転送され得る。この保存されたリザルトデータは、次いで上記プロセッサまたは他のメモリアクセスデバイスに同時に転送される。上記データマイニングモジュール２９０から転送される上記リザルトデータは、好ましくは、個々のメモリデバイス２４０ａ〜ｄに記憶される上記正に比較された読み出しデータが記憶されたアドレスである。しかし、複数のデータの項目が検索されている場合、上記リザルトデータは、好ましくは、どの項目の検索が見出されたかを示すデータを含む。例えば、リザルトデータのいくつかの項目の各々は、検索データのその項目が見出された上記メモリデバイス２４０ａ〜ｄ中の上記アドレスとペアであると見出された検索データの項目を含み得る。
【００２６】
上記メモリハブ２００には、バス２９８を通じて上記スイッチ２６０に接続されるダイレクトメモリアクセス（「ＤＭＡ」）エンジン２９６が、さらに含められ得る。このＤＭＡエンジン２９６は、上記メモリハブ２００が、上記プロセッサ１０４からの介入なしで、上記システムメモリ中の１つの場所から上記システムメモリの別の場所にデータのブロックを移動させることを可能にする。上記バス２９８は、上記システムメモリにおけるデータ転送を取り扱うためのアドレス、コントロール、データバスのような複数の従来のバスラインおよび信号線を含む。当業者によって周知の従来のＤＭＡ演算が、上記ＤＭＡエンジン２９６によって実行され得る。このＤＭＡエンジン２９６は、上記システムメモリ中のリンクリストを読み出し得、プロセッサの介入なしで上記ＤＭＡメモリ演算を実行し、したがって、上記プロセッサ１０４および上記バンド幅制限システムバスを上記メモリ演算から解放する。このＤＭＡエンジン２９６はまた、例えば、上記システムメモリデバイス２４０ａ〜ｄの各々のための、複数のチャンネル上のＤＭＡ演算を収容する回路を含み得る。そのような複数のチャンネルＤＭＡエンジンは、当該分野で周知であり、そして従来の技法を使用して実行され得る。
【００２７】
図２で示される上記データマイニングモジュール２９０ａ〜ｄは、上記個々のメモリデバイス２４０ａ〜ｄに直接接続されているが、他の配列が使用され得る。例えば、これらのデータマイニングモジュール２９０ａ〜ｄは、上記個々のメモリコントローラ２８０ａ〜ｄに、読み出しリクエストがこれらのメモリコントローラ２８０ａ〜ｄによって供給され、そして上記リザルト読み出しデータが、上記データマイニングモジュール２９０ａ〜ｄに直接接続されるか、または上記メモリコントローラ２８０ａ〜ｄを通じて接続されるかいずれかであるように接続され得る。
図２の上記データマイニングモジュール２９０のように使用され得るデータマイニングモジュール３００の１つの実施形態が図３に示される。このデータマイニングモジュール３００はＤＭＡエンジン３０２を含み、このＤＭＡエンジン３０２は上記メモリモジュール２００の上記ＤＭＡエンジン２９６（図２）とよく似た演算をし、プロセッサを使用することなくデータを上記メモリデバイス２４０ａ〜ｄに、またはそれらから転送する。このＤＭＡエンジン３０２は、上記バス２９２に接続され、そして、好ましくは、上記リンクインターフェイス２１０ａ〜ｄの１つおよび上記スイッチ２６０を通じて、プロセッサまたは他のメモリアクセスデバイス（図３には図示せず）によって構成される。例えば、このＤＭＡエンジン３０２は、検索されるべきメモリアドレスの範囲を特定する情報を受信し得る。このＤＭＡエンジン３０２は、次いで、信号をメモリシーケンサ３０６に接続し、このことは、このメモリシーケンサ３０６が、一連の連続的に行なわれる読み出し演算のための適正に時間設定された信号メモリコマンド、およびアドレス信号を生成するようにする。あるいは、このＤＭＡエンジン３０２は、信号を上記個々のメモリコントローラ２８０に付与し得、そしてこのメモリコントローラ２８０は、一連の連続的に行なわれる読み出し演算のための上記コマンドおよびアドレス信号を生成する。
【００２８】
読み出し演算のための上記コマンドおよびアドレス信号が、どのように生成されるのかに関わらず、各読み出し演算は、上記データマイニングモジュール３００に戻る読み出しデータの項目を生じる。しかし、上記読み出し演算を開始する前に、検索データの１つ以上の項目は、プロセッサまたは他のメモリアクセスデバイス（図３には示さず）から接続され、そして検索データメモリ３１４中に記憶される。この検索データメモリ３１４は、次いで、上記サーチデータを１つ以上のコンパレータ３２０に、連続的に出力する。上記データマイニングモジュール３００に含められるこのコンパレータ３２０の数は、好ましくは、上記検索データメモリ３１４に記憶された上記検索データの項目数と対応する。図３に示された上記データマイニングモジュールでは、上記検索データメモリ３１４は、検索データの３つの項目を記憶し、従って、上記検索データメモリ３１４に記憶される上記検索データ項目のそれぞれ１つを受信する、３つのコンパレータ３２０ａ〜ｃがある。しかし、先に述べたように、上記検索データメモリ３１４に記憶された上記検索データ項目の数、および提供された上記コンパレータ３２０の数は所望により変動し得る。また、単一のコンパレータ３２０が、たとえ検索データのいくつかの項目が上記メモリ３１４中に記憶されていたとしても、使用され得る。そのような場合には、この検索データメモリ３１４は、検索データの各項目を上記単一のコンパレータ３２０に連続的に接続し得、そしてデータ項目の検索が行なわれる。しかし、このアプローチは、より所望されない。なぜなら、新しいデータ項目が検索されるたびに、上記メモリデバイス２４０に記憶された全てのデータを繰り返し読み出すことが必要だからである。
【００２９】
上記個々のメモリデバイス２４０ａ〜ｄから受信される読み出しデータの各項目は、全ての上記コンパレータ３２０ａ〜ｃに通される。各コンパレータ３２０ａ〜ｃは、次いで、上記読み出しデータの項目をその個々の検索データ項目と比較し、そして一致があればヒット指示を出力する。図３に示された上記データマイニングモジュール３００の実施形態では、各ヒット指示は、ヒットが存在する上記検索データの項目を識別する情報を含む。このヒット指示は、リザルトメモリ３３０に接続され、これはスタティックランダムアクセスメモリ（「ＳＲＡＭ」）デバイスであり得る。このリザルトメモリ３３０はまた、上記ＤＲＡＭシーケンサ３０６に接続され、上記個々のメモリデバイス２４０ａ〜ｄを通る上記アドレスを受信する。上記リザルトメモリ３３０は、次いで、ヒットがある上記検索データの項目を識別する情報および上記読み出しデータのアドレスの両方を記憶する。あるいは、上記プロセッサまたは他のメモリアクセスデバイスが、メモリ中の各アドレスに記憶される上記読み出しデータを識別し得る場合、上記リザルトメモリ３３０が、ヒットがあった上記検索データの項目を識別する情報を記憶することは不必要であり得る。
【００３０】
上記個々のメモリデバイス２４０ａ〜ｄの上記アドレススペース中の全てのアドレスが検索されたとき、上記リザルトメモリは、その内容を、上記スイッチ２６０を通じて上記リンクインターフェイス２１０ａ〜ｄの１つに接続される上記プロセッサまたは上記バス２９２を通じて他のメモリアクセスデバイスに出力する。
【００３１】
本発明によるメモリハブ３５０の別の例は図４に示される。このメモリハブ３５０もまた、図１の上記コンピューターシステム１００中の上記メモリハブ１４０のように使用され得る。このメモリハブ３５０は、主に、このメモリハブ３５０が接続される全ての上記メモリデバイス２４０ａ〜ｄにサービスするために単一のデータマイニングモジュール３００を使用することによって、図２に示される上記メモリハブ２００とは異なる。したがって、ただ１つのデータマイニングモジュール３００が、図２の上記メモリハブ２００中の上記４つのメモリインターフェイス２７０ａ〜ｄの各々のためのデータマイニングモジュール３００というよりもむしろ、上記全体のメモリハブ３５０のために提供される。しかし、このメモリハブ３５０の全ての他の構成要素は同一であり、そして図２の上記メモリハブ２００中の対応する構成要素と同じ様式で演算する。したがって、簡略にするため、それらの構造および演算の説明は、繰り返されない。
【００３２】
上記メモリハブ３５０中の上記単一のデータマイニングモジュール３００は、上記スイッチ２６０を通じて、全ての上記リンクインターフェイス２１０ａ〜ｄおよび全ての上記メモリデバイス２４０ａ〜ｄに接続される。このデータマイニングモジュール３００は、それが上記メモリハブ２００中で演算したのと本質的に同じ様式で、上記メモリハブ３５０で演算する。しかし、上記メモリデバイス２４０ａ〜ｄの同時の検索を可能にする代わりに、これらメモリデバイス２４０ａ〜ｄの各々は、順に別々に検索される。
【００３３】
先行する記載、本発明の特定の実施形態が、例示の目的のために本明細書中に記載されているが、様々な改変が本発明の思想および範囲から逸脱することなく行なわれ得ることが認識され得る。したがって、本発明は、添付された請求項によることを除き制限されない。
【図面の簡単な説明】
【００３４】
【図１】図１は、本発明の実施形態が実行され得るメモリハブ基本設計にあるメモリモジュールを有するコンピューターシステムのブロック図である。
【図２】図２は、図１のコンピューターシステムまたはその他のプロセッサーを基本とするシステム内で使用され得るメモリモジュールとともに使用するための、本発明の実施形態に従うメモリハブのブロック図である。
【図３】図３は、図２のメモリハブ内で使用されるデータマイニングモジュールの１つの実施形態のブロック図である。
【図４】図４は、図１のコンピューターシステムまたはその他のプロセッサを基本とするシステム内で使用され得るメモリモジュールとともに使用するための、本発明の別の実施形態に従うメモリハブのブロック図である。
【図１】
2007504531.tif 000003
【図２】
2007504531.tif 000004
【図３】
2007504531.tif 000005
【図４】
2007504531.tif 000006
【国際調査報告】
2007504531.tif 000007
2007504531.tif 000008
2007504531.tif 000009