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

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

Info

Publication number
JPH05346908A
JPH05346908A JP17943592A JP17943592A JPH05346908A JP H05346908 A JPH05346908 A JP H05346908A JP 17943592 A JP17943592 A JP 17943592A JP 17943592 A JP17943592 A JP 17943592A JP H05346908 A JPH05346908 A JP H05346908A
Authority
JP
Japan
Prior art keywords
area
status
main cpu
sub cpu
cpu
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
JP17943592A
Other languages
English (en)
Inventor
Koichi Oi
浩一 大井
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP17943592A priority Critical patent/JPH05346908A/ja
Publication of JPH05346908A publication Critical patent/JPH05346908A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 マルチプロセッサシステム内のCPU間通信
において、各CPUが割込によらずに独自のタイミング
で通信を行うことで、通信トラフィック量の増加に伴う
スループットの低下を回避できるとともに、メインCP
Uと1つのサブCPU間の全二重通信およびメインCP
Uと複数のサブCPU間の同時通信を可能とし、高い通
信能力を有するマルチプロセッサシステムを提供するこ
とを目的とする。 【構成】 メインCPUとサブCPUの双方からアクセ
ス可能なDPRAMを設け、このDPRAMに各サブC
PUに対応した送信方向用の第1領域と受信方向用の第
2領域を設定するとともに、これら領域に設けたステー
タスエリアとデータエリアに各CPUが独自の動作でデ
ータの書き込みと読み出しを行うことにより、メインC
PUとサブCPUとの間の通信を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムにおけるCPU間のデータ伝送方式に関する。
【0002】
【従来の技術】図12は、従来のマルチプロセッサシス
テムを説明するブロック図である。
【0003】この図12に示すシステムは、1つのメイ
ンCPU1001と、2つのサブCPU1002、10
03と、3つのメモリ1004、1005、1006
と、ダイレクトメモリアクセスを制御するDMAC10
07、1008と、各サブCPU1002、1003か
らメインCPU1001に対する割込線1009と、メ
インCPU11001からサブCPU1002、100
3に対する割込線1010と、バスバッファ1011
と、共有バス1012とを有している。
【0004】このシステムにおいて、サブCPU100
2からメインCPU1001に対しデータを送信したい
時は、まず、サブCPU1002からメインCPU10
01に対して割込線1009によって割込をかけ、送信
要求があることを知らせる。ここでメインCPU100
1は、サブCPU1002からの送信要求を知り、受信
データを格納すべきメモリ1004のアドレスを決定
し、DMAC1007に対し受信準備をさせる。
【0005】そして、この準備完了の後、サブCPU1
002はメモリ1005から送信データを読み出して共
有バスに送出し、図示しない制御線によってDMAC1
007に対し受信を促す。DMAC1007は、DMA
動作により共有バス1012上のデータをメモリ100
4に格納し、図示しない制御線によってサブCPU10
02に対し次データの送信を促す。
【0006】以上の動作を繰り返してデータ送信が行わ
れる。また、メインCPU1001とサブCPU100
3の間の通信は、DMA動作がDMAC1007とDM
AC1008の間で行われることを除けば上述したのと
同様な方法で実現される。
【0007】
【発明が解決しようとする課題】しかしながら、上述し
た従来の方法では、相手CPUに対する送信要求の通知
に割込を使用しているため、サブCPUの数が増えるほ
ど割込線の数が増えるとともに、通信のトラフィック量
が増加すると、メインCPUに対し割込が常時かかって
いる状態となり、割込ハンドラである通信プログラム以
外のプログラムが動作できなくなる問題があった。
【0008】また、共有バスの使用中は他の通信が行え
ないので、メインCPUとサブCPUの間の通信は半二
重通信になるとともに、1つのサブCPUがメインCP
Uと通信を行っている間は、他のサブCPUは通信が行
えず、送信要求があっても待たされた状態になってい
た。
【0009】本発明は、マルチプロセッサシステム内の
通信において、各CPUが割込によらない、当該CPU
独自のタイミングで通信を行い、その結果通信トラフィ
ック量が増加しても通信プログラムに割かれるCPU時
間を大幅には増やさず、スループットも低下させずに済
ませることができるとともに、メインCPUと1つのサ
ブCPU間の全二重通信およびメインCPUと複数のサ
ブCPU間の同時通信を可能にして、高い通信能力を有
するマルチプロセッサシステムを提供することを目的と
する。
【0010】
【課題を解決するための手段】本発明は、メインCPU
と、1または複数のサブCPUと、前記メインCPUお
よび前記サブCPUの双方からアクセス可能なデュアル
ポートRAMを備えたマルチプロセッサシステムにおい
て、前記デュアルポートRAMは、前記各サブCPUに
対応して設けられ、前記メインCPUおよび対応サブC
PUからのみアクセス可能な1または複数の記憶領域を
有し、この記憶領域は、前記対応サブCPUから前記メ
インCPUへの方向の通信に用いる第1領域と、前記メ
インCPUから前記対応サブCPUへの方向に用いる第
2領域とを有し、前記第1領域は、前記対応サブCPU
が自ステータスを書き込み、前記メインCPUに自ステ
ータスを通知するステータスエリアと、前記対応サブC
PUが自データを書き込み、前記メインCPUに自デー
タを通知するデータエリアとを有し、前記第2領域は、
前記メインCPUが自ステータスを書き込み、前記対応
サブCPUに自ステータスを通知するステータスエリア
と、前記メインCPUが自データを書き込み、前記対応
サブCPUに自データを通知するデータエリアとを有
し、前記第1領域のステータスエリアは、前記対応サブ
CPUの送信ステータスを書き込む送信表示部と、受信
ステータスを書き込む受信表示部とを有し、前記第2領
域のステータスエリアは、前記メインCPUの送信ステ
ータスを書き込む送信表示部と、受信ステータスを書き
込む受信表示部とを有することを特徴とする。
【0011】
【実施例】図1は、本発明における第1実施例のハード
構成を示すブロック図である。
【0012】このマルチプロセッサシステムは、メイン
CPU101と、3つのサブCPU102、103、1
04と、デュアルポートRAM(以下、DPRAMとい
う)105と、バス競合回路106と、制御線107、
108、109とを有して構成されている。なお、サブ
CPUの数は、3つに限るものではない。
【0013】DPRAM105は、メインCPU10
1、サブCPU102、103、104のいずれからも
アクセス可能であり、例えばメインCPU101からサ
ブCPU102へデータを送信したいときは、メインC
PU101からDPRAM105に対してデータを書き
込んだアドレスと同じアドレスをサブCPU102から
読み出すことによって両CPU間の通信が行われる。
【0014】DPRAM105が1個の場合は、サブC
PU側から複数のサブCPUが同時にアクセスするのを
防ぐためにバス競合回路106が必要になる。この場
合、バスアクセス権を得るために、サブCPUは各々制
御線によりバス競合回路106に対して信号を送出す
る。この信号を受けたバス競合回路106は、この信号
を送出したサブCPUにバスアクセス権を与えるが、複
数のサブCPUから信号を受けた場合は、先着順にアク
セス権を与える、あるいは図示しない本システムのクロ
ックに基づきタイムスライスしてアクセス権を与えるサ
ブCPUを次々に切り換えていく方法により、同時に2
個以上のサブCPUがDPRAM105にアクセスでき
ないようになっている。
【0015】本構成において、通信を行いたいのはメイ
ンCPU101と各サブCPUの間であり、サブCPU
同士の間では通信を行わないシステムを想定しているの
で、各サブCPUがDPRAM105の記憶領域全体を
アクセスできるとすると、間違ってサブCPU同士が通
信できてしまう不都合の起こる可能性が高い。そこでD
PRAM105の記憶領域をサブCPU毎に分ける必要
がでてくる。
【0016】図2は、DPRAM105のメモリマップ
を示す説明図であり、記憶領域をサブCPU毎に分けた
状態を示している。図2において、記憶領域201は、
第1のサブCPU102に対応し、記憶領域202は、
第2のサブCPU103に対応し、記憶領域203は、
第3のサブCPU104に対応している。
【0017】そして、第1のサブCPU対応領域201
は、サブCPU102およびメインCPU101からの
みアクセスし、同様に第2のサブCPU対応領域202
は、サブCPU103およびメインCPU101からの
みアクセスし、第3のサブCPU対応領域203は、サ
ブCPU104およびメインCPU101からのみアク
セスするようになっている。
【0018】各サブCPU対応領域は、さらに細かく分
かれている。図3は、その細かい領域を示す説明図であ
る。
【0019】図3において、第1領域301は、サブC
PUからメインCPU101への方向の通信に用いる領
域であり、第2領域302は、メインCPU101から
サブCPUへの方向の通信に用いる領域である。
【0020】そして、第1領域301は、サブCPU側
のイベント発生、メインCPU101に対する要求、お
よび通信ステータスを書き込み、メインCPU101へ
通知するためのステータスエリア303と、サブCPU
からメインCPU101へ送信するデータを書き込むデ
ータエリア304とに別れている。
【0021】また、第2領域302は、メインCPU1
01側のイベント発生、サブCPUに対する要求、およ
び通信ステータスを書き込み、サブCPUへ通知するた
めのステータスエリア305と、メインCPU101か
らサブCPUへ送信するデータを書き込むデータエリア
306とに別れている。
【0022】また、第1領域301のステータスエリア
303は、サブCPUがメインCPU101へ送信する
場合の送信ステータスを示す送信表示部307と、サブ
CPUがメインCPU101から受信する場合の受信ス
テータスを示す受信表示部308とを有する。
【0023】さらに、第2領域302のステータスエリ
ア304は、メインCPU101がサブCPUへ送信す
る場合の送信ステータスを示す送信表示部309と、メ
インCPU101がサブCPUから受信する場合の受信
ステータスを示す受信表示部310とを有する。
【0024】次に、以上のような構成に基づく本実施例
の通信手順について説明する。図4および図5は、本実
施例の通信手順を示すフローチャートであり、図4は、
サブCPU側の通信手順を示し、図5は、メインCPU
101側の通信手順を示している。
【0025】まず、図4において、サブCPU側では、
イベント受信以外の作業があるか調べ(S401)、な
いときはDPRAM105の自CPUに対応する記憶領
域の第2領域ステータスエリア305を読み出す(S4
02)。ここを読み出すのはメインCPU101が自C
PUに対して通信したいことがあるときは、必ずここに
前回書き込んだ値とは異なる値を書き込んでくるように
しているからであり、サブCPUとしては、ここを常時
監視しておき、前回読み出した値と比較して、変化があ
った場合には、メインCPU101から何らかの通知が
あると認識をする。従って、このような比較による監視
を行うために、S402で読み出した値は次回の比較の
ためバックアップとして保存しておく(S403)。
【0026】次に、ここで読み出したステータスエリア
の送信表示部309について前回読み出した値から変化
があるかどうかを調べ(S404)、この結果、変化が
あれば、メインCPU101からの送信要求があるとい
うことで、既に第2領域データエリア306にはメイン
CPU101によってイベントデータが書き込まれてい
るはずであることから、そのデータを第2領域データエ
リア306より読み出す(S405)。
【0027】その後、メインCPU101が監視すべき
である第1領域ステータスエリア303の受信表示部3
08に受信確認の意味で前回書き込んだ値とは異なる値
を書き込んでおく(S406)。つまり、メインCPU
101は、このサブCPUが第2領域ステータスエリア
305を監視するのと同様の理由で、第1領域ステータ
スエリア303を監視しており、この場合もサブCPU
が確実にデータを受け取ったという通知を待っているは
ずである。そこで、サブCPUは、メインCPU101
からの受信に対する応答として、第1領域ステータスエ
リア303の受信表示部308に、前回書き込んだ値と
は異なる値を書き込んでおく。
【0028】なお、この場合は異なった値であれば、ど
のような値でもよい。例えば受信表示部308が1バイ
トであり、前回書き込んだ値が02であれば、1だけイ
ンクリメントして03を書き込むようにする。このよう
な異なる値を書き込むことにより、メインCPU101
は、サブCPU同様、第1領域ステータスエリア303
の変化をもってサブCPUからのイベント通知を認識す
る。
【0029】以上、受信については、S406で処理が
終了したので、今度は第2領域ステータスエリア受信表
示部310について変化がないかどうか調べ(S40
7)、変化があった場合には、メインCPU101から
受信確認を送ってきたと解し、受信確認待ち状態になっ
ていた送信状態を送信空状態へ遷移して(S408)、
処理の先頭に戻る。
【0030】なお、S404、S407で変化がない場
合には、それぞれ受信、送信の処理を行わない。
【0031】また、S401において、イベント受信以
外の作業がある場合には、この通信手順を担う通信プロ
グラム以外のアプリケーションにおいてイベント送信要
求が発生しているかどうか調べ(S409)、送信状態
が送信空状態の場合には(S410)、第1領域データ
エリア304にイベントデータを書き込み(S41
1)、次にイベントデータ送信をメインCPU101へ
通知するために、第1領域ステータスエリア送信表示部
307に送信要求の意味で前回書き込んだ値と異なる値
を書き込む(S412)。
【0032】なお、S411とS412の順番は入れ違
えてはならない。入れ違えた場合、送信表示部307に
送信要求をサブCPUが書き込んだ直後にメインCPU
101がこれを読み出し、まだデータが格納されていな
いデータエリア304からデータを読み出そうとするエ
ラーが起こる可能性があるからである。
【0033】次に、S412の後、送信状態を送信空状
態から受信確認待ち状態へ遷移させて(S413)、処
理の先頭に戻る。
【0034】また、S409でイベント送信要求がない
場合には、他の作業があるはずなので、その残りの作業
を行う(S414)。
【0035】次に、メインCPU101側の通信手順に
ついて図5のフローチャートを用いて説明する。サブC
PU側のフローチャートを示した図4と異なるのは複数
のサブCPUが通信相手であるということと、第1領域
301と第2領域302の関係がサブCPUの場合と逆
になるということである。
【0036】まず、イベント受信以外の作業があるかど
うかを調べ(S501)、ない場合は、第1領域ステー
タスエリア303の読み出し処理に移るが、ここでは複
数のサブCPUについて読み出し処理を行う必要がある
ので、まず1つのサブCPUを選択し(S502)、図
4のS402からS408で示したのと同様に、ステー
タスエリア読み出し処理、受信処理、送信状態遷移処理
を行う(S504〜S510)。但し、前述したように
第1領域と第2領域の関係が入れ替わる点と、サブCP
UがアクセスするDPRAM105の記憶領域は、図2
で示すように、各サブCPU対応の領域に限定されてい
るが、メインCPUはDPRAM105の領域全体につ
いてアクセスが可能であるので、どの領域についてアク
セスするのかは常にどのサブCPUについての処理を行
っているのかを意識しながら決定している点(なお、図
5の各ステップで第1領域、第2領域の前に「サブCP
U対応の」とつけ加えてある意味はこれである)と、送
信状態もサブCPU対応になるという点において図4の
場合とは異なっている。
【0037】ここで1つのサブCPUについて一連の処
理が終了した後、S502に戻り、次のサブCPUを選
択して再び一連の処理を行う。そして、次々にサブCP
Uを選択して、全サブCPUについて処理が終了したと
き(S503)、処理の先頭に戻る。
【0038】また、S501でイベント受信以外の作業
がある場合には、イベント送信要求があるかどうか調べ
(S511)、ある場合には、S410からS413に
示したのと同様に、イベント送信処理を行う(S512
〜S515)。また、イベント送信要求がない場合に
は、残りの作業を行う(S516)。
【0039】以上のように、この第1実施例では、CP
Uが相手CPUに通信を行う際のトリガとして割込を使
用しておらず、ステータスエリアの値の変化を検出する
という手段を用いていることから、ステータスエリアの
読み出しを各CPUが独自に行うことによって、通信量
に左右されないスループットを得ることができる。ま
た、通信以外の作業量が多いときには、その作業を優先
的にこなし、通信を後回しにすることで、平均的なスル
ープットを得ることができる。
【0040】また、メインCPU101にとっては1つ
のサブCPUとの通信が終わってから次のサブCPUと
の通信を始めるというのではなく、既に複数のサブCP
Uからのデータが入っているDPRAM105から一挙
にデータを取り出すことにより、さらに効率を向上でき
る効果もある。
【0041】また、第1領域301と第2領域302と
を区分することで、メインCPU、サブCPUが共に相
手に対してイベント送信要求がある時に、同時にDPR
AM105にデータを書き込みことができるとともに、
ステータスエリアを送信表示部と受信表示部とに分けた
ことで、送信要求と受信確認を一度に相手CPUに対し
て通知できる(つまり、相手CPUがステータスエリア
を読み出す前に自CPUが送信要求についての処理と、
受信確認についての処理とを2つとも行うことができ
る)ので、メインCPU101と1つのサブCPUとの
間で全二重通信が可能である。
【0042】さらに、DPRAM105の領域を各サブ
CPU対応に分けたことで、メインCPU101と複数
のサブCPUとの間での同時通信が可能であるという利
点もある。
【0043】なお、以上の第1実施例では、メインCP
UにとってはDPRAM105の領域全体がメインCP
Uのメモリマップにマッピングされるので、通信の分だ
けで相当のメモリ量を消費してしまう。また、各サブC
PUはバス競合回路106を経てDPRAM105にア
クセスしているので、実際にアクセス競合が起こった場
合、厳密な意味での同時アクセスができず、アクセス時
間がかかる不都合が生じる。そこで、このような不都合
を改善した第2実施例について、以下に説明する。
【0044】図6は、この第2実施例におけるハード構
成を示すブロック図であり、第1実施例と同じ構成につ
いては、同一符号を付してある。
【0045】このマルチプロセッサシステムは、各サブ
CPU102、103、104に対応するDPRAM6
02、603、604と、メインCPU101が各DP
RAM602、603、604を選択的にアクセスする
ためのバンク切替回路601とを設けたものである。各
DPRAM602、603、604は、メインCPU1
01から見て異なるバンクにおかれる。
【0046】図7は、第2実施例におけるメインCPU
101のメモリマップを示す模式図である。図7におい
て、第1サブCPUに対応する記憶領域201は、DP
RAM602の記憶領域に対応し、同様に第2サブCP
Uに対応する記憶領域202は、DPRAM603の領
域に対応し、第3サブCPUに対応する記憶領域203
は、DPRAM604の領域に対応している。
【0047】また、本実施例の場合、各DPRAMは、
それぞれRAM容量が等しく、メモリアップ中に占める
領域の大きさも等しいものとなっている。そして、各D
PRAMは、相互に同じアドレス範囲に存在するので、
DPRAMを選択してアクセスするためにバンク切替回
路601を使用する。
【0048】すなわち、メインCPU101から各DP
RAMをアクセスするときはポートからどのDPRAM
をアクティブにするかの信号を出力する。バンク切替回
路601では、その信号に応じ、各DPRAMのCE
(チップイネーブル)端子につながる線のうち、望みの
DPRAMにつながる線のみをアクティブにする。
【0049】これにより、メインCPUが書き込み、読
み出し動作を行った時に、該当するDPRAMに対して
のみ処理することができる。一方、サブCPU側から見
れば、DPRAMの個数がサブCPUの個数分存在する
ので、バス競合回路106が不要になり、DPRAMを
占有してアクセスできる。
【0050】以上の第2実施例では、DPRAMをサブ
CPU対応で設け、メインCPU101側からバンク切
替によってアクセスするようにしたので、メインCPU
101側の通信で消費するメモリ量は、各DPRAMの
RAM容量が等しい場合にDPRAM1個分、各DPR
AMのRAM容量が等しくなければ、最大のRAM容量
を持つDPRAMの容量で済む。また、バス競合回路1
06が不要になり、各DPRAMへの完全な同時アクセ
スが可能であるという効果がある。
【0051】ところで、各DPRAMの領域全体をバン
クに置いてしまうと、図5のS504で示したメインC
PU101による第1領域ステータスエリアの読み出し
の際も、その度毎にバンク切替が必要になる。ステータ
スエリアの監視は、相手CPUの要求に対する応答を迅
速に行うために常時行う必要のあるものであり、その度
毎にバンク切替を行っていたのでは、スループットが低
くなってしまう。
【0052】また、第1実施例では、通信以外の作業量
が多いときは、それを優先的にこなしてCPUとしての
スループットを下げないようにしていたが、それが多す
ぎるときは通信プログラムが動けず、通信能力の低下を
招く原因となる(つまり、上述したS401およびS5
01で必ず肯定の方向に行くので、S402〜S40
8、S502〜S510の処理が実行されない)。
【0053】さらに、第1、2実施例において、第1領
域301はサブCPUからメインCPU101への方向
の通信に用い、第2領域302はメインCPU101か
らサブCPUへの方向の通信に用いるということで、第
1領域301はサブCPU側からのみ書き込み可能であ
り、第2領域302はメインCPU101側からのみ書
き込み可能(読み出しはどちらの領域でもどちらのCP
Uからでも可能)であったが、その取り決めはソフト上
でのものであり、ハードにおいてライトプロテクトをか
けているわけではないので、ソフトのバグやCPUの暴
走により、自CPUが書き込みを禁じられている領域に
も間違って書き込みを行ってしまう可能性がある。
【0054】そこで、これらの課題を解決した第3実施
例について以下に説明する。
【0055】図8は、この第3実施例のハード構成を示
したブロック図であり、第2実施例と同じ構成について
は、同一符号を付してある。
【0056】このマルチプロセッサシステムは、メイン
CPU101とDPRAMとの間のアドレスデコーダ8
01と、各CPUとDPRAMとの間のライトプロテク
ト回路802、809、810、811を有している。
また、各ライトプロテクト回路802、809、81
0、811は、アドレスデコーダ803と、書き込み禁
止回路804とを有している(なお、図8ではライトプ
ロテクト回路802の内容のみ示している)。また、メ
インCPU101にはタイマ805、サブCPU102
にはタイマ806、サブCPU103にはタイマ80
7、サブCPU104にはタイマ808がそれぞれ設け
られてる。
【0057】アドレスデコーダ801は、メインCPU
101からDPRAM602、603、604にアクセ
スするアドレスを変換する機能をもっているが、本実施
例では、その他に、図9に示すメインCPU101のメ
モリマップにおける各DPRAMの第1領域ステータス
エリア303を、バンクアドレス以外のアドレスにおい
てアクセスできるようにアドレス変換する機能ももって
いる。
【0058】図9では、各DPRAM(=各サブCPU
対応領域)の領域全体がバンクアドレスに置かれるとと
もに、第1領域のステータスエリア303はバンク以外
のアドレスに置かれる様子を示している。従って、バン
クアドレスにおいても第1領域ステータスエリア303
はアクセス可能である。
【0059】そして、メインCPU101から第1サブ
CPU対応領域の第1領域のステータスエリア901に
アクセスするときは、アドレスデコーダ801におい
て、メインCPU101から出力された第1サブCPU
対応領域の第1領域ステータスエリア901のアドレス
が、実際のDPRAM602における第1領域ステータ
スエリア303のアドレスに変換されて、DPRAM6
02のアドレスバスに出力されるとともに、バンク切替
回路601に対して、メインCPU101からのポート
出力によるバンク指定を無効にする信号を出力し、さら
にはDPRAM602のCE端子をアクティブにする信
号を送出する。
【0060】第2サブCPU対応領域の第1領域のステ
ータスエリア902や、第3サブCPU対応領域の第1
領域のステータスエリア903にアクセスするときも同
様である。
【0061】また、ライトプロテクト回路802は、メ
インCPU101が各DPRAMの第1領域301に書
き込むことを禁止するための回路である。メインCPU
101が第1領域301にアクセスしようとすると、ア
ドレスデコーダ802はメインCPU101から出力さ
れたアドレスがバンクアドレス内の第1領域301内で
ある時は、書き込み禁止回路804に対して制御信号を
出力し、WR(ライト)信号が各DPRAMに伝わるの
を防ぐ。従って、WR信号がDPRAMに伝わらないた
めに書き込みができないことになる。
【0062】また、ライトプロテクト回路809、81
0、811は、それぞれサブCPU102、103、1
04がDPRAM602、603、604の第2領域3
02に書き込むことを禁止するための回路であり、基本
的な構成はライトプロテクト回路802と同様である。
【0063】また、タイマ805は、メインCPU10
1がステータス監視処理を周期的に行うために、請求項
5に記載した第1タイマの機能をもつものであり、タイ
マ806、807、808は、各々サブCPU102、
103、104がステータス監視処理を周期的に行うた
めに、上記第1タイマの機能をもつものである。
【0064】図10は、サブCPU側の第1タイマによ
って周期的に起動されるステータス監視処理を示すフロ
ーチャートであり、図11は、メインCPU101側の
第1タイマによって周期的に起動されるステータス監視
処理を示すフローチャートである。
【0065】ここで図10は、上述した図4のS402
からS408までの処理(S1101〜S1107)に
加えて、周期的起動を得るために再度第1タイマをスタ
ートさせている(S1108)。また、図11は、上述
した図5のS502からS510までの処理(S120
1〜S1209)に加えて、周期的起動を得るために再
度第1タイマをスタートさせている(S1210)。
【0066】本実施例ではステータス監視処理が周期的
に行われるので、この処理が実行されていない間は、他
の処理をCPUが行うことができ、図4、図5でいえ
ば、S409からS414までの処理、S511からS
516までの処理がこの間に行われることになる。よっ
て、第1タイマの周期は、ステータス監視処理と他の処
理の処理時間の割合を決定する因子となり、通信トラフ
ィック量も加味した上でシステムに応じた最適な値を設
定する。
【0067】以上のように、この第3実施例において
は、アドレスデコーダ801によってDPRAMの第1
領域ステータスエリア303をバンク以外のアドレスに
置くことができるようになるので、バンク切替を行わず
とも、第1領域ステータスエリア303にアクセスでき
る。
【0068】また、ライトプロテクト回路802、80
9、810、811により、メインCPU101は第1
領域301に対して、各サブCPUは第2領域302に
対して書き込みを禁止できるので、ソフトのバグやCP
Uの暴走により、自CPUが書き込みを禁じられている
領域に間違って書き込みを行ってしまう可能性を皆無に
することができるという利点を有する。
【0069】さらに、上記第1タイマにより、ステータ
ス監視処理を周期的に行えるので、CPUは通信とそれ
以外の作業のバランスがとれた処理が行えるという効果
もある。
【0070】
【発明の効果】以上説明したように、本発明によれば、
メインCPUとサブCPUの双方からアクセス可能なD
PRAMを設け、このDPRAMに各サブCPUに対応
した送信方向用の第1領域と受信方向用の第2領域を設
定するとともに、これら領域に設けたステータスエリア
とデータエリアに各CPUが独自の動作でデータの書き
込みと読み出しを行うことにより、メインCPUとサブ
CPUとの間の通信を行うことから、従来のように、C
PUからCPUへの通信トリガとして相手CPUに対す
る割り込みを使用する必要がない。従って、通信量の増
大によるスループットの低下を防止することができる。
【0071】また、DPRAMの記憶領域を上述した第
1領域と第2領域とに分けるとともに、上記ステータス
エリアを送信表示部と受信表示部に分けたことから、メ
インCPUと1つのサブCPUとの間で全二重通信が可
能である。
【0072】さらに、DPRAMによって各サブCPU
に対応した領域を設定することにより、メインCPUと
複数のサブCPUとの間で同時通信が可能である。
【図面の簡単な説明】
【図1】本発明の第1実施例を示すブロック図である。
【図2】上記第1実施例におけるDPRAM内の記憶領
域を説明する模式図である。
【図3】図2に示す記憶領域のさらに詳細を説明する模
式図である。
【図4】上記第1実施例におけるサブCPUの動作を示
すフローチャートである。
【図5】上記第1実施例におけるメインCPUの動作を
示すフローチャートである。
【図6】本発明の第2実施例を示すブロック図である。
【図7】上記第2実施例におけるメインCPUのメモリ
マップの一部を説明する模式図である。
【図8】本発明の第3実施例を示すブロック図である。
【図9】上記第3実施例におけるメインCPUのメモリ
マップの一部を説明する模式図である。
【図10】上記第3実施例において、サブCPU側の第
1タイマによって周期的に起動されるステータス監視処
理を示すフローチャートである。
【図11】上記第3実施例において、メインCPU側の
第1タイマによって周期的に起動されるステータス監視
処理を示すフローチャートである。
【図12】従来技術の構成例を示すブロック図である。
【符号の説明】
101…メインCPU、 102、103、104…サブCPU、 105、602、603、604…デュアルポートRA
M、 106…バス競合回路、 601…バンク切替回路、 801、803…アドレスデコーダ、 802、809、810、811…ライトプロテクト回
路、 804…書き込み禁止回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 メインCPUと、1または複数のサブC
    PUと、前記メインCPUおよび前記サブCPUの双方
    からアクセス可能なデュアルポートRAMを備えたマル
    チプロセッサシステムにおいて、 前記デュアルポートRAMは、前記各サブCPUに対応
    して設けられ、前記メインCPUおよび対応サブCPU
    からのみアクセス可能な1または複数の記憶領域を有
    し;この記憶領域は、前記対応サブCPUから前記メイ
    ンCPUへの方向の通信に用いる第1領域と、前記メイ
    ンCPUから前記対応サブCPUへの方向に用いる第2
    領域とを有し;前記第1領域は、前記対応サブCPUが
    自ステータスを書き込み、前記メインCPUに自ステー
    タスを通知するステータスエリアと、前記対応サブCP
    Uが自データを書き込み、前記メインCPUに自データ
    を通知するデータエリアとを有し;前記第2領域は、前
    記メインCPUが自ステータスを書き込み、前記対応サ
    ブCPUに自ステータスを通知するステータスエリア
    と、前記メインCPUが自データを書き込み、前記対応
    サブCPUに自データを通知するデータエリアとを有
    し、 前記第1領域のステータスエリアは、前記対応サブCP
    Uの送信ステータスを書き込む送信表示部と、受信ステ
    ータスを書き込む受信表示部とを有し;前記第2領域の
    ステータスエリアは、前記メインCPUの送信ステータ
    スを書き込む送信表示部と、受信ステータスを書き込む
    受信表示部とを有する;ことを特徴とするマルチプロセ
    ッサシステム。
  2. 【請求項2】 メインCPUと、複数のサブCPUと、
    各サブCPUに対応した複数のデュアルポートRAM
    と、前記メインCPUからアクセス可能な前記デュアル
    ポートRAMを切り替えるバンク切替手段とを備えたマ
    ルチプロセッサシステムにおいて、 前記デュアルポートRAMは、前記メインCPUおよび
    対応サブCPUからのみアクセス可能な記憶領域を有
    し;この記憶領域は、前記対応サブCPUから前記メイ
    ンCPUへの方向の通信に用いる第1領域と、前記メイ
    ンCPUから前記対応サブCPUへの方向に用いる第2
    領域とを有し;前記第1領域は、前記対応サブCPUが
    自ステータスを書き込み、前記メインCPUに自ステー
    タスを通知するステータスエリアと、前記対応サブCP
    Uが自データを書き込み、前記メインCPUに自データ
    を通知するデータエリアとを有し;前記第2領域は、前
    記メインCPUが自ステータスを書き込み、前記領域対
    応サブCPUに自ステータスを通知するステータスエリ
    アと、前記メインCPUが自データを書き込み、前記対
    応サブCPUに自データを通知するデータエリアとを有
    し、 前記第1領域のステータスエリアは、前記対応サブCP
    Uの送信ステータスを書き込む送信表示部と、受信ステ
    ータスを書き込む受信表示部とを有し;前記第2領域の
    ステータスエリアは、前記メインCPUの送信ステータ
    スを書き込む送信表示部と、受信ステータスを書き込む
    受信表示部とを有する;ことを特徴とするマルチプロセ
    ッサシステム。
  3. 【請求項3】 請求項1または2において、 前記サブCPUが自CPU内で生じたイベントデータを
    前記メインCPUに送信する時は、前記サブCPUは前
    記サブCPUに対応する前記第1領域のデータエリアに
    前記イベントデータを書き込んだ後、前記第1領域のス
    テータスエリアの送信表示部に前回書き込んだ値と異な
    る値を書き込み、前記メインCPUは前記第1領域のス
    テータスを常時読み出して監視し、読み出した値が前回
    読み出した値と比較して変化がある場合には、前記メイ
    ンCPUは前記第1領域のデータエリアからイベントデ
    ータを読み出した後、前記サブCPUに対応する第2領
    域のステータスエリアの受信表示部に前回書き込んだ値
    と異なる値を書き込むようにし、 前記メインCPUが自CPU内で生じたイベントデータ
    を前記サブCPUに送信する時は、前記メインCPUは
    前記サブCPUに対応する第2領域のデータエリアに前
    記イベントデータを書き込んだ後、前記第2領域のステ
    ータスエリアの送信表示部に前回書き込んだ値と異なる
    値を書き込み、前記サブCPUは前記第2領域のステー
    タスエリアを常時読み出して監視し、読み出した時に値
    が前回読み出した値と比較して変化がある場合、前記サ
    ブCPUは前記第2領域のデータエリアからイベントデ
    ータを読み出した後、前記サブCPUに対応する領域の
    第1領域のステータスエリアの受信表示部に前回書き込
    んだ値と異なる値を書き込むようにすることを特徴とす
    るマルチプロセッサシステム。
  4. 【請求項4】 請求項2または3において、 アドレスデコード回路を備え、前記メインCPUから見
    て、前記各デュアルポートRAMの第1領域のステータ
    スエリアが、前記バンク切替手段によってバンクの切り
    替わるアドレス以外のアドレスにあるように前記アドレ
    スデコード回路によりデコードすることを特徴とするマ
    ルチプロセッサシステム。
  5. 【請求項5】 請求項1において、 前記メインCPUおよび前記サブCPUは各々第1タイ
    マを備え、前記各CPUが備える第1タイマによって、
    前記メインCPUは前記第1領域のステータスエリアを
    周期的に読み出して監視するとともに、前記サブCPU
    は前記第2領域のステータスエリアを周期的に読み出し
    て監視することを特徴とするマルチプロセッサシステ
    ム。
  6. 【請求項6】 請求項1において、 前記メインCPUから前記デュアルポートRAMに対し
    て書き込む領域を制限する第1ライトプロテクト回路
    と、前記サブCPUから前記デュアルポートRAMに対
    して書き込む領域を制限する1または複数の第2ライト
    プロテクト回路を備え、前記第1ライトプロテクト回路
    により、前記メインCPUから前記デュアルポートRA
    Mにおける各サブCPUに対応する第1領域に書き込む
    ことを禁止するとともに、前記第2ライトプロテクト回
    路により、前記サブCPUから前記デュアルポートRA
    Mにおける各サブCPUに対応する第2領域に書き込む
    ことを禁止することを特徴とするマルチプロセッサシス
    テム。
