JP3938471B2 - マルチcpuユニット - Google Patents
マルチcpuユニット Download PDFInfo
- Publication number
- JP3938471B2 JP3938471B2 JP2000557407A JP2000557407A JP3938471B2 JP 3938471 B2 JP3938471 B2 JP 3938471B2 JP 2000557407 A JP2000557407 A JP 2000557407A JP 2000557407 A JP2000557407 A JP 2000557407A JP 3938471 B2 JP3938471 B2 JP 3938471B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu unit
- cpu
- memory
- unit
- communication
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は産業機器等で使用されるプログラマブルコントローラCPUユニットであって、マルチCPU制御で使用される複数のCPUユニットを有するマルチCPUユニットに関し、特にメモリ容量の軽減をすることができ、また処理速度の向上をすることができるマルチCPUユニットに関するものである。
【0002】
【従来の技術】
図11は従来のマルチCPUユニットの構成図であり、また図12は図11のデバイスメモリおよびCPUユニット間通信用2ポートメモリの詳細を示した図である。図11において、CPUユニット1Aは、OSプログラムを解読した情報に従いデータの転送を行うマイクロプロセッサ2A、デバイスメモリと通信用2ポートメモリ間のデータ転送を行うOS26A、このCPUユニットAで処理されるプログラムでD0,D1といったデバイステータを扱うためのデバイスメモリ3A、およびマルチCPU制御においてCPUユニット間で通信を行うためのCPUユニット間通信用2ポートメモリ24Aを有している。
【0003】
そして、CPUユニット1Aと同様の構成であるCPUユニット1Bは、OSプログラムを解読した情報に従いデータの転送を行うマイクロプロセッサ2B、デバイスメモリと通信用2ポートメモリ間のデータ転送を行うOS26B、このCPUユニットBで処理されるプログラムでDO,D1といったデバイステータを扱うためのデバイスメモリ3B、およびマルチCPU制御においてCPUユニット間で通信を行うためのCPUユニット間通信用2ポートメモリ24Bを有している。
【0004】
さらに、CPUユニット1Aと同様の構成であるCPUユニット1Cは、OSプログラムを解読した情報に従いデータの転送を行うマイクロプロセッサ2C、デバイスメモリと通信用2ポートメモリ間のデータ転送を行うOS26C、このCPUユニットCで処理されるプログラムでDO,D1といったデバイステータを扱うためのデバイスメモリ3C、マルチCPU制御においてCPUユニット間で通信を行うためのCPUユニット間通信用2ポートメモリ24Cを有している。
【0005】
図12において、デバイスメモリ3Aは、CPUユニット1A用デバイスデータエリア10A、CPUユニット1B用デバイスデータエリア11A、およびCPUユニット1C用デバイスデータエリア12Aを有している。また、CPUユニット間通信用2ポートメモリ24Aは、CPUユニット1B用データ格納エリア30AおよびCPUユニット1C用データ格納エリア31Aを有している。
【0006】
一方、デバイスメモリ3Bは、CPUユニット1A用デバイスデータエリア10B、CPUユニット1B用デバイスデータエリア11B、およびCPUユニット1C用デバイスデータエリア12Bを有している。また、CPUユニット間通信用2ポートメモリ24Aは、CPUユニット1A用データ格納エリア30BおよびCPUユニット1C用データ格納エリア31Bを有している。
【0007】
さらに、デバイスメモリ3Cは、CPUユニット1A用デバイスデータエリア10C、CPUユニット1B用デバイスデータエリア11C、およびCPUユニット1C用デバイスデータエリア12Cを有している。また、CPUユニット間通信用2ポートメモリ24Cは、CPUユニット1A用データ格納エリア30CおよびCPUユニット1B用データ格納エリア31Cを有している。
【0008】
図13および図14は、各CPUユニットのOS26A,26B,26Cに組み込まれているデバイスメモリと通信用2ポート間のデータ転送に関するソフトウエアを示すフローチャートである。図13においては、まず、CPUユニット番号判別のためnに1をいれ(ステップS2202)、そのnが自CPUユニットのCPUユニット番号と一致するかのチェックをおこない(ステップS2203)、異なっていれば、その番号が示すCPUユニットのCPUユニット間通信用2ポートメモリに接続し(ステップS2204)、さらにその番号によってデバイステータを書込むCPUユニット間通信用2ポートメモリのブロック位置を算出する(ステップS2205,S2206およびS2207)。そしてそのCPUユニット間通信用2ポートメモリにデータを書込んだ後、そのCPUユニットのCPUユニット間通信用2ポートメモリを切り離し(ステップS2208)、次の番号を取得し(ステップS2209)マルチCPU制御で用いているCPUユニットが、さらに存在するかどうかをチェックする(ステップS2210)。なければ完了となり(ステップS2211)あるならば再び一連の動作を繰り返す(ステップS2203〜S2210)。
【0009】
ここで、従来の技術を手順に沿って説明する。
図11に示される様にCPUユニット1A,1Bおよび1Cの3ユニットによってマルチCPUユニットが構成されている。それぞれのCPUユニット1A,1Bおよび1Cには、図11に示される様にCPUユニット1A,1B,1C用のデバイスデータエリアを有するデバイスメモリ3A,3B,3Cと、自CPUユニット以外の他の2つのCPUユニットと通信を行うためのCPUユニット間通信用2ポートメモリ24A,24B,24Cを有している。
【0010】
そして、それぞれのCPUユニット1A,1Bおよび1Cは、それぞれの持つOS26A,26B,26Cに記載された番号によって、自CPUユニットのCPUユニット番号を決められている。このCPUユニット番号は、マルチCPU制御において自CPUユニットが何番のCPUユニットかを知るものである。ここで、CPUユニット1AのCPUユニット番号を1,CPUユニット1BのCPUユニット番号を2,CPUユニット1CのCPUユニット番号を3とする。
【0011】
まず、CPUユニット1Aのデバイスデータエリア10Aの内容をCPUユニット1Bに伝達するために、OS26Aが通信路7Bを通してCPUユニット1AをCPUユニット1BのCPUユニット間通信用2ポートメモリ24Bに接続する。そして、CPUユニット1BのCPUユニット間通信用2ポートメモリ24BのどこにCPUユニット1A用のデバイスデータエリア10Aの内容を書くかをCPUユニット番号より算出する。算出方法は、自CPUユニットのCPUユニット番号と書込もうとしている相手のCPUユニット番号を比較して、小さければ自CPUユニットのCPUユニット番号の箇所(1ならば1番目)に書く。大きければ自CPUユニットのCPUユニット番号から1を引いた箇所(2なら2−1となり1番目)に書く。CPUユニット1AのCPUユニット番号は1でありCPUユニット1BのCPUユニット番号は2であるため、CPUユニット1AのCPUユニット番号の方が小さい、よってCPUユニット間通信用2ポートメモリ24Bの1番目にあるCPUユニット1A用データ格納手リア30BにCPUユニット1Aの通信路5A,CPUユニット1Bの通信路7Bを通ってCPUユニット1AのOS26Aが書く。
【0012】
同様の方法を用いてCPUユニット1CのCPUユニット間通信用2ポートメモリ24CのCPUユニット1A用データ格納エリア30CにCPUユニット1Aのデバイスメモリ3AのCPUユニット1A用デバイスデータエリア10AのデータをCPUユニット1Aの通信路5A,CPUユニット1Cの通信路7Cを通ってCPUユニット1AのOS26Aが書く。
【0013】
同様の手順を用いてCPUユニット1Bのデバイスメモリ3BのCPUユニット1B用デバイスデータエリア11BのデータをCPUユニット1AのCPUユニット間通信用2ポートメモリ24AのCPUユニット1B用データ格納エリア30AにCPUユニット1BのOS26BがCPUユニット1Bの通信路5B,CPUユニット1Aの通信路7Aを通って書く。また、CPUユニット1CのCPUユニット間通信用2ポートメモリ24CのCPUユニット1B用データ格納エリア31CにCPUユニット1Bの通信路5B,CPUユニット1Cの通信路7Cを通ってCPUユニット1BのOS26Bが書く。
【0014】
同様の手順を用いてCPUユニット1Cのデバイスメモリ3CのCPUユニット1C用デバイスデータエリア11CのデータをCPUユニット1AのCPUユニット間通信用2ポートメモリ24AのCPUユニット1C用データ格納エリア31AにCPUユニット1CのOS26CがCPUユニット1Cの通信路5C,CPUユニット1Aの通信路7Aを通って書く。また、CPUユニット1BのCPUユニット閻通信用2ポートメモリ24BのCPUユニット1C用データ格納エリア31BにCPUユニット1Cの通信路5C,CPUユニット1Bの通信路7Bを通ってCPUユニット1CのOS26Cが書く。これにより、各々のCPUユニットのCPUユニット間通信用2ポートメモリには他CPUユニットのデバイステータが書かれていることになる。
【0015】
こうして各CPUユニットのCPUユニット間通信用2ポートメモリに書込まれたデバイステータを、各デバイスメモリに転送する。CPUユニット1Aのユニット番号とCPUユニット1Bのユニット番号よりCPUユニット間通信用2ポートメモリ24AにあるCPUユニット1B用データ格納エリアのブロック30Aを算出する。一方、CPUユニット1Bのユニット番号からデバイスメモリ3AのCPUユニット1B用デバイスデータエリア11Aを算出する。CPUユニット1Aのデバイスメモリ3AのCPUユニット1B用デバイスデータエリア11Aに、CPUユニット1AのCPUユニット間通信用2ポートメモリ24AのCPUユニット1B用データ格納エリア30AからCPUユニット1AのOS26Aが転送する。
【0016】
同様にCPUユニット1Cのユニット番号より、デバイスメモリ3AのCPUユニット1C用デバイスデータエリア12A,CPUユニット間通信用2ポートメモリ24AのCPUユニット1C用データ格納エリア31Aを算出し、CPUユニット1C用データ格納エリア31Aの内容をCPUユニット1C用デバイスデータエリア12AにCPUユニット1AのOS26Aが転送する。これによりCPUユニット1Aのデバイスメモリ3AにはCPUユニット1A用デバイステータ、CPUユニット1B用デバイステータ、CPUユニット1C用デバイステータが存在することになる。
【0017】
CPUユニット1AでのCPUユニット間通信用2ポートメモリ24Aからデバイスメモリ3Aへの転送と同様の手順を用いて、CPUユニット1BのCPUユニット間通信用2ポートメモリ24BのCPUユニット1A用データ格納エリア30B,CPUユニット1C用データ格納エリア31Bの内容をデバイスメモリ3BのCPUユニット1A用デバイスデータエリア10B,CPUユニット1C用デバイスデータエリア12BにCPUユニット1BのOS26Bが転送する。
【0018】
CPUユニット1AでのCPUユニット間通信用2ポートメモリ24Aからデバイスメモリ3Aへの転送と同様の手順を用いて、CPUユニット1CのCPUユニット間通信用2ポートメモリ24CのCPUユニット1A用データ格納エリア30C,CPUユニット1B用データ格納エリア31Cの内容をデバイスメモリ3CのCPUユニット1A用デバイスデータエリナ10C,CPUユニット1B用デバイスデータエリア11CにCPUユニット1CのOS26Cが転送する。
【0019】
このCPUユニット間通信用2ポートメモリからデバイスメモリへの転送動作を図14に示す。まず、nにCPUユニット番号の初期値1を代入し(ステップS2302)、nが自CPUユニットの番号かどうかを判別する(ステップS2303)。違うなら他のCPUユニットの番号のためその番号が自CPUユニットのCPUユニット番号よりも小さいか大きいかを判別する(ステップS2304)。
【0020】
小さければCPUユニット間通信用2ポートメモリのnブロック目からデバイスメモリのnブロック目に転送する(ステップS2305)。大きければCPUユニット間通信用2ポートメモリの(n−1)ブロック目からデバイスメモリのnブロック目に転送する(ステップS2306)。
【0021】
CPUユニット番号nに1を足して次のCPUユニット番号を算出し(ステップS2307)、その番号がマルチCPU制御のCPUユニットに存在するかを判別する(ステップS2308)。存在しなければ完了(ステップS2309)、存在すれば続いて一連の動作を行う(ステップS2303〜ステップS2308)。
【0022】
【発明が解決しようとする課題】
このような構成のマルチCPU制御におけるデバイステータの交信方法においては、各CPU1A,1B,1CにマルチCPU制御を構成している自CPUユニット以外の他のCPUユニット用のデータ格納エリアをCPU間通信用2ポートメモリ24,24B,24Cに持ち、自CPUユニットのデバイスデータを、他のCPUユニットの数分だけ、それぞれのCPUユニットのCPU間通信用2ポートメモリのデータ格納エリアに書く処理が必要である。そして、マルチCPU制御を構成している自CPUユニット以外のCPUユニットの数分のCPU間通信用2ポートメモリの接続、開放の処理が必要である。これは、マルチCPUを構成するCPUユニットが増えるとその分CPU間通信用2ポートメモリの接続、開放回数が増え処理時間が増えるので、本来の制御を処理する時間の割合が減ってしまい制御のレスポンスが悪くなる。
【0023】
また、マルチCPU制御を構成するCPUユニットが増えると各CPUユニットのCPU間通信用2ポ一トメモリ内のデータ格納エリアがマルチCPU制御を構成する自CPUユニット以外のCPUユニット分だけ必要になり大きな容量のCPU間通信用2ポートメモリが必要になりコスト面で高くなる。
【0024】
本発明では、従来のCPUユニットが持っていたCPU問通信用2ポートメモリのデータ格納エリアの構成を変えることにより、マルチCPU制御でのCPUユニットにおいてデバイステータの交信処理を短縮するとともにメモリの節約をすることができるマルチCPUユニットを得ることを目的とする。
【0025】
【課題を解決するための手段】
この発明に係るマルチCPUユニットにおいては、マルチCPU制御で使用される複数のCPUユニットを備え、各々のCPUユニットは、デバイスデータを扱うためのデバイスメモリと、自他CPUユニットから読み書きできる自CPUユニット用データ格納エリアのみ有する2ポートメモリでなる共有メモリと、データ転送の手順が記述されたOSと、OSに記述された手順に基づいて他CPUユニットと自CPUユニットの間でのデータ転送を行うマイクロプロセッサとを有し、各々のマイクロプロセッサは、デバイスメモリに記憶されたデバイスデータを自共有メモリの自CPUユニット用データ格納エリアに書き込むと共に、他CPUユニットの共有メモリに記憶されたデバイスデータを自CPUユニットのデバイスメモリに他の記憶手段を介在することなしに直接読込む。
【0026】
また、デバイスメモリは、自CPUユニット用デバイスデータエリアおよび他CPUユニット数分の他CPUユニット用デバイスデータエリアを有し、各々のマイクロプロセッサは、他CPUユニットの共有メモリに記憶されたデバイスデータを自デバイスメモリの他CPUユニット用デバイスデータエリアに直接読込む。
【0028】
【発明の実施の形態】
以下、この発明の各実施の形態について、図面に基づき説明する。
実施の形態1.
図1は本発明のマルチCPUユニットの構成図であり、また図2は図1のデバイスメモリおよびCPUユニット間通信用2ポートメモリの詳細を示した図である。図1において、CPUユニット1Aは、OSプログラムを解読した情報に従いデータの転送を行うマイクロプロセッサ2A、デバイスメモリと通信用2ポートメモリ間のデータ転送を行うOS6A、このCPUユニットAで処理されるプログラムでD0,D1といったデバイステータを扱うためのデバイスメモリ3A、マルチCPU制御においてCPUユニット間で通信を行うためのCPUユニット間通信用2ポートメモリ4Aを有している。
【0029】
同様に、CPUユニット1Bは、OSプログラムを解読した情報に従いデータの転送を行うマイクロプロセッサ2B、デバイスメモリと通信用2ポートメモリ間のデータ転送を行うOS6B、このCPUユニットBで処理されるプログラムでD0,D1といったデバイステータを扱うためのデバイスメモリ3B、マルチCPU制御においてCPUユニット間で通信を行うためのCPUユニット間通信用2ポートメモリ4Bを有している。
【0030】
同様に、CPUユニット1Cは、OSプログラムを解読した情報に従いデータの転送を行うマイクロプロセッサ2C、デバイスメモリと通信用2ポートメモリ間のデータ転送を行うOS6C、このCPUユニットCで処理されるプログラムでD0,D1といったデバイステータを扱うためのデバイスメモリ3C、マルチCPU制御においてCPUユニット間で通信を行うためのCPUユニット間通信用2ポートメモリ4Cを有している。
【0031】
図2において、デバイスメモリ3Aは、CPUユニット1A用デバイスデータエリア10A,CPUユニット1B用デバイスデータエリア11A,CPUユニット1C用デバイスエリア12Aを有している。また、CPUユニット間通信用2ポートメモリ4Aは、CPUユニット1A用データ格納エリア13Aを有している。
【0032】
一方、デバイスメモリ3Bは、CPUユニット1A用デバイスデータエリア10B,CPUユニット1B用デバイスデータエリア11B,CPUユニット1C用デバイスエリア12Bを有している。また、CPUユニット間通信用2ポートメモリ4Bは、CPUユニット1B用データ格納エリア13Bを有している。
【0033】
さらに、デバイスメモリ3Cは、CPUユニット1A用デバイスデータエリア10C,CPUユニット1B用デバイスデータエリア11C,CPUユニット1C用デバイスエリア12Cを有している。また、CPUユニット間通信用2ポートメモリ4Cは、CPUユニット1A用データ格納エリア13Cを有している。
【0034】
図3、図4は本実施の形態の処理フローである。図1に示される様に本実施の形態のマルチCPUユニットは、CPUユニット1A,1B,および1Cの3個のユニットからなる構成とされている。各々のCPUユニット1A,1B,および1Cには、図2に示される様にCPUユニット1A,1B,1C用のデバイスデータエリアを有するデバイスメモリ3A,3B,3Cと、自CPUユニット以外の他の2つのCPUユニットと通信を行うためのCPUユニット間通信用2ポートメモリ4A,4B,4Cを有している。
【0035】
そして、それぞれのCPUユニット1A,1Bおよび1Cは、それぞれの持つOS6A,6B,6Cに記載された番号によって、自CPUユニットのCPUユニット番号を決められている。このCPUユニット番号は、マルチCPU制御において自CPUユニットが何番のCPUユニットかを知るものである。ここで、CPUユニット1AのCPUユニット番号を1,CPUユニット1BのCPUユニット番号を2,CPUユニット1CのCPUユニット番号を3とする。
【0036】
本実施の形態においては、まず、CPUユニット1Aのデバイスデータエリア10Aの内容を、CPUユニット1AのOS6AがCPUユニット1AのCPUユニット間通信用2ポートメモリの1ブロック目に書き、また、CPUユニット1Bのデバイスデータエリア11Bの内容を、CPUユニット1BのOS6BがCPUユニット1BのCPUユニット間通信用2ポートメモリの1ブロック目に書き、さらに、CPUユニット1Cのデバイスデータエリア12Cの内容をCPUユニット1CのOS6CがCPUユニット1CのCPUユニット間通信用2ポートメモリの1ブロック目に書く。
【0037】
これを図4の処理フローで表すと(ステップS402)となる。これにより全CPUユニットのCPUユニット間通信用2ポートメモリに自CPUユニットのデバイステータが格納されたことになる。
【0038】
さらに、CPUユニット1Aの処理を説明する。CPUユニット1Bのデバイステータを得るために、CPUユニット1AはCPUユニット1BのCPUユニット間通信用2ポートメモリ4Bに接続される。図3のフローで表すと(ステップS304)となる。そして、CPUユニット1BのCPUユニット間通信用2ポートメモリ4Bの1ブロック目13BのデータをCPUユニット1Aのデバイスメモリ3Aに読込む。このとき、デバイスメモリ3Aの読込む先のブロックは、CPUユニット番号から算出される。図3のフローでは(ステップS303)となる。
【0039】
読み出そうとするCPUユニット1BのCPUユニット番号は2のため、CPUユニット1Aのデバイスメモリ3Aの2ブロック目11Aに読込むことになる。このようにして、CPUユニット1AのMPU2Aによって通信路5A,7Bを通してCPUユニット1Aのデバイスメモリ3AのCPUユニットB用デバイスデータエリア11Aに書きこまれる。図3のフローでは(ステップS305)である。
【0040】
その後、CPUユニット1BのCPUユニット間通信用2ポートメモリ4Bとの接続を切ることにより、CPUユニット1Bのデバイステータの交信を完了する、図3のフローでは(ステップS306)となる。
【0041】
次に、CPUユニット1Cのデバイステータを得るために、CPUユニット1AがCPUユニット1CのCPUユニット間通信用2ポートメモリ4Cに接続される。図3のフローでは(ステップS304)となる。そして、CPUユニット1CのCPUユニット間通信用2ポートメモリ4Cの1ブロック目13CのデータをCPUユニット1Aのデバイスメモリ3Aに読込む。このとき、デバイスメモリ3Aの読込む先のブロックは、CPUユニット番号から算出される。図3のフローでは(ステップS303)となる。読みたそうとするCPUユニット1CのCPUユニット番号は3のため、CPUユニット1Aのデバイスメモリ3Aの3ブロック目12Aに読込むことになる。このようにして、CPUユニット1AのMPU2Aによって通信路5A,7Cを通してCPUユニット1Aのデバイスメモリ3AのCPUユニットC用デバイスデータエリア12Aに書きこまれる。図3のフローでは(ステップS305)となる。
【0042】
その後、CPUユニット1CのCPUユニット間通信用2ポートメモリ4Cとの接続を切ることにより、CPUユニット1Cのデバイステータの交信を完了する。図3のフローでは(ステップS306)となる。
【0043】
上述の処理により、CPUユニット1AとCPUユニット1B,CPUユニット1Cとのデータ交信が完了となる。図3のフローでは(ステップS308)となる。
【0044】
同様にして、CPUユニット1BとCPUユニット1A,CPUユニット1Cとのデータ交信、CPUユニット1CとCPUユニット1A,CPUユニット1Bとのデータ交信が行われる。
【0045】
その後、各々のCPUユニット1A,1B,1Cは、自CPUユニットのCPUユニット間通信用2ポートメモリ4A,4B,4Cの他の自CPUユニットのデータ格納エリア内容を、自デバイスメモリ3A,3B,3Cの他のCPUユニット用デバイスデータエリアに転送する。
【0046】
このように構成されたマルチCPUユニットにおいては、マルチCPU制御を構成する各々のCPUユニット1A,1B,1CのCPUユニット間通信用2ポートメモリ4A,4B,4Cに自CPUユニットのCPUユニット用データ格納エリアだけを設ければ良いのでメモリ容量の軽減をすることができる。また、マルチCPU制御を構成しているCPUユニットの数が増えた場合でもCPUユニット間通信用2ポートメモリにデバイステータを書く回数は一度でよいため、処理速度の軽減を図ることができる。
【0047】
実施の形態2.
図5は本発明のマルチCPUユニットの他の例を示すデバイスメモリおよびCPUユニット間通信用2ポートメモリの詳細を示した図である。図5において、デバイスメモリ3Aは、CPUユニット1A用デバイスデータエリア10A,CPUユニット1B用デバイスデータエリア11A,CPUユニット1C用デバイスエリア12Aを有している。また、CPUユニット間通信用2ポートメモリ4Aは、CPUユニット1A用データ格納エリア14A,CPUユニット1B用データ格納エリア15A,CPUユニット1C用データ格納エリア16Aを有してている。
【0048】
一方、デバイスメモリ3Bは、CPUユニット1A用デバイスデータエリア10B,CPUユニット1B用デバイスデータエリア11B,CPUユニット1C用デバイスエリア12Bを有している。また、CPUユニット間通信用2ポートメモリ4Bは、CPUユニット1A用データ格納エリア14B,CPUユニット1B用データ格納エリア15B,CPUユニット1C用データ格納エリア16Cを有している。
【0049】
さらに、デバイスメモリ3Cは、CPUユニット1A用デバイスデータエリア10C,CPUユニット1B用デバイスデータエリア11C,CPUユニット1C用デバイスエリア12Cを有している。また、CPUユニット間通信用2ポートメモリ4Cは、CPUユニット1A用データ格納エリア14C,CPUユニット1B用データ格納エリア15C,CPUユニット1C用データ格納エリア16Cを有している。その他の構成は、実施の形態1と同様である。
【0050】
図6、図7は本実施の形態の処理フローである。それぞれのCPUユニット1A,1B,1CのOS6A,6B,6Cは、自CPUユニット番号から隣のCPUユニット番号を認識している。
【0051】
本実施の形態においては、まず、CPUユニット1Aのデバイスメモリ3AのCPUユニット1A用デバイスデータエリア10Aの内容を、CPUユニット1AのCPUユニット間通信用2ポートメモリ4AのCPUユニット1A用データ格納エリア14Aに書込む。
【0052】
同様に、CPUユニット1Bのデバイスメモリ3BのCPUユニット1B用デバイスデータエリア11Bの内容をCPUユニット1BのCPUユニット間通信用2ポートメモリ4BのCPUユニット1B用データ格納エリ大15Bに書き込む。
【0053】
同様に、CPUユニット1Cのデバイスメモリ3CのCPUユニット1C用デバイスデータエリア12Cの内容をCPUユニット1CのCPUユニット間通信用2ポートメモリ4CのCPUユニット1B用データ格納エリ大16Cに書き込む。
【0054】
CPUユニット1Bの隣は、CPUユニット1Cと認識しているとするとCPUユニット1BのOS6Bにより、隣のCPUユニット1CのCPUユニット間通信用2ポートメモリ4Cに接続しCPUユニット1C用データ格納エリア16Cの内容をCPUユニット1BのCPUユニット間通信用2ポートメモリ4BのCPUユニット1C用データ格納エリア16Bに書き込む。CPUユニット間通信用2ポートメモリのエリアは従来例と同様にCPUユニット番号から算出される。
【0055】
上述処理後の状態でCPUユニット1Aを基準として説明する。CPUユニット1Aの隣のCPUユニットをCPUユニット1BとOS6Aが認識する。そして、OS6Aは、隣のCPUユニット1BのCPU間通信用2ポートに接続する。図6のフローでは(ステップS602)となる。CPUユニット番号nと自CPUユニットのCPUユニット番号とを比較する。図6のフローでは(ステップS604)となる。接続しているCPUユニット1BのCPU間通信用2ポートメモリ4Bのnブロック目の内容をCPUユニット1AのCPUユニット間通信用2ポートメモリ4Aのnブロック目にOS6Aが転送する。図6のフローでは(ステップS605)となる。この場合、CPUユニット1BのCPUユニット間通信用2ポートメモリ4BのCPUユニット1B用データ格納エリア15Bの内容をCPUユニット1AのCPUユニット間通信用2ポートメモリ4AのCPUユニット1B用データ格納エリア15Aに転送することとなる。その転送されたCPUユニット1B用データ格納エリア15Aにあるデバイステータの内容をCPUユニット1Aのデバイスメモリ3AのCPUユニット1用デバイスデータエリア11Aに転送する。図6のフローでは(ステップS606)となる。デバイスメモリのエリアはCPUユニット番号Nによって算出される。この場合、Nは2ということから2ブロック目のCPUユニットB用デバイスデータエリア11Aとなる。このCPUユニット番号nをマルチCPU制御を構成しているCPUユニットの数分だけインクリメントしていき、CPUユニット分が完了するまで同様の処理を行う。図6のフローでは(ステップS607,S608)となる。この場合、CPUユニット1CがあるのでCPUユニット1AのCPUユニット間通信用2ポートメモリ4AのCPUユニット1C用データ格納エリア16Aの内容をデバイスメモリ3AのCPUユニット1C用デバイスエリア12Aに転送することとなる。CPUユニット分の転送が完了した後、CPUユニット1AのOS6AがCPUユニット1BのCPUユニット間通信用2ポートメモリとの切り離しをする、これで、CPUユニット1Aのデータ交信処理が完了する。図6のフローでは(ステップS609)となる。
【0056】
このような構成のマルチCPUユニットにおいては、マルチCPU制御を構成する各々のCPUユニット1A,1B,1CのCPUユニット間通信用2ポートメモリ4A,4B,4CにマルチCPU制御を構成するすべてのCPUユニット分のデータ格納エリアを設け、自CPUユニットの隣のCPUユニットという認識を各CPUユニットに与えることにより、隣のCPUユニットのCPUユニット間通信用2ポートメモリからマルチCPU制御を構成する全てのCPUユニット分のデバイステータを読むことから、CPUユニット通信用2ポートメモリへの接続、開放を一度とすることができ、データ交信処理の時間短縮が図れる。また、請求項1と同様にマルチCPU制御を構成するCPUユニットが増えた場合でも、自らのデバイスメモリから自らのCPUユニット間通信用2ポートメモリに書く回数は一度でよくなり、さらなるデータ交信処理の時間短縮が図れる。
【0057】
実施の形態3.
図8は本発明のマルチCPUユニットの他の例を示すユニット番号指定転送命令である。図8において、801は命令名、802は直接書込むCPUユニットの番号を指定する箇所である。ユニット番号指定転送命令801は、自CPUユニットのデバイスメモリのデバイスデータを指定されたCPUユニットのCPUユニット通信用2ポートメモリに直接書き込む。
【0058】
図9は上述のユニット番号指定転送命令の実際の例である。90AはCPUユニット1Aに、90BはCPUユニット1Bに、90CはCPUユニット1Cにそれぞれ対応している。91A,91B,91Cは命令名である。
【0059】
すなわち、92AはCPUユニット番号2のCPUユニット間通信用2ポートメモリにデバイスデータを書くことを示しており、92BはCPUユニット番号1のCPUユニット間通信用2ポートメモリにデバイスデータを書くことを示しており、92CはCPUユニット番号1のCPUユニット間通信用2ポートメモリにデバイスデータを書くことを示している。
【0060】
図10は上記命令実行時のフローチャートである。このユニット番号指定転送命令を用いてマルチCPU制御におけるデータ交信を行う。CPUユニット1Aを基準として説明する。
【0061】
CPUユニット1Aが直接書くことができるCPUユニットをCPUユニット1Bと指定(図9の92A)、CPUユニット1Bが直接書くことができるCPUユニットをCPUユニット1Aと指定(図9の92B)、CPUユニット1Cが直接書くことができるユニットをCPUユニット1Aと指定(図9の92C)とする。これを図10の処理フローで表すと(ステップS1001〜S1004)となる。この設定によりCPUユニット1BのCPUユニット間通信用2ポートメモリ4BのCPUユニット1A用データ格納エリア14Bに、CPUユニット1Aのデバイスメモリのデータが格納される。
【0062】
また、CPUユニット1AのCPUユニット間通信用2ポートメモリ4AのCPUユニット1B用データ格納エリア15A、CPUユニット1C用データ格納エリア16Aには、それぞれユニット1B、CPUユニット1Cのデバイスデータが格納される。図10の処理フローでは(ステップS1005〜S1009)となる。
【0063】
CPUユニット間通信用2ポートメモリ4Aへの格納ブロックは、従来例と同様にCPUユニット番号から算出される。CPUユニット1Aは、自CPUユニットのCPUユニット間通信用2ポートメモリ4AのCPUユニット1B用データ格納エリア15Aの内容とCPUユニット1C用データ格納エリア16Aの内容を、デバイスメモリ3AのCPUユニットB用デバイスデータエリア11A、CPUユニット1C用デバイスデータエリア12Aに転送することによりマルチCPU制御でのデータ交信が行われる。
【0064】
このような構成のマルチCPUユニットにおいては、マルチCPU制御を構成している自CPUユニット以外のどのCPUユニットのCPUユニット間通信用2ポートメモリに書くかを命令で指定して、その指定されたCPUユニットのCPUユニット間通信用2ポートメモリに書くことにより、図10に示される転送のフローチャートにおいて、nをインクリメントしながらループする個所がなくなりプログラムが単純化する。また、データ転送をしないCPUユニットの指定も容易に行える。
【0065】
【発明の効果】
この発明に係るマルチCPUユニットにおいては、マルチCPU制御で使用される複数のCPUユニットを備え、各々のCPUユニットは、デバイスデータを扱うためのデバイスメモリと、自他CPUユニットから読み書きできる自CPUユニット用データ格納エリアのみ有する2ポートメモリでなる共有メモリと、データ転送の手順が記述されたOSと、OSに記述された手順に基づいて他CPUユニットと自CPUユニットの間でのデータ転送を行うマイクロプロセッサとを有し、各々のマイクロプロセッサは、デバイスメモリに記憶されたデバイスデータを自共有メモリの自CPUユニット用データ格納エリアに書き込むと共に、他CPUユニットの共有メモリに記憶されたデバイスデータを自CPUユニットのデバイスメモリに他の記憶手段を介在することなしに直接読込む。そのため、共有メモリには、自CPUユニットの格納エリアだけを設ければ良いのでメモリ容量の軽減をすることができる。また、マルチCPU制御を構成しているCPUユニットの数が増えた場合でも共有メモリにデバイステータを書く回数は一度でよいため、処理速度の軽減を図ることができる。
【0066】
また、デバイスメモリは、自CPUユニット用デバイステータエリアおよび他CPUユニット数分の他CPUユニット用デバイステータエリアを有し、各々のマイクロプロセッサは、他CPUユニットの共有メモリに記憶されたデバイスデータを自デバイスメモリの他CPUユニット用デバイステータエリアに直接読込む。そのため、共有メモリには、自CPUユニットの格納エリアだけを設ければ良いのでメモリ容量の軽減をすることができる。また、マルチCPU制御を構成しているCPUユニットの数が増えた場合でも共有メモリにデバイステータを書く回数は一度でよいため、処理速度の軽減を図ることができる。
【図面の簡単な説明】
【図1】 本発明のマルチCPUユニットの構成図である。
【図2】 デバイスメモリおよびCPUユニット間通信用2ポートメモリの詳細を示した図である。
【図3】 データ転送に関するソフトウエアを示すフローチャートである。
【図4】 データ転送に関するソフトウエアを示すフローチャートである。
【図5】 本発明のマルチCPUユニットの他の例を示すデバイスメモリおよびCPUユニット間通信用2ポートメモリの詳細を示した図である。
【図6】 データ転送に関するソフトウエアを示すフローチャートである。
【図7】 データ転送に関するソフトウエアを示すフローチャートである。
【図8】 本発明のマルチCPUユニットの他の例を示すユニット番号指定転送命令を示した図である。
【図9】 ユニット番号指定転送命令の実際の例を示した図である。
【図10】 ユニット番号指定転送命令実行時のフローチャートである。
【図11】 従来のマルチCPUユニットの構成図である。
【図12】 デバイスメモリおよびCPUユニット間通信用2ポートメモリの詳細を示した図である。
【図13】 デバイスメモリと通信用2ポート間のデータ転送に関するソフトウエアを示すフローチャートである。
【図14】 デバイスメモリと通信用2ポート間のデータ転送に関するソフトウエアを示すフローチャートである。
【符号の説明】
1A,1B,1C CPUユニット、2A,2B,2C マイクロプロセッサ、3A,3B,3C デバイスメモリ、4A,4B,4C 共有メモリ(2ポートメモリ)、6A,6B,6C OS。
Claims (2)
- マルチCPU制御で使用される複数のCPUユニットを備え、上記各々のCPUユニットは、
デバイスデータを扱うためのデバイスメモリと、
自他CPUユニットから読み書きできる自CPUユニット用データ格納エリアのみ有する2ポートメモリでなる共有メモリと、
データ転送の手順が記述されたOSと、
上記OSに記述された手順に基づいて他CPUユニットと自CPUユニットの間でのデータ転送を行うマイクロプロセッサとを有し、
各々の上記マイクロプロセッサは、上記デバイスメモリに記憶された上記デバイスデータを自共有メモリの上記自CPUユニット用データ格納エリアに書き込むと共に、他CPUユニットの上記共有メモリに記憶されたデバイスデータを自CPUユニットの上記デバイスメモリに他の記憶手段を介在することなしに直接読込む
ことを特徴とするマルチCPUユニット。 - 上記デバイスメモリは、自CPUユニット用デバイスデータエリアおよび他CPUユニット数分の他CPUユニット用デバイスデータエリアを有し、
各々の上記マイクロプロセッサは、他CPUユニットの上記共有メモリに記憶されたデバイスデータを自デバイスメモリの上記他CPUユニット用デバイスデータエリアに直接読込む
ことを特徴とする請求項1記載のマルチCPUユニット。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1998/002939 WO2000000903A1 (fr) | 1998-06-30 | 1998-06-30 | Processeur central multiple |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3938471B2 true JP3938471B2 (ja) | 2007-06-27 |
Family
ID=14208526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000557407A Expired - Fee Related JP3938471B2 (ja) | 1998-06-30 | 1998-06-30 | マルチcpuユニット |
Country Status (3)
Country | Link |
---|---|
US (1) | US6463519B1 (ja) |
JP (1) | JP3938471B2 (ja) |
WO (1) | WO2000000903A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4783527B2 (ja) * | 2001-01-31 | 2011-09-28 | 株式会社ガイア・システム・ソリューション | データ処理システム、データ処理装置およびその制御方法 |
JP2006505874A (ja) * | 2002-10-22 | 2006-02-16 | ジェイソン エイ サリヴァン | ダイナミックにモジュラー式の処理ユニットを提供するためのシステムおよび方法 |
US7256991B2 (en) * | 2002-10-22 | 2007-08-14 | Sullivan Jason A | Non-peripherals processing control module having improved heat dissipating properties |
JP2006504209A (ja) | 2002-10-22 | 2006-02-02 | ジェイソン エイ サリヴァン | カスタム化可能なロバストなコンピュータ処理システム |
JP2004322388A (ja) * | 2003-04-23 | 2004-11-18 | Konica Minolta Medical & Graphic Inc | 印刷版の作製方法及び印刷版材料 |
KR100731969B1 (ko) * | 2005-06-28 | 2007-06-25 | 엠텍비젼 주식회사 | 복수 경로를 통한 메모리 공유 방법 및 장치 |
KR100728650B1 (ko) * | 2005-07-26 | 2007-06-14 | 엠텍비젼 주식회사 | 복수 경로를 통한 다중 분할된 메모리 공유 방법 및 장치 |
US7990724B2 (en) | 2006-12-19 | 2011-08-02 | Juhasz Paul R | Mobile motherboard |
WO2009064864A1 (en) * | 2007-11-13 | 2009-05-22 | Rockwell Automation Technologies, Inc. | Industrial controller using shared memory multicore architecture |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS588307A (ja) * | 1981-07-07 | 1983-01-18 | Omron Tateisi Electronics Co | プログラム分散・直列実行式プログラマブル・ロジツク・コントロ−ラシステム |
JPS59229663A (ja) * | 1983-06-13 | 1984-12-24 | Yaskawa Electric Mfg Co Ltd | 平行処理マルチcpuシステム |
JP2749819B2 (ja) * | 1987-10-26 | 1998-05-13 | 松下電工株式会社 | 共有メモリ制御方式 |
JP2656543B2 (ja) * | 1988-05-26 | 1997-09-24 | 東京電力株式会社 | ブロードキャストメモリ方式分散コンピュータシステム |
JPH0358163A (ja) * | 1989-07-26 | 1991-03-13 | Nec Corp | 疎結合型マルチプロセッサシステム |
JPH03129457A (ja) * | 1989-10-13 | 1991-06-03 | Toshiba Corp | 複合計算機システム |
JPH0473253U (ja) * | 1990-10-26 | 1992-06-26 | ||
JPH04358204A (ja) * | 1991-06-04 | 1992-12-11 | Mitsubishi Electric Corp | プログラマブルコントローラ |
US5347639A (en) * | 1991-07-15 | 1994-09-13 | International Business Machines Corporation | Self-parallelizing computer system and method |
US5581778A (en) * | 1992-08-05 | 1996-12-03 | David Sarnoff Researach Center | Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock |
JPH07319515A (ja) | 1994-05-20 | 1995-12-08 | Olympus Optical Co Ltd | プログラマブルコントローラの分散制御システム |
JPH08202672A (ja) * | 1995-01-23 | 1996-08-09 | Nissin Electric Co Ltd | 分散型マルチプロセッシングシステム |
JPH09319410A (ja) * | 1996-06-03 | 1997-12-12 | Mitsubishi Electric Corp | プログラマブルコントローラ |
JPH1021159A (ja) * | 1996-07-01 | 1998-01-23 | Mitsubishi Electric Corp | ノード装置およびネットワークシステム |
JP3049651B2 (ja) * | 1997-10-31 | 2000-06-05 | 株式会社ウェルビーン | マルチcpu装置 |
-
1998
- 1998-06-30 WO PCT/JP1998/002939 patent/WO2000000903A1/ja active Application Filing
- 1998-06-30 JP JP2000557407A patent/JP3938471B2/ja not_active Expired - Fee Related
-
2000
- 2000-12-15 US US09/736,452 patent/US6463519B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6463519B1 (en) | 2002-10-08 |
WO2000000903A1 (fr) | 2000-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4083987B2 (ja) | 多重レベル接続識別を備えた通信システム | |
KR101162739B1 (ko) | Slc 및 mlc 플래시 메모리를 이용한 휴대용 데이터저장 장치 및 방법 | |
US5778195A (en) | PC card | |
JP3938471B2 (ja) | マルチcpuユニット | |
CN100565486C (zh) | 数据传送装置及数据传送系统 | |
JPH04363746A (ja) | Dma機能を有するマイクロコンピュータシステム | |
JPS58217069A (ja) | マルチ・マイクロコンピユ−タの通信方式 | |
CN100461066C (zh) | 多层系统和时钟控制方法 | |
US20060041705A1 (en) | System and method for arbitration between shared peripheral core devices in system on chip architectures | |
CN1270252C (zh) | 具dma控制器的数字信号处理器多个部件间的信号组交换 | |
US6718406B2 (en) | Memory array apparatus with reduced data accessing time and method for the same | |
JPS626367A (ja) | ネツトワ−ク制御装置 | |
JPS62182857A (ja) | 入出力制御装置 | |
JP2000040057A (ja) | 計算機システム、バッファ制御装置及び転送方法 | |
JP3293838B2 (ja) | データ転送方式 | |
CN100480978C (zh) | Hdd控制装置 | |
JP4231633B2 (ja) | 外部記憶システム | |
JP2000132498A (ja) | Dma転送制御装置 | |
JPH05316168A (ja) | 多チャンネル多重通信コントローラー | |
JPH06314251A (ja) | Scsiデータ転送装置 | |
JPH0259845A (ja) | 通信制御回路 | |
JPH04137060A (ja) | データ転送制御装置 | |
JP2002197052A (ja) | バスモード切替え可能な通信装置 | |
JPS63206855A (ja) | デ−タ転送装置 | |
JP2005316700A (ja) | データ転送方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060307 |
|
AA91 | Notification of revocation by ex officio |
Free format text: JAPANESE INTERMEDIATE CODE: A971091 Effective date: 20060411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060425 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060615 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070322 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |