(57)【要約】【課題】アクセスのレイテンシの削減を図り、システムの性能を向上させる。【解決手段】共有資源と、共有バスと、複数のリクエスタとを有するバスシステムにおいて、前記複数のリクエスタによる前記共有バスを介しての前記共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、前記複数のリクエスタのうち少なくとも１つのリクエスタは、その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力するものであり、当該バスアービトレーション装置は、前記内部状態信号に基づいて、前記アクセス要求の調停を行う。【選択図】図１
2008040650.tif 000002
【特許請求の範囲】
【請求項１】
共有資源と、共有バスと、複数のリクエスタとを有するバスシステムにおいて、前記複数のリクエスタによる前記共有バスを介しての前記共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、
前記複数のリクエスタのうち少なくとも１つのリクエスタは、
その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力するものであり、
当該バスアービトレーション装置は、
前記内部状態信号に基づいて、前記アクセス要求の調停を行う
ことを特徴とするバスアービトレーション装置。
【請求項２】
請求項１記載のバスアービトレーション装置において、
前記内部状態信号に基づいて、前記複数のリクエスタ間の所定の複数の優先順序のうち１つを選択し、選択した優先順序に従ってアクセス許可を行う
ことを特徴とするバスアービトレーション装置。
【請求項３】
請求項２記載のバスアービトレーション装置において、
前記複数の優先順序は、第１の優先順序及び第２の優先順序を含むものであり、
前記第１の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第２の優先順序での優先順位よりも高くしたものであり、
当該バスアービトレーション装置は、
前記内部状態信号が優先順位を上昇させるべきであることを示す場合は、前記第１の優先順序を選択し、そうでない場合は、前記第２の優先順序を選択する
ことを特徴とするバスアービトレーション装置。
【請求項４】
請求項３記載のバスアービトレーション装置において、
前記複数の優先順序は、第３の優先順序を更に含むものであり、
前記第３の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第２の優先順序での優先順位よりも低くしたものであり、
当該バスアービトレーション装置は、
前記内部状態信号が優先順位を低下させるべきであることを示す場合は、前記第３の優先順序を選択する
ことを特徴とするバスアービトレーション装置。
【請求項５】
請求項１記載のバスアービトレーション装置において、
受け付けた順に前記複数のリクエスタからの前記アクセス要求を格納するキューを更に備え、
前記内部状態信号に基づいて前記キューに格納されたアクセス要求の間の順序を決定し、決定された順序に従って、前記複数のリクエスタにアクセスを許可する
ことを特徴とするバスアービトレーション装置。
【請求項６】
請求項５記載のバスアービトレーション装置において、
前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記キューに格納されたアクセス要求の間の順序を、前記内部状態信号を出力するリクエスタによるアクセス要求を優先するように変更する
ことを特徴とするバスアービトレーション装置。
【請求項７】
請求項１記載のバスアービトレーション装置において、
前記内部状態信号に基づいて、前記複数のリクエスタのうち、そのアクセス要求を当該バスアービトレーション装置が受け付けることができるリクエスタを決定する
ことを特徴とするバスアービトレーション装置。
【請求項８】
請求項７記載のバスアービトレーション装置において、
前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記内部状態信号を出力するリクエスタによるアクセス要求を受け付けるようにする
ことを特徴とするバスアービトレーション装置。
【請求項９】
請求項１記載のバスアービトレーション装置において、
前記内部状態信号を出力するリクエスタのうち少なくとも１つのリクエスタは、
キャッシュメモリを有するものであり、
前記キャッシュメモリを有するリクエスタが出力する内部状態信号は、前記キャッシュメモリのキャッシュヒット率に基づいて決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１０】
請求項９記載のバスアービトレーション装置において、
前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の値未満の場合は、前記優先順位を上昇させるべきであることを示すように決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１１】
請求項９記載のバスアービトレーション装置において、
前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の第１の基準値未満である場合は、前記優先順位を上昇させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第１の基準値以上であり、かつ、所定の第２の基準値以下である場合は、前記優先順位を維持させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第２の基準値より大きい場合は、前記優先順位を低下させるべきであることを示すように決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１２】
請求項９記載のバスアービトレーション装置において、
前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第１のキャッシュヒット率より後に測定された第２のキャッシュヒット率が、前記第１のキャッシュヒット率より所定の値だけ低い基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１３】
請求項９記載のバスアービトレーション装置において、
前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第１のキャッシュヒット率より後に測定された第２のキャッシュヒット率が、前記第１のキャッシュヒット率より所定の値だけ低い第１の基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定され、前記第２のキャッシュヒット率が、前記第１の基準値より大きく、かつ、前記第１のキャッシュヒット率より所定の値だけ高い第２の基準値未満である場合は、前期優先順位を維持させるべきであることを示すように決定され、前記第２のキャッシュヒット率が、前記第２の基準値以上である場合は、前期優先順位を低下させるべきであることを示すように決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１４】
請求項１記載のバスアービトレーション装置において、
前記内部状態信号を出力するリクエスタのうち少なくとも１つのリクエスタは、
リクエスタ内部で発生した割り込みの制御を行う割り込み制御部を有するものであり、
前記割り込み制御部を有するリクエスタが出力する内部状態信号は、前記割り込み制御部による割り込みの制御に基づいて決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１５】
請求項１４記載のバスアービトレーション装置において、
前記割り込み制御部を有するリクエスタが出力する前記内部状態信号は、前記割り込みの発生から所定の期間内は、前期優先順位を上昇させるべきであることを示すように決定されるものである
ことを特徴とするバスアービトレーション装置。
【請求項１６】
請求項１記載のバスアービトレーション装置において、
前記共有資源は、
前記アクセス要求の調停により許可されたアクセスに従って、前記共有バスとの間でデータの入出力を行うものである
ことを特徴とするバスアービトレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のリクエスタによる共有資源への共有バスを介してのアクセスについて、バスアービトレーションを行う装置に関する。
【背景技術】
【０００２】
近年、システムＬＳＩにおいて、ＣＰＵやメディア処理エンジン等のリクエスタから共有資源であるメモリ等へ、システムが必要とするだけのアクセスを可能にすることが、重要となっている。また、共有資源に対して複数のリクエスタからのアクセスが行われる場合は、競合を回避するための調停を行うアービトレーション装置が必要となる。
【０００３】
そこで、各リクエスタに割り当てられた重みに相当する回数のアクセスを、当該リクエスタに許可することにより、システムが必要とする性能を満たすことを可能にしたバスアービトレーションの方法及び装置が、例えば、下記特許文献１に開示されている。
【特許文献１】特表２０００−５００８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のバスアービトレーション装置は、動画などの大量のデータ転送を行うようなリクエスタに対して高い優先度を割り当てる傾向があった。マルチメディア分野で用いられるシステムＬＳＩ等においては、メディア処理エンジンなどに比べて、ＣＰＵには低い優先度が割り当てられることが多い。このため、ＣＰＵのメモリアクセスにおける、他のリクエスタのアクセス完了待ちを含めたレイテンシが増大し、その結果、システムのリアルタイム性能の低下を招くという問題があった。
【０００５】
本発明は、システムにおいて低い優先度を割り当てられ、共有資源へのアクセスの頻度が内部状態に依存するＣＰＵのようなリクエスタに関して、そのアクセスのレイテンシの削減を図り、システムの性能を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため、請求項１の発明が講じた手段は、共有資源と、共有バスと、複数のリクエスタとを有するバスシステムにおいて、前記複数のリクエスタによる前記共有バスを介しての前記共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、前記複数のリクエスタのうち少なくとも１つのリクエスタは、その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力するものであり、当該バスアービトレーション装置は、前記内部状態信号に基づいて、前記アクセス要求の調停を行うものである。
【０００７】
請求項１の発明によると、バスアービトレーション装置は、リクエスタからの信号に従って、アクセス要求の優先順位を変更する。このため、リクエスタの内部の状態を、アクセス要求の調停に反映させることができる。
【０００８】
請求項２の発明は、請求項１記載のバスアービトレーション装置において、前記内部状態信号に基づいて、前記複数のリクエスタ間の所定の複数の優先順序のうち１つを選択し、選択した優先順序に従ってアクセス許可を行うものである。
【０００９】
請求項２の発明によると、バスアービトレーション装置は、リクエスタからの信号に従って、リクエスタ間の優先順序を選択する。このため、優先順序を容易に決定することができる。
【００１０】
請求項３の発明は、請求項２記載のバスアービトレーション装置において、前記複数の優先順序は、第１の優先順序及び第２の優先順序を含むものであり、前記第１の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第２の優先順序での優先順位よりも高くしたものであり、当該バスアービトレーション装置は、前記内部状態信号が優先順位を上昇させるべきであることを示す場合は、前記第１の優先順序を選択し、そうでない場合は、前記第２の優先順序を選択するものである。
【００１１】
請求項３の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を上昇させるべき内容の信号を受けた場合は、そのリクエスタの優先順位が高い優先順序を選択する。このため、リクエスタがアクセスを特に必要としているときには、そのリクエスタが優先されるような調停ができる。
【００１２】
請求項４の発明は、請求項３記載のバスアービトレーション装置において、前記複数の優先順序は、第３の優先順序を更に含むものであり、前記第３の優先順序は、前記内部状態信号を出力するリクエスタにアクセスを許可する優先順位を、前記第２の優先順序での優先順位よりも低くしたものであり、当該バスアービトレーション装置は、前記内部状態信号が優先順位を低下させるべきであることを示す場合は、前記第３の優先順序を選択するものである。
【００１３】
請求項４の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を低下させるべき内容の信号を受けた場合は、そのリクエスタの優先順位が低い優先順序を選択する。このため、リクエスタがアクセスをあまり必要としていないときには、それ以外のリクエスタが優先されるような調停ができる。
【００１４】
請求項５の発明は、請求項１記載のバスアービトレーション装置において、受け付けた順に前記複数のリクエスタからの前記アクセス要求を格納するキューを更に備え、前記内部状態信号に基づいて前記キューに格納されたアクセス要求の間の順序を決定し、決定された順序に従って、前記複数のリクエスタにアクセスを許可するものである。
【００１５】
請求項６の発明は、請求項５記載のバスアービトレーション装置において、前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記キューに格納されたアクセス要求の間の順序を、前記内部状態信号を出力するリクエスタによるアクセス要求を優先するように変更するものである。
【００１６】
請求項６の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を上昇させるべき内容の信号を受けた場合は、キュー内でのそのアクセス要求の順序を優先させる。このため、リクエスタがアクセスを特に必要としているときには、そのリクエスタが優先されるような調停ができる。
【００１７】
請求項７の発明は、請求項１記載のバスアービトレーション装置において、前記内部状態信号に基づいて、前記複数のリクエスタのうち、そのアクセス要求を当該バスアービトレーション装置が受け付けることができるリクエスタを決定するものである。
【００１８】
請求項７の発明によると、バスアービトレーション装置は、リクエスタからの信号に従って、アクセス要求を受け付けるリクエスタを決定する。このため、調停の対象とするリクエスタの数を減らすことができる。
【００１９】
請求項８の発明は、請求項７記載のバスアービトレーション装置において、前記内部状態信号が優先順位を上昇させるべきであることを示している場合は、前記内部状態信号を出力するリクエスタによるアクセス要求を受け付けるようにするものである。
【００２０】
請求項８の発明によると、バスアービトレーション装置は、リクエスタからそのアクセス要求の優先順位を上昇させるべき内容の信号を受けた場合は、そのリクエスタによるアクセス要求を受け付けるようにする。このため、リクエスタがアクセスを特に必要としているときには、そのリクエスタが優先されるような調停ができる。
【００２１】
請求項９の発明は、請求項１記載のバスアービトレーション装置において、前記内部状態信号を出力するリクエスタのうち少なくとも１つのリクエスタは、キャッシュメモリを有するものであり、前記キャッシュメモリを有するリクエスタが出力する内部状態信号は、前記キャッシュメモリのキャッシュヒット率に基づいて決定されるものである。
【００２２】
請求項９の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率を、アクセス要求の調停に反映させることができる。
【００２３】
請求項１０の発明は、請求項９記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の値未満の場合は、前記優先順位を上昇させるべきであることを示すように決定されるものである。
【００２４】
請求項１０の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率が低い場合は、そのリクエスタが優先されるような調停ができる。
【００２５】
請求項１１の発明は、請求項９記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、前記キャッシュヒット率が所定の第１の基準値未満である場合は、前記優先順位を上昇させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第１の基準値以上であり、かつ、所定の第２の基準値以下である場合は、前記優先順位を維持させるべきであることを示すように決定され、前記キャッシュヒット率が前記所定の第２の基準値より大きい場合は、前記優先順位を低下させるべきであることを示すように決定されるものである。
【００２６】
請求項１１の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率に応じた、アクセス要求の調停ができる。
【００２７】
請求項１２の発明は、請求項９記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第１のキャッシュヒット率より後に測定された第２のキャッシュヒット率が、前記第１のキャッシュヒット率より所定の値だけ低い基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定されるものである。
【００２８】
請求項１２の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率が所定の値以上に低下した場合は、そのリクエスタが優先されるような調停ができる。
【００２９】
請求項１３の発明は、請求項９記載のバスアービトレーション装置において、前記キャッシュメモリを有するリクエスタが出力する前記内部状態信号は、第１のキャッシュヒット率より後に測定された第２のキャッシュヒット率が、前記第１のキャッシュヒット率より所定の値だけ低い第１の基準値以下である場合は、前期優先順位を上昇させるべきであることを示すように決定され、前記第２のキャッシュヒット率が、前記第１の基準値より大きく、かつ、前記第１のキャッシュヒット率より所定の値だけ高い第２の基準値未満である場合は、前期優先順位を維持させるべきであることを示すように決定され、前記第２のキャッシュヒット率が、前記第２の基準値以上である場合は、前期優先順位を低下させるべきであることを示すように決定されるものである。
【００３０】
請求項１３の発明によると、アクセスを要求するリクエスタ内のキャッシュメモリのヒット率の変化に応じた、アクセス要求の調停ができる。
【００３１】
請求項１４の発明は、請求項１記載のバスアービトレーション装置において、前記内部状態信号を出力するリクエスタのうち少なくとも１つのリクエスタは、リクエスタ内部で発生した割り込みの制御を行う割り込み制御部を有するものであり、前記割り込み制御部を有するリクエスタが出力する内部状態信号は、前記割り込み制御部による割り込みの制御に基づいて決定されるものである。
【００３２】
請求項１４の発明によると、アクセスを要求するリクエスタ内の割り込みの発生を、アクセス要求の調停に反映させることができる。
【００３３】
請求項１５の発明は、請求項１４記載のバスアービトレーション装置において、前記割り込み制御部を有するリクエスタが出力する前記内部状態信号は、前記割り込みの発生から所定の期間内は、前期優先順位を上昇させるべきであることを示すように決定されるものである。
【００３４】
請求項１５の発明によると、アクセスを要求するリクエスタ内で割り込みが発生した場合は、所定の期間そのリクエスタが優先されるような調停ができる。
【００３５】
請求項１６の発明は、請求項１記載のバスアービトレーション装置において、前記共有資源は、前記アクセス要求の調停により許可されたアクセスに従って、前記共有バスとの間でデータの入出力を行うものである。
【００３６】
請求項１６の発明によると、調停により許可されたアクセスに対して、共有資源からデータを入出力させることができる。
【発明の効果】
【００３７】
本発明によれば、はじめに低い優先度を割り当てられたリクエスタであっても、その内部の状態をアクセス要求の調停に反映させ、優先度を高くすることができるので、アクセスのレイテンシが削減され、システムのリアルタイム性能を向上させることができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００３９】
（第１の実施形態）
図１は、本発明に係るバスシステム１の構成を示すブロック図である。図１のバスシステム１は、リクエスタ２，３，４と、共有資源としてのメモリ５と、バスアービトレーション装置（以下、アービトレーション装置と称する）６と、共有バス７とを備えている。なお、共有資源としてメモリ以外のものが実装されていてもよい。
【００４０】
リクエスタ２，３，４は、共有バス７との間のインタフェースとして、それぞれ共有バスインタフェース信号１２，１３，１４を入出力する。同様に、メモリ５は、共有バス７との間のインタフェースとして、共有バスインタフェース信号１５を入出力する。これらの信号により、リクエスタ２，３，４は、共有バス７を介してメモリ５にアクセスすることができる。
【００４１】
アービトレーション装置６は、リクエスタ２，３，４との間のインタフェースとして、それぞれアービトレーションインタフェース信号２２，２３，２４を入出力し、リクエスタ２，３，４による共有バス７を介したメモリ５へのアクセス要求を調停（アービトレーション）する。
【００４２】
アービトレーション装置６は、リクエスタ２，３，４からのアクセス要求が競合した場合の調停に用いる優先順序を、複数持つ。本実施形態では、アービトレーション装置６は、例えば以下の３つの優先順序を持つこととする。優先順序１はリクエスタ２、リクエスタ３、リクエスタ４の順に優先順位が高く、優先順序２はリクエスタ４、リクエスタ２、リクエスタ３の順に優先順位が高く、優先順序３はリクエスタ３、リクエスタ４、リクエスタ２の順に優先順位が高くなっている。
【００４３】
各時間においてどの優先順序が適用されるかは、システムにおいて各リクエスタが必要とする回数のデータ転送を満たすよう、あらかじめ決定される。なお、どの時間にどの優先順序を適用するかは固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、１つの優先順序が適用される期間の長さについても、レジスタ設定又はプログラムにより変更可能としてもよい。
【００４４】
リクエスタ２は、リクエスタ２の内部の状態を調停に反映させるために、内部状態信号３２をアービトレーション装置６に出力する。内部状態信号３２は、リクエスタ２のアクセス要求の優先順位を上昇させるべきであることを通知する第１の状態、通常の優先順位を維持させるべきであることを通知する第２の状態、又は、優先順位を低下させるべきであることを通知する第３の状態のいずれかを示す。
【００４５】
図２は、図１のリクエスタ２の構成を示すブロック図である。図２のリクエスタ２は、ＣＰＵコア２０１と、命令キャッシュ２０２と、データキャッシュ２０３と、バスインタフェース部２０４と、キャッシュヒット率観測部２０５と、割り込み制御部２０６と、内部状態信号生成部２０７とを備える。命令キャッシュ２０２及びデータキャッシュ２０３は、必要な容量のキャッシュメモリをそれぞれ有する。
【００４６】
ＣＰＵコア２０１は、図１のメモリ５から供給された命令を実行する。ＣＰＵコア２０１は、命令キャッシュ２０２及びデータキャッシュ２０３との間のインタフェースとして、ＣＰＵコアインタフェース信号２１０、２１１を入出力する。
【００４７】
命令キャッシュ２０２は、メモリ５に格納されている命令のコピーを保持し、データキャッシュ２０３は、メモリ５に格納されているデータのコピーを保持し、命令キャッシュ２０２及びデータキャッシュ２０３は、ＣＰＵコア２０１からの書き込みデータをそれぞれ保持する。命令キャッシュ２０２はキャッシュアクセス情報信号２２１を、データキャッシュ２０３はキャッシュアクセス情報信号２３１を、それぞれキャッシュヒット率観測部２０５に出力する。また、バスインタフェース部２０４との間のインタフェースとして、命令キャッシュ２０２はキャッシュインタフェース信号２２０を、データキャッシュ２０３はキャッシュインタフェース信号２３０を、それぞれ入出力する。
【００４８】
バスインタフェース部２０４は、図１の共有バス７を介してメモリ５へのアクセスを行う。バスインタフェース部２０４は、共有バス７との間のインタフェースとして共有バスインタフェース信号１２を入出力し、アービトレーション装置６との間のインタフェースとしてアービトレーションインタフェース信号２２を入出力する。
【００４９】
キャッシュヒット率観測部２０５は、キャッシュアクセス情報信号２２１及びキャッシュアクセス情報信号２３１に基づいて、所定の期間における命令キャッシュ２０２及びデータキャッシュ２０３のキャッシュヒット率をそれぞれ算出する。キャッシュヒット率観測部２０５は、内部状態信号生成部２０７に対し、命令キャッシュ２０２のヒット率をキャッシュヒット率情報信号２５０を出力することにより通知し、データキャッシュ２０３のヒット率をキャッシュヒット率情報信号２５１を出力することにより通知する。なお、ヒット率を算出する期間は、レジスタ設定又はプログラムにより変更可能としてもよい。
【００５０】
割り込み制御部２０６は、リクエスタ２で発生した、もしくはリクエスタ２に対して発生した割り込みの制御を行う。割り込み制御部２０６は、ＣＰＵコア２０１との間のインタフェースとして、割り込みインタフェース信号２１２を入出力する。また、所定の期間、割り込み通知信号２６０を出力することにより、割り込みの発生を内部状態信号生成部２０７に通知する。なお、全ての割り込みを、割り込み通知信号２６０によって通知する必要はなく、割り込みの種類、レジスタ設定、又はプログラムによりディスエーブル可能として、通知しない割り込みがあってもよい。また、通知される期間についても、レジスタ設定又はプログラムにより変更可能としてもよい。
【００５１】
内部状態生成部２０７は、キャッシュヒット率情報信号２５０、２５１、及び割り込み通知信号２６０に基づいて、内部状態信号３２を生成し、アービトレーション装置６に出力する。
【００５２】
図３は、本発明の第１の実施形態に係る図１のアービトレーション装置６による調停の処理の流れを示すフローチャートである。
【００５３】
初期状態はステップ６００１であり、システムが起動されたらステップ６００２に遷移する。
【００５４】
ステップ６００２では、アービトレーション装置６による調停に用いられる優先順序が優先順序１であるか否かが判定される。優先順序１であればステップ６００５に、そうでなければステップ６００３に遷移する。
【００５５】
ステップ６００３では、調停に用いられる優先順序が優先順序２であるか否かが判定される。優先順序２であればステップ６００６に、そうでなければステップ６００４に遷移する。
【００５６】
ステップ６００４では、調停に用いられる優先順序は自動的に優先順序３と判定し、ステップ６００８に遷移する。
【００５７】
ステップ６００５では、内部状態信号３２が優先順位の低下を指示する第３の状態であるかが判定され、そうであった場合は調停に用いられる優先順序を変更するためにステップ６０１２へ、そうでない場合はステップ６０１１へ遷移する。
【００５８】
ステップ６００６では、内部状態信号３２が優先順位の低下を指示する第３の状態であるかが判定され、そうであった場合は調停に用いられる優先順序を変更するためステップ６０１３へ、そうでない場合はステップ６００７へ遷移する。
【００５９】
ステップ６００７では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、そうであった場合はステップ６００９へ、そうでない場合はステップ６０１２へ遷移する。
【００６０】
ステップ６００８では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、そうであった場合はステップ６０１０へ、そうでない場合はステップ６０１３へ遷移する。
【００６１】
ステップ６００９では、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ２の優先順位を上げずにステップ６０１２に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ６０１１に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
【００６２】
ステップ６０１０でも同様に、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ２の優先順位を上げずにステップ６０１３に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ６０１２に遷移する。
【００６３】
ステップ６０１１では、優先順序１において最も優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６０２０に、そうでない場合はステップ６０１４に遷移する。
【００６４】
ステップ６０１２では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６０２２に、そうでない場合はステップ６０１５に遷移する。
【００６５】
ステップ６０１３では、優先順序３において最も優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６０２１に、そうでない場合はステップ６０１６に遷移する。
【００６６】
ステップ６０１４では、優先順序１において２番目に優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６０２１に、そうでない場合はステップ６０１７に遷移する。
【００６７】
ステップ６０１５では、優先順序２において２番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６０２０に、そうでない場合はステップ６０１８に遷移する。
【００６８】
ステップ６０１６では、優先順序３において２番目に優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６０２２に、そうでない場合はステップ６０１９に遷移する。
【００６９】
ステップ６０１７では、優先順序１において３番目に優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６０２２に、そうでない場合はステップ６０２３に遷移する。
【００７０】
ステップ６０１８では、優先順序２において３番目に優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６０２１に、そうでない場合はステップ６０２３に遷移する。
【００７１】
ステップ６０１９では、優先順序３において３番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６０２０に、そうでない場合はステップ６０２３に遷移する。
【００７２】
ステップ６０２０では、リクエスタ２の要求に許可を行い、リクエスタ２はメモリ５にアクセスする。アクセスが終了したらステップ６０２３に遷移する。
【００７３】
ステップ６０２１では、リクエスタ３の要求に許可を行い、リクエスタ３はメモリ５にアクセスする。アクセスが終了したらステップ６０２３に遷移する。
【００７４】
ステップ６０２２では、リクエスタ４の要求に許可を行い、リクエスタ４はメモリ５にアクセスする。アクセスが終了したらステップ６０２３に遷移する。
【００７５】
ステップ６０２３では、次のアクセス許可ができるまで待機し、アクセス可能になったらステップ６００２に遷移する。
【００７６】
図４は、本発明の第１の実施形態に係る図２の内部状態信号生成部２０７における内部状態信号３２を生成する処理の流れを示すフローチャートである。
【００７７】
初期状態はステップ２００１であり、システムが起動されたらステップ２００２に遷移する。
【００７８】
ステップ２００２では、割り込み通知信号２６０により割り込みの発生が通知されているか否かを判定する。通知されている場合はステップ２００９に、通知されていない場合はステップ２００３に遷移する。
【００７９】
ステップ２００３では、キャッシュヒット率情報信号２５０によって通知される命令キャッシュのヒット率が命令キャッシュの所定の第１の基準値を下回るか否かを判定する。下回る場合はステップ２００９に、そうでない場合はステップ２００４に遷移する。
【００８０】
ステップ２００４では、キャッシュヒット率情報信号２５１によって通知されるデータキャッシュのヒット率がデータキャッシュの所定の第１の基準値を下回るか否かを判定する。下回る場合はステップ２００９に、そうでない場合はステップ２００５に遷移する。
【００８１】
なお、命令キャッシュの第１の基準値及びデータキャッシュの第１の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第１の基準値とデータキャッシュの第１の基準値とを同じ値としなくてもよい。
【００８２】
ステップ２００５では、キャッシュヒット率情報信号２５０によって通知される命令キャッシュのヒット率が、命令キャッシュの所定の第２の基準値を上回るか否かを判定する。上回る場合はステップ２００６に、そうでない場合はステップ２００８に遷移する。命令キャッシュの第２の基準値は、命令キャッシュの第１の基準値よりも高い値とする。
【００８３】
ステップ２００６では、キャッシュヒット率情報信号２５１によって通知されるデータキャッシュのヒット率がデータキャッシュの所定の第２の基準値を上回るか否かを判定する。上回る場合はステップ２００７に、そうでない場合はステップ２００８に遷移する。データキャッシュの第２の基準値は、データキャッシュの第１の基準値よりも高い値とする。
【００８４】
なお、命令キャッシュの第２の基準値及びデータキャッシュの第２の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第２の基準値とデータキャッシュの第２の基準値とを同じ値としなくてもよい。
【００８５】
ステップ２００７では、内部状態信号３２を優先順位の低下を指示する第３の状態とする。処理が終了すると、ステップ２０１０に遷移する。
【００８６】
ステップ２００８では、内部状態信号３２を通常の優先順位の維持を指示する第２の状態とする。処理が終了すると、ステップ２０１０に遷移する。
【００８７】
ステップ２００９では、内部状態信号３２を優先順位の上昇を指示する第１の状態とする。処理が終了すると、ステップ２０１０に遷移する。
【００８８】
ステップ２０１０では、次のサイクルまで待機し、次のサイクルとなったらステップ２００２に遷移する。
【００８９】
なお、本実施形態ではリクエスタが３つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
【００９０】
また、本実施形態に係るバスシステム１は、単一のシステムＬＳＩ上で実現されてもよいし、複数のＬＳＩの組み合わせであってもよい。
【００９１】
（第２の実施形態）
図５は、本発明の第２の実施形態に係る図１のアービトレーション装置６における調停の処理の流れを示すフローチャートである。本実施形態においては、第１の実施形態とは、アービトレーション装置６による調停の制御が異なる。
【００９２】
本実施形態に係るアービトレーション装置６は、リクエスタ２，３，４からのアクセス要求が競合した場合の調停に用いる優先順序について、以下の３つを持つ。優先順序１はリクエスタ２、リクエスタ３（リクエスタ４の要求は受け付けない）の順に優先順位が高く、優先順序２はリクエスタ４、リクエスタ２（リクエスタ３の要求は受け付けない）の順に優先順位が高く、優先順序３はリクエスタ３、リクエスタ４（リクエスタ２の要求は受け付けない）の順に優先順位が高くなっている。
【００９３】
初期状態はステップ６１０１であり、システムが起動されたらステップ６１０２に遷移する。
【００９４】
ステップ６１０２では、本実施形態に係るアービトレーション装置６による調停に用いられる優先順序が優先順序１であるか否かが判定される。優先順序１であればステップ６１０５に、そうでなければステップ６１０３に遷移する。
【００９５】
ステップ６１０３では、調停に用いられる優先順序が優先順序２であるか否かが判定される。優先順序２であればステップ６１０６に、そうでなければステップ６１０４に遷移する。
【００９６】
ステップ６１０４では、調停に用いられる優先順序は自動的に優先順序３と判定し、ステップ６１０８に遷移する。
【００９７】
ステップ６１０５では、内部状態信号３２が優先順位の低下を指示する第３の状態であるかが判定され、そうであった場合は調停に用いられる優先順序を変更するためにステップ６１１６へ、そうでない場合はステップ６１１１へ遷移する。
【００９８】
ステップ６１０６では、内部状態信号３２が優先順位の低下を指示する第３の状態であるかが判定され、そうであった場合はリクエスタ２の優先順位を低下させるためにステップ６１１４へ、そうでない場合はステップ６１０７へ遷移する。
【００９９】
ステップ６１０７では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、そうであった場合はステップ６１０９へ、そうでない場合はステップ６１１２へ遷移する。
【０１００】
ステップ６１０８では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、そうであった場合はステップ６１１０へ、そうでない場合はステップ６１１６へ遷移する。
【０１０１】
ステップ６１０９では、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ２の優先順位を上げずにステップ６１１２に遷移する。そうでない場合はリクエスタ２の優先順位を上昇させるためにステップ６１１３に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
【０１０２】
ステップ６１１０でも同様に、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ２の優先順位を上げずにステップ６１１６に遷移する。そうでない場合はリクエスタ２の優先順位を上昇させるためにステップ６１１５に遷移する。
【０１０３】
ステップ６１１１では、優先順序１において最も優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６１２３に、そうでない場合はステップ６１１７に遷移する。
【０１０４】
ステップ６１１２では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６１２５に、そうでない場合はステップ６１１８に遷移する。
【０１０５】
ステップ６１１３では、優先順位が上昇されたリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６１２３に、そうでない場合はステップ６１１９に遷移する。
【０１０６】
ステップ６１１４では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６１２５に、そうでない場合はステップ６１２０に遷移する。
【０１０７】
ステップ６１１５では、優先順序３において最も優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６１２４に、そうでない場合はステップ６１２１に遷移する。
【０１０８】
ステップ６１１６では、優先順序３において最も優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６１２４に、そうでない場合はステップ６１２２に遷移する。
【０１０９】
ステップ６１１７では、優先順序１において２番目に優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６１２４に、そうでない場合はステップ６１２６に遷移する。
【０１１０】
ステップ６１１８では、優先順序２において２番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６１２３に、そうでない場合はステップ６１２６に遷移する。
【０１１１】
ステップ６１１９では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６１２５に、そうでない場合はステップ６１２６に遷移する。
【０１１２】
ステップ６１２０では、優先順序２において、リクエスタ２の優先順位を低下させたためにアクセス要求を受け付けることになったリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合はステップ６１２４に、そうでない場合はステップ６１２６に遷移する。
【０１１３】
ステップ６１２１では、優先順位が上昇されたリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６１２３に、そうでない場合はステップ６１２６に遷移する。
【０１１４】
ステップ６１２２では、優先順序３において２番目に優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６１２５に、そうでない場合はステップ６１２６に遷移する。
【０１１５】
ステップ６１２６では、次のアクセス許可ができるまで待機し、アクセス可能になったらステップ６１０２に遷移する。
【０１１６】
なお、本実施形態ではリクエスタが３つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
【０１１７】
（第３の実施形態）
図６は、本発明の第３の実施形態に係る図１のアービトレーション装置６における調停の処理の流れを示すフローチャートである。本実施形態においては、第１の実施形態とは、アービトレーション装置６による調停の制御が異なる。
【０１１８】
アービトレーション装置６は、リクエスタからのアクセス要求を保持するためのキューを有しており、リクエスタから要求が行われると、このキューに要求が格納される。複数のリクエスタによるアクセス要求が同一サイクル内に競合した場合は、所定の優先順序に基づいて調停が行われ、調停により決定された要求から順にキューに格納される。キューに格納された要求は、基本的には過去に格納されたものから順に、それぞれが対応するリクエスタにメモリ５へのアクセスが許可される。
【０１１９】
本実施形態に係るアービトレーション装置６が持つ、リクエスタ２，３，４からのアクセス要求が競合した場合の調停に用いる優先順序は、リクエスタ４、リクエスタ２、リクエスタ３の順に優先順位が高くなっている。
【０１２０】
初期状態はステップ６２０１であり、システムが起動されたらステップ６２０２に遷移する。
【０１２１】
ステップ６２０２では、本実施形態に係るアービトレーション装置６が持つ優先順序において、最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合ステップ６２０７に、そうでない場合ステップ６２０３に遷移する。
【０１２２】
ステップ６２０３では、本実施形態に係るアービトレーション装置６が持つ優先順序において、２番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合ステップ６２０５に、そうでない場合ステップ６２０４に遷移する。
【０１２３】
ステップ６２０４では、本実施形態に係るアービトレーション装置６が持つ優先順序において、３番目に優先度の高いリクエスタであるリクエスタ３からの要求が行われているかを判定する。リクエスタ３から要求があった場合ステップ６２１０に、そうでない場合ステップ６２１１に遷移する。
【０１２４】
ステップ６２０５では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、そうであった場合ステップ６２０６へ、そうでない場合はステップ６２０８へ遷移する。
【０１２５】
ステップ６２０６では、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はステップ６２０８に遷移する。そうでない場合はステップ６２０９に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
【０１２６】
ステップ６２０７では、リクエスタ４からの要求をキューの最後尾に格納し、ステップ６２１１に遷移する。
【０１２７】
ステップ６２０８では、リクエスタ２からの要求をキューの最後尾に格納し、ステップ６２１１に遷移する。
【０１２８】
ステップ６２０９では、リクエスタ２からの要求をキューの最後尾に格納し、その後、キューに格納されているリクエスタ２からの要求全てを所定のシフト幅だけ前方にシフトして、キューに格納されている要求の間の順序を変更する。シフトした後、ステップ６２１１に遷移する。なお、このシフト幅については、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
【０１２９】
ステップ６２１０では、リクエスタ３からの要求をキューの最後尾に格納し、ステップ６２１１に遷移する。
【０１３０】
ステップ６２１１では、メモリ５へのアクセスが行われているかが判定される。行われていればステップ６２１３へ、そうでなければステップ６２１２へ遷移する。
【０１３１】
ステップ６２１２では、キューの先頭にいる要求に該当するリクエスタに、メモリ５へのアクセスの許可を行う。その後ステップ６２１３に遷移する。
【０１３２】
ステップ６２１３では、次のサイクルになったかを判定する。次のサイクルであればステップ６２０２へ遷移し、そうでなければステップ６２１３で待機する。
【０１３３】
なお、本実施形態ではリクエスタが３つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
【０１３４】
（第４の実施形態）
図７は、本発明の第４の実施形態に係る図２の内部状態信号生成部２０７における内部状態信号３２を生成する処理の流れを示すフローチャートである。本実施形態においては、第１の実施形態とは、内部状態信号生成部２０７における内部状態信号３２を生成する処理が異なる。内部状態信号３２は、第１の実施形態と同様に、リクエスタ２のアクセス要求の優先順位を上昇させるべきであることを通知する第１の状態、通常の優先順位を維持させるべきであることを通知する第２の状態、又は、優先順位を低下させるべきであることを通知する第３の状態のいずれかを示す。
【０１３５】
初期状態はステップ２１０１であり、システムが起動されたらステップ２１０２に遷移する。
【０１３６】
ステップ２１０２では、図２の割り込み通知信号２６０により割り込みの発生が通知されているか否かを判定する。通知されている場合はステップ２１１０に、通知されていない場合はステップ２１０３に遷移する。
【０１３７】
ステップ２１０３では、図２のキャッシュヒット率情報信号２５０、２５１によって通知されるキャッシュヒット率を、サンプリングする時間であるか否かが判定される。サンプリングする時間であればステップ２１０４に、そうでなければステップ２１１１に遷移する。なお、このサンプリングを行う時間の間隔は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
【０１３８】
ステップ２１０４では、キャッシュヒット率情報信号２５０によって通知される命令キャッシュのヒット率が、前回サンプリングした命令キャッシュのヒット率より、命令キャッシュの所定の第３の基準値以上に下回るか否かを判定する。下回る場合はステップ２１１０に、そうでない場合はステップ２１０５に遷移する。
【０１３９】
ステップ２１０５では、キャッシュヒット率情報信号２５１によって通知されるデータキャッシュのヒット率が、前回サンプリングしたデータキャッシュのヒット率より、データキャッシュの所定の第３の基準値以上に下回るか否かを判定する。下回る場合はステップ２１１０に、そうでない場合はステップ２１０６に遷移する。
【０１４０】
なお、命令キャッシュの第３の基準値及びデータキャッシュの第３の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第３の基準値とデータキャッシュの第３の基準値とを同じ値としなくてもよい。
【０１４１】
ステップ２１０６では、キャッシュヒット率情報信号２５０によって通知される命令キャッシュのヒット率が、前回サンプリングした命令キャッシュのヒット率より、命令キャッシュの所定の第４の基準値以上に上回るか否かを判定する。上回る場合はステップ２１０７に、そうでない場合はステップ２１０９に遷移する。命令キャッシュの第４の基準値は、命令キャッシュの第３の基準値よりも高い値とする。
【０１４２】
ステップ２１０７では、キャッシュヒット率情報信号２５１によって通知されるデータキャッシュのヒット率が、前回サンプリングしたデータキャッシュのヒット率より、データキャッシュの所定の第４の基準値以上に上回るか否かを判定する。上回る場合はステップ２１０８に、そうでない場合はステップ２１０９に遷移する。データキャッシュの第４の基準値は、データキャッシュの第３の基準値よりも高い値とする。
【０１４３】
なお、命令キャッシュの第４の基準値及びデータキャッシュの第４の基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、命令キャッシュの第４の基準値とデータキャッシュの第４の基準値とを同じ値としなくてもよい。
【０１４４】
ステップ２１０８では、内部状態信号３２を優先順位の低下を指示する第３の状態とする。処理が終了すると、ステップ２１１１に遷移する。
【０１４５】
ステップ２１０９では、内部状態信号３２を通常の優先順位の維持を指示する第２の状態とする。処理が終了すると、ステップ２１１１に遷移する。
【０１４６】
ステップ２１１０では、内部状態信号３２を優先順位の上昇を指示する第１の状態とする。処理が終了すると、ステップ２１１１に遷移する。
【０１４７】
ステップ２１１１では、次のサイクルまで待機し、次のサイクルとなったらステップ２１０２に遷移する。
【０１４８】
（第５の実施形態）
図８は、本発明の第５の実施形態に係るバスシステム９の構成を示すブロック図である。図８のバスシステム９は、図１のバスシステム１において、リクエスタ３に代えてリクエスタ８を備える。
【０１４９】
リクエスタ８は、リクエスタ２と同様の構成であり、リクエスタ８の内部の状態を調停に反映させるために、内部状態信号３３をアービトレーション装置６に出力する。内部状態信号３３は、リクエスタ８のアクセス要求の優先順位を上昇させるべきであることを通知する第１の状態、通常の優先順位を維持させるべきであることを通知する第２の状態、又は、優先順位を低下させるべきであることを通知する第３の状態のいずれかを示す。
【０１５０】
本実施形態では、アービトレーション装置６は、例えば以下の３つの優先順序を持つこととする。優先順序１はリクエスタ２、リクエスタ８、リクエスタ４の順に優先順位が高く、優先順序２はリクエスタ４、リクエスタ２、リクエスタ８の順に優先順位が高く、優先順序３はリクエスタ８、リクエスタ４、リクエスタ２の順に優先順位が高くなっている。
【０１５１】
各時間においてどの優先順序が適用されるかは、システムにおいて各リクエスタが必要とする回数のデータ転送を満たすよう、あらかじめ決定される。
【０１５２】
図９は、本発明の第５の実施形態に係る図８のアービトレーション装置６における調停の処理の流れを示すフローチャートである。
【０１５３】
初期状態はステップ６３０１であり、システムが起動されたらステップ６３０２に遷移する。
【０１５４】
ステップ６３０２では、本実施形態に係るアービトレーション装置６による調停に用いられる優先順序が優先順序１であるか否かが判定される。優先順序１であればステップ６３０５に、そうでなければステップ６３０３に遷移する。
【０１５５】
ステップ６３０３では、調停に用いられる優先順序が優先順序２であるか否かが判定される。優先順序２であればステップ６３０６に、そうでなければステップ６３０４に遷移する。
【０１５６】
ステップ６３０４では、調停に用いられる優先順序は自動的に優先順序３と判定し、ステップ６３０８に遷移する。
【０１５７】
ステップ６３０５では、内部状態信号３２が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合はステップ６３１２へ、そうでない場合はステップ６３１１へ遷移する。
【０１５８】
ステップ６３０６では、内部状態信号３２が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合はステップ６３１５へ、そうでない場合はステップ６３０７へ遷移する。
【０１５９】
ステップ６３０７では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３０９へ、そうでない場合はステップ６３１３へ遷移する。
【０１６０】
ステップ６３０８では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３１０へ、そうでない場合はステップ６３１７へ遷移する。
【０１６１】
ステップ６３０９では、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ２の優先順位を上げずにステップ６３１３に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ６３１４に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。
【０１６２】
ステップ６３１０でも同様に、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ２の優先順位を上げずにステップ６３１７に遷移する。そうでない場合は調停に用いられる優先順序を変更するためステップ６３１６に遷移する。
【０１６３】
ステップ６３１１では、内部状態信号３３が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合はステップ６３３６へ、そうでない場合はステップ６３２０へ遷移する。
【０１６４】
ステップ６３１２では、内部状態信号３３が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合はステップ６３３７へ、そうでない場合はステップ６３３４へ遷移する。
【０１６５】
ステップ６３１３では、内部状態信号３３が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３１８へ、そうでない場合はステップ６３３７へ遷移する。
【０１６６】
ステップ６３１４では、内部状態信号３３が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３１９へ、そうでない場合はステップ６３３６へ遷移する。
【０１６７】
ステップ６３１５では、内部状態信号３３が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合はステップ６３３７へ、そうでない場合はステップ６３２１へ遷移する。
【０１６８】
ステップ６３１６では、内部状態信号３３が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合はステップ６３３５へ、そうでない場合はステップ６３３４へ遷移する。
【０１６９】
ステップ６３１７では、内部状態信号３３が優先順位の低下を指示する第３の状態であるかが判定され、第３の状態であった場合は、リクエスタ８の優先順位を低下させるためにステップ６３３８へ、そうでない場合はステップ６３３９へ遷移する。
【０１７０】
ステップ６３１８では、リクエスタ８のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ８に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合は、この期間ではリクエスタ８の優先順位を上げずにステップ６３３７に遷移する。そうでない場合は、リクエスタ２，８の優先順位を上昇させるためにステップ６３３８に遷移する。なお、この期間及び基準値は、固定の設定とする必要はなく、レジスタ設定又はプログラムにより変更可能としてもよい。また、リクエスタ８に対する期間及び基準値は、リクエスタ２に対するものと異なってもよい。
【０１７１】
ステップ６３１９でも同様に、リクエスタ８のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ８に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はこの期間ではリクエスタ８の優先順位を上げずにステップ６３３６に遷移する。そうでない場合はリクエスタ２，８の優先順位を上昇させるためにステップ６３３５に遷移する。
【０１７２】
ステップ６３２０では、内部状態信号３３が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３２２へ、そうでない場合はステップ６３３５へ遷移する。
【０１７３】
ステップ６３２１では、内部状態信号３３が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３２３へ、そうでない場合はステップ６３３８へ遷移する。
【０１７４】
ステップ６３２２では、リクエスタ８のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ８に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合は、この期間ではリクエスタ８の優先順位を上げずにステップ６３３５に遷移する。そうでない場合は、リクエスタ８の優先順位を上昇させるためにステップ６３２４に遷移する。
【０１７５】
ステップ６３２３では、リクエスタ８のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ８に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合はステップ６３３８に遷移する。そうでない場合は、リクエスタ８の優先順位を上昇させるためにステップ６３３９に遷移する。
【０１７６】
ステップ６３２４では、内部状態信号３２が優先順位の上昇を指示する第１の状態であるかが判定され、第１の状態であった場合はステップ６３２５へ、そうでない場合はステップ６３３４へ遷移する。
【０１７７】
ステップ６３２５では、リクエスタ２のアクセスが他のリクエスタが必要とするアクセスを妨げないようにするため、リクエスタ２に許可されたアクセス回数が、所定の期間内に所定の基準値を上回ったかを判定する。上回る場合は、この期間ではリクエスタ２の優先順位を上げずにステップ６３３４に遷移する。そうでない場合は、リクエスタ２の優先順位を上昇させるためにステップ６３３５に遷移する。
【０１７８】
ステップ６３３４では、優先順位が上昇されたリクエスタ８からの要求が行われているかを判定する。リクエスタ８から要求があった場合はステップ６３５３に、そうでない場合はステップ６３４０に遷移する。
【０１７９】
ステップ６３３５では、優先順序１において最も優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６３５２に、そうでない場合はステップ６３４１に遷移する。
【０１８０】
ステップ６３３６では、優先順位が上昇されたリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６３５２に、そうでない場合はステップ６３４２に遷移する。
【０１８１】
ステップ６３３７では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６３５４に、そうでない場合はステップ６３４３に遷移する。
【０１８２】
ステップ６３３８では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６３５４に、そうでない場合はステップ６３４４に遷移する。
【０１８３】
ステップ６３３９では、優先順序３において最も優先度の高いリクエスタであるリクエスタ８からの要求が行われているかを判定する。リクエスタ８から要求があった場合はステップ６３５３に、そうでない場合はステップ６３４５に遷移する。
【０１８４】
ステップ６３４０では、優先順序１において最も優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６３５２に、そうでない場合はステップ６３４６に遷移する。
【０１８５】
ステップ６３４１では、優先順序１において２番目に優先度の高いリクエスタであるリクエスタ８からの要求が行われているかを判定する。リクエスタ８から要求があった場合はステップ６３５３に、そうでない場合はステップ６３４７に遷移する。
【０１８６】
ステップ６３４２では、優先順序２において最も優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６３５４に、そうでない場合はステップ６３４８に遷移する。
【０１８７】
ステップ６３４３では、優先順序２において２番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６３５２に、そうでない場合はステップ６３４９に遷移する。
【０１８８】
ステップ６３４４では、優先順序３において最も優先度の高いリクエスタであるリクエスタ８からの要求が行われているかを判定する。リクエスタ８から要求があった場合はステップ６３５３に、そうでない場合はステップ６３５０に遷移する。
【０１８９】
ステップ６３４５では、優先順序３において２番目に優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６３５４に、そうでない場合はステップ６３５１に遷移する。
【０１９０】
ステップ６３４６では、優先順序１において３番目に優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６３５４に、そうでない場合はステップ６３５５に遷移する。
【０１９１】
ステップ６３４７では、優先順序１において３番目に優先度の高いリクエスタであるリクエスタ４からの要求が行われているかを判定する。リクエスタ４から要求があった場合はステップ６３５４に、そうでない場合はステップ６３５５に遷移する。
【０１９２】
ステップ６３４８では、優先順序２において３番目に優先度の高いリクエスタであるリクエスタ８からの要求が行われているかを判定する。リクエスタ８から要求があった場合はステップ６３５３に、そうでない場合はステップ６３５５に遷移する。
【０１９３】
ステップ６３４９では、優先順序２において３番目に優先度の高いリクエスタであるリクエスタ８からの要求が行われているかを判定する。リクエスタ８から要求があった場合はステップ６３５３に、そうでない場合はステップ６３５５に遷移する。
【０１９４】
ステップ６３５０では、優先順序３において３番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６３５２に、そうでない場合はステップ６３５５に遷移する。
【０１９５】
ステップ６３５１では、優先順序３において３番目に優先度の高いリクエスタであるリクエスタ２からの要求が行われているかを判定する。リクエスタ２から要求があった場合はステップ６３５２に、そうでない場合はステップ６３５５に遷移する。
【０１９６】
ステップ６３５２では、リクエスタ２の要求に許可を行い、リクエスタ２はメモリ５にアクセスする。アクセスが終了したらステップ６３５５に遷移する。
【０１９７】
ステップ６３５３では、リクエスタ８の要求に許可を行い、リクエスタ８はメモリ５にアクセスする。アクセスが終了したらステップ６３５５に遷移する。
【０１９８】
ステップ６３５４では、リクエスタ３の要求に許可を行い、リクエスタ３はメモリ５にアクセスする。アクセスが終了したらステップ６３５５に遷移する。
【０１９９】
ステップ６３５５では、次のアクセス許可ができるまで待機し、アクセス可能になったらステップ６３０２に遷移する。
【０２００】
なお、本実施形態ではリクエスタが３つの場合を例に示したが、リクエスタの数や、調停における具体的な優先順位はこの例の通りでなくてもよい。
【産業上の利用可能性】
【０２０１】
以上説明したように、本発明は、ＣＰＵ等のリクエスタについて、内部状態をアクセス要求の調停に反映し、アクセスのレイテンシを減らすことができるので、マルチメディア処理を行うシステムをはじめ、複数のリクエスタが共有資源へアクセスする各種のシステム等について有用である。
【図面の簡単な説明】
【０２０２】
【図１】本発明に係るバスシステム１の構成を示すブロック図である。
【図２】図１のリクエスタ２の構成を示すブロック図である。
【図３】本発明の第１の実施形態に係る図１のアービトレーション装置６による調停の処理の流れを示すフローチャートである。
【図４】本発明の第１の実施形態に係る図２の内部状態信号生成部２０７における内部状態信号３２を生成する処理の流れを示すフローチャートである。
【図５】本発明の第２の実施形態に係る図１のアービトレーション装置６における調停の処理の流れを示すフローチャートである。
【図６】本発明の第３の実施形態に係る図１のアービトレーション装置６における調停の処理の流れを示すフローチャートである。
【図７】本発明の第４の実施形態に係る図２の内部状態信号生成部２０７における内部状態信号３２を生成する処理の流れを示すフローチャートである。
【図８】本発明の第５の実施形態に係るバスシステム９の構成を示すブロック図である。
【図９】本発明の第５の実施形態に係る図８のアービトレーション装置６における調停の処理の流れを示すフローチャートである。
【符号の説明】
【０２０３】
１，９  バスシステム
２，３，４，８  リクエスタ
５  メモリ（共有資源）
６  アービトレーション装置（バスアービトレーション装置）
７  共有バス
３２，３３  内部状態信号
【図１】
2008040650.tif 000003
【図２】
2008040650.tif 000004
【図３】
2008040650.tif 000005
【図４】
2008040650.tif 000006
【図５】
2008040650.tif 000007
【図６】
2008040650.tif 000008
【図７】
2008040650.tif 000009
【図８】
2008040650.tif 000010
【図９】
2008040650.tif 000011