(57)【特許請求の範囲】
【請求項１】
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定手段と、
前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停手段と、を備え、
前記アクセスモード判定手段は、
前記マスタからのアクセス間隔をカウントするアクセス間隔カウント手段と、
前記マスタからの連続アクセス回数をカウントする連続アクセス回数カウント手段と、
判定した前記アクセスモードの状態を前記マスタごとに格納しておくアクセスモード状態レジスタと、を備え、
前記マスタからのバスアクセスに対して、
（ａ）前記アクセス間隔が所定のアクセス間隔以内に前記連続アクセス回数が所定の連続アクセス回数以上となり連続してアクセスが発生した場合は、当該マスタのアクセスモードの状態を前記連続アクセスモードに更新し、
（ｂ）前記連続アクセス回数が所定の連続アクセス回数に達していない状態で前記アクセス間隔が所定のアクセス間隔を超えた場合は、当該マスタのアクセスモードの状態を前記シングルアクセスモードに更新する、
ことを特徴とするバスアクセス調停回路。
【請求項２】
前記ラウンドロビン調停手段は、
最後にアクセス権を付与した前記マスタの前記アクセスモードに応じて、前記連続アクセスモードである場合は当該マスタに優先的にアクセス権を付与し、前記シングルアクセスモードである場合はラウンドロビン方式に従ってアクセス調停処理を行う、
ことを特徴とする請求項１記載のバスアクセス調停回路。
【請求項３】
前記ラウンドロビン調停手段は、
最後にアクセス権を付与した前記マスタの前記アクセスモードに応じて、
（ａ）前記連続アクセスモードであり、かつ、前記アクセス間隔が所定のアクセス間隔以内に前記連続アクセス回数が所定の連続アクセス回数以内であるアクセスが当該マスタから発生した場合は、当該マスタにアクセス権を付与し、
（ｂ）前記連続アクセスモードであり、かつ、当該マスタからはアクセスがなく前記アクセス間隔が前記所定のアクセス間隔以内に他の前記マスタからアクセス発生した場合は、当該他の前記マスタからのアクセスをウェイトさせ、
（ｃ）前記連続アクセスモードであり、かつ、前記アクセス間隔が前記所定のアクセス間隔を超えるかまたは前記連続アクセス回数が前記所定の連続アクセス回数を超えて当該マスタからアクセスが発生した場合は、ラウンドロビン方式に従ってアクセス調停処理を行い、
（ｄ）前記シングルアクセスモードの場合は、前記ラウンドロビン方式に従ってアクセス調停処理を行う、
ことを特徴とする請求項１記載のバスアクセス調停回路。
【請求項４】
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定手段と、
前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停手段と、を備え、
前記ラウンドロビン調停手段は、
前記アクセスモードが前記連続アクセスモードである場合でも、各前記マスタからのアクセスが書き込みアクセスである場合は、ラウンドロビン方式に従ってアクセス調停する、
ことを特徴とするバスアクセス調停回路。
【請求項５】
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定手段と、
前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停手段と、を備え、
前記複数のマスタは、それぞれ優先度の異なる複数のグループに分けられており、
前記ラウンドロビン調停手段は、
前記アクセス調停方式としてラウンドロビン方式に切り替えられた場合、前記優先度に応じた選択確率となるように前記複数のグループの中から１つのグループを選択し、さらに、前記選択したグループに含まれる複数のマスタの中から１つのマスタをラウンドロビン方式によって選択する、
ことを特徴とするバスアクセス調停回路。
【請求項６】
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定手段と、
前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停手段と、を備え、
前記アクセスモード判定手段は、
前記マスタからのアクセス間隔をカウントするアクセス間隔カウント手段と、
前記マスタからの連続アクセス回数をカウントする連続アクセス回数カウント手段と、
判定した前記アクセスモードの状態を前記マスタごとに格納しておくアクセスモード状態レジスタと、
前記連続アクセスモードであり、かつ、前記連続アクセス回数が所定のアクセス連続回数となりアクセスする前記マスタを切り替えた場合に、次のアクセスにおけるウェイトサイクル数をカウントするウェイトカウント手段と、
前記マスタが最大許容可能なウェイトサイクル数を制御する最大ウェイト制御手段と、を備え、
前記カウントされたウェイトカウント数と、前記最大許容可能なウェイトサイクル数と、に基づいて、前記アクセス間隔カウント手段と、前記連続アクセス回数カウント手段と、がそれぞれ有する設定レジスタの値を動的に更新する、
ことを特徴とするバスアクセス調停回路。
【請求項７】
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定ステップと、
判定された前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停ステップと、を含み、
前記アクセスモード判定ステップでは、
前記マスタからのアクセス間隔と、前記マスタからの連続アクセス回数と、に基づいて、前記アクセスモードの状態を更新して、当該更新した前記アクセスモードの状態を前記マスタごとにアクセスモード状態レジスタに格納しておき、
前記マスタからのバスアクセスに対して、
（ａ）前記アクセス間隔が所定のアクセス間隔以内に前記連続アクセス回数が所定の連続アクセス回数以上となり連続してアクセスが発生した場合は、当該マスタのアクセスモードの状態を前記連続アクセスモードに更新し、
（ｂ）前記連続アクセス回数が所定の連続アクセス回数に達していない状態で前記アクセス間隔が所定のアクセス間隔を超えた場合は、当該マスタのアクセスモードの状態を前記シングルアクセスモードに更新する、
ことを特徴とするバスアクセス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムのためのバスアクセス調停回路の改良に関する。特に、無線信号処理などにおける連続ストリームデータ転送を効率良く実現可能なバスアクセス制御技術に関する。
【背景技術】
【０００２】
無線通信処理などでは、一般的に、複数のコアを用いて並列に種々の処理を行うマルチプロセッサシステムが用いられる。そして、各コア間や各コアとメモリ間などではバスを用いてアクセスを行う。このバスアクセスに関して、複数のマスタからの同時アクセスのために任意のバス上でアクセス競合が発生する場合には、それら競合するバスアクセスを調停するアクセス調停回路が必要である。【０００３】
本発明に関連するアクセス調停回路に関し、アクセス調停回路を実現するアクセス調停方式として、主に「ラウンドロビン方式」や「固定優先度方式」が用いられていた。「ラウンドロビン方式」は、特に優先度は考慮されず、各マスタに等確率で順番にアクセス権を与える方式である。例えば、接続マスタの個数分の状態（state）を持ち、昇順にアクセスコマンドの有無を見るような回路構成で実現される。【０００４】
一方、「固定優先度方式」は、アクセスコマンドが競合した場合に、最も優先度が大きいマスタにアクセス権を与える方式である。優先度は固定のため、特に状態（state）を持たず、回路構成が簡単であるという特徴を有する。ただし、「固定優先度方式」の場合には、優先度の高いマスタが連続してアクセスし続ける可能性がある場合に、他のマスタがその期間中は全くアクセス権を付与されないことになる。このため、ワーストサイクル数を見積もることができず性能の保障ができない、という重大な課題がある。従って、一般的には「ラウンドロビン方式」の方がよく用いられるが、「ラウンドロビン方式」では優先度を考慮することができないという課題がある。【０００５】
また、近年では、ストリームアクセス可能な高速なオンチップバスインタフェース規格が存在する。このバスインタフェース規格は、アクセス高速化を図るために、読み出し時にアドレスとデータをスプリット転送（パイプライン転送）させるものである。例えば、ＯＣＰ（Open Core Protocol）やAXI（Advanced eXtensible Interface）などである。このような、要求フェーズ（アドレス）と応答フェーズ（データ）が分離されたスプリット転送可能なバスインタフェース規格を用いることで、読み出し時のデータレイテンシに依存せずに、読み出しアドレスを連続して発行することが可能になる。従って、システムの大規模化や動作クロック周波数の高速化に伴って、読み出し時のレイテンシサイクル数が多くなる場合であっても、スプリット転送可能なバスを用いることで、高い転送スループットでストリームアクセスすることが可能になる。【０００６】
また、近年ではシステムの大規模化に伴って、バスを複数に分け、複数のバスインタフェース同士を組み合わせて段階的に接続する階層的なバス構成もよく用いられる。【０００７】
例えば、本発明に関連する技術として、特許文献１に開示される技術がある。特許文献１では、オープンコアプロトコル（ＯＣＰ）を基盤としたバスに、複数のマスタを連結するためのバスシステム技術が提案されている。これは、ＯＣＰの特徴であるスプリット転送を可能とするため、複数のマスタからのアクセスを調停するバスアービタ回路の他に、読み出し時にアクセスマスタ情報を順次格納しておくＦＩＦＯバッファ回路を更に備えたものである。これによって、スプリット転送可能なバスに対しても、読み出しデータをマスタに返送する際に、ＦＩＦＯに格納したマスタ情報を用いて所望のマスタに返送することが可能である。このため、複数のマスタからの読み出しアクセスを調停しながら連続して転送することができるという利点がある。【０００８】
また、他の関連する技術として、特許文献２に開示される技術がある。特許文献２では、スプリット転送可能なバスインタフェース規格を階層的なバスとして使用する場合のバス制御技術が提案されている。これは、前段と後段の階層的なバスへのアクセス時に、前段でのキャッシュスヌープ処理と並行して先行して後段のアクセス調停処理も実施することで、バスアクセスの高速化を実現できるというものである。【０００９】
しかしながら、別の関連する技術である特許文献３でも言及されているように、スプリット転送可能なバスインタフェースでは、アクセス先（スレーブ）に応じて読み出しデータのレイテンシ（返送サイクル数）が異なる場合、アクセス先（スレーブ）が異なるバスアクセスは結局連続して転送できないという課題がある。【００１０】
特に、スプリット転送可能なバスインタフェースを用いた階層的なバス構成の場合、前段で複数のマスタに等確率でアクセス権を与える「ラウンドロビン方式」でアクセス調停した場合、例えばマスタＡがスレーブ１に、マスタＢがスレーブ２にそれぞれ連続的に読み出しアクセスを発行したとき、ラウンドロビン方式に従って交互にアクセス権が付与され、後段のバスではスレーブ１とスレーブ２の異なるスレーブへの交互の読み出しアクセスとなってしまう。【００１１】
この場合、後段のバス上で読み出しデータの競合やアウトオブオーダー（Out Of Order）転送を防止するため、アクセス先（スレーブ）が異なる読み出しアクセスは連続して転送できず、１アクセスごとにWaitが発生して転送スループットが劣化する、という問題が生じる。ただし、バスインタフェース規格が「バースト転送」をサポートしており、かつ、各マスタが専用信号を用いて明示的に「バースト」指定が可能である場合には、前段のバスではその「バースト転送」単位でアクセス調停を行うことで、後段では一定の連続アクセスが確保され、転送スループットの劣化を防止することができる。【００１２】
しかしながら、本発明のマルチプロセッサシステムが用いられる無線通信処理などでは、データの並べ替えを行うインタリーブ処理のようにマスタ側が明示的にバースト指定できない（アドレスが不連続な）場合の連続アクセスが頻繁に発生する。このため、「バースト転送」は使用することができないという問題がある。また、バスインタフェースが「バースト転送」をサポートすると、バス関連の回路構成が複雑になるという問題もある。【００１３】
また、これらの問題を解決する他の関連する技術として、特許文献４に開示される技術がある。特許文献４では、複数のアクセス要求に対応する転送フェーズの連続実行回数をＮ回までに制限する技術が提案されている。これは、例えば優先度の高いマスタの連続実行回数を制限し、優先度の低いマスタにも一定の確率でアクセス権を与えることで、ワーストケースにおけるアクセスサイクル数を保障し、マスタ間のアクセス性能をできるだけ均等にするものである。【００１４】
しかしながら、このアクセス調停方法の場合、各マスタが例えばキャッシュのように連続アクセスが多い場合には効果があるものの、処理に応じてシングルアクセスと連続アクセスの両方が入り混じるような場合には、マスタ同士がお互いにシングルアクセスの場合にも連続アクセスであるか否かを判定する所定の期間分は必ずウェイトさせる必要がある。このため、一般的なラウンドロビン方式よりもアクセス性能が劣化するという問題がある。【００１５】
なお、本発明に関連する他の技術として、特許文献５〜７に開示される技術がある。しかし、特許文献５では、「ラウンドロビン調停の際に判定結果に基づいて連続アクセスを継続するか否かを判断する」という手法が開示されているにすぎず、「事前にアクセスモード判定も動的に行い、その判定結果に基づいて、そもそもラウンドロビン調停を行うか否か、各マスタごとのアクセス調停モードを動的に切り替える」構成について何ら開示されていない。【００１６】
さらに、特許文献５に開示された技術では、マスタ側からのアクセス毎にアクセス調停用の信号出力が必要となりオーバヘッドがあるという問題や、また、上述した特許文献４と同様に、各マスタコアから制御用のシングルアクセスや、データ処理用の連続的なアクセスが任意の頻度で発生する場合には、効率良くアクセス調停できない（事前にアクセスモード判定しないため）、という問題がある。【００１７】
また、特許文献６では、「固定時間の間バス所有権を持っている決定型モードと、ラウンドロビン割り当てが可能な適応型モードと、の切り替えを行う」という手法が開示されている。しかし、特許文献６では、「モード設定パラメータを用いて外部から静的にモード設定する」という必要があり、「判定結果に基づいてアクセスモード自体を動的に切り替える」ことはできないものである。【００１８】
さらに、特許文献６に開示された技術では、適時、モード設定が必要というオーバヘッドがあるという問題がある。また、実使用時には、各マスタコアから制御用のシングルアクセスや、データ処理用の連続的なアクセスが任意の頻度で発生する場合、または、各マスタコアがマルチタスクのような場合には、事前に効率良くモード設定するのは困難という問題がある。【００１９】
また、特許文献７についても、特許文献５と同様に、「事前にアクセスモードを判定し、それ以降のアクセスモードを動的に切り替える」構成について何ら開示されていない。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００５−２３５１９７号公報
【特許文献２】特開平０９−１２８３２５号公報
【特許文献３】特開平０２−０６４８３９号公報
【特許文献４】特開２００８−２９３４８７号公報
【特許文献５】特開２００１−２１６２５６号公報
【特許文献６】特開２００８−１３５０６８号公報
【特許文献７】特開２０１１−１２３９１３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
上述したように、マルチプロセッサシステムのためのバスアクセス調停回路において、ストリームアクセス可能なバスインタフェースを用いた階層的なバス構成を採用した場合には、「ラウンドロビン方式」等に従ってアクセス調停すると、アクセススループットが劣化してしまうという課題があった。【００２２】
特に、無線通信処理などで頻繁に発生する、制御処理用のシングルアクセスと、マスタ側が明示的にバースト指定できないような（アドレスが不連続な）データ処理用の連続アクセス（ストリームアクセス）と、が入り混じるような場合には、効率よくアクセス調停できないという点が挙げられる。【００２３】
その理由は、例えばマスタＡがスレーブ１に、マスタＢがスレーブ２にそれぞれ連続的に読み出しアクセスを発行したときに、前段でラウンドロビン方式に従って交互にアクセス権が付与されると、後段ではスレーブ１とスレーブ２への交互の読み出しアクセスとなってしまう。この場合、後段のバス上で読み出しデータの競合やアウトオブオーダー（Out Of Order）転送を防止するため、アクセス先（スレーブ）が異なる読み出しアクセスは連続して転送できず、１アクセスごとにWaitが発生して、転送スループットが劣化してしまうためである。【００２４】
一方で、上述したように、「固定優先度方式」等に従った場合には連続して転送可能であるものの、ワーストケースのアクセスサイクル数の保障ができない、という重大な問題が存在する。また、特許文献４に示されたように、連続アクセスを前提として所定の期間ごとにアクセス権を付与するアクセス調停方法を用いた場合には、シングルアクセスが頻繁に発生する期間では逆にアクセス性能が劣化してしまうという課題がある。【００２５】
本発明はこのような問題点を解決するためになされたものであり、マルチプロセッサシステムのバスアクセス調停回路として、例えば、ストリームアクセス可能なバスインタフェースを用いた階層的なバス構成を採用した場合で、各マスタコアから制御用のシングルアクセスや、データ処理用の連続的なアクセスが任意の頻度で発生した場合でも、転送スループットが劣化せず、かつ、ワーストケースのサイクル保障も可能なアクセス調停回路およびバスアクセス調停方法を提供することを目的とするものである。
【課題を解決するための手段】
【００２６】
本発明に係るバスアクセス調停回路は、複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定部と、前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停部と、を備え、前記アクセスモード判定部は、前記マスタからのアクセス間隔をカウントするアクセス間隔カウント部と、前記マスタからの連続アクセス回数をカウントする連続アクセス回数カウント部と、判定した前記アクセスモードの状態を前記マスタごとに格納しておくアクセスモード状態レジスタと、を備え、前記アクセス間隔と、前記連続アクセス回数と、に基づいて、前記アクセスモードの状態を更新する、ことを特徴とする。【００２７】
また、本発明に係る他のバスアクセス調停回路は、複数のマスタからのバスアクセスが発生する場合に、最後にアクセス権が付与された前記マスタからの連続アクセス回数をカウントする連続アクセス回数判定部と、前記連続アクセス回数判定部での判定結果に応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停部と、を備え、前記ラウンドロビン調停部は、（ａ）前記連続アクセス回数が所定の連続アクセス回数以内に前記マスタからアクセス発生した場合は、当該マスタに優先的にアクセス権を付与し、（ｂ）前記連続アクセス回数が所定の連続アクセス回数を超えた場合、または、前記マスタからはアクセス発生していない場合は、ラウンドロビン方式に従ってアクセス調停を行う、ことを特徴とする。【００２８】
また、本発明に係るバスアクセス調停方法、複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定ステップと、判定された前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停ステップと、を含み、前記アクセスモード判定ステップでは、前記マスタからのアクセス間隔と、前記マスタからの連続アクセス回数と、に基づいて、前記アクセスモードの状態を更新して、当該更新した前記アクセスモードの状態を前記マスタごとにアクセスモード状態レジスタに格納しておく、ことを特徴とする。
【発明の効果】
【００２９】
本発明により、転送スループットが劣化せず、かつ、ワーストケースのサイクル保障も可能なバスアクセス調停回路およびバスアクセス調停方法を提供することができる。
【図面の簡単な説明】
【００３０】
【図１】実施の形態１に係るバスアクセス調停回路の全体構成図である。
【図２】実施の形態１に係るバスアクセス調停回路におけるアクセス調停処理を示すフローチャートである。
【図３】実施の形態１に係るバスアクセス調停回路におけるアクセス調停処理を示すフローチャートである。
【図４】実施の形態１に係るバスアクセス調停回路におけるアクセス調停処理を示すタイミングチャートである。
【図５】実施の形態１に係るバスアクセス調停回路におけるアクセス調停処理を示すタイミングチャートである。
【図６】実施の形態１に係るバスアクセス調停回路を有するマルチプロセッサシステムの具体構成図である。
【図７】実施の形態１に係るバスアクセス調停方法の処理タイミングを示すタイミングチャートである。
【図８】比較に用いる、一般的なラウンドロビン方式に従った場合のタイミングチャートである。
【図９】実施の形態２に係るバスアクセス調停回路の全体構成図である。
【図１０】実施の形態２に係るバスアクセス調停回路におけるアクセス調停処理を示すフローチャートである。
【図１１】実施の形態２に係るバスアクセス調停回路におけるアクセス調停処理を示すフローチャートである。
【図１２】実施の形態３に係るバスアクセス調停回路の全体構成図である。
【図１３】実施の形態３に係るバスアクセス調停回路におけるアクセス調停処理を示すフローチャートである。
【図１４】実施の形態４に係るバスアクセス調停回路の全体構成図である。
【発明を実施するための形態】
【００３１】
以下、図１〜図１４を参照して、本発明を説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００３２】
以下では、まず、図１〜図８を参照して、第１の実施の形態を説明する。第１の実施の形態では、マルチプロセッサシステムにおけるバスアクセス調停回路として、その基本構成と特徴、およびその動作を詳細に説明する。次いで、図９〜図１１を参照して、第２の実施の形態を説明する。第２の実施の形態では、接続されるマスタごとにアクセスモード判定部を備えることで、連続アクセスモードかシングルアクセスモードであるかの判定をより最適に実施できる場合を詳細に説明する。次いで、図１２〜図１３を参照して、第３の実施の形態を説明する。第３の実施の形態では、連続アクセスと判定するためのアクセス間隔を１サイクル（間隔なし）に限定することで、回路を簡単化できる場合を詳細に説明する。最後に、図１４を参照して、第４の実施の形態を説明する。第４の実施の形態では、基本となるアクセス調停方式として、一般的なラウンドロビン方式ではなく優先度付きのラウンドロビン方式を実装した場合、そして、アクセスモード判定を行うアクセス間隔サイクル数および連続アクセス回数を動的に更新する場合を詳細に説明する。
【００３３】
＜発明の実施の形態１＞
（構成の説明）
図１は、本実施の形態に係るマルチプロセッサシステムにおけるバスアクセス調停回路の例に関して、バスアクセス調停回路（Arbiter）の全体構成を示す図である。本実施の形態に係るバスアクセス調停回路３００は、主に、各マスタ（Ｍ０、Ｍ１、Ｍ２）が連続アクセスモードであるか否かを判定するアクセスモード判定部１００と、アクセスモードに依存してアクセス調停方式を動的に変更可能なラウンドロビン調停部２００と、を備えて構成されている。
【００３４】
アクセスモード判定部１００は、各マスタからのアクセスが、例えば"Ａ"サイクル以内に"Ｂ"回以上の連続アクセスであるか否かをカウントするために、"Ａ"をカウントするアクセス間隔カウント部１０と、"Ｂ"をカウントする連続アクセス回数カウント部２０と、現在どのマスタに対するアクセスモード判定をしているのかそのマスタＩＤを格納するマスタＩＤレジスタ３０と、を備えている。また、アクセスモード判定部１００は、判定したアクセスモードの状態をマスタごとに格納しておく、アクセスモード状態レジスタ４０を備えている。
【００３５】
アクセス間隔カウント部１０は、アクセス間隔数"Ａ"を設定するアクセス間隔設定レジスタ１１と、アクセス間隔カウンタ１２と、を備えている。連続アクセス回数カウント部２０は、判定用の連続アクセス回数"Ｂ"を設定するための判定用の連続アクセス回数設定レジスタ２１と、調停用の最大連続アクセス回数"Ｃ"を設定するための最大連続アクセス回数設定レジスタ２２と、連続アクセス回数カウンタ２３と、を備えるものとしてもよい。
【００３６】
ラウンドロビン調停部２００は、各マスタのアクセスモード状態信号が入力され、当該アクセスモードに基づいてアクセス調停方式を切り替えるラウンドロビン制御回路５０と、最後にアクセス権を付与したマスタＩＤをラウンドロビンの基準として格納するラウンドロビン状態レジスタ６０と、を備えている。
【００３７】
（動作の説明）
図１〜図５を参照しながら、本実施の形態の動作を説明する。図２、図３は、図１に示したバスアクセス調停回路３００における、アクセス調停処理を示すフローチャートである。本実施の形態に係るアクセス調停処理は、主に、図２に示すアクセス調停ステップと、図３に示すアクセスモード判定ステップと、の２つの処理ステップと、を含んで構成されている。
【００３８】
バスアクセス調停回路３００は、接続されるいずれかのマスタから任意のアクセスが発生した場合に、まずは現在の各マスタのアクセスモード状態（アクセスモード状態レジスタ４０の値）に応じてアクセス調停ステップを行い、同時に、必要に応じてアクセスモード判定ステップを行うことで、当該マスタのアクセスモード状態を更新する。
【００３９】
すなわち、アクセス調停ステップでは、アクセスモード判定部１００内の現在のマスタＩＤレジスタ３０とそのアクセスモード状態レジスタ４０の値を参照し、アクセス間隔カウント部１０と連続アクセス回数カウント部２０を用いてアクセス調停方式の切り替え信号を出力し、ラウンドロビン調停部２００の動作モードを切り替えてアクセス調停を実施する。
【００４０】
そして、アクセスモード判定ステップでは、アクセス調停ステップにてラウンドロビン調停部２００を用いてアクセス権を付与されたマスタに対して、アクセスモード判定部１００内のアクセス間隔カウント部１０と連続アクセス回数カウント部２０を用いてアクセスモード状態レジスタ４０の更新を行う。
【００４１】
図２を参照して、アクセス調停ステップを具体的に説明する。
アクセス調停ステップでは、当該バスに接続されるいずれかのマスタから任意のアクセスが発生した場合に、（Ｓ２０１）ラウンドロビン方式等に従って最後にアクセス権を付与した最終アクセスマスタのアクセスモード状態を確認する。
【００４２】
（Ｓ２０１）で最終アクセスマスタのアクセスモード状態が「連続アクセスモード」である場合、（Ｓ２０２）でその最終マスタからのアクセス有無を確認する。そして、「連続アクセスモード」であるマスタから連続してアクセス発生していた場合、（Ｓ２０３）アクセス間隔が"Ａ"サイクル以内の間隔で、（Ｓ２０４）連続アクセス回数が"Ｃ"回以内の連続アクセスの場合には、（Ｓ２０５）連続アクセスとして当該マスタに連続してアクセス権を付与することを特徴とする。
【００４３】
一方で、（Ｓ２０１）で最終マスタのアクセスモードが「シングルアクセスモード」である（すなわち、「連続アクセスモード」でない）場合には、（Ｓ２０７）一般的なラウンドロビン方式に従ってアクセス調停を行い、アクセス発生しているいずれかのマスタにアクセス権を付与する。また、「連続アクセスモード」状態のマスタからのアクセスであっても、（Ｓ２０３）アクセス間隔が"Ａ"サイクルを超えていた場合、または、（Ｓ２０４）既に"Ｃ"回以上の連続アクセスしていた場合にも、（Ｓ２０７）一般的なラウンドロビン方式に従ってアクセス調停を行う。
【００４４】
一方で、（Ｓ２０２）「連続アクセスモード」である最終アクセスマスタからはアクセス発生しておらず、他のマスタからアクセス発生していた場合は、（Ｓ２０６）アクセス間隔が"Ａ"サイクル以内であり、かつ、（Ｓ２０８）最終アクセスマスタの連続アクセス回数が"Ｃ"回以内であれば、（Ｓ２０９）連続アクセス中の最終アクセスマスタから連続アクセス発生する可能性を考慮して当該アクセスはウェイトさせる。
【００４５】
ただし、（Ｓ２０６）アクセス間隔が"Ａ"サイクルを超えていた場合、または、（Ｓ２０８）最終アクセスマスタの連続アクセス回数が"Ｃ"回を超えていた場合は、連続アクセス状態は解除されるため、（Ｓ２０７）一般的なラウンドロビン方式に従って当該マスタにアクセス権を付与する。
【００４６】
ここで、アクセス調停ステップにおける（Ｓ２０５）または（Ｓ２０７）において、いずれかのマスタにアクセス権を付与してアクセス許可した場合、図３に示すアクセスモード判定ステップを行う。
【００４７】
アクセスモード判定ステップでは、まず、（Ｓ１０１）アクセス許可されたアクセスがアクセスモード判定実施中のマスタＩＤであるか否かを判定する。Ｓ１０１でマスタＩＤと同じマスタであった場合、（Ｓ１０２）アクセス間隔が"Ａ"サイクル以内の間隔で、（Ｓ１０３）連続アクセス回数が"Ｂ"回以上の連続アクセスとなった場合には、（Ｓ１０４）当該マスタのアクセスモード状態を「連続アクセスモード」に更新し、連続アクセス回数カウンタ２３のインクリメントを実施する。
【００４８】
（Ｓ１０２）アクセス間隔が"Ａ"サイクルを超えていた場合は連続アクセスとは見なされず、（Ｓ１０６）当該マスタのアクセスモード状態を「シングルアクセスモード」に更新する。同時に連続アクセス回数カウンタ２３は１にクリアする。
【００４９】
一方で、（Ｓ１０２）アクセス間隔は"Ａ"サイクル以内だが、（Ｓ１０３）まだ連続アクセス回数が"Ｂ"回未満である場合は、（Ｓ１０７）当該マスタのアクセスモード状態は更新せず、単純に連続アクセス回数カウンタ２３のインクリメントだけを実施する。
【００５０】
また、Ｓ１０１でマスタＩＤと異なるマスタからのアクセスであった場合は、（Ｓ１０５）マスタＩＤレジスタ３０の値を当該マスタに更新し、連続アクセス回数カウンタ２３を１にクリアしておく。このとき、（Ｓ１０５）には図示されていないが、アクセスモード判定中だったマスタＩＤ側の連続アクセス回数が"Ｂ"回未満である場合は、当該マスタＩＤのアクセスモードを「シングルアクセスモード」に更新する。
【００５１】
なお、アクセス調停ステップ用の定常動作として、（Ｓ１０８）"Ａ"サイクル間いずれのマスタからもアクセスが無い場合は、アクセスモード判定実施中のマスタは無いものとして、（Ｓ１０９）マスタＩＤレジスタ３０の値をクリアしておく。
【００５２】
次に、図１のバスアクセス調停回路３００内の各要素回路と、図２、図３のアクセス調停処理フローとの関係を説明する。アクセスモード判定部１００内のアクセス間隔カウント部１０は、アクセス調停ステップの（Ｓ２０３）、（Ｓ２０６）、アクセスモード判定ステップの（Ｓ１０２）、（Ｓ１０８）で使用される。
【００５３】
連続アクセス回数カウント部２０は（Ｓ２０４）、（Ｓ２０８）と、（Ｓ１０３）で使用される。ただし、比較する連続アクセス回数設定レジスタ２１、２２は（Ｓ２０４）（Ｓ２０８）と、（Ｓ１０３）とで異なるために注意を要する。これは、アクセスモード判定用は最低限の連続アクセス回数"Ｂ"で連続アクセスモードと判定し、アクセス調停時に連続アクセスさせる最大上限値としては、"Ｂ"よりも多い値"Ｃ"を基準にする方が、全体として最適なスループットを実現可能なためである。
【００５４】
本実施の形態の特徴部分に関する各マスタのアクセスモード状態レジスタ４０は、アクセス調停ステップの（Ｓ２０１）にてアクセス調停モードの切り替えに使用され、アクセスモード判定ステップの（Ｓ１０４）、（Ｓ１０６）においてアクセスモード状態が更新される。
【００５５】
マスタＩＤレジスタ３０は、アクセスモード判定ステップの（Ｓ１０１）、（Ｓ１０５）、または（Ｓ１０９）において使用及び更新される。また、ラウンドロビン調停部２００内のラウンドロビン制御回路５０は、アクセス調停ステップの（Ｓ２０５）、（Ｓ２０７）で使用され、各マスタのアクセスモード状態等に基づいてアクセス調停方式を切り替える。ラウンドロビン状態レジスタ６０は、（Ｓ２０２）、（Ｓ２０５）、（Ｓ２０７）で使用される。
【００５６】
（アクセス調停処理タイミングの説明）
図４、図５は、図１に示したバスアクセス調停回路３００におけるアクセス調停処理の例を示すタイミングチャートである。図４では、マスタＭ０が連続アクセスモード時の処理タイミングの例を示す。図５では、マスタＭ０が連続アクセスモードとシングルアクセスモードの切り替え時の処理タイミングの例を示す。
【００５７】
図４、図５中のＡＤＲは、スプリット転送可能なバスインタフェースにおける要求フェーズ側の信号（例えばアドレス信号、コマンド信号、書き込みデータ信号、アクセプト信号等）のトランザクションを示し、ＲＤＡＴは、応答フェーズ側の信号（読み出しデータ信号、レスポンス信号等）を示す。また、ＳＥＱＳＴＳは、各マスタのアクセスモード状態を示し、Ｍａｔｅｒ  ＩＤは、アクセスモード判定中のマスタＩＤ３０を示す。
【００５８】
図４に例示するように、時間Ｔ１からＴ３にかけて、アクセス許可されたマスタＭ０におけるアクセスモード判定を実施し、"Ａ"サイクル以内のアクセス間隔で"Ｂ"回以上連続アクセスが発生した場合は、マスタＭ０は連続アクセスモード状態（ＳＥＱＳＴＳ＝Ｓｅｑｕｅｎｃｅ）になる。
【００５９】
そして、時間Ｔ４においてはマスタＭ０がアクセス許可され、時間Ｔ５においてマスタＭ１からアクセス要求があった場合、アクセス調停ステップの（Ｓ２０９）において、最終アクセスマスタＭ０が「連続アクセスモード」状態で、かつ、アクセス間隔が"Ａ"サイクル以内に連続アクセス回数が"Ｃ"回以内の場合には、当該アクセスをウェイトさせる。
【００６０】
ただし、時間Ｔ８のタイミングでは、上記連続アクセス回数が"Ｃ"回を超えるため、アクセス調停ステップの（Ｓ２０８）がＮｏとなり、一般的なラウンドロビン方式に従って調停される。結果として、時間Ｔ８において、マスタＭ１からのアクセス要求にアクセス権が与えられる。
【００６１】
すなわち、アクセス間隔"Ａ"サイクル以内での連続アクセス"Ｃ"回までは任意のマスタからの「連続アクセス」が可能となるため、高い転送スループットを実現できる。その上で、アクセス間隔"Ａ"サイクル×連続アクセス"Ｃ"回が当該連続アクセスの上限となるため、他マスタのワーストケースの最悪アクセスサイクル数を保障することも可能である。
【００６２】
また、図５に例示するように、時間Ｔ５までは図４とほぼ同様であるが、時間Ｔ６の時点でアクセス間隔が"Ａ"サイクルを超えたことに応じて、マスタＭ０からの連続アクセスモード判定が終了している。
【００６３】
この場合、アクセス調停ステップでは、（Ｓ２０６）アクセス間隔が"Ａ"サイクル以内ではなくなるため、（Ｓ２０７）の一般的なラウンドロビン方式に従ってのアクセス調停に変更され、それまでウェイトしていたマスタＭ２からのアクセスにアクセス権が付与される。また、アクセスモード判定ステップでは（Ｓ１０５）において、アクセスモード判定対象のマスタＩＤがマスタＭ２に更新され、マスタＭ２に対するアクセスモード判定を開始する。
【００６４】
一方で、マスタＭ０に対するアクセスモード状態レジスタ４０の値は、連続アクセス回数が"Ｂ"回未満であるため「シングルアクセスモード」に更新される（ＳＥＱＳＴＳ＝Ｓｉｎｇｌｅ）。そして、時間Ｔ９でマスタＭ２から再度アクセスが発生した場合に、時間Ｔ８でアクセス権が最後に付与されたマスタＭ０の状態が「シングルアクセスモード」である場合は、連続アクセスモードを考慮したアクセス調停方式に従うのではなく、一般的なラウンドロビン方式に従ってアクセス調停処理が実施される。
【００６５】
すなわち、マスタＭ０の状態が「シングルアクセスモード」であるため次に連続アクセスが発生する確率は低い。このため、マスタＭ０からの連続アクセスを考慮してウェイトさせる必要はなく、マスタＭ２からのバスアクセスに対してすぐにアクセス権を与える。つまり、本実施の形態では、シングルアクセスモードというアクセスモード機能を持つことで、連続アクセスを考慮した余分なウェイト挿入を防止することができ、効率的にアクセス転送することが可能である。
【００６６】
なお、各設定レジスタであるアクセス間隔設定レジスタ１１と、判定用の連続アクセス回数設定レジスタ２１と、最大連続アクセス回数設定レジスタ２２と、は図示されていないが外部から設定可能であり、値を変更することで柔軟なアクセス調停処理の実現が可能である。また、アクセスモード状態レジスタ４０の値を外部から設定可能にして、アクセスモード判定結果に関わらず、設定されたアクセスモードを用いてアクセス調停処理を実施する構成としても何ら問題はない。
【００６７】
（具体例の構成の説明）
図６は、本実施の形態に係るバスアクセス調停回路３００を、無線信号処理などを行うマルチプロセッサシステム５００に適用した場合の、具体例を示す構成図である。
マルチプロセッサシステム５００は、処理エンジンブロックとしてクラスタ化された、複数の演算処理クラスタ４００、４０１などを備えている。各演算処理クラスタ４００、４０１は、例えば、演算処理プロセッサ（ＩＰコア）８０、８１…８ｎである複数のマスタＭ０、Ｍ１…Ｍｎと、各マスタ間のデータ転送用の共有メモリＳ０、Ｓ１…Ｓｋである複数のスレーブ９０、９１…９ｋと、を備えて構成されている。
【００６８】
また、各マスタとスレーブ間はスプリット演算可能なバス７０、７１を用いて接続されている。そして、各演算処理クラスタ間は同様のバス７２を用いて接続し、演算処理クラスタ４００、４０１間のデータ転送は、共有メモリ９２、９３などを用いて行われる。ここで、演算処理クラスタ４００、４０１間のバス７２に対しては、バス７０およびバス７１がマスタであり、共有メモリ９２、９３や外部インタフェースＥｘｔ．９４がスレーブとなる、階層的なバス構成を用いている。ここで、例えばバス７０等のアクセス調停回路として、本実施の形態に係るバスアクセス調停回路３００が実装される。
【００６９】
このように、スプリット転送可能で階層的なバス構成とすることで、単一のバスで全てのマスタやスレーブを接続する構成に比べて処理の局所性を高め、バス制御回路やインタフェース回路を簡単化することが可能である。すなわち、ＬＳＩ内の配線の複雑化を防止することができる。
【００７０】
また、階層的なバス構成の場合に劣化する転送レイテンシについても、スプリット転送可能なバスインタフェース規格を用いることで、転送スループットについては劣化させずに転送することが可能である。また、各演算処理クラスタ４００、４０１ごとにそれぞれ設計及び検証を実施できるため、設計容易性や再利用性が高いという利点もある。
【００７１】
（具体例の動作の説明）
図６〜図８を参照して、本実施の形態に係る具体例の動作を説明する。
図７は、図６に示したマルチプロセッサシステム５００において、マスタＭ０（８０）から共有メモリであるスレーブＳ２（９２）に連続読み出しアクセスを、また、マスタＭ１（８１）から外部インタフェースＥｘｔ．（９４）に連続読み出しアクセスをそれぞれ実施した場合の例を示すタイミングチャートである。また、図８は、比較のために、バス７０のアクセス調停回路として本実施の形態に係るバスアクセス調停回路３００を用いるのではなく、一般的なラウンドロビン方式を用いた場合の例を示すタイミングチャートである。ここで、いずれの場合も、共有メモリＳ２（９２）の読み出しレイテンシは１サイクル、外部インタフェースＥｘｔ．（９４）の読み出しレイテンシは３サイクルである場合を例として説明する。
【００７２】
図７に示すように、本実施の形態に係るバスアクセス調停回路３００を用いた場合、マスタＭ０とマスタＭ１が共に「連続アクセスモード」である場合、例えば時間Ｔ１からＴ２にかけては、最大連続アクセス回数である"Ｃ"回分は、マスタＭ０が連続してアクセス権を取得できる。そして、時間Ｔ３からは同様にマスタＭ１が"Ｃ"回分連続してアクセス権を取得できる。
【００７３】
そのため、階層化された後段のバス７２上で異なるスレーブ（共有メモリＳ２（９２）、外部インタフェースＥｘｔ．（９４））に対するアクセスが連続して、読み出しデータの競合やアウトオブオーダー転送を防止するためにウェイトした場合でも（時刻Ｔ４〜Ｔ５付近）、その影響をあまり受けずに、高い転送スループットを実現できる。また、最大連続アクセス回数に関しても、設定した"Ｃ"回を上限にできるため、ワーストケースのアクセスレイテンシを保障することも可能である。
【００７４】
すなわち、後段の各スレーブのアクセスレイテンシを考慮して、連続アクセスとするためのアクセス間隔サイクル数"Ａ"と、連続アクセス回数"Ｂ"及び"Ｃ"と、を最適に設定する。これにより、階層的なバス構成で、かつ、異なるスレーブに対する連続読み出しアクセスであっても、高い転送スループットの実現とワーストケースのサイクル保障の両方を両立して実現することができる。
【００７５】
これに対して、図８に示すように、バス７０のアクセス調停方式として一般的なラウンドロビン方式を用いた場合、時間Ｔ３以降、バス７０では、マスタＭ０とマスタＭ１からのアクセスに対して交互にアクセス権を与えることになる。
【００７６】
そのため、階層化された後段のバス７２上では異なるスレーブ（共有メモリＳ２（９２）、外部インタフェースＥｘｔ．（９４））に対する交互の読み出しアクセスとなり、読み出しデータの競合やアウトオブオーダー転送を防止するために、アクセスごとにウェイト発生することになる。これにより、マスタＭ０およびマスタＭ１の両方のアクセススループットが大きく劣化してしまう。
【００７７】
このように、スプリット転送可能な階層的なバス構成に対して、一般的なラウンドロビン方式を用いてアクセス調停を実施するとアクセススループットが劣化するという問題がある。これに対して、図７に示したように、本実施の形態に係るバスアクセス調停回路３００を用いることで、アクセススループットの劣化を最小限に抑えて、複数のマスタから効率的に連続バスアクセスすることが可能という利点がある。
【００７８】
＜発明の実施の形態２＞
本実施の形態では、上述した発明の実施の形態１に係るバスアクセス調停回路の変形例について説明する。本実施の形態では、バスアクセス調停回路に関して、接続されるマスタごとにアクセスモード判定部を備えることで、連続アクセスモードかシングルアクセスモードかの判定をより最適に実施できる場合を説明する。
【００７９】
（構成の説明）
図９は、本実施の形態２に係るバスアクセス調停回路の全体構成を示す図である。本実施の形態に係るバスアクセス調停回路３０１は、実施の形態１と同様に、各マスタが連続アクセスモードであるか否かを判定するアクセスモード判定部１０１、１０２、１０３と、アクセスモードに依存してアクセス調停方式を動的に変更可能なラウンドロビン調停部２０１と、を備えて構成されている。
【００８０】
ラウンドロビン調停部２０１は、実施の形態１と同様に、各マスタのアクセスモード状態信号を入力し、当該アクセスモードに基づいてアクセス調停方式を切り替えるラウンドロビン制御回路５１と、最後にアクセス権を付与したマスタＩＤをラウンドロビンの基準として格納するラウンドロビン状態レジスタ６０と、を備えている。
【００８１】
本実施の形態に特有の構成として、接続されるマスタごとにアクセスモード判定部１０１、１０２、１０３を備える構成とする。また、判定したアクセスモードの状態をマスタごとに格納しておくアクセスモード状態レジスタ４１についても、それぞれ備える構成とする。
【００８２】
ただし、各アクセスモード判定部１０１、１０２、１０３内のアクセス間隔カウント部１０と、連続アクセス回数カウント部２０と、については、実施の形態１とほぼ同様の構成である。また、ラウンドロビン調停部２０１内のラウンドロビン制御回路５１の動作は、実施の形態１におけるラウンドロビン制御回路５０とは少し動作が異なるため、この動作の相違については後述する。
【００８３】
（動作の説明）
図９〜図１１を参照しながら、本実施の形態の動作を説明する。図１０、図１１は、図９に示したバスアクセス調停回路３０１における、アクセス調停処理を示すフローチャートである。実施の形態１と同様、本実施の形態におけるアクセス調停処理は、主に図１０に示すアクセス調停ステップと、図１１に示すアクセスモード判定ステップと、の２つのステップを含んで構成されている。
【００８４】
ただし、本実施の形態における特有の動作として、アクセスモード判定ステップは、接続されるマスタごとにそれぞれ実施される。すなわち、アクセスモード判定部１０１、１０２、１０３を用いて、それぞれ接続されるマスタごとに独立にアクセスモード判定処理を行う。また、本実施の形態におけるアクセスモード判定ステップは、アクセス調停ステップと並行して行われる。すなわち、アクセス許可されるか否かに関わらず、該当するマスタからアクセス発生した時点で、アクセスモード判定ステップは実行される。
【００８５】
図１１に示す本実施の形態におけるアクセスモード判定ステップは、マスタごとにアクセスが発生した時点でそれぞれ実行される。すなわち、当該アクセスにアクセス権がまだ付与されていない状態でも実行され得る。
【００８６】
本実施の形態におけるアクセスモード判定ステップでは、まず、発生した当該マスタからのアクセスが、（Ｓ１１２）アクセス間隔が"Ａ"サイクル以内の間隔であるか否かを判定する。そして、（Ｓ１１２）アクセス間隔が"Ａ"サイクル以内であり、（Ｓ１１３）連続アクセス回数が"Ｂ"回以上の連続アクセスとなった場合には、（Ｓ１０４）当該マスタのアクセスモード状態を「連続アクセスモード」に更新する。
【００８７】
一方で、（Ｓ１１２）アクセス間隔が"Ａ"サイクルを超えていた場合は連続アクセスとは見なされず、本実施の形態におけるアクセスモード判定部１０１、１０２、１０３の特徴として、ここで、（Ｓ１１４）現在の連続アクセス回数が"Ｂ"回以上であるか否かを判定する。
【００８８】
（Ｓ１１４）現在までの連続アクセス回数が"Ｂ"回未満だった場合は、連続アクセスではないと判断して、（Ｓ１０６）当該マスタのアクセスモード状態レジスタ４１を「シングルアクセスモード」に更新し、同時に連続アクセス回数カウンタ２３も１にクリアする。なお、（Ｓ１１４）現在までの連続アクセス回数が"Ｂ"回以上だった場合は、連続アクセス継続中と判断して、（Ｓ１１５）当該マスタのアクセスモード状態レジスタ４１は「連続アクセスモード」のままとして、連続アクセス回数カウンタ２３の値のみ１にクリアする。ステップ（Ｓ１１５）において、「連続アクセスモード」状態を維持したまま、再度アクセスモード判定処理を開始できる。
【００８９】
また、実施の形態１と同様に、（Ｓ１１２）アクセス間隔は"Ａ"サイクル以内だが、（Ｓ１１３）まだ連続アクセス回数が"Ｂ"回未満の場合は、（Ｓ１０７）当該マスタのアクセスモード状態は更新せず、単純に連続アクセス回数カウンタ２３のインクリメントだけ実施する。
【００９０】
このように、実施の形態１におけるアクセスモード判定部１００では、アクセス調停結果に基づいてアクセス権を付与するマスタが変わるごとに、連続アクセスであるか否かを判定するアクセスモード判定処理も初期化されていたが、本実施の形態では、マスタごとにアクセスモード判定部１０１、１０２、１０３を備えて、アクセス調停結果とは無関係にそれぞれアクセスモード判定ステップを実施できる。これによって、途中で他マスタがバスアクセス権を一旦取得しても、継続してマスタごとにアクセスモード判定処理を独立に実施できるため、より最適な（厳密な）アクセスモード判定処理が可能という利点がある。
【００９１】
また、図１０に示すアクセス調停ステップは、基本的には、実施の形態１と同様である。ただし、本実施の形態におけるアクセス調停ステップに特有の動作として、連続アクセス中のマスタ以外からアクセスが発生し、そのアクセスが読み出しアクセスでなかった場合（すなわち書き込みアクセスの場合）は、ラウンドロビン制御回路５１は、実施の形態１で説明した動作とは異なる動作を行う。
【００９２】
実施の形態１では、図２に示したように、連続アクセス中のマスタ以外からアクセスが発生し、アクセス間隔が"Ａ"サイクル以内で連続アクセスマスタの連続アクセス回数が"Ｃ"回以内である場合は（Ｓ２０１→Ｓ２０２→Ｓ２０６→Ｓ２０８）、まだ「連続アクセス中」として発生した他マスタからのアクセスをウェイトさせていた。
【００９３】
一方で、図１０のステップ（Ｓ２１１）に示すように、本実施の形態におけるアクセス調停ステップでは、同様の条件で発生した他マスタからのアクセスが読み出しアクセスの場合は「連続アクセス」を考慮して実施の形態１と同様にウェイトさせるが、当該アクセスが書き込みアクセスの場合は、「連続アクセス」中に割り込んでも影響はない。このため、当該書き込みアクセス間で一般的なラウンドロビン方式にてアクセス調停処理を行う。
【００９４】
このように、本実施の形態におけるバスアクセス調停回路３０１では、書き込みアクセスの場合は「連続アクセス」中でも割り込めるようにラウンドロビン制御回路５１を実装することで、実施の形態１におけるバスアクセス調停回路３００に比べて、バスのアクセススループットをより効率的に向上させることが可能となる。
【００９５】
なお、本ラウンドロビン制御回路５１によるアクセス調停ステップは、実施の形態１のようにアクセスモード判定部１００が１つの場合でも本実施の形態のように複数の場合でも、いずれにも適用可能である。また、逆に、実施の形態１におけるラウンドロビン制御回路５０及びアクセス調停ステップを、本実施の形態におけるバスアクセス調停回路３０１に適用することも可能である。
【００９６】
＜発明の実施の形態３＞
本実施の形態では、上述した発明の実施の形態１、２に係るバスアクセス調停回路の変形例について説明する。本実施の形態では、バスアクセス調停回路に関して、連続アクセスと判定するためのアクセス間隔を１サイクル（間隔なし）に限定することで、回路構成を簡単化できる場合を説明する。
【００９７】
（構成の説明）
図１２は、本実施の形態３に係るバスアクセス調停回路の全体構成を示す図である。本実施の形態に係るバスアクセス調停回路３０２は、現在アクセス中のマスタの連続アクセス回数をカウントして設定値と比較する連続アクセス回数判定部１１０と、その判定結果に依存してアクセス調停方式を動的に変更可能なラウンドロビン調停部２０２と、を備えて構成されている。
【００９８】
ラウンドロビン調停部２０２は、実施の形態１と同様の構成であり、現在アクセス中のマスタの連続アクセスモード信号を入力し、当該アクセスモードに基づいてアクセス調停方式を切り替えるラウンドロビン制御回路５２と、最後にアクセス権を付与したマスタＩＤをラウンドロビンの基準として格納するラウンドロビン状態レジスタ６０と、を備えて構成されている。
【００９９】
本実施の形態に特有の構成として、連続アクセスであるか否かを判定するためのアクセス間隔サイクル数"Ａ"を１サイクル（すなわち間隔なし）に限定する。これにより、実施の形態１、２において備えていたアクセス間隔カウント部１０は不要である。また同様に、アクセス間隔サイクル数"Ａ"を１サイクル（すなわち間隔なし）に限定することで、常に「連続アクセスモード」としてアクセス調停を行ったとしても余分なアクセス間隔をウェイトするデメリットがなくなる。このため、アクセスモード状態レジスタ４０、４１も不要である。
【０１００】
よって、連続アクセス回数判定部１１０として、連続アクセス回数カウント部２４のみを備え、連続アクセス回数が"Ｃ"回以内であるか否かのみを判定する。すなわち、判定用の連続アクセス回数設定レジスタ２１（"Ｂ"）についても、不要でも問題ない。
【０１０１】
（動作の説明）
図１２〜図１３を参照しながら、本実施の形態の動作を説明する。図１３は、図１２に示したバスアクセス調停回路３０２における、アクセス調停処理を示すフローチャートである。本実施の形態におけるバスアクセス調停回路３０２は、実施の形態１における連続アクセスと判定するためのアクセス間隔を１サイクル（間隔なし）に限定することで、連続アクセス可能なラウンドロビン調停方式として動作する。
【０１０２】
すなわち、アクセス間隔サイクル数"Ａ"を１サイクル（すなわち間隔なし）に限定することで、常に「連続アクセスモード」としてアクセス調停を行っても余分なアクセス間隔をウェイトするデメリットはなくなるため、アクセスモード判定ステップは必要なくなる。そのため、アクセス調停ステップのみの動作となる。
【０１０３】
本実施の形態におけるアクセス調停ステップでは、連続アクセス回数判定部１１０にて、（Ｓ２２１）最後にアクセス権を付与したマスタ（すなわち、ラウンドロビン調停部２０２内のラウンドロビン状態レジスタ６０で示されるマスタ）からのアクセスがあればその連続アクセス回数をカウントし、（Ｓ２２２）その連続アクセス回数が設定した"Ｃ"回以内であれば「連続アクセス中」と判定し、（Ｓ２２３）ラウンドロビン調停部２０２にて当該マスタに連続的にアクセス権を付与する。
【０１０４】
一方で、（Ｓ２２１）最後にアクセス権を付与したマスタからのアクセスでは無い場合、または、（Ｓ２２２）最後にアクセスしたマスタの連続アクセス回数が"Ｃ"回を超えてしまった場合は、（Ｓ２２４）ラウンドロビン調停部２０２にて一般的なラウンドロビン方式に従ってアクセス調停を行う。このとき、他マスタにアクセス権が付与された場合は、連続アクセス回数カウンタ２３の値を１にクリアする。
【０１０５】
このように、本実施の形態では、連続アクセスと判定するためのアクセス間隔サイクル数を１サイクル（間隔なし）に限定することで、回路構成を大幅に簡単化できるという利点がある。また、実施の形態１、２では、常に「連続アクセス」を考慮してアクセス調停させた場合に余分なアクセス間隔分のウェイトが挿入される課題を解決するために、マスタごとに「シングルアクセスモード」か「連続アクセスモード」かの状態を示すアクセスモード状態レジスタ４０、４１を備える構成を採用していた。これに対して、本実施の形態では、常に「連続アクセスモード」として動作させても、余分なアクセス間隔分をウェイトすることがないという利点もある。
【０１０６】
＜発明の実施の形態４＞
本実施の形態では、上述した発明の実施の形態１、２に係るバスアクセス調停回路の変形例について説明する。本実施の形態では、バスアクセス調停回路に関して、基本となるアクセス調停方式として一般的なラウンドロビン方式に従うのではなく優先度を考慮したラウンドロビン方式を実装し、そして、アクセスモード判定を行うためのアクセス間隔サイクル数および連続アクセス回数を動的に最適化することが可能な場合を説明する。
【０１０７】
（構成の説明）
図１４は、本実施の形態４に係るバスアクセス調停回路の全体構成を示す図である。本実施の形態に係るバスアクセス調停回路３０３は、実施の形態１、２と同様に、各マスタが連続アクセスモードであるか否かを判定するアクセスモード判定部１２０と、アクセスモードに応じてアクセス調停方式を動的に変更可能なラウンドロビン調停部２１０と、を備えて構成されている。
【０１０８】
ラウンドロビン調停部２１０は、実施の形態１と同様に、各マスタのアクセスモード状態信号を入力し、当該アクセスモードに基づいてアクセス調停方式を切り替えることを特徴とする。ただし、本実施の形態に特有の構成として、一般的な単純なラウンドロビン制御回路５０とは異なり、優先度を考慮した優先度付きのラウンドロビン制御回路を実装する。
【０１０９】
すなわち、ラウンドロビン制御部２１０は、各マスタを高優先度（Ｈｉｇｈ）と低優先度（Ｌｏｗ）のグループに分け、まずは当該優先度間のラウンドロビン処理を行う優先度間ラウンドロビン制御回路５４と、各優先度グループ内でのラウンドロビン処理を行う高優先度ラウンドロビン制御回路５６及び低優先度ラウンドロビン制御回路５７と、を備えている。
【０１１０】
優先度間ラウンドロビン制御回路５４は、高優先度グループの連続アクセス権付与数をカウントする高優先度回数カウンタ５５と、最後にどちらの優先度グループにアクセス権を付与したかを記憶する優先度間ラウンドロビン状態レジスタ６４と、を備えている。
【０１１１】
高優先度ラウンドロビン制御回路５６は、高優先度グループの中で最後にどのマスタにアクセス権を付与したかを記憶する高優先度ラウンドロビン状態レジスタ６６を備えている。低優先度ラウンドロビン制御回路５７は、低優先度グループの中で最後にどのマスタにアクセス権を付与したかを記憶する低優先度ラウンドロビン状態レジスタ６７を備えている。そして、優先度間ラウンドロビン制御回路５４の選択結果に従って、高優先度または低優先度のいずれかのラウンドロビン制御回路が動作する。
【０１１２】
また、本実施の形態におけるアクセスモード判定部１２０は、基本的なその構成と動作は、実施の形態１におけるアクセスモード判定部１００と同様である。ただし、本実施の形態に特有の構成として、アクセスモード判定部１２０内に、ウェイトカウント部１５と、最大ウェイト制御部１７と、を追加して備えている。これらは、最大許容可能なウェイトサイクル数"Ｄ"を設定するだけで、最適なアクセス間隔サイクル数"Ａ"や最大連続アクセス回数"Ｃ"の値を自律的に更新するために用いられる。
【０１１３】
具体的には、ウェイトカウント部１５は、ウェイトカウンタ１６を備えている。例えば「連続アクセスモード」で最大連続アクセス回数となってアクセスマスタを切り替えた場合に、その次のアクセスにおけるウェイトサイクル数を、ウェイトカウンタ１６を用いてカウントする。そして、現在設定されているアクセス間隔サイクル数"Ａ"と比較して、必要に応じて"Ａ"の値を更新する。
【０１１４】
また、最大ウェイト制御部１７は、マスタが最大許容可能なウェイトサイクル数"Ｄ"を設定するウェイトサイクル設定レジスタ１８を備えている。ウェイトサイクル設定レジスタ１８は、更新されたアクセス間隔サイクル数"Ａ"の値を用いて、最大連続アクセス回数"Ｃ"の値を更新するために用いられる。
【０１１５】
なお、アクセス間隔カウント部１３や連続アクセス回数カウント部２５の構成についても実施の形態１とほぼ同様であるが、内部に備えるアクセス間隔設定レジスタ１４及び最大連続アクセス回数設定レジスタ２６は、ウェイトカウント部１５または最大ウェイト制御部１７からも自律的に更新可能な構成となっている。
【０１１６】
（動作の説明）
図１４を参照しながら、本実施の形態の動作を説明する。本実施の形態におけるアクセス調停処理は、実施の形態１と同様に、主に図２及び図３に示したような、アクセス調停ステップとアクセスモード判定ステップの２つのステップを含んで構成されている。
【０１１７】
アクセス調停ステップにおいては、基本的には図２または図１０に示した動作と同様である。ただし、本実施の形態に特有の動作として、図２のステップ（Ｓ２０７）にて、連続アクセス状態ではなくなった場合に一般的な全マスタが等確率なラウンドロビン方式に従ってのアクセス調停処理を行うのではなく、ラウンドロビン調停部２１０を用いて優先度を考慮したラウンドロビン方式に従ってアクセス調停処理を実施する。
【０１１８】
すなわち、接続されるマスタを高優先度（Ｈｉｇｈ）と低優先度（Ｌｏｗ）の２つのグループに分け、アクセス競合が発生した場合は、優先度間ラウンドロビン制御回路５４を用いて、例えば「Ｈｉｇｈ→Ｈｉｇｈ→Ｈｉｇｈ→Ｌｏｗ→Ｈｉｇｈ→Ｈｉｇｈ→Ｈｉｇｈ→Ｌｏｗ→」のように、異なる確率のラウンドロビンで各グループにアクセス権を与える。この時、高優先度（Ｈｉｇｈ）側の連続アクセス権付与数は、高優先度回数カウンタ５５を用いてカウントする。その上で、各グループ内については、高優先度ラウンドロビン制御回路５６と低優先度ラウンドロビン制御回路５７を用いて、一般的な等確率なラウンドロビン方式に従ってアクセス権を与える方式である。
【０１１９】
このように、優先度間のラウンドロビン状態（ｓｔａｔｅＰ）６４と各グループ内のラウンドロビン状態（ｓｔａｔｅＨ，ｓｔａｔｅＬ）６６、６７の合計３つのラウンドロビン状態に基づいて制御される、という特徴がある。例えば、図１４に例示した構成では、マスタＭ０とＭ１を高優先度グループに、マスタＭ２とＭ３を低優先度グループにグループ分けし、高優先度側の最大連続アクセス権付与数を２とした場合には、マスタＭ０とＭ１は１／３の確率で、マスタＭ２とＭ３は１／６の確率でそれぞれアクセス権を取得可能となる。例えば「Ｈｉｇｈ（Ｍ０）→Ｈｉｇｈ（Ｍ１）→Ｌｏｗ（Ｍ２）→Ｈｉｇｈ（Ｍ０）→Ｈｉｇｈ（Ｍ１）→Ｌｏｗ（Ｍ３）→」を繰り返すようなラウンドロビン制御となる。
【０１２０】
このように、本実施の形態におけるラウンドロビン調停部２１０を用いることで、「連続アクセスモード」時は任意のマスタに連続的にアクセス権を付与し、一方で、最大連続アクセス回数に達した場合や「シングルアクセスモード」時は優先度を考慮したラウンドロビン方式にてアクセス調停を実施する。これにより、接続されるマスタ間でアクセス優先度に差をつけたい場合に、より最適なアクセス調停処理を実現可能である。
【０１２１】
また、優先度を考慮したラウンドロビン方式の場合には、ワーストケースの最悪アクセスサイクル数が保障できないという一般的な固定優先度方式とは異なり、高優先度（Ｈｉｇｈ）と低優先度（Ｌｏｗ）の各グループに含まれるマスタ数と、高優先度側の最大連続アクセス権付与数に応じて、ワーストケースの最悪アクセスサイクル数も保障可能という利点もある。
【０１２２】
また、本実施の形態におけるアクセスモード判定ステップは、図３に示した動作と同様である。ただし、本実施の形態に特有の動作として、アクセスモード判定ステップと並行して、アクセスモード判定用の設定値を自律的に更新するための設定値更新処理を、ウェイトカウント部１５及び最大ウェイト制御部１７を用いて行う。
【０１２３】
まず、初期設定として、マスタが最大許容可能なウェイトサイクル数"Ｄ"が、最大ウェイト制御部１７内のウェイトサイクル設定レジスタ１８に設定される。そして、実際のバスアクセス時にウェイトカウント部１５は、例えば「連続アクセスモード」で最大連続アクセス回数となってアクセスマスタを切り替えた場合に、その次のアクセスにおけるウェイトサイクル数を、バスからのウェイト信号（Ｗａｉｔ）やウェイトカウンタ１６を用いてカウントする。例えば、図７に示したバス７０の時間Ｔ４からＴ５の期間のアクセスマスタを切り替えたことによるＷａｉｔサイクルや、図８に示したバス７０の同様のＷａｉｔサイクル（例えば時間Ｔ４からＴ５の期間）がカウントされる。
【０１２４】
そして、現在設定されているアクセス間隔サイクル数"Ａ"と比較して、必要に応じて"Ａ"の値を更新する。つまり、現在のアクセス間隔サイクル設定数"Ａ"よりもＷａｉｔサイクル数の方が大きい場合は、「連続アクセス」を考慮した待ち時間に対してアクセスマスタ切り替え時のオーバヘッドの方が大きい。このため、もう少しの間は「連続アクセス」と判定するため、アクセス間隔サイクル数"Ａ"を大きくする形で、アクセス間隔設定レジスタ１４の値"Ａ"を更新する。
【０１２５】
一方で、現在のアクセス間隔サイクル設定数"Ａ"よりもＷａｉｔサイクル数の方が小さい場合は、アクセスマスタ切り替え時のウェイトサイクルに対して「連続アクセス」を考慮した待ち時間オーバヘッドの方が大きい。このため、「連続アクセス」と判定するためのアクセス間隔サイクル数"Ａ"を小さくする形で、アクセス間隔設定レジスタ１４の値"Ａ"を更新する。
【０１２６】
また、同時に、アクセス間隔サイクル数"Ａ"と最大連続アクセス回数"Ｃ"の積（"Ａ"×"Ｃ"）が最大ウェイトサイクル数となるため、最大ウェイト制御部１７は、当該最大ウェイトサイクル数（"Ａ"×"Ｃ"）が、設定された最大許容ウェイトサイクル数"Ｄ"を超えないように、最大連続アクセス回数"Ｃ"の値も同様に更新する。すなわち、（"Ａ"×"Ｃ"≦"Ｄ"）となる最大の"Ｃ"を設定する。ここで、最大ウェイト制御部１７は、例えば、「除算器（ＤＩＶ）」または「乗算器（ＭＵＬ）＋比較器（ＣＭＰ）」の構成、あるいは、テーブル引きする構成で実現するようにしてもよい。
【０１２７】
このように、本実施の形態におけるアクセスモード判定部１２０では、ウェイトカウント部１５と最大ウェイト制御部１７を用いて、アクセス間隔サイクル設定数"Ａ"や最大連続アクセス回数"Ｃ"の値を動的に更新可能とすることで、「連続アクセスモード」状態であるか否かを判定するための各設定パラメータを、実際のバスアクセス動作中に状況に応じて動的に最適化することができるという利点がある。
【０１２８】
以上に説明したように、本発明に係るバスアクセス調停回路は、例えば、マルチプロセッサシステムのためのバスアクセス調停回路として、各マスタのアクセス時に、毎回「連続アクセス」となっているか否かそのアクセスモードを判定する。例えば、"Ａ"サイクル以内の間隔で"Ｂ"回以上、繰り返してアクセスしている場合には、「連続アクセス」状態と判定される。
【０１２９】
そして、その判定結果に応じて、次回以降のアクセス時のアクセス調停方式を動的に切り替えることを特徴とする。仮に、前回「連続アクセス」状態でアクセス権を得た場合には、次も連続アクセスを想定して"Ａ"サイクル間は他マスタにアクセス権を与えない。一方で、前回「連続アクセス」状態ではない状態でアクセスした場合、もしくは、最大連続アクセス回数である"Ｃ"回連続でアクセスした場合は、例えば一般的なラウンドロビン方式に従ってアクセス調停を行う。そして、前記アクセス調停中も継続してアクセスモード判定処理を実施し、常に判定結果を更新するものである。
【０１３０】
すなわち、各マスタの状態が「シングルアクセス」モードなのか「連続アクセス」モードなのかを判定する判定回路と、マスタごとにその判定結果を記憶しておくアクセスモードレジスタと、を備え、各マスタの現在のアクセスモードに応じてアクセス調停手法を切り替える、ことを特徴とする。
【０１３１】
また、本発明に係る作用を説明する。本発明に係るバスアクセス調停回路は、マルチプロセッサシステムのためのバスアクセス調停回路として、各マスタのアクセス時に、毎回「連続アクセス」となっているか否かを判定し、判定結果に応じてアクセス調停方式を動的に切り替える。これにより、各マスタから制御処理用のシングルアクセスや、データ処理用の連続アクセスが入り混じった場合でも、適応的に高い転送スループットを実現することが可能である。
【０１３２】
その理由は、"Ａ"サイクル以内の間隔で"Ｂ"回以上アクセスすることで「連続アクセス」状態と判定され、その場合に、一定期間中は他マスタにアクセス権を与えないため、連続アクセスが可能となる。これにより、ストリームアクセス可能なバスインタフェースを用いた階層的なバス構成の場合でも、高い転送スループットを実現できるためである。
【０１３３】
一方で、「連続アクセス」状態ではない「シングルアクセス」状態時には、一般的なラウンドロビン方式に従ってアクセス調停を行う。このため、連続アクセスを想定して所定の期間を常に待つ必要はなくなる。これにより、この場合も転送効率が向上する。特に、無線通信処理などストリームデータを処理するマルチプロセッサシステムでは、「連続アクセス」の次も「連続アクセス」となる可能性が高い。このため、前回（現時点）のアクセス状態を判定して次のアクセス調停手法を切り替えることは、非常に有用である。
【０１３４】
（効果の説明）
以上に説明した各実施の形態を例とする本発明によれば、以下に説明するような効果を期待することができる。
（第１の効果）
第１の効果は、マルチプロセッサシステムにおけるバスアクセス調停回路において、ストリームアクセス可能なバスインタフェースを用いた階層的なバス構成の場合においも、アクセススループットの劣化を防止できることである。
【０１３５】
その理由は、本発明に係るバスアクセス調停回路では、アクセスモード判定部を用いて当該マスタを「連続アクセスモード」と判定し、アクセス調停方式を切り替えることで、アクセス間隔"Ａ"サイクル以内での連続アクセス"Ｃ"回までは当該マスタからの「連続アクセス」が可能となる。これにより、高い転送スループットを実現することができるためである。
【０１３６】
すなわち、例えば、一般的な「ラウンドロビン方式」等でアクセス調停するとアクセススループットが劣化してしまうストリームアクセス可能な階層的なバス構成の場合でも、本発明においては、「連続アクセスモード」に基づいて「連続アクセス」を指向したアクセス調停方式に切り替え、任意のマスタに連続的にアクセス権を付与する。このため、図７と図８の比較で示したように、高い転送スループットを実現できるという利点がある。
【０１３７】
また、ラウンドロビン調停部では、「シングルアクセスモード」と「連続アクセスモード」を用いてアクセス調停方式を切り替え可能な構成としたことで、各マスタコアから制御用のシングルアクセスや、データ処理用の連続的なアクセスが任意の頻度で発生した場合でも、状況に応じたアクセス調停方式の切り替えを実施できる、転送スループットが落ちないという利点もある。
【０１３８】
特に、実施の形態１の具体例に示したように、階層的なバス構成を採用した場合に、例えばマスタＭ０がスレーブＳ２に、マスタＭ１がスレーブＥｘｔ．にそれぞれ連続的に読み出しアクセスを発行したとき、連続アクセスモードに基づいて連続的にアクセス権を付与できる。これにより、異なるスレーブへのアクセス切り替えオーバヘッドを最小限に抑え、転送スループットの劣化を防止できることができる。
【０１３９】
また、実施の形態３に示したように、「連続アクセスモード」状態であるか否かを判定するためのアクセス間隔サイクル数を１サイクル（間隔なし）に限定することで、「シングルアクセスモード」と「連続アクセスモード」の双方の利点を、簡単な回路構成を用いて実現することも可能である。
【０１４０】
すなわち、実施の形態１、２では、常に「連続アクセス」を考慮した場合に余分なアクセス間隔分のウェイトが挿入される課題を解決するために、マスタごとに「シングルアクセスモード」か「連続アクセスモード」であるかの状態を示すアクセスモード状態レジスタ等を備えていた。これに対して、実施の形態３では、簡単な回路構成にて、常に「連続アクセスモード」として動作させても、余分なアクセス間隔分をウェイトさせることなく、高い転送スループットが実現できる、という利点がある。
【０１４１】
（第２の効果）
第２の効果は、マルチプロセッサシステムにおけるバスアクセス調停回路において、アクセス状況に応じて、より最適なアクセス調停方式を選択できることである。
【０１４２】
その理由は、本発明に係るバスアクセス調停回路では、アクセスモード判定部を備え、アクセスモード判定ステップを実行することで、シングルアクセスが多い例えば制御用データ転送時などの場合は、当該マスタを「シングルアクセスモード」と判定し、一方で連続的なアクセスが多い例えばデータ処理用のストリームデータ転送時などの場合は、当該マスタを「連続アクセスモード」と判定して、そのアクセスモードに応じてアクセス調停方式を切り替え可能なためである。
【０１４３】
すなわち、本発明では、当該マスタが「連続アクセスモード」の場合は、連続アクセスとなる可能性が高いため、所定のアクセス間隔サイクル間は他のマスタからのアクセスをウェイトさせ、当該マスタが「シングルアクセスモード」の場合は、他のマスタをウェイトさせると逆にオーバヘッドとなってしまう可能性が高いため、例えば一般的なラウンドロビン方式を用いて他のマスタをウェイトさせることなく効率的にアクセス権を付与することができる。
【０１４４】
また、実施の形態２では、接続されるマスタごとにアクセスモード判定部を備えることで、アクセス調停結果とは無関係にそれぞれアクセスモード判定処理を実施できる。それによって、途中で他マスタがバスアクセス権を一旦取得しても継続してアクセスモード判定処理をマスタごとに独立に実施できるため、より最適な(厳密な)アクセスモード判定処理が可能という利点がある。
【０１４５】
また、実施の形態２に示したように、ラウンドロビン調停部を、アクセスモードが「連続アクセスモード」の場合に、他マスタが読み出しアクセスの場合はウェイトし、書き込みアクセスの場合はアクセス許可するように構成することで、より効率的なバスアクセス調停処理を実現することができる。
【０１４６】
さらに、実施の形態４では、各マスタのアクセスモードに応じてアクセス調停処理を切り替えるラウンドロビン調停部を、優先度を考慮したラウンドロビン制御回路で構成することで、例えば「シングルアクセスモード」時には接続されるマスタ間でアクセス優先度に差をつけることができるようになり、各々のマスタの状況に応じたより最適なアクセス調停処理を実現可能である。
【０１４７】
また、実施の形態４におけるアクセスモード判定部では、ウェイトカウント部と最大ウェイト制御部を用いて、アクセス間隔サイクル設定数"Ａ"や最大連続アクセス回数"Ｃ"の値を動的に更新可能とする。これにより、「連続アクセスモード」状態であるか否かを判定するためのサイクルパラメータを、バスアクセス状況に応じて動的に最適化することができる。すなわち、より望ましいタイミングで「連続アクセスモード」状態であるか否かを判定することが可能となり、より最適なアクセス調停方式を選択可能という利点がある。
【０１４８】
（第３の効果）
第３の効果は、マルチプロセッサシステムにおけるバスアクセス調停回路において、任意のマスタにおいて、ワーストケースにおける最大ウェイトサイクル数を保障可能なことである。
【０１４９】
その理由は、本発明に係るバスアクセス調停回路では、一般的な「固定優先度方式」のようなワーストケースのサイクル保障が難しいアクセス調停方式は使用せずに、基本的には、有限で算出可能な一定サイクル後にはアクセス権の順番が必ず回ってくる「ラウンドロビン方式」をベースに、アクセス調停回路を構成しているためである。
【０１５０】
すなわち、本発明においては、「シングルアクセスモード」時は基本的には一般的なラウンドロビン方式と同様にアクセス調停実施し、「連続アクセスモード」においても、アクセス間隔"Ａ"サイクル×連続アクセス"Ｃ"回が当該連続アクセスサイクル数の上限となる。このため、他マスタのワーストケースの最悪ウェイトサイクル数を保障することが可能である。
【０１５１】
また、実施の形態４における優先度付きラウンドロビン方式を用いたラウンドロビン調停部の場合も、高優先度（Ｈｉｇｈ）と低優先度（Ｌｏｗ）の各グループに含まれるマスタ数と、高優先度側に最大連続してアクセス権を付与する回数に応じて、任意のマスタのワーストケースの最悪ウェイトサイクル数を保障することが可能である。
【０１５２】
最後に、実施の形態４のアクセスモード判定部において、アクセス間隔サイクル数"Ａ"や最大連続アクセス回数"Ｃ"を動的に更新する場合も、設定された最大許容ウェイトサイクル数"Ｄ"を基に最大連続アクセス回数"Ｃ"の値が調整されるため、ワーストケースの最悪ウェイトサイクル数を保障可能である。
【０１５３】
以上に第１の効果、第２に効果、第３の効果を説明したが、本発明では、これら３つの効果を同時に満たせることが最大の効果である。
【０１５４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態１で説明したバスアクセス調停回路に対して実施の形態３で説明したバスアクセス調停回路を適用し、実施の形態１で説明したアクセス調停ステップに対して、実施の形態３で説明したアクセス調停ステップを適用することも可能である。また、例えば、実施の形態１に対して実施の形態４を適用することも可能である。
【０１５５】
上記の複数の実施の形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１５６】
（付記１）
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定手段と、
前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停手段と、を備え、
前記アクセスモード判定手段は、
前記マスタからのアクセス間隔をカウントするアクセス間隔カウント手段と、
前記マスタからの連続アクセス回数をカウントする連続アクセス回数カウント手段と、
判定した前記アクセスモードの状態を前記マスタごとに格納しておくアクセスモード状態レジスタと、を備え、
前記アクセス間隔と、前記連続アクセス回数と、に基づいて、前記アクセスモードの状態を更新する、
ことを特徴とするバスアクセス調停回路。
【０１５７】
（付記２）
前記ラウンドロビン調停手段は、
最後にアクセス権を付与した前記マスタの前記アクセスモードに応じて、前記連続アクセスモードである場合は当該マスタに優先的にアクセス権を付与し、前記シングルアクセスモードである場合はラウンドロビン方式に従ってアクセス調停処理を行う、
ことを特徴とする付記１記載のバスアクセス調停回路。
【０１５８】
（付記３）
前記ラウンドロビン調停手段は、
最後にアクセス権を付与した前記マスタの前記アクセスモードに応じて、
（ａ）前記連続アクセスモードであり、かつ、前記アクセス間隔が所定のアクセス間隔以内に前記連続アクセス回数が所定の連続アクセス回数以内であるアクセスが当該マスタから発生した場合は、当該マスタにアクセス権を付与し、
（ｂ）前記連続アクセスモードであり、かつ、当該マスタからはアクセスがなく前記アクセス間隔が前記所定のアクセス間隔以内に他の前記マスタからアクセス発生した場合は、当該他の前記マスタからのアクセスをウェイトさせ、
（ｃ）前記連続アクセスモードであり、かつ、前記アクセス間隔が前記所定のアクセス間隔を超えるかまたは前記連続アクセス回数が前記所定の連続アクセス回数を超えて当該マスタからアクセスが発生した場合は、ラウンドロビン方式に従ってアクセス調停処理を行い、
（ｄ）前記シングルアクセスモードの場合は、前記ラウンドロビン方式に従ってアクセス調停処理を行う、
ことを特徴とする付記１記載のバスアクセス調停回路。
【０１５９】
（付記４）
前記アクセスモード判定手段は、
任意の前記マスタからのバスアクセスに対して、
（ａ）前記アクセス間隔が所定のアクセス間隔以内に前記連続アクセス回数が所定の連続アクセス回数以上となり連続してアクセスが発生した場合は、当該マスタを前記連続アクセスモードであると判定し、
（ｂ）前記連続アクセス回数が所定の連続アクセス回数に達していない状態で前記アクセス間隔が所定のアクセス間隔を超えた場合は、当該マスタを前記シングルアクセスモードであると判定する、
ことを特徴とする付記１〜３いずれか１項に記載のバスアクセス調停回路。
【０１６０】
（付記５）
前記アクセス間隔カウント手段は、
所定のアクセス間隔を設定するアクセス間隔設定レジスタと、前記アクセス間隔数をカウントするアクセス間隔カウンタと、を備え、
前記連続アクセス回数カウント手段は、
判定用の所定の連続アクセス回数を設定する連続アクセス回数設定レジスタと、調停用の所定の連続アクセス回数を設定する最大連続アクセス回数設定レジスタと、前記連続アクセス回数をカウントする連続アクセス回数カウンタと、を備える、
ことを特徴とする付記１、２、３または４記載のバスアクセス調停回路。
【０１６１】
（付記６）
前記アクセスモード判定手段を、
接続される前記マスタごとにそれぞれ備える、
ことを特徴とする付記１〜５いずれか１項に記載のバスアクセス調停回路。
【０１６２】
（付記７）
前記ラウンドロビン調停手段は、
前記アクセスモードが前記連続アクセスモードである場合でも、各前記マスタからのアクセスが書き込みアクセスである場合は、ラウンドロビン方式に従ってアクセス調停する、
ことを特徴とする付記１〜６いずれか１項に記載のバスアクセス調停回路。
【０１６３】
（付記８）
前記ラウンドロビン調停手段は、
アクセス調停方式としてのラウンドロビン方式を、前記マスタごとに異なる優先度グループにグループ分けして、前記優先度を考慮したラウンドロビン方式とする、
ことを特徴とする付記１〜７いずれか１項に記載のバスアクセス調停回路。
【０１６４】
（付記９）
前記アクセスモード判定手段は、
前記連続アクセスモードであり、かつ、前記連続アクセス回数が所定のアクセス連続回数となりアクセスする前記マスタを切り替えた場合に、次のアクセスにおけるウェイトサイクル数をカウントするウェイトカウント手段と、
前記マスタが最大許容可能なウェイトサイクル数を制御する最大ウェイト制御手段と、を備え、
前記カウントされたウェイトカウント数と、前記最大許容可能なウェイトサイクル数と、に基づいて、前記アクセス間隔カウント手段と、前記連続アクセス回数カウント手段と、がそれぞれ有する設定レジスタの値を動的に更新する、
ことを特徴とする付記１〜８いずれか１項に記載のバスアクセス調停回路。
【０１６５】
（付記１０）
前記アクセスモード状態レジスタは、
前記アクセスモードの状態が外部から設定可能であり、
ラウンドロビン調停手段は、
前記設定されたアクセスモードに応じて、アクセス調停処理を実施する、
ことを特徴とする付記１〜９のいずれか１項に記載のバスアクセス調停回路。
【０１６６】
（付記１１）
複数のマスタからのバスアクセスが発生する場合に、最後にアクセス権が付与された前記マスタからの連続アクセス回数をカウントする連続アクセス回数判定手段と、
前記連続アクセス回数判定手段での判定結果に応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停手段と、を備え、
前記ラウンドロビン調停手段は、
（ａ）前記連続アクセス回数が所定の連続アクセス回数以内に前記マスタからアクセス発生した場合は、当該マスタに優先的にアクセス権を付与し、
（ｂ）前記連続アクセス回数が所定の連続アクセス回数を超えた場合、または、前記マスタからはアクセス発生していない場合は、ラウンドロビン方式に従ってアクセス調停を行う、
ことを特徴とするバスアクセス調停回路。
【０１６７】
（付記１２）
複数のマスタからのバスアクセスが発生する場合に、接続される各前記マスタのアクセスモードが連続アクセスモードかシングルアクセスモードであるかを判定するアクセスモード判定ステップと、
判定された前記アクセスモードに応じて、前記バスアクセスを調停するアクセス調停方式を動的に切り替えるラウンドロビン調停ステップと、を含み、
前記アクセスモード判定ステップでは、
前記マスタからのアクセス間隔と、前記マスタからの連続アクセス回数と、に基づいて、前記アクセスモードの状態を更新して、当該更新した前記アクセスモードの状態を前記マスタごとにアクセスモード状態レジスタに格納しておく、
ことを特徴とするバスアクセス調停方法。
【０１６８】
（付記１３）
複数のマスタからのバスアクセスが発生する場合に、最後にアクセス権が付与された前記マスタからの連続アクセス回数をカウントする連続アクセス回数カウントステップと、
カウントされた前記連続アクセス回数が所定の連続アクセス回数以内に前記マスタからアクセス発生した場合は、当該マスタに優先的にアクセス権を付与するアクセス権付与ステップと、
カウントされた前記連続アクセス回数が所定の連続アクセス回数を超えた場合、または、前記マスタからはアクセス発生していない場合は、ラウンドロビン方式に従ってアクセス調停を行うアクセス調停ステップと、を含む、
バスアクセス調停方法。
【０１６９】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１７０】
この出願は、２０１２年３月３０日に出願された日本出願特願２０１２−８１７１２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１７１】
１０、１３…アクセス間隔カウント部
１１、１４…アクセス間隔設定レジスタ
１２…アクセス間隔カウンタ
１５…ウェイトカウント部
１６…ウェイトカウンタ
１７…最大ウェイト制御部
１８…ウェイトサイクル設定レジスタ
２０、２４、２５…連続アクセス回数カウント部
２１…連続アクセス回数設定レジスタ
２２、２６…最大連続アクセス回数設定レジスタ
２３…連続アクセス回数カウンタ
３０…マスタＩＤレジスタ
４０…アクセスモード状態レジスタ
５０、５１、５２…ラウンドロビン制御回路
５４…優先度間ラウンドロビン制御回路
５５…高優先度回数カウンタ
５６…高優先度ラウンドロビン制御回路
５７…低優先度ラウンドロビン制御回路
６０…ラウンドロビン状態レジスタ
６４…優先度間ラウンドロビン状態レジスタ
６６…高優先度ラウンドロビン状態レジスタ
６７…低優先度ラウンドロビン状態レジスタ
７０、７１、７２…バス
８０〜８ｎ…マスタブロック
９０〜９ｋ…スレーブブロック
１００、１０１、１０２、１０３、１２０…アクセスモード判定部
１１０…連続アクセス回数判定部
２００、２０１、２０２、２１０…ラウンドロビン調停部
３００、３０１、３０２、３０３…バスアクセス調停回路
４００、４０１…演算処理クラスタ
５００…マルチプロセッサシステム
【図１】
0006036806.tif 000002
【図２】
0006036806.tif 000003
【図３】
0006036806.tif 000004
【図４】
0006036806.tif 000005
【図５】
0006036806.tif 000006
【図６】
0006036806.tif 000007
【図７】
0006036806.tif 000008
【図８】
0006036806.tif 000009
【図９】
0006036806.tif 000010
【図１０】
0006036806.tif 000011
【図１１】
0006036806.tif 000012
【図１２】
0006036806.tif 000013
【図１３】
0006036806.tif 000014
【図１４】
0006036806.tif 000015