JP2006209707A - 通信制御方法および制御装置 - Google Patents

通信制御方法および制御装置 Download PDF

Info

Publication number
JP2006209707A
JP2006209707A JP2005024625A JP2005024625A JP2006209707A JP 2006209707 A JP2006209707 A JP 2006209707A JP 2005024625 A JP2005024625 A JP 2005024625A JP 2005024625 A JP2005024625 A JP 2005024625A JP 2006209707 A JP2006209707 A JP 2006209707A
Authority
JP
Japan
Prior art keywords
bus access
master unit
access right
arbiter
data transfer
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.)
Pending
Application number
JP2005024625A
Other languages
English (en)
Inventor
Katsuhiko Ichimura
勝彦 市村
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2005024625A priority Critical patent/JP2006209707A/ja
Publication of JP2006209707A publication Critical patent/JP2006209707A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】一旦データ転送開始したら一定期間継続してバスアクセスするのを保証する通信制御装置を提供する。
【解決手段】アービタ15は、アービタ本体15aの出力側のマスタユニットと接続されるBG用の制御線に直列に配置される第2マスク部31(OR回路)と、アービタ本体がアクセス許可通知をON(1)にするのを契機としてカウントアップする第2タイマ部32と、その第2タイマ部の出力(タイマ値)が、第2タイマ最大値記憶部34にて設定された基準値を超えたか否かを比較する第2比較器33を備えている。第2マスク部は、アービタ本体からバスアクセス許可通知の解消(BG=0)を受け付けても、第2比較器23の出力が0にならない限りクローズ(0)にされることはない。タイマ値が0の通常状態で出力が1で、タイマ値が基準値を超えたときに出力が0になるように構成することで、当該時間はデータ転送時間として確保される。
【選択図】図10

Description

