(57)【要約】  システムアーキテクチャおよび方法は、共通バス上での同期および非同期通信の両方を可能にする。同期インタフェースを使用してバスを介して確実に通信することのできる構成要素は、同期的に通信するよう構成される。同期通信を可能にするためにシステムクロック周波数を低下させなければならない構成要素は、非同期的に通信するよう構成される。バスコントローラは、バスアービトレーション、並びに構成要素間の同期対同期、同期対非同期、非同期対同期、および非同期対非同期転送を容易にする。物理的なレイアウト依存を受け入れるために、構成要素は同期または非同期通信用に設定可能なバスインタフェースを含んでいるので、通信が同期または非同期となるかの判定はレイアウトの完成後に行うことができる。同期または非同期インタフェースが使用されるか否かの判定は、実際のシステム性能次第であり、これによってシステム性能を最適化する動的な再構成が容易となる。
2005515548.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロックと、
前記複数の機能ブロック間の通信を容易にするよう構成されたバス構造とを具備してなり、
前記複数の機能ブロックの少なくとも１つの機能ブロックは、
前記バス構造を介しての通信が第１動作モードにおいて同期、且つ第２動作モードにおいて非同期となるように、２つの動作モードの何れか一方を与えるよう構成されたバスインタフェースアダプタを含んでいるシステム。
【請求項２】
前記バスインタフェースアダプタが、前記バスを介して通信される制御信号を遅延させる少なくとも１つの遅延機器を含み、
前記少なくとも１つの遅延機器は、前記第１動作モード中に迂回され、且つ前記第２動作モード中に制御信号を遅延させるために使用される、請求項１のシステム。
【請求項３】
前記少なくとも１つの機能ブロックが、複数の導電層を含む集積回路に組み込まれており、
前記バスインタフェースアダプタが、前記複数の導電層の上部層での相互接続の構成に基づいて前記第１または第２動作モードを与えるよう構成されている、請求項１のシステム。
【請求項４】
前記複数の機能ブロック間の前記通信を制御するよう構成され、且つ複数のバスインタフェースモジュールを含むバスコントローラを更に含み、
前記複数バスインタフェースモジュールの少なくとも１つのバスインタフェースモジュールは、前記バス構造を介して同期通信または非同期通信を選択的に与えるよう構成されている、請求項１のシステム。
【請求項５】
前記バスコントローラが、前記複数の機能ブロックの間で通信される制御信号を遅延させるよう構成された１つ以上の遅延機器を含み、これにより第１機能ブロックとの非同期通信および第２機能ブロックとの同期通信を使用する前記複数の機能ブロックの前記第１機能ブロックと前記第２機能ブロックとの間のデータ通信を容易にする、請求項４のシステム。
【請求項６】
前記バスコントローラは、複数の導電層を含む集積回路に組み込まれ、
前記少なくとも１つのバスインタフェースモジュールが、前記複数の導電層の上部層での相互接続の構成に基づいて前記同期または前記非同期通信を選択的に与えるよう構成されている、請求項４のシステム。
【請求項７】
前記バスコントローラは更に、
前記少なくとも１つの機能ブロックとの通信が同期通信を介して行われるか否かを決定し、
前記少なくとも１つの機能ブロックとの通信が同期通信を介して行われない場合のみ、前記バスインタフェースアダプタを前記第２動作モードにするよう構成されている、請求項４のシステム。
【請求項８】
通信バスを介して複数の機能ブロック間の通信を容易にする複数のバスインタフェースモジュールを具備し、
前記複数のバスインタフェースモジュールの少なくとも１つのバスインタフェースモジュールは、前記通信バスを介する同期または非同期通信を選択的に与えるよう構成されているバスコントローラ。
【請求項９】
前記少なくとも１つのバスインタフェースモジュールが非同期通信を与えるよう構成されている場合、通信バスを介して前記複数の機能ブロック間で通信される制御信号を遅延させるよう構成されている少なくとも１つの遅延機器を更に含む、請求項８のバスコントローラ。
【請求項１０】
前記バスコントローラは、第１機能ブロックとの非同期通信および第２機能ブロックとの同期通信を介して前記複数の機能ブロックの前記第１機能ブロックと前記第２機能ブロックとの間の通信を容易にすることが可能である、請求項８のバスコントローラ。
【請求項１１】
前記バスコントローラは、
前記複数の機能ブロックの少なくとも１つの機能ブロックとの通信が同期通信によって行われるか否かを決定し、
前記少なくとも１つの機能ブロックとの通信が同期通信によって行われない場合に、前記少なくとも１つの機能ブロックへの非同期通信を選択的に与えるよう構成されている、請求項８のバスコントローラ。
【請求項１２】
バス構造を介して通信する複数の機能ブロックを含むシステムにおける通信を容易にする方法であって、
前記複数の機能ブロックのレイアウトを作成し、
前記レイアウトに基づいて、前記複数の機能ブロックの少なくとも１つの機能ブロックに関連するクロックスキューを決定し、
前記クロックスキューに基づいて、前記バス構造を介する非同期または同期通信のために前記少なくとも１つの機能ブロックを選択的に構成することを含んでなる方法。
【請求項１３】
前記システムは、複数の層を有する集積回路に組み込まれており、
前記少なくとも１つの機能ブロックを選択的に構成することは、前記バス構造による非同期または同期通信を与えるように前記複数の層の上部層での相互接続の構成を決定することを含む、請求項１２の方法。
【請求項１４】
前記少なくとも１つの機能ブロックを選択的に構成することは、前記少なくとも１つの機能ブロックと前記バス構造との間で通信される制御信号を遅延させるように前記少なくとも１つの機能ブロックを構成することを含む、請求項１２の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステムおよび回路設計の分野に関し、特に同期または非同期バス通信を可能にするバスインタフェース構造に関する。
【背景技術】
【０００２】
従来、システム設計における基本的設計の選択対象の１つは、システム通信、特にシステムバスを介する通信が同期または非同期であるかである。一般に、同期設計によりデータ転送速度は非同期設計よりも高くなるが、実質的な設計制約がもたらされる。同期設計ではシステムにおける各基本的構成要素が共通の時間基準で動作していることを前提としているので、クロックスキューおよびスリューは同期設計においてうまく制御されなければならない。同期設計において、送信機器は、システムクロックのアクティブエッジに対して特定の期間または位相内でバスにデータを提供するよう構成される。同様に、受信機器は、システムクロックのアクティブエッジに対して特定の位相後にバスからデータを読み取るよう構成される。「アドバンスドハイパフォーマンスバス」（ＡＨＢ）に対する「アドバンスドマイクロコントローラバスアーキテクチャ」（ＡＭＢＡ）仕様においては、集積回路に対して共通して使用されるハイパフォーマンスバス「マスタ」機器はシステムクロックの立ち上がりエッジでバス上でアドレスまたはデータ情報を発し、また「スレーブ」機器は同一のシステムクロックの次の立ち上がりエッジでバスから情報を読み取る。システムクロックの期間が十分に長いとすると、マスタ機器が提供するデータは、スレーブ機器がバスからデータを読み取るときにバス上で安定した状態になる。つまり、設計によって、受信機器は、システムクロックの特定の位相で有効データが保障され、遅延することなしにデータを即座に読み取って処理することができる。しかし、伝搬遅延や他の要因によって、送信機器が使用する「システムクロック」が受信機器が使用する「システムクロック」とは異なる場合、受信機器はデータが遷移状態にあるときにバスからデータを読み取ることがある。
【０００３】
従来技術において知られているように、異なる位置に存在する信号の差またはスキューの実際の量は、システム設計が完了するまでは正確に決定できないことが多い。試作品試験の間は、一般的に最大距離または最大伝搬遅延によって分離される構成要素でシステムクロックを測定し、その後安全率を加えて最悪の動作条件を考慮に入れることにより、最大スキューが決定される。この最大スキューに基づいて、システムクロックの速度が適切に調整されて、最も離れた構成要素がこの最大スキューにもかかわらず同期的に確実に通信することができる。しかし、システムクロックは全ての構成要素に共通しているため、システムクロックのこの調整は、構成要素間の全てのバス通信をこの最悪状態の判定に事実上限定してしまう。実際、全ての構成要素は、最大距離で互いに分離されているように扱われる。多くの例において、システムクロックの速度を低下させて最も離れた構成要素でのシステムクロックのスキューを受け入れると、容認されない性能が得られてしまう。このような場合、一般に機能構成要素の構成を再構成することにより、また再構成が不十分で問題を解決できない場合は、特徴や機能を減らしてシステムのサイズを縮小し、これによって構成要素間の最大分離距離を縮小することにより、システムを再設計して最悪状態のスキューを減少させなければならない。従来技術において知られているように、主要システムの再設計の共通する原因は、あるシステムクロック速度を達成できないことにある。
【０００４】
一方、非同期設計は、共通のシステムクロックを有する全ての構成要素に依存しない。一般に、構成要素は独立したクロックを有しているので、それぞれの構成要素のクロックに対する各構成要素のクロックの位相またはスキューは不確定である。概念的には、非同期設計において、受信機器はその動作を調整して送信機器に対応させ、その後少なくとも次のクロック周期に、受信および送信機器は「同期」し、信頼度の高いデータ転送が生じる。しかし、受信システムが送信器と同期の関係を得るのに要する時間により、同一のシステムクロック周波数での同期設計と比較すると実効データスループット・レートが低下してしまう。しかし、効果的なことに、受信機器はデータ転送を行う前に同期状態を得るのに要する時間を認めるよう構成されているので、データ転送はクロックスキューとはほぼ無関係である。一般的な場合、非同期設計アーキテクチャは、構成要素間の分離距離とはほぼ無関係である。実際には、最大スキュー制限が課せられているので、最大分離距離が課せられて、容認可能な性能が得られ、また受信システムが必要とするプロセスが簡素化されて同期関係が達成される。
【発明の開示】
【０００５】
本発明の目的は、システムレベルでのデータスループットを最適化するシステムアーキテクチャおよび方法を提供することにある。本発明の別の目的は、全ての構成要素を最悪事態のクロック−スキュー状態に制限することなく同期バス通信を可能にするシステムアーキテクチャを提供することにある。本発明の更に別の目的は、同期または非同期通信に設定可能なバスインタフェース機器を提供することにある。
【０００６】
これらおよび他の目的は、共通バス上での同期および非同期通信を可能にするシステムアーキテクチャおよび方法を提供することによって達せられる。同期インタフェースを使用してバスを介して確実に通信することのできる構成要素は、同期的に通信するよう構成される。同期通信を可能にするためにシステムクロック周波数を低下させなければならない構成要素は、非同期的に通信するよう構成される。バスコントローラは、バスアービトレーション、並びに構成要素間の同期対同期、同期対非同期、非同期対同期、および非同期対非同期転送を容易にする。物理的なレイアウト依存を受け入れるために、構成要素は同期または非同期通信用に設定可能なバスインタフェースを含んでいるので、通信が同期または非同期となるかの判定はレイアウトの完成後に行うことができる。同期または非同期インタフェースが使用されるか否かの判定は、実際のシステム性能次第であり、これによってシステム性能を最適化する動的な再構成が容易となる。
【０００７】
本発明を、添付図面を参照し、例を用いて更に詳細に説明する。
【０００８】
全図面において、同一の参照番号は、同様または対応する特徴あるいは機能を示す。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明による共通バス構造を介する同期および非同期通信を可能なシステム１００の例のブロック図である。システム１００は、バス構造を介して互いに通信する複数の機能構成要素を含んでいる。より良く理解するために、本発明は、バストランザクションのイニシエータ１１０のパラダイム、およびイニシエータ１１０との通信の対象１２０を使用して示されている。機能構成要素は、イニシエータ１１０または対象１２０、あるいはイニシエータ１１０と対象１２０の両方であってもよい。メモリ構成要素は一般的にデータ転送を開始しないので、メモリ構成要素は例えば通常は唯一の対象１２０である。一方、単一のプロセッサシステムにおけるＣＰＵは、一般にどのような通信が発生するかを判別するため、通常はイニシエータ１１０である。しかし、ＣＰＵがバス構造を介して割り込みを許す場合、ＣＰＵは割り込みのイニシエータに対する対象１２０となる。このパラダイムを使用するので、イニシエータ１１０および対象１２０の役割は、データ転送の所望の方向（読取り／書き込み、送信／受信）とは無関係であることに注意する。
【００１０】
また容易に理解するため、本発明は、バス多重化及びアービトレーション、タイムアウト及びエラー制御などを含むバスの働きを管理する中央バスコントローラ１５０を使用して提示されている。当業者に明らかとなるように、本発明の原理は、分散バス制御を行うバス構造に適用可能であり、例えばアービトレーションおよび多重化機能が、各構成要素にバス競合を最小に抑えるように協働させることによって達成される
バスアーキテクチャは、「同報通信」バスおよび「指示」バスの両者を含んでいる。同報通信バスにおいて、複数の構成要素が共通してバスに直接接続されているので、各構成要素はバスに存在するデータを使用することが可能である。指示バスにおいては、バスに対するインタフェースは、ある時間においてどの機器をバスに接続するかを選択するマルチプレクサを介している。図１の例示システム１００は、イニシエータ１１０との通信用の指示バスと、対象１２０とのバス通信用の同報通信バスとを含むバス構造を示しており、本発明の原理が指示バス、同報通信バス、あるいはこれらの組合せに適用可能であることが示されている。
【００１１】
システム１００の構成要素１１０、１２０のそれぞれは、バスを介して通信するためのインタフェースアダプタ１１５、１２５を含んでいる。バスを介する通信は、太い矢印記号で示すデータと、シングル幅の矢印記号で示す制御信号を含んでいる。イニシエータ１１０の指示バス構造において、各インタフェースアダプタ１１５は、バスコントローラ１５０において、対応するインタフェースモジュール１１６を有している。データおよび制御信号の両者は、インタフェース１１５、１１６間で通信される。対象１２０の同報通信バス構造において、各インタフェースアダプタ１２５は、制御信号の対応する制御インタフェースモジュール１２６を有しているが、データインタフェースモジュール１２８は全ての対象１２０とのデータ通信に対して共通のインタフェースを提供する。
【００１２】
本発明の第１の側面によると、構成要素インタフェースアダプタ１１５、１２５の少なくとも１つは、同期または非同期通信を提供するよう構成することができる。好適には、構成要素インタフェースアダプタ１１５、１２５のそれぞれは最大の設計上の融通性を考慮して適合させることが可能であるが、選択メモリ機器などの幾つかの構成要素は特定の性能レベルを確保するために同期通信のみを提供するよう制約されることがある。
【００１３】
本発明の代表的な実施例においては、システムを構成する機能構成要素１１０、１２０および、設置されている場合バスコントローラ１５０は、システム１００の物理的構成を形成するようレイアウトされ、また好適なシステムクロック速度で同期通信を使用して確実に通信を行うことのできない構成要素１１０、１２０は、非同期通信を使用するよう構成される。つまり、特定の構成要素１１０または１２０でのクロックスキューが確実な同期通信を妨げる場合、その特定の構成要素１１０または１２０は、従来の同期バス設計で必要となるように、全ての構成要素１１０および１２０の性能を低下させるのではなく、たとえ性能レベルが低くても本質的に確実な非同期通信を行うよう構成される。機能構成要素１１０、１２０の好適なレイアウトにおいて、頻繁にアクセスされる構成要素１１０、１２０は一般に物理的構成の中心に設置され、あまりアクセスされることない構成要素１１０、１２０は中心領域から離れて設置される。このように、高性能同期通信モードに残る可能性の高い構成要素１１０、１２０は非常に頻繁にアクセスされる構成要素であり、これによって全体のシステム性能が最適化される。
【００１４】
図２は、本発明による同期または非同期通信用に適合させることの可能なバスインタフェース２００の例示ブロック図である。バスインタフェース２００は、レジスタ２１０、遅延要素２３０、および遅延要素２３０が迂回されるか否かを決定するスイッチ２２０を含む。好適な実施例において、遅延要素２３０はレジスタ２１０と同一のクロックを使用するクロック化要素であるが、実現を容易にするため、信号を遅延させる従来技術に共通の他の手段を使用することもできる。明示的なスイッチ２２０を図２に示すが、インタフェース２００の入力および出力間の信号経路における遅延要素２３０の使用または迂回は、以下に説明するようにデータ経路の遅延要素２３０の「ハードワイヤード」接続または排除によって行うことができる。同期または非同期通信を提供するこのバスインタフェース２００の使用を、図３のフロー図を参照して以下に説明する。
【００１５】
図３は、同期および非同期通信を可能なシステムを介するデータ転送の例示フロー図である。フロー図は、イニシエータ１１０および対象１２０の通信の間の図１のシステム１００の構成を示している。図３に示す例示構成は解説のために提示されており、イニシエータ１１０は命令−要求制御信号をアサートすることで通信を開始し、また指定された対象１２０が要求−完了制御信号をアサートすることで命令の実行を承認する従来の制御およびデータフロープロセスまたはプロトコルを説明することを意図している。他の通信プロトコルは従来技術において共通するものであり、またこれら他のプロトコルに対する本発明の原理の適用は、この開示において当業者に明らかとなるであろう。
【００１６】
イニシエータおよび対象インタフェースアダプタ１１５、１１６のそれぞれは、命令−要求インタフェース３１０、３６０、アドレス／データインタフェース３２０、３７０、および命令−完了インタフェース３３０、３８０をそれぞれ含んでいる。この例において、インタフェース３３０および３６０は、図２の例示インタフェース２００に相当する設定可能バスインタフェースとして示されている。バスコントローラ１５０は、対応するインタフェースモジュール３１１、３３１、３６１、３８１を含んでおり、そのモジュール３１１および３８１は設定可能バスインタフェースとして示されている。非同期または同期バス通信を達成する設定可能バスインタフェース３１１、３３０、３６０、３８１の構成を以下に説明する。
【００１７】
同期−同期通信
図３のイニシエータ１１０および対象１２０の両者が同期モードで構成されている場合、図３の設定可能バスインタフェース３１１、３３０、３６０、３８１のそれぞれは内部遅延要素（図２の２３０）を迂回するよう構成される。つまり、この構成において、インタフェース３１１、３３０、３６０、３８１のそれぞれは論理的にはレジスタ（図２の２１０）のみから構成されており、各クロック周期で従来の同期レジスタ対レジスタ転送を使用した通信が発生する。この構成において、イニシエータ１１０は、インタフェース３１０および３２０をそれぞれ介してバスコントローラ１５０に命令−要求制御信号と命令を同時に送信する。バスアービタおよびマルチプレクサ１４０はこの情報を受信し、バスをイニシエータ１１０に割り当てる。同時に、アドレスデコーダ３４０は命令に含まれる目的のアドレスをデコードし、アドレス指定された対象１２０に命令−選択信号をアサートし、これはインタフェース３６０で受信される。対象１２０は、このデータ転送に対して対象１２０内の指示アドレスを含む、一般的には読み取りまたは書き込みデータ転送命令などの命令を処理する。対象１２０がこの命令を実行可能になると、対象１２０はインタフェース３８０を介してバスコントローラ１５０に命令−完了制御信号をアサートし、この信号は次にイニシエータ１１０に送られ、インタフェース３３０で受信される。
【００１８】
命令がイニシエータ１１０から対象１２０にデータを転送するための書き込み命令である場合、送信されるデータはインタフェース３２０に存在すると同時に、書き込み命令−要求信号がインタフェース３１０によりアサートされる。次に、対象１２０は、対応する命令−選択制御信号がインタフェース３６０で受信されたときにデータインタフェースレジスタ１２８に存在するデータを受信し、インタフェース３８０を介して命令−完了制御信号をアサートする。対応する命令−完了制御信号がインタフェース３３０で受信されると、イニシエータ１１０はインタフェース３１０で命令−要求制御信号デアサートすることによりバスを開放することができ、またインタフェース３２０でアドレスおよびデータ信号をもはや維持する必要はない。
【００１９】
命令がイニシエータ１１０で対象１２０からのデータを受信するための読み取り命令である場合、送信するデータは対象１２０のインタフェース３７０に存在すると同時に、対象１２０はインタフェース３８０で命令−完了制御信号をアサートする。対応する命令−完了信号がイニシエータ１１０のインタフェース３３０で受信されると、イニシエータ１１０はインタフェース３２０を介してデータを受信する。
【００２０】
上記の説明において、共通の同期時間基準が想定されていることに注意する。インタフェース３１０〜３８１はそれぞれ互いにロックステップで動作するので、例えば命令−要求信号および命令がインタフェース３１０および３２０に存在するときに、バスマルチプレクサおよびアービタ１４０は次のクロック周期でアドレスデコーダ３４０によって処理するための命令信号を多重化するよう構成されている。同様に、書き込み−選択信号がインタフェース３６０で受信されると、対応するデータがインタフェース３７０に存在すると想定される。
【００２１】
非同期−同期通信
イニシエータ１１０のクロックがバスコントローラ１５０でクロックから実質的にスキューしている場合、上記の同期通信は確実なものとはならない。例えば、クロック周期にほぼ等しいクロックスキューについて考察してみる。このような場合、インタフェース３１０の命令−要求信号およびインタフェース３２０の命令／データは、インタフェース３１１がインタフェース３１１で入力を受けるときには遷移状態にある。インタフェース３１１が入力はインタフェース３１０からのアサートされた命令−要求信号であると判定した場合、バスアービタおよびマルチプレクサ１４０はインタフェース３２０からアドレスデコーダ３４０までの命令／データの経路を決定する。この例において、インタフェース３１０での命令／データが遷移状態にある場合、あるいはその前の状態から変わっていない場合、アドレスデコーダ３４０まで経路指定されている命令／データは無効となる可能性が高く、また不適切なデータ転送シーケンスが生じる。つまり、クロックスキューによって、イニシエータ１１０からの通信は事実上バスコントローラ１５０に対して非同期となるが、バスコントローラ１５０は同期通信を想定して構成されている。上述したように、この問題に対する従来の解決策は、システムクロックの速度を低下させることである。低下させていると、この低速システムクロックの長いクロック周期と比較して、クロックスキューは比較的小さくなるので、イニシエータ１１０の通信はバスコントローラ１５０に対して同期となる。
【００２２】
本発明によると、同期通信を行えないような実質的なクロックスキューがイニシエータ１１０に存在する場合、設定可能インタフェース３１１および３３０は、制御信号が動作したときにインタフェース３２０での命令／データが安定するように対応する制御信号を適切に遅延させるよう構成されている。図２の設定可能インタフェース回路を参照すると、スイッチ２２０がインタフェース２００の入力および出力間の信号経路に遅延機器２３０を含んで構成されている場合、遅延機器２３０における遅延要素の数に応じて単一または複数のクロック周期によって入力信号は遅延される。上述したように、信号を遅延させる他の手段は従来技術において共通しており、入力信号を受信するためにレジスタ２１０で使用されるシステムクロックに依存する必要はない。遅延の量は、測定または計算された最大スキューに基づいて、システムの各構成要素に対して設定することができる。好適な実施例においては、実現を容易にするため、遅延要素２３０は全ての構成要素に対して同一であり、また遅延の量は、レイアウトのどこに構成要素が設置されているかにかかわらず、可能性のある最大スキューの最悪状態の予測値に基づいている。しかしながら、最悪状態の遅延予測値判定に基づくシステムクロック速度の従来の減少方式とは対照的に、本発明の最悪状態の遅延は、確実な同期通信を提供することができないと判定される構成要素に影響するのみである。
【００２３】
インタフェース３１１が命令−要求制御信号に最悪状態遅延（または特定のイニシエータ１１０に対する具体的に決定された遅延）を加算するよう構成されている場合、インタフェース３２０の命令／データに対して、命令／データはインタフェース３１１がバスマルチプレクサおよびアービタ１４０に命令−要求制御信号を供給すると安定化する。命令／要求制御信号がバスマルチプレクサおよびアービタ１４０によって処理されると命令／データが安定するため、イニシエータ１１０のクロックとバスコントローラ１５０のクロックとの間のタイミングまたは位相関係にかかわらず、命令および目的のアドレスを適切にデコードすることが可能になる。
【００２４】
同様に、非同期モードでのインタフェース３３０の構成によって、バスコントローラ１５０からの命令−完了信号経路に遅延が生じる。読み取り動作を行っている場合、この遅延により、対象１２０からのデータは命令−完了信号が処理される前にインタフェース３２０で安定化し、データが読み取られる。
【００２５】
命令−要求および命令−完了信号経路におけるこの強制遅延により、イニシエータ１１０への及びからのデータ転送の実効速度に遅延が生じるが、同期モードで動作するよう構成されている他のイニシエータの通信には遅延が生じることはない。
【００２６】
同期−非同期通信
イニシエータ１１０の場合のように、対象１２０に実質的なクロックスキューが存在すると、対象１２０のクロックによって、入力が遷移状態にあるとき、または前の命令／データに対応したままの間に、入力はインタフェース３７０にクロックされる。あるいは、インタフェース３８０からのアサートされた命令−完了信号が、データインタフェース１２８への入力にあるデータが、遷移状態にあるか、あるいは不安定であるときに、インタフェース３８１にクロックされることがある。対象１２０との同期通信の信頼度が低いと判定された場合、設定可能インタフェース３６０および３８１は、インタフェース１２８および３７０を介して通信される命令／データに対して、制御信号を更に遅延させるよう構成される。印加される遅延量は上記のようにイニシエータ１１０について決定されるため、インタフェース１２８および３７０の入力でのデータは、バスコントローラ１５０および対象１２０によってそれぞれ対応する制御信号が処理されるときに安定化する。このように、対象１２０のクロックとバスコントローラ１５０のクロックとの間のタイミングや位相関係とは無関係に、確実なデータ転送が行われる。
【００２７】
非同期通信用に構成されたイニシエータ１１０の場合のように、命令−選択および命令−完了信号経路における強制遅延によって、対象１２０への及びからのデータ転送の実行速度に遅延が生じるが、同期モードで動作するよう構成された他のイニシエータの通信には遅延は発生しない。
【００２８】
非同期モードに対するインタフェース３６０および３８１の構成は、インタフェース３１１および３３０の構成とは無関係であることに注意する。つまり、イニシエータ１１０のクロックスキューが十分に小さく同期通信を許容できる場合、イニシエータ１１０は、対象１２０のクロックスキューとは無関係に同期通信用に構成され、また逆の場合も同様である。
【００２９】
非同期−非同期通信
イニシエータ１１０および対象１２０の両者が確実な同期通信を提供できない場合、設定可能インタフェース３１１、３３０、３６０、３８１のそれぞれは、命令／データ信号経路に対して制御信号経路を遅延させることにより、非同期通信用に構成される。この構成でのデータの流れは、イニシエータ１１０および対象１２０の各非同期通信に関して上記に詳述した通りである。
【００３０】
様々な技術の何れかを使用して、本発明の設定可能インタフェースの所望の構成を実現してもよい。集積回路における図１のシステム１００の簡単な実施例において、設定可能インタフェースは、図１の構成要素１１０、１２０、１５０の各インタフェースアダプタ１１５、１２５および各インタフェースモジュール１１６、１２６と共に含まれている。システムを配置すると、例えば製造後の実際の測定、レイアウト依存シミュレーション、またはレイアウト依存計算や予測を使用して、各構成要素のクロックスキューが決定される。本発明の好適な実施例において、図２の「スイッチ」２２０は、好適には遅延要素２３０の入力および出力間の短絡としての、集積回路の上部層での相互接続の構成によって実現される。インタフェース２００を非同期通信用に構成する場合、短絡は除去される。あるいは、同期通信用に構成する場合、短絡は遅延要素２３０を迂回するよう動作する。
【００３１】
更に複雑な実施例において、スイッチ２２０は、制御入力Ｓ／Ａを含む図２に示す従来のスイッチであってもよい。このような構成において、図１のシステム１００における各設定可能インタフェースの構成は、プログラム可能レジスタのビットによって決定することができる。システムの配置後、クロックスキューが決定され、レジスタが適切にプログラムされて、同期および非同期インタフェースの所望の構成が実現される。
【００３２】
動的構成も提供することが可能であり、この構成においては、例えば各イニシエータ１１０または対象１２０との同期通信をテストするようバスコントローラ１５０が構成される。バスコントローラ１５０が、特定のイニシエータ１１０または対象１２０との同期通信の信頼度が低いと判定した場合、バスコントローラ１５０は、特定のイニシエータ１１０または対象１２０との非同期通信用に対応するインタフェース３１１および３３０、または３６０および３８１をそれぞれ再構成する。この動的構成はシステムが初期化されたときに実行され、また他の時に任意で実行して異なる環境条件の元で性能を最適化することもできる。これらの任意の動的構成は要求に応じて、あるいはシステム内の状態の変化によって誘発されたときに、周期的に実行することができる。この動的構成能力は、取外し可能構成要素や周辺機器を有するシステムなどの大型システムに特に適していることを言及しておく。各周辺機器がシステムに追加されると、バスコントローラ１５０は、高性能同期通信を提供可能か否か、あるいは低速性能非同期通信が必要か否かを判別する。
【００３３】
上記は本発明の原理を説明したにすぎない。したがって、ここには明確に説明または図示しないが、当業者は、本発明の原理を実施し、請求項の意図および範囲内にある様々な構成を考案できることが理解されるであろう。
【図面の簡単な説明】
【００３４】
【図１】図１は、本発明による共通バスを介しての同期および非同期通信を可能なシステムの例示ブロック図を示す。
【図２】図２は、本発明による同期または非同期通信用に設定可能なバスインタフェースの例示ブロック図を示す。
【図３】図３は、本発明による同期および非同期通信を可能なシステムを介してのデータ転送の例示フロー図を示す。
【図１】
2005515548.tif 000003
【図２】
2005515548.tif 000004
【図３】
2005515548.tif 000005
【国際調査報告】
2005515548.tif 000006
2005515548.tif 000007