(57)【要約】  バス・マスタ（１２）は現在待ち状態にあるアクセスの１つまたは複数の特性に基づいて現在待ち状態にあるアクセスを選択的に取り消す。このようにして、バス・マスタはバス・マスタのアクセス要求をより良好に制御する。１つまたは複数の特性は、例えば、アクセス・タイプ（例えば、読み取り／書き込み、命令／データ、バースト／非バーストなど）、アクセスのシーケンスまたは順序、アクセスされるアドレス（例えば、いずれのアドレス範囲がアクセスされるか、またはいずれのデバイスがアクセスされるか）、取り消しを要求しているバス・マスタ（例えば、マルチマスタ・システムにおける）、およびこれらの任意の組合せを含む。また、バス調停（２１６）も、現在待ち状態にあるアクセス要求または後続のアクセス要求の１つまたは複数の特性に基づいて後続のアクセス要求を優遇して現在待ち状態にあるアクセス要求を選択的に取り消す。それらの特性は、上にリストアップした特性のいずれか、要求側マスタの優先順位（例えば、要求側マスタ間の優先順位デルタ）、要求側マスタの他の属性、またはこれらの任意の組合せを含む。
2008515091.tif 000002
【特許請求の範囲】
【請求項１】
バス・マスタとシステム・バスとを有するデータ処理システムにおけるアクセス取り消しの方法であって、該バス・マスタは該システム・バスに結合され、該方法は、
取り消しが許される、または許されない少なくとも１つの条件を示すアクセス取り消し制御情報を記憶すること、
該システム・バス上の現在待ち状態にあるアクセス要求の取り消しを要求すること、
該要求することに応答して、該アクセス取り消し制御情報を使用して、該現在待ち状態にあるアクセス要求の少なくとも１つの特性に基づいて該現在待ち状態にあるアクセス要求を選択的に取り消すこと
を備える方法。
【請求項２】
取り消しを前記要求することは現在復号化されている命令に基づいて実行される、請求項１に記載の方法。
【請求項３】
取り消しは現在復号化されている前記命令がフローの変更を生じさせる場合に要求される、請求項２に記載の方法。
【請求項４】
前記少なくとも１つの特性は前記現在待ち状態にあるアクセス要求のアクセス・タイプを含む、請求項１に記載の方法。
【請求項５】
前記アクセス・タイプは読み取りアクセスまたは書き込みアクセスのいずれかである、請求項４に記載の方法。
【請求項６】
前記アクセス・タイプは命令アクセスまたはデータ・アクセスのいずれかである、請求項４に記載の方法。
【請求項７】
前記アクセス・タイプはバースト・アクセスまたは非バースト・アクセスのいずれかである、請求項４に記載の方法。
【請求項８】
前記選択的に取り消すことは、前記現在待ち状態にあるアクセス要求の前記アクセス・タイプ、および少なくとも１つの前のアクセス要求のアクセス・タイプに基づく、請求項４に記載の方法。
【請求項９】
前記データ処理システムは、前記システム・バスに結合された第２のバス・マスタを含み、前記少なくとも１つ特性は、いずれのバス・マスタが前記現在待ち状態にあるアクセス要求を行ったかを含む、請求項１に記載の方法。
【請求項１０】
前記アクセス要求は対応するアクセス・アドレスを有し、前記少なくとも１つの特性は該アクセス・アドレスが含まれるアドレス範囲を含む、請求項１に記載の方法。
【請求項１１】
前記アクセス取り消し制御情報は、対応するアドレス範囲で取り消しが許される、または許されない少なくとも１つの条件を示し、選択的取り消しは、前記アクセス・アドレスが該対応するアドレス範囲に含まれるかどうかを判定することを含む、請求項１０に記載の方法。
【請求項１２】
前記アクセス取り消し制御情報は、前記現在待ち状態にあるアクセス要求の取り消しが前記少なくとも１つの特性に基づいて許されることを示す場合、前記選択的に取り消すことは、
前記現在待ち状態にあるアクセス要求に応答してダミー値を与えることにより前記現在待ち状態にあるアクセス要求を取り消すこと
をさらに備える、請求項１に記載の方法。
【請求項１３】
前記アクセス取り消し制御情報が、前記現在待ち状態にあるアクセス要求の取り消しが前記少なくとも１つの特性に基づいて許されることを示す場合、前記選択的に取り消すことは、
前記システム・バス上の前記現在待ち状態にあるアクセス要求を新たなアクセス要求で置き換えることにより前記現在待ち状態にあるアクセス要求を取り消すこと
をさらに備える、請求項１に記載の方法。
【請求項１４】
バス・マスタとシステム・バスとを有するデータ処理システムにおけるアクセス取り消しの方法であって、該バス・マスタが該バス・システムと結合され、該方法は、
あるアドレス範囲に対応するアクセス取り消し制御情報を記憶することであって、該アクセス取り消し制御情報は取り消しが対応するアドレス範囲で許されるか、または許されないかを示すこと、
該システム・バス上の、現在待ち状態にあるアクセス要求の取り消しを要求することであって、現在待ち状態にあるアクセス要求は対応するアドレスを有すること、
該対応するアドレスが該アドレス範囲に含まれるかどうかを判定すること、
該対応するアドレスが該アドレス範囲に含まれる場合、該アクセス取り消し制御情報に基づいて該現在待ち状態にあるアクセス要求を選択的に取り消すこと
を備える方法。
【請求項１５】
取り消しを前記要求することは現在復号化されている命令に基づいて実行される、請求項１４に記載の方法。
【請求項１６】
取り消しは現在復号化されている前記命令がフローの変更を生じさせる場合に要求される、請求項１５に記載の方法。
【請求項１７】
前記アドレス範囲に対応する前記アクセス取り消し制御情報は、前記対応するアドレスが前記アドレス範囲に含まれる場合に前記現在待ち状態にあるアクセス要求の取り消しが許される、または許されない少なくとも１つの条件を示すことにより、前記対応するアドレス範囲で取り消しが許されるか、または許されないかを示す、請求項１４に記載の方法。
【請求項１８】
前記対応するアドレスが前記アドレス範囲に含まれる場合に、前記アクセス取り消し制御情報に基づいて前記現在待ち状態にあるアクセス要求を前記選択的に取り消すことは、
前記対応するアドレスが前記アドレス範囲に含まれる場合に、前記アクセス取り消し制御情報および前記現在待ち状態にあるアクセス要求の少なくとも１つの特性に基づいて前記現在待ち状態にあるアクセス要求を選択的に取り消すこと
を備える、請求項１７に記載の方法。
【請求項１９】
前記少なくとも１つの特性は前記現在待ち状態にあるアクセス要求のアクセス・タイプを含む、請求項１８に記載の方法。
【請求項２０】
前記アクセス・タイプは読み取りアクセスまたは書き込みアクセスのいずれかである、請求項１９に記載の方法。
【請求項２１】
前記アクセス・タイプは命令アクセスまたはデータ・アクセスのいずれかである、請求項１９に記載の方法。
【請求項２２】
前記アクセス・タイプはバースト・アクセスまたは非バースト・アクセスのいずれかである、請求項１９に記載の方法。
【請求項２３】
前記対応するアドレスが前記アドレス範囲に含まれる場合に、前記アクセス取り消し制御情報、および前記現在待ち状態にあるアクセス要求の前記少なくとも１つの特性に基づいて前記現在待ち状態にあるアクセス要求を前記選択的に取り消すことは、
前記対応するアドレスが前記アドレス範囲に含まれる場合に、前記アクセス取り消し制御情報、前記現在待ち状態にあるアクセス要求の前記アクセス・タイプ、および前のアクセス要求のアクセス・タイプに基づいて前記現在待ち状態にあるアクセス要求を選択的に取り消すこと
を備える、請求項１９に記載の方法。
【請求項２４】
前記データ処理システムは前記システム・バスに結合された第２のバス・マスタを含み、前記少なくとも１つ特性はいずれのバス・マスタが前記現在待ち状態にあるアクセス要求を行ったかを含む、請求項１８に記載の方法。
【請求項２５】
前記対応するアドレスが前記アドレス範囲に含まれ、前記アクセス取り消し制御情報が取り消しが許されることを示す場合、前記選択的に取り消すことは、
前記現在待ち状態にあるアクセス要求に応答してダミー値を与えることにより前記現在待ち状態にあるアクセス要求を取り消すこと
を備える、請求項１４に記載の方法。
【請求項２６】
前記対応するアドレスが前記アドレス範囲に含まれ、前記アクセス取り消し制御情報が取り消しが許されることを示す場合、前記選択的に取り消すことは、
前記現在待ち状態にあるアクセス要求を新たなアクセス要求で置き換えることにより、前記現在待ち状態にあるアクセス要求を取り消すこと
を備える、請求項１４に記載の方法。
【請求項２７】
前記アドレス範囲に対応する前記アクセス制御情報を前記記憶することは複数のアドレス範囲のそれぞれに対応するアクセス制御情報を記憶することを含み、該アクセス制御情報は該複数のアドレス範囲のそれぞれに対して取り消しが許されるかどうかを示し、
前記対応するアドレスが前記アドレス範囲に含まれるかどうかを前記判定することは、前記対応するアドレスが該複数のアドレス範囲のいずれかに含まれるかどうかを判定することを含み、
前記選択的に取り消すことは、前記対応するアドレスが該複数のアドレス範囲の該いずれかに含まれる場合、該複数のアドレス範囲の該いずれかに対応する前記アクセス取り消し制御情報に基づいて前記現在待ち状態にあるアクセス要求を選択的に取り消すことを含む、
請求項１４に記載の方法。
【請求項２８】
前記複数のアドレス範囲のそれぞれに対応する前記アクセス取り消し制御情報は、前記対応するアドレスが前記複数のアドレス範囲のいずれかに含まれる場合に前記現在待ち状態にあるアクセス要求の取り消しが許される、または許されない少なくとも１つの条件を示すことにより、前記複数のアドレス範囲のそれぞれの取り消しが許されるか、または許されないかを示し、前記選択的に取り消すことは、
前記対応するアドレスが前記複数のアドレス範囲の該いずれかに含まれる場合に、前記複数のアドレス範囲の該いずれかに対応する前記アクセス取り消し制御情報、および前記現在待ち状態にあるアクセス要求の少なくとも１つの特性に基づいて前記現在待ち状態にあるアクセス要求を選択的に取り消すこと
をさらに含む、請求項２７に記載の方法。
【請求項２９】
データ処理システムであって、
システム・バスと、
該システム・バスに結合されたバス・マスタであって、該バス・マスタは該システム・バス上の現在待ち状態にあるアクセス要求の取り消しを要求し、取り消し制御論理とアクセス取り消し制御記憶回路とを含む該バス・マスタと、該アクセス取り消し制御情報を記憶する該取り消し制御記憶回路と、該アクセス取り消し制御情報を使用して、該現在待ち状態にあるアクセス要求の少なくとも１つの特性に基づいた該現在待ち状態にあるアクセス要求を選択的に取り消す取り消し制御論理とを含むバス・マスタと
を備えるデータ処理システム。
【請求項３０】
前記バス・マスタは命令復号器に結合されたシーケンサ制御論理をさらに含み、該シーケンサ制御論理は該命令復号器によって復号化されている命令に基づいて前記現在待ち状態にあるアクセス要求の取り消し要求を生成する、請求項２９に記載のデータ処理システム。
【請求項３１】
前記バス・マスタは前記システム・バスに結合されたバス・インターフェース・ユニットをさらに含み、前記アクセス取り消し制御情報が前記現在待ち状態にあるアクセス要求の前記少なくとも１つの特性に基づいて前記現在待ち状態にあるアクセス要求の取り消しが許されることを示す場合、該バス・インターフェース・ユニットは、前記現在待ち状態にあるアクセス要求に応答して前記取り消し制御論理にダミー値を与える、請求項３０に記載のデータ処理システム。
【請求項３２】
前記バス・マスタは前記システム・バスに結合されたバス・インターフェース・ユニットをさらに含み、前記アクセス取り消し制御情報が、前記現在待ち状態にあるアクセス要求の前記少なくとも１つの特性に基づいて前記現在待ち状態にあるアクセス要求の取り消しが許されることを示す場合、前記バス・インターフェース・ユニットは前記現在待ち状態にあるアクセス要求を新たなアクセス要求で置き換える、請求項３０に記載のデータ処理システム。
【請求項３３】
前記取り消し制御論理は、前記現在待ち状態にあるアクセス要求の対応するアドレスが所定のアドレス範囲に含まれるかどうかを判定するアドレス比較論理をさらに含み、該対応するアドレスが該所定のアドレス範囲に含まれる場合、前記取り消し制御論理は該所定のアドレス範囲に対応するアクセス取り消し制御情報を使用して前記現在待ち状態にあるアクセス要求を選択的に取り消す、請求項３０に記載のデータ処理システム。
【請求項３４】
前記少なくとも１つの特性は現在待ち状態にあるアクセス要求のアクセス・タイプを含む、請求項２９に記載のデータ処理システム。
【請求項３５】
前記取り消し制御論理は前記アクセス取り消し制御情報を使用して、前記現在待ち状態にあるアクセス要求の前記アクセス・タイプ、および前のアクセス要求のアクセス・タイプに基づいて前記現在待ち状態にあるアクセス要求を選択的に取り消す、請求項３４に記載のデータ処理システム。
【請求項３６】
前記システム・バスに結合された第２のバス・マスタをさらに含み、前記少なくとも１つ特性は、いずれのバス・マスタが前記現在待ち状態にあるアクセス要求を行ったかを含む、請求項２９に記載のデータ処理システム。
【請求項３７】
システム・バスに結合されたバス・マスタを有するデータ処理システムにおいて、該システム・バスのバス・プロトコルを優先するための方法であって、
該システム・バスを介してアクセス要求を与えること、
該アクセス要求の少なくとも１つの態様に基づいて該システム・バスの該バス・プロトコルの態様を選択的に優先すること
を含む方法。
【請求項３８】
前記バス・プロトコルの前記態様は現在待ち状態にあるアクセス要求の取り消しに関連する、請求項３７に記載の方法。
【請求項３９】
前記少なくとも１つの特性はアクセス・タイプを含む、請求項３７に記載の方法。
【請求項４０】
前記データ処理システムは前記システム・バスに結合された第２のバス・マスタを含み、前記少なくとも１つ特性は、いずれのバス・マスタが前記アクセス要求を行うかを含む、請求項３７に記載の方法。
【請求項４１】
前記少なくとも１つの特性は前記アクセス要求の対応するアドレスが含まれるアドレス範囲を含む、請求項３７に記載の方法。
【請求項４２】
バス・マスタと該バス・マスタが結合されたシステム・バスとを有するデータ処理システムにおけるアクセス取り消しの方法であって、
取り消しが許される、または許されない少なくとも１つの条件を示すアクセス取り消し制御情報を記憶すること、
後続のアクセス要求を受け取ること、
該システム・バス上の現在待ち状態にあるアクセス要求の取り消しを要求することであって、該後続のアクセス要求は、該現在待ち状態にあるアクセス要求が該マスタから受け取られた後に該マスタから受け取られること、
該要求することに応答して、該アクセス取り消し制御情報を使用して、該後続のアクセス要求の少なくとも１つの特性に基づいて該現在待ち状態にあるアクセス要求を選択的に取り消すこと
を備える方法。
【請求項４３】
前記少なくとも１つの特性は、前記現在待ち状態にあるアクセス要求のアクセス・タイプを含む、請求項４２に記載の方法。
【請求項４４】
前記選択的に取り消すことは前記現在待ち状態にあるアクセス要求と前記後続のアクセス要求の各要求の少なくとも１つ特性に基づく、請求項４２に記載の方法。
【請求項４５】
前記後続のアクセス要求は対応するアクセス・アドレスを有し、前記少なくとも１つの特性は該アクセス・アドレスが含まれるアドレス範囲を含む、請求項４２に記載の方法。
【請求項４６】
前記アクセス取り消し制御情報は対応するアドレス範囲の取り消しが許される、または許されない少なくとも１つの条件を示し、前記現在待ち状態にあるアクセスを選択的に取り消すことは、前記後続のアクセス要求の前記アクセス・アドレスが該対応するアドレス範囲に含まれるかどうかを判定することを含む、請求項４５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに関し、より詳細には、バス・アクセス取り消しを伴うデータ処理システムに関する。
【背景技術】
【０００２】
異なるデータ処理システムが様々なバス・プロトコルの下で動作し、それらのバス・プロトコルは、例えば、バス・マスタによって行われたアクセス要求がどのように扱われるかを定義する。また、異なるデータ処理システムは、異なるバス・マスタからの要求がどのように扱われるかも定義する、異なるバス調停方式を使用して動作する。それらのバス・プロトコルおよびバス調停は、アクセス取り消しに関してなどの多くの態様で柔軟性がなく、これによりしばしば、望ましくない待ち時間が生じる。それらの待ち時間はデータ処理システム内の高い優先順位のバス・マスタに関して特に問題となるかもしれない。さらに、例えば、アクセス取り消しを異なる形で扱う、異なるバス・プロトコル、および異なるバス調停方式に従って動作するシステムを動作しようと試みる場合、誤りが生じるかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、例えば、待ち時間を減らしたより効率的なバス・プロトコルまたはバス調停方式を可能にする、アクセス取り消し方式を改良したデータ処理システムの必要性が存在する。
【発明を実施するための最良の形態】
【０００４】
本発明を、同じ符号が同じ要素を指す添付の図により例として示すが、添付の図によって限定されない。
図における要素は簡潔明瞭にするために示され、必ずしも一定の縮尺で描かれていないことが当業者には理解されよう。例えば、図における要素のいくつかの要素の大きさは、本発明の実施形態の理解を向上させるのに役立つように、他の要素と比べて誇張される。
【０００５】
本発明の１実施形態は、例えば、現在待ち状態にあるバス・アクセス要求の特性に基づいてバス・プロトコルを選択的に優先させる（ｏｖｅｒｒｉｄｉｎｇ）。１実施形態は、例えば、現在待ち状態であるアクセス要求の特性に基づいて現在待ち状態であるアクセス要求を選択的に取り消す。代替の実施形態は、例えば、現在待ち状態にあるアクセス要求の後に新たに要求されたアクセスの特性に基づいて現在待ち状態であるアクセス要求の選択的取り消しを可能にする。（代替的に、選択的取り消しは、現在待ち状態にあるアクセス要求の特性と、後続のアクセス要求の特性の両方に基づくこと。）１実施形態では、バス・プロトコルの優先化、または現在待ち状態にあるアクセス要求の取り消しを選択的に可能にするために使用される、現在待ち状態にあるアクセス要求の特性は、要求されたバス・アクセスに対応するアドレス範囲、要求されたバス・アクセスのアクセス・タイプ（例えば、読み取り／書き込み、命令／データ）、要求されたバス・アクセスに対応するアクセス・シーケンス、要求されたバス・アクセスのバス・マスタ、またはこれらの組合せを含む。
【０００６】
図１〜図６の例示および説明は、要求側バス・マスタによる現在待ち状態にあるバス・アクセス要求の選択的取り消しを可能にするデータ処理システムの実施例である。アクセスがシステム・バス２０上の現在のアクセスの完了を待っていて、システム・バス２０上で現在待ち状態である。いくつかの実施形態では、現在待ち状態であるアクセス要求は、システム・バス２０上で進行中の現在のアクセスが完了するまで実際に活性化されない。システム・バス２０は、アドレス・バスは、進行中の現在のアクセスに関するデータの戻りを待つ間、後続のアクセス要求（「現在待ち状態にある」アクセス要求）を駆動されるようにバス動作のアドレス段階とデータ段階とが重なり合うバス・プロトコルを実施する。複数のクロック・サイクルを要する進行中の現在のアクセスが完了するとそのアクセスのデータ段階は終了し、そのデータ段階の終了時に駆動されていたアドレス（現在待ち状態にあるアクセス要求と呼ばれる）が新たな現在のアクセスとなり、すると、アドレス・バスが新たなアクセス要求で駆動される。このように、アドレス段階とデータ段階は重なり合い、現在待ち状態にあるアクセス要求がデータ段階終了境界で新たな「現在の」アクセス要求となる。いくつかのケースでは、システム・バス２０上の、現在待ち状態にあるアクセス要求の取り消しは現在待ち状態にあるアクセス要求が使用されない、もしくは、もはや必要とされないことをバス・マスタが認識している場合、バス・マスタによって所望される。このようにして、不必要になる、または破棄されることになるバス・アクセス要求に起因するストール（ｓｔａｌｌ）が減らされる。したがって、１実施形態では、バス・マスタは、図１〜図６に関連して説明されるとおり、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求を選択的に取り消す。
【０００７】
例えば、図１は、バス・マスタがバス・マスタのパイプラインへの命令の逐次先行取得を実行する、データ処理システムを示す。ただし、この逐次アクセス・パターンは、例えば分岐命令などのフロー命令の変更によって乱される。フローの変更が検出されると、バス・マスタは、命令先行取得ストリームをフローの変更の目標（例えば、分岐命令の目標）に切り替える。したがってこのケースでは、システム・バス上のバス・マスタの現在待ち状態にあるアクセス要求はフロー命令の変更に続く逐次アドレスに対応し、目標命令へのフローの変更のため、この要求はバス・マスタによってもはや必要とされていない。したがって、バス・マスタはその現時点で不必要な現在待ち状態にあるアクセス要求を取り消すことを望む。その現在待ち状態にあるアクセス要求の特性（例えば、アクセス取り消し制御レジスタ内に記憶された制御情報と比較されること）に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかが判定される。許される場合、バス・マスタは現在待ち状態にあるアクセス要求を取り消して待ち時間を減らす。
【０００８】
図１は、データ処理システム１０の１実施形態を示す。データ処理システム１０は、システム・バス２０、バス・マスタ１２、メモリ・システム１４、バス・スレーブ１６、バス・スレーブ１８、バス・ブリッジ２２、バス・マスタ２４、メモリ・システム２６、他のスレーブ２８、およびシステム・バス３０を含む。バス・マスタ１２、バス・スレーブ１６、バス・スレーブ１８、メモリ・システム１４、およびバス・ブリッジ２２はすべて、システム・バス２０に双方向で結合される。バス・ブリッジ２２、バス・マスタ２４、メモリ・システム２６、および他のスレーブ２８はすべて、システム・バス３０に双方向で結合される。２つのスレーブ１６および１８だけが図１に示されているが、データ処理システム１０はシステム・バス２０に結合された任意の数のスレーブを含んでよい。同様に、任意の数のバス・マスタおよびメモリ・システムが、システム・バス２０に結合されてよい。また、任意の数のバス・マスタ、スレーブ、およびメモリ・システムが、システム・バス３０に結合されてもよく、図１に示されるものに限定されない。
【０００９】
１実施形態では、バス・マスタ１２はマイクロプロセッサ、デジタル・シグナル・プロセッサなどのプロセッサであり、あるいはダイレクト・メモリ・アクセス（ＤＭＡ）ユニットなどの任意のタイプのマスタ・デバイスである。スレーブ１６および１８は例えば、バス・マスタ１２がアクセスすることができるメモリなどの、任意のタイプのスレーブ・デバイス、または、例えば、汎用非同期送受信器（ＵＡＲＴ）、リアルタイム・クロック（ＲＴＣ）、キーボード・コントローラなどの周辺機器である。メモリ・システム１４は例えば、ランダム・アクセス・メモリ（ＲＡＭ）などの任意のタイプのメモリ・システムであり、データおよび命令を記憶するための記憶回路に結合されたメモリ・コントローラを含む。
【００１０】
動作の際、バス・マスタ１２は例えば、メモリ・システム１４、スレーブ１６、またはスレーブ１８などの、システム・バス２０に結合された他のデバイスへのアクセス、あるいはバス・ブリッジ２２を介したバス・マスタ２４、メモリ・システム２６、または他のスレーブ２８へのアクセスを要求するアクセス要求をシステム・バス２０に対して行う。バス・ブリッジ２２は、システム・バス２０とシステム・バス３０とを連結することを可能にして、バス・マスタ１２がシステム・バス３０上に存在するデバイス群にもアクセスすることができるようにする。１実施形態では、システム・バス２０はシステム・バス３０とは異なるバス・プロトコルに従って動作する。バス・ブリッジ２２は当技術分野で公知のとおりに動作し、したがって本明細書でより詳細には説明しない。同様に、バス・マスタ１２、メモリ・システム１４、ならびにスレーブ１６および１８に関して上に提供したのと同一の例が、バス・マスタ２４、メモリ・システム２６、および他のスレーブ２８にもそれぞれ当てはまる。
【００１１】
図２は、本発明の１実施形態によるバス・マスタ１２の１部分を示す。バス・マスタ１２は、命令シーケンサ４０、命令バッファ・ストレージ６６、バス・インターフェース・ユニット（ＢＩＵ）７０、および実行ユニット８０を含む。ＢＩＵ７０はシステム・バス２０と情報を交換し、命令バッファ・ストレージ６６および命令シーケンサ４０に双方向で結合される。命令バッファ・ストレージ６６は命令シーケンサ４０に双方向で結合される。命令シーケンサ４０は、命令レジスタ（ＩＲ）４６、命令復号器４４、シーケンサ制御論理４２、アクセス取り消し制御レジスタ４８、取り消し制御論理５０、およびアドレス生成論理５２を含む。ＩＲ４６はアドレス生成論理５２および命令復号器４４に結合され、復号器４４はシーケンサ制御論理４２に結合される。シーケンサ制御論理４２は取り消し制御論理５０およびアドレス生成論理５２に結合され、取り消し制御論理５０はアドレス生成論理５２およびアクセス取り消し制御レジスタ４８に結合される。実行ユニット８０は命令復号器４４およびＢＩＵ７０に結合され、読み込み／記憶ユニット８２を含む。
【００１２】
動作の際、命令シーケンサ４０はＢＩＵ７０を介して、例えば、メモリ・システム１４（または他のスレーブ）からの命令およびデータの先行取得および取得を制御する。例えば、命令が命令バッファ・ストレージ６６に先行取得されるが、データが取得または先行取得されて、ＢＩＵ７０を介して実行ユニット（例えば、読み込み／記憶ユニット８２）に供給される。ＩＲ４６は復号化されるべき次の命令を命令バッファ・ストレージ６６から受け取り、その命令を命令復号器４４に供給し、復号器４４がその命令を復号化する。次に、命令は実行のために実行ユニット８０に供給されて命令がさらに処理される。復号化後の命令の処理は当技術分野で周知であり、したがって本明細書でより詳細には説明されない。つまり、読み込み／記憶ユニット８２を含む実行ユニット８０は当技術分野で知られているとおりに動作する。
【００１３】
シーケンサ制御論理４２は命令バッファ・ストレージ６６への命令の先行取得および取得を制御する。例えば、シーケンサ制御論理４２は、どのアドレス（および対応する属性）をアドレス／属性７４を介してＢＩＵ７０に生成すべきかをアドレス生成論理５２に示す。例えば、１実施形態では、シーケンサ制御論理４２は特定のロケーションから開始する命令を逐次先行取得するようにアドレス生成論理５２に示す。したがって、ＢＩＵ７０は先行取得されるべきアドレスをアドレス／属性７４を介して、アドレス生成論理５２から受け取る。アドレス生成論理５２は要求７２をアサートして、アドレス、および対応する属性がアドレス／属性７４上に存在することをＢＩＵ７０に示し、ＢＩＵ７０は、要求７２を介して命令シーケンサ４０にハンドシェーク・シグナルを戻す。１実施形態では、ＢＩＵ７０は、システム・バス２０がアドレス・キューの中の次のアドレスに対応するアクセス要求を受け取ることができるまで、アドレス／属性７４を介して受け取られたアドレスおよび属性が入れられるアドレス・キュー（図示せず）を含む。ＢＩＵ７０は待ち状態にあるアドレス５８を命令シーケンサ４０に与えて、システム・バス２０上で現在待ち状態にある（バスの現在のデータ段階が完了した際の活性化を待っている）アクセス要求に対応するアドレスを命令シーケンサ４０（および取り消し制御論理５０）に示す。したがって、待ち状態のアドレス５８は、アドレス／属性７４を介してＢＩＵ７０に供給される最新のアドレスよりも早期のアドレスである。ハンドシェーク制御、およびその他の制御情報またはステータス情報は、ＣＴＬ／ＳＴＡＴＵＳ７６および／または要求７２を介してＢＩＵ７０と命令シーケンサ４０との間で通信されることに留意されたい。
【００１４】
１実施形態では、シーケンサ制御論理は、ＢＩＵ７０によって実行ユニット８０に供給されるデータの先行取得および取得の制御にも使用されることに留意されたい。例えば、読み込み命令または記憶命令が命令復号器４４によって復号化された場合、アドレス生成論理５２はデータの読み取り／書き込みが行われるべき適切なアドレスを生成する、あるいは読み込み／記憶ユニット８２から対応するアドレスを受け取る。そのアドレスも、アドレス／属性７４を介してＢＩＵ７０に供給される。また、シーケンサ制御論理４２は、一続きのロケーションからデータを先行取得するようにアドレス生成論理５２に示す。
【００１５】
例えば、分岐命令を検出することなどにより、シーケンサ制御論理４２がフローの変更を検出した場合、シーケンサ制御論理４２は命令先行取得スチームをフローの変更の目標に切り替える。つまり、シーケンサ制御論理４２は、アドレス生成論理５２がＩＲ４６から供給された情報に基づいて計算する目標アドレスから始まるアドレスを先行取得するようにアドレス生成論理５２に示す。生成されたアドレスはＢＩＵ７０に供給され、ＢＩＵ７０は、新たな命令先行取得ストリームから命令バッファ・ストレージ６６に命令を供給する。１実施形態では、新たな命令先行取得ストリームからの命令により、前に存在していた命令が上書きされて、ＩＲ４６および命令復号器４４が正しい命令で動作するようになる。また、１実施形態では、命令バッファ６６が空である場合、（取得された命令、または先行取得された命令を含む）データはＩＲ４６に直接に供給されて、命令バッファ６６を経由しないことに留意されたい。また、ハンドシェーク、およびその他のステータス情報および／または制御情報も、制御／ステータス６４を介して命令シーケンサ４０と命令バッファ・ストレージ６６との間で通信される。
【００１６】
命令復号器４４によって復号化された現在の命令に基づいて、シーケンサ制御論理４２は、システム・バス２０上の（待ち状態のアドレス５８に対応する）現在待ち状態にあるアクセス要求が取り消されるべきであると判定する。例えば、フロー変更のケースでは、命令が現時点では、新たな目標アドレスから開始して取得されるため、現在待ち状態にある先行取得アクセス要求は必要とされないことが分かっている。その現在待ち状態にあるアクセス要求が先に完了することを許される場合、現在待ち状態にある先行取得要求（破棄されない）が完了するまで、フロー変更命令の目標が受け入れられ得ず、活性化され得ないので、マスタ１２はストールする。別の実施例では、シーケンサ制御論理４２は、データ・アクセスが、命令先行取得に優先されることを許すことを望む。その実施例では、現在待ち状態にあるアクセス要求が命令先行取得要求である場合、命令復号器４４によって復号化されているデータ・アクセスを要求する命令を検出すると、シーケンサ制御論理４２は、データ・アクセスがより早く実行されることが可能であるように、現在待ち状態であるアクセス要求（すなわち、命令先行取得要求）を取り消すことを望む。
【００１７】
シーケンサ論理４２が、システム・バス２０上の現在待ち状態にあるアクセス要求（待ち状態のアドレス５８に対応する）を取り消すことを望む場合、シーケンサ制御論理４２は、現在待ち状態にあるアクセス要求が取り消されるべきことを取り消し制御論理５０に示す取り消し要求５４をアサートする。１実施形態では、バス・マスタ１２内部に記憶された（例えば、アクセス取り消し制御レジスタ４８内部に記憶された）アクセス取り消し制御情報を使用する取り消し制御論理５０は、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかを判定する。それらの特性は、例えば、現在待ち状態にあるアクセス要求に対応するアドレス（例えば、待ち状態のアドレス５８）、アクセス・タイプ（例えば、読み取り／書き込み、命令／データ、バースト／非バーストなど）、アクセスのシーケンスまたは順序、アクセスされるアドレス（例えば、いずれのアドレス範囲がアクセスされるか、またはいずれのデバイスがアクセスされるか）、取り消しを要求しているバス・マスタ（例えば、マルチマスタ・システムにおける）、又はこれらの任意の組合せを含む。例えば、１実施形態では、アクセス取り消し制御レジスタ４８内部に記憶された情報は特定のアドレス範囲に対応する。つまり、取り消し制御論理５０に供給される情報は、現在待ち状態にあるアクセス要求のアドレスに依存する。その実施形態では、アドレス比較論理６０を使用して、待ち状態のアドレス５８（現在待ち状態にあるアクセス要求に対応する）を様々なアドレス範囲と比較する。取り消し要求を許可する、または許可しないために使用される、アクセス取り消し制御レジスタ４８、アドレス比較論理６０、およびアドレス範囲、ならびに現在待ち状態にあるアドレス要求の特性は、図３〜図５を参照して、以下により詳細に説明する。
【００１８】
別の実施形態では、バス・マスタ１２内部に記憶された（例えば、アクセス取り消し制御レジスタ４８内部に記憶された）アクセス取り消し制御情報を使用する取り消し制御論理５０は、現在待ち状態にあるアクセス要求に続く新たなアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかを判定する。それらの特性は、例えば、新たなアクセス要求に対応するアドレス、アクセス・タイプ（例えば、読み取り／書き込み、命令／データ、バースト／非バーストなど）、アクセスのシーケンスまたは順序、アクセスされるアドレス（いずれのアドレス範囲がアクセスされるか、またはいずれのデバイスがアクセスされるか）、取り消しを要求しているバス・マスタ（例えば、マルチマスタ・システムにおける）、またはこれらの任意の組合せを含む。例えば、１実施形態では、アクセス取り消し制御レジスタ４８内部に記憶された情報は特定のアドレス範囲に対応する。つまり、取り消し制御論理５０に供給される情報は新たなアクセス要求のアドレスに依存すること。その実施形態では、アドレス比較論理６０を使用して、新たに要求されるアドレスを様々なアドレス範囲と比較する。前述したとおり、取り消し要求を許可する、または許可しないために使用される、アクセス取り消し制御レジスタ４８、アドレス比較論理６０、およびアドレス範囲、ならびに現在待ち状態にあるアドレス要求の特性は、図３〜図５を参照して以下により詳細に説明する。しかし、現在待ち状態にあるアクセス要求を参照して図３〜図５を参照して提供する説明は、後続のアクセス要求にも同様に当てはまることに留意されたい。
【００１９】
図２を参照すると、取り消し制御論理５０が取り消しは許されると判定した場合、取り消し制御論理５０は、取り消し識別子６２をアサートして、システム・バス２０上の現在待ち状態にあるアクセス要求が取り消されるべきことをＢＩＵ７０に通知する。１実施形態では、現在待ち状態にあるアクセス要求は、システム・バス２０に対する新たなアクセス要求が現在待ち状態にあるアクセス要求に取って代わる、または置き換わることにより取り消される。この新たなアクセス要求は、例えば、前述した、ＢＩＵ７０のアドレス・キュー内で待っている次のアクセス要求であっても、ＢＩＵ７０に供給される新たに生成された要求であってもよい。代替の実施形態では、ＢＩＵ７０は、所定の値を命令バッファ・ストレージ６６に即時に戻すことにより、現在待ち状態にあるアクセス要求を取り消す。この所定の値は破棄されることになるので、任意のダミー値である。このようにして、マスタ１２をストールさせることなしに、現在待ち状態にあるアクセス要求は迅速に完了させられ、次のアクセス要求が開始される。他の代替の実施形態は他の方法を使用して、現在待ち状態にあるアクセス要求を取り消す。いくつかの実施形態では、命令バッファ・ストレージ６６にはまったく値が戻されない。
【００２０】
しかし、取り消し制御論理５０が現在待ち状態にあるアクセス要求の取り消しを許さない場合、取り消し制御論理５０は取り消し識別子６２をアサートしない（すなわち、取り消し制御論理は５０ネゲートする、または引き続きネゲートする）。そのケースでは、マスタ１２は、現在待ち状態にあるアクセス要求が完了するまで待ってから、フローの変更に起因する新たな命令先行取得ストリームに取りかかる。また、取り消し制御論理５０は、取り消しが許されなかったことをアドレス制御論理５２にも示す。
【００２１】
したがって、１実施形態では、アクセス取り消し制御レジスタ４８および取り消し制御論理５０を使用して、例えば、ストールを減らす、または防止するために、バス・プロトコルを選択的に優先する。１実施形態では、システム・バス２０のバス・プロトコルは、初期化されてシステム・バス２０上で現在待ち状態である既存の先行取得アクセス要求が完了後に破棄されても、完了することを許されなければならないことを要求する。例えば、フローの変更のケースでは、命令が、この場合、新たな目標アドレスから開始してフェッチ取得されるため、現在待ち状態にある先行取得アクセス要求は必要とされないことが認識される。しかし、システム・バス２０のバス・プロトコルは、システム・バス２０上の現在待ち状態にある先行取得が完了されることをそれでも要求して、マスタ１２がストールすることを生じさせる可能性がある。しかし、前述したとおり、現在待ち状態にあるアクセス要求が取り消されてそのストールを防止することを、シーケンサ制御論理４２が要求する。そのケースでは、アクセス取り消し制御レジスタ内部に記憶された情報、および現在待ち状態にあるアクセス要求の特性に基づいて取り消し制御論理５０は、現在待ち状態にあるアクセス要求を取り消して、その要求に、通常どおりに完了させないことにより、バス・プロトコルを選択的に優先することができる。したがって、取り消しが許されるケースでは、バス・プロトコルはストールを防止するために優先される。他の実施形態では、バス・プロトコルの他の態様が、異なるタイプの優先制御レジスタを使用して優先されることが可能である。
【００２２】
本発明の１実施形態による現在待ち状態にあるアクセス要求の取り消しが図６のフロー１４０に示されている。フロー１４０はブロック１４４で開始し、システム・バス２０上でアクセス要求が現在待ち状態にあると最初に判定される（さもなければ、取り消されるべき現在待ち状態にあるアクセス要求はまったく存在しない）。次に、フローは判定ダイヤモンド１４６に進み、現在待ち状態にあるアクセス要求が取り消されるべきかどうかが判定される。したがって、前記のとおり、シーケンサ制御論理４２が現在待ち状態にあるアクセス要求が取り消されるべきであると判定する。取り消されるべきであると判定されなかった場合、フローは、ブロック１４８に進み、システム（例えば、データ処理システム１０）が現在待ち状態にあるアクセス要求が完了するのを待つ。しかし、現在待ち状態にあるアクセス要求が取り消されるべき場合、フローは判定ダイヤモンド１４６からブロック１５０に進み、現在待ち状態にあるアクセス要求に対応する取り消し要求（例えば、取り消し要求５４）が生成される。ブロック１５０の後、フローは判定ダイヤモンド１５２に進み、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかが判定される（例えば、取り消し制御論理５０によって）。判定ダイヤモンド１５２で取り消しが許される場合、フローはブロック１５６に進み、取り消し要求が許され（例えば、取り消し識別子６２がアサートされ）、現在待ち状態にあるアクセス要求が取り消される。しかし、取り消しが許されない場合、フローはブロック１５４に進み、取り消し要求が拒否され、システムは現在待ち状態にあるアクセス要求が完了するのを待つ。したがって、現在待ち状態にあるアクセス要求が選択的に取り消されることが可能である場合に、現在待ち状態にあるアクセス要求がシステム・バス２０上に存在する場合にはいつでもフロー１４０は使用される。
【００２３】
図２を再び参照すると、１実施形態では、取り消し制御論理５０はアクセス取り消し制御レジスタ４８内部に記憶されたアクセス取り消し制御情報を使用して、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるか否かを判定する。図３〜図５は取り消しが許される条件（または、代替的に、取り消しが許されない条件）を示す、アクセス取り消し制御レジスタ４８の様々な実施形態を示す。図３の実施形態を参照すると、アクセス取り消し制御レジスタ４８が、待ち状態のアクセスのタイプに対応する制御情報、例えば、命令対データ、読み取り対書き込みなどを提供する。例えば、図３のアクセス取り消し制御レジスタ４８は以下の３つのフィールドを含む。すなわち、命令読み取り取り消し制御フィールド１００、データ読み取り取り消し制御フィールド１０２、およびデータ書き込み取り消し制御フィールド１０４である。１実施形態では、各フィールドは、アサートされると、そのタイプのアクセスの取り消しが許されることを示す一ビットである。例えば、命令読み取り取り消し制御フィールド１００がアサートされ、且つ現在待ち状態にあるアクセス要求が命令読み取りタイプのアクセスである（例えば、１実施形態では、待ち状態のアドレス５８も属性に加えられる、現在待ち状態にあるアクセス要求に対応する属性によって示される）場合、現在待ち状態にあるアクセス要求の取り消しは許される。しかし、命令読み取り取り消し制御フィールド１００がネゲートされた場合、取り消しは拒否される。したがって、現在待ち状態にあるアクセス要求の特性（例えば、アクセス要求のタイプが、読み取りであるか、または書き込みであるか、あるいはデータであるか、または命令であるか）に依存して、取り消し制御論理５０は、アクセス取り消し制御レジスタ４８８内部に記憶されたアクセス取り消し制御情報を使用して、シーケンサ制御論理４２からの取り消し要求を許す、または拒否する。
【００２４】
図３の実施形態では、アクセス・タイプが、アクセスされるデバイスにかかわらず、取り消しを許すか否かを示すのに使用されることに留意されたい。例えば、命令読み取り取り消し制御フィールドがアサートされた場合、アクセスが、メモリ・システム１４に対してであるか、スレーブ１６に対してであるか、またはスレーブ１８に対してであるかにかかわらず、命令読み取りタイプのアクセスの取り消しは許される。しかし、以下に説明する代替の実施形態では、取り消しは、アクセス・タイプに加え、アクセスされるデバイス（例えば、アクセスされる特定のアドレス範囲）に基づいて許可または拒否される。
【００２５】
別の代替の実施形態では、図３のフィールドは、取り消し制御論理５０が、後続の新たな要求に対応するアクセス取り消し制御情報を使用して、シーケンサ制御論理４２からの取り消し要求を（現在待ち状態にあるアクセス要求を取り消すように）許す、または拒否することができる現在待ち状態にある要求に続く、新たな要求の特性に対応する。例えば、その実施形態では、命令読み取り取り消し制御フィールド１００がアサートされ、且つ現在待ち状態にあるアクセス要求に続く新たなアクセス要求が命令読み取りタイプ・アクセスである場合、現在待ち状態にあるアクセス要求の取り消しは、許される。
【００２６】
図４は、アクセス取り消し制御レジスタ４８の別の実施形態を示し、レジスタ４８は、以下のいくつか（例えば、４つ）のアドレス範囲取り消し制御フィールド、すなわち、アドレス範囲１取り消し制御フィールド１０６、アドレス範囲２取り消し制御フィールド１０８、アドレス範囲３取り消し制御フィールド１１０、およびアドレス範囲４取り消し制御フィールド１１２を含む。したがって、図４の各取り消し制御フィールドは特定のアドレス範囲に対応する（代替の実施形態では、アクセス取り消し制御レジスタ４８は、任意の数のアドレス範囲取り消し制御フィールドを含む）。例えば、アドレス範囲は、メモリ（図１のシステム・メモリ１４などの）の中のすべてのロケーション、または特定のロケーション範囲を識別し、あるいは、スレーブ１６内部、またはスレーブ１８内部などの、システム・バス２０に結合された任意のデバイス内部のすべてのロケーション、または特定のロケーション範囲を識別する。例えば、１実施形態では、アドレス範囲の１つがシステム・バス２０に結合されたバス・ブリッジ２２のアドレス範囲に対応し、そのアドレス範囲は、システム・バス３０に結合された任意のデバイスの取り消しが許されるか、または拒否されるかを示す。代替的に、アドレス範囲の１つは、システム・バス３０（バス・ブリッジ２２を介してシステム・バス２０に結合された）に結合されたデバイス群の任意のデバイス内部のロケーション範囲に特に対応する。
【００２７】
１実施形態では、各アドレス範囲取り消し制御フィールドのアドレス範囲は、図２のアドレス比較論理６０などの、アドレス比較論理内部で定義される。アドレス範囲は、例えば、上限と下限を使用することにより、または開始ロケーションおよびマスクを使用することにより定義される。図２の実施形態を参照すると、アドレス比較論理６０は、したがって、待ち状態にあるアドレス５８（シーケンサ制御論理４２が取り消すことを望む現在待ち状態にあるアドレスに対応する）を定義されたアドレス範囲の各範囲と比較して、待ち状態のアドレス５８が入る範囲が存在する場合、いずれの範囲に入るかを判定することができる。例えば、待ち状態にあるアドレス５８がアドレス範囲２に入る場合、アクセス取り消し制御レジスタ４８（図４の）のアドレス範囲２取り消し制御フィールド１０８を使用して、待ち状態のアドレス５８の取り消しが許されるかどうかが示される。例えば、フィールド１０８がアサートされた場合、取り消しは許されるが、フィールド１０８がネゲートされた場合、取り消しは拒否される。しかし、待ち状態にあるアドレス５８が図４の実施形態に対応する範囲１〜４のいずれにも入らない場合、待ち状態にあるアドレス５８の取り消しは許されない。代替の実施形態では、アドレス範囲取り消し制御フィールドによって定義される範囲は、取り消しが許されない範囲を定義し、他のすべてのアドレス・ロケーションは、取り消し可能である。
【００２８】
図３および図４の実施形態は、取り消しが許されるか、または拒否されるかの判定が、アクセス・タイプとアドレス範囲の両方に基づくように組み合わせられることに留意されたい。例えば、１実施形態では、各アドレス範囲に対して、対応する命令読み取り制御フィールド、データ読み取り制御フィールド、およびデータ書き込み制御フィールド（または以上のサブセット）を使用して、取り消しがいつ許されるかをさらに定義する。例えば、図１を参照すると、アドレス範囲取り消し制御フィールドがスレーブ１６に対応してアクセス要求がスレーブ１６に対して行われた場合、そのアクセス要求に対応する待ち状態のアドレスはその範囲に入る。さらに、スレーブ１６に対応する特定のアドレス範囲に対して、ユーザが、命令読み取りではなく、データ読み取りおよびデータ書き込みだけの取り消しを許すことを所望するかもしれない。そのケースでは、その特定のアドレス範囲に固有のデータ読み取り制御フィールド、データ書き込み制御フィールド、および命令読み取り取り消し制御フィールドがアクセスが許されるかどうかを判定するのに使用される。したがって、現在待ち状態にあるアドレスの特性の任意の組合せを使用して、取り消しが許されるかどうかが判定される。
【００２９】
図５は、取り消しが、前のアクセス・タイプに基づいて、またはアクセス・タイプの順序もしくはシーケンスに基づいて許される、または拒否される、アクセス制御レジスタ４８のさらに別の実施形態を示す。例えば、図５の実施形態では、アクセス取り消し制御レジスタ４８は、命令に続く命令（ＩＦＩ）取り消し制御フィールド１１４、命令に続くデータ読み取り（ＤＲＦＩ）取り消し制御フィールド１１６、命令に続くデータ書き込み（ＤＷＦＩ）取り消し制御フィールド１１８、データ読み取りに続く命令（ＩＦＤＲ）取り消し制御フィールド１２０、データ読み取りに続くデータ読み取り（ＤＲＦＤＲ）取り消し制御フィールド１２２、データ読み取りに続くデータ書き込み（ＤＷＦＤＲ）取り消し制御フィールド１２４、データ書き込みに続く命令（ＩＦＤＷ）取り消し制御フィールド１２６、データ書き込みに続くデータ読み取り（ＤＲＦＤＷ）取り消し制御フィールド１２８、およびデータ書き込みに続くデータ書き込み（ＤＷＦＤＷ）取り消し制御フィールド１２９を含む。したがって、図５の実施形態では、取り消しは、現在待ち状態にあるアクセスおよび前のアクセス・タイプに基づいて許されるか、または拒否される。例えば、現在待ち状態にあるアクセス要求（待ち状態のアドレス５８に対応する）の取り消しが所望されると、取り消しは、前のアクセスに基づいて許される、または拒否されるように、シーケンサ制御論理４２が前のアクセス・タイプを常に把握する。例えば、前のアクセスがデータ書き込みであり、取り消されるべき現在待ち状態にあるアクセスが命令アクセス（すなわち、命令読み取り）である場合、ＩＦＤＷ取り消し制御フィールド１２６が取り消し制御論理５０によって使用されて、取り消しが許されるかどうかが判定される。したがって、フィールド１２６がアサートされた場合、現在待ち状態にあるアクセスの取り消しが許されるが、ネゲートされた場合、取り消しは拒否される。別の実施形態では、新たに要求されるアクセスの特性が現在待ち状態にあるアクセスの特性に関連するので、図５に示されたフィールドは新たに要求されるアクセスの特性に基づいて適用される。例えば、現在待ち状態にあるアクセスが命令読み取りであり、新たに要求されるアクセスがデータ書き込みである場合、ＤＷＦＩ取り消し制御フィールド１１８が調べられて、現在待ち状態にある命令アクセスの取り消しが許されるかどうかが判定される。
【００３０】
図３および図４の実施形態の場合と同様に、図５のフィールド１１４〜１２８によって定義される特性は、例えば、図３のフィールド１００〜１０４、および／または図４のフィールド１０６〜１１２によって定義される特性などの、他の特性と組合せで使用される。さらに、アクセス取り消し制御レジスタ４８は、必要に応じて任意の数のフィールドを有する任意の数のレジスタ（１つまたは複数の）を含む。また、必要に応じて、任意の数のアドレス範囲が定義され、それら範囲の境界は取り消し制御論理５０内部に記憶されるか、またはマスタ１２内部の別の場所に記憶される。また、図３〜図５の取り消し制御フィールドは、アサートも、ネゲートもされて取り消しが許される、または拒否されることを示す、一ビット・フィールドとして説明されていたことにも留意されたい。しかし、代替の実施形態では、各フィールドは所望に応じて任意の数のビットを含み、取り消しの許可、または取り消しのレベルを示す。また、任意のタイプの記憶回路が、アクセス取り消し制御レジスタ４８内部に記憶されるアクセス取り消し制御情報を記憶するために使用される。
【００３１】
また、代替の実施形態では、図３〜図５で説明した現在待ち状態にあるアクセスの特性を使用するのではなく、現在待ち状態にあるアクセス要求に続く新たなアクセスの特性が代わって同様の形で使用されて、現在待ち状態にあるアクセス要求のアクセス取り消しが許されるかどうかを判定することにも留意されたい。したがって、それらの代替の実施形態では、図３〜図５のフィールド内の情報は、現在待ち状態にあるアクセス要求のアクセス取り消しが許されるかどうかを判定するために、現在待ち状態にあるアクセス要求にではなく、新たなアクセス要求に対応する。さらに別の実施形態では、任意の数のアクセス取り消し制御レジスタ、またはアクセス取り消し制御レジスタ内部の任意の数のフィールドが、使用され、現在待ち状態にあるアクセス要求の選択的取り消しは、現在待ち状態にあるアクセス要求と新たなアクセス要求との両方の特性に基づく。例えば、アクセス取り消し制御レジスタ４８は、現在待ち状態にあるアクセス・アドレスの特性に対応する１つのレジスタ、または１つのレジスタ・セットを含み、新たな（すなわち、後続の）アクセス要求の特性に対応する別のレジスタ、別のレジスタ、または別のレジスタ・セットを含む。
【００３２】
上に提供した説明は、単一のマスタ・システム（例えば、図１のデータ処理システム１０）を参照して説明されていたことに留意されたい。しかし、代替の実施形態では、データ処理システム１０は、複数のバス・マスタを含んでもよい。その実施形態では、取り消しが許されるか、または拒否されるかを判定するのに使用される現在待ち状態にあるアクセスの特性は、どのバス・マスタがアクセス要求を行ったかを含んでもよい。例えば、図３〜図４を参照して説明したレジスタのような別個のアドレス取り消し制御レジスタ（またはアドレス取り消し制御レジスタ・セット）が、各レジスタ（またはレジスタ・セット）が異なるバス・マスタに対応する場合に使用される。その実施形態では、いずれのバス・マスタが現在待ち状態にあるアクセス（待ち状態のアドレス５８に対応する）を行ったかを、ＢＩＵ７０が取り消し制御論理５０に示す。例えば、各バス・マスタは、各アクセス要求にしたがってシステム・バス２０を介して供給される、対応する唯一のバス・マスタ識別子を有する。また、各バス・マスタは、必要に応じて、異なって対応するアクセス取り消し制御レジスタおよび／またはアクセス取り消し制御フィールドを有することにも留意されたい。
【００３３】
したがって、図１〜図６に示される実施形態は、現在待ち状態にあるアクセスの１つまたは複数の特性、または現在待ち状態にあるアクセス要求に続く新たなアクセス要求の１つまたは複数の特性、あるいは現在待ち状態にあるアクセス要求と新たなアクセス要求との各要求の１つまたは複数の特性に基づいて現在待ち状態にあるアクセスの選択的取り消しを可能にすることを理解することができよう。このようにして、バス・マスタ１２は、アクセス要求をよりよく制御して、ストールを減らし、性能を向上させる。１つまたは複数の特性は、例えば、アクセス・タイプ（例えば、読み取り／書き込み、命令／データ、バースト／非バーストなど）、アクセスのシーケンスまたは順序、アクセスされるアドレス（例えば、いずれのアドレス範囲が、アクセスされるか、またはいずれのデバイスが、アクセスされるか）、取り消しを要求しているバス・マスタ（例えば、マルチマスタ・システムにおける）、またはこれらの任意の組合せを含む。また、図１〜図６を参照して前述した選択的取り消しはアクセスごとに動的に実行されることにも留意されたい。さらに、アクセスの特性は、前述した選択的取り消しと同様に、バス・プロトコルの他の態様を選択的に優先するために使用される。例えば、バースト・アクセスが要求されると、完全に完了されなければならないか否か、またはバースト・アクセスが完了に先立って中断されるか否かである。
【００３４】
また、図１〜図６を参照して前に記したアクセス取り消しの概念は、現在待ち状態にあるアクセス要求の（および／または現在待ち状態にあるアクセス要求に続く、新たなアクセスの）１つまたは複数の特性に基づいて現在待ち状態にあるアクセスも取り消すバス調停にも適用されてよい。例えば、図７は、本発明の１実施形態による、Ｍ個のマスタをＮ個のスレーブに結合することができるシステム相互接続２００を示す。例えば、１実施形態では、システム相互接続２００はクロスバー・スイッチとして実施される。図示される実施形態では、マスタ・ポート０〜２のそれぞれが、スレーブ・ポート０および１のそれぞれと通信する。各マスタ・ポートには１つまたは複数のマスタが結合されており、スレーブ・ポートのそれぞれには１つまたは複数のスレーブが結合される。複数のマスタ、または複数のスレーブがある特定のポートに結合されている場合、同一のマスタ・ポートに結合された複数のマスタ間、または同一のスレーブ・ポートに結合された複数のスレーブ間で調停を行うのに、さらなる調停論理（図示せず）が必要とされることに留意されたい。また、マスタ・ポートに結合されたマスタのタイプ、およびスレーブ・ポートに結合されたスレーブのタイプは、バス・マスタ１２、ならびにスレーブ１６および１８を参照して前に記したものと同一のタイプであってもよいことにも留意されたい。本明細書で説明される実施形態では、各マスタ・ポートには対応するマスタが結合されているものと想定する。例えば、図示していないが、マスタ・ポート０にはマスタ０が結合され、マスタ・ポート１にはマスタ１が結合され、マスタ・ポート２にはマスタ２が結合されている。同様に、各スレーブ・ポートには対応するスレーブが結合されており、例えば、スレーブ・ポート０はスレーブ０に結合され、スレーブ・ポート１はスレーブ１に結合されているものと想定する。
【００３５】
また、データ処理システム１０のような任意のデータ処理システムが、システム・バスの代わりにシステム相互接続２００のようなシステム相互接続を利用してもよいことにも留意されたい。例えば、図１を再び参照すると、システム相互接続２００がシステム・バス２０の代わりに使用されてもよく、バス・マスタ１２が、マスタ・ポート０〜２のいずれかに結合され、スレーブ１６がスレーブ・ポート０または１のいずれかに結合され、スレーブ１８がスレーブ・ポート０または１の他方に結合される。また、バス・マスタ１２のようなさらなるマスタがマスタ・ポート０〜２の残りの２つに結合されてもよい。また、図７は３つのマスタ・ポートおよび２つのスレーブ・ポートを示すが、システム相互接続２００は必要に応じて、任意の数のマスタ・ポートおよび任意の数のスレーブ・ポートを含んでいると理解されるべきであることにも留意されたい。
【００３６】
図７のシステム相互接続２００では、後続の要求を優遇して、マスタからスレーブ・ポートへのアクセス要求を取り消すことが望ましい。例えば、マスタのアクセス要求が進行中である（例えば、現在のアクセス要求のアドレスがスレーブ・ポート上に駆動され、スレーブによって取り込まれ、または受け入れられ、スレーブから対応するデータが戻されるのを待つ）。しかし、データの戻りが遅延して、進行中のアクセス要求の完了に要求される待機状態の数が増える。このアクセス要求が進行中であり、戻りデータを待っている間に、同一のマスタまたは異なるマスタが、別のアクセス要求を同一のスレーブ・ポートに与えてもよい。このアクセス要求はシステム相互接続内部の調停論理によって許可されて、スレーブ・ポート上で駆動される現在待ち状態にあるアクセス要求になる。しかし、許可されて、スレーブ・ポート上に駆動されるものの、この現在待ち状態にあるアクセス要求は、現在進行中のアクセス要求が完了する（すなわち、データが戻される）まで、スレーブによって実行されない。したがって、現在待ち状態にあるアクセス要求の特性（および／または現在待ち状態にあるアクセス要求に続く、新たなアクセス要求の特性）に基づいて、例えば、同一のポートに対する後続のアクセス要求がより高い優先順位を有する場合、その後続のアクセス要求を優遇して現在待ち状態にあるアクセス要求を取り消すことが望ましい。次いで、取り消された現在待ち状態にあるアクセス要求は、後続のアクセス要求がスレーブ・ポート上に駆動されるまで、スレーブ・ポートに対応するスレーブ・ポート論理内部に記憶される。代替的に、取り消された現在待ち状態にあるアクセス要求は、その要求がスレーブ・ポート上に再駆動される後の時点まで記憶される。このようにして効率が改善される。バス調停に関するアクセス取り消しのさらなる詳細を、図７〜図１２を参照して説明する。
【００３７】
図７のシステム相互接続２００は、マスタ・ポート０〜２、スレーブ・ポート０および１、ならびにスレーブ・ポート０論理、およびスレーブ・ポート１論理を含み、マスタ・ポート０〜２のそれぞれはスレーブ・ポート０論理を介してスレーブ・ポート０に結合され、マスタ・ポート０〜２のそれぞれはスレーブ・ポート１論理を介してスレーブ・ポート１に結合される。スレーブ・ポート０論理は、調停論理２１６、取り消し制御論理２１８、マスタ優先順位レジスタ２１０、パーキング制御レジスタ２１２、アクセス取り消し制御レジスタ２１４、およびアクセス・セレクタ２０８を含む。マスタ・ポート０〜２のそれぞれは、導体２０２〜２０４を介して、アクセス・セレクタ２０８、調停論理２１６、ならびにスレーブ・ポート０論理の取り消し制御論理２１８、およびスレーブ・ポート１論理にそれぞれ結合される。アクセス・セレクタ２０８は、導体２０２〜２０４（マスタ・ポート０〜２にそれぞれ対応する）のいずれかからの情報をスレーブ・ポート０における導体２０５に供給する。つまり、導体２０５は、対応するスレーブ、スレーブ０に結合されたスレーブ・バスと呼ぶこともできる。調停論理２１６が現在の許可２２０をアクセス・セレクタ２０８および取り消し制御論理２１８に供給する。また、調停論理２１６は待ち状態の許可２２２、および取り消し要求２２４を取り消し制御論理２１８に供給し、取り消し識別子２２６を取り消し制御論理２１８から受け取る。調停論理２１６は、マスタ優先順位レジスタ２１０およびパーキング制御レジスタ２１２に結合される。取り消し制御論理２１８は、マスタ優先順位レジスタ２１０、パーキング制御レジスタ２１２、およびアクセス取り消し制御レジスタ２１４に結合される。
【００３８】
スレーブ・ポート１論理内部の回路は図示していないが、以下により詳細に説明するスレーブ・ポート０論理内部の回路と同様であることに留意されたい。つまり、スレーブ・ポート１論理の動作は、スレーブ・ポート０論理の動作と同様である。
【００３９】
動作の際、スレーブ・ポート０論理はマスタ・ポート０〜２に結合されたマスタからのスレーブ・ポート０へのアクセスを制御する。調停論理２１６が、導体２０２〜２０４を介してスレーブ・ポート０へのアクセス要求を受け取り、いずれの要求を許可すべきか、いつ許可すべきかを判定する。次に、調停論理２１６は、いずれのアクセス要求が許可されたかを示す制御信号である現在の許可２２０をアクセス・セレクタ２０８に供給する。現在の許可２２０に基づいてアクセス・セレクタ２０８は、マスタ・ポート０〜２のいずれかからの許可されたアクセス要求からの情報をスレーブ・ポート０に供給して、アクセス要求が現在許可されているマスタからのアドレス、データ、および制御信号を、スレーブ０に結合された導体２０５に駆動する。いずれのアクセス要求を許可するかの判定を行う際に、調停論理２１６はマスタ優先順位レジスタ２１０およびパーキング制御レジスタ２１２を使用する。アクセス要求が現在許可されているマスタから導体２０５に情報が駆動された後、スレーブ０はアクセス要求を取り込む、または受け入れる。アクセス要求を取り込むと、スレーブ０はそのアクセス要求に対応する要求されたデータを提供するため、または受け取るために、現在許可されているアクセス要求に対応するアドレスを受け取り、記憶する。アクセス要求は取り込まれると、現在進行中のアクセス要求になる。
【００４０】
その後、調停論理２１６は新たなアクセス要求を、その新たなアクセス要求に対応する現在の許可２２０をアクセス・セレクタ２０８に供給することにより、許可する。次に、その新たなアクセス要求（マスタ０〜２のいずれかからの）に対応する情報がアクセス・セレクタ２０８によってスレーブ０に結合された導体２０５に駆動される。しかし、その新たなアクセス要求は、前に許可されたアクセス要求が依然として進行中である間、現在待ち状態にあるアクセス要求のままである。つまり、例示する実施形態では、新たなアクセス要求は依然として進行中である前に許可されたアクセス要求が完了するまで、スレーブ０によって取り込まれない、または実行されない。１実施形態では、前に許可されたアクセス要求は、アクセス要求のアドレスに対応するデータがスレーブ０によって受け取られた後、またはマスタ０〜２（マスタ０〜２の要求側マスタが、データを受け入れる）に供給された後、完了する。
【００４１】
前に許可されたアクセス要求が進行中である期間は不明であるので、調停論理２１６は後続のアクセス要求を優遇して、現在待ち状態にあるアクセス要求（前に許可されたアクセス要求の完了を待っている要求）が取り消されるべきであると判定してもよい。そのケースでは、調停論理２１６は取り消し要求２２４をアサートすることにより、現在待ち状態にあるアクセス要求の取り消しを要求する。アクセス取り消し制御レジスタ２１４からの情報を使用して取り消し制御論理２１８が、現在待ち状態にあるアクセス要求および／または後続のアクセス要求の少なくとも１つ以上の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかを判定する（１つ以上の特性は、要求側マスタから導体２０２〜２０４を介して供給される情報、待ち状態の許可２２２を介して供給される現在待ち状態にあるアクセス要求のアドレス、および／またはマスタ優先順位レジスタ２１０およびパーキング制御レジスタ２１２の中の情報から決定されることが可能である）。取り消し制御論理２１８が現在待ち状態にあるアクセスの取り消しが許されると判定した場合、取り消し識別子２２６をアサートし、取り消しが許されない場合、取り消し識別子２２６がネゲートされる（またはネゲートされたままである）。取り消しが許される場合、アービタ論理は、現在の許可２２０、およびアクセス・セレクタ２０８を介してスレーブ・ポート０における導体２０５上の現在待ち状態にあるアクセス要求を後続の新たなアクセス要求で置き換える。次に、調停論理２１６は取り消された現在待ち状態にあるアクセス要求を記憶して、後続の新たなアクセス要求が導体線２０５上に駆動された後、取り消された要求が再駆動されてよい。代替的に、取り消された要求は後の時点で再駆動されてもよい。
【００４２】
図７の例示される実施形態では、スレーブ・ポート０論理がマスタ優先順位レジスタ２１０およびパーキング制御論理２１２を含む。それらのレジスタの実施例が図８および図９にそれぞれ示されている。例えば、図８は各マスタ・ポートに対応するマスタ優先順位フィールド、すなわち、マスタ０優先順位フィールド２３０、マスタ１優先順位フィールド２３２、およびマスタ２優先順位フィールド２３４を含むマスタ優先順位レジスタ２１０の１実施形態を示す。したがって、各フィールドは対応するマスタ・ポートの優先順位を含む。例えば、３つのマスタ・ポートを含む、例示された実施形態では、２ビット値（例えば、１１，１０，０１，００）を使用して優先順位を示し、最高優先順位のマスタ・ポートに１１という優先順位が割り当てられ、次に高い優先順位のマスタ・ポートに１０という優先順位が割り当てられ、３番目に高い（すなわち、３つのうち最低の）優先順位のマスタ・ポートに０１という優先順位が割り当てられる。そのケースでは００値は使用されない。代替的に、優先順位は、１０（最高優先順位のマスタ・ポート）から００（最低優先順位のマスタ・ポート）までの番号が付けられ、値１１は使用されない。さらに別の代替の実施形態では、優先順位に１０（最低優先順位のマスタ・ポート）から００（最高優先順位のマスタ・ポート）まで番号が付けられる。代替的に、他のスキームが優先順位を各ポートに割り当てるのに使用さる。また、１実施形態では、マスタ・ポートにマスタが結合されていない場合、対応するマスタ優先順位フィールドはそのことを示す所定の値がプログラミングされても、単に最低の優先順位が与えられてもよいことにも留意されたい。
【００４３】
図９は、パーキング・イネーブル・フィールド２３６及びパーキング・マスタ・フィールド２３８を含むパーキング制御レジスタ２１２の１実施形態を示す。１実施形態では、パーキング・イネーブル・フィールド２３６がアサートされると、対応するスレーブ・ポート（この実施形態では、スレーブ・ポート０）のパーキングがイネーブルにされることを示し、ネゲートされると対応するスレーブ・ポートのパーキングがイネーブルにされないことを示す、１ビット・フィールドである。パーキングがイネーブルにされた場合、パーキング・マスタがパーキング・マスタ・フィールド２３８の中の値によって与えられる。例えば、パーキング・マスタ・フィールド２３８はマスタ・ポート０〜２のいずれかを識別する２ビット値である。パーキングがイネーブルにされ、対応するスレーブ・ポートがアイドルである（いずれのマスタ・ポートへの情報の通信も、いずれのマスタ・ポートからの情報の通信も行っていない）場合、スレーブ・ポートはそのパーキング・マスタに自動的に結合されて、パーキング・マスタが調停間隔を要することなしに、スレーブ・ポートと通信する。例えば、スレーブ・ポート０がアイドルである場合、パーキング制御レジスタ２１２内部の情報を使用する調整論理２１６は現在の許可２２０（パーキング・マスタを示す）をアクセス・セレクタ２０８に供給し、セレクタ２０８はパーキング・マスタをスレーブ・ポート０の導体２０５に結合する。そのケースでは、スレーブ・ポートがアイドルである場合（パーキングがイネーブルにされていると想定すると）、パーキング・マスタはスレーブ・ポートへのアクセスを明示的に要求しなくてもよいことに留意されたい。このようにして、パーキングされたマスタが、スレーブ・ポート０の次の要求側である場合、調停間隔はまったく要求されず、パーキングされたマスタのスレーブ・ポート０にアクセスする待ち時間が短縮される。パーキングがイネーブルにされていない場合、調停論理２１６およびアクセス・セレクタ２０８は図７を参照して前に記したとおり動作する。
【００４４】
スレーブ・ポート０論理の動作は図１２のフロー２６０で提供される例を参照して、さらに理解することができる。フローはブロック２６２で始まり、マスタ１からスレーブ・ポート０への現在のアクセス要求（対応するアクセス・アドレスａｄｄｒｘを有する）が進行中である間に、マスタ０からスレーブ・ポート０へのアクセス要求が許可される（対応するアクセス・アドレスａｄｄｒｙを有する）。したがって、図７を参照して前に記したとおり、マスタ０からのアクセス要求は、マスタ１からの進行中の現在のアクセスが完了するまで、スレーブ０によって受け入れられ得ない、または取り込まれ得ない、現在待ち状態にあるアクセス要求になることに留意されたい。次に、フローはブロック２６４に進み、後続のアクセス要求、または新たなアクセス要求（対応するアクセス・アドレスａｄｄｒｚを有する）がマスタ１から（または、代替の実施形態では、他の任意のマスタから）スレーブ・ポート０に受け取られる。前に記したとおり、現在進行中のアクセス要求（ａｄｄｒｘ）がどれだけ長いか不明であるので、調停論理２１６は、例えば、新たに受け取られたアクセス要求がより重要である、またはよりタイム・クリティカルであるあるため、その新たに受け取られたアクセス要求（ａｄｄｒｚ）を優遇して、現在待ち状態にあるアクセス要求（ａｄｄｒｙ）を取り消すことを望む。つまり、調停論理２１６は後に受け取られたアクセス要求を優遇して、待ち状態のアクセス要求を並べ替えることを望む。したがって、図１２を再び参照するとフローはブロック２６６に進み、スレーブ・ポート０に対する現在待ち状態にあるマスタ０アクセス要求（ａｄｄｒｙ）に対応する取り消し要求が生成される。例えば、図７を参照して説明したとおり、調停論理２１６が取り消し要求２２４をアサートすることに対応する。
【００４５】
図１２を再び参照すると、取り消し要求が生成された後、フローはブロック２６６から判定ダイヤモンド２６８に進み、現在待ち状態にあるアクセス要求の１つまたは複数の特性（および／または後続のアクセス要求（ａｄｄｒｚ）の１つまたは複数の特性）に基づいて、現在待ち状態にあるマスタ０アクセス要求（ａｄｄｒｙ）の取り消しが許されるかどうかが判定される。例えば、その判定は、マスタ優先順位レジスタ２１０、パーキング制御レジスタ２１２、待ち状態の許可２２２からの情報、導体２０２〜２０４からの情報、またはこれらの任意の組合せ、およびアクセス取り消し制御レジスタ２１４を使用して、取り消し制御論理２１８によって行われる。取り消しが許されない場合、フローは判定ダイヤモンド２６８からブロック２７０に進み、取り消し要求が拒否され（例えば、取り消し識別子２２６をネゲートすることにより）、スレーブ・ポート０論理が進行中のアクセス要求（ａｄｄｒｘ）が完了するのを待ち、現在待ち状態にあるアクセス要求（ａｄｄｒｙ）が取り込まれる（そのため、進行中の新たなアクセス要求になる）のを待ってから、後に受け取られたアクセス要求（ａｄｄｒｚ）をスレーブ・ポート０の導体２０５上に駆動する。取り消しが許された場合、フローは判定ダイヤモンド２６８からブロック２７２に進み、現在待ち状態にあるアクセス要求（ａｄｄｒｙ）が取り消される（例えば、取り消し識別子２２６をアサートすることにより）。そのケースでは、現在待ち状態にあるアクセス要求（ａｄｄｒｙ）は、新たなアクセス要求（ａｄｄｒｚ）が現在待ち状態にあるアクセス要求になるように、新たなアクセス要求（ａｄｄｒｚ）で置き換えられる。このようにして、許可されたアクセス要求の順序は、前の待ち状態のアクセス要求（ａｄｄｒｙ）を新たなアクセス要求（ａｄｄｒｚ）で置き換えることにより、調停論理から見て並べ替えられ、置き換えられたアクセス要求（ａｄｄｒｙ）は、ａｄｄｒｚの後、または後の何らかの時点で、スレーブ・ポート０上に再駆動されるように、スレーブ・ポート０論理内部に記憶され。スレーブ・ポート０に結合されたスレーブ０から見て、現在待ち状態にあるアクセス要求（ａｄｄｒｙ）は取り消され、新たな現在待ち状態にあるアクセス要求（ａｄｄｒｚ）が代わりに駆動されて、現在進行中のアクセス要求（ａｄｄｒｘ）の完了の後、スレーブによって取り込まれるようになっている。
【００４６】
前述したとおり、アクセス取り消し制御レジスタ２１４内部の情報は取り消しが許された条件を示す。（代替的に、アクセス取り消し制御レジスタ２１４は取り消しが許されなかった条件を示す。）したがって、アクセス取り消し制御レジスタ２１４の中の情報は、現在待ち状態にあるアクセス要求の（または、後続のアクセス要求の）１つまたは複数の特性に基づいて、現在待ち状態にあるアクセス要求を選択的に取り消すために使用される。それらの特性は、図３〜図５を参照して前述した特性のいずれか、または図１０および図１１を参照して説明される特性のいずれか、またはこれらの任意の組合せを含む。例えば、前に記したとおり、判定を行うために使用される現在待ち状態にあるアクセス要求の特性は、アクセス・タイプ、アドレス範囲、データ・タイプの順序付け、およびこれらの組合せを含む。例えば、アドレス範囲では、１つまたは複数のアドレス範囲が特定のスレーブ・ポート（スレーブ・ポート０などの）を識別するのに使用されるか、特定のスレーブ・ポートを介してアクセスされるロケーションの範囲を識別するために使用される。そのケースでは、図４を参照してやはり前に記したとおり、取り消しは単に、現在待ち状態にあるアクセス要求、または後に受け取られたアクセス要求によってアクセスされる特定のアドレス範囲（例えば、スレーブ・ポート）に基づいて許されるか、または拒否され、あるいは取り消しはアクセスされる特定のアドレス範囲（例えば、スレーブ・ポート）だけでなく、現在待ち状態にあるアクセス要求、または後に受け取られたアクセス要求のさらなる特性に基づいて許される、または拒否される。１実施形態では、アドレス範囲は特定のスレーブ・ポートとして代わりに直接に識別されてもよいことに留意されたい。
【００４７】
図１０は、取り消しが許されるか、または拒否されるかの判定が要求側マスタの優先順位（例えば、優先順位デルタ）に基づく、図７のアクセス取り消し制御レジスタ２１４の１実施形態を示す。例えば、後続のアクセス要求（ａｄｄｒｚ）を行ったマスタ（例えば、図１２の実施例におけるマスタ０）が現在待ち状態にあるアクセス要求（ａｄｄｒｙ）を行ったマスタ（例えば、図１２の実施例におけるマスタ１）より高い優先順位を有する場合、取り消し制御論理２１８は（図１０のアクセス取り消し制御レジスタ２１４によって供給される情報を使用して）アクセス取り消しを許す。例えば、図１０のアクセス取り消し制御レジスタ２１４はマスタ・ポートごとに１つの優先順位デルタ取り消し制御フィールド、すなわち、マスタ０優先順位デルタ取り消し制御フィールド２４０、マスタ１優先順位デルタ取り消し制御フィールド２４２、およびマスタ２優先順位デルタ取り消し制御フィールド２４４を含む。この実施例では、各フィールドは、取り消しが許されるために後続のアクセス要求の要求側マスタと現在待ち状態にあるアクセス要求の要求側マスタとの間の優先順位デルタ（すなわち、優先順位の差）がどのようなものでなければならないかを示す。つまり、マスタ０優先順位デルタ取り消し制御フィールド２４０は、現在待ち状態にあるアクセス要求の取り消しが許されるために、マスタ０が、現在待ち状態にあるアクセス要求の要求側マスタに対して、どのような優先順位デルタを有さなければならないかを示す。
【００４８】
１実施形態では、各フィールドは２ビット値であり、「００」という値は０以上の優先順位デルタが必要とされることを示し、「１０」という値は２以上の優先順位デルタが必要とされることを示し、「１１」という値は優先順位デルタにかかわらず、そのケースでは取り消しが許されないことを示す。他のｎビット値を使用して（ｎは０より大きい任意の整数である）、取り消しが許されるのに要求される優先順位デルタが示されてもよいことに留意されたい。例えば、図１２の実施例を参照すると、マスタ０が現在待ち状態にあるアクセス要求（ａｄｄｒｙ）を行い、マスタ１が後続のアクセス要求（ａｄｄｒｚ）を行う。したがって、取り消しが要求された場合、マスタ０優先順位デルタ取り消し制御フィールド２４０の中で与えられる情報がマスタ０優先順位フィールド２３０およびマスタ１優先順位フィールド２３２（図８に関連して説明した）とともに使用されて、取り消しが許されるかどうかが判定される。マスタ１とマスタ０の間の優先順位デルタ（優先順位デルタ＝マスタ１優先順位−マスタ０優先順位）が、マスタ０優先順位デルタ取り消し制御フィールド２４０によって示されるとおり十分である場合、取り消しは許される。優先順位デルタが１であるが、マスタ０優先順位デルタ取り消し制御フィールド２４０が２以上のデルタが必要とされることを示す場合、取り消しは許されない。しかし、優先順位デルタが２であった場合、取り消しは許される。マスタ０優先順位デルタ取り消し制御フィールド２４０が０以上のデルタを示す場合、マスタ１がマスタ０と少なくとも同一の優先順位を有する限り、取り消しは許される。
【００４９】
図１１は、最高優先順位のマスタ取り消し制御フィールド２４６、遅延取り消し制御フィールド２４８、パーキング・マスタ取り消し制御フィールド２５０、および非パーキング・マスタ取り消し制御フィールド２５２を含む様々な異なるフィールドを有する、図７のアクセス取り消し制御レジスタ２１４の別の実施形態を示す。１実施形態では、フィールド２４６、２５０、および２５２のそれぞれは、アサートまたはネゲートされる１ビット・フィールドである。例えば、最高優先順位のマスタ取り消し制御フィールド２４６がアサートされた場合、現在待ち状態にあるアクセス要求の取り消しは、後続の要求が最高優先順位を有するマスタからである場合に許される。パーキング・マスタ取り消し制御フィールド２５０がアサートされた場合、現在待ち状態にあるアクセス要求の取り消しは、後続の要求がパーキング・マスタからである（例えば、パーキング制御レジスタ２１２の中のパーキング・マスタ・フィールド２３８によって示される）場合に許される。非パーキング・マスタ取り消し制御フィールド２５２がアサートされた場合、現在待ち状態にあるアクセス要求の取り消しは、後続の要求がいずれかの非パーキング・マスタ（パーキング・マスタ・フィールド２３８によって示されるマスタ以外の任意のマスタ）からである場合に許される。遅延取り消し制御フィールド２４８が、取り消しが許される場合に、ｄクロック数の待機状態の後に実行されるように、遅延（ｄ）をもたらすために使用され、ｄは０以上の任意の整数である。例えば、１実施形態では、ｄが０である場合、遅延取り消しはイネーブルにされない。しかし、ｄが１以上である場合、現在待ち状態にあるアクセス要求の取り消しは（許される場合）ｄクロックだけ遅延させられる。代替の実施形態では、遅延値は、取り消しが許される場合、現在進行中の（例えば、ａｄｄｒｘに対応する）アクセスが完了するためにかかる時間が、遅延以上である場合に限って、取り消しが実際に実行されるように遅延（ｄ）をもたらす。つまり、この代替の実施形態では、現在進行中のアクセス要求が、遅延（ｄ）未満で完了する場合、取り消しは、それ以外で許されている場合でも、行われない。代替の実施形態では、遅延値は取り消しが行われるかどうかを判定するために、代替の形で、現在進行中のアクセスを完了させるのに要求される時間の長さと比較される。つまり、１実施形態では、現在待ち状態にあるアクセスの取り消しは（許される場合）、遅延値と現在進行中のアクセス要求が完了するのにかかる時間との比較が、所定の結果をもたらす場合にだけ行われる。
【００５０】
図１０および図１１のフィールド２４０〜２５２によって定義される特性のそれぞれは、単独で使用されても任意の組合せで使用されてもよく、例えば、図３のフィールド１００〜１０４、および／または図４のフィールド１０６〜１１２、および／または図５のフィールド１１４〜１２８によって定義される特性などの、他の特性と組合せてさらに使用されてもよいことに留意されたい。さらに、アクセス取り消し制御レジスタ２１４は、必要に応じて、任意の数のフィールドを有する任意の数のレジスタ（１つまたは複数）を含んでもよい。また、図１０および図１１の取り消し制御フィールドは、所望に応じて、取り消しの許可、または取り消しのレベルを示す、任意の数のビットを含んでもよいことにも留意されたい。また、任意のタイプの記憶回路が、アクセス取り消し制御レジスタ２１４内部に記憶されるアクセス取り消し制御情報を記憶するために使用されてもよい。
【００５１】
したがって、調停が、現在待ち状態にあるアクセス要求の特性、または後続のアクセス要求の特性、あるいは現在待ち状態にあるアクセス要求と後続のアクセス要求の両方の特性を使用して、現在待ち状態にあるアクセス要求をどのように選択的に取り消すことができるかを理解することができよう。このようにして待ち時間を減らし、より高い優先順位または重要度のアクセスがより早期に取り込まれることを可能にすることにより、効率が向上させられる。
【００５２】
図１、図２、および図７は、双方向の導体、および単方向の導体の使用を示すが、単方向の導体と双方向の導体の異なる組合せが代わりに使用されてもよいことを理解すべきであることに留意されたい。例えば、複数の単方向の導体が双方向の導体の代わりに使用されてもよい。また、信号は、単一の導体を介して直列に転送されても複数の導体を介して並列に転送されてもよい。代替的に、信号は単一の導体線上または複数の導体上で時間多重化されてもよい。
【００５３】
上記の明細では、本発明を特定の実施形態を参照して説明した。しかし、添付の特許請求の範囲に記載する本発明の範囲を逸脱することなく、様々な変形および変更が行われ得ることが当業者には理解されよう。例えば、データ処理システム１０は、単一のチップ上、または集積回路（ＩＣ）上、または複数のチップもしくはＩＣの組合せの上に配置されることが可能な、任意のタイプのデータ処理システムであることが可能であることを理解されたい。また、システム相互接続２００がマスタおよびスレーブと同一のチップ上または（ＩＣ）上に配置されることも可能であり、あるいはマスタおよびスレーブとは別個のＩＣ上に配置されてもよい。したがって、本明細書および図は限定的ではなく例示的であると見なされるべきであり、すべてのそのような変形は本発明の範囲に含まれるべきものとする。
【００５４】
利益、その他の利点、および問題の解決法を、特定の実施形態に関連して以上に説明した。しかし、それらの利益、利点、問題の解決法、ならびに、思い浮かべられる、またはより明白となる利益、利点、または解決法を生じさせる可能性があるあらゆる要素は、請求項のいずれか、またはすべてにとって不可欠な、必須の、または基本的な特徴もしくは要素であると解釈されるべきではない。本明細書で使用する「含む」、「〜からなる」という言葉、またはそれらの言葉の他のあらゆる活用形は、排他的でない包含を扱うものとされ、したがって、諸要素のリストを含む工程、方法、物品、または装置は、それらの要素だけを含むのではなく、明示的にリストアップされていない、またはそのような工程、方法、物品、または装置に本来備わっている他の諸要素も含むことが可能である。
【図面の簡単な説明】
【００５５】
【図１】本発明の１実施形態によるデータ処理システムを示すブロック図。
【図２】本発明の１実施形態による図１のバス・マスタの１部分を示すブロック図。
【図３】図２のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。
【図４】図２のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。
【図５】図２のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。
【図６】本発明の１実施形態による選択的アクセス取り消しを実行するための方法を示す流れ図。
【図７】本発明の１実施形態によるシステム相互接続を示すブロック図。
【図８】図７のマスタ優先順位レジスタの１実施形態を示すブロック図。
【図９】図７のパーキング制御レジスタを示すブロック図。
【図１０】図７のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。
【図１１】図７のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。
【図１２】本発明の代替の実施形態による選択的アクセス取り消しを実行する実施例を示す流れ図。
【図１】
2008515091.tif 000003
【図２】
2008515091.tif 000004
【図３】
2008515091.tif 000005
【図４】
2008515091.tif 000006
【図５】
2008515091.tif 000007
【図６】
2008515091.tif 000008
【図７】
2008515091.tif 000009
【図８】
2008515091.tif 000010
【図９】
2008515091.tif 000011
【図１０】
2008515091.tif 000012
【図１１】
2008515091.tif 000013
【図１２】
2008515091.tif 000014
【国際調査報告】
2008515091.tif 000015
2008515091.tif 000016