JPH03245258A - Multiprocessor system - Google Patents

Multiprocessor system

Info

Publication number
JPH03245258A
JPH03245258A JP4278890A JP4278890A JPH03245258A JP H03245258 A JPH03245258 A JP H03245258A JP 4278890 A JP4278890 A JP 4278890A JP 4278890 A JP4278890 A JP 4278890A JP H03245258 A JPH03245258 A JP H03245258A
Authority
JP
Japan
Prior art keywords
pool
processor
memory
blocks
memory block
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
JP4278890A
Other languages
Japanese (ja)
Inventor
Hiroyoshi Komatsu
寛佳 小松
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 JP4278890A priority Critical patent/JPH03245258A/en
Publication of JPH03245258A publication Critical patent/JPH03245258A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PURPOSE:To decrease the conflict states among processors and to improve the processing efficiency in a multiprocessor system by separating the processors from each other for execution of the acquisition and return of the memory blocks and keeping a memory block in a pool at all times. CONSTITUTION:When an acquiring side processor 1 serves as a medium between processors and (n) pieces of memory blocks 32 are needed, the head of a chain of the blocks 32 is obtained based on the queue control information stored in a queue control information store area 31. Thus (n) pieces of chains are traced. When the NULL pointers are not set to any one of blocks 32, one of those acquired blocks 32 can be left as it is. Thus (n) pieces of blocks 32 are secured for application of th4e processor 1. Then the chain head serves as the (n + 1) memory block counted from the precedent head, and the queue control information is updated in the area 31.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマルチプロセッサシステムにおけるプロセッサ
間共有メモリに存在するメモリブロックのプールの管理
に利用する。本発明はメモリブロックをプロセッサ間の
通信の媒介として用いる場合の空ブロックの管理に関す
る。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention is utilized for managing a pool of memory blocks existing in inter-processor shared memory in a multiprocessor system. The present invention relates to the management of empty blocks when memory blocks are used as communication media between processors.

〔概要〕〔overview〕

本発明は二つのプロセッサ間に共有メモリを有するマル
チプロセッサシステムにおいて、メモリブロックを取得
するプロセッサと返却するプロセッサとを分離して設け
、この二つのプロセッサを窓口として利用し、プールに
少なくとも一つのメモリブロックを常に存在させること
により、 プロセッサ間の競合を少なくし、処理効率を向上させる
ようにしたものである。
In a multiprocessor system having a shared memory between two processors, the present invention provides a processor that acquires a memory block and a processor that returns it separately, uses these two processors as a window, and uses at least one memory block in a pool. By ensuring that blocks always exist, contention between processors is reduced and processing efficiency is improved.

〔従来の技術〕[Conventional technology]

従来、この種のマルチプロセッサシステムでプロセッサ
間に存在するメモリブロックを二つのプロセッサで使用
する場合には、一つのメモリブロックに対するプロセッ
サ間の競合を避けるためにハードウェアで共有メモリの
排他制御を行うか、または一方のプロセッサがブロック
管理を行いその管理の下で他方のプロセッサがメモリブ
ロックを使用していた。
Conventionally, in this type of multiprocessor system, when two processors use a memory block that exists between processors, exclusive control of the shared memory is performed by hardware to avoid contention between the processors for a single memory block. Or, one processor performed block management and the other processor used memory blocks under that management.

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上述した従来のプロセッサ間共有メモリブロックブール
の管理では次に示す問題がありマルチプロセッサシステ
ムを有効に機能させることができなかった。
The above-mentioned conventional management of inter-processor shared memory block booleans has the following problems and cannot make a multiprocessor system function effectively.

1、 ハードウェアで排他制御を実現する場合、つのプ
ロセッサが共有メモリを占有しているときに他方のプロ
セッサが共有メモリをアクセスしようとした場合、ハー
ドウェアの動作を停止させて待機するために待機時間の
分だけ処理速度を低下させ、また相手プロセッサが共有
メモリをアクセスしている間ハードウェアを停止させる
回路を必要とする。
1. When implementing exclusive control with hardware, if one processor occupies the shared memory and the other processor attempts to access the shared memory, the hardware stops its operation and waits until the other processor attempts to access the shared memory. This requires a circuit that slows down the processing speed by the amount of time and stops the hardware while the other processor is accessing the shared memory.

