JP2007087247A - バス制御システム - Google Patents
バス制御システム Download PDFInfo
- Publication number
- JP2007087247A JP2007087247A JP2005277298A JP2005277298A JP2007087247A JP 2007087247 A JP2007087247 A JP 2007087247A JP 2005277298 A JP2005277298 A JP 2005277298A JP 2005277298 A JP2005277298 A JP 2005277298A JP 2007087247 A JP2007087247 A JP 2007087247A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- master
- slave
- retry
- bus master
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/374—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
【課題】
転送効率がより向上したバス制御システムを提供することを目的とする。
【解決手段】
本発明に係るバス制御システムは、共通バス110に接続されたバスマスタ111,112と、バスマスタ111との間でアービトレーション方式によってデータ転送を行うバススレーブ121とを備えたバスシステム1であって、バススレーブ121に接続され、データ転送を制御するライブ・ロック制御回路202を備え、当該ライブ・ロック制御回路202は、バスマスタ111に対するリトライ応答をカウントし、当該カウント数に応じてバスマスタ111のアクセス要求を優先的に受付ける優先設定を行うものである。さらに、このライブ・ロック制御回路202は、当該バスマスタ112からアクセス要求を受けた場合には、バスマスタ112に対してリトライ応答を行う。
【選択図】 図2
転送効率がより向上したバス制御システムを提供することを目的とする。
【解決手段】
本発明に係るバス制御システムは、共通バス110に接続されたバスマスタ111,112と、バスマスタ111との間でアービトレーション方式によってデータ転送を行うバススレーブ121とを備えたバスシステム1であって、バススレーブ121に接続され、データ転送を制御するライブ・ロック制御回路202を備え、当該ライブ・ロック制御回路202は、バスマスタ111に対するリトライ応答をカウントし、当該カウント数に応じてバスマスタ111のアクセス要求を優先的に受付ける優先設定を行うものである。さらに、このライブ・ロック制御回路202は、当該バスマスタ112からアクセス要求を受けた場合には、バスマスタ112に対してリトライ応答を行う。
【選択図】 図2
Description
本発明はバス制御システムに関し、特に、LSI内部において周辺回路に接続されるバス制御システムに関する。
従来から、共通バスを介してデータ転送を行う共通バスシステムがある。この共通バスシステムでは、複数の装置が同時に1つの共通バスを使用することができない。そのため、バスアービタは、複数の装置からのバス使用権要求が重なった場合には、複数の装置が時分割的に共通バスを使用できるように共通バスの使用権の調停を行っている。このバスアービタによる調停方式としては、各装置に定期的にバス獲得最優先の権利が巡ってくる巡回式バス・アービトレーション等、種々の方法がある。以下、本明細書では、共通バスを使用するバス使用権を得た装置をバスマスタと呼び、バスマスタの転送相手となる装置をバススレーブと呼ぶ。
このように、バスアービタおよび複数のバスマスタ、バススレーブは、1つの共通バスに接続されている。バスマスタは、共通バス上にアドレスを出力することでバススレーブを指定し、バススレーブとの間で共通バスを介してデータのやりとりを行う。具体的には、バスマスタがバススレーブに対してデータ転送を行う場合には、バスマスタは、まずバスアービタにバス使用権を要求する。バスアービタは、複数のバスマスタからのバス使用権要求を調停し、1つのバスマスタに対してバス使用権を与える。バス使用権を得たバスマスタは、バススレーブに対してデータ転送可能となる。
バススレーブは、バスマスタのアクセス要求を受付可能な状態の場合には、このアクセス要求を受付け、通常はオーケー応答(OK応答)をバスマスタに対して返す。これに対して、バススレーブは、なんらかの理由で直ちにバスマスタのアクセス要求を受付可能でない状態の場合、バスマスタに不必要にバスを占有させないために、リトライ応答(RETRY応答)をバスマスタに返す。リトライ応答を受けたバスマスタは一旦バス使用権を失い、他のバスマスタがバスを使用してデータ転送を行うことができる。バス使用権を失ったバスマスタは、再度バスアービタへバス使用権の要求を行い、再び同じバススレーブへアクセス要求を試みる。
図11は、このような共通バスを使用する際の様子を示す模式図である。図11(a)に示すように、バス権を得たバスマスタ111,112は、バススレーブ121に対してアクセス要求を行う。
まず、図11(b)示すように、バス権を得たバスマスタ111がバススレーブ121にアクセス要求を出すと、バススレーブ121は処理可能であるため、バスマスタ111のアクセス要求を処理する(処理1)。
図11(c)に示すように、バス権を得たバスマスタ112がバススレーブ121にアクセス要求を出すと、バススレーブ121は処理中で受付けられないため、リトライ応答をバスマスタ112に対して発行する(処理2)。
図11(d)に示すように、バススレーブ121の処理が終了し、処理可能状態になると、バス使用権がバスマスタ111からバスマスタ112に移り、バスマスタ112がバススレーブ121へアクセス要求を出す。バススレーブ121は、処理可能な状態であるため、バスマスタ112のアクセス要求を受付ける(処理3)。
まず、図11(b)示すように、バス権を得たバスマスタ111がバススレーブ121にアクセス要求を出すと、バススレーブ121は処理可能であるため、バスマスタ111のアクセス要求を処理する(処理1)。
図11(c)に示すように、バス権を得たバスマスタ112がバススレーブ121にアクセス要求を出すと、バススレーブ121は処理中で受付けられないため、リトライ応答をバスマスタ112に対して発行する(処理2)。
図11(d)に示すように、バススレーブ121の処理が終了し、処理可能状態になると、バス使用権がバスマスタ111からバスマスタ112に移り、バスマスタ112がバススレーブ121へアクセス要求を出す。バススレーブ121は、処理可能な状態であるため、バスマスタ112のアクセス要求を受付ける(処理3)。
図11(b)〜図11(c)に示された処理1〜2の動作が繰り返し起こる場合、結果として図12に示されたようにバススレーブ121はバスマスタ101のアクセスのみを受付け、バスマスタ112のデータ転送が行われない状況に陥る可能性がある。
図12は、バスマスタ111と112が交互にアクセス要求を出すことにより、バスマスタ112がバススレーブ121に対してアクセス(図12では、バスマスタからのWRITE要求を例としている。WRITE要求を"W"で示す)を行おうとするときは、バススレーブ121は常にバスマスタ111の要求に基づいた処理を行っている状態になってしまうことを示している。
図12に示すように、バストランザクションが周期的なパターンに陥り、特定のバスマスタのアクセス要求のみが処理され、他のバスマスタのアクセス要求が全く処理されないおそれがある。このような状態は、バスがロックしてしまったかのような状態であり、このような状態は、特にライブ・ロック状態(ライブ・ロック)と呼ばれ、バストランザクション上で避けなければならない事項の一つである。
図12は、バスマスタ111と112が交互にアクセス要求を出すことにより、バスマスタ112がバススレーブ121に対してアクセス(図12では、バスマスタからのWRITE要求を例としている。WRITE要求を"W"で示す)を行おうとするときは、バススレーブ121は常にバスマスタ111の要求に基づいた処理を行っている状態になってしまうことを示している。
図12に示すように、バストランザクションが周期的なパターンに陥り、特定のバスマスタのアクセス要求のみが処理され、他のバスマスタのアクセス要求が全く処理されないおそれがある。このような状態は、バスがロックしてしまったかのような状態であり、このような状態は、特にライブ・ロック状態(ライブ・ロック)と呼ばれ、バストランザクション上で避けなければならない事項の一つである。
このようなライブ・ロックを解消するバスアービタの一例が、特許文献1に開示されている。図13を用いて、この従来のバスアービタの一構成例について説明する。図13は、従来のバスアービタの一構成例を示すブロック図である。
図13に示すように、調停回路として機能するアービタ901の周辺にバストランザクション検出部902およびライブ・ロック検出回路903が設けられている。このバストランザクション検出部902は、ライブ・ロック検出回路903とともに、バス110のトランザクションを監視し、常にリトライ状態になっているバスマスタ111を検出する。
図13に示すように、調停回路として機能するアービタ901の周辺にバストランザクション検出部902およびライブ・ロック検出回路903が設けられている。このバストランザクション検出部902は、ライブ・ロック検出回路903とともに、バス110のトランザクションを監視し、常にリトライ状態になっているバスマスタ111を検出する。
ライブ・ロック検出部903は、閾値レジスタ904に設定された値とリトライ回数が一致した場合に、バストランザクションの状態がライブ・ロック状態であると検出する。バス独占モード検出部905は、ライブ・ロック状態が検出された場合には、ロック状態になっていたバスマスタ111に対して、バス110の独占的な使用権を与える。これによって、ライブ・ロック状態のバスマスタ111は、他のバスマスタ112に影響を受けずに目的とするバススレーブ121にデータ転送を行うことができる。
特許文献2に、共通バスに関するアービトレーション方式が開示されている。特許文献2に開示のバスアービタでは、応答の遅いバススレーブに対して特定のバスマスタがアクセスしたとき、アクセス制御部が、このバスマスタに対してリトライ応答を返す。アクセス制御部は、それと同時に、このバスマスタに対するバス要求抑止信号を出力する。このバスマスタからのバス使用権要求は、このバスマスタがアービタに対してバス使用権要求を行っても、このバス要求抑止信号がアサートされている間バスアービタには入力されない。このバス要求抑止信号は、バススレーブが応答を返した時点で解除される。
しかしながら特許文献1に記載された、バスアービタ901では、ライブ・ロック状態と判定されたバスマスタ111に独占的なバス使用権を与えたとしても、目的とするバススレーブ121が未だに処理中であった場合、リトライされることがある。このとき、バス使用権はライブ・ロック状態のバスマスタ111が独占しているため、バススレーブ122又はバススレーブ123へアクセスする予定のバスマスタ112は、バスを使用することはできず、転送効率が悪化する。
さらに、閾値レジスタ904は、バスマスタ112がシステム上一定期間転送することができなくてもよいバスマスタであったとしても、バスマスタ112に対してもバスマスタ111と同様な閾値を設定する。そのため、バスマスタ111,112とバススレーブ121との間の転送効率を下げ、システムとしてのパフォーマンスを下げる。
さらに、閾値レジスタ904は、バスマスタ112がシステム上一定期間転送することができなくてもよいバスマスタであったとしても、バスマスタ112に対してもバスマスタ111と同様な閾値を設定する。そのため、バスマスタ111,112とバススレーブ121との間の転送効率を下げ、システムとしてのパフォーマンスを下げる。
また、特許文献2に記載されたアービトレーション方式では、応答が遅い特定のバススレーブに対してアクセスのためのバス獲得要求を、このバススレーブからの応答があるまで受付けないようにするものである。この特許文献2に開示の技術では、バスマスタからのバス獲得要求のタイミングしだいでは、ライブ・ロック状態を引き起こしてしまう。
特開2000−315188号公報
特開平4−192056号公報
このように、従来のバスアービタでは、ライブ・ロック状態を有効に回避できず、ライブ・ロック状態を回避しても、システムとしての転送効率が低下してしまう場合があった。
本発明に係るバス制御システムは、共通バスに接続された複数のバスマスタと、前記共通バスを介して、前記複数のバスマスタとデータ転送を行うバススレーブと、前記複数のバスマスタのバスマスタごとに当該バスマスタに対するリトライ応答をカウントし、カウント数に応じて当該バスマスタからのアクセス要求を優先的に受付ける優先設定を行う制御部とを有するものである。
本発明に係るバスシステムは、共通バスに接続された第1のバスマスタ及び第2のバスマスタと、前記共通バスを介して、前記第1のバスマスタ又は第2のバスマスタとデータ転送を行うバススレーブと、前記バススレーブに接続され、前記データ転送を制御する制御部を備え、当該制御部は、前記第1のバスマスタに対するリトライ応答をカウントし、当該カウント数に応じて前記第1のバスマスタのアクセス要求を優先的に受付ける優先設定を行い、当該優先設定が行われた状態で、前記第2のバスマスタからアクセス要求を受けた場合には、前記第2のバスマスタに対して前記リトライ応答を行うものである。
本発明によれば、転送効率がより向上したバス制御システムを提供することができる。
本発明に係るバス制御システムは、好適には、バスシステムに対してバス使用権を要求し、他の回路へデータ転送を行うバスマスタ回路とバススレーブ回路とその制御を行うバス制御システムである。
以下、本発明を実施するための最良の形態について図を参照しながら説明する。
発明の実施の形態1.
まず、図1を用いて、本発明に係るバス制御システムの概略について説明する。図1は、本発明に係るバス制御システムの概略説明を示す模式図である。なお、このバス制御システムでは、図11を用いて説明した通常の処理1〜3の他に、以下に説明する各処理が行われる。
以下、本発明を実施するための最良の形態について図を参照しながら説明する。
発明の実施の形態1.
まず、図1を用いて、本発明に係るバス制御システムの概略について説明する。図1は、本発明に係るバス制御システムの概略説明を示す模式図である。なお、このバス制御システムでは、図11を用いて説明した通常の処理1〜3の他に、以下に説明する各処理が行われる。
図1(a)に示すように、本発明に係るバス制御システム100において、バスマスタ111は、バス110を介してバススレーブ121にアクセス要求を行う。例えば、バスマスタ112からの要求に基づいてデータの処理中である場合には、バススレーブ121はデータを受付けることができない。バススレーブ121は、その内部で計数しているバスマスタ111のリトライ・カウンタをカウントアップし、設定された閾値を超えると、ライブ・ロック状態であるとみなす。このバススレーブ121は、バスマスタ111に優先権を設定する。
図1(b)に示すように、バススレーブ121の処理が終了し、処理可能状態になると、バスマスタ111、112ともにバススレーブ121を対象としたアクセス要求が可能となる。バスマスタ112からバススレーブ121を対象とするアクセス要求が行われ、バスマスタ112がバススレーブ121へアクセス要求を行う。このとき、バススレーブ121は、処理可能な状態であるが、バスマスタ111に優先権が設定されているため、バスマスタ112にリトライ応答を行う。
図1(c)に示すように、バス使用権がバスマスタ112からバスマスタ111に移り、バスマスタ111がバススレーブ121へアクセス要求を行う。バススレーブ121は、優先権が設定されているバスマスタ111からのアクセス要求を受付ける。
図1(c)に示すように、バス使用権がバスマスタ112からバスマスタ111に移り、バスマスタ111がバススレーブ121へアクセス要求を行う。バススレーブ121は、優先権が設定されているバスマスタ111からのアクセス要求を受付ける。
続いて、図2を用いて、本発明に係るバス制御システム100のバススレーブ121について詳細に説明する。
バススレーブ121は、バススレーブ・ロジック201、ライブ・ロック制御回路202を有する。
バススレーブ121は、バススレーブ・ロジック201、ライブ・ロック制御回路202を有する。
バススレーブ・ロジック201は、本来のバススレーブ機能を有するロジック本体によって構成されている。ライブ・ロック制御回路202は、ライブ・ロックを制御してアクセス要求を制御する制御部である。詳細には、ライブ・ロック制御回路202は、バスマスタごとにリトライした回数をカウントし、そのカウント数に応じてライブ・ロックとみなしたバスマスタ111〜113のいずれかに対して、バススレーブ・ロジック201へのデータ転送を優先的に許可する。
さらに続いて、図2を用いて、本発明におけるスレーブ121のライブ・ロック制御回路202について詳細に説明する。
ライブ・ロック制御回路202は、リトライ検出部210、ライブ・ロック検出部220、リトライ代行部230、リトライ・カウント部241,242,243を有する。また、ライブ・ロック制御回路202は、リトライ・カウント部をバスマスタの数の分だけ有し、バスマスタの個数とリトライ・カウント部の数は同数である。
ライブ・ロック制御回路202は、リトライ検出部210、ライブ・ロック検出部220、リトライ代行部230、リトライ・カウント部241,242,243を有する。また、ライブ・ロック制御回路202は、リトライ・カウント部をバスマスタの数の分だけ有し、バスマスタの個数とリトライ・カウント部の数は同数である。
リトライ検出部210は、バスマスタ111〜113からバススレーブ121に入力されるバスマスタ番号を取得する。それとともに、リトライ検出部210は、そのバスマスタ番号に対する応答信号を取得する。ここで、この応答信号は、バスマスタ111〜113がバススレーブ121にアクセス可能であることを示すオーケー応答、又はこのアクセスが可能でないことを示すリトライ応答のいずれかである。
リトライ検出部210は、バススレーブ・ロジック201の応答がリトライ応答である場合には、該当するバスマスタのリトライ・カウント部241〜243に対してカウント信号を出力する。これに対して、リトライ検出部210は、バススレーブ121の応答がオーケー応答である場合には、該当するバスマスタのリトライ・カウント部241〜243に対してリセット信号を出力する。
ライブ・ロック検出部220は、リトライ・カウント部241〜243のどのユニットからの信号なのかを判断する。ライブ・ロック検出部220は、この判断結果に応じて、バススレーブ121に対して、そのバスマスタ111〜113の要求を優先するための優先バスマスタ設定(以下、優先設定と呼ぶこともある)を行う。
ライブ・ロック検出部220は、リトライ・カウント部241〜243からの信号が入力されなくなった場合には、該当するバスマスタ111〜113の優先設定を解除する。また、リトライ検出部210は、この優先設定がライブ・ロック検出部220から入力されている間はカウント信号を出力しない。
ライブ・ロック検出部220は、リトライ・カウント部241〜243からの信号が入力されなくなった場合には、該当するバスマスタ111〜113の優先設定を解除する。また、リトライ検出部210は、この優先設定がライブ・ロック検出部220から入力されている間はカウント信号を出力しない。
リトライ代行部230は、優先バスマスタ設定された場合にのみ動作を行い、それ以外の場合は、バスマスタ111〜113の要求をバススレーブ121に通す。具体的には、リトライ代行部230は、優先バスマスタ設定がされた場合には、優先設定されていないバスマスタ111〜113からの要求に対して、バススレーブ・ロジック201の代わりにリトライ応答する。
リトライ代行部230は、優先設定されていないバスマスタ111〜113がアクセス要求を行った場合には、バススレーブ121に対するアクセス要求をマスクし、バススレーブ・ロジック201にはアクセス要求があったことを知らせない。これに対して、リトライ代行部230は、優先設定されているバスマスタ111〜113がアクセス要求を行った場合には、そのバスマスタ111〜113のアクセス要求をバススレーブ・ロジック201に送る。
リトライ・カウント部241〜243はそれぞれ、カウンタ311,312,313、閾値レジスタ321,322,323、比較器331,332,333を1組のユニットとして有する。
カウンタ311〜313は、リトライ検出部210から出力されるカウント信号によってカウントアップを行う。カウンタ311〜313は、カウント値が閾値に達した場合には、リセットされるまでそのカウント値を維持する。また、カウンタ311〜313は、リトライ検出部210からのリセット信号によって、カウンタをクリアする。
閾値レジスタ321〜323は、予め、バスマスタ111〜113ごとに、各バスマスタ111〜113の所定の閾値が設定されている。
比較器331〜333は、カウンタ値と閾値を比較する。比較器331〜333は、これら2つの値が一致していた場合には、ライブ・ロック検出部220に信号を送る。
カウンタ311〜313は、リトライ検出部210から出力されるカウント信号によってカウントアップを行う。カウンタ311〜313は、カウント値が閾値に達した場合には、リセットされるまでそのカウント値を維持する。また、カウンタ311〜313は、リトライ検出部210からのリセット信号によって、カウンタをクリアする。
閾値レジスタ321〜323は、予め、バスマスタ111〜113ごとに、各バスマスタ111〜113の所定の閾値が設定されている。
比較器331〜333は、カウンタ値と閾値を比較する。比較器331〜333は、これら2つの値が一致していた場合には、ライブ・ロック検出部220に信号を送る。
ここで、リトライ・カウント部241〜243の閾値レジスタ321〜323への閾値の設定について説明する。閾値レジスタ321〜323に設定される閾値は、内部で設定したり、外部から設定したりすることができる。また、設定値は、ソフトウェアやその他の手段によって書換え可能なものにしてもよいし、予め定数として設定してもよい。
図3に、外部のバスマスタ111〜113から閾値を設定する場合のバス制御システム100の一構成例が示されている。図3に示すように、バス制御システム100は、閾値設定部25を有する。
図3に、外部のバスマスタ111〜113から閾値を設定する場合のバス制御システム100の一構成例が示されている。図3に示すように、バス制御システム100は、閾値設定部25を有する。
閾値設定部25は、閾値レジスタ321〜323に割り当てられたアドレスに反応し、閾値データを閾値設定として、閾値レジスタ321〜323に書き込む。また、この閾値設定部25をライブ・ロック制御回路202の外部装置として構成することも可能である。
図4に、外部端子から閾値を設定する場合のバス制御システム100の一構成例が示されている。図4に示すように、バス制御システム100は、外部端子261〜263を有する。この場合には、外部端子261〜263が外部装置に接続され、この外部装置から直接、閾値の設定が行われる。
図4に、外部端子から閾値を設定する場合のバス制御システム100の一構成例が示されている。図4に示すように、バス制御システム100は、外部端子261〜263を有する。この場合には、外部端子261〜263が外部装置に接続され、この外部装置から直接、閾値の設定が行われる。
次に、図5を用いて、本発明に係るバス制御システム100の一連の動作について説明する。図5は、このバス制御システム100の動作を示すタイミングチャートの一例である。ここで、適宜図2を参照しながら説明する。
バスマスタ111〜113がバススレーブ121に対してアクセス要求を行う。バススレーブ121がリトライ応答を返す度に、リトライ検出部210は、バスマスタ番号からバスマスタ111に対応するリトライ・カウント部241へカウント信号を出力する。例えば図5では、バスマスタ番号"2"にバスマスタ111が対応し、バスマスタ番号"1"にバスマスタ112が対応している。
バスマスタ111〜113がバススレーブ121に対してアクセス要求を行う。バススレーブ121がリトライ応答を返す度に、リトライ検出部210は、バスマスタ番号からバスマスタ111に対応するリトライ・カウント部241へカウント信号を出力する。例えば図5では、バスマスタ番号"2"にバスマスタ111が対応し、バスマスタ番号"1"にバスマスタ112が対応している。
カウント信号が入力されたリトライ・カウント部241は、カウンタ311をカウントアップする。図5では、バスマスタ番号"2"に対応したバスマスタ111からのアクセス要求に対してリトライ応答を返すごとに、カウンタ311は"0,1,2"とカウントアップしている。比較器331は、カウントアップされたカウンタ311と閾値レジスタ321の閾値とが一致するかを比較して判断する。図5に示すように、閾値レジスタ321には閾値として"2"が設定されている。
比較器331がカウンタ311と閾値レジスタ321の閾値とが一致したと判断した場合には、ライブ・ロック状態が成立したものと判定し、ライブ・ロック検出部220に判断結果を示す信号を入力する。図5では、比較器331は、カウンタ311が"2"をカウントしたとき、カウンタ"2"と閾値"2"とが一致するので、ライブ・ロック状態であると判定している。
ライブ・ロック検出部220は、リトライ・カウント部241内の比較器331からの信号を受ける。ライブ・ロック検出部220は、バスマスタ111がバススレーブ・ロジック201に優先するように、リトライ代行部230に対して優先設定を設定する。図5では、優先バスマスタ設定が"2"であるから、バスマスタ番号"2"のバスマスタ111は、バスマスタ番号"1"のバスマスタ112に優先してデータ転送可能となる。
優先バスマスタ設定が行われると、リトライ代行部230は、優先設定されたバスマスタ111のアクセス要求以外にはリトライ応答をバススレーブ・ロジック202に代わって応答する。これにより、優先設定されていないバスマスタ112,113のスレーブ・ロジック202に対するアクセスは、常にリトライ応答を受ける。図5では、バスマスタ番号"1"のバスマスタ112はリトライ応答を受ける。このとき、リトライ代行部230は、バススレーブ選択信号をマスクし、バススレーブ・ロジック201にはリトライ応答の出力を通知しない。そのため、図5に示すように、バススレーブ・ロジック201からの応答が行われていない。
リトライ代行部230は、優先設定されたバスマスタ111がバススレーブ・ロジック202にアクセス要求する場合には、バススレーブ・ロジック202にバスマスタ111のアクセス要求を通す。これにより、バススレーブ・ロジック202は、このバスマスタ111のデータ転送を受付けることができる。優先設定されたバスマスタ111のアクセス要求が受付けられると、リトライ検出部210は、リトライ・カウント部241のカウンタを0にリセットする。
続いて、図6,7を用いて、本発明に係るバス制御システム100と従来のバスシステムとを比較する。
図6に、本発明に係るバス制御システム100によるデータ転送を示すタイミングチャートが示されている。図6では、バスマスタ111,112は、それぞれ8クロック毎にアクセス要求を行っている。また、バススレーブ121に、バスマスタ111のリトライ回数の閾値として"4"が設定されている。
図6に、本発明に係るバス制御システム100によるデータ転送を示すタイミングチャートが示されている。図6では、バスマスタ111,112は、それぞれ8クロック毎にアクセス要求を行っている。また、バススレーブ121に、バスマスタ111のリトライ回数の閾値として"4"が設定されている。
図6に示すように、バスマスタ112(マスタ番号1)が単体で4回要求を行った場合を想定する。この場合、バススレーブ121は、バスマスタ111(マスタ番号2)が4回リトライされた時点で、ライブ・ロックしていると判断する。バススレーブ121は、これに応じて、バスマスタ111(マスタ番号2)に優先権を与える。その次のバスマスタ112(マスタ番号1)の要求は、リトライされ、バスマスタ111(マスタ番号2)の要求がバススレーブ121に受付けられる。バスマスタ111(マスタ番号2)の要求が処理されるまでのクロック数は、33(8×4+1)となる。これにかかる時間は、100MHzのバスの場合には0.33μ秒となる。
これに対して、図7に、従来のバスシステムによるデータ転送を示すタイミングチャートが示されている。このバスシステムでは、ライブ・ロックの対策がなされていないものとする。図7でも、バスマスタ111,112は、8クロック毎にアクセス要求を行うとする。
図7に示すように、ライブ・ロックが起こり、バスマスタ112(マスタ番号1)が単体で連続100回バス権を獲得して転送した場合、バスマスタ111(マスタ番号2)の要求が受付けられるまでのクロック数は、804(100×8+4)クロックとなる。これにかかる時間は、100MHzのバスの場合には、8.04μ秒となる。
図7に示すように、ライブ・ロックが起こり、バスマスタ112(マスタ番号1)が単体で連続100回バス権を獲得して転送した場合、バスマスタ111(マスタ番号2)の要求が受付けられるまでのクロック数は、804(100×8+4)クロックとなる。これにかかる時間は、100MHzのバスの場合には、8.04μ秒となる。
以上のように、本発明のバス制御システム100では、バススレーブ121のライブ・ロック制御回路202によってライブ・ロックを回避する。すなわち、バススレーブ121に長期間データ転送をすることができなかったバスマスタ112に対して、バススレーブ121が優先権を与え、バスマスタ112のデータ転送を実行する。ただし、バススレーブ121に対して優先権を持つバスマスタ112は、バスの独占権を持つわけではない。それ故、該当するバススレーブ121の優先権を持たないバスマスタ113は、その他のバススレーブ122,123に対するアクセス要求を行うことが可能である。これによって、データ転送の転送効率を確実に向上させることができる。
さらに、本発明のバス制御システム100では、ライブ・ロック制御回路202と同様の機能をバススレーブ122、123に付加した場合、バススレーブ121〜123毎に各バスマスタ111〜113の閾値を設定することができる。そのため、各バスマスタ111〜113の特徴とそのバススレーブ121〜123の特徴を考慮した閾値を設定し、バススレーブ121〜123毎にライブ・ロックとみなす条件を柔軟に設定することができる。また、ライブ・ロック防止機能が必要なバススレーブをバススレーブ121,122に限定するようなシステムの場合、バススレーブ121,122にのみライブ・ロック回路202を付加することで、ライブ・ロックに対応することができる。
また、本発明のバス制御システム100では、ライブ・ロック制御回路202を付加する場合、従来からのバススレーブ、バスマスタ、アービタ、バスに手を加える必要がない。バススレーブ・ロジック201に対するライブ・ロックを防止するためには、バススレーブ121に対してライブ・ロック制御回路202を接続するだけでよく、バススレーブ・ロジック201に手を加える必要がない。よって、従来のバススレーブ機能をそのまま再利用することができ、ライブ・ロックに簡便に対応することができる。
発明の実施の形態2.
本実施形態2では、ライブ・ロックを回避する必要のあるバススレーブがライブ・ロック制御回路を共有する場合について説明する。この場合、ライブ・ロック制御回路を共有するバススレーブはそれぞれ別個に、リトライ代行部を有する。ここでは、その他の構成は実施形態1と同様であるので、その説明を省略する。
本実施形態2では、ライブ・ロックを回避する必要のあるバススレーブがライブ・ロック制御回路を共有する場合について説明する。この場合、ライブ・ロック制御回路を共有するバススレーブはそれぞれ別個に、リトライ代行部を有する。ここでは、その他の構成は実施形態1と同様であるので、その説明を省略する。
図8に、本実施形態2におけるライブ・ロック制御回路402の一構成例が示されている。なお、図8においては、実施形態1における機能ブロックと同じ機能ブロックには同じ符号を付している。
図8に示すように、ライブ・ロック制御回路402は、バススレーブ121,122から独立した状態で構成され、これをバススレーブ121,122が共有している。さらに、バススレーブ121,122はそれぞれ、リトライ代行部431,432を有し、これらリトライ代行部431,432は、リトライ代行部230と同様の機能を有する。また、図8には、バススレーブ122のバススレーブ・ロジック203を有する。
図8に示すように、ライブ・ロック制御回路402は、バススレーブ121,122から独立した状態で構成され、これをバススレーブ121,122が共有している。さらに、バススレーブ121,122はそれぞれ、リトライ代行部431,432を有し、これらリトライ代行部431,432は、リトライ代行部230と同様の機能を有する。また、図8には、バススレーブ122のバススレーブ・ロジック203を有する。
本実施形態2では、リトライ検出部210に、バススレーブに対応したバススレーブ選択信号が入力される。具体的には、バススレーブ121を選択するバススレーブ選択信号、バススレーブ122を選択するバススレーブ選択信号が、リトライ検出部210に入力される。
これらのバススレーブ121,122がリトライを返した場合、リトライ・カウント部241〜243のカウンタ311〜313がカウントアップする。カウンタ311〜313は、バススレーブ121,122の優先バスマスタ設定がリトライ検出部210に入力された場合にはカウントを行わない。
これらのバススレーブ121,122がリトライを返した場合、リトライ・カウント部241〜243のカウンタ311〜313がカウントアップする。カウンタ311〜313は、バススレーブ121,122の優先バスマスタ設定がリトライ検出部210に入力された場合にはカウントを行わない。
ライブ・ロック検出部220は、比較器331〜333から信号が出力されると、バススレーブ121,122に応じて優先バスマスタ設定を行う。ライブ・ロック検出部220は、バススレーブ121のバススレーブ選択信号が入力されていたならば、バススレーブ121に対応した優先バスマスタ設定を出力する。これと同様に、ライブ・ロック検出部220は、バススレーブ122のバススレーブ選択信号が入力されていたならば、バススレーブ122に対応した優先バスマスタ設定を出力する
このような本実施形態2におけるバス制御システムにおいては、実施形態1のバス制御システム1と同様に、一連の動作を行う。図9のタイミングチャートに、本実施形態2のバス制御システムの動作が示されている。
具体的には、バスマスタ111〜113からバススレーブ121,122に対してアクセス要求があり、該当バススレーブ121がリトライ応答をしたとする。この場合には、リトライ検出部210等の各機能ブロックが実施形態1と同様に処理を行い、優先バスマスタ設定されたリトライ代行部431,432は、バスマスタ111〜113について優先設定を行う。例えば、図9に示すように、バス110を介して入力されたスレーブ選択信号に応じて、リトライ代行部431は、バスマスタ111に優先設定する。これによって、リトライ代行部431は、バスマスタ111にバスマスタ優先設定されている間、他の優先バスマスタ以外のバスマスタ112,113が転送した場合、バススレーブ選択信号をマスクし、バススレーブ121にはアクセスがなかったように振舞う。
具体的には、バスマスタ111〜113からバススレーブ121,122に対してアクセス要求があり、該当バススレーブ121がリトライ応答をしたとする。この場合には、リトライ検出部210等の各機能ブロックが実施形態1と同様に処理を行い、優先バスマスタ設定されたリトライ代行部431,432は、バスマスタ111〜113について優先設定を行う。例えば、図9に示すように、バス110を介して入力されたスレーブ選択信号に応じて、リトライ代行部431は、バスマスタ111に優先設定する。これによって、リトライ代行部431は、バスマスタ111にバスマスタ優先設定されている間、他の優先バスマスタ以外のバスマスタ112,113が転送した場合、バススレーブ選択信号をマスクし、バススレーブ121にはアクセスがなかったように振舞う。
このように、本実施形態2におけるライブ・ロック制御回路402を共通とする場合には、各バスマスタ111〜113のライブ・ロック条件として、バススレーブ121,122で同じ閾値を設定することができる。これによって、回路規模を縮小することができる。
その他の発明の実施の形態.
実施形態1,2においては、ライブ・ロック制御回路202,402を新たに設けたが、スレーブ121〜123ごとに構成の異なったライブ・ロック制御回路を構成してもよい。図10に、本実施形態3における一構成例が示されている。なお、図10においては、実施形態1,2と同じ機能ブロックについては同じ符号を付している。
実施形態1,2においては、ライブ・ロック制御回路202,402を新たに設けたが、スレーブ121〜123ごとに構成の異なったライブ・ロック制御回路を構成してもよい。図10に、本実施形態3における一構成例が示されている。なお、図10においては、実施形態1,2と同じ機能ブロックについては同じ符号を付している。
また、図10に示すように、リトライ・カウント部241が1つだけ設けられ、バスマスタ111のライブ・ロックのみを防止する構成となっている。このように必要な部分のみのライブ・ロック制御を行うことも可能である。これにより、実施形態2と同様に、回路規模を縮小できる。
100…バス制御システム、110…バス、111〜113…バスマスタ、
121〜123…バススレーブ、131…スレーブ・インタフェース
201…バススレーブ・ロジック、202…ライブ・ロック制御回路
210…リトライ検出部、220…ライブ・ロック検出部、230…リトライ代行部、
241〜243…リトライ・カウント部、311〜313…カウンタ、
321〜323…閾値レジスタ、331〜333…比較器、25…閾値設定部
402…ライブ・ロック制御回路、431,432…リトライ代行部
121〜123…バススレーブ、131…スレーブ・インタフェース
201…バススレーブ・ロジック、202…ライブ・ロック制御回路
210…リトライ検出部、220…ライブ・ロック検出部、230…リトライ代行部、
241〜243…リトライ・カウント部、311〜313…カウンタ、
321〜323…閾値レジスタ、331〜333…比較器、25…閾値設定部
402…ライブ・ロック制御回路、431,432…リトライ代行部
Claims (11)
- 共通バスに接続された複数のバスマスタと、
前記共通バスを介して、前記複数のバスマスタとデータ転送を行うバススレーブと、
前記複数のバスマスタのバスマスタごとに当該バスマスタに対するリトライ応答をカウントし、カウント数に応じて当該バスマスタからのアクセス要求を優先的に受付ける優先設定を行う制御部とを有するバス制御システム。 - 前記制御部は、前記複数のバスマスタのそれぞれに対するリトライ応答をカウントするリトライ・カウント部を、前記複数のバスマスタごとに有することを特徴とする請求項1記載のバス制御システム。
- 前記制御部は、前記優先設定が行われたバスマスタとは異なるバスマスタからアクセス要求を受けた場合には、当該バスマスタに対して前記リトライ応答を行うリトライ代行部を有することを特徴とする請求項1又は2記載のバス制御システム。
- 前記制御部は、前記バススレーブに設けられることを特徴とする請求項1乃至3のいずれかに記載のバス制御システム。
- 前記制御部は、前記バススレーブの動作を制御するバススレーブ・ロジックに接続され、前記優先設定が行われたバスマスタからアクセス要求を受けた場合には、当該アクセス要求を前記バススレーブ・ロジックに転送することを特徴とする請求項4記載のバス制御システム。
- 前記制御部は、前記バススレーブ・ロジックと別個に設けられた制御回路によって構成されることを特徴とする請求項2乃至4のいずれかに記載のバス制御システム。
- 前記制御部は、前記バススレーブのインタフェース回路に含まれることを特徴とする請求項2乃至4のいずれかに記載のバス制御システム。
- 前記共有バスに接続された前記バススレーブと異なる他のバススレーブを、さらに備え、
前記制御部は、前記他のバススレーブに接続され、前記バスマスタと前記バススレーブとの間のデータ転送とともに、前記バスマスタと前記他のバススレーブとのデータ転送を制御することを特徴とする請求項1乃至7のいずれかに記載のバス制御システム。 - 前記共有バスに接続された前記バススレーブと異なる他のバススレーブを、さらに備え、
当該他のバススレーブは、前記制御部と別個に設けられ、前記バスマスタとのデータ転送を制御する他の制御部を有し、
当該他の制御部は、前記バスマスタに対するリトライ応答をカウントし、当該カウント数に応じて前記バスマスタのアクセス要求を優先的に受付ける優先設定を行うことを特徴とする請求項1乃至7のいずれかに記載のバス制御システム。 - 前記他の制御部は、前記リトライ代行部と別個に設けられた他のリトライ代行部を有し、
当該他のリトライ代行部は、前記他のバスマスタからアクセス要求を受けた場合には、前記他のバスマスタに対して前記リトライ応答を行うことを特徴とする請求項9記載のバス制御システム。 - 共通バスに接続された第1のバスマスタ及び第2のバスマスタと、
前記共通バスを介して、前記第1のバスマスタ又は第2のバスマスタとデータ転送を行うバススレーブと、
前記バススレーブに接続され、前記データ転送を制御する制御部を備え、
当該制御部は、前記第1のバスマスタに対するリトライ応答をカウントし、当該カウント数に応じて前記第1のバスマスタのアクセス要求を優先的に受付ける優先設定を行い、
当該優先設定が行われた状態で、前記第2のバスマスタからアクセス要求を受けた場合には、前記第2のバスマスタに対して前記リトライ応答を行うバス制御システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005277298A JP2007087247A (ja) | 2005-09-26 | 2005-09-26 | バス制御システム |
US11/522,380 US20070073948A1 (en) | 2005-09-26 | 2006-09-18 | Bus control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005277298A JP2007087247A (ja) | 2005-09-26 | 2005-09-26 | バス制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007087247A true JP2007087247A (ja) | 2007-04-05 |
Family
ID=37895527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005277298A Pending JP2007087247A (ja) | 2005-09-26 | 2005-09-26 | バス制御システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070073948A1 (ja) |
JP (1) | JP2007087247A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009277000A (ja) * | 2008-05-14 | 2009-11-26 | Mitsubishi Electric Corp | データ転送システム及びターゲット装置 |
JP2015191266A (ja) * | 2014-03-27 | 2015-11-02 | 株式会社メガチップス | データ転送制御装置及びデータ転送の制御方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209689B2 (en) * | 2007-09-12 | 2012-06-26 | Intel Corporation | Live lock free priority scheme for memory transactions in transactional memory |
WO2014045175A1 (en) * | 2012-09-21 | 2014-03-27 | Koninklijke Philips N.V. | Method and apparatus for dynamic address assignment |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08297630A (ja) * | 1995-04-26 | 1996-11-12 | Shikoku Nippon Denki Software Kk | バス接続方式 |
JPH09212469A (ja) * | 1996-02-01 | 1997-08-15 | Fujitsu Ltd | ロック転送制御回路 |
JPH09231163A (ja) * | 1996-02-22 | 1997-09-05 | Nec Eng Ltd | Ioブリッジ |
JPH11191073A (ja) * | 1997-12-25 | 1999-07-13 | Mitsubishi Electric Corp | Pciバス処理装置 |
JP2000250850A (ja) * | 1999-02-26 | 2000-09-14 | Nec Corp | バス制御装置、マスタ装置及びスレーブ装置並びにバス制御方法 |
JP2000315188A (ja) * | 1999-05-06 | 2000-11-14 | Nec Corp | ライブ・ロック検出方法及びその装置並びに調停回路 |
JP2003162498A (ja) * | 2001-11-28 | 2003-06-06 | Nec Electronics Corp | バスシステムおよびリトライ方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706446A (en) * | 1995-05-18 | 1998-01-06 | Unisys Corporation | Arbitration system for bus requestors with deadlock prevention |
DE69632634T2 (de) * | 1996-12-13 | 2005-06-09 | Bull S.A. | Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit |
US6330632B1 (en) * | 1998-09-30 | 2001-12-11 | Hewlett-Packard Company | System for arbitrating access from multiple requestors to multiple shared resources over a shared communications link and giving preference for accessing idle shared resources |
US6718422B1 (en) * | 1999-07-29 | 2004-04-06 | International Business Machines Corporation | Enhanced bus arbiter utilizing variable priority and fairness |
US6973520B2 (en) * | 2002-07-11 | 2005-12-06 | International Business Machines Corporation | System and method for providing improved bus utilization via target directed completion |
US7065596B2 (en) * | 2002-09-19 | 2006-06-20 | Intel Corporation | Method and apparatus to resolve instruction starvation |
US7096289B2 (en) * | 2003-01-16 | 2006-08-22 | International Business Machines Corporation | Sender to receiver request retry method and apparatus |
-
2005
- 2005-09-26 JP JP2005277298A patent/JP2007087247A/ja active Pending
-
2006
- 2006-09-18 US US11/522,380 patent/US20070073948A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08297630A (ja) * | 1995-04-26 | 1996-11-12 | Shikoku Nippon Denki Software Kk | バス接続方式 |
JPH09212469A (ja) * | 1996-02-01 | 1997-08-15 | Fujitsu Ltd | ロック転送制御回路 |
JPH09231163A (ja) * | 1996-02-22 | 1997-09-05 | Nec Eng Ltd | Ioブリッジ |
JPH11191073A (ja) * | 1997-12-25 | 1999-07-13 | Mitsubishi Electric Corp | Pciバス処理装置 |
JP2000250850A (ja) * | 1999-02-26 | 2000-09-14 | Nec Corp | バス制御装置、マスタ装置及びスレーブ装置並びにバス制御方法 |
JP2000315188A (ja) * | 1999-05-06 | 2000-11-14 | Nec Corp | ライブ・ロック検出方法及びその装置並びに調停回路 |
JP2003162498A (ja) * | 2001-11-28 | 2003-06-06 | Nec Electronics Corp | バスシステムおよびリトライ方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009277000A (ja) * | 2008-05-14 | 2009-11-26 | Mitsubishi Electric Corp | データ転送システム及びターゲット装置 |
JP2015191266A (ja) * | 2014-03-27 | 2015-11-02 | 株式会社メガチップス | データ転送制御装置及びデータ転送の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070073948A1 (en) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008130056A (ja) | 半導体回路 | |
EP2423824B1 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
JP2007058716A (ja) | データ転送バスシステム | |
JP2007087247A (ja) | バス制御システム | |
JP5057360B2 (ja) | 半導体装置、データ処理装置、及び記憶装置へのアクセス方法 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
US10997105B2 (en) | Semiconductor device and method of operating the same | |
US6105082A (en) | Data processor used in a data transfer system which includes a detection circuit for detecting whether processor uses bus in a forthcoming cycle | |
JP4151362B2 (ja) | バス調停方式、データ転送装置、及びバス調停方法 | |
JP3985085B2 (ja) | Dma制御装置 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
JP2007052685A (ja) | マイクロコントローラ | |
JP2002288120A (ja) | 調停装置およびバスシステム | |
CN113711192B (zh) | 信息处理装置 | |
JP2017107441A (ja) | 情報処理装置、並びに、その制御装置および制御方法 | |
JP2005250683A (ja) | マイクロコンピュータ | |
JP4292218B2 (ja) | 画像処理装置及び画像処理システム | |
JP6535516B2 (ja) | マルチ・プログラマブルデバイス・システムとその制御方法 | |
WO2020230412A1 (ja) | 情報処理装置 | |
JP6992295B2 (ja) | 電子装置 | |
JP3959407B2 (ja) | 画像処理装置及び画像処理システム | |
JP2006059303A (ja) | コンピュータシステム | |
JPS63101948A (ja) | デ−タ処理装置 | |
JP3206013B2 (ja) | ダイレクト・メモリ・アクセス転送制御装置 | |
JP2003280980A (ja) | 共有メモリ排他制御装置及び共有メモリ排他制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080812 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110705 |