この発明は、通信制御方法および制御装置に関するもので、より具体的には、複数のマスタユニットが接続され、そのマスタユニットが内部バスを介して他のユニットとデータ転送する際の制御に関する。
FA(ファクトリーオートメーション)で用いられるPLC(プログラマブルコントローラ)は、スイッチやセンサなどの入力機器のON/OFF情報を入力し、ラダー言語などで書かれたシーケンスプログラム(ユーザプログラム)に沿って論理演算を実行する。そして、PLCは、得られた演算結果にしたがって、リレー,バルブ,アクチュエータなどの出力機器に対し、ON/OFF情報の信号を出力することで制御が実行される。
このPLCは、ユーザプログラムを実行するCPUユニット,入力機器や出力機器が接続されてON/OFF信号を扱うI/Oユニット,ネットワークを介して他の機器と通信する通信ユニット,各ユニットに電源供給する電源ユニットなど、各ユニットをつなぎ合わせて成り立っている。そして各ユニットを内部バスで接続して、CPUユニットを中心にして各ユニットとバス通信にてデータをやりとりするようになっている。
さらに、PLCの中には、CPUユニットのサイクルタイムを短縮するための一手段として、CPUユニットに加え複数のバスマスタユニットおよび複数のスレーブユニットを単一のバスに接続し、バスマスタユニットとスレーブユニット間でデータを交換するマルチバスマスタシステムを採用したものがある。このマルチバスマスタシステムは、複数のバスマスタユニットのうち、バスアクセス権を獲得した1つのバスマスタユニットのみが上記のバスを介して所定のスレーブユニットと通信が行なえるようしている。
また、PLCを用いた制御システムでは、演算処理とI/Oなどのデータ転送をあわせた処理時間によって外部機器の制御サイクルが規定される。同一バス上に複数のCPUユニットが配置されるようなマルチCPUシステムにおいても、バスアクセス権を獲得したCPUユニットがデータを転送するようになる。
係るバスアクセス権は、データ転送の必要が生じたマスタユニット,CPUユニットがバスアクセス権獲得のリクエストをすることで与えられるが、同時期に複数のユニットが係るリクエストを発行する場合や、バスアクセス権を獲得したユニットがデータ転送中に他のユニットからリクエストが発行される場合が生じる。係る場合に、バスアクセス権の設定の振り分けをするためのアービタが必要となる。
このアービタの性能指標としては、ユニットがリクエストをしてから実際にバスアクセス権を獲得するまでの時間を保証する応答性能と、単位時間のデータ転送量であるスループットがある。
なお、1つのバスに複数のバスマスタが接続され、各バスマスタがバスアクセス権を確保して通信するようにしたバス管理システムについては、特許文献1等に開示されている。
特開平11−45225 特開平8−339346
しかしながら、上述した従来のマルチバスシステムでは、以下に示す問題を有している。各バスマスタは、一旦バスアクセス権を獲得し、データの転送を開始すると、そのデータを転送完了するまでバスアクセス権を確保し続け、送信を継続する。たとえばマスタが4つ存在し、マスタ(1)の最大転送サイズが4で、マスタ(2)の最大転送サイズが3で、マスタ(3)の最大転送サイズが2で、マスタ(4)の最大転送サイズが1とする。ここで最大転送サイズは、各ノードがバスアクセス権を獲得し1回の転送処理で転送するデータの最大サイズである。従って、マスタは、それぞれの最大サイズ以下のデータサイズのデータを転送することもある。
1回の通信サイクルで各マスタが1回ずつデータ転送をするものとすると、1回の通信サイクルを完了するまでに要する時間は、図1に示す1回目のデータ転送が最長となり(各マスタが最大サイズでデータ転送)、2回目のデータ転送が最短(各マスタが最小サイズ(1)でデータ転送)となる。従って、1回のデータ転送サイクルで保証できる最小時間は、各マスタが最大データサイズでデータ転送を行なった場合の総和となる。
さらに、各マスタは、データ転送すべきデータが発生した場合には、アービタに対してバスアクセス権獲得のリクエストを発行する。そして、そのリクエストに応じてアービタから発行されたバスアクセス許可通知を受けてバスアクセス権を獲得したマスタは、実際にデータの転送を開始することになる。係るリクエストを発行してからバスアクセス許可通知を受けるまでの時間が、応答性能となる。
図2は、各マスタがそれぞれ最後にアクセス許可通知を受けた場合を示している。図から明らかなように、各マスタの応答性能の保証値は、他のマスタのアクセス時間(データ転送時間)の総和となり、さらに、当該マスタが転送完了するまでの保証値は、そのアクセス時間の総和(応答性能の保証値)に自己のデータ転送時間を加えた値となる。従って、上記の各保証値は、各マスタに設定された最大転送サイズの総和により規定されるため、応答性能の保証値は長くなってしまうとともに、他のマスタのアクセス時間の総和により規定されるため、各マスタ毎に応答性能の保証値は異なる。
一方、すべてのマスタが決められた優先順序で一定時間毎にアクセスを行なえるような制御も考えられる。すなわち、バスアクセス権を獲得しても、他のマスタからのアクセス要求があれば一定期間でバスアクセス権を解放し、残処理がある場合は再度リクエストを発行し、バスアクセス許可通知を受けてバスアクセス権を取得後、当該残りのデータの転送を行なうものである。
一例を示すと、図3に示すように、マスタ(1)から順に、1サイズ分のデータずつデータ転送するものとする。すると、図4に示すように、応答性能の保証値は、各マスタの最大データサイズに関係なく、一定の値をとることができる。しかし、すべてのマスタのアクセス時間が均等なため、データ転送完了までの時間はデータ量に比例する。つまり、最大データサイズが4であるマスタ1の場合、全てのマスタが1回分のデータを転送するのを1サイクルとすると、転送完了までに4サイクル分かかってしまい、転送完了までの時間の保証値は大きくなり、高速化が困難となる。
この発明は、マスタユニットがバスアクセス権獲得要求を出力してからバスアクセス許可通知を受けてデータ転送開始するまでの時間(応答性能)の保証値を適切に短くすることができ、また、マスタユニットがバスアクセス権獲得要求を出力してからデータ完了までに要する時間の保証値もマスタユニットに応じて適切に設定することができ、また、一旦データ転送開始したら一定期間継続してバスアクセスするのを保証することができる通信制御方法および制御装置を提供することを目的とする。
上記した目的を達成するため、本発明の通信制御方法は、制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットとの通信をする際の通信制御方法であって、前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行し、前記マスタユニットが前記バスアクセス権獲得要求を出力してから、そのバスアクセス権獲得要求が前記アービタ内のバスアクセス権許可通知を発行するアービタ本体に入力するまで所定時間遅らせるようにし、かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにした。
このようにマスタユニットがバスアクセス権獲得要求を出力してから、係る要求が実際にアービタ本体に認識されるまでに一定時間遅延されることから、その間、現在データ転送中の別のマスタユニットはデータ転送を継続して行なうことがきる。さらに、個々のマスタユニットに対して遅延させる一定時間(バスアクセス時間)を規定することでマスタ毎のバス使用率を規定し個々のマスタのスループットが調整可能となる。つまり、必要以上に頻繁にデータ転送を行なうのではなく、例えば、上記の一定時間を、マスタユニットがバスアクセス権獲得要求を出力するサイクルよりも長く設定することで、実際に転送処理を実行するサイクルを長くし、データ転送回数を短くすることができる。
また、通信制御方法の別の解決手段としては、制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットと通信をする際の通信制御方法であって、前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行するものであり、前記アービタ内の前記バスアクセス権許可通知を発行するアービタ本体から、前記バスアクセ権許可通知を発行してから所定時間は、そのバスアクセス権許可通知を発行したマスタユニットに対するバスアクセス権を保持し、そのマスタユニットがデータ転送することを保証し、かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにした。
これにより、一定時間はバスアクセス権を確保し、データ転送を継続できるとともに、各マスタユニット毎に確保する期間を調整することで、データ転送を適当なタイミングで中断させ、別のマスタユニットに対してバスアクセス許可通知を発行することができる。従って、本発明では、バスアクセス権獲得要求を出力してから、実際にデータ転送を開始するまでの応答時間の保証値を短くすることができ、また、バスアクセス権を保持する時間を長く設定したマスタユニットは、バスアクセス権獲得要求を出力してからデータ転送が完了するまでの時間も短くすることができる。
前記所定時間経過前に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、前記所定時間経過後に現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始するようにできる。
前記所定時間経過後に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始するようにしてもよい。
前記所定時間経過後も他のマスタユニットからのバスアクセス権獲得要求が無い場合には、バスアクセス権を獲得したマスタユニットは、そのまま継続してデータ転送するようにしてもよい。また、前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であってもバスアクセス権獲得要求を出力している他のマスタユニットに対してバスアクセス許可通知を発行し、データ転送可能とするとよい。また、前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であっても自己に与えられていたバスアクセス許可通知が解消され、そのマスタユニットが保持していたバスアクセス権が解消することもできる。このようにすると、効率的にデータ転送が行える。
バスアクセス権を獲得しデータ転送したマスタユニットが、そのデータ転送を完了した場合でも、他のマスタユニットからのバスアクセス権獲得要求が無い場合には、前記データ転送を完了したマスタユニットが、バスアクセス権を獲得した状態を保持するようにするとよい。このようにすると、例えば、同一のマスタユニットが連続してデータ転送を行なうような場合には、そのまま次のデータ転送を実行できるので、無駄なバスの切替処理が無くなり、効率が良くなる。
現在バスアクセス権を獲得しデータ転送中のマスタユニットに対し、バスアクセス許可通知が解消された場合に、現在データ転送中のデータが優先度の高いデータの場合には、そのまま継続してデータ転送を続行できるようにするとよい。マスタユニットは、データ転送中に自己宛のバスアクセス許可通知が解消されることにより、他のマスタユニットがバスアクセス権獲得要求を出力したことを知るため、通常であれば、中断処理を行なうが、自己が異常時の緊急停止処理等の優先度の高いデータ転送を行なっている場合には、中断処理を行なわずにそのままデータ転送を行なうことができる。これにより、状況に応じたデータ転送処理並びにバスの切り替えが行える。
本発明に係る制御装置は、複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、前記アービタは、前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、前記マスタユニットが出力したバスアクセス権獲得要求を前記アービタ本体に入力するのを一定時間遅延させるマスク機能とを備え、前記マスク機能における遅延させる時間は、対応するマスタユニット毎に設定可能とした。
また、別の解決手段としては、複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、前記アービタは、前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、前記アービタ本体が決定したマスタユニットに対し、前記アービタ本体が前記バスアクセス許可通知を発行してから一定期間は、そのマスタユニットに対するバスアクセス権を保持させる機能を備え、そのバスアクセス権を保持させる一定期間は、マスタユニット毎に設定可能とするとよい。
この発明では、マスタユニットがバスアクセス権獲得要求を出力してからバスアクセス許可通知を受けてデータ転送開始するまでの時間(応答性能)の保証値を適切に短くすることができる。また、マスタがバスアクセス権獲得要求を出力してからデータ完了までに要する時間の保証値もマスタに応じて適切に設定することができ、一旦データ転送開始したら一定期間継続してバスアクセスするのを保証することができる。
図5は、本発明の好適な一実施の形態である通信制御を実行するシステムを実装した制御装置(PLC)10の一例を示している。本実施の形態の制御装置10は、バックプレーン11上に複数のユニットが実装される。この複数のユニットには、本発明との関係で言うと、バスアクセスを能動的に行なう複数のマスタユニット12と、そのマスタユニット12とデータ転送を行なうスレーブユニット13と、それら各ユニットに電力供給をする電源ユニット14とがある。もちろん、図示省略しているが、必要に応じて他のユニットも実装される。バックプレーン11には、バスアクセス権付与などのアービトレーションを行なうアービタ15が実装されている。
各マスタユニット12,スレーブユニット13は、バックプレーン11内に実装されるバス(アドレス,データバス)16に接続され、そのバス16を介して各ユニット12,13間でデータ転送が行なわれる。このデータ転送は、バスアクセス権を獲得したマスタユニット12が行なう。そして、各マスタユニット12は、アービタ15と複数(本例では、3本)の制御線17で接続され、その制御線17を介してバスアクセス権を取得するようになっている。
ここで、3本の制御線17のうちの2本は、マスタユニット12からアービタ15に向けて2つの情報を出力するためのものである。係る2つの情報は、「バスアクセス権要求信号」(BREQ)と、「バスアクセス中フラグ」(BSY)である。また、残りの1本の制御線17は、アービタ15からマスタユニット12に対して、「バスアクセス許可」(BG)を通知するものである。係る3本の制御線17のデータは、いずれも定常状態がLow(0)となる。つまり、BREQがHigh(1)の場合、マスタユニット12がバスアクセス権要求をしていることを意味する。BSYがHighの場合、マスタユニット12がデータ転送中等によりバックプレーンのバスを使用中であることを意味する。BGがHighの場合、アービタ15からバスアクセスが許可されていることを意味する。
図6は、通常のデータ転送する場合の各制御線17を介して伝達される信号のタイミングチャートを示している。データ転送を行なおうとするマスタユニット12は、アービタ15に対してバスアクセス権要求信号を出力(BREQが「0」から「1」に更新)する。アービタ15は、係るバスアクセス権要求信号(BREQが「1」)を受信すると、バスアクセス権を与えて良いか否かを判断し、バスアクセス権を与える旨の決定をした場合には、制御線17を経由してバスアクセス権許可通知を発行する(BGが「0」から「1」に更新)。そして、このバスアクセス権許可通知(BG=1)を受けたマスタユニット12が実際にデータの転送を開始するようになる。また、バスアクセス権を獲得(BG=1)したマスタユニット12がデータの転送を行なうに際し、アクセス中フラグをONにし、係るアクセス中フラグのON情報が制御線17を経由してアービタ15に送られる(BSY=0)。そして、マスタユニット12は、係るデータ送信中は、アクセス中フラグをON(BGY=1)のままにする。マスタユニット12は、データ転送が完了したならば、リクエスト(BREQ)とアクセス中フラグ(BGY)とをクリア(0)する。
アービタ15は、BSYがクリア(0)になったのを検知したならば、当該マスタユニット12に対して許可していたバスアクセス権許可通知を解除(BG=0)にする。また、アービタ15は、マスタからリクエストを受けると、全てのマスタユニット17のBGYとBGがともに0で有ることを条件に上述したバスアクセス許可通知を発行する。これにより、複数のマスタユニット12に対して同時にバスアクセス許可通知(BG=1)をし、係る複数のマスタユニット12が同時にデータ転送を開始してしまい、衝突の発生をするのを抑制する。
なお、同時に複数のマスタユニット12からリクエストを受け取った場合には、所定の条件・規則に従って決定したマスタユニット12に対してバスアクセス許可通知を発行する。上記の条件・規則としては、例えば、ノードアドレスの順番に従って順次与えるようにしたり、各マスタユニットに優先度を与えている場合には、優先度の高低に基づいて決定したりする等の各種の方式がとれる。上述した処理が、通常のアービタを用いた通信制御である。
本実施の形態では、マスタユニット12が、バスアクセス許可通知を受けてバスアクセス権を獲得し、データ転送を開始(BSY=1)したあとでも、データ転送を中断する中断機能を持たせた。具体的には、アービタ15からバスアクセス権の解消通知(BG=0)を受けた場合には、データ転送を中断し、アクセス中フラグをOFF(BSY=0)にする。ただし、中断の場合、未転送のデータが残るため、係る未転送のデータを送るためにマスタユニット12は、リクエストをON(BREQ=1)のままにする。
図7は、本実施の形態のマスタユニット12の機能を示すフローチャートである。マスタユニット12は、図示省略する内部のMPU等からのデータ転送要求(アクセス実行要求)を待ち(S1)、要求を受けると、「バスアクセス権要求信号」(BREQ)を出力(BREQ=1)する(S2)。そして、アービタ15からバスアクセス許可通知(BG=1)を受けるのを待ち(S3)、バスアクセス許可通知を受けたならば、「バスアクセス中フラグ」をON(BSY=1)にし、データ転送を開始する(S4)。
そのデータ転送中に、常時、バスアクセス許可通知がON(BG=1)であるか否かを監視し(S5)、BG=1(分岐判断ステップS5がYes)の状態が継続する限りデータ転送を続行する。一方、BG=0になると、分岐判断ステップS5がNoとなるので、アクセス完了か否かを判断する(S6)。つまり、転送すべきデータの全てを実行できたか否かを判断し、完了していない場合には、中断処理となるため、アクセス中フラグをOFFにし、BSYを消滅(0)させる(S7)。このとき、BREQは消滅させずONのままにする。そして、ステップS3に戻り、自己にバスアクセス許可通知を受ける(BG=1)のを待つ。
一方、BGが消滅(S5でNo)した際に、アクセス(データ転送間)が完了した場合には、BSY,BREQをともに消滅(Low:0にする)させる(S8)。上述した処理を、システムが停止するまで繰り返し実行する(S9)。なお、通常であれば、図6を用いて説明した通り、データ転送が完了した正常終了の場合には、マスタユニット12側が主導権をとり、BREQとBSYとをそれぞれLowにし、それを検知したアービタが当該マスタユニット12に対するBGをLowにするため、ステップS6の分岐判断でYesとなった場合には、すでにBSY,BREQは消滅しているため、特にS8の処理ステップは設けなくても良いが、確実に両信号をLowにするため、処理ステップS8を設けた。
図8は、本実施の形態のアービタ15の内部構造の一例を示している。この図8は、アービタ15が、2つのマスタユニットと接続される部分を示しており、マスタユニットの接続数が増すにつれて同様の構成が、各マスタユニットに対して用意される。図8から明らかなように、アービタ15は、マスタユニットとの間で、BREQ,BG,BSYの3つの制御線により接続される。そして、このアービタ15の基本的な機能は、従来と同様であり、BREQを受信すると、全てのマスタのBG,BSYが0であることを条件に、BREQを出力したマスタユニット(複数存在する場合には、その中の1つ)に対してバスアクセス許可通知(BG=1)を出力する。
係る3つの制御線17のON/OFF情報に基づき、どのマスタユニットに対してバスアクセス許可通知を発行するかなどを決定する処理(アービトレーション)は、アービタ本体15aが実行する。さらに本実施の形態のアービタ15は、マスタユニット12からのバスアクセス権獲得要求たるBREQの入力側に、バスアクセス権要求を一定時間マスクする機能を設けた。
入力側のマスクする機能は、マスタユニット12と接続されるBERQ用の制御線17に直列に配置される第1マスク部21と、BREQがON(1)になるのを契機としてカウントアップする第1タイマ部(アクセス要求タイマ)22と、その第2タイマ部22の出力であるタイマ値が設定された基準値を超えたか否かを比較する第1比較器23を備えている。この第1比較器23の出力は、第1マスク部21に与えられる。第1マスク部21は、対応するマスタユニット12からバスアクセス権の獲得要求(BREQ=1)を受け付けても、第1比較器23の出力がON(1)にならない限り出力をオープンしない(出力はLow:0のまま)。つまり、BREQ=ONになったことを一定期間マスクし、アービタ本体15aに対してマスタユニット12が出力したバスアクセス権獲得要求信号が伝達されるのを遅らす。第1マスク部21は、AND回路により構成することができる。
第1比較器23における比較基準となる基準値は、第1タイマ最大値記憶部24に記憶された値である。この第1タイマ最大値記憶部24は、たとえばレジスタにより構成することができる。そのレジスタに格納された値を第1比較器23の一方の入力端子に与えるように構成し、第1比較器23は、タイマ値が基準値を超えたときに出力がHigh(1)になる。
係る構成をとると、図9に示すように、マスタユニット(1)がバスアクセス権獲得要求のリクエストを発行し(BREQ1=1)が、アービタ15からバスアクセス許可通知(BG1=1)を受けてデータ転送を実行中(BSY1=1)に、マスタユニット(2)がバスアクセス権獲得要求のリクエストを発行した(BREQ2=1)とする。すると、マスタユニット(2)に対応する第1タイマ22は、BREQ2=1となってから起動し、第1タイマ最大値(2A)に達したならば第1マスク部21の出力がON(1)になり、アービタ本体15aにBREQ2が1、つまり、マスタユニット(2)からバスアクセス権獲得要求のリクエストがあったことが伝わる。このように、マスタユニット(2)が発行したBREQ2は、第1タイマ22で遅延され、一定時間後にアービタ本体15aで検知されることになる。
換言すれると、アービタ本体15aは、マスタユニット(2)がバスアクセス権獲得要求のリクエストを発行した(BREQ2=1)時ではなく、それから一定時間(第2タイマ最大値A)経過した後で、マスタユニット(2)がバスアクセス権獲得要求を発行しているのを認識(受信)し、それから当該リクエストを受信した場合の処理を実行する。
図9に示した例の場合、アービタ本体15aがマスタユニット(2)のBREQ2=2となっているのを認識した際には、すでにマスタユニット(1)がバスアクセス許可通知(BG1=1)を受けて、データ転送中(BSY1=1)であるため、マスタユニット(2)に対してのバスアクセス許可通知は発行しない(BG2=0のまま)。マスタユニット(1)は、原則として一旦、バスアクセス許可通知(BG1=1)を受けると、中断処理をすることなく今回転送しようとしたデータを全て転送し、転送完了後にバスアクセス権獲得要求のリクエストを解消(BREQ1=0)するとともに、BSY1=0にし、データ転送が完了したことをアービタ本体15aに伝える。これにともない、マスタユニット(1)に与えていたバスアクセス許可通知を解消(BG1=0)にする。
その後、アービタ本体15aは、バスアクセス権獲得要求をしていたマスタユニット(2)に対してバスアクセス権を与える決定をすると、そのマスタユニット(2)に対してアクセス許可通知を発行する(BG2=1)。このアクセス許可通知を受信したマスタユニット(2)は、バスアクセス中フラグをONにし、制御線17を介してアービタ15に対してBSY2=1を出力する。そして、マスタユニット(2)は、データ転送を実行する。
マスタユニット(2)のデータ転送が完了すると、そのまま正常終了する。つまり、マスタユニット(2)は、まずバスアクセス中フラグをOFF(BSY2=0)にし、それを検知したアービタ本体15aがマスタユニット(2)に対するバスアクセス許可通知を消滅(BG2=0)にする。
なお、図9では説明の便宜上、マスタユニット(1)の最初のデータ転送開始では、BREQ1=1を受けてすぐにBG1=1となっているが、実際には、この部分においてもマスク処理による遅延が行なわれ、BREQ1=1から第1タイマ最大値で規定される時間(1A)だけ遅れてBG1が1となる。なお、正常終了時は、マスタユニット(2)がBSY2=0にするのと同時にBREQ2=0にしている。そして、第1マスク部21は、AND回路であるため、BREQ2=0になると、第1比較器23の出力に関係なく、直ぐにアービタ本体15aに対してBREQ2=0が入力される。
アービタ15に実装された各マスタユニット用のタイマ最大値は、マスタユニットごとに設定できる。よって、マスタユニットからバスアクセス権獲得要求が発行(BREQ=1)された順番と、実際にアービタ本体15aが各マスタユニットからのバスアクセス権獲得要求を認識する順番は異なる。よって、各マスタユニットに設定されたタイマ最大値の大小関係と、各マスタユニットのバスアクセス権獲得要求の発行タイミングとの関係によっては、実際には後にバスアクセス権獲得要求を発行したマスタユニット(最大マスタ値が小)の方がアービタ本体15aには先に認識され、バスアクセス許可通知を受信し、データ転送を開始可能になる現象を生じる。
図8に示すように、本実施の形態では、アービタ本体15aの入力側にマスタ優先度記憶部40を設けている。このマスタ優先度記憶部40には、各マスタの優先度情報が格納されており、同時に複数のマスタユニット12からリクエストを受けた場合、アービタ本体15aは、この優先度情報に基づき、優先度の高いマスタユニット12に対してバスアクセス許可通知を与えるようにする。
図10は、本発明の第2の実施の形態を示している。本実施の形態では、アービタ本体15aのバスアクセス許可通知(BG)の出力側に、少なくともバスアクセス権を一定時間確保する機能を持たせている。このアービタ本体15aの出力側に設置されるバスアクセス権を一定時間確保する機能は、マスタユニット12と接続されるBG用の制御線17に直列に配置される第2マスク部31と、アービタ本体15aがアクセス許可通知をON(1)になるのを契機としてカウントアップする第2タイマ部(バスアクセス権保持タイマ)32と、その第2タイマ部32の出力であるタイマ値が、設定された基準値を超えたか否かを比較する第2比較器33を備えている。この第2比較器33の出力は、第2マスク部31に与えられる。第2マスク部31は、アービタ本体15aからバスアクセス許可通知の解消(BG=0)を受け付けても、第2比較器23の出力がOFF(0)にならない限りクローズ(Low:0)にされることはない(出力はHighのまま)。
第2比較器33における比較基準となる基準値は、第2タイマ最大値記憶部34に記憶された値である。この第2タイマ最大値記憶部34は、たとえばレジスタにより構成することができる。そのレジスタに格納された値は、第2比較器33の一方の入力端子に与えるように構成する。第2比較器33は、タイマ値が0の通常状態で出力がHigh(1)となり、タイマ値が基準値を超えたときに出力がLow(0)になるようにする。
第2マスク部31は、OR回路により実現できる。これにより、アービタ本体15aがバスアクセス許可通知を出力すると、実際にアービタ15からマスタユニット12に向けて出力されるバスアクセス許可通知は、第2マスク部31の出力であるため、一旦バスアクセス許可通知がON(BG=1)になると、少なくとも第2タイマ最大値記憶部34に格納された時間は、BG=1の状態が保持される。よって、マスタユニットは、対応する第2タイマ最大値記憶部34で設定された時間だけは、少なくともデータ転送時間として確保される。よって、各マスタユニットごとにそれぞれの第2タイマ最大値記憶部34に設定する時間を適宜にすることで、各マスタユニットごとにデータ転送が確保される最小時間を変えることができる。
係る構成をとると、図11に示すように、マスタユニット(1)は、バスアクセス権獲得要求のリクエストを発行し(BREQ1=1)、アービタ15からバスアクセス許可通知(BG1=1)を受けるとデータ転送を開始する(BSY1=1)。このデータ転送開始とともに、マスタユニット(1)の第2タイマ32が起動し、その第2タイマ32のタイマ値が第2タイマ最大値(1B)に達するまでは、第2比較器33の出力はHigh(1)の状態を保持するため、マスタユニット(1)に対応する第2マスク部31の出力、つまり、BG1は、「1」のままとなるので、マスタユニット(1)は、データ転送を継続して行なう。
そして、この第2タイマ32のタイマ値が第2タイマ最大値(1B)に達する前に他のマスタユニット(図11の場合、2)からバスアクセス権獲得要求のリクエスト(BREQ2)が発生したとしても、BG1,BGY1がともにON(1)であるため、マスタユニット(2)に対してバスアクセス許可通知を発行しない(BG2=0のまま)。なお、仮にBREQ2のONに伴い、アービタ本体15aがマスタユニット(1)に対するバスアクセス許可通知を消滅したとしても、上述したように、BG1=1の状態が維持されるためマスタユニット(1)がデータ転送を継続し、BSY1=1も維持されるので、アービタ本体15aは、リクエストを受けたマスタユニット(2)に対してバスアセス許可通知を発行しない。
そして、第2タイマ32のタイマ値が、第2タイマ最大値(1B)に達したならば、第2マスク部31の出力がOFF(0)になり、マスタユニット(1)に対するバスアクセス許可通知が解消(BG1=0)する。マスタユニット(1)は、BG1=0に伴い、データ転送を中断し、BSY1=0にする。但し、データ転送は完了していないため、BREQ1はON(1)のままとなる。
アービタ本体15aは、BG1とBSY1がともに0になったこと(今までマスタユニット(1)がデータ転送していたため、他のマスタユニットのBG並びにBSYは0である)を検知し、マスタユニット(2)に対してアクセス許可通知を発行する(BG2=1)。このアクセス許可通知を受信したマスタユニット(2)は、バスアクセス中フラグをONにし、制御線17を介してアービタ15に対してBSY2=1を出力する。そして、マスタユニット(2)は、データ転送を実行する。
図11に示す例では、マスタユニット(2)のデータ転送中に新たなバスアクセス権獲得リクエストが無かったため(マスタユニット(1)のBREQ1はONのまま)、マスタユニット(2)は、そのまま正常終了する。つまり、マスタユニット(2)は、まずバスアクセス中フラグをOFF(BSY2=0)にし、それを検知したアービタ本体15aがマスタユニット(2)に対するバスアクセス許可通知を消滅(BG2=0)する。そして、アービタ本体15aは、リクエストを継続して出力(BREQ1=1)していたマスタユニット(1)に対してバスアクセス許可通知(BG1=1)を発行する。これに伴い、マスタユニット(1)は、BGY1=1にし、前回の中断によって未転送のデータを転送する。
なお、図11において、マスタユニット(2)からのリクエストが発行される(BREQ2=1になる)タイミングが、マスタユニット(1)用の第2タイマ32のタイマ値が第2タイマ最大値(1B)になる前であれば、いずれの時期であってもマスタユニット(2)がバスアクセス許可通知を得るのは同時期となる。また、第2タイマ32のタイマ値が第2タイマ最大値(1B)を超えても、いずれのマスタユニットからバスアクセス権獲得要求のリクエストがない場合には、アービタ本体15aからのバスアクセス許可通知がONのままとなるため、BG1=1の状態が維持され、継続してデータ転送が実行される。
図12は、第3の実施の形態を示している。本実施の形態は、第2の実施の形態を基本としている。例えば、データ転送するデータサイズが小さく、第2タイマ32のタイマ値が、第2タイマ最大値に達する前に今回のデータ転送が完了することがある。係る場合、マスタユニットは、図6にも示した正常な終了処理を実行する。つまり、自己のBREQとBSYをともに0にする。これを受けて、アービタ本体15aは、正常終了したマスタユニットに対して許可していたバスアクセス許可通知を解消するが、第2マスク部21の出力は、第2タイマ22のタイマ値が第2タイマ最大値に至るまでは「1」となるので、係るマスタユニットに対して与えられているGBは、1のままとなる。
そこで、本実施の形態では、図12に示すように、第2比較器33の出力と、BSYの値を、2の入力のAND回路35に入力し、そのAND回路35の出力を第2マスク部31に与えるようにする。係る構成を採ることにより、BSYが0になると、AND回路35の出力もLow(0)となるので、上述したようにBSY=0に基づきアービタ本体15aがバスアクセス許可通知を解消すると、対象となるマスタユニットに対するGBも0にすることができる。もちろん、アービタ本体15aが、リクエストに応じてバスアクセス許可通知を発行した際には、対象となるマスタユニットのBSYは0のため、AND回路35に出力もLow(0)ではあるが、アービタ本体15aからの許可通知が出力されると、第2マスク部31の出力も1となるため、マスタユニットに対するGBも1になるため、問題がない。
最も、第2の実施の形態のままでも、一定期間GBが1になるマスタユニットが複数存在する可能性はあるが、データ転送が終了したマスタユニットは、BREQ,BSYがともにOで、転送すべきデータがないため、仮にGB=1となってもエラー処理などにより対処することはできる。
図12に示した第3の実施の形態のアービタ15は、図13に示すフローチャートを実行する機能を備えることで構成することもできる。まず各マスタユニットからのバスアクセス権要求信号(BREQ=1)が来るのを待つ(S11)。バスアクセス権要求信号を受信すると、その要求があったマスタユニットに対してバスアクセス権を与えて良いか否かを判断する(S12)。具体的には、全てのマスタユニット12に対してバスアクセス権許可通知を与えておらず(BG=0)、しかも、全てのマスタユニット12が通信をしていない(BGY=0)場合に、バスアクセス権許可条件を具備したと判断する。なお、通常の実施状況では、各マスタユニット12はサイクリックに所定のユニットに対してデータ転送を行なおうとするため、同時期に複数のマスタユニットからバスアクセス権要求信号を受けることがある。係る場合には、予め決めた条件(例えば、マスタ優先度記憶部40に格納された優先度の高いものや、ノードアドレス順等)に従いバスアクセス権を許可するマスタユニットを決定する。
次いで、バスアクセス権を許可するマスタユニットが決定すると、そのマスタユニット12に対してバスアクセス権許可通知、つまり、BGを「1」にする(S13)。なお、マスタユニット12は、自己に対してバスアクセス権許可通知が発行されたことは、当該マスタユニット12に接続されたBG用の制御線17を介して認識する。
アービタ15は、所定のマスタユニットに対してBG=1にしたならば、BGYが消滅(0)になるか否かを監視し(S14)、消滅しない場合には所定の占有時間(第2タイマ最大値)が超過するのを待つ(S15)。そして、バスアクセス許可通知を発行していたマスタユニットのBSYが消滅した場合(正常終了)には、当該マスタユニットに対するバスアクセス許可通知を消滅(BG=0)させる(ST17)。通常であれば、S14の分岐判断でYseとなった場合には、S18分岐判断もYesとなり、S11に戻り次のリクエストを待つ。
一方、占有時間が超過した場合には、他のマスタユニットからリクエストが発行(BREQ=1)された否かを判断する(S16)。そして、発行されていない場合には、S14に戻る。よって、一旦バスアクセス許可通知(BG=1)を受けたマスタユニットは、占有時間が超過するまでは正常終了する場合を除き、S14とS15の処理ステップを繰り返し実行(各分岐判断でNO)することになるので、少なくとも占有時間(タイマ最大値)分はデータ転送ができる。また、係る占有時間超過後であっても、他のマスタユニットからリクエストがこない(S16でNo)場合には、継続してデータ転送を行なうことができる。
一方、他のマスタユニットからのリクエストに基づきBGが消滅(S17)した場合には、アービタ15は、中断したマスタユニットのBGYが0になったのを確認し(S18でYes)、S11に戻り、以後、上述した処理を繰り返し実行する。
上述したように、第2,第3の実施の形態によれば、マスタユニット毎に連続アクセス時間を設定可能としたため、以下に示す作用効果を奏することができる。すなわち、複数のマスタによる競合が想定されるシステムで、最悪値保証の観点で、応答性能を向上させるためには、1つのマスタユニットが連続してアクセス可能な時間を短くすることが必要である。但し、全てのマスタユニットに対し、一律に短くしたとすると、図3,図4を用いて説明したとおり、特に最大転送サイズの大きなマスタユニットは、転送完了までに要する時間が長くなってしまう。そこで、第2タイマ最大値記憶部34に格納する値を、個々のマスタユニット毎に個別の連続アクセス時間を設定することで、応答性能の保証値を短くしつつデータ転送完了までの時間も削減することができる。すなわち、特定のマスタユニットの第2タイマ最大値を大きくし、他のマスタユニットの第2タイマ最大値を小さくすることで、係る特定のマスタユニットについての応答性能の保証値を短くするとともに、データ転送完了までの保証値も短くすることができる。
例えば、マスタユニット(1)の第2タイマ最大値を、データサイズが最大データサイズである「4」の場合に必要なデータ転送時間に設定し、他のマスタユニットの第2タイマ最大値を最小データサイズである「1」のときのデータ転送時間に設定する。すると、各マスタユニットが、最大データサイズのデータをマスタユニット(1)から順番にデータ転送をしたとすると、図14に示すように、マスタユニット(1)は、1回のデータ転送処理で全てのデータを転送できるが、最大データサイズが「2」以上のマスタユニット(2),(3)は、中断処理が入り、複数回にわたって1回分のデータを転送することになる。
マスタユニット(1)に着目すると、図15(a)に示すように、マスタユニット(1)が最後にバスアクセス許可通知を受けた場合でも、応答性の保証値は、3つ分のデータサイズを転送するために要する時間で済む。そして、その場合のデータ転送が完了するまでの保証値は、7つ分のデータサイズを転送するために要する時間となる。また、図15(b)から(d)に示すように、他のマスタユニットが最後にバスアクセス許可通知を受けた場合、マスタユニット(1)がバスアクセス許可通知を受けてバスアクセス権を獲得し、データ転送を開始し始める時間並びにデータ転送を完了する時間はさらに短くなる。このように、マスタユニット(1)にとっては、連続アクセス時間(第2タイマ最大値,占有保持時間)を大きくすることで、データ量にかかわらず、転送完了までの時間を削減し高速化が可能となる。また、他のマスタユニットにとっても、応答性の保証値は、最大でも6つ分のデータサイズを転送するに要する時間となるため、従来のものよりも短くすることができる。
図16は、本発明の第4の実施の形態を示している。本実施の形態では、図12に示した実施の形態を基本とし、一部改良している。すなわち、図13と図16を比較すると明らかなように、S14の分岐判断でYesとなった場合の飛び先が異なっている。つまり、図13の第3の実施の形態では、BGYの消滅に伴い(S14でYes)、処理ステップS17に飛び、BGも消滅させたが、本実施の形態では、BGYが消滅(S14でYes)した場合に処理ステップS16の分岐判断に飛ぶようにしている。これにより、BGYが消滅したとしても、他のマスタユニットからリクエストがこない場合には、処理ステップ16の分岐判断がNoとなり、処理ステップ14に戻ることになる。つまり、正常終了してBGYが消滅しても、今までデータ転送を行なっていたマスタユニットはバスアクセス許可通知を獲得したまま(BG=1)となる。
従って、次に、当該マスタユニットがデータ転送しようとした場合には、バスアクセス権を獲得しているため、そのままBSY=1にしてデータ転送を行なうことができる。こけにより、不要なバス切替処理の発生を削減できる。
すなわち、同一マスタユニットが連続してアクセスする場合、従来方式では、図17に示すように、マスタユニット(1)は、1回のデータ転送が完了後にBREQ1,BSY1を消滅させ、それをうけてアービタ15がBG1を0にする。その後、同じマスタユニット(1)がデータ転送をしようとした場合、再度、アービタ15に対してバスアクセス権獲得要求(BREQ1=1)をする。するとアービタ15は、そのマスタユニット(1)にバスアクセス権を与えることを決定するとともにバスアクセス許可通知(BG1=1)を発行するので、マスタユニット(1)は、BG1=1を受信後、実際にデータ転送を開始する(BSY1=1)。従って、従来方式では、バスアクセス権獲得のオーバーヘッドによる遅延が生じてしまう。
これに対し、本実施の形態の方式は、図18に示すようにBG1=1の状態が維持されているため、他のマスタユニットからのリクエストが来る前に次のデータの転送が必要になった場合には、そのままデータ転送を開始することができる。
また、図19,図20を比較すると明らかなように、データ転送が完了した後もバスアクセス権を獲得(BG=1)していた場合に、別のマスタユニットがリクエストを発行した場合でも、本実施の形態の方式では従来のものと同様のタイミングでリクエストを発行した別のマスタユニットが転送開始できるので問題はない。
簡単に説明すると、図19の従来方式のものでは、マスタユニット(1)は、データ転送完了後にBREQ1,BSY1をクリア(0)にし、それを受けてアービタ15はBG1を消滅(0)にする。この後、別のマスタユニット(2)がバスアクセス権獲得要求を出力(BREQ2=1)すると、アービタ15がバスアクセス許可通知(BG2=1)を発行し、それを受けてマスタユニット(2)はデータ転送を開始(BSY2=1)する。このBREQ2=1になってからBSY2=1になるまでのタイムラグがバスアクセス権獲得のオーバーヘッドとなる。
これに対し、図20の本方式のものでは、マスタユニット(1)はデータ転送完了後もBREQ1,BSY1を1のままにするが、他のマスタユニットからリクエストを受けるとBG1を消滅させることで、BREQ1,BYG1も消滅する。また、アービタは、BREQ1,BSY1のクリア(0)と同時にBG2が出力されるため従来方式と同等となる。
図21は、本発明第5の実施の形態のマスタユニットの機能を示すフローチャートである。本実施の形態は、図7に示す第1の実施の形態のフローチャートの機能を基本とし、処理ステップS6の分岐判断でNoになった場合に、すぐにBSYを消滅させるのではなく、現在行なっている処理が高優先度処理か否かを判断する分岐判断処理ステップ(S10)を追加した。そして、高優先度処理実行時の場合には(S10でYes)、処理ステップS6に戻り、高優先度処理でない場合にはS7に飛びBSYを消滅させるようにした。
これにより、異常時等にともない停止処理などの高優先度処理を実行中にBGが消滅したとしても、下剤実行中の高優先度処理が完了するまでS10とS6の間を巡回する。よって、BG消滅後もアクセスを継続して実行できる。つまり、アクセス終了をマスタユニット側でも判定することが可能なため、バスアクセス権の解放(BG=0)が求められている場合でも異常処理時など優先度の高い処理を行うことが可能となる。
図22に示すように、通常処理時は、マスタユニット(1)がアクセス中(データ転送中)に、マスタユニット(2)のBREQに伴いBG1がクリアされると、マスタユニット(1)はBG1クリアに応じてバスアクセスを終了し、BSYをクリア(0)にする。その後、バス切替を経て、マスタユニット(2)のバスアクセス権をセットする。
一方、異常処理時は、図23に示すように、マスタユニット(1)がアクセス中に、マスタユニット(2)のBREQ2に基づきBG1がクリアされても、マスタユニット(1)は異常を検知したため、BG1クリアに応ぜず異常処理を起動し、その異常処理完了後(S10でYes,S6でYes)、BSY,BREQをクリアする。
一方、第1の実施の形態のように、バスアクセス権獲得要求を遅延させることにより、以下に示すような作用効果を期することもできる。すなわち、個々のマスタユニットに対してwait設定を行うことで、不要なバスアクセスを削減することができる。一例を示すと、マスタユニットは、2ms毎にBREQを発行してデータ転送をするように設定されている場合において、その転送されたデータを使用する演算システム側のデータの読込が、10msであるとする。すると、2ms毎に頻繁にデータ転送し、最新のデータにメモリ更新したとしても、実際の演算処理に反映されないデータが存在する。そこで、例えば第1タイマの第1タイマ最大値を5msに設定することで、5msに1回の割合でデータ転送を行なうことができる。これにより、データ転送する回数を削減しつつ、データ転送したデータを有効に演算処理に利用できるようにすることができる。
例えば、各マスタユニット(1)から(3)における演算時間,転送対象のデータのデータサイズとそれに要する転送時間,更新周期並びに必要な更新周期が図24に示すような仕様となっている。そして、バスの転送速度は100byte/msである。なお、図において、更新周期の最大値は、他マスタのデータ転送を待たされた場合である。
上記の条件において、もっとも効率よくバスを利用出来た場合、
100byte/6ms+200byte/12ms+400byte/9ms
=77.777byte/ms
となり、バスの転送能力の約78%を利用することになる(図25参照)。
これに対し、それぞれのマスタがデータ更新の必要な周期に基づいて、
目標時間 ― 演算時間 ―データ転送時間―バス権待ち時間(最大)
をBREQのマスク設定時間とすることで不必要なデータ転送を防止出来る。
具体的には、
マスタ(1):20ms― 5ms―1ms―(2+4)ms=8ms
マスタ(2):20ms―10ms―2ms―(1+4)ms=3ms
マスタ(3):20ms― 5ms―4ms―(1+2)ms=8ms
の各値を第1タイマ最大値に設定する。
係る背一定にすることにより、最短周期での動作時のデータ転送量は、
100byte/(8+5)ms+200byte/(3+10)ms
+400byte/(8+5)ms
=100/13+200/13+400/13
=700/13
=53.8byte/ms
となり、バスの転送能力の約54%を利用することになる(図26参照)。このように、マスク期間を設定することで必要なデータ更新を行いつつ、バス利用比率を低下することができる。
上記した各実施の形態は、いずれもアービタ本体15aの入力側と出力側のいずれか一方にマスク機能を設けたが、本発明はこれに限ることはなく、例えば図27に示すように両方に設けてももちろん良い。この場合、例えば、図28に示すように(1)BREQ1がONになってから一定期間(第1タイマ最大値で設定された時間)経過後に、アービタ本体にBREQ1=1が入力される。(2)すると、アービタ本体は、個々のマスタ毎に設定された、優先度等に基づき所定のマスタユニットに対してバスアクセス権を与える(図の場合、BG1=1)。
(3)バスアクセス許可通知(BG1=1)を受けたマスタユニットは、処理中を示すBSY信号を出力するともともにデータ転送を行なう。(4)このBG1=1になってから第2タイマがスタートし、第2タイマ最大値に至る時間内では、BG1=1の状態を保持されるため、マスタユニットは少なくともその期間はデータ転送が行える。なお、この期間中に他のマスタユニットからリクエストを受けた場合、BG1が消滅する。(5)これを受けて、マスタユニットはBGY1をクリア(0)するため、アービタは、BSY1信号が消滅するのを待って、新たなマスタユニットへバス権を与える。
アービタ本体の入力側と出力側に設定する機能は、図27に示すものに限ることはなく、上述した各実施の形態を適宜組み合わせることができるのはもちろんである。
さらに、上述した実施の形態では、バックプレーン(バックプレインボード)11に複数のユニットを装着し、各ユニットはバックプレーン内のバスを介して接続するとともに、アービタ15をバックプレーン11に設置した構成を採っている。しかし、本発明はそれに限ることはなく、バックプレーン無し(例えばDINレール取付けタイプ)でユニット同士が横連結して、各ユニットを貫通バスでつなげる構成のものにも適用が出来る。係る場合、制御装置を構成するいずれかのユニットにアービタを設置したり、アービタユニットを設けることも出来る。その場合には、各マスタユニットとアービタとを接続するための制御線を、各ユニットを通すことになる。
また、マスタユニット(バスマスタユニット)は、ユーザプログラム演算処理する「CPUユニット」はもちろんのこと、他に、モーション系を制御する「モーションコントロールユニット」、他のPLCとデータのコントローラ間通信を行なう「通信ユニット」、なにか特化した演算処理をする高機能演算ユニットなど、各種のものに適用できる。そして、このマスタユニット機能をもつことで、制御のための入力データ・出力データをCPUユニット経由で授受しなくて済むという作用効果を奏する。
従来例を説明する図である。 従来例を説明する図である。 従来例を説明する図である。 従来例を説明する図である。 本発明の好適な一実施の形態を示す頭である。 通常のデータ転送する場合の各制御線の状態(1/0)を示すタイミングチャートである。 第1の実施の形態のマスタユニット12の機能を示すフローチャートである。 本実施の形態のアービタ15の内部構造の一例を示している。 本実施の形態の作用を説明するタイミングチャートである。 第2の実施の形態のアービタ15の内部構造の一例を示している。 本実施の形態の作用を説明するタイミングチャートである。 第3の実施の形態のアービタ15の内部構造の一例を示している。 第3の実施の形態のアービタ15の機能を示すフローチャートである。 本実施の形態の作用効果を説明する図である。 本実施の形態の作用効果を説明する図である。 第4の実施の形態のアービタ15の機能を示すフローチャートである。 本実施の形態の作用効果を説明する図である。 本実施の形態の作用効果を説明する図である。 本実施の形態の作用効果を説明する図である。 本実施の形態の作用効果を説明する図である。 第5の実施の形態のマスタユニットの機能を示すフローチャートである。 本実施の形態の作用効果を説明する図である。 本実施の形態の作用効果を説明する図である。非リアルタイムバースト転送の詳細なタイミングチャートを示す図である。 第1の実施の形態の別の作用効果を説明する図である。 第1の実施の形態の別の作用効果を説明する図である。 第1の実施の形態の別の作用効果を説明する図である。 別の実施の形態を示すアービタの内部構造の一例を示す頭である。 その実施の形態の作用効果を説明するタイミングチャートの一例を示す頭である。
符号の説明
10 制御装置
11 バックプレーン
12 マスタユニット
13 スレーブユニット
15 アービタ
16 バス
17 制御線
21 第1マスク部
22 第1タイマ部
23 第1比較器
24 第1タイマ最大値記憶部
31 第2マスク部
32 第2タイマ部
33 第2比較器
34 第2タイマ最大値記憶部
35 AND回路
40 マスタ優先度記憶部

