JP4095032B2 - ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置 - Google Patents

ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置 Download PDF

Info

Publication number
JP4095032B2
JP4095032B2 JP2003542485A JP2003542485A JP4095032B2 JP 4095032 B2 JP4095032 B2 JP 4095032B2 JP 2003542485 A JP2003542485 A JP 2003542485A JP 2003542485 A JP2003542485 A JP 2003542485A JP 4095032 B2 JP4095032 B2 JP 4095032B2
Authority
JP
Japan
Prior art keywords
scheduling
dram
thread
requests
order
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 - Lifetime
Application number
JP2003542485A
Other languages
English (en)
Other versions
JP2005508550A (ja
Inventor
ウォルフ ディートリッヒ ウィーバー
Original Assignee
ソニックス インコーポレイテッド
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25525212&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4095032(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ソニックス インコーポレイテッド filed Critical ソニックス インコーポレイテッド
Publication of JP2005508550A publication Critical patent/JP2005508550A/ja
Application granted granted Critical
Publication of JP4095032B2 publication Critical patent/JP4095032B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、複数の独立イニシエータが1つのダイナミックランダムアクセスメモリ(DRAM)サブシステムを共用するようなシステムに適用されるメカニズムに関する。
単一チップ上に構築されたシステムでは、コスト(コスト)、基板面積、及び電力上の理由から、1つのダイナミックランダムアクセスメモリ(DRAM)サブシステムに複数の独立イニシエータ(例えば、マイクロプロセッサ、信号プロセッサ等)がアクセスし、これらのイニシエータが該サブシステムを共用することは珍しいことではない。システムは、各イニシエータ毎に異なるサービス品質(QOS)を与えることが要求される。第2に、イニシエータに提示されるメモリ順序付けモデルが重要である。理想的には、イニシエータは可能な限り強く順序付けられた(strongly ordered)メモリモデルを使用することを望む。同時に、DRAM要求をDRAMサブシステムに提示する順序は、DRAM性能に劇的な効果をもたらし得る。更に、スレッドQOSまたはDRAM効率上の理由から要求を再順序付けすると、強く順序付けされたメモリモデルを傷つける恐れがある。要求されることは、強く順序付けされたメモリモデルを呈する一体化されたDRAMスケジューリングメカニズムであり、異なるイニシエータに対して独特なサービス品質を与えることであり、そしてDRAM効率を可能な限り高く維持することである。
異なる各イニシエータからの要求の流れは、スレッドとして表すことができる。もしDRAMスケジューラが同一スレッドからの要求を再順序付けしなければ、スレッド内要求順序は維持され、全体としてのDRAM要求順序は単にスレッド毎の順次要求の流れの交互配置(インタリービング)になる。これが「順序一貫性」の定義であり、複数のイニシエータ成分を含むシステムにとって利用可能な最強のメモリ順序付けモデルである。(順序一貫性のさらなる詳細に関しては、1979年9月のIEEEトランザクション・オン・コンピュータ C-28(9)の241-248ページに所載のL. ランポートの論文“マルチプロセスプログラムを正確に実行する多重処理コンピュータを如何に作るか”を参照されたい。)
従来のシステムは、DRAM効率スケジューリングを(もし行われていれば)行う箇所以外のシステム内の異なる点において要求を順序付けする、及び/またはシステムは、処理スレッド内の要求を再順序付けするの何れかを遂行する。例えば、要求は、イニシエータから標準コンピュータバスを介してDRAMコントローラへ運ぶことができる。(スレッド間の、及びスレッド内の)要求の順序はコンピュータバスへのアクセス時に確立され、DRAMコントローラが変更することは許されない。この場合、効率化のためのDRAMスケジューリングは、必要以上に制約されてDRAM効率の低下をもたらす。別の例においては、各イニシエータは、DRAMコントローラとのそれ自体の個々のインタフェースを有しており、DRAMコントローラは、スレッド順序を維持しながら要求をスケジュールできるようになっている。この種のシステムは十分な結果を達成する可能性を有してはいるが、DRAMコントローラへの配線が不経済である。このようなシステムにおいては、DRAM要求を1つのスレッド内で再順序付けすることが可能である。これはDRAM効率を高める結果をもたらすことはできるが、メモリモデルはかなり失われる(即ち、最早順序一貫性のメモリモデルを呈さなくなる)。強いメモリモデルを保持し、同時に、高いDRAM効率及びQOS保証を達成するために、メモリ要求を再順序付けできることが重要である。
本発明は、DRAMサブシステムのような1つの資源を、複数のイニシエータからスケジュールする方法及びシステムを提供する。各開始スレッドに異なるサービス品質を与えながら、資源利用率を高く保ち、強い順序づけ(strong ordering)モデルを維持する。
本明細書に記載されるメカニズムは、複数の独立イニシエータが1つのダイナミックランダムアクセスメモリ(DRAM)サブシステムを共用するようなシステムに適用される。
一実施の形態においては、本発明は、互いに独立した所定のサービス品質を異なるイニシエータに与えることを可能にし、同時に、DRAM効率を可能な限り高く保ち、且つイニシエータに強いメモリ順序付けモデルを提示する。
図1に、DRAMスケジューリングシステムの一実施の形態を高レベルブロック図で示す。異なるイニシエータからの要求10は、マルチスレッド化インタフェース15を通して到着する。イニシエータは、デバイスまたはプロセスとして実現することができる。異なるイニシエータからの要求は異なるスレッドにまたがって伝達され、これらのスレッドはインタフェースにおいて異なるスレッド識別子(“識別ID”)によって識別される。これによって、要求をスレッド(または、イニシエータ)によってスレッド毎の要求待ち行列(例えば、20、25、30)に分割することができる。これらのスレッド待ち行列20、25、30からの要求は、DRAM及びスレッドスケジューラ35に並列に提示される。DRAM及びスレッドスケジューラ35は、要求がDRAMコントローラ40に提示される順序を決定し、DRAMコントローラ40は、要求を実際のDRAMサブシステム45へ送る責を負う。応答50がDRAMコントローラ45から戻されると、それらはマルチスレッド化インタフェース15を介してイニシエータへ送り返される。以上にイニシエータからの要求の引き渡しを、マルチスレッド化インタフェース及びスレッド識別子を使用して説明した。代替実施の形態は、各イニシエータ毎に個々の単一スレッド化インタフェースを使用する。
DRAM及びスレッドスケジューラ35は、DRAM要求が処理される順序を確立する同期点として動作する。たとえ要求がマルチスレッド化インタフェースを通して或る順序で到着できるとしても、スレッドサービス品質(QOS)保証を満足させるために、またはDRAM効率を高めるために、DRAM及びスレッドスケジューラ35によってそれらの要求を再順序付けすることができる。反対に、DRAMコントローラ40ブロックは要求を順序通りに処理するので、DRAM及びスレッドスケジューラ35によって確立された順序が要求を完遂(コミット)する真の順序である。しかしながら、もしDRAM及びスレッドスケジューラ35が同一スレッドからの要求を再順序付けしなければ、スレッド内要求順序は維持されて全体としてのDRAM要求順序は単にスレッド毎の順次の要求の流れの交互配置になる。
図2に、プロセスの一実施の形態を簡易化したフローチャートで示す。ステップ205において、QOSを保証するための優先要求順序が識別、または、決定される。DRAMの効率のための処理要求の優先順序は、ステップ210において決定される。ステップ205及び210を遂行する際に、メモリ順序付けモデルの制約が斟酌される。もしステップ215において、DRAM効率を優先する順序がQOS保証を満足すると決定されれば、ステップ220においてDRAM効率順序に従って要求がスケジュールされる。もしステップ215においてDRAM効率順序がQOS保証を満足しないと決定されれば、ステップ225において次善のDRAM効率順序が決定される。このステップは、DRAM効率順序がQOS保証に合致するまで繰り返される。
図2に示すプロセスは、単なる一実施の形態に過ぎない。他の実施の形態も意図している。例えば、一実施の形態においては、QOS保証を満足させるように要求順序が決定され、次いでDRAM効率を最適化するように変更される。
図3は、図1のDRAM及びスレッドスケジューラの一実施の形態の詳細ブロック図である。異なるスレッドからの要求320、325、330がDRAMコントローラ310に提示され、順番付けられる。任意の一時点に要求を進めさせるスケジューリング決定は、スレッドサービス品質スケジューリング及びDRAMスケジューリングの組合わせを使用して導出される。
スレッドQOSスケジューラ340は、スレッドスケジューリング履歴を記憶するためにスレッド状態350を保持して使用し、どのスレッドを次に進行させるべきかの決定を支援する。例えば、もしスレッドがある量のDRAM帯域幅を保証されていれば、スレッドQOSスケジューラ340はどのスレッドがどれ程多くの量の帯域幅を使用したかを追跡し、スレッドに相応に優先順位を付ける。一方、DRAMスケジューラ345は、DRAM性能を最大化するように異なるスレッドからの要求に順番を付けることを試みる。例えば、DRAMスケジューラ345は、同一DRAMページにアクセスする要求を互いに接近させてスケジュールし、そのDRAMページをヒットする機会を増加させるように試みることができる。DRAMスケジューラ345は、そのスケジューリング決定を用いて支援するために、DRAM上の状態355及びアクセス履歴を使用し、保持する。
スレッドQOSスケジューラ340及びDRAMスケジューラ345は異なる挙動に関して最適化されており、従ってスケジュールの競合が発生し得る。高いDRAM効率を達成しながら、約束されたスレッドサービス品質を達成するために、2つのスケジューラ340、345の出力を組合わせる(ブロック360)か、または調停しなければならない。
DRAMスケジューラ345自体は、幾つかの異なるスケジューリング目的を平衡させなければならない。一実施の形態においては、スケジューリング成分は、以下に絶対スケジューリング及びコスト関数スケジューリングと称する2つの大きなカテゴリに分類することができる。
絶対スケジューリングとは、個々の各要求について単純にイエス/ノー決定を行うことができるスケジューリングのことである。一例は、DRAMバンクスケジューリングである。任意のDRAM要求は、それがアドレスしている正確に1つのバンクを有している。そのバンクは、要求を受入れるために現在利用可能であるか、または他の要求によって使用されていてこの時点にDRAMへの要求を送ることは無価値であるかの何れかである。
コスト関数スケジューリングは、各要求についてイエス/ノーの即答が存在しないためにより難解である。せいぜい、ある時点にDRAMへ要求を送ることがDRAM効率を幾分か高めることになる可能性があるとしか言えない。
コスト関数スケジューリングの一例は、共用DRAMデータバスの方向に基づく要求スケジューリングである。典型的には、DRAMデータバスの方向が読出しから書込みに、及びその逆に変化することに関連するコストが存在する。従って、各要求毎に切替えることはせずに、同一のデータバス方向を要求する要求を一纏めにすると有利である。どれ程多くの要求を一纏めにすべきかは、予測される要求入力パターン、及び効率と待ち時間との間のトレードオフ(その一例を図4に示す)に依存する。もしDRAMスケジューリングアルゴリズムが方向を頻繁に切替えるようにセットされていれば、切替えが多くなって多くのデータバスサイクルが浪費されるので、予測される効率は低くなる。一方、要求の平均待ち時間は、要求が到着し次第サービスされるので短くなる。
もしDRAMスケジューリングアルゴリズムがそれ程頻繁に切替えないように(即ち、各方向の要求をより多く纏めるように)セットされていれば、全体としてのDRAM効率は高くなる可能性はあるが、要求の平均待ち時間も長くなる。総合システム性能の最良点は容易に決定されず、要求パターン、待ち時間と効率との間のトレードオフ、及び切替えのコストに依存する。
以下に示す例では、コスト関数スケジューリングの基礎としてバスの方向を使用する。しかしながら、コスト関数スケジューリングを実現するためにはさまざまな他の基準を使用することができることを理解されたい。コスト関数スケジューリングの他の例は、1つのDRAMページを閉じ、別のページを開く時点の決定、及び異なる物理的バンクを使用するためにDRAM要求を切替える時点の決定を含む。
図5に、性能を最適化するために切替え点を動的に調整することができるようにプログラム可能なDRAMバススケジューラの一実施の形態を示す。一実施の形態におけるスケジューラ505は、データバス510の最後の方向(読出し、または書込み)、及びその方向を有していた要求の数のカウント515を追跡する。切替え点情報を保持するために、レジスタ520が付加されている。一実施の形態においては、システムが性能を最適化すべくDRAMスケジューラを動的に構成するように走行している間に、ソフトウェア525からこのレジスタ520へ書込むことができる。例えば、アプリケーションに従って、及び/またはアプリケーションによって、切替え点を動的に更新することが望ましい。一実施の形態においては、切替え点は過去の、及び多分現在の性能に基づいて経験的に決定される。
異なるスレッドに要求が提示されると、スケジューラ505は、現在のDRAMデータバスの方向、既に送られた要求のカウント、構成可能な切替え点、及び到来する新しい要求の方向を調べる。カウントが切替え点に達するまでは、現DRAMデータバスと同一方向を有する要求が反対方向に進行しようとする要求よりも優先される。切替え点に達すると、反対方向への要求が優先される。もし一方向からの要求だけが提示されれば、次の要求の進行方向の選択は存在しない。この実施の形態においては、切替え点を決定するために、カウント及び比較関数を使用している。しかしながら、他の関数も使用できることを理解されたい。更に、この例ではカウント及び比較関数をバス方向に対して適用しているが、カウントについての全ての型の測度も使用することができる。
図6に、プロセスの一実施の形態を示す。少なくとも1つの要求が利用可能であるものとして、ステップ605において現バス方向への何等かの要求が存在するか否かが決定される。もし存在しなければ、ステップ610においてバス方向が変更され、ステップ615においてカウントがリセットされ、そして新しいバス方向を使用して要求が処理される。ステップ625において、現バス方向において遂行された要求の数を追跡しているカウントがインクリメントされる。もし現バス方向への要求が存在すれば、ステップ630においてカウントが切替え点に達したか否かを調べる。もし切替え点に達していれば、ステップ635において逆のバス方向への何等かの要求が存在するか否かが決定される。もし存在しなければ、ステップ620において現方向への要求が処理され、ステップ625においてカウントがインクリメントされる。更に、ステップ630においてカウントが切替え点に達していないと決定されれば、ステップ620においてプロセスは現方向への要求を処理し続け、ステップ625においてカウントをインクリメントさせる。
一実施の形態においては、スレッドサービス品質スケジューリングとDRAMスケジューリングとを組合わせ、各スレッド毎に所望のサービス品質を達成し、しかもDRAM効率を最大にすることが望まれる。異なるスケジューリング成分を組合わせる一方法は、それらを1またはそれ以上の要求フィルタとして表現することであり、それらの1つを図7に示す。スレッド毎の要求705が入力され、選択的に濾過されるので、要求のサブセットだけがフィルタ710を通過する、即ちフィルタ710から出て行く。どの要求を濾過して除去すべきかの決定は、フィルタに結合されている制御ユニット715によってなされる。ユニット715は、その決定を、到来する要求、及び存在し得るユニットのある状態に基づいて行う。例えば、DRAMデータバスの方向の切替えを決定するコスト関数フィルタの場合、決定は、現バス方向、最後の切替え以降にその方向へ通過した要求の数、及び異なるスレッドから提示されている要求の型に基づいてなされる。この決定は、同一方向のDRAMデータバスについて続行されるので、逆方向への何れの要求も濾過されて除去される。
異なるスケジューリング成分をフィルタとして表現すると、種々のフィルタをスタックしてスケジューリング成分を組合わせることができる。フィルタのスタック順序は、異なるスケジューリング成分に与える優先順位を決定する。
図8は、所望の結果を達成するために、2つのスケジューリングアルゴリズムの異なる部分の順序付けを示す一実施の形態のブロック図である。図8に示す各ブロック810、820、830、840は、要求を入力(805)し、出力(860)するフィルタのように動作する。例えばフィルタ810、820、830はそれぞれ、スケジューリングのそのステージの基準に合致する要求だけを通過させることができる。例えば、DRAMバンクスケジューリング810は、利用可能なバンクに対する要求だけを通過させることができ、その基準に合値しない要求を濾過して除去する。スレッドQOSスケジューリング820は、所望の優先順位グループ内のスレッドだけを通過させることができる。コスト関数スケジューリングの例であるデータバススケジューリング830は、データバスのターンアラウンドを回避するために、読出しまたは書込みだけを優先的に通過させることができる。
詳述すれば、一実施の形態においては、異なるスレッドからDRAM要求805が入力されると、絶対DRAMスケジューリング要素810は、DRAMへ送ることができない要求を濾過して除去し、送ることができる要求だけをスレッドQOSスケジューリング820へ送り続けるように動作する。スレッドQOSスケジューリング820は、各スレッド毎のサービス品質要求を使用して要求をスケジュールする。スレッドQOSスケジューリング820は、この時点にサービスを受けるべきではない要求をスレッドから濾過して除去する。残された要求は、コスト関数DRAMスケジューラ830へ引き渡される。コスト関数DRAMスケジューラ830は、コスト関数スケジューリングに従って要求を除去する。もしDRAMスケジューリングへの1つより多くのコスト関数要素が存在すれば、これらの異なる要素は最高切替えコストから最低切替えコストまで順序付けられる。例えば、もしデータバスターンアラウンドのコストが3サイクルであれば、DRAMデータバススケジューリングは物理的バンクスケジューリングの前に配置される。もし1つより多くの要求がコスト関数DRAMスケジューラの底から発していれば、それらは到着時間によって優先順位付けされる。この最後のフィルタ840は、要求がそれらのスレッド優先順位内で枯渇するのを防ぐ。
以上の説明は、DRAMスケジューリングシステムの単なる一実施の形態に過ぎないことは容易に理解されよう。また所望の結果を達成するために、異なるしきい値、及び切替え点、及び/または異なるフィルタ順序を有する異なるフィルタの型を実現できることも容易に理解されよう。更に、添付図面には分離したフィルタ要素として示したが、これらのフィルタは単一の論理プロセッサ、または上述した濾過関数を表すプロセスの諸ステージを遂行するプロセスによって実現することが可能である。以上に本発明を、一実施の形態に関連して説明した。当業者ならば、以上の説明から、多くの代替、変更、変化、及び使用が明白であろう。
本発明のシステムの一実施の形態を示す図である。 スレッドスケジューリングとデバイススケジューリングとを組合わせる一実施の形態を示す簡易化したフローチャートである。 DRAM及びスレッドスケジューラの一実施の形態を示す図である。 コスト関数スケジューリングのトレードオフを示す簡易化した例である。 コスト関数DRAMバススケジューラの一実施の形態を示す図である。 コスト関数DRAMバススケジューリングプロセスの一実施の形態を示すフローチャートである。 要求フィルタとしてスケジューリング成分の一実施の形態を示す図である。 所望の結果を達成するためにスレッドスケジューリングとデバイススケジューリングの順序を定める一実施の形態を示す図である。

Claims (19)

  1. 1つの資源へアクセスするための要求をスケジュールする方法であって、上記要求は少なくとも1つのイニシエータからの少なくとも1つのスレッドから発したものであり、上記方法は、
    スレッド間での要求のスケジューリングと、上記資源へのイニシエータのアクセス要求のスケジューリングとを組合わせるステップと、
    各スレッドにおける読出し及び書込み要求の少なくとも一方を、該要求が、スレッドサービス品質(QOS)スケジューリングと、資源スケジューリングとの組合わせを使用することに基づいて発せられる順番で、処理するステップと、を備え
    上記資源がダイナミック・ランダム・アクセス・メモリ(DRAM)であることを特徴とする方法。
  2. 上記スケジューリングが、絶対スケジューリング及びコスト関数スケジューリングからなるグループから選択されることを特徴とする請求項1記載の方法。
  3. 上記組合わせステップは、更に、
    QOS保証に合致させるために要求の順序を決定するステップと、
    DRAM効率のために要求の順序を決定する決定するステップと、
    を含み、
    もし上記DRAM効率順序がQOS保証を満足し、且つスレッド内順序が維持されていれば上記DRAM効率順序に従って要求をスケジュールし、そうでなければ次に最適なDRAM効率順序に従って要求をスケジュールする、
    ことを特徴とする請求項2に記載の方法。
  4. 少なくとも部分的にスレッドのスケジューリングを決定するために、スレッドスケジューリング履歴を維持し、使用するステップを更に含むことを特徴とする請求項1に記載の方法。
  5. 上記スレッドスケジューリング履歴は、スレッド帯域幅利用率からなることを特徴とする請求項4に記載の方法。
  6. 少なくとも部分的に上記資源のスケジューリングを決定するために、上記デバイスの状態及びアクセス履歴を維持するステップを更に含むことを特徴とする請求項1に記載の方法。
  7. 上記スケジューリングは、帯域幅利用率に従ってスレッドを優先順位付け、且つ異なるスレッドからの要求を決定されたデバイス性能を達成するように順番付けすることによって決定されることを特徴とする請求項1に記載の方法。
  8. 上記絶対スケジューリングには、DRAMバンクスケジューリングが含まれることを特徴とする請求項2に記載の方法。
  9. 上記スケジューリングは、DRAMを閉じ、別のDRAMを開く時点の決定、DRAMの異なる物理的バンクを使用するためにDRAM要求を切り替える時点の決定、及びDRAMに結合されているバスの方向を切り替える時点の決定からなるグループから選択されることを特徴とする請求項1に記載の方法。
  10. 1つの資源へのアクセスをスケジュールするスケジューリング装置であって、
    少なくとも1つのイニシエータからの少なくとも1つのスレッドから発した少なくとも1つのアクセス要求を受信するように結合されている入力部と、
    スレッド間での要求のスケジューリングと、上記資源へのイニシエータアクセスのスケジューリングとを組合わせ、各スレッドにおける要求を、該要求が、スレッドサービス品質(QOS)スケジューリングと、資源スケジューリングとの組合わせを使用することに基づいて発せられる順番で、処理するロジック手段と、
    を備え、
    上記資源がダイナミック・ランダム・アクセス・メモリ(DRAM)であることを特徴とするスケジューリング装置。
  11. 上記ロジック手段は、スレッドサービス品質(QOS)保証スケジューリングと、DRAMコスト関数スケジューリングと、絶対スケジューリングとの組合わせを使用することを特徴とする請求項10に記載のスケジューリング装置。
  12. スレッドスケジューリング履歴を更に備え、
    上記ロジック手段は、少なくとも部分的にスケジューリングを決定するために上記スレッド履歴を使用する、
    ことを特徴とする請求項10に記載のスケジューリング装置。
  13. 上記スレッドスケジューリング履歴は、スレッド帯域幅利用率からなることを特徴とする請求項12に記載のスケジューリング装置。
  14. 少なくとも部分的に上記資源のスケジューリングを決定するために使用される状態及びアクセス履歴を更に備えていることを特徴とする請求項10に記載のスケジューリング装置。
  15. 上記少なくとも1のイニシエータからのスレッドのスケジューリングは、絶対スケジューリング及びコスト関数スケジューリングからなるグループから選択されることを特徴とする請求項10に記載のスケジューリング装置。
  16. コスト関数スケジューリングが、DRAMを閉じ、別のDRAMを開く時点の決定、DRAMの異なる物理的バンクを使用するためにDRAM要求を切り替える時点の決定、及びDRAMに結合されているバスの方向を切り替える時点の決定からなるグループから選択されることを特徴とする請求項10に記載のスケジューリング装置。
  17. 1つの資源へアクセスするための要求をスケジュールする手段であって、上記要求は少なくとも1つのイニシエータからの少なくとも1つのスレッドから発したものである、手段と、
    スレッド間で要求をスケジューリングする手段と、
    上記資源へのイニシエータのアクセス要求をスケジューリングし、各スレッドにおける要求を、該要求をスレッドサービス品質(QOS)スケジューリングと、資源スケジューリングとの組合わせを使用することに基づいて発せられる順番で、処理する手段と、を備え
    上記資源がダイナミック・ランダム・アクセス・メモリ(DRAM)であることを特徴とする装置。
  18. QOS保証に合致させるために要求の順序を決定する手段と、
    資源効率のために要求の順序を決定する手段と、
    を更に含み、
    もし上記資源効率順序がQOS保証を満足し、且つスレッド内順序が維持されていれば最善の資源効率順序に従って要求をスケジュールし、そうでなければ次善の資源効率順序に従って要求をスケジュールする、
    ことを特徴とする請求項17に記載の装置。
  19. DRAMの異なる物理的バンクを使用するためにDRAM要求を切り替える時点を決定するための手段を更に含む請求項17記載の装置。
JP2003542485A 2001-10-12 2002-02-21 ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置 Expired - Lifetime JP4095032B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/977,510 US6961834B2 (en) 2001-10-12 2001-10-12 Method and apparatus for scheduling of requests to dynamic random access memory device
PCT/US2002/005288 WO2003040927A1 (en) 2001-10-12 2002-02-21 Method and apparatus for scheduling of requests to a dynamic random access memory device

Publications (2)

Publication Number Publication Date
JP2005508550A JP2005508550A (ja) 2005-03-31
JP4095032B2 true JP4095032B2 (ja) 2008-06-04

Family

ID=25525212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003542485A Expired - Lifetime JP4095032B2 (ja) 2001-10-12 2002-02-21 ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置

Country Status (6)

Country Link
US (1) US6961834B2 (ja)
EP (1) EP1435039B1 (ja)
JP (1) JP4095032B2 (ja)
AT (1) ATE377793T1 (ja)
DE (1) DE60223394T2 (ja)
WO (1) WO2003040927A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170136382A (ko) * 2016-06-01 2017-12-11 주식회사 맴레이 메모리 컨트롤러, 그리고 이를 포함하는 메모리 모듈 및 프로세서

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804738B2 (en) * 2001-10-12 2004-10-12 Sonics, Inc. Method and apparatus for scheduling a resource to meet quality-of-service restrictions
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US7356633B2 (en) * 2002-05-03 2008-04-08 Sonics, Inc. Composing on-chip interconnects with configurable interfaces
US7194566B2 (en) * 2002-05-03 2007-03-20 Sonics, Inc. Communication system and method with configurable posting points
US7254603B2 (en) * 2002-05-03 2007-08-07 Sonics, Inc. On-chip inter-network performance optimization using configurable performance parameters
US7302691B2 (en) * 2002-05-10 2007-11-27 Sonics, Incorporated Scalable low bandwidth multicast handling in mixed core systems
US7836252B2 (en) * 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7603441B2 (en) * 2002-12-27 2009-10-13 Sonics, Inc. Method and apparatus for automatic configuration of multiple on-chip interconnects
US7827283B2 (en) * 2003-02-19 2010-11-02 International Business Machines Corporation System for managing and controlling storage access requirements
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7665069B2 (en) * 2003-10-31 2010-02-16 Sonics, Inc. Method and apparatus for establishing a quality of service model
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US7590797B2 (en) * 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7681196B2 (en) * 2004-11-18 2010-03-16 Oracle International Corporation Providing optimal number of threads to applications performing multi-tasking using threads
US20060112240A1 (en) * 2004-11-24 2006-05-25 Walker Robert M Priority scheme for executing commands in memories
JP2008541217A (ja) * 2005-05-04 2008-11-20 エヌエックスピー ビー ヴィ メモリーコントローラ、メモリーアクセスの制御方法、及びメモリーコントローラを具えたシステム
KR100784385B1 (ko) * 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
US8225064B2 (en) * 2005-12-16 2012-07-17 Nec Corporation Storage region allocation system, storage region allocation method, and control apparatus
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US7814243B2 (en) * 2007-06-01 2010-10-12 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
US9588810B2 (en) * 2007-08-08 2017-03-07 Microsoft Technology Licensing, Llc Parallelism-aware memory request scheduling in shared memory controllers
US8260990B2 (en) * 2007-11-19 2012-09-04 Qualcomm Incorporated Selective preclusion of a bus access request
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
US8607234B2 (en) 2009-07-22 2013-12-10 Empire Technology Development, Llc Batch scheduling with thread segregation and per thread type marking caps
US8799912B2 (en) * 2009-07-22 2014-08-05 Empire Technology Development Llc Application selection of memory request scheduling
US8839255B2 (en) * 2009-07-23 2014-09-16 Empire Technology Development Llc Scheduling of threads by batch scheduling
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8438306B2 (en) 2010-11-02 2013-05-07 Sonics, Inc. Apparatus and methods for on layer concurrency in an integrated circuit
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9563369B2 (en) * 2014-04-14 2017-02-07 Microsoft Technology Licensing, Llc Fine-grained bandwidth provisioning in a memory controller
US10572399B2 (en) * 2016-07-13 2020-02-25 Qualcomm Incorporated Memory request arbitration
US10481944B2 (en) * 2017-08-09 2019-11-19 Xilinx, Inc. Adaptive quality of service control circuit

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274769A (en) * 1988-08-29 1993-12-28 Fujitsu Limited System for transferring data between blocks
US5287464A (en) * 1990-10-24 1994-02-15 Zilog, Inc. Semiconductor multi-device system with logic means for controlling the operational mode of a set of input/output data bus drivers
JP2575557B2 (ja) * 1990-11-13 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション スーパーコンピユータシステム
US5218456A (en) * 1991-07-22 1993-06-08 Xerox Corporation Disk bandwidth allocations to prioritize disk requests
US5530901A (en) * 1991-11-28 1996-06-25 Ricoh Company, Ltd. Data Transmission processing system having DMA channels running cyclically to execute data transmission from host to memory and from memory to processing unit successively
JP2531903B2 (ja) * 1992-06-22 1996-09-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュ―タ・システムおよびシステム拡張装置
US5664153A (en) * 1993-04-21 1997-09-02 Intel Corporation Page open/close scheme based on high order address bit and likelihood of page access
US5469473A (en) * 1994-04-15 1995-11-21 Texas Instruments Incorporated Transceiver circuit with transition detection
SE515901C2 (sv) * 1995-12-28 2001-10-22 Dynarc Ab Resursadministrering, plan och arrangemang
US5809538A (en) * 1996-02-07 1998-09-15 General Instrument Corporation DRAM arbiter for video decoder
US5912872A (en) * 1996-09-27 1999-06-15 Digital Optics Corporation Integrated optical apparatus providing separated beams on a detector and associated methods
US5926649A (en) * 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data
US5996037A (en) * 1997-06-03 1999-11-30 Lsi Logic Corporation System and method for arbitrating multi-function access to a system bus
GB2326065B (en) * 1997-06-05 2002-05-29 Mentor Graphics Corp A scalable processor independent on-chip bus
US6092137A (en) * 1997-11-26 2000-07-18 Industrial Technology Research Institute Fair data bus arbitration system which assigns adjustable priority values to competing sources
US6023720A (en) * 1998-02-09 2000-02-08 Matsushita Electric Industrial Co., Ltd. Simultaneous processing of read and write requests using optimized storage partitions for read and write request deadlines
AU6311299A (en) * 1998-07-08 2000-02-01 Broadcom Corporation Network switching architecture with multiple table synchronization, and forwarding of both IP and IPX packets
US6363445B1 (en) * 1998-10-15 2002-03-26 Micron Technology, Inc. Method of bus arbitration using requesting device bandwidth and priority ranking
US6167445A (en) * 1998-10-26 2000-12-26 Cisco Technology, Inc. Method and apparatus for defining and implementing high-level quality of service policies in computer networks
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
US6253269B1 (en) * 1998-12-22 2001-06-26 3Com Corporation Bus arbiter system and method for managing communication buses
WO2001075620A1 (en) * 2000-04-03 2001-10-11 Advanced Micro Devices, Inc. Bus bridge including a memory controller having an improved memory request arbitration mechanism
US6330225B1 (en) * 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170136382A (ko) * 2016-06-01 2017-12-11 주식회사 맴레이 메모리 컨트롤러, 그리고 이를 포함하는 메모리 모듈 및 프로세서

Also Published As

Publication number Publication date
EP1435039B1 (en) 2007-11-07
EP1435039A1 (en) 2004-07-07
DE60223394T2 (de) 2008-08-28
WO2003040927A1 (en) 2003-05-15
ATE377793T1 (de) 2007-11-15
DE60223394D1 (de) 2007-12-20
EP1435039A4 (en) 2006-06-28
JP2005508550A (ja) 2005-03-31
US6961834B2 (en) 2005-11-01
US20030074519A1 (en) 2003-04-17

Similar Documents

Publication Publication Date Title
JP4095032B2 (ja) ダイナミックランダムアクセスメモリデバイスへの要求をスケジュールする方法及び装置
US6578117B2 (en) Method and apparatus for scheduling requests using ordered stages of scheduling criteria
JP2005505854A (ja) 構成可能なしきい値を使用して1つの資源への要求をスケジュールする方法及び装置
JP4723260B2 (ja) ソースデバイスに対するリクエストをスケジューリングする装置及び方法
EP1435043B1 (en) Method and apparatus for scheduling a resource to meet quality-of-service restrictions
KR101086514B1 (ko) 연속 매체 우선순위 인식 저장장치 스케줄러
US8108571B1 (en) Multithreaded DMA controller
US7559062B2 (en) Intelligent scheduler for multi-level exhaustive scheduling
JP5270077B2 (ja) 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
US6473780B1 (en) Scheduling of direct memory access
US20060146864A1 (en) Flexible use of compute allocation in a multi-threaded compute engines
US6615295B2 (en) Relaxed read completion ordering in a system using transaction order queue
US11061724B2 (en) Programmable hardware scheduler for digital processing systems
US8560784B2 (en) Memory control device and method
US7028116B2 (en) Enhancement of transaction order queue
US10713089B2 (en) Method and apparatus for load balancing of jobs scheduled for processing
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JPH05197574A (ja) タスク時間待ち制御装置
JP5494925B2 (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法
JPH05241958A (ja) 仮想記憶制御方式
JPH01237718A (ja) バッファ制御方式

Legal Events

Date Code Title Description
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: 20070507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080306

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

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4095032

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

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130314

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

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140314

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term