(57)【特許請求の範囲】
【請求項１】
少なくとも１つの相互接続を介して、複数の発信元デバイスからトランザクション要求を受信するための受信デバイスであって、
前記少なくとも１つの相互接続から前記トランザクション要求を受信し、前記少なくとも１つの相互接続にトランザクション要求および信号を発行するための、少なくとも１つのポートと、
要求が前記受信デバイスによって受信されたが受諾されていないことを示す拒絶確認応答信号を生成および出力するように構成される、確認応答信号生成器と、
受諾された、受信されたが実行されていないトランザクション要求である保留トランザクション要求を、前記受信デバイスによる実行の前に記憶するためのバッファと、
クレジット生成器であって、
前記バッファ内に少なくとも１つの利用可能な記憶位置を予約し、
前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの１つを送信した発信元デバイスに対して、クレジット許諾を生成するように構成され、前記クレジット許諾は、少なくとも１つの予約済み記憶位置があることを前記発信元デバイスに示し、前記発信元デバイスからのその後のトランザクション要求が、前記受信デバイスによって受諾されるようにする、クレジット生成器と、を備える、受信デバイス。
【請求項２】
前記受信デバイスは、前記トランザクション要求のうちの前記１つを送信した前記発信元デバイスによって前記クレジット生成器から受信されたクレジット許諾が使用されていることを示すインジケータを含む前記その後のトランザクション要求を受諾し、前記トランザクション要求を前記少なくとも１つの予約済み記憶位置の１つに記憶するように構成される、請求項１に記載の受信デバイス。
【請求項３】
前記クレジット生成器は、予約済みの利用可能な記憶位置の数のカウントを記憶するためのカウンタを備え、前記クレジット生成器は、前記記憶位置のうちの１つが利用可能になったことの判定に応じて前記カウンタをインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求の受信に応じて前記カウンタをデクリメントするように構成される、請求項２に記載の受信デバイス。
【請求項４】
前記クレジット生成器は、前記複数の発信元デバイスに対応する複数のカウンタであって、それぞれが前記受信デバイスによって受諾されていない前記各複数の発信元デバイスから受信された保留トランザクション要求の数を示すカウント値を記憶するための、複数のカウンタをさらに備え、前記クレジット生成器は、前記受信デバイスが前記対応する発信元デバイスからの前記トランザクション要求のうちの少なくともいくつかを受信して、受諾しないことに応じて、前記カウンタのうちの１つをインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求を前記対応する発信元デバイスから受信することに応じて、前記カウンタのうちの１つをデクリメントするように構成される、請求項１〜３のいずれか一項に記載の受信デバイス。
【請求項５】
前記クレジット生成器は、前記受信デバイスによって受信されて、受諾されない前記トランザクション要求の全てに応じて、前記カウンタのうちの１つをインクリメントするように構成される、請求項４に記載の受信デバイス。
【請求項６】
前記クレジット生成器は、前記受信デバイスによって受信されて、受諾されず、かつクレジット許諾インジケータを含む前記トランザクション要求に応じてのみ、前記カウンタのうちの１つをインクリメントするように構成される、請求項４に記載の受信デバイス。
【請求項７】
前記クレジット生成器は、前記受信デバイスによって受諾されなかった前記保留トランザクション要求の優先順位付けのための優先順位付けロジックを含み、前記優先順位付けロジックが、優先順位付けアルゴリズムおよび前記カウンタのカウント値に基づいて、前記クレジット許諾を伝送するために前記複数の発信元デバイスのうちの１つを選択するように構成される、請求項４〜６のいずれか一項に記載の受信デバイス。
【請求項８】
前記クレジット生成器は、前記発信元デバイスのうちの１つに生成および出力されたクレジット許諾が、前記発信元デバイスによって必要とされないことを示す、前記少なくとも１つのポートで受信されるクレジット拒否要求に応答して、前記予約済み記憶位置のうちの１つを利用可能にし、前記発信元デバイスのうちの前記１つに関連する前記カウンタをデクリメントする、請求項４〜７のいずれか一項に記載の受信デバイス。
【請求項９】
前記クレジット生成器は、前記少なくとも１つのポートで発信元デバイスから受信されるクレジット許諾請求に応答して、記憶位置が前記バッファ内でいつ利用可能になるのかを判定し、利用可能な記憶位置を予約し、前記発信元デバイスにクレジット許諾を生成および出力する、請求項１〜８のいずれか一項に記載の受信デバイス。
【請求項１０】
少なくとも１つの相互接続を介して、複数の受信デバイスにトランザクション要求を発行するための発信元デバイスであって、
前記少なくとも１つの相互接続からトランザクション要求および信号を受信し、前記少なくとも１つの相互接続にトランザクション要求を発行するための、少なくとも１つのポートと、
前記複数の受信デバイスのうちの各１つに対して前記トランザクション要求を発行し、前記発行されたトランザクション要求が前記各受信デバイスによって受諾されていないときを示す確認応答信号を受信するための、トランザクション要求発行回路であって、前記発行されたトランザクション要求のうちの１つが前記各受信デバイスによって受諾されていないことを示す少なくとも１つの確認応答信号の受信に応答し、前記各受信デバイスからのクレジット許諾の受信後までは、前記発行されたトランザクション要求のうちの前記１つを再度発行しないように構成され、前記クレジット許諾は、前記各受信デバイスが前記発信元デバイスからのその後のトランザクション要求を受諾することを示す、トランザクション要求発行回路と、を備える、発信元デバイス。
【請求項１１】
前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの１つが前記各受信デバイスによって受諾されていないことを示す、各確認応答信号に応答して、前記各受信デバイスからのクレジット許諾の受信後までは、前記トランザクション要求のうちの前記１つを再度発行しないようにする、請求項１０に記載の発信元デバイス。
【請求項１２】
前記トランザクション要求発行回路は、カウンタを含み、トランザクション要求が前記各受信デバイスによって受諾されなかった回数を、前記カウンタをインクリメントすることによって追跡し、前記回数が所定値に達することに応じて、クレジット許諾インジケータを有する前記トランザクション要求を発行し、前記各受信デバイスからの前記クレジット許諾の受信後まで、前記トランザクション要求を再度発行しないように構成される、請求項１０に記載の発信元デバイス。
【請求項１３】
前記トランザクション要求発行回路は、前記発信元デバイスの検出された動作条件に応じて、前記所定値を変更するように構成される、請求項１２に記載の発信元デバイス。
【請求項１４】
前記トランザクション要求発行回路は、前記各受信デバイスによって受諾されず、前記発信元デバイスが再発行しない、発行済みのトランザクション要求に応じて受信される、クレジット許諾の受信に応じて、クレジット拒否要求を発行するように構成される、請求項１０〜１３のいずれか一項に記載の発信元デバイス。
【請求項１５】
前記トランザクション要求発行回路は、少なくとも１つのクレジット許諾請求を生成し、前記クレジット許諾請求を前記複数の受信デバイスのうちの１つに発行するための、クレジット許諾請求生成器を備え、前記クレジット許諾請求が、前記受信デバイスのうちの前記１つをトリガーして、前記発信元デバイスにクレジット許諾を発行させ、これにより、前記発信元デバイスから前記受信デバイスのうちの前記１つに対して発行されるその後のトランザクション要求が、受諾されるようになる、請求項１０〜１４のいずれか一項に記載の発信元デバイス。
【請求項１６】
前記トランザクション要求発行回路は、前記クレジット許諾の受信に応じて、前記各受信デバイスに対して発行するトランザクション要求を選択し、その発行前に、前記クレジット許諾が前記選択されたトランザクション要求に使用されていることを示すインジケータを付加するように構成される、請求項１０〜１５のいずれか一項に記載の発信元デバイス。
【請求項１７】
複数の発信元デバイスと、複数の受信デバイスと、前記複数の発信元デバイスを前記複数の受信デバイスに接続するための少なくとも１つの相互接続と、を備えるデータ処理装置であって、前記発信元デバイスのうちの少なくとも１つは、請求項１０〜１６のいずれか一項に記載の発信元デバイスであり、前記受信デバイスのうちの少なくとも１つは、請求項１〜９のいずれか一項に記載の受信デバイスである、データ処理装置。
【請求項１８】
複数の発信元デバイスによって発行されるトランザクション要求を受信する受信デバイスにおいて、どのトランザクション要求を受諾するかを判定する、前記受信デバイスの動作方法であって、
前記トランザクション要求を受信することと、
前記受信デバイスによって受信されるが受諾されないトランザクション要求に対して、拒絶確認応答信号を生成することと、
受諾された、受信されたが実行されていないトランザクション要求である保留トランザクション要求を、前記受信デバイスによる実行前にバッファ内に記憶することと、
前記バッファ内に、少なくとも１つの利用可能な記憶位置を予約することと、
前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの１つを送信した発信元デバイスのためのクレジット許諾を生成することと、
予約済みの記憶位置があることを示す前記クレジット許諾を前記発信元デバイスに出力し、前記発信元デバイスからのその後のトランザクション要求が前記受信デバイスによって受諾されるようにすることと、を含む、方法。
【請求項１９】
複数の受信デバイスにトランザクション要求を発行する、発信元デバイスの動作方法であって、
前記複数の受信デバイスのうちの各１つに対して前記トランザクション要求のうちの１つを発行することと、
前記発行されたトランザクション要求が、前記各受信デバイスによって受諾されていないことを示す確認応答信号を、前記各受信デバイスから受信することと、
前記発信元デバイスから前記発行されたトランザクション要求のうちの１つが前記各受信デバイスによって受諾されていないことを示す、少なくとも１つの確認応答信号に応じて、前記各受信デバイスが前記発信元デバイスからのその後のトランザクション要求を受諾することを示す前記各受信デバイスからのクレジット許諾の受信後まで、前記トランザクション要求を再度発行しないことと、を含む、方法。
【請求項２０】
少なくとも１つの相互接続を介して、複数の発信元手段からトランザクション要求を受信するための受信手段であって、
前記少なくとも１つの相互接続から前記トランザクション要求を受信し、前記少なくとも１つの相互接続にトランザクション要求および信号を発行するための、少なくとも１つのポート手段と、
要求が前記受信手段によって受信されたが受諾されていないことを示す拒絶確認応答信号を生成および出力するための、確認応答信号生成手段と、
前記受信手段による実行の前に、受諾された、受信されたが実行されていないトランザクション要求である保留トランザクション要求を記憶するための記憶手段と、
前記記憶手段内に少なくとも１つの利用可能な記憶位置を予約し、前記受信手段によって受諾されなかった前記トランザクション要求のうちの１つを送信した発信元手段に対してクレジット許諾を生成するための、クレジット生成手段であって、前記クレジット許諾が、少なくとも１つの予約済み記憶位置があることを前記発信元手段に示し、それにより前記発信元手段からのその後トランザクション要求が、前記受信手段によって受諾されるようにする、クレジット生成手段と、を備える、受信手段。
【請求項２１】
少なくとも１つの相互接続を介して、複数の受信手段にトランザクション要求を発行するための発信元手段であって、
前記少なくとも１つの相互接続からトランザクション要求および信号を受信し、前記少なくとも１つの相互接続にトランザクション要求を発行するための、少なくとも１つのポート手段を備え、
前記発信元手段は、前記複数の受信手段のうちの各１つに対して前記トランザクション要求を発行し、前記発行されたトランザクション要求が前記各受信手段によって受諾されていない場合に示す確認応答信号を前記相互接続から受信し、前記各受信手段からのクレジット許諾の受信後までは、前記トランザクション要求が前記各受信手段によって受諾されていないことを示す少なくとも１つの確認応答信号に応じて、前記トランザクション要求を再度発行しないための、トランザクション要求発行手段を備え、前記クレジット許諾は、前記各受信手段が前記発信元手段からのその後のトランザクション要求を受諾することを示す、発信元手段。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術分野は、データ処理システムに関し、具体的には、いくつかの受信デバイスに対してトランザクション要求を発行するいくつかの発信元デバイスを有するシステム、およびこれらのトランザクション要求を実行するための受信デバイス内のリソースの割り当てに関する。
【背景技術】
【０００２】
複数の受信デバイスにアクセスする複数の発信元デバイスのためのリソース割り当て、例えば、分散型の共有メモリは、各種類のトランザクション要求の前進を確実にするために、注意深く管理される必要がある。これは、先行技術のシステムにおいて、様々な手法で行われてきたが、一般的に、暗黙的または明示的なリソース割り当ての使用によるものである。
【０００３】
暗黙的なリソース割り当ては、受信デバイスから送信され、トランザクション要求が受諾されたかどうかを発信元デバイスに示す、確認応答信号を使用して行われてきた。受諾されなかった場合は、発信元デバイスが、今回は受諾されることを期待してトランザクション要求を後で再発行する。
【０００４】
これの不利点は、継続的に試みて、成功しない可能性があるために、各トランザクション要求の待機時間の限度を設定することが困難なことである。さらに、継続的な試みは、時間、動力、およびそれに関連する帯域幅のオーバーヘッドを有する。
【０００５】
代替的なシステムは、例えば起動の際に、各発信元デバイスが、受信デバイスとのトランザクションのために一定数のクレジットを与えられ、クレジットが使用される際、それを使用したトランザクション要求が完了すると、新しいものが発行されるものである。これの欠点は、システムがより大きくなるにつれて、全ての発信元に各受信者のためのクレジットを提供するために、受信者上の保留トランザクションを記憶するためのバッファがますます大きくなる必要があることである。
【０００６】
トランザクション要求の記憶に効果的な使用がなされ、個々のトランザクション要求の待機時間が短く保たれるような方法で、動的にリソースを割り当てることができれば、望ましいことになる。
【発明の概要】
【０００７】
本発明の第１の態様は、少なくとも１つの相互接続を介して、複数の発信元デバイスからトランザクション要求を受信するための受信デバイスであって、前記受信デバイスは、前記少なくとも１つの相互接続から前記トランザクション要求を受信し、そこに要求および信号を発行するための、少なくとも１つのポートと、要求が前記受信デバイスによって受信されたが受諾されていないことを示す拒絶確認応答信号を生成および出力するように構成される、確認応答信号生成器と、前記受信デバイスによる実行の前に受諾され、かつ保留されているトランザクション要求を記憶するためのバッファと、クレジット生成器であって、前記クレジット生成器は、前記バッファ内に少なくとも１つの利用可能な記憶位置を予約し、前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの１つを送信した発信元デバイスに対するクレジット許諾を生成するように、構成され、前記クレジット許諾は、少なくとも１つの予約済み記憶位置があることを前記発信元デバイスに示し、前記発信元デバイスからのその後のトランザクション要求が、前記受信デバイスによって受諾されるようにする、クレジット生成器と、を備える、受信デバイスを提供する。
【０００８】
本発明は、受信デバイス上のトランザクション要求記憶を低く保ち、トランザクション要求を記憶する空間を有しない受信デバイスによって継続的に拒否される可能性のある、いくつかのトランザクション要求の待機時間を過度に増やすことなく、面積オーバーヘッドを減少させることに関連する、矛盾する問題を認識する。保留トランザクション要求のための記憶位置が利用可能になると記憶位置を予約し、トランザクション要求が拒否された発信元にクレジット許諾を伝送する、受信デバイスを提供することによって、この問題に対処する。発信元デバイスは、次に、このトランザクション要求を再発行することができ、それが受諾されることを保証することが可能である。
【０００９】
このようにして、受信デバイス自体が、どの発信元デバイスが拒否された保留トランザクション要求を有するかの知識を有し、受信デバイスのバッファ内の記憶位置が利用可能になると、それらをまず予約し、選択されたものにクレジットを伝送することができ、これによって、クレジット許諾を受信している発信元デバイスによってのみ使用することができる。このようにして、発信元デバイスは、クレジット許諾に応じて送信されたトランザクション要求が、受諾されることを確実にすることができる。これは、比較的単純だが効果的な受信デバイスのリソース割り当て手法を提供し、それは、ある時点でトランザクション要求が受諾されることを確実にしながら、依然として受信デバイス内に大きなバッファを必要ともしない。
【００１０】
いくつかの実施形態において、前記受信デバイスは、前記トランザクション要求を伝送する前記発信元によって受信されるクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求を受諾し、前記少なくとも１つの予約済みの記憶位置の内の１つに、前記トランザクション要求を記憶するように、構成される。
【００１１】
受信デバイスは、トランザクション要求が、いつクレジット許諾を受信した発信元デバイスによって送信されるかを、これを示すトランザクション要求と関連するインジケータによって判定することができる。このようなトランザクション要求に応じて、受信デバイスは、利用可能な予約済み記憶位置があることを認識しながらトランザクション要求を受諾することができ、このようにして、クレジット許諾インジケータを有するトランザクション要求は、常に受信デバイスによって受諾される。クレジット許諾についての情報がトランザクション要求とともに伝送されるため、受信デバイスは、以前に受諾されていないトランザクション要求に関する情報を記憶する必要がなく、これは、受信デバイスの記憶要件を減少させる。
【００１２】
いくつかの実施形態において、前記クレジット生成器は、予約済みの利用可能な記憶位置の数のカウントを記憶するためのカウンタを備え、前記クレジット生成器は、前記記憶位置のうちの１つが利用可能になったことの判定に応じて前記カウント値をインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求の受信に応じて前記カウント値をデクリメントするように、構成される。
【００１３】
拒否されたトランザクション要求のためのクレジット許諾を発行する場合、関連するクレジット許諾インジケータを有するトランザクション要求が受信される際、それが受諾されることを保証することできるように、バッファ内の記憶位置が予約される。特定のトランザクション要求のために特定の記憶位置を予約するのではなく、クレジット生成器は、それらに関連するクレジット許諾を有するトランザクション要求のために予約されているバッファ内の記憶位置の数を示すカウント値を単純にインクリメントする。このようにして、単純にカウント値を記憶することによって、クレジット生成器は、いくつの記憶位置がクレジット許諾を有するトランザクション要求のために予約されているか、およびいくつの記憶位置が他のトランザクション要求のために利用可能であるか、を認識する。この点においては、トランザクション要求がバッファ内に記憶される際にデクリメントし、トランザクション要求がバッファから排除される際にインクリメントする、空きの記憶位置をカウントするさらなるカウンタを有することによって、後者を判定してもよい。
【００１４】
いくつかの実施形態において、前記クレジット生成器は、前記複数の発信元デバイスに対応する複数のカウンタであって、それぞれが前記受信デバイスによって受諾されていない前記各複数の発信元デバイスから受信された保留トランザクション要求の数を示すカウント値を記憶するための、複数のカウンタをさらに備え、前記クレジット生成器は、前記受信デバイスが前記対応する発信元デバイスからの前記トランザクション要求のうちの少なくともいくつかを受信して、受諾しないことに応じて、前記カウンタのうちの１つをインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求を、前記対応する発信元デバイスから受信することに応じて、前記カウンタのうちの１つをデクリメントするように構成される。
【００１５】
前述のように、受信デバイスは、受諾されていない個々のトランザクション要求の詳細を記憶する必要はない。いくつかの実施形態において、それは、発信元デバイスの数に対応する数のカウンタを有し、これらが、受信デバイスが各発信元デバイスから受信し、受諾しなかったトランザクション要求の数を示すカウント値を記憶する。この情報を記憶することは、どの発信元デバイスが、保留であり、かつ受信デバイスから拒否された多数のトランザクション要求を有するかを、受信デバイスが認識することを可能にする。次に、どの発信元デバイスに対してクレジット許諾を発行するかを選択する際に、この情報を使用することができる。再度、この情報は、面積効率のよい方法で記憶される。
【００１６】
いくつかの実施形態において、前記クレジット生成器は、前記受信デバイスによって受信され、受諾されない前記トランザクション要求の全てに応じて、前記カウンタのうちの１つをインクリメントするように構成される。一方で他の実施形態においては、前記クレジット生成器は、前記受信デバイスによって受信され、受諾されず、かつクレジット許諾インジケータを含む前記トランザクション要求に応じてのみ、前記カウンタのうちの１つをインクリメントするように構成される。
【００１７】
受信デバイスによって受諾されない各トランザクション要求に対して、受信デバイスは、それが拒否されていることを示す、カウンタをインクリメントし、後にその発信元デバイスにクレジット許諾を伝送してもよい。この場合、トランザクション要求の最初の拒否後、発信元デバイスは、クレジット許諾が受信されるまでトランザクション要求を再度発行しない。あるいは、クレジット許諾を待つ前に、トランザクション要求が一定の回数送信されるようなシステムが考案されてもよい。後者の場合、受信デバイスが、トランザクション要求が再度送信されるのか、またはクレジット許諾を待っているのかを認識するために、トランザクション要求は、必要な回数それが送信された場合に、それと関連するクレジット許諾インジケータを有することになる。このインジケータに応じて、受信デバイスは、トランザクション要求を送信した発信元デバイスに対応するカウンタのうちの１つをインクリメントし、これが、発信元デバイスがクレジット許諾を待っていることを受信デバイスに示す。
【００１８】
トランザクション要求を１回のみ送信し、その後クレジットを待つことの利点は、トランザクション要求が何回発行され、受諾されていないかを追跡する必要がなく、トランザクション要求上にクレジット許諾が必要であることを示すインジケータの必要性がないことである。しかしながら、一定の状況において、トランザクション要求が２回目または３回目で受諾される可能性が非常に高く、したがって、対応する記憶位置の予約を伴うクレジット許諾を要求し、待機する前に、トランザクション要求を１回しか送信しないことは、不必要なオーバーヘッドである場合がある。このような場合において、許諾を要求する前に、トランザクション要求が拒否される回数が特定の数になるように設定することで、システムの効率性を改善することができる。それは、明らかに発信元デバイスおよび受信デバイスの動作条件および機能性に依存し、したがって、いくつかの実施形態において、その値は適宜設定可能である。
【００１９】
いくつかの実施形態において、前記クレジット生成器は、前記受信デバイスによって受諾されなかった前記保留トランザクション要求に対して優先順位付けするための優先順位付けロジックを含み、前記優先順位付けロジックは、優先順位付けアルゴリズムおよび前記カウンタのカウント値に基づいて、前記クレジット許諾を伝送するために前記発信元デバイスのうちの前記１つを選択するように構成される。
【００２０】
受信デバイスのリソースが発信元デバイスに適正に割り当てられ、トランザクション要求が受諾されるまで長すぎる時間待機しなければならない発信元デバイスがないことを確実にするために、次のクレジット許諾のための発信元デバイスを選択する優先順位付けアルゴリズムを有する優先順位付けロジックが使用可能である。この優先順位付けアルゴリズムは、各発信元デバイスが有するトランザクションがいくつ拒否されたかをそれに示す、カウンタのカウント値を使用してもよい。
【００２１】
いくつかの実施形態において、前記クレジット生成器は、前記発信元デバイスのうちの１つに対して生成および出力されたクレジット許諾が、前記発信元デバイスによって必要とされないことを示す、前記少なくとも１つのポートで受信されるクレジット拒否要求に応答して、前記予約済み記憶位置を利用可能にし、前記発信元デバイスのうちの前記１つに関連する前記カウンタをデクリメントする。
【００２２】
受信デバイスがクレジット拒否要求に応答して、予約済みの記憶位置を利用可能にし、クレジット拒否要求を送信する発信元デバイスに関連するカウンタをデクリメントすることができれば、有利な場合がある。いくつかの場合において、クレジット許諾は、トランザクション要求を再発行しない発信元デバイスに対して発行される場合がある。これは、トランザクション要求が、推測で発行され、受信デバイスによって受諾されず、クレジット許諾をトリガーした場合に起こる場合がある。この推測によるトランザクション要求の発行は、繰り返されず、したがって、クレジット許諾は、発信元デバイスによって必要とされない。記憶位置を必要としないこの発信元デバイスのために、恒久的に予約される記憶位置を有するよりも、発信元デバイスが、クレジット拒否信号を伝送して、予約済みの記憶位置は必要なく、別の保留トランザクション要求を記憶するために解放可能であることを受信デバイスに示すことができれば、有利である。
【００２３】
いくつかの実施形態において、前記クレジット生成器は、前記少なくとも１つのポートで受信される、発信元デバイスからのクレジット許諾請求に応答して、記憶位置が前記バッファ内でいつ利用可能になるのかを判定し、利用可能な記憶位置を予約し、前記発信元デバイスにクレジット許諾を生成および出力する。
【００２４】
受信デバイスが、クレジット許諾請求に応答して、発信元デバイスに対してクレジット許諾を発行することができれば、これも有利な場合がある。発信元デバイスは、いつそれらが受信デバイスへのアクセスを必要とする動作期間に入るのかを判定することができる場合がある。このような場合には、それらがクレジット許諾を前もって要求し、後に受信デバイスにアクセスする際に、トランザクション要求が受諾されることが保証され、システムの性能を改善することができれば、有利な場合がある。
【００２５】
本発明の第２の態様は、少なくとも１つの相互接続を介して、複数の受信デバイスに対してトランザクション要求を発行する発信元デバイスであって、前記発信元デバイスは、前記少なくとも１つの相互接続から要求および信号を受信し、そこにトランザクション要求を発行する少なくとも１つのポートを備え、前記発信元デバイスは、前記複数の受信デバイスのうちの各１つに対して前記トランザクション要求を発行し、前記発行されたトランザクション要求が前記各受信デバイスによって受諾されていないことを示す確認応答信号を受信するための、トランザクション要求発行回路を備え、前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの１つが、前記各受信デバイスによって受信されなかったことを示す少なくとも１つの確認応答信号の受信に応答し、前記各受信デバイスからのクレジット許諾の受信後まで、前記発行されたトランザクション要求のうちの前記１つを発行しないように構成され、前記クレジット許諾は、前記各受信デバイスが、前記発信元デバイスからのその後のトランザクション要求を受諾することを示す、発信元デバイスを提供する。
【００２６】
本発明は、トランザクション要求が受諾されていないことを示す、受信デバイスからの確認応答信号の受信に応じて、各受信デバイスからのクレジット許諾の受信後まで、トランザクション要求を再発行しない、発信元デバイスを提供する。クレジット許諾は、その後のトランザクション要求が受信デバイスによって受諾されることを発信元デバイスに示す。このようにして、継続的に拒否される可能性のあるトランザクション要求を継続的に発行するより、発信元デバイスは、単純にクレジット許諾の受信を待ち、そうするとトランザクション要求が受諾され、これを再度発行することが可能であることを認識する。このようにして、トランザクション要求の受諾が保証され、継続的に拒否される特定のトランザクション要求に対する長い待機時間が回避される。さらに、トランザクション要求の継続的な再送信およびそれらの継続的な拒否を回避することによって、電力消費および相互接続の帯域幅を減少させることができる。
【００２７】
いくつかの実施形態において、前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの１つが前記各受信デバイスによって受諾されていないことを示す各確認応答信号に応答して、前記各受信デバイスのクレジット許諾の受信後まで、前記トランザクション要求のうちの前記１つを再度発行しないようにする。
【００２８】
発信元デバイスは、トランザクション要求が受諾されていないことを示す各確認応答信号に応答して、それを再度発行せずに、クレジット許諾を待ってもよい。あるいは、発信元デバイスは、トランザクション要求が受諾されなかった回数を追跡するカウンタを備えてもよく、発信元デバイスは、一定回数受諾されなかった後は、ただトランザクション要求を再度発行しないだけになるであろう。
【００２９】
トランザクション要求を何回も発行することを推測で試みることは、それが受諾されることになる可能性が非常に高いため、有利な場合がある。しかしながら、継続的に拒否されることを回避するために、拒否される回数を追跡し、一定回数後にクレジット許諾を要求することが有利な場合がある。その回数は、カウンタによって発信元デバイスで追跡されるため、このトランザクション要求が所定回数拒否されており、クレジット許諾を必要とするという情報は、それが一定回数拒否された段階で、トランザクション要求にクレジット許諾インジケータを添付することによって、受信デバイスに伝送可能である。これは、発信元デバイスが、トランザクション要求は一定回数だけ拒否され、この後クレジット許諾の受信に応じて再度発行された際に、受諾されることを確実にすることを可能にする。
【００３０】
いくつかの実施形態において、前記トランザクション要求発行回路は、前記発信元デバイスの検出された動作条件に応じて、前記所定値を変更するように構成される。
【００３１】
トランザクション要求を再発行するための回数の好ましい値は、発信元デバイスおよび受信デバイスの動作条件に依存し、処理中に変化する場合がある。したがって、この所定値が、変化可能であれば、有利な場合がある。多数の発信元デバイスは、受信デバイスに、一定の時間では低頻度でアクセスし、他の時間では非常に頻繁にアクセスするといった、集中的な方式でアクセスする。アクセスパターンがこの種類の場合、最適な所定値は、アクセスパターンによって変化し、したがって、動作中にこの値を変更可能であることは、システムがより効率的に動作するように調整されることを可能にする。
【００３２】
いくつかの実施形態において、前記トランザクション要求発行回路は、前記各受信デバイスによって受諾されず、前記発信元デバイスが再発行しない、発行済みのトランザクション要求に応じて受信される、クレジット許諾の受信に応じて、クレジット拒否要求を発行するように構成される。
【００３３】
発信元デバイスは、受信デバイスによって受諾されないが、発信元デバイスは再度発行することに関心のない、トランザクション要求を発行する場合がある。例えば、それは、推測的データアクセスの場合がある。このような場合において、発信元デバイスに対してクレジットが発行される場合、発信元デバイスは、このクレジット許諾を必要とせず、そのクレジット許諾のために受信デバイス内に予約されている記憶位置を解放することができるように、クレジット拒否要求を発行することができれば、便利である。
【００３４】
いくつかの実施形態において、トランザクション要求発行回路は、少なくとも１つのクレジット許諾請求を生成し、前記複数の受信デバイスのうちの１つに対して前記クレジット許諾請求を発行するための、クレジット許諾請求生成器を備え、前記クレジット許諾請求は、前記受信デバイスのうちの前記１つをトリガーして、前記発信元デバイスにクレジット許諾を発行し、そうして前記発信元デバイスから前記受信デバイスのうちの前記１つに対して発行されるその後のトランザクション要求が受諾されることになる。
【００３５】
発信元デバイスが、トランザクション要求より先にクレジット許諾を請求することができる、クレジット許諾請求生成器を有すれば、便利な場合がある。発信元デバイスが、受信デバイスに頻繁にアクセスする必要がある動作期間がいくつかあり、これらの動作期間は、短い待機時間が重要である場合がある。このような場合において、クレジット許諾を前もって要求可能であることが、発信元デバイスの性能を改善する。
【００３６】
いくつかの実施形態において、前記トランザクション要求発行回路は、前記クレジット許諾の受信に応じて、前記各受信デバイスに対して発行するためのトランザクション要求を選択し、その発行前に、前記クレジット許諾が前記選択されたトランザクション要求に使用されていることを示すインジケータを付加するように、構成される。
【００３７】
クレジット許諾が、発信元デバイスによって受信される場合、発信元デバイスは、受諾されず、実際にこのクレジット許諾をトリガーしたトランザクション要求のためにそれを使用する必要はない。発信元デバイスは、それ自体の優先順位付けロジックに従って、おそらく拒否されたトランザクション要求よりも、性能にとってより重要である保留トランザクション要求を選択し、このトランザクション要求が受諾されることを確実にする、クレジット許諾が受信されたことを示すインジケータを伴ってこれを発行することができる。このようにして、発信元デバイスは、性能に重要なトランザクション要求を優先することができ、受信デバイスは、どのクレジット許諾が使用されたかを、単純に、トランザクション要求に関連するインジケータを監視することによって、追跡することができる。
【００３８】
本発明の第３の態様は、複数の発信元デバイス、複数の受信デバイス、および前記複数の発信元デバイスを前記複数の受信デバイスに接続する少なくとも１つの相互接続を備えるデータ処理装置であって、前記発信元デバイスのうちの少なくとも１つが、本発明の第２の態様による発信元デバイスであり、前記受信デバイスのうちの少なくとも１つが、本発明の第１の態様による受信デバイスである、データ処理装置を提供する。
【００３９】
本発明の第３の態様は、複数の発信元デバイスによって発行されるトランザクション要求を受信する受信デバイスで、どのトランザクション要求を受諾するかを判定する方法であって、前記トランザクション要求を受信することと、前記受信デバイスによって受信されるが受諾されないトランザクション要求に対する拒絶確認応答信号を生成することと、前記受信デバイスによる実行の前に、受諾された保留トランザクション要求をバッファ内に記憶することと、前記バッファ内に、少なくとも１つの利用可能な記憶位置を予約することと、前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの１つを送信した発信元デバイスに対するクレジット許諾を生成することと、前記発信元デバイスからのその後のトランザクション要求が前記受信デバイスによって受諾されるように、予約済み記憶位置があることを示す前記クレジット許諾を前記発信元デバイスに出力することと、を含む、方法を提供する。
【００４０】
本発明の第４の態様は、複数の受信デバイスに対してトランザクション要求を発行する方法であって、前記方法は、前記複数の受信デバイスの各１つに対して前記トランザクション要求のうちの１つを発行することと、前記発行されたトランザクション要求が、前記各受信デバイスによって受諾されなかったことを示す、確認応答信号を前記各受信デバイスから受信することと、前記発行されたトランザクション要求のうちの１つが前記各受信デバイスによって受諾されていないことを示す、少なくとも１つの確認応答信号に応じて、前記各受信デバイスが前記発信元デバイスからのその後のトランザクション要求を受諾することを示す、前記各受信デバイスからのクレジット許諾の受信後まで、前記トランザクション要求を再度発行しないことと、を含む、方法を提供する。
【００４１】
本発明の第５の態様は、少なくとも１つの相互接続を介して、複数の発信元手段からトランザクション要求を受信するための受信手段であって、前記受信手段が、前記少なくとも１つの相互接続から前記トランザクション要求を受信し、そこに要求および信号を発行するための少なくとも１つのポート手段と、要求が前記受信手段によって受信されたが受諾されていないことを示す、拒絶確認応答信号を生成および出力するための確認応答信号生成手段と、前記受信デバイスによる実行の前に、受諾された保留トランザクション要求を記憶するための記憶手段と、前記記憶手段内に少なくとも１つの利用可能な記憶位置を予約し、前記受信手段によって受諾されなかった前記トランザクション要求のうちの１つを送信した発信元手段に対して、クレジット許諾を生成するための、クレジット生成手段であって、前記発信元手段からのその後のトランザクション要求が、前記受信手段によって受諾されることになるように、前記クレジット許諾が、前記発信元手段に対して、少なくとも１つの予約済み記憶位置があることを示す、クレジット生成手段と、を含む、受信手段を提供する。
【００４２】
本発明の第６の態様は、少なくとも１つの相互接続を介して、複数の受信手段に対してトランザクション要求を発行するための発信元手段であって、前記発信元手段が、前記少なくとも１つの相互接続から要求および信号を受信し、そこにトランザクション要求を発行するための少なくとも１つのポート手段を備え、前記発信元手段が、前記トランザクション要求を前記複数の受信手段の各１つに発行し、前記発行されたトランザクション要求が、前記各受信手段によって受諾されていないことを示す確認応答信号を前記相互接続から受信し、前記トランザクション要求が前記各受信手段によって受諾されていないことを示す、少なくとも１つの確認応答信号に応じて、前記受信手段からのクレジット許諾の受信後まで、前記トランザクション要求を再度発行しないための、トランザクション要求発行手段を含み、前記クレジット許諾が、前記各受信手段は前記発信元手段からのその後のトランザクション要求を受諾することを示す、発信元手段を提供する。
【００４３】
本発明の上記の、および他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的実施形態の以下の詳細な記述から明らかになるであろう。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態による受信デバイスを示す。
【図２】本発明の実施形態による発信元デバイスを示す。
【図３】いくつかの発信元デバイスおよびいくつかの受信デバイスを含み、全てが相互接続によって相互接続されているデータ処理システムを示す。
【図４】本発明の実施形態による、データ処理システム内のトランザクション要求の進行を概略的に示す。
【図５】本発明の実施形態による受信デバイスによって実行される方法におけるステップを図示するフロー図を示す。
【図６】本発明の実施形態による発信元デバイスによって実行される方法におけるステップを図示するフロー図を示す。
【発明を実施するための形態】
【００４５】
図１は、本発明の実施形態による受信デバイス１０を示す。この受信デバイスは、典型的に、整合性コントローラまたは入力／出力ブリッジ等、システム内のスレーブであってもよい。
【００４６】
この受信デバイスは、発信元デバイスから相互接続上で送信されたトランザクション要求を、ポート１２で受信する。受信デバイス１０は、受信デバイスによって実行される前に、受信された保留トランザクション要求を記憶するためのバッファ１５を備える。したがって、トランザクション要求の受信に応じて、受信デバイス１０は、トランザクション要求を受諾し、利用可能な記憶位置がある提供されたバッファ１５内にそれを記憶する。利用可能な記憶位置があるかどうかは、アービタ２０によって判定される。
【００４７】
保留トランザクション要求は、トランザクション要求が、バッファ１５から排除され、受信デバイスがそれらを実行することができるまで、バッファ１５内に記憶される。受信デバイスが保留トランザクション要求を実行すると、次に、完了した確認応答システムが、発信元デバイスに返送される。
【００４８】
アービタ２０と関連する、利用可能な記憶位置の数をカウントするカウンタ２８があり、アービタ２０は、このカウンタから記憶位置の可用性を判定する。受信されたトランザクション要求がバッファ１５内に記憶される場合、カウンタ２８はデクリメントされ、一方で、トランザクション要求がバッファ１５から排除される場合、カウンタはインクリメントされる。
【００４９】
アービタ２０が、バッファ１５内に利用可能な空間がないと判定すると、トランザクション要求は、受信デバイス１０によって受諾することができず、拒否される。アービタ２０は、ポート１２を介して、トランザクション要求を送信した発信元デバイスに、トランザクション要求が受諾されていないことを示す信号を伝送し戻す、確認応答信号生成器２５に対してこの拒否を発信する。
【００５０】
トランザクション要求が、それに関連するクレジット許諾請求を有する場合、アービタ２０は、クレジットが必要であることをクレジット生成器３０に発信し、クレジット生成器３０は、トランザクション要求を送信した発信元デバイスに関係するカウンタ３２をインクリメントし、カウンタ内のこのインクリメントは、その発信元デバイスにクレジットが必要であることをクレジット生成器に示す。いくつかの実施形態において、全ての拒否トランザクション要求は、クレジット生成器３０をトリガーして、カウンタ３２のうちの１つをインクリメントし、しかるべき時に、クレジットを送信することに留意されたい。他の実施形態においては、受信され、それらに関連するクレジット許諾請求を有するトランザクション要求のみが、この作用をトリガーする。カウンタ３２は、各発信元デバイスに対するクレジット許諾を待っている全ての保留の拒否トランザクション要求をカウントすることができる、適切なサイズにサイズ決めされる必要があることにもまた、留意されたい。
【００５１】
クレジット生成器３０は、利用可能な記憶位置がある場合にそれを判定するために監視する。カウンタ２８を監視することによって、これを行ってもよい。クレジット生成器３０が、保留の拒否トランザクション要求を有する場合、つまり、カウンタ３２のうちの少なくとも１つが０ではない場合、それを検出すると、利用可能な記憶位置を予約し、クレジット生成器３０内の優先順位付けロジック３４は、保留の拒否トランザクション要求を有する発信元デバイスのどれが、このクレジットを受信するべきかを判定する。次に、このようなクレジットを生成し、それを発信元デバイスに伝送する。それはまた、クレジットを送信した発信元デバイスに関連するカウンタ３２をデクリメントする。クレジットを予約するために、クレジット生成器３０は、記憶位置の数を示すカウンタ３６をインクリメントする。カウンタ２８は、利用可能な記憶位置の合計数、つまり、予約済みのもの、および空いていて予約されていないものをカウントしてもよく、または予約されていない空き記憶位置だけをカウントしてもよい。
【００５２】
優先順位付けロジック３４は、特定の発信元デバイスを選択するために、いくつかのアルゴリズムのうちの１つを使用してもよい。発信元デバイスを選択する際に、それは、カウンタ３２の値を考慮する。発信元デバイスが、拒否されて保留中のトランザクション要求を多数有する場合、それは、概して、より少ない数を有するものよりも高い優先度を有する。いくつかの場合において、クレジット生成器が、いずれの記憶位置も予約しないが、利用可能な記憶位置を予約しクレジットを発行する前に、カウント値がインクリメントするのを待機する場合は、全てのカウント値はゼロであってもよい。
【００５３】
一般に、予約済みのバッファ記憶位置の割り当てのための優先順位付けは、クレジットを待っている全ての保留中の拒否トランザクション要求、およびいくつかの実施形態においてはサービス品質ＱＯＳ要件に配慮して適正な方式でなされるべきである。
【００５４】
ＱＯＳ優先順位付けが必要とされるシステムにおいて、クレジット許諾追跡は、再試行された要求のＱＯＳ値もまた追跡するべきであり、したがって、発信元デバイスに関係する少なくとも１つのＱＯＳ値は、そのデバイスのためのカウンタとともに記憶されるべきである。このようなシステムにおいて、ＱＯＳ値は、トランザクション要求と関連することになり、これは、カウンタと連動して記憶することができる。発信元デバイス毎に１つのＱＯＳのみが記憶される場合は、最も最近拒否されたトランザクション要求に対する値が記憶可能である。クレジットが許諾される場合、このＱＯＳ値は、値を減少されるか、または消去されてもよい。クレジット許諾を受信する次の発信元デバイスの選択は、ＱＯＳ値の優先度を配慮するべきである。システムはまた、低い優先度の要求をスタベーション、つまり決してクレジットを受信しないことから防止するために、スタベーション防止機構を実装するべきである。
【００５５】
割り当てるための次のクレジット許諾を選ぶためのアービトレーションは、２段階で行うことができる。まず、最も高いＱＯＳ値に基づいて選び、次に、ラウンドロビン方式で同一のＱＯＳ値の中から要求を選ぶ。
【００５６】
トランザクション要求の受信に加えて、受信デバイス１０は、発信元デバイスからクレジット許諾要求を受信することができる。これは、発信元デバイスが、受信デバイスへのアクセスを必要とする動作モードに入ろうとしていることを認識する場合、および実行されるコードが、短い待機時間で実行するべき重要なコードである場合に、起こる場合がある。このような場合、受信デバイス１０から前もってクレジットを受信し、そのトランザクション要求を発行するときには、受信デバイス１０による受諾が保証されるようにすることができれば、望ましい。このようなクレジット許諾要求に応じて、クレジット生成器３０は、発信元デバイスに対してクレジットを発行する。それはまた、カウンタ３６をインクリメントする。
【００５７】
受信デバイス１０はまた、発信元デバイスからクレジット拒否要求も受信する場合がある。これは、発信元デバイスが、再発行を希望しない保留の拒否トランザクション要求に対するクレジットを受信した場合に起こる場合がある。このような場合において、バッファ１５内の記憶位置の予約をもたらすクレジットを保持するよりも、発信元デバイスが、クレジット許諾拒否信号を使用してそのクレジットを返却し、これに応じて、クレジット生成器３０が、カウンタ３６をデクリメントすることによって予約済みの記憶位置を解放する。
【００５８】
クレジットが許諾される際にカウンタ３６をインクリメントし、それらが使用されるかまたは返却される際に、それをデクリメントすることによって、クレジット生成器３０は、面積効率がよく、簡単な方式で、予約済みの記憶位置の数を追跡し続けることができ、どのトランザクション要求が拒否され、どれがどの記憶位置の予約をトリガーしたかを追跡する必要がない。
【００５９】
アービタ２０は、新たに受信されたトランザクション要求のための空き記憶位置があるかどうかを判定する際、カウンタ値３６およびカウンタ値２８を読み込む。新たに受信されたトランザクション要求が、それに関連するクレジットインジケータを有する場合、アービタ２０によってバッファ１５内に記憶され、カウンタ３６はデクリメントされる。同様に、クレジットが許諾される際、カウンタ３６はインクリメントされる。カウンタ２８が、空いていてかつ未予約のものとは対照的に、空き（予約済みまたは未予約）の記憶位置を追跡する場合、それはカウンタ３６とともに更新され、一方で未予約の空き記憶位置のみを追跡する場合は、予約済みの記憶位置の割り当ておよび解放は、このカウンタ値に影響しない。
【００６０】
図２は、本発明の実施形態による発信元デバイス４０を示す。この発信元デバイスは、プロセッサコアなどのようなマスターであってもよい。この発信元デバイス４０は、トランザクション要求を生成し、これらは、トランザクション要求発行器５０によってポート４２に発行される前に、アービタ５７内のバッファ内に記憶される。トランザクション要求発行器５０は、その中でアービタ５７が発行されるべき保留トランザクション要求のうちの１つを選択するために使用する優先順位付けロジック５５、およびクレジットキャンセラ５８を有する。
【００６１】
トランザクション要求発行器５０は、トランザクション要求を発行し、これらは、図１に示されるように、ポートを介して相互接続へ、次いで受信デバイス１０等の受信デバイスへ送信される。トランザクション要求が、受信デバイスによって受諾されない場合、トランザクション要求が拒否されたことを示す確認応答信号が、発信元デバイス４０へ送信され、ポート４２で受信される。
【００６２】
この拒否確認応答信号に応じて、カウンタ６０のカウント値がインクリメントされることになる。コンパレータ６１は、カウンタ６０のカウント値がデータ記憶６２内に記憶された所定値と等しいかどうかを判定する。等しくない場合、トランザクション要求発行器は、このトランザクション要求を、アービタ５７の制御下で再発行する。トランザクション要求発行器は、トランザクション要求を再発行する前に所定回数まで待ってもよく、またはほぼ即座に再発行してもよい。カウント値がデータ記憶６２内に記憶された値と等しい場合、トランザクション要求発行器５０は、それに関連するクレジット許諾要求インジケータを有するトランザクション要求を再発行する。その後、トランザクション要求発行器は、受信デバイスからクレジットを受信するまで、このトランザクション要求を再度再発行しない。
【００６３】
クレジットが、受信デバイスから受信されると、トランザクション要求発行器は、受諾されることを確実にするクレジット許諾インジケータを有するトランザクション要求を発行することができる。しかしながら、アービタ５７および優先順位付けロジック５５を使用して、そのクレジットを要求したものに対して異なるトランザクション要求を発行することを、決定することができる。発行された、選択されたトランザクション要求は、それに関連するクレジット許諾インジケータを伴って発行される。これは、受信者がトランザクション要求を受諾することを保証する。
【００６４】
このようにして、優先順位付けロジック５５は、トランザクション要求に優先順位付けし、性能にとって重要なトランザクション要求が優先されることを確実にし、したがって、それらの待機時間が減少される。トランザクション要求が、クレジット許諾インジケータを伴って発行される場合、カウンタ６０がクリアされる。いくつかの実施形態において、発信元デバイスは、保留トランザクション要求のサービス品質ＱＯＳ値を追跡するかもしれない。これは、優先順位付けロジック５５が、優先順位付し、クレジット許諾を提供するための適切なトランザクション要求を選択すること可能にする。
【００６５】
この実施形態において、単一のカウンタのみが示されているが、発信元デバイス４０が数個のトランザクション要求を発行してもよく、それぞれがある時点でクレジット許諾を要求することができるように、それぞれに対するカウントが保たれるため、数個のカウンタが存在してもよい。
【００６６】
クレジットが、そのクレジットの生成をトリガーしたトランザクション以外のトランザクション要求に対して発行される場合、クレジットを待っていたこのトランザクション要求は、クレジット許諾なしで再度再発行することができる。いくつかの実施形態においては、それと関連するクレジット要求により即座に再発行されてもよく、あるいは、再度、クレジットの要求前に６２内の値によって決定された回数再発行されるように、クレジット許諾なしで再発行され、そのカウンタがゼロに設定されてもよい。
【００６７】
いくつかの実施形態において、発信元デバイス４０は、カウンタ６０またはコンパレータ６１もしくはデータ記憶６２を有しない。これらの実施形態において、受諾されない各トランザクション要求は、受信デバイスをトリガーして、クレジット許諾を生成し、各トランザクション要求が、１回だけ発行され、次に、クレジットの受信を待つ。
【００６８】
いくつかの実施形態において、データ記憶６２内に記憶された値は、リアルタイムで変化してもよく、そのため動作条件は、クレジット許諾を要求する前にトランザクション要求が発行される回数もまた変化することができるように、変化する。これは、システムが現在の動作条件に対して調整されることを可能にし、性能を高める場合がある。
【００６９】
この実施形態において、トランザクション要求発行器５０はまた、それに関連するクレジットキャンセラ５８を有する。このクレジットキャンセラは、発信元デバイス４０が、おそらく推測で発行され、再発行を希望しない保留トランザクション要求のためのクレジットを受信した場合に、クレジットキャンセル信号を発行してもよい。クレジットを保持するよりは、クレジットキャンセラ５８が、受信デバイスに対して送信され、この特定のクレジットのために予約されている記憶位置を解放するように作用するクレジットキャンセル信号を発行するとすれば、有利である。
【００７０】
図３は、相互接続７０を介して複数の受信デバイス１０に接続される、複数の発信元デバイス４０を備えるデータ処理システムを概略的に示す。各発信元デバイスは、相互接続７０を介して、受信デバイス１０のうちのいずれか１つにトランザクション要求を送信する。これらのデバイスは、トランザクション要求を受諾するか、またはそれらを拒否するかのどちらかであり、後者の場合は、これを示す確認応答信号を送信する。クレジット信号は、後に送信されてもよく、これらのトランザクション要求に応じて、相互接続を介して、それらに添付されるクレジットインジケータを伴って再発行することができる。
【００７１】
図４は、図２の発信元デバイス４０に対応する要求ノードからのトランザクション要求が、おそらくはメモリコントローラへ送信される前に、送信先または図１に示されるもの等の受信デバイスに対応するホームノードにおいて、どのように処理されるかを非常に概略的に示す。第１の実施例において、読み込み要求は、それに添付されるクレジットを伴って、要求ノードによって発行される。これは、ホームノードで受信され、そのバッファ内の予約済みの記憶位置内に記憶される。それは、次に、メモリコントローラへ送信されることによって実行され、データは、要求ノードに返却される。
【００７２】
第２の実施例において、類似の読み込み要求が要求ノードから送信されるが、この場合はそれに添付されるクレジットはない。それが、ホームノードに到着する場合、クレジットを有するトランザクション要求のために予約されていない利用可能な空間がバッファ内に偶然存在し、したがって、読み込み要求は受諾され、それが実行されて、メモリコントローラに送信され、データが元の要求ノードへの返送されるまで、バッファ内に記憶される。
【００７３】
第３の実施例は、上述の実施例と類似しているが、しかしながら、この場合は、バッファ内に利用可能な空間がなく、したがって、読み込み要求が、それにクレジットを添付されていないため、ホームノードで受諾されず、否定的な確認応答信号が要求ノードに返送される。要求ノードは、ホームノードからクレジットを受信するまで、トランザクション要求を再度送信しない。要求ノードがクレジットを受信すると、次に、読み込み要求を、それに添付されるクレジットを伴って再度送信することによって、第１の実施例にあるように進行することができる。
【００７４】
図５は、本発明の実施形態による受信デバイスで行われる方法のステップを図示するフロー図を示す。
【００７５】
この方法において、トランザクション要求は、発信元デバイスから受信され、受信者は、それに関連するクレジットインジケータがあるかどうかを判定する。これがない場合は、バッファ内に利用可能な記憶位置があるかどうかを判定する。利用可能な記憶位置がある場合、トランザクション要求を受諾し、これをバッファ内に記憶する。次に空いている記憶位置の数をカウントするカウンタをデクリメントし、次のトランザクション要求を受信する。
【００７６】
トランザクション要求に関連するクレジットインジケータがあった場合は、バッファ内の予約済みの記憶位置の数を示すカウンタがデクリメントされ、トランザクション要求は、受諾され、バッファ内に記憶される。この実施例において、空き記憶位置の数をカウントするカウンタは、合計の空き記憶位置、つまり、予約済みのもの、予約されていないが利用可能なもの、をカウントし、したがって、このカウンタもまた、この時点でデクリメントされる。他の実施形態において、空き記憶位置カウンタは、予約されていない利用可能な位置のみをカウントしてもよく、その場合、それはこの時点ではデクリメントされない。
【００７７】
要求が、それに関連するクレジットインジケータを有さず、バッファ内に利用可能な記憶位置がない場合、トランザクション要求は受諾されず、拒否確認応答信号が発信元デバイスに返送される。この場合、受信者は、トランザクション要求が、それに関連するクレジット許諾インジケータを有するかどうかを判定する。有しない場合、このトランザクション要求に対してさらなる動きは全く行わない。それに関連するクレジット許諾インジケータを確かに有する場合、そのトランザクション要求を送信した発信元デバイスに対するカウンタをインクリメントする。これは、時間内に、その発信元デバイスのためのクレジットの許諾をトリガーする。これは、図５の第２のセクションに示される。
【００７８】
図５のフロー図の第２のセクションは、クレジットがどのようにして許諾されるのかを示す。したがって、クレジット生成器が判定するのは、あらゆる保留中の拒否トランザクション要求であり、それは、異なる発信元デバイスに関連するカウンタのうちのいずれかがゼロでないかどうかを判定することによって、これを行う。いずれかの保留中の拒否トランザクション要求がある場合、バッファ内に利用可能な記憶位置があるかどうかを判定する。利用可能な記憶位置がある場合、その記憶位置を予約し、この場合、それは予約済み記憶位置カウンタをインクリメントすることによって行われる。
【００７９】
クレジット許諾者は、次に、保留の拒否トランザクション要求を有する発信元を選択する。クレジット許諾者は、特定の発信元デバイスに対して保留中である拒否トランザクション要求の数に基づいて発信元デバイスを選択する、優先順位付けロジックを使用して、これを行う。クレジット許諾者は、次に選択した発信元デバイスにクレジットを発行し、その発信元デバイスに関連するカウンタをデクリメントし、クレジット許諾を待っているその発信元デバイスに対して、１つ少ない保留の拒否トランザクション要求があることを認識する。
【００８０】
それは、次に、これ以上保留中の拒否トランザクション要求がないどうかを判定し、ある場合は、バッファ内に利用可能な記憶位置があるかどうかを調べるために、もう一度確認する。
【００８１】
示されていないが、クレジット許諾生成器はまた、クレジットのための要求を受信することができ、この場合も、バッファ内に利用可能な記憶位置があるかどうかを調べるために確認し、ある場合は、その記憶位置を予約し、クレジットを発信元に伝送する。
【００８２】
クレジット許諾生成器は、以前に許諾されたクレジットが、もはや必要とされていないことを示す信号も受信する場合がある。このような場合において、それは、予約済みの記憶位置の数を示すカウンタをデクリメントする。
【００８３】
図６は、本発明の実施形態による発信元デバイスで行われる方法におけるステップを図示するフロー図を示す。この方法において、トランザクション要求は、トランザクション要求が受諾されているかどうかを次に判定する、発信元デバイスによって発行される。それが受諾されていない場合、拒否確認応答信号を受信し、次に発信元デバイスは、トランザクション要求が設定された回数発行されたかどうかを判定する。これは、単純に１回であってもよく、その場合、クレジット許諾受信箱に移る。１回よりも多い場合は、トランザクションが、まだ「Ｎ」回発行されていないかどうかを判定する。発行されていない場合、カウンタは、発信元デバイスがこのトランザクションを発行した回数を数える以外に、インクリメントされ、トランザクション要求は、再度発行される。これは、時間遅延後であってもよく、または即座であってもよい。トランザクション要求が、必要とされるＮ回発行されると、それに関連するクレジット要求を伴って再度発行される。発信元デバイスは、次に、トランザクション要求が受諾されるかどうかを判定される。受諾される場合、クレジット要求は受信デバイスによって処理されず、発信元デバイスは、単純に次のトランザクション要求を発行する。トランザクション要求が受諾されない場合は、トランザクション要求は再発行されないが、クレジット許諾を待つ。
【００８４】
クレジット許諾が受信されると、次に、トランザクション要求は、それが受諾されることを確実にするクレジットインジケータを伴って再発行される。この点において、ｎ回拒否されたトランザクション要求は、このクレジットインジケータを伴って発行されてもよく、または発信元デバイスは、発行するための別のトランザクション要求を選択してもよい。
【００８５】
クレジット許諾信号は、単独で伝送される信号であってもよく、または拒否トランザクション要求に送信された応答信号に関連するインジケータであってもよいことを認識されたい。
【００８６】
本発明の例示的な実施形態が、添付の図を参照して本明細書に詳細に記載されてきたが、添付の請求項によって定義されるように、本発明はそれらの厳密な実施形態に限定されるものではなく、本発明の範囲および精神を逸脱することなく、様々な変更および修正が当業者によりそこにもたらされることを理解されたい。例えば、本発明の範囲を逸脱することなく、以下の従属請求の特徴と、独立請求の特徴との様々な組み合わせがなされてもよい。
【図１】
0006025428.tif 000002
【図２】
0006025428.tif 000003
【図３】
0006025428.tif 000004
【図４】
0006025428.tif 000005
【図５】
0006025428.tif 000006
【図６】
0006025428.tif 000007