(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-03
(45)【発行日】2023-10-12
(54)【発明の名称】マルチビットデータのクロスクロックドメインの処理方法と装置
(51)【国際特許分類】
H04L 7/00 20060101AFI20231004BHJP
【FI】
H04L7/00 500
(21)【出願番号】P 2021558008
(86)(22)【出願日】2020-04-30
(86)【国際出願番号】 CN2020088019
(87)【国際公開番号】W WO2020259080
(87)【国際公開日】2020-12-30
【審査請求日】2021-10-12
(31)【優先権主張番号】201910578841.3
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】516010548
【氏名又は名称】セインチップス テクノロジー カンパニーリミテッド
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】林忱
【審査官】齊藤 晶
(56)【参考文献】
【文献】米国特許出願公開第2009/0304134(US,A1)
【文献】米国特許第07250797(US,B1)
【文献】米国特許出願公開第2012/0033772(US,A1)
【文献】米国特許出願公開第2006/0198479(US,A1)
【文献】米国特許第06519301(US,B1)
【文献】Salomon Beer et al.,The Devolution of Synchronizers,2010 IEEE Symposium on Asynchronous Circuits and Systems,2010年06月03日,pp.94-103
【文献】R. Ginosar,Fourteen Ways to Fool Your Synchronizer,Ninth International Symposium on Asynchronous Circuits and Systems, 2003. Proceedings.,2003年05月21日,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
マルチビットデータのクロスクロックドメインの処理方法であって、
送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは異なるクロックドメインであることと、
前記データが変化されたかどうかを検出することと、
前記データが変化された場合、前記データを更新してから出力し、前記データが変化されていない場合、元の出力データを維持することと
、を含
み、
前記送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得することは、
前記送信クロックドメイン側のレジスタから前記受信クロックドメイン側に出力されたデータを受信することと、
前記受信クロックドメイン側のNレベルデータシンクロナイザによって前記データに対して同期処理され、ここで、前記Nの値は、平均故障間隔によって決定され、前記Nは正の整数で、N≧2であることと、を含み、
前記データが変化されたかどうかを検出することは、
前記受信クロックドメイン側の変化検出器によって、前記Nレベルデータシンクロナイザによって同期処理された現在のサイクルのデータが前記現在のサイクルの直前のサイクルのデータと比較して、前記データが変化されたかどうかを検出することで、受信されたデータが変化されたかどうかを判断することを含む、
ことを特徴とするマルチビットデータのクロスクロックドメインの処理方法。
【請求項2】
前記データが変化された
と前記変化検出器により検出された場合、前記データを更新してから出力することは、前記データが変化された場合、前記受信クロックドメイン側のエッジ検出器より有効値を出力
することで、前記受信クロックドメイン側のデータセレクタをトリガーして、更新されたデータを出力することを含み、
前記データが変化されていない
と前記変化検出器により検出された場合、元の出力データを維持することは、前記データが変化されていない場合、前記受信クロックドメイン側のエッジ検出器より無効値を出力
することで、前記データセレクタをトリガーして、元の出力データを維持することを含む、
ことを特徴とする請求項
1に記載の方法。
【請求項3】
前記データが変化されたかどうかを検出した後、前記方法は、
前記受信クロックドメイン側のMレベルバッファを介して、前記変化検出器より出力されたデータに対してバッファリング
し、前記データセレクタに出力することをさらに含み、ここで、M≧N-1、前記Mは正の整数であることを特徴とする請求項
2に記載の方法。
【請求項4】
マルチビットデータのクロスクロックドメインの処理装置であって、
送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは、異なるクロックドメインであるように設置される取得モジュールと、
前記データが変化されたかどうかを検出するように設置される検出モジュールと、
前記データが変化されたことを検出した場合、前記データを更新して出力し、前記データが変化されていないことを検出した場合は、元の出力データを維持するように設置される処理モジュールと
、を含
み、
前記取得モジュールは、前記送信クロックドメイン側のレジスタから前記受信クロックドメイン側に出力されたデータを受信し、かつ前記データに対して同期処理を実行するように設置されたデータシンクロナイザを含み、ここで、前記データシンクロナイザはNレベルのシンクロナイザであり、前記Nの値は平均故障間隔によって決定され、前記Nは正の整数で、N≧2あり、
前記検出モジュールは、前記Nレベルのデータシンクロナイザの出力側に接続され、受信されたデータが変化されたかどうかを確定するために、同期処理された現在のサイクルのデータが前記現在のサイクルの直前のサイクルのデータと比較して、前記データが変化されたかどうかを検出するように設置された変化検出器を含む、
ことを特徴するマルチビットデータのクロスクロックドメインの処理装置。
【請求項5】
前記処理モジュールは、
前記変化検出器の出力側に接続され、前記データが変化された場合、有効値を出力
することで、前記受信クロックドメイン側のデータセレクタをトリガーして更新されたデータを出力し、前記データが変化されていない場合、無効値を出力
することで、前記データセレクタがトリガーして元の出力データを維持するように設置されるエッジ検出器を含むことを特徴とする請求項
4に記載の装置。
【請求項6】
前記装置は、前記データが変化されたかどうかを検出した後、前記変化検出器によって出力されたデータをバッファリング
し、前記データセレクタに出力するように設置されたバッファをさらに含み、ここで、前記バッファはMレベルのバッファであり、M≧N-1であり、前記Mは正の整数であることを特徴とする請求項
5に記載の装置。
【発明の詳細な説明】
【クロス・リファレンス】
【0001】
本願は、2019年06月28日に中国特許庁へ出願された出願番号が201910578841.3である中国の特許の優先権を主張し、当該出願の全体内容は援用により本願に組み込まれるものとする。
【技術分野】
【0002】
本発明は、コンピュータ分野に関して、例えば、マルチビットデータのクロスクロックドメインの処理方法と装置に関する。
【背景技術】
【0003】
現代の電子システムにおいて、デジタル集積回路システムの規模がますます大きくなり、含まれたモジュールが増え、サポートされた機能がますます複雑になり、消費電力の要求がますます高くになる。したがって、システムオンチップ(System on Chip、SoC)には複数のクロックドメインが含まれ、クロックアーキテクチャ設計はGALS形式を採用し、つまりグローバル非同期(Global Asynchronous)処理とローカル同期(Local Synchronous)処理を採用する。
【0004】
GALSクロックアーキテクチャは多くの利点を有し、例えば、性能のニーズを満たすことを前提として、複数のモジュールを可能な限り低いクロック周波数でそれぞれに実行でき、動的消費電力を削減でき、クロックの実現が比較的に簡単で、クロックツリーは小さく、タイミングを収束しやすく、面積が小さくなる。
【0005】
GALS SoCにおいて、必然的にクロスクロックドメインのデータ伝送が発生する。非同期クロックの間の位相関係が不確実であるため、あるクロックドメインから別の非同期クロックドメインにデータを伝送すると、レジスタのセットアップタイム(setup time)又はホールドタイム(hold time)が満たされない状況に陥りやすく、準安定(meta-stability)が起こされる。準安定性の問題により、伝送データが誤ってサンプリングされる可能性があり、正しく処理されない場合、SoCシステムがエラー状態で表示され、正しく機能せず、位置づけのが困難になる可能性がある。
【0006】
シングルビット(bit)信号の場合、クロスクロックドメインで伝送する場合、準安定の発生を効果的に低減するために2レベルのレジスタ同期の方式が採用される。準安定状態が発生しても、シングルビット信号が2レベル同期処理を採用した後、データが誤ってサンプリングされなく、データ伝送の遅延のみが変化される。
【0007】
マルチビット信号の場合、クロスクロックドメインで伝送する場合、2レベルのレジスタ同期の方式を採用するのみはできない。マルチビット信号の間にはデータ一貫性(data coherency)があるため、すなわち、一つのビットまたはマルチビット信号が準安定状態になる場合、誤った中間データがサンプリングされることで、SoCシステムがエラー状態になる可能性がある。
【0008】
関連技術において、マルチビット信号のクロスクロックドメインの伝送方式は下記の3つの処理方式があり、(1)信号同期方式、(2)ハンドシェイク(Handshaking)相互作用方式、(3)非同期先入れ先出し(First Input First Output、FIFO)方式。関連技術における上記方式はすべて、送信クロックドメインと受信クロックドメインの制御信号の双方向の相互作用が必要で、これは、実現が複雑であり、ハードウェアのコストが高く、伝送遅延が高い。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明の実施形態は、関連技術におけるクロスクロックドメインの伝送の処理方式において、送信クロックドメインと受信クロックドメインとは双方向の相互作用が必要で、ハードウェアのコストが高く、伝送遅延が高いという問題を解決するために、マルチビットデータのクロスクロックドメインの処理方法と装置を提供する。
【課題を解決するための手段】
【0010】
本発明の一つの実施形態は、マルチビットデータのクロスクロックドメインの処理方法を提供し、当該方法は、送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは異なるクロックドメインであることと、前記データが変化されたかどうかを検出することと、前記データが変化された場合、前記データを更新してから出力し、前記データが変化されていない場合、元の出力データを維持することとを含む。
【0011】
本発明の別の実施形態は、マルチビットデータのクロスクロックドメインの処理装置を提供し、当該装置は、送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、前記送信クロックドメインと前記受信クロックドメインとは、異なるクロックドメインであるように設置される取得モジュールと、前記データが変化されたかどうかを検出するように設置される検出モジュールと、前記データが変化されたことを検出した場合、前記データを更新して出力し、前記データが変化されていないことを検出した場合は、元の出力データを維持するように設置される処理モジュールとを含む。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの処理方法のフローチャートである。
【
図2】
図2は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの伝送装置の概略構造図である。
【
図3】
図3は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの伝送の概略図である。
【
図4】
図4は、本発明の実施形態に係る複数のキーポイントでの信号波形の概略図である。
【
図5】
図5は、本発明の選択できる実施形態に係るマルチビットデータのクロスクロックドメインの処理装置の概略構造図である。
【発明を実施するための形態】
【0013】
以下、本発明は、図面と実施形態を参照して説明する。
【0014】
(実施例1)
本実施形態において、マルチビットデータのクロスクロックドメインの処理方法を提供する。
図1は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの処理方法のフローチャートである。
図1に示すように、当該プロセスは以下のステップを含み、
ステップS102:送信クロックドメイン側から受信クロックドメイン側に出力されたデータを取得し、ここで、送信クロックドメインと受信クロックドメインとは異なるクロックドメインである。
ステップS104:データが変化されたかどうかを検出する。
ステップS106:データが変化された場合、データを更新してから出力し、データが変化されていない場合、元の出力データを維持する。
【0015】
上記ステップS102~S106により、送信クロックドメイン側から受信クロックドメイン側に出力したデータを取得し、ここで、送信クロックドメインと受信クロックドメインとは異なるクロックドメインであり、そして、データが変化されたかどうかを検出し、データが変化された場合、データが更新されてから出力され、データが変化されていない場合、元の出力データを維持する。上記から分かるように、本発明の上記方法により、送信クロックドメインと受信クロックドメインは、比較的に独立している状態で、マルチビットデータののクロスクロックドメインのデータに対して処理され、関連技術におけるクロスクロックドメイン伝送の処理方式において、送信クロックドメインと受信クロックドメインが双方向の相互作用の必要性によって引き起こされる高いハードウェアのコストと高い伝送遅延の問題を解決し、より多くのアプリケーションシナリオに使用でき、かつ全体的な実現方式が効率的かつ簡潔である。
【0016】
一つの実施形態において、上記ステップS102~ステップS106の方式ステップはすべて受信クロックドメイン側で実行され、すなわち、受信クロックドメイン側の装置又は設備で実行され、送信クロックドメイン側とは関係ない。例えば、本実施形態における選択できる実施形態において、本発明のステップS102に記載された送信クロックドメイン側から受信クロックドメイン側に出力したデータを取得する方式は、以下の方式で実現することができる。
【0017】
ステップS102-11、送信クロックドメイン側のレジスタから受信クロックドメイン側に出力されたデータをを受信する。
【0018】
ステップS102-12、受信クロックドメイン側のNレベルデータシンクロナイザによってデータに対して同期処理され、ここで、Nの値は、平均故障間隔によって決定される。
【0019】
送信クロックドメイン側から出力されたデータを受信した後、受信クロックドメイン側のデータシンクロナイザによって同期処理を行い、すなわち、受信クロックドメイン側で当該ステップS102-11およびS102-12が実行されることが分かる。
【0020】
ここで、当該シンクロナイザのレベル数Nは、平均故障間隔(Mean Time Between Failure、MTBF)の要件によって決定され、前記Nは正の整数である。
【0021】
式(1)において、Sはデータシンクロナイザによってレジスタ用に予約された解決時間である。解決時間(resolution time)は、セットアップタイムまたはホールドタイムが満たされていないためにレジスタが準安定状態になった後、ランダムに0または1の安定値に復元する時間である。データシンクロナイザのレベル数NとSとの関係式は下記のように示す。
【0022】
式(2)において、Tは受信クロックドメインのクロックサイクルを示す。例えば、N=2の場合、Sは一つの受信クロックのクロックサイクルに等しく、N=3の場合、Sは二つの受信クロックのクロックサイクルに等しい。τは製造工程に関連する定数である。Wは、レジスタのセットアップタイムとホールドタイムの合計であり、製造工程に関連する。FCは受信クロックの周波数である。FDはデータを送信する周波数である。要約すると、MTBFの要件に従って、Sの値を決定し、それによってデータシンクロナイザのレベル数Nを決定する。
【0023】
さらに、本実施形態の別の選択できる実施形態において、本発明のステップS104に記載されたデータが変化されたかどうかを検出する方式は、受信クロックドメイン側の変化検出器によって、現在のサイクルのデータが前のサイクルのデータと比較して変化されたかどうかを検出することで、受信されたデータが変化されたかどうかを判断する。受信クロックドメイン側の変化検出器によって検出を行うことがわかる。
【0024】
本発明の別の選択できる実施形態において、データが変化された場合、データを更新してから出力することは、データが変化された場合、受信クロックドメイン側のエッジ検出器より有効値を出力し、受信クロックドメイン側のデータセレクタをトリガーして、更新されたデータを出力することを含み、データが変化されていない場合、元の出力データを維持することは、データが変化されていない場合、受信クロックドメイン側のエッジ検出器より無効値を出力し、データセレクタをトリガーして、元の出力データを維持することを含む。受信クロックドメイン側のエッジ検出器によってデータの出力(更新された出力と元の出力データを維持することを含む)を行うことがわかる。
【0025】
一つの実施形態において、本発明の方法ステップは、データが変化されたかどうかを検出した後、受信クロックドメイン側のMレベルバッファを介して、変化検出器より出力されたデータに対してバッファリングすることをさらに含み、ここで、M≧N-1、前記Mは正の整数である。
【0026】
以下、本発明の選択できる実施形態と併せて例を用いて説明する。
【0027】
この選択できる実施形態は、デジタル集積回路におけるマルチビットデータのクロスクロックドメインの伝送のニーズを実現するために、新たなマルチビットデータのクロスクロックドメイン伝送のデジタル集積回路の設計方法と装置を提供する。
【0028】
図2は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの伝送装置の概略構造図である。
図2に示すように、送信クロックドメイン(clock domain1)と受信クロックドメイン(clock domain2)とは異なるクロックドメインであり、クロックの間の関係は非同期である。そして、送信クロックドメインと受信クロックドメインとは、異なる電力ドメイン(power domain1とpower domain2)であり、または異なる電圧ドメイン(voltage domain1とvoltage domain2)である。
【0029】
送信クロックドメインのレジスタから出力された送信データが、受信クロックドメインに入り、本発明に記載のマルチビットデータのクロスクロックドメインの伝送装置で受信され、正しく処理された後、受信クロックドメインの機能論理回路に提供されて使用される。
【0030】
ここで、マルチビットデータのクロスクロックドメインの装置には、データシンクロナイザ、変化検出器、バッファ、エッジ検出器、およびデータセレクタの5つの機能モジュールが含まれる。
【0031】
当該装置の全体的なワークフロー(すなわち、信号処理フロー)には、次のステップが含まれる。
ステップS11:受信されたデータは、データシンクロナイザによって同期処理される。
ステップS12:変化検出器を利用して、データが変化されたかどうかを検出する。
ステップS13:受信データが変化された場合、変化検出器によって変化表示信号を出力し、バッファによってバッファリングされ、マルチビットデータが安定されるまでを待つ。
ステップS14:変化表示信号はエッジ検出器を介して処理されることで、出力データを更新するようにデータセレクタに指示する。
ステップS15:受信データが変化されていない場合、データセレクタは元の出力を維持する。
【0032】
一つの実施形態において、上記のプロセス全体は、すべて受信クロックドメインで実行され、送信クロックドメインとは関係ない。
【0033】
ここで、装置内の複数の機能モジュールの説明は次のとおりである。
【0034】
データシンクロナイザは、送信データと同じビット幅の2レベルまたはマルチレベルのレジスタシンクロナイザであり、クロスクロックドメインが準安定状態になる可能性を減らすように設置される。当該シンクロナイザのレベル数Nは、平均故障間隔(Mean Time Between Failure 、MTBF)の要件によって決定される。
【0035】
ここで、Sはデータシンクロナイザによってレジスタ用に予約された解決時間である。解決時間(resolution time)は、セットアップタイムまたはホールドタイムが満たされていないためにレジスタが準安定状態になった後、ランダムに0または1の安定値に復元する時間である。データシンクロナイザのレベル数NとSとの関係式は下記のように示す。
【0036】
ここで、Tは受信クロックドメインのクロックサイクルを示す。例えば、N=2の場合、Sは一つの受信クロックのクロックサイクルに等しく、N=3の場合、Sは二つの受信クロックのクロックサイクルに等しい。τは製造工程に関連する定数である。Wは、レジスタのセットアップタイムとホールドタイムの合計であり、製造工程に関連する。FCは受信クロックの周波数である。FDはデータを送信する周波数である。
【0037】
したがって、MTBFの要件に従って、Sの値を決定することで、データシンクロナイザのレベル数Nを決定する。各送信データは、送信データを損失なく正しくサンプリングできるように変化する前に、少なくともN受信クロックドメインのクロックサイクルを維持する必要がある。
【0038】
変化検出器は、同期されたデータが変化されたかどうかを検出するように設置される。現在のサイクルのデータが前のサイクルのデータと比較して変化された場合、変化検出器は有効値を出力する。現在のサイクルのデータが前のサイクルのデータと比較して変化されていない場合、変化検出器は無効値を出力する。
【0039】
バッファは、変化検出器の出力値に対してレジスタバッファ処理を実行して、マルチビットデータが安定されるまでを待機し、マルチビットデータの複数ビットの間の関連性を維持し、マルチビットデータの中間状態が誤ってサンプリングされないように設置される。当該バッファのバッファレベル数Mとデータシンクロナイザのレベル数Nとの関係は、M≧N-1である。
【0040】
選択できるように、データ伝送遅延(latency)は、latency=(N+M)・Tである。
【0041】
ここで、latencyはデータが入力から出力までの間の時間間隔を表す。バッファのレベル数Mがデータシンクロナイザのレベル数N-1と等しい場合、MTBFの要件を満たすことを前提として、データが正しくサンプリングされ、伝送遅延が最適になることが保証できる。
【0042】
エッジ検出器は、バッファの出力が変化されたかどうかを検出するように設置される。現在のサイクルの信号が前のサイクルの信号と比較して変化された場合、エッジ検出器は有効値を出力し、且つ一つのサンプリングクロックサイクルを維持する。現在のサイクルの信号が前のサイクルの信号と比較して変化されていない場合、エッジ検出器は無効値を出力する。
【0043】
データセレクタは、エッジ検出器の出力を選択信号として使用され、現在入力されたマルチビットデータと前の有効なマルチビットデータのうちの1つを選択して出力するように設置される。エッジ検出器から出力された選択信号が無効値である場合、前の有効なマルチビットデータを維持して出力する。選択信号が有効値である場合、現在で入力されたマルチビットデータを選択して更新して出力する。
【0044】
この選択できる実施形態は、マルチビットデータのクロスクロックドメインのアプリケーションシナリオに応じて、データ伝送を一方向に制御され、伝送遅延が配置されることができ、高効率と巧妙さを目的として、且つ送信クロックがクロスクロックドメイン処理に参加する必要がなく、送信クロックドメインと受信クロックドメインの独立性を改善する。
【0045】
したがって、この選択できる実施形態は、一般的なマルチビットデータのクロスクロックドメインのアプリケーションシナリオに適しているだけでなく、送信クロックドメインと受信クロックドメインが比較的独立しているアプリケーションシナリオにもより適し、例えば、送信クロックドメインと受信クロックドメインは、異なる電力ドメインまたは異なる電圧ドメインに位置するアプリケーションシナリオにも適する。これに基づいて、送信クロックドメインに回路装置を設計する必要がなく、一方、データの送信を除いて、他の制御信号はクロックドメイン(電力ドメインまたは電圧ドメインを通過する)を通過しなく、高効率と簡潔を実現する。さらに、平均故障間隔(MTBF)の要件に応じて、データシンクロナイザのレベル数とバッファのレベル数が設置され、構成は柔軟である。
【0046】
図3は、本発明の実施形態に係るマルチビットデータのクロスクロックドメイン伝送の概略図である。
図3に示すように、この実施形態は、クロックの立ち上がりエッジでデータをサンプルリングし、5つのモジュールは、それぞれに、データシンクロナイザ(20)、変化検出器(21)、バッファ(22)、立ち上がりエッジ検出器(23)、およびデータセレクタ(24)である。
【0047】
データシンクロナイザ(20)は、送信データと同じビット幅の2レベルまたはマルチレベルのレジスタシンクロナイザであり、送信クロックドメインから送信されたデータdata0を受信して同期するように設置されることで、クロスクロックドメインが準安定状態になる可能性を低減する。一つの実施形態において、2レベルのデータシンクロナイザは、MTBFの要件を満たすことができる。この例において、データシンクロナイザはDタイプフリップフロップ(D type flip-flop、DFF)で構成され、レベル数はN=2であり、データビット幅は3bitである。
【0048】
変化検出器(21)の機能は、同期されたデータが変化されたかどうかを検出することであり、出力信号は、変化検出器(21)、バッファ(22)、および立ち上がりエッジ検出器(23)によって処理された後、データセレクタ(24)を制御するように設置される。現在のサイクルのデータdata2が前のサイクルのデータdata3と比較すると、1つまたは複数のビットが変化された場合、変化検出器(21)はsignal1を1’b1として出力する。現在のサイクルのデータdata2が前のサイクルのデータdata3と比較すると、変化されていない場合、変化検出器(21)はsignal1を1’b0として出力する。この例において、変化検出器(21)は、Dタイプフリップフロップと排他的ORゲート(XOR)で構成される。
【0049】
バッファ(22)の機能は、変化検出器(21)の出力signal1に対してバッファリングすることであり、data2が安定した後、サンプリングが正しく選択され、中間状態データを取ることが回避される。この実施形態において、バッファ(22)はDタイプフリップフロップで構成され、バッファのレベル数Mはデータシンクロナイザ(20)のレベル数Nと同じ、すなわち、M=2である。signal2は第1レベルのバッファ出力信号であり、signa3は第2レベルのバッファ出力信号である。
【0050】
立ち上がりエッジ検出器(23)の機能は、バッファ(22)の出力signal3が立ち上がりエッジで変化されたどうかを検出することである。現在のサイクルの信号signal3が前のサイクルの信号signal4と比較して、1’b0から1’b1に変化した場合、立ち上がりエッジ検出器はsignal5を1’b1として出力し、且つ一つのサンプリングのクロックサイクルを維持し、データセレクタが出力データをストローブして更新することに用いられる。さらに、エッジ検出器はsignal5を1’b0として出力する。この実施形態において、立ち上がりエッジ検出器(23)は、Dタイプフリップフロップ、NOTゲート、およびANDゲート(AND)などから構成される。
【0051】
データセレクタ(24)の機能は、現在入力されたマルチビットデータdata2と前の有効なマルチビットデータdata4とのうち、一つを選択して出力することである。選択信号signal5が1’b0である場合、前の有効なデータdata4を出力することを維持する。選択信号signal5が1’b1である場合、現在入力されたデータdata2を選択して更新して出力する。この実施形態において、データセレクタ(24)は、Dタイプフリップフロップおよびマルチプレクサ(multiplexer、MUX)から構成される。
【0052】
一つの実施形態において、入力信号は、送信クロックドメインより送信されたデータと受信クロックドメインのクロックであり、出力信号は、受信クロックドメインより受信されたデータであり、全体の伝送遅延は、N+M=4つの受信クロックのクロックサイクルである。
【0053】
図4は、本発明の実施形態に係る複数のキーポイントでの信号波形の概略図であり、
図4の信号名は、
図3に示された複数の信号に対応する。
図4に示すように、2番目の瞬間と3番目の瞬間の間の一つの瞬間で、送信クロックドメインによって送信されたデータdata0は、3’b000から3’b111に変化した。本発明の実施形態は、送信クロック情報に注意を払う必要がなく、送信クロックドメインから比較的独立しているため、送信クロックは
図3に示されていない。Data0は、受信クロックドメインのクロックclockによって複数の立ち上がりエッジでサンプリングされる。データシンクロナイザは、data0に対して2レベルの同期を実行する。第1レベルの出力データはdata1で、第2レベルの出力データはdata2である。
【0054】
3番目の瞬間で、準安定状態のため、data1の各ビットは0または1になる可能性があるため、data1全体は3’b000から3’b111までの任意の中間状態になる可能性がある。
図4において、中間状態3’b101のみが例として説明する。
【0055】
4番目の瞬間で、data1はMTBF時間間隔内で高い確率で3’b111として正しくサンプリングされる。同時に、変化検出器はdata2とdata3の間の変化を検出し、出力信号signal1は1’b0から1’b1に変化する。
【0056】
このとき、data2は中間状態(3’b101)であるため、誤ってサンプリングされてdata4に出力することを回避する必要がある。したがって、signal1は、バッファの2レベルのバッファリングを介して、表示信号signal3を出力する。data4のデータ更新はsignal3によって制御される。
【0057】
5番目の瞬間は信号バッファリングの瞬間であり、data2が安定状態に戻るまでを待ち、複数bitのデータ相関を維持する。
【0058】
6番目の瞬間で、立ち上がりエッジ検出器がsignal3の立ち上がりエッジを検出した後、出力信号signal5は1’b0から1’b1に変化し、且つ1つのクロックサイクルを維持する。同時に、signal5がデータセレクタをストローブし、data4が更新され、data2を出力し、すなわち、クロスクロックドメイン後のマルチビットデータを出力し、全体の伝送遅延は、4つの受信クロックのクロックサイクルである。
【0059】
上記の実施形態から分かるように、本発明は、マルチビットデータのクロスクロックドメインのアプリケーションシナリオに応じて、データ伝送を一方向に制御され、伝送遅延が配置されることができ、高効率と巧妙さを目的として、且つ送信クロックがクロスクロックドメイン処理に参加する必要がなく、送信クロックドメインと受信クロックドメインの独立性を改善する。ただし、本発明は、一般的なマルチビットデータのクロスクロックドメインのアプリケーションシナリオに適しているだけでなく、送信クロックドメインと受信クロックドメインが比較的独立しているアプリケーションシナリオにもより適し、例えば、送信クロックドメインと受信クロックドメインは、異なる電力ドメインまたは異なる電圧ドメインに位置するアプリケーションシナリオにも適する。これに基づいて、送信クロックドメインに回路装置を設計する必要がなく、一方、データの送信を除いて、他の制御信号はクロックドメイン(電力ドメインまたは電圧ドメインを通過する)を通過しなく、高効率と簡潔を実現する。さらに、平均故障間隔(MTBF)の要件に応じて、データシンクロナイザのレベル数とバッファのレベル数が設定され、構成は柔軟である。
【0060】
(実施例2)
この実施形態において、マルチビットデータのクロスクロックドメインの処理装置をさらに提供し、当該装置は、上記の実施例および選択できる実施形態を実現するために用いられる。以下で使用されるように、「モジュール」という用語は、所定の機能を備えたソフトウェアおよび/またはハードウェアの組み合わせを実現することができる。以下の実施形態で説明される装置はソフトウェアによって実現されるが、ハードウェア、またはソフトウェアとハードウェアの組み合わせによって実現することも可能である。
【0061】
図5は、本発明の実施形態に係るマルチビットデータのクロスクロックドメインの処理装置の構造ブロック図である。
図5に示すように、当該装置は、送信クロックドメイン側から受信クロックドメイン側に出力するデータを取得し、ここで、送信クロックドメインと受信クロックドメインは、異なるクロックドメインであるように設置される取得モジュール52と、取得モジュール52と結合され、データが変化されたかどうかを検出するように設置される検出モジュール54と、検出モジュール54と結合され、データが変化されたことを検出した場合、データを更新して出力し、データが変化されていないことを検出した場合は、元の出力データを維持するように設置される処理モジュール56とを含む。
【0062】
選択できるように、本発明における取得モジュール52は、送信クロックドメイン側のレジスタから受信クロックドメイン側に出力されたデータを受信し、かつデータに対して同期処理を実行するように設置されたデータシンクロナイザを含み、ここで、データシンクロナイザはNレベルのシンクロナイザであり、Nの値は平均故障間隔によって決定され、前記Nは正の整数である。
【0063】
選択できるように、本発明における検出モジュール54は、受信されたデータが変化されたかどうかを確定するために、現在のサイクルのデータが前のサイクルのデータと比較して変化されたかどうかを検出するように設置された変化検出器を含む。
【0064】
選択できるように、本発明における処理モジュール56は、データが変化された場合、有効値を出力し、受信クロックドメイン側のデータセレクタをトリガーして更新されたデータを出力し、データが変化されていない場合、無効値を出力し、データセレクタがトリガーして元の出力データを維持するように設置されるエッジ検出器を含む。
【0065】
選択できるように、本発明における装置は、データが変化されたかどうかを検出した後、変化検出器によって出力されたデータをバッファリングするように設置されたバッファを含み、ここで、バッファはMレベルのバッファであり、M≧N-1であり、前記Mは正の整数である。
【0066】
一つの実施形態において、上記の複数のモジュールは、ソフトウェアまたはハードウェアによって実現できる。ハードウェアの場合、以下の方法で実現でき、上記のモジュールは、すべて同じプロセッサに配置され、または、上記の複数のモジュールは任意の組み合わせの形式で、それぞれに異なるプロセッサに配置される。
【0067】
上記の本発明の複数のモジュールまたは複数のステップは、普通のコンピューティングデバイスによって実現でき、これらは、単一のコンピューティングデバイスに集中することもでき、または、複数のコンピューティングデバイスで構成されるネットワークに分散させることもできる。選択できるように、これらは、コンピューティングデバイスによって実行可能なプログラムコードによって実現でき、これによって、これらをストレージデバイスに格納され、コンピューティングデバイスによって実行され、場合によっては、ここに示した順序と異なる順序で、示された又は記載されたステップを実行し、又は、これらを複数の集積回路モジュールにそれぞれに作成し、又は、これらにおける複数のモジュールまたはステップを単一の集積回路に作成することで実現する。このように、本発明は任意の特定のハードウェアとソフトウェアの組み合わせに限定されない。