JP2003162514A - 複数プロセッサによる並列分散制御方式 - Google Patents

複数プロセッサによる並列分散制御方式

Info

Publication number
JP2003162514A
JP2003162514A JP2001360752A JP2001360752A JP2003162514A JP 2003162514 A JP2003162514 A JP 2003162514A JP 2001360752 A JP2001360752 A JP 2001360752A JP 2001360752 A JP2001360752 A JP 2001360752A JP 2003162514 A JP2003162514 A JP 2003162514A
Authority
JP
Japan
Prior art keywords
processor
packet
processors
data
program
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
JP2001360752A
Other languages
English (en)
Inventor
Koichi Kumazawa
浩市 熊沢
Yoshio Yoshioka
良雄 吉岡
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 JP2001360752A priority Critical patent/JP2003162514A/ja
Publication of JP2003162514A publication Critical patent/JP2003162514A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 各種の機能を制御するプログラムを単純な構
成として容易に作成できると共に、プロセッサそれぞれ
の内部に容易に組込むことができる。 【解決手段】 機能分散した複数の制御・演算プロセッ
サ1−Kと一つの通信用プロセッサ1−Cとを接続する
シリアルポート2−K,2−Cを、単方向でループ状に
単方向通信路3が接続し、固定長パケットによりデータ
が交換されている。制御・演算プロセッサ1−Kはメモ
リ部およびデータフロー処理部を有する同一の基本構成
により形成される。通信用プロセッサ1−Cがホストコ
ンピュータ10と接続し、それぞれの機能を発揮するた
めのプログラムを含む各種パケットをから受けて転送す
ることにより制御・演算プロセッサ1−Kに格納する。
従って制御・演算プロセッサ1−Kは、所定のデータを
受けた際に格納されているプログラムに基づいてその機
能を発揮するよう受けたデータを処理している。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数プロセッサに
よる並列分散制御方式に関し、特に、各種の機能を制御
するプログラムを単純な構成として容易に作成できると
共に、プロセッサそれぞれの内部に容易に組込むことが
できる複数プロセッサによる並列分散制御方式に関す
る。
【0002】
【従来の技術】従来、この種の複数プロセッサによる並
列分散制御方式として、例えばベルトコンベアでの製造
用ロボットなどのような制御システムでは、多くのセン
サー部からの入力データを処理し、多くの制御部へ制御
データを出力する必要がある。これらの入力処理および
出力制御を一つのホストコンピュータで行うことは、そ
の制御が非常に複雑となる。更に、センサ部または制御
部の変更のたび、ソフトウエアの変更が必要になる。そ
こで、現在では、各センサー部および各制御部に小さな
プロセッサを置いて、ある程度、入力処理または出力処
理を行う機能分散型の制御システムという考え方が主流
である。
【0003】例えば、図11に示されるように、中央に
ホストコンピュータ100が共通処理プログラム101
を有しており、その処理を実行するプロセッサ111〜
114それぞれはそれぞれに対応するポート121〜1
24によりシステムバス130を介してホストコンピュ
ータ100に接続されている。
【0004】従って、例えばセンサーで検出した情報に
基づいて制御する場合、まず、センサ用プロセッサ11
3それぞれは、入力したデータをホストコンピュータ1
00に送っている。ホストコンピュータ100は、受け
たデータを処理し、その結果に応じてそれぞれ対応する
制御プロセッサ114に制御データを送っている。すな
わち、ホストコンピュータ100がプロセッサ111〜
114それぞれに対して入出力制御を行うことになる。
【0005】
【発明が解決しようとする課題】上述した従来の複数プ
ロセッサによる並列分散制御方式では、ホストコンピュ
ータが複数プロセッサそれぞれに対して入出力制御を行
なっているので、大規模なシステムになればセンサー部
および制御部が多数となり、従って、ホストコンピュー
タ100の負荷も大きくなる。そして、その制御部分で
あるソフトウエアも更に複雑なものになるという問題点
がある。
【0006】本発明の課題は、このような問題点を解決
し、各種の機能を制御するプログラムを単純な構成とし
て容易に作成できると共に、プロセッサそれぞれの内部
に容易に組込むことができる複数プロセッサによる並列
分散制御方式を提供することである。
【0007】
【課題を解決するための手段】本発明による複数プロセ
ッサによる並列分散制御方式は、機能的に分散した複数
のプロセッサと、当該プロセッサそれぞれを接続するシ
リアルポートと、当該シリアルポートそれぞれを単方向
でループ状に接続する通信用伝送路とを備え、当該通信
用伝送路を用いて固定長パケットにより前記シリアルポ
ートを介しデータを相互間で交換して制御機能を発揮す
る複数プロセッサによる並列分散制御方式である。この
プロセッサそれぞれはメモリ部およびデータフロー処理
部を有する同一の基本構成により形成され、上記プロセ
ッサの一つは外部のホストコンピュータと接続し当該ホ
ストコンピュータから受けた通信用プログラムを内部に
格納して機能する通信用プロセッサである。
【0008】また、前記メモリ部は前記通信用プロセッ
サおよび前記シリアルポートを接続する通信用伝送路を
介してそれぞれの機能を発揮するためのプログラムを含
む各種パケットを前記ホストコンピュータから受けて格
納する。また、前記データフロー処理部は所定のデータ
を受けた際に前記メモリ部に格納されているプログラム
に基づいてその機能を処理している。
【0009】このように、単方向でループ状に接続する
通信用伝送路に各プロセッサがシリアルポートを介して
接続されるので各プロセッサは共通バス方式でみられる
ファン・アウト(fan−out)のような問題がない
と共に情報のブロックであるパケットの衝突も起こら
ず、またルーティング処理も不要なため、各プロセッサ
は基本プログラムが簡単でかつ構造も簡単化できる。宛
先を有する固定長パケットによりデータを単方向の通信
用伝送路上に送ることができるので、各プロセッサが単
純な構成であってもよく、かつプロセッサそれぞれに単
機能に対する処理用プログラムを予め組み込むことによ
りデータ転送およびその処理ができる。また、各プロセ
ッサがプログラムなどを格納するメモリおよびデータ処
理用のデータフロー処理部を備えることにより付与され
た機能をプロセッサそれぞれの内部で処理可能であり、
ホストコンピュータに負担をかけることはない。
【0010】更に、上記シリアルポートは、受信部と送
信部と回線切替部とを備えている。
【0011】受信部は前記通信用伝送路により前位シリ
アルポートと接続してパケットを受けて前記プロセッサ
に送る。送信部は前記プロセッサから受けたパケットを
後位シリアルポートへ送る。回線切替部は、前記受信部
の入力と前記送信部の出力との二つを入力として接続し
自己の接続先プロセッサから指示を受けて前記二つのい
ずれか一方を、通信用伝送路を介して後位シリアルポー
トと接続する。
【0012】このようなシリアルポートは、初期状態で
前記回線切替部により前記受信部の入力を後位シリアル
ポートへ接続させることができる。一方、プロセッサ
は、リセット条件の発生により前記ホストコンピュータ
から所定の故障診断パケットを受けた際には、正常動作
により前記回線切替部に切替え指示を送り、かつ、前記
回線切替部は、前記切替え指示を受けた際に自己の出力
に前記受信部の入力に替わり前記送信部の出力を接続す
ることを特徴としている。
【0013】このような構成により、システムが稼働状
態であっても故障となったプロセッサを切離し、再度シ
ステムに投入することができる。
【0014】また、上記プロセッサは、前記ホストコン
ピュータから前記故障診断パケットを受けた後、プログ
ラムパケットの生成パケット、定数データパケット、お
よび初期データパケットそれぞれを順次受けて前記メモ
リ部に格納して、機能実行準備を整えることができる。
また、上記ホストコンピュータは、すべての前記プロセ
ッサに故障診断パケットを送信したのち、応答のパケッ
トを返送したプロセッサに「稼動状態」を、また応答な
しのプロセッサに「故障状態」を、それぞれ記録してお
くプロセッサに関する管理テーブルを備えることが、シ
ステム管理のために望ましい。
【0015】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
【0016】図1は本発明の実施の一形態を示す機能ブ
ロック図である。図1に示された複数プロセッサによる
並列分散制御方式では、ホストコンピュータ10がプロ
セッサに関する管理テーブル11を有して通信用プロセ
ッサ1−Cと接続している。
【0017】管理テーブル11は、少なくとも制御・演
算プロセッサ1−1〜1−Nそれぞれの稼動状態を記録
し管理している。通信用プロセッサ1−Cは稼動状態に
ある制御・演算プロセッサ1−1〜1−Nのうちの一つ
でもよい。
【0018】並列分散制御部12上には、一つの通信用
プロセッサ1−C、N個の制御・演算プロセッサ1−1
〜1−N、(N+1)個のシリアルポート2−C、2−
1〜2−N、および単方向通信路3が搭載されている。
【0019】図示されるように通信用プロセッサ1−C
は、外部との接続に、ループ状で接続する単方向通信路
3に対してデータを入出力するためのシリアルポート
(Serial port)2−Cと、ホストコンピュ
ータとの通信を行うためデータが入出力するシリアルポ
ート(図示省略)とだけを有する。
【0020】例えばK番目の制御・演算プロセッサ1−
Kは、図2に示されるように外部との接続に、物理的に
ループ状接続を行ないデータを入出力するシリアルポー
ト(Serial port)2−Kと、一つのセンサ
ー用入力ポートおよび一つの制御用出力ポートを有する
並列ポート27とだけを有する。単方向通信路3は、単
方向でシリアルポート2−C、2−1〜2−Nそれぞれ
を順次ループ状に接続する通信用伝送路である。
【0021】次に、図1に図2を併せ参照し、N個のう
ち「1」から「N」までのいずれも構成は同一であるの
で、K番目を代表とした制御・演算プロセッサ1−Kお
よびシリアルポート2−Kについて説明する。通信用プ
ロセッサ1−Cについても、並列ポートがホストコンピ
ュータ10を接続する入出力ポートである以外、同一の
構成である。
【0022】制御・演算プロセッサ1−Kは、受信バッ
ファ21、パケット解析部22、送信バッファ23、メ
モリ部24、データフロー処理部25、切替駆動部2
6、および並列ポート27を備える。シリアルポート2
−Kは受信部28、送信部29、および回線切替部30
を有する。
【0023】受信バッファ21は、前位のプロセッサ1
-(K-1)から受信部28を介して受けたパケットをFIF
O(先入れ先出し)形式でパケット解析部22へ送る。
パケット解析部22は、このプロセッサの正常稼動状態
で、FF(フリップフロップ)回路で形成される切替駆
動部26に指示して回線切替部30の切替えを制御して
いる。すなわち、この稼動状態では、回線切替部30は
送信部29の出力回線P2を後位プロセッサ1-(K+1)へ
の出力回線Sに接続している。また、パケット解析部2
2は、受けた自プロセッサ宛てパケットをメモリ部24
へ送り、他プロセッサ宛てパケットを送信バッファ23
へ送る。
【0024】送信バッファ23は、パケット解析部22
またはデータフロー処理部25から受ける他プロセッサ
宛てのパケットをFIFO形式で送信部29へ送る。メ
モリ部24は受けたプログラムパケット(PP)の25
6個分を格納する領域を有し、パケット解析部22から
受けたデータを格納、または指示により更新する。
【0025】すなわち、一つ前のプロセッサ1-(K-1)か
ら送られてきたバイトは順次受信バッファ21に格納さ
れる。そして、パケット解析部22は、受信バッファ2
1から1バイトずつ取り出してパケットを復元し、その
パケットの目的プロセッサ番号(DPE)を解析する。
その結果、他プロセッサへのパケットであれば、送信バ
ッファ23にそのパケットを1バイトずつ書き込む。ま
た、そのパケットが自プロセッサ1−K宛であれば、受
けたパケットのプログラムパケットメモリ領域番号(P
PA)から、プログラムパケットの格納位置を計算し、
その位置にそのパケットのもつデータなどを格納する。
【0026】一方、送信バッファ23に格納されたパケ
ットは、タイマー割り込みを利用して、送信バッファ2
3から1バイトずつ取り出して次位のプロセッサ1-(K+
1)へ送る。
【0027】データフロー処理部25は、本発明の特徴
であり、制御・演算プロセッサ1−Kに接続されたセン
サーからのデータ入力および外部への制御出力を、並列
ポート27を介して行うと共にある程度の演算処理をも
行う。データフロー処理部25における処理の詳細は図
4および図5を参照したパケットの説明に続いて記載す
る。
【0028】回線切替部30は、初期状態で、前位のプ
ロセッサ1-(K-1)から受信部28への入力回線P1を後
位のプロセッサ1-(K+1)への出力回線Sに接続してお
り、切替駆動部26からの指示により出力回線Sに接続
する入力回線P1を送信部29の出力回線P2に切り替
えて接続する。すなわち、回線切替部30は、故障プロ
セッサがあった場合には、単方向ループ状接続であるた
めに、プロセッサ間で通信ができなくなるので、このプ
ロセッサ1−Kをバイパスして切り離すことができる、
フォールト・トレラント用回路である。
【0029】次に、図3に図1および図2を併せ参照し
てフォールト・トレラント用回路について説明する。
【0030】まず、システムがリセットされた際、また
は電源が入った際には、FF回路の切替駆動部26から
出力される信号Qは「Low」状態である。このとき、
前位プロセッサ1-(K-1)のシリアルポート2-(K-1)から
の出力回線P1が出力回線Sにより次位のプロセッサ1
-(K+1)と接続される。すなわち、このプロセッサ1−K
のシリアルポート2−Kの出力回線P2に出力される信
号は次位のプロセッサ1-(K+1)へ出力されない。
【0031】この状態において、ホストコンピュータ1
0からこのプロセッサ1−Kへの故障診断パケットが送
られた場合、プロセッサ1−Kはシリアルポート2−K
の受信部28からこのパケットを受信することができ、
受信バッファ21に入力される。そこで、このプロセッ
サ1−Kが正常に動作する場合には、パケット解析部2
2からFF回路の切替駆動部26をセット状態にして、
切替駆動部26の出力信号Qを「High」にする。こ
のとき、このプロセッサ1−Kのシリアルポート2−K
の出力回線P2に出力される信号が出力回線Sへ出力さ
れる。この際、故障診断パケットに対する応答パケット
が、パケット解析部22で作成され、送信バッファ2
3、送信部29の出力回線P2、および回線切替部30
を介してホストコンピュータ10まで返送される。
【0032】また、このプロセッサ1−Kに故障がある
場合には、切替駆動部26からの出力信号Qを「Lo
w」のままとするので、故障診断パケットに対する応答
パケットは出力されない。従って、ホストコンピュータ
10は、プロセッサ1−Kからの応答パケット「無」に
よって、プロセッサ1−Kの故障を検出することができ
る。
【0033】このような構成においては、各プロセッサ
は8ビットマイクロプロセッサ程度の単純な構成で充分
である。そして、単方向ループ状接続におけるシリアル
転送は、9,600bps〜38,400bps程度の
伝送速度であり、かつRS232C規格の接続条件のよ
うに1バイトずつの非同期転送でも十分である。さら
に、通信用プロセッサとホストコンピュータとの接続も
9,600bps〜38,400bpsの伝送速度およ
びRS232C規格の接続条件を用いることにより、ホ
ストコンピュータのハードウェア構成も標準装備で十分
である。
【0034】次に、図4には、図2に示すメモリ部24
に格納されるプログラムパケット形式の一例が示されて
いる。図示されるパケットは、32バイトの固定長を有
し、先頭から、1バイトずつのDPE、PPA、CA
C、およびFCC、2バイトずつのOT0〜OT9、並
びに4バイトずつのデータ領域A,Bを有する。
【0035】また、図5には、プロセッサ間で転送され
るパケット形式の一例が示されている。図示されるパケ
ットは8バイトで構成されている。その構成は、図示さ
れるように、先頭の4バイトは図4と同様、1バイトず
つのDPE、PPA、CAC、およびFCCである。残
る4バイトは、プログラムパケット生成用としてOT0
〜OT9を二つずつに分割して構成するデータである。
【0036】これらのパケットにおける各部の意味は以
下のようになっている。
【0037】DPE:パケットの宛先である目的プロセ
ッサ番号(01〜7F)である。
【0038】「0x7F」の場合はホストコンピュータ
を表す。また、定数データパケットおよび変数データパ
ケットでは、最上位ビットが「0」の場合にデータ領域
「A」を、また「1」のときデータ領域「B」をそれぞ
れ指定し、データをそれぞれのプログラムパケット領域
に格納する。
【0039】SPE:発信元のプロセッサを示す源プロ
セッサ番号(01ー7F)である。
【0040】データパケット、実行終了通知パケット、
およびホストへの入出力パケットの「FCC」領域に格
納される。各プロセッサへの実行終了通知パケットでは
「PPA」領域に格納される。
【0041】PPA:プログラムパケットメモリ領域番
号(0〜255)である。
【0042】プログラムパケットメモリ内の格納領域を
指定する。
【0043】CAC:制御・演算コード(図12を参
照)である。
【0044】なお、これが「0xFF」の場合には定数
データパケット、また「0x00」の場合には変数デー
タパケットそれぞれを意味する。
【0045】FCC:発火条件コード(ビット構成:0
0AB00ab)である。
【0046】このビット構成で「ab」は下記を示す
「発火条件フラグ」である。
【0047】01:データ領域Aが定数、データ領域B
が変数、 10:データ領域Aが変数、データ領域Bが定数、並び
に 11:データ部AおよびBの双方が変数。
【0048】上記ビット構成で「AB」は下記を示す
「データ到着状況フラグ」である。
【0049】00:データ領域AおよびBの双方にデー
タが格納されていない状態、 01:データ領域Bにデータが格納されている状態、 10:データ領域Aにデータが格納されている状態、並
びに 11:データ領域AおよびBの双方にデータが格納され
ている状態 OTn:出力先に関する出力プロセッサ番号とプログラ
ムパケットメモリ領域番号(2バイト)である。変数デ
ータパケットを生成するときの目的プロセッサ番号(D
PE)と、プログラムパケットメモリの領域番号(PP
A)とを示す。目的プロセッサ番号(DPE)におい
て、最上位ビットが「0」の場合にデータ領域A、また
「1」のときデータ領域Bを指定する。
【0050】データ領域部A:演算データAの格納領域
(整数または実数4バイト)である。
【0051】データ領域部B:演算データBの格納領域
(整数または実数4バイト)である。
【0052】ここで、図2に戻り、図4および図5を併
せ参照してデータフロー処理部25を説明する。
【0053】データフロー処理部25は、プログラムパ
ケットの発火条件コード(FCC)をチェックし、発火
条件フラグとデータ到着状況フラグが一致した「発火」
条件の際、そのプログラムパケットの内容に従って、デ
ータ領域部のデータAおよびBについて演算・制御の処
理を行う。詳細については図12が参照できる。そし
て、データフロー処理部25は最大10個の出力先(O
Tn)への変数データパケットを作成する。データフロ
ー処理部25は、作成された変数データパケットが他プ
ロセッサへのパケットの場合、送信バッファ23に書き
込み、自プロセッサ1−K宛であればメモリ部24の該
当プログラムパケット領域に結果データを書き込むとと
もに必要フラグをセットする。
【0054】なお、他プロセッサから受け取った自プロ
セッサ1−K宛の変数データパケットも同様に処理され
るが、これは、パケット解析部22によりメモリ部24
の該当プログラムパケット領域に結果データが書き込ま
れるとともに必要フラグがセットされる。
【0055】また、図2に示す並列ポート27への入出
力は、制御・演算コード「0x56」(入力)および
「0x57」(出力)をもつプログラムパケットが発火
され、処理されるときにデータフロー処理部25によっ
て行われる。ここで、センサーからの入力データは、変
数データパケットとして、プロセッサ1−1〜1−Nそ
れぞれへ転送されることになる。
【0056】次に、図6に図1および図2を併せ参照し
て、本システム全体の主要動作手順について説明する。
【0057】まず、ホストコンピュータ10には各制御
・演算プロセッサ(以後、PEと略称する)1−1〜1
−Nの稼働状態や故障状態などを記録する例えば127
PE分のメモリ領域を有する管理テーブル11を準備す
る。そして、ホストコンピュータ10は、電源が投入さ
れた際、またシステムがリセットされた際には、通信用
プロセッサ1−Cを介して各PE1−1〜1−Nに対し
て故障診断パケットを送るり、図7を参照して説明する
故障診断手順を実施する。この故障診断パケットに対し
て応答パケットの返送を受けることにより、各PE1−
1〜1−Nの稼働状態などをプロセッサ管理テーブル1
1に記録(手順S1)する。
【0058】次いで、ホストコンピュータ10は、プロ
セッサ管理テーブル11に基づき、稼働状態のPEにつ
いてデータフロー言語で記述したプログラムをコンパイ
ル(手順S2)する。
【0059】なお、並列ポートへの入出力に関する制御
・演算コードに「0x56」および「0x57」以外の
制御・演算コード(CAC)が故障プロセッサに割り当
てられている場合、ホストコンピュータ10はその制御
・演算コード(CAC)を他の稼働状態PEに割当てを
変更する。この変更は、コンパイラが行う。また、コン
パイル結果はオブジェクトとして、ホストコンピュータ
10のメモリ上またはファイルに格納(手順S3)され
る。
【0060】次に、ホストコンピュータ10は、コンパ
イル後のオブジェクトから、稼動状態の各PEへ転送す
るためのプログラムパケット生成パケットを作成して、
通信用プロセッサ1−Cに送出する。そして、通信用プ
ロセッサ1−Cから単方向通信路3を介して、このパケ
ットが図8に示されるようなシーケンスフローにより稼
動状態にある各PEに転送(手順S4)される。
【0061】次に、ホストコンピュータ10は、プログ
ラム中の定数データをもとに、定数データパケットを作
成して、上記パケットと同様に通信用プロセッサ1−C
に送出し、稼動状態の各PEに転送し、続いて、「st
art」文による初期データパケットを作成して、上記
同様、通信用プロセッサ1−Cを介して稼動状態の各P
Eに転送(手順S5)する。
【0062】次いで、システム全体で、データが揃った
演算はどこからでも実行するというデータフロー処理方
式に従ってプログラムが実行される。従って、このプロ
グラム記述には、他の言語にみられるような上から下へ
記述しなければならないとする制約はない。すなわち後
に図で例示するプログラムの記述順序を入替えても同様
な実行結果が得られる。
【0063】すなわち、ホストコンピュータ10、通信
用プロセッサ1−C、および稼動状態のPEは、入力要
求を受付けした際(手順S6のYES)にはファイルな
どからデータを入力(手順S7)し、データパケットを
生成してこのデータの宛先PE、例えばPE1−K宛て
に転送(手順S8)する。
【0064】上記手順S6が「NO」で、出力要求を受
付けした際(手順S9のYES)にはその結果がその宛
先へ出力(手順S10)される。
【0065】次に、図7に図1および図2を併せ参照し
て上記図6における故障診断手順S1の詳細について説
明する。
【0066】ホストコンピュータ10は、リセット信号
を受付けした際(手順S11)には、各PE1−1〜1
−Nに対して故障診断パケットを送出(手順S12)し
てタイマ(図示省略)を起動(手順S13)する。図2
および図3を参照して上述したように、故障していない
で稼動状態にある例えば図2のPE1−Kは、回線切替
部30を切り替えて応答パケットを返送するので、ホス
トコンピュータ10はこの応答パケットを受付け(手順
S14のYES)する。ホストコンピュータ10は、発
信元PEに対応する管理テーブル11のメモリ領域に、
受付けた応答パケット毎に「稼動状態」を順次記録(手
順S15)する。
【0067】この記録ごとに、ホストコンピュータ10
は、すべてのPEに対する状態記録による設定を終了
(手順S16のYES)の場合には、上記タイマの時限
を解除(手順S17)して手順を終了する。
【0068】一方、上記手順S14が「NO」で応答パ
ケットの返送がない場合、PEからの応答パケットを時
限未到達(手順16のNO)の間、手順は上記手順S1
4に戻って応答パケットを待つ。従って、この間、応答
パケットを順次受付けるので、上記手順S15が受付け
の都度繰り返される。
【0069】次いで、上記タイマが時限に到達した際
(手順S18のYES)には、故障プロセッサおよび未
接続プロセッサからは応答パケットがないので、ホスト
コンピュータ10は、その該当領域に「故障状態」と記
録(手順S19)する。ここで、すべてのPEに対する
状態の記録による設定が終了し、手順は終了する。
【0070】次に、図8に図1および図2を併せ参照し
て上記図6における手順S4の詳細について説明する。
【0071】まず、ホストコンピュータ10は、コンパ
イル後のオブジェクトから、各プロセッサへ転送するた
めのプログラムパケット生成パケットを作成して、通信
用プロセッサ1−Cへ送出(手順S21)する。
【0072】通信用プロセッサ1−Cは、入出力ポート
を介して直接このプログラムパケット生成パケットを受
付けする。上述したように、通信用プロセッサ1−C
は、自己宛てに受けたパケットを内部メモリに格納(手
順S22)し、他のPE宛てのパケットを後位PE1−
1へシリアルポート2−Cから単方向通信路3を介して
転送(手順S23)する。
【0073】稼動状態のPE1−1は、シリアルポート
2−1から単方向通信路3を介してこのプログラムパケ
ット生成パケットを受付けする。上述同様に、PE1−
1は、自己宛てに受けたパケットを内部メモリに格納
(手順S24)し、他のPE宛てのパケットを次位PE
1−2にシリアルポート2−1から単方向通信路3を介
して転送(手順S25)する。このようにして、例えば
稼動状態のPE1−Kはメモリ部24の所定領域に自己
宛てのプログラムパケット生成パケットを格納できる。
従って、稼動状態のPE1−Nは、シリアルポート2−
Nから単方向通信路3を介してこのプログラムパケット
生成パケットを受付けし、上述同様に、自己宛てに受け
たパケットを内部メモリに格納できる。
【0074】一方、故障状態のPE宛てのプログラムパ
ケット生成パケットは、受け取るPEがないのでそのま
ま次位となる通信用プロセッサ1−Cにシリアルポート
2−Cから単方向通信路3を介して転送(手順S26)
される。このようにして、プログラムパケット生成パケ
ットが稼働中の各PEに格納される。
【0075】また、他のパケットも上記同様の手順で転
送される。従って、稼動状態のPE1−Nは、他のPE
宛てのパケットを次位となる通信用プロセッサ1−Cに
シリアルポート2−Cから単方向通信路3を介して上記
手順S26により転送する。転送を受けた通信用プロセ
ッサ1−Cは、PE1−Nから受けたホストコンピュー
タ10宛てのパケットを転送(手順S27)すると共に
自己宛てのパケットを格納する上記手順S22を実行す
る。手順S22以降の手順は、手順S27まで上述した
手順を繰り返す。
【0076】次に、図9に図8並びに図1および図2を
併せ参照して上記図6の手順S4に続く手順S5の詳細
について図8の手順S21に続くホストコンピュータ1
0の動作手順から説明する。
【0077】まず上記手順S21でプログラムパケット
生成パケットを作成し通信用プロセッサ1−Cに送出し
たホストコンピュータ10は、プログラム中の定数デー
タに基づき、定数データパケットを作成(手順S31)
して、上記図8に示されると同様に、通信用プロセッサ
1−Cに送出し、かつ稼動状態の各PEに送出(手順S
32)する。次に「start」文による初期データパ
ケットを作成(手順S33)して、上述同様に通信用プ
ロセッサ1−Cに送出し、稼動状態の各PEに送出(手
順S34)する。従って、定数データパケットおよび初
期データパケットが宛先PEそれぞれに格納される。
【0078】次に、図10に図2を併せ参照してPE1
−Kにおけるデータフロー処理部25の動作手順につい
て説明する。ここで、メモリ部24は、図示されるよう
に、プログラムパケット(以後、PPと略称する)の2
56分の領域を有しているものとする。また「N」番目
のプログラムパケット(PP)をPP(N)で表わすも
のとする。
【0079】まず、PP番号の「N」を「0」にセット
(手順S41)する。すなわち、データフロー処理部2
5はまずメモリ部24から番号「0」のPP(0)を取
出し(手順S42)して「FCC」領域をチェック(手
順S43)する。手順S43のチェックで、データが揃
っている場合(手順S44のYES)には、データフロ
ー処理部25はPP(0)の「CAC」に基づき演算
(手順S45)し、その結果を結果データパケットに作
成(手順S46)する。
【0080】次いで、データフロー処理部25は、その
作成した結果データパケットが自己PE1−K宛ての場
合(手順S47のYES)には、自己PE1−Kのメモ
リ部24におけるPP該当のデータ領域にその結果デー
タを格納(手順S48)し、かつ「FCC」にフラグを
セットする。なお、他のPEから受けた結果データパケ
ットについては、このパケットの結果データを、上記図
2のパケット解析部22によって該当するPP番号のデ
ータ領域に格納し、かつ「FCC」にフラグをセットす
る。
【0081】他方、上記手順S47が「NO」で、作成
した結果データパケットが他PE宛ての場合、この作成
パケットを宛先PEへ転送(手順S49)する。
【0082】また、上記手順S44が「NO」でデータ
が未揃い、上記手順S48による結果データが格納済
み、または上記手順S49で作成パケットを他PE宛て
に転送済みの場合、データフロー処理部25は、PP番
号の「0」に「1」を加算(手順S50)した数値
「1」として数値「256」と比較(手順S51)す
る。
【0083】この手順S51が「YES」で加算された
数値「N」が数値「256」より小さい場合、上記手順
S42に戻る。いまは数値「1」のため上記手順S42
に戻りPP(1)を取り出す。以下上述同様の手順を、
数値「N」が数値「255」となるまで繰り返す。手順
S51が「NO」で「N=256」または「N」が数値
「256」を超えた場合には上記手順S41により数値
は「0」に戻り、上記手順が最初から開始される。
【0084】次に、図13から図15までに例示される
プログラムを参照して、本システムの動作を具体的に説
明する。この動作は、ニュートン法によって2乗根を求
めるプログラムに基づいている。また、動作は、上述し
たように、制御・演算プロセッサの故障診断終了後であ
る。
【0085】まず、図13において、右側に示されるプ
ログラムが所定のデータフロー言語仕様に基づくプログ
ラミングを行って生成される。このプログラムを言語コ
ンパイラにかけると左側のオブジェクトが得られる。こ
こで「outx」「ina」「inb」および「in
c」それぞれの値は、変数名に割り当てられたユニーク
な番号である。このオブジェクトをもとに、データの流
れにおける入出力関係から、図14および図15に示さ
れるプログラムパケットが作成され、通信用プロセッサ
に転送される。
【0086】次に、プログラム内にある定数データパケ
ットが生成されて、上記同様に通信用プロセッサに転送
される。このパケット転送の結果、制御・演算プロセッ
サではデータが順次得られるので、プログラムパケット
メモリにプログラムパケットが生成される。
【0087】以後の制御・演算プロセッサの動作につい
て、以下に順次示す。具体的には図2に示されるデータ
フロー処理部が処理する。
【0088】手順(1):図13に示されるプログラム
20行目の「fs=start」文による初期値データ
が各文の右辺の変数名「fs」に流れる。すなわち、プ
ログラム3行目の文「fx=in(fs)」の変数名
「fs」にこの初期値データが格納される。
【0089】手順(2):各文の中でデータが揃ってい
る文は3行目の「fx=in(fs)」文のみあり、こ
れが実行される。
【0090】手順(3):「fx=in(fs)」文が
実行されると、ホストコンピュータに対してデータ入力
要求が出される。ホストコンピュータでデータが入力さ
れると、変数名「fx」にそのデータが流れ、4行目と
5行目との「fx」に入力データが格納される。
【0091】手順(4):次にデータが揃っている文
は、4行目の「if(fx) fdd,fdd,fs
s」文であり、これが実行される。「fx」のデータが
「2.0」であるので、変数名「fss」にデータが流
れ、5行目と6行目とに代入される。
【0092】手順(5):次にデータが揃っている文
は、5行目と6行目とであり、これらの文が実行され、
変数名「fxx」と変数名「fa」とにデータが流れ、
10行目、14行目、18行目、および19行目に代入
される。
【0093】手順(6):以下、上記手順(5)に示さ
れると同じ手順を繰り返す。8行目の「if(ft5)
fd1,fd2,fd2」文において、変数名「ft
5」の値が収束して正になると、変数名「fd2」にデ
ータが流れ、16行目にそのデータが格納される。
【0094】手順(7):次にデータが揃っている文
は、16行目の「fans=set(fa1,fd
2)」であり、変数名「fans」にデータが流れる。
【0095】手順(8):次にデータが揃っている文
は、17行目の「fs=out(fans)」であり、
ホストコンピュータに対して変数名「fans」の結果
データの出力要求が出される。これとともに、変数名
「fs」にデータが流れるので、再び上記手順(1)か
ら繰り返し実行することになる。
【0096】なお、これらの文は、並列ポートへの入出
力文を除き、どの制御・演算プロセッサでも実行可能で
ある。また、複数のプロセッサ間での通信を意識するこ
となくプログラミングが可能である。
【0097】また、図16および図17にモータドライ
ブのためのプログラムを示す。
【0098】この動作も上述したと同様な手順で実行さ
れる。ここで、変数名「inmdtx」の下位8ビット
は並列ポートへの出力データであり、2つのモータの回
転方向を決定する。上位のビットはソフトタイマの値で
あり、モータの動作時間を与える。この変数名「inm
dtx」の値は他プロセッサから与えられることにな
る。
【0099】上記説明では、具体的なプログラムを図示
しているが、数値計算または製造用もしくは癒し系のロ
ボット制御など他のプログラム等にも適用可能である。
【0100】上記説明では、図示された機能ブロックお
よび手順を参照しているが、機能の分離併合による配分
または手順の前後入替えなどの変更は上記機能を満たす
限り自由であり、上記説明が本発明を限定するものでは
なく、更に、単方向でループ状に結合された複数プロセ
ッサによる並列分散制御システムの全般に適用可能なも
のである。
【0101】
【発明の効果】以上説明したように本発明によれば、単
方向でループ状に結合された複数プロセッサによる並列
分散制御システムを構築しているので、構成する各プロ
セッサがハードウェアとして単純で済む。従って、本シ
ステムを現存するワンチップマイクロプロセッサを用い
て容易に構築することができるので、安価にシステム構
築ができる。また、本システムのプログラムパケット形
式および転送パケット形式を用いたデータフロー処理方
式では、各プロセッサが内部で処理するので、複数のプ
ロセッサ間での通信を意識することなくプログラミング
が可能である。従って、従来のように、アセンブリ言語
で各プロセッサのプログラミングを行う場合に比べ、プ
ログラミングが非常に容易である。このため、バグの少
ないプログラミングが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の一形態を示す機能ブロック図で
ある。
【図2】図1の主要部分における実施の一形態を示す機
能ブロック図である。
【図3】図2の回線切替部における実施の一形態を示す
回路構成図である。
【図4】本発明におけるプログラムパケット形式の実施
の一形態を示す図である。
【図5】本発明における転送パケット形式の実施の一形
態を示す図である。
【図6】本発明のシステム全体における動作手順の実施
の一形態を示すフローチャートである。
【図7】図6における故障診断手順の実施の一形態を示
すフローチャートである。
【図8】図6におけるプログラムパケット作成・転送手
順の実施の一形態を示すシーケンスチャートである。
【図9】図6における手順S5の実施の一形態を示すフ
ローチャートである。
【図10】図2のデータフロー処理部における動作手順
の実施の一形態を示すフローチャートである。
【図11】従来の一例を示す機能ブロック図である。
【図12】本発明におけるパケットに用いられる機能・
制御コード一覧の一形態を示す図である。
【図13】本発明におけるプログラムとコンパイル結果
のオブジェクトとを一覧にしたプログラム実行の一形態
を示す図である。
【図14】図13に基づくパケット交換を一覧にしたプ
ログラム実行における前半部分の一形態を示す図であ
る。
【図15】図13に基づくパケット交換を一覧にしたプ
ログラム実行における後半部分の一形態を示す図であ
る。
【図16】図13とは別のプログラムとコンパイル結果
のオブジェクトとを一覧にしたプログラム実行の一形態
を示す図である。
【図17】図16に基づくパケット交換を一覧にしたプ
ログラム実行の一形態を示す図である。
【符号の説明】
1−1、1−2、1−3、1−K、1−(N−1)、1
−N 制御・演算プロセッサ 1−C 通信用プロセッサ 2−1、2−2、2−3、2−C、2−K、2−(N−
1)、2−N シリアルポート 3 単方向通信路 10 ホストコンピュータ 11 管理テーブル 12 並列分散制御部 21 受信バッファ 22 パケット解析部 23 送信バッファ 24 メモリ部 25 データフロー処理部 26 切替駆動部 27 並列ポート 28 受信部 29 送信部 30 回線切替部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉岡 良雄 青森県南津軽郡大鰐町大字長峰字駒木沢 421番地192号 Fターム(参考) 5B045 BB13 BB28 BB48 GG01 GG11 JJ02

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 機能的に分散した複数のプロセッサと、
    当該プロセッサそれぞれを接続するシリアルポートと、
    当該シリアルポートそれぞれを単方向でループ状に接続
    する通信用伝送路とを備え、当該通信用伝送路を用いて
    固定長パケットにより前記シリアルポートを介しデータ
    を相互間で交換して制御機能を発揮する複数プロセッサ
    による並列分散制御方式であって、前記プロセッサそれ
    ぞれは、メモリ部およびデータフロー処理部を有する同
    一の基本構成により形成され、前記プロセッサの一つは
    外部のホストコンピュータと接続し当該ホストコンピュ
    ータから受けた通信用プログラムを内部に格納して機能
    する通信用プロセッサであり、前記メモリ部は前記通信
    用プロセッサおよび前記シリアルポートを接続する通信
    用伝送路を介してそれぞれの機能を発揮するためのプロ
    グラムを含む各種パケットを前記ホストコンピュータか
    ら受けて格納し、かつ前記データフロー処理部は所定の
    データを受けた際に前記メモリ部に格納されているプロ
    グラムに基づいてその機能を処理することを特徴とする
    複数プロセッサによる並列分散制御方式。
  2. 【請求項2】 請求項1において、前記シリアルポート
    は、前記通信用伝送路により前位シリアルポートと接続
    してパケットを受けて前記プロセッサに送る受信部と、
    前記プロセッサから受けたパケットを後位シリアルポー
    トへ送る送信部と、前記受信部の入力と前記送信部の出
    力との二つを入力として接続し自己の接続先プロセッサ
    から指示を受けて前記二つのいずれか一方を、通信用伝
    送路を介して後位シリアルポートと接続する回線切替部
    とを備えることを特徴とする複数プロセッサによる並列
    分散制御方式。
  3. 【請求項3】 請求項2において、前記シリアルポート
    は、初期状態で前記回線切替部により前記受信部の入力
    を後位シリアルポートへ接続しており、前記プロセッサ
    は、リセット条件の発生により前記ホストコンピュータ
    から所定の故障診断パケットを受けた際には、正常動作
    により前記回線切替部に切替え指示を送り、かつ、前記
    回線切替部は、前記切替え指示を受けた際に自己の出力
    に前記受信部の入力に替わり前記送信部の出力を接続す
    ることを特徴とする複数プロセッサによる並列分散制御
    方式。
  4. 【請求項4】 請求項3において、前記プロセッサは、
    前記ホストコンピュータから前記故障診断パケットを受
    けた後、プログラムパケットの生成パケット、定数デー
    タパケット、および初期データパケットそれぞれを順次
    受けて前記メモリ部に格納し、機能の実行準備を整える
    ことを特徴とする複数プロセッサによる並列分散制御方
    式。
  5. 【請求項5】 請求項3において、前記ホストコンピュ
    ータは、すべての前記プロセッサに故障診断パケットを
    送信したのち、応答のパケットを返送したプロセッサに
    「稼動状態」を、また応答なしのプロセッサに「故障状
    態」を、それぞれ記録しておくプロセッサに関する管理
    テーブルを備えることを特徴とする複数プロセッサによ
    る並列分散制御方式。
  6. 【請求項6】 請求項1において、前記各プロセッサと
    前記ホストコンピュータとの間で転送される固定長パケ
    ットは8バイトであり、前記プロセッサのデータフロー
    処理部で用いられるプログラムパケット形式は、それぞ
    れが1バイトで宛先プロセッサを示す目的プロセッサ番
    号、プログラムパケットメモリ領域番号、制御・演算コ
    ード、および発火条件の4個、それぞれが2バイトの出
    力先情報が10個、並びにそれぞれが4バイトのデータ
    領域が2個、合計32バイトであることを特徴とする複
    数プロセッサによる並列分散制御方式。
