(57)【特許請求の範囲】
【請求項１】
処理コアのアレイであって、各処理コアが、
第1のチップ上のプロセッサ、および
前記第1のチップ上のプロセッサキャッシュを含む、処理コアのアレイと、
処理コアの前記アレイにおける隣接処理コアを相互接続するためのバスと
を備え、
各処理コアが、
前記プロセッサによって実行されると、前記プロセッサに、少なくとも1つの隣接処理コアのプロセッサキャッシュへのアクセスを行わせる制御コード
を含み、
処理コアの前記アレイが、
量子計算レイヤから測定データを受信することであって、各処理コアが、前記量子計算レイヤにおける量子デバイスの局所区画から測定値を受信するように構成される、受信することと、
前記測定データにおける複数の検出イベントを識別することと、
マッチしたペアを形成するために検出イベントを別の検出イベントにマッチさせることであって、前記マッチさせることが、
前記検出イベントを同じ局所区画における検出イベントにマッチさせることを、前記検出イベントを収める前記局所区画と関連付けられたプロセッサコアによって試行すること、ならびに
前記プロセッサコアが、検出イベントを同じ局所区画における別の検出イベントにマッチさせることができない場合、隣接プロセッサコアの前記プロセッサキャッシュにアクセスすること、および前記検出イベントを前記隣接プロセッサコアに対応する隣接局所区画における検出イベントにマッチさせることを試行すること
を含む、マッチさせることと、
前記マッチしたペアを使用して前記量子計算レイヤによって行われる量子計算アルゴリズムにおける1つまたは複数のエラーを判定することと
を行うように構成される、
装置。
【請求項２】
前記制御コードが、前記プロセッサキャッシュに格納される、請求項1に記載の装置。
【請求項３】
各プロセッサキャッシュが、
第1レベルのプロセッサキャッシュと、
第2レベルのプロセッサキャッシュと
を備え、
データが、前記プロセッサと前記第2レベルのプロセッサキャッシュとの間を前記第1レベルのキャッシュを介して行き来する、
請求項1または2に記載の装置。
【請求項４】
前記制御コードが、前記第2レベルのプロセッサキャッシュに格納される、請求項3に記載の装置。
【請求項５】
前記制御コードが、マシンコードを含む、請求項4に記載の装置。
【請求項６】
前記制御コードが、前記プロセッサによって実行されると、前記プロセッサに、前記少なくとも1つの隣接プロセッサコアの前記第2レベルのプロセッサキャッシュへアクセスさせる、請求項3から5のいずれか一項に記載の装置。
【請求項７】
前記プロセッサキャッシュが、前記少なくとも1つの隣接処理コアからアクセスされるデータを格納するように構成された1つまたは複数のバッファを備える、請求項1から6のいずれか一項に記載の装置。
【請求項８】
前記少なくとも1つの隣接処理コアからアクセスされる前記データが、前記バッファの1つまたは複数に周期的に書き込まれる、請求項7に記載の装置。
【請求項９】
各処理コアが、測定データの個々のセットを受信することと、前記プロセッサキャッシュに測定データの前記セットを格納することと、測定データの前記セットを処理することと、を行うように配列される、請求項1から8のいずれか一項に記載の装置。
【請求項１０】
前記測定データを処理するための命令が、前記プロセッサキャッシュに格納される、請求項9に記載の装置。
【請求項１１】
測定データの前記セットを処理するために、前記処理コアが、量子エラー訂正を行うように構成される、請求項9または10に記載の装置。
【請求項１２】
前記量子エラー訂正が、表面コードを実行することを含む、請求項11に記載の装置。
【請求項１３】
測定データの前記セットを処理するために、前記処理コアが、ランダムアクセスメモリを使用しないように構成される、請求項9から12のいずれか一項に記載の装置。
【請求項１４】
前記処理コアが、1つまたは複数の追加のプロセッサをさらに備える、請求項1から13のいずれか一項に記載の装置。
【請求項１５】
請求項1から14のいずれか一項に記載の装置を備える第1の古典計算レイヤと、
量子計算アルゴリズムを実行するように構成された量子デバイスのアレイを備える量子計算レイヤと
を備える、
システム。
【請求項１６】
第1の古典計算レイヤと、量子計算レイヤとを備え、
前記第1の古典計算レイヤが、処理コアのアレイを含み、
各処理コアが、
プロセッサ、
プロセッサキャッシュ、および
処理コアの前記アレイにおける隣接処理コアを相互接続するためのバス
を備え、
各処理コアが、
前記プロセッサによって実行されると、前記プロセッサに、少なくとも1つの隣接処理コアのプロセッサキャッシュへのアクセスを行わせる制御コード
を含み、
量子計算レイヤが、量子計算アルゴリズムを実行するように構成された量子デバイスのアレイを備え、
前記第1の古典計算レイヤが、
前記量子計算レイヤから測定データを受信することであって、各処理コアが、前記量子計算レイヤにおける量子デバイスの局所区画から測定値を受信するように構成される、受信することと、
前記測定データにおける複数の検出イベントを識別することと、
マッチしたペアを形成するために検出イベントを別の検出イベントにマッチさせることであって、前記マッチさせることが、
前記検出イベントを同じ局所区画における検出イベントにマッチさせることを、前記検出イベントを収める前記局所区画と関連付けられたプロセッサコアによって試行すること、ならびに
前記プロセッサコアが、検出イベントを同じ局所区画における別の検出イベントにマッチさせることができない場合、隣接プロセッサコアの前記プロセッサキャッシュにアクセスすること、および前記検出イベントを前記隣接プロセッサコアに対応する隣接局所区画における検出イベントにマッチさせることを試行すること
を含む、マッチさせることと、
前記マッチしたペアを使用して、前記量子計算レイヤによって行われる前記量子計算アルゴリズムにおける1つまたは複数のエラーを判定することと
を行うように構成される、
システム。
【請求項１７】
前記量子計算レイヤから物理測定値を受信することと、
前記物理測定値を測定データにコンバートすることと、
前記第1の古典計算レイヤに前記測定データを出力することと
を行うように構成されたフィールドプログラマブルゲートアレイを備える制御レイヤをさらに備える、請求項15または16に記載のシステム。
【請求項１８】
前記制御レイヤが、
量子エラー訂正命令を受信することと、
前記量子エラー訂正命令の受信に応答して、前記量子計算レイヤ上の1つまたは複数のキュービット回転を行わせることと
を行うようにさらに構成される、請求項17に記載のシステム。
【請求項１９】
前記第1の古典計算レイヤが、前記量子計算レイヤにおける量子デバイスの訂正されたパリティを決定するように構成される、請求項16から18のいずれか一項に記載のシステム。
【請求項２０】
前記量子計算レイヤにおける量子デバイスの1つまたは複数の訂正されたパリティを前記第1の古典計算レイヤから受信することと、
1つまたは複数の決定されたエラーの訂正された前記パリティから1つまたは複数の量子エラー訂正命令を決定することと
を行うように構成された第2の古典計算レイヤをさらに備える、請求項19に記載のシステム。
【請求項２１】
前記第2の古典計算レイヤが、前記量子計算レイヤにおいて前記1つまたは複数の量子エラー訂正命令が実行されるようにさらに構成される、請求項20に記載のシステム。
【請求項２２】
前記第2の古典計算レイヤが、表面コードを実行して、前記1つまたは複数の量子エラー訂正命令を決定するように構成される、請求項20または21に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、量子コンピュータにおけるエラー訂正のためのハードウェアに関する。より詳細には、本出願は、量子コンピュータにおけるエラーを判定するための古典処理アレイに関する。
【背景技術】
【０００２】
量子コンピュータは、量子重ね合わせおよび量子絡み合いを活用して、古典コンピュータより速く特定のタイプの問題を解決するコンピューティングデバイスである。量子コンピュータの基礎的要素は、キュービットである。キュービットは2準位系であるが、古典ビットの場合のように、単に2準位系の2つの状態のうちのどちらかに状態があるのではなく、2準位系の2つの状態の重ね合わせに状態がある可能性がある。
【０００３】
量子アルゴリズムは、量子コンピュータ上で動くアルゴリズムである。量子コンピュータにおけるこれらのアルゴリズムの実行中、デコヒーレンスおよびノイズを含む、いくつかの発生源からのエラーが持ち込まれる可能性がある。量子複製不可能定理が原因で、状態の複数のコピーを作り出すことを伴う古典エラー検出および訂正技法は適していない。代わりに、量子エラー検出および訂正技法は、キュービットを、いくつかの他のキュービットと絡み合わせること、および、エラーが発生したときに識別するために、絡み合ったキュービットのサブセットに対して測定を行うこと、を伴う。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Fowlerらによる、「Towards practical classical processing for the surface code: timing analysis」、[https://doi.org/10.1103/PhysRevLett.108.180501]
【発明の概要】
【課題を解決するための手段】
【０００５】
一般に、いくつかの態様において、本開示の主題は、処理コアのアレイを備え、各処理コアが、第1のチップ上のプロセッサ、および第1のチップ上のプロセッサキャッシュ、ならびに処理コアのアレイにおける隣接処理コアを相互接続するためのバス、を備え、各処理コアが、プロセッサによって実行されると、プロセッサに、少なくとも1つの隣接処理コアのプロセッサキャッシュへのアクセスを行わせる制御コードを含む、装置において具体化されることが可能である。
【０００６】
方法の実装形態は、以下の特徴の1つまたは複数を含むことができる。例えば、いくつかの実装形態において、制御コードは、プロセッサキャッシュに格納される。
【０００７】
いくつかの実装形態において、各プロセッサキャッシュは、第1レベルのプロセッサキャッシュと、第2レベルのプロセッサキャッシュと、を備え、データは、プロセッサと第2レベルのプロセッサキャッシュとの間を第1レベルのキャッシュを介して行き来する。
【０００８】
いくつかの実装形態において、制御コードは、第1レベルのプロセッサキャッシュに格納される。
【０００９】
いくつかの実装形態において、コントローラコードは、マシンコードを含む。
【００１０】
いくつかの実装形態において、コントローラコードは、プロセッサによって実行されると、プロセッサに、少なくとも1つの隣接プロセッサコアの第2レベルのプロセッサキャッシュへのアクセスを行わせる。
【００１１】
いくつかの実装形態において、プロセッサキャッシュは、少なくとも1つの隣接処理コアからアクセスされるデータを格納するように構成された1つまたは複数のバッファを備える。
【００１２】
いくつかの実装形態において、少なくとも1つの隣接処理コアからアクセスされるデータは、バッファの1つまたは複数に周期的に書き込まれる。
【００１３】
いくつかの実装形態において、各処理コアは、測定データの個々のセットを受信することと、プロセッサキャッシュに測定データのセットを格納することと、測定データのセットを処理することと、を行うように配列される。
【００１４】
いくつかの実装形態において、測定データを処理するための命令は、プロセッサキャッシュに格納される。
【００１５】
いくつかの実装形態において、測定データのセットを処理するために、処理コアは、量子エラー訂正を行うように構成される。
【００１６】
いくつかの実装形態において、量子エラー訂正は、表面コードを実行することを含む。
【００１７】
いくつかの実装形態において、測定データのセットを処理するために、処理コアは、ランダムアクセスメモリを使用しないように構成される。
【００１８】
いくつかの実装形態において、プロセッサコアは、1つまたは複数の追加のプロセッサをさらに備える。
【００１９】
本開示のさらなる態様は、前述のいずれかの実装形態による、処理コアのアレイを備える第1の古典計算レイヤと、量子計算アルゴリズムを実行するように構成された量子デバイスのアレイを備える量子計算レイヤと、を備え、古典処理レイヤが、量子計算レイヤから測定データを受信することと、受信した測定データを使用して、量子計算レイヤによって行われる量子計算アルゴリズムにおける1つまたは複数のエラーを判定することと、を行うように構成される、システムにおいて具体化されることが可能である。
【００２０】
本開示のさらなる態様は、処理コアのアレイを備え、各処理コアが、プロセッサ、およびプロセッサキャッシュ、ならびに処理コアのアレイにおける隣接処理コアを相互接続するためのバス、を備え、各処理コアが、プロセッサによって実行されると、プロセッサに、少なくとも1つの隣接処理コアのプロセッサキャッシュへのアクセスを行わせる制御コードを含む、第1の古典計算レイヤと、量子計算アルゴリズムを実行するように構成された量子デバイスのアレイを備える量子計算レイヤと、を備え、古典処理レイヤが、量子計算レイヤから測定データを受信することと、受信した測定データを使用して、量子計算レイヤによって行われる量子計算アルゴリズムにおける1つまたは複数のエラーを判定することと、を行うように構成される、システムにおいて具体化されることが可能である。
【００２１】
いくつかの実装形態において、システムは、量子計算レイヤから物理測定値を受信することと、物理測定値を測定データにコンバートすることと、第1の古典計算レイヤに測定データを出力することと、を行うように構成されたフィールドプログラマブルゲートアレイのアレイを備える制御レイヤ、をさらに備える。
【００２２】
いくつかの実装形態において、制御レイヤは、量子エラー訂正命令を受信することと、量子エラー訂正命令の受信に応答して、量子計算レイヤ上の1つまたは複数のキュービット回転を行わせることと、を行うようにさらに構成される。
【００２３】
いくつかの実装形態において、システムは、量子計算アルゴリズムにおける1つまたは複数の判定されたエラーを第1の古典計算レイヤから受信することと、1つまたは複数の判定されたエラーから1つまたは複数の量子エラー訂正命令を決定することと、を行うように構成された第2の古典処理レイヤをさらに備える。
【００２４】
いくつかの実装形態において、第2の処理レイヤは、量子計算レイヤにおいて1つまたは複数の量子エラー訂正命令が実行されるようにさらに構成される。
【００２５】
いくつかの実装形態において、第2の処理レイヤは、表面コードを実行して、1つまたは複数の量子エラー訂正命令を決定するように構成される。
【００２６】
いくつかの実装形態において、第1の古典処理レイヤにおける各処理コアは、量子計算レイヤにおける量子デバイスの局所区画から測定値を受信する。
【図面の簡単な説明】
【００２７】
【図１】量子コンピュータの実施形態の概略的な例を示す図である。
【図２】古典処理レイヤのための処理コアの例を示す図である。
【図３】1つの実施形態による、古典処理アレイの一部の例を示す図である。
【図４】複数のプロセッサコアの例を示す図である。
【図５】複数のプロセッサコアのさらなる例を示す図である。
【図６】量子コンピュータのさらなる実施形態の概略的な例を示す図である。
【図７】1つの実施形態による、量子コンピュータにおいて行われる処理の概略的な例を示す図である。
【図８】所与の局所区画と関連付けられたプロセッサコアのプロセッサキャッシュに周期的に書き込まれる所与の局所区画を表現する、アレイの3次元データ構造の例を示す図である。
【発明を実施するための形態】
【００２８】
図1は、量子コンピュータ100の実施形態の概略的な例を示す。
【００２９】
量子コンピュータ100は、量子計算レイヤ102、制御レイヤ104、および古典処理レイヤ106を備える。
【００３０】
量子計算レイヤ102は、量子計算アルゴリズムを行うように構成された量子デバイスまたはキュービット108のアレイを備える。量子デバイスまたはキュービット108は、データキュービットとシンドローム(または測定)キュービットの組合せを備える。量子計算レイヤ102は、キュービット108に対する演算を行うための複数の量子ゲート(図示せず)をさらに備える。いくつかの実施形態において、量子計算レイヤは、量子デバイス108の2次元アレイの形式のものである。
【００３１】
量子デバイスまたはキュービット108は、例えば、超電導キュービットであることが可能である。量子計算レイヤ102は、量子アルゴリズムの実行の全体を通してキュービット間のコヒーレンスを維持するのに十分低い温度(例えば4.2K未満)に保たれる。超電導キュービットが使用される実施形態において、温度は、超電導臨界温度未満に保たれる。本明細書において、用語「キュービット」および「量子デバイス」については、区別なく使用される。
【００３２】
複数の制御デバイス110を備える制御レイヤ104は、量子計算レイヤ102と古典処理レイヤ106との間に介在する。制御デバイス110は、量子計算レイヤ102におけるキュービット108から未加工測定データを受信し、古典処理レイヤ106において使用するために、未加工測定データをバイナリ測定データにコンバートする。制御デバイス110は、いくつかの実施形態において、量子デバイス108に命令を発行して、例えば、キュービット回転を行うように量子ゲート(図示せず)に命令することもできる。いくつかの実施形態において、各制御デバイス110は、およそ6つの量子デバイス108に接続される。制御デバイス110は、いくつかの実施形態において、フィールドプログラマブルゲートアレイ(FPGA)である。
【００３３】
(本明細書において「第1の古典処理レイヤ」とも呼ばれる)古典処理レイヤ106は、処理コア112のアレイを備える。処理コア112は、図2に関して下記においてさらに詳細に説明される。古典処理レイヤ106は、制御レイヤ104を介して量子計算レイヤ102に連結される。古典計算レイヤ106における処理コア112は、キュービット108の局所区画114と関連付けられる。局所区画114は、相互にグループ化された複数のキュービット108を備える。いくつかの実施形態において、パッチサイズは、およそ100個のキュービットである。古典処理レイヤ106における処理コア112は、古典処理レイヤ106における隣接処理コア112に連結される。これは、処理コア112がこれらの隣接コアとデータを交換できるようにすることができる。いくつかの実施形態において、処理コア112は、古典処理レイヤ106内に処理コア112の2次元アレイを形成する。
【００３４】
古典処理コア112は、プロセッサコア内のプロセッサによって実行されると、プロセッサに、隣接コアのプロセッサキャッシュへのアクセスを行わせる専用アセンブリ命令を提供される。これは、複雑なメモリコントローラが必要とされないので、隣接コア間の低遅延通信を生じる可能性がある。
【００３５】
使用中、量子計算レイヤ102は、量子計算アルゴリズムを実行する。量子計算レイヤ102におけるシンドロームキュービットは、これらの隣接データキュービットと相互作用して未加工測定データを生み出す。未加工測定データは、制御レイヤ104の制御デバイス110に供給される。制御デバイス110は、未加工測定データをバイナリ測定データにコンバートし、古典処理レイヤ106の処理コア112にバイナリ測定データを流し込む。
【００３６】
古典処理レイヤ106は、制御レイヤ104からのバイナリ測定データを、測定された量子計算レイヤ102におけるキュービット108の量子状態のパリティにコンバートする。これらのパリティは、次に、古典処理レイヤ106によって処理され、いずれかの量子エラーを判定し、および/または、量子計算レイヤ102における量子デバイス108に必要な訂正されたパリティを決定する。決定された訂正は、次に、さらに処理され、必要な是正措置を決定する。
【００３７】
図2は、古典計算レイヤのための処理コアの例を示す。古典処理レイヤ106の各プロセッサコア112は、古典処理レイヤ106の中に、プロセッサ116、1つまたは複数のプロセッサキャッシュ118、および最も近い隣接処理コアへのバス120を備える。処理コア112は、チップ上に提供される。
【００３８】
バス120は、古典処理レイヤ106における処理コアのアレイの中の隣接処理コア112を相互接続する。バス120は、プロセッサ116が、その最も近い隣接処理コア112のプロセッサキャッシュ118にアクセスし、隣接処理コア112と関連付けられた量子デバイス108の局所区画114から測定データを取得できるようにする。各処理コア112は、プロセッサ116によって実行されると、少なくとも1つの隣接処理コア112のプロセッサキャッシュ118にプロセッサ116をアクセスさせる制御コード126を提供される。制御コード126は、プロセッサ116によるコードのアクセスを高速化するために、プロセッサキャッシュ118に格納される。いくつかの実施形態において、制御コードは、マシンコードまたはアセンブリコードの形式のものである。
【００３９】
プロセッサコア112は、少なくとも1つの隣接プロセッサコア112のプロセッサキャッシュ118の直接アクセスをトリガすることができる制御コードを(例えばアセンブリコードの形式で)認識するように構築されることが可能である。例えば、プロセッサコア112は、少なくとも1つまたは複数の同様に構築されたプロセッサコアのプロセッサキャッシュ118に直接アクセスする入出力回路機器を有することができる。プロセッサコア112は、処理コアに固有の対応するアセンブリコード命令を処理して、1つまたは複数の隣接プロセッサコア112の処理キャッシュ118への直接アクセスを行わせるように構築される。任意の妥当なプロセッサ製造技法が、このような回路機器を実装するために使用されることが可能である。
【００４０】
プロセッサコア112は、これらの最も近い隣接処理コアよりさらに離れた処理コア112からのデータにアクセスすることができる。例えば、次に最も近い、または次の次に最も近い隣接処理コア112が、アクセスされることが可能である。この追加の通信は、いくつかの方式で実現されることが可能である。特定の座標にある情報は、例えば、リクエストが特定の座標を管理しているプロセッサコア112に達するまで、特定の座標の方向にリクエストを送信することによって、リクエストされることが可能である。このプロセッサコア112は、リクエストされた情報をリクエスタに返信することができる。別の例は、処理コアに格納された最も近い4つのコアだけではなくそれ以上に対する追加のアセンブリレベル命令を有することである。
【００４１】
プロセッサキャッシュ118は、処理コアによって受信された測定データを処理するための命令をさらに格納する。これらの命令は、量子エラー訂正および/または判定アルゴリズムを含む。いくつかの例において、量子エラー訂正アルゴリズムは、例えばToricコードなどの表面コードを含む。表面コードの例は、Fowlerらによる「Towards practical classical processing for the surface code: timing analysis」、[https://doi.org/10.1103/PhysRevLett.108.180501]において示されている。
【００４２】
いくつかの実施形態において、プロセッサキャッシュは、(本明細書において「第1レベルのキャッシュ」とも呼ばれる)L1キャッシュ122、および(本明細書において「第2レベルのキャッシュ」とも呼ばれる)L2キャッシュ124、を備える。
【００４３】
上述のように構築されたプロセッサコア112は、キャッシュレイヤ間の直接通信をトリガする命令を処理することができる。いくつかの実装形態において、L1キャッシュは、量子エラー訂正処理の状態を格納するために使用され、L2キャッシュは、量子エラー訂正処理を実行する命令を格納する。
【００４４】
L1キャッシュ122は、プロセッサ116によって現在処理されている測定データを含むデータ130を含む。
【００４５】
L2キャッシュ124は、量子エラー訂正アルゴリズムを行うための命令128を含むデータを格納する。隣接処理コア112にアクセスするための制御コード126も、L2キャッシュ124に格納される。低水準アセンブリ命令132も、処理コア112のL1キャッシュ122とL2キャッシュ124との間で測定データを移動させるために使用される。いくつかの実施形態において、低水準アセンブリ命令132は、制御コード126の一部として提供される。他の実施形態において、低水準アセンブリ命令132は、別々に提供される。
【００４６】
L2キャッシュ124は、処理コア112が関連付けられた局所区画114における量子デバイス108から取得された測定データ134も格納する。関連付けられた局所区画114からの測定データ134は、量子計算レイヤ102から制御レイヤ104を介してL2キャッシュ124に供給される。測定データ134は、要求に応じて、L1キャッシュ122を介して処理するためにプロセッサ116に移送される。
【００４７】
各L2キャッシュ124は、プロセッサコア112のバス120のそれぞれのための受信バッファ(図示せず)をさらに備える。バッファは、対応する隣接処理コアによって周期的に書き込まれる。バッファは、「ストップビット」を発行して、過負荷になっていることを他のコアに知らせ、競合を低減させるように構成されることが可能である。制御コードは、このような実施形態におけるプロセッサによって実行されると、プロセッサに、隣接プロセッサコアの第2レベルのプロセッサキャッシュ124へのアクセスを行わせることができる。
【００４８】
プロセッサキャッシュを使用してアルゴリズム命令および測定データを格納すると、量子エラー訂正を行う際に、ランダムアクセスメモリなどの外部メモリの必要性を低減させること、または除去することさえ可能である。これは、エラー訂正アルゴリズムを行う際のレイテンシを低減させるのに役立つ可能性がある。
【００４９】
いくつかの実施形態において、L1キャッシュは、8kBから128kBのメモリを有する。いくつかの実施形態において、L1キャッシュは、64kBのメモリを有する。いくつかの実施形態において、L2キャッシュは、0.5MBから3MBのメモリを有する。いくつかの実施形態において、L2キャッシュは、1.5MBのメモリを有する。
【００５０】
局所区画あたり1つの処理コアを使用するアレイの一部の例が、図3において示される。
【００５１】
古典処理レイヤは、古典処理コア112のアレイを備える。アレイは複数のマザーボード136を備え、それぞれが処理コア112を備える。示された例において、4つの処理コアのみが示されているが、一般に、アレイは、任意の数の処理コア112からなることが可能である。
【００５２】
プロセッサコア112は、アレイ内の各マザーボード136上に配置される。隣接マザーボード136上のプロセッサキャッシュ118は、バス120を介してリンクされる。
【００５３】
各処理コア112は、量子計算レイヤ102における量子デバイス108の局所区画114から測定データを受信する。一括して、アレイ内の処理コア112は、量子計算レイヤ102における、関心のある局所区画114を含む。いくつかの実施形態において、アレイは、量子計算レイヤ102における全ての局所区画114を含む。
【００５４】
量子エラー訂正アルゴリズムの実行中、バス120は、隣接処理コア112における測定データに処理コア112がアクセスできるようにする。隣接処理コア112は、測定データにアクセスする処理コア112の局所区画114に隣接する量子計算レイヤ102における局所区画114と関連付けられる。
【００５５】
同様に図4を参照すると、いくつかの代替実施形態において、マルチ処理コア112が、各マザーボード136上に配置される。各プロセッサコア112は、1つまたは複数のプロセッサ116およびプロセッサキャッシュ118を備える。各マザーボード136上のプロセッサコア112は、(いくつかの実施形態において、L3キャッシュの形式であることが可能な)マザーボード内バス138を介してデータを交換することができる。示された実施形態において、マザーボード136は、4つのプロセッサコア112を提供される。しかし、これより少ないまたは多くのプロセッサコア112が使用されることが可能である。
【００５６】
示された実施形態において、マザーボード136の周辺にあるプロセッサコア112は、それぞれ、隣接マザーボード上のこれらの最も近い隣接プロセッサコアへの方向バス120を有することができる。これは、異なるマザーボード上の隣接プロセッサコアのプロセッサキャッシュの間で測定データを交換できるようにすることができる。
【００５７】
同様に図5を参照すると、隣接マザーボード上の最も近い隣接プロセッサコアへの方向バスを周辺プロセッサコア112のそれぞれにもたせることに対する代替は、共有リソースとして使用される、周辺プロセッサに共通の方向バス140を有することである。本実施形態において、共通の方向バス140は、隣接マザーボード上のプロセッサキャッシュの間でデータを交換する。共通の方向バス140は、マザーボード内バス138と接続されることが可能であり、隣接マザーボードのプロセッサコアのキャッシュからのデータが、マザーボード136上のプロセッサコア112のいずれかによって使用されることを可能にする。
【００５８】
同様に図6を参照すると、第2の古典処理レイヤ142において、追加処理が提供されることが可能である。第2の古典処理レイヤは、第2のレイヤの処理コア144のアレイを備える。第2の古典処理レイヤ142における第2のレイヤの処理コア144は、古典処理レイヤ106によって出力された、訂正されたパリティおよび/または識別されたエラーを使用して、識別された量子エラーを訂正するための命令を決定する。決定された命令146は、制御レイヤ104に伝送され、制御レイヤ104は、決定された命令146を制御信号にコンバートし、量子計算レイヤ102における量子デバイス108に制御信号を印加し、このことにより、識別されたエラーを訂正する。
【００５９】
典型的には、第2の処理レイヤ142は、第1の古典処理レイヤ106が処理コア112を有するよりも少ない第2のレイヤの処理コア144を有する。いくつかの実施形態において、第2の古典処理レイヤ142は、最大100倍未満の処理コアを有する。第2の古典処理レイヤ142は、グローバル量子アルゴリズム制御を提供することもできる。
【００６０】
上述のシステムは、表面コードを実行し、量子エラーを判定して訂正するのに特に適している。このような表面コードの例は、Toricコードである。
【００６１】
使用中、量子計算レイヤは、エラー訂正のために使用されている表面コードで量子アルゴリズムを実行する。表面コードは、大きいチェッカーボードとして可視化されることが可能である。各正方形は、キュービットを表現する。白い正方形は、データを格納するために使用されているキュービットに対応し、データキュービットと呼ばれる。黒い正方形は、これらの隣接する4つのデータキュービットにおけるエラーをチェックするために使用されているキュービットに対応し、測定キュービットまたはシンドロームキュービットと呼ばれる。計算は、表面コードの領域をオン、オフすることによって実現される。物理的に、これは、量子計算レイヤの特定の領域内のデータキュービットとの相互作用を測定キュービットにやめさせることを伴う。
【００６２】
この状況において、量子アルゴリズムは、時間が垂直に動く3次元幾何学構造またはアレイとして可視化されることが可能である。アルゴリズムの実行は、「時空」または「ボリューム」と呼ばれることもある(キュービットの1次元アレイに対する)2次元、または(キュービットの2次元アレイに対する)3次元データ構造で動作するものとして可視化されることが可能である。このデータ構造は、本明細書において「プラミングピース」と呼ばれる規則的な基礎的要素から構築されることが可能である。これらのプラミングピースの流れは、制御ハードウェアに供給され、物理量子ゲートのコレクションに拡張されることが可能である。これらの物理量子ゲートは、量子アルゴリズムの進行を制御するためのハードウェア固有制御信号にコンバートされることが可能である。
【００６３】
図7は、量子計算アルゴリズムの実行中に、量子コンピュータにおいて行われる処理の例を示す。量子アルゴリズムの実行中、測定キュービットは、量子計算レイヤ102における、測定キュービットの隣接データキュービットと並行に相互作用し、データキュービットの量子状態148の測定を行う。いくつかの実施形態において、チェックのあらゆるサイクルの中で、量子コンピュータにおけるキュービットの数の半分に等しいいくつかのバイナリ測定値が生成される。測定の繰返しは、時間内に順次行われる。
【００６４】
測定キュービットによるデータキュービットの物理測定値は、読取信号150として制御レイヤ104に渡される。制御レイヤにおいて、読取信号150は、測定データ152にコンバートされる。測定データ152は、次に、測定データ152が生じた量子デバイスの局所区画に対応する第1の古典処理レイヤ106における古典処理コアに伝送される。
【００６５】
第1の古典処理レイヤは測定データを受信して処理し、量子アルゴリズムの実行時のいずれかのエラーを判定する。
【００６６】
第1のステップは、測定値を検出イベントにコンバートすることである。いくつかの実施形態において、これは、量子計算レイヤにおける1つの位置における各測定値を、同じ位置における以前の測定値と比較することによって実現される。1つの位置における測定が、この位置における以前の測定と相違するとき、検出イベントは、この位置において記録される。
【００６７】
表面コードにおいて、検出イベントは、量子アルゴリズムにおけるエラーのチェーンのエンドポイントに対応する。検出イベントに対応する、可能性のあるエラーを判定するために、検出イベントは、ペアを形成するように互いにマッチされるか、キュービットアレイの境界にマッチされる。
【００６８】
検出イベントのマッチングは、第1の古典処理レイヤ106において行われる。各古典プロセッサコアは、その対応する局所区画において発生する可能性のある潜在的な検出イベントのレイヤ表現を格納する。いくつかの実施形態において、レイヤ表現は、量子アルゴリズムのステージにおけるエラー検出の繰返しの中で発生する可能性のある潜在的な検出イベントを含む。検出イベントを他の潜在的な検出イベントに結び付ける重み付けされたラインのセットは、各レイヤにおける潜在的な検出イベントから生じている。各ラインの重みは、エラーの結果として相互に発生するラインの各エンドにおける検出イベントの確率を表す。いくつかの実施形態において、ラインは、より高い確率ラインが、より低い確率ラインより低い重みを有するように重み付けされる。
【００６９】
レイヤ表現は、量子アルゴリズムの知識と、量子アルゴリズムの実行中に発生する可能性のある、可能性のあるエラーと、に基づいて予め決定される。レイヤ表現は、各局所区画の表現が、第1の古典計算レイヤにおける対応するプロセッサコアのプロセッサキャッシュにフィットするように選ばれる。
【００７０】
量子アルゴリズムが進行する間、レイヤ表現は、アルゴリズムの進行を表現する古典処理コアのそれぞれにおけるアレイを構築するために使用される。アレイの水平スライスは、以下において説明されるようなエラー検出測定の繰返しに対応する。所与の局所区画を表現するアレイは、所与の局所区画と関連付けられたプロセッサコアのプロセッサキャッシュに周期的に書き込まれる。図8を参照すると、このようなアレイ156の例がこれから説明される。図において、時間は、左から右に周期的に動く。検出イベント158がアレイ156において決定されるとき、プロセッサコアは、最小重み完全マッチング(minimum weight perfect matching)を使用して、これらを、アレイにおける他の判定された検出イベントとマッチさせることを試行する。アレイは、量子コンピュータが通過した量子アルゴリズムのステージに対応するレイヤ表現の関連レイヤ160(これらのうちのいくつかだけが図8においてラベルを付けられている)から構築される。
【００７１】
各プロセッサコアが最小重み完全マッチングを行うという命令は、このプロセッサコアのプロセッサキャッシュに格納される。これは、外部メモリがアクセスされる必要がないので、マッチングアルゴリズムをすばやく実行することを可能にする。検出イベントをマッチさせると、量子アルゴリズムの実行時に発生した可能性のあるエラーのリスト162を生じる。
【００７２】
プロセッサコアによる検出イベントのマッチング中に、プロセッサコアは、それ自体の局所区画に隣接するデバイスの局所区画における検出イベントに関するデータを必要とする可能性がある。例えば、検出イベントを、この局所区画における別の検出イベントにプロセッサがマッチさせることができない場合、検出イベントを、隣接局所区画における検出イベントにマッチさせることが可能である。これらの状況において、プロセッサコアは、上述のように、プロセッサコア間の方向バスを介して隣接プロセッサコアのプロセッサキャッシュに、アクセスすることができる。
【００７３】
マッチした検出イベントを使用して、検出イベントを生じたエラーが判定される。対応するパリティ訂正は、エラーから決定されることが可能であり、量子アルゴリズムの時空の表現に挿入される。これらは、いくつかの実施形態において、物理キュービットレベルのPauliフレーム154の情報を格納するレイヤ構造であることが可能である。
【００７４】
いくつかの実施形態において、エラーリスト162は、相関表面パリティの形式のものである。マッチングの後、上述のように、量子コンピュータの古典シミュレーションにおける時空に訂正が挿入される。これらの訂正は、物理測定結果の真値を判定するために、(効率的に行われることが可能な)量子ゲートを通じて時間を進めるように伝搬されることが可能である。相関表面上の訂正された測定結果のパリティは、次に、より高いレベルの処理のために送信される。
【００７５】
いくつかの実施形態において、訂正されたパリティは、より高いレベルの処理のために第2の古典処理レイヤ142に渡される。第2の古典処理レイヤ142は、量子アルゴリズムを訂正するために必要な将来の論理ゲートを決定するために使用される。訂正されたパリティ162は、論理測定結果および論理的な副産物の演算子(logical by-product operator)164にコンバートされる。全ての論理的な副産物の演算子のセットは、論理Pauliフレームと呼ばれる。論理Pauliフレームおよび論理測定結果を前提として、量子アルゴリズムを訂正するのに必要な是正措置が決定されることが可能である。論理測定値および論理Pauliフレーム164は、結果が0または1となる論理キュービットの測定の値、および、測定されない論理キュービットがこれらの理想値と相違する方式、を含む。相違は、I、X、Y、Z演算子のうちの1つと表現されることが可能であり、それぞれは2×2行列である。
【００７６】
第2の古典処理レイヤは、グローバル量子アルゴリズム制御も提供する。グローバル量子アルゴリズム制御は、いくつかの実施形態において、以下の機能を使用して実行されることが可能である。
【００７７】
論理測定依存性論理Clifford+T回路(logical measurement dependant logical Clifford+T circuit)モジュール166。量子回路は、量子ゲートで構成される。このようなタイプのゲートの例は、Cliffordゲートであり、Cliffordゲートは、初期化、測定、I、X、Y、Z、CNOT、CZ、S、H演算、およびこれらの組合せを含む。さらなる例は、Tゲートである。量子回路は、中間測定の値のいくつかの将来のゲート依存性を伴うソフトウェアに似ている。論理測定依存性論理Clifford+T回路モジュール166は、論理測定値からこれらの論理測定依存性将来ゲートを決定する。これらは、第1のレイヤによって決定された識別されたエラー訂正を実行するための将来ゲートを含むことができる。いくつかの論理測定値が取得されると、量子回路の将来ゲートが決定される。計算が進み、より多くの論理測定値が利用可能になるにつれて、ますます増加する数のゲートが信頼性とともに知られるようになる。このモジュールの出力は、論理Clifford+T回路168である。
【００７８】
状態抽出ファクトリを加えたトポロジスケルトンモジュール170。論理測定依存性論理Clifford+T回路モジュール166によって決定されたアルゴリズムの知られた部分は、「トポロジスケルトン」と呼ばれる標準構造、および、量子アルゴリズムにおいて使用するための補助量子状態を抽出するためのファクトリ、にコンバートされる。
【００７９】
スケルトン、ファクトリ、およびファクトリからスケルトンへの経路モジュール172。状態抽出ファクトリを加えたトポロジスケルトンモジュール170によって決定された状態抽出ファクトリを加えたトポロジスケルトンを前提として、論理測定値164は、どのファクトリが補助状態の抽出に成功したかを判定するために使用されることが可能である。出力が必要なトポロジスケルトンにこれらの状態を接続するのに必要な経路が、次に決定される。
【００８０】
相関表面モジュール174。相関表面は、パリティが論理測定結果を示す、および/または、論理Pauliフレーム訂正を生成する、測定値のセットである。相関表面は、論理的なXおよび/またはZの副産物の演算子が計算に持ち込まれたかどうかを判定するために、測定結果のどのパリティを検査するべきかを示す。相関表面は、スケルトン、ファクトリ、およびファクトリからスケルトンへの経路モジュール172の出力から決定される。相関表面は、物理測定値からパリティを決定する際に使用するために、第1の古典計算レイヤ106に出力される。
【００８１】
プラミングピースモジュール176。プラミングピースモジュールは、量子計算レイヤ102において必要なゲートを実行するために、スケルトン、ファクトリ、およびファクトリからスケルトンへの経路モジュール172の出力をプラミングピースのセットにコンバートする。プラミングピースモジュール176は、量子計算レイヤ102における実行のために、プラミングピースを制御レイヤ104に出力する。制御レイヤは、これらを、物理ゲート演算178にコンバートする。これらは、次に、決定された訂正によって量子アルゴリズムを実行するために、量子計算レイヤ102におけるゲートに制御パルス180として出力される。
【００８２】
決定された是正措置は、次に、第2の古典処理レイヤによって制御レイヤ104に出力される。ここで、物理ゲートは、決定された是正措置を制御パルスにコンバートする。制御パルスは、量子計算レイヤ102におけるキュービットに対して是正措置を実行するために使用される。
【００８３】
本明細書において説明される量子の主題および量子演算の実行は、適切な量子回路機器、またはより一般には、本明細書において開示された構造およびこれらの構造上の均等物を含む量子計算システム、またはこれらの1つもしくは複数の組合せにおいて実行されることが可能である。用語「量子計算システム」は、量子コンピュータ、量子情報処理システム、量子暗号システム、または量子シミュレータを含むことができるがこれらに限定されない。
【００８４】
量子情報および量子データという用語は、量子系によって搬送、保持、または格納される情報またはデータを指し、ここで、最小の重要な系はキュービットであり、例えば、量子情報の単位を定義する系である。用語「キュービット」は、対応する背景における2準位系として適切に概算されることが可能な全ての量子系を包含するということが理解される。このような量子系は、例えば2つ以上の準位を有する多準位系を含むことができる。例として、このようなシステムは、原子、電子、光子、イオン、または超電導キュービットを含むことができる。多くの実装形態において、計算基礎状態は、基底状態および第1の励振状態によって識別されるが、より高いレベルの励振状態によって計算状態が識別される他の仕組みが可能であるということが理解される。量子メモリは、例えば、伝送のために光が使用される光物質インターフェース、ならびに、重ね合わせまたは量子コヒーレンスなどの量子データの量子特徴を格納および保護するための物質、といった、高い正確性および効率性で長時間、量子データを格納することができるデバイスであるということが理解される。
【００８５】
量子回路素子は、量子処理演算を行うために使用されることが可能である。すなわち、量子回路素子は、重ね合わせおよび絡み合いなどの量子力学的現象を使用して、非決定論的手法でデータに対して演算を行うように構成されることが可能である。キュービットなどの一定の量子回路素子は、2つ以上の状態にある情報を同時に表現および演算を行うように構成されることが可能である。本明細書において開示された処理によって形成されることが可能な超電導量子回路素子の例は、中でも、共平面導波路、量子LC発振器、キュービット(例えば、磁束キュービットまたは電荷キュービット)、超電導量子干渉素子(SQUID)(例えば、RF-SQUIDまたはDCSQUID)、インダクタ、キャパシタ、伝送回線、グラウンドプレーン、などの回路素子を含む。
【００８６】
対照的に、古典回路素子は、一般に、決定論的手法でデータを処理する。古典回路素子は、アナログまたはデジタル形式でデータが表現されるデータに対して基本算術式演算、論理的演算、および/または入出力演算を行うことによって、コンピュータプログラムの命令を一括して実行するように構成されることが可能である。いくつかの実装形態において、古典回路素子は、電気的または電磁気的接続を通じて、量子回路素子にデータを伝送するため、および/または量子回路素子からデータを受信するために使用されることが可能である。本明細書において開示された処理によって形成されることが可能な古典回路素子の例は、高速単一磁束量子(RSFQ: rapid single flux quantum)デバイス、レシプロカル量子ロジック(RQL: reciprocal quantum logic)デバイス、および、バイアス抵抗器を使用しないRSFQのエネルギー効率の良いバージョンであるERSFQデバイスを含む。他の古典回路素子が、本明細書において開示された処理によって同様に形成されることが可能である。
【００８７】
本明細書において説明される回路素子などの、超電導量子回路素子および/または超電導古典回路素子を使用する量子計算システムの動作中、超電導回路素子は、超電導体材料が超電導特性を発揮できる温度まで、クリオスタットの中で冷却される。
【００８８】
本明細書は多くの特定の実装形態の詳細を収めているが、これらは、特許請求される可能性のあるものの範囲の限定として解釈されるべきではなく、むしろ特定の実装形態に固有のものである可能性のある特徴の説明として解釈されるべきである。別個の実装形態の背景において本明細書において説明される一定の特徴は、単一の実装形態の組合せにおいて実行されることも可能である。逆に、単一の実装形態の背景において説明される様々な特徴は、複数の実装形態において別々に、または任意の適切な小結合において、実行されることも可能である。その上、一定の組合せにおける行為として特徴が上述される可能性があり、したがって最初に特許請求される可能性さえあるが、特許請求される組合せからの1つまたは複数の特徴は、場合によっては、この組合せから削除されることが可能であり、特許請求される組合せは、小結合または小結合の変形形態を対象とすることが可能である。
【００８９】
同様に、図面において特定の順序で動作が描写されるが、これは、示された特定の順序で、もしくは順番に、このような動作が行われること、または、望ましい結果を実現するために全ての示される動作が行われること、を必要とするものとして理解されるべきではない。例えば、特許請求の範囲において列挙される行為は、異なる順序で行われることが可能であるが、依然として、望ましい結果を実現することが可能である。一定の状況において、マルチタスクおよび並列処理が有利である可能性がある。その上、上述の実装形態における様々な構成要素の分離は、全ての実装形態においてこのような分離を必要とするものとして理解されるべきではない。
【００９０】
いくつかの実装形態が説明されてきた。それでも、本発明の精神および範囲から逸脱することなく様々な変更が行われることが可能であるということが理解されよう。他の実装形態は、以下の特許請求の範囲の範囲に含まれる。
【符号の説明】
【００９１】
100  量子コンピュータ
102  量子計算レイヤ
104  制御レイヤ
106  古典処理レイヤ、古典計算レイヤ
108  量子デバイス、キュービット
110  制御デバイス
112  処理コア
114  局所区画
116  プロセッサ
118  プロセッサキャッシュ
120  バス
122  L1キャッシュ
124  L2キャッシュ
126  制御コード
128  命令
130  データ
132  低水準アセンブリ命令
134  測定データ
136  マザーボード
138  マザーボード内バス
140  方向バス
142  第2の古典処理レイヤ
144  第2のレイヤの処理コア
146  命令
148  量子状態
150  読取信号
152  測定データ、物理測定値
154  物理キュービットレベルのPauliフレーム、物理Pauliフレーム
156  アレイ
158  検出イベント
160  関連レイヤ
162  エラーのリスト、エラーリスト、相関表面パリティ、訂正されたパリティ
164  論理測定結果および論理的な副産物の演算子、論理測定値、論理Pauliフレーム、論理測定値および論理Pauliフレーム
166  論理測定依存性論理Clifford+T回路モジュール、論理測定依存性論理Clifford+T回路
168  論理Clifford+T回路
170  状態抽出ファクトリを加えたトポロジスケルトンモジュール、状態抽出ファクトリを加えたトポロジスケルトン
172  スケルトン、ファクトリ、およびファクトリからスケルトンへの経路モジュール、スケルトン、ファクトリ、およびファクトリからスケルトンへの経路
174  相関表面モジュール、相関表面
176  プラミングピースモジュール、プラミングピース
178  物理ゲート演算
180  制御パルス
【図１】
0006884273.tif 000002
【図２】
0006884273.tif 000003
【図３】
0006884273.tif 000004
【図４】
0006884273.tif 000005
【図５】
0006884273.tif 000006
【図６】
0006884273.tif 000007
【図７】
0006884273.tif 000008
【図８】
0006884273.tif 000009