JP2003044292A - Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer - Google Patents

Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer

Info

Publication number
JP2003044292A
JP2003044292A JP2001234611A JP2001234611A JP2003044292A JP 2003044292 A JP2003044292 A JP 2003044292A JP 2001234611 A JP2001234611 A JP 2001234611A JP 2001234611 A JP2001234611 A JP 2001234611A JP 2003044292 A JP2003044292 A JP 2003044292A
Authority
JP
Japan
Prior art keywords
thread
program
execution
interrupt
processing
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.)
Pending
Application number
JP2001234611A
Other languages
Japanese (ja)
Inventor
Masato Amamiya
真人 雨宮
Hideo Taniguchi
秀夫 谷口
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.)
Kyushu University NUC
Original Assignee
Kyushu University NUC
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 Kyushu University NUC filed Critical Kyushu University NUC
Priority to JP2001234611A priority Critical patent/JP2003044292A/en
Priority to US10/147,998 priority patent/US20030014558A1/en
Publication of JP2003044292A publication Critical patent/JP2003044292A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To reduce overheads at switching a program execution environment between the execution of a program and an interruption without complicating the constitution of a computer and basic software and without remarkably increasing the burdens of the description of the program of a user. SOLUTION: An internal arithmetic unit 2 executes the program divided into a plurality of threads by a thread unit. An event processor 1 holds the interruption from the outside while executing a prescribed thread among the threads and executes the interruption after the prescribed thread is ended. The threads are automatically divided by a language processing system.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、ネットワークに結
合した各種の並列及び分散計算機で利用され、マルチス
レッド処理の原理を適用して、従来のプロセスをスレッ
ドと呼ぶ排他的に実行可能なプログラム断片に細分化
し、それを多重化して並行に走行させることによって、
通信や入出力のような外部イベントの処理と計算機内部
の処理とを統合し、その並列実行を制御する多重並行処
理装置、多重並行処理方法及びコンピュータによって実
行される多重並行処理プログラムに関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention is used in various parallel and distributed computers connected to a network, and by applying the principle of multithread processing, a conventional program fragment called an exclusive executable program called a thread. By subdividing it into multiplex and running them in parallel,
The present invention relates to a multiple parallel processing device, a multiple parallel processing method, and a multiple parallel processing program executed by a computer, which integrates external event processing such as communication and input / output and internal computer processing and controls the parallel execution thereof. .

【0002】[0002]

【従来の技術】従来のイベント処理では、外部からの割
込み(イベント)が発生する度に、現在実行中のプログ
ラムを中断し、その割込みを優先的に処理している。こ
の場合,割込みの度に、通常「コンテキスト切替」と呼
ばれるプロセッサの実行環境の切替を行い、そのイベン
トの到着を待った後に、実行を中断しているプログラム
の実行を再開しているので、オーバヘッドが増大する。
2. Description of the Related Art In conventional event processing, each time an external interrupt (event) occurs, the currently executing program is interrupted and the interrupt is processed with priority. In this case, the execution environment of the processor, which is usually called "context switching", is switched each time an interrupt occurs, and after waiting for the arrival of that event, the execution of the program whose execution has been suspended is resumed, so the overhead is Increase.

【0003】また、従来のイベント処理において、イベ
ントの到着を待って実行を中断しているプログラムと該
当イベント到着とのタイミングを正確にとるように制御
するプログラムを設計する必要がある。特に、並列及び
分散処理では、複数の計算機が互いにデータの授受を行
いながら同時並行的に動作しているので、他のプロセッ
サとの通信やデータの授受に起因するイベントが頻発す
る。そのようなイベントによって、各プロセッサ上での
プログラム実行順序の制御すなわち同期制御の機構が複
雑となるため、プログラム処理を単純化することが所望
されている。
Further, in the conventional event processing, it is necessary to design a program for controlling the timing of the arrival of an event and the interruption of execution of the program and the arrival of the corresponding event to be accurate. Particularly, in parallel and distributed processing, a plurality of computers are operating in parallel while exchanging data with each other, so that events frequently occur due to communication with other processors and exchanging data. Since such an event complicates the control of the program execution order on each processor, that is, the mechanism of the synchronous control, it is desired to simplify the program processing.

【0004】[0004]

