(57)【特許請求の範囲】
【請求項１】
リソースへのアクセスをスケジューリングする方法であって、
各リクエストスレッドについてサービスの品質（ＱＯＳ）を維持する、前記リクエストスレッドを処理するためのＱＯＳスケジューリングと、前記リソースの効率を最大にするリソーススケジューリングとを組み合わせることを包含し、
前記リソースがダイナミックランダムアクセスメモリ（ＤＲＡＭ）であり、
ＱＯＳ保証を満足するリクエストの順序を決定し且つＤＲＡＭ効率についてリクエストの順序を決定するようにスケジューリングのステージが順序付けされ、
前記ＤＲＡＭ効率がＱＯＳ保証を満足する場合にはリクエストが第１のＤＲＡＭ効率順序に従ってスケジューリングされ、それ以外の場合にはリクエストが第２のＤＲＡＭ効率順序に従ってスケジューリングされる、
ことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、前記組み合わせることが、前記ステージ（各ステージがＱＯＳ及びリソーススケジューリング基準の１つを反映している）においてリクエストをフィルタリングすることと、前記組み合わされたＱＯＳ及びリソーススケジューリング又はリクエストの優先順位を達成するように前記ステージの順序を決定することとを包含する、ことを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記組み合わせることが、前記ステージ（各ステージがＱＯＳ及びリソーススケジューリング基準の１つを反映している）においてリクエストをフィルタリングすることと、前記組み合わされたＱＯＳ及びリソーススケジューリング又はリクエストの優先順位を達成するように前記ステージを順序付けることとを包含し、前記フィルタリングすることが、前記リソースの利用可能性に基づいて受信可能なリクエストをフィルタリングすること、前記ＱＯＳ保証を満足するリクエストをフィルタリングすること、前記リソースのコストファンクションスケジューリングに従ってリクエストをフィルタリングすること、及び前記フィルタリングされたリクエストを前記リソースによって処理するために提供することを包含する、ことを特徴とする方法。
【請求項４】
請求項３に記載の方法において、前記リソースのコストファンクションスケジューリングに従ってリクエストをフィルタリングすることが、最高のスイッチコストから最低のスイッチコストへ順序付けされるフィルタリングを包含する、ことを特徴とする方法。
【請求項５】
請求項３に記載の方法において、前記リクエストを提供することに際して、そのリクエストが複数のリクエストを含む場合、更に、スケジューリングのために前記リクエストについて、到着時間に従って優先順位の順序付けを行うことを包含する、ことを特徴とする方法。
【請求項６】
デバイスへのアクセスをスケジューリングするスケジューリング装置であって、
リクエストスレッドを処理するための、サービス品質（ＱＯＳ）及びリソースの組み合わせスケジューラであって、各スレッドについてＱＯＳが維持され、リソース効率が最大にされる、スケジューラを備え、
前記ＱＯＳ及びリソースの組み合わせスケジューラが、複数のリクエストフィルタを包含し、
各リクエストフィルタは、複数のＱＯＳ及びリソーススケジューリング基準の１つを反映し、
前記複数のリクエストフィルタが、各リクエストフィルタの優先順位を決定するように順序付けされ、
前記リクエストフィルタが、前記リソースの利用不可能性に基づいて受信不可能なリクエストをフィルタリングする第１のリクエストフィルタと、前記第１のリクエストフィルタから第１セットのフィルタリングされたリクエストを受け取る第２のリクエストフィルタと、前記第２のリクエストフィルタから第２セットのフィルタリングされたリクエストを受け取る第３のリクエストフィルタとを含み、
前記第２のリクエストフィルタが、ＱＯＳ保証に従ってリクエストをフィルタリングし、
前記第３のリクエストフィルタが、前記リソースのコストファンクションスケジューリングに従ってリクエストをフィルタリングして前記リソースによって処理すべき第３セットのフィルタリングされたリクエストを提供し、
前記リソースがダイナミックランダムアクセスメモリ（ＤＲＡＭ）である、
ことを特徴とする装置。
【請求項７】
請求項６に記載の装置において、前記第３のリクエストフィルタが、最高のスイッチコストから最低のスイッチコストへ順序付けされた複数のコストファンクションコンポーネントを包含することを特徴とする装置。
【請求項８】
請求項６に記載の装置において、前記第３フィルタが第３のセットのリクエストを提供する場合、該第３のセットのリクエストは、スケジューリングの到着時間に従って優先順位が順序付けされることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【技術分野】
ここに述べるメカニズムは、多数の独立したイニシエータがダイナミックランダムアクセスメモリ（ＤＲＡＭ）のサブシステムを共用するシステムに適用される。
【０００２】
【背景技術】
単一チップに形成されたシステムでは、多数の独立したイニシエータ（マイクロプロセッサ、信号プロセッサ等）が、コスト、ボード面積及び電力の理由で、これらイニシエータ間に共用されたダイナミックランダムアクセスメモリ（ＤＲＡＭ）サブシステムにアクセスすることは、珍しいことではない。このシステムは、イニシエータの各々に異なるサービス品質（ＱＯＳ）が与えられることを必要とする。第２に、イニシエータに提示されるメモリ順序付けモデルも重要となる。理想的には、イニシエータは、できるだけ強力に順序付けされたメモリモデルを使用することを希望する。同時に、ＤＲＡＭ要求（リクエスト）がＤＲＡＭサブシステムに提示される順序は、ＤＲＡＭ性能に対して著しい影響を及ぼし得る。スレッドＱＯＳ又はＤＲＡＭ効率の理由でリクエストを更に再順序付けすると、強力に順序付けされたメモリモデルを妥協させることができる。強力に順序付けされたメモリモデルを提示し、異なるイニシエータに異なるサービス品質を与え、そしてＤＲＡＭ効率をできるだけ高く保持する独特のＤＲＡＭスケジューリングメカニズムが要求される。
【０００３】
各異なるイニシエータからのリクエストストリームは、スレッドとして説明することができる。ＤＲＡＭスケジューラが同じスレッドからのリクエストを再順序付けしない場合には、スレッド内のリクエスト順序が維持され、そして全体的なＤＲＡＭリクエスト順序は、単に、スレッド当たりの逐次のリクエストストリームをインターリーブしたものとなる。これは、「逐次一貫性」、即ち多数のイニシエータコンポーネントを含むシステムに使用可能な最も強いメモリ順序付けモデルの定義である。（逐次一貫性の更なる説明については、Ｌ．ランポート氏の「How to Make a Multi-processing Computer That Correctly Executes Multi-process Programs」、ＩＥＥＥトランザクション・オン・コンピュータズ、Ｃ−２８（９）：２４１−２４８，１９７９年９月、を参照されたい。）
【０００４】
既存のシステムは、ＤＲＡＭ効率のスケジューリングが生じる（もし行われれば）場所以外のシステム内のポイントでリクエストを順序付けし、及び／又はそれらシステムは、処理スレッド内でリクエストを再順序付けする。例えば、リクエストは、イニシエータから標準的なコンピュータバスを経てＤＲＡＭコントローラへ搬送される。リクエストの順序（スレッド間及びスレッド内）は、コンピュータバスへアクセスするときに確立され、ＤＲＡＭコントローラによる変更は許されない。この場合に、効率に対するＤＲＡＭのスケジューリングは、低いＤＲＡＭ効率を生じるに必要なもの以上の制約を受ける。異なる例では、各イニシエータは、ＤＲＡＭコントローラとのそれ自身の個々のインターフェイスを有し、ＤＲＡＭコントローラがスレッドの順序を維持しながらリクエストをスケジューリングするのを許す。この種のシステムは、潜在的に満足な結果を達成するが、ＤＲＡＭコントローラへの配線を浪費する。このようなシステムでは、スレッド内でＤＲＡＭリクエストを再順序付けすることができる。これは、高いＤＲＡＭ効率を生じるが、メモリモデルを著しく緩和し、即ち逐次一貫性のメモリモデルをもはや提示しない。従って、強力なメモリモデルを保持すると同時に、メモリリクエストの再順序付けを許して、高いＤＲＡＭ効率及びＱＯＳ保証を達成することが重要である。
【０００５】
【発明の開示】
本発明は、複数のイニシエータからＤＲＡＭサブシステムのような１つのリソースへのリクエストをスケジューリングすることに関する。各イニシエータスレッドには、異なるサービス品質が与えられる一方、リソース利用度が高く保持され、そして強力な順序付けモデルが維持される。
【０００６】
【発明を実施するための最良の形態】
ここに説明するメカニズムは、多数の独立したイニシエータがダイナミックランダムアクセスメモリ（ＤＲＡＭ）サブシステムを共用するシステムに適用される。
【０００７】
１つの実施形態において、本発明は、異なるイニシエータに、互いに独立した所定のサービス品質を与えると同時に、ＤＲＡＭの効率をできるだけ高く保持し、そして強いメモリ順序付けモデルをイニシエータに提示できるようにする。
【０００８】
図１は、ＤＲＡＭスケジューリングシステムの一実施形態を示す高レベルブロック図である。異なるイニシエータからのリクエスト１０は、マルチスレッドのインターフェイス１５を経て到着する。イニシエータは、デバイス又はプロセスとして実施される。異なるイニシエータからのリクエスト１０は、インターフェイスにおいて異なるスレッド識別子（「スレッドＩＤ」）で識別された異なるスレッドを横切って通信される。これは、リクエストをスレッド（又はイニシエータ）により、スレッドごとのリクエスト待ち行列（パースレッドリクエストキュー）、例えば、２０、２５、３０に分割できるようにする。これらスレッド待ち行列２０、２５、３０からのリクエストは、ＤＲＡＭ及びスレッドスケジューラ３５へ並列に提示される。このＤＲＡＭ及びスレッドスケジューラ３５は、リクエストがＤＲＡＭコントローラ４０へ提示される順序を決定し、ＤＲＡＭコントローラは、次いで、実際のＤＲＡＭサブシステム４５へリクエストを送信する役割を果たす。ＤＲＡＭコントローラ４０から応答（レスポンス）５０が返送されるときには、それらが、マルチスレッドのインターフェイス１５を経てイニシエータへ返送される。マルチスレッドインターフェイス及びスレッド識別子を使用してイニシエータからのリクエストの供給を説明した。別の実施形態では、イニシエータごとに個々に単一スレッドインターフェイスが使用される。
【０００９】
ＤＲＡＭ及びスレッドスケジューラ３５は、ＤＲＡＭリクエストが処理される順序を確立する同期ポイントとして働く。たとえリクエストがマルチスレッドインターフェイスを経てある順序で到着したとしても、それらリクエストは、スレッドのサービス品質（ＱＯＳ）保証を満足するか又はＤＲＡＭ効率を高めるために、ＤＲＡＭ及びスレッドスケジューラ３５により再順序付けすることができる。逆に、ＤＲＡＭコントローラ４０のブロックは、ＤＲＡＭ及びスレッドスケジューラ３５により確立される順序が、実際に、リクエストがコミットされた順序であるように、リクエストを順次に処理することもできる。しかしながら、ＤＲＡＭ及びスレッドスケジューラ３５が、同じスレッドからのリクエストを再順序付けしない場合には、スレッド内のリクエスト順序が維持され、そして全ＤＲＡＭリクエスト順序は、単に、スレッドごとの逐次リクエストストリームをインターリーブしたものとなる。
【００１０】
図２の簡単なフローチャートを参照して、プロセスの一実施形態を説明する。ステップ２０５において、ＱＯＳ保証に対する好ましいリクエスト順序が識別又は決定される。ＤＲＡＭ効率に対するリクエストを処理するための好ましい順序は、ステップ２１０で決定される。ステップ２０５及び２１０を実行する際には、メモリ順序付けモデルの制約が考慮に入れられる。好ましいＤＲＡＭ効率順序がＱＯＳ保証を満足する場合には（ステップ２１５）、ＤＲＡＭ効率順序に基づいてリクエストがスケジューリングされる（ステップ２２０）。ＤＲＡＭ効率順序がＱＯＳ保証を満足しない場合には（ステップ２１５）、次に最良のＤＲＡＭ効率順序が決定される（ステップ２２５）。このステップは、ＤＲＡＭ効率順序がＱＯＳ保証を満足するまで繰り返される。
【００１１】
図２に示すプロセスは、１つの実施形態に過ぎない。他の実施形態も意図される。例えば、１つの実施形態では、ＱＯＳ保証を満足するリクエスト順序が決定され、次いで、ＤＲＡＭ効率を最適化するように変更される。
【００１２】
図３は、図１のＤＲＡＭ及びスレッドスケジューラの一実施形態を詳細に示す。異なるスレッドからのリクエスト３２０、３２５、３３０がＤＲＡＭコントローラ３１０へ順次に送られる。任意の時間にリクエストが進行するために得るスケジューリングの判断は、スレッドＱＯＳのスケジューリング及びＤＲＡＭのスケジューリングの組み合わせを使用して導出される。
【００１３】
スレッドＱＯＳスケジューラ３４０は、スレッド状態３５０を保持しそしてそれを使用して、スレッドスケジューリング経過を想起し、そしてどのスレッドを次に進行させるべきか決定する上で助けとする。例えば、スレッドに、ある量のＤＲＡＭ帯域巾が保証される場合には、スレッドＱＯＳスケジューラ３４０は、どのスレッドがどれほどの帯域巾を使用したか追跡し、そしてそれに応じてスレッドの優先順位を決める。一方、ＤＲＡＭスケジューラ３４５は、異なるスレッドからのリクエストをシーケンシングし、ＤＲＡＭ性能を最大にするように試みる。例えば、ＤＲＡＭスケジューラ３４５は、互いに接近した同じＤＲＡＭページにアクセスするリクエストをスケジューリングして、ＤＲＡＭページヒットを得る機会を増加するように試みることができる。ＤＲＡＭスケジューラ３４５は、ＤＲＡＭにおける状態３５５を使用しそして保持し、そしてその経過にアクセスしてそのスケジューリングを判断する上で助けとなるようにする。
【００１４】
スレッドＱＯＳスケジューラ３４０及びＤＲＡＭスケジューラ３４５は、異なる振舞いに対して最適化され、そして相反するスケジュールを生じることがある。２つのスケジューラ３４０、３４５の出力は、約束のスレッドサービス品質を得る一方、高いＤＲＡＭ効率を得るために、組み合わされる（３６０）か、又は仲裁されねばならない。
【００１５】
ＤＲＡＭスケジューラ３４５は、それ自体、多数の異なるスケジューリング目標のバランスをとらねばならない。１つの実施形態では、スケジューリングコンポーネントは、ここでは絶対的スケジューリング及びコストファンクションスケジューリングと称される２つの広いカテゴリーに分類することができる。
【００１６】
絶対的スケジューリングとは、各個々のリクエストに関して簡単なイエス／ノー判断を行うことのできるスケジューリングを指す。その一例は、ＤＲＡＭバンクスケジューリングである。いかなる所与のＤＲＡＭリクエストも、それがアドレスする厳密に１つのバンクを有する。このバンクは、リクエストを受信するために現在使用できるか、又は他のリクエストでビジーであってこの時点でＤＲＡＭへリクエストを送信する価値がないかのいずれかである。
【００１７】
コストファンクションスケジューリングは、各リクエストに対して直ちにイエス／ノー応答がないという点で更に微妙である。せいぜい、ある時間にＤＲＡＭへリクエストを送信すると、高いＤＲＡＭ効率を生じることが多少あると言える。
【００１８】
コストファンクションスケジューリングの一例は、共用ＤＲＡＭデータバスの方向に基づくリクエストスケジューリングである。典型的に、ＤＲＡＭデータバスの方向を読み取りから書き込みへそしてその逆に切り換えることに関連したコストがある。従って、各リクエスト間で切り換えるのではなく、同じデータバス方向を必要とするリクエストを一緒に集めるのが効果的である。どれほど多くのリクエストを一緒に集めるかは、予想されるリクエスト入力パターン、及び効率と待ち時間との間の妥協に依存し、その一例が図４に示されている。ＤＲＡＭスケジューリングアルゴリズムが方向を頻繁に切り換えるようにセットされた場合には、多数の切り換えが多くのデータバスサイクルを浪費させるので、予想される効率は低い。一方、リクエストが到着するや否やサービス状態となるので、リクエストの平均待機時間（待ち時間）は低い。
【００１９】
ＤＲＡＭスケジューリングアルゴリズムが、頻繁に切り換わらない（即ち各方向のリクエストをより多く集める）ようにセットされた場合には、全ＤＲＡＭ効率は高くなるが、リクエストの平均待ち時間も長くなる。全システム性能の最良のポイントは容易に決定されず、これは、リクエストパターン、待ち時間と効率との間の妥協、及び切り換えのコストに依存する。
【００２０】
以下の例は、バス方向をコストファンクションスケジューリングの基礎として使用する。しかしながら、種々の他の基準を使用して、コストファンクションスケジューリングを実施することも意図される。コストファンクションスケジューリングの他の例は、１つのＤＲＡＭページをいつ閉じそして別のページをいつ開くか判断し、そしてＤＲＡＭリクエストをいつ切り換えて異なる物理的バンクを使用するか判断することを含む。
【００２１】
図５は、最適なパーフォーマンスに対してスイッチ点の動的な調整ができるようにプログラム可能なＤＲＡＭデータバススケジューラの１実施例を示している。１つの実施例において、スケジューラ５０５は、データバスの最後の方向（読み出し又は書き込み）５１０のトラック及びその方向を持ったリクエストの数のカウント５１５を維持する。スイッチ点情報を保持するためにレジスタ５２０が加えられる。１つの実施例では、このレジスタ５２０に、最適なパーフォーマンスに対してＤＲＡＭスケジューラを動的に構成するためにシステムの動作中にソフトウェア５２５により書き込むことができる。たとえば、アプリケーションに従って及び／又はアプリケーションによりスイッチ点を動的に更新することが望ましい。１つの実施例では、スイッチ点は、過去又は現在のパーフォーマンスに基づいて経験的に決定される。
【００２２】
リクエストは異なるスレッド上で提供されるので、スケジューラ５０５が、ＤＲＡＭデータバスの現在の方向、既に送られたリクエストのカウント、構成可能なスイッチ点、及び入来する新しいリクエストの方向を見る。カウントがスイッチ点に到達する前では、現在のＤＲＡＭデータバスと同じ方向を持つリクエストの方がそれらが逆方向へ進むものよりも選択される。スイッチ点に到達すると、逆方向へのリクエストが選択される。１つの方向からのリクエストだけが提供される場合には、次のリクエストがどちらの方向へ進むかは全く選択されない。本実施例では、スイッチ点を決定するためにカウント及び比較ファンクションが使用される。しかしながら、他のファンクションを使用することも考慮される。さらに、この例では、カウント及び他のファンクションをバス方向に適用したが、カウントに対してあらゆるタイプの手段が使用できる。
【００２３】
プロセスの１つの実施例が図６により示されている。ステップ６０５において、少なくとも１つのリクエストが利用可能であると考えると、バスの現在の方向についてリクエストがあるかどうかが決定される。リクエストがなければ、バスの方向が変更され（ステップ６１０）カウントリセット（ステップ６１５）し、バスの新しい方向を使用してリクエストが処理される（ステップ６２０）。現在のバスの方向で実行されたリクエストの数のトラックを維持するカウントがインクリメントされる（ステップ６２５）。バスのカウント方向についてリクエストがある場合には、その後、カウントがスイッチ点に到達したかどうかがチェックされる。その後スイッチ点に到達した場合には、バスの逆方向についてリクエストがあるかどうかが決定される（ステップ６３５）。スイッチ点に到達していない場合には、現在の方向についてリクエストが処理される（ステップ６２０）。加えて、カウントがスイッチ点に到達していない場合には、処理されている現在の方向についてリクエストの処理を続行し、カウントがインクリメントされる（ステップ６２０及び６２５）。
【００２４】
１つ実施例では、スレッドＱＯＳスケジューリングとＤＲＡＭスケジューリングとを組み合わせてＤＲＡＭ効率を最大にしながら各スレッドについて所望のサービスの品質を残すスケジューリング結果を達成するのが望ましい。異なるスケジューリングコンポーネントを組み合わせる１つの方法は、それらを１つ以上のリクエストフィルタ（その１つが図７に示されている）として表すことである。パースレッドリクエスト７０５が入力され、そして選択的にフィルタされ、それにより、リクエストの一部のセットのみが、フィルタ７１０を介してフィルタリングされ、すなわちフィルタ７１０から出力される。どのリクエストがフィルタ出力されるべきかの決定は、フィルタに取り付けられた制御ユニット７１５により行われる。このユニット７１５は、この決定を入来するリクエスト及び可能ならばユニット７１５のある状態に基づいて行う。たとえば、ＤＲＡＭの方向を切り換えることを決定するコストファンクションフィルタについては、その決定は、バスの現在の方向、最後の切り換え以降に既にその方向に通過したリクエストの数及び異なるスレッドから提供されるリクエストのタイプに基づいて実行される。この決定は、ＤＲＡＭデータバスと同じ方向について続行されるかもしれないし、したがって、逆方向のリクエストがあればフィルタ出力される。
【００２５】
異なるスケジューリングコンポーネントがフィルタとして表されると、各種フィルタをスタックしてスケジューリングコンポーネントを組み合わせることができる。フィルタをスタックする順序は、異なるスケジューリングコンポーネントに与えられる優先順位を決定する。
【００２６】
図８は、所望の結果を達成するための、２つのスケジューリングアルゴリズムの異なる部分の順序付けを示す１つの実施例のブロック図である。図８に示されたブロック８１０、８２０、８３０、８４０の各々は、リクエストが入力されて（８０５）出力される（８６０）のに対して１つのフィルタのように作用する。各フィルタに対して、たとえば、各フィルタ８１０、８２０、８３０について、そのスケジューリングのステージの基準を満たすリクエストのみが通過を許される。たとえば、ＤＲＡＭバンクスケジューリング８１０は、利用可能なバンクに対するリクエストだけ通過を許し、基準を満たさないリクエストをフィルタ出力する。スレッドＱＯＳスケジューリング８２０が、所望の優先順位グループにあるスレッドだけの通過を許す。データバススケジューリング、コストファンクションスケジューリングの１つの例８３０は、データバスのターンアラウンドを避けるために選択的に書き込み又は読み出しのみを通過させる。
【００２７】
詳細には、１つの実施例において、異なるスレッドからのＤＲＡＭリクエスト８０５が入力され絶対ＤＲＡＭスケジューリング８１０が実行され、それにより、ＤＲＡＭに送ることができないリクエストがフィルタ出力され、送ることができるリクエストだけがスレッドＱＯＳスケジューリング８２０へ送り続けられる。スレッドＱＯＳスケジューリング８２０は、各スレッドについてサービス品質条件を使用してリクエストをスケジューリングする。スレッドＱＯＳスケジューリング８２０は、この時点でサービスを受けるべきでないスレッドからのリクエストをフィルタ出力する。残りのリクエストはコストファンクションＤＲＡＭスケジューリング８３０へ続けて送られる。ここで、リクエストはコストファンクションスケジューリングに従って除去される。ＤＲＡＭスケジューリングに対して１つ以上のコストファンクションスケジューリングコンポーネントがある場合には、異なるコンポーネントが最大のスイッチコストから最小のコストへ順序付けられる。たとえば、データバスターンアラウンドに３サイクルのコストがかかり、１つの物理ＤＲＡＭバンクから別の物理ＤＲＡＭバンクへの切り換えに１サイクルのコストがかかる場合には、物理ＤＲＡＭバンクの代用としてＤＲＡＭデータバススケジューリングが使用される。１つ以上のリクエストがコストファンクションＤＲＡＭスケジューリングの最下部から出力される場合には、それらは、到着時間の優先順位で順序付けられる。この最後のフィルタ８４０はリクエストがそれらのスレッド優先順位グループ内で衰弱するのを防止する。
【００２８】
上述した説明は、正にＤＲＡＭスケジューリングシステムの１つの実施例に過ぎない事は容易に明らかであろう。異なるスレッシュホールドを有する異なるタイプのフィルタ及びフィルタのスイッチ点及び／又は異なる順序付けが所望の結果を達成するために実施されてもよい事は容易に認識されるであろう。さらに、図面では別のフィルタエレメントとして示されているが、そのフィルタを、単一の論理プロセッサ又はプロセスにより実施して、上述したフィルタファンクションを表すプロセスのステージを実行してもよい。以上、本発明を１つの実施例について説明したが、多数の代替物、修正、変更及び使用が当業者にとって明らかであろう。
【図面の簡単な説明】
【図１】  本発明のシステムの一実施形態を示す図である。
【図２】  スレッドのスケジューリングとデバイスのスケジューリングを組み合わせた一実施形態を示す簡単なフローチャートである。
【図３】  ＤＲＡＭ及びスレッドスケジューラの一実施形態を示す図である。
【図４】  コストファンクションスケジューリングの妥協を示す簡単な例である。
【図５】  コストファンクションＤＲＡＭバススケジューラの一実施形態を示す図である。
【図６】  コストファンクションＤＲＡＭバススケジューリングプロセスの一実施形態を示すフローチャートである。
【図７】  リクエストフィルタとしてのスケジューリングコンポーネントの一実施形態を示す図である。
【図８】  所望の結果を得るようにスレッドスケジューリング及びデバイススケジューリングを順序付けする一実施形態を示す図である。
【図１】
0004094550.tif 000002
【図２】
0004094550.tif 000003
【図３】
0004094550.tif 000004
【図４】
0004094550.tif 000005
【図５】
0004094550.tif 000006
【図６】
0004094550.tif 000007
【図７】
0004094550.tif 000008
【図８】
0004094550.tif 000009