2、一方のプロセッサが共有メモリブロックプールを管
理し他方のプロセッサがその管理下で動作する場合、共
有メモリブロックプールを管理するプロセッサは管理の
ための処理が必要となって負荷が大きくなり、また管理
下で動作するプロセッサは共有メモリブロックプールの
取得および返却を行うとき待ち時間が生じて処理効率を
低下させる。
2. If one processor manages a shared memory block pool and the other processor operates under its management, the processor managing the shared memory block pool will have to perform management processing, resulting in a heavy load. Processors operating under management experience latency when acquiring and returning shared memory block pools, reducing processing efficiency.

本発明はこのような問題を解決するもので、処理速度の
低下および負荷の増大を防止し、処理効率を向上させる
ことができるシステムを提供することを目的とする。
The present invention solves these problems, and aims to provide a system that can prevent a decrease in processing speed and an increase in load, and improve processing efficiency.

〔課題を解決するための手段〕[Means to solve the problem]

本発明は、複数のプロセッサに共有メモリを有するマル
チプロセッサシステムにおいて、前記共有メモリに、N
個の細分化したメモリブロックをチェーンしたプールと
、このプールの先頭と後尾を指すポインタからなるキュ
ー制御情報を格納するキュー制御情報格納域とを設け、
前記プールから前記メモリブロックを取得することだけ
が許される取得側プロセッサと、前記プールへ前記メモ
リブロックを返却することだけが許される返却側プロセ
ッサとを備え、前記取得側プロセッサは、前記メモリブ
ロック取得後に前記プールに少なくとも一つの前記メモ
リブロックを残せる条件を満足したときに任意個の前記
メモリブロックを前記プールから取得する手段を含み、
前記返却側プロセッサは、非同期に任意個の前記メモリ
ブロックを前記プールへ返却する手段を含むことを特徴
とする。
The present invention provides a multiprocessor system in which a plurality of processors have a shared memory.
A pool containing a chain of subdivided memory blocks, and a queue control information storage area for storing queue control information consisting of pointers pointing to the beginning and end of this pool are provided.
The acquiring processor includes an acquiring processor that is only permitted to acquire the memory block from the pool, and a returning processor that is only permitted to return the memory block to the pool, and the acquiring processor is configured to acquire the memory block. comprising means for acquiring an arbitrary number of the memory blocks from the pool when a condition for leaving at least one of the memory blocks in the pool later is satisfied;
The return processor is characterized in that it includes means for asynchronously returning an arbitrary number of the memory blocks to the pool.

〔作用〕[Effect]

取得側プロセッサおよび返却側プロセッサを二つの窓口
として設け、複数のプロセッサはこの二つの窓口のいず
れかを選択してアクセスする。
An acquisition side processor and a return side processor are provided as two windows, and a plurality of processors selects and accesses either of these two windows.

取得側プロセッサがメモリブロック取得後にプールに少
なくとも一つのメモリブロックを残せる条件を満たした
ときに任意個のメモリブロックをプールから取得し、返
却側プロセッサが非同期に任意個のメモリブロックをプ
ールへ返却する。
When the acquiring processor satisfies the condition to leave at least one memory block in the pool after acquiring the memory block, it acquires any number of memory blocks from the pool, and the returning processor asynchronously returns any number of memory blocks to the pool. .

このようにプールに少なくとも一つのメモリブロックを
常に存在させることにより、プロセッサ間の競合を少な
くし、待機時間をなくして処理速度を高め、処理効率を
向上させるとともに、ハードウェアの構成を簡単にする
ことができる。
Having at least one memory block in the pool at all times reduces contention between processors, eliminates wait times, increases processing speed, improves processing efficiency, and simplifies hardware configuration. be able to.

〔実施例〕〔Example〕

次に、本発明実施例を図面に基づいて説明する。 Next, embodiments of the present invention will be described based on the drawings.

第1図は本発明実施例の構成を示すブロック図である。FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention.

