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

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

Info

Publication number
JP2009518753A
JP2009518753A JP2008544532A JP2008544532A JP2009518753A JP 2009518753 A JP2009518753 A JP 2009518753A JP 2008544532 A JP2008544532 A JP 2008544532A JP 2008544532 A JP2008544532 A JP 2008544532A JP 2009518753 A JP2009518753 A JP 2009518753A
Authority
JP
Japan
Prior art keywords
memory access
memory
access request
page
interval
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.)
Pending
Application number
JP2008544532A
Other languages
English (en)
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 JP2009518753A publication Critical patent/JP2009518753A/ja
Pending 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
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

方法は、第1のインターバルの間に、第1のデバイス(116,118,120)から第1のメモリアクセス要求を受信するステップを含む。前記第1のメモリアクセス要求は、複数ページメモリ(104)の第1のページにアクセスするためのものである。前記方法は、前記第1のインターバルの後の第2のインターバルの間に、前記第1のデバイスから第2のメモリアクセス要求を受信するステップと、前記第2のインターバルの間に、第2のデバイス(116,118,120)から第3のメモリアクセス要求を受信するステップとを更に含む。前記方法は、更に、前記第2のメモリアクセス要求が前記複数ページメモリの前記第1のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第3のメモリアクセス要求よりも、前記第2のメモリアクセス要求を優先的に選択するステップを含む。

Description

