JP5058167B2 - メモリアクセス要求の遅延アービトレーション - Google Patents

メモリアクセス要求の遅延アービトレーション Download PDF

Info

Publication number
JP5058167B2
JP5058167B2 JP2008530073A JP2008530073A JP5058167B2 JP 5058167 B2 JP5058167 B2 JP 5058167B2 JP 2008530073 A JP2008530073 A JP 2008530073A JP 2008530073 A JP2008530073 A JP 2008530073A JP 5058167 B2 JP5058167 B2 JP 5058167B2
Authority
JP
Japan
Prior art keywords
memory access
memory
access request
memory controller
signal
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.)
Active
Application number
JP2008530073A
Other languages
English (en)
Other versions
JP2009508215A5 (ja
JP2009508215A (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2009508215A publication Critical patent/JP2009508215A/ja
Publication of JP2009508215A5 publication Critical patent/JP2009508215A5/ja
Application granted granted Critical
Publication of JP5058167B2 publication Critical patent/JP5058167B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • 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
    • 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)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

本発明は、一般に、メモリアクセス要求の処理に関する。
処理システムでは、メモリにデータを記録したり、あるいはメモリのデータにアクセスしようとしているデバイスに対し、メモリ資源へのアクセスを制御するために、メモリコントローラが用いられていることが多い。従来のシステムでは、メモリコントローラがメモリアクセス要求を受け取り可能となった直後に、メモリコントローラにメモリアクセス要求が提供される。通常、メモリコントローラは、このメモリアクセス要求をバッファして、バッファしたメモリアクセス要求を、割り当てられた所定の優先度に基づいて処理する。
しかし、従来の方法では、メモリコントローラ次のメモリアクセス要求をバッファまたは処理できるようになった直後に、メモリコントローラにメモリアクセス要求をディスパッチする。このため、メモリコントローラが、次のメモリアクセス要求を受け取れるようになった後に、優先度の高い特定のメモリアクセス要求が選択可能となると、この優先度の高いメモリアクセス要求が、最も効率的な方法で処理されるとは限らなくなる。例を挙げると、メモリコントローラにおける次の要求を受け取るという能力に起因して、優先度の低いメモリアクセス要求がディスパッチされた直後に優先度の高いメモリアクセス要求を受け取った場合には、メモリコントローラが、次のメモリアクセス要求を再び受け取れるようになるまで、優先度の高いメモリアクセス要求の処理が遅れることがある。
したがって、メモリアクセス要求を処理するための改良された方法が有利となる。
以下の説明は、メモリアクセス要求のアービトレーションに関する多数の特定の実施形態および詳細を提供することによって、本開示を完全に理解できることを目的とする。しかし、本開示がこれらの特定の実施形態や詳細に制限されることはなく、これらは例示に過ぎないことが理解される。当業者が、既知のシステムおよび方法に鑑みて、特定の設計やその他の要求に従って、意図した目的のために本開示の使用を評価して、いかなる数の別の実施形態において利益を得ることも更に理解される。
本開示の一態様によれば、メモリアクセス要求の遅延アービトレーションのための方法は、メモリコントローラに第1のメモリアクセス要求をディスパッチするステップと、前記第1のメモリアクセス要求によって表されるメモリアクセスオペレーションの完了を予測したことに応答して、前記メモリコントローラに第2のメモリアクセス要求をディスパッチするステップと、を有する。
本開示の別の態様によれば、第1の時点において、バスインタフェースユニットで第1のメモリアクセス要求を受け取るステップと、前記第1の時点の後の第2の時点において、メモリコントローラに第2のメモリアクセス要求をディスパッチするステップと、前記第2の時点の後の第3の時点において、前記バスインタフェースユニットで第3のメモリアクセス要求を受け取るステップと、前記第3の時点の後の第4の時点において、前記メモリコントローラに前記第3のメモリアクセス要求をディスパッチするステップと、前記第4の時点の後の第5の時点において、前記メモリコントローラに前記第1のメモリアクセス要求をディスパッチするステップと、を有する方法が提供される。
本開示の追加の態様によれば、メモリに結合され、メモリアクセス要求を処理するためのメモリコントローラと、前記メモリコントローラに結合されたバスインタフェースユニットと、を有するシステムが提供される。一実施形態では、前記バスインタフェースユニットは、1つ以上のメモリアクセス要求を記憶するためのバッファと、メモリアクセス要求を受け取るために前記バッファに結合された第1の入力、および前記メモリコントローラから信号を受け取る第2の入力を有するアービタと、を有し、前記アービタは、前記信号に応答して、前記メモリコントローラにディスパッチするために第2のメモリアクセス要求を選択する。前記メモリコントローラは、前記メモリコントローラに既にディスパッチされている第1のメモリアクセス要求が示すメモリアクセスオペレーションの完了が予測されると、前記信号を提供する。
本開示の目的および利点は、添付の図面と併せて読めば、以下の詳細な説明から、当業者にとって明らかであろう。添付の図面では、同じ要素を示すのに同じ参照符号を使用する。
ここで図1を参照すると、本開示の少なくとも1つの実施形態によって、メモリアクセス要求の遅延ディスパッチを利用する例示的な処理システム100が示されている。図に示した例では、システム100は、メモリコントローラ102、メモリ104(DRAMやSRAMなど)、バスインタフェースユニット106、およびBIU106に接続された、例えば中央処理装置(CPU)108、グラフィックエンジン110、1つ以上のダイレクトメモリアクセス(DMA)マスタ112などの1つ以上の部品を備える。DMAマスタ112は、1つ以上のデバイス114,116に接続されうる。一実施形態では、メモリコントローラ102は、キューのエントリを1つ以上(例えば、キューのエントリ122,124)含むメモリアクセス要求キュー120、セレクタ126、およびスケジュールマネージャ128を備える。一実施形態では、BIU106は、アービタ130と、BIU106に接続されたデバイス(CPU108、グラフィックエンジン110、およびDMAマスタ112など)からのメモリアクセス要求をバッファするためのメモリアクセス要求キュー132とを備える。一実施形態では、アービタ130は、スケジュールマネージャ128またはメモリコントローラ102のその他の部品によって提供されるdispatch_req信号134に応答する。
動作時に、BIU106は、BIU106に接続されたデバイスの1つ以上からメモリアクセス要求を受け取り、このメモリアクセス要求をキュー132にバッファする。アービタ130は、メモリアクセス要求に割り当てられた優先度、あるいはBIU106でメモリアクセス要求を受け取った順などのさまざまな特徴に基づいて、キュー132から、処理するメモリアクセス要求を選択し、これをメモリコントローラ102にディスパッチする。キュー120にバッファされたメモリアクセス要求は、順に処理されることもあれば、優先度や、スケジューリングマネージャ128によって決定されたスケジュールなどのメモリアクセス要求の特定の特徴に基づいて、(セレクタ126を使用して)アウトオブオーダーで処理されうる。スケジュールマネージャ128は、選択されたメモリアクセス要求を受けると、この選択されたメモリアクセス要求を処理して、選択されたメモリアクセス要求が示すメモリアクセスオペレーションを実行する。メモリアクセスオペレーションには、例えば、メモリ104にデータを書き込むライトオペレーションや、メモリ104からデータを読み出すリードオペレーションなどがある。
スケジュールマネージャ128が、選択されたメモリアクセス要求の処理を開始すると、メモリコントローラ102は、処理されようとしている、選択されたメモリアクセス要求がなくなって空になったキューのエントリ122,124の1つから、あるいはセレクタ126を介して直接BIU106から、別のメモリアクセス要求を受け取れるようになる。しかし、一実施形態では、スケジュールマネージャ128は、メモリコントローラ102が、BIU106から次のメモリアクセス要求を受け取ることができるようになった直後に、ディスパッチする次のメモリアクセス要求をアービタ130に選択させるのではなく、メモリ104を使用して現在処理されているメモリアクセスオペレーションの完了に近づくまで(すなわち、メモリアクセスオペレーションの完了が予測されるまで)、次のメモリアクセス要求をアービタ130に合図するのを遅らせる。
スケジュールマネージャ128は、現在のメモリアクセスオペレーションの完了が近いと判定すると、dispatch_req信号134をアサートして、メモリコントローラ102に次のメモリアクセス要求をディスパッチするように、アービタ130に合図する。アービタ130は、信号134に応答して、優先度やタイムスタンプ等の1つ以上の特徴に基づいてキュー132からメモリアクセス要求を選択して、一時的にバッファしてから処理するために、選択されたメモリアクセス要求をメモリコントローラ102にディスパッチする。このため、図1の処理システム100は、従来のシステムが実施しているように、メモリコントローラ102にメモリアクセス要求の空きができると直ちに、メモリアクセス要求をディスパッチするようにアービタ130に指示する代わりに、遅延させたアービトレーション法を実装している。これにより、メモリコントローラにディスパッチされる次のメモリアクセス要求が、メモリアクセス要求を選択すべきほぼ直前の時点まで選択されない。この結果、メモリコントローラ102が、メモリアクセス要求を受け取り可能となった最初の時点の後に、BIU106が受け取る優先度の高いメモリアクセス要求が、アービタ130によって選択されて、メモリコントローラ102にディスパッチされるようになり、システム100の効率が向上する。
スケジュールマネージャ128は、さまざまな方法を使用して、メモリアクセス要求をディスパッチするようにアービタ130に合図するために、メモリアクセスオペレーションの完了が予測されることを判定することができる。一実施形態では、メモリアクセスオペレーションの完了の予測は、メモリ104とメモリコントローラ102との間の信号伝達によって行うことができる。例えば、リードアクセスオペレーション中に、メモリ104は、次のクロックサイクル中にデータがラッチされるように、メモリコントローラ102とメモリ104との間を接続しているバス線において、要求されたデータが利用可能であることを示す信号を、メモリコントローラ102に提供しうる。したがって、この例では、メモリコントローラ102は、メモリ104からこの信号を受けるとdispatch_req信号134をアサートして、次のメモリアクセス要求のディスパッチを開始するようにアービタ130に合図しうる。別例では、メモリアクセスオペレーションにはライトアクセスオペレーションが含まれており、信号伝達には、メモリコントローラへのまたはメモリへの信号であって、メモリコントローラ102とメモリ104との間を接続しているバスに書込データが出力中であることを示す信号が含まれる。メモリ104は、これに応答して、次のサイクル中にこのデータをラッチしうる。この例では、スケジュールマネージャ128が、メモリ104に、あるいはメモリ104からメモリコントローラ102に提供される、書込データが利用可能であるという信号がアサートされると、信号134をアサートすることができる。
別の実施形態では、メモリコントローラ102によって処理されたメモリアクセスオペレーションの一部またはその全てが、所定の期間行われ得る。例えば、メモリコントローラ102は、特定のタイプのリードアクセスオペレーションが、決まったクロックサイクルを要することを認識していてもよい。したがって、このようなリードアクセスオペレーションの完了の予測は、メモリアクセスオペレーションの実際の完了が予測される前の所定の期間で表すことができる。例えば、メモリアクセスオペレーションが8クロックサイクルを要することがわかっている場合、このメモリアクセスオペレーションの完了の予測は、例えば、7番目のクロックサイクルで発生し、この時点で、スケジュールマネージャ128は、dispatch_req信号134をアサートして、メモリコントローラ102に次のメモリアクセス要求をディスパッチするように、アービタ130に合図しうる。
図2を参照すると、本開示の少なくとも1つの実施形態による、遅延させたメモリアクセス要求をメモリコントローラにディスパッチするための例示的な方法200が示されている。この方法200はブロック202から開始し、メモリコントローラ102が、BIU106から受け取った選択されたメモリアクセス要求によって表される、メモリ104へのメモリアクセスオペレーションを開始する。ブロック204において、スケジュールマネージャ128はこのメモリアクセスオペレーションをモニタして、スケジュールマネージャ128が、現在のメモリアクセスオペレーションの予測された完了時点が識別されたことに応答して、ブロック206において、スケジュールマネージャ128は、dispatch_req信号134をアサートするか、あるいは別の方法によって、BIU106から次のメモリアクセス要求のディスパッチを開始するように、アービタ130に合図する。ブロック208において、アービタ130は、アサートされたdispatch_req信号134を受け取る。これに応答して、ブロック210において、アービタ130は、メモリコントローラ102にディスパッチするために、キュー132からメモリアクセス要求を選択する。上記のように、アービタ130は、例えば、BIU106でメモリアクセス要求を受け取った優先度順などさまざまな特徴に基づいて次のメモリアクセス要求を選択しうる。ブロック212において、アービタ130は、選択したメモリアクセス要求をメモリコントローラ102にディスパッチする。ブロック214において、ディスパッチされたメモリアクセス要求が、メモリコントローラ102で受信され、このメモリアクセス要求キュー120にバッファされるか、あるいは、即時に処理するために、セレクタ126を使用してスケジュールマネージャ128に直接提供される。このセレクタは、スケジュールマネージャ128またはメモリコントローラ102の他の部品によって制御されうる。
図3,4を参照すると、本開示の少なくとも1つの実施形態による、図1のシステムでの図2の方法の例示的な実装が示されている。図3は、BIU106でのメモリアクセス要求の受信を示すシーケンス302、メモリコントローラにメモリアクセス要求をディスパッチする従来の方法を示すシーケンス304、および本開示の少なくとも1つの実施形態によるメモリコントローラ102にメモリ要求をディスパッチする方法を示すシーケンス306を有するタイミングチャート300である。また、図3は、アービタ130によって保持される、メモリコントローラ102にディスパッチするメモリアクセス要求を選択する際にアービタ130によって使用されうる例示的な特徴図310も示している。図4は、従来のディスパッチシーケンス304と、遅延ディスパッチシーケンス306の両方について、タイミングチャート300のさまざまな時点における、メモリコントローラ102のキュー120の状態の例を示している。説明を簡単にするために、メモリコントローラ102によって、その後に処理されるために、キュー120の2つのキューエントリ122,124からメモリアクセス要求が取得されると仮定する。
シーケンス302は、BIU106でのメモリアクセス要求R1〜R4の受信を示している。図に示すように、メモリアクセス要求R1とR2は、時点Aの前に受信され、メモリアクセス要求R3とR4は時点Aと時点Bの間に受信される。図示はされていないが、BIU106でメモリアクセス要求R1が受信される前に、要求R0とR6が受信されていると仮定する。図310が示すように、メモリアクセス要求R6とR0の優先度は1であり、メモリアクセス要求R1の優先度は2であり、メモリアクセス要求R2の優先度は3であり、メモリアクセス要求R3の優先度は0であり、メモリアクセス要求R4の優先度は1である。この場合、優先度0は最も優先度が高く、優先度3は最も優先度が低い。タイミングチャート300では、時点A,B,Cは、メモリコントローラ102において、メモリコントローラ102が、メモリアクセス要求が示すメモリアクセスオペレーションの処理を開始する時点であり、このため、第1のメモリコントローラ102がBIU106から別のメモリアクセス要求を受け取れるようになる時点である。時点A’,B’,C’は、スケジュールマネージャ128が、処理中のメモリアクセスオペレーションの予測される完了時点を同定する時点をそれぞれ示している。
上記したように、従来のメモリディスパッチ法は、メモリコントローラが別のメモリアクセス要求を受け取れるようになった直後に、メモリコントローラにメモリアクセス要求がディスパッチされるように実装されている。この従来の方法を示すシーケンス304が示すように、時点Aの直後に、この時点でBIUにバッファされている最も優先度が高いメモリアクセス要求(この例ではメモリアクセス要求R1)が、処理のためメモリコントローラにディスパッチされる。同様に、時点Bで、従来の方法のメモリコントローラで再び空きが生じると、従来のディスパッチシーケンス304は、時点Bでバッファされている最も優先度が高いメモリアクセス要求(この場合はメモリアクセス要求R3)がディスパッチのために選択されることを示している。しかし、上記のように、ディスパッチシーケンス304が示すこの従来の方法は、多くの場合、メモリアクセス要求のスケジューリングの効率がさほど高くない。例えば、メモリアクセス要求R3は、CPU108(図1)からの優先度の高いメモリアクセス要求であるが、メモリアクセス要求R1とR2は、例えば、DMAマスタ112に接続されるデバイスからの優先度の低いメモリアクセス要求であるとする。従来のディスパッチシーケンス304では、(メモリアクセス要求R3はメモリアクセス要求R1よりも優先度が高いにもかかわらず)、メモリ要求R3がディスパッチおよび処理される前に、メモリアクセス要求R1がディスパッチされて、メモリコントローラ102で処理される。これは、メモリコントローラが、バスインタフェースユニットからメモリアクセス要求を受け取れるように最初になった時点Aの後のある時点で、メモリアクセス要求R3が受信されて、受け取りが後になったために、ディスパッチのために選択できなかったからである。
これに対して、図2の方法200の例示的な実装を示すディスパッチシーケンス306は、メモリコントローラ102でメモリアクセス要求のアービトレーションと選択を可能なほぼ最後の時点まで(メモリコントローラ102によって実行されているメモリアクセスオペレーションの完了の予測によって示すことができる)遅らせることによって、メモリアクセス要求のより有効なアービトレーションを実現することができる。例を挙げると、スケジュールマネージャ128は、時点A’において、現在処理中のメモリアクセスオペレーションの完了が近いと判定する。これに応答して、スケジュールマネージャ128は、dispatch_req信号134をアサートし、これをアービタ130が受け取る。信号134がアサートされると、アービタ130は、キュー130内のその時点で利用可能なメモリアクセス要求(すなわち、メモリアクセス要求R6とR0)から選択する。この場合、メモリアクセス要求R0はメモリアクセス要求R6よりも優先度が高いため、アービタ130によって、メモリコントローラ102にディスパッチするために選択される。シーケンス306は、時点Aまで進み、この時点で、メモリコントローラ102は、現在のメモリアクセスオペレーションを完了するが、従来の方法と異なり、メモリコントローラ102が、別のメモリアクセス要求を受け取れるようになっても、スケジュールマネージャ128が、次のメモリアクセス要求を合図しない。その代わり、スケジュールマネージャ128は、時点B’で、次のメモリアクセスオペレーションの完了が予測されるまで待機し、その時点で、信号134をアサートする。時点B’で信号134がアサートされると、アービタは、メモリコントローラ102にディスパッチする次のメモリアクセス要求を選択する。シーケンス302に示すように、メモリコントローラ102が、次のメモリアクセス要求を受け取れるように最初になった時点Aと、メモリコントローラ102で現在のメモリアクセスオペレーションの完了が近い時点Bとの間に遅れがあるため、BIU106が優先度の高いメモリアクセス要求R3を受け取ることが可能となる。したがって、時点B’で信号134がアサートされると、アービタ130は、キュー132でメモリアクセス要求R3を利用可能であり、これが、キュー132で優先度が最も高い要求であるため、アービタ130は、時点B’の後に、メモリコントローラ102にディスパッチするためにメモリアクセス要求R3を選択する。同様に、時点Cでメモリコントローラ102によって実行されているメモリアクセスオペレーションの完了が近くなると、スケジュールマネージャ128は信号134をアサートし、これに対して、アービタ130はメモリコントローラ102にディスパッチするためにメモリアクセス要求R1を選択する。
図4が示すように、メモリアクセス要求の遅延させた選択とディスパッチの結果、一般に、メモリコントローラ102でのメモリアクセス要求のスケジューリングの効率が向上する。例を挙げると、従来のディスパッチシーケンス304の時点Bにおいて、メモリコントローラは、処理するメモリアクセス要求をキューから選択する。メモリアクセスキューの状態402が示すように、従来の方法を利用しているメモリコントローラは、時点Bで、キューにメモリアクセス要求R1とR0を有しており、通常は、メモリアクセス要求R0のほうが優先度が高いため、処理のために選択される。その後、従来の方法を利用しているメモリコントローラのメモリアクセス要求キューにはメモリアクセス要求R1とR3が含まれており、通常は、メモリアクセス要求R3が優先度が最も高いため選択される。これに対して、メモリアクセスキューの状態404が示すように、ここに開示したメモリアクセス要求の遅延ディスパッチ法を利用しているメモリコントローラ102は、時点Bで、キュー120にメモリアクセス要求R3を有しており、通常は、メモリアクセス要求R3が処理のために選択され、時点Cで、キュー120にはメモリアクセス要求R1とR0が含まれており、通常は、メモリアクセス要求R0が処理のために選択される。したがって、図3,4に示すように、ここに開示したメモリアクセス要求の遅延ディスパッチ法の結果、優先度の最も高いメモリアクセス要求R3が、従来のディスパッチ法を利用した処理システムよりも先に処理されるようになる。このため、ここに開示したメモリアクセス要求の遅延ディスパッチ法によって、メモリアクセス要求の順序付けが、従来の方法と比較して効率的となり、これにより、メモリコントローラがメモリアクセス要求を受け取れるようになった直後に、メモリアクセス要求がディスパッチされるようになる。
本開示の他の実施形態、使用および利点は、ここに開示した開示の詳細と実施を鑑みて、当業者にとって明らかとなるであろう。明細書ならびに図面は例に過ぎず、したがって、本開示の範囲は、添付の特許請求の範囲とその均等物によってのみ制限されることが意図されるべきである。
本開示の少なくとも1つの実施形態によるメモリアクセス要求の遅延ディスパッチ法を使用する例示的な処理システムを示すブロック図である。 本開示の少なくとも1つの実施形態によるメモリアクセス要求の遅延ディスパッチのための例示的な方法を示すフローチャートである。 本開示の少なくとも1つの実施形態による図2の方法の例示的な実装を示すタイミングチャートおよび優先度チャートである。 本開示の少なくとも1つの実施形態による図3のタイミングチャートに対応するメモリコントローラキューの状態の例を示す図である。

Claims (10)

  1. メモリコントローラ(102)に第1のメモリアクセス要求をディスパッチするステップと、
    前記第1のメモリアクセス要求によって表されるメモリアクセスオペレーションの完了を予測したことに応答して、前記メモリコントローラ(102)に提供されるべく利用可能な複数のメモリアクセス要求から第2のメモリアクセス要求を選択するステップと、
    前記メモリコントローラ(102)に前記第2のメモリアクセス要求をディスパッチするステップと、を有する方法。
  2. 前記メモリアクセスオペレーションの前記完了の予測は、メモリ(104)と前記メモリコントローラ(102)の間の信号伝達によって表される請求項1に記載の方法。
  3. 前記第1のメモリアクセス要求は、リードアクセス要求またはライトアクセス要求のいずれか一方であって、
    前記リードアクセス要求の場合、前記信号伝達には、要求されたデータが前記メモリ(104)前記メモリコントローラ(102)とを接続するバス線上で利用可能であることを示す信号が含まれており
    前記ライトアクセス要求の場合、前記信号伝達には、書込データが前記メモリコントローラ(102)から前記メモリ(104)に提供されていることを示す信号が含まれている、請求項2に記載の方法。
  4. 前記メモリアクセスオペレーションの前記完了の予測は、前記メモリアクセスオペレーションが実際に完了する前の所定の期間によって表される請求項2に記載の方法。
  5. 前記複数のメモリアクセス要求から前記第2のメモリアクセス要求を選択することには、前記複数のメモリアクセス要求の優先順位に基づいて前記第2のメモリアクセス要求を選択することが含まれる請求項1に記載の方法。
  6. 前記第2のメモリアクセス要求を選択するステップは、前記完了が予測されたことに応答して、前記メモリコントローラ(102)からバスインタフェースユニット(106)に信号(134)を提供するステップを有し、前記バスインタフェースユニット(106)は、前記信号(134)を受け取ったことに応答して、複数のメモリアクセス要求から前記第2のメモリアクセス要求を選択する請求項1に記載の方法。
  7. メモリ(104)に結合され、メモリアクセス要求を処理するためのメモリコントローラ(102)と、
    前記メモリコントローラ(102)に結合されたバスインタフェースユニット(106)と、を有し、前記バスインタフェースユニット(106)は、
    1つ以上のメモリアクセス要求を記憶するためのバッファ(132)と、
    メモリアクセス要求を受け取るために前記バッファに結合された第1の入力、および前記メモリコントローラ(102)から信号(134)を受け取る第2の入力を有するアービタ(130)と、を有し、前記アービタ(130)は、前記信号(134)に応答して、前記メモリコントローラ(102)にディスパッチするために第2のメモリアクセス要求を選択し、
    前記メモリコントローラ(102)は、前記メモリコントローラ(102)に既にディスパッチされている第1のメモリアクセス要求によって表されるメモリアクセスオペレーションの完了が予測されたことに応答して、前記信号(134)を提供するシステム(100)。
  8. 前記第1のメモリアクセス要求は、リードアクセス要求またはライトアクセス要求のいずれか一方であって、
    前記リードアクセス要求の場合、前記信号(134)は、要求されたデータが前記メモリ(104)前記メモリコントローラ(102)とを接続するバス線上で利用可能であることが示されたことに応答して提供され
    前記ライトアクセス要求の場合、前記信号(134)は、前記メモリコントローラ(102)によって前記メモリ(104)に書込データが提供されていることが示されたことに応答して提供される、請求項7に記載のシステム。
  9. 前記メモリアクセスオペレーションの前記完了の予測は、前記メモリアクセスオペレーションが実際に完了する前の所定の期間によって表される請求項7に記載のシステム。
  10. 前記アービタ(130)は、前記1つ以上のメモリアクセス要求に関連する優先度に基づいて、前記第2のメモリアクセス要求を選択する請求項7に記載のシステム。
JP2008530073A 2005-09-09 2006-08-23 メモリアクセス要求の遅延アービトレーション Active JP5058167B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/222,615 US8065457B2 (en) 2005-09-09 2005-09-09 Delayed memory access request arbitration
US11/222,615 2005-09-09
PCT/US2006/032742 WO2007032866A1 (en) 2005-09-09 2006-08-23 Delayed memory access request arbitration

Publications (3)

Publication Number Publication Date
JP2009508215A JP2009508215A (ja) 2009-02-26
JP2009508215A5 JP2009508215A5 (ja) 2012-08-02
JP5058167B2 true JP5058167B2 (ja) 2012-10-24

Family

ID=37562281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008530073A Active JP5058167B2 (ja) 2005-09-09 2006-08-23 メモリアクセス要求の遅延アービトレーション

Country Status (8)

Country Link
US (1) US8065457B2 (ja)
EP (1) EP1922627B1 (ja)
JP (1) JP5058167B2 (ja)
KR (1) KR101262313B1 (ja)
CN (1) CN101258476B (ja)
DE (1) DE602006018959D1 (ja)
TW (1) TWI426387B (ja)
WO (1) WO2007032866A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195903B2 (en) * 2006-06-29 2012-06-05 Oracle America, Inc. System and method for metering requests to memory
WO2010013189A2 (en) * 2008-07-29 2010-02-04 Nxp B.V. Data processing circuit with arbitration between a plurality of queues
TWI370361B (en) * 2008-08-21 2012-08-11 Ili Technology Corp Memory access controlling apparatus and control method thereof
CN101667448B (zh) * 2008-09-04 2012-11-07 奕力科技股份有限公司 存储器存取控制装置及其相关控制方法
JP5418193B2 (ja) * 2009-12-14 2014-02-19 富士ゼロックス株式会社 調停装置、画像処理装置、及び画像形成システム
US20120290810A1 (en) * 2011-04-18 2012-11-15 Jean-Jacques Lecler Memory Access Latency Metering
GB2518884A (en) * 2013-10-04 2015-04-08 Ibm Network attached storage system and corresponding method for request handling in a network attached storage system
WO2015065426A1 (en) * 2013-10-31 2015-05-07 Hewlett-Packard Development Company, L.P. Memory access for busy memory
US9646660B2 (en) * 2014-09-23 2017-05-09 Intel Corporation Selectable memory access time
CN107526534B (zh) * 2016-06-21 2020-09-18 伊姆西Ip控股有限责任公司 管理存储设备的输入输出(i/o)的方法和设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4400771A (en) * 1975-12-04 1983-08-23 Tokyo Shibaura Electric Co., Ltd. Multi-processor system with programmable memory-access priority control
US5524220A (en) * 1994-08-31 1996-06-04 Vlsi Technology, Inc. Memory subsystems having look-ahead instruction prefetch buffers and intelligent posted write buffers for increasing the throughput of digital computer systems
US5892981A (en) 1996-10-10 1999-04-06 Hewlett-Packard Company Memory system and device
US6134625A (en) * 1998-02-18 2000-10-17 Intel Corporation Method and apparatus for providing arbitration between multiple data streams
US6105086A (en) * 1998-06-04 2000-08-15 Lsi Logic Corporation Data communication circuit and method for buffering data between a shared resource and multiple interfaces
TW514788B (en) * 1999-04-23 2002-12-21 Via Tech Inc Method of delayed transaction in bus system and device using the method
US6453401B1 (en) * 1999-07-02 2002-09-17 Rambus Inc. Memory controller with timing constraint tracking and checking unit and corresponding method
US6594730B1 (en) * 1999-08-03 2003-07-15 Intel Corporation Prefetch system for memory controller
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
JP2002244919A (ja) * 2001-02-20 2002-08-30 Matsushita Electric Ind Co Ltd Dramインターフェース回路
US7093094B2 (en) * 2001-08-09 2006-08-15 Mobilygen Corporation Random access memory controller with out of order execution
US6745308B2 (en) * 2002-02-19 2004-06-01 Ati Technologies, Inc. Method and system for bypassing memory controller components
US6717834B2 (en) * 2002-03-26 2004-04-06 Intel Corporation Dual bus memory controller
US7099972B2 (en) * 2002-07-03 2006-08-29 Sun Microsystems, Inc. Preemptive round robin arbiter
JP4008307B2 (ja) * 2002-08-09 2007-11-14 松下電器産業株式会社 メモリインターフェース回路
US6857055B2 (en) * 2002-08-15 2005-02-15 Micron Technology Inc. Programmable embedded DRAM current monitor
JP3876816B2 (ja) * 2002-10-24 2007-02-07 日本電気株式会社 コンピュータの共有資源利用制限方法
US7093059B2 (en) * 2002-12-31 2006-08-15 Intel Corporation Read-write switching method for a memory controller
JP2004287576A (ja) * 2003-03-19 2004-10-14 Matsushita Electric Ind Co Ltd バスコントローラ

Also Published As

Publication number Publication date
CN101258476A (zh) 2008-09-03
US20070067532A1 (en) 2007-03-22
CN101258476B (zh) 2011-06-08
DE602006018959D1 (de) 2011-01-27
TW200723001A (en) 2007-06-16
EP1922627B1 (en) 2010-12-15
US8065457B2 (en) 2011-11-22
KR20080043406A (ko) 2008-05-16
WO2007032866A1 (en) 2007-03-22
KR101262313B1 (ko) 2013-05-08
EP1922627A1 (en) 2008-05-21
JP2009508215A (ja) 2009-02-26
TWI426387B (zh) 2014-02-11

Similar Documents

Publication Publication Date Title
JP5058167B2 (ja) メモリアクセス要求の遅延アービトレーション
US8312229B2 (en) Method and apparatus for scheduling real-time and non-real-time access to a shared resource
JP4723260B2 (ja) ソースデバイスに対するリクエストをスケジューリングする装置及び方法
JP4944042B2 (ja) Soc相互接続において転送待ち時間を低減するための方法および装置
JP2009508215A5 (ja)
US8108571B1 (en) Multithreaded DMA controller
US7523228B2 (en) Method for performing a direct memory access block move in a direct memory access device
US7526593B2 (en) Packet combiner for a packetized bus with dynamic holdoff time
US8572322B2 (en) Asynchronously scheduling memory access requests
WO2011089660A1 (ja) バス調停装置
JP2011505037A (ja) 読出しデータバッファリングのシステム及び方法
US7340544B2 (en) Method of using bus and bus interface
US6748505B1 (en) Efficient system bus architecture for memory and register transfers
US20060179172A1 (en) Method and system for reducing power consumption of a direct memory access controller
US6735677B1 (en) Parameterizable queued memory access system
JP2006268753A (ja) Dma回路及びコンピュータシステム
JP2006215621A (ja) Dma制御装置
US6269360B1 (en) Optimization of ordered stores on a pipelined bus via self-initiated retry
JP2731768B2 (ja) メモリ制御装置
US20060101173A1 (en) Pin sharing system
JPH11175464A (ja) 調停装置および方法
JP4314230B2 (ja) 高速シフトタイプバッファ用システム及び方法
US20050060475A1 (en) Data transfer apparatus and data transfer method
JPH06243093A (ja) バス制御システム
GB2341699A (en) Inter-module data transfer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090813

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100421

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120404

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120516

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20120611

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120731

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5058167

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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