JPS63310051A - プログラム入出力命令を含む入出力プロセスの実行方法および装置 - Google Patents

プログラム入出力命令を含む入出力プロセスの実行方法および装置

Info

Publication number
JPS63310051A
JPS63310051A JP63091229A JP9122988A JPS63310051A JP S63310051 A JPS63310051 A JP S63310051A JP 63091229 A JP63091229 A JP 63091229A JP 9122988 A JP9122988 A JP 9122988A JP S63310051 A JPS63310051 A JP S63310051A
Authority
JP
Japan
Prior art keywords
bus
input
processor
executing
output
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
Application number
JP63091229A
Other languages
English (en)
Inventor
ステファン・ディー・プレザント
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Prime Computer Inc
Original Assignee
Prime Computer Inc
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 Prime Computer Inc filed Critical Prime Computer Inc
Publication of JPS63310051A publication Critical patent/JPS63310051A/ja
Pending 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、多重プロセッサにおけるプログラムされた入
出力命令を実行するための技術に関し、特に現存する単
一プロセッサ構成からハードウェアまたはソフトウェア
の大規模な修正を必要とすることなく、多重I/O/O
バ反におけるプログラムされた入出力命令を実行するた
めの技術に関する。
(従来の技術および解決しようとする問題点)コンピュ
ータのソフトウェアは、典型的には、単一プロセッサが
単一の入出力(Ilo)バス上の1つ以上のI/O装置
と通信する単一プロセッサ環境において使用されるよう
に構成されている。ソフトウェアがあるI/O装置と通
信するプログラム入出力(PIO)命令は全て、同じI
/Oバス上で実行される。
2つ以上の作動中のプロセッサを有する多重プロセッサ
・システムは、処理能力を増大するために用いられる。
単−I/Oバスは、プロセッサの1つと接続され得る。
全てのIloは関連するプロセッサにより実行されねば
ならず、これによりこのI/Oバスが接続されるブロセ
ーツサに対しより大きな1作業負荷を課す。多重プロセ
ッサ・システムのI/O能力は、単−I/Oバスの能力
によって制限を受ける。
多重I/Oバスは、単一プロセッサおよび単−I/Oバ
ス通信設計技術を用いてI/O速度および容量を増大す
るため多重プロセッサと接続することができる。各プロ
セッサは、単にその関連する即ち「ローカル」のI/O
バスと通信できるに過ぎない。しかし、厳しいソフトウ
ェアの互換性問題が生じる。多重プロセッサ・システム
上で実行しつつあるソフトウェアは、このシステムにお
けるI/Oバスのどれかに置かれたI/O装置を参照す
るPIO命令を含むI/Oプロセスを実行しようと試み
る。本文において用いられるI/Oプロセスとは、プロ
グラム[/O命令を実行しようと試みるプロセスであり
、プロセスあるいはタスクとは、多重プログラム・シス
テムにおける1つのプログラム・エンティティである。
ある特定のプロセスにおいて実行中のソフトウェアがロ
ーカルI/Oバス上に接続されたI/O装置を参照する
時、問題は一切生じない。しかし、このソフトウェアが
遠隔I/Oバス上に接続されたI/O装置を参照する時
は、(最初から単一プロセッサ・システム用にのみ設計
された)ソフトウェアは、この装置が遠゛隔I/O0バ
スと接続されることが判らず、また参照されたI/O装
置に対する通信リンクが存在するかどうかも判らない。
1つの解決法は、各プロセッサと各I/Oバスとの間に
ハードウェア接続を提供することである。しかし、別の
ハードウェアがバスの連結に要求され、かつ制御ハード
ウェアが各170バスの使用のプロセッサの要求を仲裁
(優先順位を決定)するため必要となる故に、システム
設計はあまりにも複雑化する。各I/Oバスが物理的各
プロセッサと連結されない時、PIO命令は、参照され
たI/O装置が接続されるI/Oバスと関連したプロセ
ッサについて実行され得るに過ぎない。しかし゛、ソフ
トウェアが1つ以上のI/OバスにおけるI/O装置を
参照することを許容することは望ましい。また、PIO
が参照された装置を含むI/Oバスと関連したプロセッ
サにおいてのみ試みられることが保証されねばならない
(目的) 本発明の一般的な目的は、ハードウェアを過度に複雑に
することなく、少なくとも2つのI/Oバスを備えた単
一プロセッサ・システムにおいてプログラム入出力命令
を実行するための方法の)是イ共にある。
本発明の別の目的は、単一プロセッサ・システムと少な
くとも2つのI/Oバスを有する多重プロセッサ・シス
テムとの間にソフトウェアの互換性を提供するように、
プログラム入出力命令を実行する方法の提供にある。
本発明の更に別の目的は、ある参照されたI/O装置が
接続されるI/Oバスと関連したプロセッサについて入
出力プロセスを実行するよう強制することにより、少な
くとも2つのI/Oバスを有する多重プロセッサ・シス
テムにおいてプログラム入出力命令を含む入出力プロセ
スを実行する方法の提供にある。
(問題点を解決するための手段) 一 本発明によれば、上記および他の目的および利点は、各
々が1つ以上のI/O装置を接続した関連のI/Oバス
を有する少なくとも2つのプロセッサを含む多重プロセ
ッサ・システムにおいてプログラム入出力命令を含む入
出力プロセスを実行するための方法によって達成される
この方法は、1つのユニークなI/O装置のアドレスと
、要素のロケーション・テーブルにおける各I/O装置
に対する1つのI/Oバスのロケーションとを記憶し、
プログラム入出力命令の実行に先立フて参照されるI/
O装置のアドレスを決定し、装置のロケーション・テー
ブルから参照されたI/O装置の対応するI/Oバスの
ロケーションを読出し、参照されたI/O装置が接続さ
れるI/Oバスと関連するプロセッサにおいて入出力プ
ロセスを実行するステップからなっている。
多重プロセッサ・システムは、プロセスをその優先順位
に従ってスケジュールして実行するためのプロセス・ス
ケジューリング装置を含む。
このプロセス・スケジューリング装置は、スケジューリ
ングされた各プロセスと関連するプロセス制御ブロック
を含む。入出力プロセスを実行するステップは、参照さ
れたI/O装置がローカルのI/Oバスと接続される時
ローカル・プロセッサにおいて入出力プロセスを実行し
、また参照されたI/O装置が予め選定された遠隔I/
Oバスと接続される時は、入出力プロセスの処理制御ブ
ロックにロックされた記述子を置くステップを含み、ロ
ックされた記述子は、予め選定された遠隔I/Oバスと
関連した遠隔プロセッサについてのみ実行することがで
き、更に入出力プロセスのレジスタをその処理制御ブロ
ックにおいて保管し、予め選定された遠隔I/Oバスと
関連する遠隔プロセッサについて入出力プロセスをその
優先順位に従ってスケジュールするステップを含む。
本発明の方法は、システムと接続された全てのI/O装
置に対して、プログラム入出力操作の仮想的な回報通信
を有効に行なうソフトウェアをもたらす結果となる。用
語「仮想的な同報通信」、は、ソフトウェアがあるプロ
グラム入出力命令を実行する時にどのI/Oバスに置か
れたI/O装置とも通信するように見える故に適当であ
る。
実際には、参照されたI/Oバスと関連するプロセッサ
のみが命令を実行し、唯一のI/Oバスが使用される。
スイッチは、参照されたI/O装置が接続されるI/O
バスを知ることを必要とせず、あるいはプロセッサと参
照されたI/O装置との間に通信経路があるかどうかを
判定することも必要としない。多重I/Oバスを連結す
るためのハードウェアと、バスの仲裁のための制御ハー
ドウェアは、本発明の結果として取除かれる。単一プロ
セッサ・システムにおいて使用されるよう構成されたソ
フトウェアは、!fflプロセッサ・システムとも共用
し得る。
本発明を以下実施例に従って詳細に説明する。
(実施例) 本発明は、ソフトウェアがI/O装置(デバイス)と通
信するプログラム入出力(P I O)命令が2つ以上
のI/Oバスを有する多重プロセッサ・システムについ
て実行することを可能にするアルゴリズムを提供する。
このアルゴリズムは、PIO命令を含むI/Oプロセス
を、参照されたI/O装置が接続されるI/Oバスと関
連したプロセッサにおいて実行するよう強制する。この
アルゴリズムを構成するためにI/Oプロセスのソフト
ウェアを修正することは必要でない。
本発明は、コンピュータ・システムが、メモリーにおけ
る中央処理装置を共用する多重タスクを許容するオペレ
ーティング・システムを有する多重プログラムされた即
ち多重タスキング環境において作動することを要求する
。本システムは、各々が共有されたメモリー内でタスク
を実行することができる多重プロセッサからなる中央処
理装置を備え、かつ唯1つのオペレーティング・システ
ムを持つ密に接続された多重プロセッサであるものと仮
定する。オペレーティング・システムは、プロセッサに
おいてこれらの割当てられた優先順位に従って実行する
ためのタスクをスケジュールするタスク・スケジューラ
を含む。適当な優先順位のタスクが、要求される資源が
得られなくなるまで、使用できるプロセッサにおいて実
行するようにスケジュールされる。次いで・、次に高い
優先順位のタスクが、要求される資源が使用できる状態
になるまで実行される。タスク・スケジューラは、スケ
ジュールされた各タスクまたはプロセスに関する情報を
保有するプロセス制御ブロックを使用する。このプロセ
ス制御ブロックは、典型的には、優先順位、スケジュー
リング、待ち行列、ポインタおよびレジスタの状態の如
きスケジューリング情報を保有しており、レジスタはプ
ログラム・カウンタ、プログラム状態ワード、汎用レジ
スタおよびアドレス・レジスタを含み、総経過時間、c
pu使川時用および時間スライスに残った時間等のアカ
ウント情報を含む。本文において以下に述べるように、
プロセス制御ブロックはまたロックされた記述子も含む
ことができる。プロセス制御ブロックにおける情報は、
必要な資源が使用できかつより高い優先順位のタスクが
待機状態にない時、1つのタスクを開始することあるい
は再開することを許容する。
適当な多重プロセッサ形態は、共有されたメモリーを持
つ2一つ以上のプロセッサを含む。
各プロセッサは、関連した入出力(Ilo)バスを持ち
、その各々が更にこれと接続されている。
全体的なソフトウェアの互換性を達成するために、多重
I/Oバスはソフトウェア・レベルにおいて単一のI/
Oバスとして見えねばならない。従って、システムにお
ける各I/O装置は唯一のI/O装置アドレスを持たね
ばならない。この要件は、唯一の装置アドレスが各I/
Oバスにおいてのみ要求される場合とは区別される。
本発明は、入出力プロセスを参照されたI/O装置が接
続されるI/Oバスと関連するプロセッサにおいて実行
するよう強制するためのアルゴリズムである。このアル
ゴリズムは、何隻特別なハードウェアも必要としない詐
りでなく、最小限度の性能オーバーヘッドを有する。本
発明は、各I/Oバスと各プロセッサとの間の通信リン
クも必要としない。プログラム入出力命令が実行される
時、プロセッサは、参照されたI/O0装置が直接通信
し得るローカルI/Oバスにおいて接続されるかどうか
を判定する。もし参照されたI/O装置がこのローカル
・バス上にあれば、プログラム入出力命令は常に実行さ
れる。もし参照されたI/O装置が遠隔のI/Oバスに
接続されるならば、プログラム入出力命令は、以下に述
べるように参照されたI/O装置が接続されるI/Oバ
スと関連した遠隔プロセッサにおいて実行されるよう強
制される。入出力プロセスがある遠隔プロセッサに対し
スケジュールされる時、ローカルプロセッサはスケジュ
ールにおいて次に高い優先順位のタスクを実行する。
本発明の包含に適する多重プロセッサ・システムが、第
1図においてブロック図の形態で示されている。プロセ
ッサlOおよびプロセッサ12が、多重導体のメモリー
・バス16における共有されたメモリー14と通信する
。本例においては、プロセッサ/Oおよび12は、共有
されたメモリー14を介して相互に通信する。しかし、
このデュアル・プロセッサ・システムは、どんなメモリ
ー形態でも、また優先順位に従ってプロセッサ/O.1
2におけるタスクをスケジュールするための手段を含む
単一オペレーティング・システムをシステムか有する制
限を持ったプロセッサ間のどのような通信チャネルでも
有することができる。
I/Oバス20はプロセッサ/Oと接続され、またI/
Oバス22はプロセッサ12と接続されている。各々が
多重導体のデータ通信リンクであるI/Oバス20.2
2は、谷プロセッサと、各I/O0バスに接続されたI
/O装置との間の通信を提供する。ディスク・ドライブ
、テープ・ドライブ、ビデオ・ディスプレイ端末等に対
するインターフェースを含み得るI/O装置は、I/O
装置のアドレスを表わす番号により第1図に略図的に示
されている。このため、アドレス23.40.63.7
.1および31を有するI/O装置がI/Oバス20と
接続され、アドレス26.25.24.8.9および4
2を持つI/O装置はI/Oバス22と接続されている
。上記のように、本発明の要件は、システムにおけるI
/O0装置が唯一のアドレスを持たねばならないことで
ある。例えば、アドレス23を持つI/O装置はI/O
バス2o上に置かれるため、I/Oバス22と接続され
たI/O装置を含むシステム内の他のI/O装置はアド
レス23が割当てられることが許容される。
プロセッサ/O.12の各々は同じものであり、単一プ
ロセッサ設計に基〈。このようなプロセッサの一例は、
l”ril!Ie Computer社製造のモデルP
9955I/Oである。各プロセッサは、デュアル・プ
ロセッサ形態における共有されたメモリーを支援するよ
うに改修されたが、I/Oハードウェアの修正は行なれ
なかワた。
本発明を実施する最初のステップとして、装置のロケー
ション・テーブルが形成される。この装置ロケーション
・テーブル(D LT)は、共有されるメモリー14に
存在し、システムの初期化の間に形成されることが望ま
しい。このテーブルは、I/O装置の形態が同じ状態を
維持する限り、固定されたエントリを有する。この装置
ロケーション・テーブルは、可能性のある各Iイ1−I
/O装置アドレスと対応するエントリを含む。第1図の
システムに対する装置ロケーション・テーブルの一例は
第2図に示される。
各I/O装置のアドレス毎に3つの可能なエントリがあ
り、0は1つのI/O装置がこのアドレスに対して存在
しないことを示し、20はI/O装置がI/Oバス20
と接続されることを示し、22はI/O装置がI/Oバ
ス22と接続されていることを示している。システムが
2つ以上のI/Oバスを含む時は、2つ以上のI/O装
置のロケーションが必要となる。装置のロケーション・
テーブルは、I/Oバス20.22の各々をポーリング
することにより、システムの初期化の間に形成されて、
このバスに接続されたI/O装置のアドレスを決定する
。各アドレスに対し、第2図に示されるような装置のロ
ケーション・テーブルにおいて1つのエントリが行なわ
れる。
プログラム入出力命令が実行される時、プロセッサは、
参照されたI/O装置が直接通信できるI/Oバスに接
続されるかどうかを判定する。もしそうであれば、PI
O命令が常に実行される。もし参照されたI/O装置が
異なる、即ち遠隔のI/Oバスに存在するならば、プロ
セス交換R)1−を用いて適当な遠隔プロセッサにおい
てI/Oプロセスが実行されるよう強+ttllする。
用語「プロセス交換」とは、プロセッサが1つのタスク
即ちプロセスから別のプロセスに切換ねる時このプロセ
ッサにより用いられる方法を意味する。この機構はrコ
ンテキスト・スイッチング」とも呼ばれる。
入力プロセスを適当な遠隔プロセッサにおいて実行され
るよう強制するためには、多重プロセッサのプロセス交
換アルゴリズムは、1つのプロセスがあるプロセッサに
ロックできることを認識することが必要となる。これは
、プロセッサをして新たなプロセスを実行する前にロッ
クされた記述子を調べさせることにより行なわれる。も
しこのプロセスが別のプロセッサにロックされているな
らば、このプロセッサは実行すべき異なるプロセスを見
出さねばならない。この機能は本発明の使用のために必
要であるが、性能測定の如き他の用途における多重プロ
セッサ・システムにしばしば含まれる。
適当な遠隔プロセッサにおいて実行させるようにPIO
命令を含むプロセスを強制するため、I/Oプロセスは
この遠隔プロセッサにロックされ、擬似通知が行なわれ
る。換言すれば、I/Oプロセスは、あたかも丁度実行
の用意ができたかのように取扱わわる。PIO命令の実
行を開始したローカルプロセーツサは、これが別の遠隔
プロセッサに対してロックされる故に再びこのプロセス
を実行しようとしない。その代り、ローカル・プロセス
が、実行すべき次に高い優先順位のタスクを見出す。I
/Oプロセスの目標となる遠隔プロセッサは、実行でき
る最も高い優先順位のタスクとなると直ちにこのプロセ
スの実行を開始することになる。I/Oプロセスが遠隔
プロセッサにおいて実行する時、このプロセスは通常の
状態で実行される。
はとんどのコンピュータ・アーキテクチャにおいては、
I/O操作を制御するかあるいは支持するように規定さ
れるハードウェア・レジスタが存在する。これらのレジ
スタは、多重I/OバスにおけるI/Oアクティビティ
を支持するためコヒーレントな方法で維持される必要が
ある。
I/O仮想−物理的メモリーのマツピング・レジスタお
よびI/Oチャネル制御レジスタが、これらレジスタの
事例である。はとんどの場合、コヒーレント性は、汎用
プロセッサ間通信手法を用いて維持することができる。
ハードウェアあるいはソフトウェアにおけるこのような
手法は、一般に各多重プロセッサ・システムの一部をな
している。
本発明は、ある特定のプロセッサにロックされたプロセ
スをそのままにする側面的効果を持つ。はとんどの場合
、このことは望ましい二次効果である。I/O装置に対
する通信は通常ユーザに代って装置インターフェース・
モジュール(D I M)により行なわれるため、DI
Mのみがロック状態となる。DIMは反復して同じI/
O装置と通信するか、あるいはある場合には1つの構成
要素としか通信できないため、DIMは通常適当なプロ
セッサにおいて実行されることになる。もし各I/Oバ
スにおいて均衡したアクティビティが存在するならば、
DIMは多重プロセッサにおいても適当に均衡がとれね
ばならない。ユーザが直接I/O命令を実行する数少な
い場合には、ユーザはこの場合I/Oプロセスであるが
、ユーザがI/O装置を解放即ち割当て解除する(即ち
、ユーザがPIO命令の実行を完了した)時は常に、ユ
ーザのロック記述子のフィールドをクリアさせることが
できる。これは、システムにおける一ユーザの負荷バラ
ンスを保証するためにのみ必要である。
本発明のプロセス交換アルゴリズムは、多重プロセッサ
のプロセッサにおいてマイクロコードで実現することが
できる。このアルゴリズムを使用するためにソフトウェ
アの修正は必要でない。このアルゴリズムはまた、使用
される多重プロセッサ・システムのアーキテクチャに従
って、マイクロコードとソフトウェアの組合せにおいて
実現することもできる。
プログラム入出力命令のフローチャートは第3図に示さ
れている。アルゴリズムは、1つのプロセッサがステッ
プ50に示されるようにプログラム入出力命令の実行を
開始する時に開始される。このマイクロコード・アルゴ
リズムのステップ52において、命令は参照されたI/
O装置のアドレスを決定するため調べられる。
ステップ54においては、参照されたI/O装置の場所
が参照されたI/O装置のアドレスを用いて装置のロケ
ーション・テーブルから読出される。
ステップ56においては、アルゴリズムが、参照された
I/O装置がローカルI/Oバスに接続されるかどうか
を判定する。参照されたI/O装置が実際にローカルI
/Oバスと接続される時、PIO命令がプロセッサのア
ーキテクチャにより要求される如き通常の方法でステッ
プ58において実行される。PIO命令は完了され、プ
ロセッサは、ステップ60に示されるように、PIO命
令を含んだプロセスを実行し続ける。
参照されたI/O装置がステップ56においてローカル
I/Oバスに接続されないことが見出される時、システ
ムにおける参照されたI/O装置の存在はこのアルゴリ
ズムのステップ64において検査される。ある理由から
参照されたI/O装置がシステムの一部でない場合は、
コンピュータのアーキテクチャにより要求される如き適
当なフラッグがステップ66においてセットされ、プロ
セッサはステップ68に示されると同じプロセスを実行
し続ける。
参照されたI/O装置がステップ64において多重プロ
セッサ・システムと接続されていることが見出される時
、参照されたI/O装置と接続された遠隔プロセッサは
ステップ70において同定される。遠隔プロセッサは、
装置ロケーション・テーブルを参照することにより同定
される。次に、ステップ72においては、タスク・スケ
ジューラのプロセス制御ブロック(PCB)は、前のス
テップにおいて同定された遠隔プロセッサにおいて実行
することができるのみである。この通知は、当該プロセ
スに対するPCBにロックされた記述子を置くことによ
り行なわれる。タスク・スケジューラがこのプロセスを
実行しようと試みる時は常に、最初にロックされた記述
子を参照して、プロセスが特定のプロセッサにロックさ
れるかどうかを判定し、このプロセッサにおいてのみ該
プロセスを実行することになる。このI/Oブワセスに
対するプロセス・レジスタは、このプロセスが適当な遠
隔プロセッサにおいて再開できるようにステップ74で
PCBに保管される。
コノ時、I/Oプロセスは適当な遠隔プロセッサにおい
てスケジューリングを行なう用意がある。I/Oプロセ
スおよび適当な遠隔プロセッサにおいてその時実行中の
プロセスとの相対的な優先順位は、ステップ76におい
て決定される。I/Oプロセスがステップ78において
優先順位がその時実行中のプロセスよりも高いことが見
出される時、その時実行中のそのプロセスを優先使用し
かつ問題のI/Oプロセスの実行を開始するように、遠
隔プロセッサはステップ80において信号される。プロ
セッサ間の通信は、共有されるメモリー14におけるメ
ールボックスの如き従来周知の手段によることができる
その時、ローカル・プロセッサは、実行のための別のプ
ロセスを求めてステップ82で探索する。
これは、タスク・スケジューラ自体へ出ることにより行
なわれる。
次に、本発明のアルゴリズムの作用の一例について、第
1図乃至第3図に関して記述することにする。アドレス
23.24.25および26におけるI/O装置に対す
るアクティビティをスケジュールするD2XDIMと呼
ばれる単一のプロセスがあり、またプロセッサ12がD
2XDIMを実行中であると仮定しよう。アドレス26
におけるI/O装置との通信を要求するPIO命令が実
行される。装置のロケーション・テーブルに示されるよ
うにI/O装置26がI/Oバス22上のプロセッサ1
2と接続されているため、プロセッサ12はI/Oバス
22上の指定されたPIO動作を行なう。
後で、プロセッサ12は、依然としてD2XDIMプロ
セスの一部である別のPIO命令を実行する。この時、
PIO動作はアドレス23におけるI/O0装置に対す
るものとする。プロセッサ12は、装置ロケーション・
テーブルから、参照されたI/O装置がI/Oバス20
上のプロセッサlOと接続されていることを判定する。
次いで、プロセッサ12は、ロックされた記述子がこの
時D2XDIMがプロセッサ/Oによってしか実行でき
ないことを示すように、D2XDIMに対するプロセス
制御ブロックにおけるロックされた記述子ワードを修正
する。プロセッサ12は、プロセッサlOがその時より
高い優先順位のタスクを実行中であることを判定し、従
ってプロセッサ12はメツセージをプロセッサlOに対
して送出しない。プロセッサ12は、D2XDIMに対
するプロセス制御ブロックにおいてD2XDIMのため
のレジスタを保管した後実行する新たな関連のないタス
クを見出す。
その後、プロセッサ/Oにおいて実行中であったタスク
が、要求された資源が使用できない故に、プロセッサl
Oを解放する。プロセッサlOは、D2XDIMが実行
できる最も高い優先順位のタスクであることを見出す。
D2XDIMの状態は、D2XDIMに対するプロセス
制御ブロックからプロセッサlOにロードされる。
プロセッサ/Oが実行する最初の命令は、I/O装置2
3を参照するPIO命令(プロセッサ12が実行しよう
とした同じPIO命令)である。
プロセッサlOは、装置のロケーション・テーブルにお
いて、装置23がI/Oバス20により自らに接続され
ることを見出し、従ってプロセッサlOはI/Oバス2
0におけるPIO操作を実行する。
D2XDIMプロセスは、ある期間プロセス/Oにおい
て実行され続ける。このプロセスは、プロセッサ/Oと
接続さhたI/O装置23に対するPIO命令を実行す
るのみである。D2XDIMプロセスがアドレス24に
おけるI/O装置に対するPIO命令を試みる時、プロ
セッサlOはD2XDIMに対するPCBにおけるロッ
クされた記述子ワードを修正することによりD2XDI
Mをプロセッサ12ヘロツクし、またD2XDIMに対
するPCB&:D2XDIM1.:対するレジスタを保
管する。プロセッサlOは、プロセッサ12が優先順位
においてD2XDIMよりも低いプロセスを実行中であ
ることを判定し、従ってプロセッサlOはその時実行中
のプロセスが優先使用されねばならないことを示すメツ
セージをプロセッサ12に対して送出する。プロセッサ
/Oは実行する新たなタスクを見出し、またプロセッサ
12はその時実行中のプロセスを優先使用することがで
きると直ちにD2XDIMを実行す条。プロセッサ12
は、D2XDIMを実行する時、I/O装置24に対す
るPIO命令を実行することになる。
D2XDIMプログラムは、多数のI/Oバスを取扱う
ため何も特別なことはしない。このプログラムは、これ
が実行中であるプロセッサについて、あるいは指令を送
りつつあるI/Oバスについて何の意図もない。同じプ
ログラムは、単一プロセッサの修正のないI/Oバス環
境において実行する。
現在本発明の望ましい実施態様と見做されるものについ
て本文に示し記したが、当業者には頭書の特許請求の範
囲により定義される如き本発明の範囲から逸脱すること
なく可能であることは明らかであろう。
【図面の簡単な説明】
第1図は本発明を盛り込むのに適する多重プロセッサ・
システムのブロック図、第2図は1つの多重プロセッサ
・システムに対する装置のロケーション・テーブル、お
よび第3図は本発明の方法を示すフローチャートである
。 IO−プロセッサ、12−・プロセッサ、14−メモリ
ー、16−多重導体メモリー・バス、20.22−I/
Oバス。

