JP2009508247A - バス調停に関する方法及びシステム - Google Patents

バス調停に関する方法及びシステム Download PDF

Info

Publication number
JP2009508247A
JP2009508247A JP2008530683A JP2008530683A JP2009508247A JP 2009508247 A JP2009508247 A JP 2009508247A JP 2008530683 A JP2008530683 A JP 2008530683A JP 2008530683 A JP2008530683 A JP 2008530683A JP 2009508247 A JP2009508247 A JP 2009508247A
Authority
JP
Japan
Prior art keywords
data
data transfer
bus
requests
group
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.)
Ceased
Application number
JP2008530683A
Other languages
English (en)
Inventor
ビヨ トマス
ミリンド エム クルカルニ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2009508247A publication Critical patent/JP2009508247A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

複数のデータ取り扱いユニット110a,….,110d、及び複数のデータラインを有する共有バス140を含むシステムにおいて使用されるべきバス調停に関する方法及びシステムが提供される。本発明は、データ取り扱いユニットからデータ転送要求を受信するステップと、一群のデータ転送要求であって、当該データ転送要求の許可が、最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、一群のデータ転送要求を選択するステップと、前記選択された一群のデータ転送要求を発行したデータ取り扱いユニットが単一のバス周期において前記バスにアクセスすることを許可するステップと、を含む方法、及びこの方法を実行させるシステムを提供する。

Description

