(57)【要約】【課題】適切なデッドライン保証を行えるバスシステムを安価に提供する。【解決手段】マスタがそれぞれに、決められた時間内に決められたデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停装置であって、マスタの転送能力を表すパラメータを転送周期として格納するマスタ転送能力周期パラメータ格納手段と、前記決められた時間内にマスタの潜在的な転送能力で完遂可能な転送データ量を格納する保証時間内マスタ転送能力データ量格納手段を有し、保証時間を前記２つの格納手段に格納された値によって決定することを特徴とするバス調停装置等、を提供する。【選択図】図１
2010170473.tif 000002
【特許請求の範囲】
【請求項１】
マスタが決められた時間内に、決められたデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停装置であって、
マスタの転送能力を表すパラメータを転送周期として格納するパラメータ格納手段と、
前記決められた時間内にマスタの転送能力で転送可能な転送データ量を格納するデータ量格納手段とを有し、
保証時間を前記パラメータ格納手段及び前記データ量格納手段に格納された値によって決定する決定手段とを有することを特徴とするバス調停装置。
【請求項２】
前記パラメータ格納手段に格納された値に相当するサイクル数分のカウントを行うカウンタと、
このカウンタが前記転送周期で動作する度に前記データ量格納手段に格納された値に相当するサイクル数分のカウントを行う他のカウンタを有することを特徴とする請求項１に記載のバス調停装置。
【請求項３】
保証時間内のマスタ毎の実転送量をカウントするカウンタと、
当該カウンタの値と前記他のカウンタの値とを用いて演算を行う演算回路とを有し、
前記演算回路の演算結果に基づいて、バス使用権の割り当てを行うことを特徴とする請求項２に記載のバス調停装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタが共有しているバスにおいて、バスの使用が競合した場合に、その調停を行うバス調停装置に関するものである。特に、各マスタの要求する時間内に各マスタの要求するデータ転送を完了させることが可能なバス調停装置に関する。
【背景技術】
【０００２】
複数のマスタが共有のリソース（バス、メモリ）を使用する場合、リソースを時分割で使用することになる。このとき、どのマスタにリソースの使用権を与えるかをある一定のルール（マスタのリソース使用優先度）に従って調停(アービトレーション)する必要がある。
【０００３】
従来知られているアービトレーションスキームの中で最も代表的なものが以下のアービトレーションスキームである。
（ａ）ラウンドロビン
（ｂ）固定優先度
（ｃ）重み付き優先度
【０００４】
まず、「ラウンドロビン」調停は、リソース使用権を獲得したマスタの優先度を、次回調停時に最低レベルにすることで、全てのマスタを公平に扱う。よって、マスタがバス使用権を獲得する度に優先度がリアルタイムに変わる。この調停方法の特徴としては、全てのマスタに公平にリソース使用権を与えることになり、相対的に要求帯域幅の大きいマスタが帯域幅を確保できなくなる可能性がある。
【０００５】
一方、「固定優先度」調停は、予め優先順位をスタティックに決めることで、要求帯域幅の大きいマスタや低レイテンシでの動作を保証する必要のあるマスタに対して常に優先度を高くすることが可能である。この調停方法の場合、必要帯域幅の大きいマスタ順に優先させることで優先度の高いマスタは充分に帯域幅を確保できるが、一方で優先度を低くされたマスタは長時間リソースを使用できない不利を被ることになる。
【０００６】
また、「重み付き優先度」は、ラウンドロビンと固定優先度のデメリットを解決する手段として知られる。この調停方法は、マスタ毎に４：３：２：１のように帯域割付比を与えることによって、この比でリソースを割り付けられるように調停を行う方法である。この場合、１０回の調停のうち４回、３回、２回、１回の比で割り付けを行うことを期待している。具体的な制御方法は様々であるが、代表的な制御方法としては以下のような方法が挙げられる。
【０００７】
マスタ毎に使用権を獲得する度に使用権獲得回数をカウントし、このカウント値と設定比が一致すると帯域幅を満たしたものとして、他のマスタにバス使用権を譲る。具体的には使用権獲得回数のカウント値が、設定比と一致したマスタは、他の全マスタがカウンタ値＝設定値となるまで使用権を他のマスタに譲る。全てのマスタのカウント値が設定値と同じになるタイミングで全マスタの使用権獲得回数のカウント値をクリアする。これを繰り返すことによって設定された比でのリソース割付を行う。ただし、仮に全てのマスタが常に使用要求を出している状況では、この比と一致した帯域幅割り付けが可能となるが、カウンタ値が小さいこともあり、各々の使用要求の出し方によっては特定のマスタが使用権を獲得してしまう状況が発生してしまう。
【０００８】
上記のアービトレーション、特に重み付き優先度を拡張させたアービトレーションとして、要求帯域幅に対する実転送量をマスタ毎にカウントして、要求帯域幅を満たしているマスタの優先度を下げるという調停方法が提案されている。この方法の場合、要求帯域に大きく超えて特定のマスタがリソース使用権を独占することなく、各々のマスタの要求帯域に応じた調停が可能となる。また「重み付き優先度」のように相対的な比を設定するわけではなく、マスタ毎の要求値を直接設定可能である。
【０００９】
ただし、もし複数のマスタが要求帯域に達していない場合、ある特定のマスタ、もしくはラウンドロビンによって、リソース使用権が決定されることになる。この方法だと、共有しているリソースへの要求帯域の合計が１００％を超えていない時は、各マスタの要求帯域は満たされる。しかし、共有しているリソースへの要求帯域の合計が、ある一定期間１００％を超えてしまったときに、本当に優先すべきマスタに対してリソース使用権が与えられなくなる可能性がある。最初から要求帯域の合計が１００％を超えた場合に優先されるべきマスタを動作前に決定できるのであれば、この方法でも事足りると思われる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、要求帯域の合計が１００％を超えた場合の各マスタの優先順位を予め設定できない場合は、各マスタの要求帯域を満足するような帯域の割り付けを行うことは困難であった。本発明は、上記の問題点を鑑みなされたものであって、少ない回路規模でデッドライン保証を実現することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、マスタが決められた時間内に、決められたデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停装置であって、マスタの転送能力を表すパラメータを転送周期として格納するパラメータ格納手段と、前記決められた時間内にマスタの転送能力で転送可能な転送データ量を格納するデータ量格納手段とを有し、保証時間を前記パラメータ格納手段及び前記データ量格納手段に格納された値によって決定する決定手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、除算回路を使わずに少ない回路規模でマスタ毎の評価値（緊急度）を算出できるようになる。
【発明を実施するための最良の形態】
【００１３】
本発明に係るバス調停装置について図面を参照して説明する。
図７は、本発明によるデッドライン保証の概念図である。
この図は、１つのマスタの保証期間、転送能力曲線及び実転送量曲線を示している。横軸が経過時間であり、縦軸が転送データ量である。実転送量曲線の起点は、時刻０での縦軸上の点で、デッドライン保証アービトレーション前に保証すべきデータ量を設定しておく。転送データ量が０になった時点で保証データ量の転送が全て終わったことを意味する。転送能力曲線に関して、傾きはマスタの潜在的な転送能力速度を意味し、横軸との接点はデッドラインとする。
【００１４】
この前提に従うと、転送能力曲線の縦軸との接点は自動的に決定される。転送能力曲線はリファレンス用の曲線であり、実転送を行うかどうかに関わらず、保証期間中カウントダウンし続け、デッドラインに到達すると同時に０になるよう動作する。
時刻tにおけるマスタのデッドライン評価値を以下式で表す。
転送能力曲線（ｔ）−実転送量曲線（ｔ）
したがって、例えば、図７の時刻ｔ０での評価値はｃ０−ｄ０となる。
この評価値が小さいマスタをデッドラインに対する緊急度が高いものとし、優先的にバス権を与える。以上が、本発明の概念説明である。
【００１５】
次に、具体的な実施形態について詳解する。
図１は、本発明に係る実施形態におけるバス調停装置の構成図である。本実施形態のバス調停装置は、マスタが決められた時間内に、決められたデータ量のデータ転送を完了できるようにバス使用権の調停を行うものである。以下、本実施形態のバス調停装置について、詳細に説明する。
図１のバス調停装置では、説明を簡単にするために３つのマスタと１つのスレーブが接続されているバスシステムを示している。しかしながら、本発明を実施するにあたり、マスタの数、スレーブの数は、特に制限がない。
【００１６】
本実施形態は、図１に示すようにマスタ０（１４）、マスタ１（１５）、マスタ２（１６）が、スレーブ１７にバス１８を経由してデータ転送を行うバスシステムである。複数のマスタ（１４〜１６）が、共通のバス１８を使用するため、複数のマスタが同時に、データ転送を行うことができない。そのため、アービタ１０がバスの調停を行い、どのマスタにバスの使用権を与えるかを決定する。
【００１７】
各マスタ（１４〜１６）は、バスのバス権要求信号１９をアービタ１０に対して発行し、アービタ１０は、優先順位によって決定したマスタに対して、バス使用許可信号２０を発行する。アービタ１０からバス使用権を得たマスタは、バス１８を占有してスレーブ１７とのデータ転送を行う。
【００１８】
アービタ１０の調停部１３は、マスタからのバス権要求信号１９から、要求のあったマスタに対して、どのマスタにバス使用許可を与えるか決定する。優先順位によって決定したマスタに対してバス使用許可信号２０を返すことで、マスタに対してバス使用許可を与える。調停部１３は、カウンタ部１２から出力される評価値を使って、優先順位を決定する。カウンタ部１２は、図７の２つの曲線と評価値を導出する回路を有している。
【００１９】
ここで、図７の概念図を実装レベルに書き換えた図が、図９である。実転送量曲線に関しては図７の概念図と同じで、保証データ量のパラメータを初期値として、転送が行われる毎（又はバス使用許可が下りる毎）に計数されるもので、実装レベルではカウンタを１つ持つことで実現できる。これを実転送量カウンタと呼ぶ。一方、転送能力曲線については一定周期的にカウントダウンさせるため、データ量を１カウントダウンさせるのに必要な周期カウンタとデータ量をカウントダウンさせるためのカウンタとの２種類が必要となる。
【００２０】
このとき、能力周期パラメータには既知であるマスタの潜在的な転送速度に応じたサイクル数（１トランザクションを実行するのにかかるサイクル数）を設定する。保証時間内達成可能データ量パラメータは、前記能力周期パラメータと保証時間から演算して決定する必要がある。ここで、保証時間は能力周期パラメータと保証時間内達成可能データ量パラメータの乗算によって一意に決まる値である。ここで能力周期パラメータに相当するサイクル数分のカウントするカウンタを能力周期カウンタと呼ぶ。また、保証時間内達成可能データ量を初期値としてカウントダウンするカウンタを保証能力データ量カウンタと呼ぶことにする。
【００２１】
次に、図８に上記カウンタ動作を実現するためのアービタ部内部構成を示す。当アービタは、主にマスタ毎の評価値計算回路１０１、１０２、１０３と、それらから出力される評価値から最優先のバスマスタを決定しバス使用権を与える調停部１２２とから構成される。各マスタの評価値計算回路１０１、１０２、１０３の内部回路構成は、各種カウンタのカウンタサイズ等が異なる可能性はあるが構成そのものは同じである。評価値計算回路は、主にマスタの転送能力を表すパラメータを転送周期として格納するパラメータ格納手段及び決められた時間内にマスタの転送能力で転送可能な転送データ量を格納するデータ量格納手段であるパラメータ格納部１０４を有する。また、評価値計算回路は、カウンタ部１０５、演算回路部１０６を有する。なお、図８では、図１のカウンタ初期化部１１を省略している。
【００２２】
保証期間の開始（カウンタの起動タイミング）を通知する信号１１９、１２０、１２１は、外部マスタから出力され、カウンタ部１０５内のカウンタ制御部１１３に入力される。
パラメータ格納部１０４は、ソフトウェアから設定される各種パラメータを格納するレジスタ群であって、能力周期パラメータレジスタ１０７、保証時間内達成可能データ量パラメータレジスタ１０８、保証データ量パラメータレジスタ１０９から構成される。能力周期パラメータレジスタ１０７は、上記で説明した能力周期パラメータを格納する。保証時間内達成可能データ量パラメータレジスタ１０８は、保証時間内達成可能データ量パラメータを格納する。保証データ量パラメータレジスタ１０９は、保証データ量パラメータを格納する。
【００２３】
カウンタ部１０５は、３種類のカウンタとそれらカウンタ群を制御するカウンタ制御部１１３から構成される。すなわち、カウンタ群は、能力周期カウンタ１１０、保証能力データ量カウンタ１１１、実転送量カウンタ１１２から構成される。各種パラメータは、それらに対応するカウンタにカウンタ制御部１１３で制御されたタイミングでロードされる。また、カウンタ制御部１１３は、カウンタデクリメントのタイミングも生成する。
【００２４】
具体的なカウンタ部の動作は、各マスタデバイスから出力された保証開始信号１１９、１２０、１２１の入力により、各種パラメータを各種カウンタへロードする。つまり、能力周期パラメータを能力周期カウンタ１１０に、保証時間内達成可能データ量パラメータを保証能力データ量カウンタ１１１に、保証データ量パラメータを実転送量カウンタ１１２にロードする。
【００２５】
また、能力周期カウンタ１１０がダウンカウントさせ、０に到達したことを能力周期カウンタ１１０は、カウンタ制御部１１３に通知し、これに応じて、カウンタ制御部１１３は、保証能力データ量カウンタ１１１を１デクリメントするように制御する。
これと同時に、カウンタ制御部１１３は、能力周期カウンタ１１０に能力周期パラメータレジスタ１０７を能力周期カウンタにリロードするように制御する。ただし、保証能力データ量カウンタ値が０に到達した場合はこれら２つのカウンタは動作しないように制御する。
【００２６】
一方、保証データ量パラメータが保証開始タイミングで実転送量カウンタ１１２へロードされ、当該マスタに対してバス使用権が与えられるたびに実転送量カウンタ１１２をカウントダウンさせる。仮に、保証能力データ量カウンタが０に到達してデッドライン保証を満足できなかった場合でも、実転送量カウンタの動作は０に到達するまで続行させる。
その結果、カウンタ部１０５は、実転送量カウンタ値１１５と保証能力データ量カウンタ値１１４を演算回路部１０６へ出力する。演算回路部１０６は、これら２つのカウンタ値を減算し、その演算結果をマスタ緊急度評価値１１６、１１７、１１８として生成する。
【００２７】
調停部１２２は、各マスタ用評価値計算回路から出力される緊急度評価値を比較し、バス使用要求１２４を出力している中で最も小さい値を持つマスタに対してバス使用許可１２３を与えるように制御する。もし緊急度評価値が同じマスタが存在したらどちらか一方に与えることになる。
本実施形態のように、緊急度評価値を３つのカウンタと１つの減算回路で構成することで大幅に回路規模削減を達成できることになる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係るバス調停装置の構成を表すブロック図である。
【図２】従来例によるバス調停装置に含まれるカウンタ部の動作例を示す図である。
【図３】従来例によるバス調停装置の調停のプライオリティを決定するプライオリティを説明するための図である。
【図４】本実施形態に係るバス調停装置に含まれるカウンタ部の動作例を示す図である。
【図５】従来例によるバス調停装置の調停のプライオリティを決定するプライオリティを説明するための図である。
【図６】マスタの転送能力を説明するための図である。
【図７】本実施形態に係るデッドライン保証の概念を説明するための図である。
【図８】本実施形態に係るアービタ内部構成を説明するための図である。
【図９】本実施形態に係るカウンタ動作の詳細を説明するための図である。
【符号の説明】
【００２９】
１０    バスアービタ
１１    カウンタ初期化部
１２    カウンタ部
１３    調停部
１４    マスタ０
１５    マスタ１
１６    マスタ２
１７    スレーブ
１８    バス
１９    バス権要求信号
２０    バス使用許可信号
３１    マスタ０のデッドライン保証を実現するのに必要な転送レート
３２    マスタ１のデッドライン保証を実現するのに必要な転送レート
３３    マスタ０の転送能力
３４    マスタ０の転送能力
【図１】
2010170473.tif 000003
【図２】
2010170473.tif 000004
【図３】
2010170473.tif 000005
【図４】
2010170473.tif 000006
【図５】
2010170473.tif 000007
【図６】
2010170473.tif 000008
【図７】
2010170473.tif 000009
【図８】
2010170473.tif 000010
【図９】
2010170473.tif 000011