JPH0460864A - Communication register multiplexing system - Google Patents

Communication register multiplexing system

Info

Publication number
JPH0460864A
JPH0460864A JP2172918A JP17291890A JPH0460864A JP H0460864 A JPH0460864 A JP H0460864A JP 2172918 A JP2172918 A JP 2172918A JP 17291890 A JP17291890 A JP 17291890A JP H0460864 A JPH0460864 A JP H0460864A
Authority
JP
Japan
Prior art keywords
communication register
register
logical
physical
physical communication
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
JP2172918A
Other languages
Japanese (ja)
Other versions
JP2973480B2 (en
Inventor
Hisayuki Aoki
青木 久幸
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2172918A priority Critical patent/JP2973480B2/en
Publication of JPH0460864A publication Critical patent/JPH0460864A/en
Application granted granted Critical
Publication of JP2973480B2 publication Critical patent/JP2973480B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To multiplex parallel processing more than physical communication register through a time division system by using the physical communication registers of only the same number as the number of processors by controlling the physical communication register and a logical communication register on a memory to hold the image of the physical communication register as occasion demands. CONSTITUTION:A logical communication register initializing means 11 to make all the logical communication registers into an idle state, a logical communication register securing means 12 to take out one of the logical communication registers in the idle state and make it into a usable state, a logical communication register change-over means 13, a logical communication register releasing means 14 to return the logical communication register after use to the idle state, and a physical communication register initializing means 15 to turn all the physical communication register to the idle state are provided. Further, a physical communication register securing means 16 to take out one of the physical communication registers and turn it to the usable state and a physical communication register change-over means 17 to change a communication register to the designated physical communication register are provided. Thus, the parallel processing more than the physical communication registers is multiplexed by the time division system by using the physical communication register of the actually existing communication register of only the same number as the number of processors.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、ユーザプログラムの並列処理を可能としてい
るマルチプロセッサシステムのオペレーティングシステ
ムに用いられ、並列処理を行う各ユーザプログラムに通
信レジスタを割り当てるときの通信レジスタ多重化方式
に関する。
Detailed Description of the Invention (Industrial Application Field) The present invention is used in an operating system of a multiprocessor system that enables parallel processing of user programs, and when allocating communication registers to each user program that performs parallel processing. This invention relates to a communication register multiplexing method.

(従来の技術) ユーザプログラムの並列処理は、ユーザプログラムの要
求に応じて複数のプロセッサを同時にひとつのユーザプ
ログラムに割り当てることによって実現される。しかし
、各プロセッサは最初から最後まで完全に独立に動作で
きる訳ではない。これは、各プロセッサが扱うデータに
依存関係が存在するためである。ここに、プロセッサ間
の同期を制御する必要が出てくる。
(Prior Art) Parallel processing of user programs is realized by simultaneously assigning a plurality of processors to one user program according to the requests of the user program. However, each processor cannot operate completely independently from beginning to end. This is because there is a dependency relationship between the data handled by each processor. Here, it becomes necessary to control synchronization between processors.

粒度の小さい並列処理においては、プロセッサ間の同期
制御に要する時間と同期を取らないで並列動作可能なプ
ログラム部分の処理に要する時間とが近すいてくる。も
し、同期制御に要する時間のほうが長くなると、プログ
ラム全体の実行時間は同期制御に要する時間が支配的に
なってくる。
In parallel processing with small granularity, the time required for synchronization control between processors becomes closer to the time required to process program parts that can operate in parallel without synchronization. If the time required for synchronous control becomes longer, the time required for synchronous control becomes dominant in the overall program execution time.

つまり、ある程度以上プログラムを並列化しても、同期
制御の回数が増えるために並列化の効果を同期制御のオ
ーバヘッドが食いつぶしてしまい、はとんど性能が向上
しなくなる。どの程度の粒度までの並列化が性能を向上
させるかは、そのシステムの同期制御に要する時間に依
存する。この時間が短いほど、より小さな粒度までの並
列化が効果を持つようになる。従って、より高速な並列
処理を行うためには、プロセッサ間の同期制御に要する
時間をなるべく短くする必要がある。
In other words, even if a program is parallelized to a certain extent, the overhead of synchronization control will eat up the effect of parallelization because the number of times synchronization control will increase, and performance will hardly improve. The degree of granularity in which parallelization improves performance depends on the time required for synchronous control of the system. The shorter this time, the more effective parallelization down to finer granularity becomes. Therefore, in order to perform faster parallel processing, it is necessary to reduce the time required for synchronization control between processors as much as possible.

通常のシステムにおいては、プロセッサ間の同期制御は
オペレーティングシステム(以降O8と略す)が担当し
ている。同期制御を行う場合は、そのプロセッサはOS
コール(スーパバイザコール、システムコールなどと呼
ばれている)を行いO8内部の同期制御を実現している
部分を呼び出す。しかし、この方式では同期制御を行う
部分をいくら高速に動作させてもOSコールが課金の制
御など他の動作を同時に行うから、全体としてはかなり
時間のかかる処理になる。
In a normal system, an operating system (hereinafter abbreviated as O8) is in charge of synchronization control between processors. When performing synchronous control, the processor
A call (called a supervisor call, system call, etc.) is made to call the part that implements synchronous control inside O8. However, in this method, no matter how fast the part that performs synchronous control operates, the OS call simultaneously performs other operations such as billing control, so the process as a whole takes a considerable amount of time.

そこで、同期制御に要する時間を極力短縮するために考
案されたのが、通信レジスタを使って同期制御を行う方
式である。マルチプロセッサシステムにおいては、普通
のレジスタは各プロセッサが別々のセットを持っている
。これに対して通信レジスタは複数のプロセッサから参
照可能なレジスタである。共有メモリのレジスタ版と考
えられる。アクセス性能は一般の共有メモリよりは高速
であるが、一般のレジスタよりは低速である。こ一・ 
 4 れ龜、複数のプロセッサからのアクセスの排他制御が必
要であるからである。また、その容量は共有メモリより
はかなり少なく、一般のレジスタと同程度の容量である
。通信レジスタのアクセスは通信レジスタアクセス用の
特殊な命令で行われる。
Therefore, in order to reduce the time required for synchronous control as much as possible, a method was devised to perform synchronous control using communication registers. In multiprocessor systems, each processor has a separate set of common registers. On the other hand, a communication register is a register that can be referenced by multiple processors. It can be thought of as a register version of shared memory. Access performance is faster than general shared memory, but slower than general registers. Koichi・
4. This is because exclusive control of access from multiple processors is required. Furthermore, its capacity is considerably smaller than that of shared memory, and is comparable in capacity to that of a general register. Access to the communication register is performed using a special instruction for communication register access.

さて、この通信レジスタを使った同期制御は以下のよう
に行われる。一方のプロセッサは、通信レジスタ内のあ
るビットをチエツクして、そのビットがオンになるまで
チエツクを繰り返す。これをスピンロックと呼ぶ。他方
のプロセッサはある条件が整うとそのビットをオンにす
る。すると、スピンロックをしていたプロセッサは先へ
進むことができる。重要な点は、この通信レジスタはユ
ーザプログラム(−Fンバイラのオブジェクト)が直接
アクセスできることである。つまり、同期制御のために
O8を呼び出す必要がなくなる。このために、かなり高
速な同期制御が実現できる。なお、この方法は一般に共
有メモリでも実現できるが、通信レジスタは共有メモリ
よりもかなり高速なので、通信レジスタを用いることに
より、より高速な同期制御が可能となる。
Now, synchronization control using this communication register is performed as follows. One processor checks a bit in the communications register and repeats the check until that bit is turned on. This is called a spinlock. The other processor turns on that bit when a certain condition is met. The processor holding the spinlock can then proceed. The important point is that this communication register can be directly accessed by the user program (object of the -F module). In other words, there is no need to call O8 for synchronization control. For this reason, fairly high-speed synchronous control can be achieved. Note that this method can generally be implemented using a shared memory, but since a communication register is much faster than a shared memory, using a communication register enables faster synchronization control.

プロセッサ台数が多くなってくると、ひとつのユーザプ
ログラムが同時に複数の独立した並列処理を行いたい場
合が出てくる。例えば、並列処理プログラムの規模が大
きくなり、いくつかの部分プログラムに分けて開発をす
るときなど(こ、この要求が発生する。大きなプログラ
ムでは、その部分プログラムにも並列処理を行えるもの
があり、並列化可能な部分をそれぞれ並列化すると、結
果としである並列処理の中で別の並列処理が行われるよ
うなことになる。これを並列処理の多重化と呼ぶ。並列
処理の多重化は、並列処理を構成しているひとつのプロ
グラムがさらに別の並列処理を開始するときに発生する
。このような並列処理の多重化が行われると、それぞれ
の並列処理毎に独立な同期制御が必要になる。各並列処
理の同期制御も高速なほうが有利なので、できれば通信
レジスタを使いたい。ところが、これを実現するために
は、それぞれの並列処理用に別々の通信レジスタの領域
が必要になる。並列処理の多重度が多くなってくると、
ひと組の通信レジスタに収まらなくなる。また、通信レ
ジスタ上の領域を各並列処理に割り当てる作業が発生す
る。このように、通信レジスタを使った並列処理を多重
化するときは、通信レジスタの容量と割り当ての問題を
解決する必要がある。
As the number of processors increases, a user program may want to perform multiple independent parallel processes at the same time. For example, when the scale of a parallel processing program becomes large and it is developed by dividing it into several partial programs, this requirement occurs.In large programs, some of the partial programs can also perform parallel processing. When each part that can be parallelized is parallelized, the result is that another parallel process is performed within one parallel process. This is called multiplexing of parallel processes. Multiplexing of parallel processes is This occurs when one program that is part of a parallel process starts another parallel process.When such parallel processes are multiplexed, independent synchronization control is required for each parallel process. Since it is advantageous to have faster synchronization control for each parallel process, I would like to use communication registers if possible.However, in order to achieve this, separate communication register areas are required for each parallel process.Parallel As the degree of multiplicity of processing increases,
It will no longer fit in one set of communication registers. In addition, work is required to allocate an area on the communication register to each parallel process. In this way, when multiplexing parallel processing using communication registers, it is necessary to solve the problem of capacity and allocation of communication registers.

以上のような並列処理の多重化を意識した通信レジスタ
として、第13図に示すハードウェア方式が提案されて
いる。通信レジスタはプロセッサと同じ台数である。各
プロセッサ130は自分が参叩できる通信レジスタ13
2を切換スイッチ131で選択できる。逆に、現在どの
通信レジスタに接続されているかを知ることができる。
A hardware system shown in FIG. 13 has been proposed as a communication register that takes into account the multiplexing of parallel processing as described above. The number of communication registers is the same as the number of processors. Each processor 130 has a communication register 13 that it can access.
2 can be selected using the selector switch 131. Conversely, it is possible to know which communication register the device is currently connected to.

なお、この接続通信レジスタを知る機能は、通信レジス
タを切り換える時にその情報を蓄えておくことにより、
ソフトウェアでも実現できる。第13図のようなハード
ウェアを使えば、各プロセッサの組毎に別々の通信レジ
スタを持たせることはそれほど難しくない。ひとつの並
列処理をあるプロセッサの組に割り当てるときに切換ス
イッチを操作して、その組の各プロセッサが全て同じ通
信レジスタを参照できるようにすればよい。ただし、他
の並列処理とは別の通信レジスタを割り当てる必要があ
る。並列処理の通信レジスタアクセスは、切換スイッチ
の操作も不要なので、性能も劣化しない。この方式では
、通信レジスタをプロセッサ台数用意することによって
通信レジスタの容量を増やし、並列処理毎に別々の通信
レジスタを割り当てることにより通信レジスタ割り当て
の問題を解決している。すなわち、並列処理毎に専用の
通信レジスタをひと組確保できる。
This function to know the connection communication register is possible by storing the information when switching the communication register.
This can also be achieved with software. If hardware such as that shown in FIG. 13 is used, it is not difficult to provide separate communication registers for each set of processors. When assigning one parallel process to a certain set of processors, a changeover switch may be operated so that all processors in the set can refer to the same communication register. However, it is necessary to allocate a communication register separate from other parallel processing. Parallel processing communication register access does not require operation of a changeover switch, so performance does not deteriorate. In this method, the capacity of the communication register is increased by preparing communication registers for the number of processors, and the problem of communication register allocation is solved by allocating a separate communication register for each parallel process. In other words, one set of dedicated communication registers can be secured for each parallel process.

(発明が解決しようとする課題) 単純にプロセッサ台数ある通信レジスタをそれぞれの並
列処理に割り当てる方式では、システム資源の有効利用
に限界がある。例えば、並列処理を構成するあるプロセ
ッサがIloを行ってその完了を待ち合わせることかあ
る。この場合、従来の方式では、Iloを発行したプロ
セッサは完全に待ち状態になってしまう。このプロセッ
サと協調して並列処理を行っている他のプロセッサも、
しばらくは動作を続けられるが、I10完了を待ってい
るプロセッサとの同期制御の時点で待ち状態になる。こ
れらの待ち状態の期間に別の並列処理を実行できる。そ
こで、時間分割による多重化が並列処理の多重化に対し
ても有効になってくる。
(Problems to be Solved by the Invention) A method of simply allocating communication registers from a number of processors to each parallel process has a limit to the effective use of system resources. For example, a certain processor that constitutes parallel processing may perform Ilo and wait for its completion. In this case, in the conventional method, the processor that issued Ilo ends up completely in a waiting state. Other processors that perform parallel processing in cooperation with this processor also
Although it can continue to operate for a while, it enters a waiting state at the time of synchronization control with the processor waiting for I10 to complete. Other parallel processing can be performed during these wait states. Therefore, multiplexing by time division becomes effective for multiplexing parallel processing.

このような時分割による並列処理の多重化では、O8は
状況に応じて各プロセッサが行うプログラムを切り換え
ることによって、プログラムの多重化を実現する。この
時、ひとつの並列処理プログラム内の一連のプロセッサ
の動作をタスク(スレッドと呼んでいるシステムもある
)と呼ぶことにする。時分割による多重化を行わないシ
ステムでは、そのプログラムが始まる時点で各タスクに
プロセッサが割り当てられ、そのままの状態で最後まで
処理が行われる。ところが、時分割を行う方式では、タ
スクがI10待ちなどの待ち状態になった時に、そのタ
スクを実行していたプロセッサを別のタスクに切り換え
ることにより、別の部分のプログラムを実行させること
が可能となる。この場合、ひと組の並列処理はいくつか
のタスクの並列動作として実行される。従って、通信レ
ジスタはタスクの組毎に割り当てる必要がある。
In such time-sharing multiplexing of parallel processing, the O8 realizes program multiplexing by switching the programs executed by each processor depending on the situation. At this time, a series of processor operations within one parallel processing program is called a task (some systems call it a thread). In systems that do not use time-sharing multiplexing, a processor is assigned to each task at the beginning of the program, and processing continues in that state until the end. However, in the time-sharing method, when a task enters a waiting state such as waiting for I10, it is possible to execute another part of the program by switching the processor that was executing that task to another task. becomes. In this case, a set of parallel processing is performed as parallel operations of several tasks. Therefore, it is necessary to allocate a communication register to each set of tasks.

さて、時分割を行う並列処理の多重化方式では、タスク
の数がシステムに構成されているプロセッサ数を越える
場合が存在する。従って、単純に考えれば通信レジスタ
もプロセッサの数似上必要になる。必要な数は、同時に
実行可能な並列処理の数である。ただし、ここで言う実
行にはI10待ちなどの短期的な待ち状態も含まれる。
Now, in the multiplexing method of parallel processing that performs time division, there are cases where the number of tasks exceeds the number of processors configured in the system. Therefore, if you think about it simply, communication registers are also required because of the number of processors. The required number is the number of parallel processes that can be executed simultaneously. However, the execution referred to here also includes short-term waiting states such as waiting for I10.

第14図で並列処理の多重化についてもう少し細かく検
討する。第14図はA、B、Cの3つの並列処理が動作
している状況を示している。Aはタスク143が2個あ
り、両方ともプロセッサ140を割り当てられて実行中
である。Bは3つのタスク143を持っているが、2つ
は実行中でもうひとつは待ち状態である。同じようにC
は4のタスク143を持ち、いずれのタスク143も待
ち状態であるにのように、それぞれの並列処理の実行状
態は各タスク143の実行状態の組み合わせ′方によっ
て3つの状態がある。つまり、全タスクが実行のもの(
A)と、全タスクが待ち状態のもの(C)と、両方の状
態のタスクがあるもの(B)とである、この時、並列処
理Aにはひとつの通信レジスタ144を実際に割り当て
、各タスク143からそれがアクセスできる必要がある
In Figure 14, multiplexing of parallel processing will be considered in more detail. FIG. 14 shows a situation where three parallel processes A, B, and C are operating. A has two tasks 143, both of which are being executed by the processor 140. B has three tasks 143, two of which are running and the other is in a waiting state. Similarly C
has four tasks 143, and all tasks 143 are in a waiting state.There are three execution states for each parallel process depending on the combination of the execution states of each task 143. In other words, all tasks are executed (
A), one in which all tasks are in the waiting state (C), and one in which there are tasks in both states (B). At this time, one communication register 144 is actually allocated to parallel processing A, and each It needs to be accessible from task 143.

同じように、並列処理Bにもひとつの通信レジスタ14
4が必要である。しかし、待ち状態のタスク143は通
信レジスタ144をアクセスすることがないから、再度
実行する時にBの通信レジスタ144が見えるようにな
ることさえ保証されていれば、実際に通信レジスタ14
4と接続されている必要はない。並列処理Cは、いずれ
のタスク143も実行していないから、物理的な通信レ
ジスタ144は不要である。ただし、各タスク143が
再度実行を開始する時は、全く同じイメージの通信レジ
スタ144が見えな仕ればならない。このCの通信レジ
スタ144は、物理的な通信レジスタ144を使うこと
も可能であるが、内容を保持できればよいから、一般の
メモリに配置することもできる。メモリに内容を保持し
ておき。
Similarly, parallel processing B also has one communication register 14.
4 is required. However, since the task 143 in the waiting state never accesses the communication register 144, if it is guaranteed that B's communication register 144 will be visible when it is executed again, the communication register 144 will actually be accessed.
It does not need to be connected to 4. Since parallel processing C does not execute any task 143, the physical communication register 144 is not required. However, when each task 143 starts execution again, the communication register 144 with exactly the same image must be visible. Although it is possible to use a physical communication register 144 as the communication register 144 of C, it is also possible to place it in a general memory as long as it can hold the contents. Keep the contents in memory.

いずれかのタスクが動きだしたら、物理的な通信レジス
タ144を割り当て、それにメモリ内に保持されていた
内容を複写してからそのタスク!43を動作させれば良
い。この並列処理Cの通信レジスタは仮想的な通信レジ
スタ142と考えられる。
When any task starts running, allocate the physical communication register 144, copy the contents held in memory to it, and then start the task! All you have to do is operate 43. The communication register for this parallel processing C is considered to be a virtual communication register 142.

そこで本発明の通信レジスタ多重化方式は、プロセッサ
台数しかない実存する通信レジスタである物理通信レジ
スタを使って、それ以上の並列処理を時分割で多重化で
きるように、物理通信レジスタと、必要な時にそのイメ
ージを保持するメモリ上の仮想的な通信レジスタである
論理通信レジスタとを制御することを目的とする。
Therefore, the communication register multiplexing method of the present invention uses the physical communication register, which is an existing communication register that only exists in the number of processors, and uses the physical communication register and the necessary The purpose of this is to control the logical communication register, which is a virtual communication register on the memory that holds the image.

(課題を解決するための手段) 本発明の通信レジスタ多重化方式は、ユーザプログラム
の並列処理を可能としているマルチプロセッサシステム
のオペレーティングシステムに用いられる通信レジスタ
多重化方式であって、仮想的な通信レジスタである論理
通信レジスタの全てを空き状態にする論理通信レジスタ
初期化手段と、空き状態の論理通信レジスタをひとつ取
り出して使える状態にする論理通信レジスタ確保手段と
、プロセッサから見える通信レジスタを指定された論理
通信レジスタに切り替える論理通信レジスタ切換手段と
、使い終わった論理通信レジスタを空き状態に戻す論理
通信レジスタ解放手段と、実存する通信レジスタである
物理通信レジスタの全てを空き状態にする物理通信レジ
スタ初期化手段と、前記論理通信レジスタ切換手段から
呼び出なれて空き状態または保留状態の物理通信レジス
タをひとつ取り出して使える状態にする物理通信レジス
タ確保手段と、前記論理通信レジスタ切換手段と前記論
理通信レジスタ解放手段とから呼び出されてプロセッサ
から見える通信レジスタを指定された物理通信レジスタ
に切り換える物理通信レジスタ切換手段とから構成され
る。
(Means for Solving the Problems) The communication register multiplexing method of the present invention is a communication register multiplexing method used in the operating system of a multiprocessor system that enables parallel processing of user programs, and is a communication register multiplexing method that is used for virtual communication A logical communication register initialization means that makes all the logical communication registers that are registers empty, a logical communication register securing means that takes out one free logical communication register and makes it usable, and a communication register that is visible to the processor is specified. a logical communication register switching means for switching to a logical communication register that has been used; a logical communication register release means for returning a logical communication register that has been used to an empty state; and a physical communication register that turns all existing physical communication registers into an empty state. initialization means; physical communication register securing means that is called by the logical communication register switching means to take out one physical communication register that is in an empty state or a pending state and makes it usable; the logical communication register switching means and the logical communication register securing means; and physical communication register switching means that is called from register release means and switches a communication register visible to the processor to a specified physical communication register.

(実施例)               、次に、本
発明について図面を参照して詳細に説明する。第1図に
示す様に、本発明の実施例は、仮想的な通信レジスタで
ある論理通信レジスタの全てを空き状態にする論理通信
レジスタ初期化手段11と、空き状態の論理通信レジス
タをひとつ取り出して使える状態にする論理通信レジス
タ確保手段12と、プロセッサから見える通信レジスタ
を指定された論理通信レジスタに切り換える論理通信レ
ジスタ切換手段13と、使い終わった論理通信レジスタ
を空き状態に戻す論理通信レジスタ解放手段14と、実
存する通信レジスタである物理通信レジスタの全てを空
き状態にする物理通信レジスタ初期化手段15と、論理
通信レジスタ切換手段13から呼び出されて空き状態ま
たは保留状態の物理通信レジスタをひとつ取り出して使
える状態にする物理通信レジスタ確保手段16と、論理
通信レジスタ切換手段13と論理通信レジスタ解放手段
14とから呼び出されてプロセッサから見える通信レジ
スタを指定された物理通信レジスタに切り換える物理通
信レジスタ切換手段17とから構成される。
(Example) Next, the present invention will be described in detail with reference to the drawings. As shown in FIG. 1, the embodiment of the present invention includes a logical communication register initialization means 11 that makes all logical communication registers, which are virtual communication registers, empty, and takes out one empty logical communication register. logical communication register securing means 12 for making the logical communication register available for use; logical communication register switching means 13 for switching the communication register visible from the processor to a specified logical communication register; and logical communication register release means for returning the used logical communication register to an empty state. means 14, physical communication register initialization means 15 which makes all of the physical communication registers which are existing communication registers empty, and one physical communication register which is called from the logical communication register switching means 13 and is in an empty state or a pending state. Physical communication register securing means 16 that takes out and makes it usable, and physical communication register switching that is called by logical communication register switching means 13 and logical communication register release means 14 and switches the communication register visible from the processor to a specified physical communication register. It consists of means 17.

第2図は物理通信レジスタの状態遷移を示している。各
物理通信レジスタ20は常に以下の3種類の状態のいず
れかにある。すなわち、特定の論理通信レジスタと関係
なくどのプロセッサも使用していない空き状態21と、
特定の論理通信レジスタの内容を保持しているかどのプ
ロセッサも使用していない保留状態22と、特定の論理
通信レジスタの内容を保持しておりいずれかのプロセッ
サが使っている使用状態23とである。使用状態23は
、さらに1個使用中からN個(プロセッサ数)使用中ま
でのN個の状態に細分される。この意味では、保留状態
22は0個使用中とも考えられる。なお、第2図中の疑
似通信レジスタ24はプロ・セッサがこれに接続されて
いると、そのプロセッサはいずれの通信レジスタにも接
続されていないことを意味する仮想的な通信レジスタで
ある。
FIG. 2 shows the state transition of the physical communication register. Each physical communication register 20 is always in one of the following three states. That is, an empty state 21 that is not used by any processor regardless of the specific logical communication register;
A pending state 22 holds the contents of a specific logical communication register and is not used by any processor, and a used state 23 holds the contents of a specific logical communication register and is used by any processor. . The usage state 23 is further subdivided into N states from 1 in use to N in use (the number of processors). In this sense, zero pending state 22 can be considered to be in use. The pseudo communication register 24 in FIG. 2 is a virtual communication register which means that when a processor is connected to it, the processor is not connected to any communication register.

従って、この概念を使わなくても同じような制御が可能
である。本発明では簡単のためにこの概念を使って説明
する。
Therefore, similar control is possible without using this concept. The present invention will be explained using this concept for simplicity.

第3図は物理通信レジスタ初期化手段15の処理を示す
流れ図である。物理通信レジスタ初期化手段15は、ス
テップ31で全ての物理通信レジスタを空き状態に登録
し、ステップ32で疑似通信レジスタをN個使用中に設
定し、ステップ33でプロセッサと通信レジスタとの切
換スイッチを操作して各プロセッサをいずれの通信レジ
スタとも接続されていない状態にする。なお、プロセッ
サが疑似通信レジスタと関連づけられている時に間違っ
てユーザ10グラムが通信レジスタをアクセスしないこ
とが確実であれば、プロセッサと通信レジスタとの接続
を切る代わりに任意の接続をした状態にしておいても問
題がない。これば、以降のプロセッサと通信レジスタと
の接続を制御する場面でも同じである。
FIG. 3 is a flowchart showing the processing of the physical communication register initialization means 15. The physical communication register initialization means 15 registers all the physical communication registers in an empty state in step 31, sets N pseudo communication registers in use in step 32, and sets the changeover switch between the processor and the communication register in step 33. to make each processor disconnected from any communication register. If you are sure that the user will not access the communication register by mistake when the processor is associated with the pseudo communication register, you can leave an arbitrary connection instead of disconnecting the processor and the communication register. There is no problem even if you leave it there. This also applies to the subsequent scenes where the connection between the processor and the communication register is controlled.

第4図は物理通信レジスタ確保手段16の処理を示す流
れ図である。物理通信レジスタ確保手段16は、まずス
テップ41で空き状態の物理通信レジスタを捜す。もし
、空き状態の物理通信レジスタがあった場合は、ステッ
プ42において、ステップ41で捜しだした物理通信レ
ジスタを保留状態に変更し、ステップ43において、ス
テップ41で捜しだした物理通信レジスタの識別子を呼
び出して元に渡す。もし、空き状態の物理通信レジスタ
が無かった場合には、ステップ44で、保留状態の物理
通信レジスタを捜す。もし、保留状態の物理通信レジス
タかあった場合は、ステップ43において、ステップ4
4で捜し出した物理通信レジスタの識別子を呼び出して
元に渡す。もし、保留状態の物理通信レジスタが無かっ
た場合は、ステップ45で、その時点でそのプロセッサ
に接続されている物理通信レジスタの識別子を検出し、
ステップ43において、ステップ45で検出した物理通
信レジスタの識別子を呼び出して元に渡す。
FIG. 4 is a flowchart showing the processing of the physical communication register securing means 16. The physical communication register securing means 16 first searches for an empty physical communication register in step 41. If there is an empty physical communication register, in step 42 the physical communication register found in step 41 is changed to a pending state, and in step 43 the identifier of the physical communication register found in step 41 is changed to a pending state. Call it and pass it on. If there is no vacant physical communication register, a pending physical communication register is searched for in step 44. If there is a pending physical communication register, in step 43, step 4
The identifier of the physical communication register found in step 4 is called and passed to the source. If there is no pending physical communication register, in step 45, the identifier of the physical communication register connected to the processor at that time is detected;
In step 43, the identifier of the physical communication register detected in step 45 is called and passed to the source.

第5図は物理通信レジスタ切換手段17の処理を示す流
れ図である。物理通信レジスタ切換手段17は、ステッ
プ51で、その時点でそのプロセッサに接続されている
物理通信レジスタの識別子を検出し、ステップ52にお
いて、ステップ51で検出した物理通信レジスタの状態
をn個使用中から(n−1>個使用中に変更する。なお
、nは1からNの間の数値であり、時によって違う値で
ある。次に、ステップ53で、呼び出し元から指定され
た物理通信レジスタの状態をm個使用中がら(m+1>
個使用中に変更する。なお、mは0から(N−1)の間
の数値であり、時によって違う値である。最後に、ステ
ップ54で呼び出し元から指定された物理通信レジスタ
にそのプロセッサを接続する。
FIG. 5 is a flow chart showing the processing of the physical communication register switching means 17. In step 51, the physical communication register switching means 17 detects the identifier of the physical communication register connected to the processor at that time, and in step 52, the state of the physical communication register detected in step 51 is changed to n in use. (n-1> is changed while in use. Note that n is a number between 1 and N, and the value differs depending on the time. Next, in step 53, the physical communication register specified by the caller is changed. While using m states of (m+1>
change while in use. Note that m is a numerical value between 0 and (N-1), and varies depending on the time. Finally, in step 54, the processor is connected to the physical communication register specified by the caller.

第6図は論理通信レジスタの状態遷移を示す。FIG. 6 shows the state transition of the logical communication register.

各論理通信レジスタ60は常に次に説明する3種類のい
ずれかの状態にある。すなわち、特定のタスクから使わ
れていない空き状態61と、いくつかのタスクから使わ
れているがそのイメージが特定の物理通信レジスタにロ
ードされていない割り当て状態62と、いくつかのタス
クがら使われていてそのイメージが特定の物理通信レジ
スタにロードされている使用中の状態63とである。
Each logical communication register 60 is always in one of three states described below. That is, an empty state 61 that is not used by a specific task, an allocated state 62 that is used by some tasks but whose image is not loaded into a specific physical communication register, and an unused state 62 that is not used by some tasks. In-use state 63, where the image is being loaded into a particular physical communication register.

第7図は論理通信レジスタ初期化手段11の処理を示す
流れ図である6論理通信レジスタ初期化手段11は、ス
テップ71で、全ての論理通信レジスタを空き状態とし
て登録する。
FIG. 7 is a flowchart showing the processing of the logical communication register initializing means 11. In step 71, the logical communication register initializing means 11 registers all the logical communication registers as empty.

第8図は論理通信レジスタ確保手段12の処理を示す流
れ図である。論理通信レジスタ確保手段12は、ステッ
プ81で、空き状態の論理通信レジスタをひとつ取り出
し、ステップ82において、ステップ81で取り出した
論理通信レジスタを割当状態に変更し、ステップ83に
おいて、ステップ81で取り出した論理通信レジスタの
識別子を呼び出して元に渡す。
FIG. 8 is a flowchart showing the processing of the logical communication register securing means 12. The logical communication register securing means 12 takes out one free logical communication register in step 81, changes the logical communication register taken out in step 81 to an allocated state in step 83, and changes the logical communication register taken out in step 81 to an allocated state in step 83. Calls the logical communication register identifier and passes it to the source.

第9図は論理通信レジスタ切換手段13の処理を示す流
れ図である。論理通信レジスタ切換手段13は、ステッ
プ91で、呼び出し元から指定された論理通信レジスタ
が使用中であるかどうかを検査する。もし使用中でない
時は、物理通信レジスタ確保手段16を呼び出して空き
状態または保留状態の物理通信レジスタを取り出し、ス
テップ92において、物理通信レジスタ確保手段16で
取り出された物理通信レジスタがそのイメージを保持し
ている使用中の論理通信レジスタにあるかどうかを検索
する。もしある場合は、ステップ93において、物理通
信レジスタ確保手段16で取り出された物理通信レジス
タの内容をステップ92で検索した物理通信レジスタに
待避し、ステップ94において、ステップ92で検索し
た論理通信レジスタの状態を割当状態に変更し、ステッ
プ95において、呼び出し元から指定された論理通信レ
ジスタの内容を物理通信レジスタ確保手段16で取り出
された物理通信レジスタに復元し。
FIG. 9 is a flow chart showing the processing of the logical communication register switching means 13. In step 91, the logical communication register switching means 13 checks whether the logical communication register specified by the caller is in use. If it is not in use, the physical communication register securing means 16 is called to take out the physical communication register in an empty or pending state, and in step 92, the physical communication register taken out by the physical communication register securing means 16 retains its image. Logical communications registers that are currently in use. If there is, in step 93, the contents of the physical communication register retrieved by the physical communication register securing means 16 are saved in the physical communication register retrieved in step 92, and in step 94, the contents of the physical communication register retrieved in step 92 are saved. The state is changed to the allocated state, and in step 95, the contents of the logical communication register specified by the caller are restored to the physical communication register taken out by the physical communication register securing means 16.

ステップ96において、呼び出し元から指定された論理
通信レジスタの状態を使用中状態に変更し、次に物理通
信レジスタ切換手段17を呼び出して、プロセッサを物
理通信レジスタ確保手段16で取り出された物理通信レ
ジスタに接続する。ステップ92において物理通信レジ
スタ確保手段16で取り出された物理通信レジスタがそ
のイメージを保持している使用中の論理通信レジスタに
無い場合は、ステップ95において、呼び出し元から指
定された論理通信レジスタの内容を物理通信レジスタ確
保手段16で取り出された物理通信レジスタに復元し、
ステップ96で、呼び出し元から指定された論理通信レ
ジスタの状態を使用中状態に変更し、物理通信レジスタ
切換手段17を呼び出して、プロセッサを物理通信レジ
スタ確保手段16で取り出された物理通信レジスタに接
続する。
In step 96, the state of the logical communication register specified by the caller is changed to the in-use state, and then the physical communication register switching means 17 is called to transfer the processor to the physical communication register taken out by the physical communication register securing means 16. Connect to. If the physical communication register retrieved by the physical communication register securing means 16 in step 92 is not in the logical communication register in use that holds its image, the content of the logical communication register specified by the caller is determined in step 95. is restored to the physical communication register taken out by the physical communication register securing means 16,
In step 96, the state of the logical communication register specified by the caller is changed to the in-use state, the physical communication register switching means 17 is called, and the processor is connected to the physical communication register taken out by the physical communication register securing means 16. do.

もし、ステップ91において呼び出し元から指定された
論理通信レジスタが使用中である時は、物理通信レジス
タ切換手段17を呼び出して1.プロセッサを呼び出し
元から指定された論理通信レジスタの内容を保持してい
る物理通信レジスタに接続する。
If the logical communication register specified by the caller is in use in step 91, the physical communication register switching means 17 is called. Connects the processor to the physical communication register holding the contents of the logical communication register specified by the caller.

第10図は論理通信レジスタ解放手段14の処理を示す
流れ図である。論理通信レジスタ解放手段14は、ステ
ップ101で、自プロセッサに接続されている論理通信
レジスタと呼び出し元から指定された論理通信レジスタ
とを比較する。ふたつの論理通信レジスタが同じときは
、物理通信レジスタ切換手段17を呼び出して、プロセ
・ンサを疑似通信レジスタに接続し、ステップ102で
、呼び出し元から指定された論理通信レジスタを空き状
態にする。ステップ101においてふたつの論理通信レ
ジスタが違うときは、ステップ102でζ−鳴び出し元
から指定された論理通信レジスタを空き状態にする。
FIG. 10 is a flowchart showing the processing of the logical communication register release means 14. In step 101, the logical communication register release means 14 compares the logical communication register connected to its own processor with the logical communication register specified by the caller. If the two logical communication registers are the same, the physical communication register switching means 17 is called to connect the processor to the pseudo communication register, and in step 102, the logical communication register specified by the caller is made vacant. If the two logical communication registers are different in step 101, then in step 102 the logical communication register specified by the ζ-sounding source is made vacant.

続いて、第11図を参照しながら、本発明の通信レジス
タ多重化方式を利用した並列処理の多重化の様子につい
て説明する。
Next, with reference to FIG. 11, a description will be given of how parallel processing is multiplexed using the communication register multiplexing method of the present invention.

まず、システム立ち上げ時に論理通信レジスタ初期化手
段11と物理通信レジスタ初期化手段15実行されて、
通信レジスタ制御のための初期化が完了する。
First, when starting up the system, the logical communication register initialization means 11 and the physical communication register initialization means 15 are executed.
Initialization for communication register control is completed.

次に、並列処理プログラムが起動されると、そのプログ
ラムはまずひとつ目の並列処理を開始する。このとき、
複数のタスク111を生成すると同時に論理通信レジス
タ確保手段12を使ってひとつの論理通信レジスタ11
0を確保し、各タスク111は論理通信レジスタ切換手
段13を使ってその論理通信レジスタ110に接続され
る。この状態が第11図の状態Aである。このとき論理
通信レジスタ確保手段12は、第8図を見て分かるよう
に、論理通信レジスタ(すなわち物理通信レジスタの退
避域)を確保し、その論理通信レジスタの状態を割り当
て状態にするだけである。
Next, when the parallel processing program is started, the program starts the first parallel processing. At this time,
While generating multiple tasks 111, one logical communication register 11 is created using the logical communication register securing means 12.
0 is secured, and each task 111 is connected to its logical communication register 110 using the logical communication register switching means 13. This state is state A in FIG. At this time, as can be seen from FIG. 8, the logical communication register securing means 12 only secures a logical communication register (that is, a save area for the physical communication register) and changes the state of the logical communication register to the allocated state. .

そのあとの最初のタスクの論理通信レジスタ切換El’
段13は、指定された論理通信レジスタが割り当て状態
で、まだ空き状態の物理通信レジスタかある状況で実行
される。従って、第4図に示されるように空き物理通信
レジスタがひとつ確保され第9図に示されるように論理
通信レジスタのイメージかその物理通信レジスタに復元
され、論理通信レジスタを使用中にし、第5図に示され
るように確保された物理通信レジスタにそのタスクが動
作しているプロセッサを接続する。このとき、以前に接
続されていた物理通信レジスタ(この場合は疑似通信レ
ジスタ)の状態を(N〜1)個使用中にし、逆に、新し
く接続された物理通信レジスタの状態をla使用中にす
る。ふたつめ以降のタスクの論理通信レジスタ切換手段
13実行時には、指定された論理通信レジスタは使用中
状態であるから、第9図に示されるようにその論理通信
レジスタのイメージを保持している物理通信レジスタ(
すなわち最初のタスクに接続されている物理通信レジス
タ)に、各タスクを実行しているプロセッサが接続され
る。このときも疑似通信レジスタと割り当てられた物理
通信レジスタは必要な状態遷移をする。これらの動作の
結果、タスクを実行しているプロセッサはあるひとつの
物理通信レジスタに接続されたことになる。
Logical communication register switching El' for the first task after that
Stage 13 is executed in a situation where the specified logical communication register is in the allocated state and there are still some physical communication registers in the free state. Therefore, one free physical communication register is secured as shown in FIG. 4, the image of the logical communication register is restored to that physical communication register as shown in FIG. The processor on which the task is running is connected to the physical communication register secured as shown in the figure. At this time, the state of the previously connected physical communication registers (pseudo communication registers in this case) is set to (N to 1) in use, and conversely, the state of the newly connected physical communication register is set to la in use. do. When the logical communication register switching means 13 of the second and subsequent tasks is executed, the specified logical communication register is in use, so as shown in FIG. 9, the physical communication register holding the image of the logical communication register is register(
In other words, the processor executing each task is connected to the physical communication register connected to the first task. At this time as well, the pseudo communication register and the assigned physical communication register undergo necessary state transitions. As a result of these operations, the processor executing the task becomes connected to a certain physical communication register.

続いて、いずれかのタスクか論理通信レジスタ確保手段
12を呼び出してふたつ目の論理通信レジスタを確保す
る。この結果第11図の状態Bになる。このときの論理
通信レジスタ確保手段12も、第8図に示されるように
、新しい論理通信レジスタを確保するたけである。この
とき、ふたつ目の論理通信レジスタは割り当て状態にな
る。
Next, one of the tasks calls the logical communication register securing means 12 to secure the second logical communication register. As a result, state B in FIG. 11 is reached. The logical communication register securing means 12 at this time also only secures a new logical communication register, as shown in FIG. At this time, the second logical communication register becomes allocated.

続いて、別の並列処理を開始するタスクが、論理通信レ
ジスタ切換手段13を使って、アクセスできる通信レジ
スタをふたつ目の論理通信レジスタへ切り換える。この
結果第11図の状態Cになる。このときの論理通信レジ
スタ切換手段13は、指定された論理通信レジスタが割
り当て状態であり、まだ空き状態の物理通信レジスタが
存在する状態で実行される。従って、第4図に示される
ように、空き状態の物理通信レジスタがひとつ確保され
、第9図に示されるように、論理通信レジスタのイメー
ジが確保された物理通信レジスタに復元され、第5図に
示されるように、このタスクを実行しているプロセッサ
を新しく確保された物理通信レジスタに接続する。この
とき、ふたつめの論理通信レジスタは使用中になり、ふ
たつめの物理通信レジスタは1個使用中になる。逆に、
ひとつめの物理通信レジスタは使用数がひとつ減る。
Subsequently, a task that starts another parallel process uses the logical communication register switching means 13 to switch the accessible communication register to the second logical communication register. As a result, state C in FIG. 11 is reached. At this time, the logical communication register switching means 13 is executed in a state where the designated logical communication register is in the allocated state and there are still empty physical communication registers. Therefore, as shown in FIG. 4, one free physical communication register is secured, and as shown in FIG. 9, the image of the logical communication register is restored to the secured physical communication register, and as shown in FIG. Connect the processor executing this task to the newly allocated physical communication register, as shown in . At this time, the second logical communication register is in use, and one of the second physical communication registers is in use. vice versa,
The number of uses of the first physical communication register decreases by one.

この結果、論理通信レジスタを切り換えたタスク以外の
タスクを実行しているプロセッサは、ひとつめの物理通
信レジスタに接続され、論理通信レジスタを切り換えた
タスクを実行しているプロセッサは、ふたつめの物理通
信レジスタに接続された状態になる。
As a result, a processor running a task other than the task that switched the logical communication register will be connected to the first physical communication register, and a processor running the task that switched the logical communication register will be connected to the second physical communication register. It will be connected to the communication register.

続いて、ふたつ目の並列処理に必要な数のタスクを生成
し、各タスクが論理通信レジスタ切換手段13によって
、ふなつめの論理通信レジスタに接続される。この結果
第11図の状態りになる。
Subsequently, the number of tasks necessary for the second parallel processing is generated, and each task is connected to the second logical communication register by the logical communication register switching means 13. As a result, the state shown in FIG. 11 is obtained.

このときの論理通信レジスタ切換手段13は、指定され
た論理通信レジスタが使用中の状況で実行される。従っ
て、第9図と第5図に示されるように、ふなつめの並列
処理を構成するタスクを実行しているプロセッサは、ふ
たつめの物理通信レジスタに接続される。この結果、ふ
たつの物理3ff!信レジスタに、それぞれいくつかの
プロセッサが接続された状況になる。この状態は、ふた
つの並列処理が別々の物理通信レジスタを使って同時進
行している状態である。
At this time, the logical communication register switching means 13 is executed when the designated logical communication register is in use. Therefore, as shown in FIGS. 9 and 5, the processors executing the tasks that make up the second parallel process are connected to the second physical communication register. As a result, two physics 3ff! A situation arises in which several processors are connected to each of the communication registers. In this state, two parallel processes are progressing simultaneously using separate physical communication registers.

ふたつ目の並列処理が終わると、ひとつだけタスクを残
して他のタスクは消滅する。この結果第11図の状態E
になる。タスク消滅時には、消滅するタスクを実行して
いたプロセッサは他の実行可能なタスクへのタスク切り
換えを行う。タスク切り換え処理では、切り換え先のタ
スクと接続されている論理通信レジスタへ通信レジスタ
を切り換えるために、論理通信レジスタ切換手段13が
呼び出される。一方、実行可能なタスクがないときは、
プロセッサはそのまま待ち状態になる。ここでは、実行
可能なタスクが無い状況を想定して説明を続ける。従っ
て、このタイミグては論理通信レジスタ切換手段13は
実行されず、プロセッサと物理通信レジスタとの接続関
係は変化しない。
When the second parallel process finishes, all tasks disappear, leaving only one task behind. As a result, state E in Figure 11
become. When a task disappears, the processor that was executing the disappearing task switches to another executable task. In the task switching process, the logical communication register switching means 13 is called in order to switch the communication register to the logical communication register connected to the task to which the task is to be switched. On the other hand, when there are no executable tasks,
The processor remains in a waiting state. Here, the explanation will be continued assuming a situation where there are no executable tasks. Therefore, at this timing, the logical communication register switching means 13 is not executed, and the connection relationship between the processor and the physical communication register does not change.

この間係が変化するのは、実行可能なタスクが出現して
、そのタスクへのタスク切り換えが起こるときである。
This relationship changes when an executable task appears and a task switch to that task occurs.

続いて、残ったタスクが論理通信レジスタ切換手段13
を実行し、アクセスできる論理通信レジスタをひとつ目
の論理通信レジスタに切り換える。
Subsequently, the remaining tasks are transferred to the logical communication register switching means 13.
Execute and switch the accessible logical communication register to the first logical communication register.

これによって、そのタスクはひとつ目の並列処理に復帰
したことになる。この結果第11図の状態Fになる。こ
のときの論理通信レジスタ切換手段13は、切り換え先
の論理通信レジスタ(すなわちひとつめの論理通信レジ
スタ)が使用中状態で実行される。従って、第9図と第
5図に示されるように、そのタスクを実行しているプロ
セッサがひとつめの論理通信レジスタに割り当てられて
いる物理通信レジスタに接続される。
This means that the task has returned to the first parallel processing. As a result, state F in FIG. 11 is reached. At this time, the logical communication register switching means 13 is executed while the switching destination logical communication register (ie, the first logical communication register) is in use. Therefore, as shown in FIGS. 9 and 5, the processor executing the task is connected to the physical communication register that is assigned to the first logical communication register.

最後に、論理通信レジスタ解放手段14を呼び出して、
ふたつ目の論理通信レジスタを解放すると、完全にひと
つの並列処理のみの状態(第11図状態G)に戻る。こ
のとき論理通信レジスタ解放手段14は、解放される論
理通信レジスタとは別の論理通信レジスタに接続された
タスク上で実行されるから、第10図に示されるように
、ふたつめの論理通信レジスタを空き状態に遷移させる
のみである。
Finally, call the logical communication register release means 14,
When the second logical communication register is released, the state returns to a state where only one parallel processing is performed (state G in FIG. 11). At this time, the logical communication register release means 14 is executed on a task connected to a logical communication register other than the logical communication register to be released, so as shown in FIG. It simply transitions to the free state.

この要領で、何段階もの並列処理のネストも可能である
し、また、ひとつの並列処理を構成している複数のタス
クがそれぞれ別々の並列処理を実行することもできる。
In this way, it is possible to nest multiple levels of parallel processing, and multiple tasks constituting one parallel processing can each execute separate parallel processing.

ただし、このような多重化の結果、論理通信レジスタの
数がプロセッサ台数(すなわち、物理通信レジスタの数
)を越えるような状況が発生する。そのような状況でも
、本発明の通信レジスタ多重化方式を使えば、通信レジ
スタに関しては間違えなく動作する。以降この点につい
てもう少し詳しく説明する。
However, as a result of such multiplexing, a situation occurs in which the number of logical communication registers exceeds the number of processors (ie, the number of physical communication registers). Even in such a situation, if the communication register multiplexing method of the present invention is used, the communication registers will operate without error. This point will be explained in more detail below.

第12図は、プロセッサが2台であり、物理通信レジス
タが2つであるシステムにおける、プロア セッー7台数以上の同時並列処理実行の様子を示したも
のである。状態Oは、ふたつのタスクからなる並列処理
Aと3つのタスクからなる並列処理Bが、同時進行して
いる状況である。何もない状態からこの状態までの変化
は第11図の説明と同じ要領で行われる。
FIG. 12 shows how simultaneous parallel processing is executed by seven or more processors in a system having two processors and two physical communication registers. State O is a situation in which parallel processing A consisting of two tasks and parallel processing B consisting of three tasks are progressing simultaneously. The change from the empty state to this state is performed in the same manner as described in FIG. 11.

さて、状態0で3番目の並列処理Cを開始するために、
論理通信レジスタ確保手段12で3つ目の論理通信レジ
スタを確保すると、状態1になる。
Now, in order to start the third parallel processing C in state 0,
When the third logical communication register is secured by the logical communication register securing means 12, the state becomes state 1.

このとき、論理通信レジスタ確保手段12は、第8図に
示されるように、ひとつ論理通信レジスタを確保しそれ
を保留状態にするのみである.従って、この時点ではプ
ロセッサと物理通信レジスタの接続状態は変化しない。
At this time, the logical communication register securing means 12 only secures one logical communication register and puts it in a pending state, as shown in FIG. Therefore, at this point, the connection state between the processor and the physical communication register does not change.

次に、並列処理Bのあるタスクが、並列処理Cを開始す
るために、論理通信レジスタ切換手段13を実行すると
、状態2になる。このとき、論理通信レジスタ切換手段
13は、切り換え先の論理通信レジスタが保留中であり
、物理通信レジスタが全て1個使用中であり、並列処理
Bで使われている論理通信レジスタに他に使用中のタス
クがある状況で実行される。従って、第9図と第4図と
第5図に示されるように、並列処理Bに割り当てられて
いた物理通信レジスタはその内容を論理通信レジスタに
退避し、並列処理C用に切り換えられる。このとき、論
理通信レジスタ切換手段13を呼び出したタスクを実行
しているプロセッサは、並列処理B用の物理通信レジス
タから並列処理C用の物理通信レジスタへ、物理通信レ
ジスタの接続を切り換える。ところが、切り換え後の並
列処理C用の物理通信レジスタは、切り換え前の並列処
理B用の物理通信レジスタであるから、結果としてプロ
セッサと物理通信レジスタとの接続関係は変化しない。
Next, when a certain task of parallel processing B executes the logical communication register switching means 13 in order to start parallel processing C, state 2 is entered. At this time, the logical communication register switching means 13 determines that the logical communication register to be switched to is pending, all the physical communication registers are in use, and the logical communication register used in parallel processing B is used for other logical communication registers. The task inside is executed in a certain situation. Therefore, as shown in FIGS. 9, 4, and 5, the physical communication register assigned to parallel processing B saves its contents to the logical communication register and is switched to parallel processing C. At this time, the processor executing the task that called the logical communication register switching means 13 switches the connection of the physical communication register from the physical communication register for parallel processing B to the physical communication register for parallel processing C. However, since the physical communication register for parallel processing C after switching is the physical communication register for parallel processing B before switching, the connection relationship between the processor and the physical communication register does not change as a result.

次に、並列処理Aの実行中のタスクがT10を発行して
I10完了待ち状態になる場合の動作について説明する
。ここでは、このとき並列処理Bのあるタスクが実行可
能状態であることを想定して説明する。この場合、Il
oを発行したタスクを実行していたプロセッサは、実行
可能状態の並列処理Bのタスクへのタスク切り換えを実
行する。
Next, an explanation will be given of the operation when a task currently executing parallel processing A issues T10 and enters the I10 completion wait state. Here, the description will be made assuming that a certain task of parallel processing B is in an executable state at this time. In this case, Il
The processor that was executing the task that issued o executes task switching to the task of parallel processing B that is in an executable state.

この結果、システムは状態3になる。このときのタスク
切り換えの中で、並列処理B用の論理通信レジスタ指定
で論理通信レジスタ切換手段13が呼び出される。指定
された並列処理B用論理通信レジスタは割り当て状態で
あり、また全ての物理通信レジスタは1個使用中状態で
あるから、状態1から状態2への動作と同様にして、並
列処理A用の通信レジスタイメージが退避され、並列処
理B用の論理通信レジスタイメージが復元される。
This results in the system being in state 3. During task switching at this time, the logical communication register switching means 13 is called with the logical communication register designation for parallel processing B. The specified logical communication register for parallel processing B is in the allocated state, and one physical communication register is in use, so in the same way as from state 1 to state 2, the register for parallel processing A is The communication register image is saved, and the logical communication register image for parallel processing B is restored.

Iloを発行したタスクを実行していたプロセッサは物
理通信レジスタを切り換えようとするが、やはり同じ物
理通信レジスタに接続されることになる。
The processor that was executing the task that issued Ilo tries to switch physical communication registers, but it still ends up being connected to the same physical communication register.

このようにしてしばらく動作したあと、並列処理Cが処
理を終了するときの動作を説明をする。
After operating in this way for a while, the operation when the parallel processing C ends the processing will be explained.

並列処理Cもいくつかのタスクを生成して並列処理を行
うが、最後は並列処理Bに復帰するタスクのみを残して
、他のタスクは消滅する。この状況を状態3と考えて、
以降の説明をする。
Parallel processing C also generates several tasks and performs parallel processing, but in the end, only the task that returns to parallel processing B remains, and the other tasks disappear. Considering this situation as state 3,
I will explain the following.

並列処理Cの最後のタスクは、並列処理B用の論理通信
レジスタ指定で論理通信レジスタ切り換え手段13を実
行する。この結果、システムは状態4となる。このとき
は切り換え先の論理通信レジスタは既に使用中であり、
第9図と第5図か示すように、すでに並列処理B用とし
て使われている物理通信レジスタへそのプロセッサを接
続する。
The last task of the parallel processing C executes the logical communication register switching means 13 by specifying the logical communication register for the parallel processing B. As a result, the system enters state 4. At this time, the logical communication register to which the switch is made is already in use.
As shown in FIGS. 9 and 5, the processor is connected to the physical communication register already used for parallel processing B.

最後に、論理通信レジスタ確保手段14を使って並列処
理C用の論理通信レジスタを解放すれば、状態5になっ
て並列処理Cは完全に終了したことになる。
Finally, if the logical communication register securing means 14 is used to release the logical communication register for parallel processing C, state 5 is reached and parallel processing C is completely completed.

このように、本発明の通信レジスタ多重化方式を使えば
、プロセッサ台数以上の並列処理を時間分割で同時進行
させても、すべての並列処理か通信レジスタを使って正
しく動作できる。
In this way, if the communication register multiplexing method of the present invention is used, even if parallel processing of a number greater than the number of processors is performed simultaneously in a time-divided manner, all parallel processing or communication registers can be used to operate correctly.

(発明の効果) 以上に説明したように、本発明の通信レジスタ多重化方
式を適用したシステムでは、物理通信レジスタと、必要
な時にそのイメージを保持するメモリ上の論理通信レジ
スタとを制御することによす、プロセッサ台数しかない
物理通信レジスタを使ってそれ以上の並列処理を時分割
で多重化することが可能となる。このとき、通信レジス
タの要領拡大は、論理通信レジスタのイメージをメモリ
上に保持することによって実現され、通信レジスタの割
り当ても並列処理毎に別々の論理通信レジスタを割り当
てることによって解決している。
(Effects of the Invention) As explained above, in the system to which the communication register multiplexing method of the present invention is applied, it is possible to control the physical communication register and the logical communication register on the memory that holds the image when necessary. According to this, it becomes possible to time-division multiplex parallel processing using physical communication registers that are limited to the number of processors. At this time, the expansion of the communication register capacity is achieved by holding an image of the logical communication register in memory, and the allocation of communication registers is solved by allocating a separate logical communication register for each parallel process.

本発明の通信レジスタ多重化方式を利用することにより
、どのような並列化状況で呼び出されるか不明なサブル
ーチンの内部に並列処理を記述したり、何重ものDOル
ープを複数レベルで同時に並列化することが可能となる
。ただし、この可能となると言うのは、ひとつのプログ
ラム内部にいくつかの並列処理を同時進行させても論理
的には正しく動作することを意味する。並列化によるプ
ログラム実行の高速化の効果は、あくまでもプロセッサ
台数までの効果しか期待できない。本発明の通信レジス
タ多重化方式を使うと、プロセッサ台数を越えた並列処
理の多重化もプロセッサ台数の範囲内の多重化と同じ方
法で記述でき、実際にプロセッサ台数を越えた並列処理
の多重化が起こるときは、時間分割による多重化機構を
働かせることができる。
By using the communication register multiplexing method of the present invention, parallel processing can be written inside a subroutine whose parallelization situation is unknown, and multiple DO loops can be parallelized at multiple levels simultaneously. becomes possible. However, being able to do this means that it will logically work correctly even if several parallel processes are performed simultaneously within one program. The effect of speeding up program execution through parallelization can only be expected to increase up to the number of processors. By using the communication register multiplexing method of the present invention, multiplexing of parallel processing exceeding the number of processors can be described in the same way as multiplexing within the range of the number of processors, and in fact, multiplexing of parallel processing exceeding the number of processors can be described. When this occurs, a time-division multiplexing mechanism can be used.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の通信レジスタ多重化方式の構成を示す
ブロック図、第2図は物理通信レジスタの状態遷移図、
第3図は物理通信レジスタ初期化手段15の処理を示す
流れ図、第4図は物理通信レジスタ確保手段16の処理
を示す流れ図、第5図は物理通信レジスタ切換手段17
の処理を示す流れ図、第6図は論理通信レジスタの状態
遷移図、第7図は論理通信レジスタ初期化手段11の処
理を示す流れ図、第8図は論理通信レジスタ確保手段1
2の処理を示す流れ図、第9図は論理通信レジスタ切換
手段13の処理を示す流れ図、第10図は論理通信レジ
スタ解放手段14の処理を示す流れ図、第11図は本発
明の通信レジスタ多重化方式を利用した多重並列処理の
動作を説明する図、第12図は本発明の通信レジスタ多
重化方式を利用−=Yときのプロセ・2す台数を越えた
多重並列処理の動作を説明する図、第13図は従来のハ
ードウェアによる複数通信レジスタ構成方式を示すブロ
ック図、第14図は多重通信レジスタ方式の簡単な概念
を説明する図である。 11・・・論理通信レジスタ初期化手段、12・・・論
理通信レジスタ確保手段、13・・・論理通信レジスタ
切換手段、14・・・論理通信レジスタ解放手段、15
・・・物理通信レジスタ初期化手段、16・・・物理通
信レジスタ確保手段、17・・・物理通信レジスタ切換
手段。
FIG. 1 is a block diagram showing the configuration of the communication register multiplexing system of the present invention, FIG. 2 is a state transition diagram of the physical communication register,
3 is a flowchart showing the processing of the physical communication register initialization means 15, FIG. 4 is a flowchart showing the processing of the physical communication register securing means 16, and FIG. 5 is a flowchart showing the processing of the physical communication register switching means 17.
6 is a state transition diagram of the logical communication register, FIG. 7 is a flowchart showing the processing of the logical communication register initialization means 11, and FIG. 8 is a flowchart showing the processing of the logical communication register securing means 1.
9 is a flowchart showing the processing of the logical communication register switching means 13, FIG. 10 is a flowchart showing the processing of the logical communication register release means 14, and FIG. 11 is the communication register multiplexing of the present invention. FIG. 12 is a diagram explaining the operation of multiple parallel processing using the communication register multiplexing method of the present invention when the number of processes exceeds 2 when -=Y. , FIG. 13 is a block diagram showing a conventional hardware-based multiple communication register configuration system, and FIG. 14 is a diagram explaining a simple concept of the multiple communication register system. 11...Logic communication register initialization means, 12...Logic communication register securing means, 13...Logic communication register switching means, 14...Logic communication register release means, 15
. . . Physical communication register initialization means, 16 . . . Physical communication register securing means, 17 . . . Physical communication register switching means.

Claims (1)

【特許請求の範囲】[Claims]  ユーザプログラムの並列処理を可能としているマルチ
プロセッサシステムのオペレーティングシステムに用い
られる通信レジスタ多重化方式において、仮想的な通信
レジスタである論理通信レジスタの全てを空き状態にす
る論理通信レジスタ初期化手段と、空き状態の論理通信
レジスタをひとつ取り出して使える状態にする論理通信
レジスタ確保手段と、プロセッサから見える通信レジス
タを指定された論理通信レジスタに切り換える論理通信
レジスタ切換手段と、使い終わった論理通信レジスタを
空き状態に戻す論理通信レジスタ解放手段と、実存する
通信レジスタである物理通信レジスタの全てを空き状態
にする物理通信レジスタ初期化手段と、前記論理通信レ
ジスタ切換手段から呼び出されて空き状態または保留状
態の物理通信レジスタをひとつ取り出して使える状態に
する物理通信レジスタ確保手段と、前記論理通信レジス
タ切換手段と前記論理通信レジスタ解放手段とから呼び
出されてプロセッサから見える通信レジスタを指定され
た物理通信レジスタに切り換える物理通信レジスタ切換
手段とから構成されることを特徴とする通信レジスタ多
重化方式。
In a communication register multiplexing method used in an operating system of a multiprocessor system that enables parallel processing of user programs, a logical communication register initialization means for setting all logical communication registers that are virtual communication registers to an empty state; Logical communication register securing means takes out one free logical communication register and makes it usable; logical communication register switching means switches the communication register visible from the processor to a designated logical communication register; a logical communication register release means that returns all of the physical communication registers that are existing communication registers to an empty state; and a physical communication register initialization means that is called from the logical communication register switching means to return to an empty state or a pending state. A physical communication register securing means that takes out one physical communication register and makes it usable, and a communication register that is called by the logical communication register switching means and the logical communication register release means and switches the communication register visible to the processor to the specified physical communication register. A communication register multiplexing method comprising physical communication register switching means.
JP2172918A 1990-06-29 1990-06-29 Communication register multiplexing method Expired - Lifetime JP2973480B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2172918A JP2973480B2 (en) 1990-06-29 1990-06-29 Communication register multiplexing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2172918A JP2973480B2 (en) 1990-06-29 1990-06-29 Communication register multiplexing method

Publications (2)

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

Family

ID=15950767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2172918A Expired - Lifetime JP2973480B2 (en) 1990-06-29 1990-06-29 Communication register multiplexing method

Country Status (1)

Country Link
JP (1) JP2973480B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012094175A (en) * 2004-03-31 2012-05-17 Intel Corp Method and system for providing user-level multithreading

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012094175A (en) * 2004-03-31 2012-05-17 Intel Corp Method and system for providing user-level multithreading
JP2012160202A (en) * 2004-03-31 2012-08-23 Intel Corp Method and system for providing user-level multithreading
CN102779024A (en) * 2004-03-31 2012-11-14 英特尔公司 method and system to provide user-level multithreading
JP2014112438A (en) * 2004-03-31 2014-06-19 Intel Corp Method and system for providing user-level multithreading
JP2014222533A (en) * 2004-03-31 2014-11-27 インテル コーポレイション Method and system for providing user-level multithreading
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
JP2017027627A (en) * 2004-03-31 2017-02-02 インテル コーポレイション Method and system for providing user-level multithreading
US10585667B2 (en) 2004-03-31 2020-03-10 Intel Corporation Method and system to provide user-level multithreading
US10613858B2 (en) 2004-03-31 2020-04-07 Intel Corporation Method and system to provide user-level multithreading
US10628153B2 (en) 2004-03-31 2020-04-21 Intel Corporation Method and system to provide user-level multithreading
US10635438B2 (en) 2004-03-31 2020-04-28 Intel Corporation Method and system to provide user-level multithreading

Also Published As

Publication number Publication date
JP2973480B2 (en) 1999-11-08

Similar Documents

Publication Publication Date Title
US4914570A (en) Process distribution and sharing system for multiple processor computer system
JP3557947B2 (en) Method and apparatus for simultaneously starting thread execution by a plurality of processors and computer-readable recording medium
US5056000A (en) Synchronized parallel processing with shared memory
JP3776449B2 (en) Multitasking low power controller
US7257814B1 (en) Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7926062B2 (en) Interrupt and exception handling for multi-streaming digital processors
US6223208B1 (en) Moving data in and out of processor units using idle register/storage functional units
CA2271754C (en) Shared memory control algorithm for mutual exclusion and rollback
US6389446B1 (en) Multi-processor system executing a plurality of threads simultaneously and an execution method therefor
US20050081214A1 (en) Interstream control and communications for multi-streaming digital processors
JPH11149385A (en) Multi-os constituting method
JPH04348451A (en) Parallel computer
US6665700B1 (en) Distributed-memory multiprocessor system utilizing plural multiprocessors with virtual storage space
EP1299801B1 (en) Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
JP4489958B2 (en) Simultaneous processing of event-based systems
JPH0460864A (en) Communication register multiplexing system
JP2001216172A (en) Multi-os constituting method
JPH08297581A (en) Interruption management system of real-time operating system
JPH08292932A (en) Multiprocessor system and method for executing task in the same
CN116700912A (en) Software and hardware interaction method and device for accessing logical IP
JP2932547B2 (en) Communication register virtualization method
JP3006676B2 (en) Multiprocessor
JP2585905B2 (en) Multitask execution device
JP2004086921A (en) Multiprocessor system and method for executing task in multiprocessor system thereof
JPS6330951A (en) Data transfer system for communication control processor

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