(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-24
(54)【発明の名称】量子オーケストレーションプラットフォーム要素の間のクロック同期および時間転送のためのシステムおよび方法
(51)【国際特許分類】
G06F 1/12 20060101AFI20240717BHJP
G06F 1/14 20060101ALI20240717BHJP
G06F 7/38 20060101ALI20240717BHJP
H04L 7/00 20060101ALI20240717BHJP
【FI】
G06F1/12
G06F1/14 511
G06F7/38 510
H04L7/00 080
H04L7/00 370
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024503888
(86)(22)【出願日】2022-04-08
(85)【翻訳文提出日】2024-03-18
(86)【国際出願番号】 IB2022053304
(87)【国際公開番号】W WO2023002260
(87)【国際公開日】2023-01-26
(32)【優先日】2021-07-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521225948
【氏名又は名称】クワンタム・マシーンズ
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100173565
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100195408
【氏名又は名称】武藤 陽子
(72)【発明者】
【氏名】シバン,イタマー
(72)【発明者】
【氏名】コーヘン,ヨナタン
(72)【発明者】
【氏名】オフェク,ニッシム
(72)【発明者】
【氏名】ローゼン,アサフ
(72)【発明者】
【氏名】オシ,ガイ
(72)【発明者】
【氏名】シュムク,ラモン
【テーマコード(参考)】
5K047
【Fターム(参考)】
5K047AA18
5K047GG56
(57)【要約】
量子オーケストレーションプラットフォーム(QOP)は、キュービットによる演算のために用いられ得る、同期されたアナログパルス、読み出し、および計算を作り出す、処理ユニットおよびアナログ構成要素の集合を備える。QOPのすべての処理ユニットは、処理ユニットを相互接続する1つまたは複数の同期ケーブルを通した時間処理を通じて、最小のスキューで同期される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クロック同期のためのシステムであって、
第1のクロックにおいて動作可能な第1の処理ユニットであって、前記第1のクロックは、第1の可変遅延を通じて、システムクロックによってもたらされる、第1の処理ユニットと、
第2のクロックにおいて動作可能な第2の処理ユニットであって、前記第2のクロックは、第2の可変遅延を通じて、前記システムクロックによってもたらされる、第2の処理ユニットと、
前記第1の処理ユニットと、前記第2の処理ユニットとの間に、動作可能に結合された同期ラインとを備え、
前記第1の処理ユニットは、前記第1のクロックを、前記同期ラインを通じて前記第2の処理ユニットに送るように動作可能であり、
前記第2の処理ユニットは、前記第2のクロックを、前記同期ラインを通じて前記第1の処理ユニットに送るように動作可能であり、
前記第2の処理ユニットは、受信された前記第1のクロックと、前記第2のクロックとの間の、第1の位相差を生成するように動作可能であり、
前記第1の処理ユニットは、受信された前記第2のクロックと、前記第1のクロックとの間の、第2の位相差を生成するように動作可能であり、
前記第1の可変遅延は、前記第1の位相差と、前記第2の位相差とに従って、調整可能であり、
前記第2の可変遅延は、前記第1の位相差と、前記第2の位相差とに従って、調整可能である、システム。
【請求項2】
前記第1の処理ユニットは、サンプルクロックに従って動作可能な第1のサンプリング回路を備え、
前記第2の処理ユニットは、前記サンプルクロックに従って動作可能な第2のサンプリング回路を備え、
前記サンプルクロックは、前記システムクロックとは異なる周波数にある、
請求項1に記載のシステム。
【請求項3】
サンプルクロック周波数とシステムクロック周波数との間の関係は既知であり、設定可能である、請求項2に記載のシステム。
【請求項4】
前記第1の処理ユニットと、前記第2の処理ユニットとはそれぞれ、2つのクロックの間の位相差を計算するように動作可能なデジタルロジックを備える、
請求項2に記載のシステム。
【請求項5】
前記第1の処理ユニットと、前記第2の処理ユニットとはそれぞれ、平均回路を備える、
請求項2に記載のシステム。
【請求項6】
前記第1の処理ユニットと、前記第2の処理ユニットとはそれぞれ、サンプリングされた第1のクロックのデューティサイクルと、サンプリングされた第2のクロックのデューティサイクルとを決定するように動作可能である、
請求項2に記載のシステム。
【請求項7】
量子オーケストレーションプラットフォーム(QOP)は、前記第1の処理ユニットと、前記第2の処理ユニットとを備える、請求項1に記載のシステム。
【請求項8】
時間転送のためのシステムであって、
第1のクロックに従ってインクリメントする、第1の時間カウンタを備えた第1の処理ユニットと、
第2のクロックに従ってインクリメントする、第2の時間カウンタを備えた第2の処理ユニットと、
前記第1の処理ユニットと、前記第2の処理ユニットとの間に結合されたケーブルとを備え、
前記第1の処理ユニットは、第1のメッセージを、前記ケーブルを通じて前記第2の処理ユニットに送るように動作可能であり、前記第1のメッセージは、前記第1の時間カウンタに従った第1のタイムスタンプを備え、
前記第2の処理ユニットは、第2のメッセージを、前記ケーブルを通じて前記第1の処理ユニットに送るように動作可能であり、前記第2のメッセージは、前記第2の時間カウンタに従った第2のタイムスタンプを備え、
前記第2の処理ユニットは、受信された前記第1のメッセージと、前記第1のメッセージが到着した時点の前記第2の時間カウンタとに従って、第1のタイムスタンプ差を生成するように動作可能であり、
前記第1の処理ユニットは、受信された前記第2のメッセージと、前記第2のメッセージが到着した時点の前記第1の時間カウンタとに従って、第2のタイムスタンプ差を生成するように動作可能であり、
前記第1のクロックは、前記第1のタイムスタンプ差と、前記第2のタイムスタンプ差とに従って、調整可能であり、
前記第2のクロックは、前記第1のタイムスタンプ差と、前記第2のタイムスタンプ差とに従って、調整可能である、システム。
【請求項9】
前記第1のクロックおよび前記第2のクロックは共に、共通の周波数にある、請求項8に記載のシステム。
【請求項10】
量子オーケストレーションプラットフォーム(QOP)は、前記第1の処理ユニットと、前記第2の処理ユニットとを備える、請求項8に記載のシステム。
【請求項11】
前記第1のクロックと、前記第2のクロックとの間の位相差は、マンチェスタ符号化に従って決定される、請求項8に記載のシステム。
【請求項12】
前記第1の処理ユニットと、前記第2の処理ユニットとは、前記ケーブルを通して、動作を通信するように動作可能である、請求項8に記載のシステム。
【請求項13】
前記動作は、位相再較正である、請求項12に記載のシステム。
【請求項14】
前記ケーブルの極性は、前記第1の処理ユニットが、前記動作を送信しているか、前記動作を受信しているかを示す、請求項12に記載のシステム。
【請求項15】
前記第1の処理ユニットは、動作の実行を開始、停止、一時停止、または再開するように、前記第2の処理ユニットに命令するように動作可能である、請求項8に記載のシステム。
【請求項16】
前記命令は、特定のタイムスタンプに関連付けられる、請求項15に記載のシステム。
【請求項17】
クロック同期のための方法であって、
第1の処理ユニットから、ケーブルを通じて第2の処理ユニットに、第1のクロックを転送するステップと、
前記第2の処理ユニットにおいて、受信された前記第1のクロックと、第2のクロックとの間の第1の位相差を生成するステップと、
前記第2の処理ユニットから、前記ケーブルを通じて前記第1の処理ユニットに、前記第2のクロックを転送するステップと、
前記第1の処理ユニットにおいて、受信された前記第2のクロックと、前記第1のクロックとの間の第2の位相差を生成するステップと、
可変遅延ユニットを通じて、前記第1のクロックおよび前記第2のクロックの一方または両方を調整するステップであって、前記第1の位相差と、前記第2の位相差とに従って、調整するステップと
を含む、方法。
【請求項18】
前記第1のクロックおよび前記第2のクロックは共に、共通の周波数にあり、
前記第1の位相差を生成する前記ステップ、および前記第2の位相差を生成する前記ステップはそれぞれ、第3のクロックでサンプリングするステップを含み、
前記第3のクロックは、異なる周波数にある、
請求項17に記載の方法。
【請求項19】
サンプルクロック周波数とシステムクロック周波数との間の関係は既知であり、設定可能である、請求項18に記載の方法。
【請求項20】
前記第1の位相差を生成する前記ステップ、および前記第2の位相差を生成する前記ステップはそれぞれ、サンプリングされた第1のクロックと、サンプリングされた第2のクロックとの間で、排他的論理和演算を行うステップを含む、請求項18に記載の方法。
【請求項21】
前記第1の位相差を生成する前記ステップ、および前記第2の位相差を生成する前記ステップはそれぞれ、前記排他的論理和演算の出力を平均化するステップを含む、請求項20に記載の方法。
【請求項22】
前記第1の位相差を生成する前記ステップ、および前記第2の位相差を生成する前記ステップはそれぞれ、サンプリングされた第1のクロックのデューティサイクルと、サンプリングされた第2のクロックのデューティサイクルとを決定するステップとを含む、請求項18に記載の方法。
【請求項23】
量子オーケストレーションプラットフォーム(QOP)は、前記第1の処理ユニットと、前記第2の処理ユニットとを備える、請求項17に記載の方法。
【請求項24】
時間転送のための方法であって、
第1の処理ユニットにおいて、第1のクロックに従ってインクリメントする、第1のローカル時間を生成するステップと、
第2の処理ユニットにおいて、第2のクロックに従ってインクリメントする、第2のローカル時間を生成するステップと、
前記第1の処理ユニットから、ケーブルを通じて前記第2の処理ユニットに、第1のメッセージを転送するステップであって、前記第1のメッセージは、前記第1のローカル時間に従った第1のタイムスタンプを備える、第1のメッセージを転送するステップと、
前記第2の処理ユニットにおいて、前記第1のタイムスタンプと前記第2のローカル時間との間の、第1のタイムスタンプ差を生成するステップと、
前記第2の処理ユニットから、前記ケーブルを通じて前記第1の処理ユニットに、第2のメッセージを転送するステップであって、前記第2のメッセージは、前記第2のローカル時間に従った第2のタイムスタンプを備える、第2のメッセージを転送するステップと、
前記第1の処理ユニットにおいて、前記第2のタイムスタンプと前記第1のローカル時間との間の、第2のタイムスタンプ差を生成するステップと、
可変遅延ユニットを通じて、前記第1のクロックおよび前記第2のクロックの一方または両方を調整するステップであって、前記第1のタイムスタンプ差と、前記第2のタイムスタンプ差とに従って、調整するステップと
を含む、方法。
【請求項25】
前記第1のクロックおよび前記第2のクロックは共に、共通の周波数にあり、
前記第1のタイムスタンプ差を生成する前記ステップは、到着タイムスタンプから、前記第1のタイムスタンプを減算するステップを含み、
前記到着タイムスタンプは、前記第2のローカル時間に従って生成される、
請求項24に記載の方法。
【請求項26】
量子オーケストレーションプラットフォーム(QOP)は、前記第1の処理ユニットと、前記第2の処理ユニットとを備える、請求項24に記載の方法。
【請求項27】
同期のためのシステムであって、
直列に動作可能に結合された複数のデバイスと、
前記複数のデバイスの、第1のデバイスとそれぞれの他のデバイスとの間の、位相誤差を測定するように構成された誤差モニタとを備え、
前記第1のデバイスと特定のデバイスとの間の位相誤差の大きさは、前記第1のデバイスと前記特定のデバイスとの間に動作可能に結合された、デバイスの数に比例し、
前記誤差モニタは、前記特定のデバイスに対して、位相誤差補正ステップが必要であるかどうかを決定するように構成され、
前記決定は、前記第1のデバイスと前記特定のデバイスとの間の前記位相誤差の前記大きさが、前記位相誤差補正ステップの大きさより大きいかどうかに従う、システム。
【請求項28】
前記誤差モニタは、前記複数のデバイスの、前記第1のデバイスとそれぞれの他のデバイスとの間の、前記位相誤差を順次測定するように構成され、前記誤差モニタは、前記第1のデバイスと、前記第1のデバイスに隣接して動作可能に結合された第2のデバイスとの間の、前記位相誤差を最初に測定するように構成される、請求項27に記載のシステム。
【請求項29】
前記特定のデバイスに対して、前記位相誤差補正ステップが必要とされるとき、前記位相誤差補正ステップは、前記特定のデバイスと、前記特定のデバイスの後に動作可能に結合された任意の他のデバイスに適用される、請求項27に記載のシステム。
【請求項30】
前記位相誤差補正ステップが、前記特定のデバイスに適用された後、前記誤差モニタは、前記特定のデバイスの後に動作可能に結合された任意の他のデバイスに対して、前記位相誤差補正ステップが必要かどうかを決定するために、測定し続けるように構成される、請求項29に記載のシステム。
【請求項31】
同期のためのシステムであって、
2次元に動作可能に結合された複数のデバイスであって、
前記複数のデバイスは、第1の次元において、第1の数のデバイスのグループを形成し、
前記複数のデバイスは、第2の次元において、第2の数のデバイスのグループを形成し、
それぞれのデバイスのグループ内のデバイスは、直列に動作可能に結合される、複数のデバイスと、
前記第1の数は、前記第1の次元におけるデバイスの前記グループに対応し、
前記第2の数は、前記第2の次元におけるデバイスの前記グループに対応する、複数の誤差モニタとを備え、
誤差モニタは、対応するデバイスのグループの第1のデバイスと、前記対応するデバイスのグループのそれぞれの他のデバイスとの間の、位相誤差を測定するように構成され、
前記対応するデバイスのグループの前記第1のデバイスと、前記対応するデバイスのグループの特定のデバイスとの間の、位相誤差の大きさは、前記対応するデバイスのグループの前記第1のデバイスと、前記対応するデバイスのグループの前記特定のデバイスとの間に動作可能に結合された、前記対応するデバイスのグループのデバイスの数に比例し、
前記誤差モニタは、前記対応するデバイスのグループの前記特定のデバイスに対して、位相誤差補正ステップが必要であるかどうかを決定するように構成され、
前記決定は、前記対応するデバイスのグループの前記第1のデバイスと、前記対応するデバイスのグループの前記特定のデバイスとの間の、前記位相誤差の前記大きさが、前記位相誤差補正ステップの大きさより大きいかどうかに従う、システム。
【請求項32】
前記誤差モニタは、前記対応するデバイスのグループの前記第1のデバイスと、前記対応するデバイスのグループのそれぞれの他のデバイスとの間の、前記位相誤差を順次測定するように構成され、
前記誤差モニタは、前記対応するデバイスのグループの前記第1のデバイスと、前記対応するデバイスのグループの前記第1のデバイスに隣接して動作可能に結合された、前記対応するデバイスのグループの第2のデバイスとの間の、前記位相誤差を最初に測定するように構成される、
請求項31に記載のシステム。
【請求項33】
前記対応するデバイスのグループの前記特定のデバイスに対して、前記位相誤差補正ステップが必要であるとき、前記位相誤差補正ステップは、前記対応するデバイスのグループの前記特定のデバイスと、前記対応するデバイスのグループの前記特定のデバイスの後に動作可能に結合された、前記対応するデバイスのグループの任意の他のデバイスとに適用される、請求項31に記載のシステム。
【請求項34】
前記位相誤差補正ステップが、前記対応するデバイスのグループの前記特定のデバイスに適用された後、前記誤差モニタは、前記対応するデバイスのグループの前記特定のデバイスの後に動作可能に結合された、前記対応するデバイスのグループの任意の他のデバイスに対して、前記位相誤差補正ステップが必要かどうかを決定するために、測定し続けるように構成される、請求項33に記載のシステム。
【請求項35】
前記第1の数の誤差モニタは、前記第2の数の誤差モニタが、前記第2の次元において同期する前に、前記第1の次元において同期する、請求項31に記載のシステム。
【請求項36】
同期のためのシステムであって、
最初のデバイスと最後のデバイスとの間に、いくつかのデバイスが結合された、直列に結合された複数のデバイスと、
複数の位相誤差を測定するように構成された誤差モニタとを備え、
前記複数の位相誤差の各位相誤差は、隣接するデバイスのペアの間で測定され、
前記複数の位相誤差の累積に従って、ある数の位相誤差補正ステップが決定され、
位相誤差補正ステップの前記数は、前記複数のデバイスの間で一様に分配される、システム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]従来の量子制御の制限および不利な点は、このような手法の、図面を参照して本開示の残りの部分に記載される本方法およびシステムのいくつかの態様との比較を通して、当業者には明らかになるであろう。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002]「特許請求の範囲」により詳しく記載されている通り、図面の少なくとも1つに関連して実質的に例示および/または説明されているように、量子オーケストレーションプラットフォーム要素の間のクロック同期および時間転送のための方法およびシステムがもたらされる。
【図面の簡単な説明】
【0003】
【
図1】本開示の様々な例示の実装形態による、クロック制御情報を分配するためのシステムを示す図である。
【
図2】本開示の様々な例示の実装形態による、サンプリング波形を示す図である。
【
図3】本開示の様々な例示の実装形態による、2つの信号の間の位相差を推定するためのシステムを示す図である。
【
図4】本開示の様々な例示の実装形態による、クロック同期のための例示の方法のフローチャートである。
【
図5】本開示の様々な例示の実装形態による、時間転送のための例示の方法のフローチャートである。
【
図6】本開示の様々な例示の実装形態による、位相誤差を最小化するように動作可能な、リングトポロジーを示す図である。
【
図7】本開示の様々な例示の実装形態による、多数のデバイスの間の位相誤差を最小化するように動作可能な、2次元リングトポロジーを示す図である。
【発明を実施するための形態】
【0004】
[0010]古典的コンピュータは、情報を2進数(「ビット」)の形で記憶し、それらのビットを二値論理ゲートを通じて処理することによって動作する。どの時点でも、各ビットは2つの離散値、0(または「オフ」)および1(または「オン」)の1つのみをとる。二値論理ゲートによって行われる論理演算は、ブール代数によって定義され、回路挙動は、古典物理学によって支配される。近代の古典的システムでは、ビットを記憶し、論理演算を実現するための回路は通常、ビットの0および1を表す、2つの異なる電圧を伝えることができる電線と、ブール論理演算を行うトランジスタをベースとする論理ゲートとから作られる。
【0005】
[0011]古典的コンピュータでの論理演算は、固定された状態で行われる。例えば、時間0でビットは第1の状態にあり、時間1でビットに論理演算が適用され、時間2でビットは、時間0での状態と論理演算とによって決定される第2の状態にある。ビットの状態は通常、電圧として記憶される(例えば、「1」に対して1Vdc、または「0」に対して0Vdc)。論理演算は通常、1つまたは複数のトランジスタから成る。
【0006】
[0012]明らかに、単一のビットと、単一の論理ゲートを有する古典的コンピュータは、用途が限られ、それが余り大きくない計算能力を有する近代の古典的コンピュータでも、数十億個のビットおよびトランジスタを含む理由である。すなわち、ますます複雑になる問題を解くことができる古典的コンピュータは、アルゴリズムを遂行するために、必然的にますます多数のビットならびにトランジスタ、および/またはますます長い時間を必要とする。しかし、実行不可能なほど多数のトランジスタ、および/または解に到達するために実行不可能なほど長い時間を要することになるいくつかの問題が存在する。このような問題は、解決困難であると呼ばれる。
【0007】
[0013]量子コンピュータは、情報を量子ビット(「キュービット」)の形で記憶し、それらのキュービットを量子ゲートを通じて処理することで動作する。どの時点でも1つの状態(0または1のいずれか)のみになり得るビットと異なり、キュービットは、同時に2つの状態の重畳になり得る。より正確には、量子ビットは、その状態が2次元ヒルベルト空間内に存在するシステムであり、従って線形結合α|0>+β|1>として記述され、ここで|0>および|1>は2つの基底状態であり、αおよびβは複素数であり、通常は確率振幅と呼ばれ、|α|2+|β|2=1を満たす。この表記法を用いると、キュービットが測定されるとき、それは確率|α|2を有する0となり、および確率|β|2を有する1となる。基底状態|0>および|1>はまた、それぞれ2次元基底ベクトル
【0008】
【0009】
および
【0010】
【0011】
によって表され得る。この表記法では、キュービット状態は、
【0012】
【0013】
によって表され得る。量子ゲートによって行われる演算は、ヒルベルト空間上の線形代数によって定義され、回路挙動は、量子物理学によって支配される。キュービットの数学的挙動およびそれらに対する演算における、この追加の豊富さは、量子コンピュータが、いくつかの問題を古典的コンピュータよりはるかに速く解くことを可能にする。実際、古典的コンピュータにとって解決困難ないくつかの問題は、量子コンピュータにとってはほとんど問題にならなくなり得る。
【0014】
[0014]古典的ビットと異なり、キュービットは、導線上の単一の電圧値として記憶されることができない。代わりに、キュービットは、2準位量子力学系を用いて物理的に実現される。例えば、時間0でキュービットは、
【0015】
【0016】
として記述され、時間1でキュービットに論理演算が適用され、時間2でキュービットは、
【0017】
【0018】
として記述される。長年にわたって、キュービットの多くの物理的実装形態が提案され、開発されてきた。キュービット実装形態のいくつかの例は、超電導回路、スピンキュービット、および捕捉されたイオンを含む。
【0019】
[0015]量子オーケストレーションプラットフォーム(QOP)は、キュービットによる演算のために用いられ得る、同期されたアナログパルス、読み出し、および計算を作り出す、処理ユニットおよびアナログ構成要素の集合を備える。同時にパルスを発するために、QOPのすべての要素は、それらの内部クロックを最小のスキューで同期させなければならない。加えて、ある時点で同時にパルス動作を開始するようにすべてのユニットに命令するために、信頼性の高いメッセージ分配システムが必要である。しかし、QOPはモジュール方式であり、個別のユニットを備え、異なるユニットを接続するケーブルの長さは任意となり得る。これは、異なるケーブルの待ち時間は未知であり、環境的変化の影響を受けるので、すべてのユニットの間に共通クロックを分配するという課題を、難易度の高いものにする。
【0020】
[0016]クロック同期のためのシステムは、第1のクロックにおいて動作可能な第1の処理ユニットと、第2のクロックにおいて動作可能な第2の処理ユニットと、第1の処理ユニットと、第2の処理ユニットとの間に、動作可能に結合された同期ラインとを備える。第1のクロックは、第1の可変遅延を通じて、システムクロックによってもたらされ得る。第2のクロックは、第2の可変遅延を通じて、システムクロックによってもたらされ得る。第1の処理ユニットは、第1のクロックを、同期ラインを通じて第2の処理ユニットに送るように動作可能である。第2の処理ユニットは、第2のクロックを、同期ラインを通じて第1の処理ユニットに送るように動作可能である。第2の処理ユニットは、受信された第1のクロックと、第2のクロックとの間の、第1の位相差を生成するように動作可能である。第1の処理ユニットは、受信された第2のクロックと、第1のクロックとの間の、第2の位相差を生成するように動作可能である。第1の可変遅延は、第1の位相差と、第2の位相差とに従って、調整可能である。第2の可変遅延は、第1の位相差と、第2の位相差とに従って、調整可能である。
【0021】
[0017]第1の処理ユニットは、サンプルクロックに従って動作可能な第1のサンプリング回路を備える。第2の処理ユニットは、サンプルクロックに従って動作可能な第2のサンプリング回路を備える。サンプルクロックは、システムクロックとは異なる周波数にある。サンプルクロック周波数は、例えば、システムクロック周波数より、0.1%大きくあることができる。
【0022】
[0018]第1の処理ユニットと、第2の処理ユニットとはそれぞれ、サンプリングされた第1のクロックと、サンプリングされた第2のクロックとの間の、排他的論理和演算を行うように動作可能なXORゲートを備える。第1の処理ユニットと、第2の処理ユニットとはそれぞれ、XOR出力に動作可能に結合された平均回路を備える。第1の処理ユニットと、第2の処理ユニットとはそれぞれ、サンプリングされた第1のクロックのデューティサイクルと、サンプリングされた第2のクロックのデューティサイクルとを決定するように動作可能である。
【0023】
[0019]クロック同期のためのシステムはまた、時間転送のために用いられることができ、第1の処理ユニットは、第1のクロックに従ってインクリメントする、第1の時間カウンタを備え、第2の処理ユニットは、第2のクロックに従ってインクリメントする、第2の時間カウンタを備える。
【0024】
[0020]第1の処理ユニットは、第1のメッセージを、同期ラインケーブルを通じて第2の処理ユニットに送るように動作可能である。第1のメッセージは、第1の時間カウンタに従った第1のタイムスタンプを備える。第2の処理ユニットも、第2のメッセージを、同期ラインケーブルを通じて第1の処理ユニットに送るように動作可能である。第2のメッセージは、第2の時間カウンタに従った第2のタイムスタンプを備える。第2の処理ユニットは、受信された第1のメッセージと、第1のメッセージが到着した時点の第2の時間カウンタとに従って、第1のタイムスタンプ差を生成するように動作可能である。第1の処理ユニットも、受信された第2のメッセージと、第2のメッセージが到着した時点の第1の時間カウンタとに従って、第2のタイムスタンプ差を生成するように動作可能である。
【0025】
[0021]第1のクロックは、第1のタイムスタンプ差と、第2のタイムスタンプ差とに従って、調整可能である。第2のクロックも、第1のタイムスタンプ差と、第2のタイムスタンプ差とに従って、調整可能である。
【0026】
[0022]
図1は、本開示の様々な例示の実装形態による、クロック制御情報を分配するためのシステムを示す。このシステムの動作は、用いられるケーブルの長さとは無関係である。
図1のシステムは、6個の処理ユニット101a~101fと、共通クロック103とを備える。本開示の範囲は、6個の処理ユニットに限定されないことに留意されたい。
【0027】
[0023]
図1のシステムでは、クロック位相情報は、ユニット101a~101fの階層構造を通して分配され、各ユニット(例えば、101b)は、多くとも1つのマスタ(例えば、101a)と、1つまたは複数のスレーブ(例えば、101dおよび101e)とを有する。各段階では、スレーブユニット(例えば、101b)は、階層構造の最上位から下まで、それのクロック位相を、それのマスタユニット(例えば、101a)に同期させるようになる。次いで、メッセージは、それらのそれぞれのタイムスタンプを同期させるために、ユニット101a~101fの間で渡されるようになる。
【0028】
[0024]ユニット101a~101fの任意の2つの間の同期および通信は、それらの間の単一の同期ラインケーブルと、シフト可能なクロック入力とを通して確立される。共通クロック103は、複数のクロック遅延105a~101fのそれぞれを通じて、ユニット101a~101fのそれぞれに供給される。
【0029】
[0025]2つのユニットを同期させるために、例えば、ユニットA101aは、それのシステムクロックを、共通の同期ラインケーブルを通してユニットB101bに転送し、一方、ユニットB101bは、同期ラインケーブル信号と、クロック遅延105bを通じて供給されるそれのシステムクロックとの間の、位相差を測定する。次に、ユニットB101bは、それのクロックを共通の同期ラインケーブルに転送し、一方、ユニットA101aは、共通の同期ラインケーブル信号と、クロック遅延105bを通じて供給されるそれのシステムクロックとの間の、位相差を測定する。
【0030】
[0026]共通のケーブルを通した対称的な伝搬遅延により、ユニットBのシステムクロックは、両方のユニットが、2つの測定において同じ位相を測定する点まで、クロック遅延105bを通じてシフトされ得る。この時点で、2つのユニット101aおよび101bのクロック位相は、正確にクロックの半サイクルだけ同期され、またはシフトされる。この共通の同期ラインケーブルはまた、メッセージを行き来させるように送り、各ユニット上の各イベントのローカル時間をマーキングすることによって、2つのユニット101aおよび101bのタイムスタンプを同期させるために用いられる。
【0031】
[0027]例えば、2つのユニット101aおよび101bは、100クロックサイクルのタイムスタンプ差を有し、ケーブルの伝搬遅延は2サイクルであると仮定する。第1のユニット101aは、ローカル時間102に第2のユニット101bに到着するように、ローカル時間0にメッセージを送るようになる。第2のユニット101bは、ローカル時間902に到着するように、ローカル時間1000に第1のユニット101aにメッセージを送り返すようになる。これら4つの数(0、102、1000、902)から、100のタイムスタンプ差が抽出され得る。このメッセージハンドシェークはまた、タイムスタンプ差を半サイクルの分解能で戻すことによって、半サイクルの曖昧さを解決する。
【0032】
[0028]2つの異なる信号の間の位相差は、同様であるが完全に2つと同じでない周波数を有する第3のクロックで、両方のクロックをサンプリングし、次いでサンプリングされたデータの間でXORの演算を行い、最後に結果を平均化することによって測定される。同じ方式を用いて、入力の間の推定される位相差をさらに改善するために必要とされる、各入力クロックポートのデューティサイクルを決定することが可能である。
【0033】
[0029]
図2は、本開示の様々な例示の実装形態による、サンプリング波形を示す。例えば、2つの250MHzの信号(入力Aおよび入力B)を比較するために、これらの信号は、250.25MHzのサンプリングクロックでサンプリングされる。このサンプリング測定は、サイクル当たり1000サンプルの分解能で、もとのクロックをサンプリングすることと等価であり、これは2つのサンプリングされた信号の間でXOR演算を行うときに、十分な分解能をもたらす。XOR結果のデューティサイクルは、例えば、指数移動平均によって推定され得る。平均化されたXORからの値は、調べられる2つの信号(入力Aおよび入力B)の間の位相差の絶対値を示す。位相遅延を掃引したとき、この情報は、関連付けられた遅延線の後に、2つのクロック(入力Aおよび入力Bに対応する)が整列される点を決定し得る。2つのクロック転送タイプ(AからB、およびBからA)に対する整列点を見出すことによって、半サイクルまでの曖昧さで、2つのローカルクロック(入力Aおよび入力Bに対応する)が同期される点を見出すことが可能である。
【0034】
[0030]ノイズの電子的発生源を取り除くために、異なるユニットを接続するケーブルは、AC結合され得る。ユニットの間で送信されるメッセージは、システムクロックの半分の周波数のクロックを用いて、データをXORすることによって符号化され得る。符号化されたメッセージは、ロバスト性を有してメッセージをサンプリングするように位相シフトを較正されて、捕捉クロック周波数をシステムクロックに設定することによって捕捉され得る。
【0035】
[0031]
図3は、本開示の様々な例示の実装形態による、2つの信号(入力Aおよび入力B)の間の位相差を推定するためのシステム300を示す。
図3のシステム300は、ASICまたはFPGAなど、ディスクリート論理ゲートを用いて実装され得る。
【0036】
[0032]信号は、クロックおよび/またはメッセージを備え得る。着信メッセージを捕捉するとき、オンボードPLL313は、システムクロックをプログラマブルな位相に整合するようにチューニングされた、サンプリングクロックをもたらす。クロックを同期させるために位相メータが用いられるので、PLL313は、システムクロックに近いが、それに等しくない周波数をもたらす。PLL313は、320で2で分周される500MHzクロックによって生成される、250MHzシステムクロックによって供給され得る。開示されるプロセスの終わりでは、250MHzクロックは、ポートIOに近い点で同期される。
【0037】
[0033]フリップフロップ301および302は、それぞれポートAおよびポートBにおいて、着信および発信信号を捕捉する。着信メッセージは、構文解析され、タイムスタンプされる。発信メッセージも同様にタイムスタンプされる。2つのフリップフロップ301および302への着信信号は、例えば、250.25MHzでのPLL313を用いてサンプリングされる。2つのフリップフロップ301および302からの信号は、303でXORされ、304で平均化される。2つのフリップフロップ301および302からの直接の信号は、317で多重化され、310で通信ブロック315に送られる。Mux317は、着信データレーンを選ぶように動作可能である。2つのフリップフロップ301および302からの直接の信号はまた、通信ブロック315においてデューティサイクルを取得するために、それぞれ平均回路305および306によって平均化される。通信ブロック315は、動作を取りまとめるためにプロセッサを備え得る。
【0038】
[0034]通信ブロック315からのメッセージ出力は、シフトレジスタ311に入り、符号化される。マンチェスタ符号化は、例えば、125MHzのクロックによって、シフトレジスタ311の出力を、312でXORすることによって行われる。2つのクロックの間の位相差は、マンチェスタ符号化に従って決定される。
【0039】
[0035]Mux318およびMux319は、250MHzクロックの出力と、または125MHzでのマンチェスタ符号化されたメッセージとの間で、選択するように動作可能である。
【0040】
[0036]ポートAおよびポートBは、ポートを出力ポートとして設定するように、それぞれスイッチ308および309を通じてトライステートで動作する。スイッチ308および309はまた、一方のポートからの着信メッセージが他方から出て行く、リピータモードを可能にし得る。マンチェスタ符号化されたメッセージを備えた、メモリ307からの出力経路は、例えば、125MHzでクロック制御され得る。
【0041】
[0037]PLL313は、メッセージを捕捉するために、250MHz+位相オフセットに設定されることができ、クロックシフト、および分周器320スリップを検出し得る(250MHzで不変のままである着信クロックを測定することにより)。タイムスタンプカウンタ314のLSBは、メッセージのための125MHzクロックとして用いられ得る。タイムスタンプカウンタ314は、ユーザ定義のシフトのポストキャリブレーションを可能にするように、制御され得る。
【0042】
[0038]
図4は、本開示の様々な例示の実装形態による、クロック同期のための例示の方法のフローチャートを示す。クロック同期のための例示の方法は、複数の処理ユニットを備えるQOPにおいて用いられ得る。例示のために、複数の処理ユニットは、第1の処理ユニットと、第2の処理ユニットとを備える。複数の処理ユニットは、
図1に関して述べられたように階層構造に配置された追加の処理ユニットを備え得る。
【0043】
[0039]401で、第1の処理ユニットは、第1のクロックに従って動作する。同時に403で、第2の処理ユニットは、第2のクロックに従って動作する。第1のクロックおよび第2のクロックは、共通の周波数にある。
【0044】
[0040]405で、第1のクロックは、共通の同期ケーブルを通じて、第1の処理ユニットから第2の処理ユニットに送られる。407で、第2のクロックは、同じ共通の同期ケーブルを通じて、第2の処理ユニットから第1の処理ユニットに送られる。
【0045】
[0041]409で、第1のクロックと第2のクロックとの間の、第1の位相差が、第2の処理ユニットで生成され、第1のクロックと第2のクロックとの間の、第2の位相差が、第1の処理ユニットで生成される。位相差生成は、第1のクロックと第2のクロックを、第3のクロックでサンプリングすることを含み、第3のクロックは、第1のクロックおよび第2のクロックとは異なる周波数にある。例えば、第3のクロック周波数は、第1のクロックおよび第2のクロックの共通の周波数より0.1%大きくすることができる。サンプリングされた第1のクロックと、サンプリングされた第2のクロックとは、XORされ、平均化されて、位相差信号を生じる。サンプリングされた第1のクロック、およびサンプリングされた第2のクロックのデューティサイクルはまた、XORの前に、サンプリングされた第1のクロック、およびサンプリングされた第2のクロックを平均化することによって決定される。
【0046】
[0042]411で、第1のクロックおよび第2のクロックの一方または両方は、第1の位相差と、第2の位相差とに従って、調整される。調整は、前進(すなわち、遅延の除去)、または1つもしくは複数の可変遅延ユニットを通じて設定される追加の遅延とすることができる。
【0047】
[0043]2つの処理ユニット(
図1の101)がそれらの位相を整列させ、タイムスタンプを共有した後、様々なメッセージおよび動作の通信のために、リンクが確立される。動作は、例えば、特定のタイムスタンプに従って、実行を開始、停止、一時停止、または再開するための命令を備え得る。動作はまた、ドリフトを考慮するように位相の再較正を含み得る。同期ラインの極性は、処理ユニット101が送信しているか、受信しているかを示すために、交互にされ得る。
【0048】
[0044]
図5は、本開示の様々な例示の実装形態による、時間転送のための例示の方法のフローチャートを示す。時間転送のための例示の方法は、複数の処理ユニットを備えるQOPにおいて用いられ得る。例示のために、複数の処理ユニットは、第1の処理ユニットと、第2の処理ユニットとを備える。複数の処理ユニットは、
図1に関して述べられたように階層構造に配置された追加の処理ユニットを備え得る。
【0049】
[0045]501で、第1の処理ユニットは、第1のクロックに従って、第1のローカル時間を連続的にインクリメントする。同時に503で、第2の処理ユニットは、第2のクロックに従って、第2のローカル時間を連続的にインクリメントする。第1のクロックおよび第2のクロックは、共通の周波数で動作する。
【0050】
[0046]505で、第1のタイムスタンプを有する第1のメッセージは、共通の同期ケーブルを通じて、第1の処理ユニットから第2の処理ユニットに送られる。507で、第2のタイムスタンプを有する第2のメッセージは、同じ共通の同期ケーブルを通じて、第2の処理ユニットから第1の処理ユニットに送られる。
【0051】
[0047]509で、第1のタイムスタンプと第2のローカル時間との間の、第1のタイムスタンプ差が、第2の処理ユニットで生成され、第2のタイムスタンプと第1のローカル時間との間の、第2のタイムスタンプ差が、第1の処理ユニットで生成される。第1のタイムスタンプ差は、第2のローカル時間に基づく到着タイムスタンプから、第1のタイムスタンプを減算するステップによって生成され得る。第2のタイムスタンプ差は、第1のローカル時間に基づく到着タイムスタンプから、第2のタイムスタンプを減算するステップによって生成され得る。
【0052】
[0048]511で、第1のクロックおよび第2のクロックの一方または両方は、第1のタイムスタンプ差と、第2のタイムスタンプ差とに従って、調整される。調整は、前進、または1つまたは複数の可変遅延ユニットを通じて設定される追加の遅延とすることができる。
【0053】
[0049]この開示されるシステムは、最小量の接続性と共に、複数のデバイスを同期するように動作可能である。複数のデバイス内の各デバイスは、それが結合された他のデバイスに関して、小さな位相誤差/ドリフト(d_err)を有し得る。いくつかの状況において、連続したデバイスの間の位相誤差(d_err)は、最小位相補正ステップ(d_calibrate)より小さくなり得る。
【0054】
[0050]クロック同期の後でも、クロック生成器の位相較正(d_calibrate)のステップサイズが十分小さくない場合は、2つのデバイスの間に位相誤差(d_err)が残り得る。多くのデバイスを備えたシステムでは、この位相誤差は累積し、デバイスのいくつかの間に、かなりの位相ドリフトを引き起こし得る。複数のデバイスの、任意の2つのデバイスの間の累積位相誤差は、監視されることができ、同期を改善するために利用され得る。
【0055】
[0051]
図6は、d_err<d_calibrateであるときでも、位相誤差を最小化するように動作可能な、リングトポロジーを示す。
図6のリングトポロジーは、2つのデバイスの間の位相誤差を測定するように動作可能である。2つの連続したデバイスごとの較正は、1つの方向に累積する位相誤差に基づく。従って、デバイスXとデバイス0との間の位相誤差の直接測定は、単一の測定での全体の累積誤差を表すことになり、高速で迅速な最小化を可能にする。誤差モニタ601は、直接または間接的に接続された、2つのデバイスの間の位相シフトを測定し得る。
【0056】
[0052]
図6に示されるような多くのデバイス(0からXまで)のセットアップでは、接続されたデバイスの位相は、直接監視される。デバイス0とデバイス2との間の位相誤差は、デバイス0とデバイス1との間の位相誤差を測定し、その位相誤差をデバイス1とデバイス2との間で測定された位相誤差に累積することによって決定され得る。モニタ601は、物理的ユニットまたはソフトウェアとすることができる。
【0057】
[0053]リングトポロジーを用いることによって、最初のデバイス(デバイス0)と、最後のデバイス(デバイスX)との間の誤差は、直接測定され得る。誤差は2つのデバイスごとの間で増加するので、どれだけ多くの位相補正(d_calibrate)のタップ/ステップが必要かを決定するために、デバイス0とデバイスXとの間の最大誤差が測定され得る。例えば、累積位相誤差を最小化するために、3タップが必要である場合は、すべての位相を測定する必要なしに、リングの0.25、0.5、および0.75において単一のタップ補正がなされ得る。
【0058】
[0054]示されるように、デバイス1はデバイス0に接続されることができ、デバイス2はデバイス1に接続されることができ、デバイスXがデバイスX-1に接続されるまで以下同様である。デバイスXとデバイス0との間のインターフェース601は、累積誤差(X×d_err)を監視するために用いられ得る。累積誤差に従って、デバイス位相が調整され得る。代わりに、2つのデバイスごとの間の位相誤差が計算され得る。例えば、デバイス0からデバイスnまでの全体の誤差は、d_err_nである。d_err_n>d_calibrateである最初のn個に対して、デバイスnの位相は、全体の誤差をd_calibrateだけ低減するようにシフトされ得る。あらゆる他のデバイスm(n<m<x)も、それらのデバイスの整列を維持するようにシフトされ得る。デバイスの間の位相誤差は、段階的に補正され得る。d_err_n>d_calibrateとなったときを決定するこのプロセスは、全体の誤差が最小化されるまで繰り返され得る。
【0059】
[0055]X×Y個のデバイス(Y<X)に対して、X個のデバイスの各グループは、第1の次元でリングトポロジーを確立することができ、Y個のデバイスの各グループは、第2の次元でリングトポロジーにおいて接続され得る。
図7は、多数のデバイスの間の位相誤差を最小化するための、例示の2次元リングトポロジーを示す。例えば、
図7は、X=4およびY=3の2Dリングトポロジーを示す。これらの次元はまた、本開示から逸脱せずに、示されたものより大きくされ得る。第1の次元での、リングこと(例えば、リングA、B、およびC)の全体の誤差は、誤差モニタ601-A、601-B、および601-Cに従って、最初に最小化され得る。次いで、第2の次元での、リングごと(例えば、リング0、1、2、および3)の全体の誤差は、誤差モニタ601-0、601-1、601-2、および601-3に従って最小化され得る。
【0060】
[0056]本方法および/またはシステムは、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせにおいて実現され得る。本方法および/またはシステムは、少なくとも1つのコンピューティングシステムにおいて集中化されたやり方で、または異なる要素がいくつかの相互接続されたコンピューティングシステムにわたって拡がる分散化されたやり方で実現され得る。本明細書で述べられる方法を遂行するように適合された、任意の種類のコンピューティングシステムまたは他の装置が適する。典型的な実装形態は、1つもしくは複数の特定用途向け集積回路(ASIC)、1つもしくは複数のフィールドプログラマブルゲートアレイ(FPGA)、および/または1つもしくは複数のプロセッサ(例えば、x86、x64、ARM、PIC、および/または任意の他の適切なプロセッサアーキテクチャ)ならびに関連付けられた支援回路構成要素(例えば、ストレージ、DRAM、FLASH、バスインターフェース回路など)を備え得る。それぞれのディスクリートASIC、FPGA、プロセッサ、または他の回路は、「チップ」と呼ばれることができ、複数のこのような回路は、「チップセット」と呼ばれ得る。別の実装形態は、マシンによって実行されるとき、マシンに本開示で述べられるようなプロセスを行わせる、1つまたは複数の行のコードが記憶された、非一時的機械可読(例えば、コンピュータ可読)媒体(例えば、FLASHドライブ、光ディスク、磁気記憶ディスク、その他)を備え得る。別の実装形態は、マシンによって実行されるとき、マシンが本開示で述べられるシステムとして動作するように(例えば、ソフトウェアおよび/またはファームウェアをそれの回路にロードするように)構成されるようにする、1つまたは複数の行のコードが記憶された、非一時的機械可読(例えば、コンピュータ可読)媒体(例えば、FLASHドライブ、光ディスク、磁気記憶ディスク、その他)を備え得る。
【0061】
[0057]本明細書で用いられる「回路(circuits)」および「回路構成要素(circuitry)」という用語は、物理的電子構成要素(すなわち、ハードウェア)と、ハードウェアを構成し、ハードウェアによって実行され、ならびに、またはそうでない場合ハードウェアに関連付けられ得る、任意のソフトウェアおよび/もしくはファームウェア(「コード」)を指す。本明細書で用いられる、例えば、特定のプロセッサおよびメモリは、第1の1つまたは複数の行のコードを実行するとき、第1の「回路」を備えることができ、第2の1つまたは複数の行のコードを実行するとき、第2の「回路」を備え得る。本明細書で用いられる「および/または」は、「および/または」によって結び付けられたリスト内の品目の任意の1つまたは複数を意味する。例として、「xおよび/またはy」は、3つの要素セット{(x)、(y)、(x、y)}のうちの任意の要素を意味する。別の例として、「x、y、および/またはz」は、7個の要素セット{(x)、(y)、(z)、(x、y)、(x、z)、(y、z)、(x、y、z)}のうちの任意の要素を意味する。本明細書で用いられる「例示的(exemplary)」という用語は、非限定的な例、事例、または例示として役立つことを意味する。本明細書で用いられる「例えば(e.g.)」および「例えば(for example)」は、1つまたは複数の非限定的な例、事例、または例示のリストを開始する。本明細書で用いられる、回路構成要素は、回路構成要素が、機能の性能が無効化されるか有効化されないかに関わらず(例えば、ユーザ設定可能な設定、工場での調節、その他によって)、機能を行うために必要なハードウェアおよびコード(必要な場合)を備えるときは常に、機能を行うように「動作可能」である。本明細書で用いられる「に基づく」という用語は、「少なくとも部分的に基づく」ことを意味する。例えば、「yに基づくx」とは、xが少なくとも部分的に「y」に基づく(および例えば、zにも基づき得る)ことを意味する。
【0062】
[0058]本方法および/またはシステムが、いくつかの実装形態を参照して述べられたが、当業者には、本方法および/またはシステムの範囲から逸脱せずに、様々な変更がなされることができ、等価物が置き換えられ得ることが理解されるであろう。加えて、特定の状況または材料を、本開示の教示に、その範囲から逸脱せずに適合させるように、多くの変更がなされ得る。従って、本方法および/またはシステムは、開示される特定の実装形態に限定されず、本方法および/またはシステムは、添付の「特許請求の範囲」に包含されるすべての実装形態を含むようになることが意図される。
【国際調査報告】