【発明が解決しようとする課題】イベントを到達直後に
取り上げて処理する従来のイベント処理では、計算機及
び基本ソフトウェアの構成並びに並列及び分散処理のプ
ログラム構成の際に、以下の課題がある。
In the conventional event processing for picking up and processing an event immediately after it arrives, there are the following problems in the configuration of the computer and the basic software and the program configuration of parallel and distributed processing.

【0005】(1)従来の計算機ハードウェア及びオぺ
レーティングシステム(OS)においては、主に、コンテキ
スト切替のオーバヘッドをできるだけ小さくすることを
目的としている。したがって、ユーザプログラムを中心
とする内部演算処理と外部要因で発生するイベント処理
とを区別し、その切替に着目した制御を行う必要があ
る。これによって、計算機及び基本ソフトウェアの構成
が複雑になり、開発コストが増大する。
(1) In the conventional computer hardware and operating system (OS), the main purpose is to minimize the overhead of context switching. Therefore, it is necessary to distinguish between the internal arithmetic processing centering on the user program and the event processing generated by an external factor, and to perform control focusing on the switching. This complicates the configuration of the computer and the basic software and increases the development cost.

【0006】(2)プログラム記述、特に、並列及び分
散処理のプログラム記述において、イベント待ちとイベ
ント到着のタイミングを予測し、タイミングのミスマッ
チをできるだけ小さくし、かつ、コンテキスト切替の回
数をできるだけ少なくするようにプログラムを設計し及
び記述することが要求されている。並列及び分散処理を
設計し及び記述するユーザにとっては、外部発生イベン
トと内部演算処理とを互いに考慮して処理を記述する必
要があるので、本来処理すべきアルゴリズムのみに専念
してプログラムを記述するのが困難となり、ユーザのプ
ログラム記述の負担が著しく大きくなっている。
(2) In program description, especially in parallel and distributed processing, the timing of event waiting and event arrival is predicted, the timing mismatch is minimized, and the number of context switching is minimized. It is required to design and write a program in. For a user who designs and describes parallel and distributed processing, it is necessary to describe the processing in consideration of the externally generated event and the internal operation processing, so the program is written only with the algorithm that should be processed originally. This makes it difficult for users to write programs, and the burden of writing programs on the users is significantly increasing.

【0007】本発明の目的は、計算機及び基本ソフトウ
ェアの構成を複雑にすることなく、かつ、ユーザのプロ
グラムの記述の負担を著しく大きくすることなく、プロ
グラムの実行と割込みとの間のプログラム実行環境の切
替の際のオーバヘッドを軽減する多重並行処理装置、多
重並行処理方法及びコンピュータによって実行される多
重並行処理プログラムを提供することである。
An object of the present invention is to provide a program execution environment between program execution and interruption without complicating the configuration of a computer and basic software and without significantly increasing the burden of user's program description. It is an object of the present invention to provide a multiple parallel processing device, a multiple parallel processing method, and a multiple parallel processing program executed by a computer, which reduce the overhead at the time of switching.

【0008】[0008]

【課題を解決するための手段】本発明による多重並行処
理装置は、既存のプログラムを言語処理系によって複数
のスレッドプログラムに分割する手段と、そのスレッド
プログラムの実行中に外部からの割込みを保持する手段
と、前記スレッドプログラムの終了後、前記割込みを実
行する手段とを具えることを特徴とする。
A multiple parallel processing apparatus according to the present invention holds a means for dividing an existing program into a plurality of thread programs by a language processing system and an external interrupt during the execution of the thread program. Means and means for executing the interrupt after the thread program is completed.

【0009】本発明によれば、既存のプログラムを言語
処理系によって複数のスレッドプログラムに分割し、外
部からの割込みを、スレッドプログラムの終了後に実行
するので、割込みの度にプログラムを中断する必要がな
くなる。このように、複数のスレッドに分割されたプロ
グラムをスレッド単位で実行することによって、プログ
ラムの実行と割込みとの間のプログラム実行環境の切替
の際にオーバヘッドを軽減することができる。なお、本
発明では、外部から複数の割込みがあったとしても、ス
レッド終了後に複数の割込みをまとめて行うことができ
るので、プログラムの実行と割込みとの間のプログラム
実行環境の切替を行う回数を著しく低減し、その結果、
プログラムの実行と割込みとの間のプログラム実行環境
の切替のために計算機及び基本ソフトウェアの構成を複
雑にする必要がなくなり、かつ、ユーザのプログラムの
記述の負担が著しく大きくなるおそれがない。
According to the present invention, an existing program is divided into a plurality of thread programs by a language processing system, and an external interrupt is executed after the thread program is completed. Therefore, it is necessary to interrupt the program every interrupt. Disappear. In this way, by executing the program divided into a plurality of threads in units of threads, it is possible to reduce the overhead at the time of switching the program execution environment between the execution of the program and the interruption. In addition, in the present invention, even if there are a plurality of interrupts from the outside, the plurality of interrupts can be collectively performed after the thread ends, so that the number of times the program execution environment is switched between the execution of the program and the interrupt is Significantly reduced, and as a result,
There is no need to complicate the configuration of the computer and the basic software for switching the program execution environment between program execution and interruption, and there is no fear that the burden of writing the program on the user will significantly increase.

【0010】本発明よる多重並行処理方法は、既存のプ
ログラムを言語処理系によって複数のスレッドプログラ
ムに分割するステップと、そのスレッドプログラムの実
行中に外部からの割込みを保持するステップと、前記ス
レッドプログラムの終了後、前記割込みを実行するステ
ップとを具えることを特徴とする。
A multiple parallel processing method according to the present invention comprises a step of dividing an existing program into a plurality of thread programs by a language processing system, a step of holding an external interrupt during execution of the thread program, and the thread program. The step of executing the interrupt after the completion of the.

【0011】本発明によれば、計算機及び基本ソフトウ
ェアの構成を複雑にすることなく、かつ、ユーザのプロ
グラムの記述の負担を著しく大きくすることなく、プロ
グラムの実行と割込みとの間のプログラム実行環境の切
替の際のオーバヘッドを軽減することができる。
According to the present invention, the program execution environment between the program execution and the interrupt is executed without complicating the configuration of the computer and the basic software and without significantly increasing the burden of the user's description of the program. It is possible to reduce the overhead at the time of switching.

【0012】本発明によるコンピュータによって実行さ
れる多重並行処理プログラムは、既存のプログラムを言
語処理系によって複数のスレッドプログラムに分割する
ステップと、そのスレッドプログラムの実行中に外部か
らの割込みを保持するステップと、前記スレッドプログ
ラムの終了後、前記割込みを実行するステップとを具え
ることを特徴とする。
A multiple parallel processing program executed by a computer according to the present invention has a step of dividing an existing program into a plurality of thread programs by a language processing system and a step of holding an external interrupt during the execution of the thread program. And executing the interrupt after the thread program is completed.

【0013】本発明によれば、計算機及び基本ソフトウ
ェアの構成を複雑にすることなく、かつ、ユーザのプロ
グラムの記述の負担を著しく大きくすることなく、プロ
グラムの実行と割込みとの間のプログラム実行環境の切
替の際のオーバヘッドを軽減する多重並行処理をコンピ
ュータプログラムによって実行することができる。
According to the present invention, the program execution environment between the program execution and the interrupt is executed without complicating the configuration of the computer and the basic software and without significantly increasing the burden of the user's description of the program. Multiple parallel processing that reduces the overhead at the time of switching can be executed by a computer program.

【0014】[0014]

【発明の実施の形態】本発明による多重並行処理装置、
多重並行処理方法及びコンピュータによって実行される
多重並行処理プログラムの実施の形態を、図面を参照し
て詳細に説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Multiple parallel processing apparatus according to the present invention,
Embodiments of a multiple parallel processing method and a multiple parallel processing program executed by a computer will be described in detail with reference to the drawings.

【0015】先ず、第1の実施の形態について説明す
る。第1の実施の形態では、イベント処理とスレッド実
行(内部演算処理)を独立して並列に行う機構をハード
ウェアで実現する。本実施の形態では、言語処理系によ
って既存のプログラムコードを図1に示すようなスレッ
ドプログラム構造に変換したプログラムコードを実行す
ることを前提とし、本発明よる多重並行処理装置を構成
する図2のイベント処理装置1及び内部演算装置2によ
って処理が実行される。
First, the first embodiment will be described. In the first embodiment, a mechanism for independently performing event processing and thread execution (internal calculation processing) in parallel is realized by hardware. In the present embodiment, it is premised that a language processing system executes a program code obtained by converting an existing program code into a thread program structure as shown in FIG. 1, and the multiple parallel processing apparatus according to the present invention shown in FIG. The processing is executed by the event processing device 1 and the internal processing device 2.

