JP4532542B2 - メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法 - Google Patents

メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法 Download PDF

Info

Publication number
JP4532542B2
JP4532542B2 JP2007504095A JP2007504095A JP4532542B2 JP 4532542 B2 JP4532542 B2 JP 4532542B2 JP 2007504095 A JP2007504095 A JP 2007504095A JP 2007504095 A JP2007504095 A JP 2007504095A JP 4532542 B2 JP4532542 B2 JP 4532542B2
Authority
JP
Japan
Prior art keywords
data
memory
command
command header
transactions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007504095A
Other languages
English (en)
Other versions
JP2007529828A (ja
Inventor
レニック カーステン
Original Assignee
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2007529828A publication Critical patent/JP2007529828A/ja
Application granted granted Critical
Publication of JP4532542B2 publication Critical patent/JP4532542B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、プロセッサベースのシステムに、より詳細には、いくつかのメモリデバイスを、プロセッサまたは他のメモリアクセスデバイスへ結合するメモリハブを持つメモリモジュールを有するプロセッサベースのシステムに関する。
(関連出願の相互参照)
本願は、2004年3月18日に出願された、名称「SYSTEM AND METHOD FOR ORGANIZING DATA TRANSFERS WITH MEMORY HUB MEMORY MODULES」の米国特許出願番号10/804,608号の優先権を主張するものであり、参照することにより本書に組み込まれる。
コンピュータシステムなどのプロセッサベースのシステムは、プロセッサからアクセスされる命令およびデータを格納するシステムメモリとして、DRAM(Dynamic Random Access Memory)デバイスなどの、メモリデバイスを使用する。典型的なコンピュータシステムにおいて、プロセッサはプロセッサバスおよびメモリコントローラを通してシステムメモリと通信する。プロセッサはメモリ要求を発行し、メモリ要求は、読み出しコマンドなどのメモリコマンド、およびデータまたは命令が読み出され、またはデータまたは命令が書き込まれる位置を指定するアドレスを含む。メモリコントローラは、コマンドおよびアドレスを使用して、行と列のアドレスならびに適切なコマンド信号を発生させ、それは、システムメモリに適用される。コマンドおよびアドレスに応答して、システムメモリとプロセッサの間でデータが転送される。メモリコントローラはしばしば、システムコントローラの一部であって、これは、PCIバスなどの拡張バスにプロセッサバスを結合するためのバスブリッジ回路をも含む。
メモリデバイスの動作速度は継続的に増加しているが、動作速度におけるこの増加は、プロセッサの動作速度における増加と足並みをそろえてきていない。プロセッサをメモリデバイスに結合するメモリコントローラの動作速度における増加はさらに遅かった。メモリコントローラとメモリデバイスの速度が比較的遅いことは、プロセッサおよびメモリデバイスの間のデータ処理能力を制限する。
メモリデバイスへとメモリデバイスからのデータ処理能力を増加させるための1つの対応方法は、図1に示されるようにメモリハブを通してプロセッサに結合される複数のメモリデバイスを使用することである。メモリハブ構造を使用するコンピュータシステム100は、特定の計算またはタスクを実行するために特定のソフトウェアを実行することなどの、様々なコンピューティング機能を実行するためのプロセッサ104を含む。プロセッサ104は、通常、アドレスバス、コントロールバス、およびデータバスを含むプロセッサバス106を含む。プロセッサバス106は一般に、通常はSRAM(Static Random Access Memory)の、キャッシュメモリ108に結合される。最終的に、プロセッサバス106は、時々バスブリッジとも呼ばれる、システムコントローラ110に結合される。
システムコントローラ110は、プロセッサ104に結合されるメモリハブコントローラ128を含む。メモリハブコントローラ128はまた、バスシステム134を通していくつかのメモリモジュール130a〜nに結合されている。各メモリモジュール130a〜nは、バス150として集合的に示されている、コマンド、アドレス、およびデータバスを通して、いくつかのメモリデバイス148に結合されるメモリハブ140を含む。メモリハブ140は、コントローラ128とメモリデバイス148の間のメモリ要求および応答を効率的に経路指定する。1つのメモリモジュール130a〜nが前のメモリアクセスに応答している間に、プロセッサ104が別のメモリモジュール130a〜nにアクセスできるので、この構造を採用しているコンピュータシステムは、より高い処理能力を有することができる。例えば、システムにおけるメモリモジュール130a〜nの1つがプロセッサ104に読み出しデータを供給する準備している間に、プロセッサ104は、システムの別のメモリモジュール130a〜nの1つに書き込みデータを出力することができる。メモリハブ構造を使用するコンピュータシステムの動作効率は、メモリシステムのデータ処理能力を大きく増加させることを、より現実的にできる。メモリハブ構造もまた、コンピュータシステムにおいて大きく増加したメモリ容量を提供することができる。
システムコントローラ110はまた、プロセッサ104の他のさまざまなコンポーネントのための通信経路としての役割をする。より詳細にはシステムコントローラ110は、グラフィックコントローラ112に通常結合されているグラフィックポートを含み、これは次にビデオ端末114に結合される。システムコントローラ110はまた、操作者がコンピュータシステム100と対話することを可能とするために、キーボードやマウスなどの、1つまたは複数の入力装置118に結合されている。一般に、コンピュータシステム100はまた、システムコントローラ110を通してプロセッサ104に結合されているプリンタなどの、1つまたは複数の出力装置120を含む。1つまたは複数のデータストレージ124もまた通常、プロセッサ104が内部または外部のストレージメディア(示されない)との間でデータを格納し、またはデータを取り出すことを可能とするために、システムコントローラ110を通してプロセッサ104に結合されている。典型的なストレージメディア124は、例えばハードディスクならびにフロッピーディスク、カセットテープ、およびCD−ROM(Compact Disk Read-Only Memory)が含まれる。
メモリハブ構造は、いくつかのメモリモジュール130のそれぞれにおいてメモリ要求が同時に処理されることを可能にさせるので、データがメモリに格納され、そこから取り出される速度を大きく増加させることが可能である。実際に、それぞれメモリハブを含むいくつかのメモリモジュールを使用するメモリシステムは、バスシステム134がメモリシステムのデータ処理能力を制限する「ボトルネック(bottleneck)」となりえるような高い速度で、データを集合的に送受信することができる。
メモリハブ構造を使用するメモリシステムのデータ処理能力を最大にするために2つの技法が使用されてきた。第1に、伝統的なアドレス、データ、およびコントロールバスを使用することよりむしろ、それぞれのメモリ要求すなわち「トランザクション(transaction)」に対するアドレス、データおよび制御ビットが単一のパケットで一緒に送られる。このパケットは、コマンドヘッダーを含み、その後に続いて書込みまたは読出しのデータを含む。コマンドヘッダーは、書込みまたは読出しコマンドなどのメモリコマンドに対応するビット群、要求が向けられるメモリモジュールを指定する識別ビット群、およびその要求でアクセスされている指定されたメモリモジュールにおいてメモリデバイス148のアドレスを指定するアドレスビット群を含む。コマンドヘッダーはまた、コマンドヘッダーに続く書込みまたは読出しのデータの量を指定してもよい。パケット化されたメモリシステムを使用することにより、メモリハブコントローラ128は、コマンド、アドレス、および書込み要求の場合には書込みデータ信号のシーケンスを転送する代わりに、単に1つのパケットを送信することによって、メモリ要求を発行することが可能となる。結果として、メモリハブコントローラ128が、より速い速度でメモリ要求を発行することができる。さらに、パケット化されたメモリシステムは、各メモリ要求の処理を追跡し続けることから、メモリハブコントローラ128を開放させる。代わりに、メモリハブコントローラ128は、パケットを送信するだけでよい。メモリ要求が向けられているメモリモジュール130におけるメモリハブ140はその後、メモリハブコントローラ128とのさらなる相互作用なしでメモリ要求を処理する。読み出し要求の場合に、メモリハブ140は、直接的にまたは介在しているメモリモジュール130を通して、メモリハブコントローラ128にパケットを転送し返し、それは、読み出しデータならびに読み出しデータを特定するコマンドヘッダー内の識別ビット群を含む。メモリハブコントローラ128はその識別ビット群を使用して、その読み出しデータを特定のメモリ要求に関連付ける。
メモリハブ構造を使用するメモリシステムのデータ処理能力を最大にするために使用されてきた第2の技法は、高速の「ダウンストリーム」および「アップストリーム」の別々のバスを使用するバスシステム134を実装することである(図1では示されない)。高速のダウンストリームバスは、メモリハブコントローラ128からメモリモジュール130へ、およびメモリモジュール130から、メモリハブコントローラ128からさらに遠くに位置するメモリモジュール130へ、データを結合する。高速アップストリームバスは、メモリモジュール130からメモリハブコントローラ128へ、およびメモリモジュール130から、メモリハブコントローラ128のより近くに位置するメモリモジュール130へ、データを結合する。
提案されてきたメモリハブ・システムのためのパケットを形成する1つの対応方法は、ここで図2を参照して説明されるであろう。ここで、いくつかのメモリアクセスまたは「トランザクション」のそれぞれからの32ビットデータのグループのいくつかが、図2の右手側に示されている。トランザクションT0は、7つの32ビットデータのグループD0〜D6から成り、96ビットのバス162上でデータ編成ユニット160に結合されている。バス162は、それゆえに、コアクロックCCLK信号、すなわちメモリハブ140において内部的に使用されるクロック信号のそれぞれの周期に、データ編成ユニット162に3つの32ビットデータのグループを結合する能力がある。トランザクションT1もまた、7つのデータの32ビットのグループD0〜D6から成り、そしてそれは、それぞれのCCLK周期に、32ビットデータの2つのグループをデータ編成162に結合する能力がある64ビットのバス164上で、データ編成ユニット160に結合されている。トランザクションT2もまた、データの5つの32ビットグループD0〜D4のみから成り、そしてまたそれは、それぞれのCCLK周期に、32ビットデータの2つのグループを64ビットのバス166上で、データ編成ユニット160に結合されている。最後に、トランザクションT3は、12の32ビットデータのグループD0〜D11から成り、そしてそれは、それぞれのCCLK周期に、32ビットデータの4つのグループをデータ編成162に結合する能力がある128ビットのバス168上で、データ編成ユニット160に結合されている。このように、異なったビット幅を有する個々のバス上にデータを出力するメモリハブ140においてコンポーネントがデータ編成ユニット160にインタフェース結合することができることは明らかである。
提案されたように、トランザクションT0〜T3のデータのグループがデータ編成ユニット160でクロック同期された後、個々のパケットに再編成される。これらのパケットは、パラレルにデータ編成ユニットからクロック同期出力され、次にパラレルシリアル変換器174に結合され、それは次に最大8つの32ビットデータのグループD0〜D7内のパケットを出力する。図2に示されている実施形態において、データは、高速システムクロックのSCLK信号によって、パラレルシリアル変換器174からクロック同期出力される。データ編成ユニット160から送られるデータの量は、コアクロック信号とシステムクロック信号の間の相対周波数ならびにバス134の幅に依存するであろう。様々な幅の様々な内部バスがデータ編成ユニット160に結合できるように、システムを設計してもよい。その結果、技術の進歩またはシステムの特定な特性によって決定されるコアクロック周波数で、メモリハブ140を設計してもよく、そのシステムのクロック周波数は、それ自身の固有の設計上の制限により決定されてきていてもよい。図2に示される実施形態において、システムクロック信号はコアクロックの周波数の8倍の周波数を有する。
各パケットはトランザクションにおいて、32ビットのコマンドヘッダーおよび続く32ビットデータのグループを含む。「レーン」として知られる32ビットのグループは、パラレルにデータ編成ユニット160からクロック同期出力される。各トランザクションT0〜T3のレーンのグループもまた、図2に示されている。システムクロック信号のそれぞれの区間に対する、パラレルシリアル変換器174からクロック同期出力されるデータのレーン数は、高速バスシステム134の幅(この例においては32ビット)に依存するであろう。
ダウンストリームおよびアップストリームの別々のバス、および図2を参照して説明されたように編成されたメモリパケットを使用することは、メモリモジュール130との間のデータ処理能力を増加させるに関して役立つだろうが、特に各パケットにおけるデータの量が変化する場合、トランザクションのパケットの大きさが高速バスシステム134の容量より少ないかもしれないので、データ処理能力が、いまだ時々、最適な状態よりも少ないだろう。さらに図2を参照すると、各トランザクションのための32ビットデータのグループがパケットに配置される。上で説明されたように、各トランザクションのための最初の32ビットデータのグループの前に、32ビットのコマンドヘッダーCHが挿入される。トランザクションT0が7つの32ビットデータのグループD0〜D6から成るので、トランザクションT0におけるコマンドヘッダーCHとデータは最初のレーングループ175の8つのレーンすべてを占める。結果として、高速バスシステム134の8つのレーンのすべてが使用されるであろう。同様に、トランザクションT1もまた、7つの32ビットデータのグループD0〜D6から成るため、第2のレーングループ176の8つのレーンすべてが占有されるであろう。結果的に、高速バスシステム134の8つのレーンのすべてが再度満たされるであろう。しかし、トランザクションT2は、5つの32ビットデータのグループD0〜D4のみから成っているので、第3のレーン177の6つ(トランザクションT2におけるコマンドヘッダーと5つの32ビットデータのグループ)のレーンのみが占有されるであろう。第3のレーングループ177における2つの空のレーンは、高速バスシステム134が、2回の高速システムクロック信号期間の間、パケットデータを全く運ばないという結果になる。
トランザクションT3は、12の32ビットデータのグループD0〜D11から成っているので、トランザクションT3における最初の7つの32ビットデータのグループD0〜D6は、(32ビットのコマンドヘッダーを加えて、)第4のレーングループ178の8つのレーンすべてを満たすであろう。結果として、高速バスシステム134は完全に占有されるであろう。しかしながら、残る5つの32ビットデータのグループD7〜D11は、第5のレーングループ179の8レーンの内の5つのみを占めるであろう。したがって、3回のシステムクロック信号期間の間で、高速バスシステム134を通してデータが結合されないであろう。結果として、メモリシステムのデータ処理能力は、高速バスシステム134の8つのレーンすべてが常に満たされた場合に達成されうるデータ処理能力より、かなり少なくなるかもしれない。
データ編成方法が特定のバス幅を有するコンピュータシステム、特定の大きさを持つデータのグループ、などに関して記述されてきたが、同一のまたは同様の問題が、他の設計パラメータを有するコンピュータシステムにとって、存在するであろうことが理解されたい。
したがって、1つの高速メモリバス・システムの全能力が利用されることを可能とする方法で、メモリハブ・システムにおいてメモリモジュールとの間で結合されたデータを編成するシステムおよび方法への必要性がある。
メモリモジュールのためのメモリハブは、メモリモジュールによって送信されたメモリトランザクションを編成するシステムを含む。編成システムは、それぞれがコマンドヘッダーおよびデータを含むパケットにメモリトランザクションを編成し、データは可変数のデータ・ビットを有することができる。編成システムは、それぞれが複数のレーンを含むレーングループにコマンドヘッダーおよびデータを編成する。それぞれのレーンは、複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む。編成システムは、それぞれのレーングループにおけるすべてのレーンが、コマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、レーングループを編成する。編成システムは、メモリハブからの送信のために、レーングループのそれぞれを、レーンのシリアルストリームに変換するようさらに動作可能である。送信されるレーンのそれぞれは、複数のパラレルコマンドヘッダー・ビットまたはパラレルデータ・ビットのいずれかを含む。
本発明の実施形態は、高速のダウンストリームバスおよび高速のアップストリームバスを通して、いくつかのメモリハブ・モジュールに結合されているメモリハブコントローラに向けられている。より詳細には、本発明の実施形態は、バスの容量の実質的にすべてが利用されるように、ダウンストリームおよびアップストリームのバスに結合する前にデータが編成されるシステムおよび方法に向けられている。一定の詳細が以下に詳しく説明され、本発明の様々な実施形態の十分な理解を提供する。しかしながら、本発明がこれらの特定の詳細を使用しないで実施できることは、当業者にとって明確であろう。他の場合において、本発明を不必要にあいまいにすることを回避するために、周知の回路、制御信号、およびタイミングプロトコルは、詳細に示されてきていない。
本発明の1つの例によるメモリハブ・システムのためにパケットを形成する方法は、ここで図3を参照して説明されるであろう。図3に示されるように、いくつかのメモリアクセスまたは「トランザクション」のそれぞれからのいくつかの32ビットデータのグループは、追加的トランザクションT4の一部が図3においては示されていることを除いて、それらの間の差異を示す目的のために図2に示されたものと同一である。前の図のように、トランザクションT0は7つの32ビットデータのグループD0〜D6から成り、また、トランザクションT1は7つの32ビットデータのグループD0〜D6から成り、トランザクションT2は5つの32ビットデータのグループD0〜D4から成り、そしてトランザクションT3は12の32ビットデータのグループD0〜D11から成る。
本発明の1つの例によると、トランザクションT0〜T4のためのデータのグループは、コアクロック信号に対応してデータ編成ユニット180に同期入力され、それらは個々のパケットに再編成される。図3の例において、各パケットもまた、32ビットのコマンドヘッダーCHと、続くそのトランザクションにおける32ビットデータのグループを含む。前の図のように、32ビットのグループまたはレーンは、パラレルにデータ編成ユニット180からクロック同期出力され、次にシステムクロック信号に対応して、パラレルシリアル変換器182によって、シリアルデータに変換される。
トランザクションのT0およびT1は、それぞれコマンドヘッダーと7つの32ビットデータのグループD0〜D6から成り、図2を参照して上で説明されたのと同じ方法で、それぞれ第1のレーングループ190および第2のレーングループ192の8つのレーンすべてを占有する。同様に、トランザクションT2もまた、32ビットデータのグループD0〜D4の5つのみから成るので、第3のレーングループ194の6つ(コマンドヘッダーとトランザクションT2における5つの32ビットデータのグループ)のレーンのみが満たされる。しかし、図2の例において空のまま残されていた第3のレーングループ194の続く3つのレーンは、代わりに、トランザクションT3のためのコマンドヘッダーCHおよび最初の32ビットデータのグループD0によって満たされる。結果として、システムクロック信号の個々の期間に、高速バスシステム134を通して全レーンのデータが結合される。
さらに図3を参照して、トランザクションT3の次の8つのデータのグループD1〜D8は、高速バスシステム134がすべて利用されるように、第4のレーングループ196の8つのレーンすべてを満たすべく使用される。トランザクションT3のためのデータD9〜D11を運ぶ残る3つのレーンは、第5のレーングループ198に配置される。しかし有利に、第5のレーングループ198における残る5つのレーンは、トランザクションT4のための32ビットのコマンドヘッダーCHおよび最初の4つの32ビットデータのグループD0〜D3で満たされる。同様の方法で、高速バスシステム134がすべて利用されるように、メモリトランザクションのためのコマンドヘッダーおよびデータはいつも、前のトランザクションからのデータに続く。したがって、高速バスシステム134を通して結合されるべく待機しているメモリトランザクションからのデータがあると仮定すると、バスシステム134において決してアイドル(idle)期間は存在しない。結果として、メモリシステムのデータ処理能力は最大化される。
図3のデータ編成ユニット180の別の利点は、CCLK信号の周波数、およびパラレルシリアル変換器182からのデータを同期化するシステムクロックSCLKの周波数、ならびに外部バス134の幅、および他の可能性のある要素に基づいて、それぞれのレーングループ190〜198における、データのレーン数を構成できることである。したがって、科学技術の進歩またはシステムの特定の特性によって決定されたCCLK周波数を用いて、メモリハブ140を設計することができ、SCLK周波数は、それ自身の設計上の制約によって決定することができ、このようにCCLKの周波数比をSCLKの周波数の周波数に変える。さらに、あるメモリハブ140は、他のものより広いバス134を持つように設計できる。しかし、それぞれのCCLK周期にデータ編成ユニット180から同期出力されるレーングループの数を変えることが可能であることにより、メモリハブ140の中の回路を変更することなく、これらの変化に対応可能である。データ編成ユニット180は、初期化の間の入出力ポートを介してなどの、好適な手段によって、特定の数のレーンをそれぞれのCCLK周期に出力するようにプログラムすることが可能である。
図3において示される方法で、メモリデバイス148との間で結合されたデータを編成することが可能なメモリハブ200の一例が、図4において示されている。メモリハブ200は、ダウンストリーム受信インタフェース210、アップストリーム送信インタフェース212、アップストリーム受信インタフェース214、およびダウンストリーム送信インタフェース216を含む。ダウンストリーム受信インタフェース210は、メモリハブコントローラ128(図1)またはアップストリームのメモリモジュール130のいずれかから、メモリモジュール130へのデータを結合するために使用される。アップストリーム送信インタフェース212は、そのメモリモジュール130から、メモリハブコントローラ128またはアップストリームメモリモジュール130のいずれかへデータを結合するために使用される。アップストリーム受信インタフェース214は、ダウンストリームのメモリモジュール130から、そのメモリモジュール130へデータを結合するために使用される。最後に、ダウンストリーム送信インタフェース216は、そのメモリモジュール130から、ダウンストリームのメモリモジュール130へデータを結合するために使用される。意義深いことは、アップストリーム送信インタフェース212が、高速アップストリームバス224に結合される前にコマンドヘッダーおよびデータを編成する、データ編成システム220を含むことである。データ編成システム220の一例の構造および動作は、図5を参照して説明されるであろう。
インタフェース210〜216は、バス228によって表されている複数のバスおよび信号線を通してスイッチ260に結合されている。バス228は従来方式であり、受信インタフェース210、224に結合されている書き込みデータバス、および送信インタフェース212、222に結合されている読み出しデータバスを含む。
スイッチ260は、4つのメモリインタフェース270a〜dに結合され、次にメモリデバイス160に結合されている(図1)。メモリデバイス160の各セットのために、別々および独立のメモリインタフェース270a〜dを提供することによって、メモリハブ200は、単一チャンネルのメモリ構造で典型的に出現するバスまたはメモリバンクの競合を回避する。スイッチ260は、バス274によって表されている、複数のバスおよび信号線を通して各メモリインタフェースに結合される。インタフェース210〜216をメモリインタフェースに結合することに加えて、スイッチ260もまた、メモリインタフェース210〜216を互いに結合でき、メモリパケットが、メモリモジュール130を通して、ダウンストリームまたはアップストリームへ、別のメモリモジュール130またはメモリハブコントローラ128のいずれかに結合されることを可能とする。
本発明の一実施形態においては、各メモリインタフェース270a〜dは特に、それが結合されているメモリデバイス148に適合させる(図1)。より詳細には、各メモリインタフェース270a〜dは特に、自身が結合しているメモリデバイス148により、受信および発生された特定の信号をそれぞれ、提供および受信するように適合される。また、メモリインタフェース270a〜dは、異なるクロック周波数で動作するメモリデバイス148とともに動作することが可能である。結果として、メモリインタフェース270a〜dは、メモリハブ200、およびメモリハブ200に結合されたメモリデバイス148との間のインタフェースで発生するかもしれない変化からプロセッサ104を隔離し、メモリデバイス148がインタフェース接続できる、より制御された環境を提供する。
スイッチ260は、さまざまな従来の、または今後開発されるスイッチのいずれでもありえる。例えばスイッチ260は、クロスバースイッチでもよく、またはクロスバースイッチと同等レベルの結合性は提供しないが、それにもかかわらず、バスインタフェース210〜216をメモリインタフェース270a〜dのそれぞれに結合することが可能なマルチプレクサのセットでもよい。スイッチ260もまた、どのメモリアクセスが他のメモリアクセス上で優先権を受けるべきかを決定するためのアービトレーションロジック(示されない)を含みことができる。当業者にとって、この機能を実行するバス調停はよく知られている。
さらに図4を参照して、メモリインタフェース270a〜dのそれぞれは、個々のメモリコントローラ280、個々の書き込みバッファ282、および個々のキャッシュメモリ・ユニット284を含む。メモリコントローラ280は、結合しているメモリデバイス148へ、制御、アドレス、およびデータ信号を提供すること、および結合しているメモリデバイス148からのデータ信号を受信することによって、従来的なメモリコントローラと同じ機能を実行する。しかし、メモリコントローラ280によって送信および受信される信号の特徴は、メモリデバイス148が送信および受信するように適合させられている信号の特徴に対応するであろう。キャッシュメモリ・ユニット284は、当技術分野にて周知のとおりに、タグメモリ、データメモリ、比較器、などを含む、キャッシュメモリの通常のコンポーネントを含む。書き込みバッファ282およびキャッシュメモリ・ユニット284において使用されているメモリデバイスは、DRAMデバイス、SRAM(Static Random Access Memory)デバイス、他の種類のメモリデバイス、または3つのすべての組み合わせのいずれであってもよい。さらに、キャッシュメモリ・ユニット284において使用されるこれらのメモリデバイス、ならびに他のコンポーネントは、組み込みまたはスタンドアロンのデバイスのいずれかであってもよい。
それぞれのメモリインタフェース270a〜dにおける書き込みバッファ282は、読み出し要求が処理されている間、書き込み要求を格納するために使用される。そのようなシステムにおいて、書き込み要求が向けられるメモリデバイス148が、前の書込みまたは読出し要求の処理で動作中(busy)であっても、プロセッサ104は、そのシステムメモリデバイスに書き込み要求を発行できる。書き込みバッファ282は、好ましくは、スイッチ260から受信した、読み出し要求が介在するかもしれない書き込み要求のいくつかを蓄積し、その後メモリデバイス148のそれぞれに読み出し要求の介在なしに連続してそれらを適用する。この様に書き込み要求をパイプライン処理することによって、読み出し/書き込みの切り換えにおいて本来的な遅延が回避されるため、より効率的な処理が可能である。読み出し要求が処理されることを可能とする書き込み要求をバッファする能力もまた、読み出し要求が、時間順かかわらず第一優先を与えられうるので、メモリの読み出し待ち時間を大きく減らすことができる。
各メモリインタフェース270a〜dにおけるキャッシュメモリ・ユニット284の使用によって、データが最近メモリデバイス148との間で読み出されまたは書き込まれた場合において、メモリデバイス148がそのようなデータを提供するのを待つことなく、プロセッサ104が個々のメモリデバイス148に向けられた読み出しコマンドに対応してデータを受け取ることが可能となる。キャッシュメモリ・ユニット284はこのように、メモリデバイス148a〜dの読み出し待ち時間を減少させ、コンピュータシステムのメモリ処理能力を最大化する。同様に、プロセッサ104はキャッシュメモリ・ユニット284に書き込みデータを格納でき、次に、同じメモリインタフェース270a〜dにおけるメモリコントローラ280が、キャッシュメモリ・ユニット284からそれが結合されているメモリデバイス148へ書き込みデータを転送している間に、他の機能を実行できる。
メモリハブ200内にさらに含まれて入るものは、試験バス292を通してスイッチ60に結合されている自己診断モジュール290かもしれない。自己診断モジュール290はさらに、SMBus(System Management Bus)、またはJTAG(Joint Test Action Group)およびIEEE1149.1標準による保守バスのような、保守バス(maintenance bus)296に結合される。SMBusおよびJTAG標準の両方は、当技術分野で通常の知識を有するものによってよく知られている。一般に、保守バス296は、メモリ試験パラメータを設定し、試験結果を受け取るために、自己診断モジュール290へのユーザアクセスを提供する。例えば、ユーザは、保守バス296を介して別のPCホストを結合し、メモリデバイス148に適用される信号間の相対的なタイミングを設定できる。同様に、メモリデバイス148から受信される信号間の相対的なタイミングのデータ指標は、保守バス296を介してPCホストに結合されうる。
バス288を通してスイッチ260に結合されるDMAエンジン286が、さらにメモリハブ200に含まれているかもしれない。DMAエンジン286は、メモリハブ200が、プロセッサ104からの介入なしで、1つのメモリデバイス148の1つの位置からそのメモリデバイスの別の位置へ、データのブロックを移動することを可能にする。バス288は、システムメモリにおけるデータ転送を取り扱うために、アドレス、制御、データバス、および同様なものなどの、複数の従来的バス線および信号線を含む。通常の知識を有する当業者によってよく知られている従来的DMA操作は、DMAエンジン286によって実装できる。
メモリモジュール130は、高速バス132、134のそれぞれの部分が2点間でのみ結合されるポイント・ツー・ポイント結合配置においてメモリハブコントローラ128に結合されて示される。しかし、他のトポロジーをもまた使用できることを理解されたい。例えば、単一のダウンストリームのバス(示されない)および単一のアップストリームのバス(示されない)がメモリモジュール130のすべてに結合される、マルチドロップ配置を使用することが可能であるかもしれない。また、切り換えトポロジーは、メモリハブコントローラ128がスイッチ(示されない)を通してメモリモジュール130のそれぞれに選択的に結合される形で使用されうる。使用されうる他のトポロジーは、当業者にとっては明らかであろう。
図4のメモリハブ200において使用されるデータ編成システム220の1つの実施形態が図5に示される。データ編成システム220もまた、高速ダウンストリームバス222にデータを結合するために、メモリハブコントローラ128において使用されうる。受信インタフェースの部分210、224(図4)、および高速バス132、134からのメモリパケットを捕捉するメモリハブコントローラ128における受信インタフェース、は比較的簡単であり、適合するシステムの設計は、充分に当業者の能力の範囲内である。
データ編成システム220は、高速バス132、134を通して結合されることになる32ビットデータのグループを受け取るデータバッファ230を含む。メモリハブコントローラ128におけるデータ編成システム220の場合において、データの源は、プロセッサ104(図1)または他の任意のメモリアクセス装置であるかもしれない。メモリモジュール130の場合において、メモリモジュール130におけるメモリデバイス148から、または別のメモリモジュール130から、データを発生させることができる。いずれの場合でも、図5で図式的に示されるように、データのグループはコアクロック信号に対応してデータバッファ230にクロック同期入力される。また図5に図式的に示されるように、異なるトランザクションに対してデータバッファ230に格納されるデータは、異なる長さである。
データ編成システム220に含まれるものは、メモリパケットのためのコマンドヘッダーを格納する小さいバッファである、コマンド待ち行列234である。コマンド待ち行列234もまた、コアクロック信号によってクロック同期され、コマンドヘッダーのための情報を提供する他の多くのコンポーネントとインタフェース接続するが、これらのコンポーネントは簡潔さおよび明確さのために図5から省略されている。
データバッファ230内に格納されているデータ、およびコマンド待ち行列234内に格納されているコマンドヘッダーは、調停ユニット238により制御されるマルチプレクサ236に結合されている。マルチプレクサ236は、データバッファ230に格納されているトランザクションの1つのためのデータを選択し、かつコマンド待ち行列234から対応するコマンドヘッダーを選択する。調停ユニット238は、マルチプレクサに、さまざまなアルゴリズムに基づいて、トランザクションのためのデータおよびコマンドヘッダーを選択させることができる。例えば調停ユニット238は、ダウンストリームのメモリモジュール130からの応答を含むトランザクションに優先権を与え、それにより、メモリモジュール130におけるメモリデバイス148からのローカルトランザクションを送信する前に、バス224(図4)上に、そのようなトランザクションのアップストリームを送信することができる。逆に、調停ユニット238は、ローカル応答を含むトランザクションに優先権を与えることができる。あるいは、調停ユニット238もまた、ローカルトランザクション、およびダウンストリームまたはアップストリームのトランザクションを交互に送信することができる。より簡単に、調停ユニット238は、メモリハブ140によって受け取られた順番で、トランザクションを送信するかもしれない。各メモリハブ140における調停ユニット238は同じ方法で動作することが望ましいが、代替の実施形態において、異なるメモリハブ140における調停ユニットは異なるように別様に動作できる。調停ユニット238の動作における他の変形、および調停ユニットを実施するための論理回路は、当業者にとって明白であろう。
意義深いことは、調停ユニット238がトランザクションを選択する順番にかかわらず、調停ユニットは、マルチプレクサ236がマルチプレクサ236の出力において、レーングループ240のすべてのレーンが満たされるように、選択されたトランザクションのためのコマンドヘッダーおよびデータを、マルチプレクサ236に編成させることである。レーングループ240は次に、例えばパラレルにロードされる一連のシフトレジスタであることができる、パラレルシリアル変換器244に結合される。図3を参照して上で説明されたように、データは次に、システムクロック信号によってパラレルシリアル変換器244からクロック同期出力され、高速バス222、224の1つに渡される。各レーングループ240のすべてのレーンを満たすことによって、高速バス222、224の全データ処理能力が利用される。
本発明の特定の実施形態は、説明の目的のためにここに記述されてきたが、本発明の精神および範囲から逸脱することなく、様々な修正がなされうることを理解されたい。従って、付加されている請求の範囲によってを除いて、本発明は制限されない。
メモリハブ構造を有するいくつかのメモリモジュールに結合されているメモリハブコントローラを有するコンピュータシステムのブロック図である。 図1に示されたメモリモジュールとの間で結合されるデータを編成するために提案されてきた1つの対応方法を示す概略図である。 本発明の1つの例による、図1に示されたメモリモジュールとの間で結合するためデータを編成するための1つの対応方法を示す概略図である。 図1のメモリモジュールにおいて使用されうる、図3に示されるようにデータを再編成する能力があるメモリハブのブロック図である。 メモリハブコントローラ、図4のメモリハブ、または他のあるメモリハブ設計において使用可能なデータ編成システムのブロック図である。

Claims (48)

  1. 複数のメモリデバイスと、
    前記メモリデバイスに結合されたメモリコントローラと、
    前記メモリコントローラに結合された少なくとも1つの受信インタフェースと、
    それぞれの送信インタフェースが、コマンドヘッダー、および可変数のデータ・ビットを有するデータをそれぞれ備えるメモリトランザクションを受信し、それぞれの送信インタフェースが、複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む複数のレーンをそれぞれが含むレーングループに前記コマンドヘッダーおよびデータを編成するデータ編成システムを含み、前記データ編成システムが、各レーングループの前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記レーングループを編成し、前記データ編成システムが、前記送信インタフェースによる送信のために、前記レーングループのそれぞれを前記レーンのシリアルストリームに変換するように動作可能であり、前記送信されるレーンのそれぞれが、複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む、前記メモリコントローラに結合され、メモリトランザクションを送信する少なくとも1つの送信インタフェースと
    を備えることを特徴とするメモリハブと
    を備えることを特徴とするメモリモジュール。
  2. 前記レーングループのそれぞれが8つのレーンを備えることを特徴とする請求項1に記載のメモリモジュール。
  3. 前記レーンのそれぞれがパラレル32ビットのコマンドヘッダーまたはデータを備えることを特徴とする請求項1に記載のメモリモジュール。
  4. 前記少なくとも1つの送信インタフェースが、それぞれが前記データ編成システムを備えるアップストリーム送信インタフェースおよびダウンストリーム送信インタフェースを備えることを特徴とする請求項1に記載のメモリモジュール。
  5. 前記メモリデバイスがDRAM(Dynamic Random Access Memory)デバイスを備えることを特徴とする請求項1に記載のメモリモジュール。
  6. 前記データ編成システムが、
    各レーングループのすべての前記レーンが、コマンドヘッダーまたはデータ・ビットで満たされるように、前記レーングループを編成し、コマンドヘッダー・ビットまたはデータ・ビットのいずれかを備えた複数のレーンをそれぞれが含むレーングループに、前記コマンドヘッダーおよびデータを編成するデータ編成ユニットと、
    前記送信インタフェースによる送信のために前記レーンのシリアルストリームに、前記レーングループのそれぞれを変換するパラレルシリアル変換器と
    を備えることを特徴とする請求項1に記載のメモリモジュール。
  7. 前記データ編成ユニットが、
    複数の前記トランザクションのための個々のデータを格納するデータバッファであって、前記トランザクションのそれぞれに対する前記データを選択的に渡すデータバッファと、
    複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列であって、前記トランザクションのそれぞれに対する前記コマンドヘッダーを選択的に渡して、対応する前記トランザクションのための前記データが前記データバッファから渡されることとなるコマンド待ち行列と
    を備えることを特徴とする請求項6に記載のメモリモジュール。
  8. 前記データ編成ユニットが、
    前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーを、マルチプレクサ制御信号に対応して出力ポートに結合するように動作可能なマルチプレクサであって、前記トランザクションのそれぞれのための前記データバッファ中に格納されている前記データ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されている前記コマンドヘッダーを受信するために結合されているマルチプレクサと、
    前記データおよびコマンドヘッダーを示す情報に対応する前記制御信号を生成し、前記トランザクションの少なくとも1つのために、データ、またはコマンドヘッダーおよびデータのいずれかより成るレーングループを、前記マルチプレクサの前記出力ポートに結合するようにさせるように、前記マルチプレクサに動作させる、前記データバッファおよび前記コマンド待ち行列の少なくとも1つに結合され、おのおの前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのためのデータおよびコマンドヘッダーを示す前記情報を受け取る調停ユニットと
    をさらに備えることを特徴とする請求項7に記載のメモリモジュール。
  9. 前記マルチプレクサの出力ポートにて、前記レーングループを前記レーンのシリアルストリームへ変換するように動作可能である、前記マルチプレクサの前記出力ポートに結合されたパラレルシリアル変換器をさらに備えることを特徴とする請求項8に記載のメモリモジュール。
  10. 前記データ編成システムが、クロック信号のそれぞれの周期の間に前記データ編成システムから結合されるレーングループのそれぞれにおいて、レーンの数を変えるように構成可能であることを特徴とする請求項1に記載のメモリモジュール。
  11. 前記トランザクションのそれぞれのための前記コマンドヘッダーおよびデータがメモリパケットを備えることを特徴とする請求項1に記載のメモリモジュール。
  12. 複数のメモリデバイスと、
    前記メモリデバイスに結合されたメモリコントローラと、
    前記メモリコントローラに結合された少なくとも1つの受信インタフェースと、
    それぞれの送信インタフェースが、コマンドヘッダー、および可変数のデータ・ビットを有するデータをそれぞれが備えるメモリトランザクションを受信し、それぞれの送信インタフェースが、既定の大きさの既定数のサブグループをそれぞれが含むグループに、前記コマンドヘッダーおよびデータを編成するように動作可能なデータ編成システムを含み、前記サブグループのそれぞれが複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含み、サブグループのそれぞれが、各グループがコマンドヘッダー・ビットまたはデータ・ビットのいずれかを含むサブグループで満たされるように、第1のトランザクションのための追加的データまたは第2のトランザクションのためのコマンドヘッダーのいずれかを含むサブグループが続く、前記第1のトランザクションのためのデータを含み、前記データ編成システムが、さらに、前記サブグループのシリアルストリームとして、データのグループのそれぞれを出力するように動作可能である、前記メモリコントローラに結合され、メモリトランザクションを送信する少なくとも1つの送信インタフェースと
    を備えることを特徴とするメモリハブと
    を備えることを特徴とするメモリモジュール。
  13. 前記グループのそれぞれが8つのサブグループを備えることを特徴とする請求項12に記載のメモリモジュール。
  14. 前記サブグループのそれぞれがパラレル32ビットのコマンドヘッダーまたはデータを備えることを特徴とする請求項12に記載のメモリモジュール。
  15. 前記少なくとも1つの送信インタフェースが、それぞれが前記データ編成システムを備えるアップストリーム送信インタフェースおよびダウンストリーム送信インタフェースを備えることを特徴とする請求項12に記載のメモリモジュール。
  16. 前記メモリデバイスがDRAM(Dynamic Random Access Memory)デバイスを備えることを特徴とする請求項12に記載のメモリモジュール。
  17. 前記データ編成システムが、
    それぞれのグループにおける前記サブグループのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記グループを編成する、それぞれがコマンドヘッダーまたはデータのいずれかを含む複数の前記サブグループを含むグループに、前記コマンドヘッダーおよびデータを編成するデータ編成ユニットと、
    前記グループのそれぞれを、前記送信インタフェースによる送信のために前記サブグループのシリアルストリームに変換するパラレルシリアル変換器と
    を備えること、を特徴とする請求項12に記載のメモリモジュール。
  18. 前記データ編成ユニットが、
    複数の前記トランザクションのための個々のデータを格納するデータバッファであって、前記トランザクションのそれぞれに対する前記データを選択的に渡すデータバッファと、
    複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列であって、前記トランザクションのそれぞれに対する前記コマンドヘッダーを選択的に渡して、対応する前記トランザクションのための前記データが前記データバッファから渡されることとなるコマンド待ち行列と
    を備えることを特徴とする請求項17に記載のメモリモジュール。
  19. 前記データ編成ユニットが、
    前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーを、マルチプレクサ制御信号に対応する出力ポートに結合するように動作可能なマルチプレクサであって、前記トランザクションのそれぞれのための前記データバッファ中に格納されている前記データ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されている前記コマンドヘッダーを受信するために結合されているマルチプレクサと、
    前記データおよびコマンドヘッダーの示す情報に対応する前記制御信号を生成し、前記トランザクションの少なくとも1つのためのデータ、またはコマンドヘッダーおよびデータのいずれかを含むサブグループのグループを、前記マルチプレクサの前記出力ポートへ結合するよう、前記マルチプレクサにさせるように動作可能である、おのおの前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのためのデータおよびコマンドヘッダーを示す情報を受け取るために、前記データバッファおよび前記コマンド待ち行列の少なくとも1つに結合される調停ユニットと
    をさらに備えることを特徴とする請求項18に記載のメモリモジュール。
  20. 前記マルチプレクサの前記出力ポートにて前記グループを前記サブグループのシリアルストリームに変換するように動作可能である、前記マルチプレクサの前記出力ポートに結合されたパラレルシリアル変換器をさらに備えることを特徴とする請求項19に記載のメモリモジュール。
  21. 前記データ編成ユニットが、クロック信号のそれぞれの周期の間、前記データ編成から結合されるグループのそれぞれにおけるサブグループの数を変えるように構成可能であることを特徴とする請求項17に記載のメモリモジュール。
  22. 前記トランザクションのそれぞれのための前記コマンドヘッダーおよびデータがメモリパケットを備えることを特徴とする請求項12に記載のメモリモジュール。
  23. それぞれのレーングループにおけるレーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように前記レーングループを編成する、複数のメモリトランザクションのそれぞれのためのコマンドヘッダーおよびデータを、それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む複数のレーンをそれぞれが含む、レーングループに編成するデータ編成ユニットと、
    前記レーングループのそれぞれを、それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む、前記レーンのシリアルストリームに変換するパラレルシリアル変換器と
    を備えることを特徴とするデータ編成システム。
  24. 前記レーングループのそれぞれが8つのレーンを備えることを備えることを特徴とする請求項23に記載のデータ編成システム。
  25. 前記レーンのそれぞれがパラレル32ビットのコマンドヘッダーまたはデータを備えることを備えることを特徴とする請求項23に記載のデータ編成システム。
  26. 前記データ編成ユニットであって、
    複数の前記トランザクションのための個々のデータを格納するデータバッファであって、前記トランザクションのそれぞれに対する前記データを選択的に渡すデータバッファと、
    複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列であって、前記トランザクションのそれぞれに対する前記コマンドヘッダーを選択的に渡して、対応する前記トランザクションのための前記データが前記データバッファから渡されることとなるコマンド待ち行列と
    を備えることを備えることを特徴とする請求項23に記載のデータ編成システム。
  27. 前記データ編成ユニットは、
    前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーをマルチプレクサ制御信号に対応して出力ポートに結合するように動作可能である、前記トランザクションのそれぞれのための前記データバッファ中に格納されているデータ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されている前記コマンドヘッダーを受信するために結合されているマルチプレクサと、
    前記データおよびコマンドヘッダーを示す情報に対応する制御信号を生成し、前記マルチプレクサが、前記トランザクションの少なくとも1つのためのデータ、またはコマンドヘッダーおよびデータのいずれかより成るレーングループを、前記マルチプレクサの前記出力ポートに結合するように動作可能である、前記データバッファおよび前記コマンド待ち行列の少なくとも1つに結合され、それぞれ前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのためのデータおよびコマンドヘッダーを示す情報を受け取る調停ユニットと
    をさらに備えることを特徴とする請求項26に記載のデータ編成システム。
  28. 前記データ編成ユニットが、クロック信号のそれぞれの周期の間、前記データ編成から結合されるレーングループのそれぞれにおいてレーンの数を変えるように構成可能であることを特徴とする請求項23に記載のデータ編成システム。
  29. プロセッサバスを有するプロセッサと、
    周辺デバイスポートを有する、前記プロセッサバスに結合されているシステムコントローラと、
    前記システムコントローラの前記周辺デバイスポートに結合されている少なくとも1つの入力装置と、
    前記システムコントローラの前記周辺デバイスポートに結合されている少なくとも1つの出力装置と、
    前記システムコントローラの前記周辺デバイスポートに結合されている少なくとも1つのデータストレージと、
    前記プロセッサバスに結合されているメモリハブコントローラと、
    メモリモジュールであって、それぞれが、
    複数のメモリデバイスと、
    前記メモリデバイスに結合されているメモリコントローラと、
    バスシステムを通して前記メモリコントローラに結合されている受信インタフェースと、
    それぞれがコマンドヘッダー、および可変数のデータ・ビットを有するデータを備えるメモリトランザクションを受信し、それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む複数のレーンをそれぞれが含むレーングループに前記コマンドヘッダーおよびデータを編成するデータ編成システムを含む送信インタフェースであって、それぞれのレーングループにおける前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記レーングループを編成し、前記データ編成システムが、前記送信インタフェースによる送信のために、前記レーングループのそれぞれを前記レーンのシリアルストリームに変換するように動作可能であり、前記送信されるレーンのそれぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む前記データ編成システムであって、前記メモリモジュールから前記メモリコントローラへメモリトランザクションを送信するために、前記バスシステムを通して前記メモリコントローラに結合される送信インタフェースと
    を備えるメモリハブと
    を備える少なくとも1つのバスにより前記メモリハブコントローラに結合されている複数のメモリモジュールと
    を備えることを特徴とするプロセッサベースのシステム。
  30. 前記レーングループのそれぞれが8つのレーンを備えることを特徴とする請求項29に記載のプロセッサベースのシステム。
  31. 前記レーンのそれぞれがパラレル32ビットのコマンドヘッダーまたはデータを備えることを特徴とする請求項29に記載のプロセッサベースのシステム。
  32. 前記バスシステムが、前記メモリモジュールによって前記メモリコントローラから送信されるメモリトランザクションを結合するためのダウンストリームのバス、および前記メモリモジュールによって前記メモリコントローラに向かって送信されるメモリトランザクションを結合するためのアップストリームのバスを備え、かつ、前記送信インタフェースが、前記アップストリームのバスに結合されているアップストリーム送信インタフェース、および前記ダウンストリームのバスに結合されているダウンストリーム送信インタフェースを備え、前記アップストリームおよびダウンストリーム送信インタフェースのそれぞれが、個々に1つのデータ編成システムを含むことを特徴とする請求項29に記載のプロセッサベースのシステム。
  33. 前記メモリデバイスがDRAM(Dynamic Random Access Memory)デバイスを備えることを特徴とする請求項29に記載のプロセッサベースのシステム。
  34. 前記データ編成システムは、
    それぞれのレーングループにおける前記レーンのすべてがコマンドヘッダー・ビットまたはデータ・ビットで満たされるように、前記レーングループを編成する、コマンドヘッダーまたはデータのいずれかを含む複数のレーンをそれぞれが含むレーングループに前記コマンドヘッダーおよびデータを編成するデータ編成ユニットと、
    前記レーングループのそれぞれを、前記送信インタフェースによる送信のための前記レーンのシリアルストリームに変換するパラレルシリアル変換器と
    を備えることを特徴とする請求項29に記載のプロセッサベースのシステム。
  35. 前記データ編成ユニットは、
    複数の前記トランザクションのための個々のデータを格納するデータバッファであって、前記トランザクションのそれぞれに対する前記データを選択的に渡すデータバッファと、
    複数の前記トランザクションのための個々のコマンドヘッダーを格納するコマンド待ち行列であって、前記トランザクションのそれぞれに対する前記コマンドヘッダーを選択的に渡して、対応する前記トランザクションのための前記データが前記データバッファから渡されることとなるコマンド待ち行列と
    を備えることを特徴とする請求項34に記載のプロセッサベースのシステム。
  36. 前記データ編成ユニットであって、
    前記トランザクションのそれぞれのためのデータ、および前記トランザクションのそれぞれのためのコマンドヘッダーを、マルチプレクサ制御信号に対応して出力ポートに結合するように動作可能である、前記トランザクションのそれぞれのための前記データバッファ中に格納されているデータ、および前記トランザクションのそれぞれのための前記コマンド待ち行列中に格納されているコマンドヘッダーを受信するために結合されているマルチプレクサと、
    前記マルチプレクサに、前記トランザクションの少なくとも1つのためのデータ、またはコマンドヘッダーおよびデータのいずれかより成るレーングループを、前記マルチプレクサの出力ポートへ結合させるように、前記データおよびコマンドヘッダーを示す情報に対応する制御信号を生成するように動作可能である、それぞれ前記データバッファおよびコマンド待ち行列中に格納されている前記トランザクションのための前記データおよびコマンドヘッダーを示す情報を受け取るために、前記データバッファおよび前記コマンド待ち行列の少なくとも1つに結合される調停ユニットと
    をさらに備えることを特徴とする請求項35に記載のプロセッサベースのシステム。
  37. 前記マルチプレクサの前記出力ポートにて、前記レーングループを前記レーンのシリアルストリームに変換するように動作可能である、前記マルチプレクサの前記出力ポートに結合されたパラレルシリアル変換器をさらに備えることを特徴とする請求項36に記載のプロセッサベースのシステム。
  38. 前記データ編成ユニットが、クロック信号のそれぞれの周期の間に前記データ編成から結合されるレーングループのそれぞれにおけるレーンの数を変えるように構成可能であることを特徴とする請求項34に記載のプロセッサベースのシステム。
  39. 前記トランザクションのそれぞれのための前記コマンドヘッダーおよびデータがメモリパケットを備えることを特徴とする請求項29に記載のプロセッサベースのシステム。
  40. それぞれがコマンドヘッダーおよび可変量のデータを備えるメモリトランザクションを送信する方法であって、
    サブグループのそれぞれが、複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含み、それぞれの前記サブグループが、それぞれのグループがコマンドヘッダー・ビットまたはデータ・ビットのいずれかを含むサブグループで満たされるように、第1のトランザクションのための追加的データ、または第2のトランザクションのための前記コマンドヘッダーのいずれかを含むサブグループがすぐに続く、前記第1のトランザクションのためのデータを含み、それぞれが既定の大きさの既定数の前記サブグループを含むグループに、前記コマンドヘッダーおよびデータを編成することと、
    それぞれが前記複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含む、前記サブグループのシリアルストリームとしてデータのそれぞれのグループを送信することと
    を備えることを特徴とする方法。
  41. 前記コマンドヘッダーおよびデータをグループに編成する前記動作が、前記コマンドヘッダーおよびデータを、それぞれが8つのサブグループを含むグループに編成することを備えることを特徴とする請求項40に記載の方法。
  42. 前記コマンドヘッダーおよびデータを既定数のサブグループを含むグループに編成する前記動作が、それぞれのサブグループがパラレル32ビットのコマンドヘッダーまたはデータを備えるように、前記コマンドヘッダーおよびデータを編成することを備えることを特徴とする請求項40に記載の方法。
  43. それぞれのグループにおけるサブグループの量を変えることをさらに備えることを特徴とする請求項40に記載の方法。
  44. それぞれがコマンドヘッダーおよび可変量のデータを備えるメモリトランザクションを送信する方法であって、レーンのそれぞれが、複数のパラレルのコマンドヘッダー・ビットまたはデータ・ビットを含み、それぞれのレーングループにおける前記レーンのすべてが、コマンドヘッダー・ビットまたはデータ・ビットのいずれかで満たされるように、前記レーングループが編成される、それぞれが既定の大きさの複数のレーンを含むレーングループに、前記コマンドヘッダーおよびデータを編成することを備えることを特徴とする方法。
  45. それぞれが複数のパラレルのコマンドヘッダー・ビットまたはパラレルのデータ・ビットを含む前記レーンのシリアルストリームに前記レーングループのそれぞれを変換することをさらに備えることを特徴とする請求項44に記載の方法。
  46. 前記コマンドヘッダーおよびデータをレーングループに編成する前記動作が、前記コマンドヘッダーおよびデータをそれぞれが8つのレーンを含むレーングループに編成することを備えることを特徴とする請求項44に記載の方法。
  47. 前記コマンドヘッダーおよびデータを、それぞれが既定数のレーンを含むレーングループに編成する前記動作が、それぞれのレーンがパラレル32ビットのコマンドヘッダーまたはデータを備えるように、前記コマンドヘッダーおよびデータを編成することを備えることを特徴とする請求項44に記載の方法。
  48. それぞれのレーングループにおけるレーンの数を変えることをさらに備えることを特徴とする請求項44に記載の方法。
JP2007504095A 2004-03-18 2005-03-16 メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法 Expired - Fee Related JP4532542B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/804,608 US20050210185A1 (en) 2004-03-18 2004-03-18 System and method for organizing data transfers with memory hub memory modules
PCT/US2005/008865 WO2005089418A2 (en) 2004-03-18 2005-03-16 System and method for organizing data transfers with memory hub memory modules

Publications (2)

Publication Number Publication Date
JP2007529828A JP2007529828A (ja) 2007-10-25
JP4532542B2 true JP4532542B2 (ja) 2010-08-25

Family

ID=34987690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007504095A Expired - Fee Related JP4532542B2 (ja) 2004-03-18 2005-03-16 メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20050210185A1 (ja)
EP (1) EP1738267B1 (ja)
JP (1) JP4532542B2 (ja)
KR (1) KR100840140B1 (ja)
CN (1) CN100437535C (ja)
WO (1) WO2005089418A2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7310752B2 (en) * 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7120723B2 (en) * 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US20050268061A1 (en) * 2004-05-31 2005-12-01 Vogt Pete D Memory channel with frame misalignment
US7310748B2 (en) * 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
KR100818298B1 (ko) 2005-12-08 2008-03-31 한국전자통신연구원 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8010550B2 (en) * 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US7860847B2 (en) * 2006-11-17 2010-12-28 Microsoft Corporation Exception ordering in contention management to support speculative sequential semantics
US7822915B2 (en) * 2007-06-30 2010-10-26 Alcatel-Lucent Usa Inc. Memory controller for packet applications
KR100934227B1 (ko) 2007-09-21 2009-12-29 한국전자통신연구원 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US8245105B2 (en) * 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8201069B2 (en) * 2008-07-01 2012-06-12 International Business Machines Corporation Cyclical redundancy code for use in a high-speed serial link
US7895374B2 (en) * 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8082475B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Enhanced microprocessor interconnect with bit shadowing
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
US8082474B2 (en) * 2008-07-01 2011-12-20 International Business Machines Corporation Bit shadowing in a memory system
US8234540B2 (en) * 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US7979759B2 (en) * 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US20100180154A1 (en) * 2009-01-13 2010-07-15 International Business Machines Corporation Built In Self-Test of Memory Stressor
US8458572B1 (en) * 2009-11-24 2013-06-04 Apple Inc. Efficient storage of error correction information in DRAM
CN102404183B (zh) * 2010-09-07 2015-04-01 中兴通讯股份有限公司 仲裁方法和仲裁器
US8775685B1 (en) * 2011-10-13 2014-07-08 Xilinx, Inc. Parallel processing of network packets
US8780914B2 (en) * 2011-10-17 2014-07-15 Xilinx, Inc. Parallel processing of network packets
CN102609378B (zh) * 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US20150213850A1 (en) * 2014-01-24 2015-07-30 Qualcomm Incorporated Serial data transmission for dynamic random access memory (dram) interfaces
US9733847B2 (en) 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
KR20180049386A (ko) 2016-11-01 2018-05-11 에스케이하이닉스 주식회사 랭크 레벨에서 병렬화를 지원하는 메모리 장치 및 메모리 시스템
CN110554651B (zh) * 2019-09-19 2021-07-30 哈尔滨工业大学 微流控芯片温度测量及控制的私有物联网系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887187A (en) * 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5822540A (en) * 1995-07-19 1998-10-13 Fujitsu Network Communications, Inc. Method and apparatus for discarding frames in a communications device
JPH0944462A (ja) * 1995-07-27 1997-02-14 Kofu Nippon Denki Kk データ転送処理装置
US6792495B1 (en) * 1999-07-27 2004-09-14 Intel Corporation Transaction scheduling for a bus system
US6778546B1 (en) * 2000-02-14 2004-08-17 Cisco Technology, Inc. High-speed hardware implementation of MDRR algorithm over a large number of queues
US7082127B1 (en) * 2000-07-28 2006-07-25 Marconi Intellectual Property (Ringfence), Inc. Synchronous dynamic register updating across a distributed system
DE60039764D1 (de) * 2000-10-18 2008-09-18 Alcatel Lucent Datenpaketvermittlungsknoten zur Aufnahme von Schnittstellen mit sehr hoher Bitrate
JP2002278924A (ja) * 2001-03-19 2002-09-27 Oki Electric Ind Co Ltd データの転送制御システム,転送制御方法およびそのプログラム
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US20050166006A1 (en) * 2003-05-13 2005-07-28 Advanced Micro Devices, Inc. System including a host connected serially in a chain to one or more memory modules that include a cache
US7779212B2 (en) * 2003-10-17 2010-08-17 Micron Technology, Inc. Method and apparatus for sending data from multiple sources over a communications bus

Also Published As

Publication number Publication date
JP2007529828A (ja) 2007-10-25
CN1965302A (zh) 2007-05-16
EP1738267B1 (en) 2012-06-20
KR100840140B1 (ko) 2008-06-23
WO2005089418A2 (en) 2005-09-29
WO2005089418A3 (en) 2006-12-07
EP1738267A4 (en) 2008-01-09
US20050210185A1 (en) 2005-09-22
KR20060133036A (ko) 2006-12-22
EP1738267A2 (en) 2007-01-03
CN100437535C (zh) 2008-11-26

Similar Documents

Publication Publication Date Title
JP4532542B2 (ja) メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法
JP4560646B2 (ja) ハブベースのメモリシステムにおけるダイレクトメモリアクセス用の装置および方法
CN100444131C (zh) 具有仲裁分组协议的存储器仲裁系统及方法
JP4124491B2 (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
CN100580643C (zh) 包括多个存储器集线器模块的多处理器系统和方法
JP2007535737A (ja) メモリを順序付けるヒントを提供するメモリ・ハブおよび方法
JP3639464B2 (ja) 情報処理システム
JP7195486B1 (ja) 異種メモリシステムに対するシグナリング
US7761668B2 (en) Processor architecture having multi-ported memory
CN112882986A (zh) 一种带有超节点以及超节点控制器的众核处理器
KR100676982B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독 가능 저장 매체
JPH10260895A (ja) 半導体記憶装置およびそれを用いた計算機システム
JPH02114313A (ja) 高速外部記憶装置
EP3841484B1 (en) Link layer data packing and packet flow control scheme
JP2005235216A (ja) ダイレクト・メモリ・アクセス制御
JP4496923B2 (ja) 共有メモリシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees