JP2023541529A - 量子コントローラ高速パスインタフェース - Google Patents

量子コントローラ高速パスインタフェース Download PDF

Info

Publication number
JP2023541529A
JP2023541529A JP2023509469A JP2023509469A JP2023541529A JP 2023541529 A JP2023541529 A JP 2023541529A JP 2023509469 A JP2023509469 A JP 2023509469A JP 2023509469 A JP2023509469 A JP 2023509469A JP 2023541529 A JP2023541529 A JP 2023541529A
Authority
JP
Japan
Prior art keywords
qubit
computer
wire
data
quantum controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023509469A
Other languages
English (en)
Inventor
ブラック、ライアン
グリーンフィールド、トッド
リンドクイスト、ティモシー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023541529A publication Critical patent/JP2023541529A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0855Quantum cryptography involving additional nodes, e.g. quantum relays, repeaters, intermediate nodes or remote nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Dc Digital Transmission (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Logic Circuits (AREA)

Abstract

キュビットデータのルーティングを考慮した技術が提供されている。例えば、本明細書に説明された1または複数の実施形態は、キュビットデータルーティングを制御することができる量子コントローラ高速パスインタフェースをトレーニングするためのコンピュータ実装方法を含むことができる。コンピュータ実装方法は、プロセッサに動作可能に連結されたシステムによって、メソクロナスクロックドメインが直接レジスタ間転送パターンによって特徴付けられるように遅延値を調整することによって量子コントローラと条件エンジンとの間でキュビットデータビットをルーティングするための量子コントローラ高速パスインタフェースをトレーニングする段階を含み得る。

Description

本開示は、量子コントローラ高速パス(fast path)インタフェース、より具体的には、直接レジスタ間転送パターンによって特徴付けられた量子コントローラ高速パスインタフェースを介して1または複数の量子コントローラと条件エンジンとの間でキュビット情報をルーティングすることに関連している。
量子コンピューティングシステムにおいて、キュビット情報をルーティングするためのハードウェアパスを、キュビットの所与のネットワークにおける他のキュビットのコントローラに、好ましくは可能な限り素早く、展開することが好ましいと考えられてきた。他のキュビットコントローラへのキュビットデータのこの通信は、効率的な条件演算がそれらのキュビットに適用されることを可能にする。これは、限定されないが、キュビットに既知の状態およびキュビットテレポーテーションを強制することなどのトピックを含む、量子コンピューティング世界における様々な潜在的なアプリケーションを有する。しかしながら、キュビットデータルーティングインタフェースの典型的な実装は、キュビットデータを認定するための非同期境界と余分のヘッダ情報とを利用しており、これは、データ転送が生じている間にキュビットが継続的に劣化するので、システム動作に好ましくない可能性がある。
以下では、本発明の1または複数の実施形態の基本的な理解を提供するために概要が提示される。この概要は、鍵となる要素または重要な要素を識別するか、または特定の実施形態のいかなる範囲または特許請求の範囲のいかなる範囲も定めることを意図するものではない。その唯一の目的は、後に提示されるより詳細な説明への前置きとして簡略化された形態で概念を提示することである。本明細書に説明された1または複数の実施形態では、キュビットデータをルーティングするためのシステム、コンピュータ実装方法、装置もしくはコンピュータプログラム製品またはその組み合わせが説明されている。
一実施形態によれば、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に連結されたシステムによって、メソクロナスクロックドメインが直接レジスタ間転送パターンによって特徴付けられるように遅延値を調整することによって量子コントローラと条件エンジンとの間でキュビットデータビットをルーティングするための量子コントローラ高速パスインタフェースをトレーニングする段階を含み得る。そのようなコンピュータ実装方法の利点は、データ転送レイテンシを低減するようにインタフェースをトレーニングすることであり得る。
いくつかの例において、コンピュータ実装方法はさらに、前記システムによって、前記量子コントローラ高速パスインタフェースの遅延デバイスをシフトすることによって前記メソクロナスクロックドメインを安定化することができる前記遅延値を選択する段階を含み得る。そのようなコンピュータ実装方法の利点は、ハードウェアコンポーネントに依存するのではなく、インタフェースをトレーニングするために組み込まれた条件法を利用することができることであり得る。
一実施形態によれば、量子コントローラと条件エンジンとの間でキュビットデータビットをルーティングするためのコンピュータプログラム製品が提供される。コンピュータプログラム製品は、具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含み得る。プログラム命令は、量子コントローラ高速パスインタフェースのメソクロナスクロックドメインが直接レジスタ間転送パターンによって特徴付けられるように遅延値を調整することによって量子コントローラ高速パスインタフェースをプロセッサがトレーニングすることを、当該プロセッサに実行させるように、プロセッサによって実行可能である。
いくつかの例において、当該コンピュータプログラム製品はさらに、前記プロセッサによって、前記量子コントローラ高速パスインタフェースのターゲットワイヤに関して、前記遅延値における前記メソクロナスクロックドメインの安定性を査定することを前記プロセッサに実行させることができる。そのようなコンピュータプログラム製品の利点は、セットアップおよびホールド時間ウィンドウの外部に位置付けられるように、量子データビットがドメインエッジからセンタリングできることであり得る。
一実施形態によれば、システムが提供される。当該システムは、キュビットデータパケット内のデータ位置から送信元情報が推測されるパケット転送プロトコルを介して量子コントローラと条件エンジンとの間で前記キュビットデータパケットをルーティングすることができる、量子コントローラ高速パスインタフェースを含み得る。そのようなシステムの利点は、キュビットデータトラフィックがキュビットの劣化を考慮するように、低遅延でルーティングできることであり得る。
当該システムのいくつかの例において、キュビットデータパケットは、データ位置と、有効なキュビットとのペアリングから成ることができる。そのようなシステムの利点は、キュビットデータの認定にオーバヘッド情報を必要としないデータパケットを利用することができるということであり得る。
本明細書に説明された1または複数の実施形態に係る、1または複数のキュビットコントローラ間もしくは条件エンジン間またはその両方でキュビット情報をルーティングすることができる、例示的且つ非限定的な量子コントローラ高速パスインタフェースのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースをトレーニングすることができる例示的且つ非限定的なトレーニングコンポーネントのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースの所与の遅延ルーチンに関連付けられたクロックドメイン安定性を査定することができる例示的且つ非限定的なトレーニングコンポーネントのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースの遅延ルーチンに関連付けられたクロックドメイン安定性を追跡することができる例示的且つ非限定的なトレーニングコンポーネントのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースの遅延ルーチンに関連付けられた1または複数の遅延値を制御することができる例示的且つ非限定的なトレーニングコンポーネントのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースの所与の遅延ルーチンに関連付けられたクロックドメイン安定性を査定することができる例示的且つ非限定的なトレーニングコンポーネントのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースをトレーニングするのに利用されることができる例示的且つ非限定的なコンピュータ実装方法のフロー図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースによって利用されることができる例示的且つ非限定的なパーテルノステル(paternoster)ハードウェアプロトコルのブロック図を示す。
本明細書に説明された1または複数の実施形態に係る、量子コントローラ高速パスインタフェースをトレーニングするのに利用されることができる例示的且つ非限定的なコンピュータ実装方法のフロー図を示す。
本明細書に説明された1または複数の実施形態が容易にされ得る例示的且つ非限定的な動作環境のブロック図を示す。
以下の詳細な説明は、例示に過ぎず、実施形態、もしくは実施形態の応用形態もしくは使用、またはその組み合わせを限定することを意図するものではない。さらに、上記の背景技術セクションもしくは発明の概要セクション、または発明を実施するための形態セクションにおいて提示されるいかなる表現または示唆された情報によって制約されることも意図するものではない。
ここで、図面を参照して1または複数の実施形態を説明する。全体を通して、同様の参照番号は、同様の要素を指すために使用される。以下の説明では、説明の目的で、多くの特定の詳細を、1または複数の実施形態のより完全な理解を提供すべく記載する。しかしながら、様々な場合では、1または複数の実施形態は、これらの特定の詳細なしに実施され得ることが明らかである。
キュビット情報ルーティングの他の実装形態に関する問題を考慮すると、本開示は、1または複数の継続的なパケット転送プロトコルを利用することができるトレーニング可能な量子コントローラ高速パスインタフェースを介して、これらの問題のうちの1または複数に対する解決方法を生成するべく実装されることができる。有利に、本明細書に説明された1または複数の実施形態は、直接レジスタ間転送と類似したデータ転送特性を示すためにトレーニングされることができる量子コントローラ高速パスインタフェースを考慮することができる。さらに、インタフェースは、1または複数の継続的なパケット転送アプローチを用いて実装されることができる。それによって、キュビットデータは、データパケットの開始と終了を識別するのに従来使用されていたオーバーヘッドビットを利用することなく、レジストリ間でルーティングされることができる。さらに、インタフェースは、データパケット内のビット位置に基づいた従来のオーバーヘッドビットを用いることなく、データ送信元情報を識別することができる。
本発明の様々な実施形態は、効率的、効果的、および自律的(例えば、直接的な人間の指導なしの)キュビット情報ルーティングを容易にするコンピュータ処理システム、コンピュータ実装方法、装置もしくはコンピュータプログラム製品、またはその組み合わせを対象とし得る。例えば、本明細書に説明された1または複数の実施形態は、1または複数の量子コントローラ(例えば、最も低いレベルの量子コントローラ)と条件エンジンとの間でキュビット情報をルーティングすることができる量子コントローラ高速パスインタフェースを考慮し得る。当該1または複数の量子コントローラは、1または複数のキュビットを刺激することができ、条件エンジンは、1または複数のキュビットに対して1または複数のブール処理を実行するとともに結果をエンドポイントに戻すようにルーティングすることができる。様々な実施形態において、インタフェースは、継続的なパケット転送アプローチを用いて実装されることができ、ここで、キュビットデータ位置およびキュビット有効のみを含むデータパケットは、コントローラと条件エンジンとの間で継続的に転送されることができる。さらに、データパケットの境界は、インタフェース内に組み込まれた1または複数のトレーニングアルゴリズムを介して確立されることができる。
コンピュータ処理システム、コンピュータ実装方法、装置もしくはコンピュータプログラム製品、またはその組み合わせは、ハードウェアもしくは条件付きソフトウェアまたはその組み合わせを利用することで、抽象的でなく人間による精神的な活動のセットとして実行されることができない、本質的に非常に技術的な問題(例えば、キュビット情報ルーティング)を解決する。また、本明細書に説明された1または複数の実施形態は、データパケットの境界を規定するべく組み込みトレーニングアルゴリズムを利用する量子コントローラ高速パスインタフェースを介して、従来のキュビット情報ルーティングに対する技術的改善を構成することができる。加えて、本明細書に説明された様々な実施形態は、キュビットデータを認定するためにオーバーヘッドビットを包含することなくレジストリ間でデータを転送するために継続的なパケット転送プロトコルを利用する量子コントローラ高速パスインタフェースを介して、従来のキュビット情報ルーティングに対する技術的改善を示すことができる。
さらに、本明細書に説明された1または複数の実施形態は、レジスタ間転送パターンによって特徴付けられることができる、量子コントローラと条件エンジンとの間でインタフェースを確立することによって、実用的な適用を有することができる。例えば、本明細書に説明された様々な実施形態は、データパケット内のビット位置に基づいてデータ送信元情報を識別することができる継続的なパケット転送プロトコルにおいて実装のためのデータパケット境界を規定するために、組み込みトレーニングアルゴリズムを利用することができる。本明細書に説明された1または複数の実施形態は、メソクロナスクロックドメイン安定性に基づいて1または複数の受信チップ内の1または複数の遅延ルーチンを制御することができる。それによって、1または複数の実施形態は、受信クロックのセットアップおよびホールドウィンドウの外部のデータビットを配置すべく、安定したクロックドメインのからエッジデータビットをセンタリングすることができる。例えば、本明細書に説明された様々な実施形態は、ワイヤにわたってデータパターンを整列するべくインタフェースの遅延ルーチンを制御すること、もしくは、デバイスの変形もしくは温度変化またはその組み合わせによって発生し得るデータスリップのリスクを最小化するためにタイミングマージンを最大化すること、またはその組み合わせを行うことができる。
図1は、1または複数の量子コントローラアーキテクチャブロック102と条件エンジンアーキテクチャブロック104との間でキュビット情報をルーティングすることができる例示的且つ非限定的なインタフェース100のブロック図を示す。本明細書で説明する他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔さのために省略する。本発明の様々な実施形態におけるシステム(例えば、インタフェース100など)、装置またはプロセスの態様は、1または複数の機械内に具現化された(例えば、1または複数の機械に関連付けられた1または複数コンピュータ可読媒体(単数または複数)において具現化された)1または複数の機械実行可能コンポーネントを構成することができる。このようなコンポーネントは、1または複数の機械(例えば、コンピュータ、コンピューティングデバイス、仮想マシンなど)によって実行されたとき、説明された動作を機械に実行させることができる。
1または複数の量子コントローラアーキテクチャブロック102は、1または複数の伝送チップ108および受信チップ110に動作可能に連結された1または複数の量子コントローラ106を含み得る。様々な実施形態において、1または複数の量子コントローラ106は、1または複数のキュビットに動作可能に連結されることができる。例示的なキュビット技術は、限定されないが、トラップされたイオンキュビットもしくは超伝導キュビットまたはその組み合わせを含むことができる。例えば、キュビットがトラップされたイオンキュビットである場合、複数のイオンは、キュビットとして、および、特定の位置においてイオンを保持するようにサービス提供する1または複数のトラップとしてサービス提供することができる。さらに、当該イオンのうちの1または複数を対象とするレーザまたはマイクロ波源は、当該イオンの量子状態と、当該イオンを冷却することもしくは測定を可能とすることまたはその組み合わせを行うレーザ、もしくは、当該イオンの状態を測定する1または複数の光子検出器、またはその組み合わせに影響を及ぼす。別の例において、超伝導キュビット(例えば、超伝導量子干渉デバイス「SQUID(superconducting quantum interference device)」など)は、ミリケルビンの温度に冷却されることで、(例えば、電荷または磁束の量子化状態が原因で)量子化エネルギーレベルを示すことができる、リソグラフィ的に規定された電子回路であり得る。超伝導キュビットは、トランスモンキュビットもしくは同様のもの、またはその組み合わせなどの、ジョセフソン接合ベースであり得る。また、超伝導キュビットは、マイクロ波制御電子と互換性があり得、ゲートベース技術または統合極低温制御とともに利用され得る。追加の例示的なキュビット技術は、限定されないが、フォトニックキュビット、量子ドットキュビット、ゲートベース中性原子キュビット、半導体キュビット(例えば、光学的にゲーティングされた(gated)または電気にゲーティングされた)、トポロジカルキュビット、それらの組み合わせ、もしくは同様のもの、またはその組み合わせを含むことができる。本明細書に説明されたように、「超導電性(superconducting)」という用語は、アルミニウム(例えば、1.2ケルビンの超電導臨界温度)またはニオビウム(例えば、9.3ケルビンの超電導臨界温度)などの、超電導臨界温度のまたはそれを下回る超導電性特性を示す材料を特徴付けることができる。加えて、当業者であれば、他の超伝導体材料(例えば、リチウム/マグネシウム水素化物合金などの水素化物超伝導体)が、本明細書に説明された様々な実施形態において使用され得ることを認識するであろう。
1または複数の量子コントローラ106は、1または複数のキュビットを刺激すること、もしくは、当該刺激から結果を出力すること、またはその組み合わせを行うことができる。様々な実施形態において、1または複数の量子コントローラ106は、1または複数のキュビットの刺激から結果とした得られたキュビットデータを、条件エンジンアーキテクチャブロック104に伝送することができる。例えば、1または複数の量子コントローラ106は、1または複数の伝送チップ108を介してキュビットデータを伝送することができる。1または複数の量子コントローラアーキテクチャブロック102の1または複数の伝送チップ108は、条件エンジンアーキテクチャブロック104の1または複数の受信チップ110に動作可能に連結されることができる。例えば、1または複数の量子コントローラアーキテクチャブロック102の1または複数の伝送チップ108は、1または複数の伝送ワイヤバス112を介して、条件エンジンアーキテクチャブロック104の1または複数の受信チップ110に動作可能に連結されることができる。さらに、1または複数の伝送チップ108は、キュビットデータを1または複数の量子コントローラ106から条件エンジンアーキテクチャブロック104に方向付けるのに利用されている1または複数の継続的なパケット転送プロトコルを方向付けることができる、高速パス伝送論理回路層113を含むことができる。
加えて、1または複数の量子コントローラ106は、1または複数の受信チップ110を介して受信された1または複数のコマンドに従って1または複数のキュビットを刺激することができる。様々な実施形態において、当該1または複数のコマンドは、条件エンジンアーキテクチャブロック104によって生成されることができる。図1に示されたように、1または複数の量子コントローラアーキテクチャブロック102の1または複数の受信チップ110は、条件エンジンアーキテクチャブロック104の1または複数の伝送チップ108に動作可能に連結されることができる。例えば、1または複数の量子コントローラアーキテクチャブロック102の1または複数の受信チップ110は、1または複数の伝送ワイヤバス112を介して、条件エンジンアーキテクチャブロック104の1または複数の伝送チップ108に動作可能に連結され得る。
条件エンジンアーキテクチャブロック104は、1または複数の伝送チップ108もしくは受信チップ110またはその組み合わせに動作可能に連結された1または複数の条件エンジン116を含み得る。図1に示されたように、条件エンジンアーキテクチャブロック104は、インタフェース100を介して、複数の量子コントローラアーキテクチャブロック102に動作可能に連結され得る。2つの量子コントローラアーキテクチャブロック102が図1に示されているが、インタフェース100のアーキテクチャはそのように限定されているわけではなく、2つより多い量子コントローラアーキテクチャブロック102を含む実施形態が想定されることもある。様々な実施形態において、条件エンジン116は、受信されたキュビットデータに基づいて1または複数の量子コントローラ106の動作を指示する1または複数のコマンドを生成し得る。例えば、1または複数の条件エンジン116は、1または複数の量子コントローラアーキテクチャブロック102によって伝送され且つ条件エンジンアーキテクチャブロック104の1または複数の受信チップ110を介して受信されたキュビットデータに基づいて、1または複数のブール処理もしくは変換またはその組み合わせを実行し得る。例えば、1または複数の条件エンジン116は、キュビットを既知の状態に強制することもしくはキュビットテレポーテーションまたはその組み合わせなど、様々なアプリケーションを実行するべく、量子コントローラ106間の1または複数の条件演算を制御し得る。
加えて、インタフェース100は、発振器基準118から生成された共通クロックソースを含み得る。図1に示されたように、共通発振器基準118は、1または複数の量子コントローラアーキテクチャブロック102および条件エンジンアーキテクチャブロック104の両方に動作可能に連結され得る。例えば、インタフェース100の伝送チップ108および受信チップ110の伝送クロックおよび受信クロックは、発振器基準118の共通クロックから導出され得る。様々な実施形態において、共通クロックは、フェーズ・ロック・ループネットワーク120を通過することで、グリッチレスクロックマルチプレクサ122を介して選択可能な複数のクロックを生成することができる。グリッチレスクロックマルチプレクサ122は、1または複数の条件エンジン116、伝送チップ108、もしくは条件エンジンアーキテクチャブロック104の受信チップ110、またはその組み合わせのクロック信号を導出し得る。
条件エンジンアーキテクチャブロック104はさらに、インタフェース100をトレーニングするための1または複数のアルゴリズムを実行するために1または複数のトレーニングコンポーネント126を利用することができる、1または複数の組み込みプロセッサ124を含み得る。1または複数の組み込みプロセッサ124もしくはトレーニングコンポーネント126またはその組み合わせは、条件エンジンアーキテクチャブロック104の受信チップ110内に含まれた1または複数のプログラマブルレジスタ128に動作可能に連結され得る。1または複数のプログラマブルレジスタ128は、インタフェース100によって確立された1または複数のデータ経路に沿って位置付けられた1または複数の遅延素子130を制御し得る。例示的な遅延素子130は、限定されないが、可変デジタル遅延素子、デジタルバッファのシリアルチェーン(例えば、マルチプレクサに連結されているシリアルチェーンのステージを有する)、アナログ回路、それらの組み合わせ、もしくは同様のもの、またはその組み合わせを含み得る。さらに、条件エンジンアーキテクチャブロック104の1または複数の受信チップ110は、キュビットデータ値をプログラマブルクロスバーマルチプレクサ134に送信することができる1または複数の受信論理回路層132を含み得る。
様々な実施形態において、キュビットデータは、1または複数の量子コントローラ106からブロードキャストされ、アーキテクチャブロック102の量子コントローラの伝送チップ108の高速パス伝送論理回路層113に取り込まれ得る。本明細書にさらに説明されたように、伝送論理回路層113は、1または複数のフリーランニングデータポインタ114もしくはマスクフィールド115またはその組み合わせを含み得る。様々な実施形態において、1または複数のフリーランニングデータポインタ114は、どのキュビットデータとキュビット有効とのペアが各クロックサイクルにおいて1または複数の伝送ワイヤバス112上に伝送されるかを選択し得る。また、様々な実施形態において、1または複数のマスクフィールド115は、データパケットにおける有効ビットをセットすることもしくはクリアにすることまたはその組み合わせを行うことができ、ここで、当該ビットは、量子コントローラ106の対応するチャネル上で受信されたときにセットされることができ、所与のキュビットデータに1または複数のワイヤを割り当てるルーティングスキームをルーティングスキーム回転がアクティブ化するときにクリアにされることができる。当該キュビットデータはさらに、伝送ワイヤバス112内の構成可能なワイヤの数に多重化され得る。伝送ワイヤバス112は、対応する受信チップ110の受信論理回路層132との調整のためのパケット開始(start-of-packet)パルスにバンドルされたワイヤと、キュビットデータ信号、キュビット有効信号、もしくはパケット開始信号またはその組み合わせを保護するためのパリティ信号ワイヤとを含み得る。
条件エンジンアーキテクチャブロック104の受信チップ110の受信論理回路層132は、プログラマブルクロスバーマルチプレクサ134にキュビットデータを送信することができ、ここで、当該データは、条件エンジン116の受信バッファにマッピングされることができる。様々な実施形態において、受信論理回路層132はまた、1または複数のフリーランニングデータポインタ114を含むことができる。それぞれの受信チップ110は、それぞれの伝送チップ108とペアリングされることができ、その結果、受信論理回路層132の1または複数のフリーランニングデータポインタ114は、ペアリングされた伝送論理回路層113のフリーランニングデータポインタ114に同期されることができる。同期は、トレーニングコンポーネント126によって実行され、本明細書においてさらに説明される1または複数のトレーニングアルゴリズムもしくはコンピュータ実装方法またはその組み合わせを介して実現できる。受信論理回路層132は、伝送ワイヤバス112におけるワイヤの数と、ペアリングされた伝送チップ108に連結された量子コントローラ106のキュビットの数とについて同じ理解を有することができる。
様々な実施形態において、データ信号のルーティングは、最小スキューを生成すべく、フィールドプログラマブルゲートアレイ(「FPGA」)デバイスの外部に一致させられ得る。伝送ワイヤバス112を直接駆動することもしくはそれを受け入れることまたはその組み合わせを行う伝送チップ108もしくは受信チップ110またはその組み合わせは、インタフェース100上の内部データスキューを最小化するべく、特別I/Oバッファレジスタに制約されることもできる。タイミング制約は、これらの同じレジスタへのクロックスキューを最小化する試みのために利用されることができる。
図1に示されたように、伝送チップ108および受信チップ110の伝送および受信クロックは両方が、グリッチレスクロックマルチプレクサ122を介して選択可能な複数のクロックを生成すべく、共通の発振器基準118から導出されて、PLLネットワーク120を通過することができる。伝送チップ108および受信チップ110上の選択されたクロックは、レジスタ選択ビットを介して同じ周波数が選択されている場合に限って、周波数で一致されられることができる。クロックは、周波数で一致させられることはできるが、キュビットデータとともに伝送されることはできないので、インタフェース100は、伝送ワイヤバス112を駆動しそれを受け入れる即時伝送チップ108と受信チップ110との間のメソクロナスクロックインタフェースであることができる。
伝送ワイヤバス112のスキューが、レジスタを駆動し受け入れることを含む全てのステージにおいて一致させられることができる場合であっても、遅延素子130は、プログラマブルレジスタ128とともにデータ経路に導入されることができ、それによって、トレーニングコンポーネント126がデータ経路をトレーニングすることを可能にし、その結果、キュビットデータビットはメソクロナスクロックドメインのエッジから、受信クロックのセットアップおよびホールドウィンドウの外部にセンタリングされる。さらに、トレーニングコンポーネント126は、キュビットデータビットのデータパターンが伝送ワイヤバス112の他のワイヤと整列されていることを保証することができる。様々な実施形態において、トレーニングコンポーネント126は、タイミングマージンを最大化するとともに、部品の変形または温度変化が原因の不一致によって発生し得る将来のビットスリップのリスクを最小化するために、遅延素子130に関する遅延値を選択することができる。
図2~図6は、本明細書に説明された様々な実施形態に係る、1または複数のトレーニングアルゴリズムを実行して、インタフェースのデータ転送パターンを直接レジスタ間転送に見えるようにレンダリングすることができる、例示的且つ非限定的なトレーニングコンポーネント126のブロック図を示す。本明細書で説明する他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔さのために省略する。様々な実施形態において、トレーニングコンポーネント126は、1または複数の量子コントローラ106と条件エンジン116との間の1または複数のキュビットデータ転送の前に、インタフェース100をトレーニングすることができる。例えば、トレーニングコンポーネント126は、ワイヤデータを観測することもしくは1または複数の遅延素子130をシフトすることまたはその組み合わせを行うために、プログラマブルレジスタ128と相互作用することができる。
図2に示されたように、トレーニングコンポーネント126は、ワイヤ選択コンポーネント202を含むことができる。様々な実施形態において、ワイヤ選択コンポーネント202は、トレーニングのためにターゲットにされた伝送ワイヤバス112の最初のワイヤを選択することができる。選択されたワイヤに関連付けられたデータ経路は、1または複数の遅延素子130の操作を介してトレーニングコンポーネント126によって制御されることができる。例えば、トレーニングコンポーネント126は、遅延素子130を制御するプログラマブルレジスタ128によって実行される遅延値を識別することができる。トレーニングコンポーネント126は、遅延素子130に関連付けられた遅延値(例えば、各遅延ルーチンは、それぞれの遅延値に関連付けられることができる)を変動させることによって、選択されたワイヤに対して利用可能な様々な遅延ルーチンの各々を解析することができる。様々な実施形態において、ワイヤ選択コンポーネント202はまた、各伝送ワイヤバス112のワイヤを基準ワイヤとして指定することができる。例えば、ワイヤ選択コンポーネント202によって選択された伝送ワイヤバス112の第1のワイヤは、ターゲット伝送ワイヤバス112をトレーニングするとき、基準ワイヤとして考慮されることができる。
図3に示されたように、トレーニングコンポーネント126はさらに、ドメイン安定性コンポーネント302を含むことができる。様々な実施形態において、ドメイン安定性コンポーネント302は、データ経路の現在の遅延ルーチンにおいて選択されたワイヤのメソクロナスクロックドメイン安定性を査定することができる。1または複数の実施形態において、ドメイン安定性コンポーネント302は、現在の遅延ルーチンに関連付けられた転送パターンが、それぞれの伝送チップ108と受信チップ110との間の安定した単一レジスタ間ステージとして示されるかどうかを決定することができる。例えば、ドメイン安定性コンポーネント302は、伝送チップ108によって送信されたキュビットデータビットのストリングを解析することで、1または複数のパターンを識別することができる。さらに、安定した単一レジスタ間ステージを特徴付けるストリングパターンは、ドメイン安定性コンポーネント302によって事前規定されることができる。受信チップ110によって受信されたキュビットデータビットのストリングが事前規定されたパターンと一致する場合、ドメイン安定性コンポーネント302は、遅延素子130の現在の遅延値に関連付けられたメソクロナスクロックドメイン安定性が、安定した単一レジスタ転送レベル(「RTL」)ステージであることを決定することができる。例えば、プログラマブルレジスタ128はシフトレジストリであり得、事前規定されたパターンは当該シフトレジストリの事前規定されたステージであり得、ドメイン安定性コンポーネント302は、受信されたキュビットデータストリングが当該事前規定されたシフトレジストリステージ内にあるかどうかを決定し得る。現在の遅延ルーチンが安定した単一レジスタ間ステージ転送パターンによって特徴付けられていない場合、トレーニングコンポーネント126は、他の遅延ルーチンもしくは伝送ワイヤバス112のワイヤまたはその組み合わせを解析するために進むことができる。
様々な実施形態において、ドメイン安定性コンポーネント302は、ワイヤの観測されたデータ転送パターンを複数回解析することで、メソクロナスクロックドメイン安定性が、安定した単一レジスタ間ステージパターンによって特徴付けられているかどうかを決定することができる。例えば、ドメイン安定性コンポーネント302は、送信側からのパターンをオンオフすることによって、データ転送パターンを数百回解析することができる。現在の遅延ルーチンのデータ転送パターンを繰り返して解析することによって、ドメイン安定性コンポーネント302は、パターン決定の信頼度を高めることができる。
図4に示されたように、トレーニングコンポーネント126はまた、ドメイン領域コンポーネント402を含むことができる。様々な実施形態において、ドメイン領域コンポーネント402は、メソクロナスクロックの安定したドメイン領域を追跡することができる。現在評価されている遅延ルーチンが安定した単一レジスタ間ステージであることをドメイン安定性コンポーネント302が決定する場合、ドメイン領域コンポーネント402は、次に、選択されたワイヤが基準ワイヤであるかまたは基準ワイヤと整列されたかを決定することができる。例えば、選択されたワイヤが基準ワイヤでない場合、ドメイン領域コンポーネント402は、選択されたワイヤのキュビットデータと基準ワイヤのキュビットデータとを相互参照することで、選択されたワイヤと基準ワイヤとが整列中であることを保証することができる。選択されたワイヤが基準ワイヤでもなく基準ワイヤと整列されてもいない場合、トレーニングコンポーネント126は、他の遅延ルーチンもしくは伝送ワイヤバス112のワイヤまたはその組み合わせを解析するために進むことができる。
選択されたワイヤが基準ワイヤである場合、または、選択されたワイヤが基準ワイヤと整列されている場合、ドメイン領域コンポーネント402はさらに、遅延ルーチンがメソクロナスクロックドメインの知られている安定領域を実現するかどうかを決定することができる。選択されたワイヤおよび遅延ルーチンが知られている安定領域内にある場合、ドメイン領域コンポーネント402は、それぞれの領域のサイズを増加させることができる。例えば、ドメイン領域コンポーネント402は、規定値によって領域のサイズを増加させる(例えば、1によって領域のサイズを増加させる)ことができる。選択されたワイヤおよび遅延ルーチンが知られている安定領域内にない場合、ドメイン領域コンポーネント402は、メソクロナスクロックドメインの新たな領域を追跡することができる。様々な実施形態において、ドメイン領域コンポーネント402は、それによって、選択されたワイヤの各遅延ルーチン(例えば、各遅延値)に関連付けられたドメイン安定性を追跡することができる。例えば、ドメイン領域コンポーネント402は、選択されたワイヤの安定遅延領域の表を生成することができ、ここで、安定領域の境界は、1または複数の非安定遅延値の存在によって決定され得る。
図5に示されたように、トレーニングコンポーネント126は、遅延値コンポーネント502を追加的に含むことができる。様々な実施形態において、遅延値コンポーネント502は、評価されることができる選択されたワイヤの任意の他の遅延ルーチンが存在するかどうかを決定することができる。例えば、遅延値コンポーネント502は、選択されたワイヤのトレーニング中にまだ評価されていなかった遅延素子130の任意の遅延値が存在するかどうかを決定することができる。選択されたワイヤについてまだ評価されるべき利用可能な遅延ルーチンが存在する場合、遅延値コンポーネント502は、上記の特徴に従って、現在の遅延値を増加させることで、ドメイン安定性コンポーネント302もしくはドメイン領域コンポーネント402またはその組み合わせによってさらに評価されることができる交互の遅延ルーチンを確立することができる。
図6に示されたように、トレーニングコンポーネント126はさらに、センタリングコンポーネント602を含むことができる。様々な実施形態において、選択されたワイヤをメソクロナスクロックドメインの最も大きい安定領域内に配置するセンタリングコンポーネント602は、遅延値を選択し、それによって、遅延ルーチンを選択することができる。例えば、選択されたワイヤの全ての利用可能な遅延ルーチンが一度評価されると、センタリングコンポーネント602は、最も大きい安定領域を実現する遅延値を選択することができる。さらに、センタリングコンポーネント602は、選択されたワイヤを、キュビットデータビットが制限的な時間ウィンドウの外部にあるように、領域のアクティブクロックエッジ内にセンタリングすることができる。例えば、センタリングコンポーネント602は、選択されたワイヤを、キュビットデータビットがセットアップおよびホールド時間ウィンドウの外部にあるように、最も大きい安定したクロック領域のエッジからセンタリングすることができる。さらに、トレーニングコンポーネント126は、ターゲット伝送ワイヤバス112の各ワイヤを用いて、上記の特徴もしくは動作またはその組み合わせを繰り返すことができる。
図7は、本明細書に説明された1または複数の実施形態に係る、トレーニングコンポーネント126によって実行されることができる例示的且つ非限定的なトレーニングアルゴリズム700のフロー図を示す。本明細書で説明する他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔さのために省略する。トレーニングアルゴリズム700の様々な段階は、トレーニングコンポーネント126によって実行されるとともに、本明細書に説明された特徴もしくは動作またはその組み合わせに従って、トレーニングコンポーネント126のコンポーネントに関連付けられることができる。
702において、トレーニングアルゴリズム700は、トレーニングのためにターゲットにされた伝送ワイヤバス112のワイヤを(例えば、ワイヤ選択コンポーネント202を介して)選択する段階を含むことができる。704において、トレーニングアルゴリズム700は、現在評価されている遅延値においてメソクロナスドメイン安定性を査定する段階を含むことができる。例えば、トレーニングコンポーネント126は、現在の遅延値を有する選択されたワイヤ上で転送されているキュビットデータを観測することができる。当該遅延値は、データ経路に沿って位置付けられた1または複数の遅延素子130を考慮することができ、トレーニングコンポーネント126の方向においてプログラマブルレジスタ128によって実装されることができる。
706において、トレーニングアルゴリズム700は、現在の遅延値を有する選択されたワイヤの転送パターンが、チップ間(例えば、量子コントローラアーキテクチャブロック102の伝送チップ108と、条件エンジンアーキテクチャブロック104の受信チップ110との間)の安定した単一レジスタ間ステージとして示されているかどうかを決定する段階を含むことができる。本明細書に説明されたように、様々な実施形態において、ドメイン安定性コンポーネント302は、観測されたキュビットデータビットストリングが、単一RTLステージに関連付けられた規定済みのパターンによって特徴付けられたかどうかを決定することができる。観測されたパターンが安定した単一レジスタ間ステージを示す場合、トレーニングアルゴリズム700は段階708に進むことができる。観測されたパターンが安定した単一レジスタ間ステージを示さない場合、トレーニングアルゴリズム700は段階710に進むことができる。
708において、トレーニングアルゴリズム700は、選択されたワイヤが基準ワイヤであるかどうかを決定する段階を含むことができる。様々な実施形態において、ドメイン安定性コンポーネント302は、ターゲットにされた伝送ワイヤバス112からのワイヤを基準ワイヤとして指定することができる。例えば、トレーニングのために選択されたターゲットにされた伝送ワイヤバス112の第1のワイヤは、基準ワイヤとして指定されることができる。選択されたワイヤが基準ワイヤである場合、トレーニングアルゴリズム700は段階712に進むことができる。選択されたワイヤが基準ワイヤでない場合、トレーニングアルゴリズム700は段階714に進むことができる。
714において、トレーニングアルゴリズム700は、選択されたワイヤが基準ワイヤと整列されているかどうかを決定する段階を含むことができる。例えば、選択されたワイヤの観測されたキュビットデータは、基準ワイヤに沿って転送されたキュビットデータのスナップショットを用いて(例えば、ドメイン領域コンポーネント402を介して)相互参照されることで、選択されたワイヤと基準ワイヤとが整列されているかどうかを決定することができる。選択されたワイヤと基準ワイヤとが整列されている場合、トレーニングアルゴリズム700は段階712に進むことができる。選択されたワイヤと基準ワイヤとが整列されていない場合、トレーニングアルゴリズム700は段階710に進むことができる。
712において、トレーニングアルゴリズム700は、遅延ルーチンが既に安定領域にあるかどうかを決定する段階を含むことができる。例えば、ドメイン領域コンポーネント402は、安定遅延領域の1または複数の領域追跡テーブルを介して、選択されたワイヤに関連付けられた安定領域を追跡することができ、ここで、安定領域の境界は、1または複数の非安定遅延値の存在によって決定されることができる。遅延ルーチンが既知の安定領域内にあることが決定された場合、トレーニングアルゴリズム700は段階716に進むことができる。遅延ルーチンが既知の安定領域内にない場合、トレーニングアルゴリズム700は段階718に進むことができる。
716において、トレーニングアルゴリズム700は、現在の領域のサイズを増加させる段階を含むことができる。例えば、ドメイン領域コンポーネント402は、規定値によって(例えば、1の値によって)既知の安定領域のサイズを増加させることができる。718において、トレーニングアルゴリズム700は、新たな安定領域を追跡する段階を含むことができる。例えば、ドメイン領域コンポーネント402は、選択されたワイヤに関連付けられた領域追跡テーブルを更新することで、領域のサイズの増加もしくは新たな安定領域の存在またはその組み合わせを反映することができる。トレーニングアルゴリズム700は、段階716または段階718から段階710に進むことができる。
710において、トレーニングアルゴリズム700は、選択されたワイヤについて評価するべきより多くの遅延値が存在するかどうかを決定する段階を含むことができる。例えば、遅延値コンポーネント502は、遅延素子130の全ての利用可能な遅延値が、選択されたワイヤに関してトレーニングコンポーネント126によって評価されたかどうかを確認することができる。例えば、遅延値コンポーネント502は、ドメイン領域コンポーネント402によって構築された表を参照することで、以前に評価された遅延値を確認するとともに、これらの遅延値を、遅延素子130に関してプログラマブルレジスタ128によって実行されるために利用可能な遅延値のリストと比較することができる。評価するべき追加の遅延値が存在する場合、トレーニングアルゴリズム700は、段階720に進むことができる。評価するべき利用可能な追加の遅延値が存在しない場合、トレーニングアルゴリズム700は、段階722に進むことができる。
720において、トレーニングアルゴリズム700は、遅延値を増加させる段階を含むことができる。例えば、遅延値コンポーネント502は、選択されたワイヤに関してトレーニングコンポーネント126によってまだ評価されていない遅延値に対して、規定値だけ遅延値を増加させることができる。図7に示されたように、遅延値が新たな遅延値に一度増加されると、トレーニングアルゴリズム700は、段階706-718を繰り返すことで、新たな遅延値に関連付けられた転送パターンもしくはドメイン安定性またはその組み合わせを評価することができる。722において、トレーニングアルゴリズム700は、最も大きい安定領域に関連付けられた遅延値を選択する段階を含むことができる。例えば、センタリングコンポーネント602は、ドメイン領域コンポーネント402によって構築された領域追跡テーブルを考慮(consult)することで、評価済みの遅延値に関連付けられた最も大きい領域を識別することができる。様々な実施形態において、トレーニングアルゴリズム700はさらに、722において、アクティブクロックエッジから、受信クロックドメイン内に、選択されたワイヤのキュビットデータビットと遅延ルーチンとをセンタリングする段階を含むことができる。例えば、キュビットデータビットは、最も大きい領域の立ち上がりエッジおよび立ち下がりエッジからセンタリングされることができる。それによって、キュビットデータビットは、各エッジにおいて、セットアップおよびホールド時間ウィンドウの外部に位置付けられることができる。例えば、最も大きい領域が300のサイズとともに、100の最小遅延値と400の最大遅延値とによって規定された境界を有する場合、センタリングコンポーネント602は、選択されたワイヤに対して遅延値250を選択することができる。
1または複数の実施形態において、インタフェース100のターゲット伝送ワイヤバス112の各ワイヤもしくは各伝送ワイヤバス112またはその両方に対して、トレーニングアルゴリズム700を繰り返すことができる。例えば、組み込みトレーニングコンポーネント126は、1または複数の伝送ワイヤバス112の各ワイヤに関して段階702~722を実行することで、インタフェース100をトレーニングすることができる。
図8は、本明細書に説明された1または複数の実施形態に係る、インタフェース100によって利用されることができる例示的且つ非限定的な継続的なパケット転送プロトコル800のダイアグラムを示す。本明細書で説明する他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔さのために省略する。様々な実施形態において、インタフェース100は、組み込みトレーニングコンポーネント126によって実行されるトレーニングに続いて、例示的且つ継続的なパケット転送プロトコル800を利用することができる。図8に示されたように、継続的なパケット転送プロトコル800に従って、キュビットデータ位置とキュビット有効とのみを含むデータパケットは、量子コントローラアーキテクチャブロック102の1または複数の伝送チップ108と条件エンジンアーキテクチャブロック104の受信チップ110との間で継続的に転送されることができる。データパケットの境界は、トレーニングコンポーネント126によって実行されるトレーニング中に確立される(例えば、トレーニングアルゴリズム700に従って実行されるトレーニング中に確立される)ことができる。キュビットデータが利用可能になると、継続的なパケット転送プロトコル800は、次のデータパケットが到達するまでデータを保持して、キュビット有効とともにキュビットデータの新たなビット(例えば、新たなキュビット測定値)を挿入し、次に、受信チップ110にパケットを伝送することができる。それによって、オーバーヘッドビットは、データパケットの開始および終了を識別するためには必要とされず、送信元情報は、データパケット内のビット位置から推測することができる。有利に、継続的なパケット転送プロトコル800は、インタフェース100のランタイム中のデータ転送が、転送中に生じるキュビットの劣化を克服するように、低遅延で実行されることを可能にすることができる。
1または複数の実施形態において、継続的なパケット転送プロトコルは、条件エンジンアーキテクチャブロック104の受信チップ110の受信論理回路層132と併せてアーキテクチャブロック102の量子コントローラの伝送チップ108の伝送論理回路層113によって実装されることができる。さらに、チップ間の伝送ワイヤバス112は、図8に示されたように、「k+1」個のワイヤ(例えば、ワイヤ0、ワイヤ1、ワイヤ2からワイヤ「k」)を含むことができ、ここでワイヤの合計の数は正の偶数の整数である。伝送論理回路層113は、現在のサイクルにおいてフリーランニングポインタを介してどのキュビット番号が外に送信されたかのマスクを通じてのワイヤ割り当てを指示する複数のルーティングスキームを通じてルーティングされることができる。加えて、伝送論理回路層113は、関連付けられた量子コントローラ106取得チャネルからの受信に基づいて、送信キュビット有効ベクトルをセットすることができる。さらに、送信キュビット有効ベクトルは、条件エンジンアーキテクチャブロック104の伝送の際にクリアにされることができる。受信論理回路層132は、ルーティングスキームの回転について、伝送論理回路層113と同じ理解を有することができる。さらに、受信論理回路層132は、伝送ワイヤバス112のワイヤ上の現在入ってくるキュビットデータと有効とのペアをサイクルごとに処理して、条件付き割り当てマッピングに従って条件エンジン116に当該ペアを転送することができる。
図8に示されたように、継続的なパケット転送プロトコル800は、複数のサイクル(例えば、「x」個までのサイクルであり、サイクル「n」を含む)を含むことができる。各サイクルを用いて、継続的なパケット転送プロトコル800は、異なるルーティングスキームを利用することで、キュビットデータと有効とのペアを伝送するのに利用されたワイヤを割り当てることができる。サイクルの数は、量子コントローラ106からブロードキャストされたキュビットデータと有効とのペアの数に基づいて構成されることができる。伝送論理回路層113および受信論理回路層132の両方がルーティングスキームおよびサイクルカウントの同じ回転にセットされている限り、キュビット認定情報は、データを転送するのに利用されるワイヤ、現在のサイクルカウント、もしくはデータパッケージ内のキュビットデータビット位置、またはその組み合わせに基づいて推測されることができる。
量子コントローラ106がキュビットの数「q」を制御し、伝送ワイヤバス112のワイヤの数「i」がキュビットの数「q」の2倍より大きいまたはそれに等しい(例えば、2×q≦i)場合、それぞれのキュビットからのキュビットデータは、各サイクルにおいて同じワイヤ(例えば、ワイヤ0)にルーティングされることができる(例えば、これは、少なくとも、量子コントローラ106から来る各キュビットデータおよびキュビット有効に十分なワイヤが存在するからである)。しかしながら、ワイヤの数「i」がキュビットの数「q」の2倍より少ない(例えば、2×q>i)場合、伝送論理回路層113および受信論理回路層132は、複数のルーティングスキームを通じて回転し、その結果、各サイクルのワイヤ割り当てを交互に行い、それによって、オーバヘッド情報を認定することなしに、もしくは、厳密に専用となったワイヤなしに、またはその両方で、全ての利用可能なキュビットデータと有効とのペアを伝送することができる。
例えば、パケットデータを含むアレイ「a」は、以下の方程式1に従って規定されることができる。
例えば、a[0]はキュビット0データ(qubit 0 data)を含むことができ、a[1]はキュビット0有効(qubit 0 valid)を含むことができ、a[2]=キュビット1データであり、以下同様である。さらに所与のクロックサイクル「x」中においてデータパケットアレイ「a」に対してインデックス「k」を有する所与のワイヤ「w」の割り当ては、以下の方程式2によって特徴付けられることができる。
図8は、各クロックサイクルを用いてワイヤ割り当てを改変する例示的なルーティングスキーム回転を示す。例えば、継続的なパケット転送プロトコル800のサイクル0中に、キュビット0からのキュビットデータはワイヤ0にルーティングされることができ、キュビット0からのキュビット有効はワイヤ1にルーティングされることができ、キュビット1からのキュビットデータはワイヤ2にルーティングされることができ、以下同様である。例えば、サイクル0は、ルーティングスキームに従うことができ、その結果、ワイヤ「k」にルーティングされたキュビット有効はキュビット((k+1)/2)-1(例えば、ワイヤ1に関して、「k」は1に等しく、したがって、示されたように、キュビット0からのキュビット有効はワイヤ1にルーティングされる)からのものであり、同じキュビットからのキュビットデータはインデックスにおける前のワイヤにルーティングされる(例えば、キュビット0からのキュビットデータはワイヤ0にルーティングされる)。
次のサイクルにおいて、継続的なパケット転送プロトコル800は、ワイヤは異なるキュビット割り当てを有するように、新たなルーティングスキームに回転することができる。例えば、継続的なパケット転送プロトコル800のサイクル1中に、キュビット1からのキュビットデータはワイヤ0にルーティングされることができ、キュビット1からのキュビット有効はワイヤ1にルーティングされることができ、キュビット3からのキュビットデータはワイヤ2にルーティングされることができ、キュビット3からのキュビット有効はワイヤ3にルーティングされることができ、以下同様である。例えば、サイクル1は、ルーティングスキームに従うことができ、その結果、ワイヤ「k」にルーティングされたキュビット有効はキュビット((k+1)/2)*2-1(例えば、ワイヤ3に関して、「k」は3に等しく、したがって、キュビット3からのキュビット有効はワイヤ3にルーティングされる)からのものであり、同じキュビットからのキュビットデータは前のワイヤにルーティングされる(例えば、キュビット3からのキュビットデータはワイヤ2にルーティングされる)。
例示的なサイクル0中に、キュビット0および2のデータパケットはキュビットデータとして利用可能であり、両方のキュビットの有効(valid)はワイヤ(例えば、ワイヤ0~1および4~5)に割り当てられる。しかしながら、例示的なサイクル1中に、キュビット0および2のデータパケットが利用可能でなく、これは、サイクル1中に利用されているルーティングスキームが、これらのキュビットのキュビットデータおよび有効にワイヤを割り当てないからである。したがって、キュビットデータおよび有効は、キュビット0および2から利用可能になり、当該キュビットデータと有効とのペアリングは、キュビット0もしくは2またはその組み合わせのキュビットデータと有効とのペアリングのための利用可能なデータパケットを有するルーティングスキームを利用するサイクルを待つように、伝送論理回路層113によって強制されることができる。例えば、キュビット0もしくは2またはその組み合わせからの利用可能なキュビットデータと有効とのペアリングは、例示的なサイクル0まで待つように強制され得る、または、利用可能なデータパケットを有する別のサイクルは、ルーティングスキームの回転においてアクティブである。
継続的なパケット転送プロトコル800は当該ルーティングスキームを通じて回転するので、回転プロトコルは、最終的には最初のルーティングスキームに戻るようにループすることができ、継続的なパケット転送プロトコル800は、当該ルーティングスキームを通じて再び一度回転することができる。例えば、図8は、例示的なサイクル「n」のルーティングスキームが例示的なサイクル0の最初の回転スキームと同じことを示しており、それによって、サイクル「n」において、継続的なパケット転送プロトコル800は、回転プロトコルの繰り返しを開始することができることを示している。例えば、例示的なサイクル「n+1」のルーティングスキームは、例示的なサイクル1のルーティングスキームと同じであり得る。
図9は、本明細書に説明された1または複数の実施形態に係る、インタフェース100をトレーニングするのに利用されることができる例示的且つ非限定的なコンピュータ実装方法900のフロー図を示す。本明細書で説明する他の実施形態において利用される同様の要素の繰り返しの説明は、簡潔さのために省略する。様々な実施形態において、コンピュータ実装方法900は、トレーニングアルゴリズム700の実行を介してトレーニングコンポーネント126によって利用されることができる。
902において、コンピュータ実装方法900は、プロセッサ(例えば、組み込みプロセッサ124)に動作可能に連結されたシステム(例えば、インタフェース100)によって、量子コントローラ高速パスインタフェース(例えば、インタフェース100)のターゲットワイヤ(例えば、伝送ワイヤバス112内に含まれた)に関する1または複数の遅延値におけるメソクロナスクロックドメインの安定性を(例えば、ドメイン安定性コンポーネント302を介して)査定する段階を含むことができる。904において、コンピュータ実装方法900は、当該メソクロナスクロックドメインが、1または複数の遅延値における安定した直接レジスタ間転送パターンによって特徴付けられているかどうかを(例えば、ドメイン安定性コンポーネント302を介して)決定する段階を含むことができる。
906において、コンピュータ実装方法900は、当該システム(例えば、インタフェース100)によって、当該ターゲットワイヤが基準ワイヤであるかまたは基準ワイヤと整列されているかを(例えば、ドメイン領域コンポーネント402を介して)決定する段階を含むことができる。例えば、当該ドメイン領域コンポーネント402は、伝送ワイヤバス112のうち1または複数のワイヤを基準ワイヤとして指定することができる。さらに、ターゲットワイヤが基準ワイヤでない場合、当該ドメイン領域コンポーネント402は、ターゲットワイヤが基準ワイヤと整列されているかどうかを決定することができる。908において、コンピュータ実装方法900は、当該システム(例えば、インタフェース100)によって、メソクロナスクロックドメインの複数の安定領域の境界を(例えば、ドメイン領域コンポーネント402もしくは遅延値コンポーネント502またはその組み合わせを介して)識別する段階を含むことができる。例えば、ドメイン領域コンポーネント402は、本明細書に説明された様々な実施形態に従って、領域追跡テーブルを介して、評価済みの遅延値に関連付けられた様々な安定した、非安定領域を追跡することができる。910において、コンピュータ実装方法900は、システム(例えば、インタフェース100)によって、最も大きい安定領域のアクティブクロックエッジからセンタリングされた遅延値を(例えば、センタリングコンポーネント602を介して)選択する段階を含むことができる。
本発明は、任意の可能な技術詳細レベルで統合化されたシステム、方法、もしくはコンピュータプログラム製品、またはその組み合わせであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数または複数)を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または上述のものの任意の好適な組み合わせであり得るが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非包括的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカードまたは命令が記録されている溝内の隆起構造などの機械的にエンコードされたデバイス、および、上述のものの任意の好適な組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの一時的な信号それ自体とは解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、あるいは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはその組み合わせを介して、外部コンピュータまたは外部ストレージデバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバ、またはその組み合わせを備え得る。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の動作を行うためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語などの手続き型プログラミング言語もしくは同様のプログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで書かれたソースコードもしくはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全て実行され得るか、スタンドアロン条件付きパッケージとしてユーザのコンピュータ上で部分的に実行され得るか、部分的にユーザのコンピュータ上で且つ部分的にリモートコンピュータ上で実行され得るか、または、リモートコンピュータもしくはサーバ上で全て実行され得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはその接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを介して)行われてもよい。いくつかの実施形態において、本発明の態様を実施するために、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、または、プログラマブルロジックアレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることで、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその組み合わせを参照して、説明されている。フローチャート図もしくはブロック図またはその組み合わせの各ブロックと、フローチャート図もしくはブロック図またはその組み合わせのブロックの組み合わせとは、コンピュータ可読プログラム命令により実装され得ることが解るであろう。
これらのコンピュータ可読プログラム命令を汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供して機械を生成してよく、それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャートもしくはブロック図、またはその組み合わせの1つまたは複数のブロックで指定された機能/動作を実装する手段を作成するようになる。これらのコンピュータ可読プログラム命令はまた、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその組み合わせの1つまたは複数のブロックに指定される機能/作用の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ、プログラマブルデータ処理装置、または他のデバイスあるいはその組み合わせに特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または、他のデバイスにロードして、コンピュータ、他のプログラマブル装置、または、他のデバイス上で一連の動作段階を実行させることでコンピュータ実装プロセスを作ることもでき、これにより、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令が、フローチャートもしくはブロック図の、またはその組み合わせの1つまたは複数のブロックで指定される機能/動作を実装するようになる。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装する1または複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてもよいし、ブロックは、関与する機能に依存して逆の順序で実行される場合もあり得る。ブロック図もしくはフローチャート図の各ブロックまたはその両方、およびブロック図もしくはフローチャート図におけるブロックまたはその両方の組み合わせが、指定された機能もしくは動作を実行する、または、専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
本明細書で説明する様々な実施形態のための追加の文脈を提供すべく、図10および以下の説明は、本明細書で説明する実施形態の様々な実施形態が実装され得る好適なコンピューティング環境1000の一般的な説明を提供するように意図している。実施形態は、1または複数のコンピュータ上で実行されることができるコンピュータ実行可能命令の一般的文脈で上記に説明されているが、その一方、当業者であれば、当該実施形態は、他のプログラムモジュールと組み合わせてもしくはハードウェアと条件付きの組み合わせとして、またはその両方で実装されることもできることを認識するであろう。
概して、プログラムモジュールは、特定のタスクを実行する、または、特定の抽象データタイプを実装する、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、発明の方法は、これらの各々が1または複数の関連付けたデバイスに動作可能に結合され得るシングルプロセッサもしくはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、モノのインターネット(「IoT」)デバイス、分散型コンピューティングシステム、ならびに、パーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、またはマイクロプロセッサベース電子機器もしくはプログラマブルコンシューマ向け電子機器などを含む他のコンピュータシステム構成を用いて実施され得ることを理解するだろう。
本明細書の実施形態の示された実施形態はまた、特定のタスクが通信ネットワークを通じてリンクされたリモート処理デバイスによって実行される分散型コンピューティング環境において実施され得る。分散型コンピューティング環境において、プログラムモジュールは、ローカルおよびリモート両方のメモリストレージデバイスに位置し得る。例えば、1または複数の実施形態では、コンピュータ実行可能コンポーネントは、1または複数の分散型メモリユニットを含み、もしくは1または複数の分散型メモリユニットで構成され、またはその両方が可能であるメモリから実行され得る。本明細書において使用される場合、「メモリ」および「メモリユニット」という用語は、置き替え可能である。さらに、本明細書で説明する1または複数の実施形態は、分散された方式で、コンピュータ実行可能コンポーネントのコードを実行し得、例えば、複数のプロセッサが組み合わせてまたは共同で動作して、1または複数の分散型メモリユニットからコードを実行する。本明細書において使用される場合、「メモリ」という用語は、1つの位置、または複数のメモリ、または1または複数の位置でのメモリユニットでの単一のメモリまたはメモリユニットを包含し得る。
コンピューティングデバイスは典型的には、その2つの用語が以下のように互いに異なるように本明細書で使用される、コンピュータ可読記憶媒体、機械可読記憶媒体、もしくは通信媒体、またはその組み合わせを含み得る様々な媒体を含む。コンピュータ可読記憶媒体または機械可読記憶媒体は、コンピュータによってアクセスされ得、揮発性媒体および不揮発性媒体の両方、取り外し可能媒体および取り外し不能な媒体の両方を含む任意の利用可能な記憶媒体であり得る。例として、限定されないが、コンピュータ可読記憶媒体または機械可読記憶媒体は、コンピュータ可読命令または機械可読命令、プログラムモジュール、構造化データもしくは非構造化データのような情報の格納のための任意の方法または技術に関連して実装され得る。
コンピュータ可読記憶媒体は、これらに限定されるものではないが、ランダムアクセスメモリ(「RAM」)、リードオンリメモリ(「ROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスクリードオンリメモリ(「CD-ROM」)、デジタル多用途ディスク(「DVD」)、ブルーレイディスク(「BD」)もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、ソリッドステートドライブもしくは他のソリッドステートストレージデバイス、または所望の情報を格納するために使用され得る他の有形媒体もしくは非一時的媒体、またはその組み合わせを含み得る。これに関して、ストレージ、メモリ、またはコンピュータ可読媒体に適用される本明細書での「有形」または「非一時的」という用語は、修飾子としてそれ自体で伝搬する一時的な信号のみを排除するものとして理解されるべきであり、それ自体で伝搬するだけの一時的な信号ではない全ての標準的なストレージ、メモリ、またはコンピュータ可読媒体に対する権利を放棄しない。
コンピュータ可読記憶媒体は、媒体によって格納された情報に関する様々な動作のために、例えば、アクセス要求、クエリ、または他のデータ取得プロトコルを介して、1または複数のローカルコンピューティングデバイスもしくはリモートコンピューティングデバイスによってアクセスされ得る。
通信媒体は典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または他の構造化もしくは非構造化データを、変調されたデータ信号、例えば、搬送波または他の輸送機構などのデータ信号において具現化し、任意の情報送達、または輸送媒体を含む。「変調されたデータ信号」という用語または信号は、その特性セットのうちの1または複数を有する信号、あるいは1または複数の信号内の情報をエンコードするような方式で変更された信号を指す。例として、限定されないが、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音波、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。
再び図10を参照して、本明細書で説明する態様の様々な実施形態を実装するための例示的な環境1000は、コンピュータ1002、処理ユニット1004を含むコンピュータ1002、システムメモリ1006、およびシステムバス1008を含む。システムバス1008は、システムメモリ1006を含むがそれに限定されるものではないシステムコンポーネントを処理ユニット1004に結合する。処理ユニット1004は、様々な市販のプロセッサのいずれかであり得る。デュアルプロセッサおよび他のマルチプロセッサアーキテクチャはまた、処理ユニット1004として利用され得る。
システムバス1008は、様々な市販のバスアーキテクチャのいずれかを使用する(メモリコントローラを有するか、または、有さない)メモリバス、ペリフェラルバス、およびローカルバスにさらに相互接続し得るいくつかのタイプのバス構造のうちのいずれかであり得る。システムメモリ1006は、ROM1010およびRAM1012を含む。基本入出力システム(「BIOS」)は、BIOSが、スタートアップの間等にコンピュータ1002内の要素同士の間で情報を転送するのに役立つ基本ルーチンを含むROM、消去可能プログラマブルリードオンリメモリ(「EPROM」)、EEPROMのような不揮発性メモリに格納され得る。RAM1012はまた、データをキャッシュするための静的RAMのような高速RAMを含み得る。
コンピュータ1002はさらに、内部ハードディスクドライブ(「HDD」)1014(例えば、EIDE、SATA)、1または複数の外部ストレージデバイス1016(例えば、磁気フロッピディスクドライブ(「FDD」)1016、メモリスティックまたはフラッシュドライブリーダ、メモリカードリーダなど)、および、光ディスクドライブ1020(例えば、CD-ROMディスク、DVD、BDなどから読み取りまたは書き込みできる)を含む。内部HDD1014がコンピュータ1002内に位置するように示されているが、内部HDD1014はまた、好適なシャシ(図示せず)における外部使用のために構成され得る。加えて、環境1000に不図示ではあるが、ソリッドステートドライブ(「SSD」)は、HDD1014に加えて、または、その代わりに使用され得る。HDD1014、外部ストレージデバイス1016、および光ディスクドライブ1020は、それぞれHDDインタフェース1024、外部ストレージインタフェース1026、および光学式ドライブインタフェース1028によって、システムバス1008に接続され得る。外部ドライブ実装形態のためのインタフェース1024は、ユニバーサルシリアルバス(「USB」)、および米国電気電子学会(「IEEE」)1394インタフェース技術の少なくとも1つまたは両方を含み得る。他の外部ドライブ接続技術は、本明細書で説明する実施形態の意図の中に含まれる。
ドライブおよびその関連するコンピュータ可読記憶媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。コンピュータ1002のために、ドライブおよび記憶媒体は、好適なデジタルフォーマットでの任意のデータの格納を適応させる。上記のコンピュータ可読記憶媒体の説明はそれぞれのタイプのストレージデバイスを参照するが、現在存在しているものでもまたは将来開発されるものでもコンピュータによって可読である他のタイプの記憶媒体も例示的な動作環境において使用し得ること、およびさらに任意のそのような記憶媒体が本明細書で説明する方法を実行するためのコンピュータ実行可能命令を含み得ることが当業者によって理解されるべきである。
オペレーティングシステム1030、1または複数のアプリケーションプログラム1032、他のプログラムモジュール1034、およびプログラムデータ1036を含む、幾つかのプログラムモジュールは、ドライブおよびRAM1012に格納され得る。オペレーティングシステム、アプリケーション、モジュール、もしくはデータ、またはその組み合わせの全てまたは一部はまた、RAM1012にキャッシュされ得る。本明細書で説明するシステムおよび方法は、様々な市販のオペレーティングシステム、またはオペレーティングシステムの組み合わせを利用して実装され得る。
コンピュータ1002は任意選択的に、エミュレーション技術を含み得る。例えば、ハイパーバイザ(図示せず)または他の仲介するものは、オペレーティングシステム1030のためのハードウェア環境をエミュレートし得、エミュレートされたハードウェアは、図10に示すハードウェアとは任意選択的に異なり得る。そのような一実施形態では、オペレーティングシステム1030は、コンピュータ1002でホストされた複数の仮想マシン(「VM」)の1つのVMを含み得る。さらに、オペレーティングシステム1030は、アプリケーション1032のための、Java(登録商標)実行環境または.NET Frameworkのようなランタイム環境を提供し得る。ランタイム環境は、アプリケーション1032が、ランタイム環境を含む任意のオペレーティングシステム上で実行されることを可能にする一貫性のある実行環境である。同様に、オペレーティングシステム1030はコンテナをサポートすることができ、アプリケーション1032はコンテナの形であることができ、当該形は、例えば、アプリケーションのためのコード、ランタイム、システムツール、システムライブラリおよび設定を含む、条件付きの軽量で、スタンドアロンで、実行可能なパッケージである。
さらに、コンピュータ1002は、信頼できる処理モジュール(「TPM」)などのセキュリティモジュールを用いて有効にすることができる。例えば、TPMを用いると、ブートコンポーネントは、次のブートコンポーネントをロードする前に、時間的に次に来るブートコンポーネントをハッシュし、保護された値への結果の一致するのを待つ。このプロセスは、コンピュータ1002のコード実行スタックにおける任意の層で生じ得、例えば、アプリケーション実行レベルまたはオペレーティングシステム(「OS」)カーネルレベルで適用され、それによって、コード実行の任意のレベルでのセキュリティを可能にし得る。
ユーザは、1または複数の有線/無線入力デバイス、例えば、キーボード1038、タッチスクリーン1040、およびマウス1042のようなポインティングデバイスを通じてコンピュータ1002にコマンドおよび情報を入れ得る。他の入力デバイス(図示せず)は、マイクロフォン、赤外線(「IR」)リモコン、無線周波数(「RF」)リモコン、もしくは他のリモコン、ジョイスティック、バーチャルリアリティコントローラもしくはバーチャルリアリティヘッドセットまたはその組み合わせ、ゲームパッド、スタイラスペン、カメラ、ジェスチャセンサ入力デバイス、ビジョンムーブメントセンサ入力デバイス、感情検出デバイスもしくは顔検出デバイスのような画像入力デバイス、または指紋スキャナもしくは虹彩スキャナのような生体認証入力デバイスなどを含み得る。これらのおよび他の入力デバイスは、多くの場合、システムバス1008に連結され得る入力デバイスインタフェース1044を通じて処理ユニット1004に接続されているが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース、BLUETOOTH(登録商標)インタフェースなどといった他のインタフェースによって接続されることもできる。
モニタ1046または他のタイプのディスプレイデバイスはまた、ビデオアダプタ1048のようなインタフェースを介してシステムバス1008に接続され得る。モニタ1046に加えて、コンピュータは、通常、スピーカ、プリンタなどといった他の周辺出力デバイス(図示せず)を含む。
コンピュータ1002は、リモートコンピュータ1050など、1または複数のリモートコンピュータに対する有線通信、無線通信、またはその組み合わせを介した論理接続を使用して、ネットワーク化された環境において動作し得る。リモートコンピュータ1050は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースエンタテインメント機器、ピアデバイスもしくは他の一般的なネットワークノードであり得、典型的には、簡潔さのためにメモリ/ストレージデバイス1052のみが示されているが、コンピュータ1002に関して説明された多くのまたは全ての要素を含む。示された論理接続は、ローカルエリアネットワーク(「LAN」)1054、もしくはより大きなネットワーク、例えば、ワイドエリアネットワーク(「WAN」)1056、またはその組み合わせへの有線/無線接続を含む。そのようなLANネットワーキング環境およびWANネットワーキング環境は、オフィスおよび企業でよく見られ、イントラネットのような企業規模のコンピュータネットワークを容易にし、これらの全ては、グローバル通信ネットワーク、例えば、インターネットに接続し得る。
LANネットワーキング環境において使用されるとき、コンピュータ1002は、有線、無線、またはその組み合わせの通信ネットワークインタフェースまたはアダプタ1058を通じてローカルネットワーク1054に接続され得る。アダプタ1058は、無線モードでアダプタ1058と通信するためにそこに配設された無線アクセスポイント(「AP」)も含み得る、LAN1054への有線通信もしくは無線通信を容易にし得る。
WANネットワーキング環境において使用されるとき、コンピュータ1002は、モデム1060を含み得るか、またはインターネットによってのような、WAN1056上の通信を確立するための他の手段を介してWAN1056上の通信サーバに接続され得る。内部または外部であり得、有線デバイスまたは無線デバイスであり得るモデム1060は、入力デバイスインタフェース1044を介してシステムバス1008に接続され得る。ネットワーク化された環境では、コンピュータ1002またはその一部に関して示されたプログラムモジュールは、リモートメモリ/ストレージデバイス1052に格納され得る。示されたネットワーク接続は例示的であり、コンピュータ同士の間の通信リンクを確立する他の手段が使用され得ることが理解されるだろう。
LANネットワーキング環境またはWANネットワーキング環境のいずれかにおいて使用されるとき、コンピュータ1002は、上記のように、外部ストレージデバイス1016に加えて、またはその代わりに、クラウドストレージシステムまたは他のネットワークベースストレージシステムにアクセスし得る。概して、コンピュータ1002とクラウドストレージシステムとの間の接続は、LAN1054またはWAN1056上で、例えば、それぞれアダプタ1058またはモデム1060によって確立され得る。コンピュータ1002を関連付けられたクラウドストレージシステムに接続すると、外部ストレージインタフェース1026は、アダプタ1058もしくはモデム1060、またはその組み合わせの補助を用いて、外部ストレージの他のタイプを管理するように、クラウドストレージシステムによって提供されたストレージを管理し得る。例えば、外部ストレージインタフェース1026は、それらのソースがコンピュータ1002に物理的に接続しているかのように、クラウドストレージソースへのアクセスを提供するように構成され得る。
コンピュータ1002は、例えば、プリンタ、スキャナ、デスクトップもしくはポータブルコンピュータまたはその組み合わせ、ポータブルデータアシスタント、通信衛星、無線で検出可能なタグ(例えば、キオスク、ニューススタンド、店舗の棚など)に関連付けられた任意の機器または位置、および、電話のような、無線通信において動作可能に配設された任意の無線デバイスまたはエンティティと通信するように動作可能であることができる。これは、ワイヤレスフィデリティ(「Wi-Fi(登録商標)」)およびBLUETOOTH(登録商標)無線技術を含み得る。したがって、通信は、従来のネットワークと同じく事前規定された構造であってもよいし、または単に、少なくとも2つのデバイス間のその場限りの通信であってもよい。
上で説明されてきたものは、システム、コンピュータプログラム製品、およびコンピュータ実装方法の単なる例を含む。もちろん、本開示を説明する目的のために、コンポーネント、製品、もしくはコンピュータ実装方法、またはその組み合わせのあらゆる考えられる組み合わせを説明することは可能ではないが、当業者は、本開示のさらに多くの組み合わせおよび置換が可能であることを認識し得る。さらに、「含む」、「有する」、「備える」などの用語が詳細な説明、特許請求の範囲、添付書類、および図面において使用される限り、そのような用語は、「備える」という用語が請求項において移行句として利用される場合に解釈されるのと同様の方式で包括的であることが意図される。様々な実施形態の説明は、例示のために提示されてきたが、包括的あるか、または開示された実施形態に限定されることを意図するものではない。説明された実施形態の範囲および趣旨から逸脱することなく、多くの修正および変形が、当業者には明らかであろう。本明細書において使用される専門用語は、実施形態の原理、市場で見られる技術の実用的な適用またはそれに対する技術的改善を最適に説明し、あるいは、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択された。

Claims (20)

  1. プロセッサに動作可能に連結されたシステムによって、メソクロナスクロックドメインが直接レジスタ間転送パターンによって特徴付けられるように遅延値を調整することによって量子コントローラと条件エンジンとの間でキュビットデータビットをルーティングするための量子コントローラ高速パスインタフェースをトレーニングする段階を備える、
    コンピュータ実装方法。
  2. 前記システムによって、前記量子コントローラ高速パスインタフェースの遅延デバイスをシフトすることによって前記メソクロナスクロックドメインを安定化する前記遅延値を選択する段階
    をさらに備える、請求項1に記載のコンピュータ実装方法。
  3. 前記トレーニングする段階は、アクティブクロックエッジから、受信クロックドメイン内に、前記キュビットデータビットをセンタリングする、請求項1または2に記載のコンピュータ実装方法。
  4. 前記トレーニングする段階は、受信クロックドメインの時間マージンを最大化する、請求項1または2に記載のコンピュータ実装方法。
  5. 前記システムによって、前記量子コントローラ高速パスインタフェースがターゲットワイヤに関して実装できる複数の遅延値において前記メソクロナスクロックドメインの安定性を追跡することによって、前記メソクロナスクロックドメインの複数の安定領域の境界を識別する段階
    をさらに備える、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
  6. 前記トレーニングする段階はさらに、
    前記システムによって、前記複数の安定領域からの最も大きい安定領域に関連付けられた前記複数の遅延値から好ましい遅延値を選択する段階と、
    前記システムによって、前記キュビットデータビットをルーティングするために、前記ターゲットワイヤとともに、前記好ましい遅延値を利用する段階
    を有する、請求項5に記載のコンピュータ実装方法。
  7. 前記システムによって、前記量子コントローラ高速パスインタフェースのターゲットワイヤに関して前記遅延値における前記メソクロナスクロックドメインの安定性を査定する段階
    をさらに備える、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
  8. 前記査定する段階は、
    前記システムによって、前記メソクロナスクロックドメインの前記安定性が前記直接レジスタ間転送パターンによって特徴付けられているという査定に基づいて、前記ターゲットワイヤが前記量子コントローラ高速パスインタフェースの基準ワイヤであるかどうかを決定する段階と、
    前記システムによって、前記メソクロナスクロックドメインの前記安定性が前記直接レジスタ間転送パターンによって特徴付けられているという査定に基づいて、前記ターゲットワイヤが前記基準ワイヤと整列するかどうかを決定する段階と
    を有する、請求項7に記載のコンピュータ実装方法。
  9. 前記査定する段階はさらに、
    前記システムによって、前記ターゲットワイヤが前記基準ワイヤであるかまたは前記基準ワイヤと整列されているかの決定に基づいて、前記キュビットデータビットが前記メソクロナスクロックドメインの安定領域内にあるかどうかを決定する段階
    を有する、請求項8に記載のコンピュータ実装方法。
  10. 量子コントローラと条件エンジンとの間でキュビットデータビットをルーティングするためのコンピュータプログラムであって、プロセッサに、
    量子コントローラ高速パスインタフェースのメソクロナスクロックドメインが直接レジスタ間転送パターンによって特徴付けられるように遅延値を調整することによって前記量子コントローラ高速パスインタフェースをトレーニングする手順
    を実行させるためのコンピュータプログラム。
  11. 前記プロセッサに、
    前記量子コントローラ高速パスインタフェースの遅延デバイスをシフトすることによって前記メソクロナスクロックドメインを安定化する受信クロックドメインを選択する手順
    をさらに実行させる、請求項10に記載のコンピュータプログラム。
  12. 前記プロセッサに、
    前記量子コントローラ高速パスインタフェースのターゲットワイヤに関して、前記遅延値における前記メソクロナスクロックドメインの安定性を査定する手順
    をさらに実行させる、請求項10または11に記載のコンピュータプログラム。
  13. 前記プロセッサに、
    前記メソクロナスクロックドメインの前記安定性が前記直接レジスタ間転送パターンによって特徴付けられているという査定に基づいて、前記ターゲットワイヤが前記量子コントローラ高速パスインタフェースの基準ワイヤであるかどうかを決定する手順と、
    前記メソクロナスクロックドメインの前記安定性が前記直接レジスタ間転送パターンによって特徴付けられているという査定に基づいて、前記ターゲットワイヤが前記基準ワイヤと整列するかどうかを決定する手順と
    をさらに実行させる、請求項12に記載のコンピュータプログラム。
  14. 前記プロセッサに、
    前記ターゲットワイヤが前記基準ワイヤであるかまたは前記基準ワイヤと整列されているかの決定に基づいて、前記キュビットデータビットが前記メソクロナスクロックドメインの安定領域内にあるかどうかを決定する手順と、
    前記キュビットデータビットは前記安定領域内にあるという決定に基づいて、前記安定領域のサイズを増加させる手順と
    をさらに実行させる、請求項13に記載のコンピュータプログラム。
  15. 前記遅延値は、前記プロセッサによって査定される複数の遅延値からの値であって、前記査定する手順は、前記ターゲットワイヤに関して前記複数の遅延値に関連付けられた複数の安定領域をレンダリングし、前記コンピュータプログラムは、前記プロセッサに、
    前記複数の安定領域からの最も大きい安定領域に関連付けられた前記複数の遅延値から好ましい遅延値を選択する手順と、
    前記キュビットデータビットをルーティングするために、前記ターゲットワイヤとともに、前記好ましい遅延値を利用する手順と
    をさらに実行させる、請求項14に記載のコンピュータプログラム。
  16. キュビットデータパケット内のデータ位置から送信元情報が推測されるパケット転送プロトコルを介して量子コントローラと条件エンジンとの間で前記キュビットデータパケットをルーティングする、量子コントローラ高速パスインタフェース
    を備えるシステム。
  17. 前記量子コントローラは、前記量子コントローラ高速パスインタフェースの伝送論理回路にキュビットデータをブロードキャストし、前記伝送論理回路は、前記条件エンジンに動作可能に連結された受信論理回路を用いて同期される
    請求項16に記載のシステム。
  18. 前記伝送論理回路は、複数のルーティングスキームを通じて循環し、前記複数のルーティングスキームは、複数の伝送ワイヤからの伝送ワイヤに前記キュビットデータパケットを割り当てる、請求項17に記載のシステム。
  19. 前記パケット転送プロトコルは、前記複数のルーティングスキームを通じて循環しながら、前記伝送論理回路と前記受信論理回路との間でキュビットデータを継続的に転送する、請求項18に記載のシステム。
  20. 前記キュビットデータパケットは、前記データ位置とキュビット有効とのペアリングから成る、請求項16から19のいずれか一項に記載のシステム。
JP2023509469A 2020-09-11 2021-09-09 量子コントローラ高速パスインタフェース Pending JP2023541529A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/018,531 US11567887B2 (en) 2020-09-11 2020-09-11 Quantum controller fast path interface
US17/018,531 2020-09-11
PCT/EP2021/074825 WO2022053561A1 (en) 2020-09-11 2021-09-09 Quantum controller fast path interface

Publications (1)

Publication Number Publication Date
JP2023541529A true JP2023541529A (ja) 2023-10-03

Family

ID=77864601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023509469A Pending JP2023541529A (ja) 2020-09-11 2021-09-09 量子コントローラ高速パスインタフェース

Country Status (10)

Country Link
US (1) US11567887B2 (ja)
EP (1) EP4211548A1 (ja)
JP (1) JP2023541529A (ja)
CN (1) CN116195230A (ja)
AU (1) AU2021341467B2 (ja)
BR (1) BR112023002835A2 (ja)
CA (1) CA3187715A1 (ja)
IL (1) IL300313A (ja)
MX (1) MX2023002590A (ja)
WO (1) WO2022053561A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516190B1 (en) * 2021-08-26 2022-11-29 Accenture Global Solutions Limited Secret superposition protocols for quantum computation

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3745322A1 (en) 2011-07-06 2020-12-02 D-Wave Systems Inc. Quantum processor based systems and methods that minimize an objective function
US10019235B2 (en) 2011-09-30 2018-07-10 Los Alamos National Security, Llc Quantum random number generators
US9038065B2 (en) 2012-01-30 2015-05-19 International Business Machines Corporation Integrated virtual infrastructure system
US9946973B2 (en) 2012-06-18 2018-04-17 The University Of Sydney Long-time low-latency quantum memory by dynamical decoupling
US20150026494A1 (en) 2013-07-19 2015-01-22 Sonics, Inc. Intelligent mesochronous synchronizer
WO2015048783A1 (en) 2013-09-30 2015-04-02 Nordholt, Jane, E. Quantum-secured communications overlay for optical fiber communications networks
EP3120460B1 (en) 2014-03-21 2020-10-14 Google LLC Chips including classical and quantum computing processors
CN108349725B (zh) 2015-11-12 2021-11-19 罗切斯特大学 用于高性能能量有效低温计算的超导系统架构
US9645604B1 (en) * 2016-01-05 2017-05-09 Bitfury Group Limited Circuits and techniques for mesochronous processing
US9876505B1 (en) 2016-09-02 2018-01-23 Northrop Grumman Systems Corporation Superconducting isochronous receiver system
US10223643B1 (en) 2017-09-29 2019-03-05 International Business Machines Corporation Reduction and/or mitigation of crosstalk in quantum bit gates
US11238360B2 (en) 2018-02-12 2022-02-01 International Business Machines Corporation Fast quantum feedback using analog integration and control pulse gating
US20190042965A1 (en) 2018-03-30 2019-02-07 James Clarke Apparatus and method for a field programmable quantum array
AU2018247327B1 (en) * 2018-07-23 2018-12-06 Q-CTRL Pty Ltd Multi-qubit control
WO2020056176A1 (en) 2018-09-13 2020-03-19 The University Of Chicago System and method of optimizing instructions for quantum computers
US20190042970A1 (en) 2018-09-27 2019-02-07 Xiang Zou Apparatus and method for a hybrid classical-quantum processor
US20190042973A1 (en) 2018-09-27 2019-02-07 Xiang Zou Apparatus and method for arbitrary qubit rotation
US11243248B2 (en) 2018-10-11 2022-02-08 International Business Machines Corporation Symbolic backend for execution of quantum programs
US11086665B2 (en) 2018-10-22 2021-08-10 Red Hat, Inc. Scheduling services for quantum computing
US10333503B1 (en) 2018-11-26 2019-06-25 Quantum Machines Quantum controller with modular and dynamic pulse generation and routing
US10536224B1 (en) 2019-02-26 2020-01-14 International Business Machines Corporation Visualizing arbitrary pulse shapes and schedules in quantum computing applications
US10505524B1 (en) * 2019-03-06 2019-12-10 Quantum Machines Synchronization in a quantum controller with modular and dynamic pulse generation and routing
US11164100B2 (en) * 2019-05-02 2021-11-02 Quantum Machines Modular and dynamic digital control in a quantum controller
US11309974B2 (en) * 2019-05-09 2022-04-19 Red Hat, Inc. Quantum channel routing utilizing a quantum channel measurement service
US10560076B1 (en) 2019-07-31 2020-02-11 Quantum Machines Frequency generation in a quantum controller
US10635990B1 (en) 2019-09-05 2020-04-28 Intel Corporation Quantum circuit assembly with a digital-to-analog converter and an array of analog memory cells

Also Published As

Publication number Publication date
US11567887B2 (en) 2023-01-31
US20220083488A1 (en) 2022-03-17
AU2021341467B2 (en) 2024-04-11
BR112023002835A2 (pt) 2023-04-04
IL300313A (en) 2023-04-01
AU2021341467A1 (en) 2023-02-16
EP4211548A1 (en) 2023-07-19
CA3187715A1 (en) 2022-03-17
WO2022053561A1 (en) 2022-03-17
CN116195230A (zh) 2023-05-30
MX2023002590A (es) 2023-03-22

Similar Documents

Publication Publication Date Title
US10356007B2 (en) Dynamic service orchestration within PAAS platforms
Linguaglossa et al. Survey of performance acceleration techniques for network function virtualization
US11178254B2 (en) Chaining virtual network function services via remote memory sharing
US8494833B2 (en) Emulating a computer run time environment
US11005921B2 (en) Sharing a data management policy with a load balancer
US10083193B2 (en) Efficient remote pointer sharing for enhanced access to key-value stores
US20140215463A1 (en) Systems and methods for handling virtual machine packets
US20190250941A1 (en) Fpga platform as a service (paas)
US11150817B2 (en) Integrating kernel-bypass user-level file systems into legacy applications
US11165810B2 (en) Password/sensitive data management in a container based eco system
CN109218280A (zh) 实施数据中心中的物理和虚拟应用组件的微分段策略
JP2023541529A (ja) 量子コントローラ高速パスインタフェース
CN106897246B (zh) 处理器和使用处理器处理数据的方法
US20140330937A1 (en) End-to-end classification of storage traffic streams
Oppitz et al. Future technologies of the cloud century
US11038798B2 (en) Storing data in association with a key within a hash table and retrieving the data from the hash table using the key
US11874754B1 (en) Mitigating temperature induced performance variation
US11711425B1 (en) Broadcast and scatter communication operations
US10929063B1 (en) Assisted indirect memory addressing
WO2023097703A1 (en) A storage server forsecure and performant execution of user code in a data center storage
US20240146506A1 (en) Simulating ciphertexts using smaller ciphertexts packed with designated packing
US20240061796A1 (en) Multi-tenant aware data processing units
JP2023545245A (ja) 共振器誘起位相ゲート駆動信号の多重化

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240215