"複数のポートを有するメモリコントローラであって、前記各ポートはメモリオペレーションを1以上のソースから受信し、及び前記各ポートは特定タイプのメモリオペレーショントラフィックに対して専用に使用され、前記メモリオペレーションにとって関連するサービスの質QoSパラメータに応答して、前記メモリオペレーショントラフィックを、前記複数のポートから複数のメモリチャンネルへスイッチさせるエージェントインタフェースユニットを含む、前記メモリコントローラ。前記QoSパラメータの定義は各タイプのトラフィックで異なり、前記エージェントインタフェースユニットは、前記QoSパラメータを前記異なる定義と比較し、前記メモリオペレーショントラフィックをスイッチする、請求項1に記載のメモリコントローラ。前記ポートの少なくとも1つはリアルタイムトラフィック専用であり、当該リアルタイムトラフィックに関するQoSパラメータは、前記ソースにおける異なるレベルの緊急性を反映する、請求項2に記載のメモリコントローラ。前記ポートの他の一つはプロセッサからのトラフィック専用であり、前記プロセッサトラフィックは非リアルタイムであって、かつ、前記QoSパラメータは最大限の努力又は低待ち時間サービスの何れか一方を示唆している、請求項3に記載のメモリコントローラ。前記ポートの他の一つはグラフィックユニットからのトラフィック専用であり、前記グラフィックユニットは非リアルタイムである、請求項4に記載のメモリコントローラ。前回のメモリオペレーションを送信した第1のソースから第1のメモリオペレーションを受信することに応答して、及び、前記前回のメモリオペレーション用の前回QoSパラメータよりも高レベルのサービスを示唆する前記第1のメモリオペレーション用の第1QoSパラメータに更に応答して、前記メモリオペレーションは、前記第1QoSパラメータが示唆するサービスレベルに対する前回QoSパラメータをアップグレードする、請求項1に記載のメモリコントローラ。読出しオペレーションに関するQoSパラメータを維持し、書込みオペレーションに関するQoSパラメータを排除する複数のメモリチャンネルユニットを更に含み、前記複数のメモリチャンネルユニットは、読出しオペレーションに関するQoSパラメータよりも高いレベルのサービスを示唆する前記第1QoSパラメータに応答して、前記第1のソースから読出しオペレーションに関するQoSパラメータをアップグレードする、請求項6に記載のメモリコントローラ。前記エージェントインタフェースユニットに結合される複数のメモリチャンネルユニットを更に含み、前記複数のメモリチャンネルユニットのそれぞれは、あらかじめソートしているキューと、メモリと結合するメモリインタフェースユニットとを含み、前記エージェントインタフェースユニットは、前記メモリオペレーションのQoSパラメータに応答して、前記ポートからのメモリオペレーションを所与のメモリチャンネルに対してスケジューリングし、前記エージェントインタフェースユニットは、所与のメモリチャンネルに対するメモリオペレーションをQoSパラメータに基づき組み立てなおし、前記メモリチャンネルユニットは、メモリの効率上、どのメモリオペレーションが一緒に実行される筈であるかに従い、前記あらかじめソートしているキューにおいてメモリオペレーションをグループ化し、前記メモリチャンネルユニットは、各グループの最高レベルのQoSパラメータに基づきグループをスケジューリングし、前記メモリチャンネルユニットは、前記メモリオペレーションを、前記メモリのためのコマンドの中にあらかじめ合成し、前記メモリインタフェースユニットは、前記メモリへの効率的なアクセスに基づき前記コマンドを組み立てなおす、請求項1に記載のメモリコントローラ。前記メモリオペレーションは、読出しオペレーションと書込みオペレーションとを含み、前記あらかじめソートしているキューは、読出しオペレーション及び書込みオペレーションを別個にキューし、前記あらかじめソートしているキューは、書込みオペレーションに関するQoSパラメータを排除し、及び、書込みキューの充満度に応じて読出しオペレーションと書込みオペレーションとの間でスケジューリングするよう構成される、請求項8に記載のメモリコントローラ。複数の前記メモリオペレーションが前記メモリにおいて同一ページに対するものである、複数の前記メモリオペレーションが異なるランクのメモリに対するものである、複数の前記メモリオペレーションが前記メモリの異なるバンクに対するものである、のうち少なくとも1つが真であるならば、複数のメモリオペレーションが効率的に一緒に実行されるようにする、請求項8に記載のメモリコントローラ。各ポートがメモリオペレーションを1以上のソースから受信され及び特定タイプのメモリオペレーショントラフィックに対して専用に使用される複数のポートと、及び、前記メモリオペレーションに関連するサービスの質QoSパラメータに応答して、前記メモリオペレーショントラフィックを、前記複数のポートから複数のメモリチャンネルへスイッチさせるエージェントインタフェースユニットとを含むメモリコントローラと、1以上のリアルタイムRT周辺機器と、少なくとも1つのプロセッサと、1以上の非リアルタイムNRT周辺機器と、を含む集積回路であって、前記1以上のリアルタイムRT周辺機器は、前記複数のポートのうちのRTポートと結合し、前記少なくとも1つのプロセッサは、前記複数のポートのうちの第1のNRTポートに結合し、前記1以上のNRT周辺機器は、前記複数のポートのうちの第2のNRTポートに結合し、前記メモリコントローラは、前記複数のポートからメモリオペレーションをキャプチャーして、メモリに対する1以上のメモリチャンネル上で前記メモリオペレーションをスケジューリングし、それぞれのポートで受信したメモリオペレーション間での決定をスケジューリングすることは、前記メモリオペレーションを受信した特定のポートに部分的に影響を受ける、前記集積回路。メモリコントローラにおける複数のポートに関するメモリオペレーションを受信する処理であって、各ポートはメモリオペレーションを1以上のソースから受信するよう結合され、かつ、各ポートは特定タイプのメモリオペレーショントラフィック専用である当該処理と、前記メモリオペレーションに関係のあるサービス質QoSパラメータに応答して、前記複数のポートから、前記メモリコントローラ内の複数のメモリチャンネルユニットへ前記メモリオペレーショントラフィックを切替える処理と、を含む方法。前記メモリオペレーションを受信する処理は、i前記複数のポートのうちのリアルタイムRTポートに関する第1のメモリオペレーションであって、RTQoSレベルのセットに従って定義された第1のサービス質QoSパラメータを有する当該第1のメモリオペレーションを受信すること、ii前記複数のポートのうちの非リアルタイムNRTポートに関する第2のメモリオペレーションであって、NRTQoSレベルのセットに従って定義された第2のサービス質QoSパラメータを有する当該第2のメモリオペレーションを前記第1のメモリオペレーションと並行して受信することを含み、前記メモリオペレーショントラフィックを切替える処理は、i前記第1のQoSパラメータ及び前記第2のQoSパラメータに応じて、少なくとも一部が前記メモリにアクセスする前記第1のメモリオペレーション及び前記第2のメモリオペレーションをスケジューリングする前記メモリコントローラを含む、請求項12に記載の方法。1以上の前回メモリオペレーションを送信した第1のソースから第1のメモリオペレーションを受信する処理と、前記前回メモリオペレーション用の前回QoSパラメータよりも高いレベルのサービスを示唆する前記第1のメモリオペレーション用の第1QoSパラメータに応答して、前記メモリコントローラが前記前回QoSパラメータを前記第1QoSパラメータが示唆するサービスのレベルにアップグレードする処理と、を更に含む請求項12に記載の方法。前記複数のメモリチャンネルユニットが、読出しオペレーションに関するQoSパラメータを維持する処理と、前記複数のメモリチャンネルユニットが、書込みオペレーションに関するQoSパラメータを排除する処理と、前記読出しオペレーションに関するQoSパラメータがより高いレベルのサービスを示唆しているという前記第1QoSパラメータに応答して、前記複数のメモリチャンネルユニットが、前記第1のソースからの読出しオペレーションに関するQoSパラメータをアップグレードする処理と、を更に含む請求項14に記載の方法。前記メモリチャンネルユニットのそれぞれは、あらかじめソートしたキューと、メモリに接合したメモリインタフェースとを含み、前記メモリオペレーショントラフィックを切替える処理が、i前記メモリオペレーションのQoSパラメータに応答して、前記ポートから所与のメモリチャンネルユニットまでメモリオペレーションをスケジューリングすること、ii前記QoSパラメータに基づいて所与のメモリチャンネルユニットへのメモリオペレーションを組み立てなおすこと、を更に含む請求項14に記載の方法。メモリの効率上、どのメモリオペレーションが一緒に実行されるかに従い、前記複数のメモリチャンネルユニットが、前記あらかじめソートしているキューにおいてメモリオペレーションをグループ化する処理と、前記複数のメモリチャンネルユニットが、各グループの最高レベルのQoSパラメータに基づきグループをスケジューリングする処理と、前記複数のメモリチャンネルユニットが、前記メモリオペレーションを前記メモリのためのコマンドの中にあらかじめ合成する処理と、前記メモリインタフェースユニットが、前記メモリへの効率的なアクセスに基づき前記コマンドを組み立てなおす処理と、を更に含む請求項16に記載の方法。前記メモリオペレーションは読出しオペレーション及び書込みオペレーションを含み、前記あらかじめソートしているキューは、読出しオペレーションと書込みオペレーションを別個にキューする処理と、前記あらかじめソートしているキューは、書込みオペレーションに関するQoSパラメータを排除し、及び、書込みキューの充満度に応じて読出しオペレーションと書込みオペレーションとの間でスケジュールする処理と、を更に含む請求項17に記載の方法。複数の前記メモリオペレーションが前記メモリにおいて同一ページに対するものである、複数の前記メモリオペレーションが異なるランクのメモリに対するものである、複数の前記メモリオペレーションが前記メモリの異なるバンクに対するものである、のうち少なくとも1つが真であるならば、複数のメモリオペレーションが効率的に一緒に実行されるようにする、請求項17に記載の方法。一実施例において、メモリコントローラはメモリ要求を受け入れるために多重ポートを組み込む。各ポートは、リアルタイムRT、グラフィックス、及び非リアルタイムNRTなどの特定タイプのトラフィックに関連する。各タイプのトラフィックは異なる要求及び振る舞いを有する。異なるポートを提供することによって、メモリコントローラは異なるタイプの要求を並行して露呈するかもしれないし、トラフィック最小に基づくインテリジェントなスケジュール決定をすることが可能である。幾つかの実施例において、異なるポートはそれぞれの通信プロトコルを用いる。例えば、中央処理装置CPUインタフェースはプロセッサのために使用され、グラフィックインタフェースはグラフィックデバイスのために使用される。或る実施例の場合、サードパーティは1以上のインタフェースを開発し、そのインタフェースを用いて通信するデバイスを売ることができる。メモリコントローラにおいて異なるポートがサポートされるので、メモリコントローラとサードパーティデバイスの両方を合体するシステムは、媒介回路がサードパーティデバイスとメモリコントローラ間のプロトコルを変換することを回避する。システムは簡略化且つ廉価であるとともに、媒介回路によって加えられるであろう待ち時間を避けるものとなる。或る実施例において、サービスの質QoSのパラメータは、メモリコントローラに対するメモリオペレーションにより転送される。メモリコントローラが関連QoSレベルを用いて、ポートからメモリチャンネルへのメモリ要求をスケジューリングする。各トラフィックタイプは各QoSレベル詳細を有し、そしてメモリコントローラは、スケジューリングに関する各QoSタイプ間のアービター仲裁を行なうように構成される。さらに、バンド幅共有コントローラはこのスケジューリングに影響を与える。後述する詳細な説明は添付の図面を引用する。図面の簡単な説明は以下のとおりである。本発明は様々な修正及び代替態様を受け入れる余地がある一方で、それらの特定の実施例は図面で例示する方法によって示され、詳細が記述されるであろう。しかしながら、図面及び詳細な説明は、ここでは本願発明を開示された特別な態様に限定する意図はなく、これとは反対に、あらゆる修正、均等、及び代替が添付の図面により定められる本願の精神及び範囲内に収まるようにカバーされることを理解されたい。ここで用いている見出しは記載を組織化する目的であり、記載の範囲を制限するために用いている意味ではない。本願全体を通して用いられているできるは、義務の意味すなわち、しなければならないというよりは、許可の意味すなわち、可能性を持つ意味である。同様に、含むの語は、含むの意味であり、これに制限されることではないことを理解されたい。様々な装置、回路、又は他の構成要素が、1以上のタスクを実行するよう構成されるものとして記載され得る。そのような意味で、構成されるは、オペレーション中のタスクを実行する回路をもつ一般的意味の構成である広い規定である。その結果、装置/回路/構成要素は、現時点では存在しないときでさえ当該タスクを実行するよう構成することができる。一般的に、構成されるに対応する構成を形成する回路はハードウェア回路を含む。同様に、様々な装置/回路/構成要素は、記載の簡便さのためにタスクを実行するものとして記載されている。このような記載は構成されるを含むものとして解釈されるべきである。1以上のタスクを実行するよう構成された装置/回路/構成要素を規定することは、装置/回路/構成要素の解釈である合衆国法典35編第112条第6パラグラフを行使しないよう明確に意図されている。図1を参照すると、システム5の一実施例のブロック図が示されている。図1の実施例において、システム5は外部メモリ12A-12Bに接合された集積回路IC10を含む。例示の実施例の場合、集積回路10は中央処理装置CPUブロック14を含み、CPUブロック14は1以上のプロセッサ16とレベル2L2キャッシュ18を含む。別の実施例はL2キャッシュ18を含まないか、付加的なレベルのキャッシュを含むの少なくとも何れかである。さらに、2以上のプロセッサ16を含む実施例、及び1つだけのプロセッサ16を含む実施例が検討される。集積回路10は更に1以上の非リアルタイムNRT周辺機器20のセットと、1以上のリアルタイムRT周辺機器22のセットを含む。例示の実施例の場合、RT周辺機器はイメージプロセッサ24、1以上のディスプレイパイプ26、及びポートアービター28を含む。他の実施例はイメージプロセッサ24、ディスプレイパイプ26、及び/又は必要であれば任意の追加のリアルタイム周辺機器を含む。システム5内の1以上のカメラからイメージデータを受信するためにイメージプロセッサ24と接合する。同様に、ディスプレイパイプ26は、システム内の1以上のディスプレイを制御する1以上のディスプレイコントローラ不図示と接合する。例示の実施例の場合、CPUブロック14は、ブリッジ/ダイレクトメモリアクセスDMAコントローラ30と接合し、これは1以上の周辺デバイス32及び/又は1以上の周辺インタフェースコントローラ34に接合する。様々な実施例において、周辺デバイス32及び周辺インタフェースコントローラ34の数は、0から任意の所望の数まで変化する。図1に示したシステム5はG038A及びG138Bなどの1以上のグラフィックコントローラを含むグラフィックユニットを更に含む。グラフィックユニット当りのグラフィックコントローラの数、及びグラフィックユニットの数は、他の実施例では変わることがある。図1に示すように、システム5は1以上のメモリ物理インタフェース回路PHY42A-42Bに接合するメモリコントローラ40を含む。メモリ物理インタフェース回路PHY42A-42Bは、メモリ12A-12Bと集積回路10のピン上で通信するよう構成されている。また、メモリコントローラ40は、一組のポート44A-44A-44Eを含む。ポート44A-44Bのそれぞれは、第1のタイプのインタフェースIface1経由でグラフィックコントローラ38A-38Bのそれぞれと接合する。CPUブロック14は、第2のタイプのインタフェースIface2経由でポート44Cと接合する。NRT非リアルタイム周辺機器20及びRTリアルタイム周辺機器22は、ポート44D-44Eと第2のタイプのインタフェース経由でそれぞれ接合する。メモリコントローラ40に含まれるポート数は、メモリコントローラの数であるので、他の実施例において変化し得る。メモリPHY42A-42Bの数及び対応するメモリ12A-12Bは、他の実施例においては1又は2以上である。一実施例において、各ポート44A-44Eは、特定のタイプのトラフィックと関連する。例えば、トラフィックタイプはRTトラフィック、NRTトラフィック、及びグラフィックトラフィックを含む。別の実施例では、上述したトラフィックタイプのサブセットに加えて又は代わりに他のトラフィックを含む。トラフィックの各タイプは別個に特徴付けられ例えば、要求及び振る舞いという面で、そしてメモリコントローラがトラフィックタイプを別個に取り扱ってより高いパフォーマンスをこの特徴に基づき提供し得る。例えば、RTトラフィックは、特定の時間量内での各メモリオペレーションサービスを要求する。オペレーションの待ち時間が特定の時間量を超える場合、RT周辺機器においてエラーのあるオペレーションが生じ得る。例えば、イメージプロセッサ26内のイメージデータが失われたり、ディスプレイパイプ26を連結したディスプレイ上の表示イメージが可視上歪められてしまったりする。RTトラフィックは、例えば、等時間間隔で生じるものとして特徴付けられる。一方、グラフィックトラフィックは、比較的高いバンド幅であり、待ち時間に敏感ではない。プロセッサ16などからのNRTトラフィックは、パフォーマンスの理由からもっと待ち時間に敏感であるが、高い待ち時間を耐え抜いている。つまり、NRTトラフィックは、NRTトラフィックを生成するデバイスにおいてエラーのあるオペレーションを生じさせることなく任意の待ち時間でサービスされるのが通常である。同様に、少ない待ち時間で敏感ではあるが、高いバンド幅のグラフィックトラフィックは任意の待ち時間でサービスされるのが一般的である。他のNRTトラフィックは、音声トラフィックを含み、音声トラフィックは比較的低いバンド幅であって、一般的には合理的な待ち時間でサービスされる。また、殆どの周辺機器トラフィックはNRTである例えば、磁気、光又は固体状態の記憶媒体などのストレージデバイスに対するトラフィックである。異なるトラフィックタイプに関連するポート44A-44Eを提供することによって、メモリコントローラ40は異なるトラフィックタイプに並行して露呈される。その結果、メモリコントローラ40は、他のよりも先だってどのメモリオペレーションがトラフィックタイプに基づきサービスされるかについての良好な決定をすることができる。幾つかの実施例において、RT又はNRTトラフィックの一方に排他的に各ポートを占有することができる。他の実施例では、そのポートは特別なトラフィックタイプに関連するが、他のトラフィックタイプはポートにサポートされる。一実施例において、グラフィックトラフィックはNRTトラフィックとみなされるが、グラフィックトラフィックに対する可視化を他のNRTトラフィックから離すことは、他のNRTソース及びRTソース間でバランスするバンド幅のために有益である。同様に、プロセッサトラフィックを他のNRTソースから離すことは、バンド幅バランスにおいて有益である。例示の実施例の場合、RTポート44EはRTトラフィックに関連し、そして残りのポート44A-44DはNRTトラフィックに関連する。一般的に、ポートは、1以上のソースと通信するメモリコントローラ40上の通信ポイントである。或るケースにおいては、ポートはソース専用となる例えば、ポート44A-44Bは、グラフィックコントローラ38A-38Bそれぞれに専用となる。他のケースでは、多数のソース間でポートが共有される例えば、プロセッサ16はCPUポート44Cを共有し、NRT周辺機器20はNRTポート44Dを共有し、ディスプレイパイプ26及びイメージプロセッサ24などのRT周辺機器はRTポート44Eを共有する。1以上のソースと通信する単一インタフェースにポートを連結する。その結果、ソースがインタフェースを共有するとき、インタフェースのソース側にアービターがあり、ソース間で選択する。例えば、L2キャッシュ18はメモリコントローラ40に対するCPUポート44Cのためのアービターとして機能する。類似のポートアービター不図示は、NRTポート44Dのためのアービターである。ポート上の単一ソース又はポート上のソースの組み合わせは、エージェントと呼ばれる。各ポート44A-44Bは、その各エージェントと通信するためにインタフェースと接合されている。インタフェースは、任意のタイプの通信媒体例えば、バス、ポイントツーポイント相互接続などであり、そして任意のプロトコルを実行する。幾つかの実施例において、ポート44A-44Bすべては、同一のインタフェース及びプロトコルをインプリメント実装することができる。他の実施例において、異なるポートがそれぞれのインタフェース及び/又はプロトコルをインプリメントする。例えば、図1に示す実施例は、あるタイプのインタフェース/プロトコルを用いたグラフィックコントローラ38A-38B及びCPUブロック14と、そして別のタイプのインタフェース/プロトコルを用いたNRT周辺機器20及びRT周辺機器22とを含む。インタフェースは信号定義及びインタフェースの電気特性を参照し、プロトコルはインタフェース上の通信の論理的な定義例えば、必要に応じて、コマンド、命令ルール、コヒーレンスサポートなどである。様々なポート44A-44Bで1以上のインタフェースをサポートすることは、ソース/エージェントによってサポートされた1つのインタフェース及びメモリコントローラ40によってサポートされたインタフェースから変換される必要を削除する。それは幾つかの実施例においてパフォーマンスを改善することができる。さらに、集積回路10の幾つかの実施例は、知的財産IPとして産業界で呼ばれているパッケージされたユニットとしてサードパーティから購入される。IPはハードこの場合は、それは配置される回路のネットリストとして特定され、1つのブロックとしてIC上で配置される、又はソフトこの場合は、それは、集積回路10に包含される他のブロックと共に合成され得る統合ブロックとして特定されるである。ソフトとハードのIP両方が特定のインタフェース及びプロトコルを含み、それは一般的には集積回路10の設計者によって変更されることができないものである少なくともIPを所有するサードパーティへの料金の支払いなくしてはできない。したがって、複数のインタフェース/プロトコルをサポートすることは、サードパーティIPの包含を容易にすることを許可するものである。一実施例において、各ソースは、当該ソースによって送信される各メモリオペレーションに対するサービスの質QoSパラメータを割り当てる。QoSパラメータはメモリオペレーションに関する要求されたレベルのサービスを識別する。高いレベルのサービスを要求するQoSパラメータ値によるメモリオペレーションは、低いレベルのサービスを要求するメモリオペレーションを超える好みを与える。例えば、図1のポート44A-44Bに対するインタフェースのそれぞれは、コマンドCmd、フロー識別子FID、及びQosパラメータQosを含んでいることが示されている。コマンドはメモリオペレーション例えば、読み出し又は書込みを識別する。読み出しコマンド/メモリオペレーションはメモリ12A-12Bからメモリへのデータ転送を生じさせるが、これに対して書込みコマンド/メモリオペレーションはソースからメモリ12A-12Bへのデータ転送を生じさせる。また、コマンドはメモリコントローラ40をプログラムするコマンドを含む。例えば、どのアドレス範囲がどのメモリチャンネル、バンド幅共有パラメータなどにマッピングされるのか、すべてがメモリコントローラ40内でプログラム可能なのかである。FIDはメモリオペレーションのフローの一部としてメモリオペレーションを識別する。メモリオペレーションのフローは一般的に関連するが、異なるフローからのメモリオペレーションは、同一ソースからであっても、関連しない。FIDの部分例えば、ソースフィールドはソースを識別して、FIDのリマインダーはフロー例えば、フローフィールドを識別する。その結果、FIDはトランザクションIDに類似し、或るソースはFIDとしてのトランザクションIDを単純に送信する。このようなケースの場合、トランザクションIDのソースフィールドはFIDのソースフィールドであり、トランザクションIDの同一ソースからのトランザクション間でトランザクションを識別するシーケンスナンバーは、FIDのフローフィールドである。しかしながら、フローとしてトランザクションをグループ化するソースは、FIDをそれぞれに使用することができる。或いはまた、フローはソースフィールドに相互に関係する例えば、同一ソースからのオペレーションは同一フローであり、そして異なるソースからのオペレーションは異なるフローの一部である。フローのトランザクションを識別する能力は後述する様々な方法で用いられている例えば、QoSアップグレーディング、再順序付けなど。したがって、所与のソースはQoSパラメータを使用するように構成されていて、どのメモリオペレーションがそのソースにとってより重要であるか及び同一ソースからの他のメモリオペレーションの前にサービスされるべきであるかを識別する。特に、ソースからのアドレス送信に関する順序づけられていないデータ送信をサポートするソースに関して適用する。さらにQoSパラメータは、同一のポート上及び/又は異なるポート上の異なるソースよりも高いレベルのサービスを要求するソースを許可する。或る実施例において、異なるトラフィックタイプがQoSパラメータの異なる定義を有する。つまり、異なるタイプが異なるセットのQoSパラメータを有している。所与のQoSパラメータ値の意味は、導き出されるQoSパラメータのセットに影響される。例えば、RTQoSパラメータのセットが定義され、NRTQoSパラメータのセットが定義される。したがって、RTQoSパラメータはRTQoSパラメータセット内の意味で割り当てられ、NRTQoSパラメータはNRTQoSパラメータセット内の意味で割り当てられる。他の実施例が全ての部分又はあらゆるトラフィックタイプ間の同一QoSパラメータセットをインプリメントする。メモリコントローラ40は各ポート44A-44Eで受信されたQoSパラメータを処理するよう構成されており、そして関連QoSパラメータを使用して、そのポートからの他のメモリオペレーションに関連したポートと、他のポートで受信した他のメモリオペレーションに関連したポートとで受信した複数のモリオペレーションをスケジューリングする。詳しくいうと、メモリコントローラ40は、QoSパラメータ例えば、RTQoSパラメータ及びNRTQoSパラメータの異なるセットから導き出されるQoSパラメータを比較するよう構成され、これらのQoSパラメータに基づきスケジューリング決定をするよう構成されている。よって、QoSパラメータは、メモリオペレーションにより送信される値であり、要求されるQoSレベルを識別するためにメモリコントローラで使用される。QoSレベルは他のレベルに関係し、どのメモリオペレーションが低いQoSレベルを有する他のものよりも前に選択されることが好ましいかを特定する。したがって、他の要因によってプライオリティをバランスし得るのだけれども、異なるセットに定義されたQoSレベルを考慮するために、メモリコントローラによって解釈された後で、QoSレベルはプライオリティのように機能する。幾つかの実施例の場合、メモリコントローラ40はペンディングメモリオペレーションのQoSレベルをアップグレードするよう構成される。様々なアップグレードメカニズムがサポートされている。例えば、メモリコントローラ40は、高次のQoSレベルを特定するQoSパラメータを有する同じフローから別のメモリオペレーションを受信することに応じて、フローのペンディングメモリオペレーションに関するQoSレベルをアップグレードするよう構成されている。このQoSアップグレードの態様は、インバンドアップグレードと呼ばれている。なぜなら、普通のメモリオペレーション伝送を用いて送信されたQoSパラメータは、同一フローにおけるメモリオペレーションに関して黙示のアップグレード要求として作用することもあるからである。メモリコントローラ40は、同じポート又はソースであるが、新たに受信したメモリオペレーションが高次のQoSレベルを特定するので、同じフローではないものからのペンディングメモリオペレーションをプッシュするよう構成されている。別の例として、メモリコントローラ40は、1以上のエージェントからサイドバンドインタフェースに接合されているよう構成され、サイドバンドインタフェース上のアップグレード要求を受信することに応じたQoSレベルをアップグレードする。別の例においては、メモリコントローラ40は、ペンディングメモリオペレーションの相対年次をトラックするよう構成される。メモリコントローラ40は、或る年次で、経年メモリオペレーションのQoSレベルをアップグレードするよう構成される。アップグレードが生じる年次は、経年メモリオペレーションの最新QoSパラメータに依存する。メモリコントローラ40は、ポートで受信した各メモリオペレーションがアドレスするメモリチャンネルを決定するように、そしてメモリオペレーションを対応チャンネルのメモリ12A-12Bに送信するよう構成される。チャンネル数及びチャンネルへのアドレスマッピングは、様々な実施例で変化するとともに、メモリコントローラでプログラム可能である。メモリコントローラは、同じチャンネルにマップされたメモリオペレーションのQoSパラメータを用いて、チャンネル内に送信されたメモリオペレーションの順序を決定する。つまり、メモリコントローラはポートで受信した本来の順序からメモリオペレーションを再順序づけする。さらに、チャンネル内の処理中、メモリオペレーションは1以上のポイントで再び順序づけされる。再順序づけの各レベルで、QoSパラメータはメモリオペレーションパラメータに配置された強調の程度は減少し、そしてメモリバンド幅の効率性に影響を及ぼす要因が増加する。メモリオペレーションがメモリチャンネルパイプラインの終わりに行き着くと、そのオペレーションはQoSレベル及びメモリバンド幅効率性の組み合わせによって順序づけられる。高いパフォーマンスが幾つかの実施例で実現される。プロセッサ16は、どんな命令セットアーキテクチャもインプリメントし、その命令セットアーキテクチャに定義されている命令を実行演算する。プロセッサ16はスケーラー、スーパースケーラ-、パイプライン、スーパーパイプライン、順序外、順序どおり、推論、非推論等又はそれらの組み合わせを含む任意のマイクロアーキテクチャを用いる。プロセッサ16は、回路を含み、そしてマイクロコーディングテクニックを選択的にインプリメントする。プロセッサ16は1以上のレベル1キャッシュを含み、そしてその結果、キャッシュ18はL2キャッシュである。他の実施例では、プロセッサ16内のマルチキャッシュレベルを含む。キャッシュ18は階層的に次のレベルに下降する。キャッシュ18は任意のサイズ及びコンフィグレーションセット関連、ダイレクトマッピングなどを適用する。グラフィックコントロール38A-38Bは、グラフィック処理回路である。一般的に、グラフィックコントロール38A-38Bはフレームバッファに表示されるようオブジェクトをレンダーする。グラフィックコントロール38A-38Bは、一部又は全てのグラフィックオペレーションを実行するグラフィックソフトウェア、又は或るグラフィックオペレーションのハードウェア加速の少なくともいずれかを演算するグラフィックプロセッサを含む。ハードウェア加速の量及びソフトウェアインプリメンテーションは、各実施例で変化する。NRT周辺機器20は、非リアルタイム周辺機器を含み、そのパフォーマンス及び/又はバンド幅の理由から、メモリ12A-12Bへの独立したアクセスを提供する。つまり、NRT周辺機器20によるアクセスは、CPUブロック14とは独立し、CPUブロックメモリオペレーションとは並行して進む。周辺機器34などの他の周辺機器及び/又は周辺インタフェースコントロール34によって制御された周辺インタフェースと接合する周辺機器も非リアルタイム周辺機器であるが、独立したメモリアクセスを要求していない。NRT周辺機器20の様々な実施例は、ビデオエンコーダ及びデコーダ、スケーラーローテイター回路、画像の圧縮復元回路などを含む。上述したように、RT周辺機器22はイメージプロセッサ24及びディスプレイパイプ26を含む。ディスプレイパイプ26は1以上のフレームをフェッチし、フレームをブレンドし、ディスプレイイメージを形成する回路を含む。ディスプレイパイプ26は1以上のビデオパイプラインを更に含む。ディスプレイパイプ26の結果は、ディスプレイスクリーン上のディスプレイスクリーンに表示されるべきピクセルストリームである。ディスプレイスクリーン上のディスプレイに関するディスプレイコントローラにピクセル値を送信する。イメージプロセッサ26はカメラデータを受信し、メモリに記憶されるイメージにデータを処理する。ブリッジDMAコントローラ30は周辺機器32及びメモリ空間に対する周辺インタフェースコントローラ34にブリッジする回路を含む。例示の実施例の場合、ブリッジDMAコントローラ30は、ブロック14を介した、周辺インタフェースコントローラからCPUメモリコントローラ40へのメモリオペレーションをブリッジする。また、CPUブロック14は、ブリッジされたメモリオペレーション群、及びプロセッサ16L2キャッシュ18からのメモリオペレーション群間のコヒーレンスを保持する。L2キャッシュ18は、CPUインタフェース上で送信されるプロセッサ16からCPUポート44Cまでのメモリオペレーションによりブリッジされたメモリオペレーションを仲介する。また、ブリッジDMAコントローラ30は、周辺機器32及び周辺インタフェースコントローラ34のためにDMAオペレーションを提供し、メモリから及びメモリへデータブロックを転送する。詳細にいうと、DMAコントローラは、周辺機器32及び周辺インタフェースコントローラ34のために、メモリコントローラ40を介して、メモリ12A-12Bから及びメモリ12A-12Bへの転送を実行するよう構成されている。DMAコントローラは、プロセッサ16によってプログラム化され、DMAコントローラは、オペレーションを実行する。例えば、DMAコントローラは、記述子を介してプログラム可能である。この記述子はDMA変換子例えば、送信元アドレス及び宛先アドレス、サイズなどを記述するメモリ12A-12Bに記憶されたデータ構造である。或いは又、DMAコントローラはDMAコントローラ不図示内のレジスタを介してプログラム化が可能である。周辺機器32は、所望の入力出力デバイス又は集積回路10に含まれる他のハードウェアデバイスを含む。例えば、周辺機器32は、イーサネット登録商標MACメディアアクセスコントローラ又は無線フィデリティWiFiなどの1以上のネットワークMACといったネットワーク周辺機器を含む。様々なオーディオ処理デバイスを含むオーディオユニットが周辺機器32に含まれる。1以上のデジタル信号プロセッサが周辺機器32に含まれる。周辺機器32は、タイマー、onチップシークレットメモリ、暗号エンジンやこれらの組み合わせなど他の任意の機能を含む。周辺インタフェースコントローラ34は、任意のタイプの周辺インタフェースに関する任意のコントローラを含む。例えば、周辺インタフェースコントローラは、USBコントローラ、周辺コンポーネント相互接続高速PCIeコントローラ、フラッシュメモリインタフェース、汎用入出力IOピンなどの様々なインタフェースコントローラを含む。メモリ12A-12Bは、ダイナミックランダムアクセスメモリDRAM、同期DRAMSDRAM、ダブルデータレートDDR,FDDR2,DDR3など、mDDR3などの携帯バージョンのSDRAM、LPDDR2などの低パワーバージョンのSDRAMの少なくともいずれかを含むSDRM、RAMBUSDRAMRDRAM、スタティックRAMSRAMなどの任意のタイプのメモリである。1以上のメモリデバイスがメモリモジュールを形成する回路基板上で接合される。ここで、メモリモジュールとは、単一インラインメモリモジュールSIMM、デュアルインラインメモリモジュールDIMMなどである。あるいはまた、デバイスはチップonチップ構成、パッケージonパッケージ構成、又はマルチチップモジュール構成の集積回路10によりマウントされる。メモリPHY42A-42Bは、メモリ12A-12Bに対して低レベル周辺インタフェースを扱う。例えば、メモリPHY42A-42Bは、同期DRAMメモリなどに正確なクロッキングclocking用の信号タイミングに責任を負う。一実施例において、メモリPHY42A-42Bは、集積回路10内に供給されるクロックをロックするよう構成され、そしてメモリ12により用いられるクロックを生成するよう構成される。他の実施例は、図1で示すコンポーネント及び/又は他のコンポーネントのサブセット又はスーパーセットを含むコンポーネントの組み合わせを含むことに留意されたい。所与のコンポーネントの一実例が図1に示される一方で、他の実施例は所与のコンポーネントの1以上の実例を含む。同様に、発明の詳細な説明の全体を通して、所与のコンポーネントの1以上の実例は、たとえ1つしか示されていないとしても、1つの実例を含む実施例を含み、複数の実例が示される場合にも用いられる。メモリコントローラ40の他の実施例が多重ポートをインプリメントしないことに留意されたい。しかし、それはQoSパラメータをインプリメントする。各QoSパラメータ/レベルは、NRT及びRT、並びにQoSアップグレーディングなどの異なるトラフィックタイプ又はクラスのそれぞれに存在する。次の図2を参照すると、テーブル50及び52の組が、RTQoSレベルセット及びNRTQoSレベルセットのそれぞれの定義を示している。他の実施例は追加又は代替となるレベルを含み、そして他の実施例は図示したレベルのサブセットで組み合わせた追加のレベルを含む。図2においてテーブル50及び52の隣に存在する下方を指し示す矢印によって描画されているように、テーブルはプライオリティが高くなる集合内のQosレベルを示している。つまり、リアルタイム緑RTGQosレベルは再下位のプライオリティRTQosレベルであり、リアルタイム黄RTYQosレベルは中間プライオリティRTQosレベルであり、リアルタイム赤RTRQosレベルは再上位のプライオリティRTQosレベルである。同様に、最大努力BEFQosレベルは再下位のプライオリティRTQosレベルであり、低待ち時間LLTQosレベルは再上位のプライオリティRTQosレベルである。図2において互いに隣合うRTQoSレベル及びNRTQoSレベルの例は、NRTQoSレベルに関するRTQoSレベルの相対プライオリティを示唆することを意図していない。むしろ、メモリコントローラ40は、そのような相対プライオリティを、様々なタイプ及びポートにわたってメモリコントローラ40が経験するトラフィックを示唆する他の要因に基づき決定する。RTG、RTY、及びRTRのQosレベルは、RTソースからの緊急相対レベルを反映する。つまり、エラーを含んだオペレーションの減少を回避するため、RTソースによってデータが必要とされる前の時間量として、各メモリオペレーションに割り当てられたQoSレベルは高い緊急性を示唆するために増加する。高プライオリティによるより高い緊急性をもつオペレーションを扱うことによって、メモリコントローラ40はデータをRTソースにより迅速に戻し、その結果、RTソースの正確なオペレーションを手助けする。例えば、ディスプレイパイプ26は、ディスプレイの仮想ブランク間隔で表示されるはずの次のフレームのために、メモリ12A-12Bからフレームデータを読み出すことを開始する。このフレームは実際には、仮想ブランク間隔の終了まで表示されず、ディスプレイパイプ26はこの時間期間中、RTGレベルを用いる。フレームが表示されることを開始するときすなわち、ステップコントローラがディスプレイパイプ26出力からフレームピクセルの読み出しを始めるとき、ディスプレイパイプ26は、フレームデータ読み出しオペレーションのQoSレベルを、RTYレベルのメモリに生じさせる。例えば、表示されるカレントピクセルの前に読み出されるフレームデータの量が第1の閾値より下回って減少するならば、ディスプレイパイプ26はメモリオペレーションのQoSレベルをRTRにする。BEFNRTQoSレベルは、他のフローのデータの必要性があったならば、メモリコントローラ40ができるだけ早くデータを戻す要求である。他方、LLTNRTQosレベルは、低い待ち時間データの要求である。LLTQosレベルをもつNRTメモリオペレーションは、他のメモリトランザクションのプライオリティという観点で、少なくとも幾つかのケースにおいてBEFQosレベルを持つものよりも、より接近して扱われる。他のケースでは、BEF及びLLTQoSレベルはメモリコントローラ40によって同一に扱われる。次の図3を参照すると、メモリコントローラ40の一実施例のブロック図が示されている。図3の実施例の場合、メモリコントローラ40はエージェントインタフェースユニットAIU、及び1以上のメモリチャンネルユニット56A-56Bを含む。所与の実施例に含まれる各メモリチャンネルのために1つのメモリチャンネルユニット56A-56Bがあるかもしれない。そして他の実施例は第1のチャンネル又は2チャンネル以上を含む。図3に示すように、AIU54はマルチポートインタフェースユニット58A-58Eを含む。より詳細には、メモリコントローラ40上の各ポート44A-44Eに関するポートインタフェースユニット58A-58Eがある。AIU54は、さらにメモリチャンネルインタフェースユニットMCIU60A-60Bを含む各メモリチャンネルユニット56A-56Bについて1つ。AIU54は更に1以上のバンド幅共有レジスタ62を含み、それはどのようにしてバンド幅がポート間で共有されるかを示唆するためにプログラム化される。ポートインタフェースユニット58A-58Eは、メモリオペレーションを受信し、対応のポート上でのデータ及び応答を送受信するために接合され、MCIU60A-60Bに接合されてもいる。MCIU60A-60Bは更に、バンド幅共有レジスタ62及び対応のMCU56A-56Bに連結される。図3に示すとおり、MCU56A-56Bは、プリソーティングキューPSQ64及びメモリインタフェース回路MIF66をそれぞれ含む。PSQ64は、対応のMCIU60A-60Bに、そして同じMCU56A-56B内のMIF66に接合される。各MCU56A-56B内のMIF66は対応のメモリPHY42A-42Bに接合される。AIU54は、ポート44A-44Eに関するメモリオペレーションを受信し、これらのメモリオペレーションによってアドレスされるチャンネルにそのメモリオペレーションをスイッチするよう構成される。このとき、同じMCU56A-56Bに対する別のメモリオペレーションの前に、どのメモリオペレーションがMCU56A-56Bの一つに送信されるかを特定することのファクターとして、メモリオペレーションのQoSパラメータを用いる。他のファクターにはバンド幅共有コントローラを含み、ポート間でのメモリチャンネルのバンド幅を分割する。より詳細には、各ポートインタフェースユニット58A-58Eが、対応するポート44A-44Eからメモリオペレーションを受信するように構成され、どのメモリオペレーションにメモリチャンネルが向けられているかを決定するように構成されている。ポートインタフェースユニット58A-58Eは対応するMCIU60A-60Bにそのメモリオペレーションを送信し、例示の実施例においては書込みとは別個に読出しを送信する。したがって、例えば、ポートインタフェースユニット58Aは、読出しオペレーション及び書込みオペレーションそれぞれに関するMCIU60AへのRd0接続及びWr0接続を有する。同様に、ポートインタフェースユニット58AはMCIU60Bに対するRd1接続及びWr1接続を有する。他のポートインタフェースユニット58B-58Eは、MCIU60A-60Bへの同様の接続を有する。また、ポートインタフェースユニット58A-58BからMCIU60A-60Bへの読出しデータを送信するデータインタフェースもあり、これは、図3のMCIU60Aのために点で描いたDインタフェースとして示されている。MCIU60A-60Bは、ポートインタフェースユニット58A-58Eにより提供されるメモリオペレーションをキューして、メモリオペレーションの中からオペレーションを選択して仲裁し、対応するMCU56A-56Bに送信するよう構成される。所与のメモリチャンネルでターゲットされたオペレーション間の仲裁は、他のメモリチャンネルでターゲットされたオペレーション間での仲裁とは独立している。MCIU60A-60Bはバンド幅共有レジスタ62に接合され、それはチャンネル上のメモリバンド幅が所与のチャンネル内のメモリオペレーションにどのように割り当てられるかを示すようにプログラムされている。例えば、一実施例において、MCIU60A-60Bは、高い優先度のトラフィック例えば、RTトラフィックにおけるRTR又はRTYレベルが存在しないとき、損失-重みづけラウンドロビンアルゴリズムを用いて、ポート間を選択する。RTR又はRTYトラフィックが存在するとき、ラウンドロビンメカニズムを使用してRTRRTYトラフィックをもつポート間での選択をする。損失-重みづけラウンドロビンメカニズムにおける重みは、或るポートに対して他のものよりも比較的大きなバンド幅が割り当てられるようにプログラムされるものである。グラフィック及びNRTポートよりもプロセッサトラフィックを好んで、例えば、グラフィックポートを他のポートより好んで重みを選択する。様々な実施例において任意のセットの重みが使用される。他の実施例は、他の方法でバンド幅割り当てを行う。例えば、総バンド幅のパーセンテージが用いられる。他の実施例では、選択される各ポートからかなり多くのオペレーションを制御するためにクレジットシステムが用いられる。しかしながら、一般的に、オペレーションはQoSパラメータ及びバンド幅共有要求の両方に基づき選択されるものである。MCU56A-56Bは、メモリチャンネルに送信されるキューからメモリオペレーションをスケジュールするよう構成される。MCUは読み出し及び書込みを別々にPSQ64にキューし、そして例えば、クレジットベースシステムを用いた読み出しと書込み間を仲裁するよう構成される。クレジットベースシステムにおいて、読み出しと書込みが或る数のクレジットに割り当てられる。書込みクレジット及び読み出しクレジットの数が等しくなる必要はない。スケジュールされた各メモリオペレーションはクレジットを消費する。書込みクレジット及び読み出しクレジットの両方がゼロよりも少なく減少し、且つ、スケジュールされる予定の未処理のトランザクションがあると、対応する割り当て数のクレジットによって両クレジットを増加させる。他の実施例は他のメカニズムを使用して、読み出しと書込み間を選択する。一実施例において、クレジットシステムは、書込みキューが一杯になったことを測定するとともに読み出しと書込み間で仲裁メカニズムの一部となる。つまり、書込みキューがもっと一杯になったとき、仲裁メカニズムの書込みの優先度が増加する。さらなる詳細は以下に述べる。一実施例において、PSQ64へのエントリーで、書込みオペレーションのQoSパラメータを省略する。読出しオペレーションはQoSパラメータを保持し、QoSパラメータはPSQ64からの読み出しスケジュールに影響を及ぼす。一実施例において、MCU56A-56Bは、爆発的なオペレーションクレジットを一気に消費する各オペレーションにおいてメモリオペレーションをスケジュールする。その爆発がクレジットカウントをゼロに減少させる場合、爆発は完了することが許可され、クレジットカウントを負の数にまで減少させる。クレジットカウントが後に増加するとき、負のクレジットが考慮され、その結果、後に増加するクレジットの総数が、割り当てられたクレジット量よりも少なくなることがある。スケジュール用のメモリオペレーションの爆発を生成するため、MCU56A-56Bは、メモリオペレーションを仲裁グループにグルーピングする。オペレーションがメモリインタフェース上で効率的に実行されている場合、そのときはやがて極接近して実行されるのだが、メモリオペレーションは別のメモリオペレーションとの仲裁を示すと言われたりする又は他のメモリオペレーションと密接な関係にあると言われたりする。増加したバンド幅利用という観点で効率性が測定される。例えば、SDRAMメモリは、ページアドレスとともにアクティベートされたコマンドを用いてオープンされ得るページによって特徴づけられる。ページのサイズは実施例ごとに異なり、一般的にアクティベートコマンドが送信されるやいなや、アクセスするのに使用できる多数の連続ビッドを参照する。同様に非同期DRAMメモリは行アドレスのストロボ制御信号をアサートすることによって及び行アドレスを提供することによって、オープンされるページを有する。同じページ内のデータをアクセスする2以上のメモリオペレーションは密接に関係する。なぜなら、1つだけのアクティブ/RASがメモリオペレーションのインタフェースに必要とされるからである。SDRAMメモリもまた、独立したバンク及びランクを有する。バンクは、検出されたそのページヒット内でオープン行を有するSDRAMチップ内のメモリセルの集合体である。ランクはチップ選択を通じてメモリコントローラから選択され、1以上のSDRAMチップを含む。それぞれのランク又はバンクに対するメモリオペレーションは、オペレーションとも密接に関係する。というのも、それらはコンフリクトしないし、クローズされるページ及びオープンされる新たなページを要求しないからである。メモリオペレーションは、同じ方向にデータを送信するときのみすなわち、読み出しオペレーションが他の読み出しオペレーションと密接に関係し、同様に書込みオペレーションが他の書込みオペレーションと密接に関係するときのみ、密接オペレーションとして閲覧ビューされる。同一ページ又はオープンページに対するメモリオペレーションは、ページヒットとして呼ばれ、そしてそれぞれのバンク/ランクに対するメモリオペレーションは、それぞれバンクヒット、ランクヒットと呼ばれる。MCU56A-56Bは、メモリインタフェース上のコマンドを、メモリPHY42A-42Bを介してメモリ12A-12Bにスケジュールし、スケジュールされたメモリオペレーションを実行するよう構成されている。特に、一実施例において、MCU56A-56Bは、各メモリオペレーションのコマンドをあらかじめ合成し、コマンドを待機状態にするよう構成されている。MCU56A-56Bは、メモリバンド幅の効率的な使用を提供するためにコマンドをスケジュールする。各MCU56A-56BのMIF66は、コマンドのあらかじめ合成すること、及びコマンドをスケジューリングすることを実行する。いま、図4を参照すると、ポートインタフェースユニット58Cの一実施例のブロック図が示される。各インタフェースに結合するポートインタフェース回路の実装において相違点はあるのだが、他のポートインタフェース回路58A-58B及び58D-58Eは類似する。例示の実施例において、図4に示すとおり、ポートインタフェースユニット58Cは、読出し及び書込みオペレーションそれぞれに対する読出しAR及び書込みAWインタフェースに接合されたバッファ70A-70Bを含む。バッファ70A-70Bは読出し発生ジェネレータ72及び書込み発生ジェネレータ74とそれぞれ接合する。そしてそれらは、Rd0Rd1インタフェース及びWr0Wr1インタフェースとそれぞれ接合する。読出し発生ジェネレータ72は、読出し未処理トランザクションテーブルROTT76に接合され、そして書込み発生ジェネレータ74は、書込み未処理トランザクションテーブルWOTT78に接合さる。ROTT76は、インタフェース上の読出し応答を生成する読出し応答ジェネレータ80に接合する。また、ROTTは、読出しバッファ84に接合し、読出しバッファ84は多重通信回路86を介してMCU56A-56Bのいずれかよりデータを受信し、そしてインタフェース上の読出しデータを提供する。WOTT78は、インタフェース上の書込み応答を生成する書込み応答ジェネレータ82に接合する。WOTT78は、また、書込みデータフォワードバッファ88に接合し、書込みデータフォワードバッファ88はMCU56A-56Bへデータを提供し、バッファ70Cからデータを受信するために接合され、バッファ70Cはインタフェースからの書込みデータを受信するために接合される。読出しオペレーションのため、バッファ70Aはインタフェースからのオペレーションを受信する。バッファ70Aは読出しオペレーションをキャプチャーするために提供され、読出し発生ジェネレータ72が処理するために読出しオペレーションを保持する。一実施例において、バッファ70Aは、未利用のリソースの遅延イベントでキャプチャーされる第2オペレーションが利用可能になる例えば、インタフェース上のソースにバックプレッシャー要求を伝搬するタイミングを容易化することを許可する2つのエントリースキッドバッファである。バッファ70B-70Cも同様に、2つのエントリースキッドバッファである。他の実施例は、必要に応じて、スキッドバッファに追加的エントリーを含む。読出し発生ジェネレータ72は、読出しオペレーションのアドレスをデコードして、どのメモリチャンネルが読出しオペレーションによってアドレスされるかを決定する。読出し発生ジェネレータ72は、Rd0及びRd1インタフェース経由で、読出しオペレーションを、アドレスされたメモリチャンネルに送信する。各読出しオペレーションはサイズすなわち、オペレーションのアドレスで読出しが開始するバイト数を特定する。サイズ及びアドレスの組み合わせが1以上のチャンネルからバイトを読出すことを示唆している場合、読出し発生ジェネレータ72はアドレスされたチャンネルに対する複数の読出しオペレーションを発生させる。複数の読出しオペレーションからの読出しデータはソースに戻される読出しバッファ84で加算される。読出し発生ジェネレータ72はROTT76をアップデートし、読出しの仮定をトラックするためにROTT76内にエントリーを割り当てる。読出しバッファ84でデータが受信されると、ROTT76は読出し応答ジェネレータ80に信号を送って読出し応答を発生し、データをソースに転送する。もしも読出しデータがインタフェースの順序で例えば、インタフェース上のプロトコルに従って戻されるのならば、前回の読出しが戻され、その後ROTT76が読出し応答ジェネレータ80に信号を送出してデータを転送するまで、読出しバッファ84内にデータを残してバッファ化されるようにする。ROTT76は様々なステータス信号をMCUから受信し、未処理の読出しオペレーションのステータス不図示を更新アップデートするよう構成されている。バッファ70B、書込み発生ジェネレータ74、及びWOTT78は、書込みオペレーションのために同様にオペレートする。しかしながら、データはインタフェースで送信されるよりはむしろ受信される。書込みデータは、書込みデータフォワードバッファ88で受信され、対応の書込みオペレーションの現在ロケーションへ転送される。予定よりもはやくインタフェース上での書込みを書込み応答により終了するといった書込み完了を保証するや否や、WOTT78は書込み応答の信号を送出する。図4に示す実施例が、読出し及び書込みオペレーションAR及びAWをそれぞれに運ぶインタフェースを含む一方で、他の実施例が読出し及び書込みオペレーションの両方に関する一つの伝送媒体を含むことに留意されたい。そのような実施例の場合、単一のバッファ70はオペレーションを受信し、そして読出し発生ジェネレータ72及び書込み発生ジェネレータ74は、読出し及び書込みオペレーションを区別するために、インタフェースからのコマンドをデコードする。或いはまた、読出し及び書込みオペレーションの両方を発生させ、したがってROTT74及びWOTT78を更新する1つの発生ジェネレータがあってもよい。いま、図5を参照すると、MCIU60Aの一実施例をあらわすブロック図を示されている。MCIU60Bは、各ポートからRd1及びWr1入力を受信するために結合し、MCU56Bに結合するという点を除いて、MCIU60Aと同じである。例示の実施例の場合、MCIUは図5に示すような、読出しキュー90A-90Bなどの読出しキューの集合と、書込みキュー92A-92Bなどの書込みキューの集合を含む。各ポートのための1つの読出しキューと1つの書込みキューがあってもよい。各読出しキューはポートインタフェースユニット58A-58Eの一つのRd0出力に接続すると共に、QoSアービエータ94Aに接続する。各書込みキューはポートインタフェースユニット58A-58Eの一つのWr0に接続するとともに、QoSアービエータ94Bに接続する。QoSアービエータ94A-94Bの出力は読出し及び書込み入力それぞれとしてMCU56Aに提供される。QoSアービエータ94A-94Bは、バンド幅共有レジスタ62からのデータを受信するために結合される。2つの読出しキューエントリが読出しキュー90Aに示され、他の読出しキューも同様である。読出しキュー90AはメモリオペレーションのFID、オペレーションのQoSパラメータ、プッシュビッドP、及び他のフィールドOthを含む。FID及びQoSパラメータは、メモリコントローラ40に対するインタフェース上のメモリオペレーションにより送信された同一値である。或いはまた、片方又は両方の値が便宜のために内部的にメモリコントローラ40によって記録される。プッシュビットはメモリオペレーションで高優先を強いるために用いられ、この場合第2のメモリオペレーションは、メモリオペレーションの背後で順序づけられ、そのメモリオペレーションよりも高いQoSレベルである。例えば、第2のメモリオペレーションをメモリオペレーションと同じポートで受信し、そしてポートのインタフェースはメモリオペレーションを送信するのと同じ順序でデータを返信することを要求する。高優先度を強要することによって、メモリオペレーションはより迅速に実行され、その結果、より高いQoSレベルをもつ第2のメモリオペレーションの迅速サービスを許可する。他のフィールドはメモリオペレーションに関する他の様々な情報例えば、アドレス、サイズ情報などを含む。同様に、2つの書込みキューエントリが書込みキュー92Aに示され、読出しキュー90Aと同様のフィールドを含む。必要に応じて、他のフィールドは読出しと比較して書込みのための異なる情報を記憶する。QoSアービエータ94A-94Bは、読出しキュー90A-90B、及び書込みキュー92A-92Bそれぞれの間で仲裁する。QoSアービエータは、キュー内のQoSパラメータによって示されるようなQoSレベル及びバンド幅共有レジスタからのバンド幅共有パラメータの両方を考慮する。選択された読出し及び書込みオペレーションは、必要であればMCU56Aに送信される。幾つかの実施例において、ポートインタフェースユニットからQoSアービエータ94A及び/又は94B図5において不図示までの1以上のバイパスパスがある。例えば、プロセッサに対する低い待ち時間読出しを許可するために、CPUポートインタフェースユニット58Cからの読出しはQoSアービエータ94Aへバイパスする。幾つかの実施例において、キュー90A-90B及び/又は92A-92Bにおける1以上のメモリオペレーションはQoSアービエータ94A-94Bからマスクされる。例えば、対応のデータがメモリコントローラ40に未だ到着していない書込みオペレーションは、QoSアービエータ92A-92Bからマスクされるが、それは対応のデータがメモリコントローラ40に到着した他のポートから書込みオペレーションをブロックすることを回避するためである。図6は、QoSアービエータ94A-94Bの各実施例のオペレーションを示すフローチャートである。理解を容易にするため特定の順序でブロックを示しているが、他の順序が用いられ得る。QoSアービエータ94A-94Bの組み合わせロジックにおいては、並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。QoSアービエータ94A-94Bは、図6に示すオペレーションを実行するように構成される。QoSアービエータが結合されるキューの一つにおいて少なくとも1つのメモリオペレーションがRTY又はRTRのRTQoSレベルをもつ場合、或いは、プッシュビットが少なくとも1つのメモリオペレーションのために設定される場合判断ブロック100でyes、QoSアービエータはRTY若しくはQoSレベル及び/又はセットプッシュビットをもつキューの間で仲裁するブロック102。各キューは本実施例においてポートに対応するので、QoSアービエータはRTY若しくはRTRQoSレベル及び/又はセットプッシュビットをもつポート間で効率的に仲裁をする。その結果、AIU54は、RTG、BEF、及びLLTQoSレベルを本実施例では等しいものとして扱う。本実施例の場合、AIU54は、RTR及びRTYQoSレベル、並びにセットプッシュビットオペレーションを、互いに等しく且つ他のレベルより高い優先度なものとして扱う。他の実施例は、追加的な粒度レベルを有する例えば、RTRは高い優先度として扱われるということ、すなわちRTY、RTG及びLLTがBEFよりも高い優先度として扱われるということなど。さらに、他の実施例はラウンドロビンとは異なるスキームを実装インプリメントしてもよい。他方、RTY若しくはRTRQoSレベルをもつメモリオペレーションがまったくなく、かつ、セットプッシュビットをもつメモリオペレーションがまったくない場合判定ブロック100のno、QoSアービエータはすべてのキューすべてのポート間で仲裁するブロック104。例えば、QoSアービエータはポート間で、損失-重みづけラウンドロビンスキームを実装し、その場合、この重みはバンド幅共有パラメータに基づく又はバンド幅共有パラメータが重みである。他の実施例では、すべてのポート間で他のアービエータスキームを実装する。いま,図7を参照すると、PSQ64の一実施例のブロック図が示されている。例示の実施例の場合、PSQ64はキュー化制御ユニット110、トランザクションキューのセット112、スケジューラー114、バイパス多重通信回路116を含む。待機状態制御ユニット110は、読出し及び書込みオペレーションを対応のMCIU60A又は60Bから受信するために結合し、トランザクションキュー112と結合する。トランザクションキュー112はさらにスケジューラー114と結合し、その出力はバイパス多重通信回路116と結合する。バイパス多重通信回路116は読出しオペレーションを受信するために結合し、スケジューラー114及び読出しオペレーションによってスケジューリングされたメモリオペレーション間で選択するよう構成される。例えば、トランザクションキュー112内の読出しがなく、書込みの数が閾値レベルを下回っているならば、読出しオペレーションはトランザクションキュー112をバイパスする。他の実施例はバイパスを実装せず、バイパス多重通信回路116を省略することもある。図7に示すとおり、トランザクションキュー112は、キュー118A-118Bなどの読出し密接キューaffinityqueuesのセット、及びキュー120A-120Bなどの書込み密接キューのセットを含む。読出し密接キューの数及び書込み密接キューの数は実施例ごとに異なり、読出し密接キューの数が書込み密接キューの数と等しくなる必要はない。各密接キューは、互いに親和性を提示するキュー制御ユニット110により決定した1以上のメモリオペレーションを記憶する。これにより、キュー制御ユニット110がメモリオペレーションを受信するので、キュー制御ユニット110は、読出しオペレーション用の密接キュー118A-118B、又は書込みオペレーション用の密接キュー120A-120Bに対してメモリオペレーションを比較する。メモリオペレーションが密接に関係する場合、対応の密接キューにおいて待機状態化となる。そうでない場合、メモリオペレーションは別の密接キューにおいて待機状態化となる。一実施例において、読出し密接キューは密接に関係していない読出しのために保留され、同様に、書込み密接キューは密接に関係していない書込みのために保留される。スケジューラー114は、MIF66に送信されることになるメモリオペレーションをスケジューリングするよう構成される。読出しオペレーションのために、スケジューラー114は、読出し密接キュー118A-118BにおけるQoSレベルと、各読出し密接キュー118A-118Bにおける密接メモリオペレーションの数との両方を考慮する。その詳細については後述する。しかしながら、一般的に、スケジューラー114は、高いQoSレベルと多数の密接メモリオペレーションをもつ読出しオペレーションを好む。書込みオペレーションのために、QoSレベルはPSQ64において省略されてもよい。つまり、書込みオペレーションのQoSレベルは、書込みオペレーションがトランザクションキュー112に書込まれるときにドロップされる。キュー118A及び120Aのそれぞれにおける例示のエントリで示したように、読出しオペレーションはQoSを保持するが、書込みオペレーションは保持しない。スケジューラー114は、例えば、書込みキューの一杯さ、及び読出しキューにおけるQoSレベルに基づいて、読出しオペレーションと書込みオペレーションの間でスケジューリングする。追加の詳細はさらに後述する。幾つかの実施例において、読出し密接キュー118A-118B及び書込み密接キュー120A-120Bは、例えば、分離データ構造として、又はPSQ64の論理回路を介して分けられる及び/又はプログラム上で分離される1以上のデータ構造として物理的にインスタンス化される。他の実施例においては、密接キューは仮想的である。つまり、読出しキュー及び書込みキューがあり、そして例えばタグが密接オペレーションを識別するのに用いられる。図8は、メモリオペレーションを受信することに対応した、待機状態制御ユニット110の一実施例のオペレーションを示したフローチャートである。理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。待機状態制御ユニット110の組み合わせ論理において並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。待機状態制御ユニット110は、同時に受信する読出しオペレーション及びキューオペレーションのために並行して図8に示すオペレーションを実行するように構成される。待機状態制御ユニット110は、受信したオペレーションを、対応する密接キュー118A-118B若しくは120A-120Bと比較し、受信したオペレーションが待機状態化されたオペレーションとの密接的な関係を提示するか否かを特定する判断ブロック130。密接度が検出されたことに応答して及びオペレーション用の密接キューにスペースがあるならば、待機状態制御ユニット110は、密接キュー内のオペレーションを待機状態化するブロック132。密接度の検出がなかったことに応答して、待機状態制御ユニット110は、空の密接キュー内のオペレーションを待機状態化するブロック134。一実施例において、密接さの検出は図8の爆発ビュークレジットを一気に消費するビューで示される。或るオペレーションが密接キューの他のオペレーションを有するページヒットであれば判断ブロック136のyes又は他のオペレーションをもつバンク若しくはランクミスであれば判断ブロック138及び140それぞれでyes、そのオペレーションは密接に関連する。そうでなければ判断ブロック136,138及び140でno、そのオペレーションは待機状態化されたオペレーションと密接に関連しない。判断ブロック136,138及び140によって示された検出は、各密接キューに関して並行して実行される。図9は、トランザクションキュー112における読出しオペレーションと書込みオペレーションとの間でスケジューリングするスケジューラー114のオペレーションを例示したフローチャートである。理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。スケジューラー114の組み合わせ論理において並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。スケジューラー114は、図9に示すオペレーションを実行するように構成される。図9の実施例において、書込みキューの充満度つまり、トランザクションキュー112における書込みオペレーションの数として、高い、中間、低いという3つの閾値がある。高レベルは、中間レベルが示すよりも多い書込みオペレーションがトランザクションキュー112にあることを示し、そして中間レベルは、低レベルが示すよりも多い書込みオペレーションがトランザクションキュー112にあることを示す。様々な実施例において、閾値は固定化されたりプログラム化されたりする。スケジューラー114は書込みをブロッキングすることを検出し判断ブロックのyes、ブロッキング書込みをスケジューリングするブロック152。ブロッキング書込みは、高いQoSレベルをもつメモリオペレーションが書込みオペレーションの後に順序づけられるということを示唆するプッシュビットセットを有する書込みオペレーションである。また、ブロッキング書込みオペレーションは同じアドレスに対する読出しオペレーションをブロッキングしている書込みオペレーションである又は、書込みオペレーションは、読出しオペレーションにより読出された少なくとも1つのバイトを更新する。ブロッキング書込みが無い場合、読出しオペレーションに対する書込みオペレーションのスケジューリングはクレジットシステムに基づくものとなる。すなわち、読出しオペレーション及び書込みオペレーションのそれぞれは、或る数のクレジットが割り当てられる。スケジューリングされたメモリオペレーションは、対応するクレジットカウントから1つのクレジットを消費する。例示の実施例の場合、読出しクレジットが使い尽くされ、読出しオペレーションがスケジューリングされると、読出し及び書込み両方のクレジットが、初期クレジット値を現在のカウントに加算することによってリロードされる。密接オペレーションは、読出し又は書込みオペレーションがスケジュールされるとき急にスケジューリングされるので、クレジットカウントはゼロより下に減少する。つまり、スケジューラー114は、オペレーションのクレジットカウントがゼロに減少する場合には、密接オペレーションの爆発を中断させない。簡潔さのため、図9に関する後述は、読出しキューにおける読出しオペレーション及び書込みキューにおける書込みオペレーションを参照する。読出しキューは読出し密接キュー118A-118Bの組み合わせを含み、書込みキューは書込み密接キュー120A-120Bの組み合わせを含む。書込みキューが高い閾値に到達して、利用可能な少なくとも1つの書込みクレジットがあることを検出したとき判断ブロック154のyesの対応として、スケジューラー114は書込みキューからスケジューリングするブロック156。書込みキューが高い閾値に到達せず、利用可能な書込みクレジットがないとき判断ブロック154のno、スケジューラー114は読出しキューからスケジューリングするブロック160。読出しキューに読出しオペレーションがない又は利用可能な読出しクレジットがない判断ブロック158のnoが、書込みキューが中間の閾値に到達し且つ利用可能な書込みクレジットがあることをスケジューラー114が特定した場合判断ブロック162のyes、スケジューラーは書込みキューからスケジューリングするブロック156。書込みキューが中間の閾値に到達せず又は利用可能な書込みクレジットがないが判断ブロック162のno、少なくとも1つの読出しオペレーションが読出しキューにあって、かつ、利用可能な読出しクレジットがないことをスケジューラー114が特定した場合判断ブロック164のyes、スケジューラー114は読出しキューからスケジューリングするブロック160。上述したように、スケジューラー114はこのインスタンスにおいて読出しクレジット及び書込みクレジットをリロードする。読出しキューに読出しオペレーションがなく判断ブロック164のno、かつ、書込みキューが低い閾値に到達したことをスケジューラー114が特定した場合判断ブロック166のyes、スケジューラーは書込みキューからスケジューリングするブロック156。図9のフローチャートは、書込みキューが低い閾値に到達するまで、書込みキューからスケジューリングしないことを示す一方で、スケジューラー114が一時期働いていなかったならば、幾つかの実施例は書込みキューからスケジューリングする。この一時期は固定的であったり、又はプログラム可能であったりする。図10は、書込みキューからのスケジューリングを実行するためのスケジューラー114のオペレーションを示すブロック図であるブロック156。図10に示すとおり、スケジューラー114は最大数の書込みオペレーションをもつ書込み密接キュー120A-120Bをスケジューリングするブロック168。図11は、スケジューラー114が読出しキューからの読出しオペレーションをスケジューリングしている様々な状態を示すテーブルであるブロック160。状態は優先度の順序を上げる態様で示している。よって、図11のテーブルにおける1以上のエントリーが読出しキューのコンテンツに対応する場合、最高の優先度をもつエントリーはスケジューラー114の状態となる。スケジューラー114は、対応の状態に関し、図11のスケジューリング欄に示されるようなオペレーションをスケジューリングする。図11のテーブルは読出しキューにおける読出し数を参照し、それはグリーン又はイエロー閾値の上か下である。グリーン又はイエロー閾値はRTG及びRTYQoSレベルとは異なっており、上述した書込みキューの閾値と類似する。グリーン又はイエロー閾値は固定的であるかプログラム可能である。さらに、密接グループはスケジューリングされたものとして参照される。密接グループは読出し密接キュー118A-118Bの一つにおけるオペレーションのグループである。読出しキューの読出し数がイエロー閾値を下回るかつ、グリーン状態が入力されなかったのでイエロー閾値を上回らなかった場合、そしてRTY若しくはRTR読出しがキューにまったく無い場合、スケジューラー読出し状態はグリーンである。グリーン状態において、スケジューラー114は、必要であれば、LLT読出しオペレーションをスケジューリングする。LLT読出しオペレーションをもつ読出し密接キュー内のオペレーションも必要であればスケジューリングされる。LLT読出しオペレーションがまったく無い場合、最も古い読出しオペレーションをもつ密接グループがスケジューリングされる。読出しキューの読出し数がグリーン閾値を上回り又は、LLTイエロー状態が入力されなかったのでグリーン閾値を下回らなかった場合、そしてRTR若しくはRTY読出しが読出しキューにまったく無い場合、スケジューラー読出し状態はLLTイエローである。LLTイエロー状態において、スケジューラー114は、必要であれば、LLT読出しオペレーションをスケジューリングする。LLT読出しオペレーションがまったく無い場合、スケジューラー114は読出しキュー内の最大密接グループをスケジューリングする。一実施例において、スケジューラー114は最も古い読出しオペレーションを含む密接グループをスケジューリングするが、この場合LLTイエロー状態にあるLLT読出しオペレーションはまったくなく、グリーン状態に類似するのである。少なくとも1つのRTY読出しオペレーションがあるが、RTRオペレーションがない場合、スケジューラー読出し状態はイエローである。イエロー状態において、スケジューラー114は最も古いRTY読出しオペレーションを含む密接グループ若しくは最大の密接グループをスケジューリングする。少なくとも1つのRTR読出しオペレーションがキューにあり、かつ、スケジューラー114が密接オペレーションをRTRオペレーションと関連づけるようにプログラムされている場合、スケジューラー読出し状態はレッド近似である。レッド近似状態において、スケジューラー114は最も古いオペレーションを含む密接グループをスケジューリングする。さもなければ、最大の密接グループをスケジューリングする。少なくとも1つのRTR読出しオペレーションがキューにあり、かつ、スケジューラー114が密接オペレーションなしにRTR読出しオペレーションをスケジューリングするようにプログラムされている場合、スケジューラー読出し状態はレッドである。レッド状態において、スケジューラー114は最も古いRTR読出しオペレーション又は最大の密接グループをスケジューリングする。上述した説明は、読出しキューにおける読出しを最古として参照する。幾つかの実施例において、読出しオペレーションは、読出しキューで消費された時間に基づき最古としてビューされる。他の実施例において、他の方法で年齢ageを測定する。例えば、読出しオペレーションが別の読出しオペレーションのためにスケジューリングされなかった回数という観点で、最古の読出しオペレーションが測定される。密接グループがスケジューリングされるとき、密接グループからスケジューリングされたメモリオペレーションの数は、固定的若しくはプログラム可能な爆発サイズを最大とするグループ内のオペレーション数である。一実施例において、最新にスケジューリングされた密接グループが爆発サイズよりも少ないオペレーションを有する場合は、他のメモリオペレーションがスケジューリングされる。例えば、スケジューラー114は、最新にスケジューリングされた密接グループと深く関連するストラグラー例えば、以前にスケジューリングされたが爆発サイズのために転送された密接グループの一部であったメモリオペレーションをスケジューリングする。あるいはまた、スケジューラー114は次に大きい密接グループを選択する。いま図12を参照すると、MIF66の一実施例のブロック図が示されている。図12の実施例の場合、MIF66は、MIFキュー化制御ユニット170、MIFトランザクションキュー172、オープンページテーブル174、プリチャージスケジューラー176、モデルレジスタregスケジューラー178、リフレッシュスケジューラー180、アクティベートスケジューラー182、共通アドレスストロボCASスケジューラー184、及び最終スケジューラー186を含む。MIF待機状態制御ユニット170はPSQ64からメモリオペレーションを受信するために接合し、そしてオープンページテーブル174及びMIFトランザクションキュー172に接合する。オープンページテーブル174はプリチャージスケジューラー176に接合する。MIFトランザクションキュー172は、アクティベートスケジューラー182及び共通アドレスストロボCASスケジューラー184のそれぞれと接合するアクティベートキュー188及びCASキュー190を含む。スケジューラー176,178,180,182,184は最終スケジューラー186に接合し、これはMIF66がMCU56A又は56Bにインスタンス化されるかどうかに依存してメモリPHY42A又は42Bの一つにコマンドを送信するために接合される。MIF待機状態制御ユニット170は、受信したメモリオペレーションと、オープンページテーブル174及びMIFトランザクションキュー172を比較し、コマンドを事前に合成してメモリオペレーションを実行するよう構成されている。特に、受信したメモリオペレーションに対応するページがキューされたアクティベートコマンドによってオープンされる場合、その受信したメモリオペレーションはCASオペレーションとしてキューされる待機状態となる。受信したメモリオペレーションに対応するページがすでにオープンされ、キューされたページコンフリクトのアクティベートがない場合、その受信したメモリオペレーションはCASオペレーションとして待機状態となる。受信したメモリオペレーションに対応するページがオープンされない場合、その受信したメモリオペレーションはアクティベートコマンド及びCASコマンドとして待機状態となる。各コマンドは年齢カウンタアクティベートキュー188及びCASキュー190内の年齢フィールドを割り当てられる。年齢カウンタの値は読出しメモリオペレーションのQoSパラメータに基づき、そしてより低いQoSレベルのためよりも高いQoSレベルのために短い。書込みメモリオペレーションのために、年齢カウンタは読出しメモリオペレーションの最も低いQoSレベルと同じであるか、最も低いQoSレベルよりも長い。年齢はオペレーションをバイパスするオペレーション数として又はクロックサイクルとして様々な実施例においてカウントされる。年齢カウンタがゼロに減少されると、対応のオペレーションはMIF66がMCU56A又は56B66における最も高い優先度としてスケジューリングされる。アクティベートスケジューラー182及びCASスケジューラー184は、対応のキュー188及び190からのアクティベートコマンド及びCASコマンドをスケジューリングするよう構成される。アクティベートコマンドはメモリのページをオープンし、CASコマンドはページ内に読出し又は書込みデータを生じさせる。プリチャージスケジューラー176は、オープンページテーブル174のページに関するアイドルタイマーが時間切れとなるとき、バンクのプリチャージコマンドをスケジューリングする。アイドルタイマーはオープンページ内の受信メモリオペレーションヒットの各時間でリロードされ、オープンページでヒットしない各メモリオペレーション又は各クロックサイクルで減少させられる。新たに受信したメモリオペレーションをもつページコンフリクトがページをクローズさせるというケースにおいて、前のページに対する最後のCASコマンドがバンクをプリチャージさせるために用いられる。モードregスケジューラー178は、構成可能なタイマーに従い及び/又はメモリタイマー要求に応じて、メモリレジスタ読出しMRR及びメモリレジスタ書込みMRWを生成する。リフレッシュスケジューラー180は、リフレッシュが必要とされるとき、リフレッシュコマンドを生成する。最終スケジューラー186はスケジューラー176,178,180,182,184の間で選択して、メモリPHY回路へのコマンドをスケジューリングする。また、スケジューラー186は、読出しオペレーション及び書込みオペレーション間のターンアラウンドサイクルなどの或るプロトコルを強化する。アクティベートキュー及びCASキュー188及び190は仮想であることに留意されたい。つまり、MIFトランザクションキュー172内の同一エントリーが所与のメモリオペレーションに関するアクティベート及びCASコマンドの両方のために用いられる。アクティベートは所与のメモリオペレーションのために必要とされる場合、アクティベートが発行されると、エントリーはアクティベートコマンドとして初期化され、そしてCASコマンドに変換される。所与のメモリオペレーションのためにアクティベートが必要でない場合、エントリーはCASコマンドとして初期化される。図7及び12に示された回路に加えて、MCU56A-56B内にデータパスがあり、AIU54からメモリへ書込みデータを運び、メモリからAIU54へ読出しデータを運ぶことにさらに留意されたい。図13は、PSQ64からのメモリオペレーションに応じて、MIFキュー化制御ユニット170の一実施例のオペレーションを示すフローチャートである。理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。MIFキュー化制御ユニット170の組み合わせ論理において並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。MIFキュー化制御ユニット170は、図13に示すオペレーションを実行するように構成される。MIFキュー化制御ユニット170は、受信されたメモリオペレーションのためにアクティベートコマンドが必要とされるか否かを判断する例えば、メモリオペレーションは、オープンページ又は前に待機状態にあるアクティベートコマンドがオープンされるであろうページをヒットしない判断ブロック196。もし必要であれば判断ブロック196のYes、MIF待機状態制御ユニット170はアクティベートコマンドを合成し、アクティベートキュー188内にそのアクティベートコマンドを待機状態にするブロック192。また、MIF待機状態制御ユニット170は、CASコマンドを合成し、CASキュー190内にそのCASコマンドを待機状態にするブロック194。それぞれの場合において、読出し用のQoSパラメータに基づき年齢カウンタを初期化する。図14は、アクティベートスケジューラー182のオペレーションを示すフローチャートである。アクティベートスケジューラー182は、古くなった例えば、年齢カウンタがゼロであるアクティベートコマンド用のアクティベートキュー188内のアクティベートコマンドをスキャンする。そのようなアクティベートコマンドが検出された場合、アクティベートは古くなったアクティベートコマンドを選択するブロック200。そうでない場合、アクティベートスケジューラー182は、殆ど未処理のオペレーションをもつバンク内のヘッドクラスターにあるアクティベートコマンドを選択する。ヘッドクラスターは、アクティベートキュー188内で最古のアクティベートコマンドである、同一読出し/書込みタイプのアクティベートグループである。1よりも多いコマンドが適格であるならば、最古の適格アクティベートコマンドが選択される。図15はCASスケジューラー184の一実施例のオペレーションを示すフローチャートである。理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。CASスケジューラー184の組み合わせ論理において並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。CASスケジューラー184は、図15に示すオペレーションを実行するように構成される。アクティベートスケジューラー182と同様に、CASスケジューラーは古くなったCASコマンドを検出し、送信第一のためにそれらを選択する判断ブロック202のyes及びブロック204。古くなったCASコマンドがまったく無く判断ブロック202のno、かつ、最新のCASコマンドが読出しであった判断ブロック206のyes場合、CASスケジューラー184は、最後のCASコマンドと同じランクの次の読出しCASコマンドを選択するか、又はページをクローズすることができるように完了するためのCASコマンドを待つ最もコンフリクトするオペレーションにより読出しCASコマンドを選択するブロック208。同様に、最後のCASコマンドが書込みの場合判断ブロック206のno及び判断ブロック210のyes、CASスケジューラー184は、最後のCASコマンドと同じランクの次の書込みCASコマンドを選択するか、又はページをクローズすることができるように完了するためのCASコマンドを待つ最もコンフリクトするオペレーションにより書込みCASコマンドを選択するブロック212。上記にどれもあてはまらない場合、CASスケジューラー184はCASキュー190内の最古のCASコマンドをスケジューリングするよう構成コマンドを選択するブロック214。ブロック204,208、212、214において、1よりも多いCASコマンドが適格であるならば、最古のCASコマンドが選択される。図16は、最後のスケジューラー186の一実施例のオペレーションを示すテーブルである。テーブルのエントリーは上から下へと優先度を下げる順序で示されている。バーストストップコマンドBST又は中断CASコマンドが送信される場合、最高の優先度でこれらのコマンドを与える。次は、モードレグスケジューラー178からのコマンドであり、そしてリフレッシュスケジューラー180からの自動リフレッシュコマンドが続く。CASスケジューラー184からのCASコマンドは、自動リフレッシュコマンドの次の優先度であり、次にアクティベートスケジューラー182からのアクティベートコマンドである。プリチャージスケジューラー176からのプリチャージコマンドはアクティベートコマンドの次の優先度である。そして、図16において、最後の優先度は低パワーモードを入力するのに用いられるセルフリフレッシュコマンドである。簡単に上述したように、メモリオペレーションは、メモリオペレーションのQoSレベル上に置かれた高い重要度をもつソースからメモリコントローラ40を入力する。メモリオペレーションはメモリコントローラ40で処理され、そしてメモリに対する送信信号にアプローチするので、QoSレベルの重要性は低下し、そしてメモリSDRAM効率の重要性は増加する。図17はこのオペレーションを図式的にあらわしている。MCIU60例えば、60A又は60B、PSQ64、MIF66は各レベルで、スケジューリングコントロールを示すブロックに沿って示されている。MCIU60で、読出し及び書込みオペレーション双方のQoSレベルは、バンド幅共有パラメータとともに、PSQ64への送信に関する読出し及び書込みオペレーションの選択をコントロールする。メモリの効率性はこのレベルで考慮されないブロック222。PSQ64で、書込みのQoSはドロップされる。アフィニティは書込み選択をコントロールし、そしてQoSとアフィニティの組み合わせは、読出しの選択を主にコントロールするブロック224。したがって、QoS及びメモリ効率性の懸念事項は、このPSQ64で、一層バランスされる。MIF66で、QoSは、年齢パラメータの反映されるのであるがすべてのメモリオペレーションのためにドロップされる。そして、SDRAM効率性の懸念事項は、コマンドの選択を主にコントロールするブロック226。簡単に上述したように、メモリコントローラ40は未処理のメモリオペレーションのQoSレベルを更新することをサポートする。様々な実施例は、QoSレベルのアップグレードを信号で伝える1以上のメカニズムすなわち、インバンド、サイドバンド、及び年齢をサポートする。図18は、インバンドのQoSアップグレードメカニズムの一実施例を示すブロック図である。このメカニズムの場合、前のメモリオペレーションと同じフローでメモリオペレーションを受信すると、前のメモリオペレーションよりも高いQoSレベルを有する新たに受信したメモリオペレーションは、メモリコントローラ40が前のメモリオペレーションのQoSレベルをアップグレードする。MCIU60Aの部分が、MCU56A内のPSQ64の部分に沿って示されている。MCU64B内のMCIU60B及びPSQ64は類似する。MCIU60Aは、上述したように、各ポートからメモリオペレーションを受信し、新たに受信したメモリオペレーションを、読出し及び書込みのためのキュー90A-90B又は92A-92Bの一つにキューする。さらに図18に示すとおり、MCIU60Aは、新たに受信したメモリオペレーションのFIDの部分及びQoSパラメータと、同一ポートからのキューメモリオペレーションの対応する値とを比較する例えば、RdQ090Aは、ポート0又はG0ポート44Aで新たに受信したメモリオペレーションのFID及びQoSパラメータと比較し、そしてRdQ490Bは、ポート4又はRTポート44Eで新たに受信したメモリオペレーションのFID及びQoSパラメータと比較する。同一ポートから新たに受信したメモリオペレーション、及びキューメモリオペレーションより高いQoSレベルをもつフローに応じて、MCIU60Aは、高いQoSレベルに対するキューメモリオペレーションのQoSレベルをアップグレードする。幾つかの実施例において、QoSアップグレードは或るポートに制限される。例えば、一実施例は、QoSアップグレードをRTポート44Eに制限する。他の実施例は、QoSアップグレードを、RTトラフィックを受信したポートに制限する。このような実施例においては、アップグレードがサポートされるポートから新たに受信したメモリオペレーションだけが比較される。同様に、FID及びQoSパラメータは、PSQ64における読出しアフィニティキュー118A-118Bによって受信される。PSQ64は、同一ポートから新たに受信したメモリオペレーション、及び高いQoSレベルをもつフローに応じて、キュー読出しオペレーションのQoSレベルを更新する。幾つかの実施例において、PSQ64により受信されたFID及びQoSパラメータは、MCIU60Aにより受信されたものと同じく新たに受信されたFID及びQoSパラメータである。つまり、PSQ64及びMCIU60Aは、それぞれの新たに受信したメモリオペレーションに関するQoSレベルを並行してアップグレードする。他の実施例では、MCIU60Aは新たに受信したメモリオペレーションに応じてQoSアップグレードを実行し、そしてPSQ64は、MCIU60AからPSQ64へ送信されたメモリオペレーションに応じてQoSアップグレードを実行する。図18は、FID及びQoSパラメータと、読出しキュー90A-90Bとを比較することを示し、この比較はQoSパラメータをアップグレードするために書込みキュー92A-92Bに対して行なわれる。しかしながら、上述したように、書込みオペレーションのためのQoSパラメータは、PSQ66にドロップされ、その結果、書込みアフィニティキュー120A-120Bに対するどんな比較も存在しない。図19は、インバンドアップグレードメカニズムのQoSレベルをアップグレードするメモリコントローラ40のオペレーションを示すフローチャートである。図19は理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。メモリコントローラ40は、図19に示すオペレーションを実行するように構成される。より詳細に言うと、PSQ64及びMCIU60A-60Bのそれぞれは、図19に示すオペレーションを実行するアップグレード回路を含む。新たに受信したメモリオペレーションが、FIDが示す同一フローからの判断ブロック232のyesキューメモリオペレーションと同じポートからであって判断ブロック230のyes、しかもキューメモリオペレーションがRTメモリオペレーションである場合判断ブロック234のyes、メモリコントローラ40は、新たに受信したメモリオペレーションの高いQoSレベルに対するキューオペレーションのQoSレベルをアップグレードするブロック236。一実施例において、QoSアップグレードがサポートされるキューは比較を実行するコンテンツアドレス可能なメモリを含み、一致はマッチングキューエントリーに対する新たに受信したQoSパラメータの書込みを可能にする。新たに受信したメモリオペレーションが、キューメモリオペレーションと同じポートからであって判断ブロック230及び232のyesであるが、キューメモリオペレーションがRTメモリオペレーションではない場合判断ブロック234のno、メモリコントローラ40は、キューメモリオペレーションのPビットをセットするブロック238。同様に、新たに受信したメモリオペレーションが、キューメモリオペレーションと同じポートからであるが異なるフローである場合判断ブロック230のyes及び判断ブロック232のnoであるが、メモリコントローラ40は、キューメモリオペレーションのPビットをセットするブロック238。図20は、QoSアップグレードを要求するサイドバンドインタフェースの追加を示すブロック図である。図20の実施例において、RTポート44Eに関するサイドバンドインタフェースが含まれる。他の実施例では、他のポートに関する1以上の追加のサイドバンドインタフェースを実装する。名前があらわすとおり、サイドバンドインタフェースは、メモリコントローラ40にメモリオペレーションを送信するレギュラーインタフェースに追加するものである。図1に示すようなCmd、FID、及びQoSパラメータを含むレギュラーインタフェースは矢印240を介して示される。サイドバンドインタフェースは、サイドバンドQoSアップグレード要求信号SbQoSUpgd、サイドバンドQoSパラメータSbQoS、サイドバンドFIDSbFID、サイドバンドマスクSbMask、RT周辺機器22からRTポート44Eへのサイドバンド読出し指示SbRd、及びRTポート44EからRT周辺機器22へのサイドバンド了承信号SbAckを含む。RT周辺機器22はサイドバンドアップグレードを要求するSbQoSUpgd信号をアサートし、SbQos上でアップグレードされたQoSレベルをあらわすQoSパラメータを供給する。SbFIDはフローを識別し、そしてSbFIDの部分及び比較においてマスクされるはずのキューFIDを許可することによって、SbMaskは一般性を備える。SbRdインジケータは、読出し又は書込みがアップグレードのために比較される場合に指示する。RTポート44EはSbAckを用いてアップグレード要求を承認する。一実施例において、サイドバンドアップグレードを実行するメモリコントローラ40内のハードウェアは図18に示すものと同様であり、そのプロセスは図19に示すものと同様である。新たに受信したメモリオペレーションは、上記記載において、受信したサイドバンド要求と置き換えられる。図21は、年齢ベースのQoSアップグレードを実装するメモリコントローラ40の汎用オペレーションを示すフローチャートである。上述したように、MIFトランザクションキュー172は年齢に基づき優先度のアップグレードを実行する。他の実施例では、年齢ベースQoSアップグレードを同様に実行する。図21は理解を容易にするために特定の順序でブロックを示しているが、他の順序も用いられる。メモリコントローラ40の組み合わせ論理において並行してブロックが実行される。ブロック、ブロックの組み合わせ、及び/又はフローチャートは、全体として、マルチクロックサイクルでパイプラインされる。メモリコントローラ40は、図19に示すオペレーションを実行するように構成される。年齢カウンタをアップグレードすること、及び対応するメモリをアップグレードすることは、各オペレーションのために並行して実行される。キュー例えば、MCIUキュー90又は92、PSQトランザクションキュー112、及び/又はMIFトランザクションキュー172の中にオペレーション入力があると、メモリコントローラ40は各メモリオペレーションに年齢カウンタを割り当てるブロック250。年齢カウンタは各キューで異なり、キューからキューへ運ばれる必要はない。あるいはまた、年齢カウンタはMCIUで割り当てられ、他のキューを通じて運ばれる。年齢カウンタの初期値は各メモリオペレーションのQoSパラメータ例えば、より高いQoS値に関する短い値に基づいている。この初期値は固定的であるかプログラム可能である。メモリコントローラ40は、所与の年齢カウンタをアップグレードするアップグレードイベントを検出する判断ブロック252。アップグレードイベントは年齢カウンタがどのように測定されるかによって変化する。例えば、幾つかの実施例では、より若いメモリオペレーションによってバイパスされるメモリオペレーションの回数という観点から年齢を測定する。このような実施例では、アップグレードイベントはメモリオペレーションのバイパスである。他の実施例では、年齢としてクロックサイクルをカウントする。そしてアップグレードイベントはクロックが生じたり又は落ちたりする年齢である。さらに他の実施例では、他の方法で年齢を定義し、アップグレードイベントはそれに従って検出される。アップグレードイベントを検出することに応じて判断ブロック252のyes、メモリコントローラ40は年齢カウンタを減少させるブロック254。メモリコントローラ40は、所与の年齢カウンタが期限切れであるか否かを検出する判断ブロック256。期限切れである場合判断ブロック256のyes、メモリコントロール40は同じセットのQoSレベルにある次に高いレベルにQoSレベルをアップグレードするブロック258。アップグレードされたQoSレベルが最高のレベルでなければ例えば、RTR、判断ブロック260のNo、メモリコントローラ40は年齢ベースアップグレードに関する新たなQoSレベルに基づき新たな年齢カウンタ値を割り当てるブロック262。したがって、この実施例において、メモリオペレーションのQoSレベルは、各仲介QoSレベルを通じて、メモリオペレーション年齢として最高QoSレベルにアップグレードされる。図22を参照すると、システム350の一実施例のブロック図が示されている。システム350は、外部メモリ12例えば、図1のメモリ12A-12Bに結合された集積回路10の少なくとも1つのインスタンスを含む。集積回路10は1以上の周辺機器354及び外部メモリ12に結合する。電源供給356が提供され、集積回路10に電圧を供給するとともに、1以上のメモリ12及び/又は周辺機器354に電圧を供給する。幾つかの実施例において、1より多い集積回路10のインスタンスが含まれるそして同様に、1より多い外部メモリ12のインスタンスが含まれる。周辺機器354はシステム350のタイプによって望しい回路を含む。例えば、一実施例において、システム350はモバイル機器例えば、携帯情報端末PDA、スマートフォンなどであり、そして周辺機器354は様々なタイプの無線通信例えば、wifi、bluetooth、セルラー、GPSなどを含む。また、周辺機器354はRAM記憶媒体、固体記憶媒体、ディスク記憶媒体を含む追加的ストレージを含む。周辺機器354はディスプレイスクリーンなど例えば、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーン、キーボード若しくは他の入力デバイス、マイクロフォン、スピーカーのユーザインタフェース機器を含む。他の実施例では、システム350は任意のタイプのコンピュータシステム例えば、デスクトップPC、ラップトップ、ワークステーション、ネットトップなどである。上述したように開示が理解される場合、様々なバリエーション及び修正が当業者にとって明らかとなる。添付の図面はこのようなバリエーション及び修正をとらえるために解釈されることを意図している。"