JPH03217962A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH03217962A
JPH03217962A JP2013207A JP1320790A JPH03217962A JP H03217962 A JPH03217962 A JP H03217962A JP 2013207 A JP2013207 A JP 2013207A JP 1320790 A JP1320790 A JP 1320790A JP H03217962 A JPH03217962 A JP H03217962A
Authority
JP
Japan
Prior art keywords
instruction
register
line
interrupt
execution
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.)
Granted
Application number
JP2013207A
Other languages
English (en)
Other versions
JP2779032B2 (ja
Inventor
Katsuyoshi Kitai
北井 克佳
Yasuhiro Inagami
稲上 泰弘
Yoshiko Tamaoki
玉置 由子
Giichi Tanaka
義一 田中
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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マルチ・タスキングを行うための情報処理装
置に関する。
〔従来の技術〕
従来、並列処理(マルチ・タスキング)を行う処理装置
どうしの間で同期をとる第1の方法として,′コンピュ
ータ・ベクトル・マルチプロセシング・コントロール、
米国特許4636942号、1987年1月13日”に
記載されているものが知られている。上記特許では、全
処理装置で共用される1ビットのセマフォア・レジスタ
と、セマフォア・レジスタに対するテスト・アンド・セ
ット命令を備える。テスト・アンド・セット命令を実行
した処理装置は,セマフォア・レジスタがOの間,つま
り他処理装置からセマフオア・レジス夕が1にセットさ
れるまで、次以降の命令の発行を停止する。このように
処理装置を占有して他処理装置と同期を取ることにより
、高速な同期を取る。
また、並列処理(マルチ・タスキング)を行う処理装置
どうしの間で、処理装置を占有して高速な同期をとる第
2の方法として,次のような手法も知られている。すな
わち、比較命令と分岐命令とを組み合わせてスピン・ル
ープを作り、さらにループ回数を設定して、所定の回数
に達するとスピン・ループを抜け、スーパバイザ・コー
ルによりOSに制御を渡す。例えば、Mシリーズ処理装
置が備える従来命令を用いて記述すると次のようになる
。この命令列では、ループ回数100回をGR2に設定
し、SEMAPHOREの内容が1になるのをスピン・
ループにより待つ。
L  GR3,=F’l’ L  GR2,=F’l00’ LABELI C  GR3,SEMAPHOREBE
  LABEL2 BCT GR2,LABELI 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命令)を実行する。
本発明の情報処理装置では、c’w命令の実行中、比較
処理の上限時間を保持する手段の内容は,該手段の内容
を更新するカウンタにより,一定時間ごとに1ずつ減算
される。
CW命令は、以下の手順で実行される。
(1)命令の実行開始時に、CW命令の実行時間の上限
値を保持する第1の汎用レジスタ(命令で指定される)
の内容を上限時間を保持する手段に転送する。同時に、
該保持手段の内容を更新するカウンタにより、上限時間
を保持する手段の内容の更新処理(一定時間ごとに1ず
つ減算する処理)を開始する。
(2)比較手段により、命令で指定される主記憶アドレ
スの主記憶上のデータと、命令で指定される第2の汎用
レジスタが保持する同期用のデータとを比較し、両者の
比較結果が一致しなくなった場合には、第2の汎用レジ
スタに命令で指定されるアドレスの主記憶上のデータを
ロードし、さらに条件コードOで終了して、cw命令の
実行を終了する。
(3)比較手段の比較結果が一致したままであり、かつ
上限時間を保持する手段の値が0以下となった場合には
,条件表示手段に″′2″を設定してCW命令の実行を
終了する。
(4)比較手段の比較結果が一致したままであり、かつ
上限時間を保持する手段の値がOより大きく、かつ外部
割込みや入出力割込みなど処理装置の外部からの割込み
要因が保留されている場合には、割込み発生回路はこの
割込みを受け付けて、CW命令の実行を終了する。
(5)比較手段の比較結果が一致したままであり、かつ
上限時間を保持する手段の値がOより大きく、かつ外部
割込みや入出力割込みなど処理装置の外部からの割込み
要因が保留されていない場合には、主記憶上のデータと
、命令で指定される第2の汎用レジスタが保持する同期
用のデータとを比較する処理を継続する。即ち、(2)
ないし(5)の処理を繰り返す。
このように、上限時間を保持する手段に設定される期限
に達するまでの間は、主記憶上のデータと、命令で指定
される第2の汎用レジスタが保持する同期用のデータと
が一散しなくなるまで、比較処理を継続する。つまり、
処理装置を独占し、ビジー・ウェイトにより高速な処理
装置間の同期を取ることができる。条件表示手段にjj
2jlが表示され、期限に達して命令が終了した場合に
は、スーパバイザ・コール命令(SVC命令)を用いて
スーパバイザ割込みを発生させ、OSを介在させた同期
処理(WAIT/POSTマクロを用いた同期処理)を
行うことにより処理装置を有効に利用することができる
また、本発明の情報処理装置では、スーパバイザである
オペレーティング・システム(OS)は、ビジー・ウェ
イト・タイマに初期値”O”をセットした後、ジコブの
実行を開始させる。ビジー・ウェイト・タイマの値は、
CW命令を実行している間は一定時間ごとに1ずつ加算
される。OSは、タスク・スイッチを行う場合には、ビ
ジー・ウェイト・タイマと主記憶装置との間でデータを
転送する手段により、ビジー・ウェイト・タイマの退避
/回復処理を行う。このようにして、ジョブの実行終了
時には、このジョブのCW命令の実行時間の合計がビジ
ー・ウェイト・タイマに求まる。
OSは、この値を主記憶装置ヘストアすることにより、
CW命令の実行時間,っまりビジー・ウェイトによる同
期処理に要した時間を知ることができる。OSがCW命
令の実行時間を,従来から存在するCPU時間と合わせ
てユーザまたはシステム管理者に報告することにより,
ユーザは、並列処理プログラムのチューニングに利用す
ることができ、システム管理者は、ビジー・ウェイト時
間をジョブの課金に反映させることができる。
以上のように、本発明の情報処理装置では、上限時間を
保持する手段にビジー・ウェイトの期限を設定すること
により、ビジー・ウェイトにより高速な処理装置間の同
期を取れる方法と、OSを介在させて同期を取り処理装
置を有効に利用できる方法とを、好適に両立させること
ができる。さらに、ビジー・ウェイト・タイマを設ける
ことによりOSの介在によるオーバヘッドなしに、CW
命令の実行時間、つまりビジー・ウェイト時間を計測す
ることができる。
〔実施例〕
以下、本発明の一実施例を詳細に説明する。
(I CW命令の命A形式 本発明の一実施例であるコンベア・アンド・ウェイト(
Coa+pare and Iilait)命令(以下
、CW命令と略す)の命令形式の一実施例を第3図(a
)により説明する。
CW命令の命令形式は、第3図(a)に示すとおりであ
る。命令長は32ビット(4バイト)である。ビット0
−15でオペコードを指定し、ビット24−27のR1
フィールドで汎用レジスタのペアを指定し,ビット28
−31のR2フィールドで汎用レジスタの番号を指定す
る。ビット16−23は無視される。以下では、R1フ
ィールドで指定されるペアの汎用レジスタの番号をRl
,R1+1と表し.R2フィールドで指定される汎用レ
ジスタの番号をR2と表す。
汎用レジスタR2の内容は主記憶アドレスを表し,この
主記憶アドレスに格納されているデータと汎用レジスタ
R1の内容とが比較される。また,汎用レジスタ(R1
+1)でCW命令の最大実行時間を指定する。
CW命令は、両者の内容が一致しなくなるまで比較処理
を継続することにより、処理装置間の同期を取る。両者
の内容が一致しなくなった場合には,条件コード”0”
でCW命令の実行を終了する。比較処理を継続して行っ
ている間に、汎用レジスタ(R1+1)で指定されたC
W命令の最大実行時間を経過した場合には、条件コード
”2″でCW命令の実行を終了する。
2 CW命令の動 の まず、CW命令の動作の概要を、第3図(b)のフロー
チャートを用いて説明する。CW命令の動作を実現する
処理装置の詳細な一実施例は後述する. (a)まず、CW命令の実行が許されているかどうかを
判定するために、CW命令実行許可フラグの値を調べる
(905)。なお、CW命令実行許可フラグには、スー
パバイザ(OS)によってあらかじめ″0”または”1
”が設定されている。
1″の場合にはCW命令を実行する権限が与えられてい
ることを示し、11 0 1jの場合には権限が与えら
れていないことを示す。
(b)CW命令許可フラグの値がn O”の場合には(
906).特殊命令例外を検出して(950)、CW命
令の実行を終了する(9 9 0)。
(c)CW命令許可フラグの値がttVjの場合には(
907),CW命令のRlフィールドで指定される(R
 1 + 1 )番の汎用レジスタの内容をユーザ用の
期限レジスタに転記する(9 1 0)。また,スーパ
バイザ用の期限レジスタも内部期限レジスタに転記する
。転記後、ビジー・ウェイト.タイマのカウント・アッ
プ、ユーザ用の期限レジスタのカウント・ダウン、スー
パバイザ用の内部期限レジスタのカウント・ダウンを開
始する(915)。なお、ビジー・ウェイト・タイマは
、CW命令の実行時間を計測するためのタイマであり、
処理装置間の同期に要するビジー・ウェイト時間の計測
に用いる。オペレーティング・システムが,ビジー・ウ
ェイト・タイマの値をシステム管理者やユーザに通知す
ることにより,システム管理者はビジー・ウェイト時間
をユーザの課金に反映することができ.ユーザは並列処
理プログラムのチューニングに反映することができる。
期限レジスタは,1回のCW命令によるビジー・ウェイ
ト時間の上限値を設定するためのレジスタであり、ビジ
ー・ウェイト時間が長大になりすぎることを防止するた
めに用いる。期限レジスタには、ユーザ用のものとスー
パバイザ(OS)用のものがあるシ(a)CW命令のR
2フィールドで指定されるR2番の汎用レジスタの内容
で指される主記憶位置の内容D2を読みだす(920)
(e)CW命令のR1フィールドで指定されるRl番の
汎用レジスタの内容と、D2とを比較する(925)。
(f)両者の内容が等しくない場合には(926)、C
W命令による処理装置間の同期処理が正常に終了したの
で、D2をRl番の汎用レジスタにロードし(955)
.命令の終了の条件コードを″O ypに設定し(95
6).ビジー・ウェイト・タイマと期限レジスタの更新
処理を停止し(9 7 5)、ユーザ用の期限レジスタ
の内容を(R1+1)番の汎用レジスタに転記し(98
0)、CW命令の実行を終了する(990). (g)両者の内容が一致する場合には(9 2 7)、
まず、ユーザ用に設けられている期限レジスタの内容を
調べる(930)。
(h)ユーザ用の期限レジスタの内容が0以下の場合(
つまり、CW命令の実行時間の期限に到達した場合)に
は(931).CW命令の実行時間の期限に到達したこ
とを示すために、命令の終了の条件コードを″″2”に
設定し(960).ビジー・ウェイト・タイマと期限レ
ジスタの更新処理を停止し(975)、ユーザ用の期限
レジスタの内容を(R 1 + 1 )番の汎用レジス
タに転記し(980).CW命令の実行を終了する(9
90),(i)ユーザ用の期限レジスタの内容が0より
大きい場合には(932).次に,スーパハイザ用に設
けられている内部期限レジスタの内容を調べる(9 3
 5)。
(j)スーパバイザ用の内部期限レジスタの内容が0以
下の場合(つまり、CW命令の実行時間の期限に到達し
た場合)には(936).ビジー・ウェイト・タイマと
期限レジスタの更新処理を停止し(977)、ユーザ用
の期限レジスタの内容を(R1+1)番の汎用レジスタ
に転記し(982)、命令の終了形が取消しのCW割込
みを発生し(970),CW命令の実行を終了する(9
90)。こうして、制御をスーパバイザ(OS)に渡す
ことができる。
(k)スーパバイザ用の内部期限レジスタの内容が0よ
り大きい場合には(937)、処理装置の外部からの割
込みを受け付けるために、入出力割込み要因または外部
割込み要因が保留されているかどうかを調べる(940
). (1)割込み要因が保留されていない場合(941)に
は、再び(d)の処理から繰り返す。つまり、ビジー・
ウェイトにより、処理装置間の同期を取る。
(m)割込み要因が保留されている場合(942)には
,ビジー・ウェイト・タイマと期限レジスタの更新処理
を停止し(976).ユーザ用の期限レジスタの内容を
(Rl+1)番の汎用レジスタに転記し(981).保
留されている入出力割込みまたは外部割込みを発生して
(965).CW命令の実行を終了する(990)。
以上のように、期限レジスタに設定された時間の間は、
入出力割込みや外部割込みが来ないかぎり、CW命令の
R2フィールドで指定される主記憶の内容とR1フィー
ルドで指定される汎用レジスタの内容が等しくなくなる
まで、CW命令の実行を継続し、つまりビジー・ウェイ
トし,処理装置間の同期を取る。また、ビジー・ウェイ
ト・タイマによりビジー・ウェイト時間を計測し、多重
ジョブ環境下のようにビジー・ウェイト時間が実行の度
に異なる場合でも、ビジー・ウェイト時間を全体のCP
U時間から引くことにより、安定した課金を求めること
ができる。
(3 CW命令の動作 次に、第1図、第2図(a)(b)(c)を用いて,前
述したCW命令の動作を実現する本発明の情報処理装置
の一実施例について詳細に説明する。
ユ旦=」ユJl遁五 まず、第1図を用いて、全体の概要を示す。
第1図において、1、2、3、4はそれぞれ処理装置0
ないし3を示す。処理装置エないし3の詳細は処理装1
10と同一のためこの図には示していない。5は主記憶
制御部、6は主記憶装置を表す。
主記憶制御部5は、主記憶装置6へのアクセスを制御す
る。処理装置0ないし処理装W3は、主記憶制御部5を
通して,主記憶装置6からデータをロードしたり、主記
憶装i!!6へデータをストアすることができる。
処理装置0において、100はCW命令実行ユニット、
113は汎用レジスタ群、126はスーパバイザ用内部
期限レジスタ、131はユーザ用期限レジスタ,150
はビジー・ウェイト・タイマを表す。200はCW命令
実行制御ユニット、210はCW命令実行許可フラグを
表す。300はCW命令終了判定回路、320は条件コ
ードを表す。400は割込み制御ユニット、500は命
令解読器を表す。
第1図において、命令解読器500は、主記憶制御部5
を通して主記憶装置6より命令を読みだす。読みだした
命令がCW命令の場合には、線506を通して,CW命
令検呂信号”1nをCW命令実行制御ユニット200に
送る。また、命令のRl,R2フィールドで指定される
汎用レジスタの番号Rl,R2を、線504,505を
通してCW命令実行ユニット100に送る, CW命令実行制御ユニット200は、CW命令実行許可
フラグ210の内容が”0”の場合には、線214を通
して、特殊命令例外要求信号”1 7jを割込み制御ユ
ニット400に送る。割込み制御ユニット400は、特
殊命令例外による割込みを発生する。CW命令実行許可
フラグ210の内容が”1”の場合には,次の4つの処
理を行う。
(1)線222を通して、CW命令実行制御信号をCW
命令実行ユニット100に送り、CW命令の実行を制御
する。(2)線232を通して、CW命令開始信号jj
ltlをCW命令実行ユニット100に送り、CW命令
のR1フィールドで指定される(R1+1)番の汎用レ
ジスタ113の内容を,ユーザ用期限レジスタ131に
転記する。
(3)線241を通して、ビジー・ウェイト・タイマ更
新信号PjLjjをCW命令実行ユニット100に送り
、ビジー・ウェイト・タイマ150のカウント・アップ
処理を開始する。(4)線234を通して、期限レジス
タ更新信号″′1“をCW命令実行ユニット100に送
り,スーパバイザ用内部期限レジスタ126およびユー
ザ用期限レジスタ131のカウント・ダウン処理を開始
する。
CW命令実行ユニット100は、命令のR1フィールド
で指定されるRl番の汎用レジスタ113の内容と、命
令のR2フィールドで指定されるR2番の汎用レジスタ
113の内容により指される主記憶位置の内容とを比較
する.両者が一致しなくなった場合には、線119を通
して、同期信号″1”をCW命令終了判定回路300に
送るとともに、命令のR1フィールドで指定されるRl
番の汎用レジスタ113に、命令のR2フィールドで指
定されるR2番の汎用レジスタ113の内容により指さ
れる主記憶位置の内容をロードする。
また、スーパバイザ用内部期限レジスタ126の内容が
0以下になった場合には、線129を通して、期限切れ
信号(スーパバイザ用)″1”をCW命令終了判定回路
300に送り、ユーザ用期限レジスタ131の内容がO
以下になった場合には,線139を通して、期限切れ信
号(ユーザ用)″1″をCW命令終了判定回路300に
送る。
CW命令終了判定回路300は、(1)線119(同期
信号)および11129、139(期限切れ信号)が全
て”O jlの場合には、線342を通して、再比較要
求償号jll?lをCW命令実行ユニット200に送る
。CW命令実行ユニット200は、線222を通して、
CW命令実行制御信号をCW命令実行ユニット100に
送り、再び命令のRlフィールドで指定されるRl番の
汎用レジスタ113の内容と、命令のR2フィールドで
指定されるR2番の汎用レジスタ113の内容により指
される主記憶位置の内容との比較処理を繰り返すように
指示する。つまり、ビジー・ウエイトする。(2)線1
19(同期信号)が″1”の場合には、条件コード32
0にnonをセットし、線331を通して、条件コード
設定終了信号tt1ypをCW命令実行制御ユニット2
00に送り、線139(期限切れ信号(ユーザ用))が
11”の場合には、条件コード320に22”をセット
し,線331を通して、条件コード設定終了信号″1”
をCW命令実行制御ユニット200に送る。cw命令実
行制御ユニット200は、線331を通して条件コード
設定終了信号″1”を受け取ると、線241(ビジー・
ウェイト・タイマ更新信号)および線234(期限レジ
スタ更新信号)を″′1″から)j O Itにし、ビ
ジー・ウェイト・タイマおよび期限レジスタの更新処理
を停止させる。また、線233を通してCW命令終了信
号を送り、ユーザ用期限レジスタ131の内容を、命令
のRlフィールドで指定される(R1+1)番の汎用レ
ジスタ113に転記する.(3)線129(期限切れ信
号(スーパバイザ用))が″1”の場合には、IIA3
53を通して、CW割込み要求信号”11′を割込み制
御ユニット400に送る。割込み制御回路400はCW
割込みを発生する。
割込み制御ユニット400は、CW命令の実行中に、線
422を通して入出力割込み信号を受けていた場合、も
しくは線423を通して外部割込み信号を受けていた場
合には,それぞれ入出力割込みもしくは外部割込みを発
生する。割込み制御ユニット400は、CW割込みもし
くは、入出力割込み、外部割込みを発生すると、線41
1を通して、割込み発生信号″1”をCW命令実行ユニ
ット200に送る。CW命令実行制御ユニット200は
、割込み発生信号を受け取ると、線241(ヒシー・ウ
ェイト・タイマ更新信号)および線234(期限レジス
タ更新信号)をjTVIから”O I+にし、ビジー・
ウェイト・タイマおよび期限レジスタのカウント処理を
停止させる。また、線233を通してCW命令終了信号
を送り、ユーザ用期限レジスタ131の内容を、命令の
R1フィールドで指定される(R1+1)番の汎用レジ
スタ113に転記する。
以上のようにして、期限付きのビジー・ウェイトによる
処理装置間の同期を取り、また,ビジー・ウェイト時間
を計測することができる。
ユ旦:」ユ」u11覧 次に、第2図を用いて、本発明の一実施例であるCW命
令を実現する情報処理装置の詳細について説明する。
第2図(b)に命令解読器500およびCW命令実行制
御ユニット200の詳細を示す。
第2図(b)において、5は主記憶制御部、6は主記憶
装置、200はCW命令実行制御ユニット、500は命
令解読器を表す。
命令解読器500において、501は命令のオペコード
、502ないし503はそれぞれ命令のRl,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命令実行中表示フラグ、2,31は
OR回路を表す。
CW命令実行許可フラグ210は、1ビットのレジスタ
であり、CW命令を実行する権限が与えられているかい
なかを表す。CW命令実行許可フラグ210の値が17
111の場合にはCW命令を実行する権限が与えられて
いることを示し、II O IIの場合には権限が与え
られていないことを示す。
スーパバイザは、CW命令実行許可フラグ210に線2
15を通して主記憶装[6より値710F1または″1
”をロードすることができ、線216を通して主記憶装
置6にCW命令実行許可フラグ210の内容をストアす
ることができる。こうして、スーパバイザは、CW命令
実行許可フラグによりCW命令を使用できるユーザを制
限することができる。
CW命令実行許可フラグ210が”0”の場合に、命令
解読器500より、線506を通してCW命令検出信号
$1177が送られてきた場合について説明する。CW
命令実行許可フラグ210が”O”であるので、NOT
回路211の入力は”O”となり、NOT回路211の
出力は”1″となる.NoT回路211の出力および線
506(CW命令検出信号)が”1′″であるので、A
ND回路212の2つの入力は共に”1”となり、AN
D回路212の出力である線214は”1′″となり、
特殊命令例外要求信号11171が送呂される。特殊命
令例外要求信号は、割込み制御ユニット400に送られ
,特殊命令例外が発生して、CW命令の実行は抑止され
る。
CW命令実行許可フラグ210が”1″の場合に、命令
解読器500より、線506を通してCW命令検出信号
″1′″が送られてきた場合について説明する.CW命
令実行許可フラグ210および線506(CW命令検出
信号)が”1″であるので、AND回路213の2つの
入力は共に”1″となり、AND回路213の出力であ
る線232は”1”となる。線232が”1”となると
、○R回路221の出力も″1”となり、制御回路22
0に″1″′が送られる。制御回路220はOR回路2
21より″1”が送られてくると、線222を通して、
CW命令実行制御信号をCW命令実行ユニット100に
送り、CW命令の実行の中で第3図(b)のフローチャ
ートにおける920、925、930、935の処理の
実行を制御する。
また、CW命令実行中表示フラグ230は1ビットのレ
ジスタであり、線232(セット信号)が”1″となっ
たときに77117にセットされ、線233(リセット
信号)が11111となったときにIT O 11にリ
セットされる。従って、線232が”1”となると、C
W命令実行中表示フラグ230は”1″にセットされ,
線241(ビジー・ウェイト・タイマ更新信号)および
線234(期限レジスタ更新信号)が″1”となる6ビ
ジー・ウェイト・タイマ更新信号および期限レジスタ更
新信号は、それぞれ線241,234を通してCW命令
実行ユニット100に送られ、ビジー・ウェイト・タイ
マ150のカウント・アップ処理および期限レジスタ1
26ないし131のカウント・ダウン処理が開始される
,また、線232を通して、CW命令開始信号”1”が
CW命令実行ユニット100に送られる。
第2図(a)にCW命令実行ユニット100の詳細を示
す。
第2図(a)において、5は主記憶制御部、6は主記憶
装置,100はCW命令実行ユニットを表す。
CW命令実行ユニット100において、110は比較器
、111はアドレス・レジスタ、112はデータ・レジ
スタ、113は汎用レジスタ群、114はラッチ、12
0は比較器、121はスーパバイザ用期限レジスタ、1
22は−1回路、123は定数”o” 126はスーパ
バイザ用内部期限レジスタ,130は比較器、131は
ユーザ用期限レジスタ、132は−1回路,133は定
数”0 71、140はAND回路を表す。150はビ
ジー・ウェイト・タイマ、151は+1回路、152は
AND回路を表す。160はクロック信号(CK)を表
し、処理装置の基本夕ロックに同期する。
AND回路140は、線234(期限レジスタ更新信号
)が″′1″の間,クロック信号160を線141に出
力する。線141は,スーパバイザ用内部期限レジスタ
126およびユーザ用期限レジスタ131のセット信号
であり、線234(期限レジスタ更新信号)が1111
1の間、スーパバイザ用内部期限レジスタ126および
ユーザ用期限レジスタ131の内容は更新され続ける。
また、AND回路152は、線241(ビジー・ウェイ
ト・タイマ更新信号)が′1171の間、クロック信号
160を出力する。AND回路152の出力は、ビジー
・ウェイト・タイマ150のセット信号であるので、線
241(ビジー・ウェイト・タイマ更新信号)がjll
tjの間、ビジー・ウェイト・タイマ150の内容は更
新され続ける。
スーパバイザ用期限レジスタ121は、1回のCW命令
の実行時間の上限値、つまりビジー・ウェイト時間の上
限値をスーパバイザが設定するためのレジスタであり、
ビジー・ウェイト時間が長大になりすぎることによるシ
ステムのスループット低下を防止するために用いる。ス
ーパバイザ用期限レジスタ121には、線124を通し
て主記憶装置6の内容を設定することができ、線125
を通してスーパバイザ用期限レジスタ121の内容を主
記憶装置6に読みだすことができる。
スーパバイザ用期限レジスタ121の内容は、線232
を通してCW命令開始信号11111が送られてくると
、線127を通してスーパバイザ用内部期限レジスタ1
26に転送されてセットされる。
スーパバイザ用内部期限レジスタ126の内容は、一1
回路122によって1減算され、線234(期限レジス
タ更新信号)が”1”の場合には、クロック信号160
に同期してスーパバイザ用内部期限レジスタ126に再
び設定される。従って,線234(期限レジスタ更新信
号)が″1”の間、クロック信号160に同期して、ス
ーパバイザ用内部期限レジスタ126の内容は1ずつ減
算される。比較器120は、スーパバイザ用内部期限レ
ジスタ126の内容と定数”0”とを比較する。
比較i120は、スーパバイザ用内部期限レジスタ12
6の内容がO以下となると、線129(期限切れ信号(
スーパバイザ用))に”1′″を出力し、CW命令の実
行時間の上限値に達したことを表示する。
ユーザ用期限レジスタ131は、1回のCW命令の実行
時間の上限値、つまりビジー・ウェイト時間の上限値を
ユーザが設定するための内部レジスタであり、ビジー・
ウェイト時間が長大になりすぎることを防止するために
用いる。ユーザ用期限レジスタ131と汎用レジスタ1
13とは、線134を通して相互に内容を転送すること
ができる。線232を通してCW命令開始信号jllj
jが送られてくると、線504により指定される番号に
1を加えた(R 1 + 1 )番の汎用レジスタ11
3の内容が、線134を通してユーザ用期限レジスタ1
31に転送されてセットされる。
ユーザ用期限レジスタ131の内容は、−1回路132
によって1減算され、線234(期限レジスタ更新信号
)が”1″の場合にはクロック信号160に同期して、
ユーザ用期限レジスタ131に再び設定される。従って
、線234(期限レジスタ更新信号)が”1″の間,ク
ロック信号160に同期して、ユーザ用期限レジスタ1
31の内容は1ずつ減算される。比較器130は、ユー
ザ用期限レジスタ131の内容と定数”O IIとを比
較する。比較器130は、ユーザ用期限レジスタ131
の内容が0以下となると、線139(期限切れ信号(ユ
ーザ用))に11177を出力し、CW命令の実行時間
の上限値に達したことを表示する。
ビジー・ウェイト・タイマ150は、CW命令の実行時
間を計測するためのタイマであり、処理装置間の同期に
要するビジー・ウェイト時間の計測に用いる。スーパバ
イザは、ビジー・ウェイト・タイマ150に、線153
を通して主記憶装置6の内容を設定することができ、線
154を通してビジー・ウェイト・タイマ150の内容
を主記憶装置6に読みだすことができる。
ビジー・ウェイト・タイマ150の内容は、+1回路1
51によって1加算され、線241(ビジー・ウェイト
・タイマ更新信号)が″1”の場合にはクロック信号1
60に同期して、ビジー・ウェイト・タイマ150に再
び設定される。従って、線241(ビジー・ウェイト・
タイマ更新信号)がtp1tpの間,クロック信号16
0に同期して、ビジー・ウェイト・タイマ150の内容
は1ずつ加算される。
CW命令実行制御信号(線222)の制御に従って、C
W命令のR2フィールドで指定される番号の汎用レジス
タ113の内容により指される主記憶位置の内容と、R
1フィールドで指定される番号の汎用レジスタ113の
内容が比較される。
線505で指定される汎用レジスタ113の内容が、ア
ドレス・レジスタ111に読みだされる。
線116を通してアドレス・レジスタ111の内容が主
記憶制御部5に送られ、アドレス・レジスタ111の内
容で指定される主記憶位置の内容が、主記憶装置6より
、線117を通してデータ・レジスタ112に読みださ
れる。また、線504で指定される汎用レジスタ113
の内容が、ラッチ114に読みだされる。比較器110
は、ラッチ114の内容とデータ・レジスタ112の内
容を比較する。間者の内容が一致しない場合には、線1
19を通して同期信号″1”を送り、処理装置間の同期
が取れたことを表示する。さらに、データ・レジスタ1
12の内容を、命令のR1フィールドで指定されるRl
番の汎用レジスタ113に書き込む。
第2図(c)に、CW命令終了判定回路300と割込み
制御ユニット4.00の詳細を示す。
CW命令終了判定回路300において、310はセレク
タ、311は定数″0”、312は定数″2” 320
は条件コード、322は分岐命令実行制御回路,330
はOR回路,340はNOR回路、341および350
はAND回路、351および352はNOT回路を表す
割込み制御ユニット400において、410は割込み発
生回路、420は入出力割込み要因保留レジスタ、42
1は外部割込み要因保留レジスタ、424はNOR回路
を表す。
CW命令終了判定回路300において、線119はセレ
クタ310のセレクト信号となる。セνクタ310は、
線119が”O tzのときには定数”2″を選択し,
線119が”1”のときには定数”O”を選択する。条
件コード320にはOR回路330の出力がjlll+
になったときに、セレクタ310の出力が設定される。
(a)CW命令実行ユニット100から、線119を通
して、同期信号n1nが送られてきた場合について説明
する。線119(同期信号)が″1”となると、セレク
タ310は定数″0”を選択し、セレクタ310の出力
は”O”となる。同時にOR回路330の入力の1つで
ある線119(同期信号)が”1”となるため、OR回
路330の出力も′″1”となり、条件コード320に
はty O nが設定される。また、線331もjjP
jとなり、条件コード設定終了信号11122がCW命
令実行制御ユニット200に送られる。このようにして
、CW命令は条件コードが”O”で、命令の実行を終了
する。
(b)cw命令実行ユニット100から、線119(同
期信号)を通してlIoffが送られ,線139を通し
て期限切れ信号(ユーザ用) 11 1 I1が送られ
てきた場合について説明する。線119は2″O″のま
まであるので、セレクタ310は定数”2″を選択し、
セレクタ310の出力は″2′″となる。一方、OR回
路330の入力の1つである線139(期限切れ信号(
ユーザ用))が77111となるため、OR回路330
の出力も1となり、条件コード320には”2”が設定
される。また、線331も11171となり、条件コー
ド設定終了信号TI111がCW命令実行制御ユニット
200に送られる。このようにして、CW命令は条件コ
ードが”2″′で,命令の実行を終了する。
条件コード320は.l1321を通して、分岐命令の
条件判定を行う分岐命令実行制御回路322に送られる
。したがって、条件コードにより、CW命令以降の処理
を異なるようにプログラミングすることができる。なお
、分岐命令実行制御回路322は公知のものであるので
、ここではその詳細は記さない。プログラミングの一例
として、次のようなものがある。条件コニドが”O″の
場合には、同期処理が正常に終了した場合であるので、
同期処理以降の命令列を実行させる。一方、条件コード
が”2″の場合には、ビジー・ウェイトによる同期処理
が期限に達した場合であるので、スーパバイザ割込みを
発生させ(例えばWAITマクロを実行し)、OSを介
在させた同期処理を行い、処理装置の有効活用を図る。
つまり、OSが他のタスクをディスパッチできるように
して処理装置の有効活用を図る。
(c)CW命令実行ユニット100から、線119(同
期信号)および線139(期限切れ信号(ユーザ用))
には”0”が送られ、線129を通して期限切れ信号(
スーパバイザ用) 71 1 I+が送られてきた場合
について説明する。線119および線139が共にjj
Ql+、つまり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割込
み要求信号”I IIが割込み制御ユニット400に送
られる。割込み制御ユニット400において、゛CW割
込みが?生し、CW命令の実行は終了する。
(d)CW命令実行ユニット100から、線119(同
期信号)、線139(期限切れ信号(ユーザ用))、線
129(期限切れ信号(スーパバイザ用))の全てに″
′0″が送られてきた場合について説明する。
まず、割込み制御ユニット400において、CW命令の
実行中に入出力割込み要求があると、線422を通して
、入出力割込み信号が送られ、入出力割込み要因保留レ
ジスタ420に”1″がセットされる。また、CW命令
の実行中に外部割込み要求があると、線423を通して
、外部割込み信号が送られ、外部割込み要因保留レジス
タ421に1′111がセットされる。
(d1)入出力割込み要因保留レジスタ420および外
部割込み要因保留レジスタ421が共に″O I+の場
合にについて説明する。この時には、NOR回路424
の2つの入力はともに)j■IIであるので、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の出力はIT O I+と
なる。この時には、AND回路341の入力の1つであ
るNOR回路424の出力が”0″であるため、AND
回路341の出力は”0”となり、線342はIION
のままであり、再比較要求信号は送られない。一方、割
込み発生回路410は、保留されている入出力割込みま
たは外部割込みを発生する。こうして、CW命令の実行
を終了する。
割込み制御ユニット400において、割込み発生回路4
10は、線214を通して特殊命令例外要求信号を受け
ると、特殊命令例外の割込みを発生する。線353を通
してCW割込み要求信号を受けると、CW命令の終了形
が取消しとなるCW割込みを発生する。入出力割込み要
因保留レジスタ420を通して信号を受けると、入出力
割込みを発生すると共に、入出力割込み要因保留レジス
タ420を18011にする。外部割込み要因保留レジ
スタ421を通して信号を受けると、外部割込みを発生
すると共に,外部割込み要因保留レジスタ421を”O
 I+にする。割込み発生回路410は、割込みを発生
すると、線411を通して割込み発生信号″1”をCW
命令実行ユニット200に送る。
再び、第2図(b)のCW命令実行制御ユニット200
において、CW命令終了判定回路300および割込み制
御ユニット4QOから信号を受け取ったあとの動作につ
いて説明する。
CW命令終了判定回路300より、線342を通して、
再比較要求信号”1″が送られてきた場合の動作につい
て説明する。線342がn1ppとなると、OR回路2
21の入力の1つが″1”となるので、OR回路221
の出力も”1”となり、制御回路220には71117
が入力される。制御回路220に”1”が人力されると
、先に述べた゛のと同様に、線222を通してCW命令
実行制御信号がCW命令実行ユニット100に送られ、
ここまでに詳細に述べてきた動作が,再び繰り返される
線331を通して条件コード設定終了信号”1″が送ら
れてきた場合、または線411を通して割込み発生信号
111+1が送られてきた場合の動作について説明する
。線331(条件コード設定終了信号)または線411
(割込み発生信号)が゛1′゛となると、OR回路23
1の出力は71111となり、wA233(リセット信
号)カ” 1 ” .!l: ナル。線233が111
11となると、CW命令実行中表示フラグ230は”1
”から”O”にリセットされ、線241(ビジー・ウェ
イト・タイマ更新信号)、線234(期限レジスタ更新
信号)は”0”となる。これらの信号が″′0″となる
と、ビジー・ウェイト・タイマ150のカウント・アッ
プ処理およびスーパバイザ用内部期限レジスタ126な
いしユーザ用期限レジスタ131のカウント・ダウン処
理は停止される。また、線233を通して、CW命令終
了信号771+1がCW命令実行ユニット100に送ら
れる。このあと、CW命令の実行は終了する。
再び、第2図(a)のCW命令実行ユニット100にお
いて、線233を通してCW命令終了信号1111+が
送られてきたときの動作について説明する。
CW命令実行制御ユニット200より線233を通して
CW命令終了信号TI ’1 71を受け取る場合には
、線234(期限レジスタ更新信号)も”0″となって
いるので、ユーザ用期限レジスタ131の更新処理を停
止している。CW命令実行二二ツト100は、CW命令
終了信号jjll+を受け取ると、線504を通して送
られてくる、命令のR1フィールドで指定される番号に
1を加えた値である(Rl+1)番の汎用レジスタ11
3に、線134を通してユーザ用期限レジスタ131の
内容を転記し、CW命令の実行を終了する。CW命令の
実行終了後、プログラムでこの汎用レジスタの内容を読
みだせば、CW命令によりビジー・ウエイトした時間を
知ることができる。
以上、この実施例によれば、ユーザ用期限レジスタおよ
びスーパバイザ用期限レジスタによりビジー・ウェイト
する最大時間を設定することができ、期限が到達した場
合には、ビジー・ウェイトではなくOSを介在させた同
期を取るようにすることができるため、多重ジョブ環境
においても,処理装置が無駄づかいされることを防止す
ることができ、ジョブ・スループットの低下を防止でき
る。また、ビジー・ウェイト・タイマにより、ビジー・
ウェイト時間を計測することができるため、この時間を
CPUの課金時間から引くことにより、ユーザに対して
安定した課金を提供することができる。
4  CW  八にかかわるOSの 理本発明の一実施
例であるCW命今において、新たに追加しなければなら
ないオペレーテイング.システム(OS)の処理である
、CW割込みにかかわる処理、子タスクの生成/消去処
理にかかわる処理、およびビジー・ウェイト・タイマに
ががわる処理の一実施例を、第8図と第9図(a)ない
し(e)により説明する。なお,従来からのOSの処理
については説明を省略する。
第8図において、1、2、3、4は処理装置Oないし3
、5は主記憶制御部,6は主記憶装置を示す。
第8図において、1610はオペレーテイング・システ
ム(OS)が主記憶上に格納されていることを示す。1
612はディスパッチング・キューを示し、キューの各
要素にはディスパッチング可能なタスクのTCBのアド
レスが格納される。1620.1621はジョブ制御ブ
ロックを示し、ジョブごとの制御情報が格納される。ジ
ョブ制御ブロックはジョブ1個に対して1個作成される
1630、1640、1650はタスク制御ブロック(
TCBと略す)を示し、タスクのプログラム領域の先頭
アドレス,タスクの退避領域など,タスクごとの制御情
報が格納される。1630は親タスクのTCB、164
0は子タスク0のTCB、1650は子タスク1のTC
Bを表す。TCBはタスク1個に対して1個作成される
。1個のジミブを複数個のタスクに分けてマルチタスキ
ングを行なう場合には、図に示すように1個のジョブ制
御ブロック1620に対して複数個のTCB1630、
1640、1650が作成される。1631、1641
、1651は親タスク、子タスクO、子タスク1のプロ
グラムの領域を示し、1632、1642、l652は
各タスクの固有データ(ローカル・データ)領域を示し
、1660はタスク間の共有データ領域を示す。タスク
間の同期に用いるデータは、タスク間の共有データ領域
に置かれる。1670はタスクの退避領域を示す。これ
らは、従来のOSの処理となんら変わらない。
本発明の一実施例であるCW命令において,新たに追加
しなければならないオペレーティング・システム(OS
)の処理の中で特徴的なものは次のとおりである。16
71はビジー・ウェイト・タイマ150を退避する領域
を表し、CW命令によりビジー・ウェイトした時間の合
計が格納される。1672はCW命令実行許可フラグ2
10を退避する領域、1674はスーパバイザ用期限レ
ジスタ121を退避する領域、l675はCW割込みが
発生したときに割込みが検出されたCW命令のRl,R
2フィールドで指定されるRl番とR2番の汎用レジス
タ113の内容を退避する領域を示す。1633、16
43、1653はCW割込みフラグを表し,CW割込み
発生中のときには”1”,そうでないときには”0″が
格納される。
第9図(a)のフローチャートに従って、CW命令にか
かわるOSの処理の一実施例を説明する。
ユーザがJCLによりジョブを依頼すると(1012)
、OSによりジョブの実行を開始するための準備処理(
1020)が行なわれる。OSは、まず、ジョブに対応
するジョブ制御ブロック1620とジョブに対応する親
タスクのタスク制御ブロック(TCB)1630を作成
する(1021)。次に、TCBの退避領域内にあるス
ーパバイザ用期限レジスタの領域1674に、期限値を
格納する。OSは、システムの運用状況に応じて期限値
を選ぶ(1 0 2 2)。また、TCBの退避領域内
にあるビジー・ウェイト・タイマの領域1671に、ビ
ジー・ウェイトした時間の初期値”0″を格納し(10
23).TCBの退避領域内にあるCW命令実行許可フ
ラグの領域1672に、マルチ・タスキングを行っても
よいジョブの場合には″1”を格納する(1024)。
最後に、TCBのアドレスをディスパッチング・キュー
1612に登録し、タスクはディスパッチングされるの
を待つ(1 0 2 5)。
タスクを処理装置Oに起動(ディスバッチング)すると
きには、TCBの退避領域(1670)内にあるビジー
・ウェイト・タイマの領域1671、CW命令実行許可
フラグの領域1672、スーパバイザ用期限レジスタの
領域1674の内容を、それぞれ線153,215、1
24を通して、処理装置Oの中にある、ビジー・ウェイ
ト・タイマ150.CW命令実行許可フラグ210、ス
ーパバイザ用期限レジスタ121にロードする(103
. 0 )。
1o40にタスクがディスパッチング(起動)された後
のCW命令にかかわる処理を示す。CW割込みが発生し
たときの割込み処理を1050に示し、CW割込みが発
生してディスパッチング・キュー1612に登録されて
いたタスクが、再起動される時の処理を1060に示し
,CW命令を用いてマルチ・タスキングを行うこのタス
クから他のタスクへタスク・スイッチする場合の処理を
1070に示し、他のタスクからCW命令を用いてマル
チ・タスキングを行うこのタスクへタスク・スイッチす
る場合の処理を1080に示し、ATTACHマクロを
用いてTCB (子タスク)を生成する場合の処理を1
090に示し、DETACHマクロを用いてTCB (
子タスク)を消去する場合の処理を1100に示す。
第9図(e)を用いて、ATTACHマクロを用いてT
CB (子タスク)を生成する場合の処理1090の詳
細を説明する。
まず、親タスクは、ATTACHマクロを実行しOSに
対して子タスクの生成を要求する(1092)。今、子
タスク1の生成を要求した場合について、第8図も用い
て説明する。OSは、子タスク1の制御情報を格納する
子タスク1用のTCB(タスク制御ブロック)1650
を作成する(1094)。さらに、子タスク1のTCB
 1 650の退避領域1670内にあるCW命令実行
許可フラグ1672の領域およびスーパバイザ用期限レ
ジスタの領域1674には、同一のジョブであるので,
それぞれ親タスクのTCB1630の退避領域内にある
CW命令実行許可フラグの領域の内容およびスーパバイ
ザ用期限レジスタの領域の内容を転記する(1096)
。子タスク1のTCB1650の退避領域1670内に
あるビジー・ウェイト・タイマの領域l671には、子
タスク1はまだ実行されていないので初期値″″0″を
格納する(1098).このように、子タスク1のTC
B1650の退避領域1670を初期化した後、TCB
 l 6 5 0のアドレスを,OSのデイスパッチン
グ・キューl612に登録する。子タスク1は、ディス
パッチングされるのを待つ。
第9図(d)を用いて、OSが他のタスクにタスク・ス
イッチする場合の処理1070の詳細を説明する。
OSは、処理装置内のCW命令実行許可フラグ210、
スーパバイザ用期限レジスタ121の内容を、それぞれ
線216,125を通して、主記憶装置6上のTCBの
退避領域内にあるCW命令実行許可フラグの領域167
2、スーパバイザ用期限レジスタの領域1674に退避
すると共に,処理装置内のビジー・ウェイト・タイマ1
50の内容を線154を通して,主記憶装置6上にある
TCBの退避領域内にあるビジー・ウェイト・タイマの
領域1671に退避して、ここまでにビジー・ウエイト
した時間の合計を退避する(1072)。なお、ユーザ
用の期限レジスタ131の内容はCW命令終了時にCW
命令で指定される汎用レジスタ113に転記されるため
、従来からのOSの処理である汎用レジスタの退避処理
により,ユーザ用の期限レジスタ131の内容は主記憶
装置6に退避される。この後、他のタスクをデイスパッ
チする(1074)。
第9図(d)を用いて、OSが他のタスクからタスク・
スイッチする場合の処理1080の詳細を説明する。
OSは,他のタスクの実行環境を退避したのち、CW命
令を用いてマルチ・タスキングを行うこのタスクをディ
スパッチングするために必要な処理を行う。TCBの退
避領域内にあるCW命令実行許可フラグの領域1672
、スーパバイザ用期限レジスタの領域1674の内容を
、それぞれ線215,124を通して、処理装置内のC
W命令実行許可フラグ210、スーパバイザ用期限レジ
スタ121にロードすると共に、TCHの退避領域内に
あるビジー・ウェイト・タイマの領域1671の内容、
つまり、ここまでにビジー・ウエイトした時間の合計を
、線153を通して処理装置内のビジー・ウェイト・タ
イマ150にロードし、タスクの実行開始時からのビジ
ー・ウェイト時間の合計が求められるようにする(10
82)。なお、ユーザ用の期限レジスタ131には、c
w命令の実行開始時にCW命令で指定される汎用レジス
タ113から転記されるため、従来がらのosの処理で
ある汎用レジスタの回復処理を行えば、ユーザ用の期限
レジスタ131には必要な値がロードされる。この後、
このタスクをディスバッチする(1084)。
第9図(b)を用いて、CW割込みが発生した場合の割
込み処理1050の詳細を説明する。
今、処理装置0で子タスク1が実行されていて、処理装
置OにおいてCW割込みが発生した場合について説明す
る。CW割込みが発生すると(1052)、割込み動作
の過程で、OSの割込み処理ルーチンに制御が渡る。O
Sは、処理装置0の中にあるビジー・ウェイト・タイマ
150,CW命令実行許可フラグ210、スーパバイザ
用期限レジスタ121の内容を,それぞれ線154,2
16,125を通して.TCBの退避領域(1670)
内にあるビジー・ウェイト・タイマの領域1671、C
W命令実行許可フラグの領域1672、スーパバイザ用
期限レジスタの領域1674に格納する(1053).
さらに、CW割込みが検出されたCW命令のRl,R2
フィールドで指定される汎用レジスタ113の内容を、
TCBの退避領域(1670)内にあるCW命令のRl
,R2フィールドで指定される汎用レジスタの内容の領
域1 6 7 5 ニ格納する(1054).また。T
CB内のCW割込みフラグ1653をpp1prにし(
1055).CW割込みが検出されたタスクのTCBの
アドレスをディスパッチング・キュー1612の一番後
につなぐ(1056)。ディスパッチング・キューの一
番後につなぐのは、タスク間の同期を待つ間はディスパ
ッチングの優先順位を落すためである。最後に、ディス
パッチング・キュー1612の先頭から他のタスクを選
択し、起動(ディスパッチング)する(l O 5 7
)。
第9図(C)を用いて、CW割込みが発生してディスパ
ッチング・キュー1612に登録されているタスクが再
起動されるときの処理1060の詳細を説明する。
今、処理装置0に子タスク1が起動される場合について
説明する。次に起動されるタスクとしてディスパッチン
グ・キュー1612からTCBのCW割込みフラグ16
53が#jlFjのタスク、つまり、CW割込みが発生
してディスパッチング・キュー1612に登録されたタ
スクが選択されると(1062)、まず、TCB(7)
退避領域(1670)内にあるCW命令のRl,R2フ
ィールドで指定される汎用レジスタの内容の領域167
5を読みだす。ここで、R1の内容をD1、R2の内容
をAと表す(1063)。アドレスAの内容を主記憶装
@6から読みだす。読みだしたデータをD2と表す(1
064)。データD1とデータD2の内容を比較する(
1065)。cw割込みは命令の終了形が取消しなので
,このタスクをディスパッチングすると再びcw割込み
を発生したCW命令から再開される。データD1とデー
タD2が異なれば、このタスクをディスバッチングして
も再度期限切れによりCw割込みが発生するので,この
タスクを再度ディスバッチング・キュー1612の最後
につなぎ(1068)、他のタスクをディスパッチング
・キュー1612の先頭から取りだし、ディスパッチン
グする(1069)。
データD1とデータD2が等しければ、まず,TCB内
(7)CW割込みフラグ1653を”O”4:Lて(1
066) 、TCB(7)退避領域(1 6 7 0)
内にあるビジー・ウェイト・タイマの領域1671、C
W命令実行許可フラグの領域1672、スーパバイザ用
期限レジスタの領域1674の内容を読みだし、それぞ
れ処理装置0の中にあるビジー・ウェイト・タイマ15
0、cw命令実行許可フラグ210、スーパバイザ用期
限レジスタ121にロードする(1067).こうして
、このタスクは再起動される。
第9図(e)を用いて、DETACHマクロを用いてT
CB (子タスク)を消去する場合の処理1100の詳
細を説明する。
まず、親タスクは、DETACHマクロを実行しOSに
対して子タスクの消去を要求する(1102)。今、子
タスク1の消去を要求した場合について、第8図も用い
て説明する。OSは、ジョブ全体のビジー・ウェイト時
間をユーザやシステム管理者に報告するためには、子タ
スク1がCW命令を用いてビジー・ウェイトした時間を
親タスクに引き継ぐ必要がある。OSは,子タスク1の
TCB1650の退避領域1670の中のビジー・ウェ
イト・タイマの領域1671に格納されている子タスク
1のビジー・ウェイト時間の合計を、親タスクのTCB
 1 6 3 0の退避領域の中のビジー・ウェイト・
タイマの領域の内容に加える(1104)。この後,子
タスク1のTCB 1 6 5 0を消去する(110
6)。
再び、第9図(a)に戻って、ジョブ終了時には、本ジ
ョブの終了時に存在するすべてのタスクのTCBの退避
領域内にあるビジー・ウェイト・タイマの領域の内容を
合計し、ビジー・ウェイト時間の合計を課金情報として
出力する(1 1 1 0)。なお、OSは各タスクが
終了し、OSに制御が戻ったときに、処理装置内にある
ビジー・ウェイト・タイマの内容を、TCBの退避領域
内にあるビジー・ウェイト・タイマの領域に格納する(
111o)。
以上のようなOSの処理を従来のOSに追加することに
よって、CW命令を用いてタスク間で同期をとったり、
ビジー・ウェイト時間を課金情報の1つとして求めるこ
とができるようになる。
なお、本実施例では、処理(1065)においてデータ
D1とデータD2の内容を比較し、データD1とデータ
D2とが異なれば再度デイスパツチング・キュー16l
2の最後につなぎ、他のタスクをディスパッチするよう
にしたが、この処理を省略することができる。なぜなら
、CW割込みが発生したときに、このタスクのTCBを
デイスパッチング・キューの一番後につなぐことにより
、このタスクのデイスパツチングの優先順位を低くして
いるため,このタスクにたいして同期信号を送るタスク
が,既にデイスパツチングされ、同期信号が既に送られ
てきている確率が高いからである。
5 本 日の他の 先の実施例によれば、ビジー・ウェイト・タイマの値の
更新処理は、CW命令の実行中に行われたが、第4図に
示すように、ビジー・ウェイト・タイマのカウント・ア
ップ処理の開始を指示する命令と、停止を指示する命令
を設けることにより、ビジー・ウェイト・タイマの更新
処理を制御することができる。つまり、ビジー・ウェイ
ト・タイマのカウント・アップ処理の開始を指示する命
令を、CW命令の直前で実行し、ビジー・ウェイトによ
る同期処理が終了したあとで、ビジー・ウェイト・タイ
マのカウント・アップ処理の停止を指示する命令を実行
することにより,ビジー・ウエイト時間を計測すること
ができる。ただし、この場合には、スーパバイザではな
くユーザによりビジー・ウェイト・タイマの制御を行う
ため、ユーザがビジー・ウェイト時間をプログラムのチ
ューニング情報等として利用することはできても、シス
テム管理者がビジー・ウェイト時間を課金情報として利
用することはできない。
第4図において、240はBW(ビジー・ウェイト)タ
イマ更新フラグ、501は命令のオペコード・フィール
ドを表す。他は、第2図(b)に示したものと同じであ
る。
命令解読器500は、命令がビジー・ウェイト・タイマ
のカウント・アンプ処理を開始させるBWタイマ起動命
令を検出すると、線507を通して、BWタイマ起動命
令検出信号”1″をBWタイマ更新フラグ240に送る
.BWタイマ更新フラグ240は、BWタイマ起動命令
検出信号Fllljを受けると、″1”にセットされる
。BWタイマ更新フラグ240が”1″になると,線2
41を通して、ビジー・ウェイト・タイマ更新信号″1
”が送られ、ビジー・ウェイト・タイマのカウント・ア
ップ処理が行われる。
命令解読器500は、命令がビジー・ウェイト・タイマ
のカウント・アップ処理を停止させるBWタイマ停止命
令を検出すると、線508を通して、BWタイマ停止命
令検出信号11197をBWタイマ更新フラグ240に
送る。BWタイマ更新フラグ240は、BWタイマ停止
命令検出信号を受けるとlj O”にリセットされる。
BWタイマ更新フラグ240が”0″にリセットされる
と、線241(ビジー・ウェイト・タイマ更新信号)が
”O jlとなり、ビジー・ウェイト・タイマのカウン
ト・アップ処理が停止する。
また,OSは、入出力割込みや外部割込みによりCW命
令を実行中のタスクを中断する場合には、ビジー・ウェ
イト・タイマの更新処理を停止させる必要がある。この
場合には、主記憶装置6上のタスク制御ブロック(TC
B)の中に、割り込まれた命令がCW命令であるかどう
かを表示するCWフラグを設ける。OSは割り込まれた
命令がCW命令であるかどうかを調べ、CW命令の場合
には、ビジー・ウェイト・タイマの更新処理を停止する
BWタイマ停止命令を実行し、CWフラグをセットする
。このタスクを再びデイスパッチングする場合には、T
CBの中の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を通して期限レジスタ更
新信号1j117が送られてくる間,ユーザ用期限レジ
スタ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命令開始信号tj1jjが送ら
れてくると、ユーザ用期限レジスタ131の内容が、線
137を通して内部レジスタ136に転記される。その
後は上記実施例で述べたように、線234(期限レジス
タ更新信号)が”1″の間、内部レジスタ136の内容
はクロック160に同期して1ずつ減算される。内部レ
ジスタ136の内容は定数”O”と比較WI130によ
り比較される。内部レジスタ136の内容がO以下とな
ると、線139を通して期限切れ信号(ユーザ用)が送
られる。こうして、内部レジスダ136を用いて期限を
監視することができる。一方、ユーザ用期限レジスタ1
31本体の内容は減算されないので、一度、値を設定し
ておけばCW命令の度に値を設定しなおす必要はない。
先の実施例によれば、線139(期限切れ信号(ユーザ
用))が″′1”となった場合には、条件コードを″2
”に設定してCW命令の実行を終了し、線l29(期限
切れ信号(スーパバイザ用))がjllF+となった場
合には、CW割込みを発生させてCW命令の実行を終了
した。
しかし、第6図(a)に示すように、線139(期限切
れ信号(ユーザ用))が)jljlになった場合も、線
129(期限切れ信号(スーパバイザ用))が”1”に
なった場合も、ともに条件コードを”2″に設定してC
W命令の実行を終了してもよい。また、第6図(b)に
示すように、線139(期限切れ信号(ユーザ用))が
21173になった場合も、線129(期限切れ信号(
スーパバイザ用))が”l IIになった場合も、とも
にCW割込みを発生させてCW命令の実行を終了させて
もよい。
第6図(a)において、330は3人力のOR回路を示
す。AND回路350.NOT回路351,352がな
いことを除けば、残りは第2図(c’)と同じである。
第6図(a)において、線119(同期信号)がIT 
O Nであり、線129または139(期限切れ信号)
がl111jとなった場合には、lIA119が110
77であるのでセレクタ310は定数”2〃を選択し、
″2”が条件コード320に送られる。線129または
139(期限切れ信号)が”1”となると、OR回路3
30の入力のうち1つが”1”となるため.OR回路3
30の出力も”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(同期信号)
がPj O IIであり、線129またはl39(期限
切れ信号)が#j1+1となった場合には、線119が
”O I1であるのでNOT回路352(7)入力は1
1 Q I+ トなり、NOT回路352の出力は″1
”となる。また、線129または139が″1″である
ので、OR回路355の出力は1となる。従って.AN
D回路350の2つの入力は共に′1″となり、その結
果、AND回路350の出力である線353(CW割込
み要求信号)は”1″となり、割込み発生回路410は
CW割込みを発生する。こうして、いずれの期限切れ信
号が“1″となっても、CW割込みを発生してCW命令
の実行は終了する。
先の実施例によれば、スーパバイザ用期限レジスタの値
がtt O”以下となった場合に、期限切れ信号(スー
パバイザ用) II l jlがCW命令終了判定回路
300に送られた。さらに、CW命令終了判定回路から
、CW割込み要求信号t#1j+が割込み発生回路40
0に送られ、CWIFl込みが発生して、CW命令の実
行が終了した。
しかし、第7図に示すように、期限によりCW割込みを
発生させるのではなく、常にCW割込みを発生させるか
、常にCW割込みを発生させないかという制御を行って
もよい。つまり、CW割込みを契機としてOSを介した
同期処理を行う場合と、処理装置を独占してCW命令を
継続して実行する場合(ビジー・ウェイトする場合)を
、システムを運用する環境によって、あらかじめ一意に
分けるようにしてもよい。
第7図において、121はCWマスク・レジスタを表す
。第2図における、比較器120、スーパバイザ用期限
レジスタ121、−1回路122、スーパバイザ用内部
期限レジスタ126がないことを除けば、他は第2図(
a)と同じである6CWマスク・レジスタ121は、1
ビットのレジスタであり、CW割込みを発生させるが発
生させないかを制御する。CWマスク・レジスタ121
には、線124を通して主記憶装置6の内容をロードす
ることができ、線125を通してcwマスク・レジスタ
の内容を主記憶装置6ヘストアすることができる。
CWマスク・レジスタ121の内容がPI O”の場合
には、線129(期限切れ信号(スーパバイザ用))を
通してCW命令終了判定回路300へ常に”0″が送ら
れる。従って、CW命令終了判定回路300から割込み
制御ユニット400に対してCW割込み要求信号が出る
ことはなく、CW割込みが発生することはない。つまり
、ビジー・ウェイトにより同期処理を行うこととなる。
一方、CWマスク・レジスタ121の内容が21”の場
合には、線129を通して期限切れ信号(スーパバイザ
用)n1”が常にCW命令終了判定回路300に送られ
る。したがって,CW命令を実行すると、常にCW割込
み要求信号が割込み制御ユニット400に対して送られ
ることとなり、線119を通して同期信号が送られてこ
ないかぎりは、CW割込みを常に発生する。つまり、O
Sを介した同期処理を行うこととなる。
先の実施例では,スーパバイザ用期限レジスタ121と
ユーザ用期限レジスタ131の2つの期限レジスタを備
えていたが、いずれか片方の期限レジスタのみを備える
ようにしても良い。ユーザ用期限レジスタ131のみを
備える場合には、線129には定数″0”を接続し、期
限切れ信号(スーパバイザ用)が送られないようにすれ
ば良い。スーパバイザ用期限レジスタ121のみを備え
る場合には、線139には定数″0”を接続し,期限切
れ信号(ユーザ用)が送られないようにすれば良い。
先の実施例によれば、クロック信号(CK)160は、
処理装置の基本クロック、つまりマシン・サイクルに同
期していたが、例えば100ナノ秒ごとというような絶
対時間に同期させるようにしても良い。また、1マシン
・サイクルごとではなく、100マシン・サイクルごと
というように精度を粗くしても良い。
先の実施例によれば、CW命令のR1フィールドで指定
される番号の汎用レジスタ113の内容(第1オペラン
ドのデータ)が,命令のR2フィールドで指定される汎
用レジスタによって示される主記憶アドレスのデータ(
第2オペランドのデータ)と等しくなくなったときに、
第2図(.)において,比較器110が線119を通し
て同期信号jlljlを送った。つまり、CW命令の2
つのオペランドのデータが等しくなくなることを同期の
条件として比較処理を継続し、ビジー・ウエイトした。
しかし、比較器110が線119を通して同期信号″1
′″を送り出す条件が、他の場合でも、先の実施例が容
易に適用できる。
比較器110が、ラッチ114の内容とデータ・レジス
タ112の内容が等しいときに同期信号″″1”を送り
出すようにすれば、第1オペランドのデータと第2オペ
ランドのデータが等しくなることが同期の条件となる。
比較器110が、ラッチ114の内容がデータ・レジス
タ112の内容より大きいときに同期信号”1″を送り
出すようにすれば、第1オペランドのデータが第2オペ
ランドのデータより大きくなることが同期の条件となる
比較器110が、ラッチ114の内容がデータ・レジス
タ112の内容より等しいかまたは大きいときに同期信
号21′″を送り出すようにすれば、第1オペランドの
データが第2オペランドのデータより等しいかまたは大
きくなることが同期の条件となる. 比較器110が、ラッチ114の内容がデータ・レジス
タ112の内容より小さいときに同期信号″1′″を送
り出すようにすれば、第1オペランドのデータが第2オ
ペランドのデータより小さくなることが同期の条件とな
る。
比較器110が、ラッチ114の内容がデータ・レジス
タ112の内容より等しいかまたは小さいときに同期信
号”1”を送り出すようにすれば,第1オペランドのデ
ータが第2オペランドのデータより等しいか小さくなる
ことが同期の条件となる。
先の実施例によれば、CW命令のR1フィールドで指定
されるRl番の汎用レジスタ113の内容(第1オペラ
ンドのデータ)が,命令のR2フィールドで指定される
R2番の汎用レジスタによって示される主記憶アドレス
のデータ(第2オペランドのデータ)と等しくなくなっ
たとき、という1つの事象が成立するまで比較処理を継
続した。
しかし、先の実施例を用いれば、第10図(a)(b)
に示すように、CW命令のR1フィールドで指定される
Rl番の汎用レジスタ113の内容が,命令のR2フィ
ールドで指定されるR2番の汎用レジスタによって示さ
れる主記憶アドレスのデータと等しくなくなるか,また
は(R 1 +1 )番の汎用レジスタ113の内容が
、(R2+1)番の汎用レジスタによって示される主記
憶アドレスのデータと等しくなくなったとき、という2
つの事象のいずれかが成立するまで比較処理を継続する
ようにすることも容易に実現できる。この場合には、(
R1+2)番の汎用レジスタ113にCW命令の最大実
行時間を設定するようにすれば良い。
第10図(a)にCW命令実行ユニット100の詳細を
示し、第10図(b)にCW命令終了判定回路300、
割込み制御ユニット400の詳細を示す。
第10図(a)において、100はCW命令実行ユニッ
トを表す。CW命令実行ユニット100において、11
0aないし110bは比較器、111aないし11lb
はアドレス・レジスタ、112aないし112bはデー
タ・レジスタ、113は汎用レジスタ群、114aない
し114bはラッチを表す。他は、第2図(a)に示し
たものと同じである。
スーパバイザ用期限レジスタ121、ユーザ用期限レジ
スタ131,ビジー・ウェイト・タイマ150にかかわ
る動作は、第2図(.)により示した先の実施例と全く
同じである。以下では、比較器110aないし110b
にかかわる動作について詳細に説明する。
CW命令実行制御信号(線222)の制御に従って,C
W命令のR2フィールドで指定されるR2番の汎用レジ
スタ113の内容により指される主記憶位置の内容と、
R1フィールドで指定されるRl番の汎用レジスタ11
3の内容が比較され、CW命令のR2フィールドで指定
される(R2+1)番の汎用レジスタ113の内容によ
り指される主記憶位置の内容と、R1フィールドで指定
される(R1+1)番の汎用レジスタ113の内容が比
較される。
線505で指定される、R2番の汎用レジスタ113の
内容がアドレス・レジスタ111aに読みだされ、(R
2+1)番の汎用レジスタ113の内容がアドレス・レ
ジスタ11lbに読みだされる。線116aを通してア
ドレス・レジスタ111aの内容が主記憶制御部5に送
られ,アドレス・レジスタ111aの内容で指定される
主記憶位置の内容が、主記憶装置6より、線117aを
通してデータ・レジスタ112aに読みだされる。
また、線116bを通してアドレス・レジスタ11lb
の内容が主記憶制御部5に送られ、アドレス・レジスタ
11lbの内容で指定される主記憶位置の内容が、主記
憶装置6より、線117bを通してデータ・レジスタ1
12bに読みだされる。
また、線504で指定される、Rl番の汎用レジスタ1
13の内容が、ラッチ114aに読みだされ、(R1+
1)番の汎用レジスタ113の内容が,ラッチ114b
に読みだされる。
比較器110aは、ラソチ114aの内容とデ−タ・レ
ジスタ112aの内容を比較する。両者の内容が一致し
ない場合には、線119aを通して同期信号aII I
 Itを送り、処理装置間の同期が取れたことを表示す