Claims (11)

  1. 制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットとの通信をする際の通信制御方法であって、
    前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行し、
    前記マスタユニットが前記バスアクセス権獲得要求を出力してから、そのバスアクセス権獲得要求が前記アービタ内のバスアクセス権許可通知を発行するアービタ本体に入力するまで所定時間遅らせるようにし、
    かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにしたことを特徴とする通信制御方法。
  2. 制御装置を構成する複数のマスタユニットが、前記制御装置内に設けられたバスを介して他のユニットと通信をする際の通信制御方法であって、
    前記マスタユニットは、前記バスを介して行なうデータ転送を実行するのに先立ち、前記制御装置に設けられたアービタに対してバスアクセス権獲得要求を出力し、そのアービタからバスアクセス権許可通知を受けたマスタユニットが前記データ転送を実行するものであり、
    前記アービタ内の前記バスアクセス権許可通知を発行するアービタ本体から、前記バスアクセ権許可通知を発行してから所定時間は、そのバスアクセス権許可通知を発行したマスタユニットに対するバスアクセス権を保持し、そのマスタユニットがデータ転送することを保証し、
    かつ、前記遅らせる所定時間は、各マスタユニット毎に設定できるようにしたことを特徴とする通信制御方法。
  3. 前記所定時間経過前に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、前記所定時間経過後に現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、
    前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始することを特徴とする請求項2に記載の通信制御方法。
  4. 前記所定時間経過後に他のマスタユニットからのバスアクセス権獲得要求が前記アービタ本体に入力された場合には、現在バスアクセス権を獲得しデータ転送中のマスタユニットは、データ転送を中断し、
    前記アービタから新たにバスアクセス権許可通知を受けたマスタユニットがデータ転送を開始することを特徴とする請求項2または3に記載の通信制御方法。
  5. 前記所定時間経過後も他のマスタユニットからのバスアクセス権獲得要求が無い場合には、バスアクセス権を獲得したマスタユニットは、そのまま継続してデータ転送する請求項2から4のいずれか1項に記載の通信制御方法。
  6. 前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であってもバスアクセス権獲得要求を出力している他のマスタユニットに対してバスアクセス許可通知を発行し、データ転送可能としたことを特徴とする請求項2から5のいずれか1項に記載の通信制御方法。
  7. 前記所定時間経過前にデータ転送を完了した場合には、その所定時間経過前であっても自己に与えられていたバスアクセス許可通知が解消され、そのマスタユニットが保持していたバスアクセス権が解消することを特徴とする請求項2から6のいずれか1項に記載の通信制御方法。
  8. バスアクセス権を獲得しデータ転送したマスタユニットが、そのデータ転送を完了した場合でも、他のマスタユニットからのバスアクセス権獲得要求が無い場合には、前記データ転送を完了したマスタユニットが、バスアクセス権を獲得した状態を保持することを特徴とする請求項1から7のいずれか1項に記載の通信制御方法。
  9. 現在バスアクセス権を獲得しデータ転送中のマスタユニットに対し、バスアクセス許可通知が解消された場合に、現在データ転送中のデータが優先度の高いデータの場合には、そのまま継続してデータ転送を続行できるようにしたことを特徴とする請求項1から8のいずれか1項に記載の通信制御方法。
  10. 複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、
    前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、
    前記アービタは、
    前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、
    前記マスタユニットが出力したバスアクセス権獲得要求を前記アービタ本体に入力するのを一定時間遅延させるマスク機能とを備え、
    前記マスク機能における遅延させる時間は、対応するマスタユニット毎に設定可能としたことを特徴とする制御装置。
  11. 複数のマスタユニットと、その複数のマスタユニットのバスアクセスを制御するアービタとを備えた制御装置であって、
    前記複数のマスタユニットは、前記バスアクセスを用いたデータ転送をするに先立ち、前記アービタに対してバスアクセス権獲得要求を出力する機能と、そのバスアクセス権獲得要求に基づき前記アービタからバスアクセス権許可通知を受信したことを契機として前記バスアクセスをしてデータ転送を実行する機能とを備え、
    前記アービタは、
    前記バスアクセス権獲得要求を受信した場合に、バスアクセスを許可するマスタユニットを決定し、その決定したマスタユニットに対してバスアクセス許可通知を発行する制御を行なうアービタ本体と、
    前記アービタ本体が決定したマスタユニットに対し、前記アービタ本体が前記バスアクセス許可通知を発行してから一定期間は、そのマスタユニットに対するバスアクセス権を保持させる機能を備え、
    そのバスアクセス権を保持させる一定期間は、マスタユニット毎に設定可能としたことを特徴とする制御装置。
