JP2676034B2 - プロセッサブロッキングの影響を減少する装置 - Google Patents
プロセッサブロッキングの影響を減少する装置Info
- Publication number
- JP2676034B2 JP2676034B2 JP1505044A JP50504489A JP2676034B2 JP 2676034 B2 JP2676034 B2 JP 2676034B2 JP 1505044 A JP1505044 A JP 1505044A JP 50504489 A JP50504489 A JP 50504489A JP 2676034 B2 JP2676034 B2 JP 2676034B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- priority
- priority value
- task
- value
- 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
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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Description
【発明の詳細な説明】 発明の背景 本発明はあるプロセッサの作業が他のプロセッサの作
業と衝突し一時的にブロック(阻止)された時、そのプ
ロセッサにおいて実行可能なタスクの供給を制御するこ
とに関する。このようなブロッキングは、例えば、ある
プロセッサが他のプロセッサが作業しているコードの臨
界領域にはいろうとする時に起こる(臨界領域は2つ以
上のプロセッサによる衝突アクセスに対して共有メモリ
に記憶されているデータを保護する為に設置されてい
る)。通常臨界領域はあるプロセッサがこの領域で作業
を行う場合セットされ、そうでない場合にクリアされる
共有メモリ中のフラグによって保護される。プロセッサ
は常にその領域にはいる前に前記フラグをチェックし、
もしこのフラッグがセットされていれば、別のプロセッ
サがその領域から外れるまで待機する。
業と衝突し一時的にブロック(阻止)された時、そのプ
ロセッサにおいて実行可能なタスクの供給を制御するこ
とに関する。このようなブロッキングは、例えば、ある
プロセッサが他のプロセッサが作業しているコードの臨
界領域にはいろうとする時に起こる(臨界領域は2つ以
上のプロセッサによる衝突アクセスに対して共有メモリ
に記憶されているデータを保護する為に設置されてい
る)。通常臨界領域はあるプロセッサがこの領域で作業
を行う場合セットされ、そうでない場合にクリアされる
共有メモリ中のフラグによって保護される。プロセッサ
は常にその領域にはいる前に前記フラグをチェックし、
もしこのフラッグがセットされていれば、別のプロセッ
サがその領域から外れるまで待機する。
あるシステムにおいて、その待機プロセッサはその臨
界領域が開放するまで他のタスクを作業するように割り
当てられる。このような他のタスクへの切り替えは、そ
の切り替えタスクが実行されるごとに現在のコンテクス
ト情報が記憶再生される必要があり、時間を浪費する。
界領域が開放するまで他のタスクを作業するように割り
当てられる。このような他のタスクへの切り替えは、そ
の切り替えタスクが実行されるごとに現在のコンテクス
ト情報が記憶再生される必要があり、時間を浪費する。
他の公知の解決方法は以下の長所を有している。即
ち、あるコンピュータ(例えば、ディジタル・イクイプ
メント社のVAX)において、各タスクは、例えばそれの
相対的緊急度およびそれらを実行する相対的オーバーヘ
ッド・コストに応じて順位づけされる32通りの割り込み
優先レベルの1つに割り当てられる。一般的に、あるプ
ロセッサが所与の割り込み優先レベルを有するある臨界
領域でその作業がブロックされた時、そのブロックされ
たプロセッサはより高次の割り込み優先レベルを有する
他のタスクのみを作業することができる。
ち、あるコンピュータ(例えば、ディジタル・イクイプ
メント社のVAX)において、各タスクは、例えばそれの
相対的緊急度およびそれらを実行する相対的オーバーヘ
ッド・コストに応じて順位づけされる32通りの割り込み
優先レベルの1つに割り当てられる。一般的に、あるプ
ロセッサが所与の割り込み優先レベルを有するある臨界
領域でその作業がブロックされた時、そのブロックされ
たプロセッサはより高次の割り込み優先レベルを有する
他のタスクのみを作業することができる。
発明の概要 本発明の一般的特長はブロックされて待機しているプ
ロセッサによって実行可能なタスクの供給を、それ以上
でタスクの実行が許容される最小レベルにまで割り込み
優先を一時的に下げることによって増加させる点にあ
る。
ロセッサによって実行可能なタスクの供給を、それ以上
でタスクの実行が許容される最小レベルにまで割り込み
優先を一時的に下げることによって増加させる点にあ
る。
本発明の好適な実施例は以下の特長を有する。あるプ
ロセッサが他のプロセッサが作業している臨界領域から
ブロックされる結果として衝突が生じると、そのブロッ
クされたプロセッサの優先レベルが臨界領域の優先レベ
ル以下に低下される。但し、その優先レベルは、(異な
った優先レベルに対するコンテクスト切り替えオーバヘ
ッドに基づく)ある所定の優先レベルよりも低くはな
く、また衝突が生じる前にそのブロックされたプロセッ
サが有していた優先レベルよりも低くはない。
ロセッサが他のプロセッサが作業している臨界領域から
ブロックされる結果として衝突が生じると、そのブロッ
クされたプロセッサの優先レベルが臨界領域の優先レベ
ル以下に低下される。但し、その優先レベルは、(異な
った優先レベルに対するコンテクスト切り替えオーバヘ
ッドに基づく)ある所定の優先レベルよりも低くはな
く、また衝突が生じる前にそのブロックされたプロセッ
サが有していた優先レベルよりも低くはない。
その結果、そのブロックされたプロセッサは衝突が終
了するのを待機する間にさらにタスクを実行できる。そ
の時、不合理な量のコンテクスト切替えオーバーヘッド
を招くことがなく、またそのブロックされたプロセッサ
の元の優先レベルより低い優先レベルのタスクは除外さ
れる。この手法は容易に実行でき、その応用に柔軟性が
ある。
了するのを待機する間にさらにタスクを実行できる。そ
の時、不合理な量のコンテクスト切替えオーバーヘッド
を招くことがなく、またそのブロックされたプロセッサ
の元の優先レベルより低い優先レベルのタスクは除外さ
れる。この手法は容易に実行でき、その応用に柔軟性が
ある。
他の長所と特長は以下に述べる実施例と請求の範囲に
よって明らかにされる。
よって明らかにされる。
好適な実施例の説明 先ず図面について簡単に説明する。
第1図は多重プロセッサ・コンピューターの部分ブロ
ック図である。
ック図である。
第2図は割り込み優先レベルのチャートである。
第3図はプロセッサに対する最小割り込み優先レベル
の調整に関するフロー・チャートである。
の調整に関するフロー・チャートである。
構 成 第1図の対称多重プロセッサ(SMP)システム10にお
いて、プロセッサ11(I)〜11(N)の数Nはバス14を
介して共通メモリ12を共有する。そのメモリ12には他の
物と供に、データ16、同期優先テーブル18および(臨界
領域22、各種割り込みタスク24およびセマホア・ルーチ
ン26を含む)操作システム・応用コード20が記憶されて
いる。
いて、プロセッサ11(I)〜11(N)の数Nはバス14を
介して共通メモリ12を共有する。そのメモリ12には他の
物と供に、データ16、同期優先テーブル18および(臨界
領域22、各種割り込みタスク24およびセマホア・ルーチ
ン26を含む)操作システム・応用コード20が記憶されて
いる。
その同期優先テーブルにおける各エントリ28は臨界領
域の1つに対応し、2つ以上のプロセッサが対応臨界領
域にはいるのを防止するように作用する。フラッグ・フ
ィールド30(FL)は1つのプロセッサがそれに該当する
臨界領域で操作しているかどうかを示す。もし、操作し
ている場合には、そのプロセッサは、PROC・ID・フィー
ルド32において識別される。同期優先レベル(SPL)フ
ィールド34はそのテーブル・エントリに随伴される臨界
領域の割り込み優先レベルに対応する値を含む。
域の1つに対応し、2つ以上のプロセッサが対応臨界領
域にはいるのを防止するように作用する。フラッグ・フ
ィールド30(FL)は1つのプロセッサがそれに該当する
臨界領域で操作しているかどうかを示す。もし、操作し
ている場合には、そのプロセッサは、PROC・ID・フィー
ルド32において識別される。同期優先レベル(SPL)フ
ィールド34はそのテーブル・エントリに随伴される臨界
領域の割り込み優先レベルに対応する値を含む。
第2図のVAXにおいて、32通りの割り込み優先レベル3
6が示される。その内、低次の16通りのレベルはソフト
ウエア割り込み38であり、高次の16通りのレベルは例え
ば応用プログラムからのサービス要求を含むハードウエ
ア割り込み40である。プロセッサが3以上のレベルにお
ける割り込みに応答すると、コンテクスト切替えはプロ
グラム・カウンタ(PC)およびプログラム・ステータス
・ロングワード(PSL)のみの保存を要求する。一方、
そのプロセッサがレベル3未満の割り込みタスタに応答
すると、そのコンテクスト切換えはすべてのレジスタが
保存されることを要求する。
6が示される。その内、低次の16通りのレベルはソフト
ウエア割り込み38であり、高次の16通りのレベルは例え
ば応用プログラムからのサービス要求を含むハードウエ
ア割り込み40である。プロセッサが3以上のレベルにお
ける割り込みに応答すると、コンテクスト切替えはプロ
グラム・カウンタ(PC)およびプログラム・ステータス
・ロングワード(PSL)のみの保存を要求する。一方、
そのプロセッサがレベル3未満の割り込みタスタに応答
すると、そのコンテクスト切換えはすべてのレジスタが
保存されることを要求する。
所定の割り込み優先レベル、例えばレベル27において
数多くの臨界領域42が存在する。同期優先テーブルにお
いて与えられたエントリに対するSPLフィールドは対応
臨界領域の割り込み優先レベルに設定される。
数多くの臨界領域42が存在する。同期優先テーブルにお
いて与えられたエントリに対するSPLフィールドは対応
臨界領域の割り込み優先レベルに設定される。
第1図において、各プロセッサはそのプロセッサに対
してSPL値を保持するハードウエア・レジスタ44を有す
る。プロセッサはその割り込み優先レベルがその現在の
SPLより低いいかなるタスクも実行できない。
してSPL値を保持するハードウエア・レジスタ44を有す
る。プロセッサはその割り込み優先レベルがその現在の
SPLより低いいかなるタスクも実行できない。
操 作 プロセッサが臨界領域にはいろうとする時、セマホア
・ルーチン26が実行されるよう制御される。
・ルーチン26が実行されるよう制御される。
第3図に示すように、そのセマホア・ルーチンはまず
プロセッサのSPLを記憶し(50)、それから臨界領域に
対応する同期優先テーブル・エントリ28を考慮し、その
プロセッサSPLをそのテーブル・エントリ28のSPLフィー
ルド中の割り込み優先レベルに設定する(52)。そのセ
マホア・ルーチンはそれからフラグ・フィールドを検査
し、そのフィールドがセットされていない場合は、その
フィールドをセットする(54)。もし、そのフラグが予
めセットされていなければ、その臨界領域は専有されて
いないからそのプロセッサのみに使用できる。そしてそ
のプロセッサのIDがPROC・ID・フィールドに入力され
(56)、そのプロセッサがその臨界領域にはいるよう制
御される(60)。プロセッサが臨界領域を抜け出ると、
フラグはクリアされ(62)、その結果、その臨界領域は
に他のプロセッサに利用可能である。
プロセッサのSPLを記憶し(50)、それから臨界領域に
対応する同期優先テーブル・エントリ28を考慮し、その
プロセッサSPLをそのテーブル・エントリ28のSPLフィー
ルド中の割り込み優先レベルに設定する(52)。そのセ
マホア・ルーチンはそれからフラグ・フィールドを検査
し、そのフィールドがセットされていない場合は、その
フィールドをセットする(54)。もし、そのフラグが予
めセットされていなければ、その臨界領域は専有されて
いないからそのプロセッサのみに使用できる。そしてそ
のプロセッサのIDがPROC・ID・フィールドに入力され
(56)、そのプロセッサがその臨界領域にはいるよう制
御される(60)。プロセッサが臨界領域を抜け出ると、
フラグはクリアされ(62)、その結果、その臨界領域は
に他のプロセッサに利用可能である。
一方、もし、セマホア・ルーチンがその領域が占有さ
れていることを見出した時には、そのプロセッサのSPL
を3又は(ステップ50に記憶されている)そのプロセッ
サの元のSPLの内の大きい方の新しいSPLに低下させる
(66)。そしてそのプロセッサは、割り込み優先レベル
が新しいSPLよりも高くかつ臨界領域よりも低いような
タスクの割り込みに自由に応答できる。各割り込みタス
クを実行した後(68)、そのプロセッサはセマホア・ル
ーチンに復帰し、再びフラグを検査する(70)。もし、
その臨界領域が占有されたままの場合はそのプロセッサ
は再び他の割り込みタスクを自由に実行する(68)。さ
もなければ、そのセマホア・ルーチンはそのプロセッサ
のSPLをテーブル・エントリSPLに再記憶し(52)、ステ
ップ54に進む。
れていることを見出した時には、そのプロセッサのSPL
を3又は(ステップ50に記憶されている)そのプロセッ
サの元のSPLの内の大きい方の新しいSPLに低下させる
(66)。そしてそのプロセッサは、割り込み優先レベル
が新しいSPLよりも高くかつ臨界領域よりも低いような
タスクの割り込みに自由に応答できる。各割り込みタス
クを実行した後(68)、そのプロセッサはセマホア・ル
ーチンに復帰し、再びフラグを検査する(70)。もし、
その臨界領域が占有されたままの場合はそのプロセッサ
は再び他の割り込みタスクを自由に実行する(68)。さ
もなければ、そのセマホア・ルーチンはそのプロセッサ
のSPLをテーブル・エントリSPLに再記憶し(52)、ステ
ップ54に進む。
そのプロセッサのSPLを低下すると、その臨界領域のS
PLより高い割り込み優先レベルを有するタスクの付与を
制限することなく、また2又はそれ以下の割り込み優先
レベルのタスクへののコンテクスト切換えのオーバヘッ
ド・コストを増加させることなく、実行可能なタスクの
供給を増大することができる。
PLより高い割り込み優先レベルを有するタスクの付与を
制限することなく、また2又はそれ以下の割り込み優先
レベルのタスクへののコンテクスト切換えのオーバヘッ
ド・コストを増加させることなく、実行可能なタスクの
供給を増大することができる。
プロセッサの元のより低くSPLを低下させないので、
そのプロセッサは、その臨界領域に到達する以前のレベ
ルよりも低い優先レベルのタスクを実行することがない
ことが保証される。
そのプロセッサは、その臨界領域に到達する以前のレベ
ルよりも低い優先レベルのタスクを実行することがない
ことが保証される。
上述の実施例は説明のためであり、本願発明の技術的
範囲は請求の範囲の請求項第1項の記載に基づいて定め
られる。プロセッサがブッロクされた時、そのプロセッ
サのSPLが低下する優先レベルを決定するのに上述の実
施例とは別の仕方を使用することができる。
範囲は請求の範囲の請求項第1項の記載に基づいて定め
られる。プロセッサがブッロクされた時、そのプロセッ
サのSPLが低下する優先レベルを決定するのに上述の実
施例とは別の仕方を使用することができる。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ファーナム スチュワート ジェイ アメリカ合衆国 ニューハンプシャー州 03033 メイソン サンドピット ロ ード 394 (72)発明者 ハーヴィー マイケル エス アメリカ合衆国 ニューハンプシャー州 03062 ナシュア チョーサー ロー ド 15 (56)参考文献 IBM,T.D.B.Vol.26,N o.6,Nov.1983,P.2820 IBM,T.D.B.Vol.22,N o.6,Nov.1979,P.2417−2418
Claims (2)
- 【請求項1】或るプロセッサによる或るタスクの作業が
別のプロセッサとの競合により一時的にブロックされる
時に、前記或るプロセッサが実行することのできる代替
のタスクを決める装置であって、各タスクに優先レベル
を割り当てる手段、各プロセッサが実行することが許容
されたタスクの最低優先レベルを示している現在の優先
値を各プロセッサ毎に維持する手段、及び或るプロセッ
サの前記現在の優先値を、前の優先値から新たなタスク
の実行に対応する新たな優先値に更新する手段からなる
前記装置において、 他のプロセッサとの競合のために、前記プロセッサが新
たなタスクを実行することが一時的にブロックされる
時、このブロックされたプロセッサの現在の優先値を、
前記新たな優先値から、この新たな優先値よりも低い
が、前記前の優先値よりも低くない一時的な優先値に更
新する手段を含み、この一時的な優先値に更新する手段
は前記維持する手段に接続されており、これによって競
合が存在する場合、前記前の優先値よりも低くない優先
レベルを有する代替のタスクのみを実行することができ
る装置。 - 【請求項2】前記一時的な優先値が、前記前の優先値又
は所定の値の内より大きい方であり、前記所定の値が、
異なる優先値を有するタスクに必要とされるコンテクス
ト切替えオーバーヘッドに基づいていることを特徴とす
る請求項1記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18163788A | 1988-04-14 | 1988-04-14 | |
US181,637 | 1988-04-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02501515A JPH02501515A (ja) | 1990-05-24 |
JP2676034B2 true JP2676034B2 (ja) | 1997-11-12 |
Family
ID=22665135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1505044A Expired - Lifetime JP2676034B2 (ja) | 1988-04-14 | 1989-04-14 | プロセッサブロッキングの影響を減少する装置 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0367816B1 (ja) |
JP (1) | JP2676034B2 (ja) |
CA (1) | CA1321033C (ja) |
DE (1) | DE68915937T2 (ja) |
WO (1) | WO1989009964A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
JP5397546B2 (ja) * | 2010-07-27 | 2014-01-22 | 富士通株式会社 | マルチコアプロセッサシステム、制御プログラム、および制御方法 |
JP5621896B2 (ja) * | 2013-10-24 | 2014-11-12 | 富士通株式会社 | マルチプロセッサシステム、制御プログラム、および制御方法 |
-
1989
- 1989-04-13 CA CA000596573A patent/CA1321033C/en not_active Expired - Fee Related
- 1989-04-14 EP EP89905310A patent/EP0367816B1/en not_active Expired - Lifetime
- 1989-04-14 WO PCT/US1989/001586 patent/WO1989009964A1/en active IP Right Grant
- 1989-04-14 DE DE68915937T patent/DE68915937T2/de not_active Expired - Fee Related
- 1989-04-14 JP JP1505044A patent/JP2676034B2/ja not_active Expired - Lifetime
Non-Patent Citations (2)
Title |
---|
IBM,T.D.B.Vol.22,No.6,Nov.1979,P.2417−2418 |
IBM,T.D.B.Vol.26,No.6,Nov.1983,P.2820 |
Also Published As
Publication number | Publication date |
---|---|
DE68915937D1 (de) | 1994-07-14 |
EP0367816B1 (en) | 1994-06-08 |
WO1989009964A1 (en) | 1989-10-19 |
EP0367816A1 (en) | 1990-05-16 |
CA1321033C (en) | 1993-08-03 |
DE68915937T2 (de) | 1995-01-05 |
JPH02501515A (ja) | 1990-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5161226A (en) | Microprocessor inverse processor state usage | |
US8612986B2 (en) | Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value | |
KR100292660B1 (ko) | 프로세서가통합된인터럽트제어기를갖춘멀티프로세서프로그래머블인터럽트제어기시스템 | |
EP0425320A2 (en) | Multiprocessor system and process synchronisation method therefor | |
EP0443557B1 (en) | Interrupt controller capable of realizing interrupt nesting function | |
JPH0430053B2 (ja) | ||
EP0385487A3 (en) | Interrupt controller for multiprocessor systems | |
US5850555A (en) | System and method for validating interrupts before presentation to a CPU | |
EP0287295A2 (en) | Multiple I/O bus virtual broadcast of programmed I/O instructions | |
US5202991A (en) | Reducing the effect processor blocking | |
US5850521A (en) | Apparatus and method for interprocessor communication | |
JP2676034B2 (ja) | プロセッサブロッキングの影響を減少する装置 | |
US5850558A (en) | System and method for referencing interrupt request information in a programmable interrupt controller | |
US5894578A (en) | System and method for using random access memory in a programmable interrupt controller | |
WO1995034905A1 (en) | Computer system with peripheral control functions integrated into host cpu | |
KR100506254B1 (ko) | 임베디드 시스템의 비특권 모드에서 인터럽트 처리를 위한장치 및 방법 | |
JP2001229038A (ja) | マルチオペレーテング計算機システム | |
JPH01137359A (ja) | プロセッサの制御方法 | |
JP2822728B2 (ja) | コンピュータシステム | |
JP3187117B2 (ja) | マルチプロセッサ内蔵1チップマイクロコンピュータ | |
JP2513811B2 (ja) | 入出力制御方式 | |
JPH04367035A (ja) | 複数タスクの実時間処理装置 | |
JPS61289433A (ja) | 情報処理装置 | |
JPH0216667A (ja) | プロセッサ・システム | |
JPS608939A (ja) | 特殊機能セツト・アツプ制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080725 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090725 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090725 Year of fee payment: 12 |