説明

クロックドメイン間のイベントの無損失転送

目標クロックドメイン(170)で発生する目標イベントを監視クロックドメインにおいて監視する転送回路(200,400,500)が開示されている。幾つかの実施例(200)は、ドメインクロックに対し大きな制約を課し、イベント検出器(210)と、各イベントに対して要求信号(150)の値を変化させる送信回路(220)と、該要求信号の変化を検出する受信回路(230)とを含んでいる。他の実施例は一層広いクロック範囲に対して動作し、転送が行われている間のイベントの発生の増加的カウントを発生するカウンタ(410)と、該増加的カウントのための送信及び受信レジスタ(420,430,530)と、要求送信及び受信回路(220,230)であって、ここで上記要求信号が上記増加的カウントの各転送に対して変化するような回路と、肯定応答信号のための送信及び受信回路(470,480)とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、広くはデジタル電子回路を設計するための、特には複数のクロックドメインを含むような回路を設計するための方法及び装置に関する。更に詳細には、本発明は或るクロックドメインにおいて他のクロックドメインで発生するイベントを監視するためにクロックドメイン間でイベントを転送する回路に関する。
【背景技術】
【0002】
現代の社会及び技術は、広くは電子回路に、特には集積回路(IC)に益々基づくものとなっている。コンピュータ、携帯電話、パーソナル・デジタル・アシスタント(PDA)、電子レンジ、洗濯機及び自動車は、しばしばICに基づく又はしばしば少なくとも1個のICを含むような多くの装置にのうちに入る。
【0003】
今日、集積回路は、容量が全体の電子回路システムを1つのチップ上に配置する(SoC)のが今や普通であるような点に到達している。このようなSoCは、しばしば、独立に設計された機能ブロック又はモジュールの集合である。このようなモジュールは、斯かるモジュールが元々設計された際には、実施化するのに全体のICを占有していた、又は幾つかのICを必要としていたのが普通である。
【0004】
多くのICは、クロックドメイン内の全てのロジック要素が同一のクロックを使用するような、同期的又はクロックされたロジックに基づくものである。クロックとは、相対的に低い電圧から相対的に高い電圧に一定のレートで常に変化する電子信号である。例えば、或るクロック信号の電圧は10ナノ秒(ns、又は秒/10億)の間0.3ボルトであり、次いで約3ns内に約3.0ボルトに上昇し、次いで約10nsの間一定に留まり、次いで約3ns内に約0.3ボルトに戻り得る。
【0005】
クロックされる回路は、クロックされない回路より設計するのがかなり簡単であり得る。しかしながら、クロックされる回路は、当該回路内の非クロック信号が何時適法的に変化することができるかについての制約を課すことになる。典型的には、クロックされるロジック要素に到来する信号は、セットアップ時間制約及び保持時間制約の両方を満たさねばならず、これら時間制約の各々は当該クロックが3.0ボルトに上昇する時間に対するものである。例えば、上記の到来信号は、クロックが上昇する前に6nsの間、次いでその後の1nsの間、約0.3ボルト又は約3.0ボルトのいずれかに一定に留まらなければならない。
【0006】
チップ上システムにとり生じる1つの問題は、斯かるシステムが、しばしば、複数のクロックドメインを含むことである。即ち、SoC内のモジュールは、異なる速度で走るクロック、同一の速度で走るが未知の位相関係を持つようなクロック、又は両者を有し得る。複数のクロックを持つシステムを有利にさせる要因は、使用される設計及び製造技術が進歩及び進化するにつれて、益々重要になりつつある。
【0007】
SoC内では、当該SoCの外部の種々の回路において使用されるクロックが異なる速度を有し得るために、異なるクロックが必要とされ得る。SoC内には、斯様な回路と緊密な関連で動作する、従って外部クロック速度と適合しなければならないような回路が存在し得る。異なるクロックは、2つのクロックの速度及び位相関係を精密に予測及び制御するのが困難であるが故に;クロックが電気的ノイズレベル、動作電圧、動作温度又は製造工程の変動に依存してどの様に速度及び位相が変化する傾向にあるかにより;SoC内のモジュールが元々どの様に設計されたかにより;斯かるモジュールの複雑さ若しくは機能により;全体のシステム性能を増加させる必要性故に;又は複数の動作モードを有する必要性によっても必要とされ得る。例えば、SoCは、特別な電源電圧及びクロック速度を使用するような大電力、高性能モード、並びに低い電圧及びクロック速度を使用するような低電力、低性能モードを有することができる。
【0008】
信号がクロックドメイン間の境界を横断する場合、即ち当該信号が或るクロックで動作する回路により発生され、異なるクロックで動作する回路により入力される場合、全体的な同期ロジック要素がセットアップ時間及び保持時間制約を満たすことは可能ではない。特別な回路無しでは、ドメイン間信号がセットアップ及び保持時間制約に違反することは普通である。このような違反は重大な問題となる。何故なら、セットアップ及び保持期間中に電圧を変化させる信号は、結果として、当該ロジック要素の出力が当該信号の古い値に基づくものとなるか又は当該信号の新しい値に基づくものとなるかが不明となり得るからである。
【0009】
更に、上記のような違反は、到来信号がセットアップ及び保持期間中に値を変化させると、幾つかの普通に使用されるロジック要素が準安定状態に入り得る故に、重大な問題となる。準安定状態においては、当該ロジック要素の出力端において生成される電圧が、該ロジック要素自身が安定するまでにランダムに変化し得る。
【0010】
更に、上記のような違反は、設計において検出することが困難であり得るので、重大な問題となる。ICを設計する多くの技術者は単一のクロックドメイン内でのクロックされる同期的回路の設計に馴れており、いくらかのものはクロックドメイン間で生じる準安定性問題には馴れていない可能性がある。
【0011】
更に、上記のような違反は、斯かる違反を伴うICが一旦製造されると、デバッグするのが困難であり得るので、重大な問題である。斯様なICは殆どの時間では正しく動作し、時たま故障し得る。斯様なICが故障する状況は、ランダムであるように思われる。このことは、問題を識別する作業を極めて困難にする。
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の目的は、或るクロックドメインから他のものにイベントを転送する改善された回路を提供することにある。本発明の幾つかの実施例は、有利にも2つのクロックに対して殆ど制約を課さず、複数のモード又は不確定な特性を有するようなクロックを伴うシステムを許容することができる。他の実施例は、有利にも、単純であり、IC面積が小さく、レイテンシが小さく、高速度で動作することができる。
【課題を解決するための手段】
【0013】
本発明の一実施例は、目標クロック(target clock)ドメインに、目標イベント(target event)の発生を検出すると共に、これに応答して、目標ドメインイベント信号を肯定化(assert)する手段と、該目標ドメインイベント信号に応答して要求信号の値を変化させる手段とを含んでいる。この実施例は、更に、監視クロック(monitor clock)ドメインに、上記要求信号の値の変化に応答して監視ドメインイベント信号を肯定化する手段を含む。
【0014】
本発明の他の実施例は、目標クロックドメインに、カウンタと、送信レジスタと、要求送信回路とを含む。上記カウンタは、期間内で発生する目標イベントの数の増加的カウントを発生する。転送信号に応答して、上記カウンタは上記増加的カウントを転送すると共にクリアし、上記送信レジスタは上記増加的カウントをロードし、次いで該増加的カウントを保持し、上記要求送信回路は要求信号の値を変化させる。
【0015】
この実施例は、監視クロックドメインに、要求受信回路と、受信レジスタと、肯定応答(acknowledge)送信回路とを更に含んでいる。上記要求受信回路は上記要求信号の変化を検出し、これに応答して、受信信号を発生する。該受信信号に応答して、上記受信レジスタは前記送信レジスタから増加的カウントをロードし、上記肯定応答送信回路は肯定応答信号の値を変化させる。
【0016】
この実施例は、目標クロックドメインに、肯定応答受信回路と、制御回路とを更に含んでいる。上記肯定応答受信回路は肯定応答信号の変化を検出し、これに応答して、目標ドメイン肯定応答信号を発生する。上記制御回路は、上記カウンタの増加的カウントと目標ドメイン肯定応答信号とに基づいて上記転送信号を発生する。
【0017】
本発明の更に他の実施例は、目標クロックドメインに、目標イベントが発生する毎に目標ドメインイベント信号を肯定化する検出器と、該目標ドメインイベント信号が肯定化される毎に要求信号の値を変化させる送信回路とを含んでいる。この実施例は、監視クロックドメインに、上記要求信号の変化を検出すると共に、検出される各変化に対して1度監視ドメインイベント信号を肯定化する受信回路を更に含んでいる。
【0018】
本発明の目的、フィーチャ及び利点は、図面と関連して精読された場合、本明細書の説明及び議論から明らかとなるであろう。本発明に関連する技術、本発明の実施例及び本発明の例示的使用は、図面に示されている。
【発明を実施するための最良の形態】
【0019】
本出願における説明、議論及び図は、本発明に関する技術を示し、本発明の例を示し、本発明を使用する例を示す。既知の方法、手順、システム、回路又は要素は詳細を示さずに図示及び説明し、本発明の原理がぼけるのを防止する。一方、本発明の特定の実施例の細部は、斯かる細部が本発明の他の実施例に当てはまらないかも知れなくても、示される。
【0020】
本明細書における幾つかの説明及び議論は、限定されるものではないが、送信する、受信する、転送する、等しい、未満、保持する、位相、クロック、変化させる、増加させる(インクリメントする)、肯定化(assert)する、真又は偽を含み抽象的又は一般的な用語を使用する。当業者は、斯様な用語を、コンピュータ、デジタル又は電子機械的システムにおける構成要素、データ又は処理のための便利な用語として使用している。斯様な構成要素、データ及び処理は、限定されるものではないが電圧、磁界又は光学的反射度を含む実際の物体の物理的特性により表される。例えば、“肯定化された”若しくは“真”は3ボルト周辺の電子信号を指すことができ、“肯定化されていない”若しくは“偽”は0.3ボルト周辺の信号を指すことができ、又はこれらの逆となる。同様に、限定されるものではないが検出、決定及び制御を含む知覚的又は観念的用語も、斯かる物理的特性の構成要素、データ、処理又は操作を指すことができる。
【0021】
図1は、3つのクロックドメインを有する、本発明の一実施例によるICの機能ブロック図である。本発明は、種々の設計のICにおいて、及び複数のICを含むシステムにおいて使用することができる。このように、図1のシステム構成は、多くのうちの一例に過ぎない。
【0022】
集積回路100は、監視及びデバッグモジュール140と、第1プロセッサ110と、共有メモリ120と、第2プロセッサ130とを含んでいる。上記第1プロセッサ及び共有メモリは、1つのクロックで動作し、第1目標クロックドメイン170Aを構成する。イベントAは第1プロセッサ内で発生し、結果として要求信号150Aの値が変化するが、該変化は上昇する変化(即ち、ローからハイへの遷移)又はハイからローへの下降する遷移の何れかである。要求信号150Aは、監視及びデバッグモジュール140内で受信される。イベントBは上記共有メモリ内で発生し、結果として要求信号150Bの値が変化する。この要求信号も、監視及びデバッグモジュール140内で受信される。
【0023】
第2プロセッサ130は、他のクロックで動作し、第2目標クロックドメイン170Bを構成する。イベントC及びDは該第2プロセッサ内で発生し、結果として要求信号150C及び150Dの値が変化する。これら信号も、監視及びデバッグモジュール140内で受信される。監視及びデバッグモジュール140は、監視クロックで動作し、監視クロックドメイン180を構成する。
【0024】
本発明の一実施例を使用すると、監視及びデバッグモジュール140は、何れかの目標クロックドメインにおける目標ドメインイベント信号が肯定化されているサイクル数を正確に決定することができる。クロックドメイン間での転送において如何なるイベントも失われることがなく、如何なる外部からのイベントが挿入されることもない。目標イベントが発生されるレートを変更し、休止(pause)させ、停滞(stall)させ又は停止(stop)させる必要はない。
【0025】
しかしながら、本発明は、或る情報をクロックドメイン境界を横断して伝達することはない。目標ドメインイベント信号が肯定化されない正確なサイクル数は、監視ドメインでは分からない。イベント信号を肯定化した目標ドメインクロックサイクル及びイベント信号を肯定化しなかった目標ドメインクロックサイクルの正確なインターリーブは分からない。目標ドメインイベントの発生と、監視クロックドメインにおける該イベントの再生又は検出との間のレイテンシは最高の優先度ではない。任意の値を、該値を先ずイベントの系列に直列化することによりクロックドメイン間で転送することができ、この場合において、上記系列におけるイベントの数が上記値を示す。これらの省略は、本発明の幾つかの実施例が斯様な能力を提供する回路よりも有利にも一層簡単、高速及び小型になるように熟慮したものである。
【0026】
図2は、本発明の一実施例による、クロックドメイン間でイベントを転送する回路の機能ブロック図である。転送回路200は、簡素であり、必要とされるIC面積が小さく、レイテンシが小さく、且つ、高速度で動作することができるが、監視及び目標ドメインにおけるクロックに制約を課す。
【0027】
転送回路200は、イベント検出器210及び送信回路220を含み、これらの各々は目標クロック信号によりクロックされる。目標クロックドメイン170は、上記イベント検出器及び送信回路、並びに、このクロックで動作する如何なる他の回路も含む。
【0028】
転送回路200は、受信回路230及びイベントモニタ240も含み、これらの各々は監視クロック信号によりクロックされる。監視クロックドメイン180は、上記受信回路及びイベントモニタ、並びに監視クロックに基づいて動作する如何なる他の回路も含む。
【0029】
目標及び監視クロックドメイン170及び180の各々における回路は、必須ではないが、好ましくは同期型の立ち上がり縁でトリガされるデジタル回路用の設計技術に基づくものとする。このような回路では、到来信号は、該信号の値が当該クロックの立ち上がり縁でハイであるような各クロックサイクルにおいて肯定化されていると見なされる。
【0030】
即ち、イベント信号が、セットアップ時間及び保持時間を有する例えばD型フリップフロップ等のクロックされるロジック要素に入るような例を考察する。上記イベント信号は、該信号が当該クロックの立ち上がり縁より少なくとも1セットアップ時間前から該立ち上がり縁より少なくとも1保持時間後までハイであるような各クロック期間に対して1度肯定化される。
【0031】
上記イベント信号がセットアップ時間又は保持時間の制約に違反するような時刻に値を変化させる場合、上記D型フリップフロップにより出力される値は予測不可能であるか又は準安定となる。このような準安定出力信号は、上記イベント信号の遷移前の値又は上記イベント信号の遷移後の値を有し得るか、又は該出力信号は不安定であり、値が変化し得る。典型的には、D型フリップフロップの準安定は、イベント信号が制約に違反しないような次のクロックサイクルで以って終了するが、これは該D型フリップフロップの設計細部に依存する。設計、製造工程及び動作パラメータに依存するが、斯かる準安定状態が2クロックサイクル以上継続する可能性はあるものの、この可能性は非常に起こりそうにないものとすることができる。
【0032】
多くの標準のクロック信号及びロジック要素は、立ち上がり縁でトリガされる。即ち、クロックされる要素の出力は、クロックの立ち上がり縁によりトリガされる際の該要素の入力に依存する。多くの標準のロジック要素は、クロックの立ち上がり縁における信号の値に対してのみ応答する。
【0033】
対照的に、要求信号150は、該要求信号の現在の値に依存して、立ち上がり縁又は立ち下がり縁のいずれかとして要求を符号化する。受信回路230は、要求信号150の立ち上がり縁又は立ち下がり縁のいずれに対しても同様の態様で応答する。即ち、該要求信号の値の如何なる変化も、同じ応答を生じる。
【0034】
転送回路200は、有利にも、簡素であり、高性能であり、必要とするIC面積が小さい。しかしながら、転送回路400及び500(図4及び5を参照して説明する)とは異なり、転送回路200は目標ドメインクロックと監視ドメインクロックとの間の関係に大きな制約を課す。監視クロックドメインは、目標クロックドメインよりも速く動作しなければならない。
【0035】
目標クロックドメインが監視クロックドメインよりも速く動作するシステムにおいては、転送回路200は正しく動作することができない。即ち、目標クロックドメインは、監視ドメインが受け取り、検出し、カウントし、又は監視することができるよりも多くの目標イベントを発生し得る。
【0036】
転送回路200が正確に動作する主たる状況は、目標クロックの周期が、少なくとも監視クロックの周期と受信回路により必要とされるセットアップ時間との和であるような場合である。この制約下でさえも、受信回路内の最初のロジック要素、即ちD型フリップフロップ320Bが、準安定状態に入る可能性がある。それにも拘わらず、要求は値としてではなく遷移として符号化されるので、フリップフロップ320Bにおける一時的な準安定状態が結果として誤った情報転送になることはない。このように、要求信号の値の変化が初期的に準安定性を生じても、該要求信号の値の変化は次の監視ドメインクロックサイクルにおいて正しく解釈される。
【0037】
幾つかのSoC設計においては、目標クロックの周期を少なくとも監視クロックの周期と受信回路により必要とされるセットアップ時間との和にすることが現実的でないかも知れない。このような設計は転送回路400又は500を利用すべきであり、これら回路は図4及び5を参照して説明する。
【0038】
転送回路200が正しく動作する第2の状況は、目標クロック及び監視クロックが等しい周期を有すると共に適切な位相関係を有する場合である。この条件で常に動作するシステムにおいては転送回路200は余分となるが、斯様なシステムにおけるクロックが、該システムの動作モードの意図的変更によるか又はクロックの意図しない変動によるかの何れかにより変化する場合、転送回路200は必要となり得る。
【0039】
本発明の種々の実施例においては、種々の検出入力205がイベント検出器210により入力される。幾つかの場合においては、上記検出入力(又は複数の入力)は本来的に目標回路又はモジュールの一部であるような信号である。他の場合においては、検出入力205を発生する目的で、監視又はデバッグロジックが回路に追加される。
【0040】
典型的には、検出入力205及びイベント検出器210の設計は、監視及びデバッグモジュール140により監視されている回路又はモジュールの細部に依存する。検出することができるイベントは、限定されるものではないが、下記のものの1以上を含む:
・プロセッサのプログラムカウンタが目標値に一致するような命令アドレスブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する;
・プロセッサが実行する演算コードが目標値に一致するような命令処理ブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する;
・ロードトランザクション、又はストアトランザクション、又はロード若しくはストアの何れかが目標値に一致するようなデータアドレスを使用するデータアドレスブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する;
・ロードトランザクション、又はストアトランザクション、又はロード若しくはストアの何れかが目標値に一致するようなデータ値を使用するデータ値ブレークポイントが、範囲内であるか、又は目標値に一致するような指定されたビットを有する;
・割り込み又は例外(exception)が発生している;
・回路又はモジュールが、ユーザモード、カーネルモード、監視(supervisor)モード又はデバッグモード等の目標動作モードに移行している;
・キャッシュミス、パイプラインストール又は分岐誤予測等の性能監視イベント;
・バス又はメモリコントローラが目標装置又はチャンネルを選択している;
・チップ上フェーズロックループ(PLL)が到来信号に対してロックを獲得し、かくして信頼性のあるクロック信号を生成している;
・バッファ又は先入先出(FIFO)レジスタがオーバーフローしているか又は空になっている;
・回路又はモジュールが目標状態に入るか又は目標状態から離脱する;又は
・例えば目標モジュールがアイドル状態にない場合に目標FIFOレジスタが空になるというような、これらの2以上の論理的組み合わせ。
【0041】
1以上の検出入力信号205の値に応答して、イベント検出器210は1以上の目標ドメインイベント信号215を発生し、これらイベント信号の各々は送信回路220の対応する事例(インスタンス)に結合される。送信回路220の各インスタンスは、受信回路230の対応するインスタンス及び要求信号150の対応するインスタンスを有する。
【0042】
目標ドメインイベント信号215の各肯定化に応答して、送信回路220は要求信号150の値を変化させる(例えば、送信回路220は要求信号を現在“1”なら、“0”にするか、又はその逆とする)。該要求信号はクロックドメインを横切って進行するので、同一の情報を立ち上がり遷移又は立ち下がり遷移のいずれかとして符号化するような信号を要求信号150として使用するのが有利である。上記要求信号は要求を何れかの遷移として符号化するので、該要求信号により伝達される情報及び該要求信号の結果は共にクロックに基づくタイミングとは独立したものとなる。該要求信号の遷移が生じる目標クロックサイクルの位相及び監視クロックサイクルの位相のいずれも、受信回路230又はイベントモニタ240が該要求信号に対してどの様に応答するかについて如何なる影響も有することはない。
【0043】
要求信号150のインスタンスの値の各変化に応答して、対応する受信回路230は監視ドメインイベント信号235の1つの肯定化を行う。該監視ドメインイベント信号(又は複数の信号)はイベントモニタ240に供給される。斯かる監視ドメインイベント信号に応答して、イベントモニタ240は1以上のデバッグ信号245を発生する。
【0044】
イベントモニタ240の設計の詳細、発生されるデバッグ信号(又は複数の信号)245の性質及び該デバッグ信号の利用は、典型的には、前記モニタ及びデバッグモジュール140により監視されている回路又はモジュールの設計の詳細に依存する。イベントモニタ240は、限定されるものではないが、下記の1以上を実行する回路を含むことができる:
・どの様なタイプの目標イベントが発生したか、又は目標イベントに続いて発生したかを示すフラグを保持する;
・各タイプの目標イベントの発生をカウントする;
・例えばタイプAのイベントが3回発生したと判定する等の、目標イベントのカウントに対する算術演算を実行する;
・例えばタイプAの及びタイプBの両方の目標イベントが発生したと判定する等の、イベントフラグに対する論理演算を実行する;又は
・例えばタイプAのイベントが少なくとも2回発生し、タイプBのイベントが1000回未満発生した等の、上記の2以上の組み合わせであるような演算を実行する。
【0045】
デバッグ信号245の肯定化の結果、下記の動作の1以上が生じ得る:
・1以上の回路又はモジュールの動作を、これら回路で使用されるクロック又は複数のクロックを休止又は停止させることにより休止又は停止させる;
・1以上の回路又はモジュールに、停止、休止又は遮断(shutdown)信号を送信する;
・監視されるイベント、値及び状態の現在の状態(status)をメッセージに符号化し、該メッセージを集積回路100の外部のデバッグ又は監視回路に出力ピンを介して送信する;
・監視されている回路又はモジュール内のレジスタに値を強制入力する;
・バス上に値を強制的に出力する;及び
・監視されている回路又はモジュールに、強制的に状態を変化させる。
幾つかの場合においては、使用されるデバッグ信号は、元来、目標回路又はモジュールの一部である。他の場合では、デバッグ信号に応答して適切な動作を実行する目的で回路に監視又はデバッグロジックが追加される。
【0046】
図3は、本発明の一実施例による要求送信回路及び要求受信回路のロジック図である。
【0047】
要求送信回路220は到来する要求信号330を受信し、要求信号150を発生する。送信回路220は、到来する要求信号の各肯定化に応答して要求信号150の値を変化させる。転送回路200(図2を参照して説明した)において使用されたように、目標ドメインイベント信号215は、該要求送信回路に、到来する要求信号330として供給される。転送回路500(図5を参照して説明される)において使用されるように、転送信号522が要求送信回路に、到来する要求信号330として供給される。
【0048】
要求受信回路230は、要求信号150を受信し、監視ドメイン要求信号340を発生する。要求信号150の値の各変化に応答して、受信回路230は、出力する要求信号340の1つの肯定化を行う。
【0049】
転送回路200において使用されたように、出力する要求信号340は監視ドメインイベント信号235となる。転送回路500において使用されるように、出力する要求信号340は受信信号535となる。
【0050】
送信回路220はXORゲート310Aと、D型フリップフロップ320Aとを含んでいる。要求信号150は、目標ドメインクロック370によりクロックされるD型フリップフロップ320Aの出力である。フリップフロップ320AのD入力は排他的OR(XOR)ゲート310Aの出力であり、該XORゲートは2つの入力を有している。ゲート310Aの第1入力は要求信号150である。第2入力は前記到来する要求信号330である。
【0051】
受信回路230は3つのD型フリップフロップ320B、320C及び320Dを含み、これらフリップフロップは監視ドメインクロック380によりクロックされる。これら3つのフリップフロップは直列に接続されている。即ち、最初のもの以外の全てのD型フリップフロップのD入力は、先行するD型フリップフロップの出力である。この直列接続における最初のD型フリップフロップ、320Bの1つの入力は、要求信号150である。出力する要求信号340はXORゲート310Bの出力であり、該ゲートの2つの入力はD型フリップフロップ320C及び320Dの出力である。
【0052】
図4は、本発明の一実施例による、クロックドメイン間でイベントを転送する他の回路の機能ブロック図である。転送回路200及び転送回路400の両者とも、クロックドメイン境界を横切ってイベントを転送する。両転送回路は、監視クロックドメインが目標クロックドメインより充分に速く動作する場合に正しく動作する。
【0053】
転送回路400と比較して、転送回路200は有利にも、より簡素であり、IC面積が一層小さく、目標イベントが発生した時と該イベントが監視ドメインに転送される時との間のレイテンシが一層小さい。
【0054】
転送回路200と比較して、転送回路400は有利にも監視及び目標ドメインにおけるクロックに対して一層少ない制約しか課さない。転送回路400は、目標ドメイン及び監視ドメインが等しいクロック周期を有するような状況において、これらクロックの間で位相関係がどの様であるかに拘わらず、正しく動作する。また、転送回路400は、監視クロックドメインは目標クロックドメインより速いが、目標クロック周期が監視クロック周期と受信回路により必要とされるセットアップ時間との和に等しいという制約を満たすほど充分には速くないような状況でも動作する。
【0055】
目標クロックドメインが監視クロックドメインよりも速く動作するような状況においては、転送回路400は常に正しく動作するとは限らない。即ち、より遅い監視クロックドメインは、より速い目標クロックドメインで発生されるイベントに付いてゆくことができないかも知れない。しかしながら、当業者にとっては、クロック速度の相違、イベントが発生する率、イベントの発生の間の最小の遅延、及びカウンタ410のサイズが、転送回路400が正しく動作するようなものとなるような特定のシステムが存在し得ることは明であろう。
【0056】
転送回路400は、目標クロックドメイン170に、イベント検出器210、カウンタ410、送信レジスタ420、要求送信回路220及び肯定応答受信回路480を含んでいる。また、該転送回路400は、監視クロックドメイン180に、要求受信回路230、受信レジスタ430、肯定応答送信回路470及びイベントモニタ240を含んでいる。該イベントモニタ240は、目標値レジスタ450、累算器440及び比較回路460を含んでいる。
【0057】
イベント検出器210、要求送信回路220及び要求受信回路230は、要求信号150が目標ドメインイベント信号215の各発生で自身の値を変化することがない点を除き、図2及び3を参照して説明したものと設計及び動作が等価である。むしろ、要求信号150は、送信レジスタ420から受信レジスタ430へ転送される準備の整った増加的イベントカウント値が存在する毎に変化する。
【0058】
第1の増加的カウント値の転送が生じている間、及び対応する肯定応答が戻されている間において、カウンタ410は、必要なら(即ち、この期間に目標イベントが発生したら)他の増加的カウント値を累算する。このような増加的カウント値は、現在動作している転送が完了した後に転送されるであろう。
【0059】
転送は比較的速い処理なので、上記増加的カウントの値は小さい。それは、同期オーバーヘッドを実行するために要する時間の間にイベントをバッファ処理するのに充分だけ大きければよい。例えば、転送回路500(図5を参照して説明する)が同一のクロック周期を持つドメイン間でイベントを転送する場合、当該転送が完了する前に、目標クロックドメインでは7クロックサイクル以下しか生じ得ない。
【0060】
カウンタ410は、目標ドメインイベント信号215が肯定化されるような目標ドメインクロックサイクルの数の増加的カウントを発生する。このカウントは、限られた期間の間でのみ累算される。転送信号に応答して、カウンタ410は上記増加的カウントを送信レジスタ420に転送し、保持されている該増加的カウントの値をクリアする。同じ転送信号に応答して、送信レジスタ420は上記増加的カウントをカウンタ410からロードする。次いで、該送信レジスタは該増加的カウント値を、転送信号の次の発生まで保持する。また、該転送信号に応答して、要求送信回路220は要求信号150の値を変化させる。
【0061】
要求受信回路230は、要求信号150の変化を検出し、これに応答して、受信信号を発生する。該受信信号に応答して、受信レジスタ430は送信レジスタ420からドメイン間の増加的カウント425をロードする。
【0062】
また、上記受信信号に応答して、肯定応答送信回路470は肯定応答信号475の値を変化させる。該送信回路470は、送信回路220と設計が等価である。回路470及び220は、ドメイン間転送の方向が逆転されているが、機能も等価である。
【0063】
肯定応答受信回路480は、肯定応答信号475の変化を検出し、これに応答して、目標ドメイン肯定応答信号を発生する。受信回路480は、受信回路230と設計が等価である。回路480及び230は、ドメイン間転送の方向が逆転されているが、機能も等価である。
【0064】
目標クロックドメイン170内の制御回路は、上記転送信号を、カウンタ410の増加的カウントに基づいて、及び目標ドメイン肯定応答信号に基づいて発生する。
【0065】
イベントモニタ240内では、累算器440は受信レジスタ430からの増加的カウントを、必ずしもではないが典型的には、受信レジスタ430が該増加的カウントを受信した直後の監視クロックのサイクルの間に入力する。累算器440は、目標イベントの発生を計数するイベントカウント445を保持する。該累算器はカウント445を、該カウントに入力された各増加的カウント値を加算することにより更新する。
【0066】
また、イベントモニタ240内では、目標値レジスタ450が目標値455を保持する。使用される他の目標選択の中でも、目標値455は所定の値とすることができるか、又はユーザによりプログラムすることができるか、又はイベントモニタ240内で動的に発生することができる。比較回路460は目標値455をイベントカウント445と比較し、これに基づいてデバッグ信号245を肯定化する。限定されるものではないが、等しい、より大きい、より小さい、以下である等を含む如何なる論理的又は算術的比較を使用することもできる。
【0067】
図5は、本発明の一実施例によるクロックドメイン間でイベントを転送する回路の機能ブロック図である。転送回路500は、使用されるクロックに対して転送回路400と同様の制約を課し、従って転送回路200とは相違する。イベントカウントを発生する転送回路400とは異なり、転送回路500はダウンカウンタ530を使用して、監視ドメインにおける目標イベントと対応するイベントを発生する。転送回路400と500との間の選択は、目標イベントがカウントされるか又は再発生されることを当該システムが要するかに基づいて行うことができる。
【0068】
要求送信回路220、カウンタ410、送信レジスタ420、ドメイン間の増加的カウント425、要求信号150、肯定応答信号475及び肯定応答受信回路480は、図4を参照して説明したものと動作及び設計が等価である。
【0069】
ダウンカウンタ530は、受信信号535に応答して、送信レジスタ420からドメイン間の増加的カウント425を受信する。後続のクロックサイクルの間において、ダウンカウンタ530は、該カウンタ530に保持された上記増加的カウントの値をデクリメントし、監視ドメインイベント信号235を肯定化する。該肯定化及びデクリメント動作は、該ダウンカウンタに保持された増加的カウント値が零となるまで継続する。レイテンシを無視すると、ダウンカウンタ530により発生される監視ドメインイベントの数は、検出される目標ドメインイベントの数に正確に等しい。
【0070】
要求受信及び肯定応答送信回路510は受信信号535を発生し、この点では、要求受信回路230と動作及び設計が等価である。回路510は肯定応答信号475も発生するが、該信号は中間のD型フリップフロップ540Eの出力である。回路510は要求受信回路230と肯定応答送信回路470との組み合わせと機能が等価であるが、回路510は一層簡素であり、より少ないIC面積しか要せず、イベントを転送する場合のレイテンシが小さい。
【0071】
状態マシン520は転送信号522を発生し、該転送信号の肯定化は、カウンタ410に自身の値をクリアさせ、送信レジスタ420に目標ドメインの増加的カウント415をロードさせ、当該要求送信回路に要求信号150の値を変化させる。
【0072】
状態マシン520は転送信号522を、目標ドメイン肯定応答信号524の履歴及び現在値並びに“カウントはゼロ”信号526の現在値に基づいて発生する。即ち、カウンタ410に保持されるカウントが非ゼロであることが、当該状態マシン520が増加的カウント値の現在活性状態の転送が完了したことを示す肯定応答信号を監視クロックドメインから受信するのを待っている期間を除き、転送信号522の肯定化をトリガする。
【0073】
図6は、本発明の一実施例に使用される限定された状態マシンの状態図である。状態マシン520は2つの状態、即ちアイドル状態610及び肯定応答待ち状態620を含む。
【0074】
移行640は、当該状態マシン520がアイドル状態610にあり、且つ、カウンタ410がゼロより大きい場合(即ち、“カウントはゼロ”信号526が肯定化されていない場合)に発生する。移行640は、該状態マシンを肯定応答待つ状態620に入るようにさせる。更に、移行640はイベント630Aをトリガし、該イベントにおいて状態マシン520は次のクロックサイクルの間に転送信号522を肯定化する。転送信号522を肯定化する結果として、目標ドメインの増加的カウント415がカウンタ410から送信レジスタ420に転送され、該カウンタ410内の値がゼロにリセットされ、要求信号150の値が変化される。
【0075】
移行650は、状態マシン520が待ち状態620にあり、カウンタ410がゼロであり、且つ、目標ドメイン肯定応答信号524が肯定化された場合に発生する。移行650は状態マシン520がアイドル状態610に入るようにさせる。移行650は、状態マシン520に如何なる信号も肯定化させず、これが図6にイベント635として示されている。
【0076】
移行660は、状態マシン520が待ち状態620にあり、カウンタ410がゼロでなく、且つ、肯定応答信号が受信された場合に発生する。移行660は状態マシン520を待ち状態620に留まらせる。更に、移行660は、状態マシン520が次のクロックサイクルの間に転送信号522を肯定化するようにさせ、これがイベント630Bを生じさせる。イベント630Bの意味するところは、イベント630Aのものと同一である。即ち、転送信号522が肯定化される。
【0077】
本発明は、当業者にとっては本発明の及び本発明の使用に関して本明細書に含まれる説明に照らして明らかなように、工業において利用することができる。本発明は、既知である又は本明細書に記載された構成要素及び製造技術を使用して実施することができる。例えば、フリップフロップ及びカウンタを含む集積回路は良く知られている。
【0078】
本発明は、ここで述べた目下の課題を解決し、目下の要求を満足させる。例えば、チップ上システム(SoC)は、複数のクロックドメインを含みそうであると共にクロックドメイン間でのイベントの監視を必要としそうなICの例である。
【0079】
本発明の範囲は、添付の請求項及びそれらの法的均等物により記載される。本発明は、ここでの教示、当業者により既知の技術、当該分野において未だなされるべき進歩に照らして、種々の変更、変形、代替例の間における選択、形態の変更及び改善を受けるものである。ここでの図及び説明は、本発明を特定の詳細を提示することにより解説しようとするものであり、これらは全てを網羅し、又は本発明を記載された設計、形態及び実施例に限定しようとするものではない。
【図面の簡単な説明】
【0080】
【図1】図1は、本発明の一実施例による集積回路(IC)における機能的構成要素及びこれらの相互接続を示し、該ICは、各々が独立したクロックで動作する監視及びデバッグモジュール、第1プロセッサ並びに第2プロセッサを含んでいる。
【図2】図2は、クロックドメイン間でイベントを転送する第1の例示的回路における機能的構成要素及びこれらの相互接続を示す。
【図3】図3は、本発明の一実施例による要求送信回路及び要求受信回路におけるロジック要素及びこれらの相互接続を示す。
【図4】図4は、クロックドメイン間でイベントを転送する第2の例示的回路における機能的構成要素及びこれらの相互接続を示す。
【図5】図5は、クロックドメイン間でイベントを転送する第3の例示的回路における機能的構成要素及びこれらの相互接続を示す。
【図6】図6は、本発明の一実施例が動作することができる2つの状態を示すと共に、これらの状態の間を該実施例がどの様に移行するかを示す。