本発明は、バス調停に関する方法及びシステムに関し、より特には、本発明は、複数のデータ取り扱いユニットを有するシステムに関するバス調停システムに関する。より特には、本発明は、バス幅の最適利用を可能にし且つ最適な数のデータ取り扱いユニットを作用させる、複数のデータ取り扱いユニットを有するシステムに関するバス調停システム関する。
定義1:後続の記載において、「データ取り扱いユニット」という用語は、処理器及びメモリなどの、バスへのアクセスを有し得るいずれかのユニットを含む。このユニットは、例えば汎用目的処理器など、プログラム可能であり得る、又は所定の機能を有し得る。またデータ取り扱いユニットも、他の可能なデータ取り扱いユニットを除外することなく、1つ以上の処理器を含む。以後、「データ取り扱いユニット」という用語は、「処理器」という用語を置換するために相互交換可能に使用され得る。
定義2:後続の記載において、「データライン」という用語は、アドレスを含む、いかなるデータをも伝達するのに使用されるいかなるラインをも含む。しかし、「アドレスライン」のみに参照がされる場合、「アドレスライン」として断定的に言及される。以後、「データライン」は、「データバス」又は「バス」という用語と相互交換可能に使用され得る。
アドレス/データバスは、複数のデータ取り扱いユニットがメモリなどの共有リソースへのアクセスを得ることを可能にさせる、よく知られる解決法である。従来、1つのデータ取り扱いユニットは、バスを介してデータ及び対応するアドレスを転送するためにバスへのアクセスを一度得る。
最新のデータバスは、非常に広く、多数のビット(例えば64又は128ビット)を含む語を、単一のバス周期においてバスを介して転送させるのを可能にする。(処理器のような)データ取り扱いユニットは、多くの場合、伝達される必要がある語のサイズが利用可能なバス幅の語サイズよりも小さいので、全てのこれらのデータラインを必ずしも使用しない。
米国特許第6,366,984号は、互いに隣接するアドレスを識別することによる、データバスにおけるビットの詰め込みの仕組みを開示している。同様に、欧州特許第465,320号は、書き込み要求を収集し、様々な要求からのデータが単一のバス周期に詰め込まれ得るかを決定するために、要求からのアドレスを比較する書き込みパッカを開示する。
更に、米国特許第5,930,484号は、各データ取り扱いユニットの所定の特性に従い複数のデータ取り扱いユニットへのバスアクセスを可能にする仕組みを開示している。更に、この仕組みは、データバスを副バスへ分割し、データ取り扱いユニットへ供与され得る副バスの最大数を特定し、1つ以上の副バスを1つ以上のデータ取り扱いユニットへ適宜割り当てる。この特許文書において開示される仕組みは、特定される特性に依存し、したがって、利用可能なバス幅の非最適な利用を導き得る。更に、記載される実施例において、共有バスは、64ビット副バス幅をそれぞれ有する副バスへ分割される。
米国特許第5,930,484号に従うシステムが、2つの処理器すなわちP1及びP2を有し、これにより、処理器P1が処理器P2よりも高い優先度を有するようにされると仮定する。最大2つの副バスが、各処理器に対して割り当てられ、そしてそれぞれ16ビット幅である副バスが存在する。このシステムに関して、処理器P1が48ビットデータ転送を要求し、処理器P2が16ビットデータ転送を要求する状況が存在し得る。この場合、米国特許第5,930,484号に記載される方法は、この要求を伝達するために少なくとも2つのバス周期を必要とする。第1のバス周期において、処理器P1の32ビットデータ及びP2の16ビットデータが、48ビットのラインのみを利用する。第2のバス周期において、処理器P1の残りの16ビットデータが転送される。したがって、データを転送するために少なくとも2つのバス周期を必要とする一方で、利用可能な未利用副バスを維持している。
更に、米国特許第5,930,484号に記載される発明は、副バスのサイズが必要とされるデータ転送のサイズよりも大きい場合、多数のデータラインが未利用のままにされ得る。例えば、128ビットデータラインのバスが、それぞれ32ビットラインの副バスに分割される場合、副バスは、それぞれ16ビットのデータ転送要求に関して、16ビットラインを未利用のままにし、これにより、遅いデータ転送を引き起こす。
米国特許第5,930,484号及び他の引用される特許から知られる仕組みは、作用される処理器の数(クライアント/データ取り扱いユニット)を最大化しようと試みるものの、リソースの利用を最適化するいかなる仕組みも提供しない。
本発明の目的は、とりわけ、単一のバス周期において作用(serve)されるクライアントの数を最大化するだけでなく、利用可能なリソースを最適に利用するバス調停に関する方法及びシステムを提供することである。
この目的のために、本発明は、複数のデータ取り扱いユニットからデータ転送要求を受信するとともに、前記複数のデータ取り扱いユニットにおける共有バスのデータラインのアクセスを調停するように構成されるバス調停器であって、
a.1つ以上のデータ取り扱いユニットが単一のバス周期においてデータ転送要求を実行するために前記データバスにアクセスすることを許可するように構成される論理ブロックであって、前記論理ブロックが、アクセスするデータ取り扱いユニットの数の最大化及び単一のバス周期において利用されるデータラインの数の最大化を最適化規準として有する最適化器を含む論理ブロックと、
b.単一のバス周期において前記バスにアクセスするのを可能にさせることに関して1つ以上の未決定のデータ転送要求を許可するために、一群の特定された未決定のデータ転送要求の間において第1の最適化ステップを開始するための未決定のデータ転送要求のスケジュールを登録及び維持することが可能である制御器であって、前記制御器は、更に、前記特定された要求以外のデータ転送要求の間において、未利用のデータラインへのアクセスが前記第1の最適化ステップの後に調停される第2の最適化ステップを開始するように構成される、制御器と、
を備える、バス調停器を提供する。
前記論理ブロックは、データ転送要求を受信し、受信されたデータ転送要求を実行するのに必要なデータラインの数を決定する。論理ブロックは、データラインの全数及びデータ転送要求の全数に従い、単一のバス周期において前記データラインにアクセスするのを可能にされ得る一群のデータ転送要求を特定し、これにより、データラインにアクセスするのを許可される要求の全数が最大になり、また前記バス周期において使用されるデータラインの全数が最大になるようにされる。
更に、前記制御器は、前記データラインにアクセスするのをまだ可能にされていないデータ転送要求を登録する。また更に、制御器は、各データ取り扱いユニットが所定の時間において作用されることを保証するようにスケジュールを維持もする。加えて、制御器は、1つ以上のデータ転送要求が前記所定の時間よりも長い間において未決定であるかを特定する。この場合、制御器は、論理ブロックに、特定されたデータ転送要求へアクセスを許可にするよう命令し、また制御器は、この論理ブロックに、いずれかの未利用のデータラインがまだ存在する場合に、特定されたデータ転送要求以外の一群のデータ転送要求へのアクセスを可能にするようにも命令する。
本発明の一つの態様に従うと、複数のデータ取り扱いユニット、及び複数のデータラインを有する共有バスを含むシステムにおいて使用するバス調停に関する方法であって、
a.前記データ取り扱いユニットからデータ転送要求を受信するステップと、
b.一群の1つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、一群の1つ以上のデータ転送要求を選択するステップと、
c.前記選択された一群のデータ転送要求を発行した前記データ取り扱いユニットに単一のバス周期において前記バスにアクセスさせるのを許可するステップと、
を含む、方法が提供される。
本発明のこの態様は、利用可能なリソースの最適な利用に加えて、単一のバス周期において作用されるクライアントの数の最大化を提供する。
本発明の別の態様に従うと、本発明は、更に、
a.所定の持続時間よりも長い間において未決定であったデータ転送要求を特定するステップと、
b.前記特定されたデータ転送要求のうちから、第1の群の1つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、データ転送要求を選択するステップと、
を含む、方法を提供する。
本発明のこの態様は、データ転送要求が、特定される持続時間内においてリソースにアクセスするのを許可されることを保証する。この持続時間は、データ転送要求が許可される必要がある前までの持続時間として特定され得る。本発明のこの態様は、所定の持続時間よりも長い間において未決定であると特定されるデータ転送要求のうちから一群のデータ転送要求を選択することを許可し、前記一群は、最大数のデータ取り扱いユニットを作用させ、また最大数のデータラインを利用する。
本発明の更なる態様に従うと、前記方法は、
a.前記第1の群のデータ転送要求を選択した後に、データラインが未利用であるかを決定するステップと、
b.前記特定されたデータ転送要求のうちから第2の群の1つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数の決定された未利用のデータラインを利用させるような、データ転送要求を選択するステップと、
c.前記第1及び第2の群のデータ転送要求を発行した前記データ取り扱いユニットに、単一のバス周期において前記バスにアクセスさせるのを許可するステップと、
を含む。
本発明のこの態様は、第1の群のデータ転送要求が選択された後に未利用のデータラインを決定するのを可能にする。例えば、所定の持続時間よりも長い間において未決定である一群のデータ転送要求が存在する場合、第1の段階の選択は、前記所定の持続時間よりも長い間において未決定であるデータ転送要求のうちから実行される。前記第1の群が選択された後で、最大数のデータ取り扱いユニットが作用され、且つ最大数のデータラインが利用されるようにされ、なお1つ以上のデータラインが未利用であり得る。この場合、残りのデータラインに関して、利用可能なリソースの最大利用を保証するために、前記特定されたデータ転送要求以外のデータ転送要求のうちから、第2の群が選択される。
本発明のより更なる態様に従うと、前記データ取り扱いユニットを許可するステップが、各受信及び作用される要求を登録及びスケジューリングするステップを含む。本発明のこの態様は、いずれかのデータ転送要求が所定の持続時間よりも長い間において未決定であるかを決定するのに使用され得る各データ転送要求の時間ログを維持するための仕組みを可能にする。これに従うと、未決定の要求は、所与の時間内に作用されることを保証され得る。
本発明の別の態様に従うと、前記特定するステップが、データ転送要求が前記バスへのアクセスを許可される必要がある持続時間を決定するステップ、を含む。本発明のこの態様は、データ転送要求が作用されることを予想され得る持続時間をプログラムする柔軟性を提供する。
本発明の更に別の態様に従うと、前記選択するステップが、任意選択的に、複数の群の要求のうちから、相対的に高い数の古いデータ転送要求を含む一群のデータ転送要求を選択するステップを提供し、前記データ転送要求の許可は、最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインの利用を生じさせる。本発明のこの態様は、複数の群のデータ転送要求であって、当該データ転送要求の許可が、同一の数のデータ取り扱いユニット及び同一の数のリソース利用をサービスさせるようにするデータ転送要求のうちから、アクセスを許可され得る一群のデータ転送要求を選択する柔軟性を提供する。
本発明のこれら及び他の態様は、図面を参照してより詳細に説明される。
本発明を実施化するのに使用され得る電子回路が示される図1に参照がされる。例示を目的とするこの例において、データ取り扱いユニットは、明確な理解のために、処理器及びメモリによって特定される。しかし、当業者は、処理器若しくはメモリ又はその両方が、本発明の基本概念から逸脱することなく、他のデータ取り扱いユニットの群と交換、置換、又は再構成され得ることを理解する。
図1の回路100は、複数の処理器すなわちデータ取り扱いユニット110a〜d、バスインターフェイス120、バス140、及び複数のメモリ若しくは別の群のデータ取り扱いユニット160a及びbを含む。各処理器110a〜dは、アドレス出力A、データ出力D、及び制御入力/出力を有し得る。制御入力/出力は、転送されるべきデータの語サイズ及び/又は処理器を特定するための情報を提供し得、またアドレスのサイズも提供し得る。バスインターフェイス120は、アドレス及びデータ出力をバス140へ接続し、メモリ160a及びbは、アドレス及びデータ情報を受信するためにバス140へ接続される。バス140は、複数のアドレスライン、64又は128のデータラインなどの複数のデータライン及び制御ラインを含む。
例証のために、処理器110a〜dは、データ出力のみを有するように示されるが、処理器は、データ入力、バスインターフェイス120に接続されるデータ入力又は一群のデータ出力を有し得ることを理解されるべきである。処理器110a〜dが図1において示されるが、いずれの他の種類のデータ取り扱い回路も使用され得ることを理解されるべきである。同様に、例証のために2つのメモリがバス140に接続されて示されるが、必ずしも全てのメモリではないものの、多数の他の回路が、バス140に接続され得る、又は1つの回路のみがバス140に接続され得ることを理解され得る。
動作において、処理器110a〜dは、データを生成しこのデータをメモリ160a〜bにおける場所に書き込む、又はメモリ160a、...、dからデータを読み出す。この目的に関して、処理器110a〜dは、読み出し/書き込み要求を発生し、入力をインターフェイス120へ供給する。バスインターフェイスへの入力は、データ及びアドレス、又はアドレスのみであり得る。バスインターフェイス120は、バス周期において動作する。各バス周期において、バスインターフェイス120は、データ/アドレスビットを選択的にバス140のデータ/アドレスラインへ渡す。メモリ160a〜bは、バス140からアドレスを受信し、これらをデータが書き込まれている場所を選択するために使用する。本発明に従うインターフェイス120は、異なる処理器110a〜dから/へのデータを順序つけるために、データ転送要求の間において調停を行う。インターフェイス120は、バスにおいてデータ及びアドレスを開放する制御器を有する。
ここで、複数の入力230を受信し、複数の出力220を供給する、バスインターフェイス120における調停器210のブロック図200を示す図2が参照される。調停器210は、処理器を区別して特定する入力及び前記処理器によって作成されたデータ転送要求を受信し得る。更に、調停器210は、通信のために処理器によって要求されるデータ/アドレスのサイズを特定する入力も受信し得る。出力220を用いて、調整器は、データ/アドレス転送を可能にするバスインターフェイス120(図1)におけるスイッチ及び/又はを有効化することによって、通信のために、特定されたデータ若しくはアドレス、又は両方の開放を有効化し得る。
ここで、図2の調停器210における回路のブロック図300を示す図3が参照される。回路300は、論理ユニット310、320及び330を含む。これらの論理ユニットは、最大数の処理器がデータラインにアクセスするのを許可される一方で、データラインの最適な利用も保証するように、データ転送要求又はデータ転送に関する一群の要求を選択する。ブロック300は、更に、所与の要求が所定の時間内において作用されることを保証するために、論理ユニット310、320及び330に接続される制御器340を具備される。制御器340は、プログラム可能であり得る、又は要求が本質的に作用されるべき持続時間に関する所定の設定を有し得る。制御器340がプログラム可能である場合、命令を実行する経過においてプログラムされ得る、又は命令を実行する前にプログラムされ得る。制御器340は、未決定の要求を登録及び動的に更新もする。当業者は、論理ユニット310、320及び330の機能が、異なる環境(「異なる環境」は、後になってより明らかになる)において一群のデータ転送要求を選択するのと同一の機能を有し、この機能は、単一の論理ユニットを適宜プログラムすることによって、1つのみの論理ユニットを使用して実行され得ることを理解する。代わりに、論理ユニット310、320及び330は、単一の論理ブロックにおいて詰められ得る。しかし、この説明において例示、簡素化、明確性の目的のために、これらのユニットは、個別のブロックとして示される。
ブロック300の動作は、以下のように理解され得る。論理ユニット310及び320の両方は、処理器を固有に特定する入力及び前記処理器によって作成される対応する要求を受信し得る。更に、前記論理ユニット310及び320は、通信のために各処理器によって要求されるデータ/アドレスのサイズを特定する入力も受信し得る。論理ユニット310及び論理ユニット320は、更に、利用するために入手可能なデータライン幅に関する情報を提供される。論理ユニット330は、論理ユニット310及び320、並びに制御器340からの入力を受信する。論理ユニット330は、データバスにアクセスするのを最終的に許可され得るデータ転送要求の選択された一群を供給する。
始めに、何の要求もデータ転送に関して存在しない場合、制御器340は、待機している要求が「無い」ことを示すように設定される。この場合、制御器は、論理ユニット320を無効にし、論理ユニット330を透明ブロックとして動作するように設定する。データ転送要求を受信すると、論理ユニット310は、データラインにアクセスするのを許可され得、且つ最大数の要求を作用させ得るような、データ転送要求の全ての可能な群を計算する。最大数の要求を作用させ得るこのような群が、1つより多く存在する場合、論理ユニット310は、選択されたデータ転送要求に関してデータラインへのアクセスを可能にする、データライン幅の最高値を利用し得る一群の要求を選択する。
更に、最大数のデータ転送要求へサービスを可能にし且つ最大可能な数のデータライン幅を利用する1つより多い群が存在する場合、論理ユニット310は、相対的に高い数の相対的に古いデータ転送要求を有する一群を選択し得る。論理ユニット310は、この場合、未決定のデータ転送要求に関して制御器340を更新する。
制御器340が1つ以上のデータ転送要求が所定の持続時間よりも長い間において未決定であると決定する場合、制御器340は、論理ユニット320及び論理ユニット330を有効化し、入手可能な要求を論理ユニット330へ渡すように論理ユニット310を設定する。論理ユニット320は、前記特定された未決定の要求のうちからデータ転送要求の全ての可能な群を計算し、先立つ場合における論理ユニット310と正確に同様な方法で、可能な群を選択する。計算が完了すると、論理ユニット320は、出力を論理ユニット330へ供給する。論理ユニット320が一群のデータ転送要求を選択した後で、論理ユニット330は、通信に関して使用され得る入手可能ないずれかの更なるデータラインが存在するかを確認する。存在する場合、論理ユニット330は、論理ユニット310に関して説明されたのと同様な方法で、入手可能なデータラインを介してアクセスを許可され得る特定された要求以外の要求に関する計算を実行する。
データラインにアクセスするのを許可され得るデータ転送要求の可能な群を計算する一方で、論理ユニット310、320及び330は、データ−アドレスのサイズを含むように、且つ所与のバス(データライン)周期においてデータ及びアドレスラインへのアクセスを許可する信号を送信するようにプログラムされ得、又は他方で、データのアドレスは、個別に特定されるアドレス伝達ラインにおいて連続的に伝達され得る。
データ転送要求の可能な組合せを計算するために、論理ユニット310、320及び330は、以下の式を使用する。