本発明実施例は、複数のプロセッサに共有メモリ3を有
し、この共有メモリ3に、N個の細分化したメモリブロ
ック32をチェーンしたプール30と、このプール30
の先頭と後尾を指すポインタからなるキュー制御情報を
格納するキュー制御情報格納域31とを設け、プール3
0からメモリブロック32を取得することだけが許され
る取得側プロセッサ1と、プール30ヘメモリブロツク
32を返却することだけが許される返却側プロセッサ2
とを備え、取得側プロセッサ1には、メモリブロック3
2取得後にプール30に少なくとも一つのメモリブロッ
ク32を残せる条件を満足したときに任意個のメモリブ
ロック32をプール30から取得する手段を含み、返却
側プロセッサ2には、非同期に任意個のメモリブロック
32をプール30へ返却する手段を含む。
The embodiment of the present invention has a shared memory 3 for a plurality of processors, and this shared memory 3 includes a pool 30 in which N subdivided memory blocks 32 are chained together.
A queue control information storage area 31 is provided to store queue control information consisting of pointers pointing to the beginning and end of the pool 3.
The acquiring processor 1 is only allowed to acquire the memory block 32 from the pool 30, and the returning processor 2 is only allowed to return the memory block 32 to the pool 30.
The acquiring processor 1 includes a memory block 3.
2 includes means for acquiring an arbitrary number of memory blocks 32 from the pool 30 when a condition for leaving at least one memory block 32 in the pool 30 after acquisition is satisfied; 32 to the pool 30.

共有メモリ3は取得側プロセッサ1および返却側プロセ
ンサ2とバス4により接続され、非同期にアクセスする
ことができる。複数のメモリブロック32はチェーンさ
れてプール30を構成し、キュー制御情報格納域31内
のキュー制御情報はチエ”−ンの先頭と後尾を指すポイ
ンタにより構成され、チェーンの後尾のメモリブロック
32にはなにも指さないことを意味するNULLポイン
タがセットされる。
The shared memory 3 is connected to the acquiring processor 1 and the returning processor 2 via a bus 4, and can be accessed asynchronously. A plurality of memory blocks 32 are chained to form a pool 30, and the queue control information in the queue control information storage area 31 is composed of pointers pointing to the beginning and end of the chain. A NULL pointer is set, meaning that it points to nothing.

次に、このように構成された本発明実施例の動作につい
て説明する。
Next, the operation of the embodiment of the present invention configured as described above will be explained.