Claims (1)

  1. 【特許請求の範囲】 1、各々が1つ以上のI/O装置を接続した関連のI/
    Oバスを有する少なくとも2つのプロセッサを含む多重
    プロセッサ・システムにおいて、プログラムされた入出
    力命令を含む入出力プロセスを実行する方法であって、 1つのアドレスと1つのI/Oバスのロケーションが各
    I/O装置に対して記憶される装置のロケーション・テ
    ーブルを確立し、 プログラム入出力命令を開始する時、参照 されたI/O装置のアドレスを決定し、 前記装置ロケーション・テーブルから参照 されたI/O装置の対応するI/Oバスのロケーション
    を読出し、 前記参照されたI/O装置が接続される I/Oバスと関連したプロセッサにおいて入出力プロセ
    スを実行する、 ステップからなる方法。 2、前記入出力プロセスを実行する前記ステップが、 前記参照された装置がローカルI/Oバスと接続される
    かどうかを判定し、 前記の参照された装置が前記ローカルI/Oバスと接続
    される時、ローカル・プロセッサにおいて前記入出力プ
    ロセスを実行するステップを含む請求項1記載の方法。 3、前記多重プロセッサ・システムが、優先順位に従っ
    て前記プロセッサにおいてプロセスを実行するためのプ
    ロセス・スケジューリング手段を含み、該プロセス・ス
    ケジューリング手段が、スケジュールされた各プロセス
    と関連したプロセス制御ブロックを含み、前記入出力プ
    ロセスを実行する前記ステップが、 前記の参照される装置が予め選定された遠隔I/Oバス
    と接続される時、予め選定された該遠隔I/Oバスと関
    連する遠隔プロセッサにおいてのみ前記入出力プロセス
    が実行され得ることを示すロックされた記述子を前記プ
    ロセス制御ブロックに置き、 前記入出力プロセスのレジスタをそのプロ セス制御ブロックに保管し、 前記の予め選定された遠隔I/Oバスと その優先順位に従って関連した遠隔プロセッサにおいて
    前記入出力プロセスをスケジューリングするステップを
    含む請求項2記載の方法。 4、前記入出力プロセスをスケジューリングする前記ス
    テップが、 前記入出力プロセスが、前記の予め選定された遠隔I/
    Oバスと関連する前記遠隔プロセッサにおいてその時実
    行中のプロセスよりも優先順位が高いかどうかを判定し
    、 前記入出力プロセスが、前記の予め選定 された遠隔I/Oバスと関連する前記遠隔プロセッサに
    おいてその時実行中のプロセスよりも優先順位が高い時
    、前記遠隔プロセッサがその時実行中のそのプロセスを
    優先使用して入出力プロセスを実行するように信号する
    ステップを含む請求項3記載の方法。 5、各々が1つ以上のI/O装置を接続した関連のI/
    Oバスを有する少なくとも2つのプロセッサを含む多重
    プロセッサ・システムにおいてプログラムされた入出力
    (PIO)命令を含む入出力プロセスを実行する装置で
    あって、 1つのアドレスおよび、各I/O装置に 対する1つのI/Oバス・ロケーションを装置のロケー
    ション・テーブルに記憶する手段と、前記PIO命令を
    実行するため参照された I/O装置のアドレスを決定する手段と、 前記装置のロケーション・テーブルから 参照されたI/O装置の対応するI/Oバスのロケーシ
    ョンを読出す手段と、 前記の参照された装置が置かれた前記I/Oバスと関連
    するプロセッサにおいて前記I/Oプロセスを実行する
    手段と、 を設けてなる装置。 6、各々が1つ以上のI/O装置を接続した関連のI/
    Oバスを有する少なくとも2つのプロセッサを含み、更
    に優先順位に従って該プロセッサにおいてプロセスを実
    行するプロセス・スケジューリング手段を含む多重プロ
    セッサ・システムにおいて、プログラムされた入出力命
    令を含む入出力プロセスを実行する方法であって、前記
    プロセス・スケジューリング手段がスケジュールされた
    各プロセスと関連するプロセス制御ブロックを含む方法
    において、 1つのI/O装置アドレスと各I/O装置に対する1つ
    のI/Oバスのロケーションとを装置のロケーション・
    テーブルに記憶し、 前記プログラム入出力命令の実行に先立ち、参照された
    I/O装置のアドレスを決定し、前記要素のロケーショ
    ン・テーブルから 参照されたI/O装置の対応するI/Oバスのロケーシ
    ョンを読出し、 前記参照されたI/O装置が接続される I/Oバスと関連したプロセッサにおいて入出力プロセ
    スを実行する、 ステップからなる方法。 7、前記入出力プロセスを実行するステップが、前記の
    参照されたI/O装置がローカルI/Oバスと接続され
    る時、該ローカル・プロセッサにおいて前記入出力プロ
    セスを実行し、 前記の参照されたI/O装置が予め選定 された遠隔I/Oバスと接続される時、前記入出力プロ
    セスが前記の予め選定された遠隔I/Oバスと関連する
    遠隔プロセッサにおいてのみ実行できることを示すロッ
    クされた記述子を前記入出力プロセスに対するプロセス
    制御ブロックに置き、前記入出力プロセスのレジスタを
    そのプロセス制御ブロックに保管し、前記の予め選定さ
    れた遠隔I/Oバスとその優先順位に従って関連する前
    記遠隔プロセッサにおいて前記入出力プロセスをスケジ
    ューリングするステップを含む請求項6記載の方法。 8、前記入出力プロセスを実行する前記ステップが、前
    記入出力プロセスが異なるI/O装置を参照する時、前
    記プロセス制御ブロックにロックされた記述子を変更し
    、前記入出力プロセスのレジスタをそのプロセス制御ブ
    ロックに保管し、前記入出力プロセスを前記の異なるI
    /O装置と関連する遠隔プロセッサにおいて再びスケジ
    ューリングするステップを含む請求項7記載の方法。 9、1つの唯一のI/O装置アドレスと各I/O装置に
    対する1つのI/Oバスのロケーションとを記憶する前
    記ステップが、各I/Oバスに接続された前記I/O装
    置のアドレスを決定するため該各I/Oバスをポーリン
    グするステップを含む請求項6記載の方法。
