JPH0329049A - マルチプロセッサシステム - Google Patents

マルチプロセッサシステム

Info

Publication number
JPH0329049A
JPH0329049A JP16569289A JP16569289A JPH0329049A JP H0329049 A JPH0329049 A JP H0329049A JP 16569289 A JP16569289 A JP 16569289A JP 16569289 A JP16569289 A JP 16569289A JP H0329049 A JPH0329049 A JP H0329049A
Authority
JP
Japan
Prior art keywords
processor
processors
processing
data
parallel 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
JP16569289A
Other languages
English (en)
Inventor
Toshiyuki Nakada
中田 登志之
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 JP16569289A priority Critical patent/JPH0329049A/ja
Publication of JPH0329049A publication Critical patent/JPH0329049A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマルチプロセッサシステムに関する。
〔従来の技術〕
プロセッサ間で同期を取りながらデータの授受を行う方
式としては、 a)  テータを共有するプロセッサ間でセマフtア変
数を用いて共有変数の管理を行なう(このように管理さ
れたデータを以後、臨界領域と呼ぶ、)。
一つのプロセッサ(PE−a)が臨界領域内のデータに
アクセスしている時に、他のブロセッザ(PE−b)が
当該臨界領域にアクセスしようとしたときは、プロセッ
サPE−bはプロセス・スイッチを起動し、他の実行可
能なブpセスを実行しにいき、PE−aが臨界領域を抜
け出した後、初めてPE−bが臨界領域に入ることが可
能となる方式と、 b)  INMOS社のトランスビュータの様に、デー
タの共有をチャネル間のデータ転送とみなし、データを
読み出すプロセスは、データを書き込むプロセッサがデ
ータを書き込んだ時点で初めて実行可能となり、PE−
bの実行キュに登録され、その後プロセッサPE−bが
このブロセ3を実行する方式 の2方式が存在する。
〔発明が解決しようとする課題〕
しかし、この様な方式では、方式a),b)の何れの場
合Fこも、プロセッサ間で同期を行なうのに、フロセス
・スイッチを必要とする。プロセス・スイッチ時には、
フロセッサ内の多数のレジスタの待避等が必要となり、
必然的に処理時間が長くなる.そのため、必然的にプロ
セス間スイッチを伴うブpセッサ間同期は、同期と同期
の間の処理が一定以上無いと、プロセス間スイッチのオ
ーバヘッドが無視できないために、フロセッサ台数を増
やしても実行速度が向上しないために、アルゴリズムに
並列性を活用することができないという欠点が存在した
. 〔課題を解決するための手段〕 本発明では、プロセス単位の大きな処理における同期に
は従来から用いられているセマフオアなどの同期手段を
用いる. そして更に、大きな処理単位での同期以外に、各ブロセ
。サが前記共有メモリ上の当該プロセッサ用に割り当て
られた領域に当該プロセッサの実行状況に応じた実行状
況番号を書き込み、当該プロセッサと同期を取る必要が
あるプロセッサが前記実行状況番号を参照し、実行状況
番号が当該プロセッサが同期時点で必要となる番号以上
に進むまで、処理の実行を保留する事により、より細か
い同期をとることを可能にする。
更に、本発明では、プロセスに、複数個のブロ砒ッサを
割り当てる.これらのブロセ,サは大きな単位の同期時
に、一つの群をなして、プロセッサに割り当てられ、群
内では前記細かい同期を用いて、通信を行いながら一つ
のプロセスの処理を並列に実行する. 〔作用〕 本発明では、各プロセッサが実行状況番号を共有メモリ
に書き込むことにより、現在どこまで実行が進んだかを
、他のプロセッサに通知することを可能にする.本発明
ではこの機能を、各プロセッサが他のデータが使用する
データを生或/更新した時に用いる。特定のプーセッサ
からデータを必要とするプロセッサは対応するプロセッ
サの実行状況番号をモニタする事により、いっそのデー
タが生或されたかを知る事が可能となる。この処理は、
割込み/セマフォア等と比較すると、コンタクトスイッ
チを必要としないため、そのオーバーヘッドは少ない。
従って本発明により、従来複数個のプロセッサを用いて
並列化しても同期のオーバーヘッドが大きすぎて速度向
上が得られないような、細かい単位の並列処理を実行す
ることが可能となり、多数のプロセッサを用いた並列処
理が実行可能になるという効果が得られる。
〔実施例〕
次に、第1図から第8図を用いて本発明の実施例につい
て説明する。
第1図は本発明の一実施例を説明するためのブpツク図
である。第】図において、マルチプロセッサシステムl
はn台のプロセッサ2と、これらのプロセッサから読み
書き可能な共有メモリ3から構成される. 第2図と第3図は、本発明における並列処理の概念を示
した図である.第2図において、並列ブログラム4は全
ての処理で同期する部分5と、その同期後に複数個のま
とまった太き紅並列処理60部分からなる.この大きな
単位の並列処理5は、従来から並列処理の単位として用
いられていたもので、Sun Micro−Syste
ms (サンーマイクO−システムズ), ”Syst
em Services Overvjew(システム
・サービス・オーバビュー) :Chapter→ 6 Light Weight Processes 
(7++ブタ 6°ライト・ウェイト・プロセスイズ)
”等で言うIight−weight process
 (スレッド)或はSequentSystems (
シーケント・システムズ), ”56quend  G
uide to Parallel Programm
ing (シーケント・ガイド・トウ・パラレル・プロ
グラミング)″の言うマイクロ・タスクに相当する.(
従って、本発明並びに通常のマルチプロセッサシステム
では、複数個の並列プログラム4が同時に実行されてい
ることになる.) 第3図は本発明における一つの大きな単位の並列処理6
の中の並列処理の概念を示す図である.大きな単位の並
列処理6奢゛よ、更に複数個の小さな単位の並列処理7
により構或される。一つの小さな単位の並列処理7は更
に独立した処理8,データの転送9,データの転送待ち
10等で構或され、独立した処理8の間のデータの転送
9並びにデータの転送待ち10により、他の小さな単位
の並列処理7と同期を取りながら並列に処理を実行する
第4図は本発明を実現するための共有メモリ3の上のデ
ータ領域の図である。第4図において、共有メモリ3上
には小さな単位の並列処理7の個数分だけ、小さな単位
の並列処理に割り当てられた領域11が存在する。各、
小さな単位の並列処理に割り当てられた領域11には、
その小さな単位の並列処理を担当するプロセッサの実行
状況番号12並びに対応するプロセッサの生成するデー
タを格納する領域l3から構成される6第5図は本発明
におけるレディーキュー14とプロセス制御ブロック1
5の構或の一部を示したモノである.プロセス制御ブロ
ック15は大きな単位の並列処理60単位で生或され、
制御情報の一部として、必要なプiffセッサ台数16
(該犬きな単位の並列勉理6に含まれる小さな単位の並
列処理7の数),各プロセッサの実行開始番地17並び
に各プロセッサに対応する小さな単位の並列処理7に割
り当てられた通信領域110番地18を含む. 第6図は本発明において、大きな単位の並列処理を起動
するときのフローチャートを示したものである。
本システムでは実行可能な大きな単位の並列処理のうち
、必要なプロセッサ台数16が現在のアイドルなプロセ
ッサ台数より少ないプロセス制御ブロック15を選び、
その必要台数分だけブμセッサを確保すると、各プロセ
ッサに実行開始番地、小さな単位の並刀処理に割り当て
られた通信領域l1の番地18等を通知して各プロセッ
サに小さな単位の並列処理を開始させる.開始された各
プロセッサは対応する実行状況番号12を0にしてから
小さな単位の並列処理を開始する.第′γ図は本発明に
おいて小さな単位の並列処理を実行中のプロセッサがデ
ータの転送9を実行する時のフローチャートな示したも
のである.第7図において、プロセッサは独立t,た並
列処理を実行した後、本プロセッサが生威し、他のプロ
セッサが参照するデータなデータ格納領域13に書き込
み、その後で、実行状況番号12に1を加える。
従っテ、他のプロセッサは該プロセッサの実行状況番号
12を参照することにより、必要kデータが得られたか
否かを判定することが可能である。
第8図は、本発明において、小さな単位の並列処理を実
行中のプロセッサが他のプロセッサが生成したデータを
使用するときのフローチャートを示したものである.他
のプロセッサが生成1,,たデータを使用するときには
該プロセッサは相手のプロセッサの実行状況番号12が
該当する番号まで進むまで待ち、実行状況番号12が必
要なデータが生或されたことを示すまで進んだ時点で、
データを相手のデータ格納領域から読み込む。
第7図と、第8図から解る通り、本発明では、ある小さ
な単位の並列処理7がデータ待で待っている場合は、処
理の効率が低下してしまう。また、デッドロックも容易
に起こり得る。しかし、小さな単位の並列処理では処理
の同期にコンテクストスイッチ等を必要としない、従っ
て、適用を大きな単位の並列処理の中の2次的なものに
限定し、かつ、その中では、プログラマ或はコンパイラ
が小さな単位の並列処理間の負荷の均衡を注意深く割り
当てれば、従来同期と同期の間の処理量が小さすぎて並
列処理が適用できなかった様な応用にも、並列処理を適
用する事が可能となる.〔発明の効果〕 以上述べたように本発明では、各プロセッサが実行状況
番号を共有メモリに書き込むことにより、現在どこまで
実行が進んだかを、他のプロセッサに通知することを可
能にする. 本発明ではこの機能を、各プロセッサが他のデータが使
用するデータを生戊/更新した時に用いる。特定のプロ
セッサからデータを必要とするブロセ,サは対応するプ
ロセッサの実行状況番号をモニタする事により、いっそ
のデータが生或されたかを知る事が可能となる。この処
理は、割込み/セマフt7等と比較すると、コンテクス
トスイッチを必要としないため、そのオーバーヘッドは
少ない。従って 本発明により、従来複数個のプロセッサを用いて並列化
しても、同期のオーバーヘッドが大きすぎて速度向上が
得られないような、細かい単位の並列処理を実行するこ
とが可能となり、多数のブロセ,サを用いた並列処理が
実現可能になるという効果が得られる.
【図面の簡単な説明】 第1図は本発明の一実施例を説明するためのブロック図
、第2図と第3図は、本発明における並列処理の概念を
示した図、第4図は本発明を実現するための共有メモリ
上のデータ領域の図、第5図は本発明におけるレディー
キュー14とプロセス制御プロ,クの構成の一部を示し
た図、第6図は本発明において、大きな単位の並列処理
を起動するときのフローチャートを示した図、第7図は
本発明において小さな単位の並列処理を実行中のプロセ
ッサがデータの転送を実行する時のフローチャートを示
した図、第8図は本発明において小さな単位の並列処理
を実行中のブpセッサが他のプロセッサが生成したデー
タを使用するときのフローチャートを示した図である。 l・・・・・・マルチプロセッサシステム、2・・・・
・・プロセッサ、3・・・・・・共有メモリ、4・・・
・・・並列プログラム、5・・・・・・全ての処理で同
期する部分、6・・・・・・大きな単位の並列処理、7
・・・・・・小さな単位の並列処理、8・・・・・・独
立した処理、9・・・・・・データの転送、10・・・
・・・データの転送待ち、11・・・・・・小さな単位
の並列処理に割り当てられた領域、12・・・・・・実
行状況番号、13・・・・・・プロセッサの生或するデ
ータを格納する領域、14・・・・・・レディーキュー
 15・・・・・・プロセス制御ブロック、16・・・