【0016】図1において、a,b,c,d,eはそれ
ぞれ、スレッドコード、スレッド起動条件(同期カウン
タ)、スレッド実行命令列、スレッド実行終了命令及び
継続スレッド情報(ポインタ)を示す。
In FIG. 1, a, b, c, d, and e respectively represent a thread code, a thread starting condition (synchronous counter), a thread execution instruction sequence, a thread execution end instruction, and continuing thread information (pointer).

【0017】イベント処理装置1及び内部演算装置2は
並列に動作する。イベント処理装置1は、外部イベント
(割込み)3の処理及びスレッド同期管理を行い、内部
演算装置2は、実行可能スレッドの実行を専用に行う。
The event processing device 1 and the internal processing device 2 operate in parallel. The event processing device 1 processes an external event (interrupt) 3 and manages thread synchronization, and the internal processing device 2 exclusively executes an executable thread.

【0018】この状況で外部イベント3が発生すると、
それは、イベント処理装置1の割込み受付装置4によっ
て取り上げられ、イベント処理装置1の割込みキュー5
に保持される。
When an external event 3 occurs in this situation,
It is picked up by the interrupt reception device 4 of the event processing device 1, and the interrupt queue 5 of the event processing device 1 is taken.
Held in.

【0019】イベント処理装置1の割込み処理装置6
は、割込みキュー5に保持されている割込みを1個ずつ
取り出して割込み処理を行う。割込み処理装置6は、割
込み処理実行装置7及びスレッド同期管理装置8を有
し、次の動作を行う。
Interrupt processing device 6 of event processing device 1
Performs the interrupt processing by taking out the interrupts held in the interrupt queue 5 one by one. The interrupt processing device 6 has an interrupt processing execution device 7 and a thread synchronization management device 8 and performs the following operations.

【0020】1.割込み要因に基づいて、該当する割込
み処理ルーチンを実行する。 2.スレッド同期管理装置8は、同期待ちスレッド管理
表9の中に保持されている同期待ちスレッドに対し、割
込み処理の結果に従って、その割込みに起因するイベン
トを待つスレッドの同期カウンタ10を1減じる。な
お、割込みに起因するイベントを待つスレッドは、スレ
ッドID11によって識別される。 3.同期カウンタ10を1減じた結果、その値が零にな
ると、当該スレッドのスレッドID11と、スレッドコー
ド番地12とを、内部演算装置2内の実行待ちキュー1
3に入れる。
1. The corresponding interrupt processing routine is executed based on the interrupt factor. 2. The thread synchronization management device 8 decrements the synchronization counter 10 of the thread waiting in the synchronization waiting thread management table 9 according to the result of the interrupt processing for the thread waiting for the event caused by the interrupt. A thread waiting for an event caused by an interrupt is identified by a thread ID 11. 3. As a result of subtracting 1 from the synchronization counter 10, when the value becomes zero, the thread ID 11 of the thread and the thread code address 12 are transferred to the execution waiting queue 1 in the internal processing unit 2.
Put in 3.

【0021】内部演算装置2は、実行待ちスレッドキュ
ー13に保持されている実行可能キューを取り上げ、ス
レッドの実行を行う。内部演算装置2は、スレッド実行
環境設定装置14、スレッド実行装置15及び継続スレ
ッド登録装置16を更に有し、以下の処理を行う。
The internal processing unit 2 picks up the executable queue held in the execution waiting thread queue 13 and executes the thread. The internal processing device 2 further includes a thread execution environment setting device 14, a thread execution device 15, and a continuous thread registration device 16, and performs the following processing.