JP63091229A 1987-04-13 1988-04-13 プログラム入出力命令を含む入出力プロセスの実行方法および装置 Pending JPS63310051A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37707 1987-04-13
US07/037,707 US4855899A (en) 1987-04-13 1987-04-13 Multiple I/O bus virtual broadcast of programmed I/O instructions

Publications (1)

Publication Number Publication Date
JPS63310051A true JPS63310051A (ja) 1988-12-19

Family

ID=21895853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63091229A Pending JPS63310051A (ja) 1987-04-13 1988-04-13 プログラム入出力命令を含む入出力プロセスの実行方法および装置

Country Status (5)

Country Link
US (1) US4855899A (ja)
EP (1) EP0287295A3 (ja)
JP (1) JPS63310051A (ja)
AU (1) AU603876B2 (ja)
CA (1) CA1304513C (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2892675B2 (ja) * 1989-04-07 1999-05-17 株式会社日立製作所 コンソール装置の監視方法及び情報処理システムのコンソール制御方法
US5365228A (en) * 1991-03-29 1994-11-15 International Business Machines Corporation SYNC-NET- a barrier synchronization apparatus for multi-stage networks
US5404461A (en) * 1991-03-29 1995-04-04 International Business Machines Corp. Broadcast/switching apparatus for executing broadcast/multi-cast transfers over unbuffered asynchronous switching networks
US5250943A (en) * 1991-03-29 1993-10-05 International Business Machines Corporation GVT-NET--A Global Virtual Time Calculation Apparatus for Multi-Stage Networks
US5276684A (en) * 1991-07-22 1994-01-04 International Business Machines Corporation High performance I/O processor
US5542055A (en) * 1993-05-28 1996-07-30 International Business Machines Corp. System for counting the number of peripheral buses in each hierarch connected to primary bus for creating map of peripheral buses to locate peripheral devices
US5590338A (en) * 1993-07-23 1996-12-31 Dell Usa, L.P. Combined multiprocessor interrupt controller and interprocessor communication mechanism
US5717950A (en) * 1994-01-11 1998-02-10 Hitachi, Ltd. Input/output device information management system for multi-computer system
US6163793A (en) * 1994-08-05 2000-12-19 Intel Corporation Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
US6539415B1 (en) * 1997-09-24 2003-03-25 Sony Corporation Method and apparatus for the allocation of audio/video tasks in a network system
US6434592B1 (en) * 1998-01-05 2002-08-13 Intel Corporation Method for accessing a network using programmed I/O in a paged, multi-tasking computer
US8171474B2 (en) 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US8266477B2 (en) 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US9081621B2 (en) * 2009-11-25 2015-07-14 Microsoft Technology Licensing, Llc Efficient input/output-aware multi-processor virtual machine scheduling
KR20170094911A (ko) * 2016-02-12 2017-08-22 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
US10684968B2 (en) * 2017-06-15 2020-06-16 International Business Machines Corporation Conditional memory spreading for heterogeneous memory sizes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3938098A (en) * 1973-12-26 1976-02-10 Xerox Corporation Input/output connection arrangement for microprogrammable computer
JPS5178643A (en) * 1974-12-29 1976-07-08 Fujitsu Ltd Sabuchaneru memori akusesuseigyohoshiki
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4320456A (en) * 1980-01-18 1982-03-16 International Business Machines Corporation Control apparatus for virtual address translation unit
US4665482A (en) * 1983-06-13 1987-05-12 Honeywell Information Systems Inc. Data multiplex control facility
AU591057B2 (en) * 1984-06-01 1989-11-30 Digital Equipment Corporation Local area network for digital data processing system
US4707693A (en) * 1984-06-13 1987-11-17 Hewlett-Packard Company Through-traffic priority protocol in a communications system
JPS61175746A (ja) * 1985-01-30 1986-08-07 Mitsubishi Electric Corp 計算機システム
JPS6258341A (ja) * 1985-09-03 1987-03-14 Fujitsu Ltd 入出力割込処理方式
US5109484A (en) * 1986-04-09 1992-04-28 International Business Machines Corporation Self configuring terminal which polls loop network and generates list of connected devices for use in selectively downloading control programs
US4783730A (en) * 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
US4821170A (en) * 1987-04-17 1989-04-11 Tandem Computers Incorporated Input/output system for multiprocessors

Also Published As

Publication number Publication date
US4855899A (en) 1989-08-08
AU603876B2 (en) 1990-11-29
CA1304513C (en) 1992-06-30
EP0287295A3 (en) 1990-08-08
EP0287295A2 (en) 1988-10-19
AU1326688A (en) 1988-10-13

Similar Documents

Publication Publication Date Title
EP0644487B1 (en) Scalable system interrupt structure for a multiprocessing system
EP3039540B1 (en) Virtual machine monitor configured to support latency sensitive virtual machines
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
JP3335172B2 (ja) データ処理システム及びそれに使用するための入出力プロセッサ
US5613114A (en) System and method for custom context switching
EP0783734B1 (en) System and method for providing cooperative interrupts in a preemptive task scheduling environment
JPS63310051A (ja) プログラム入出力命令を含む入出力プロセスの実行方法および装置
JPH04318654A (ja) マイクロプロセッサへの割り込みのリダイレクションシステム
EP0644489A2 (en) Method and apparatus for signalling interrupt information in a data processing system
US5371857A (en) Input/output interruption control system for a virtual machine
EP0290942A2 (en) Guest machine execution control system for virtual machine system
JPH05173804A (ja) 割込み処理プログラム選択装置及び処理方法
US6675238B1 (en) Each of a plurality of descriptors having a completion indicator and being stored in a cache memory of an input/output processor
EP0049521A2 (en) Information processing system
JP2001236237A (ja) マルチos構成方法
JPH0552535B2 (ja)
CN110955507B (zh) 基于vxWorks系统的多任务访问同一IIC总线的方法
JP2002312302A (ja) 周辺装置
JP2003005987A (ja) エミュレーション装置
JPS6227413B2 (ja)
JPH0290331A (ja) 仮想計算機システムのためのプロセツサ間通信命令処理装置
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
KR920009447B1 (ko) 다중처리 시스템에서의 입출력 전담 처리장치.
JPH056333A (ja) マルチプロセサシステム
JP2594557B2 (ja) マルチタスク処理装置