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

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

Info

Publication number
JPH04296963A
JPH04296963A JP3062034A JP6203491A JPH04296963A JP H04296963 A JPH04296963 A JP H04296963A JP 3062034 A JP3062034 A JP 3062034A JP 6203491 A JP6203491 A JP 6203491A JP H04296963 A JPH04296963 A JP H04296963A
Authority
JP
Japan
Prior art keywords
ipc
thread
shared memory
communication
processor
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
JP3062034A
Other languages
English (en)
Inventor
Masakazu Kobayashi
小林 雅一
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3062034A priority Critical patent/JPH04296963A/ja
Publication of JPH04296963A publication Critical patent/JPH04296963A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロセス間通信を実行
可能にしたマルチプロセッサシステムに関するものであ
る。
【0002】
【従来の技術】最近のコンピュータは、ますます処理能
力の強化が要求されるようになっており、その一環とし
て、一つのオペレーティング・システム(OS)の制御
の下で一つの処理を複数のプロセスが連帯して実行可能
にしたマルチプロセッサシステムが用いられている。
【0003】このようなマルチプロセッサシステムでは
、プロセス間の相互作用を行うためのデータの受け渡し
が必要であり、このための手段として、プロセス間通信
(Inter  Process  Communic
ation、以下、IPCと略称する。)が知られてい
る。
【0004】この場合、このようなIPCには、大別し
て2種類の方法があり、一つには、共用メモリを利用す
る共用メモリ方式であり、もう一方は、通信回線を利用
した通信回線方式である。ここで、前者の共用メモリ方
式は、共用メモリのある領域を各プロセッサが共有し、
その領域に対してデータを読み込んだり書き込んだりし
て、必要なデータの受け渡しを行うものであり、後者の
通信回線方式は、共用メモリを使用することなく、直接
相手にメッセージの形でデータの受け渡しを行うもので
ある。
【0005】現在のマルチプロセッサシステムにおいて
は、このような共用メモリ方式または通信回線方式のい
ずれか一方を採用することによりIPCを実現している
が、これら共有メモリ方式と通信回線方式を比較した場
合、一般には前者の共有メモリ方式が通信回線方式に比
べて高速通信が可能であるとされている。
【0006】一例として、既に商品化されているシステ
ムにおいても、Encore社のMultimux(共
有メモリ方式)では、約1マイクロ秒でデータの受け渡
しのための通信が可能であるのに対して、Intel社
のHyper  Cube(通信回線方式)では、数百
マイクロ秒も必要としている。
【0007】しかし、共有メモリ方式にも問題がないわ
けでなく、マルチプロセッサシステムを構成するプロセ
ッサの数が増加してIPCのための回線が増加すると、
共有メモリの所定領域への同時アクセスがボトルネック
となり、データ受け渡しのための通信速度が大幅に遅く
なる。
【0008】したがって、これら共有メモリ方式および
通信回線方式のものがより高速で効率的な通信をできる
かということについては、マルチプロセッサシステムそ
のものの構成やシステムにかかる負荷の状況などに大き
く依存する。
【0009】ところで、現在のマルチプロセッサシステ
ムでは、IPCを実現するための通信方式は、共有メモ
リ方式または通信回線方式のいずれかを固定的に採用し
ている。このために、例えば、共有メモリ方式を固定的
に採用してしまうと、上述したような状況では、通信回
線方式が有利であると考えられても、あえて不利な共用
メモリ方式をそのまま使用しなければならず、逆に、通
信回線方式を固定的に採用しても、共用メモリ方式が有
利であると考えられても、あえて不利な通信回線方式を
そのまま使用しなければならないなど、現状にそぐわな
い不利な通信方式に起因してデータ受け渡しのための通
信速度が大幅に遅くなるなどの不都合を招くことがあっ
た。
【0010】
【発明が解決しようとする課題】このように従来のマル
チプロセッサシステムでは、IPCを実現するための通
信方式が固定的に設定されているため、システムの状況
によって不利な通信方式がそのまま適用されることがあ
り、このような現状にそぐわない通信方式を用いること
によりデータ受け渡しのための通信速度が大幅に遅くな
るなどの不都合を招いていた。
【0011】本発明は、上記事情に鑑みてなされたもの
で、システムの状況に応じて最適な通信方式を選択的に
採用することができ、データ受け渡しのための通信速度
の遅れを回避でき、合理的で高速なIPCを実現できる
マルチプロセッサシステムを提供することを目的とする
【0012】
【課題を解決するための手段】本発明のマルチプロセッ
サシステムは、複数個のプロセッサを有するものであっ
て、1プロセスに少なくとも2個のプロセッサを利用し
、それぞれのプロセッサについて異なる方式のプロセス
間通信を実行するとともに、最初に通信を完了したプロ
セス間通信方式を採用するように構成している。
【0013】
【作用】本発明では、1プロセスに2つプロセッサを利
用し、他のプロセスとのIPCが必要になった場合に、
両方のプロセスが同時に同一データにアクセスしたのち
、一方のプロセッサは共用メモリ方式でIPCを実行し
、これと並列的に、他方のプロセッサは通信回線方式で
IPCを実行し、これらIPCの実行のうち、先にIP
Cの実行を成功させた結果を採用することにより、シス
テムの状況に応じて最適な通信方式を選択的に採用する
ことが可能になる。
【0014】
【実施例】以下、本発明の一実施例を図面にしたがい説
明する。
【0015】図1は、同実施例の概略的構成を示すもの
である。図において、1はバスで、このバス1には、複
数のプロセッサ(CPU)2を接続するとともに、共用
メモリ領域31を含む主記憶部3を接続している。
【0016】この場合、同実施例のIPC方式では、同
一データを転送するために2つのプロセッサ2を利用す
るものとして、複数のプロセッサ2のうち、図示する2
つのプロセッサ2を第1のプロセス(送信プロセス)4
、他の2つのプロセッサ2を第2のプロセス(受信プロ
セス)5にそれぞれ適用し、これら第1のプロセス4と
第2プロセス5の間でIPCを実行するものとしている
【0017】そして、第1のプロセス4については、一
方のプロセッサ2で共用メモリ方式によるIPCを実行
すると同時に、他方のプロセッサ2で通信回線方式によ
るIPCを実行し、より早く通信できた方のデータを採
用するようなっている。第2のプロセス5についても同
様である。次に、以上のように構成した実施例の動作を
説明する。まず、第1のプロセス(送信プロセス)4に
ついては、図2のフローチャートにより処理が実行され
る。
【0018】この場合、第1のプロセス4の処理を逐行
する過程で、第2のプロセス5とのIPCが必要になる
とフローチャートがスタートする。まず、IPCの開始
にあたって、これ以後利用する競合フラグをオフにリセ
ットする(ステップA1)。ここでの競合フラグは、主
記憶部3の一部を使用して実現される。
【0019】そして、これまでのスレッド(スレッド1
)に加えて、新しいスレッド(スレッド2)を起動する
(ステップA2)。この場合、スレッド1には、第1の
プロセス4の#1のプロセッサ2が割り当てられ、共用
メモリ方式によるIPCが実行され、また、スレッド2
には、同第1のプロセス4の#2のプロセッサ2が割り
当てられ、通信回線方式によるIPCが実行されるよう
になる。また、これらスレッド1、2は並列的に処理が
行われる。
【0020】この状態で、スレッド1は、主記憶部3の
共用メモリ領域31に対して書き込み(Write)操
作を開始する(ステップA3)。次いで、主記憶部3を
使用した競合フラグの送信側競合フラグがonになって
いるかを判断する(ステップA4)。ここで、送信側競
合フラグがonになっていなければ、共用メモリ領域3
1への書き込みが成功するまで(ステップA5)書き込
み操作を継続する。
【0021】ここで、スレッド1による共用メモリ領域
31に対する書き込み操作の途中で、送信側競合フラグ
がonになったとすると、後述するスレッド2によるI
PCが先に成功したと判断して、スレッド1を終了する
(ステップA6)。
【0022】一方、後述するスレッド2によるIPCが
成功する前に共用メモリ領域31に対する書き込みが成
功したとすると、送信側競合フラグをonにセットして
(ステップA7)、その後の処理を継続するようになる
(ステップA8)。
【0023】一方、スレッド2は、上述したスレッド1
と同時に、相手プロセス、つまり第2のプロセス(受信
プロセス)5に対するダイレクトなメッセージ転送を開
始する(ステップA9)。この場合、スレッド2による
通信回線方式のIPCは、上述したスレッド1による共
有メモリ方式の場合と対象的に、仮にスレッド1に先を
越されてもメッセージ転送だけは完了しなければならな
い。したがって、ここでは、相手の第2のプロセス(受
信プロセス)5での受信成功のreplayメッセージ
を受け取るまで待機する(ステップA10)。
【0024】この状態で、第2のプロセス(受信プロセ
ス)5からのreplayメッセージを受け取ると、送
信側競合フラグがonになっているかを判断する(ステ
ップA11)。
【0025】ここで、第2のプロセス(受信プロセス)
5からのreplayメッセージを受け取る前に送信側
競合フラグがonになったとすると、上述したスレッド
1によるIPCが先に成功したと判断して、スレッド2
を終了する(ステップA12)。一方、スレッド1によ
るIPCが成功する前に第2のプロセス(受信プロセス
)5からのreplayメッセージを受け取る前に成功
したとすると、送信側競合フラグをonにセットして(
ステップA13)、その後の処理を継続するようになる
(ステップA14)。次に、第2のプロセス(受信プロ
セス)5においては、図3のフローチャートにより処理
が実行される。
【0026】この場合も、第2のプロセス5の処理を逐
行する過程で、第1のプロセス4とのIPCが必要にな
るとフローチャートがスタートする。まず、IPCの開
始にあたって、これ以後利用する受信側競合フラグをオ
フにリセットする(ステップB1)。ここでの競合フラ
グは、主記憶部3の一部を使用して実現される。
【0027】そして、これまでのスレッド(スレッド1
)に加えて、新しいスレッド(スレッド2)を起動する
(ステップB2)。この場合、スレッド1には、第2の
プロセス5の#1のプロセッサ2が割り当てられ、共用
メモリ方式によるIPCが実行され、また、スレッド2
には、同第2のプロセス5の#2のプロセッサ2が割り
当てられ、通信回線方式によるIPCが実行されるよう
になる。また、これらスレッド1、2は並列的に処理が
行われる。
【0028】この状態で、スレッド1は、主記憶部3の
共用メモリ領域31に対して読み出し(Read)処理
を開始する(ステップB3)。次いで、受信側競合フラ
グがonになっているかを判断する(ステップB4)。 ここで、受信側競合フラグがonになっていなければ、
共用メモリ領域31に対する読み出しが成功するまで(
ステップB5)読み出し操作を継続する。
【0029】ここで、スレッド1による共用メモリ領域
31に対する読み出しの途中で、受信側競合フラグがo
nになったとすると、後述するスレッド2によるIPC
が先に成功したと判断して、スレッド1を終了する(ス
テップB6)。
【0030】一方、後述するスレッド2によるIPCが
成功する前に共用メモリ領域31に対する読み出しに成
功したとすると、受信側競合フラグをonにセットして
(ステップB7)、その後の処理を継続するようになる
(ステップB8)。
【0031】一方、スレッド2は、上述したスレッド1
と同時に、相手プロセス、つまり第1のプロセス(送信
プロセス)4からのメッセージの受信を開始する(ステ
ップB9)。次に、受信側競合フラグがonになってい
るかを判断する(ステップB10)。ここで、受信側競
合フラグがonになっていなければ、メッセージ受信が
成功するまで(ステップB11)受信を継続する。
【0032】ここで、メッセージ受信が成功する前に、
受信側競合フラグがonになったとすると、前述したス
レッド1によるIPCが先に成功したことになるが、こ
の場合は、メッセージ受信を継続し(ステップB12)
、受信が成功して(ステップB13)、相手側にrep
layメッセージを転送した後に(ステップB14)、
スレッド2を終了する(ステップB15)。
【0033】一方、前述したスレッド1によるIPCが
成功する前にメッセージ受信に成功したとすると、受信
側競合フラグをonにセットし(ステップB16)、相
手側にreplayメッセージを転送した後に(ステッ
プB17)、処理を継続するようになる(ステップB1
8)。
【0034】したがって、このようにすれば、プロセス
の処理を逐行する過程で、他のブロセスとのIPCが必
要になった場合に、2つのプロセッサ2に対して別々の
方式でIPCを実行し、先にIPCを成功した結果を利
用するようになるので、システムの多様な状況、つまり
通信回線の使用効率や共用メモリ領域31へのアクセス
頻度などを反映した、より適切な方式によるIPCを実
現することができる。このことは、例えば、図4に示す
ように共用メモリ領域31に対する各プロセッサ2から
のアクセスが少ない場合には、IPCとして共用メモリ
方式が先に成功することから、この場合に有利な共用メ
モリ方式が採用され、一方、図5に示すように多数のプ
ロセスがIPCを実行していて共有メモリ領域31への
競合が激しいときには、通信回線方式が先に成功するこ
とから、この場合に有利な通信回線方式が採用されるよ
うになり、いずれにしてもその場の状況に応じて適切な
IPCが選択され、高速なIPCが実現できることにな
る。
【0035】なお、本発明は上記実施例にのみ限定され
ず、要旨を変更しない範囲で適宜変形して実施できる。 例えば、上述した実施例では、スレッド1とスレッド2
は同時に並列的処理を行うようにしたが、これらスレッ
ド1とスレッド2による処理は厳密に同時である必要は
なく、一方を実行したのち少し待って、他方を実行する
ような方法を採用してもよい。要は、並列的に2つの方
式を実行することである。
【0036】
【発明の効果】本発明のマルチプロセッサシステムは、
2つのスレッドを異なるプロセッサに割り当て、これら
プロセッサについてそれぞれ共用メモリ方式、通信回線
方式の異なる方式を用いてIPCを並列的に実行し、先
にIPCを成功した結果を利用して、これ以降の処理を
継続するようにしているので、共用メモリや通信回線の
アクセス頻度によって左右されるシステムの多様な状況
に応じた最適なIPC方式が自動的に選択することがで
きることになり、現状にあった通信方式を用いることに
よりデータ受け渡しのための通信速度を早めることが可
能となり、高速なIPCを実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施例の概略的構成を示す図。
【図2】図1で示す実施例の動作を説明するためのフロ
ーチャート。
【図3】図1で示す実施例の動作を説明するためのフロ
ーチャート。
【図4】図1で示す実施例の動作を説明するための図。
【図5】図1で示す実施例の動作を説明するための図。
【符号の説明】
1…バス、2…プロセッサ、3…主記憶部、31…共用
メモリ領域、4、5…プロセス。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  複数個のプロセッサを有するマルチプ
    ロセッサシステムにおいて、1プロセスに少なくとも2
    個のプロセッサを利用し、それぞれのプロセッサについ
    て異なる方式のプロセス間通信を実行するとともに、最
    初に通信を完了したプロセス間通信方式を採用すること
    を特徴とするマルチプロセッサシステム。