JP2005024625A 2005-01-31 2005-01-31 通信制御方法および制御装置 Pending JP2006209707A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005024625A JP2006209707A (ja) 2005-01-31 2005-01-31 通信制御方法および制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005024625A JP2006209707A (ja) 2005-01-31 2005-01-31 通信制御方法および制御装置

Publications (1)

Publication Number Publication Date
JP2006209707A true JP2006209707A (ja) 2006-08-10

Family

ID=36966448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005024625A Pending JP2006209707A (ja) 2005-01-31 2005-01-31 通信制御方法および制御装置

Country Status (1)

Country Link
JP (1) JP2006209707A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546540A (ja) * 1991-08-15 1993-02-26 Pfu Ltd 禁止時間付競合調停方式
JPH08339346A (ja) * 1995-06-09 1996-12-24 Toshiba Corp バスアービタ
JPH11242506A (ja) * 1998-02-24 1999-09-07 Omron Corp プログラマブルコントローラ
JPH11328107A (ja) * 1998-05-15 1999-11-30 Fujitsu Ltd バスパーキング装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546540A (ja) * 1991-08-15 1993-02-26 Pfu Ltd 禁止時間付競合調停方式
JPH08339346A (ja) * 1995-06-09 1996-12-24 Toshiba Corp バスアービタ
JPH11242506A (ja) * 1998-02-24 1999-09-07 Omron Corp プログラマブルコントローラ
JPH11328107A (ja) * 1998-05-15 1999-11-30 Fujitsu Ltd バスパーキング装置