群GのサブセットSを、
|S|が最大であり、且つ
Sの要素のデータサイズの合計が、Max_Bus_Width以下である、
ように選択し、

ここで、Gは一群の全ての利用可能な要求である。Sは一群の要求であり且つGのサブセットであり、データラインへアクセスするのを許可され得る要求の可能な群のうちの1つに対応する。|S|はサブセットSにおける要求の数であり、Max_Bus_widthは、入手可能なデータラインの最大数である。上述されるように、|S|が同一であるような1つより多いサブセットSが存在する場合、論理ユニットは、最高数のデータラインを利用し得るサブセットを選択し、選択されたデータ転送要求に関してデータラインへのアクセスを有効化するために、ブロック300の出力において制御信号を送信し得る。更に、最大数のデータ転送要求へのサービスを可能にし且つ最大可能な数のデータライン幅を利用する1つより多い群が存在する場合、論理ユニット310、320及び330は、相対的に高い数の相対的に古いデータ転送要求を有する一群を選択し得る。各論理ユニットは、選択処理の終了において制御器340を更新する。
上記の記載から、論理ユニット310、320及び330は、「異なる環境」に関して機能的であることが明らかである。すなわち、論理ユニット310は何の特定される未決定の要求も存在しない場合に一群のデータ転送要求を選択し、論理ユニット320は特定される未決定の要求のうちから一群のデータ転送要求を選択し、論理ユニット330は、論理ユニット320が一群の特定される未決定要求を選択し、1つ以上のデータラインを未利用に残した後で、未利用のデータラインのみに関して、特定されるデータ転送要求以外に関する別の群のデータ転送要求を選択する。
ここで、本発明の方法及びシステムに従うバス調停スキームに関する制御シーケンスを例証する高レベル論理フロー図400を与える図4に参照がされる。記載されるように、この処理は、ブロック401において開始し、その後ブロック402へ渡される。ブロック402は、サービスされるべきいずれかの要求が存在するかを確認する。入手可能な要求が存在する場合、制御は、ブロック404へ移動する。そうでない場合、ブロック402における要求に関する確認は、次のバス要求が入手可能になるまで反復する。
ブロック404において、所定の持続時間よりも長い間において未決定である要求を特定するための確認が実行される。(図3に示される)制御器340は、この特定を実行する。制御器340が、特定の要求が所定の持続時間よりも長い間において未決定であることを決定する場合、制御はブロック405へ渡される。
ブロック405において、制御器340によって特定された要求のうちから最大数のデータ取り扱いユニットを作用させるために、許可されるべき一群の要求を決定するための計算が実行される。ブロック405の後で、制御は、ブロック409へ渡され、ブロック409は1つより多い群が405において規準を満たすかを確認する。
ブロック418は、ある一群の許可が最高数のデータラインの利用を達成するような一群を特定するための確認を実行する。より多くの利用を達成する単一の群が存在する場合、制御ブロック420は、この群を選択し、出力信号を供給し、制御ブロック421は、制御器340を更新する。ブロック418に戻ると、複数の群が等しく規準を満たす場合、制御ブロック419は、最高数の相対的に古い要求を作用するいずれかの群を選択し(タイミングの詳細は、制御器340によって特定され)、ブロック421は、制御器340を更新する。その後制御はブロック411へ渡される。
ブロック411において、選択された群の許可がシステムにおける全てのデータラインの占拠になるかが検証される。1つ以上のデータラインがなお通信に関して入手可能である場合、制御はブロック413へ移動する。
ブロック413において、特定される未決定の要求以外の一群のデータ転送要求が決定され、また一群のデータ転送要求は、前記要求のうちから未利用のデータラインを介して通信するために決定される。一群のデータ転送要求の選択は、その一群が最大数のデータ取り扱いユニットを作用させ、最大数の入手可能なデータラインを利用するように、行われる。
その後、制御は、ブロック407へ渡される。このブロックは、1つ以上の群が上記の規準を満たすかを特定する。そのような場合、制御は、ブロック414へ移動し、複数の群のうちの1つのみの許可が、他の群のそれぞれの許可よりも多くのデータライン利用性を達成するかを保証するための確認が実行される。そうである場合、最大数のデータラインを利用する群が選択される。ブロック417は制御器340を更新し、制御を開始ブロック401へ渡す。ブロック414へ戻ると、複数の群が等しく規準を満たす場合、制御ブロック416は、最高数の相対的に古い要求を作用するいずれかの群を選択する。ここで、タイミングの詳細は、制御器340によって特定される。ブロック416は、出力信号を供給し、ブロック417は、制御器340において作用される且つ未決定の要求の詳細を更新し、その後制御は開始ブロック401へ渡る。
ブロック411に戻ると、確認により何の残っている入手可能なデータラインも存在しないと決定される場合、制御はブロック412へ移動する。このブロックは、作用されるべき選択された群の要求を提供し、作用される且つ未決定の要求の詳細を制御器340へ更新する。その後、制御は開始ブロック401へ渡される。
ブロック407に戻ると、前記規準を満たす1つのみの群が存在する場合、制御は、この唯一の群を選択し且つ作用される且つ未決定の要求の詳細を制御器340へ更新するブロック408へ移動する。
ブロック409に戻ると、1つのみの群が前記規準を満たす場合、制御は、この群を選択し且つ作用される且つ未決定の要求の詳細を制御器340へ更新するブロック410へ移動する。ここで、ブロック411において、ブロック410において選択された群がシステムにおいて全てのデータライン(すなわちバス全体)を占拠するかを調べるための確認が実行される。もしそうである場合、制御は、ブロック413へ移動し、ブロック413からの制御フローは、上記で説明されるとおりである。もしそうでない場合、ブロック412において、前記群が選択され、作用される且つ未決定の要求の詳細は、制御器340において更新される。ブロック412は、制御を開始ブロック401へ渡す。
ブロック404へ戻ると、制御器340が所定の持続時間より長く未決定である要求を特定していなかった場合、制御は、ブロック406へ渡される。ブロック406において、一群の要求であって、当該要求の許可が最大数のデータ取り扱いユニットを作用させるような、一群の要求を決定するための計算が実行される。ブロック406の後で、制御は、1つより多い群が406において規準を満たすかを確認するブロック407へ渡される。もしそうである場合、制御はブロック414へ移動し、この制御は、ブロック414から上記で説明されるように移動する。もしそうでない場合、制御はブロック408へ移動し、前記群が選択され、作用される及び未決定の要求に関する詳細は、制御器340へ更新される。最終的に、制御は、開始ブロック401へ渡される。
ここで、図5に参照がされる。図5は、制御器340によって特定される要求を含む全ての入手可能な要求のうちから一群の要求を決定するステップを説明する。記載されるように、この処理は、ブロック501において開始し、ブロック502へ渡される。ブロック502において、入手可能なデータラインの全数、データ転送要求の数、及び各要求による転送に関して要求されたデータのサイズ、についてを示す情報が受信され、制御はブロック503へ転送され、パラメータMax_Bus_Widthは、入手可能なデータラインの全数の捕捉された値に設定される。追加的に、ブロック503は、入手可能な要求に基づき、全ての入手可能な要求の群Gを形成する。この情報は、ブロック504に渡される。ブロック504において、以下の規準:

