(57)【要約】この発明の実施形態は、チップ上のシステム内の転送待ち時間を低減するための方法および装置に向けられている。チップ上のシステムは、バスマスタ、バススレーブおよびアービターからなり、バスマスタ、バススレーブおよびアービターはそれらの間で電子通信を行っている。要求はバスマスタからアービターに送信される。優先度信号は待ち時間要件に関連する。アービターは要求をバススレーブに送信する前に待ち時間要件を調べ優先度信号を高めるかどうかを決定する。次に、要求信号はアービターからバススレーブに送信される。バススレーブは要求を実行し、要求に対する応答を送信する。この送信は優先度信号を含む。
2008527498.tif 000002
【特許請求の範囲】
【請求項１】
チップ上のシステム内の転送待ち時間を低減する方法であって、前記チップ上のシステムはバスマスタ、バススレーブおよびアービターを有し、前記バスマスタ、バススレーブおよびアービターは電子通信をしており、前記バススレーブは要求に応答するように構成される方法において、
待ち時間要件に関連する優先度信号を有する要求を前記バスマスタから前記アービターに送信することと、
前記待ち時間要件を調べて前記優先度信号を高めるかどうかを決定することと、
前記要求および優先度信号を前記アービターから前記バススレーブに送信することと、
前記要求および前記優先度信号に対する前記応答を前記バススレーブから前記アービターに送信することと、
を備えた方法。
【請求項２】
前記優先度信号をタイムスタンプすることをさらに備えた、請求項１に記載の方法。
【請求項３】
前記優先度信号を高めることをさらに備えた、請求項１に記載の方法。
【請求項４】
前記タイムスタンプを前記待ち時間要件と比較し前記優先度信号を高めるかどうかを決定することをさらに備えた、請求項２に記載の方法。
【請求項５】
前記スレーブバスに送信するために前記要求をキューにセットすることをさらに備えた、請求項１に記載の方法。
【請求項６】
前記要求は第１の要求であり、前記優先度信号は第１の優先度信号であり、前記待ち時間要件は第１の待ち時間要件であり、
第２の優先度信号を有する第２の要求を前記バスマスタから前記アービターに送信することであって、前記第２の優先度信号は第２の待ち時間要件に関連し、前記第２の優先度信号は前記第１の優先度信号よりも高いことと、
前記第２の要求および第２の優先度信号を前記アービターから前記バススレーブに送信することと、
をさらに備えた、請求項１に記載の方法。
【請求項７】
前記第１の優先度信号と前記第２の優先度信号を比較することと、
前記バススレーブによって、前記第１の要求を実行する前に前記第２の要求を実行することと、
をさらに備えた、請求項６に記載の方法。
【請求項８】
前記第１の待ち時間要件と前記第２の待ち時間要件とを比較することと、
前記バススレーブによって、前記第２の要求を実行する前に前記第１の要求を実行することと、
をさらに備えた、請求項６に記載の方法。
【請求項９】
前記チップ上のシステムは、第１のアービター、第２のアービター、第１のバススレーブ、第２のバススレーブを有し、前記第１のアービターは前記マスタおよび前記第２のアービターに接続され、前記第１のバススレーブは前記第２のアービターに接続され、前記バスマスタからの要求は前記第１のアービターおよび前記第２のアービターを介して前記バスマスタから前記第２のバススレーブに送信され、
前記要求を前記第２のアービターに送信する前に前記待ち時間要件を調べて前記優先度信号を高めるかどうかを決定することと、
前記要求を前記第２のバススレーブに送信する前に前記待ち時間要件を調べ前記優先度信号を高めるかどうかを決定することと、
をさらに備えた、請求項１に記載の方法。
【請求項１０】
少なくとも１つのアービターにより前記待ち時間要件を高めることをさらに備えた、請求項９に記載の方法。
【請求項１１】
前記要求を第２のアービターに送信する前に前記待ち時間要件を高めることと、
前記要求をバススレーブに送信する前に前記待ち時間要件を高めることと、
をさらに備えた、請求項９に記載の方法。
【請求項１２】
前記要求に対する応答を前記アービターに送信する前に前記要求の優先度を前記バススレーブにより高めることをさらに備えた、請求項１に記載の方法。
【請求項１３】
チップ上のシステム相互接続において、
要求信号を送信するように構成されたバスマスタであって、前記要求信号は優先度信号と待ち時間識別子に関連し、前記優先度信号は前記要求の優先度ステータスを識別し、前記待ち時間識別子は前記要求に応答するための時間要件を識別する、バスマスタと、
前記要求信号、前記優先度信号および前記待ち時間識別子を受信するように構成されたバススレーブと、
前記バスマスタとバススレーブに接続されているアービターであって、前記要求信号、優先度信号および待ち時間識別子は前記アービターを介して前記バスマスタから前記バススレーブに送信され、前記バススレーブは前記優先度信号と待ち時間識別子を前記アービターに送信するように構成される、アービターと、
を備えたシステム。
【請求項１４】
前記優先度信号はエンコードされるように構成され、前記エンコーディングは前記待ち時間識別子に関連する、請求項１３に記載のシステム。
【請求項１５】
前記優先度信号は可変幅を含み、前記可変幅はエンコーディングのために構成される、請求項１３に記載のシステム。
【請求項１６】
前記待ち時間識別子は定数、ディスクリプター、クロックサイクルのレンジおよびサイクル上限のグループの１つから選択される、請求項１３に記載のシステム。
【請求項１７】
前記バススレーブは前記優先度信号を高め前記高められた優先度信号を前記アービターに送信するように構成される、請求項１３に記載のシステム。
【請求項１８】
複数のアービターであって、第１のアービターは前記バスマスタに接続され、さらに第２アービターに接続され、各アービターは前記優先度信号を高めるように構成され、前記優先度信号を高めることは新しい待ち時間識別子に関連している、複数のアービターと、
複数のバススレーブであって、第１のバススレーブは第１のアービターに接続され、第２のバススレーブは前記第２のアービターに接続され、各バススレーブは前記優先度信号を高めるように構成される、複数のバススレーブと、
をさらに備えた、請求項１３に記載のシステム。
【請求項１９】
複数のアービターであって、第１のアービターは前記バスマスタに接続され、さらに第２のアービターに接続され、各アービターは前記優先度信号を高めるように構成される、複数のアービターと、
複数のバススレーブであって、第１のバススレーブは前記第１のアービターに接続され、第２のバススレーブは、前記第２のアービターに接続され、各アービターは、前記要求がバススレーブに常駐する間前記優先度信号を高めるように構成される、複数のバススレーブと、
をさらに備えた、請求項１３に記載のシステム。
【請求項２０】
前記アービターは前記要求が前記バススレーブに常駐する間前記優先度信号を高めるように構成される、請求項１３に記載のシステム。
【請求項２１】
前記要求が前記バススレーブに常駐する間、前記アービターにより前記要求信号を高めることをさらに備えた、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施形態はシステムオンチップ（「ＳＯＣ」）相互接続において、バスマスタからバススレーブへの転送要求を一定の順序に配列するための方法と装置に向けられている。特に、実施形態は、ＳＯＣ相互接続において要求の優先度を変更することによりバスマスタとバススレーブとの間の転送待ち時間を低減するための方法と装置に向けられている。
【背景技術】
【０００２】
システムオンチップ（ＳＯＣ）技術は種々のタイプのシステムを動作させ制御する。一般にＳＯＣ技術は一般にマイクロチップとして知られる単一集積回路（「ＩＣ」）上の（セル電話またはデジタルカメラのような）「システム」のためのすべての必要な電子回路およびパーツの組み立てである。
【０００３】
ＳＯＣｓは典型的にバスマスタ（例えば、プロセッサー、グラフィックスエンジン、ダイレクトメモリアクセス（「ｄｍａ」）エンジン等）としても知られるイニシエーター、バスターゲット（例えば、メモリコントローラー）、および相互接続としても知られるシステムバスを含む。ＳＯＣが制御するように意図されるシステムを動作させるために、バスマスタはシステムバスまたは相互接続を介してスレーブとしても知られる目標に対する転送要求を開始する。複数のマスタが特定のスレーブを同時にアクセスしようと望むなら、これらの複数のマスタのための要求は中央アービターまたは調停システムを介して処理されなければならない。調停システムはマスタとスレーブとの間の通信を制御する。特に、調停システムはマスタがスレーブと通信する順番を制御する。
【０００４】
マスタがスレーブと通信する順番は、マスタからの要求が、待ち時間においてまたは時間において制限されているなら重要である可能性がある。典型的に、ＳＯＣ内の各マスタは各要求に対して待ち時間要件を有することができる。待ち時間要件はその要求を実行するために、もしあれば、時間制約を識別する。例えば、ビデオエンジンは、映画または画像を作成するためにある数のフレーム／秒を各ために必要かもしれない。そして、ビデオエンジンはその内部バッファーからこれらのフレームをメインメモリに書くかもしれない。メモリコントローラー、すなわちスレーブがタイムリーな方法でこれらの要求を受け入れるまたはサービスすることができないない、ビデオエンジン内のバッファーは、オーバーランするであろう。そして、生成された画像は不完全でありギザギザがあるであろう。
【０００５】
待ち時間要件は、マスタが要求を送信しているにもかかわらず、特定のマスタまたは特定のタイプの要求により指示されることができる。現在のシステムにおいて、要求の待ち時間要件は重要かもしれないけれども、マスタからスレーブへの待ち時間要件の移動はない。従って、同じ優先度を持つすべての要求は等しい緊急度であるとスレーブにより感知される。そのため、いくつかのインスタンスにおいて、より待ち時間が重要である要求はタイムリーな方法で応答されないかもしれない。
【０００６】
スレーブにアクセスするためにマスタが要求を調停システムに送信すると、マスタは要求信号を調停システムに送信する。上述したように、いくつかの転送要求は待ち時間が重要であり要求を実行する上で時間制約がある。これらのインスタンスにおいて、優先度は要求に関連していてもよい。要求に関連する優先度にも関わらず、調停システムは待ち時間制約に気づかず、従って別段の指示がなければ完全に同じように各要求を管理するであろう。
【０００７】
いくつかのＳＯＣｓにおいて、要求を有する待ち時間要件の同定の欠落を克服するために、特定のマスタは要求にかかわらず最高の優先度が与えられるであろう。特定のマスタからのすべての要求は最高の優先度が与えられるので、より低い優先度を有するマスタからの要求は別のマスタからのより高い優先度要求の前にセットされるであろう。これらのインスタンスにおいて、バスの使用を最適化することは困難である。
【０００８】
特定のマスタの代わりにいくつかのマスタからの要求を剥奪するのを回避するために、いくつかのＳＯＣｓ内の調停システムはマスタが公正なラウンドロビン(round robin)スキームを用いて通信することを可能にするであろう。例えば、マスタＭ0，Ｍ1，．．．ＭnとスレーブＳから構成されるシステムは以下のようにスレーブＳとの通信の優先順位を決める。Ｍ0，Ｍ1．．．Ｍn；→Ｍ1．．．Ｍn；→．．．→Ｍn，Ｍ0・・・Ｍn-1。これはより公平にマスタによるスレーブへのアクセスを可能にするけれども、待ち時間基準を異ならせる要求に関連する問題を解決することができない。
【０００９】
要求が調停システムにより許可される前に内部バッファーに常駐していてもよいので、さらなる問題が生じる。経過時間の量がアービターにより認識されないので、要求は、マスタが要求を介してから経過した時間量を気にせずに送信される。たとえ要求がアービターにより許可されても、要求は、相互接続の他の層またはブリジッング装置に転送されるかもしれないし、最終目標には転送されないかもしれない。さらに、要求が最終目標に送信されると、要求は最初の要求と最終目標に到達したときとの間に経過した時間量に関わらず、早期に受信された要求の後にキューイングされるかもしれない。この点について、マスタの待ち時間要件は、要求が作用される前に満了したかもしれない。
【００１０】
要求するマスタからスレーブへの要求に付属する待ち時間要求の転送を可能にさせる産業上の必要性が存在する。要求の待ち時間要件に従って要求への応答のために以前に定義されたスケジュールの有線順序を付け直すことができるシステムのためのさらなる必要性が存在する。
【発明の開示】
【００１１】
この発明の実施形態は、チップ上のシステムにおいて転送待ち時間を低減するための方法および装置に向けられている。チップ上のシステムの実施形態は、バスマスタ、バススレーブ、およびアービターを含み、バスマスタ、バススレーブおよびアービターはそれらの間で電子通信している。待ち時間要件に関連する優先度信号を有する要求は、バスマスタからアービターに送信される。アービターは要求をバスフレーブに送信する前に待ち時間要件を再検討し優先度信号を高めるかどうかを決定する。次に要求信号はアービターからバススレーブに送信される。バススレーブは応答を要求に送信する。この場合、送信は優先度信号を含んでいてもよい。
【００１２】
この発明の実施形態の特徴は、要求の待ち時間要件は要求とともにマスタからスレーブに送信される。この特徴の利点は、要求が待ち時間要件に従って実行できることである。
【００１３】
この発明の実施形態のさらなる特徴は命令の待ち時間要件に基いて命令に対する応答の順番の優先順位をバススレーブが付け直すことができることである。この特徴の利点は、バススレーブがシステムリソースの消費を低減することができることである。
【００１４】
この発明の実施形態の他の特徴は、スレーブが要求の優先度を戻りデータを有するアービターに戻すことである。この特徴の利点はアービターは単一マスタへの戻りデータの送信順番を決定することができることである。
【発明を実施するための最良の形態】
【００１５】
この発明の実施形態はＳＯＣ相互接続上のバスマスタとバススレーブとの間の転送要求を一定の順序に配列する方法および装置に向けられている。この発明の実施形態はＳＯＣ相互接続上で動作する。この場合、少なくとも１つのバスマスタはアービターを介してバススレーブと通信する。図１を参照すると、ＳＯＣ相互接続１０は少なくとも１つのバスマスタ１２、バススレーブ１４およびアービター１６から構成される。この場合、バスマスタ１２、バススレーブ１４およびアービター１６はバス１５および１７を介してそれらの間で電子通信する。
【００１６】
バスマスタ１２は、例えばメモリにデータを記憶するまたはメモリからデータをリードする命令のように、バス１５上のトランザクションを開始するように構成される任意のタイプの装置であり得る。例えば、バスマスタ１２はこれらに限定されないが、プロセッサーとグラフィックエンジンを含む。
【００１７】
バスマスタ１２は要求信号をアービター１６に送信する。要求信号は、バスマスタ１２がバス１７上に存在するバススレーブ１４へのアクセスを要求していることを示す。バスマスタとアービターとの間のバス１５プロトコルに応じて、要求信号はバススレーブを対象とした命令を含むことができる。要求信号がバススレーブ１４を対象とした命令を含まないなら、バスマスタ１２は命令を記憶装置（図示せず）に記憶し、命令を送信するためにアービターからの信号を待つ。要求信号がバススレーブ１４のための命令を含んでいうるなら、命令はアービター１６内の内部記憶装置またはアービター１６に接続された外部記憶装置（図示せず）に記憶することができる。
【００１８】
バスマスタ１２は命令の各タイプに相関する所定の優先度を持つことができる。または各命令に対してダイナミックに優先度を割り当てることができる。優先度は特定の命令が完了しなければならない時間フレームを定義する待ち時間要件に関連する。待ち時間要件は固定要件であり得る。例えば、単一の番号または（高い、中間のまたは低い）ディスクリプターは、ビン値(binned value)であり得、または特定のサイクルまたは時間値であり得る。待ち時間要件がビンされると(binned)、待ち時間ビンニング要件は範囲または許容範囲の上限値のようはグループの要件を表すであろう。例えば、待ち時間要件は３（固定値）、高い（ディスクリプター）、２０−４０サイクルの間または４０サイクル以上（ビンニング）であり得る。いくつかの実施形態において、優先度は要件が実行されなければならないまで残るクロックサイクルの数（または時間）に同一である。これらの実施形態において、要求とともに送信される待ち時間要件は要件を完了するためのサイクルの残りの数に相当する。どんなに定義されても、命令に相関する優先度、および従って、関連する待ち時間要件は、命令とともに、要求信号が送信される時刻にまたは命令がアービターによる送信に対して許可されたとき送信される。
【００１９】
バスマスタは各要求に対して優先度を割り当てることができるが、いくつかの実施形態において、優先度はアービターにより割り当てることができる。従って、マスタがアービターに要求するとき、またはマスタの要求がアービターにキューイングされるとき、優先度はマスタにより割り当てることができる。優先度がアービターにより割り当てられるなら、優先度はマスタからのすべての要求に対する単一のスタティック値であるということもあり得る。またはマスタにより作られた要求のタイプにより決定された値ということもあり得る。
【００２０】
バススレーブ１４はバスマスタ１２からの命令に応答するようにまたはサービスするように構成されるターゲット装置であるが、命令を発生しない。例えば、バススレーブ１４はメモリコントローラーになり得る。好適実施形態において、バススレーブ１４は命令の優先度ステータスと相関する待ち時間要件を含む、命令を受信するように構成され、待ち時間要件に従って命令を処理する。
【００２１】
バススレーブは１つ以上のマスタからの複数の命令を受信するように構成される。バススレーブが所定の命令を実行することができるまで、複数の受信された命令はキューにセットされる。いくつかの実施形態において、バススレーブは入ってくる命令の優先度を認識するだけであり、従って各命令の優先度に従って命令に対する応答の順番に優先順位をつける。しかしながら、他の実施形態において、バススレーブは待ち時間要件に気づいており、従ってバススレーブは、待ち時間要件に従ってキュー内の命令の応答の順番に優先順位をつけることができる。
【００２２】
バススレーブが命令に従って実行すると、バススレーブはもしあれば戻りデータをアービター１６に送信する。戻りデータは任意のタイプの情報を含むことができる。例えば、これらに限定されないが、バスマスタにより要求されたデータのセット、問い合わせに対する応答、または命令が完了したアクノレジメントを含む。いくつかのインスタンスにおいて、バスマスタがタスクの完了の確認をさらに要求しない限り、命令完了時に応答はバススレーブにより戻されない。
【００２３】
アービター１６はバスマスタ１２からの要求信号を受信し、マスタからスレーブへの命令の送信を制御し、スレーブからマスタへの戻りデータの送信を制御するコントローラーである。いくつかの実施形態において、アービターは要求信号を受信するだけであり、命令はバスマスタに記憶される。このインスタンスにおいて、バススレーブに対するバス１７が利用可能なら、アービターは命令を送信するようにバスマスタに命令する信号をバスマスタに送信する。
【００２４】
要求信号を受信すると、アービターはタグをつける、すなわち要求信号にタイムスタンプを刻印する。要求信号が命令に接続されているなら、アービターはまた命令をタイムスタンプする。次に、命令はアービター内のキューに記憶される。タイムスタンプは、要求信号の受信とバススレーブ１４への命令の最終の送信との間に経過した時間量を追跡可能にする。
【００２５】
上述したように、命令がアービターに送信されるときにも関わらず、命令の優先度および相関待ち時間要件は命令とともに送信される。以下に述べるように、アービターは待ち時間要件と命令のタイムスタンプまたは信号要求のタイムスタンプを利用して、命令をバススレーブに送信する前に命令の優先度を高める必要があるか、すなわち更新する必要があるか否かを決定する。バスマスタが開始要求信号を送信してからあまりに長い時間が経過したなら、アービターは命令の優先度ステータスを高くするように構成されている。この点において、待ち時間要件は新しい優先度ステータスを反映するように自動的に変更されるであろう。優先度ステータスはバススレーブに命令に応答するための実際の時間制約を知らせる。いくつかの実施形態において、アービター要求信号とそのタイムスタンプを記憶し、要求がバススレーブと共に駐在している期間中要求の優先度を高め続けるように構成される。この点において、アービターはバススレーブから要求が戻ると、この要求の待ち時間要件に気が付く。
【００２６】
図２を参照すると、ＳＯＣ相互接続は、複数のマスタ、スレーブ、アービターまたはそれらの任意の組み合わせを含むことができる。アービターの多重度は複数のレベルの相互接続を作成する。従って、いくつかの所望のスレーブ、例えばＳ１とＳ２に到達するために、要求は複数のアービターを通過しなければならない。各アービターは送信のための独自のキューを有する。多層相互接続において、アービターは、命令が１つのレベルから次のレベルに渡されるとき命令の優先度を高めることができる。この点において、命令に関連する待ち時間要件は失われずまたは無視されず、それによりバススレーブが命令に対するタイムリーな応答を提供することができる。
【００２７】
全体および図３を参照して、転送待ち時間を低減するための一実施形態において、マスタは要求をアービターに送信する。この場合、要求は優先度信号２０を含む。要求を受信すると、アービターは要求にタイムスタンプを付けるかまたはタグを付け、それをキュー２２に置く。任意の要求を許可する前に、アービターは、キューに係属する各要求の相対的な優先度を再検討し、開始待ち時間要件２４に対して要求のサイクルが経過するとキュー内のエージング(aging)要求の優先度を増加させる。最も低い番号が最も緊急である優先度として待ち時間要件が定義されるなら、要求がキューにある各サイクルに対してイチ（１）が優先値から減算されるであろう。アービターはより少ない待ち時間の重要な要求の前により多くの待ち時間の重要な要求を許可する。要求が許可されると、アービターは待ち時間要件に関連するタイムスタンプを再検討し、必要であれば要求の優先度を更新する。次に、要求はアービターから指定されたスレーブにまたは仲介アービター２８に送信される。要求がスレーブに送信されるなら、スレーブは要求を実行し、アービター３０を介してマスタにデータを返す。要求が仲介アービターに送信されるなら、仲介アービターは上述したように要求２２にタイムスタンプを付け要求を処理する。
【００２８】
上述したように、マスタ１２が要求を送信するとき、要求は優先度信号を含む。いくつかの実施形態において、優先度信号は要求とともに送信されるサイドバンド信号に含まれる。この場合、サイドバンド信号は要求に関連する信号の集合であり、転送クォリファイアー(qualifier)を識別する。例えば、サイドバンド信号はこれらに限定されないが、転送のタイプ、転送のサイズ、アクセスされる装置のアドレス、および命令の優先度信号を含むことができる。転送クォリファイアーは変更することができ、バス１５、１７プロトコルに依存していてもよい。
【００２９】
優先度信号はエンコードすることができる可変幅を有する。この場合、エンコーディングは待ち時間要件と関連する。図４を参照すると、優先度信号は、「０ｂｘｙ」のような優先度識別子３２により識別される。但し、ｘｙは待ち時間ビンニング(binning)３４を識別する。この例において幅は２ビットである。しかしながら、幅は任意の適切な幅であることができることが理解される。待ち時間ビンニングを識別するために使用されるより大きなビット数は、待ち時間要件を決定するために精度の量を増大させる。
【００３０】
各優先度識別子３２は待ち時間識別子３６に関連する。待ち時間識別子３６は要求が待ち時間要件を有さないことを識別することを含む待ち時間要件を定義する。待ち時間要件は、これらに限定されないが、サイクルの数またはサイクルの範囲を含む任意の適切な方法により定義することができる。例えば、０ｂ００の優先度識別子は待ち時間要件を持たず、０ｂ０１は「１００サイクル以内のサービス」という待ち時間識別子３６に関連する。他の例において、待ち時間要件は３０−５０サイクルの間のサービスとして識別することができる。いくつかの実施形態において、バスマスタの優先度エンコーディングに相当する待ち時間要件は、アービター内のレジスターを介してプログラマブルであってもよい。この点において、待ち時間要件は、優先度識別子３２に対して変更することができる。
【００３１】
優先度信号を受信し受け付けると、アービターはアービテーションのためにキューイングされる入力要求にタイムスタンプを付けるかまたはタグを付ける。上述したように、要求を許可する前に、アービターは受信した要求の相対的な優先度を再検討する。受信した要求は、同じマスタからまたは異なるマスタから発生することができる。一般的により低い待ち時間要件を有する要求は、より高い待ち時間要件を有する要求より前に許可される。等しい優先度の要求は、これに限定されないが、最も早いタイムスタンプに基いて要求を許可することを含む任意の適切な順番で許可することができる。
【００３２】
要求が許可されることになると、アービターは要求のタグまたはタイムスタンプに関連して優先度識別子３２を再検討する。この点において、アービターは、優先度識別子３２が上昇または更新を必要とするか否かを決定する。図５を参照すると、上述したように、マスタ、例えばマスタ１から要求を受信すると、アービターは「０」のタイムスタンプを要求にセットする。その要求はタイムスタンプと優先度に関連してマスタ要求キュー４０にセットされる。「ｎ」クロックサイクルの各間隔において、アービターは各マスタに対してキュー内のすべての係属中のタイムスタンプをインクリメントまたは老化させる。従って、図５に関して、アービターはマスタ１のためのキュー内の要求０、要求１および要求２のためのタイムスタンプをインクリメントし、また、マスタ２のためのキュー内の要求０のためのタイムスタンプをインクリメントする。タイムスタンプの増加は、アービターが要求の待ち時間要件に対して要件の年齢を決定することを可能にする。この点に関して、要求が許可されると、優先度は古いタイムスタンプに基いて更新することができる。例えば、図４を参照して、０ｂ１０の優先度をもともと有する要求が３の古いタイムスタンプを有すると仮定する。「ｎ」クロックサイクルが１０の間隔値を表すなら、要求は許可される前に少なくとも３０サイクルペンディングにされた。図４に従って、０ｂ１０の優先度は５０サイクル内のサービスを要求する。今、要求は２０サイクル内で応答しなければならないので、優先度は新しい時間制約を反映するために高められなければならない。従って、このインスタンスにおいて、アービターは、２０サイクル内のサービスの必要性を反映するために、０ｂ１０から０ｂ１１に優先度識別子を変更するであろう。そのため、この要求がスレーブ、または相互接続の他のレベルに送信されると、受取人は要求が２０サイクル内でサービスされなければならないことに気がつく。要求は複数の相互接続を介して送信されるので、優先度が調節され、それにより要求の待ち時間要件をリアルタイムで更新する。「ｎ」のための間隔値はアービターにプログラムすることができ、従って、変更することができる。
【００３３】
どの要求を許可にするかを決定するために、いくつかの実施形態において、アービターは各マスタのための各キュー内の最も古い要求を調べる。例えば、（要求０が最も古いと仮定して）、マスタ１のためのキュー内の要求０、およびマスタ２のためのキュー内の要求０を調べるであろう。アービターは２つの要求を比較してどの要求がより待ち時間が重要であるかを決定し、要求を許可するであろう。他の実施形態において、アービターは、要求の年齢に関係なく各マスタのためのキュー内のどの要求が最も待ち時間が重要であるかを決定する。例えば、３つのペンディングしている要求のうちでマスタ１のためのキュー内の要求１が最も待ち時間が重要であると仮定すると、アービターはマスタ２のためのキュー内の要求１と要求０の待ち時間要件を比較し、どの要求を許可するかを決定するであろう。
【００３４】
他の例において、図６を参照すると、２つのマスタＭ０およびＭ１は命令（集合的に要求）を有した要求信号を実質的に同じ時間４２にアービターに送信する。各要求は０ｂ１０の優先度を有する。両方の要求はアービター４４、４６によりアクノレジされる。
【００３５】
しかしながら、各要求のアクノレジメントは異なるサイクルで生じる。特に、Ｍ０のためのアクノレジメントが４番目のサイクル４４で生じ、Ｍ１のためのアクノレジメントが第３のサイクル４６にいて早期に生じる。時間ｘにおいて、アービターはＭ１のための要求を許可する。経過した時間量が要求の優先度の上昇を要求する前に要求が許可されたので、アービターはＭ１の優先度を変更しない。時間ｙにおいて、アービターはＭ０の要求を許可する。しかしながら、今Ｍ０の優先度が０ｂ１１に上昇されなければならないように十分な数のサイクルが経過した。従って、アービターは要求Ｍ０を上昇された優先度を有したバススレーブに送信する。優先度情報を含む要求はスレーブにより受信される。バススレーブが待ち時間情報を認識せずに命令の優先度ステータスを調べるだけである実施形態において、バススレーブは最初に最も高い優先度の命令を実行する。また、いくつかの実施形態において、いくつかのスレーブは優先度情報を認識しないかもしれない。これらのスレーブはすべての入力される要求を等しく処理するであろうけれども、要求は、待ち時間を低減するために最適である方法でアービターによりスレーブに提供されるであろう。
【００３６】
従って、上の例では、Ｍ１のための要求の後でＭ０のための要求が受信されたという事実にもかかわらず、スレーブは最初にＭ１のための要求よりも前にＭ０が作用されなければならないことに気づいている。アービターは待ち時間要件に対して命令の優先度を調べたので優先度は、アービターが優先度を上昇しないシステムにおけるよりもより高い精度で命令のステータスを反映する。バススレーブが要求の優先度を認識しないなら、バススレーブは要求が受信される順番で要求を実行する。しかしながら、上で示したように、これらのインスタンスにおいて、アービターは待ち時間を低減するために最適である方法で要求をバススレーブに提供した。
【００３７】
上で述べられたように、いくつかの実施形態において、スレーブが命令に応答する実際の順番はキュー内の命令の待ち時間要件に基いて優先順序を付け直すことができる。いくつかの実施形態において、キュー内の命令の待ち時間要件を比較することにより、バススレーブはシステムリソースの効率的な使用を増加させるために命令に応答する順番の優先順位を付けなおすことができる。例えば、命令の待ち時間要件に基いて、バススレーブがより高い優先度の命令の実行より前により低い優先度の命令を実行することができるかどうかおよび両方の命令のための待ち時間要件を依然として満足するかどうか評価することができる。
【００３８】
時々、順序づける命令は、バススレーブが所定のシステム装置を効率的にアクセスすることができるので、バススレーブが電力のようなシステムリソースの消費を低減することを可能にしてもよい。例えば、図７を参照すると、バススレーブは、第１のメモリデバイスＭＥＭ１からデータを検索するために第１の命令Ｉ１を受信する。バススレーブがデータを検索している間、第２の命令Ｉ２および第３の命令Ｉ３はバススレーブに送信される。
【００３９】
第２の命令は第３の命令Ｐ２より高い優先度Ｐ５を有する。しかしながら、第３の命令Ｉ３はバススレーブが第１のメモリデバイスＭＥＭ１をアクセスするように命令しており、第２の命令Ｉ２はバススレーブが第３のメモリデバイスＭＥＭ３をアクセスするように命令している。第１の命令Ｉ１のためのデータの検索が完了すると、バススレーブは、２つの残りの命令の待ち時間要件を調べることができ、第２の命令Ｉ２の待ち時間要件の制約を前提として、バススレーブは第２の命令Ｉ２の実行よりも前に第３の命令Ｉ３を実行することができるかどうかを決定することができる。例えば、第２の命令Ｉ２の待ち時間要件が３０サイクル以内に命令の実行を必要とするなら、およびバススレーブが１０サイクル以内に第３の命令Ｉ３を実行できると決定し、次に、１５サイクル以内に第２の命令を実行できると決定するなら、バススレーブは両方の命令をタイムリーに実行することができる。バススレーブが３つの命令すべてを効率的に実行することができるなら、システムのリソースは節約されるであろう。なぜなら、バススレーブは、メモリをオフにせずに同じメモリデバイスを再アクセスし、次に第３の命令のための要求されたデータを検索することを再開しているだろうからである。これは、システム内の電力消費を低減するであろう。
【００４０】
スレーブにより要求を実行すると、スレーブは戻りデータを送信する。戻りデータに加えて、スレーブは更新された優先度識別子３２を戻してもよい。いくつかの実施形態において、バススレーブはバススレーブがいつ命令を受信したかというタイムスタンプと、バススレーブによる命令の受信から計算されるように命令を実行するための経過時間とを比較するように構成される。上述したように、いくつかの実施形態において、経過時間が命令を新しい待ち時間ビンニングにセットするなら、バススレーブは、上昇された優先度を反映するために優先度識別子３２を次のより高い優先度識別子３２に更新することにより命令の優先度を上昇するように構成される。次に、戻りデータはアービターに送信される。
【００４１】
所定のマスタを目標にした１つ以上のスレーブからの戻りデータを送信するための順番を決定するために、アービターはスレーブにより戻された優先度識別子３２と、戻りデータの最初の（または唯一の）データが相互接続により観察されるとき取り込まれるタイムスタンプを利用してどの要求がより待ち時間が重要かを評価する。いくつかの実施形態において、スレーブは優先度識別子を返さない。その代わり、上述したように、アービターは、要求の優先度に関連して送信された要求のレコードを維持し、時間が経過するにつれ優先度を更新する。特定のマスタへのアクセスを得るために争うすべての戻り転送の相対的優先度に基いて、アービターは、もしあれば、どの要求をバッファーするかまたは抑圧するか（すなわち、戻りデータを受け入れることができないスレーブに信号を送信する）を決定し、転送を抑圧する又は要求をバッファーにセットすることによるさらなる遅延を伴わずにより待ち時間に敏感な要求をより迅速に送信する。相対的な優先度の使用は、バススレーブからの戻りの順番に関わらず、アービターが戻りデータの優先順位を付けなおすことを可能にする。
【００４２】
一例において、図８を参照すると、双方向クロスバーアービター相互接続５０はバス（３）を介してマスタに接続され、バス（１）および（２）を介して複数のスレーブＳ０およびＳ１に接続される。マスタは２つのリード要求を異なるスレーブに送信する。Ｓ０に対するリード要求の待ち時間要件はＳ１に対する要求よりも低い。両方の要求はバス（３）を介してアービター５０に送信される。アービター５０は次にその要求を上述した方法で異なるスレーブに送信する。その要求はスレーブにより完了され、この例において実質的に同時にアービター５０に送信する準備ができている。送信のための複数のバス（１）および（２）があるので、戻りリードデータをアービター５０に送信する順番に関する問題はない。しかしながら、単一のバス（３）のみがマスタに利用可能なので、アービターはマスタに送信するためにどのリードデータを優先させるかを決定しなければならない。
【００４３】
要求の待ち時間要件に基いて決定がなされる。そのため、アービターは要求の待ち時間要件に気が付いているので、アービターはＳ０からのリードデータを選択する。従って、Ｓ０からのリードデータはマスタに送信され、Ｓ１からのリードデータは、Ｓ０からのリードデータの転送の後にマスタに接続するバス（３）が利用可能になるまで抑圧されるかまたはアービターに内部的にバッファーされるかまたはキューにセットされる。
【００４４】
上記記載はこの発明の好適実施形態について記載したけれども、これはこの発明を制限することを意図したものではない。実際に、上述の記載は添付されたクレームに表されるようにこの発明の精神および範囲内にあるすべての変更および代替構成をカバーすることを意図している。クレームに記載されていなくても明示的にまたは黙示的に社会の共通財産に捧げられるように意図された開示の部分はない。
【図面の簡単な説明】
【００４５】
【図１】図１は１つのマスタとスレーブとアービターを有したＳＯＣ相互接続のブロック図である
【図２】図２は複数のマスタとスレーブとアービターを有したＳＯＣ相互接続のブロック図である。
【図３】図３は転送待ち時間を低減するための方法のフロー図である。
【図４】図４は、優先度と相関する待ち時間要件の例示テーブルである
【図５】図５はアービターに接続されたマスタ要求キューの概略図である。
【図６】図６は優先度上昇スキームを図解する概略図である
【図７】図７は、受信された命令に応答する順番の優先順位を付け直すバススレーブの概略図である。
【図８】図８は２つのスレーブと１つのマスタを有する構成のブロック図である。
【図１】
2008527498.tif 000003
【図２】
2008527498.tif 000004
【図３】
2008527498.tif 000005
【図４】
2008527498.tif 000006
【図５】
2008527498.tif 000007
【図６】
2008527498.tif 000008
【図７】
2008527498.tif 000009
【図８】
2008527498.tif 000010
【国際調査報告】
2008527498.tif 000011
2008527498.tif 000012
2008527498.tif 000013