JP17943592A 1992-06-12 1992-06-12 マルチプロセッサシステム Pending JPH05346908A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17943592A JPH05346908A (ja) 1992-06-12 1992-06-12 マルチプロセッサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17943592A JPH05346908A (ja) 1992-06-12 1992-06-12 マルチプロセッサシステム

Publications (1)

Publication Number Publication Date
JPH05346908A true JPH05346908A (ja) 1993-12-27

Family

ID=16065818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17943592A Pending JPH05346908A (ja) 1992-06-12 1992-06-12 マルチプロセッサシステム

Country Status (1)

Country Link
JP (1) JPH05346908A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511334A (ja) * 2007-12-12 2011-04-07 エヌエックスピー ビー ヴィ 処理アーキテクチャ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511334A (ja) * 2007-12-12 2011-04-07 エヌエックスピー ビー ヴィ 処理アーキテクチャ

Similar Documents

Publication Publication Date Title
US5392446A (en) Multiple cluster signal processor architecture
TWI221968B (en) System having an apparatus for controlling use of a communication bus and method for controlling use of a communication bus in a system
US7162556B2 (en) Matrix type bus connection system and power reduction method therefor
JPS5853379B2 (ja) 多重処理装置マイクロコンピュ−タ
KR19990067846A (ko) 버스 시스템 동작 방법 및 장치
US5781927A (en) Main memory arbitration with priority scheduling capability including multiple priorty signal connections
JP2008009817A (ja) 半導体装置及びデータ転送方法
US6154785A (en) Inter-processor communication system
US6128689A (en) System for exchanging data through data memory area of common memory in synchronous and asynchronous modes
US6282144B1 (en) Multi-ported memory with asynchronous and synchronous protocol
JP2000222226A (ja) アクセス制御装置及びアクセス方法
JPH05346908A (ja) マルチプロセッサシステム
JP2001167058A (ja) 情報処理装置
JPH09269934A (ja) 共有メモリのデータ一致化方法および伝送システム
JPH06274463A (ja) データ通信システム
JP2000244585A (ja) バスインタフェース回路
JP2004213666A (ja) Dmaモジュールとその操作方法
KR20000026338A (ko) Arm 중앙처리장치를 내장한 마이크로 컨트롤러의 버스제어방법
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP2000155738A (ja) データ処理装置
JPH11184827A (ja) マスタスレーブ装置
JPH056333A (ja) マルチプロセサシステム
KR20220132333A (ko) PCIe 인터페이스 장치 및 그 동작 방법
JPS58182737A (ja) 情報処理装置
JPWO2004079573A1 (ja) マルチプロセッサシステム