る。さらに、データ・レジスタ112aの内容を、命令
のR1フィールドで指定されるR1番の汎用レジスタ1
13に書き込む。
同様に、比較器110bは、ラッチ114bの内容とデ
ータ・レジスタ112bの内容を比較する。
両者の内容が一致しない場合には、線119bを通して
同期信号bn1nを送り、処理装置間の同期が取れたこ
とを表示する。さらに、データ・レジスタ112bの内
容を、命令のR1フィールドで指定される(R1+1)
番の汎用レジスタ113に書き込む。
第10図(b)に、CW命令終了判定回路300と割込
み制御ユニット400の詳細を示す。
CW命令終了判定回路300において、310はセレク
タ、311は定数ゝ′O”+’ 3 1 2は定数”2
″、313は定数Pjlll、320は条件コード、3
22は分岐命令実行制御回路,330はOR回路、34
0はNOR回路、341および350はAND回路、3
51、352、354はNOT回路を表す。割込み制御
ユニット400は、第2図(c)において示したものと
同じである。
CW命令終了判定回路300において、線119aない
し線119bはセレクタ310のセレクト信号となる。
セレクタ310は,線119aと線119bがともに”
O”のときには定数”2”を選択し、線119aが”1
″で、線119bが”0”または”1”のときには定数
“O”を選択し、線119aが”0”で、線119bが
”1”のときには定数$1117を選択する。条件コー
ド320にはOR回路330の出力が”1”になったと
きに、セレクタ310の出力が設定される。
(a)CW命令実行ユニット100から、線119aを
通して同期信号a”1″が送られてきた場合について説
明する。線119a (同期信号a)がn 1”となる
と、セレクタ310は定数”Onを選択し,セレクタ3
10の出力は”0”となる。
同時にOR回路330の入力の1つ−である線119a
(同期信号a)がjlljlとなるため、OR回路33
0の出力も”1″となり、条件コード320には1′O
”が設定される.また、線331も″1″となり、条件
コード設定終了信号”1”がCW命令実行制御ユニット
200に送られる。このようにして、CW命令は条件コ
ードがno”で、命令の実行を終了する。
(b)cw命令実行ユニット100から,線119a(
同期信号a)を通して#jOl+が送られ,線119b
を通して同期信号b”1″が送られてきた場合について
説明する。線119a (同期信号a)がllQjl,
線119b (同期信号b)が)jljlとなると、セ
レクタ310は定数#l17lを選択し、セレクタ31
0の出力は″1″′となる。同時にOR回路330の入
力の1つである線119b (同期信号b)が”1”と
なるため、OR回路330の出力も11171となり、
条件コード320には′″1”が設定される。また、線
331も11111となり、条件コード設定終了信号3
1171がCW命令実行制御ユニット200に送られる
。このようにして、CW命令は条件コードが”1”で,
命令の実行を終了する。
(c)CW命令実行ユニット100から、線119a(
同期信号a)を通してjjo#lが送られ,線119b
を通しても同期信号b”0″が送られ、線139を通し
て期限切れ信号(ユーザ用)”1”が送られてきた場合
について説明する.線119aおよび線119bは″0
”のままであるので、セレクタ310は定数″2”を選
択し、セレクタ310の出力はn2″となる。一方,O
R回路330の入力の1つである線139(期限切れ信
号(ユーザ用))が#l1#jとなるため.OR回路3
30の出力も”1″となり、条件コード320には”2
”が暑定される。また、線331もFjljlとなり、
条件コード設定終了信号”1”がCW命令実行制御ユニ
ット200に送られる。このようにして,CW命令は条
件コードがPT21jで、命令の実行を終了する。
条件コード320は、線321を通して、分岐命令の条
件判定を行う分岐命令実行制御回路32?に送られる。
したがって、条件コードにより、CW命令以降の処理を
異なるようにプログラミングすることができる。なお、
分岐命令実行制御回路322は公知のものであるので、
ここではその詳細は省略する。プログラミングの一例と
して、次のようなものがある。条件コードが”■ I+
の場合には、Rl番とR2番の汎用レジスタを使用する
同期処理が正常に終了した場合であるので、この場合に
行う同期処理以降の命令列を実行させる。
条件コードが″1”の場合には、(R1+1)番と(R
2+1)番の汎用レジスタを使用する同期処理が正常に
終了した場合であるので、この場合に行う同期処理以降
の命令列を実行させる。一方、条件コードが″2″′の
場合には、ビジー・ウェイトによる同期処理が期限に達
した場合であるので、スーパバイザ割込みを発生させ(
例えばWA I Tマクロを実行し)、OSを介在させ
た同期処理を行い、処理装置の有効活用を図る。つまり
、OSが他のタスクをディスパッチできるようにして処
理装置の有効活用を図る。
(d)CW命令実行ユニット100から、線119a(
同期信号a)、線119b (同期信号b)、および線
139(期限切れ信号(ユーザ用))にはtj O”が
送られ、線129を通して期限切れ信号(スーパバイザ
用)”1”が送られてきた場合について説明する。1!
119a.線119b、および線139が共に″0”、
つまりOR回路330の3つの入力が全て”0″のため
、OR回路330の出力も″0”のままであり、線33
1(条件コード設定終了信号)も”0″である。一方、
線119aがtp O ppのためNOT回路352の
出力は”1”となり,線119bが11097のためN
oT回路354の出力は”1″となり、線139も”O
”+7)ためNOT回路351の出力も1117+とな
る。したがって、AND回路350の4つの入力である
,NOT回路351の出力、NOT回路352の出力,
NOT回路354の出力、線l29(期限切れ信号(ス
ーパバイザ用))が全て″1”となるので.AND回路
350の出力はHluとなり、線353を通して、CW
割込み要求信号″1″が割込み制御ユニット400に送
られる。割込み制御ユニット400において、CW割込
みが発生し,CW命令の実行は終了する。
(e)CW命令実行ユニット100から、線119a(
同期信号a)、線119b (同期信号b)、線139
(期限切れ信号(ユーザ用))、線129(期限切れ信
号(スーパバイザ用))の全てに″() fitが送ら
れてきた場合について説明する。
(e1)入出力割込み要因保留レジスタ420および外
部割込み要因保留レジスタ421が共に″0”の場合に
について説明する。この時には,NOR回路424の2
つの入力はともに”0″であるので.NOR回路424
の出力はjjlFjとなる。
一方、CW命令終了判定回路300において、NOR@
路340の4つの入力であるlill9a.119b、
129、139が全て”0”となるため、N O. R
回路340の出力は”1″となる。AND回路341の
入力であるNOR回路340の出力、およびNOR回路
424の出力が共に′”l I1のため、AND回路3
41の出力はpp ’1 nとなり、線342を通して
、再比較要求信号111#がCW命令実行制御ユニット
200に送られる。CW命令実行制御ユニット200は
再び、上で述べた比較処理を繰り返すようにCW命令実
行ユニット10oを制御する。つまり,ビジー・ウェイ
トする。
(e2)入出力割込み要因保留レジスタ420または外
部割込み要因保留レジスタ421のいずれかが”1”の
場合には、NOR@路424の出力はjlojjとなる
。この時には、AND回路341の入力の1つであるN
OR回路424の出力が”0”であるため、AND回路
341の出力は″0”となり、線342は71 0 T
tのままであり、再比較要求信号は送られない。一方、
割込み発生回路410は、保留されている入出力割込み
または外部割込みを発生する。こうして、CW命令の実
行を終了する。
これ以降の動作に関しては、第2図(a)ないし(c)
を用いて説明したものと全く同じである。
このように、先の実施例を用いれば,2つの事象のいず
れかが成立するまで比較処理を継続するようにすること
が実現できる。
〔発明の効果〕
以上、説明したように、本発明によれば、ビジー・ウェ
イトする最大時間を設定することができ、またオペレー
テイング・システムを介在させた同期をとることができ
るので,多重ジョブ環境下においても、処理装置の無駄
使いが防止され、ジョブ・スループットの低下を防止で
きる。また、ビジー・ウェイトに要する時間をジョブの
課金に反映させることができる。
【図面の簡単な説明】
第1図は、本発明の一実施例である情報処理装置の概略
図、 第2図(a)〜第2図(c)は、本発明の一実施例であ
る情報処理装置の詳細図, 第3図(a)〜第3図(b)は、本発明の一実施例であ
るコンベア・アンド・ウェイト(CW)命令の命令形式
と処理手順、 第4図は、本発明の他の実施例であるCW命令実行制御
ユニットの詳細図、 第5図(.)〜第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・・・ユーザ用期限レジスタ、15
0・・・ビジー・ウェイト・タイマ、200・・・cw
命令実行制御ユニット、210・・・CW命令実行許可
フラグ、300・・・CW命令終了判定回路、320・
・・条件コード5400・・・割込み制御ユニット。

