(57)【要約】      （修正有）【課題】一旦データ転送開始したら一定期間継続してバスアクセスするのを保証する通信制御装置を提供する。【解決手段】アービタ１５は、アービタ本体１５ａの出力側のマスタユニットと接続されるＢＧ用の制御線に直列に配置される第２マスク部３１（ＯＲ回路）と、アービタ本体がアクセス許可通知をＯＮ（１）にするのを契機としてカウントアップする第２タイマ部３２と、その第２タイマ部の出力（タイマ値）が、第２タイマ最大値記憶部３４にて設定された基準値を超えたか否かを比較する第２比較器３３を備えている。第２マスク部は、アービタ本体からバスアクセス許可通知の解消（ＢＧ＝０）を受け付けても、第２比較器２３の出力が０にならない限りクローズ（０）にされることはない。タイマ値が０の通常状態で出力が１で、タイマ値が基準値を超えたときに出力が０になるように構成することで、当該時間はデータ転送時間として確保される。【選択図】図１０
2006209707.tif 000002
【特許請求の範囲】
【請求項１】
制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットとの通信をする際の通信制御方法であって、
前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行し、
前記マスタユニットが前記バスアクセス権獲得要求を出力してから、そのバスアクセス権獲得要求が前記アービタ内のバスアクセス権許可通知を発行するアービタ本体に入力するまで所定時間遅らせるようにし、
かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにしたことを特徴とする通信制御方法。
【請求項２】
制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットと通信をする際の通信制御方法であって、
前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行するものであり、
前記アービタ内の前記バスアクセス権許可通知を発行するアービタ本体から、前記バスアクセ権許可通知を発行してから所定時間は、そのバスアクセス権許可通知を発行したマスタユニットに対するバスアクセス権を保持し、そのマスタユニットがデータ転送することを保証し、
かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにしたことを特徴とする通信制御方法。
【請求項３】
前記所定時間経過前に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、前記所定時間経過後に現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、
前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始することを特徴とする請求項２に記載の通信制御方法。
【請求項４】
前記所定時間経過後に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、
前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始することを特徴とする請求項２または３に記載の通信制御方法。
【請求項５】
前記所定時間経過後も他のマスタユニットからのバスアクセス権獲得要求が無い場合には、バスアクセス権を獲得したマスタユニットは、そのまま継続してデータ転送する請求項２から４のいずれか１項に記載の通信制御方法。
【請求項６】
前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であってもバスアクセス権獲得要求を出力している他のマスタユニットに対してバスアクセス許可通知を発行し、データ転送可能としたことを特徴とする請求項２から５のいずれか１項に記載の通信制御方法。
【請求項７】
前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であっても自己に与えられていたバスアクセス許可通知が解消され、そのマスタユニットが保持していたバスアクセス権が解消することを特徴とする請求項２から６のいずれか１項に記載の通信制御方法。
【請求項８】
バスアクセス権を獲得しデータ転送したマスタユニットが、そのデータ転送を完了した場合でも、他のマスタユニットからのバスアクセス権獲得要求が無い場合には、前記データ転送を完了したマスタユニットが、バスアクセス権を獲得した状態を保持することを特徴とする請求項１から７のいずれか１項に記載の通信制御方法。
【請求項９】
現在バスアクセス権を獲得しデータ転送中のマスタユニットに対し、バスアクセス許可通知が解消された場合に、現在データ転送中のデータが優先度の高いデータの場合には、そのまま継続してデータ転送を続行できるようにしたことを特徴とする請求項１から８のいずれか１項に記載の通信制御方法。
【請求項１０】
複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、
前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、
前記アービタは、
前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、
前記マスタユニットが出力したバスアクセス権獲得要求を前記アービタ本体に入力するのを一定時間遅延させるマスク機能とを備え、
前記マスク機能における遅延させる時間は、対応するマスタユニット毎に設定可能としたことを特徴とする制御装置。
【請求項１１】
複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、
前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、
前記アービタは、
前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、
前記アービタ本体が決定したマスタユニットに対し、前記アービタ本体が前記バスアクセス許可通知を発行してから一定期間は、そのマスタユニットに対するバスアクセス権を保持させる機能を備え、
そのバスアクセス権を保持させる一定期間は、マスタユニット毎に設定可能としたことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、通信制御方法および制御装置に関するもので、より具体的には、複数のマスタユニットが接続され、そのマスタユニットが内部バスを介して他のユニットとデータ転送する際の制御に関する。
【背景技術】
【０００２】
ＦＡ（ファクトリーオートメーション）で用いられるＰＬＣ（プログラマブルコントローラ）は、スイッチやセンサなどの入力機器のＯＮ／ＯＦＦ情報を入力し、ラダー言語などで書かれたシーケンスプログラム（ユーザプログラム）に沿って論理演算を実行する。そして、ＰＬＣは、得られた演算結果にしたがって、リレー，バルブ，アクチュエータなどの出力機器に対し、ＯＮ／ＯＦＦ情報の信号を出力することで制御が実行される。
【０００３】
このＰＬＣは、ユーザプログラムを実行するＣＰＵユニット，入力機器や出力機器が接続されてＯＮ／ＯＦＦ信号を扱うＩ／Ｏユニット，ネットワークを介して他の機器と通信する通信ユニット，各ユニットに電源供給する電源ユニットなど、各ユニットをつなぎ合わせて成り立っている。そして各ユニットを内部バスで接続して、ＣＰＵユニットを中心にして各ユニットとバス通信にてデータをやりとりするようになっている。
【０００４】
さらに、ＰＬＣの中には、ＣＰＵユニットのサイクルタイムを短縮するための一手段として、ＣＰＵユニットに加え複数のバスマスタユニットおよび複数のスレーブユニットを単一のバスに接続し、バスマスタユニットとスレーブユニット間でデータを交換するマルチバスマスタシステムを採用したものがある。このマルチバスマスタシステムは、複数のバスマスタユニットのうち、バスアクセス権を獲得した１つのバスマスタユニットのみが上記のバスを介して所定のスレーブユニットと通信が行なえるようしている。
【０００５】
また、ＰＬＣを用いた制御システムでは、演算処理とＩ／Ｏなどのデータ転送をあわせた処理時間によって外部機器の制御サイクルが規定される。同一バス上に複数のＣＰＵユニットが配置されるようなマルチＣＰＵシステムにおいても、バスアクセス権を獲得したＣＰＵユニットがデータを転送するようになる。
【０００６】
係るバスアクセス権は、データ転送の必要が生じたマスタユニット，ＣＰＵユニットがバスアクセス権獲得のリクエストをすることで与えられるが、同時期に複数のユニットが係るリクエストを発行する場合や、バスアクセス権を獲得したユニットがデータ転送中に他のユニットからリクエストが発行される場合が生じる。係る場合に、バスアクセス権の設定の振り分けをするためのアービタが必要となる。
【０００７】
このアービタの性能指標としては、ユニットがリクエストをしてから実際にバスアクセス権を獲得するまでの時間を保証する応答性能と、単位時間のデータ転送量であるスループットがある。
【０００８】
なお、１つのバスに複数のバスマスタが接続され、各バスマスタがバスアクセス権を確保して通信するようにしたバス管理システムについては、特許文献１等に開示されている。
【特許文献１】特開平１１−４５２２５
【特許文献２】特開平８−３３９３４６
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来のマルチバスシステムでは、以下に示す問題を有している。各バスマスタは、一旦バスアクセス権を獲得し、データの転送を開始すると、そのデータを転送完了するまでバスアクセス権を確保し続け、送信を継続する。たとえばマスタが４つ存在し、マスタ（１）の最大転送サイズが４で、マスタ（２）の最大転送サイズが３で、マスタ（３）の最大転送サイズが２で、マスタ（４）の最大転送サイズが１とする。ここで最大転送サイズは、各ノードがバスアクセス権を獲得し１回の転送処理で転送するデータの最大サイズである。従って、マスタは、それぞれの最大サイズ以下のデータサイズのデータを転送することもある。
【００１０】
１回の通信サイクルで各マスタが１回ずつデータ転送をするものとすると、１回の通信サイクルを完了するまでに要する時間は、図１に示す１回目のデータ転送が最長となり（各マスタが最大サイズでデータ転送）、２回目のデータ転送が最短（各マスタが最小サイズ（１）でデータ転送）となる。従って、１回のデータ転送サイクルで保証できる最小時間は、各マスタが最大データサイズでデータ転送を行なった場合の総和となる。
【００１１】
さらに、各マスタは、データ転送すべきデータが発生した場合には、アービタに対してバスアクセス権獲得のリクエストを発行する。そして、そのリクエストに応じてアービタから発行されたバスアクセス許可通知を受けてバスアクセス権を獲得したマスタは、実際にデータの転送を開始することになる。係るリクエストを発行してからバスアクセス許可通知を受けるまでの時間が、応答性能となる。
【００１２】
図２は、各マスタがそれぞれ最後にアクセス許可通知を受けた場合を示している。図から明らかなように、各マスタの応答性能の保証値は、他のマスタのアクセス時間（データ転送時間）の総和となり、さらに、当該マスタが転送完了するまでの保証値は、そのアクセス時間の総和（応答性能の保証値）に自己のデータ転送時間を加えた値となる。従って、上記の各保証値は、各マスタに設定された最大転送サイズの総和により規定されるため、応答性能の保証値は長くなってしまうとともに、他のマスタのアクセス時間の総和により規定されるため、各マスタ毎に応答性能の保証値は異なる。
【００１３】
一方、すべてのマスタが決められた優先順序で一定時間毎にアクセスを行なえるような制御も考えられる。すなわち、バスアクセス権を獲得しても、他のマスタからのアクセス要求があれば一定期間でバスアクセス権を解放し、残処理がある場合は再度リクエストを発行し、バスアクセス許可通知を受けてバスアクセス権を取得後、当該残りのデータの転送を行なうものである。
【００１４】
一例を示すと、図３に示すように、マスタ（１）から順に、１サイズ分のデータずつデータ転送するものとする。すると、図４に示すように、応答性能の保証値は、各マスタの最大データサイズに関係なく、一定の値をとることができる。しかし、すべてのマスタのアクセス時間が均等なため、データ転送完了までの時間はデータ量に比例する。つまり、最大データサイズが４であるマスタ１の場合、全てのマスタが１回分のデータを転送するのを１サイクルとすると、転送完了までに４サイクル分かかってしまい、転送完了までの時間の保証値は大きくなり、高速化が困難となる。
【００１５】
この発明は、マスタユニットがバスアクセス権獲得要求を出力してからバスアクセス許可通知を受けてデータ転送開始するまでの時間（応答性能）の保証値を適切に短くすることができ、また、マスタユニットがバスアクセス権獲得要求を出力してからデータ完了までに要する時間の保証値もマスタユニットに応じて適切に設定することができ、また、一旦データ転送開始したら一定期間継続してバスアクセスするのを保証することができる通信制御方法および制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記した目的を達成するため、本発明の通信制御方法は、制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットとの通信をする際の通信制御方法であって、前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行し、前記マスタユニットが前記バスアクセス権獲得要求を出力してから、そのバスアクセス権獲得要求が前記アービタ内のバスアクセス権許可通知を発行するアービタ本体に入力するまで所定時間遅らせるようにし、かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにした。
【００１７】
このようにマスタユニットがバスアクセス権獲得要求を出力してから、係る要求が実際にアービタ本体に認識されるまでに一定時間遅延されることから、その間、現在データ転送中の別のマスタユニットはデータ転送を継続して行なうことがきる。さらに、個々のマスタユニットに対して遅延させる一定時間（バスアクセス時間）を規定することでマスタ毎のバス使用率を規定し個々のマスタのスループットが調整可能となる。つまり、必要以上に頻繁にデータ転送を行なうのではなく、例えば、上記の一定時間を、マスタユニットがバスアクセス権獲得要求を出力するサイクルよりも長く設定することで、実際に転送処理を実行するサイクルを長くし、データ転送回数を短くすることができる。
【００１８】
また、通信制御方法の別の解決手段としては、制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットと通信をする際の通信制御方法であって、前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行するものであり、前記アービタ内の前記バスアクセス権許可通知を発行するアービタ本体から、前記バスアクセ権許可通知を発行してから所定時間は、そのバスアクセス権許可通知を発行したマスタユニットに対するバスアクセス権を保持し、そのマスタユニットがデータ転送することを保証し、かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにした。
【００１９】
これにより、一定時間はバスアクセス権を確保し、データ転送を継続できるとともに、各マスタユニット毎に確保する期間を調整することで、データ転送を適当なタイミングで中断させ、別のマスタユニットに対してバスアクセス許可通知を発行することができる。従って、本発明では、バスアクセス権獲得要求を出力してから、実際にデータ転送を開始するまでの応答時間の保証値を短くすることができ、また、バスアクセス権を保持する時間を長く設定したマスタユニットは、バスアクセス権獲得要求を出力してからデータ転送が完了するまでの時間も短くすることができる。
【００２０】
前記所定時間経過前に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、前記所定時間経過後に現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始するようにできる。
【００２１】
前記所定時間経過後に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始するようにしてもよい。
【００２２】
前記所定時間経過後も他のマスタユニットからのバスアクセス権獲得要求が無い場合には、バスアクセス権を獲得したマスタユニットは、そのまま継続してデータ転送するようにしてもよい。また、前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であってもバスアクセス権獲得要求を出力している他のマスタユニットに対してバスアクセス許可通知を発行し、データ転送可能とするとよい。また、前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であっても自己に与えられていたバスアクセス許可通知が解消され、そのマスタユニットが保持していたバスアクセス権が解消することもできる。このようにすると、効率的にデータ転送が行える。
【００２３】
バスアクセス権を獲得しデータ転送したマスタユニットが、そのデータ転送を完了した場合でも、他のマスタユニットからのバスアクセス権獲得要求が無い場合には、前記データ転送を完了したマスタユニットが、バスアクセス権を獲得した状態を保持するようにするとよい。このようにすると、例えば、同一のマスタユニットが連続してデータ転送を行なうような場合には、そのまま次のデータ転送を実行できるので、無駄なバスの切替処理が無くなり、効率が良くなる。
【００２４】
現在バスアクセス権を獲得しデータ転送中のマスタユニットに対し、バスアクセス許可通知が解消された場合に、現在データ転送中のデータが優先度の高いデータの場合には、そのまま継続してデータ転送を続行できるようにするとよい。マスタユニットは、データ転送中に自己宛のバスアクセス許可通知が解消されることにより、他のマスタユニットがバスアクセス権獲得要求を出力したことを知るため、通常であれば、中断処理を行なうが、自己が異常時の緊急停止処理等の優先度の高いデータ転送を行なっている場合には、中断処理を行なわずにそのままデータ転送を行なうことができる。これにより、状況に応じたデータ転送処理並びにバスの切り替えが行える。
【００２５】
本発明に係る制御装置は、複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、前記アービタは、前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、前記マスタユニットが出力したバスアクセス権獲得要求を前記アービタ本体に入力するのを一定時間遅延させるマスク機能とを備え、前記マスク機能における遅延させる時間は、対応するマスタユニット毎に設定可能とした。
【００２６】
また、別の解決手段としては、複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、前記アービタは、前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、前記アービタ本体が決定したマスタユニットに対し、前記アービタ本体が前記バスアクセス許可通知を発行してから一定期間は、そのマスタユニットに対するバスアクセス権を保持させる機能を備え、そのバスアクセス権を保持させる一定期間は、マスタユニット毎に設定可能とするとよい。
【発明の効果】
【００２７】
この発明では、マスタユニットがバスアクセス権獲得要求を出力してからバスアクセス許可通知を受けてデータ転送開始するまでの時間（応答性能）の保証値を適切に短くすることができる。また、マスタがバスアクセス権獲得要求を出力してからデータ完了までに要する時間の保証値もマスタに応じて適切に設定することができ、一旦データ転送開始したら一定期間継続してバスアクセスするのを保証することができる。
【発明を実施するための最良の形態】
【００２８】
図５は、本発明の好適な一実施の形態である通信制御を実行するシステムを実装した制御装置（ＰＬＣ）１０の一例を示している。本実施の形態の制御装置１０は、バックプレーン１１上に複数のユニットが実装される。この複数のユニットには、本発明との関係で言うと、バスアクセスを能動的に行なう複数のマスタユニット１２と、そのマスタユニット１２とデータ転送を行なうスレーブユニット１３と、それら各ユニットに電力供給をする電源ユニット１４とがある。もちろん、図示省略しているが、必要に応じて他のユニットも実装される。バックプレーン１１には、バスアクセス権付与などのアービトレーションを行なうアービタ１５が実装されている。
【００２９】
各マスタユニット１２，スレーブユニット１３は、バックプレーン１１内に実装されるバス（アドレス，データバス）１６に接続され、そのバス１６を介して各ユニット１２，１３間でデータ転送が行なわれる。このデータ転送は、バスアクセス権を獲得したマスタユニット１２が行なう。そして、各マスタユニット１２は、アービタ１５と複数（本例では、３本）の制御線１７で接続され、その制御線１７を介してバスアクセス権を取得するようになっている。
【００３０】
ここで、３本の制御線１７のうちの２本は、マスタユニット１２からアービタ１５に向けて２つの情報を出力するためのものである。係る２つの情報は、「バスアクセス権要求信号」（ＢＲＥＱ）と、「バスアクセス中フラグ」（ＢＳＹ）である。また、残りの１本の制御線１７は、アービタ１５からマスタユニット１２に対して、「バスアクセス許可」（ＢＧ）を通知するものである。係る３本の制御線１７のデータは、いずれも定常状態がＬｏｗ（０）となる。つまり、ＢＲＥＱがＨｉｇｈ（１）の場合、マスタユニット１２がバスアクセス権要求をしていることを意味する。ＢＳＹがＨｉｇｈの場合、マスタユニット１２がデータ転送中等によりバックプレーンのバスを使用中であることを意味する。ＢＧがＨｉｇｈの場合、アービタ１５からバスアクセスが許可されていることを意味する。
【００３１】
図６は、通常のデータ転送する場合の各制御線１７を介して伝達される信号のタイミングチャートを示している。データ転送を行なおうとするマスタユニット１２は、アービタ１５に対してバスアクセス権要求信号を出力（ＢＲＥＱが「０」から「１」に更新）する。アービタ１５は、係るバスアクセス権要求信号（ＢＲＥＱが「１」）を受信すると、バスアクセス権を与えて良いか否かを判断し、バスアクセス権を与える旨の決定をした場合には、制御線１７を経由してバスアクセス権許可通知を発行する（ＢＧが「０」から「１」に更新）。そして、このバスアクセス権許可通知（ＢＧ＝１）を受けたマスタユニット１２が実際にデータの転送を開始するようになる。また、バスアクセス権を獲得（ＢＧ＝１）したマスタユニット１２がデータの転送を行なうに際し、アクセス中フラグをＯＮにし、係るアクセス中フラグのＯＮ情報が制御線１７を経由してアービタ１５に送られる（ＢＳＹ＝０）。そして、マスタユニット１２は、係るデータ送信中は、アクセス中フラグをＯＮ（ＢＧＹ＝１）のままにする。マスタユニット１２は、データ転送が完了したならば、リクエスト（ＢＲＥＱ）とアクセス中フラグ（ＢＧＹ）とをクリア（０）する。
【００３２】
アービタ１５は、ＢＳＹがクリア（０）になったのを検知したならば、当該マスタユニット１２に対して許可していたバスアクセス権許可通知を解除（ＢＧ＝０）にする。また、アービタ１５は、マスタからリクエストを受けると、全てのマスタユニット１７のＢＧＹとＢＧがともに０で有ることを条件に上述したバスアクセス許可通知を発行する。これにより、複数のマスタユニット１２に対して同時にバスアクセス許可通知（ＢＧ＝１）をし、係る複数のマスタユニット１２が同時にデータ転送を開始してしまい、衝突の発生をするのを抑制する。
【００３３】
なお、同時に複数のマスタユニット１２からリクエストを受け取った場合には、所定の条件・規則に従って決定したマスタユニット１２に対してバスアクセス許可通知を発行する。上記の条件・規則としては、例えば、ノードアドレスの順番に従って順次与えるようにしたり、各マスタユニットに優先度を与えている場合には、優先度の高低に基づいて決定したりする等の各種の方式がとれる。上述した処理が、通常のアービタを用いた通信制御である。
【００３４】
本実施の形態では、マスタユニット１２が、バスアクセス許可通知を受けてバスアクセス権を獲得し、データ転送を開始（ＢＳＹ＝１）したあとでも、データ転送を中断する中断機能を持たせた。具体的には、アービタ１５からバスアクセス権の解消通知（ＢＧ＝０）を受けた場合には、データ転送を中断し、アクセス中フラグをＯＦＦ（ＢＳＹ＝０）にする。ただし、中断の場合、未転送のデータが残るため、係る未転送のデータを送るためにマスタユニット１２は、リクエストをＯＮ（ＢＲＥＱ＝１）のままにする。
【００３５】
図７は、本実施の形態のマスタユニット１２の機能を示すフローチャートである。マスタユニット１２は、図示省略する内部のＭＰＵ等からのデータ転送要求（アクセス実行要求）を待ち（Ｓ１）、要求を受けると、「バスアクセス権要求信号」（ＢＲＥＱ）を出力（ＢＲＥＱ＝１）する（Ｓ２）。そして、アービタ１５からバスアクセス許可通知（ＢＧ＝１）を受けるのを待ち（Ｓ３）、バスアクセス許可通知を受けたならば、「バスアクセス中フラグ」をＯＮ（ＢＳＹ＝１）にし、データ転送を開始する（Ｓ４）。
【００３６】
そのデータ転送中に、常時、バスアクセス許可通知がＯＮ（ＢＧ＝１）であるか否かを監視し（Ｓ５）、ＢＧ＝１（分岐判断ステップＳ５がＹｅｓ）の状態が継続する限りデータ転送を続行する。一方、ＢＧ＝０になると、分岐判断ステップＳ５がＮｏとなるので、アクセス完了か否かを判断する（Ｓ６）。つまり、転送すべきデータの全てを実行できたか否かを判断し、完了していない場合には、中断処理となるため、アクセス中フラグをＯＦＦにし、ＢＳＹを消滅（０）させる（Ｓ７）。このとき、ＢＲＥＱは消滅させずＯＮのままにする。そして、ステップＳ３に戻り、自己にバスアクセス許可通知を受ける（ＢＧ＝１）のを待つ。
【００３７】
一方、ＢＧが消滅（Ｓ５でＮｏ）した際に、アクセス（データ転送間）が完了した場合には、ＢＳＹ，ＢＲＥＱをともに消滅（Ｌｏｗ：０にする）させる（Ｓ８）。上述した処理を、システムが停止するまで繰り返し実行する（Ｓ９）。なお、通常であれば、図６を用いて説明した通り、データ転送が完了した正常終了の場合には、マスタユニット１２側が主導権をとり、ＢＲＥＱとＢＳＹとをそれぞれＬｏｗにし、それを検知したアービタが当該マスタユニット１２に対するＢＧをＬｏｗにするため、ステップＳ６の分岐判断でＹｅｓとなった場合には、すでにＢＳＹ，ＢＲＥＱは消滅しているため、特にＳ８の処理ステップは設けなくても良いが、確実に両信号をＬｏｗにするため、処理ステップＳ８を設けた。
【００３８】
図８は、本実施の形態のアービタ１５の内部構造の一例を示している。この図８は、アービタ１５が、２つのマスタユニットと接続される部分を示しており、マスタユニットの接続数が増すにつれて同様の構成が、各マスタユニットに対して用意される。図８から明らかなように、アービタ１５は、マスタユニットとの間で、ＢＲＥＱ，ＢＧ，ＢＳＹの３つの制御線により接続される。そして、このアービタ１５の基本的な機能は、従来と同様であり、ＢＲＥＱを受信すると、全てのマスタのＢＧ，ＢＳＹが０であることを条件に、ＢＲＥＱを出力したマスタユニット（複数存在する場合には、その中の１つ）に対してバスアクセス許可通知（ＢＧ＝１）を出力する。
【００３９】
係る３つの制御線１７のＯＮ／ＯＦＦ情報に基づき、どのマスタユニットに対してバスアクセス許可通知を発行するかなどを決定する処理（アービトレーション）は、アービタ本体１５ａが実行する。さらに本実施の形態のアービタ１５は、マスタユニット１２からのバスアクセス権獲得要求たるＢＲＥＱの入力側に、バスアクセス権要求を一定時間マスクする機能を設けた。
【００４０】
入力側のマスクする機能は、マスタユニット１２と接続されるＢＥＲＱ用の制御線１７に直列に配置される第１マスク部２１と、ＢＲＥＱがＯＮ（１）になるのを契機としてカウントアップする第１タイマ部（アクセス要求タイマ）２２と、その第２タイマ部２２の出力であるタイマ値が設定された基準値を超えたか否かを比較する第１比較器２３を備えている。この第１比較器２３の出力は、第１マスク部２１に与えられる。第１マスク部２１は、対応するマスタユニット１２からバスアクセス権の獲得要求（ＢＲＥＱ＝１）を受け付けても、第１比較器２３の出力がＯＮ（１）にならない限り出力をオープンしない（出力はＬｏｗ：０のまま）。つまり、ＢＲＥＱ＝ＯＮになったことを一定期間マスクし、アービタ本体１５ａに対してマスタユニット１２が出力したバスアクセス権獲得要求信号が伝達されるのを遅らす。第１マスク部２１は、ＡＮＤ回路により構成することができる。
【００４１】
第１比較器２３における比較基準となる基準値は、第１タイマ最大値記憶部２４に記憶された値である。この第１タイマ最大値記憶部２４は、たとえばレジスタにより構成することができる。そのレジスタに格納された値を第１比較器２３の一方の入力端子に与えるように構成し、第１比較器２３は、タイマ値が基準値を超えたときに出力がＨｉｇｈ（１）になる。
【００４２】
係る構成をとると、図９に示すように、マスタユニット（１）がバスアクセス権獲得要求のリクエストを発行し（ＢＲＥＱ１＝１）が、アービタ１５からバスアクセス許可通知（ＢＧ１＝１）を受けてデータ転送を実行中（ＢＳＹ１＝１）に、マスタユニット（２）がバスアクセス権獲得要求のリクエストを発行した（ＢＲＥＱ２＝１）とする。すると、マスタユニット（２）に対応する第１タイマ２２は、ＢＲＥＱ２＝１となってから起動し、第１タイマ最大値（２Ａ）に達したならば第１マスク部２１の出力がＯＮ（１）になり、アービタ本体１５ａにＢＲＥＱ２が１、つまり、マスタユニット（２）からバスアクセス権獲得要求のリクエストがあったことが伝わる。このように、マスタユニット（２）が発行したＢＲＥＱ２は、第１タイマ２２で遅延され、一定時間後にアービタ本体１５ａで検知されることになる。
【００４３】
換言すれると、アービタ本体１５ａは、マスタユニット（２）がバスアクセス権獲得要求のリクエストを発行した（ＢＲＥＱ２＝１）時ではなく、それから一定時間（第２タイマ最大値Ａ）経過した後で、マスタユニット（２）がバスアクセス権獲得要求を発行しているのを認識（受信）し、それから当該リクエストを受信した場合の処理を実行する。
【００４４】
図９に示した例の場合、アービタ本体１５ａがマスタユニット（２）のＢＲＥＱ２＝２となっているのを認識した際には、すでにマスタユニット（１）がバスアクセス許可通知（ＢＧ１＝１）を受けて、データ転送中（ＢＳＹ１＝１）であるため、マスタユニット（２）に対してのバスアクセス許可通知は発行しない（ＢＧ２＝０のまま）。マスタユニット（１）は、原則として一旦、バスアクセス許可通知（ＢＧ１＝１）を受けると、中断処理をすることなく今回転送しようとしたデータを全て転送し、転送完了後にバスアクセス権獲得要求のリクエストを解消（ＢＲＥＱ１＝０）するとともに、ＢＳＹ１＝０にし、データ転送が完了したことをアービタ本体１５ａに伝える。これにともない、マスタユニット（１）に与えていたバスアクセス許可通知を解消（ＢＧ１＝０）にする。
【００４５】
その後、アービタ本体１５ａは、バスアクセス権獲得要求をしていたマスタユニット（２）に対してバスアクセス権を与える決定をすると、そのマスタユニット（２）に対してアクセス許可通知を発行する（ＢＧ２＝１）。このアクセス許可通知を受信したマスタユニット（２）は、バスアクセス中フラグをＯＮにし、制御線１７を介してアービタ１５に対してＢＳＹ２＝１を出力する。そして、マスタユニット（２）は、データ転送を実行する。
【００４６】
マスタユニット（２）のデータ転送が完了すると、そのまま正常終了する。つまり、マスタユニット（２）は、まずバスアクセス中フラグをＯＦＦ（ＢＳＹ２＝０）にし、それを検知したアービタ本体１５ａがマスタユニット（２）に対するバスアクセス許可通知を消滅（ＢＧ２＝０）にする。
【００４７】
なお、図９では説明の便宜上、マスタユニット（１）の最初のデータ転送開始では、ＢＲＥＱ１＝１を受けてすぐにＢＧ１＝１となっているが、実際には、この部分においてもマスク処理による遅延が行なわれ、ＢＲＥＱ１＝１から第１タイマ最大値で規定される時間（１Ａ）だけ遅れてＢＧ１が１となる。なお、正常終了時は、マスタユニット（２）がＢＳＹ２＝０にするのと同時にＢＲＥＱ２＝０にしている。そして、第１マスク部２１は、ＡＮＤ回路であるため、ＢＲＥＱ２＝０になると、第１比較器２３の出力に関係なく、直ぐにアービタ本体１５ａに対してＢＲＥＱ２＝０が入力される。
【００４８】
アービタ１５に実装された各マスタユニット用のタイマ最大値は、マスタユニットごとに設定できる。よって、マスタユニットからバスアクセス権獲得要求が発行（ＢＲＥＱ＝１）された順番と、実際にアービタ本体１５ａが各マスタユニットからのバスアクセス権獲得要求を認識する順番は異なる。よって、各マスタユニットに設定されたタイマ最大値の大小関係と、各マスタユニットのバスアクセス権獲得要求の発行タイミングとの関係によっては、実際には後にバスアクセス権獲得要求を発行したマスタユニット（最大マスタ値が小）の方がアービタ本体１５ａには先に認識され、バスアクセス許可通知を受信し、データ転送を開始可能になる現象を生じる。
【００４９】
図８に示すように、本実施の形態では、アービタ本体１５ａの入力側にマスタ優先度記憶部４０を設けている。このマスタ優先度記憶部４０には、各マスタの優先度情報が格納されており、同時に複数のマスタユニット１２からリクエストを受けた場合、アービタ本体１５ａは、この優先度情報に基づき、優先度の高いマスタユニット１２に対してバスアクセス許可通知を与えるようにする。
【００５０】
図１０は、本発明の第２の実施の形態を示している。本実施の形態では、アービタ本体１５ａのバスアクセス許可通知（ＢＧ）の出力側に、少なくともバスアクセス権を一定時間確保する機能を持たせている。このアービタ本体１５ａの出力側に設置されるバスアクセス権を一定時間確保する機能は、マスタユニット１２と接続されるＢＧ用の制御線１７に直列に配置される第２マスク部３１と、アービタ本体１５ａがアクセス許可通知をＯＮ（１）になるのを契機としてカウントアップする第２タイマ部（バスアクセス権保持タイマ）３２と、その第２タイマ部３２の出力であるタイマ値が、設定された基準値を超えたか否かを比較する第２比較器３３を備えている。この第２比較器３３の出力は、第２マスク部３１に与えられる。第２マスク部３１は、アービタ本体１５ａからバスアクセス許可通知の解消（ＢＧ＝０）を受け付けても、第２比較器２３の出力がＯＦＦ（０）にならない限りクローズ（Ｌｏｗ：０）にされることはない（出力はＨｉｇｈのまま）。
【００５１】
第２比較器３３における比較基準となる基準値は、第２タイマ最大値記憶部３４に記憶された値である。この第２タイマ最大値記憶部３４は、たとえばレジスタにより構成することができる。そのレジスタに格納された値は、第２比較器３３の一方の入力端子に与えるように構成する。第２比較器３３は、タイマ値が０の通常状態で出力がＨｉｇｈ（１）となり、タイマ値が基準値を超えたときに出力がＬｏｗ（０）になるようにする。
【００５２】
第２マスク部３１は、ＯＲ回路により実現できる。これにより、アービタ本体１５ａがバスアクセス許可通知を出力すると、実際にアービタ１５からマスタユニット１２に向けて出力されるバスアクセス許可通知は、第２マスク部３１の出力であるため、一旦バスアクセス許可通知がＯＮ（ＢＧ＝１）になると、少なくとも第２タイマ最大値記憶部３４に格納された時間は、ＢＧ＝１の状態が保持される。よって、マスタユニットは、対応する第２タイマ最大値記憶部３４で設定された時間だけは、少なくともデータ転送時間として確保される。よって、各マスタユニットごとにそれぞれの第２タイマ最大値記憶部３４に設定する時間を適宜にすることで、各マスタユニットごとにデータ転送が確保される最小時間を変えることができる。
【００５３】
係る構成をとると、図１１に示すように、マスタユニット（１）は、バスアクセス権獲得要求のリクエストを発行し（ＢＲＥＱ１＝１）、アービタ１５からバスアクセス許可通知（ＢＧ１＝１）を受けるとデータ転送を開始する（ＢＳＹ１＝１）。このデータ転送開始とともに、マスタユニット（１）の第２タイマ３２が起動し、その第２タイマ３２のタイマ値が第２タイマ最大値（１Ｂ）に達するまでは、第２比較器３３の出力はＨｉｇｈ（１）の状態を保持するため、マスタユニット（１）に対応する第２マスク部３１の出力、つまり、ＢＧ１は、「１」のままとなるので、マスタユニット（１）は、データ転送を継続して行なう。
【００５４】
そして、この第２タイマ３２のタイマ値が第２タイマ最大値（１Ｂ）に達する前に他のマスタユニット（図１１の場合、２）からバスアクセス権獲得要求のリクエスト（ＢＲＥＱ２）が発生したとしても、ＢＧ１，ＢＧＹ１がともにＯＮ（１）であるため、マスタユニット（２）に対してバスアクセス許可通知を発行しない（ＢＧ２＝０のまま）。なお、仮にＢＲＥＱ２のＯＮに伴い、アービタ本体１５ａがマスタユニット（１）に対するバスアクセス許可通知を消滅したとしても、上述したように、ＢＧ１＝１の状態が維持されるためマスタユニット（１）がデータ転送を継続し、ＢＳＹ１＝１も維持されるので、アービタ本体１５ａは、リクエストを受けたマスタユニット（２）に対してバスアセス許可通知を発行しない。
【００５５】
そして、第２タイマ３２のタイマ値が、第２タイマ最大値（１Ｂ）に達したならば、第２マスク部３１の出力がＯＦＦ（０）になり、マスタユニット（１）に対するバスアクセス許可通知が解消（ＢＧ１＝０）する。マスタユニット（１）は、ＢＧ１＝０に伴い、データ転送を中断し、ＢＳＹ１＝０にする。但し、データ転送は完了していないため、ＢＲＥＱ１はＯＮ（１）のままとなる。
【００５６】
アービタ本体１５ａは、ＢＧ１とＢＳＹ１がともに０になったこと（今までマスタユニット（１）がデータ転送していたため、他のマスタユニットのＢＧ並びにＢＳＹは０である）を検知し、マスタユニット（２）に対してアクセス許可通知を発行する（ＢＧ２＝１）。このアクセス許可通知を受信したマスタユニット（２）は、バスアクセス中フラグをＯＮにし、制御線１７を介してアービタ１５に対してＢＳＹ２＝１を出力する。そして、マスタユニット（２）は、データ転送を実行する。
【００５７】
図１１に示す例では、マスタユニット（２）のデータ転送中に新たなバスアクセス権獲得リクエストが無かったため（マスタユニット（１）のＢＲＥＱ１はＯＮのまま）、マスタユニット（２）は、そのまま正常終了する。つまり、マスタユニット（２）は、まずバスアクセス中フラグをＯＦＦ（ＢＳＹ２＝０）にし、それを検知したアービタ本体１５ａがマスタユニット（２）に対するバスアクセス許可通知を消滅（ＢＧ２＝０）する。そして、アービタ本体１５ａは、リクエストを継続して出力（ＢＲＥＱ１＝１）していたマスタユニット（１）に対してバスアクセス許可通知（ＢＧ１＝１）を発行する。これに伴い、マスタユニット（１）は、ＢＧＹ１＝１にし、前回の中断によって未転送のデータを転送する。
【００５８】
なお、図１１において、マスタユニット（２）からのリクエストが発行される（ＢＲＥＱ２＝１になる）タイミングが、マスタユニット（１）用の第２タイマ３２のタイマ値が第２タイマ最大値（１Ｂ）になる前であれば、いずれの時期であってもマスタユニット（２）がバスアクセス許可通知を得るのは同時期となる。また、第２タイマ３２のタイマ値が第２タイマ最大値（１Ｂ）を超えても、いずれのマスタユニットからバスアクセス権獲得要求のリクエストがない場合には、アービタ本体１５ａからのバスアクセス許可通知がＯＮのままとなるため、ＢＧ１＝１の状態が維持され、継続してデータ転送が実行される。
【００５９】
図１２は、第３の実施の形態を示している。本実施の形態は、第２の実施の形態を基本としている。例えば、データ転送するデータサイズが小さく、第２タイマ３２のタイマ値が、第２タイマ最大値に達する前に今回のデータ転送が完了することがある。係る場合、マスタユニットは、図６にも示した正常な終了処理を実行する。つまり、自己のＢＲＥＱとＢＳＹをともに０にする。これを受けて、アービタ本体１５ａは、正常終了したマスタユニットに対して許可していたバスアクセス許可通知を解消するが、第２マスク部２１の出力は、第２タイマ２２のタイマ値が第２タイマ最大値に至るまでは「１」となるので、係るマスタユニットに対して与えられているＧＢは、１のままとなる。
【００６０】
そこで、本実施の形態では、図１２に示すように、第２比較器３３の出力と、ＢＳＹの値を、２の入力のＡＮＤ回路３５に入力し、そのＡＮＤ回路３５の出力を第２マスク部３１に与えるようにする。係る構成を採ることにより、ＢＳＹが０になると、ＡＮＤ回路３５の出力もＬｏｗ（０）となるので、上述したようにＢＳＹ＝０に基づきアービタ本体１５ａがバスアクセス許可通知を解消すると、対象となるマスタユニットに対するＧＢも０にすることができる。もちろん、アービタ本体１５ａが、リクエストに応じてバスアクセス許可通知を発行した際には、対象となるマスタユニットのＢＳＹは0のため、ＡＮＤ回路３５に出力もＬｏｗ（０）ではあるが、アービタ本体１５ａからの許可通知が出力されると、第２マスク部３１の出力も１となるため、マスタユニットに対するＧＢも１になるため、問題がない。
【００６１】
最も、第２の実施の形態のままでも、一定期間ＧＢが１になるマスタユニットが複数存在する可能性はあるが、データ転送が終了したマスタユニットは、ＢＲＥＱ，ＢＳＹがともにＯで、転送すべきデータがないため、仮にＧＢ＝１となってもエラー処理などにより対処することはできる。
【００６２】
図１２に示した第３の実施の形態のアービタ１５は、図１３に示すフローチャートを実行する機能を備えることで構成することもできる。まず各マスタユニットからのバスアクセス権要求信号（ＢＲＥＱ＝１）が来るのを待つ（Ｓ１１）。バスアクセス権要求信号を受信すると、その要求があったマスタユニットに対してバスアクセス権を与えて良いか否かを判断する（Ｓ１２）。具体的には、全てのマスタユニット１２に対してバスアクセス権許可通知を与えておらず（ＢＧ＝０）、しかも、全てのマスタユニット１２が通信をしていない（ＢＧＹ＝０）場合に、バスアクセス権許可条件を具備したと判断する。なお、通常の実施状況では、各マスタユニット１２はサイクリックに所定のユニットに対してデータ転送を行なおうとするため、同時期に複数のマスタユニットからバスアクセス権要求信号を受けることがある。係る場合には、予め決めた条件（例えば、マスタ優先度記憶部４０に格納された優先度の高いものや、ノードアドレス順等）に従いバスアクセス権を許可するマスタユニットを決定する。
【００６３】
次いで、バスアクセス権を許可するマスタユニットが決定すると、そのマスタユニット１２に対してバスアクセス権許可通知、つまり、ＢＧを「１」にする（Ｓ１３）。なお、マスタユニット１２は、自己に対してバスアクセス権許可通知が発行されたことは、当該マスタユニット１２に接続されたＢＧ用の制御線１７を介して認識する。
【００６４】
アービタ１５は、所定のマスタユニットに対してＢＧ＝１にしたならば、ＢＧＹが消滅（０）になるか否かを監視し（Ｓ１４）、消滅しない場合には所定の占有時間（第２タイマ最大値）が超過するのを待つ（Ｓ１５）。そして、バスアクセス許可通知を発行していたマスタユニットのＢＳＹが消滅した場合（正常終了）には、当該マスタユニットに対するバスアクセス許可通知を消滅（ＢＧ＝０）させる（ＳＴ１７）。通常であれば、Ｓ１４の分岐判断でＹｓｅとなった場合には、Ｓ１８分岐判断もＹｅｓとなり、Ｓ１１に戻り次のリクエストを待つ。
【００６５】
一方、占有時間が超過した場合には、他のマスタユニットからリクエストが発行（ＢＲＥＱ＝１）された否かを判断する（Ｓ１６）。そして、発行されていない場合には、Ｓ１４に戻る。よって、一旦バスアクセス許可通知（ＢＧ＝１）を受けたマスタユニットは、占有時間が超過するまでは正常終了する場合を除き、Ｓ１４とＳ１５の処理ステップを繰り返し実行（各分岐判断でＮＯ）することになるので、少なくとも占有時間（タイマ最大値）分はデータ転送ができる。また、係る占有時間超過後であっても、他のマスタユニットからリクエストがこない（Ｓ１６でＮｏ）場合には、継続してデータ転送を行なうことができる。
【００６６】
一方、他のマスタユニットからのリクエストに基づきＢＧが消滅（Ｓ１７）した場合には、アービタ１５は、中断したマスタユニットのＢＧＹが０になったのを確認し（Ｓ１８でＹｅｓ）、Ｓ１１に戻り、以後、上述した処理を繰り返し実行する。
【００６７】
上述したように、第２，第３の実施の形態によれば、マスタユニット毎に連続アクセス時間を設定可能としたため、以下に示す作用効果を奏することができる。すなわち、複数のマスタによる競合が想定されるシステムで、最悪値保証の観点で、応答性能を向上させるためには、１つのマスタユニットが連続してアクセス可能な時間を短くすることが必要である。但し、全てのマスタユニットに対し、一律に短くしたとすると、図３，図４を用いて説明したとおり、特に最大転送サイズの大きなマスタユニットは、転送完了までに要する時間が長くなってしまう。そこで、第２タイマ最大値記憶部３４に格納する値を、個々のマスタユニット毎に個別の連続アクセス時間を設定することで、応答性能の保証値を短くしつつデータ転送完了までの時間も削減することができる。すなわち、特定のマスタユニットの第２タイマ最大値を大きくし、他のマスタユニットの第２タイマ最大値を小さくすることで、係る特定のマスタユニットについての応答性能の保証値を短くするとともに、データ転送完了までの保証値も短くすることができる。
【００６８】
例えば、マスタユニット（１）の第２タイマ最大値を、データサイズが最大データサイズである「４」の場合に必要なデータ転送時間に設定し、他のマスタユニットの第２タイマ最大値を最小データサイズである「１」のときのデータ転送時間に設定する。すると、各マスタユニットが、最大データサイズのデータをマスタユニット（１）から順番にデータ転送をしたとすると、図１４に示すように、マスタユニット（１）は、１回のデータ転送処理で全てのデータを転送できるが、最大データサイズが「２」以上のマスタユニット（２），（３）は、中断処理が入り、複数回にわたって１回分のデータを転送することになる。
【００６９】
マスタユニット（１）に着目すると、図１５（ａ）に示すように、マスタユニット（１）が最後にバスアクセス許可通知を受けた場合でも、応答性の保証値は、３つ分のデータサイズを転送するために要する時間で済む。そして、その場合のデータ転送が完了するまでの保証値は、７つ分のデータサイズを転送するために要する時間となる。また、図１５（ｂ）から（ｄ）に示すように、他のマスタユニットが最後にバスアクセス許可通知を受けた場合、マスタユニット（１）がバスアクセス許可通知を受けてバスアクセス権を獲得し、データ転送を開始し始める時間並びにデータ転送を完了する時間はさらに短くなる。このように、マスタユニット（１）にとっては、連続アクセス時間（第２タイマ最大値，占有保持時間）を大きくすることで、データ量にかかわらず、転送完了までの時間を削減し高速化が可能となる。また、他のマスタユニットにとっても、応答性の保証値は、最大でも６つ分のデータサイズを転送するに要する時間となるため、従来のものよりも短くすることができる。
【００７０】
図１６は、本発明の第４の実施の形態を示している。本実施の形態では、図１２に示した実施の形態を基本とし、一部改良している。すなわち、図１３と図１６を比較すると明らかなように、Ｓ１４の分岐判断でＹｅｓとなった場合の飛び先が異なっている。つまり、図１３の第３の実施の形態では、ＢＧＹの消滅に伴い（Ｓ１４でＹｅｓ）、処理ステップＳ１７に飛び、ＢＧも消滅させたが、本実施の形態では、ＢＧＹが消滅（Ｓ１４でＹｅｓ）した場合に処理ステップＳ１６の分岐判断に飛ぶようにしている。これにより、ＢＧＹが消滅したとしても、他のマスタユニットからリクエストがこない場合には、処理ステップ１６の分岐判断がＮｏとなり、処理ステップ１４に戻ることになる。つまり、正常終了してＢＧＹが消滅しても、今までデータ転送を行なっていたマスタユニットはバスアクセス許可通知を獲得したまま（ＢＧ＝１）となる。
【００７１】
従って、次に、当該マスタユニットがデータ転送しようとした場合には、バスアクセス権を獲得しているため、そのままＢＳＹ＝１にしてデータ転送を行なうことができる。こけにより、不要なバス切替処理の発生を削減できる。
【００７２】
すなわち、同一マスタユニットが連続してアクセスする場合、従来方式では、図１７に示すように、マスタユニット（１）は、１回のデータ転送が完了後にＢＲＥＱ１，ＢＳＹ１を消滅させ、それをうけてアービタ１５がＢＧ１を０にする。その後、同じマスタユニット（１）がデータ転送をしようとした場合、再度、アービタ１５に対してバスアクセス権獲得要求（ＢＲＥＱ１＝１）をする。するとアービタ１５は、そのマスタユニット（１）にバスアクセス権を与えることを決定するとともにバスアクセス許可通知（ＢＧ１＝１）を発行するので、マスタユニット（１）は、ＢＧ１＝１を受信後、実際にデータ転送を開始する（ＢＳＹ１＝１）。従って、従来方式では、バスアクセス権獲得のオーバーヘッドによる遅延が生じてしまう。
【００７３】
これに対し、本実施の形態の方式は、図１８に示すようにＢＧ１＝１の状態が維持されているため、他のマスタユニットからのリクエストが来る前に次のデータの転送が必要になった場合には、そのままデータ転送を開始することができる。
【００７４】
また、図１９，図２０を比較すると明らかなように、データ転送が完了した後もバスアクセス権を獲得（ＢＧ＝１）していた場合に、別のマスタユニットがリクエストを発行した場合でも、本実施の形態の方式では従来のものと同様のタイミングでリクエストを発行した別のマスタユニットが転送開始できるので問題はない。
【００７５】
簡単に説明すると、図１９の従来方式のものでは、マスタユニット（１）は、データ転送完了後にＢＲＥＱ１，ＢＳＹ１をクリア（０）にし、それを受けてアービタ１５はＢＧ１を消滅（０）にする。この後、別のマスタユニット（２）がバスアクセス権獲得要求を出力（ＢＲＥＱ２＝１）すると、アービタ１５がバスアクセス許可通知（ＢＧ２＝１）を発行し、それを受けてマスタユニット（２）はデータ転送を開始（ＢＳＹ２＝１）する。このＢＲＥＱ２＝１になってからＢＳＹ２＝１になるまでのタイムラグがバスアクセス権獲得のオーバーヘッドとなる。
【００７６】
これに対し、図２０の本方式のものでは、マスタユニット（１）はデータ転送完了後もＢＲＥＱ１，ＢＳＹ１を１のままにするが、他のマスタユニットからリクエストを受けるとＢＧ１を消滅させることで、ＢＲＥＱ１，ＢＹＧ１も消滅する。また、アービタは、ＢＲＥＱ１，ＢＳＹ１のクリア（０）と同時にＢＧ２が出力されるため従来方式と同等となる。
【００７７】
図２１は、本発明第５の実施の形態のマスタユニットの機能を示すフローチャートである。本実施の形態は、図７に示す第１の実施の形態のフローチャートの機能を基本とし、処理ステップＳ６の分岐判断でＮｏになった場合に、すぐにＢＳＹを消滅させるのではなく、現在行なっている処理が高優先度処理か否かを判断する分岐判断処理ステップ（Ｓ１０）を追加した。そして、高優先度処理実行時の場合には（Ｓ１０でＹｅｓ）、処理ステップＳ６に戻り、高優先度処理でない場合にはＳ７に飛びＢＳＹを消滅させるようにした。
【００７８】
これにより、異常時等にともない停止処理などの高優先度処理を実行中にＢＧが消滅したとしても、下剤実行中の高優先度処理が完了するまでＳ１０とＳ６の間を巡回する。よって、ＢＧ消滅後もアクセスを継続して実行できる。つまり、アクセス終了をマスタユニット側でも判定することが可能なため、バスアクセス権の解放（ＢＧ＝０）が求められている場合でも異常処理時など優先度の高い処理を行うことが可能となる。
【００７９】
図２２に示すように、通常処理時は、マスタユニット（１）がアクセス中（データ転送中）に、マスタユニット（２）のＢＲＥＱに伴いＢＧ１がクリアされると、マスタユニット（１）はＢＧ１クリアに応じてバスアクセスを終了し、ＢＳＹをクリア（０）にする。その後、バス切替を経て、マスタユニット（２）のバスアクセス権をセットする。
【００８０】
一方、異常処理時は、図２３に示すように、マスタユニット（１）がアクセス中に、マスタユニット（２）のＢＲＥＱ２に基づきＢＧ１がクリアされても、マスタユニット（１）は異常を検知したため、ＢＧ１クリアに応ぜず異常処理を起動し、その異常処理完了後（Ｓ１０でＹｅｓ，Ｓ６でＹｅｓ）、ＢＳＹ，ＢＲＥＱをクリアする。
【００８１】
一方、第１の実施の形態のように、バスアクセス権獲得要求を遅延させることにより、以下に示すような作用効果を期することもできる。すなわち、個々のマスタユニットに対してｗａｉｔ設定を行うことで、不要なバスアクセスを削減することができる。一例を示すと、マスタユニットは、２ｍｓ毎にＢＲＥＱを発行してデータ転送をするように設定されている場合において、その転送されたデータを使用する演算システム側のデータの読込が、１０ｍｓであるとする。すると、２ｍｓ毎に頻繁にデータ転送し、最新のデータにメモリ更新したとしても、実際の演算処理に反映されないデータが存在する。そこで、例えば第１タイマの第１タイマ最大値を５ｍｓに設定することで、５ｍｓに１回の割合でデータ転送を行なうことができる。これにより、データ転送する回数を削減しつつ、データ転送したデータを有効に演算処理に利用できるようにすることができる。
【００８２】
例えば、各マスタユニット（１）から（３）における演算時間，転送対象のデータのデータサイズとそれに要する転送時間，更新周期並びに必要な更新周期が図２４に示すような仕様となっている。そして、バスの転送速度は１００ｂｙｔｅ／ｍｓである。なお、図において、更新周期の最大値は、他マスタのデータ転送を待たされた場合である。
【００８３】
上記の条件において、もっとも効率よくバスを利用出来た場合、
１００ｂｙｔｅ／６ｍｓ＋２００ｂｙｔｅ／１２ｍｓ＋４００ｂｙｔｅ／９ｍｓ
＝７７．７７７ｂｙｔｅ／ｍｓ
となり、バスの転送能力の約７８％を利用することになる（図２５参照）。
【００８４】
これに対し、それぞれのマスタがデータ更新の必要な周期に基づいて、
目標時間  ―  演算時間  ―データ転送時間―バス権待ち時間（最大）
をＢＲＥＱのマスク設定時間とすることで不必要なデータ転送を防止出来る。
【００８５】
具体的には、
マスタ（１）：２０ｍｓ―  ５ｍｓ―１ｍｓ―（２＋４）ｍｓ＝８ｍｓ
マスタ（２）：２０ｍｓ―１０ｍｓ―２ｍｓ―（１＋４）ｍｓ＝３ｍｓ
マスタ（３）：２０ｍｓ―  ５ｍｓ―４ｍｓ―（１＋２）ｍｓ＝８ｍｓ
の各値を第１タイマ最大値に設定する。
【００８６】
係る背一定にすることにより、最短周期での動作時のデータ転送量は、
１００ｂｙｔｅ／（８＋５）ｍｓ＋２００ｂｙｔｅ／（３＋１０）ｍｓ
＋４００ｂｙｔｅ／（８＋５）ｍｓ
=１００／１３＋２００／１３＋４００／１３
＝７００／１３
＝５３．８ｂｙｔｅ／ｍｓ
となり、バスの転送能力の約５４％を利用することになる（図２６参照）。このように、マスク期間を設定することで必要なデータ更新を行いつつ、バス利用比率を低下することができる。
【００８７】
上記した各実施の形態は、いずれもアービタ本体１５ａの入力側と出力側のいずれか一方にマスク機能を設けたが、本発明はこれに限ることはなく、例えば図２７に示すように両方に設けてももちろん良い。この場合、例えば、図２８に示すように（１）ＢＲＥＱ１がＯＮになってから一定期間（第１タイマ最大値で設定された時間）経過後に、アービタ本体にＢＲＥＱ１＝１が入力される。（２）すると、アービタ本体は、個々のマスタ毎に設定された、優先度等に基づき所定のマスタユニットに対してバスアクセス権を与える（図の場合、ＢＧ１＝1）。
（３）バスアクセス許可通知（ＢＧ１＝１）を受けたマスタユニットは、処理中を示すＢＳＹ信号を出力するともともにデータ転送を行なう。（４）このＢＧ１＝１になってから第２タイマがスタートし、第２タイマ最大値に至る時間内では、ＢＧ１＝１の状態を保持されるため、マスタユニットは少なくともその期間はデータ転送が行える。なお、この期間中に他のマスタユニットからリクエストを受けた場合、ＢＧ１が消滅する。（５）これを受けて、マスタユニットはＢＧＹ１をクリア（０）するため、アービタは、ＢＳＹ１信号が消滅するのを待って、新たなマスタユニットへバス権を与える。
アービタ本体の入力側と出力側に設定する機能は、図２７に示すものに限ることはなく、上述した各実施の形態を適宜組み合わせることができるのはもちろんである。
【００８８】
さらに、上述した実施の形態では、バックプレーン（バックプレインボード）１１に複数のユニットを装着し、各ユニットはバックプレーン内のバスを介して接続するとともに、アービタ１５をバックプレーン１１に設置した構成を採っている。しかし、本発明はそれに限ることはなく、バックプレーン無し（例えばＤＩＮレール取付けタイプ）でユニット同士が横連結して、各ユニットを貫通バスでつなげる構成のものにも適用が出来る。係る場合、制御装置を構成するいずれかのユニットにアービタを設置したり、アービタユニットを設けることも出来る。その場合には、各マスタユニットとアービタとを接続するための制御線を、各ユニットを通すことになる。
【００８９】
また、マスタユニット（バスマスタユニット）は、ユーザプログラム演算処理する「ＣＰＵユニット」はもちろんのこと、他に、モーション系を制御する「モーションコントロールユニット」、他のＰＬＣとデータのコントローラ間通信を行なう「通信ユニット」、なにか特化した演算処理をする高機能演算ユニットなど、各種のものに適用できる。そして、このマスタユニット機能をもつことで、制御のための入力データ・出力データをＣＰＵユニット経由で授受しなくて済むという作用効果を奏する。
【図面の簡単な説明】
【００９０】
【図１】従来例を説明する図である。
【図２】従来例を説明する図である。
【図３】従来例を説明する図である。
【図４】従来例を説明する図である。
【図５】本発明の好適な一実施の形態を示す頭である。
【図６】通常のデータ転送する場合の各制御線の状態（１／０）を示すタイミングチャートである。
【図７】第１の実施の形態のマスタユニット１２の機能を示すフローチャートである。
【図８】本実施の形態のアービタ１５の内部構造の一例を示している。
【図９】本実施の形態の作用を説明するタイミングチャートである。
【図１０】第２の実施の形態のアービタ１５の内部構造の一例を示している。
【図１１】本実施の形態の作用を説明するタイミングチャートである。
【図１２】第３の実施の形態のアービタ１５の内部構造の一例を示している。
【図１３】第３の実施の形態のアービタ１５の機能を示すフローチャートである。
【図１４】本実施の形態の作用効果を説明する図である。
【図１５】本実施の形態の作用効果を説明する図である。
【図１６】第４の実施の形態のアービタ１５の機能を示すフローチャートである。
【図１７】本実施の形態の作用効果を説明する図である。
【図１８】本実施の形態の作用効果を説明する図である。
【図１９】本実施の形態の作用効果を説明する図である。
【図２０】本実施の形態の作用効果を説明する図である。
【図２１】第５の実施の形態のマスタユニットの機能を示すフローチャートである。
【図２２】本実施の形態の作用効果を説明する図である。
【図２３】本実施の形態の作用効果を説明する図である。非リアルタイムバースト転送の詳細なタイミングチャートを示す図である。
【図２４】第１の実施の形態の別の作用効果を説明する図である。
【図２５】第１の実施の形態の別の作用効果を説明する図である。
【図２６】第１の実施の形態の別の作用効果を説明する図である。
【図２７】別の実施の形態を示すアービタの内部構造の一例を示す頭である。
【図２８】その実施の形態の作用効果を説明するタイミングチャートの一例を示す頭である。
【符号の説明】
【００９１】
１０  制御装置
１１  バックプレーン
１２  マスタユニット
１３  スレーブユニット
１５  アービタ
１６  バス
１７  制御線
２１  第１マスク部
２２  第１タイマ部
２３  第１比較器
２４  第１タイマ最大値記憶部
３１  第２マスク部
３２  第２タイマ部
３３  第２比較器
３４  第２タイマ最大値記憶部
３５  ＡＮＤ回路
４０  マスタ優先度記憶部
【図１】
2006209707.tif 000003
【図２】
2006209707.tif 000004
【図３】
2006209707.tif 000005
【図４】
2006209707.tif 000006
【図５】
2006209707.tif 000007
【図６】
2006209707.tif 000008
【図７】
2006209707.tif 000009
【図８】
2006209707.tif 000010
【図９】
2006209707.tif 000011
【図１０】
2006209707.tif 000012
【図１１】
2006209707.tif 000013
【図１２】
2006209707.tif 000014
【図１３】
2006209707.tif 000015
【図１４】
2006209707.tif 000016
【図１５】
2006209707.tif 000017
【図１６】
2006209707.tif 000018
【図１７】
2006209707.tif 000019
【図１８】
2006209707.tif 000020
【図１９】
2006209707.tif 000021
【図２０】
2006209707.tif 000022
【図２１】
2006209707.tif 000023
【図２２】
2006209707.tif 000024
【図２３】
2006209707.tif 000025
【図２４】
2006209707.tif 000026
【図２５】
2006209707.tif 000027
【図２６】
2006209707.tif 000028
【図２７】
2006209707.tif 000029
【図２８】
2006209707.tif 000030