JPH0546564A - Message pass system - Google Patents
Message pass systemInfo
- Publication number
- JPH0546564A JPH0546564A JP20428691A JP20428691A JPH0546564A JP H0546564 A JPH0546564 A JP H0546564A JP 20428691 A JP20428691 A JP 20428691A JP 20428691 A JP20428691 A JP 20428691A JP H0546564 A JPH0546564 A JP H0546564A
- Authority
- JP
- Japan
- Prior art keywords
- block
- processor
- information
- chain
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】この発明は、共通にアクセス可能
な共有メモリを持つ複数のプロセッサ間で情報交換を行
なうためのメッセージパス方式に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a message path system for exchanging information between a plurality of processors having a commonly accessible shared memory.
【0002】[0002]
【従来の技術】従来、共通にアクセス可能な共有メモリ
を持つ複数のプロセッサ間で情報交換を行なうためのメ
ッセージパス方式として図12に示す構成のものが知ら
れている。この従来のメッセージパス方式は、2つのプ
ロセッサ11,12間で情報交換を行なうために、各プ
ロセッサ11,12と共有メモリ20との間が共有メモ
リ入出力バス101,102によって接続され、プロセ
ッサ11,12間に割込み信号線103,104が接続
されている。2. Description of the Related Art Conventionally, as a message path system for exchanging information between a plurality of processors having a commonly accessible shared memory, a message path system shown in FIG. 12 is known. In this conventional message path system, in order to exchange information between the two processors 11 and 12, the processors 11 and 12 and the shared memory 20 are connected by the shared memory input / output buses 101 and 102, and the processor 11 and the shared memory 20 are connected. , 12 are connected to interrupt signal lines 103 and 104.
【0003】そして、2つのプロセッサ11,12間で
情報交換を行なう場合、情報交換用に共有メモリ20内
に固定アドレスで一定サイズのメモリから成る交信エリ
アを設け、メッセージを受け渡すときには、プロセッサ
のこの交信エリアへデータを書き込み、割込み信号で相
手に伝え、相手はそれに応答して、この交信エリアより
データを読み出して処理を行なうか、または自分の管理
するメモリへデータを退避させていた。そして、この後
に、交信エリアに再度データを書き込みできるようにな
ったことを前記メッセージ送信側プロセッサへ同じ方式
で伝えることにより、続けてさらに交信情報のある場合
には、この送信側プロセッサが再び交信エリアへ書き込
めるようにし、固定エリアサイズの交信エリアを繰り返
し用いることで情報交換を行なうようにしていた。When information is exchanged between the two processors 11 and 12, a shared memory 20 is provided with a communication area having a fixed address and a memory of a fixed size for information exchange. Data is written in this communication area and transmitted to the other party by an interrupt signal. In response to this, the other party reads the data from this communication area for processing, or saves the data in a memory it manages. Then, after this, by notifying that the data can be written again in the communication area to the message transmitting side processor in the same manner, if there is further communication information, this transmitting side processor again communicates. Information was exchanged by making it possible to write in an area and repeatedly using a fixed area size communication area.
【0004】[0004]
【発明が解決しようとする課題】ところが、このような
従来のメッセージパス方式では、交信エリアが固定され
ていたために、連続してメッセージを送り出したい場合
には、以前に送ったメッセージのための交信エリアが空
くまで待たなければならず、したがって、複数メッセー
ジ分のエリアを設けることや、ソフトウェア処理により
交信待ちの制御を行なう必要があり、送信と交信エリア
との管理のための処理が複雑になり、メッセージ転送効
率が悪い問題点があった。However, in such a conventional message path method, since the communication area is fixed, when it is desired to continuously send messages, the communication for the previously sent messages is performed. It is necessary to wait until the area becomes free.Therefore, it is necessary to provide an area for multiple messages and to control communication waiting by software processing, which complicates the processing for transmission and communication area management. , There was a problem that message transfer efficiency was poor.
【0005】さらに、連続して送信メッセージあるいは
受信メッセージが発生するであろう事態を予測し、交信
エリアとしてはそれに見合うメッセージエリアを設ける
必要があるため、通常時には使われることのない余分の
メモリエリアを獲得しておかなければならず、メモリ効
率も悪い問題点があった。Further, since it is necessary to predict a situation in which a transmission message or a reception message is likely to occur continuously and to provide a message area commensurate with it as a communication area, an extra memory area that is not normally used Had to be obtained, and there was a problem that memory efficiency was also poor.
【0006】さらに、受信側プロセッサが複数のメッセ
ージを連続して受信した場合には、このプロセッサはこ
れらのメッセージ処理あるいはメッセージ退避処理のた
めに、メッセージ受信前の処理を中断しなければなら
ず、場合によっては、この受信前の処理が緊急度の高い
ものであってもその処理を中断してしまうことがある問
題点もあった。Further, when the receiving side processor continuously receives a plurality of messages, this processor must interrupt the processing before receiving the message in order to process these messages or save the messages. In some cases, there is a problem in that even if the process before reception is highly urgent, the process may be interrupted.
【0007】この発明は、このような従来の問題点に鑑
みなされたもので、各プロセッサが効率良くメモリを使
用し、転送効率の良い情報交換を可能とし、また、各プ
ロセッサが各々の処理能力、タイミングに合わせて受信
メッセージを処理することができるメッセージパス方式
を提供することを目的とする。The present invention has been made in view of the above-mentioned problems of the prior art, and each processor efficiently uses a memory to enable information exchange with good transfer efficiency, and each processor has its own processing capability. An object of the present invention is to provide a message path method capable of processing a received message at a timing.
【0008】[0008]
【課題を解決するための手段】この発明は、複数のプロ
セッサが共通にアクセスすることができる共有メモリを
介して、相互に情報交換を行なうメッセージパス方式に
おいて、前記共有メモリをそれぞれのプロセッサが管理
するプロセッサ管理領域に分割し、それぞれのプロセッ
サ管理領域を一定長のメモリエリアから成るブロックに
分割し、各ブロック中に、連結する次のブロックの先頭
番地と連結された前のブロックの先頭番地とを格納する
制御エリアを設け、各ブロックの制御エリアに前記先頭
番地を指定することにより、関連するすべてのブロック
を連結させてバッファプールを構成し、情報を送信する
プロセッサは、前記バッファプールからいくつかのブロ
ックを切り離し、切り離したブロックへ情報を書き込
み、情報交換する相手へ、前記情報を書き込んだブロッ
クチェインの先頭ブロックの先頭番地を割り込み信号と
共に送信し、情報を受信するプロセッサは、前記割込み
信号を検出すると、前記送信側プロセッサが情報を書き
込んだブロックチェインを、処理プログラムの管理する
処理待ちチェインへ、前記ブロック中に設けた制御エリ
アの内容を書き換えることにより連結し、処理プログラ
ムにより前記情報が処理された後には、受信側プロセッ
サは、前記送信側プロセッサから渡され処理が完了した
ブロックチェインの情報内容を処理が完了したことを示
す情報に書き換え、そのブロックチェインの先頭ブロッ
クの先頭番地を割り込み信号と共に送信し、送信側プロ
セッサは、前記割込み信号を検出すると、前記受信側プ
ロセッサが処理完了の情報を書き込んだブロックチェイ
ンを、処理プログラムの管理する処理待ちチェインへ、
前記先頭ブロック中に設けられた制御エリアの内容を書
き換えることにより連結し、処理プログラムが前記受信
側プロセッサから渡された処理完了を示すブロックチェ
インを処理する場合には、そのブロックチェインの先頭
ブロックの制御エリアの内容と、前記バッファプールの
ブロック中の制御エリアの内容を書き換え連結すること
により、情報交換において用いたメモリブロックをバッ
ファプールに戻すものである。According to the present invention, in a message path system in which information is mutually exchanged via a shared memory that can be commonly accessed by a plurality of processors, each shared memory is managed by each processor. Each processor management area is divided into blocks consisting of memory areas of a certain length, and in each block, the start address of the next block to be connected and the start address of the previous block By providing a control area for storing each block, by designating the start address in the control area of each block, all the related blocks are connected to form a buffer pool, and the processor that transmits information determines how many times from the buffer pool. A phase in which another block is separated, information is written to the separated block, and information is exchanged. To, the processor that transmits the head address of the head block of the block chain in which the information is written together with the interrupt signal and receives the information, when the interrupt signal is detected, processes the block chain in which the transmitter processor has written the information. After the information is processed by the processing program, it is connected to the processing waiting chain managed by the program by rewriting the contents of the control area provided in the block. Rewriting the information content of the block chain which has been processed to the information indicating that the process has been completed, and transmits the start address of the start block of the block chain together with the interrupt signal, and the transmission side processor detects the interrupt signal, and The receiving processor writes the processing completion information The block chain, to the pending chain managed by the processing program,
When the processing area is connected by rewriting the contents of the control area provided in the head block and the processing program processes the block chain passed from the reception side processor and indicating the completion of processing, the head block of the block chain By rewriting and connecting the contents of the control area and the contents of the control area in the block of the buffer pool, the memory block used in the information exchange is returned to the buffer pool.
【0009】[0009]
【作用】この発明のメッセージパス方式では、プロセッ
サは情報交換のためにバッファプールから必要なだけブ
ロックを切り離して交信エリアとして利用すればよいの
で、メモリ効率が改善される。また、プロセッサが連続
してメッセージを送りたいときには、交信相手に割込み
信号をチェインブロックの先頭番地と共に送信した後、
再度バッファプールよりいくつかのブロックを切り離し
て交信エリアを獲得して送信することができ、転送効率
が改善される。According to the message path method of the present invention, the processor only needs to separate blocks from the buffer pool for information exchange and use them as communication areas, so that memory efficiency is improved. Also, when the processor wants to send messages continuously, after sending an interrupt signal to the communication partner together with the start address of the chain block,
It is possible to separate some blocks from the buffer pool again and acquire the communication area for transmission, thus improving the transfer efficiency.
【0010】また、受信側ブロックは、受信したブロッ
クチェインと処理待ちチェインの制御エリアを書き換え
ることによって連結して受信処理を終えるので、その情
報の処理は受信側プロセッサの処理能力、タイミングに
合わせて行なうことができる。Further, since the receiving block ends the receiving process by connecting by rewriting the control areas of the received block chain and the processing waiting chain, the processing of the information is processed according to the processing capacity and timing of the receiving processor. Can be done.
【0011】[0011]
【実施例】以下、この発明の実施例を図に基づいて詳説
する。Embodiments of the present invention will now be described in detail with reference to the drawings.
【0012】図1はこの発明の一実施例を使用するシス
テムの構成を示すブロック図であり、複数のプロセッサ
11,12,…,1Nに各プロセッサ間割込み信号線1
05が接続され、また、各プロセッサ11,12,…1
Nと共有メモリ20との間に共有メモリ入出力バス10
6が接続されている。FIG. 1 is a block diagram showing the configuration of a system using an embodiment of the present invention, in which a plurality of processors 11, 12, ...
05 is connected to each of the processors 11, 12, ... 1
Shared memory input / output bus 10 between N and shared memory 20
6 is connected.
【0013】図2に示すように、各プロセッサ11,1
2,…,1Nには、メッセージの送信機能を司るメッセ
ージ送信機能部111、メッセージの受信機能を司るメ
ッセージ受信機能部112およびメッセージの処理を行
なうメッセージ処理機能部113が備えられている。As shown in FIG. 2, each processor 11, 1
2, ..., 1N are provided with a message transmission function unit 111 that controls a message transmission function, a message reception function unit 112 that controls a message reception function, and a message processing function unit 113 that processes a message.
【0014】また、図3に示すように、共有メモリ20
は、各プロセッサが管理するプロセッサ管理領域21,
22,…,2Nに分割されている。そして、各プロセッ
サ管理領域21,22,…,2Nは、図4に示すよう
に、一定長のブロック31,32,…,3Kに分割され
ており、その各ブロック31,32,…,3Kには、制
御エリア41,42,…,4Kが設けられている。Further, as shown in FIG. 3, the shared memory 20
Is a processor management area 21 managed by each processor,
, ..., 2N. Each of the processor management areas 21, 22, ..., 2N is divided into blocks 31, 32, ..., 3K having a constant length as shown in FIG. 4, and each of the blocks 31, 32 ,. Are provided with control areas 41, 42, ..., 4K.
【0015】そして、各制御エリア41,42,…,4
Kは、図5に示すように、連結する次のブロックの先頭
番地(Nadr)を格納するNポインタ51と、連結さ
れた前のブロックの先頭番地(Padr))を格納する
Pポインタ52と、コントロールエリア53から構成さ
れていて、各ブロック31,32,…,3Kの制御エリ
ア41,42,…,4NのNadrとPadrを指定す
ることにより、いくつかのブロックを連結することがで
きる。Each control area 41, 42, ..., 4
As shown in FIG. 5, K is an N pointer 51 that stores the start address (Nadr) of the next block to be connected, and a P pointer 52 that stores the start address (Padr) of the connected previous block, .., 4N control areas 41, 42, ..., 4N, which are composed of a control area 53, can be connected to several blocks by designating Nadr and Padr of 4N.
【0016】以下、上記構成のメッセージパス方式の動
作について説明する。The operation of the message path system having the above configuration will be described below.
【0017】ブロックチェインの先頭ブロックのPポイ
ンタとそのブロックチェインの最後のブロックのNポイ
ンタの使い方には、次の2通りの方法がある。その1つ
目は、ブロックチェインの先頭プログラムのPポインタ
にブロックチェインの先頭であるという情報(Itop
1)を入れ、ブロックチェインの最後のブロックのNポ
インタの先頭ブロックのPポインタに、ブロックチェイ
ンの最後であるという情報(Ibtm1)をいれる方法
である。その2つ目は、ブロックチェインの先頭ブロッ
クを含めたブロックチェインの総ブロック数を入れる方
法である。以下、これらの前者の方法をポインタ使用方
法1とし、後者の方法をポインタ使用方法2とする。な
お、システム全体としては、ポインタ使用方法は、これ
らいずれか1つに統一して使用するものとする。There are two methods of using the P pointer of the first block of the block chain and the N pointer of the last block of the block chain. The first is information (Itop) indicating that the P pointer of the head program of the block chain is the head of the block chain.
1) is entered, and the information (Ibtm1) indicating the end of the block chain is added to the P pointer of the head block of the N pointer of the last block of the block chain. The second method is to enter the total number of blocks in the block chain including the first block of the block chain. Hereinafter, the former method will be referred to as a pointer usage method 1 and the latter method will be referred to as a pointer usage method 2. It should be noted that the pointer use method is unified and used in the system as a whole.
【0018】ポインタ使用方法1を採用したブロックチ
ェインを作るには、例えば、図4に示すようにブロック
31の制御エリア41のPadrをItop1に、Na
drをブロック32の先頭番地にし、さらに、ブロック
32の制御エリア42のPadrをブロック31の先頭
番地とすることにより、ブロック32をブロック31に
連結する。次に、制御エリア42のNadrをブロック
33の先頭番地とし、ブロック33の制御エリア43の
Padrをブロック32の先頭番地とすることにより、
ブロック33をブロック32に連結する。以下、同様に
して順次、ブロックの連結を行ない、最終的にブロック
3Kの制御エリア4KのNadrをIbtm1とするこ
とにより、ブロック31からブロック3Kまでの連結が
完了する。To create a block chain adopting the pointer usage method 1, for example, as shown in FIG. 4, Padr of the control area 41 of the block 31 is set to Itop1 and Na is set to Na.
The block 32 is linked to the block 31 by setting dr as the head address of the block 32 and further setting Padr of the control area 42 of the block 32 as the head address of the block 31. Next, the Nadr of the control area 42 is set as the head address of the block 33, and the Padr of the control area 43 of the block 33 is set as the head address of the block 32.
Block 33 is linked to block 32. Subsequently, the blocks are sequentially connected in the same manner, and finally the Nadr of the control area 4K of the block 3K is set to Ibtm1 to complete the connection of the blocks 31 to 3K.
【0019】また、ポインタ使用方法2を採用した場合
には、上述の図4の例では、制御エリア41のPadr
はItop2とブロック数Kになる。各プロセッサの処
理プログラムは、この制御エリア41のItop2とブ
ロック数Kより、ブロックチェイン最後のブロック3K
を知ることができるので、制御エリア4KのNadrは
書き換えずにそのままにしておく。When the pointer usage method 2 is adopted, in the example of FIG.
Becomes Itop2 and the number of blocks K. The processing program of each processor uses the Itop2 of the control area 41 and the number of blocks K to determine the last block 3K in the block chain.
Therefore, Nadr in the control area 4K is left as it is without being rewritten.
【0020】図5に示した各制御エリア41,42,
…,4Kのコントロールエリア53には、メッセージ送
信先のプロセッサの処理を要求することをを示す情報
(Request)か、その処理が完了したことを示す
情報(Complete)が格納される。なお、これら
の情報は、チェインブロックの先頭ブロックにのみ格納
される。Each control area 41, 42, shown in FIG.
The 4K control area 53 stores information (Request) indicating that the processing of the processor of the message transmission destination is requested or information (Complete) indicating that the processing is completed. Note that these pieces of information are stored only in the first block of the chain block.
【0021】バッファプールは、各プロセッサの管理す
る領域の処理に使用されていないすべてのブロックを、
前述のように制御エリアのNadrとPadrを指定
し、連結することによって構成される。そして、このバ
ッファプールは、共有メモリ20において、各プロセッ
サ用に各々の管理する領域21,22,…,2Nに作成
される。The buffer pool stores all blocks that are not used for processing the area managed by each processor.
As described above, it is configured by designating and connecting Nadr and Padr in the control area. Then, this buffer pool is created in the shared memory 20 in the areas 21, 22, ..., 2N managed by each processor.
【0022】また、各プロセッサ11,12,…,1N
には、処理を待つ受信メッセージが連結されている処理
待ちチェインがある。各プロセッサの処理プログラム
は、この処理待ちチェインの先頭ブロックの先頭番地を
知っておくことにより、処理待ちチェインを管理する。
例えば、図6に示すように、プロセッサ12の処理待ち
チェイン62では、ブロック71,72,…,7Mがプ
ロセッサ12の処理を待っている。そしてこれらのブロ
ックは、上述のように各ブロックの制御エリア81,8
2,…,8MのNadrとPadrを指定することによ
り連結されている。そしてプロセッサ12の処理プログ
ラムは、ブロック71の先頭番地を知っており、それに
より、プロセッサ12が受信メッセージ処理を開始する
時には、ブロック71をアクセスする。Further, each processor 11, 12, ..., 1N
Has a pending queue in which incoming messages waiting for processing are concatenated. The processing program of each processor manages the processing waiting chain by knowing the head address of the head block of this processing waiting chain.
For example, as shown in FIG. 6, in the processing waiting chain 62 of the processor 12, blocks 71, 72, ..., 7M are waiting for the processing of the processor 12. Then, these blocks are controlled by the control areas 81, 8 of each block as described above.
2, ..., 8M are linked by specifying Nadr and Padr. Then, the processing program of the processor 12 knows the start address of the block 71, so that when the processor 12 starts the received message processing, the block 71 is accessed.
【0023】そこでいま、ポインタ処理方法1を用いる
として、図4および図9のフローチャートに示すよう
に、連結されたブロック31,32,…,3Kがあり、
このブロックチェインがプロセッサ11の使用できるバ
ッファプールであり、プロセッサ11がブロックJ個分
のメッセージ(JはK以下)をプロセッサ12へ送信す
るとする。このとき、まず、プロセッサ11は、図7に
示すように、ブロック3(J+1)の制御エリア4(J
+1)のPadrをItop1にし(図9におけるステ
ップS1,S2)、ブロック3Jの制御エリア4JのN
adrをIbtm1にすることにより、バッファプール
からブロック31〜ブロック3Jのブロックチェイン9
1を切り離し(ステップS3)、ブロック31の制御エ
リア41のコントロールエリアをRequestにし
(ステップS4)、ブロックチェイン91に情報を書き
込んで、プロセッサ1へブロック31の先頭番地を割込
み信号と共に送信する。なお、この時点で、プロセッサ
11のバッファプールは、ブロック3(J+1)からブ
ロック3Kまでのブロックチェインとなり、先の割込み
信号を送信後、プロセッサ11は、次の処理を行なうこ
とができるようになる〓(ステップS5〜S7)。Now, assuming that the pointer processing method 1 is used, there are connected blocks 31, 32, ..., 3K as shown in the flowcharts of FIGS. 4 and 9.
It is assumed that this block chain is a buffer pool that can be used by the processor 11, and the processor 11 sends J blocks of messages (J is K or less) to the processor 12. At this time, first, as shown in FIG. 7, the processor 11 controls the control area 4 (J) of the block 3 (J + 1).
Paddr of +1) is set to Itop1 (steps S1 and S2 in FIG. 9), and N of the control area 4J of the block 3J is set.
By setting adr to Ibtm1, the block chain 9 of the blocks 31 to 3J from the buffer pool
1 is separated (step S3), the control area of the control area 41 of the block 31 is set to Request (step S4), information is written in the block chain 91, and the start address of the block 31 is transmitted to the processor 1 together with the interrupt signal. At this point, the buffer pool of the processor 11 becomes a block chain from block 3 (J + 1) to block 3K, and after transmitting the previous interrupt signal, the processor 11 can perform the next processing. 〓 (steps S5 to S7).
【0024】一方、図10のフローチャートに示すよう
に、プロセッサ12は、割込み信号を検出すると、送信
された番地を読み出すことによってブロック31の先頭
番地を知り(ステップS11)、制御エリアを書き換え
ることによって送信されたブロックチェイン91をプロ
セッサ12の処理待ちチェインに連結する(ステップS
12〜S15)。On the other hand, as shown in the flow chart of FIG. 10, when the processor 12 detects the interrupt signal, the processor 12 knows the start address of the block 31 by reading the transmitted address (step S11), and rewrites the control area. The transmitted block chain 91 is linked to the processing waiting chain of the processor 12 (step S
12-S15).
【0025】プロセッサ12がこの割込み信号を検出し
た時の処理待ちチェインが図6に示すようであれば、図
8および図11のフローチャートに示すように、プロセ
ッサ12はブロック7Mの制御エリア8MのNadrを
ブロック31の先頭番地に書き換え、ブロック31の制
御エリア41のPadrをブロック8Mの先頭番地に書
き換え(ステップS21,S22)、ブロックチェイン
91の情報を処理し終えた時には、制御エリア41のコ
ントロールエリアをCompleteに書き換え(ステ
ップS23,S24)、メッセージ送信元であるプロセ
ッサ11へブロック31の先頭番地を割り込み信号と共
に送信する(ステップS25〜S30)。If the processing wait chain when the processor 12 detects this interrupt signal is as shown in FIG. 6, the processor 12 determines the Nadr of the control area 8M of the block 7M as shown in the flow charts of FIGS. To the head address of the block 31, the Padr of the control area 41 of the block 31 is rewritten to the head address of the block 8M (steps S21 and S22), and when the information of the block chain 91 is processed, the control area of the control area 41 is To Complete (steps S23 and S24), and the start address of the block 31 is transmitted to the processor 11 which is the message transmission source together with the interrupt signal (steps S25 to S30).
【0026】この割込み信号を検出したプロセッサ11
は、図10のフローチャートに示すように、ブロックチ
ェイン91を受信メッセージとしてプロセッサ11の処
理待ちチェインに連結する。この連結の仕方は、前述の
プロセッサ12の処理待ちチェイン62への連結の仕方
と同様であり、プロセッサ11の処理待ちチェインの最
後のブロックの制御エリアのNadrをブロック31の
先頭番地にし(ステップS12,S14)、ブロック3
1の制御エリア41のPadrを処理待ちチェインの最
後のブロックの先頭番地とすることによって連結を完了
する(ステップS15)。Processor 11 that has detected this interrupt signal
Connects the block chain 91 to the processing waiting chain of the processor 11 as a received message, as shown in the flowchart of FIG. This connecting method is similar to the connecting method of the processor 12 to the processing waiting chain 62 described above, and the Nadr of the control area of the last block of the processing waiting chain of the processor 11 is set to the head address of the block 31 (step S12). , S14), block 3
The connection is completed by setting the Padr of the control area 41 of No. 1 as the head address of the last block of the processing waiting chain (step S15).
【0027】ここでもし、ブロック31の制御エリア4
1のPadrを処理待ちチェインが空であれば(ステッ
プS12)、ブロック31の制御エリア41のPadr
をItop1とし、プロセッサ11は処理プログラムへ
ブロック31の先頭番地を処理待ちチェインの先頭番地
として伝える。前述のプロセッサ12の処理待ちチェイ
ン62が空である時にも同様な受信処理がなされる(ス
テップS13)。Also here, the control area 4 of the block 31
If the waiting queue for the Padr of 1 is empty (step S12), the Padr of the control area 41 of the block 31 is
Is set as Itop1 and the processor 11 notifies the processing program of the start address of the block 31 as the start address of the processing waiting chain. Similar reception processing is performed even when the processing waiting chain 62 of the processor 12 is empty (step S13).
【0028】各プロセッサの処理プログラムが処理待ち
チェインのブロックチェインを処理する場合には、図1
1のフローチャートに示すように、先頭ブロックの制御
エリアのコントロールエリアがRequestとCom
pleteのどちらであるかを確認する(ステップS2
1,S22)。When the processing program of each processor processes the block chain of the processing waiting chain,
As shown in the flow chart of No. 1, the control area of the control area of the first block is Request and Com.
It is confirmed which one is a plete (step S2
1, S22).
【0029】そして、コントロールエリアがCompl
eteである時には、このブロックチェインはそのプロ
セッサのバッファプールに戻される。例えば、前述のブ
ロックチェイン91がプロセッサ12の処理を終えてプ
ロセッサ11の処理待ちチェインに連結している状態で
は、処理プログラムがこのブロックチェイン91を処理
する時、プロセッサ11は制御エリア41のコントロー
ルエリアにComplete情報があることを知り、ブ
ロック31の制御エリア41のPadrをプロセッサ1
1のバッファプールの最後のブロックの先頭番地にし、
このバッファプールの最後のブロックの制御エリアのN
adrをブロック31の先頭番地にすることにより、ブ
ロックチェイン91をプロセッサ11のバッファプール
に連結する。こうすることにより、ブロックチェイン9
1は、プロセッサ11のバッファプールに戻され、再び
プロセッサ11の処理に利用される(ステップS3
1)。The control area is Compl.
When ete, this blockchain is returned to the processor's buffer pool. For example, when the processing chain processes the block chain 91 and the processing chain is connected to the processing waiting chain of the processor 11, when the processing program processes the block chain 91, the processor 11 controls the control area 41 of the control area 41. When there is Complete information in the processor 1, the Padr in the control area 41 of the block 31 is set to the processor 1
The first address of the last block of the buffer pool of 1,
N of the control area of the last block of this buffer pool
By setting adr to the head address of the block 31, the block chain 91 is connected to the buffer pool of the processor 11. By doing this, blockchain 9
1 is returned to the buffer pool of the processor 11 and used again for the processing of the processor 11 (step S3).
1).
【0030】以上の処理をポインタ使用方法2を用いて
行なう場合には、ブロックの切り離し方とブロックチェ
インの間の連結方法が異なるだけであり、その他のプロ
セッサ11,12の処理は同じである。そして、ポイン
タ使用方法2を用いてブロック切り離しを行なう時に
は、例えば、図7においては、ブロックチェイン91の
制御エリア41のPadrはItop2とブロック数J
になり、制御エリア4JのNaarはそのままであって
変化しない。制御エリア4(J+1)のPadrはIt
op2とブロック数(K−J)になり、制御エリア4K
のNadrはそのままである。When the above-mentioned processing is carried out by the pointer usage method 2, only the method of separating blocks and the method of connecting block chains are different, and the processing of the other processors 11 and 12 is the same. Then, when the blocks are separated using the pointer usage method 2, for example, in FIG. 7, the Padr of the control area 41 of the block chain 91 is Itop2 and the number of blocks J.
The Naar in the control area 4J remains unchanged and does not change. Padr of control area 4 (J + 1) is It
op2 and the number of blocks (K-J), control area 4K
Nadr remains unchanged.
【0031】なお、ブロックチェイン間の連結について
は、例えば、図8に示すようにブロックチェイン62に
ブロックチェイン91を連結する場合には、制御エリア
81のPadrのブロック数をMから(M+J)にし、
制御エリア8MのNadrをブロック31の先頭番地と
し、制御エリア41のPadrをブロック7Mの先頭番
地とすることにより、連結を完了することができる。Regarding the connection between the block chains, for example, when connecting the block chain 91 to the block chain 62 as shown in FIG. 8, the number of blocks of Padr in the control area 81 is changed from M to (M + J). ,
The connection can be completed by setting the Nadr of the control area 8M as the head address of the block 31 and the Padr of the control area 41 as the head address of the block 7M.
【0032】[0032]
【発明の効果】以上のようにこの発明によれば、プロセ
ッサが情報交換のためにバッファプールから必要なだけ
ブロックを切り離して交信エリアとして利用できるよう
にしているために、メッセージパス以外の用途にもバッ
ファプールを利用することができ、メモリ効率を高める
ことができる。また、プロセッサが連続してメッセージ
を送りたいときには、交信相手に割込み信号をチェイン
ブロックの先頭番地と共に送信した後、再度バッファプ
ールよりいくつかのブロックを切り離して交信エリアを
獲得し、送信を行なうようにしているために、転送効率
を高めることができる。加えて、受信側プロセッサは、
制御エリアを書き換えることによって受信したブロック
チェインと処理待ちチェインを連結して受信処理を終え
るようにしているために、その情報の処理は受信側プロ
セッサの処理能力、タイミングに合わせて行なうことが
でき、システムの効率的な利用ができる。As described above, according to the present invention, the processor separates as many blocks from the buffer pool as necessary for information exchange so that the blocks can be used as a communication area. Can also use the buffer pool to improve memory efficiency. Also, when the processor wants to send messages continuously, after sending an interrupt signal to the communication partner together with the start address of the chain block, some blocks are again separated from the buffer pool to acquire the communication area and send. Therefore, the transfer efficiency can be improved. In addition, the receiving processor
By rewriting the control area, the received block chain and the processing waiting chain are linked to terminate the receiving process, so that the processing of the information can be performed in accordance with the processing capacity and timing of the receiving side processor, The system can be used efficiently.
【図1】この発明の一実施例のシステム構成を示すブロ
ック図。FIG. 1 is a block diagram showing a system configuration of an embodiment of the present invention.
【図2】上記実施例におけるプロセッサの内部構成を示
すブロック図。FIG. 2 is a block diagram showing an internal configuration of a processor in the above embodiment.
【図3】上記実施例における共有メモリの内部構成を示
すブロック図。FIG. 3 is a block diagram showing an internal configuration of a shared memory in the above embodiment.
【図4】上記実施例によるバッファプールの構成例を示
すブロック図。FIG. 4 is a block diagram showing a configuration example of a buffer pool according to the above embodiment.
【図5】上記実施例における制御エリアの内部構成を示
すブロック図。FIG. 5 is a block diagram showing an internal configuration of a control area in the above embodiment.
【図6】上記実施例による処理待ちチェインの構成例を
示すブロック図。FIG. 6 is a block diagram showing a configuration example of a processing waiting chain according to the above embodiment.
【図7】上記実施例によるバッファプールの利用方法を
示すブロック図。FIG. 7 is a block diagram showing a method of using a buffer pool according to the above embodiment.
【図8】上記実施例による処理待ちチェインの構成例を
示すブロック図。FIG. 8 is a block diagram showing a configuration example of a processing waiting chain according to the above embodiment.
【図9】上記実施例によるポインタ使用方法1によるブ
ロックチェイン送信手順を示すフローチャート。FIG. 9 is a flowchart showing a block chain transmission procedure according to the pointer usage method 1 according to the above embodiment.
【図10】上記実施例によるポインタ使用方法1による
ブロックチェイン受信手順を示すフローチャート。FIG. 10 is a flowchart showing a block chain reception procedure according to the pointer usage method 1 according to the above-described embodiment.
【図11】上記実施例によるポインタ使用方法1による
処理待ちチェイン処理手順を示すフローチャート。FIG. 11 is a flowchart showing a processing wait chain processing procedure according to the pointer usage method 1 according to the embodiment.
【図12】従来例のシステム構成を示すブロック図。FIG. 12 is a block diagram showing a system configuration of a conventional example.
11,12,…,1N プロセッサ 20 共有メモリ 21,22,…,2N プロセッサ管理領域 31,32,…,3K ブロック 41,42,…,4K 制御エリア 51 Nポインタ 52 Pポインタ 53 コントロールエリア 62 処理待ちチェイン 91 ブロックチェイン 105 プロセッサ間割込み信号線 106 共有メモリ入出力バス 11, 12, ..., 1N processor 20 Shared memory 21, 22, ..., 2N processor management area 31, 32, ..., 3K block 41, 42, ..., 4K Control area 51 N pointer 52 P pointer 53 Control area 62 Waiting for processing Chain 91 Block chain 105 Interprocessor interrupt signal line 106 Shared memory input / output bus
Claims (1)
ことができる共有メモリを介して、相互に情報交換を行
なうメッセージパス方式において、 前記共有メモリをそれぞれのプロセッサが管理するプロ
セッサ管理領域に分割し、それぞれのプロセッサ管理領
域を一定長のメモリエリアから成るブロックに分割し、
各ブロック中に、連結する次のブロックの先頭番地と連
結された前のブロックの先頭番地とを格納する制御エリ
アを設け、各ブロックの制御エリアに前記先頭番地を指
定することにより、関連するすべてのブロックを連結さ
せてバッファプールを構成し、 情報を送信するプロセッサは、前記バッファプールから
いくつかのブロックを切り離し、切り離したブロックへ
情報を書き込み、情報交換する相手へ、前記情報を書き
込んだブロックチェインの先頭ブロックの先頭番地を割
り込み信号と共に送信し、 情報を受信するプロセッサは、前記割込み信号を検出す
ると、前記送信側プロセッサが情報を書き込んだブロッ
クチェインを、処理プログラムの管理する処理待ちチェ
インへ、前記ブロック中に設けた制御エリアの内容を書
き換えることにより連結し、 処理プログラムにより前記情報が処理された後には、受
信側プロセッサは、前記送信側プロセッサから渡され処
理が完了したブロックチェインの情報内容を処理が完了
したことを示す情報に書き換え、そのブロックチェイン
の先頭ブロックの先頭番地を割り込み信号と共に送信
し、 送信側プロセッサは、前記割込み信号を検出すると、前
記受信側プロセッサが処理完了の情報を書き込んだブロ
ックチェインを、処理プログラムの管理する処理待ちチ
ェインへ、前記先頭ブロック中に設けられた制御エリア
の内容を書き換えることにより連結し、 処理プログラムが前記受信側プロセッサから渡された処
理完了を示すブロックチェインを処理する場合には、そ
のブロックチェインの先頭ブロックの制御エリアの内容
と、前記バッファプールのブロック中の制御エリアの内
容を書き換え連結することにより、情報交換において用
いたメモリブロックをバッファプールに戻すことを特徴
とするメッセージパス方式。1. In a message path method in which information is mutually exchanged via a shared memory that can be commonly accessed by a plurality of processors, the shared memory is divided into processor management areas managed by the respective processors, Divide each processor management area into blocks consisting of a fixed length memory area,
In each block, a control area for storing the start address of the next block to be connected and the start address of the previous block connected is provided, and by specifying the start address in the control area of each block, all related The block that connects the blocks of the above to configure the buffer pool, and sends the information to the processor, separates some blocks from the buffer pool, writes the information to the separated block, and writes the information to the other party with whom the information is exchanged. When the processor that transmits the head address of the head block of the chain together with the interrupt signal and receives the information detects the interrupt signal, the block chain in which the transmitter processor has written the information is transferred to the processing waiting chain managed by the processing program. , Rewrite the contents of the control area provided in the block After further connection, after the information is processed by the processing program, the receiving processor rewrites the information content of the block chain, which is passed from the transmitting processor and completed the processing, to the information indicating that the processing is completed, and The start address of the first block of the block chain is transmitted together with the interrupt signal, and when the transmitter processor detects the interrupt signal, the receiver processor waits for the processing program to manage the block chain in which the receiver processor has written the processing completion information. When the processing program processes the block chain indicating the completion of processing, which is passed from the receiving side processor, by connecting to the chain by rewriting the contents of the control area provided in the first block, The contents of the control area of the first block and the buffer A message path method characterized in that the memory blocks used in information exchange are returned to the buffer pool by rewriting and concatenating the contents of the control area in the block of the pool.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20428691A JPH0546564A (en) | 1991-08-14 | 1991-08-14 | Message pass system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20428691A JPH0546564A (en) | 1991-08-14 | 1991-08-14 | Message pass system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0546564A true JPH0546564A (en) | 1993-02-26 |
Family
ID=16487969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20428691A Pending JPH0546564A (en) | 1991-08-14 | 1991-08-14 | Message pass system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0546564A (en) |
-
1991
- 1991-08-14 JP JP20428691A patent/JPH0546564A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH01502708A (en) | Information transmission methods and devices | |
JPH0546564A (en) | Message pass system | |
JPH01211147A (en) | File transmitting system | |
JPS5833970B2 (en) | Inter-processor communication method | |
JP3457084B2 (en) | Packet bus controller | |
JP2853607B2 (en) | Communication system between jobs | |
JPH0234518B2 (en) | ||
JPH07143133A (en) | Multi-layer protocol processor for common use of memory | |
JPS592135A (en) | Block transferring system of data | |
JPH0583938B2 (en) | ||
JP2639248B2 (en) | Communication interface device | |
JP2738314B2 (en) | Switching system of N + 1 redundant circuit controller | |
JP3339442B2 (en) | Communication processing system network | |
JPH10143486A (en) | Data transmission/reception method in parallel computers | |
JPH06309281A (en) | Inter-processor communication system | |
US7177997B2 (en) | Communication bus system | |
JPH06244902A (en) | Communication controller | |
JP2966051B2 (en) | Processor unit | |
JPS6029987B2 (en) | Data transfer control method | |
JPS6326905B2 (en) | ||
JPH02196358A (en) | Communication controller | |
JPH03252848A (en) | Variable bus width designation/information reception system for split bus | |
JPH04178868A (en) | Data transfer system using shared ram unit | |
JPS5819061A (en) | Expanding method for control signal data | |
JPH01232852A (en) | Communication control system |