・・・必要なプロセッサ台数、】7・・・・・・各プロ
セッサの実行開始番地、18・・・・・・小さな単位の
並列処理に割り当てられた通信領域の番地.

Claims (1)

    【特許請求の範囲】
  1. 1、複数個のプロセッサと、前記プロセッサの全てのも
    のから読み書き可能な共有メモリを有するマルチプロセ
    ッサシステムにおいて、前記プロセッサ間で同期をとる
    手段として、従来から用いられていたセマファオなどを
    用いる同期手段に加えて、各プロセッサが前記共有メモ
    リ上の当該プロセッサ用に割り当てられた領域に当該プ
    ロセッサの実行状況に応じた実行状況番号を書き込み、
    当該プロセッサと同期を取る必要があるプロセッサが前
    記実行状況番号を参照し、当該プロセッサの処理の状況
    を把握することにより、補助的に同期を取ることを特徴
    とするマルチプロセッサシステム2、複数個のプロセッ
    サと前記プロセッサの全てのものから読み書き可能な共
    有メモリを有するマルチプロセッサシステムにおいて、
    複数の並列動作をするプロセスが作動するシステムにお
    いて、一つのプロセスの処理をより細かい処理単位の処
    理に分割し、前記プロセスの起動時に複数個のプロセッ
    サを該プロセスに割り当てて、該プロセスの該細かい処
    理単位ごとに処理を分担させ、割り当てられた該プロセ
    ッサ間では前記プロセッサ間同期方式を用いてプロセッ
    サ間通信を実現することにより、多数のプロセッサを用
    いて処理を実行することを特徴とするマルチプロセッサ
    システム。