本開示は、一般に、メモリアクセス要求の処理に関する。
処理システムでは、メモリにデータをストアしたり、あるいはメモリのデータにアクセスしようとしているデバイスに対し、メモリ資源へのアクセスを制御するために、メモリコントローラが用いられていることが多い。従来のシステムでは、特定の固定の優先度に基づいて、メモリコントローラにメモリアクセス要求が提供される。
しかし、固定優先順位方式のみに基づいてメモリアクセス要求を選択すると、ダイナミックランダムアクセスメモリ(DRAM)などのページベースのメモリで、大きな不利益が生じてしまうことが多い。通常、DRAMの別のページにアクセスする際には必ず、前のページをクローズし、次のページをオープンするのに必要なプロセスのため、遅延が生じてしまう。固定優先順位方式でよくあるように、メモリのページの切り替えを頻繁に行うと、メモリに「スラッシング」が生じ、その結果、メモリアクセス要求シーケンスに、大きな遅延が累積的に生じてしまうことが多い。この問題は、デュアルデータレート(DDR)メモリでは、コマンドサイクルごとのデータレートが高いため、特に顕著となる。
したがって、メモリアクセス要求を処理するための改良された方法が有利となる。
本開示の一態様によれば、方法が提供される。前記方法は、第1のインターバルの間に、第1のデバイスから第1のメモリアクセス要求を受信するステップを有する。前記第1のメモリアクセス要求は、複数ページメモリの第1のページにアクセスするためのものである。前記方法は、前記第1のインターバルの後の第2のインターバルの間に、前記第1のデバイスから第2のメモリアクセス要求を受信するステップと、前記第2のインターバルの間に、第2のデバイスから第3のメモリアクセス要求を受信するステップとを更に含む。前記方法は、更に、前記第2のメモリアクセス要求が前記複数ページメモリの前記第1のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第3のメモリアクセス要求よりも、前記第2のメモリアクセス要求を優先的に選択するステップを含む。本開示の別の態様によれば、システムが提供される。前記システムは、複数ページメモリに接続されたアクセスアービタを有する。前記アクセスアービタは、第1のインターバルの間に、第1のデバイスから、複数ページメモリの第1のページにアクセスするための第1のメモリアクセス要求を受信し、前記第1のインターバルの後の第2のインターバルの間に、前記第1のデバイスから第2のメモリアクセス要求を受信し、前記第2のインターバルの間に、第2のデバイスから第3のメモリアクセス要求を受信する。前記アクセスアービタは、更に、前記第2のメモリアクセス要求が前記複数ページメモリの前記第1のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第3のメモリアクセス要求よりも、前記第2のメモリアクセス要求を優先的に選択する。
本開示の目的および利点は、添付の図面と併せて読めば、以下の詳細な説明から、当業者にとって明らかであろう。添付の図面では、同じ要素を示すのに同じ参照符号を使用する。
以下の説明は、メモリアクセス要求のアービトレーションに関わる多数の特定の実施形態および詳細を示すことによって、本開示を完全に理解できることを意図している。しかし、本開示がこれらの特定の実施形態や詳細に限定されることはなく、これらは例示に過ぎないことが理解される。当業者が、既知のシステムおよび方法に鑑みて、特定の設計やその他の要求に従って、いかなる数の別の実施形態において、意図した目的および利益のために本開示の使用を評価することも更に理解される。
図1を参照すると、本開示の少なくとも1つの実施形態による、繰り返しページアクセスアービトレーション(repeated-page access arbitration)を利用する例示的な処理システム100が示される。図示した例では、システム100は、複数のページを有するページベースのメモリ104(DDR DRAMなど)に接続された、システムオンチップ(SOC)102(集積プロセッサなど)を備える。SOC102は、ノースアービタ106、サウスアービタ108、および複数のデバイスを備える。複数のデバイスには、ディスプレイコントローラ110、汎用処理装置(GPU)(中央処理装置と呼ばれることも多い)、セキュリティモジュール114、周辺装置相互接続(PCI)コントローラ116、ビデオプロセッサ118、ブリッジ(MCP)120、メモリコントローラ122などが含まれうる。
図示した例では、サウスアービタ108は、デバイス116,118,120の1つ以上によって(例えば、それぞれ要求経路136,138,140を介して)提供されるメモリアクセス要求同士をアービトレーションし、各メモリアクセスインターバルに、選択されたメモリアクセス要求をノースアービタ106に提供する。これに対し、ノースアービタ106は、デバイス110,112,114の1つ以上によって(例えば、それぞれ要求経路130,132,134を介して)提供されるメモリアクセス要求同士のほか、サウスアービタ108から提供される選択されたメモリアクセス要求もアービトレーションする。次に、アービタ106によって選択されたメモリアクセス要求が、選択されたメモリアクセス要求に関連する任意のデータ(書込データなど)と共に、メモリコントローラ122に提供される。次に、メモリコントローラ122は、提供されたメモリアクセス要求を処理して、メモリ104の識別されたメモリ位置にデータをロードするか、あるいはここからデータを読み出す。
少なくとも1つの実施形態では、アービタ106,108の一方または両方は、メモリ104でのページ切り替えの頻度を減らすために、1つ以上のアービトレーション法を使用してメモリアクセス要求を選択する。例えば、アービタ106および108によって利用されるアービトレーション方式には、選択されたメモリアクセス要求が、以前のインターバルに選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるとの指標に基づいて、特定のメモリアクセス要求を選択する方法などがある。一実施形態では、この指標は、以前に選択されたメモリアクセス要求に関連するアドレスの少なくとも一部と、1つ以上の未処理のメモリアクセス要求のアドレスの対応する部分との比較に基づいていてもよい。比較の結果、特定の未処理のメモリアクセス要求が、以前のメモリアクセス要求と同じメモリページにアクセスするとの予想が示された場合、この特定の未処理のメモリアクセス要求が、メモリアクセスインターバルの間に処理するために優先的に選択されうる。メモリアクセス要求の選択の文脈で「優先的」との文言が用いられる場合、影響のあるほかのすべてのパラメータが実質的に等しいことを指す。例えば、あるメモリアクセス要求がほかよりも優先度が高いとき、優先度が決定要因である場合には、他のパラメータの点では優先度の低いメモリアクセス要求の選択が優先的な場合であっても、優先度の高いメモリアクセス要求が選択されうる。
一実施形態では、アービタ106,108の一方または両方がこの比較を実行する。例を挙げると、アービタ106,108の一方または両方は、直前に処理されたメモリアクセス要求(例えば、ADDR[MSB:MSBn−x])の最上位ビット群(MSB)のサブセットを、レジスタまたは他のメモリ位置(図示せず)に記憶しており、デバイス130,132,134,136,138,140は、自身のメモリアクセス要求に関連するメモリアドレス(例えばデバイスiでは、ADDR[MSB:MSBn−x])の最上位ビット群(MSB)の対応するサブセットを、それぞれアドレス入力150,152,154,156,158,160として提供しうる。次に、アービタ106,108の一方または両方は、記憶されているアドレス値を考慮してアドレス入力を処理し、処理済みのメモリアクセス要求と同じメモリページにアクセスすると予想されるメモリアクセス要求を特定しうる。別の実施形態では、アドレス部分の比較は、デバイスによって実行されてもよく、デバイスが提供したメモリアクセス要求が、以前に処理されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかどうかを示す指標として、各デバイスが信号を提供しうる。
多くの場合、デバイスからの現在のメモリアクセス要求は、同じデバイスからの直前のメモリアクセス要求と同じメモリページにアクセスすると思われる。したがって、一実施形態では、連続するメモリアクセス要求の所定の最大値に達するまで、可能であれば、同じデバイスから連続してメモリアクセス要求が選択されるように、アービタ106,108の一方または両方は、メモリアクセス要求を優先的に選択する。このため、同じデバイスから連続してメモリアクセス要求を選択することにより、同じデバイスからのメモリアクセス要求を連続的に処理する結果、同じメモリページにアクセスする確率が高くなるため、メモリ104でのページ切り替えの頻度を減らすことができる。
同様に、一実施形態では、アービタ106,108の一方または両方は、特定のデバイスからのメモリアクセス要求の数が所定数以上になるまで、および/または、特定のデバイスからのバッファ済みのメモリアクセス要求に関連するデータ(例えば読出アクセスでは読出データ、または書込アクセスでは書込データ)の量が、所定の閾値以上になるまで、デバイスからのメモリアクセス要求がバッファされるアービトレーション方式を使用してもよい。特定のデバイスのバッファ済みのメモリアクセス要求が、所定の要求数と等しい場合、および/または所定のデータ閾値と等しい場合、アービタは、バッファ済みのメモリアクセス要求の一部またはすべてを、連続するメモリアクセスインターバルの間に処理するために選択しうる。同じデバイスからのメモリアクセス要求は、同じメモリページにアクセスすることが多いため、あるデバイスからの1つ以上のメモリアクセス要求を連続的に処理することにより、ページ切り替えの頻度を減らすことができ、これにより、メモリアクセス要求の処理の遅延を減らすことができる。
一実施形態では、所定の要求数と等しくなるまで、および/または、所定のデータ閾値と等しくなるまで、デバイスからのメモリアクセス要求がアービタ106および108にバッファされる。例として示すように、アービタ108は、PCIコントローラ116からの所定のメモリアクセス要求数をバッファするバッファ164を備えうる。バッファ164が一杯になると、アービタ108は、バッファ済みのメモリアクセス要求の一部または全部を、連続処理のため、バッファ164から優先的に選択しうる。代替の実施形態では、デバイスの1つ以上が、メモリアクセス要求をバッファするためのバッファ(GPU112のバッファ162など)を備える。この例では、バッファされているアクセス要求が、バッファ済みのアクセス要求の所定の数および/または所定のデータ閾値と等しくなると、デバイスがアービタ106または108に通知しうる。これを受けて、対応するアービタは、通知を行ったデバイスから、連続処理のために、バッファ済みのメモリアクセス要求の1つ以上を優先的に選択しうる。
図2を参照すると、本開示の少なくとも1つの実施形態による、メモリページの切り換えを減らすために、メモリアクセス要求同士をアービトレーションするための例示的な方法200が示されている。ブロック202において、アービタ(図1のアービタ106,108など)で、1つ以上のデバイスのそれぞれから、メモリアクセス要求が受信される。ブロック204において、アービタは、受信したメモリアクセス要求(ある場合)に関連する優先度を調べる。例えば、GPU112(図1)からのメモリアクセス要求は、タイミングまたは性能上の要件のために、ディスプレイコントローラ110(図1)からのメモリアクセス要求よりも高い優先度が割り当てられているとする。受信済みのメモリアクセス要求のうち、残りの受信済みのメモリアクセス要求より優先度の高いものが1つしかない場合、ブロック206において、この1つの優先度の高いメモリアクセス要求が、現在のメモリアクセスインターバルまたは将来のメモリアクセスインターバルの間に処理するため、メモリコントローラ(図1のメモリコントローラ122など)に提供するために選択されうる。
受信済みのメモリアクセス要求のなかで、優先レベルが最も高いメモリアクセス要求が複数存在する場合には、一実施形態では、ブロック208において、アービタは、以前のメモリアクセスインターバルに選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるメモリアクセス要求を選択する。次に、選択されたメモリアクセス要求が、処理のためにメモリコントローラに提供されうる。ステップ210において、次のメモリアクセスインターバルについて、アービトレーション方法200が繰り返されうる。
図3乃至6を参照すると、本開示の少なくとも1つの実施形態による、図2の方法200のブロック208のメモリアクセス要求の優先的選択の例示的な実装が示される。メモリアクセスアービタは、本発明の範囲から逸脱することなく、これらの例示的な実装のいずれか、あるいはこれらの任意の組合せを使用しうる。
図3に示すように、ブロック208におけるメモリアクセス要求の優先的選択の一実装では、ブロック302において、デバイスからの現在の要求が、以前のメモリアクセスインターバルの間に選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されることが、デバイスからの指標に示されているかどうかが判定されうる。上で説明したように、この指標は、メモリアクセス要求に関連するアドレスのサブセットと、以前に選択されたメモリアクセス要求の対応するアドレスのサブセットとの比較に基づきうる。このような指標がある場合には、ブロック304において、指標に関連するデバイスからのメモリアクセス要求が、処理のためメモリコントローラに提供するために選択される。このような指標がない場合には、ブロック306において、アービタは、ラウンドロビン選択などの他の方式を使用して、処理するメモリアクセス要求を選択しうる。
表1は、図3に関して説明したメモリアクセスアービトレーションを使用するメモリアクセスインターバルの例示的なシーケンスを示す。表に示す例では、優先度0を有し、連続の指標を有するデバイスAが、優先度0のデバイスよりも3回、優先度1のデバイスよりも1回、優先的に選択される。
Figure 2009518753
図4に示すように、ブロック208におけるメモリアクセス要求の優先的選択の別の実装では、ブロック402において、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連する同じデバイスからのメモリアクセス要求が利用可能であるかどうかが判定されうる。このようなメモリアクセス要求が利用可能でない場合には、ブロック404において、ラウンドロビン選択などの様々な方式のいずれかを使用して、メモリアクセス要求が選択されうる。利用可能な場合には、直近のメモリインターバルに、そのデバイスからのメモリアクセス要求が連続して選択された回数の総カウントが、所定の最大値(最大2インターバル、または4インターバルなど)と比較される。所定の最大値を超えない場合、ブロック408において、そのデバイスからのメモリアクセス要求が、メモリコントローラによる処理のために選択される。所定の最大値に達している場合、ブロック410において、デバイスのカウント値がリセットされ(例えば0にセットされ)、ブロック404において、他の方式を使用して、他のデバイスからのメモリアクセス要求が選択されうる。例えば、所定の最大値が4であり、直近の3メモリアクセスインターバルに、デバイスからのメモリアクセス要求が選択されているとすると、以前のメモリアクセスインターバルのシーケンスで選択されたデバイスからのメモリアクセス要求の総数が所定の最大値未満であるため、ブロック408において、このデバイスからの現在のメモリアクセス要求が選択されうる。しかし、デバイスからのメモリアクセス要求が、最近の4メモリアクセスインターバルに選択され、所定の最大値が4インターバルである場合には、ブロック410において、このデバイスに関連するカウントがリセットされ、ブロック404において、他のデバイスからのメモリアクセス要求が選択される。
一実施形態では、他のデバイスから優先度の高いメモリアクセス要求を受信すると、同じデバイスからのメモリアクセス要求の連続選択が中断されうる。別の実施形態では、別のデバイスから優先度の高いメモリアクセス要求を受信しても、同じデバイスからのメモリアクセス要求の連続選択が行われる。更に、繰り返し選択の所定の最大値が、他のデバイスからのメモリアクセス要求の優先度に応じて変更されてもよい。
表2は、図4に関して説明したメモリアクセスアービトレーションを使用するメモリアクセスインターバルの例示的なシーケンスを示す。表に示す例では、各デバイスが2回連続で選択されてから、同じ優先度の別のデバイスが選択されうる。この結果得られる要求選択パターンによって、一般に、従来のアービトレーション技術と比べ、ページのオープンおよびページのクローズの回数が低減される。
Figure 2009518753
図5に示すように、ブロック208におけるメモリアクセス要求の優先的選択の別の実装では、ブロック502において、任意のデバイスからのバッファ済みのメモリアクセス要求の数が、所定の閾値以上であるかどうかが判定されうる。所定の閾値未満の場合、ブロック504において、例えば、ラウンドロビン選択または他の選択法を使用してメモリアクセス要求が選択される。所定の閾値以上である場合、ブロック506において、バッファ済みのメモリアクセス要求の一部または全部が、連続するメモリアクセスインターバルの間の処理のため、アービタによってメモリコントローラに提供される。
表3,表4は、それぞれ、メモリアクセスの従来のシーケンスと、図5に関して記載したメモリアクセスアービトレーションを使用するメモリアクセスインターバルの例示的なシーケンスとを示す。表4に示した実施形態では、各デバイスは、2つのメモリアクセス要求を、これらが選択される前にバッファする。この結果得られる表4に示す要求パターンにより、表3に示す従来の技術よりも、ページのオープンおよびページのクローズの回数が低減される可能性があり、このため、処理の遅延が低減される。
(従来技術)
Figure 2009518753
Figure 2009518753
同様に、図6に示すように、ブロック208におけるメモリアクセス要求の優先的選択の別の実装では、ブロック602において、任意のデバイスからのバッファ済みのメモリアクセス要求が表す読出データまたは書込データが、所定のデータ閾値以上であるかどうかが判定されうる。所定の閾値未満の場合、ブロック604において、例えば、ラウンドロビン選択または他の選択法を使用してメモリアクセス要求が選択される。所定の閾値以上である場合、ブロック606において、バッファ済みのメモリアクセス要求の一部または全部が、連続するメモリアクセスインターバルの間の処理のため、アービタによってメモリコントローラに提供される。
図7を参照すると、本開示の少なくとも1つの実施形態による、本明細書に開示したアービトレーション技術の1つ以上を実装するための例示的なアービタ700が示される。図に示すように、アービタ700は、要求セレクタモジュール702、指標解析モジュール704、マルチプレクサ706,708、およびレジスタ710,712,714,716,718,720を備えうる。モジュール702,708は、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組合せとして実装することができる。レジスタ710は、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連するデバイスを識別する値を記憶する。レジスタ712は、同じデバイスからメモリアクセスを連続して選択できる最大回数を表す値を記憶し、レジスタ714は、直近のメモリアクセスインターバルに、メモリアクセス要求が連続して選択された回数のカウントを表す値を記憶する。レジスタ716は、バッファ済みのメモリアクセス要求に関連する所定のデータ閾値を表す値を記憶し、レジスタ718は、メモリアクセスリクエストバッファに関連する所定のメモリアクセス要求数を表す値を記憶する。レジスタ720は、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連するメモリアドレスを表す値を記憶する。レジスタ712,714,716,718の1つ以上の値は、処理デバイス(例えば、図1のSOC102)の動作の特定の特性に合わせて、アービタ700が使用するメモリアクセス要求のアービトレーション方式をカスタマイズするためにプログラム可能であってもよい。
動作時に、(それぞれデバイスA〜Dから出された)1つ以上のメモリアクセス要求A〜Dがマルチプレクサ708で受信される。要求セレクタモジュール702は、指標解析モジュール704からの入力および/またはレジスタ710,712,714,716,718,720の1つ以上の値に基づいて、メモリアクセス要求A〜Dのいずれを、メモリコントローラに提供するために選択するかを決定し、マルチプレクサ708に、対応する選択信号722を提供して、マルチプレクサ708に対して、選択されたメモリアクセス要求を出力する(これをメモリコントローラが受け取る、724)ように指示する。
一実施形態では、図4に関して説明したように、要求セレクタモジュール702は、レジスタ710が示すデバイス(すなわち、以前のメモリアクセスインターバルに選択されたメモリアクセス要求に関連するデバイス)に関連するメモリアクセス要求を優先的に選択し、レジスタ714のカウント値が、レジスタ712の値が表す最大値以上ではない限り、レジスタ714のカウント値をインクリメントする。最大値以上の場合、カウント値がリセットされ、ラウンドロビンなどの他の選択法が使用されうる。
図5,6に関して説明した別の実施形態では、バッファ済みのメモリアクセス要求の総数が、レジスタ718の値が表す閾値以上である場合、あるいは、バッファ済みのメモリアクセス要求によってアクセスされる総データ量が、レジスタ716に記憶されている値が表す所定のデータ閾値以上である場合、要求セレクタモジュール702は、デバイスからのバッファ済みの1つ以上のメモリアクセス要求を優先的に選択する。
更に、図3に関して説明したように、一実施形態では、要求セレクタモジュール702は、メモリアクセス要求が、以前のメモリアクセスインターバルに選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかどうかを表す指標に基づいて、デバイスからのメモリアクセス要求を優先的に選択する。例えば、マルチプレクサ706は、デバイスA〜Dからそれぞれ指標A〜Dを受信するとする。一実施形態では、指標A〜Dは、対応するメモリアクセス要求A〜Dに関連するメモリアドレスの最上位ビットの特定のビット数を表している。要求セレクタモジュール702は、マルチプレクサ706に選択信号726を提供し、指標解析モジュール704に提供する指標A〜Dの1つが選択される。指標解析モジュール704は、選択された指標(メモリアドレスのサブセットなど)を、レジスタ720に記憶されているメモリアドレス値(以前に選択されたメモリアクセス要求に関連するメモリアドレスを表している)と比較して、対応するメモリアクセス要求が、以前に選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかどうかを決定する。このように予想される場合、指標解析モジュール704は、要求セレクタモジュール702に、選択信号728を提供し、どのデバイスのどのメモリアクセス要求が、以前に選択されたメモリアクセス要求と同じメモリページにアクセスすると予想されるかを通知する。これに対して、要求セレクタモジュール702は、メモリコントローラに出力724として提供する、対応するメモリアクセス要求を選択するために、マルチプレクサ708に、対応する選択信号722を提供する。
本開示の他の実施形態、使用および利点は、ここに開示した開示の詳細と実施を鑑みれば、当業者にとって明らかであろう。本明細書および図面は例に過ぎず、したがって、本開示の範囲は、添付の特許請求の範囲とその均等物によってのみ制限されることが意図されるべきである。
本開示の少なくとも1つの実施形態による、永続ページメモリアクセス要求のアービトレーション法を使用する例示的な処理システムを示すブロック図。 本開示の少なくとも1つの実施形態による、永続ページメモリアクセス要求のアービトレーションのための例示的な方法を示すフローチャート。 本開示の少なくとも1つの実施形態による、複数のラウンドロビン選択法に基づいた、図2の方法の例示的な実装を示すフローチャート。 本開示の少なくとも1つの実施形態による、以前に選択されたメモリアクセス要求に基づいた、図2の方法の例示的な実装を示すフローチャート。 本開示の少なくとも1つの実施形態による、バッファ済みのメモリアクセス要求に基づいた、図2の方法の例示的な実装を示すフローチャート。 本開示の少なくとも1つの実施形態による、バッファ済みのメモリアクセス要求に基づいた、図2の方法の例示的な実装を示すフローチャート。 本開示の少なくとも1つの実施形態による、例示的なメモリアクセスアービタを示すブロック図。