【0022】1.スレッド実行環境設定装置14は、実
行の順番が近づいてきた、すなわち、キューの先頭近く
に移動してきた実行間待ちスレッドのために、予め空き
レジスタファイルを割り当て、そのレジスタファイルに
当該スレッドの実行環境を設定する(実行環境の回
復)。 2.実行すべきスレッドを実行待ちキュー13の先頭か
ら取り出し、現在空き状態の演算装置に対して、既に割
り当てられているレジスタファイルを用いてスレッド実
行を開始する。スレッドの実行は、途中で中断すること
なくスレッド実行終了命令の実行まで命令列を排他的に
実行する。 3.継続スレッド登録装置16は、スレッド実行終了命
令を実行する。スレッド実行終了命令は、当該スレッド
に続いて実行すべきスレッド(継続スレッド)の名前
(スレッドID及びそのコード番地)及びその同期カウン
タの初期値をオペランドとして持っているので、そのオ
ペランド情報を用いて、継続スレッドを同期待ちスレッ
ド管理表9に登録する。同一の継続スレッドが同期待ち
スレッド管理表9に既に存在する場合、その同期カウン
タ10を1減じる。 4.同期カウンタ10を1減じた結果、その値が零にな
り、起動条件が整ったときには、当該スレッドのスレッ
ドID及びコード番地を内部演算装置2内の実行待ちキュ
ー13に入れる。
1. The thread execution environment setting device 14 allocates a free register file in advance for the inter-execution waiting thread that is nearing the execution order, that is, moves to the head of the queue, and the execution environment of the thread is set in the register file. Is set (recovery of the execution environment). 2. The thread to be executed is taken out from the head of the execution waiting queue 13, and the thread execution is started for the currently empty arithmetic unit using the register file already allocated. Execution of a thread exclusively executes an instruction sequence until execution of a thread execution end instruction without interruption in the middle. 3. The continuing thread registration device 16 executes a thread execution end instruction. Since the thread execution end instruction has the name (thread ID and its code address) of the thread (continuation thread) to be executed subsequent to the thread and the initial value of the synchronization counter as operands, use the operand information. , The continuing thread is registered in the synchronization waiting thread management table 9. When the same continuation thread already exists in the synchronization waiting thread management table 9, the synchronization counter 10 is decremented by 1. 4. As a result of subtracting 1 from the synchronous counter 10, its value becomes zero, and when the activation condition is satisfied, the thread ID and code address of the thread are put into the execution waiting queue 13 in the internal arithmetic unit 2.

【0023】次に、第2の実施の形態を説明する。第2
の実施の形態は、イベント処理とスレッド実行(内部演
算処理)を独立して並列に行う機構をソフトウェアで実
現する。本実施の形態でも、言語処理系によって既存の
プログラムコードを図1に示すようなスレッドプログラ
ム構造に変換したプログラムコードを実行することを前
提とし、本発明よる多重並行処理方法を実施する図3に
示すような市販のハードウェア装置21によって処理が
実行される。
Next, a second embodiment will be described. Second
In this embodiment, software implements a mechanism for performing event processing and thread execution (internal operation processing) independently and in parallel. Also in the present embodiment, it is assumed that the language processing system executes the program code in which the existing program code is converted into the thread program structure as shown in FIG. 1, and the multiple parallel processing method according to the present invention is implemented in FIG. The process is executed by a commercially available hardware device 21 as shown.

【0024】ハードウェア装置21は、演算装置22
と、外部装置(割込み装置)23と、記憶装置24と、
これらの間でデータのやり取りを行うバス25とを有す
る。
The hardware device 21 is an arithmetic device 22.
An external device (interrupt device) 23, a storage device 24,
It has a bus 25 for exchanging data between them.

【0025】本実施の形態の動作を、図4も用いて説明
する。演算装置22でスレッド実行管理部26が実行さ
れると同時に、外部イベント27は、外部装置23によ
って取り上げられ、記憶装置24内の割込みキュー27
に保持される。スレッド実行管理部26は、スレッド実
行部29及び割込み処理実行部30を有する。ここで、
スレッドの実行環境とはレジスタの内容である。
The operation of this embodiment will be described with reference to FIG. At the same time that the thread execution management unit 26 is executed in the arithmetic unit 22, the external event 27 is picked up by the external unit 23, and the interrupt queue 27 in the storage unit 24.
Held in. The thread execution management unit 26 has a thread execution unit 29 and an interrupt processing execution unit 30. here,
The thread execution environment is the contents of registers.

