JP3047667B2 - Cpu間データ転送方法 - Google Patents

Cpu間データ転送方法

Info

Publication number
JP3047667B2
JP3047667B2 JP5076016A JP7601693A JP3047667B2 JP 3047667 B2 JP3047667 B2 JP 3047667B2 JP 5076016 A JP5076016 A JP 5076016A JP 7601693 A JP7601693 A JP 7601693A JP 3047667 B2 JP3047667 B2 JP 3047667B2
Authority
JP
Japan
Prior art keywords
cpu
data
memory
transfer
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.)
Expired - Lifetime
Application number
JP5076016A
Other languages
English (en)
Other versions
JPH06290082A (ja
Inventor
▲隆▼郎 沼倉
光男 山▲崎▼
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 JP5076016A priority Critical patent/JP3047667B2/ja
Publication of JPH06290082A publication Critical patent/JPH06290082A/ja
Application granted granted Critical
Publication of JP3047667B2 publication Critical patent/JP3047667B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムのCPU間で、長いデータを転送する場合の、CP
U間データ転送方法の改良に関する。
【0002】以下は、CPUが4個あるマルチプロセッ
サシステムで、CPU1からCPU2に長いデータを転
送中に、CPU3よりCPU1又はCPU2に通信要求
をした場合を例にとり説明する。
【0003】
【従来の技術】図5は1例のマルチプロセッサシステム
の要部のブロック図、図6は1例の図5のCPUnとC
PUmとの間のCPU間通信領域の細部を示す図、図7
は従来例のCPU1の処理のフローチャート、図8は従
来例のCPU2の処理のフローチャートである。 図5
では、CPU1〜4及び共通メモリ10はバスにて接続
されており、図5に示す如く、CPU1は、データを転
送するCPUの認識番号及びデータが転送されてきたC
PUの認識番号を読み込むCPU間割込み通知レジスタ
21、通信要求のあるCPUの認識番号を書き込むCP
U間割込み要求レジスタ22,転送データを書き込むメ
モリ1ー1,転送されたデータを受信するメールボック
ス23を有し、CPU2は、CPU1と同じく、CPU
間割込み通通知レジスタ31、CPU間割込み要求レジ
スタ32、メモリ2ー1,メールボックス33を有し、
CPU3,CPU4も同じ構成を有しているが省略して
ある。
【0004】共通メモリ10は、転送データを書き込む
フリーメモリ領域11及びCPU間通信領域12を有
し、CPU間通信領域12は、CPU1,2,3,4よ
り他のCPUにデータを転送等のCPU間通信をする場
合の通信領域を有し、各通信領域の細部、例えばCPU
1→CPU2の細部は図6に示す如く、データ転送を行
うCPUの認識番号を書き込むCPUーID領域41、
タスクの識別番号を書き込むタスクID領域42,転送
が終了したとか、処理中とか、本発明の場合は待ち合わ
せ要求も書き込む終了情報領域43,システムコール種
別を書き込むシステムコール種別領域44,各種レジス
タ値を書き込む各種レジスタ値領域45,メールボック
スN0.,メッセージの先頭アドレス,メッセージ長,
等を格納する各種データ値領域46よりなっている。
【0005】CPU1がCPU2にデータを転送する場
合は、CPU1のタスクAは、図7のステップ(以下S
と称す)1にて、自CPU内のメモリ1ー1に、転送デ
ータを格納する領域を獲得し、S2にて、CPU2に転
送する転送データをS1にて獲得した領域に格納し、S
3にて格納したデータを、CPU2のメールボックス3
3に送信する為のデータ転送システムコールを発行す
る。
【0006】するとOSは、S4にて共通メモリ10内
のフリーメモリ領域11に転送データを格納する領域を
獲得し、S5にてメモリ1ー1に格納した転送データを
フリーメモリ領域11内に獲得した領域に転写し、S6
にてCPU間割込み要求レジスタ21のCPU2の該当
欄を1とし、共通メモリ10のCPU1→CPU2の通
信領域のシステムコール種別領域44に、データ転送シ
ステムコールの種別を書込み、CPU2のOSにて、C
PU2のCPU間割込み通通知レジスタ31のCPU1
の欄を1とさせ、転送要求を知らせる。この時CPU1
は、各種データ値領域46にメールボックスNO.,メ
ッセージの先頭アドレス及びメッセージ長を書き込む。
【0007】すると図8のS7にて、CPU2のOSは
CPU間割込み通通知レジスタ31のCPU1の欄が1
になっていることで、CPU1からの転送要求を知り、
メモリ2ー1に転送データの格納領域を獲得し、S8に
て、共通メモリ10のフリーメモリ領域11に複写され
た転送データを、S7にて獲得した領域に転写し、S9
にて、S3にてCPU1が発行したデータ転送システム
コールの代行を行う為に、データ転送システムコールを
発行し、転送データをメールボックス33に送信し処理
終了とし、図6の終了情報領域43に00を書き込む。
【0008】そしてS13にて、タスクBは、メールボ
ックス33内の転送データを受信する為のシステムコー
ルを発行し、S14にてメールボックス33内の転送デ
ータを獲得し、S15にて、S7にし獲得した領域をC
PU内のメモリ2ー1に返却する。
【0009】一方、CPU1のOSは、図7のS10に
て、終了情報領域43に00が書き込まれるかどうかを
見ており、書き込まれると、S11にて、S4にて獲得
した領域をフリーメモリ領域11に返却し、S12に
て、S1にて獲得した領域をメモリ1ー1に返却する。
【0010】CPU3がCPU1又はCPU2に通信要
求をすると、CPU1又はCPU2のCPU間割込み通
知レジスタ21又は31のCPU3の欄が1となり、C
PU3より通信要求があることが判るようになるが、こ
の時CPU3は、タイマにタイムアウト時間を設定す
る。
【0011】CPU3はタイムアウト時間内に、通信を
要求したCPU1又はCPU2より応答がないと、タイ
ムアウトしてしまい、通信要求先のCPUに障害が発生
したと判断し障害発生の処理を行う。
【0012】このタイムアウト時間を長くして、タイム
アウトにならないようにすると、OSの処理速度や性能
が低下するので、通常は、2Kバイトのデータを、メモ
リ1ー1から共通メモリ10に転送する時間,又は共通
メモリ10よりメモリ2ー1に転送する時間の10ms
以下にしてある。
【0013】
【発明が解決しようとする課題】しかしながら、メモリ
1ー1から共通メモリ10に転送する時間,又は共通メ
モリ10よりメモリ2ー1に転送する時間が、タイムア
ウト時間より長くかかるデータを転送する場合は、タイ
ムアウトとなることがあり、この場合はCPU1又はC
PU2は障害でないに関わらずCPU3は障害処理をす
る問題点がある。
【0014】本発明は、メモリから共通メモリに転送す
る時間,又は共通メモリよりメモリに転送する時間が、
タイムアウト時間より長くかかるデータを転送する場
合、通信要求の他のCPUが誤って障害処理をすること
がない、CPU間データ転送方法の提供を目的としてい
る。
【0015】
【課題を解決するための手段】図1は本発明の原理図で
ある。図1に示す如く、マルチプロセッサシステムの第
1のCPU1がメモリ1ー1に書き込んだデータを共通
メモリ10に転写し、第2のCPU2は該共通メモリ1
0に転写されたデータを自メモリ2ー1に転写し、自メ
ールボックス2ー2に受信することで該第1のCPU1
より該第2のCPU2にデータの転送を行い、第3のC
PU3が、該第1のCPU1又は該第2のCPU2に通
信要求を行う時はタイマにタイムアウト時間設定し、タ
イムアウト時間になると通信要求先のCPUは障害とし
障害処理を行うマルチプロセッサシステムにおいて、デ
ータを、該第1のCPU1が該メモリ1ー1より該共通
メモリ10に転写する時間,又は該第2のCPU2が該
共通メモリ10より該メモリ2ー1に転写する時間が、
該第3のCPU3が設定するタイムアウト時間より長い
データを該第1のCPU1より該第2のCPU2に転送
する場合は、データ長を、転写する時間が上記タイムア
ウト時間内になるように分割し、分割したデータ毎に、
該第1のCPU1は該共通メモリ10に転写し、該第2
のCPU2は該共通メモリ10より転写する処理を、全
データが転写される迄行い、該第1のCPU1がデータ
転写中に該第1のCPU1に該第3のCPU3より通信
要求があれば、該第1のCPU1は分割したデータを該
共通メモリ10に転写完了毎に待ち合わせ要求を行い、
該第2のCPU2がデータ転写中に該第2のCPU2に
該第3のCPU3より通信要求があれば、該第2のCP
U2は分割したデータを該共通メモリ10より該自メモ
リ2ー2に転写完了毎に待ち合わせ要求を行い、該第3
のCPU3は、タイムアウト時間になる度に、待ち合わ
せ要求が出ているかどうかを見、出ていれば再度タイム
アウト時間を設定するようにする。
【0016】
【作用】本発明にれば、データを、該第1のCPU1が
該メモリ1ー1より該共通メモリ10に転写する時間,
又は該第2のCPU2が該共通メモリ10より該メモリ
2ー1に転写する時間が、該第3のCPU3が設定する
タイムアウト時間より長いデータを該第1のCPU1よ
り該第2のCPU2に転送する場合は、データ長を、転
写する時間が上記タイムアウト時間内になるように分割
し、分割したデータ毎に、該第1のCPU1は該共通メ
モリ10に転写し、第2のCPU2は該共通メモリ10
より転写する処理を、全データが転写される迄行う。
【0017】該第1のCPU1がデータ転写中に該第1
のCPU1に該第3のCPU3より通信要求があれば、
該第1のCPU1は分割したデータを該共通メモリ10
に転写完了毎に待ち合わせ要求を行い、該第2のCPU
2がデータ転写中に該第2のCPU2に該第3のCPU
3より通信要求があれば、該第2のCPU2は分割した
データを該共通メモリ10より該自メモリ2ー2に転写
完了毎に待ち合わせ要求を行う。
【0018】第3のCPU3は、タイムアウト時間にな
る度に、待ち合わせ要求が出ているかどうかを見、出て
いれば再度タイムアウト時間を設定するようにする。従
って、第3のCPU3は誤って通信要求先のCPUが障
害との処理をしなくなる。
【0019】
【実施例】図2は本発明の実施例のCPU1の処理のフ
ローチャート、図3は本発明の実施例のCPU2の処理
のフローチャート、図4は本発明の実施例の待ち合わせ
要求とタイムアウト時間とのタイムチャートである。
【0020】以下は図5に示すマルチプロセッサシステ
ムにて、データの、メモリ1ー1より共通メモリ10の
フリーメモリ領域11への転送時間又はフリーメモリ領
域11よりメモリ2ー1への転送時間が、タイムアウト
時間より長くかかる5Kバイトのデータを、CPU1よ
りCPU2に転送する場合で、CPU3よりCPU1又
はCPU2に通信要求があつた場合を例にとり説明す
る。
【0021】CPU1のタスクAは、図2のS1にて、
自CPU内のメモリ1ー1に、転送データを格納する領
域を獲得し、S2にて、CPU2に転送する転送データ
をS1にて獲得した領域に格納し、S3にて格納したデ
ータを、CPU2のメールボックス33に送信する為の
データ転送システムコールを発行する。
【0022】するとOSは、S4にて共通メモリ10内
のフリーメモリ領域11に転送データを格納する領域を
獲得し、S5にて、S2にて格納した転送データ長をチ
ェックし、5Kバイトで、転送時間がタイムアウト時間
より短く出来る1Kバイトより長いので、1Kバイトに
分割する。
【0023】そしてS6にて、分割された1Kバイトの
データを、フリーメモリ領域11の獲得した領域に転写
し、S7にて、CPU間割込み通知レジスタ21に他C
PUからの通信要求の有無をチェックし、有れば該当C
PUに対し待ち合わせ要求をし、なければ待ち合わせ要
求をしないことを、S8,S6,S7にて5Kバイト全
部を転送終了迄繰り返す。
【0024】この場合全転送データ長は5Kバイトであ
ることを、共通メモリ10のCPU間通信領域のCPU
1→CPU2の各種データ値領域46に書込み、転送デ
ータ長は5KバイトであることをCPU2に知らせる。
【0025】尚CPU3より通信要求があると、CPU
間割込み通知レジスタ21のCPU3の欄は1となるの
で、この場合は、共通メモリ10のCPU間通信領域の
CPU3→CPU1の終了情報領域43に、1Kバイト
転送終了毎に01を書込み待ち合わせ要求を行う。
【0026】OSは、次にS9にて、CPU間割込み要
求レジスタ22のCPU2の欄を1とし、共通メモリ1
0のCPU間通信領域のCPU1→CPU2のシステム
コール種別領域44に、データ転送システムコール種別
を書き込む。するとCPU2のOSは、CPU間割込み
通知レジスタ31のCPU1の欄が1となっているの
で、CPU1よりのデータ転送を知り、又共通メモリ1
0のCPU間通信領域のCPU1→CPU2の各種デー
タ値領域46を見、転送データは5Kバイトであること
を知り、図3のS10にて、メモリ2ー1に5Kバイト
の転送データの格納領域を獲得しS11に進む。
【0027】S11では、OSは、共通メモリ10のフ
リーメモリ領域11に転送された1Kバイトのデータ
を、獲得した領域に転写し、S12にてCPU間割込み
通知レジスタ31を見、他CPUからの通信要求の有無
をチェックし、有れば、該当CPUに対しし待ち合わせ
要求を行い、なければ待ち合わせ要求を行なわないこと
を、S13,S11,S12にて、5Kバイト転送終了
迄繰り返し、終了すると、共通メモリ10のCPU間通
信領域のCPU1→CPU2の終了情報領域43に00
を書き込む。
【0028】尚CPU3より通信要求があると、CPU
間割込み通知レジスタ31のCPU3の欄は1となるの
で、この場合は、共通メモリ10のCPU間通信領域の
CPU3→CPU2の終了情報領域43に、1Kバイト
転送終了毎に01を書込み待ち合わせ要求を行う。
【0029】OSは、次はS14にて、図2のS3にて
CPU1が発行したデータ転送システムコールの代行を
行う為、データ転送システムコールを発行し、転送デー
タをメールボックス33に送信し、CPU1は図2のS
15にて、共通メモリ10のCPU間通信領域のCPU
1→CPU2の終了情報領域43に処理終了の00が書
き込まれているかを見ており、終了していなければS1
6にて、S7と同じ処理を行い、終了していれば、S1
7にてS4にて獲得した領域をフリーメモリ領域11に
返却し、S18にて、S1にて獲得した領域をメモリ1
ー1に返却し、S24にて、CPU間割込み通知レジス
タ21にて他CPUからの通信要求の有無をチェック
し、なければENDとし、有れば、S25にて、通信要
求CPU例えば3に応答処理をしENDとする。
【0030】一方CPU2のタスクBは、図3のS21
にて、メールボックス33内の転送データを受信する為
のシステムコールを発行し、S22にてメールボックス
33内の転送データを獲得し、S23にて、S10にて
獲得した領域をメモリ2ー1に返却する。
【0031】又OSは、S19にて、CPU間割込み通
知レジスタ31にて他CPUからの通信要求の有無をチ
ェックし、無ければENDとし、有ればS20にて、通
信要求CPU例えば3に応答処理をしENDとする。
【0032】尚この場合の、CPU1の待ち合わせ設定
と、CPU3の通信要求及びタイムアウト時間設定のタ
イムチャートを示すと図4に示す如くなり、CPU3
は、CPU1又はCPU2が正常であるに関わらず、誤
って障害と判断し、障害処理をすることはなくなる。
【0033】
【発明の効果】以上詳細に説明せる如く本発明によれ
ば、メモリから共通メモリに転送する時間,又は共通メ
モリよりメモリに転送する時間が、タイムアウト時間よ
り長くかかるデータを転送する場合、通信要求の他のC
PUが誤って障害処理をすることがなくなる効果があ
る。
【図面の簡単な説明】
【図1】は本発明の原理図、
【図2】は本発明の実施例のCPU1の処理のフローチ
ャート、
【図3】は本発明の実施例のCPU2の処理のフローチ
ャート、
【図4】は本発明の実施例の待ち合わせ要求とタイムア
ウト時間とのタイムチャート、
【図5】は1例のマルチプロセッサシステムの要部のブ
ロック図、
【図6】は1例の図5のCPUnとCPUmとの間のC
PU間通信領域の細部を示す図、
【図7】は従来例のCPU1の処理のフローチャート、
【図8】は従来例のCPU2の処理のフローチャートで
ある。
【符号の説明】
1〜4はCPU、 1ー1,2ー1はメモリ、 10は共通メモリ、 11はフリーメモリ領域、 12はCPU間通信領域、 21,31はCPU間割込み通知レジスタ、 22,32はCPU間割込み要求レジスタ、 23,33はメールボックス、 41はCPUーID領域、 42はタスクID領域、 43は終了情報領域、 44はシステムコール種別領域、 45は各種レジスタ値領域、 46は各種データ値領域を示す。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山▲崎▼ 光男 神奈川県横浜市港北区新横浜3丁目9番 18号 富士通コミュニケーション・シス テムズ株式会社内 (56)参考文献 特開 昭63−132344(JP,A) 特開 平2−289020(JP,A) 特開 平4−2237(JP,A) 特開 平3−220661(JP,A) 特開 平3−29048(JP,A) 特開 昭64−99143(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 676 G06F 11/30 310 G06F 13/38 340

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 マルチプロセッサシステムの第1のCP
    U(1)がメモリ(1ー1)に書き込んだデータを共通
    メモリ(10)に転写し、第2のCPU(2)は該共通
    メモリ(10)に転写されたデータを自メモリ(2ー
    1)に転写し、自メールボックス(2ー2)に受信する
    ことで該第1のCPU(1)より該第2のCPU(2)
    にデータの転送を行い、第3のCPU(3)が、該第1
    のCPU(1)又は該第2のCPU(2)に通信要求を
    行う時はタイマにタイムアウト時間設定し、タイムアウ
    ト時間になると通信要求先のCPUは障害とし障害処理
    を行うマルチプロセッサシステムにおいて、データを、
    該第1のCPU(1)が該メモリ(1ー1)より該共通
    メモリ(10)に転写する時間,又は該第2のCPU
    (2)が該共通メモリ(10)より該メモリ(2ー1)
    に転写する時間が、該第3のCPU(3)が設定するタ
    イムアウト時間より長いデータを該第1のCPU(1)
    より該第2のCPU(2)に転送する場合は、データ長
    を、転写する時間が上記タイムアウト時間内になるよう
    に分割し、分割したデータ毎に、該第1のCPU(1)
    は該共通メモリ(10)に転写し、該第2のCPU
    (2)は該共通メモリ(10)より転写する処理を、全
    データが転写される迄行い、該第1のCPU(1)がデ
    ータ転写中に該第1のCPU(1)に該第3のCPU
    (3)より通信要求があれば、該第1のCPU(1)は
    分割したデータを該共通メモリ(10)に転写完了毎に
    待ち合わせ要求を行い、該第2のCPU(2)がデータ
    転写中に該第2のCPU(2)に該第3のCPU(3)
    より通信要求があれば、該第2のCPU(2)は分割し
    たデータを該共通メモリ(10)より該自メモリ(2ー
    2)に転写完了毎に待ち合わせ要求を行い、該第3のC
    PU(3)は、タイムアウト時間になる度に、待ち合わ
    せ要求が出ているかどうかを見、出ていれば再度タイム
    アウト時間を設定するようにしたことを特徴とするCP
    U間データ転送方法。
JP5076016A 1993-04-02 1993-04-02 Cpu間データ転送方法 Expired - Lifetime JP3047667B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5076016A JP3047667B2 (ja) 1993-04-02 1993-04-02 Cpu間データ転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5076016A JP3047667B2 (ja) 1993-04-02 1993-04-02 Cpu間データ転送方法

Publications (2)

Publication Number Publication Date
JPH06290082A JPH06290082A (ja) 1994-10-18
JP3047667B2 true JP3047667B2 (ja) 2000-05-29

Family

ID=13593038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5076016A Expired - Lifetime JP3047667B2 (ja) 1993-04-02 1993-04-02 Cpu間データ転送方法

Country Status (1)

Country Link
JP (1) JP3047667B2 (ja)

Also Published As

Publication number Publication date
JPH06290082A (ja) 1994-10-18

Similar Documents

Publication Publication Date Title
US5115499A (en) Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code
US4763249A (en) Bus device for use in a computer system having a synchronous bus
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US4648030A (en) Cache invalidation mechanism for multiprocessor systems
EP0139563B1 (en) Control mechanism for multiprocessor system
EP0518527A2 (en) Method of reducing wasted bus bandwidth in a computer system
EP0138676B1 (en) Retry mechanism for releasing control of a communications path in a digital computer system
GB1499585A (en) Data processing system
JPH10320282A (ja) 仮想キャッシュ・コントロール方法及び装置
JP2002503847A (ja) 2次バスからのメッセージング・ユニットへのアクセス
US5089953A (en) Control and arbitration unit
US5557753A (en) Information processing unit having a multiplexed bus and a bus control method therefor
JP3047667B2 (ja) Cpu間データ転送方法
US20020040414A1 (en) Multiprocessor system and transaction control method for the same
EP0548077B1 (en) High speed active bus
US5826045A (en) Arbitration parking apparatus and method for a split transaction bus in a multiprocessor computer system
JP3187446B2 (ja) キャッシュメモリ制御装置
JP2772052B2 (ja) 資源情報引き継ぎ処理方法
JP2906197B2 (ja) 二重化バス装置
US5603057A (en) System for initiating data transfer between input/output devices having separate address spaces in accordance with initializing information in two address packages
JP2929631B2 (ja) プロセッサ間通信装置
JP2781999B2 (ja) マルチプロセツサシステムにおける共通データチヤネル装置起動方式
US5692218A (en) System for transferring data between input/output devices having separate address spaces in accordance with initializing information in address packages
JP2000155738A (ja) データ処理装置
JP2757034B2 (ja) マルチプロセッサシステムのデータチャネル装置起動方式とデータチャネル装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000222