JPH03245258A - Multiprocessor system - Google Patents
Multiprocessor systemInfo
- 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
Links
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
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.
本発明は二つのプロセッサ間に共有メモリを有するマル
チプロセッサシステムにおいて、メモリブロックを取得
するプロセッサと返却するプロセッサとを分離して設け
、この二つのプロセッサを窓口として利用し、プールに
少なくとも一つのメモリブロックを常に存在させること
により、
プロセッサ間の競合を少なくし、処理効率を向上させる
ようにしたものである。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.
従来、この種のマルチプロセッサシステムでプロセッサ
間に存在するメモリブロックを二つのプロセッサで使用
する場合には、一つのメモリブロックに対するプロセッ
サ間の競合を避けるためにハードウェアで共有メモリの
排他制御を行うか、または一方のプロセッサがブロック
管理を行いその管理の下で他方のプロセッサがメモリブ
ロックを使用していた。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.
上述した従来のプロセッサ間共有メモリブロックブール
の管理では次に示す問題がありマルチプロセッサシステ
ムを有効に機能させることができなかった。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.
本発明は、複数のプロセッサに共有メモリを有するマル
チプロセッサシステムにおいて、前記共有メモリに、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.
取得側プロセッサおよび返却側プロセッサを二つの窓口
として設け、複数のプロセッサはこの二つの窓口のいず
れかを選択してアクセスする。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.
次に、本発明実施例を図面に基づいて説明する。 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.
以上説明したように本発明によれば、メモリブロックを
取得するプロセッサと返却するプロセッサとを分離し、
プールに少なくとも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.
第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)
セッサシステムにおいて、 前記共有メモリに、 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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01246656A (en) * | 1988-03-29 | 1989-10-02 | Nec Corp | Inter-processor sharing memory control system |
-
1990
- 1990-02-23 JP JP4278890A patent/JPH03245258A/en active Pending
Patent Citations (1)
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)
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 |