(57)【要約】  目標クロックドメイン（１７０）で発生する目標イベントを監視クロックドメインにおいて監視する転送回路（２００，４００，５００）が開示されている。幾つかの実施例（２００）は、ドメインクロックに対し大きな制約を課し、イベント検出器（２１０）と、各イベントに対して要求信号（１５０）の値を変化させる送信回路（２２０）と、該要求信号の変化を検出する受信回路（２３０）とを含んでいる。他の実施例は一層広いクロック範囲に対して動作し、転送が行われている間のイベントの発生の増加的カウントを発生するカウンタ（４１０）と、該増加的カウントのための送信及び受信レジスタ（４２０，４３０，５３０）と、要求送信及び受信回路（２２０，２３０）であって、ここで上記要求信号が上記増加的カウントの各転送に対して変化するような回路と、肯定応答信号のための送信及び受信回路（４７０，４８０）とを含む。
2007526670.tif 000002
【特許請求の範囲】
【請求項１】
目標クロックドメインで発生する目標イベントを監視クロックドメインに転送する転送回路において、該転送回路が、
前記目標イベントが発生する毎に目標ドメインイベント信号を肯定化するように構成された、前記目標クロックドメインにおける検出器と、
前記目標ドメインイベント信号が肯定化される毎に要求信号の値を変化させるように構成された、前記目標クロックドメインにおける送信回路と、
前記要求信号の値の変化を検出し、検出された値の各変化に対して１度、監視ドメインイベント信号を肯定化するように構成された、前記監視クロックドメインにおける受信回路と、
を有することを特徴とする転送回路。
【請求項２】
請求項１に記載の転送回路において、
当該転送回路は集積回路内のデバッグモジュールに使用されるよう構成され、
該転送回路が、前記監視ドメインイベント信号に応答してデバッグイベント信号を肯定化するように構成された監視回路を更に有している、
ことを特徴とする転送回路。
【請求項３】
請求項１に記載の転送回路において、
第２目標イベントが発生した場合に第２目標ドメインイベント信号を肯定化するように構成された、第２目標クロックドメインにおける第２検出器と、
前記第２目標ドメインイベント信号が肯定化される毎に第２要求信号の値を変化させるように構成された、前記第２目標クロックドメインにおける第２送信回路と、
前記第２要求信号の値の変化を検出し、検出された値の各変化に対して１度、第２監視ドメインイベント信号を肯定化するように構成された、前記監視クロックドメインにおける第２受信回路と、
を更に有することを特徴とする転送回路。
【請求項４】
請求項３に記載の転送回路において、
前記監視ドメインイベント信号に応答して第１カウントをインクリメントし、前記第２監視ドメインイベント信号に応答して第２カウントをインクリメントし、第１目標値を保持し、前記第１カウントを前記第１目標値と比較することにより第１トリガ信号を生成し、第２目標値を保持し、前記第２カウントを前記第２目標値と比較することにより第２トリガ信号を生成するように構成された、前記監視クロックドメインにおける監視回路、
を更に有し、
当該転送回路は集積回路内のデバッグモジュールに使用するよう構成され、前記監視回路が、更に、前記第１トリガ信号、前記第２トリガ信号、又はこれら信号の論理組み合わせから選択された信号に基づいてデバッグ信号を肯定化するように構成されている、
ことを特徴とする転送回路。
【請求項５】
請求項１に記載の転送回路において、前記目標クロックの周期が少なくとも前記監視クロックの周期と前記受信回路により必要とされるセットアップ時間との和であることを特徴とする転送回路。
【請求項６】
目標クロックドメインで発生する目標イベントを監視クロックドメインに転送する転送回路において、該転送回路が、
前記目標イベントの期間内での発生の増加的カウントを発生し、転送信号に応答して前記増加的カウントを転送すると共に該増加的カウントをクリアするように構成された、前記目標クロックドメイン内のカウンタと、
前記転送信号に応答して前記増加的カウントをロードすると共に該増加的カウントを保持するように構成された、前記目標クロックドメイン内の送信レジスタであって、前記カウンタが前記増加的カウントを発生する前記期間が、前記送信レジスタが該増加的カウントを保持する期間を含むような送信レジスタと、
前記転送信号に応答して要求信号の値を変化させるように構成された、前記目標クロックドメイン内の要求送信回路と、
前記要求信号の値の変化を検出し、これに応答して受信信号を発生するように構成された、前記監視クロックドメイン内の要求受信回路と、
前記受信信号に応答して前記送信レジスタから前記増加的カウントをロードするように構成された、前記監視クロックドメインにおける受信レジスタと、
前記受信信号に応答して肯定応答信号の値を変化させるように構成された、前記監視クロックドメインにおける肯定応答送信回路と、
前記肯定応答信号の値の変化を検出し、これに応答して目標ドメイン肯定応答信号を肯定化するように構成された、前記目標クロックドメインにおける肯定応答受信回路と、
前記要求信号の値の各変化に対して前記目標ドメイン肯定応答信号が肯定化されており、且つ、前記カウンタにおける前記増加的カウントがゼロでない場合に前記転送信号を発生するように構成された、前記目標クロックドメインにおける制御回路と、
を有することを特徴とする転送回路。
【請求項７】
請求項６に記載の転送回路において、前記受信レジスタが更に、該受信レジスタにおける前記増加的カウントがゼロでない場合に監視ドメインイベント信号を肯定化し、該監視ドメインイベント信号が肯定化される毎に前記増加的カウントをデクリメントするように構成されていることを特徴とする転送回路。
【請求項８】
請求項６に記載の転送回路において、前記増加的カウントをイベントカウントに加算するように構成された、前記監視クロックドメインにおける監視回路を更に有することを特徴とする転送回路。
【請求項９】
請求項８に記載の転送回路において、
当該転送回路は集積回路内のデバッグモジュールに使用するように構成され、
前記監視回路が更に、目標値を保持し、前記イベントカウントを該目標値と比較し、該比較に基づいてデバッグ信号を肯定化するように構成されていることを特徴とする転送回路。
【請求項１０】
目標クロックドメインで発生する目標イベントを監視クロックドメインに転送する転送回路において、該転送回路が、
前記目標イベントの発生を検出し、該検出に応答して目標ドメインイベント信号を肯定化する、前記目標クロックドメインにおける手段と、
前記目標ドメインイベント信号に応答して要求信号の値を変化させる、前記目標クロックドメインにおける手段と、
前記要求信号を受信すると共に、前記要求信号の値の変化に応答して監視ドメインイベント信号を肯定化する、前記監視クロックドメインにおける手段と、
を有することを特徴とする転送回路。
【請求項１１】
請求項１０に記載の転送回路において、
当該転送回路は集積回路内のデバッグモジュールにおいて使用するよう構成され、
該転送回路が、前記監視ドメインイベント信号に応答してデバッグイベントをトリガする手段を更に有する、
ことを特徴とする転送回路。
【請求項１２】
請求項１０に記載の転送回路において、
前記要求信号の値は、前記目標ドメインイベント信号が肯定化される毎に変化し、
前記目標クロックの周期は、少なくとも前記監視クロックの周期と前記受信する手段により必要とされるセットアップ時間との和である、
ことを特徴とする転送回路。
【請求項１３】
請求項１０に記載の転送回路において、
期間内の前記目標イベントの発生をカウントし、これにより増加的カウントを発生する一方、イネーブルされた場合に、ゼロでない増加的カウントを転送すると共に該増加的カウントをリセットする、前記目標クロックドメインにおける手段と、
前記カウントする手段から受信された前記増加的カウントを保持する、前記目標クロックドメインにおける手段であって、前記カウントする手段がカウントする前記期間が、該保持する手段が前記増加的カウントを保持する期間を含んでいるような保持する手段と、
前記要求信号の値の変化に対して、前記保持する手段から前記増加的カウントを受信することにより、及び肯定応答信号の値を変化させることにより応答する、前記監視クロックドメインにおける手段と、
前記ゼロでない増加的カウントの転送を前記肯定応答信号が値を変化するまで不能化する、前記目標クロックドメインにおける手段と、
を更に有し、前記要求信号の値が、ゼロでない増加的カウントが転送される毎に変化することを特徴とする転送回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くはデジタル電子回路を設計するための、特には複数のクロックドメインを含むような回路を設計するための方法及び装置に関する。更に詳細には、本発明は或るクロックドメインにおいて他のクロックドメインで発生するイベントを監視するためにクロックドメイン間でイベントを転送する回路に関する。
【背景技術】
【０００２】
現代の社会及び技術は、広くは電子回路に、特には集積回路（ＩＣ）に益々基づくものとなっている。コンピュータ、携帯電話、パーソナル・デジタル・アシスタント（ＰＤＡ）、電子レンジ、洗濯機及び自動車は、しばしばＩＣに基づく又はしばしば少なくとも１個のＩＣを含むような多くの装置にのうちに入る。
【０００３】
今日、集積回路は、容量が全体の電子回路システムを１つのチップ上に配置する（ＳｏＣ）のが今や普通であるような点に到達している。このようなＳｏＣは、しばしば、独立に設計された機能ブロック又はモジュールの集合である。このようなモジュールは、斯かるモジュールが元々設計された際には、実施化するのに全体のＩＣを占有していた、又は幾つかのＩＣを必要としていたのが普通である。
【０００４】
多くのＩＣは、クロックドメイン内の全てのロジック要素が同一のクロックを使用するような、同期的又はクロックされたロジックに基づくものである。クロックとは、相対的に低い電圧から相対的に高い電圧に一定のレートで常に変化する電子信号である。例えば、或るクロック信号の電圧は１０ナノ秒（ｎｓ、又は秒／１０億）の間０.３ボルトであり、次いで約３ｎｓ内に約３.０ボルトに上昇し、次いで約１０ｎｓの間一定に留まり、次いで約３ｎｓ内に約０.３ボルトに戻り得る。
【０００５】
クロックされる回路は、クロックされない回路より設計するのがかなり簡単であり得る。しかしながら、クロックされる回路は、当該回路内の非クロック信号が何時適法的に変化することができるかについての制約を課すことになる。典型的には、クロックされるロジック要素に到来する信号は、セットアップ時間制約及び保持時間制約の両方を満たさねばならず、これら時間制約の各々は当該クロックが３.０ボルトに上昇する時間に対するものである。例えば、上記の到来信号は、クロックが上昇する前に６ｎｓの間、次いでその後の１ｎｓの間、約０.３ボルト又は約３.０ボルトのいずれかに一定に留まらなければならない。
【０００６】
チップ上システムにとり生じる１つの問題は、斯かるシステムが、しばしば、複数のクロックドメインを含むことである。即ち、ＳｏＣ内のモジュールは、異なる速度で走るクロック、同一の速度で走るが未知の位相関係を持つようなクロック、又は両者を有し得る。複数のクロックを持つシステムを有利にさせる要因は、使用される設計及び製造技術が進歩及び進化するにつれて、益々重要になりつつある。
【０００７】
ＳｏＣ内では、当該ＳｏＣの外部の種々の回路において使用されるクロックが異なる速度を有し得るために、異なるクロックが必要とされ得る。ＳｏＣ内には、斯様な回路と緊密な関連で動作する、従って外部クロック速度と適合しなければならないような回路が存在し得る。異なるクロックは、２つのクロックの速度及び位相関係を精密に予測及び制御するのが困難であるが故に；クロックが電気的ノイズレベル、動作電圧、動作温度又は製造工程の変動に依存してどの様に速度及び位相が変化する傾向にあるかにより；ＳｏＣ内のモジュールが元々どの様に設計されたかにより；斯かるモジュールの複雑さ若しくは機能により；全体のシステム性能を増加させる必要性故に；又は複数の動作モードを有する必要性によっても必要とされ得る。例えば、ＳｏＣは、特別な電源電圧及びクロック速度を使用するような大電力、高性能モード、並びに低い電圧及びクロック速度を使用するような低電力、低性能モードを有することができる。
【０００８】
信号がクロックドメイン間の境界を横断する場合、即ち当該信号が或るクロックで動作する回路により発生され、異なるクロックで動作する回路により入力される場合、全体的な同期ロジック要素がセットアップ時間及び保持時間制約を満たすことは可能ではない。特別な回路無しでは、ドメイン間信号がセットアップ及び保持時間制約に違反することは普通である。このような違反は重大な問題となる。何故なら、セットアップ及び保持期間中に電圧を変化させる信号は、結果として、当該ロジック要素の出力が当該信号の古い値に基づくものとなるか又は当該信号の新しい値に基づくものとなるかが不明となり得るからである。
【０００９】
更に、上記のような違反は、到来信号がセットアップ及び保持期間中に値を変化させると、幾つかの普通に使用されるロジック要素が準安定状態に入り得る故に、重大な問題となる。準安定状態においては、当該ロジック要素の出力端において生成される電圧が、該ロジック要素自身が安定するまでにランダムに変化し得る。
【００１０】
更に、上記のような違反は、設計において検出することが困難であり得るので、重大な問題となる。ＩＣを設計する多くの技術者は単一のクロックドメイン内でのクロックされる同期的回路の設計に馴れており、いくらかのものはクロックドメイン間で生じる準安定性問題には馴れていない可能性がある。
【００１１】
更に、上記のような違反は、斯かる違反を伴うＩＣが一旦製造されると、デバッグするのが困難であり得るので、重大な問題である。斯様なＩＣは殆どの時間では正しく動作し、時たま故障し得る。斯様なＩＣが故障する状況は、ランダムであるように思われる。このことは、問題を識別する作業を極めて困難にする。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明の目的は、或るクロックドメインから他のものにイベントを転送する改善された回路を提供することにある。本発明の幾つかの実施例は、有利にも２つのクロックに対して殆ど制約を課さず、複数のモード又は不確定な特性を有するようなクロックを伴うシステムを許容することができる。他の実施例は、有利にも、単純であり、ＩＣ面積が小さく、レイテンシが小さく、高速度で動作することができる。
【課題を解決するための手段】
【００１３】
本発明の一実施例は、目標クロック（target clock）ドメインに、目標イベント（target event）の発生を検出すると共に、これに応答して、目標ドメインイベント信号を肯定化（assert）する手段と、該目標ドメインイベント信号に応答して要求信号の値を変化させる手段とを含んでいる。この実施例は、更に、監視クロック（monitor clock）ドメインに、上記要求信号の値の変化に応答して監視ドメインイベント信号を肯定化する手段を含む。
【００１４】
本発明の他の実施例は、目標クロックドメインに、カウンタと、送信レジスタと、要求送信回路とを含む。上記カウンタは、期間内で発生する目標イベントの数の増加的カウントを発生する。転送信号に応答して、上記カウンタは上記増加的カウントを転送すると共にクリアし、上記送信レジスタは上記増加的カウントをロードし、次いで該増加的カウントを保持し、上記要求送信回路は要求信号の値を変化させる。
【００１５】
この実施例は、監視クロックドメインに、要求受信回路と、受信レジスタと、肯定応答（acknowledge）送信回路とを更に含んでいる。上記要求受信回路は上記要求信号の変化を検出し、これに応答して、受信信号を発生する。該受信信号に応答して、上記受信レジスタは前記送信レジスタから増加的カウントをロードし、上記肯定応答送信回路は肯定応答信号の値を変化させる。
【００１６】
この実施例は、目標クロックドメインに、肯定応答受信回路と、制御回路とを更に含んでいる。上記肯定応答受信回路は肯定応答信号の変化を検出し、これに応答して、目標ドメイン肯定応答信号を発生する。上記制御回路は、上記カウンタの増加的カウントと目標ドメイン肯定応答信号とに基づいて上記転送信号を発生する。
【００１７】
本発明の更に他の実施例は、目標クロックドメインに、目標イベントが発生する毎に目標ドメインイベント信号を肯定化する検出器と、該目標ドメインイベント信号が肯定化される毎に要求信号の値を変化させる送信回路とを含んでいる。この実施例は、監視クロックドメインに、上記要求信号の変化を検出すると共に、検出される各変化に対して１度監視ドメインイベント信号を肯定化する受信回路を更に含んでいる。
【００１８】
本発明の目的、フィーチャ及び利点は、図面と関連して精読された場合、本明細書の説明及び議論から明らかとなるであろう。本発明に関連する技術、本発明の実施例及び本発明の例示的使用は、図面に示されている。
【発明を実施するための最良の形態】
【００１９】
本出願における説明、議論及び図は、本発明に関する技術を示し、本発明の例を示し、本発明を使用する例を示す。既知の方法、手順、システム、回路又は要素は詳細を示さずに図示及び説明し、本発明の原理がぼけるのを防止する。一方、本発明の特定の実施例の細部は、斯かる細部が本発明の他の実施例に当てはまらないかも知れなくても、示される。
【００２０】
本明細書における幾つかの説明及び議論は、限定されるものではないが、送信する、受信する、転送する、等しい、未満、保持する、位相、クロック、変化させる、増加させる（インクリメントする）、肯定化（assert）する、真又は偽を含み抽象的又は一般的な用語を使用する。当業者は、斯様な用語を、コンピュータ、デジタル又は電子機械的システムにおける構成要素、データ又は処理のための便利な用語として使用している。斯様な構成要素、データ及び処理は、限定されるものではないが電圧、磁界又は光学的反射度を含む実際の物体の物理的特性により表される。例えば、“肯定化された”若しくは“真”は３ボルト周辺の電子信号を指すことができ、“肯定化されていない”若しくは“偽”は０.３ボルト周辺の信号を指すことができ、又はこれらの逆となる。同様に、限定されるものではないが検出、決定及び制御を含む知覚的又は観念的用語も、斯かる物理的特性の構成要素、データ、処理又は操作を指すことができる。
【００２１】
図１は、３つのクロックドメインを有する、本発明の一実施例によるＩＣの機能ブロック図である。本発明は、種々の設計のＩＣにおいて、及び複数のＩＣを含むシステムにおいて使用することができる。このように、図１のシステム構成は、多くのうちの一例に過ぎない。
【００２２】
集積回路１００は、監視及びデバッグモジュール１４０と、第１プロセッサ１１０と、共有メモリ１２０と、第２プロセッサ１３０とを含んでいる。上記第１プロセッサ及び共有メモリは、１つのクロックで動作し、第１目標クロックドメイン１７０Ａを構成する。イベントＡは第１プロセッサ内で発生し、結果として要求信号１５０Ａの値が変化するが、該変化は上昇する変化（即ち、ローからハイへの遷移）又はハイからローへの下降する遷移の何れかである。要求信号１５０Ａは、監視及びデバッグモジュール１４０内で受信される。イベントＢは上記共有メモリ内で発生し、結果として要求信号１５０Ｂの値が変化する。この要求信号も、監視及びデバッグモジュール１４０内で受信される。
【００２３】
第２プロセッサ１３０は、他のクロックで動作し、第２目標クロックドメイン１７０Ｂを構成する。イベントＣ及びＤは該第２プロセッサ内で発生し、結果として要求信号１５０Ｃ及び１５０Ｄの値が変化する。これら信号も、監視及びデバッグモジュール１４０内で受信される。監視及びデバッグモジュール１４０は、監視クロックで動作し、監視クロックドメイン１８０を構成する。
【００２４】
本発明の一実施例を使用すると、監視及びデバッグモジュール１４０は、何れかの目標クロックドメインにおける目標ドメインイベント信号が肯定化されているサイクル数を正確に決定することができる。クロックドメイン間での転送において如何なるイベントも失われることがなく、如何なる外部からのイベントが挿入されることもない。目標イベントが発生されるレートを変更し、休止（pause）させ、停滞（stall）させ又は停止（stop）させる必要はない。
【００２５】
しかしながら、本発明は、或る情報をクロックドメイン境界を横断して伝達することはない。目標ドメインイベント信号が肯定化されない正確なサイクル数は、監視ドメインでは分からない。イベント信号を肯定化した目標ドメインクロックサイクル及びイベント信号を肯定化しなかった目標ドメインクロックサイクルの正確なインターリーブは分からない。目標ドメインイベントの発生と、監視クロックドメインにおける該イベントの再生又は検出との間のレイテンシは最高の優先度ではない。任意の値を、該値を先ずイベントの系列に直列化することによりクロックドメイン間で転送することができ、この場合において、上記系列におけるイベントの数が上記値を示す。これらの省略は、本発明の幾つかの実施例が斯様な能力を提供する回路よりも有利にも一層簡単、高速及び小型になるように熟慮したものである。
【００２６】
図２は、本発明の一実施例による、クロックドメイン間でイベントを転送する回路の機能ブロック図である。転送回路２００は、簡素であり、必要とされるＩＣ面積が小さく、レイテンシが小さく、且つ、高速度で動作することができるが、監視及び目標ドメインにおけるクロックに制約を課す。
【００２７】
転送回路２００は、イベント検出器２１０及び送信回路２２０を含み、これらの各々は目標クロック信号によりクロックされる。目標クロックドメイン１７０は、上記イベント検出器及び送信回路、並びに、このクロックで動作する如何なる他の回路も含む。
【００２８】
転送回路２００は、受信回路２３０及びイベントモニタ２４０も含み、これらの各々は監視クロック信号によりクロックされる。監視クロックドメイン１８０は、上記受信回路及びイベントモニタ、並びに監視クロックに基づいて動作する如何なる他の回路も含む。
【００２９】
目標及び監視クロックドメイン１７０及び１８０の各々における回路は、必須ではないが、好ましくは同期型の立ち上がり縁でトリガされるデジタル回路用の設計技術に基づくものとする。このような回路では、到来信号は、該信号の値が当該クロックの立ち上がり縁でハイであるような各クロックサイクルにおいて肯定化されていると見なされる。
【００３０】
即ち、イベント信号が、セットアップ時間及び保持時間を有する例えばＤ型フリップフロップ等のクロックされるロジック要素に入るような例を考察する。上記イベント信号は、該信号が当該クロックの立ち上がり縁より少なくとも１セットアップ時間前から該立ち上がり縁より少なくとも１保持時間後までハイであるような各クロック期間に対して１度肯定化される。
【００３１】
上記イベント信号がセットアップ時間又は保持時間の制約に違反するような時刻に値を変化させる場合、上記Ｄ型フリップフロップにより出力される値は予測不可能であるか又は準安定となる。このような準安定出力信号は、上記イベント信号の遷移前の値又は上記イベント信号の遷移後の値を有し得るか、又は該出力信号は不安定であり、値が変化し得る。典型的には、Ｄ型フリップフロップの準安定は、イベント信号が制約に違反しないような次のクロックサイクルで以って終了するが、これは該Ｄ型フリップフロップの設計細部に依存する。設計、製造工程及び動作パラメータに依存するが、斯かる準安定状態が２クロックサイクル以上継続する可能性はあるものの、この可能性は非常に起こりそうにないものとすることができる。
【００３２】
多くの標準のクロック信号及びロジック要素は、立ち上がり縁でトリガされる。即ち、クロックされる要素の出力は、クロックの立ち上がり縁によりトリガされる際の該要素の入力に依存する。多くの標準のロジック要素は、クロックの立ち上がり縁における信号の値に対してのみ応答する。
【００３３】
対照的に、要求信号１５０は、該要求信号の現在の値に依存して、立ち上がり縁又は立ち下がり縁のいずれかとして要求を符号化する。受信回路２３０は、要求信号１５０の立ち上がり縁又は立ち下がり縁のいずれに対しても同様の態様で応答する。即ち、該要求信号の値の如何なる変化も、同じ応答を生じる。
【００３４】
転送回路２００は、有利にも、簡素であり、高性能であり、必要とするＩＣ面積が小さい。しかしながら、転送回路４００及び５００（図４及び５を参照して説明する）とは異なり、転送回路２００は目標ドメインクロックと監視ドメインクロックとの間の関係に大きな制約を課す。監視クロックドメインは、目標クロックドメインよりも速く動作しなければならない。
【００３５】
目標クロックドメインが監視クロックドメインよりも速く動作するシステムにおいては、転送回路２００は正しく動作することができない。即ち、目標クロックドメインは、監視ドメインが受け取り、検出し、カウントし、又は監視することができるよりも多くの目標イベントを発生し得る。
【００３６】
転送回路２００が正確に動作する主たる状況は、目標クロックの周期が、少なくとも監視クロックの周期と受信回路により必要とされるセットアップ時間との和であるような場合である。この制約下でさえも、受信回路内の最初のロジック要素、即ちＤ型フリップフロップ３２０Ｂが、準安定状態に入る可能性がある。それにも拘わらず、要求は値としてではなく遷移として符号化されるので、フリップフロップ３２０Ｂにおける一時的な準安定状態が結果として誤った情報転送になることはない。このように、要求信号の値の変化が初期的に準安定性を生じても、該要求信号の値の変化は次の監視ドメインクロックサイクルにおいて正しく解釈される。
【００３７】
幾つかのＳｏＣ設計においては、目標クロックの周期を少なくとも監視クロックの周期と受信回路により必要とされるセットアップ時間との和にすることが現実的でないかも知れない。このような設計は転送回路４００又は５００を利用すべきであり、これら回路は図４及び５を参照して説明する。
【００３８】
転送回路２００が正しく動作する第２の状況は、目標クロック及び監視クロックが等しい周期を有すると共に適切な位相関係を有する場合である。この条件で常に動作するシステムにおいては転送回路２００は余分となるが、斯様なシステムにおけるクロックが、該システムの動作モードの意図的変更によるか又はクロックの意図しない変動によるかの何れかにより変化する場合、転送回路２００は必要となり得る。
【００３９】
本発明の種々の実施例においては、種々の検出入力２０５がイベント検出器２１０により入力される。幾つかの場合においては、上記検出入力（又は複数の入力）は本来的に目標回路又はモジュールの一部であるような信号である。他の場合においては、検出入力２０５を発生する目的で、監視又はデバッグロジックが回路に追加される。
【００４０】
典型的には、検出入力２０５及びイベント検出器２１０の設計は、監視及びデバッグモジュール１４０により監視されている回路又はモジュールの細部に依存する。検出することができるイベントは、限定されるものではないが、下記のものの１以上を含む：
・プロセッサのプログラムカウンタが目標値に一致するような命令アドレスブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する；
・プロセッサが実行する演算コードが目標値に一致するような命令処理ブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する；
・ロードトランザクション、又はストアトランザクション、又はロード若しくはストアの何れかが目標値に一致するようなデータアドレスを使用するデータアドレスブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する；
・ロードトランザクション、又はストアトランザクション、又はロード若しくはストアの何れかが目標値に一致するようなデータ値を使用するデータ値ブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する；
・割り込み又は例外（exception）が発生している；
・回路又はモジュールが、ユーザモード、カーネルモード、監視（supervisor）モード又はデバッグモード等の目標動作モードに移行している；
・キャッシュミス、パイプラインストール又は分岐誤予測等の性能監視イベント；
・バス又はメモリコントローラが目標装置又はチャンネルを選択している；
・チップ上フェーズロックループ（ＰＬＬ）が到来信号に対してロックを獲得し、かくして信頼性のあるクロック信号を生成している；
・バッファ又は先入先出（ＦＩＦＯ）レジスタがオーバーフローしているか又は空になっている；
・回路又はモジュールが目標状態に入るか又は目標状態から離脱する；又は
・例えば目標モジュールがアイドル状態にない場合に目標ＦＩＦＯレジスタが空になるというような、これらの２以上の論理的組み合わせ。
【００４１】
１以上の検出入力信号２０５の値に応答して、イベント検出器２１０は１以上の目標ドメインイベント信号２１５を発生し、これらイベント信号の各々は送信回路２２０の対応する事例（インスタンス）に結合される。送信回路２２０の各インスタンスは、受信回路２３０の対応するインスタンス及び要求信号１５０の対応するインスタンスを有する。
【００４２】
目標ドメインイベント信号２１５の各肯定化に応答して、送信回路２２０は要求信号１５０の値を変化させる（例えば、送信回路２２０は要求信号を現在“１”なら、“０”にするか、又はその逆とする）。該要求信号はクロックドメインを横切って進行するので、同一の情報を立ち上がり遷移又は立ち下がり遷移のいずれかとして符号化するような信号を要求信号１５０として使用するのが有利である。上記要求信号は要求を何れかの遷移として符号化するので、該要求信号により伝達される情報及び該要求信号の結果は共にクロックに基づくタイミングとは独立したものとなる。該要求信号の遷移が生じる目標クロックサイクルの位相及び監視クロックサイクルの位相のいずれも、受信回路２３０又はイベントモニタ２４０が該要求信号に対してどの様に応答するかについて如何なる影響も有することはない。
【００４３】
要求信号１５０のインスタンスの値の各変化に応答して、対応する受信回路２３０は監視ドメインイベント信号２３５の１つの肯定化を行う。該監視ドメインイベント信号（又は複数の信号）はイベントモニタ２４０に供給される。斯かる監視ドメインイベント信号に応答して、イベントモニタ２４０は１以上のデバッグ信号２４５を発生する。
【００４４】
イベントモニタ２４０の設計の詳細、発生されるデバッグ信号（又は複数の信号）２４５の性質及び該デバッグ信号の利用は、典型的には、前記モニタ及びデバッグモジュール１４０により監視されている回路又はモジュールの設計の詳細に依存する。イベントモニタ２４０は、限定されるものではないが、下記の１以上を実行する回路を含むことができる：
・どの様なタイプの目標イベントが発生したか、又は目標イベントに続いて発生したかを示すフラグを保持する；
・各タイプの目標イベントの発生をカウントする；
・例えばタイプＡのイベントが３回発生したと判定する等の、目標イベントのカウントに対する算術演算を実行する；
・例えばタイプＡの及びタイプＢの両方の目標イベントが発生したと判定する等の、イベントフラグに対する論理演算を実行する；又は
・例えばタイプＡのイベントが少なくとも２回発生し、タイプＢのイベントが１０００回未満発生した等の、上記の２以上の組み合わせであるような演算を実行する。
【００４５】
デバッグ信号２４５の肯定化の結果、下記の動作の１以上が生じ得る：
・１以上の回路又はモジュールの動作を、これら回路で使用されるクロック又は複数のクロックを休止又は停止させることにより休止又は停止させる；
・１以上の回路又はモジュールに、停止、休止又は遮断（shutdown）信号を送信する；
・監視されるイベント、値及び状態の現在の状態（status）をメッセージに符号化し、該メッセージを集積回路１００の外部のデバッグ又は監視回路に出力ピンを介して送信する；
・監視されている回路又はモジュール内のレジスタに値を強制入力する；
・バス上に値を強制的に出力する；及び
・監視されている回路又はモジュールに、強制的に状態を変化させる。
幾つかの場合においては、使用されるデバッグ信号は、元来、目標回路又はモジュールの一部である。他の場合では、デバッグ信号に応答して適切な動作を実行する目的で回路に監視又はデバッグロジックが追加される。
【００４６】
図３は、本発明の一実施例による要求送信回路及び要求受信回路のロジック図である。
【００４７】
要求送信回路２２０は到来する要求信号３３０を受信し、要求信号１５０を発生する。送信回路２２０は、到来する要求信号の各肯定化に応答して要求信号１５０の値を変化させる。転送回路２００（図２を参照して説明した）において使用されたように、目標ドメインイベント信号２１５は、該要求送信回路に、到来する要求信号３３０として供給される。転送回路５００（図５を参照して説明される）において使用されるように、転送信号５２２が要求送信回路に、到来する要求信号３３０として供給される。
【００４８】
要求受信回路２３０は、要求信号１５０を受信し、監視ドメイン要求信号３４０を発生する。要求信号１５０の値の各変化に応答して、受信回路２３０は、出力する要求信号３４０の１つの肯定化を行う。
【００４９】
転送回路２００において使用されたように、出力する要求信号３４０は監視ドメインイベント信号２３５となる。転送回路５００において使用されるように、出力する要求信号３４０は受信信号５３５となる。
【００５０】
送信回路２２０はＸＯＲゲート３１０Ａと、Ｄ型フリップフロップ３２０Ａとを含んでいる。要求信号１５０は、目標ドメインクロック３７０によりクロックされるＤ型フリップフロップ３２０Ａの出力である。フリップフロップ３２０ＡのＤ入力は排他的ＯＲ（ＸＯＲ）ゲート３１０Ａの出力であり、該ＸＯＲゲートは２つの入力を有している。ゲート３１０Ａの第１入力は要求信号１５０である。第２入力は前記到来する要求信号３３０である。
【００５１】
受信回路２３０は３つのＤ型フリップフロップ３２０Ｂ、３２０Ｃ及び３２０Ｄを含み、これらフリップフロップは監視ドメインクロック３８０によりクロックされる。これら３つのフリップフロップは直列に接続されている。即ち、最初のもの以外の全てのＤ型フリップフロップのＤ入力は、先行するＤ型フリップフロップの出力である。この直列接続における最初のＤ型フリップフロップ、３２０Ｂの１つの入力は、要求信号１５０である。出力する要求信号３４０はＸＯＲゲート３１０Ｂの出力であり、該ゲートの２つの入力はＤ型フリップフロップ３２０Ｃ及び３２０Ｄの出力である。
【００５２】
図４は、本発明の一実施例による、クロックドメイン間でイベントを転送する他の回路の機能ブロック図である。転送回路２００及び転送回路４００の両者とも、クロックドメイン境界を横切ってイベントを転送する。両転送回路は、監視クロックドメインが目標クロックドメインより充分に速く動作する場合に正しく動作する。
【００５３】
転送回路４００と比較して、転送回路２００は有利にも、より簡素であり、ＩＣ面積が一層小さく、目標イベントが発生した時と該イベントが監視ドメインに転送される時との間のレイテンシが一層小さい。
【００５４】
転送回路２００と比較して、転送回路４００は有利にも監視及び目標ドメインにおけるクロックに対して一層少ない制約しか課さない。転送回路４００は、目標ドメイン及び監視ドメインが等しいクロック周期を有するような状況において、これらクロックの間で位相関係がどの様であるかに拘わらず、正しく動作する。また、転送回路４００は、監視クロックドメインは目標クロックドメインより速いが、目標クロック周期が監視クロック周期と受信回路により必要とされるセットアップ時間との和に等しいという制約を満たすほど充分には速くないような状況でも動作する。
【００５５】
目標クロックドメインが監視クロックドメインよりも速く動作するような状況においては、転送回路４００は常に正しく動作するとは限らない。即ち、より遅い監視クロックドメインは、より速い目標クロックドメインで発生されるイベントに付いてゆくことができないかも知れない。しかしながら、当業者にとっては、クロック速度の相違、イベントが発生する率、イベントの発生の間の最小の遅延、及びカウンタ４１０のサイズが、転送回路４００が正しく動作するようなものとなるような特定のシステムが存在し得ることは明であろう。
【００５６】
転送回路４００は、目標クロックドメイン１７０に、イベント検出器２１０、カウンタ４１０、送信レジスタ４２０、要求送信回路２２０及び肯定応答受信回路４８０を含んでいる。また、該転送回路４００は、監視クロックドメイン１８０に、要求受信回路２３０、受信レジスタ４３０、肯定応答送信回路４７０及びイベントモニタ２４０を含んでいる。該イベントモニタ２４０は、目標値レジスタ４５０、累算器４４０及び比較回路４６０を含んでいる。
【００５７】
イベント検出器２１０、要求送信回路２２０及び要求受信回路２３０は、要求信号１５０が目標ドメインイベント信号２１５の各発生で自身の値を変化することがない点を除き、図２及び３を参照して説明したものと設計及び動作が等価である。むしろ、要求信号１５０は、送信レジスタ４２０から受信レジスタ４３０へ転送される準備の整った増加的イベントカウント値が存在する毎に変化する。
【００５８】
第１の増加的カウント値の転送が生じている間、及び対応する肯定応答が戻されている間において、カウンタ４１０は、必要なら（即ち、この期間に目標イベントが発生したら）他の増加的カウント値を累算する。このような増加的カウント値は、現在動作している転送が完了した後に転送されるであろう。
【００５９】
転送は比較的速い処理なので、上記増加的カウントの値は小さい。それは、同期オーバーヘッドを実行するために要する時間の間にイベントをバッファ処理するのに充分だけ大きければよい。例えば、転送回路５００（図５を参照して説明する）が同一のクロック周期を持つドメイン間でイベントを転送する場合、当該転送が完了する前に、目標クロックドメインでは７クロックサイクル以下しか生じ得ない。
【００６０】
カウンタ４１０は、目標ドメインイベント信号２１５が肯定化されるような目標ドメインクロックサイクルの数の増加的カウントを発生する。このカウントは、限られた期間の間でのみ累算される。転送信号に応答して、カウンタ４１０は上記増加的カウントを送信レジスタ４２０に転送し、保持されている該増加的カウントの値をクリアする。同じ転送信号に応答して、送信レジスタ４２０は上記増加的カウントをカウンタ４１０からロードする。次いで、該送信レジスタは該増加的カウント値を、転送信号の次の発生まで保持する。また、該転送信号に応答して、要求送信回路２２０は要求信号１５０の値を変化させる。
【００６１】
要求受信回路２３０は、要求信号１５０の変化を検出し、これに応答して、受信信号を発生する。該受信信号に応答して、受信レジスタ４３０は送信レジスタ４２０からドメイン間の増加的カウント４２５をロードする。
【００６２】
また、上記受信信号に応答して、肯定応答送信回路４７０は肯定応答信号４７５の値を変化させる。該送信回路４７０は、送信回路２２０と設計が等価である。回路４７０及び２２０は、ドメイン間転送の方向が逆転されているが、機能も等価である。
【００６３】
肯定応答受信回路４８０は、肯定応答信号４７５の変化を検出し、これに応答して、目標ドメイン肯定応答信号を発生する。受信回路４８０は、受信回路２３０と設計が等価である。回路４８０及び２３０は、ドメイン間転送の方向が逆転されているが、機能も等価である。
【００６４】
目標クロックドメイン１７０内の制御回路は、上記転送信号を、カウンタ４１０の増加的カウントに基づいて、及び目標ドメイン肯定応答信号に基づいて発生する。
【００６５】
イベントモニタ２４０内では、累算器４４０は受信レジスタ４３０からの増加的カウントを、必ずしもではないが典型的には、受信レジスタ４３０が該増加的カウントを受信した直後の監視クロックのサイクルの間に入力する。累算器４４０は、目標イベントの発生を計数するイベントカウント４４５を保持する。該累算器はカウント４４５を、該カウントに入力された各増加的カウント値を加算することにより更新する。
【００６６】
また、イベントモニタ２４０内では、目標値レジスタ４５０が目標値４５５を保持する。使用される他の目標選択の中でも、目標値４５５は所定の値とすることができるか、又はユーザによりプログラムすることができるか、又はイベントモニタ２４０内で動的に発生することができる。比較回路４６０は目標値４５５をイベントカウント４４５と比較し、これに基づいてデバッグ信号２４５を肯定化する。限定されるものではないが、等しい、より大きい、より小さい、以下である等を含む如何なる論理的又は算術的比較を使用することもできる。
【００６７】
図５は、本発明の一実施例によるクロックドメイン間でイベントを転送する回路の機能ブロック図である。転送回路５００は、使用されるクロックに対して転送回路４００と同様の制約を課し、従って転送回路２００とは相違する。イベントカウントを発生する転送回路４００とは異なり、転送回路５００はダウンカウンタ５３０を使用して、監視ドメインにおける目標イベントと対応するイベントを発生する。転送回路４００と５００との間の選択は、目標イベントがカウントされるか又は再発生されることを当該システムが要するかに基づいて行うことができる。
【００６８】
要求送信回路２２０、カウンタ４１０、送信レジスタ４２０、ドメイン間の増加的カウント４２５、要求信号１５０、肯定応答信号４７５及び肯定応答受信回路４８０は、図４を参照して説明したものと動作及び設計が等価である。
【００６９】
ダウンカウンタ５３０は、受信信号５３５に応答して、送信レジスタ４２０からドメイン間の増加的カウント４２５を受信する。後続のクロックサイクルの間において、ダウンカウンタ５３０は、該カウンタ５３０に保持された上記増加的カウントの値をデクリメントし、監視ドメインイベント信号２３５を肯定化する。該肯定化及びデクリメント動作は、該ダウンカウンタに保持された増加的カウント値が零となるまで継続する。レイテンシを無視すると、ダウンカウンタ５３０により発生される監視ドメインイベントの数は、検出される目標ドメインイベントの数に正確に等しい。
【００７０】
要求受信及び肯定応答送信回路５１０は受信信号５３５を発生し、この点では、要求受信回路２３０と動作及び設計が等価である。回路５１０は肯定応答信号４７５も発生するが、該信号は中間のＤ型フリップフロップ５４０Ｅの出力である。回路５１０は要求受信回路２３０と肯定応答送信回路４７０との組み合わせと機能が等価であるが、回路５１０は一層簡素であり、より少ないＩＣ面積しか要せず、イベントを転送する場合のレイテンシが小さい。
【００７１】
状態マシン５２０は転送信号５２２を発生し、該転送信号の肯定化は、カウンタ４１０に自身の値をクリアさせ、送信レジスタ４２０に目標ドメインの増加的カウント４１５をロードさせ、当該要求送信回路に要求信号１５０の値を変化させる。
【００７２】
状態マシン５２０は転送信号５２２を、目標ドメイン肯定応答信号５２４の履歴及び現在値並びに“カウントはゼロ”信号５２６の現在値に基づいて発生する。即ち、カウンタ４１０に保持されるカウントが非ゼロであることが、当該状態マシン５２０が増加的カウント値の現在活性状態の転送が完了したことを示す肯定応答信号を監視クロックドメインから受信するのを待っている期間を除き、転送信号５２２の肯定化をトリガする。
【００７３】
図６は、本発明の一実施例に使用される限定された状態マシンの状態図である。状態マシン５２０は２つの状態、即ちアイドル状態６１０及び肯定応答待ち状態６２０を含む。
【００７４】
移行６４０は、当該状態マシン５２０がアイドル状態６１０にあり、且つ、カウンタ４１０がゼロより大きい場合（即ち、“カウントはゼロ”信号５２６が肯定化されていない場合）に発生する。移行６４０は、該状態マシンを肯定応答待つ状態６２０に入るようにさせる。更に、移行６４０はイベント６３０Ａをトリガし、該イベントにおいて状態マシン５２０は次のクロックサイクルの間に転送信号５２２を肯定化する。転送信号５２２を肯定化する結果として、目標ドメインの増加的カウント４１５がカウンタ４１０から送信レジスタ４２０に転送され、該カウンタ４１０内の値がゼロにリセットされ、要求信号１５０の値が変化される。
【００７５】
移行６５０は、状態マシン５２０が待ち状態６２０にあり、カウンタ４１０がゼロであり、且つ、目標ドメイン肯定応答信号５２４が肯定化された場合に発生する。移行６５０は状態マシン５２０がアイドル状態６１０に入るようにさせる。移行６５０は、状態マシン５２０に如何なる信号も肯定化させず、これが図６にイベント６３５として示されている。
【００７６】
移行６６０は、状態マシン５２０が待ち状態６２０にあり、カウンタ４１０がゼロでなく、且つ、肯定応答信号が受信された場合に発生する。移行６６０は状態マシン５２０を待ち状態６２０に留まらせる。更に、移行６６０は、状態マシン５２０が次のクロックサイクルの間に転送信号５２２を肯定化するようにさせ、これがイベント６３０Ｂを生じさせる。イベント６３０Ｂの意味するところは、イベント６３０Ａのものと同一である。即ち、転送信号５２２が肯定化される。
【００７７】
本発明は、当業者にとっては本発明の及び本発明の使用に関して本明細書に含まれる説明に照らして明らかなように、工業において利用することができる。本発明は、既知である又は本明細書に記載された構成要素及び製造技術を使用して実施することができる。例えば、フリップフロップ及びカウンタを含む集積回路は良く知られている。
【００７８】
本発明は、ここで述べた目下の課題を解決し、目下の要求を満足させる。例えば、チップ上システム（ＳｏＣ）は、複数のクロックドメインを含みそうであると共にクロックドメイン間でのイベントの監視を必要としそうなＩＣの例である。
【００７９】
本発明の範囲は、添付の請求項及びそれらの法的均等物により記載される。本発明は、ここでの教示、当業者により既知の技術、当該分野において未だなされるべき進歩に照らして、種々の変更、変形、代替例の間における選択、形態の変更及び改善を受けるものである。ここでの図及び説明は、本発明を特定の詳細を提示することにより解説しようとするものであり、これらは全てを網羅し、又は本発明を記載された設計、形態及び実施例に限定しようとするものではない。
【図面の簡単な説明】
【００８０】
【図１】図１は、本発明の一実施例による集積回路（ＩＣ）における機能的構成要素及びこれらの相互接続を示し、該ＩＣは、各々が独立したクロックで動作する監視及びデバッグモジュール、第１プロセッサ並びに第２プロセッサを含んでいる。
【図２】図２は、クロックドメイン間でイベントを転送する第１の例示的回路における機能的構成要素及びこれらの相互接続を示す。
【図３】図３は、本発明の一実施例による要求送信回路及び要求受信回路におけるロジック要素及びこれらの相互接続を示す。
【図４】図４は、クロックドメイン間でイベントを転送する第２の例示的回路における機能的構成要素及びこれらの相互接続を示す。
【図５】図５は、クロックドメイン間でイベントを転送する第３の例示的回路における機能的構成要素及びこれらの相互接続を示す。
【図６】図６は、本発明の一実施例が動作することができる２つの状態を示すと共に、これらの状態の間を該実施例がどの様に移行するかを示す。
【図１】
2007526670.tif 000003
【図２】
2007526670.tif 000004
【図３】
2007526670.tif 000005
【図４】
2007526670.tif 000006
【図５】
2007526670.tif 000007
【図６】
2007526670.tif 000008
【国際調査報告】
2007526670.tif 000009
2007526670.tif 000010
2007526670.tif 000011