【0026】スレッド実行中にスレッド実行終了命令を
実行すると、そのスレッドの実行が終了し、スレッド実
行環境退避部でスレッド実行環境の退避を行う。スレッ
ド実行終了命令には、当該スレッドに継続する少なくと
も一つのスレッドの情報がオペランドとして示されてお
り、この継続スレッドを記憶装置24の同期待ちスレッ
ド管理表31に登録する。同一の継続スレッドが既に同
期待ちスレッド管理表31に存在する場合、その同期カ
ウンタを1減じる。
When a thread execution end instruction is executed during thread execution, the execution of the thread ends, and the thread execution environment saving unit saves the thread execution environment. The thread execution end instruction has information of at least one thread continuing to the thread as an operand, and this continuing thread is registered in the synchronization waiting thread management table 31 of the storage device 24. If the same continuation thread already exists in the synchronization waiting thread management table 31, the synchronization counter is decremented by 1.

【0027】スレッド実行部29は、実行待ちスレッド
キュー32に保持されている実行待ちスレッドをキュー
の先頭から取り出し、そのスレッドの実行環境をスレッ
ド実行環境設定部で設定し,スレッド実行部29でスレ
ッドコード(実行命令列)を実行する。
The thread execution unit 29 takes out the execution waiting thread held in the execution waiting thread queue 32 from the head of the queue, sets the execution environment of the thread in the thread execution environment setting unit, and the thread execution unit 29 executes the threads. Executes a code (execution instruction string).

【0028】一つのスレッド実行が終了すると、割込み
処理実行部30に制御を移行する。割込み処理実行部3
0では、割込みスレッドキュー28が空になるまで次の
操作を繰り返す。
When the execution of one thread is completed, the control is transferred to the interrupt processing execution unit 30. Interrupt processing execution unit 3
At 0, the next operation is repeated until the interrupt thread queue 28 becomes empty.

【0029】1.割込みキュー28の先頭から割込みを
取り出し、その割込み要因を調べ、該当する割込み処理
ルーチンを実行する。 2.そのイベントを待っている、すなわち、同期待ちス
レッド管理表32内に登録されているスレッドに対し
て、その同期カウンタを1減じる(スレッド同期処
理)。 3.その結果として同期カウンタの値が零となった場合
には、そのスレッドを、同期待ちスレッド管理表31か
ら削除し、実行待ちスレッドキュー32に入れる。割込
み実行部30の処理が終了すると、制御をスレッド実行
部29に移行する。
1. An interrupt is taken out from the head of the interrupt queue 28, the interrupt factor is checked, and the corresponding interrupt processing routine is executed. 2. The synchronization counter is decremented by 1 for threads waiting for that event, that is, for threads registered in the synchronization waiting thread management table 32 (thread synchronization processing). 3. As a result, when the value of the synchronization counter becomes zero, the thread is deleted from the synchronization waiting thread management table 31 and put in the execution waiting thread queue 32. When the processing of the interrupt execution unit 30 is completed, the control is transferred to the thread execution unit 29.

【0030】本実施の形態によれば、イベント処理と内
部演算処理の特性を分析することによって、並列及び分
散処理を含む一般プログラムを、外部イベントからの影
響が及ぼされて実行が中断する個所を境として、外部イ
ベントの影響が及ぼされることなく内部演算処理に専念
できる部分(スレッド)を単位として複数のプログラム
片に分割し、複数のスレッドからなるプログラムに変換
される。なお、スレッドの分割を、言語処理系で自動的
に行うことができる。
According to the present embodiment, by analyzing the characteristics of the event processing and the internal arithmetic processing, the general program including the parallel and distributed processing can be detected at the point where the execution is interrupted by the influence of the external event. As a boundary, a portion (thread) that can be dedicated to internal arithmetic processing without being affected by an external event is divided into a plurality of program pieces and converted into a program including a plurality of threads. Note that thread division can be automatically performed by the language processing system.

【0031】スレッドは、当該イベントの到着によって
同期を制御しながら起動され、起動されたスレッドは、
外部イベントの影響が及ぼされることなく実行される。
外部イベントの影響が及ぼされる個所は、予めスレッド
の切れ目として特定されているので、イベント処理を、
ユーザプログラムとは独立して計算機ハードウェア又は
基本ソフトウェアでまとめて実行することができ、ユー
ザプログラムでは、スレッド実行として内部演算処理に
専念することができる。これによって、並列及び分散処
理で頻発するイベント処理をユーザプログラムから隠蔽
し、かつ、オーバーヘッドを従来に比べて軽減すること
ができる。
The thread is started while controlling the synchronization by the arrival of the event, and the started thread is
It is executed without the influence of external events.
The place where the influence of the external event is exerted is specified in advance as a thread break.
It can be executed collectively by computer hardware or basic software independently of the user program, and the user program can concentrate on internal arithmetic processing as thread execution. This makes it possible to hide the event processing that frequently occurs in parallel and distributed processing from the user program and reduce the overhead compared to the conventional case.

