JPH09305549A - マルチcpuシステムのデータ処理方法 - Google Patents

マルチcpuシステムのデータ処理方法

Info

Publication number
JPH09305549A
JPH09305549A JP12567296A JP12567296A JPH09305549A JP H09305549 A JPH09305549 A JP H09305549A JP 12567296 A JP12567296 A JP 12567296A JP 12567296 A JP12567296 A JP 12567296A JP H09305549 A JPH09305549 A JP H09305549A
Authority
JP
Japan
Prior art keywords
data
cpu
sub
transfer
memory
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.)
Withdrawn
Application number
JP12567296A
Other languages
English (en)
Inventor
Daiki Sawada
大樹 沢田
Takayasu Tomioka
威泰 富岡
Tomonori Nara
智紀 奈良
Hidetoshi Sato
秀俊 佐藤
Yozo Igi
洋三 井木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP12567296A priority Critical patent/JPH09305549A/ja
Publication of JPH09305549A publication Critical patent/JPH09305549A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 転送元サブCPUからのデータを、メインC
PUにて加工し、その加工データを転送先サブCPUに
転送するようにしたマルチCPUシステムであって、そ
のデータ処理を簡単に高速化することを目的とする。 【解決手段】 i)メインCPU−C内のメモリを、転
送元サブCPU−Aに専有される第1メモリエリアMA
1と転送先サブCPU−Bに専有される第2メモリエリ
アMA2とに分け、ii)サブCPU−Aは、メモリエリ
アMA1に、DMA転送によりデータを送り込み、 ii
i)メインCPU−Cは、メモリエリアMA1に送り込
まれたデータに加工を施したデータをメモリエリアMA
2に格納し、iv)サブCPU−Bは、前記の加工と重複
しながら、その加工データをメモリエリアMA2より、
DMA転送により取り込むようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマルチCPUシステ
ムのデータ処理方法、特に、メインCPUと、システム
バスを介して該メインCPUと連携する複数のサブCP
UとからなるマルチCPUシステムであって、かつ、2
つのサブCPU間でのデータ転送はメインCPUによる
データの加工を経て行われるようなマルチCPUシステ
ムにおけるデータ処理方法に関する。
【0002】
【従来の技術】図23の(A)は本発明の前提となるシ
ステム構成、(B)は(A)における従来のデータ処理
方法を表す図である。まず本図の(A)において、CP
U−Cは上述したメインCPU、CPU−AおよびCP
U−Bはシステムバスを介して該メインCPU(CPU
−C)と連携する2つのサブCPU(CPU−A,CP
U−B)であり、本図の例ではサブCPU(CPU−
A)がデータの転送元となり、メインCPU(CPU−
C)で中継して転送先となるサブCPU(CPU−B)
に中継後のデータを転送する。
【0003】次に本図の(B)を参照すると、まず転送
元のサブCPU−Aが、その転送対象(上述のデータや
情報:以下、データとも称す)をメインCPU−Cに送
信する。メインCPU−Cは送信されたその転送対象を
受信すると、これに所定の加工を施す(データ加工)。
そして加工後の転送対象を、転送先のサブCPU−Bに
送信する。
【0004】サブCPU−Bは、送信された加工後の転
送対象を受信して、一回のデータ処理を終了する。上述
したようなデータ処理を行うマルチCPUシステムは種
々あるが一例としては電子交換機システムが挙げられ、
ここに、サブCPU−Aは、ワークステーションにつな
がるイーサーコントローラ、サブCPU−Bはディスク
(DK)につながるディスクコントローラであり、メイ
ンCPU−Cは、これらサブCPU−AおよびサブCP
U−Bの他に電子交換用ネットワークを制御するための
呼処理CPU等を全体的に管理する。
【0005】上記のように、サブCPU−AからサブC
PU−Bへ、メインCPU−Cを介さずに、直接データ
転送ができない主たる理由は、当該マルチCPUシステ
ム内に何らかの障害が発生した場合、各CPUが勝手に
障害復旧の動作を起こすと、事態の収拾がつかなくな
り、システムダウンに至ってしまうからである。このた
めにメインCPU−Cに最高の優先度を与えることとす
る。
【0006】
【発明が解決しようとする課題】上述した電子交換機シ
ステムを例にとると、近年益々トラヒック量が増大して
おり、当該マルチCPUシステムの高速化が強く要請さ
れている。この高速化の手法として従来より種々の提案
があるが、下記のような問題〜も有している。
【0007】 サブCPU−AとメインCPU−C、
メインCPU−CとサブCPU−Bの間に共有メモリを
実装して高速化を図るという手法があるが、その共有メ
モリの導入により、システムのハードコストが高くな
る。 メインCPU−CはサブCPU−Aからの転送対象
を受信してからデータ加工を行い、さらにサブCPU−
Bへ送信を開始するので、システム全体としてデータ処
理時間が長くなる。
【0008】 メインCPU−Cを中心にしたソフト
的なマルチタスク環境において送信/受信を並列に行う
ことは一見高速化につながるが、1つのCPUを時分割
で使用するため、結局、全体としてみると処理時間は短
縮されない。 分散されたCPU構成のマルチCPUシステムにお
いて、本格的なマルチプロセッサ処理によって高速化を
図ろうとするとハード的にもソフト的にも複雑になる。
【0009】 複数の転送元サブCPUと転送先サブ
CPUがメインCPUに接続された場合、メインCPU
の負荷が重くなり、一層高速化を困難にしてしまう。し
たがって本発明は上記問題点に鑑み、ハードウェアおよ
びソフトウェアに大幅な変更を加えることなしに安価に
処理時間の高速化が図れる、マルチCPUシステムのデ
ータ処理方法を提供することを目的とするものである。
【0010】
【課題を解決するための手段】図1は本発明に係る方法
の基本ステップを図解的に表す図である。本発明は次の
ようなデータ処理方法を前提とする。すなわち、メイン
CPU(CPU−C)と、メインCPU(CPU−C)
とシステムバスを介して連携するデータの転送元サブC
PU(CPU−A)およびデータの転送先サブCPU
(CPU−B)とを有してなり、そのメインCPUが上
記の転送元サブCPUからのデータに加工を施して上記
の転送先サブCPUに加工後のデータを転送するように
構成されたマルチCPUシステムにおけるデータ処理方
法であり、ここにおいて次のi)〜iv)を特徴とする。
【0011】i)メインCPU(CPU−C)内のメモ
リを、転送元サブCPU(CPU−A)に専有される第
1メモリエリア(MA1)と転送先サブCPU(CPU
−B)に専有される第2メモリエリア(MA2)とに分
けてこれらサブCPUに開放する。 ii)転送元サブCPU(CPU−A)は、開放された第
1メモリエリア(MA1)に、DMA転送によりデータ
を送り込む。
【0012】iii)メインCPU(CPU−C)は、第
1メモリエリア(MA1)に送り込まれたデータに加工
を施してからその加工データを第2メモリエリア(MA
2)に格納する。 iv)転送先サブCPU(CPU−B)は、メインCPU
(CPU−C)による上記の加工と重複しながら、上記
の加工データを第2メモリエリア(MA2)より、DM
A転送により取り込む。
【0013】図1を参照すると、上記のステップi,i
i,iii およびivに特に関連する部分について同様の記
号を付して示す。なお、MA1およびMA2は上述した
第1および第2メモリエリアである。また図1の下側に
は、CPUの処理量を、プロセス単位(1処理単位)で
表す。全体としては2プロセスであり、中央部分の、デ
ータの加工と転送の重複を考慮すると、1.5T(時
間)になる。このことは、従来の手法で3プロセス(=
3T)になることを考慮すると、大幅な高速化が図れた
ことを意味する。また、この場合、マルチCPUシステ
ムに対し、ハードウェア上もソフトウェア上も従来の手
法に対しほとんど変更を加えていないことにも注目すべ
きである。上記の3プロセス(=3T)については図2
に明らかにする。なお、Tは1処理単位を実行するのに
要する時間を表し、通常はどのプロセスもほとんど同じ
時間である。
【0014】図2は図1と対比させた従来の基本ステッ
プを示す図である。図23に、プロセス配分を書き加え
たものに相当する。上述した3プロセスの内訳が明らか
にされている。図1と比べると、2つの送信工程と、2
つの受信工程が介在しており、また、データ加工(図中
の“加工”)は、それ単独で1プロセスを必要としてい
る。
【0015】次に図1に示すデータ処理の流れをシーケ
ンス図を用いて表す。図3は本発明に基づくデータ処理
の流れを表すシーケンス図である。本図の左上から矢印
の流れに沿って説明する。 <1>転送元サブCPU−AよりメインCPU−C(M
A1)に対し、DMA転送によるデータの送り込みを
開始する(図中の“CPU−Aによる挿入”)。
【0016】<2>メインCPU−Cにより、そのデー
タの加工を開始する(“CPU−Cによる加
工”)。加工後データはメモリエリアMA2に書き込
む。 <3>CPU−Aより、引き続く残りのデータ(A)の
DMA転送がメインCPU−C(MA1)に対し行われ
る(“CPU−Aによる(A)挿入”)。 <4>メインCPU−Cにより、そのデータ(A)の加
工を開始する(“CPU−Cによる(A)加工”)。
【0017】<5>上記のCPU−Cによる加工と重複
しつつ、サブCPU−Bは加工後のデータを取り込む
(“CPU−Bによる取り込み”)。 <6>上記<5>でのデータの取り込み完了通知をメ
インCPU−C経由でサブCPU−Aに返す(“の完
了”)。 <7>サブCPU−Aは、その“の完了”を契機に、
次のブロック単位のデータを、DMA転送により、メ
インCPU−Cに送り込む(“CPU−Aによる挿
入”)。
【0018】<8>メインCPU−Cは、データの加
工を開始する(“CPU−Cによる加工”)。 <9>サブCPU−Bによるデータ(A)の取り込み
(“CPU−Bによる(A)取り込み”)が完了する
と、上記<6>と同様、その取り込み完了通知を、メイ
ンCPU−Cを経由して、サブCPU−Aに返す
(“(A)の完了”)。
【0019】<10>サブCPU−Aは、その“(A)
の完了”を契機に、データについての残りのデータ
(B)をメインCPU−Cに送り込む(“(B)挿
入”)。以下同様の繰り返しである。図4は図3と対比
させた従来の手法によるシーケンス図である。処理の流
れは一見シンプルではあるが、処理時間は既述のとおり
本発明に比べ長くなる。
【0020】なお、図3の例では1ブロックデータ(
や)を、それぞれ2つに分割(前半と後半)して転送
しているが、これはメインCPU−Cによるデータ加工
時間に見合うデータ量に分割してデータの送り込みを行
ったからであり、ときには、3分割することもあり得
る。上述の説明は2つのサブCPU(CPU−AとCP
U−B)がメインCPU(CPU−C)に連携する例を
もとに行ったが、その後サブCPUが増設されたとして
も(例えばディスクの追加)、本発明はその増設に容易
に対応できる。これはメインCPUが本来のデータ加工
を行う以外には、各サブCPUの監視(後述)という簡
単な作業を行うに過ぎないからである。
【0021】図5はサブCPUが増設された様子を示す
図である。本図において、既述の説明は水平一列のサブ
CPU−A、メインCPU−CおよびサブCPU−Bに
関して行われたが、仮に、サブCPUがCPU−D〜I
のごとく増設されても、ハードウェア上もソフトウェア
上も大きな変更を要しない。すなわち、単に、メインC
PU−C内のメモリに割り当てられた各メモリエリア
(MA1,MA2)を能率良く共有するための管理(使
い廻し)をするだけで良い。
【0022】かくの如くメインCPU−Cが自分のメモ
リを開放することおよびサブCPU−AおよびBの制御
プロセスをメインCPU−Cが監視することで、データ
処理対象の転送プロセスにメインCPU−Cが関与する
ことなくデータ処理の高速化を図ることができる。そし
て3つのCPU−A,CおよびBの役割を明確にするこ
とにより、中継するメインCPUでは比較的容易なロジ
ックで高速の並列処理が実現できる。
【0023】またDMAの利用でハードの使用比率を高
めソフトウェアの関与を少なくしているので、比較的簡
単な並列処理を実現することができる。
【0024】
【発明の実施の形態】図6は本発明を適用したマルチC
PUシステムの構成例を示す図である。本図において、
11はサブプロセッサAであり、前述したサブCPU−
Aの中核をなすチップである。同様に12は前述したサ
ブCPU−B内のサブプロセッサ、13は前述したメイ
ンCPU−C内のメインプロセッサである。このメイン
CPU−C内にはメインプロセッサ13に協働する主メ
モリ(メインメモリ)14がある。この主メモリ14内
に既述の第1メモリエリア(MA1)と第2メモリエリ
ア(MA2)を形成することができる。
【0025】上記の構成要素11,12,13および1
4の間の連携をとるのがシステムバス15およびメイン
CPU−C内に設けられる拡張チップバス16である。
すなわちサブプロセッサ(A)11はシステムバス15
に接続される。システムバス15はメインプロセッサ1
3の拡張チップバス16に接続され、拡張チップバス1
6には、メインプロセッサ13と主メモリ14が接続さ
れる。
【0026】システムバス15にサブプロセッサ(B)
12が接続される。なお、システムバス15には、他の
サブプロセッサ(X)の増設が可能である。サブプロセ
ッサ(A)11とサブプロセッサ(B)12は、システ
ムバス15に接続され、主メモリ14にDMA(ダイナ
ミックメモリアクセス)転送が可能である。またデータ
のやりとりは双方向(サブプロセッサA←→サブプロセ
ッサB)ともに可能である。
【0027】図7は図6の構成を図1のパターンに合わ
せて描き直した図である。ただし、サブプロセッサBを
2つ備えている例を示す。図8は図6の構成のより一層
具体的な例を示す図である。前記CPU−Cをなすメイ
ンプロセッサ13はSPARC−CPU131で構成さ
れ、前記CPU−Aをなすサブプロセッサ(A)11は
ワークステーション(WS)111であり、イーサーコ
ントローラ(ETC)112を具備する。前記CPU−
Bをなすサブプロセッサ(B)12はディスク(DK)
121であり、ディスクコントローラ(DKC)122
を具備する。
【0028】オペレーション操作卓をなすワークステー
ション(WS)111を、イーサーネットでイーサーコ
ントローラ(ETC)112に接続し、イーサーコント
ローラ112はシステムバス15に接続される。システ
ムバス15はメインプロセッサ(SPARC−CPU)
131の拡張チップバス16に接続され、拡張チップバ
ス16には、該メインプロセッサ131と主メモリ14
が接続される。
【0029】システムバス15上にはディスクコントロ
ーラ(DKC)122が接続され、その先にディスク
(DISK)121が接続される。このディスクコント
ローラ122とイーサーコントローラ112はシステム
バス15に接続され、DMA(ダイナミックメモリアク
セス)転送が可能である。なお、データのやりとりは双
方向(イーサーコントローラ←→ディスクコントロー
ラ)ともに可能である。
【0030】図9は図8の構成を図1のパターンに合わ
せて描き直した図である。ただし、ディスクは2つの例
で示す。図10は本発明の第1の実施態様を表すシーケ
ンス図(その1)であり、図11は本発明の第1の実施
態様を表すシーケンス図(その2)である。ここで表す
シーケンス(図10および図11)は、既述した本発明
の特徴的ステップ(i〜iv)を具体的に表したものであ
る。これらの図の左端に示す数字(1,2,3…)は処
理の実行順序を表す。また、これらの図を縦方向に3分
割する点線XおよびYは、CPU−A,CPU−Cおよ
びCPU−Bがそれぞれ担うべき仕事の分担領域の境界
を表す。
【0031】1.サブプロセッサA(CPU−A)から
DMA転送により、メインプロセッサ(CPU−C)の
メモリ(14)にデータを送り込む。 2.データ転送終了後、割り込みにより“転送終了通
知”を上げる。このとき、サブプロセッサAから送り込
んだデータのメインプロセッサ内のメモリアドレス(主
メモリ内の前記第1メモリエリア(MA1)のアドレス
(バッファAのアドレスと称す))も付加する。
【0032】3.メインプロセッサでは、受信した上記
の“転送終了通知”を契機に、バッファA内のデータの
加工を開始する。このデータ加工後には、第2メモリエ
リア(MA2)に格納エリア(バッファA′と称す)を
変える。 4.データ加工の終了後、メインプロセッサは割り込み
によりサブプロセッサBに対し“転送開始要求”を上げ
る。このときデータ加工後のデータを格納するバッファ
A′のメモリアドレスも付加する。
【0033】5.サブプロセッサBでは上記の“転送開
始要求”の受信を契機に、DMA転送によりメインプロ
セッサ内のバッファA′から、加工後のデータを取り込
む。 6.その後メインプロセッサは、サブプロセッサBのデ
ータ取り込みが完了したかを監視し続ける。 7.このとき(2〜6)、サブプロセッサAからDMA
転送により、メインプロセッサ内のバッファメモリ(M
A1)に、次のデータを送り込んでいる。
【0034】8.メインプロセッサは、サブプロセッサ
Bによるデータの取り込み完了通知(“完了”)を受け
取ると、さらにサブプロセッサAに対し、割り込みとし
てその完了通知を行う。 9(図11).その完了通知を受けてサブプロセッサA
は、割り込みにより“転送終了通知”をメインプロセッ
サに対して上げる。このとき、サブプロセッサAは、送
り込んだデータのメインプロセッサ内におけるメモリ
(MA1の残りのエリア:バッファBと称す)のアドレ
スも付加する。
【0035】10.このあと、3〜9を繰り返す。次に
本発明の第2の実施態様について説明する。図12は本
発明の第2の実施態様を表すシーケンス図(その1)で
あり、図13は本発明の第2の実施態様を表すシーケン
ス図(その2)である。これらの図の見方は、上述した
図10および図11の場合と全く同じである。
【0036】この第2の実施態様は、上記第1の実施態
様において、エラーが発生した場合の措置を施すもので
ある。図12はそのエラーがサブプロセッサB(CPU
−B)で検出された場合の措置に関し、また、図13
は、同様のエラーがメインプロセッサ(CPU−C)で
検出された場合か、あるいは、同様のエラーをメインプ
ロセッサ(CPU−C)で検出したもののこのメインプ
ロセッサでそのエラーの復旧に失敗した場合の措置に関
するものである。
【0037】上記のようにエラー対策が求められるの
は、本発明では複数CPU間で並列処理(図10の左端
に5,6および7と付した部分に対応する並列処理参
照)が行われるからである。通常このような並列処理下
において、エラーの原因を追求することは容易なことで
はない。そこで本発明の第2の実施形態においては、エ
ラーが発生したときはリトライを実行する(エラーリト
ライ)。このリトライはエラーを検出したCPUと、そ
の上流側CPUとの間で行う。
【0038】図12を参照すると、転送先サブCPU
(サブプロセッサB)においてエラーの発生を検出した
ときは、当該エラーの発生を前記メインCPUに通知す
る(エラー)。メインCPU(CPU−C)は、当該
エラーを生じさせた加工データをもってリトライを実行
する(図中のエラーリトライ)ステップを含んでい
る。
【0039】図13を参照すると、メインCPU(CP
U−C)においてエラーの発生を検出したときあるい
はこのメインCPUにおいてエラーの復旧処理を実行
したにもかかわらずその復旧に失敗したときは、当該エ
ラーの発生を転送元サブCPU(CPU−A)に通知
し、該転送元サブCPUは当該エラーを生じさせたとき
に、該メインCPUに転送中または転送済みのデータよ
り先行するデータをもってリトライを実行する(図中の
エラーリトライ)ステップを含んでいる。
【0040】次に本発明の第3の実施態様について説明
する。これまでの説明はサブCPUが2つの例をもとに
して行ったが、サブCPUは増設等によってその台数が
増える。この様子は前述した図9に表されている。図9
によれば、サブCPUであるディスク(DK)が2つに
なっている。以下、図9を参照しつつ説明する。
【0041】図9によればワークステーション(WS)
111上で動作しているWSプログラム(以下、WS
P)および、SPARC−CPUボード131内にて動
作している、モニタプログラム(以下、SMP)ならび
に、ディスク(DK1,DK2)がある。ここにWSP
がSMPへデータを送信し、SMPがそのデータを受信
して加工し、さらにその加工データをDK1およびDK
2に送信する。
【0042】図14は本発明の第3の実施態様を表すメ
モリ割当て図である。SMP(メインCPU)において
管理しているメモリ(既述した、主メモリ14内の第1
および第2メモリエリアMA1,MA2に相当)は、第
3の実施態様のもとで図14のように割り振られる。本
図中の上側に示す番号(1,2,3,4…7)は複数の
メモリエリア(MA1,MA2,…MA7)を示す。な
お、本図と引き続く図15および図16に表される“受
信”および“送信”なる語の主体はSMPすなわちメイ
ンCPU(CPU−C)である。したがって例えば“W
SP受信”とは、SMPがWSPよりデータを受信する
ことを意味し、“DK1の送信データA”とは、SMP
がDK1に送信したデータAということを意味する。
【0043】図14のメモリエリア1は、SMPがWS
Pより受信するデータAを格納するバッファである。メ
モリエリア2は、SMPがWSPより受信するデータB
を格納するバッファである。メモリエリア3は、SMP
のワークエリアであり、データ加工中に適宜使用する。
【0044】メモリエリア4は、SMPがディスクDK
1に送信するデータAを格納するバッファ、メモリエリ
ア7はSMPがディスクDK2に送信するデータBを格
納するバッファである。なお、メモリエリア5および6
も同様に説明される。図15は図14の各メモリエリア
を使い廻して行われる処理の手順および各手順でのCP
Uの状態を示す図である。また図16は図15の処理手
順の一部を図解的に表す図であり、図15の処理手順は
図16を参照すると一層分かり易い。
【0045】手順1:WSPがメモリ1へデータ1を送
信する(受信データ1)。なお、メモリ1とは、図14
におけるメモリエリアNo. 1のことである。メモリ2と
は、図14におけるメモリエリアNo. 2のことである
(以下、同様)。この場合、図16に示す上向きの各矢
印は、メインCPUにデータが入って行くことを表し、
下向きの各矢印は、メインCPUからデータが出て行く
ことを表す。
【0046】この手順1では、サブCPU(CPU−
A)は動作中であるが、他のCPU(CPU−C,CP
U−B)は待ちの状態である。 手順2:WSPがメモリ2へデータ2を送信し(受信デ
ータ2)、これと同時にSMPはメモリ2内のデータ1
を加工して、加工データ1をメモリ4とメモリ6に掃き
出す。
【0047】この手順2では、サブCPU−Aとメイン
CPU−Cが動作中であるが、サブCPU−Bは待ちの
状態である。 手順3:WSPがメモリ1へデータ3を送信すると(受
信データ3)、SMPはこれにデータ加工を施し、メモ
リ5およびメモリ7へ、加工データ2として掃き出す。
【0048】またこのとき、DK1とDK2は、先の加
工データ1を、メモリ4およびメモリ6から受信する。
この手順3では、WSPとSMPとDKは全て動作中で
ある。 手順4:WSPがメモリ2へデータ4を送信する(受信
データ4)。このときSMPは上記のデータ3を加工し
て加工データ3となし、これをメモリ4と6に掃き出
す。
【0049】またこのときDK1とDK3は、先の加工
データ2をメモリ5とメモリ7から受信する。この手順
4でも、WSPとSMPとDKは動作中である。 手順5:上記手順3および4を、繰り返し、先の加工デ
ータ3をメモリ4とメモリ6から得る。
【0050】手順6:WSPがデータの送信を終了す
る。SMPは残りのデータを加工して、メモリ4および
メモリ6またはメモリ5およびメモリ7へ掃き出す。D
K1とDK2は、メモリ5およびメモリ7からまたはメ
モリ4およびメモリ6からの加工データを受信する。こ
の手順6では、WSPは次のデータの送信待ち状態とな
る。
【0051】手順7:DK1とDK2が残る加工データ
を受信する。 この手順7では、さらにSMPも待ち状態となる。図1
7は図16の変形例を示す図であり、各DKに異なる加
工データを送信する場合を表す。例えばDK1に加工デ
ータ1を送り、DK2に、その加工データ1にさらに加
工を加えた加工データ1′(′を付して表す、以下同
じ)を送るという場合である。
【0052】この場合、加工データ1から加工データ
1′(加工データ2から加工データ2′にするときも同
じ)に加工するときは、SMPにとって中間加工が必要
となり、このときメモリ2のワークエリアが積極的に利
用される。結局、転送先サブCPUが複数存在する場合
(例えばDK1,DK2)、メインCPU(SMP)内
のメモリ14を、第1メモリエリアと、複数の第2メモ
リエリアとに区分し、これらのメモリエリア(No. 1,
2,3…7)を転送元サブCPU(WSP)および複数
の転送先サブCPUにそれぞれ割り振ってサイクリック
にデータの送り込み、加工データの格納および加工デー
タの取り込みを行うようにしたものである。
【0053】次に本発明の第4の実施態様について説明
する。この第4の実施態様は、転送先サブCPU(CP
U−B)への加工データの取り込みが完了しても依然転
送元サブCPU(CPU−A)から第1メモリエリア
(MA1)へのデータの送り込みが完了していないと
き、例えば、データ転送量が大であるときに、メインC
PU(CPU−C)は、転送元サブCPU(CPU−
A)から第1メモリエリア(MA1)へのデータの送り
込みが完了するのを待つ待ち合わせ期間を設け、メイン
CPUはこの待ち合わせ期間の後にデータの加工を開始
するようにするものである。
【0054】図18は本発明の第4の実施態様を表すシ
ーケンス図である。本図は、既述した図10および図1
1のシーケンス図における実行順序2〜9に相当する部
分を取り出したものであるが、そのうちの5,6および
7に対応する部分において、バッファBへのデータの転
送量が過大であり、サブプロセッサBからの完了通知を
受け取っているにもかかわらず、バッファBについて転
送終了通知の送出に遅れを生じ、待ち合わせ期間(図1
8の左下)をとって、メインプロセッサでのデータ加工
を開始させるよう、データ輻輳時の調整を図ったもので
ある。
【0055】次に本発明の第5の実施態様を説明する。
図19は本発明の第5の実施態様のもとでの各転送元サ
ブCPUの動作を表す図であり、図20は本発明の第5
の実施態様のもとでの周期のずらし方の第1例を示す図
(その1)、図21は本発明の第5の実施態様のもとで
の周期のずらし方の第1例を示す図(その2)である。
また図22は本発明の第5の実施態様のもとでの周期の
ずらし方の第2例を示す図である。
【0056】既に述べた図14〜図16の説明では(第
3の実施態様)、1つの転送元サブCPU(例えばW
S)のもとで転送先サブCPU(例えばディスクDK)
が2つに増設された場合について述べたが、この第5の
実施態様では、増設された2以上の転送元サブCPU
(CPU−A)と増設された2以上の転送先サブCPU
(CPU−B)からなる拡大マルチCPUシステムのも
とでも本発明を容易に適用できる手法について述べる。
【0057】この第5の実施態様は上記の手法の実現の
ために、メインCPU−C(メインプロセッサ)内の主
メモリに形成された所定数のメモリエリア(バッファ)
を周期をずらしながらサイクリックに使用するようにす
る。このときその周期のずらしは、サブプロセッサの台
数に応じて定める。そして、その周期は、サブプロセッ
サB(転送先サブCPU−B)によるデータの取り込み
が完了したのを契機にサブプロセッサA(転送元サブC
PU−A)によるデータの送り込みを行うという動作と
同期してずらされる。
【0058】かくして、サブプロセッサAは、サブプロ
セッサBがデータの取り込みを完了した旨の通知をメイ
ンプロセッサを介して受け取ることを確認するだけで、
次のデータ転送(データの送り込み)動作に入ることが
できる。この結果、サブプロセッサAが、この第5の実
施態様のもとで2以上に増設されたとしても、各サブプ
ロセッサAは第1および第2の実施態様(単一のサブプ
ロセッサA)の場合と全く同様の処理を実行すればよ
い。図19はこの処理の動作を図解的に表したものであ
り、“待ち”(図15の“待ち”と同じ)→“完了受
信”(加工データの取り込みがサブプロセッサBで完了
した旨をメインプロセッサからの通知として受信)→
“データ挿入”(データの送り込み)→“データ挿入完
了”→“待ち”…というシーケンスである。
【0059】第5の実施態様のポイントである、複数の
メモリエリア(バッファ)を、複数のサブプロセッサA
およびBにより、周期をずらして使用することを図解的
に表したのが図20および図21と図22である。ここ
に図20および図21は、サブプロセッサが2ペアの場
合における周期をずらす説明図であり、図22はサブプ
ロセッサが3ペアの場合における周期をずらす説明図で
ある。上記の2ペアとは、サブプロセッサAがサブプロ
セッサA1およびA2であり、かつ、これらとそれぞれ
対をなしてサブプロセッサBがサブプロセッサB1およ
びB2のように存在することを意味する。同様に、上記
の3ペアとは、サブプロセッサAがサブプロセッサA
1,A2およびA3であり、かつ、これらとそれぞれ対
をなしてサブプロセッサBがサブプロセッサB1,B2
およびB3のように存在することを意味する。
【0060】図20および21を参照すると、これらの
図において、“データ挿入”はサブプロセッサ(A)に
よる既述したデータの送り込みのことであり、“加工”
は既述したメインプロセッサによるデータの加工のこと
であり、“バッファ1,2,3…”は、メインプロセッ
サ内の主メモリ(14)に形成された既述のメモリエリ
ア(MA1,MA2…)のことであり、“データ取り込
み”は加工後のデータのサブプロセッサ(B)への取り
込みのことである。図20の状態1のもとで、サブプロ
セッサA1は図示の周期でデータ挿入を行うと、状態2
では図中の右にシフトした周期で同様のデータ挿入を行
う。このときまた、図中の左側に示す周期でサブプロセ
ッサA2がデータ挿入を行うと、状態3では、右にシフ
トした周期でデータ挿入を行う。以下、同様な動作のサ
イクリックな繰り返しとなる。
【0061】なお、例えば状態1でバッファ4に挿入さ
れたデータは、状態2でメインプロセッサによってデー
タ加工が施され、かつ、バッファ5に書き込まれ、状態
3で取り込まれるが、このことは既に述べたとおりであ
る。次に3ペアの場合について示す図22を参照する。
3ペアになると、図20および図21のように単純に表
すことは難しく、円状に表すようにした。図21の大枠
はメインプロセッサの領域であり、その中央部に転送元
のサブプロセッサA1,A2およびA3を配置し、その
周囲の外側にサブプロセッサB1,B2およびB3を配
置する。一連のデータの送り込み(“データ1転送
中”、“データ2転送中”…等)と、データ加工(“加
工”)と、加工データのサブプロセッサ(B)への取り
込み(“排出”)と、その間におけるメインプロセッサ
による“監視”(図10、図11、図12等に示す“監
視”参照)と、サブプロセッサ(B)による加工データ
の取り込みが完了した旨のメインプロセッサによるサブ
プロセッサ(A)への通知(“データ1完了”、“デー
タ2完了”…等)は、本図において、時計回り方向に進
行する。
【0062】全体としては同様の動作の繰り返しとなる
が、その一部を例にとって説明すると、 図中、右上の“データ1完了”をサブプロセッサA
1がメインプロセッサより受信する。 この受信により、サブプロセッサA1は、図中、右
下の“データ4転送中”に入る。このとき同時に同図
中、右上に示す“加工”、すなわちメインプロセッサに
よるデータ2へのデータ加工が行われる。
【0063】 加工後のデータ2は、サブプロセッサ
B2へ排出(B2への加工データの取り込み)される。 上記の排出完了があると、その完了の旨が、メイ
ンプロセッサを介してサブプロセッサA2へ通知され
る。 上記の通知を受けたサブプロセッサA2は自動的
に、“データ5転送中”に入る。
【0064】さらにデータ5はメインプロセッサによる
加工を受けつつ、サブプロセッサB2に排出される。か
くして本図中では、3つのサブプロセッサは、上記の時
計回りに沿って2度表記されることになる。図20およ
び21で示したバッファ1(メモリエリアMA1)、バ
ッファ2(メモリエリアMA2)…は、図22では図示
しなかったが、図22中の周囲に記載された“データ
1”、“データ2”…にそれぞれ対応して存在してい
る。そして、この実施態様の3ペアの場合は2つ飛びで
周期をずらしながらバッファが使用される。例えば、サ
ブプロセッサA1を例にとって見ると、“データ完了”
のプロセスは、“データ1完了”→“データ4完了”の
如く、2つのデータ2およびデータ3(2つのバッファ
2およびバッファ3に相当)を飛ばしている。一方、図
20の2ペアの場合は、1つ飛びで周期をずらしながら
バッファが使用される。例えば、サブプロセッサA1に
よるバッファ4への“データ挿入”から、同じくサブプ
ロセッサA1による次のデータのバッファ6への“デー
タ挿入”までに1つのバッファ(バッファ5)を飛ばし
て、1つ飛びになっている。
【0065】
【発明の効果】以上説明したように本発明によれば、 イ)サブCPU−AとメインCPU−Cとの間にも、サ
ブCPU−BとメインCPU−Cとの間にも、従来法に
よる共有メモリを実装する必要がないのでシステムのハ
ードコストが低減する。
【0066】ロ)メインCPU−Cは、サブCPU−A
からデータの供給を受けながら一方でサブCPU−Bに
加工データを送り込むので、システム全体の処理時間が
短縮される。 ハ)メインCPU−Cはいわば並列処理を実行している
が、一般にいうマルチタスク環境下での並列処理(各C
PU毎にそれぞれ独立して時間を区切って処理を実行す
る並列処理)とは異なる並列処理であり、1つのタスク
について総処理時間は短縮される。
【0067】ニ)複数のCPU(11,12,13)に
よる分散処理ではあるが、各CPU間の連携動作は一定
の規則に従って単純化されており、ソフトウェア上のみ
ならずハードウェア上も簡素化される。 ホ)サブCPU−AおよびサブCPU−Bが複数台に増
設されたとしても、その増設分だけメモリエリア(M
A)を増やしメインCPU−Cが各メモリエリアの割り
振りを規則的(サイクリック)に指定するだけで、一対
のサブCPU−AとサブCPU−Bのみが存在するとき
の処理動作を変更なくそのまま実施すればよい。
【図面の簡単な説明】
【図1】本発明に係る方法の基本ステップを図解的に表
す図である。
【図2】図1と対比させた従来の基本ステップを示す図
である。
【図3】本発明に基づくデータ処理の流れを表すシーケ
ンス図である。
【図4】図3と対比させた従来の手法によるシーケンス
図である。
【図5】サブCPUが増設された様子を示す図である。
【図6】本発明を適用したマルチCPUシステムの構成
例を示す図である。
【図7】図6の構成を図1のパターンに合わせて描き直
した図である。
【図8】図6の構成のより一層具体的な例を示す図であ
る。
【図9】図8の構成を図1のパターンに合わせて描き直
した図である。
【図10】本発明の第1の実施態様を表すシーケンス図
(その1)である。
【図11】本発明の第1の実施態様を表すシーケンス図
(その2)である。
【図12】本発明の第2の実施態様を表すシーケンス図
(その1)である。
【図13】本発明の第2の実施態様を表すシーケンス図
(その2)である。
【図14】本発明の第3の実施態様を表すメモリ割当て
図である。
【図15】図14の各メモリエリアを使い廻して行われ
る処理の手順および各手順でのCPUの状態を示す図で
ある。
【図16】図15の処理手順の一部を図解的に表す図で
ある。
【図17】図16の変形例を示す図である。
【図18】本発明の第4の実施態様を表すシーケンス図
である。
【図19】本発明の第5の実施態様のもとでの各転送元
サブCPUの動作を表す図である。
【図20】本発明の第5の実施態様のもとでの周期のず
らし方の第1例を示す図(その1)である。
【図21】本発明の第5の実施態様のもとでの周期のず
らし方の第1例を示す図(その2)である。
【図22】本発明の第5の実施態様のもとでの周期のず
らし方の第2例を示す図である。
【図23】(A)は本発明の前提となるシステム構成、
(B)は(A)における従来のデータ処理方法を表す図
である。
【符号の説明】
11…サブプロセッサA 12…サブプロセッサB 13…メインプロセッサ 14…主メモリ 15…システムバス 16…拡張チップバス 111…ワークステーション 112…イーサーコントローラ 121…ディスク 122…ディスクコントローラ 131…SPARC−CPU CPU−C…メインCPU CPU−A,CPU−B…サブCPU MA1…第1メモリエリア MA2…第2メモリエリア
フロントページの続き (72)発明者 奈良 智紀 北海道札幌市厚別区下野幌テクノパーク1 丁目1番5号 富士通北海道通信システム 株式会社内 (72)発明者 佐藤 秀俊 北海道札幌市厚別区下野幌テクノパーク1 丁目1番5号 富士通北海道通信システム 株式会社内 (72)発明者 井木 洋三 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 メインCPUと、該メインCPUとシス
    テムバスを介して連携するデータの転送元サブCPUお
    よびデータの転送先サブCPUとを有してなり、該メイ
    ンCPUが前記転送元サブCPUからのデータに加工を
    施して前記転送先サブCPUに加工後のデータを転送す
    るように構成されたマルチCPUシステムにおけるデー
    タ処理方法において、 i)前記メインCPU内のメモリを、前記転送元サブC
    PUに専有される第1メモリエリアと前記転送先サブC
    PUに専有される第2メモリエリアとに分けてこれらサ
    ブCPUに開放し、 ii)前記転送元サブCPUは、開放された前記第1メモ
    リエリアに、DMA転送によりデータを送り込み、 iii)前記メインCPUは、前記第1メモリエリアに送
    り込まれたデータに前記の加工を施してからその加工デ
    ータを前記第2メモリエリアに格納し、 iv)前記転送先サブCPUは、前記メインCPUによる
    前記の加工と重複しながら、前記加工データを前記第2
    メモリエリアより、DMA転送により取り込むことを特
    徴とする、マルチCPUシステムのデータ処理方法。
  2. 【請求項2】 前記転送先サブCPUにおいてエラーの
    発生を検出したときは、当該エラーの発生を前記メイン
    CPUに通知し、該メインCPUは当該エラーを生じさ
    せた前記加工データをもってリトライを実行し、 また、前記メインCPUにおいてエラーの発生を検出し
    たときあるいは前記メインCPUにおいてエラーの復旧
    処理を実行したがその復旧に失敗したときは、当該エラ
    ーの発生を前記転送元サブCPUに通知し、該転送元サ
    ブCPUは当該エラーを生じさせたときに、該メインC
    PUに転送中または転送済みのデータより先行するデー
    タをもってリトライを実行するステップを含む請求項1
    に記載のデータ処理方法。
  3. 【請求項3】 前記転送先サブCPUが複数存在する場
    合、前記メインCPU内の前記メモリを、前記第1メモ
    リエリアと、複数の前記第2メモリエリアとに区分し、
    これらのメモリエリアを前記転送元サブCPUおよび複
    数の転送先サブCPUにそれぞれ割り振ってサイクリッ
    クにデータの送り込み、加工データの格納および加工デ
    ータの取り込みを行う請求項1に記載のデータ処理方
    法。
  4. 【請求項4】 前記転送先サブCPUへの前記加工デー
    タの取り込みが完了しても依然前記転送元サブCPUか
    ら前記第1メモリエリアへのデータの送り込みが完了し
    ていないとき、 前記メインCPUは、前記転送元サブCPUから前記第
    1メモリエリアへのデータの送り込みが完了するのを待
    つ待ち合わせ期間を設け、該メインCPUは該待ち合わ
    せ期間の後にデータの加工を開始する請求項1に記載の
    データ処理方法。
  5. 【請求項5】 前記転送元サブCPUが複数存在すると
    共にこれらとそれぞれ対をなして複数の前記転送先サブ
    CPUが存在する場合、前記第1メモリエリアおよび前
    記第2メモリエリアをそれぞれ、前記転送元サブCPU
    および転送先サブCPUの総数に応じて複数、前記メイ
    ンCPU内のメモリに形成し、 前記第1および第2メモリエリアを、前記転送元サブC
    PUおよび転送先サブCPUが周期をずらしながら使用
    して、サイクリックにデータの送り込み、加工データの
    格納および加工データの取り込みを行う請求項1に記載
    のデータ処理方法。
