JPH0573508A - マルチプロセツサシステム - Google Patents

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

Info

Publication number
JPH0573508A
JPH0573508A JP23602391A JP23602391A JPH0573508A JP H0573508 A JPH0573508 A JP H0573508A JP 23602391 A JP23602391 A JP 23602391A JP 23602391 A JP23602391 A JP 23602391A JP H0573508 A JPH0573508 A JP H0573508A
Authority
JP
Japan
Prior art keywords
task
processor
mail
area
time
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
JP23602391A
Other languages
English (en)
Inventor
Akira Hanabusa
明 英
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.)
Panasonic System Solutions Japan Co Ltd
Original Assignee
Matsushita Graphic Communication Systems 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 Matsushita Graphic Communication Systems Inc filed Critical Matsushita Graphic Communication Systems Inc
Priority to JP23602391A priority Critical patent/JPH0573508A/ja
Publication of JPH0573508A publication Critical patent/JPH0573508A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【目的】 単一プロセッサシステムからの移行が容易な
マルチプロセッサシステムを実現する。 【構成】 プロセッサ1,2はそれぞれリアルタイムO
Sを持ち、相互間に割り込み機能を持つデュアルポート
メモリ(DPM)6を持つ。各OSは、自タスクが発行
したメールの転送先が自タスクであるか他タスクである
かを判別し、転送先が他タスクの場合はメールをDPM
6へ転送する。この時、DPMは他OSに対し割り込み
を発生し、他OSはDPM6よりメールを取り込み転送
先の自タスクに渡す。 【効果】 タスクは、単一プロセッサシステムの場合と
同様に、タスクが動作するプロセッサを意識する必要が
ない。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサを用
いて同時に複数のタスクを実行するマルチプロセッサシ
ステムに関する。
【0002】
【従来の技術】マルチタスク処理システムは、単一のプ
ロセッサ上で、単一のリアルタイムOS(オペレーティ
ングシステム)の管理の下にマルチタスク処理を実行す
る単一プロセッサシステムと、複数のプロセッサ上でマ
ルチタスク処理を実行するマルチプロセッサシステムと
に大別される。
【0003】なお、単一プロセッサシステムで、マルチ
タスク処理に関係した機能をマイクロプログラム化する
ことによって、マルチタスク処理の速度向上を図る技術
が特開昭63−257833号公報に述べられている。
【0004】マルチプロセッサシステムは、様々な形態
のものが実用化されているが、マイクロプロセッサを用
いるような比較的小規模なマルチプロセッサシステムの
一般的構成によれば、各プロセッサ上で動作するタスク
が固定され、各プロセッサ毎にリアルタイムOSが用意
される。タスク間同期用メールの交換の場合に、メール
発行元タスク側で、同一プロセッサのタスクへの転送と
他プロセッサのタスクへのメール転送とを区別し、シス
テムコールによりリアルタイムOSにメール転送を要求
する。また、プロセッサ間通信は共有メモリを介して行
なわれる。
【0005】
【発明が解決しようとする課題】単一プロセッサシステ
ムは、単一のプロセッサ上でタスクを時分割に実行する
もので、一時に動作するタスクは1個に限られるため、
たとえ特開昭63−257833号公報に述べられてい
るような工夫をしても、リアルタイム性に限界があり、
またタスク数をそれほど多くできない。
【0006】これに対し、マルチプロセッサシステム
は、複数のプロセッサ上で同時に複数のタスクを動作さ
せることができるため、より高い処理能力を期待でき
る。しかし、上述のような従来のマルチプロセッサシス
テムの構成によれば、タスク側でどのプロセッサのタス
クであるかを認識できるように、タスクを設計し動作さ
せる必要があり、これは単一プロセッサシステム上のタ
スクでは考慮する必要がなかった事項である。このた
め、既存の単一プロセッサシステムをマルチプロセッサ
システムへ移行させる場合、単一プロセッサシステムの
タスクを、そのままマルチプロセッサシステムのタスク
として用いることができず、タスクの大幅な変更が必要
となるという問題があった。また、従来構成によれば、
共有メモリ経由のプロセッサ間通信に関連したソフトウ
エアとハードウエアが複雑化するという問題もあった。
【0007】本発明は、上述の問題点に鑑みてなされた
もので、マイクロプロセッサを用いるような比較的小規
模なマルチタスク処理システムに好適で、単一プロセッ
サシステム上のタスクをそのまま、あるいは殆ど変更せ
ずに用いることが可能なマルチプロセッサシステムを提
供することを目的とする。
【0008】
【課題を解決するための手段】上述の目的を達成するた
め、本発明は、複数のプロセッサのそれぞれが、その上
で動作するタスクと、タスクの管理及びタスク間同期用
メールの管理のためのリアルタイムOSとを有し、ま
た、各プロセッサの間に相互通信のためのデュアルポー
トメモリを有する。各リアルタイムOSは、タスクが動
作するプロセッサを判別するための情報と、自プロセッ
サで動作するタスクからメール転送を要求された場合
に、前記情報を参照することによって転送先タスクが動
作するプロセッサを判別し、転送先タスクが他プロセッ
サで動作するタスクであるときは、この他プロセッサと
の間のデュアルポートメモリへメール情報を転送する手
段とを有する。各デュアルポートメモリは、メール情報
を転送された時に転送先タスクが動作するプロセッサに
対し割り込みを発生する機能を有する。また各リアルタ
イムOSは、自プロセッサに対する割り込みがデュアル
ポートメモリで発生した時に、このデュアルポートメモ
リよりメール情報を取り込み、これを自プロセッサ上で
動作する転送先タスクへ渡す手段を有する、という構成
を備えるものである。
【0009】
【作用】タスク間同期用メールの転送先タスクがどのプ
ロセッサ上で動作するかは、メール発行元のタスクが動
作するプロセッサのリアルタイムOSにより判別され、
発行元タスクは転送先タスクが動作するプロセッサを意
識する必要がない。また、転送先タスクが他プロセッサ
上で動作するタスクである場合、このタスクは、リアル
タイムOSの制御によってメールを伝達され、発行元タ
スクが同一プロセッサ上のタスクであるか否かを意識す
る必要がない。このように、タスク側でタスクが動作す
るプロセッサを意識する必要がないので、従来の単一プ
ロセッサシステム上のタスクをそのまま、もしくは殆ど
変更せずに用いることができる。
【0010】また、割り込み機能を持つデュアルポート
メモリを利用することによって、異プロセッサのタスク
間で高速のメール交換が可能であり、また、プロセッサ
間通信のためのハードウエア及びソフトウエアの複雑化
を避けられる。
【0011】
【実施例】以下、本発明の一実施例について図面を参照
して説明する。
【0012】図1はマルチプロセッサシステムのハード
ウエア構成図である。このシステムは二つのプロセッサ
1,2を有するもので、各プロセッサはマイクロプロセ
ッサユニット(MPU)3、メモリ4及びアドレスデコ
ーダ5からなる。6はプロセッサ1,2間通信のため
の、割り込み機能を持つデュアルポートメモリであっ
て、これはメモリ回路7、このメモリ回路7をプロセッ
サ1側からアクセスするためのI/Oバッファ8及びア
ドレスデコーダ9、メモリ回路7をプロセッサ2からア
クセスするためのI/Oバッファ10及びアドレスデコ
ーダ11、並びにアービトレーション回路12からなっ
ている。このアービトレーション回路12は、プロセッ
サ1,2からのアクセスが競合した場合に、一方のプロ
セッサのアクセスを優先し、BUSY信号によって他方
のプロセッサにアクセスを待たせるアクセス調停機能
と、一方のプロセッサから情報が転送された時に、他方
のプロセッサに対する割り込みを発生する割り込み機能
を持っている。INT信号は、この割り込みの信号であ
る。
【0013】図2は本システムのソフトウエア構成図で
ある。20はプロセッサ1のリアルタイムOS、21は
プロセッサ2のリアルタイムOSである。22はリアル
タイムOS20の管理下でプロセッサ1上で動作する複
数のタスク、23はリアルタイムOS21の管理下でプ
ロセッサ2上で動作する複数のタスクである。24はリ
アルタイムOS20,21間で同期をとるためのパイプ
ラインで、ハードウエアとしては図1に示したデュアル
ポートメモリ6である。
【0014】リアルタイムOS20と、その管理下のタ
スク22はプロセッサ1内のメモリ4のROM領域に置
かれる。同様にリアルタイムOS21とタスク23は、
プロセッサ2内のメモリ4のROM領域に置かれる。す
なわち、本実施例では、タスク22,23はROM化さ
れ、常に存在する。
【0015】図3はタスクとメールの管理構造の説明図
である。なお、説明を簡単にするため、タスク22とし
て2個のタスク(TASK1,TASK2と呼ぶ)が、
またタスク23として2個のタスク(TASK3,TA
SK4と呼ぶ)が、それぞれ存在するものとする。
【0016】各リアルタイムOS20,21は、それぞ
れの管理下にあるタスクに関し、タスク定義領域(TD
領域:タスクデスクリプタ)、メールの領域(MAIL
領域)、タスク間メール交換管理領域(EXG領域)を
メモリ4上に持つ。単一プロセッサシステムであれば、
これらの領域を定義するのみでマルチタスク処理を実現
できる。しかし、本実施例は2プロセッサシステムであ
り、異プロセッサ上のタスク間でメールによる情報交換
が可能でなければならないので、各リアルタイムOS2
0,21はそれぞれ、他OSの管理下のタスクに関し、
MAIL領域と同一形式のメールの領域(LMAIL領
域)とEXG領域と同一形式のタスク間メール交換管理
領域(LEXG領域)を有し、また、メールを交換する
タスクが自タスク(自プロセッサ上のタスク)であるか
他タスク(他プロセッサ上のタスク)であるかの判別と
対応のEXG領域またはLEXG領域の指定のためのX
領域を備えている。
【0017】このX領域は、各タスクに対応したメール
交換管理領域(EXG領域またはLEXG領域)へのポ
インタと、そのEXG領域とLEXG領域の区別(自、
他タスクの区別)を内容とするテーブルである。TAS
K1とTASK2は、リアルタイムOS20にとっては
自タスク、リアルタイムOS21にとっては他タスクで
ある。TASK3とTASK4は、リアルタイムOS2
1にとっては自タスクであるが、リアルタイムOS20
にとっては他タスクである。よって、各リアルタイムO
S20,21のX領域の内容は、図3に示されるよう
に、自他タスクの関係が相反する形になる。
【0018】TD領域は、タスクの状態(ウエイト/レ
ディ)等がセットされる領域で、図4に示す構造を有す
る。30は次のTD領域のポインタ、31は前のTD領
域のポインタ、32はタスクの状態、33はタスクの処
理レベル(優先度)、34は予約領域、35はタスクが
ウエイトしている(メールを待っている)他のタスクの
TD領域のポインタ、36はタスクの再起動時にスタッ
クにセーブされているレジスタ情報等を取り出すための
スタックポインタ、37はタスクのスタートアドレス、
38はタスクのハードウエアのスタックポインタであ
る。
【0019】なお、タスク状態としては、タスクが他の
タスクからのメール待ちのために停止しているウエイト
状態と、メール待ちのためウエイトしたタスクが他タス
クからメールを転送され、再起動が可能となったレディ
状態とがある。
【0020】EXG領域はリアルタイムOS20,21
が自タスクへのメール交換を管理するための領域で、そ
の構造を図5に示す。40は登録されているメールの個
数、41は登録されているタスクの個数、42は最初に
リンクされたメールのポインタ、43は最後にリンクさ
れたメールのポインタ、44は最初にウエイトしたタス
クのTD領域のポインタ、45は最後にウエイトしたタ
スクのTD領域のポインタである。
【0021】MAIL領域の構造を図6に示す。50は
EXG領域に登録されているときの次のメールのポイン
タ、51はEXG領域に登録されているときの直前のメ
ールのポインタ、52はメールの交換情報、53は不使
用時にリンクされるEXG領域のポインタ、54はメー
ル交換情報に必要に応じて付加されるパラメータであ
る。
【0022】OS間通信用のLEXG領域の構造を図7
に示す。60は登録されているメールの個数、61は予
約領域、62は最初にリンクされたメール(LMAI
L)のポインタ、63は最後にリンクされたメールのポ
インタ、64と65は予約領域、である。
【0023】図8はLMAIL領域の構造を示す。70
はLEXG領域に登録されているときの次のメール(L
MAIL)のポインタ、71はLEXG領域に登録され
ているときの直前のメールのポインタ、72はメールの
交換情報、73は不使用時にリンクされるLEXG領域
のポインタ、74はメール交換情報に必要に応じて付加
されるパラメータである。
【0024】なお、MAIL領域とLMAIL領域の区
別は、リアルタイムOS20,21にとってのもので、
この区別はX領域の内容で決まる。タスクにとっては、
MAIL領域もLMAIL領域も同じメール領域に過ぎ
ない。EXG領域とLEXG領域も同様である。また、
各プロセッサ上のタスクの増減やタスクの入れ替えに対
しては、X領域の変更のみで容易に対応できる。
【0025】次に、動作について説明する。図9は、リ
アルタイムOS20,21のタスク起動に関連した動作
の概略フローチャートである。図示のように、スタック
セット(ST1)、割り込みマスク解除(ST2)の
後、自タスクに対するTD領域を参照することによりレ
ディ状態のタスクをサーチする(ST3,ST4)。レ
ディ状態のタスクが2個以上ある場合、その中で処理レ
ベルが最高の一つを選ぶ。レディ状態のタスクが見つか
ると、割り込みマスクを解除し(ST5)、そのタスク
に関するTD領域の更新やスタックにセーブされている
レジスタ情報等のリセーブ等の処理を行ない(ST
6)、そのタスクを起動する。
【0026】各タスクは、図10の動作概略フローチャ
ートに示すような基本構造を持っている。システムの電
源投入時、リアルタイムOS20または21は、TD領
域の情報に従い、その管理下のタスクを順に起動する。
起動されたタスクは、タスク自体のイニシャライズを行
ない(ST11)、これを終わるとタスクWAITのシ
ステムコールを発行し、ウエイト状態になる(ST1
2)。この時のタスクに関するレジスタ情報等はリアル
タイムOS20,21によってスタックにセーブされ
る。ウエイトしたタスクは、その後に、他のタスクから
のメールが対応EXG領域にリンクされ、あるいは他の
イベントが発生した時にウエイト状態から復帰し、リア
ルタイムOS20または21によって起動された時に、
そのEXG領域にリンクされたメールの情報に応じたタ
スク本来の処理を実行し(ST13)、処理を完了する
と再びタスクWAITのシステムコールを発行しウエイ
ト状態となる。また、処理(ST13)において、他タ
スクへ渡したい情報が必要が生じた時は、未使用のメー
ル領域にメールを作成し、メールSENDのシステムコ
ールを発行し、このシステムコールのパラメータにより
同メール領域のポインタと転送先タスクを指定する。こ
の時、タスク側の動作は、メールの転送先が同一プロセ
ッサ上のタスクであっても他プロセッサ上のタスクであ
っても同一であり、転送先タスクが動作するプロセッサ
を意識しない。
【0027】リアルタイムOS20,21は、その管理
下の自タスクからメールSENDのシステムコールが発
行された場合、図11の概略フローチャートに示す処理
を行なう。まず、パラメータで指定された転送先タスク
に関しX領域を参照し、転送先タスクが自タスクである
か他のプロセッサ上の他タスクであるか判別する(ST
21)。指定された転送タスクに対応するX領域の内容
が、EXG領域とそのポインタを示している場合は、転
送タスクが自タスクであると判断し、そのポインタで指
し示されたEXG領域に、メールをリンクし、この時、
転送先タスクのTD領域のタスク状態32がウエイト状
態であれば、これをレディ状態に書き換え(ST2
2)、リアルタイムOS20,21はシステムコールの
処理から復帰する。
【0028】転送先タスクに対応するX領域の内容がL
EXG領域とそのポインタを示している場合、リアルタ
イムOS20,21は転送先タスクを他タスクであると
判断する。そして、そのLEXG領域にメールをリンク
し(これは自タスク間メール交換と自タスクと他タスク
との間のメール交換の管理を共通にするためである)、
次に転送先タスクの指定情報とメールの情報(メール交
換情報72とパラメータ74)をデュアルポートメモリ
6へ転送する(ST23)。この後、リアルタイムOS
20,21は復帰する。
【0029】デュアルポートメモリ6は、プロセッサ1
(または2)からメール情報を転送された場合、プロセ
ッサ2(または1)に対する割り込みを発生する。この
ような割り込みに対するリアルタイムOS20,21の
動作を次に説明する。
【0030】図12は、リアルタイムOS20,21の
割り込み処理の概略フローチャートである。割り込みが
発生した場合、まずデュアルポートメモリ6からの割り
込みであるか判定する(ST31)。デュアルポートメ
モリ6からの割り込み以外の内部割り込みの場合は、そ
れに対応した割り込み処理を行ない(ST32)、復帰
する。デュアルポートメモリ6からの割り込みの場合、
デュアルポートメモリ6から情報を読み込み、転送先タ
スクの指定情報によってX領域を参照し、転送先タスク
のEXG領域を選び(ST33)、次にデュアルポート
メモリ6より読み込んだメール情報を未使用のメール領
域(LMAIL領域)に書き込みメールを作成し、これ
を転送先タスクのEXG領域にリンクし、この時、転送
先タスクがウエイト状態であればレディ状態に変更し
(ST34)、復帰する。
【0031】
【発明の効果】以上の説明から明かなように、本発明
は、単一プロセッサシステムの場合と同様に、タスク側
でタスクが動作するプロセッサを意識する必要がないの
で、タスクの設計が簡単になる、既存の単一プロセッサ
システム上のタスクをそのまま、もしくは殆ど変更せず
に用いることができるため、単一プロセッサシステムか
らマルチプロセッサシステムへの拡張が極めて容易にな
る、割り込み機能を持つデュアルポートメモリを利用し
てプロセッサ間通信を行なうため、異プロセッサのタス
ク間で高速のメール交換が可能となるとともに、プロセ
ッサ間通信のためのハードウエア及びソフトウエアの複
雑化を避けられる等、比較的小規模なマルチプロセッサ
を実現する上で多くの効果を有するものである。
【図面の簡単な説明】
【図1】本発明の一実施例によるマルチプロセッサシス
テムのハードウエア構成図
【図2】実施例システムのソフトウエア構成図
【図3】タスク及びメールの管理構造の説明図
【図4】TD領域の構造図
【図5】EXG領域の構造図
【図6】MAIL領域の構造図
【図7】LEXG領域の構造図
【図8】LMAIL領域の構造図
【図9】リアルタイムOSのタスク起動に関する動作の
概略フローチャート
【図10】タスクの動作の概略フローチャート
【図11】メイルSENDのシステムコールの処理の概
略フローチャート
【図12】リアルタイムOSの割り込み処理の概略フロ
ーチャート
【符号の説明】
1,2 プロセッサ 3,4 マイクロプロセッサユニット 4 プロセッサ内メモリ 6 デュアルポートメモリ 20,21 リアルタイムOS 22,23 タスク

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサのそれぞれが、その上で
    動作するタスクと、タスクの管理及びタスク間同期用メ
    ールの管理のためのリアルタイムOSとを有し、各プロ
    セッサ間に相互通信のためのデュアルポートメモリを有
    し、各リアルタイムOSは、タスクが動作するプロセッ
    サを判別するための情報と、自プロセッサ上のタスクか
    らメール転送を要求された場合に、前記情報を参照する
    ことによって転送先タスクが動作するプロセッサを判別
    し、転送先タスクが他プロセッサ上のタスクであるとき
    は、この他プロセッサとの間のデュアルポートメモリへ
    メール情報を転送する手段とを有し、各デュアルポート
    メモリはメール情報を転送された時に転送先タスクが動
    作するプロセッサに対し割り込みを発生する機能を有
    し、また各リアルタイムOSは、自プロセッサに対する
    割り込みがデュアルポートメモリで発生した時に、この
    デュアルポートメモリよりメール情報を取り込み、これ
    を自プロセッサ上の転送先タスクへ渡す手段を有するこ
    とを特徴とするマルチプロセッサシステム。