Claims (10)

  1. 第1のインターバルの間に、第1のデバイス(116,118,120)から、複数ページメモリの第1のページにアクセスするための第1のメモリアクセス要求を受信するステップと、
    前記第1のインターバルの後の第2のインターバルの間に、前記第1のデバイスから第2のメモリアクセス要求を受信するステップと、
    前記第2のインターバルの間に、第2のデバイス(116,118,120)から第3のメモリアクセス要求を受信するステップと、
    前記第2のメモリアクセス要求が前記複数ページメモリの前記第1のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第3のメモリアクセス要求よりも、前記第2のメモリアクセス要求を優先的に選択するステップとを含む方法。
  2. 第3のインターバルに前記複数ページメモリに提供するために、第3のデバイス(116,118,120)からの第4のメモリアクセス要求を選択するステップと、
    前記第3のインターバルの直後の1つ以上のインターバルの各インターバルに前記複数ページメモリに提供するために、前記第3のデバイスからの1つ以上のメモリアクセス要求を優先的に選択するステップとを更に含み、優先的に選択されるインターバルの総数は所定のインターバル数未満である、請求項1に記載の方法。
  3. 第3のデバイス(108)においてメモリアクセス要求をバッファするステップと、
    バッファされているメモリアクセス要求の数が、所定のメモリアクセス要求数以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択するステップを更に含む、請求項1に記載の方法。
  4. 第3のデバイス(108)においてメモリアクセス要求をバッファするステップと、
    前記バッファされているメモリアクセス要求によってアクセスされるデータ量が、所定のデータ量以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択するステップを更に含む、請求項1に記載の方法。
  5. 前記指標は、前記第2のメモリアクセス要求に関連するアドレスの最上位ビット群の第1のサブセットを含み、前記最上位ビット群の前記第1のサブセットが、前記第1のメモリアクセス要求に関連するアドレスの最上位ビット群の対応するサブセットと等しい場合に、前記第2のメモリアクセス要求が前記第1のページにアクセスすると予想される、請求項1に記載の方法。
  6. 複数ページメモリ(104)に接続されたアクセスアービタ(106,108)を有するシステムであって、前記アクセスアービタは、
    第1のインターバルの間に、第1のデバイス(116,118,120)から、複数ページメモリの第1のページにアクセスするための第1のメモリアクセス要求を受信し、
    前記第1のインターバルの後の第2のインターバルの間に、前記第1のデバイスから第2のメモリアクセス要求を受信し、
    前記第2のインターバルの間に、第2のデバイス(116,118,120)から第3のメモリアクセス要求を受信し、
    前記第2のメモリアクセス要求が前記複数ページメモリの前記第1のページにアクセスすると予想されることが、指標によって示される場合に、前記複数ページメモリに提供するために、前記第3のメモリアクセス要求よりも、前記第2のメモリアクセス要求を優先的に選択する、ところのシステム。
  7. 前記アクセスアービタは更に、
    第3のインターバルに前記複数ページメモリに提供するために、第3のデバイス(116,118,120)からの第4のメモリアクセス要求を選択し、
    前記第3のインターバルの直後の1つ以上のインターバルの各インターバルに前記複数ページメモリに提供するために、前記第3のデバイスからの1つ以上のメモリアクセス要求を優先的に選択し、優先的に選択されるインターバルの総数は所定のインターバル数未満である、請求項6に記載のシステム。
  8. 前記アクセスアービタは更に、
    第4のデバイス(110,112,114)にバッファされているメモリアクセス要求によってアクセスされるデータ量が、所定のデータ量以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する請求項7に記載のシステム。
  9. 前記アクセスアービタは更に、
    第3のデバイス(116,118,120)にバッファされているメモリアクセス要求の数が、所定のメモリアクセス要求数以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する、請求項6に記載のシステム。
  10. 前記アクセスアービタは更に、
    第3のデバイスにバッファされているメモリアクセス要求によってアクセスされるデータ量が、所定のデータ量以上の場合に、前記複数ページメモリに連続して提供するために、前記バッファされているメモリアクセス要求を優先的に選択する、請求項6に記載のシステム。