1.|S|が最大であり、ここで|S|はサブセットSにおける要求の数である、
2.Sの要素のデータサイズの合計が、Max_Bus_Width以下である、

に従い、群Gから可能なサブセットSを見つけ出すための計算が実行される。
ブロック505は、全ての可能なサブセットSについての情報を提供し、制御フローはこの処理に関して終了する。
ここで、表1に参照がされ、表1は、共有バス、複数のデータ取り扱いユニット(処理器)、共有バスの調停アクセスに関して前記処理器から入力を受信する調停器を有するシステムにおいて使用する、本発明に従う調停スキームに関する例を例証する。この例において、共有バスサイズは、64であり、そしてこのバスにアクセスする4つ以上の処理器が存在する。各処理器が16ビット、32ビット又は64ビットのデータ転送要求を作成し得ることを仮定し、また制御器が所定の持続時間よりも長い間において未決定である要求を何も示さないことを仮定する。この場合、表1は、作用される要求の数及び本発明に従う一群の要求に関するバス幅利用性を記載する。例示の目的に関して、表1における各行は、特定の瞬間における入手可能な(ビット)サイズ、作用される要求の数、及びバス幅利用性、を一覧にする。「X」というエントリは、0又はそれ以上の数の要求の存在を示す。
行1を検討する。これは、16の語サイズを有する4つ以上の要求が存在する状況に対応する。加えて、同時に入手可能な複数の32ビット及び64ビットの要求も存在し得る。64ビットのデータバス幅を検討すると、アービター(arbiter)は、32ビット及び64ビットの転送に関する要求の数にかかわらず、4つの16ビット要求へバスを供与するよう選択する。すなわち、前記選択は、作用される処理器の数及びデータバス幅利用性の両方を最大化する。エントリ4は、この要求が調停ポリシによって選択されることの表示として影付きエントリとして示される。異なる行は、64ビットデータバス及び16、32、 64ビット要求サイズに関する要求の種類の様々な状況を示す。これは、提案された調停ポリシを例示する例としての役目を果たし、本発明の範囲を制限しない。
Figure 2009508247
本発明の方法及びシステムの記載される実施例における順序は、強制的なものではなく、単に例示的なものである。本発明の範囲は、記載される実施例に制限されない。当業者は、本発明において意図される思想から逸脱することなく、スレッディングモデル、多処理器システム又は多重処理を同時に使用して、ステップの順序を変更する、又はステップを実行し得る。いずれかのこのような実施例も、本発明の範囲に含まれ、保護の主な目的である。
上述の実施例は、本発明を制限するものよりもむしろ例証するものであり、当業者が、添付の請求の範囲から逸脱することなく、多数の代わりの実施例を設計することが可能であることを注意しなければならない。請求項における如何なる参照符号も請求項の範囲を制限するように解釈されてはならない。「有する・備える」という動詞及びその活用形の使用は、請求項に記載される以外の要素又はステップの存在を排除しない。単数形の構成要素は、複数個の斯様な構成要素の存在を排除しない。本発明は、いくつかの個別の構成要素を有するハードウェアを用いて、及び適切にプログラムされた計算機を用いて実施され得る。いくつかの手段を列挙している装置請求項において、これらの手段のいくつかは1つの同じハードウェアの項目によって、実施化することが可能である。特定の手段が、相互に異なる従属請求項において引用されているという単なる事実は、これらの手段の組み合わせが有利になるように使用されていることができないと示すものではない。
図1は、本発明を実施化するのに適した電子回路を例示する。 図2は、本発明に従う調停器の実施例のブロック図を例示する。 図3は、本発明に従う調停器の回路形成部分の実施例のブロック図を例示する。 図4は、本発明に従う調停に関する方法によって実行されるステップを含むフロー図を例示する。 図5は、本発明に従い、データラインにアクセスするのを許可され得る可能な一群の要求を計算するときに実行されるステップを含むフロー図を例示する。