Claims (1)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106104478A (zh) * 2014-03-14 2016-11-09 国际商业机器公司 条件事务和指令
JP2017511531A (ja) * 2014-03-14 2017-04-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 条件付き命令終了(conditional instruction end)操作
JP2017511931A (ja) * 2014-03-14 2017-04-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 比較及び遅延(compare and delay)命令
JP2018503162A (ja) * 2014-12-17 2018-02-01 インテル・コーポレーション スピンループジャンプを実行するための装置および方法

Families Citing this family (23)

* 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
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
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
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
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
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
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
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
US9342350B2 (en) * 2006-08-24 2016-05-17 Renesas Electronics Corporation System for selecting a task to be executed according to an output from a task control circuit
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
CN103080921B (zh) * 2010-08-30 2015-11-25 富士通株式会社 多核处理器系统、同步控制系统、同步控制装置、信息生成方法
US9046593B2 (en) * 2011-12-15 2015-06-02 The Boeing Company Method and apparatus for detecting and classifying signals
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 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106104478A (zh) * 2014-03-14 2016-11-09 国际商业机器公司 条件事务和指令
JP2017511531A (ja) * 2014-03-14 2017-04-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 条件付き命令終了(conditional instruction end)操作
JP2017511931A (ja) * 2014-03-14 2017-04-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 比較及び遅延(compare and delay)命令
CN106104478B (zh) * 2014-03-14 2019-03-22 国际商业机器公司 条件事务和指令
JP2018503162A (ja) * 2014-12-17 2018-02-01 インテル・コーポレーション スピンループジャンプを実行するための装置および方法

