JP2008515090A - バス・アクセス取り消しを伴うデータ処理システム - Google Patents

バス・アクセス取り消しを伴うデータ処理システム Download PDF

Info

Publication number
JP2008515090A
JP2008515090A JP2007534609A JP2007534609A JP2008515090A JP 2008515090 A JP2008515090 A JP 2008515090A JP 2007534609 A JP2007534609 A JP 2007534609A JP 2007534609 A JP2007534609 A JP 2007534609A JP 2008515090 A JP2008515090 A JP 2008515090A
Authority
JP
Japan
Prior art keywords
access
master
access request
revocation
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007534609A
Other languages
English (en)
Other versions
JP4848375B2 (ja
JP2008515090A5 (ja
Inventor
シー. モイヤー、ウィリアム
ダブリュ. マードック、ブレット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JP2008515090A publication Critical patent/JP2008515090A/ja
Publication of JP2008515090A5 publication Critical patent/JP2008515090A5/ja
Application granted granted Critical
Publication of JP4848375B2 publication Critical patent/JP4848375B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Abstract

バス・マスタ(12)は現在待ち状態にあるアクセスの1つまたは複数の特性に基づいて現在待ち状態にあるアクセスを選択的に取り消す。このようにして、バス・マスタはバス・マスタのアクセス要求をより良好に制御する。1つまたは複数の特性は、例えば、アクセス・タイプ(例えば、読み取り/書き込み、命令/データ、バースト/非バーストなど)、アクセスのシーケンスまたは順序、アクセスされるアドレス(例えば、いずれのアドレス範囲がアクセスされるか、またはいずれのデバイスがアクセスされるか)、取り消しを要求しているバス・マスタ(例えば、マルチマスタ・システムにおける)、およびこれらの任意の組合せを含む。また、バス調停(216)も、現在待ち状態にあるアクセス要求または後続のアクセス要求の1つまたは複数の特性に基づいて後続のアクセス要求を優遇して現在待ち状態にあるアクセス要求を選択的に取り消す。それらの特性は、上にリストアップした特性のいずれか、要求側マスタの優先順位(例えば、要求側マスタ間の優先順位デルタ)、要求側マスタの他の属性、またはこれらの任意の組合せを含む。

Description

本発明はデータ処理システムに関し、より詳細には、バス・アクセス取り消しを伴うデータ処理システムに関する。
異なるデータ処理システムが様々なバス・プロトコルの下で動作し、それらのバス・プロトコルは、例えば、バス・マスタによって行われたアクセス要求がどのように扱われるかを定義する。また、異なるデータ処理システムは、異なるバス・マスタからの要求がどのように扱われるかも定義する、異なるバス調停方式を使用して動作する。それらのバス・プロトコルおよびバス調停は、アクセス取り消しに関してなどの多くの態様で柔軟性がなく、これによりしばしば、望ましくない待ち時間が生じる。それらの待ち時間はデータ処理システム内の高い優先順位のバス・マスタに関して特に問題となるかもしれない。さらに、例えば、アクセス取り消しを異なる形で扱う、異なるバス・プロトコル、および異なるバス調停方式に従って動作するシステムを動作しようと試みる場合、誤りが生じるかもしれない。
したがって、例えば、待ち時間を減らしたより効率的なバス・プロトコルまたはバス調停方式を可能にする、アクセス取り消し方式を改良したデータ処理システムの必要性が存在する。
本発明を、同じ符号が同じ要素を指す添付の図により例として示すが、添付の図によって限定されない。
図における要素は簡潔明瞭にするために示され、必ずしも一定の縮尺で描かれていないことが当業者には理解されよう。例えば、図における要素のいくつかの要素の大きさは、本発明の実施形態の理解を向上させるのに役立つように、他の要素と比べて誇張される。
本発明の1実施形態は、例えば、現在待ち状態にあるバス・アクセス要求の特性に基づいてバス・プロトコルを選択的に優先させる(overriding)。1実施形態は、例えば、現在待ち状態であるアクセス要求の特性に基づいて現在待ち状態であるアクセス要求を選択的に取り消す。代替の実施形態は、例えば、現在待ち状態にあるアクセス要求の後に新たに要求されたアクセスの特性に基づいて現在待ち状態であるアクセス要求の選択的取り消しを可能にする。(代替的に、選択的取り消しは、現在待ち状態にあるアクセス要求の特性と、後続のアクセス要求の特性の両方に基づくこと。)1実施形態では、バス・プロトコルの優先化、または現在待ち状態にあるアクセス要求の取り消しを選択的に可能にするために使用される、現在待ち状態にあるアクセス要求の特性は、要求されたバス・アクセスに対応するアドレス範囲、要求されたバス・アクセスのアクセス・タイプ(例えば、読み取り/書き込み、命令/データ)、要求されたバス・アクセスに対応するアクセス・シーケンス、要求されたバス・アクセスのバス・マスタ、またはこれらの組合せを含む。
図1〜図6の例示および説明は、要求側バス・マスタによる現在待ち状態にあるバス・アクセス要求の選択的取り消しを可能にするデータ処理システムの実施例である。アクセスがシステム・バス20上の現在のアクセスの完了を待っていて、システム・バス20上で現在待ち状態である。いくつかの実施形態では、現在待ち状態であるアクセス要求は、システム・バス20上で進行中の現在のアクセスが完了するまで実際に活性化されない。システム・バス20は、アドレス・バスは、進行中の現在のアクセスに関するデータの戻りを待つ間、後続のアクセス要求(「現在待ち状態にある」アクセス要求)を駆動されるようにバス動作のアドレス段階とデータ段階とが重なり合うバス・プロトコルを実施する。複数のクロック・サイクルを要する進行中の現在のアクセスが完了するとそのアクセスのデータ段階は終了し、そのデータ段階の終了時に駆動されていたアドレス(現在待ち状態にあるアクセス要求と呼ばれる)が新たな現在のアクセスとなり、すると、アドレス・バスが新たなアクセス要求で駆動される。このように、アドレス段階とデータ段階は重なり合い、現在待ち状態にあるアクセス要求がデータ段階終了境界で新たな「現在の」アクセス要求となる。いくつかのケースでは、システム・バス20上の、現在待ち状態にあるアクセス要求の取り消しは現在待ち状態にあるアクセス要求が使用されない、もしくは、もはや必要とされないことをバス・マスタが認識している場合、バス・マスタによって所望される。このようにして、不必要になる、または破棄されることになるバス・アクセス要求に起因するストール(stall)が減らされる。したがって、1実施形態では、バス・マスタは、図1〜図6に関連して説明されるとおり、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求を選択的に取り消す。
例えば、図1は、バス・マスタがバス・マスタのパイプラインへの命令の逐次先行取得を実行する、データ処理システムを示す。ただし、この逐次アクセス・パターンは、例えば分岐命令などのフロー命令の変更によって乱される。フローの変更が検出されると、バス・マスタは、命令先行取得ストリームをフローの変更の目標(例えば、分岐命令の目標)に切り替える。したがってこのケースでは、システム・バス上のバス・マスタの現在待ち状態にあるアクセス要求はフロー命令の変更に続く逐次アドレスに対応し、目標命令へのフローの変更のため、この要求はバス・マスタによってもはや必要とされていない。したがって、バス・マスタはその現時点で不必要な現在待ち状態にあるアクセス要求を取り消すことを望む。その現在待ち状態にあるアクセス要求の特性(例えば、アクセス取り消し制御レジスタ内に記憶された制御情報と比較されること)に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかが判定される。許される場合、バス・マスタは現在待ち状態にあるアクセス要求を取り消して待ち時間を減らす。
図1は、データ処理システム10の1実施形態を示す。データ処理システム10は、システム・バス20、バス・マスタ12、メモリ・システム14、バス・スレーブ16、バス・スレーブ18、バス・ブリッジ22、バス・マスタ24、メモリ・システム26、他のスレーブ28、およびシステム・バス30を含む。バス・マスタ12、バス・スレーブ16、バス・スレーブ18、メモリ・システム14、およびバス・ブリッジ22はすべて、システム・バス20に双方向で結合される。バス・ブリッジ22、バス・マスタ24、メモリ・システム26、および他のスレーブ28はすべて、システム・バス30に双方向で結合される。2つのスレーブ16および18だけが図1に示されているが、データ処理システム10はシステム・バス20に結合された任意の数のスレーブを含んでよい。同様に、任意の数のバス・マスタおよびメモリ・システムが、システム・バス20に結合されてよい。また、任意の数のバス・マスタ、スレーブ、およびメモリ・システムが、システム・バス30に結合されてもよく、図1に示されるものに限定されない。
1実施形態では、バス・マスタ12はマイクロプロセッサ、デジタル・シグナル・プロセッサなどのプロセッサであり、あるいはダイレクト・メモリ・アクセス(DMA)ユニットなどの任意のタイプのマスタ・デバイスである。スレーブ16および18は例えば、バス・マスタ12がアクセスすることができるメモリなどの、任意のタイプのスレーブ・デバイス、または、例えば、汎用非同期送受信器(UART)、リアルタイム・クロック(RTC)、キーボード・コントローラなどの周辺機器である。メモリ・システム14は例えば、ランダム・アクセス・メモリ(RAM)などの任意のタイプのメモリ・システムであり、データおよび命令を記憶するための記憶回路に結合されたメモリ・コントローラを含む。
動作の際、バス・マスタ12は例えば、メモリ・システム14、スレーブ16、またはスレーブ18などの、システム・バス20に結合された他のデバイスへのアクセス、あるいはバス・ブリッジ22を介したバス・マスタ24、メモリ・システム26、または他のスレーブ28へのアクセスを要求するアクセス要求をシステム・バス20に対して行う。バス・ブリッジ22は、システム・バス20とシステム・バス30とを連結することを可能にして、バス・マスタ12がシステム・バス30上に存在するデバイス群にもアクセスすることができるようにする。1実施形態では、システム・バス20はシステム・バス30とは異なるバス・プロトコルに従って動作する。バス・ブリッジ22は当技術分野で公知のとおりに動作し、したがって本明細書でより詳細には説明しない。同様に、バス・マスタ12、メモリ・システム14、ならびにスレーブ16および18に関して上に提供したのと同一の例が、バス・マスタ24、メモリ・システム26、および他のスレーブ28にもそれぞれ当てはまる。
図2は、本発明の1実施形態によるバス・マスタ12の1部分を示す。バス・マスタ12は、命令シーケンサ40、命令バッファ・ストレージ66、バス・インターフェース・ユニット(BIU)70、および実行ユニット80を含む。BIU70はシステム・バス20と情報を交換し、命令バッファ・ストレージ66および命令シーケンサ40に双方向で結合される。命令バッファ・ストレージ66は命令シーケンサ40に双方向で結合される。命令シーケンサ40は、命令レジスタ(IR)46、命令復号器44、シーケンサ制御論理42、アクセス取り消し制御レジスタ48、取り消し制御論理50、およびアドレス生成論理52を含む。IR46はアドレス生成論理52および命令復号器44に結合され、復号器44はシーケンサ制御論理42に結合される。シーケンサ制御論理42は取り消し制御論理50およびアドレス生成論理52に結合され、取り消し制御論理50はアドレス生成論理52およびアクセス取り消し制御レジスタ48に結合される。実行ユニット80は命令復号器44およびBIU70に結合され、読み込み/記憶ユニット82を含む。
動作の際、命令シーケンサ40はBIU70を介して、例えば、メモリ・システム14(または他のスレーブ)からの命令およびデータの先行取得および取得を制御する。例えば、命令が命令バッファ・ストレージ66に先行取得されるが、データが取得または先行取得されて、BIU70を介して実行ユニット(例えば、読み込み/記憶ユニット82)に供給される。IR46は復号化されるべき次の命令を命令バッファ・ストレージ66から受け取り、その命令を命令復号器44に供給し、復号器44がその命令を復号化する。次に、命令は実行のために実行ユニット80に供給されて命令がさらに処理される。復号化後の命令の処理は当技術分野で周知であり、したがって本明細書でより詳細には説明されない。つまり、読み込み/記憶ユニット82を含む実行ユニット80は当技術分野で知られているとおりに動作する。
シーケンサ制御論理42は命令バッファ・ストレージ66への命令の先行取得および取得を制御する。例えば、シーケンサ制御論理42は、どのアドレス(および対応する属性)をアドレス/属性74を介してBIU70に生成すべきかをアドレス生成論理52に示す。例えば、1実施形態では、シーケンサ制御論理42は特定のロケーションから開始する命令を逐次先行取得するようにアドレス生成論理52に示す。したがって、BIU70は先行取得されるべきアドレスをアドレス/属性74を介して、アドレス生成論理52から受け取る。アドレス生成論理52は要求72をアサートして、アドレス、および対応する属性がアドレス/属性74上に存在することをBIU70に示し、BIU70は、要求72を介して命令シーケンサ40にハンドシェーク・シグナルを戻す。1実施形態では、BIU70は、システム・バス20がアドレス・キューの中の次のアドレスに対応するアクセス要求を受け取ることができるまで、アドレス/属性74を介して受け取られたアドレスおよび属性が入れられるアドレス・キュー(図示せず)を含む。BIU70は待ち状態にあるアドレス58を命令シーケンサ40に与えて、システム・バス20上で現在待ち状態にある(バスの現在のデータ段階が完了した際の活性化を待っている)アクセス要求に対応するアドレスを命令シーケンサ40(および取り消し制御論理50)に示す。したがって、待ち状態のアドレス58は、アドレス/属性74を介してBIU70に供給される最新のアドレスよりも早期のアドレスである。ハンドシェーク制御、およびその他の制御情報またはステータス情報は、CTL/STATUS76および/または要求72を介してBIU70と命令シーケンサ40との間で通信されることに留意されたい。
1実施形態では、シーケンサ制御論理は、BIU70によって実行ユニット80に供給されるデータの先行取得および取得の制御にも使用されることに留意されたい。例えば、読み込み命令または記憶命令が命令復号器44によって復号化された場合、アドレス生成論理52はデータの読み取り/書き込みが行われるべき適切なアドレスを生成する、あるいは読み込み/記憶ユニット82から対応するアドレスを受け取る。そのアドレスも、アドレス/属性74を介してBIU70に供給される。また、シーケンサ制御論理42は、一続きのロケーションからデータを先行取得するようにアドレス生成論理52に示す。
例えば、分岐命令を検出することなどにより、シーケンサ制御論理42がフローの変更を検出した場合、シーケンサ制御論理42は命令先行取得スチームをフローの変更の目標に切り替える。つまり、シーケンサ制御論理42は、アドレス生成論理52がIR46から供給された情報に基づいて計算する目標アドレスから始まるアドレスを先行取得するようにアドレス生成論理52に示す。生成されたアドレスはBIU70に供給され、BIU70は、新たな命令先行取得ストリームから命令バッファ・ストレージ66に命令を供給する。1実施形態では、新たな命令先行取得ストリームからの命令により、前に存在していた命令が上書きされて、IR46および命令復号器44が正しい命令で動作するようになる。また、1実施形態では、命令バッファ66が空である場合、(取得された命令、または先行取得された命令を含む)データはIR46に直接に供給されて、命令バッファ66を経由しないことに留意されたい。また、ハンドシェーク、およびその他のステータス情報および/または制御情報も、制御/ステータス64を介して命令シーケンサ40と命令バッファ・ストレージ66との間で通信される。
命令復号器44によって復号化された現在の命令に基づいて、シーケンサ制御論理42は、システム・バス20上の(待ち状態のアドレス58に対応する)現在待ち状態にあるアクセス要求が取り消されるべきであると判定する。例えば、フロー変更のケースでは、命令が現時点では、新たな目標アドレスから開始して取得されるため、現在待ち状態にある先行取得アクセス要求は必要とされないことが分かっている。その現在待ち状態にあるアクセス要求が先に完了することを許される場合、現在待ち状態にある先行取得要求(破棄されない)が完了するまで、フロー変更命令の目標が受け入れられ得ず、活性化され得ないので、マスタ12はストールする。別の実施例では、シーケンサ制御論理42は、データ・アクセスが、命令先行取得に優先されることを許すことを望む。その実施例では、現在待ち状態にあるアクセス要求が命令先行取得要求である場合、命令復号器44によって復号化されているデータ・アクセスを要求する命令を検出すると、シーケンサ制御論理42は、データ・アクセスがより早く実行されることが可能であるように、現在待ち状態であるアクセス要求(すなわち、命令先行取得要求)を取り消すことを望む。
シーケンサ論理42が、システム・バス20上の現在待ち状態にあるアクセス要求(待ち状態のアドレス58に対応する)を取り消すことを望む場合、シーケンサ制御論理42は、現在待ち状態にあるアクセス要求が取り消されるべきことを取り消し制御論理50に示す取り消し要求54をアサートする。1実施形態では、バス・マスタ12内部に記憶された(例えば、アクセス取り消し制御レジスタ48内部に記憶された)アクセス取り消し制御情報を使用する取り消し制御論理50は、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかを判定する。それらの特性は、例えば、現在待ち状態にあるアクセス要求に対応するアドレス(例えば、待ち状態のアドレス58)、アクセス・タイプ(例えば、読み取り/書き込み、命令/データ、バースト/非バーストなど)、アクセスのシーケンスまたは順序、アクセスされるアドレス(例えば、いずれのアドレス範囲がアクセスされるか、またはいずれのデバイスがアクセスされるか)、取り消しを要求しているバス・マスタ(例えば、マルチマスタ・システムにおける)、又はこれらの任意の組合せを含む。例えば、1実施形態では、アクセス取り消し制御レジスタ48内部に記憶された情報は特定のアドレス範囲に対応する。つまり、取り消し制御論理50に供給される情報は、現在待ち状態にあるアクセス要求のアドレスに依存する。その実施形態では、アドレス比較論理60を使用して、待ち状態のアドレス58(現在待ち状態にあるアクセス要求に対応する)を様々なアドレス範囲と比較する。取り消し要求を許可する、または許可しないために使用される、アクセス取り消し制御レジスタ48、アドレス比較論理60、およびアドレス範囲、ならびに現在待ち状態にあるアドレス要求の特性は、図3〜図5を参照して、以下により詳細に説明する。
別の実施形態では、バス・マスタ12内部に記憶された(例えば、アクセス取り消し制御レジスタ48内部に記憶された)アクセス取り消し制御情報を使用する取り消し制御論理50は、現在待ち状態にあるアクセス要求に続く新たなアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかを判定する。それらの特性は、例えば、新たなアクセス要求に対応するアドレス、アクセス・タイプ(例えば、読み取り/書き込み、命令/データ、バースト/非バーストなど)、アクセスのシーケンスまたは順序、アクセスされるアドレス(いずれのアドレス範囲がアクセスされるか、またはいずれのデバイスがアクセスされるか)、取り消しを要求しているバス・マスタ(例えば、マルチマスタ・システムにおける)、またはこれらの任意の組合せを含む。例えば、1実施形態では、アクセス取り消し制御レジスタ48内部に記憶された情報は特定のアドレス範囲に対応する。つまり、取り消し制御論理50に供給される情報は新たなアクセス要求のアドレスに依存すること。その実施形態では、アドレス比較論理60を使用して、新たに要求されるアドレスを様々なアドレス範囲と比較する。前述したとおり、取り消し要求を許可する、または許可しないために使用される、アクセス取り消し制御レジスタ48、アドレス比較論理60、およびアドレス範囲、ならびに現在待ち状態にあるアドレス要求の特性は、図3〜図5を参照して以下により詳細に説明する。しかし、現在待ち状態にあるアクセス要求を参照して図3〜図5を参照して提供する説明は、後続のアクセス要求にも同様に当てはまることに留意されたい。
図2を参照すると、取り消し制御論理50が取り消しは許されると判定した場合、取り消し制御論理50は、取り消し識別子62をアサートして、システム・バス20上の現在待ち状態にあるアクセス要求が取り消されるべきことをBIU70に通知する。1実施形態では、現在待ち状態にあるアクセス要求は、システム・バス20に対する新たなアクセス要求が現在待ち状態にあるアクセス要求に取って代わる、または置き換わることにより取り消される。この新たなアクセス要求は、例えば、前述した、BIU70のアドレス・キュー内で待っている次のアクセス要求であっても、BIU70に供給される新たに生成された要求であってもよい。代替の実施形態では、BIU70は、所定の値を命令バッファ・ストレージ66に即時に戻すことにより、現在待ち状態にあるアクセス要求を取り消す。この所定の値は破棄されることになるので、任意のダミー値である。このようにして、マスタ12をストールさせることなしに、現在待ち状態にあるアクセス要求は迅速に完了させられ、次のアクセス要求が開始される。他の代替の実施形態は他の方法を使用して、現在待ち状態にあるアクセス要求を取り消す。いくつかの実施形態では、命令バッファ・ストレージ66にはまったく値が戻されない。
しかし、取り消し制御論理50が現在待ち状態にあるアクセス要求の取り消しを許さない場合、取り消し制御論理50は取り消し識別子62をアサートしない(すなわち、取り消し制御論理は50ネゲートする、または引き続きネゲートする)。そのケースでは、マスタ12は、現在待ち状態にあるアクセス要求が完了するまで待ってから、フローの変更に起因する新たな命令先行取得ストリームに取りかかる。また、取り消し制御論理50は、取り消しが許されなかったことをアドレス制御論理52にも示す。
したがって、1実施形態では、アクセス取り消し制御レジスタ48および取り消し制御論理50を使用して、例えば、ストールを減らす、または防止するために、バス・プロトコルを選択的に優先する。1実施形態では、システム・バス20のバス・プロトコルは、初期化されてシステム・バス20上で現在待ち状態である既存の先行取得アクセス要求が完了後に破棄されても、完了することを許されなければならないことを要求する。例えば、フローの変更のケースでは、命令が、この場合、新たな目標アドレスから開始してフェッチ取得されるため、現在待ち状態にある先行取得アクセス要求は必要とされないことが認識される。しかし、システム・バス20のバス・プロトコルは、システム・バス20上の現在待ち状態にある先行取得が完了されることをそれでも要求して、マスタ12がストールすることを生じさせる可能性がある。しかし、前述したとおり、現在待ち状態にあるアクセス要求が取り消されてそのストールを防止することを、シーケンサ制御論理42が要求する。そのケースでは、アクセス取り消し制御レジスタ内部に記憶された情報、および現在待ち状態にあるアクセス要求の特性に基づいて取り消し制御論理50は、現在待ち状態にあるアクセス要求を取り消して、その要求に、通常どおりに完了させないことにより、バス・プロトコルを選択的に優先することができる。したがって、取り消しが許されるケースでは、バス・プロトコルはストールを防止するために優先される。他の実施形態では、バス・プロトコルの他の態様が、異なるタイプの優先制御レジスタを使用して優先されることが可能である。
本発明の1実施形態による現在待ち状態にあるアクセス要求の取り消しが図6のフロー140に示されている。フロー140はブロック144で開始し、システム・バス20上でアクセス要求が現在待ち状態にあると最初に判定される(さもなければ、取り消されるべき現在待ち状態にあるアクセス要求はまったく存在しない)。次に、フローは判定ダイヤモンド146に進み、現在待ち状態にあるアクセス要求が取り消されるべきかどうかが判定される。したがって、前記のとおり、シーケンサ制御論理42が現在待ち状態にあるアクセス要求が取り消されるべきであると判定する。取り消されるべきであると判定されなかった場合、フローは、ブロック148に進み、システム(例えば、データ処理システム10)が現在待ち状態にあるアクセス要求が完了するのを待つ。しかし、現在待ち状態にあるアクセス要求が取り消されるべき場合、フローは判定ダイヤモンド146からブロック150に進み、現在待ち状態にあるアクセス要求に対応する取り消し要求(例えば、取り消し要求54)が生成される。ブロック150の後、フローは判定ダイヤモンド152に進み、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかが判定される(例えば、取り消し制御論理50によって)。判定ダイヤモンド152で取り消しが許される場合、フローはブロック156に進み、取り消し要求が許され(例えば、取り消し識別子62がアサートされ)、現在待ち状態にあるアクセス要求が取り消される。しかし、取り消しが許されない場合、フローはブロック154に進み、取り消し要求が拒否され、システムは現在待ち状態にあるアクセス要求が完了するのを待つ。したがって、現在待ち状態にあるアクセス要求が選択的に取り消されることが可能である場合に、現在待ち状態にあるアクセス要求がシステム・バス20上に存在する場合にはいつでもフロー140は使用される。
図2を再び参照すると、1実施形態では、取り消し制御論理50はアクセス取り消し制御レジスタ48内部に記憶されたアクセス取り消し制御情報を使用して、現在待ち状態にあるアクセス要求の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるか否かを判定する。図3〜図5は取り消しが許される条件(または、代替的に、取り消しが許されない条件)を示す、アクセス取り消し制御レジスタ48の様々な実施形態を示す。図3の実施形態を参照すると、アクセス取り消し制御レジスタ48が、待ち状態のアクセスのタイプに対応する制御情報、例えば、命令対データ、読み取り対書き込みなどを提供する。例えば、図3のアクセス取り消し制御レジスタ48は以下の3つのフィールドを含む。すなわち、命令読み取り取り消し制御フィールド100、データ読み取り取り消し制御フィールド102、およびデータ書き込み取り消し制御フィールド104である。1実施形態では、各フィールドは、アサートされると、そのタイプのアクセスの取り消しが許されることを示す一ビットである。例えば、命令読み取り取り消し制御フィールド100がアサートされ、且つ現在待ち状態にあるアクセス要求が命令読み取りタイプのアクセスである(例えば、1実施形態では、待ち状態のアドレス58も属性に加えられる、現在待ち状態にあるアクセス要求に対応する属性によって示される)場合、現在待ち状態にあるアクセス要求の取り消しは許される。しかし、命令読み取り取り消し制御フィールド100がネゲートされた場合、取り消しは拒否される。したがって、現在待ち状態にあるアクセス要求の特性(例えば、アクセス要求のタイプが、読み取りであるか、または書き込みであるか、あるいはデータであるか、または命令であるか)に依存して、取り消し制御論理50は、アクセス取り消し制御レジスタ488内部に記憶されたアクセス取り消し制御情報を使用して、シーケンサ制御論理42からの取り消し要求を許す、または拒否する。
図3の実施形態では、アクセス・タイプが、アクセスされるデバイスにかかわらず、取り消しを許すか否かを示すのに使用されることに留意されたい。例えば、命令読み取り取り消し制御フィールドがアサートされた場合、アクセスが、メモリ・システム14に対してであるか、スレーブ16に対してであるか、またはスレーブ18に対してであるかにかかわらず、命令読み取りタイプのアクセスの取り消しは許される。しかし、以下に説明する代替の実施形態では、取り消しは、アクセス・タイプに加え、アクセスされるデバイス(例えば、アクセスされる特定のアドレス範囲)に基づいて許可または拒否される。
別の代替の実施形態では、図3のフィールドは、取り消し制御論理50が、後続の新たな要求に対応するアクセス取り消し制御情報を使用して、シーケンサ制御論理42からの取り消し要求を(現在待ち状態にあるアクセス要求を取り消すように)許す、または拒否することができる現在待ち状態にある要求に続く、新たな要求の特性に対応する。例えば、その実施形態では、命令読み取り取り消し制御フィールド100がアサートされ、且つ現在待ち状態にあるアクセス要求に続く新たなアクセス要求が命令読み取りタイプ・アクセスである場合、現在待ち状態にあるアクセス要求の取り消しは、許される。
図4は、アクセス取り消し制御レジスタ48の別の実施形態を示し、レジスタ48は、以下のいくつか(例えば、4つ)のアドレス範囲取り消し制御フィールド、すなわち、アドレス範囲1取り消し制御フィールド106、アドレス範囲2取り消し制御フィールド108、アドレス範囲3取り消し制御フィールド110、およびアドレス範囲4取り消し制御フィールド112を含む。したがって、図4の各取り消し制御フィールドは特定のアドレス範囲に対応する(代替の実施形態では、アクセス取り消し制御レジスタ48は、任意の数のアドレス範囲取り消し制御フィールドを含む)。例えば、アドレス範囲は、メモリ(図1のシステム・メモリ14などの)の中のすべてのロケーション、または特定のロケーション範囲を識別し、あるいは、スレーブ16内部、またはスレーブ18内部などの、システム・バス20に結合された任意のデバイス内部のすべてのロケーション、または特定のロケーション範囲を識別する。例えば、1実施形態では、アドレス範囲の1つがシステム・バス20に結合されたバス・ブリッジ22のアドレス範囲に対応し、そのアドレス範囲は、システム・バス30に結合された任意のデバイスの取り消しが許されるか、または拒否されるかを示す。代替的に、アドレス範囲の1つは、システム・バス30(バス・ブリッジ22を介してシステム・バス20に結合された)に結合されたデバイス群の任意のデバイス内部のロケーション範囲に特に対応する。
1実施形態では、各アドレス範囲取り消し制御フィールドのアドレス範囲は、図2のアドレス比較論理60などの、アドレス比較論理内部で定義される。アドレス範囲は、例えば、上限と下限を使用することにより、または開始ロケーションおよびマスクを使用することにより定義される。図2の実施形態を参照すると、アドレス比較論理60は、したがって、待ち状態にあるアドレス58(シーケンサ制御論理42が取り消すことを望む現在待ち状態にあるアドレスに対応する)を定義されたアドレス範囲の各範囲と比較して、待ち状態のアドレス58が入る範囲が存在する場合、いずれの範囲に入るかを判定することができる。例えば、待ち状態にあるアドレス58がアドレス範囲2に入る場合、アクセス取り消し制御レジスタ48(図4の)のアドレス範囲2取り消し制御フィールド108を使用して、待ち状態のアドレス58の取り消しが許されるかどうかが示される。例えば、フィールド108がアサートされた場合、取り消しは許されるが、フィールド108がネゲートされた場合、取り消しは拒否される。しかし、待ち状態にあるアドレス58が図4の実施形態に対応する範囲1〜4のいずれにも入らない場合、待ち状態にあるアドレス58の取り消しは許されない。代替の実施形態では、アドレス範囲取り消し制御フィールドによって定義される範囲は、取り消しが許されない範囲を定義し、他のすべてのアドレス・ロケーションは、取り消し可能である。
図3および図4の実施形態は、取り消しが許されるか、または拒否されるかの判定が、アクセス・タイプとアドレス範囲の両方に基づくように組み合わせられることに留意されたい。例えば、1実施形態では、各アドレス範囲に対して、対応する命令読み取り制御フィールド、データ読み取り制御フィールド、およびデータ書き込み制御フィールド(または以上のサブセット)を使用して、取り消しがいつ許されるかをさらに定義する。例えば、図1を参照すると、アドレス範囲取り消し制御フィールドがスレーブ16に対応してアクセス要求がスレーブ16に対して行われた場合、そのアクセス要求に対応する待ち状態のアドレスはその範囲に入る。さらに、スレーブ16に対応する特定のアドレス範囲に対して、ユーザが、命令読み取りではなく、データ読み取りおよびデータ書き込みだけの取り消しを許すことを所望するかもしれない。そのケースでは、その特定のアドレス範囲に固有のデータ読み取り制御フィールド、データ書き込み制御フィールド、および命令読み取り取り消し制御フィールドがアクセスが許されるかどうかを判定するのに使用される。したがって、現在待ち状態にあるアドレスの特性の任意の組合せを使用して、取り消しが許されるかどうかが判定される。
図5は、取り消しが、前のアクセス・タイプに基づいて、またはアクセス・タイプの順序もしくはシーケンスに基づいて許される、または拒否される、アクセス制御レジスタ48のさらに別の実施形態を示す。例えば、図5の実施形態では、アクセス取り消し制御レジスタ48は、命令に続く命令(IFI)取り消し制御フィールド114、命令に続くデータ読み取り(DRFI)取り消し制御フィールド116、命令に続くデータ書き込み(DWFI)取り消し制御フィールド118、データ読み取りに続く命令(IFDR)取り消し制御フィールド120、データ読み取りに続くデータ読み取り(DRFDR)取り消し制御フィールド122、データ読み取りに続くデータ書き込み(DWFDR)取り消し制御フィールド124、データ書き込みに続く命令(IFDW)取り消し制御フィールド126、データ書き込みに続くデータ読み取り(DRFDW)取り消し制御フィールド128、およびデータ書き込みに続くデータ書き込み(DWFDW)取り消し制御フィールド129を含む。したがって、図5の実施形態では、取り消しは、現在待ち状態にあるアクセスおよび前のアクセス・タイプに基づいて許されるか、または拒否される。例えば、現在待ち状態にあるアクセス要求(待ち状態のアドレス58に対応する)の取り消しが所望されると、取り消しは、前のアクセスに基づいて許される、または拒否されるように、シーケンサ制御論理42が前のアクセス・タイプを常に把握する。例えば、前のアクセスがデータ書き込みであり、取り消されるべき現在待ち状態にあるアクセスが命令アクセス(すなわち、命令読み取り)である場合、IFDW取り消し制御フィールド126が取り消し制御論理50によって使用されて、取り消しが許されるかどうかが判定される。したがって、フィールド126がアサートされた場合、現在待ち状態にあるアクセスの取り消しが許されるが、ネゲートされた場合、取り消しは拒否される。別の実施形態では、新たに要求されるアクセスの特性が現在待ち状態にあるアクセスの特性に関連するので、図5に示されたフィールドは新たに要求されるアクセスの特性に基づいて適用される。例えば、現在待ち状態にあるアクセスが命令読み取りであり、新たに要求されるアクセスがデータ書き込みである場合、DWFI取り消し制御フィールド118が調べられて、現在待ち状態にある命令アクセスの取り消しが許されるかどうかが判定される。
図3および図4の実施形態の場合と同様に、図5のフィールド114〜128によって定義される特性は、例えば、図3のフィールド100〜104、および/または図4のフィールド106〜112によって定義される特性などの、他の特性と組合せで使用される。さらに、アクセス取り消し制御レジスタ48は、必要に応じて任意の数のフィールドを有する任意の数のレジスタ(1つまたは複数の)を含む。また、必要に応じて、任意の数のアドレス範囲が定義され、それら範囲の境界は取り消し制御論理50内部に記憶されるか、またはマスタ12内部の別の場所に記憶される。また、図3〜図5の取り消し制御フィールドは、アサートも、ネゲートもされて取り消しが許される、または拒否されることを示す、一ビット・フィールドとして説明されていたことにも留意されたい。しかし、代替の実施形態では、各フィールドは所望に応じて任意の数のビットを含み、取り消しの許可、または取り消しのレベルを示す。また、任意のタイプの記憶回路が、アクセス取り消し制御レジスタ48内部に記憶されるアクセス取り消し制御情報を記憶するために使用される。
また、代替の実施形態では、図3〜図5で説明した現在待ち状態にあるアクセスの特性を使用するのではなく、現在待ち状態にあるアクセス要求に続く新たなアクセスの特性が代わって同様の形で使用されて、現在待ち状態にあるアクセス要求のアクセス取り消しが許されるかどうかを判定することにも留意されたい。したがって、それらの代替の実施形態では、図3〜図5のフィールド内の情報は、現在待ち状態にあるアクセス要求のアクセス取り消しが許されるかどうかを判定するために、現在待ち状態にあるアクセス要求にではなく、新たなアクセス要求に対応する。さらに別の実施形態では、任意の数のアクセス取り消し制御レジスタ、またはアクセス取り消し制御レジスタ内部の任意の数のフィールドが、使用され、現在待ち状態にあるアクセス要求の選択的取り消しは、現在待ち状態にあるアクセス要求と新たなアクセス要求との両方の特性に基づく。例えば、アクセス取り消し制御レジスタ48は、現在待ち状態にあるアクセス・アドレスの特性に対応する1つのレジスタ、または1つのレジスタ・セットを含み、新たな(すなわち、後続の)アクセス要求の特性に対応する別のレジスタ、別のレジスタ、または別のレジスタ・セットを含む。
上に提供した説明は、単一のマスタ・システム(例えば、図1のデータ処理システム10)を参照して説明されていたことに留意されたい。しかし、代替の実施形態では、データ処理システム10は、複数のバス・マスタを含んでもよい。その実施形態では、取り消しが許されるか、または拒否されるかを判定するのに使用される現在待ち状態にあるアクセスの特性は、どのバス・マスタがアクセス要求を行ったかを含んでもよい。例えば、図3〜図4を参照して説明したレジスタのような別個のアドレス取り消し制御レジスタ(またはアドレス取り消し制御レジスタ・セット)が、各レジスタ(またはレジスタ・セット)が異なるバス・マスタに対応する場合に使用される。その実施形態では、いずれのバス・マスタが現在待ち状態にあるアクセス(待ち状態のアドレス58に対応する)を行ったかを、BIU70が取り消し制御論理50に示す。例えば、各バス・マスタは、各アクセス要求にしたがってシステム・バス20を介して供給される、対応する唯一のバス・マスタ識別子を有する。また、各バス・マスタは、必要に応じて、異なって対応するアクセス取り消し制御レジスタおよび/またはアクセス取り消し制御フィールドを有することにも留意されたい。
したがって、図1〜図6に示される実施形態は、現在待ち状態にあるアクセスの1つまたは複数の特性、または現在待ち状態にあるアクセス要求に続く新たなアクセス要求の1つまたは複数の特性、あるいは現在待ち状態にあるアクセス要求と新たなアクセス要求との各要求の1つまたは複数の特性に基づいて現在待ち状態にあるアクセスの選択的取り消しを可能にすることを理解することができよう。このようにして、バス・マスタ12は、アクセス要求をよりよく制御して、ストールを減らし、性能を向上させる。1つまたは複数の特性は、例えば、アクセス・タイプ(例えば、読み取り/書き込み、命令/データ、バースト/非バーストなど)、アクセスのシーケンスまたは順序、アクセスされるアドレス(例えば、いずれのアドレス範囲が、アクセスされるか、またはいずれのデバイスが、アクセスされるか)、取り消しを要求しているバス・マスタ(例えば、マルチマスタ・システムにおける)、またはこれらの任意の組合せを含む。また、図1〜図6を参照して前述した選択的取り消しはアクセスごとに動的に実行されることにも留意されたい。さらに、アクセスの特性は、前述した選択的取り消しと同様に、バス・プロトコルの他の態様を選択的に優先するために使用される。例えば、バースト・アクセスが要求されると、完全に完了されなければならないか否か、またはバースト・アクセスが完了に先立って中断されるか否かである。
また、図1〜図6を参照して前に記したアクセス取り消しの概念は、現在待ち状態にあるアクセス要求の(および/または現在待ち状態にあるアクセス要求に続く、新たなアクセスの)1つまたは複数の特性に基づいて現在待ち状態にあるアクセスも取り消すバス調停にも適用されてよい。例えば、図7は、本発明の1実施形態による、M個のマスタをN個のスレーブに結合することができるシステム相互接続200を示す。例えば、1実施形態では、システム相互接続200はクロスバー・スイッチとして実施される。図示される実施形態では、マスタ・ポート0〜2のそれぞれが、スレーブ・ポート0および1のそれぞれと通信する。各マスタ・ポートには1つまたは複数のマスタが結合されており、スレーブ・ポートのそれぞれには1つまたは複数のスレーブが結合される。複数のマスタ、または複数のスレーブがある特定のポートに結合されている場合、同一のマスタ・ポートに結合された複数のマスタ間、または同一のスレーブ・ポートに結合された複数のスレーブ間で調停を行うのに、さらなる調停論理(図示せず)が必要とされることに留意されたい。また、マスタ・ポートに結合されたマスタのタイプ、およびスレーブ・ポートに結合されたスレーブのタイプは、バス・マスタ12、ならびにスレーブ16および18を参照して前に記したものと同一のタイプであってもよいことにも留意されたい。本明細書で説明される実施形態では、各マスタ・ポートには対応するマスタが結合されているものと想定する。例えば、図示していないが、マスタ・ポート0にはマスタ0が結合され、マスタ・ポート1にはマスタ1が結合され、マスタ・ポート2にはマスタ2が結合されている。同様に、各スレーブ・ポートには対応するスレーブが結合されており、例えば、スレーブ・ポート0はスレーブ0に結合され、スレーブ・ポート1はスレーブ1に結合されているものと想定する。
また、データ処理システム10のような任意のデータ処理システムが、システム・バスの代わりにシステム相互接続200のようなシステム相互接続を利用してもよいことにも留意されたい。例えば、図1を再び参照すると、システム相互接続200がシステム・バス20の代わりに使用されてもよく、バス・マスタ12が、マスタ・ポート0〜2のいずれかに結合され、スレーブ16がスレーブ・ポート0または1のいずれかに結合され、スレーブ18がスレーブ・ポート0または1の他方に結合される。また、バス・マスタ12のようなさらなるマスタがマスタ・ポート0〜2の残りの2つに結合されてもよい。また、図7は3つのマスタ・ポートおよび2つのスレーブ・ポートを示すが、システム相互接続200は必要に応じて、任意の数のマスタ・ポートおよび任意の数のスレーブ・ポートを含んでいると理解されるべきであることにも留意されたい。
図7のシステム相互接続200では、後続の要求を優遇して、マスタからスレーブ・ポートへのアクセス要求を取り消すことが望ましい。例えば、マスタのアクセス要求が進行中である(例えば、現在のアクセス要求のアドレスがスレーブ・ポート上に駆動され、スレーブによって取り込まれ、または受け入れられ、スレーブから対応するデータが戻されるのを待つ)。しかし、データの戻りが遅延して、進行中のアクセス要求の完了に要求される待機状態の数が増える。このアクセス要求が進行中であり、戻りデータを待っている間に、同一のマスタまたは異なるマスタが、別のアクセス要求を同一のスレーブ・ポートに与えてもよい。このアクセス要求はシステム相互接続内部の調停論理によって許可されて、スレーブ・ポート上で駆動される現在待ち状態にあるアクセス要求になる。しかし、許可されて、スレーブ・ポート上に駆動されるものの、この現在待ち状態にあるアクセス要求は、現在進行中のアクセス要求が完了する(すなわち、データが戻される)まで、スレーブによって実行されない。したがって、現在待ち状態にあるアクセス要求の特性(および/または現在待ち状態にあるアクセス要求に続く、新たなアクセス要求の特性)に基づいて、例えば、同一のポートに対する後続のアクセス要求がより高い優先順位を有する場合、その後続のアクセス要求を優遇して現在待ち状態にあるアクセス要求を取り消すことが望ましい。次いで、取り消された現在待ち状態にあるアクセス要求は、後続のアクセス要求がスレーブ・ポート上に駆動されるまで、スレーブ・ポートに対応するスレーブ・ポート論理内部に記憶される。代替的に、取り消された現在待ち状態にあるアクセス要求は、その要求がスレーブ・ポート上に再駆動される後の時点まで記憶される。このようにして効率が改善される。バス調停に関するアクセス取り消しのさらなる詳細を、図7〜図12を参照して説明する。
図7のシステム相互接続200は、マスタ・ポート0〜2、スレーブ・ポート0および1、ならびにスレーブ・ポート0論理、およびスレーブ・ポート1論理を含み、マスタ・ポート0〜2のそれぞれはスレーブ・ポート0論理を介してスレーブ・ポート0に結合され、マスタ・ポート0〜2のそれぞれはスレーブ・ポート1論理を介してスレーブ・ポート1に結合される。スレーブ・ポート0論理は、調停論理216、取り消し制御論理218、マスタ優先順位レジスタ210、パーキング制御レジスタ212、アクセス取り消し制御レジスタ214、およびアクセス・セレクタ208を含む。マスタ・ポート0〜2のそれぞれは、導体202〜204を介して、アクセス・セレクタ208、調停論理216、ならびにスレーブ・ポート0論理の取り消し制御論理218、およびスレーブ・ポート1論理にそれぞれ結合される。アクセス・セレクタ208は、導体202〜204(マスタ・ポート0〜2にそれぞれ対応する)のいずれかからの情報をスレーブ・ポート0における導体205に供給する。つまり、導体205は、対応するスレーブ、スレーブ0に結合されたスレーブ・バスと呼ぶこともできる。調停論理216が現在の許可220をアクセス・セレクタ208および取り消し制御論理218に供給する。また、調停論理216は待ち状態の許可222、および取り消し要求224を取り消し制御論理218に供給し、取り消し識別子226を取り消し制御論理218から受け取る。調停論理216は、マスタ優先順位レジスタ210およびパーキング制御レジスタ212に結合される。取り消し制御論理218は、マスタ優先順位レジスタ210、パーキング制御レジスタ212、およびアクセス取り消し制御レジスタ214に結合される。
スレーブ・ポート1論理内部の回路は図示していないが、以下により詳細に説明するスレーブ・ポート0論理内部の回路と同様であることに留意されたい。つまり、スレーブ・ポート1論理の動作は、スレーブ・ポート0論理の動作と同様である。
動作の際、スレーブ・ポート0論理はマスタ・ポート0〜2に結合されたマスタからのスレーブ・ポート0へのアクセスを制御する。調停論理216が、導体202〜204を介してスレーブ・ポート0へのアクセス要求を受け取り、いずれの要求を許可すべきか、いつ許可すべきかを判定する。次に、調停論理216は、いずれのアクセス要求が許可されたかを示す制御信号である現在の許可220をアクセス・セレクタ208に供給する。現在の許可220に基づいてアクセス・セレクタ208は、マスタ・ポート0〜2のいずれかからの許可されたアクセス要求からの情報をスレーブ・ポート0に供給して、アクセス要求が現在許可されているマスタからのアドレス、データ、および制御信号を、スレーブ0に結合された導体205に駆動する。いずれのアクセス要求を許可するかの判定を行う際に、調停論理216はマスタ優先順位レジスタ210およびパーキング制御レジスタ212を使用する。アクセス要求が現在許可されているマスタから導体205に情報が駆動された後、スレーブ0はアクセス要求を取り込む、または受け入れる。アクセス要求を取り込むと、スレーブ0はそのアクセス要求に対応する要求されたデータを提供するため、または受け取るために、現在許可されているアクセス要求に対応するアドレスを受け取り、記憶する。アクセス要求は取り込まれると、現在進行中のアクセス要求になる。
その後、調停論理216は新たなアクセス要求を、その新たなアクセス要求に対応する現在の許可220をアクセス・セレクタ208に供給することにより、許可する。次に、その新たなアクセス要求(マスタ0〜2のいずれかからの)に対応する情報がアクセス・セレクタ208によってスレーブ0に結合された導体205に駆動される。しかし、その新たなアクセス要求は、前に許可されたアクセス要求が依然として進行中である間、現在待ち状態にあるアクセス要求のままである。つまり、例示する実施形態では、新たなアクセス要求は依然として進行中である前に許可されたアクセス要求が完了するまで、スレーブ0によって取り込まれない、または実行されない。1実施形態では、前に許可されたアクセス要求は、アクセス要求のアドレスに対応するデータがスレーブ0によって受け取られた後、またはマスタ0〜2(マスタ0〜2の要求側マスタが、データを受け入れる)に供給された後、完了する。
前に許可されたアクセス要求が進行中である期間は不明であるので、調停論理216は後続のアクセス要求を優遇して、現在待ち状態にあるアクセス要求(前に許可されたアクセス要求の完了を待っている要求)が取り消されるべきであると判定してもよい。そのケースでは、調停論理216は取り消し要求224をアサートすることにより、現在待ち状態にあるアクセス要求の取り消しを要求する。アクセス取り消し制御レジスタ214からの情報を使用して取り消し制御論理218が、現在待ち状態にあるアクセス要求および/または後続のアクセス要求の少なくとも1つ以上の特性に基づいて現在待ち状態にあるアクセス要求の取り消しが許されるかどうかを判定する(1つ以上の特性は、要求側マスタから導体202〜204を介して供給される情報、待ち状態の許可222を介して供給される現在待ち状態にあるアクセス要求のアドレス、および/またはマスタ優先順位レジスタ210およびパーキング制御レジスタ212の中の情報から決定されることが可能である)。取り消し制御論理218が現在待ち状態にあるアクセスの取り消しが許されると判定した場合、取り消し識別子226をアサートし、取り消しが許されない場合、取り消し識別子226がネゲートされる(またはネゲートされたままである)。取り消しが許される場合、アービタ論理は、現在の許可220、およびアクセス・セレクタ208を介してスレーブ・ポート0における導体205上の現在待ち状態にあるアクセス要求を後続の新たなアクセス要求で置き換える。次に、調停論理216は取り消された現在待ち状態にあるアクセス要求を記憶して、後続の新たなアクセス要求が導体線205上に駆動された後、取り消された要求が再駆動されてよい。代替的に、取り消された要求は後の時点で再駆動されてもよい。
図7の例示される実施形態では、スレーブ・ポート0論理がマスタ優先順位レジスタ210およびパーキング制御論理212を含む。それらのレジスタの実施例が図8および図9にそれぞれ示されている。例えば、図8は各マスタ・ポートに対応するマスタ優先順位フィールド、すなわち、マスタ0優先順位フィールド230、マスタ1優先順位フィールド232、およびマスタ2優先順位フィールド234を含むマスタ優先順位レジスタ210の1実施形態を示す。したがって、各フィールドは対応するマスタ・ポートの優先順位を含む。例えば、3つのマスタ・ポートを含む、例示された実施形態では、2ビット値(例えば、11,10,01,00)を使用して優先順位を示し、最高優先順位のマスタ・ポートに11という優先順位が割り当てられ、次に高い優先順位のマスタ・ポートに10という優先順位が割り当てられ、3番目に高い(すなわち、3つのうち最低の)優先順位のマスタ・ポートに01という優先順位が割り当てられる。そのケースでは00値は使用されない。代替的に、優先順位は、10(最高優先順位のマスタ・ポート)から00(最低優先順位のマスタ・ポート)までの番号が付けられ、値11は使用されない。さらに別の代替の実施形態では、優先順位に10(最低優先順位のマスタ・ポート)から00(最高優先順位のマスタ・ポート)まで番号が付けられる。代替的に、他のスキームが優先順位を各ポートに割り当てるのに使用さる。また、1実施形態では、マスタ・ポートにマスタが結合されていない場合、対応するマスタ優先順位フィールドはそのことを示す所定の値がプログラミングされても、単に最低の優先順位が与えられてもよいことにも留意されたい。
図9は、パーキング・イネーブル・フィールド236及びパーキング・マスタ・フィールド238を含むパーキング制御レジスタ212の1実施形態を示す。1実施形態では、パーキング・イネーブル・フィールド236がアサートされると、対応するスレーブ・ポート(この実施形態では、スレーブ・ポート0)のパーキングがイネーブルにされることを示し、ネゲートされると対応するスレーブ・ポートのパーキングがイネーブルにされないことを示す、1ビット・フィールドである。パーキングがイネーブルにされた場合、パーキング・マスタがパーキング・マスタ・フィールド238の中の値によって与えられる。例えば、パーキング・マスタ・フィールド238はマスタ・ポート0〜2のいずれかを識別する2ビット値である。パーキングがイネーブルにされ、対応するスレーブ・ポートがアイドルである(いずれのマスタ・ポートへの情報の通信も、いずれのマスタ・ポートからの情報の通信も行っていない)場合、スレーブ・ポートはそのパーキング・マスタに自動的に結合されて、パーキング・マスタが調停間隔を要することなしに、スレーブ・ポートと通信する。例えば、スレーブ・ポート0がアイドルである場合、パーキング制御レジスタ212内部の情報を使用する調整論理216は現在の許可220(パーキング・マスタを示す)をアクセス・セレクタ208に供給し、セレクタ208はパーキング・マスタをスレーブ・ポート0の導体205に結合する。そのケースでは、スレーブ・ポートがアイドルである場合(パーキングがイネーブルにされていると想定すると)、パーキング・マスタはスレーブ・ポートへのアクセスを明示的に要求しなくてもよいことに留意されたい。このようにして、パーキングされたマスタが、スレーブ・ポート0の次の要求側である場合、調停間隔はまったく要求されず、パーキングされたマスタのスレーブ・ポート0にアクセスする待ち時間が短縮される。パーキングがイネーブルにされていない場合、調停論理216およびアクセス・セレクタ208は図7を参照して前に記したとおり動作する。
スレーブ・ポート0論理の動作は図12のフロー260で提供される例を参照して、さらに理解することができる。フローはブロック262で始まり、マスタ1からスレーブ・ポート0への現在のアクセス要求(対応するアクセス・アドレスaddrを有する)が進行中である間に、マスタ0からスレーブ・ポート0へのアクセス要求が許可される(対応するアクセス・アドレスaddrを有する)。したがって、図7を参照して前に記したとおり、マスタ0からのアクセス要求は、マスタ1からの進行中の現在のアクセスが完了するまで、スレーブ0によって受け入れられ得ない、または取り込まれ得ない、現在待ち状態にあるアクセス要求になることに留意されたい。次に、フローはブロック264に進み、後続のアクセス要求、または新たなアクセス要求(対応するアクセス・アドレスaddrを有する)がマスタ1から(または、代替の実施形態では、他の任意のマスタから)スレーブ・ポート0に受け取られる。前に記したとおり、現在進行中のアクセス要求(addr)がどれだけ長いか不明であるので、調停論理216は、例えば、新たに受け取られたアクセス要求がより重要である、またはよりタイム・クリティカルであるあるため、その新たに受け取られたアクセス要求(addr)を優遇して、現在待ち状態にあるアクセス要求(addr)を取り消すことを望む。つまり、調停論理216は後に受け取られたアクセス要求を優遇して、待ち状態のアクセス要求を並べ替えることを望む。したがって、図12を再び参照するとフローはブロック266に進み、スレーブ・ポート0に対する現在待ち状態にあるマスタ0アクセス要求(addr)に対応する取り消し要求が生成される。例えば、図7を参照して説明したとおり、調停論理216が取り消し要求224をアサートすることに対応する。
図12を再び参照すると、取り消し要求が生成された後、フローはブロック266から判定ダイヤモンド268に進み、現在待ち状態にあるアクセス要求の1つまたは複数の特性(および/または後続のアクセス要求(addr)の1つまたは複数の特性)に基づいて、現在待ち状態にあるマスタ0アクセス要求(addr)の取り消しが許されるかどうかが判定される。例えば、その判定は、マスタ優先順位レジスタ210、パーキング制御レジスタ212、待ち状態の許可222からの情報、導体202〜204からの情報、またはこれらの任意の組合せ、およびアクセス取り消し制御レジスタ214を使用して、取り消し制御論理218によって行われる。取り消しが許されない場合、フローは判定ダイヤモンド268からブロック270に進み、取り消し要求が拒否され(例えば、取り消し識別子226をネゲートすることにより)、スレーブ・ポート0論理が進行中のアクセス要求(addr)が完了するのを待ち、現在待ち状態にあるアクセス要求(addr)が取り込まれる(そのため、進行中の新たなアクセス要求になる)のを待ってから、後に受け取られたアクセス要求(addr)をスレーブ・ポート0の導体205上に駆動する。取り消しが許された場合、フローは判定ダイヤモンド268からブロック272に進み、現在待ち状態にあるアクセス要求(addr)が取り消される(例えば、取り消し識別子226をアサートすることにより)。そのケースでは、現在待ち状態にあるアクセス要求(addr)は、新たなアクセス要求(addr)が現在待ち状態にあるアクセス要求になるように、新たなアクセス要求(addr)で置き換えられる。このようにして、許可されたアクセス要求の順序は、前の待ち状態のアクセス要求(addr)を新たなアクセス要求(addr)で置き換えることにより、調停論理から見て並べ替えられ、置き換えられたアクセス要求(addr)は、addrの後、または後の何らかの時点で、スレーブ・ポート0上に再駆動されるように、スレーブ・ポート0論理内部に記憶され。スレーブ・ポート0に結合されたスレーブ0から見て、現在待ち状態にあるアクセス要求(addr)は取り消され、新たな現在待ち状態にあるアクセス要求(addr)が代わりに駆動されて、現在進行中のアクセス要求(addr)の完了の後、スレーブによって取り込まれるようになっている。
前述したとおり、アクセス取り消し制御レジスタ214内部の情報は取り消しが許された条件を示す。(代替的に、アクセス取り消し制御レジスタ214は取り消しが許されなかった条件を示す。)したがって、アクセス取り消し制御レジスタ214の中の情報は、現在待ち状態にあるアクセス要求の(または、後続のアクセス要求の)1つまたは複数の特性に基づいて、現在待ち状態にあるアクセス要求を選択的に取り消すために使用される。それらの特性は、図3〜図5を参照して前述した特性のいずれか、または図10および図11を参照して説明される特性のいずれか、またはこれらの任意の組合せを含む。例えば、前に記したとおり、判定を行うために使用される現在待ち状態にあるアクセス要求の特性は、アクセス・タイプ、アドレス範囲、データ・タイプの順序付け、およびこれらの組合せを含む。例えば、アドレス範囲では、1つまたは複数のアドレス範囲が特定のスレーブ・ポート(スレーブ・ポート0などの)を識別するのに使用されるか、特定のスレーブ・ポートを介してアクセスされるロケーションの範囲を識別するために使用される。そのケースでは、図4を参照してやはり前に記したとおり、取り消しは単に、現在待ち状態にあるアクセス要求、または後に受け取られたアクセス要求によってアクセスされる特定のアドレス範囲(例えば、スレーブ・ポート)に基づいて許されるか、または拒否され、あるいは取り消しはアクセスされる特定のアドレス範囲(例えば、スレーブ・ポート)だけでなく、現在待ち状態にあるアクセス要求、または後に受け取られたアクセス要求のさらなる特性に基づいて許される、または拒否される。1実施形態では、アドレス範囲は特定のスレーブ・ポートとして代わりに直接に識別されてもよいことに留意されたい。
図10は、取り消しが許されるか、または拒否されるかの判定が要求側マスタの優先順位(例えば、優先順位デルタ)に基づく、図7のアクセス取り消し制御レジスタ214の1実施形態を示す。例えば、後続のアクセス要求(addr)を行ったマスタ(例えば、図12の実施例におけるマスタ0)が現在待ち状態にあるアクセス要求(addr)を行ったマスタ(例えば、図12の実施例におけるマスタ1)より高い優先順位を有する場合、取り消し制御論理218は(図10のアクセス取り消し制御レジスタ214によって供給される情報を使用して)アクセス取り消しを許す。例えば、図10のアクセス取り消し制御レジスタ214はマスタ・ポートごとに1つの優先順位デルタ取り消し制御フィールド、すなわち、マスタ0優先順位デルタ取り消し制御フィールド240、マスタ1優先順位デルタ取り消し制御フィールド242、およびマスタ2優先順位デルタ取り消し制御フィールド244を含む。この実施例では、各フィールドは、取り消しが許されるために後続のアクセス要求の要求側マスタと現在待ち状態にあるアクセス要求の要求側マスタとの間の優先順位デルタ(すなわち、優先順位の差)がどのようなものでなければならないかを示す。つまり、マスタ0優先順位デルタ取り消し制御フィールド240は、現在待ち状態にあるアクセス要求の取り消しが許されるために、マスタ0が、現在待ち状態にあるアクセス要求の要求側マスタに対して、どのような優先順位デルタを有さなければならないかを示す。
1実施形態では、各フィールドは2ビット値であり、「00」という値は0以上の優先順位デルタが必要とされることを示し、「10」という値は2以上の優先順位デルタが必要とされることを示し、「11」という値は優先順位デルタにかかわらず、そのケースでは取り消しが許されないことを示す。他のnビット値を使用して(nは0より大きい任意の整数である)、取り消しが許されるのに要求される優先順位デルタが示されてもよいことに留意されたい。例えば、図12の実施例を参照すると、マスタ0が現在待ち状態にあるアクセス要求(addr)を行い、マスタ1が後続のアクセス要求(addr)を行う。したがって、取り消しが要求された場合、マスタ0優先順位デルタ取り消し制御フィールド240の中で与えられる情報がマスタ0優先順位フィールド230およびマスタ1優先順位フィールド232(図8に関連して説明した)とともに使用されて、取り消しが許されるかどうかが判定される。マスタ1とマスタ0の間の優先順位デルタ(優先順位デルタ=マスタ1優先順位−マスタ0優先順位)が、マスタ0優先順位デルタ取り消し制御フィールド240によって示されるとおり十分である場合、取り消しは許される。優先順位デルタが1であるが、マスタ0優先順位デルタ取り消し制御フィールド240が2以上のデルタが必要とされることを示す場合、取り消しは許されない。しかし、優先順位デルタが2であった場合、取り消しは許される。マスタ0優先順位デルタ取り消し制御フィールド240が0以上のデルタを示す場合、マスタ1がマスタ0と少なくとも同一の優先順位を有する限り、取り消しは許される。
図11は、最高優先順位のマスタ取り消し制御フィールド246、遅延取り消し制御フィールド248、パーキング・マスタ取り消し制御フィールド250、および非パーキング・マスタ取り消し制御フィールド252を含む様々な異なるフィールドを有する、図7のアクセス取り消し制御レジスタ214の別の実施形態を示す。1実施形態では、フィールド246、250、および252のそれぞれは、アサートまたはネゲートされる1ビット・フィールドである。例えば、最高優先順位のマスタ取り消し制御フィールド246がアサートされた場合、現在待ち状態にあるアクセス要求の取り消しは、後続の要求が最高優先順位を有するマスタからである場合に許される。パーキング・マスタ取り消し制御フィールド250がアサートされた場合、現在待ち状態にあるアクセス要求の取り消しは、後続の要求がパーキング・マスタからである(例えば、パーキング制御レジスタ212の中のパーキング・マスタ・フィールド238によって示される)場合に許される。非パーキング・マスタ取り消し制御フィールド252がアサートされた場合、現在待ち状態にあるアクセス要求の取り消しは、後続の要求がいずれかの非パーキング・マスタ(パーキング・マスタ・フィールド238によって示されるマスタ以外の任意のマスタ)からである場合に許される。遅延取り消し制御フィールド248が、取り消しが許される場合に、dクロック数の待機状態の後に実行されるように、遅延(d)をもたらすために使用され、dは0以上の任意の整数である。例えば、1実施形態では、dが0である場合、遅延取り消しはイネーブルにされない。しかし、dが1以上である場合、現在待ち状態にあるアクセス要求の取り消しは(許される場合)dクロックだけ遅延させられる。代替の実施形態では、遅延値は、取り消しが許される場合、現在進行中の(例えば、addrに対応する)アクセスが完了するためにかかる時間が、遅延以上である場合に限って、取り消しが実際に実行されるように遅延(d)をもたらす。つまり、この代替の実施形態では、現在進行中のアクセス要求が、遅延(d)未満で完了する場合、取り消しは、それ以外で許されている場合でも、行われない。代替の実施形態では、遅延値は取り消しが行われるかどうかを判定するために、代替の形で、現在進行中のアクセスを完了させるのに要求される時間の長さと比較される。つまり、1実施形態では、現在待ち状態にあるアクセスの取り消しは(許される場合)、遅延値と現在進行中のアクセス要求が完了するのにかかる時間との比較が、所定の結果をもたらす場合にだけ行われる。
図10および図11のフィールド240〜252によって定義される特性のそれぞれは、単独で使用されても任意の組合せで使用されてもよく、例えば、図3のフィールド100〜104、および/または図4のフィールド106〜112、および/または図5のフィールド114〜128によって定義される特性などの、他の特性と組合せてさらに使用されてもよいことに留意されたい。さらに、アクセス取り消し制御レジスタ214は、必要に応じて、任意の数のフィールドを有する任意の数のレジスタ(1つまたは複数)を含んでもよい。また、図10および図11の取り消し制御フィールドは、所望に応じて、取り消しの許可、または取り消しのレベルを示す、任意の数のビットを含んでもよいことにも留意されたい。また、任意のタイプの記憶回路が、アクセス取り消し制御レジスタ214内部に記憶されるアクセス取り消し制御情報を記憶するために使用されてもよい。
したがって、調停が、現在待ち状態にあるアクセス要求の特性、または後続のアクセス要求の特性、あるいは現在待ち状態にあるアクセス要求と後続のアクセス要求の両方の特性を使用して、現在待ち状態にあるアクセス要求をどのように選択的に取り消すことができるかを理解することができよう。このようにして待ち時間を減らし、より高い優先順位または重要度のアクセスがより早期に取り込まれることを可能にすることにより、効率が向上させられる。
図1、図2、および図7は、双方向の導体、および単方向の導体の使用を示すが、単方向の導体と双方向の導体の異なる組合せが代わりに使用されてもよいことを理解すべきであることに留意されたい。例えば、複数の単方向の導体が双方向の導体の代わりに使用されてもよい。また、信号は、単一の導体を介して直列に転送されても複数の導体を介して並列に転送されてもよい。代替的に、信号は単一の導体線上または複数の導体上で時間多重化されてもよい。
上記の明細では、本発明を特定の実施形態を参照して説明した。しかし、添付の特許請求の範囲に記載する本発明の範囲を逸脱することなく、様々な変形および変更が行われ得ることが当業者には理解されよう。例えば、データ処理システム10は、単一のチップ上、または集積回路(IC)上、または複数のチップもしくはICの組合せの上に配置されることが可能な、任意のタイプのデータ処理システムであることが可能であることを理解されたい。また、システム相互接続200がマスタおよびスレーブと同一のチップ上または(IC)上に配置されることも可能であり、あるいはマスタおよびスレーブとは別個のIC上に配置されてもよい。したがって、本明細書および図は限定的ではなく例示的であると見なされるべきであり、すべてのそのような変形は本発明の範囲に含まれるべきものとする。
利益、その他の利点、および問題の解決法を、特定の実施形態に関連して以上に説明した。しかし、それらの利益、利点、問題の解決法、ならびに、思い浮かべられる、またはより明白となる利益、利点、または解決法を生じさせる可能性があるあらゆる要素は、請求項のいずれか、またはすべてにとって不可欠な、必須の、または基本的な特徴もしくは要素であると解釈されるべきではない。本明細書で使用する「含む」、「〜からなる」という言葉、またはそれらの言葉の他のあらゆる活用形は、排他的でない包含を扱うものとされ、したがって、諸要素のリストを含む工程、方法、物品、または装置は、それらの要素だけを含むのではなく、明示的にリストアップされていない、またはそのような工程、方法、物品、または装置に本来備わっている他の諸要素も含むことが可能である。
本発明の1実施形態によるデータ処理システムを示すブロック図。 本発明の1実施形態による図1のバス・マスタの1部分を示すブロック図。 図2のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。 図2のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。 図2のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。 本発明の1実施形態による選択的アクセス取り消しを実行するための方法を示す流れ図。 本発明の1実施形態によるシステム相互接続を示すブロック図。 図7のマスタ優先順位レジスタの1実施形態を示すブロック図。 図7のパーキング制御レジスタを示すブロック図。 図7のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。 図7のアクセス取り消し制御レジスタの様々な実施形態を示すブロック図。 本発明の代替の実施形態による選択的アクセス取り消しを実行する実施例を示す流れ図。

Claims (32)

  1. 複数のマスタ・ポートと少なくとも1つのスレーブ・ポートの間にバス調停を有するデータ処理システムにおけるアクセス取り消しの方法であって、
    取り消しが許されるまたは許されない少なくとも1つの条件を示すアクセス取り消し制御情報を記憶すること、
    第1のスレーブ・ポートへの第1のアクセス・アドレスに対応する第1のアクセス要求を、該第1のスレーブ・ポートへの第2のアクセス・アドレスに対応する第2のアクセス要求が進行中に許可すること、
    該第1のアクセス要求を許可した後、該第1のスレーブ・ポートへの第3のアクセス・アドレスに対応する第3のアクセス要求を受け取ること、
    該第1のアクセス要求の取り消しを要求すること、
    該アクセス取り消し制御情報を使用して、該第1のアクセス要求または該第3のアクセス要求の少なくともいずれかの要求の少なくとも1つの特性に基づいて該第1のアクセス要求を選択的に取り消すこと
    からなる方法。
  2. 前記少なくとも1つの特性はアクセス・タイプを含む、請求項1に記載の方法。
  3. 前記アクセス・タイプは読み取りアクセスまたは書き込みアクセスのいずれかである、請求項2に記載の方法。
  4. 前記アクセス・タイプは命令アクセスまたはデータ・アクセスのいずれかである、請求項2に記載の方法。
  5. 前記アクセス・タイプはバースト・アクセスまたは非バースト・アクセスのいずれかである、請求項2に記載の方法。
  6. 前記第1のアクセス要求は第1のマスタによって要求され、前記第3のアクセス要求は第2のマスタによって要求され、前記少なくとも1つの特性は該第1のマスタの優先順位または該第2のマスタの優先順位の少なくともいずれかを含む、請求項1に記載の方法。
  7. 前記アクセス取り消し制御情報は最高優先順位のマスタによる取り消しがいつ許されるかを示し、前記アクセス取り消し制御情報を使用して前記第1のアクセス要求を選択的に取り消すことは、前記第2のマスタが該最高優先順位のマスタであるかどうかを判定することを含む、請求項1に記載の方法。
  8. 前記第1のアクセス要求を選択的に取り消すことは前記第1のアクセス要求と前記第2のアクセス要求の各要求の少なくとも1つの特性に基づく、請求項1に記載の方法。
  9. 前記第1のアクセス要求は第1のマスタによって要求され、前記第2のアクセス要求は第2のマスタによって要求され、前記少なくとも1つの特性は前記第1のマスタと前記第2のマスタとの間の優先順位の差を含む、請求項1に記載の方法。
  10. 前記アクセス取り消し制御情報は遅延値を与え、前記第1のアクセス要求の取り消しが許される場合、前記第1のアクセス要求の取り消しは該遅延値後まで行われない、請求項1に記載の方法。
  11. 前記アクセス取り消し制御情報は遅延値を与え、前記第1のアクセス要求の取り消しが許される場合、前記第1のアクセス要求の取り消しは、前記遅延値と前記第2のアクセス要求が完了するのにかかる時間との比較が所定の結果をもたらす場合にだけ行われる、請求項1に記載の方法。
  12. 前記アクセス取り消し制御情報はパーキング・マスタによる取り消しがいつ許されるかを示し、前記第1のアクセス要求と前記第3のアクセス要求の前記少なくともいずれかの要求の前記少なくとも1つの特性は前記第1のアクセス要求と前記第3のアクセス要求の前記少なくともいずれかの要求の要求側マスタを含む、請求項1に記載の方法。
  13. 前記アクセス取り消し制御情報を使用して前記第1のアクセス要求を選択的に取り消すことは前記要求側マスタが前記パーキング・マスタであるかどうかを判定することを含む、請求項12に記載の方法。
  14. 前記アクセス取り消し制御情報は対応するアドレス範囲で取り消しが許される、または許されない少なくとも1つの条件を与え、前記第1のアクセスまたは前記第3のアクセスの前記少なくとも1ついずれかのアクセスの前記少なくとも1つの特性は前記第1のアドレスが含まれるアドレス範囲、または前記第3のアドレスが含まれるアドレス範囲の少なくともいずれかを含む、請求項1に記載の方法。
  15. 前記アクセス取り消し制御情報が前記少なくとも1つの特性に基づいて取り消しが許されることを示す場合、選択的に取り消すことは、
    前記第3のアクセス要求を優遇して前記第1のアクセス要求を取り消すこと
    を備える、請求項1に記載の方法。
  16. 前記アクセス取り消し制御情報が前記少なくとも1つの特性に基づいて取り消しが許されることを示す場合、選択的に取り消すことは、
    前記第1のアクセス要求と前記第3のアクセス要求とを並べ替えること
    を備える、請求項1に記載の方法。
  17. 相互接続回路であって、
    第1のマスタ・ポートと、
    第2のマスタ・ポートと、
    スレーブ・ポートと、
    該第1のマスタ・ポート、該第2のマスタ・ポート、および該スレーブ・ポートに結合された調停論理であって、該第1のマスタ・ポートおよび該第2のマスタ・ポートから該スレーブ・ポートへのアクセス要求を調停する調停論理と、
    アクセス要求の取り消しが許される少なくとも1つの条件を示す取り消し制御情報を記憶するための取り消し制御記憶回路と、
    該調停論理および該取り消し制御記憶回路に結合された取り消し制御論理であって、該調停論理から取り消し要求を受け取ったことに応答して、該取り消し制御情報を使用して待ち状態にあるアクセス要求または後に受け取られたアクセス要求の少なくともいずれかの要求の少なくとも1つの特性に基づいて該調停論理によって前に許可されている、待ち状態にあるアクセス要求の取り消しを選択的に許す取り消し制御論理と
    を備える相互接続回路。
  18. 前記調停論理および前記取り消し制御論理に結合されたパーキング制御レジスタ回路であって、前記第1のマスタ・ポートまたは前記第2のマスタ・ポートに結合されたいずれのマスタがパーキング・マスタであるかを示す、パーキング制御レジスタ回路、
    をさらに含み、
    前記アクセス取り消し制御レジスタは該パーキング・マスタによるアクセス要求の取り消しがいつ許されるかを示し、前記少なくとも1つの特性は前記待ち状態にあるアクセス要求または前記後に受け取られたアクセス要求の前記少なくともいずれかの要求の要求側マスタが、前記パーキング・マスタであるかどうかを含む、
    請求項17に記載の相互接続回路。
  19. 前記調停論理および前記取り消し制御論理に結合されたマスタ優先順位記憶回路であって、前記第1のマスタ・ポートに結合された第1のマスタと前記第2のマスタ・ポートに結合された第2のマスタのそれぞれに対応する優先順位を記憶するためのマスタ優先順位記憶回路をさらに備え、前記待ち状態にあるアクセス要求と前記後に受け取られたアクセス要求との前記少なくともいずれかの要求の前記少なくとも1つの特性は要求側マスタの優先順位を含む、
    請求項17に記載の相互接続回路。
  20. 前記取り消し制御論理は、前記待ち状態にあるアクセス要求と前記後に受け取られたアクセス要求の各要求の少なくとも1つの特性に基づいて前記待ち状態にあるアクセス要求を選択的に取り消し、該少なくとも1つの特性は前記待ち状態にあるアクセス要求の要求側マスタと前記後に受け取られたアクセス要求の要求側マスタとの間の優先順位の差を含む、請求項19に記載の相互接続回路。
  21. 前記アクセス取り消し制御情報は最高優先順位のマスタによる取り消しがいつ許されるかを示し、前記取り消し制御論理は前記待ち状態にあるアクセス要求と前記後に受け取られたアクセス要求の前記少なくともいずれかの要求の前記少なくとも1つの特性の要求側マスタが該最高優先順位のマスタであるかどうかを判定する、請求項19に記載の相互接続回路。
  22. 前記アクセス取り消し制御情報は遅延値を与え、前記現在待ち状態にあるアクセス要求の取り消しが前記取り消し制御論理によって許される場合、前記現在待ち状態にあるアクセス要求の取り消しは遅延値量のクロック数の後に行われる、請求項17に記載の相互接続回路。
  23. 前記現在待ち状態にあるアクセス要求の取り消しが前記取り消し制御論理によって許される場合、前記相互接続回路が前記後に受け取られたアクセス要求を優遇して前記現在待ち状態にあるアクセス要求を取り消す請求項17に記載の相互接続回路。
  24. 前記現在待ち状態にあるアクセス要求の取り消しが前記取り消し制御論理によって許される場合、前記相互接続回路は前記現在待ち状態にあるアクセス要求と前記後に受け取られたアクセス要求を並べ替える、請求項17に記載の相互接続回路。
  25. 前記少なくとも1つの特性はアクセス・タイプを含む、請求項17に記載の相互接続回路。
  26. 前記アクセス・タイプは読み取りアクセスまたは書き込みアクセスのいずれかである、請求項25に記載の相互接続回路。
  27. 前記アクセス・タイプは命令アクセスまたはデータ・アクセスのいずれかである、請求項25に記載の相互接続回路。
  28. 前記少なくとも1つの特性は現在待ち状態にあるアクセス要求、または後に受け取られたアクセス要求の少なくともいずれかの要求が含まれるアドレス範囲を含む、請求項17に記載の相互接続回路。
  29. 複数のマスタ・ポートと少なくとも1つのスレーブ・ポートとの間にバス調停を有するデータ処理システムにおけるアクセス取り消しの方法であって、
    取り消しが許される、または許されない少なくとも1つの条件を示すアクセス取り消し制御情報を記憶すること、
    第1のスレーブ・ポートへの、第1のアクセス・アドレスに対応する第1のマスタからの第1のアクセス要求を、該第1のスレーブ・ポートへの、第2のアクセス・アドレスに対応する第2のアクセス要求が進行中に許可すること、
    該第1のアクセス要求を許可した後、該第1のスレーブ・ポートへの、第3のアクセス・アドレスに対応する第2のマスタからの第3のアクセス要求を受け取ること、
    該第1のアクセス要求の取り消しを要求すること、
    該アクセス取り消し制御情報を使用して、該第1のマスタと該第2のマスタの少なくともいずれかのマスタの優先順位に基づいた該第1のアクセス要求を選択的に取り消すこと
    を備える方法。
  30. 前記アクセス取り消し制御情報は最高優先順位のマスタによる取り消しがいつ許されるかを示し、前記アクセス取り消し制御情報を使用して前記第1のアクセス要求を選択的に取り消すことは、前記第2のマスタが該最高優先順位のマスタであるかどうかを判定することを含む、請求項29に記載の方法。
  31. 前記アクセス取り消し制御情報は取り消しが許される前記第1のマスタと前記第2のマスタとの間における最小の優先順位の差を示す、請求項29に記載の方法。
  32. 前記少なくとも1つの特性は前記第1のマスタと前記第2のマスタの間における優先順位の差を含む、請求項31に記載の方法。
JP2007534609A 2004-09-30 2005-09-01 バス・アクセス取り消しを伴うデータ処理システム Expired - Fee Related JP4848375B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/955,558 US7340542B2 (en) 2004-09-30 2004-09-30 Data processing system with bus access retraction
US10/955,558 2004-09-30
PCT/US2005/031114 WO2006039039A2 (en) 2004-09-30 2005-09-01 Data processing system with bus access retraction

Publications (3)

Publication Number Publication Date
JP2008515090A true JP2008515090A (ja) 2008-05-08
JP2008515090A5 JP2008515090A5 (ja) 2008-08-14
JP4848375B2 JP4848375B2 (ja) 2011-12-28

Family

ID=36100534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007534609A Expired - Fee Related JP4848375B2 (ja) 2004-09-30 2005-09-01 バス・アクセス取り消しを伴うデータ処理システム

Country Status (6)

Country Link
US (1) US7340542B2 (ja)
EP (1) EP1810158A2 (ja)
JP (1) JP4848375B2 (ja)
KR (1) KR20070058561A (ja)
CN (1) CN100578475C (ja)
WO (1) WO2006039039A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725417B1 (ko) * 2006-02-22 2007-06-07 삼성전자주식회사 우선 순위에 따른 플래시 메모리의 연산 처리 장치 및 방법
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
KR100951126B1 (ko) * 2008-02-18 2010-04-07 인하대학교 산학협력단 버스 중재 방법 및 장치
US8667226B2 (en) 2008-03-24 2014-03-04 Freescale Semiconductor, Inc. Selective interconnect transaction control for cache coherency maintenance
KR100973419B1 (ko) * 2008-06-11 2010-07-30 인하대학교 산학협력단 버스 중재 방법 및 장치
US8370551B2 (en) * 2010-01-08 2013-02-05 International Business Machines Corporation Arbitration in crossbar interconnect for low latency
US8397006B2 (en) * 2010-01-28 2013-03-12 Freescale Semiconductor, Inc. Arbitration scheme for accessing a shared resource
CN102207919A (zh) * 2010-03-30 2011-10-05 国际商业机器公司 加速数据传输的处理单元、芯片、计算设备和方法
JP2014023094A (ja) * 2012-07-23 2014-02-03 Fujitsu Ltd パケットスイッチ、伝送装置及びパケット伝送方法
CN112241390B (zh) * 2020-10-22 2022-08-30 上海兆芯集成电路有限公司 主机互连装置及其方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
JPH06139188A (ja) * 1992-10-30 1994-05-20 Fujitsu Ltd バス制御装置及び方法
JP2002041445A (ja) * 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
JP2002063130A (ja) * 2000-08-23 2002-02-28 Nec Corp バス調停システム
JP2005025670A (ja) * 2003-07-02 2005-01-27 Matsushita Electric Ind Co Ltd バス制御システム、バスマスタ及びバスアービタ
JP2005158035A (ja) * 2003-11-05 2005-06-16 Matsushita Electric Ind Co Ltd 調停回路及びこれに備える機能処理回路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620278A (en) * 1983-08-29 1986-10-28 Sperry Corporation Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus
US20020144054A1 (en) * 2001-03-30 2002-10-03 Fanning Blaise B. Prefetch canceling based on most recent accesses

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
JPH06139188A (ja) * 1992-10-30 1994-05-20 Fujitsu Ltd バス制御装置及び方法
JP2002041445A (ja) * 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
JP2002063130A (ja) * 2000-08-23 2002-02-28 Nec Corp バス調停システム
JP2005025670A (ja) * 2003-07-02 2005-01-27 Matsushita Electric Ind Co Ltd バス制御システム、バスマスタ及びバスアービタ
JP2005158035A (ja) * 2003-11-05 2005-06-16 Matsushita Electric Ind Co Ltd 調停回路及びこれに備える機能処理回路

Also Published As

Publication number Publication date
KR20070058561A (ko) 2007-06-08
JP4848375B2 (ja) 2011-12-28
CN100578475C (zh) 2010-01-06
EP1810158A2 (en) 2007-07-25
WO2006039039A2 (en) 2006-04-13
CN101027656A (zh) 2007-08-29
US20060069839A1 (en) 2006-03-30
WO2006039039A3 (en) 2007-04-05
US7340542B2 (en) 2008-03-04

Similar Documents

Publication Publication Date Title
JP4848375B2 (ja) バス・アクセス取り消しを伴うデータ処理システム
US6073199A (en) History-based bus arbitration with hidden re-arbitration during wait cycles
KR101426461B1 (ko) 액세스 레이턴시를 감소시키기 위한 버스 중재 기술들
JP3898899B2 (ja) バスシステム
KR100899951B1 (ko) 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
US7013357B2 (en) Arbiter having programmable arbitration points for undefined length burst accesses and method
US20160140067A1 (en) Slave side bus arbitration
JP2008515091A (ja) バス・アクセス取り消しを伴うデータ処理システム
JP2004318876A (ja) マルチサイクル・データ転送要求のための分散型アービトレーションを管理する方法およびシステム
US6275890B1 (en) Low latency data path in a cross-bar switch providing dynamically prioritized bus arbitration
US9984014B2 (en) Semiconductor device
JP2004005677A (ja) 集積回路装置のバスアービター
JP2002304369A (ja) バスシステム
JP2007018280A (ja) バスシステムの制御方法及び制御回路
KR100973419B1 (ko) 버스 중재 방법 및 장치
WO1997029432A1 (en) Apparatus for programmably defining the access latency
JP4684577B2 (ja) 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法
KR100451789B1 (ko) 자원 공유를 위한 프로세서 중재장치 및 중재방법
US5799160A (en) Circuit and method for controlling bus arbitration
JP2008097462A (ja) 情報処理装置及び情報処理方法
JPH1125035A (ja) バス調停装置
JPH05189311A (ja) キャッシュメモリ・システム
JP2000250852A (ja) バス調停装置、バスシステムおよびバス調停方法
JP2002366511A (ja) バス調停回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080624

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110920

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111017

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4848375

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S631 Written request for registration of reclamation of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313631

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees