IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クワンタム・マシーンズの特許一覧

特許7249412モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ
<>
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図1
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図2
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図3A
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図3B
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図4
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図5
  • 特許-モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-22
(45)【発行日】2023-03-30
(54)【発明の名称】モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラ
(51)【国際特許分類】
   G06N 10/00 20220101AFI20230323BHJP
   G06F 7/38 20060101ALI20230323BHJP
【FI】
G06N10/00
G06F7/38 510
【請求項の数】 22
(21)【出願番号】P 2021529723
(86)(22)【出願日】2019-10-25
(65)【公表番号】
(43)【公表日】2022-02-24
(86)【国際出願番号】 IB2019001410
(87)【国際公開番号】W WO2020109869
(87)【国際公開日】2020-06-04
【審査請求日】2021-10-18
(31)【優先権主張番号】16/199,981
(32)【優先日】2018-11-26
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/451,683
(32)【優先日】2019-06-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521225948
【氏名又は名称】クワンタム・マシーンズ
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100195408
【弁理士】
【氏名又は名称】武藤 陽子
(72)【発明者】
【氏名】コーエン,ヨナタン
(72)【発明者】
【氏名】オフェク,ニシム
(72)【発明者】
【氏名】シヴァン,イタマール
【審査官】関口 明紀
(56)【参考文献】
【文献】特開2012-188875(JP,A)
【文献】国際公開第2018/055607(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 10/00
G06F 7/38
(57)【特許請求の範囲】
【請求項1】
未加工パルス生成回路、パルス修正回路、および出力管理回路を備える量子コントローラであって、
前記未加工パルス生成回路が、単一の量子アルゴリズムの実行時間中の異なる時刻に、量子プロセッサの複数の要素のうちの異なる要素に対する未加工パルスを生成するように動作可能であり、
前記出力管理回路が、前記量子プロセッサの前記複数の要素におけるいずれの1つ以上の要素に対して、1つ以上の出力パルスが送信されることになるかに基づいて、複数の信号経路の選択された1つ以上に、前記1つ以上の出力パルスをルーティングするように動作可能であり、
前記パルス修正回路が、
前記未加工パルスの処理に使用するために、1つ以上のパルス修正設定を選択し、前記選択は、
前記複数の信号経路におけるいずれが、前記選択された1つ以上の信号経路であるか、および/または、
前記量子プロセッサの前記複数の要素におけるいずれの1つ以上の要素に、前記1つ以上の出力パルスが送信されることになるか、に基づいて行われ、
前記1つ以上の出力パルスを生成するために、前記選択された1つ以上のパルス修正設定を使用して、前記未加工パルスを処理するように動作可能である、
量子コントローラ
を備える、システム。
【請求項2】
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第1のパルス修正設定を使用して生成された第1の出力パルスを含み、
前記1つ以上のパルス修正設定の前記第1のパルス修正設定が、前記第1の出力パルスが伝送されることになる前記1つ以上の信号経路の第1の信号経路に基づいて選択され、
前記1つ以上の出力ルスが、前記1つ以上のパルス修正設定の第2のパルス修正設定を使用して生成された第2の出力パルスを含み、
前記1つ以上のパルス修正設定の前記第2のパルス修正設定が、前記第2の出力ルスが伝送されることになる前記1つ以上の信号経路の第2の信号経路に基づいて選択される、
請求項1に記載のシステム。
【請求項3】
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第1のパルス修正設定を介して生成された第1の出力パルスを含み、
前記つ以上のパルス修正設定における前記第1のパルス修正設定が、前記第1の出力パルスが伝送されることになる前記量子プロセッサの前記複数の要素の第1の要素の特性に基づいて選択され、
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第2のパルス修正設定を介して生成された第2の出力パルスを含み、
前記つ以上のパルス修正設定における前記第2のパルス修正設定が、前記第2の出力パルスが伝送されることになる前記量子プロセッサの前記複数の要素の第2の要素の特性に基づいて選択される、
請求項1に記載のシステム。
【請求項4】
前記1つ以上のパルス修正設定を使用して前記未加工パルスを処理することが、前記未加工パルスと異なる搬送波周波数の出力パルスを生じる、請求項1に記載のシステム。
【請求項5】
前記1つ以上のパルス修正設定を使用して前記未加工パルスを処理することが、前記未加工パルスの基準系に対して回転された前記1つ以上の出力パルスの基準系を生じる、請求項1に記載のシステム。
【請求項6】
前記1つ以上のパルス修正設定を使用して前記未加工パルスを処理することが、前記選択された1つ以上の信号経路によってもたらされたエラーを補償するために、前記未加工パルスの位相、周波数、振幅、および/または形状を調節する、請求項1に記載のシステム。
【請求項7】
前記未加工パルスの処理に使用するための1つ以上のパルス修正設定の前記選択が、前記未加工パルス生成回路から前記パルス修正回路への信号に基づく、請求項1に記載のシステム。
【請求項8】
前記1つ以上の出力パルスのルーティングが、前記未加工パルス生成回路から前記出力管理回路への信号に基づく、請求項1に記載のシステム。
【請求項9】
入力管理回路を備え、前記入力管理回路が、
複数の量子エレメントからの量子エレメント読出し信号を受信し、
前記未加工パルス生成回路の複数の入力の1つ以上に前記量子エレメント読出し信号のそれぞれをルーティングし、前記1つ以上の入力が、前記量子コントローラによる量子計算アルゴリズムの命令の実行中に動的に決定される、ように動作可能な、請求項1に記載のシステム。
【請求項10】
前記パルス修正回路が、
複数のパルス修正設定を格納するように動作可能であり、
前記複数のパルス修正設定におけるいずれが前記未加工パルスに適用されるかが、前記量子コントローラによる量子計算アルゴリズムの命令の実行中に選択可能となるように、動的に構成可能である、
請求項1に記載のシステム。
【請求項11】
前記複数のパルス修正設定の各パルス修正設定が、前記複数の信号経路のそれぞれの信号経路とともに使用するために構成される、請求項10に記載のシステム。
【請求項12】
量子コントローラの未加工パルス生成回路によって、単一の量子アルゴリズムの実行時間中の異なる時刻に、量子プロセッサの複数の要素のうちの異なる要素に対する未加工パルスを生成するステップと、
前記量子プロセッサの前記複数の要素におけるいずれの1つ以上の要素に、1つ以上の出力パルスが送信されることになるかに基づいて、量子コントローラの出力管理回路によって、複数の信号経路から選択された1つ以上に、前記1つ以上の出力パルスをルーティングするステップと、
未加工アウトバウンドパルスの処理に使用するために、前記量子コントローラのパルス修正回路によって、1つ以上のパルス修正設定を選択するステップであって、前記複数の信号経路におけるいずれが、前記選択された1つ以上の信号経路であるかに基づく、ステップと、
1つ以上の出力アウトバウンドパルスを生成するために、前記パルス修正回路によって、前記選択された1つ以上のパルス修正設定を使用して前記未加工アウトバウンドパルスを処理するステップと、
を含む、方法。
【請求項13】
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第1のパルス修正設定を介して生成された第1の出力パルスを含み、
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第2のパルス修正設定を介して生成された第2の出力パルスを含み、
前記方法が、
前記第1の出力パルスが伝送されることになる前記1つ以上の信号経路の第1の信号経路に基づいて、前記パルス修正回路によって、前記1つ以上のパルス修正設定の前記第1のパルス修正設定を選択するステップと、
前記第2の出力パルスが伝送されることになる前記1つ以上の信号経路の第2の信号経路に基づいて、前記パルス修正回路によって、前記1つ以上のパルス修正設定の前記第2のパルス修正設定を選択するステップと
を含む、
請求項12に記載の方法。
【請求項14】
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第1のパルス修正設定を介して生成された第1の出力パルスを含み、
前記1つ以上の出力パルスが、前記1つ以上のパルス修正設定の第2のパルス修正設定を介して生成された第2の出力パルスを含み、
前記方法が、
前記第1の出力パルスが伝送されることになる前記量子プロセッサの前記複数の要素の第1の要素の特性に基づいて、前記パルス修正回路によって、前記つ以上のパルス修正設定における前記第1のパルス修正設定を選択するステップと、
前記第2の出力パルスが伝送されることになる前記量子プロセッサの前記複数の要素の第2の要素の特性に基づいて、前記パルス修正回路によって、前記つ以上のパルス修正設定における前記第2のパルス修正設定を選択するステップと
を含む、
請求項12に記載の方法。
【請求項15】
前記未加工パルスと異なる搬送波周波数の出力パルスを生成するために、前記パルス修正回路によって、前記1つ以上のパルス修正設定を使用して前記未加工パルスを処理するステップを含む、請求項12に記載の方法。
【請求項16】
前記未加工パルスの基準系に対して回転された基準系を有する出力パルスを生成するために、前記パルス修正回路によって、前記1つ以上のパルス修正設定を使用して前記未加工パルスを処理するステップを含む、請求項12に記載の方法。
【請求項17】
前記未加工パルスの位相、周波数、および/または振幅を調節して、前記選択された1つ以上の信号経路によってもたらされたエラーを補償するために、前記パルス修正回路によって、前記1つ以上のパルス修正設定を使用して前記未加工パルスを処理するステップを含む、請求項12に記載の方法。
【請求項18】
前記未加工パルスの処理に使用するために、前記1つ以上のパルス修正設定を選択する前記ステップが、前記未加工パルス生成回路から前記パルス修正回路への信号に基づく、請求項12に記載の方法。
【請求項19】
前記1つ以上の出力パルスをルーティングする前記ステップが、前記未加工パルス生成回路から前記出力管理回路への信号に基づく、請求項12に記載の方法。
【請求項20】
前記量子コントローラの入力管理回路によって、複数の量子エレメントからの量子エレメント読出し信号を受信するステップと、
前記入力管理回路によって、前記未加工パルス生成回路の複数の入力の1つ以上に、前記量子エレメント読出し信号のそれぞれをルーティングするステップであって、前記1つ以上の入力が、前記量子コントローラによる量子計算アルゴリズムの命令の実行中に動的に決定される、ステップと
を含む、請求項12に記載の方法。
【請求項21】
前記パルス修正回路によって、複数のパルス修正設定を格納するステップと、
前記複数のパルス修正設定におけるいずれが、前記未加工パルスに適用されるかを、前記量子コントローラによる量子計算アルゴリズムの命令の実行中に前記パルス修正回路によって選択されるステップと
を含む、請求項12に記載の方法。
【請求項22】
前記複数のパルス修正設定の各パルス修正設定が、前記複数の信号経路のそれぞれの信号経路とともに使用されるように構成される、請求項20に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001]本出願の態様は、量子コンピュータ制御システムに関する。より詳細には、動的なパルスルーティングを行う量子コントローラについての方法およびシステムに関する。
【背景技術】
【0002】
[0002]図面を参照しながら本開示の残りに示された本方法およびシステムのいくつかの態様と従来のアプローチとを比較することによって、量子コンピュータ制御システムへの従来のアプローチの限界および短所が当業者に明らかになるであろう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
[0003]特許請求の範囲に、より完全に示したように、実質的に図の少なくとも1つによって示される、および/または図の少なくとも1つとともに説明されるような、モジュラー式で動的なパルス生成およびルーティングを行う量子コントローラのための方法およびシステムを提供する。
【図面の簡単な説明】
【0004】
図1図1Aは、伝統的な(バイナリ)計算および量子計算のいくつかの態様を比較する図である。図1Bは、伝統的な(バイナリ)計算および量子計算のいくつかの態様を比較する図である。
図2】実例の量子計算システムを示す図である。
図3A】本開示の様々な実例の実装形態による実例の量子コントローラアーキテクチャを示す図である。
図3B図3Aの量子コントローラ回路の実例の実装形態を示す図である。
図4図3Bのパルサーの実例の実装形態を示す図である。
図5図3Bのパルス動作マネージャおよびパルス動作回路の実例の実装形態を示す図である。
図6】本開示の実例の実装形態による量子コントローラの実例の動作を示す流れ図である。
【発明を実施するための形態】
【0005】
[0011]伝統的なコンピュータは、バイナリディジット(「ビット」)の形で情報を格納し、バイナリ論理ゲートを介してこれらのビットを処理することによって動作する。いつでも、各ビットは、0(すなわち「オフ」)および1(すなわち「オン」)という、2つの離散値のうちのただ1つをとる。バイナリ論理ゲートによって実施される論理演算は、ブール代数によって定義され、回路動作は、伝統的な物理学に支配される。現代の伝統的なシステムでは、ビットを格納し、論理演算を実現するための回路は、通常、ビットの0と1を表す2つの異なる電圧を搬送することができる電気ワイヤ、および、ブール論理演算を実施するトランジスタベースの論理ゲートから作られる。
【0006】
[0012]ビット102を格納し、単一の論理演算104をビット102に適用するように構成された伝統的なコンピュータの簡単な例が、図1Aに示されている。時刻t0において、ビット102は、第1の状態にあり、時刻t1において、論理演算104がビット102に適用され、時刻t2において、ビット102は、時刻t0における状態と論理演算とによって決定される第2の状態にある。したがって、例えば、ビット102は、典型的には、(1つ以上のトランジスタで構成される)論理演算104の入力に印加される電圧(例えば、「1」に対して1Vdc、または「0」に対して0Vdc)として格納されてもよい。論理ゲートの出力は、したがって、実施される論理演算に応じて、1Vdcまたは0Vdcである。
【0007】
[0013]明らかに、単一ビットおよび単一論理ゲートを用いる伝統的なコンピュータには限られた効果しかなく、これは、大きくない計算パワーを伴うことさえある現代の伝統的なコンピュータが、何十億ものビットおよびトランジスタを収める理由である。つまり、次第に複雑化する問題を解くことができる伝統的なコンピュータは、アルゴリズムを実行するために、ますます多数のビットおよびトランジスタ、ならびに/または、ますます大量の時間を必然的に必要とする。それでも、解決策に到達するために、実行不可能なくらい多数のトランジスタ、および/または、実行不可能なくらい大量の時間を必要とするいくつかの問題がある。このような問題は、イントラクタブルと呼ばれる。
【0008】
[0014]量子コンピュータは、量子ビット(「キュービット」)の形で情報を格納し、量子ゲートを介してこれらのキュービットを処理することによって動作する。いつでも1つの状態(0または1)でしかあり得ないビットと異なり、キュービットは、同時に2つの状態の重ね合わせになることができる。より正確には、量子ビットは、状態が2次元のヒルベルト空間内に存続する系であり、したがって、線形結合α|0〉+β|1〉と記述され、ここで、|0〉および|1〉は、2つの基礎状態であり、αおよびβは、|α|+|β|=1を満たす、通常、確率振幅と呼ばれる複素数である。この表記法を使用すると、キュービットが測定されるとき、キュービットは、確率|α|で0になり、確率|β|で1になる。|0〉および|1〉は、2次元の基底ベクトル
【数1】
および
【数2】
でそれぞれ表すことができ、したがって、キュービット状態は、
【数3】
で表される。量子ゲートによって実施される演算は、ヒルベルト空間上の線形代数で定義され、回路動作は、量子物理学に支配される。キュービットの数学的動作およびキュービットに対する演算のこのさらなる重要性により、量子コンピュータは、伝統的なコンピュータよりずっと速く、いくつかの問題を解くことができる(実際に、伝統的なコンピュータにとってイントラクタブルな問題の中には、量子コンピュータにとって平凡になり得るものもある)。
【0009】
[0015]キュービット122を格納し、単一の量子ゲート演算124をキュービット122に適用するように構成された量子コンピュータの簡単な例が、図1Bに示されている。時刻t0において、キュービット122は、α|0〉+β|1〉で記述され、時刻t1において、論理演算104がキュービット122に適用され、時刻t2において、キュービット122は、α|0〉+β|1〉で記述される。
【0010】
[0016]伝統的なビットと異なり、キュービットは、ワイヤ上の単一の電圧値として格納することができない。代わりに、キュービットは、2準位の量子力学系を使用して物理的に実現される。キュービットの多くの物理的実装形態が、何年にもわたって提案され、開発されてきており、中には有望なものもある。キュービット実装形態を導く例の中には、超電導回路、スピンキュービット、およびトラップイオン(trapped ion)を含むものもある。
【0011】
[0017]所望の論理演算を実施する(およびしたがって、所望の量子アルゴリズムを実行する)ために、精密な一連の外部信号、つまり通常、電磁波のパルスおよびベースバンド電圧のパルスを生成することが、量子コントローラの仕事である。量子コントローラの実例の実装形態が、下記でさらに詳細に記述される。
【0012】
[0018]図2は、実例の量子計算システムを示す。システムは、量子プログラミングサブシステム202、量子コントローラ210、および量子プロセッサ218を備える。
【0013】
[0019]量子プログラミングサブシステム202は、アルゴリズムの実行時間中に人の介入がほとんどないか全くない、量子プロセッサ218上で量子アルゴリズムを実行する(すなわち、必要なアウトバウンド量子パルス213を生成する)ために、量子コントローラ210が実行することができる量子アルゴリズム記述206を生成するように動作可能な回路を備える。実例の実装形態では、量子プログラミングシステム202は、ユーザがプログラミング言語を使用して量子アルゴリズム記述206を生成することを可能にする量子コントローラソフトウェア開発キット(SDK)をインストールしたパーソナルコンピュータである。実例の実装形態では、プログラミング言語は、量子コントローラ210の特定のハードウェアによって使用される命令セットからの抽象化がほとんどないか全くない低水準言語であってもよい。このような命令は、コンパイラまたはインタープリタを必要とすることなく、量子コントローラ210の機械語にコンバートすることができる。実例の実装形態では、プログラミング言語は、量子コントローラ210の特定のハードウェアからより一層抽象化された高水準言語であってもよい。このような命令は、量子コントローラ210上で命令を動かせるようになる前に、機械語にコンパイルすることができる。実例の実装形態では、記述206は、量子アルゴリズムの機械語記述であってもよい。実例の実装形態では、記述206は、量子コントローラ210がそれ自体で機械語にコンパイルすることができる高水準記述であってもよい。実例の実装形態では、記述206は、実行時間中に量子コントローラ210が機械語に翻訳できる高水準記述であってもよい。実例の実装形態では、オペレーティングシステムまたは他のソフトウェア層が、量子コントローラ210上で動くことができ、量子アルゴリズム記述206は、量子コントローラ210上で動くソフトウェアのアプリケーションプログラミングインターフェース(API)を使用するソフトウェア命令であってもよい。
【0014】
[0020]量子プログラミングサブシステム202は、例えば、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインターコネクト(PCIe)バス、有線もしくはワイヤレスイーサネット、または他の任意の適切な通信プロトコルを利用することができる相互接続204を介して、量子コントローラ210に連結される。
【0015】
[0021]量子コントローラ210は、量子アルゴリズム記述206をロードし、その後、量子アルゴリズム記述206の通りに量子アルゴリズムを実施するように動作可能な回路を備える。実例の実装形態では、量子アルゴリズム記述206は、量子コントローラ210にロードされる機械語(すなわち、量子コントローラのハードウェアが直接翻訳し実行することができる命令を表す一連のバイナリベクトル)である。次に、量子コントローラ210によって機械語を実行することにより、量子コントローラ210は、量子プロセッサ218上で実施されることになる所望の演算に対応する必要なアウトバウンドパルス213を生成する(例えば、キュービットの状態を操作するためのキュービットに送信する、または、キュービットの状態を読み取るために読出し共振器に送信する、等)。実施されることになる量子アルゴリズムに応じて、アルゴリズムを実行するためのアウトバウンドパルス213は、設計時に予め決定することができ、および/または、実行時間中に決定されなければならないこともある。パルスの実行時間決定は、アルゴリズムの実行時間中の、量子コントローラ210および/または量子プログラミングサブシステム202における伝統的な計算および処理の実施を含むことができる(例えば、量子プロセッサ218から受信したインバウンドパルス215の実行時間分析)。
【0016】
[0022]量子コントローラ210による量子アルゴリズムの完了時、および/または、量子アルゴリズムの実行時間中、量子コントローラ210は、量子プログラミングサブシステム202にデータ/結果298を出力することができる。実例の実装形態では、これらの結果は、量子アルゴリズムのその後の実行のために新しい量子アルゴリズム記述206を生成するため、および/または、実行時間中に量子アルゴリズム記述を更新するために使用されてもよい。
【0017】
[0023]量子コントローラ210は、例えば、1つ以上の導体および/または光ファイバを備えることができる相互接続212を介して量子プロセッサ218に連結される。
【0018】
[0024]量子プロセッサ218は、(超電導、スピンキュービット、イオントラップ等などの任意のタイプのものであることが可能な)キュービットを含むK個(整数)の量子エレメント122、ならびに、適用可能であれば、量子情報を処理するため、量子情報を格納するため(例えば、ストレージ共振器)、および/または、相互接続212と量子エレメント122との間のアウトバウンド量子パルス213と215を連結するため(例えば、読出し共振器)の他の任意のエレメント、を備える。量子プロセッサが読出し共振器(または他の読出し回路)を備える実例の実装形態では、Kは、読出し回路の数を加えたキュービットの総数に等しくてもよい。すなわち、量子プロセッサ218のQ個(整数)のキュービットのそれぞれが、専用読出し回路に関連付けられる場合、Kは、2Qに等しくてもよい。記述を容易にするために、本開示の残りは、このような実装形態を仮定することになるが、全ての実装形態でいつもこうである必要はない。量子プロセッサ218の他のエレメントは、例えば、流線(電流を搬送するための電子線)、ゲート電極(電圧をゲートするための電極)、電流/電圧線、増幅器、量子プロセッサ218のチップ上にある伝統的な論理回路、および/または同様のものを含むことができる。
【0019】
[0025]図3Aは、本開示の様々な実例の実装形態による実例の量子コントローラアーキテクチャを示す。量子コントローラ210は、L個(整数≧1)のパルサー回路302~302L-1および共有回路310を備える。
【0020】
[0026]図示された実例の実装形態では、各パルサー回路302(lは0からL-1までの整数)は、信号経路(パス)304、306、および308で情報を交換するための回路を備え、ここで、信号経路308は、パルサー回路302によって生成されたアウトバウンドパルス(例えば、図2の213)を搬送し(アウトバウンドパルスは、1つもしくは複数のキュービットの状態を操作するために量子プロセッサ128に送信される制御パルス、および/または、1つもしくは複数のキュービットの状態を読み出すための読出しパルスであってもよい)、信号経路306は、パルサー回路302によって処理されることになるインバウンド量子エレメント読出しパルス(例えば、図2の215)を搬送し、信号経路304は、制御情報を搬送する。各信号経路は、1つ以上の導体、光チャネル、および/またはワイヤレスチャネルを備えることができる。
【0021】
[0027]各パルサー回路302は、量子プロセッサ218上で実施されることになる量子制御動作に応じて信号経路308上のアウトバウンドパルスを生成するように動作可能な回路を備える。これは、アウトバウンドパルスの位相、周波数、振幅、およびタイミングなどの特性を非常に正確に制御することを伴う。任意の特定の時間に生成されるアウトバウンドパルスの特性は、事前に(共有回路310および信号経路306を介して)量子プロセッサ218から受信したインバウンドパルスに従って少なくとも部分的に決定されてもよい。実例の実装形態では、フィードバックループを閉じるのに必要な時間(すなわち、(例えば、経路のアナログデジタルコンバータにおいて)経路315~315の1つ以上で第1のパルスを受信してから、(例えば、経路のデジタルアナログコンバータの出力において)経路313~313L-1の1つ以上で第2のパルスを送信するまでの時間、ここで、第2のパルスは、第1のパルスに基づく)は、量子プロセッサ218のキュービットのコヒーレンス時間より著しく小さい。例えば、フィードバックループを閉じるまでの時間は、およそ100ナノ秒であることもある。図3Aの各信号経路は、実際には、直角位相(phase-quadrature)(「I」および「Q」)パルスペアの生成をサポートするための信号経路のペアであってもよいことに留意されたい。
【0022】
[0028]図示された実例の実装形態では、共有回路310は、信号経路304~304L-1、306~306L-1、および308~308L-1でパルサー回路302~302L-1と情報を交換するための回路を備え、ここで、各信号経路308は、パルサー回路302によって生成されたアウトバウンドパルスを搬送し、各信号経路306は、パルサー回路302によって処理されることになるインバウンドパルスを搬送し、各信号経路304は、フラグ/ステータス信号、メモリから読み込んだデータ、メモリに格納されることになるデータ、量子プログラミングサブシステム202との間でストリームされたデータ、および、2つ以上のパルサー302~302の間で交換されることになるデータなどの制御情報を搬送する。同様に、図示された例では、共有回路310は、信号経路315~315M-1および313~313K-1で量子プロセッサ218と情報を交換するための回路を備え、ここで、各信号経路315(mは、0からM-1までの整数)は、量子プロセッサ218からのインバウンドパルスを搬送し、各信号経路313(kは、0からK-1までの整数)は、量子プロセッサ218へのアウトバウンドパルスを搬送する。さらに、図示された例では、共有回路310は、信号経路311で量子プログラミングサブシステムと情報を交換するための回路を備える。共有回路310は、(例えば、同じフィールドプログラマブルゲートアレイ、または特定用途向け集積回路、またはプリント回路基板上で)量子コントローラと統合されるか、(例えば、1つ以上のケーブルを介して量子コントローラに接続された別個のFPGA、ASIC、またはPCB上、バックプレーン上、量子プロセッサ218に接続された他のデバイス内、等といった)量子コントローラの外部にあるか、量子コントローラと部分的に統合され、部分的に量子コントローラの外部にあってもよい。
【0023】
[0029]様々な実装形態では、Mは、Lより小さくても、Lに等しくても、またはLより大きくてもよく、Kは、Lより小さくても、Lに等しくても、またはLより大きくてもよく、Mは、Kより小さくても、Kに等しくても、またはKより大きくてもよい。例えば、いくつかの量子アルゴリズムの性質は、K個全ての量子エレメントが同時に駆動される必要はないというようなものである。このようなアルゴリズムについて、Lは、Kより小さくてもよく、L個のパルサー302の1つ以上は、K個の量子エレメント回路の複数の間で共有されてもよい。すなわち、任意のパルサー302は、異なる時刻に異なる量子エレメントに対するパルスを生成することができる。パルサー302が異なる時刻に異なる量子エレメントに対するパルスをこのように生成できることは、所与の数の量子エレメントをサポートするのに必要なパルサー302~302L-1の必要な数を減らすこと(すなわち、Lを減らすこと)ができる(したがって、より大きい数のキュービットにスケーリングするときにかなりのリソース、コスト、サイズ、オーバヘッドを節約する、等)。
【0024】
[0030]パルサー302が異なる時刻に異なる量子エレメントに対するパルスをこのように生成できることは、レイテンシを減らすこともできる。ほんの1つの例として、時刻T1に量子エレメント122にパルスを送信しなければならないが、パルスが第1のタイプのものであるべきか、第2のタイプのものであるべきか(例えば、Xパルスであるか、アダマールパルスであるか)を、時刻T1-DT(すなわち、パルスが出力されることになる前のDT時間間隔)におけるインバウンド読出しパルスの処理後まで決定できない量子アルゴリズムを仮定する。量子プロセッサ218の量子エレメントにパルサー302~302L-1を固定的に割り当てた場合(すなわち、302は、量子エレメント122にパルスを送信することしかできず、302は、量子エレメント122にパルスを送信することしかできない、など)、パルサー302は、どのタイプであるべきかを決定するまで、パルスの生成を開始できない可能性がある。描写された実例の実装形態では、その一方で、パルサー302は、第1のタイプのパルスの生成を開始することができ、パルサー302は、第2のタイプのパルスの生成を開始することができ、その後、必要なタイプが決定されるとすぐ、2つのパルスのどちらかを解放することができる。このように、パルスを生成するまでの時間はTlatであり、この例では、実例の量子コントローラ210は、Tlatだけパルス出力のレイテンシを減らすことができる。
【0025】
[0031]共有回路310は、このように、信号経路308~308L-1および/または315~315M-1のいずれか1つ以上を介してパルスを受信し、量子アルゴリズムを実行するために、受信したパルスを必要に応じて処理し、その後、信号経路306~306L-1および/または313~313K-1のいずれか1つ以上を介して、結果として生じる処理されたパルスを出力するように動作可能である。パルスの処理は、デジタルドメインおよび/またはアナログドメインで行うことができる。処理は、例えば、周波数変換/変調、位相変換/変調、周波数および/もしくは時分割多重化、時間および/もしくは周波数分割逆多重化、増幅、減衰、周波数ドメインおよび/もしくは時間ドメインにおけるフィルタリング、時間から周波数へのドメインコンバージョンもしくは周波数から時間へのドメインコンバージョン、アップサンプリング、ダウンサンプリング、ならびに/または他の任意の信号処理動作を含むことができる。いつでも、どの信号経路から1つ以上のパルスを受信するべきかについての決定、および、どの信号経路でパルスを出力すべきかついての決定は、量子アルゴリズム記述で(少なくとも部分的に)予め決定されても、および/または、インバウンドパルスの処理を含むことができる実行時間中に実施される伝統的なプログラム/計算に基づいて、量子アルゴリズムの実行時間中に(少なくとも部分的に)動的に決定されてもよい。予め決定されたパルス生成およびルーティングの例として、量子アルゴリズム記述は、所定の特性を有する特定のパルスが、所定の時間に信号経路313に送信されるべきであることを単純に指定することができる。動的なパルス決定およびルーティングの例として、量子アルゴリズム記述は、時刻T-DTにおける読出しパルスが分析されるべきであり、その特性(例えば、位相、周波数、および/または振幅)が、時刻Tにおいてパルサー302が、第1の量子エレメントまたは第2の量子エレメントにパルスを出力するべきかどうかを決定するために使用されるべきであることを指定することができる。量子コントローラ210の様々な実装形態では、共有回路310は、上記で説明されたものの代わりに、および/または上記で説明されたものに加えて、他の様々な機能を実施することができる。一般に、共有回路310は、個々のパルサー回路302~302L-1の外部で実施されることが望ましい機能を実施することができる。例えば、機能は、302~302L-1からのいくつかのパルサー回路によって同じ機能が必要とされ、したがって、各パルサー回路の内部で冗長的に実行されるのではなく、これらのパルサー回路の間で共有されてもよい場合、共有回路310で実行することが望ましいこともある。別の例として、機能は、全てのパルサー回路302~302L-1によって同時におよび/または同じ周波数で機能が必要とされず、したがって、機能を実行するためにL個未満の回路が、時間および/または周波数分割多重化を通じてL個のパルサー回路302~302L-1の間で共有されてもよい場合、共有回路310で実行することが望ましいこともある。別の例として、機能は、L個のパルサー回路302~302L-1の複数、または他の回路の入力、出力、および/または状態に基づいて決定することを機能が伴う場合、共有回路310で実行することが望ましいこともある。共有回路310における集中型の調整器(coordinator)/意思決定器(decision maker)を利用することには、(1)パルサー回路302~302L-1のピン配列および複雑性の低減、ならびに/または、(2)意思決定レイテンシの低減、という利益があり得る。それでも、いくつかの実装形態では、複数のパルサー回路302~302L-1に影響を及ぼす決定は、許容できる数のピン/トレース上で、適切な時間フレーム内で(例えば、キュービットコヒーレンス時間内にフィードバックループを閉じることができるまで)、決定を行うのに必要な情報をパルサー回路の間で通信できる場合、パルサー回路302~302L-1の1つ以上によって行われてもよい。
【0026】
[0033]図3Bは、図2の量子コントローラの実例の実装形態を示す。図示された実例の量子コントローラは、パルサー302~302L-1、受信アナログフロントエンド350、入力マネージャ352、デジタルマネージャ354、パルス動作マネージャ356、パルス動作358、出力マネージャ360、伝送アナログフロントエンド362、データ交換364、同期マネージャ366、および入出力マネージャ368を備える。パルサー回路302~302L-1以外の図3Bに描写された回路は、図3Aの共有回路310の実例の実装形態に対応する。
【0027】
[0034]受信アナログフロントエンド350は、1つ以上の信号経路を介して入力マネージャ352に出力されることになるM個までの同時のインバウンド信号(RP~RPM-1)を生成するために、信号経路315~315M-1を介して受信したM個(整数≧1)までのアナログインバウンド信号(RP’~RP’M-1)を同時に処理するように動作可能な回路を備える。M個の信号RPおよびM個の信号RP’と示されているが、いつもこうである必要はない。このような処理は、例えば、アナログデジタルコンバージョン、フィルタリング、アップコンバージョン、ダウンコンバージョン、増幅、減衰、時分割多重化/逆多重化、周波数分割多重化/逆多重化、および/または同様のものを含むことができる。様々な実装形態では、Mは、Lより小さくても、Lに等しくても、またはLより大きくてもよく、Mは、Kより小さくても、Kに等しくても、またはKより大きくてもよい。
【0028】
[0035]入力マネージャ352は、(信号AI~AIL-1として)パルサー302~302L-1の任意の1つもしくは複数に、および/または、(例えば、I/Oマネージャ368への信号io_mgrとして)他の回路に、信号(RP~RPM-1)の任意の1つ以上をルーティングするように動作可能な回路を備える。実例の実装形態では、入力マネージャ352は、どの信号RP~RPM-1が、どのパルサー302~302L-1にルーティングされるかを動的に再構成するための、1つ以上のスイッチネットワーク、多重化装置、および/または同様のものを備える。これは、信号RP~RPM-1の複数を単一の信号AIに時分割多重化すること、および/または、信号RPの成分(例えば、時間スライス)を信号AI~AIL-1の複数に時間分割逆多重化すること、を可能にすることができる。実例の実装形態では、入力マネージャ352は、信号RP~RPM-1の複数を単一の信号AIに周波数分割多重化するための、および/または、信号RPの成分(例えば、周波数帯域)を信号AI~AIL-1の複数に周波数分割逆多重化するための、1つ以上のミキサおよび/またはフィルタを備える。入力マネージャ352によって実施される信号ルーティングおよび多重化/逆多重化機能は、特定のパルサー302が異なる量子エレメントからの異なるインバウンドパルスを異なる時刻に処理すること、特定のパルサー302が異なる量子エレメントからの異なるインバウンドパルスを同時に処理すること、および、パルサー302~302L-1の複数が同じインバウンドパルスを同時に処理すること、を可能にする。図示された実例の実装形態では、パルサー302~302L-1の入力の中から信号RP~RPM-1をルーティングすることは、パルサー302~302L-1からのデジタル制御信号in_slct~in_slctL-1によって制御される。別の実装形態では、入力マネージャは、適切なルーティングを自律的に決定するように動作可能であってもよい(例えば、ここで、量子アルゴリズム記述は、入力マネージャ352のメモリにロードされ、入力マネージャによって実行される命令を含む)。実例の実装形態では、入力マネージャ352は、量子プログラミングサブシステム202に送信されることになる、入力信号RP~RPM-1をI/Oマネージャ368に(信号io_mgrとして)ルーティングするように動作可能である。このルーティングは、例えば、デジタルマネージャ352からの信号で制御されてもよい。実例の実装形態では、各入力信号RPについて、入力マネージャ352からI/Oマネージャ368に、および、I/Oマネージャ368から量子プログラミングサブシステム202に、RPが送信されるかどうかを制御する、デジタルマネージャ354から入力マネージャ352へのデジタル信号streamがある。
【0029】
[0036]パルサー302~302L-1のそれぞれは、図3Aを参照しながら上記で説明されたようなものである。図示された実例の実装形態では、各パルサー302は、未加工アウトバウンドパルスCP’(「未加工」は、パルス動作回路358によってパルスがまだ処理されていないことを単に示すために使用される)、および、量子プロセッサ218上で量子アルゴリズムを実行するためのデジタル制御信号in_slct、D_port、D、out_slct、ops_ctrl、ops_slct、IF、F、およびdmod_sclt、ならびに、パルサー302によって生成された中間結果および/または最終結果を量子プログラミングサブシステム202に搬送するためのresults、を生成するように動作可能である。パルサー302~302L-1の1つ以上は、図の明瞭さのために図3Aに示されていないさらなる信号を受信および/または生成することができる。未加工アウトバウンドパルスCP’~CP’L-1は、信号経路308~308L-1を介して伝えられ、デジタル制御信号は、信号経路304~304L-1を介して伝えられる。パルサー302のそれぞれは、インバウンドパルス信号AIおよび信号f_dmodを受信するように動作可能である。パルサー302は、量子プロセッサ218で、インバウンド信号AIを処理して一定の量子エレメントの状態を決定し、この状態情報を使用して、例えば、どの未加工アウトバウンドパルスCP’を次に生成するべきか、いつこれを生成するべきか、および、この未加工アウトバウンドパルスの特性に適切に影響を及ぼすためにどの制御信号を生成するべきかなどの決定を行うことができる。パルサー302は、信号f_dmodを使用して、インバウンドパルス信号AIをどのように処理するかを決定することができる。例として、パルス生成器302が量子エレメント122からのインバウンド信号AIを処理しなければならないとき、パルス生成器302は、量子エレメント122からのインバウンド信号AIの復調のために使用されることになる設定を、パルス動作マネージャ356にf_dmodで送信するように指示するmod_sclt信号を送信することができる(例えば、パルス動作マネージャ356は、値cos(ω×time_stamp+φ)を送信することができ、ここで、ωは、量子エレメント122の周波数であり、time_stampは、例えば、量子アルゴリズムが動き始めた時間といった基準点から経過した時間であり、φは、量子エレメント122の総フレーム回転の位相、すなわち、基準点からの全てのフレーム回転の集積された位相である)。
【0030】
[0037]パルス動作回路358は、対応する出力アウトバウンドパルスCP~CPL-1を生成するために、未加工アウトバウンドパルスCP’~CP’L-1を処理するように動作可能である。これは、例えば、未加工パルスCP’の振幅、位相、および/または周波数を操作することを含むことができる。パルス動作回路358は、パルサー302~302L-1からの未加工アウトバウンドパルスCP’~CP’L-1、パルス動作マネージャ356からの制御信号ops_cnfg~ops_cnfgL-1、およびパルサー302~302L-1からのops_ctrl~ops_ctrlL-1を受信する。
【0031】
[0038]制御信号ops_cnfgは、パルス動作回路358を通過する各未加工アウトバウンドパルスCP’が、この特定のパルスに合わされた1つ以上の動作をパルス動作回路358上で実施するように、パルス動作回路358を少なくとも部分的に構成する。図示のために、時刻T1におけるパルサー302からの未加工アウトバウンドパルスをCP’3,T1と表すと、時刻T1において(または、レイテンシ、回路セットアップ等を可能にするためにT1の前のあるとき)、(この例のためにops_cnfg3,T1と表された)デジタル制御信号ops_cnfgは、パルスCP’3,T1上でどの特定の動作が実施されるべきかについての情報を(例えば、下記に記述されるような、1つ以上の行列の形で)提供する。同様に、ops_cnfg4,T1は、パルスCP’4,T1上でどの特定の動作が実施されるべきかについての情報を提供し、ops_cnfg3,T2は、パルスCP’4,T1上でどの特定の動作が実施されるべきかについての情報を提供する。
【0032】
[0039]制御信号ops_ctrlは、任意の特定のパルスがパルス動作回路358でどのように処理されるかをパルサー302が構成するための別の方法を提供する。これは、例えば、パルス動作マネージャ356を通過する必要のない情報をパルス動作回路358にパルサー302が提供することを可能にすることができる。例えば、パルサー302は、パルスCP’を修正するためにパルス動作回路358によって使用されることになる、パルサー302によってリアルタイムに計算された行列値を送信することができる。これらの行列値は、パルス動作回路358にパルサー302から直接到着するが、パルス動作マネージャに最初に送信される必要はない。別の例では、場合によっては、パルサー302は、動作自体に影響を及ぼすために、パルス動作回路358に情報を提供する(例えば、信号ops_ctrlは、パルス上で実施することができるいくつかの異なる数学演算の中から選ぶことができる)。
【0033】
[0040]パルス動作マネージャ356は、各未加工アウトバウンドパルスCP’に適用されたパルス動作が、この特定の未加工アウトバウンドパルスに合わされるように、パルス動作回路358を構成するように動作可能な回路を備える。図示のために、第1の時間間隔T1の中で出力されることになる第1の未加工アウトバウンドパルスをCP’l,T1として、および、第2の時間間隔T2の中で出力されることになる第2の未加工アウトバウンドパルスをCP’l,T2として表すと、パルス動作回路358は、第1の1つ以上の動作をCP’l,T1上で、および第2の1つ以上の動作をCP’1,T2上で実施するように動作可能である。第1の1つ以上の動作は、パルスCP1,T1がどの量子エレメントに送信されるべきかに基づいて、少なくとも部分的に決定されてもよく、第2の1つ以上の動作は、パルスCP1,T2がどの量子エレメントに送信されるべきかに基づいて、少なくとも部分的に決定されてもよい。第1の1つ以上の動作および第2の1つ以上の動作の決定は、実行時間中に動的に決定されてもよい。
【0034】
[0041]伝送アナログフロントエンド362は、量子プロセッサ218に出力されることになるK個までの同時のアナログ信号AOを生成するために、K個までのデジタル信号DOを同時に処理するように動作可能な回路を備える。このような処理は、例えば、デジタルアナログコンバージョン、フィルタリング、アップコンバージョン、ダウンコンバージョン、増幅、減衰、時分割多重化/逆多重化、周波数分割多重化/逆多重化、および/または同様のものを含むことができる。実例の実装形態では、1つ以上の信号経路313~313K-1図3A)のそれぞれは、Txアナログフロントエンド回路362のそれぞれの部分、および、Txアナログフロントエンド回路362と量子プロセッサ218との間の相互接続212(図2)のそれぞれの部分を表す。本明細書で説明される実例の実装形態では、DO信号の数とAO信号の数との間に1対1の対応関係があるが、いつもこうである必要はない。別の実例の実装形態では、アナログフロントエンド362は、より多くの(または、より少ない)信号DOを、より少ない(または、より多くの)信号AOにマッピングするように動作可能である。
【0035】
[0042]出力マネージャ360は、信号経路313~313K-1のいずれか1つ以上に、信号CP~CPL-1のいずれか1つ以上をルーティングするように動作可能な回路を備える。ほんの1つの可能な例として、信号経路313は、AOを出力するアナログフロントエンド362(例えば、第1のミキサおよびDAC)と、信号AOを搬送する相互接続212のトレース/ワイヤとを通る第1の経路を含むことができ、信号経路313は、AOを出力するアナログフロントエンド362(例えば、第2のミキサおよびDAC)と、信号AOを搬送する相互接続212のトレース/ワイヤとを通る第2の経路を含むことができる、などである。実例の実装形態では、出力マネージャ360は、どの1つ以上の信号CP~CPL-1がどの信号経路313~313K-1にルーティングされるかを動的に再構成するための、1つ以上のスイッチネットワーク、多重化装置、および/または同様のものを備える。これは、信号CP~CPL-1の複数を単一の信号経路313に時分割多重化すること、および/または、信号CPの成分(例えば、時間スライス)を信号経路313~313K-1の複数に時間分割逆多重化すること、を可能にすることができる。実例の実装形態では、出力マネージャ360は、信号CP~CPM-1の複数を単一の信号経路313に周波数分割多重化するため、および/または、信号CPの成分(例えば、周波数帯域)を信号経路313~313K-1の複数に周波数分割逆多重化するための、1つ以上のミキサおよび/またはフィルタを備える。出力マネージャ360によって実施される信号ルーティングおよび多重化/逆多重機化能は、信号経路313~313K-1の異なる1つに特定のパルサー302からのアウトバウンドパルスを異なる時刻にルーティングすること、信号経路313~313K-1の複数に特定のパルサー302からのアウトバウンドパルスを同時にルーティングすること、および、パルサー302~302L-1の複数が同じ信号経路313へのパルスを同時に生成することを可能にする。図示された実例の実装形態では、信号経路313~313K-1の間の信号CP~CPL-1のルーティングは、パルサー302~302L-1からのデジタル制御信号out_slct~out_slctL-1で制御される。別の実装形態では、出力マネージャ360は、適切なルーティングを自律的に決定するように動作可能であってもよい(例えば、量子アルゴリズム記述は、出力マネージャ362のメモリにロードされ、出力マネージャ362によって実行されることになる命令を含む場合)。
【0036】
[0043]デジタルマネージャ354は、量子コントローラ210の様々な回路、および/または、量子コントローラ210に連結された外部回路への、デジタル制御信号(DigCtrl~DigCtrlJ-1)を処理および/またはルーティングするように動作可能な回路を備える。図示された実例の実装形態では、デジタルマネージャは、デジタルマネージャ354によって処理され、ルーティングされることになるデジタル信号D、および、デジタルマネージャ354のどの出力ポートに信号Dがルーティングされるべきかを示す制御信号D_portを、(例えば、信号経路304~304N-1の1つ以上を介して)各パルサー302から受信する。デジタル制御信号は、例えば、図3Bに示されている回路の任意の1つもしくは複数、量子プロセッサ218からの出力AO~AOK-1を接続および切断するスイッチ/ゲート、マイクロ波ミキサおよび増幅器などの量子コントローラ210に連結された外部回路、ならびに/または、パルサー回路302~302L-1からのリアルタイム情報について利益を得ることができる他の任意の回路にルーティングされてもよい。デジタル信号の各このような宛先は、(遅延、広がり、または、所与のデジタルパターンを伴うデジタル畳込みなど)デジタル信号に対して実施されることになる種々の動作を要求することもある。これらの動作は、デジタルマネージャ354によって実施されてもよく、パルサー302~302L-1からの制御信号で指定されてもよい。これにより、各パルサー302は、種々の宛先へのデジタル信号を生成することができ、パルス生成器302~302L-1の種々のパルサーは、リソースを節約しつつ同じ宛先へのデジタル信号を生成することができる。
【0037】
[0044]同期マネージャ366は、図3Bに示されている様々な回路の同期を管理するように動作可能な回路を備える。このような同期は、パルサー302~302L-1の種々のパルサーが、種々の量子エレメントとの間のパルスを異なる時刻に生成、受信、および処理する、量子コントローラ210などのモジュール式で動的なシステムで有利である。例えば、量子アルゴリズムを実行しつつ、第1のパルサー回路302および第2のパルサー回路302は、時には、正確に同じ時間にパルスを伝送しなければならないが、普段は、互いに独立してパルスを伝送することができる。図示された実例の実装形態では、同期マネージャ366は、このような同期の実施時に伴うオーバヘッドを低減させる。
【0038】
[0045]データ交換回路364は、図3Bに示されている様々な回路の間のデータの交換を管理するように動作可能である。例えば、量子アルゴリズムを実行しつつ、第1のパルサー回路302および第2のパルサー回路302は、時には、情報を交換しなければならないこともある。ほんの1つの例として、パルサー302は、AIの特性に基づいて、未加工アウトバウンドパルスCP’をパルサー302が生成できるように、処理したばかりのインバウンド信号AIの特性をパルサー302と共有しなければならないこともある。データ交換回路364は、このような情報交換を可能にすることができる。実例の実装形態では、データ交換回路364は、パルサー302~302L-1が読み書きできる1つ以上のレジスタを備えることができる。
【0039】
[0046]I/Oマネージャ368は、量子コントローラ210と量子プログラミングサブシステム202との間で情報をルーティングするように動作可能である。
【0040】
[0047]図4は、図3Bの未加工パルサーの実例の実装形態を示す。図示された実例のパルサー302は、命令メモリ402、パルステンプレートメモリ404、デジタルパターンメモリ406、制御回路408、ならびに、計算および/または信号処理回路(CSP:compute and/or signal processing circuitry)410を備える。
【0041】
[0048]メモリ402、404、406は、任意のタイプの適切な記憶素子(例えば、DRAM、SRAM、フラッシュ等)の1つ以上を含むことができる。メモリ402に格納された命令は、量子アルゴリズムにおけるその役割を実行するためにパルサー302によって実行されることになる命令である。異なるパルサー302~302L-1には、任意の特定の量子アルゴリズムで演じることになる異なる役割(例えば、異なるパルスを異なる時刻に生成すること)があるので、各パルサー302のための命令メモリ402は、そのパルサーに固有のものであってもよい。例えば、量子プログラミングサブシステム202からの量子アルゴリズム記述206は、(I/Oマネージャ368を介して)パルサー302にロードされることになる命令の第1のセット、パルサー302にロードされることになる命令の第2のセット、などを含むことができる。メモリ404に格納された各パルステンプレートは、パルス動作回路358に送信されることになるパルスを表すいずれかの任意の形状の一連の1つ以上のサンプルを含む(例えば、ガウス、sinc、インパルス等)。メモリ406に格納された各デジタルパターンは、デジタル制御信号DigCtrl~DigCtrlJ-1を生成するために、デジタルマネージャ354に送信されることになるデジタルパルスを表すことができる一連の1つ以上のバイナリ値を含む。
【0042】
[0049]制御回路408は、インバウンド信号AIを処理し、未加工アウトバウンドパルスCP’を生成し、デジタル制御信号in_slct、out_slct、D_port、D、IF、F、ops_slct、ops_ctrl、results、およびdmod_slctを生成するために、メモリ402に格納された命令を実行するように動作可能である。図示された実例の実装形態では、インバウンド信号AIの処理は、CSP回路410によって、および、信号f_dmodに(少なくとも部分的に)基づいて、実施される。
【0043】
[0050]計算および/または信号処理回路(CSP)410は、例えば、(例えば、インバウンド信号AIの)ブール代数ベースの論理および算術関数および復調を含むことができる、計算および/または信号処理関数を実施するように動作可能である。
【0044】
[0051]実例の実装形態の動作では、未加工アウトバウンドパルスCP’の生成は、制御回路408が、(1)(例えば、CSP410によって実施される計算および/または信号処理の結果に基づいて)メモリ404から検索するためのパルステンプレートを決定すること、(2)パルステンプレートを検索すること、(3)パルステンプレートに対していくつかの事前処理を実施すること、(4)(量子アルゴリズム記述で予め決定される、ならびに/あるいは、CSP410によって実施される計算および/または信号処理の結果に基づいて動的に決定されるような)パルス動作マネージャ356に送信されることになるF、IF、ops_slct、およびdmod_slctの値を決定すること、(5)パルス動作回路358に送信されることになるops_ctrlの値を決定すること、(6)入力マネージャ352に送信されることになるin_slctの値を決定すること、(7)(量子アルゴリズム記述で予め決定される、ならびに/あるいは、CSP410によって実施される計算および/または信号処理の結果に基づいて動的に決定されるような)メモリ406から検索するためのデジタルパターンを決定すること、(8)(量子アルゴリズム記述で予め決定される、ならびに/あるいは、CSP410によって実施される計算および/または信号処理の結果に基づいて動的に決定されるような)制御信号D_portとともにデジタルマネージャにデジタルパターンをDとして出力すること、(9)パルス動作回路358に未加工アウトバウンドパルスCP’を出力すること、(10)I/Oマネージャにresultsを出力すること、を含む。
【0045】
[0052]図5は、図3Bのパルス動作マネージャおよびパルス動作回路の実例の実装形態を示す。パルス動作回路358は、複数のパルス修正回路508~508L-1を備える。パルス動作マネージャ356は、制御回路502、ルーティング回路506、および複数の修正設定回路504~504K-1を備える。
【0046】
[0053]実例の実装形態には、パルス修正回路508~508L-1とパルサー回路302~302L-1との間に1対1の対応関係がある(すなわち、それぞれのLがある)が、いつもこうである必要はない。他の実装形態では、パルサー回路302より少ないパルス修正回路508があってもよい。同様に、他の実装形態は、パルサー回路302より多くのパルス修正回路508を含むことができる。
【0047】
[0054]各パルス修正回路508は、アウトバウンドパルスCPを出力するために、ops_cnfgおよびops_ctrlに応じて、未加工アウトバウンドパルスCP’を処理するように動作可能である。このような処理は、未加工アウトバウンドパルスCPの位相、周波数、および/または振幅を調節することを含むことができる。実例の実装形態では、ops_cnfgは、複素数の1つ以上の行列の要素の形であり、処理は、下記に記述されるように、ops_cnfgの1つ以上の行列を、未加工アウトバウンドパルスCPの行列表現に掛けることを含む。
【0048】
[0055]例として、いくつかの事例では、パルサー302~302L-1のうちの2つは、直角位相パルスペアである2つの未加工アウトバウンドパルスを生成することができる。例えば、CP’とCP’が、経路313上で出力されることになる直角位相パルスペアであると仮定する。この例では、パルス動作回路358は、(1)
【数4】
で与えられるようなシングルサイドバンド変調を実施すること、ここで、ωは、シングルサイドバンド変調の周波数であり、time_stampは、基準時刻(例えば、一定の制御プロトコルの始まり)から経過した時間である、(2)
【数5】
で与えられるような基準系の回転の経過を追うこと、ここで、φは、基準時刻から基準系が集積した総位相である、ならびに/または、(3)IQミキサ訂正
【数6】
を実施すること、ここで、C00、C01、C10、およびC11は、IQミキサの不完全さを訂正する行列の要素である、を行うために、1つ以上の2×2行列をCP’とCP’のベクトル表現に掛けることによってCPとCPを処理することができる。実例の実装形態では、各修正設定回路504は、
【数7】
、IQミキサ訂正行列、
【数8】
、シングルサイドバンド周波数変調行列、および、
【数9】
、IQ平面に垂直な軸(すなわち、IおよびQがX軸およびY軸である場合のz軸)の周りでIQ軸を回転させるフレーム回転行列という、3つの行列の行列要素を収めるレジスタを収める。実例の実装形態では、各修正パラメータ回路504は、行列の積CおよびSの要素を収めるレジスタも収める。
【0049】
[0056]制御回路502は、パルス動作回路358に出力されるパルス修正設定が、パルス動作回路358によって処理されることになる各未加工アウトバウンドパルスに特に合わされるように(例えば、どの量子エレメント222がパルスの宛先になるか、どの信号経路313がパルスの宛先になるか、等)、信号ops_slct~ops_slctL-1およびdmod_slct~dmod_slctL-1に基づいてルーティング回路506を制御することによって、ならびに、IF~IFL-1およびF~FL-1に基づいてパルス修正設定504~504K-1を更新することによって、ops_confg~ops_confgL-1およびf_demod~f_demodL-1の値を生成するために、パルサー回路302~302L-1と情報を交換するように動作可能である。
【0050】
[0057]各修正設定回路504は、後の検索、およびパルス動作回路358への通信のために、修正設定を格納するように動作可能な回路を備える。各修正設定回路504に格納された修正設定は、1つ以上の2次元複素数値行列の形であってもよい。各信号経路313~313K-1は、パルス修正動作によって考慮されることになる、特定の特性(例えば、経路に沿った、相互接続、ミキサ、スイッチ、減衰器、増幅器、および/または回路の非理想性)を有することができる。同様に、各量子エレメント122~122は、特定の特性(例えば、共振周波数、基準系等)を有することできる。実例の実装形態では、回路504に格納されたパルス修正設定の数Kは、修正設定回路504~504K-1のそれぞれが、量子エレメント122~122K-1および/または経路313~313K-1のうちのそれぞれの1つについての修正設定を格納するように、量子エレメント122~122K-1の数、および、信号経路313~313K-1の数に対応する。他の実装形態では、信号経路313より多くのまたは少ないパルス修正回路504、および、量子エレメント122より多くのまたは少ないパルス修正回路504、および、量子エレメント122より多くのまたは少ない信号経路313があってもよい。
【0051】
[0058]ルーティング回路506は、修正設定回路504~504L-1から、(ops_confg~ops_confgL-1として)パルス動作回路358に、および、(f_dmod~f_dmodL-1として)パルサー302~302L-1に修正設定をルーティングするように動作可能である。図示された実例の実装形態では、修正設定回路504~504K-1のどれが、その/これらのコンテンツを、パルス修正回路508~508L-1のどれに、および、パルサー302~302L-1のどれに、送ったかは、制御回路502からの信号「route」で制御される。
【0052】
[0059]信号ops_slctは、どの修正パラメータ504をパルス修正回路508に送信するべきかについてパルス動作マネージャ356に知らせる。パルサー302は、パルス(例えば、量子エレメントの共振周波数、基準系、および/またはミキサ訂正)が伝送されるべき特定の量子エレメント122および/または信号経路313に基づいて、ops_slctを決定することができる。どの量子エレメントおよび/または信号経路に特定のパルサー302が特定の時間にアウトバウンドパルスを送信するべきかについての決定は、量子アルゴリズム記述で予め決定されてもよく、または、実行時間中に、パルサー302、および/もしくは、パルサー302~302L-1の他のものによって実施される計算に基づいて決定されてもよい。制御回路502は、次に、パルス修正回路508~508L-1のうちの正しい1つに、正しい修正設定がルーティングされるように、この情報を使用してルーティングブロック506を構成することができる。
【0053】
[0060]実例の実装形態では、各ops_cnfg信号は、2つの成分ops_cnfgk,0およびops_cnfgk,1を含むことができ、パルス修正回路508および508は、CP1=ops_cnfg1,0×CP’+ops_cng2,1×CP’、およびCP2=ops_cnfg1,1×CP’+ops_cnfg2,0×CP’、という動作を実施することができる。直角位相パルスペアとしてCPおよびCPを生成するために、ops_slctおよびops_slctは、
【数10】
になるように、ops_cnfg1,0=CSFk00、ops_cnfg1,1=CSFk10、ops_cnfg2,0=CSFk11、およびops_cnfg2,1=CSFk01をセットするように、パルス動作マネージャ256に命令することができ、ここで、CSFkijは、CSFのij番目の行列要素である。単一位相パルスとしてCPを生成するために、ops_slctは、CP=cos(ω×time_stamp+φ)CP’になるように、ops_cnfgs1,0=SFs00=cos(ω×time_stamp+φ)、およびops_cnfg2,1=0をセットするように、パルス動作マネージャ356に命令することができる。したがって、このような実装形態により、各パルス生成器302は、直角位相パルスペアの一部として、または独立した単一位相パルスとして振舞わされることになるパルスを生成し、全てのパルス生成器の間で共有されるCSFまたはSF行列のいずれか1つで、これらのパルスを修正することができる。
【0054】
[0061]実例の実装形態では、デジタル信号IFは、ops_slctで示された修正設定回路504の周波数設定を更新するように、パルス動作マネージャ356に命令する。実例の実装形態では、周波数設定は、(上記で説明された)行列Sであり、信号IFは、行列Sの要素において使用されることになる新しいωを示す新しい値を搬送する。新しい値は、例えば、パルス生成器302~302L-1の1つ以上が、それぞれ異なる搬送波周波数で一連のアウトバウンドパルスCPを送信し、その後、対応するインバウンド信号AIを測定する、(例えば、量子アルゴリズムの最初の部分として実施される)較正ルーチンの間に決定されてもよい。
【0055】
[0062]実例の実装形態では、信号Fは、ops_slctで示された修正設定回路504のフレーム設定を更新するように、パルス動作マネージャ356に命令する。実例の実装形態では、フレーム設定は、(上記で説明された)行列Fであり、信号Fは、Fを回転させるためにFを掛けた回転行列Fを搬送する。これは、
【数11】
と書くことができ、ここで、φは、回転前の基準系であり、Δφは、基準系を回転させる量である。パルサー302は、所定のアルゴリズムに基づいて、または、パルス生成器302、および/またはパルス生成器302~302L-1の他のものによって実行時間中に実施された計算に基づいて、Δφを決定することができる。
【0056】
[0063]実例の実装形態では、信号dmod_scltは、修正設定回路504のどれから、パルサー302にf_dmodとして送信されることになる値を検索するべきかを、パルス動作マネージャ356に知らせる。パルサー302は、処理されることになるパルスが特定の量子エレメント122および/または信号経路315のどちらから到着したかに基づいて、dmod_slctを決定することができる。どの量子エレメントおよび/または信号経路から、特定のパルサー302が、特定の時間にインバウンドパルスを処理するべきかについての決定は、量子アルゴリズム記述で予め決定されてもよく、または、パルサー302、および/もしくはパルサー302~302L-1の他のものによって実行時間中に実施された計算に基づいて決定されてもよい。制御回路502は、次に、この情報を使用して、パルサー302~302L-1のうちの正しい1つに正しい修正設定がルーティングされるように、ルーティングブロック506を構成することができる。例えば、パルス生成回路302は、量子エレメント122からのパルス信号Alを復調しなければならないとき、修正設定回路504からパルサー302に(f_dmodとして)要素SFk00=cos(ω×time_stamp+φ)をルーティングするように、パルス動作マネージャ356に命令するdmod_sclt信号を送信することになる。
【0057】
[0064]図示された実例の実装形態では、デジタル信号C~CK-1は、信号経路313~313K-1のそれぞれのために使用されることになる信号経路固有修正設定についての情報を提供する。例えば、各信号Cは、アウトバウンドパルスが信号経路313に沿って伝搬するときにもたらされた(例えば、ミキサ、増幅器、配線等の欠陥から生じる)エラーについて、結果として出力されたアウトバウンドパルスが事前に補償されるように、未加工アウトバウンドパルスCP’の行列表現を乗じることになる行列を含むことができる。事前補償の結果は、出力されたアウトバウンドパルスCPが、量子プロセッサ218に到着した際、正規の特性を有することになるというものである。信号C~CK-1は、例えば、量子コントローラ210自体によって、プログラミングサブシステム202によって、および/または、外部較正によって、計算されてもよく、I/Oマネージャ368を介して提供されてもよい。信号の計算は、量子アルゴリズムの前に実施することができる較正ルーチンの一部として行われてもよく、および/または、(例えば、量子アルゴリズム中の温度変化を補償するために)量子アルゴリズムの一部としてリアルタイムに決定/適合されてもよい。
【0058】
[0065]図6は、本開示の実例の実装形態による量子コントローラの実例の動作を示す流れ図である。
【0059】
[0066]処理は、ブロック602で始まり、この中で、パルサー302は、時刻T1に信号経路313で出力されることになる未加工アウトバウンドパルスCP’2,T1を生成することを決定する。決定は、メモリ402にロードされた命令に基づき、(例えば、CSP410によって復調されたインバウンド量子エレメント読出し信号AIに基づいて)パルサー302のCSP410、および/またはパルサー302~302L-1のうちの別のもののCSP410によって実施された計算の結果を考慮することができる。
【0060】
[0067]ブロック604において、パルサー302は、信号ops_slctを介してパルス動作マネージャ356に、パルサー302は、504に格納されたパルス修正設定で未加工アウトバウンドパルスCP’2,T1が修正されることを望んでいることをシグナリングする。
【0061】
[0068]ブロック606では、パルス修正マネージャ356は、パルス修正設定回路504からパルス修正回路508に設定をルーティングする。
【0062】
[0069]ブロック608では、パルス修正回路508は、ブロック606で受信した設定を使用してCP’2,T1を処理する。結果は、出力されたアウトバウンド量子パルスCP2,T1である。
【0063】
[0070]ブロック610では、パルサー302によって指図されたように、出力マネージャ360は、(信号DOとして)信号経路313にCP2,T1をルーティングする。
【0064】
[0071]ブロック612では、パルサー302は、時刻T2に信号経路313で出力されることになる未加工アウトバウンドパルスCP’2,T2を生成することを決定する。決定は、メモリ402にロードされた命令に基づき、(例えば、CSP410によって復調されたインバウンド量子エレメント読出し信号AIに基づいて)パルサー3022のCSP410、および/またはパルサー302~302L-1ののうちの別のもののCSP410によって実施された計算の結果を考慮することができる。
【0065】
[0072]ブロック614では、パルサー302は、信号ops_slctを介してパルス動作マネージャ356に、パルサー302は、504に格納されたパルス修正設定で未加工アウトバウンドパルスCP’2,T2を修正することを望んでいることをシグナリングする。
【0066】
[0073]ブロック616では、パルス修正マネージャ356は、パルス修正設定回路504からパルス修正回路508に設定をルーティングする。
【0067】
[0074]ブロック618では、パルス修正回路508は、ブロック616で受信した設定を使用してCP’2,T2を処理する。結果は、出力されたアウトバウンド量子パルスCP2,T2である。
【0068】
[0075]ブロック620では、パルサー302によって指図されたように、出力マネージャ360は、(信号DOとして)信号経路313にCP2,T2をルーティングする。
【0069】
[0076]このように、単一の量子アルゴリズムの実行時間中の異なる時刻に、単一のパルサー302が、(この例では量子プロセッサ202の2つの異なる量子エレメント122に対応し得る)2つの異なる経路へのパルスを生成し、パルスのそれぞれが、そのそれぞれの経路および/または量子エレメントのためにカスタマイズされた異なる処理を受ける。
【0070】
[0077]本開示の実例の実装形態によれば、量子コントローラ(例えば、210)は、未加工パルス生成回路(例えば、1つ以上のパルサー302)、パルス修正回路(例えば、356および358)、ならびに出力管理回路(例えば、360)を備える。未加工パルス生成回路(例えば、302)は、未加工パルス(例えば、CP1,T1)を生成するように動作可能である。出力管理回路は、量子プロセッサの複数の要素のどの1つ以上(例えば、量子プロセッサ218の量子エレメント122~122K-1)に、1つ以上の出力パルスが送信されるべきかに基づいて、複数の信号経路のうちの選択された1つ以上(例えば、313~313K-1の1つ以上)に、1つ以上の出力パルス(例えば、CP~CPL-1の1つ以上)をルーティングするように動作可能である。パルス修正回路は、未加工パルスの処理に使用するために、(例えば、504~504L-1の1つ以上に格納された)1つ以上のパルス修正設定を選択するように動作可能であり、ここで、選択は、複数の信号経路のどれが、選択された1つもしくは複数の信号経路であるか(例えば、313が、選択された信号経路であってもよい)、および/または、量子プロセッサの複数の要素(element)の1つもしくは複数のどれに1つもしくは複数の出力パルスが送信されるべきかに基づく。パルス修正回路は、1つ以上の出力パルスを生成するために、選択された1つ以上のパルス修正設定を使用して、未加工パルスを処理するように動作可能である。1つ以上の出力パルスは、1つ以上のパルス修正設定の第1のパルス修正設定を介して生成された第1の出力パルス、および、1つ以上のパルス修正設定の第2のパルス修正設定を介して生成された第2の出力パルスを含む。1つ以上のパルス修正設定の第1のパルス修正設定は、1つ以上の信号経路の第1の信号経路に基づいて選択されてもよく(例えば、CP1,T1が、313のためのパルスに基づいて、504からの設定を使用して生成される)、1つ以上のパルス修正設定の第2のパルス修正設定は、第2の出力パルスが伝送されるべき1つ以上の信号経路の第2の信号経路に基づいて選択されてもよい(例えば、CP1,T2が、313のためのパルスに基づいて、504からの設定を使用して生成される)。1つ以上のパルス修正設定の第1のパルス修正設定は、量子プロセッサの複数の要素の第1の要素の特性(例えば、周波数、位相等)に基づいて選択されてもよく(例えば、CP1,T1が、量子エレメント122のためのパルスに基づいて、504からの設定を使用して生成される)、1つ以上のパルス修正設定の第2のパルス修正設定は、量子プロセッサの複数の要素の第2の要素の特性(例えば、周波数、位相等)に基づいて選択されてもよい(例えば、CP1,T2が、122のためのパルスに基づいて、504からの設定を使用して生成される)。1つのまたはパルス修正設定を使用して未加工パルスを処理すると、未加工パルスと異なる搬送波周波数の出力パルスを生じることができる。1つ以上のパルス修正設定を使用して未加工パルスを処理すると、未加工パルスの基準系について回転された1つ以上の出力パルスの基準系を生じることができる。1つ以上のパルス修正設定を使用して未加工パルスを処理すると、(例えば、362における)選択された1つ以上の信号経路によってもたらされたエラーを補償するように未加工パルスの位相、周波数、および/または振幅を調節することができる。量子コントローラは、複数の量子エレメントからの量子エレメント読出しパルス(例えば、RP~RPM-1)を受信し、(例えば、A~AL-1の1つ以上として)未加工パルス生成回路の複数の入力の1つ以上に、量子エレメント読出しパルスのそれぞれをルーティングするように動作可能な入力管理回路(例えば、352)を備えることができ、1つ以上の入力は、量子コントローラによる量子計算アルゴリズムの命令の実行中に動的に決定される。パルス修正回路は、(例えば、504~504L-1に)複数のパルス修正設定を格納するように動作可能であってもよい。パルス修正回路は、複数のパルス修正設定のどれが、未加工パルスに適用されるかが、量子コントローラによる量子計算アルゴリズムの命令の実行中に選択可能になるように、動的に構成可能であってもよい。複数のパルス修正設定の各パルス修正設定は、複数の信号経路のそれぞれの信号経路で使用するために構成されてもよい(例えば、504における設定は、信号経路313に合わされてもよく、504における設定は、信号経路313に合わされてもよい)。
【0071】
[0078]本明細書で使用されるように、用語「回路」および「回路」は、物理的な電子構成要素(すなわち、ハードウェア)、ならびに、ハードウェアを構成し、ハードウェアで実行し、およびまたはそうでなければ、ハードウェアに関連付けることができる任意のソフトウェアおよび/またはファームウェア(「コード」)を指す。本明細書で使用されるように、例えば、特定のプロセッサおよびメモリは、コードの第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にも基づくことがある)ことを意味する。
【0072】
[0079]本方法および/またはシステムは、ハードウェア、ソフトウェア、または、ハードウェアとソフトウェアの組合せで実現されてもよい。本方法および/またはシステムは、少なくとも1つのコンピューティングシステムに集中した様式で、または、いくつかの相互接続されたコンピューティングシステムにわたって異なる要素が拡散された分散した様式で、実現されてもよい。本明細書で説明された方法を実行するために適合された任意の種類のコンピューティングシステムまたは他の装置が適している。典型的な実装形態は、1つ以上の特定用途向け集積回路(ASIC)、1つもしくは複数のフィールドプログラマブルゲートアレイ(FPGA)、ならびに/または、1つもしくは複数のプロセッサ(例えば、x86、x64、ARM、PIC、および/もしくは他の任意の適切なプロセッサアーキテクチャ)および関連付けられたサポート回路(例えば、ストレージ、DRAM、フラッシュ、バスインターフェース回路等)を備えることができる。各個別的なASIC、FPGA、プロセッサ、または他の回路は、「チップ」と呼ばれることもあり、複数のこのような回路は、「チップセット」と呼ばれることもある。別の実装形態は、機械によって実行されると、本開示で説明されたような処理を機械が実施するコードの1つ以上のラインを格納した非一時的機械可読(例えば、コンピュータ可読)媒体(例えば、フラッシュドライブ、光ディスク、磁気ストレージディスク、または同様のもの)を備えることができる。別の実装形態は、機械によって実行されると、(例えば、ソフトウェアおよび/またはファームウェアをその回路にロードして)本開示で説明されたシステムとして動作するように機械が構成されるコードの1つ以上のラインを格納した非一時的機械可読(例えば、コンピュータ可読)媒体(例えば、フラッシュドライブ、光ディスク、磁気ストレージディスク、または同様のもの)を備えることができる。
【0073】
[0080]本方法および/またはシステムは、一定の実装形態に関して説明されてきたが、本方法および/またはシステムの範囲から逸脱することなく、様々な変更が行われてもよく、均等物が代用されてもよいことが当業者によって理解されよう。さらに、本開示の範囲から逸脱することなく、特定の状況または材料を本開示の教示に適合させるために、多くの修正が行われてもよい。したがって、本方法および/またはシステムは、開示された特定の実装形態に限定されないということ、ならびに、本方法および/またはシステムは、添付の特許請求の範囲に含まれる全ての実装形態を含むということが意図される。
図1
図2
図3A
図3B
図4
図5
図6