【0032】したがって、本実施の形態によれば、スレ
ッド実行後に割込み処理をまとめて行うことができるの
で、外部イベント割込みが内部演算処理に影響を及ぼす
ことがなくなる。これによって、ユーザプログラムの実
行と割込み処理ルーチンとの間のプログラム実行環境の
切替を行う回数を著しく低減し、処理のオーバーヘッド
を従来よりも軽減することができる。
Therefore, according to the present embodiment, since the interrupt processing can be collectively performed after the thread execution, the external event interrupt does not affect the internal arithmetic processing. As a result, the number of times the program execution environment is switched between the execution of the user program and the interrupt processing routine can be significantly reduced, and the processing overhead can be reduced as compared with the conventional case.

【0033】また、ユーザプログラムでは、内部演算処
理をスレッド実行として排他的に実行させることができ
るので,外部イベントに関連する同期処理の記述を、イ
ベントを契機とするスレッド間の実行依存関係に基づい
たプログラムとして構成することができる。これによっ
て、ユーザプログラムでは、イベント間の同期制御を考
慮する必要がなく、並列及び分散プログラムの設計及び
開発が容易となる。
Since the user program can exclusively execute the internal arithmetic processing as thread execution, the description of the synchronous processing related to the external event is based on the execution dependency between the threads triggered by the event. Can be configured as a program. As a result, the user program does not need to consider the synchronous control between events, which facilitates the design and development of parallel and distributed programs.

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

【図1】 本発明において実行されるスレッドプログラ
ムの構造を示すプログラムブロック図である。
FIG. 1 is a program block diagram showing the structure of a thread program executed in the present invention.

【図2】 本発明による多重並行処理装置の全体構成を
示すブロック図である。
FIG. 2 is a block diagram showing an overall configuration of a multiple parallel processing apparatus according to the present invention.

【図3】 本発明による多重並行処理方法を実施するハ
ードウェアのブロック図である。
FIG. 3 is a block diagram of hardware for implementing a multiple parallel processing method according to the present invention.

【図4】 図3の外部装置、記憶装置及び演算装置内部
のソフトウェアの動作過程を示す図である。
FIG. 4 is a diagram showing an operation process of software inside the external device, the storage device, and the arithmetic device of FIG. 3;

【符号の説明】[Explanation of symbols]

