(57)【要約】【課題】マルチＣＰＵシステムにおけるバス調停においてバス使用優先順位を柔軟にして制御システムの制御効率を向上可能とすることである。【解決手段】複数のＣＰＵ１１，２１と、各ＣＰＵそれぞれに直接接続したバス１４，２４と、各バス１４，２４間それぞれに接続されて各ＣＰＵ１１，２１間でのバス使用の調停を行うバス調停部３とを有したマルチＣＰＵシステムにおけるバス調停方法において、バス調停部３が、各ＣＰＵ１１，２１の稼動状況および各バスの使用状況を監視すると共に、いずれかのＣＰＵからバスの使用要求があるとき、上記監視に基づいてそのＣＰＵの使用要求先バスに対するバス使用優先順位を他のＣＰＵのバス使用優先順位より高くするバス調停を行うことを可能とした。【選択図】図１
2009042888.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵと、各ＣＰＵそれぞれに直接接続したバスと、各バス間それぞれに接続されて各ＣＰＵ間でのバス使用の調停を行うバス調停部とを有したマルチＣＰＵシステムにおけるバス調停方法において、
上記バス調停部が、
各ＣＰＵの稼動状況および各バスの使用状況を監視すると共に、
いずれかのＣＰＵからバスの使用要求があるとき、上記監視に基づいてそのＣＰＵの使用要求先バスに対するバス使用優先順位を他のＣＰＵのバス使用優先順位より高くするバス調停を行うことを可能とした、マルチＣＰＵシステムにおけるバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵと、各ＣＰＵそれぞれに直接接続したバスと、各バス間それぞれに接続されて各ＣＰＵ間でのバス使用の調停を行うバス調停部とを有したマルチＣＰＵシステムにおけるバス調停方法に関するものである。
【背景技術】
【０００２】
マルチＣＰＵシステムを用いて制御を行う制御システムにおいて、マルチＣＰＵシステム内における各ＣＰＵはそれぞれに直接接続したバスに対してはバス使用権を優先的に有する。そのため、バス調停部では、例えばサブＣＰＵからメインＣＰＵのメインバスに対してバス使用要求があっても、メインＣＰＵがメインバスを使用中は、サブＣＰＵのメインバス使用要求を受け付けず、メインＣＰＵがメインバスを開放したときにサブＣＰＵのメインバス使用を許可するようなバス調停となっている。しかしながら、このようなバス調停では、メインＣＰＵがメインバスの使用権を長く保持してサブＣＰＵに渡さない場合では、サブＣＰＵにはバス使用権が回って来ずマルチＣＰＵシステムを用いた制御システムが破綻をきたす場合がある。
【０００３】
図５を参照して例えば複数のプログラマブルコントローラ（ＰＬＣ）４０，５０，６０からなる制御システムにおいて、メインＰＬＣ４０，５０，６０は、それぞれ、ＣＰＵ４１，５１，６１、メモリ４２，５２，６２、周辺部４３，５３，６３を有し、これらは内部バス４４，５４，６４で接続されている。メインＰＬＣ４０の内部バス４４にサブＰＬＣ５０，６０の内部バス５４と６４がバス調停部７０，８０で接続されている。
【０００４】
以上の構成を備えた制御システムにおいて、メインＰＬＣ４０ではメモリ４２に格納したメインプログラムを構成するプログラム要素を実行しつつ、その複数のプログラム要素の中で浮動小数点（ＦＰＵ）演算や比例微分積分（ＰＩＤ）演算等の各種演算を行うプログラム要素がある場合、メインＰＬＣ４０はその演算プログラムを演算を得意とする他の複数のサブＰＬＣ５０，６０に内部バス４４からそれぞれバス調停部７０，８０を介してサブＰＬＣ５０，６０の内部バス５４，６４に送り、それらサブＰＬＣ５０，６０のＣＰＵ５１，６１でＦＰＵ演算やＰＩＤ演算を行わせ、その演算結果をメインＰＬＣ４０のＣＰＵ４１に送るような制御システムがある。
【０００５】
この場合、従来では、バス調停部７０，８０は、メインＰＬＣ４０のＣＰＵ４１が自己のメインバス４４を使用してメインプログラムを実行しているときにはメインＰＬＣ４０のＣＰＵ４１のバス使用を優先し、サブＰＬＣ５０，６０のＣＰＵ５１，６１にメインバス４４の使用権を渡さない構成になっているために、サブＰＬＣ５０，６０のＣＰＵ５１，６１は上記演算を早く行っても、その演算結果をメインバス４４を介してメインＰＬＣ４０のＣＰＵ４１になかなか送ることができないから、結果として制御システムの処理動作の高速化に影響するなど、制御システムの破綻をきたす可能性がある。
【特許文献１】特開２０００−０１０９３４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、本発明により解決すべき課題は、上記したマルチＣＰＵシステムにおいて、バス調停部では、いずれかのＣＰＵからバス使用要求があった場合、各ＣＰＵの稼動状況やバスの使用状況から使用要求先バスの使用優先順位を高くできるバス調停方法を提供することにより、マルチＣＰＵシステムを用いた制御システムの制御効率を向上可能とすることである。
【課題を解決するための手段】
【０００７】
本発明によるマルチＣＰＵシステムにおけるバス調停方法は、複数のＣＰＵと、各ＣＰＵそれぞれに直接接続したバスと、各バス間それぞれに接続されて各ＣＰＵ間でのバス使用の調停を行うバス調停部とを有したマルチＣＰＵシステムにおけるバス調停方法において、上記バス調停部が、各ＣＰＵの稼動状況および各バスの使用状況を監視すると共に、いずれかのＣＰＵからバスの使用要求があるとき、上記監視に基づいてそのＣＰＵの使用要求先バスに対するバス使用優先順位を他のＣＰＵのバス使用優先順位より高くするバス調停を行うことが可能になっていることを特徴とするものである。
【０００８】
本発明によると、バス使用の要求元ＣＰＵが使用要求先バスを使用したい場合に使用要求先のＣＰＵがバス使用要求先バスを使用しているような場合、当該使用要求先バスに対する要求元ＣＰＵのバス使用優先順位を使用要求先ＣＰＵのそれよりも高くするバス調停を行うことができるようになるので、例えば、メインプログラムを実行するメインＰＬＣのＣＰＵが使用要求先ＣＰＵであり、要求元ＣＰＵが演算を行うサブＰＬＣのＣＰＵである場合に、サブＰＬＣは上記演算を早く行なうと、バス調停部により、サブＰＬＣのＣＰＵのメインバスに対するバス使用優先順位を高くしてもらってその演算結果をメインバスを介してメインＰＬＣのＣＰＵに早く送ることができるようになり、制御システムの処理動作を高速化し、制御システムの高効率化を図ることができるようになる。
【発明の効果】
【０００９】
本発明によれば、マルチＣＰＵシステムを用いた制御システムにおいて、複数のＣＰＵ間でのバスを介したデータや制御等の送受信を高効率で行うことができるようになり、制御システムの処理動作の高速化を図れる。
【発明を実施するための最良の形態】
【００１０】
以下、添付した図面を参照して、本発明の実施の形態に係るマルチＣＰＵシステムにおけるバス調停方法を説明する。図１は、実施の形態のバス調停方法を実施するマルチＣＰＵシステムの概略構成を示し、図２は同マルチＣＰＵシステムにおけるバス調停部の概略ブロック構成を示す。実施の形態ではマルチＣＰＵシステムとして説明の理解のため２つのＣＰＵを備えたシステムで説明するが、３つ以上のＣＰＵを有するマルチＣＰＵシステムを含むことは勿論である。
【００１１】
図１を参照してこのマルチＣＰＵシステムにおいては、制御システムに組み込まれる。この制御システムは、複数のコントローラとして、ＰＬＣ等のコントローラ１と、コントローラ２との２つを備える。実施の形態では説明の都合でコントローラを２つで説明するが、３以上のコントローラも含む。コントローラ１，２はそれぞれＣＰＵ１１．２１と、メモリ１２，２２と、周辺部１３，２３と、これらを相互接続する内部バス１４，２４とを含む。
【００１２】
なお、これらコントローラ１，２は、例えば、ＰＬＣであれば、機械や装置等を制御するため、ＣＰＵ１１，２１がインターフェースを介して共通バスに接続されたり、さらに、インターフェースを備えて、センサ等の入力機器やアクチュエータ等の出力機器等に接続されて構成されるが、本実施の形態はＣＰＵ１１，２１間でのバス調停に特徴があるので、それらの図示や説明は略し、簡略化した構成で示している。
【００１３】
内部バス１４，２４はバス調停部３で接続されている。
【００１４】
図２を参照してバス調停部３は、バス調停の中心であるＣＰＵ３１、バス使用優先順位管理部３２、ＣＰＵ稼動状況監視部３３、バス使用状況監視部３４、プログラムメモリ３５、作業メモリ３６、ＣＰＵ番号およびバス番号メモリ３７、入出力部３８を有する。
【００１５】
バス使用優先順位管理部３２は、内部バス１４，２４のバス使用優先順位を管理している。ＣＰＵ稼動状況監視部３３は、ＣＰＵ１１，２１の稼動状況を示す負荷率を監視している。バス使用状況監視部３４はＣＰＵ１１，２１による内部バス１４，２４の使用状況を監視している。プログラムメモリ３５は、バス調停部３のシステムプログラムやバス調停プログラム等が格納されている。作業メモリ３６は、ＣＰＵ３１がプログラムメモリ３５内のバス調停プログラムに従い各種演算を実行する上で用いる作業エリアを備える。ＣＰＵ番号およびバス番号メモリ３７は、ＣＰＵ１１，２１の番号と、内部バス１４，２４の番号とを記憶する。入出力部３８は、内部バス１４，２４の一方から他方へのデータ、制御信号、アドレス等を入出力する入出力部である。
【００１６】
ＣＰＵ稼動状況監視部３３とバス使用状況監視部３４は、それぞれＣＰＵ１１，２１の稼動状況と、内部バス１４，２４の使用状況を例えば図３で示すように監視している。図３（ａ）ではＣＰＵ１１の稼動状況が６０％であり、ＣＰＵ１１はフルに活動していない状況であるのに対して、内部バス１４の使用状況がＣＰＵ１１，２１で７０％で使われていて、まだ、内部バス１４は３０％使用していない空きがある状況を示す。図３（ｂ）では、ＣＰＵ２１の稼動状況が１００％あるいは１００％を超えている状況であるのに対して、内部バス２４の使用状況が０％であることを示す。なお、上記状況は説明のためであり、様々な状況がある。
【００１７】
以上の構成において、図４を参照してバス調停部３によるバス調停を説明すると、ステップｎ１で、ＣＰＵ３１は、ＣＰＵ稼動状況監視部３３とバス使用状況監視部３４内部のデータを読み出し、それぞれＣＰＵ１１，２１の稼動状況と、内部バス１４，２４の使用状況を例えば図３で示すように監視している。この監視データは、入出力部３８から内部バス１４，２４にアクセスし、また、この内部バス１４，２４を経由しＣＰＵ１１，２１にアクセスすることにより得る。監視データは例えば一定時間ごとに更新され、書き換えられる。
【００１８】
そして、ステップｎ２で、入出力部３８に対して例えばコントローラ２のＣＰＵ２１（バス使用要求元ＣＰＵ）からコントローラ１の内部バス１４（使用要求先バス）の使用要求があるとき、ステップｎ３で、ＣＰＵ３１は、バス使用優先順位管理部３２で管理しているバス使用優先順位情報から内部バス１４のバス使用優先順位をチェックする。
【００１９】
このバス使用要求があったときのバス使用優先順位は、コントローラ１内の内部バス１４ではＣＰＵ１１が第１優先順位であり、コントローラ２内の内部バス２４ではＣＰＵ２１が第１優先順位になっているものとする。
【００２０】
したがって、この場合、バス使用要求先の内部バス１４におけるバス使用優先順位は、ＣＰＵ１１が第１優先順位、ＣＰＵ２１が第２優先順位となっているので、ＣＰＵ２１が内部バス１４を使用できるように上記監視データを参照する。
【００２１】
この場合、いずれのＣＰＵ１１，２１からバス使用要求があったか、また、どの内部バス１４，２４に使用要求があるかをバス調停部３のＣＰＵ３１が判断できるようにするため、コントローラ２のＣＰＵ２１はバス使用要求を行う際にＣＰＵ２１自身のＣＰＵ番号と、使用要求先バスのバス番号とを付加する。
【００２２】
これにより、バス調停部３のＣＰＵ３１は、バス使用要求に付加されている使用要求元ＣＰＵ番号と使用要求先バス番号とをＣＰＵ番号およびバス番号メモリ３７に格納されているＣＰＵ番号とバス番号とを対照して上記判断を行う。
【００２３】
そして、上記監視データから使用要求先の内部バス１４にはその使用状況に空きがある場合、バス調停部３のＣＰＵ３１は、ステップｎ４でバス使用要求元のＣＰＵ２１の使用要求先の内部バス１４に対するバス使用優先順位を使用要求先側のＣＰＵ１１のバス使用優先順位より高くするバス調停を行う。この場合、バス調停部３は、コントローラ１のＣＰＵ１１が、内部バス１４を開放できないバス使用状況のときは、コントローラ２のＣＰＵ２１の内部バス２４に対するバス使用優先順位を高くするタイミングをコントローラ１のＣＰＵ１１の稼動状況を判断して決めるようにしてもよい。また、コントローラ１のＣＰＵ１１が、内部バス１４を全く使用していない稼動状況のときとか、ＣＰＵ１１が１００％稼動していても内部バス１４が１００％空きとなるバス使用状況のときでは、コントローラ２の使用要求元のＣＰＵ２１のバス使用要求先の内部バス１４に対するバス使用優先順位を高くするタイミングを即座に設定してもよい。また、コントローラ２のＣＰＵ２１の稼動状況が低い一方で、コントローラ１のＣＰＵ１１の稼動状況が高くても、コントローラ２のＣＰＵ２１の内部バス２４に対するバス使用優先順位を高く設定してもよい。
【００２４】
以上からバス調停部３は、コントローラ１のＣＰＵ１１の稼動状況、内部バス１４の使用状況、コントローラ２のＣＰＵ２１の稼動状況、内部バス２４の使用状況等から、ＣＰＵ１１，２１のバス使用優先順位を自由に任意に設定可能となっている。
【００２５】
このバス調停により、バス使用要求元のＣＰＵ２１は、バス使用要求先の内部バス１４のバス使用優先順位が、バス使用要求先にあるＣＰＵ１１より低くても、ＣＰＵ２１の内部バス２４に対するバス使用優先順位を高くして内部バス１４を使用することができるようになり、必要なコントローラ情報を内部バス１４を通じてコントローラ１のＣＰＵ１１に当該ＣＰＵ１１の活動状況に影響を及ぼさずに、送ることができる。
【００２６】
以上説明したように実施の形態では、バス調停部３により、各ＣＰＵ１１，２１の稼動状況および各バスの使用状況を監視し、例えばＣＰＵ２１からバス１４の使用要求があるとき、上記監視に基づいてそのＣＰＵ２１の使用要求先バス１４に対するバス使用優先順位をＣＰＵ１１のバス使用優先順位より高くするバス調停を行うことを可能としたことで、例えば、図５を参照して説明したマルチＣＰＵシステムを備えた制御システムにおいて、演算を得意とするサブＰＬＣ５０，６０では演算の結果を、メインのＰＬＣ４０のＣＰＵ４１がメインプログラムを実行中でも、当該ＣＰＵ４１に送ることができるようになり、当該制御システムの処理動作の高速化、高効率化を図ることができるようになる。
【図面の簡単な説明】
【００２７】
【図１】図１は本発明の実施の形態に係るマルチＣＰＵシステムを備えた制御システムの概略構成を示す図である。
【図２】図２は図１の制御システム内のバス調停部のブロック構成を示す図である。
【図３】図３はＣＰＵの稼動状況と、内部バスの使用状況を示す図である。
【図４】図４は動作説明に供するフローチャートである。
【図５】図５は従来のマルチＣＰＵシステムを備えた制御システムの概略構成を示す図である。
【符号の説明】
【００２８】
１，２  コントローラ
１１，２１  ＣＰＵ
１２，２２  メモリ
３  バス調停部
【図１】
2009042888.tif 000003
【図２】
2009042888.tif 000004
【図３】
2009042888.tif 000005
【図４】
2009042888.tif 000006
【図５】
2009042888.tif 000007