JP23602391A 1991-09-17 1991-09-17 マルチプロセツサシステム Pending JPH0573508A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23602391A JPH0573508A (ja) 1991-09-17 1991-09-17 マルチプロセツサシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23602391A JPH0573508A (ja) 1991-09-17 1991-09-17 マルチプロセツサシステム

Publications (1)

Publication Number Publication Date
JPH0573508A true JPH0573508A (ja) 1993-03-26

Family

ID=16994622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23602391A Pending JPH0573508A (ja) 1991-09-17 1991-09-17 マルチプロセツサシステム

Country Status (1)

Country Link
JP (1) JPH0573508A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339356A (ja) * 1995-06-13 1996-12-24 Nec Corp マルチcpuシステム
KR100949168B1 (ko) * 2001-11-20 2010-03-23 가부시끼가이샤 히다치 세이사꾸쇼 제어기

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339356A (ja) * 1995-06-13 1996-12-24 Nec Corp マルチcpuシステム
KR100949168B1 (ko) * 2001-11-20 2010-03-23 가부시끼가이샤 히다치 세이사꾸쇼 제어기

Similar Documents

Publication Publication Date Title
US6938253B2 (en) Multiprocessor communication system and method
US5261109A (en) Distributed arbitration method and apparatus for a computer bus using arbitration groups
US5282272A (en) Interrupt distribution scheme for a computer bus
US4951193A (en) Parallel computer with distributed shared memories and distributed task activating circuits
US4229790A (en) Concurrent task and instruction processor and method
CA1287924C (en) Bus interface circuit for digital data processor
US10671426B2 (en) Data processing
US5271020A (en) Bus stretching protocol for handling invalid data
US5029073A (en) Method for fast establishing a co-processor to memory linkage by main processor
US10565135B2 (en) Information processing device, information processing method, main processor core, program, information processing method, and sub processor core
JPS63310051A (ja) プログラム入出力命令を含む入出力プロセスの実行方法および装置
JP5131269B2 (ja) マルチプロセッシングシステム
JPH0573508A (ja) マルチプロセツサシステム
US6708259B1 (en) Programmable wake up of memory transfer controllers in a memory transfer engine
JP3375649B2 (ja) 並列計算機
JP3299115B2 (ja) 二重化システム
JP3349547B2 (ja) スケジューリングシステム
JPH05128078A (ja) 並列処理装置
JPS63310060A (ja) マルチプロセツサシステム
JP2013125305A (ja) マルチプロセッサ装置
JP3052460B2 (ja) 協調処理型情報処理装置
JPH10198644A (ja) 同期制御方法およびマルチプロセッサシステム
JPH1185673A (ja) 共有バスの制御方法とその装置
JPH09218859A (ja) マルチプロセッサ制御システム
JPH0522939B2 (ja)