【特許請求の範囲】
【請求項1】
目標クロックドメインで発生する目標イベントを監視クロックドメインに転送する転送回路において、該転送回路が、
前記目標イベントが発生する毎に目標ドメインイベント信号を肯定化するように構成された、前記目標クロックドメインにおける検出器と、
前記目標ドメインイベント信号が肯定化される毎に要求信号の値を変化させるように構成された、前記目標クロックドメインにおける送信回路と、
前記要求信号の値の変化を検出し、検出された値の各変化に対して1度、監視ドメインイベント信号を肯定化するように構成された、前記監視クロックドメインにおける受信回路と、
を有することを特徴とする転送回路。
【請求項2】
請求項1に記載の転送回路において、
当該転送回路は集積回路内のデバッグモジュールに使用されるよう構成され、
該転送回路が、前記監視ドメインイベント信号に応答してデバッグイベント信号を肯定化するように構成された監視回路を更に有している、
ことを特徴とする転送回路。
【請求項3】
請求項1に記載の転送回路において、
第2目標イベントが発生した場合に第2目標ドメインイベント信号を肯定化するように構成された、第2目標クロックドメインにおける第2検出器と、
前記第2目標ドメインイベント信号が肯定化される毎に第2要求信号の値を変化させるように構成された、前記第2目標クロックドメインにおける第2送信回路と、
前記第2要求信号の値の変化を検出し、検出された値の各変化に対して1度、第2監視ドメインイベント信号を肯定化するように構成された、前記監視クロックドメインにおける第2受信回路と、
を更に有することを特徴とする転送回路。
【請求項4】
請求項3に記載の転送回路において、
前記監視ドメインイベント信号に応答して第1カウントをインクリメントし、前記第2監視ドメインイベント信号に応答して第2カウントをインクリメントし、第1目標値を保持し、前記第1カウントを前記第1目標値と比較することにより第1トリガ信号を生成し、第2目標値を保持し、前記第2カウントを前記第2目標値と比較することにより第2トリガ信号を生成するように構成された、前記監視クロックドメインにおける監視回路、
を更に有し、
当該転送回路は集積回路内のデバッグモジュールに使用するよう構成され、前記監視回路が、更に、前記第1トリガ信号、前記第2トリガ信号、又はこれら信号の論理組み合わせから選択された信号に基づいてデバッグ信号を肯定化するように構成されている、
ことを特徴とする転送回路。
【請求項5】
請求項1に記載の転送回路において、前記目標クロックの周期が少なくとも前記監視クロックの周期と前記受信回路により必要とされるセットアップ時間との和であることを特徴とする転送回路。
【請求項6】
目標クロックドメインで発生する目標イベントを監視クロックドメインに転送する転送回路において、該転送回路が、
前記目標イベントの期間内での発生の増加的カウントを発生し、転送信号に応答して前記増加的カウントを転送すると共に該増加的カウントをクリアするように構成された、前記目標クロックドメイン内のカウンタと、
前記転送信号に応答して前記増加的カウントをロードすると共に該増加的カウントを保持するように構成された、前記目標クロックドメイン内の送信レジスタであって、前記カウンタが前記増加的カウントを発生する前記期間が、前記送信レジスタが該増加的カウントを保持する期間を含むような送信レジスタと、
前記転送信号に応答して要求信号の値を変化させるように構成された、前記目標クロックドメイン内の要求送信回路と、
前記要求信号の値の変化を検出し、これに応答して受信信号を発生するように構成された、前記監視クロックドメイン内の要求受信回路と、
前記受信信号に応答して前記送信レジスタから前記増加的カウントをロードするように構成された、前記監視クロックドメインにおける受信レジスタと、
前記受信信号に応答して肯定応答信号の値を変化させるように構成された、前記監視クロックドメインにおける肯定応答送信回路と、
前記肯定応答信号の値の変化を検出し、これに応答して目標ドメイン肯定応答信号を肯定化するように構成された、前記目標クロックドメインにおける肯定応答受信回路と、
前記要求信号の値の各変化に対して前記目標ドメイン肯定応答信号が肯定化されており、且つ、前記カウンタにおける前記増加的カウントがゼロでない場合に前記転送信号を発生するように構成された、前記目標クロックドメインにおける制御回路と、
を有することを特徴とする転送回路。
【請求項7】
請求項6に記載の転送回路において、前記受信レジスタが更に、該受信レジスタにおける前記増加的カウントがゼロでない場合に監視ドメインイベント信号を肯定化し、該監視ドメインイベント信号が肯定化される毎に前記増加的カウントをデクリメントするように構成されていることを特徴とする転送回路。
【請求項8】
請求項6に記載の転送回路において、前記増加的カウントをイベントカウントに加算するように構成された、前記監視クロックドメインにおける監視回路を更に有することを特徴とする転送回路。
【請求項9】
請求項8に記載の転送回路において、
当該転送回路は集積回路内のデバッグモジュールに使用するように構成され、
前記監視回路が更に、目標値を保持し、前記イベントカウントを該目標値と比較し、該比較に基づいてデバッグ信号を肯定化するように構成されていることを特徴とする転送回路。
【請求項10】
目標クロックドメインで発生する目標イベントを監視クロックドメインに転送する転送回路において、該転送回路が、
前記目標イベントの発生を検出し、該検出に応答して目標ドメインイベント信号を肯定化する、前記目標クロックドメインにおける手段と、
前記目標ドメインイベント信号に応答して要求信号の値を変化させる、前記目標クロックドメインにおける手段と、
前記要求信号を受信すると共に、前記要求信号の値の変化に応答して監視ドメインイベント信号を肯定化する、前記監視クロックドメインにおける手段と、
を有することを特徴とする転送回路。
【請求項11】
請求項10に記載の転送回路において、
当該転送回路は集積回路内のデバッグモジュールにおいて使用するよう構成され、
該転送回路が、前記監視ドメインイベント信号に応答してデバッグイベントをトリガする手段を更に有する、
ことを特徴とする転送回路。
【請求項12】
請求項10に記載の転送回路において、
前記要求信号の値は、前記目標ドメインイベント信号が肯定化される毎に変化し、
前記目標クロックの周期は、少なくとも前記監視クロックの周期と前記受信する手段により必要とされるセットアップ時間との和である、
ことを特徴とする転送回路。
【請求項13】
請求項10に記載の転送回路において、
期間内の前記目標イベントの発生をカウントし、これにより増加的カウントを発生する一方、イネーブルされた場合に、ゼロでない増加的カウントを転送すると共に該増加的カウントをリセットする、前記目標クロックドメインにおける手段と、
前記カウントする手段から受信された前記増加的カウントを保持する、前記目標クロックドメインにおける手段であって、前記カウントする手段がカウントする前記期間が、該保持する手段が前記増加的カウントを保持する期間を含んでいるような保持する手段と、
前記要求信号の値の変化に対して、前記保持する手段から前記増加的カウントを受信することにより、及び肯定応答信号の値を変化させることにより応答する、前記監視クロックドメインにおける手段と、
前記ゼロでない増加的カウントの転送を前記肯定応答信号が値を変化するまで不能化する、前記目標クロックドメインにおける手段と、
を更に有し、前記要求信号の値が、ゼロでない増加的カウントが転送される毎に変化することを特徴とする転送回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−526670(P2007−526670A)
【公表日】平成19年9月13日(2007.9.13)
【国際特許分類】
【出願番号】特願2006−517701(P2006−517701)
【出願日】平成16年6月25日(2004.6.25)
【国際出願番号】PCT/US2004/020566
【国際公開番号】WO2005/002129
【国際公開日】平成17年1月6日(2005.1.6)
【出願人】(590000248)コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ (12,071)
【Fターム(参考)】