Also Published As

Publication number Publication date
DE4101623A1 (de) 1991-07-25
US5440750A (en) 1995-08-08
JP2779032B2 (ja) 1998-07-23

Similar Documents

Publication Publication Date Title
JPH03217962A (ja) 情報処理装置
US3528062A (en) Program interlock arrangement,including task suspension and new task assignment
US10884822B2 (en) Deterministic parallelization through atomic task computation
US5361369A (en) Synchronous method of, and apparatus for, allowing a processor to process a next task before synchronization between a predetermined group of processors
US6101524A (en) Deterministic replay of multithreaded applications
US4590555A (en) Apparatus for synchronizing and allocating processes among several processors of a data processing system
US20120246652A1 (en) Processor Management Via Thread Status
JPH07182184A (ja) 実行タスクのオーバーラン状態を監視する方法、タスク実行サイクルオーバーランを監視し制御する方法、及びタスク実行サイクルオーバーランを検出する装置
JP2003288237A (ja) 制御装置における実行時間測定装置及び実行時間測定方法
JPH0120466B2 (ja)
US6769121B1 (en) Program execution device and process migrating method thereof and storage medium which stores process migration control program
US6910209B2 (en) Clean thread termination
US5148542A (en) Multitask processing apparatus utilizing a central processing unit equipped with a micro-program memory which contains no software instructions
US5805870A (en) System and method for correcting clock drift in multiprocessor systems
JPH0810437B2 (ja) 仮想計算機システムのゲスト実行制御方式
CN109992388B (zh) 一种用于核电厂安全级设备软件多任务管理系统
JPH0381859A (ja) マルチプロセッサシステム
JPH0895803A (ja) タスクスケジュール方法
JPS59133655A (ja) アドレス・ストツプ制御回路
JPH0573296A (ja) マイクロコンピユータ
JPS5916054A (ja) マイクロ・プロセツサ
JPH01321525A (ja) ハードウェアセマフォ
JPH01213738A (ja) トランザクション制御方式
JPH03184138A (ja) モニタリング方法
JPH09114683A (ja) 計算機システムの制御方法