JPH07244595A - プロセススイッチ制御装置およびプロセス制御方法 - Google Patents

プロセススイッチ制御装置およびプロセス制御方法

Info

Publication number
JPH07244595A
JPH07244595A JP3553594A JP3553594A JPH07244595A JP H07244595 A JPH07244595 A JP H07244595A JP 3553594 A JP3553594 A JP 3553594A JP 3553594 A JP3553594 A JP 3553594A JP H07244595 A JPH07244595 A JP H07244595A
Authority
JP
Japan
Prior art keywords
switch
state
output
input
message
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
JP3553594A
Other languages
English (en)
Other versions
JP3655648B2 (ja
Inventor
Toshiyuki Shimizu
俊幸 清水
Hiroaki Ishihata
宏明 石畑
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP03553594A priority Critical patent/JP3655648B2/ja
Publication of JPH07244595A publication Critical patent/JPH07244595A/ja
Priority to US08/710,552 priority patent/US6055559A/en
Application granted granted Critical
Publication of JP3655648B2 publication Critical patent/JP3655648B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】マルチプロセッシング・システムにおけるプロ
セススイッチ制御装置およびプロセス制御方法に関し,
マルチプロセッシング環境でのユーザレベルの入出力お
よびメッセージ通信を可能とし,低いオーバーヘッドの
入出力およびメッセージ通信を実現することを目的とす
る。 【構成】プロセススイッチを起こすことのできるフリー
状態とクリティカルな状態とを状態管理手段14により管
理し,これらの状態に応じてプロセススイッチを起こす
タイミングに幅を持たせ,現在実行中のプロセスが入出
力中またはメッセージ通信中のクリティカルな状態にあ
る場合には,スイッチ制御手段15によりプロセススイッ
チが起きないようにプロセスのスイッチ信号を制御す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,複数のプロセスが時分
割的に動作するマルチプロセッシング・システムにおけ
るプロセススイッチ制御装置および制御方法に関するも
のである。
【0002】近年,計算機システムの高速化が要求され
ている。このような計算機システムでは,一般に複数の
プロセスが走行している。特に,計算性能を上げるため
に複数のシステムを接続して,相互に通信を行うシステ
ムも用いられており,この場合に利用されるメッセージ
通信は,計算性能を犠牲にしないためにもオーバーヘッ
ドができるだけ小さいことが要求される。同様に入出力
においてもオーバーヘッドが小さいことが要求される。
なお,ここでプロセスとはCPU実行権を得て走行する
計算機システムの実行単位をいい,この実行単位にはい
わゆるタスクと呼ばれるものも含まれる。
【0003】
【従来の技術】従来,計算機システムにおいて複数のプ
ロセスが走行している場合,一連の入出力(I/O)処
理にはオペレーティング・システム(以下,OSとい
う)を介在させる必要があった。しかし,OSを介在さ
せると,ユーザプロセスからOSへの制御移行に伴う処
理などのために,非常に計算機の処理時間がかかる。こ
のOSによるオーバーヘッドを削減するために,OSを
介さないユーザレベルの転送方式として,特開平3−1
50659号公報(データ転送方式),特開平5−23
3440号公報(バッファ機能を備えたデータ転送方
式)などに示される技術が知られている。
【0004】しかし,従来のこれらの方式は,1プロセ
ッサ当たりメッセージを送信できるプロセスが一つであ
る場合に利用できる技術であり,マルチプロセッシング
環境では利用するのは難しかった。
【0005】
【発明が解決しようとする課題】従来,OSを介さずに
ユーザレベルでメッセージ送信や,入出力操作を可能に
しようとした場合,マルチプロセッシング環境では,一
つの操作(例えばメッセージ送信)が複数のトランザク
ションに分割された場合に,トランザクションの間にプ
ロセススイッチが発生して,他のプロセスによる操作が
割り込み,一つの操作として意味を持たなくなってしま
うという問題があった。
【0006】図12は本発明の課題説明図である。図1
2(A)は,一般のプロセススイッチを表している。タ
スクAが走行しているときに,プロセススイッチを起こ
す割り込みが入ると,OSがタスクBにCPU時間を与
えてタスクBが走り出す。
【0007】図12(B)は,メッセージ送信や入出力
をStartからEndまでタスクAが行っている様子
を表している。ここで,タスクAが(1) に示すように入
出力を開始する前に,プロセススイッチを起こす割り込
みがあった場合には,プロセススイッチによってCPU
実行権をタスクBに切り替えても何ら問題はない。これ
に対して,(2) に示すようにメッセージ送信や入出力
を,OSを介さずにユーザレベルでタスクAが行ってい
る最中(critical section) に,プロセススイッチを起
こす割り込みが発生すると,問題が発生する。
【0008】メッセージ送信や入出力がユーザレベルで
行われているために,ここで,プロセススイッチにより
タスクBがCPU時間を与えられて走行を開始すると,
タスクAと同様なメッセージ送信や入出力を行うことが
あり,タスクAの操作と競合が発生して正しい操作が行
われなくなる。
【0009】本発明は上記問題点の解決を図り,マルチ
プロセッシング環境においても,OSを介さない効率の
高いメッセージの送信および入出力を可能とすることを
目的とする。
【0010】
【課題を解決するための手段】図1は本発明の原理説明
図である。図1(A)において,10はCPUおよびメ
モリなどからなる処理装置,11はマルチプロセッシン
グ環境を提供するオペレーティング・システム(O
S),12A,12BはCPU実行権を得て走行する計
算機システムの実行単位であるプロセス(以下の説明で
は,プロセスの例としてタスクを代表させて説明す
る),13はプロセスの切り替えを制御するプロセスス
イッチ制御装置,14はプロセスの切り替えを制御する
ための状態を管理する状態管理手段,15はプロセスを
切り替えるタイミング信号であるスイッチ信号(Switch)
の出力を制御するスイッチ制御手段,16はネットワー
ク等へのメッセージの転送を制御する転送制御装置,1
7はディスク装置等のI/Oデバイスを表す。
【0011】また,Startは,現在実行中のプロセ
スが転送制御装置16によるメッセージ通信またはI/
Oデバイス17に対する入出力を開始するというイベン
トを示す信号,Endは,現在実行中のプロセスが転送
制御装置16によるメッセージ通信またはI/Oデバイ
ス17に対する入出力を終了するというイベントを示す
信号,resetは,状態をクリアすることを指示する
信号,Switchは,プロセススイッチを起こすこと
を指示する信号を表す。
【0012】処理装置10では,OS11の制御のもと
に,複数のプロセス(タスクA)12A,プロセス(タ
スクB)12B,…が時分割的にCPU時間を与えられ
て走行する。本発明では,これらの複数のタスクA,
B,…の走行を切り替えるために,状態管理手段14お
よびスイッチ制御手段15を持つプロセススイッチ制御
装置13を有する。
【0013】請求項1記載の発明では,プロセススイッ
チ制御装置13の状態管理手段14は,少なくとも,プ
ロセススイッチを起こすことのできるフリー状態と,現
在実行中のプロセスが入出力中またはメッセージ通信中
であるためにプロセススイッチを起こすことを抑止する
スイッチ抑止状態とを含む状態を管理する。また,スイ
ッチ制御手段15は,前記状態に応じてプロセススイッ
チを起こすタイミングに幅を持たせ,前記スイッチ抑止
状態にあるときにはプロセススイッチが起きないように
プロセスのスイッチ信号を制御する。
【0014】請求項2記載の発明では,状態管理手段1
4は,少なくとも,プロセススイッチを起こすことので
きるフリー状態と,現在実行中のプロセスが入出力中ま
たはメッセージ通信中であるためにプロセススイッチを
起こすことを抑止するスイッチ抑止状態と,プロセスス
イッチのトリガとなるタイマー・イベントが所定の時間
内に発生する状態になったことを示すスイッチ予告促進
状態とを含む状態を管理する。また,スイッチ制御手段
15は,前記状態に応じてプロセススイッチを起こすタ
イミングに幅を持たせ,前記スイッチ抑止状態にあると
きにはプロセススイッチが起きないようにプロセスのス
イッチ信号を制御するとともに,前記スイッチ予告促進
状態において現在実行中のプロセスが入出力中またはメ
ッセージ通信中に入ることを示すイベントが発生したと
きには,そのプロセスが入出力中またはメッセージ通信
中に入る前にプロセスのスイッチ信号を出力する。
【0015】請求項3記載の発明では,さらにスイッチ
制御手段15は,前記スイッチ抑止状態においてプロセ
ススイッチを起こすためのタイマー・イベントまたはそ
の予告イベントが発生した場合に,プロセススイッチを
遅延させ,現在実行中のプロセスの入出力終了またはメ
ッセージ通信終了のイベントによりプロセスのスイッチ
信号を出力し,プロセススイッチを起こす手段を備え
る。
【0016】また,請求項4記載の発明では,スイッチ
制御手段15は,前記スイッチ抑止状態におけるプロセ
ススイッチの遅延が所定の時間を越えた場合には割り込
みを起こし,一つのプロセスが長時間にわたって実行権
を占有しないように制御する手段を備える。
【0017】さらにまた,請求項5記載の発明では,ス
イッチ制御手段15は,前記スイッチ抑止状態において
非同期な外部割り込みがあった場合に,その割り込みの
発生を遅延させ,現在実行中のプロセスの入出力終了ま
たはメッセージ通信終了のイベントが発生してから保留
した割り込みを発生させる手段を備える。
【0018】請求項6記載の発明では,入出力を実行す
るプロセス,またはメッセージを送信もしくは受信する
プロセスを一つに制限するために,一つのプロセスが入
出力を開始またはメッセージの送信もしくは受信を開始
してからそれが終了するまでのクリティカルな状態を管
理し,そのクリティカルな状態における他の実行可能な
プロセスの入出力起動またはメッセージ送信/受信の開
始を抑止することにより,入出力またはメッセージの送
信もしくは受信を,マルチプロセッシング環境において
もユーザプログラムのレベルで起動可能とする。
【0019】請求項7記載の発明では,入出力を実行す
るプロセス,またはメッセージを送信もしくは受信する
プロセスを一つに制限するために,所定のアドレス空間
のアクセス権を入出力を開始またはメッセージの送信も
しくは受信を開始したプロセスに与え,他の実行可能な
プロセスの前記アドレス空間へのアクセスを禁止し,前
記アクセス権を持つプロセスの入出力が終了またはメッ
セージの送信もしくは受信が終了したときに前記アクセ
ス権を変更することにより,入出力またはメッセージの
送信もしくは受信を,マルチプロセッシング環境におい
てもユーザプログラムのレベルで起動可能とする。
【0020】
【作用】本発明では,例えば図1(B)に示すように,
プロセススイッチ(タスクスイッチ)が起こるタイミン
グに幅を持たせることによって,プロセスが不可分な操
作を行っている間に,プロセススイッチが発生すること
を防ぐので,マルチプロセッシング環境下においてもメ
ッセージ送信/受信,入出力操作をユーザプログラムの
レベルで実行することができるようになる。
【0021】プロセススイッチを起こすタイミングの周
辺で,メッセージ送信/受信または入出力の起動がかか
った場合には,その起動を一時保留し,プロセススイッ
チを起こすようにするので,プロセススイッチの時間間
隔が極端に長くなるのを事前に防ぐことが可能になる。
【0022】プロセスがメッセージ送信/受信または入
出力中である場合には,プロセススイッチを起こすイベ
ントを遅延させ,メッセージ送信/受信または入出力の
終了イベントによってプロセススイッチを起こすことに
より,送信/受信または入出力途中でプロセススイッチ
が起きないように制御することができる。
【0023】さらに,プロセススイッチを起こすイベン
トの遅延が,ある一定時間を越えた場合には,割り込み
を起こすことにより,一つのプロセスがCPU時間を極
端に長い時間占有しないようにすることができる。
【0024】非同期な割り込みに対しても,プロセスが
メッセージ送信/受信または入出力中である場合には,
その割り込みの発生を遅延させることにより,プロセス
の不可分の処理を保証することが可能になる。
【0025】また,一つのプロセスが入出力またはメッ
セージ送信/受信を開始してから,終了するまでの間
に,他のアクティブ(実行可能)なプロセスが入出力ま
たはメッセージ送信/受信を開始できないように,プロ
セスが使用権を持つアドレス空間のアクセス権を制御す
ることにより,入出力またはメッセージ送信/受信を行
うプロセスを一つに制限し,マルチプロセッシング環境
において,入出力またはメッセージ送信/受信を,複数
のプロセスからユーザプログラムのレベルで起動できる
ようにすることが可能になる。
【0026】
【実施例】図2ないし図4は本発明の実施例における状
態遷移説明図,図5および図6は本発明の実施例におけ
るプロセススイッチのタイミング説明図,図7は本発明
の実施例による非同期割り込みの制御説明図,図8は本
発明の実施例におけるアクセス権の制御説明図である。
【0027】請求項1記載の発明に対応する第1の実施
例では,プロセススイッチ制御装置13は,図2(A)
に示すように,free状態およびused状態の二つ
の状態を管理する。free状態は,現在実行中のプロ
セスが入出力中でもメッセージ送信/受信中でもなく,
プロセススイッチを起こすことのできる状態である。u
sed状態は,現在実行中のプロセスが入出力中または
メッセージ送信/受信中であり,プロセススイッチを起
こすことを抑止しなければならない状態である。
【0028】初期化信号initial(またはリセッ
ト信号reset)のイベントにより,プロセススイッ
チ制御装置13はfree状態になる。free状態に
おいて,現在実行中のプロセスが入出力またはメッセー
ジ送信/受信を開始するというイベントを示す信号St
artが入ると,許可信号ackを出力し,used状
態に遷移する。used状態においては,プロセススイ
ッチを発生させるイベントが発生してもプロセススイッ
チを起こさずに,現在実行中のプロセスが入出力または
メッセージ送信/受信を終了するというイベントを示す
信号Endが入ったときに,許可信号ackを出力する
とともに,プロセススイッチを起こすことを指示するス
イッチ信号Switchを処理装置10に対して出力
し,free状態に遷移する。
【0029】請求項2記載の発明に対応する第2の実施
例では,プロセススイッチ制御装置13は,図2(B)
に示すように,free状態,used状態およびsw
itch状態の三つの状態を管理する。free状態
は,現在実行中のプロセスが入出力中でもメッセージ送
信/受信中でもなく,プロセススイッチを起こすことの
できる状態である。used状態は,現在実行中のプロ
セスが入出力中またはメッセージ送信/受信中であり,
プロセススイッチを起こすことを抑止しなければならな
い状態である。switch状態は,プロセススイッチ
のトリガとなるタイマー信号timerが所定の時間内
に発生する状態になったことを示すスイッチ予告促進状
態である。
【0030】初期化信号initial(またはリセッ
ト信号reset)のイベントにより,プロセススイッ
チ制御装置13はfree状態になる。free状態に
おいて,現在実行中のプロセスが入出力またはメッセー
ジ送信/受信を開始するというイベントを示す信号St
artが入ると,許可信号ackを出力し,used状
態に遷移する。また,free状態において,プロセス
スイッチのトリガとなるタイマー信号timerが所定
の時間内に発生することを示す予告タイマー信号tim
er0が入ると,switch状態に遷移する。
【0031】used状態においては,プロセススイッ
チを発生させるイベントが発生してもプロセススイッチ
を起こさずに,現在実行中のプロセスが入出力またはメ
ッセージ送信/受信を終了するというイベントを示す信
号Endが入ったときに,許可信号ackを出力すると
ともに,プロセススイッチを起こすことを指示するスイ
ッチ信号Switchを処理装置10に対して出力し,
free状態に遷移する。
【0032】switch状態において,プロセススイ
ッチのトリガとなるタイマー信号timerが入ると,
スイッチ信号Switchを出力してプロセススイッチ
を起こし,free状態に遷移する。また,現在実行中
のプロセスが入出力またはメッセージ送信/受信を開始
するというイベントを示す信号Startが入ると,許
可信号ackを出力するとともに,スイッチ信号Swi
tchを出力し,他の実行可能なプロセスに強制的にス
イッチさせて,free状態に遷移する。また,swi
tch状態でリセット信号resetが入ったときに
は,許可信号ackを出力し,free状態に遷移す
る。
【0033】図5(A)は,この第2の実施例における
動作例を示している。タスクAがfree状態で走行中
に予告タイマー信号timer0が入ると,switc
h状態に遷移する。このとき,タスクAが入出力または
メッセージ送信/受信を開始しようとすると,そのイベ
ントを示す信号Startが検出されるが,switc
h状態になっているので,タスクスイッチを起こし,タ
スクAからCPU実行権を奪って他の実行可能なタスク
BにCPU実行権を与える。
【0034】請求項3記載の発明に対応する第3の実施
例では,プロセススイッチ制御装置13は,図2(C)
に示すように,free状態,used状態,swit
ch状態およびswitch0状態の四つの状態を管理
する。free状態,used状態,switch状態
は,前述した図2(B)に示す状態と同様である。sw
itch0状態は,used状態において,予告タイマ
ー信号timer0が入ったときに遷移するスイッチ準
備状態である。
【0035】初期化信号initial(またはリセッ
ト信号reset)のイベントにより,プロセススイッ
チ制御装置13はfree状態になる。free状態に
おいて,現在実行中のプロセスが入出力またはメッセー
ジ送信/受信を開始するというイベントを示す信号St
artが入ると,許可信号ackを出力し,used状
態に遷移する。また,free状態において,プロセス
スイッチのトリガとなるタイマー信号timerが所定
の時間内に発生することを示す予告タイマー信号tim
er0が入ると,switch状態に遷移する。
【0036】used状態において,現在実行中のプロ
セスが入出力またはメッセージ送信/受信を終了すると
いうイベントを示す信号Endが入ったときに,許可信
号ackを出力し,free状態に遷移する。一方,u
sed状態において,予告タイマー信号timer0が
入ると,プロセススイッチの準備のためにswitch
0状態に遷移する。
【0037】switch0状態では,現在実行中のプ
ロセスが入出力またはメッセージ送信/受信を終了する
というイベントを示す信号Endが入ると,許可信号a
ckを出力するとともに,プロセススイッチを起こすこ
とを指示するスイッチ信号Switchを処理装置10
に対して出力し,free状態に遷移する。
【0038】スイッチ予告促進状態であるswitch
状態における状態遷移は,図2(B)で説明した状態遷
移と同様である。図5(B)は,この第3の実施例にお
ける動作例を示している。タスクAが入出力またはメッ
セージ送信/受信を開始し,used状態になっている
ときに,予告タイマー信号timer0が入ると,sw
itch0状態に遷移する。switch0状態になる
と,その後のプロセススイッチは遅延され,タスクAが
入出力またはメッセージ送信/受信を終了したことを示
す信号Endによってタスクスイッチを起こし,タスク
BにCPU実行権が与えられる。
【0039】請求項4記載の発明に対応する第4の実施
例では,プロセススイッチ制御装置13は,図3(A)
に示すように,free状態,used状態,swit
ch状態およびswitch0状態の四つの状態を管理
する。free状態,used状態,switch状態
における状態遷移は,図2(C)に示す状態遷移と同様
である。switch0状態についても,図2(C)の
例とほぼ同様であるが,プロセススイッチを遅延させる
スイッチ抑止状態(used状態またはswitch0
状態)において,現在実行中のプロセスが長時間にわた
ってCPU時間を占有してしまうことを防ぐために,あ
る一定時間が経過した場合にはCPUに対して割り込み
信号Interruptを出力してfree状態に戻
す。
【0040】図6(A)は,この第4の実施例における
動作例を示している。タスクAが入出力(I/O)を開
始している場合には,タスクスイッチをある時間(Ti
meOut)だけ引き延ばし,入出力が終わるのを期待
する。その時間内に終わらない場合には,その入出力を
中断し,必要に応じてタスクAに関する処理途中の情報
を保存して,タスクBにタスクスイッチする。
【0041】請求項5記載の発明に対応する第5の実施
例では,プロセススイッチ制御装置13は,図3(B)
に示すように,free状態,used状態およびma
sk状態の三つの状態を管理する。free状態,us
ed状態については,前述の例と同様である。mask
状態は,used状態において非同期な外部割り込みE
xInterruptがあった場合に遷移する状態であ
る。非同期な外部割り込みExInterruptがあ
った場合にused状態からmask状態に遷移するこ
とにより,その非同期な外部割り込みの発生を遅延さ
せ,ある一定の時間が経過したことを示すタイムアウト
のイベント(TO:timeout),あるいは現在実
行中のプロセスの入出力またはメッセージ通信終了のイ
ベントを示す信号Endによって,保留していた割り込
みの信号Interruptを処理装置10に送出す
る。
【0042】図7は,この第5の実施例を実現するため
の非同期割り込み制御回路の例を示す。従来の通常の非
同期割り込みでは,図7(A)に示すように,非同期割
り込み等の割り込み信号は,OR回路60により論理的
にORされ,CPUに対して与えられる。これに対し,
本実施例では,例えば図7(B)に示すような制御回路
が用いられる。現在実行中のタスクが入出力(またはメ
ッセージ通信)を開始するときに,I/O Start
の信号によってセット/リセットフリップフロップ61
をセットし,入出力実行中であることを記憶しておく。
この状態のときには,セット/リセットフリップフロッ
プ61の出力であるmaskの反転信号は0であり,O
R回路60の出力はAND回路62によってマスクさ
れ,CPUに割り込みがかかるのが抑止される。これに
よって,現在実行中のタスクがクリティカルな入出力を
行っている最中に,非同期割り込み等が発生するのを防
ぐことができる。実行中の入出力が終了すると,I/O
End信号によってセット/フリップフロップ61が
リセットされ,割り込みのマスクは解除される。
【0043】請求項6記載の発明に対応する第6の実施
例では,プロセススイッチ制御装置13は,図4(A)
に示すように,free状態,used状態の二つの状
態を管理する。本実施例では,例えば一つのプロセスが
メッセージを送出し始めてから,送出し終わるまでの間
に,他のアクティブ(実行可能)なプロセスがメッセー
ジの送出を行えないようにするために,次のように制御
する。
【0044】初期化信号initial(またはリセッ
トreset)のイベントにより,プロセススイッチ制
御装置13はfree状態になる。free状態におい
て,現在実行中のプロセスが入出力またはメッセージ送
信/受信を開始するというイベントを示す信号Star
tが入ると,許可信号ackを出力し,used状態に
遷移する。used状態においては,他のアクティブ
(実行可能)なプロセスが入出力の起動またはメッセー
ジ通信の開始を指示し,入出力またはメッセージ送信/
受信を開始するというイベントを示す信号Startを
出力しても,不許可信号nackが返される。そして,
現在実行中のプロセスが入出力またはメッセージ送信/
受信を終了するというイベントを示す信号Endが入っ
たときに,許可信号ackを出力するとともに,プロセ
ススイッチを起こすことを指示するスイッチ信号Swi
tchを処理装置10に対して出力し,free状態に
遷移する。
【0045】図6(B)は,この第6の実施例における
動作例を示している。タスクA,タスクB,タスクCが
走行可能状態であったとする。本実施例は,例えばタス
クAが入出力(I/O)処理を開始した状態で,タスク
BやタスクCにCPU実行権が切り替わった場合には,
タスクBやタスクCに対してI/Oにアクセスする権利
を与えないようにするものである。図6(B)に示す動
作例では,タスクAが入出力処理を終えた後に,タスク
Bが入出力処理を開始している。
【0046】請求項7記載の発明に対応する第7の実施
例では,例えば図8(A)に示すように,タスクA,タ
スクB,タスクCが走行可能状態にある場合に,入出力
(I/O)を起動できるアドレス空間(User accessibl
e I/O)を,タスクAのみに解放して,他のタスクB,C
からはこのアドレス空間にアクセスできないようにアク
セス権を制限する。アクセス権の制限は,例えば主記憶
保護などの周知の技術を用いて実現することができる。
【0047】さらに,この第7の実施例において,アク
セス権が制限されているタスクB,CがI/Oをアクセ
スしようとすると,例えば割り込みを発生させてOSに
制御を移し,OSは割り込みを起こしたタスクBまたは
タスクCの状態を変化させ(I/O待ちなど),タスク
AのI/Oが終了するまで,I/O待ちなどの状態にあ
るタスクB,CにCPU時間を与えないようにする。図
4(B)はその例における状態遷移を示している。タス
クAのI/Oの開始により,free状態からused
状態に遷移する。このused状態において,他のタス
クB,CがI/Oを起動しようとしても,タスクスイッ
チによってI/O待ちになる。タスクAのI/Oが終了
するとfree状態に戻り,他のタスクB,CのI/O
の起動が可能になる。
【0048】図7(B)は,この第7の実施例を実現す
るためのシステム構成の例を示している。図中,50は
CPU,51はメモリ制御装置(MMU),52はメモ
リを表す。メモリ制御装置51は,CPU50が出すア
ドレスをチェックする機構を持つ。OSは,どのタスク
がI/O領域にアクセスできるかをメモリ制御装置51
のモジュールに設定しておく。これにより,アクセス権
のないタスクが発行したアドレスが不適切である場合に
は,割り込み(Interrupt)を発生させ,タス
クスイッチを起こす。メモリ制御装置51によるアクセ
ス保護機能の利用はマルチタスクの環境では一般的であ
り,本実施例を実現するための装置の変更はほとんど必
要がない。もちろん,これと同等な機能を持つアクセス
チェック機構によって本実施例を実現することも可能で
ある。
【0049】図9(A)は,本発明の実施例によるプロ
セススイッチ制御装置の構成例を示す図であり,図9
(B)はプロセススイッチ制御装置におけるカウンタの
出力説明図である。また,図10および図11は,プロ
セススイッチ制御装置におけるステートマシンの実現方
法説明図である。
【0050】以下では,請求項3記載の発明の一実施例
であるプロセス制御装置の構成例について説明する。図
9(A)において,90はステートマシン(FSM)で
あって,有限な状態を管理し入力信号によって状態を遷
移させるとともに,そのときの状態と入力信号とに応じ
て各種の制御信号を出力する装置である。91はCPU
が出すアドレスをデコードするデコーダ(DEC),9
2はCPUのクロックclkをカウントし,所定の値に
なったときに予告タイマー信号timer0を出力する
第1のカウンタ(counter0),93はクロック
clkをカウントし,所定の値になったときにプロセス
スイッチのトリガとするタイマー信号timerを出力
する第2のカウンタ(counter)を表す。
【0051】CPUが起動するI/Oやメッセージ送出
命令は,この例では,CPUが出すアドレスによって検
出される。デコーダ91は,そのようなアドレスをデコ
ードすることによって,CPUのクリティカルな操作の
開始時(I/Oの開始,メッセージ送出の開始等)に信
号Startを生成し,クリティカルな操作の終了時に
信号Endを生成する。同様に,リセット信号rese
tもCPUが出す特定のアドレスによって生成する。
【0052】また,第1のカウンタ92および第2のカ
ウンタ93は,CPUのクロックclkを分周し設定さ
れた時間に,それぞれ予告タイマー信号timer0お
よびタイマー信号timerをアクティブにする。この
カウンタ出力信号のタイミングは,例えば図9(B)に
示すようになっており,タイマー信号timerがアク
ティブになる所定の時間前に,予告タイマー信号tim
er0がアクティブになるように設定されている。タイ
マー信号timerがアクティブになる時間間隔は,通
常の場合におけるプロセススイッチの時間間隔に一致
し,この時間はCPUのクロックclkに対して十分に
長い時間である。
【0053】これらの信号はステートマシン90に入力
され,ステートマシン90によって,例えば図2(C)
に示すような状態遷移に応じてack(nack),S
witchの信号が生成される。CPUは許可信号ac
kを受け取ると正常にバストランザクションが終了(成
功)したことを認識する。許可信号ackが出力されな
かった(または不許可信号nackが出力された)場
合,CPUはアクセスが正常に終了していないことを認
識して,リトライを行うか停止する。また,スイッチ信
号Switchによって,他のプロセスを実行するため
のプロセススイッチを起こす。
【0054】以上のようなステートマシン90は,図1
0および図11に示すようなハードウェア記述言語をコ
ンパイルすることによって,容易に実現することができ
る。図10および図11は,ハードウェア記述言語の一
つとして周知のVerilogを用いて第4の実施例に
おける状態遷移を実現するものを示している。Veri
logはよく知られた言語であるので詳しい説明を省略
し,ここでは図10および図11による表現の概要だけ
を簡単に説明する。
【0055】第2行目は,ステートマシンのモジュール
の定義文である。第3行目は,入力信号を示す。ここで
intは,図2においてinitialとして示されて
いる初期化信号である。第4行目は,出力信号を示す。
【0056】第6行目は,現在の状態cstateと次
の状態nstateを管理するレジスタを定義してい
る。第8行目は,2ビットでfree状態(FREE=
“00”), used状態(USED=“01”),
switch0状態(SWITCH0=“10”),s
witch状態(SWITCH=“11”)の状態を表
すことを定義している。これらの状態管理は2個のフリ
ップフロップで実現される。
【0057】第9行目から第38行目は,cstat
e,end,start,reset,timer,t
imer0またはintにより,次の状態がどのように
遷移するかを示している。
【0058】また,第40行目から最終行までは,ac
kおよびswitchの信号を出力する条件を示してい
る。ここでは,第4の実施例を代表させて,図9(A)
に示すステートマシン90を実現するVerilog記
述の例を示したが,他の実施例におけるステートマシン
の状態遷移についても,以上説明した例から推測して当
業者であれば容易に実現可能であるので,個々の実現例
のこれ以上の詳しい説明は省略する。図10および図1
1に示すVerilog記述をコンパイルすることによ
って,図9(A)に示すステートマシン90を実現する
論理回路を自動設計する技術は確立されている。
【0059】
【発明の効果】以上説明したように,本発明によれば,
ユーザレベルでのメッセージの送出や,I/Oの実現に
おけるプロセススイッチに関する問題を解決することに
よって,マルチプロセッシング環境下でも,ユーザレベ
ルで直接メッセージの送出やI/Oを制御することがで
き,低いオーバーヘッドでこれらを実現することが可能
になる。したがって,計算機の性能を効率よく引き出す
ことが可能となる。特に,プロセッサ間のメッセージ通
信が頻繁に現れるような並列計算機システム等において
は性能向上の効果が大きい。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施例における状態遷移説明図であ
る。
【図3】本発明の実施例における状態遷移説明図であ
る。
【図4】本発明の実施例における状態遷移説明図であ
る。
【図5】本発明の実施例におけるプロセススイッチのタ
イミング説明図である。
【図6】本発明の実施例におけるプロセススイッチのタ
イミング説明図である。
【図7】本発明の実施例による非同期割り込みの制御説
明図である。
【図8】本発明の実施例におけるアクセス権の制御説明
図である。
【図9】本発明の実施例によるプロセススイッチ制御装
置の構成例を示す図である。
【図10】本発明の実施例によるプロセススイッチ制御
装置におけるステートマシンの実現方法説明図である。
【図11】本発明の実施例によるプロセススイッチ制御
装置におけるステートマシンの実現方法説明図である。
【図12】本発明の課題説明図である。
【符号の説明】
10 処理装置 11 オペレーティング・システム(OS) 12A,12B プロセス 13 プロセススイッチ制御装置 14 状態管理手段 15 スイッチ制御手段 16 転送制御装置 17 I/Oデバイス

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセスが時分割的に動作するマ
    ルチプロセッシング・システムにおいて用いられるプロ
    セススイッチ制御装置であって,少なくとも,プロセス
    スイッチを起こすことのできるフリー状態と,現在実行
    中のプロセスが入出力中またはメッセージ通信中である
    ためにプロセススイッチを起こすことを抑止するスイッ
    チ抑止状態とを含む状態を管理する状態管理手段(14)
    と,前記状態に応じてプロセススイッチを起こすタイミ
    ングに幅を持たせ,前記スイッチ抑止状態にあるときに
    はプロセススイッチが起きないようにプロセスのスイッ
    チ信号を制御するスイッチ制御手段(15)とを備えたこと
    を特徴とするプロセススイッチ制御装置。
  2. 【請求項2】 複数のプロセスが時分割的に動作するマ
    ルチプロセッシング・システムにおいて用いられるプロ
    セススイッチ制御装置であって,少なくとも,プロセス
    スイッチを起こすことのできるフリー状態と,現在実行
    中のプロセスが入出力中またはメッセージ通信中である
    ためにプロセススイッチを起こすことを抑止するスイッ
    チ抑止状態と,プロセススイッチのトリガとなるタイマ
    ー・イベントが所定の時間内に発生する状態になったこ
    とを示すスイッチ予告促進状態とを含む状態を管理する
    状態管理手段(14)と,前記状態に応じてプロセススイッ
    チを起こすタイミングに幅を持たせ,前記スイッチ抑止
    状態にあるときにはプロセススイッチが起きないように
    プロセスのスイッチ信号を制御するとともに,前記スイ
    ッチ予告促進状態において現在実行中のプロセスが入出
    力中またはメッセージ通信中に入ることを示すイベント
    が発生したときには,そのプロセスが入出力中またはメ
    ッセージ通信中に入る前にプロセスのスイッチ信号を出
    力するスイッチ制御手段(15)とを備えたことを特徴とす
    るプロセススイッチ制御装置。
  3. 【請求項3】 請求項1または請求項2記載のプロセス
    スイッチ制御装置において,前記スイッチ制御手段(15)
    は,前記スイッチ抑止状態においてはプロセススイッチ
    を遅延させ,現在実行中のプロセスの入出力終了または
    メッセージ通信終了のイベントによりプロセスのスイッ
    チ信号を出力し,プロセススイッチを起こす手段を備え
    たことを特徴とするプロセススイッチ制御装置。
  4. 【請求項4】 請求項3記載のプロセススイッチ制御装
    置において,前記スイッチ制御手段(15)は,前記スイッ
    チ抑止状態におけるプロセススイッチの遅延が所定の時
    間を越えた場合には割り込みを起こし,一つのプロセス
    が実行権を占有しないように制御する手段を備えたこと
    を特徴とするプロセススイッチ制御装置。
  5. 【請求項5】 請求項3記載のプロセススイッチ制御装
    置において,前記スイッチ制御手段(15)は,前記スイッ
    チ抑止状態において非同期な外部割り込みがあった場合
    に,その割り込みの発生を遅延させ,現在実行中のプロ
    セスの入出力終了またはメッセージ通信終了のイベント
    が発生してから保留した割り込みを発生させる手段を備
    えたことを特徴とするプロセススイッチ制御装置。
  6. 【請求項6】 複数のプロセスが時分割的に動作するマ
    ルチプロセッシング・システムにおけるプロセス制御方
    法において,入出力を実行するプロセス,またはメッセ
    ージを送信もしくは受信するプロセスを一つに制限する
    ために,一つのプロセスが入出力を開始またはメッセー
    ジの送信もしくは受信を開始してからそれが終了するま
    でのクリティカルな状態を管理し,そのクリティカルな
    状態においては他の実行可能なプロセスが入出力を開始
    またはメッセージの送信もしくは受信を開始することを
    抑止し,入出力またはメッセージの送信もしくは受信
    を,マルチプロセッシング環境において複数のプロセス
    からユーザプログラムのレベルで起動可能とすることを
    特徴とするプロセス制御方法。
  7. 【請求項7】 複数のプロセスが時分割的に動作するマ
    ルチプロセッシング・システムにおけるプロセス制御方
    法において,入出力を実行するプロセスまたはメッセー
    ジを送信もしくは受信するプロセスを一つに制限するた
    めに,所定のアドレス空間のアクセス権を,入出力を開
    始したプロセスまたはメッセージの送信もしくは受信を
    開始したプロセスに与え,他の実行可能なプロセスの前
    記アドレス空間へのアクセスを禁止し,前記アクセス権
    を持つプロセスの入出力が終了またはメッセージの送信
    もしくは受信が終了したときに前記アクセス権を変更
    し,入出力またはメッセージの送信もしくは受信を,複
    数のプロセスからユーザプログラムのレベルで起動可能
    とすることを特徴とするプロセス制御方法。
JP03553594A 1994-03-07 1994-03-07 プロセススイッチ制御装置およびプロセス制御方法 Expired - Lifetime JP3655648B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP03553594A JP3655648B2 (ja) 1994-03-07 1994-03-07 プロセススイッチ制御装置およびプロセス制御方法
US08/710,552 US6055559A (en) 1994-03-07 1996-09-19 Process switch control apparatus and a process control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03553594A JP3655648B2 (ja) 1994-03-07 1994-03-07 プロセススイッチ制御装置およびプロセス制御方法

Publications (2)

Publication Number Publication Date
JPH07244595A true JPH07244595A (ja) 1995-09-19
JP3655648B2 JP3655648B2 (ja) 2005-06-02

Family

ID=12444436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03553594A Expired - Lifetime JP3655648B2 (ja) 1994-03-07 1994-03-07 プロセススイッチ制御装置およびプロセス制御方法

Country Status (1)

Country Link
JP (1) JP3655648B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132517A (ja) * 2000-10-18 2002-05-10 Canon Inc 電子機器、カメラおよび視線入力装置
US7234142B1 (en) 1999-06-09 2007-06-19 Nec Corporation Task processing system
JP2007249519A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd 任意アプリケーションによる外部記憶装置への情報持ち出し制御方法
JP2015097106A (ja) * 2005-04-13 2015-05-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated マルチスレッドシステムの中でイベントを設定するための技術

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234142B1 (en) 1999-06-09 2007-06-19 Nec Corporation Task processing system
JP2002132517A (ja) * 2000-10-18 2002-05-10 Canon Inc 電子機器、カメラおよび視線入力装置
JP2015097106A (ja) * 2005-04-13 2015-05-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated マルチスレッドシステムの中でイベントを設定するための技術
JP2007249519A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd 任意アプリケーションによる外部記憶装置への情報持ち出し制御方法

Also Published As

Publication number Publication date
JP3655648B2 (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
JP4685312B2 (ja) データ処理システムおよび電力節約方法
JP2867717B2 (ja) マイクロコンピュータ
JP3860209B2 (ja) 直列割込みバス・プロトコル
US4218739A (en) Data processing interrupt apparatus having selective suppression control
JPH077379B2 (ja) 多重処理システムの割込み選択方式
WO1999027434A1 (en) Using firmware to enhance the functionality of a controller
US20060155552A1 (en) Event handling mechanism
US5974479A (en) System for executing, canceling, or suspending a DMA transfer based upon internal priority comparison between a DMA transfer and an interrupt request
US6055559A (en) Process switch control apparatus and a process control method
JPH07244595A (ja) プロセススイッチ制御装置およびプロセス制御方法
JP2006085428A (ja) 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
JPH11282815A (ja) マルチスレッド計算機システム及びマルチスレッド実行制御方法
JPH10283304A (ja) 割り込み要求を処理する方法及びシステム
US11461134B2 (en) Apparatus and method for deferral scheduling of tasks for operating system on multi-core processor
JP3240863B2 (ja) 調停回路
JPH05289987A (ja) バス権調停回路
JP4079653B2 (ja) クロック制御方法及びクロック制御回路
JPH1139266A (ja) マルチプロセッサ装置
JPH0876876A (ja) マイクロプロセッサのクロック供給制御回路
JP2716055B2 (ja) ベクトル処理装置の制御方式
JP2825889B2 (ja) マルチプロセッサシステムにおけるデッドロック回避回路
JPH07219784A (ja) 割り込み制御方式
JPH03252886A (ja) シングルチップマイクロコンピュータ
JPH10326266A (ja) マイクロコンピュータ
JP2000029820A (ja) バス間制御方法ならびに装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040610

A131 Notification of reasons for refusal

Effective date: 20040629

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Effective date: 20050301

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20050304

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 3

Free format text: PAYMENT UNTIL: 20080311

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090311

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100311

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 5

Free format text: PAYMENT UNTIL: 20100311

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110311

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 6

Free format text: PAYMENT UNTIL: 20110311

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 7

Free format text: PAYMENT UNTIL: 20120311

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130311

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20130311

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140311

Year of fee payment: 9

EXPY Cancellation because of completion of term