JP4034969B2 - 共通メモリのメモリ管理システム - Google Patents

共通メモリのメモリ管理システム Download PDF

Info

Publication number
JP4034969B2
JP4034969B2 JP2002008925A JP2002008925A JP4034969B2 JP 4034969 B2 JP4034969 B2 JP 4034969B2 JP 2002008925 A JP2002008925 A JP 2002008925A JP 2002008925 A JP2002008925 A JP 2002008925A JP 4034969 B2 JP4034969 B2 JP 4034969B2
Authority
JP
Japan
Prior art keywords
request
queue
memory
access
requests
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
JP2002008925A
Other languages
English (en)
Other versions
JP2002278827A (ja
JP2002278827A5 (ja
Inventor
バリー・ジェイ・オールドフィールド
ロバート・エー・ラスト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2002278827A publication Critical patent/JP2002278827A/ja
Publication of JP2002278827A5 publication Critical patent/JP2002278827A5/ja
Application granted granted Critical
Publication of JP4034969B2 publication Critical patent/JP4034969B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、メモリ・リソースへのアクセスを制御し、そのリソースの可用性を監視するメモリ管理技術に関し、より詳細には、多数の要求エンティティにより共有される共通メモリに対するメモリアクセス要求を管理するメモリ管理技術に関する。
【0002】
【従来の技術】
通常、コンピュータ・システムは1つ以上の共通メモリシステムを含む。図1の200は、このようなコンピュータ・システムの一部を示す。このコンピュータ・システムの部分は、多数のデバイス及びサブシステムにより共有されるメモリ・リソースを示している。
【0003】
ここでは特に、二次メモリではなく一次メモリに焦点を当てる。このような一次メモリの例として、RAM、ROM、DRAM、SRAM及び他の同様な物理メモリがある。本明細書では、一次メモリを全体として「RAM」、「主メモリ」または「システムメモリ」と呼ぶ場合がある。
【0004】
上記一次メモリには、例えば、データを保持可能な実チップと呼ばれる物理メモリがある。一次メモリは、物理メモリを二次メモリに拡張する仮想メモリを含まない。二次メモリの例としては、ハードドライブ、フロッピーディスク(登録商標)、CD−ROMまたは一次メモリよりメモリアクセス速度が大幅に低いその他のメモリが挙げられる。
【0005】
<共通メモリ>
一次メモリは、多数のデバイス及びサブシステムの間で共有されることが多い。この共有メモリを共通メモリ・サブシステム201のような「共通メモリ」と呼ぶことができる。メモリにアクセス可能なデバイス及びサブシステムは、一般に「エージェント」または「エンティティ」と呼ばれる。エージェントの例が図1に示されており、これらはプロセッサ(複数も可)202と、通信(入出力、すなわちI/O)デバイス(複数も可)204と、ディスク・コントローラ(複数も可)203と、(メモリスクラバ等の)他のハードウェア・デバイス205等を含む。これらの各エージェントは、メモリからの読み出しまたはメモリへの書き込みを望む場合、システム200の共通メモリ・サブシステム201にアクセス要求を送信することができる。
【0006】
図2は、共通メモリ・サブシステム201の構成要素の全体概略図を示す。サブシステム201は、I/Oユニット220と、他のメモリハードウェア224と、メモリ230とを含む。その名称通り、I/Oユニット220は、サブシステムのエージェントとの通信を扱う。メモリ230はこのサブシステムの中核であり、これが実メモリである。他のメモリハードウェア224は、メモリ230からのデータ出力やメモリへのアクセス要求を容易にするといった、実行すべき他のいかなるタスクも扱う。これらのアクセス要求は、通常、タスクの組み合わせをともなう。このようなタスクは、メモリからの1回以上の読み出しとメモリへの1回以上の書き込みとを含む。
【0007】
共通メモリ230への他に規制されていないアクセスに対する指令を提供するために、他のメモリハードウェア224はメモリ管理戦略を採用することができる。最も一般的な戦略は、すべての要求を単純にFIFO(先入れ先出し)待ち行列に入れることである。従って、要求を受け取った順に、各要求はメモリを使用してそのタスクを実行していく。
【0008】
<レイテンシ>
レイテンシは、メモリ要求がなされた瞬間からこの要求の結果が要求元のエージェントに戻ってくる瞬間までの時間の尺度である。エージェントの所有するメモリが共有されていない場合、所定のタスクのレイテンシは、そのタスクの実行ごとに同一となると予想される。しかしながら、多数のエージェント間で共有されるメモリがあると、このようなタスクのレイテンシは共通メモリにアクセスするための待機時間に応じて変化する。
【0009】
エージェントは、共通メモリ・サブシステム201を時間共有する。これは、各エージェントがそのタスクを(要求されたように)実行するための時間の一部を得ることを意味する。メモリを使用するために待機しているエージェントがあると仮定したとき、これらの使用の中には他の使用に比べて緊急のものがある。従って、特にこのような緊急の使用の際には、レイテンシを最小にすることが望ましい。
【0010】
メモリへのアクセス要求を遅延させる他の理由がある。メモリ・サブシステム201、エージェント202〜205、及びサブシステムとエージェントとの間のリンクの動作速度が互いに同期していない場合は、追加の待機が生じる。例えば、プロセッサが500MHzで動作可能であり、メモリ・サブシステムへのリンク(バスと呼ばれる)が100MHzで動作可能であり、メモリ・サブシステムが300MHzで動作可能であるとする。この例では、各要素とリンクは異なる速度で動作しているため、アクセス要求により実行されるタスク間に時間差が生じることがある。
【0011】
さらに、メモリへのアクセスを制御するメモリのアクセス・プロトコルにより追加の遅延が生じる。このプロトコルは、メモリからの各読み出しを開始して実行するために数クロック・サイクルを消費する。同様に、メモリへの各書き込みを開始して実行するために数クロック・サイクルを消費する。これらのクロック・サイクルは、メモリから読み出しまたはメモリに書き込む作業データがない場合には、単にオーバーヘッドとなる。
【0012】
【発明が解決しようとする課題】
従って、多数の要求エンティティにより共有される共通メモリへのメモリアクセス要求を管理するシステム及び方法が必要とされている。
【0013】
【課題を解決するための手段】
本明細書には、共通メモリ・リソースへのアクセスを制御し、その可用性を監視する改良メモリ管理技術が記載される。特に、このハードウェアベースのメモリ管理技術は、多数の要求エンティティにより共有される共通メモリへのメモリアクセス要求を管理する。これは、かかる要求に優先順位をつけて調停することを含む。さらに、かかる要求のレイテンシを最小にすることを含む。
【0014】
【発明の実施の形態】
本発明による共通メモリのメモリマネージャのいくつかの実施形態を以下に述べる。共通メモリのメモリマネージャの実施形態の一例を「例示メモリマネージャ」と呼ぶ。
【0015】
<例示メモリマネージャ>
図3は、共通メモリのメモリマネージャの実施形態の一例である共通メモリ・サブシステム301を示す。メモリ・サブシステム301は、共通メモリ316と、I/Oユニット310と、メモリ管理ユニット312と、他のメモリ・ハードウェア314とを含む。
【0016】
共通メモリ316は、多数のエージェントにより共有されるメモリ・リソースである。I/Oユニット310は、上記エージェントとメモリ・サブシステム301の間の通信を扱う。メモリ管理ユニット312は、メモリ316へのアクセスを管理するハードウェアベース論理回路を内蔵する。このようなユニットをMMUと呼ぶ。また、メモリアクセス調停(arbitration)ユニット(MAAユニット)と呼ぶこともできる。他のハードウェア314は、メモリ・サブシステムにより使用される他のメモリ関連のハードウェアを内蔵する。
【0017】
I/Oユニット310及び/または他のハードウェア314は、MMU312(またはそのいくつかの組み合わせ)とともに例示マネージャを具体化することができる。より詳細には、MMUは、全体としてまたはその一部として、例示マネージャを具体化することができる。
【0018】
図4は、MMU312の構成要素を示すブロック図である。MMU312は例示マネージャの実施形態の一部または全部を包含するするため、共通メモリサブシステム301のこの部分に注目することは妥当である。また、図4は、他のハードウェアの一部、特に背景エージェント370及び380も示す。
【0019】
共通メモリ316へのアクセスを得て読み出し/書き込みを行う際、エージェントは、I/Oユニット310を介してMMUに要求を送信する。これらの要求には、通常1つ以上のタスクが含まれる。このようなタスクは、メモリからの1回以上の読み出しとメモリへの1回以上の書き込みとを含む。
【0020】
<タスク及び要求>
本明細書に述べる例示マネージャでは、全体として3種類の要求がある。要求の種類は、そのタスクに基づいている。3種類のタスクは、「短期間・緊急(short-urgent)」「大量・緊急(large-urgent)」「大量・延期可能(large-postponable)」である。
【0021】
タスクの中には一般に短期間かつ緊急であるものがある(「短期間・緊急」タスク)。「短期間」とはそのタスクを迅速に実行可能であることを意味し、「緊急」とは、他の動作及び機能がそのタスクの結果を待ってから次に進むことを意味する。タスクの結果の待機によりプロセッサがストールする場合、そのタスクは緊急であるとみなされる。
【0022】
通常、このような「短期間・緊急」タスクを遅延または中断させると、コンピュータ・システムの性能全体に支障を及ぼす。このようなタスクの例はプロセッサからうける要求のほぼ全部であるが、これは、そのメモリ・アクセスの大部分が(コンピュータ・システムの性能全体にとって)迅速でありかつ重要であることによる。例えば、ユーザは結果が画面に現れるのを待っており、その結果を得るためにはプロセッサがメモリに高速アクセスしなければならないとする。その結果の表示が遅れると、コンピュータ・システムの性能に対するユーザの印象に影響を及ぼす。
【0023】
タスクの他の種類の1つは、大量かつ緊急であるものである(「大量・緊急」タスク)。「大量」とは、タスクが大量であるため実行が低速になりやすいことを意味する。通常、このようなタスクではDMAアクティビティをともない、プロセスまたは他のエージェントはその完了を待機している。従って、他の動作及び機能はそのタスクの結果を待ってから次に進む。
【0024】
通常、このような「大量・緊急」タスクを遅延または中断させると、コンピュータシステムの性能全体に支障を及ぼす。
【0025】
別の種類のタスクは、大量及び延期可能なものである(「大量・延期可能」タスク)。「延期可能」とは、タスクの結果を待っている他の動作または機能がほとんどないことを意味する。通常、これらのタスクでは、データをメモリにスワップ・イン/アウトするディスク管理やデータ管理などの「準備(ハウスキーピング)」の作業をともなう。
【0026】
通常、このような「大量・延期可能」タスクを遅延または中断させても、コンピュータ・システムの性能全体には全く影響を与えない。このようなタスクの例として、ディスク管理、データ管理、直ちに結果を必要としない一部のDMA転送、背景ディスクパリティ計算、データ移送、ディスクアレイにおけるデータの再構築、その他の準備作業がある。例えば、データ冗長のために1つのディスク・ドライブから別のドライブに大量のデータがコピーされているとする。ユーザは、背景(バックグラウンド)タスクが実行されていることを知らないことが多いので、このタスクが1分で終了しても、あるいは3時間で終了しても性能への影響はほとんど、あるいは全く現れない。
【0027】
<MMU>
図4はMMU312を示し、I/Oユニット310からの入力350を含む。優先度決定器(プライオリタイザ)352は、入力350を介して多数のエージェントからメモリ316にアクセスする要求を受け取る。その名称通り、優先度決定器は、要求に優先順位をつけ、これらの要求を2つの待ち行列、すなわち高優先度待ち行列354または低優先度待ち行列356の一方に送る。例示マネージャの他の実施形態では、3つ以上の待ち行列を含むことができる。
【0028】
優先度決定器352は、要求のタスクに基づいて各要求の優先度を決定する。「短期間・緊急」要求には高い優先度が与えられ、高優先度待ち行列354に送られる。「大量・緊急」要求及び「大量・延期可能」要求には低い優先度が与えられ、低優先度待ち行列356に送られる。「大量・緊急」要求は高優先度待ち行列に送るようにすることもできる。
【0029】
例示マネージャにおいて、優先度の決定は、アドレス指定されているメモリの範囲に基づいて行われる。所定の範囲がそれぞれの優先順位に割り当てられる。緊急の要求はすべて(「短期間・緊急」要求及び「大量・緊急」要求を含む)所定のメモリ空間において動作し、「大量・延期可能」要求は別の所定のメモリ空間において動作する。あるいは、それぞれの空間が他の空間と排他的な関係にある各メモリ空間において、「短期間・緊急」要求は第1のメモリ空間において動作し、「大量・緊急」要求は第2のメモリ空間において動作し、「大量・延期可能」要求は第3のメモリ空間において動作するとしてもよい。
【0030】
従って、優先度決定器352は、要求がアクセスしようとするメモリアドレスを調べて優先度を決定する。当業者であれば、他の技術を利用して優先度の決定を行ってもよいことを理解するであろう。例えば、要求の優先度を示す所定の要求とパラメータを結びつけてもよい。
【0031】
待ち行列−メモリハンドラ360は、待ち行列から要求を選択的に取り出し、出力362を介してこれらをメモリに送る。メモリが使用可能である場合、ハンドラ360はこの待ち行列の1つから要求をメモリに送信する。
【0032】
<待ち行列レベルに依存する背景要求提出>
図4は、「待ち行列レベルに依存する背景要求提出(サブミット)」要素を示す。これは、他のハードウェア314の一部と、待ち行列レベルモニタ365と、高優先度待ち行列モニタ線374と、低優先度待ち行列モニタ線384と、待ち行列レベル信号線392と、高優先度背景要求線376と、低優先度背景要求線386と、背景要求線394とを含む。
【0033】
当業者であれば、上記の線はそれぞれ多数の線から構成されることが理解されよう。さらに、当業者であれば、上記の線は1つ以上のバスと置き換え可能であることが理解されよう。
【0034】
代替的な実施形態では、1つの待ち行列のみを含み、従って上記要素を1組だけ含んでもよい。別の代替的な実施形態では、背景要求線394は、優先度決定器352を介さずに上記待ち行列の1つに直接送り込まれてもよい。
【0035】
これらの要素は、メモリアクセスの「仮想」の第3の待ち行列と同様に機能する。実際の待ち行列の代わりに、実際の待ち行列(354または356等)がしきい値レベルに到達すると、背景エージェント370及び/または380は、線376、386、394を介して背景タスクを提出する。しきい値レベルは、一般に固定され、一般にプログラム可能であり、タスク単位で選択可能であり、エージェント単位で選択可能であり、またはこれらのいくつかの組み合わせとすることができる。これらの背景タスクは、通常、背景エージェント370に対しては「大量・緊急」であり、背景エージェント380に対しては「大量・延期可能」である。
【0036】
この「仮想」の第3の待ち行列は以下のように動作する。待ち行列レベルモニタ365は、線374及び384を介して実際の待ち行列354及び356をそれぞれ監視する。モニタ365(または関連する回路)は、1つ以上の待ち行列レベル線392を通してバイナリ符号化された信号を送信する。この信号が待ち行列のトリガしきい値レベルを示す場合、背景エージェント(370及び380等)は、必要なレベルにあるその待ち行列に置かれるように、要求を提出する。このトリガしきい値レベルも、タスク、エージェント及び他の変数に応じて可変である。
【0037】
通常、背景エージェント380は「大量・延期可能」である背景タスクを実行するので、これらのタスクは低優先度待ち行列356に入れられる。また通常、背景エージェント370は「大量・緊急」である背景タスクを実行するため、これらのタスクは高優先度待ち行列354に入れられる。しかしながら、これら2つのエージェントのグループは重複する場合がある。換言すれば、いくつかのエージェントはグループ370及び380の一部である場合がある。
【0038】
<優先度及びプリエンプション>
高優先度待ち行列354に何らかの要求がある場合、ハンドラ360は、高優先度待ち行列にある全ての要求にメモリ316へのアクセスを与えた後に、低優先度待ち行列にある要求にアクセスを与える。換言すれば、ハンドラは、低優先度待ち行列の要求より高い優先度を高優先度待ち行列の要求に与える。このようにハンドラは、常に、「高速・緊急(quick-urgent)」要求には「大量・延期可能」要求より先にメモリへのアクセスを与える。従って、「高速・緊急」要求は1つ以上の「大量・延期可能」要求の後に待機していることはない。つまり、「高速・緊急」要求は、この要求がいつ到着するかにかかわらず、待機中のいかなる「大量・延期可能」要求より前に「列に飛び込む(jump in line)」。
【0039】
さらに、ハンドラは、低優先度の要求のメモリ・アクセスをプリエンプト(pre-empt:回避)して(すなわち割込みをかけて)、新たに到着した「高速・緊急」要求に対応する。例えば、高優先度待ち行列352が空であり、低優先度待ち行列356にあった「大量・延期可能」要求に基づいてメモリがアクセスされているとする。ハンドラは、(低優先度の要求に基づいた)進行中のアクセスに割込みをかけ、新たに到着した高優先度の要求にほぼ瞬時にアクセスを与える。高優先度待ち行列が再び空になると、低優先度の要求は再びメモリにアクセスする。
【0040】
より具体的に述べると、ハンドラは、低優先度の要求のメモリ・アクセスをプリエンプトするが、低優先度のアクセスに割込みをかけるための自然なポイントを待つ。通常、タスクには、サブタスクが完了する自然な中断点がある。さらに、うまくタスクに割込みをかけることができる自然なデータ境界(例えば、バースト境界)がある。
【0041】
<アウト・オブ・オーダー(out-of-order)優先度>
要求に高優先度または低優先度の優先順位をつけ、これらを適当な待ち行列(高優先度待ち行列354または低優先度待ち行列356)に入れることに加え、優先度決定器352は、これらの待ち行列内でさらに要求に優先順位をつけることができる。この場合、待ち行列の要求を、到着した順序とは「アウトオブオーダー(順不同)」で実行することができる。例えば、プロセスは通常、読み出し要求の結果を待機しているため、この要求が書き込み要求より前に実行されるように待ち行列の先頭まで押し出されることが多い。
【0042】
本明細書に記載の例示マネージャは、待ち行列レベル信号線によって示されるように、メモリがアイドル状態にあるとき、背景エージェントの背景タイプのタスクがメモリにアクセスする機構を提供する。
【0043】
MMU312の構成要素はすべてハードウェアベースである。同様に、共通メモリ・サブシステム301の構成要素はすべてハードウェアベースである。
【0044】
<ハードウェアベース>
MMU312は、特定用途向け集積回路(ASIC)形式のハードウェアベースのメモリ管理論理回路を含む。「ハードウェアベース」という用語の例は、プログラムメモリからの命令の検索や実行を行わない物理論理要素を少なくとも1つ含む。代わりに、この例示の物理論理要素は、信号及びデータを処理する専用の相互接続型論理素子を有する。このようなハードウェアベースの論理回路は、マイクロプロセッサまたは他の命令ベースのプロセッサに比べて柔軟性に劣るが、ハードウェアベースの論理回路は命令ベースの論理回路に比べてはるかに高速である。
【0045】
さらに、このようなハードウェアベースの論理回路は、割込みの受信に頼る必要がなく、またこのような割込みを解釈してタスクを実行する必要がないため、割り込み駆動型プロセッサに比べて高速である。従って、このようなハードウェアベースの論理回路は、クロックサイクル間(バスまたはプロセッサ用クロックサイクル等)の機能(メモリの管理等)を実行することが可能である。
【0046】
その通常の意味及び本明細書で提示する説明により、当業者は、「ハードウェアベース」の意味を理解するであろう。
【0047】
<例示マネージャの方法的実施>
図5は、MMU312(またはその一部)によって実行される例示マネージャの方法的実施を示す。この方法的実施は、1個以上のハードウェアベースのモジュールにより実行可能である。
【0048】
ステップ410において、MMUは、多数のエージェントからの要求の優先度を決定する。ステップ412において、MMUは、決定した要求の優先度に基づいて、上記要求を少なくとも2つある待ち行列の1つに送る。「短期間・緊急」要求は高優先度待ち行列に送られ、「大量・延期可能」要求及び「大量・緊急」要求は低優先度待ち行列に送られる。あるいは、「大量・緊急」要求を高優先度待ち行列に入れてもよい。その名称通り、高優先度待ち行列の要求は、低優先度待ち行列の要求に比べて優先度が高い。さらに、MMUは、これらの待ち行列の一方(または両方)にあるこれらの要求に優先順位をつけることができる。
【0049】
図5のステップ414において、MMUは、待ち行列レベルを監視して、これらの待ち行列に残っている要求の数(すなわち、残りの要求の濃度(cardinality))を決定する。MMUは、このレベルを背景エージェントに発信する。このエージェントは、待ち行列レベルが所定のしきい値(カスタマイズにより可変である)である場合には要求を提出(サブミット)する。
【0050】
ステップ416において、MMUは、これら待ち行列の要求にメモリアクセスを提供する。高優先度待ち行列の要求には、低優先度待ち行列の要求に先立ってアクセスを提供する。さらに、待ち行列レベルに依存する背景要求提出の測定により、MMUが上記待ち行列にある要求のためにメモリアクセスを考慮するレート(率)が決定される。
【0051】
さらに、MMUは、低優先度の要求のメモリアクセスをプリエンプトして(すなわち割込みをかけて)、新たに到着した「高速・緊急」要求に対応することができる。
【0052】
上記のステップの一部は同時に実行可能であり、また、上記のステップはメモリシステムが動作している間は繰り返される。
【0053】
本発明には例として以下の実施形態が含まれる。
【0054】
1.多数のエンティティが共有する共通メモリ(316)とともに使用されるハードウェアベースのメモリ管理システムであって、
前記メモリへのアクセスの要求を保持するように構成される少なくとも1つの要求待ち行列(354または356)と、
前記待ち行列の要求にメモリアクセスを提供するように構成される待ち行列・メモリハンドラ(360)と、
前記待ち行列に残っている要求の濃度を示す信号を生成するように構成される待ち行列レベル信号器(365)と、
を備えるシステム。
【0055】
2.前記信号は、前記多数のエンティティの少なくとも1つに対し、このようなエンティティが少なくとも1つの新たな要求を前記待ち行列に提出できることをさらに示す、上記1に記載のシステム。
【0056】
3.前記信号を受信して、前記待ち行列にある要求の前記濃度が定義されたしきい値であることを前記信号が示す場合に前記待ち行列に新たな要求を提出するように構成される背景エンティティ(370または380)をさらに備える、上記1に記載のシステム。
【0057】
4.前記信号を受信して、前記待ち行列にある要求の前記濃度が定義されたしきい値以下であることを前記信号が示す場合に前記待ち行列に新たな要求を提出するように構成される背景エンティティ(370または380)をさらに備える、上記1に記載のシステム。
【0058】
5.前記ハードウェアベースのメモリ管理システムは、特定用途向け集積回路(ASIC)の少なくとも一部として具体化される、上記1に記載のシステム。
【0059】
6.前記ハードウェアベースのメモリ管理システムは、特定用途向け集積回路(ASIC)の少なくとも一部として具体化される、上記4に記載のシステム。
【0060】
7.前記ハンドラは、要求を待ち行列に入れるレートから独立したレートで前記メモリへのアクセスを提供する、上記1に記載のシステム。
【0061】
8.多数のエンティティが共有する共通メモリへのアクセスを管理するように構成され、特定用途向け集積回路(ASIC)として具体化されるメモリ管理モジュールにおいて、
前記メモリにアクセスする要求を待ち行列に入れるステップ(412)と、
前記待ち行列の前記要求についてメモリアクセスを調停するステップ(416)と、
前記待ち行列に残っている前記要求の数を示す待ち行列レベル信号を生成するステップ(414)と、
を含む方法。
【0062】
9.前記信号は、前記多数のエンティティの少なくとも1つに対し、このようなエンティティが少なくとも1つの新たな要求を前記待ち行列に提出できることを示す、上記8に記載の方法。
【0063】
10.前記調停ステップは、要求を待ち行列に入れるレートから独立したレートで前記メモリへのアクセスを調停することを含む、上記8に記載の方法。
【図面の簡単な説明】
【図1】共通メモリサブシステムを共有するエージェントを有する典型的なコンピュータシステムの一部を示すブロック図である。
【図2】典型的な共通メモリサブシステム及びその構成要素を示すブロック図である。
【図3】本発明の実施形態の一例である共通メモリサブシステム及びその構成要素を示すブロック図である。
【図4】共通メモリサブシステムのメモリ管理ユニット(MMU)を示すブロック図と、メモリシステムの他のハードウェアの一部を示すブロック図である。
【図5】本発明の方法の一例を示すフロー図である。
【符号の説明】
316 共通メモリ
354 要求待ち行列(高優先度待ち行列)
356 要求待ち行列(低優先度待ち行列)
360 待ち行列・メモリハンドラ
365 待ち行列レベル信号器
370 背景エンティティ(背景エージェント)
380 背景エンティティ(背景エージェント)

Claims (6)

  1. 複数のエンティティが共有する共通一次メモリと共に使用されるハードウェアベースのメモリ管理システムであって、該複数のエンティティのそれぞれは、該共通一次メモリへのアクセスを要求するよう構成されており、
    前記複数のエンティティから、前記共通一次メモリにアクセスするための要求を受け取って、該要求を保持するようそれぞれが構成される少なくとも2つの要求待ち行列と、
    前記要求の優先度を決定して、該決定された優先度に従って、該要求を前記要求待ち行列のうちの1つに送る優先度決定器であって、該要求待ち行列のうちの第2の待ち行列に送られる要求よりも通常では高速に処理されるべき要求を、該要求待ち行列のうちの第1の待ち行列に送る、優先度決定器と、
    前記要求待ち行列における前記要求に、メモリアクセスを提供するよう構成される待ち行列・メモリハンドラと、
    前記要求待ち行列に残っている要求の濃度を求め、該求めた濃度を示す信号を生成するよう構成される待ち行列レベル信号器と、
    を備えるシステム。
  2. 前記信号は、さらに、前記複数のエンティティの少なくとも1つに対し、該エンティティが少なくとも1つの新たな要求を前記要求待ち行列に提出することができることを示す、
    請求項1に記載のシステム。
  3. 前記信号を受け取り、該信号が、前記要求待ち行列にある要求の前記濃度が、定義されたしきい値以下であることを示すとき、該要求待ち行列に新たな要求を提出するよう構成されるバックグラウンド・エンティティをさらに備える、
    請求項1に記載のシステム。
  4. 複数のエンティティが共有する共通一次メモリへのアクセスを管理するように構成され、特定用途向け集積回路(ASIC)として具体化されるメモリ管理モジュールによって実施される方法であって、該複数のエンティティのそれぞれは、前記共通一次メモリへのアクセスを要求するよう構成されており、
    前記複数のエンティティから受け取られた、前記共通一次メモリにアクセスするための要求を、第1の待ち行列または第2の待ち行列のいずれかに入れるステップと、
    前記待ち行列の前記要求について、前記共通一次メモリのアクセスを調停するステップと、
    前記要求の優先度を決定して、該決定した優先度に従って、該要求を前記第1および第2の待ち行列のいずれかに送るステップであって、該第2の待ち行列に送る要求よりも通常では高速に処理すべき要求を該第1の待ち行列に送る、ステップと、
    前記第1および第2の少なくとも一方に残っている前記要求の数を求めるステップと、
    前記第1および第2の少なくとも一方に残っている前記要求の前記数を示す待ち行列レベル信号を生成するステップと、
    を含む方法。
  5. 前記信号は、前記複数のエンティティの少なくとも1つに対し、該エンティティが少なくとも1つの新たな要求を前記待ち行列に提出することができることを示す、
    請求項4に記載の方法。
  6. 調停する前記ステップは、さらに、
    前記要求が待ち行列に入れられるレートから独立したレートで、前記共通一次メモリへのアクセスを調停することを含む、
    請求項4に記載の方法。
JP2002008925A 2001-03-14 2002-01-17 共通メモリのメモリ管理システム Expired - Fee Related JP4034969B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/808,711 US6799254B2 (en) 2001-03-14 2001-03-14 Memory manager for a common memory
US09/808,711 2001-03-14

Publications (3)

Publication Number Publication Date
JP2002278827A JP2002278827A (ja) 2002-09-27
JP2002278827A5 JP2002278827A5 (ja) 2005-07-21
JP4034969B2 true JP4034969B2 (ja) 2008-01-16

Family

ID=25199497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002008925A Expired - Fee Related JP4034969B2 (ja) 2001-03-14 2002-01-17 共通メモリのメモリ管理システム

Country Status (4)

Country Link
US (2) US6799254B2 (ja)
EP (1) EP1241580B1 (ja)
JP (1) JP4034969B2 (ja)
DE (1) DE60225201D1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272848B1 (en) 2001-02-13 2007-09-18 Network Appliance, Inc. Method for device security in a heterogeneous storage network environment
JP2003114825A (ja) * 2001-10-04 2003-04-18 Hitachi Ltd メモリ制御方法、その制御方法を用いたメモリ制御回路、及びそのメモリ制御回路を搭載する集積回路
US8966081B1 (en) 2002-02-13 2015-02-24 Netapp, Inc. Method for device security in a heterogeneous storage network environment
US7085866B1 (en) * 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7043582B2 (en) * 2002-09-06 2006-05-09 Intel Corporation Self-nesting interrupts
US6996645B1 (en) * 2002-12-27 2006-02-07 Unisys Corporation Method and apparatus for spawning multiple requests from a single entry of a queue
US7546475B2 (en) * 2003-05-13 2009-06-09 Hewlett-Packard Development Company, L.P. Power-aware adaptation in a data center
TWI256555B (en) * 2003-12-12 2006-06-11 Via Tech Inc An apparatus and a method of request priority queue arbitration
US7302546B2 (en) 2004-01-09 2007-11-27 International Business Machines Corporation Method, system, and article of manufacture for reserving memory
JP4624715B2 (ja) * 2004-05-13 2011-02-02 ルネサスエレクトロニクス株式会社 システムlsi
JP2005339299A (ja) * 2004-05-28 2005-12-08 Hitachi Ltd ストレージ装置のキャッシュ制御方法
US7417637B1 (en) * 2004-09-01 2008-08-26 Nvidia Corporation Fairly arbitrating between clients
US20060064535A1 (en) * 2004-09-22 2006-03-23 Walker Robert M Efficient multi-bank memory queuing system
US8990377B2 (en) * 2004-12-06 2015-03-24 International Business Machines Corporation Method to effectively collect data from systems that consists of dynamic sub-systems
US7713330B2 (en) * 2004-12-22 2010-05-11 Oreck Holdings, Llc Tower ionizer air cleaner
US7631132B1 (en) * 2004-12-27 2009-12-08 Unisys Corporation Method and apparatus for prioritized transaction queuing
US7356631B2 (en) * 2005-01-21 2008-04-08 Himax Technologies, Inc. Apparatus and method for scheduling requests to source device in a memory access system
US7543119B2 (en) * 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US7673111B2 (en) 2005-12-23 2010-03-02 Intel Corporation Memory system with both single and consolidated commands
US20070156955A1 (en) * 2005-12-30 2007-07-05 Royer Robert J Jr Method and apparatus for queuing disk drive access requests
KR20070108432A (ko) * 2006-01-23 2007-11-12 엘지전자 주식회사 장치관리 스케줄링 방법
JP4142068B2 (ja) 2006-06-16 2008-08-27 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびアクセス制御方法
US7555621B1 (en) * 2006-08-01 2009-06-30 Kaspersky Lab, Zao Disk access antiblocking system and method
US20080282245A1 (en) * 2007-05-08 2008-11-13 International Business Machines Corporation Media Operational Queue Management in Storage Systems
JP4353990B2 (ja) * 2007-05-18 2009-10-28 株式会社半導体理工学研究センター マルチプロセッサ制御装置
TWI352931B (en) * 2007-06-20 2011-11-21 Ind Tech Res Inst Resource management device and method
US8341314B2 (en) * 2009-06-30 2012-12-25 Hewlett-Packard Development Company, L.P. Managing I/O request in storage system
US8635409B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Dynamic mode transitions for cache instructions
US8639887B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Dynamically altering a pipeline controller mode based on resource availability
US9104491B2 (en) * 2012-02-21 2015-08-11 Disney Enterprises, Inc. Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources
US20150019731A1 (en) * 2012-04-23 2015-01-15 Google Inc. Fair Hierarchical Arbitration Of a Shared Resource With Varying Traffic Intensity

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253352A (en) * 1989-11-13 1993-10-12 Zenith Data Systems Corporation Method and apparatus for pipelining cache accesses using anticipatory initiation of cache read
US5278984A (en) * 1990-12-19 1994-01-11 Bull Hn Information Systems Inc. Method for managing requests by specifying time intervals for transmitting a minimum number of messages for specific destinations and priority levels
US5588134A (en) * 1992-09-25 1996-12-24 Amdahl Corporation System for establishing priority among selected tasks based on location of tasks and sequence that the tasks were stored whereas task is always stored in location with the lowest available address
US5548795A (en) * 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
US5603063A (en) * 1994-06-27 1997-02-11 Quantum Corporation Disk drive command queuing method using two memory devices for storing two types of commands separately first before queuing commands in the second memory device
US20030037096A1 (en) * 1995-04-07 2003-02-20 Ruey Kao Method and apparatus for the management of queue pointers by multiple processors in a digital communications network
US5796735A (en) * 1995-08-28 1998-08-18 Integrated Device Technology, Inc. System and method for transmission rate control in a segmentation and reassembly (SAR) circuit under ATM protocol
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
US5754776A (en) * 1995-12-28 1998-05-19 Intel Corporation Re-prioritizing background data transfers in multipoint conferencing
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US5748901A (en) * 1996-05-21 1998-05-05 Ramot University Authority Ltd. Flow control algorithm for high speed networks
US5924110A (en) * 1996-12-06 1999-07-13 Ncr Corporation Multischeme memory management system for computer
US6341301B1 (en) * 1997-01-10 2002-01-22 Lsi Logic Corporation Exclusive multiple queue handling using a common processing algorithm
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6209065B1 (en) * 1997-10-24 2001-03-27 Compaq Computer Corporation Mechanism for optimizing generation of commit-signals in a distributed shared-memory system
GB2332289A (en) * 1997-12-11 1999-06-16 Ibm Handling processor-intensive data processing operations
US6279087B1 (en) * 1997-12-22 2001-08-21 Compaq Computer Corporation System and method for maintaining coherency and improving performance in a bus bridge supporting write posting operations
US5948081A (en) 1997-12-22 1999-09-07 Compaq Computer Corporation System for flushing queued memory write request corresponding to a queued read request and all prior write requests with counter indicating requests to be flushed
US6240492B1 (en) * 1998-05-22 2001-05-29 International Business Machines Corporation Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests
US6272584B1 (en) * 1998-09-10 2001-08-07 Compaq Computer Corporation System board with consolidated EEPROM module
US6175889B1 (en) * 1998-10-21 2001-01-16 Compaq Computer Corporation Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number
GB9909196D0 (en) * 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6317806B1 (en) * 1999-05-20 2001-11-13 International Business Machines Corporation Static queue and index queue for storing values identifying static queue locations
US6434641B1 (en) * 1999-05-28 2002-08-13 Unisys Corporation System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme
US6633565B1 (en) * 1999-06-29 2003-10-14 3Com Corporation Apparatus for and method of flow switching in a data communications network
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching

Also Published As

Publication number Publication date
US20040243771A1 (en) 2004-12-02
DE60225201D1 (de) 2008-04-10
EP1241580A2 (en) 2002-09-18
US6950912B2 (en) 2005-09-27
US20020133676A1 (en) 2002-09-19
US6799254B2 (en) 2004-09-28
JP2002278827A (ja) 2002-09-27
EP1241580B1 (en) 2008-02-27
EP1241580A3 (en) 2003-10-29

Similar Documents

Publication Publication Date Title
JP4034969B2 (ja) 共通メモリのメモリ管理システム
EP0644487B1 (en) Scalable system interrupt structure for a multiprocessing system
JP3699833B2 (ja) メモリアーキテクチャーのための優先符号化及び復号化
KR100422781B1 (ko) 통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치
EP0732659B1 (en) Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment
US6141715A (en) Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
US8060679B2 (en) Information processing apparatus and access control method capable of high-speed data access
EP1645967A1 (en) Multi-channel DMA with shared FIFO buffer
JP5498505B2 (ja) データバースト間の競合の解決
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
US7617344B2 (en) Methods and apparatus for controlling access to resources in an information processing system
JP2004531830A (ja) キャッシュメモリバーストサイクル中にバスアービトレーションを制御するためのシステム及び方法
JP4184614B2 (ja) バスシステム及びその実行順序の調整方法
CN109002408B (zh) 总线仲裁方法和系统
US4855899A (en) Multiple I/O bus virtual broadcast of programmed I/O instructions
US8141077B2 (en) System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
JP2006268753A (ja) Dma回路及びコンピュータシステム
US8090801B1 (en) Methods and apparatus for performing remote access commands between nodes
US6915516B1 (en) Apparatus and method for process dispatching between individual processors of a multi-processor system
US10713188B2 (en) Inter-process signaling system and method
KR100451722B1 (ko) 직접 메모리 액세스 제어 장치
JPH01305461A (ja) バス使用権制御方式
JP3206656B2 (ja) バス上でのプリフェッチ装置およびプリフェッチ方法
JPH0844661A (ja) 情報処理装置
Deshmukh et al. Comparison of Open Source RTOSs Using Various Performance Parameters

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070320

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070612

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070918

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: 20071016

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071026

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

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4034969

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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