JP2001360752A 2001-11-27 2001-11-27 複数プロセッサによる並列分散制御方式 Pending JP2003162514A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001360752A JP2003162514A (ja) 2001-11-27 2001-11-27 複数プロセッサによる並列分散制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001360752A JP2003162514A (ja) 2001-11-27 2001-11-27 複数プロセッサによる並列分散制御方式

Publications (1)

Publication Number Publication Date
JP2003162514A true JP2003162514A (ja) 2003-06-06

Family

ID=19171513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001360752A Pending JP2003162514A (ja) 2001-11-27 2001-11-27 複数プロセッサによる並列分散制御方式

Country Status (1)

Country Link
JP (1) JP2003162514A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522402A (ja) * 2007-03-23 2010-07-01 クゥアルコム・インコーポレイテッド マルチプロセッサシステムのための命令通信技術
US7788379B2 (en) 2006-08-10 2010-08-31 Fujitsu Limited Network system and information processing method
US8145886B2 (en) 2006-07-12 2012-03-27 Nec Corporation Changing processor functions by changing function information
JP2012194992A (ja) * 2009-12-02 2012-10-11 Mush-A Co Ltd データ処理装置、データ処理システム、パケット、記録媒体、記憶装置およびデータ処理方法
US9535671B2 (en) 2009-12-02 2017-01-03 Mush-A Co., Ltd. Parallel data processing apparatus and method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145886B2 (en) 2006-07-12 2012-03-27 Nec Corporation Changing processor functions by changing function information
US7788379B2 (en) 2006-08-10 2010-08-31 Fujitsu Limited Network system and information processing method
JP2010522402A (ja) * 2007-03-23 2010-07-01 クゥアルコム・インコーポレイテッド マルチプロセッサシステムのための命令通信技術
JP2012194992A (ja) * 2009-12-02 2012-10-11 Mush-A Co Ltd データ処理装置、データ処理システム、パケット、記録媒体、記憶装置およびデータ処理方法
US9535671B2 (en) 2009-12-02 2017-01-03 Mush-A Co., Ltd. Parallel data processing apparatus and method
US10025594B2 (en) 2009-12-02 2018-07-17 Mush-A Co., Ltd. Parallel data processing apparatus, system, and method

