(57)【特許請求の範囲】
【請求項１】
１組のマスター装置と、
１組のスレーブ装置と、を備え、
前記各スレーブ装置は、バッファを有し、前記各スレーブ装置に対応するバッファの利用可能な各スロットに対するトークンを供給することによって、前記マスター装置のうちの１つからコマンドを受取るために利用可能性を示すように構成され、
前記マスター装置中の第１のマスター装置は、全ての前記スレーブ装置が、前記マスター装置から少なくとも１つのコマンドを受取るために利用可能であるとき、「全てのトークンが利用可能」信号を受信するように構成されているシステム。
【請求項２】
前記マスター装置中の前記第１のマスター装置は、前記「全てのトークンが利用可能」信号の受信に応答して、前記スレーブ装置中の１つへコマンドを送るように構成されている請求項１記載のシステム。
【請求項３】
１つ以上の前記マスター装置は１つ以上のグループと関連し、前記スレーブ装置中の少なくとも第１のスレーブ装置は、前記スレーブ装置中の前記第１のスレーブ装置が、前記グループ中の第１のグループにおけるマスター装置の数に等しいか、それよりも多いコマンド数を受取るために利用可能であるとき、前記グループの前記第１のグループに対応する第１のバックプレッシャー信号をアサートするように構成されている請求項１記載のシステム。
【請求項４】
１組のマスター装置と１組のスレーブ装置とを有するシステム中で実行される方法において、前記マスター装置からコマンドを受取るための特定のタイプの前記スレーブ装置の利用可能性が、前記スレーブ装置に対応するバッファの利用可能な各スロットに対するトークンにより通信され、
前記１組のスレーブ装置の全てが、前記マスター装置からのコマンドを受取るために利用可能であるとき、前記マスター装置中の第１のマスター装置に対して「全てのトークンが利用可能」信号をアサートすることを含む方法。
【請求項５】
前記「全てのトークンが利用可能」信号の受信に応答して、前記スレーブ装置中の１つのスレーブ装置へコマンドを送る前記マスター装置中の前記第１のマスター装置をさらに含む請求項４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にマスター装置とスレーブ装置との間の通信を管理するためのシステム及び方法に関する。特に本発明は、マスター装置へ通信する効率と、スレーブ装置がマスター装置からコマンドを受取る利用可能性とを増加させるシステム及び方法に関する。
【背景技術】
【０００２】
今日の多くの高性能システムは、メモリと入力／出力（Ｉ／Ｏ）装置のような複数の他の装置とともに複数のプロセッサを含んでいる。プロセッサは一般に、スレーブ装置として動作する他の装置を制御し、その装置と通信し、そこへコマンドを送信するマスター装置として動作する。例えば、メモリはスレーブ装置として動作する。Ｉ／Ｏ装置は、一般にマスター装置及びスレーブ装置の両者として動作する。このようなシステムにおけるマスター装置とスレーブ装置との間の通信は、一般にこれら全ての装置を相互接続するバスによって実現される。最近の多くのマイクロプロセッサシステムでは、マスター装置とスレーブ装置は、クロスバースイッチ、リング、トーラス等のようなさらに精巧な相互接続ネットワークによって接続されている。多数の堅密に結合されたマイクロプロセッサシステムはコヒーレントなメモリシステムを必要とするため、また、それらの大部分は、「コヒーレントバス」として論理的に動作するように、アドレス／コマンド相互接続を必要とするため、このような相互接続ネットワークは、ここでの説明では「バス」と呼ぶ。バスはバス上の全ての装置間で共有されなければならない限定された帯域幅を有している。異なる装置間の通信は、それ故、可能な限り効率的であるべきである。例えば、バス上で帯域幅を使い尽くす任意の不必要な通信は、除去されるべきである。
【０００３】
プロセッサのようなマスター装置は、コマンド及び他の命令をバスによってスレーブ装置へ送信することにより、スレーブ装置を制御する。１実施形態では、スレーブ装置は、コマンドがスレーブ装置によりサービスされることができるまで、コマンドを保持するためのバッファを有している。コマンドをスレーブ装置へ送信する前に、この実施形態では、マスター装置は、スレーブ装置のバッファがコマンド／命令を受取るための利用可能なスロットを有していることを判定しなければならない。そうでなければ、スレーブ装置はコマンドを再試行し、マスター装置は再度、コマンドを送らなければならない。多くのコマンドが再試行されなければならないならば、アドレス／コマンドバスの帯域幅は無用なトランザクションにより消費され、システムの性能は低下される。それ故、スレーブ装置の利用可能性を判定するための問合せが、マスター装置により送信され、応答がスレーブ装置により返送され、それはスレーブ装置のバッファが利用可能なスロットを有しているか否かを示している。スレーブ装置が、バッファスロットが利用可能であるという応答をしたならば、マスター装置はコマンドまたはその他の命令をスレーブ装置へ送ることができる。このような問合せ／応答タイプの通信は、バスの帯域幅を必要とし、したがってシステムの性能に影響を及ぼす可能性がある。
【０００４】
このような問合せ／応答タイプの通信の数を減少し、バスの利用を最適化する１つの方法は、トークン方法論を実行することである。スレーブ装置がそのバッファ中に利用可能なスロットを有しているならば、そのスレーブ装置は、スレーブ装置を識別する１つ以上のトークンをグローバルトークン管理装置に送る。スレーブ装置によって送られるトークンの数は利用可能なバッファのスロットに等しい。マスター装置がコマンドを特定のスレーブ装置へ送信する必要があるとき、マスター装置は、その特定のスレーブ装置に対応するトークンを求めるリクエストをトークン管理装置へ送る。そのスレーブに対応するトークンが利用可能であれば、マスターはコマンドを内部のバスによってスレーブ装置に送ることができる。そのスレーブ装置に対応するトークンが利用可能ではないならば、マスター装置はコマンドを送らず、後に、トークンを求めるリクエストを再度出してもよく、或いは出さなくてよい。
【０００５】
バスの帯域幅に対しては非常に有益であるが、トークン方法論の実行は付加的なステップ／クロックサイクルを必要とする。一般に、マスター装置中のローカルトークン管理装置は、どのタイプのトークンが要求されているかを判定するために、それが送る必要があるコマンドを最初に復号する。トークンタイプが判定された後、マスター装置中のローカルトークン管理装置は、トークンリクエストをグローバルトークン管理装置へ送り、要求されたトークンがグローバルトークン管理装置中で利用可能であるならば、グローバルトークン管理装置は、トークンをそのローカルトークン管理装置へ返送する。今日の高速度システムでは、リクエストが行われる毎に、このプロセスを完了するために必要とされるステップ／クロックサイクルが性能に悪影響を及ぼす可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
それ故、トークンのリクエストを処理するのに必要な時間を減少することによって、マスター装置とスレーブ装置との間の通信の速度及び効率を増加することのできるシステム及び方法が必要とされている。
【課題を解決するための手段】
【０００７】
前述した１つ以上の問題は、本発明の様々な実施形態により解決することができる。概説すると、本発明は、システムにおいてマスター装置とスレーブ装置との間の通信の効率を増加させるシステム及び方法を含んでいる。全てのスレーブ装置がそれらのコマンドバッファ中で利用可能なスロットを有するならば、「全てが利用可能」信号が発生される。マスター装置は「全てが利用可能」信号を検出して、それでなければ特定のトークンが利用可能であるか否かを判定することが要求されるであろう付加的なステップ／クロックサイクルを使用することなく、スレーブ装置が任意の種類のコマンドを受取るためにおいて利用可能であることを判定することができる。
【０００８】
１実施形態によれば、マスター装置は、特定のタイプのスレーブ装置の利用可能性に応答して、「トークン」を使用することにより、そのタイプのコマンドを受信するように、スレーブ装置へコマンドを送るように構成される。各スレーブ装置は、そのスレーブ装置に対応するトークンをグローバルトークン管理装置へ送り、スレーブ装置の利用可能性を示すように構成されている。グローバルトークン管理装置は、マスター装置により要求されたトークンをマスター装置へ送る。全てのスレーブ装置が利用可能であるならば、異なるタイプのコマンドの全てが受取られることができ、それ故、グローバルトークン管理装置は、マスター装置へ送られる「全てのトークンが利用可能」信号をアサートする。マスター装置は、「全てのトークンが利用可能」信号がアサートされたか否かを判定することにより、スレーブ装置の利用可能性を判定することができる。「全てのトークンが利用可能」信号がアサートされているならば、全てのスレーブ装置は利用可能であることが示され、それが必要とされるタイプであるか否かを判定するために、マスター装置がトークンを復号するための付加的なステップ／クロックサイクルは必要とされない。
【０００９】
その代わりに、マスター装置は、マスター装置中に設けられたローカルトークン管理装置におけるスレーブに対応するトークンの利用可能性を判定することにより、スレーブ装置の利用可能性を判定する。マスター装置中のローカルトークン管理装置は、最初に全ての種類のトークンを有しており、マスターは、コマンドをバスに送るとき、要求されたトークンを消費する。マスター装置は、コマンドをバスに送った後、消費されたトークンに対するリクエストをグローバルトークン管理装置へ送る。要求されたトークンがグローバルトークン管理装置で利用可能であるならば、グローバルトークン管理装置は「置換トークン」をそのマスターへ送る。この実施形態では、マスター装置が全ての種類のトークンを有するならば、マスター装置内のローカルトークン管理装置は、マスター装置へ送られる「全てのトークンが利用可能」信号を発生し、マスターは、コマンドに対するそのタイプのトークンを復号する前に、コマンドを送ることができる。
【００１０】
別の実施形態では、各マスター装置は１つ以上のグループに割当てられ、各グループは１つ以上のマスター装置を含んでいる。特定のスレーブ装置が特定のグループ内のマスター装置からコマンドを受取るために利用可能であることを示す、バックプレッシャー信号がアサートされる。利用可能なバッファスロット数が、各グループ−スレーブ装置（またはスレーブ装置のグループ）対で設定されたしきい値よりも大きいかそれに等しいならば、バックプレッシャー信号がアサートされる。しきい値は、１実施形態では、グループ中のマスター装置の数に等しくてもよい。
【００１１】
特定のグループ中のマスター装置からコマンドを受取るための各スレーブ装置の利用可能性に応答して、「全てが利用可能」信号が、特定のグループに対してアサートされる。即ち、全てのスレーブ装置からの全てのバックプレッシャー信号がアサートされたならば、「全てが利用可能」信号が、グループに対してアサートされる。その後、マスター装置は、マスター装置のグループに対応する「全てが利用可能」信号がアサートされたことを判定することにより、スレーブ装置の利用可能性を決定することができ、そうでなければ必要とされるであろう付加的なステップ／クロックサイクルが省略される。
【００１２】
本発明の種々の実施形態は、従来技術よりも優れた多くの利点を提供することができる。例えば、マスター装置は、復号及び比較の付加的なステップ／クロックサイクルなしに、スレーブ装置が利用可能であるか否かを判定することができる。同様の利点が、他のタイプのエージェント及びリソースを含む他の実施形態でも提供されることができる。
【発明を実施するための最良の形態】
【００１３】
本発明の他の目的および利点は、以下の詳細な説明を読み、添付図面を参照にすることによって明らかになるであろう。
【００１４】
本発明は種々の変形および別の形態が可能であるが、その特定の実施形態を図面に例示し、以下詳細に説明する。しかしながら、このような図面および詳細な説明は、記載された特定の実施形態に本発明を限定する意図はないことを理解すべきである。この開示は、特許請求の範囲によって規定されている本発明の範囲内に含まれる全ての変形、等価物、別の置換をカバーすることを意図している。
【００１５】
本発明の１つ以上の実施形態を以下説明する。これらは例示であり、本発明を限定するものではなく、本発明を例示することを意図している。
【００１６】
概説すると、本発明は、システム中で、マスター装置とスレーブ装置との間の通信の効率を増加するシステム及び方法を含んでいる。１実施形態では、全てのスレーブ装置が利用可能であることに応答して、「全てが利用可能」信号が発生される。マスター装置は「全てが利用可能」信号を検出することができ、そうでなければ特定のスレーブ装置が利用可能であるか否かを判定するために必要とされるであろう付加的なステップ／クロックサイクルを使用せずに、スレーブ装置が利用可能であることを判定できる。
【００１７】
本発明は異なるタイプのシステムにも広く応用可能であるが、この説明において本発明の可能な実施形態及び状況の全てを含むことはできない。それ故、本発明の説明は、マルチプロセッサコンピュータ処理システムで実行される幾つかの例示的な実施形態に焦点を当てている。これらの実施形態は限定的なものではなく例示であることを意図している。この説明を読むことにより、本発明の多くの別の実施形態が当業者には明らかになるであろう。これらの別の実施形態は全て特許請求の範囲に記載された範囲内に含まれるものである。
【００１８】
本発明の１実施形態では、１つ以上のマスター装置が、トークン方法を用いて、スレーブ装置の利用可能性の判定に応答して、コマンドをスレーブ装置へ送信するように構成されている。スレーブ装置は、そのスレーブ装置に対応するトークンをグローバルトークン管理装置へ送信することにより、その利用可能性を通信することができる。マスター装置は、グローバルトークン管理装置からのスレーブ装置に対応するトークンを要求することによって、特定のスレーブ装置の利用可能性を判定できる。１実施形態では、ローカルトークン管理装置は、要求されたトークンのタイプを判定するためにリクエストを復号し、そのトークンを利用可能なトークンと比較してそのトークンが利用可能であるか否かを判定することを必要とされ得る。マスター装置は、グローバルトークン管理装置からの適切なトークンの受信に応答して、特定のスレーブ装置へコマンドを送ることができる。
【００１９】
復号／比較の付加的なステップは、全てのスレーブ装置が利用可能であることに応答して、省略可能である。１実施形態では、全てのスレーブ装置が利用可能であることを示すために、「全てのトークンが利用可能」信号が発生される。「全てのトークンが利用可能」信号がアサートされたことが判定されると、マスター装置は、そうでなければ要求され適切なスレーブ装置へコマンドを送るであろう付加的なステップ／クロックサイクルをバイパスすることができる。他の実施形態では、特定のタイプのコマンドを受信するためにスレーブ装置の利用可能性をマスター装置へ通信するのに、トークン方式に対する別の方法を使用することができる。
【００２０】
本発明の種々の実施形態は、従来技術よりも優れた多くの利点を提供する。例えば、マスター装置は、そのコマンドのためのトークンを復号する付加的なステップ、およびトークンが要求されたタイプであるか否かを判定する付加的なステップなしに、スレーブ装置が利用可能であるか否かを判定することができる。同様の利点は、他のタイプのエージェントおよびリソースを含む他の実施形態で与えられることができる。
【００２１】
図１を参照すると、１実施形態によるマスター装置とスレーブ装置との間の通信を容易にするシステムを示すブロック図が示されている。この図では、太い実線はコマンドを表し、細い実線はトークンを表し、点線はクレジットを表し、破線はトークンリクエストを表し、１点鎖線（−・−・−）はリクエストを表し、破線と破線の組合わせ線（―-―-―）は許可を表している。
【００２２】
マスター装置１１０、１１５、１２０は、バス１４０を介して、スレーブ装置１６０及び１６５にコマンドを送るように構成されている。通常の方法を使用するシステムでは、スレーブ装置に取り付けられたバッファ（１５０、１５５）が利用可能なバッファスロットを有するならば、マスター装置（１１０、１１５、１２０）はコマンドをスレーブ装置（１６０、１６５）へ送ることができる。例えば、バッファ１５０が利用可能なスロットを有するならば、スレーブ装置１６０はコマンドを受取ることができ、バッファ１５５が利用可能なスロットを有するならば、スレーブ装置１６５はコマンドを受取ることができる。このシステムでは、バッファの利用可能性を判定するために、リクエスト−許可方式を使用することができる。リクエスト−許可方式では、マスター装置１１０は最初に、スレーブ装置の利用可能性を判定するために、保持バッファ（１２５）に対して問合せを送る。バッファ１２５はマスター装置１１０へ応答を返送し、バッファがコマンドを受信するのに利用可能であるか否かを示す。「トークン」がこのシステムで実行されないならば、スレーブ装置のバッファ（１５０、１５５）は、コマンドを受取るためのスロットが存在しないとき、コマンドに対して再試行応答を送るであろう。
【００２３】
１実施形態では、マスター装置１１０、１１５、１２０は、バッファ１２５、１３０、１３５にそれぞれ取り付けられることができる。バッファ１２５、１３０、１３５は、適切なスレーブ装置がコマンドを受取ることができるか否かの判定が行われる期間中、マスター装置からコマンドを受信して保持するように構成されている。バッファがマスター装置からのコマンドを受取り保持するために利用可能なバッファスロットを有するか否かを、各マスター装置へ通信するために、「クレジット」方式を設けることができる。この方式では、バッファ（例えば１２５）は、対応するマスター装置（例えば１１０）へ、バッファ中の利用可能なスロットの数と同数のクレジットを送る。その後マスター装置１１０は、マスター装置が利用可能な「クレジット」を有するならば、対応するバッファ（１２５）へコマンドを送ることができる。マスターがコマンドを送るとき、マスター（１１０）は内部で「クレジット」を消費する。バッファ（１２５）中のコマンドがバスに送信された後、バッファ（１２５）は置換「クレジット」をマスター（１１０）へ送る。マスター装置が利用可能なクレジットを持たないならば、そのマスター装置は、バッファが置換「クレジット」をマスターへ送るまで、コマンドを送ることを待つ。この機構は、バッファ（１２５）のオーバーフローを防止し、「リクエスト−許可」方式の通信オーバーヘッドを減少するために使用される。
【００２４】
このクレジット方式を完全にするため、スレーブ装置はトークン方式を使用して、マスター装置からコマンドを受取るためのそれらの利用可能性を通信することができる。トークン方式では、スレーブ装置は、そのスレーブ装置に対応するバッファの利用可能な各スロットに対するトークンを発生する。スレーブ装置からのトークンは、グローバルトークン管理装置１７０へ送られ、そのグローバルトークン管理装置１７０は全てのスレーブ装置から送られたトークンを受信し、記憶するように構成されている。マスター装置が特定のタイプのコマンドをスレーブ装置へ送る必要があるとき、マスター装置は、トークン管理装置１７０が所望のタイプのトークンを有するか否かを判定するように構成される。特定のタイプのスレーブ装置に対するトークンが利用可能であるならば、その後マスター装置は、コマンドをそのスレーブ装置へ送信できる。そうでなく、対応するトークンが利用可能でなければ、ターゲットのスレーブ装置は再試行応答をコマンドに対して送ることができ、後にマスター装置は、再度コマンドを送ってもよい。
【００２５】
通常のシステムでの、マスター装置に対するバッファ（１２５、１３０、１３５）とバス１４０との間の通信、およびバスとスレーブ装置に対するバッファ（１５０、１５５、１６０）との間の通信は、例えばリクエスト−許可方式を使用してもよい。マスター装置のバッファ１２５は、バス１４０へ「アドレスバスリクエスト」を送信する。バス内部の中央アービタはアービトレーションを行い、バス１４０およびターゲットのスレーブ装置１５０がリクエストを受取ることができるならば、バスはバッファ１２５へ「許可」を送信する。「許可」信号が受信された後、バッファ１２５はコマンドをバス１４０へ送る。バス１４０はそのコマンドをターゲットのスレーブ装置１５０へ送る。このシステムは「トークン」方式を実行するので、スレーブ装置は非常に稀に再試行応答をコマンドに対して送るであろう。
【００２６】
１実施形態では、マスター装置は最初に各タイプのトークンのコピーを有することができる。コマンドをスレーブ装置に送り、対応するトークンを消費した後、マスター装置がそのタイプのトークンに対応する別のコマンドを送信することができる前に、マスター装置は、同じタイプの置換トークンを要求する。その代わりに、マスター装置は、最初にコマンドをスレーブ装置に送信するために必要とされる任意のトークンのコピーを持たなくてもよい。その後、マスター装置がコマンドをスレーブ装置へ送る必要があるとき、マスター装置はトークン管理装置１７０からトークンを得るであろう。
【００２７】
マスター装置が最初に全ての種類のトークンを有している第１の実施形態では、マスター装置内のローカルトークン管理装置は、リクエストを復号し、どのトークンがこのリクエストを送るために必要とされるかを判定する。ローカルトークン管理装置は、その後、要求されたトークンがマスター装置内のローカルトークン管理装置で利用可能であるか否かを調べる。ローカルトークン管理装置が全ての種類のトークンを有しているならば、それは「全てのトークンが利用可能」信号を発生する。「全てのトークンが利用可能」信号が発生され、マスター装置がクレジットを有するならば、マスター装置は任意の種類のコマンドをバスへ送ることができる。したがって、マスターは、コマンドのためのそのタイプのトークンを復号する前に、そのコマンドをバスに送る。
【００２８】
マスター装置が全ての種類のトークンを持たない第２の実施形態では、マスター装置１１０内のローカルトークン管理装置は、マスター装置により必要とされるトークンのタイプを判定するためにリクエストを復号する。それに続いて、マスター装置１１０内のローカルトークン管理装置は、トークンリクエストをグローバルトークン管理装置へ送る。要求されたトークンがグローバルトークン管理装置中で利用可能であるならば、それは要求されたトークンをマスター装置へ送る。マスター装置が、要求されたトークンを受信した後、マスターは対応するコマンドをスレーブ装置へ送る。すべてのタイプのトークンがグローバルトークン管理装置で利用可能であるならば、グローバルトークン管理装置、又は他の実施形態における別の装置は、各タイプのトークンが既にトークン管理装置で利用可能であることを示す「全てのトークンが利用可能」信号をアサートすることができる。その後マスター装置は、信号がアサートされたか否かを判定するために、「全てのトークンが利用可能」信号を検査することができる。マスター装置が、「全てのトークンが利用可能」信号がアサートされたと判定したならば、マスター装置は、マスターがコマンドを送ることができるか否かを決めるためにそのコマンドを復号する必要はない。マスター装置は、必要とされるトークンが利用可能であることを認知しており、それ故（コマンドのトークンタイプを復号せずに）直ちにそのコマンドを送ることができる。
【００２９】
両方の場合に、グローバルトークン管理装置が残りのトークンを管理し、コマンドに対応するトークンは消費されなければならないので、マスター装置は、後にトークンリクエストをグローバルトークン管理装置へ送らなければならない。システムが「クレジット」方式を使用するならば、第１の実施形態がより良好である。システムが「リクエスト−許可」方式を使用するならば、第２の実施形態は第１の実施形態と同様に動作する。
【００３０】
図２を参照すると、１実施形態による、マスター装置に対して「全てのトークンが利用可能」信号をアサートするか否かを判定するシステムの１実施形態を示すブロック図が示されている。「全てのトークンが利用可能」信号は、トークン管理装置が、あるいはどの装置がこの機能を行っていても、要求されたトークンのタイプを判定するためにトークンリクエストを復号する付加的なステップと、要求されたタイプが利用可能であるか否かを判定するために利用可能なトークンに対するリクエストを比較する付加的なステップとを避けることを可能にする。
【００３１】
マスター装置２１０内のクレジット管理装置は、マスター装置がリクエストを有するときはいつでも、ライン２１５上でリクエスト信号をアサートする。マスター装置２１０は、対応するスレーブ装置へコマンドを送るために、特定のタイプのトークンを必要とする可能性がある。ＡＮＤゲート２２５は、ライン２１５上でリクエスト信号を受信するとともに、ライン２２０上でクレジット信号を受信するように構成されている。クレジット信号２２０は、バッファが利用可能なバッファスロットを有し、それ故、マスター装置からコマンドを受取ることができることを示すマスター装置の出力バッファからのクレジットをマスター装置が有するとき、アサートされる。マスター装置が必要なクレジットを有し、特定のトークンに対するリクエストを出すならば、ＡＮＤゲート２２５は、そのクレジット信号及びリクエスト信号の両者がアサートされたことを示す信号をライン２２７上に出力する。その後、ライン２２７上の信号はＡＮＤゲート２３０へ与えられる。ＡＮＤゲート２３０は、特定のタイプのトークンが利用可能であるか否かを検査する手順が必要であるか否かを示すライン２３５上のバイパス信号を発生する責任を負う。
【００３２】
マスター装置内のローカルトークン管理装置２６５は、ライン２５０、２５５、…、２６０上で「トークンが利用可能」信号を発生するように構成されている。各信号は、ローカルトークン管理装置が保持することができる各トークンタイプに対応している。その信号に対応するトークンタイプがローカルトークン管理装置で利用可能であるならば、信号がアサートされる。ＡＮＤゲート２４５は、トークンの利用可能性の信号を受信し、ライン２４０上で「全てのトークンが利用可能」信号を発生するように構成されている。各タイプのトークンがローカルトークン管理装置で利用可能であることを示す、全てのトークンの利用可能性の信号がアサートされたならば、「全てのトークンが利用可能」信号が発生される。
【００３３】
マスター装置が送るためのコマンドを有し、「全てのトークンが利用可能」信号がアサートされたならば、ＡＮＤゲート２３０は、ライン２３５上でバイパス信号を発生するように構成される。バイパス信号が出力されるとき、マスター装置は、スレーブ装置が利用可能であるか否かを判定するために、最初に利用可能なトークンを復号／比較することなく、任意のスレーブ装置へコマンドを送信することができる。他方で、マスターが送るためのコマンドを有し、「全てのトークンが利用可能」信号がアサートされていないならば、ＡＮＤゲート２３０は、ライン２３５上でバイパス信号を発生しない。バイパス信号がアサートされていないならば、トークン管理装置は、最初にマスター装置により要求されているトークンのタイプを判定し、その後、その特定のタイプのトークンが利用可能であるか否かを判定する。
【００３４】
別の実施では、トークン管理装置２６５は、ローカルトークン管理装置の代わりにグローバルトークン管理装置であってもよく、クレジット管理装置２１０がマスター内に存在する（或いはクレジット管理装置は、グローバルトークン管理装置内に存在するマスター内のクレジット管理装置のコピーであってもよい）。トークン管理装置がグローバルトークン管理装置であるならば、信号２４０はグローバルトークン管理装置からマスター内のローカルトークン管理装置へ接続される。
【００３５】
図３を参照すると、１実施形態による、マスター装置とスレーブ装置のグループ間の通信を容易に行うことのできるシステムを示すブロック図が示されている。マスター装置は、各グループのマスター装置がコマンドをスレーブ装置へ送ることを可能にする優先順位を制御するために、異なるグループに割当てられている。グループ中のマスターの組合わせは構成可能である。この図では、太い実線はコマンドを表し、細い実線はトークンを表し、点線はクレジットを表し、破線はトークンリクエストを表し、１点鎖線はリクエストを表し、破線と破線の組合わせ線は許可を表し、２点鎖線（−・・−・・−）は「全てのトークンが利用可能」信号を表している。
【００３６】
図３で示されている例では、マスター装置３１０及び３１５はグループ３２５に割当てられ、マスター装置３２０はグループ３３０に割当てられている。マスター装置３１０、３１５、３２０は、コマンドをバス１４０を介してスレーブ装置３７５及び３８０へ送る。スレーブ装置３７５は、バッファ３６０が利用可能なスロットを有するならば、コマンドを受取ることができ、スレーブ装置３８０は、バッファ３６５が利用可能なスロットを有するならば、コマンドを受取ることができる。マスター装置３１０、３１５、３２０は、それぞれバッファ３３５、３４０、３４５へ取り付けられることができる。バッファ３３５、３４０、３４５は、適切なスレーブ装置がコマンド受取ることができるか否かが判定されている間に、マスター装置からコマンドを受信し、それを保持する。マスターが１つ以上のクレジットを有するならば、マスターはコマンドをそのバッファへ送ることができる。
【００３７】
１実施形態では、マスター装置がコマンドを特定のスレーブ装置へ送る必要があるとき、そのマスター装置は、トークン管理装置３７０が特定のスレーブ装置に対応するトークンを有するか否かを判定するように構成される。トークンが利用可能であるならば、その後マスター装置は、トークンを取り、コマンドを送信することができる。そうでなければ、対応するトークンが利用可能ではないならば、マスター装置は、コマンドに対する必要なトークンが利用可能になるまで、コマンドを送ることを待つことができる。
【００３８】
１実施形態では、マスター装置はコマンドに必要なタイプのトークンを復号し、マスター装置はトークンに対するリクエストをグローバルトークン管理装置３７０へ送る。第１のステップは「全てが利用可能」信号を実施することによって除去されることができる。特定のグループに対して、どのタイプのトークンもトークン管理装置で利用可能であるならば、マスターが、コマンドを復号して必要とされるトークンのタイプを判定する必要はなく、あるいは要求されたタイプのトークンを利用可能なトークンと比較する必要もない。トークン管理装置または他の実施形態の別の装置は、「全てが利用可能」信号を、各タイプのトークンがトークン管理装置で既に利用可能であることを示しているその特定のグループに対してアサートすることができる。その特定のグループからのマスター装置は、信号がアサートされたか否かを判定するために、「全てが利用可能」信号を検査することができる。マスター装置が、「全てが利用可能」信号がアサートされたと判定するならば、復号ステップ及び比較ステップはバイパスされることができ、マスター装置はコマンドをスレーブ装置へ送ることができる。
【００３９】
図５ａを参照すると、１実施形態による、トークンを使用して、スレーブ装置がマスター装置からコマンドを受取るために利用可能であるか否かを判定する方法を示すフローチャートが示されている。５１０で、コマンドはマスター内でトークンに復号される。２つのタイプのコマンドがあり、一方は要求されたトークンであり、他方はそうでないトークンである。５２０で、マスター装置はコマンドがトークンを要求するか、しないかを決める。トークンが要求されないならば、マスターがクレジットを有する場合、マスターはコマンドを送信することができる（５６０）。トークンが要求されるならば、マスター要求はトークンリクエストをグローバルトークン管理装置へ送信する（５３０）。要求されたトークンのタイプがグローバルトークン管理装置で利用可能であるならば（５４０で「イエス」分岐）、トークン管理装置はトークンをマスターへ送る（５５０）。トークンがトークン管理装置で利用可能ではないならば（５４０で「ノー」分岐）、グローバルトークン管理装置は、トークンが利用可能になるまで待機するであろう（即ちグローバルトークン管理装置は、スレーブがトークンをグローバルトークン管理装置へ送るまで待つであろう）。トークンがマスターで利用可能になった後、マスターは「クレジット」を有するならば、コマンドを送ることができる（５６０）。
【００４０】
図６を参照すると、１実施形態による、全てのスレーブ装置が利用可能であるか否かを判定することによって、「全てのトークンが利用可能」信号をアサートするか否かを判定する方法を示すフローチャートが示されている。１実施形態では、「全てのトークンが利用可能」信号はトークン管理装置によってアサートされる。処理は６００で開始し、ブロック６１０で、その後第１のトークンタイプが選択される。その後、選択されたトークンタイプが利用可能であるか否かに関する判定が行われる。
【００４１】
任意の時点で、トークンタイプが利用可能ではないならば、決定６１５は「ノー」分岐に進み、ブロック６２０で、「全てのトークンが利用可能」信号が「誤」（アサートされていない）に設定される。１実施形態では、アサートされるべき「全てのトークンが利用可能」信号のために、全てのトークンタイプのうち少なくとも１つがトークン管理装置で利用可能でなければならない。他方で、選択されたトークンタイプが利用可能であるならば、決定６１５は「イエス」分岐に進み、その後決定ブロック６２５で、選択されたトークンタイプが、トークンタイプのリストの最後であるか否かに関する他の判定が行われる。
【００４２】
最後のトークンタイプではないならば、決定６２５は「ノー」分岐に進み、その後ブロック６３０で、次のトークンタイプが選択される。続いて、処理は決定６１５へループバックし、次のトークンタイプが利用可能であるか否かを判定する。他方で、選択されたトークンタイプが最後のトークンタイプであるならば、決定６２５は「イエス」分岐に進み、その後ブロック６３５で、「全てのトークンが利用可能」信号が「真」（信号がアサートされる）に設定される。「全てのトークンが利用可能」信号のアサートは、各タイプのトークンのうちの少なくとも１つが利用可能であることを示し、したがってマスター装置が、特定のタイプのトークンが利用可能であるか否かを判定するのに必要な付加的なステップを除去する。その後、処理はブロック６１０へ戻り、その後ブロック６１０で、第１のトークンタイプが選択され、プロセスは反復する。
【００４３】
図７を参照すると、マスターがコマンドをスレーブ装置へ送ることができるか否かを判定する方法を示すフローチャートが示されている。「全てのトークンが利用可能」信号がアサートされていないならば、マスター装置は、「全てのトークンが利用可能」信号がアサートされたか否かを判定できる。この信号がアサートされていないならば、マスター装置は適当なトークンが利用可能であるか否かを判定することができる。処理はブロック７００で開始し、その後ブロック７１０で、コマンドに対応する特定のタイプのトークンがマスター装置により要求される。１実施形態では、要求されるトークンのタイプは、マスター装置が送ることを試みているコマンドをサービスすることのできるスレーブ装置に対応している。
【００４４】
その後、決定７１５で「全てのトークンが利用可能」信号がアサートされたか否かについての判定が行われる。「全てのトークンが利用可能」信号がアサートされていないならば、決定ブロック７１５から「ノー」分岐へ進み、その後ブロック７２０で、リクエストは、要求されているトークンのタイプを判定するために復号される。ブロック７２５で、要求されたトークンは、その要求されたトークンが利用可能であるか否かを判定するために、ローカルトークン管理装置において他の利用可能なトークンと比較される。
【００４５】
その後、要求されたトークンがローカルトークン管理装置で利用可能であるか否かについての別の判定が行われる。トークンが利用可能ではないならば、決定ブロック７３０から「ノー」分岐に進み、その後ブロック７４０で、コマンドがこの時点ではスレーブ装置に送られることができないことを示すメッセージが、マスター装置へ送られる。続いて、プロセスは７９９で終了する。他方で、要求されたトークンがローカルトークン管理装置で利用可能であるならば、決定７３０から「イエス」分岐へ進み、その後ブロック７７０で、コマンドは適切なスレーブ装置へ送られる。ローカルトークン管理装置はトークンリクエストをグローバルトークン管理装置へ送る（７８０）。処理は再び、７９９で終了する。
【００４６】
決定７１５へ戻り、「全てのトークンが利用可能」信号がアサートされたならば、決定７１５から「イエス」分岐へ進み、ブロック７２０、ブロック７２５、決定７３０をバイパスする。ブロック７５０で、マスター装置からのコマンドは適切なスレーブ装置へ送られる。ローカルトークン管理装置はトークンを復号し、トークンリクエスト信号をグローバルトークン管理装置へ送る。「全てのトークンが利用可能」信号がアサートされたならば、グローバルトークン管理装置は、それをマスターへ送る代わりに、トークンを消費する。「全てのトークンが利用可能」信号がアサートされないならば、グローバルトークン管理装置は、要求されたトークンをマスターへ送る（最後の部分の動作はフローチャートでは示されていない）。処理は、続いて７９９で終了する。
【００４７】
別の実施形態では、マスター装置は、スレーブ装置へのアクセスに関して異なる優先順位を有するグループへ分割されることができる。特定のグループに対するスレーブ装置の利用可能性は、その特定のグループに対応するバックプレッシャー信号をアサートすることによって示される。スレーブ装置に対する利用可能なバッファスロットの数が、そのグループ−スレーブ装置（またはスレーブ装置のグループ）対に対するしきい値以上ならば、バックプレッシャー信号はアサートされる。バックプレッシャー信号がスレーブ装置から受信されるならば、「全てが利用可能」信号を受信するグループ中の任意のまたは全てのマスター装置は、バックプレッシャー信号をアサートしているスレーブ装置へコマンドを送ることができる。１実施形態では、しきい値がグループ中のマスター装置の数に等しくてもよい。各グループに対するしきい値は累積的であってもよい。即ち、グループ１に対する動作しきい値はしきい値１に等しく、グループ２に対する動作しきい値はしきい値１＋しきい値２に等しく、グループ３に対する動作しきい値はしきい値１＋しきい値２＋しきい値３に等しい等々である。
【００４８】
「全てが利用可能」信号は、特定のグループ中のマスター装置からのコマンドを受信するために、各スレーブ装置の利用可能性に応答して、特定のグループに対してアサートされる。即ち、「全てが利用可能」信号は、そのグループに対応する全てのスレーブ装置からの全てのバックプレッシャー信号がアサートされているならば、そのグループに対してアサートされる。マスター装置は、マスター装置のグループに対応する「全てが利用可能」信号が、アサートされているか否かを判定することによって、そうでなければ必要とされるであろう付加的なステップ／クロックサイクルを必要とせずに、スレーブ装置の利用可能性を判定することができる。
【００４９】
スレーブ装置は、バックプレッシャー信号を使用して、マスター装置からのコマンドを受取るために、利用可能性を通信してもよい。スレーブ装置がそのグループ中のマスター装置からコマンドを受取ることができることをグループに示すために、各スレーブ装置はバックプレッシャー信号を特定のグループに対してアサートすることができる。１実施形態では、利用可能なバッファスロットの数が、そのグループに割当てられたしきい値よりも大きい場合には、スレーブ装置はバックプレッシャー信号を特定のグループに対してアサートする。１実施形態では、異なるしきい値数が各グループに割当てられることができる。さらに、各グループは各スレーブ装置またはスレーブ装置のタイプに対して、異なるしきい値数を有することができる。グループに対するしきい値数は、グループ中のマスター装置の数に等しくてもよいが、等しい必要はない。１実施形態では、動作しきい値数、即ち各スレーブ装置がバックプレッシャーを決定するために使用する数は、各グループに対して、各グループの優先順位にしたがって累積的であってもよい。例えば、グループ３３０はグループ３２５よりも高い優先順位を有し、グループ３３０はしきい値１を有し、グループ３２５はしきい値２を有すると仮定すると、グループ３３０に対する動作しきい値は１になり、グループ３２５に対する動作しきい値は３（１＋２）になるであろう。したがって、１つのバッファスロットは、スレーブ装置がグループ３３０のバックプレッシャー信号をアサートできる前に利用可能である必要があり、３つのバッファスロットは、スレーブ装置がグループ３２５に対するバックプレッシャー信号をアサートできる前に利用可能である必要がある。
【００５０】
図４を参照すると、１実施形態による、マスター装置のグループへの「バックプレッシャー」信号を使用して「全てが利用可能」信号をアサートするか否かを判定するシステムを示すブロック図が示されている。「全てが利用可能」信号によって、トークン管理装置、またはこの機能を実行しているどの装置でも、要求されたトークンのタイプを決定するためにトークンリクエストを復号し、その要求されたタイプが利用可能であるか否かを判定するためにリクエストを利用可能なトークンと比較する付加的なステップを回避することが可能になる。
【００５１】
マスター装置４１０は、マスター装置がリクエストを有するときはいつでも、リクエスト信号４１２をアサートする。マスター装置４１０は、対応するスレーブ装置へコマンドを送るために、特定のタイプのトークンを要求する。ＡＮＤゲート４１６はライン４１２上でリクエスト信号を受信するとともに、ライン４１４上でクレジット信号を受信するように構成されている。ライン４２０上のクレジット信号は、マスター装置が、バッファが利用可能なバッファスロットを有することを示すクレジットを、マスター装置の出力バッファから受信したときに、アサートされ、これによりマスター装置からコマンドを受取ることができる。マスター装置が必要なクレジットを有し、特定のトークンに対するリクエストを出すならば、ＡＮＤゲート４１６はクレジット信号及びリクエスト信号の両方がアサートされたことを示すライン４１８上の信号をアサートする。ライン４１８上の信号は、その後、ＡＮＤゲート４２２へ与えられる。ＡＮＤゲート４２２は、特定のタイプのトークンが利用可能であるか否かを決定する手順が必要であるか否かを示すバイパス信号をライン４２２上で発生する責任を負う。
【００５２】
スレーブ装置４２４は、各装置が特定のグループ中のマスター装置からのコマンドを受信するために利用可能であるか否かを示すように構成されている。１実施形態では、各スレーブ装置及びマスター装置の各グループに対して、そのスレーブ装置に対する利用可能なバッファスロットの数を示す第１の信号が発生され、そのスレーブ装置及びグループに対応するしきい値を示す第２の信号が発生される。例えば、バッファ信号４２６、４２８、４３０は、第１、第２、第ｎのスレーブ装置に対して利用可能なバッファスロットの数を示し、しきい値信号４３２、４３４、４３６は、第１、第２、第ｎのスレーブ装置に対応するしきい値数を示している。
【００５３】
比較装置４３８、４４０、４４２は、各スレーブ装置に対するバッファ及びしきい値信号の対を受信して比較するよう構成されている。比較装置は、対応するスレーブ装置に対して利用可能なバッファの数が適切なグループに対するしきい値に等しいかそれよりも大きいことを判定したならば、ライン４４４、４４６、４４８上に信号をアサートし、ライン４４４、４４６、４４８上でバックプレッシャー信号を発生するように構成されている。ＡＮＤゲート４５０はバックプレッシャー信号を受信し、ライン４５２上に「全てが利用可能」信号を発生するように構成されている。ライン４５２上の「全てが利用可能」信号は、特定のグループからのマスター装置が、コマンドを任意のスレーブ装置へ送ることができることを示す特定のグループに対する全てのバックプレッシャー信号がアサートされているならば、発生される。
【００５４】
トークンのリクエストがマスター装置により行われ（即ち、ライン４１８上の信号がアサートされ）、「全てが利用可能」信号が（ライン４５２上で）アサートされたならば、ＡＮＤゲート４２０はライン４２２上でバイパス信号を発生するように構成される。ライン４２２上のバイパス信号がアサートされるとき、マスター装置は任意のスレーブ装置へコマンドを送ることができ、そうでなければアサートされているバックプレッシャー信号を決定するために要求されるであろう復号ステップ／比較ステップをバイパスする。システムが「バックプレッシャー」方式を実行するならば、「全てのトークンが利用可能」信号がアサートされるとき、グローバルトークン管理装置は実際のトークン数を管理しないので、マスターはトークンリクエストをグローバルトークン管理装置へ送る必要がない。その代わりに、スレーブからの「バックプレッシャー」信号を参照するだけである。
【００５５】
別の実施形態では、ローカルトークン管理装置は、マスターに取り付けられたコマンドバッファ中に設けられている（例えば、図１のバッファ１２５）。この実施形態では、マスター１１０がクレジットを有するならば、マスター装置１１０はコマンドをバッファ１２５へ送る。バッファ１２５はそのコマンドを復号し、コマンドがトークンを要求する場合には、バッファ１２５内のローカルトークン管理装置はトークンリクエストをグローバルトークン管理装置へ送る。その他の動作は、マスター内に設けられているトークン管理装置とほぼ同じである。
【００５６】
本願の開示は、複数のマスター装置とスレーブ装置を有するマルチプロセッサコンピュータシステムの状況で本発明を述べているが、本発明はより広く応用可能であり、種々の他の状況で使用されることができる。結果として、この開示は、本発明をこれらの形式のシステムに限定するものと考えるべきではない。
【００５７】
本明細書中で使用されている「コンピュータ」及び「コンピュータシステム」とは、本明細書中で述べた機能を行うことができる任意のタイプのデータ処理システムを含むことが意図されている。本明細書中で使用される「コンピュータの読取り可能な媒体」とは、コンピュータにより実行されることのできるプログラム命令を記憶することができる任意の媒体を指しており、フロッピーディスク、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＲＡＭ、ＲＯＭ、ＤＡＳＤアレイ、磁気テープ、フロッピーディスケット、光記憶装置等を含んでいる。
【００５８】
当業者は情報および信号が任意の種々の異なる技術と技法を用いて表されることができることを理解するであろう。例えば、先の説明を通して参照されることのできるデータ、命令、コマンド、情報、信号、ビット、及びシンボルは、電圧、電流、電磁波、磁場または磁性粒子、光場または光粒子、或いは任意のそれらの組合せによって表されることができる。
【００５９】
当業者はさらに、本明細書中で開示された実施形態に関連して説明した種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェアまたはその両者の組合せとして実施されてもよいことを認識するであろう。このハードウェアとソフトウェアとの交換が可能であることを明白に示すために、種々の例示的なコンポーネント、ブロック、モジュール、回路、およびステップをそれらの機能性に関して一般的に説明した。このような機能性がハードウェアまたはソフトウェアのいずれとして実行されるかは、特定の応用と、システム全体に課せられた設計の制約に依存している。当業者は、それぞれの特定の応用に対して、述べられた機能性を種々の方法で実施することができるが、このような実施の決定は本発明の範囲からの逸脱を起こすものと解釈すべきではない。
【００６０】
本明細書中で開示した実施形態に関連して述べた種々の例示的な論理ブロック、モジュールおよび回路は、汎用目的のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途用集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、またはその他のプログラム可能な論理装置、ディスクリートゲートまたはトランジスタ論理装置、ディスクリートハードウェアコンポーネント、或いは本明細書中で述べた機能を実行するように設計されたその任意の組合せによって実施または実行されることができる。汎用目的のプロセッサは、任意の通常のプロセッサ、制御装置、マイクロ制御装置、状態機械等であってもよい。また、プロセッサは、演算装置の組合せ、例えばＤＳＰとマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアと連結した１つ以上のマイクロプロセッサ、或いは任意の他のこのような構成として実施されることもできる。
【００６１】
本明細書中で開示した実施形態に関連して述べた方法またはアルゴリズムのステップは、ハードウェア、プロセッサにより実行されるソフトウェアモジュール、またはその２つの組合わせで直接実施されてもよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取外し可能なディスク、ＣＤ−ＲＯＭ、または技術的に知られているその他の形態の記憶媒体中に存在してもよい。例示的な記憶媒体は、プロセッサに結合され、このようなプロセッサは情報を記憶媒体から読出し、そこに情報を書込むことができる。その代りに、記憶媒体はプロセッサと一体化されることもできる。プロセッサおよび記憶媒体はＡＳＩＣ中に存在していてもよい。ＡＳＩＣはユーザ端末に存在してもよい。その代りに、プロセッサおよび記憶媒体はユーザ端末中にディスクリートなコンポーネントとして存在することもできる。
【００６２】
本発明により提供される効果および利点を特定の実施形態に関連して述べた。これらの効果および利点と、行われ、またはさらに明白にされる任意の要素または限定とは、任意または全ての請求項の重要な、必要とされる、または本質的な特徴として解釈されるべきではない。本明細書中で使用されるように、用語「備える」、「備えている」またはその任意の変形は、これらの用語にしたがっている要素または限定を排他的ではなく含んでいるものとして解釈されることを意図している。したがって、システム、方法または、１組の要素を備える他の実施形態は、これらの要素だけに限定されるものではなく、請求された実施形態に明確に挙げられていない、または固有ではない他の要素を含むことができる。
【００６３】
本発明を特定の実施形態を参照にして述べたが、それらの実施形態は例示であり、本発明の範囲はこれらの実施形態に限定されないことを理解すべきである。上述の実施形態に対する多くの変形、変更、付加、改良が可能である。これらの変形、変更、付加、および改良は、特許請求の範囲中に詳細に記載されているような本発明の範囲内に含まれるものと考えられる。
【００６４】
本発明によれば、例えば、以下の視点１乃至１８に記載されるようなシステム及び方法が提供可能である。
【００６５】
［視点１］
１組のマスター装置と、
１組のスレーブ装置と、を備え、
前記各スレーブ装置は、対応するトークンを供給することによって、前記マスター装置のうちの１つからコマンドを受取るために利用可能性を示すように構成され、
前記マスター装置中の第１のマスター装置は、全ての前記スレーブ装置が、前記マスター装置から少なくとも１つのコマンドを受取るために利用可能であるとき、「全てのトークンが利用可能」信号を受信するように構成されているシステム。
【００６６】
［視点２］
前記マスター装置中の前記第１のマスター装置は、前記「全てのトークンが利用可能」信号の受信に応答して、前記スレーブ装置中の１つへコマンドを送るように構成されている視点１記載のシステム。
【００６７】
［視点３］
トークン管理装置をさらに備え、前記トークン管理装置は、前記マスター装置からのリクエストに応答して、前記スレーブ装置から前記トークンを受信し、前記トークンを前記マスター装置へ供給するように構成されている視点２記載のシステム。
【００６８】
［視点４］
前記マスター装置中の前記第１のマスター装置は、前記トークンを復号し、復号された前記トークンが前記マスター装置中の前記第１のマスター装置によって前記トークン管理装置へ送られたリクエストに対応すると判定することに応答し、前記トークンに対応する前記スレーブ装置中の１つへコマンドを送るように構成されている視点３記載のシステム。
【００６９】
［視点５］
前記１組のマスター装置と前記１組のスレーブ装置のそれぞれに結合されたバスをさらに備え、前記トークン管理装置は前記バス中に設けられる視点３記載のシステム。
【００７０】
［視点６］
前記トークン管理装置は、前記マスター装置中の前記第１のマスター装置中に設けられている視点３記載のシステム。
【００７１】
［視点７］
１つ以上の前記マスター装置は１つ以上のグループと関連し、前記スレーブ装置中の少なくとも第１のスレーブ装置は、前記スレーブ装置中の前記第１のスレーブ装置が、前記グループ中の第１のグループにおけるマスター装置の数に等しいか、それよりも多いコマンド数を受取るために利用可能であるとき、前記グループの前記第１のグループに対応する第１のバックプレッシャー信号をアサートするように構成されている視点１記載のシステム。
【００７２】
［視点８］
前記スレーブ装置中の前記第１のスレーブ装置は、前記スレーブ装置中の前記第１のスレーブ装置が、前記グループ中の第２のグループにおけるマスター装置の数と前記グループ中の前記第１のグループにおけるマスター装置の数を加えたものに等しいか、それよりも多いコマンド数を受取るために利用可能であるとき、前記グループ中の対応する前記第２のグループに第２のバックプレッシャー信号をアサートするように構成されている視点７記載のシステム。
【００７３】
［視点９］
前記グループ中の前記第１のグループにおける１つ以上の前記マスター装置は、前記第１のバックプレッシャー信号の受信に応答して、対応するコマンドを前記スレーブ装置中の前記第１のスレーブ装置へ送るように構成されている視点７記載のシステム。
【００７４】
［視点１０］
１組のマスター装置と１組のスレーブ装置とを有するシステム中で実行される方法において、前記マスター装置からコマンドを受取るための特定のタイプの前記スレーブ装置の利用可能性が、対応するトークンにより通信され、
前記１組のスレーブ装置の全てが、前記マスター装置からのコマンドを受取るために利用可能であるとき、前記マスター装置中の第１のマスター装置に対して「全てのトークンが利用可能」信号をアサートすることを含む方法。
【００７５】
［視点１１］
前記「全てのトークンが利用可能」信号の受信に応答して、前記スレーブ装置中の１つのスレーブ装置へコマンドを送る前記マスター装置中の前記第１のマスター装置をさらに含む視点１０記載の方法。
【００７６】
［視点１２］
前記スレーブ装置がコマンドを受取るために利用可能であるとき、対応するトークンをトークン管理装置へ供給する前記１組のスレーブ装置の各スレーブ装置と、
前記マスター装置中の前記第１のマスター装置からのリクエストに応答して、そのトークンを前記マスター装置中の前記第１のマスター装置へ供給する前記トークン管理装置と、をさらに含む視点１１記載の方法。
【００７７】
［視点１３］
前記トークンを復号し、前記復号されたトークンが前記リクエストに対応すると判定することに応答して、前記トークンに対応する前記スレーブ装置中の１つのスレーブ装置へコマンドを送る前記マスター装置の前記第１のマスター装置をさらに含む視点１２記載の方法。
【００７８】
［視点１４］
前記トークン管理装置は、前記１組のマスター装置の各マスター装置と前記１組のスレーブ装置の各スレーブ装置とに結合されているバス中に設けられている視点１２記載の方法。
【００７９】
［視点１５］
前記トークン管理装置は、前記マスター装置中の前記第１のマスター装置中に設けられている視点１２記載の方法。
【００８０】
［視点１６］
１つ以上の前記マスター装置を１つ以上のグループの各グループに関連付けることと、少なくとも１つの前記スレーブ装置に対して、前記スレーブ装置中の前記第１のスレーブ装置が、前記グループ中の第１のグループにおけるマスター装置の数に等しいか、それよりも多いコマンド数を受取るために利用可能であるとき、前記グループ中の前記第１のグループに対応する第１のバックプレッシャー信号をアサートすることと、をさらに含む視点１０記載の方法。
【００８１】
［視点１７］
前記スレーブ装置中の第１のスレーブ装置に対して、前記スレーブ装置中の前記第１のスレーブ装置が、前記グループ中の第２のグループにおけるマスター装置の数と前記グループ中の前記第１のグループにおけるマスター装置の数を加えたものに等しいか、それよりも多いコマンド数を受取るために利用可能であるとき、対応する前記グループの前記第２のグループに対して第２のバックプレッシャー信号をアサートすること、をさらに含む視点１６記載の方法。
【００８２】
［視点１８］
前記第１のバックプレッシャー信号の受信に応答して、コマンドを前記スレーブ装置中の前記第１のスレーブ装置へ送る前記グループ中の前記第１のグループにおける１つ以上の前記マスター装置をさらに備えている視点１６記載の方法。
【図面の簡単な説明】
【００８３】
【図１】１実施形態による、マスター装置とスレーブ装置の間の通信を容易にするシステムを示すブロック図。
【図２】１実施形態による、スレーブ装置との通信を試みるマスター装置に「全てのトークンが利用可能」信号をアサートするか否かを判定するシステムを示すブロック図。
【図３】１実施形態による、マスター装置とスレーブ装置のグループ間の通信を容易にするシステムを示すブロック図。
【図４】１実施形態による、スレーブ装置との通信を試みているマスター装置のグループに「バックプレッシャー」信号を使用して「全てが利用可能」信号をアサートするか否かを判定するシステムを示すブロック図。
【図５】１実施形態による、トークンを使用して、スレーブ装置が、マスター装置からコマンドを受取るために利用可能であるか否かを判定する方法を示すフローチャート。
【図６】１実施形態による、全てのスレーブ装置が利用可能であるか否かを判定することによって、「全てのトークンが利用可能」信号をアサートするか否かを判定する方法を示すフローチャート。
【図７】１実施形態による、「全てのトークンが利用可能」信号がアサートされているか否かを判定するために、マスター装置がコマンドをスレーブ装置へ送ることができるか否かを判定し、アサートされていないならば、適切なトークンが利用可能であるか否かを判定する方法を示すフローチャート。
【図１】
0004469821.tif 000002
【図２】
0004469821.tif 000003
【図３】
0004469821.tif 000004
【図４】
0004469821.tif 000005
【図５】
0004469821.tif 000006
【図６】
0004469821.tif 000007
【図７】
0004469821.tif 000008