Claims (9)

  1. 複数のデータ取り扱いユニット、及び複数のデータラインを有する共有バス、を含むシステムにおいて使用するバス調停に関する方法であって、
    a.前記データ取り扱いユニットからデータ転送要求を受信するステップと、
    b.一群の1つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、データ転送要求を選択するステップと、
    c.前記選択された一群のデータ転送要求を発行した前記データ取り扱いユニットが単一のバス周期において前記バスにアクセスすることを許可するステップと、
    を含む、方法。
  2. 請求項1に記載の方法であって、前記方法が、更に、
    a.所定の持続時間よりも長い間において未決定であったデータ転送要求を特定するステップと、
    b.前記特定されたデータ転送要求のうちから、第1の群の1つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインを利用させるような、データ転送要求を選択するステップと、
    を含む、方法。
  3. 請求項2に記載のバス調停に関する方法であって、前記方法が、更に、
    a.前記第1の群のデータ転送要求を選択した後に、データラインが未利用であるかを決定するステップと、
    b.前記特定されたデータ転送要求以外のデータ転送要求のうちから、第2の群の1つ以上のデータ転送要求であって、当該データ転送要求の許可が最大数のデータ取り扱いユニットを作用させ且つ最大数の決定された未利用のデータラインを利用させるような、データ転送要求を選択するステップと、
    c.前記第1及び第2の群のデータ転送要求を発行した前記データ取り扱いユニットが単一のバス周期において前記バスにアクセスすることを許可するステップと、
    を含む、方法。
  4. 請求項1又は3に記載のバス調停に関する方法であって、前記データ取り扱いユニットを許可するステップが、各受信及び作用される要求を登録及びスケジューリングするステップを含む、方法。
  5. 請求項3又は4に記載のバス調停に関する方法であって、前記特定するステップが、データ転送要求が前記バスへのアクセスを許可される必要がある前までの持続時間を決定するステップを含む、方法。
  6. 請求項1、2又は3のいずれか1項に記載の方法であって、前記選択するステップが、任意選択的に、複数の群の要求のうちから、相対的に高い数の古いデータ転送要求を含む一群のデータ転送要求を選択するステップを提供し、前記データ転送要求の許可が、最大数のデータ取り扱いユニットを作用させ且つ最大数のデータラインの利用を生じさせるような、方法。
  7. 複数のデータ取り扱いユニットからデータ転送要求を受信するとともに、共有バスのデータラインのアクセスを前記複数のデータ取り扱いユニットの間において調停するように構成されるバス調停器であって、
    a.1つ以上のデータ取り扱いユニットが単一のバス周期においてデータ転送要求を実行するために前記データバスにアクセスすることを許可するように構成される論理ブロックであって、前記論理ブロックが、アクセスするデータ取り扱いユニットの数の最大化及び単一のバス周期において利用されるデータラインの数の最大化を最適化規準として有する最適化器を含む論理ブロックと、
    b.単一のバス周期において前記バスにアクセスするのを可能にさせることに関して1つ以上の未決定のデータ転送要求を許可するために、一群の特定された未決定のデータ転送要求の間において第1の最適化ステップを開始するための未決定のデータ転送要求のスケジュールを登録及び維持することが可能である制御器であって、前記制御器は、更に、前記特定された要求以外のデータ転送要求の間において、未利用のデータラインへのアクセスが前記第1の最適化ステップの後に調停される第2の最適化ステップを開始するように構成される、制御器と、
    を備える、バス調停器。
  8. 請求項7に記載のバス調停器であって、前記制御器が、前記要求が所定の時間よりも長い間において未決定である場合、要求を特定する、バス調停器。
  9. 請求項8に記載のバス調停器であって、前記所定の時間が、データ転送要求が許可される必要がある持続時間に対応する、バス調停器。
