(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-05
(54)【発明の名称】融合および分解ゲートによる分散量子システムにおけるエラー低減のための装置および方法
(51)【国際特許分類】
G06N 10/70 20220101AFI20241128BHJP
【FI】
G06N10/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023571397
(86)(22)【出願日】2022-11-10
(85)【翻訳文提出日】2023-12-01
(86)【国際出願番号】 US2022049633
(87)【国際公開番号】W WO2023107240
(87)【国際公開日】2023-06-15
(32)【優先日】2021-12-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】サワヤ、ニコラス
(72)【発明者】
【氏名】マツウラ、アン
(72)【発明者】
【氏名】ホガボアム、ジャスティン
(57)【要約】
融合および分解ゲートによる、分散量子コンピューティングにおけるエラー低減のための装置および方法である。例えば、装置の一実施形態は、複数のキュビットを含む量子モジュール;一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成するためのユニタリ生成ロジック;ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解するための分解ロジック;および複数の代替的ゲートシーケンスをコスト関数に基づき評価して、ゲートシーケンスのうちの少なくとも1つを識別するための選択ロジックを備える。
【特許請求の範囲】
【請求項1】
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する段階;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する段階;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する段階を備える、方法。
【請求項2】
前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、請求項1に記載の方法。
【請求項3】
前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする段階;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する段階;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する段階;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する段階をさらに備える、請求項2に記載の方法。
【請求項4】
前記評価する段階はさらに、
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する段階;および
前記コスト値のうちの最小値と関連付けられたゲートシーケンスの組み合わせを選択する段階を含む、請求項3に記載の方法。
【請求項5】
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更、および回路の近似シミュレーションのうちの1または複数に基づく、請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別する段階をさらに備え、識別する前記段階は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する段階を含み、Xは予め定められた閾値である、請求項3から5のいずれか一項に記載の方法。
【請求項7】
識別する前記段階はさらに、
前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する段階を含む、請求項6に記載の方法。
【請求項8】
前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、請求項7に記載の方法。
【請求項9】
前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、請求項7に記載の方法。
【請求項10】
前記一群の量子ゲートは、単一の量子モジュールに含まれる、請求項1から9のいずれか一項に記載の方法。
【請求項11】
複数のキュビットを含む量子モジュール;
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成するためのユニタリ生成ロジック;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解するための分解ロジック;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別するための選択ロジックを備える、装置。
【請求項12】
前記量子モジュールは、複数の相互接続された量子モジュールのうちの1つを含み、前記一群の量子ゲートは、複数の量子ゲートのうちの第1のサブセットを含み、前記複数の量子ゲートのうちの少なくとも一部は、前記相互接続された量子モジュールにわたる、請求項11に記載の装置。
【請求項13】
前記複数の量子ゲートを、前記第1のサブセットを含む、複数のサブセットの量子ゲートにパーティショニングするためのパーティショニングロジックをさらに備え、
前記ユニタリロジックは、各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成し、
前記分解ロジックは、前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解し、
前記選択ロジックは、前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する、請求項12に記載の装置。
【請求項14】
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成するためのコスト加算ロジックをさらに備え、
前記選択ロジックは、前記コスト値のうちの最小値と関連付けられるゲートシーケンスの組み合わせを選択する、請求項13に記載の装置。
【請求項15】
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、請求項11から14のいずれか一項に記載の装置。
【請求項16】
前記パーティショニングロジックは、前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別し、前記識別は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別することを含み、Xは予め定められた閾値である、請求項13から15のいずれか一項に記載の装置。
【請求項17】
前記第1のモジュール内で前記一群の量子ゲートを識別すべく、前記パーティショニングロジックは、前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する、請求項16に記載の装置。
【請求項18】
前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、請求項17に記載の装置。
【請求項19】
前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、請求項17に記載の装置。
【請求項20】
格納されたプログラムコードを有するマシン可読媒体であって、前記プログラムコードはキュビットコントローラによって実行されると、
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する手順;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させる、マシン可読媒体。
【請求項21】
前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、請求項20に記載のマシン可読媒体。
【請求項22】
前記マシンに、
前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする手順;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する手順;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させるプログラムコードをさらに備える、請求項21に記載のマシン可読媒体。
【請求項23】
前記評価する手順はさらに、
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する手順;および
前記コスト値の最小値と関連付けられたゲートシーケンスの組み合わせを選択する手順を含む、請求項22に記載のマシン可読媒体。
【請求項24】
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、請求項20から23のいずれか一項に記載のマシン可読媒体。
【請求項25】
前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別する手順をさらに備え、前記識別する手順は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する手順を含み、Xは予め定められた閾値である、請求項22から24のいずれか一項に記載のマシン可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は一般に、量子コンピューティングの分野に関する。より具体的には、これらの実施形態は、融合および分解ゲートによる分散量子システムにおけるエラー低減に関する。
【背景技術】
【0002】
量子コンピューティングは、データを操作するために量子力学現象を使用する計算システムに関連する研究の分野を指す。重ね合わせ(量子変数は、多様な異なる状態で同時に存在することができる)およびもつれ(多数の量子変数が、空間または時間におけるそれらの間の距離に関係なく相関した状態を有する)などのこのような量子力学現象は、古典計算の世界におけるアナログを持たず、よって古典計算デバイスで実施することはできない。
【図面の簡単な説明】
【0003】
本発明のより良い理解は、以下の図面と併せて以下の詳細な説明から得ることができる。
【0004】
【
図1A】一実施形態による例示的な量子ドットデバイスの図である。
【
図1B】一実施形態による例示的な量子ドットデバイスの図である。
【
図1C】一実施形態による例示的な量子ドットデバイスの図である。
【
図1D】一実施形態による例示的な量子ドットデバイスの図である。
【
図1E】一実施形態による例示的な量子ドットデバイスの図である。
【
図1F】一実施形態による例示的な量子ドットデバイスの図である。
【0005】
【
図2】量子命令および非量子命令を処理するためのプロセッサパイプラインの一実施形態の図である。
【0006】
【
図3】量子命令および非量子命令を処理するためのプロセッサのフロントエンド回路の一実施形態の図である。
【0007】
【
図4A】量子古典プロセッサインタフェースの実施形態の図である。
【
図4B】量子古典プロセッサインタフェースの実施形態の図である。
【0008】
【
図5A】例示的な量子回路および量子回路を実装するためのプログラムコードの図である。
【
図5B】例示的な量子回路および量子回路を実装するためのプログラムコードの図である。
【0009】
【
図6A】量子命令がコンパイラによって生成され、uopに復号され、量子実行エンジン内で実行される一例の図である。
【
図6B】量子命令がコンパイラによって生成され、uopに復号され、量子実行エンジン内で実行される一例の図である。
【0010】
【0011】
【
図8】量子プロセッサ内でキュビットをアドレス指定するためのキュビットインデックス生成器の一実施形態の図である。
【0012】
【
図9】キュビットを識別するためのキュビットインデックス値を決定するための方法の図である。
【0013】
【
図10】量子エラーを復号および訂正するシステムの一例を示す。
【0014】
【0015】
【
図12A】量子ゲート間のインターモジュール相互接続を示す。
【
図12B】量子ゲート間のインターモジュール相互接続を示す。
【0016】
【
図13A】複数の量子ゲートを融合してユニタリを形成するためのユニタリ生成ロジックを示す。
【0017】
【
図13B】ユニタリを複数の代替的ゲートシーケンスに分解する分解ロジックを示す。
【0018】
【
図14A】複数のモジュールにわたる複数のキュビットのための量子ゲートの構成を示す。
【
図14B】複数のモジュールにわたる複数のキュビットのための量子ゲートの構成を示す。
【0019】
【
図15】選択されたキュビットパーティションに融合および分解演算を実行する融合および分解ロジックを示す。
【0020】
【
図16A】特定のクロックサイクルのためのゲート演算と関連付けられたタイミングを示す。
【0021】
【
図16B】特定のクロックサイクル中に実行される量子オペレーションの位置(すなわち、ゲート)の例を示す。
【0022】
【発明を実施するための形態】
【0023】
以下の説明では、説明を目的として、以下に記載される本発明の実施形態の完全な理解を提供するために、多数の具体的な詳細が明記される。しかしながら、本発明の実施形態がこれらの具体的詳細のいくつかを伴わずに実践されてもよいことは、当業者にとって明らかであろう。他の例では、本発明の実施形態の基本的な原理を曖昧にすることを避けるために、周知の構造及び装置はブロック図の形態で示されている。
[はじめに]
【0024】
量子コンピュータは、重ね合わせおよびもつれなどの量子力学現象を使用して計算を実行する。データを2つの明確な状態(0または1)のうちの1つで格納するデジタルコンピュータとは対照的に、量子計算は、量子ビット(キュビット)を使用し、これは、重ね合わせの状態にある場合がある。キュビットは、電子および光子等の元素粒子の物理的に区別可能な量子状態を使用して実装されてよい。例えば、光子の偏波は、2状態が垂直偏波と水平偏波である場合に使用されてよい。同様に、電子のスピンは、「上スピン」および「下スピン」等、区別可能な状態を有してよい。
【0025】
キュビットの状態は典型的には、ブラケット記法|0>および|1>で表される。従来のコンピュータシステムでは、ビットは、排他的に1つの状態または他方の状態、すなわち「0」または「1」である。しかしながら、量子力学システムにおけるキュビットは、同時に2状態の重ね合わせである場合があり、すなわち量子コンピューティングに独自であり、基本的な特徴である。
【0026】
量子コンピューティングシステムは、キュビットに対し実行される量子論理演算を含むアルゴリズムを実行する。演算のシーケンスは、統計的にスケジュールにコンパイルされ、キュビットは、インデックススキームを利用してアドレス指定される。このアルゴリズムはその後、計算された答えの信頼区間が閾値(例えば~95+%)を超えるまで十分な回数実行される。閾値にヒットすることは、所望のアルゴリズム結果が達成されたことを意味する。
【0027】
キュビットは、量子状態を操作し読み取ることが可能な多様な異なる技術を使用して実装されている。これらは、限定されるものではないが、いくつか名前を挙げると、量子ドットデバイス(スピンベースおよび空間ベース)、トラップイオンデバイス、超電導量子コンピュータ、光格子、核磁気共鳴コンピュータ、ソリッドステートNMRケイン量子デバイス、ヘリウム液面電子量子コンピュータ、共振器量子電磁力学(CQED)デバイス、分子磁石コンピュータおよびフラーレンベースESR量子コンピュータを含む。したがって、量子ドットデバイスが本発明の特定の実施形態に関連して以下に記載されるが、本発明の基本原理は、これに限定されないが上記に挙げたものを含め、任意のタイプの量子コンピュータと組み合わせて利用されてよい。キュビットに使用される特定の物理的実装形態は、本明細書に記載される発明の実施形態とは独立である。
[量子ドットデバイス]
【0028】
量子ドットは、小さい半導体粒子、典型的には数ナノメータのサイズである。この小さいサイズが理由で、量子ドットは、量子力学の規則に従って動作し、マクロ的存在とは異なる光学および電子的特性を有する。量子ドットは、原子または分子の場合のように、別個の拘束された電子状態を有する単一の物体であるという事実を暗示するために、「人工原子」と呼ばれる場合がある。
【0029】
図1A~
図1Fは、量子ドットデバイス100の種々の図であり、このデバイスは、以下に記載される本発明の実施形態で使用されてよい。
図1Aは、材料の一部が取り除かれ、そのため、第1のゲートライン102、第2のゲートライン104および第3のゲートライン106を見ることができる量子ドットデバイス100の一部の上面図である。図面および本明細書の記載の多くは、ラインまたはゲートの特定のセットを「バリア」または「量子ドット」ラインまたはゲートとしてそれぞれ指す場合があるが、これは単に考察を容易にするためであり、他の実施形態では、「バリア」および「量子ドット」ラインおよびゲートの役割は、交代する場合がある(例えば、バリアゲートが代わりに、量子ドットゲートとして機能してもよく、その逆もまた同様である)。
図1B~
図1Fは、
図1Aの量子ドットデバイス100の側部断面図であり、詳細には
図1Bは、
図1AのB-B断面を通る図であり、
図1Cは、
図1AのC-C断面を通る図であり、
図1Dは、
図1AのD-D断面を通る図であり、
図1Eは、
図1AのE-E断面を通る図であり、
図1Fは、
図1AのF―F断面を通る図である。
【0030】
図1の量子ドットデバイス100は、いくつかの態様のうちのいずれかで操作されてよい。例えば一部の実施形態では、電圧、電流、無線周波数(RF)および/またはマイクロ波信号等の電気信号が1または複数の第1のゲートライン102、第2のゲートライン104および/または第3のゲートライン106に提供されて、量子ドット(例えば電子スピンベースの量子ドットまたはホールスピンベースの量子ドット)を第3のゲートライン106の第3のゲート166の下の量子ウェルスタック146内に形成させてよい。第3のゲートライン106に提供された電気信号は、その第3のゲートライン106の第3のゲート166の下の量子ウェルの電位を制御してよく、その一方で、第1のゲートライン102(および/または第2のゲートライン104)に提供された電気信号は、隣接する量子ウェルの間でその第1のゲートライン102の第1のゲート162(および/またはその第2のゲートライン104の第2のゲート164)の下のポテンシャルエネルギーバリアを制御してよい。(例えば異なる量子ドットゲートの下の)量子ウェルスタック146bにおける異なる量子ウェル内の量子ドット間の量子の相互作用は、(例えばバリアゲートを介在させることによって)それらの間に課されるバリアポテンシャルによって提供されるポテンシャルエネルギーバリアによって部分的に制御されてよい。
【0031】
一般に、本明細書に開示される量子ドットデバイス100は、通常は衰退する量子ドットの状態(例えば電子スピンベースの量子ドットのスピン状態)にエネルギー差異を作り出すために使用され得る磁場の供給源(図示せず)をさらに含んでよく、量子ドットの状態(例えばスピン状態)は、計算が可能な量子ビットを作り出すためにゲートラインに電磁エネルギーを加えることによって操作されてよい。磁場の供給源は、以下で考察するように、1または複数の磁石ラインであってよい。よって、本明細書に開示される量子ドットデバイス100は、電磁エネルギーの制御された印加を通して、量子ウェルスタック146における量子ドットの位置、数および量子状態(例えばスピン)を操作することが可能であってよい。
【0032】
図1の量子ドットデバイス100では、ゲート誘電体114が量子ウェルスタック146上に配置されてよい。量子ウェルスタック146は、少なくとも1つの量子ウェル層152(
図1には示されない)を含んでよく、その中で、量子ドットは、量子ドットデバイス100の動作中、局所化されてよい。ゲート誘電体114は、高誘電率K材料等、いずれの好適な材料であってよい。多重並列の第1のゲートライン102が、ゲート誘電体114の上に配置されてよく、スペーサ材118が、第1のゲートライン102の側面に配置されてよい。一部の実施形態では、パターニングされたハードマスク110が(第1のゲートライン102のパターンに対応するパターンで)第1のゲートライン102上に配置されてよく、スペーサ材118は、示されるように、ハードマスク110の面まで延びてよい。第1のゲートライン102は各々、第1のゲート162であってよい。第1のゲートライン102の異なる1つは、任意の所望の組み合わせで電気的に制御されてよい(例えば、各第1のゲートライン102は別々に電気的に制御されてよい、または第1のゲートライン102の一部またはすべては、所望の通りに、1または複数のグループで一緒に短絡されてもよい)。
【0033】
多重並列の第2のゲートライン104が、第1のゲートライン102の上に、それらの間に配置されてよい。
図1に図示されるように、第2のゲートライン104は、第1のゲートライン102に直交するように配置されてよい。
図1Dに図示されるように、第2のゲートライン104はハードマスク110の上に延在してよく、および、量子ウェルスタック146に向かって下に延び、第1のゲートライン102の隣接するもの同士の間でゲート誘電体114に接触する第2のゲート164を含んでよい。一部の実施形態では、第2のゲート164は、第1のゲートライン102/スペーサ材118構造の隣接するもの同士の間の領域を満たしてよく、他の実施形態では、絶縁材(図示せず)が、第1のゲートライン102/スペーサ材118構造と近接する第2のゲート164との間に存在してよい。一部の実施形態では、スペーサ材118が、第2のゲートライン104の側面に配置されてよい、他の実施形態では、スペーサ材118が第2のゲートライン104の側面に配置されない場合もある。一部の実施形態では、ハードマスク115が第2のゲートライン104の上方に配置されてよい。第2のゲートライン104の第2のゲート164の多重ゲートは、(ハードマスク110上の第2のゲートライン104の共有される導電材料のために)電気的に連続している。第2のゲートライン104の異なるものは、いずれの所望の組み合わせで電気的に制御されてよい(例えば、各第2のゲートライン104は、別々に電気的に制御されてよい、あるいは第2のゲートライン104の一部または全ては、所望の通りに、1または複数のグループで一緒に短絡されてもよい)。第1のゲートライン102および第2のゲートライン104は共に、
図1に描かれるように、1つのグリッドを形成してよい。
【0034】
多重並列の第3のゲートライン106が、第1のゲートライン102および第2のゲートライン104の上に、それらの間に配置されてよい。
図1に図示されるように、第3のゲートライン106は、第1のゲートライン102に対して対角に且つ第2のゲートライン104に対して対角に配列されてよい。詳細には、第3のゲートライン106は、第1のゲートライン102および第2のゲートライン104によって形成されるグリッド内の開口の上に対角に配列されてよい。第3のゲートライン106は、第1のゲートライン102および第2のゲートライン104によって形成されるグリッド内の開口内のゲート誘電体114まで下に延びる第3のゲート166を含んでよく、よって各第3のゲート166は、2つの異なる第1のゲートライン102および2つの異なる第2のゲートライン104によって境界が決められてよい。一部の実施形態では、第3のゲート166は、絶縁材128によって境界が決められてもよく、他の実施形態において第3のゲート166は、(例えば、示されない、隣接する第1のゲートライン102および第2のゲートライン104の側面に配置されたスペーサ材118に接触して)グリッド内の開口を満たす場合もある。追加の絶縁材117が、第3のゲートライン106上に、および/またはその周りに配置されてもよい。第3のゲートライン106の第3のゲート166の多重ゲートは、(第1のゲートライン102および第2のゲートライン104の上の第3のゲートライン106の共有される導電材料のために)電気的に連続している。第3のゲートライン106の異なるものは、いずれの所望の組み合わせで電気的に制御されてよい(例えば、各第3のゲートライン106は、別々に電気的に制御されてよい、または第3のゲートライン106の一部または全ては、所望の通りに、1または複数のグループで一緒に短絡されてもよい)。
【0035】
図1Aから
図1Fは、特定の数の第1のゲートライン102、第2のゲートライン104および第3のゲートライン106を図示しているが、これは、例示の目的で簡素であり、いずれの数の第1のゲートライン102、第2のゲートライン104および第3のゲートライン106が量子ドットデバイス100に含まれてよい。第1のゲートライン102、第2のゲートライン104および第3のゲートライン106の配列の他の例も可能である。電気相互接続(例えばビアおよび導電線)が、第1のゲートライン102、第2のゲートライン104および第3のゲートライン106にいずれの所望のやり方で接触してもよい。
【0036】
図1に示されていないが、量子ウェルスタック146の量子ウェル層に電気的に結合され得る蓄積領域が存在する(例えば量子ウェル層に横方向に近接して)。蓄積領域は、介在する誘電材の薄層によってゲートラインから離間配置されてよい。蓄積領域は、(例えばドーピングによって、または量子ウェル層にキャリアを引っ張る大きな電極の存在によって)キャリアが蓄積する領域であってよく、(例えば量子ドットゲート、第1のゲート162および第2のゲート164上の電圧を制御することによって)第3のゲート166の下の量子ウェル層のエリアに選択的に引き込むことができるキャリアの貯蔵所として機能することで、キャリアベースの量子ドット(例えば単一の電荷キャリア、多数の電荷キャリアまたは電荷キャリアがまったくないことを含む、電子またはホール量子ドット)を形成してよい。他の実施形態では、量子ドットデバイス100は、横方向の蓄積領域を含まない場合もあるが、代わりに量子ウェルスタック146内にドープ層を含んでもよい。このようなドープ層は、量子ウェル層にキャリアを提供してよい。量子ウェルスタック146内での(例えばドープ、または非ドープ)蓄積領域あるいはドープ層のいずれの組み合わせが、本明細書に開示される量子ドットデバイス100の実施形態のいずれかで使用されてよい。
[ハイブリッド古典量子コンピュータのための装置および方法]
【0037】
Richard Feynmanが1982年に、量子物理学は、量子コンピュータを使用して効率的にシミュレートすることができるかどうか問うた後、量子コンピュータを研究する多くの労力は、古典的な計算に対するその普遍性およびその効率に焦点をおいてきた。1つのそのような例は、任意の物理的オブジェクトによって実行可能な任意の計算タスクを実行するようプログラムされ得る1985年のDavid Deutsch'の量子Turing機械である。
【0038】
理論およびアルゴリズムとは対照的に、量子物理機械はなおもその黎明期にある。量子情報処理システムを構築するための労力は、これまでのところ、ほどほどの成功に終わっている。小セットの量子オペレーションを極めて少ないキュビットに対し実行可能な小型量子コンピュータは、量子計算における最新技術を表わしている。加えて、量子状態は、限定的な継続時間にわたってのみコヒーレントのままであるという意味において、量子状態は壊れやすい。アルゴリズムと物理的機械との間のこのようなギャップは、当該労力を、ハイブリッド古典量子アルゴリズムを発明するように仕向けている。一部の最近の量子アルゴリズムの開発は、variational eigensolver(P.J.J.O'Malley,2016)等の、より大きな古典的最適化ループに埋め込まれたサブルーチンとして形成された量子計算を実行するための短い深さの量子回路に集中している。量子コンピューティングにおける厳しいリソース制約に対処するために、アプリケーションを量子物理層に変換し且つ最適化するためのソフトウェア層/スタックを提供する、量子言語、ツールおよびフローが開発されている(Frederic T.Chong,2017年9月14日)。
【0039】
ハードウェア側では、古典コンピュータが使用されて、量子計算のためのエラー訂正を実行する。「量子コプロセッサ」モデルは、現代のコンピュータシステムにおけるCPUがGPUと相互作用するのと同様のやり方で、古典CPUが量子処理ユニットを制御する、最も好都合な広く普及する実行モデルである。(X.Fu,2016年5月)および(X.Fu,2018年)に記載されるように、実験的な超電導量子コプロセッサのためのマイクロアーキテクチャは、古典命令をホストCPUに向ける、および量子命令を量子コプロセッサに向けるためのコードフェッチデータパス上のアービター、ホストCPUと量子コプロセッサとの間でレジスタファイルを同期させるためのエクスチェンジレジスタファイルおよび量子命令キャッシュなどの機能を含んでいた。
【0040】
しかしながら、このような機構のためのマイクロアーキテクチャは、十分に定義されておらず、ハイブリッド古典量子プログラムのための明確なサポートが欠けている。結果として、量子コプロセッサがどのように量子コンピュータ内に、とりわけ異なるセットの量子プログラムを稼働するのに必要とされるものに実装されるかは不明確である。ハイブリッド古典量子アルゴリズムを実行するために、柔軟性があり、プログラマブルなモデルがなおも開発されるべきである。
【0041】
本発明の一実施形態は、CPUなどのプロセッサの命令セットアーキテクチャ(ISA)に一セットの量子命令を加える。一例として、これらの命令は、ISAに対する拡張(例えばx86プラットフォームに関するAVX-512拡張など)に含まれてよい。加えて、一実施形態では、量子エンジンが、プロセッサの実行ユニットに加えられ、新たな量子命令が、フェッチされ、デコードされ、スケジュールに入れられ、量子エンジンの機能ユニット上で実行される。一実施形態では、量子エンジンは、共有レジスタファイルおよび/またはシステムメモリを使用して古典実行エンジンと相互作用する。量子命令(または本明細書に記載される特定の実施形態では量子μops)を実行すると、量子実行エンジンは、制御信号を生成して、量子プロセッサ内のキュビットの状態を操作する。量子エンジンはまた、指定されたセットのキュビットの測定を行い、結果を格納するための命令も実行する。これらの実施形態では、量子/古典インタフェースは、古典プロセッサの量子エンジンと量子プロセッサの量子エンジンとの間の接続性を提供する。
【0042】
図2は、非量子命令201Bと同じパイプラインリソースを利用して、量子命令201Aおよび非量子命令201Bをフェッチし、デコードし、実行するプロセッサまたはコア210の一実施形態を図示する。この実施形態のプロセッサ/コア210は、プロセッサ/コア210の既存のISAに対する量子拡張をサポートする(例えば、量子命令201Aを含むようにISAを拡張する)。量子命令および非量子命令を含むプログラムコード205Cが、(例えば拡張されたISAを利用して)プログラマーによって書かれたソースコード205Aからコンパイラ205Bによって生成される。種々のソース/プログラムコードの例が以下に提供される。
【0043】
量子命令および非量子命令201A~Bが、命令パイプラインのフロントエンドでメモリ205からフェッチされ、レベル1(L1)命令キャッシュ201に格納される。命令およびデータはまた、キャッシュ/メモリサブシステム215内でレベル2またはレベル3キャッシュに格納されてもよく、このレベルはメモリリクエストおよびキャッシュコヒーレンシを管理する。
【0044】
デコーダ202は、命令201A~Bをマイクロ操作またはuops203Aにデコードし、これは、スケジューラ203によって実行するようにスケジュールに入れられ、実行回路204によって実行される。一実施形態において、パイプラインの特定のステージが量子命令201Bを処理するためのハードウェアサポートを含むように強化されるが、他のステージは変更されない。例えば、量子デコード回路202Aは、ちょうど非量子デコード回路202Bが非量子命令201Bをデコードするように、量子命令201Aをデコードするためにデコーダ202に加えられてよい。説明の目的のために
図2には別個の構成要素に図示されるが、量子デコード回路202Aおよび非量子デコード回路202Bは、回路および/またはマイクロコードの共通のまたは重複するセットを含んでもよい。例えば、一実施形態において、既存のデコーダは、新たなセットの量子uopsを生成するために、(例えばマイクロコードROM内の)量子命令のためのマイクロコードサポートを含むように拡張されてもよい。デコーダ202は、プロセッサアーキテクチャに応じて、一セットのデコードテーブル構造(例えば
図3および関連するテキストを参照されたい)などの他のデコード回路を含む。
【0045】
一実施形態において、デコーダ202は、命令201A~Bのデコーディングに応答して、uops203Aのシーケンスを生成する。量子命令および非量子命令を有する一実装形態では、uopsは、量子uopsと非量子uopsの混合を含む場合があり、これらはその後、命令スケジューラ203によって実行するようにスケジュールに入れられる。
【0046】
デコーダ202によって生成された量子および非量子uops203Aは、最初に、スケジューラ203の1または複数のuopsキュー内での実行のためにキューに入れられてよく、スケジューラは、従属性および/または実行リソースアベイラビリティに従ってuopsキューからuopsをディスパッチする。本発明の実施形態は、異なるタイプのスケジューラを備えた種々の異なるタイプのプロセッサ上で履行されてよい。例えば、一実施形態において、一セットの実行「ポート」は、スケジューラ203を実行回路204に結合し、この場合、各実行ポートは、機能ユニット204C~Eの特定のセットにuopsを発行することが可能である。
図2に示される例示的なアーキテクチャでは、例えばSIMDおよび浮動小数点(FP)uopsが、スケジューラ203によって、一セットのFP/SIMD機能ユニット204Cに結合されたFP/SIMD実行ポートに対して発行されてよく、整数uopsが、一セットの整数機能ユニット204Dに結合された整数ポートに対して発行されてよい。簡素化のために2つのタイプの非量子機能ユニットのみが示されているが、プロセッサ/コア210は、種々の他の/追加の非量子機能ユニット(例えば、ロード/格納アドレス生成ユニット、ブランチユニット、追加のSIMDおよび整数ユニットなど)を含んでもよい。
【0047】
図2に示される特定の実施形態では、量子エンジン機能ユニット204Eは、レガシープロセッサ機能ユニット204C~Dによって使用される同一セットのレジスタファイル204A~Bを共有する。この特定の例では、レジスタファイル204A~Bは、FP/SIMDレジスタファイル204Aを含み、これは、FP/SIMD機能ユニット204Cおよび整数レジスタファイル204Bによって使用される浮動小数点オペランドおよびSIMDオペランドを格納し、整数レジスタファイルは、整数機能ユニット204Dのための整数オペランドを格納する。一実装形態では、FP/SIMDレジスタファイル204Aは、512ビットベクトルレジスタを有し、整数レジスタファイル204Bは、64ビットスカラーレジスタを備える。当然のことながら、異なるプロセッサアーキテクチャは、量子エンジン機能ユニット204Eによって共有される異なるタイプのレジスタを使用する。一セットの制御/状態レジスタおよびマスクレジスタなど種々の他のタイプのレジスタが使用されてもよい。
【0048】
量子uopsが非量子uopsと混合される一実施形態において、量子uopsは、1または複数の量子ポートにわたって一セットの量子エンジン機能ユニット204Eに対して発行され、これは、基本となる量子オペレーションを実行するために量子uopを実行する。例えば、量子エンジン機能ユニット204Eは、量子uopsに応答して、量子古典インターフェース206にわたって制御信号を生成して、量子プロセッサ207のキュビットを操作し、その測定を行ってよい。
【0049】
量子古典インタフェース206は、量子エンジン機能ユニット204Eによって生成されたデジタル量子制御信号を、量子プロセッサ207(例えば以下に記載されるコードワードトリガパルス生成(CTPG)ユニットおよび任意波形生成器(AWG)など)を制御するのに必要とされるアナログ信号に変換するために、デジタルアナログ(D―A)回路を含み、また物理的キュビット測定値をデジタル結果データに変換するためにアナログデジタル(A-D)回路も含む。
【0050】
一実施形態において、量子古典インタフェース206は、命令処理パイプラインの他の構成要素(例えば実行回路204、スケジューラ203、デコーダ202など)と同一の半導体チップ上に統合される。以下で詳細に考察されるように,量子プロセッサ207の特定の物理的実装形態に応じて、異なるタイプの回路/論理構成要素が使用されてよい。
【0051】
図3は、プレデコードバッファ301B、量子/非量子デコーダ回路202A~B、302A~Bの二重のセットを備えた2ウェイデコーダ302、命令翻訳のためのデュアルルックアップテーブル(XLAT)およびucodeROM304を含む低出力処理パイプラインに量子命令処理サポートが加えられる一実施形態を図示する。一実施形態において、XLAT構成要素303、305およびucodeROM304は、論理ブロック303Q~305Qによって示されるような量子命令をサポートするために拡張される。プレデコードバッファ301Bは、2ウェイデコーダ302によるuopsへの完全なデコーディングの前に、マクロ命令境界を検出しマークする。
【0052】
量子および非量子uopsのためのオペランドは、一セットの共有レジスタ321(上記に記載したような)に格納され、uopsを実行する際に、量子機能ユニット320によってアクセスされる。Q―Cインタフェース320は、量子uopsに応答して、量子プロセッサ207の動作を制御する。
【0053】
量子古典インタフェース206の異なる例が
図4A~
図4Bに図示される。
図4AにおけるQ―Cインタフェース206は、複数のuopsユニット401A~Cを含み、これらは、量子エンジン機能ユニット204Eによって実行されたuopsに応答して、複数のコードワードトリガパルス生成(CTPG)ユニット402A~Cの動作を制御するためのコードワードを生成する。これに応答して、CTPGユニット402A~Cはパルスのシーケンスを生成して量子プロセッサ207のキュビットを制御する。量子プロセッサ207が指定された実行状態に達すると、測定識別ユニット(MDU)403A~Bのうちの1または複数によって量子測定が行われる。
【0054】
図4Bに示されるQ―Cインタフェース206は、RFマイクロ波ユニット451、マルチチャネル任意波形生成器(AWG)452、1または複数のデジタルアナログ変換器(DAC)453および1または複数の測定ユニット454を含む、マイクロ波複合信号生成を実行するために一セットの構成要素を含む。一実施形態において、これらの構成要素の各々に対する入力は、量子エンジン機能ユニット204Eによって生成された一セットのコードワードを含み、出力は、量子プロセッサ207のキュビットの状態を操作するアナログ波形である。測定ユニット454は、実行中の指定された時点で1または複数のキュビットと関連付けられた現在の状態を測定する。
【0055】
分析および考察をさらにガイドするために、具体的な例が
図5Aに図示され、これは、時間発展すべき多体無秩序ハミルトニアンのための量子回路を示す。R
xおよびR
yが回転する角度は、いくつかのパラメータから導出されることに留意されたい。詳細には、k∈{0,1,…,5,6}でのhk
zおよびhk
xが、ランダムに生成され、基本の量子チップがサポートするものより多くの数のキュビットを必要とする大きな多体系をエミュレートするのに使用される。
【0056】
その計算の一部のためにこの回路を使用する量子プログラムの一例が
図5Bに図示されており、これは、(ソースコードの右のコメントによって指示されるように)量子命令と非量子命令の混合を含む。この例では、NRは、無秩序の実現(すなわち、大きな多体系をエミュレートするための多様な小さいランダムな実現)の数であり、NQは、キュビットの数であり、NPは、確率(Pr)に対して必要な精度を達成するための繰り返しの数であり、NTは、トロッターステップの数であり、a[i]は、キュビット測定を蓄積する。キュビットが状態|0>または|1>である確率は、測定(NP)を繰り返すこと、および平均化することによって獲得される。
【0057】
このプログラム構造は、古典オペレーションおよび量子オペレーションがどのように厳密に絡み合い、本明細書に記載される古典量子処理アーキテクチャ上で実行されるかを示す。このプログラムを実行するために最も効率的な方法は、上記に記載したものなど、パイプライン内の全ての命令を処理することであり、キュビットを制御するための量子エンジン機能ユニット204Eは、他の古典実行エンジン204A~B(整数、浮動小数点など)に匹敵する実行エンジンとして構成される。
【0058】
図6A~
図6Bは、
図5Aのプログラムコードに応答して実行される量子オペレーションの一例を提供する。詳細には、
図6Aは、
図5Aの量子回路の強調された部分501を実装するための量子アセンブリ言語(QASM)コード601の一部を図示する。QASMコード601は、メモリ205内のハイブリッドプロセッサプログラムコード602にコンパイルされる。この例では、共有レジスタファイル321または204BからのレジスタRBXおよびRBX+1は、この特定の例では、論理キュビット#2および#3をそれぞれアドレス指定するためにキュビットインデックスを保持するのに使用される。QASMコード601の関連部分のハイブリッドプロセッサプログラムコード602へのマッピングは矢印によって示される。
【0059】
図6Bは、(CNOTゲートを実装するために)量子マクロ命令QCNOTUPがどのように、デコーダ202によって一連のuops605にデコードされるかを図示する。uops605は、量子エンジン機能ユニット204Eによって実行されて、指定されたコードワードまたはコマンドパケットフォーマット606でコードワードを生成する。一つの特定のフォーマットでは、第1のデータフィールドは、操作が実行されるべきキュビット(この例ではキュビット3)を指しており、第2のデータフィールドは、演算が伝送されるべきチャネル(チャネル4)を指しており、第3のフィールドは、コマンド状態(例えば単一のコマンド状態)を指しており、第4のデータフィールドは、キュビットのタイプ(トランズモンキュビット)を指している。当然のことながら、本発明の基本原理は、いずれかの特定のエンコーディングフォーマットに限定されるものではない。
【0060】
本発明の一実施形態による方法が
図7に示されている。方法は、上記に記載したプロセッサアーキテクチャの文脈の範囲内で履行されてよいが、いずれかの特定のプロセッサまたはシステムアーキテクチャに限定されるものではない。
【0061】
701で、量子命令を含むソースコードが、量子命令および非量子命令を有するランタイムプログラムコードを生成するためにコンパイルされる。702で、量子/非量子命令がメモリからフェッチされ、ローカルキャッシュ(例えばL1命令キャッシュ)または命令バッファに格納される。言及したように、量子命令は、パイプライン内で非量子命令と自由に組み合わされてよい。
【0062】
703で、量子命令および非量子命令は、量子uopsのセットおよび非量子uopsのセットにそれぞれデコードされ、実行の前にキューに格納される。704で、量子/非量子命令uopsは、uopsおよび/またはリソース従属性に基づいて実行のためにスケジュールに入れられる。例えば、第1のuopが第2のuopの結果に従属している場合、このとき、第1のuopは、第2のuopによって生成されたデータがレジスタのうちの1つにおいて利用可能である場合に限って、実行のためにスケジュールに入れられてよい。同様に、特定の機能ユニットがビジーである場合、このとき、スケジューラは、その機能ユニットを必要とするuopをスケジュールに入れる前に、機能ユニットが利用可能であることの指示を待つ場合がある。種々の他の/追加のスケジューリング技術(例えば、優先度、レジスタ負荷などに基づくスケジューリング)が履行されてもよい。
【0063】
705で、量子uopsおよび非量子uopsが、実行回路内でのそのそれぞれの機能ユニット上で実行される。言及したように、共有レジスタセットは、これらのuopsによって必要とされるソースおよびデスティネーションオペランドを格納するのに使用されてよい。
【0064】
706で、量子uopsの実行によって生成された結果が、インタフェースユニットへの入力として使用されることで、量子プロセッサ内のキュビットの量子状態を制御してよい。一実施形態において、一連のコードワードまたはコマンドパックが生成されてよく、これらは、量子チャネル、量子プロセッサ内の1または複数のキュビット、キュビットタイプおよび/またはコマンド状態を識別する。コードワードまたはコマンドパケットに応答して実行される特有の物理的オペレーションは、使用される量子プロセッサの基本的タイプに基づいている。
【0065】
本明細書に記載される実施形態は、既存のプロセッサパイプライン内の量子命令を統合する。厳密な統合が理由で、このような実施形態は、現在のコプロセッサ設計に関連する種々のオーバーヘッド/ボトルネックを大きく削減する。オーバーヘッド/ボトルネックは、例えば、古典計算レイヤ/モジュールと、ソフトウェアスタック内の量子計算レイヤ/モジュール間、および古典CPUとメッセージキューを介する量子チップ間の通信を含む。量子ルーチンの相対的に小さいサイズを考えると、現在のGPUのようなコプロセッサ実装形態は、非効率的である。
【0066】
増大した古典処理能力のために、ハイブリッドコプロセッサモデルは、オーバーヘッドの一部を削減する。ハイブリッドコプロセッサモデルをサポートする一つの特定の実装形態では、多くの新たなマイクロアーキテクチャ機構が導入された。しかしながら、これらのマイクロアーキテクチャ機構は、古典CPUと量子コプロセッサとの間の境界であるように、曖昧に定義された。
【0067】
対照的に、本明細書に記載されるハイブリッドアーキテクチャでは、古典計算パイプラインは、定義されたセットの量子命令を完全にサポートするように装備され、これは、パイプラインのフロントエンド(すなわち、マイクロ命令レベルで)で、およびパイプラインのバックエンド内(例えば量子uopsが非量子uopsと混合される場所)の両方で非量子命令と自由に混合されてよく、プロセッサの実行回路内の実行ユニット上で実行されてよい。
[量子実行エンジンおよび/またはコプロセッサのための拡張可能キュビットアドレス指定モード]
【0068】
量子コンピューティングにおいて、キュビットは、古典バイナリビットと対等の量子である、量子情報の単位である。計算は、量子論理演算を表す量子ゲートをキュビットに直接加えることによって達成される。数学的には、この計算プロセスは、キュビットが単一の変換を受けるように記述される。計算が完了すると、キュビットが測定されて、キュビットの状態に関する情報を得る。
【0069】
したがって、量子オペレーションを記述するためには、オペレーションが適用されるキュビットまたはキュビットのセットを識別することが必須である。量子プログラムでは、各量子命令は、実行されるべきオペレーションと、オペレーションを実行する1または複数のキュビットの両方をエンコードする必要がある。既存の量子命令セットアーキテクチャ(例えばQASM、Open QASM、QISなど)では、レジスタオペランドは、命令のオペコードに通常エンコードされる。このスキームは、レジスタの数が極めて制限される(例えば16、32、64など)ため古典計算のみに機能する。しかしながら、量子命令は最終的には極めて大きな数のキュビットをアドレス指定する必要があるため、このスキームは、量子コンピューティングにとっては拡張可能ではない。結果として、量子命令のオペコードフィールドにおけるキュビットアドレスをエンコードすることは、命令幅を莫大に増やすことになる。
【0070】
上記に記載したように、一実施形態では、量子命令と非量子命令は、共有プロセッサパイプラインの中で一緒に処理される。したがって、量子命令は、非量子命令に利用可能であるものと同一のアドレス指定モードに依拠してもよい。この実施形態におけるキュビットはしたがって、システムメモリにアクセスし、大きな数のキュビットを収容するのに十分に大きなアドレススペースを提供する非量子命令と同様の方式でアドレス指定される。
【0071】
図8に図示されるように、この実施形態では、量子エンジン機能ユニット204Eは、1または複数のuops805に応答してキュビットインデックス値またはキュビットIDを決定するキュビットインデックス生成ユニット(QIG)802を含む。1または複数の量子オペレーションユニット801は、uopsによって指定されたオペレーションを処理する。キュビットインデックス値(例えば、この例ではキュビット3に対する011)は、その後、場合によっては、uops805を処理することに応答して量子オペレーションユニット801によって生成された1または複数のコマンドと合わせて、コードワードまたはコマンドパケット606内に組み入れられる。
【0072】
QIG802は、プロセッサによってサポートされる異なるアドレス指定モードに従って動作してよい。一実施形態において、命令は、キュビットインデックス値(キュビットIDと呼ばれる場合もある)を包含する共有レジスタ321のうちの1つを識別する。その後、キュビットインデックス値を使用して、コードワードまたはコマンドパケット606内のキュビットを識別する、および/またはキュビットインデックス値を使用して1つのオペレーションを実行して、1または複数の追加のキュビットインデックス値を生成してもよい。例えば、それは、キュビットID値を、uopによって指定された整数に加えて第2のキュビットIDを生成する。
【0073】
以下の例は、QIG802がx86アセンブリ構文を使用してuopsに応答してキュビットIDを生成する1つの方法を例証する。これらのオペレーションは、量子命令をサポートするために拡張されたx86パイプライン内で実行されてよい。しかしながら、同じ一般的な原理が、いずれのプロセッサアーキテクチャ上で履行されてもよい。
【0074】
単一のキュビット命令「QIROTX[RDI]、1」は、RDIに格納されたキュビット数にXゲートを加える。したがって、RDIが5を含む場合、Xゲートがキュビット数5に加えられる。この例では、QIG802は、RDI(この例では、共有レジスタ321のうちの1つである)に格納された値を単に読み取ることによってキュビットIDを決定する。この実施形態では、RDI値は、別のuopによって事前に格納された。別の例では、アーキテクチャレジスタRBXが2の値を含む場合、このとき、2つのキュビット命令「QCNOTUP[RBX+3]、は、CNOTオペレーションを適用し、キュビット2(q[2])は制御キュビットであり、キュビット5(q[5])は、目標キュビットである。制御キュビットのIDがRBXに格納され、制御キュビットのIDが目標キュビットIDであるとき、QIGは、[RBX+3]標記を解明する。こうして、アドレス指定スキームが拡張されて、2つの異なるキュビットを単一の命令(すなわちCNOT)でアドレス指定することができる。対照的に、古典計算では、1つのメモリ箇所しか命令ごとにアドレス指定されない。
【0075】
図8はまた、コードワードトリガパルス生成器(CTPG)402Aも図示しており、これは符号語/コマンドパケット606を解明して、1または複数のキュビット(この例ではQ3)を識別し、パルスのシーケンスを生成して指定された量子オペレーションを履行するために、制御論理およびアナログデジタル変換器を含む。プログラムコード205Cによって指定されたように量子オペレーションの全てが実行されたとき、量子オペレーション回路801およびQIG802は、コードワード/コマンドパケット606を生成し、1または複数のMDU403A~Bに(キュビットインデックスを生成するQIG802によって指定されるような)1または複数のキュビットを測定させる。言及したように、MDUは、アナログ測定値をデジタル値に変換するためにアナログデジタル回路を含み、デジタル値は、その後、エラーを検出し、場合によっては訂正するために量子エラー訂正ユニット808によって処理される。有効な結果データを受け取った場合、それは、共有レジスタ321のうち1または複数に格納される、および/またはこれ以前の測定データと累積されてもよい。エラー訂正に加えて、測定値はまた、測定フィードバックに基づいてプログラムフロー制御に使用することもできる。
【0076】
量子エラー訂正ユニット808は、量子エラーを検出し訂正するために種々の技術を履行してよい。例えば、一実施形態では、(QECユニット808内の)エラーデコーダは、量子プロセッサ207からの多数のキュビット測定値をデコードして、エラーが生じたかどうかを判定し、そうであった場合、(可能な)訂正措置を履行する。エラー測定値は、キュビットのエンコードされた状態での量子情報を攪乱しない方法で(例えばアンシラキュビットを使用して)、多数のキュビットから取得されてよい。これに応答して、QECユニット808は、エラーシンドロームデータを生成し、このデータから、それは発生したエラーを識別し、訂正オペレーションを履行してよい。一実施形態において、エラーシンドロームデータは、表面コードなどのスタビライザコードを有する。一部のケースでは、応答は、単にキュビットを再初期化し、始めからやり直す場合もある。しかしながら他のケースでは、量子プログラムコード205Cで履行された量子アルゴリズムに対する修正は、エラーに対して責任のある量子プロセッサの領域をスタビライズするために行われる場合もある(例えばこの場合、コンパイラ205Bは、実行時(JIT)コンパイラを含む)。いずれのケースでも、CTPG402Aは、QEFU204Eによって生成されたコードワード/コマンドパケット606の制御の下で、基本の物理的オペレーションを実行する。例えば、CTPG402Aは、電磁パルスを生成して、検出された位相エラーに従って1または複数のキュビットの位相を調節してよい、あるいは再初期化が必要とされる場合、全てのキュビットの位相/スピンをリセットする場合もある。
【0077】
古典CPUのアドレスメモリのやり方と同様のやり方でキュビットをアドレス指定することは,将来の量子プロセッサ実装のために必要とされるスケーラビリティ特性/属性を提供する。詳細には、上記に記載した実施形態は、既存のプロセッサISA内にシームレスに統合され、多数のキュビットシステムにスケール変更するキュビットインデクシングを提供する。これらの実施形態はまた、x86までの量子拡張を介して、または他のアーキテクチャを介して、量子命令オペコードスペースからの圧力を取り除き、キュビットスペースのアドレス指定をし、量子オペレーションを既存のプロセッサパイプラインに統合する。
【0078】
本発明の一実施形態による方法が
図9に示されている。方法は、上記に記載したアーキテクチャ上で履行されてよいが、いずれか特定のプロセッサまたはシステムアーキテクチャに限定されない。
【0079】
901で、ランタイムプログラムコードからの量子命令および非量子命令がフェッチおよびデコードされ、量子uopおよび非量子uopを生成する。902で、インデックス生成ユニットは、レジスタ識別子を含む量子uopsおよび任意選択でuopsと共に含まれる1または複数の値を評価してキュビットインデックス値を決定する。上記に記載したように、インデックスは、uopsによって識別されたレジスタからのキュビットインデックス値を読み取り、uopsと共に含まれる整数値を使用して追加のキュビットインデックス値を生成することを含め、多様な技術を使用して生成されてよい。
【0080】
903で、量子実行回路は、計算されたキュビットインデックス値によって識別されるキュビット上で実行されるべき量子オペレーションを指定するコードワードを生成する。904で、量子オペレーションが指定されたキュビット上で実行される。905で、追加のuopsに基づいて生成された別のコードワードに応じてキュビット測定が実行される。906で、複数のキュビットのうちの1または複数に対して形成されたアナログ測定値がデジタル値に変換される。その後、エラー訂正および/またはフロー制御が、プロセッサのレジスタファイルに格納された得られたデジタル結果値に基づいて実行されてよい。
【0081】
図10は、エラー検出および訂正を備えた典型的な量子コンピュータの構成を示す。図示された例は、量子コンピュータランタイム1001(例えば、QASMプログラムコードに実装)を含み、量子コンピュータランタイム1001は、量子実行ユニット1002の量子実行パイプライン1005により実行される。限定ではないが例として、量子実行ユニット1002は、特定用途向け集積回路(ASIC)、汎用プロセッサ、または量子命令を実行するためのプログラマブル機能ユニットであってよい。
【0082】
量子プログラムコードの実行に応じて、量子実行パイプライン1005はコマンドを、量子チップ1020上で物理的量子オペレーションを実行するキュビット駆動コントローラ1010に送信する。実装により、これは、量子チップ1020のキュビットQ0~Q15を操作するためのRFパルスのシーケンスで達成されてよい。
【0083】
プログラム処理のすべてまたは特定の数が完了した後、測定ユニット1015は、キュビットQ0~Q15のうちの1または複数の量子状態を読み取り/推定し、および、測定結果を復号/エラー訂正ユニット1016に提供し、復号/エラー訂正ユニット1016は、エラー訂正復号技術を用いて当該測定を復号する。例えば、復号/エラー訂正ユニット1016は、量子プロセッサ1020からのマルチキュビット測定を復号して、エラーが発生したかどうかを決定し、発生している場合、可能であれば訂正措置を実装する。エラー測定値は、キュビットのエンコードされた状態での量子情報を攪乱しない方法で(例えばアンシラキュビットを使用して)、複数のキュビットから取得されてよい。これに応じて、エラーシンドロームデータが生成されてよく、エラーシンドロームデータから、エラーおよび訂正オペレーションが識別されてよい。一実施形態において、エラーシンドロームデータは、表面コード等のスタビライザコードを有する。いくつかの場合において、応答は、単にキュビットQ0~Q15を再初期化し、始めからやり直してもよい。しかしながら他の場合では、量子アルゴリズムへの修正が量子プログラムコード1001において実装されてよい。
【0084】
復号された/訂正された結果が量子実行ユニット1002に提供され、量子ランタイム1001によるさらなる処理が行われる。現在の量子コンピュータの典型的なオペレーションフローは、量子実行パイプライン1005により実行される各量子オペレーションの固定サイクル時間、および測定ユニット1015によりなされた各測定に基づき設計されている。
【0085】
図11は、本明細書で説明されるアーキテクチャにより実装されてよい量子エラー訂正サイクルの一実施形態を示す。1101において、システムのキュビットのロジカル状態が初期化される。例えば、電子スピンが量子状態として使用される場合、量子システム内の電子が準備されてよい(例えば、特定のスピン方向に初期化される、および/または、量子コントローラからの電磁制御信号を用いてもつれさせる)。
【0086】
1102において、量子システムの状態が、量子ランタイム1001により指定され、量子コントローラ1010により実装される追加の電磁入力に応じて進化する。例えば、アンシラキュビットを含む異なるセットのキュビットが、量子ランタイム1001に従い、もつれさせられ、操作されてよい。
【0087】
1103において、量子システムの測定がなされる。例えば、複数のもつれ電子のうちの1つのもつれ電子の現在のスピンが測定されてよい。システムはその後に再初期化されて、次の測定へと移ってよい(すなわち、測定をすること、または、量子システムに関する任意の情報を知ることが量子状態を混乱させることを考慮して)。各エラー訂正サイクル中に、物理キュビットは周期的に測定されてよい。
【0088】
1104において、エラー検出/分類が、測定結果に対し実行され、エラーが発生したかどうかが決定される。エラーサイクルは、1105において指定されたセットのコードを用いたエラー訂正オペレーションで完了し、指定されたセットのコードは任意の検出されたエラーの訂正を試みる。
[融合および分解ゲートによる分散量子システムにおけるエラー低減]
【0089】
量子コンピュータのスケーリングアップは、量子モジュール間の通信を必要とする。本明細書で用いられる用語「モジュール」は、コア、チップレット、ダイ、パッケージ、システムまたは他の区別可能なキュビットの集まりを指す。スケーリングに対するこの要件は10年以内でさえ当てはまり得る。というのは、短期量子コンピュータでさえ、複数の相互接続されたシリコン量子ドット「チップレット」、イオントラップ、超電導体アレイ、または任意の他のタイプの相互接続されたハードウェアで構成され得るからである。
【0090】
しかしながら、かかるインターモジュール通信は、インターモジュールオペレーションがイントラモジュールオペレーションよりもエラーをおこしやすいことを考慮すると、忠実度のより低い量子コンピューティングにつながり得る。また、より多くの通信はより多くのアイドリング時間につながり、これがキュビット状態間のデコヒーレンスを増大させる。
【0091】
現在、この問題に対する部分的な解決策しかなく、当該解決策は主に、異なる最適化アルゴリズムを用いたキュビットインデックスの並べ替えに焦点を置く。しかしながら、これらの技術は、量子ゲートシーケンスそれ自体に対する修正は行わない。結果的に、通信関連のエラーを低減するための可能な手段が限定的である。
【0092】
これらの限定に対処すべく、以下に説明される本発明の実施形態は、必要とされるインターモジュール通信量を低減することにより量子エラーを低減する様々な技術を含む。特に、これらの実施形態は、量子コンピューティングコンパイラにおける「融合および分解」オペレーションを実装し、当該オペレーションでは、多くの量子ゲートが1つの大きな「ユニタリ」オペレーションに「融合」され、且つ、全体的なアルゴリズムエラーを低減し、および/または、最適化および同期等の古典的アルゴリズムステップの複雑度を低減するゲートの異なるシーケンスに分解される。上で説明されるように、これらの技術は、大量の量子モジュールにスケーリングされる。
【0093】
図12A~Bを参照すると、短期および中期量子コンピューティングは、量子モジュール1201~1206間の通信を必要とし、量子モジュール1201~1206は、チップレット、コア、または任意の他の区別可能なキュビットの集まりであってよい。
図12Aは、通信相互接続1210を介して接続され1つの大きな量子システム1200を形成する、複数の量子モジュール1201~1206を示す。
図12Bは、第1の量子モジュール1251と第2の量子モジュール1252との間のゲートレベル相互接続の例を示す。この特定の例において、量子モジュール1251~1252は、説明目的に用いられる、単一キュビットの複数のUゲートを含む。しかしながら、本発明の基本原理は、様々な他のキュビットゲートタイプを有するモジュールに実装されてよいことに留意されたい。
【0094】
図13A~13Bおよび
図14A~14Bは、本明細書に説明される融合および分解技術の概要を示す。
図13Aに示されるように、モジュール1301の境界の近くにあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスが識別され、ここでXは予め定められた閾値である。次に、ユニタリ生成ロジック1310が、当該ゲートのシーケンスを1つの大きなユニタリ行列1302に結合する。
【0095】
図13Bを参照すると、次に、分解ロジック1310はこのユニタリ1302を複数の代替的ゲートシーケンス1320に分解する。分解ごとに、正確なゲートシーケンスが生成されてよく(例えば1321)、または、
図14A~Bと関連付けて後述されるような近似のゲートシーケンスが用いられてよい。
【0096】
以下の例では、融合および分解技術が、例示的な2次元グリッドトポロジ上で実装され、どのように融合および分解が多モジュールのデバイス上で並行してスケールアップされるかをハイライトする。
【0097】
それぞれが複数のキュビット1410を有する4つのモジュール1401~1404が
図14Aに示されている。その目的は、インターモジュールライン1440をクロスするゲートを減らすことで、モジュール1401~1404間の通信を低減することである。
【0098】
図14Bに示される通り、第1のシーケンスのオペレーション(サブルーチン1)が、量子ゲートを移動させ、それらの量子ゲートがインターモジュールライン1440およびクラスタライン1450の両方をクロスすることを避けるようにする。特に、1セットのクロックサイクルの間、これらのラインをクロスするゲート数を最小化するスワップシーケンスが実行される。複数のゲートを共にクラスタリングすべく、クラスタライン1450が用いられる。クラスタライン1450をクロスするゲートが少ないほど、できるだけ多くのゲートが融合-分解オペレーションに用いられ得ることを保証する。
【0099】
これらのオペレーションはオプションであってよいが、連続的により多くのクロックサイクルが融合されることを可能にし得る。複数のキュビットにわたり、および、複数のクロックサイクルにわたり、このスワップシーケンスの決定を並列処理することは些末である。
【0100】
図15を参照すると、第2のシーケンスのオペレーション(サブルーチン2)は2つのネストされたステップを含む。第1に、パーティション生成ロジック1550が複数のキュビットのパーティションを識別する(例えば、1510、1511)。各パーティションは、X個以下のキュビットである必要があり、Xは予め決定された数(例えば、4、6、8等)である。第2に、これらのパーティション1510、1511のそれぞれについて、融合および分解ロジック1560~1561が、
図13A~13Bについて上記した融合および分解オペレーションを実行する。融合および分解オペレーションは、複数のクロックサイクルにわたり実行されてよい。次に、選択ロジック(不図示)が、最も低いコスト関数C
minを持つ分解結果を選択する。
【0101】
本発明の実施形態は、様々な異なるコスト関数を用い得る。例えば、コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および新しい回路の近似シミュレーションのうちの1または複数の関数であってよい。追加の例が以下に示される。
図16Aは、多モジュールの場合における本発明の一実施形態の粗い図である。最適化処理は、サブルーチン1(SR1)とサブルーチン2(SR2)とを交互にし、ここでサブルーチン1は、最適化されたスワップシーケンスである(例えば、
図14Bおよび関連の説明を参照)。クロックサイクルは、ラベルτ
iが付された四角で示される。
図16Bは、クロックサイクル1およびクロックサイクル2中の量子ゲートの位置の例を示す。サブルーチン2は、パーティションオペレーションと融合および分解オペレーションの選択についての並行分析であり、これらは、任意の数のクロックサイクルR
iのi番目の「期間」で行われる(説明目的で、R
1およびR
2クロックサイクルが示されている)。最終的なコスト関数は、すべての期間にわたるC
minの総和である。いくつかの実装において、シーケンスは、期間R
iを変えることによりさらに最適化されてよい。
【0102】
最適化が実行されてよい多くのパラメータおよびハイパパラメータにより、これらの技術は自由裁量で安価にまたは高価にされ得る。いくつかの場合において、例えば、ユーザは、小セットの分解のみを検索することを選択してよい。また、実質的なコンパイルコストはしばしば、量子エラーの少量の低減でさえ価値があることに留意されたい。
【0103】
本発明の実施形態は、モジュールに内部的に適用されてもよい。例えば、量子デバイスが単一の量子モジュールを含む場合であっても、本明細書に説明された融合および分解技術を用いて、任意の量子回路の深度またはエラーを低減してよい。
【0104】
さらに、本発明の実施形態は、短期および長期両方の量子コンピューティングハードウェアに適用可能である。短期のマルチモジュールモジュールハードウェアについては、忠実度を改善する目的のために、本明細書で説明される実施形態を用いて通信を低減してよい。逆に、長期では、これらの技術の主な焦点は、量子サブルーチンおよび従来のサブルーチンの両方を含め、量子シミュレーション時間の低減に変わってよい(従来のサブルーチンは、コンパイルステップおよび実行同期を含む)。長期エラー訂正ハードウェアの場合、コスト関数は主にシミュレーション時間全体の低減を考察する。
【0105】
本発明の一実施形態による方法が
図17に示されている。方法は、以下に説明されるアーキテクチャ上で実装されてよいが、いずれかの特定の量子処理アーキテクチャに限定されはしない。
【0106】
1701において、量子モジュールのセットが相互接続される。上記の通り、量子モジュールの各々は、チップレットまたはマルチチップモジュール等の個別の量子プロセッサであってよい。1702において、スワップシーケンスオペレーションが実行され、境界で隣接するゲートを最小化する(例えば、インターモジュール通信量を低減する)。1703において、ゲートが融合されるキュビットのセットが選択される。例えば、N個のキュビットのセットが選択されてよい(例えば、N=4、6、8等)。1704において、キュビットの各セット上のゲートが融合され、1705において、複数の代替的ゲートシーケンスに分解される。
【0107】
1706において、コスト関数が代替的ゲートシーケンスの各々に適用される。次に、最小のコスト関数を持つゲートシーケンスが選択される。
【0108】
以下は、コスト関数の例示である。しかしながら、本発明の基本原理は、いかなる特定のコスト関数またはコスト関数のセットにも限定されないことに留意されたい。
【0109】
例示的コスト関数1:正確な分解を持つ高速基準。
【数1】
τ
decoh‐キュビットデコヒーレンス時間
Ε
inter‐チップツーチップ2qゲートのエラー
Ε
intra‐イントラチップ2qゲートのエラー
ΔM
inter‐#チップツーチップ2qゲートの変更
ΔM
intra‐#イントラチップ2qゲートの変更
ΔS‐回路深度の増大による実行時間の変更
ΔR‐通信の増大による実行時間の変更
【0110】
例示的コスト関数2:近似的分解を持つ高速基準。
【数2】
τ
decoh‐キュビットデコヒーレンス時間
Ε
inter‐チップツーチップ2qゲートのエラー
Ε
intra‐イントラチップ2qゲートのエラー
ΔM
inter‐#チップツーチップ2qゲートの変更
ΔM
intra‐#イントラチップ2qゲートの変更
ΔS‐回路深度の増大による実行時間の変更
ΔR‐通信の増大による実行時間の変更
【数3】
=近似ユニタリ
【数4】
=行列ノルム
【0111】
例示的コスト関数3:テンソルネットワーク基準。この実装は、正確な分解および近似の分解の両方の方法に等しく適用される。
【0112】
1.(a)ノイズフリー回路ψNF、(b)元のノイズ回路ψorig、および(c)候補の近似回路ψcandiのためのN個のキュビットの3つのテンソルネットワークを構築する。「ノイズゲート」および/または「エラーゲート」を導入することで、デコヒーレンスおよびエラーを生じやすいゲートを含める。
【0113】
2.初期状態は任意であり、すなわちそれは、イコール重ね合わせ、もっともらしい(plausible)入力部分空間の密度行列、または他のユーザ定義の選択として選択されてよい。
【0114】
3.コスト関数を計算すべく、ネットワークを構築する。
【数5】
【0115】
計算を加速すべく、中間特異値分解(SVD)が、精緻度のより低いテンソルネットワーク計算に用いられてよい。この方法論は、当業者(例えば、量子コンピューティング分野における理論家)に容易に理解されるであろう。
【0116】
上で説明した技術は、任意のハードウェアタイプにも適用可能であり、限定されるものではないがそれらには、同一シリコンウェハ上の量子ドットのアレイ(通信タイプ:オンチップ相互接続)、異なるフリッジにおける超電導チップ(通信タイプ:フォトニック相互接続)、および異なるトラップにおけるイオントラップキュビットアレイ(通信タイプ:フォトニック相互接続)が含まれる。
【0117】
上記の詳細な記載では、本明細書の一部を形成する添付の図面を参照しており、そこでは、例示として、実施され得る実施形態が示されている。他の実施形態が用いられてよいこと、および本開示の範囲から逸脱することなく、構造的または論理的変更がなされ得ることを理解されたい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0118】
種々の操作は、クレーム請求される主題を理解するのに最も助けとなる方法で順に複数の別個の行動または操作として記載されてよい。しかしながら、説明の順序は、これらのオペレーションが必ずしも順序に依存していることを示唆するように解釈されるべきではない。詳細には、これらの操作は、提示の順番で実行されない場合もある。説明された動作は、説明された実施形態とは異なる順序で実行されてもよい。種々の追加の操作が実行される場合もある、および/または記載される操作が、追加の実施形態では省略される場合もある。「第1」、「第2」、「第3」、などの用語は、そうでないことが指定されなければ、特定の順番を示差するものではない。
【0119】
[例]
【0120】
以下は、本発明の異なる実施形態の例示的な実装形態である。
【0121】
例1。一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する段階;前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する段階;および前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する段階を備える、方法。
【0122】
例2。前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、例1の方法。
【0123】
例3。前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする段階;各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する段階;前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する段階;および前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する段階をさらに備える、例2の方法。
【0124】
例4。前記評価する段階はさらに、前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する段階;および
前記コスト値の最小値と関連付けられたゲートシーケンスの組み合わせを選択する段階を含む、例3の方法。
【0125】
例5。前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、例1の方法。
【0126】
例6。第1のモジュール内で前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを識別する段階をさらに備え、前記段階は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する段階を含み、Xは予め定められた閾値である、例3の方法。
【0127】
例7。識別する前記段階はさらに、前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する段階を含む、例6の方法。
【0128】
例8。前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、例7の方法。
【0129】
例9。前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、例7の方法。
【0130】
例10。前記一群の量子ゲートは、単一の量子モジュールに含まれる、例1の方法。
【0131】
例11。
複数のキュビットを含む量子モジュール;一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成するためのユニタリ生成ロジック;前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解するための分解ロジック;および前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別するための選択ロジックを備える、装置。
【0132】
例12。前記量子モジュールは、複数の相互接続された量子モジュールのうちの1つを含み、前記一群の量子ゲートは、複数の量子ゲートのうちの第1のサブセットを含み、前記複数の量子ゲートのうちの少なくとも一部は、前記相互接続された量子モジュールにわたる、例11の装置。
【0133】
例13。例12の装置は、前記複数の量子ゲートを、前記第1のサブセットを含む、複数のサブセットの量子ゲートにパーティショニングするためのパーティショニングロジックをさらに備え、前記ユニタリロジックは、各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成し、前記分解ロジックは、前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解し、前記選択ロジックは、前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する。
【0134】
例14。例13の装置は、前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成するためのコスト加算ロジックをさらに備え、前記選択ロジックは、前記コスト値のうちの最小値と関連付けられるゲートシーケンスの組み合わせを選択する。
【0135】
例15。前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、例11の装置。
【0136】
例16。前記パーティショニングロジックは、第1のモジュール内で前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを識別し、前記識別は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別することを含み、Xは予め定められた閾値である、例13の装置。
【0137】
例17。前記第1のモジュール内で前記一群の量子ゲートを識別すべく、前記パーティショニングロジックは、前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する、例16の装置。
【0138】
例18。前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、例17の装置。
【0139】
例19。前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、例17の装置。
【0140】
例20。格納されたプログラムコードを有する機械可読媒体であって、キュビットコントローラにより実行されると、一群の量子ゲートを結合して少なくとも1つのユニタリオペレーションを形成する手順;前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する手順;および前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させる、格納されたプログラムコードを有する機械可読媒体。
【0141】
例21。前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、例20の機械可読媒体。
【0142】
例22。マシンに、前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする手順;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する手順;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させる、プログラムコードをさらに備える、例21の機械可読媒体。
【0143】
例23。前記評価する手順はさらに、前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する手順;および
前記コスト値の最小値と関連付けられたゲートシーケンスの組み合わせを選択する手順を含む、例22の機械可読媒体。
【0144】
例24。前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、例20の機械可読媒体。
【0145】
例25。さらに、第1のモジュール内で前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを識別する手順を備え、前記識別する手順は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する手順を含み、Xは予め定められた閾値である、例22の機械可読媒体。
【0146】
例26。識別する前記手順はさらに、前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する手順を含む、例25の機械可読媒体。
【0147】
例27。第1のモジュールおよび第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、例26の機械可読媒体。
【0148】
例28。前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、例26の機械可読媒体。
【0149】
例29。前記一群の量子ゲートは、単一の量子モジュールに含まれる、例20の機械可読媒体。
【0150】
本開示の目的において、「Aおよび/またはB」という文言は、(A)、(B)または(AおよびB)を意味する。本開示の目的に関して、フレーズ「A、Bおよび/またはC」は、(A)、(B)、(C)(AおよびB)、(AおよびC)、(BおよびC)または(A、BおよびC)を意味する。「間」という用語が測定範囲を参照して用いられるとき、測定範囲の両端の値が含まれる。本明細書で使用される際、表記「A/B/C」は、(A)、(B)および/または(C)を意味する。
【0151】
説明は、「一実施形態において」または「実施形態において」という文言を用いるが、これらのそれぞれは、同じまたは異なる実施形態のうちの1または複数を指してよい。さらに、用語「備える」、「含む」、「有する」などは、本開示の実施形態に関して使用されるとき、同義語である。
【0152】
本発明の実施形態は、上述した様々な段階を含んでよい。当該段階は、汎用又は専用プロセッサに段階を実行させるために用いられ得る機械実行可能命令で具現化されてよい。あるいは、これらの段階は、これらの段階を行うためのハードワイヤードロジックを含む特定のハードウェアコンポーネントによって、又はプログラム済みコンピュータコンポーネントとカスタムハードウェアコンポーネントとの任意の組み合わせによって実行されてよい。
【0153】
本明細書において説明されたように、命令は、特定の演算を実行するように構成される、又は、予め定められた機能を有する特定用途向け集積回路(ASIC)などのハードウェアの特定の構成、又は、非一時的なコンピュータ可読媒体において具現化されるメモリ内に格納されるソフトウェア命令を指し得る。したがって、図に示される技術は、格納されたコード及びデータを用いて実装され、1又は複数の電子デバイス(例えば、エンドステーション、ネットワーク要素など)で実行され得る。そのような電子デバイスは、非一時的コンピュータ機械可読記憶媒体(例えば磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリデバイス、相変化メモリ)および一時的コンピュータ機械可読通信媒体(例えば電気、光学、音響または他の形態の伝播信号、例えば搬送波、赤外信号、デジタル信号など)などのコンピュータ機械可読媒体を使用してコードおよびデータを格納し(内部で、および/またはネットワークを介して他の電子デバイスと)通信する。
【0154】
さらに、そのような電子デバイスは通常、1つ又は複数の記憶デバイス(非一時的な機械可読記憶媒体)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、及びネットワーク接続などの1つ又は複数の他のコンポーネントに連結される1つ又は複数のプロセッサのセットを含む。プロセッサ及び他のコンポーネントのセットの連結は、典型的には、1又は複数のバス及びブリッジ(バスコントローラとも呼ばれる)を通じて行われる。記憶デバイス及びネットワークトラフィックを搬送する信号はそれぞれ、1又は複数の機械可読記憶媒体及び機械可読通信媒体を表す。したがって、所与の電子デバイスの記憶デバイスは、その電子デバイスの1又は複数のプロセッサのセットでの実行のために、コード及び/又はデータを典型的には格納する。もちろん、本発明の実施形態の1又は複数の部分は、ソフトウェア、ファームウェア及び/又はハードウェアの異なる組み合わせを用いて実装されてもよい。この詳細な説明にわたり、説明の目的で、本発明の全体的な理解を提供するために、多くの具体的な詳細が記載された。しかしながら、本発明がこれらの具体的な詳細のいくつかがなくても実施され得ることが当業者には明らかである。特定の例において、周知の構造及び機能は、本発明の主題が曖昧になることを回避するために、詳細な説明において説明されてこなかった。したがって、本発明の範囲及び趣旨は、以下の特許請求の範囲の観点から判断されたい。
【手続補正書】
【提出日】2024-06-18
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する段階;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する段階;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記
複数の代替的ゲートシーケンスのうちの少なくとも1つを識別する段階を備える、方法。
【請求項2】
前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、請求項1に記載の方法。
【請求項3】
前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする段階;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する段階;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する段階;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記
複数の代替的ゲートシーケンスのうちの少なくとも1つを識別する段階をさらに備える、請求項2に記載の方法。
【請求項4】
前記評価する段階はさらに、
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する段階;および
前記
複数のコスト値のうちの最小値と関連付けられたゲートシーケンスの組み合わせを選択する段階を含む、請求項3に記載の方法。
【請求項5】
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更、および回路の近似シミュレーションのうちの1または複数に基づく、請求項1
に記載の方法。
【請求項6】
前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別する段階をさらに備え、識別する前記段階は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する段階を含み、Xは予め定められた閾値である、請求項3
に記載の方法。
【請求項7】
識別する前記段階は、さらに、
前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する段階を含む、請求項6に記載の方法。
【請求項8】
前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、請求項7に記載の方法。
【請求項9】
前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、請求項7に記載の方法。
【請求項10】
前記一群の量子ゲートは、単一の量子モジュールに含まれる、請求項1
に記載の方法。
【請求項11】
複数のキュビットを含む量子モジュール;
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成するためのユニタリ生成ロジック;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解するための分解ロジック;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記
複数の代替的ゲートシーケンスのうちの少なくとも1つを識別するための選択ロジックを備える、装置。
【請求項12】
前記量子モジュールは、複数の相互接続された量子モジュールのうちの1つを含み、前記一群の量子ゲートは、複数の量子ゲートのうちの第1のサブセットを含み、前記複数の量子ゲートのうちの少なくとも一部は、前記
複数の相互接続された量子モジュールにわたる、請求項11に記載の装置。
【請求項13】
前記複数の量子ゲートを、前記第1のサブセットを含む、複数のサブセットの量子ゲートにパーティショニングするためのパーティショニングロジックをさらに備え、
前記ユニタリ
生成ロジックは、各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成し、
前記分解ロジックは、前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解し、
前記選択ロジックは、前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記
複数の代替的ゲートシーケンスのうちの少なくとも1つを識別する、請求項12に記載の装置。
【請求項14】
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成するためのコスト加算ロジックをさらに備え、
前記選択ロジックは、前記
複数のコスト値のうちの最小値と関連付けられるゲートシーケンスの組み合わせを選択する、請求項13に記載の装置。
【請求項15】
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、請求項11
に記載の装置。
【請求項16】
前記パーティショニングロジックは、前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別し、前記識別は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別することを含み、Xは予め定められた閾値である、請求項13
に記載の装置。
【請求項17】
前記第1のモジュール内で前記一群の量子ゲートを識別すべく、前記パーティショニングロジックは、前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する、請求項16に記載の装置。
【請求項18】
前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、請求項17に記載の装置。
【請求項19】
前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、請求項17に記載の装置。
【請求項20】
マシンに、
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する手順;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記
複数の代替的ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させる
ための、プログラム。
【請求項21】
前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、請求項20に記載の
プログラム。
【請求項22】
前記プログラムは前記マシンに
さらに、
前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする手順;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する手順;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記
複数の代替的ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させる
、請求項21に記載の
プログラム。
【請求項23】
前記評価する手順はさらに、
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する手順;および
前記
複数のコスト値の最小値と関連付けられたゲートシーケンスの組み合わせを選択する手順を含む、請求項22に記載の
プログラム。
【請求項24】
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、請求項20
に記載の
プログラム。
【請求項25】
前記プログラムは前記マシンにさらに、
前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別する手順を実行させ、前記識別する手順は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する手順を含み、Xは予め定められた閾値である、請求項22
に記載の
プログラム。
【請求項26】
請求項20から25のいずれか一項に記載のプログラムを格納した機械可読媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0154
【補正方法】変更
【補正の内容】
【0154】
さらに、そのような電子デバイスは通常、1つ又は複数の記憶デバイス(非一時的な機械可読記憶媒体)、ユーザ入力/出力デバイス(例えば、キーボード、タッチスクリーン、及び/又はディスプレイ)、及びネットワーク接続などの1つ又は複数の他のコンポーネントに連結される1つ又は複数のプロセッサのセットを含む。プロセッサ及び他のコンポーネントのセットの連結は、典型的には、1又は複数のバス及びブリッジ(バスコントローラとも呼ばれる)を通じて行われる。記憶デバイス及びネットワークトラフィックを搬送する信号はそれぞれ、1又は複数の機械可読記憶媒体及び機械可読通信媒体を表す。したがって、所与の電子デバイスの記憶デバイスは、その電子デバイスの1又は複数のプロセッサのセットでの実行のために、コード及び/又はデータを典型的には格納する。もちろん、本発明の実施形態の1又は複数の部分は、ソフトウェア、ファームウェア及び/又はハードウェアの異なる組み合わせを用いて実装されてもよい。この詳細な説明にわたり、説明の目的で、本発明の全体的な理解を提供するために、多くの具体的な詳細が記載された。しかしながら、本発明がこれらの具体的な詳細のいくつかがなくても実施され得ることが当業者には明らかである。特定の例において、周知の構造及び機能は、本発明の主題が曖昧になることを回避するために、詳細な説明において説明されてこなかった。したがって、本発明の範囲及び趣旨は、以下の特許請求の範囲の観点から判断されたい。
[項目1]
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する段階;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する段階;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する段階を備える、方法。
[項目2]
前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、項目1に記載の方法。
[項目3]
前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする段階;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する段階;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する段階;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する段階をさらに備える、項目2に記載の方法。
[項目4]
前記評価する段階はさらに、
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する段階;および
前記コスト値のうちの最小値と関連付けられたゲートシーケンスの組み合わせを選択する段階を含む、項目3に記載の方法。
[項目5]
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更、および回路の近似シミュレーションのうちの1または複数に基づく、項目1から4のいずれか一項に記載の方法。
[項目6]
前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別する段階をさらに備え、識別する前記段階は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する段階を含み、Xは予め定められた閾値である、項目3から5のいずれか一項に記載の方法。
[項目7]
識別する前記段階はさらに、
前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する段階を含む、項目6に記載の方法。
[項目8]
前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、項目7に記載の方法。
[項目9]
前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、項目7に記載の方法。
[項目10]
前記一群の量子ゲートは、単一の量子モジュールに含まれる、項目1から9のいずれか一項に記載の方法。
[項目11]
複数のキュビットを含む量子モジュール;
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成するためのユニタリ生成ロジック;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解するための分解ロジック;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別するための選択ロジックを備える、装置。
[項目12]
前記量子モジュールは、複数の相互接続された量子モジュールのうちの1つを含み、前記一群の量子ゲートは、複数の量子ゲートのうちの第1のサブセットを含み、前記複数の量子ゲートのうちの少なくとも一部は、前記相互接続された量子モジュールにわたる、項目11に記載の装置。
[項目13]
前記複数の量子ゲートを、前記第1のサブセットを含む、複数のサブセットの量子ゲートにパーティショニングするためのパーティショニングロジックをさらに備え、
前記ユニタリロジックは、各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成し、
前記分解ロジックは、前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解し、
前記選択ロジックは、前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する、項目12に記載の装置。
[項目14]
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成するためのコスト加算ロジックをさらに備え、
前記選択ロジックは、前記コスト値のうちの最小値と関連付けられるゲートシーケンスの組み合わせを選択する、項目13に記載の装置。
[項目15]
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、項目11から14のいずれか一項に記載の装置。
[項目16]
前記パーティショニングロジックは、前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別し、前記識別は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別することを含み、Xは予め定められた閾値である、項目13から15のいずれか一項に記載の装置。
[項目17]
前記第1のモジュール内で前記一群の量子ゲートを識別すべく、前記パーティショニングロジックは、前記一群の量子ゲートを前記第1のモジュール内の異なる位置に移動して、第2のモジュールにおける量子ゲートとの相互接続数を最小化する、または低減する配置を識別する、項目16に記載の装置。
[項目18]
前記第1のモジュールおよび前記第2のモジュールは、各々が複数のキュビットを含む量子プロセッサを含む、項目17に記載の装置。
[項目19]
前記第1のモジュールおよび前記第2のモジュールはそれぞれ、シリコンウェハ上の量子ドットのアレイ、異なるフリッジにおける超電導チップ、および/または、異なるトラップにおけるイオントラップキュビットアレイを含む、項目17に記載の装置。
[項目20]
格納されたプログラムコードを有するマシン可読媒体であって、前記プログラムコードはキュビットコントローラによって実行されると、
一群の量子ゲートを結合して、少なくとも1つのユニタリオペレーションを形成する手順;
前記ユニタリオペレーションを、正確なゲートシーケンスまたは近似のゲートシーケンスのいずれかを含む複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させる、マシン可読媒体。
[項目21]
前記一群の量子ゲートは、複数の相互接続された量子モジュールにわたる複数の量子ゲートのうちの第1のサブセットを含む、項目20に記載のマシン可読媒体。
[項目22]
前記マシンに、
前記複数の量子ゲートを、前記第1のサブセットを含む、量子ゲートの複数のサブセットにパーティショニングする手順;
各サブセット内の前記量子ゲートを結合して、別個のユニタリオペレーションを形成する手順;
前記ユニタリオペレーションの各々を、複数の代替的ゲートシーケンスに分解する手順;および
前記複数の代替的ゲートシーケンスをコスト関数に基づき評価して、前記ゲートシーケンスのうちの少なくとも1つを識別する手順を実行させるプログラムコードをさらに備える、項目21に記載のマシン可読媒体。
[項目23]
前記評価する手順はさらに、
前記ユニタリオペレーションの各々から分解された前記複数の代替的ゲートシーケンスの各々から決定されたコスト関数値を追加して、複数のコスト値を生成する手順;および
前記コスト値の最小値と関連付けられたゲートシーケンスの組み合わせを選択する手順を含む、項目22に記載のマシン可読媒体。
[項目24]
前記コスト関数は、デコヒーレンス時間、実行時間の変更、ローカル2キュビットゲートエラー、インターモジュール2キュビットゲートエラー、ローカルゲート数の変更、インターモジュールゲート数の変更および回路の近似シミュレーションのうちの1または複数に基づく、項目20から23のいずれか一項に記載のマシン可読媒体。
[項目25]
前記ユニタリオペレーションを形成するために用いられるべき前記一群の量子ゲートを第1のモジュール内で識別する手順をさらに備え、前記識別する手順は、前記第1のモジュールの境界の指定された近接度内にあり、且つ、X個以下のキュビット上で動作する連続するゲートのシーケンスを前記第1のモジュール内で識別する手順を含み、Xは予め定められた閾値である、項目22から24のいずれか一項に記載のマシン可読媒体。
【国際調査報告】