(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023107759
(43)【公開日】2023-08-03
(54)【発明の名称】量子システムにおける複数のFPGAポートを同期させるための機械学習
(51)【国際特許分類】
H03K 5/14 20140101AFI20230727BHJP
G06N 10/80 20220101ALI20230727BHJP
G06F 7/38 20060101ALI20230727BHJP
G06F 7/57 20060101ALI20230727BHJP
【FI】
H03K5/14
G06N10/80
G06F7/38 510
G06F7/57 203
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023008596
(22)【出願日】2023-01-24
(31)【優先権主張番号】17/582,207
(32)【優先日】2022-01-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521225948
【氏名又は名称】クワンタム・マシーンズ
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100195408
【弁理士】
【氏名又は名称】武藤 陽子
(72)【発明者】
【氏名】アヴィシャイ・ツビ
(72)【発明者】
【氏名】オリ・ウェーバー
(72)【発明者】
【氏名】ニッシム・オフェク
【テーマコード(参考)】
5J001
【Fターム(参考)】
5J001AA11
5J001CC03
5J001DD09
(57)【要約】 (修正有)
【課題】量子システムにおける複数のフィールドプログラマブルゲートアレイ(FPGA)ポートを同期させるための方法およびシステムを提供する。
【解決手段】量子コンピュータにおける量子アルゴリズムは、キュービットが複数の量子制御パルスと相互作用することによって実施される。量子制御パルスは、ベースバンドでデジタル的に生成され、RFアップコンバージョン回路に送り込むDACに、非同期式ポートを介して送信された電磁気RF信号である。同期のために、各非同期式ポートは、マルチタップ遅延線に連結される。マルチタップ遅延線の設定は、ポートのセットアップアンドホールド時間の関数によって決定される。この機能は、様々なポートにわたって適用可能になるように、機械学習を介して訓練される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数のマルチタップ遅延線のそれぞれのために、複数のタップのうちの1つのタップを設定するステップと、
複数の非同期式ポートのそれぞれを介して、テスト信号を宛先に送信するステップであって、前記複数の非同期式ポートのそれぞれが、前記複数のマルチタップ遅延線のうちの1つのマルチタップ遅延線に動作可能なように連結される、ステップと、
前記複数の非同期式ポートのそれぞれに対応する前記宛先において前記テスト信号の位相を測定するステップと、
前記複数のタップの各タップを設定した後、前記位相測定を繰り返すステップと、
前記複数の非同期式ポートのそれぞれの前記位相測定値に応じて、前記複数の非同期式ポートのそれぞれのために1つのタップを選択するステップと、
前記複数の非同期式ポートのための前記選択されたタップに応じて、タップ推定関数を生成するステップと
を含む、方法。
【請求項2】
前記タップ推定関数が、前記複数の非同期式ポートのそれぞれのためのセットアップアンドホールド時間に応じて生成される、請求項1に記載の方法。
【請求項3】
フィールドプログラマブルゲートアレイ(FPGA)が、前記複数の非同期式ポートを備える、請求項1に記載の方法。
【請求項4】
前記FPGAが、前記複数のマルチタップ遅延線を備える、請求項3に記載の方法。
【請求項5】
前記タップ推定関数が、複数のFPGAからの位相測定値に応じて生成される、請求項3に記載の方法。
【請求項6】
前記宛先が、1つまたは複数のデジタルアナログコンバータ(DAC)を備える、請求項1に記載の方法。
【請求項7】
前記テスト信号が正弦波である、請求項1に記載の方法。
【請求項8】
前記テスト信号がパルスを有する、請求項1に記載の方法。
【請求項9】
前記複数の非同期式ポートの特定のポートのための選択されたタップが、定位相の期間に対応する、請求項1に記載の方法。
【請求項10】
前記複数の非同期式ポートの特定のポートのための選択されたタップが、1つまたは複数の位相変化に応じて決定される、請求項1に記載の方法。
【請求項11】
テスト信号を生成するように動作可能な信号発生器と、
前記テスト信号を受信するように動作可能な複数のマルチタップ遅延線であって、各マルチタップ遅延線が、複数のタップのうちの1つのタップに対応する遅延したテスト信号を出力するように動作可能な、複数のマルチタップ遅延線と、
複数の非同期式ポートであって、各非同期式ポートが、前記遅延したテスト信号を宛先に送信するように動作可能な、複数の非同期式ポートと、
タップ推定関数を生成するためのアプリケーションであって、
前記複数の非同期式ポートのそれぞれに対して、前記アプリケーションが、複数の位相値を測定するように動作可能であり、前記複数の位相値が、前記複数のタップに対応し、
前記複数の非同期式ポートのそれぞれに対して、前記アプリケーションが、前記複数の位相値からタップを選択するように動作可能であり、
前記タップ推定関数が、前記複数の非同期式ポートのそれぞれのための前記選択されたタップに応じて生成される、
アプリケーションと
を備える、システム。
【請求項12】
前記タップ推定関数が、前記複数の非同期式ポートのそれぞれのためのセットアップアンドホールド時間に応じて生成される、請求項11に記載のシステム。
【請求項13】
フィールドプログラマブルゲートアレイ(FPGA)が、前記複数の非同期式ポートを備える、請求項11に記載のシステム。
【請求項14】
前記FPGAが、前記複数のマルチタップ遅延線を備える、請求項13に記載のシステム。
【請求項15】
前記タップ推定関数が、複数のFPGAからの位相測定値に応じて生成される、請求項13に記載のシステム。
【請求項16】
前記宛先が、1つまたは複数のデジタルアナログコンバータ(DAC)を備える、請求項11に記載のシステム。
【請求項17】
前記テスト信号が正弦波である、請求項11に記載のシステム。
【請求項18】
前記テスト信号がパルスを有する、請求項11に記載のシステム。
【請求項19】
前記複数の非同期式ポートの特定のポートのための選択されたタップが、定位相の期間に対応する、請求項11に記載のシステム。
【請求項20】
前記複数の非同期式ポートの特定のポートのための選択されたタップが、1つまたは複数の位相変化に応じて決定される、請求項11に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]図面を参照しながら本開示の残りに示された本方法およびシステムのいくつかの態様と従来のアプローチとを比較することによって、複数のFPGAポートの従来の使用目的の限界および短所が当業者に明らかになるであろう。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002]特許請求の範囲に、より完全に示したように、実質的に図の少なくとも1つによって示される、および/または図の少なくとも1つとともに説明されるような、量子システムにおける複数のFPGAポートを同期させるための方法およびシステムを提供する。
【図面の簡単な説明】
【0003】
【
図1】本開示の様々な実例の実装形態による、同期された複数のFPGAポートを備える実例の量子システムを示す図である。
【
図2】本開示の様々な実例の実装形態による、複数のFPGAポートを同期させるように量子システムを訓練するための実例のシステムを示す図である。
【
図3】本開示の様々な実例の実装形態による、複数のFPGAポートを同期させるための実例の方法のフローチャートである。
【
図4】本開示の様々な実例の実装形態による、遅延の範囲にわたって測定された位相値の実例のグラフである。
【
図5】本開示の様々な実例の実装形態による、異なるセットアップアンドホールド時間を有する異なるポートの理想的な位相値への線形のフィットとして実例のタップ/遅延推定関数を示す図である。
【発明を実施するための形態】
【0004】
[0008]伝統的なコンピュータは、バイナリディジット(「ビット」)の形で情報を格納し、バイナリ論理ゲートを介してこれらのビットを処理することによって動作する。いつでも、各ビットは、0(すなわち「オフ」)および1(すなわち「オン」)という、2つの離散値のうちのただ1つをとる。バイナリ論理ゲートによって実施される論理演算は、ブール代数によって定義され、回路動作は、伝統的な物理学に支配される。現代の伝統的なシステムでは、ビットを格納し、論理演算を実現するための回路は、通常、ビットの0と1を表す2つの異なる電圧を搬送することができる電気ワイヤ、および、ブール論理演算を実施するトランジスタベースの論理ゲートから作られる。
【0005】
[0009]伝統的なコンピュータの論理演算は、固定状態で実施される。例えば、時間0において、ビットが第1の状態であり、時間1において、論理演算がビットに適用され、時間2において、ビットが、時間0における状態、および論理演算で決定されたような、第2の状態になる。ビットの状態は、典型的には、電圧(例えば、「1」に対して1Vdc、または「0」に対して0Vdc)として格納される。論理演算は、典型的には、1つまたは複数のトランジスタを備える。
【0006】
[0010]明らかに、単一ビットおよび単一論理ゲートを用いる伝統的なコンピュータには限られた効果しかなく、これは、大きくない計算パワーを伴うことさえある現代の伝統的なコンピュータが、何十億ものビットおよびトランジスタを収める理由である。つまり、次第に複雑化する問題を解くことができる伝統的なコンピュータは、アルゴリズムを実行するために、ますます多数のビットおよびトランジスタ、ならびに/または、ますます大量の時間を必然的に必要とする。それでも、解決策に到達するために、実行不可能なくらい多数のトランジスタ、および/または、実行不可能なくらい大量の時間を必要とするいくつかの問題がある。このような問題は、イントラクタブルと呼ばれる。
【0007】
[0011]量子コンピュータは、量子ビット(「キュービット」)の形で情報を格納し、量子ゲートを介してこれらのキュービットを処理することによって動作する。いつでも1つの状態(0または1)でしかあり得ないビットと異なり、キュービットは、同時に2つの状態の重ね合わせになることができる。より正確には、量子ビットは、状態が2次元のヒルベルト空間内に存続する系であり、したがって、線形結合α|0〉+β|1〉と記述され、ここで、|0〉および|1〉は、2つの基礎状態であり、αおよびβは、|α|
2+|β|
2=1を満たす、通常、確率振幅と呼ばれる複素数である。この表記法を使用すると、キュービットが測定されるとき、キュービットは、確率|α|
2で0になり、確率|β|
2で1になる。基礎状態|0〉および|1〉は、2次元の基底ベクトル
【数1】
および
【数2】
でもそれぞれ表すことができる。キュービット状態は、
【数3】
で表されてもよい。量子ゲートによって実施される演算は、ヒルベルト空間上の線形代数で定義され、回路動作は、量子物理学に支配される。キュービットの数学的動作およびキュービットに対する演算のこのさらなる重要性により、量子コンピュータは、伝統的なコンピュータよりずっと速く、いくつかの問題を解くことができる。実際に、伝統的なコンピュータにとってイントラクタブルな問題の中には、量子コンピュータにとって平凡になり得るものもある。
【0008】
[0012]伝統的なビットと異なり、キュービットは、ワイヤ上の単一の電圧値として格納することができない。代わりに、キュービットは、2準位の量子力学系を使用して物理的に実現される。例えば、時間0において、キュービットは、
【数4】
と記述され、時間1において、論理演算がキュービットに適用され、時間2において、キュービットは、
【数5】
と記述される。キュービットの多くの物理的実装形態が、何年にもわたって提案され、開発されてきた。キュービットの実装形態の例の中には、超電導回路、スピンキュービット、およびトラップイオン(trapped ion)を含むものもある。
【0009】
[0013]
図1は、本開示の様々な実例の実装形態による、同期された複数のFPGAポートを備える実例の量子システムを示す。量子システムは、量子プログラミングサブシステム(QPS:quantum programming subsystem)101、量子コントローラ(QC:quantum controller)103、および量子プロセッサ107を備える。
【0010】
[0014]QPS101は、QC103を構成し、実行時間中に人の介入がほとんどないか全くない、量子アルゴリズムを実行する(すなわち、必要なアウトバウンド量子制御パルスを生成する)ためにQC103が実行することができる命令を含む、量子アルゴリズム記述を生成する能力がある。実例の実装形態では、QPS101は、プロセッサ、メモリ、および他の関連付けられた回路機器(例えば、x86またはx64チップセット)を備えるパーソナルコンピュータである。QPS101は、高水準量子アルゴリズム記述を、量子アルゴリズム記述の機械語バージョン(すなわち、QC103が直接翻訳し実行することができる命令を表す一連のバイナリベクトル)にコンパイルする。
【0011】
[0015]QPS101は、例えば、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクト(PCIe)バス、有線もしくはワイヤレスイーサネット、または他の任意の適切な通信プロトコルを利用することができる相互接続を介してQC103に連結されてもよい。
【0012】
[0016]QC103は、相互接続を介してQPS101から機械語量子アルゴリズム記述をロードするように動作可能な回路機器を備える。QC103によって機械語を実行することにより、QC103は、量子プロセッサ107上で実施されることになる所望の演算に対応する必要なアウトバウンド量子制御パルスを生成する(例えば、キュービットの状態を操作するためのキュービットに送信する、または、キュービットの状態を読み取るために読出し共振器に送信する、等)。機械語により、さらにQC103は、入力信号の分析を実施する。分析結果は、キュービットの状態または量子レジスタを決定するために使用されてもよい(量子測定)。実施されることになる量子アルゴリズムに応じて、アルゴリズムを実行するためのアウトバウンドパルスは、設計時に予め決定することができ、および/または、実行時間中に決定されなければならないこともある。パルスの実行時間決定は、アルゴリズムの実行時間中の、QC103における伝統的な計算および処理の実施を含むことができる(例えば、量子プロセッサから受信したインバウンドパルスの実行時間分析)。
【0013】
[0017]QC103は、所望の論理演算を実施する(およびしたがって、所望の量子アルゴリズムを実行する)ために、精密な一連の外部信号、つまり通常、電磁波のパルスおよびベースバンド電圧のパルスを生成する。
【0014】
[0018]QC103によって実施される量子アルゴリズムの実行時間中、および/または、完了時、QC103は、データ/結果をQPS101に出力することができる。実例の実装形態では、これらの結果は、量子アルゴリズムのその後の実行のために新しい量子アルゴリズム記述を生成するため、および/または、実行時間中に量子アルゴリズム記述を更新するために使用されてもよい。さらに、QC103は、キュービット状態推定を表す、量子プロセッサ107から受信した未加工もしくは加工済インバウンドパルス、または、量子プログラム制御フローおよび分岐情報、ならびにプログラム実行中の内部変数計算を表すメタデータを出力することができる。
【0015】
[0019]QC103は、複数のパルスプロセッサを備え、パルスプロセッサは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路、または同様のもので実装されてもよい。パルスプロセッサは、量子エレメント(例えば、1つもしくは複数のキュービットおよび/もしくは共振器)を駆動するアナログアウトバウンドパルスを制御すること、またはプログラム実行(例えば、アナログアウトバウンドパルスのゲーティング、もしくは光子検出器のような外部デバイスの制御)に必要な補助機器を制御することができる量子エレメントとデジタルアウトバウンドパルスとの間の相互作用を可能にすることを行うように動作可能である。
【0016】
[0020]量子アルゴリズムは、1つまたは複数のキュービットが量子制御パルスと相互作用するときに、量子プロセッサ107で実施される。これらの量子制御パルスは、QC103においてベースバンドでデジタル的に生成され、複数のDAC109-0、109-1、109-2、および109-3を介してアナログ波形にコンバートされ、RF回路105によってアップコンバートされた、電磁気RF信号またはパルスである。所望の信号は、算術または論理計算、様々な構成要素との通信、および伝統的な制御フロー動作(ジャンプ、分岐、等)などの、様々な動作を伴う命令の既知のセットに従って生成されてもよい。QC103におけるアプリケーション層(APP)は、このアナログ波形のサンプルをデジタル的に生成する(およびさらに修正する)ように物理層(PHY)を制御する。RF回路105ならびに複数のADC111-0および111-1を介して量子プロセッサ107からQC103によって、インバウンドパルスがさらに受信される。
【0017】
[0021]キュービットは、非常に低いプログラム実行の実行時間の原因になる、数百マイクロ秒の範囲の寿命を有することができる。さらに、量子コンピュータが特定の計算のためのコアクセラレータとして機能しているデータセンタでは、指名された量子プロセッサ107を使用するために待ち行列に入っている数千ものプログラムがあり得る。
【0018】
[0022]プロセス、電圧、および温度(PVT:process,voltage,temperature)が変化すると、周期的な再較正が必要である。したがって、再較正への速く、堅牢で、独立したアプローチが、プログラム間の無駄時間を最小にしつつ、量子コンピュータのはるかに良い使用を容易にすることができる。
【0019】
[0023]
図2は、本開示の様々な実例の実装形態による、複数のFPGAポートを同期させるように量子システムを訓練するための実例のシステムを示す。
【0020】
[0024]
図1の量子コントローラ103は、PCB201-0およびFPGA203-0を備えることができる。FPGA203-0は、互いに同期されることが必要な数多くのポート207-0および207-1を有することができる。さらに、PCB201-0およびFPGA203-0は、設計差異201-1および203-1をそれぞれ有することができ、したがって、FPGA203-0のポート207-0および207-1を介した伝送は、FPGA203-1のポート207-0および207-1を介した伝送と一線に並んでいなくてもよい。FPGA203-0または203-1から出た出力が、類似のシステム構成要素間の設計差異に関わらず、片寄ることなく、全てのDAC109-0および109-1に同時かつ独立して到達するように、同期が必要である。FPGA203-0または203-1から出力されている信号のうちの1つの何らかの遅延、または、ずれは、量子コンピュータの信頼性を劇的に損なうおそれがある。
【0021】
[0025]FPGA203-0からポート207-0および207-1へのハードウェア経路は、FPGA203-1の変形物(例えば、同じPCB201-0の改訂版だが、異なるバッチからのFPGA203-1)により、変化してもよい。FPGA203-1の様々な特性は、信号がDAC109-0および109-1に到達するのにかかる時間に影響を及ぼし、異なるPCB201のために較正された同期を台無しにするおそれがある。この機械学習モデルを訓練するために、レイアウトがそれぞれ異なるいくつかのFPGA設計203-0および203-1、ならびに、異なるPCB201-0および201-1を有するいくつかの量子制御ユニットが、訓練のために使用される。
【0022】
[0026]FPGA203-0および/または203-1のポート207-0および207-1を同期させることは、各ポート207-0および207-1のための遅延線113-0および113-1を組み込む。これにより、量子制御アプリケーションによって必要とされるような信号の宛先において、全ての信号が一線に並ぶように、一定および個別のステップでFPGA203-0および/または203-1から出た信号を、プログラムでおよびデジタル的に「偏移させる」ことを可能にする。
【0023】
[0027]量子制御ユニット毎に以前に獲得されたデータを保存、ロード、および維持する必要なく(すなわち、外部ストレージを使用することなく)、全ての量子FPGAポート207-0および207-1を同期させるための機械学習アプローチが開示される。機械学習アプローチは、さらに、外部入力/出力デバイスを使用した較正の必要をなくすとともに、量子制御プラットフォームに対する長くて何度も繰り返される較正の必要をなくす。
【0024】
[0028]機械学習モデルを訓練するために、異なるPCB201-0および/または201-1、ならびに、異なるFPGAロジック設計203-0および/または203-1からの情報が、ポート207-0および207-1毎に収集される。訓練は、1回しか必要とされない。
【0025】
[0029]テスト信号は、生成器205-0および205-1によって生成されてもよい。テスト信号は、正弦信号でも、決定論的位相を有する他の任意の信号でもよい。各PCB201-0または201-1に対して、FPGA設計203-0または203-1毎に、可能な遅延の長さ(0からN)が、遅延線113-0および113-1にプログラムされる。テスト信号の位相は、DAC109-0および109-1において測定される。これは、どのタップ/遅延の情報が各ポート207-0および207-1に必要であるかを提供する。テスト信号は、DAC109-0および109-1において、テスト信号が同じ位相を有するとき、同期される。タップ/遅延を決定するための公式は、ポートのセットアップアンドホールド時間の関数として、線形回帰を使用して測定された位相値から導出されてもよい。代替として、非線形の遅延線を考慮に入れるために、タップ/遅延を決定するための非線形方程式が導出されてもよい。
【0026】
[0030]
図3は、本開示の様々な実例の実装形態による、複数のFPGAポートを同期させるための実例の方法のフローチャートを示す。
【0027】
[0031]FPGAロジック設計のそれぞれは、訓練位相への入力の一部としても機能するセットアップアンドホールド(S/H:setup-and-hold)時間によって特徴付けられる。301において、FPGAの各ポートに対してS/H時間が決定される。FPGAポートは、非同期でもよい。
【0028】
[0032]テスト信号が生成される。303において、テスト信号がFPGAポートのそれぞれを介して宛先に送信される。宛先は、DACでもよい。各FPGAポートは、マルチタップ遅延線に連結される。複数のマルチタップ遅延線のそれぞれが、タップ(すなわち、選択可能な遅延)をセットすることによって開始される。
【0029】
[0033]305において、あらゆるポートからの宛先において受信されたようなテスト信号の位相が測定される。例えば、8個のポートのそれぞれが、正弦テスト信号を8個のDACのそれぞれに送信する場合、DACにおいて受信されたテスト信号は、位相値を決定するために処理される。
【0030】
[0034]307において、全てのタップが使用されたかどうかが判定される。より多くのタップが利用可能な場合、309において、次のタップが選ばれ、303において、テスト信号が再送信され、305において、あらゆるポートからの宛先において受信されたようなテスト信号の位相値が測定される。
【0031】
[0035]各タップ/遅延が選ばれ、データ収集段階が行われると、アプリケーションは、311において、複数のポートのそれぞれに対して、複数の位相値から、理想的なタップ/遅延を選択するように動作可能である。あらゆるポートのための理想的なタップ/遅延は、同じ位相に対応することになる。
【0032】
[0036]313において、より多くのPCBが訓練のために利用可能であるかどうかが判定される。より多くのPCBが利用可能な場合、315において、新しいPCBが使用され、タップ/遅延が、各遅延線に対して再初期化され、303において、テスト信号が再送信され、305において、あらゆるポートからの宛先において受信されたようなテスト信号の位相値が測定される。
【0033】
[0037]317において、より多くのFPGAが訓練のために利用可能であるかどうかが判定される。より多くのFPGAが利用可能な場合、319において、新しいFPGAが使用され、タップ/遅延が、各遅延線に対して再初期化され、303において、テスト信号が再送信され、305において、あらゆるポートからの宛先において受信されたようなテスト信号の位相値が測定される。
【0034】
[0038]
図4は、本開示の様々な実例の実装形態による、遅延の範囲にわたって測定された位相値の実例のグラフを示す。
【0035】
[0039]水平軸は、遅延線値である(すなわち、テスト信号が遅延された時間単位の量)。垂直軸は、測定された位相である。このようなグラフは、各ポートに対して生成されることが可能である。
【0036】
[0040]図示のように、各遅延線におけるタップの目盛りは、0から63まででもよい。この範囲は、任意の範囲が使用されてもよいので、例である。理想的には、各タップは、正確な遅延に対応するはずである。例えば、62.5psecの分解能で0から4nsecの範囲。それでも、正確な遅延が時には可能でなく、時間とタップとの間の線形関係が、この方法の必要条件ではない。
【0037】
[0041]図示のように、テスト信号は正弦波であるが、決定論的位相を有する任意のテスト信号が使用されてもよい。理想的なタップ/遅延は、18が定位相の期間の中心に対応するので、18として選択される。したがって、選択された理想的なタップは、複数の非同期式ポートの特定のポートに対して、2つの位相変化の間の中間のポイントに従って決定されてもよい。他の実施形態において、テスト信号は、パルスを含むことができる。テスト信号パルスに対して、選択された理想的なタップは、相転移(すなわち、オンからオフ、または逆も同様)に基づいてもよい。
【0038】
[0042]ここで、
図3に戻ると、321において、複数のポートのそれぞれに対して、選択された/理想的なタップ、およびセットアップアンドホールド時間に応じて、タップ推定関数が生成される。
【0039】
[0043]
図5は、本開示の様々な実例の実装形態による、異なるセットアップアンドホールド時間を有する異なるポートの(
図4に関して論じられたような)理想的な位相値への線形のフィットとして実例のタップ/遅延推定関数を示す。
【0040】
[0044]訓練データに対して線形回帰を使用すると、係数aおよびbは、以下の関数が、収集されたデータにフィットするように決定されてもよく、
遅延=a(S/H)+b
ここで、S/Hは、ポートのセットアップアンドホールド時間であり(これは、FPGAロジック設計毎に変更することができる)、遅延は、特定のPCBにおける全てのポートが同期されるような、ポートに必要な遅延である。
【0041】
[0045]この機械学習アプローチは、FPGAチップの異なるロジック設計、異なるPVT、異なるバッチに最適な遅延を決定することができる。この最適な遅延は、外部配線および永続ストレージを使用した較正を繰り返すことなく、達成されてもよい。
【0042】
[0046]本方法および/またはシステムは、ハードウェア、ソフトウェア、または、ハードウェアとソフトウェアの組合せで実現されてもよい。本方法および/またはシステムは、少なくとも1つのコンピューティングシステムに集中した様式で、または、いくつかの相互接続されたコンピューティングシステムにわたって異なる要素が拡散された分散した様式で、実現されてもよい。本明細書で説明された方法を実行するために適合された任意の種類のコンピューティングシステムまたは他の装置が適している。典型的な実装形態は、1つもしくは複数の特定用途向け集積回路(ASIC)、1つもしくは複数のフィールドプログラマブルゲートアレイ(FPGA)、ならびに/または、1つもしくは複数のプロセッサ(例えば、x86、x64、ARM、PIC、および/もしくは他の任意の適切なプロセッサアーキテクチャ)および関連付けられたサポート回路機器(例えば、ストレージ、DRAM、フラッシュ、バスインターフェース回路等)を備えることができる。各個別的なASIC、FPGA、プロセッサ、または他の回路は、「チップ」と呼ばれることもあり、複数のこのような回路は、「チップセット」と呼ばれることもある。別の実装形態は、機械によって実行されると、本開示で説明されたような処理を機械が実施するコードの1つまたは複数のラインを格納した非一時的機械可読(例えば、コンピュータ可読)媒体(例えば、フラッシュドライブ、光ディスク、磁気ストレージディスク、または同様のもの)を備えることができる。別の実装形態は、機械によって実行されると、(例えば、ソフトウェアおよび/またはファームウェアをその回路にロードして)本開示で説明されたシステムとして動作するように機械が構成されるコードの1つまたは複数のラインを格納した非一時的機械可読(例えば、コンピュータ可読)媒体(例えば、フラッシュドライブ、光ディスク、磁気ストレージディスク、または同様のもの)を備えることができる。
【0043】
[0047]本明細書で使用されるように、用語「回路」および「回路機器」は、物理的な電子構成要素(すなわち、ハードウェア)、ならびに、ハードウェアを構成し、ハードウェアで実行し、およびまたはそうでなければ、ハードウェアに関連付けることができる任意のソフトウェアおよび/またはファームウェア(「コード」)を指す。本明細書で使用されるように、例えば、特定のプロセッサおよびメモリは、コードの第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)}のいずれかの要素を意味する。本明細書で使用されるように、用語「例示的」は、非限定的な例、事例、または例証として機能することを意味する。本明細書で使用されるように、用語「例えば(e.g.,)」および「例えば(for example)」は、1つまたは複数の非限定的な例、事例、または例証のリストを強調する。本明細書で使用されるように、回路機器は、(例えば、ユーザが構成可能な設定、工場での整備等によって)機能の実施が無効にされるか、有効にされないかに関わらず、機能を実施するために(必要な場合)必要なハードウェアおよびコードを回路機器が備えるときはいつでも、機能を実施するように「動作可能」である。本明細書で使用されるように、用語「に基づく」は、「に少なくとも部分的に基づく」を意味する。例えば、「yに基づくx」は、「x」が「y」に少なくとも部分的に基づく(および、例えば、zにも基づくことがある)ことを意味する。
【0044】
[0048]本方法および/またはシステムは、一定の実装形態に関して説明されてきたが、本方法および/またはシステムの範囲から逸脱することなく、様々な変更が行われてもよく、均等物が代用されてもよいことが当業者によって理解されよう。さらに、本開示の範囲から逸脱することなく、特定の状況または材料を本開示の教示に適合させるために、多くの修正が行われてもよい。したがって、本方法および/またはシステムは、開示された特定の実装形態に限定されないということ、ならびに、本方法および/またはシステムは、添付の特許請求の範囲に含まれる全ての実装形態を含むということが意図される。
【外国語明細書】