JP2008544532A 2005-12-09 2006-12-08 メモリアクセス要求のアービトレーション Pending JP2009518753A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/297,856 US7426621B2 (en) 2005-12-09 2005-12-09 Memory access request arbitration
PCT/US2006/046877 WO2007067739A1 (en) 2005-12-09 2006-12-08 Memory access request arbitration

Publications (1)

Publication Number Publication Date
JP2009518753A true JP2009518753A (ja) 2009-05-07

Family

ID=37865831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008544532A Pending JP2009518753A (ja) 2005-12-09 2006-12-08 メモリアクセス要求のアービトレーション

Country Status (8)

Country Link
US (1) US7426621B2 (ja)
JP (1) JP2009518753A (ja)
KR (1) KR20080075910A (ja)
CN (1) CN101326504B (ja)
DE (1) DE112006003358B4 (ja)
GB (1) GB2446997B (ja)
TW (1) TW200728983A (ja)
WO (1) WO2007067739A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170515A (ja) * 2010-02-17 2011-09-01 Kyocera Mita Corp メモリマスタデバイス
WO2014147769A1 (ja) * 2013-03-19 2014-09-25 富士通株式会社 制御装置、デバイスアクセス方法、デバイスアクセスプログラム及び情報処理装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7353317B2 (en) * 2004-12-28 2008-04-01 Intel Corporation Method and apparatus for implementing heterogeneous interconnects
JP5261993B2 (ja) * 2007-06-15 2013-08-14 富士通セミコンダクター株式会社 ディスプレイ制御回路およびディスプレイ装置
TWI385634B (zh) * 2008-04-02 2013-02-11 Novatek Microelectronics Corp 用於一液晶顯示器控制器之微處理器裝置及相關方法
US8266393B2 (en) * 2008-06-04 2012-09-11 Microsoft Corporation Coordination among multiple memory controllers
US8572322B2 (en) * 2010-03-29 2013-10-29 Freescale Semiconductor, Inc. Asynchronously scheduling memory access requests
US8560796B2 (en) * 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR20140099295A (ko) * 2011-12-28 2014-08-11 인텔 코포레이션 파이프라인 이미지 프로세싱 시퀀서
US8751830B2 (en) * 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
GB2522653A (en) 2014-01-31 2015-08-05 Ibm Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system
TWI553483B (zh) * 2014-10-13 2016-10-11 瑞昱半導體股份有限公司 處理器及存取記憶體的方法
US10684969B2 (en) * 2016-07-15 2020-06-16 Advanced Micro Devices, Inc. Command arbitration for high speed memory interfaces
US10402937B2 (en) 2017-12-28 2019-09-03 Nvidia Corporation Multi-GPU frame rendering
CN110729006B (zh) 2018-07-16 2022-07-05 超威半导体(上海)有限公司 存储器控制器中的刷新方案

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0660008A (ja) * 1992-08-07 1994-03-04 Hitachi Cable Ltd 2ポートメモリ
JPH11165454A (ja) * 1997-12-04 1999-06-22 Canon Inc 画像処理装置及び画像処理システム
JP2000029780A (ja) * 1998-01-23 2000-01-28 Oki Electric Ind Co Ltd メモリ・ペ―ジ管理
JP2002049580A (ja) * 2000-08-02 2002-02-15 Mitsubishi Electric Corp バス管理装置、バス使用要求送信装置、バス管理方法、及びバス使用要求送信方法
JP2004005589A (ja) * 2002-04-17 2004-01-08 Matsushita Electric Ind Co Ltd 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440752A (en) * 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5822772A (en) 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US6145065A (en) 1997-05-02 2000-11-07 Matsushita Electric Industrial Co., Ltd. Memory access buffer and reordering apparatus using priorities
US6088772A (en) 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
GB9719047D0 (en) 1997-09-08 1997-11-12 Sgs Thomson Microelectronics Arbitration system
JPH11194995A (ja) 1997-12-26 1999-07-21 Mitsubishi Electric Corp Dram内蔵マイクロプロセッサ及びdram内蔵マイクロプロセッサのデータ転送方法
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
US6625700B2 (en) * 2001-05-31 2003-09-23 Sun Microsystems, Inc. Arbitration and select logic for accessing a shared memory
KR20040019335A (ko) * 2001-07-18 2004-03-05 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 다중프로세서 디바이스 및 동기화 최적화 방법 및 액세스제어 방법
US6785793B2 (en) 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US7035984B2 (en) * 2001-12-31 2006-04-25 Intel Corporation Memory arbiter with grace and ceiling periods and intelligent page gathering logic
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
US7404047B2 (en) 2003-05-27 2008-07-22 Intel Corporation Method and apparatus to improve multi-CPU system performance for accesses to memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0660008A (ja) * 1992-08-07 1994-03-04 Hitachi Cable Ltd 2ポートメモリ
JPH11165454A (ja) * 1997-12-04 1999-06-22 Canon Inc 画像処理装置及び画像処理システム
JP2000029780A (ja) * 1998-01-23 2000-01-28 Oki Electric Ind Co Ltd メモリ・ペ―ジ管理
JP2002049580A (ja) * 2000-08-02 2002-02-15 Mitsubishi Electric Corp バス管理装置、バス使用要求送信装置、バス管理方法、及びバス使用要求送信方法
JP2004005589A (ja) * 2002-04-17 2004-01-08 Matsushita Electric Ind Co Ltd 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011170515A (ja) * 2010-02-17 2011-09-01 Kyocera Mita Corp メモリマスタデバイス
WO2014147769A1 (ja) * 2013-03-19 2014-09-25 富士通株式会社 制御装置、デバイスアクセス方法、デバイスアクセスプログラム及び情報処理装置