1 イベント処理装置 2 内部演算装置 3,27 外部イベント(割込み) 4 割込み受付装置 5,28 割込みキュー 6 割込み処理装置 7 割込み処理実行装置 8 スレッド同期管理装置 9,31 同期待ちスレッド管理表 10 同期カウンタ 11 スレッドID 12 スレッドコード番地 13,32 実行待ちスレッドキュー 14 スレッド実行環境設定装置 15 スレッド実行装置 16 継続スレッド登録装置 21 ハードウェア装置 22 演算装置 23 外部装置(割込み装置) 24 記憶装置 25 バス 26 スレッド実行管理部 29 スレッド実行部 30 割込み処理実行部 a スレッドコード b スレッド起動条件(同期カウンタ) c スレッド実行命令列 d スレッド実行終了命令 e 継続スレッド情報(ポインタ) 1 event processor 2 Internal processing unit 3,27 External event (interrupt) 4 Interrupt acceptance device 5,28 Interrupt queue 6 Interrupt processing device 7 Interrupt processing execution device 8 Thread synchronization management device 9,31 Synchronization wait thread management table 10 Synchronous counter 11 thread ID 12 Thread code address 13,32 Pending thread queue 14 Thread execution environment setting device 15 thread execution unit 16 Continuation thread registration device 21 Hardware device 22 Arithmetic device 23 External device (interrupt device) 24 storage 25 bus 26 Thread execution manager 29 Thread execution unit 30 Interrupt processing execution unit a thread code b Thread start condition (synchronous counter) c Thread execution instruction sequence d Thread execution end instruction e Continued thread information (pointer)

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 既存のプログラムを言語処理系によって
複数のスレッドプログラムに分割する手段と、 そのスレッドプログラムの実行中に外部からの割込みを
保持する手段と、 前記スレッドプログラムの終了後、前記割込みを実行す
る手段とを具えることを特徴とする多重並行処理装置。
1. A means for dividing an existing program into a plurality of thread programs by a language processing system, a means for holding an interrupt from the outside during the execution of the thread program, and the interrupt after the thread program is completed. A multi-parallel processing apparatus comprising: a means for executing.
【請求項2】 既存のプログラムを言語処理系によって
複数のスレッドプログラムに分割するステップと、 そのスレッドプログラムの実行中に外部からの割込みを
保持するステップと、 前記スレッドプログラムの終了後、前記割込みを実行す
るステップとを具えることを特徴とする多重並行処理方
法。
2. A step of dividing an existing program into a plurality of thread programs by a language processing system, a step of holding an interrupt from the outside during execution of the thread program, and a step of interrupting the interrupt after the thread program is finished. A parallel processing method, comprising: performing steps.
【請求項3】 既存のプログラムを言語処理系によって
複数のスレッドプログラムに分割するステップと、 そのスレッドプログラムの実行中に外部からの割込みを
保持するステップと、 前記スレッドプログラムの終了後、前記割込みを実行す
るステップとを具えることを特徴とするコンピュータに
よって実行される多重並行処理プログラム。
3. A step of dividing an existing program into a plurality of thread programs by a language processing system, a step of holding an interrupt from the outside during execution of the thread program, and a step of interrupting the interrupt after the thread program is completed. A multiple parallel processing program executed by a computer, comprising: executing steps.
JP2001234611A 2001-05-21 2001-08-02 Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer Pending JP2003044292A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001234611A JP2003044292A (en) 2001-08-02 2001-08-02 Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer
US10/147,998 US20030014558A1 (en) 2001-05-21 2002-05-20 Batch interrupts handling device, virtual shared memory and multiple concurrent processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001234611A JP2003044292A (en) 2001-08-02 2001-08-02 Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer

Publications (1)

Publication Number Publication Date
JP2003044292A true JP2003044292A (en) 2003-02-14

Family

ID=19066193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001234611A Pending JP2003044292A (en) 2001-05-21 2001-08-02 Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer

Country Status (1)

Country Link
JP (1) JP2003044292A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527815A (en) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー Computer system with increased operating efficiency
US7913069B2 (en) 2006-02-16 2011-03-22 Vns Portfolio Llc Processor and method for executing a program loop within an instruction word

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527815A (en) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー Computer system with increased operating efficiency
US7913069B2 (en) 2006-02-16 2011-03-22 Vns Portfolio Llc Processor and method for executing a program loop within an instruction word

Similar Documents

Publication Publication Date Title
JP3630118B2 (en) Thread termination method and apparatus, and parallel processor system
US7281250B2 (en) Multi-thread execution method and parallel processor system
KR100871956B1 (en) Method and apparatus for identifying splittable packets in a multithreaded vliw processor
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
JPH1027108A (en) Method for thread execution
US8359588B2 (en) Reducing inter-task latency in a multiprocessor system
JPH10124316A (en) Multithread processor independently processing plural instruction flows and flexibly controlling processing performance by the same instruction flows
JPH0348537B2 (en)
US20110161982A1 (en) Task Controlling A Multitask System
JP2003044292A (en) Multiplex parallel processor, multiplex parallel processing method and multiplex parallel processing program executed by computer
JP2006146758A (en) Computer system
US20030014558A1 (en) Batch interrupts handling device, virtual shared memory and multiple concurrent processing device
JP2001075820A (en) Real time os device
CA1304823C (en) Apparatus and method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
JP2009026035A (en) Interrupt processing synchronizing device, interrupt processing synchronizing method, and program
US10824431B2 (en) Releasing rename registers for floating-point operations
JP5376042B2 (en) Multi-core processor system, thread switching control method, and thread switching control program
CN112445587A (en) Task processing method and task processing device
JPH11306149A (en) Parallel arithmetic processor and method therefor
JPH11306038A (en) Units and method for parallel operation processing
JP3067253B2 (en) Data processing device
JPH076037A (en) Instruction decoding device
JP2553526B2 (en) Multitasking processor
JP4122212B2 (en) Multiprocessor system
JPH1074148A (en) Interruption processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050428

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050707

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060307