Similar Documents

Publication Publication Date Title
EP0867814B1 (en) System and method for controlling a bus
JP4907166B2 (ja) リソース管理装置
US7467245B2 (en) PCI arbiter
JPH04246740A (ja) マイクロコンピュータ
JP5829890B2 (ja) 半導体データ処理装置、タイムトリガ通信システム及び通信システム
EP3358468B1 (en) Semiconductor device
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
US9135195B2 (en) Prediction of electronic component behavior in bus-based systems
US20130174161A1 (en) Information processing apparatus and method of controlling information processing apparatus
EP1811393A1 (en) Method and system for data transfer
JP2010165175A (ja) バスの使用権を制御する装置および方法
US5974479A (en) System for executing, canceling, or suspending a DMA transfer based upon internal priority comparison between a DMA transfer and an interrupt request
JP5106630B2 (ja) バス調停装置
US5787263A (en) Method of an apparatus for controlling data transfer
JP2008146541A (ja) Dma転送システム、dmaコントローラ及びdma転送方法
JP2006209707A (ja) 通信制御方法および制御装置
JP2006215621A (ja) Dma制御装置
JP2012079165A (ja) バス調停装置、バス調停方法
JP2006197417A (ja) 通信制御方法及びシステム
JP7226084B2 (ja) 情報処理装置
JPH0573483A (ja) バス使用権制御方法
JP2008165463A (ja) バス制御装置
JPH04256246A (ja) バス優先占有方式およびその方式を使用した通信ネットワーク接続装置
JPH04178869A (ja) マルチプロセッサシステムの割込み制御装置とその割込み通信方法
KR100583455B1 (ko) 프로그램 가능한 간단한 하드웨어 구조를 갖는 버스 중재기

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101208