Also Published As

Publication number Publication date
GB0811767D0 (en) 2008-07-30
GB2446997B (en) 2010-11-10
US7426621B2 (en) 2008-09-16
KR20080075910A (ko) 2008-08-19
CN101326504A (zh) 2008-12-17
TW200728983A (en) 2007-08-01
DE112006003358B4 (de) 2022-08-04
WO2007067739A1 (en) 2007-06-14
GB2446997A (en) 2008-08-27
DE112006003358T5 (de) 2008-10-02
US20070136545A1 (en) 2007-06-14
CN101326504B (zh) 2012-04-25

Similar Documents

Publication Publication Date Title
JP2009518753A (ja) メモリアクセス要求のアービトレーション
US6088772A (en) Method and apparatus for improving system performance when reordering commands
US6092158A (en) Method and apparatus for arbitrating between command streams
US5948081A (en) 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
EP1754229B1 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
US7698498B2 (en) Memory controller with bank sorting and scheduling
US6330646B1 (en) Arbitration mechanism for a computer system having a unified memory architecture
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
US20080126643A1 (en) Semiconductor circuit
US7370161B2 (en) Bank arbiter system which grants access based on the count of access requests
US7899940B2 (en) Servicing commands
US9213545B2 (en) Storing data in any of a plurality of buffers in a memory controller
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
US6970978B1 (en) System and method for providing a pre-fetch memory controller
US7013368B2 (en) Arbitration apparatus utilizing mutlilevel priority for reducing memory access time
US9697118B1 (en) Memory controller with interleaving and arbitration scheme
JP2007094649A (ja) アクセス調停回路
US6374244B1 (en) Data transfer device
US6625700B2 (en) Arbitration and select logic for accessing a shared memory
JP2007108950A (ja) I/o処理装置及び方法
US7185122B2 (en) Device and method for controlling data transfer
JP5382113B2 (ja) 記憶制御装置及びその制御方法
JP4193746B2 (ja) マトリックス状バス接続システム
JPH06195313A (ja) コンピュータシステムおよびそれに適した集積回路並びに要求選択回路
US9201819B2 (en) Command processing apparatus, method and integrated circuit apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110615

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120118