JP3062034A 1991-03-26 1991-03-26 マルチプロセッサシステム Pending JPH04296963A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3062034A JPH04296963A (ja) 1991-03-26 1991-03-26 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3062034A JPH04296963A (ja) 1991-03-26 1991-03-26 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH04296963A true JPH04296963A (ja) 1992-10-21

Family

ID=13188480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3062034A Pending JPH04296963A (ja) 1991-03-26 1991-03-26 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH04296963A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022177957A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177964A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177965A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177958A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022177957A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177964A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177965A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機
JP2022177958A (ja) * 2021-05-19 2022-12-02 株式会社ユニバーサルエンターテインメント 遊技機

Similar Documents

Publication Publication Date Title
JP3636871B2 (ja) 並列プロセッサシステム
US5790813A (en) Pre-arbitration system allowing look-around and bypass for significant operations
US5131085A (en) High performance shared main storage interface
JP2761506B2 (ja) 主記憶制御装置
KR100291301B1 (ko) 신호 데이터 처리 시스템 및 방법과 신호 데이터 처리 시스템을 구비한 통신 시스템
JPH06309252A (ja) 相互接続インタフェース
CN114662136A (zh) 一种基于pcie通道的多算法ip核的高速加解密系统及方法
KR900001120B1 (ko) 우선도가 낮은 유니트를 우선도가 높은 위치에 위치시키기 위한 분배된 우선도 회로망 로직을 가진 데이타 처리 시스템
US5222219A (en) Pipeline computer system having write order preservation
US8909873B2 (en) Traffic control method and apparatus of multiprocessor system
JP2000181891A (ja) 共有メモリアクセス順序保証方式
JP2002024007A (ja) プロセッサシステム
JPH0644191A (ja) バッファ管理方法
KR100261731B1 (ko) 다중 프로세서시스템에 있어서 다중 프로세서 인터럽트 요청 및처리방법
CN114500052B (zh) 一种基于事件驱动的高效数据加密转发方法及装置
EP1193605B1 (en) Apparatus and method for the transfer of signal groups between digital signal processors in a digital signal processing unit
JPS6240565A (ja) メモリ制御方式
JP2961542B2 (ja) データ処理システム
JP2856709B2 (ja) バス間結合システム
JPS58169660A (ja) マルチプロセツサシステムの構成方法
JP2664208B2 (ja) ダイレクトメモリアクセス制御装置ならびにダイレクトメモリアクセス制御方法
CN119862047A (zh) 一种基于8051内核的soc数据传输控制装置
JPH0586571B2 (ja)
JP3637583B2 (ja) 複数プロセッサと被制御装置の制御方法
JPH0478933A (ja) 仮想プロセッサによるプログラム処理方式