JP2004199404A - Bus arbitration device and semiconductor integrated circuit provided with it - Google Patents
Bus arbitration device and semiconductor integrated circuit provided with it Download PDFInfo
- Publication number
- JP2004199404A JP2004199404A JP2002367281A JP2002367281A JP2004199404A JP 2004199404 A JP2004199404 A JP 2004199404A JP 2002367281 A JP2002367281 A JP 2002367281A JP 2002367281 A JP2002367281 A JP 2002367281A JP 2004199404 A JP2004199404 A JP 2004199404A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- basic
- module
- cycle
- arbitration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、複数のモジュールがバスを介して接続されている半導体集積回路に関し、特に、前記複数のモジュールからのバス要求を調停するバス調停装置に関する。
【0002】
【従来の技術】
従来は、複数のモジュール間でバスを介したデータ転送を行うとき、IP側がバスの使用権利を獲得する方法として優先順位を設定し、又その順位を動的に変更して、異なる輻輳条件に対応していた。
【0003】
なお、複数のバスリクエスタの優先順位を動的に制御する従来の多重化装置が、例えば特許文献1に開示されている。
【0004】
【特許文献1】
特開平5−37480号公報
【0005】
【発明が解決しようとする課題】
しかし、バスの調停方法では、固定された時間を単位として時分割にバスを割り当てていたために、優先度の低いモジュールがバスを要求してもバスの使用権利の獲得が難しい場合があった。
【0006】
【課題を解決するための手段】
上記の課題を解決するために、本発明のバス調停装置は、バスに接続された複数のモジュールからバス要求を受け、基本バスサイクルを時分割して各モジュールに占有させるバス調停装置において、各基本バスサイクルにおける各モジュールのバス要求状況に関する情報を取得して記憶するバス要求状況記憶部と、各基本バスサイクルでの各モジュールのバス占有期間の比率を、当該基本バスサイクルの直前の基本バスサイクルを含む少なくとも1回の過去の基本バスサイクルから取得され前記バス要求状況記憶部に記憶されている前記情報に基づいて決定する調停処理部とを備えたことを特徴とする。
【0007】
【発明の実施の形態】
上述した本発明のバス調停装置(第1の構成)は、過去の基本バスサイクルにおけるバス要求回数に応じて、各基本バスサイクルにおけるバス占有時間を決定することにより、バスの利用状況に応じて動的かつ適切にバス調停を行うことができる。
【0008】
また、上述した第1の構成にかかるバス調停装置において、前記バス要求状況に関する情報として、各基本バスサイクルにおける各モジュールのバス要求の回数を用いることができる。あるいは、バス要求状況に関する情報として、各基本バスサイクルにおける各モジュールのバス要求の回数と、前記バス要求の各々のタイミングとを用いることもできる。
【0009】
上述した第1の構成のバス調停装置において、前記調停処理部が、各基本バスサイクルにおける各モジュールからのバス要求を監視し、各モジュールに割り当てた占有期間までに当該モジュールがバス要求を出さない場合は、当該モジュールへのバス割り当てを解消することが好ましい。これにより、全体としてのバス転送効率を向上させることができる。このように前記調停処理部が、各基本バスサイクルにおいていずれかのモジュールへのバス割り当てを解消した場合、当該基本バスサイクルの長さを短縮すれば、転送効率をさらに向上させることができるので、より好ましい。
【0010】
また、上記の課題を解決するために、本発明の第2の構成にかかるバス調停装置は、バスに接続された複数のモジュールからバス要求を受け、基本バスサイクルを時分割して各モジュールに占有させるバス調停装置において、各基本バスサイクルにおける各モジュールのバス要求状況に関する情報を取得して少なくとも一時的に記憶するバス要求状況記憶部と、前記バス要求状況記憶部に記憶された情報と予め定められた条件とを比較することにより、各モジュールからのバス要求の優先度を判断し、相対的に優先度が高いと判断されるモジュールのバス要求が優先処理されるように、当該基本バスサイクル内または次の基本バスサイクル内のバス割り当てを変更する調停処理部を備えたことを特徴とする。
【0011】
この構成により、バスの利用状況および各バス要求の優先度に応じて動的かつ適切にバス調停を行うことができる。
【0012】
第2の構成のバス調停装置において、前記調停処理部が、各基本バスサイクルにおいて、相対的に優先度が低いと判断されるモジュールへ割り当てた占有期間を、相対的に優先度が高いと判断されるモジュールの占有期間に変更する構成としても良い。または、前記調停処理部が、各基本バスサイクルにおいて、相対的に優先度が低いと判断されるモジュールへ割り当てた占有期間の前に、相対的に優先度が高いと判断されるモジュールの占有期間を挿入しても良く、この場合に、当該基本バスサイクルの長さを伸張することがさらに好ましい。あるいは、前記調停処理部が、各基本バスサイクルにおいて、相対的に優先度が高いと判断されるモジュールへ割り当てた占有期間の順序を、相対的に優先度が低いと判断されるモジュールへ割り当てた占有期間よりも時系列的に前になるよう入れ替えることも可能である。
【0013】
第2の構成のバス調停装置において、前記調停処理部が、前記次の基本バスサイクルの先頭において、相対的に優先度が低いと判断されるモジュールへ割り当てるべき占有期間を、相対的に優先度が高いと判断されるモジュールの占有期間に変更する構成としても良い。または、前記調停処理部が、前記次の基本バスサイクルの先頭において、相対的に優先度が低いと判断されるモジュールへ割り当てるべき占有期間の前に、相対的に優先度が高いと判断されるモジュールの占有期間を挿入しても良く、この場合、当該占有期間を挿入した基本バスサイクルの長さを伸張することがさらに好ましい。あるいは、前記調停処理部が、次の基本バスサイクルにおいて、相対的に優先度が高いと判断されるモジュールの占有期間が先頭になるように、当該基本バスサイクル内で各モジュールの占有期間を入れ替える構成としても良い。
【0014】
また、上記の課題を解決するために、本発明の第3の構成にかかるバス調停装置は、バスに接続された複数のモジュールからバス要求を受け、基本バスサイクルを時分割して各モジュールに占有させるバス調停装置において、各モジュールから、バス要求を出してからバスを獲得するまでの許容時間とバスの使用希望時間のデータを取得し、前記データを用いて次回の基本バスサイクルでの各モジュールのバス占有時間の比率を決定する調停処理部を備え、前記調停処理部は、前記許容時間が経過するまでに転送を開始できない場合にはバス要求を破棄して基本バスサイクルを短縮することを特徴とする。
【0015】
この構成により、各モジュールからのバス要求の条件に応じて動的かつ適切にバス調停を行うことができる。
【0016】
第3の構成にかかるバス調停装置において、各モジュールは、バス要求を出す場合、当該バス要求が破棄されて良いか否かを表す破棄可否データを前記調停処理部に送り、前記調停処理部は、破棄可否データが破棄不可を示す場合は、当該バス要求を破棄せず、基本バスサイクルを延長して当該バス要求に対してバス割り当てを行うことが好ましい。
【0017】
また、上述したいずれかの構成のバス調停装置を備えた半導体集積回路も、本発明の一形態である。
【0018】
以下、本発明の具体的な実施形態について、図面を用いて説明する。
【0019】
図1は、本実施形態の半導体集積回路の構成を示すブロック図である。図1において、101〜104はマスター側IPであり、105・106はスレーブ側IPであり、107はデータを共有するためのバスであり、108はバス調停機能を有したアービタである。この半導体集積回路において、マスター側IP101〜104からアービタ108に対してバス要求信号が出されると、アービタ108は、基本バスサイクルを時分割してIP101〜104に割り当てる。
【0020】
アービタ108は、バス要求の回数、タイミング、または優先的バス要求の有無など、各IPからのバス要求に関するデータを、少なくとも一時的に記憶部108aに保存しておく。調停処理部108bは、記憶部108aのデータに基づいて、それぞれの基本バスサイクルにおけるバス割り当てを行う。
【0021】
以下に、本実施形態にかかるバス調停装置における調停処理の具体例について、図2〜図8を参照しながら説明する。
【0022】
(第1の実施形態)
第1の実施形態では、基本バスサイクル毎に、各IPからのバス要求回数をアービタ108の記憶部108aに記憶しておき、調停処理部108bが、各基本バスサイクルにおけるバス割り当てを、その1つ前の基本バスサイクルにおけるバス要求回数に応じて行う。
【0023】
図2に示すように、ある基本バスサイクル(t2)において、IP102からのバス要求回数が増え、IP101、IP103、およびIP104からのバス要求回数の変化がなかったものとする。調停処理部108bは、各IPからのバス要求回数を、その基本バスサイクルにおけるバス要求回数の総和で割ることで、次回の基本バスサイクル(t3)におけるバス占有時間の比率を比例配分で求める。すなわち、図2に示す例では、基本バスサイクルt3において、IP101、IP102、IP103、およびIP104のそれぞれに対して、1:2:1:1の割合で、バス占有時間が与えられることとなる。なお、図2において、▲1▼は、IP101に割り当てられた占有時間を表し、▲2▼〜▲4▼は同様に、IP102〜IP104のそれぞれに割り当てられた占有時間を表す。後述する図3〜図8においても同様とする。
【0024】
このように、過去の基本バスサイクルにおけるバス要求回数に応じて、各基本バスサイクルにおけるバス占有時間を決定することにより、バスの利用状況に応じて動的かつ適切にバス調停を行うことができる。
【0025】
なお、図2の例では、各基本バスサイクルにおけるバス占有時間を決定するために、直前の1つの基本バスサイクルにおけるバス要求回数を用いたが、例えば、直前の2つまたはそれ以上の基本バスサイクルにおけるバス要求回数の統計を用いても良い。あるいは、直前ではなく2つ以上前の基本バスサイクルの統計を用いることも可能である。また、バス要求回数に基づいてバス占有時間を単純に比例配分する以外に、例えば直前の2つまたは3つ以上の基本バスサイクルにおけるバス要求回数の増減や、各IPまたは各バス要求の優先度等、種々の要素をも考慮して、バス占有時間を決定してもかまわない。
【0026】
(第2の実施形態)
第2の実施形態では、基本バスサイクル毎に、各IPからのバス要求回数およびそのタイミングを、アービタ108の記憶部108aに記憶しておき、調停処理部108bが、各基本バスサイクルにおけるバス割り当てを、その1つ前の基本バスサイクルにおけるバス要求回数およびそのタイミングに応じて行う。
【0027】
図3に示すように、ある基本バスサイクル(t2)において、IP104、IP103、IP102、IP101、IP102の順に合計5回のバス要求があったものとする。記憶部108aには、IP101〜104のそれぞれから基本バスサイクルt2においてバス要求が出された回数と、バス要求信号が出されたタイミングが記憶されている。
【0028】
調停処理部108bは、基本バスサイクルt3におけるバス割り当てを、以下のように決定する。まず、基本バスサイクルt3の長さを、基本バスサイクルt2におけるバス要求回数の総和で割ることにより、各IPに占有させる単位時間の長さを決定する。そして、基本バスサイクルt2におけるバス要求信号のタイミング(順序)に従って、前記の単位時間毎に、各IPにバスを占有させる。
【0029】
これにより、図3に示すように、基本バスサイクルt2におけるバス要求回数の総和が5回であった場合、基本バスサイクルt3の長さが5等分され、基本バスサイクルt2におけるバス要求の順(IP104、IP103、IP102、IP101、IP102の順)に、バスの占有が割り当てられる。
【0030】
このように調停処理部108bが調停を行うことにより、バスの利用状況に応じて動的かつ適切にバス調停を行うことができる。
【0031】
なお、上記の説明では、バス占有の単位時間を決定するために、直前の1つの基本バスサイクルにおけるバス要求回数を用いたが、例えば、直前の2つまたはそれ以上の基本バスサイクルにおけるバス要求回数の統計を用いても良い。あるいは、直前ではなく2つ以上前の基本バスサイクルの統計を用いることも可能である。また、各IPに割り当てるバス占有時間は均一でなくても良く、各IPの優先度等の種々の要素をも考慮して決定しても良い。
【0032】
(第3の実施形態)
第3の実施形態では、一旦割り当てられたスケジュールに従って基本バスサイクルが開始した後に、各IPからのバス要求の状況に応じて、その基本バスサイクルにおけるバス割り当てのスケジュールを変更する方法である。言い換えれば、調停処理部108bが、各基本バスサイクル内において動的にバス割り当てを変更する。
【0033】
例えば、図4に示す基本バスサイクルt2に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられ、この基本バスサイクルt2が開始された後に、この基本バスサイクルt2において、IP102が自らのバス占有開始前の所定時刻までにアービタ108へバス要求信号を出さなかったものとする。この場合、調停処理部108bは、図4に示すように、基本バスサイクルt2におけるIP102の割り当て時間をなくし、基本バスサイクルt2の長さを短縮する。
【0034】
また、例えば、図5に示す基本バスサイクルt2に関して、IP104、IP103、IP102、IP101、IP102の順にバス占有時間が割り当てられ、この基本バスサイクルt2が開始された後に、この基本バスサイクルt2において、IP102が自らの2回目のバス占有開始前の所定時刻までにバス要求信号を出さなかったものとする。この場合は、調停処理部108bは、図5に示すように、基本バスサイクルt2におけるIP102の2回目の割り当て時間をなくし、基本バスサイクルt2の長さを短縮する。
【0035】
このように調停処理部108bが調停を行うことにより、バスの利用状況に応じて動的かつ適切にバス調停を行うことができる。この結果、システム全体としてバスサイクルの高速化を図ることができる。
【0036】
なお、上記の説明では、所定の時刻までにバス要求を出さなかったIPへの割り当て時間をなくして基本バスサイクルを短縮するものとしたが、基本バスサイクルを短縮せずに、当該IPへの割り当て時間を他のIPへ割り当てることとしても良い。
【0037】
また、各基本バスサイクルに関して予めバス割り当てを行う方法としては、第1または第2の実施形態で説明したように過去の統計を用いた割り当て方法を用いても良いが、これに限らず任意の割り当て方法を用いることができる。
【0038】
(第4の実施形態)
第4の実施形態では、一旦割り当てられたスケジュールに従って基本バスサイクルが開始した後に、各IPからのバス要求信号の状況に応じて各IPの優先度を判断し、この優先度に応じて、その基本バスサイクルにおけるバス割り当てのスケジュールを変更する。すなわち、第4の実施形態も、調停処理部108bが、各基本バスサイクル内で動的にバス割り当てを変更する方法である。
【0039】
ここで、例えば、ある基本バスサイクル(t2)に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられていたものとする。そして、図6(a)に示すように、例えばIP104のバス転送中に、IP102からバス要求信号が単位時間に複数回出力された場合、調停処理部108bは、このIP102に対して高い優先度を与えるために、次のバス占有時間(ここではIP103に割り当てられていた時間)を、IP102の占有時間とするように割り当てを変更する。
【0040】
すなわち、各IPは、バス要求を行う際に、予め定められた条件(この例では単位時間当たりに出力するバス要求信号の回数)に従ってそのバス要求の優先度を表す。そして、調停処理部108bは、各IPからのバス要求信号を、前記の予め定められた条件と比較することにより、各IPからのバス要求の優先度を判断する。なお、複数の優先度を表現できるように前記の条件を設定し、例えば、単位時間当たりのバス要求信号の回数が多いほどより高い優先度を表すものとしても良い。
【0041】
なお、各基本バスサイクルに関して予めバス割り当てを行う方法としては、第1または第2の実施形態で説明したように過去の統計を用いた割り当て方法を用いても良いが、これに限らず任意の割り当て方法を用いることができる。
【0042】
ここで、前述の図6(a)で示した例の他に、優先度が高いと判断されたバス要求を優先的に処理するための方法の例を、図6(b)および(c)に示す。
【0043】
図6(b)に示す例では、基本バスサイクルt2に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられていたものとする。そして、例えばIP104のバス転送中に、IP102からバス要求信号が単位時間に複数回出力された場合、調停処理部108bは、このIP102に対して高い優先度を与えてバス転送を実行させるために、次のバス占有時間(ここではIP103に割り当てられていた時間)の前にIP102の占有時間を挿入するように、割り当てを変更する。これに伴い、基本バスサイクルt2の全体の長さは延長される。
【0044】
図6(c)に示す例でも、同様に、基本バスサイクルt2に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられていたものとする。そして、例えばIP104のバス転送中に、IP102からバス要求信号が単位時間に複数回出力された場合、調停処理部108bは、このIP102に対して高い優先度を与えてバス転送を実行させるために、次のバス占有時間(ここではIP103に割り当てられていた時間)と、IP102に本来割り当てられていたバス占有時間とを入れ替えるように、バス割り当てを変更する。
【0045】
以上のように、各基本バスサイクルにおいて、調停処理部108bが、各モジュールからのバス要求の優先度を考慮して動的にバス割り当てを変更することにより、バスの利用状況に応じて動的かつ適切にバス調停を行うことができる。
【0046】
(第5の実施形態)
第5の実施形態では、一旦割り当てられたスケジュールに従って基本バスサイクルが開始した後に、各IPからのバス要求信号の状況に応じて各IPの優先度を判断し、この優先度に応じて、次の基本バスサイクルにおけるバス割り当てのスケジュールを決定(既に決定されている場合は変更)する。
【0047】
ここで、例えば、ある基本バスサイクル(t3)に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられていたものとする。そして、図7(a)に示すように、基本バスサイクルt2の最後の方(ここでは、ここではIP101により基本バスサイクルt2の最後のバス転送が実行されているとき)において、IP102からバス要求信号が単位時間に複数回出力された場合、調停処理部108bは、このIP102に対して高い優先度を与えるために、次の基本バスサイクルt3の先頭のバス占有時間(ここではIP104に割り当てられていた時間)を、IP102の占有時間とするように割り当てを変更する。
【0048】
すなわち、前述の第4の実施形態と同様に、各IPは、バス要求を行う際に、予め定められた条件(この例では単位時間当たりに出力するバス要求信号の回数)に従ってそのバス要求の優先度を表す。そして、調停処理部108bは、各IPからのバス要求信号を、前記の予め定められた条件と比較することにより、各IPからのバス要求の優先度を判断する。なお、複数の優先度を表現できるように前記の条件を設定し、例えば、単位時間当たりのバス要求信号の回数が多いほどより高い優先度を表すものとしても良い。
【0049】
なお、各基本バスサイクルに関して予めバス割り当てを行う方法としては、第1または第2の実施形態で説明したように過去の統計を用いた割り当て方法を用いても良いが、これに限らず任意の割り当て方法を用いることができる。
【0050】
ここで、前述の図7(a)で示した例の他に、優先度が高いと判断されたバス要求を優先的に処理するための方法の例を、図7(b)および(c)に示す。
【0051】
図7(b)に示す例では、基本バスサイクルt3に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられていたものとする。そして、例えば基本バスサイクルt2の最後のバス転送中に、IP102からバス要求信号が単位時間に複数回出力された場合、調停処理部108bは、このIP102に対して高い優先度を与えてバス転送を実行させるために、次の基本バスサイクルt3の先頭に、IP102の占有時間を挿入する。これに伴い、基本バスサイクルt3の全体の長さは延長される。
【0052】
図7(c)に示す例でも、同様に、基本バスサイクルt3に関して、IP104、IP103、IP102、IP101の順にバス占有時間が割り当てられていたものとする。そして、例えば基本バスサイクルt2の最後のバス転送中に、IP102からバス要求信号が単位時間に複数回出力された場合、調停処理部108bは、このIP102に対して高い優先度を与えてバス転送を実行させるために、次の基本バスサイクルt3の先頭をIP102に割り当てるために、基本バスサイクルt3内において、IP104に割り当てられていた占有時間と、IP102に割り当てられていた占有時間とを入れ替える。
【0053】
以上のように、調停処理部108bが、各モジュールからのバス要求の優先度を考慮して、次の基本バスサイクルにおけるバス割り当てを動的に変更することにより、バスの利用状況に応じて動的かつ適切にバス調停を行うことができる。
【0054】
(第6の実施形態)
第6の実施形態では、各IPは、バス要求を出すときに、そのバス要求が受理されるまでIPが待てる時間(許容時間)を表す信号と、バス占有後に転送に必要なサイクルを表す信号とをアービタ108に出す。調停処理部108bは、これらの信号により与えられる情報に基づいてバス割り当てを行う。
【0055】
例えば、図8に示すように、IP101、IP102、IP103からそれぞれバス要求があったものとする。さらに、IP101からのバス要求信号が、許容時間として“1”を表す信号と、必要サイクルとして“2”を表す信号を伴っているものとする。IP102からのバス要求信号が、許容時間として“5”を表す信号と、必要サイクルとして“3”を表す信号を伴っているものとする。IP103からのバス要求信号が、許容時間として“4”を表す信号と、必要サイクルとして“1”を表す信号を伴っているものとする。この場合、調停処理部108bは、これらの許容時間および必要サイクルが満たされるように、次の基本バスサイクルにおける割り当てを、IP101が2サイクル、次にIP102が1サイクル、その次にIP102が3サイクルとなるようにする。
【0056】
なお、調停処理部108bは、与えられた許容時間までに転送を開始できない場合には、そのバス要求信号を破棄する。さらに、このようにバス要求信号を破棄した場合は、基本バスサイクルを短縮することで、バススループットを向上させることができる。この場合、各IPは、必ず転送しなくてはならないデータ等、バス要求を破棄してはならないデータの転送に関しては、許容時間として“0”を設定する。調停処理部108bは、許容時間として“0”が設定されたバス要求については、基本バスサイクルを延長してでもバス転送を行う。
【0057】
【発明の効果】
以上のように、本発明により、アービタが、各IPからの1つ以上前のバス要求の回数やタイミングを計数しておき、その回や次回の基本バスサイクルに、その統計データを反映させることにより、例えば複数のアプリケーションがいろいろな組み合わせで同時に動作するLSI等において、様々な輻輳条件に対して動的に適応するバス調停装置を提供し、バスのスループットを向上させることができる。
【図面の簡単な説明】
【図1】本発明のバス調停装置を備えた半導体集積回路の構成例を示すブロック図
【図2】本発明のバス調停装置によるバス調停処理の一例の説明図
【図3】本発明のバス調停装置によるバス調停処理の一例の説明図
【図4】本発明のバス調停装置によるバス調停処理の一例の説明図
【図5】本発明のバス調停装置によるバス調停処理の一例の説明図
【図6】本発明のバス調停装置によるバス調停処理の一例の説明図
【図7】本発明のバス調停装置によるバス調停処理の一例の説明図
【図8】本発明のバス調停装置によるバス調停処理の一例の説明図
【符号の説明】
101〜104 IP(マスター側)
105,106 IP(スレーブ側)
107 バス
108 バス調停装置
108a 記憶部
108b 調停処理部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a semiconductor integrated circuit in which a plurality of modules are connected via a bus, and more particularly, to a bus arbitration device that arbitrates a bus request from the plurality of modules.
[0002]
[Prior art]
Conventionally, when performing data transfer between a plurality of modules via a bus, the IP side sets priorities as a method of acquiring the right to use the bus, and dynamically changes the order to meet different congestion conditions. Was compatible.
[0003]
A conventional multiplexer that dynamically controls the priority of a plurality of bus requesters is disclosed in, for example,
[0004]
[Patent Document 1]
JP-A-5-37480
[Problems to be solved by the invention]
However, in the bus arbitration method, since the bus is allocated in a time-division manner in units of a fixed time, it may be difficult to obtain the right to use the bus even if a low priority module requests the bus.
[0006]
[Means for Solving the Problems]
In order to solve the above-described problems, a bus arbitration device of the present invention is a bus arbitration device that receives a bus request from a plurality of modules connected to a bus, and divides a basic bus cycle by time to occupy each module. A bus request status storage unit for acquiring and storing information on a bus request status of each module in a basic bus cycle, and a ratio of a bus occupation period of each module in each basic bus cycle to a basic bus immediately before the basic bus cycle. An arbitration processing unit that is obtained from at least one past basic bus cycle including a cycle and that is determined based on the information stored in the bus request status storage unit.
[0007]
BEST MODE FOR CARRYING OUT THE INVENTION
The above-described bus arbitration device (first configuration) of the present invention determines the bus occupation time in each basic bus cycle in accordance with the number of bus requests in the past basic bus cycle, thereby responding to the bus usage status. Bus arbitration can be performed dynamically and appropriately.
[0008]
Further, in the bus arbitrating device according to the above-described first configuration, the number of bus requests of each module in each basic bus cycle can be used as the information on the bus request status. Alternatively, as the information on the bus request status, the number of bus requests of each module in each basic bus cycle and the timing of each of the bus requests can be used.
[0009]
In the bus arbitration device of the first configuration described above, the arbitration processing unit monitors a bus request from each module in each basic bus cycle, and the module does not issue a bus request until the occupation period assigned to each module. In this case, it is preferable to cancel the bus assignment to the module. As a result, the overall bus transfer efficiency can be improved. As described above, when the arbitration processing unit cancels the bus assignment to any module in each basic bus cycle, if the length of the basic bus cycle is reduced, the transfer efficiency can be further improved. More preferred.
[0010]
Further, in order to solve the above problem, a bus arbitration device according to a second configuration of the present invention receives a bus request from a plurality of modules connected to a bus, and time-divides a basic bus cycle into each module. In the bus arbitration device to be occupied, a bus request status storage unit that obtains information on a bus request status of each module in each basic bus cycle and stores the information at least temporarily, and information stored in the bus request status storage unit in advance. By comparing with a predetermined condition, the priority of the bus request from each module is determined, and the basic bus is requested so that the bus request of the module determined to have a relatively higher priority is given priority. An arbitration processing unit for changing a bus assignment in a cycle or a next basic bus cycle is provided.
[0011]
With this configuration, it is possible to dynamically and appropriately perform bus arbitration in accordance with the bus usage status and the priority of each bus request.
[0012]
In the bus arbitration device having the second configuration, the arbitration processing unit determines that the occupation period assigned to the module determined to be relatively low in priority in each basic bus cycle is relatively high in priority. It is good also as a structure which changes to the occupation period of the module performed. Alternatively, the arbitration processing unit may assign, in each basic bus cycle, an occupation period of a module determined to be relatively high priority before an occupation period assigned to a module determined to be relatively low priority. May be inserted, and in this case, it is more preferable to extend the length of the basic bus cycle. Alternatively, the arbitration processing unit assigns, in each basic bus cycle, the order of the occupation period assigned to the module determined to be relatively high priority to the module determined to be relatively low priority. It is also possible to replace the occupation period so that it is chronologically earlier than the occupation period.
[0013]
In the bus arbitration device of the second configuration, the arbitration processing unit assigns, at the beginning of the next basic bus cycle, an occupation period to be assigned to a module determined to have a relatively low priority, with a relatively high priority. May be changed to the occupation period of the module determined to be high. Alternatively, the arbitration processing unit determines that the priority is relatively high before the occupation period to be assigned to the module determined to be relatively low in priority at the beginning of the next basic bus cycle. The occupation period of the module may be inserted. In this case, it is more preferable to extend the length of the basic bus cycle in which the occupation period is inserted. Alternatively, the arbitration processing unit replaces the occupation period of each module in the next basic bus cycle such that the occupation period of the module determined to be relatively high in the next basic bus cycle is first. It is good also as composition.
[0014]
In order to solve the above problem, a bus arbitration device according to a third configuration of the present invention receives a bus request from a plurality of modules connected to a bus, and time-divides a basic bus cycle into each module. In the bus arbitration device to be occupied, from each module, data on the allowable time from issuing a bus request to acquiring the bus and data on the desired use time of the bus are obtained, and using the data, each data in the next basic bus cycle is obtained. An arbitration processing unit that determines a ratio of a bus occupation time of a module, wherein the arbitration processing unit shortens a basic bus cycle by discarding a bus request when transfer cannot be started before the allowable time elapses. It is characterized by.
[0015]
With this configuration, bus arbitration can be performed dynamically and appropriately according to the conditions of the bus request from each module.
[0016]
In the bus arbitrating device according to the third configuration, when each module issues a bus request, the module sends to the arbitration processing unit discardability data indicating whether the bus request can be discarded, and the arbitration processing unit When the discardability data indicates that discarding is not possible, it is preferable not to discard the bus request but to extend the basic bus cycle and perform bus assignment for the bus request.
[0017]
Further, a semiconductor integrated circuit provided with the bus arbitration device having any one of the above-described configurations is also an embodiment of the present invention.
[0018]
Hereinafter, specific embodiments of the present invention will be described with reference to the drawings.
[0019]
FIG. 1 is a block diagram illustrating the configuration of the semiconductor integrated circuit according to the present embodiment. In FIG. 1, 101 to 104 are master-side IPs, 105 and 106 are slave-side IPs, 107 is a bus for sharing data, and 108 is an arbiter having a bus arbitration function. In this semiconductor integrated circuit, when a bus request signal is output from the master-
[0020]
The arbiter 108 at least temporarily stores data relating to the bus request from each IP, such as the number of bus requests, the timing, and the presence or absence of a priority bus request, in the storage unit 108a. The
[0021]
Hereinafter, a specific example of the arbitration process in the bus arbitration device according to the present embodiment will be described with reference to FIGS.
[0022]
(1st Embodiment)
In the first embodiment, the number of bus requests from each IP is stored in the storage unit 108a of the arbiter 108 for each basic bus cycle, and the
[0023]
As shown in FIG. 2, it is assumed that in a certain basic bus cycle (t2), the number of bus requests from
[0024]
As described above, by determining the bus occupation time in each basic bus cycle according to the number of bus requests in the past basic bus cycle, it is possible to dynamically and appropriately perform bus arbitration in accordance with the bus usage status. .
[0025]
In the example of FIG. 2, the bus occupation time in each basic bus cycle is determined using the number of bus requests in the immediately preceding basic bus cycle. Statistics on the number of bus requests in a cycle may be used. Alternatively, it is possible to use the statistics of the basic bus cycle not immediately before but two or more before. In addition to simply proportionally allocating the bus occupation time based on the number of bus requests, for example, increasing or decreasing the number of bus requests in the immediately preceding two or three or more basic bus cycles, and the priority of each IP or each bus request For example, the bus occupation time may be determined in consideration of various factors.
[0026]
(Second embodiment)
In the second embodiment, the number of bus requests from each IP and the timing thereof are stored in the storage unit 108a of the arbiter 108 for each basic bus cycle, and the
[0027]
As shown in FIG. 3, it is assumed that there are a total of five bus requests in the order of IP104, IP103, IP102, IP101, and IP102 in a certain basic bus cycle (t2). The storage unit 108a stores the number of times that each of the
[0028]
The
[0029]
Thereby, as shown in FIG. 3, when the total number of bus requests in the basic bus cycle t2 is five, the length of the basic bus cycle t3 is divided into five equal parts, and the order of the bus requests in the basic bus cycle t2 is changed. (IP104, IP103, IP102, IP101, and IP102) are assigned bus occupation.
[0030]
By performing the arbitration by the
[0031]
In the above description, the number of bus requests in the immediately preceding basic bus cycle is used to determine the unit time of bus occupancy. However, for example, the bus requests in the immediately preceding two or more basic bus cycles are used. Statistics of the number of times may be used. Alternatively, it is possible to use the statistics of the basic bus cycle not immediately before but two or more before. Also, the bus occupation time allocated to each IP may not be uniform, and may be determined in consideration of various factors such as the priority of each IP.
[0032]
(Third embodiment)
In the third embodiment, after a basic bus cycle is started according to a schedule once allocated, a bus allocation schedule in the basic bus cycle is changed in accordance with the status of a bus request from each IP. In other words, the
[0033]
For example, with respect to the basic bus cycle t2 shown in FIG. 4, bus occupation times are allocated in the order of IP104, IP103, IP102, and IP101, and after the basic bus cycle t2 is started, the
[0034]
Further, for example, with respect to the basic bus cycle t2 shown in FIG. 5, bus occupation times are allocated in the order of IP104, IP103, IP102, IP101, and IP102, and after the basic bus cycle t2 is started, in the basic bus cycle t2, It is assumed that the
[0035]
By performing the arbitration by the
[0036]
In the above description, the basic bus cycle is shortened by eliminating the time for allocating to the IP for which no bus request was issued by the predetermined time. However, the basic bus cycle is not shortened. The allocation time may be allocated to another IP.
[0037]
As a method of allocating buses in advance for each basic bus cycle, an allocation method using past statistics may be used as described in the first or second embodiment, but is not limited to this. An assignment method can be used.
[0038]
(Fourth embodiment)
In the fourth embodiment, after the basic bus cycle is started according to the once assigned schedule, the priority of each IP is determined according to the status of the bus request signal from each IP, and the priority is determined according to the priority. Change the bus allocation schedule in the basic bus cycle. That is, the fourth embodiment is also a method in which the
[0039]
Here, for example, it is assumed that a bus occupation time is assigned in the order of IP104, IP103, IP102, and IP101 for a certain basic bus cycle (t2). As shown in FIG. 6A, for example, when a bus request signal is output from the IP 102 a plurality of times per unit time during the bus transfer of the
[0040]
That is, each IP indicates the priority of the bus request according to a predetermined condition (in this example, the number of bus request signals output per unit time) when making a bus request. Then, the
[0041]
As a method of allocating a bus in advance for each basic bus cycle, an allocation method using past statistics may be used as described in the first or second embodiment, but is not limited to this. An assignment method can be used.
[0042]
Here, in addition to the example shown in FIG. 6A, an example of a method for preferentially processing a bus request determined to have high priority is shown in FIGS. 6B and 6C. Shown in
[0043]
In the example shown in FIG. 6B, it is assumed that the bus occupation time is assigned to the basic bus cycle t2 in the order of IP104, IP103, IP102, and IP101. For example, when a bus request signal is output from the IP 102 a plurality of times per unit time during the bus transfer of the
[0044]
In the example shown in FIG. 6C, similarly, it is assumed that the bus occupation times are allocated in the order of IP104, IP103, IP102, and IP101 with respect to the basic bus cycle t2. For example, when a bus request signal is output from the IP 102 a plurality of times per unit time during the bus transfer of the
[0045]
As described above, in each basic bus cycle, the
[0046]
(Fifth embodiment)
In the fifth embodiment, after the basic bus cycle starts according to the once assigned schedule, the priority of each IP is determined according to the status of the bus request signal from each IP, and the next priority is determined according to this priority. Is determined (changed if already determined) in the basic bus cycle.
[0047]
Here, for example, it is assumed that a bus occupation time is assigned in the order of IP104, IP103, IP102, and IP101 for a certain basic bus cycle (t3). Then, as shown in FIG. 7A, in the last part of the basic bus cycle t2 (here, when the last bus transfer of the basic bus cycle t2 is executed by the
[0048]
That is, as in the fourth embodiment, when making a bus request, each IP responds to the bus request according to a predetermined condition (in this example, the number of bus request signals output per unit time). Indicates priority. Then, the
[0049]
As a method of allocating a bus in advance for each basic bus cycle, an allocation method using past statistics may be used as described in the first or second embodiment, but is not limited to this. An assignment method can be used.
[0050]
Here, in addition to the example shown in FIG. 7A, an example of a method for preferentially processing a bus request determined to have a high priority is shown in FIGS. 7B and 7C. Shown in
[0051]
In the example shown in FIG. 7B, it is assumed that the bus occupation time is assigned to the basic bus cycle t3 in the order of IP104, IP103, IP102, and IP101. Then, for example, when a bus request signal is output from the IP 102 a plurality of times per unit time during the last bus transfer of the basic bus cycle t2, the
[0052]
In the example shown in FIG. 7C, similarly, it is assumed that the bus occupation time is assigned to the basic bus cycle t3 in the order of IP104, IP103, IP102, and IP101. Then, for example, when a bus request signal is output from the IP 102 a plurality of times per unit time during the last bus transfer of the basic bus cycle t2, the
[0053]
As described above, the
[0054]
(Sixth embodiment)
In the sixth embodiment, when issuing a bus request, each of the IPs includes a signal indicating a time (allowable time) that the IP can wait until the bus request is accepted, and a signal indicating a cycle necessary for transfer after the bus is occupied. To the arbiter 108. The
[0055]
For example, as shown in FIG. 8, it is assumed that there are bus requests from IP101, IP102, and IP103, respectively. Further, it is assumed that the bus request signal from the
[0056]
If the transfer cannot be started within the given allowable time, the
[0057]
【The invention's effect】
As described above, according to the present invention, the arbiter counts the number and timing of one or more previous bus requests from each IP, and reflects the statistical data in the number and the next basic bus cycle. Thus, for example, in an LSI or the like in which a plurality of applications simultaneously operate in various combinations, a bus arbitration device that dynamically adapts to various congestion conditions can be provided, and the bus throughput can be improved.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration example of a semiconductor integrated circuit provided with a bus arbitration device of the present invention. FIG. 2 is an explanatory diagram of an example of bus arbitration processing by the bus arbitration device of the present invention. FIG. 4 is an explanatory diagram of an example of a bus arbitration process performed by the arbitration device. FIG. 4 is an explanatory diagram of an example of a bus arbitration process performed by the bus arbitration device of the present invention. FIG. 6 is a diagram illustrating an example of a bus arbitration process performed by the bus arbitration device according to the present invention. FIG. 7 is a diagram illustrating an example of a bus arbitration process performed by the bus arbitration device according to the present invention. Explanatory drawing of an example of processing [Explanation of reference numerals]
101-104 IP (master side)
105,106 IP (slave side)
107 bus 108 bus arbitration device 108a
Claims (17)
各基本バスサイクルにおける各モジュールのバス要求状況に関する情報を取得して記憶するバス要求状況記憶部と、
各基本バスサイクルでの各モジュールのバス占有期間の比率を、当該基本バスサイクルの直前の基本バスサイクルを含む少なくとも1回の過去の基本バスサイクルから取得され前記バス要求状況記憶部に記憶されている前記情報に基づいて決定する調停処理部とを備えたことを特徴とするバス調停装置。In a bus arbitration device which receives a bus request from a plurality of modules connected to a bus and time-divides a basic bus cycle and occupies each module,
A bus request status storage unit for acquiring and storing information on a bus request status of each module in each basic bus cycle;
The ratio of the bus occupation period of each module in each basic bus cycle is obtained from at least one previous basic bus cycle including the basic bus cycle immediately before the basic bus cycle and stored in the bus request status storage unit. A bus arbitration device, comprising: an arbitration processing unit for determining based on the information.
各基本バスサイクルにおける各モジュールのバス要求状況に関する情報を取得して少なくとも一時的に記憶するバス要求状況記憶部と、
前記バス要求状況記憶部に記憶された情報と予め定められた条件とを比較することにより、各モジュールからのバス要求の優先度を判断し、相対的に優先度が高いと判断されるモジュールのバス要求が優先処理されるように、当該基本バスサイクル内または次の基本バスサイクル内のバス割り当てを変更する調停処理部を備えたことを特徴とするバス調停装置。In a bus arbitration device which receives a bus request from a plurality of modules connected to a bus and time-divides a basic bus cycle and occupies each module,
A bus request status storage unit that acquires information about the bus request status of each module in each basic bus cycle and at least temporarily stores the information;
By comparing the information stored in the bus request status storage unit with a predetermined condition, the priority of the bus request from each module is determined, and the priority of the module determined to be relatively higher is determined. A bus arbitration device comprising an arbitration processing unit that changes a bus assignment in the basic bus cycle or the next basic bus cycle so that a bus request is processed with priority.
各モジュールから、バス要求を出してからバスを獲得するまでの許容時間とバスの使用希望時間のデータを取得し、前記データを用いて次回の基本バスサイクルでの各モジュールのバス占有時間の比率を決定する調停処理部を備え、
前記調停処理部は、前記許容時間が経過するまでに転送を開始できない場合にはバス要求を破棄して基本バスサイクルを短縮することを特徴とするバス調停装置。In a bus arbitration device which receives a bus request from a plurality of modules connected to a bus and time-divides a basic bus cycle and occupies each module,
From each module, data on the allowable time from issuing a bus request to acquiring the bus and the desired bus use time is obtained, and the ratio of the bus occupation time of each module in the next basic bus cycle is obtained using the data. Arbitration processing unit that determines
The bus arbitration device, wherein the arbitration processing unit discards a bus request and shortens a basic bus cycle when transfer cannot be started before the permissible time has elapsed.
前記調停処理部は、破棄可否データが破棄不可を示す場合は、当該バス要求を破棄せず、基本バスサイクルを延長して当該バス要求に対してバス割り当てを行う、請求項15記載のバス調停装置。Each module, when issuing a bus request, sends discardability data indicating whether the bus request can be discarded to the arbitration processing unit,
16. The bus arbitration according to claim 15, wherein, if the discardability data indicates that discarding is not possible, the bus arbitration unit does not discard the bus request and extends a basic bus cycle to allocate a bus to the bus request. apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002367281A JP2004199404A (en) | 2002-12-18 | 2002-12-18 | Bus arbitration device and semiconductor integrated circuit provided with it |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002367281A JP2004199404A (en) | 2002-12-18 | 2002-12-18 | Bus arbitration device and semiconductor integrated circuit provided with it |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004199404A true JP2004199404A (en) | 2004-07-15 |
Family
ID=32764234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002367281A Withdrawn JP2004199404A (en) | 2002-12-18 | 2002-12-18 | Bus arbitration device and semiconductor integrated circuit provided with it |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004199404A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007316726A (en) * | 2006-05-23 | 2007-12-06 | Fuji Xerox Co Ltd | Data transfer controller |
JP2008532143A (en) * | 2005-02-24 | 2008-08-14 | クゥアルコム・インコーポレイテッド | Switch matrix system with multiple bus arbitrations per cycle via higher frequency arbiters |
-
2002
- 2002-12-18 JP JP2002367281A patent/JP2004199404A/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008532143A (en) * | 2005-02-24 | 2008-08-14 | クゥアルコム・インコーポレイテッド | Switch matrix system with multiple bus arbitrations per cycle via higher frequency arbiters |
JP2011090689A (en) * | 2005-02-24 | 2011-05-06 | Qualcomm Inc | Switch matrix system with plural bus arbitrations per cycle via higher-frequency arbiter |
JP2007316726A (en) * | 2006-05-23 | 2007-12-06 | Fuji Xerox Co Ltd | Data transfer controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5061268B2 (en) | Shared device and memory using split bus and time slot interface bus arbitration | |
JP4480427B2 (en) | Resource management device | |
US8549199B2 (en) | Data processing apparatus and a method for setting priority levels for transactions | |
US5623672A (en) | Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment | |
US7769936B2 (en) | Data processing apparatus and method for arbitrating between messages routed over a communication channel | |
US7231475B1 (en) | Advanced bandwidth allocation in PCI bus architecture | |
US6178475B1 (en) | Multimedia system employing timers to properly allocate bus access | |
US9606945B2 (en) | Access controller, router, access controlling method, and computer program | |
JP2007200245A (en) | System bus controller, integrated circuit, and data processing system | |
US7380040B2 (en) | Software programmable dynamic arbitration scheme | |
US20060155903A1 (en) | Resource management device | |
JP4090883B2 (en) | System integration agent with different resource access methods | |
US6513082B1 (en) | Adaptive bus arbitration using history buffer | |
US7555005B2 (en) | Area efficient implementation of the consecutive access counter | |
US8185679B2 (en) | Controlling bus access | |
JPH0630086B2 (en) | Device for assigning priority among computers operating in parallel | |
US6415367B1 (en) | Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme | |
EP1752881A1 (en) | Apparatus for memory resource arbitration based on dedicated time slot allocation | |
JP2004199404A (en) | Bus arbitration device and semiconductor integrated circuit provided with it | |
US6412049B1 (en) | Method for minimizing CPU memory latency while transferring streaming data | |
JP2006251875A (en) | Bus arbitration device and bus arbitration method | |
JP7263416B2 (en) | Distribution of interconnect bandwidth among master agents | |
TWI425363B (en) | Adjustable Priority System Resource Arbitration Method | |
JP2005518045A (en) | System and method for fair arbitration between multiple request signals | |
JP2010170473A (en) | Bus arbitration device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060307 |