JP2008530683A 2005-09-14 2006-09-07 バス調停に関する方法及びシステム Ceased JP2009508247A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05108430 2005-09-14
PCT/IB2006/053148 WO2007031912A1 (en) 2005-09-14 2006-09-07 Method and system for bus arbitration

Publications (1)

Publication Number Publication Date
JP2009508247A true JP2009508247A (ja) 2009-02-26

Family

ID=37685803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008530683A Ceased JP2009508247A (ja) 2005-09-14 2006-09-07 バス調停に関する方法及びシステム

Country Status (5)

Country Link
US (2) US7765350B2 (ja)
EP (1) EP1927054A1 (ja)
JP (1) JP2009508247A (ja)
CN (1) CN101263465B (ja)
WO (1) WO2007031912A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
KR100813256B1 (ko) * 2006-06-23 2008-03-13 삼성전자주식회사 버스 중재 장치 및 방법
EP2523101B1 (en) 2006-11-14 2014-06-04 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
TWI385528B (zh) * 2008-12-22 2013-02-11 Univ Ishou Arbitration device for system bus
US8639885B2 (en) * 2009-12-21 2014-01-28 Oracle America, Inc. Reducing implementation costs of communicating cache invalidation information in a multicore processor
US8195883B2 (en) * 2010-01-27 2012-06-05 Oracle America, Inc. Resource sharing to reduce implementation costs in a multicore processor
JP2012014397A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 入出力制御装置、及び情報処理装置
KR101685247B1 (ko) 2010-09-17 2016-12-09 소프트 머신즈, 인크. 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
EP2689326B1 (en) 2011-03-25 2022-11-16 Intel Corporation Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
TWI518504B (zh) 2011-03-25 2016-01-21 軟體機器公司 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的暫存器檔案節段
KR101638225B1 (ko) 2011-03-25 2016-07-08 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 명령어 시퀀스 코드 블록의 실행
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
US9940134B2 (en) * 2011-05-20 2018-04-10 Intel Corporation Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
KR101703400B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 마이크로프로세서 가속 코드 최적화기
IN2014CN03678A (ja) 2011-11-22 2015-09-25 Soft Machines Inc
US8856415B2 (en) 2012-02-01 2014-10-07 National Instruments Corporation Bus arbitration for a real-time computer system
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
CN105247484B (zh) 2013-03-15 2021-02-23 英特尔公司 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9798686B2 (en) * 2014-11-19 2017-10-24 Silicon Laboratories Inc. Slave side bus arbitration
US9760297B2 (en) * 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
CN110880998B (zh) * 2019-12-03 2022-09-20 锐捷网络股份有限公司 一种基于可编程器件的报文传输方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03252847A (ja) * 1990-03-02 1991-11-12 Nec Corp システムバス調停方式
JPH09223103A (ja) * 1996-02-15 1997-08-26 Ricoh Co Ltd 情報処理システム
JPH10177543A (ja) * 1996-12-18 1998-06-30 Matsushita Electric Ind Co Ltd バス制御回路
JP2001297056A (ja) * 2000-04-11 2001-10-26 Canon Inc 調停回路及びdmaコントローラ
JP2002091902A (ja) * 2000-09-13 2002-03-29 Nec Kofu Ltd バス調停方法及び情報処理装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604743A (en) 1984-11-21 1986-08-05 North American Philips Corporation Bus structure for an image processor
US4908749A (en) * 1985-11-15 1990-03-13 Data General Corporation System for controlling access to computer bus having address phase and data phase by prolonging the generation of request signal
US5025370A (en) * 1986-09-02 1991-06-18 Koegel Robert J Circuit for preventing lock-out of high priority requests to a system controller
CA2045756C (en) 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5446845A (en) * 1993-09-20 1995-08-29 International Business Machines Corporation Steering logic to directly connect devices having different data word widths
WO1996041274A1 (en) * 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Dynamically reconfigurable data bus
US5881247A (en) * 1995-11-30 1999-03-09 Allen-Bradley Company Llc System having a plurality of frame bytes capable of identifying addressed recipients and assert a busy signal onto the backplane bus to forthrightly abort the message transfer
US5930484A (en) * 1997-09-18 1999-07-27 International Business Machines Corporation Method and system for input/output control in a multiprocessor system utilizing simultaneous variable-width bus access
US5913044A (en) * 1997-09-18 1999-06-15 International Business Machines Corporation Method and system for simultaneous variable-width bus access in a multiprocessor system
US6366984B1 (en) * 1999-05-11 2002-04-02 Intel Corporation Write combining buffer that supports snoop request
EP1309864B1 (en) * 2000-08-16 2005-12-28 Council of Scientific and Industrial Research A rapid method for microwave mediated enzyme-linked immunosorbent assay
US6820148B1 (en) * 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
US6820152B2 (en) * 2001-04-25 2004-11-16 Matsushita Electric Industrial Co., Ltd. Memory control device and LSI
DE602004018371D1 (de) 2003-11-13 2009-01-22 Koninkl Philips Electronics Nv Elektronische datenverarbeitungsschaltung, die gepackte wörter über einen bus sendet

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03252847A (ja) * 1990-03-02 1991-11-12 Nec Corp システムバス調停方式
JPH09223103A (ja) * 1996-02-15 1997-08-26 Ricoh Co Ltd 情報処理システム
JPH10177543A (ja) * 1996-12-18 1998-06-30 Matsushita Electric Ind Co Ltd バス制御回路
JP2001297056A (ja) * 2000-04-11 2001-10-26 Canon Inc 調停回路及びdmaコントローラ
JP2002091902A (ja) * 2000-09-13 2002-03-29 Nec Kofu Ltd バス調停方法及び情報処理装置

