JP2973480B2 - 通信レジスタ多重化方式 - Google Patents

通信レジスタ多重化方式

Info

Publication number
JP2973480B2
JP2973480B2 JP2172918A JP17291890A JP2973480B2 JP 2973480 B2 JP2973480 B2 JP 2973480B2 JP 2172918 A JP2172918 A JP 2172918A JP 17291890 A JP17291890 A JP 17291890A JP 2973480 B2 JP2973480 B2 JP 2973480B2
Authority
JP
Japan
Prior art keywords
communication register
register
logical
logical communication
state
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
JP2172918A
Other languages
English (en)
Other versions
JPH0460864A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2172918A priority Critical patent/JP2973480B2/ja
Publication of JPH0460864A publication Critical patent/JPH0460864A/ja
Application granted granted Critical
Publication of JP2973480B2 publication Critical patent/JP2973480B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、ユーザプログラムの並列処理を可能として
いるマルチプロセッサシステムのオペレーティングシス
テムに用いられ、並列処理を行う各ユーザプログラムに
通信レジスタを割り当てるときの通信レジスタ多重化方
式に関する。
(従来の技術) ユーザプログラムの並列処理は、ユーザプログラムの
要求に応じて複数のプロセッサを同時にひとつのユーザ
プログラムに割り当てることによって実現される。しか
し、各プロセッサは最初から最後まで完全に独立に動作
できる訳ではない。これは、各プロセッサが扱うデータ
ち依存関係が存在するためである。ここに、プロセッサ
間の同期を制御する必要が出てくる。
粒度の小さい並列処理においては、プロセッサ間の同
期制御に要する時間と同期を取らないで並列動作可能な
プログラム部分の処理に要する時間とが近ずいてくる。
もし、同期制御に要する時間のほうが長くなると、プロ
グラム全体の実行時間は同期制御に要する時間が支配的
になってくる。つまり、ある程度以上プログラムを並列
化しても、同期制御の回数が増えているため並列化の効
果を同期制御のオーバヘッドが食いつぶしてしまい、ほ
とんど性能が向上しなくなる。どの程度の粒度までの並
列化が性能を向上させるかは、そのシステムの同期制御
に要する時間に依存する。この時間が短いほど、より小
さな粒度までの並列化が効果を待つようになる。従っ
て、より高速な並列処理を行うためには、プロセッサ間
の同期制御に要する時間をなるべく短くする必要があ
る。
通常のシステムにおいては、プロセッサ間の同期制御
はオペレーティングシステム(以降OSと略す)が担当し
ている。同期制御を行う場合は、そのプロセッサはOSコ
ール(スーパバイザコール、システルコールなどと呼ば
れている)を行い、OS内部の同期制御を実現している部
分を呼び出す。しかし、この方式では同期制御を行う部
分をいくら高速に動作させてもOSコールが課金の制御な
ど他の動作を同時に行うから、全体としてはかなり時間
のかかる処理になる。
そこで、同期制御に要する時間を極力短縮するために
考案されたのが、通信レジスタを使って同期制御を行う
方式である。マルチプロセッサシステムにおいては、普
通のレジスタは各プロセッサが別々のセットを持ってい
る。これに対して通信レジスタは複数のプロセッサから
参照可能なレジスタである。共有メモリのレジスタ版と
考えられる。アクセス性能は一般の共有メモリよりは高
速であるが、一般のレジスタよりは低速である。これ
は、複数のプロセッサからのアクセスの排他制御が必要
であるからである。また、その容量は共有メモリよりは
かなり少なく、一般のレジスタと同程度の容量である。
通信レジスタのアクセスは通信レジスタアクセス用の特
殊な命令で行われる。
さて、この通信レジスタを使った同期制御は以下のよ
うに行われる。一方のプロセッサは、通信レジスタ内の
あるビットをチェックして、そのビットがオンになるま
でチェックを繰り返す。これをスピンロックと呼ぶ。他
方のプロセッサはある条件が整うとそのビットをオンに
する。すると、スピンロックをしていたプロセッサは先
へ進むことができる。重要な点は、この通信レジスタは
ユーザプログラム(コンパイラのオブジェクト)が直接
アクセスできることである。つまり、同期制御のために
OSを呼び出す必要がなくなる。このために、かなり高速
な同期制御が実現できる。なお、この方法は一般に共有
メモリでも実現できるが、通信レジスタは共有メモリよ
りもかなり高速なので、通信レジスタを用いることによ
り、より高速な同期制御が可能となる。
プロセッサ台数が多くなってくると、ひとつのユーザ
プログラムが同期に複数の独立した並列処理を行いたい
場合が出てくる。例えば、並列処理プログラムの規模が
大きくなり、いくつかの部分プログラムに分けて開発を
するときなどに、この要求が発生する。大きなプログラ
ムでは、その部分プログラムにも並列処理を行えるもの
があり、並列化可能な部分をそれぞれ並列化すると、結
果としてある並列処理の中で別の並列処理が行われるよ
うなことになる。これを並列処理の多重化と呼ぶ。並列
処理の多重化は、並列処理を構成しているひとつのプロ
グラムがさらに別の並列処理を開始するときに発生す
る。このような並列処理の多重化が行われると、それぞ
れの並列処理毎に独立な同期制御が必要になる。各並列
処理の同期制御も高速なほうが有利なので、できれば通
信レジスタを使いたい。ところが、これを実現するため
には、それぞれの並列処理用の別々の通信レジスタの領
域が必要になる。並列処理の多重度が多くなってくる
と、ひと組の通信レジスタに収まらなくなる。また、通
信レジスタ上の領域を各並列処理に割り当てる作業が発
生する。このように、通信レジスタを使った並列処理を
多重化するときは、通信レジスタの容量と割り当ての問
題を解決する必要がある。
以上のような並列処理の多重化を意識した通信レジス
タとして、第13図に示すハードウェア方式が提案されて
いる。通信レジスタはプロセッサと同じ台数である。各
プロセッサ130は自分が参照できる通信レジスタ132を切
換スイッチ131で選択できる。逆に、現在どの通信レジ
スタに接続されているかを知ることができる。なお、こ
の接続通信レジスタを知る機能は、通信レジスタを切り
換える時にその情報を蓄えておくことにより、ソフトウ
ェアでも実現できる。第13図のようなハードウェアを使
えば、各プロセッサの組毎に別々の通信レジスタを持た
せることはそれほど難しくない。ひとつの並列処理をあ
るプロセッサの組に割り当てるときに切換スイッチを操
作して、その組の各プロセッサが全て同じ通信レジスタ
を参照できるようにすればよい。ただし、他の並列処理
とは別の通信レジスタを割り当てる必要がある。並列処
理の通信レジスタアクセスは、切換スイッチの操作も不
要なので、性能も劣化しない。この方式では、通信レジ
スタをプロセッサ台数用意することによって通信レジス
タの容量を増やし、並列処理毎に別々の通信レジスタを
割り当てることにより通信レジスタ割り当ての問題を解
決している。すなわち、並列処理毎に専用の通信レジス
タをひと組確保できる。
(発明が解決しようとする課題) 単純にプロセッサ台数ある通信レジスタをそれぞれの
並列処理に割り当てる方式では、システム資源の有効利
用に限界がある。例えば、並列処理を構成するあるプロ
セッサがI/Oを行ってその完了を待ち合わせすることが
ある。この場合、従来の方式では、I/Oを発光したプロ
セッサは完全に待ち状態になってしまう。このプロセッ
サと協調して並列処理を行っている他のプロセッサも、
しばらくは動作を続けられるが、I/O完了を待っている
プロセッサとの同期制御の時点で待ち状態になる。これ
らの待ち状態の期間に別の並列処理を実行できる。そこ
で、時間分割による多重化が並列処理の多重化に対して
も有効になってくる。
このような時分割による並列処理の多重化では、OSは
状況に応じて各プロセッサが行うプログラムを切り換え
ることによって、プログラムの多重化を実現する。この
時、ひとつの並列処理プログラム内の一連のプロセッサ
の動作をタスク(スレッドと呼んでいるシステムもあ
る)と呼ぶことにする。時分割による多重化を行わない
システムでは、そのプロセッサが始まる時点で各タスク
にプロセッサが割り当てられ、そのままの状態で最後ま
で処理が行われる。ところが、時分割に行う方式では、
タスクがI/O待ちなどの待ち状態になった時に、そのタ
スクを実行していたプロセッサを別のタスクに切り換え
ることにより、別の部分のプログラムを実行させること
が可能となる。この場合、ひと組の並列処理はいくつか
のタスクの並列処理として実行される。従って、通信レ
ジスタはタスクの組毎に割り当てる必要がある。
さて、時分割を行う並列処理の多重化方式では、タス
クの数がシステムに構成されているプロセッサ数を越え
る場合が存在する。従って、単純に考えれば通信レジス
タもプロセッサの数以上必要になる。必要な数は、同時
に実行可能な並列処理の数である。ただし、ここで言う
実行にはI/O待ちなどの短期的な待ち状態も含まれる。
第14図で並列処理の多重化についてもう少し細かく検
討する。第14図はA,B,Cの3つの並列処理が動作してい
る状況を示している。Aはタスク143が2個あり、両方
ともプロセッサ140を割り当てられて実行中である。B
は3つのタスク143を持っているが、2つは実行中でも
うひとつは待ち状態である。同じようにCは4のタスク
143を持ち、いずれのタスク143も待ち状態である。この
ように、それぞれの並列処理の実行状態は各タスク143
の実行状態の組み合わせ方によって3つの状態がある。
つまり、全タスクが実行のもの(A)と、全タスクが待
ち状態のもの(C)と、両方の状態のタスクがあるもの
(B)とである。この時、並列処理Aにはひとつの通信
レジスタ114を実際に割り当て、各タスク143からそれが
アクセスできる必要がある。同じように、並列処理Bに
もひとつの通信レジスタ144が必要である。しかし、待
ち状態のタスク143が通信レジスタ144をアクセスするこ
とがないから、再度実行する時にBの通信レジスタ144
が見えるようになることさえ保証されていれば、実際に
通信レジスタ144と接続されている必要はない。並列処
理Cは、いずれのタスク143も実行していないから、物
理的な通信レジスタ144は不要である。ただし、各タス
ク143が再度実行を開始する時は、全く同じイメージの
通信レジスタ144が見えなければならない。このCの通
信レジスタ144は、物理的な通信レジスタ144を使うこと
も可能であるが、内容を保持できればよいから、一般の
メモリに配置することもできる。メモリに内容を保持し
ておき、いずれかのタスクが動きだしたら、物理的な通
信レジスタ144を割り当て、それにメモリ内に保持され
ていた内容を複写してからそのタスク143を動作させれ
は良い。この並列処理Cの通信レジスタは仮想的な通信
レジスタ142と考えられる。
そこで本発明の通信レジスタ多重化方式は、プロセッ
サ台数しかない実存する通信レジスタである物理通信レ
ジスタを使って、それ以上の並列処理を時分割で多重化
できるように、物理通信レジスタと、必要な時にそのイ
メージを保持するメモリ上の仮想的な通信レジスタであ
る論理通信レジスタとを制御することを目的とする。
(課題を解決するための手段) 本発明の通信レジスタ多重化方式は、ユーザプログラ
ムの並列処理を可能としているマルチプロセッサシステ
ムをオペレーティングシステムに用いられる通信レジス
タ多重化方式であって、仮想的な通信レジスタである論
理通信レジスタの全てを空き状態にする論理通信レジス
タ初期化手段と、空き状態の論理通信レジスタをひとつ
取り出して使える状態にする論理通信レジスタ確保手段
と、プロセッサから見える通信レジスタを指定された論
理通信レジスタに切り替える論理通信レジスタ切換手段
と、使い終わった論理通信レジスタを空き状態に戻す論
理通信レジスタ解放手段と、実存する通信レジスタであ
る物理通信レジスタの全てを空き状態にする物理通信レ
ジスタ初期化手段と、前記論理通信レジスタ切換手段か
ら呼び出されて空き状態または保留状態の物理通信レジ
スタをひとつ取り出して使える状態にする物理通信レジ
スタ確保手段と、前記論理通信レジスタ切換手段と前記
論理通信レジスタ解放手段とから呼び出されてプロセッ
サから見える通信レジスタを指定された物理通信レジス
タに切り換える物理通信レジスタ切換手段とから構成さ
れる。
(実施例) 次に、本発明について図面を参照して詳細に説明す
る。第1図に示す様に、本発明の実施例は、仮想的な通
信レジスタである論理通信レジスタの全てを空き状態に
する論理通信レジスタ初期化手段11と、空き状態の論理
通信レジスタをひとつ取り出して使える状態にする論理
通信レジスタ確保手段12と、プロセッサから見える通信
レジスタを指定された論理通信レジスタに切り換える論
理通信レジスタ切換手段13と、使い終わった論理通信レ
ジスタを空き状態に戻す論理通信レジスタ解放手段14
と、実存する通信レジスタである物理通信レジスタの全
てを空き状態にする物理通信レジスタ初期化手段15と、
論理通信レジスタ切換手段13から呼び出されて空き状態
または保留状態の物理通信レジスタをひとつ取り出して
使える状態にする物理通信レジスタ確保手段16と、論理
通信レジスタ切換手段13と論理通信レジスタ解放手段14
とから呼び出されてプロセッサから見える通信レジスタ
を指定された物理通信レジスタに切り換える物理通信レ
ジスタ切換手段17とから構成される。
第2図は物理通信レジスタの状態遷移を示している。
各物理通信レジスタ20は常に以下の3種類の状態のいず
れかにある。すなわち、特定の論理通信レジスタと関係
なくどのプロセッサも使用していない空き状態21と、特
定の論理通信レジスタの内容を保持しているがどのプロ
セッサも使用していない保留状態22と、特定の論理通信
レジスタの内容を保持しておりいずれかのプロセッサが
使っている使用状態23とである。使用状態23は、さらに
1個使用中からN個(プロセッサ数)使用中まてのN個
の状態に細分される。この意味では、保留状態22は0個
使用中とも考えられる。なお、第2図中の疑似通信レジ
スタ24はプロセッサがこれに接続されていると、そのプ
ロセッサはいずれの通信レジスタにも接続されていない
ことを意味する仮想的な通信レジスタである。従って、
この概念を使わなくても同じような制御が可能である。
本発明では簡単のためにこの概念を使って説明する。
第3図は物理通信レジスタ初期化手段15の処理を示す
流れ図である。物理通信レジスタ初期化手段15は、ステ
ップ31で全ての物理通信レジスタを空き状態に登録し、
ステップ32で疑似通信レジスタをN個使用中に設定し、
ステップ33でプロセッサと通信レジスタとの切換スイッ
チを操作して各プロセッサをいずれの通信レジスタとも
接続されていない状態にする。なお、プロセッサが疑似
通信レジスタと関連づけられている時に間違ってユーザ
プログラムが通信レジスタをアクセスしないことが確実
であれば、プロセッサと通信レジスタとの接続を切る代
わりに任意の接続をした状態にしておいても問題がな
い。これは、以降のプロセッサと通信レジスタとの接続
を制御する場面でも同じである。
第4図は物理通信レジスタ確保手段16の処理を示す流
れ図がある。物理通信レジスタ確保手段16は、まずステ
ップ41で空き状態の物理通信レジスタを捜す。もし、空
き状態の物理通信レジスタがあった場合は、ステップ42
において、ステップ41で捜しだした物理通信レジスタを
保留状態に変更し、ステップ43において、ステップ41で
捜しだした物理通信レジスタの識別子を呼び出して元に
渡す。もし、空き状態の物理通信レジスタが無かった場
合には、ステップ44で、保留状態の物理通信レジスタを
捜す。もし、保留状態の物理通信レジスタがあった場合
は、ステップ43において、ステップ44で捜し出した物理
通信レジスタの識別子を呼び出して元に渡す。もし、保
留状態の物理通信レジスタが無かった場合は、ステップ
45で、その時点でそのプロセッサに接続されている物理
通信レジスタの識別子を検出し、ステップ43において、
ステップ45で検出した物理通信レジスタの識別子を呼び
出して元に渡す。
第5図は物理通信レジスタ切換手段17の処理を示す流
れ図である。物理通信レジスタ切換手段17は、ステップ
51で、その時点でそのプロセッサに接続されている物理
通信レジスタの識別子を検出し、ステップ52において、
ステップ51で検出した物理通信レジスタの状態をn個使
用中から(n−1)個使用中に変更する。なお、nは1
からNの間の数値であり、時によって違う値である。次
に、ステップ53で、呼び出し元から指定された物理通信
レジスタの状態をm個使用中から(m+1)個使用中に
変更する。なお、mは0から(N−1)の間の数値であ
り、時によって違う値である。最後に、ステップ54で呼
び出し元から指定された物理通信レジスタにそのプロセ
ッサを接続する。
第6図は論理通信レジスタの状態遷移を示す。各論理
通信レジスタ60は常に次に説明する3種類のいずれかの
状態にある。すなわち、特定のタスクから使われていな
い空き状態61と、いくつかのタスクから使われているが
そのイメージが特定の物理通信レジスタにロードされて
いない割り当て状態62と、いくつかのタスクから使われ
ていてそのイメージが特定の物理通信レジスタにロード
されている使用中の状態63とである。
第7図は論理通信レジスタ初期化手段11の処理を示す
流れ図である。論理通信レジスタ初期化手段11は、ステ
ップ71で、全ての論理通信レジスタを空き状態として登
録する。
第8図は論理通信レジスタ確保手段12の処理を示す流
れ図である。論理通信レジスタ確保手段12は、ステップ
81で、空き状態の論理通信レジスタをひとつ取り出し、
ステップ82において、ステップ81で取り出した論理通信
レジスタを割当状態に変更し、ステップ83において、ス
テップ81で取り出した論理通信レジスタの識別子を呼び
出して元に渡す。
第9図は論理通信レジスタ切換手段13の処理を示す流
れ図である。論理通信レジスタ切換手段13は、ステップ
91で、呼び出し元から指定された論理通信レジスタが使
用中であるかどうかを検査する。もし使用中でない時
は、物理通信レジスタ確保手段16を呼び出して空き状態
または保留状態の物理通信レジスタを取り出し、ステッ
プ92において、物理通信レジスタ確保手段16で取り出さ
れた物理通信レジスタがそのイメージを保持している使
用中の論理通信レジスタにあるかどうかを検索する。も
しある場合は、ステップ93において、物理通信レジスタ
確保手段16で取り出された物理通信レジスタの内容をス
テップ92で検索した物理通信レジスタに待避し、ステッ
プ94において、ステップ92で検索した論理通信レジスタ
の状態を割当状態に変更し、ステップ95において、呼び
出し元から指定された論理通信レジスタの内容を物理通
信レジスタ確保手段16で取り出された物理通信レジスタ
に復元し、ステップ96において、呼び出し元から指定さ
れた論理通信レジスタの状態を使用中状態に変更し、次
に物理通信レジスタ切換手段17を呼び出して、プロセッ
サを物理通信レジスタ確保手段16で取り出された物理通
信レジスタに接続する。ステップ92において物理通信レ
ジスタ確保手段16で取り出された物理通信レジスタがそ
のイメージを保持している使用中の論理通信レジスタに
無い場合は、ステップ95において、呼び出し元から指定
された論理通信レジスタの内容を物理通信レジスタ確保
手段16で取り出された物理通信レジスタに復元し、ステ
ップ96で、呼び出し元から指定された論理通信レジスタ
の状態を使用中状態に変更し、物理通信レジスタ切換手
段17を呼び出して、プロセッサを物理通信レジスタ確保
手段16で取り出された物理通信レジスタに接続する。も
し、ステップ91において呼び出し元から指定された論理
通信レジスタが使用中である時は、物理通信レジスタ切
換手段17を呼び出して、プロセッサを呼び出し元から指
定された論理通信レジスタの内容を保持している物理通
信レジスタに接続する。
第10図は論理通信レジスタ解放手段14の処理を示す流
れ図である。論理通信レジスタ解放手段14は、ステップ
101で、自プロセッサに接続されている論理通信レジス
タと呼び出し元から指定された論理通信レジスタとを比
較する。ふたつの論理通信レジスタが同じときは、物理
通信レジスタ切換手段17を呼び出して、プロセッサを疑
似通信レジスタに接続し、ステップ102で、呼び出し元
から指定された論理通信レジスタを空き状態にする。ス
テップ101においてふたつの論理通信レジスタが違うと
きは、ステップ102で、呼び出し元から指定された論理
通信レジスタを空き状態にする。
続いて、第11図を参照しながら、本発明の通信レジス
タ多重化方式を利用した並列処理の多重化の様子につい
て説明する。
まず、システム立ち上げ時に論理通信レジスタ初期化
手段11と物理通信レジスタ初期化手段15実行されて、通
信レジスタ制御のための初期化が完了する。
次に、並列処理プログラムが起動されると、そのプロ
グラムはまずひとつ目の並列処理を開始する。このと
き、複数のタスク111を生成すると同時に論理通信レジ
スタ確保手段12を使ってひとつの論理通信レジスタ110
を確保し、各タスク111は論理通信レジスタ切換手段13
を使ってその論理通信レジスタ110に接続される。この
状態が第11図の状態Aである。このとき論理通信レジス
タ確保手段12は、第8図を見て分かるように、論理通信
レジスタ(すなわち物理通信レジスタの退避域)を確保
し、その論理通信レジスタの状態を割り当て状態にする
だけである。そのあとの最初のタスクの論理通信レジス
タ切換手段13は、指定された論理通信レジスタが割り当
て状態で、まだ空き状態の物理通信レジスタがある状況
で実行される。従って、第4図に示されるように空き物
理通信レジスタがひとつ確保され、第9図に示されるよ
うに論理通信レジスタのイメージがその物理通信レジス
タに復元され、論理通信レジスタを使用中にし、第5図
に示されるように確保された物理通信レジスタにそのタ
スクが動作しているプロセッサを接続する。このとき、
以前に接続されていた物理通信レジスタ(この場合は疑
似通信レジスタ)の状態を(N−1)個使用中にし、逆
に、新しく接続された物理通信レジスタの状態を1個使
用中にする。ふたつめ以降のタスクの論理通信レジスタ
切換手段13実行時には、指定された論理通信レジスタは
使用中状態であるから、第9図に示されるようにその論
理通信レジスタのイメージを保持している物理通信レジ
スタ(すなわち最初のタスクに接続されている物理通信
レジスタ)に、各タスクを実行しているプロセッサが接
続される。このときも疑似通信レジスタと割り当てられ
た物理通信レジスタは必要な状態遷移をする。これらの
動作の結果、タスクを実行しているプロセッサはあるひ
とつの物理通信レジスタに接続されたことになる。
続いて、いずれかのタスクが論理通信レジスタ確保手
段12を呼び出してふたつ目の論理通信レジスタを確保す
る。この結果第11図の状態Bになる。このときの論理通
信レジスタ確保手段12も、第8図に示されるように、新
しい論理通信レジスタを確保するだけである。このと
き、ふたつ目の論理通信レジスタは割り当て状態にな
る。
続いて、別の並列処理を開始するタスクが、論理通信
レジスタ切換手段13を使って、アクセスできる通信レジ
スタをふたつ目の論理通信レジスタへ切り換える。この
結果第11図の状態Cになる。このとき論理通信レジスタ
切換手段13は、指定された論理通信レジスタが割り当て
状態であり、まだ空き状態の物理通信レジスタが存在す
る状態で実行される。従って、第4図に示されるよう
に、空き状態の物理通信レジスタがひとつ確保され、第
9図に示されるように、論理通信レジスタのイメージが
確保された物理通信レジスタに復元され、第5図に示さ
れるように、このタスクを実行しているプロセッサを新
しく確保された物理通信レジスタに接続する。このと
き、ふたつめの論理通信レジスタは使用中になり、ふた
つめの物理通信レジスタは1個使用中になる。逆に、ひ
とつめの物理通信レジスタは使用数がひとつ減る。この
結果、論理通信レジスタを切り換えるタスク以外のタス
クを実行しているプロセッサは、ひとつめの物理通信レ
ジスタに接続され、論理通信レジスタを切り換えたタス
クを実行しているプロセッサは、ふたつめ物理通信レジ
スタに接続された状態になる。
続いて、ふたつ目の並列処理に必要な数のタスクを生
成し、各タスクが論理通信レジスタ切換手段13によっ
て、ふたつめの論理通信レジスタに接続される。この結
果第11図の状態Dになる。ことのきの論理通信レジスタ
切換手段13は、指定された論理通信レジスタが使用中の
状況で実行される。従って、第9図と第5図に示される
ように、ふたつめの並列処理を構成するタスクを実行し
ているプロセッサは、ふたつめの物理通信レジスタに接
続される。この結果、ふたつの物理通信レジスタに、そ
れぞれいくつかのプロセッサが接続された状況になる。
この状態は、ふたつの並列処理が別々の物理通信レジス
タを使って同時進行している状態である。
ふたつ目の並列処理が終わると、ひとつだけタスクを
残して他のタスクは消滅する。この結果第11図の状態E
になる。タスク消滅時には、消滅するタスクを実行して
いたプロセッサは他の実行可能なタスクへのタスク切り
換えを行う。タスク切り換え処理では、切り換え先のタ
スクと接続されている論理通信レジスタへ通信レジスタ
を切り換えるために、論理通信レジスタ切換手段13が呼
び出される。一方、実行可能なタスクがないときは、プ
ロセッサはそのまま待ち状態になる。ここでは、実行可
能なタスクが無い状況を想定して説明を続ける。従っ
て、このタイミグては論理通信レジスタ切換手段13は実
行されず、プロセッサと物理通信レジスタとの接続関係
は変化しない。この関係が変化するのは、実行可能なタ
スクが出現して、そのタスクへのタスク切り換えが起こ
るときである。
続いて、残ったタスクが論理通信レジスタ切換手段13
を実行し、アクセスできる論理通信レジスタをひとつ目
の論理通信レジスタに切り換える。これによって、その
タスクはひとつ目の並列処理に復帰したことになる。こ
の結果第11図の状態Fになる。このときの論理通信レジ
スタ切換手段13は、切り換え先の論理通信レジスタ(す
なわちひとつめの論理通信レジスタ)が使用中状態で実
行される。従って、第9図と第5図に示されるように、
そのタスクを実行しているプロセッサがひとつめの論理
通信レジスタに割り当てられている物理通信レジスタに
接続される。
最後に、論理通信レジスタ解放手段14を呼び出して、
ふたつ目の論理通信レジスタを解放すると、完全にひと
つの並列処理のみの状態(第11図状態G)に戻る。この
とき論理通信レジスタ解放手段14は、解放される論理通
信レジスタとは別の論理通信レジスタに接続されたタス
ク上で実行されるから、第10図に示されるように、ふた
つめの論理通信レジスタを空き状態に遷移させるのみで
ある。
この要領で、何段階もの並列処理のネストも可能であ
るし、また、ひとつの並列処理を構成している複数のタ
スクがそれぞれ別々の並列処理を実行することもでき
る。ただし、このような多重化の結果、論理通信レジス
タの数がプロセッサ台数(すなわち、物理通信レジスタ
の数)を越えるような状況が発生する。そのような状況
でも、本発明の通信レジスタ多重化方式の使えば、通信
レジスタに関しては間違えなく動作する。以降この点に
ついてもう少し詳しく説明する。
第12図は、プロセッサが2台であり、物理通信レジス
タが2つであるシステムにおける、プロセッサ台数以上
の同時並列処理実行の様子を示したものである。状態O
は、ふたつのタスクからなる並列処理Aと3つのタスク
からなる並列処理Bが、同時進行してる状況である。何
もない状態からこの状態までの変化は第11図の説明の同
じ要領で行われる。
さて、状態Oで3番目の並列処理Cを開始するため
に、論理通信レジスタ確保手段12で3つ目の論理通信レ
ジスタを確保すると、状態1なる。ことのき、論理通信
レジスタ確保手段12は、第8図に示されるように、ひと
つ論理通信レジスタを確保しそれを保留状態にするのみ
である。従って、この時点ではプロセッサと物理通信レ
ジスタの接続状態は変化しない。
次に、並列処理Bのあるタスクが、並列処理Cを開始
するために、論理通信レジスタ切換手段13を実行する
と、状態2になる。このとき、論理通信レジスタ切換手
段13は、切り換え先の論理通信レジスタが保留中であ
り、物理通信レジスタが全て1個使用中であり、並列処
理Bで使われている論理通信レジスタに他の使用中のタ
スクがある状況で実行される。従って、第9図と第4図
と第5図に示されるように、並列処理Bに割り当てられ
ている物理通信レジスタはその内容を論理通信レジスタ
に退避し、並列処理C用に切り換えられる。このとき、
論理通信レジスタ切換手段13を呼び出したタスクを実行
しているプロセッサは、並列処理B用の物理通信レジス
タから並列処理C用の物理通信レジスタへ、物理通信レ
ジスタの接続を切り換える。ところが、切り換え後の並
列処理C用の物理通信レジスタは、切り換え前の並列処
理B用の物理通信レジスタであるから、結果としてプロ
セッサと物理通信レジスタとの接続関係は変化しない。
次に、並列処理Aの実行中のタスクがI/Oを発光してI
/O完了待ち状態になる場合の動作について説明する。こ
こでは、このとき並列処理Bのあるタスクが実行可能状
態であることを想定して説明する。この場合、I/Oを発
行したタスクを発行していたプロセッサは、実行可能状
態の並列処理Bのタスクへのタスク切り換えを実行す
る。この結果、システムは状態3になる。このときのタ
スク切り換えの中で、並列処理B用の論理通信レジスタ
指定で論理通信レジスタ切換手段13が呼び出される。指
定された並列処理B用論理通信レジスタは割り当て状態
であり、また全ての物理通信レジスタは1個使用中状態
であるから、状態1から状態2への動作と同様にして、
並列処理A用の通信レジスタイメージが退避され、並列
処理B用の論理通信レジスタイメージが復元される。I/
Oを発行したタスクを実行していたプロセッサは物理通
信レジスタを切り換えようとするが、やはり同じ物理通
信レジスタに接続されることになる。
このようにしてしばらく動作したあと、並列処理Cが
処理を終了するときの動作を説明をする。並列処理Cも
いくつかのタスクを生成して並列処理を行うが、最後は
並列処理Bに復帰するタスクのみを残して、他のタスク
は消滅する。この状況を状態3と考えて、以降の説明を
する。
並列処理Cの最後のタスクは、並列処理B用の論理通
信レジスタ指定で論理通信レジスタ切り換え手段13を実
行する。この結果、システムは状態4となる。このとき
は切り換え先の論理通信レジスタは既に使用中であり、
第9図と第5図が示すように、すでに並列処理B用とし
て使われている物理通信レジスタへそのプロセッサを接
続する。
最後に、論理通信レジスタ確保手段14を使って並列処
理C用の論理通信レジスタを解放すれば、状態5になっ
て並列処理Cは完全に終了したことになる。
このように、本発明の通信レジスタ多重化方式を使え
は、プロセッサ台数以上の並列処理を時間分割で同時進
行させても、すべての並列処理が通信レジスタを使って
正しく動作できる。
(発明の効果) 以上に説明したように、本発明の通信レジスタ多重化
方式の適用したシステムでは、物理通信レジスタと、必
要な時にそのイメージを保持するメモリ上の論理通信レ
ジスタとを制御することにより、プロセッサ台数しかな
い物理通信レジスタを使ってそれ以上の並列処理を時分
割で多重化することが可能となる。このとき、通信レジ
スタの要領拡大は、論理通信レジスタのイメージをメモ
リ上に保持することによって実現され、通信レジスタの
割り当ても並列処理毎に別々に論理通信レジスタを割り
当てることによって解決している。
本発明の通信レジスタ多重化方式を利用することによ
り、どのような並列化状況で呼び出されるか不明なサブ
ルーチンの内部に並列処理を記述したり、何重ものDOル
ープを複数レベルで同時に並列化することが可能とな
る。ただし、この可能となると言うのは、ひとつのプロ
セッサ内部にいくつかの並列処理を同時進行させても論
理的には正しく動作することを意味する。並列化による
プログラム実行の高速化の効果は、あくまでもプロセッ
サ台数までの効果しか期待できない。本発明の通信レジ
スタ多重化方式を使うと、プロセッサ台数を越えた並列
処理の多重化もプロセッサ台数の範囲内の多重化を同じ
方法で記述でき、実際にプロセッサ台数を越えた並列処
理を多重化が起こるときは、時間分割による多重化機構
の働かせることができる。
【図面の簡単な説明】
第1図は本発明の通信レジスタ多重化方式の構成を示す
ブロック図、第2図は物理通信レジスタの状態遷移図、
第3図は物理通信レジスタ初期化手段15の処理を示す流
れ図、第4図は物理通信レジスタ確保手段16の処理を示
す流れ図、第5図は物理通信レジスタ切換手段17の処理
を示す流れ図、第6図は論理通信レジスタの状態遷移
図、第7図は論理通信レジスタ初期化手段11の処理を示
す流れ図、第8図は論理通信レジスタ確保手段12の処理
を示す流れ図、第9図は論理通信レジスタ切換手段13の
処理を示す流れ図、第10図は論理通信レジスタ解放手段
14の処理を示す流れ図、第11図は本発明の通信レジスタ
多重化方式を利用した多重並列処理の動作を説明する
図、第12図は本発明の通信レジスタ多重化方式の利用し
たときのプロセッサ台数を越えた多重並列処理の動作を
説明する図、第13図は従来のハードウェアによる複数通
信レジスタ構成方式を示すブロック図、第14図は多重通
信レジスタ方式の簡単な概念を説明する図である。 11……論理通信レジスタ初期化手段、12……論理通信レ
ジスタ確保手段、13……論理通信レジスタ切換手段、14
……論理通信レジスタ解放手段、15……物理通信レジス
タ初期化手段、16……物理通信レジスタ確保手段、17…
…物理通信レジスタ切換手段。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】ユーザプログラムの並列処理を可能として
    いるマルチプロセッサシステムのオペレーティングシス
    テムに用いられる通信レジスタ多重化方式において、仮
    想的な通信レジスタである論理通信レジスタの全ての空
    き状態にする論理通信レジスタ初期化手段と、空き状態
    の論理通信レジスタをひとつ取り出して使える状態にす
    る論理通信レジスタ確保手段と、プロセッサから見える
    通信レジスタを指定された論理通信レジスタに切り換え
    る論理通信レジスタ切換手段と、使い終わった論理通信
    レジスタを空き状態に戻す論理通信レジスタ解放手段
    と、実存する通信レジスタである物理通信レジスタの全
    てを空き状態にする物理通信レジスタ初期化手段と、前
    記論理通信レジスタ切換手段から呼び出されて空き状態
    または保留状態の物理通信レジスタをひとつ取り出して
    使える状態にする物理通信レジスタ確保手段と、前記論
    理通信レジスタ切換手段と前記論理通信レジスタ解放手
    段とから呼び出されてプロセッサから見える通信レジス
    タを指定された物理通信レジスタに切り換える物理通信
    レジスタ切換手段とから構成されることを特徴とする通
    信レジスタ多重化方式。
