KR100643283B1 - 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치 - Google Patents

양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치 Download PDF

Info

Publication number
KR100643283B1
KR100643283B1 KR1020040081732A KR20040081732A KR100643283B1 KR 100643283 B1 KR100643283 B1 KR 100643283B1 KR 1020040081732 A KR1020040081732 A KR 1020040081732A KR 20040081732 A KR20040081732 A KR 20040081732A KR 100643283 B1 KR100643283 B1 KR 100643283B1
Authority
KR
South Korea
Prior art keywords
quantum
data
coprocessor
instruction
processing unit
Prior art date
Application number
KR1020040081732A
Other languages
English (en)
Other versions
KR20060032777A (ko
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 삼성전자주식회사
Priority to KR1020040081732A priority Critical patent/KR100643283B1/ko
Priority to EP05255950A priority patent/EP1647924A3/en
Priority to US11/247,212 priority patent/US20060101236A1/en
Publication of KR20060032777A publication Critical patent/KR20060032777A/ko
Application granted granted Critical
Publication of KR100643283B1 publication Critical patent/KR100643283B1/ko

Links

Images

Classifications

    • 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • 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

Abstract

양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법은 소정의 작업을 수행하기 위한 명령어와 데이터를 수신하는 단계, 상기 수신한 명령어가 양자 연산을 요청하는 명령어인 경우 상기 수신한 명령어와 데이터를 양자 코프로세서가 수신할 수 있는 형태의 신호로 변환하는 단계, 상기 변환 신호를 상기 양자 코프로세서에 송신하는 단계, 상기 양자 코프로세서의 처리 결과를 상기 양자 코프로세서로부터 수신하는 단계 및 상기 수신한 처리 결과를 상기 명령어의 결과로 저장하는 단계를 포함한다.
양자 연산(Quantum Computing), 양자 코프로세서(Quantum Coprocessor), 하이브리드 컴퓨터

Description

양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법 및 장치{Method and apparatus improving operation processing time-ratio using quantum coprocessor}
도 1은 종래의 기술에 따른 기존의 디지털 컴퓨터에서의 CPU와 코프로세서의 구성을 보여주는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 양자 코프로세서와 CPU간의 구성을 보여주는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 중앙 처리부의 명령어의 예를 보여주는 메모리 구성도이다.
도 4는 본 발명의 다른 실시예에 따른 CPU와 양자 코프로세서, 그리고 메모리간의 구성을 보여주는 블록도이다.
도 5는 본 발명의 또다른 실시예에 따른 CPU와 양자 코프로세서, 그리고 메모리간의 구성을 보여주는 블록도이다.
도 6은 본 발명의 일 실시예에 따른 CPU와 양자 코프로세서가 양자 연산을 수행하는 과정을 보여주는 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 양자 코프로세서 500: 중앙 처리부(CPU)
102 : 컨트롤러 111, 112, 113 : 양자 네트워크
양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법 및 장치에 관한 것이다.
양자컴퓨터는 양자역학계에 정보를 구현하고 그 정보에 적절한 조작(operation)을 가하여 연산을 수행하는 물리적 시스템을 의미한다. 기존의 컴퓨터에서 전압이 걸려있는가(1) 아닌가(0)로 정보를 2진수 형태로 표현하듯이 양자컴퓨터에서도 적절한 두 레벨 시스템(two level system, 예를 들어 spin 1/2인 입자)을 선택하여 시스템이 두 레벨 중 어디에 있는가로 2진 정보를 표현한다. 그런데 양자역학계는 고전계와는 달리 두 레벨의 중첩상태가 존재한다. 즉 두 레벨을 |0>, |1>로 표현한다면 기존의 컴퓨터에서는 |0> 또는 |1> 둘 중의 한 가지 상태로만 표현되나 양자컴퓨터에서는
Figure 112004046462707-pat00001
와 같은 중첩상태가 존재한다. 중첩상태는 양자역학계가 가지고 있는 고유한 특성인 중첩을 이용한 것으로 고전계와 구분되는 양자계의 특성을 정보의 연산과 처리에 이용할 수 있으며 그 결과 탁월한 성능향상을 얻는다.
고전계와 달리, 양자 컴퓨터가 실현될 경우 게놈(유전자)이나 기상, 경제, 데이터 마이닝 등 지금의 슈퍼컴퓨터로도 풀 수 없는 아주 복잡한 영역의 연구에 양자 컴퓨터를 응용할 수 있게 될 것으로 기대되고 있다. 기존의 정보처리 방식이나 통신이론, 개인용 컴퓨터에서 슈퍼컴퓨터에 이르는 컴퓨터는 모두 기본적 원리를 고전적 역학에 두고 있다. 여기에서는 모든 상태가 일의적(一義的)이고 비가역적으로 결정되고, 상태의 변화 또한 일의적으로 결정된다. 고전의 컴퓨터가 처리하는 방식에서는 기본적으로 한 번에 한 단계씩의 계산이 이루어지게 된다. 반면에 양자 정보처리나 양자 통신이론, 양자컴퓨터는 모든 가능한 상태가 중첩되게 얽힌 상태를 이용한다. 따라서 단 1번의 조작으로 모든 가능한 상태를 조작하게 된다. 양자 병렬성은 양자현상을 이용한 정보처리와 통신, 컴퓨터가 기존의 방식으로 해결할 수 없는 문제들을 해결할 수 있게 해주는 역할을 한다.
양자 컴퓨터가 탁월한 가능성을 가지고 있음에도 양자 컴퓨터의 실현 가능성과 그 가치에 의문을 가지는 사람들이 많았다. 그러나 1994년 쇼어(Shor)가 발표한 소인수분해 알고리즘은 실현 가능성에 대한 의문을 불식시켰다. 현대 암호체계에서는 기존의 컴퓨터로는 몇 년이 걸려도 분해하기 어려운 소인수에서 얻는 수를 암호 해독의 열쇠로 사용하는데, 쇼어(Shor)의 알고리즘은 하루 안에 얻을 수 있는 능력이 있기 때문이다. 또한, 2년 후 그루버(Grover)가 발표한 데이터 검색 알고리즘에 따르면 소인수분해를 할 것도 없이 1부터 대입하여 구하여도 몇 분이면 해독의 열쇠를 알 수 있는 능력이 있음이 알려졌다. 그 후, 각 국은 모두 정부차원에서 양자 컴퓨팅(Quantum Computing)에 대한 연구를 지원하기 시작하였다.
현재 많은 연구는 양자 컴퓨터를 개발하는데에 초점을 두고 있다. 그러나 양자 컴퓨터는 양자 네트워크(quantum network)를 통해 특정 알고리즘을 수행하는 방 식으로 구성되므로 범용성을 제공하기는 어렵다. 그러나 지금까지의 연구 결과를 토대로 할 때, 양자 컴퓨팅의 빠른 연산 능력은 컴퓨터의 성능 향상에 큰 역할을 한다. 따라서, 양자 컴퓨팅의 빠른 연산 능력을 컴퓨터에 접목시키는 기술이 필요하다. 미국의 특허인 양자 컴퓨터에 관한 발명(US-6,787,794)은 컨트롤 게이트와 큐빗을 통해 연산을 수행하는 과정을 보여주고 있다. 그러나 전체 컴퓨터를 큐빗과 컨트롤 게이트로 구성하기 위해서는 많은 시간이 소요된다.
코프로세서(Coprocessor)는 고속으로 특정 목적의 연산을 수행하는 일종의 보조 프로세서를 의미한다. 수치 해석이나 표 작성, 컴퓨터 그래픽, 게임 등의 다량의 데이터를 처리하거나 많은 연산을 필요로 하는 경우, 전문적으로 처리하는 코프로세서를 통해 작업의 처리 속도를 높일 수 있다.
도 1은 종래의 기술에 따른 기존의 디지털 컴퓨터에서의 CPU와 코프로세서의 구성을 보여주는 블록도이다.
CPU(500)는 특정 연산의 수행을 코프로세서(200)에 요청한다. 코프로세서(200)는 CPU가 요청한 연산을 수행하여 그 결과를 CPU(500)에 송신하면 CPU는 연산 결과를 사용하여 작업을 진행한다. 코프로세서를 통해 특정 연산을 수행하는 방식을 쓰는 이유는, 범용의 기능을 수행하는데 적합한 통상의 디지털 컴퓨터가 수학적 연산이나 그래픽 연산, 수치 해석 등을 효율적으로 처리하지 못하기 때문이다.
수학 코프로세서(Math coprocessor)가 부동소수점의 처리라던가, 혹은 큰 수의 계산이나 복잡한 수식을 다루는데 사용되어 왔지만, 아직 많은 수학적 계산 영역에 있어서 소인수분해나 복합적인 문제, 예를 들어 NP-복합(NP-complete)과 같이 많은 계산량을 필요로 하는 연산은 현재의 컴퓨터로는 불가능하다. 그러나, 양자 알고리즘과 결합한 양자 네트워크에서는 복잡한 연산이 쉽게 이루어질 수 있다.
따라서, 범용의 CPU와 양자 코프로세서가 결합된 하이브리드 컴퓨터를 통해 통상의 알고리즘과 연산은 CPU로 처리하고, 데이터양이 많거나 복잡한 연산을 필요로 하는 경우에는 양자 컴퓨팅이 가능한 코프로세서를 통해 처리함으로써, 전체 작업의 처리 속도를 향상시킬 수 있다.
본 발명의 기술적 과제는 양자 코프로세서를 사용하여 기존의 컴퓨터를 사용하여 해결할 수 없는 문제를 해결하는데 있다.
본 발명의 또다른 기술적 과제는 기존의 중앙 처리부에 양자 코프로세서를 적용하여 범용성과 양자 컴퓨팅의 실용화를 달성하는데 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법 및 장치에 관한 것이다.
본 발명의 일 실시예에 따른 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법은 소정의 작업을 수행하기 위한 명령어와 데이터를 수신하는 단계, 상기 수신한 명령어가 양자 연산을 요청하는 명령어인 경우 상기 수신한 명령어와 데 이터를 양자 코프로세서가 수신할 수 있는 형태의 신호로 변환하는 단계, 상기 변환 신호를 상기 양자 코프로세서에 송신하는 단계, 상기 양자 코프로세서의 처리 결과를 상기 양자 코프로세서로부터 수신하는 단계 및 상기 수신한 처리 결과를 상기 명령어의 결과로 저장하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법은 양자 연산의 수행을 요청하는 신호를 중앙 처리부로부터 수신하는 단계, 상기 수신한 신호에서 명령어와 데이터를 추출하여, 상기 명령어에 적합한 양자 연산을 수행하는 양자 네트워크에 데이터를 송신하는 단계, 상기 양자 네트워크를 구성하는 큐빗에서 상기 데이터에 대한 상기 양자 연산을 수행하는 단계, 및 상기 양자 연산을 수행한 결과를 상기 중앙 처리부로 송신하는 단계를 포함한다.
본 발명의 일 실시예에 따른 양자 코프로세서를 사용하여 연산 속도를 향상시키는 장치는 소정의 작업을 수행하기 위한 명령어와 데이터를 수신하는 명령어 수신부, 상기 수신한 명령어가 어떤 연산을 요청하는지 해석하여 상기 연산을 수행하는 명령어 처리부 및 상기 수신한 명령어가 양자 연산을 요청하는 경우, 상기 명령어와 상기 데이터를 양자 코프로세서가 수신할 수 있는 형태의 신호로 변환하여 송신하고, 상기 양자 코프로세서의 처리 결과를 상기 양자 코프로세서로부터 수신하는 송수신부를 포함한다.
본 발명의 일 실시예에 따른 양자 코프로세서는 양자 연산의 수행을 요청하는 신호를 중앙 처리부로부터 수신하며, 상기 연산 결과를 상기 중앙 처리부로 송신하는 송수신부, 상기 수신한 신호에서 명령어와 데이터를 추출하여, 상기 명령어 에서 요청하는 양자 연산을 수행하는 양자 네트워크에 상기 데이터를 송신하는 컨트롤러 및 상기 컨트롤러로부터 상기 데이터를 수신하여 큐빗에서 상기 데이터에 대한 상기 양자 연산을 수행하는 양자 네트워크를 포함한다.
본 명세서에서 사용하게 되는 용어를 정의하면 다음과 같다.
- 양자 컴퓨팅(Quantum Computing)
양자 연산(Quantum Computation)이라고도 한다. 양자 연산은 양자 비트인 큐빗(Quantum bits, qubits)의 형식으로 데이터를 다루는 것을 의미한다. 고전적 방식의 연산에서는 한 비트의 정보는 두 논리적 정보 중 어느 하나로 나타나지만, 양자 연산에서의 큐빗(qubits)은 상태 중첩을 통해 두 상태를 나타낼 수 있으며 병렬적인 연산을 가능하게 한다.
- 코프로세서(Coprocessor)
코프로세서는 CPU와 같은 마이크로 프로세서의 연산 능력을 향상시키기 위해 특정 연산을 전담하여 수행하는 프로세서를 의미한다. 보통, 범용의 프로세서는 통상의 작업을 수행하고, 수학 연산, 그래픽 연산과 같은 특정 방식의 연산을 많이 필요로 하는 경우에는 코프로세서를 통해 연산 속도를 향상시킨다. 본 명세서에서는 코프로세서를 양자 컴퓨팅을 통해 구현하여, 범용적인 작업을 CPU가 처리하고, 소인수 분해, 데이터 검색 등 많은 연산을 필요로 하는 경우에는 양자 코프로세서를 통해 성능을 향상시킬 수 있다.
- 유니타리 연산(Unitary operation)
고전적인 방식의 컴퓨터에서는 회로들을 바탕으로 게이트들을 공간적으로 배 열하여 연산을 수행한다. 그러나 양자 컴퓨터에서는 양자들이 전부이다. 특정 기능을 수행하기 위해서는 양자들로 구성된 스핀계에 일련의 변환들이 가해진다. 그리고 유니타리 연산은 일련의 변환들의 시간적 순서가 된다. 따라서, CPU에서 게이트들이 나열되어 게이트를 통해 최종 결과를 얻는 것이 고전적인 방식의 컴퓨터라면, 양자 컴퓨터는 일련의 양자들에 가해질 변환 방식들을 순차적으로 나열하여, 변환 방식에 따라 양자들을 변환시켜 그 결과를 얻는다. 이렇게 양자들에 가해질 변환을 유니타리 변환들이라 하고, 일련의 유니타리 변환들을 유니타리 연산이라고 한다.
본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 양자 코프로세서와 CPU간의 구성을 보여주는 블록도이다. 중앙 처리부로 범용의 연산과 작업 처리를 수행하는 CPU(500)와 특정 연산을 수행하는 양자 코프로세서(100)로 구성된다.
CPU(500)는 디지털 소자로 구성된 회로이며, 반도체 등이 될 수 있다. CPU(500)는 논리 게이트들로 구성되어 범용적인 기능을 수행할 수 있다. 여기서 범용적인 기능은, 반드시 CPU를 포함하는 컴퓨터가 범용이어야 함을 의미하는 것이 아니라, CPU가 포함된 컴퓨터가 소정의 기능을 수행하기 위해서 CPU의 명령어에 의해 전반적으로 제어되는 것을 의미한다. 도 2의 실시예에서는 하나의 CPU가 존재하지만, 병렬 컴퓨터의 경우에는 CPU가 둘 이상 존재할 수 있다.
CPU(500)는 크게 세 부분으로 나누어질 수 있다. 명령어 수신부(501)는 CPU에 어떤 작업을 요청하는 명령어 또는 명령어들의 리스트를 수신하는 작업을 한다. 소프트웨어 또는 하드웨어의 구성에 따라 명령어가 기계어의 형태로 메모리에 저장되거나, 회로에서 직접 전송되는 경우가 존재한다. 메모리에 저장되는 기계어는 명령어 수신부(501)가 메모리에서 읽어와서 전기적 신호로 변환하여 연산을 수행한다. 하드웨어의 구성에 따라 명령어가 순차적으로 CPU에 제공되는 경우, 명령어 수신부(501)가 하드웨어에서 생성하는 전기적 신호를 수신한다.
명령어를 수신한 명령어 수신부(501)는 명령어 처리부(502)로 전달한다.
명령어 처리부(502)는 명령어 수신부(501)가 수신한 명령어를 처리한다. 명령어를 처리하기 위해서는 내부의 논리 회로에 명령어를 구성하는 값을 부가하여 그 결과를 검토하는 과정으로 가능하다. CPU는 고전적인 방식의 컴퓨팅을 수행하므 로 반도체를 구성하는 논리 회로로 구성되며, 논리 회로는 게이트를 통해 전자등이 이동하여 결과를 얻는다.
송수신부는 명령어와 데이터를 양자 코프로세서로 송신한다. 명령어 처리부(502)는 처리할 명령어가 양자 연산을 요청하는 명령어인 경우, 처리할 명령어를 양자 코프로세서로 전송하고, 양자 코프로세서의 처리 결과를 수신한다. 송수신부는 명령어 처리부(502)와 코프로세서간의 명령어 및 데이터의 송수신을 담당한다. 도 2에서는 채널 인터페이스(503)를 송수신부의 한 예로 들고 있다.
양자 코프로세서(100)는 양자 컴퓨팅을 지원하는 코프로세서이다. CPU가 채널 인터페이스를 통해 양자 코프로세서(100)에 양자 알고리즘을 통한 양자 연산을 수행할 것을 요청한다. 양자 코프로세서(100)와 CPU는 다양한 통신 채널을 통해 연산의 요청과 결과의 전송을 수행할 수 있다. 통신 채널로는 PCI, USB, RS232, SCSI, 외부 I/O 버스등 다양한 인터페이스로 구성할 수 있다.
양자 코프로세서의 내부는 채널 인터페이스(101)와 컨트롤러(102), 그리고 양자 네트워크(111, 112, 113)로 구성된다. 채널 인터페이스(101)는 CPU(500)로부터 명령어를 입력받는 역할을 한다. 채널 인터페이스는 통신 채널을 사용할 수 있다. 채널 인터페이스는 후술할 양자 네트워크의 연산 결과를 중앙 처리부로 전송한다. 채널 인터페이스는 중앙 처리부와 명령어 및 데이터를 송수신하며, 데이터가 메모리와 같은 저장부에 저장된 경우, 메모리에서 데이터를 읽어온다. 또한 메모리에 연산 결과를 저장하는 역할도 한다.
양자 네트워크(111, 112, 113)는 특정 문제를 해결한다. 예를 들어 소인수 분해 알고리즘의 하나인 쇼어(Shor)의 소인수분해 알고리즘을 구현한 네트워크일 수 있고, 그루버(Grover)의 데이터베이스 검색 알고리즘을 구현한 네트워크일 수 있다. 양자 네트워크는 특정 양자 알고리즘을 구현하여 문제를 해결할 수 있다.
컨트롤러(102)는 CPU가 생성하는 명령어에 따라, 특정 양자 네트워크로 데이터를 전송한다. 그리고 컨트롤러(102)는 양자 네트워크로부터 수신한 결과를 다시 CPU로 전송한다. 컨트롤러(102)는 CPU가 송신한 명령어가 요청하는 연산을 수행할 양자 네트워크를 선택하여 양자 네트워크에 데이터를 전송한다.
양자 네트워크를 구성하는 방식은 여러 가지가 존재할 수 있다.
핵자기 공명(Nuclear Magnetic Resonance, NMR)을 이용한 방법, 양자점(Quantum dot), 이온덫(Ion trap), 공진기 양자전기역학(cavity QED), 조셉슨소자, 그리고 반도체 안의 5족 원소 등을 이용한 방법들이 연구되고 있다.
핵자기 공명은 마그네틱 필드나 초고주파를 이용해 특정 분자에 있는 수소의 핵스핀 방향, 즉 큐빗의 업과 다운 상태를 조절한다. 분자 전체의 상호작용을 이용해 여러 큐빗의 조합 상태를 조절할 수 있어 여러 개의 큐빗으로 연산을 수행할 수 있다. 현재 3 큐빗까지의 실험결과가 발표되었다. 양자점은 스케일링이 가능하고 소형화, 집적화가 비교적 용이하며, 기존의 반도체 공정을 사용할 수 있으나, 나노 공정 기술이 필요하다. 한편 이온덫은 큐빗 구현이 비교적 용이하나 큐빗의 수명이 짧다는 한계가 있다.
이들 양자 네트워크를 통해 수행할 수 있는 알고리즘의 예들을 살펴보면 다음과 같다.
더치-조사 알고리즘(Deutsch-Jozsa Algorithm)은 어떤 함수가 상수함수인지 동수함수인지를 큐빗을 중첩시켜 쉽게 알아내는 양자 알고리즘이다. 여기서 말하는 함수란 0부터 N-1까지의 수로부터 {0, 1}로의 사상을 의미한다. 이 때 상수함수란 모든 입력에 대해 함수값이 전부 0이거나 1인 경우를 말하고, 동수함수란 입력의 반에 대해서는 함수값이 0이고 나머지 반에 대해서는 함수값이 1인 경우를 말한다.
여기에 0부터 N-1까지의 수를 입력으로 하여 0 또는 1을 결과값으로 하는 어떤 함수가 주어졌을 때, 이 함수가 상수함수인지 동수함수인지를 알기 위해서 종래의 컴퓨터에 의할 경우에는 최소 2회에서 최대 (N/2+1)개의 입력이 필요하다. 그러나 양자 연산을 통해 계산할 시에는 한번으로 가능하다. 중첩하여 존재하는 큐빗을 사용하는 양자 네트워크에서는 모든 입력을 중첩하고, 큐빗의 위상변화를 통해 결과를 알 수 있기 때문이다.
쇼어(Shor)의 소인수분해 알고리즘은 자리수가 많은 수를 소인수분해 하는 것이 통상의 컴퓨터에서는 수백년에 걸쳐 행해지는 것을 수분 내지 수시간으로 해결한다. 쇼어 알고리즘은 QFT(Quantum Fourier Transform)을 이용하여 함수의 주기를 구하여 서로 소인 값을 찾을 수 있다.
그루버(Grover) 알고리즘은 데이터베이스에서 특정 조건을 만족하는 항목을 찾는 양자 알고리즘이다. 구조화되지 않은 데이터베이스에서 N개의 항목 중 특정 조건을 만족하는 항목을 찾기 위해서는 평균적으로 N/2회의 검색이 필요하지만 그루버 알고리즘은 벡터의 중첩을 통해 쉽게 찾을 수 있다. 그루버 알고리즘은 양자의 중첩 현상을 이용해서 가능하다.
전술한 알고리즘은 양자 연산을 사용하는 양자 알고리즘의 일 실시예이며, 본 명세서에서의 양자 네트워크는 전술한 알고리즘에 한정되는 것이 아니다.
이러한 양자 네트워크를 사용하기 위해서는 CPU가 코프로세서에 자료를 요청할 수 있게 하는 명령어 셋이 필요하다. 소프트웨어 또는 하드웨어가 CPU에 코프로세서의 연산을 요청하기 위해서는, CPU가 양자 연산을 요청하는 명령어 셋을 가지고 있어야 한다.
도 3은 본 발명의 일 실시예에 따른 중앙 처리부의 명령어의 예를 보여주는 메모리 구성도이다. 크게 코프로세서에 연산을 요청하는 명령어와 코프로세서로부터 연산 결과를 받는 명령어로 이루어진다.
통상의 CPU 명령어 셋에 따라 명령어, 파라메터의 형태로 구현한다. CPU의 명령어 셋은 명령어와 파라메터로 구성되며, 도 3은 명령어와 두 개의 파라메터를 보여주고 있다. 먼저 첫번째 명령어 구문(501)은 양자 코프로세서에 연산을 요청하는 명령어인 LDQ(LoadQuantum)를 사용한다. 501 구문은 QCP1이라는 양자 연산이 수행될 것, 그리고 mem1이 가리키는 메모리 위치에 저장된 데이터를 양자 연산의 파라메터로 사용할 것을 의미한다. QCP1은 전술한 쇼어의 소인수분해 연산 또는 그루버의 데이터베이스 검색 등 양자 연산을 요청하는 명령어이다. QCP1은 양자 코프로세서 내부에 존재하는 양자 네트워크의 식별자가 된다. 두번째 명령어(502) 역시 양자 연산을 수행하기 위해 LDQ 명령어를 사용하고, 다른 양자 연산을 나타내는 QCP2를 사용한다. 첫번째 명령어와 달리, 레지스터에 저장된 값을 사용하여 양자 연산을 수행할 수 있다. 따라서 레지스터를 식별하기 위한 reg2가 파라메터를 구성 한다.
양자 코프로세서에 수행할 양자 연산과 데이터를 보낸 후, 그 결과를 수신하는 명령어는 503, 504와 같다. STQ(StoreQuantum)는 양자 코프로세서로부터 결과값을 수신하여 특정 메모리 위치에 저장한다. 503은 501을 통해 수행한 양자 연산의 결과를 저장하는 명령어와 파라메터이다. QCP1의 결과를 mem3이라는 메모리 번지에 저장하는 것을 의미한다. 504 역시 502를 통해 수행한 양자 연산의 결과를 mem4라는 메모리 번지에 저장하는 것을 의미한다. 전술한 LDQ, STQ는 설명의 편의를 위해 예시적으로 든 것이며, 실제 CPU의 구현시에 전술한 명령어와 일치할 필요는 없다.
도 4는 본 발명의 다른 실시예에 따른 CPU와 양자 코프로세서, 그리고 메모리간의 구성을 보여주는 블록도이다.
도 4에서는 양자 코프로세서(100)가 직접 메모리에서 데이터를 읽어들이는 구성을 보여준다. CPU(500)는 도 3에서 살펴본 양자 연산을 요청하는 명령어를 양자 코프로세서로 전달한다. 이때 명령어와 함께 전달되는 데이터 값은 메모리 번지주소가 될 수 있다. 메모리 번지주소는 주소 정보를 송수신하는 주소 버스(Address Bus)(592)를 통해 전달된다. 그리고 메모리에서 읽은 데이터 값은 데이터 버스(Data bus)(591)를 통해 전달된다. 데이터 버스(591)는 데이터를 전달하는 통로가 되며, 주소 버스(592)는 주소를 전달하는 통로가 된다.
양자 코프로세서(100)는 번지주소(Address)에 해당하는 메모리에서 데이터를 읽어와서 양자 연산을 수행하여, 연산 결과를 CPU에 돌려주거나, 또는 CPU에서 요청한 메모리 주소에 데이터를 저장한다. 양자 코프로세서(100)는 CPU가 요청한 메 모리 주소에 데이터를 저장할 경우, 연산 결과는 연산이 성공했는지 실패했는지에 대한 정보만을 CPU에 보내주며, 메모리 주소에 연산으로 얻은 결과를 저장한다.
도 4에서의 메모리는 명령어와 데이터를 저장하는 저장부의 일 실시예이다. 중앙 처리부를 통해 실행되는 명령어는 메모리 외에도 회로를 통해 제공될 수 있다. 따라서, 저장부는 메모리 이외에도 반도체 등과 같은 회로를 포함한다.
도 5는 본 발명의 또다른 실시예에 따른 CPU와 양자 코프로세서, 그리고 메모리간의 구성을 보여주는 블록도이다. 도 4는 양자 코프로세서가 CPU에서 전달하는 메모리 주소를 직접 읽는 경우를 보여주었다. 도 5에서 양자 코프로세서는 CPU로부터 명령어와 데이터를 수신하여 양자 연산을 수행한 후, 처리 결과를 CPU에 돌려주고, CPU가 처리 결과를 메모리와 같은 저장부에 저장하는 구성을 보여준다.
중앙 처리부인 CPU는 명령어와 데이터를 함께 양자 코프로세서로 보낸다. 특정 주소의 메모리의 데이터를 CPU가 읽어와서 명령어와 함께 전송하므로, 양자 코프로세서는 메모리 주소를 참조하여 데이터를 읽을 필요가 없다. 양자 코프로세서가 메모리와의 상호동작을 하지 않으므로, 연산 결과를 CPU가 받아서 메모리에 저장한다. 따라서 도 4와 달리, 연산이 성공했는지 실패했는지 여부와 연산을 수행하여 얻은 결과를 CPU에 전송한다.
도 6은 본 발명의 일 실시예에 따른 CPU와 양자 코프로세서가 양자 연산을 수행하는 과정을 보여주는 순서도이다.
중앙 처리부(CPU)는 메모리에 저장된 명령어와 데이터, 또는 다른 반도체 회로에 저장된 명령어와 데이터를 수신한다(S101). 메모리에 저장된 명령어는 소프트 웨어의 컴파일 또는 인터프리터 과정을 통해 생성된 기계어를 의미한다. 또한, 명령어는 메모리에 저장되고, 데이터는 다른 회로에 저장될 수 있으며, 그 역의 경우도 존재한다. 반도체 회로에 저장된 명령어는 반도체 회로의 논리 게이트를 통해 발생하는 전기적 신호로 구성된다. 명령어의 예는 도 3에서 살펴본 LDQ이다.
명령어를 수신한 CPU는 명령어를 해석한다(S102). 명령어가 요청하는 연산이 어떤 연산인지 알기 위해서이다. 해석한 결과 양자 연산을 요청하는 명령어가 아니라면, CPU에서 처리한다(S120). 해석한 결과 양자 연산을 요청하는 명령어라면(S110), 양자 코프로세서에 명령어를 송신하기 위한 과정을 진행한다. CPU는 양자 코프로세서에 양자 연산을 요청하기 위해 명령어 및 데이터를 신호로 변환한다(S112). 명령어는 양자 연산을 구분하는 기준이 될 수 있다. 데이터는 명령어를 수행하기 위한 피연산자(Operand)가 되며, 데이터 값을 포함하거나 혹은 데이터가 저장된 위치를 포함할 수 있다. 메모리의 특정 주소에 저장된 데이터에 가해질 양자 연산인 경우, CPU는 그 데이터 값 또는 주소를 코프로세서에 보낸다. 도 4와 도 5에서 살펴본 데이터 버스와 주소 버스의 값을 양자 코프로세서가 읽을 수 있는 경우에 주소 정보를 전달하여도 무방하다. CPU는 S112 단계에서 변환한 신호를 양자 코프로세서에 송신한다(S114).
양자 코프로세서는 CPU가 보낸 신호를 수신한다(S202). 수신한 변환 신호에서 요청하는 연산이 무엇인지를 판별하여, 요청하는 연산을 수행할 양자 네트워크를 선택한다(S204). 양자 네트워크는 특정 양자 연산을 수행하기 위한 것이며, 양자 코프로세서는 양자 네트워크를 하나 이상 가질 수 있다. 선택한 양자 네트워크 에 데이터를 송신한다(S206). 데이터는 CPU가 송신한 변환 신호에 포함될 수 있다. 또한, 메모리와 같은 저장 장치의 위치 주소가 전달되어, 양자 코프로세서가 메모리에서 데이터를 직접 읽어올 수 있다. 이후 양자 네트워크는 큐빗에 유니타리 연산을 수행한다(S208). 양자 코프로세서는 유니타리 연산의 결과를 중앙 처리부로 송신한다(S210).
CPU는 양자 코프로세서로부터 처리 결과를 수신한다(S116). 처리 결과를 다음 연산 또는 다음 명령어 수행을 위해 저장한다(S118). 저장은 메모리와 같은 저장부에 저장할 수 있으며, 하드웨어 회로에 직접 전기적 신호를 송신할 수 있다. 한편, 양자 코프로세서가 연산 결과를 도 4에서 살펴본 데이터 버스와 주소 버스를 사용하여 메모리에 저장하고 그 위치를 중앙 처리부로 송신할 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 복잡한 연산을 양자 코프로세서를 사용하여 짧은 시간내에 해결할 수 있다.
본 발명을 구현함으로써 범용의 양자 컴퓨터의 개발 없이도 양자 컴퓨팅의 성능을 기존의 컴퓨터에서 활용할 수 있다.

Claims (22)

  1. 중앙 처리부가 소정의 작업을 수행하기 위한 명령어와 데이터를 양자 코프로세서가 수신할 수 있는 형태의 신호로 변환하는 단계;
    상기 변환 신호를 상기 양자 코프로세서에 송신하는 단계;
    상기 양자 코프로세서가 상기 중앙 처리부로부터 전송된 신호에서 상기 명령어와 상기 데이터를 추출하여, 상기 명령어에 적합한 양자 연산을 수행하는 양자 네트워크에 상기 데이터를 송신하는 단계;
    상기 양자 네트워크를 구성하는 큐빗에서 상기 데이터에 대한 상기 양자 연산을 수행하는 단계;
    상기 양자 코프로세서가 상기 양자 연산을 수행한 처리 결과를 상기 중앙 처리부로 송신하는 단계; 및
    상기 중앙 처리부가 상기 양자 코프로세서로부터 전송된 처리 결과를 수신하는 단계를 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  2. 제 1항에 있어서,
    상기 데이터는 상기 명령어의 피연산자의 값을 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  3. 제 1항에 있어서,
    상기 데이터는 상기 명령어의 피연산자가 저장된 주소 또는 상기 피연산자가 저장된 레지스터 식별자를 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  4. 제 1항에 있어서,
    상기 양자 연산은 소인수분해, 데이터베이스 검색, 최소값 또는 최대값의 검색, 동수 함수 판단 중 어느 하나인, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  5. 제 1항에 있어서,
    상기 작업은 하드웨어에서 논리 회로로 구성된 작업으로 하나 이상의 논리 회로와 데이터로 구성된, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  6. 양자 연산의 수행을 요청하는 신호를 중앙 처리부로부터 수신하는 단계;
    상기 수신한 신호에서 명령어와 데이터를 추출하여, 상기 명령어에 적합한 양자 연산을 수행하는 양자 네트워크에 데이터를 송신하는 단계;
    상기 양자 네트워크를 구성하는 큐빗에서 상기 데이터에 대한 상기 양자 연산을 수행하는 단계; 및
    상기 양자 연산을 수행한 결과를 상기 중앙 처리부로 송신하는 단계를 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  7. 제 6항에 있어서,
    상기 데이터는 상기 명령어의 피연산자의 값을 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  8. 제 6항에 있어서,
    상기 데이터는 상기 명령어의 피연산자가 저장된 주소 또는 상기 피연산자가 저장된 레지스터 식별자를 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  9. 제 8항에 있어서,
    상기 수신하는 단계는,
    상기 저장된 주소 또는 상기 저장된 레지스터에서 상기 피연산자를 읽어오는 단계를 포함하는, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  10. 제 6항에 있어서,
    상기 양자 연산은 소인수분해, 데이터베이스 검색, 최소값 또는 최대값의 검색, 동수 함수 판단 중 어느 하나인, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  11. 제 6항에 있어서,
    상기 데이터를 송신하는 단계는,
    상기 중앙 처리부와 미리 약속된 위치에 상기 양자 연산 결과를 저장하는 단 계; 및
    상기 위치를 중앙 처리부에 송신하는 단계를 포함하는 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법.
  12. 소정의 양자 연산을 수행하는 양자 코프로세서; 및
    상기 양자 코프로세서가 수행한 양자 연산의 처리 결과를 이용하는 중앙 처리부를 포함하고,
    상기 중앙 처리부는,
    소정의 작업을 수행하기 위한 명령어와 데이터를 수신하는 명령어 수신부;
    상기 수신한 명령어가 어떤 연산을 요청하는지 해석하여 상기 해석된 연산을 수행하는 명령어 처리부; 및
    상기 수신한 명령어가 양자 연산을 요청하는 경우, 상기 명령어와 상기 데이터를 양자 코프로세서가 수신할 수 있는 형태의 신호로 변환하여 송신하고, 상기 양자 코프로세서의 처리 결과를 상기 양자 코프로세서로부터 수신하는 제1 송수신부를 포함하고,
    상기 양자 코프로세서는,
    상기 양자 연산의 수행을 요청하는 신호를 상기 중앙 처리부로부터 수신하며, 상기 연산 결과를 상기 중앙 처리부로 송신하는 제2 송수신부;
    상기 수신한 신호에서 상기 명령어와 상기 데이터를 추출하여, 상기 명령어에서 요청하는 양자 연산을 수행하는 양자 네트워크에 상기 데이터를 송신하는 컨트롤러; 및
    상기 컨트롤러로부터 상기 데이터를 수신하여 큐빗에서 상기 데이터에 대한 상기 양자 연산을 수행하는 양자 네트워크를 포함하는, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 장치.
  13. 제 12항에 있어서,
    상기 데이터는 상기 명령어의 피연산자의 값을 포함하는, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 장치.
  14. 제 12항에 있어서,
    상기 데이터는 상기 명령어의 피연산자가 저장된 주소 또는 상기 피연산자가 저장된 레지스터 식별자를 포함하는, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 장치.
  15. 제 12항에 있어서,
    상기 양자 연산은 소인수분해, 데이터베이스 검색, 최소값 또는 최대값의 검색, 동수 함수 판단 중 어느 하나인, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 장치.
  16. 제 12항에 있어서,
    상기 작업은 하드웨어에서 논리 회로로 구성된 작업으로 하나 이상의 논리 회로와 데이터로 구성된, 양자 코프로세서를 사용하여 연산 속도를 향상시키는 장치.
  17. 양자 연산의 수행을 요청하는 신호를 중앙 처리부로부터 수신하며, 상기 연산 결과를 상기 중앙 처리부로 송신하는 송수신부;
    상기 수신한 신호에서 명령어와 데이터를 추출하여, 상기 명령어에서 요청하는 양자 연산을 수행하는 양자 네트워크에 상기 데이터를 송신하는 컨트롤러; 및
    상기 컨트롤러로부터 상기 데이터를 수신하여 큐빗에서 상기 데이터에 대한 상기 양자 연산을 수행하는 양자 네트워크를 포함하는 양자 코프로세서.
  18. 제 17항에 있어서,
    상기 데이터는 상기 명령어의 피연산자의 값을 포함하는, 양자 코프로세서.
  19. 제 17항에 있어서,
    상기 데이터는 상기 명령어의 피연산자가 저장된 주소 또는 상기 피연산자가 저장된 레지스터 식별자를 포함하는, 양자 코프로세서.
  20. 제 19항에 있어서,
    상기 송수신부는 상기 저장된 주소 또는 상기 저장된 레지스터에서 상기 피연산자를 읽어오는, 양자 코프로세서.
  21. 제 17항에 있어서,
    상기 양자 연산은 소인수분해, 데이터베이스 검색, 최소값 또는 최대값의 검색, 동수 함수 판단 중 어느 하나인, 양자 코프로세서.
  22. 제 17항에 있어서,
    상기 송수신부는,
    상기 중앙 처리부와 미리 약속된 위치에 상기 양자 연산 결과를 저장하고, 상기 위치를 중앙 처리부에 송신하는 양자 코프로세서.
KR1020040081732A 2004-10-13 2004-10-13 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치 KR100643283B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040081732A KR100643283B1 (ko) 2004-10-13 2004-10-13 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치
EP05255950A EP1647924A3 (en) 2004-10-13 2005-09-24 Method and apparatus for increasing processing speed using quantum coprocessor
US11/247,212 US20060101236A1 (en) 2004-10-13 2005-10-12 Method and apparatus for increasing processing speed using quantum coprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040081732A KR100643283B1 (ko) 2004-10-13 2004-10-13 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치

Publications (2)

Publication Number Publication Date
KR20060032777A KR20060032777A (ko) 2006-04-18
KR100643283B1 true KR100643283B1 (ko) 2006-11-10

Family

ID=35431145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040081732A KR100643283B1 (ko) 2004-10-13 2004-10-13 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치

Country Status (3)

Country Link
US (1) US20060101236A1 (ko)
EP (1) EP1647924A3 (ko)
KR (1) KR100643283B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182542A9 (en) * 2001-12-22 2009-07-16 Hilton Jeremy P Hybrid classical-quantum computer architecture for molecular modeling
US20070239366A1 (en) * 2004-06-05 2007-10-11 Hilton Jeremy P Hybrid classical-quantum computer architecture for molecular modeling
WO2007147243A1 (en) 2006-06-20 2007-12-27 D-Wave Systems Inc. Systems, devices, and methods for solving computational problems
US7877333B2 (en) * 2006-09-06 2011-01-25 D-Wave Systems Inc. Method and system for solving integer programming and discrete optimization problems using analog processors
US20080313430A1 (en) * 2007-06-12 2008-12-18 Bunyk Paul I Method and system for increasing quantum computer processing speed using digital co-processor
US8126830B2 (en) * 2007-07-03 2012-02-28 Seth Lloyd Method for ensuring privacy while querying a database by using quantum superposition and multiple responses
US8670807B2 (en) 2007-08-21 2014-03-11 D-Wave Systems Inc. Systems, methods, and apparatus for controlling the elements of superconducting processors
US20090070402A1 (en) * 2007-09-11 2009-03-12 Geordie Rose Systems, methods, and apparatus for a distributed network of quantum computers
CN102902581B (zh) * 2011-07-29 2016-05-11 国际商业机器公司 硬件加速器及方法、中央处理单元、计算设备
US9944520B2 (en) 2013-01-15 2018-04-17 Alcatel Lucent Syndrome of degraded quantum redundancy coded states
US9286154B2 (en) 2013-06-07 2016-03-15 Alcatel Lucent Error correction for entangled quantum states
US9762262B2 (en) 2014-06-18 2017-09-12 Alcatel Lucent Hardware-efficient syndrome extraction for entangled quantum states
US10127499B1 (en) 2014-08-11 2018-11-13 Rigetti & Co, Inc. Operating a quantum processor in a heterogeneous computing architecture
EP3520041A4 (en) 2016-09-30 2020-07-29 Rigetti & Co., Inc. SIMULATION OF QUANTUM SYSTEMS WITH QUANTUM CALCULATION
WO2018165607A1 (en) * 2017-03-10 2018-09-13 Rigetti & Co, Inc. Event scheduling in a hybrid computing system
US11200508B2 (en) 2017-03-10 2021-12-14 Rigetti & Co, Inc. Modular control in a quantum computing system
US10977570B2 (en) 2017-06-19 2021-04-13 Rigetti & Co, Inc. Distributed quantum computing system
FR3068804B1 (fr) * 2017-07-06 2019-08-30 Bull Sas Architecture informatique hybride classique-quantique
US10996979B2 (en) * 2017-09-29 2021-05-04 International Business Machines Corporation Job processing in quantum computing enabled cloud environments
US11010145B1 (en) 2018-02-21 2021-05-18 Rigetti & Co, Inc. Retargetable compilation for quantum computing systems
US11531922B2 (en) 2018-09-27 2022-12-20 Intel Corporation Apparatus and method for scalable qubit addressing
CN109615079B (zh) * 2019-01-30 2022-12-06 合肥本源量子计算科技有限责任公司 一种量子比特控制信号生成系统
KR20230006867A (ko) * 2020-04-22 2023-01-11 골드만 삭스 앤드 코. 엘엘씨 비동기식 양자 정보 처리

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357026A (ja) 2000-06-13 2001-12-26 Hisaaki Norikura 量子コンピュータのq−ビットの実現方法、および基本演算の実現方法及び上記基本演算を実現する回路
JP2002042104A (ja) 2000-07-27 2002-02-08 Yamaha Motor Co Ltd 量子ソフトコンピューティングを使用した制御システムと制御方法
US20030055513A1 (en) 2000-09-26 2003-03-20 Robert Raussendorf Method for quantum computing
US20030169041A1 (en) 2001-12-22 2003-09-11 D-Wave Systems, Inc. Quantum computing integrated development environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940193A (en) * 1997-03-26 1999-08-17 The United States Of America As Represented By The Secretary Of The Air Force General purpose quantum computing
US5838436A (en) * 1997-03-26 1998-11-17 The United States Of America As Represented By The Secretary Of The Air Force Multi-purpose quantum computing
US6081882A (en) * 1998-04-09 2000-06-27 Silicon Graphics, Inc. Quantum acceleration of conventional non-quantum computers
EP1286303A1 (en) 2001-08-13 2003-02-26 Hitachi Europe Limited Quantum computer
US7343059B2 (en) * 2003-10-11 2008-03-11 Hewlett-Packard Development Company, L.P. Photonic interconnect system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357026A (ja) 2000-06-13 2001-12-26 Hisaaki Norikura 量子コンピュータのq−ビットの実現方法、および基本演算の実現方法及び上記基本演算を実現する回路
JP2002042104A (ja) 2000-07-27 2002-02-08 Yamaha Motor Co Ltd 量子ソフトコンピューティングを使用した制御システムと制御方法
US20030055513A1 (en) 2000-09-26 2003-03-20 Robert Raussendorf Method for quantum computing
US20030169041A1 (en) 2001-12-22 2003-09-11 D-Wave Systems, Inc. Quantum computing integrated development environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1020040081732 - 653975

Also Published As

Publication number Publication date
US20060101236A1 (en) 2006-05-11
EP1647924A3 (en) 2008-03-12
EP1647924A2 (en) 2006-04-19
KR20060032777A (ko) 2006-04-18

Similar Documents

Publication Publication Date Title
KR100643283B1 (ko) 양자 코프로세서를 사용하여 연산 속도를 향상시키는 방법및 장치
US20180144262A1 (en) Compilation, memory management, and fault localization with ancillas in an unknown state
Long et al. Efficient scheme for initializing a quantum register with an arbitrary superposed state
US20180039903A1 (en) Quantum Circuit Synthesis Using Deterministic Walks
Roetteler et al. Quantum computing: Codebreaking and beyond
KR20230018381A (ko) N-큐비트 양자 게이트의 실행
Obenland et al. A parallel quantum computer simulator
WO2021183225A2 (en) Training of variational quantum classifiers by parametric coordinate ascent
US20200218787A1 (en) Avoiding data exchange in gate operation for quantum computing gates on a chip
Zhou Review on quantum walk algorithm
Jaques et al. Leveraging state sparsity for more efficient quantum simulations
Al-Mohammed et al. Quantum computer architecture from non-conventional physical simulation up to encryption cracking, machine learning application, and more
Li et al. A comment on “quantum image processing?”
Lin et al. Hyscale-gnn: A scalable hybrid gnn training system on single-node heterogeneous architecture
Shepherd On the role of Hadamard gates in quantum circuits
Ayala et al. Accelerating Multi-Process Communication for Parallel 3-D FFT
Travaglione et al. Generation of eigenstates using the phase-estimation algorithm
Huang et al. Optimized CPU–GPU collaborative acceleration of zero-knowledge proof for confidential transactions
Gonçalves et al. Exploring data size to run convolutional neural networks in low density fpgas
Lu et al. High-performance homomorphic matrix completion on GPUs
Wu et al. Accelerating deep convolutional neural network inference based on OpenCL
Florio et al. Quantum implementation of elementary arithmetic operations
Phillips et al. Quantum algorithms for the solution of matrix equations in electromagnetics
KR102338755B1 (ko) 제어 큐비트에 기초하여 타겟 큐비트의 위상을 쉬프트시키는 양자 회로
Yeoh et al. Automated enumeration of block cipher differentials: an optimized branch-and-bound GPU framework

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120927

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee