JP2779032B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2779032B2
JP2779032B2 JP2013207A JP1320790A JP2779032B2 JP 2779032 B2 JP2779032 B2 JP 2779032B2 JP 2013207 A JP2013207 A JP 2013207A JP 1320790 A JP1320790 A JP 1320790A JP 2779032 B2 JP2779032 B2 JP 2779032B2
Authority
JP
Japan
Prior art keywords
instruction
register
line
interrupt
signal
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
JP2013207A
Other languages
English (en)
Other versions
JPH03217962A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013207A priority Critical patent/JP2779032B2/ja
Priority to US07/643,121 priority patent/US5440750A/en
Priority to DE4101623A priority patent/DE4101623A1/de
Publication of JPH03217962A publication Critical patent/JPH03217962A/ja
Application granted granted Critical
Publication of JP2779032B2 publication Critical patent/JP2779032B2/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マルチ・タスキングを行うための情報処理
装置に関する。
〔従来の技術〕
従来、並列処理(マルチ・タスキング)を行う処理装
置どうしの間で同期をとる第1の方法として、”コンピ
ュータ・ベクトル・マルチプロセシング・コントロー
ル、米国特許4636942号、1987年1月13日”に記載され
ているものが知られている。上記特許では、全処理装置
で共用される1ビットのセマフォア・レジスタと、セマ
フォア・レジスタに対するテスト・アンド・セット命令
を備える。テスト・アンド・セット命令を実行した処理
装置は、セマフォア・レジスタが0の間、つまり他処理
装置からセマフォア・レジスタが1にセットされるま
で、次以降の命令の発行を停止する。このように処理装
置を占有して他処理装置と同期を取ることにより、高速
な同期を取る。
また、並列処理(マルチ・タスキング)を行う処理装
置どうしの間で、処理装置を占有して高速な同期をとる
第2の方法として、次のような手法も知られている。す
なわち、比較命令と分岐命令とを組み合わせてスピン・
ループを作り、さらにループ回数を設定して、所定の回
数に達するとスピン・ループを抜け、スーパバイザ・コ
ールによりOSに制御を渡す。例えば、Mシリーズ処理装
置が備える従来命令を用いて記述すると次のようにな
る。この命令列では、ループ回数100回をGR2に設定し、
SEMAPHOREの内容が1になるのをスピン・ループにより
待つ。
L GR3,=F′1′ L GR2,=F′100′ LABEL1 C GR3,SEMAPHORE BE LABEL2 BCT GR2,LABEL1 SVC LABEL2 NOP 〔発明が解決しようとする課題〕 上記した従来技術は以下のような点で問題があった。
即ち、処理装置どうしの間で同期を取る第1の方法で
は、セマフォア・レジスタが1になるまで、処理装置を
独占して、無限にテスト・アンド・セット命令を実行し
続ける。一方、多重ジョブ環境下においては、セマフォ
ア・レジスタが1になるまでの間に、OS(オペレーティ
ング・システム)が介在して他のジョブを実行できる場
合も生じる。このため、特に多重ジョブ環境下において
は、第1の方法ではシステム・スループットが低下する
という問題があった。
一方、第2の方法では、スピン・ループ回数を設定す
るため、第1の方法のような問題は生じない。しかし、
多重ジョブ環境においては、並列処理を行うジョブと他
のジョブが混在して実行されるために、同期に要する時
間が実行の度に異なりうる。つまり、CPU時間が実行の
度に異なるため、課金が安定しなかったり、プログラム
のチューニングが行えない。一方、同期に要する時間を
計測し、同期に要する時間を除いたCPU時間を求めるこ
とができれば、この問題は生じない。しかるに第2の従
来の方法では、同期に要する時間を計測するためには、
スピン・ループの開始時と終了時にスーパバイザ・コー
ル命令を実行してスーパバイザ割込みを発生し、OSに各
々の時点での消費したCPU時間を教えてもらい、その差
をとる必要があった。しかし、割込みを発生させるとオ
ーバヘッドは非常に大きくなり、処理装置を独占しスピ
ン・ループにより高速な同期処理を行う意味が無くなる
という問題がある。
本発明は、前記問題点を解決するためになされたもの
である。
本発明の目的は、多重ジョブ環境下において、処理装
置間の同期を高速にとることができ、またビジー・ウェ
イトに要する時間をオーバヘッドなしに計測可能な情報
処理装置を提供することにある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明の情報処理装置で
は、第1、第2の処理装置を備えた情報処理装置におい
て、該第1の処理装置は該第2の処理装置との間で同期
をとるための命令に応答して前記第2の処理装置により
書きかえ可能な第1のデータと該第1の処理装置により
決定された同期用の第2のデータとを繰返し比較し、所
定の比較結果が得られたとき同期がとれたことを示す信
号を出力する比較手段と、前記比較手段により所定の比
較結果が得られないまま予め設定された上限時間が経過
したとき前記命令の実行を終了する手段を備えている。
そして、前記第1のデータは前記第1、第2の処理装
置で共有される主記憶装置上のデータであり、前記第2
のデータは前記第1の処理装置内に設けられた複数のレ
ジスタの内、該命令で指定された一つのレジスタに保持
されたデータであり、前記上限時間は、前記複数のレジ
スタの内、該命令で指定された他の一つのレジスタに保
持された時間である。
更に、前記予め設定された上限時間になるまで繰返し
比較を行っているときに、前記第1の処理装置の外部か
らの割込みが保留されている場合には、保留されている
割込みを発生して、前記命令の実行を終了する割込み発
生手段を備えている。
更に、前記命令の実行を許可するか否かを表示する手
段と、該手段が前記命令の実行を許可していないとき
に、前記第1の処理装置が前記命令を実行しようとした
場合には、割込みを発生して前記命令の実行を終了する
割込み発生手段を備えている。
〔作用〕
本発明の情報処理装置は、コンペア・アンド・ウェイ
ト命令(CW命令)を実行する。
本発明の情報処理装置では、CW命令の実行中、比較処
理の上限時間を保持する手段の内容は、該手段の内容を
更新するカウンタにより、一定時間ごとに1ずつ減算さ
れる。
CW命令は、以下の手順で実行される。
(1)命令の実行開始時に、CW命令の実行時間の上限値
を保持する第1の汎用レジスタ(命令で指定される)の
内容を上限時間を保持する手段に転送する。同時に、該
保持手段の内容を更新するカウンタにより、上限時間を
保持する手段の内容の更新処理(一定時間ごとに1ずつ
減算する処理)を開始する。
(2)比較手段により、命令で指定される主記憶アドレ
スの主記憶上のデータと、命令で指定される第2の汎用
レジスタが保持する同期用のデータとを比較し、両者の
比較結果が一致しなくなった場合には、第2の汎用レジ
スタに命令で指定されるアドレスの主記憶上のデータを
ロードし、さらに条件コード0で終了して、CW命令の実
行を終了する。
(3)比較手段の比較結果が一致したままであり、かつ
上限時間を保持する手段の値が0以下となった場合に
は、条件表示手段に“2"を設定してCW命令の実行を終了
する。
(4)比較手段の比較結果が一致したままであり、かつ
上限時間を保持する手段の値が0より大きく、かつ外部
割込みや入出力割込みなど処理装置の外部からの割込み
要因が保留されている場合には、割込み発生回路はこの
割込みを受け付けて、CW命令の実行を終了する。
(5)比較手段の比較結果が一致したままであり、かつ
上限時間を保持する手段の値が0より大きく、かつ外部
割込みや入出力割込みなど処理装置の外部からの割込み
要因が保留されていない場合には、主記憶上のデータ
と、命令で指定される第2の汎用レジスタが保持する同
期用のデータとを比較する処理を継続する。即ち、
(2)ないし(5)の処理を繰り返す。
このように、上限時間を保持する手段に設定される期
限に達するまでの間は、主記憶上のデータと、命令で指
定される第2の汎用レジスタが保持する同期用のデータ
とが一致しなくなるまで、比較処理を継続する。つま
り、処理装置を独占し、ビジー・ウェイトにより高速な
処理装置間の同期を取ることができる。条件表示手段に
“2"が表示され、期限に達して命令が終了した場合に
は、スーパバイザ・コール命令(SVC命令)を用いてス
ーパバイザ割込みを発生させ、OSを介在させた同期処理
(WAIT/POSTマクロを用いた同期処理)を行うことによ
り処理装置を有効に利用することができる。
また、本発明の情報処理装置では、スーパバイザであ
るオペレーティング・システム(OS)は、ビジー・ウェ
イト・タイマに初期値“0"をセットした後、ジョブの実
行を開始させる。ビジー・ウェイト・タイマの値は、CW
命令を実行している間は一定時間ごとに1ずつ加算され
る。OSは、タスク・スイッチを行う場合には、ビジー・
ウェイト・タイマと主記憶装置との間でデータを転送す
る手段により、ビジー・ウェイト・タイマの退避/回復
処理を行う。このようにして、ジョブの実行終了時に
は、このジョブのCW命令の実行時間の合計がビジー・ウ
ェイト・タイマに求まる。OSは、この値を主記憶装置へ
ストアすることにより、CW命令の実行時間、つまりビジ
ー・ウェイトによる同期処理に要した時間を知ることが
できる。OSがCW命令の実行時間を、従来から存在するCP
U時間と合わせてユーザまたはシステム管理者に報告す
ることにより、ユーザは、並列処理プログラムのチュー
ニングに利用することができ、システム管理者は、ビジ
ー・ウエイト時間をジョブの課金に反映させることがで
きる。
以上のように、本発明の情報処理装置では、上限時間
を保持する手段にビジー・ウェイトの期限を設定するこ
とにより、ビジー・ウェイトにより高速な処理装置間の
同期を取れる方法と、OSを介在させて同期を取り処理装
置を有効に利用できる方法とを、好適に両立させること
ができる。さらに、ビジー・ウェイト・タイマを設ける
ことによりOSの介在によるオーバヘッドなしに、CW命令
の実行時間、つまりビジー・ウェイト時間を計測するこ
とができる。
〔実施例〕
以下、本発明の一実施例を詳細に説明する。
(1)CW命令の命令形式 本発明の一実施例であるコンペア・アンド・ウェイト
(Compare and Wait)命令(以下、CW命令と略す)の命
令形式の一実施例を第3図(a)により説明する。
CW命令の命令形式は、第3図(a)に示すとおりであ
る。命令長は32ビット(4バイト)である。ビット0−
15でオペコードを指定し、ビット24−27のR1フィールド
で汎用レジスタのペアを指定し、ビット28−31のR2フィ
ールドで汎用レジスタの番号を指定する。ビット16−23
は無視される。以下では、R1フィールドで指定されるペ
アの汎用レジスタの番号をR1,R1+1と表し、R2フィー
ルドで指定される汎用レジスタの番号をR2と表す。
汎用レジスタR2の内容は主記憶アドレスを表し、この
主記憶アドレスに格納されているデータと汎用レジスタ
R1の内容とが比較される。また、汎用レジスタ(R1+
1)でCW命令の最大実行時間を指定する。
CW命令は、両者の内容が一致しなくなるまで比較処理
を継続することにより、処理装置間の同期を取る。両者
の内容が一致しなくなった場合には、条件コード“0"で
CW命令の実行を終了する。比較処理を継続して行ってい
る間に、汎用レジスタ(R1+1)で指定されたCW命令の
最大実行時間を経過した場合には、条件コード"2"でCW
命令の実行を終了する。
(2)CW命令の動作の概要 まず、CW命令の動作の概要を、第3図(b)のフロー
チャートを用いて説明する。CW命令の動作を実現する処
理装置の詳細な一実施例は後述する。
(a)まず、CW命令の実行が許されているかどうかを判
定するために、CW命令実行許可フラグの値を調べる(90
5)。なお、CW命令実行許可フラグには、スーパバイザ
(OS)によってあらかじめ“0"または"1"が設定されて
いる。“1"の場合にはCW命令を実行する権限が与えられ
ていることを示し、“0"の場合には権限が与えられてい
ないことを示す。
(b)CW命令許可フラグの値が“0"の場合には(90
6)、特殊命令例外を検出して(950)、CW命令の実行を
終了する(990)。
(c)CW命令許可フラグの値が“1"の場合には(90
7)、CW命令のR1フィールドで指定される(R1+1)番
の汎用レジスタの内容をユーザ用の期限レジスタに転記
する(910)。また、スーパバイザ用の期限レジスタも
内部期限レジスタに転記する。転記後、ビジー・ウェイ
ト・タイマのカウント・アップ、ユーザ用の期限レジス
タのカウント・ダウン、スーパバイザ用の内部期限レジ
スタのカウント・ダウンを開始する(915)。なお、ビ
ジー・ウェイト・タイマは、CW命令の実行時間を計測す
るためのタイマであり、処理装置間の同期に要するビジ
ー・ウェイト時間の計測に用いる。オペレーティング・
システムが、ビジー・ウェイト・タイマの値をシステム
管理者やユーザに通知することにより、システム管理者
はビジー・ウェイト時間をユーザの課金に反映すること
ができ、ユーザは並列処理プログラムのチューニングに
反映することができる。期限レジスタは、1回のCW命令
によるビジー・ウェイト時間の上限値を設定するための
レジスタであり、ビジー・ウェイト時間が長大になりす
ぎることを防止するために用いる。期限レジスタには、
ユーザ用のものとスーパバイザ(OS)用のものがある。
(d)CW命令のR2フィールドで指定されるR2番の汎用レ
ジスタの内容で指される主記憶位置の内容D2を読みだす
(920)。
(e)CW命令のR1フィールドで指定されるR1番の汎用レ
ジスタの内容と、D2とを比較する(925)。
(f)両者の内容が等しくない場合には(926)、CW命
令による処理装置間の同期処理が正常に終了したので、
D2をR1番の汎用レジスタにロードし(955)、命令の終
了の条件コードを“0"に設定し(956)、ビジー・ウェ
イト・タイマと期限レジスタの更新処理を停止し(97
5)、ユーザ用の期限レジスタの内容を(R1+1)番の
汎用レジスタに転記し(980)、CW命令の実行を終了す
る(990)。
(g)両者の内容が一致する場合には(927)、まず、
ユーザ用に設けられている期限レジスタの内容を調べる
(930)。
(h)ユーザ用の期限レジスタの内容が0以下の場合
(つまり、CW命令の実行時間の期限に到達した場合)に
は(931)、CW命令の実行時間の期限に到達したことを
示すために、命令の終了の条件コードを“2"に設定し
(960)、ビジー・ウェイト・タイマと期限レジスタの
更新処理を停止し(975)、ユーザ用の期限レジスタの
内容を(R1+1)番の汎用レジスタに転記し(980)、C
W命令の実行を終了する(990)。
(i)ユーザ用の期限レジスタの内容が0より大きい場
合には(932)、次に、スーパバイザ用に設けられてい
る内容期限レジスタの内容を調べる(935)。
(j)スーパバイザ用の内部期限レジスタの内容が0以
下の場合(つまり、CW命令の実行時間の期限に到達した
場合)には(936)、ビジー・ウェイト・タイマと期限
レジスタの更新処理を停止し(977)、ユーザ用の期限
レジスタの内容を(R1+1)番の汎用レジスタに転記し
(982)、命令の終了形が取消しのCW割込みを発生し(9
70)、CW命令の実行を終了する(990)。こうして、制
御をスーパバイザ(OS)に渡すことができる。
(k)スーパバイザ用の内部期限レジスタの内容が0よ
り大きい場合には(937)、処理装置の外部からの割込
みを受け付けるために、入出力割込み要因または外部割
込み要因が保留されているかどうかを調べる(940)。
(l)割込み要因が保留されていない場合(941)に
は、再び(d)の処理から繰り返す。つまり、ビジー・
ウェイトにより、処理装置間の同期を取る。
(m)割込み要因が保留されている場合(942)には、
ビジー・ウェイト・タイマと期限レジスタの更新処理を
停止し(976)、ユーザ用の期限レジスタの内容を(R1
+1)番の汎用レジスタに転記し(981)、保留されて
いる入出力割込みまたは外部割込みを発生して(96
5)、CW命令の実行を終了する(990)。
以上のように、期限レジスタに設定された時間の間
は、入出力割込みや外部割込みが来ないかぎり、CW命令
のR2フィールドで指定される主記憶の内容とR1フィール
ドで指定される汎用レジスタの内容が等しくなくなるま
で、CW命令の実行を継続し、つまりビジー・ウェイト
し、処理装置間の同期を取る。また、ビジー・ウェイト
・タイマによりビジー・ウェイト時間を計測し、多重ジ
ョブ環境下のようにビジー・ウェイト時間が実行の度に
異なる場合でも、ビジー・ウェイト時間を全体のCPU時
間から引くことにより、安定した課金を求めることがで
きる。
(3)CW命令の動作 次に、第1図、第2図(a)(b)(c)を用いて、
前述したCW命令の動作を実現する本発明の情報処理装置
の一実施例について詳細に説明する。
(3−a)概要説明 まず、第1図を用いて、全体の概要を示す。
第1図において、1、2、3、4はそれぞれ処理装置
0ないし3を示す。処理装置1ないし3の詳細は処理装
置0と同一のためこの図には示していない。5は主記憶
制御部、6は主記憶装置を表す。
主記憶制御部5は、主記憶装置6へのアクセスを制御
する。処理装置0ないし処理装置3は、主記憶制御部5
を通して、主記憶装置6からデータをロードしたり、主
記憶装置6へデータをストアすることができる。
処理装置0において、100はCW命令実行ユニット、113
は汎用レジスタ群、126はスーパバイザ用内部期限レジ
スタ、131はユーザ用期限レジスタ、150はビジー・ウェ
イト・タイマを表す。200はCW命令実行制御ユニット、2
10はCW命令実行許可フラグを表す。300はCW命令終了判
定回路、320は条件コードを表す。400は割込み制御ユニ
ット、500は命令解読器を表す。
第1図において、命令解読器500は、主記憶制御部5
を通して主記憶装置6より命令を読みだす。読みだした
命令がCW命令の場合には、線506を通して、CW命令検出
信号“1"をCW命令実行制御ユニット200に送る。また、
命令のR1,R2フィールドで指定される汎用レジスタの番
号R1,R2を、線504,505を通してCW命令実行ユニット100
に送る。
CW命令実行制御ユニット200は、CW命令実行許可フラ
グ210の内容が“0"の場合には、線214を通して、特殊命
令例外要求信号“1"を割込み制御ユニット400に送る。
割込み制御ユニット400は、特殊命令例外による割込み
を発生する。CW命令実行許可フラグ210の内容が“1"の
場合には、次の4つの処理を行う。
(1)線222を通して、CW命令実行制御信号をCW命令
実行ユニット100に送り、CW命令の実行を制御する。
(2)線232を通して、CW命令開始信号“1"をCW命令実
行ユニット100に送り、CW命令のR1フィールドで指定さ
れる(R1+1)番の汎用レジスタ113の内容を、ユーザ
用期限レジスタ131に転記する。
(3)線241を通して、ビジー・ウェイト・タイマ更
新信号“1"をCW命令実行ユニット100に送り、ビジー・
ウェイト・タイマ150のカウント・アップ処理を開始す
る。(4)線234を通して、期限レジスタ更新信号“1"
をCW命令実行ユニット100に送り、スーパバイザ用内部
期限レジスタ126およびユーザ用期限レジスタ131のカウ
ント・ダウン処理を開始する。
CW命令実行ユニット100は、命令のR1フィールドで指
定されるR1番の汎用レジスタ113の内容と、命令のR2フ
ィールドで指定されるR2番の汎用レジスタ113の内容に
より指される主記憶位置の内容とを比較する。両者が一
致しなくなった場合には、線119を通して、同期信号
“1"をCW命令終了判定回路300に送るとともに、命令のR
1フィールドで指定されるR1番の汎用レジスタ113に、命
令のR2フィールドで指定されるR2番の汎用レジスタ113
の内容により指される主記憶位置の内容をロードする。
また、スーパバイザ用内部期限レジスタ126の内容が0
以下になった場合には、線129を通して、期限切れ信号
(スーパバイザ用)“1"をCW命令終了判定回路300に送
り、ユーザ用期限レジスタ131の内容が0以下になった
場合には、線139を通して、期限切れ信号(ユーザ用)
“1"をCW命令終了判定回路300に送る。
CW命令終了判定回路300は、(1)線119(同期信号)
および線129、139(期限切れ信号)が全て“0"の場合に
は、線342を通して、再比較要求信号“1"をCW命令実行
ユニット200に送る。CW命令実行ユニット200は、線222
を通して、CW命令実行制御信号をCW命令実行ユニット10
0に送り、再び命令のR1フィールドで指定されるR1番の
汎用レジスタ113の内容と、命令のR2フィールドで指定
されるR2番の汎用レジスタ113の内容により指される主
記憶位置の内容との比較処理を繰り返すように指示す
る。つまり、ビジー・ウェイトする。(2)線119(同
期信号)が“1"の場合には、条件コード320に“0"をセ
ットし、線331を通して、条件コード設定終了信号“1"
をCW命令実行制御ユニット200に送り、線139(期限切れ
信号(ユーザ用))が“1"の場合には、条件コード320
に“2"をセットし、線331を通して、条件コード設定終
了信号“1"をCW命令実行制御ユニット200に送る。CW命
令実行制御ユニット200は、線331を通して条件コード設
定終了信号“1"を受け取ると、線241(ビジー・ウェイ
ト・タイマ更新信号)および線234(期限レジスタ更新
信号)を“1"から“0"にし、ビジー・ウェイト・タイマ
および期限レジスタの更新処理を停止させる。また、線
233を通してCW命令終了信号を送り、ユーザ用期限レジ
スタ131の内容を、命令のR1フィールドで指定される(R
1+1)番の汎用レジスタ113に転記する。(3)線129
(期限切れ信号(スーパバイザ用))が“1"の場合に
は、線353を通して、CW割込み要求信号“1"を割込み制
御ユニット400に送る。割込み制御回路400はCW割込みを
発生する。
割込み制御ユニット400は、CW命令の実行中に、線422
を通して入出力割込み信号を受けていた場合、もしくは
線423を通して外部割込み信号を受けていた場合には、
それぞれ入出力割込みもしくは外部割込みを発生する。
割込み制御ユニット400は、CW割込みもしくは、入出力
割込み、外部割込みを発生すると、線411を通して、割
込み発生信号“1"をCW命令実行ユニット200に送る。CW
命令実行制御ユニット200は、割込み発生信号を受け取
ると、線241(ビジー・ウェイト・タイマ更新信号)お
よび線234(期限レジスタ更新信号)を“1"から“0"に
し、ビジー・ウェイト・タイマおよび期限レジスタのカ
ウント処理を停止させる。また、線233を通してCW命令
終了信号を送り、ユーザ用期限レジスタ131の内容を、
命令のR1フィールドで指定される(R1+1)番の汎用レ
ジスタ113に転記する。
以上のようにして、期限付きのビジー・ウェイトによ
る処理装置間の同期を取り、また、ビジー・ウェイト時
間を計測することができる。
(3−b)詳細説明 次に、第2図を用いて、本発明の一実施例であるCW命
令を実現する情報処理装置の詳細について説明する。
第2図(b)に命令解読器500およびCW命令実行制御
ユニット200の詳細を示す。
第2図(b)において、5は主記憶制御部、6は主記
憶装置、200はCW命令実行制御ユニット、500は命令解読
器を表す。
命令解読器500において、501は命令のオペコード、50
2ないし503はそれぞれ命令のR1,R2フィールド、506はCW
命令検出信号を表す。
命令解読器500は、主記憶制御部5を通して主記憶装
置6より命令を読みだす。命令のオペコード501が本発
明の一実施例であるCW命令の場合には、線506を通し
て、CW命令検出信号“1"をCW命令実行制御ユニット200
に送る。さらに、線504ないし線505にそれぞれCW命令の
R1フィールド502,R2フィールド503で指定される汎用レ
ジスタの番号を送る。
CW命令実行ユニット200において、210はCW命令実行許
可フラグ、211はNOT回路、212ないし213はAND回路、220
は制御回路、221はOR回路、230はCW命令実行中表示フラ
グ、231はOR回路を表す。
CW命令実行許可フラグ210は、1ビットのレジスタで
あり、CW命令を実行する権限が与えられているかいなか
を表す。CW命令実行許可フラグ210の値が“1"の場合に
はCW命令を実行する権限が与えられていることを示し、
“0"の場合には権限が与えられていないことを示す。ス
ーパバイザは、CW命令実行許可フラグ210に線215を通し
て主記憶装置6より値“0"または“1"をロードすること
ができ、線216を通して主記憶装置6にCW命令実行許可
フラグ210の内容をストアすることができる。こうし
て、スーパバイザは、CW命令実行許可フラグによりCW命
令を使用できるユーザを制限することができる。
CW命令実行許可フラグ210が“0"の場合に、命令解読
器500より、線506を通してCW命令検出信号“1"が送られ
てきた場合について説明する。CW命令実行許可フラグ21
0が“0"であるので、NOT回路211の入力は“0"となり、N
OT回路211の出力は“1"となる。NOT回路211の出力およ
び線506(CW命令検出信号)が“1"であるので、AND回路
212の2つの入力は共に“1"となり、AND回路212の出力
である線214は“1"となり、特殊命令例外要求信号“1"
が送出される。特殊命令例外要求信号は、割込み制御ユ
ニット400に送られ、特殊命令例外が発生して、CW命令
の実行を抑止される。
CW命令実行許可フラグ210が“1"の場合に、命令解読
器500より、線506を通してCW命令検出信号“1"が送られ
てきた場合について説明する。CW命令実行許可フラグ21
0および線506(CW命令検出信号)が“1"であるので、AN
D回路213の2つの入力は共に“1"となり、AND回路213の
出力である線232は“1"となる。線232が“1"となると、
OR回路221の出力も“1"となり、制御回路220に“1"が送
られる。制御回路220はOR回路221より“1"が送られてく
ると、線222を通して、CW命令実行制御信号をCW命令実
行ユニット100に送り、CW命令の実行の中で第3図
(b)のフローチャートにおける920、925、930、935の
処理の実行を制御する。また、CW命令実行中表示フラグ
230は1ビットのレジスタであり、線232(セット信号)
が“1"となったときに“1"にセットされ、線233(リセ
ット信号)が“1"となったときに“0"にリセットされ
る。従って、線232が“1"となると、CW命令実行中表示
フラグ230は“1"にセットされ、線241(ビジー・ウェイ
ト・タイマ更新信号)および線234(期限レジスタ更新
信号)が“1"となる。ビジー・ウェイト・タイマ更新信
号および期限レジスタ更新信号は、それぞれ線241、234
を通してCW命令実行ユニット100に送られ、ビジー・ウ
ェイト・タイマ150のカウント・アップ処理および期限
レジスタ126ないし131のカウント・ダウン処理が開始さ
れる。また、線232を通して、CW命令開始信号“1"がCW
命令実行ユニット100に送られる。
第2図(a)にCW命令実行ユニット100の詳細を示
す。
第2図(a)において、5は主記憶制御部、6は主記
憶装置、100はCW命令実行ユニットを表す。
CW命令実行ユニット100において、110は比較器、111
はアドレス・レジスタ、112はデータ・レジスタ、113は
汎用レジスタ群、114はラッチ、120は比較器、121はス
ーパバイザ用期限レジスタ、122は−1回路、123は定数
“0"、126はスーパバイザ用内部期限レジスタ、130は比
較器、131はユーザ用期限レジスタ、132は−1回路、13
3は定数“0"、140はAND回路を表す。150はビジー・ウェ
イト・タイマ、151は+1回路、152はAND回路を表す。1
60はクロック信号(CK)を表し、処理装置の基本クロッ
クに同期する。
AND回路140は、線234(期限レジスタ更新信号)が
“1"の間、クロック信号160を線141に出力する。線141
は、スーパバイザ用内部期限レジスタ126およびユーザ
用期限レジスタ131のセット信号であり、線234(期限レ
ジスタ更新信号)が“1"の間、スーパバイザ用内部期限
レジスタ126およびユーザ用期限レジスタ131の内容は更
新され続ける。
また、AND回路152は、線241(ビジー・ウェイト・タ
イマ更新信号)が“1"の間、クロック信号160を出力す
る。AND回路152の出力は、ビジー・ウェイト・タイマ15
0のセット信号であるので、線241(ビジー・ウェイト・
タイマ更新信号)が“1"の間、ビジー・ウェイト・タイ
マ150の内容は更新され続ける。
スーパバイザ用期限レジスタ121は、1回のCW命令の
実行時間の上限値、つまりビジー・ウェイト時間の上限
値をスーパバイザが設定するためのレジスタであり、ビ
ジー・ウェイト時間が長大になりすぎることによるシス
テムのスループット低下を防止するために用いる。スー
パバイザ用期限レジスタ121には、線124を通して主記憶
装置6の内容を設定することができ、線125を通してス
ーパバイザ用期限レジスタ121の内容を主記憶装置6に
読みだすことができる。
スーパバイザ用期限レジスタ121の内容は、線232を通
してCW命令開始信号“1"が送られてくると、線127を通
してスーパバイザ用内部期限レジスタ126に転送されて
セットされる。
スーパバイザ用内部期限レジスタ126の内容は、−1
回路122によって1減算され、線234(期限レジスタ更新
信号)が“1"の場合には、クロック信号160に同期して
スーパバイザ用内部期限レジスタ126に再び設定され
る。従って、線234(期限レジスタ更新信号)が“1"の
間、クロック信号160に同期して、スーパバイザ用内部
期限レジスタ126の内容は1ずつ減算される。比較器120
は、スーパバイザ用内部期限レジスタ126の内容と定数
“0"とを比較する。比較器120は、スーパバイザ用内部
期限レジスタ126の内容が0以下となると、線129(期限
切れ信号(スーパバイザ用))に“1"を出力し、CW命令
の実行時間の上限値に達したことを表示する。
ユーザ用期限レジスタ131は、1回のCW命令の実行時
間の上限値、つまりビジー・ウェイト時間の上限値をユ
ーザが設定するための内部レジスタであり、ビジー・ウ
ェイト時間が長大になりすぎることを防止するために用
いる。ユーザ用期限レジスタ131と汎用レジスタ113と
は、線134を通して相互に内容を転送することができ
る。線232を通してCW命令開始信号“1"が送られてくる
と、線504により指定される番号に1を加えた(R1+
1)番の汎用レジスタ113の内容が、線134を通してユー
ザ用期限レジスタ131に転送されてセットされる。
ユーザ用期限レジスタ131の内容は、−1回路132によ
って1減算され、線234(期限レジスタ更新信号)が
“1"の場合にはクロック信号160に同期して、ユーザ用
期限レジスタ131に再び設定される。従って、線234(期
限レジスタ更新信号)が“1"の間、クロック信号160に
同期して、ユーザ用期限レジスタ131の内容は1ずつ減
算される。比較器130は、ユーザ用期限レジスタ131の内
容と定数“0"とを比較する。比較器130は、ユーザ用期
限レジスタ131の内容が0以下となると、線139(期限切
れ信号(ユーザ用))に“1"を出力し、CW命令の実行時
間の上限値に達したことを表示する。
ビジー・ウェイト・タイマ150は、CW命令の実行時間
を計測するためのタイマであり、処理装置間の同期に要
するビジー・ウェイト時間の計測に用いる。スーパバイ
ザは、ビジー・ウェイト・タイマ150に、線153を通して
主記憶装置6の内容を設定することができ、線154を通
してビジー・ウェイト・タイマ150の内容を主記憶装置
6に読みだすことができる。
ビジー・ウェイト・タイマ150の内容は、+1回路151
によって1加算され、線241(ビジー・ウェイト・タイ
マ更新信号)が“1"の場合にはクロック信号160に同期
して、ビジー・ウェイト・タイマ150に再び設定され
る。従って、線241(ビジー・ウェイト・タイマ更新信
号)が“1"の間、クロック信号160に同期して、ビジー
・ウェイト・タイマ150の内容は1ずつ加算される。
CW命令実行制御信号(線222)の制御に従って、CW命
令のR2フィールドで指定される番号の汎用レジスタ113
の内容により指される主記憶位置の内容と、R1フィール
ドで指定される番号の汎用レジスタ113の内容が比較さ
れる。線505で指定される汎用レジスタ113の内容が、ア
ドレス・レジスタ111に読みだされる。線116を通してア
ドレス・レジスタ111の内容が主記憶制御部5に送ら
れ、アドレス・レジスタ111の内容で指定される主記憶
位置の内容が、主記憶装置6より、線117を通してデー
タ・レジスタ112に読みだされる。また、線504で指定さ
れる汎用レジスタ113の内容が、ラッチ114に読みだされ
る。比較器110は、ラッチ114の内容とデータ・レジスタ
112の内容を比較する。両者の内容が一致しない場合に
は、線119を通して同期信号“1"を送り、処理装置間の
同期が取れたことを表示する。さらに、データ・レジス
タ112の内容を、命令のR1フィールドで指定されるR1番
の汎用レジスタ113に書き込む。
第2図(c)に、CW命令終了判定回路300と割込み制
御ユニット400の詳細を示す。
CW命令終了判定回路300において、310はセレクタ、31
1は定数“0"、312は定数“2"、320は条件コード、322は
分岐命令実行制御回路、330はOR回路、340はNOR回路、3
41および350はAND回路、351および352はNOT回路を表
す。
割込み制御ユニット400において、410は割込み発生回
路、420は入出力割込み要因保留レジスタ、421は外部割
込み要因保留レジスタ、424はNOR回路を表す。
CW命令終了判定回路300において、線119はセレクタ31
0のセレクト信号となる。セレクタ310は、線119が“0"
のときには定数“2"を選択し、線119が“1"のときには
定数“0"を選択する。条件コード320にはOR回路330の出
力が“1"になったときに、セレクタ310の出力が設定さ
れる。
(a)CW命令実行ユニット100から、線119を通して、同
期信号“1"が送られてきた場合について説明する。線11
9(同期信号)が“1"となると、セレクタ310は定数“0"
を選択し、セレクタ310の出力は“0"となる。同時にOR
回路330の入力の1つである線119(同期信号)が“1"と
なるため、OR回路330の出力も“1"となり、条件コード3
20には“0"が設定される。また、線331も“1"となり、
条件コード設定終了信号“1"がCW命令実行制御ユニット
200に送られる。このようにして、CW命令は条件コード
が“0"で、命令の実行を終了する。
(b)CW命令実行ユニット100から、線119(同期信号)
を通して“0"が送られ、線139を通して期限切れ信号
(ユーザ用)“1"が送られてきた場合について説明す
る。線119は“0"のままであるので、セレクタ310は定数
“2"を選択し、セレクタ310の出力は“2"となる。一
方、OR回路330の入力の1つである線139(期限切れ信号
(ユーザ用))が“1"となるため、OR回路330の出力も
1となり、条件コード320には“2"が設定される。ま
た、線331も“1"となり、条件コード設定終了信号“1"
がCW命令実行制御ユニット200に送られる。このように
して、CW命令は条件コードが“2"で、命令の実行を終了
する。
条件コード320は、線321を通して、分岐命令の条件判
定を行う分岐命令実行制御回路322に送られる。したが
って、条件コードにより、CW命令以降の処理を異なるよ
うにプログラミングすることができる。なお、分岐命令
実行制御回路322は公知のものであるので、ここではそ
の詳細は記さない。プログラミングの一例として、次の
ようなものがある。条件コードが“0"の場合には、同期
処理が正常に終了した場合であるので、同期処理以降の
命令列を実行させる。一方、条件コードが“2"の場合に
は、ビジー・ウェイトによる同期処理が期限に達した場
合であるので、スーパバイザ割込みを発生させ(例えば
WAITマクロを実行し)、OSを介在させた同期処理を行
い、処理装置の有効活用を図る。つまり、OSが他のタス
クをディスパッチできるようにして処理装置の有効活用
を図る。
(c)CW命令実行ユニット100から、線119(同期信号)
および線139(期限切れ信号(ユーザ用))には“0"が
送られ、線129を通して期限切れ信号(スーパバイザ
用)“1"が送られてきた場合について説明する。線119
および線139が共に“0"、つまりOR回路330の2つの入力
が共に“0"のため、OR回路330の出力も“0"のままであ
り、線331(条件コード設定終了信号)も“0"である。
一方、線119が“0"のためNOT回路352の出力は“1"とな
り、線139も“0"のためNOT回路351の出力も“1"とな
る。したがって、AND回路350の3つの入力である、NOT
回路351の出力、NOT回路352の出力、線129(期限切れ信
号(スーパバイザ用))が全て“1"となるので、AND回
路350の出力は1となり、線353を通して、CW割込み要求
信号“1"が割込み制御ユニット400に送られる。割込み
制御ユニット400において、CW割込みが発生し、CW命令
の実行は終了する。
(d)CW命令実行ユニット100から、線119(同期信
号)、線139(期限切れ信号(ユーザ用))、線129(期
限切れ信号(スーパバイザ用))の全てに“0"が送られ
てきた場合について説明する。
まず、割込み制御ユニット400において、CW命令の実
行中に入出力割込み要求があると、線422を通して、入
出力割込み信号が送られ、入出力割込み要因保留レジス
タ420に“1"がセットされる。また、CW命令の実行中に
外部割込み要求があると、線423を通して、外部割込み
信号が送られ、外部割込み要因保留レジスタ421に“1"
がセットされる。
(d1)入出力割込み要因保留レジスタ420および外部割
込み要因保留レジスタ421が共に“0"の場合について説
明する。この時には、NOR回路424の2つの入力はともに
“0"であるので、NOR回路424の出力は“1"となる。一
方、CW命令終了判定回路300において、NOR回路340の3
つの入力である線119、129、139が全て“0"となるた
め、NOR回路340の出力は“1"となる。AND回路341の入力
であるNOR回路340の出力、およびNOR回路424の出力が共
に“1"のため、AND回路341の出力は“1"となり、線342
を通して、再比較要求信号“1"がCW命令実行制御ユニッ
ト200に送られる。CW命令実行制御ユニット200は再び、
上で述べた比較処理を繰り返すようにCW命令実行ユニッ
ト100を制御する。つまり、ビジー・ウェイトする。
(d2)入出力割込み要因保留レジスタ420または外部割
込み要因保留レジスタ421のいずれかが“1"の場合に
は、NOR回路424の出力は“0"となる。この時には、AND
回路341の入力の1つであるNOR回路424の出力が“0"で
あるため、AND回路341の出力は“0"となり、線342は
“0"のままであり、再比較要求信号は送られない。一
方、割込み発生回路410は、保留されている入出力割込
みまたは外部割込みを発生する。こうして、CW命令の実
行を終了する。
割込み制御ユニット400において、割込み発生回路410
は、線214を通して特殊命令例外要求信号を受けると、
特殊命令例外の割込みを発生する。線353を通してCW割
込み要求信号を受けると、CW命令の終了形が取消しとな
るCW割込みを発生する。入出力割込み要因保留レジスタ
420を通して信号を受けると、入出力割込みを発生する
と共に、入出力割込み要因保留レジスタ420を“0"にす
る。外部割込み要因保留レジスタ421を通して信号を受
けると、外部割込みを発生すると共に、外部割込み要因
保留レジスタ421を“0"にする。割込み発生回路410は、
割込みを発生すると、線411を通して割込み発生信号
“1"をCW命令実行ユニット200に送る。
再び、第2図(b)のCW命令実行制御ユニット200に
おいて、CW命令終了判定回路300および割込み制御ユニ
ット400から信号を受け取ったあとの動作について説明
する。
CW命令終了判定回路300より、線342を通して、再比較
要求信号“1"が送られてきた場合の動作について説明す
る。線342が“1"となると、OR回路221の入力の1つが
“1"となるので、OR回路221の出力も“1"となり、制御
回路220には“1"が入力される。制御回路220に“1"が入
力されると、先に述べたのと同様に、線222を通してCW
命令実行制御信号がCW命令実行ユニット100に送られ、
ここまでに詳細に述べてきた動作が、再び繰り返され
る。
線331を通して条件コード設定終了信号“1"が送られ
てきた場合、または線411を通して割込み発生信号“1"
が送られてきた場合の動作について説明する。線331
(条件コード設定終了信号)または線411(割込み発生
信号)が“1"となると、OR回路231の出力は“1"とな
り、線233(リセット信号)が“1"となる。線233が“1"
となると、CW命令実行中表示フラグ230は“1"から“0"
にリセットされ、線241(ビジー・ウェイト・タイマ更
新信号)、線234(期限レジスタ更新信号)は“0"とな
る。これらの信号が“0"となると、ビジー・ウェイト・
タイマ150のカウント・アップ処理およびスーパバイザ
用内部期限レジスタ126ないしユーザ用期限レジスタ131
のカウント・ダウン処理は停止される。また、線233を
通して、CW命令終了信号“1"がCW命令実行ユニット100
に送られる。このあと、CW命令の実行は終了する。
再び、第2図(a)のCW命令実行ユニット100におい
て、線233を通してCW命令終了信号“1"が送られてきた
ときの動作について説明する。
CW命令実行制御ユニット200より線233を通してCW命令
終了信号“1"を受け取る場合には、線234(期限レジス
タ更新信号)も“0"となっているので、ユーザ用期限レ
ジスタ131の更新処理を停止している。CW命令実行ユニ
ット100は、CW命令終了信号“1"を受け取ると、線504を
通して送られてくる、命令のR1フィールドで指定される
番号に1を加えた値である(R1+1)番の汎用レジスタ
113に、線134を通してユーザ用期限レジスタ131の内容
を転記し、CW命令の実行を終了する。CW命令の実行終了
後、プログラムでこの汎用レジスタの内容を読みだせ
ば、CW命令によりビジー・ウェイトした時間を知ること
ができる。
以上、この実施例によれば、ユーザ用期限レジスタお
よびスーパバイザ用期限レジスタによりビジー・ウェイ
トする最大時間を設定することができ、期限が到達した
場合には、ビジー・ウェイトではなくOSを介在させた同
期を取るようにすることができるため、多重ジョブ環境
においても、処理装置が無駄づかいされることを防止す
ることができ、ジョブ・スループットの低下を防止でき
る。また、ビジー・ウェイト・タイマにより、ビジー・
ウェイト時間を計測することができるため、この時間を
CPUの課金時間から引くことにより、ユーザに対して安
定した課金を提供することができる。
(4)CW命令にかかわるOSの処理 本発明の一実施例であるCW命令において、新たに追加
しなければならないオペレーティング・システム(OS)
の処理である、CW割込みにかかわる処理、子タスクの生
成/消去処理にかかわる処理、およびビジー・ウェイト
・タイマにかかわる処理の一実施例を、第8図と第9図
(a)ないし(e)により説明する。なお、従来からの
OSの処理については説明を省略する。
第8図において、1、2、3、4は処理装置0ないし
3、5は主記憶制御部、6は主記憶装置を示す。
第8図において、1610はオペレーティング・システム
(OS)が主記憶上に格納されていることを示す。1612は
ディスパッチング・キューを示し、キューの各要素には
ディスパッチング可能なタスクのTCBのアドレスが格納
される。1620、1621はジョブ制御ブロックを示し、ジョ
ブごとの制御情報が格納される。ジョブ制御ブロックは
ジョブ1個に対して1個作成される。1630、1640、1650
はタスク制御ブロック(TCBと略す)を示し、タスクの
プログラム領域の先頭アドレス、タスクの退避領域な
ど、タスクごとの制御情報が格納される。1630は親タス
クのTCB、1640は子タスク0のTCB、1650は子タスク1の
TCBを表す。TCBはタスク1個に対して1個作成される。
1個のジョブを複数個のタスクに分けてマルチタスキン
グを行なう場合には、図に示すように1個のジョブ制御
ブロック1620に対して複数個のTCB1630、1640、1650が
作成される。1631、1641、1651は親タスク、子タスク
0、子タスク1のプログラムの領域を示し、1632、164
2、1652は各タスクの固有データ(ローカル・データ)
領域を示し、1660はタスク間の共有データ領域を示す。
タスク間の同期に用いるデータは、タスク間の共有デー
タ領域に置かれる。。1670はタスクの退避領域を示す。
これらは、従来のOSの処理となんら変わらない。
本発明の一実施例であるCW命令において、新たに追加
しなければならないオペレーティング・システム(OS)
の処理の中で特徴的なものは次のとおりである。1671は
ビジー・ウェイト・タイマ150を退避する領域を表し、C
W命令によりビジー・ウェイトした時間の合計が格納さ
れる。1672はCW命令実行許可フラグ210を退避する領
域、1674はスーパバイザ用期限レジスタ121を退避する
領域、1675はCW割込みが発生したときに割込みが検出さ
れたCW命令のR1,R2フィールドで指定されるR1番とR2番
の汎用レジスタ113の内容を退避する領域を示す。163
3、1643、1653はCW割込みフラグを表し、CW割込み発生
中のときには“1"、そうでないときには“0"が格納され
る。
第9図(a)のフローチャートに従って、CW命令にか
かわるOSの処理の一実施例を説明する。
ユーザがJCLによりジョブを依頼すると(1012)、OS
によりジョブの実行を開始するための準備処理(1020)
が行なわれる。OSは、まず、ジョブに対応するジョブ制
御ブロック1620とジョブに対応する親タスクのタスク制
御ブロック(TCB)1630を作成する(1021)。次に、TCB
の退避領域内にあるスーパバイザ用期限レジスタの領域
1674に、期限値を格納する。OSは、システムの運用状況
に応じて期限値を選ぶ(1022)。また、TCBの退避領域
内にあるビジー・ウェイト・タイマの領域1671に、ビジ
ー・ウェイトした時間の初期値“0"を格納し(1023)、
TCBの退避領域内にあるCW命令実行許可フラグの領域167
2に、マルチ・タスキングを行ってもよいジョブの場合
には“1"を格納する(1024)。最後に、TCBのアドレス
をディスパッチング・キュー1612に登録し、タスクはデ
ィスパッチングされるのを待つ(1025)。
タスクを処理装置0に起動(ディスパッチング)する
ときには、TCBの退避領域(1670)内にあるビジー・ウ
ェイト・タイマの領域1671、CW命令実行許可フラグの領
域1672、スーパバイザ用期限レジスタの領域1674の内容
を、それぞれ線153、215、124を通して、処理装置0の
中にある、ビジー・ウェイト・タイマ150、CW命令実行
許可フラグ210、スーパバイザ用期限レジスタ121にロー
ドする(1030)。
1040にタスクがディスパッチング(起動)された後の
CW命令にかかわる処理を示す。CW割込みが発生したとき
の割込み処理を1050に示し、CW割込みが発生してディス
パッチング・キュー1612に登録されていたタスクが、再
起動される時の処理を1060に示し、CW命令を用いてマル
チ・タスキングを行うこのタスクから他のタスクへタス
ク・スイッチする場合の処理を1070に示し、他のタスク
からCW命令を用いてマルチ・タスキングを行うこのタス
クへタスク・スイッチする場合の処理を1080に示し、AT
TACHマクロを用いてTCB(子タスク)を生成する場合の
処理を1090に示し、DETACHマクロを用いてTCB(子タス
ク)を消去する場合の処理を1100に示す。
第9図(e)を用いて、ATTACHマクロを用いてTCB
(子タスク)を生成する場合の処理1090の詳細を説明す
る。
まず、親タスクは、ATTACHマクロを実行しOSに対して
子タスクの生成を要求する(1092)。今、子タスク1の
生成を要求した場合について、第8図も用いて説明す
る。OSは、子タスク1の制御情報を格納する子タスク1
用のTCB(タスク制御ブロック)1650を作成する(109
4)。さらに、子タスク1のTCB1650の退避領域1670内に
あるCW命令実行許可フラグ1672の領域およびスーパバイ
ザ用期限レジスタの領域1674には、同一のジョブである
ので、それぞれ親タスクのTCB1630の退避領域内にあるC
W命令実行許可フラグの領域の内容およびスーパバイザ
用期限レジスタの領域の内容を転記する(1096)。子タ
スク1のTCB1650の退避領域1670内にあるビジー・ウェ
イト・タイマの領域1671には、子タスク1はまだ実行さ
れていないので初期値“0"を格納する(1098)。このよ
うに、子タスク1のTCB1650の退避領域1670を初期化し
た後、TCB1650のアドレスを、OSのディスパッチング・
キュー1612に登録する。子タスク1は、ディスパッチン
グされるのを待つ。
第9図(d)を用いて、OSが他のタスクにタスク・ス
イッチする場合の処理1070の詳細を説明する。
OSは、処理装置内のCW命令実行許可フラグ210、スー
パバイザ用期限レジスタ121の内容を、それぞれ線216、
125を通して、主記憶装置6上のTCBの退避領域内にある
CW命令実行許可フラグの領域1672、スーパバイザ用期限
レジスタの領域1674に退避すると共に、処理装置内のビ
ジー・ウェイト・タイマ150の内容を線154を通して、主
記憶装置6上にあるTCBの退避領域内にあるビジー・ウ
ェイト・タイマの領域1671に退避して、ここまでにビジ
ー・ウェイトした時間の合計を退避する(1072)。な
お、ユーザ用の期限レジスタ131の内容はCW命令終了時
にCW命令で指定される汎用レジスタ113に転記されるた
め、従来からのOSの処理である汎用レジスタの退避処理
により、ユーザ用の期限レジスタ131の内容は主記憶装
置6に退避される。この後、他のタスクをディスパッチ
する(1074)。
第9図(d)を用いて、OSが他のタスクからタスク・
スイッチする場合の処理1080の詳細を説明する。
OSは、他のタスクの実行環境を退避したのち、CW命令
を用いてマルチ・タスキングを行うこのタスクをディス
パッチングするために必要な処理を行う。TCBの退避領
域内にあるCW命令実行許可フラグの領域1672、スーパバ
イザ用期限レジスタの領域1674の内容を、それぞれ線21
5、124を通して、処理装置内のCW命令実行許可フラグ21
0、スーパバイザ用期限レジスタ121にロードすると共
に、TCBの退避領域内にあるビジー・ウェイト・タイマ
の領域1671の内容、つまり、ここまでにビジー・ウェイ
トした時間の合計を、線153を通して処理装置内のビジ
ー・ウェイト・タイマ150にロードし、タスクの実行開
始時からのビジー・ウェイト時間の合計が求められるよ
うにする(1082)。なお、ユーザ用の期限レジスタ131
には、CW命令の実行開始時にCW命令で指定される汎用レ
ジスタ113から転記されるため、従来からのOSの処理で
ある汎用レジスタの回復処理を行えば、ユーザ用の期限
レジスタ131には必要な値がロードされる。この後、こ
のタスクをディスパッチする(1084)。
第9図(b)を用いて、CW割込みが発生した場合の割
込み処理1050の詳細を説明する。
今、処理装置0で子タスク1が実行されていて、処理
装置0においてCW割込みが発生した場合について説明す
る。CW割込みが発生すると(1052)、割込み動作の過程
で、OSの割込み処理ルーチンに制御が渡る。OSは、処理
装置0の中にあるビジー・ウェイト・タイマ150、CW命
令実行許可フラグ210、スーパバイザ用期限レジスタ121
の内容を、それぞれ線154、216、125を通して、TCBの退
避領域(1670)内にあるビジー・ウェイト・タイマの領
域1671、CW命令実行許可フラグの領域1672、スーパバイ
ザ用期限レジスタの領域1674に格納する(1053)。さら
に、CW割込みが検出されたCW命令のR1,R2フィールドで
指定される汎用レジスタ113の内容を、TCBの退避領域
(1670)内にあるCW命令のR1,R2フィールドで指定され
る汎用レジスタの内容の領域1675に格納する(1054)。
また。TCB内のCW割込みフラグ1653を“1"にし(105
5)、CW割込みが検出されたタスクのTCBのアドレスをデ
ィスパッチング・キュー1612の一番後につなぐ(105
6)。ディスパッチング・キューの一番後につなぐの
は、タスク間の同期を待つ間はディスパッチングの優先
順位を落すためである。最後に、ディスパッチング・キ
ュー1612の先頭から他のタスクを選択し、起動(ディス
パッチング)する(1057)。
第9図(c)を用いて、CW割込みが発生してディスパ
ッチング・キュー1612に登録されているタスクが再起動
されるときの処理1060の詳細を説明する。
今、処理装置0に子タスク1が起動される場合につい
て説明する。次に起動されるタスクとしてディスパッチ
ング・キュー1612からTCBのCW割込みフラグ1653が“1"
のタスク、つまり、CW割込みが発生してディスパッチン
グ・キュー1612に登録されたタスクが選択されると(10
62)、まず、TCBの退避領域(1670)内にあるCW命令のR
1,R2フィールドで指定される汎用レジスタの内容の領域
1675を読みだす。ここで、R1の内容をD1、R2の内容をA
と表す(1063)。アドレスAの内容を主記憶装置6から
読みだす。読みだしたデータをD2と表す(1064)。デー
タD1とデータD2の内容を比較する(1065)。CW割込みは
命令の終了形が取消しなので、このタスクをディスパッ
チングすると再びCW割込みを発生したCW命令から再開さ
れる。データD1とデータD2が異なれば、このタスクをデ
ィスパッチングしても再度期限切れによりCW割込みが発
生するので、このタスクを再度ディスパッチング・キュ
ー1612の最後につなぎ(1068)、他のタスクをディスパ
ッチング・キュー1612の先頭から取りだし、ディスパッ
チングする(1069)。データD1とデータD2が等しけれ
ば、まず、TCB内のCW割込みフラグ1653を“0"にして(1
066)、TCBの退避領域(1670)内にあるビジー・ウェイ
ト・タイマの領域1671、CW命令実行許可フラグの領域16
72、スーパバイザ用期限レジスタの領域1674の内容を読
みだし、それぞれ処理装置0の中にあるビジー・ウェイ
ト・タイマ150、CW命令実行許可フラグ210、スーパバイ
ザ用期限レジスタ121にロードする(1067)。こうし
て、このタスクは再起動される。
第9図(e)を用いて、DETACHマクロを用いてTCB
(子タスク)を消去する場合の処理1100の詳細を説明す
る。
まず、親タスクは、DETACHマクロを実行しOSに対して
子タスクの消去を要求する(1102)。今、子タスク1の
消去を要求した場合について、第8図も用いて説明す
る。OSは、ジョブ全体のビジー・ウェイト時間をユーザ
やシステム管理者に報告するためには、子タスク1がCW
命令を用いてビジー・ウェイトした時間を親タスクに引
き継ぐ必要がある。OSは、子タスク1のTCB1650の退避
領域1670の中のビジー・ウェイト・タイマの領域1671に
格納されている子タスク1のビジー・ウェイト時間の合
計を、親タスクのTCB1630の退避領域の中のビジー・ウ
ェイト・タイマの領域の内容に加える(1104)。この
後、子タスク1のTCB1650を消去する(1106)。
再び、第9図(a)に戻って、ジョブ終了時には、本
ジョブの終了時に存在するすべてのタスクのTCBの退避
領域内にあるビジー・ウェイト・タイマの領域の内容を
合計し、ビジー・ウェイト時間の合計を課金情報として
出力する(1110)。なお、OSは各タスクが終了し、OSに
制御が戻ったときに、処理装置内にあるビジー・ウェイ
ト・タイマの内容を、TCBの退避領域内にあるビジー・
ウェイト・タイマの領域に格納する(1110)。
以上のようなOSの処理を従来のOSに追加することによ
って、CW命令を用いてタスク間で同期をとったり、ビジ
ー・ウェイト時間を課金情報の1つとして求めることが
できるようになる。
なお、本実施例では、処理(1065)においてデータD1
とデータD2の内容を比較し、データD1とデータD2とが異
なれば再度ディスパッチング・キュー1612の最後につな
ぎ、他のタスクをディスパッチするようにしたが、この
処理を省略することができる。なぜなら、CW割込みが発
生したときに、このタスクのTCBをディスパッチング・
キューの一番後につなぐことにより、このタスクのディ
スパッチングの優先順位を低くしているため、このタス
クにたいして同期信号を送るタスクが、既にディスパッ
チングされ、同期信号が既に送られてきている確率が高
いからである。
(5)本発明の他の実施例 先の実施例によれば、ビジー・ウェイト・タイマの値
の更新処理は、CW命令の実行中に行われたが、第4図に
示すように、ビジー・ウェイト・タイマのカウント・ア
ップ処理の開始を指示する命令と、停止を指示する命令
を設けることにより、ビジー・ウェイト・タイマの更新
処理を制御することができる。つまり、ビジー・ウェイ
ト・タイマのカウント・アップ処理の開始を指示する命
令を、CW命令の直前で実行し、ビジー・ウェイトによる
同期処理が終了したあとで、ビジー・ウェイト・タイマ
のカウント・アップ処理の停止を指示する命令を実行す
ることにより、ビジー・ウェイト時間を計測することが
できる。ただし、この場合には、スーパバイザではなく
ユーザによりビジー・ウェイト・タイマの制御を行うた
め、ユーザがビジー・ウェイト時間をプログラムのチュ
ーニング情報等として利用することはできても、システ
ム管理者がビジー・ウェイト時間を課金情報として利用
することはできない。
第4図において、240はBW(ビジー・ウェイト)タイ
マ更新フラグ、501は命令のオペコード・フィールドを
表す。他は、第2図(b)に示したものと同じである。
命令解読器500は、命令がビジー・ウェイト・タイマ
のカウント・アップ処理を開始させるBWタイマ起動命令
を検出すると、線507を通して、BWタイマ起動命令検出
信号“1"をBWタイマ更新フラグ240に送る。BWタイマ更
新フラグ240は、BWタイマ起動命令検出信号“1"を受け
ると、“1"にセットされる。BWタイマ更新フラグ240が
“1"になると、線241を通して、ビジー・ウェイト・タ
イマ更新信号“1"が送られ、ビジー・ウェイト・タイマ
のカウント・アップ処理が行われる。
命令解読器500は、命令がビジー・ウェイト・タイマ
のカウント・アップ処理を停止させるBWタイマ停止命令
を検出すると、線508を通して、BWタイマ停止命令検出
信号“1"をBWタイマ更新フラグ240に送る。BWタイマ更
新フラグ240は、BWタイマ停止命令検出信号を受けると
“0"にリセットされる。BWタイマ更新フラグ240が“0"
にリセットされると、線241(ビジー・ウェイト・タイ
マ更新信号)が“0"となり、ビジー・ウェイト・タイマ
のカウント・アップ処理が停止する。
また、OSは、入出力割込みや外部割込みによりCW命令
を実行中のタスクを中断する場合には、ビジー・ウェイ
ト・タイマの更新処理を停止させる必要がある。この場
合には、主記憶装置6上のタスク制御ブロック(TCB)
の中に、割り込まれた命令がCW命令であるかどうかを表
示するCWフラグを設ける。OSは割り込まれた命令がCW命
令であるかどうかを調べ、CW命令の場合には、ビジー・
ウェイト・タイマの更新処理を停止するBWタイマ停止命
令を実行し、CWフラグをセットする。このタスクを再び
ディスパッチングする場合には、TCBの中のCWフラグを
調べ、フラグが立っている場合には、CWフラグをリセッ
トしたのち、ビジー・ウェイト・タイマの更新処理を開
始するBWタイマ起動命令を実行し、このタスクをディス
パッチする。
先の実施例によれば、線233を通してCW命令終了信号
“1"が送られてきたときに、ユーザ用期限レジスタ131
の内容を、CW命令のR1フィールドで指定される(R1+
1)番の汎用レジスタ113に転記したが、CW命令による
ビジー・ウェイト時間を必要としないならば、転記しな
くても良い。
また、先の実施例によれば、ユーザはビジー・ウェイ
トする時間の上限値(CW命令の実行時間の上限値)を、
汎用レジスタ113に設定したが、第5図(a)に示すよ
うに、専用のユーザ用期限レジスタを設け、主記憶装置
6とのロード/ストア命令を用いてビジー・ウェイトす
る時間の上限値を設定するようにしてもよい。
第5図(a)において、131はユーザ用期限レジスタ
を表す。ユーザ用期限レジスタ131には、線134を通して
主記憶装置6の内容をロードすることができ、線135を
通してユーザ用期限レジスタ131の内容を主記憶装置6
にストアすることができる。その他は、第2図(a)と
同じである。したがって、先の実施例では、汎用レジス
タに期限値を設定したのちCW命令を実行したが、本実施
例ではユーザ用期限レジスタ131に期限値をロードした
のちCW命令を実行する。
CW命令が検出され、線234を通して期限レジスタ更新
信号“1"が送られてくる間、ユーザ用期限レジスタ131
の内容はクロック160に同期して1ずつ減算される。ユ
ーザ用期限レジスタ131の内容は定数“0"と比較器130に
より比較される。ユーザ用期限レジスタ131の内容が0
以下となると、線139を通して期限切れ信号(ユーザ
用)に送られる。こうして、汎用レジスタ113を用いず
に、専用のレジスタであるユーザ用期限レジスタ131を
用いてビジー・ウェイト時間の期限を監視することがで
きる。
さらに、第5図(a)に示す実施例によれば、CW命令
の実行中に、ユーザ用期限レジスタ本体の内容がカウン
ト・ダウンされるため、CW命令を実行する度にユーザ用
期限レジスタに期限値を設定する必要があるが、第5図
(b)に示すようにユーザ用期限レジスタのほかにカウ
ント・ダウン専用の内部レジスタを設けることにより、
CW命令を実行する度にユーザ用期限レジスタに期限値を
設定する必要が無くなる。
第5図(b)において、131はユーザ用期限レジス
タ、136は内部レジスタを示す。その他は、第5図
(a)と同じである。
ユーザ用期限レジスタ131には、線134を通して主記憶
装置6より期限値を設定することができ、線135を通し
て、ユーザ用期限レジスタ131の内容を主記憶装置6に
読みだすことができる。CW命令が検出され、線232を通
して、CW命令開始信号“1"が送られてくると、ユーザ用
期限レジスタ131の内容が、線137を通して内部レジスタ
136に転記される。その後は上記実施例で述べたよう
に、線234(期限レジスタ更新信号)が“1"の間、内部
レジスタ136の内容はクロック160に同期して1ずつ減算
される。内部レジスタ136の内容は定数“0"と比較器130
により比較される。内部レジスタ136の内容が0以下と
なると、線139を通して期限切れ信号(ユーザ用)が送
られる。こうして、内部レジスタ136を用いて期限を監
視することができる。一方、ユーザ用期限レジスタ131
本体の内容は減算されないので、一度、値を設定してお
けばCW命令の度に値を設定しなおす必要はない。
先の実施例によれば、線139(期限切れ信号(ユーザ
用))が“1"となった場合には、条件コードを“2"に設
定してCW命令の実行を終了し、線129(期限切れ信号
(スーパバイザ用))が“1"となった場合には、CW割込
みを発生させてCW命令の実行を終了した。
しかし、第6図(a)に示すように、線139(期限切
れ信号(ユーザ用))が“1"になった場合も、線129
(期限切れ信号(スーパバイザ用))が“1"になった場
合も、ともに条件コードを“2"に設定してCW命令の実行
を終了してもよい。また、第6図(b)に示すように、
線139(期限切れ信号(ユーザ用))が“1"になった場
合も、線129(期限切れ信号(スーパバイザ用))が
“1"になった場合も、ともにCW割込みを発生させてCW命
令の実行を終了させてもよい。
第6図(a)において、330は3入力のOR回路を示
す。AND回路350、NOT回路351、352がないことを除け
ば、残りは第2図(c)と同じである。第6図(a)に
おいて、線119(同期信号)が“0"であり、線129または
139(期限切れ信号)が“1"となった場合には、線119が
“0"であるのでセレクタ310は定数“2"を選択し、“2"
が条件コード320に送られる。線129または139(期限切
れ信号)が“1"となると、OR回路330の入力のうち1つ
が“1"となるため、OR回路330の出力も“1"となり、条
件コード320には“2"がセットされる。一方、線331(条
件コード設定終了信号)はOR回路330の出力に接続され
ているので、線331を通して、条件コード設定終了信号
“1"が送られる。こうして、いずれの期限切れ信号が
“1"となっても、条件コードに“2"を設定してCW命令の
実行は終了する。
第6図(b)において、350は2入力のAND回路、355
はNOT回路を表す。OR回路330、NOT回路351がないことを
除けば、他は第2図(c)と同じである。第6図(b)
において、線119(同期信号)が“0"であり、線129また
は139(期限切れ信号)が“1"となった場合には、線119
が“0"であるのでNOT回路352の入力は“0"となり、NOT
回路352の出力は“1"となる。また、線129または139が
“1"であるので、OR回路355の出力は1となる。従っ
て、AND回路350の2つの入力は共に“1"となり、その結
果、AND回路350の出力である線353(CW割込み要求信
号)は“1"となり、割込み発生回路410はCW割込みを発
生する。こうして、いずれの期限切れ信号が“1"となっ
ても、CW割込みを発生してCW命令の実行は終了する。
先の実施例によれば、スーパバイザ用期限レジスタの
値が“0"以下となった場合に、期限切れ信号(スーパバ
イザ用)“1"がCW命令終了判定回路300に送られた。さ
らに、CW命令終了判定回路から、CW割込み要求信号“1"
が割込み発生回路400に送られ、CW割込みが発生して、C
W命令の実行が終了した。
しかし、第7図に示すように、期限によりCW割込みを
発生させるのではなく、常にCW割込みを発生させるか、
常にCW割込みを発生させないかという制御を行ってもよ
い。つまり、CW割込みを契機としてOSを介した同期処理
を行う場合と、処理装置を独占してCW命令を継続して実
行する場合(ビジー・ウェイトする場合)を、システム
を運用する環境によって、あらかじめ一意に分けるよう
にしてもよい。
第7図において、121はCWマスク・レジスタを表す。
第2図における、比較器120、スーパバイザ用期限レジ
スタ121、−1回路122、スーパバイザ用内部期限レジス
タ126がないことを除けば、他は第2図(a)と同じで
ある。
CWマスク・レジスタ121は、1ビットのレジスタであ
り、CW割込みを発生させるか発生させないかを制御す
る。CWマスク・レジスタ121には、線124を通して主記憶
装置6の内容をロードすることができ、線125を通してC
Wマスク・レジスタの内容を主記憶装置6へストアする
ことができる。
CWマスク・レジスタ121の内容が“0"の場合には、線1
29(期限切れ信号(スーパバイザ用))を通してCW命令
終了判定回路300へ常に“0"が送られる。従って、CW命
令終了判定回路300から割込み制御ユニット400に対して
CW割込み要求信号が出ることはなく、CW割込みが発生す
ることはない。つまり、ビジー・ウェイトにより同期処
理を行うこととなる。一方、CWマスク・レジスタ121の
内容が“1"の場合には、線129を通して期限切れ信号
(スーパバイザ用)“1"が常にCW命令終了判定回路300
に送られる。したがって、CW命令を実行すると、常にCW
割込み要求信号が割込み制御ユニット400に対して送ら
れることとなり、線119を通して同期信号が送られてこ
ないかぎりは、CW割込みを常に発生する。つまり、OSを
介した同期処理を行うこととなる。
先の実施例では、スーパバイザ用期限レジスタ121と
ユーザ用期限レジスタ131の2つの期限レジスタを備え
ていたが、いずれか片方の期限レジスタのみを備えるよ
うにしても良い。ユーザ用期限レジスタ131のみを備え
る場合には、線129には定数“0"を接続し、期限切れ信
号(スーパバイザ用)が送られないようにすれば良い。
スーパバイザ用期限レジスタ121のみを備える場合に
は、線139には定数“0"を接続し、期限切れ信号(ユー
ザ用)が送られないようにすれば良い。
先の実施例によれば、クロック信号(CK)160は、処
理装置の基本クロック、つまりマシン・サイクルに同期
していたが、例えば100ナノ秒ごとというような絶対時
間に同期させるようにしても良い。また、1マシン・サ
イクルごとではなく、100マシン・サイクルごとという
ように精度を粗くしても良い。
先の実施例によれば、CW命令のR1フィールドで指定さ
れる番号の汎用レジスタ113の内容(第1オペンランド
のデータ)が、命令のR2フィールドで指定される汎用レ
ジスタによって示される主記憶アドレスのデータ(第2
オペランドのデータ)と等しくなくなったときに、第2
図(a)において、比較器110が線119を通して同期信号
“1"を送った。つまり、CW命令の2つのオペランドのデ
ータが等しくなくなることを同期の条件として比較処理
を継続し、ビジー・ウェイトした。しかし、比較器110
が線119を通して同期信号“1"を送り出す条件が、他の
場合でも、先の実施例が容易に適用できる。
比較器110が、ラッチ114の内容とデータ・レジスタ11
2の内容が等しいときに同期信号“1"を送り出すように
すれば、第1オペランドのデータと第2オペランドのデ
ータが等しくなることが同期の条件となる。
比較器110が、ラッチ114の内容がデータ・レジスタ11
2の内容より大きいときに同期信号“1"を送り出すよう
にすれば、第1オペランドのデータが第2オペランドの
データより大きくなることが同期の条件となる。
比較器110が、ラッチ114の内容がデータ・レジスタ11
2の内容より等しいかまたは大きいときに同期信号“1"
を送り出すようにすれば、第1オペランドのデータが第
2オペランドのデータより等しいかまたは大きくなるこ
とが同期の条件となる。
比較器110が、ラッチ114の内容がデータ・レジスタ11
2の内容より小さいときに同期信号“1"を送り出すよう
にすれば、第1オペランドのデータが第2オペランドの
データより小さくなることが同期の条件となる。
比較器110が、ラッチ114の内容がデータ・レジスタ11
2の内容より等しいかまたは小さいときに同期信号“1"
を送り出すようにすれば、第1オペランドのデータが第
2オペランドのデータより等しいか小さくなることが同
期の条件となる。
先の実施例によれば、CW命令のR1フィールドで指定さ
れるR1番の汎用レジスタ113の内容(第1オペランドの
データ)が、命令のR2フィールドで指定されるR2番の汎
用レジスタによって示される主記憶アドレスのデータ
(第2オペランドのデータ)と等しくなくなったとき、
という1つの事象が成立するまで比較処理を継続した。
しかし、先の実施例を用いれば、第10図(a)(b)
に示すように、CW命令のR1フィールドで指定されるR1番
の汎用レジスタ113の内容が、命令のR2フィールドで指
定されるR2番の汎用レジスタによって示される主記憶ア
ドレスのデータと等しくなくなるか、または(R1+1)
番の汎用レジスタ113の内容が、(R2+1)番の汎用レ
ジスタによって示される主記憶アドレスのデータと等し
くなくなったとき、という2つの事象のいずれかが成立
するまで比較処理を継続するようにすることも容易に実
現できる。この場合には、(R1+2)番の汎用レジスタ
113にCW命令の最大実行時間を設定するようにすれば良
い。
第10図(a)にCW命令実行ユニット100の詳細を示
し、第10図(b)にCW命令終了判定回路300、割込み制
御ユニット400の詳細を示す。
第10図(a)において、100はCW命令実行ユニットを
表す。CW命令実行ユニット100において、110aないし110
bは比較器、111aないし111bはアドレス・レジスタ、112
aないし112bはデータ・レジスタ、113は汎用レジスタ
群、114aないし114bはラッチを表す。他は、第2図
(a)に示したものと同じである。
スーパバイザ用期限レジスタ121、ユーザ用期限レジ
スタ131、ビジー・ウェイト・タイマ150にかかわる動作
は、第2図(a)により示した先の実施例と全く同じで
ある。以下では、比較器110aないし110bにかかわる動作
について詳細に説明する。
CW命令実行制御信号(線222)の制御に従って、CW命
令のR2フィールドで指定されるR2番の汎用レジスタ113
の内容により指される主記憶位置の内容と、R1フィール
ドで指定されるR1番の汎用レジスタ113の内容が比較さ
れ、CW命令のR2フィールドで指定される(R2+1)番の
汎用レジスタ113の内容により指される主記憶位置の内
容と、R1フィールドで指定される(R1+1)番の汎用レ
ジスタ113の内容が比較される。
線505で指定される、R2番の汎用レジスタ113の内容が
アドレス・レジスタ111aに読みだされ、(R2+1)番の
汎用レジスタ113の内容がアドレス・レジスタ111bに読
みだされる。線116aを通してアドレス・レジスタ111aの
内容が主記憶制御部5に送られ、アドレス・レジスタ11
1aの内容で指定される主記憶位置の内容が、主記憶装置
6より、線117aを通してデータ・レジスタ112aに読みだ
される。また、線116bを通してアドレス・レジスタ111b
の内容が主記憶制御部5に送られ、アドレス・レジスタ
111bの内容で指定される主記憶位置の内容が、主記憶装
置6より、線117bを通してデータ・レジスタ112bに読み
だされる。
また、線504で指定される、R1番の汎用レジスタ113の
内容が、ラッチ114aに読みだされ、(R1+1)番の汎用
レジスタ113の内容が、ラッチ114bに読みだされる。
比較器110aは、ラッチ114aの内容とデータ・レジスタ
112aの内容を比較する。両者の内容が一致しない場合に
は、線119aを通して同期信号a“1"を送り、処理装置間
の同期が取れたことを表示する。さらに、データ・レジ
スタ112aの内容を、命令のR1フィールドで指定されるR1
番の汎用レジスタ113に書き込む。同様に、比較器110b
は、ラッチ114bの内容とデータ・レジスタ112bの内容を
比較する。両者の内容が一致しない場合には、線119bを
通して同期信号b“1"を送り、処理装置間の同期が取れ
たことを表示する。さらに、データ・レジスタ112bの内
容を、命令のR1フィールドで指定される(R1+1)番の
汎用レジスタ113に書き込む。
第10図(b)に、CW命令終了判定回路300と割込み制
御ユニット400の詳細を示す。
CW命令終了判定回路300において、310はセレクタ、31
1は定数“0"、312は定数“2"、313は定数“1"、320は条
件コード、322は分岐命令実行制御回路、330はOR回路、
340はNOR回路、341および350はAND回路、351、352、354
はNOT回路を表す。割込み制御ユニット400は、第2図
(c)において示したものと同じである。
CW命令終了判定回路300において、線119aないし線119
bはセレクタ310のセレクト信号となる。サレクタ310
は、線119aと線119bがともに“0"のときには定数“2"を
選択し、線119aが“1"で、線119bが“0"または“1"のと
きには定数“0"を選択し、線119aが“0"で、線119bが
“1"のときには定数“1"を選択する。条件コード320に
はOR回路330の出力が“1"になったときに、セレクタ310
の出力が設定される。
(a)CW命令実行ユニット100から、線119aを通して同
期信号a“1"が送られてきた場合について説明する。線
119a(同期信号a)が“1"となると、セレクタ310は定
数“0"を選択し、セレクタ310の出力は“0"となる。同
時にOR回路330の入力の1つである線119a(同期信号
a)が“1"となるため、OR回路330の出力も“1"とな
り、条件コード320には“0"が設定される。また、線331
も“1"となり、条件コード設定終了信号“1"がCW命令実
行制御ユニット200に送られる。このようにして、CW命
令は条件コードが“0"で、命令の実行を終了する。
(b)CW命令実行ユニット100から、線119a(同期信号
a)を通して“0"が送られ,線119bを通して同期信号b
“1"が送られてきた場合について説明する。線119a(同
期信号a)が“0",線119b(同期信号b)が“1"となる
と、セレクタ310は定数“1"を選択し、セレクタ310の出
力は“1"となる。同時にOR回路330の入力の1つである
線119b(同期信号b)が“1"となるため、OR回路330の
出力も“1"となり、条件コード320には“1"が設定され
る。また、線331も“1"となり、条件コード設定終了信
号“1"がCW命令実行制御ユニット200に送られる。この
ようにして、CW命令は条件コードが“1"で、命令の実行
を終了する。
(c)CW命令実行ユニット100から、線119a(同期信号
a)を通して“0"が送られ,線119bを通しても同期信号
b“0"が送られ、線139を通して期限切れ信号(ユーザ
用)“1"が送られてきた場合について説明する。線119a
および119bは“0"のままであるので、セレクタ310は定
数“2"を選択し、セレクタ310の出力は“2"となる。一
方、OR回路330の入力の1つである線139(期限切れ信号
(ユーザ用))が“1"となるため、OR回路330の出力も
“1"となり、条件コード320には“2"が設定される。ま
た、線331も“1"となり、条件コード設定終了信号“1"
がCW命令実行制御ユニット200に送られる。このように
して、CW命令は条件コードが“2"で、命令の実行を終了
する。
条件コード320は、線321を通して、分岐命令の条件判
定を行う分岐命令実行制御回路322に送られる。したが
って、条件コードにより、CW命令以降の処理を異なるよ
うにプログラミングすることができる。なお、分岐命令
実行制御回路322は公知のものであるので、ここではそ
の詳細は省略する。プログラミングの一例として、次の
ようなものがある。条件コードが“0"の場合には、R1番
とR2番の汎用レジスタを使用する同期処理が正常に終了
した場合であるので、この場合に行う同期処理以降の命
令列を実行させる。条件コードが“1"の場合には、(R1
+1)番と(R2+1)番の汎用レジスタを使用する同期
処理が正常に終了した場合であるので、この場合に行う
同期処理以降の命令列を実行させる。一方、条件コード
が“2"の場合には、ビジー・ウェイトによる同期処理が
期限に達した場合であるので、スーパバイザ割込みを発
生させ(例えばWAITマクロを実行し)、OSを介在させた
同期処理を行い、処理装置の有効活用を図る。つまり、
OSが他のタスクをディスパッチできるようにして処理装
置の有効活用を図る。
(d)CW命令実行ユニット100から、線119a(同期信号
a)、線119b(同期信号b)、および線139(期限切れ
信号(ユーザ用))には“0"が送られ、線129を通して
期限切れ信号(スーパバイザ用)“1"が送られてきた場
合について説明する。線119a、線119b、および線139が
共に“0"、つまりOR回路330の3つの入力が全て“0"の
ため、OR回路330の出力も“0"のままであり、線331(条
件コード設定終了信号)も“0"である。一方、線119aが
“0"のためNOT回路352の出力は“1"となり、線119bが
“0"のためNOT回路354の出力は“1"となり、線139も
“0"のためNOT回路351の出力も“1"となる。したがっ
て、AND回路350の4つの入力である、NOT回路351の出
力、NOT回路352の出力、NOT回路354の出力、線129(期
限切れ信号(スーパバイザ用))が全て“1"となるの
で、AND回路350の出力は“1"となり、線353を通して、C
W割込み要求信号“1"が割込み制御ユニット40に送られ
る。割込み制御ユニット400において、CW割込みが発生
し、CW命令の実行は終了する。
(e)CW命令実行ユニット100から、線119a(同期信号
a)、線119b(同期信号b)、線139(期限切れ信号
(ユーザ用))、線129(期限切れ信号(スーパバイザ
用))の全てに“0"が送られてきた場合について説明す
る。
(e1)入出力割込み要因保留レジスタ420および外部割
込み要因保留レジスタ421が共に“0"の場合について説
明する。この時には、NOR回路424の2つの入力はともに
“0"であるので、NOR回路424の出力は“1"となる。一
方、CW命令終了判定回路300において、NOR回路340の4
つの入力である線119a、119b、129、139が全て“0"とな
るため、NOR回路340の出力は“1"となる。AND回路341の
入力であるNOR回路340の出力、およびNOR回路424の出力
が共に“1"のため、AND回路341の出力は“1"となり、線
342を通して、再比較要求信号“1"がCW命令実行制御ユ
ニット200に送られる。CW命令実行制御ユニット200は再
び、上で述べた比較処理を繰り返すようにCW命令実行ユ
ニット100を制御する。つまり、ビジー・ウェイトす
る。
(e2)入出力割込み要因保留レジスタ420または外部割
込み要因保留レジスタ421のいずれかが“1"の場合に
は、NOR回路424の出力は“0"となる。この時には、AND
回路341の入力の1つであるNOR回路424の出力が“0"で
あるため、AND回路341の出力は“0"となり、線342は
“0"のままであり、再比較要求信号は送られない。一
方、割込み発生回路410は、保留されている入出力割込
みまたは外部割込みを発生する。こうして、CW命令の実
行を終了する。
これ以降の動作に関しては、第2図(a)ないし
(c)を用いて説明したものと全く同じである。
このように、先の実施例を用いれば、2つの事象のい
ずれかが成立するまで比較処理を継続するようにするこ
とが実現できる。
〔発明の効果〕
以上、説明したように、本発明によれば、ビジー・ウ
ェイトする最大時間を設定することができ、またオペレ
ーティング・システムを介在させた同期をとることがで
きるので、多重ジョブ環境下においても、処理装置の無
駄使いが防止され、ジョブ・スループットの低下を防止
できる。また、ビジー・ウェイトに要する時間をジョブ
の課金に反映させることができる。
【図面の簡単な説明】
第1図は、本発明の一実施例である情報処理装置の概略
図、 第2図(a)〜第2図(c)は、本発明の一実施例であ
る情報処理装置の詳細図、 第3図(a)〜第3図(b)は、本発明の一実施例であ
るコンペア・アンド・ウェイト(CW)命令の命令形式と
処理手順、 第4図は、本発明の他の実施例であるCW命令実行制御ユ
ニットの詳細図、 第5図(a)〜第5図(b)は、本発明の他の実施例で
あるCW命令実行ユニットの詳細図、 第6図(a)〜第6図(b)は、本発明の他の実施例で
あるCW命令終了判定回路および割込み制御ユニットの詳
細図、 第7図は、本発明の他の実施例であるCW命令実行ユニッ
トの詳細図、 第8図は、本発明の一実施例であるCW命令に関わるオペ
レーティング・システム(OS)のデータ領域を説明する
図、 第9図(a)〜第9図(e)は、本発明の一実施例であ
るCW命令に関わるOSの処理手順、 第10図(a)は、本発明の他の実施例であるCW命令実行
ユニットの詳細図、 第10図(b)は、本発明の他の実施例であるCW命令終了
判定回路および割込み制御ユニットの詳細図を示す。 図中、1…処理装置、6…主記憶装置、100…CW命令実
行ユニット、121…スーパバイザ用期限レジスタ、126…
スーパバイザ用内部期限レジスタ、131…ユーザ用期限
レジスタ、150…ビジー・ウェイト・タイマ、200…CW命
令実行制御ユニット、210…CW命令実行許可フラグ、300
…CW命令終了判定回路、320…条件コード、400…割込み
制御ユニット。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 田中 義一 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (58)調査した分野(Int.Cl.6,DB名) G06F 15/163 JOIS EPAT WPI

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】第1、第2の処理装置を備えた情報処理装
    置において、該第1の処理装置は該第2の処理装置との
    間で同期をとるための命令に応答して前記第2の処理装
    置により書きかえ可能な第1のデータと該第1の処理装
    置により決定された同期用の第2のデータとを繰返し比
    較し、所定の比較結果が得られたとき同期がとれたこと
    を示す信号を出力する比較手段と、前記比較手段により
    所定の比較結果が得られないまま予め設定された上限時
    間が経過したとき前記命令の実行を終了する手段を有す
    ることを特徴とする情報処理装置。
  2. 【請求項2】前記第1のデータは前記第1、第2の処理
    装置で共有される主記憶装置上のデータであることを特
    徴とする請求項1記載の情報処理装置。
  3. 【請求項3】前記第2のデータは前記第1の処理装置内
    に設けられた複数のレジスタの内、該命令で指定された
    一つのレジスタに保持されたデータであることを特徴と
    する請求項1記載の情報処理装置。
  4. 【請求項4】前記上限時間は、前記複数のレジスタの
    内、該命令で指定された他の一つのレジスタに保持され
    た時間であることを特徴とする請求項1記載の情報処理
    装置。
  5. 【請求項5】前記時間は、ユーザ用あるいはスーパーバ
    イザ用の時間であることを特徴とする請求項4記載の情
    報処理装置。
  6. 【請求項6】前記予め設定された上限時間になるまで繰
    返し比較を行っているときに、前記第1の処理装置の外
    部からの割込みが保留されている場合には、保留されて
    いる割込みを発生して、前記命令の実行を終了する割込
    み発生手段を有することを特徴とする請求項1記載の情
    報処理装置。
  7. 【請求項7】前記命令の実行を許可するか否かを表示す
    る手段と、該手段が前記命令の実行を許可していないと
    きに、前記第1の処理装置が前記命令を実行しようとし
    た場合には、割込みを発生して前記命令の実行を終了す
    る割込み発生手段を有することを特徴とする請求項1記
    載の情報処理装置。
JP2013207A 1990-01-23 1990-01-23 情報処理装置 Expired - Lifetime JP2779032B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013207A JP2779032B2 (ja) 1990-01-23 1990-01-23 情報処理装置
US07/643,121 US5440750A (en) 1990-01-23 1991-01-18 Information processing system capable of executing a single instruction for watching and waiting for writing of information for synchronization by another processor
DE4101623A DE4101623A1 (de) 1990-01-23 1991-01-21 Informationsverarbeitungssystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013207A JP2779032B2 (ja) 1990-01-23 1990-01-23 情報処理装置

Publications (2)

Publication Number Publication Date
JPH03217962A JPH03217962A (ja) 1991-09-25
JP2779032B2 true JP2779032B2 (ja) 1998-07-23

Family

ID=11826711

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013207A Expired - Lifetime JP2779032B2 (ja) 1990-01-23 1990-01-23 情報処理装置

Country Status (3)

Country Link
US (1) US5440750A (ja)
JP (1) JP2779032B2 (ja)
DE (1) DE4101623A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
DE19620622A1 (de) 1996-05-22 1997-11-27 Siemens Ag Verfahren zur Synchronisation von Programmen auf unterschiedlichen Computern eines Verbundes
US5958019A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Multiprocessing system configured to perform synchronization operations
US6044206A (en) * 1997-10-14 2000-03-28 C-Cube Microsystems Out of order instruction processing using dual memory banks
US7328270B1 (en) * 1999-02-25 2008-02-05 Advanced Micro Devices, Inc. Communication protocol processor having multiple microprocessor cores connected in series and dynamically reprogrammed during operation via instructions transmitted along the same data paths used to convey communication data
JP3564445B2 (ja) * 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
US8484643B2 (en) * 2003-03-31 2013-07-09 Fujitsu Limited CPU usage time counting method and job control system using this CPU usage time
JP2006221226A (ja) * 2005-02-08 2006-08-24 Sharp Corp データ駆動型情報処理装置およびその制御方法
US20070226745A1 (en) * 2006-02-28 2007-09-27 International Business Machines Corporation Method and system for processing a service request
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
WO2008023426A1 (fr) * 2006-08-24 2008-02-28 Netcleus Systems Corporation Dispositif de traitement de tâche
JP4230504B2 (ja) * 2006-11-30 2009-02-25 株式会社日立製作所 データプロセッサ
US8230203B2 (en) * 2007-03-30 2012-07-24 Intel Corporation Detecting spin loops in a virtual machine environment
EP2613269A4 (en) * 2010-08-30 2013-08-21 Fujitsu Ltd MULTICORE PROCESSOR SYSTEM, SYNCHRONIZATION CONTROL SYSTEM, SYNCHRONIZATION CONTROL DEVICE, INFORMATION GENERATION PROCESS AND INFORMATION GENERATION PROGRAM
US9046593B2 (en) 2011-12-15 2015-06-02 The Boeing Company Method and apparatus for detecting and classifying signals
US10120681B2 (en) 2014-03-14 2018-11-06 International Business Machines Corporation Compare and delay instructions
US9558032B2 (en) * 2014-03-14 2017-01-31 International Business Machines Corporation Conditional instruction end operation
US9454370B2 (en) 2014-03-14 2016-09-27 International Business Machines Corporation Conditional transaction end instruction
CN106922186A (zh) * 2014-12-17 2017-07-04 英特尔公司 用于执行自旋‑循环跳转的装置和方法
JP7208448B2 (ja) * 2019-02-01 2023-01-19 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4827401A (en) * 1984-10-24 1989-05-02 International Business Machines Corporation Method and apparatus for synchronizing clocks prior to the execution of a flush operation
US4631674A (en) * 1985-02-05 1986-12-23 International Business Machines Corporation Active wait
JPS6345670A (ja) * 1986-08-13 1988-02-26 Hitachi Ltd プロセツサ間同期装置
US4979105A (en) * 1988-07-19 1990-12-18 International Business Machines Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system
US4965718A (en) * 1988-09-29 1990-10-23 International Business Machines Corporation Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム

