(57)【特許請求の範囲】
【請求項１】
データ転送を要求及び制御し得る中央処理装置マスタ装置と少なくとも１つの第１バススレーブ装置とを含む、複数の第１バス装置と、
前記複数の第１バス装置のそれぞれに接続された第１データバスであって、前記中央処理装置マスタ装置の制御を受け、１つの第１バス装置から別の第１バス装置へデータを転送し得る、前記第１データバスと、
データ転送を要求及び制御し得る第２バスマスタ装置と少なくとも１つの第２バススレーブ装置とを含む、複数の第２バス装置と、
前記複数の第２バス装置のそれぞれに接続された第２データバスであって、前記第２バスマスタ装置の制御を受け、１つの第２バス装置から別の第２バス装置へデータを転送し得る、前記第２データバスと、
前記第１データバス及び前記第２データバスに接続されたバスブリッジであって、前記第１バスからデータ及び対応するアドレスを受信し、前記データ及び前記対応するアドレスを一時的に記憶し、前記第２バスへ前記データ及び前記対応するアドレスを供給し得る書き込みバッファと、所定時間が経過すると前記中央処理装置マスタ装置に対して割り込みを生成する読み取りタイムアウトカウンタとを含む、前記バスブリッジと、
前記第２バスマスタ装置と前記第２バスと前記バスブリッジとに接続された第２バスアービタであって、前記第２バスでのデータ転送の制御を前記第２バスマスタと前記バスブリッジのうちの１つのみに与える、前記第２バスアービタと、
を含む、データ転送システムであって、
前記データ転送システムは、前記第２バスを経ての２つの前記第２バス装置の間におけるデータの転送と無関係に且つ同時に、前記第１バスを経て２つの前記第１バス装置の間においてデータを転送し、
前記データ転送システムは、
前記第１マスタがデータ及び対応するアドレスを前記バスブリッジに転送し、
前記バスブリッジが前記データ及び前記対応するアドレスを前記書き込みバッファに記憶し、
前記バスブリッジが前記第２バスアービタを経て前記第２バスでのデータ転送の制御を要求し及び受信し、
前記第２バスでのデータ転送の制御を受信した後、前記バスブリッジが前記データ及び前記対応するアドレスを前記第２バスに転送し、さらに、
第２バス装置が前記第２バスから前記データ及び前記対応するアドレスを受信し、前記データ及び前記対応するアドレスを記憶すること、
によって、前記バスブリッジを経て前記第１バスから前記第２バスへデータを転送し、
前記データ転送システムは、
前記第１マスタがデータ要求及び対応するアドレスを前記バスブリッジに転送し、
前記バスブリッジが前記第２バスアービタを経て前記第２バスでのデータ転送の制御を要求し、
前記第２バスでのデータ転送の制御が要求されると、前記バスブリッジが前記読み取りタイムアウトカウンタを始動させ、
前記書き込みバッファにデータ及び対応するアドレスが記憶されている場合に、前記第１バスから前記第２バス装置への前記データ転送が終了するまで、前記第２バスから前記第１バスへの前記データ転送を機能停止させ、
前記バスブリッジが前記第２バスアービタを経て前記第２バスでのデータ転送の制御を受信し、
前記第２バスでのデータ転送の制御を受信した後に、前記バスブリッジが前記読み取りタイムアウトカウンタを停止させ、前記対応するアドレスを前記第２バスに転送し、
前記バスブリッジが前記第２バスから前記データを受信し、
前記バスブリッジが前記第１バスに前記データを転送し、さらに、
前記所定時間が経過すると、前記読み取りタイムアウトカウンタが前記中央処理装置マスタ装置に割り込みを生成すること、
によって、前記バスブリッジを経て前記第２バスから前記第１バスへデータを転送する、
前記データ転送システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明の技術分野は、コンピュータシステム内におけるデータ転送およびデータバスシステムである。
【０００２】
【従来の技術】
コンピュータシステムがますます複雑になるのに伴い、チップ内において、またチップから外部装置へ、またその逆に、データを転送するために、多重プロセッサおよびさまざまな周辺装置を用いることが一般的になってきた。そのようなシステムは、ほとんど常に、便宜およびパフォーマンス上の理由で、同様の装置の間の通信を分離するバスの多重セットを有する。多重バスシステムは、分離されたバスの間の、コヒーレントで衝突のない通信を可能にするバス制御装置を備えていなければならない。この目的のために、マイクロコントローラが用いられ、それらのマイクロコントローラは、与えられた時刻において、いずれの装置が問題となっているバスの制御を行うかを決定するバスアービトレーションを行う。
【０００３】
優れた標準バスシステムが、高パフォーマンスのマイクロコントローラの設計を実現するために出現した。「高度マイクロコントローラバスアーキテクチャシステム（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ−ｃｏｎｔｒｏｌｌｅｒ  Ｂｕｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｙｓｔｅｍ）」、すなわちＡＭＢＡは、アドバンストＲＩＳＣマシンズ（Ａｄｖａｎｃｅｄ  ＲＩＳＣ  Ｍａｃｈｉｎｅｓ）（ＡＲＭ）社（英国ケンブリッジ）により定められ、１９９８年４月１４日付の米国特許第５，７４０，４６１号に説明されている。ＣＩＳＣ種（variety）のコンピュータシステムは、複合命令セットコンピュータであり、全てのバージョンについて全後方互換性（total backward compatibility）を必要とする。ＲＩＳＣ（簡略命令セットコンピュータ）システムは、対照的に、簡単な命令セットと、最大化された動作効率とを有するように設計される。複合動作は、ＲＩＳＣマシンにおいても行われるが、それらは簡単な命令の組合せを用いることにより行われる。ここで主な関心の対象となるのは、ＡＭＢＡアーキテクチャを形成するＡＲＭ社のＲＩＳＣマシンである。
【０００４】
標準ＡＭＢＡは、２つのメインバス、すなわち、高パフォーマンスのＡＨＢバスと、中程度パフォーマンスの周辺バスＡＰＢと、を有する。ＡＨＢバスはメインメモリバスであり、ＲＡＭと、外部メモリ制御装置とを含む。この基本システムの定義において、もし大量のデータを転送する高パフォーマンス周辺装置が必要ならば、この周辺装置もまた、高パフォーマンスＡＨＢバス上に置かれる。しかし、これは、システムパフォーマンスを低下させる。そのわけは、その周辺装置がそのバスの制御を行う時、中央処理装置（ＣＰＵ）は、メモリへアクセスしえないからである。
【０００５】
アドバンストＲＩＳＣマシン社（ＡＲＭ）は、ＣＰＵおよび高パフォーマンス周辺装置が単一ＡＨＢバスのバス時間を共用することを許容する、効率的なアービトレーションシステムおよび分割転送を提案している。ＡＲＭはまた、分離と、単一アービタの使用とのための第２バスの使用を提案している。この提案は、与えられた期間において１つのトランザクションのみが進行することをなお許容する。
【０００６】
【発明が解決しようとする課題】
本発明は、２つの分離した完全自律ＡＨＢ形バスを用いる、多重トランザクション高度高パフォーマンスバス（ＭＴＡＨＢ）システムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
これらのバスのそれぞれは、それ自身のバスアービトレーションシステムを有し、これらのバスアービトレーションシステムは、２つのＡＨＢ形バス上における同時動作を考慮したデコーディングを行う。第１バス、すなわち高パフォーマンスメモリバスは、ＡＲＭのＡＭＢＡ仕様におけるＡＨＢバスと正確に同様に定められる。このＡＨＢバスは、バスマスタとしてのＣＰＵおよび直接メモリアクセス（ＤＭＡ）と、バススレーブとしての外部メモリインタフェース制御装置および内部メモリと、を含む。第２バス、すなわち高パフォーマンス周辺装置バス（ＨＴＢ）もまた、ＡＲＭのＡＭＢＡ仕様におけるＡＨＢバスと正確に同様に定められる。ＨＴＢは、必要な高パフォーマンス周辺装置およびローカルＲＡＭを含む。これら２つのバスは、ＡＨＢ−ＨＴＢバスブリッジにより分離され、またＡＨＢ−ＨＴＢバスブリッジと同期せしめられる。
【０００８】
本発明の拡張ＡＭＢＡシステムは、多重トランザクション高度高パフォーマンスバスシステム（ＭＴＡＨＢ）と呼ばれ、このシステムは、ＣＰＵおよび高パフォーマンス周辺装置が同時にバス動作を行うことを許容する。これは、これらの装置が２つの分離したＡＨＢバス上に存在し、これらのＡＨＢバスが個々に自律的アービトレーションを行うために実現される。任意の与えられた時刻に、１つのバスマスタ（ＣＰＵ、ＤＭＡ、または高パフォーマンス周辺装置）のみが単一のＡＨＢバスを用いる代わりに、２つのバスマスタがシステム内において同時に動作しうるので、システムのパフォーマンスは向上する。このスキームにおいては、ＡＨＢバスのメモリバスマスタと、ＡＨＢバスの高パフォーマンス周辺装置マスタと、の双方が、それらの個々のＡＨＢ形バスの制御を行い、同時に動作しうる。
本発明のこれらの特徴およびその他の特徴は、添付図面に示されている。
【０００９】
【発明の実施の形態】
本発明の多重トランザクション高度高パフォーマンスバスシステム（ＭＴＡＨＢ）は、アドバンストＲＩＳＣマシン社（ＡＲＭ）のマイクロコントローラバスアーキテクチャ（ＡＭＢＡ）をアップグレードしたものとして用いられる。ＡＭＢＡマシンは、ＡＲＭプロセッサという名称により識別されるＲＩＳＣプロセッサを用いる。アドバンストＲＩＳＣマシン社（英国ケンブリッジ）は、１９９８年４月１４日付の米国特許第５，７４０，４６１号を裁定され、それにこの種のマシンが詳述されている。本発明において用いられる技術は、以下に示されるように、より広い適用性を有し、多重バスアーキテクチャを有するさまざまな多重プロセッサシステムにおいて用いられうる。
【００１０】
図１は、ＡＭＢＡの標準を示す。ＡＭＢＡは、２つのメインバス、すなわち、高度高パフォーマンスバス（ＡＨＢ）１００と、より中程度パフォーマンスの高度周辺バス（ＡＰＢ）１２０と、を有する。ＡＨＢバス１００は、メインメモリバスであり、ＣＰＵ高度高パフォーマンスメモリバスインタフェース１０６を経てＣＰＵ１０１に結合し、また、ランダムアクセスメモリ（ＲＡＭ）１０７と、読取り専用メモリ（ＲＯＭ）１０８と、外部メモリインタフェース（ＥＭＩ）制御装置１０２と、に結合する。図１はさらに、やはりＡＨＢバス１００に結合する、第２マスタ装置の直接メモリアクセス（ＤＭＡ）ユニット１０３を示している。２つのマスタ、すなわちＣＰＵ１０１とＤＭＡ１０３との間のバスアクセスのためのアービトレーションは、Ｍバスアービタ１１０において行われる。Ｍバスアービタ１１０は、Ｍバスデコーダ１１１および選択線１１２を経て、さまざまなスレーブ装置へのアクセスを制御する。この基本システムの定義において、もし大量のデータを転送する高パフォーマンス周辺装置が必要ならば、この周辺装置もまた高パフォーマンスＡＨＢバス１００上に置かれる。図１は、そのような高パフォーマンス周辺装置１３０を示す。この高パフォーマンス周辺装置１３０をＡＨＢバス１００上に置くと、システムパフォーマンスを低下させる。そのわけは、高パフォーマンス周辺装置１３０がＡＨＢバス１００の制御を行う時は、ＣＰＵ１０１およびＤＭＡ１０３が、メモリへのアクセスを行いえないからである。ＡＲＭは、ＣＰＵ１０１、ＤＭＡ１０３、および高パフォーマンス周辺装置１３０が、単一ＡＨＢバス１００のバス時間を共用しうるようにする、効率的なアービトレーションスキームおよび分割転送を提案した。
【００１１】
ＡＲＭはまた、分離と、単一アービタの使用と、のための第２バスの使用を提案した。図１に示されているように、この第２バスは、高度周辺バス（ＡＰＢ）１２０と呼ばれる。ＡＰＢバス１２０は、ＡＨＢバス１００と同様に動作する。ＡＰＢバス１２０は、ＡＨＢ−ＡＰＢバスブリッジ１０９を経てＡＨＢバス１００に接続されている。ＡＨＢ−ＡＰＢバスブリッジ１０９は、ＡＨＢバス１００に対するスレーブである。単一のＭバスアービタ１１０を有するこの２バスシステムは、与えられた期間において進行する１つのトランザクションのみを許容するので、制限された有用性を有する。メモリおよび高パフォーマンス周辺装置１３０を含む全ての高パフォーマンス装置は、ＡＨＢバス１００上にあることに注意すべきである。ＵＡＲＴ１１５と、タイマ１１６と、キーパッド１１７と、周辺装置１２１ないし１２２と、を含む全ての中程度パフォーマンスの周辺装置は、周辺バス１２０上に存在する。
【００１２】
図２は、この標準ＡＭＢＡシステムにおいて実行されるべき指令のために、ＡＨＢバスの制御を要求するマスタと、アービトレーションの決定を行うアービタおよびマスタにより選択されたスレーブと、の間の信号の流れを示す。ＡＨＢバスアービタ１１０、ＡＨＢマスタ２００、およびＡＨＢスレーブ２１０のそれぞれは、リセット信号ＨＲｓｅｔｘ２２２およびクロック信号ＨＣｌｏｃｋｘ２２３を受ける。ＡＨＢマスタ２００は、ＨＢｕｓＲｅｑｘ信号２３１を起動することによりＡＨＢアービタ１１０への要求を行う。ＡＨＢマスタ２００は、ＨＧｒａｎｔｘ信号２３２によりＡＨＢアービタ１１０からの許可を受ける。ＡＨＢマスタ２００は、その認可を確認し、このアービトレーション決定をＨＬｏｃｋ信号２３３によりロックする。次に、ＡＨＢマスタ２００は、アドレス２０５をＡＨＢデコーダ１１１へ送る。ＡＨＢデコーダ１１１は、選択されるスレーブ装置へ供給される選択信号１１２を起動する。この例においては、選択されるスレーブ装置はＡＨＢスレーブ２１０である。ＡＨＢマスタ２００とＡＨＢスレーブ２１０との間のやりとり（interaction）は、制御信号２１３により完了され、ＨＲｅｓｐ信号２１１およびＨＲｅａｄｙ信号２１２によりアクノリッジされる。読取りおよび書込み動作のためのデータは、ＡＨＢバス１００を経て、全てのマスタと全てのスレーブとの間を流れる。ＡＨＢスレーブ２１０は、ＨＲＤａｔａ〔３１：０〕バス２０６を経てＡＨＢバス１００へデータを供給し、ＨＷＤａｔａ〔３１：０〕バス２０７を経てＡＨＢバス１００からデータを受取る。同様にして、ＡＨＢマスタ２００は、ＨＲＤａｔａ〔３１：０〕バス２０８を経てＡＨＢバス１００からデータを受取り、ＨＷＤａｔａ〔３１：０〕バス２０９を経てＡＨＢバス１００へデータを供給する。この点に関し、読取りおよび書込みは、ＡＨＢマスタ２００の観点から考えられていることに注意すべきである。従って、データ読取りにおいては、データは、ＡＨＢスレーブ２１０からＨＲＤａｔａ〔３１：０〕バス２０６を経てＡＨＢバス１００へ、さらにＡＨＢバス１００からＨＲＤａｔａ〔３１：０〕バス２０８を経て流れる。もちろん、与えられた時刻において１つのマスタのみが起動され、このマスタは１つのスレーブのみを選択し、そのスレーブに対し転送（読取りまたは書込み）指令を実行する。
【００１３】
図３は、本発明の多重トランザクション高度高パフォーマンスバスシステム（ＭＴＡＨＢ）を示す。このＭＴＡＨＢは、２つのＡＨＢ形バス、すなわち、メモリバスとして保存されたＡＨＢバス３００と、高データ転送バスとして配設されたＨＴＢバス３３０と、を用いている。ＡＨＢバス３００は、ＡＨＢバスアービタ／デコーダ３１４を有し、ＨＴＢバス３３０は、ＨＴＢバスアービタ／デコーダ３１６を有する。ＡＨＢバス３００とＨＴＢバス３３０との間の通信は、ＡＨＢ−ＨＴＢバスブリッジ３１５を経て行われる。ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＡＨＢバス３００とＨＴＢバス３３０との間の分離以上のことを提供する。ＡＨＢ−ＨＴＢバスブリッジ３１５はまた、２つの高パフォーマンスバスの間の効率的な通信を可能にする。この点に関し、ＭＴＡＨＢは、以下の３つの主要機能を備えている。
１．ＨＴＢバス３３０への書込みの間におけるＣＰＵ３１０の機能停止の回数を減少させるための書込みバッファ。
２．もしＨＴＢバス３３０の読取りが長くかかり過ぎるならば、ＣＰＵ３０１がタスクを変更しうるようにするタイムアウトカウンタ。
３．バスマスタ装置において必要とされる、制御レジスタおよび制御論理のセット。
【００１４】
ＡＨＢバス３００は、スレーブとして、メモリと、ＡＰＢバス３２０へのＡＨＢ−ＡＰＢバスブリッジ３０９およびＨＴＢバス３３０へのＡＨＢ−ＨＴＢバスブリッジ３１５と、に密接に関連するブロックのみを含むべきである。ＡＰＢバス３２０は、図１に示されている場合と同様に、中程度パフォーマンス周辺装置３２１ないし３２２に接続されていることに注意すべきである。ＨＴＢバス３３０は、バススレーブ周辺装置３３１および３３２と、バスマスタ周辺装置３３３と、ＲＡＭ３３５と、を含む。ＨＴＢバス３３０は、２つのバスマスタ、すなわち、高優先順位データ転送バスマスタ周辺装置３３３と、ＡＨＢ−ＨＴＢバスブリッジ３１５と、のみをサポートする。もしもっと多くのバスマスタが必要ならば、スレーブとしてＡＨＢバス３００上に接続されるもう１つのＡＨＢ−ＨＴＢバスブリッジの使用により、もう１つのＨＴＢバスが追加されうる。
【００１５】
図４は、ＭＴＡＨＢシステムの主要な信号の流れの特徴を示す図である。図４においては、図３に示されているＡＨＢバスアービタ／デコーダ３１４は、ＡＨＢアービタ４１０およびＡＨＢデコーダ４１１により表されている。図４においては、図３に示されているＨＴＢバスアービタ／デコーダ３１６は、ＨＴＢバスアービタ４２０およびＨＴＢバスデコーダ４２１により表されている。ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＨＴＢバス３３０上においてはマスタであるが、ＡＨＢバス３００上においてはスレーブであることに注意すべきである。ＨＴＢバスアービタ３３３はＡＨＢバスアービタ３１０と異なる。リアルタイムアプリケーションにおいては、ＨＴＢ周辺装置３３３をトリガするイベントは、ＣＰＵ３０１の外部で起こる。ＨＴＢ周辺装置３３３から、もう１つの周辺装置またはＲＡＭでありうるその宛先への、データのスピーディな転送を保証する優先順位スキームが作成されなければならない。ＡＨＢバスアービトレーションに固有の非決定性動態（non-deterministic behavior）により、高データ転送バスアービタ４２０は、最高チャネル上の周辺装置へのＨＴＢバス３３０を常に認可する。
【００１６】
図４を参照すると、たとえＡＨＢ−ＨＴＢバスブリッジ３１５がＨＴＢバス３３０の制御を行っていても、もし他のバスマスタＨＴＢ周辺装置３３３が制御を要求すれば、ＨＴＢバスアービタ４２０は現在のＡＨＢ−ＨＴＢ動作を中断し、ＨＴＢ周辺装置３３３に対し制御を認可する。この機能停止中に、ＡＨＢ−ＨＴＢバスブリッジ３１５は、書込みバッファ内への書込み動作を受入れる。もし読取り動作中に機能停止すれば、ＡＨＢ−ＨＴＢバスブリッジ３１５はタイムアウトカウンタ６０２（図６）を始動させる。
【００１７】
ＨＴＢバス３３０上に存在しうるマスタは２つのみ、すなわち、ＨＴＢ周辺装置３３３と、ＡＨＢ−ＨＴＢバスブリッジ３１５と、である。ＨＴＢ周辺装置３３３は、ＡＨＢ−ＨＴＢバスブリッジ３１５よりも高い優先順位を占める。
【００１８】
図５は、ＡＨＢバスアービタ４１０と、ＨＴＢバスアービタ４２０との間のやりとりを示す。ＣＰＵ３０１またはＤＭＡ３０３のような、ＡＨＢバス３００上の装置が、ＨＴＢバス３３０上の装置と通信することを望むときは、以下の諸ステップが行われなければならない。まず、前記装置（ＣＰＵ３０１またはＤＭＡ３０３）は、ＡＨＢバス３００上におけるアービトレーションを達成しなければならない。これは、多重化動作として図示されており、そこではＡＨＢバスアービタ４１０の制御下にあるマルチプレクサ５０９が、ＣＰＵ３０１またはＤＭＡ３０３を選択的にＡＨＢバス３００に結合させる。実際のインプリメンテーションにおいては、通常、前記バスに取付けられたそれぞれの装置からの３状態Ｉ／Ｏインタフェース段へ結合させる。
【００１９】
次に、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＨＴＢバス３３０上におけるアービトレーションを達成しなければならない。これもまた多重化動作として図示されており、そこではＨＴＢバスアービタ４２０の制御下にあるマルチプレクサ５２０が、ＡＨＢ−ＨＴＢバスブリッジ３１５またはＨＴＢバスマスタ３３３を選択的にＨＴＢバス３３０に結合させる。前記アービトレーションが未決定であるこの期間中に、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＨＴＢアービトレーションを待つ間ＡＨＢバス３００をホールドしておかなければならない。これは、システムパフォーマンスを深刻に劣化させる。そのわけは、この期間中、ＡＨＢバス３００上の動作を行えないからである。ＡＨＢバス３００は、たいていのシステムにおいて、最も活動的なバスである。書込み状態中におけるこの機能停止状態を除去するために、ＡＨＢ−ＨＴＢバスブリッジ３１５内に書込みバッファが備えられる。
【００２０】
図６は、ＡＨＢ−ＨＴＢバスブリッジ３１５の内部構成を示す。図示されているように、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＦＩＦＯ制御６０１と、ブリッジ制御論理６０３と、ＡＨＢ−ＨＴＢタイムアウトカウンタ６０２と、を含む。制御レジスタ６４０（ＣＴＲＬレジスタ６４１、ＳＴＡＴレジスタ６４２、およびＣＮＴＶＡＬレジスタ６４３を含む）のフルコーディングは、以下に説明する。制御レジスタ６４０のそれぞれの制御レジスタは、ＣＰＵ３０１によりアクセス可能である。書込みバッファは、本質的に１対のＦＩＦＯ６１０および６２０であり、これらはそれぞれ入力レジスタ段６０９および６１９を有する。アドレスＦＩＦＯ６１０およびデータＦＩＦＯ６２０は、同数の段を有する。図６は、４段の例を示す。メモリバスアドレスラッチ６０９は、ＡＨＢバス３００からのフルアドレスをラッチする。メモリバスデータラッチ６１９は、ＡＨＢバス３００からのデータをラッチする。これは、アドレスまたはデータが通常ラッチされた後にメモリへライトバックされる、キャッシュスキームにおいて用いられる伝統的な書込みバッファとは異なる。本発明の書込みバッファは、ＡＨＢバス装置が、アービトレーションを待つ必要なく、ＨＴＢバス装置へデータを書込むことを可能にする。書込みバッファがフル状態にない限り、ＡＨＢバス３００は、ＨＴＢバス３３０に関するアービトレーションを待つために機能停止することはない。
【００２１】
もし書込みバッファＦＩＦＯ６１０および６２０がフル状態になれば、ブリッジ制御論理６０３は、ＳＴＡＴレジスタ６４２内にＷＢＦＵＬＬ状態（ステータス）ビットをセットする。もし割込みが、ＣＴＲＬレジスタ６４１のＷＢＦＵＬＬＥビットにより使用可能にされれば、ブリッジ制御論理６０３は割込みＷＢＦＵＬＬＩ６６１を発生する。もしＡＨＢバス３００が、書込みバッファＦＩＦＯ６１０および６２０がフル状態である時にもう１つのワードを書込めば、前のワードは上書きされて失われる。これらの条件下において、もしＳＴＡＴレジスタ６４２のＷＢＯＩビットによりオーバラン割込みが使用可能にされれば、ブリッジ制御論理６０３はＯＶＲＲＵＮ割込み６６３を発生する。データの損失を防止するためには、それぞれの書込み装置のソフトウェアが、オーバラン条件が作られないようにしなければならない。フルバッファが空になった時、もしＳＴＡＴレジスタ６４２のＷＢＥＭＴＹＥビットがそのような割込みを使用可能にすれば、ブリッジ制御論理６０３は、もう１つの割込みＷＢＥＭＴＹ６６２を発生する。
【００２２】
ＨＴＢバス周辺装置へ書込むためには、ＣＰＵ３０１またはＤＭＡ３０３は、ＡＨＢバスアービタ４１０によりＡＨＢバス３００の制御をまず認可されなければならない。次に、ＡＨＢ−ＨＴＢバスブリッジ３１５が、ＨＴＢバスアービタ４２０によりＨＴＢバス３３０の制御を認可されなければならない。ＡＨＢ−ＨＴＢバスブリッジ３１５がＨＴＢバス３３０の制御を認可された時、ＡＨＢ−ＨＴＢバスブリッジ３１５は、アドレスＦＩＦＯ６１０内にラッチされているアドレスを、ＨＴＢバスデコーダ４２１へ供給する。ＨＴＢバスデコーダ４２１は、このアドレスをデコードし、図１および図２に示されている選択信号１１２に類似した、必要なチップ選択信号を供給する。全システムは１つしかメモリマップを含まないので、これは、他のバス上の他の装置とのコンフリクトを起こさない。このアドレスをＨＴＢバス３３０上に発生した時、ＡＨＢ−ＨＴＢバスブリッジ３１５は、標準ＡＨＢバスタイミングに従い、そのアドレスを、データを出力する１サイクル前にパイプライン処理する。
【００２３】
生じうるリードアフタライト（ＲＡＷ）エラーを防止するために、もし書込みバッファＦＩＦＯ６１０および６２０内にデータがあれば、ＡＨＢ−ＨＴＢバスブリッジ３１５は、書込みバッファＦＩＦＯ６１０および６２０がクリアし終わるまで、ＨＴＢバス３３０からの読取りを許容しない。もし読取り要求が行われれば、書込みバッファＦＩＦＯ６１０および６２０がデータを空にしつつある間に、タイムアウトカウンタ６０２がスタートする。
【００２４】
図６を再び参照すると、ＡＨＢバス３００から最初のワードがＡＨＢ−ＨＴバスブリッジ３１５へ書込まれる時、フルアドレスはメモリバスアドレスラッチ６０９内にラッチされ、データはメモリバスデータラッチ６１９内にラッチされる。ラッチされた時、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＨＴＢバス３３０に対し要求ＨＢｕｓＲｅｇＷｒｉｔｅ６５１を行う。認可は、認可信号ＨＧｒａｎｔｘ６５３によりアクノリッジされる。もし認可されれば、メモリバスアドレスラッチ６０９内のアドレスはＨＡｄｄｒバス６１１へ供給され、メモリバスデータラッチ６１９内のデータは、ＦＩＦＯ６１０および６２０をバイパスしてＨＤａｔａバス６２１へ供給される。アービタインタフェース６０５はまた、ＨＴＢアービタ４２０へのＨＬｏｃｋｘ信号６４６を発生する。もし認可されなければ、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＦＩＦＯ６１０および６２０がフル状態になるまで、もっと多くのアドレスおよびデータをＦＩＦＯ６１０および６２０内に記憶しうる。ＦＩＦＯ６１０および６２０がフル状態になった時、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＡＨＢバス３００上のマスタへ非ＲＥＡＤＹイベント６３２を送る。
【００２５】
タイムアウトカウンタ６０２は、ＡＨＢ−ＨＴＢバスブリッジ３１５が、ＨＴＢバス３３０の制御を行うためのアービトレーションを試みる時にスタートする。タイムアウトカウンタ６０２のカウントは、ＣＮＴＶＡＬレジスタ６４３内に記憶されている値により初期化される。タイムアウトカウンタ６０２は、ＣＴＲＬレジスタ６４１のＴＯＥビットの状態により、選択的に使用可能にされる。タイムアウト時には、ブリッジ制御論理が、ＳＴＡＴレジスタ６４２のＴＯＩビットをセットする。もしタイムアウト割込みが、ＣＴＲＬレジスタ６４１のＴＯＩＥビットにより使用可能にされれば、制御レジスタ６４０はまた、タイムアウト割込み６６４を発生する。そのようなタイムアウトに続き、ＡＨＢ−ＨＴＢバスブリッジ３１５がＡＨＢ−ＨＴＢバス３３０の制御を認可された時、ブリッジ制御論理６０３は、状態レジスタ６４２のＲＡＩビットをセットする。さらに、ＡＨＢ−ＨＴＢバスブリッジ３１５は、もしＲＡＩ割込みがＣＴＲＬレジスタ６４１のＲＡＩＥビットにより使用可能にされれば、読取り可能割込み（ＲＡＩ）６６５を発生する。
【００２６】
以下は、図６のブロック６４０として示されている３つの制御レジスタの内容の要約であり、これらのレジスタは、ＡＨＢ−ＨＴＢバスブリッジ３１５の部分である。制御レジスタＣＴＲＬ６４１のコーディングは、テーブル１内にリストされている。
【００２７】
【表１】
0004729208.tif 000002
【００２８】
書込みバッファイネーブルビット（ＷＢＥ）に関しては、書込みバッファのサイズは製造時に決定される。図６の例は、４段の書込みバッファを含む。タイムアウト割込みイネーブルビット（ＴＯＩＥ）に関しては、タイムアウトカウンタ６０２が０ｘ００に達した時に、割込みが発生される。もしこのビットがセットされれば、割込みはＣＰＵ３０１へ送られる。タイムアウトイネーブルビット（ＴＯＥ）に関して言えば、このビットは、タイムアウトカウンタ６０２を選択的に使用可能にする。これは、もしＡＨＢ−ＨＴＢバスブリッジ３１５が、タイムアウトカウンタ６０２の期間内にＨＴＢバス３３０に関するアービトレーションを達成しえなければ、ＣＰＵ３０１を自由にして別のタスクを行わせるために用いられうる。
状態レジスタＳＴＡＴＵＳ６４２のコーディングは、テーブル２にリストされている。
【００２９】
【表２】
0004729208.tif 000003
【００３０】
書込みバッファフルビット（ＷＢＦ）に関して言えば、このビットは一般に、ＡＨＢ−ＨＴＢバスブリッジ３１５への書込みにより何時全書込みバッファがいっぱいにされ、書込みバッファＦＩＦＯ６１０および６２０がデータをＨＴＢバス３３０へ書込む機会を失ったか、を検出するために用いられる。このビットは、書込みバッファＦＩＦＯ６１０および６２０内の単一位置が解放されると直ちに非活性（inactive）になる。もし書込みバッファＦＩＦＯ６１０および６２０がフル状態であり、もう１つの書込みが行われれば、書込みバッファ内の前のデータは失われる。書込みバッファ空ビット（ＷＢＥＭＴＹ）に関して言えば、このビットは、全書込みバッファＦＩＦＯ６１０および６２０が空である時にアクティブである。もし書込みバッファＦＩＦＯ６１０および６２０が前にフル状態になっていて、その後空になったとすれば、割込みが発生される。読取り可能割込みビット（ＲＡＩ）に関して言えば、このビットは、タイムアウトが起こった後、ＡＨＢ−ＨＴＢバスブリッジ３１５が最終的にアービトレーションを達成したこと、およびＡＨＢバス装置が読取りを始めうること、を表示する。書込みバッファオーバラン割込みビット（ＷＢＯＩ）に関して言えば、このビットは、前記バッファがフル状態にあり、あるデータを上書きするもう１つの書込みが行われたことを表示する。これは、通常の動作において起こってはならないことである。書込みバッファＦＩＦＯ６１０および６２０がフル状態にある時は、ＡＨＢバス３００上のＨＲｅａｄｙ信号６３２は、ＡＨＢ−ＨＴＢバスブリッジ３１５によりハイにされ、もう転送が行われてはならないことを表示する。書込みバッファフルビット（ＷＢＦ）に関して言えば、このビットは、書込みバッファＦＩＦＯ６１０および６２０がフル状態にあり、新しいデータを受入れえないことを表示する読取り専用状態信号である。アクティブである時、書込みバッファフルビット（ＷＢＦ）はまた、ＨＲｅａｄｙ信号６３２がＡＨＢ−ＨＴＢバスブリッジ３１５に対しアクティブであることを表示する。タイムアウト割込みビット（ＴＯＩ）に関して言えば、このビットは、タイムアウトカウンタ６０２が０に達した時にアクティブになる。このタイマは、ＨＴＢ３３０への読取り中に、ＣＰＵ３０１に代わってＡＨＢ−ＨＴＢバスブリッジ３１５によりアービトレーションを達成するために、もし受入れられない量の時間が必要になれば、ＣＰＵ３０１が別のタスクへスイッチし、有用な作業を行いうるように備えられる。
カウンタ値レジスタＣＮＴＶＡＬ６４３のコーディングは、テーブル３にリストされている。
【００３１】
【表３】
0004729208.tif 000004
【００３２】
カウンタ値レジスタＣＮＴＶＡＬ６４３は、タイムアウトカウンタ６０２のスタート値を記憶する。タイムアウトカウンタ６０２のカウントの満了時に、もしＣＴＲＬレジスタ６４１のＴＯＩＥビットがそのような割込みを使用可能にしていれば、ブリッジ制御論理はタイムアウト割込み６６４を発生する。ＣＴＲＬレジスタ６４１のＴＯＥビットは、タイムアウトカウンタ６０３が使用可能にされるか、または使用禁止にされるかを制御することに注意すべきである。このカウンタは、読取り動作中に用いられうる。もし周辺装置が、すでにＨＴＢバス３３０のアービトレーションを達成しており、リアルタイムの制約により制御を放棄しなければ、ユーザはここで、どれだけ多くのＨＣＬＫサイクルを待った後にタイムアウト割込みを発生させるかを決定する値をプログラムしうる。このタイムアウト割込みは、ＡＨＢバス３００上のＣＰＵ３０１が、ＨＴＢバスの認可を待つのをやめ、別のタスクを実行するなど他の動作を行い続けることを許容する。
【００３３】
ＡＨＢ−ＨＴＢバスブリッジ３１５はさらに、ＨＴＢバスデータラッチ６２９を含む。ＨＴＢバスラッチ６２９は、ＨＲＤａｔａバス６２７を経てＨＴＢバス３３０から読取られたデータをラッチし、ＭＲＤａｔａバス６３１を経てＡＨＢバス３００へデータを供給する。ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＡＨＢバス３００に対するスレーブであることに注意すべきである。従って、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＡＨＢバス３００に対し読取りまたは書込み要求を行うことはできない。ＡＨＢ−ＨＴＢバスブリッジ３１５は、読取りまたは書込み要求を行うことができないので、それはＡＨＢバス３００へのアドレスを発生しえない。従って、ＡＨＢ−ＨＴＢバスブリッジ３１５は、ＨＴＢバスアドレスラッチを必要としない。
【００３４】
以上の説明に関して更に以下の項を開示する。
（１）データ転送システムにおいて、該システムが、
複数の第１バス装置であって、少なくとも１つの第１バス装置はデータを供給しうる第１バスデータ供給装置であり、少なくとも１つの第１バス装置はデータを受信しうる第１バスデータ受信装置であり、少なくとも１つの第１バス装置はデータ転送を要求しまた制御しうる第１バスマスタ装置である、前記複数の第１バス装置と、
前記複数の第１バス装置のそれぞれに接続された第１データバスであって、第１バスマスタ装置の制御を受け、第１バスデータ供給装置から第１バスデータ受信装置へデータを転送しうる、前記第１データバスと、
複数の第２バス装置であって、少なくとも１つの第２バス装置はデータを供給しうる第２バスデータ供給装置であり、少なくとも１つの第２バス装置はデータを受信しうる第２バスデータ受信装置であり、少なくとも１つの第２バス装置はデータ転送を要求しまた制御しうる第２バスマスタ装置である、前記複数の第２バス装置と、
前記複数の第２バス装置のそれぞれに接続された第２データバスであって、第２バスマスタ装置の制御を受け、第２バスデータ供給装置から第２バスデータ受信装置へデータを転送しうる、前記第２データバスと、
前記第１データバスおよび前記第２データバスに接続されたバスブリッジであって、該バスブリッジは、前記第１バスへデータを供給し、前記第１バスからデータを受信し、前記第２バスへデータを供給し、前記第２バスからデータを受信することができ、前記第１バス上のデータ転送を制御できず、前記第２バス上のデータ転送を制御できる、前記バスブリッジと、を含み、
それにより、前記データ転送システムは、
前記第２バスを経ての２つの第２バス装置間におけるデータの転送と無関係に且つ同時に、前記第１バスを経て２つの第１バス装置間においてデータを転送することができ、
前記バスブリッジを経て前記第１バスから前記第２バスへデータを転送することができ、
前記バスブリッジを経て前記第２バスから前記第１バスへデータを転送することができる、
前記データ転送システム。
【００３５】
（２）前記少なくとも１つの第１バスマスタ装置のそれぞれと、前記第１バスと、に接続された第１バスアービタであって、該第１バスアービタは、前記第１バス上における１つの、かつ１つのみの第１バスマスタへのデータ転送の制御を認可する、前記第１バスアービタと、
前記少なくとも１つの第２バスマスタ装置のそれぞれと、前記第２バスと、前記バスブリッジと、に接続された第２バスアービタであって、該第２バスアービタは、前記第２バス上における、それぞれの第２バスマスタおよび前記バスブリッジを含む装置のセットの１つ、かつ１つのみへのデータ転送の制御を認可する、前記第２バスアービタと、
をさらに含む、第１項に記載のデータ転送システム。
【００３６】
（３）少なくとも１つの第１バス装置が、前記第１バスへのデータの供給と、前記第１バスからのデータの受信と、の双方を行いうる第１バス供給／受信装置である、
第１項に記載のデータ転送システム。
【００３７】
（４）少なくとも１つの第１バス供給／受信装置が、データ転送の制御をさらに行いうる中央処理装置から成る、
第３項に記載のデータ転送システム。
【００３８】
（５）少なくとも１つの第１バス供給／受信装置が、データ転送の制御をさらに行いうる直接メモリアクセスユニットから成る、
第３項に記載のデータ転送システム。
【００３９】
（６）少なくとも１つの第１バス供給／受信装置が、データ転送を制御しえないメモリから成る、
第３項に記載のデータ転送システム。
【００４０】
（７）少なくとも１つの第１バス供給／受信装置が、データ転送の制御をさらに行いうる中央処理装置から成り、
前記少なくとも１つの第２バスマスタ装置が、前記中央処理装置の動作に対し非同期であるリアルタイムイベントに応答する、
第３項に記載のデータ転送システム。
【００４１】
（８）本発明は、２つの分離した完全自律ＡＨＢバス（３００、３３０）を用いる、多重トランザクション高度高パフォーマンスバスＡＨＢシステムを提供し、完全自律ＡＨＢバス（３００、３３０）のそれぞれは、それ自身のバスアービトレーションシステム（３１４、３１６）を有し、これらのバスアービトレーションシステムは、２つのＡＨＢバス上における同時動作を考慮したデコーディングを行う前記２つのバスは、ＡＨＢ−ＨＴＢバスブリッジ（３１５）により分離され、また該ブリッジと同期せしめられる。第１バス、すなわちメモリバスＡＨＢ（３００）は、バスマスタとしてのＣＰＵ（３０１、３０６）およびＤＭＡ（３０３）と、スレーブとしての外部メモリ制御装置（３０２）および内部メモリ（３０７、３０８）と、を含む。第２バス、すなわちデータ転送バスＨＴＢ（３３０）は、必要な高パフォーマンス周辺装置（３３３）およびローカルＲＡＭ（３３５）を含む。
【図面の簡単な説明】
【図１】従来のＡＨＢバスシステムを有する、従来技術の高度マイクロコントローラバスアーキテクチャＡＭＢＡのブロック図である。
【図２】ＡＭＢＡアーキテクチャにおける、従来技術の単一のマスタ、スレーブ、およびアービタの組合せの信号相互接続を示す。
【図３】２つのアービトレータを有する本発明の多重トランザクション２ＡＨＢ形バスシステムを有する、改善された高度マイクロコントローラバスアーキテクチャのブロック図である。
【図４】本発明の多重トランザクション２ＡＨＢバスシステム上の、マスタ、スレーブ、アービタ、およびデコーダの配置を示す。
【図５】ＡＨＢメモリバスアービタ機能と、ＨＴＢ高パフォーマンスデータ転送バスアービタ機能と、の間のやりとりを示す。
【図６】ＡＨＢ−ＨＴＢバスブリッジのブロック図である。
【符号の説明】
３００  ＡＨＢバス
３０１  ＣＰＵ
３０２  外部メモリ制御装置
３０３  直接メモリアクセスユニット
３０６  ＣＰＵとＡＨＢバスとの間のインタフェース
３０７  内部メモリ
３０８  内部メモリ
３１５  ＡＨＢ−ＨＴＢバスブリッジ
３３０  ＨＴＢバス
３３３  データ転送バスマスタ周辺装置
【図１】
0004729208.tif 000005
【図２】
0004729208.tif 000006
【図３】
0004729208.tif 000007
【図４】
0004729208.tif 000008
【図５】
0004729208.tif 000009
【図６】
0004729208.tif 000010