(57)【特許請求の範囲】
【請求項１】
バスコントローラによるバス転送を制御するためのバスプロトコル方法であって、
バスコントローラからの第１の制御信号を肯定することによりマスタ回路にバスの所有権を承認する段階であって、この承認は前記第１の制御信号によって決定される前記段階、
バス転送が開始されるべきことを示す第２の制御信号の肯定に応答して前記マスタ回路と前記マスタ回路の外部の装置との間でデータを転送する段階、
前記バスコントローラから前記マスタ回路に第３の制御信号を送信する段階であって、該第３の制御信号は前記マスタ回路に対し前記マスタ回路のバス所有権が前記第１の制御信号が肯定解除された時に現在のバスサイクルの終了時に放棄されるべきであるか、あるいは前記第１の制御信号が肯定解除された時に前記マスタ回路の裁量により終了されるべきであるかを指示する前記段階、
前記マスタ回路に対し前記バスの所有権が放棄されるべきことを指示するために前記第１の制御信号を肯定解除する段階、
前記マスタ回路の外部に第４の制御信号を肯定することにより前記マスタ回路がそのバスの所有権を終了したことを通信する段階であって、前記第４の制御信号は前記マスタ回路によって肯定され、前記第４の制御信号は前記第３の制御信号および前記第１の制御信号の状態によって決定される時間に肯定され、前記第４の制御信号は前記マスタ回路によるバスの所有権の間にトライステート化され、前記マスタ回路によるバスの所有権の欠如の間にトライステート化され、かつバスの所有権が前記マスタ回路に関して承認された状態と承認されない状態との間で遷移している場合にのみ肯定される前記段階、
を具備することを特徴とするバスコントローラによるバス転送を制御するためのバスプロトコル方法。
【請求項２】
バスを介して第１の回路が第２の回路へとインタフェースできるようにするためのバスプロトコル装置であって、
前記バスの所有権が要求されていることを示すために前記第１の回路からの出力として第１の制御信号を提供するための手段、
前記第１の回路が前記バスの所有権を承認されるか否かを示すために使用される第２の制御信号を前記第１の回路への入力として受信するための手段、
前記第１の回路への入力として第３の制御信号を受信するための手段であって、該第３の制御信号は前記第１の回路が前記第１の回路によって行なわれている現在のバスサイクルの終りにバスの所有権を放棄しなければならないことを示すために第１の論理状態にセットされ、かつ前記第３の制御信号は前記第１の回路が前記第１の回路によって決定される都合の良い時間にバスの所有権を放棄すべきことを示すために第２の論理状態にセットされるもの、そして
前記第１の回路からの出力として第４の制御信号を提供するための手段であって、前記第４の制御信号は前記第１の回路が前記バスの所有権を放棄する用意ができている場合にのみ肯定され、前記第４の制御信号は前記第１の回路がバスの制御を有する第１の期間の間トライステート化され、前記第１の回路がバスの制御を欠いている第２の期間の間トライステート化され、かつ前記第１の期間から前記第２の期間へ時間的に遷移している場合に２つのクロックサイクル時間に時間順次的なかつ相互に排他的な様式で高電圧および低電圧の双方に肯定されるもの、
を具備することを特徴とするバスを介して第１の回路が第２の回路へとインタフェースできるようにするためのバスプロトコル装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般的にはデータプロセッサに関し、かつより特定的には、データプロセッサが他の回路と通信できるようにするバスプロトコルに関する。
【０００２】
【従来の技術】
バスプロトコル（ｂｕｓ  ｐｒｏｔｏｃｏｌ）の性能は集積回路および／または集積回路システムの総合的な性能に直接影響を与える。知られたバスプロトコルは同期バスシステムにおいて現在のマスタが一連のバック−バック（背中合せ：ｂａｃｋ−ｂａｃｋ）でロックされた転送シーケンスを行なっている場合にバスの所有権を他のマスタに転送できるポイントを外部バス調停装置（アービタ：ａｒｂｉｔｅｒ）が必ずしも決定できるとは限らないという問題を有する。ロックされた転送の発生は、一般的には、知られたシステムにおいては現在のマスタが前記転送または転送のシーケンスが原子的（ａｔｏｍｉｃ：すなわち分割できないこと）であると考えていることを示すロック（ＬＯＣＫ）信号によって表示される。しかしながら、もしマスタがいくつかの一連のこれらの原子的なロックされたシーケンスをバック−バックで有しており、かつもし外部アービタがこれらの原子的なシーケンスの当接（ａｂｕｔｍｅｎｔｓ）に気が付くことができれば、外部アービタがバスの所有権をマスタから取り上げかつそれを前記シーケンスの間の境界でより必要とするマスタに与えることが完全に許容されるであろう。
【０００３】
知られたバスプロトコルはバスマスタが長い一連のバック−バックロックされた転送を行なっている時間の間における他のバスマスタの窮乏（ｓｔａｒｖａｔｉｏｎ）を防ぐことができない。図４は、介在するバスクロックなしに２つの連続するロックされたシーケンスを行なっている同期バスの動作を示す。図４から、外部アービタは介在するバスロックを持たない単一の、数多くの転送のロックされたシーケンス、および複数のシーケンスの間での差を決定できないことが分かる。これはアービタが他のバスマスタにバスを所有させる必要があるが中断なしにリンクされたロックシーケンスのロックされた性質を保存する必要がある場合に問題である。ロックされたシーケンスの中断がないことを保証するためには、アービタは現在バスを使用しているマスタに対しＢＧ（バス承認）を否定する前に前記ＬＯＣＫ信号が否定されるのを待つことを強要される。前記ＬＯＣＫ信号はシーケンスの間では否定されないから、現在のマスタはバック−バックロックされたシーケンスを走行させることにより効果的にバスを独占することができる。
【０００４】
知られたバスプロトコルは前記ＬＯＣＫ信号がロックされたシーケンスにおける最後の転送の終了によって肯定されることを要求することに注意を要する。ＬＯＣＫ信号はロックされたシーケンス内では全ての転送に対して肯定された状態に留まらなければならないが、それはスレイブ（ｓｌａｖｅ）がいずれの転送についても転送リトライの必要性を通知するかも知れないからである。
【０００５】
【発明が解決しようとする課題】
１つの知られたバスプロトコルは上に述べた問題をロックされたシーケンスの間で１つまたは２つのデッドクロック（ｄｅａｄ  ｃｌｏｃｋｓ）を加えることによって解決しようと試みている。これらのデッドクロックは結局ロックされたシーケンスを破ることになるか、あるいは性能を低下させかつ緊急の要求を有する他のマスタに対するバスの潜伏性（ｌａｔｅｎｃｙ）を増大させるという望ましくない副作用を持つことが発見された。上に述べた問題をさらに解決するために、バスプロトコルは最後にロックされたバスサイクルのステータスの表示子（ＬＯＣＫＥ）を導入して前記アービタがロックされたシーケンスの最後の転送の間におけるマスタへのＢＧの否定および該転送とのオーバラップ調停を可能にしている。しかしながら、前記外部バスアービタがバス処理のロックされた完全性を保つためにＢＧを非同期的に再び肯定しなければならない場合がバスサイクルのリトライの間に存在する。図５はこのような場合を示す。図５においては、バスアービタはそれが前記ＬＯＣＫＥが肯定されかつＢＲ（バス要求）が否定されているのを見たときにバスサイクル２（ＢＣ２）においてＢＧを否定することに注目すべきである。しかしながら、転送のリトライは通知され（ＴＲＡが肯定される）かつロックされたシーケンスの破壊を防止するために外部バスアービタは非同期的にＢＧを再肯定しなければならない。これは上に述べた問題を解決する外部バスアービタの設計を非常に困難にするが、それは前記リトライ信号（ＴＲＡ）もまた非常に高速度でサンプルされなければならないからである。これは非常に高いプロセッサのクロック周波数ではほとんど不可能でありかつ総合的に同期的な設計にとってもほとんど不可能であろう。
【０００６】
知られたオーバラップしたバス調停プロトコルはまた第２のマスタがバスマスタの内部の非同期の、セルフタイム化された、またはチックをベースとした（ｔｉｃｋ  ｂａｓｅｄ）論理に頼ることなくバスを使用し始める間に、現在のバスマスタによるバスの保有の終了を表示する問題を有する。この問題を処理するための知られたプロトコルはバスビジー（Ｂｕｓ  Ｂｕｓｙ）プロトコルである。該バスビジー（ＢＢ）プロトコルを使用すると非常に高いバス周波数では問題が発生する。図１は、知られたシステムにおける前記バスビジープロトコルの動作を示す。通常１つのシステムにおいて、主（ｐｒｉｍａｒｙ）マスタのバスビジー（ＰＭ＿ＢＢ＊）および代替（ａｌｔｅｒｎａｔｅ）バスマスタのバスビジー（ＡＭ＿ＢＢ＊）信号は一緒に結ばれかつ抵抗によってＶｄｄにプルアップされるが、これらの信号はここではバスの支配の転送時間におけるバスビジー信号の競合の可能性を示すために分離されている。図１のシステムはチックをベースとした内部クロックを使用しかつ上に述べた問題をデッドチック（ｄｅａｄ  ｔｉｃｋ）によるターンオンおよびターンオフ時間を分離することにより解決しようと試みる。チック（ｔｉｃｋ）は全クロック期間または周期の１部である。前記デッドチック方法は低いバス周波数ではうまく動作するが、高いバス周波数ではうまく動作せず、それはバス化されたまたはバスに接続された（ｂｕｓｅｄ）バスビジー信号のより狭いチック時間およびＲＣ定数のためである。
【０００７】
したがって、本発明の目的は、上述の従来の技術における問題を解決し、高いバス周波数においても適確なバス動作を可能にするバス調停プロトコルを実現することにある。
【０００８】
【課題を解決するための手段および作用】
上に述べた従来技術の不都合は本発明によって克服されかつ他の利点も得られる。１つの形態では、本発明はバス転送を制御するためのバスプロトコル方法からなる。該方法は、第１の制御信号を肯定する（ａｓｓｅｒｔ）ことによりマスタ回路にバスの所有権を承認することによって開始される。第２の制御信号の肯定に応答して、データが前記マスタ回路と該マスタ回路の外部の装置との間で転送される。第３の制御信号が前記マスタ回路に送られる。該第３の制御信号はマスタ回路に該マスタ回路のバスの所有権が現在のバスサイクルの終りに放棄されるべきか、あるいは前記第１の制御信号が否定されて該マスタ回路にバスの所有権が放棄されるべきであることを指示した場合にマスタ回路の自由裁量で終了すべきかを示す。第４の制御信号が肯定されてマスタ回路の外部に前記マスタ回路がそのバスの所有権を終了したことを指示する。該第４の制御信号は前記第３の制御信号および前記第１の制御信号の状態によって決定される時間に肯定される。
【０００９】
他の形態では、本発明は第１の回路がバスを通して第２の回路にインタフェースできるようにするためのバスプロトコルを構成する。回路が前記第１の回路からの出力として第１の制御信号を提供しバスの所有権が要求されていることを指示する。受信のための回路が第１の回路への入力として該第１の回路がバスの所有権を承認されるか否かを示すために使用される第２の制御信号を受け入れる。提供するための回路が第３の制御信号を第１の回路からの出力として発生し、この場合該第３の制御信号は第１の回路がバスの所有権を放棄する用意ができている場合にのみ肯定される。
【００１０】
さらに他の形態では、本発明は制御信号を受信するための回路を使用してバスを介して第１の回路が第２の回路へとインタフェースできるようにするバスプロトコルを構成し、この場合前記制御信号は第１の回路への入力である。該制御信号は第１の回路が該第１の回路によって行なわれている現在のバスサイクルの終りにバスの所有権を放棄しなければならないことを示すために第１の論理状態にセットされる。前記制御信号は前記第１の回路が前記第１の回路によって決定される都合の良い時間にバスの所有権を放棄すべきであることを示すために第２の論理状態にセットされる。
【００１１】
【実施例】
本発明は図面と共に以下の詳細な説明を参照することによりさらに明瞭に理解できるであろう。
【００１２】
図示の簡単化および明瞭化のために図面に示された各要素は必ずしも同一尺度で描かれていないことが理解できるであろう。例えば、前記要素のいくつかの寸法は明瞭化のため他の要素に対し誇張されている。さらに、適切であると考えられる場合には、参照数字は対応するまたは類似の要素を示すために各図面の間で反復されている。
【００１３】
ここに教示されたバスを動作させるバスプロトコルおよび方法はバスマスタの内部の非同期の、セルフタイム化された（ｓｅｌｆ−ｔｉｍｅｄ）、またはチックをベースとした（ｔｉｃｋ  ｂａｓｅｄ）論理に頼ることなく第２のマスタがバスを使用し始めている間に現在のバスマスタによるバスの保有の終了を示すオーバラップしたバス調整システム（ｏｖｅｒｌａｐｐｅｄ  ｂｕｓ  ａｒｂｉｔｒａｔｉｏｎ  ｓｙｓｔｅｍ）における問題を解決する。図１は、知られたバスプロトコルおよび方法のタイミング図を示す。図１は、次のように省略して表現された信号を示している。すなわち、ＣＬＫ＝クロック；ＴＳ＊＝転送開始；Ｒ／Ｗ＊＝読出し／書込み；アドレスおよび属性（Ａｄｄｒｅｓｓ  ＆  Ａｔｔｒｉｂｕｔｅｓ）＝アドレスビットおよびバス属性ビット；Ｄ［３１：０］＝データビット；ＴＡ＊＝転送アクノレッジ；ＰＭ＿ＢＲ＊＝主マスタ（ｐｒｉｍａｒｙ  ｍａｓｔｅｒ）バス要求；ＰＭ＿ＢＧ＊＝主マスタバス承認；ＰＭ＿ＢＢ＊＝主マスタバスビジー；ＡＭ＿ＢＢ＊＝代替マスタ（ａｌｔｅｒｎａｔｅ  ｍａｓｔｅｒ）バスビジー；ＡＭ＿ＢＲ＊＝代替マスタバス要求；そしてＡＭ＿ＢＧ＊＝代替マスタバス承認、である。この場合、＊記号は信号がアクティブローの信号であることを示す信号名である。
【００１４】
図１は、非常に高いバス周波数では図１におけるバスビジー（ＢＢ＊）信号を使用する従来技術のプロトコルにおいて問題が生じることを示している。通常１つのシステムにおいて、主バスマスタのバスビジー（ＰＭ＿ＢＢ＊）および代替バスマスタのバスビジー（ＡＭ＿ＢＢ＊）信号は一緒に結ばれかつ抵抗によってＶｄｄにプルアップされるが、図１ではバスの所有権の転送時間におけるバスビジー（ＢＢ＊）信号の競合の可能性を示すために図１ではこれらの信号は別々に示されている。主マスタはチックをベースとした内部クロックを使用しかつ前記ＢＢ＊競合問題をデッドチック（ｄｅａｄ  ｔｉｃｋ）により前記バスビジー信号（ＢＢ＊）のターンオンおよびターンオフ時間を分離することにより解決しようと試みる。これは低いバス周波数ではうまく動作するが、高いバス周波数ではうまく動作せず、それは送信されたバスビジー（ＢＢ＊）信号のより狭いチック時間およびＲＣ定数のためである。図１において、領域Ａおよび領域Ｂは時間的に、より高い周波数において、１つのＢＢ＊信号（ＰＭ＿ＢＢ＊またはＡＭ＿ＢＢ＊）が論理“１”をドライブしており、一方他のＢＢ＊信号が論理“０”をドライブしている領域を示す。このバス競合は都合の良いものではない。
【００１５】
図２は、本発明に係わるバス保有終了（Ｂｕｓ  Ｔｅｎｕｒｅ  Ｔｅｒｍｉｎａｔｅｄ：ＢＴＴ＊）プロトコルの動作を示す。通常、主バスマスタのバス保有終了（ＰＭ＿ＢＴＴ＊）および代替バスマスタのバス保有終了（ＡＭ＿ＢＴＴ＊）信号は一緒に結ばれかつ抵抗によってＶｄｄ（電源電圧）にプルアップされるが、図１ではこれらの信号はバス所有権の転送時間にバス保有終了信号の競合の可能性が生じないことを示すために分離されている。さらに、前記バス保有終了（ＢＴＴ＊）信号のタイミングはシステムクロックと完全に同期することができ、バスマスタの内部の非同期の、セルフタイム化されたまたはチックをベースとした論理の必要性を除去している。
【００１６】
図２を参照すると、「バスサイクル（ｂｕｓ  ｃｙｃｌｅ）」および「転送サイクル（ｔｒａｎｓｆｅｒ  ｃｙｃｌｅ）」は、前記転送開始（ＴＳ＊）が肯定されるクロックエッジから前記最終転送の最後の終了アクノレッジ信号（ＴＡ＊，ＴＥＡ＊またはＴＲＡ＊）がサンプルされるクロックエッジまでの１つの完全なバス動作サイクルを表わしている。１つのバスサイクル内でデータのゼロからいくつかまでの転送が生じ得る。用語「転送（ｔｒａｎｓｆｅｒ）」はそれ自体でデータがプロセッサに転送されるかあるいはプロセッサから転送される場合における単一のクロック期間または周期（ｐｅｒｉｏｄ）を意味する。
【００１７】
図２において、ＣＬＫはシステムクロックを示す。前記ＴＳ＊信号は転送開始信号である。該転送開始（ＴＳ＊）信号は前記主マスタ（ｐｒｉｍａｒｙ  ｍａｓｔｅｒ）によってアドレス線が安定になるクロックサイクルの間に肯定され、かつ引き続くクロックサイクルにおいて否定される。前記ＴＳ＊信号は前記主マスタがバスの所有権を持っている場合に前記主マスタのためのバスサイクルの開始を示す。前記ＴＳ＊信号は、他の機能にもサービスできるが、システム内のバスの支配権についての内部状態情報を維持するために主マスタがバスマスタでない場合に前記主マスタによって調べられる。バスによってバスサイクルを行なうことができる全てのマスタは一緒にバスでつながれた（ｂｕｓｅｄ）それらのＴＳ＊信号を持たなければならない。主マスタがバスマスタでない場合、ＴＳ＊は通常該主マスタによってトライステート化される。
【００１８】
図２において、前記Ｒ／Ｗ＊信号は主マスタがバスの所有権を有する場合に該主マスタによってドライブされる。該Ｒ／Ｗ＊信号は引き続くデータの転送の方向（外部からマスタへの読取り、またはマスタの外部への書込み）を示す。該Ｒ／Ｗ＊信号は読取りバスサイクルの間にハイに肯定され、かつ書込みバスサイクルの間にローに肯定される。６８０６０がバスマスタでない場合、この信号はトライステート化される。
【００１９】
図２において、信号ＴＡ＊（または、転送エラーアクノレッジ［ＴＥＡ＊］または転送リトライアクノレッジ［ＴＲＡ＊］のような等価な信号）はバスサイクルの終りを示すために使用される。特に、主マスタがバスマスタである場合（すなわち、主マスタがバスの所有権を有する場合）、前記ＴＡ＊信号は、バスに結合された、現在のスレイブにより前記バスサイクルにおいて転送されるべきデータが有効でありかつバスの読取り動作の間にサンプルされる用意ができているクロックにおいて肯定される。あるいは、前記ＴＡ＊信号は主マスタから転送されたデータがバスの書込み動作の間にスレイブによって受け入れられる前記クロックにおいて現在のスレイブにより肯定される。主マスタが前記転送を転送アクノレッジ（ＴＡ＊）と共に首尾よく受け入れるためには、ＴＲＡ＊およびＴＥＡ＊は共にＴＡ＊が肯定されているときに否定されなければならない。言い替えれば、リトライおよびエラーバス転送信号は前記ＴＡ＊信号に対し優先権を持つ。
【００２０】
図２において、前記Ｄ［３１：０］信号は現在の処理のためのデータを伝達する双方向信号である。バーストバスサイクルの間に、データ線はバースト要求全体の全ての部分を転送するために時間多重される。図２においては、アドレス信号は前記主マスタがバスの所有権を有する場合に該主マスタによって出力される。該アドレスビットはバス転送の第１の項目のアドレスを示すために使用される。
【００２１】
図２において、バスサイクルの属性（ａｔｔｒｉｂｕｔｅ）信号はバス上でどのようなタイプの転送が行なわれているかを示すために使用される。例えば、これらの信号は１６ビットのムーブ（ｍｏｖｅ）または３２ビットのムーブを示すことができる。ユーザまたはスーパバイザモードのアクセスを特定することができる。キャッシュを適切に制御することができる。メモリ管理ユニットをアクセスすることができる。データ転送サイズを決定できる。転送されたロングワードの中のバイト選択を行なうことができる。バスロックを決定できる。一般に、数多くの転送属性機能および信号が技術的に存在しかつ図２において任意のもの／全てを使用できる。
【００２２】
図２における前記ＰＭ＿ＢＲ＊信号は主マスタまたは主プロセッサのためのバス要求信号である。該ＰＭ＿ＢＲ＊信号は主マスタから外部バスアービタに送られかつ任意の時間に肯定または否定できる。ＰＭ＿ＢＲ＊はバスを使用する必要性を指示するために主マスタによって肯定され、かつ主マスタがもはやバスを必要としなくなるまで肯定状態に保持される。この肯定時間は主マスタがバスマスタである時間（すなわち、バスの所有権を持っている時間）並びに主マスタがバスマスタでない時間（すなわち、バスの所有権を持たない時間）を含む。
【００２３】
また、主マスタによるバスの使用の必要性はバスアービタがバスを前記ＰＭ＿ＢＧ＊信号を介して主マスタのプロセッサに承認できる前に内部状態の変化により消散し得ることに注目すべきである。これはＰＭ＿ＢＲ＊がこれまでにある期間の間肯定されかつ次にＰＭ＿ＢＧ＊が外部バスアービタによって肯定できる前に否定された場合に当てはまる。したがって、外部バスアービタは主マスタがバスの使用を要求するが、バスアービタがＰＭ＿ＢＧ＊を主マスタに対し肯定したとき、決してバスの支配権を引き継がない場合を扱わなければならない。この場合は主マスタがＰＭ＿ＢＲ＊を否定しかつＰＭ＿ＢＧ＊が外部バスアービタによって肯定された後に次のクロックエッジにおいてＴＳ＊を肯定しないことに注目することによって検出できる。これはＰＭ＿ＢＧ＊が主マスタに対して肯定されかつ主マスタが依然としてＰＭ＿ＢＲ＊を肯定しているが未だＴＳ＊を肯定していない場合ではないことに注目すべきである。主マスタによりそれがＰＭ＿ＢＧ＊を受信した後に、ＰＭ＿ＢＲ＊が肯定された状態に留まっている場合にＴＳ＊の肯定の遅れが生じるのは命令バス要求動作を先取りするオペランドバス動作によって引き起こされる特別の内部状態による。この場合、主マスタは依然としてＰＭ＿ＢＲ＊が肯定された状態に留まっている限りバスを使用することを意図している。
【００２４】
図２は、ＰＭ＿ＢＧ＊信号を示している。このＰＭ＿ＢＧ＊信号は外部アービタによって主マスタに与えられ現在のマスタが現在のバスサイクルを終了して制御信号によりバスを放棄するや否や、主マスタがバスを制御することを示すバス承認信号である。バスを放棄するための制御信号は以下に説明する。ＰＭ＿ＢＧ＊がアービタによって否定されたとき、主マスタは、バスサイクルのロックされたシーケンスがＢＧＲ＊（Ｂｕｓ  Ｇｒａｎｔ  Ｒｅｌｉｎｑｕｉｓｈ：バス承認放棄）が否定された状態で（ＢＧＲ＊信号は後にかつ引き続く図面においてさらに説明する）進行していない限り、現在のバスサイクルが完了するや否や制御信号を介してバスを放棄する。バスサイクルのロックされたシーケンスがＢＧＲ＊が否定された状態で進行している場合、主マスタは原子ロックされた（ａｔｏｍｉｃ  ｌｏｃｋｅｄ）バスサイクルのシーケンスを完了しかつ次にそれがＰＭ＿ＢＴＴ＊（転送終了制御信号）を肯定しかつＰＭ＿ＢＢ＊（図２には示されていないが図１には示されているバスビジー信号）を否定することによりバスを放棄したことを表示する。一般に、前記ＰＭ＿ＢＴＴ＊信号のみがバスサイクルの終了を決定するのに必要とされ、かつＰＭ＿ＢＢ＊はプロセッサファミリーの互換性のために与えられる。
【００２５】
前記ＢＧＲ＊信号は図２には示されていないが、それは信号ＢＴＴ＊が強調されているからである。ＢＧＲ＊信号はここでは簡単に説明し後に詳細に説明する。ＢＧＲ＊信号の簡単な説明はここでは図２におけるＢＧ＊信号の動作をより良く理解するために与えられる。ＢＧＲ＊（バス承認放棄制御）信号は主マスタのプロセッサに対しＰＭ＿ＢＧ＊が否定されたときにバスの所有権を放棄する必要性の程度を示すＰＭ＿ＢＧ＊のためのクォリファイア（ｑｕａｌｉｆｉｅｒ）である。該ＢＧＲ＊信号はＢＧ＊が否定されている場合に原子ロックされたバスシーケンスの間に主マスタがどのようにふるまうかに影響を与える。ＢＧＲ＊の肯定は主マスタに対し、該主マスタが一連のバスサイクルが一緒にロックされることを意図している場合でも、ＢＧ＊が否定されたときは主マスタによるバスの所有権は現在のバスサイクルの最後の転送に応じて放棄されるべきことを表示する。ＢＧ＊が否定されている場合にＢＧＲ＊が否定されると主マスタに対し原子シーケンスの崩壊が生じないことを保証するために全シリーズのロックされたバスサイクルが終了した後にのみロックされたバス状態（ＬＯＣＫ＊制御信号が肯定された状態［図示せず］）の下で主マスタのバス所有権が放棄されるべきことを表示する。
【００２６】
言い換えれば、ＢＧＲ＊が肯定された場合、主マスタは、いったんＰＭ＿ＢＧ＊が否定されると、ロックされたシーケンス、その他にかかわらずできるだけ早くバスを離れるべきである。否定されているＢＧＲ＊信号はバス終了の緊急性をより少ないものとして示し、かつ主マスタは最終的に適切な終了時間が生じるまでバス上で転送を続けることができる。
【００２７】
図２にはＰＭ＿ＢＴＴ＊信号が示されている。該ＰＭ＿ＢＴＴ＊信号は１クロック周期の間肯定されてシステムの他のマスタに対し外部アービタがＰＭ＿ＢＧ＊をプロセッサに対し否定した後に、主マスタがそのバス保有を放棄したことを示す。ＰＭ＿ＢＴＴ＊信号はその肯定の後にただちに１クロック周期の間否定されるよう駆動される。その他の全ての時間においてはＰＭ＿ＢＴＴ＊はトライステート化されている。図２はどのようにして主マスタおよび代替マスタが出力ピンをドライブするかを示していることに注目することが重要である。図２における出力ピンのいくつかは一緒に結合して１つの統合された信号を形成することができる。例えば、ＰＭ＿ＢＴＴ＊は通常ＡＭ＿ＢＴＴ＊およびシステムの任意の他のＢＴＴ＊ピンに結合される。主マスタはそれがバスマスタでない時に内部状態を維持しかつそれがバスの支配権を引き継ぐことができる時を追跡するために前記ＰＭ＿ＢＴＴ＊を入力としてサンプルするのみである。バスマスタはシステムの全ての他の代替マスタに対し主マスタがバスの所有権を終了しつつあることを示すためにＰＭ＿ＢＴＴ＊をドライブする。したがって、プロセッサに対するＢＴＴ＊信号はしばしば他のマスタがバスの所有権をあきらめつつあることを通知するための入力であり、あるいはＢＴＴ＊はプロセッサによってバスのその所有権を終了しつつあることを示すための出力として使用することができる。
【００２８】
この内部状態情報を適切に維持するために、バス上の全てのマスタはそれらのＴＳ＊信号が一緒にバスでつながれて主マスタおよび任意の他のバスマスタが結合されたＴＳ＊−ＢＴＴ＊対を追跡できるようにしなければならない。例えば、もしＢＴＴ＊信号がその後にＴＳ＊信号が肯定されずに発生すれば、バスは現在の持ち主から解放される。もしＢＴＴ＊信号がその後にＴＳ＊信号が肯定されて発生すれば、バスは他のマスタによって使用中である（すなわち、所有されている）。したがって、バスの状態を判定するためには前記信号ＴＳ＊およびＢＴＴ＊の双方を監視することが重要である。
【００２９】
図２のプロトコルにおいては、主マスタは図１のプロセッサに対して両立性ある信号を提供するためにＢＢ＊信号（図２には示されていない）を提供することになる。しかしながら、好ましい形態においては、図２のＢＴＴ＊信号およびプロトコルが使用されるべきか、あるいは図１のＢＢ＊信号およびプロトコルが使用されるべきかであり、両方ではない。前記ＢＴＴ＊信号はバスの競合（ｃｏｎｔｅｎｔｉｏｎ）が少なくより大きな柔軟性を提供し、かつしたがってより好ましい。使用されていない信号、好ましくはＢＢ＊、は抵抗によって否定状態に常にプルアップされるべきである。本明細書に述べられているように、ＢＴＴ＊プロトコルは最大バス速度および高い動作周波数において前記ＢＢ＊プロトコルよりも高い性能を達成する。
【００３０】
図２においては、ＡＭ＿ＢＴＴ＊信号、ＡＭ＿ＢＲ＊信号、およびＡＭ＿ＢＧ＊信号は、それぞれ、ＰＭ＿ＢＴＴ＊，ＰＭ＿ＢＲ＊，およびＰＭ＿ＢＧ＊と同様に機能する。唯一の差は、１つのグループの信号が主マスタに対して機能し、一方他のグループの信号が代替マスタに対して機能することである。
【００３１】
図２において、前記ＢＴＴ＊（バス保有終了）プロトコルの概念は図１のＢＢ＊プロトコルと異なっている。ＢＴＴ＊プロトコルは常にはバスの使用の表示を与えず、単にマスタがバスを使用するのを終了した時間を知らせる（ｆｌａｇｓ）。ＢＴＴ＊信号は全ての他のマスタがバスを引き継いでも大丈夫であることを検出する必要がある。したがって、ＢＴＴ＊はマスタがバスを使用している全ての時間にトライステート化されかつ１クロック周期の間肯定され、１クロック周期の間否定され、かつ次に再び他のバスの終了時点までトライステート化される。バスを使用するのを待機しているマスタは単に前のマスタがバスの使用を終了したことを知るためにＢＴＴ＊の１クロック分の肯定を検出するのみで良い。ＢＴＴ＊は、図１のＢＢ＊信号と異なり、１クロック全体の間同期してハイにドライブすることができ、もし信号がちょうどトライステート化された場合には生じ得る長いＲＣ遅延を防止することができる。図２において、１つのマスタがＢＴＴ＊を否定状態にドライブしていた時とＢＴＴ＊を肯定し始めている他のマスタに対しＢＴＴ＊をトライステート化する時間との間には常に少なくとも１クロックがあり、したがって図１のＢＢ＊と異なり競合を防止できる。
【００３２】
一般に、ＢＴＴ＊プロトコルの概念はバスマスタの内部の非同期の、セルフタイム化された、またはチックをベースとした論理に頼ることなく、同期バス構造に対し真のオーバラップしたバス調停が行なわれることを可能にする。ＢＴＴ＊プロトコルは非常に高い周波数で前記ＢＢ＊プロトコルが持っている競合の問題を解決する。
【００３３】
図３は、図２のＢＴＴ＊プロトコルを実現するために使用できるシステムを示す。図３は相互接続としていくつかの実線（ｓｏｌｉｄ  ｌｉｎｅｓ）を示している。図３の点線（ｄａｓｈｅｄ  ｌｉｎｅｓ）の相互接続は図３の各要素の相互接続機構の変形または相互接続機構への付加を示している。図３は、全てある方式で相互接続された、主マスタ（ｐｒｉｍａｒｙ  ｍａｓｔｅｒ）１０、代替マスタ（ａｌｔｅｒｎａｔｅ  ｍａｓｔｅｒ）１２、およびバスアービタ（ｂｕｓ  ａｒｂｉｔｅｒ）１４を有する。図３は制御バス、データバス、およびアドレスバスを示している。制御バスは任意の２つまたはそれ以上の制御信号を相互接続し、任意の２つまたはそれ以上の制御信号を導くことなどが可能である。信号ＢＲ＊，ＢＧＲ＊，ＢＧ＊，ＬＯＣＫ＊，ＬＯＣＫＥ＊は、これらの信号は図３においては制御バスに接続されたものとして示されていないが、任意選択的に制御バスに接続することができる。図３においては、各バスは各々のバスマスタに対する個々の要求／承認線を使用して中央バスアービタ１４により調停される。調停プロトコル（すなわち、どのプロセッサがバスの所有権を持つべきか）はバス転送活動と同時に動作することができ、それによってバスの所有権の転送が大きな性能上の不利益（ｐｅｎａｌｔｙ）なしに行なうことができる。
【００３４】
図３は、バスアービタ／コントローラを備えたマルチ−マスタシステムにおいてバス調停信号がどのように導かれるかを示すブロック図の１例を示している。図３は、主マスタのバス要求（ＰＭ＿ＢＲ＊）入力および代替マスタのバス要求（ＡＭ＿ＢＲ＊）入力を示している。ＢＲ＊信号はバスアービタ１４に接続されている。ＰＭ＿ＢＧＲ＊（バス承認放棄）およびＡＭ＿ＢＧＲ＊（バス承認放棄）はアービタ１４に接続されているものとして示されている。ＰＭ＿ＢＧ＊（バス承認）およびＡＭ＿ＢＧ＊（バス承認）はアービタ１４に接続されているものとして示されている。ＬＯＣＫ＊およびＬＯＣＫＥ＊信号はマスタ１０および１２によって出力されかつアービタ１４に接続されている。制御信号ＢＴＴ＊（バス転送終了），ＴＳ＊（転送開始），およびＢＢ＊（バスビジー）はマスタ１０と１２との間に接続されかつ制御バスに接続されている。データ線は各マスタ１０および１２からデータバスへと接続され、かつアドレス線は各マスタ１０および１２からアドレスバスへと接続されている。Ｒ／Ｗ＊（読取り／書込み），ＴＡ＊（転送アクノレッジ），ＴＥＡ＊（転送エラーアクノレッジ），ＴＲＡ＊（転送リトライアクノレッジ），および任意の他のバス制御信号のような、全ての他の制御信号は図３に示されるように制御バスに接続されている。ＴＳ＊はプロセッサがバスマスタでない場合にバスの支配権についての内部状態を維持するために調べられることに注意を要する。バス上でバスサイクルを行なうことができる全てのマスタはそれらのＴＳ＊信号が好ましい形式で一緒にバス化され／接続され（ｂｕｓｅｄ／ｃｏｎｎｅｃｔｅｄ）なければならない。
【００３５】
図３は、図３の各要素に対する全てのクロック（単数または複数）を発生するクロック発生回路１６を示している。単一のあるいは複数のクロックのいずれを使用しても良い。
【００３６】
図３のシステム内での調停は現在のバスの所有権および、それは早く終了しすぎることもあるかもしれないが、バスサイクル（転送開始［ＴＳ＊］から最終転送終了［ＴＡ＊またはＴＲＡ＊またはＴＥＡ＊］まで）が分割できない原子エンティティ（ａｔｏｍｉｃ  ｅｎｔｉｔｙ）であるという概念に基いている。ここで用いられている「バス」はデータバス、アドレスバス、および所有権を割り当てることができる任意の制御信号の内の１つまたはそれ以上を意味する。もしバスが現在主マスタ１０によって所有されていれば、該バスは主マスタがＢＴＴ＊を肯定した時（あるいは、ＢＢ＊を否定した時）最終バスサイクルの完了後にのみ他のマスタ（すなわち、代替マスタ）によって所有され得る。
【００３７】
もし前記バスが現在主マスタ１０によって所有されていなければ、主マスタ１０はそれがバスを必要とするやいなやそのＢＲ＊信号を肯定する。バスアービタ１４からＢＧ＊の肯定が受信されかつバス化されたＢＴＴ＊の１クロック周期の肯定が検出され（あるいは、ＢＢ＊の否定が立上りクロックエッジで検出され）、前のマスタ（例えば、システム内の他のマスタでも良いが、代替マスタ１２）がその保有を終了してバスを放棄したことを示すやいなやバスの支配が得られる。ＢＧ＊が受信された時主マスタ１０が依然としてバスを使用する必要性を有していれば、主マスタ１０はバスの支配権を取り、ＴＳ＊を肯定しかつバスサイクルを開始する。内部状態のため、もし主マスタ１０がもはやその特定の時点でバスを使用する必要がなくなった場合、主マスタ１０はそのＢＲ＊信号を否定する。主マスタ１０はバスが１つのバスサイクルの間のみ必要であればそれがＴＳ＊信号を肯定するのと同時にそのＢＲ＊信号を否定する。ＢＲ＊は主マスタ１０によって１つより多くのバスサイクルが必要であればより長い時間の間保持される。
【００３８】
前記ＢＴＴ＊信号（あるいはＢＢ＊）はシステムの全ての代替マスタに接続され主マスタ１０によるバス保有の終了を通知する。ＢＴＴ＊信号は主マスタ１０によりそれがＢＧ＊の否定によりバスへの所有権を失いかつバスの使用を終了させる用意ができた後に肯定される。主マスタ１０がバスの所有権を失った時に最終バスサイクルの最終終了アクノレッジメントの後に、主マスタ１０は１クロック周期の間ＢＴＴ＊を肯定し、１クロック周期の間ＢＴＴ＊を否定し、かつ次にＢＴＴ＊をトライステート化する（図２を参照）。もし外部バスアービタ１４が代替マスタ（例えば、代替マスタ１２）に対しその代替マスタへのＢＧ＊の肯定によりバスを承認すれば、その代替マスタは、ＢＴＴ＊プロトコルを使用して、該代替マスタが主マスタ１０からのＢＴＴ＊の肯定を検出したすぐ次のクロックエッジでバスサイクルをスタートすることができる。
【００３９】
現在のバスがバスサイクルをスタートしつつあるのと同時に前のマスタは否定されたＢＴＴ＊をドライブしていても良く、それは現在のマスタは依然としてそのＢＴＴ＊信号がトライステート化されているからである（図２を参照）。前記代替マスタはそれが保有を終了するまでこのプロトコルにおいてはＢＴＴ＊をドライブしないから、全てのマスタのＢＴＴ＊信号を一緒に接続することによる衝突はない（すなわち、バスビジー（ＢＢ＊）プロトコルに対し図１に示されるような競合はない）。また、図３のマスタ１０および１２はあるいは、ＢＢ＊調停プロトコルは図１に示されるものとややタイミングの相違を有するが、ＢＢ＊調停プロトコルを提供することができる。該ＢＢ＊プロトコルは改善されたＢＴＴ＊プロトコルを持たないより古いシステムまたはプロセッサと容易に両立性をもたせるために提供される。
【００４０】
前記ＢＢ＊プロトコルを使用するプロセッサがバスの使用を終了した時、ＢＢ＊はある期間の間否定されてドライブされかつ次にトライステート化されなければならない。上に述べた、ＢＴＴ＊プロトコルを使用することによりＢＢ＊プロトコルよりも高速度のバス環境でより良く動作するが、それはＢＴＴ＊をドライブする（肯定、否定、またはトライステート）方法はクロックと同期させることができるからである。バスアービタはＢＢ＊プロトコルのシステムからＢＴＴ＊プロトコルのシステムへと移る場合に変更する必要はなく、それはバスアービタはＢＢ＊プロトコルのシステムにおけるＢＢ＊信号またはＢＴＴ＊プロトコルシステムにおけるＢＴＴ＊をサンプルする必要がなく、バスの所有権を決定するためにＢＲ＊，ＢＧ＊および任意選択的にＬＯＣＫ＊を使用する必要性があるのみであるからである。いずれのマスタもバスの所有権を引き継ぐための適切な時間を決定するのにＢＢ＊またはＢＴＴ＊およびＴＳ＊をサンプルするのみで良い。
【００４１】
主マスタ１０がそれが全ての必要なバスサイクルを終了した後に暗黙的な（ｉｍｐｌｉｃｔ）バスの所有権を有する場合には、ＢＴＴ＊はＢＧ＊が否定されかつ主マスタ１０がバスから追いやられるまでトライステート状態に留まる（あるいは、ＢＢ＊が肯定された状態に留まる）。この場合、主マスタがＢＧ＊の否定を検出したすぐ次のクロック期間に主マスタはＢＴＴ＊を１クロック期間の間肯定する（あるいは、単一クロック（ＣＬＫ）期間の間ＢＢ＊を否定する）。主マスタ１０がバスを与えられているが決して実際にはＴＳ＊を肯定してそれを使用しない暗黙的なバス所有権の場合には、主マスタ１０はＢＧ＊が否定された時ＢＴＴ＊を肯定しない（あるいは、ＢＢ＊を肯定しかつ次にＢＢ＊を否定する）。
【００４２】
ＢＴＴ＊プロトコルを使用するシステムにおいては、バスが引き継がれる適切な時間を決定するためにＢＴＴ＊の遷移がマスタによって追跡されなければならない。ＢＧ＊の否定の前における、間における、および後におけるＢＴＴ＊の遷移はまたバス承認（ＢＧ＊）がマスタとともに固定されておらず、かついずれのマスタもバスをいくらかの時間の間使用していない場合にあるマスタによって記録される必要があるかもしれない。そのような場合には、いずれかのマスタが前のマスタがより早くバスの使用を終了したことを示し直ちにバスの制御を得ることができることを意味する状態情報を保つことを要求される。好ましい形態では、主マスタ１０が内部的にこの情報を維持する。
【００４３】
ＲＳＴＩ＊（外部リセットピン）の否定により、かつ肯定されたＢＧ＊により開始される、外部リセットの後は、主マスタ１０は、ＲＳＴＩ＊の否定と主マスタ１０がバスサイクルを開始する用意ができているクロックサイクルとの間の時間の間における他のマスタによるＴＳ＊の肯定がなければ、バスの支配を引き継ぎかつバス活動のスタートを始めるために他のマスタ（すなわち、代替マスタ）によるＢＴＴ＊の肯定を待たない。もし他のマスタ（すなわち、代替マスタ）がこの合間にバス活動を開始すれば（ＴＳ＊が肯定される）、主マスタ１０がバス承認表示（ＢＧ＊の肯定）を受信することができても、主マスタ１０はそれがバスの支配権／所有権を引き継ぎぐ前に他のマスタによってＢＴＴ＊が肯定されるのを待つことになる。
【００４４】
ＢＧ＊がアービタ１４によって否定された時、主マスタ１０はバスサイクルのロックされたシーケンスが否定されたＢＧＲ＊とともに進行している場合を除き現在のバスサイクルが完了するとただちにバスを放棄する。この場合、主マスタ１０は原子ロックされたバスサイクルのシーケンスを完了し、アドレスおよび他のバスサイクルの属性がアイドルになっている時にクロックの間の１クロック周期の間ＬＯＣＫ＊を否定ドライブし、かつ次のクロック周期で、ＬＯＣＫ＊をトライステート化しかつＢＴＴ＊を肯定することによりバスを放棄する（図６を参照）。前記ＢＧＲ＊信号はＢＧ＊が否定されている時にバスの所有権を放棄する必要性の程度を主マスタ１０に示すＢＧ＊のためのクォリファイア（ｑｕａｌｉｆｉｅｒ）である。ＢＧＲ＊は主としてＢＧ＊が否定されている時に原子ロックされたシーケンスの間に主マスタ１０がどのようにふるまうかに影響を与える。
【００４５】
図３の主マスタ１０は主マスタ１０からバスの所有権が除去できるようにしかつ、たとえプロセッサがバスサイクルのロックされたシーケンスを示していても、他のバスマスタに対しそれがＢＧ＊の否定を検出すればバスの所有権を承認できる調停プロトコルを有する。ＬＯＣＫ＊信号は主マスタ１０によってプロセッサが現在の次のバスサイクルが一緒にロックされる（すなわち、分離できない）ようにすることを意図していることを示すが、これは前記ＢＧＲ＊信号のシステムバスのアービタの制御により強制されるかあるいはオーバライドされるようにすることができる。外部バスアービタ１４によるＢＧ＊の否定とともにＢＧＲ＊の肯定により、プロセッサが原子バスサイクルのロックされたシーケンスを行なっていても現在のバスサイクルが終了するやいなや該プロセッサがバスを離れるよう強制する。主マスタ１０がロックされたバスサイクルのシーケンスを行なっている場合にＢＧＲ＊およびＢＧ＊の双方が否定されれば、主マスタ１０は原子ロックされたバスサイクルの組全体を終了しかつ次に原子ロックされたバスサイクルのそのユニットの完了時にバスを放棄し、したがって原子シーケンスの崩壊は生じない。主マスタ１０は１組のバック−バック原子ロックされたバスサイクルを行なっているかも知れず、外部バスアービタ１４がその当接（ａｂｕｔｍｅｎｔ）を検出してＢＧ＊を否定する安全な時間を決定することはできないことに注意を要する（図４を参照）。これはＢＧＲ＊が否定されている場合に避けられる。ＢＧＲ＊が否定されている場合、主マスタ１０は現在の組の原子ロックされたバスサイクルの最後のバスサイクルを終了し、かつ次にバスを放棄し、したがってそのユニットの原子ロックされたバスサイクルの妨害を防止するが全てのバック−バック原子ロックされたバスサイクルが行なわれる前にバスを解放する。したがって、バスの利用可能性が改善される。
【００４６】
前記ＢＧＲ＊プロトコルの代わりとして、主マスタ１０はファミリの互換性のためにＬＯＣＫＥ＊信号を保持することができる。主マスタ１０は外部アービタがバス上にバック−バックロックされたシーケンスの間の境界を検出できるようにするためバスサイクルのロックされたシーケンスの最後のバスサイクルの間にＬＯＣＫＥ＊信号を使用するプロセッサのファミリの一部である。前記プロセッサのファミリにおいて１つのプロセッサによって使用される外部アービタはロックされたシーケンスを破壊することなしにＢＧ＊を除去しかつ調停がロックされたシーケンスにおける最後の転送とオーバラップできるようにするため安全な時間を決定するために前記ＬＯＣＫＥ＊ステータス信号を使用することができる。しかしながら、ＬＯＣＫＥ＊が肯定されかつＢＧ＊が否定されたロックされたシーケンスの最後のバスサイクルの間におけるリトライアクノレッジ終了（ＴＲＡ＊）は前記ロックされたシーケンスの分割またはインタラプトを防止するためバスサイクルが終了する前に外部バスアービタにおける非同期論理がＢＧ＊を再肯定することを必要とする。ＢＧＲ＊プロトコルを使用することによって主マスタ１０にそれ自身でバスの所有権を放棄する適切な時間を決定させることによりこの問題を除去することができ、かつ外部バスアービタの設計を単純化することができる。
【００４７】
ロックされたシーケンスは通常コンペアアンドスワップ（ｃｏｍｐａｒｅ  ａｎｄ  ｓｗａｐ：ＣＡＳ）命令、のような命令、任意選択的にはムーブコントロール（ｍｏｖｅ  ｃｏｎｔｒｏｌ：ＭＯＶＥＣ）命令、およびテストアンドセット（ｔｅｓｔ  ａｎｄ  ｓｅｔ：ＴＡＳ）命令のような命令に対して必要とされる。バスサイクルのロックされたシーケンスに対しては、主マスタ１０はＬＯＣＫ＊ならびに第１のバスサイクルのＴＳ＊を肯定し、かつ前記ＴＡＳおよびＣＡＳ命令の実行の間、メモリのテーブルワーク（ｔａｂｌｅｗａｌｋｓ）における履歴情報の更新時に、そしてバス制御レジスタにおけるＬＯＣＫビットをセットしかつ後にリセットするＭＯＶＥＣ命令の実行後における最後のバスサイクルの最後の転送の最終的な終了アクノレッジメントに続きＬＯＣＫ＊を否定する。アービタ１４がＬＯＣＫ＊およびＢＧＲ＊に関してどのように設計されているかに応じて、ＬＯＣＫ＊およびＬＯＣＫＥ＊信号を使用することはロックされたシーケンスの間にオーバラップされたバス調停を防止する効果を持つことができる。ロックされたシーケンスの持続期間にわたりＬＯＣＫ＊を肯定状態に保つことにより、該シーケンスの最後のバスサイクルがリトライされかつ依然としてロック状態を維持するようにすることができる。
【００４８】
前記プロセッサのファミリにおける他のプロセッサと同様に、主マスタ１０は前の使用の後にバスが依然として所有されているがアイドルである時間の間に前記アドレスおよび属性ライン上の最後のバスサイクルから情報を保持しかつドライブし続ける。しかしながら、前記ファミリの他のプロセッサと異なり、暗黙的なバスの所有権の場合に、プロセッサ１０がバスを承認されているがいまだサイクルを行なっていない場合、該プロセッサは前記アドレスおよび属性ラインをドライブせずかつそれらのラインはバスサイクルが実際に開始されるまでトライステート化された状態に留まっている。
【００４９】
前記ＢＧＲ＊信号を使用することは外部バスアービタが同期バスシステムにおいて現在のマスタが一連のバック−バックロックされた転送シーケンスを行なっている場合にバスの所有権が他のマスタに転送されるポイントを決定できないという問題を解決する。ロックされた転送の発生は一般的には現在のマスタが前記転送または転送のシーケンスが原子的（すなわち、分離できない）であると考えていることを示すＬＯＣＫ＊信号により示される。しかしながら、もし現在のマスタがいくつかのシリーズのこれらの原子的にロックされたシーケンスをバック−バックとして有していれば、かつもし外部アービタがこれらの原子シーケンスの当接（ａｂｕｔｍｅｎｔｓ）に気が付くことができれば、外部アービタが前記マスタからバスの所有権を取り上げかつそれを前記シーケンスの間の境界でより必要性の高いマスタに与えることが完全に許容されるであろう。
【００５０】
前記ＢＧＲ＊信号はこの付加された機能を可能にする。したがって、前記ＢＧＲ＊信号は現在のバスマスタが長いシリーズのバック−バックロックされた転送を行なっている時間の間に他のバスマスタの窮乏状態（ｓｔａｒｖａｔｉｏｎ）を防止するために使用できる。図４は、バスクロックの介在なしに２つの引き続くロックされたシーケンスを行なう知られた同期バスプロトコルの動作を示す。図４から、外部アービタは単一のロックされたシーケンス、数多くの転送ロックされたシーケンス、またはバスクロックの介在がない複数のシーケンスの間の差を決定できないことがわかる。この独立のロックされたシーケンスの当接の決定ができないことはアービタが他のバスマスタにバスを持たせる必要があるが、中断なしにリンクされたロックシーケンスのロックされた性質を保存する必要がある場合に問題である。
【００５１】
前記ロックされたシーケンスの崩壊がないことを保証するために、バスアービタは現在バスを使用しているマスタに対しＢＧ＊（バス承認）を否定する前にＬＯＣＫ＊の否定を待つことを強制される。ＬＯＣＫ＊はシーケンスの間で否定されないから、現在のマスタはバック−バックロックされたシーケンスを行なうことにより効果的にバスを独占することができる。図４のバスプロトコルはロックされたシーケンスにおいて最後の転送の終了を通してＬＯＣＫ＊が肯定されることを必要とすることに注目すべきである。前記ＬＯＣＫ＊信号はロックされたシーケンス内で全ての転送に対し肯定された状態に保たれなければならないが、それはスレイブ装置がいずれのバス転送に対してもリトライを転送する必要性を通知できるからである。
【００５２】
上に述べた決定の問題はまた主プロセッサ１０のプロセッサの先行するファミリにおいても存在した。先行するファミリのプロセッサに対する考えられた可能な解決方法はロックされたシーケンスの間に１つまたは２つのデッドクロックを加えることであったが、これらはロックされたシーケンスを破壊するかあるいは性能を低下させかつ緊急の要求を有する他のマスタに対するバスの潜伏性（ｌａｔｅｎｃｙ）を増大するという望ましくない副作用を有することになることがわかった。前記決定の問題を解決するために、従前のプロセッサはロックされたシーケンスの最後の転送および該転送にともなうオーバラップ調停の間にアービタがＢＧ＊を前記マスタに対して否定できるようにするためそれらの設計に最後にロックされたバスサイクルのステータス表示子（ＬＯＣＫＥ＊信号）を加えた。しかしながら、バス処理のロックされた完全性を保持するために外部バスアービタが非同期的にＢＧ＊を再肯定しなければならない場合がバスサイクルのリトライの間に存在する。
【００５３】
図５は、この場合を示す。図５において、バスアービタはそれがＬＯＣＫＥ＊が肯定されておりかつＢＲ＊（バス要求）が否定されていることを見た時バスサイクル２（ＢＣ２）においてＢＧ＊を否定することに注意を要する。しかしながら、転送リトライはスレイブ装置によって通知される（ＴＲＡ＊が肯定される）。ロックされたシーケンスの破壊を防止するために、外部バスアービタは非同期的にＢＧ＊を再肯定しなければならない。これらはこの問題を解決する外部バスアービタの設計を非常に困難にするが、それは前記転送リトライ信号（ＴＲＡ＊）もまたいまやサンプルされなければならないからである。これは非常に高い周波数においてはほとんど不可能である。
【００５４】
主マスタ１０は上に述べた問題をバス承認放棄（ＢＧＲ＊）入力を提供することにより（ＬＯＣＫＥ＊出力の必要性なしに）内部的に解決し、それによって主マスタ１０がバスをあきらめるべき場合に該主マスタ１０がそれ自体で決定できるようにする。図６において、ＢＧＲ＊入力は主マスタ１０に対しバスの放棄の必要性の程度を通知する。もしＢＧＲ＊が外部アービタがＢＧ＊を否定した時間の間またはその時間の後に（図６のバスサイクル５（ＢＣ５）を参照）肯定されれば、主マスタ１０は現在のサイクルがバスサイクルのロックされたシーケンスの一部であっても現在のバスサイクルの終りにバスを無条件に放棄することになる。したがって前記ロックはＢＧＲ＊信号の状態により破られる。もし外部バスアービタがＢＧ＊を否定した時に（図６のバスサイクル２および３（ＢＣ２／ＢＣ３）を参照）ＢＧＲ＊が否定されれば、主マスタ１０は全ロックシーケンスの首尾良い完了まで待機し、したがってロックされたシーケンスの原子性（ａｔｏｍｉｃｉｔｙ）を保証しかつ転送リトライ条件（ＴＲＡ＊）に関する上に述べた問題を防止する。
【００５５】
図６は、ＢＧＲ＊に関する主マスタ１０の動作を示す。外部アービタ１４はバスを代替マスタに承認し、ＢＧＲ＊が主マスタ１０に対し否定される。したがって、主マスタ１０はそれがバスを放棄する前にその一連のロックされたバスサイクルＢＣ１，ＢＣ２，およびＢＣ３（バスサイクル１，２および３）を終了する。バスサイクル５（ＢＣ５）において、主マスタ１０は再びロックされたバスサイクルのシーケンスを行なっているが、この場合はＢＧＲ＊は主マスタ１０に対し肯定されておりかつＢＧ＊は否定されている。したがって、主マスタ１０は現在のバスサイクルの終りにただちにバスを放棄し、ロックされた転送シーケンスを獲得する。
【００５６】
本発明が特定の実施例に関して図示されかつ説明されたが、当業者にはさらに他の修正および改善が可能であろう。例えば、ここに述べた制御ビットは他の名称を持つが同じ基本的な機能を果すものとすることができる。バス、アドレスバス、データバス、制御信号バスの大きさ、および他の値は設計に応じて変えることができる。任意の数のマスタ、Ｎマスタ、をバスアービタ１４に接続することができ、この場合Ｎは正の整数である。他の形態では、ＢＧＲ＊信号はシステムにおける他のマスタによる出力として供給することができかつバスアービタ１４の排他的な出力でないようにすることができる。したがって、本発明は示された特定の形式に限定されるものではなく、かつ添付の特許請求の範囲において本発明の精神および範囲から離れることのない全ての修正をカバーすることを考えていることが理解されるべきである。
【００５７】
【発明の効果】
一般に、前記ＢＧＲ＊プロトコルは外部バスアービタにおいて必要とされている非同期論理の問題を総合的に解決する。さらに、ＢＧＲ＊プロトコルはシステムにおける各々のマスタがバスの所有権を決定するために２つの異なるバス承認入力の状態をサンプルする必要性なしに必要とされる非同期論理の問題を解決する。２信号バス承認方法（米国特許第５，１２７，０８９）はバスマスタの内部の不必要なオーバヘッドおよび単にバスの所有権を決定するためにシステムにおける各バスマスタに対しアービタから他の信号を導く不必要なオーバヘッドを有し、かつ外部バスアービタの設計を複雑にする。ＢＧＲ＊プロトコルにおいては、各々のバスマスタに独立に結合された個々のバス承認信号ＢＧ＊がバスの所有権を決定するために使用でき、一方バス承認放棄（ＢＧＲ＊）信号がＢＧ＊が否定された時バス承認（ＢＧ＊）信号の意義および優先度を修正する。このプロトコル／方法はまたより単純な外部バスアービタの設計を生み出す。
【００５８】
要するに、ここに教示されたプロトコルはいったんＢＧ＊が否定されると、マイクロプロセッサに対しバスの所有権の放棄の緊急性を示すＢＧＲ＊信号を提供する。もしＢＧＲ＊がＢＧ＊が否定された時に肯定されれば、バスコントローラ／アービタ１４は主マスタ１０に対し主マスタ１０がバスの所有権を、ロックされたバスシーケンスにかかわらず、できるだけ早く放棄しなければならないことを示している。もしＢＧＲ＊がＢＧ＊が主マスタ１０に対し否定された時に否定されれば、主マスタ１０はバスを放棄するのに最も適した時間を決定する。通常、最も適切な時間は、もしバスサイクルがロックされていなければ、次のバス転送の後であり、あるいは完全なロックされた転送シーケンスの終了時である。
【００５９】
ここに教示されたプロトコルはまた他のマスタに対し最後にバスの所有権を持ったマスタがそのバスの所有権を終了しつつあることを示すＢＴＴ＊信号を提供する。ＢＴＴ＊は、ここに述べられているように、知られたＢＢ＊プロトコルのような、他のプロトコルよりも優れている。該ＢＴＴ＊信号はバス調停の間におけるバスデータの競合を生じ得る連続的に肯定されるＢＢ＊信号と異なり一連の／単一の転送の最終バスサイクルが完了した時にのみ肯定される。
【図面の簡単な説明】
【図１】バス保有の終了を示すために使用される伝統的なバスプロトコルを示すタイミング図である。
【図２】本発明に係わるバス保有の終了を示すために使用されるバスプロトコルを示すタイミング図である。
【図３】図２のバスプロトコルを実現するために使用されるシステムを示すブロック図である。
【図４】バスの所有権の終了が困難でありかつマスタがバスを独占できる従来のバスプロトコルを示すタイミング図である。
【図５】ロックされたバス転送を適切にリトライするために非同期バス承認（ＢＧ＊）制御が必要とされる他の知られたバスプロトコルを示すタイミング図である。
【図６】本発明に係わるバスプロトコルを示すタイミング図である。
【符号の説明】
１０  主マスタ
１２  代替マスタ
１４  バスアービタ
１６  クロック発生器
【図１】
0003917672.tif 000002
【図２】
0003917672.tif 000003
【図３】
0003917672.tif 000004
【図４】
0003917672.tif 000005
【図５】
0003917672.tif 000006
【図６】
0003917672.tif 000007