Also Published As

Publication number Publication date
DE4101623A1 (de) 1991-07-25
US5440750A (en) 1995-08-08
JPH03217962A (ja) 1991-09-25

Similar Documents

Publication Publication Date Title
JP2779032B2 (ja) 情報処理装置
US5361369A (en) Synchronous method of, and apparatus for, allowing a processor to process a next task before synchronization between a predetermined group of processors
US3528062A (en) Program interlock arrangement,including task suspension and new task assignment
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US3528061A (en) Interlock arrangement
JP2003288237A (ja) 制御装置における実行時間測定装置及び実行時間測定方法
JPH07101410B2 (ja) データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
US6615281B1 (en) Multi-node synchronization using global timing source and interrupts following anticipatory wait state
EP0257655B1 (en) Multitask processing apparatus
JP2548428B2 (ja) タイミング発生装置
JP2877095B2 (ja) マルチプロセッサシステム
JPH08297581A (ja) リアルタイム・オペレーティングシステムにおける割り込み管理方式
JP2594600B2 (ja) シングルチップマイクロコンピュータ
JP2900627B2 (ja) 割り込み制御装置
JPH0381859A (ja) マルチプロセッサシステム
JPS59133655A (ja) アドレス・ストツプ制御回路
JPS63268035A (ja) ロ−カル端末シミユレ−タによるリモ−ト端末制御方式
JPH0573296A (ja) マイクロコンピユータ
JP2544817B2 (ja) ベクトル処理装置及びベクトル処理方法
JP2566002B2 (ja) タスクディスパッチング方式
JPS633328B2 (ja)
JPH01321525A (ja) ハードウェアセマフォ
JPS5935055B2 (ja) デ−タ処理システム
Lubran et al. Some Observations on ‘Least Time to Go’Scheduling
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法