KR20220038374A - 양자 컴퓨팅 디바이스를 위한 신드롬 데이터 압축 - Google Patents

양자 컴퓨팅 디바이스를 위한 신드롬 데이터 압축 Download PDF

Info

Publication number
KR20220038374A
KR20220038374A KR1020227004757A KR20227004757A KR20220038374A KR 20220038374 A KR20220038374 A KR 20220038374A KR 1020227004757 A KR1020227004757 A KR 1020227004757A KR 20227004757 A KR20227004757 A KR 20227004757A KR 20220038374 A KR20220038374 A KR 20220038374A
Authority
KR
South Korea
Prior art keywords
syndrome
data
compression
syndrome data
engine
Prior art date
Application number
KR1020227004757A
Other languages
English (en)
Inventor
포울라미 다스
니콜라스 기욤 델포쎄
크리스토퍼 아난드 패티슨
스릴라사 만네
더글라스 카르민
크리스타 마리 스보레
헬무트 고트프리트 카츠그레이버
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20220038374A publication Critical patent/KR20220038374A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2323Non-hierarchical techniques based on graph theory, e.g. minimum spanning trees [MST] or graph cuts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • G06K9/6224
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/70Quantum error correction, detection or prevention, e.g. surface codes or magic state distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/80Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Discrete Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Algebra (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

양자 컴퓨팅 디바이스는, 복수의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터를 포함한다. 복수의 논리적 큐비트 중 각각의 논리적 큐비트에 압축 엔진이 결합된다. 각각의 압축 엔진은 신드롬 데이터를 압축하도록 구성된다. 각각의 압축 엔진에 압축 해제 엔진이 결합된다. 각각의 압축 해제 엔진은, 압축된 신드롬 데이터를 수신하도록, 수신된 압축된 신드롬 데이터를 압축 해제하도록, 그리고 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하도록 구성된다.

Description

양자 컴퓨팅 디바이스를 위한 신드롬 데이터 압축
큐비트(qubits)는 에러율이 높기 쉬우며 따라서 능동적인 에러 정정의 이점이 있다. 양자 에러 정정 코드는 논리적 큐비트를 물리적 큐비트 모음으로 인코딩하는 데 사용될 수 있다. 그런 다음, 측정값을 사용하여 에러 디코더를 사용해 에러를 검출하고 정정할 수 있다. 큐비트는 일반적으로 매우 낮은 온도에서 동작하고 데이터는 더 높은 동작 온도에서 에러 디코더로 전송된다.
이 발명의 내용은 이하의 발명을 실시하기 위한 구체적인 내용에서 추가적으로 설명되는 간략한 형태의 개념들의 선택을 도입하기 위해 제공된다. 이 발명의 내용은 청구 대상의 주요 피처(features) 또는 필수적 피처를 식별하기 위해 의도되지 않으며, 청구 대상의 범위를 제한하기 위해 사용되는 것으로 의도되지도 않는다. 더 나아가, 청구 대상은 이런 개시의 임의의 부분에서 기재된 임의의 또는 모든 단점을 해결하는 구현에만 제한되지는 않는다.
양자 컴퓨팅 디바이스는 복수의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터를 포함한다. 복수의 논리적 큐비트 중 각각의 논리적 큐비트에 압축 엔진이 결합된다. 각각의 압축 엔진은 신드롬 데이터를 압축하도록 구성된다. 각각의 압축 엔진에 압축 해제 엔진이 결합된다. 각각의 압축 해제 엔진은, 압축된 신드롬 데이터를 수신하도록, 수신된 압축된 신드롬 데이터를 압축 해제하도록, 그리고 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하도록 구성된다. 이는 대역폭 오버헤드를 감소시키고 양자 레지스터로부터의 신도롬 데이터의 높은 처리량 전송을 가능하게 한다.
도 1은 예시적인 양자 컴퓨팅 조직을 개략적으로 도시한다.
도 2는 예시적인 양자 컴퓨터의 양상을 개략적으로 도시한다.
도 3은 양자 컴퓨터의 한 큐비트의 양자 상태를 그래픽으로 나타내는 블로흐 구면(Bloch sphere)을 도시한다.
도 4는 교대하는 데이터와 패리티 큐비트를 갖는 격자의 논리적 큐비트를 개략적으로 도시한다.
도 5는 2개의 연속적인 라운드(rounds)의 신드롬 측정을 개략적으로 도시한다.
도 6은 다양한 조건에서 신드롬 측정 데이터를 저장하는 데 필요한 메모리 용량을 나타내는 도표이다.
도 7은 예시적인 압축 방식을 개략적으로 도시한다.
도 8은 기하 구조 기반 압축(Geometry-based compression)을 위한 표면 코드 격자 상의 복수의 영역을 개략적으로 도시한다.
도 9는 양자 컴퓨팅 디바이스 내에서 신드롬 데이터를 압축하기 위한 예시적인 방법을 도시한다.
도 10은 기하 구조 기반 압축기를 사용하여 양자 컴퓨팅 디바이스 내에서 신드롬 데이터를 압축하기 위한 예시적인 방법을 도시한다.
도 11은 예시적인 디코더 설계를 개략적으로 도시한다.
도 12는 예시적인 유니온-파인드 디코더를 개략적으로 도시한다.
도 13은 예시적인 그래프 생성기 모듈을 개략적으로 도시한다.
도 14는 그래프 생성 동안 그래프 생성기 모듈의 주요 컴포넌트의 상태를 개략적으로 도시한다.
도 15는 예시적인 클러스터 및 루트 테이블 엔트리를 개략적으로 도시한다.
도 16은 깊이 우선 서치 엔진(Depth First Search Engine) 및 에러 정정을 위한 예시적인 그래프를 개략적으로 도시한다.
도 17은 정정 엔진에서 수행된 예시적인 에러 그래프에 대한 필링(peeling)의 예시를 도시한다.
도 18은 하드웨어 유니온-파인드 디코더의 파이프라인형 버전(pipelined version)을 구현하기 위한 예시적인 방법을 도시한다.
도 19는 L개의 논리적 큐비트에 대한 베이스라인 조직을 개략적으로 도시한다.
도 20은 디코더 블록에 대한 예시적인 설계를 도시한다.
도 21은 확장 가능한(scalable) 내결함성 양자 컴퓨터의 예시적인 마이크로 아키텍처를 개략적으로 도시한다.
도 22는 양자 컴퓨팅 디바이스 내에서 신드롬 데이터를 라우팅하기 위한 예시적인 방법을 도시한다.
도 23은 몬테카를로 시뮬레이터 프레임워크를 개략적으로 도시한다.
도 24는 코드 거리에 걸쳐 상이한 에러율들에 대해 평균 압축비를 나타내는 도표이다.
도 25는 논리적 큐비트에 대해 상이한 에러율 및 코드 거리에 대한 평균 클러스터 직경을 나타내는 도표이다.
도 26은 스패닝 트리 메모리(Spanning Tree Memory)를 구현하기 위해 필요한 총 메모리 용량을 나타내는 도표이다.
도 27은 고정된 코드 거리 및 물리적 에러율에 대해 클러스터 내의 다수의 에지의 분포를 나타내는 도표이다.
도 28은 상이한 코드 거리들 및 에러율들에 대한 클러스터 내의 에지의 평균 수를 나타내는 도표이다.
도 29는 그래프 생성 모듈과 깊이 우선 서치 엔진에서의 실행 시간들 간의 상관관계를 나타내는 도표이다.
도 30은 3차원 그래프를 디코딩하기 위한 실행 시간의 분포를 나타내는 도표이다.
도 31은 예시적인 고전적 컴퓨팅 디바이스의 개략도를 도시한다.
양자 컴퓨터의 기본 정보 단위인 큐비트는 에러율이 높은 경향이 있다. 내결함성 양자 계산을 가능하게 하기 위해 이러한 큐비트에 능동 에러 정정이 적용될 수 있다. 양자 에러 정정 코드(Quantum Error Correction Code; QECC)는 중복 데이터 및 패리티 큐비트를 사용하여 논리적 큐비트를 인코딩한다. 에러 정정은 에러 디코딩이라고 불리는 프로세스를 통해 패리티 큐비트의 측정값을 분석하여 데이터 큐비트의 에러를 진단한다. 현재 대부분의 디코딩 접근 방식은 알고리즘 수준에서의 큐비트 에러를 목표로 하며 이를 설계하는 데 사용될 기본 디바이스 기술을 고려하지 않는다.
여기에서는 이러한 디코더 설계와 관련된 아키텍처 문제를 대상으로 하며 유니온-파인드 디코더의 하드웨어 구현을 위한 3-스테이지 파이프라인형 마이크로 아키텍처가 설명된다. 에러 정정 알고리즘은 하드웨어 구현에 맞게 설계되었다. 상이한 노이즈 체제들(noise regimes)에 대한 데이터 압축의 실현 가능성은 구현에 필요한 저장 및 대역폭의 양과 관련하여 평가된다. 큰 수의 논리적 큐비트에 대해 제안된 디코더 설계를 확장하고 실용적이고 내결함성 양자 계산을 가능하게 하는 아키텍처가 개시된다. 이러한 설계는 디코더 정확성 및 에러 문턱값에 영향을 미치지 않으면서 다수의 논리적 큐비트에 걸친 자원 공유를 통해 3개의 파이프라인 스테이지 각각의 총 비용을 각각 2x, 4x 및 4x로 줄일 수 있다. 하나의 예시로서, 코드 거리가 11이고 물리적 에러율이 대략 10-3 정도인 경우, 논리적 에러율은 10-8이다.
양자 컴퓨팅은 양자 역학적 특성을 사용하여 그렇지 않은 경우 기존(즉, 비양자) 최첨단 컴퓨터에서 합리적인 시간량 내에 수행할 수 없는 특정 응용 애플리케이션에 대해 계산을 가능하게 한다. 예시 애플리케이션에는 소인수 분해, 데이터베이스 서치, 물리학 및 화학 시뮬레이션이 포함된다. 양자 컴퓨터의 기본 계산 단위는 큐비트이다. 큐비트는 필연적으로 환경과 상호 작용하고 자신의 양자 상태를 잃는다. 불완전한 양자 게이트 연산은 이 문제를 복잡하게 만드는데, 그 이유는 양자 게이트가 가능한 값의 연속체(continuum)로부터 선택된 단일 변환이므로 완벽한 정확도로 구현될 수 없기 때문이다. 노이즈로부터 양자 상태를 보호하기 위해, QECC가 개발되었다. 임의의 QECC에서, 논리적 큐비트는 내결함성 양자 계산을 가능하게 하기 위해 여러 물리적 큐비트를 사용하여 인코딩된다. 내결함성은 자원 오버헤드(일반적으로 논리적 큐비트당 20x 내지 100x)를 발생시키며 현재 사용 가능한 소형 프로토타입 시스템에서는 실제로 실현 가능하지 않는다. 그러나 양자 에러 정정은 내결함성 양자 컴퓨터에서 유용한 애플리케이션을 실행하기 위해 매우 가치 있는 - 꼭 필요한 것이 아닌 아니라면 - 것으로 여겨진다.
QECC는 TMR(Triple Modular Redundancy) 또는 SECDED(Single Error Correction Double Error Detection)와 같은 기존 에러 정정 기술과는 다르다. 차이점은 큐비트의 기본 속성과 높은 에러율(일반적으로 대략 10-2개 정도)에서 발생한다. 예를 들어, 큐비트는 복사될 수 없으며(복제불가정리(no-cloning theorem), 측정 시 자신의 양자 상태를 잃게 된다. QECC는 중복 큐비트를 사용하여 데이터 큐비트와 상호 작용하는 보조 큐비트(ancilla qubits)를 사용함으로써 코드 공간을 생성한다. 보조 큐비트를 측정하면 디코더를 사용하여 데이터 큐비트의 에러를 검출하고 정정할 수 있다.
에러 디코딩 알고리즘은 인코딩된 데이터 큐비트 블록에서 에러를 검출하기 위해 신드롬(보조 측정의 결과)이 프로세싱될 방법을 명시한다. 디코더의 설계 및 성능은 디코딩 알고리즘, QECC, 물리적 에러율, 노이즈 모델, 및 구현 기술에 따라 다르다. 실용적인 목적을 위해, 디코더는 에러가 발생하는 속도보다 빠르게 신드롬 측정을 프로세싱해야 한다. 디코더는 또한 극저온 환경 내에서 동작하기 위한 기술별 제약 조건을 설명하고 큰 수의 큐비트로 확장해야 한다.
완벽한 에러 디코딩은 기하급수적인 시간 복잡성을 갖는 NP-난도(NP-hard)(비결정적 다항식 시간)이다. 따라서 최적의 디코딩 알고리즘은 시간 복잡성을 줄이기 위해 에러 정정 능력을 절충한다. 대부분의 디코딩 기술은 알고리즘 수준에서만 연구되었으며 디코더가 내결함성 양자 컴퓨팅에 중요하더라도 기본 구현 기술을 설명하지(account for) 않는다. 예를 들어, 룩업 테이블 기반 또는 심층 신경 디코더와 같은 다른 접근 방식은 큰 수의 큐비트로 확장할 수 없다. 유니온-파인드 디코더 알고리즘은 간단하고 거의 선형에 가까운 시간 복잡성을 가지므로 확장 가능하고 내결함성이 있는 양자 컴퓨팅에 적합한 후보이다. 여기에서, 유니온-파인드 디코더의 하드웨어 구현을 위한 마이크로 아키텍처가 개시되며, 여기서 알고리즘은 하드웨어 복잡성을 줄이고 큰 수의 논리적 큐비트로 확장할 수 있도록 재설계된다.
더 빠른 프로세싱을 가능하게 하고 전송 대기 시간을 줄이기 위해 디코더는 실온(300K)이 아닌 (77K 또는 4K에서) 물리적 큐비트에 매우 가깝게 동작하도록 설계되었다. 온도 구배(105)를 나타내는 예시적인 양자 컴퓨팅 시스템(100)이 도 1에 도시되어 있다. 양자 컴퓨팅 시스템(100)은 20mK에서 동작하는 하나 이상의 큐비트 레지스터(110), 일반적으로 4K 또는 77K에서 동작하는 디코더(115) 및 제어기(120), 300K(실온)에서 동작하는 호스트 컴퓨팅 디바이스(125) 및 최종 사용자 컴퓨팅 디바이스(130)를 포함한다. 디코더(115)가 77K 또는 4K에서 동작하는지에 따라, 기본 구현 기술 및 설계 제약 조건은 상이한 절충안들을 제공한다. 4K에서의 초전도 논리 설계는 물리적 큐비트에 매우 가깝고 상당한 에너지 효율성을 제공하지만 디바이스 밀도와 메모리 용량에 의해 제한된다. 77K에서 기존 CMOS를 동작하면 메모리 풋프린트가 더 큰 애플리케이션을 위한 복잡한 설계를 용이하게 할 수 있지만, 초전도 논리부보다 에너지 효율이 낮고 15mK 내지 20mK에 있는 물리적 큐비트로부터 데이터를 앞뒤로 이동할 때 데이터 송신 오버헤드가 발생한다.
여기에서, 유니온-파인드 디코더의 하드웨어 구현을 위한 마이크로 아키텍처가 개시된다. 극저온 환경에서 동작하기 위한 메모리 용량 및 대역폭과 연관된 구현 문제에 대해 논의된다. 표면 코드는 기본 QECC 및 다양한 노이즈 모델들의 예로서 사용되지만 다른 구현도 고려되었다. 표면 코드는 데이터와 보조 큐비트가 교대로 있는 2차원 레이아웃에서 큐비트 그룹을 배열하는 유망한 QECC 후보이다. 데이터 큐비트에서의 임의의 에러는 인접한 보조 큐비트에 의해 검출될 수 있으므로 가장 가까운 이웃 접속만 필요하다. 이러한 설계의 실현 가능성과 확장성은 대규모 내결함성 양자 컴퓨터에 대해 설명된다.
여기서, 양자 컴퓨팅 분야의 수많은 문제를 해결하는 시스템 및 방법이 개시된다. 예를 들어, QEC 디코더 설계는 열 도메인에서의 배치 및 관련된 설계 복잡성과 함께 분석된다. 77K에서 디코더를 동작하는 것이 더 실용적임을 보여주는 유니온-파인드 디코더의 하드웨어 구현을 위한 마이크로 아키텍처가 제시된다.
신드롬 측정값을 저장하는 데 필요한 메모리 용량이 계산되고 4K에서 초전도 메모리에 이를 저장하는 것이 불가능할 수 있음이 보여진다. 그러나 데이터를 77K로 전송하려면 큰 대역폭이 필요하다. 이러한 두 가지 문제를 모두 극복하기 위해 신드롬 측정 데이터를 압축하는 데 사용될 수 있는 기술이 제시된다. 동적 제로 압축 및 희소 표현(sparse representation)의 구현이 설명된다. 또한, 표면 코드 격자의 기본 구조를 고려한 기하 구조 기반 압축 방식이 제시된다. 또한, 압축 방식과 그 적용 가능성은 상이한 노이즈 체제들에 대해 설명된다.
유니온-파인드 디코더 알고리즘은 하드웨어 비용을 줄이고 향상된 노이즈 모델의 구현을 향상시키기 위해 개선(refine)되었다. 원래 유니온-파인드 디코딩 알고리즘은 공간에서 쌍을 이루는 데이터 큐비트의 게이트 에러만 설명한다. 여기에 설명된 하드웨어 마이크로 아키텍처는 또한 시간에 따라 쌍을 이루고 여러 라운드의 신드롬 측정을 사용하여 디코딩되는 측정 에러를 설명한다.
또한, 큰 수의 논리적 큐비트들에 대해 이러한 디코더를 확장하는 하드웨어 시스템 아키텍처가 설명된다. 이러한 구현은 개별 디코딩 단위에서 파이프라인 스테이지의 활용도 차이를 고려할 수 있으며 하드웨어 비용을 줄이기 위해 다수의 논리적 큐비트에 걸쳐 자원을 최적으로 공유할 수 있다.
큐비트는 양자 컴퓨터에서 정보의 기본 단위이다. 양자 컴퓨팅의 기본은 중첩(superposition)과 얽힘(entanglement)이라는 두 가지 양자 역학 속성에 의존한다. 큐비트는 두 가지 기본 상태의 선형 조합으로 표현될 수 있다. 기본 상태가 |0> 및 |1>이면, 큐비트 |Ψ>는 |Ψ> = α|0> + β|1>로 표현될 수 있으며, 여기서 α, β ∈ C이고 |α|2 + |β|2 = 1이다. 확률 진폭 α, β의 크기 또는 위상이 변경되면 큐비트의 상태가 변경된다. 예를 들어, 크기 플립(또는 비트 플립)은 |Ψ>의 상태를 β|0> + α|1>로 변경한다. 대안적으로, 위상 플립은 상태를 α|0> - β|1>로 변경한다. 양자 명령어는 항등(I) 및 파울리 행렬을 사용하여 표현되는 양자 게이트 연산을 사용하여 확률 진폭을 수정한다. 파울리 행렬 X, Z, 및 Y는 각각 비트 플립, 위상 플립, 또는 둘 다의 효과를 나타낸다.
일부 실시예에서, 본 명세서에 설명된 방법 및 프로세스는 하나 이상의 양자 컴퓨팅 디바이스의 양자 컴퓨팅 시스템과 관련될 수 있다. 도 2는 양자 논리 연산을 실행하도록 구성된 예시적인 양자 컴퓨터(210)의 양상을 도시한다(아래 참조). 기존의 컴퓨터 메모리가 비트 배열에 디지털 데이터를 보유(hold)하고 비트 단위 논리 연산을 수행하는 반면, 양자 컴퓨터는 큐비트 배열에 데이터를 보유하고 원하는 논리를 구현하기 위해 큐비트에서 양자 역학적으로 동작한다. 따라서, 도 2의 양자 컴퓨터(210)는 큐비트(214)의 어레이를 포함하는 적어도 하나의 레지스터(212)를 포함한다. 예시된 레지스터는 길이가 8 큐비트이다; 더 길고 더 짧은 큐비트 어레이를 포함하는 레지스터도 예상되며, 임의 길이의 2개 이상의 레지스터를 포함하는 양자 컴퓨터도 예상된다.
레지스터(212)의 큐비트는 양자 컴퓨터(210)의 원하는 아키텍처에 따라 다양한 형태를 취할 수 있다. 각 큐비트(214)는 비제한적인 예로서 초전도 조셉슨 접합, 포획된 이온, 고정밀 캐비티에 결합된 포획된 원자, 풀러린(fullerene) 내에 제한된 원자 또는 분자, 호스트 격자 내에 제한된 이온 또는 중성 도펀트 원자, 이산 공간 상태 또는 스핀 전자 상태를 나타내는 양자점, 정전기 트랩을 통해 동반된 반도체 접합부의 전자 정공, 결합된 양자 와이어 쌍, 자기 공명으로 주소 지정 가능한 원자핵, 헬륨의 자유 전자, 분자 자석, 또는 금속 유사 탄소 나노구를 포함할 수 있다. 보다 일반적으로, 각각의 큐비트(214)는 실험적으로 측정 및 조작될 수 있는 2개 이상의 이산 양자 상태로 존재할 수 있는 임의의 입자 또는 입자 시스템을 포함할 수 있다. 예를 들어, 큐비트는 선형 광학 요소(예컨대, 미러, 빔 스플리터 및 위상 시프터)를 통한 광 전파의 상이한 모드들에 대응하는 복수의 프로세싱 상태에서뿐만 아니라 보스-아인슈타인 응축물 내에 축적된 상태에서도 구현될 수 있다.
도 3은 개별 큐비트(214)의 일부 양자 역학적 양상의 그래픽 설명을 제공하는 블로흐 구면(216)의 예시이다. 이 설명에서 블로흐 구면의 북극과 남극은 각각 표준 기본 벡터 |0> 및 |1>, 즉, 예를 들어, 전자 또는 다른 페르미온의 위쪽 스핀 상태 및 아래쪽 스핀 상태에 대응한다. 블로흐 구면의 표면 상의 점 집합은 큐비트의 모든 가능한 순수 상태 |Ψ>를 포함하는 반면, 내부 점은 모든 가능한 혼합 상태에 대응한다. 주어진 큐비트의 혼합 상태는 외부 자유도에 대해 바람직하지 않은 결합으로 인해 발생할 수 있는 디코히어런스(decoherence)로 인해 발생할 수 있다.
이제 도 2로 돌아가서, 양자 컴퓨터(210)는 제어기(218)를 포함한다. 제어기는 적어도 하나의 프로세서(220) 및 연관된 저장 머신(222)을 포함하는 기존의 전자 컴포넌트류(componentry)를 포함할 수 있다. 여기서 '통상적인'이라는 용어는 임의의 개별 입자의 양자 상태를 고려하지 않고 입자의 앙상블로서 모델링될 수 있는 임의의 컴포넌트(component)에 적용된다. 기존의 전자 컴포넌트는 예를 들어, 통합된 마이크로리소그래피된 트랜지스터, 저항기, 및 커패시터를 포함한다. 저장 머신(222)은 프로세서(220)가 여기에 설명된 임의의 프로세스를 실행하게 하는 프로그램 명령어(224)를 보유하도록 구성될 수 있다. 제어기(218)의 추가적인 양상은 이후에 설명된다.
양자 컴퓨터(210)의 제어기(218)는 복수의 입력(226)을 수신하고 복수의 출력(228)을 제공하도록 구성된다. 입력 및 출력은 각각 디지털 라인 및/또는 아날로그 라인을 포함할 수 있다. 입력 및 출력 중 적어도 일부는 데이터 라인일 수 있으며, 데이터 라인을 통해 데이터가 양자 컴퓨터에 제공되고 데이터가 양자 컴퓨터로부터 추출된다. 다른 입력은 제어 라인을 포함할 수 있으며, 이를 통해 양자 컴퓨터의 동작이 조정되거나 그렇지 않으면 제어될 수 있다.
제어기(218)는 인터페이스(230)를 통해 레지스터(212)에 동작 가능하게 결합된다. 인터페이스는 제어기와 양방향으로 데이터를 교환하도록 구성된다. 인터페이스는 데이터에 대응하는 신호를 레지스터와 양방향으로 교환하도록 추가로 구성된다. 양자 컴퓨터(210)의 아키텍처에 따라, 그러한 신호는 전기적, 자기적, 및/또는 광학적 신호를 포함할 수 있다. 인터페이스를 통해 전달된 신호를 통해 제어기는 큐비트(214) 어레이의 집합적 양자 상태에 의해 정의된 바와 같이 레지스터에 보유된 양자 상태를 조사(interrogate)하거나 그렇지 않으면 그 양자 상태에 영향을 미칠 수 있다. 이를 위해, 인터페이스는 적어도 하나의 변조기(232) 및 적어도 하나의 복조기(234)를 포함하고, 각각은 레지스터(212)의 하나 이상의 큐비트에 동작적으로 결합된다. 각 변조기는 제어기로부터 수신된 변조 데이터에 기초하여 레지스터에 신호를 출력하도록 구성된다. 각 복조기는 레지스터로부터의 신호를 감지하고 신호에 기초하여 제어기에 데이터를 출력하도록 구성된다. 복조기로부터 수신된 데이터는 일부 시나리오에서 레지스터에 보유된 양자 상태의 측정에 대해 관찰 가능한 것의 추정치일 수 있다.
보다 구체적으로, 변조기(232)로부터의 적절하게 구성된 신호는 레지스터(212)의 하나 이상의 큐비트(214)와 물리적으로 상호작용하여 하나 이상의 큐비트에 보유된 양자 상태의 측정을 트리거할 수 있다. 그런 다음, 복조기(234)는 측정에 따라 하나 이상의 큐비트에 의해 방출된 결과 신호를 감지할 수 있고, 결과 신호에 대응하는 데이터를 제어기에 제공(furnish)할 수 있다. 달리 말하면, 복조기는 수신된 신호에 기초하여 레지스터의 하나 이상의 큐비트의 양자 상태를 반영하는 관찰 가능한 것들의 추정치를 드러내고 추정치를 제어기(218)에 제공하도록 구성될 수 있다. 하나의 비제한적인 예에서, 변조기는 제어기로부터의 데이터에 기초하여 적절한 전압 펄스 또는 펄스 열(pulse train)을 하나 이상의 큐비트의 전극에 제공하여 측정을 개시할 수 있다. 간단히 말해서, 복조기는 하나 이상의 큐비트로부터 광자 방출을 감지할 수 있고 인터페이스 라인 상의 대응 디지털 전압 레벨을 제어기로 표명(assert)할 수 있다. 일반적으로 말해서, 양자 역학 상태의 임의의 측정은 측정될 관찰 가능한 것에 대응하는 연산자
Figure pct00001
에 의해 정의된다; 측정의 결과 R은
Figure pct00002
의 허용된 고유값들 중 하나가 되도록 보장된다. 양자 컴퓨터(210)에서, R은 측정 이전의 레지스터 상태와 통계적으로 관련되지만 레지스터 상태에 의해 고유하게 결정되지는 않는다.
제어기(218)로부터의 적절한 입력에 따라, 인터페이스(230)는 레지스터(212)에 보유된 양자 상태에서 동작하기 위해 하나 이상의 양자 논리 게이트를 구현하도록 추가로 구성될 수 있다. 기존 컴퓨터 시스템의 각 유형의 논리 게이트의 기능은 대응 진리표에 따라 설명되는 반면, 각 유형의 양자 게이트의 기능은 대응 연산자 행렬에 의해 설명된다. 연산자 행렬은 레지스터 상태를 표현하는 복소수 벡터에 대해 연산(즉, 곱)하고 힐베르트 공간에서 해당 벡터의 명시된 회전에 영향을 준다.
도 2에서 계속하면, 인터페이스(230)의 변조기(232)로부터의 적절하게 구성된 신호는 임의의 원하는 양자 게이트 동작을 표명하기 위해 레지스터(212)의 하나 이상의 큐비트(214)와 물리적으로 상호작용할 수 있다. 위에서 언급되었듯이 원하는 양자 게이트 연산은 레지스터 상태를 표현하는 복소수 벡터의 회전으로 구체적으로 정의된다. 원하는 회전(
Figure pct00003
)을 달성하기 위해, 인터페이스(230)의 하나 이상의 변조기는 미리 결정된 기간(Ti) 동안 미리 결정된 신호 레벨(Si)을 적용할 수 있다.
일부 예들에서, 복수의 신호 레벨들은 복수의 시퀀스들 또는 그렇지 않으면 연관된 지속기간들에 대해 적용될 수 있다. 더 특정한 예에서, 복수의 신호 레벨 및 지속기간은 레지스터의 하나 이상의 큐비트에 적용될 수 있는 합성 신호 파형을 형성하도록 배열된다. 일반적으로, 각각의 신호 레벨(Si) 및 각각의 지속기간(Ti)은 제어기(218)의 적절한 프로그래밍에 의해 조정 가능한 제어 파라미터이다. 다른 양자 컴퓨팅 아키텍처에서 조정 가능한 제어 파라미터의 상이한 세트들이 레지스터 상태에 적용되는 양자 연산을 제어할 수 있다.
큐비트는 주변 환경에서 상이한 자유도들과의 상호 작용을 통해 불가피하게 자신의 양자 상태를 잃는다. 큐비트가 환경 노이즈로부터 완벽하게 분리될 수 있다고 해도 양자 게이트 동작은 불완전하고, 정확한 정확도로 적용될 수 없다. 이것은 양자 컴퓨터에서 임의의 애플리케이션을 실행하는 데 다양한 제한을 제기한다. 따라서 양자 컴퓨터에 의해 조작되는 양자 상태는 양자 에러 정정 코드(QECC)를 사용하여 에러 정정을 거쳐야 한다. QECC는 논리적 큐비트를 물리적 큐비트의 모음으로 인코딩하여 논리적 큐비트의 에러율이 물리적 에러율보다 낮도록 한다. QECC는 물리적 에러율이 물리적 큐비트 수를 늘리는 대신 허용 가능한 문턱값 미만인 한, 내결함성 양자 계산을 가능하게 한다. 최근 몇 년 동안 여러 에러 정정 프로토콜이 제안되었다. 여기에 내결함성 양자 컴퓨팅을 위한 가장 유망한 QECC로 간주되는 표면 코드가 적용된다. QEC는 임의의 노이즈를 양자 연산들의 중첩으로서 모델링한다. 따라서 QECC는 파울리 행렬을 사용하여 비트 플립, 위상 플립, 또는 이 둘의 조합으로 에러의 영향을 포착한다.
표면 코드는 확장 가능한 내결함성 양자 컴퓨팅에 적합한 것으로 널리 간주된다. 표면 코드는 교대하는 데이터 및 패리티 큐비트를 갖는 격자의 논리적 큐비트를 인코딩한다. 그러한 격자의 개략도가 도 4의 400에 도시되어 있으며, 격자(400)는 2D 거리-3(d=3) 표면 코드를 갖는다. 각각의 X 안정화기(402) 및 Y 안정화기(404)는 인접한 데이터 큐비트(406)에 결합된다. 각 데이터 큐비트(406)는 가장 가까운 인접 패리티 큐비트(408)와만 상호작용하며, 따라서 국부적으로 지원되는 연산자를 측정함으로써 데이터 큐비트(406)의 에러는 410에 도시된 바와 같이 진단될 수 있다. 이 예에서, 데이터 큐비트 A(414)의 Z-에러(412)는 패리티 큐비트 PO(416) 및 PI(418)에 의해 포착된다. 유사하게, 데이터 큐비트 B(422)에 대한 X-에러(420)는 패리티 큐비트 P2(424) 및 P3(426)에 의해 포착된다. 가장 단순한 구현에서 거리 d의 표면 코드는 단일 논리적 큐비트를 저장하기 위해 (2d-1)2개의 물리적 큐비트를 사용하며, 여기서 d는 중복성과 에러 공차의 척도이다. 코드 거리가 클수록 중복성이 커지고 에러 공차가 증가된다.
논리 연산자는 두 개의 반대 에지 사이에 단일 큐비트 연산자의 문자열을 포함한다. 코드 공간은 모든 안정화기 생성기(도 4에 도시됨)가 +1의 고유값을 갖는 서브공간이다. 구성에 의해, 논리적 상태는 안정기 생성기의 적용하에서 불변한다. 파울리 연산자의 임의의 닫힌 루프를 적용하면 논리적 상태가 불변할 것이다. 안정기 생성기의 측정은 에러 체인의 끝점을 검출한다. 에러 정정은 이 정보에 기초하며, 안정화기 측정은 신드롬이라고 지칭된다.
QEC에서는, 적절한 파울리 게이트를 적용하여 에러의 영향이 역전된다. 예를 들어, 큐비트에서 비트 플립 에러가 발생하면, 파울리 X 게이트를 적용하는 것은 큐비트를 의도된 상태로 다시 플립한다. 클리포드 게이트(Clifford gates)가 큐비트에 적용되는 한, 능동적인 에러 정정을 수행할 필요가 없다는 것이 이전에 보여졌다. 대신, 소프트웨어에서 파울리 프레임을 추적하는 것으로 충분하다. 따라서 양자 에러 정정의 주요 초점은 에러 정정이 아닌 에러 디코딩이다. 최적의 에러 디코딩은 계산적으로 어려운 문제이다. 양자 에러 디코더는 신드롬 측정을 입력으로서 사용하고 데이터 큐비트의 에러 추정치를 반환한다. 디코더는 에러를 검출하는 능력 외에도 에러 누적을 방지하기 위해 높은 동작 속도에 의존한다. 즉, 에러가 발생하는 것보다 더 빨리 에러가 검출되어야 한다.
에러 디코딩은 빨라야 하므로 디코더는 고성능을 제공하고 물리적 큐비트에 가깝게 동작해야 한다. 도 1과 관련하여 설명된 바와 같이, 큐비트는 일반적으로 15 밀리켈빈 내지 20 밀리켈빈에서 동작된다. 디코더가 4K 또는 77K에서 동작하도록 설계되었는지 여부에 따라 구현 기술은 표 1에 명시된 것처럼 상이한 절충안들을 제공한다. 4K에서 동작하도록 설계된 하드웨어는 물리적 큐비트에 근접하기 때문에 엄격한 전력 요건을 충족해야 한다. 이는 열 노이즈가 제어하에 있는 것을 보장하기 위한 것이다. 또한, 이러한 설계는 정교하고 값비싼 액체 헬륨 냉각기를 사용하여 냉각되어야 한다. 디코더는 4K에서 CMOS 또는 초전도 논리부를 사용하여 설계될 수 있다. CMOS는 전력 손실이 있으므로 대규모 양자 컴퓨터에 사용될 수 없다. 초전도 논리부는 낮은 전력 소비를 제공하지만 예를 들어, 제한된 디바이스 밀도 및 낮은 메모리 용량과 같은 주요 단점으로 인해 복잡하고 큰 설계를 제조하기가 극히 어렵다. 77K에서 동작하는 기존 CMOS는 더 큰 메모리와 전력 예산으로 복잡한 시스템을 설계할 수 있는 능력을 제공한다. 77K와 연관된 냉각 오버헤드는 4K의 경우보다 10배(an order of magnitude) 더 낮다. 그러나 77K에서 동작하도록 설계된 디코더는 전송 대기 시간을 고려해야 하고 4K와 77K 사이에서 데이터를 주고받는 데 필요한 대역폭을 충족해야 한다. 4K의 초전도 기술과 77K의 CMOS 간의 상호 절충은 표 1에 나열되어 있다.
파라미터 초전도 기술 종래의 CMOS
동작 온도 4 K 77 K
동작 주파수 10 GHz 4 Ghz
메모리 용량 123 바이트 내지 512 바이트 4 Gb
전력 예산 1 W N/A
피처 크기 248 nm 7 nm 내지 16 nm
냉각 오버헤드 1000x/400x 10x
여기에서는 현실적인 노이즈 모델에서 양자 에러 정정을 위한 디코더의 마이크로 아키텍처를 설계할 때의 문제가 조사된다. 큐비트 에러는 크게 3가지 유형: 디코히어런스 에러, 게이트 에러, 및 측정 에러로 분류될 수 있다. 큐비트는 짧은 지속시간(디코히어런스 시간이라고 함) 동안만 자신의 양자 상태를 유지하여 디코히어런스 에러를 발생시킨다. 비이상적인 게이트 동작은 큐비트에서 게이트 에러를 발생시킨다. 큐비트 측정의 불완전성은 측정 에러로 이어진다. 디코더는 신드롬 측정 에러를 데이터 큐비트 에러로서 잘못 해석하고 에러가 없는 데이터 큐비트를 정정하여 에러를 도입할 수 있다. 디코더는 에러를 디코딩하는 동안 이러한 신드롬 측정 에러를 고려해야 한다. 이는 디코더의 마이크로 아키텍처 및 설계 선택에 직접적인 영향을 미친다.
도 5는 2개의 연속적 라운드의 신드롬 측정(502 및 504)을 나타내고 어떻게 측정 오차(506)가 시간적으로 쌍을 이루고 데이터 큐비트 에러(508)가 공간에서 쌍을 이루는지를 보여주는 다이어그램(500)을 도시한다. 다이어그램(500)은 디코더가 라운드 0(502)의 측정 결과만 검사하는 경우, 디코더가 패리티 큐비트 P0(510)의 에러를 잘못 해석하고 에러가 없는 DO(512)에 대한 정정을 강제할 것임을 도시한다. 현재 디코더는 d개의 라운드의 측정을 검사하여 신드롬 측정 에러를 해결하고, d는 코드 거리이다. 디코더가 올바르게 기능하려면 d개의 라운드의 신드롬 측정에 의해 생성된 데이터와 데이터 큐비트당 에러 로그가 저장되어야 한다. 이를 위해서는 최대 여러 메가바이트의 저장소가 필요하다(코드 거리 및 논리적 큐비트 수에 따라 다름).
도 6은 d(코드 거리)개의 라운드에 대한 신드롬 측정 데이터 및 N개의 논리적 큐비트에 대한 에러 로그를 저장하는 데 필요한 메모리 용량(KB 단위)을 나타내는 예시적인 도표(600)를 도시한다. 필요한 용량은 4K에서 초전도 논리에서 사용 가능한 메모리보다 훨씬 높다. 77K에서 에러 디코딩을 수행하려면, 측정 데이터가 4K에서 77K로 전송되어야 한다. L개의 논리적 큐비트와 거리 d의 표면 코드를 사용하여 인코딩된 각 큐비트가 있는 주어진 큐비트 평면의 경우, 각 신드롬 측정 주기가 끝날 때 2d(d-1)L개의 비트가 송신되어야 한다. 합리적인 수의 논리적 큐비트와 코드 거리를 가정하면, 4K 내지 77K 링크에는 여러 Gb/s 정도의 대역폭 범위가 필요하다. 더 낮은 대역폭에서 데이터를 송신하면 d개의 신드롬 측정 주기(예컨대, 표면 코드 주기는 d개의 신드롬 측정 주기로 나누어질 수 있음) 내에서 에러 추정치를 제공해야 하므로 에러 디코딩을 위해 남겨진 유효 시간이 줄어든다. 따라서 77K에서 디코더를 설계할 때의 주요 과제는 매우 큰 대역폭이 필요하다는 것이다.
캐시 및 주 메모리의 용량 및 대역폭 요건을 효율적으로 처리하는 한 가지 접근 방식은 데이터 압축이다. 측정 데이터의 희소성은 본 명세서에 기술된 바와 같이 분석적으로 분석 및 추정될 수 있다. 예를 들어, p를 데이터 큐비트에 대한 Z 에러(Z-error)의 확률이라고 하고 u를 n개의 데이터 큐비트에 대한 에러의 표시자 벡터라고 가정한다(X 신드롬에 대해서도 동일한 분석이 적용된다는 점에 유의함). 4개의 데이터 큐비트가 있고 처음 2개의 큐비트에 Z 에러가 있으면 u = 1100이다. 에러의 동일하고 독립적인 분포(identical and independent distribution; iid)를 가정하면, 신드롬의 해밍 가중치에 대한 상한은 수학식 1에 의해 주어지며, 여기서 |u|는 에러 표시자 벡터 u의 해밍 가중치(예컨대, 1의 개수)이다.
Figure pct00004
따라서 m개 이상의 에러가 있을 확률은 수학식 2와 같다:
Figure pct00005
유니온-상한(union-bound)을 사용하면 총 신드롬 비트 수 s(Z")의 상한은 수학식 3에 의해 주어진다.
Figure pct00006
코드 거리가 11이고 에러율이 10-3이라고 가정하면, 10개 이상의 에러(주어진 코드 거리에 대해 상당히 많은 에러 수)가 있을 확률은 6.2x10-14이다. 따라서 큰 해밍 가중치를 가진 신드롬을 관찰할 확률은 극히 낮다. 이 분석은 신드롬 데이터를 압축하여 저장의 저장 오버헤드를 줄이고 그리고/또는 대역폭 요구 사항을 충족할 수 있음을 보여준다. 압축 기술의 유용성은 데이터의 엔트로피에 의존하기 때문에 신드롬 데이터에 대해 상이한 압축 기술들이 여기에서 설명된다. 여기에서는 3개의 압축 기술이 설명되지만 다른 기술도 고려되었다. 적용될 수 있는 상이한 노이즈 체제들이 분석된다. 설명된 예는 각각 간단한 인코딩을 사용하고 큰 하드웨어 복잡성을 필요로 하지 않는 압축 방식을 특징으로 한다.
동적 제로 압축(Dynamic Zero Compression; DZC)은 값이 0인 바이트의 캐시 액세스에 필요한 에너지를 줄이기 위해 원래 도입되었다. 신드롬 데이터를 압축하기 위해 유사한 기술이 채택될 수 있다. 한 예가 도 7의 700에 도시되어 있다. 길이 L의 신드롬(705)은 각각 W개의 비트의 K개의 블록으로 그룹화되며, 여기서 W는 압축 폭(710)이다. 마지막 블록이 W개의 비트보다 작은 경우 추가 패딩 0들이 추가될 수 있다. K-비트 폭의 제로 표시자 비트(Zero Indicator Bit; ZIB) 벡터(715)는 블록당 1비트를 포함한다. i번째 블록의 모든 비트가 0인 경우, ZIB(ZIB[i])의 대응 비트는 1로 설정될 수 있다. 그렇지 않으면 비트가 0으로 설정될 수 있다. 송신될 데이터(720)는 ZIB 벡터의 끝에 비제로(non-zero) 블록(725)을 추가함으로써 획득될 수 있다.
750에 도시된 바와 같이 희소 표현은 희소 행렬(760)의 비제로 요소가 행 인덱스 및 열 인덱스(765)만 저장함으로써 저장되는, 희소 행렬을 저장하는 전통적인 기술과 유사한 것으로 간주될 수 있다. 희소 표현 비트(Sparse Representation Bit; SRB)(755)는 모든 신드롬 비트가 0인지 여부를 표시하는 데 사용된다. 신드롬에 하나 이상의 비제로 비트가 있는 경우, SRB는 설정 해제될 수 있고 비제로 요소의 인덱스(755)는 송신된 데이터(775)에서 SRB와 함께 송신될 수 있다.
기하 구조 기반 압축(geometry-based compression; Geo-Comp)은 표면 코드 격자의 기하 구조를 또한 설명하는 DZC의 적응으로 간주될 수 있다. X 신드롬 및 Z 신드롬을 개별적으로 압축하는 대신, 기하 구조 기반 압축 방식은 X 신드롬 영역 및 Z 신드롬 영역을 함께 압축할 수 있다. 전체 표면 코드 격자는 각 영역이 대략 동일한 수의 신드롬 비트(DZC의 압축 폭과 유사함)를 포함하는 다수의 영역으로 분할될 수 있다. 도 8은 기하 구조 기반 압축을 위한 다수의 영역(801, 802, 803, 804; 점선으로 표시됨)을 포함하는 표면 코드 격자(800)를 개략적으로 도시한다. 도 8은 거리 5의 표면 코드 격자가 4개의 영역으로 분할될 수 있는 방법의 일례를 도시한다. 각 영역에 대해 ZIB를 사용하여 비제로 영역으로부터의 신드롬 데이터만 송신함으로써 신드롬이 압축될 수 있다. 데이터 큐비트에서 Y 에러가 발생하면, X 신드롬 비트 및 Z 신드롬 비트가 모두 에러를 나타내기 위해 플립(flip)된다. 2개의 유형의 신드롬이 독립적으로 압축될 때, 비제로 블록의 총 수는 주어진 압축 폭에 대해 더 많다. 예를 들어, 도 8에 도시된 데이터 큐비트 DO(810)에 Y 에러가 발생하면, X 신드롬 비트 X0(811) 및 XI(812) 및 Z 신드롬 비트 Z0(813) 및 Z1(814)이 플립된다. 예를 들어, DZC와 같은 압축 방식에서, (X0 811, XI 812) 및 (ZO 813, Z1 814)는 상이한 데이터 블록들에 있으며 별도로 압축된다. 그러나 격자의 기하 구조가 고려되면, 데이터 큐비트가 영역 경계(예컨대, 격자 800의 D1(815))에 있지 않는 한, 비제로 신드롬 비트는 일반적으로 동일한 영역 내부에 있다.
일반적으로 영역의 수와 크기는 단순(trivial) 신드롬(모두 0)을 포함하는 예상 블록 수를 계산하여 주어진 노이즈 모델에 대해 조정될 수 있다. 그러나 더 큰 크기의 영역은 논리 깊이를 추가하여 복잡한 하드웨어로 이어진다. 따라서 (코드 거리에 따라) 작은 영역 크기는 매우 낮은 에러율에서도 분석될 수 있다. 영역의 크기가 같을 필요는 없으며, 영역의 크기 및/또는 수는 단순 신드롬을 포함하는 데이터 블록의 예상 수에 따라 결정될 수 있다.
도 9는 양자 컴퓨팅 디바이스 내에서 신드롬 데이터를 압축하기 위한 예시적인 방법(900)을 도시한다. 일부 예들에서, 방법(900)은 예를 들어, 도 12에 개략적으로 도시된 디코더와 같은 유니온-파인드 디코더의 하드웨어 구현을 포함하는 양자 컴퓨팅 디바이스에 의해 구현될 수 있다.
단계(910)에서, 방법(900)은 l개의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터로부터 신드롬 데이터를 생성하는 단계를 포함하며, 여기서 l은 양의 정수이다. 생성된 신드롬 데이터는 적어도 X 신드롬 데이터 및 Z 신드롬 데이터를 포함할 수 있다.
단계(920)에서, 방법(900)은 각각의 논리적 큐비트에 대해, 생성된 신드롬 데이터를 압축 엔진으로 라우팅하는 단계를 포함하고, 압축 엔진은 신드롬 데이터를 압축하도록 구성된다. 양자 컴퓨팅 디바이스는 복수의 압축 엔진을 포함할 수 있다. 일부 예들에서, 압축 엔진들 중 적어도 하나는 동적 제로 압축을 사용하여 신드롬 데이터를 압축하도록 구성된다. 일부 예들에서, 압축 엔진들 중 적어도 하나는 희소 표현을 사용하여 신드롬 데이터를 압축하도록 구성된다. 일부 예들에서, 압축 엔진들 중 적어도 하나는 기하 구조 기반 압축을 사용하여 신드롬 데이터를 압축하도록 구성된다. 양자 컴퓨팅 디바이스는 2개 이상의 유형의 압축 엔진에 결합되는 논리적 큐비트의 둘 이상의 섹터를 포함할 수 있다. 일부 예들에서, 방법(900)은 4K에서 압축 엔진을 동작시키는 단계를 포함할 수 있다. 그러나 더 높은(예컨대, 8K) 또는 더 낮은(예컨대, 2K) 온도가 사용될 수 있다.
계속해서 단계(930)에서, 방법(900)은 압축된 신드롬 데이터를 압축 해제 엔진으로 라우팅하는 단계를 포함하고, 압축 해제 엔진은 압축된 신드롬 데이터를 수신하고; 수신된 압축된 신드롬 데이터를 압축 해제하도록 구성된다. 단계(940)에서, 방법(900)은 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하는 단계를 포함한다. 일부 예들에서, 압축 해제된 신드롬 데이터는 디코더 블록의 그래프 생성기 모듈로 라우팅될 수 있다. 일부 예들에서, 방법(900)은 77K에서 압축 해제 엔진 및/또는 디코더 블록을 동작시키는 단계를 포함할 수 있다. 그러나 더 높은 온도(예컨대, 85K) 또는 더 낮은 온도(예컨대, 70K)가 사용될 수 있다. 일부 예들에서, 양자 컴퓨팅 디바이스는 d개의 디코더 블록들의 세트를 포함하고, d < 2*l이다.
도 10은 양자 컴퓨팅 디바이스 내에서 기하 구조 기반 압축을 사용하여 신드롬 데이터를 압축하기 위한 예시적인 방법(1000)을 도시한다. 일부 예들에서, 방법(1000)은 예를 들어, 도 12에 개략적으로 도시된 디코더와 같은 유니온-파인드 디코더의 하드웨어 구현을 포함하는 양자 컴퓨팅 디바이스에 의해 구현될 수 있다.
단계(1010)에서, 방법(1000)은 l개의 논리적 큐비트를 포함하는 적어도 하나의 표면 코드 격자로부터 신드롬 데이터를 생성하는 단계를 포함하고, 여기서 l은 양의 정수이고, 표면 코드 격자는 예를 들어, 도 8에 도시된 바와 같이 격자 기하 구조에 기초하여 2개 이상의 영역으로 분할된다. 일부 예에서, 영역의 수는 단순 신드롬을 포함하는 데이터 블록의 예상 수에 기초하여 결정될 수 있다.
단계(1020)에서 방법(1000)은 각각의 논리적 큐비트에 대해, 생성된 신드롬 데이터를 압축 엔진으로 라우팅하는 단계를 포함하고, 압축 엔진은 기하 구조 기반 압축을 사용하여 신드롬 데이터를 압축하도록 구성된다. 단계(1030)에서, 방법(1000)은 표면 코드 격자의 2개 이상의 영역의 각각의 영역에 대해 제로 표시자 비트를 사용하여 신드롬 데이터를 압축하는 단계를 포함한다. 단계(1040)에서, 방법(1000)은 비제로 영역으로부터만 신드롬 데이터를 송신하는 단계를 포함한다. 즉, 한 영역으로부터 데이터가 수신되지 않는 경우 해당 영역은 단순(예컨대, 전부 영인(all-zero)) 데이터만 포함한다고 가정될 수 있다.
단계(1050)에서, 방법(1000)은 압축된 신드롬 데이터를 압축 해제 엔진으로 라우팅하는 단계를 포함하고, 압축 해제 엔진은 압축된 신드롬 데이터를 수신하고; 그리고 수신된 압축된 신드롬 데이터를 압축 해제하도록 구성된다. 압축 해제 엔진은 압축 엔진에 의해 사용되는 기하 구조 기반 압축 방식에 기초하여 프로그래밍될 수 있다.
QEC의 디코더는 신드롬 측정 데이터를 프로세싱하고 데이터 큐비트를 손상시키는 에러를 식별하는 데 사용된다. 여기에서 표면 코드를 위한 유니온-파인드 디코더의 하드웨어 구현을 위한 마이크로 아키텍처가 개선되었다. 표면 코드에서, 큐비트 격자에서 로컬 연산자를 측정하고 디코더를 사용하여 신드롬을 프로세싱하면 데이터 큐비트에서 가장 가능성이 높은 에러의 추정치가 생성된다. 디코더 마이크로 아키텍처는 극저온 환경에서 동작의 엄격한 전력 예산을 충족하기 위해 하드웨어 복잡성을 낮게 유지하면서 에러 축적을 방지하도록 설계된다. 여기에 제시된 아키텍처는 내결함성 양자 컴퓨팅을 가능하게 하기 위해 최대 수천 개의 논리적 큐비트까지의 확장을 지원하도록 설계된다.
양자 에러 디코딩은 NP-난도 문제이다. 따라서 대부분의 디코딩 알고리즘은 시간과 알고리즘 복잡성을 줄이기 위해 에러 문턱값을 상호 절충한다. 한 가지 유망한 에러 디코딩 기술은 그래프 기반 최소 가중치 완벽 매칭(Minimal Weight Perfect Matching; MWPM) 디코더이다. 이 기술이 높은 에러 문턱값을 제공하지만 MWPM 디코더는 시간 복잡성이 높다(0(n2)). 대안적으로, 디코더를 설계하는 간단한 접근 방식은 룩업 테이블을 사용하는 것에 기초한다. 테이블은 신드롬 비트에 의해 인덱싱되고 대응 항목(entry)은 데이터 큐비트에 대해 에러 정보를 저장한다. 그러나 룩업 테이블 디코더는 확장될 수 없으며 코드 거리가 작은 경우에도 테라바이트의 메모리가 필요하다. 심층 신경 디코더는 널리 사용되며 훈련 단계에서 측정된 신드롬의 시퀀스에 대응하는 가능한 에러의 확률 밀도 함수를 학습한다. 추론을 사용하여, 주어진 신드롬에 대한 에러 패턴이 평가된다. 그러나 신경 디코더는 컴퓨팅을 위해 더 많은 하드웨어가 필요하며 코드 거리가 증가하면 확장될 수 없다. 최근 제안된 유니온-파인드 디코더는 비단순(non-trivial) 신드롬(비제로 신드롬)을 중심으로 클러스터를 형성하고 그래프 순회를 사용하여 거의 선형 시간에 에러를 정정하는 알고리즘을 제시한다. 따라서 유니온-파인드 디코더는 단순성, 시간 복잡성, 및 높은 에러 문턱값을 제공한다.
유니온-파인드 디코더의 동작은 도 11에 도시된다. 1100에서, 그래프(1102)의 각 에지는 데이터 큐비트를 나타내고 각 정점은 패리티 큐비트(예컨대, 1104, 1106)를 나타낸다. 디코딩은 1110에 도시된 바와 같이 하나 이상의 짝수 클러스터를 형성하기 위해 모든 에러가 있는 신드롬 비트를 커버하도록 스패닝 포레스트(1108)를 성장(grow)시키는 것으로 시작한다. 데이터 큐비트 A(1112) 및 B(1114)에는 각각 알려지지 않은 파울리 에러(1116 및 1118)가 할당될 수 있다. 포레스트를 통과하여 순회함으로써, 1120에 도시된 것과 같이 에러가 검출될 수 있다. 클러스터 순회 단계(1122, 1124에서 도시됨)는 에러를 검출, 분류(예컨대, Z 에러), 및 정정하는 데 사용될 수 있다.
이 알고리즘의 적응은 도 12의 블록도(1200)에 도시된 바와 같이 구현될 수 있다. 압축된 신드롬 데이터(1210)는 압축 해제 엔진(1215)으로 라우팅된다. 그런 다음, 압축 해제된 신드롬 데이터(1220)는 그래프 생성기(Gr-Gen) 모듈(1225)로 라우팅된다. Gr-Gen 모듈(1225)은 스패닝 트리 메모리(spanning tree memory; STM) 데이터를 생성하도록 구성될 수 있다. 깊이 우선 서치(Depth-First Search; DFS) 엔진(1230)은 STM 데이터에 액세스하고 STM 데이터에 기초하여 에지 스택을 생성하도록 구성될 수 있다. 정정(Correction; Corr) 엔진(1235)은 에지 스택에 액세스하고, 액세스된 에지 스택에 기초하여 메모리 요청을 생성하고, 에러 로그(1240)를 갱신하도록 구성될 수 있다.
신드롬 측정 에러가 무시되면, 단일 라운드의 신드롬 측정으로부터 생성된 2D 그래프를 사용하여 디코딩이 수행된다. 잘못된 측정을 설명하려면, d개의 연속적인 신드롬 측정 라운드 - 여기서 d는 코드 거리임 - 가 함께 디코딩되어야 하며, 3D 그래프를 산출(lead)한다. 유니온-파인드 디코더는 이 두 경우 모두에 사용될 수 있다. 주요 차이점은 표면 코드의 코드 거리에 따라 2차식으로(2D의 경우) 또는 3차식으로(3D의 경우) 증가하는 필요한 메모리 양이다. 유니온-파인드 디코더의 마이크로 아키텍처는 여기에서 단순함을 위해 2D로 설명되고 3D에 대해 일반화된다. 설명된 모든 관련 결과는 3D 그래프에 대해 획득된다. 디코딩 설계에는 3개의 파이프라인 스테이지가 포함되어 있어 설계 확장을 개선할 수 있다.
Gr-Gen 모듈은 압축 해제 후 신드롬을 입력으로서 사용하고 비단순 신드롬 비트(비제로 신드롬 비트) 주위에 클러스터를 성장시켜 스패닝 포레스트를 생성한다. 스패닝 포레스트는 Union() 및 Find()의 2개의 기본 그래프 연산을 사용하여 구축될 수 있다. 도 13은 예시적인 Gr-Gen 모듈(1300)을 개략적으로 도시한다. 모듈(1300)은 스패닝 트리 메모리(STM)(1310), 제로 데이터 레지스터(Zero Data Register; ZDR)(1315), 루트 테이블(1320), 크기 테이블(1325), 패리티 레지스터(1330), 및 융합 에지 스택(fusion edge stack; FES)(1335)을 포함한다. 이 설계는 하드웨어 자원 비용을 줄이기 위해 앞에서 설명된 유니온-파인드 알고리즘과는 약간 다르다. 각 컴포넌트의 크기는 코드 거리 d의 함수이다. STM(1310)은 각 정점에 대해 1비트를 그리고 에지당 2비트를 저장한다. 원래 알고리즘에 따라 클러스터가 정점 또는 기존 클러스터 경계 주위에서 절반의 에지 폭만큼 성장하기 때문에 에지당 2비트가 사용된다. ZDR(1315)은 STM 행당 1비트를 저장한다. 행의 내용이 0이면 비트는 0을 저장하고, 행의 비트 중 적어도 하나가 1이면 대응 행의 ZDR 비트는 1을 저장한다. 신드롬 데이터가 희박하고 스패닝 포레스트의 총 에지 수가 적을(low) 것이기 때문에, ZDR(1315)은 STM(1310) 순회 속도를 높이다. FES(1335)는 새로 성장된 에지를 저장하여, 이 에지가 기존 클러스터에 추가될 수 있다. 루트 테이블(1320) 및 크기 테이블(1325)은 각각 클러스터의 루트 및 크기를 저장한다. 트리 순회 레지스터(1340)는 Find() 연산에서 방문된 각 클러스터의 정점을 저장한다. Gr-Gen 모듈과 DFS 엔진 사이의 인터페이스(1345)는 DFS 엔진이 STM(1310)에 저장된 데이터에 액세스하는 것을 허용할 수 있다.
루트 테이블 항목(루트 테이블[i])는 도 14에 도시된 바와 같이 인덱스(i)로 초기화된다. 비단순 신드롬 비트에 대한 크기 테이블 항목은 1400에 도시된 대로 1로 초기화된다. 이 테이블은 1410에 도시된 것처럼 성장 단계 후에 클러스터를 1420에 표시된 것처럼 최종 상태로 병합(merge)하기 위해 Union() 연산 및 Find() 연산을 지원한다.
이 테이블은 클러스터 인덱스에 의해 인덱싱된다. 이 테이블은 표면 코드 격자의 총 정점 수와 동일한 가능한 최대 클러스터 수에 맞게 크기가 조정된다. 각 클러스터의 경계 목록이 저장될 수 있다. 그러나 평균 클러스터 직경은 실제 애플리케이션과 관련된 노이즈 체제에서 매우 작다. 클러스터 직경은 클러스터 경계의 두 정점 사이의 최대 거리로서 정의될 수 있다. 따라서 경계 목록이 저장되지 않을 수 있고, 대신에, 클러스터 성장 단계에서 경계 인덱스가 계산될 수 있다. 원래 알고리즘은 패리티가 짝수가 될 때까지 모든 홀수 클러스터를 성장시킨다. 따라서 홀수 클러스터가 빠르게 검출되어야 한다. 이를 위해 도 11에 도시된 바와 같이 패리티 레지스터가 사용될 수 있다. 패리티 레지스터는 클러스터가 홀수인지 짝수인지에 따라 클러스터당 1비트 패리티를 저장할 수 있다. 적정한 코드 거리 11의 경우, 7개의 32비트 레지스터가 충분할 수 있다. 더 큰 코드 거리의 경우, 추가 패리티 정보가 메모리에 저장되고 메모리 대기 시간을 숨기기 위해 미리 판독될 수 있다.
제어 논리부는 STM, ZDR에 기록하고 다른 클러스터 경계와 접촉하는 새로 추가된 에지를 FES에 추가함으로써 패리티 레지스터를 판독하고 홀수 패리티를 사용해 클러스터를 성장시킬 수 있다(성장 단계라고 함). 이중 성장을 방지하기 위해 다른 클러스터에 접속하는 에지에 대해 STM이 갱신되지 않을 수 있다. STM은, 클러스터가 병합될 때, FES으로부터 판독함으로써 갱신될 수 있다. 논리부는 에지에 의해 접속된 정점(이를 기본 정점이라고 함)의 루트 테이블 항목을 판독하여 새로 추가된 에지가 두 클러스터를 접속하는지 확인할 수 있다 이것은 Find() 연산과 동일하다. 각 기본 정점의 루트를 찾기 위해 경로에서 방문된 정점은 도 15의 1500에 도시된 것처럼 트리 순회 레지스터에 저장된다. 이러한 정점에 대한 루트 테이블 항목은 1510에 도시된 것처럼 향후 순회를 위한 트리의 깊이를 최소화하기 위해 클러스터의 루트를 직접 가리키도록 갱신될 수 있다. 경로 압축이라고 하는 이 동작은 유니온-파인드 알고리즘에 포함되어 있으며 트리 깊이를 짧게 유지하여 Find() 연산의 비용을 상각(amortize)할 수 있다. 예를 들어, 1500에서, 도 15는 어떤 순간의 두 클러스터와 루트 테이블의 상태를 도시한다. 성장 단계 후에 정점 0과 6이 접속되고 두 클러스터가 병합되어야 한다고 가정한다. 트리 순회 레지스터는 1500에 도시된 것처럼 정점 0의 루트를 갱신하는 데 사용될 수 있다. 트리의 깊이가 지속적으로 압축되기 때문에, 몇 개의 레지스터만 있으면 충분하다. 한 예에서, 더 많거나 더 적은 레지스터가 사용될 수도 있지만, 기본 정점당 5개의 레지스터가 사용된다. 기본 정점이 상이한 클러스터들에 속하는 경우, 더 작은 클러스터의 루트가 더 큰 클러스터의 루트를 가리키도록 갱신될 수 있다.
DFS 엔진은 성장된 짝수 클러스터 세트를 저장하는 Gr-Gen에 의해 생성된 STM 데이터를 프로세싱할 수 있다. DFS 엔진은 DFS 알고리즘을 사용하여 STM의 각 클러스터에 대한 스패닝 트리를 형성하는 에지 목록을 생성할 수 있다. 다른 예들에서, DFS가 일반적으로 더 메모리 효율적이지만, 너비 우선 서치 탐사가 사용될 수 있다. 예시적인 DFS 엔진이 도 16의 1600에 도시되어 있다. 논리부는 유한 상태 머신(finite state machine)(1610) 및 2개의 스택(1620 및 1622)을 사용하여 구현될 수 있다. 스패닝 트리에서 에지가 방문되는 순서를 반대로 하여 필링에 의한 정정을 수행할 수 있으므로 스택이 사용될 수 있다. 에지 스택(1620)은 방문된 에지의 목록을 저장할 수 있는 반면, 계류 에지 스택(pending edge stack)(1622)은 진행 중인 DFS에서 나중에 방문될 에지를 저장할 수 있다. 예를 들어, 도 16의 1630에 도시된 바와 같이, FSM이 스패닝 포레스트의 정점 1을 방문할 때, 에지 a는 에지 스택으로 푸시되고 에지 c는 계류 에지 스택으로 푸시된다. 현재 경로의 끝에 도달하면, 계류 중인 에지가 튀어나와(pop) 순회될 수 있다. 파이프라이닝을 가능하게 하고 성능을 개선하기 위해, 마이크로 아키텍처는 대체 에지 스택(alternate edge stack)(1632)을 포함하도록 설계될 수 있다. 하나보다 많은 클러스터가 있는 경우, 정정 엔진은 Corr 엔진 인터페이스(1640)를 통해 DFS 엔진이 다른 클러스터를 순회할 때 순회된 클러스터들 중 하나의 에지 목록에서 동작할 수 있다. 1630에 도시된 바와 같이, 에지 a, b, c 및 d가 클러스터 C0에 속하고 에지 e 및 f가 클러스터 C1에 속하는 경우, Corr 엔진이 C0에 대한 정정을 프로세싱할 때 DFS 엔진(1600)은 C1을 순회할 수 있다. 이는 최악의 경우의 클러스터 크기가 아닌 평균 클러스터 크기를 처리하도록 스택 크기를 조정하는 데 도움이 될 수 있다. DFS 엔진(1600)이, 하나의 스택에 들어갈 수 없는 충분히 큰 클러스터를 만나는 경우, 대체 스택(1632)이 사용될 수 있고 오버플로 비트가 설정되어 두 스택(1620 및 1632)이 단일 클러스터에 대응하는 에지를 보유함을 나타낼 수 있다. 이 제안된 구현에는 클러스터 크기에 정비례하는 메모리 판독 수가 포함될 수 있다. STM(1310)을 행 단위로 진행하면, 클러스터 생성의 유효 비용이 감소한다. ZDR(1315)은 STM 1310을 행 단위로 순회하는 비용을 감소시킨다.
Corr 엔진은 디코더의 필링 프로세스를 수행하고, 적용할 파울리 정정을 식별할 수 있다. Corr 엔진은 에지 목록(스택에 저장됨) 및 에지 목록을 따라 정점에 대응하는 신드롬 비트에 액세스할 수 있다. 신드롬 비트는 압축된 신드롬을 압축 해제하고 그리고/또는 STM에 액세스하여 액세스될 수 있다. 그러나 전자는 논리적 복잡성과 대기 시간을 증가시킬 수 있는 반면 후자는 STM이 처리하는 데 필요한 메모리 요청 수를 증가시킬 수 있다. 메모리 트래픽을 줄이고 추가적인 압축 해제 논리부의 필요성을 없애기 위해, DFS 엔진에 의해 에지 인덱스 정보와 함께 신드롬 정보가 저장될 수 있다. 필링으로 인한 일시적인 신드롬 변화는 로컬 레지스터에 저장된다. Corr 엔진에서 수행된 예시적인 에러 그래프에 대한 필링의 예가 도 17에 도시되어 있다. 예시적인 신드롬 보유 레지스터(syndrome hold register), 에러 로그, 에지 스택, 및 에러 그래프는 단계 1(1700), 단계 2(1710), 및 단계 3(1720)에 대해 도 17에 도시되어 있다. Corr 엔진은 또한 마지막 표면 코드 주기 에러 로그를 판독하고 현재 에지에 대한 파울리 정정을 갱신할 수 있다. 예를 들어, 에지 e0의 에러가 이전 논리 주기에서 Z였고 Corr 엔진이 현재 주기에서도 Z 에러를 만나는 경우, e0에 대한 파울리 에러는 1720에 도시된 바와 같인 대로 I로 갱신될 수 있다.
도 18은 양자 컴퓨팅 디바이스에 대한 예시적인 디코딩 방법(1800)을 도시한다. 일부 예들에서, 디코딩 방법(1800)은 예를 들어, 도 12에 개략적으로 도시된 디코더와 같은 유니온-파인드 디코더의 하드웨어 구현을 포함하는 양자 컴퓨팅 디바이스에 의해 구현될 수 있다.
단계(1805)에서, 방법(1800)은 예를 들어, 양자 레지스터에 상주하는 논리적 큐비트와 같은 복수의 큐비트 중 하나 이상으로부터 신드롬 데이터를 수신하는 단계를 포함한다. 수신된 신드롬 데이터는 X 신드롬 데이터 및/또는 Z 신드롬 데이터를 포함할 수 있다.
단계(1810)(에서, 방법(1800)은 2개 이상의 파이프라인 스테이지를 포함하는 하드웨어로 구현된 유니온-파인드 디코더(hardware implemented Union-Find decoder)를 사용해, 수신된 신드롬 데이터를 디코딩하는 단계를 포함한다. 예로서, 이것은 3개의 파이프라인 스테이지, 즉, 그래프-생성기 모듈 스테이지, 깊이 우선 서치 엔진 스테이지, 및 정정 엔진 스테이지를 포함하는 도 12에 도시된 하드웨어로 구현된 유니온-파인드 디코더를 포함할 수 있다. 그러나 임의의 수 또는 조합의 둘 이상의 파이프라인 스테이지들이 사용될 수 있다.
선택적으로, 단계(1820)에서, 신드롬 데이터를 디코딩하는 단계는 Gr-Gen 모듈에서 비단순 신드롬 비트 주위에 클러스터를 성장시킴으로써 스패닝 포레스트를 생성하는 단계를 포함할 수 있다. 일부 예에서, 스패닝 포레스트는 Union() 그래프 연산 및 Find() 그래프 연산을 사용하여 생성될 수 있다.
선택적으로, 1825에서, 신드롬 데이터를 디코딩하는 단계는 Gr-Gen 모듈에서 스패닝 트리 메모리(spanning tree memory; STM) 및 제로 데이터 레지스터에 스패닝 포레스트에 관한 데이터를 저장하는 단계를 포함할 수 있다. 일부 예들에서, 새롭게 성장된 에지는 융합 에지 스택에 저장될 수 있다.
선택적으로, 단계(1830)에서, 신드롬 데이터를 디코딩하는 단계는 DFS 엔진에서 STM에 저장된 데이터에 액세스하는 단계를 포함할 수 있다. 선택적으로, 1835에서, 신드롬 데이터를 디코딩하는 단계는 DFS 엔진에서, STM에 저장된 데이터에 기초하여 하나 이상의 에지 스택을 생성하는 단계를 포함할 수 있다. 예를 들어, 도 16에 도시된 바와 같이, STM에 저장된 데이터에 기초하여 하나 이상의 에지 스택을 생성하는 단계는 방문된 에지의 목록을 포함하는 기본 에지 스택을 생성하는 단계를 포함할 수 있다. 추가적으로 또는 대안적으로, STM에 저장된 데이터에 기초하여 하나 이상의 에지 스택을 생성하는 단계는 방문될 에지의 목록을 포함하는 계류 에지 스택을 생성하는 단계를 포함할 수 있다. 추가적으로 또는 대안적으로, STM에 저장된 데이터에 기초하여 하나 이상의 에지 스택을 생성하는 단계는 스패닝 포레스트의 클러스터로부터의 잉여 에지(surplus edges)를 보유하도록 구성된 대체 에지 스택을 생성하는 단계를 포함할 수 있다.
선택적으로, 단계(1840)에서, 신드롬 데이터를 디코딩하는 단계는 Corr 엔진에서, 생성된 에지 스택 중 하나 이상에 액세스하는 단계를 포함할 수 있다. 선택적으로, 단계(1845)에서, 신드롬 데이터를 디코딩하는 단계는 Corr 엔진에서, 액세스된 에지 스택에 기초하여 메모리 요청을 생성하는 단계를 포함할 수 있다. 선택적으로, 단계(1850)에서, 신드롬 데이터를 디코딩하는 단계는 Corr 엔진에서, 각각의 액세스된 에지 스택에 대해 반복적인 필링 디코딩을 수행하는 단계를 포함할 수 있다. 선택적으로, 단계(1855)에서, 신드롬 데이터를 디코딩하는 단계는 Corr 엔진에서, 반복적인 필링 디코딩의 결과에 기초하여 디코더의 에러 로그를 갱신하는 단계를 포함할 수 있다.
여기에서 논의된 바와 같이, 단일 라운드의 측정에 기초한 디코딩은 신드롬 측정 에러를 설명하지 않을 것이다. 측정 에러를 처리하기 위해, 디코더는 d개(코드 거리)의 라운드의 측정을 검사한다. 이러한 유형의 에러 정정은 설계를 최소한으로 변경하여 처리될 수 있다. 예를 들어, 디코더는 2차원 평면에 그래프를 형성하는 대신 3차원 그래프를 분석할 수 있다. 각 정점은 최대 4개의 이웃에 접속될 수 있다. 반면, 3D 그래프의 경우, 각 정점은 이전 및 다음 측정 라운드에 대응하는 최대 2개의 추가 에지를 가질 수 있다. 저장 오버헤드를 감소시키기 위해 신드롬 측정 라운드당 하나의 STM이 저장될 수 있다. STM은, STM의 각 행이 표면 코드 격자 행의 정점, 다음 행의 정점에 대한 에지 정보, 및 다음 라운드의 표면 코드 격자에서 대응 정점을 접속하는 에지 정보를 저장하도록 최적화될 수 있다.
여기에 설명된 압축 기술은 데이터 큐비트에 대한 신드롬 데이터 및 에러 로그를 저장하는 데 필요한 메모리의 양을 감소시킬 수 있다. 그러나 유니온-파인드 디코더의 마이크로 아키텍처도 메모리를 사용하며 필요한 총 용량은 초전도 메모리에 의해 제공되는 총 용량과는 차이가 크다(far from). 따라서 이 설계는 기존 CMOS를 사용하여 77K에서 동작하여 구현될 수 있다. 이것은 또한 설계가 물리적으로 양자 기판으로부터 멀리 떨어져 있기 때문에 양자 기판에 가까운 극저온 환경에서 생성되는 열 노이즈를 감소시킬 수 있다.
베이스라인 설계의 경우, 나이브 구현(naive implementation)은 도 19의 1900에 도시된 바와 같이 각 논리적 큐비트에 대해 각각의 X 신드롬 및 Z 신드롬에 대해 디코더를 할당할 수 있다. 도 19는 양자 레지스터(1910) 내의 큰 수의 논리적 큐비트(L)에 대한 시스템 조직을 개략적으로 도시한다. 양자 레지스터(1910)는 15mK 내지 20mK에서 동작하는 대표적인 논리적 큐비트로서 논리적 큐비트 0(1910a), 논리적 큐비트 1(1910b), 및 논리적 큐비트 1(1910l)을 포함하는 것으로 도시되어 있다. 각 논리적 큐비트는 제어 논리부(1915)로부터 신호를 수신하고 신드롬 데이터를 압축 엔진(예컨대, 1920a, 1920b ... 1920l)으로 출력하도록 구성된다. 제어 논리부(1915) 및 압축 엔진(1920a ... 1920l)은 양자 레지스터에 대해서보다 더 높은 온도인 4K에서 동작하는 것으로 도시되어 있다. 그러나 더 높은(예컨대, 8K) 또는 더 낮은(예컨대, 2K) 온도가 사용될 수 있다.
각 압축 엔진은 77K에서 동작하는 압축 해제 엔진(1925a, 1925b ... 19251)으로 압축된 신드롬 데이터를 라우팅한다. 압축 해제 엔진은 압축된 신드롬 데이터를 압축 해제하고 압축 해제된 X 신드롬 데이터 및 Z 신드롬 데이터를 디코딩 블록(1930)으로 라우팅한다. 이 예에서 각 압축 해제 엔진은 77K에서 동작하는 한 쌍의 파이프라인형 유니온-파인드 디코더(1935a, 1935b, 1935c, 1935d ... 1935k, 1935l)에 결합된다. 각 유니온-파인드 디코더는 압축 해제 엔진으로부터 수신된 신드롬 데이터를 분석하고 에러 로그(1940)를 갱신한다. 77K에서 동작하는 것으로 도시되어 있지만, 더 높은(예컨대, 85K) 또는 더 낮은(예컨대, 70K) 온도가 압축 해제 엔진 및 디코더를 동작시키기 위해 사용될 수 있지만, 압축 해제 엔진 및 디코더의 동작 온도는 일반적으로 압축 엔진의 동작 온도보다 높을 수 있다.
따라서 베이스라인 설계의 경우 디코딩 논리는 논리적 큐비트당 2L개의 유니온-파인드 디코더를 사용할 수 있다. 이 구현에서 각 논리적 큐비트는 자체 전용 디코더를 사용한다. 그러나 각 파이프라인 스테이지의 활용도는 다를 수 있다. 따라서 1900에 표시된 아키텍처는 최적의 자원 할당을 제공하지 않을 수 있다. 큰 수의 큐비트의 경우 온칩 컴포넌트는 활용도가 낮고 열을 발산한다. 전체 시스템이 77K에서 동작되기 때문에 전력 손실이 증가하면 냉각 비용이 선형적으로 증가한다.
이와 같이, 감소된 수의 파이프라인 유닛을 포함하는 디코더 블록의 아키텍처가 사용될 수 있다. 그러한 디코더 블록에 대한 예시적인 설계가 도 20의 2000에 도시되어 있다. 복수의 논리적 큐비트를 포함하는 큐비트 레지스터(2005)는 신드롬 데이터를 Gr-Gen 모듈 세트로 송신한다. Gr-Gen 모듈(2010)의 그룹은 하나 이상의 DFS 엔진(2020)을 공유할 수 있고 DFS 엔진(2020)의 그룹은 하나 이상의 Corr 엔진(2030)을 공유할 수 있다. 하드웨어 오버헤드는 Gr-Gen 모듈(2010)의 그룹을 하나의 DFS 엔진(2020)에 결합하는 제1 세트의 다중화기(2035), 및 DFS 엔진(2020)의 그룹을 하나의 Corr 엔진(2030)에 결합하는 제2 세트의 다중화기(2040)를 포함한다. Corr 엔진(2030)에 의해 생성된 메모리 요청은 역다중화기(2045)를 사용하여 정확한 메모리 위치로 라우팅될 수 있다. 선택 논리부(2050)는 제1 준비 컴포넌트의 우선순위를 정할 수 있고 라운드 로빈 중재를 사용하여 다중화기(2035 및 2040)에 대한 적절한 선택 신호를 생성할 수 있다. 예를 들어, 4개의 Gr-Gen 모듈(2010)이 DFS 엔진(2020)을 공유하고 제2 Gr-Gen 모듈이 다른 모듈보다 먼저 클러스터 형성을 완료하면, 제2 Gr-Gen 모듈이 대응 DFS 엔진(2020)에 먼저 액세스할 수 있다. 따라서 라운드 로빈 정책은 자원을 공유하면서 공정성을 보장한다.
예시적인 시스템 아키텍처가 도 21의 2100에 도시되어 있다. 큐비트 레지스터(2105)는 제어 논리부(2115)에 결합된 복수의 논리적 큐비트(2110)를 포함한다. 각각의 논리적 큐비트는 압축 엔진(2120)에 결합되고, 압축 엔진(2120)은 차례로 각각 압축 해제 엔진(2125)에 결합된다. N개의 논리적 큐비트(2110)의 블록은 디코더 블록(2130)을 공유하며, 디코더 블록(2130)은 각각의 결합된 논리적 큐비트(2110)에 대한 에러 로그(2135)를 갱신한다. 도 19와 관련하여 설명된 바와 같이, 동작 온도는 4K 및 77K의 표시된 온도와 다를 수 있다. N개의 논리적 큐비트가 디코더 블록(2130)을 공유하는 경우, L개의 논리적 큐비트(2110)를 갖는 양자 레지스터(2105)에 대해, 필요한 디코더 블록(2130)의 총 수는 L/N이다. 예시적인 마이크로 아키텍처는 L개의 Gr-Gen 모듈, (a) L개의 DFS 엔진, 및 (b) L개의 Corr 엔진을 사용한다. 자원 절약은 파라미터 (a) 및 파라미터 (b)에 따라 다르다. (a) 및 (b)의 값은 전체 하드웨어 비용을 최소화하도록 계산될 수 있다. 이것은 제약 조건에 따른 최적화 문제로서 표현(frame)될 수 있다.
대규모 시스템에서 디코딩을 수행하는 한 가지 방법은 각 논리적 큐비트에 하나의 디코더를 할당하는 것이다. 그러나 이 접근 방식은 하드웨어 및 그에 따른 전력 비용 측면에서 선형 증가를 초래한다. 따라서 이 설계는 그다지 효율적이지 않고 본질적으로 확장할 수 없다. 여기에서의 설계는 디코더 블록이 큰 수의 논리적 큐비트에 대해 스케일링될 때 실제 비용을 줄이기 위해 특정 설계 컴포넌트의 재사용을 가능하게 한다.
자원은 디코딩 유닛 내에서 그리고/또는 전체 디코딩 유닛에 걸쳐 공유될 수 있다. 디코딩 시간 분포를 고려할 때, 매우 긴 여러 신드롬 벡터를 동시에 디코딩해야 하는 경우는 거의 없으므로 자원을 공유할 수 있다.
이 공유는 디코딩 알고리즘이 신드롬에 종속된 런타임을 갖는 경우를 포함하여 디코더 또는 디코딩 알고리즘과 독립적이므로, 일부 신드롬은 다른 신드롬보다 디코딩하기가 더 어렵거나 더 길 수 있다. 예를 들어, 일부 머신 러닝 기반 디코더는 신드롬에 종속되지 않는다. 머신 러닝 디코더는 다수의 계층의 신경망을 가질 수 있다. 제1 계층에서 하나의 큐비트에 대해 디코딩이 수행되면, 첫 번째 큐비트가 네트워크의 제2 계층에서 동작하는 동안 제2 큐비트가 제1 계층을 사용할 수 있다.
도 22는 양자 컴퓨팅 디바이스에 대한 예시적인 방법(2200)을 도시한다. 방법(2200)은 예를 들어, 도 20 및 21에 도시된 컴퓨팅 디바이스와 같은 다중화된 양자 컴퓨팅 디바이스에 의해 실행될 수 있다. 단계(2205)에서, 방법(2200)은 l개의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터로부터 신드롬을 생성하는 단계를 포함하며, 여기서 l은 양의 정수이다. 생성된 신드롬은 X개의 신드롬 및 Z개의 신드롬을 포함할 수 있다. 단계(2210)에서, 방법(2200)은 생성된 신드롬을 적어도 하나의 양자 레지스터에 결합된 d개의 디코더 블록의 세트로 라우팅하는 단계를 포함하며, 여기서 d < 2*l이다. 도 20 및 21과 관련하여 설명된 바와 같이, 이 라우팅은 각각의 논리적 큐비트에 대해 X 신드롬 및 Z 신드롬 모두에 대한 프로세싱을 처리하기 위해 2개 미만의 디코더가 필요하기 때문에 양자 컴퓨팅 디바이스의 확장성을 허용한다.
일부 예들에서, 각각의 디코더 블록은 n > 1인 n개의 논리적 큐비트들의 세트로부터 디코딩 요청들을 수신하도록 구성된다. 일부 예들에서, 각각의 디코더 블록은 g개의 Gr-Gen 모듈을 포함하고, 여기서 0 < g ≤ l이고, 각각의 Gr-Gen 모듈은 수신된 신드롬에 기초하여 스패닝 트리 메모리(STM) 데이터를 생성하도록 구성된다. 일부 예들에서, 각각의 디코더 블록은 α*l개의 DFS 엔진을 더 포함하며, 여기서 0 < α < 1이다. 일부 예들에서, 둘 이상의 Gr-Gen 모듈은 제1 세트의 다중화기 중 하나를 통해 각 DFS 엔진에 결합된다.
선택적으로, 2215에서, 방법(2200)은 각각의 DFS 엔진에서 제1 세트의 다중화기 중 하나를 통해 2개 이상의 Gr-Gen 모듈에 의해 생성된 STM 데이터에 액세스하는 단계를 포함한다. 선택적으로, 단계(2220)에서, 방법(2200)은 각각의 DFS 엔진에서 STM 데이터에 기초하여 에지 스택을 생성하는 단계를 포함한다. 일부 예들에서, 각각의 디코더 블록은 β*l개의 Corr 엔진을 더 포함하며, 여기서 0 < β < 1이다. 일부 예들에서, 2개 이상의 DFS 엔진은 제2 세트의 다중화기 중 하나를 통해 각각의 Corr 엔진에 결합된다.
선택적으로, 단계(2225)에서, 방법(2200)은 각각의 Corr 엔진에서, 제2 세트의 다중화기 중 하나를 통해 2개 이상의 DFS 엔진에 의해 생성된 에지 스택에 액세스하는 단계를 포함한다. 선택적으로, 단계(2230)에서, 방법(2200)은 액세스된 에지 스택에 기초하여 메모리 요청을 생성하는 단계를 포함한다. 선택적으로, 단계(2235)에서, 방법(2200)은 각각의 Corr 엔진에 의해 생성된 메모리 요청을 하나 이상의 역다중화기를 통해 메모리 위치로 라우팅하는 단계를 포함한다. 선택적으로, 단계(2240)에서, 방법(2200)은 라운드 로빈 중재에 기초하여 제1 및 제2 세트의 다중화기 중 각각의 다중화기를 통해 리턴 신호를 라우팅하는 단계를 포함한다.
에러 정정은 d개의 라운드의 신드롬 측정이, 디코더에 의해 허용될 수 있는 최대 대기 시간을 제한하는 논리 주기(T) 내에서 디코딩될 때 성공적이다. 디코더가 논리 주기 내의 모든 신드롬을 디코딩하지 못하면 에러가 검출되지 않을 수 있다. 이러한 유형의 실패를 타임아웃 장애(timeout failure)라고 할 수 있다. 디코더는 불완전하고 문턱값 거동(threshold behavior)을 나타내기 때문에, 디코더에 의해 생성된 정정이 큐비트의 논리적 상태를 변경할 때 논리적 에러가 발생할 가능성도 있다. 따라서 디코더의 장애는 타임아웃 장애 또는 논리적 에러에 기인될 수 있다. 에러 문턱값을 동일하게 유지하고 시스템 장애률의 증가를 방지하려면 수학식 4에 보여진 바와 같이 타임아웃 장애(ptof)가 논리적 에러(plog) 발생 확률보다 낮아야 한다. 최적화된 설계를 위해, ptof가 충분히 작기만 하면 자원 공유가 가능하다.
Figure pct00007
k개의 디코딩 단위를 공유하는 동일한 에러율을 갖는 N개의 논리적 큐비트를 가정한다. N개의 논리적 큐비트를 디코딩하기 위한 총 실행 시간(τ)은 수학식 5에 의해 주어진다.
Figure pct00008
여기서 (τi)는 i번째 논리적 큐비트의 신드롬을 디코딩하는 실행 시간을 나타낸다. 이 경우 타임아웃 장애의 확률 ptof는 수학식 6을 만족해야 한다.
Figure pct00009
최적화 목표는 수학식 4에 의해 주어진 제약 조건이 충족되도록 주어진 논리적 큐비트 수 N에 대해 디코딩 단위의 수 k를 최소화하는 것이다. ptof는 시뮬레이터로부터 획득된 실행 시간을 사용하여 모델링될 수 있다.
디코더 성능은 판독 횟수를 연구하여 모델링될 수 있다. 수행된 기록 동작은 판독-수정-기록일 수 있으며, 후기록(writeback)은 임계 경로(critical path)에 없을 수 있다. 메모리 액세스 및 4GHz 클록 주파수에 대해 4개의 주기의 대기 시간이 가정되었다. 주어진 신드롬에 대한 Gr-Gen의 총 메모리 요청 수는 클러스터 직경(Di)에 정비례한다. 반면 이러한 총 메모리 요청 수는 DFS 엔진과 Corr 엔진의 클러스터(Si) 크기에 비례한다. n개의 클러스터를 가진 신드롬에 대해 Gr-Gen(TGG), DFS 엔진(TDFS) 및 Corr 엔진(TCE)에서 소요된 실행 시간은 수학식 7과 수학식 8과 같다.
Figure pct00010
Figure pct00011
최적화된 설계에서 각 Gr-Gen 유닛은 X 신드롬 및 Z 신드롬 모두에 대해 클러스터를 성장시킨다. 2개 이상의 Gr-Gen 유닛은 하나의 DFS 엔진 모듈을 사용하고 2개 이상의 DFS 엔진은 하나의 Corr 엔진을 사용한다. 공유될 유닛들의 이러한 수들은 각 파이프라인 스테이지에서 소요된 총 실행 시간의 비율(fraction)에 의해 결정될 수 있다.
아래에서는 디코더 마이크로아키텍처에서 설계를 선택하는 데 사용되는 시뮬레이션 인프라에 대해 논의된다. 이 인프라는 유니온-파인드 디코더의 주요 통계 중 일부를 추정할 수 있게 하고 여기에 설명된 압축 기술의 성능에 대한 연구를 추가로 가능하게 한다.
몬테 카를로 시뮬레이터는 상이한 압축 기술들의 성능을 분석하고 유니온-파인드 디코더의 성능 통계를 얻는 데 사용되었다. 도 23은 몬테카를로 시뮬레이터(2300)를 개략적으로 도시한다. 4개의 상이한 물리적 에러율들, 10개의 상이한 코드 거리들, 4개의 노이즈 모델들에 걸쳐 상이한 구성들이 각각 백만 번의 시도를 위해 시뮬레이션되었다. 선택된 에러율은 10-6(가장 낙관적), 10-4, 10-3, 및 10-2(가장 비관적)이었다. 시뮬레이터(2300)는 코드 거리(2302), 노이즈 모델(2304), 압축 알고리즘(2306)을 받아들였다. 코드 거리(2302)에 기초하여, 시뮬레이터(2300)는 격자 생성기(2308)를 통해 표면 코드 격자를 생성하였다. 선택된 노이즈 모델(2304)에 따라, 시뮬레이터는 표면 코드 격자의 데이터 큐비트에 에러 주입(2310)을 통해 에러를 주입하였고 출력 신드롬(2312)을 생성했다. 그런 다음, 출력 신드롬(2312)은 압축된 신드롬(2316)을 생성하기 위해 입력 압축 알고리즘(2306)에 따라 압축기(2314)를 통해 압축되었다. 그런 다음, 시뮬레이터(2300)는 압축 비율을 출력한다. 가장 적합한 압축 방식을 결정하기 위한 성능 지수로서, 압축률(수학식 9에 의해 결정됨)과 비압축성 신드롬의 백분율이 사용되었다. 시뮬레이션은 평균 압축비와 비압축성 신드롬의 백분율을 계산하기 위해 백만 번 반복되었다.
Figure pct00012
시뮬레이터는 또한 디코더(2318)를 통해 신드롬(2312)에서 유니온-파인드 디코딩 알고리즘을 실행했다. 그런 다음, 통계 생성기(2320)는 하드웨어를 모델링함으로써 디코더(2318)의 각 파이프라인 스테이지에서 소비된 실행 시간, 주어진 격자 상의 클러스터의 평균 수 및 클러스터 크기의 분포를 분석하였다. 이러한 통계 및 성능 수치는 디코더의 하드웨어 구현의 마이크로 아키텍처 설계에 기여했고 확장 가능한 설계에 동기를 부여한 통찰력을 제공했다.
디코더의 성능은 기본 큐비트의 노이즈 모델에 크게 의존한다. 따라서 4개의 상이한 에러 모델들이 탐사되었다. 동일하고 독립적으로 분포된(iid) 에러가 가정되었고, 가장 기본적인 노이즈 모델로서 탈분극 노이즈 모델(depolarizing noise model)이 선택되었다. 탈분극 노이즈 모델에서, 에러율이 p이면, 각 물리적 큐비트는 확률 p로 에러를 만나고 확률(1-p)로 에러가 없는 상태를 유지한다. 또한, 이 에러 모델에서 X 에러, Y 에러, 및 Z 에러는 각각 동일한 확률 p/3로 발생한다. 다른 3개의 노이즈 모델은 표 2에 도시된 바와 같이 X 에러 및 Z 에러의 상이한 확률들을 가정한다.
모델 에러 확률
X 에러 (Px) Z 에러(Pz) Y 에러 (Py)
탈분극 p/3 p/3 p/3
Px = Pz p/2 p/2 0
Px = 10Pz p/11 10p/11 0
Px = 100Pz p/101 100p/101 0
신드롬 압축, 베이스라인 유니온-파인드 디코더 설계 및 확장성 분석에 대한 결과가 여기에서 논의된다. 베이스라인 디코더 및 확장성 분석에 대한 결과는 여기에 설명된 바와 같이 d(코드 거리)개의 라운드의 신드롬 측정에 기초한다.
각 압축 방식의 성능은 노이즈 모델에 따라 다르다. 탈분극화 노이즈 모델의 경우, 예를 들어, DZC 및 Geo-Comp와 같은 압축 방식이 에러율에 따라 낮은 코드 거리에 대해 희소 표현에 비해 더 나은 성능을 제공한다. DZC는 예를 들어, Px = 10Pz 및 Px = 100Pz와 같이 특정 유형의 에러에 대해 상대적 편향을 갖는 노이즈 모델에 대해 Geo-Comp보다 더 잘 동작한다. 짧은 코드 거리에 대해, 희소 표현이 더 높은 압축률을 제공하더라도, 비압축성 신드롬의 백분율은 큰 에러율에 대해 더 높다(최대 6%). 한 유형의 에러 확률이 다른 유형보다 훨씬 큰 노이즈 모델의 경우, X 신드롬 및 Z 신드롬을 별도로 압축하여 더 나은 압축율이 얻어질 수 있지만 하드웨어 복잡성은 더 커진다. 하드웨어 제한으로 인해 한 가지 유형의 압축만 사용되어야 하는 경우, 코드 거리가 짧을수록 DZC가 더 잘 수행된다. 표 3은 상이한 노이즈 체제들과 각 체제에서 가장 잘 동작하는 적절한 압축 방식을 명시한다. 전반적으로 낮은 에러율 체제에서, 대부분의 경우 희소 표현이 더 잘 수행된다.
모델 에러율 압축 방식
DZC 희소 Geo-Comp
분극화 10-5
10-4, 10-3, 10-2
-
d = 3
d ≥ 7
d ≥ 7
d = 3, 5
d = 5
Px = Pz 10-5, 10-4, 10-3, 10-2 - d ≥ 5 d = 3
Px = 10Pz 10-5, 10-4,
10-3, 10-2
d = 3
d = 3, 5
d ≥ 5
d ≥ 7
-
-
Px = 100Pz 10-5, 10-4, 10-4, 10-2 d = 3 d ≥ 5 -
도 24는 상이한 물리적 에러율들 및 노이즈 체제들에 대해 선택된 압축 방식을 사용하여 탈분극 노이즈 채널에 대해 X 신드롬의 평균 압축비를 나타내는 도표(2400)를 도시한다. 탈분극 노이즈 채널이 대표적인 후보로서 도시된다. Z 신드롬에서도 유사한 결과가 관찰되었다.
시뮬레이션으로부터 클러스터의 직경의 분포가 결정되었다. 여기에 정의된 바와 같이, 클러스터 직경은 클러스터의 임의의 두 경계 정점 사이의 최대 거리이다. 도 25는 논리적 큐비트들에 대한 상이한 에러율들 및 코드 거리에 대한 평균 클러스터 직경을 나타내는 도표(2500)를 도시한다. 평균 클러스터 직경은 낮다. 이 결과는 하드웨어에서 각 클러스터에 대해 경계 목록을 유지 관리하는 데 발생하는 저장 비용을 제거하는 사용되는데, 이는 원래 유니온-파인드 알고리즘에 사용되는 피처이다. 이것은 Gr-Gen 모듈의 하드웨어 비용을 줄이다. 클러스터 직경이 작아질 확률은 에러율이 감소함에 따라 증가한다.
Gr-Gen 모듈과 DFS 엔진에 의해 사용되는 스패닝 트리 메모리(STM)는 저장 비용의 대부분을 차지한다. 도 26은 주어진 코드 거리(d) 및 논리적 큐비트(N)의 수에 대해 스패닝 트리 메모리(STM)에 필요한 총 메모리 용량을 나타내는 도표(2600)를 도시한다. 여기에 도시된 결과는 d개의 라운드의 측정을 사용하여 구성된 3D 그래프에 대한 것이다. 도표(2600)는 예를 들어, 1000과 같은 큰 수의 논리적 큐비트의 경우에도 X 및 Z 신드롬을 모두 디코딩하는 데 필요한 총 메모리가 매우 큰 코드 거리(d) 및 d개의 라운드의 측정에 대해 10MB 미만임을 도시한다. 디코더가 d개의 라운드의 측정을 고려할 필요가 없는 경우(미래에 완벽한 측정이 가능하다고 가정함), 필요한 총 메모리 용량은 d의 인수만큼 감소된다.
루트 테이블 및 크기 테이블에 가능한 최대 항목 수는 d(코드 거리)개의 라운드의 신드롬 측정에 대해 신드롬 비트의 총 수(2d(d-l)와 동일함)이다. 각 루트 테이블 항목은 log22d2(d-l)개의 비트를 사용하여 고유하게 식별될 수 있는 루트를 포함한다. 유사하게, 클러스터의 실현 가능한 최대 크기는 모든 신드롬 비트를 포함한다. 따라서 루트 테이블 및 크기 테이블의 총 크기는 각 논리적 큐비트에 대해 2d2(d-l)log22d2(d-l)개의 비트이다.
스택의 크기는 몬테카를로 시뮬레이션으로부터 클러스터 내 에지의 최대 수를 분석하여 결정될 수 있다. 클러스터 내의 에지의 수는 포아송 분포를 따른다. 도 27은 코드 거리 d = 11 및 물리적 에러율 p = 10-3에 대한 이러한 분포를 나타내는 예시적인 도표(2700)를 도시한다. 따라서 스택 크기는 최대 에지 수의 절반으로 설계될 수 있다. 도 28은 상이한 코드 거리들 및 에러율들에 대해 클러스터 내의 에지의 평균 수를 도시하는 도표(2800)이다. 각 스택은 두 개의 정점(log24d2(d-l)개의 비트), 성장 방향(2비트), 및 1비트의 신드롬을 저장한다. 각 DFS 엔진이 파이프 라이닝을 위한 2개의 스택을 포함한다는 것은 주목할 만하다. 클러스터의 크기가 각 스택이 보유할 수 있는 것보다 크면, 오버플로 비트가 설정될 수 있고 사용 가능한 경우 대체 스택이 사용될 수 있다.
도 29는 Gr-Gen 및 DFS 엔진에서의 실행 시간들 간의 상관관계를 나타내는 도표(2900)를 도시한다. 이는 디코딩하는 동안 Gr-Gen 유닛에서 더 많은 시간이 소비됨을 의미한다. 이 데이터는 여기에 설명된 디코더 블록 내에서 공유될 자원의 수를 선택하는 데 사용된다. 도 30은 11의 코드 거리(d) 및 0.5xl0-3의 에러율(p)에 대해 단일 디코더 블록(예컨대, 도 20에 도시된 바와 같음)을 위한 실행 시간의 분포를 나타내는 도표(3000)를 도시한다. 음영 영역은 타임아웃 장애의 확률을 증가시킬 수 있는 이벤트를 나타낸다. 구현된 자원 공유를 사용해, 타임아웃 장애 확률(ptof)은 논리적 에러율의 확률인 10-8보다 낮다. L개의 논리적 큐비트의 경우, 이 아키텍처에서, 사용된 Gr-Gen 모듈, DFS 엔진, 및 Corr 엔진의 수는 각각 L, L/2 및 L/2이다. 따라서 Gr-Gen 모듈, DFS 엔진 및 Corr 엔진의 총 수는 각각 2배, 4배 및 4배만큼 감소된다.
에러 정정은 양자 컴퓨터와 연관된 고전적 계산의 필수적인 부분이다. 에러 디코딩 알고리즘은 더 높은 에러 정정 기능(문턱값)을 달성하도록 설계되었다. 여기에서 유니온-파인드 디코더의 하드웨어 구현의 마이크로 아키텍처는 77K에서의 동작을 위해 CMOS를 사용하여 개시된다. 4K 내지 77K 링크의 대역폭 요건을 충족하기 위해 신드롬 압축이 실현 가능하다. 상이한 압축 방식들은 상이한 노이즈 체제들에서 상이하게 동작하며, 희소 데이터 표현은 일반적으로 더 낮은 에러율과 더 큰 코드 거리에서 더 잘 동작한다. 개시된 마이크로 아키텍처는 디코더가 최대 수천 개의 논리적 큐비트까지 확장해야 한다는 점을 염두에 두고 설계된다. 아키텍처는 3개의 파이프라인 스테이지를 포함하며 고성능 및 처리량과 낮은 하드웨어 복잡성을 위해 조정된다. 실용적인 내결함성 양자 계산을 위해 더 큰 수의 논리적 큐비트에 맞게 설계가 확장될 수 있다. 각 파이프라인 스테이지에서 소요되는 시간이 다르므로 각 스테이지의 활용도가 다르다. 이를 고려하여 다수의 논리적 큐비트에 걸쳐 자원 공유에 의존하는 아키텍처가 개시된다. 이러한 자원 공유는 논리적 에러율이 영향을 받지 않고 디코딩 자원 부족으로 인한 에러 디코딩의 불가능으로 인한 시스템 장애율이 최소화되도록 활성화(enable)된다.
일부 실시예에서, 본 명세서에 설명된 방법 및 프로세스는 하나 이상의 컴퓨팅 디바이스의 컴퓨팅 시스템과 관련될 수 있다. 구체적으로, 그러한 방법 및 프로세스는 컴퓨터 애플리케이션 프로그램 또는 서비스, 애플리케이션 프로그램 인터페이스(application-programming interface; API), 라이브러리 및/또는 다른 컴퓨터 프로그램 제품으로서 구현될 수 있다.
도 31은 앞서 기술된 방법 및 프로세스 중 하나 이상을 수행할 수 있는 컴퓨팅 시스템(3100)의 비제한적인 실시예를 개략적으로 도시한다. 컴퓨팅 시스템(3100)은 간략화된 형태로 도시되어 있다. 컴퓨팅 시스템(3100)은 위에서 설명되고 도 1에 예시된 호스트 컴퓨터 디바이스를 구현할 수 있다. 컴퓨팅 시스템(3100)은 하나 이상의 개인용 컴퓨터, 서버 컴퓨터, 태블릿 컴퓨터, 홈 엔터테인먼트 컴퓨터, 네트워크 컴퓨팅 디바이스, 게임 디바이스, 모바일 컴퓨팅 디바이스, 이동 통신 디바이스(예컨대, 스마트폰), 및/또는 다른 컴퓨팅 디바이스, 예를 들어, 스마트 손목시계 및 머리에 장착된 증강 현실 디바이스와 같은 웨어러블 컴퓨팅 디바이스의 형태를 취할 수 있다.
컴퓨팅 시스템(3100)은 논리 프로세서(3102), 휘발성 메모리(3104), 및 비휘발성 저장 디바이스(3106)를 포함한다. 컴퓨팅 시스템(3100)은, 옵션 사항으로(optionally), 디스플레이 서브시스템(3108), 입력 서브시스템(3110), 통신 서브시스템(3112), 및/또는 도 31에서 도시되지 않는 다른 컴포넌트를 포함할 수도 있다.
논리 프로세서(3102)는 명령어를 실행하도록 구성된 하나 이상의 물리적 디바이스를 포함한다. 예를 들어, 논리 프로세서는 하나 이상의 애플리케이션, 프로그램, 루틴, 라이브러리, 객체, 컴포넌트, 데이터 구조, 또는 다른 논리적 구성(logical construct)의 일부인 명령어를 실행하도록 구성될 수 있다. 그러한 명령어는, 작업을 수행하도록, 데이터 타입을 구현하도록, 하나 이상의 컴포넌트의 상태를 변환하도록, 기술적 효과를 달성하도록, 또는 다르게는 소망되는 결과에 도달하도록 구현될 수도 있다.
논리 프로세서는 소프트웨어 명령어를 실행하도록 구성된 하나 이상의 물리적 프로세서(하드웨어)를 포함할 수 있다. 추가적으로 또는 대안적으로, 논리 프로세서는 하드웨어 구현 논리 또는 펌웨어 명령어를 실행하도록 구성된 하나 이상의 하드웨어 논리 회로 또는 펌웨어 디바이스를 포함할 수 있다. 논리 프로세서들(3102) 중의 프로세서는 단일의 코어 또는 다중 코어일 수도 있고, 이 프로세서 상에서 실행되는 명령어는 순차, 병렬 및/또는 분산 프로세싱을 위해 구성될 수 있다. 논리 프로세서의 개개의 컴포넌트는, 선택적으로, 원격지에 위치해 있을 수 있고 그리고/또는 협조 프로세싱(coordinated processing)을 하도록 구성될 수 있는, 2개 이상의 개별 디바이스 간에 분산되어 있을 수 있다. 논리 프로세서의 양상은 가상화되고 클라우드 컴퓨팅 구성으로 구성된, 원격적으로 액세스 가능한 네트워크로 접속된 컴퓨팅 디바이스에 의해 실행될 수 있다. 그러한 경우, 이러한 가상화된 양상은 다양한 상이한 머신들의 상이한 물리적 논리 프로세서들에서 실행된다는 점을 이해할 수 있을 것이다.
비휘발성 저장 디바이스(3106)는 본원에 기술되는 방법 및 프로세스를 구현하기 위해 논리 프로세서에 의해 실행 가능한 명령어를 보유하도록 구성된 하나 이상의 물리적 디바이스를 포함한다. 이러한 방법 및 프로세스가 구현될 때, 비휘발성 저장 디바이스(3106)의 상태는 예를 들어, 상이한 데이터를 보유하도록 변환될 수 있다.
비휘발성 저장 디바이스(3106)는 착탈식 및/또는 내장형 물리적 디바이스를 포함할 수 있다. 비휘발성 저장 디바이스(3106)는 광 메모리(예컨대, CD, DVD, HD-DVD, 블루레이 디스크 등), 반도체 메모리(예컨대, ROM, EPROM, EEPROM, 플래시 메모리 등), 및/또는 자기 메모리(예컨대, 하드 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, MRAM 등), 또는 대량 저장 디바이스 기술을 포함할 수 있다. 비휘발성 저장 디바이스(3106)는 비휘발성, 동적, 정적, 판독/기록, 판독 전용, 순차 액세스, 위치 주소화 가능(location-addressable), 파일 주소화 가능(file-addressable), 및/또는 내용 주소화 가능(content-addressable) 디바이스를 포함할 수 있다. 비휘발성 저장 디바이스(3106)는 비휘발성 저장 디바이스(3106)에 대해 전력이 차단된 경우에도 명령어를 보유하도록 구성된다는 것을 이해할 것이다.
휘발성 메모리(3104)는 랜덤 액세스 메모리를 포함하는 물리적 디바이스를 포함할 수 있다. 휘발성 메모리(3104)는 일반적으로 소프트웨어 명령어의 프로세싱 동안 정보를 일시적으로 저장하기 위해 논리 프로세서(3102)에 의해 활용된다. 휘발성 메모리(3104)는 일반적으로 휘발성 메모리(3104)에 대해 전력이 차단될 때 명령어를 계속 저장하지 않는다는 것을 이해할 것이다.
논리 프로세서(3102), 휘발성 메모리(3104), 및 비휘발성 저장 디바이스(3106)의 양상은 하나 이상의 하드웨어-논리 컴포넌트로 함께 통합될 수 있다. 그러한 하드웨어 논리 컴포넌트는, 예를 들어, 현장 프로그래밍 가능 게이트 어레이(field-programmable gate array; FPGA), 프로그램 및 애플리케이션 특유의 집적 회로(program- and application-specific integrated circuit; PASIC/ASIC), 프로그램 및 애플리케이션 특유의 표준 제품(program-and application-specific standard product; PSSP/ASSP), 시스템 온 칩(system-on-a-chip; SOC), 및 복합 프로그래밍 가능 논리 디바이스(complex programmable logic device; CPLD)를 포함할 수 있다.
디스플레이 서브시스템(3108)은, 포함되는 경우, 비휘발성 저장 디바이스(3106)에 의해 보유되는 데이터의 시각적 표현을 제시하기 위해 사용될 수 있다. 이 시각적 표현은 그래픽 사용자 인터페이스(graphical user interface; GUI)의 형태를 취할 수 있다. 본 개시에서 설명되는 방법 및 프로세스가 비휘발성 저장 디바이스에 의해 보유되는 데이터를 변경하고, 따라서 비휘발성 저장 디바이스의 상태를 변환할 때, 디스플레이 서브시스템(3108)의 상태는 기저의 데이터(underlying data)에서의 변화를 시각적으로 나타내도록 마찬가지로 변환될 수 있다. 디스플레이 서브시스템(3108)은 실질적으로 임의의 유형의 기술을 활용하는 하나 이상의 디스플레이 디바이스를 포함할 수 있다. 그러한 디스플레이 디바이스는 공유된 엔클로저(shared enclosure)에서 논리 프로세서(3102), 휘발성 메모리(3104), 및/또는 비휘발성 저장 디바이스(3106)와 결합될 수 있거나, 또는 그러한 디스플레이 디바이스는 주변 디스플레이 디바이스일 수 있다.
입력 서브시스템(3110)은, 포함되는 경우, 예를 들어, 키보드, 마우스, 터치 스크린, 또는 게임 제어기와 같은 하나 이상의 사용자 입력 디바이스를 포함할 수 있거나 또는 그 사용자 입력 디바이스와 인터페이싱할 수 있다. 일부 실시예에서, 입력 서브시스템은 선택된 NUI(natural user input) 컴포넌트류를 포함하거나 그것과 인터페이싱할 수 있다. 그러한 컴포넌트류는 통합될 수도 있거나 또는 주변 장치일 수 있고, 입력 동작의 변환 및/또는 프로세싱은 온보드로(on-board) 또는 오프보드로(off-board) 처리될 수 있다. 예시적인 NUI 컴포넌트류는, 스피치 및/또는 보이스 인식을 위한 마이크; 머신 비전(machine vision) 및/또는 제스쳐 인식을 위한 적외선, 컬러, 입체, 및/또는 깊이 카메라; 모션 검출 및/또는 의도 인식을 위한 헤드 트래커(head tracker), 아이 트래커(eye tracker), 가속도계, 및/또는 자이로스코프; 그리고 뇌 활동을 평가하기 위한 전기장 감지 컴포넌트류; 및/또는 임의의 다른 적절한 센서를 포함할 수 있다.
통신 서브시스템(3112)이 포함될 때, 통신 서브시스템(3112)은 여기에 설명된 다양한 컴퓨팅 디바이스를 서로, 그리고 다른 디바이스와 통신 가능하게 결합하도록 구성될 수 있다. 통신 서브시스템(3112)은, 하나 이상의 상이한 통신 프로토콜들과 호환 가능한 유선 및/또는 무선 통신 디바이스를 포함할 수 있다. 비제한적인 예로서, 통신 서브시스템은 무선 전화 네트워크, 또는 예를 들어, Wi-Fi 접속을 통한 HDMI와 같은 유선 또는 무선 근거리 통신망 또는 광역 통신망을 통한 통신을 위해 구성될 수 있다. 일부 실시예들에서, 통신 서브 시스템은 컴퓨팅 시스템(3100)이 예를 들어, 인터넷과 같은 네트워크를 통해 다른 디바이스로 그리고/또는 다른 디바이스로부터 메시지를 송신 및/또는 수신하게 할 수 있다.
한 예에서, 양자 컴퓨팅 디바이스는, 복수의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터; 복수의 논리적 큐비트 중 각각의 논리적 큐비트에 결합된 압축 엔진 - 각각의 압축 엔진은 신드롬 데이터를 압축하도록 구성됨 - ; 및 각각의 압축 엔진에 결합된 압축 해제 엔진을 포함하고, 각각의 압축 해제 엔진은, 압축된 신드롬 데이터를 수신하도록; 수신된 압축된 신드롬 데이터를 압축 해제하도록; 그리고 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하도록 구성된다. 이러한 예 또는 임의의 다른 예에서, 압축 엔진 중 적어도 하나는 추가적으로 또는 대안적으로 동적 제로 압축을 사용하여 신드롬 데이터를 압축하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 압축 엔진 중 적어도 하나는 추가적으로 또는 대안적으로 희소 표현을 사용하여 신드롬 데이터를 압축하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 압축 엔진 중 적어도 하나는 추가적으로 또는 대안적으로 기하 구조 기반 압축을 사용하여 신드롬 데이터를 압축하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 복수의 논리적 큐비트는 추가적으로 또는 대안적으로 2개 이상의 섹터로 분할되고, 하나 이상의 섹터 중 제1 섹터는 제1 유형의 압축을 사용하여 신드롬 데이터를 압축하도록 구성된 제1 유형의 압축 엔진에 결합되며, 하나 이상의 섹터 중 제2 섹터는 제2 유형의 압축을 사용하여 신드롬 데이터를 압축하도록 구성된 제2 유형의 압축 엔진에 결합된다. 임의의 이전 예 또는 임의의 다른 예에서, 압축 엔진은 추가적으로 또는 대안적으로 양자 레지스터보다 높은 온도에서 동작하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 압축 해제 엔진 및 디코더 블록은 추가적으로 또는 대안적으로 압축 엔진보다 높은 온도에서 동작하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 각각의 압축 해제 엔진은 추가적으로 또는 대안적으로 압축 해제된 신드롬 데이터를 디코더 블록의 그래프 생성기 모듈로 라우팅한다. 임의의 이전 예 또는 임의의 다른 예에서, 압축 해제된 신드롬 데이터는 추가적으로 또는 대안적으로 적어도 X 신드롬 데이터 및 Z 신드롬 데이터를 포함한다. 임의의 이전 예 또는 임의의 다른 예에서, 복수의 논리적 큐비트는 추가적으로 또는 대안적으로 l개의 논리적 큐비트를 포함하고, 양자 컴퓨팅 디바이스는 d개의 디코더 블록의 세트를 포함하며, d < l이다.
다른 예에서, 양자 컴퓨팅 디바이스를 위한 방법은, l개의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터로부터 신드롬 데이터를 생성하는 단계 - l은 양의 정수임 - ; 및 각각의 논리적 큐비트에 대해: 생성된 신드롬 데이터를 압축 엔진으로 라우팅하는 단계 - 압축 엔진은 신드롬 데이터를 압축하도록 구성됨 - ; 압축된 신드롬 데이터를 압축 해제 엔진으로 라우팅하는 단계로서, 압축 해제 엔진은, 압축된 신드롬 데이터를 수신하도록; 그리고 수신된 압축된 신드롬 데이터를 압축 해제하도록 구성되는 것인, 라우팅하는 단계; 및 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하는 단계를 포함한다. 이러한 예 또는 임의의 다른 예에서, 압축 엔진 중 적어도 하나는 추가적으로 또는 대안적으로 동적 제로 압축을 사용하여 신드롬 데이터를 압축하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 압축 엔진 중 적어도 하나는 추가적으로 또는 대안적으로 희소 표현을 사용하여 신드롬 데이터를 압축하도록 구성된다. 임의의 이전 예 또는 임의의 다른 예에서, 방법은 추가적으로 또는 대안적으로 양자 레지스터보다 높은 온도에서 압축 엔진을 동작시키는 단계를 포함한다. 임의의 이전 예 또는 임의의 다른 예에서, 방법은 추가적으로 또는 대안적으로 압축 엔진보다 높은 온도에서 압축 해제 엔진 및 디코더 블록을 동작시키는 단계를 포함한다. 임의의 이전 예 또는 임의의 다른 예에서, 각각의 압축 해제 엔진은 추가적으로 또는 대안적으로 압축 해제된 신드롬 데이터를 디코더 블록의 그래프 생성기 모듈로 라우팅한다. 임의의 이전 예 또는 임의의 다른 예에서, 양자 컴퓨팅 디바이스는 d개의 디코더 블록의 세트를 포함하고, d < 2*l이다.
또 다른 예에서, 양자 컴퓨팅 디바이스를 위한 방법은, l개의 논리적 큐비트를 포함하는 적어도 하나의 표면 코드 격자로부터 신드롬 데이터를 생성하는 단계 - l은 양의 정수이고, 표면 코드 격자는 격자 기하 구조에 기초하여 2개 이상의 영역으로 분할됨; 및 각각의 논리적 큐비트에 대해: 생성된 신드롬 데이터를 압축 엔진으로 라우팅하는 단계 - 압축 엔진은 기하 구조 기반 압축을 사용하여 신드롬 데이터를 압축하도록 구성됨 - ; 압축된 신드롬 데이터를 압축 해제 엔진으로 라우팅하는 단계로서, 압축 해제 엔진은, 압축된 신드롬 데이터를 수신하도록; 그리고 수신된 압축된 신드롬 데이터를 압축 해제하도록 구성되는 것인, 라우팅하는 단계; 및 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하는 단계를 포함한다. 이러한 예 또는 임의의 다른 예에서, 기하 구조 기반 압축을 사용하여 신드롬 데이터를 압축하는 것은 추가적으로 또는 대안적으로, 표면 코드 격자의 2개 이상의 영역 중 각각의 영역에 대해 제로 표시자 비트를 사용하여 신드롬 데이터를 압축하는 단계; 및 비제로 영역으로부터만 신드롬 데이터를 송신하는 단계를 포함한다. 이러한 예 또는 임의의 다른 예에서, 영역의 수는 추가적으로 또는 대안적으로 단순 신드롬을 포함하는 데이터 블록의 예상 수에 기초하여 결정된다.
본 개시에서 설명되는 구성 및/또는 접근법은 본질적으로 예시적이다는 것, 및 다수의 변형예가 가능하기 때문에, 이들 특정한 실시예 또는 예시는 제한적인 의미로 간주되지 않아야 한다는 것이 이해될 것이다. 본 개시에서 기술되는 구체적인 루틴 또는 방법은 임의의 수의 프로세싱 전략들 중 하나 이상을 나타낼 수 있다. 그에 따라, 예시된 그리고/또는 기술된 다양한 동작이 예시된 그리고/또는 기술된 순서로, 다른 순서로, 병렬로 수행될 수 있거나, 생략될 수 있다. 마찬가지로, 앞서 기술된 프로세스의 순서가 변경될 수 있다.
본 개시의 요지는, 본 개시에서 개시되는 다양한 프로세스, 시스템 및 구성, 및 다른 피처, 기능, 동작, 및/또는 특성의 모든 신규의 그리고 자명하지 않은 조합 및 부조합뿐만 아니라, 이들의 임의의 그리고 모든 등가물을 포함한다.

Claims (15)

  1. 양자 컴퓨팅 디바이스에 있어서,
    복수의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터;
    상기 복수의 논리적 큐비트 중 각각의 논리적 큐비트에 결합된 압축 엔진 - 각각의 압축 엔진은 신드롬 데이터를 압축하도록 구성됨 - ; 및
    각각의 압축 엔진에 결합된 압축 해제 엔진
    을 포함하고, 상기 각각의 압축 해제 엔진은,
    압축된 신드롬 데이터를 수신하도록;
    상기 수신된 압축된 신드롬 데이터를 압축 해제하도록; 그리고
    상기 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하도록
    구성되는 것인, 양자 컴퓨팅 디바이스.
  2. 제1항에 있어서, 상기 압축 엔진 중 적어도 하나는 동적 제로 압축을 사용하여 상기 신드롬 데이터를 압축하도록 구성되는 것인, 양자 컴퓨팅 디바이스.
  3. 제1항에 있어서, 상기 압축 엔진 중 적어도 하나는 희소 표현(sparse representation)을 사용하여 상기 신드롬 데이터를 압축하도록 구성되는 것인, 양자 컴퓨팅 디바이스.
  4. 제1항에 있어서, 상기 압축 엔진 중 적어도 하나는 기하 구조 기반 압축(geometry-based compression)을 사용하여 상기 신드롬 데이터를 압축하도록 구성되는 것인, 양자 컴퓨팅 디바이스.
  5. 제1항에 있어서, 상기 복수의 논리적 큐비트는 2개 이상의 섹터로 분할되고, 상기 하나 이상의 섹터 중 제1 섹터는 제1 유형의 압축을 사용하여 신드롬 데이터를 압축하도록 구성된 제1 유형의 압축 엔진에 결합되며, 상기 하나 이상의 섹터 중 제2 섹터는 제2 유형의 압축을 사용하여 신드롬 데이터를 압축하도록 구성된 제2 유형의 압축 엔진에 결합되는 것인, 양자 컴퓨팅 디바이스.
  6. 제1항에 있어서, 상기 압축 엔진은 상기 양자 레지스터보다 높은 온도에서 동작하도록 구성되는 것인, 양자 컴퓨팅 디바이스.
  7. 제6항에 있어서, 상기 압축 해제 엔진 및 상기 디코더 블록은 상기 압축 엔진보다 높은 온도에서 동작하도록 구성되는 것인, 양자 컴퓨팅 디바이스.
  8. 제1항에 있어서, 각각의 압축 해제 엔진은 압축 해제된 신드롬 데이터를 상기 디코더 블록의 그래프 생성기 모듈로 라우팅하는 것인, 양자 컴퓨팅 디바이스.
  9. 제1항에 있어서, 상기 압축 해제된 신드롬 데이터는 적어도 X 신드롬 데이터 및 Z 신드롬 데이터를 포함하는 것인, 양자 컴퓨팅 디바이스.
  10. 제1항에 있어서, 상기 복수의 논리적 큐비트는 l개의 논리적 큐비트를 포함하고, 상기 양자 컴퓨팅 디바이스는 d개의 디코더 블록의 세트를 포함하며, d < l인 것인, 양자 컴퓨팅 디바이스.
  11. 양자 컴퓨팅 디바이스를 위한 방법에 있어서,
    l개의 논리적 큐비트를 포함하는 적어도 하나의 양자 레지스터로부터 신드롬 데이터를 생성하는 단계 - l은 양의 정수임 - ; 및
    각각의 논리적 큐비트에 대해:
    상기 생성된 신드롬 데이터를 압축 엔진으로 라우팅하는 단계 - 상기 압축 엔진은 신드롬 데이터를 압축하도록 구성됨 - ; 상기 압축된 신드롬 데이터를 압축 해제 엔진으로 라우팅하는 단계로서, 상기 압축 해제 엔진은,
    압축된 신드롬 데이터를 수신하도록; 그리고
    상기 수신된 압축된 신드롬 데이터를 압축 해제하도록 구성되는 것인, 상기 라우팅하는 단계; 및
    상기 압축 해제된 신드롬 데이터를 디코더 블록으로 라우팅하는 단계
    를 포함하는, 양자 컴퓨팅 디바이스를 위한 방법.
  12. 제11항에 있어서, 상기 압축 엔진 중 적어도 하나는 동적 제로 압축을 사용하여 상기 신드롬 데이터를 압축하도록 구성되는 것인, 방법.
  13. 제11항에 있어서, 상기 압축 엔진 중 적어도 하나는 희소 표현을 사용하여 상기 신드롬 데이터를 압축하도록 구성되는 것인, 방법
  14. 제11항에 있어서, 각각의 압축 해제 엔진은 압축 해제된 신드롬 데이터를 상기 디코더 블록의 그래프 생성기 모듈로 라우팅하는 것인, 방법.
  15. 제11항에 있어서, 상기 양자 컴퓨팅 디바이스는 d개의 디코더 블록의 세트를 포함하고, d < 2*l인 것인, 방법.
KR1020227004757A 2019-08-06 2020-06-09 양자 컴퓨팅 디바이스를 위한 신드롬 데이터 압축 KR20220038374A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962883514P 2019-08-06 2019-08-06
US62/883,514 2019-08-06
US16/687,517 2019-11-18
US16/687,517 US11410070B2 (en) 2019-08-06 2019-11-18 Syndrome data compression for quantum computing devices
PCT/US2020/036834 WO2021025762A1 (en) 2019-08-06 2020-06-09 Syndrome data compression for quantum computing devices

Publications (1)

Publication Number Publication Date
KR20220038374A true KR20220038374A (ko) 2022-03-28

Family

ID=74499273

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227004752A KR20220040460A (ko) 2019-08-06 2020-06-09 양자 컴퓨팅 디바이스를 위한 파이프라인형 하드웨어 디코더
KR1020227004764A KR20220040461A (ko) 2019-08-06 2020-06-09 디코더를 양자 레지스터에 결합하기 위한 시스템
KR1020227004757A KR20220038374A (ko) 2019-08-06 2020-06-09 양자 컴퓨팅 디바이스를 위한 신드롬 데이터 압축

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020227004752A KR20220040460A (ko) 2019-08-06 2020-06-09 양자 컴퓨팅 디바이스를 위한 파이프라인형 하드웨어 디코더
KR1020227004764A KR20220040461A (ko) 2019-08-06 2020-06-09 디코더를 양자 레지스터에 결합하기 위한 시스템

Country Status (7)

Country Link
US (5) US20210042650A1 (ko)
EP (3) EP4010853A1 (ko)
JP (3) JP7514297B2 (ko)
KR (3) KR20220040460A (ko)
CN (3) CN114207633A (ko)
AU (3) AU2020326410A1 (ko)
WO (3) WO2021025764A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230244663A1 (en) * 2022-02-03 2023-08-03 Bank Of America Corporation System for implementing a data driven channel for query executions using quantum computing

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11133823B2 (en) * 2019-05-16 2021-09-28 Red Hat, Inc. Quantum compression service using superdense encoding
US20210042650A1 (en) 2019-08-06 2021-02-11 Microsoft Technology Licensing, Llc Pipelined hardware decoder for quantum computing devices
US11386348B2 (en) * 2020-06-02 2022-07-12 International Business Machines Corporation Dynamic quantum data output post-processing
US20220083887A1 (en) * 2020-09-11 2022-03-17 International Business Machines Corporation Quantum state measurement logic facilitating a quantum state measurement backend process
US11741279B2 (en) 2020-11-13 2023-08-29 Amazon Technologies, Inc. Toffoli gate distillation from Toffoli magic states
US11468219B2 (en) * 2020-11-13 2022-10-11 Amazon Technologies, Inc. Toffoli gate preparation for a quantum hardware system comprising hybrid acoustic-electrical qubits
KR102361858B1 (ko) * 2020-11-17 2022-02-14 고려대학교 산학협력단 편향된 오류 기반 양자 오류 정정 부호 최적화 방법 및 장치
US11907808B2 (en) * 2021-09-01 2024-02-20 Intel Corporation Apparatus and method for quantum error correction without measurement or active feedback
US11803441B2 (en) * 2021-09-30 2023-10-31 International Business Machines Corporation Calibrated decoders for implementations of quantum codes
US11875228B2 (en) * 2022-01-27 2024-01-16 Red Hat, Inc. Classifying quantum errors
US20240062092A1 (en) * 2022-07-29 2024-02-22 Microsoft Technology Licensing, Llc Fault correction for clifford circuits
KR20240018909A (ko) 2022-08-03 2024-02-14 경희대학교 산학협력단 양자 정보 통합 처리시스템에서의 양자 상태 분류 장치 및 방법
CN115577788A (zh) * 2022-09-28 2023-01-06 北京百度网讯科技有限公司 量子熵确定方法、装置、设备及存储介质
WO2024069910A1 (ja) * 2022-09-30 2024-04-04 富士通株式会社 分子シミュレーションプログラム、分子シミュレーション方法および情報処理装置
CN115983393B (zh) * 2022-12-30 2024-05-24 北京百度网讯科技有限公司 量子电路任务超时原因确定方法、装置、设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768297A (en) * 1995-10-26 1998-06-16 Lucent Technologies Inc. Method for reducing decoherence in quantum computer memory
US20030093451A1 (en) * 2001-09-21 2003-05-15 International Business Machines Corporation Reversible arithmetic coding for quantum data compression
US9762262B2 (en) 2014-06-18 2017-09-12 Alcatel Lucent Hardware-efficient syndrome extraction for entangled quantum states
US9748976B2 (en) * 2015-05-22 2017-08-29 Northrop Grumman Systems Corporation Fault tolerant syndrome extraction and decoding in Bacon-Shor quantum error correction
EP3414583A4 (en) * 2016-02-12 2019-10-30 Yale University METHOD FOR CONTROLLING QUANTUM SYSTEMS AND RELATED SYSTEMS AND METHODS
US20190164959A1 (en) * 2016-09-29 2019-05-30 Intel Corporation On-chip control logic for qubits
EP3416332B1 (en) * 2017-06-13 2020-04-08 Kabushiki Kaisha Toshiba Quantum communication device, quantum communication system and quantum communication method
WO2019002934A1 (en) * 2017-06-30 2019-01-03 PsiQuantum Corp. METHODS AND DEVICES FOR DECODING QUANTUM STATES
CN111417966B (zh) * 2017-09-12 2024-04-02 谷歌有限责任公司 量子误差校正
WO2019173651A1 (en) * 2018-03-07 2019-09-12 PsiQuantum Corp. Methods and devices for obtaining quantum cluster states with high fault tolerance
US10985779B2 (en) * 2018-08-27 2021-04-20 Polaran Haberlesme Teknolojileri Anonim Sirketi Method and system for decoding data using compressed channel output information
US11531922B2 (en) * 2018-09-27 2022-12-20 Intel Corporation Apparatus and method for scalable qubit addressing
GB2592796B (en) * 2018-10-12 2023-02-15 Lucarelli Dennis System and methods for quantum post-selection using logical parity encoding and decoding
US20210042650A1 (en) 2019-08-06 2021-02-11 Microsoft Technology Licensing, Llc Pipelined hardware decoder for quantum computing devices
KR20220143858A (ko) * 2020-01-29 2022-10-25 사이퀀텀, 코퍼레이션 융합 기반 양자 컴퓨팅

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230244663A1 (en) * 2022-02-03 2023-08-03 Bank Of America Corporation System for implementing a data driven channel for query executions using quantum computing
US11809426B2 (en) * 2022-02-03 2023-11-07 Bank Of America Corporation System for implementing a data driven channel for query executions using quantum computing

Also Published As

Publication number Publication date
WO2021025764A1 (en) 2021-02-11
CN114207633A (zh) 2022-03-18
EP4010855A1 (en) 2022-06-15
US20210042651A1 (en) 2021-02-11
AU2020324339A1 (en) 2022-03-10
US20220385306A1 (en) 2022-12-01
AU2020324864A1 (en) 2022-03-10
WO2021025763A1 (en) 2021-02-11
AU2020326410A1 (en) 2022-03-10
US20230359912A1 (en) 2023-11-09
EP4010853A1 (en) 2022-06-15
CN114207632A (zh) 2022-03-18
US11755941B2 (en) 2023-09-12
JP2022543085A (ja) 2022-10-07
KR20220040460A (ko) 2022-03-30
JP2022543384A (ja) 2022-10-12
KR20220040461A (ko) 2022-03-30
JP2022543232A (ja) 2022-10-11
JP7514297B2 (ja) 2024-07-10
US11410070B2 (en) 2022-08-09
US20210042650A1 (en) 2021-02-11
WO2021025762A1 (en) 2021-02-11
US20210042652A1 (en) 2021-02-11
EP4010854A1 (en) 2022-06-15
CN114223005A (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
JP7514297B2 (ja) 量子計算装置のためのパイプライン式ハードウェア復号器
Gyongyosi et al. A survey on quantum computing technology
Suzuki et al. Quantum error mitigation as a universal error reduction technique: Applications from the NISQ to the fault-tolerant quantum computing eras
Terhal Quantum error correction for quantum memories
US20190228333A1 (en) Efficient reduction of resources for the simulation of fermionic hamiltonians on quantum hardware
KR20210134363A (ko) 신경망 기반 양자 에러 정정 복호화 방법 및 장치, 칩
Das et al. A scalable decoder micro-architecture for fault-tolerant quantum computing
Kari Reversible cellular automata: from fundamental classical results to recent developments
Obenland et al. A parallel quantum computer simulator
Wang A comparative study of universal quantum computing models: Toward a physical unification
CN117980923A (zh) 用于实现量子代码的校准解码器
Fujisaki et al. Practical and scalable decoder for topological quantum error correction with an Ising machine
Eldar Robust quantum entanglement at (nearly) room temperature
KR20230133883A (ko) 재구성 가능한 큐비트 얽힘 시스템
Stephen et al. Nonlocal Finite-Depth Circuits for Constructing Symmetry-Protected Topological States and Quantum Cellular Automata
Chien et al. Simulating quantum error mitigation in fermionic encodings
Qureshi et al. Quantum Computing and the Design of the Ultimate Accelerator
Paetznick Resource optimization for fault-tolerant quantum computing
WO2024109128A1 (zh) 基于神经网络的量子纠错解码方法、装置、设备及芯片
Koh et al. Truncated octree and its applications
Fernandez Characterization and implementation of robust quantum information processing
WO2024025673A1 (en) Construction of lookup decoders for stabilizer codes
CN116964596A (zh) 可重构量子比特纠缠系统