(57)【要約】【課題】柔軟で適切なバスのアービトレーションの実現と、装置構成の複雑化や装置コストの上昇等の回避とを、それぞれ両立させる。【解決手段】共通バス１と、前記共通バス１を使用してデータ転送を行う複数のバスマスタＡ〜Ｚと、各複数のバスマスタＡ〜Ｚからの共通バス使用要求に対する調停を予め設定されている優先順位に基づいて行うバスアービタ２と、前記複数のバスマスタＡ〜Ｚのうちのあるバスマスタの優先順位として、複数の異なる優先順位の中からいずれか一つを選択するとともに、当該選択の切り換えを定期的に行う要求切換手段４とを備えて、データ転送処理装置を構成する。【選択図】図１
2006259842.tif 000002
【特許請求の範囲】
【請求項１】
共通バスと、
前記共通バスを使用してデータ転送を行う複数のバスマスタと、
前記複数のバスマスタからの共通バス使用要求に対する調停を予め設定されている優先順位に基づいて行うバスアービタと、
前記複数のバスマスタのうちのあるバスマスタの優先順位として、当該あるバスマスタについて設定されている複数の異なる優先順位の中からいずれか一つを選択するとともに、当該選択の切り換えを定期的に行う要求切換手段と
を備えることを特徴とするデータ転送処理装置。
【請求項２】
前記要求切換手段が定期的に行う選択切り換えの間隔を当該選択切り換え毎に異なるように可変にする間隔可変手段と
を備えることを特徴とする請求項１記載のデータ転送処理装置。
【請求項３】
前記バスアービタが基にする優先順位は、固定優先順位方式によるものである
ことを特徴とする請求項１、２または３記載のデータ転送処理装置。
【請求項４】
前記バスアービタが基にする優先順位は、ラウンドロビン方式によるものである
ことを特徴とする請求項１、２または３記載のデータ転送処理装置。
【請求項５】
前記バスアービタが基にする優先順位は、固定優先順位方式とラウンドロビン方式との組み合わせによるものである
ことを特徴とする請求項１、２または３記載のデータ転送処理装置。
【請求項６】
前記要求切換手段は、優先順位の選択切り換えを、順位の高いほうから低いほうへ順に切り換え、またはその逆順に切り換えるように行うものである
ことを特徴とする請求項１〜５のいずれか１項に記載のデータ転送処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタが共有している共通バスについて、その使用要求が競合したときにこれらに対する調停を行う機能を有したデータ転送処理装置に関するものである。
【背景技術】
【０００２】
一般に、複数のバスマスタが一つの共通バスを共有する場合、これら複数のバスマスタからの共通バス使用要求が競合すると、どのバスマスタにバス使用権を与えるか調停（バスのアービトレーション）を行う必要があるが、そのアービトレーションの代表的な方式としては、固定優先順位方式とラウンドロビン方式が知られている。固定優先順位方式は、バス使用権が与えられるバスマスタの優先順位が予め決められており、常に優先順位の高いバスマスタがバス使用権を得るというものである。一方、ラウンドロビン方式は、各バスマスタについての優先順位がアービトレーションの度に更新（ラウンド）され、バス使用権が与えられるバスマスタの順番が変わっていくというものである。現在では、両方を組み合わせた方式も一般的となっている。
【０００３】
ところが、共通バスを使用したデータ転送が非常に過密になった場合には、固定優先順位方式とラウンドロビン方式とのどちらの方式であっても、優先順位が低い低レベルのバスマスタにとって、バス使用権の獲得が困難になってしまうおそれがある。例えば、データ転送が過密になった場合、固定優先順位方式では、低レベルのバスマスタがバス使用権権を得られなくなる可能性がある。また、ラウンドロビン方式では、低レベルのバスマスタにも順番が回ってくるが、データ転送が過密ゆえに、そのバスマスタがデータ転送を実行できる保証はない。
【０００４】
そのため、近年では、より一層柔軟で適切なバスのアービトレーションを実現可能にすべく、以下に述べるようなものが提案されている。すなわち、各バスマスタ毎のタイムアウト時間の設定値と実際の待ち時間を比較して、低レベルのバスマスタの順位を一時的に高くすることで、優先順位の低いバスマスタの待ち合わせによるタイムアウトを防止したり（例えば、特許文献１参照）、要求発生までの時間と優先順位による重み付けでバス獲得の優先度を制御することで、バス使用効率を改善したり（例えば、特許文献２参照）、あるバスマスタがバスの使用を開始すると、そのバスマスタに宛てられたマスク時間の計時を開始し、その間は計時を開始していない他のバスマスタに対する優先順位を上位とすることで、連続使用が長いバスマスタによるバスの占有を防ぐこと（例えば、特許文献３参照）が提案されている。また、その他にも、バス調停の優先順位をレジスタのビットとして用意し、これをアクセスが発生する度にシフトして、優先順位の低いマスタにも一定時間内に確実にバス権が与えられることを保証すること（例えば、特許文献４参照）が提案されている。
【０００５】
【特許文献１】特開平８−３１４８５２号公報
【特許文献２】特開平１０−２７１５６号公報
【特許文献３】特開２０００−２５９５５６号公報
【特許文献４】特開２００１−８４２１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１〜３に開示されたような時間による管理を行うものでは、時間計測用カウンタをバスマスタの分だけ用意する必要が生じてしまい、装置構成の複雑化や装置コストの上昇等を招いてしまう。さらに、一律に時間で管理するのでは、例えば、不必要に大量のデータを転送するタイプのバスマスタにバス使用権が付与されてしまい、短時間でも必要なデータ転送があるバスマスタに対してバス使用権が与えられなくなるおそれがある。さらには、低レベルのバスマスタを組み込んでしまうと、高レベルのバスマスタに対してバンド幅を制限してしまうことに繋がってしまう。また、上述した特許文献４に開示されたような優先順位を複数持つ方式では、柔軟かつきめ細かいアービトレーションを行える可能性があるが、そのためにはきめ細かなアービトレーションを行うだけのテーブルを用意せねばならず、装置構成の複雑化や装置コストの上昇等を招く要因となる。さらには、様々なバスマスタの組み合わせに対応してテーブルを用意し、効果的に切り換えを行うことは、非常に困難であると考えられる。
【０００７】
また、従来は、高スループットを要求する高速デバイスあるいは低スループットでも構わない低速デバイスという二種類のバスマスタしか存在しなかったが、最近では、例えばＵＳＢ（Universal Serial Bus）接続に対応したシリアルバスのホストコントローラのように、低速でありながらも一定期間にある程度の転送量を必要とする、従来とは特徴の異なるバスマスタが存在するようになっている。このようなバスマスタについては、当該バスマスタ自身のタイムフレームによる実際のデータ転送の他に、ＤＭＡ（Direct Memory Access）によるメモリのポーリングといった実際のデータ転送ではない動作を含むため、単に高優先順位に設定してしまうと、バス全体の使用率を低下させてしまうおそれがある。
【０００８】
このように、従来におけるバスのアービトレーションでは、共通バス全体の使用率の低下を回避しつつ、低レベルのバスマスタにも適切にバス使用権を与えるといった、柔軟で適切なバスのアービトレーションの実現と、そのアービトレーションを行うデータ転送処理装置の装置構成の複雑化や装置コストの上昇等の回避とを、必ずしもそれぞれ両立させ得るとは限らない。
【０００９】
そこで、本発明は、単に低レベルマスタの救済に留まらない、柔軟で適切なバスのアービトレーションの実現と、装置構成の複雑化や装置コストの上昇等の回避とを、それぞれ両立させることが可能なデータ転送処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するために案出されたデータ転送処理装置で、共通バスと、前記共通バスを使用してデータ転送を行う複数のバスマスタと、前記複数のバスマスタからの共通バス使用要求に対する調停を予め設定されている優先順位に基づいて行うバスアービタと、前記複数のバスマスタのうちのあるバスマスタの優先順位として、当該あるバスマスタについて設定されている複数の異なる優先順位の中からいずれか一つを選択するとともに、当該選択の切り換えを定期的に行う要求切換手段とを備えることを特徴とするものである。
【００１１】
上記構成のデータ転送処理装置によれば、バスアービタが予め設定されている優先順位に基づいて複数のバスマスタに対する調停を行うが、そのバスアービタによって調停される複数のバスマスタのうち、あるバスマスタについては、その優先順位を要求切換手段が複数の異なるの中からいずれか一つ選択するとともに、その選択の切り換えを定期的に行うようになっている。したがって、あるバスマスタについては、その優先順位が定期的に切り換わるので、その切り換わりを何度か経た期間を通してみれば、高速でもない、低速でもない、中間のバンド幅を確保することが可能となる。
【発明の効果】
【００１２】
本発明のデータ転送処理装置では、あるバスマスタについて、複数の異なる優先順位が定期的に切り換わるので、中間のバンド幅を確保することが可能となり、共通バス全体の使用率の低下を回避しつつ、当該あるバスマスタに対して適切にバス使用権を与えるといったことが実現可能となる。つまり、バスアービタが柔軟で適切なバスのアービトレーションを行うことが可能となる。しかも、その場合であっても、あるバスマスタ以外のバスマスタ（特に高レベルのマスタ）については影響を及ぼすことがない。これにより、既存のシステムのバランスを崩すことなく、例えばＵＳＢ接続に対応したものの如く新しい特徴的なデバイスについても対応することが可能となる。
また、柔軟で適切なバスのアービトレーションを実現しても、タイマー機能や膨大なデータ量のテーブル等を要することがなく、優先順位の入れ換え（例えば、スイッチング）を行う要求切換手段を備えるだけでよいため、簡素な装置構成での実現が可能となり、装置構成の複雑化や装置コストの上昇等を招いてしまうこともない。
このように、本発明によれば、柔軟で適切なバスのアービトレーションの実現と、装置構成の複雑化や装置コストの上昇等の回避とを、それぞれ両立させることが可能となるのである。
【発明を実施するための最良の形態】
【００１３】
以下、図面に基づき本発明に係るデータ転送処理装置について説明する。
【００１４】
先ず、データ転送処理装置の概略構成について説明する。図１は、データ転送処理装置の概略構成例を示す模式図である。図例のように、ここで説明するデータ転送処理装置は、共通バス１と、複数のバスマスタＡ〜Ｚと、バスアービタ２と、モード設定レジスタ３と、要求切換手段４と、インターバルカウンタ５と、インターバルレジスタ６と、を備えて構成されている。
【００１５】
共通バス１は、各バスマスタＡ〜Ｚや図示しないメモリやＩ／Ｏ（Input/Output）装置といった各種デバイス等の間の共通信号路として機能するものであり、その代表的なものとして、例えばＰＣＩＳＩＧ（Peripheral Component Interconnect Special Interest Group）によって策定されたＰＣＩ（Peripheral Component Interconnect）規格に準拠したものが挙げられる。
【００１６】
各バスマスタＡ〜Ｚは、例えばＤＭＡ（Direct Memory Access）コントローラのように、共通バス１を使用して各種デバイス間のデータ転送を行うものである。さらに詳しくは、各種デバイス間のデータ転送を行うために、バスアービタ２に対してバス要求信号を送信し、バスアービタ２からバス許可信号を受け取ると、共通バス１を使用したデータ転送を開始し、そのデータ転送が終了した時点でバス要求信号の送信を停止するようになっている。
【００１７】
バスアービタ２は、各バスマスタＡ〜Ｚからの共通バス１の使用要求であるバス要求信号に対する調停、すなわちバスのアービトレーションを行うとともに、そのアービトレーションの結果であるバス許可信号の発信を行うものである。ただし、バスアービタ２では、バスのアービトレーションを、予め設定されている優先順位に基づいて行うようになっている。優先順位は、固定されたものであっても、可変するものであってもよい。つまり、バスアービタ２は、固定優先順位方式に対応したものであってもよいし、ラウンドロビン方式に対応したものであってもよいし、固定優先順位方式とラウンドロビン方式とを組み合わせたものに対応していてもよい。なお、バスアービタ２によるアービトレーションの詳細については、従来と同様であるため、ここではその説明を省略する。
【００１８】
モード設定レジスタ３は、バスアービタ２における動作モード、特にバスアービタ２がバスのアービトレーションを行う際に基にする優先順位を設定可能なレジスタである。このモード設定レジスタ３による記憶情報を変更することで、バスアービタ２の動作モード等を変更することが可能となる。なお、モード設定レジスタ３での情報保持機能や情報書き込み機能等については、公知技術を利用すればよいため、ここではその説明を省略する。
【００１９】
要求切換手段４は、本実施形態で説明するデータ転送処理装置の特徴的な構成部分で、各バスマスタＡ〜ＺのうちのあるバスマスタＡとバスアービタ２との間に配されており、そのバスマスタＡの優先順位として、複数の異なる優先順位の中からいずれか一つを選択するとともに、その選択の切り換えを定期的に行うためのものである。具体的には、あるバスマスタＡに繋がるバス要求信号線およびバス許可信号線と、バスアービタ２におけるこれらの信号線用の端子REQ0〜REQ2，GNT0〜GNT2との接続を、スイッチングして入れ換えるものである。ただし、各端子REQ0〜REQ2，GNT0〜GNT2については、それぞれ優先順位のレベルが互いに異なっているものとする。そして、例えば優先順位が高（High）／中（Mid）／低（Low）レベルの三つのグループ分けされる場合であれば、全てのグループに対してそれぞれ三つの端子REQ0〜REQ2，GNT0〜GNT2が確保されている。つまり、要求切換手段４は、すなわち、要求切換手段４では、バスマスタＡとバスアービタ２との間の接続状態の入れ換えを行うことで、そのバスマスタＡについての優先順位の選択切り換えを行うようになっている。この要求切換手段４は、スイッチング回路等のハードウエアによって実現することが考えられるが、ＣＰＵ（Central Processing Unit）等に所定プログラムを実行させてソフトウエアにより実現することも考えられる。
【００２０】
インターバルカウンタ５は、要求切換手段４がスイッチングを行うと、その時点を「０」としてシステムクロック等のカウントを行い、カウント数が設定値INT_CTRに到達したら、カウントを停止して、その旨を要求切換手段４に通知するとともに、カウント数を「０」にリセットし、再び新たなカウントを開始するものである。このインターバルカウンタ５からの通知に基づいて、要求切換手段４は、定期的な選択切り換え（スイッチング）を行うようになっている。
【００２１】
インターバルレジスタ６は、インターバルカウンタ５がカウントを停止する設定値INT_CTRが予め設定されているものである。ただし、インターバルレジスタ６には、複数（例えば三つ）の設定値INT_CTR1〜INT_CTR3が設定されており、これらの設定値INT_CTR1〜INT_CTR3を順次切り換えてインターバルカウンタ５にロードするようになっている。これにより、インターバルカウンタ５は、システムクロック等のカウントを行う度に、そのカウントを停止するカウント数として、異なる設定値INT_CTR1〜INT_CTR3を用いることになる。
【００２２】
このように、インターバルカウンタ５およびインターバルレジスタ６は、要求切換手段４が定期的に行う選択切り換え（スイッチング）の間隔を、その選択切り換え毎に異なるように可変にする、本発明の間隔可変手段として機能するものである。
【００２３】
なお、ここでは、バスマスタＡ〜Ｚのうちの一つのバスマスタＡに対応して要求切換手段４、インターバルカウンタ５およびインターバルレジスタ６が設けられている場合を例に示しているが、他のバスマスタＡにも対応して、要求切換手段４等が複数設けられていてもよい。ただし、その場合には、一つの要求切換手段４に対して、必ず一つのバスマスタＡ〜Ｚが対応するようになっているものとする。
【００２４】
次に、以上のように構成されたデータ転送処理装置における処理動作例について説明する。
【００２５】
例えば、ＵＳＢ接続に対応する場合のように、各バスマスタＡ〜Ｚの中に、低速でありながらも一定期間にある程度のデータ転送を必要とする特徴のものが存在する場合に、そのマスタの優先順位を高く設定してしまうと、バス全体の使用率が低下してしまうおそれがある。すなわち、他のマスタ（特に優先順位が高レベルであるマスタ）にも影響を及ぼしてしまうことになる。また、例えば、ＵＳＢ接続に対応する場合には、バス状態を時間により管理すると（例えば、特許文献１〜３参照）、不必要に大量のデータを転送するタイプのバスマスタにバス使用権が付与されてしまい、短時間でも必要なデータ転送があるバスマスタに対してバス使用権が与えられなくなるおそれがある。さらに、複数のバスマスタＡ〜Ｚが接続されるバスアービタ２において、それぞれのバスマスタＡ〜Ｚに対する優先順位を動的に変化させようとすると（例えば、特許文献４参照）、これに対応するだけのテーブルを用意せねばならず、そのための装置構成が非常に複雑なものになると思われる。
【００２６】
このことから、本実施形態で説明するデータ転送処理装置では、バスマスタＡ〜Ｚのうちのある一つのバスマスタＡで、例えば低速でありながらも一定期間にある程度のデータ転送を必要とする特徴のものに対して、スムーズに共通バス１の使用権を確保させることができるアービトレーションを実現すべく、要求切換手段４がそのバスマスタＡについての優先順位の選択切り換えを定期的に行い、これにより他のマスタ（特に高レベルのマスタ）の優先順位を変えることなく、高速でも低速でもない中間バンド幅を、簡易な装置構成で確保しているのである。
【００２７】
具体的には、要求切換手段４は、バスアービタ２の側がHigh／Mid／Lowレベルの各グループに対応した三つの端子REQ0〜REQ2，GNT0〜GNT2と接続しているので、先ず、デフォルト（例えばHighレベル）の端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行う。そして、インターバルカウンタ５でのカウント数が設定値INT_CTR1〜INT_CTR3に到達する度に、例えばHighレベル→Midレベル→Lowレベルといった順で、バスマスタＡとバスアービタ２との間の接続状態の入れ換えを行う。ただし、優先順位の選択切り換えは、Highレベル→Midレベル→Lowレベルといったように、順位の高いほうから低いほうへ順に切り換えるのではなく、Lowレベル→Midレベル→Highレベルといったようなその逆順に行うようにしてもよい。いずれの場合においても、レベル遷移のためのスイッチングの手法としては、例えばステート情報を用いることが考えられる。ステート情報は、フリップフロップで構成され、カウンタの値がそれぞれのカウント値に到達する度に、ステートを遷移する。この信号をマスク信号として使うことで、要求切換手段４が三つの端子REQ0〜REQ2，GNT0〜GNT2と接続していても、その中から選択されたいずれか一つ以外については信号の授受を行わないという、信号の排他制御を実現することができるのである。
【００２８】
図２は、データ転送処理装置における優先順位の選択切り換えを、ラウンドロビン方式に適用した場合の一具体例を示す状態遷移図である。図例のように、ここでは、High／Mid／Lowレベルの３グループ３階層で、HighレベルのグループにバスマスタＢが、MidレベルのグループにバスマスタＣが、LowレベルのグループにバスマスタＺがそれぞれ属するように設定されたラウンドロビン方式を例に挙げて説明する。なお、バスマスタＡについては、その優先順位としてHigh／Mid／Lowレベルのそれぞれが設定されており（各端子REQ0〜REQ2，GNT0〜GNT2がHigh／Mid／Lowレベルのそれぞれに対応している）、要求切換手段４がその中からいずれか一つを選択するようになっているものとする。
【００２９】
このような設定のラウンドロビン方式の場合、バスマスタＡに着目すると、共通バス１の使用許可頻度が以下に述べるように遷移する。
【００３０】
動作開始からインターバルカウンタ５によるカウント数が最初の設定値INT_CTR1に到達するまでの間は、要求切換手段４がデフォルトであるHighレベルの端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、共通バス１の使用権についての優先順位が、Highレベルのグループに属する「Ｂ」→Highレベルのグループに属する「Ａ」→Midレベルのグループに属する「Ｃ」→Highレベルのグループに属する「Ｂ」→Highレベルのグループに属する「Ａ」→Lowレベルのグループに属する「Ｚ」という順の遷移を繰り返すことになる。したがって、バスアービタ２に対して各バスマスタＡ〜Ｚがバス要求信号を送信する場合であっても、バスマスタＡは、三回に一回の割合で共通バス１の使用権を獲得することが可能となる。
【００３１】
インターバルカウンタ５によるカウント数が設定値INT_CTR1に到達すると、要求切換手段４がMidレベルの端子REQ1，GNT1とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1への到達後から設定値INT_CTR2に到達するまでの間は、共通バス１の使用権についての優先順位が、Highレベルのグループに属する「Ｂ」→Midレベルのグループに属する「Ｃ」→Highレベルのグループに属する「Ｂ」→Midレベルのグループに属する「Ａ」→Highレベルのグループに属する「Ｂ」→Lowレベルのグループに属する「Ｚ」をいう順の遷移を繰り返すことになる。したがって、バスアービタ２に対して各バスマスタＡ〜Ｚがバス要求信号を送信する場合に、バスマスタＡは、六回に一回の割合で共通バス１の使用権を獲得することが可能となる。
【００３２】
インターバルカウンタ５によるカウント数が設定値INT_CTR2に到達すると、要求切換手段４がLowレベルの端子REQ2，GNT2とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1＋設定値INT_CTR2への到達後から設定値INT_CTR3に到達するまでの間は、その後からカウント数が設定値INT_CTR2に到達するまでの間は、共通バス１の使用権についての優先順位が、Highレベルのグループに属する「Ｂ」→Midレベルのグループに属する「Ｃ」→Highレベルのグループに属する「Ｂ」→Lowレベルのグループに属する「Ｚ」→Highレベルのグループに属する「Ｂ」→Midレベルのグループに属する「Ｃ」→Highレベルのグループに属する「Ｂ」→Lowレベルのグループに属する「Ａ」をいう順の遷移を繰り返すことになる。したがって、バスアービタ２に対して各バスマスタＡ〜Ｚがバス要求信号を送信する場合に、バスマスタＡは、八回に一回の割合で共通バス１の使用権を獲得することが可能となる。
【００３３】
その後は、再び、要求切換手段４がHighレベルの端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1＋設定値INT_CTR2＋設定値INT_CTR3への到達後から設定値INT_CTR1に到達するまでの間、上述したようにバスマスタＡが三回に一回の割合で共通バス１の使用権を獲得することが可能となり、以下、上述した処理動作を繰り返すことになる。なお、このような処理動作の繰り返しは、上述したようなHighレベル→Midレベル→Lowレベルといった順で切り換えが行われる場合のみならず、その逆順で切り換えが行われる場合についても全く同様である。
【００３４】
図３は、データ転送処理装置における選択切り換えを、固定優先順位方式に適用した場合の一具体例を示す状態遷移図である。図例のように、ここでは、各バスマスタＡ〜Ｚについて、バスマスタＢ＞Highレベルの端子REQ0，GNT0に接続している状態のバスマスタＡ＞バスマスタＣ＞Midレベルの端子REQ1，GNT1に接続している状態のバスマスタＡ＞バスマスタＺ＞Lowレベルの端子REQ2，GNT2に接続している状態のバスマスタＡという順で優先順位が設定された固定優先順位方式を例に挙げて説明する。
【００３５】
このような設定の固定優先順位方式の場合、バスマスタＡに着目すると、共通バス１の使用許可頻度が以下に述べるように遷移する。
【００３６】
動作開始からインターバルカウンタ５によるカウント数が最初の設定値INT_CTR1に到達するまでの間は、要求切換手段４がデフォルトであるHighレベルの端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、バスマスタＡの優先順位が、バスマスタＢとバスマスタＣとの間に存在することになる。したがって、バスアービタ２に対して各バスマスタＡ〜Ｚがバス要求信号を送信する場合であっても、バスマスタＡは、バスマスタＢからのバス要求信号がなければ、共通バス１の使用権を獲得することが可能となる。
【００３７】
インターバルカウンタ５によるカウント数が設定値INT_CTR1に到達すると、要求切換手段４がMidレベルの端子REQ1，GNT1とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1への到達後から設定値INT_CTR2に到達するまでの間は、バスマスタＡの優先順位が、バスマスタＣとバスマスタＺとの間に存在することになる。したがって、バスアービタ２に対して各バスマスタＡ〜Ｚがバス要求信号を送信する場合であっても、バスマスタＡは、バスマスタＢ，Ｃからのバス要求信号がなければ、共通バス１の使用権を獲得することが可能となる。
【００３８】
インターバルカウンタ５によるカウント数が設定値INT_CTR2に到達すると、要求切換手段４がLowレベルの端子REQ2，GNT2とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1＋設定値INT_CTR2への到達後から設定値INT_CTR3に到達するまでの間は、バスマスタＡの優先順位が、バスマスタＺよりも下位に存在することになる。したがって、バスマスタＡは、バスマスタＢ〜Ｚのいずれからもバス要求信号がない場合にのみ、共通バス１の使用権を獲得することが可能となる。
【００３９】
その後は、再び、要求切換手段４がHighレベルの端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1＋設定値INT_CTR2＋設定値INT_CTR3への到達後から設定値INT_CTR1に到達するまでの間、上述したようにバスマスタＡはバスマスタＢからのバス要求信号がなければ共通バス１の使用権を獲得することが可能となり、以下、上述した処理動作を繰り返すことになる。なお、このような処理動作の繰り返しは、上述したようなHighレベル→Midレベル→Lowレベルといった順で切り換えが行われる場合のみならず、その逆順で切り換えが行われる場合についても全く同様である。
【００４０】
図４は、データ転送処理装置における選択切り換えを、ラウンドロビン方式と固定優先順位方式とを組み合わせたものに適用した場合の一具体例を示す状態遷移図である。図例のように、ここでは、High／Mid／Lowレベルの３グループ３階層で、HighレベルのグループにバスマスタＢが、MidレベルのグループにバスマスタＣが、LowレベルのグループにバスマスタＺがそれぞれ属するように設定されたラウンドロビン方式と、Highレベルのグループ＞Midレベルのグループ＞Lowレベルのグループという順で優先順位が設定された固定優先順位方式とを組み合わせた場合を例に挙げて説明する。なお、バスマスタＡについては、その優先順位としてHigh／Mid／Lowレベルのそれぞれが設定されており（各端子REQ0〜REQ2，GNT0〜GNT2がHigh／Mid／Lowレベルのそれぞれに対応している）、要求切換手段４がその中からいずれか一つを選択するようになっているものとする。
【００４１】
このような設定の組み合わせ方式の場合、バスマスタＡに着目すると、共通バス１の使用許可頻度が以下に述べるように遷移する。
【００４２】
動作開始からインターバルカウンタ５によるカウント数が最初の設定値INT_CTR1に到達するまでの間は、要求切換手段４がデフォルトであるHighレベルの端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、バスマスタＡの優先順位がHighレベルのグループに属することになる。したがって、共通バス１の使用権についての優先順位が、Highレベルのグループに属する「Ｂ」→Highレベルのグループに属する「Ａ」という順の遷移を繰り返し、バスマスタＡ，Ｂからのバス要求信号がない場合にのみ、バスマスタＣまたはバスマスタＺが共通バス１の使用権を獲得することが可能となる。
【００４３】
インターバルカウンタ５によるカウント数が設定値INT_CTR1に到達すると、要求切換手段４がMidレベルの端子REQ1，GNT1とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1への到達後から設定値INT_CTR2に到達するまでの間は、バスマスタＡの優先順位がMidレベルのグループに属することになる。したがって、バスマスタＢからのバス要求信号がなければ、共通バス１の使用権についての優先順位が、Midレベルのグループに属する「Ｃ」→Midレベルのグループに属する「Ａ」という順の遷移を繰り返し、バスマスタＡ，Ｂ，Ｃのいずれからもバス要求信号がない場合にのみ、バスマスタＺが共通バス１の使用権を獲得することが可能となる。
【００４４】
インターバルカウンタ５によるカウント数が設定値INT_CTR2に到達すると、要求切換手段４がLowレベルの端子REQ2，GNT2とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1＋設定値INT_CTR2への到達後から設定値INT_CTR3に到達するまでの間は、バスマスタＡの優先順位がLowレベルのグループに属することになる。したがって、バスマスタＢ，Ｃのいずれからもバス要求信号がない場合に、共通バス１の使用権についての優先順位が、Lowレベルのグループに属する「Ｚ」→Lowレベルのグループに属する「Ａ」という順の遷移を繰り返すこととなる。
【００４５】
その後は、再び、要求切換手段４がHighレベルの端子REQ0，GNT0とバスマスタＡとの間の接続が確保されるようにスイッチングを行うので、カウント数が設定値INT_CTR1＋設定値INT_CTR2＋設定値INT_CTR3への到達後から設定値INT_CTR1に到達するまでの間、共通バス１の使用権についての優先順位が、Highレベルのグループに属する「Ｂ」→Highレベルのグループに属する「Ａ」という順の遷移を繰り返し、以下、上述した処理動作を繰り返すことになる。なお、このような処理動作の繰り返しは、上述したようなHighレベル→Midレベル→Lowレベルといった順で切り換えが行われる場合のみならず、その逆順で切り換えが行われる場合についても全く同様である。
【００４６】
以上のように、本実施形態で説明したデータ転送処理装置では、バスアービタ２が複数のバスマスタＡ〜Ｚからのバス要求信号に対するアービトレーションを行うが、バスアービタ２によるアービトレーションに固定優先順位方式、ラウンドロビン方式またはこれらの組み合わせのいずれを適用した場合であっても、そのうちのバスマスタＡについては、その優先順位を要求切換手段４が複数の異なるの中からいずれか一つ選択するとともに、その選択の切り換えを定期的に行うようになっている。したがって、そのバスマスタＡについては、アービトレーションの方式に拘わらず、その優先順位が定期的に切り換わるので、その切り換わりを何度か経た期間を通してみれば、高速でもない、低速でもない、中間のバンド幅を確保することが可能となる。
【００４７】
つまり、本実施形態におけるデータ転送処理装置では、あるバスマスタＡについて、複数の異なる優先順位が定期的に切り換わるので、中間のバンド幅を確保することが可能となり、バスが過密になっても破綻することがない等の如く、共通バス１全体の使用率の低下を回避しつつ、当該あるバスマスタＡに対して適切にバス使用権を与えるといったことが実現でき、その結果としてバスアービタ２が柔軟で適切なバスのアービトレーションを行うことが可能となるのである。しかも、その場合であっても、あるバスマスタＡ以外のバスマスタＢ〜Ｃ（特に高レベルのもの）については影響を及ぼすことがない。これにより、既存のシステムのバランスを崩すことなく、例えばＵＳＢ接続に対応したものの如く、低速でありながら、あるタイムフレームで制御を終了する制限を持つ等の新しい特徴的なデバイスについても、好適なアービトレーションを実現することが可能となる。
【００４８】
さらに、柔軟で適切なバスのアービトレーションを実現しても、タイマー機能や膨大なデータ量のテーブル等を要することがなく、優先順位の入れ換え（例えば、スイッチング）を行う要求切換手段４を備えるだけでよいため、簡素な装置構成での実現が可能となる。また、既存の構成に追加して本実施形態のデータ転送処理装置を実現することも容易である。したがって、装置構成の複雑化や装置コストの上昇等を招いてしまうこともない。
【００４９】
このように、本実施形態におけるデータ転送処理装置によれば、柔軟で適切なバスのアービトレーションの実現と、装置構成の複雑化や装置コストの上昇等の回避とを、それぞれ両立させることが可能となるのである。
【００５０】
また、本実施形態におけるデータ転送処理装置では、単に要求切換手段４がバスマスタＡについての優先順位の選択切り換えを定期的に行うだけでなく、インターバルレジスタ６に設定された複数の設定値INT_CTR1〜INT_CTR3に基づいて、その定期的に行う選択切り換えの間隔、すなわちインターバルカウンタ５によるカウント数が、その間隔が選択切り換え毎に異なるようになっている。つまり、インターバルカウンタ５およびインターバルレジスタ６を備えることで、選択切り換えの間隔（カウント数）が可変するようになっている。このことは、要求切換手段４が選択切り換えを行うことによって、バスマスタＡについて中間のバンド幅を確保する場合に、複数の設定値INT_CTR1〜INT_CTR3の設定次第で、その中間のバンド幅が決定されることを意味する。したがって、カウント数を選択切り換え毎に可変とすれば、設定値INT_CTR1〜INT_CTR3の設定次第で中間のバンド幅の大きさを適宜調整できることとなり、柔軟で適切なバスのアービトレーションを実現する上で非常に好適なものとなる。
【００５１】
また、上述したように、本実施形態におけるデータ転送処理装置は、固定優先順位方式、ラウンドロビン方式またはこれらの組み合わせのいずれに対しても適用することが可能である。そして、固定優先順位方式に適用した場合は高速性を要求されるマスタのバンド幅確保が確実となり、またラウンドロビン方式に適用した場合は各マスタによる公平なバス権取得が可能となり、両者の組み合わせに適用した場合は高速性を要求されるマスタのバンド幅確保しつつ各マスタによる公平なバス権取得を可能にする、といったそれぞれの方式における利点をそのまま享受することができる。
【００５２】
なお、本実施形態では、本発明の好適な実施具体例を説明したが、本発明はその内容に限定されるものではなく、その要旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態では、バスアービタ２が固定優先順位方式、ラウンドロビン方式またはこれらの組み合わせによりアービトレーションを行う場合を例に挙げたが、他の公知技術を用いたもの等であっても、全く同様に本発明を適用することが考えられる。
【００５３】
また、本実施形態では、要求切換手段４が、バスマスタＡについての優先順位の選択切り換えを、順位の高いほうから低いほうへ順に切り換え、またはその逆順に切り換えるように行う場合を例に挙げたが、その切り換え順は対象となるバスマスタＡの特性、すなわち徐々にバス使用頻度が低くなるようなものか、あるいは高くなるものかといった特性に合わせて予め決定しておくばよく、必ずしも順位の高いほうから低いほうへの順またはその逆順に限定されることはない。
【図面の簡単な説明】
【００５４】
【図１】本発明に係るデータ転送処理装置の概略構成例を示す模式図である。
【図２】本発明に係るデータ転送処理装置における優先順位の選択切り換えを、ラウンドロビン方式に適用した場合の一具体例を示す状態遷移図である。
【図３】本発明に係るデータ転送処理装置における優先順位の選択切り換えを、固定優先順位方式に適用した場合の一具体例を示す状態遷移図である。
【図４】本発明に係るデータ転送処理装置における優先順位の選択切り換えを、ラウンドロビン方式と固定優先順位方式とを組み合わせたものに適用した場合の一具体例を示す状態遷移図である。
【符号の説明】
【００５５】
１…共通バス、２…バスアービタ、３…モード設定レジスタ、４…要求切換手段、Ａ，Ｂ，Ｃ，Ｚ…バスマスタ、５…インターバルカウンタ、６…インターバルレジスタ
【図１】
2006259842.tif 000003
【図２】
2006259842.tif 000004
【図３】
2006259842.tif 000005
【図４】
2006259842.tif 000006