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
Application number
JP1505044A
Other languages
English (en)
Other versions
JPH02501515A (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
Application filed by ディジタル イクイプメント コーポレーション filed Critical ディジタル イクイプメント コーポレーション
Publication of JPH02501515A publication Critical patent/JPH02501515A/ja
Application granted granted Critical
Publication of JP2676034B2 publication Critical patent/JP2676034B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program 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つ以
上のプロセッサによる衝突アクセスに対して共有メモリ
に記憶されているデータを保護する為に設置されてい
る)。通常臨界領域はあるプロセッサがこの領域で作業
を行う場合セットされ、そうでない場合にクリアされる
共有メモリ中のフラグによって保護される。プロセッサ
は常にその領域にはいる前に前記フラグをチェックし、
もしこのフラッグがセットされていれば、別のプロセッ
サがその領域から外れるまで待機する。
あるシステムにおいて、その待機プロセッサはその臨
界領域が開放するまで他のタスクを作業するように割り
当てられる。このような他のタスクへの切り替えは、そ
の切り替えタスクが実行されるごとに現在のコンテクス
ト情報が記憶再生される必要があり、時間を浪費する。
他の公知の解決方法は以下の長所を有している。即
ち、あるコンピュータ(例えば、ディジタル・イクイプ
メント社のVAX)において、各タスクは、例えばそれの
相対的緊急度およびそれらを実行する相対的オーバーヘ
ッド・コストに応じて順位づけされる32通りの割り込み
優先レベルの1つに割り当てられる。一般的に、あるプ
ロセッサが所与の割り込み優先レベルを有するある臨界
領域でその作業がブロックされた時、そのブロックされ
たプロセッサはより高次の割り込み優先レベルを有する
他のタスクのみを作業することができる。
発明の概要 本発明の一般的特長はブロックされて待機しているプ
ロセッサによって実行可能なタスクの供給を、それ以上
でタスクの実行が許容される最小レベルにまで割り込み
優先を一時的に下げることによって増加させる点にあ
る。
本発明の好適な実施例は以下の特長を有する。あるプ
ロセッサが他のプロセッサが作業している臨界領域から
ブロックされる結果として衝突が生じると、そのブロッ
クされたプロセッサの優先レベルが臨界領域の優先レベ
ル以下に低下される。但し、その優先レベルは、(異な
った優先レベルに対するコンテクスト切り替えオーバヘ
ッドに基づく)ある所定の優先レベルよりも低くはな
く、また衝突が生じる前にそのブロックされたプロセッ
サが有していた優先レベルよりも低くはない。
その結果、そのブロックされたプロセッサは衝突が終
了するのを待機する間にさらにタスクを実行できる。そ
の時、不合理な量のコンテクスト切替えオーバーヘッド
を招くことがなく、またそのブロックされたプロセッサ
の元の優先レベルより低い優先レベルのタスクは除外さ
れる。この手法は容易に実行でき、その応用に柔軟性が
ある。
他の長所と特長は以下に述べる実施例と請求の範囲に
よって明らかにされる。
好適な実施例の説明 先ず図面について簡単に説明する。
第1図は多重プロセッサ・コンピューターの部分ブロ
ック図である。
第2図は割り込み優先レベルのチャートである。
第3図はプロセッサに対する最小割り込み優先レベル
の調整に関するフロー・チャートである。
構 成 第1図の対称多重プロセッサ(SMP)システム10にお
いて、プロセッサ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はそのテーブル・エントリに随伴される臨界
領域の割り込み優先レベルに対応する値を含む。
第2図のVAXにおいて、32通りの割り込み優先レベル3
6が示される。その内、低次の16通りのレベルはソフト
ウエア割り込み38であり、高次の16通りのレベルは例え
ば応用プログラムからのサービス要求を含むハードウエ
ア割り込み40である。プロセッサが3以上のレベルにお
ける割り込みに応答すると、コンテクスト切替えはプロ
グラム・カウンタ(PC)およびプログラム・ステータス
・ロングワード(PSL)のみの保存を要求する。一方、
そのプロセッサがレベル3未満の割り込みタスタに応答
すると、そのコンテクスト切換えはすべてのレジスタが
保存されることを要求する。
所定の割り込み優先レベル、例えばレベル27において
数多くの臨界領域42が存在する。同期優先テーブルにお
いて与えられたエントリに対するSPLフィールドは対応
臨界領域の割り込み優先レベルに設定される。
第1図において、各プロセッサはそのプロセッサに対
してSPL値を保持するハードウエア・レジスタ44を有す
る。プロセッサはその割り込み優先レベルがその現在の
SPLより低いいかなるタスクも実行できない。
操 作 プロセッサが臨界領域にはいろうとする時、セマホア
・ルーチン26が実行されるよう制御される。
第3図に示すように、そのセマホア・ルーチンはまず
プロセッサの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を低下すると、その臨界領域のS
PLより高い割り込み優先レベルを有するタスクの付与を
制限することなく、また2又はそれ以下の割り込み優先
レベルのタスクへののコンテクスト切換えのオーバヘッ
ド・コストを増加させることなく、実行可能なタスクの
供給を増大することができる。
プロセッサの元のより低く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)

    (57)【特許請求の範囲】
  1. 【請求項1】或るプロセッサによる或るタスクの作業が
    別のプロセッサとの競合により一時的にブロックされる
    時に、前記或るプロセッサが実行することのできる代替
    のタスクを決める装置であって、各タスクに優先レベル
    を割り当てる手段、各プロセッサが実行することが許容
    されたタスクの最低優先レベルを示している現在の優先
    値を各プロセッサ毎に維持する手段、及び或るプロセッ
    サの前記現在の優先値を、前の優先値から新たなタスク
    の実行に対応する新たな優先値に更新する手段からなる
    前記装置において、 他のプロセッサとの競合のために、前記プロセッサが新
    たなタスクを実行することが一時的にブロックされる
    時、このブロックされたプロセッサの現在の優先値を、
    前記新たな優先値から、この新たな優先値よりも低い
    が、前記前の優先値よりも低くない一時的な優先値に更
    新する手段を含み、この一時的な優先値に更新する手段
    は前記維持する手段に接続されており、これによって競
    合が存在する場合、前記前の優先値よりも低くない優先
    レベルを有する代替のタスクのみを実行することができ
    る装置。
  2. 【請求項2】前記一時的な優先値が、前記前の優先値又
    は所定の値の内より大きい方であり、前記所定の値が、
    異なる優先値を有するタスクに必要とされるコンテクス
    ト切替えオーバーヘッドに基づいていることを特徴とす
    る請求項1記載の装置。
JP1505044A 1988-04-14 1989-04-14 プロセッサブロッキングの影響を減少する装置 Expired - Lifetime JP2676034B2 (ja)

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)

* Cited by examiner, † Cited by third party
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 富士通株式会社 マルチプロセッサシステム、制御プログラム、および制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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
CA1321033C (en) 1993-08-03
EP0367816A1 (en) 1990-05-16
JPH02501515A (ja) 1990-05-24
DE68915937D1 (de) 1994-07-14
DE68915937T2 (de) 1995-01-05
WO1989009964A1 (en) 1989-10-19
EP0367816B1 (en) 1994-06-08

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)
JPH077379B2 (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) マルチオペレーテング計算機システム
JP2822728B2 (ja) コンピュータシステム
JP3187117B2 (ja) マルチプロセッサ内蔵1チップマイクロコンピュータ
JP2513811B2 (ja) 入出力制御方式
JPH04367035A (ja) 複数タスクの実時間処理装置
JPH0588918A (ja) マシン・サイクルの浪費を回避する方法
JPS61289433A (ja) 情報処理装置
JPH0216667A (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