(57)【要約】  複数のデータ取り扱いユニット110a,….,110d、及び複数のデータラインを有する共有バス140を含むシステムにおいて使用されるべきバス調停に関する方法及びシステムが提供される。本発明は、データ取り扱いユニットからデータ転送要求を受信するステップと、一群のデータ転送要求であって、当該データ転送要求の許可が、最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、一群のデータ転送要求を選択するステップと、前記選択された一群のデータ転送要求を発行したデータ取り扱いユニットが単一のバス周期において前記バスにアクセスすることを許可するステップと、を含む方法、及びこの方法を実行させるシステムを提供する。
2009508247.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ取り扱いユニット、及び複数のデータラインを有する共有バス、を含むシステムにおいて使用するバス調停に関する方法であって、
ａ．前記データ取り扱いユニットからデータ転送要求を受信するステップと、
ｂ．一群の１つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、データ転送要求を選択するステップと、
ｃ．前記選択された一群のデータ転送要求を発行した前記データ取り扱いユニットが単一のバス周期において前記バスにアクセスすることを許可するステップと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記方法が、更に、
ａ．所定の持続時間よりも長い間において未決定であったデータ転送要求を特定するステップと、
ｂ．前記特定されたデータ転送要求のうちから、第１の群の１つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、データ転送要求を選択するステップと、
を含む、方法。
【請求項３】
請求項２に記載のバス調停に関する方法であって、前記方法が、更に、
ａ．前記第１の群のデータ転送要求を選択した後に、データラインが未利用であるかを決定するステップと、
ｂ．前記特定されたデータ転送要求以外のデータ転送要求のうちから、第２の群の１つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数の決定された未利用のデータラインを利用させるような、データ転送要求を選択するステップと、
ｃ．前記第１及び第２の群のデータ転送要求を発行した前記データ取り扱いユニットが単一のバス周期において前記バスにアクセスすることを許可するステップと、
を含む、方法。
【請求項４】
請求項１又は３に記載のバス調停に関する方法であって、前記データ取り扱いユニットを許可するステップが、各受信及び作用される要求を登録及びスケジューリングするステップを含む、方法。
【請求項５】
請求項３又は４に記載のバス調停に関する方法であって、前記特定するステップが、データ転送要求が前記バスへのアクセスを許可される必要がある前までの持続時間を決定するステップを含む、方法。
【請求項６】
請求項１、２又は３のいずれか１項に記載の方法であって、前記選択するステップが、任意選択的に、複数の群の要求のうちから、相対的に高い数の古いデータ転送要求を含む一群のデータ転送要求を選択するステップを提供し、前記データ転送要求の許可が、最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインの利用を生じさせるような、方法。
【請求項７】
複数のデータ取り扱いユニットからデータ転送要求を受信するとともに、共有バスのデータラインのアクセスを前記複数のデータ取り扱いユニットの間において調停するように構成されるバス調停器であって、
ａ．１つ以上のデータ取り扱いユニットが単一のバス周期においてデータ転送要求を実行するために前記データバスにアクセスすることを許可するように構成される論理ブロックであって、前記論理ブロックが、アクセスするデータ取り扱いユニットの数の最大化及び単一のバス周期において利用されるデータラインの数の最大化を最適化規準として有する最適化器を含む論理ブロックと、
ｂ．単一のバス周期において前記バスにアクセスするのを可能にさせることに関して１つ以上の未決定のデータ転送要求を許可するために、一群の特定された未決定のデータ転送要求の間において第１の最適化ステップを開始するための未決定のデータ転送要求のスケジュールを登録及び維持することが可能である制御器であって、前記制御器は、更に、前記特定された要求以外のデータ転送要求の間において、未利用のデータラインへのアクセスが前記第１の最適化ステップの後に調停される第２の最適化ステップを開始するように構成される、制御器と、
を備える、バス調停器。
【請求項８】
請求項７に記載のバス調停器であって、前記制御器が、前記要求が所定の時間よりも長い間において未決定である場合、要求を特定する、バス調停器。
【請求項９】
請求項８に記載のバス調停器であって、前記所定の時間が、データ転送要求が許可される必要がある持続時間に対応する、バス調停器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス調停に関する方法及びシステムに関し、より特には、本発明は、複数のデータ取り扱いユニットを有するシステムに関するバス調停システムに関する。より特には、本発明は、バス幅の最適利用を可能にし且つ最適な数のデータ取り扱いユニットを作用させる、複数のデータ取り扱いユニットを有するシステムに関するバス調停システム関する。
【背景技術】
【０００２】
定義１：後続の記載において、「データ取り扱いユニット」という用語は、処理器及びメモリなどの、バスへのアクセスを有し得るいずれかのユニットを含む。このユニットは、例えば汎用目的処理器など、プログラム可能であり得る、又は所定の機能を有し得る。またデータ取り扱いユニットも、他の可能なデータ取り扱いユニットを除外することなく、１つ以上の処理器を含む。以後、「データ取り扱いユニット」という用語は、「処理器」という用語を置換するために相互交換可能に使用され得る。
【０００３】
定義２：後続の記載において、「データライン」という用語は、アドレスを含む、いかなるデータをも伝達するのに使用されるいかなるラインをも含む。しかし、「アドレスライン」のみに参照がされる場合、「アドレスライン」として断定的に言及される。以後、「データライン」は、「データバス」又は「バス」という用語と相互交換可能に使用され得る。
【０００４】
アドレス／データバスは、複数のデータ取り扱いユニットがメモリなどの共有リソースへのアクセスを得ることを可能にさせる、よく知られる解決法である。従来、１つのデータ取り扱いユニットは、バスを介してデータ及び対応するアドレスを転送するためにバスへのアクセスを一度得る。
【０００５】
最新のデータバスは、非常に広く、多数のビット（例えば64又は128ビット）を含む語を、単一のバス周期においてバスを介して転送させるのを可能にする。（処理器のような）データ取り扱いユニットは、多くの場合、伝達される必要がある語のサイズが利用可能なバス幅の語サイズよりも小さいので、全てのこれらのデータラインを必ずしも使用しない。
【０００６】
米国特許第6,366,984号は、互いに隣接するアドレスを識別することによる、データバスにおけるビットの詰め込みの仕組みを開示している。同様に、欧州特許第465,320号は、書き込み要求を収集し、様々な要求からのデータが単一のバス周期に詰め込まれ得るかを決定するために、要求からのアドレスを比較する書き込みパッカを開示する。
【０００７】
更に、米国特許第5,930,484号は、各データ取り扱いユニットの所定の特性に従い複数のデータ取り扱いユニットへのバスアクセスを可能にする仕組みを開示している。更に、この仕組みは、データバスを副バスへ分割し、データ取り扱いユニットへ供与され得る副バスの最大数を特定し、１つ以上の副バスを１つ以上のデータ取り扱いユニットへ適宜割り当てる。この特許文書において開示される仕組みは、特定される特性に依存し、したがって、利用可能なバス幅の非最適な利用を導き得る。更に、記載される実施例において、共有バスは、64ビット副バス幅をそれぞれ有する副バスへ分割される。
【０００８】
米国特許第5,930,484号に従うシステムが、２つの処理器すなわちＰ１及びＰ２を有し、これにより、処理器Ｐ１が処理器Ｐ２よりも高い優先度を有するようにされると仮定する。最大２つの副バスが、各処理器に対して割り当てられ、そしてそれぞれ16ビット幅である副バスが存在する。このシステムに関して、処理器Ｐ１が48ビットデータ転送を要求し、処理器Ｐ２が16ビットデータ転送を要求する状況が存在し得る。この場合、米国特許第5,930,484号に記載される方法は、この要求を伝達するために少なくとも２つのバス周期を必要とする。第１のバス周期において、処理器Ｐ１の32ビットデータ及びＰ２の16ビットデータが、48ビットのラインのみを利用する。第２のバス周期において、処理器Ｐ１の残りの16ビットデータが転送される。したがって、データを転送するために少なくとも2つのバス周期を必要とする一方で、利用可能な未利用副バスを維持している。
【０００９】
更に、米国特許第5,930,484号に記載される発明は、副バスのサイズが必要とされるデータ転送のサイズよりも大きい場合、多数のデータラインが未利用のままにされ得る。例えば、128ビットデータラインのバスが、それぞれ32ビットラインの副バスに分割される場合、副バスは、それぞれ16ビットのデータ転送要求に関して、16ビットラインを未利用のままにし、これにより、遅いデータ転送を引き起こす。
【００１０】
米国特許第5,930,484号及び他の引用される特許から知られる仕組みは、作用される処理器の数（クライアント／データ取り扱いユニット）を最大化しようと試みるものの、リソースの利用を最適化するいかなる仕組みも提供しない。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、とりわけ、単一のバス周期において作用(serve)されるクライアントの数を最大化するだけでなく、利用可能なリソースを最適に利用するバス調停に関する方法及びシステムを提供することである。
【課題を解決するための手段】
【００１２】
この目的のために、本発明は、複数のデータ取り扱いユニットからデータ転送要求を受信するとともに、前記複数のデータ取り扱いユニットにおける共有バスのデータラインのアクセスを調停するように構成されるバス調停器であって、
ａ．１つ以上のデータ取り扱いユニットが単一のバス周期においてデータ転送要求を実行するために前記データバスにアクセスすることを許可するように構成される論理ブロックであって、前記論理ブロックが、アクセスするデータ取り扱いユニットの数の最大化及び単一のバス周期において利用されるデータラインの数の最大化を最適化規準として有する最適化器を含む論理ブロックと、
ｂ．単一のバス周期において前記バスにアクセスするのを可能にさせることに関して１つ以上の未決定のデータ転送要求を許可するために、一群の特定された未決定のデータ転送要求の間において第１の最適化ステップを開始するための未決定のデータ転送要求のスケジュールを登録及び維持することが可能である制御器であって、前記制御器は、更に、前記特定された要求以外のデータ転送要求の間において、未利用のデータラインへのアクセスが前記第１の最適化ステップの後に調停される第２の最適化ステップを開始するように構成される、制御器と、
を備える、バス調停器を提供する。
【００１３】
前記論理ブロックは、データ転送要求を受信し、受信されたデータ転送要求を実行するのに必要なデータラインの数を決定する。論理ブロックは、データラインの全数及びデータ転送要求の全数に従い、単一のバス周期において前記データラインにアクセスするのを可能にされ得る一群のデータ転送要求を特定し、これにより、データラインにアクセスするのを許可される要求の全数が最大になり、また前記バス周期において使用されるデータラインの全数が最大になるようにされる。
【００１４】
更に、前記制御器は、前記データラインにアクセスするのをまだ可能にされていないデータ転送要求を登録する。また更に、制御器は、各データ取り扱いユニットが所定の時間において作用されることを保証するようにスケジュールを維持もする。加えて、制御器は、１つ以上のデータ転送要求が前記所定の時間よりも長い間において未決定であるかを特定する。この場合、制御器は、論理ブロックに、特定されたデータ転送要求へアクセスを許可にするよう命令し、また制御器は、この論理ブロックに、いずれかの未利用のデータラインがまだ存在する場合に、特定されたデータ転送要求以外の一群のデータ転送要求へのアクセスを可能にするようにも命令する。
【００１５】
本発明の一つの態様に従うと、複数のデータ取り扱いユニット、及び複数のデータラインを有する共有バスを含むシステムにおいて使用するバス調停に関する方法であって、
ａ．前記データ取り扱いユニットからデータ転送要求を受信するステップと、
ｂ．一群の１つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、一群の１つ以上のデータ転送要求を選択するステップと、
ｃ．前記選択された一群のデータ転送要求を発行した前記データ取り扱いユニットに単一のバス周期において前記バスにアクセスさせるのを許可するステップと、
を含む、方法が提供される。
【００１６】
本発明のこの態様は、利用可能なリソースの最適な利用に加えて、単一のバス周期において作用されるクライアントの数の最大化を提供する。
【００１７】
本発明の別の態様に従うと、本発明は、更に、
ａ．所定の持続時間よりも長い間において未決定であったデータ転送要求を特定するステップと、
ｂ．前記特定されたデータ転送要求のうちから、第１の群の１つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、データ転送要求を選択するステップと、
を含む、方法を提供する。
【００１８】
本発明のこの態様は、データ転送要求が、特定される持続時間内においてリソースにアクセスするのを許可されることを保証する。この持続時間は、データ転送要求が許可される必要がある前までの持続時間として特定され得る。本発明のこの態様は、所定の持続時間よりも長い間において未決定であると特定されるデータ転送要求のうちから一群のデータ転送要求を選択することを許可し、前記一群は、最大数のデータ取り扱いユニットを作用させ、また最大数のデータラインを利用する。
【００１９】
本発明の更なる態様に従うと、前記方法は、
ａ．前記第１の群のデータ転送要求を選択した後に、データラインが未利用であるかを決定するステップと、
ｂ．前記特定されたデータ転送要求のうちから第２の群の１つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数の決定された未利用のデータラインを利用させるような、データ転送要求を選択するステップと、
ｃ．前記第１及び第２の群のデータ転送要求を発行した前記データ取り扱いユニットに、単一のバス周期において前記バスにアクセスさせるのを許可するステップと、
を含む。
【００２０】
本発明のこの態様は、第１の群のデータ転送要求が選択された後に未利用のデータラインを決定するのを可能にする。例えば、所定の持続時間よりも長い間において未決定である一群のデータ転送要求が存在する場合、第１の段階の選択は、前記所定の持続時間よりも長い間において未決定であるデータ転送要求のうちから実行される。前記第１の群が選択された後で、最大数のデータ取り扱いユニットが作用され、且つ最大数のデータラインが利用されるようにされ、なお１つ以上のデータラインが未利用であり得る。この場合、残りのデータラインに関して、利用可能なリソースの最大利用を保証するために、前記特定されたデータ転送要求以外のデータ転送要求のうちから、第２の群が選択される。
【００２１】
本発明のより更なる態様に従うと、前記データ取り扱いユニットを許可するステップが、各受信及び作用される要求を登録及びスケジューリングするステップを含む。本発明のこの態様は、いずれかのデータ転送要求が所定の持続時間よりも長い間において未決定であるかを決定するのに使用され得る各データ転送要求の時間ログを維持するための仕組みを可能にする。これに従うと、未決定の要求は、所与の時間内に作用されることを保証され得る。
【００２２】
本発明の別の態様に従うと、前記特定するステップが、データ転送要求が前記バスへのアクセスを許可される必要がある持続時間を決定するステップ、を含む。本発明のこの態様は、データ転送要求が作用されることを予想され得る持続時間をプログラムする柔軟性を提供する。
【００２３】
本発明の更に別の態様に従うと、前記選択するステップが、任意選択的に、複数の群の要求のうちから、相対的に高い数の古いデータ転送要求を含む一群のデータ転送要求を選択するステップを提供し、前記データ転送要求の許可は、最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインの利用を生じさせる。本発明のこの態様は、複数の群のデータ転送要求であって、当該データ転送要求の許可が、同一の数のデータ取り扱いユニット及び同一の数のリソース利用をサービスさせるようにするデータ転送要求のうちから、アクセスを許可され得る一群のデータ転送要求を選択する柔軟性を提供する。
【００２４】
本発明のこれら及び他の態様は、図面を参照してより詳細に説明される。
【発明を実施するための最良の形態】
【００２５】
本発明を実施化するのに使用され得る電子回路が示される図１に参照がされる。例示を目的とするこの例において、データ取り扱いユニットは、明確な理解のために、処理器及びメモリによって特定される。しかし、当業者は、処理器若しくはメモリ又はその両方が、本発明の基本概念から逸脱することなく、他のデータ取り扱いユニットの群と交換、置換、又は再構成され得ることを理解する。
【００２６】
図１の回路１００は、複数の処理器すなわちデータ取り扱いユニット１１０ａ〜ｄ、バスインターフェイス１２０、バス１４０、及び複数のメモリ若しくは別の群のデータ取り扱いユニット１６０ａ及びｂを含む。各処理器１１０ａ〜ｄは、アドレス出力Ａ、データ出力Ｄ、及び制御入力／出力を有し得る。制御入力／出力は、転送されるべきデータの語サイズ及び／又は処理器を特定するための情報を提供し得、またアドレスのサイズも提供し得る。バスインターフェイス１２０は、アドレス及びデータ出力をバス１４０へ接続し、メモリ１６０ａ及びｂは、アドレス及びデータ情報を受信するためにバス１４０へ接続される。バス１４０は、複数のアドレスライン、64又は128のデータラインなどの複数のデータライン及び制御ラインを含む。
【００２７】
例証のために、処理器１１０ａ〜ｄは、データ出力のみを有するように示されるが、処理器は、データ入力、バスインターフェイス１２０に接続されるデータ入力又は一群のデータ出力を有し得ることを理解されるべきである。処理器１１０ａ〜ｄが図１において示されるが、いずれの他の種類のデータ取り扱い回路も使用され得ることを理解されるべきである。同様に、例証のために２つのメモリがバス１４０に接続されて示されるが、必ずしも全てのメモリではないものの、多数の他の回路が、バス１４０に接続され得る、又は１つの回路のみがバス１４０に接続され得ることを理解され得る。
【００２８】
動作において、処理器１１０ａ〜ｄは、データを生成しこのデータをメモリ１６０ａ〜ｂにおける場所に書き込む、又はメモリ１６０ａ、...、ｄからデータを読み出す。この目的に関して、処理器１１０ａ〜ｄは、読み出し／書き込み要求を発生し、入力をインターフェイス１２０へ供給する。バスインターフェイスへの入力は、データ及びアドレス、又はアドレスのみであり得る。バスインターフェイス１２０は、バス周期において動作する。各バス周期において、バスインターフェイス１２０は、データ／アドレスビットを選択的にバス１４０のデータ／アドレスラインへ渡す。メモリ１６０ａ〜ｂは、バス１４０からアドレスを受信し、これらをデータが書き込まれている場所を選択するために使用する。本発明に従うインターフェイス１２０は、異なる処理器１１０ａ〜ｄから／へのデータを順序つけるために、データ転送要求の間において調停を行う。インターフェイス１２０は、バスにおいてデータ及びアドレスを開放する制御器を有する。
【００２９】
ここで、複数の入力２３０を受信し、複数の出力２２０を供給する、バスインターフェイス１２０における調停器２１０のブロック図２００を示す図２が参照される。調停器２１０は、処理器を区別して特定する入力及び前記処理器によって作成されたデータ転送要求を受信し得る。更に、調停器２１０は、通信のために処理器によって要求されるデータ／アドレスのサイズを特定する入力も受信し得る。出力２２０を用いて、調整器は、データ／アドレス転送を可能にするバスインターフェイス１２０（図１）におけるスイッチ及び／又はを有効化することによって、通信のために、特定されたデータ若しくはアドレス、又は両方の開放を有効化し得る。
【００３０】
ここで、図２の調停器２１０における回路のブロック図３００を示す図３が参照される。回路３００は、論理ユニット３１０、３２０及び３３０を含む。これらの論理ユニットは、最大数の処理器がデータラインにアクセスするのを許可される一方で、データラインの最適な利用も保証するように、データ転送要求又はデータ転送に関する一群の要求を選択する。ブロック３００は、更に、所与の要求が所定の時間内において作用されることを保証するために、論理ユニット３１０、３２０及び３３０に接続される制御器３４０を具備される。制御器３４０は、プログラム可能であり得る、又は要求が本質的に作用されるべき持続時間に関する所定の設定を有し得る。制御器３４０がプログラム可能である場合、命令を実行する経過においてプログラムされ得る、又は命令を実行する前にプログラムされ得る。制御器３４０は、未決定の要求を登録及び動的に更新もする。当業者は、論理ユニット３１０、３２０及び３３０の機能が、異なる環境（「異なる環境」は、後になってより明らかになる）において一群のデータ転送要求を選択するのと同一の機能を有し、この機能は、単一の論理ユニットを適宜プログラムすることによって、１つのみの論理ユニットを使用して実行され得ることを理解する。代わりに、論理ユニット３１０、３２０及び３３０は、単一の論理ブロックにおいて詰められ得る。しかし、この説明において例示、簡素化、明確性の目的のために、これらのユニットは、個別のブロックとして示される。
【００３１】
ブロック３００の動作は、以下のように理解され得る。論理ユニット３１０及び３２０の両方は、処理器を固有に特定する入力及び前記処理器によって作成される対応する要求を受信し得る。更に、前記論理ユニット３１０及び３２０は、通信のために各処理器によって要求されるデータ／アドレスのサイズを特定する入力も受信し得る。論理ユニット３１０及び論理ユニット３２０は、更に、利用するために入手可能なデータライン幅に関する情報を提供される。論理ユニット３３０は、論理ユニット３１０及び３２０、並びに制御器３４０からの入力を受信する。論理ユニット３３０は、データバスにアクセスするのを最終的に許可され得るデータ転送要求の選択された一群を供給する。
【００３２】
始めに、何の要求もデータ転送に関して存在しない場合、制御器３４０は、待機している要求が「無い」ことを示すように設定される。この場合、制御器は、論理ユニット３２０を無効にし、論理ユニット３３０を透明ブロックとして動作するように設定する。データ転送要求を受信すると、論理ユニット３１０は、データラインにアクセスするのを許可され得、且つ最大数の要求を作用させ得るような、データ転送要求の全ての可能な群を計算する。最大数の要求を作用させ得るこのような群が、１つより多く存在する場合、論理ユニット３１０は、選択されたデータ転送要求に関してデータラインへのアクセスを可能にする、データライン幅の最高値を利用し得る一群の要求を選択する。
【００３３】
更に、最大数のデータ転送要求へサービスを可能にし且つ最大可能な数のデータライン幅を利用する１つより多い群が存在する場合、論理ユニット３１０は、相対的に高い数の相対的に古いデータ転送要求を有する一群を選択し得る。論理ユニット３１０は、この場合、未決定のデータ転送要求に関して制御器３４０を更新する。
【００３４】
制御器３４０が１つ以上のデータ転送要求が所定の持続時間よりも長い間において未決定であると決定する場合、制御器３４０は、論理ユニット３２０及び論理ユニット３３０を有効化し、入手可能な要求を論理ユニット３３０へ渡すように論理ユニット３１０を設定する。論理ユニット３２０は、前記特定された未決定の要求のうちからデータ転送要求の全ての可能な群を計算し、先立つ場合における論理ユニット３１０と正確に同様な方法で、可能な群を選択する。計算が完了すると、論理ユニット３２０は、出力を論理ユニット３３０へ供給する。論理ユニット３２０が一群のデータ転送要求を選択した後で、論理ユニット３３０は、通信に関して使用され得る入手可能ないずれかの更なるデータラインが存在するかを確認する。存在する場合、論理ユニット３３０は、論理ユニット３１０に関して説明されたのと同様な方法で、入手可能なデータラインを介してアクセスを許可され得る特定された要求以外の要求に関する計算を実行する。
【００３５】
データラインにアクセスするのを許可され得るデータ転送要求の可能な群を計算する一方で、論理ユニット３１０、３２０及び３３０は、データ−アドレスのサイズを含むように、且つ所与のバス（データライン）周期においてデータ及びアドレスラインへのアクセスを許可する信号を送信するようにプログラムされ得、又は他方で、データのアドレスは、個別に特定されるアドレス伝達ラインにおいて連続的に伝達され得る。
【００３６】
データ転送要求の可能な組合せを計算するために、論理ユニット３１０、３２０及び３３０は、以下の式を使用する。
群ＧのサブセットＳを、
|Ｓ|が最大であり、且つ
Ｓの要素のデータサイズの合計が、Max_Bus_Width以下である、
ように選択し、
ここで、Ｇは一群の全ての利用可能な要求である。Ｓは一群の要求であり且つＧのサブセットであり、データラインへアクセスするのを許可され得る要求の可能な群のうちの１つに対応する。|Ｓ|はサブセットＳにおける要求の数であり、Max_Bus_widthは、入手可能なデータラインの最大数である。上述されるように、|Ｓ|が同一であるような１つより多いサブセットＳが存在する場合、論理ユニットは、最高数のデータラインを利用し得るサブセットを選択し、選択されたデータ転送要求に関してデータラインへのアクセスを有効化するために、ブロック３００の出力において制御信号を送信し得る。更に、最大数のデータ転送要求へのサービスを可能にし且つ最大可能な数のデータライン幅を利用する１つより多い群が存在する場合、論理ユニット３１０、３２０及び３３０は、相対的に高い数の相対的に古いデータ転送要求を有する一群を選択し得る。各論理ユニットは、選択処理の終了において制御器３４０を更新する。
【００３７】
上記の記載から、論理ユニット３１０、３２０及び３３０は、「異なる環境」に関して機能的であることが明らかである。すなわち、論理ユニット３１０は何の特定される未決定の要求も存在しない場合に一群のデータ転送要求を選択し、論理ユニット３２０は特定される未決定の要求のうちから一群のデータ転送要求を選択し、論理ユニット３３０は、論理ユニット３２０が一群の特定される未決定要求を選択し、１つ以上のデータラインを未利用に残した後で、未利用のデータラインのみに関して、特定されるデータ転送要求以外に関する別の群のデータ転送要求を選択する。
【００３８】
ここで、本発明の方法及びシステムに従うバス調停スキームに関する制御シーケンスを例証する高レベル論理フロー図４００を与える図４に参照がされる。記載されるように、この処理は、ブロック４０１において開始し、その後ブロック４０２へ渡される。ブロック４０２は、サービスされるべきいずれかの要求が存在するかを確認する。入手可能な要求が存在する場合、制御は、ブロック４０４へ移動する。そうでない場合、ブロック４０２における要求に関する確認は、次のバス要求が入手可能になるまで反復する。
【００３９】
ブロック４０４において、所定の持続時間よりも長い間において未決定である要求を特定するための確認が実行される。（図３に示される）制御器３４０は、この特定を実行する。制御器３４０が、特定の要求が所定の持続時間よりも長い間において未決定であることを決定する場合、制御はブロック４０５へ渡される。
【００４０】
ブロック４０５において、制御器３４０によって特定された要求のうちから最大数のデータ取り扱いユニットを作用させるために、許可されるべき一群の要求を決定するための計算が実行される。ブロック４０５の後で、制御は、ブロック４０９へ渡され、ブロック４０９は１つより多い群が４０５において規準を満たすかを確認する。
【００４１】
ブロック４１８は、ある一群の許可が最高数のデータラインの利用を達成するような一群を特定するための確認を実行する。より多くの利用を達成する単一の群が存在する場合、制御ブロック４２０は、この群を選択し、出力信号を供給し、制御ブロック４２１は、制御器３４０を更新する。ブロック４１８に戻ると、複数の群が等しく規準を満たす場合、制御ブロック４１９は、最高数の相対的に古い要求を作用するいずれかの群を選択し（タイミングの詳細は、制御器３４０によって特定され）、ブロック４２１は、制御器３４０を更新する。その後制御はブロック４１１へ渡される。
【００４２】
ブロック４１１において、選択された群の許可がシステムにおける全てのデータラインの占拠になるかが検証される。１つ以上のデータラインがなお通信に関して入手可能である場合、制御はブロック４１３へ移動する。
【００４３】
ブロック４１３において、特定される未決定の要求以外の一群のデータ転送要求が決定され、また一群のデータ転送要求は、前記要求のうちから未利用のデータラインを介して通信するために決定される。一群のデータ転送要求の選択は、その一群が最大数のデータ取り扱いユニットを作用させ、最大数の入手可能なデータラインを利用するように、行われる。
【００４４】
その後、制御は、ブロック４０７へ渡される。このブロックは、１つ以上の群が上記の規準を満たすかを特定する。そのような場合、制御は、ブロック４１４へ移動し、複数の群のうちの１つのみの許可が、他の群のそれぞれの許可よりも多くのデータライン利用性を達成するかを保証するための確認が実行される。そうである場合、最大数のデータラインを利用する群が選択される。ブロック４１７は制御器３４０を更新し、制御を開始ブロック４０１へ渡す。ブロック４１４へ戻ると、複数の群が等しく規準を満たす場合、制御ブロック４１６は、最高数の相対的に古い要求を作用するいずれかの群を選択する。ここで、タイミングの詳細は、制御器３４０によって特定される。ブロック４１６は、出力信号を供給し、ブロック４１７は、制御器３４０において作用される且つ未決定の要求の詳細を更新し、その後制御は開始ブロック４０１へ渡る。
【００４５】
ブロック４１１に戻ると、確認により何の残っている入手可能なデータラインも存在しないと決定される場合、制御はブロック４１２へ移動する。このブロックは、作用されるべき選択された群の要求を提供し、作用される且つ未決定の要求の詳細を制御器３４０へ更新する。その後、制御は開始ブロック４０１へ渡される。
【００４６】
ブロック４０７に戻ると、前記規準を満たす１つのみの群が存在する場合、制御は、この唯一の群を選択し且つ作用される且つ未決定の要求の詳細を制御器３４０へ更新するブロック４０８へ移動する。
【００４７】
ブロック４０９に戻ると、１つのみの群が前記規準を満たす場合、制御は、この群を選択し且つ作用される且つ未決定の要求の詳細を制御器３４０へ更新するブロック４１０へ移動する。ここで、ブロック４１１において、ブロック４１０において選択された群がシステムにおいて全てのデータライン（すなわちバス全体）を占拠するかを調べるための確認が実行される。もしそうである場合、制御は、ブロック４１３へ移動し、ブロック４１３からの制御フローは、上記で説明されるとおりである。もしそうでない場合、ブロック４１２において、前記群が選択され、作用される且つ未決定の要求の詳細は、制御器３４０において更新される。ブロック４１２は、制御を開始ブロック４０１へ渡す。
【００４８】
ブロック４０４へ戻ると、制御器３４０が所定の持続時間より長く未決定である要求を特定していなかった場合、制御は、ブロック４０６へ渡される。ブロック４０６において、一群の要求であって、当該要求の許可が最大数のデータ取り扱いユニットを作用させるような、一群の要求を決定するための計算が実行される。ブロック４０６の後で、制御は、１つより多い群が４０６において規準を満たすかを確認するブロック４０７へ渡される。もしそうである場合、制御はブロック４１４へ移動し、この制御は、ブロック４１４から上記で説明されるように移動する。もしそうでない場合、制御はブロック４０８へ移動し、前記群が選択され、作用される及び未決定の要求に関する詳細は、制御器３４０へ更新される。最終的に、制御は、開始ブロック４０１へ渡される。
【００４９】
ここで、図５に参照がされる。図５は、制御器３４０によって特定される要求を含む全ての入手可能な要求のうちから一群の要求を決定するステップを説明する。記載されるように、この処理は、ブロック５０１において開始し、ブロック５０２へ渡される。ブロック５０２において、入手可能なデータラインの全数、データ転送要求の数、及び各要求による転送に関して要求されたデータのサイズ、についてを示す情報が受信され、制御はブロック５０３へ転送され、パラメータMax_Bus_Widthは、入手可能なデータラインの全数の捕捉された値に設定される。追加的に、ブロック５０３は、入手可能な要求に基づき、全ての入手可能な要求の群Gを形成する。この情報は、ブロック５０４に渡される。ブロック５０４において、以下の規準：
１．|Ｓ|が最大であり、ここで|Ｓ|はサブセットＳにおける要求の数である、
２．Ｓの要素のデータサイズの合計が、Max_Bus_Width以下である、
に従い、群Ｇから可能なサブセットＳを見つけ出すための計算が実行される。
【００５０】
ブロック５０５は、全ての可能なサブセットＳについての情報を提供し、制御フローはこの処理に関して終了する。
【００５１】
ここで、表１に参照がされ、表１は、共有バス、複数のデータ取り扱いユニット（処理器）、共有バスの調停アクセスに関して前記処理器から入力を受信する調停器を有するシステムにおいて使用する、本発明に従う調停スキームに関する例を例証する。この例において、共有バスサイズは、64であり、そしてこのバスにアクセスする4つ以上の処理器が存在する。各処理器が16ビット、32ビット又は64ビットのデータ転送要求を作成し得ることを仮定し、また制御器が所定の持続時間よりも長い間において未決定である要求を何も示さないことを仮定する。この場合、表１は、作用される要求の数及び本発明に従う一群の要求に関するバス幅利用性を記載する。例示の目的に関して、表１における各行は、特定の瞬間における入手可能な（ビット）サイズ、作用される要求の数、及びバス幅利用性、を一覧にする。「Ｘ」というエントリは、０又はそれ以上の数の要求の存在を示す。
【００５２】
行１を検討する。これは、16の語サイズを有する４つ以上の要求が存在する状況に対応する。加えて、同時に入手可能な複数の32ビット及び64ビットの要求も存在し得る。64ビットのデータバス幅を検討すると、アービター(arbiter)は、32ビット及び64ビットの転送に関する要求の数にかかわらず、4つの16ビット要求へバスを供与するよう選択する。すなわち、前記選択は、作用される処理器の数及びデータバス幅利用性の両方を最大化する。エントリ４は、この要求が調停ポリシによって選択されることの表示として影付きエントリとして示される。異なる行は、64ビットデータバス及び16、32、 64ビット要求サイズに関する要求の種類の様々な状況を示す。これは、提案された調停ポリシを例示する例としての役目を果たし、本発明の範囲を制限しない。
【表１】
2009508247.tif 000003
【００５３】
本発明の方法及びシステムの記載される実施例における順序は、強制的なものではなく、単に例示的なものである。本発明の範囲は、記載される実施例に制限されない。当業者は、本発明において意図される思想から逸脱することなく、スレッディングモデル、多処理器システム又は多重処理を同時に使用して、ステップの順序を変更する、又はステップを実行し得る。いずれかのこのような実施例も、本発明の範囲に含まれ、保護の主な目的である。
【００５４】
上述の実施例は、本発明を制限するものよりもむしろ例証するものであり、当業者が、添付の請求の範囲から逸脱することなく、多数の代わりの実施例を設計することが可能であることを注意しなければならない。請求項における如何なる参照符号も請求項の範囲を制限するように解釈されてはならない。「有する・備える」という動詞及びその活用形の使用は、請求項に記載される以外の要素又はステップの存在を排除しない。単数形の構成要素は、複数個の斯様な構成要素の存在を排除しない。本発明は、いくつかの個別の構成要素を有するハードウェアを用いて、及び適切にプログラムされた計算機を用いて実施され得る。いくつかの手段を列挙している装置請求項において、これらの手段のいくつかは１つの同じハードウェアの項目によって、実施化することが可能である。特定の手段が、相互に異なる従属請求項において引用されているという単なる事実は、これらの手段の組み合わせが有利になるように使用されていることができないと示すものではない。
【図面の簡単な説明】
【００５５】
【図１】図１は、本発明を実施化するのに適した電子回路を例示する。
【図２】図２は、本発明に従う調停器の実施例のブロック図を例示する。
【図３】図３は、本発明に従う調停器の回路形成部分の実施例のブロック図を例示する。
【図４】図４は、本発明に従う調停に関する方法によって実行されるステップを含むフロー図を例示する。
【図５】図５は、本発明に従い、データラインにアクセスするのを許可され得る可能な一群の要求を計算するときに実行されるステップを含むフロー図を例示する。
【図１】
2009508247.tif 000004
【図２】
2009508247.tif 000005
【図３】
2009508247.tif 000006
【図４】
2009508247.tif 000007
【図５】
2009508247.tif 000008
【国際調査報告】
2009508247.tif 000009
2009508247.tif 000010