(57)【特許請求の範囲】
【請求項１】
複数のエンティティが共有する共通一次メモリと共に使用されるハードウェアベースのメモリ管理システムであって、該複数のエンティティのそれぞれは、該共通一次メモリへのアクセスを要求するよう構成されており、
前記複数のエンティティから、前記共通一次メモリにアクセスするための要求を受け取って、該要求を保持するようそれぞれが構成される少なくとも２つの要求待ち行列と、
前記要求の優先度を決定して、該決定された優先度に従って、該要求を前記要求待ち行列のうちの１つに送る優先度決定器であって、該要求待ち行列のうちの第２の待ち行列に送られる要求よりも通常では高速に処理されるべき要求を、該要求待ち行列のうちの第１の待ち行列に送る、優先度決定器と、
前記要求待ち行列における前記要求に、メモリアクセスを提供するよう構成される待ち行列・メモリハンドラと、
前記要求待ち行列に残っている要求の濃度を求め、該求めた濃度を示す信号を生成するよう構成される待ち行列レベル信号器と、
を備えるシステム。
【請求項２】
前記信号は、さらに、前記複数のエンティティの少なくとも１つに対し、該エンティティが少なくとも１つの新たな要求を前記要求待ち行列に提出することができることを示す、
請求項１に記載のシステム。
【請求項３】
前記信号を受け取り、該信号が、前記要求待ち行列にある要求の前記濃度が、定義されたしきい値以下であることを示すとき、該要求待ち行列に新たな要求を提出するよう構成されるバックグラウンド・エンティティをさらに備える、
請求項１に記載のシステム。
【請求項４】
複数のエンティティが共有する共通一次メモリへのアクセスを管理するように構成され、特定用途向け集積回路（ＡＳＩＣ）として具体化されるメモリ管理モジュールによって実施される方法であって、該複数のエンティティのそれぞれは、前記共通一次メモリへのアクセスを要求するよう構成されており、
前記複数のエンティティから受け取られた、前記共通一次メモリにアクセスするための要求を、第１の待ち行列または第２の待ち行列のいずれかに入れるステップと、
前記待ち行列の前記要求について、前記共通一次メモリのアクセスを調停するステップと、
前記要求の優先度を決定して、該決定した優先度に従って、該要求を前記第１および第２の待ち行列のいずれかに送るステップであって、該第２の待ち行列に送る要求よりも通常では高速に処理すべき要求を該第１の待ち行列に送る、ステップと、
前記第１および第２の少なくとも一方に残っている前記要求の数を求めるステップと、
前記第１および第２の少なくとも一方に残っている前記要求の前記数を示す待ち行列レベル信号を生成するステップと、
を含む方法。
【請求項５】
前記信号は、前記複数のエンティティの少なくとも１つに対し、該エンティティが少なくとも１つの新たな要求を前記待ち行列に提出することができることを示す、
請求項４に記載の方法。
【請求項６】
調停する前記ステップは、さらに、
前記要求が待ち行列に入れられるレートから独立したレートで、前記共通一次メモリへのアクセスを調停することを含む、
請求項４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ・リソースへのアクセスを制御し、そのリソースの可用性を監視するメモリ管理技術に関し、より詳細には、多数の要求エンティティにより共有される共通メモリに対するメモリアクセス要求を管理するメモリ管理技術に関する。
【０００２】
【従来の技術】
通常、コンピュータ・システムは１つ以上の共通メモリシステムを含む。図１の２００は、このようなコンピュータ・システムの一部を示す。このコンピュータ・システムの部分は、多数のデバイス及びサブシステムにより共有されるメモリ・リソースを示している。
【０００３】
ここでは特に、二次メモリではなく一次メモリに焦点を当てる。このような一次メモリの例として、ＲＡＭ、ＲＯＭ、ＤＲＡＭ、ＳＲＡＭ及び他の同様な物理メモリがある。本明細書では、一次メモリを全体として「ＲＡＭ」、「主メモリ」または「システムメモリ」と呼ぶ場合がある。
【０００４】
上記一次メモリには、例えば、データを保持可能な実チップと呼ばれる物理メモリがある。一次メモリは、物理メモリを二次メモリに拡張する仮想メモリを含まない。二次メモリの例としては、ハードドライブ、フロッピーディスク（登録商標）、ＣＤ−ＲＯＭまたは一次メモリよりメモリアクセス速度が大幅に低いその他のメモリが挙げられる。
【０００５】
＜共通メモリ＞
一次メモリは、多数のデバイス及びサブシステムの間で共有されることが多い。この共有メモリを共通メモリ・サブシステム２０１のような「共通メモリ」と呼ぶことができる。メモリにアクセス可能なデバイス及びサブシステムは、一般に「エージェント」または「エンティティ」と呼ばれる。エージェントの例が図１に示されており、これらはプロセッサ（複数も可）２０２と、通信（入出力、すなわちＩ／Ｏ）デバイス（複数も可）２０４と、ディスク・コントローラ（複数も可）２０３と、（メモリスクラバ等の）他のハードウェア・デバイス２０５等を含む。これらの各エージェントは、メモリからの読み出しまたはメモリへの書き込みを望む場合、システム２００の共通メモリ・サブシステム２０１にアクセス要求を送信することができる。
【０００６】
図２は、共通メモリ・サブシステム２０１の構成要素の全体概略図を示す。サブシステム２０１は、Ｉ／Ｏユニット２２０と、他のメモリハードウェア２２４と、メモリ２３０とを含む。その名称通り、Ｉ／Ｏユニット２２０は、サブシステムのエージェントとの通信を扱う。メモリ２３０はこのサブシステムの中核であり、これが実メモリである。他のメモリハードウェア２２４は、メモリ２３０からのデータ出力やメモリへのアクセス要求を容易にするといった、実行すべき他のいかなるタスクも扱う。これらのアクセス要求は、通常、タスクの組み合わせをともなう。このようなタスクは、メモリからの１回以上の読み出しとメモリへの１回以上の書き込みとを含む。
【０００７】
共通メモリ２３０への他に規制されていないアクセスに対する指令を提供するために、他のメモリハードウェア２２４はメモリ管理戦略を採用することができる。最も一般的な戦略は、すべての要求を単純にＦＩＦＯ（先入れ先出し）待ち行列に入れることである。従って、要求を受け取った順に、各要求はメモリを使用してそのタスクを実行していく。
【０００８】
＜レイテンシ＞
レイテンシは、メモリ要求がなされた瞬間からこの要求の結果が要求元のエージェントに戻ってくる瞬間までの時間の尺度である。エージェントの所有するメモリが共有されていない場合、所定のタスクのレイテンシは、そのタスクの実行ごとに同一となると予想される。しかしながら、多数のエージェント間で共有されるメモリがあると、このようなタスクのレイテンシは共通メモリにアクセスするための待機時間に応じて変化する。
【０００９】
エージェントは、共通メモリ・サブシステム２０１を時間共有する。これは、各エージェントがそのタスクを（要求されたように）実行するための時間の一部を得ることを意味する。メモリを使用するために待機しているエージェントがあると仮定したとき、これらの使用の中には他の使用に比べて緊急のものがある。従って、特にこのような緊急の使用の際には、レイテンシを最小にすることが望ましい。
【００１０】
メモリへのアクセス要求を遅延させる他の理由がある。メモリ・サブシステム２０１、エージェント２０２〜２０５、及びサブシステムとエージェントとの間のリンクの動作速度が互いに同期していない場合は、追加の待機が生じる。例えば、プロセッサが５００ＭＨｚで動作可能であり、メモリ・サブシステムへのリンク（バスと呼ばれる）が１００ＭＨｚで動作可能であり、メモリ・サブシステムが３００ＭＨｚで動作可能であるとする。この例では、各要素とリンクは異なる速度で動作しているため、アクセス要求により実行されるタスク間に時間差が生じることがある。
【００１１】
さらに、メモリへのアクセスを制御するメモリのアクセス・プロトコルにより追加の遅延が生じる。このプロトコルは、メモリからの各読み出しを開始して実行するために数クロック・サイクルを消費する。同様に、メモリへの各書き込みを開始して実行するために数クロック・サイクルを消費する。これらのクロック・サイクルは、メモリから読み出しまたはメモリに書き込む作業データがない場合には、単にオーバーヘッドとなる。
【００１２】
【発明が解決しようとする課題】
従って、多数の要求エンティティにより共有される共通メモリへのメモリアクセス要求を管理するシステム及び方法が必要とされている。
【００１３】
【課題を解決するための手段】
本明細書には、共通メモリ・リソースへのアクセスを制御し、その可用性を監視する改良メモリ管理技術が記載される。特に、このハードウェアベースのメモリ管理技術は、多数の要求エンティティにより共有される共通メモリへのメモリアクセス要求を管理する。これは、かかる要求に優先順位をつけて調停することを含む。さらに、かかる要求のレイテンシを最小にすることを含む。
【００１４】
【発明の実施の形態】
本発明による共通メモリのメモリマネージャのいくつかの実施形態を以下に述べる。共通メモリのメモリマネージャの実施形態の一例を「例示メモリマネージャ」と呼ぶ。
【００１５】
＜例示メモリマネージャ＞
図３は、共通メモリのメモリマネージャの実施形態の一例である共通メモリ・サブシステム３０１を示す。メモリ・サブシステム３０１は、共通メモリ３１６と、Ｉ／Ｏユニット３１０と、メモリ管理ユニット３１２と、他のメモリ・ハードウェア３１４とを含む。
【００１６】
共通メモリ３１６は、多数のエージェントにより共有されるメモリ・リソースである。Ｉ／Ｏユニット３１０は、上記エージェントとメモリ・サブシステム３０１の間の通信を扱う。メモリ管理ユニット３１２は、メモリ３１６へのアクセスを管理するハードウェアベース論理回路を内蔵する。このようなユニットをＭＭＵと呼ぶ。また、メモリアクセス調停（arbitration）ユニット（ＭＡＡユニット）と呼ぶこともできる。他のハードウェア３１４は、メモリ・サブシステムにより使用される他のメモリ関連のハードウェアを内蔵する。
【００１７】
Ｉ／Ｏユニット３１０及び／または他のハードウェア３１４は、ＭＭＵ３１２（またはそのいくつかの組み合わせ）とともに例示マネージャを具体化することができる。より詳細には、ＭＭＵは、全体としてまたはその一部として、例示マネージャを具体化することができる。
【００１８】
図４は、ＭＭＵ３１２の構成要素を示すブロック図である。ＭＭＵ３１２は例示マネージャの実施形態の一部または全部を包含するするため、共通メモリサブシステム３０１のこの部分に注目することは妥当である。また、図４は、他のハードウェアの一部、特に背景エージェント３７０及び３８０も示す。
【００１９】
共通メモリ３１６へのアクセスを得て読み出し／書き込みを行う際、エージェントは、Ｉ／Ｏユニット３１０を介してＭＭＵに要求を送信する。これらの要求には、通常１つ以上のタスクが含まれる。このようなタスクは、メモリからの１回以上の読み出しとメモリへの１回以上の書き込みとを含む。
【００２０】
＜タスク及び要求＞
本明細書に述べる例示マネージャでは、全体として３種類の要求がある。要求の種類は、そのタスクに基づいている。３種類のタスクは、「短期間・緊急（short-urgent）」「大量・緊急（large-urgent）」「大量・延期可能（large-postponable）」である。
【００２１】
タスクの中には一般に短期間かつ緊急であるものがある（「短期間・緊急」タスク）。「短期間」とはそのタスクを迅速に実行可能であることを意味し、「緊急」とは、他の動作及び機能がそのタスクの結果を待ってから次に進むことを意味する。タスクの結果の待機によりプロセッサがストールする場合、そのタスクは緊急であるとみなされる。
【００２２】
通常、このような「短期間・緊急」タスクを遅延または中断させると、コンピュータ・システムの性能全体に支障を及ぼす。このようなタスクの例はプロセッサからうける要求のほぼ全部であるが、これは、そのメモリ・アクセスの大部分が（コンピュータ・システムの性能全体にとって）迅速でありかつ重要であることによる。例えば、ユーザは結果が画面に現れるのを待っており、その結果を得るためにはプロセッサがメモリに高速アクセスしなければならないとする。その結果の表示が遅れると、コンピュータ・システムの性能に対するユーザの印象に影響を及ぼす。
【００２３】
タスクの他の種類の１つは、大量かつ緊急であるものである（「大量・緊急」タスク）。「大量」とは、タスクが大量であるため実行が低速になりやすいことを意味する。通常、このようなタスクではＤＭＡアクティビティをともない、プロセスまたは他のエージェントはその完了を待機している。従って、他の動作及び機能はそのタスクの結果を待ってから次に進む。
【００２４】
通常、このような「大量・緊急」タスクを遅延または中断させると、コンピュータシステムの性能全体に支障を及ぼす。
【００２５】
別の種類のタスクは、大量及び延期可能なものである（「大量・延期可能」タスク）。「延期可能」とは、タスクの結果を待っている他の動作または機能がほとんどないことを意味する。通常、これらのタスクでは、データをメモリにスワップ・イン／アウトするディスク管理やデータ管理などの「準備（ハウスキーピング）」の作業をともなう。
【００２６】
通常、このような「大量・延期可能」タスクを遅延または中断させても、コンピュータ・システムの性能全体には全く影響を与えない。このようなタスクの例として、ディスク管理、データ管理、直ちに結果を必要としない一部のＤＭＡ転送、背景ディスクパリティ計算、データ移送、ディスクアレイにおけるデータの再構築、その他の準備作業がある。例えば、データ冗長のために１つのディスク・ドライブから別のドライブに大量のデータがコピーされているとする。ユーザは、背景（バックグラウンド）タスクが実行されていることを知らないことが多いので、このタスクが１分で終了しても、あるいは３時間で終了しても性能への影響はほとんど、あるいは全く現れない。
【００２７】
＜ＭＭＵ＞
図４はＭＭＵ３１２を示し、Ｉ／Ｏユニット３１０からの入力３５０を含む。優先度決定器（プライオリタイザ）３５２は、入力３５０を介して多数のエージェントからメモリ３１６にアクセスする要求を受け取る。その名称通り、優先度決定器は、要求に優先順位をつけ、これらの要求を２つの待ち行列、すなわち高優先度待ち行列３５４または低優先度待ち行列３５６の一方に送る。例示マネージャの他の実施形態では、３つ以上の待ち行列を含むことができる。
【００２８】
優先度決定器３５２は、要求のタスクに基づいて各要求の優先度を決定する。「短期間・緊急」要求には高い優先度が与えられ、高優先度待ち行列３５４に送られる。「大量・緊急」要求及び「大量・延期可能」要求には低い優先度が与えられ、低優先度待ち行列３５６に送られる。「大量・緊急」要求は高優先度待ち行列に送るようにすることもできる。
【００２９】
例示マネージャにおいて、優先度の決定は、アドレス指定されているメモリの範囲に基づいて行われる。所定の範囲がそれぞれの優先順位に割り当てられる。緊急の要求はすべて（「短期間・緊急」要求及び「大量・緊急」要求を含む）所定のメモリ空間において動作し、「大量・延期可能」要求は別の所定のメモリ空間において動作する。あるいは、それぞれの空間が他の空間と排他的な関係にある各メモリ空間において、「短期間・緊急」要求は第１のメモリ空間において動作し、「大量・緊急」要求は第２のメモリ空間において動作し、「大量・延期可能」要求は第３のメモリ空間において動作するとしてもよい。
【００３０】
従って、優先度決定器３５２は、要求がアクセスしようとするメモリアドレスを調べて優先度を決定する。当業者であれば、他の技術を利用して優先度の決定を行ってもよいことを理解するであろう。例えば、要求の優先度を示す所定の要求とパラメータを結びつけてもよい。
【００３１】
待ち行列−メモリハンドラ３６０は、待ち行列から要求を選択的に取り出し、出力３６２を介してこれらをメモリに送る。メモリが使用可能である場合、ハンドラ３６０はこの待ち行列の１つから要求をメモリに送信する。
【００３２】
＜待ち行列レベルに依存する背景要求提出＞
図４は、「待ち行列レベルに依存する背景要求提出（サブミット）」要素を示す。これは、他のハードウェア３１４の一部と、待ち行列レベルモニタ３６５と、高優先度待ち行列モニタ線３７４と、低優先度待ち行列モニタ線３８４と、待ち行列レベル信号線３９２と、高優先度背景要求線３７６と、低優先度背景要求線３８６と、背景要求線３９４とを含む。
【００３３】
当業者であれば、上記の線はそれぞれ多数の線から構成されることが理解されよう。さらに、当業者であれば、上記の線は１つ以上のバスと置き換え可能であることが理解されよう。
【００３４】
代替的な実施形態では、１つの待ち行列のみを含み、従って上記要素を１組だけ含んでもよい。別の代替的な実施形態では、背景要求線３９４は、優先度決定器３５２を介さずに上記待ち行列の１つに直接送り込まれてもよい。
【００３５】
これらの要素は、メモリアクセスの「仮想」の第３の待ち行列と同様に機能する。実際の待ち行列の代わりに、実際の待ち行列（３５４または３５６等）がしきい値レベルに到達すると、背景エージェント３７０及び／または３８０は、線３７６、３８６、３９４を介して背景タスクを提出する。しきい値レベルは、一般に固定され、一般にプログラム可能であり、タスク単位で選択可能であり、エージェント単位で選択可能であり、またはこれらのいくつかの組み合わせとすることができる。これらの背景タスクは、通常、背景エージェント３７０に対しては「大量・緊急」であり、背景エージェント３８０に対しては「大量・延期可能」である。
【００３６】
この「仮想」の第３の待ち行列は以下のように動作する。待ち行列レベルモニタ３６５は、線３７４及び３８４を介して実際の待ち行列３５４及び３５６をそれぞれ監視する。モニタ３６５（または関連する回路）は、１つ以上の待ち行列レベル線３９２を通してバイナリ符号化された信号を送信する。この信号が待ち行列のトリガしきい値レベルを示す場合、背景エージェント（３７０及び３８０等）は、必要なレベルにあるその待ち行列に置かれるように、要求を提出する。このトリガしきい値レベルも、タスク、エージェント及び他の変数に応じて可変である。
【００３７】
通常、背景エージェント３８０は「大量・延期可能」である背景タスクを実行するので、これらのタスクは低優先度待ち行列３５６に入れられる。また通常、背景エージェント３７０は「大量・緊急」である背景タスクを実行するため、これらのタスクは高優先度待ち行列３５４に入れられる。しかしながら、これら２つのエージェントのグループは重複する場合がある。換言すれば、いくつかのエージェントはグループ３７０及び３８０の一部である場合がある。
【００３８】
＜優先度及びプリエンプション＞
高優先度待ち行列３５４に何らかの要求がある場合、ハンドラ３６０は、高優先度待ち行列にある全ての要求にメモリ３１６へのアクセスを与えた後に、低優先度待ち行列にある要求にアクセスを与える。換言すれば、ハンドラは、低優先度待ち行列の要求より高い優先度を高優先度待ち行列の要求に与える。このようにハンドラは、常に、「高速・緊急（quick-urgent）」要求には「大量・延期可能」要求より先にメモリへのアクセスを与える。従って、「高速・緊急」要求は１つ以上の「大量・延期可能」要求の後に待機していることはない。つまり、「高速・緊急」要求は、この要求がいつ到着するかにかかわらず、待機中のいかなる「大量・延期可能」要求より前に「列に飛び込む（jump in line）」。
【００３９】
さらに、ハンドラは、低優先度の要求のメモリ・アクセスをプリエンプト（pre-empt：回避）して（すなわち割込みをかけて）、新たに到着した「高速・緊急」要求に対応する。例えば、高優先度待ち行列３５２が空であり、低優先度待ち行列３５６にあった「大量・延期可能」要求に基づいてメモリがアクセスされているとする。ハンドラは、（低優先度の要求に基づいた）進行中のアクセスに割込みをかけ、新たに到着した高優先度の要求にほぼ瞬時にアクセスを与える。高優先度待ち行列が再び空になると、低優先度の要求は再びメモリにアクセスする。
【００４０】
より具体的に述べると、ハンドラは、低優先度の要求のメモリ・アクセスをプリエンプトするが、低優先度のアクセスに割込みをかけるための自然なポイントを待つ。通常、タスクには、サブタスクが完了する自然な中断点がある。さらに、うまくタスクに割込みをかけることができる自然なデータ境界（例えば、バースト境界）がある。
【００４１】
＜アウト・オブ・オーダー（out-of-order）優先度＞
要求に高優先度または低優先度の優先順位をつけ、これらを適当な待ち行列（高優先度待ち行列３５４または低優先度待ち行列３５６）に入れることに加え、優先度決定器３５２は、これらの待ち行列内でさらに要求に優先順位をつけることができる。この場合、待ち行列の要求を、到着した順序とは「アウトオブオーダー（順不同）」で実行することができる。例えば、プロセスは通常、読み出し要求の結果を待機しているため、この要求が書き込み要求より前に実行されるように待ち行列の先頭まで押し出されることが多い。
【００４２】
本明細書に記載の例示マネージャは、待ち行列レベル信号線によって示されるように、メモリがアイドル状態にあるとき、背景エージェントの背景タイプのタスクがメモリにアクセスする機構を提供する。
【００４３】
ＭＭＵ３１２の構成要素はすべてハードウェアベースである。同様に、共通メモリ・サブシステム３０１の構成要素はすべてハードウェアベースである。
【００４４】
＜ハードウェアベース＞
ＭＭＵ３１２は、特定用途向け集積回路（ＡＳＩＣ）形式のハードウェアベースのメモリ管理論理回路を含む。「ハードウェアベース」という用語の例は、プログラムメモリからの命令の検索や実行を行わない物理論理要素を少なくとも１つ含む。代わりに、この例示の物理論理要素は、信号及びデータを処理する専用の相互接続型論理素子を有する。このようなハードウェアベースの論理回路は、マイクロプロセッサまたは他の命令ベースのプロセッサに比べて柔軟性に劣るが、ハードウェアベースの論理回路は命令ベースの論理回路に比べてはるかに高速である。
【００４５】
さらに、このようなハードウェアベースの論理回路は、割込みの受信に頼る必要がなく、またこのような割込みを解釈してタスクを実行する必要がないため、割り込み駆動型プロセッサに比べて高速である。従って、このようなハードウェアベースの論理回路は、クロックサイクル間（バスまたはプロセッサ用クロックサイクル等）の機能（メモリの管理等）を実行することが可能である。
【００４６】
その通常の意味及び本明細書で提示する説明により、当業者は、「ハードウェアベース」の意味を理解するであろう。
【００４７】
＜例示マネージャの方法的実施＞
図５は、ＭＭＵ３１２（またはその一部）によって実行される例示マネージャの方法的実施を示す。この方法的実施は、１個以上のハードウェアベースのモジュールにより実行可能である。
【００４８】
ステップ４１０において、ＭＭＵは、多数のエージェントからの要求の優先度を決定する。ステップ４１２において、ＭＭＵは、決定した要求の優先度に基づいて、上記要求を少なくとも２つある待ち行列の１つに送る。「短期間・緊急」要求は高優先度待ち行列に送られ、「大量・延期可能」要求及び「大量・緊急」要求は低優先度待ち行列に送られる。あるいは、「大量・緊急」要求を高優先度待ち行列に入れてもよい。その名称通り、高優先度待ち行列の要求は、低優先度待ち行列の要求に比べて優先度が高い。さらに、ＭＭＵは、これらの待ち行列の一方（または両方）にあるこれらの要求に優先順位をつけることができる。
【００４９】
図５のステップ４１４において、ＭＭＵは、待ち行列レベルを監視して、これらの待ち行列に残っている要求の数（すなわち、残りの要求の濃度（cardinality））を決定する。ＭＭＵは、このレベルを背景エージェントに発信する。このエージェントは、待ち行列レベルが所定のしきい値（カスタマイズにより可変である）である場合には要求を提出（サブミット）する。
【００５０】
ステップ４１６において、ＭＭＵは、これら待ち行列の要求にメモリアクセスを提供する。高優先度待ち行列の要求には、低優先度待ち行列の要求に先立ってアクセスを提供する。さらに、待ち行列レベルに依存する背景要求提出の測定により、ＭＭＵが上記待ち行列にある要求のためにメモリアクセスを考慮するレート（率）が決定される。
【００５１】
さらに、ＭＭＵは、低優先度の要求のメモリアクセスをプリエンプトして（すなわち割込みをかけて）、新たに到着した「高速・緊急」要求に対応することができる。
【００５２】
上記のステップの一部は同時に実行可能であり、また、上記のステップはメモリシステムが動作している間は繰り返される。
【００５３】
本発明には例として以下の実施形態が含まれる。
【００５４】
１．多数のエンティティが共有する共通メモリ（３１６）とともに使用されるハードウェアベースのメモリ管理システムであって、
前記メモリへのアクセスの要求を保持するように構成される少なくとも１つの要求待ち行列（３５４または３５６）と、
前記待ち行列の要求にメモリアクセスを提供するように構成される待ち行列・メモリハンドラ（３６０）と、
前記待ち行列に残っている要求の濃度を示す信号を生成するように構成される待ち行列レベル信号器（３６５）と、
を備えるシステム。
【００５５】
２．前記信号は、前記多数のエンティティの少なくとも１つに対し、このようなエンティティが少なくとも１つの新たな要求を前記待ち行列に提出できることをさらに示す、上記１に記載のシステム。
【００５６】
３．前記信号を受信して、前記待ち行列にある要求の前記濃度が定義されたしきい値であることを前記信号が示す場合に前記待ち行列に新たな要求を提出するように構成される背景エンティティ（３７０または３８０）をさらに備える、上記１に記載のシステム。
【００５７】
４．前記信号を受信して、前記待ち行列にある要求の前記濃度が定義されたしきい値以下であることを前記信号が示す場合に前記待ち行列に新たな要求を提出するように構成される背景エンティティ（３７０または３８０）をさらに備える、上記１に記載のシステム。
【００５８】
５．前記ハードウェアベースのメモリ管理システムは、特定用途向け集積回路（ＡＳＩＣ）の少なくとも一部として具体化される、上記１に記載のシステム。
【００５９】
６．前記ハードウェアベースのメモリ管理システムは、特定用途向け集積回路（ＡＳＩＣ）の少なくとも一部として具体化される、上記４に記載のシステム。
【００６０】
７．前記ハンドラは、要求を待ち行列に入れるレートから独立したレートで前記メモリへのアクセスを提供する、上記１に記載のシステム。
【００６１】
８．多数のエンティティが共有する共通メモリへのアクセスを管理するように構成され、特定用途向け集積回路（ＡＳＩＣ）として具体化されるメモリ管理モジュールにおいて、
前記メモリにアクセスする要求を待ち行列に入れるステップ（４１２）と、
前記待ち行列の前記要求についてメモリアクセスを調停するステップ（４１６）と、
前記待ち行列に残っている前記要求の数を示す待ち行列レベル信号を生成するステップ（４１４）と、
を含む方法。
【００６２】
９．前記信号は、前記多数のエンティティの少なくとも１つに対し、このようなエンティティが少なくとも１つの新たな要求を前記待ち行列に提出できることを示す、上記８に記載の方法。
【００６３】
１０．前記調停ステップは、要求を待ち行列に入れるレートから独立したレートで前記メモリへのアクセスを調停することを含む、上記８に記載の方法。
【図面の簡単な説明】
【図１】共通メモリサブシステムを共有するエージェントを有する典型的なコンピュータシステムの一部を示すブロック図である。
【図２】典型的な共通メモリサブシステム及びその構成要素を示すブロック図である。
【図３】本発明の実施形態の一例である共通メモリサブシステム及びその構成要素を示すブロック図である。
【図４】共通メモリサブシステムのメモリ管理ユニット（ＭＭＵ）を示すブロック図と、メモリシステムの他のハードウェアの一部を示すブロック図である。
【図５】本発明の方法の一例を示すフロー図である。
【符号の説明】
３１６  共通メモリ
３５４  要求待ち行列（高優先度待ち行列）
３５６  要求待ち行列（低優先度待ち行列）
３６０  待ち行列・メモリハンドラ
３６５  待ち行列レベル信号器
３７０  背景エンティティ（背景エージェント）
３８０  背景エンティティ（背景エージェント）
【図１】
0004034969.tif 000002
【図２】
0004034969.tif 000003
【図３】
0004034969.tif 000004
【図４】
0004034969.tif 000005
【図５】
0004034969.tif 000006