JP12567296A 1996-05-21 1996-05-21 マルチcpuシステムのデータ処理方法 Withdrawn JPH09305549A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12567296A JPH09305549A (ja) 1996-05-21 1996-05-21 マルチcpuシステムのデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12567296A JPH09305549A (ja) 1996-05-21 1996-05-21 マルチcpuシステムのデータ処理方法

Publications (1)

Publication Number Publication Date
JPH09305549A true JPH09305549A (ja) 1997-11-28

Family

ID=14915810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12567296A Withdrawn JPH09305549A (ja) 1996-05-21 1996-05-21 マルチcpuシステムのデータ処理方法

Country Status (1)

Country Link
JP (1) JPH09305549A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008135047A (ja) * 2000-11-06 2008-06-12 Matsushita Electric Ind Co Ltd マルチプロセッサ用インタフェース
US7676701B2 (en) 2006-05-11 2010-03-09 Fuji Xerox Co., Ltd. Computer readable medium storing an error recovery program, error recovery method, error recovery apparatus, and computer system
CN116701284A (zh) * 2023-06-26 2023-09-05 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008135047A (ja) * 2000-11-06 2008-06-12 Matsushita Electric Ind Co Ltd マルチプロセッサ用インタフェース
US7676701B2 (en) 2006-05-11 2010-03-09 Fuji Xerox Co., Ltd. Computer readable medium storing an error recovery program, error recovery method, error recovery apparatus, and computer system
CN116701284A (zh) * 2023-06-26 2023-09-05 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质
CN116701284B (zh) * 2023-06-26 2024-02-09 北京瑞祺皓迪技术股份有限公司 一种cpu间数据高速同步方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US5922078A (en) Method and apparatus for recovering from faults in distributed memory type multiprocessor computing systems
US5828821A (en) Checkpoint restart method and apparatus utilizing multiple log memories
US5257356A (en) Method of reducing wasted bus bandwidth due to slow responding slaves in a multiprocessor computer system
US6507809B1 (en) Method and system for simulating performance of a computer system
JP2003131900A (ja) サーバシステム運用管理方式
CN108205510B (zh) 数据处理
JPH09138754A (ja) 分散チェックポイント生成方法および同方法が適用される計算機システム
JPH10510078A (ja) タイママネージャ
US20010051994A1 (en) Computer system and a data transfer method thereof
US20020116664A1 (en) Method and apparatus for machine check abort handling in a multiprocessing system
US5613133A (en) Microcode loading with continued program execution
JPH09305549A (ja) マルチcpuシステムのデータ処理方法
JP3891994B2 (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
JP2594600B2 (ja) シングルチップマイクロコンピュータ
US6880046B1 (en) Multiprocessor system and memory access method
US20030177346A1 (en) Method and apparatus for abandoning an interrupted task
US5522060A (en) Multiprocessor memory managing system and method for executing sequentially renewed instructions by locking and alternately reading slave memories
JPH11338838A (ja) マルチプロセッサシステムにおける障害情報のパラレルダンプ採取方法及び方式
US5781794A (en) Data processing system having an addition unit for preparing new control tables for new hardware modules and dynamically adding the tables to the present control tables
US20040003049A1 (en) Parallel computer and analysis method, and computer product
JPH0562384B2 (ja)
JP2922342B2 (ja) 割込み制御装置
JP2713133B2 (ja) ポーリング式データ収集方式
JPH05265967A (ja) マルチプロセッサシステムのデータ通信方法
JPH07234850A (ja) マルチプロセッサの装置と方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030805