(57)【要約】本発明に係る調停を実行する装置は、調停の公平さを増加し、システムの遅延を低減し、システムのスループットを増加し、より複雑なシステムでの使用に適する。例示的な実施の形態によれば、本装置１０は、複数のエージェント２０〜５０に対応する複数の調停番号を生成するジェネレータ３００、及び、エージェントのうちの１つを選択して、調停番号に基づいてエージェントにより共有されるリソースにアクセスする回路４００を含む。少なくとも１つの調停番号は、複数のパラメータに対応する複数のフィールド２１０〜２７０を含む。
2009543183.tif 000002
【特許請求の範囲】
【請求項１】
調停を実行する方法であって、
複数のエージェントに対応する複数の調停の番号を生成するステップと、
前記エージェントのうちの１つを選択して、前記調停の番号に基づいて前記エージェントにより共有されるリソースにアクセスするステップとを含み、
前記調停の番号の少なくとも１つは、複数のパラメータに対応する複数のフィールドを含む、
ことを特徴とする方法。
【請求項２】
最も高い前記調停の番号を有する前記エージェントは、前記リソースにアクセスするために選択される、
請求項１記載の方法。
【請求項３】
前記フィールドのうちの第一のフィールドは、前記エージェントのうちの第一のエージェントについてスタティックな優先度の値を示し、前記フィールドのうちの第二のフィールドは、前記第一のエージェントについて帯域幅の値を示し、前記フィールドのうちの第三のフィールドは、前記第一のエージェントが前記リソースへのアクセスを要求してからの時間量を示す、
請求項１記載の方法。
【請求項４】
前記複数のフィールドは、前記第一のフィールドが前記第二のフィールドよりも重要なビット位置を占め、前記第二のフィールドが前記第三のフィールドよりも重要なビット位置を占める、多数の連結されたビットとして表される、
請求項３記載の方法。
【請求項５】
前記第二のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されたときにデクリメントされる、
請求項３記載の方法。
【請求項６】
前記第三のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択された場合に予め定義された値に設定される、
請求項３記載の方法。
【請求項７】
前記第三のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されない場合にインクリメントされる、
請求項３記載の方法。
【請求項８】
前記複数のフィールドは、前記第一のエージェントについて動的な優先度の値を示す第四のフィールドをさらに含む、
請求項３記載の方法。
【請求項９】
前記第四のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されない場合にインクリメントされる、
請求項８記載の方法。
【請求項１０】
前記複数のフィールドは、前記第三のフィールドが最大値に到達した場合に予め定義された値に設定される第五のフィールドをさらに含む、
請求項８記載の方法。
【請求項１１】
複数のエージェントに対応する複数の調停の番号を生成する手段と、
前記エージェントのうちの１つを選択して、前記調停の番号に基づいて前記エージェントにより共有されるリソースにアクセスする手段を含み、
前記調停の番号の少なくとも１つは、複数のパラメータに対応する複数のフィールドを含む、
ことを特徴とする装置。
【請求項１２】
最も高い前記調停の番号を有する前記エージェントは、前記リソースにアクセスするために選択される、
請求項１１記載の装置。
【請求項１３】
前記フィールドのうちの第一のフィールドは、前記エージェントのうちの第一のエージェントについてスタティックな優先度の値を示し、前記フィールドのうちの第二のフィールドは、前記第一のエージェントについて帯域幅の値を示し、前記フィールドのうちの第三のフィールドは、前記第一のエージェントが前記リソースへのアクセスを要求してからの時間量を示す、
請求項１１記載の装置。
【請求項１４】
前記複数のフィールドは、前記第一のフィールドが前記第二のフィールドよりも重要なビット位置を占め、前記第二のフィールドが前記第三のフィールドよりも重要なビット位置を占める、多数の連結されたビットとして表される、
請求項１３記載の装置。
【請求項１５】
前記第二のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されたときにデクリメントされる、
請求項１３記載の装置。
【請求項１６】
前記第三のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択された場合に予め定義された値に設定される、
請求項１３記載の装置。
【請求項１７】
前記第三のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されない場合にインクリメントされる、
請求項１３記載の装置。
【請求項１８】
前記複数のフィールドは、前記第一のエージェントについて動的な優先度の値を示す第四のフィールドをさらに含む、
請求項１３記載の装置。
【請求項１９】
前記第四のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されない場合にインクリメントされる、
請求項１８記載の装置。
【請求項２０】
前記複数のフィールドは、前記第三のフィールドが最大値に到達した場合に予め定義された値に設定される第五のフィールドをさらに含む、
請求項１８記載の装置。
【請求項２１】
複数のエージェントに対応する複数の調停の番号を生成するジェネレータと、
前記エージェントのうちの１つを選択して、前記調停の番号に基づいて前記エージェントにより共有されるリソースにアクセスする回路とを含み、
前記調停の番号の少なくとも１つは、複数のパラメータに対応する複数のフィールドを含む、
ことを特徴とするアービタ。
【請求項２２】
最も高い前記調停の番号を有する前記エージェントは、前記リソースにアクセスするために選択される、
請求項２１記載のアービタ。
【請求項２３】
前記フィールドのうちの第一のフィールドは、前記エージェントのうちの第一のエージェントについてスタティックな優先度の値を示し、前記フィールドのうちの第二のフィールドは、前記第一のエージェントについて帯域幅の値を示し、前記フィールドのうちの第三のフィールドは、前記第一のエージェントが前記リソースへのアクセスを要求してからの時間量を示す、
請求項２１記載のアービタ。
【請求項２４】
前記複数のフィールドは、前記第一のフィールドが前記第二のフィールドよりも重要なビット位置を占め、前記第二のフィールドが前記第三のフィールドよりも重要なビット位置を占める、多数の連結されたビットとして表される、
請求項２３記載のアービタ。
【請求項２５】
前記第二のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されたときにデクリメントされる、
請求項２３記載のアービタ。
【請求項２６】
前記第三のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択された場合に予め定義された値に設定される、
請求項２３記載のアービタ。
【請求項２７】
前記第三のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されない場合にインクリメントされる、
請求項２３記載のアービタ。
【請求項２８】
前記複数のフィールドは、前記第一のエージェントについて動的な優先度の値を示す第四のフィールドをさらに含む、
請求項２３記載のアービタ。
【請求項２９】
前記第四のフィールドは、前記第一のエージェントが前記リソースにアクセスするために選択されない場合にインクリメントされる、
請求項２８記載のアービタ。
【請求項３０】
前記複数のフィールドは、前記第三のフィールドが最大値に到達した場合に予め定義された値に設定される第五のフィールドをさらに含む、
請求項２８記載のアービタ。
【請求項３１】
複数のエージェントのうちの少なくとも１つについて調停の番号を割り当てる方法であって、
前記エージェントのうちの１つは、前記エージェントの前記少なくとも１つに割り当てられた前記調停の番号に従って前記エージェントにより共有されるリソースにアクセスするために選択され、
当該方法は、
複数の調停のパラメータのうちの１つについて第一の値を受信するステップと、
他の調停パラメータのそれぞれに値を割り当てるステップと、
前記複数の調停パラメータを連結して、前記調停の番号を形成するステップと、
を含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルシステムの調停技術に関し、より詳細には、調停の公平さを増加し、システムの遅延を低減し、システムのスループットを増加し、より複雑なシステムでの使用に適した調停を実行する方法及びシステムに関する。
【背景技術】
【０００２】
調停（アービトレーション：arbitration）は、メモリ、バス及び／又は他のリソースのようなシステムリソースを、それらに対するアクセスを要求している１以上のエージェントに割り当てるためにデジタルシステムで一般に使用されている。従来の調停は、固定された又はスタティックなプライオリティスキームに基づく場合があり、このスキームでは、それぞれのエージェントは、生産のときに固定され及びスタティック（すなわち変化しない）割り当てられた優先度を有する。しかし、このタイプの調停は、所定の低い優先度のエージェントが所与のリソースにアクセスするのを本質的に妨げる場合があるので、決して最適ではない。結果として、システムの遅延が増加し、システムのスループットが増加する場合がある。他のタイプの従来の調停は、特定のリソースを共有する比較的多数のエージェントを有するシステムのような、より複雑なシステムを扱うのに適さない場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、上述した問題に対処する調停を実行する方法及び装置であって、これにより、調停の公平さを増加し、システムの遅延を低減し、システムのスループットを増加し、より複雑なシステムでの使用に適した調停を実行する方法及び装置が必要とされている。
【課題を解決するための手段】
【０００４】
本発明は、これらの問題及び／又は他の問題に対処するものである。  
本発明の態様によれば、調停を実行する方法が開示される。例示的な実施の形態によれば、本方法は、複数のエージェントに対応する複数の調停番号を生成するステップ、調停番号に基づいてエージェントにより共有されるリソースにアクセスするためにエージェントの１つを選択するステップを含む。少なくとも１つの調停番号は、複数のパラメータに対応する複数のフィールドを含む。
【０００５】
本発明の別の態様によれば、調停を実行する装置が開示される。例示的な実施の形態によれば、本装置は、複数のエージェントに対応する複数の調停番号を生成する手段、調停番号に基づいてエージェントにより共有されるリソースにアクセスするためにエージェントの１つを選択する手段を含む。少なくとも１つの調停番号は、複数のパラメータに対応する複数のフィールドを含む。
【０００６】
本発明の別の態様によれば、アービタ（arbiter）が開示される。例示的な実施の形態によれば、本アービタは、複数のエージェントに対応する複数の調停番号を生成するジェネレータ、調停番号に基づいてエージェントにより共有されるリソースにアクセスするためにエージェントの１つを選択する回路を含む。少なくとも１つの調停番号は、複数のパラメータに対応する複数のフィールドを含む。
【０００７】
本発明の上述された特徴及び利点、並びに他の特徴及び利点、並びにそれらに関連する方式は、添付図面と共に行なわれる本発明の実施の形態の以下の説明を参照することで良好に理解される。
【発明を実施するための最良の形態】
【０００８】
本明細書で述べる例示は、本発明の好適な実施の形態を示すものであり、係る例示は、任意のやり方で本発明の範囲を限定するものとして解釈されるべきではない。  
図面、特に図１を参照して、本発明の例示的な実施の形態に係る調停を実行するために適した環境１００が示される。図１の環境１００は、アービタ１０並びに複数のエージェント２０，３０，４０及び５０（すなわち１，２，３．．Ｎ、この場合Ｎは任意の整数である）を有する。アービタ１０は、任意の適切な信号伝送媒体を介して図１に示されるやり方でエージェント２０，３０，４０及び５０に結合される。本明細書で記載されるように、アービタ１０は、調停番号に基づいた調停機能を実行して、エージェント２０，３０，４０及び５０がメモリ、バス又は他のリソースのような共有されるリソースにアクセスするのを選択的に可能にする。例示的な実施の形態によれば、アービタ１０及びエージェント２０，３０，４０及び５０は、単一の集積回路（ＩＣ）に含まれるか、又は多数のＩＣに含まれる場合がある。エージェント２０，３０，４０及び５０は、たとえば中央処理ユニット（ＣＰＵ）、グラフィックエンジン、及び／又は他のエレメントのような異なるデジタルシステムエレメントを表す。別の例示的な実施の形態によれば、アービタ１０並びにエージェント２０，３０，４０及び５０は、それぞれ、オーディオ及び／又はビデオ装置のようなスタンドアロンユーザ装置として実施されるか、及び／又は該スタンドアロンユーザ装置に含まれる。したがって、本明細書で記載される調停機能は、調停を実行する任意のタイプのシステム、デバイス及び／又は装置に適用可能である。
【０００９】
ここで図２を参照して、本発明の例示的な実施の形態に係る調停番号２００のフォーマットが示される。例示的な実施の形態によれば、アービタ１０は、それぞれのエージェント２０，３０，４０及び５０について調停番号を生成及び維持し、それらの調停番号のそれぞれは、図２の調停番号２００のフォーマットを有する。本発明を実施するため、１以上のエージェント２０，３０，４０，５０のみが図２の調停番号２００のフォーマットのうちの調停番号を有する場合がある。図２の調停番号２００は、リクエストフィールド２１０、タイムアウトフィールド２２０、優先度値フィールド２３０、優先度メータフィールド２４０、帯域幅の残りフィールド２５０、ウェイトタイマフィールド２６０及びマスタインデックスフィールド２７０を含む複数の連結されるフィールドを含む。上述のフィールドのそれぞれは、異なるパラメータを表し、予め決定された数のデジタルビットを含む。例示的な実施の形態によれば、リクエストフィールド２１０は１ビットであり、タイムアウトフィールド２２０は１ビットであり、優先度値フィールド２３０は４ビットであり、優先度メータフィールド２４０は４ビットであり、帯域幅の残りフィールド２５０は１０ビットであり、ウェイトタイマフィールド２６０は１０ビットであり、マスタインデックスフィールド２７０は、４ビットである。本発明の他の実施の形態は、上述のフィールドのそれぞれについて異なるビット数を使用する場合がある。フィールドは、図２に示されるやり方で最上位ビット（ＭＳＢ）から最下位ビット（ＬＳＢ）に連続して配列されることが好ましく、調停番号２００を集合的に形成する。本発明の他の実施の形態は、異なるやり方で調停番号２００のフィールドを配列する場合がある。調停番号２００のそれぞれのフィールドは、以下のように記載される。
【００１０】
［リクエストフィールド２１０］
リクエストフィールド２１０は、調停を要求するために使用される。リクエストフィールド２１０は、ゼロの初期値を有し、エージェント２０，３０，４０，５０が調停を要求したときに１に動的に変化する。
【００１１】
［タイムアウトフィールド２２０］
タイムアウトフィールド２２０は、ウェイトタイマフィールド２６０が予め決定された最大時間の値に到達したときに１に設定される。タイムアウトフィールド２２０は、ゼロの初期値を有し、動的に変化する。エージェント２０，３０，４０，５０のタイムアウトフィールド２２０は、調停に勝利したときにクリアされ、ゼロに設定される。
【００１２】
［優先度値フィールド２３０］
優先度値フィールド２３０は、その性質に基づいてそれぞれのエージェント２０，３０，４０，５０について固定された、予め決定された値に設定される。優先度値フィールド２３０の高い値は、高い優先レベルを示す。優先度値フィールド２３０は、慣例によりスタティックであり、たとえば製造のときにセットされるか又はユーザによるシステムブートのときにプログラムされる場合がある。
【００１３】
［優先度メータフィールド２４０］
優先度メータフィールド２４０は、ゼロの初期値を有し、動的に変化する。優先度メータフィールド２４０は、エージェント２０，３０，４０，５０が調停に負けたときにインクリメントされる。優先度メータフィールド２４０が予め決定された最大値に到達したとき、そのエージェント２０，３０，４０，５０が調停に勝利するまでその値のままである。エージェント２０，３０，４０，５０の優先度メータフィールド２４０は、該エージェントが調停に勝利したときに予め決定された値に再び初期化される。
【００１４】
［帯域幅の残りフィールド２５０］
帯域幅の残りフィールド２５０は、エージェント２０，３０，４０，５０により転送されるデータワードを測定するために使用される。帯域幅の残りフィールド２５０は、予め決定された初期値を有し、動的に変化する。調停に勝利したエージェント２０，３０，４０，５０について、帯域幅の残りフィールド２５０は、データを転送する間にサイクルに基づいてデクリメントされる。エージェント２０，３０，４０，５０の帯域幅の残りフィールド２５０は、ゼロ値に到達したときにゼロで停止する。それぞれのエージェントの帯域幅の残りフィールド２５０は、全てのエージェントの帯域幅の残りフィールドがゼロに到達したときに再び初期化される。このアプローチの作用は、全ての帯域幅の残りフィールドが最後に初期化された後に、少なくとも１度、調停に既に勝利したエージェントの優先度を低くすることである。
【００１５】
［ウェイトタイマフィールド２６０］
ウェイトタイマフィールド２６０は、エージェント２０，３０，４０，５０がその要求を発してから、どの位長く待っているかを測定するために使用される。ウェイトタイマフィールド２６０は、予め決定された初期値を有し、動的に変化する。低い遅延の要件を有するエージェント２０，３０，４０，５０は、たとえば、係る要件なしに別のエージェント２０，３０，４０，５０よりも大きな初期値でプログラムされる場合がある。リクエストしているエージェント２０，３０，４０，５０のウェイトタイマフィールド２６０は、該エージェントが調停に勝利するまでサイクルに基づいてインクリメントされる。調停に勝利したエージェント２０，３０，４０，５０のウェイトタイマフィールド２６０は、その予め決定された初期値にリセットされる。リクエストしていないエージェント２０，３０，４０，５０のウェイトタイマフィールド２６０は、変化していないままである。それぞれのエージェント２０，３０，４０，５０のウェイトタイマフィールド２６０は、予め決定された最大値で停止する。
【００１６】
［マスタインデックスフィールド２７０］
マスタインデックスフィールド２７０は、タイブレーカとして使用される。それぞれのエージェント２０，３０，４０，５０は、そのマスタインデックスフィールド２７０について固有の値を有する。マスタインデックスフィールド２７０は、スタティックであり、たとえば製造時に設定される場合がある。
【００１７】
図１におけるアービタ１０は、ディスプレイ及びボタンのような入力メカニズムに接続されており、ユーザは、所与の瞬間でそれぞれのエージェント又は全部のエージェントのそれぞれのフィールドの値を表示する。また、ユーザインタフェースは、以下のフィールドの１以上の値をユーザが入力するのを可能にする。タイムアウトフィールド２２０の予め決定された最大値、優先度値フィールド２３０の予め決定された値、優先度メータフィールド２４０の予め決定された最大値、ウェイトタイマフィールド２６０の予め決定された初期値、及びマスタインデックスフィールド２７０の値。
【００１８】
図３を参照して、本発明の例示的な実施の形態に係る調停番号のジェネレータ３００が示される。調停番号のジェネレータ３００は、アービタ１０のエレメントである。図３に示されるように、調停番号のジェネレータ３００は、エージェント２０，３０，４０，５０からの調停の要求（Ｒ０−Ｒ１５）を受信する。また、調停番号のジェネレータ３００は、それぞれのエージェント２０，３０，４０，５０の調停番号（Ａ０−Ａ１５）を生成及び記憶する。例示的な実施の形態によれば、それら調停番号（Ａ０−Ａ１５）のそれぞれは、図２に示されるフォーマットを有する。
【００１９】
例示及び説明のため、図３の調停番号のジェネレータ３００は、調停の１６の要求（Ｒ０−Ｒ１５）を受信し、１６の対応する調停番号（Ａ０−Ａ１５）を生成することができる。しかし、他の実施の形態によれば、調停番号のジェネレータ３００は、調停の異なる数の要求を受け、対応する異なる数の調停番号を生成するために変更される。
【００２０】
ここで図４を参照して、本発明の例示的な実施の形態に係る調停番号の二進比較ツリー４００が示される。また、二進比較ツリー４００は、アービタ１０のエレメントである。図４の二進比較ツリー４００は、参照符号４１０，４２０，４３０及び４４０により表される４つのステージを有する。第一のステージ４１０は、図３の調停番号のジェネレータ３００から調停番号（Ａ０−Ａ１５）を受信し、比較機能を実行して８つの最も高い調停番号を選択する８つのコンパレータ（ＣＯＭＰ）を有する。
【００２１】
第二のステージ４２０は、第一のステージ４１０から８つの最も高い調停番号を受信し、比較機能を実行して４つの最も高い調停番号を選択する４つのコンパレータを有する。第三のステージ４３０は、第二のステージ４２０から４つの最も高い調停番号を受信し、比較機能を実行して２つの最も高い調停番号を選択する２つのコンパレータを有する。第四のステージ４４０は、第三のステージ４３０から２つの最も高い調停番号を受信し、比較機能を実行して最も高い調停番号を選択する１つのコンパレータを有する。
【００２２】
また、第四のステージ４４０は、最も高い調停番号を受信及び出力するフリップフロップ（ＦＦ）を含む。上述されたやり方では、二進比較ツリー４００は、図３の調停番号のジェネレータ３００から供給された１６の調停番号（Ａ０−Ａ１５）のうちから最も高い調停番号を選択する。最も高い調停番号を有する特定のエージェント２０，３０，４０，５０は、リソースにアクセスするためにアービタ１０により選択される。例示及び説明のため、図４の二進比較ツリーは、１６の調停番号を収容するために構築されている。しかし、二進比較ツリー４００は、調停番号のうちの大きい番号又は小さい番号を収容するために変更される。
【００２３】
図４で示される二進比較ツリー４００のハードウェアによる実現はソフトウェアで実現される場合がある。また、アービタ１０は、図３の調停番号のジェネレータ３００及び図４の二進比較ツリーに加えてマルチプレクサ及び／又は他のエレメントのようなエレメントを含む。係るエレメントは、本発明の原理を曖昧にしないように図示されていない。
【００２４】
ここで図５を参照して、本発明の例示的な実施の形態に係る調停を実行するステップを例示するフローチャート５００が示される。例示及び説明のため、図５のステップは、前の記載された図のエレメントを参照して記載される。図５のステップは、例示するのみであり、任意のやり方で本発明を限定することが意図されない。
【００２５】
ステップ５１０で、アービタ１０は、エージェント２０，３０，４０，５０からの調停について１以上のリクエストが存在するかを判定する。例示的な実施の形態によれば、エージェント２０，３０，４０，５０は、ステップ５１０で、リソース（たとえばメモリ、バス等）へのアクセスを要求し、アービタ１０にリクエスト信号を送信することで調停を要求する。ステップ５１０でエージェント２０，３０，４０，５０が調停を要求したとき、その調停番号２００のリクエストフィールド２１０は０から１にシフトする。
【００２６】
ステップ５１０での判定がネガティブである場合、プロセスフローはループし、ステップ５１０が繰り返される。ステップ５１０での判定がひとたびポジティブになると、プロセスフローは、ステップ５２０に進み、アービタ１０は、その二進比較ツリー４００（図４参照）を調停サイクルのためにイネーブルにする。本明細書で先に示されたように、アービタ１０は、ソフトウェアで二進比較ツリー４００を実現することもできる。
【００２７】
ステップ５３０で、二進比較ツリー４００は、本実施の形態で先に記載されたやり方で全ての調停番号（Ａ０−Ａ１５）を比較し、最も高い調停番号を識別及び選択する。最も高い調停番号を有する特定のエージェント２０，３０，４０，５０が調停に勝利したとみなされる。
【００２８】
ステップ５４０で、アービタ１０は、要求されたリソースへのアクセスが調停に勝利した特定のエージェント２０，３０，４０，５０に許可することができるかを判定する。調停に勝利したエージェント２０，３０，４０，５０は、アービタ１０により要求されたリソースへのアクセスが通常は許可される。しかし、勝利したエージェント２０，３０，４０，５０が要求されたリソースへのアクセスが許可されない所定の状況が存在する。
【００２９】
たとえば、要求されたリソースがメモリであり、そのメモリのメモリコントローラが他の処理機能を実行して占有されており、したがって、メモリリソースへのアクセスを勝利したエージェント２０，３０，４０，５０に与えることができないケースである。たとえば、メモリは、前の調停の勝者により占有される場合がある。前の勝者が長時間にわたりメモリにアクセスする必要があるケースでは、アービタ１０は、前の勝者の帯域幅の残りのメータフィールドがゼロに到達するまで、前の勝者にメモリにアクセスするのを許可する。その時間まで、前の勝者がメモリから読み取るデータを有するか又はメモリに書き込むデータを有する場合、前の勝者は、メモリへのデータ転送又はメモリからのデータ転送を完了するため、別の調停に勝利する必要がある。先に述べたように、全てのエージェントの帯域幅の残りのフィールド、全ての帯域幅の残りのフィールドは、予め決定された値に初期化される。
【００３０】
ステップ５４０での判定がネガティブである場合、プロセスフローは、ステップ５５０に進み、アービタ１０は、ステップ５１０での調停サイクルについて調停を要求したそれぞれのエージェント２０，３０，４０，５０の優先度メータフィールド２４０及びウェイトタイマフィールド２６０をインクリメントする。ステップ５５０から、プロセスフローは、別の調停サイクルのためにステップ５１０にループバックする。
【００３１】
ステップ５４０での判定がポジティブである場合、プロセスフローはステップ５６０に進み、アービタ１０は、勝利したエージェント２０，３０，４０，５０に要求されたリソースへのアクセスを与える。また、アービタ１０は、ステップ５６０で、帯域幅の残りのフィールド２５０をデクリメントし、勝利したエージェント２０，３０，４０，５０について予め決定された初期値にウェイトタイマフィールド２６０をリセットする。ステップ５６０から、プロセスフローは、別の調停サイクルのためにステップ５１０にループバックする。
【００３２】
ここで図６を参照して、本発明の例示的な実施の形態に係るそれぞれのエージェントの調停番号を形成するステップを例示するフローチャート６００が示される。例示及び説明のため、図６のステップは、先に記載された図のエレメントを参照して記載される。図６のステップは、例示のみであり、任意のやり方で本発明を限定することが意図されない。
【００３３】
ステップ６１０で、アービタ１０は、複数のパラメータのうちの１つの値を受信する。たとえば、アービタ１０は、ユーザにより入力された優先度値フィールド２３０について予め決定された値を受ける。その値がユーザにより入力され、アービタ１０により受信される他のパラメータは以下の通りである。ウェイトタイマフィールド２６０の予め決定された初期値、及びマスタインデックスフィールド２７０の値。
【００３４】
ステップ６２０で、アービタ１０は、受信された値を対応するパラメータに割り当てる。先の例に続いて、アービタ１０は、受信された予め決定された値を優先度値フィールド２３０に割当てる。
【００３５】
ステップ６３０で、アービタ１０は、他のパラメータのそれぞれに値を割り当てる。先の例に続いて、アービタ１０は、リクエストフィールド２１０、タイムアウトフィールド２２０、優先度メータフィールド２４０、帯域幅の残りフィールド２５０、ウェイトタイマフィールド２６０及びマスタインデックスフィールド２７０の値を割り当てる。
【００３６】
ステップ６４０で、アービタ１０は、全てのパラメータを図２で示されたような１つの調停番号に連結する。先に記載されたように、多数の調停パラメータがそれぞれのエージェントについて単一の調停番号に連結されるので、図４に示されるような唯一の比較ツリーが必要とされ、調停の速度が増加する。
【００３７】
本実施の形態で記載されたように、本発明は、調停の公平さを増加し、システムの遅延を低減し、システムスループットを増加し、より複雑なシステムでの使用に適した調停を実行する方法及び装置を提供する。本発明は、好適な設計を有するものとして記載されたが、本発明は、この開示の精神及び範囲で更に変更することができる。したがって、本出願は、その一般的な原理を使用して、発明の任意のバリエーション、使用又は適用をカバーすることが意図される。さらに、本出願は、本発明が属する技術分野であって、特許請求の範囲の制限に含まれる技術分野において公知又は公用として、本発明の開示からの逸脱をカバーすることが意図される。
【図面の簡単な説明】
【００３８】
【図１】本発明の例示的な実施の形態に係る調停を実行するために適した環境を示す図である。
【図２】本発明の例示的な実施の形態に係る調停番号のフォーマットを示す図である。
【図３】本発明の例示的な実施の形態に係る調停番号のジェネレータを示す図である。
【図４】本発明の例示的な実施の形態に係る調停番号の二進の比較ツリーを示す図である。
【図５】本発明の例示的な実施の形態に係る調停を実行するフローチャートを示す図である。
【図６】本発明の例示的な実施の形態に係る調停番号を形成するフローチャートを示す図である。
【図１】
2009543183.tif 000003
【図２】
2009543183.tif 000004
【図３】
2009543183.tif 000005
【図４】
2009543183.tif 000006
【図５】
2009543183.tif 000007
【図６】
2009543183.tif 000008
【手続補正書】
【提出日】平成21年6月4日(2009.6.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
調停を実行する方法であって、
複数のエージェントに対応する複数の調停の番号を生成するステップと、
前記エージェントのうちの１つを選択して、前記調停の番号に基づいて前記エージェントにより共有されるリソースにアクセスするステップとを含み、
前記調停の番号の少なくとも１つは、複数のパラメータに対応する複数のフィールドを含む、
ことを特徴とする方法。
【請求項２】
複数のエージェントに対応する複数の調停の番号を生成する手段と、
前記エージェントのうちの１つを選択して、前記調停の番号に基づいて前記エージェントにより共有されるリソースにアクセスする手段を含み、
前記調停の番号の少なくとも１つは、複数のパラメータに対応する複数のフィールドを含む、
ことを特徴とする装置。
【請求項３】
複数のエージェントのうちの少なくとも１つについて調停の番号を割り当てる方法であって、
前記エージェントのうちの１つは、前記エージェントの前記少なくとも１つに割り当てられた前記調停の番号に従って前記エージェントにより共有されるリソースにアクセスするために選択され、
当該方法は、
複数の調停のパラメータのうちの１つについて第一の値を受信するステップと、
他の調停パラメータのそれぞれに値を割り当てるステップと、
前記複数の調停パラメータを連結して、前記調停の番号を形成するステップと、
を含むことを特徴とする方法。
【国際調査報告】
2009543183.tif 000009
2009543183.tif 000010