JP16569289A 1989-06-27 1989-06-27 マルチプロセッサシステム Pending JPH0329049A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16569289A JPH0329049A (ja) 1989-06-27 1989-06-27 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16569289A JPH0329049A (ja) 1989-06-27 1989-06-27 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH0329049A true JPH0329049A (ja) 1991-02-07

Family

ID=15817231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16569289A Pending JPH0329049A (ja) 1989-06-27 1989-06-27 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH0329049A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
JP2013122633A (ja) * 2011-12-09 2013-06-20 Nec Corp タスク並列処理方法、その装置及びそのプログラム、並びにプログラム生成方法、その装置及びそのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
JP2013122633A (ja) * 2011-12-09 2013-06-20 Nec Corp タスク並列処理方法、その装置及びそのプログラム、並びにプログラム生成方法、その装置及びそのプログラム

Similar Documents

Publication Publication Date Title
US9588808B2 (en) Multi-core system performing packet processing with context switching
JPH0533410B2 (ja)
JPH02238553A (ja) マルチプロセツサ・システム
JPH04348451A (ja) 並列計算機
CN112199173B (zh) 双核cpu实时操作系统数据处理方法
JPH01246656A (ja) プロセッサ間共有メモリ管理方式
CA1304513C (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
US7032099B1 (en) Parallel processor, parallel processing method, and storing medium
US20140047452A1 (en) Methods and Systems for Scalable Computing on Commodity Hardware for Irregular Applications
US11645124B2 (en) Program execution control method and vehicle control device
JPH0329049A (ja) マルチプロセッサシステム
WO2007088582A1 (ja) 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体
CN114371920A (zh) 一种基于图形处理器加速优化的网络功能虚拟化系统
JPH09146904A (ja) アドレス空間共有システム
US5386586A (en) System and method for construction of lists of deferred service requests
JP2019204387A (ja) プログラム実行制御方法およびプログラム変換装置
JP2553526B2 (ja) マルチタスク処理装置
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JPWO2007088581A1 (ja) 共有メモリ型マルチプロセッサにおける手続き呼び出し方法、手続き呼び出しプログラムおよび記録媒体
JPH1153327A (ja) マルチプロセッサシステム
JP2866421B2 (ja) 複数パス並列処理方法
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
US20210279096A1 (en) A System Implementing Multi-Threaded Applications
SU590745A1 (ru) Процессор мультиобработки данных
JPH0340169A (ja) 多重プロセツサシステムおよび複数の処理装置を制御する方法