JPH06243104A - マルチプロセッサシステムにおけるcpu間通信方式 - Google Patents
マルチプロセッサシステムにおけるcpu間通信方式Info
- Publication number
- JPH06243104A JPH06243104A JP5045808A JP4580893A JPH06243104A JP H06243104 A JPH06243104 A JP H06243104A JP 5045808 A JP5045808 A JP 5045808A JP 4580893 A JP4580893 A JP 4580893A JP H06243104 A JPH06243104 A JP H06243104A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- communication
- inter
- information
- cpus
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 マルチプロセッサシステムにおけるCPU間
通信方式に関し、共有メモリの容量不足およびCPU間
通信の通信元CPUの負荷増大を防止することを目的と
する。 【構成】 複数のCPU21 〜2n とそれらのCPUが
共通にアクセスできる共有メモリ1とを有するマルチプ
ロセッサシステムにおいて、上記共有メモリには通信元
CPUから通信先CPUに送る必要のあるCPU間通信
の各種パラメータを格納するCPU間通信情報ブロック
が上記CPUの数に応じた数分設けられ、上記CPU間
通信情報ブロックはそれが未使用の場合には共有メモリ
内に存在する未使用ブロックリンク情報にキューイング
され、また使用中の場合には通信先の各CPU毎に存在
するキューイング情報にキューイングされることを特徴
とするものである。
通信方式に関し、共有メモリの容量不足およびCPU間
通信の通信元CPUの負荷増大を防止することを目的と
する。 【構成】 複数のCPU21 〜2n とそれらのCPUが
共通にアクセスできる共有メモリ1とを有するマルチプ
ロセッサシステムにおいて、上記共有メモリには通信元
CPUから通信先CPUに送る必要のあるCPU間通信
の各種パラメータを格納するCPU間通信情報ブロック
が上記CPUの数に応じた数分設けられ、上記CPU間
通信情報ブロックはそれが未使用の場合には共有メモリ
内に存在する未使用ブロックリンク情報にキューイング
され、また使用中の場合には通信先の各CPU毎に存在
するキューイング情報にキューイングされることを特徴
とするものである。
Description
【0001】
【産業上の利用分野】本発明はマルチプロセッサシステ
ムにおけるCPU間通信方式に関する。
ムにおけるCPU間通信方式に関する。
【0002】
【従来の技術】図15には、複数(n個)のCPU(中
央処理装置)と、それら全てのCPUが共通にアクセス
できる共通メモリとを有するマルチプロセッサシステム
の構成図が示される。図示するように、CPU1〜CP
Unと共通メモリ11とはシステムバス12を介して接
続されており、各CPUは共有メモリ11にアクセスし
て他の任意のCPUに対して割込みを発生させることに
より、CPU間通信を行っている。
央処理装置)と、それら全てのCPUが共通にアクセス
できる共通メモリとを有するマルチプロセッサシステム
の構成図が示される。図示するように、CPU1〜CP
Unと共通メモリ11とはシステムバス12を介して接
続されており、各CPUは共有メモリ11にアクセスし
て他の任意のCPUに対して割込みを発生させることに
より、CPU間通信を行っている。
【0003】この従来のマルチプロセッサシステムで
は、図16に示すように共有メモリ11内にCPU1,
2,3,n−1,nにそれぞれ対応して固定領域11−
1〜11−nが割り付けされ、さらにそれらの各固定領
域には、自己以外の各CPUに対応して各CPU間での
通信情報書込み用固定領域がそれぞれ設けられている。
なお図16において、「割込み(x→y)」は、CPU
xからCPUyへの割込みが発生することを示してい
る。但し、図16の各CPU間通信情報書込み用固定領
域内の斜線部は同一CPU間での通信情報書込み用固定
領域であるが、同一CPU間の通信はCPU内のローカ
ルメモリにて可能なため、共有メモリ11は使用しな
い。
は、図16に示すように共有メモリ11内にCPU1,
2,3,n−1,nにそれぞれ対応して固定領域11−
1〜11−nが割り付けされ、さらにそれらの各固定領
域には、自己以外の各CPUに対応して各CPU間での
通信情報書込み用固定領域がそれぞれ設けられている。
なお図16において、「割込み(x→y)」は、CPU
xからCPUyへの割込みが発生することを示してい
る。但し、図16の各CPU間通信情報書込み用固定領
域内の斜線部は同一CPU間での通信情報書込み用固定
領域であるが、同一CPU間の通信はCPU内のローカ
ルメモリにて可能なため、共有メモリ11は使用しな
い。
【0004】また図17にはこのCPU間通信情報書込
み用固定領域のデータ構成例が示される。図中、発行元
CPU−IDはCPU間通信要求(システムコール)を
した発行元CPUが自CPU−ID(識別番号)を記入
する領域、終了情報は発行先CPUがCPU間通信状態
情報(処理中、処理終了等)を記入する領域、INT番
号は割込み種別番号を記入する領域、AX・BC・CX
・DXの各レジスタは発行元CPUの場合にはシステム
コール種別、各種共通資源の番号、メッセージのアドレ
ス、その他のパラメータを記入する領域、また発行先C
PUの場合にはエラーコード、その他のパラメータを記
入する領域である。
み用固定領域のデータ構成例が示される。図中、発行元
CPU−IDはCPU間通信要求(システムコール)を
した発行元CPUが自CPU−ID(識別番号)を記入
する領域、終了情報は発行先CPUがCPU間通信状態
情報(処理中、処理終了等)を記入する領域、INT番
号は割込み種別番号を記入する領域、AX・BC・CX
・DXの各レジスタは発行元CPUの場合にはシステム
コール種別、各種共通資源の番号、メッセージのアドレ
ス、その他のパラメータを記入する領域、また発行先C
PUの場合にはエラーコード、その他のパラメータを記
入する領域である。
【0005】図16に示すマルチプロセッサシステムに
おいて、各CPUが共有メモリ11を使用して他のCP
Uに対してCPU間通信を行う場合、例えばCPU2が
CPU1に対して割込みを発生させる場合は、CPU1
に対応する固定領域11−1における自己用のCPU間
通信情報書込み用固定領域(2→1)に通信情報を書き
込んで「割込み(2→1)」を発生させる。一方、CP
U1では、「割込み(2→1)」が発生すると、CPU
2に対応するCPU間通信情報書込み用固定領域(2→
1)をアクセスしてその内容を読み取り、割込み処理を
実行する。この場合、共有メモリ11内のCPU間通信
情報書込み用固定領域のアドレスは、通信する両CPU
が予め認識している。
おいて、各CPUが共有メモリ11を使用して他のCP
Uに対してCPU間通信を行う場合、例えばCPU2が
CPU1に対して割込みを発生させる場合は、CPU1
に対応する固定領域11−1における自己用のCPU間
通信情報書込み用固定領域(2→1)に通信情報を書き
込んで「割込み(2→1)」を発生させる。一方、CP
U1では、「割込み(2→1)」が発生すると、CPU
2に対応するCPU間通信情報書込み用固定領域(2→
1)をアクセスしてその内容を読み取り、割込み処理を
実行する。この場合、共有メモリ11内のCPU間通信
情報書込み用固定領域のアドレスは、通信する両CPU
が予め認識している。
【0006】ところで、この図16に示すようなマルチ
プロセッサシステムでは、n個のCPUを対等に動作さ
せるには、図17に示すCPU間通信情報書込み用固定
領域を{n×(n−1)}個分設定しなければならず、
CPUの個数nが大きくなればなるほど、また図17に
示す1つのCPU間通信情報書込み用固定領域のバイト
数が大きくなればなるほど、共有メモリ11内における
CPU間通信情報書込み用固定領域のトータルサイズが
大きくなる。当然のことながら、共有メモリ11には容
量制限があるため、トータルのCPU間通信情報書込み
用固定領域のサイズがある一定値を超えると容量不足に
陥るという問題点がある。
プロセッサシステムでは、n個のCPUを対等に動作さ
せるには、図17に示すCPU間通信情報書込み用固定
領域を{n×(n−1)}個分設定しなければならず、
CPUの個数nが大きくなればなるほど、また図17に
示す1つのCPU間通信情報書込み用固定領域のバイト
数が大きくなればなるほど、共有メモリ11内における
CPU間通信情報書込み用固定領域のトータルサイズが
大きくなる。当然のことながら、共有メモリ11には容
量制限があるため、トータルのCPU間通信情報書込み
用固定領域のサイズがある一定値を超えると容量不足に
陥るという問題点がある。
【0007】上記に述べた従来技術の問題点を解決する
1つの方法として特開平3−250355に開示された
マルチプロセッサシステムがある。図18にはこのマル
チプロセッサシステムにおける共有メモリ内のCPU間
通信領域が、また図19にはこのマルチプロセッサシス
テムにおける割込みをかける側のCPUの処理手順を示
すフローチャートが、図20には割込みをかけられる側
のCPUの処理手順を示すフローチャートがそれぞれ示
される。
1つの方法として特開平3−250355に開示された
マルチプロセッサシステムがある。図18にはこのマル
チプロセッサシステムにおける共有メモリ内のCPU間
通信領域が、また図19にはこのマルチプロセッサシス
テムにおける割込みをかける側のCPUの処理手順を示
すフローチャートが、図20には割込みをかけられる側
のCPUの処理手順を示すフローチャートがそれぞれ示
される。
【0008】このマルチプロセッサシステムにおいて
は、図18に示すように、共有メモリ21には各CPU
1,2,──,nにそれぞれ対応してn個のメッセージ
書込み領域21−1,21−2,──,21−nが割り
付けされている。各メッセージ書込み領域には、自己以
外の全CPUからの割込み要求に対してアクセスを許可
するか否かの情報(セマフォフラグ)および割込み元の
CPU−IDが格納される。なお、このセマフォフラグ
は“OFF”のときに割込み許可、“ON”のときに割
込み拒否を表す。
は、図18に示すように、共有メモリ21には各CPU
1,2,──,nにそれぞれ対応してn個のメッセージ
書込み領域21−1,21−2,──,21−nが割り
付けされている。各メッセージ書込み領域には、自己以
外の全CPUからの割込み要求に対してアクセスを許可
するか否かの情報(セマフォフラグ)および割込み元の
CPU−IDが格納される。なお、このセマフォフラグ
は“OFF”のときに割込み許可、“ON”のときに割
込み拒否を表す。
【0009】次に割込みをかける側のCPUをCPU
1、割込みをかけられる側のCPUをCPU2として上
述のマルチプロセッサシステムのCPU間通信処理動作
を説明する。まず、割込みをかける側のCPUの割込み
処理について図19のフローチャートを参照して説明す
る。
1、割込みをかけられる側のCPUをCPU2として上
述のマルチプロセッサシステムのCPU間通信処理動作
を説明する。まず、割込みをかける側のCPUの割込み
処理について図19のフローチャートを参照して説明す
る。
【0010】CPU1は、CPU間通信の要求元からの
割込み要求を受け付けると(ステップS50)、割込み
をかけたい通信相手のCPU(ここではCPU2)に対
応する共有メモリ21のメッセージ書込み領域21−2
のセマフォフラグが“OFF”か“ON”かを判断する
(ステップS51)。“OFF”の場合には割込み許可
であると認識して通信相手のCPUに対応するメッセー
ジ書込み領域21−2に、自己のCPU−IDおよび必
要なメッセージを書き込み(ステップS52)、通信相
手のCPU(すなわちCPU2)に割込みを発生させ
(ステップS53)、その後に次の割込み処理に備えて
リターンする。
割込み要求を受け付けると(ステップS50)、割込み
をかけたい通信相手のCPU(ここではCPU2)に対
応する共有メモリ21のメッセージ書込み領域21−2
のセマフォフラグが“OFF”か“ON”かを判断する
(ステップS51)。“OFF”の場合には割込み許可
であると認識して通信相手のCPUに対応するメッセー
ジ書込み領域21−2に、自己のCPU−IDおよび必
要なメッセージを書き込み(ステップS52)、通信相
手のCPU(すなわちCPU2)に割込みを発生させ
(ステップS53)、その後に次の割込み処理に備えて
リターンする。
【0011】一方、上記ステップS51において通信相
手がビジィー(Busy)であった場合(セマフォフラ
グが“ON”の場合)は、エラーコード(Busy)を
設定して(ステップS54)、その旨をCPU間通信の
要求元へ通知し、割込み要求のリトライを促す。
手がビジィー(Busy)であった場合(セマフォフラ
グが“ON”の場合)は、エラーコード(Busy)を
設定して(ステップS54)、その旨をCPU間通信の
要求元へ通知し、割込み要求のリトライを促す。
【0012】次に、割込みをかけられる側のCPUの処
理について図20のフローチャートを参照して説明す
る。CPU2はCPU1からの割込みが発生した場合
(ステップS60)、自己のCPU内のレジスタ値を退
避させ(ステップS61)、その後に自己のCPUに対
応するメッセージ書込み領域21−2に書かれているC
PU−IDおよびメッセージを読み出し、さらにそれら
の情報に基づいてどこからの通信でどのような内容かを
識別し、該当する処理タスクに渡す(ステップS6
2)。
理について図20のフローチャートを参照して説明す
る。CPU2はCPU1からの割込みが発生した場合
(ステップS60)、自己のCPU内のレジスタ値を退
避させ(ステップS61)、その後に自己のCPUに対
応するメッセージ書込み領域21−2に書かれているC
PU−IDおよびメッセージを読み出し、さらにそれら
の情報に基づいてどこからの通信でどのような内容かを
識別し、該当する処理タスクに渡す(ステップS6
2)。
【0013】次に、自己のCPUに対するメッセージ書
込み領域21−2内のセマフォフラグをクリアし(ステ
ップS63)、レジスタの値を復帰させ(ステップS6
4)、さらに割込み処理を終了して(ステップS6
5)、次の割込み要求に備えてリターンする。
込み領域21−2内のセマフォフラグをクリアし(ステ
ップS63)、レジスタの値を復帰させ(ステップS6
4)、さらに割込み処理を終了して(ステップS6
5)、次の割込み要求に備えてリターンする。
【0014】以上説明したように、このマルチプロセッ
サシステムによれば、CPUの数をnとした場合、共有
メモリ内のメッセージ書込み領域数を{n×(n−
1)}個にする必要がなくなってn個で足りるようにな
り、これにより前述のマルチプロセッサシステムで生じ
ていた共有メモリの容量不足の問題が解決される。
サシステムによれば、CPUの数をnとした場合、共有
メモリ内のメッセージ書込み領域数を{n×(n−
1)}個にする必要がなくなってn個で足りるようにな
り、これにより前述のマルチプロセッサシステムで生じ
ていた共有メモリの容量不足の問題が解決される。
【0015】
【発明が解決しようとする課題】この図18のマルチプ
ロセッサシステムにおいては、図19のステップS51
において通信相手がビジィー(Busy)であった場合
(セマフォフラグが“ON”の場合)には、エラーコー
ド(Busy)を設定して(ステップS54)、その旨
をCPU間通信の要求元へ通知し、リトライを促してい
る。しかし、この通信相手のビジィー(Busy)状態
が長く続くと、この要求元のCPU間通信のリトライ要
求動作およびステップS51,S54の通信相手のビジ
ィー(Busy)チェック、エラーコード(Busy)
の設定、リトライ催促のループを何度も行うことにな
り、CPUの負荷の増大につながる。
ロセッサシステムにおいては、図19のステップS51
において通信相手がビジィー(Busy)であった場合
(セマフォフラグが“ON”の場合)には、エラーコー
ド(Busy)を設定して(ステップS54)、その旨
をCPU間通信の要求元へ通知し、リトライを促してい
る。しかし、この通信相手のビジィー(Busy)状態
が長く続くと、この要求元のCPU間通信のリトライ要
求動作およびステップS51,S54の通信相手のビジ
ィー(Busy)チェック、エラーコード(Busy)
の設定、リトライ催促のループを何度も行うことにな
り、CPUの負荷の増大につながる。
【0016】なお、当然のことながら、従来技術では通
信相手のCPUに障害が発生している場合を想定して、
ある一定回数リトライを行ってもビジィー(Busy)
チェックにてビジィーの場合には、通信元CPUは通信
先CPUに障害が発生したと判断して異常時の処理を行
うよう構成されているが、その異常処理がされるまでの
間は上述のループ処理を行う必要がありCPUの負荷を
増大させていた。
信相手のCPUに障害が発生している場合を想定して、
ある一定回数リトライを行ってもビジィー(Busy)
チェックにてビジィーの場合には、通信元CPUは通信
先CPUに障害が発生したと判断して異常時の処理を行
うよう構成されているが、その異常処理がされるまでの
間は上述のループ処理を行う必要がありCPUの負荷を
増大させていた。
【0017】本発明はかかる問題点に鑑みてなされたも
のであり、その目的とするところは、共有メモリの容量
不足およびCPU間通信の通信元CPUの負荷増大を防
止することにある。
のであり、その目的とするところは、共有メモリの容量
不足およびCPU間通信の通信元CPUの負荷増大を防
止することにある。
【0018】
【課題を解決するための手段】図1は本発明に係る原理
説明図である。本発明のマルチプロセッサシステムにお
けるCPU間通信方式は、一つの形態として、複数のC
PU21 〜2n とそれらのCPUが共通にアクセスでき
る共有メモリ1とを有するマルチプロセッサシステムに
おいて、上記共有メモリには通信元CPUから通信先C
PUに送る必要のあるCPU間通信の各種パラメータを
格納するCPU間通信情報ブロックが上記CPUの数に
応じた数分設けられ、上記CPU間通信情報ブロックは
それが未使用の場合には共有メモリ内に存在する未使用
ブロックリンク情報にキューイングされ、また使用中の
場合には通信先の各CPU毎に存在するキューイング情
報にキューイングされることを特徴とするものである。
説明図である。本発明のマルチプロセッサシステムにお
けるCPU間通信方式は、一つの形態として、複数のC
PU21 〜2n とそれらのCPUが共通にアクセスでき
る共有メモリ1とを有するマルチプロセッサシステムに
おいて、上記共有メモリには通信元CPUから通信先C
PUに送る必要のあるCPU間通信の各種パラメータを
格納するCPU間通信情報ブロックが上記CPUの数に
応じた数分設けられ、上記CPU間通信情報ブロックは
それが未使用の場合には共有メモリ内に存在する未使用
ブロックリンク情報にキューイングされ、また使用中の
場合には通信先の各CPU毎に存在するキューイング情
報にキューイングされることを特徴とするものである。
【0019】また本発明のマルチプロセッサシステムに
おけるCPU間通信方式は、他の形態として、上記のマ
ルチプロセッサシステムにおけるCPU間通信におい
て、通信先の各CPU毎に、キューイングされているC
PU間通信情報ブロック数を格納する領域が設けられて
いることを特徴とするものである。
おけるCPU間通信方式は、他の形態として、上記のマ
ルチプロセッサシステムにおけるCPU間通信におい
て、通信先の各CPU毎に、キューイングされているC
PU間通信情報ブロック数を格納する領域が設けられて
いることを特徴とするものである。
【0020】また本発明のマルチプロセッサシステムに
おけるCPU間通信方式は、また他の形態として、上記
のマルチプロセッサシステムにおけるCPU間通信方式
において、CPU間通信フラグを設けることによって複
数のCPUが同時に共有メモリ内のCPU間通信情報ブ
ロック、キューイング情報、キューイングブロック数、
未使用ブロックリンク情報を書き換えないように構成し
たことを特徴とするものである。
おけるCPU間通信方式は、また他の形態として、上記
のマルチプロセッサシステムにおけるCPU間通信方式
において、CPU間通信フラグを設けることによって複
数のCPUが同時に共有メモリ内のCPU間通信情報ブ
ロック、キューイング情報、キューイングブロック数、
未使用ブロックリンク情報を書き換えないように構成し
たことを特徴とするものである。
【0021】
【作用】本発明のマルチプロセッサシステムにおけるC
PU間通信方式では、各CPUが他CPUに対して通信
を行うにあたっては、未使用ブロックリンク情報にキュ
ーイングされている未使用CPU間通信情報ブロックの
列からCPU間通信情報ブロックをはずし、そのCPU
間通信情報ブロックにCPU間通信の各種パラメータを
格納して通信先CPUのキューイング情報にキューイン
グさせる。これによりCPU間通信のために必要な共有
メモリの容量を小さくすることができ、また通信先CP
Uがビジィーのときにもその通信先CPUに関してキュ
ーイングしているCPU間通信情報ブロックを逐次に処
理すればよいのであるから通信元CPUが同じ処理を繰
り返して処理負担が増大するといったことがなくなる。
PU間通信方式では、各CPUが他CPUに対して通信
を行うにあたっては、未使用ブロックリンク情報にキュ
ーイングされている未使用CPU間通信情報ブロックの
列からCPU間通信情報ブロックをはずし、そのCPU
間通信情報ブロックにCPU間通信の各種パラメータを
格納して通信先CPUのキューイング情報にキューイン
グさせる。これによりCPU間通信のために必要な共有
メモリの容量を小さくすることができ、また通信先CP
Uがビジィーのときにもその通信先CPUに関してキュ
ーイングしているCPU間通信情報ブロックを逐次に処
理すればよいのであるから通信元CPUが同じ処理を繰
り返して処理負担が増大するといったことがなくなる。
【0022】このCPU間通信に際しては、通信先の各
CPU毎に、キューイングされているCPU間通信情報
ブロック数を格納することができる。
CPU毎に、キューイングされているCPU間通信情報
ブロック数を格納することができる。
【0023】またCPU間通信フラグを設けることによ
って複数のCPUが同時に共有メモリ内のCPU間通信
情報ブロック、キューイング情報、キューイングブロッ
ク数、未使用ブロックリンク情報を書き換えないように
することができる。
って複数のCPUが同時に共有メモリ内のCPU間通信
情報ブロック、キューイング情報、キューイングブロッ
ク数、未使用ブロックリンク情報を書き換えないように
することができる。
【0024】
【実施例】以下、図面を参照して本発明の一実施例とし
てのマルチプロセッサシステムにおけるCPU間通信方
式を説明する。
てのマルチプロセッサシステムにおけるCPU間通信方
式を説明する。
【0025】図2には実施例のマルチプロセッサシステ
ムにおける共有メモリ内のCPU間通信領域が、また図
3にはCPU間通信情報ブロックの内容が示される。
ムにおける共有メモリ内のCPU間通信領域が、また図
3にはCPU間通信情報ブロックの内容が示される。
【0026】CPU間通信を行う際に、従来技術の項に
て述べた共有メモリの容量不足およびCPU間通信の通
信元CPUの負荷増大という従来技術における問題点を
解決するために、本実施例では図2に示すように共有メ
モリ内のCPU間通信領域に、CPU間通信情報書込み
領域をCPUの数(n個)分設けてブロック化してい
る。なお、以下の説明ではこのブロック化したCPU間
通信情報書込み領域をCPU間通信情報ブロックと呼
ぶ。
て述べた共有メモリの容量不足およびCPU間通信の通
信元CPUの負荷増大という従来技術における問題点を
解決するために、本実施例では図2に示すように共有メ
モリ内のCPU間通信領域に、CPU間通信情報書込み
領域をCPUの数(n個)分設けてブロック化してい
る。なお、以下の説明ではこのブロック化したCPU間
通信情報書込み領域をCPU間通信情報ブロックと呼
ぶ。
【0027】ここで、共有メモリ内には、CPU1,
2,・・・nにそれぞれ対応して各CPUに対して現在
CPU間通信処理動作中の全てのCPU間通信情報ブロ
ックをキューイングしているリンク情報(以下、キュー
イング情報と呼ぶ)、およびキューイングしているCP
U間通信情報ブロックの数(以下、キューイングブロッ
ク数と呼ぶ)が格納されている(図8〜14も参照)。
2,・・・nにそれぞれ対応して各CPUに対して現在
CPU間通信処理動作中の全てのCPU間通信情報ブロ
ックをキューイングしているリンク情報(以下、キュー
イング情報と呼ぶ)、およびキューイングしているCP
U間通信情報ブロックの数(以下、キューイングブロッ
ク数と呼ぶ)が格納されている(図8〜14も参照)。
【0028】図2の場合は全CPUともCPU間通信処
理動作を行っていないものとしているので、どの通信先
CPUについてもキューイングブロック数は「0」であ
り、またどの通信先CPUのキューイング情報にもCP
U間通信情報ブロックはキューイングされていない。一
方、未使用ブロックリンク情報にはn個の未使用のCP
U間通信情報ブロックがキューイングされている。
理動作を行っていないものとしているので、どの通信先
CPUについてもキューイングブロック数は「0」であ
り、またどの通信先CPUのキューイング情報にもCP
U間通信情報ブロックはキューイングされていない。一
方、未使用ブロックリンク情報にはn個の未使用のCP
U間通信情報ブロックがキューイングされている。
【0029】また、個々のCPU間通信情報ブロック内
の情報は、図3に示すように、従来のCPU間通信情報
書込み用固定領域に、新たにキューイング情報および通
信先CPU−IDの情報が加わった構成となっている。
ここで、キューイング情報は、当該CPU間通信情報ブ
ロックが未使用の場合には未使用ブロックリンク情報に
キューイングされ、使用中(CPU間通信処理動作中)
の場合には通信先CPUのキューイング情報にキューイ
ングされる。また通信先CPU−IDはCPU間通信要
求発行元CPUが通信先CPUのCPU−IDを記入す
る領域である。
の情報は、図3に示すように、従来のCPU間通信情報
書込み用固定領域に、新たにキューイング情報および通
信先CPU−IDの情報が加わった構成となっている。
ここで、キューイング情報は、当該CPU間通信情報ブ
ロックが未使用の場合には未使用ブロックリンク情報に
キューイングされ、使用中(CPU間通信処理動作中)
の場合には通信先CPUのキューイング情報にキューイ
ングされる。また通信先CPU−IDはCPU間通信要
求発行元CPUが通信先CPUのCPU−IDを記入す
る領域である。
【0030】また、共有メモリ内には複数のCPUが同
時にCPU間通信領域の内容を更新しないようにCPU
間通信フラグが設けられている。
時にCPU間通信領域の内容を更新しないようにCPU
間通信フラグが設けられている。
【0031】図4には実施例システムにおける割込みを
かける側のCPU(ここではCPU1とする)の割込み
発生までのフローチャートが、図5には割込み発生後の
フローチャートがそれぞれ示される。また図6には実施
例システムにおける割込みをかけられる側のCPU(こ
こではCPU2とする)のフローチャートが示される。
また図7の(A)にはCPU間割込み要求レジスタが、
図7の(B)、(C)にはCPU間割込み通知レジスタ
がそれぞれ示される。
かける側のCPU(ここではCPU1とする)の割込み
発生までのフローチャートが、図5には割込み発生後の
フローチャートがそれぞれ示される。また図6には実施
例システムにおける割込みをかけられる側のCPU(こ
こではCPU2とする)のフローチャートが示される。
また図7の(A)にはCPU間割込み要求レジスタが、
図7の(B)、(C)にはCPU間割込み通知レジスタ
がそれぞれ示される。
【0032】また図8〜図11には実施例における共有
メモリ内のCPU間通信領域の各種状態が示される。こ
の図8〜図11において、未使用ブロックリンク情報の
アドレスXには未使用ブロックリンク情報にキューイン
グされている未使用ブロックの先頭ブロックのアドレス
が記入され、アドレスYには末尾ブロックのアドレスが
記入される。したがって、図8の場合にはアドレスP1
のブロックを先頭にアドレスPnまでのブロック、すな
わちn個のブロックの全てが未使用ブロックリンク情報
にキューイングされていることになる。
メモリ内のCPU間通信領域の各種状態が示される。こ
の図8〜図11において、未使用ブロックリンク情報の
アドレスXには未使用ブロックリンク情報にキューイン
グされている未使用ブロックの先頭ブロックのアドレス
が記入され、アドレスYには末尾ブロックのアドレスが
記入される。したがって、図8の場合にはアドレスP1
のブロックを先頭にアドレスPnまでのブロック、すな
わちn個のブロックの全てが未使用ブロックリンク情報
にキューイングされていることになる。
【0033】一方、各CPU対応に設けられているリン
ク情報は、例えばCPU2の場合、キューイングブロッ
ク数として「0」が記入され、またキューイング情報と
して、CPU2についての先頭キューイングブロックの
アドレスを格納するアドレスAには「FFFF」、末尾
キューイングブロックのアドレスを格納するアドレスB
には「FFFF」がそれぞれ記入されている。ここでキ
ューイング情報の値「FFFF」はどのCPU間通信情
報ブロックもキューイングしていないことを示す。な
お、図8ではCPU2以外のCPUについては図示を省
略してあるが、各CPU1〜CPUn毎にキューイング
情報およびキューイングブロック数が存在する。
ク情報は、例えばCPU2の場合、キューイングブロッ
ク数として「0」が記入され、またキューイング情報と
して、CPU2についての先頭キューイングブロックの
アドレスを格納するアドレスAには「FFFF」、末尾
キューイングブロックのアドレスを格納するアドレスB
には「FFFF」がそれぞれ記入されている。ここでキ
ューイング情報の値「FFFF」はどのCPU間通信情
報ブロックもキューイングしていないことを示す。な
お、図8ではCPU2以外のCPUについては図示を省
略してあるが、各CPU1〜CPUn毎にキューイング
情報およびキューイングブロック数が存在する。
【0034】まず、図4のフローチャートを参照して実
施例のマルチプロセッサシステムにおける割込みをかけ
る側のCPUが割込みを発生させるまでのCPU間通信
処理動作を説明する。
施例のマルチプロセッサシステムにおける割込みをかけ
る側のCPUが割込みを発生させるまでのCPU間通信
処理動作を説明する。
【0035】まず、CPU1内のあるタスクがCPU2
に対してCPU間通信関連のシステムコールを発行する
と(ステップS90)、CPU1内のOS(オペレーテ
ィング・システム)は共有メモリ内のCPU間通信フラ
グ(図2参照)が“ON”か“OFF”かをチェックす
る(ステップS91)。このCPU間通信フラグが“O
N”の場合には“OFF”になるまで待つ。
に対してCPU間通信関連のシステムコールを発行する
と(ステップS90)、CPU1内のOS(オペレーテ
ィング・システム)は共有メモリ内のCPU間通信フラ
グ(図2参照)が“ON”か“OFF”かをチェックす
る(ステップS91)。このCPU間通信フラグが“O
N”の場合には“OFF”になるまで待つ。
【0036】一方、“OFF”の場合は該当フラグを
“ON”にし(ステップS92)、共有メモリ内の未使
用ブロックリンク情報の先頭にキューイングされている
未使用のCPU間通信情報ブロック(図8における斜線
が施されたブロック)をはずし(ステップS93)、そ
の後、未使用ブロックリンク情報の内容を更新する(ス
テップS94)。この更新は図9における斜線が施され
た部分に示すように、CPU2のキューイング情報とし
て、アドレスAの先頭キューイングブロック情報をP1
に、アドレスBの末尾キューイングブロック情報をP1
にするとともに、キューイングさせたCPU間通信情報
ブロックの内容としてその発行元CPU−IDを「1」
にする。また未使用ブロックリンク情報として、そのア
ドレスXの先頭ブロックのアドレスをP2に書き換える
“ON”にし(ステップS92)、共有メモリ内の未使
用ブロックリンク情報の先頭にキューイングされている
未使用のCPU間通信情報ブロック(図8における斜線
が施されたブロック)をはずし(ステップS93)、そ
の後、未使用ブロックリンク情報の内容を更新する(ス
テップS94)。この更新は図9における斜線が施され
た部分に示すように、CPU2のキューイング情報とし
て、アドレスAの先頭キューイングブロック情報をP1
に、アドレスBの末尾キューイングブロック情報をP1
にするとともに、キューイングさせたCPU間通信情報
ブロックの内容としてその発行元CPU−IDを「1」
にする。また未使用ブロックリンク情報として、そのア
ドレスXの先頭ブロックのアドレスをP2に書き換える
【0037】次にCPU1のOSは、ステップS93に
て獲得したCPU間通信情報ブロックに、ステップS9
0にて発行されたシステムコールのパラメータ(図3に
示すような発行元CPU−ID、発行先CPU−ID、
INT番号、AX,BX,CX,DX,その他の通信情
報)を書き込み(ステップS95)、また通信先CPU
(すなわちCPU2)に対応するキューイング情報に該
当CPU間通信情報ブロックをキューイングし、該当キ
ューイング情報を図9の斜線部に示すように更新する
(ステップS96)。
て獲得したCPU間通信情報ブロックに、ステップS9
0にて発行されたシステムコールのパラメータ(図3に
示すような発行元CPU−ID、発行先CPU−ID、
INT番号、AX,BX,CX,DX,その他の通信情
報)を書き込み(ステップS95)、また通信先CPU
(すなわちCPU2)に対応するキューイング情報に該
当CPU間通信情報ブロックをキューイングし、該当キ
ューイング情報を図9の斜線部に示すように更新する
(ステップS96)。
【0038】次にCPU1のOSは、通信先CPU(す
なわちCPU2)に対応するキューイングブロック数を
図9の斜線部に示すように+1し(ステップS97)、
CPU間通信フラグを“OFF”にする(ステップS9
8)。その後、図7の(A)に示すようなCPU間割込
み要求レジスタの通信先CPU(すなわちCPU2)に
対応するビットを“ON”にして、通信先CPUに割込
みを発生させる(ステップS99)。
なわちCPU2)に対応するキューイングブロック数を
図9の斜線部に示すように+1し(ステップS97)、
CPU間通信フラグを“OFF”にする(ステップS9
8)。その後、図7の(A)に示すようなCPU間割込
み要求レジスタの通信先CPU(すなわちCPU2)に
対応するビットを“ON”にして、通信先CPUに割込
みを発生させる(ステップS99)。
【0039】次に、実施例のマルチプロセッサシステム
における割込みをかけられた側のCPUのCPU間通信
処理動作を図6のフローチャートを参照して説明する。
における割込みをかけられた側のCPUのCPU間通信
処理動作を図6のフローチャートを参照して説明する。
【0040】まず他CPU(CPU1)からの割込みが
発生すると(ステップS100)、通信先CPU(CP
U2)のOSは図7の(B)に示すようなCPU間割込
み通知レジスタをチェックし、“ON”になっているビ
ットに対応するCPU(CPU1)からのCPU間通信
があったことを認識する(ステップS101)。
発生すると(ステップS100)、通信先CPU(CP
U2)のOSは図7の(B)に示すようなCPU間割込
み通知レジスタをチェックし、“ON”になっているビ
ットに対応するCPU(CPU1)からのCPU間通信
があったことを認識する(ステップS101)。
【0041】次にCPU2のOSは自CPUに対応する
キューイング情報にキューイングされているCPU間通
信情報ブロックをチェックし、発行元CPU−ID(図
3参照)にCPU間通信元CPUのID(CPU1)が
格納されているCPU間通信情報ブロックを見出す(ス
テップS102)。
キューイング情報にキューイングされているCPU間通
信情報ブロックをチェックし、発行元CPU−ID(図
3参照)にCPU間通信元CPUのID(CPU1)が
格納されているCPU間通信情報ブロックを見出す(ス
テップS102)。
【0042】次にCPU2内の処理タスクは、ステップ
S102にて見出されたCPU間通信情報ブロック内の
各種パラメータの内容を読み取り、CPU間通信に対応
した処理を実行する(ステップS103)。
S102にて見出されたCPU間通信情報ブロック内の
各種パラメータの内容を読み取り、CPU間通信に対応
した処理を実行する(ステップS103)。
【0043】その後、CPU間通信に対応した処理を終
えると、CPU2内の処理タスクは該当CPU間通信情
報ブロックに図10に示されるように終了情報やエラー
コード等の各種パラメータ(図3参照)を設定し(ステ
ップS104)、CPU間通信に対応した一通りの処理
を終了する(ステップS105)。
えると、CPU2内の処理タスクは該当CPU間通信情
報ブロックに図10に示されるように終了情報やエラー
コード等の各種パラメータ(図3参照)を設定し(ステ
ップS104)、CPU間通信に対応した一通りの処理
を終了する(ステップS105)。
【0044】次に、実施例のマルチプロセッサシステム
における割込みをかける側のCPUの割込み発生後のC
PU間通信処理動作を図5を参照して説明する。
における割込みをかける側のCPUの割込み発生後のC
PU間通信処理動作を図5を参照して説明する。
【0045】ステップS99にてCPU間割込み要求レ
ジスタの通信先CPU(CPU2)に対応するビットを
“ON”にして通信先CPUに割り込みを発生後、CP
U1のOSは定期的(例えば10msec毎)に該当CPU
間通信情報ブロックの終了情報(図10の斜線部)をチ
ェックし、通信先CPUが該当するCPU間通信に対応
する処理を終了したかどうかをチェックする(ステップ
S110)。終了情報の内容が処理終了でない場合は処
理終了になるまで上記チェックを行い、処理終了の場合
はCPU1内の処理タスクは該当ブロック内のエラーコ
ードやその他のパラメータを読み、CPU間通信に対応
した処理を実行する(ステップS111)。
ジスタの通信先CPU(CPU2)に対応するビットを
“ON”にして通信先CPUに割り込みを発生後、CP
U1のOSは定期的(例えば10msec毎)に該当CPU
間通信情報ブロックの終了情報(図10の斜線部)をチ
ェックし、通信先CPUが該当するCPU間通信に対応
する処理を終了したかどうかをチェックする(ステップ
S110)。終了情報の内容が処理終了でない場合は処
理終了になるまで上記チェックを行い、処理終了の場合
はCPU1内の処理タスクは該当ブロック内のエラーコ
ードやその他のパラメータを読み、CPU間通信に対応
した処理を実行する(ステップS111)。
【0046】なお通信先CPU(CPU2)に障害が発
生した場合、上記終了情報はいつまでたっても処理終了
にならないので、通信元CPUは通信先CPUに障害が
発生したと判断できる。
生した場合、上記終了情報はいつまでたっても処理終了
にならないので、通信元CPUは通信先CPUに障害が
発生したと判断できる。
【0047】その後、CPU1のOSは共有メモリ内の
CPU間通信フラグ(図2参照)が“OFF”になって
いるかどうかをチェックし(ステップS112)、“O
N”の場合は“OFF”になるまで待ち、“OFF”の
場合は該当フラグを“ON”にし(ステップS11
3)、通信先CPU(CPU2)のキューイング情報に
キューイングされている該当ブロックをはずし、図11
の斜線部に示すように該当キューイング情報を更新する
(ステップS114)。
CPU間通信フラグ(図2参照)が“OFF”になって
いるかどうかをチェックし(ステップS112)、“O
N”の場合は“OFF”になるまで待ち、“OFF”の
場合は該当フラグを“ON”にし(ステップS11
3)、通信先CPU(CPU2)のキューイング情報に
キューイングされている該当ブロックをはずし、図11
の斜線部に示すように該当キューイング情報を更新する
(ステップS114)。
【0048】その後、CPU1のOSは該当ブロックを
未使用ブロックリンク情報の最後尾にキューイングし、
図11の斜線部に示すように未使用ブロックリンク情報
を更新し(ステップS115)、通信先CPU(CPU
2)に対応するキューイングブロック数を図11の斜線
部に示すように(−1)する(ステップS116)。
未使用ブロックリンク情報の最後尾にキューイングし、
図11の斜線部に示すように未使用ブロックリンク情報
を更新し(ステップS115)、通信先CPU(CPU
2)に対応するキューイングブロック数を図11の斜線
部に示すように(−1)する(ステップS116)。
【0049】その後、CPU1のOSはCPU間通信フ
ラグを“OFF”にし(ステップS117)、割込み処
理を終了する(ステップS118)。
ラグを“OFF”にし(ステップS117)、割込み処
理を終了する(ステップS118)。
【0050】なお、本発明のCPU間通信フラグが“O
N”になったかどうかのチェック(図4のステップS9
1および図5のステップS112)にて、CPU間通信
フラグがずっと“ON”のままだと、通信元CPUのO
Sに当然負荷がかかるが、CPU間通信フラグが“O
N”の状態は図4のステップS92〜S98および図5
のステップS113〜S117の間のみであり、この間
の処理では通信元CPUのOSがキューイング情報、キ
ューイングブロック数、未使用ブロックリンク情報の更
新やCPU間通信情報ブロックのデキュー、エンキュー
および内容の更新しか行っておらず、この間の処理時間
は短く、よって通信元CPUにもほとんど負荷がかから
ない。
N”になったかどうかのチェック(図4のステップS9
1および図5のステップS112)にて、CPU間通信
フラグがずっと“ON”のままだと、通信元CPUのO
Sに当然負荷がかかるが、CPU間通信フラグが“O
N”の状態は図4のステップS92〜S98および図5
のステップS113〜S117の間のみであり、この間
の処理では通信元CPUのOSがキューイング情報、キ
ューイングブロック数、未使用ブロックリンク情報の更
新やCPU間通信情報ブロックのデキュー、エンキュー
および内容の更新しか行っておらず、この間の処理時間
は短く、よって通信元CPUにもほとんど負荷がかから
ない。
【0051】なお、従来技術では、通信元CPUが通信
先CPUにCPU間通信の割込みをかけた後、通信先C
PUがそのCPU間通信に関連する処理を終えるまでセ
マフォフラグは“ON”のままで、特に通信先CPUが
割込みによるCPU間通信情報を受信後に処理タスクが
行うCPU間通信に関連する処理(図6のステップS1
03(点線矢印部))に時間がかかる場合にかなりの負
荷がかかった。
先CPUにCPU間通信の割込みをかけた後、通信先C
PUがそのCPU間通信に関連する処理を終えるまでセ
マフォフラグは“ON”のままで、特に通信先CPUが
割込みによるCPU間通信情報を受信後に処理タスクが
行うCPU間通信に関連する処理(図6のステップS1
03(点線矢印部))に時間がかかる場合にかなりの負
荷がかかった。
【0052】次に、複数のCPUが連続して同一CPU
に対してCPU間通信の割込みを発生させた場合、すな
わち、ある特定のCPU(CPU2とする)に、ほぼ同
時に連続して複数の他CPUからCPU間通信関連のシ
ステムコールが発生した場合の処理手順について説明す
る。
に対してCPU間通信の割込みを発生させた場合、すな
わち、ある特定のCPU(CPU2とする)に、ほぼ同
時に連続して複数の他CPUからCPU間通信関連のシ
ステムコールが発生した場合の処理手順について説明す
る。
【0053】まずCPU1内にあるタスクがCPU2に
対してCPU間通信関連のシステムコールを発行した場
合の処理手順については、前述(図4〜図6のフローチ
ャートを参照)した通りである。ここで、例えばCPU
1内のあるタスクがCPU2に対して該当システムコー
ルを発行(図4のステップS90)後、CPU2内のO
Sと処理タスクが該当CPU間通信に対応する処理を終
了する(図6のステップS105)までの間に、他CP
U(CPU3とする)内のあるタスクがCPU2に対し
てCPU間通信関連のシステムコールを発行したものと
して、その場合の処理について以下に述べる。
対してCPU間通信関連のシステムコールを発行した場
合の処理手順については、前述(図4〜図6のフローチ
ャートを参照)した通りである。ここで、例えばCPU
1内のあるタスクがCPU2に対して該当システムコー
ルを発行(図4のステップS90)後、CPU2内のO
Sと処理タスクが該当CPU間通信に対応する処理を終
了する(図6のステップS105)までの間に、他CP
U(CPU3とする)内のあるタスクがCPU2に対し
てCPU間通信関連のシステムコールを発行したものと
して、その場合の処理について以下に述べる。
【0054】なお、割込みをかける側のCPU(CPU
3)の割込み発生までのフローチャートは図4に示すも
のであり、割込みをかけられる側のCPU(CPU2)
のフローチャートは図6に示すものであり、割込みをか
ける側のCPU(CPU3)の割込み発生後のフローチ
ャートは図5に示すものであり、処理手順自体は変わら
ない。
3)の割込み発生までのフローチャートは図4に示すも
のであり、割込みをかけられる側のCPU(CPU2)
のフローチャートは図6に示すものであり、割込みをか
ける側のCPU(CPU3)の割込み発生後のフローチ
ャートは図5に示すものであり、処理手順自体は変わら
ない。
【0055】CPU1内のあるタスクがCPU2に対し
てCPU間通信関連のシステムコールを発行した後、C
PU1のOSは図4のステップS91〜S99の処理を
連続して行い、CPU2に対してCPU間通信をするた
めの割込みを発生させるが、その時点での共有メモリ内
の未使用ブロックリンク情報とキューイングされている
CPU間通信情報ブロック、およびCPU2のキューイ
ングブロック数、CPU2のキューイング情報と該当キ
ューイング情報にキューイングされているCPU間通信
情報ブロックの状態は図8に示す通りである。
てCPU間通信関連のシステムコールを発行した後、C
PU1のOSは図4のステップS91〜S99の処理を
連続して行い、CPU2に対してCPU間通信をするた
めの割込みを発生させるが、その時点での共有メモリ内
の未使用ブロックリンク情報とキューイングされている
CPU間通信情報ブロック、およびCPU2のキューイ
ングブロック数、CPU2のキューイング情報と該当キ
ューイング情報にキューイングされているCPU間通信
情報ブロックの状態は図8に示す通りである。
【0056】その後、CPU2のOSと処理タスクが上
記割込みによるステップS101〜S105の処理を終
了する前に、CPU3内にあるタスクがCPU2に対し
てCPU間通信関連のシステムコールを発行(図4のス
テップS90)すると、CPU3のOSは該当CPU間
通信の割込みに関連する図4のステップS91〜S99
の処理を行う。図12にはその処理実行直後の共有メモ
リ内のCPU間通信領域の状態が示される。また図7の
(C)にはそのときのCPU間割込み通知レジスタの状
態が示される。
記割込みによるステップS101〜S105の処理を終
了する前に、CPU3内にあるタスクがCPU2に対し
てCPU間通信関連のシステムコールを発行(図4のス
テップS90)すると、CPU3のOSは該当CPU間
通信の割込みに関連する図4のステップS91〜S99
の処理を行う。図12にはその処理実行直後の共有メモ
リ内のCPU間通信領域の状態が示される。また図7の
(C)にはそのときのCPU間割込み通知レジスタの状
態が示される。
【0057】その後、CPU2のOSと処理タスクはC
PU1およびCPU3からのCPU間通信の割込みによ
るステップS101〜S105の処理を行う。CPU1
からのCPU間通信の割込みによるステップS101〜
S105の処理を未だ行ってない場合、どちらのCPU
からの割込みによる処理を先に行うかは任意であるが、
本実施例ではCPU1からの割込みによる処理を先に行
うものとして記述する。
PU1およびCPU3からのCPU間通信の割込みによ
るステップS101〜S105の処理を行う。CPU1
からのCPU間通信の割込みによるステップS101〜
S105の処理を未だ行ってない場合、どちらのCPU
からの割込みによる処理を先に行うかは任意であるが、
本実施例ではCPU1からの割込みによる処理を先に行
うものとして記述する。
【0058】図13にはCPU1からのCPU間通信に
よりCPU2のOSと処理タスクがCPU1からの割込
みによるステップS101〜S105の処理を終え、そ
の後にCPU1のOSと処理タスクがステップS110
〜S117の処理を終了後の共有メモリ内のCPU間通
信領域の状態が示される。
よりCPU2のOSと処理タスクがCPU1からの割込
みによるステップS101〜S105の処理を終え、そ
の後にCPU1のOSと処理タスクがステップS110
〜S117の処理を終了後の共有メモリ内のCPU間通
信領域の状態が示される。
【0059】また図14には、CPU3からのCPU間
通信によりCPU2のOSと処理タスクがステップS1
01〜S105の処理を終えた後、CPU3のOSと処
理タスクがステップS110〜S117の処理を終えた
後の共有メモリ内のCPU間通信領域の状態が示され
る。なお図中のキューイング情報の値「FFFF」はど
のCPU間通信情報ブロックをもキューイングしていな
いことを示しており、また図中ではキューイング情報お
よびキューイングブロック数はCPU2以外のCPUに
ついては図示を省略してあるが、各CPU1〜CPUn
毎に存在している。
通信によりCPU2のOSと処理タスクがステップS1
01〜S105の処理を終えた後、CPU3のOSと処
理タスクがステップS110〜S117の処理を終えた
後の共有メモリ内のCPU間通信領域の状態が示され
る。なお図中のキューイング情報の値「FFFF」はど
のCPU間通信情報ブロックをもキューイングしていな
いことを示しており、また図中ではキューイング情報お
よびキューイングブロック数はCPU2以外のCPUに
ついては図示を省略してあるが、各CPU1〜CPUn
毎に存在している。
【0060】図12〜図14の斜線部は、共有メモリ内
のCPU間通信領域内の状態が図9→図12→図13→
図14の順で変化していくが、1つ前の状態と比較して
変化のあった部分を示す。
のCPU間通信領域内の状態が図9→図12→図13→
図14の順で変化していくが、1つ前の状態と比較して
変化のあった部分を示す。
【0061】3つ以上のCPUが連続して同一CPUに
対してCPU間通信の割り込みを発生させた場合の本発
明による処理手順については、上述した図4〜図6のフ
ローチャートの手順が順不同に繰り返して行われること
になる。
対してCPU間通信の割り込みを発生させた場合の本発
明による処理手順については、上述した図4〜図6のフ
ローチャートの手順が順不同に繰り返して行われること
になる。
【0062】なお最大n個のCPUの存在するマルチプ
ロセッサシステムにおいて、あるCPUに対してCPU
間通信の可能なCPUの数は(n−1)個であり、また
1つのCPUが同時に複数のCPUに対してCPU間通
信を行うことはないため、CPU間通信情報ブロックの
数はn個あれば対応可能である。
ロセッサシステムにおいて、あるCPUに対してCPU
間通信の可能なCPUの数は(n−1)個であり、また
1つのCPUが同時に複数のCPUに対してCPU間通
信を行うことはないため、CPU間通信情報ブロックの
数はn個あれば対応可能である。
【0063】
【発明の効果】以上に説明したように、本発明によれ
ば、従来技術における共有メモリの容量不足およびCP
U間通信の通信元CPUの負荷増大という問題点が解決
される。
ば、従来技術における共有メモリの容量不足およびCP
U間通信の通信元CPUの負荷増大という問題点が解決
される。
【図1】本発明に係る原理説明図である。
【図2】実施例のマルチプロセッサシステムにおける共
有メモリ内のCPU間通信領域を示す図である。
有メモリ内のCPU間通信領域を示す図である。
【図3】実施例のマルチプロセッサシステムにおけるC
PU間通信情報ブロックの例を示す図である。
PU間通信情報ブロックの例を示す図である。
【図4】実施例システムにおける割込みをかける側のC
PUのCPU間通信処理動作(割込みをかけるまで)を
示すフローチャートである。
PUのCPU間通信処理動作(割込みをかけるまで)を
示すフローチャートである。
【図5】実施例システムにおける割込みをかける側のC
PUのCPU間通信処理動作(割込み発生後)を示すフ
ローチャートである。
PUのCPU間通信処理動作(割込み発生後)を示すフ
ローチャートである。
【図6】実施例システムにおける割込みをかけられる側
のCPUのCPU間通信処理動作を示すフローチャート
である。
のCPUのCPU間通信処理動作を示すフローチャート
である。
【図7】CPU間割込み要求レジスタとCPU間割込み
通信レジスタを示す図である。
通信レジスタを示す図である。
【図8】実施例のマルチプロセッサシステムにおける共
有メモリ内のCPU間通信領域の初期状態を示す図であ
る。
有メモリ内のCPU間通信領域の初期状態を示す図であ
る。
【図9】実施例のマルチプロセッサシステムにおいてC
PU間通信の割込みをかける側のCPUが割込みをかけ
た直後の共有メモリ内のCPU間通信領域の状態を示す
図である。
PU間通信の割込みをかける側のCPUが割込みをかけ
た直後の共有メモリ内のCPU間通信領域の状態を示す
図である。
【図10】実施例のマルチプロセッサシステムにおいて
割込みをかけられる側のCPUが終了情報とエラー情報
等を格納した直後の共有メモリ内のCPU間通信領域の
状態を示す図である。
割込みをかけられる側のCPUが終了情報とエラー情報
等を格納した直後の共有メモリ内のCPU間通信領域の
状態を示す図である。
【図11】実施例のマルチプロセッサシステムにおいて
割込みをかける側のCPUが当該割込みに対応する一連
の処理を終えた後の共有メモリ内のCPU間通信領域の
状態を示す図である。
割込みをかける側のCPUが当該割込みに対応する一連
の処理を終えた後の共有メモリ内のCPU間通信領域の
状態を示す図である。
【図12】実施例のマルチプロセッサシステムにおいて
CPU3のOSがステップ91〜S99の処理実行直後
の共有メモリ内のCPU間通信領域の状態を示す図であ
る。
CPU3のOSがステップ91〜S99の処理実行直後
の共有メモリ内のCPU間通信領域の状態を示す図であ
る。
【図13】実施例のマルチプロセッサシステムにおいて
CPU1からのCPU間通信によりCPU2のOSや処
理タスクがステップS101〜S105の処理を終えた
後、CPU1のOSや処理タスクがステップS110〜
S117の処理を終えた後の共有メモリ内のCPU間通
信領域の状態を示す図である。
CPU1からのCPU間通信によりCPU2のOSや処
理タスクがステップS101〜S105の処理を終えた
後、CPU1のOSや処理タスクがステップS110〜
S117の処理を終えた後の共有メモリ内のCPU間通
信領域の状態を示す図である。
【図14】実施例のマルチプロセッサシステムにおいて
CPU3からのCPU間通信によりCPU2のOSや処
理タスクがステップS101〜S105の処理を終えた
後、CPU3のOSや処理タスクがステップS110〜
S117の処理を終えた後の共有メモリ内のCPU間通
信領域の状態を示す図である。
CPU3からのCPU間通信によりCPU2のOSや処
理タスクがステップS101〜S105の処理を終えた
後、CPU3のOSや処理タスクがステップS110〜
S117の処理を終えた後の共有メモリ内のCPU間通
信領域の状態を示す図である。
【図15】マルチプロセッサシステムの構成例を示す図
である。
である。
【図16】従来のマルチプロセッサシステムにおける共
通メモリ内のCPU間通信領域の例を示す図である。
通メモリ内のCPU間通信領域の例を示す図である。
【図17】CPU間通信情報書込み用固定領域の従来例
を示す図である。
を示す図である。
【図18】従来の他のマルチプロセッサシステムにおけ
る共有メモリ内のCPU間通信領域の例を示す図であ
る。
る共有メモリ内のCPU間通信領域の例を示す図であ
る。
【図19】従来システムにおける割込みをかける側のC
PUのCPU間通信処理動作を示すフローチャートであ
る。
PUのCPU間通信処理動作を示すフローチャートであ
る。
【図20】従来システムにおける割込みをかけられる側
のCPUのCPU間通信処理動作を示すフローチャート
である。
のCPUのCPU間通信処理動作を示すフローチャート
である。
11、21 共通メモリ 12、22 システムバス CPU1〜CPUn 中央処理装置
Claims (3)
- 【請求項1】 複数のCPU(21 〜2n )とそれらの
CPUが共通にアクセスできる共有メモリ(1)とを有
するマルチプロセッサシステムにおいて、 上記共有メモリには通信元CPUから通信先CPUに送
る必要のあるCPU間通信の各種パラメータを格納する
CPU間通信情報ブロックが上記CPUの数に応じた数
分設けられ、 上記CPU間通信情報ブロックはそれが未使用の場合に
は共有メモリ内に存在する未使用ブロックリンク情報に
キューイングされ、また使用中の場合には通信先の各C
PU毎に存在するキューイング情報にキューイングされ
ることを特徴とするマルチプロセッサシステムにおける
CPU間通信方式。 - 【請求項2】 請求項1記載のマルチプロセッサシステ
ムにおけるCPU間通信方式において、 通信先の各CPU毎に、キューイングされているCPU
間通信情報ブロック数を格納する領域が設けられている
ことを特徴とするマルチプロセッサシステムにおけるC
PU間通信方式。 - 【請求項3】 請求項1または2記載のマルチプロセッ
サシステムにおけるCPU間通信方式において、 CPU間通信フラグを設けることによって複数のCPU
が同時に共有メモリ内のCPU間通信情報ブロック、キ
ューイング情報、キューイングブロック数、未使用ブロ
ックリンク情報を書き換えないように構成したことを特
徴とするマルチプロセッサシステムにおけるCPU間通
信方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5045808A JPH06243104A (ja) | 1993-02-10 | 1993-02-10 | マルチプロセッサシステムにおけるcpu間通信方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5045808A JPH06243104A (ja) | 1993-02-10 | 1993-02-10 | マルチプロセッサシステムにおけるcpu間通信方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06243104A true JPH06243104A (ja) | 1994-09-02 |
Family
ID=12729564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5045808A Withdrawn JPH06243104A (ja) | 1993-02-10 | 1993-02-10 | マルチプロセッサシステムにおけるcpu間通信方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06243104A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716520B2 (en) | 2005-02-07 | 2010-05-11 | Fujitsu Limited | Multi-CPU computer and method of restarting system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5993714U (ja) * | 1982-12-16 | 1984-06-26 | 雄和工業機械株式会社 | 目づまり除去装置付ドラムスクリ−ン |
-
1993
- 1993-02-10 JP JP5045808A patent/JPH06243104A/ja not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5993714U (ja) * | 1982-12-16 | 1984-06-26 | 雄和工業機械株式会社 | 目づまり除去装置付ドラムスクリ−ン |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716520B2 (en) | 2005-02-07 | 2010-05-11 | Fujitsu Limited | Multi-CPU computer and method of restarting system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4956771A (en) | Method for inter-processor data transfer | |
US5940612A (en) | System and method for queuing of tasks in a multiprocessing system | |
US5010482A (en) | Multi-event mechanism for queuing happened events for a large data processing system | |
JP3889879B2 (ja) | 仮想メモリ変換を制御する方法 | |
JPH0844681A (ja) | 複数の処理装置により共用される資源の集中管理 | |
JP2005056067A (ja) | Dma転送制御装置 | |
JPH0997184A (ja) | 効率的な割込み処理を含む情報処理システム | |
US6715059B2 (en) | Methods and systems for a shared memory unit with extendable functions | |
JPH1173365A (ja) | データ移動操作を最適化する方法 | |
JPH06243104A (ja) | マルチプロセッサシステムにおけるcpu間通信方式 | |
JPH0798663A (ja) | 非同期i/o制御方式 | |
JPH02242434A (ja) | タスクのスケジューリング方法 | |
JP2804478B2 (ja) | タスク制御方式及びオンライン・トランザクション・システム | |
JP7054688B2 (ja) | 同期制御システムおよび同期制御方法 | |
WO2007049543A1 (ja) | 演算装置 | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
JPH02213976A (ja) | 多重処理コンピユータ及びプロセツサ間通信方法 | |
JPH09282297A (ja) | デュアルポートメモリを用いたcpu間通信シス テム | |
JPH0376500B2 (ja) | ||
JPH11249917A (ja) | 並列型計算機及びそのバッチ処理方法及び記録媒体 | |
JPH0376497B2 (ja) | ||
JP2004086921A (ja) | マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法 | |
JPH0573507A (ja) | 電子計算機間メツセージ交信時の救済装置 | |
JPH11259430A (ja) | マルチプロセッサ排他制御方法および制御装置 | |
JPH07111711B2 (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: 20000509 |