(57)【要約】【課題】メモリチャネル上の応答のスケジューリングを提供する。【解決手段】メモリエージェントは、ローカルとパススルーの応答を各応答に対する識別子に従ってスケジューリングする。応答ファイルは、メモリチャネル上において処理可能な最大リクエスト数分の応答を保存するのに十分な大きさを有してよい。リクエストファイルは、メモリチャネル上において処理可能な最大リクエスト数分のリクエストを保存するのに十分な大きさを有してよい。各リクエスト及び／又は応答に対する識別子は、リクエスト及び／又は応答と同一のチャネルリンク上において受信されてよい。その他の実施形態が記載され請求される。【選択図】図４
2008547099.tif 000002
【特許請求の範囲】
【請求項１】
複数のローカルとパススルーの応答を保存する１つの応答ファイルと、
前記複数の応答の伝送を各応答に対して１つ存在する識別子に従ってスケジューリングする論理と
を含む、メモリエージェント。
【請求項２】
前記複数のパススルー応答に対する前記識別子を、前記複数のパススルー応答と同一のリンク上において受信する、
請求項１に記載のメモリエージェント。
【請求項３】
前記識別子は、優先順位情報を含む、
請求項１に記載のメモリエージェント。
【請求項４】
伝送をスケジューリングする前記論理は、各応答の前記優先順位に基づいて複数の伝送を再編する論理を含む、
請求項３に記載のメモリエージェント。
【請求項５】
前記複数の応答は、それらの識別子の相対順序に従って前記応答ファイルに保存される、
請求項１に記載のメモリエージェント。
【請求項６】
識別子を有する複数のリクエストを保存する１つのリクエストファイルを更に含む、
請求項１に記載のメモリエージェント。
【請求項７】
各リクエストに対する前記識別子をリクエストと同一のリンク上において受信する、
請求項６に記載のメモリエージェント。
【請求項８】
前記リクエストファイルは、複数のローカルリクエストと複数のパススルーリクエストを保存する、
請求項６に記載のメモリエージェント。
【請求項９】
前記複数のリクエストは、それらの識別子の相対順序に従って前記リクエストファイルに保存される、
請求項６に記載のメモリエージェント。
【請求項１０】
前記複数のパススルー応答を、１つの第１リンク上において受信し、
前記複数のローカルとパススルーの応答を、１つの第２リンク上において伝送する、
請求項１に記載のメモリエージェント。
【請求項１１】
前記複数のパススルー応答を１つの第１リンク上において受信し、
前記複数のローカルとパススルーの応答を１つの第２リンク上において伝送し、
前記複数のリクエストを１つの第３リンク上において受信する、
請求項７に記載のメモリエージェント。
【請求項１２】
前記複数のパススルー応答を、１つの第１リンク上において受信し、
前記複数のローカルとパススルーの応答を１つの第２リンク上において伝送し、
前記複数のローカルとパススルーのリクエストを１つの第３リンク上において受信し、
前記複数のパススルーリクエストを１つの第４リンク上において伝送する、
請求項９に記載のメモリエージェント。
【請求項１３】
優先順位を有する複数のリクエストを１つのチャネル上において伝送するための論理を含む１つのメモリコントローラと、
複数のローカル応答と複数のパススルー応答とを保存する１つの応答ファイルと、前記複数の応答の前記メモリコントローラへの伝送を、各応答の前記優先順位に従ってスケジューリングするための論理とを含む、前記チャネルに結合された１つのメモリエージェントと
を含む、メモリシステム。
【請求項１４】
前記メモリコントローラ論理は、複数の懸案リクエストの１つの最大数を有しており、
前記応答ファイルは、複数のリクエストの前記最大数分の複数の応答を保存するのに十分な大きさである、
請求項１３に記載のシステム。
【請求項１５】
前記メモリエージェントは、優先順位を有する複数のリクエストを保存する１つのリクエストファイルを更に含む、
請求項１３に記載のシステム。
【請求項１６】
前記メモリコントローラ論理は、複数の懸案リクエストの１つの最大数を有しており、
前記リクエストファイルは、複数のリクエストの前記最大数分の複数のリクエストを保存するのに十分な大きさである、
請求項１５に記載のシステム。
【請求項１７】
前記メモリエージェント論理は、前記複数の応答の伝送を、各リクエストと応答の前記優先順位に従ってスケジューリングするための論理を含む、
請求項１５に記載のシステム。
【請求項１８】
前記優先順位は、タイムスタンプを含む、
請求項１３に記載のシステム。
【請求項１９】
前記メモリエージェントは、１つのメモリインターフェースを更に含む、
請求項１３に記載のシステム。
【請求項２０】
前記応答ファイル、前記論理、及び前記メモリインターフェースは、１つの集積回路上に製造される、
請求項１９に記載のシステム。
【請求項２１】
前記メモリエージェントは、前記メモリインターフェースに接続された複数のメモリ装置を更に含む、
請求項２０に記載のシステム。
【請求項２２】
前記集積回路と前記複数のメモリ装置は、１つのプリント基板上に実装される、
請求項２１に記載のシステム。
【請求項２３】
複数のローカルとパススルーの応答を１つのメモリエージェントにおいて１つの応答ファイルに保存することと、
前記複数の応答を、各応答に対して１つ存在する識別子に従って伝送することと
を含む、方法。
【請求項２４】
前記複数のパススルー応答に対する前記識別子を前記複数のパススルー応答と同一のリンク上において受信すること
を更に含む、請求項２３に記載の方法。
【請求項２５】
識別子を有する複数のローカルとパススルーのリクエストを前記メモリエージェントにおいて保存すること
を更に含む、請求項２３に記載の方法。
【請求項２６】
前記複数の応答を、各リクエストと応答に対して１つ存在する識別子に従って伝送すること
を更に含む、請求項２５に記載の方法。
【請求項２７】
優先順位を有する複数のリクエストを１つのメモリコントローラから１つのメモリエージェントへと１つのチャネルを介して伝送することと、
複数のローカルとパススルーの応答を前記メモリエージェントにおいて１つの応答ファイルに保存することと、
前記複数の応答を、各応答の前記優先順位に従って、前記メモリエージェントから前記メモリコントローラへと伝送することと
を含む、方法。
【請求項２８】
優先順位を有する複数のローカルとパススルーのリクエストを前記メモリエージェントにおいて保存すること
を更に含む、請求項２７に記載の方法。
【請求項２９】
前記複数の応答を、各リクエストと応答の前記優先順位に従って、前記メモリエージェントから前記メモリコントローラへと伝送すること
を更に含む、請求項２８に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
図１は、チャネル上においてデータリンク１６を介して接続されたメモリコントローラ１０とメモリモジュール１２を備える従来のメモリシステムを示す。メモリコントローラはデータリンクを介して各メモリモジュールへとリクエストを送信する。メモリコントローラに直近のモジュールが別のモジュールへと宛てられたリクエストを受信した場合には、当該モジュールは隣接するモジュールへとリクエストを転送する。リクエストは宛先のモジュールへ届くまで繰り返し転送される。各モジュールは、通常、当該モジュール上に存在する読み出し専用メモリ（ＲＯＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、フラッシュメモリ等のメモリ装置にアクセスすることにより自身に宛てられたリクエストを処理し、コントローラへとチャネルを介して返信される対応の応答を生成する。
【０００２】
各メモリモジュールには、データがモジュールとコントローラ間で受け渡されるときにデータを一時的に保存するバッファ１４が含まれる。チャネルには、コントローラにより、又はモジュールの一つにより、別のモジュール上のバッファが収容できる以上のデータが送信されたときにバッファがあふれないようにするために用いられる専用のフロー制御ハンドシェーク信号１８も含まれる。
【０００３】
図２は、一方向リンクにより形成されるチャネルを介して通信するメモリコントローラ２０と１以上のメモリモジュール２２を含む、従来技術における別のメモリシステムを示す。チャネルは、１以上の往路リンク２４を含む往路パスと、１以上の復路リンク２６を含む復路パスとを有する。各モジュールは、往路パス上においてリンクからリンクへと、また復路パスにおいてリンクからリンクへと信号を転送することができる。各モジュールには、データを１以上のパスへと及び／又は１以上のパスから伝送するために設けられた１以上のメモリ装置が含まれる。
【０００４】
図２のシステムにおいては、リクエストを往路パス上でモジュールへと伝送し、応答を復路パス上で帰還データフレームの所定の時間帯においてコントローラへと返送するための決定プロトコルが用いられる。メモリコントローラがチャネル上の全ての通信をスケジューリングし、各モジュールは割り当てられた時間帯において自身の応答をコントローラへと送信するだけでよい。全ての通信が所定の時間において発生するので、モジュールに存在するいずれのバッファにおいてもデータのあふれを防ぐためのハンドシェークが必要でない。
【発明を実施するための最良の形態】
【０００５】
本特許開示には、それぞれ独立して効用を有する多数の発明原理が含まれる。ある場合においては、原理のいくつかを互いに様々に組み合わせて用いることにより更なる便益が実現されることもあり、それにより更なる発明が得られるであろう。これらの原理は多くの実施形態により実現し得る。発明原理を例示するためにいくつかの特定的な詳細について示すが、本特許開示の発明原理に従ってその他多くの構成が設計され得る。それゆえ、発明原理は本明細書に開示する特定的詳細に限定されない。
【０００６】
図３は、本特許開示の発明原理に従ったメモリエージェントの実施形態を示す。図３の実施形態は、メモリコントローラからのリクエストに対する自身の応答を各メモリエージェントがスケジューリングするためのトランザクション処理に基づくプロトコルを用いたメモリシステムにおいて用いてよい。図３の実施形態は、他のメモリエージェントからリンク３０を介してパススルー応答を受信してよい。自身が生成した応答とパススルー応答とを応答ファイル３２に保存する。各応答は識別子を有する。論理３４により、リンク３６を介した応答ファイル３２から別のエージェントもしくはメモリコントローラへの応答の伝送がスケジューリングされる。各応答の識別子は、応答を伝送する順序を再編するためにスケジューリング論理において用いられる優先順位情報を含んでよい。各パススルー応答の識別子は、応答自身と同一のリンクを介して受信されてよく、たとえば応答に埋め込まれてよい。
【０００７】
図４は、本特許開示の発明原理に従ったコントローラと１以上のメモリエージェントの実施形態を含むメモリシステムの実施形態を示す。メモリコントローラ３８は、識別子を有するリクエストをメモリチャネルを介して伝送するための論理４０を有する。本例においては、チャネルは往路リンク４２と４４、及び復路リンク４６と４８を含む。メモリエージェント５０は、リンク４０を介して受信するパススルー応答とローカルで生成した応答とを保存する応答ファイル５４を含む。リクエストファイル５２には、リンク４２を介して受信するリクエストが保存される。リクエストは、エージェント５０に存在するメモリリソースへと宛てられたローカルリクエストであってよく、リンク４４を介して別のエージェントへと転送されるパススルーリクエストであってもよい。
【０００８】
各リクエストとその処理結果の応答は識別子を有する。各リクエストとパススルー応答の識別子はリクエスト自身もしくは応答自身と同一のリンクを介して受信されてよく、たとえばリクエストもしくは応答に埋め込まれてよい。リンク４６を介した応答ファイル５４から別のエージェントもしくはメモリコントローラへの応答の伝送を論理５６が応答ファイルにおいて各応答を識別することによりスケジューリングする。応答をスケジューリングするときには、リクエストファイル５２内のリクエストの識別子も参照してよい。
【０００９】
各リクエストと応答の識別子は、応答を伝送する順序を再編するためにスケジューリング論理において用いられる優先順位情報を含んでよい。識別子は、一意なものであってもよい。たとえば、コントローラ論理４０に懸案リクエストの最大数が指定されている場合、各リクエストに対して最大リクエスト数に達するまでの数字を一意に割り当ててよく、メモリエージェント内のリクエストファイルと応答ファイルは最大リクエスト数分のリクエストと応答を保存できる容量を有してよい。別の例として、識別子をタイムスタンプとして実施してよく、先発のリクエストには後発のリクエストよりも通常高い優先順位が割り当てられる。リクエストと応答は、その識別子の相対順序に従ってそれぞれのファイルに保存してよい。
【００１０】
図３と４のメモリのコンポーネントは、いかなる適切な物理的構成において実施してもよい。たとえば、メモリエージェント３４と５０のいずれかを集積回路（ＩＣ）としてモノリシックに製造し、それをたとえばプリント基板（ＰＣボード）に実装してよい。メモリエージェントには、ＤＲＡＭチップ等のメモリ装置と通信するためのメモリインターフェースも含めてよい。本特許開示の発明原理に従ったメモリエージェントは、メモリバッファと大半において同一の機能性を有しているが、たとえばＤＲＡＭコントローラ等のメモリ装置コントローラ等の機能性を更に有するメモリハブとして実施してよい。
【００１１】
本特許開示の発明原理に従ったメモリモジュールにはメモリバッファを含めてよく、メモリバッファはＩＣチップとして製造され、ＰＣボード上に、同様にボード上に実装され当該バッファとメモリインターフェースを介して通信するメモリ装置とともに実装される。モジュールをたとえばカードエッジコネクタを介してコンピュータのマザーボードに接続してよい。本特許開示の発明原理に従ったメモリコントローラをプロセッサもしくはプロセッサチップセットの一部として製造してマザーボード上に実装し、バッファを含んだモジュールと共にメモリチャネルを形成してよい。または、メモリコントローラ、メモリエージェント、及びメモリ装置を単一のＰＣボード上に製造してよい。本特許開示の発明原理に従って、その他の構成も可能である。
【００１２】
図５は、本特許開示の発明原理に従ったメモリエージェントの別の実施形態を示す。図５の実施形態により、コンポーネント間のリンクが一方向である二重データ経路を有するメモリチャネルに用いられるメモリハブが実施される。往路リンク層５８には、信号レーンＯＢＬＩ上において信号を受信する受信器６０と、レーンデスキュー回路６２と、往路リクエストを信号線ＯＢＬＯ上のその他のハブへと転送する転送回路６４とが含まれる。直列‐並列（Ｓ２Ｐ）回路６６によりリクエストがメモリチャネル上のメモリコントローラが発行し得る最大懸案リクエスト数分のリクエストを保持可能な容量を有するリクエストファイル６８用の並列フォーマットへと変換される。メモリインターフェース７０によりハブがメモリ装置へとインターフェース接続される。当該メモリ装置は、本例においてはＤＲＡＭチップ７２である。インターフェースには、コントローラによるメモリ装置の制御を排除するためのＤＲＡＭメモリコントローラ７１が含まれている。もしくはメモリコントローラを省略してよく、その場合メモリコントローラは、メモリ装置へと直接的に伝送されるＤＲＡＭコマンドを生成することができる。メモリインターフェースには、データキャプチャ、エラー検出・修正等のための回路７４も含めてよい。
【００１３】
ローカルで生成された応答は、応答ファイル７６に保存される。応答ファイル７６もまた、メモリコントローラが発行し得る最大懸案リクエスト数分の応答を保持可能な容量を有する。応答ファイル７６には、より遠方に存在するハブから受信するパススルー応答を保存してよい。復路リンク層７８には、信号レーンＩＢＬＩ上において信号を受信する受信器８０、レーンデスキュー回路８２、及び信号レーンＩＢＬＯ上のその他のハブもしくはメモリコントローラへと復路応答を転送する伝送回路８４が含まれる。直列‐並列（Ｓ２Ｐ）回路８６により、応答が応答ファイルに保存されるための並列フォーマットへと変換される。復路リンク層には更に、メモリコントローラへのバブルフリーのデータフローを維持しつつローカル応答を復路データフローへとマージするマージ選択論理８８が含まれる。並列‐直列（Ｐ２Ｓ）・フレーム配列ＦＩＦＯ回路８９とマルチプレクサ９０により応答ファイルから復路データリンクへの接続が完成される。
【００１４】
スケジューリング論理９２によりリクエストファイルと応答ファイルが監視され、ローカル応答とパススルー応答が復路リンク上を伝送される順序がスケジューリングされる。
【００１５】
一実施形態においては、メモリコントローラが、各リクエストに対して一意な識別子をリクエストの相対優先順位を表すタイムスタンプとして用いられるインクリメント値として割り当てる。通常、小さい数字（それゆえ、高い優先順位）を割り当てられたリクエストは、大きい数字を割り当てられた後発のリクエストよりも優先される。それゆえ、コントローラは、優先順位の高いリクエストへの応答を優先順位の低いリクエストへの応答より先にコントローラへと転送し、なおかつ最遠方のハブからの応答を途絶えさせないように識別子を割り当ててよい。
【００１６】
ハブはリクエストを受信すると、リクエストを復号し、ローカルのメモリリソースにアクセスしてリクエストに応答し、復路応答を生成する。チャネルの最遠方に存在するハブは、その他のハブからの応答とかちあうことがないので、自身の応答を可能である最も早い時機に送信してよい。しかし、メモリコントローラに対してより近接したハブにおいては、より遠方のハブがいつ復路リンク上において応答の送信を開始するかを知得できない。それゆえ、ハブはその他のハブからの復路応答を自身の応答ファイルに保存してよい。応答ファイルに全懸案リクエストに対する応答を保存可能な容量を持たせることにより、復路パスにおいて衝突が発生せず、応答が紛失しないことを保証することができる。これは、専用のハンドシェーク信号もしくは論理がなくても可能である。各リクエスト及び応答に一意な識別子を割り当て、各識別子の応答に対して専用の領域を応答ファイルに含めれば、ローカルで生成された応答であろうとパススルー応答であろうといかなる応答であってもそれを保存するための余地がいつでも得られる。
【００１７】
実施形態の一例においては、メモリハブにバッファリングされる応答は、その識別子の相対順序に従って応答ファイルに保存される。ハブによりそれ自身において生成されたローカル応答が送信される前に、スケジューリング論理により応答ファイルが確認され、より優先順位が高い応答が存在するかが調べられる。もし存在すれば、ハブは自身の応答を応答ファイルに保存し、優先順位の高い応答を自身のものより先に送信する。応答を復路リンク上で伝送している最中に、より遠方のハブから更なる応答を受信する場合がある。これらの応答のいくつかは、応答ファイルに既に存在する応答よりも高い優先順位を有している可能性があり、その場合、それらが先に受信されていた応答よりも先になるよう順序を再編してよい。
【００１８】
応答スケジューリングが作動している間にもローカルのメモリハブは自身のリクエストの処理を継続する。リクエストファイルに存在するいずれよりも優先順位が高いローカルリクエストが完了すると、直ちにそれを復路リンク上へと送信してよい。ローカルのリクエストの完了が応答ファイル内の応答よりも優先順位が低い場合、優先順位が高い応答をコントローラへ送信し、優先順位の低いローカルの応答は応答ファイルの指定位置に保存して後刻において送信する。
【００１９】
スケジューリング論理により応答のフローを再編する方法を決定するときに、リクエストファイルの未処理リクエストのステータスを考慮に入れてもよい。
【００２０】
上記の実施形態の構成と詳細を発明原理から逸脱することなく変更してよい。たとえば、コンポーネント間のリンクが一方向（単信回線）である二重データ経路を有するメモリチャネルにおいて用いられる四つのリンクへのインターフェースを備えるようメモリエージェントのいくつかの実施形態を説明したが、本発明原理はリング型トポロジーに配置されるメモリエージェントにも適用してよい。別の例として、論理を本発明原理から逸脱することなく回路（ハードウェア）もしくはソフトウェアとして実施してよい。従って、このような変更と改良は以下の請求項の範囲に含まれると考えられる。
【図面の簡単な説明】
【００２１】
【図１】図１は、従来技術のメモリシステムを示す。
【００２２】
【図２】図２は、従来技術の別のメモリシステムを示す。
【００２３】
【図３】図３は、本特許開示の発明原理に従ったメモリエージェントの実施形態を示す。
【００２４】
【図４】図４は、本特許開示の発明原理に従ったメモリコンポーネントの実施形態を示す。
【００２５】
【図５】図５は、本特許開示の発明原理に従ったメモリエージェントの別の実施形態を示す。
【図１】
2008547099.tif 000003
【図２】
2008547099.tif 000004
【図３】
2008547099.tif 000005
【図４】
2008547099.tif 000006
【図５】
2008547099.tif 000007
【国際調査報告】
2008547099.tif 000008
2008547099.tif 000009