Similar Documents

Publication Publication Date Title
US7916632B1 (en) Systems and methods for handling packet fragmentation
CN112543925B (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
JP2566681B2 (ja) 多重プロセッシング・システム
US7680116B1 (en) Optimized buffer loading for packet header processing
JP3640187B2 (ja) マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
US5067104A (en) Programmable protocol engine having context free and context dependent processes
Theimer et al. Heterogeneous process migration by recompilation
JP2770603B2 (ja) 並列計算機
JPH0771111B2 (ja) パケツト交換処理装置
US7484034B2 (en) Microcontrol architecture for a system on a chip (SoC)
KR20000006576A (ko) 디지탈데이터처리시스템내의다수의호스트컴퓨터사이에서자원의공유를용이하게하기위한시스템
JP4203979B2 (ja) パケット処理装置
US6982976B2 (en) Datapipe routing bridge
US20030033374A1 (en) Method and system for implementing a communications core on a single programmable device
CN102301363A (zh) 数据处理节点、系统及方法
US7215662B1 (en) Logical separation and accessing of descriptor memories
US11537543B2 (en) Technique for handling protocol conversion
JP2003162514A (ja) 複数プロセッサによる並列分散制御方式
Pionteck et al. A dynamically reconfigurable packet-switched network-on-chip
US20020018480A1 (en) Multiprocessor network node failure detection and recovery
JP2008236378A (ja) ホストコンピュータとネットワークインタフェースコントローラ間のデータ転送方法、プログラム及びネットワークインタフェースコントローラ
JP2005521936A (ja) Vliwプロセッサ
Nunes et al. A profiler for a heterogeneous multi-core multi-FPGA system
KR20050065323A (ko) 통신 프로토콜들의 병렬 처리를 위한 방법 및 장치
US20020194370A1 (en) Reliable links for high performance network protocols

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060802