(57)【特許請求の範囲】
【請求項１】
複数のプロセッサ各々と外部コントローラとからそれぞれアクセス可能な複数のバンクメモリと、前記複数のバンクメモリに対する複数のプロセッサ各々及び前記外部コントローラからのアクセス対象を制御するメモリ制御手段とを含むバンク切替システムであって、前記メモリ制御手段は、前記複数のプロセッサそれぞれに対応して設けられ対応するプロセッサからバンク切替制御が可能かどうかを示す切替プロセッサ指定フラグと、前記複数のプロセッサそれぞれに対応して設けられ対応するプロセッサからのバンク切替要求指令が入力された場合にセットされるバンク切替要求フラグとを有し、前記切替プロセッサ指定フラグの内容と前記バンク切替要求フラグの内容とが前記複数のプロセッサ全てにおいて一致したことに応答して前記複数のプロセッサによるアクセス対象をあるバンクメモリに切替え、かつ、前記外部コントローラによるアクセス対象を他のバンクメモリに切替えるように制御することを特徴とするバンク切替システム。
【請求項２】
前記切替プロセッサ指定フラグは、新たに追加されたプロセッサについても該プロセッサからバンク切替制御が可能かどうかを示し、前記バンク切替要求フラグは、新たに追加されたプロセッサについても該プロセッサからバンク切替要求指令が入力された場合にセットされることを特徴とする請求項１に記載のバンク切替システム。
【請求項３】
前記メモリ制御手段は、前記複数のプロセッサそれぞれの動作状態を監視するステータス監視手段を更に含み、故障等の異常状態が検出されたプロセッサに対応する前記切替プロセッサ指定フラグのセット状態を解除することを特徴とする請求項１又は２に記載のバンク切替システム。
【請求項４】
前記メモリ制御手段は、アクセス対象をあるバンクメモリから他のバンクメモリに切替える切替動作を行っていることを示すフラグを更に有し、このフラグの内容によって前記複数のプロセッサそれぞれに切替完了の有無を通知することを特徴とする請求項１〜３のいずれか１項に記載のバンク切替システム。
【請求項５】
前記バンクメモリは、前記複数のプロセッサ及び前記外部コントローラからそれぞれ独立にアクセス可能な複数の記憶領域を有することを特徴とする請求項１〜４のいずれか１項に記載のバンク切替システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバンク切替システムに関し、特に複数のプロセッサによって１つのメモリ空間をアクセスし、各種の制御や処理等を行うマルチプロセッサシステムにおいて共有されるメモリ空間のバンク切替システムに関する。
【０００２】
【従来技術】
一般に、ある処理系と、それが使用するバンクメモリにおいて、そのバンク切替方式は２種類ある。すなわち、１つは、処理系の処理の進行とバンク切替のタイミングとは無関係である方式であり、もう１つは処理の進行に合わせて切り替える方式である。一般に、前者は非同期式と呼ばれ、後者は同期式と呼ばれる。
【０００３】
内部プロセッサ及び通信コントローラ等の外部コントローラによって２つのバンクメモリをアクセスする同期式システムの場合、一方のバンクメモリが内部プロセッサのアクセス対象であるとき、他方のバンクメモリは外部コントローラのアクセス対象であることになる。そして、バンクメモリの切替を行うことによって、内部プロセッサによるアクセス対象と外部コントローラによるアクセス対象とが切替わることになる。
【０００４】
複数の内部プロセッサからなるマルチプロセッサシステムの場合には、以下のようになる。すなわち、マルチプロセッサシステムを構成する複数のプロセッサから２つのバンクメモリをアクセスし、かつ、それらのバンクメモリを通信コントローラ等の外部コントローラもアクセスする場合、一方のバンクメモリが複数のプロセッサのアクセス対象であるとき、他方のバンクメモリは外部コントローラのアクセス対象であることになる。そして、バンクメモリの切替を行うことによって、複数のプロセッサによるアクセス対象と外部コントローラによるアクセス対象とが切替わることになる。
【０００５】
【発明が解決しようとする課題】
上述した同期式でバンク切替を行うようなシステムでは、その処理が複数のプロセッサによって実行されるような場合、以下の（１）〜（４）のような問題が起こりうる。
（１）切替の同期のタイミングの認識
プロセッサが１つである場合は、バンクメモリに対する処理が完結した時点でバンクを切り替えれば良いが、マルチプロセッサシステムにおいては、１つのプロセッサが処理を終えたとしても、他のプロセッサがどの状態であるか分からないため、勝手にバンク切替を行うわけにはいかない。つまり、あるプロセッサにとっての“同期”は、他のプロセッサにとっては非同期になる可能性があるため、互いに待ち合わせを行う必要が出てくる。しかし、他のプロセッサの動作を互いに監視する、すなわち待ち合わせを行っていることを意識することなく、自分の行ったバンク切替処理の完了を認識し、かつ複数プロセッサ間の同期を保証し、処理を簡素化したい。
【０００６】
（２）バンク領域の構成とアクセスするプロセッサの認識
マルチプロセッサシステムがアクセスするバンクメモリ領域が細分化され、複数ブロックある場合、すべての領域に対してすべてのプロセッサがアクセスするとは限らない。例えば、プロセッサ１、２、３が、３つの領域Ａ，Ｂ，Ｃに分かれたバンクをアクセスするとしたとき、領域Ａに対してはプロセッサ１、２が、領域Ｂに対してはプロセッサ１、２がアクセスするような場合が考えられる。このような場合、どのプロセッサがどの領域をアクセスするのか、また、そのバンクを切り替えて良いかどうかを認識し、アクセスを行うプロセッサ間のみの同期化を保証したい。
【０００７】
（３）プロセッサの故障、脱落時の待ち状態の回避
マルチプロセッサシステムが互いに処理の相互補償や、冗長化を行うようなシステムの場合、複数あるプロセッサのうちの１つが故障状態になったり、システムから脱落したような状況において、上記（１）、（２）の課題を解決するために切替処理の待ち合わせを行って同期化を行うと、故障／脱落したプロセッサが切替処理を行う事ができない結果として、待ち状態が継続してしまい、バンク切替処理が実行できないという問題がある。それを回避したい。
【０００８】
（４）プロセッサの新規追加、故障復旧時の対応
上記（３）のようなシステムの場合において、あるプロセッサを処理系として新たに追加したり、故障状態から復旧させるような機能をシステムとして持たせたい場合、バンクの切替処理を行うプロセッサの追加や、復旧したりする処理を他のプロセッサに影響無く実行したい。
【０００９】
本発明は上述した従来技術の欠点を解決するためになされたものであり、その目的は上記の待ち合わせを行っていることを意識することなく、自分の行ったバンク切替処理の完了を認識し、かつ複数プロセッサ間の同期を保証し、処理を簡素化しうるバンク切替システムを提供することである。
また、本発明の他の目的は、どのプロセッサがどの領域をアクセスするのか、また、そのバンクを切り替えて良いかどうかを認識し、アクセスを行うプロセッサ間のみの同期化を保証しうるバンク切替システムを提供することである。
【００１０】
さらに、本発明の別の目的は、プロセッサに故障や脱落が発生してもバンク切替処理を実行しうるバンク切替システムを提供することである。
本発明のさらに他の目的は、故障状態から復旧させるような機能をシステムとして持たせたい場合、バンクの切替処理を行うプロセッサの追加や、復旧したりする処理を他のプロセッサに影響無く実行しうるバンク切替システムを提供することである。
【００１１】
【課題を解決するための手段】
本発明の請求項１によるバンク切替システムは、複数のプロセッサ各々と外部コントローラとからそれぞれアクセス可能な複数のバンクメモリと、前記複数のバンクメモリに対する複数のプロセッサ各々及び前記外部コントローラからのアクセス対象を制御するメモリ制御手段とを含むバンク切替システムであって、前記メモリ制御手段は、前記複数のプロセッサそれぞれに対応して設けられ対応するプロセッサからバンク切替制御が可能かどうかを示す切替プロセッサ指定フラグと、前記複数のプロセッサそれぞれに対応して設けられ対応するプロセッサからのバンク切替要求指令が入力された場合にセットされるバンク切替要求フラグとを有し、前記切替プロセッサ指定フラグの内容と前記バンク切替要求フラグの内容とが前記複数のプロセッサ全てにおいて一致したことに応答して前記複数のプロセッサによるアクセス対象をあるバンクメモリに切替え、かつ、前記外部コントローラによるアクセス対象を他のバンクメモリに切替えるように制御することを特徴とする。
【００１４】
また、前記切替プロセッサ指定フラグは、新たに追加されたプロセッサについても該プロセッサからバンク切替制御が可能かどうかを示し、前記バンク切替要求フラグは、新たに追加されたプロセッサについても該プロセッサからバンク切替要求指令が入力された場合にセットされることを特徴とする。
そして、前記メモリ制御手段は、前記複数のプロセッサそれぞれの動作状態を監視するステータス監視手段を更に含み、故障等の異常状態が検出されたプロセッサに対応する前記切替プロセッサ指定フラグのセット状態を解除することを特徴とする。
【００１５】
さらにまた、前記メモリ制御手段は、アクセス対象をあるバンクメモリから他のバンクメモリに切替える切替動作を行っていることを示すフラグを更に有し、このフラグの内容によって前記複数のプロセッサそれぞれに切替完了の有無を通知することを特徴とする。なお、前記バンクメモリは、前記複数のプロセッサ及び前記外部コントローラからそれぞれ独立にアクセス可能な複数の記憶領域を有することを特徴とする。
【００１６】
要するに、本システムでは、フラグを用意し、このフラグの内容に応じてバンク切替動作を行っているのである。これにより、マルチプロセッサによる同期バンク切替を行うシステムにおいて、ある１つのプロセッサが処理を終えたとき、他のプロセッサの状態を認識せずに、独自のタイミングでバンク切替指令を発行できる。また、他のプロセッサの動作を互いに監視する、すなわち待ち合わせを行っていることを意識することなく、自分の行ったバンク切替処理の完了を認識すれば良いので、シングルプロセッサの処理と同様の簡素な処理でマルチプロセッサにおけるバンク切替えが行える。さらに、複数プロセッサ間の同期は保証される。
【００１７】
さらに、上述したバンク切替要求が入力された場合にセットされる切替要求フラグがすべてセットされた場合にのみバンク切替動作を行っているので、上記のバンク切替動作を複数の領域に対して行うことができ、プロセッサが複数存在することにより生じうる、各プロセッサ毎のメモリアクセス領域の組み合わせや違いにも、対応できる。
【００１８】
また、各プロセッサのステータスを検出し、その内容を確認した上で、バンク切替処理を行うことにより、バンク切替処理に参加している、ある１つのプロセッサが脱落した場合においても、各プロセッサの切替要求の発行を待ち合わせていることにより生じうる、故障による待ち状態の継続を回避できる。さらに、あるプロセッサが新規に加入したり、故障から復旧したような場合に、他のすでにバンク切替処理を行っているプロセッサの動作に影響を及ぼすことなく、バンク切替処理に参加させることができる。
【００１９】
【発明の実施の形態】
次に、図面を参照して本発明の実施の形態について説明する。なお、以下の説明において参照する各図では、他の図と同等部分は同一符号によって示されている。
図１は本発明によるバンク切替システムの実施の一形態を示すブロック図である。同図に示されているように、本実施形態によるバンク切替システムは、複数のＣＰＵ(Central Processing Unit)１〜３と、これらＣＰＵ１〜３によっていずれか一方がアクセスされるバンクメモリ１０及び２０と、これらバンクメモリ１０及び２０の一方がＣＰＵ１〜３によってアクセスされているときそれらバンクメモリの他方をアクセスする通信コントローラ３０とを含んで構成されている。なお、これらのバンクメモリ１０及び２０は、各ＣＰＵ１〜３及び通信コントローラ３０によってそれぞれ独立にアクセス可能な複数の記憶領域を有しているものとする。そして、これらのバンクメモリ１０及び２０に対するアクセスは、バススイッチ１０２及び１０３によって切替制御される、バス３００を介して行われる。
【００２０】
また、本システムは、バンク切替制御のために後述する各フラグを保持するバンク切替インタフェース（ＩＦ）領域１００と、それら各フラグの内容に応じてバススイッチ１０２及び１０３の切替制御を行うメモリコントローラ１０１とを含んで構成されている。
図２は、図１に示されているバンク切替システムのより具体的な構成例を示すブロック図である。同図に示されているシステムでは、バンクメモリ１００内が複数の領域に分かれている。本例では、領域Ａについてのフラグ、領域Ｂについてのフラグ、領域Ｃについてのフラグという、３つの領域に分かれている。そして、それらの領域には、それぞれ切替プロセッサ指定フラグ、及びバンク切替要求フラグ、バンク切替完了フラグがそれぞれ保持されている。
【００２１】
図３には、切替プロセッサ指定フラグ、及びバンク切替要求フラグ、バンク切替完了フラグの詳細例が示されている。
切替プロセッサ指定フラグは、各領域に対してどのＣＰＵがアクセス可能であり、バンク切替指定できるかを示すフラグである。すなわち、このフラグが“１”のとき、対応する領域にＣＰＵがアクセス可能であり、バンク切替指定できることを示す。一方、このフラグが“０”のとき、対応する領域にＣＰＵがアクセス不可能であり、バンク切替指定できないことを示す。
【００２２】
バンク切替要求フラグは、ＣＰＵによるアクセスが完了し、バンク切替が可能な状態であるかどうかを示すフラグである。すなわち、このフラグが“１”のとき、ＣＰＵからその領域に対するアクセスが完了し、バンク切替が可能な状態であることを示す。一方、このフラグが“０”のとき、ＣＰＵからその領域に対するアクセスが完了しておらず、バンク切替が不可能な状態であることを示す。
【００２３】
バンク切替完了フラグは、バンク切替動作が完了しているかどうかを示すフラグである。すなわち、このフラグが“１”のとき、バンク切替動作が完了していることを示す。一方、このフラグが“０”のとき、バンク切替動作中であることを示す。
以下、図２におけるバンク切替ＩＦ領域、すなわち領域Ａ，Ｂ，Ｃに対する切替プロセッサ指定フラグ、及びバンク切替要求フラグ、切替完了通知フラグの内容が図３に示されている状態であった場合の装置の動作について説明する。
【００２４】
図３において、切替プロセッサ指定フラグは、領域ＡについてはＣＰＵ１、３が、領域ＢについてはＣＰＵ２、３が、そして領域ＣについてはＣＰＵ１、２、３全てが切替要求を発行することを示している。
切替プロセッサ指定フラグは、各プロセッサが装置のイニシャル時などにバンク切替ＩＦ領域に設定する。また、イニシャル時の初期値として、メモリコントローラは全ての領域のバンク切替完了フラグをセットする。各ＣＰＵにとって、[切替完了フラグ＝セット、かつ、自分の切替要求フラグ＝未セット]の状態であるとき、まだそのバンクに対してアクセスしていないとして処理すれば良い。各ＣＰＵは、領域Ａ，Ｂ，Ｃについて、アクセスする処理が完了したら、切替要求フラグをセットするようにする。
【００２５】
システムのイニシャル後の運用状態において、各領域に対する各ＣＰＵ１〜３からの切替要求フラグを、メモリコントローラ１０１は常時認識する。そして、[切替プロセッサ指定フラグの内容＝切替要求フラグの内容]となったときに、メモリコントローラ１０１は、該当領域のバンク切替完了フラグを一旦クリアし、該当する領域のバンク切替を実行する。このバンク切替動作の実行後、メモリコントローラ１０１は完了フラグを再度セットする。図３では、領域Ａ及びＢについては切替要求フラグが揃っていないので、バンク切替動作は待ち合わせ状態となる。一方、領域Ｃに関しては切替プロセッサ指定フラグにビットをセットしたすべてのプロセッサからの要求が揃っているので、バンク切替が実行される。
【００２６】
図３は、領域Ｃのバンク切替が実行される寸前の時点を表しており、バンク切替が完了すると、メモリコントローラ１０１は該当する領域の切替完了フラグをセットするとともに、バンク切替要求フラグをクリアする。したがって、図３ではこの後、領域Ｃの切替完了フラグが“０”、切替要求フラグが“０００”となり、バンク切替完了後に領域Ｃの切替完了フラグが“１”となる。各ＣＰＵへの切替完了通知は、割り込みでも良いが、本例ではフラグを用いた通知としている。
【００２７】
あるＣＰＵが故障、またはバンク切替が不能の状態に陥った場合は、そのＣＰＵに該当する切替プロセッサ指定フラグをリセットすれば良い。図３において、例えばＣＰＵ３が故障状態になった場合は、切替プロセッサ指定フラグの領域Ａの値を“１０１”から“００１”に、領域Ｂを“１１０”から“０１０”に、領域Ｃを“１１１”から“０１１”にすれば良い。
【００２８】
逆に、上記の状態において、故障していたＣＰＵ３が復旧してきた場合は、ＣＰＵ３を新たに追加されたプロセッサとみなし、各領域のＣＰＵ３に該当するビットを再度セットするだけで良い。
ここで、図２に示されているシステムのバンク切替動作を実現するためのメモリコントローラ１０１の動作について、図４のフローチャートを参照して説明する。同図に示されているように、まず、メモリコントローラ１０１においては、バンク切替要求フラグの内容を検出する（ステップＳ１）。この検出したバンク切替要求フラグの内容が切替プロセッサ指定フラグの内容と一致するかどうか判断される（ステップＳ２）。両者の内容が一致した場合、バンク切替完了フラグを“０”にし（ステップＳ２→Ｓ３）、バンク切替動作を実行する（ステップＳ４）。この切替動作の後、バンク切替完了フラグを“１”にし、ステップＳ１に戻る（ステップＳ５）。
【００２９】
ステップＳ２においてフラグ同士の内容が一致しなかった場合は、そのままステップＳ１に戻り（ステップＳ２→Ｓ１）、以後は、以上の処理を継続して行う。つまり、メモリコントローラ１０１は、切替要求フラグの内容が切替プロセッサ指定フラグの内容と一致する場合にのみ、すなわちプロセッサ全てからバンク切替指令が入力されている場合にのみ、アクセスの対象となるバンクメモリを切り替えているのである。
【００３０】
本システムにおいては、上記の各フラグの内容に応じてバンク切替動作を行っているので、マルチプロセッサによる同期バンク切替を行うシステムにおいて、ある１つのプロセッサが処理を終えたとき、他のプロセッサの状態を認識せずに、独自のタイミングでバンク切替指令を発行することができる。また、他のプロセッサの動作を互いに監視する、すなわち待ち合わせを行っていることを意識することなく、自分の行ったバンク切替処理の完了を認識すれば良いので、シングルプロセッサの処理と同様の簡素な処理でマルチプロセッサにおけるバンク切替処理を行うことができる。さらに、複数プロセッサ間の同期は保証される。このため、上述した課題（１）を解決することができる。
【００３１】
さらに、上述した切替要求フラグがすべてセットされた場合にのみバンク切替動作を行っているので、上記のバンク切替動作を複数の領域に対して行うことができ、プロセッサが複数存在することにより生じうる、各プロセッサ毎のメモリアクセス領域の組み合わせや違いにも、対応することができる。このため、上述した課題（２）を解決することができる。
【００３２】
図５には、本発明の他の実施形態によるバンク切替システムが示されている。同図に示されているシステムは、図２のシステムに、メモリコントローラ１０１が各プロセッサのステータスを監視するためのステータス領域２００を追加して設けた構成である。すなわち、このステータス領域２００には、各ＣＰＵ１〜３に対応してＣＰＵ１のステータス、ＣＰＵ２のステータス、ＣＰＵ３のステータスがそれぞれ保持されており、この保持されているステータスをメモリコントローラ１が検出することによって、ＣＰＵの故障等の異常を検出するのである。
【００３３】
ここで、図５に示されているシステムのバンク切替動作を実現するためのメモリコントローラの動作について、図６のフローチャートを参照して説明する。まず、メモリコントローラにおいては、切替要求フラグの内容を検出する（ステップＳ１）。この検出した切替要求フラグの内容が切替プロセッサ指定フラグの内容と一致するかどうか判断される（ステップＳ２）。両者の内容が一致した場合、バンク切替完了フラグを“０”にし（ステップＳ２→Ｓ３）、バンク切替動作を実行する（ステップＳ４）。この切替動作の後、バンク切替完了フラグを“１”にする（ステップＳ５）。この後、ＣＰＵステータスを検出する（ステップＳ６）。ステップＳ２においてフラグ同士の内容が一致しなかった場合も同様である（ステップＳ２→Ｓ６）。
【００３４】
ＣＰＵステータスを検出した結果、故障等でＣＰＵが異常である場合には、指定フラグを“０”にして、ステップＳ１に戻る（ステップＳ７→Ｓ８→Ｓ１）。一方、ＣＰＵステータスを検出した結果、ＣＰＵが正常である場合には、そのままステップＳ１に戻る（ステップＳ７→Ｓ１）。以後は、以上の処理を継続して行う。
【００３５】
本システムにおいては、プロセッサのステータスを検出し、その内容を確認した上で、バンク切替処理を行っている。これにより、バンク切替動作に参加している、ある１つのプロセッサが脱落した場合においても、各プロセッサの切替要求の発行を待ち合わせていることにより生じうる、故障による待ち状態の継続を回避することができる。よって、上述した課題（３）を解決することができる。さらに、あるプロセッサが新規に加入したり、故障から復旧したような場合に、他のすでにバンク切替動作を行っているプロセッサの動作に影響を及ぼすことなく、バンク切替動作に参加させることができる。よって、上述した課題（４）を解決することができる。このため、実際にはプロセッサがバンクメモリとネットワーク経由でリモート接続されているような場合に非常に有効である。
【００３６】
すなわち、マルチプロセッサシステムにおいて、各プロセッサが同一のハードウェア上に実装され、パラレルバスなどで互いに接続されている場合は、そのシステム内である１つのプロセッサのみが故障したり、またそのシステムにプロセッサを追加したりするようなことはあまり行われない。しかし、各プロセッサがネットワークによって接続され、共通の資源をバンクメモリ上に配置し、同期して独立した処理を行うような処理系は、ＦＡ（Factory Automation）制御機器などで良く見られる構成である。このようなシステムでは、ある１つの処理を担当するプロセッサ・モジュールが故障したり、追加されたりしても、全体の処理を継続して行うことを期待されることが多い。
【００３７】
本例に挙げたような、同期式のバンクメモリシステムは、マルチ、シングルプロセッサに関わらず、伝送データバッファのように、定期的にデータを更新して互いにやり取りするようなデータを格納するメモリによるデータの授受手段として用いられることが多い。
なお、以上は外部コントローラの例として通信コントローラの場合について説明したが、これに限定されずその他の各種コントローラについて本発明が適用しうることは明らかである。
【００３８】
つまり、本システムは、複数のプロセッサ（マルチプロセッサ）が共有する、バンク構造のバッファメモリを備えたシステムであり、バッファのバンクを、複数のプロセッサのうちどのプロセッサが切り替えるかを設定する切替プロセッサ指定フラグと、その各プロセッサに該当する切替要求フラグとを設け、切替プロセッサ指定フラグに指定のあるすべてのプロセッサからの切替要求フラグがセットされたことを検出したことに応答してバンク切替を行い、すべてのプロセッサに切替完了を通知しているのである。
【００３９】
また、領域毎に細分化された複数のバッファ領域を備え、各領域毎に上記切替プロセッサ指定フラグと、その各プロセッサに該当する切替要求フラグとを備え、各領域毎に切替プロセッサ指定フラグに指定のあるすべてのプロセッサからの切替要求フラグがセットされたことに応答して、該当する領域のバンク切替を行い、全てのプロセッサに領域毎の切替完了を通知するのである。
【００４０】
以上のようにフラグを用いて複数のプロセッサからの要求の待ち合わせ処理を行うことにより、マルチプロセッサシステムにおいて共有するバンクメモリ領域の同期化処理を実現できるのである。
さらに、バンクメモリ切替要求を発行する複数のプロセッサのステータスを監視する機能を設け、プロセッサのステータスが故障を示すような場合に、該当するプロセッサのすべての領域の切替プロセッサ指定フラグを自発的にリセットするのである。このように各プロセッサのステータスに応じてバンク切替処理を行うことにより、ある１つのプロセッサの故障状態が他の複数のプロセッサにより共有するバンクメモリの切替動作に影響を及ぼすことを防止できるのである。そして、ある１つのプロセッサが、バンク切り替えを行うホストとして新たに追加されたとき、これらが共有するバンクメモリの切替動作に影響を及ぼすことなくバンク切替動作に参加できるのである。
【００４１】
【発明の効果】
以上説明したように本発明は、各フラグの内容に応じてバンク切替動作を行うことにより、マルチプロセッサによる同期バンク切替を行うシステムにおいて、ある１つのプロセッサが処理を終えたとき、他のプロセッサの状態を認識せずに、独自のタイミングでバンク切替指令を発行することができるという効果がある。また、他のプロセッサの動作を互いに監視する、すなわち待ち合わせを行っていることを意識することなく、自分の行ったバンク切替処理の完了を認識すれば良いので、シングルプロセッサの処理と同様の簡素な処理でマルチプロセッサにおけるバンク切替処理を行うことができる。さらに、複数プロセッサ間の同期は保証される。
【００４２】
また、上述した切替要求フラグがすべてセットされた場合にのみバンク切替動作を行うことにより、上記のバンク切替動作を複数の領域に対して行うことができ、プロセッサが複数存在することにより生じうる、各プロセッサ毎のメモリアクセス領域の組み合わせや違いにも、対応することができるという効果がある。さらに、プロセッサのステータスを検出し、その内容を確認した上で、バンク切替処理を行うことにより、バンク切替動作に参加している、ある１つのプロセッサが脱落した場合においても、各プロセッサの切替要求の発行を待ち合わせていることにより生じうる、故障による待ち状態の継続を回避できるという効果がある。
【図面の簡単な説明】
【図１】本発明によるバンク切替システムの第１の実施形態を示すブロック図である。
【図２】図１のバンク切替システムのより具体的な構成を示すブロック図である。
【図３】各フラグの例を示す図である。
【図４】図２中の各部の動作を示すフローチャートである。
【図５】本発明によるバンク切替システムの第２の実施形態を示すブロック図である。
【図６】図５中の各部の動作を示すフローチャートである。
【符号の説明】
１〜３  ＣＰＵ
１０，２０  バンクメモリ
３０  通信コントローラ
１００  バンク切替ＩＦ領域
１０１  メモリコントローラ
１０２，１０３  バススイッチ
２００  ステータス領域
３００  バス
【図１】
0003903688.tif 000002
【図２】
0003903688.tif 000003
【図３】
0003903688.tif 000004
【図４】
0003903688.tif 000005
【図５】
0003903688.tif 000006
【図６】
0003903688.tif 000007