取得側プロセッサ1がプロセッサ間通信の媒体としてメ
モリブロック32がn個必要になった場合に、まずキュ
ー制御情報格納域31内のキュー制御情報よりメモリブ
ロック32のチェーンの先頭を求め、次にチェーンをn
個手繰る。n個のメモリブロック32を手繰り終わらな
いうちにメモリブロック32にNUI几ポインタがセッ
トされている場合やnイ固目のメモリブロック32にN
 [I L Lポインタがセットされている場合にはメ
モリブロック32取得後プール30に少なくとも一個の
メモリブロック32が残る条件を満たしていないのでメ
モリブロック32ヲ取得する操作は異常終了する。
When the acquiring processor 1 needs n memory blocks 32 as a medium for inter-processor communication, first the head of the chain of memory blocks 32 is determined from the queue control information in the queue control information storage area 31, and then the chain n
Take care of yourself. If the NUI pointer is set in the memory block 32 before completing n memory blocks 32, or if the NUI pointer is set in the n-th memory block 32,
[If the ILL pointer is set, the condition that at least one memory block 32 remains in the pool 30 after acquiring the memory block 32 is not satisfied, so the operation to acquire the memory block 32 ends abnormally.

n個のメモリブロック32のどれにもN U L Lポ
インタがセットされていなかった場合には、メモリブロ
ック32取得後に少なくとも一つのメモリブロック32
を残せるのでn個のメモリブロック32を取得側プロセ
ッサ1が使用するために確保する。
If the N ULL pointer is not set in any of the n memory blocks 32, at least one memory block 32 is set after the memory block 32 is acquired.
Therefore, n memory blocks 32 are reserved for use by the acquiring processor 1.

確保後はチェーンの先頭は以前の先頭からn+1個目の
メモリブロックとなるのでキュー制御情報格納域31内
のキュー制御情報を更新する。このようにして取得の操
作は終了する。
After the reservation, the head of the chain becomes the (n+1)th memory block from the previous head, so the queue control information in the queue control information storage area 31 is updated. In this way, the acquisition operation ends.

第2図は本発明実施例におけるn=2の場合のメモリブ
ロック取得後の状態を示す図である。取得側プロセッサ
1が確保したメモリブロック32に情報をセットし、返
却側プロセッサ2に渡しプール30のメモリブロック3
2に返却する場合について説明する。
FIG. 2 is a diagram showing the state after memory block acquisition in the case of n=2 in the embodiment of the present invention. Information is set in the memory block 32 secured by the acquiring processor 1 and passed to the returning processor 2, which is then transferred to the memory block 3 of the pool 30.
The case of returning the item in 2 will be explained.

まず、返却するn個のメモリブロック32をチェーンす
る。後尾のメモリブロック32にはNULLポインタを
セットする。次に、第3図に示すようにプール30の後
尾を指していたキュー制御情報格納域31内のキュー制
御情報のポインタを返却するn個のメモリブロック32
のチェーンの後尾を指すように更新する。さらに、第4
図に示すようにプール30の後尾のメモリブロック32
にNULLポインタがセットされている状態を返却する
n個のメモリブロック32のチェーンの先頭を指すよう
に変更する。
First, the n memory blocks 32 to be returned are chained. A NULL pointer is set in the memory block 32 at the rear. Next, as shown in FIG. 3, n memory blocks 32 return the queue control information pointer in the queue control information storage area 31 that pointed to the tail of the pool 30.
Update to point to the end of the chain. Furthermore, the fourth
A memory block 32 at the rear of the pool 30 as shown in the figure.
The state where the NULL pointer is set is changed to point to the beginning of the chain of n memory blocks 32.

この第4図に示す状態はチェーンのつながり方は異なる
が第1図に示す状態と同じである。このようにして返却
の操作を終了する。
The state shown in FIG. 4 is the same as the state shown in FIG. 1, although the way the chains are connected is different. In this way, the return operation is completed.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明によれば、メモリブロックを
取得するプロセッサと返却するプロセッサとを分離し、
プールに少なくとも1個のメモリブロックを常に存在さ
せることにより、次に示す効果がある。
As explained above, according to the present invention, a processor that acquires a memory block and a processor that returns a memory block are separated,
By always having at least one memory block in the pool, the following effects can be achieved.

1、取得側プロセッサはキュー制御情報のうぢプールの
先頭を指すポインタのみ更新し、返却側プロセッサはキ
ュー制御情報のうちプールの後尾を指すポインタおよび
プールの後尾のみを更新すればよいために、共有メモリ
で各プロセッサが更新する部分を完全に分離することが
でき、プロセッサ間の競合が生じない。
1. The acquiring processor only needs to update the pointer pointing to the beginning of the pool of queue control information, and the returning processor only needs to update the pointer pointing to the tail of the pool and the tail of the queue control information. The portions of shared memory that each processor updates can be completely separated, eliminating contention between processors.

2、競合を避ける方式としてハードウェアの排他制御回
路を用いないために構成が簡単になる。
2. The configuration is simplified because no hardware exclusive control circuit is used as a method for avoiding contention.

3、ハードウェアに同期または排他制御を行う部分がな
くなるためにシステムの性能を低下させない。
3. System performance is not degraded because there is no part of the hardware that performs synchronization or exclusive control.

0 4、−回のアクションで任意側のメモリブロックを取得
することができる。
The memory block on the arbitrary side can be acquired with 0 4,- actions.

5、 メモリブロックが不足しているとき以外は取得待
ちが発生しない。
5. Waiting for acquisition does not occur unless there is a shortage of memory blocks.

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

第1図は本発明実施例の全体構成を示すブロック図。 第2図は本発明実施例におけるn=2の場合のメモリブ
ロック取得後のプールの状態を示す図。 第3図は本発明実施例におけるメモリブロックをプール
に返却する操作の過渡状態を示す図。 第4図は本発明実施例におけるメモリブロックをプール
に返却した後の状態を示す図。 1・・・取得側プロセッサ、2・・・返却側プロセッサ
、3・・・共有メモリ、4・・・バス、30・・・プー
ノベ31・・・キュー制御情報格納域、32・・・メモ
リブロック。
FIG. 1 is a block diagram showing the overall configuration of an embodiment of the present invention. FIG. 2 is a diagram showing the state of the pool after memory block acquisition in the case of n=2 in the embodiment of the present invention. FIG. 3 is a diagram showing a transient state of the operation of returning a memory block to the pool in the embodiment of the present invention. FIG. 4 is a diagram showing the state after the memory block is returned to the pool in the embodiment of the present invention. 1... Acquiring side processor, 2... Returning side processor, 3... Shared memory, 4... Bus, 30... Punobe 31... Queue control information storage area, 32... Memory block .

Claims (1)

【特許請求の範囲】 1、複数のプロセッサに共有メモリを有するマルチプロ
セッサシステムにおいて、 前記共有メモリに、 N個の細分化したメモリブロックをチェーンしたプール
と、 このプールの先頭と後尾を指すポインタからなるキュー
制御情報を格納するキュー制御情報格納域と を設け、 前記プールから前記メモリブロックを取得することだけ
が許される取得側プロセッサと、前記プールへ前記メモ
リブロックを返却することだけが許される返却側プロセ
ッサとを備え、 前記取得側プロセッサは、前記メモリブロック取得後に
前記プールに少なくとも一つの前記メモリブロックを残
せる条件を満足したときに任意個の前記メモリブロック
を前記プールから取得する手段を含み、 前記返却側プロセッサは、非同期に任意個の前記メモリ
ブロックを前記プールへ返却する手段を含む ことを特徴とするマルチプロセッサシステム。
[Claims] 1. In a multiprocessor system having a shared memory among a plurality of processors, the shared memory includes a pool in which N subdivided memory blocks are chained together, and a pointer pointing to the beginning and end of this pool. a queue control information storage area for storing queue control information, an acquiring processor that is only permitted to acquire the memory block from the pool, and a return processor that is only permitted to return the memory block to the pool. a side processor, the acquiring side processor includes means for acquiring an arbitrary number of the memory blocks from the pool when a condition that at least one of the memory blocks can remain in the pool after acquiring the memory block is satisfied; The multiprocessor system is characterized in that the returning processor includes means for asynchronously returning any number of the memory blocks to the pool.
JP4278890A 1990-02-23 1990-02-23 Multiprocessor system Pending JPH03245258A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4278890A JPH03245258A (en) 1990-02-23 1990-02-23 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4278890A JPH03245258A (en) 1990-02-23 1990-02-23 Multiprocessor system

Publications (1)

Publication Number Publication Date
JPH03245258A true JPH03245258A (en) 1991-10-31

Family

ID=12645708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4278890A Pending JPH03245258A (en) 1990-02-23 1990-02-23 Multiprocessor system

Country Status (1)

Country Link
JP (1) JPH03245258A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934815B2 (en) 2000-08-01 2005-08-23 Fujitsu Limited Method and apparatus used for data communication between processors, and data processing apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01246656A (en) * 1988-03-29 1989-10-02 Nec Corp Inter-processor sharing memory control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01246656A (en) * 1988-03-29 1989-10-02 Nec Corp Inter-processor sharing memory control system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934815B2 (en) 2000-08-01 2005-08-23 Fujitsu Limited Method and apparatus used for data communication between processors, and data processing apparatus

Similar Documents

Publication Publication Date Title
FI79200B (en) KONTROLLSYSTEM FOER FLERA PROCESSORER ANVAENDANDE DATABEHANDLINGSSYSTEM.
US5233701A (en) System for managing interprocessor common memory
DE2854485C2 (en) Data processing system
US4564901A (en) Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors
US9886329B2 (en) Scalable RCU callback offloading
DE2944419C2 (en)
KR19980070449A (en) How to Improve Input / Output Performance Through Asynchronous Interface with Input / Output Sub-Processors
JP2000284978A (en) Interface system for asynchronously updating common resource and method for the same
GB1481609A (en) Apparatus arranged to process a plurality of discrete computing tasks
US20150363205A1 (en) Implementing out of order processor instruction issue queue
US20070055852A1 (en) Processing operation management systems and methods
JPS62192867A (en) Work station handling image data
US20080270772A1 (en) Reduced data transfer during processor context switching
JPH03245258A (en) Multiprocessor system
CN102929562A (en) Extensible reordering method based on identification marks
EP1233340A2 (en) Context preservation
US5491826A (en) Microprocessor having register bank and using a general purpose register as a stack pointer
EP0206335B1 (en) Interruption method for a data processing system
US10977042B2 (en) Using expedited RCU grace periods to avoid out-of-memory conditions for offloaded RCU callbacks
JP2748407B2 (en) Database processing system
JPH02173828A (en) Interruption process system
CN116010121A (en) Multithread message data access method and device based on circular linked list
JPS616753A (en) Common memory device
JPS616747A (en) Memory device
JP2847863B2 (en) Microprocessor interrupt control method