JP2172918A 1990-06-29 1990-06-29 通信レジスタ多重化方式 Expired - Lifetime JP2973480B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2172918A JP2973480B2 (ja) 1990-06-29 1990-06-29 通信レジスタ多重化方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2172918A JP2973480B2 (ja) 1990-06-29 1990-06-29 通信レジスタ多重化方式

Publications (2)

Publication Number Publication Date
JPH0460864A JPH0460864A (ja) 1992-02-26
JP2973480B2 true JP2973480B2 (ja) 1999-11-08

Family

ID=15950767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2172918A Expired - Lifetime JP2973480B2 (ja) 1990-06-29 1990-06-29 通信レジスタ多重化方式

Country Status (1)

Country Link
JP (1) JP2973480B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189230B2 (en) 2004-03-31 2015-11-17 Intel Corporation Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution

Also Published As

Publication number Publication date
JPH0460864A (ja) 1992-02-26

Similar Documents

Publication Publication Date Title
US5524247A (en) System for scheduling programming units to a resource based on status variables indicating a lock or lock-wait state thereof
JP3557947B2 (ja) 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体
JP4750350B2 (ja) タスク切換装置、方法及びプログラム
US4914570A (en) Process distribution and sharing system for multiple processor computer system
US4829422A (en) Control of multiple processors executing in parallel regions
US9916172B2 (en) Method and apparatus for recovering lock holder preemption
CZ290434B6 (cs) Počítačový systém s koncepcí roząířené virtuální paměti
EP1820100B1 (en) Efficient switching between prioritized tasks
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
US20240086261A1 (en) Critical Section Speedup Using Help-Enabled Locks
US6581089B1 (en) Parallel processing apparatus and method of the same
JPH06243112A (ja) マルチプロセッサ装置
JP2973480B2 (ja) 通信レジスタ多重化方式
WO2018123707A1 (ja) 制御装置
JP2932547B2 (ja) 通信レジスタ仮想化方式
JP2009080820A (ja) タスク切換装置、方法及びプログラム
JPH02210542A (ja) 仮想計算機システムにおける実行制御方式
JPS6097440A (ja) 仮想多重プロセツサ装置
JP7196439B2 (ja) 仮想化環境におけるデバイスへのアクセス方法
JP2585905B2 (ja) マルチタスク実行装置
JPS603229B2 (ja) 情報処理方式
JPH0363768B2 (ja)
JP3585956B2 (ja) 情報処理装置及びその方法
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JPS635790B2 (ja)

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 11