(57)【特許請求の範囲】
【請求項１】
アドレスマッピングデコーダ、トランザクションキュー、フラグ構成器、及びスケジューラを含むマスターコントローラと、
ホストコンピュータに対するインターフェイスと、
デコーダ、スケジューラ、コマンドキュー、及びリードリターンキューを含むスレーブコントローラと、
前記スレーブコントローラに連結されたメモリ装置と、
前記スレーブコントローラに連結されたリンクバスと、を備え、
前記アドレスマッピングデコーダは、前記スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングし、
前記マスターコントローラのスケジューラは、前記メモリ装置のアドレスマッピング情報を利用して前記トランザクションキュー内の前記ホストコンピュータから受信されたメモリトランザクション要請を再整理し、
前記デコーダは、前記マスターコントローラから前記メモリトランザクション要請を受信し、前記メモリトランザクション要請に基づいてメモリコマンドを生成し、前記コマンドキュー内に前記メモリコマンドを配置し、
前記マスターコントローラは、前記リンクバスを通じて前記フラグ構成器によって構成された複数のフラグを前記スレーブコントローラに送信し、
前記デコーダは、前記マスターコントローラから受信された前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理することを特徴とするメモリシステム。
【請求項２】
前記アドレスマッピング情報は、チャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含むことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含むことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記フラグ構成器は、前記ホストコンピュータから受信されたインカミングメモリトランザクション要求が前記トランザクションキュー内のペンディングメモリトランザクション要請のチャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含む場合、前記メモリ装置の活性化されたページがオープンされるようにするために前記要求プリチャージフラグを設定することを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記スレーブコントローラは、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを変更して再整理し、前記変更して再整理されたメモリコマンドに基づいて前記メモリ装置のリフレッシュ動作を処理するリフレッシュハンドラーを更に含むことを特徴とする請求項１に記載のメモリシステム。
【請求項６】
前記スレーブコントローラのスケジューラは、前記コマンドキュー内の前記メモリコマンドに基づいて前記メモリコマンド及び前記メモリコマンドに関連するアドレスを前記メモリ装置に送信することを特徴とする請求項１に記載のメモリシステム。
【請求項７】
前記スレーブコントローラは、パケタイザ及びリードリターンキューを更に含み、
前記メモリ装置から受信されたデータは、前記リードリターンキュー内に配置され、
前記パケタイザは、前記データを含むパケットを生成し、リンクバスを通じて前記パケットを前記マスターコントローラに送信することを特徴とする請求項１に記載のメモリシステム。
【請求項８】
前記スレーブコントローラは、前記メモリコマンド及び前記メモリコマンドに関連するアドレスを、前記メモリコマンドが前記コマンドキューに配置された順に前記メモリ装置に送信する第２スケジューラを更に含むことを特徴とする請求項１に記載のメモリシステム。
【請求項９】
メモリシステムにおけるマスターコントローラ及びスレーブコントローラの動作方法であって、
前記スレーブコントローラが、リンクバスを通じてメモリ装置のアドレスマッピング情報を前記マスターコントローラに送信するステップと、
前記マスターコントローラが、リンクバスを通じて前記スレーブコントローラからメモリ装置のアドレスマッピング情報を受信するステップと、
前記マスターコントローラが、ホストコンピュータからメモリトランザクション要請を受信するステップと、
前記マスターコントローラが、トランザクションキュー内に前記メモリトランザクション要請を配置するステップと、
前記マスターコントローラが、前記メモリ装置のアドレスマッピング情報を利用して前記トランザクションキュー内の前記メモリトランザクション要請を再整理するステップと、
前記スレーブコントローラが、前記マスターコントローラから前記メモリトランザクション要請を受信するステップと、
前記スレーブコントローラが、前記メモリトランザクション要請をデコーディングし、前記デコーディングされたメモリトランザクション要請に基づいてメモリコマンドを生成するステップと、
前記スレーブコントローラが、コマンドキュー内に前記メモリコマンドを配置するステップと、
前記マスターコントローラが、複数のフラグを構成し、前記リンクバスを通じて前記複数のフラグを前記スレーブコントローラに送信するステップと、
前記スレーブコントローラが、複数のフラグを受信するステップと、
前記スレーブコントローラが、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理するステップと、を有することを特徴とする方法。
【請求項１０】
前記アドレスマッピング情報は、チャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記ホストコンピュータから受信されたインカミングメモリトランザクション要求が前記トランザクションキュー内のペンディングメモリトランザクション要請のチャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含む場合、前記メモリ装置の活性化されたページがオープンされるようにするために前記要求プリチャージフラグを設定するステップを更に含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記スレーブコントローラが、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを変更して再整理し、前記変更して再整理されたメモリコマンドに基づいて前記メモリ装置のリフレッシュ動作を処理するステップを更に含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記スレーブコントローラが、前記コマンドキュー内の前記メモリコマンドに基づいて前記メモリコマンド及び前記メモリコマンドに関連するアドレスを前記メモリ装置に送信するステップを更に含むことを特徴とする請求項９に記載の方法。
【請求項１５】
前記スレーブコントローラが、前記メモリ装置から受信されたデータをリードリターンキュー内に配置し、前記データを含むパケットを生成し、リンクバスを通じて前記パケットを前記マスターコントローラに送信するステップを更に含むことを特徴とする請求項９に記載の方法。
【請求項１６】
前記スレーブコントローラが、前記メモリコマンド及び前記メモリコマンドに関連するアドレスを、前記メモリコマンドが前記コマンドキューに配置された順に前記メモリ装置に送信するステップを更に含むことを特徴とする請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ用メモリシステムに関し、より詳しくは、高性能なトランザクション基盤のメモリシステム並びにマスターコントローラ及びスレーブコントローラの動作方法に関する。
【背景技術】
【０００２】
同期ＤＲＡＭ（ＳＤＲＡＭ）は、メモリコントローラに同期化されるインターフェイスを有し、コンピュータのシステムバスの速度でメモリコントローラに同期して応答する。コンピュータのクロック信号はメモリコントローラのインカミングコマンドをパイプライン（ｐｉｐｅｌｉｎｅ）処理する内部有限状態マシーン（ｆｉｎｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ：ＦＳＭ）を駆動するために使用される。ＳＤＲＡＭのデータストレージは様々なバンクに分割される。バンクの分割はメモリコントローラが様々なメモリアクセスコマンドを同時に処理できるようにする。メモリアクセスコマンドは分離バンク間に内挿（ｉｎｔｅｒｌｅａｖｅ）される。バンクの分割は非同期ＤＲＡＭより更に高いデータアクセス速度を提供する。
【０００３】
トランザクション基盤（ｔｒａｎｓａｃｔｉｏｎ−ｂａｓｅｄ）メモリシステムは、最近、高メモリ容量、高帯域幅、及び設計柔軟性に対する関心を集めている。トランザクション基盤メモリシステムの例としては、バッファオンボードタイプ（例えば、Ｉｎｔｅｌ（登録商標）  Ｓｃａｌａｂｌｅ  Ｍｅｍｏｒｙ  Ｂｕｆｆｅｒ：ＳＭＢ）、ハイブリッドメモリキューブ（例えば、Ｍｉｃｒｏｎ（登録商標）  Ｈｙｂｒｉｄ  Ｍｅｍｏｒｙ  Ｃｕｂｅ：ＨＭＣ）、及びＨＰ（登録商標）  Ｇｅｎ−Ｚ（登録商標）を含む。
【０００４】
同期メモリシステムとは異なり、トランザクション基盤メモリシステムにおけるメモリコントローラはＤＲＡＭｓと直接的に通信しない。代わりに、コンピュータシステムのメモリコントローラ（即ち、マスターコントローラ）はＤＲＡＭコントローラ（例えば、スレーブコントローラ）とポイント対ポイントリンクバスを通じて非同期的に通信する。ＤＲＡＭコントローラはメモリコマンド（例えば、ＪＥＤＥＣで標準化されたＤＤＲメモリコマンド）を利用してメモリチャンネル（例えば、ＤＤＲメモリチャンネル）を通じてＤＲＡＭｓと通信する。標準メモリコマンドの例としては、アクティブ、リード、ライト、プリチャージ、及びリフレッシュを含む。アクティブコマンドは特定のバンク内の一行（ｒｏｗ）を活性化させる。リード及びライトコマンドは活性化された行に対してリード及びライトバースト（ｂｕｒｓｔ）を開始する。プリチャージコマンドは特定のバンク内の活性化された行を閉じる。リフレッシュコマンドはリフレッシュ動作を開始する。メモリバンクは、リフレッシュコマンドが発行されると、プリチャージされる。
【０００５】
従来のトランザクション基盤メモリシステム設計において、マスターコントローラとスレーブコントローラとは緩く結合されており、少量の情報を交換する。緩く結合されたマスターコントローラ及びスレーブコントローラはメモリシステムの設計柔軟性及び効率的管理を提供する。しかし、マスターコントローラとスレーブコントローラとの間の緩い結合は非最適化性能をもたらす。例えば、ランク／バンクインタリービング及び行バッファ管理はスレーブコントローラ単独で処理される。パワー及びコスト問題によって、スレーブコントローラは小型バッファ及び簡単なロジックを含む制限された資源を有する。スレーブコントローラに対する制限された資源はコントローラのスケジューリング及び行バッファ管理能力を制限する。一方、マスターコントローラはスレーブコントローラの制限された能力を克服してメモリシステムの性能を潛在的に改善することができる充分な資源及びバッファを有する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７，０８９，３７９号明細書
【特許文献２】米国特許第８，３８０，９４０号明細書
【特許文献３】米国特許公開第２０１４／００６８１２５号明細書
【特許文献４】米国特許公開第２０１２／００５４４５５号明細書
【特許文献５】米国特許公開第２０１５／０１０６５６０号明細書
【特許文献６】米国特許公開第２０１２／００３６２９６号明細書
【特許文献７】米国特許公開第２００８／０１８９４７９号明細書
【特許文献８】米国特許公開第２０１２／０２３９８７３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、高性能なトランザクション基盤のメモリシステム並びにマスターコントローラ及びスレーブコントローラの動作方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するためになされた本発明の一態様によるメモリシステムは、アドレスマッピングデコーダ、トランザクションキュー、及びスケジューラを含むマスターコントローラと、ホストコンピュータに対するインターフェイスと、スレーブコントローラに連結されたリンクバスと、を備え、前記アドレスマッピングデコーダは、前記スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングし、前記マスターコントローラのスケジューラは、前記メモリ装置の前記アドレスマッピング情報を利用して前記トランザクションキュー内の前記ホストコンピュータから受信されたメモリトランザクション要請を再整理する。前記メモリシステムは、前記マスターコントローラの前記トランザクションキュー内のペンディングメモリトランザクション要請に基づいて拡張オープンページポリシーを用いる。
【０００９】
上記目的を達成するためになされた本発明の一態様によるメモリモジュールは、デコーダ、スケジューラ、コマンドキュー、及びリードリターンキューを含むスレーブコントローラと、メモリ装置と、を備え、前記デコーダは、メモリトランザクション要請を受信し、前記メモリトランザクション要請に基づいてメモリコマンドを生成し、前記コマンドキュー内に前記メモリコマンドを配置し、更に、前記デコーダは、複数のフラグを受信し、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理する。
【００１０】
上記目的を達成するためになされた本発明の一態様によるメモリシステムにおけるマスターコントローラの動作方法は、リンクバスを通じてスレーブコントローラからメモリ装置のアドレスマッピング情報を受信するステップと、ホストコンピュータからメモリトランザクション要請を受信するステップと、トランザクションキュー内に前記メモリトランザクション要請を配置するステップと、前記メモリ装置の前記アドレスマッピング情報を利用して前記トランザクションキュー内の前記メモリトランザクション要請を再整理するステップと、を有する。
【００１１】
上記目的を達成するためになされた本発明の一態様によるメモリシステムにおけるスレーブコントローラの動作方法は、リンクバスを通じてメモリ装置のアドレスマッピング情報をマスターコントローラに送信するステップと、メモリトランザクション要請を受信するステップと、前記メモリトランザクション要請をデコーディングし、前記デコーディングされたメモリトランザクション要請に基づいてメモリコマンドを生成するステップと、コマンドキュー内に前記メモリコマンドを配置するステップと、複数のフラグを受信するステップと、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理するステップと、を有する。
【発明の効果】
【００１２】
本発明によれば、高性能なトランザクション基盤のメモリシステムとマスターコントローラ及びスレーブコントローラの動作方法が容易に具現される。
【図面の簡単な説明】
【００１３】
【図１】従来のトランザクション基盤メモリシステムのブロック図である。
【図２Ａ】マスターバッファとスレーブバッファとの間のメモリマッピングの比較例を示す図である。
【図２Ｂ】本発明の一実施形態によるマスターバッファとスレーブバッファとの間のメモリマッピングの一例を示す図である。
【図３Ａ】スレーブコントローラのページオープンポリシーの比較例を示す図である。
【図３Ｂ】本発明の一実施形態によるトランザクション基盤メモリシステムのページオープンポリシーの一例を示す図である。
【図４】本発明の一実施形態によるトランザクション基盤メモリシステムの一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
【００１５】
本発明を具現する多様な新規の詳細及びイベントの組合せを含む上記及び他の望ましい特徴は、図面を参照しながらより詳細に説明し、特許請求の範囲内で示される。ここで説明する特別なシステム及び方法は、制限されるものではなく、図示するために示す。本分野の通常の知識を有する者によって理解されることであって、ここに開示する原理及び特徴は、本開示の範囲を逸脱せずに、多様で数多くの実施形態に適用される。
【００１６】
図面は必ずしも一定の比率で図示したものではなく、類似の構造又は機能の構成要素は図面全体に亘って図示するために同様の参照符号で一般的に示す。図面は明細書で説明する多様な実施形態の説明を容易にするためのみに示す。図面は本明細書に開示する技術的思想の全ての側面を説明するものではなく、特許請求の範囲を制限しない。
【００１７】
本明細書に開示する特徴及び教示（ｔｅａｃｈｉｎｇ）は、各々個別的に活用されるか、或いはトランザクション基盤メモリシステム及びその動作方法を提供するために他の特徴及び教示と共に活用される。追加の特徴及び教示は別途に或いは組合せて多くで活用される代表的な例について図面を参照しながらより詳細に説明する。詳細な説明は単なる本分野の熟練された者に本教示の態様を実施するための追加的な詳細を教えるための意図のみであり、特許請求の範囲を限定しようとする意図ではない。従って、詳細な説明において開示する特徴の組合せは最も広い意味での教示を実施するために必要としないこともあり、代わりに本教示の特に代表的な例のみを説明する。
【００１８】
以下の説明で、説明の目的のみに、特定名称を本発明の完全な理解を提供するために説明する。しかし、特定細部事項は本発明の開示の教示を実施するために要求されないことは当業者に明らかである。
【００１９】
詳細な説明の一部はアルゴリズム及びコンピュータメモリ内のデータビットに対する動作のシンボル表現の態様で提供される。これらのアルゴリズムの説明及び表現は効果的に他の当業者に作業の実体を伝達するためにデータ処理分野の当業者によって使用される。アルゴリズムは、ここで及び一般的に望む結果に至る段階の自らの一貫性シークェンス（ｓｅｌｆ−ｃｏｎｓｉｓｔｅｎｔ  ｓｅｑｕｅｎｃｅ）であるとして案出される。アルゴリズムの各段階は物理量の物理的操作が必要である。一般的に必須的でないが、これらの量は格納、伝達、結合、比較、及び異なって操作される電気又は磁気信号の形態を取る。この信号に対してビット、値、エレメント、シンボル、キャラクター、用語、数字等として指称することは、主に共通的な使用の理由の下でしばしば便利である。
【００２０】
しかし、これら及び類似な用語の全ては、適切な物理量に関連し、単なる物理量に適用される便利なラベルであることに留意しなければならない。特別に以下の説明で明確に異なって言及しない限り、説明の全体を通じて“処理”、“コンピューティング”、“計算”、“決定”、“表示”等のような用語を活用する説明は、コンピュータシステムや同様の電子コンピューティング装置の作用及び処理を指称する。ここで、作用及び処理はコンピュータシステムのレジスター及びメモリ内で物理的（電子的）量として表れるデータを他のデータに操作及び変換することを意味する。他のデータはコンピュータシステムのメモリ又はレジスター、他の情報ストレージ、又は伝送、或いは表示装置内で物理量として同様に現れるデータである。
【００２１】
このような多様なシステムに必要な構造は以下の説明で示す。多様なプログラミング言語がここに開示するような発明の教示を具現するために使用される。
【００２２】
また、代表的な実施形態の多様な特徴と従属請求項は本教示の追加的な有用な実施形態を提供するために特別に明示的に列挙しない方式で結合される。また、全ての値の範囲又は個体グループの表示（ｉｎｄｉｃａｔｉｏｎｓ）は、元の開示の目的のためのことは勿論、特許請求の範囲に記載した発明の思想を特定する意図として全ての可能な中間値又は中間個体を示すことを特に言及する。そして、図面内に示す構成要素の次元及び形状は本発明の教示がどのようにして実施されるかに対する理解を助けるために設計されただけであり、また実施形態に示した次元及び形状に限定されないことを特に言及する。
【００２３】
本発明は高性能なトランザクション基盤メモリシステム（ｔｒａｎｓａｃｔｉｏｎ−ｂａｓｅｄ  ｍｅｍｏｒｙ  ｓｙｓｔｅｍ）及びその動作動方法を提供する。本発明のトランザクション基盤メモリシステムは緩く結合されたマスター及びスレーブコントローラの設計に対する限界を克服する。即ち、緩く結合された設計に対する限界はメモリ装置のアドレスマッピング情報がマスターコントローラに伝達されないことである。本発明のトランザクション基盤メモリシステムのマスターコントローラは、従来スレーブコントローラによって取り扱われるスケジューリング及び行バッファ管理（ｓｃｈｅｄｕｌｉｎｇ  ａｎｄ  ｒｏｗ  ｂｕｆｆｅｒ  ｍａｎａｇｅｍｅｎｔ）に深く関連する。マスターコントローラは、より深いバッファ及びより複雑なロジックを有し、スレーブコントローラのみに依存する場合に比べ、より優れたスケジューリング及びメモリ管理を決定する。特に、本発明のトランザクション基盤メモリシステムは、より優れたチャンネル／ランク／バンクインタリービング（例えば、より高い並列性）、及びより効率的な行バッファ管理（例えば、より多くのページヒット数）を、以下の例及び実施形態でより詳細に説明する。
【００２４】
図１は、従来のトランザクション基盤メモリシステムのブロック図である。トランザクション基盤メモリシステム１００は、マスターコントローラ１１０（例えば、ホストコントローラ）、スレーブコントローラ１２０（例えば、ＤＲＡＭコントローラ）、及びメモリ装置１３０（例えば、ＤＲＡＭ）を含む。マスターコントローラ１１０は、メモリ装置１３０にアクセスするためにＣＰＵから要請（ｒｅｑｕｅｓｔ）を受信し、要請に対応するＣＰＵに応答する。マスターコントローラ１１０は、エンコーダ１１１、スケジューラ１１２、デコーダ１１３、トランザクションキュー１１５、及びリードリターンキュー１１６を含む。
【００２５】
エンコーダ１１１は、ＣＰＵの要請をエンコーディングし、エンコーディングされた要請をトランザクションキュー１１５内に配置する。エンコーディングされた要請はメモリ装置１３０のアドレスやアドレスブロックに対するメモリリード及びメモリライトを含む。マスターコントローラ１１０のスケジューラ１１２はＣＰＵの要請をトランザクションキュー１１５内に配置された順にパケット化し、パケット化された要請を、マスターコントローラ１１０とスレーブコントローラ１２０との間のリンクバス中の要請リンクを通じてスレーブコントローラ１２０に送信する。
【００２６】
スレーブコントローラ１２０は、デコーダ１２１、スケジューラ１２２、パケタイザ１２３、コマンドキュー１２５、及びリードリターンキュー１２６を含む。デコーダ１２１は、要請リンクを通じてマスターコントローラ１１０から受信されたパケットをデコーディングし、対応するメモリコマンドを生成してコマンドキュー１２５に配置する。スケジューラ１２２は、メモリコマンド及び関連するメモリアドレスをメモリ装置１３０に送信し、メモリ装置１３０からデータを受信する。スレーブコントローラ１２０はメモリ装置１３０からのリードデータをリードリターンキュー１２６に配置する。パケタイザ１２３は、メモリ装置１３０から受信された応答（例えば、メモリアドレスからリードされたデータ）をパケット化し、パケット化された応答をマスターコントローラ１１０とスレーブコントローラ１２０との間のリンクバス中の応答リンクを通じてマスターコントローラ１１０に送信する。
【００２７】
マスターコントローラ１１０のデコーダ１１３は、応答リンクを通じてスレーブコントローラ１２０から受信されたパケットをデコーディングし、デコーディングされたパケットをリードリターンキュー１１６に配置する。デコーダ１１３は、データを、リードデータがリードリターンキュー１１６に配置された順にＣＰＵに送信する。マスターコントローラ１１０とスレーブコントローラ１２０との間の通信はリンクバスを通じたパケットの交換に対して制限される。スレーブコントローラ１２０はメモリ装置（ＤＲＡＭ）１３０のアドレスマッピング情報をマスターコントローラ１１０と共有しないため、マスターコントローラ１１０のスケジューラ１１２は、要請パケットをスレーブコントローラ１２０に伝送する時に、トランザクションキュー１１５内のペンディング要請（ｐｅｎｄｉｎｇ  ｒｅｑｕｅｓｔｓ）をプリスケジューリングすることができない。
【００２８】
図２Ａは、マスターバッファとスレーブバッファとの間のメモリマッピングの比較例を示す図である。図１の従来のトランザクション基盤メモリシステム１００の例を参照すると、マスターコントローラ１１０はエンコーディングされたＣＰＵの要請（リクエスト）をトランザクションキュー１１５に単純に配置する。例えば、トランザクションキュー１１５内の要請及び関連するメモリアドレス及び／又はデータはＦＩＦＯ（ｆｉｒｓｔ−ｉｎｆｉｒｓｔ−ｏｕｔ）バッファに格納される。スケジューラ１１２はエンコーディングされたＣＰＵ要請をメモリアドレス及び／又はデータと共にスレーブコントローラ１２０に送信する。この時、送信はＦＩＦＯバッファ内に要請が配置された順に行われる。マスターコントローラ１１０はメモリ装置（ＤＲＡＭ）１３０のアドレスマッピング情報を有しないため、マスターコントローラ１１０はＣＰＵの要請をトランザクションキュー１１５内に配置された順に、バンクインタリービング無しでスレーブコントローラ１２０に送信する。
【００２９】
マスターコントローラ１１０はマスターバッファ２０１を有し、スレーブコントローラ１２０はマスターバッファ２０１よりも小さいスレーブバッファ２０２を有する。本実施例において、マスターバッファ２０１は、８エントリディープ（ｅｉｇｈｔ−ｅｎｔｒｉｅｓ  ｄｅｅｐ）で示し、１回に８つの要請キューのみを格納するのに比べて、スレーブバッファ２０２は、４エントリディープであり、４つの要請キューのみを格納する。しかし、マスターバッファ２０１とスレーブバッファ２０２とは本発明の技術的思想の範囲を逸脱せずに、任意のバッファサイズになる。
【００３０】
マスターバッファ２０１内の幾つかの要請は同一のバンクに対するマッピングを含む。本実施例で、マスターバッファ２０１内の要請は４つの連続的なバンク０の要請及び後続するバンク１、バンク２、バンク３、及びバンク４の要請を含む。ここで、バンクの要請はリード要請或いはライト要請である。マスターコントローラ１１０のスケジューラ１１２はマスターバッファ２０１に配置された要請をスレーブバッファ２０２内の可用エントリ（ｅｎｔｒｉｅｓ）の個数に基づいてスレーブバッファ２０２に送信し、残りのエントリをマスターバッファ２０１内の図に示す上方に押す。初期にスレーブバッファ２０２は空いているため、４つの連続的なバンク０の要請を含むマスターバッファ２０１の第１の４つバッファエントリは、スレーブコントローラ１２０に送信されてスレーブバッファ２０２に配置される。スレーブバッファ２０２に到着した要請は４つの連続的なバンク０の要請のみを含むため、スレーブコントローラ１２０はバンクインタリービングを遂行することができない。従って、スレーブコントローラ１２０の１つのコア（ｏｎｅ  ｃｏｒｅ）は１行で４回に亘ってバンク０にアクセス（リード又はライト）する。一方、スレーブコントローラ１２０の他のコアは他のバンクにアクセスすることができない所謂アイドリング（ｉｄｌｉｎｇ）状態になる。アイドリング状態は遅い応答タイムを発生させるバンク衝突をもたらす。
【００３１】
マスターコントローラ１１０が、アドレスマッピング情報と、例えばメモリ装置のインカミング要請のチャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤのようなメモリ構成情報とを有する場合、マスターコントローラ１１０は、ＣＰＵの要請を再整理（ｒｅ−ｏｒｄｅｒ）し、再整理された（又はインターリーブされた）要請をスレーブコントローラ１２０に送信する。図２Ａを参照すると、マスターバッファ２０１はバンクＩＤ情報を有しない。なぜならば、マスターコントローラ１１０がアドレスマッピング情報を有しないためである。従って、マスターコントローラ１１０は要請がマスターバッファ２０１内に格納されていることによって要請を単純に伝送する。本発明の一実施形態によるアドレスマッピング情報に基づくマスターコントローラ１１０による再整理は、より効率的なバンクインタリービングを獲得する。
【００３２】
図２Ｂは、本発明の一実施形態によるマスターバッファとスレーブバッファとの間のメモリマッピングの一例を示す図である。図２Ａの例と同様に、マスターバッファ２５１は４つの連続的なバンク０の要請及び後続するバンク１、バンク２、バンク３、及びバンク４の要請を含む。初期にスレーブバッファ２５２は空いているため、マスターコントローラ１１０はマスターバッファ２５１の４つの要請をスレーブコントローラ１２０に送信することを許諾する。メモリ装置のアドレスマッピング情報が分かると、マスターコントローラ１１０はマスターバッファ２５１内の第１の４つの要請の代わりに第１バンク０の要請、及びバンク１、バンク２、バンク３の要請を含むようにマスターバッファ２５１内で要請を再整理する。この場合、スレーブコントローラ１２０はスレーブコントローラ１２０の可用コアを利用してバンク０、バンク１、バンク２、及びバンク３に同時にアクセスすることによってバンクインタリービングを遂行する。
【００３３】
一実施形態において、マスターコントローラとスレーブコントローラとはシステムブーティング時にアドレスマッピングの選択を交換し、使用者はどのアドレスマッピングスキームを使用するかを決定する。アドレスマッピングスキームは、システムがリブーティングされるか、或いは使用者がアドレスマッピングスキームをその場で（ｏｎ  ｔｈｅ  ｆｌｙ）再構成する時まで変更されないこともある。システムブーティング時にアドレスマッピングスキームを選択する場合、メモリシステムはメモリコントローラ内にハードウェアデコーダを構成する。ハードウェアデコーダはインカミングアドレスをＤＲＡＭ内のチャンネル、ランク、バンク、及び行ＩＤｓに対応する物理アドレスにデコーディングする。
【００３４】
クローズ（ｃｌｏｓｅ）ページは毎メモリアクセス（例えば、リード及びライト）の後にプリチャージコマンドによって開始される。クローズページは、行バッファミス（ｍｉｓｓｅｓ）に対するレイテンシ（ｌａｔｅｎｃｙ）を減らすが、行バッファヒット（ｈｉｔｓ）に対するレイテンシを増加させる。なぜならば、クローズされたページは行バッファヒットの場合に再びオープンされなければならないためである。オープンページはミスする時までプリチャージを遅延する。オープンページは、行バッファヒットに対するレイテンシを減らすが、行バッファミスに対するレイテンシを増加させる。行バッファミス及びヒットの率に依存して、スレーブコントローラは、クローズ、オープン、及びプリチャージを決定する。
【００３５】
本発明のトランザクション基盤メモリシステムは成熟するオープンページポリシー（ｍａｔｕｒｅ  ｏｐｅｎ  ｐａｇｅ  ｐｏｌｉｃｙ）を提供する。従来のメモリシステムで、スレーブコントローラは、スレーブバッファをスキャンし、位置関係（ｌｏｃａｌｉｔｙ）が不明の場合、ページをクローズする。即ち、ページオープン及びクローズは、オープンページから利益を得られるペンディング要請であっても、スレーブバッファの位置関係のみによって決定される。スレーブコントローラは一般的に小規模のスレーブバッファを有するため、スレーブコントローラは、マスターコントローラからのその後の要請を予見して成熟するオープンページポリシーを適用することができない。このような意味で、スレーブコントローラのみによって具現され、スレーブバッファの大きさに制限されるオープンページポリシーはオープンページの早計な（ｐｒｅｍａｔｕｒｅ）クローズを頻繁にもたらす。
【００３６】
一実施形態において、マスターコントローラは、マスターバッファ２５１をスキャンし、ページオープン及びクローズに関する情報をスレーブコントローラに提供する。マスターコントローラは位置関係がマスターバッファ２５１内で確認されない場合にスレーブコントローラがオープンページをクローズするようにする。マスターコントローラはより深い（ｄｅｅｐｅｒ）バッファを有し、その後のより多い要請を予見するため、マスターコントローラはより効率的なオープンページポリシー及び行バッファ管理を提供する。
【００３７】
図３Ａは、スレーブコントローラのページオープンポリシーの比較例を示す図である。各要請をバンク番号及び行バッファ番号で示す。例えば、Ｂｎ：Ｒｍはバンク番号ｎの行バッファ番号ｍを示す。各バンクは専用の行バッファを有する。１つのバンク内に多数の行がある。行をオープンすることによって、データは行のバンクに関連する行バッファに置かれる。行バッファはＤＲＡＭ内で速いキャッシュ（ｃａｃｈｅ）として機能する。行アクセスは、ＤＲＡＭのバンクの一行（ページ）を活性化し、活性化された行（オープンページ）からのデータを行バッファ内にコピーする。カラムアクセスは、活性化された行のカラムを選択し、活性化された行及び選択されたカラムに対応するブロックのデータを返還する。プリチャージは活性化された行にアクセスする前にＤＲＡＭのバンクをチャージ（ｃｈａｒｇｅ）する。リフレッシュは、ＤＲＡＭ内のデータを維持するために周期的にＤＲＡＭをリードし、ライトする。
【００３８】
マスターコントローラはマスターバッファ２０１内のトランザクションキューの一部をスレーブコントローラに送り、スレーブコントローラは受信されたキューをスレーブバッファ２０２内に配置する（格納する）。一例として、初期に４エントリディープを有するスレーブバッファ２０２が空いているため、マスターバッファ２０１内の４つのキューはスレーブバッファ２０２にコピーされる。スレーブバッファ２０２にコピーされたキューはＢ０：Ｒ０に対する１つのキューのみを含むため、スレーブコントローラはＢ０：Ｒ０に対するページをオープンし、Ｂ０：Ｒ０に対するキューが完了した後にオープンされたページをクローズする。マスターコントローラはスレーブコントローラと情報（例えば、マスターバッファ２０１内のキュー）を共有しないため、スレーブコントローラは、オープンされたページに対する更に多いキューがスレーブバッファ２０２内に待機しない場合、オープンされたページをクローズする。この場合、ページオープンを維持する決定及びページをクローズする決定は、スレーブバッファ２０２内に可用されるキューに基づいてスレーブコントローラのロジックによって単独に決定される。
【００３９】
図３Ｂは、本発明の一実施形態によるトランザクション基盤メモリシステムのページオープンポリシーの一例を示す図である。本実施形態のトランザクション基盤メモリはマスターバッファ２５１内のキューを参照してページオープンポリシーを拡張する。初期にスレーブバッファ２５２は空いているため、マスターバッファ２５１内の４つのキューはスレーブバッファ２５２内にコピーされる。スレーブバッファ２５２にコピーされたキューはＢ０：Ｒ０のページに対する１つのキューのみを含む。しかし、マスターバッファ２５１はＢ０：Ｒ０に対するページのペンディング（ｐｅｎｄｉｎｇ）キューを含む。従って、マスターコントローラはＢ０：Ｒ０に対するページオープンを維持するために命令（例えば、フラグ）をスレーブコントローラに送る。なぜならば、同一のページに対するペンディングキューが後続するためである。マスターコントローラの命令に応答して、スレーブコントローラは同一のページに対する待機キューが到着する時までページオープンを維持し、対応するメモリトランザクションは完了する。拡張されたページオープンポリシーのためにマスターコントローラとスレーブコントローラとの間で交換されるフラグを図４を参照して更に具体的に説明する。
【００４０】
図４は、本発明の一実施形態によるトランザクション基盤メモリシステムの一例を示すブロック図である。図１のメモリシステム１００と同様に、トランザクション基盤メモリシステム４００は、マスターコントローラ４１０（例えば、メモリコントローラ）、スレーブコントローラ４２０、（例えば、ＤＲＡＭコントローラ）、及びメモリ装置４３０（例えば、ＤＲＡＭ）を含む。マスターコントローラ４１０は、メモリ装置４３０にアクセスするためにＣＰＵから要請を受信し、要請に対応するＣＰＵに応答する。
【００４１】
マスターコントローラ４１０、スレーブコントローラ４２０、及びメモリ装置４３０を分離されたブロックで示しているが、マスターコントローラ４１０、スレーブコントローラ４２０、及びメモリ装置４３０は多様な方法で具現されて構成される。一実施形態において、スレーブコントローラ４２０はメモリ装置４３０内に常駐（ｒｅｓｉｄｅ）し、メモリ装置４３０はホストコンピュータのメモリスロット内に挿入される。他の実施形態として、スレーブコントローラ４２０はホストコンピュータのマスターコントローラ４１０内に常駐する。
【００４２】
マスターコントローラ４１０は、エンコーダ４１１、スケジューラ４１２、デコーダ４１３、アドレスマッピングデコーダ４１４、及びフラグ構成器４１５を含む。アドレスマッピングデコーダ４１４はメモリ装置４３０のアドレスマッピング情報を格納する。アドレスマッピング情報は、チャンネル、ランク、バンク、及び行情報を含む。アドレスマッピングデコーダ４１４は、アドレスマッピング情報をチャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを有するエンコーディングされたトランザクションキュー４１７に格納する。アドレスマッピングデコーダ４１４は、図２Ｂの例で示したようにアドレスマッピング情報に基づいてエンコーディングされたトランザクションキューを再整理するため、マスターコントローラ４１０はスレーブコントローラ４２０のようなアドレスマッピングを維持する。例えば、新しいメモリ装置４３０が挿入されると、スレーブコントローラ４２０は新しいメモリ装置４３０のアドレスマッピング情報をシステムブーティングタイムの間にマスターコントローラ４１０に送る。アドレスマッピングデコーダ４１４はインタリービング及び行バッファ管理の両方に対する要請をデコーディングする。
【００４３】
スケジューラ４１２は、バンク、ランク、ＤＩＭＭ、及びＸＯＲインタリービングを最適化するために多様なスケジューリングスキームを用いる。スケジューリングの例としては、限定されるものではないが、チャンネルラウンドロビン（ｒｏｕｎｄ  ｒｏｂｉｎ）、ランクラウンドロビン、及びバンクラウンドロビンを含む。フラグ構成器４１５は、マスターコントローラ４１０とスレーブコントローラ４２０との間の情報交換を促進するために追加フラグを設定する。これらのフラグは、図３Ｂの例を参照して説明したように、拡張されたページオープンポリシーに基づいてページオープンを維持するために使用される。追加フラグの例としては、限定されるものではないが、要求活性化（ｒｅｑｕｉｒｅＡＣＴ）フラグ及び要求プリチャージ（ｒｅｑｕｉｒｅＰＲＥ）フラグを含む。これらのフラグはトランザクションキュー４１７内で要請と共にパケット化される。
【００４４】
スレーブコントローラ４２０は、デコーダ４２１、スケジューラ４２２、パケタイザ４２３、及びリフレッシュハンドラー４２４を含む。デコーダ４２１は、簡単な要請パケット（ｓｔｒａｉｇｈｔ  ｆｏｒｗａｒｄ  ｒｅｑｕｅｓｔ  ｐａｃｋｅｔｓ）をｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥフラグ（ｆｌａｇｓ）に基づいてメモリコマンドに変換する。リフレッシュハンドラー４２４は、必要に応じて、ｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥフラグに基づいて簡単なリフレッシュハンドリングを遂行する。スレーブコントローラ４２０のリフレッシュコントローラ（図示せず）はリフレッシュ動作の遂行を継続する。リフレッシュハンドラー４２４はリフレッシュ状況の処理を担当する。例えば、リフレッシュハンドラー４２４はフラグに基づいて標準リフレッシュ動作を中断（インタラプト）し、リフレッシュ状況処理の後、リフレッシュ動作前の状態からリフレッシュ動作を再開する。
【００４５】
表１は２つの追加フラグ、即ちフラグ構成器４１５によって構成されたｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥを示す。ｒｅｑｕｉｒｅＡＣＴフラグは、パケットがフルアドレス（行及び列アドレス）を必要とする時に真（ｔｒｕｅ）として設定される。パケットのフルアドレスを利用して、スレーブコントローラ４２０は、受信されたパケットを行アドレス選択（ＲＡＳ）−列アドレス選択（ＣＡＳ）（又はＲＡＳ−ＣＡＳライト：ＣＡＳＷ）にデコーディングする。一方、ｒｅｑｕｉｒｅＰＲＥフラグは、パケットが部分アドレス、例えばカラムアドレスのみを必要とする時に偽（ｆａｌｓｅ）として設定される。この場合、スレーブコントローラ４２０は、アクティブ行（ＲＡＳ）を有し、パケットをＣＡＳ（又はＣＡＳＷ）にデコーディングする。
【００４６】
ｒｅｑｕｉｒｅＰＲＥフラグは、マスターコントローラ４１０が行空間の位置関係（ｒｏｗ  ｓｐａｔｉａｌ  ｌｏｃａｌｉｔｙ）がマスターバッファ内に存在しないことを決定した時に真（ｔｒｕｅ）として設定される。スレーブコントローラ４２０は、オープンページをクローズし、新しいページのオープンを準備するようにプリチャージコマンドを以前のコマンドに追加する。一方、ｒｅｑｕｉｒｅＰＲＥフラグは、行空間の位置関係（ｒｏｗ  ｓｐａｔｉａｌ  ｌｏｃａｌｉｔｙ）が存在した時に偽として設定される。この場合、スレーブコントローラ４２０はプリチャージコマンドを以前のコマンドに追加せず、オープンページは、ｒｅｑｕｉｒｅＰＲＥフラグがオープンページをクローズするように真として設定される時までオープンに維持される。
【００４７】
【表１】
0006796430.tif 000002
【００４８】
以下の擬似コード（ｐｓｅｕｄｏ−ｃｏｄｅ）は、マスターコントローラ４１０がｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥフラグをどのようにして構成し、管理するかを一例として示す。マスターコントローラ４１０は、擬似コード内でｉｎｐｕｔＢｕｆｆｅｒと称するトランザクションキュー４１７を含む。ｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥフラグは初期に真として設定される。マスターコントローラ４１０はトランザクションキュー４１７内でインカミング要請をスキャンする。インカミング要請がトランザクションキュー４１７内のペンディング要請のような同一チャンネル、ランク、バンク、及び行を有する場合、ペンディング要請のｒｅｑｕｉｒｅＰＲＥフラグは偽として設定される。偽ｒｅｑｕｉｒｅＰＲＥフラグは、インカミング要請が処理される時まで対応するページオープンをそのまま配置する。一方、インカミング要請のｒｅｑｕｉｒｅＡＣＴフラグ及びｒｅｑｕｉｒｅＰＲＥフラグは偽及び真として各々設定される。キュー内でテール（ｔａｉｌ）からマッチ（ｍａｔｃｈ）が発見されると、スキャニング過程は中止される。なぜならば、これはマッチが発見された後、スキャニング過程を継続することが他のペンディング要請に対して望まない変更になることがあり、ペンディング要請のフラグを変更するためである。マッチがない場合、ｒｅｑｕｉｒｅＡＣＴフラグ及びｒｅｑｕｉｒｅＰＲＥフラグは変更されず、スレーブコントローラ４２０がオープンページを自由にクローズすることができる真（ｔｒｕｅ）として設定される。
【００４９】
0006796430.tif 000003
【００５０】
スレーブコントローラ４２０は、マスターコントローラ４１０によって提供されるフラグを有し、ｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥフラグの状態に基づいてインカミングパケットをメモリコマンドに変換する。表２はスレーブコントローラ４２０のデコーダ４２１がｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥフラグの状態に基づいてマスターコントローラ４１０のインカミングパケットから生成するメモリコマンドの一例を示す。ｒｅｑｕｉｒｅＡＣＴフラグ及びｒｅｑｕｉｒｅＰＲＥフラグが両方真である場合、デコーダ４２１はＲＡＳ−ＣＡＳ−ＰＲＥ或いはＲＡＳ−ＣＡＳＷ−ＰＲＥコマンドを発行する。ｒｅｑｕｉｒｅＡＣＴフラグが真であるが、ｒｅｑｕｉｒｅＰＲＥフラグが偽である場合、デコーダ４２１はＰＲＥコマンドの追加無しにＲＡＳ−ＣＡＳ或いはＲＡＳ−ＣＡＳＷコマンドを発行する。ｒｅｑｕｉｒｅＡＣＴフラグ及びｒｅｑｕｉｒｅＰＲＥフラグが両方偽である場合、デコーダ４２１は行活性化又はＰＲＥコマンドの追加無しにＣＡＳ或いはＣＡＳＷコマンドを発行する。ｒｅｑｕｉｒｅＡＣＴフラグが偽であるが、ｒｅｑｕｉｒｅＰＲＥフラグが真である場合、デコーダ４２１は行活性化無しにＣＡＳ−ＰＲＥ或いはＣＡＳＷ−ＰＲＥコマンドを発行する。
【００５１】
【表２】
0006796430.tif 000004
【００５２】
スレーブコントローラ４２０は、特に２つの追加フラグ、即ちｒｅｑｕｉｒｅＡＣＴ及びｒｅｑｕｉｒｅＰＲＥの具現によるマスターコントローラ４１０の変更を収容するためにリフレッシュを差別的に取り扱う。以下の擬似コード（ｐｓｅｕｄｏ−ｃｏｄｅ）の一例は、スレーブコントローラ４２０のリフレッシュハンドラー４２４がリフレッシュコマンドをどのようにして取り扱っているかを示す。ページオープンの時、リフレッシュハンドラー４２４はプリチャージコマンドをどれくらい早く施行するかを決定する。現在のバンク状態がアクティブロー状態ではなく、最後のコマンドがプリチャージコマンドである場合、リフレッシュハンドラー４２４は強制的にプリチャージを決定する。プリチャージを施行するために活性化コマンド及びプリチャージコマンドが挿入される。プリチャージコマンドが先ず発行され、リフレッシュコマンドが暗黙のうちに発行され、その後に活性化コマンドが発行される。活性化コマンドは、リフレッシュコマンドが完了すると、行を再びオープンする。リフレッシュカウンターが０（ゼロ）に到達し、全てのバンクがアイドル状態である場合、リフレッシュコマンドが発行される。
【００５３】
0006796430.tif 000005
【００５４】
一実施形態において、スケジューラ４１２は、インターリーブされたメモリトランザクションを最適化するために、マスターコントローラ４１０のトランザクションキュー４１７及びスレーブコントローラ４２０のコマンドキュー４２５をスケジューリングする。スケジューラ４１２は、マスターコントローラ４１０及びスレーブコントローラ４２０によって要請された従属性を維持する。スケジューラ４１２は、メモリ装置４３０のアクセス時にタイミング制約を守りながら、スレーブコントローラ４２０によってメモリコマンドの従属性を更に維持する。スケジューラ４１２は、マスターコントローラ４１０のトランザクションキュー４１７内のペンディング要請を再整理することによってメモリ性能を最適化する。マスターコントローラ４１０は、並列性が最大化されるようにできるだけ速やかに要請を送ることを試みる。従って、メモリシステム４００の性能が改善される。
【００５５】
スレーブコントローラ４２０におけるペンディングコマンドは、スレーブコントローラ４２０が性能を最適化するためにコマンドをできるだけ速やかに発行できる方法で再整理される。要請された従属性が維持され（例えば、リードライトシークェンス）、コマンド従属性が維持され（例えば、ＲＡＳ  ＣＡＳシークェンス）、可用資源が（バンクがビジー状態ではない）ある限り、スケジューラ４１２はインカミング要請に関連するコマンドの発行を維持する。一例として、スケジューラ４１２は、バンク１、１、１、及び２にアクセスするためのコマンドのシークェンスを受信する。スケジューラ４１２は、バンクシークェンスが１、２、１、及び１になるようにコマンドを再整理する。即ち、スケジューラ４１２は、バンク２にアクセスするコマンドに対して、以前の全てのコマンドを終了するために待機する必要は無い。要請及びコマンドの従属性が充足される限り資源は可用され、スケジューラ４１２は、インカミング要請を再スケジューリングし、再スケジューリングされた要請を性能の最適化のためにできる限り速やかに発行する。
【００５６】
一実施形態において、メモリシステムは、マスターコントローラ、ホストコンピュータに対するインターフェイス、及びスレーブコントローラに連結されたリンクバスを備える。マスターコントローラは、アドレスマッピングデコーダ、トランザクションキュー、及びスケジューラを含む。アドレスマッピングデコーダは、スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングする。マスターコントローラのスケジューラは、メモリ装置のアドレスマッピング情報を利用してトランザクションキュー内のホストコンピュータから受信されたメモリトランザクション要請を再整理する。メモリシステムはマスターコントローラのトランザクションキュー内のペンディングメモリトランザクション要請に基づいて拡張オープンページポリシーを用いる。
【００５７】
アドレスマッピング情報は、チャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含む。
【００５８】
マスターコントローラは、フラグ構成器を更に含み、リンクバスを通じてフラグ構成器によって構成された複数のフラグをスレーブコントローラに送信する。
【００５９】
複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含む。
【００６０】
フラグ構成器は、ホストコンピュータから受信されたインカミングメモリトランザクション要求がトランザクションキュー内のペンディングメモリトランザクション要請（ｒｅｑｕｅｓｔ）のチャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含む場合、メモリ装置の活性化されたページがオープンされるようにするために要求プリチャージフラグを設定する。
【００６１】
一実施形態において、メモリモジュールは、デコーダ、スケジューラ、コマンドキュー、及びリードリターンキューを含むスレーブコントローラを備え、またメモリ装置を備える。デコーダは、メモリトランザクション要請を受信し、メモリトランザクション要請に基づいてメモリコマンドを生成し、コマンドキュー内にメモリコマンドを配置する。更に、デコーダは、複数のフラグを受信し、複数のフラグに基づいてコマンドキュー内のメモリコマンドを再整理する。
【００６２】
スレーブコントローラは、複数のフラグに基づいてコマンドキュー内のメモリコマンドを変更して再整理し、変更して再整理されたメモリコマンドに基づいてメモリ装置のリフレッシュ動作を処理するリフレッシュハンドラーを更に含む。
【００６３】
スケジューラは、コマンドキュー内のメモリコマンドに基づいてメモリコマンド及びメモリコマンドに関連するアドレスをメモリ装置に送信する。
【００６４】
メモリモジュールは、パケタイザ及びリードリターンキューを更に含む。メモリ装置から受信されたデータは、リードリターンキュー内に配置され、パケタイザは、データを含むパケットを生成し、リンクバスを通じてパケットをマスターコントローラに送信する。
【００６５】
スレーブコントローラは、メモリコマンド及びメモリコマンドに関連するアドレスを、メモリコマンドがコマンドキューに配置された順にメモリ装置に送信する第２スケジューラを更に含む。
【００６６】
一実施形態において、メモリシステムにおけるマスターコントローラの動作方法は、リンクバスを通じてスレーブコントローラからメモリ装置のアドレスマッピング情報を受信するステップと、ホストコンピュータからメモリトランザクション要請を受信するステップと、トランザクションキュー内にメモリトランザクション要請を配置するステップと、メモリ装置のアドレスマッピング情報を利用してトランザクションキュー内のメモリトランザクション要請を再整理するステップと、を有する。
【００６７】
上記方法において、アドレスマッピング情報は、チャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含む。
【００６８】
上記方法は、複数のフラグを構成し、リンクバスを通じて複数のフラグをスレーブコントローラに送信するステップを更に含む。
【００６９】
上記方法において、複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含む。
【００７０】
上記方法は、ホストコンピュータから受信されたインカミングメモリトランザクション要求がトランザクションキュー内のペンディングメモリトランザクション要請のチャンネルＩＤ、ランクＩＤ、バンクＩＤ、及び行ＩＤを含む場合、メモリ装置の活性化されたページがオープンされるようにするために要求プリチャージフラグを設定するステップを更に含む。
【００７１】
一実施形態において、メモリシステムにおけるスレーブコントローラの動作方法は、リンクバスを通じてメモリ装置のアドレスマッピング情報をマスターコントローラに送信するステップと、メモリトランザクション要請を受信するステップと、メモリトランザクション要請をデコーディングし、デコーディングされたメモリトランザクション要請に基づいてメモリコマンドを生成するステップと、コマンドキュー内にメモリコマンドを配置するステップと、複数のフラグを受信するステップと、複数のフラグに基づいてコマンドキュー内のメモリコマンドを再整理するステップと、を有する。
【００７２】
上記方法は、複数のフラグに基づいてコマンドキュー内のメモリコマンドを変更して再整理し、変更して再整理されたメモリコマンドに基づいてメモリ装置のリフレッシュ動作を処理するステップを更に含む。
【００７３】
上記方法は、コマンドキュー内のメモリコマンドに基づいてメモリコマンドとメモリコマンドに関連するアドレスをメモリ装置に送信するステップを更に含む。
【００７４】
上記方法は、メモリ装置から受信されたデータをリードリターンキュー内に配置し、データを含むパケットを生成し、リンクバスを通じてパケットをマスターコントローラに送信するステップを更に含む。
【００７５】
上記方法は、メモリコマンド及びメモリコマンドに関連するアドレスを、メモリコマンドがコマンドキューに配置された順にメモリ装置に送信するステップを更に含む。
【００７６】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００７７】
１００、４００    トランザクション基盤メモリシステム
１１０、４１０    マスターコントローラ
１１１、４１１    エンコーダ
１１２、１２２、４１２、４２２    スケジューラ
１１３、１２１、４１３、４２１    デコーダ
１１５、４１７    トランザクションキュー
１１６、１２６、４１６、４２６    リードリターンキュー
１２０、４２０    スレーブコントローラ
１２３、４２３    パケタイザ
１２５、４２５    コマンドキュー
１３０、４３０    メモリ装置（ＤＲＡＭ）
２０１、２５１    マスターバッファ
２０２、２５２    スレーブバッファ
４１４    アドレスマッピングデコーダ
４１５    フラグ構成器
４２４    リフレッシュハンドラー
【図１】
0006796430.tif 000006
【図２Ａ】
0006796430.tif 000007
【図２Ｂ】
0006796430.tif 000008
【図３Ａ】
0006796430.tif 000009
【図３Ｂ】
0006796430.tif 000010
【図４】
0006796430.tif 000011