Also Published As

Publication number Publication date
US20100257296A1 (en) 2010-10-07
US7765350B2 (en) 2010-07-27
CN101263465A (zh) 2008-09-10
US8041869B2 (en) 2011-10-18
EP1927054A1 (en) 2008-06-04
CN101263465B (zh) 2011-11-09
US20080256278A1 (en) 2008-10-16
WO2007031912A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
JP2009508247A (ja) バス調停に関する方法及びシステム
JP6755935B2 (ja) 共有メモリコントローラおよびそれを使用する方法
US7689732B2 (en) Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
EP3352090A1 (en) Multi-channel dma system with command queue structure supporting three dma modes
JPS60246460A (ja) デジタルコンピユ−タ−システムで交信路の制御を割当てる調停機構
JPH08297632A (ja) 分割トランザクション・バス・プロトコルを可能にするバスに対するアービトレーション方法及び装置
US7225281B2 (en) Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US8213461B2 (en) Method of designating slots in a transmission frame for controlling transmission of data over an interconnect coupling a plurality of master units with a plurality of slave units
WO2003001388A1 (en) System and method for controlling bus arbitration during cache memory burst cycles
US9984014B2 (en) Semiconductor device
US7065594B2 (en) Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
EP1811393A1 (en) Method and system for data transfer
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US8533377B2 (en) System and method for allocating transaction ID in a system with a plurality of processing modules
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
US7979615B1 (en) Apparatus for masked arbitration between masters and requestors and method for operating the same
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
JP2003517681A (ja) 共用資源アービトレーション方法及び装置
KR100973419B1 (ko) 버스 중재 방법 및 장치
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
EP2538336A2 (en) System and method for allocating memory resources
US7325088B2 (en) Management of indexed registers in a system on a chip
US11620083B2 (en) Method for implementing predictable latency mode feature in SSD, and non-volatile memory (NVM) based storage device
US7975086B1 (en) Apparatus for real-time arbitration between masters and requestors and method for operating the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110711

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20120828