JP2002529850A - システムにおける要求のスケジューリング - Google Patents
システムにおける要求のスケジューリングInfo
- Publication number
- JP2002529850A JP2002529850A JP2000581535A JP2000581535A JP2002529850A JP 2002529850 A JP2002529850 A JP 2002529850A JP 2000581535 A JP2000581535 A JP 2000581535A JP 2000581535 A JP2000581535 A JP 2000581535A JP 2002529850 A JP2002529850 A JP 2002529850A
- Authority
- JP
- Japan
- Prior art keywords
- request
- resource
- scheduler
- entity
- resources
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/485—Resource constraint
Abstract
Description
グに関するものである。
ペレーティングシステム及びアプリケーションプログラムを含んでいる。アプリ
ケーションプログラムが実行される場合、1つ或いはそれ以上のプロセス、或い
は、ワーク又は実行エンティティの他の基本ユニットが構築されてもよい。マイ
クロソフト社からのウィンドウズ95或いはウィンドウズNT(登録商標)オペ
レーティングシステムのような所定のオペレーティングシステムの場合には、各
プロセスは、割当てられた機能を実行するためにプロセスのアドレス空間に含ま
れたコードを実行するワークの1つ或いはそれ以上のユニット(スレッドと呼ば
れる)を含んでいてもよい。親プロセスに属するスレッドは、異なる機能を実行
するように割当てられてもよい。例えば、スプレッドシートプロセスの場合、ス
レッドは、ユーザ入力を計算し、印刷し、受信し、ヘルプ機能等を行うように構
築されてもよい。他のオペレーティングシステムの場合、タスク或いはプロセス
は、中央処理装置(CPU)によって実行するためにスケジューリングされるワ
ーク或いは実行エンティティの基本ユニットを構成してもよい。
理するスケジューラを含んでもよい。異なる形式のオペレーティングシステムは
、異なるスケジューリング方式を有してもよい。例えば、いくつかのウィンドウ
ズオペレーティングシステムの場合、タイムスロットは、対応するスレッドが実
行することができるラウンドロビン方式でアクティブスレッドに割当てられる。
さらに、いくつかのウィンドウズオペレーティングシステムの場合、優先順位ク
ラスは、スレッドに割当てられてもよい。最高優先順位クラスのスレッドは、そ
れらに割当てられたタイムスライス(より低い優先順位クラスのスレッドが後に
続く)において最初に実行される。従って、いかなる特定の優先順位クラスにお
いて、スケジューリングは、ラウンドロビン方法で実行されてもよい。1つ或い
はそれ以上の事象が生じるまで、スレッドは実行し続ける。タイムスライスは、
終了するか、或いは、スレッドは、実行する用意ができているより高い優先順位
の他のスレッドによって取って代わられる。
スを異なって使用してもよい。例えば、ビデオ再生及びデコードプロセスでは、
データは、コンパクトディスク(CD)或いはディジタルビデオディスク(DV
D)ドライブからシステムメモリに転送され、CPUとシステムメモリとの間で
転送され、モニタ上のグラフィックスカードによって表示するためにシステムメ
モリからビデオメモリへ転送されてよい。一般に、CD或いはDVDドライブか
らシステムメモリに転送されるデータは、CPUとシステムメモリとの間のデー
タの転送よりも遅くてもよい、グラフィックスカードとシステムメモリとの間に
転送されるデータよりも遅い。このように、システムリソース(例えば、システ
ムメモリ、バス、及び他の装置を含む)は、ワーク或いは実行エンティティの異
なるユニットの要求に応じて異なって使用されてもよい。
いはワークの他のユニットの異なるリソース要求を効率的に明らかにしない。こ
のような従来のオペレーティングシステムは、プロセス、スレッド、ワークの他
のユニットを適切なレベルでスケジュール(スケジューリング)する。すなわち
、例えば、各アプリケーションに関連するプロセス、スレッド或いはワークの他
のユニットは、所定の優先順位クラスに割当てられる。一般的には、ユニットの
ワークからの要求は、必要とされたシステムリソースが利用可能であるかどうか
に関係なく、予め割当てられた優先順位及びスケジューリングプロトコルに従っ
てスケジュールされるようになっている。
うに構成される実行エンティティと、各実行エンティティからのリソースに対す
る要求に関連したスロット割当てを含む記憶ロケーション(記憶場所)とを含ん
でいる。コントローラは、リソースに結合され、記憶ロケーションにアクセスし
、スロット割当てに従って実行エンティティからリソースに対する要求を処理す
るように構成される。
よって使用されるか或いはアクセスされる。例として、システムリソースは、シ
ステムメモリ、1つ或いはそれ以上のバスと、他の装置とを含んでもよい。シス
テムで実行する実施形態に係るスケジューラは、いくつかの実施形態では、所定
のシステムリソースが利用可能であるかどうか及び要求の呼び出し時間及び帯域
幅を含んでいるソフトウェアレイヤ及びハードウェアレイヤによって所定の基準
に従って作成されるワーク或いは実行エンティティの基本ユニット(例えば、プ
ロセス、タスク或いはスレッド)からの要求をスケジュールする。いつかの実施
形態においては、スケジューラには、システムリソース利用可能度及び利用の状
態のフィードバックが提供される。要求されたリソースの利用可能度及び利用の
状態がスケジューラによって決定される決定方式を利用することによって、スケ
ジューラは、実行エンティティからの要求が、要求されているエンティティの帯
域幅要求及び呼び出し時間要求に従ってサービスされることをより良く保証でき
る。
イクロプロセッサ或いはマイクロコントローラ方式システム、携帯計算装置、セ
ットトップボックス、電気器具、ゲームシステム、或いは特定用途向け集積回路
(ASIC)又はプログラマブルゲートアレイ(PGA)のような制御装置を含
む他のシステムであってもよいシステム10のブロック図が示されている。
キテクチャを参照しているけれども、記載された実施形態及び例示された実施形
態に関して多数の修正及び変更が可能である。
結合されたメモリコントローラ103及びグラフィックスカード106に結合さ
れたグラフィックスインタフェース105を含んでいるホストブリッジコントロ
ーラ102に結合された中央処理装置(CPU)100を有している。グラフィ
ックスインタフェース105は、例えば、1998年5月に発行されたアクセレ
ートグラフィックスポートインタフェース仕様、改訂2.0に記載のアクセレー
トグラフィックスポート(A.G.P.)であってよい。ホストブリッジコントロ
ーラ102は、第2レベル(L2)キャッシュメモリ109を制御するためにキ
ャッシュコントローラ107も含んでいる。ホストブリッジコントローラ102
は、システムバス112に結合されたバスインタフェース111を含んでいる。
なお、このバスインタフェース111は、一実施形態においては、1995年6
月に発行されたPCIローカルバス仕様、製造版、改訂2.1に記載されている
ように作動する周辺構成要素相互接続(PCI)バスであってもよいし、他の実
施形態においては、他の種類のインタフェースプロトコルであってもよい。
ンクによって結合されるメモリハブ及び入出力ハブと置き換えられてもよい。こ
のような構成では、メモリ及びグラフィックスインタフェース回路は、メモリハ
ブにあってもよく、ブリッジコントローラはI/Oハブであってもよい。
スク(CD)又はディジタルビデオディスク(DVD)ドライブ116のような
1つ或いはそれ以上の記憶装置へのアクセスを制御する記憶装置コントローラ1
14に結合されている。ネットワークインタフェースや、周辺装置に結合された
スロット(図示せず)のような他のディバイスが、システムバス112に結合さ
れてもよい。種々の他の統合レベルに従うシステムは、異なるブロックで実行さ
れるコントローラを有してもよい。例えば、ハードディスクドライブや、CD又
はDVDドライブコントローラは、システムブリッジコントローラ110に含ま
れてもよい。
リッジコントローラ110は、システムバス112と拡張バス120との間に結
合されている。システムブリッジコントローラ110は、システムバス112に
結合されたシステムバスインタフェース113及び拡張バス120に結合された
拡張バスインタフェース119を含んでいる。このシステムブリッジコントロー
ラ110も、1996年1月に発行された汎用バス仕様、改訂1.0に記載され
ているようにUSBポート118に結合された汎用直列バス(USB)インタフ
ェース117を含んでいる。拡張バス120は、種々の周辺装置(入力/出力装
置)122及び不揮発性メモリ124に結合されている。バス、バスそのもの、
及びシステムメモリに結合された構成要素及び装置は、システム10内のワーク
或いは実行エンティティのユニットのからの要求によって使用或いはアクセスさ
れるシステムリソースの一部を形成する。
ハードウェアレイヤは、より詳細に示されている。例として、システム10は、
オペレーティングシステム(OS)220及びプロセス222及び224を含ん
でもよい。次の説明では、オペレーティングシステム220は、各プロセスが1
つ或いはそれ以上のスレッドを含んでもよいあるウィンドウズオペレーティング
システムのようなスレッドベースシステムであると仮定される。しかしながら、
前述の実施形態による要求スケジューリング方式は、異なって構成された実行エ
ンティティ或いはワークのユニットによってオペレーティングシステムで実行さ
れてもよい。
し、スレッド230及び231はプロセス224に属する。スレッドは、オペレ
ーティングシステムの下で規定されるアプリケーションプログラマブルインタフ
ェース(API)のような所定のインタフェースを介してオペレーティングシス
テム(OS)220と通信してもよい。それとは別に、「サードパーティ」AP
Iが使用されてもよい。オペレーティングシステム(OS)220は、所定のイ
ンタフェースを介してアクティブスレッドからの要求をスケジュールするスケジ
ューラ232を有している。一実施形態では、本発明の実施形態に従ってスケジ
ューリング動作を実行するために、スケジューラ232は、メモリ、I/O、シ
ステム10の他の所定の位置にアクセスし得てハードウエア構成要素と通信する
ディバイスドライバ240に関連されていてよい。これらの要素232及び24
0は、ひとまとめにしてスケジューラと呼ばれる。他の実施形態では、スケジュ
ーラは、より多くのモジュール或いはレイヤに分離されてもよい。
ドウェア構成要素からのフィードバック通信、未だ実行されていない要求の数、
要求スレッドの呼び出し時間及び帯域幅要求に基づいてスケジュール(スケジュ
ーリング)する。
要求待ち行列(キュー)204に要求を記憶する。要求待ち行列204の各エン
トリは、特定の要求が処理されたかどうかを示す状態フィールド206の状態フ
ラグに関連してもよい。
る、システムメモリ104(或いは、ある他の適当な記憶ロケーション)に記憶
されたテーブルのセット或いはテーブルセグメント202は、各々がスレッド識
別子(ID)を有する対応アクティブスレッドのためのチャネル割当てを識別す
る。各チャネルは、クロック発生器250によって発生されたクロックのような
基本クロックの所定サイクル数を有するものとして規定される。チャネル毎の基
本クロック数は所望の細分性(グラニュラリティ)に基づいて選択される。テー
ブル或いはテーブルセグメント202の各々は、例えば、システムメモリ104
、グラフィックスカード106、システムバス112、拡張バス120、USB
ポート118等を含むシステム10のリソースに対応する。
によって特定のスレッドに対するチャネル割当てを監視する各種のシステムリソ
ースに対応するテーブル或いはテーブルセグメントも記憶する。ブリッジコント
ローラのテーブル或いはテーブルセグメントは、オペレーティングシステム(O
S)220によって保有される対応するテーブル202に基づいてロードされる
。例示された実施形態では、テーブル或いはテーブルセグメント302A、30
2B、及び302Cは、システムメモリ104、システムバス112、及びグラ
フィックスカード106のそれぞれに対するチャネル割当てを監視するためにホ
ストブリッジコントローラ102によって記憶されてもよい。システムブリッジ
コントローラ110は、USBポート118及び拡張バス120に対するチャネ
ル割当てを監視するためにテーブル或いはテーブルセグメント302D及び30
2Eを記憶してもよい。他のテーブルも他のシステムリソースのために保有され
てもよい。
るけれども、テーブル302A〜302Eは、システムメモリ104或いは外部
記憶装置のような他の適当な位置に記憶されてもよい。それとは別に、異なるシ
ステムリソースは、図示されるようにブリッジコントローラ102、110に統
合されるよりもむしろシステム中に配設されたコントローラによって制御されて
もよい。
システム(OS)220によって周期的に更新されてもよい。テーブル302A
〜302Eの各々において、スレッドは同じ或いは異なる数のチャネルを割当て
られてもよい。例えば、第1のスレッドIDに関連したスレッドは第1のチャネ
ル数を割当てられてもよいし、第2のスレッドIDに関連したスレッドは異なる
チャネル数を割当てられてもよい。
されるように全スケジューリングサイクル400内のスレッド要求実行ウィンド
ウ或いはスロットを規定する。スケジューリングサイクル400は、各々が割当
てられたチャネル数を含む複数のスレッド要求実行ウィンドウ或いはスロット4
200、4021、...、402N―1、及び402Nを含んでいる。各要求実行
ウィンドウ402は、スレッドからの要求の実行に割当てられる。
、110のOSテーブル202と対応するテーブル302との間のコヒーレンシ
ー(coherency)を保持するスケジューラ232に割当てられる。残りのウィン
ドウ4021〜402Nは、種々の他のスレッドからの要求に割当てられてもよい
。例示された実施形態では、テーブル302A〜302Eは、コピーレンシー・
ウィンドウズ4200のスケジューリングサイクル400毎に1回、スケジュー
ラ・デバイスドライバ240によって更新される。コヒーレンシー・ウィンドウ
4200の時間中、或いは、それとは別に他のウィンドウ402iでは、スケジュ
ーラ・デバイスドライバ240は、また、どの要求が完了したかを決定するため
にブリッジコントローラ102、110の状態レジスタ304A〜304Eの内
容を読み出してもよい。従って、スケジューラ232は、どのシステムリソース
が利用可能であるか監視をすることができるようにどの要求が完了され、どの要
求が未だ実行されていないかについての情報がフィードバックされるように構成
されている。このように、スレッドからの要求がスケジューラ232によって受
信される場合、スケジューラ232は、十分なリソースが要求を処理するために
利用可能であるかどうかを決定できる。
ーラ102、110の各々は、システム10の種々のリソースに対する要求を記
憶する種々の呼び出し時間を含んでいる。例として、ホストブリッジコントロー
ラ102は、メモリコントローラ103のメモリ待ち行列310を有している。
CPUバスインタフェース312を介して接続されたCPU100、及び、シス
テムバスインタフェース111を介して接続されたシステムバス112上の各種
のデバイスをそれぞれ含むシステム10の種々のソースからメモリコントローラ
103によって受信された要求は、実行するためにメモリ待ち行列310に記憶
される。メモリアドレス及びデータ情報に加えて、メモリ待ち行列310は、ま
た、メモリ要求の関連IDを記憶するように構成されている。
命令をフェッチ(命令取り出し動作)する。スレッドIDは、ブリッジコントロ
ーラ102、110に送られ、ブリッジコントローラ102、110の待ち行列
に記憶される。
ウンタ306及びテーブル或いはテーブルセグメント302A〜302Cからの
出力値を受信する。クロック発生器250からの基本クロックによってクロック
されるカウンタ306は、スケジューリングサイクル400でチャネルを通して
計数するように構成されてもよい。カウンタ306の値に基づいて、スケジュー
ラコントローラ314は、スケジューリングサイクル400の範囲内で現スレッ
ド要求実行ウィンドウ400i(i=0〜N)を決定できる。どのウィンドウ4
00iがアクティブであるか、並びに、テーブル302Aのチャネル割当てに基
づいて、メモリ待ち行列310の対応するスレッドIDに関連した要求がメモリ
コントローラ103によって処理するために選択されてもよい。
、ホストブリッジコントローラ102は、状態レジスタ304Aの適切なビット
をプログラミングすることによって要求完了状態に戻してもよい。次のコヒーレ
ンシー・ウィンドウ4020では、スケジューラ・デバイスドライバ240の制
御の下でCPU100は、状態レジスタ304A(並びに他の状態レジスタ30
4B〜304E)を読み出し、どの要求が完了したかを決定する。次に、スケジ
ューラ・デバイスドライバ240は、要求待ち行列204の完了要求のフラグ2
06を更新する。
02は、また、システムバスインタフェース111のシステムバス待ち行列31
6及びグラフィックスインタフェース105のグラフィックスカード要求待ち行
列318を含んでいてよい。システムバス112に対する要求は、システムバス
待ち行列316に入れられるのに対して、グラフィックスカード106に対する
要求は、グラフィックスカード待ち行列318に入れられる。要求はスレッドI
Dに関連しているので、スケジューラコントローラ314は、現スレッド要求実
行ウィンドウ402i及びテーブル302B,302Cに記憶されたチャネル割
当てに基づいて、バスインタフェース111或いはグラフィックインタフェース
105による適切な処理を選択できる。待ち行列316及び318の要求の完了
は、状態レジスタ304B及び304Cのそれぞれによって示される。
る要求を記憶する拡張バス待ち行列320と、USBポート118に供給すう要
求を記憶するUSBバス待ち行列322とを含んでいる。クロック発生器250
からの基本クロックによってクロックされるカウンタ308は、スケジューリン
グサイクル400のチャネルを計数する。カウンタ308によって示されるよう
な現スレッド要求実行ウィンドウ402i、及び、テーブル302D,302E
に記憶されたチャネル割当てに基づいて、システムブリッジコントローラ110
のスケジューラコントローラ324は、待ち行列320及び322それぞの要求
の中のどれが処理されるべきであるかを決定する。要求の完了は、状態レジスタ
304D,304Eによって示される。
ライバ240は、(ステップ502において)所定のイベントの受信を待つ。ア
プリケーション・プログラマブル・インタフェース(API)呼び出しの形であ
ってもよい、スレッドからの要求が、受信された場合、スケジューラ・デバイス
ドライバ240は、(ステップ504において)要求待ち行列204及びチャネ
ル割当てテーブル202にアクセスするので、スケジューラ232は、リソース
がスレッド要求を処理するために利用可能であるかどうかを(ステップ506に
おいて)決定することができる。
32が決定する場合には、要求されているスレッドが(ステップ508において
)通知される。この通知に応じて、スレッドは、要求を再度出す前に若干の時間
だけ待つことができるか、或いは、スレッドは、さもなければこの状態を特に適
切に処理できる。要求されたリソースが利用可能である場合には、スレッドから
の要求は、要求待ち行列204に(ステップ510において)加えられる。
列204のフラグフィールド206の全フラグは、前述のように設定されてもよ
い。
ドチャネル割当てテーブルに対応するメモリ位置にアクセスするような要求を出
すことができるスレッドである。(ステップ520において)要求待ち行列20
4に入れられたスケジュール・デバイスドライバ・スレッドからの要求は、スケ
ジュールサイクル400の第1のウィンドウ4020で処理されてもよい。それ
に代えて、他のウィンドウ402iは、スケジューラ・デバイスドライバ240
に割当てられてもよい。
イバ240の制御の下でのCPU100は、必要に応じてブリッジコントローラ
テーブル302A〜302Eを(ステップ522において)更新し、チャネル割
当てを変える。CPU100は、(ステップ524において)どの要求が完了さ
れたかを決定するために状態レジスタ304A〜304Eにアクセスしてもよい
。それに代えて、テーブル更新動作及び状態レジスタ読み出し動作が別々に行わ
れてもよい。次に、デバイスドライバ240の制御の下でのCPU100は、(
ステップ526において)要求待ち行列204を更新してもよい。
要求パラメータを調べることによって、何のシステムリソースが要求によって求
められているかを決定することができる。例えば、パラメータは、システムメモ
リ104のメモリアドレス空間の位置へのアクセスを指定してもよい。他のパラ
メータは、USBポート118に結合されたUSBバス上のグラフィックスカー
ド106のバス112、120の中の1つにあるI/Oアドレス空間の位置或い
はシステム10の他の位置を指定してもよい。要求リソース、待ち行列204に
既にある要求、及びスケジューラ・デバイスドライバ240によって検索される
ようなテーブル或いはテーブルセグメント202に指定されたチャネル割当てに
基づいて、スケジューラ・デバイスドライバ232は、要求がある程度妥当な方
法で処理されてよいかどうかを決定することができる。これは、システム10に
予めプログラム化され、起動ルーチン(例えば、基本入出力システム或いはBI
OSルーチン)によってロードされる基準に従って規定されてもよい。スケジュ
ーラ232は、システムの種々のスレッドの呼び出し時間要求及び帯域幅要求を
認識している。呼び出し時間要件及び帯域幅要件は、十分なリソースがスレッド
要求を満たすために利用可能であるかどうかを決定するためにスケジューラ23
2によって使用されてもよい。
ビデオデータのフレームをシステムメモリ104に転送する要求を出してもよい
。フレームサイズ(例えば、720×480ピクセル)及び各ピクセルに対して
規定された多数のビットが与えられると、ビデオ転送の帯域幅要求は、転送が発
生しなければならない特定の時間に基づいて決定されてもよい。さらに、転送要
求の呼び出し時間は既知であってよい。帯域幅及び呼び出し時間情報に基づいて
、及び未だ実行されていないリソースに対する未実行の要求に基づいて、スケジ
ューラ232は、ビデオ転送要求が利用可能なリソースによって処理できるかど
うかを決定することができる。処理できない場合には、スレッドはスケジューラ
232によって知らされ、スレッドは、他の要求を出す前に或いは要求をいくつ
かの部分に分割する前に待機することを含む多数の方法の1つで応答してよい。
チンによって実行される。システムリセットによりシステムハードウェアが初期
状態にされた後に、CPU100は、システム10の構成要素を既知の状態に初
期設定し、使用するオペレーティングシステム(OS)220のためのシステム
構成情報を構成する責務を持つBIOSの電源オン自己試験(POST)手順の
命令を実行し始める。いくつかの初期化タスクがシステム10で(ステップ60
2において)実行され、BIOSルーチンは、次に、システムメモリ104或い
は他の適当な記憶ロケーションを(ステップ604において)設定し、チャネル
割当てテーブル或いはテーブルセグメント202を記憶する。BIOSルーチン
は、各チャネルに対する基本クロック数(例えば、チャネル毎に1クロック或い
は数クロック)及びスケジュールサイクル400の全幅を指定してもよい。特定
のメモリアドレスは、テーブル或いはテーブルセグメント202を記憶するため
に予約されていてもよい。さらに規準は、スレッド要求を受諾するか或いは拒否
するかどうかを決定する際に、スケジューラ232によって使用するために指定
されてもよい。
ロードされてもよい。例えば、オペレーティングシステム(OS)に関連した所
定のスレッド(例えば、スケジューラ及び他のシステム管理レイヤ)は、サイク
ル400でウィンドウに割当てられる。さらに、BIOSは、特定のウィンドウ
に割り当てられないスレッド要求を処理するために所定数のチャネルを有するデ
フォルトウィンドウを設定してもよい。BIOSは、プロセッサがマルチ処理シ
ステムである場合に利用可能なプロセッサの型式を決定するシステムの構成空間
及び他の情報をポーリングできる。この情報から、BIOSはシステムの通信処
理能力を決定できる。このような決定された通信処理能力に基づいて、BIOS
は、それに応じてデフォルトウィンドウのチャネル数を割当てることができる。
次に、システム構成要素は、(ステップ608において)BIOSルーチンによ
って初期化され、構成される。次に、オペレーティングシステム(OS)220
は(ステップ610において)ブート(起動)される。
後に、オペレーティングシステム(OS)220は、(ステップ650において
)システム10におけるいくつかのアクティブスレッドを識別する。オペレーテ
ィングシステム(OS)220は、(ステップ652において)システム10の
リソースに対するその帯域幅要求及び呼び出し時間要求に対する各スレッドを照
会する。いくつかのスレッドは、どのような呼び出し時間要求及び帯域幅要求が
各システムリソースに対してあるかを認識している。例えば、マルチメディアプ
ロセスに関連したスレッドは、データ転送に対する比較的小さい呼び出し時間を
許容できる、高いデータ転送スループットを必要とする「実時間」要求を有して
もよい。他のスレッドは、より高い呼び出し時間、及び、より低いデータ転送帯
域幅を許容することができるものであってよい。アクティブスレッドからの異な
る呼び出し時間要求及び帯域幅要求の比較に基づいて、異なるスレッドに対応す
る異なる要求ウィンドウ402iを割当てるいくつかのチャネルは、より低い呼
び出し時間及びより高い帯域幅を有するスレッドを促進するためにオペレーティ
ングシステム(OS)によって(ステップ654において)セットされてもよい
。結果として、これらの種類のスレッドは、多数のチャネル及び多分複数のウィ
ンドウ402iを割当てられてもよい。多数の割当てられたウィンドウ402iは
、スケジューリングサイクル400で連続してもよいし或いは分散されてもよい
。スレッドが、システムリソースに対する呼び出し時間及び帯域幅情報を供給し
ない場合には、このスレッドは、テーブル或いはテーブルセグメント202のス
ケジューリングサイクル400でデフォルトウィンドウ402iに割当てられて
もよい。
2は、スレッドIDに従ってチャネル割当てで(ステップ656において)ロー
ドされてもよい。
ー要求がリソースの利用可能度及びチャネル割当てに基づいて満たされてもよい
かどうかを決定することによって、システムのスレッドからの要求をスケジュー
ル(スケジューリング)する。リソースの利用可能度は、ハードウェア要求によ
ってシステムのスケジューラに示される。さらに、要求の種類及び要求パラメー
タに基づいて、スケジューラは、どのようなリソースが特定の要求によって必要
とされるかを決定することができる。
ィングシステムの場合には、システムにおけるワーク或いは実行エンティティの
基本ユニットは、スレッドでなくてもよくプロセス或いは他の規定ユニットであ
ってもよい。さらに、システムのハードウェア構成要素は異なって構成されても
よい。ソフトウェア或いは図示のファームウェアモジュール或いはレイヤによっ
て実行された動作は、変更されてもよい。
らからの多数の修正及び変更を理解するであろう。添付された特許請求の範囲が
本発明の真の精神及び範囲内にあるような全ての修正及び変更を含むことが意図
される。
ートである。
ローチャートである。
トである。
Claims (20)
- 【請求項1】 リソースと、 前記リソースに要求を出すように構成される実行エンティティと、 各実行エンティティからの前記リソースに対する要求に関連するスロット割当
てを含む記憶ロケーションと、 前記リソースに結合され、かつ、前記記憶ロケーションにアクセスし、前記ス
ロット割当てに従って前記実行エンティティから前記リソースに対する要求を処
理するように構成されるコントローラと、 をそれぞれ備えることを特徴するシステム。 - 【請求項2】 前記記憶ロケーションのスロット割当てを更新するように構
成されたスケジューラをさらに含むことを特徴とする請求項1に記載のシステム
。 - 【請求項3】 前記スケジューラによってアクセスでき、かつ、前記実行エ
ンティティためのスロット割当てを含む第2の記憶ロケーションをさらに含むこ
とを特徴とする請求項2に記載のシステム。 - 【請求項4】 前記リソースが前記第2の記憶ロケーションのスロット割当
て及び未実行の要求に基づいて実行エンティティによって出された要求に対して
利用可能であるかどうかについて、前記スケジューラが決定するように構成され
ることを特徴とする請求項3に記載のシステム。 - 【請求項5】 前記スケジューラが、各実行エンティティのリソースに対す
る帯域幅を認識しており、かつ、前記スケジューラが、前記帯域幅の情報に基づ
いて実行エンティティによって出された要求に対して利用可能であるかどうかを
決定するように構成されていることを特徴とする請求項4に記載のシステム。 - 【請求項6】 前記要求が、1つ或いはそれ以上のパラメータに関連したア
プリケーションプログラマブルインタフェース呼び出しを含むことを特徴とする
請求項4に記載のシステム。 - 【請求項7】 前記スケジューラが、要求が処理されたかどうかを決定する
ために前記コントローラにアクセスするように構成されていることを特徴とする
請求項2に記載のシステム。 - 【請求項8】 どのスロットがアクティブであるかどうかを決定するために
コントローラによってアクセスできるカウンタをさらに含むことを特徴とする請
求項1に記載のシステム。 - 【請求項9】 各スロットが、1つ或いはそれ以上のチャネルを含み、前記
カウンタが、前記チャネルを計数するように構成されることを特徴とする請求項
8に記載のシステム。 - 【請求項10】 複数のスロットが、スケジューリングサイクルで規定され
、かつ、前記コントローラが、対応するスロットにおいて前記実行エンティティ
からの要求を処理するように構成されることを特徴とする請求項1に記載のシス
テム。 - 【請求項11】 リソース使用要求を決定するために実行装置と協働するオ
ペレーティングシステムと、 前記オペレーティングシステムによって更新可能であり、その割当てられたチ
ャネルの期間中にシステムリソースにアクセスできる実行装置の前記リソース使
用要求に基づいて、チャネルを前記実行装置に割当てる記憶ロケーションとを含
むことを特徴とする請求項1に記載のシステム。 - 【請求項12】 前記実行エンティティが、前記リソースのための帯域幅の
情報を前記オペレーティングシステムに通信するように構成されていることを特
徴とする請求項11に記載のシステム。 - 【請求項13】 前記実行エンティティが、前記リソースのための呼び出し
時間の情報を前記オペレーティングシステムにさらに通信するように構成されて
いることを特徴とする請求項12に記載のシステム。 - 【請求項14】 システムにおいて実行装置からの要求をスケジューリング
する方法であって、 システムリソースのための前記実行装置のデータフロー情報を決定し、 前記データフロー情報に基づいて、前記システムリソースへのアクセスのため
にタイムスロットを前記実行装置に割当て、 前記割当てられたタイムスロットに基づいて、コントローラをプログラミング
することを含み、かつ 前記コントローラが、現在どのタイムスロットがアクティブであるかという情
報及び前記タイムスロット割当てに基づいて、前記システムリソースのための要
求を処理することを特徴とする方法。 - 【請求項15】 前記データフロー情報を決定することが、前記システムリ
ソースへのアクセスのために前記実行装置によって使用される帯域幅情報を決定
することを含むことを特徴とする請求項14に記載の方法。 - 【請求項16】 前記データフロー情報を決定するステップは、前記システ
ムリソースへのアクセスのために前記実行装置によって使用される呼び出し時間
の情報を決定するステップを含むことを特徴とする請求項14に記載の方法。 - 【請求項17】 前記システムリソースのための前記時間スロット割当て及
び前記システムリソースの使用可能度に基づいて、第1の実行装置からの要求が
処理され得るかどうかについて決定するステップをさらに含むことを特徴とする
請求項14に記載の方法。 - 【請求項18】 前記データフロー情報及び前記システムリソースに対する
未実行の要求に基づいて、前記システムリソースの使用可能度を決定するステッ
プをさらに含むことを特徴とする請求項17に記載の方法。 - 【請求項19】 実行エンティティからの要求をスケジューリングする命令
を含む記憶媒体を有する装置であって、 前記命令に基づいてプロセッサが、 システムリソースへのアクセスを含む実行エンティティから第1の要求を受信
し、 前記システムリソースのための所定の他の未実行の要求が処理されたかどうか
を決定するために、前記システムリソースに結合されたコントローラにアクセス
し、かつ 前記システムリソースが前記第1の要求に対して利用可能であるかどうかを決
する、 ことを特徴とする装置。 - 【請求項20】 前記リソースが利用可能でないために前記要求を処理でき
ないかどうか前記実行エンティティをさらに通知するように前記プロセッサを作
動させるための命令を含むことを特徴とする請求項19に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18861498A | 1998-11-09 | 1998-11-09 | |
US09/188,614 | 1998-11-09 | ||
PCT/US1999/019596 WO2000028418A1 (en) | 1998-11-09 | 1999-08-26 | Scheduling resource requests in a computer system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009237427A Division JP2010044784A (ja) | 1998-11-09 | 2009-10-14 | システムにおける要求のスケジューリング |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002529850A true JP2002529850A (ja) | 2002-09-10 |
Family
ID=22693875
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000581535A Pending JP2002529850A (ja) | 1998-11-09 | 1999-08-26 | システムにおける要求のスケジューリング |
JP2009237427A Pending JP2010044784A (ja) | 1998-11-09 | 2009-10-14 | システムにおける要求のスケジューリング |
JP2010224970A Pending JP2011044165A (ja) | 1998-11-09 | 2010-10-04 | システムにおける要求のスケジューリング |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009237427A Pending JP2010044784A (ja) | 1998-11-09 | 2009-10-14 | システムにおける要求のスケジューリング |
JP2010224970A Pending JP2011044165A (ja) | 1998-11-09 | 2010-10-04 | システムにおける要求のスケジューリング |
Country Status (7)
Country | Link |
---|---|
JP (3) | JP2002529850A (ja) |
AU (1) | AU5902299A (ja) |
DE (1) | DE19983709B4 (ja) |
GB (1) | GB2358939B (ja) |
HK (1) | HK1036860A1 (ja) |
TW (1) | TW511034B (ja) |
WO (1) | WO2000028418A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004272894A (ja) * | 2003-02-18 | 2004-09-30 | Microsoft Corp | グラフィックス処理ユニットのマルチスレッド式カーネル |
JP2005092875A (ja) * | 2003-08-29 | 2005-04-07 | Microsoft Corp | スレッドスケジューリングを使用してデータスループットを向上させるためのシステムおよび方法 |
JP2010044784A (ja) * | 1998-11-09 | 2010-02-25 | Intel Corp | システムにおける要求のスケジューリング |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020040381A1 (en) * | 2000-10-03 | 2002-04-04 | Steiger Dianne L. | Automatic load distribution for multiple digital signal processing system |
KR101014149B1 (ko) | 2008-11-13 | 2011-02-14 | (주)인디링스 | 메모리 뱅크로의 접근을 제어하는 고체 상태 디스크를 위한컨트롤러 |
US8255615B1 (en) | 2009-01-08 | 2012-08-28 | Marvell International Ltd. | Flexible sequence design architecture for solid state memory controller |
DE102009016742B4 (de) * | 2009-04-09 | 2011-03-10 | Technische Universität Braunschweig Carolo-Wilhelmina | Mehrprozessor-Computersystem |
CN101667159B (zh) * | 2009-09-15 | 2012-06-27 | 威盛电子股份有限公司 | 传送请求区块的高速缓存系统及方法 |
CN103403681B (zh) | 2010-12-20 | 2018-09-18 | 马维尔国际贸易有限公司 | 描述符调度器 |
DE102011013833B4 (de) | 2011-03-14 | 2014-05-15 | Continental Automotive Gmbh | Anzeigevorrichtung |
KR102149171B1 (ko) * | 2018-05-18 | 2020-08-28 | 강원대학교산학협력단 | 산업용 로봇 시스템의 실시간 스케줄링 방법 및 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07504071A (ja) * | 1991-12-23 | 1995-04-27 | ネットワーク・エクスプレス・インコーポレイテッド | 交換デジタルネットワークを介してデータターミナル装置をインターネットワーク化するシステム |
JPH09319597A (ja) * | 1996-03-28 | 1997-12-12 | Hitachi Ltd | 周期的プロセスのスケジューリング方法 |
JPH1093924A (ja) * | 1996-08-08 | 1998-04-10 | Shinekkus Inf Technol Inc | ディジタルデータをオンデマンドで分配するシステム及び方法 |
WO1998020425A2 (en) * | 1996-11-06 | 1998-05-14 | Motorola Inc. | A method for determining the number of accesses granted during wcl and apparatus |
US5809261A (en) * | 1995-11-20 | 1998-09-15 | Advanced Micro Devices, Inc. | System and method for transferring data streams simultaneously on multiple buses in a computer system |
US5812844A (en) * | 1995-12-07 | 1998-09-22 | Microsoft Corporation | Method and system for scheduling the execution of threads using optional time-specific scheduling constraints |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69738832D1 (de) * | 1996-03-28 | 2008-08-28 | Hitachi Ltd | Verfahren zum Planen von periodischen Prozessabläufen |
US5826082A (en) * | 1996-07-01 | 1998-10-20 | Sun Microsystems, Inc. | Method for reserving resources |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
TW511034B (en) * | 1998-11-09 | 2002-11-21 | Intel Corp | Scheduling requests in a system |
-
1999
- 1999-08-13 TW TW88113880A patent/TW511034B/zh active
- 1999-08-26 DE DE19983709T patent/DE19983709B4/de not_active Expired - Fee Related
- 1999-08-26 AU AU59022/99A patent/AU5902299A/en not_active Abandoned
- 1999-08-26 GB GB0109904A patent/GB2358939B/en not_active Expired - Fee Related
- 1999-08-26 WO PCT/US1999/019596 patent/WO2000028418A1/en active Application Filing
- 1999-08-26 JP JP2000581535A patent/JP2002529850A/ja active Pending
-
2001
- 2001-11-05 HK HK01107727A patent/HK1036860A1/xx not_active IP Right Cessation
-
2009
- 2009-10-14 JP JP2009237427A patent/JP2010044784A/ja active Pending
-
2010
- 2010-10-04 JP JP2010224970A patent/JP2011044165A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07504071A (ja) * | 1991-12-23 | 1995-04-27 | ネットワーク・エクスプレス・インコーポレイテッド | 交換デジタルネットワークを介してデータターミナル装置をインターネットワーク化するシステム |
US5809261A (en) * | 1995-11-20 | 1998-09-15 | Advanced Micro Devices, Inc. | System and method for transferring data streams simultaneously on multiple buses in a computer system |
US5812844A (en) * | 1995-12-07 | 1998-09-22 | Microsoft Corporation | Method and system for scheduling the execution of threads using optional time-specific scheduling constraints |
JPH09319597A (ja) * | 1996-03-28 | 1997-12-12 | Hitachi Ltd | 周期的プロセスのスケジューリング方法 |
JPH1093924A (ja) * | 1996-08-08 | 1998-04-10 | Shinekkus Inf Technol Inc | ディジタルデータをオンデマンドで分配するシステム及び方法 |
WO1998020425A2 (en) * | 1996-11-06 | 1998-05-14 | Motorola Inc. | A method for determining the number of accesses granted during wcl and apparatus |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010044784A (ja) * | 1998-11-09 | 2010-02-25 | Intel Corp | システムにおける要求のスケジューリング |
JP2004272894A (ja) * | 2003-02-18 | 2004-09-30 | Microsoft Corp | グラフィックス処理ユニットのマルチスレッド式カーネル |
JP2010287254A (ja) * | 2003-02-18 | 2010-12-24 | Microsoft Corp | タスクのスケジューリングを支援する装置 |
US8671411B2 (en) | 2003-02-18 | 2014-03-11 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US9298498B2 (en) | 2003-02-18 | 2016-03-29 | Microsoft Technology Licensing, Llc | Building a run list for a coprocessor based on rules when the coprocessor switches from one context to another context |
JP2005092875A (ja) * | 2003-08-29 | 2005-04-07 | Microsoft Corp | スレッドスケジューリングを使用してデータスループットを向上させるためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
DE19983709B4 (de) | 2007-02-22 |
DE19983709T1 (de) | 2002-02-14 |
GB0109904D0 (en) | 2001-06-13 |
AU5902299A (en) | 2000-05-29 |
TW511034B (en) | 2002-11-21 |
GB2358939A (en) | 2001-08-08 |
WO2000028418A1 (en) | 2000-05-18 |
JP2011044165A (ja) | 2011-03-03 |
JP2010044784A (ja) | 2010-02-25 |
HK1036860A1 (en) | 2002-01-18 |
GB2358939B (en) | 2003-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B9 (zh) | 实现硬件加速处理的方法、设备和系统 | |
JP2010044784A (ja) | システムにおける要求のスケジューリング | |
US7159216B2 (en) | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system | |
US5748468A (en) | Prioritized co-processor resource manager and method | |
EP0969382A2 (en) | Method for efficient non-virtual main memory management | |
US20080046621A1 (en) | Information Processing Apparatus, Interrupt Process Control Method, and Computer Program | |
EP1341083A2 (en) | Parallel-process execution method and multiprocessor-type computer | |
CN111176828A (zh) | 包括多核处理器的片上系统及其任务调度方法 | |
JP2000330806A (ja) | 計算機システム | |
US7213084B2 (en) | System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit | |
US20070106879A1 (en) | Semiconductor device | |
JPH1097490A (ja) | スケーラブル対称型マルチプロセッサにおいてバス幅またはバス・プロトコルを変更せずに割り込みを分散する方法および装置 | |
US7111182B2 (en) | Thread scheduling mechanisms for processor resource power management | |
US7761873B2 (en) | User-space resource management | |
JP2004234123A (ja) | マルチスレッドコンピュータ | |
EP3770759A1 (en) | Wake-up and scheduling of functions with context hints | |
CN116089049B (zh) | 基于异步并行i/o请求的进程同步调度方法、装置以及设备 | |
JP2002278778A (ja) | 対称型マルチプロセッサシステムにおけるスケジュール装置 | |
CN110968418A (zh) | 基于信号-槽的大规模有约束并发任务的调度方法与装置 | |
JP2003186686A (ja) | リソース制御装置、方法及び記憶媒体 | |
JPH10312297A (ja) | マルチタスク機能を有する情報処理システムにおける資源管理方法、資源管理装置及び記録媒体 | |
JPH11175357A (ja) | タスク管理方法 | |
JP3591883B2 (ja) | 計算機及びそのシステム及びその制御方法 | |
JP2007109250A (ja) | Cpu能力調整方法 | |
JPH08507630A (ja) | メモリ管理装置およびメモリ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051014 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060106 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060119 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060818 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060928 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20061031 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070209 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090610 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090616 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090909 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090916 |