(57)【特許請求の範囲】
【請求項１】
複数のマスターブロックからバスを介して行われるバスアクセスを調停するためのバスアクセス調停方法であって、
上記マスターブロック毎の発行済みのリクエスト数に応じて上記複数のマスターブロックを互いに優先順位が異なる複数のグループに分け、
上記複数のグループのうち上記マスターブロック毎の発行済みのリクエスト数が最も下位とされるグループについては、当該グループの優先順位を時間的に不変とし、他の複数のグループについては、リクエストが発行される毎にグループ間の優先順位を入れ替えながらバスアクセスを調停することを特徴とするバスアクセス調停方法。
【請求項２】
複数のマスターブロックからバスを介して行われるバスアクセスを調停するためのバスアクセス調停方法であって、
上記マスターブロック毎の単位時間当たりのリクエスト数をカウントし、
上記単位時間当たりのリクエスト数が下位とされる所定数のマスターブロックによって第１グループを形成し、
上記単位時間当たりのリクエスト数が上位とされる所定数のマスターブロックによって第２グループを形成し、
上記第１グループ及び上記第２グループのいずれにも該当しないマスターブロックによって第３グループを形成し、
上記第１グループの優先順位を最も高く、且つ、時間的に不変とし、上記第２グループ及び上記第３グループについては、上記第１グループよりも優先順位を低くすると共に、
上記グループ間の優先順位をリクエストが発行される毎に入れ替えることを特徴とするバスアクセス調停方法。
【請求項３】
複数のマスターブロックから同時にリクエストが発行された場合、優先順位が高い方のグループ内で、最近もっとも使われていないマスターブロックからのリクエストを最優先する請求項２記載のバスアクセス調停方法。
【請求項４】
スレーブブロックと、
それぞれ上記スレーブブロックにアクセス可能な複数のマスターブロックと、
上記複数のマスターブロックからバスを介して行われる上記スレーブへのアクセスのリクエストを調停可能な調停回路と、を含む半導体集積回路であって、
上記調停回路は、上記マスターブロック毎の単位時間当たりのリクエスト数をカウント可能なカウンターと、
上記カウンターの出力情報に基づいて上記複数のマスターブロックを複数のグループに分けるためのマスターグループ化回路と、
上記グループ間の優先順位を所定の条件に応じて入れ替えながら上記リクエストの調停を行うアービトレーション回路と、を含み、
上記複数のグループは、第１グループと、第２グループと、第３グループとを含み、
上記第１グループは、上記単位時間当たりのリクエスト数が下位とされる所定数のマスターブロックによって形成され、
上記第２グループは、上記単位時間当たりのリクエスト数が上位とされる所定数のマスターブロックによって形成され、
上記第３グループは、上記第１グループ及び上記第２グループのいずれにも該当しないマスターブロックによって形成され、
上記アービトレーション回路は、上記第１グループの優先順位を最も高く、且つ、時間的に不変とし、上記第２グループ及び上記第３グループについては、上記第１グループよりも優先順位を低くすると共に、それらの優先順位をリクエストが発行される毎に入れ替えるためのマスターグループ優先順位決定回路と、
上記マスターグループ優先順位決定回路の出力に基づいて、対応するマスタブロックからのリクエストを許可する旨のグラント信号を生成するグラント信号生成回路と、を含むことを特徴とする半導体集積回路。
【請求項５】
上記第１グループに属するマスターブロックの数と、上記第２グループに属するマスターブロックの数とを設定可能な第１レジスタ回路を含む請求項４記載の半導体集積回路。
【請求項６】
上記単位時間を設定可能な第２レジスタ回路を含む請求項５記載の半導体集積回路。
【請求項７】
上記グラント信号生成回路は、複数のマスターブロックから同時にリクエストが発行された場合、優先順位が高い方のグループ内で、最近もっとも使われていないマスターブロックからのリクエストを最優先するためのマスターグループ内優先順位決定回路を含む請求項４記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスターブロックからバスアクセスを調停するためのリクエスト調停技術に係り、例えばマイクロコンピュータなどの半導体集積回路に適用して有効な技術に関する。
【背景技術】
【０００２】
マイクロプロセッサなどのマスター・デバイスと、メモリなど周辺デバイスを制御するスレーブ・デバイスとの間でデータ転送を可能とする半導体集積回路は、システム・オン・チップ（ＳｏＣ：System On a Chip）と称されることが多い。システム・オン・チップの中には、多数のマスターを搭載するシステムがある。複数のマスターが存在するシステムの場合、ある瞬間にバスを使用できるのは1つのマスターだけなので、バスアクセスの調停を行うことにより、各マスターに対してバスの使用権を順次割り振っていく必要がある。このような処理を行う回路はアービトレーション回路、あるいはアービターなどと称される。
【０００３】
ＳｏＣにおいては、それに搭載されるＩＰ（Intellectual Property）数の増加に伴い、オンチップバスに接続されているメモリ等の共有リソースにアクセスするマスターの数も増加し、上記マスターの共有リソースへのアクセスに対する調停を行うアービターが、各マスターによりある一定期間中に発行されるリクエストの回数に応じてマスターに対してバス占有権を与えることができず、上記マスターが平等に共有リソースを利用できないために、システムのスループットが低下する虞れがある。それを解決するための技術として、マスターから発行されるリクエストの調停を行うアービターにおいて、マスターから発行されるリクエストの回数を保持し、リクエストの回数からマスターの優先順位付けを行う技術が知られている（例えば特許文献１参照）。それによれば、マスターの優先度を、基準の優先順位と、リクエストの回数、マスターから転送されるデータ量により決定し、上記優先度に閾値を設け、この閾値によりマスターをグループ化し、マスターから発行されるリクエストの調停を行うようにしている。
【０００４】
【特許文献１】特開２０００−１４８６７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術について本願発明者が検討したところ、リクエストを要求するマスターはＰＣＩデバイスおよびＰＣＩスロットに主眼を置いて上記マスターの優先度を計算しているために、この技術を多数のIPが搭載されるＳｏＣに適用した場合には、上記マスターからある一定期間中に発行されるリクエストの回数が少ないマスターの優先順位が低くなり、その結果、上記リクエストの回数が少ないマスターがバス占有権を獲得するまでの待ち時間が長くなり、上記リクエストの回数に応じてバス占有権が与えられないことから、システムのスループットが低下する虞のあることが見いだされた。
【０００６】
本発明の目的は、システムのスループットを向上させるための技術を提供することにある。
【０００７】
本発明の別の目的は、マスターからある一定期間中に発行されるリクエストの回数に応じてバス占有権を与えることで、システムのスループットを向上させるための技術を提供することにある。
【０００８】
本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
〔１〕複数のマスターブロックからバスを介して行われるバスアクセスを調停するためのバスアクセス調停方法において、上記マスタブロック毎の発行済みのリクエスト数に応じて上記複数のマスターブロックを互いに優先順位が異なる複数のグループに分け、上記複数のグループのうち優先順位が最も高いグループについては、当該グループの優先順位を時間的に不変とし、他の複数のグループについては、リクエストが発行される毎にグループ間の優先順位を入れ替えながらバスアクセスを調停する。
【００１１】
上記の手段によれば、上記マスタブロック毎の発行済みのリクエスト数に応じて上記複数のマスターブロックを互いに優先順位が異なる複数のグループに分けられ、上記複数のグループのうち優先順位が最も高いグループについては、当該グループの優先順位が変更されず、他の複数のグループについてはリクエストが発行される毎にグループ間の優先順位が入れ替えられる。このことが、複数のマスター間でのバス占有の偏りを緩和し、システムのスループットの向上を達成する。
【００１２】
〔２〕複数のマスターブロックからバスを介して行われるバスアクセスを調停するためのバスアクセス調停方法において、上記マスターブロック毎の単位時間当たりのリクエスト数をカウントし、上記単位時間当たりのリクエスト数が下位とされる所定数のマスターブロックによって第１グループを形成し、上記単位時間当たりのリクエスト数が上位とされる所定数のマスターブロックによって第２グループを形成し、上記第１グループ及び上記第２グループのいずれにも該当しないマスターブロックによって第３グループを形成し、上記グループ間の優先順位を所定の条件に応じて入れ替えながらバスアクセスを調停する。
【００１３】
上記の手段によれば、上記単位時間当たりのリクエスト数に応じて動的にグループ分けされ、このグループの優先順位が所定の条件に応じて入れ替えられる。このことが、複数のマスター間でのバス占有の偏りを緩和し、システムのスループットの向上を達成する。
【００１４】
〔３〕上記〔２〕において、上記第１グループの優先順位を最も高く、且つ、時間的に不変とし、上記第２グループ及び上記第３グループについては、上記第１グループよりも優先順位を低くすると共に、それらの優先順位をリクエストが発行される毎に入れ替えることができる。
【００１５】
〔４〕上記〔３〕において、複数のマスターブロックから同時にリクエストが発行された場合、優先順位が高い方のグループ内で、最近もっとも使われていないマスターブロックからのリクエストを最優先することができる。
【００１６】
〔５〕さらに、スレーブブロックと、それぞれ上記スレーブブロックにアクセス可能な複数のマスターブロックと、上記複数のマスターブロックからバスを介して行われる上記スレーブへのアクセスのリクエストを調停可能な調停回路とを含んで半導体集積回路が構成されるとき、上記マスターブロック毎の単位時間当たりのリクエスト数をカウント可能なカウンターと、上記カウンターの出力情報に基づいて上記複数のマスターブロックを複数のグループに分けるためのマスターグループ化回路と、上記グループ間の優先順位を所定の条件に応じて入れ替えながら上記リクエストの調停を行うアービトレーション回路とを含んで、上記調停回路を構成する。
【００１７】
上記の手段によれば、マスターグループ化回路は、上記カウンターの出力情報に基づいて上記複数のマスターブロックを複数のグループに分け、上記アービトレーション回路は、上記グループ間の優先順位を所定の条件に応じて入れ替えながら上記リクエストの調停を行う。このことが、複数のマスター間でのバス占有の偏りを緩和し、システムのスループットの向上を達成する。
【００１８】
〔６〕上記〔５〕において、上記複数のグループは、第１グループと、第２グループと、第３グループとを含み、上記第１グループは、上記単位時間当たりのリクエスト数が下位とされる所定数のマスターブロックによって形成し、上記第２グループは、上記単位時間当たりのリクエスト数が上位とされる所定数のマスターブロックによって形成し、上記第３グループは、上記第１グループ及び上記第２グループのいずれにも該当しないマスターブロックによって形成することができる。
【００１９】
〔７〕上記〔６〕において、上記第１グループに属するマスターブロックの数と、上記第２グループに属するマスターブロックの数との変更を可能とするには、上記第１グループに属するマスターブロックの数と、上記第２グループに属するマスターブロックの数とを設定可能な第１レジスタ回路を設けると良い。
【００２０】
〔８〕上記〔７〕において、上記単位時間の変更を可能とするには、上記単位時間を設定可能な第２レジスタ回路を設けると良い。
【００２１】
〔９〕上記〔５〕において、アービトレーション回路は、上記第１グループの優先順位を最も高く、且つ、時間的に不変とし、上記第２グループ及び上記第３グループについては、上記第１グループよりも優先順位を低くすると共に、それらの優先順位をリクエストが発行される毎に入れ替えるためのマスターグループ優先順位決定回路と、上記マスターグループ優先順位決定回路の出力に基づいて、対応するマスタブロックからのリクエストを許可する旨のグラント信号を生成するグラント信号生成回路とを含んで構成することができる。
【００２２】
〔１０〕上記〔９〕において、上記グラント信号生成回路は、複数のマスターブロックから同時にリクエストが発行された場合、優先順位が高い方のグループ内で、最近もっとも使われていないマスターブロックからのリクエストを最優先するためのマスターグループ内優先順位決定回路を含んで構成することができる。
【発明の効果】
【００２３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２４】
すなわち、複数のマスター間でのバス占有の偏りを緩和することによってシステムのスループットを向上させることができる。
【発明を実施するための最良の形態】
【００２５】
図１には、本発明に係る半導体集積回路の一例であるマイクロコンピュータが示される。
【００２６】
図１に示されるマイクロコンピュータ１００は、特に制限されないが、複数のマスターブロック（単に「マスター」ともいう）１０１ａ〜１０１ｆ、スレーブブロック（単に「スレーブ」ともいう）１１０、及び調停回路１０００を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。上記複数のマスター１０１ａ〜１０１ｆと、スレーブ１１０とは、バス１０９を介して互いにデータのやり取り可能に結合される。上記マスター１０１ａ〜１０１ｆは、特に制限されないが、ＣＰＵ（中央処理装置）や、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）などとされる。上記スレーブ１１０は、特に制限されないが、上記マスタ１０１ａ〜１０１ｆによってアクセス可能なＲＡＭ（ランダム・アクセス・メモリ）とされる。上記調停回路１０００は、特に制限されないが、上記複数のマスター１０１ａ〜１０１ｆからのバスアクセスを調停する機能を有し、カウンター１０２ａ〜１０２ｆ、マスターグループ化単位時間設定レジスタ回路１０３、マスターグループ化マスター個数設定レジスタ回路１０４、マスターグループ化回路１０５、アービトレーション回路１０６を含む。上記カウンター１０２ａ〜１０２ｆは、上記マスター１０１ａ〜１０１ｆから発行されるリクエスト１０７の回数をカウントする機能を有する。マスターグループ化単位時間設定レジスタ回路１０３は、マスターグループ化を行う間隔を設定するために設けられる。マスターグループ化マスター個数設定レジスタ回路１０４は、例えば上記カウンター値に応じて３つのマスターグループに分ける際のマスター個数情報を設定するために設けられる。上記マスターグループ化回路１０５は、上記リクエストカウンター１０２ａ〜１０２ｆの出力情報（リクエスト回数１０２ａ〜１０２ｆ）と、上記マスターグループ化単位時間設定レジスタ回路１０３の出力情報と、上記マスターグループ化マスター個数設定レジスタ回路１０４の出力情報とを用いて上記複数のマスター１０１ａ〜１０１ｆのグループ化を行う。アービトレーション回路１０６は、上記マスターグループ化回路１０５の出力情報を用いてマスターグループの優先順位を決定することによってバスアクセスの調停を行う。そして上記アービトレーション回路１０６は、リクエストを受け付けるマスター１０１ａ〜１０１ｆに対してグラント信号１０８を発行する。上記グラント信号１０８を受信したマスターは、バス１０９を占有してスレーブ１１０との間でデータのやり取りを行うことができる。
【００２７】
図２には、上記レジスタ回路１０３、１０４の設定例が示される。
【００２８】
本例によれば、マスターグループ化単位時間設定レジスタ回路１０３の値は、システムクロックの４０サイクルで、マスターグループ化マスター個数設定レジスタ回路１０４の値は０x０００１０００３であり、リクエストカウンター１０２ａ〜１０２ｆでカウントしたリクエスト回数の下位１個のマスター、上位３個のマスター、それ以外の２個のマスターの３グループに分けられる。
【００２９】
図３には、上記マスターグループ化単位時間設定レジスタ回路１０３と、上記マスターグループ化マスター個数設定レジスタ１０４の値と、リクエストカウンター１０２ａ〜１０２ｆの出力情報とを用いて、マスターグループ化回路１０５がマスターのグループ化を行った結果が示される。
【００３０】
マスターグループ化回路１０５によりマスターを３つに分けるグループ名をそれぞれグループＩ、グループＩＩ、グループＩＩＩとすれば、現在より一つ前のマスターグループ化単位時間１０３において、上記グループＩに属するマスターの個数は上記マスターから発行されたリクエストの回数１０２ａ〜１０２ｆの下位１個、上記グループＩＩに属するマスターの個数は上記マスターから発行されたリクエストの回数の上位から３個、上記グループＩＩＩに属するマスターの個数は上記グループＩ、ＩＩに属するマスター以外の２個で、上記グループＩ、ＩＩ、ＩＩＩはそれぞれリクエストの発行回数が少、多、中とされ、それに対応してグループ優先順位が高、中、低とされる。つまり、グループＩの優先順位が最も高く、次いでグループＩＩ、ＩＩＩの順に優先順位が低くなる。
【００３１】
図４には、上記アービトレーション回路１０６の構成例が示される。
【００３２】
アービトレーション回路１０６は、特に制限されないが、マスターグループ化回路１０５の演算結果である各マスターグループに属するマスターのＩＤと各グループの優先順位を保持するマスターＩＤとグループ優先順位保持レジスタ２０３と、マスターグループ優先順位入れ替え頻度を設定するマスターグループ優先順位入れ替え頻度設定レジスタ２０４と、上記レジスタ２０３及び２０４の出力を用いてマスターグループの優先順位を決定するマスターグループ優先順位決定回路２０７と、上記マスターグループ優先順位決定回路２０７の出力信号に基づいてグラント信号を生成するためのグラント信号を生成するためのグラント信号生成回路２０８とを含んで成る。上記グラント信号生成回路２０８は、特に制限されないが、上記マスターグループ優先順位決定回路２０７の出力信号に基づいてグループ内の優先順位を決定し、グラント信号を生成するＬＲＵ回路２１０ａ〜２１０ｃと、マスター１０１ａ〜１０１ｆのうち一番優先順位の高いマスターに対応するグラント信号１０８を選択的にアサートするためのグラント信号選択回路２１１とを有する。ここで、上記ＬＲＵ回路２１０ａ〜２１０ｃは、リクエスト０〜５をモニタして、それぞれ最近もっとも使われていないマスターの優先度をもっとも高くする方式（これを「ＬＲＵ（Least Recently Used）方式」という）によってグループ内のマスタ優先順位の設定を行う。
【００３３】
図１６には、マスターグループ優先順位入れ替え頻度設定レジスタ２０４の設定例が示される。
【００３４】
本例において、グループＩＩとグループＩＩＩの優先順位は、マスタグループ優先順位設定レジスタ２０７において、マスターグループ化単位時間毎に、マスターグループ優先順位入れ替え頻度設定レジスタ２０４の設定値に応じて設定頻度３：２で入れ替えられる。尚、グループＩにおいては優先順位の入れ替えは行われないため、グループＩの優先順位は最も高い状態で不変とされる。
【００３５】
図１５には、上記調停回路１０００での調停の流れが示される。
【００３６】
マスターグループ化回路１０５によりマスターのグループ化が行われる（４０１）。システムリセット直後のグループ化は、マスターブロックＩＤが若いブロックから順にマスターグループ化マスター個数設定レジスタ１０４の出力情報に従って行われる。
【００３７】
次に、マスタグループ化単位時間が経過しているか否かの判別が行われる（４０２）。この判別において、マスターグループ化単位時間１０３が経過している（ｙｅｓ）と判断された場合には、上記マスターグループ化（４０１）が行われる。また、上記ステップ４０２の判別において、上記マスターグループ化単位時間１０３が経過していない（ｎｏ）と判断された場合には、グループ優先順位の入れ替えを行うか否かの判別が行われる（４０３）。この判別において、グループ優先順位の入れ替えを行う（ｙｅｓ）と判断された場合には、グループ優先順位の入れ替えが行われ（４０４）、その後、マスターからリクエストが発行されたか否かの判別が行われる（４０５）。また、上記ステップ４０３の判別において、グループ優先順位の入れ替えを行わない（ｎｏ）と判断された場合にも、マスターからリクエストが発行されたか否かの判別が行われる（４０５）。この判別において、マスターからリクエストが発行された（ｙｅｓ）と判断された場合には、同一グループ内でのマスター優先順位が決定され（４０６）、その後、上記ステップ４０２の判別に遷移される。また、上記ステップ４０５の判別において、マスターからリクエストが発行されていないと判断された場合にも、上記ステップ４０２の判別に遷移される。
【００３８】
調停回路１０００では、上記のようにしてマスターのグループ化から優先順位の決定までの処理が行われる。
【００３９】
図５には、図２のマスターグループ化レジスタの設定と、図３のマスターリクエスト発行回数の情報を用いて、マスターグループ化回路１０５でグループ化が行われた場合の優先順位設定例が示される。
【００４０】
本例では、グループＩ（５０１）に属するマスターＩＤ＝０のグループ優先順位が一番高く、グループＩＩ（５０２）に属するマスターＩＤ＝１、２、３の優先順位が二番目に高く、グループＩＩＩ（５０３）に属するマスターＩＤ＝４、５の優先順位が一番低く、５０１、５０２、５０３の同一グループ内においては、ＬＲＵ（Least Recently Used）方式により上記マスターの優先順位が決定される。
【００４１】
図６には、図２のマスターグループ化レジスタの設定例を用いて、アービトレーション回路１０６により決定されるグループ優先順位の時間的遷移例が示される。
【００４２】
本例では、グループＩの優先順位は常に“高”であり、グループＩＩとグループＩＩＩは、グループＩＩとグループＩＩＩに属するマスターの個数の比で、グループ優先順位が交換され、グループＩＩの優先順位は“中→低→中→低→中→中→低→中→低→中・・・”と変化し、グループＩＩＩの優先順位は“低→中→低→中→低→低→中→低→中→低・・・”と変化し、上記グループＩＩに属するマスターのバス占有権の取得回数が多くなる。
【００４３】
図７には、同一グループ内においてＬＲＵ（Least Recently Used）方式により決定された優先順位の時間的遷移例が示される。
【００４４】
本例では、優先順位に○印が付されている欄のマスターにバス占有権が与えられることを示している。例えば時刻０においてはグループ優先順位の高いグループに属するマスターＩＤ＝０にバス占有権が与えられ、時刻１においてはグループ優先順位が“中”に属するグループＩＩＩでＬＲＵ方式により、リクエストを発行しているマスターの中で一番優先順位の高いマスターＩＤ＝４にバス占有権が与えれ、時刻２においては上記時刻１でバス占有権が与えられたマスターＩＤ＝４のグループＩＩＩにおける優先順位が上記ＬＲＵ方式により一番低くなる（優先順位＝６）。
【００４５】
図８には、図２のマスターグループ化レジスタの設定例を用いて、マスターから発行されるリクエスト１０７と、アービトレーション回路１０６からマスターに対して発行されるグラント信号１０８のタイミング例が示される。
【００４６】
本例では、グループＩに属するマスター（ＩＤ＝０）は、図７に示すように優先順位が常に一番高いので最短でグラント信号１０８を受け取り、その他のマスターに関しては、図７に示される優先順位に従いグラント信号１０８を受け取る。マスターのリクエスト獲得率を上記マスターグループ化単位時間１０３における(グラントの回数／リクエストの回数)とすれば、図８により、マスターＩＤ＝０のリクエスト獲得率は２／４=５０%、マスターＩＤ＝１のリクエスト獲得率は１０／３６=２７%、マスターＩＤ＝２のリクエスト獲得率は９／３９=２３%、マスターＩＤ＝３のリクエスト獲得率は７／２２=３１%、マスターＩＤ＝４のリクエスト獲得率は５／２２=２２%、マスターＩＤ＝５のリクエスト獲得率は６／２５=２４%となり、マスター１０１ａ〜１０１ｆから発行されるリクエスト１０７の回数１０２ａ〜１０２ｆに応じてグラント信号１０８が与えられていることを示している。
【００４７】
次に、図１に示される調停回路１０００において、グループＩＩに属するマスターの個数がグループＩＩＩに属するマスターの個数よりも少ない場合について説明する。
【００４８】
図９には、マスターをグループに分けるときに設定するレジスタ回路１０３、１０４の設定例が示される。
【００４９】
本例において、マスターグループ化単位時間設定レジスタ回路１０３の値はシステムクロックで４０サイクルで、マスターグループ化マスター個数設定レジスタ１０４の値は「０x０００１０００１」であり、リクエストカウンター１０２ａ〜１０２ｆでカウントしたリクエストの回数の下位１個のマスター、上位１個のマスター、それ以外のマスター２個の３つのグループに分けられる。
【００５０】
図１０には、上記マスターグループ化単位時間設定レジスタ回路１０３と上記マスターグループ化マスター個数設定レジスタ１０４の値とリクエストカウンターの値１０２ａ〜１０２ｆの情報を用いて、マスターグループ化回路１０５がマスターのグループ化を行った結果について示される。
【００５１】
マスターグループ化回路１０５によりマスターを３つに分けるグループ名をそれぞれグループＩ、グループＩＩ、グループＩＩＩとすれば、現在より一つ前のマスターグループ化において、上記グループＩに属するマスターの個数は上記マスターから発行されたリクエストの回数１０２ａ〜１０２ｆの下位１個、上記グループＩＩに属するマスターの個数は上記マスターから発行されたリクエストの回数の上位から１個、上記ループＩＩＩに属するマスターの個数は上記グループＩ、ＩＩに属するマスター以外の４個で、上記グループＩ、ＩＩ、ＩＩＩはそれぞれリクエストの発行回数が少、多、中で、グループ優先順位が高、中、低である。この場合、マスターグループ優先順位入れ替え頻度設定レジスタ２０４は、図１７に示されるように設定され、グループＩＩとグループＩＩＩの優先順位は、マスターグループ化単位時間毎に、マスターグループ優先順位入れ替え頻度設定レジスタ２０４の設定値に従って設定頻度１：１で入れ替えられる。
【００５２】
図１１には、図９のマスターグループ化レジスタの設定と、図１０のマスターリクエスト発行回数の情報を用いて、マスターグループ化回路１０５がグループ化を行った場合の優先順位設定例が示される。
【００５３】
本例では、９０１のグループＩに属するマスターＩＤ＝０のグループ優先順位が一番高く、９０２のグループＩＩに属するマスターＩＤ＝１の優先順位が二番目に高く、９０３のグループＩＩＩに属するマスターＩＤ＝２、３、４、５の優先順位が一番低く、９０１、９０２、９０３の同一グループ内においては、ＬＲＵ方式により上記マスターの優先順位が決定される。
【００５４】
図１２には、図９のマスターグループ化レジスタの設定を用い、上記マスターグループ化単位時間１０３において、アービトレーション回路１０６により決定されるグループ優先順位の時間的遷移例が示される。
【００５５】
本例では、グループＩの優先順位は常に“高”であり、グループＩＩとグループＩＩＩは、交互にグループ優先順位を交換し、グループＩＩの優先順位は“中→低→中→低→中→低・・・”と、グループＩＩＩの優先順位は“低→中→低→中→低→中・・・”と変化し、上記グループＩＩとグループＩＩＩに属するマスターのバス占有権の取得回数は同じである。
【００５６】
図１３には、図１２に示すグループ優先順位と、９０１、９０２、９０３の同一グループ内においてはアービトレーション回路１０６がＬＲＵ方式により決定したマスター１０１ａ〜１０１ｆの優先順位の時間的遷移例が示される。
【００５７】
本例では、優先順位に○印が付されている欄のマスターにバス占有権が与えられることを示している。例えば時刻０においてはグループ優先順位の高いグループに属するマスターＩＤ＝０にバス占有権が与えられ、時刻１においてはグループ優先順位が“中”に属するグループＩＩＩでＬＲＵ方式により、リクエストを発行しているマスターの中で一番優先順位の高いマスターＩＤ＝３にバス占有権が与えれ、時刻２においては上記時刻１でバス占有権が与えられたマスターＩＤ＝３のグループＩＩＩにおける優先順位が上記ＬＲＵ方式により一番低くなる（優先順位＝６）。
【００５８】
図１４には、図９のマスターグループ化レジスタの設定例を用い、マスターから発行されるリクエスト１０７と、アービトレーション回路１０６からマスターに対して発行されるグラント信号１０８のタイミングチャートが示される。グループＩに属するマスターＩＤ＝０は、図１３に示されるように優先順位が常に一番高いので最短でグラント信号１０８を受け取り、その他のマスターに関しては、図１３に示す優先順位に従いグラント信号１０８を受け取る。マスターのリクエスト獲得率を上記マスターグループ化単位時間１０３における(グラントの回数／リクエストの回数)とすれば、図１４により、マスターＩＤ＝０のリクエスト獲得率は５／９=５５%、マスターＩＤ＝１のリクエスト獲得率は１１／３１=３５%、マスターＩＤ＝２のリクエスト獲得率は６／３０=２０%、マスターＩＤ＝２のリクエスト獲得率は６／２９=２０%、マスターＩＤ＝３のリクエスト獲得率は５／３２=１５%、マスターＩＤ＝５のリクエスト獲得率は６／３８=１５%となり、マスター１０１ａ〜１０１ｆから発行されるリクエスト１０７の回数１０２ａ〜１０２ｆに応じてグラント信号１０８が与えられていることを示している。
【００５９】
上記の例によれば、以下の作用効果を得ることができる。
【００６０】
（１）マスター１０１ａ〜１０１ｆから発行されるリクエスト１０７の回数に応じてマスターグループ化回路１０５によりマスター１０１ａ〜１０１ｆがグループ化され、上記マスターグループ化回路の出力情報を用いてアービトレーション回路１０６によりマスターの優先順位が動的に変更されることにより、上記マスターが発行するリクエストの回数１０７に応じて、マスター１０１ａ〜１０１ｆがグラント信号１０８を受け取ることができる。これにより、複数のマスター間でのバス占有の偏りを緩和することができるので、マイクロコンピュータ１００におけるシステムのスループットの向上を図ることができる。
【００６１】
（２）マスターグループ化マスター個数設定レジスタ回路１０４の書き換えは、マスタブロックの一つであるＣＰＵなどによって行うことができ、それによって、マスタグループＩ、ＩＩ内のマスターブロック数をシステムに応じて任意に変更することができる。
【００６２】
（３）マスターグループ化単位時間設定レジスタ回路１０３の書き換えは、マスタブロックの一つであるＣＰＵなどによって行うことができ、それによって、マスターグループ化単位時間をシステムに応じて任意に変更することができる。
【００６３】
（４）マスターグループ内優先順位決定回路２０７において、複数のマスターブロックから同時にリクエストが発行された場合、優先順位が高い方のグループ内で、ＬＲＵ方式により、最近もっとも使われていないマスターブロックからのリクエストを最優先することにより、複数のマスター間でのバス占有の偏りをさらに緩和することができる。
【００６４】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に適用することができる。
【００６６】
本発明は、複数のマスターを備えることを条件に適用することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明に係る半導体集積回路の一例であるマイクロコンピュータの構成例ブロック図である。
【図２】上記マイクロコンピュータに含まれる複数のマスターをグループ分けするときに設定するレジスタの設定例説明図である。
【図３】マスターグループの優先順位設定例の説明図である。
【図４】上記マイクロコンピュータに含まれるアービトレーション回路の構成例ブロック図である。
【図５】上記マイクロコンピュータに含まれるマスターグループ化回路でグループ化が行われた場合の状態例の説明図である。
【図６】上記アービトレーション回路により決定されるグループ優先順位の時間的遷移例の説明図である。
【図７】ＬＲＵ方式により決定された優先順位例の時間的遷移例の説明図である。
【図８】マスターグループ化単位時間において、マスターから発行されるリクエストと、アービトレーション回路からマスターに対して発行されるグラント信号のタイミング図である。
【図９】複数のマスターをグループ分けするときに設定されるレジスタの設定例説明図である。
【図１０】マスターグループの優先順位設定例の説明図である。
【図１１】上記マスターグループ化回路でグループ化が行われた場合の状態例の説明図である。
【図１２】マスターグループ化単位時間において、アービトレーション回路により決定されるグループ優先順位の時間的遷移例の説明図である。
【図１３】ＬＲＵ方式により決定された優先順位例の時間的遷移例の説明図である。
【図１４】マスターグループ化単位時間において、マスターから発行されるリクエストと、アービトレーション回路からマスターに対して発行されるグラント信号のタイミング図である。
【図１５】上記マイクロコンピュータに含まれる調停回路での調停のフローチャートである。
【図１６】マスターグループ優先順位入れ替え頻度設定レジスタの設定例説明図である。
【図１７】マスターグループ優先順位入れ替え頻度設定レジスタの別の設定例説明図である。
【符号の説明】
【００６８】
１００  マイクロコンピュータ
１０１ａ〜１０１ｆ  マスターブロック
１０２ａ〜１０２ｆ  リクエストカウンター
１０３  マスターグループ化単位時間設定レジスタ
１０４  マスタグループ化マスター個数設定レジスタ
１０５  マスターグループ化回路
１０６  アービトレーション回路
１１０  スレーブブロック
２０３  マスターＩＤとグループ優先順位保持レジスタ
２０４  マスターグループ優先順位入れ替え頻度設定レジスタ
２０７  マスターグループ優先順位決定回路
２０８  グラント信号生成回路
２１０ａ〜２１０ｃ  ＬＲＵ回路
２１１  グラント信号選択回路
１０００  調停回路
【図１】
0004822429.tif 000002
【図２】
0004822429.tif 000003
【図３】
0004822429.tif 000004
【図４】
0004822429.tif 000005
【図５】
0004822429.tif 000006
【図６】
0004822429.tif 000007
【図７】
0004822429.tif 000008
【図８】
0004822429.tif 000009
【図９】
0004822429.tif 000010
【図１０】
0004822429.tif 000011
【図１１】
0004822429.tif 000012
【図１２】
0004822429.tif 000013
【図１３】
0004822429.tif 000014
【図１４】
0004822429.tif 000015
【図１５】
0004822429.tif 000016
【図１６】
0004822429.tif 000017
【図１７】
0004822429.tif 000018