(57)【要約】【課題】  転送効率がより向上したバス制御システムを提供することを目的とする。【解決手段】  本発明に係るバス制御システムは、共通バス１１０に接続されたバスマスタ１１１，１１２と、バスマスタ１１１との間でアービトレーション方式によってデータ転送を行うバススレーブ１２１とを備えたバスシステム１であって、バススレーブ１２１に接続され、データ転送を制御するライブ・ロック制御回路２０２を備え、当該ライブ・ロック制御回路２０２は、バスマスタ１１１に対するリトライ応答をカウントし、当該カウント数に応じてバスマスタ１１１のアクセス要求を優先的に受付ける優先設定を行うものである。さらに、このライブ・ロック制御回路２０２は、当該バスマスタ１１２からアクセス要求を受けた場合には、バスマスタ１１２に対してリトライ応答を行う。【選択図】  図２
2007087247.tif 000002
【特許請求の範囲】
【請求項１】
共通バスに接続された複数のバスマスタと、
前記共通バスを介して、前記複数のバスマスタとデータ転送を行うバススレーブと、
前記複数のバスマスタのバスマスタごとに当該バスマスタに対するリトライ応答をカウントし、カウント数に応じて当該バスマスタからのアクセス要求を優先的に受付ける優先設定を行う制御部とを有するバス制御システム。
【請求項２】
前記制御部は、前記複数のバスマスタのそれぞれに対するリトライ応答をカウントするリトライ・カウント部を、前記複数のバスマスタごとに有することを特徴とする請求項１記載のバス制御システム。
【請求項３】
前記制御部は、前記優先設定が行われたバスマスタとは異なるバスマスタからアクセス要求を受けた場合には、当該バスマスタに対して前記リトライ応答を行うリトライ代行部を有することを特徴とする請求項１又は２記載のバス制御システム。
【請求項４】
前記制御部は、前記バススレーブに設けられることを特徴とする請求項１乃至３のいずれかに記載のバス制御システム。
【請求項５】
前記制御部は、前記バススレーブの動作を制御するバススレーブ・ロジックに接続され、前記優先設定が行われたバスマスタからアクセス要求を受けた場合には、当該アクセス要求を前記バススレーブ・ロジックに転送することを特徴とする請求項４記載のバス制御システム。
【請求項６】
前記制御部は、前記バススレーブ・ロジックと別個に設けられた制御回路によって構成されることを特徴とする請求項２乃至４のいずれかに記載のバス制御システム。
【請求項７】
前記制御部は、前記バススレーブのインタフェース回路に含まれることを特徴とする請求項２乃至４のいずれかに記載のバス制御システム。
【請求項８】
前記共有バスに接続された前記バススレーブと異なる他のバススレーブを、さらに備え、
前記制御部は、前記他のバススレーブに接続され、前記バスマスタと前記バススレーブとの間のデータ転送とともに、前記バスマスタと前記他のバススレーブとのデータ転送を制御することを特徴とする請求項１乃至７のいずれかに記載のバス制御システム。
【請求項９】
前記共有バスに接続された前記バススレーブと異なる他のバススレーブを、さらに備え、
当該他のバススレーブは、前記制御部と別個に設けられ、前記バスマスタとのデータ転送を制御する他の制御部を有し、
当該他の制御部は、前記バスマスタに対するリトライ応答をカウントし、当該カウント数に応じて前記バスマスタのアクセス要求を優先的に受付ける優先設定を行うことを特徴とする請求項１乃至７のいずれかに記載のバス制御システム。
【請求項１０】
前記他の制御部は、前記リトライ代行部と別個に設けられた他のリトライ代行部を有し、
当該他のリトライ代行部は、前記他のバスマスタからアクセス要求を受けた場合には、前記他のバスマスタに対して前記リトライ応答を行うことを特徴とする請求項９記載のバス制御システム。
【請求項１１】
共通バスに接続された第１のバスマスタ及び第２のバスマスタと、
前記共通バスを介して、前記第１のバスマスタ又は第２のバスマスタとデータ転送を行うバススレーブと、
前記バススレーブに接続され、前記データ転送を制御する制御部を備え、
当該制御部は、前記第１のバスマスタに対するリトライ応答をカウントし、当該カウント数に応じて前記第１のバスマスタのアクセス要求を優先的に受付ける優先設定を行い、
当該優先設定が行われた状態で、前記第２のバスマスタからアクセス要求を受けた場合には、前記第２のバスマスタに対して前記リトライ応答を行うバス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバス制御システムに関し、特に、ＬＳＩ内部において周辺回路に接続されるバス制御システムに関する。
【背景技術】
【０００２】
従来から、共通バスを介してデータ転送を行う共通バスシステムがある。この共通バスシステムでは、複数の装置が同時に1つの共通バスを使用することができない。そのため、バスアービタは、複数の装置からのバス使用権要求が重なった場合には、複数の装置が時分割的に共通バスを使用できるように共通バスの使用権の調停を行っている。このバスアービタによる調停方式としては、各装置に定期的にバス獲得最優先の権利が巡ってくる巡回式バス・アービトレーション等、種々の方法がある。以下、本明細書では、共通バスを使用するバス使用権を得た装置をバスマスタと呼び、バスマスタの転送相手となる装置をバススレーブと呼ぶ。
【０００３】
このように、バスアービタおよび複数のバスマスタ、バススレーブは、１つの共通バスに接続されている。バスマスタは、共通バス上にアドレスを出力することでバススレーブを指定し、バススレーブとの間で共通バスを介してデータのやりとりを行う。具体的には、バスマスタがバススレーブに対してデータ転送を行う場合には、バスマスタは、まずバスアービタにバス使用権を要求する。バスアービタは、複数のバスマスタからのバス使用権要求を調停し、１つのバスマスタに対してバス使用権を与える。バス使用権を得たバスマスタは、バススレーブに対してデータ転送可能となる。
【０００４】
バススレーブは、バスマスタのアクセス要求を受付可能な状態の場合には、このアクセス要求を受付け、通常はオーケー応答（ＯＫ応答）をバスマスタに対して返す。これに対して、バススレーブは、なんらかの理由で直ちにバスマスタのアクセス要求を受付可能でない状態の場合、バスマスタに不必要にバスを占有させないために、リトライ応答（ＲＥＴＲＹ応答）をバスマスタに返す。リトライ応答を受けたバスマスタは一旦バス使用権を失い、他のバスマスタがバスを使用してデータ転送を行うことができる。バス使用権を失ったバスマスタは、再度バスアービタへバス使用権の要求を行い、再び同じバススレーブへアクセス要求を試みる。
【０００５】
図１１は、このような共通バスを使用する際の様子を示す模式図である。図１１（ａ）に示すように、バス権を得たバスマスタ１１１，１１２は、バススレーブ１２１に対してアクセス要求を行う。
まず、図１１（ｂ）示すように、バス権を得たバスマスタ１１１がバススレーブ１２１にアクセス要求を出すと、バススレーブ１２１は処理可能であるため、バスマスタ１１１のアクセス要求を処理する（処理１）。
図１１（ｃ）に示すように、バス権を得たバスマスタ１１２がバススレーブ１２１にアクセス要求を出すと、バススレーブ１２１は処理中で受付けられないため、リトライ応答をバスマスタ１１２に対して発行する（処理２）。
図１１（ｄ）に示すように、バススレーブ１２１の処理が終了し、処理可能状態になると、バス使用権がバスマスタ１１１からバスマスタ１１２に移り、バスマスタ１１２がバススレーブ１２１へアクセス要求を出す。バススレーブ１２１は、処理可能な状態であるため、バスマスタ１１２のアクセス要求を受付ける（処理３）。
【０００６】
図１１（ｂ）〜図１１（ｃ）に示された処理１〜２の動作が繰り返し起こる場合、結果として図１２に示されたようにバススレーブ１２１はバスマスタ１０１のアクセスのみを受付け、バスマスタ１１２のデータ転送が行われない状況に陥る可能性がある。
図１２は、バスマスタ１１１と１１２が交互にアクセス要求を出すことにより、バスマスタ１１２がバススレーブ１２１に対してアクセス（図１２では、バスマスタからのＷＲＩＴＥ要求を例としている。ＷＲＩＴＥ要求を"W"で示す）を行おうとするときは、バススレーブ１２１は常にバスマスタ１１１の要求に基づいた処理を行っている状態になってしまうことを示している。
図１２に示すように、バストランザクションが周期的なパターンに陥り、特定のバスマスタのアクセス要求のみが処理され、他のバスマスタのアクセス要求が全く処理されないおそれがある。このような状態は、バスがロックしてしまったかのような状態であり、このような状態は、特にライブ・ロック状態（ライブ・ロック）と呼ばれ、バストランザクション上で避けなければならない事項の一つである。
【０００７】
このようなライブ・ロックを解消するバスアービタの一例が、特許文献１に開示されている。図１３を用いて、この従来のバスアービタの一構成例について説明する。図１３は、従来のバスアービタの一構成例を示すブロック図である。
図１３に示すように、調停回路として機能するアービタ９０１の周辺にバストランザクション検出部９０２およびライブ・ロック検出回路９０３が設けられている。このバストランザクション検出部９０２は、ライブ・ロック検出回路９０３とともに、バス１１０のトランザクションを監視し、常にリトライ状態になっているバスマスタ１１１を検出する。
【０００８】
ライブ・ロック検出部９０３は、閾値レジスタ９０４に設定された値とリトライ回数が一致した場合に、バストランザクションの状態がライブ・ロック状態であると検出する。バス独占モード検出部９０５は、ライブ・ロック状態が検出された場合には、ロック状態になっていたバスマスタ１１１に対して、バス１１０の独占的な使用権を与える。これによって、ライブ・ロック状態のバスマスタ１１１は、他のバスマスタ１１２に影響を受けずに目的とするバススレーブ１２１にデータ転送を行うことができる。
【０００９】
特許文献２に、共通バスに関するアービトレーション方式が開示されている。特許文献２に開示のバスアービタでは、応答の遅いバススレーブに対して特定のバスマスタがアクセスしたとき、アクセス制御部が、このバスマスタに対してリトライ応答を返す。アクセス制御部は、それと同時に、このバスマスタに対するバス要求抑止信号を出力する。このバスマスタからのバス使用権要求は、このバスマスタがアービタに対してバス使用権要求を行っても、このバス要求抑止信号がアサートされている間バスアービタには入力されない。このバス要求抑止信号は、バススレーブが応答を返した時点で解除される。
【００１０】
しかしながら特許文献１に記載された、バスアービタ９０１では、ライブ・ロック状態と判定されたバスマスタ１１１に独占的なバス使用権を与えたとしても、目的とするバススレーブ１２１が未だに処理中であった場合、リトライされることがある。このとき、バス使用権はライブ・ロック状態のバスマスタ１１１が独占しているため、バススレーブ１２２又はバススレーブ１２３へアクセスする予定のバスマスタ１１２は、バスを使用することはできず、転送効率が悪化する。
さらに、閾値レジスタ９０４は、バスマスタ１１２がシステム上一定期間転送することができなくてもよいバスマスタであったとしても、バスマスタ１１２に対してもバスマスタ１１１と同様な閾値を設定する。そのため、バスマスタ１１１，１１２とバススレーブ１２１との間の転送効率を下げ、システムとしてのパフォーマンスを下げる。
【００１１】
また、特許文献２に記載されたアービトレーション方式では、応答が遅い特定のバススレーブに対してアクセスのためのバス獲得要求を、このバススレーブからの応答があるまで受付けないようにするものである。この特許文献２に開示の技術では、バスマスタからのバス獲得要求のタイミングしだいでは、ライブ・ロック状態を引き起こしてしまう。
【特許文献１】特開２０００−３１５１８８号公報
【特許文献２】特開平４−１９２０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このように、従来のバスアービタでは、ライブ・ロック状態を有効に回避できず、ライブ・ロック状態を回避しても、システムとしての転送効率が低下してしまう場合があった。
【課題を解決するための手段】
【００１３】
本発明に係るバス制御システムは、共通バスに接続された複数のバスマスタと、前記共通バスを介して、前記複数のバスマスタとデータ転送を行うバススレーブと、前記複数のバスマスタのバスマスタごとに当該バスマスタに対するリトライ応答をカウントし、カウント数に応じて当該バスマスタからのアクセス要求を優先的に受付ける優先設定を行う制御部とを有するものである。
【００１４】
本発明に係るバスシステムは、共通バスに接続された第１のバスマスタ及び第２のバスマスタと、前記共通バスを介して、前記第１のバスマスタ又は第２のバスマスタとデータ転送を行うバススレーブと、前記バススレーブに接続され、前記データ転送を制御する制御部を備え、当該制御部は、前記第１のバスマスタに対するリトライ応答をカウントし、当該カウント数に応じて前記第１のバスマスタのアクセス要求を優先的に受付ける優先設定を行い、当該優先設定が行われた状態で、前記第２のバスマスタからアクセス要求を受けた場合には、前記第２のバスマスタに対して前記リトライ応答を行うものである。
【発明の効果】
【００１５】
本発明によれば、転送効率がより向上したバス制御システムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
本発明に係るバス制御システムは、好適には、バスシステムに対してバス使用権を要求し、他の回路へデータ転送を行うバスマスタ回路とバススレーブ回路とその制御を行うバス制御システムである。
以下、本発明を実施するための最良の形態について図を参照しながら説明する。
発明の実施の形態１．
まず、図１を用いて、本発明に係るバス制御システムの概略について説明する。図１は、本発明に係るバス制御システムの概略説明を示す模式図である。なお、このバス制御システムでは、図１１を用いて説明した通常の処理１〜３の他に、以下に説明する各処理が行われる。
【００１７】
図１（ａ）に示すように、本発明に係るバス制御システム１００において、バスマスタ１１１は、バス１１０を介してバススレーブ１２１にアクセス要求を行う。例えば、バスマスタ１１２からの要求に基づいてデータの処理中である場合には、バススレーブ１２１はデータを受付けることができない。バススレーブ１２１は、その内部で計数しているバスマスタ１１１のリトライ・カウンタをカウントアップし、設定された閾値を超えると、ライブ・ロック状態であるとみなす。このバススレーブ１２１は、バスマスタ１１１に優先権を設定する。
【００１８】
図１（ｂ）に示すように、バススレーブ１２１の処理が終了し、処理可能状態になると、バスマスタ１１１、１１２ともにバススレーブ１２１を対象としたアクセス要求が可能となる。バスマスタ１１２からバススレーブ１２１を対象とするアクセス要求が行われ、バスマスタ１１２がバススレーブ１２１へアクセス要求を行う。このとき、バススレーブ１２１は、処理可能な状態であるが、バスマスタ１１１に優先権が設定されているため、バスマスタ１１２にリトライ応答を行う。
図１（ｃ）に示すように、バス使用権がバスマスタ１１２からバスマスタ１１１に移り、バスマスタ１１１がバススレーブ１２１へアクセス要求を行う。バススレーブ１２１は、優先権が設定されているバスマスタ１１１からのアクセス要求を受付ける。
【００１９】
続いて、図２を用いて、本発明に係るバス制御システム１００のバススレーブ１２１について詳細に説明する。
バススレーブ１２１は、バススレーブ・ロジック２０１、ライブ・ロック制御回路２０２を有する。
【００２０】
バススレーブ・ロジック２０１は、本来のバススレーブ機能を有するロジック本体によって構成されている。ライブ・ロック制御回路２０２は、ライブ・ロックを制御してアクセス要求を制御する制御部である。詳細には、ライブ・ロック制御回路２０２は、バスマスタごとにリトライした回数をカウントし、そのカウント数に応じてライブ・ロックとみなしたバスマスタ１１１〜１１３のいずれかに対して、バススレーブ・ロジック２０１へのデータ転送を優先的に許可する。
【００２１】
さらに続いて、図２を用いて、本発明におけるスレーブ１２１のライブ・ロック制御回路２０２について詳細に説明する。
ライブ・ロック制御回路２０２は、リトライ検出部２１０、ライブ・ロック検出部２２０、リトライ代行部２３０、リトライ・カウント部２４１，２４２，２４３を有する。また、ライブ・ロック制御回路２０２は、リトライ・カウント部をバスマスタの数の分だけ有し、バスマスタの個数とリトライ・カウント部の数は同数である。
【００２２】
リトライ検出部２１０は、バスマスタ１１１〜１１３からバススレーブ１２１に入力されるバスマスタ番号を取得する。それとともに、リトライ検出部２１０は、そのバスマスタ番号に対する応答信号を取得する。ここで、この応答信号は、バスマスタ１１１〜１１３がバススレーブ１２１にアクセス可能であることを示すオーケー応答、又はこのアクセスが可能でないことを示すリトライ応答のいずれかである。
【００２３】
リトライ検出部２１０は、バススレーブ・ロジック２０１の応答がリトライ応答である場合には、該当するバスマスタのリトライ・カウント部２４１〜２４３に対してカウント信号を出力する。これに対して、リトライ検出部２１０は、バススレーブ１２１の応答がオーケー応答である場合には、該当するバスマスタのリトライ・カウント部２４１〜２４３に対してリセット信号を出力する。
【００２４】
ライブ・ロック検出部２２０は、リトライ・カウント部２４１〜２４３のどのユニットからの信号なのかを判断する。ライブ・ロック検出部２２０は、この判断結果に応じて、バススレーブ１２１に対して、そのバスマスタ１１１〜１１３の要求を優先するための優先バスマスタ設定（以下、優先設定と呼ぶこともある）を行う。
ライブ・ロック検出部２２０は、リトライ・カウント部２４１〜２４３からの信号が入力されなくなった場合には、該当するバスマスタ１１１〜１１３の優先設定を解除する。また、リトライ検出部２１０は、この優先設定がライブ・ロック検出部２２０から入力されている間はカウント信号を出力しない。
【００２５】
リトライ代行部２３０は、優先バスマスタ設定された場合にのみ動作を行い、それ以外の場合は、バスマスタ１１１〜１１３の要求をバススレーブ１２１に通す。具体的には、リトライ代行部２３０は、優先バスマスタ設定がされた場合には、優先設定されていないバスマスタ１１１〜１１３からの要求に対して、バススレーブ・ロジック２０１の代わりにリトライ応答する。
【００２６】
リトライ代行部２３０は、優先設定されていないバスマスタ１１１〜１１３がアクセス要求を行った場合には、バススレーブ１２１に対するアクセス要求をマスクし、バススレーブ・ロジック２０１にはアクセス要求があったことを知らせない。これに対して、リトライ代行部２３０は、優先設定されているバスマスタ１１１〜１１３がアクセス要求を行った場合には、そのバスマスタ１１１〜１１３のアクセス要求をバススレーブ・ロジック２０１に送る。
【００２７】
リトライ・カウント部２４１〜２４３はそれぞれ、カウンタ３１１，３１２，３１３、閾値レジスタ３２１，３２２，３２３、比較器３３１，３３２，３３３を１組のユニットとして有する。
カウンタ３１１〜３１３は、リトライ検出部２１０から出力されるカウント信号によってカウントアップを行う。カウンタ３１１〜３１３は、カウント値が閾値に達した場合には、リセットされるまでそのカウント値を維持する。また、カウンタ３１１〜３１３は、リトライ検出部２１０からのリセット信号によって、カウンタをクリアする。
閾値レジスタ３２１〜３２３は、予め、バスマスタ１１１〜１１３ごとに、各バスマスタ１１１〜１１３の所定の閾値が設定されている。
比較器３３１〜３３３は、カウンタ値と閾値を比較する。比較器３３１〜３３３は、これら２つの値が一致していた場合には、ライブ・ロック検出部２２０に信号を送る。
【００２８】
ここで、リトライ・カウント部２４１〜２４３の閾値レジスタ３２１〜３２３への閾値の設定について説明する。閾値レジスタ３２１〜３２３に設定される閾値は、内部で設定したり、外部から設定したりすることができる。また、設定値は、ソフトウェアやその他の手段によって書換え可能なものにしてもよいし、予め定数として設定してもよい。
図３に、外部のバスマスタ１１１〜１１３から閾値を設定する場合のバス制御システム１００の一構成例が示されている。図３に示すように、バス制御システム１００は、閾値設定部２５を有する。
【００２９】
閾値設定部２５は、閾値レジスタ３２１〜３２３に割り当てられたアドレスに反応し、閾値データを閾値設定として、閾値レジスタ３２１〜３２３に書き込む。また、この閾値設定部２５をライブ・ロック制御回路２０２の外部装置として構成することも可能である。
図４に、外部端子から閾値を設定する場合のバス制御システム１００の一構成例が示されている。図４に示すように、バス制御システム１００は、外部端子２６１〜２６３を有する。この場合には、外部端子２６１〜２６３が外部装置に接続され、この外部装置から直接、閾値の設定が行われる。
【００３０】
次に、図５を用いて、本発明に係るバス制御システム１００の一連の動作について説明する。図５は、このバス制御システム１００の動作を示すタイミングチャートの一例である。ここで、適宜図２を参照しながら説明する。
バスマスタ１１１〜１１３がバススレーブ１２１に対してアクセス要求を行う。バススレーブ１２１がリトライ応答を返す度に、リトライ検出部２１０は、バスマスタ番号からバスマスタ１１１に対応するリトライ・カウント部２４１へカウント信号を出力する。例えば図５では、バスマスタ番号"２"にバスマスタ１１１が対応し、バスマスタ番号"１"にバスマスタ１１２が対応している。
【００３１】
カウント信号が入力されたリトライ・カウント部２４１は、カウンタ３１１をカウントアップする。図５では、バスマスタ番号"２"に対応したバスマスタ１１１からのアクセス要求に対してリトライ応答を返すごとに、カウンタ３１１は"０，１，２"とカウントアップしている。比較器３３１は、カウントアップされたカウンタ３１１と閾値レジスタ３２１の閾値とが一致するかを比較して判断する。図５に示すように、閾値レジスタ３２１には閾値として"２"が設定されている。
【００３２】
比較器３３１がカウンタ３１１と閾値レジスタ３２１の閾値とが一致したと判断した場合には、ライブ・ロック状態が成立したものと判定し、ライブ・ロック検出部２２０に判断結果を示す信号を入力する。図５では、比較器３３１は、カウンタ３１１が"２"をカウントしたとき、カウンタ"２"と閾値"２"とが一致するので、ライブ・ロック状態であると判定している。
【００３３】
ライブ・ロック検出部２２０は、リトライ・カウント部２４１内の比較器３３１からの信号を受ける。ライブ・ロック検出部２２０は、バスマスタ１１１がバススレーブ・ロジック２０１に優先するように、リトライ代行部２３０に対して優先設定を設定する。図５では、優先バスマスタ設定が"２"であるから、バスマスタ番号"２"のバスマスタ１１１は、バスマスタ番号"１"のバスマスタ１１２に優先してデータ転送可能となる。
【００３４】
優先バスマスタ設定が行われると、リトライ代行部２３０は、優先設定されたバスマスタ１１１のアクセス要求以外にはリトライ応答をバススレーブ・ロジック２０２に代わって応答する。これにより、優先設定されていないバスマスタ１１２，１１３のスレーブ・ロジック２０２に対するアクセスは、常にリトライ応答を受ける。図５では、バスマスタ番号"１"のバスマスタ１１２はリトライ応答を受ける。このとき、リトライ代行部２３０は、バススレーブ選択信号をマスクし、バススレーブ・ロジック２０１にはリトライ応答の出力を通知しない。そのため、図５に示すように、バススレーブ・ロジック２０１からの応答が行われていない。
【００３５】
リトライ代行部２３０は、優先設定されたバスマスタ１１１がバススレーブ・ロジック２０２にアクセス要求する場合には、バススレーブ・ロジック２０２にバスマスタ１１１のアクセス要求を通す。これにより、バススレーブ・ロジック２０２は、このバスマスタ１１１のデータ転送を受付けることができる。優先設定されたバスマスタ１１１のアクセス要求が受付けられると、リトライ検出部２１０は、リトライ・カウント部２４１のカウンタを０にリセットする。
【００３６】
続いて、図６，７を用いて、本発明に係るバス制御システム１００と従来のバスシステムとを比較する。
図６に、本発明に係るバス制御システム１００によるデータ転送を示すタイミングチャートが示されている。図６では、バスマスタ１１１，１１２は、それぞれ８クロック毎にアクセス要求を行っている。また、バススレーブ１２１に、バスマスタ１１１のリトライ回数の閾値として"４"が設定されている。
【００３７】
図６に示すように、バスマスタ１１２（マスタ番号１）が単体で４回要求を行った場合を想定する。この場合、バススレーブ１２１は、バスマスタ１１１（マスタ番号２）が４回リトライされた時点で、ライブ・ロックしていると判断する。バススレーブ１２１は、これに応じて、バスマスタ１１１（マスタ番号２）に優先権を与える。その次のバスマスタ１１２（マスタ番号１）の要求は、リトライされ、バスマスタ１１１（マスタ番号２）の要求がバススレーブ１２１に受付けられる。バスマスタ１１１（マスタ番号２）の要求が処理されるまでのクロック数は、３３（８×４＋１）となる。これにかかる時間は、１００ＭＨｚのバスの場合には０．３３μ秒となる。
【００３８】
これに対して、図７に、従来のバスシステムによるデータ転送を示すタイミングチャートが示されている。このバスシステムでは、ライブ・ロックの対策がなされていないものとする。図７でも、バスマスタ１１１，１１２は、８クロック毎にアクセス要求を行うとする。
図７に示すように、ライブ・ロックが起こり、バスマスタ１１２（マスタ番号１）が単体で連続１００回バス権を獲得して転送した場合、バスマスタ１１１（マスタ番号２）の要求が受付けられるまでのクロック数は、８０４（１００×８＋４）クロックとなる。これにかかる時間は、１００ＭＨｚのバスの場合には、８．０４μ秒となる。
【００３９】
以上のように、本発明のバス制御システム１００では、バススレーブ１２１のライブ・ロック制御回路２０２によってライブ・ロックを回避する。すなわち、バススレーブ１２１に長期間データ転送をすることができなかったバスマスタ１１２に対して、バススレーブ１２１が優先権を与え、バスマスタ１１２のデータ転送を実行する。ただし、バススレーブ１２１に対して優先権を持つバスマスタ１１２は、バスの独占権を持つわけではない。それ故、該当するバススレーブ１２１の優先権を持たないバスマスタ１１３は、その他のバススレーブ１２２，１２３に対するアクセス要求を行うことが可能である。これによって、データ転送の転送効率を確実に向上させることができる。
【００４０】
さらに、本発明のバス制御システム１００では、ライブ・ロック制御回路２０２と同様の機能をバススレーブ１２２、１２３に付加した場合、バススレーブ１２１〜１２３毎に各バスマスタ１１１〜１１３の閾値を設定することができる。そのため、各バスマスタ１１１〜１１３の特徴とそのバススレーブ１２１〜１２３の特徴を考慮した閾値を設定し、バススレーブ１２１〜１２３毎にライブ・ロックとみなす条件を柔軟に設定することができる。また、ライブ・ロック防止機能が必要なバススレーブをバススレーブ１２１，１２２に限定するようなシステムの場合、バススレーブ１２１，１２２にのみライブ・ロック回路２０２を付加することで、ライブ・ロックに対応することができる。
【００４１】
また、本発明のバス制御システム１００では、ライブ・ロック制御回路２０２を付加する場合、従来からのバススレーブ、バスマスタ、アービタ、バスに手を加える必要がない。バススレーブ・ロジック２０１に対するライブ・ロックを防止するためには、バススレーブ１２１に対してライブ・ロック制御回路２０２を接続するだけでよく、バススレーブ・ロジック２０１に手を加える必要がない。よって、従来のバススレーブ機能をそのまま再利用することができ、ライブ・ロックに簡便に対応することができる。
【００４２】
発明の実施の形態２．
本実施形態２では、ライブ・ロックを回避する必要のあるバススレーブがライブ・ロック制御回路を共有する場合について説明する。この場合、ライブ・ロック制御回路を共有するバススレーブはそれぞれ別個に、リトライ代行部を有する。ここでは、その他の構成は実施形態１と同様であるので、その説明を省略する。
【００４３】
図８に、本実施形態２におけるライブ・ロック制御回路４０２の一構成例が示されている。なお、図８においては、実施形態１における機能ブロックと同じ機能ブロックには同じ符号を付している。
図８に示すように、ライブ・ロック制御回路４０２は、バススレーブ１２１，１２２から独立した状態で構成され、これをバススレーブ１２１，１２２が共有している。さらに、バススレーブ１２１，１２２はそれぞれ、リトライ代行部４３１，４３２を有し、これらリトライ代行部４３１，４３２は、リトライ代行部２３０と同様の機能を有する。また、図８には、バススレーブ１２２のバススレーブ・ロジック２０３を有する。
【００４４】
本実施形態２では、リトライ検出部２１０に、バススレーブに対応したバススレーブ選択信号が入力される。具体的には、バススレーブ１２１を選択するバススレーブ選択信号、バススレーブ１２２を選択するバススレーブ選択信号が、リトライ検出部２１０に入力される。
これらのバススレーブ１２１，１２２がリトライを返した場合、リトライ・カウント部２４１〜２４３のカウンタ３１１〜３１３がカウントアップする。カウンタ３１１〜３１３は、バススレーブ１２１，１２２の優先バスマスタ設定がリトライ検出部２１０に入力された場合にはカウントを行わない。
【００４５】
ライブ・ロック検出部２２０は、比較器３３１〜３３３から信号が出力されると、バススレーブ１２１，１２２に応じて優先バスマスタ設定を行う。ライブ・ロック検出部２２０は、バススレーブ１２１のバススレーブ選択信号が入力されていたならば、バススレーブ１２１に対応した優先バスマスタ設定を出力する。これと同様に、ライブ・ロック検出部２２０は、バススレーブ１２２のバススレーブ選択信号が入力されていたならば、バススレーブ１２２に対応した優先バスマスタ設定を出力する
【００４６】
このような本実施形態２におけるバス制御システムにおいては、実施形態１のバス制御システム１と同様に、一連の動作を行う。図９のタイミングチャートに、本実施形態２のバス制御システムの動作が示されている。
具体的には、バスマスタ１１１〜１１３からバススレーブ１２１，１２２に対してアクセス要求があり、該当バススレーブ１２１がリトライ応答をしたとする。この場合には、リトライ検出部２１０等の各機能ブロックが実施形態１と同様に処理を行い、優先バスマスタ設定されたリトライ代行部４３１，４３２は、バスマスタ１１１〜１１３について優先設定を行う。例えば、図９に示すように、バス１１０を介して入力されたスレーブ選択信号に応じて、リトライ代行部４３１は、バスマスタ１１１に優先設定する。これによって、リトライ代行部４３１は、バスマスタ１１１にバスマスタ優先設定されている間、他の優先バスマスタ以外のバスマスタ１１２，１１３が転送した場合、バススレーブ選択信号をマスクし、バススレーブ１２１にはアクセスがなかったように振舞う。
【００４７】
このように、本実施形態２におけるライブ・ロック制御回路４０２を共通とする場合には、各バスマスタ１１１〜１１３のライブ・ロック条件として、バススレーブ１２１，１２２で同じ閾値を設定することができる。これによって、回路規模を縮小することができる。
【００４８】
その他の発明の実施の形態．
実施形態１，２においては、ライブ・ロック制御回路２０２，４０２を新たに設けたが、スレーブ１２１〜１２３ごとに構成の異なったライブ・ロック制御回路を構成してもよい。図１０に、本実施形態３における一構成例が示されている。なお、図１０においては、実施形態１，２と同じ機能ブロックについては同じ符号を付している。
【００４９】
また、図１０に示すように、リトライ・カウント部２４１が１つだけ設けられ、バスマスタ１１１のライブ・ロックのみを防止する構成となっている。このように必要な部分のみのライブ・ロック制御を行うことも可能である。これにより、実施形態２と同様に、回路規模を縮小できる。
【図面の簡単な説明】
【００５０】
【図１】本発明に係るバス制御システムを説明するための概略模式図である。
【図２】本発明に係るバス制御システムの一構成例を示すブロック図である。
【図３】本発明に係るバス制御システムにおける閾値設定の一例を示すブロック図である。
【図４】本発明に係るバス制御システムにおける閾値設定の他の一例を示すブロック図である。
【図５】本発明に係るバス制御システムにおける動作の一例を示すタイミングチャートである。
【図６】本発明に係るバス制御システムにおけるライブ・ロック状態を示すタイミングチャートである。
【図７】従来のバス制御システムにおけるライブ・ロック状態を示すタイミングチャートである。
【図８】本発明に係るバス制御システムの構成の他の一例を示すブロック図である。
【図９】本発明に係るバス制御システムにおける動作の他の一例を示すタイミングチャートである。
【図１０】本発明に係るバス制御システムの構成の他の一例を示すブロック図である。
【図１１】従来のバス制御システムにおけるライブ・ロック状態を説明するための概略模式図である。
【図１２】従来のバス制御システムにおける動作の一例を示すタイミングチャートである。
【図１３】従来のバス制御システムの一構成例を示すブロック図である。
【符号の説明】
【００５１】
１００…バス制御システム、１１０…バス、１１１〜１１３…バスマスタ、
１２１〜１２３…バススレーブ、１３１…スレーブ・インタフェース
２０１…バススレーブ・ロジック、２０２…ライブ・ロック制御回路
２１０…リトライ検出部、２２０…ライブ・ロック検出部、２３０…リトライ代行部、
２４１〜２４３…リトライ・カウント部、３１１〜３１３…カウンタ、
３２１〜３２３…閾値レジスタ、３３１〜３３３…比較器、２５…閾値設定部
４０２…ライブ・ロック制御回路、４３１，４３２…リトライ代行部
【図１】
2007087247.tif 000003
【図２】
2007087247.tif 000004
【図３】
2007087247.tif 000005
【図４】
2007087247.tif 000006
【図５】
2007087247.tif 000007
【図６】
2007087247.tif 000008
【図７】
2007087247.tif 000009
【図８】
2007087247.tif 000010
【図９】
2007087247.tif 000011
【図１０】
2007087247.tif 000012
【図１１】
2007087247.tif 000013
【図１２】
2007087247.tif 000014
【図１３】
2007087247.tif 000015