CN113326066A - 量子控制微体系结构、量子控制处理器及指令执行方法 - Google Patents
量子控制微体系结构、量子控制处理器及指令执行方法 Download PDFInfo
- Publication number
- CN113326066A CN113326066A CN202110393763.7A CN202110393763A CN113326066A CN 113326066 A CN113326066 A CN 113326066A CN 202110393763 A CN202110393763 A CN 202110393763A CN 113326066 A CN113326066 A CN 113326066A
- Authority
- CN
- China
- Prior art keywords
- quantum
- sub
- instruction
- circuit
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
- G06N10/80—Quantum 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06M—COUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
- G06M1/00—Design features of general application
- G06M1/27—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum
- G06M1/272—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum using photoelectric means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
Abstract
本申请公开了一种量子控制微体系结构、量子控制处理器及指令执行方法,涉及量子技术领域。所述量子控制微体系结构包括:调度器、指令存储器、多个处理单元及对应的私有指令缓存器。调度器用于确定量子电路中并行执行的k个子电路,k为大于1的整数,从指令存储器中获取k个子电路分别对应的指令,并分别存储至k个处理单元分别对应的私有指令缓存器中;k个处理单元中的目标处理单元用于从其对应的私有指令缓存器中获取k个子电路中的目标子电路对应的指令进行执行;其中,k个处理单元并行执行自身对应的指令。本申请采用的是子电路层级并行的解决方案,在面对更加复杂的量子应用及不断增长的量子比特时具有更好的扩展能力。
Description
技术领域
本申请实施例涉及量子技术领域,特别涉及一种量子控制微体系结构、量子控制处理器及指令执行方法。
背景技术
量子控制微体系结构是量子指令集架构的具体实现方式,是将一种给定指令集在处理器中执行的解决方案。
相关技术提供的一种量子控制微体系结构使用了分布式架构,即编译器会针对每个量子比特单独生成其所对应的指令,每个量子比特所对应的控制模块会和对接的模拟通道合并为一个单独的硬件子模块。这套系统在运行时,需要将一个完整的量子程序转换为多个独立的对应不同量子比特的指令文件,再由对应的各个硬件子模块来执行。这套系统由于使用了分布式架构,可以解决指令在执行时的并行问题,即各个量子比特有独立的模块执行关于该量子比特的指令。
但是,上述相关技术提供的量子控制微体系结构,会在量子比特数量上升时其复杂度也会大幅提升,包括整个系统结构的复杂度、各硬件子模块间同步的复杂度以及编译器的复杂度等,因此难以随着比特数量上升而保持扩展。
发明内容
本申请实施例提供了一种量子控制微体系结构、量子控制处理器及量子指令执行方法,给出了一种具有较好扩展能力的量子控制微体系结构及相应的指令执行方案。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种量子控制微体系结构,所述量子控制微体系结构包括:调度器、指令存储器、多个处理单元,以及所述多个处理单元分别对应的私有指令缓存器;其中,所述指令存储器中存储有量子电路对应的量子程序所编译生成的量子指令集,所述量子电路包括n个子电路,所述量子指令集包括所述n个子电路分别对应的指令,所述n为大于1的整数;
所述调度器,用于确定所述量子电路中并行执行的k个子电路,所述k为大于1的整数;从所述指令存储器中获取所述k个子电路分别对应的指令;将所述k个子电路分别对应的指令,分别存储至k个处理单元分别对应的私有指令缓存器中;
所述k个处理单元中的目标处理单元,用于从所述目标处理单元对应的私有指令缓存器中获取所述k个子电路中的目标子电路对应的指令;执行所述目标子电路对应的指令;其中,所述k个处理单元并行执行自身对应的指令。
根据本申请实施例的一个方面,提供了一种量子控制处理器,所述量子控制处理器具有上述量子控制微体系结构。
根据本申请实施例的一个方面,提供了一种量子指令执行方法,应用于量子控制微体系结构中,所述量子控制微体系结构包括:调度器、指令存储器、多个处理单元,以及所述多个处理单元分别对应的私有指令缓存器;其中,所述指令存储器中存储有量子电路对应的量子程序所编译生成的量子指令集,所述量子电路包括n个子电路,所述量子指令集包括所述n个子电路分别对应的指令,所述n为大于1的整数;所述方法包括:
所述调度器确定所述量子电路中并行执行的k个子电路,所述k为大于1的整数;从所述指令存储器中获取所述k个子电路分别对应的指令;将所述k个子电路分别对应的指令,分别存储至k个处理单元分别对应的私有指令缓存器中;
所述k个处理单元中的目标处理单元从所述目标处理单元对应的私有指令缓存器中获取所述k个子电路中的目标子电路对应的指令;执行所述目标子电路对应的指令;其中,所述k个处理单元并行执行自身对应的指令。
本申请实施例提供的技术方案至少包括如下有益效果:
本申请提供的量子控制微体系结构,采用的是子电路层级并行的解决方案。通过将量子电路划分为多个子电路,编译器针对每个子电路生成对应的指令,对于量子电路中可并行执行的多个子电路,由多个处理单元并行执行该多个子电路对应的指令。这种子电路层级并行的解决方案,相比于比特层级并行的解决方案,不会随着量子比特数量的增加而导致复杂度的大幅提升,因此在面对更加复杂的量子应用及不断增长的量子比特时具有更好的扩展能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种全栈可编程量子计算机的框架示意图;
图2是本申请提供的一种超导量子计算机实验平台的架构示意图;
图3示例性示出了一种量子电路的示意图;
图4是图3所示量子电路对应的一种执行结果的示意图;
图5是本申请提供的一种量子控制微体系结构的示意图;
图6是本申请提供的一种指令预取过程的示意图;
图7示例性示出了一种纠缠态制备的量子电路的示意图;
图8是本申请提供的一种量子超标量结构的示意图;
图9是本申请提供的一种量子指令执行方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行介绍说明之前,首先对本申请中涉及的一些名词进行解释说明。
1、量子计算(quantum computation):利用量子态的叠加和纠缠性质快速完成特定计算任务的方式。
2、量子比特(qubit):量子信息的基本单元,能够处于0和1的叠加态。可以对应经典计算中的经典比特。
3、量子门(quantum gates):一个基本的、仅操作较小数量量子比特的量子电路。很多个量子门组成了量子电路,就像经典数字逻辑电路中的逻辑门一样。
4、量子电路(quantum circuits):对量子比特进行一串量子门操作而组成的线路,最后通常需要进行测量来将结果读取出来。量子电路可以被认作是量子计算的一种抽象模型。
5、超导量子计算(superconducting quantum computation):使用超导电路来实现量子计算的一种技术方式,其中量子比特是使用基于约瑟夫森结(一种绝缘+超导体三明治结构)的LC振荡电路来实现,因此称之为超导技术。
6、NISQ(Noisy Intermediate Scale Quantum,嘈杂中型量子):指在实现量子纠错前,包含有一定程度噪声,由几十至数百个量子比特组成的量子计算机。
7、全栈量子计算机(full stack quantum computer):全栈量子计算机像经典计算机一样,包含量子高级语言、量子编译器、量子指令集、量子芯片等几个部分,从而实现量子操作从软件到硬件的无缝协作。
8、量子指令集(quantum instruction set architecture):在指令层面描述量子操作的架构,包含了量子芯片信息、量子门操作、指令集、寄存器等信息。
9、量子控制微体系结构(quantum control microarchitecture):量子指令集架构的具体实现方式,将一种给定指令集在处理器中执行的解决方案。
10、量子控制处理器(Quantum Control Processor,QCP):通过应用量子控制微体系结构来执行量子指令集,并完成对量子芯片全部控制操作的处理器。本申请中会直接使用QCP指代量子控制处理器。
11、量子处理器(Quantum Processing Unit,QPU):指可以用作量子计算的处理器,比如一块超导量子芯片。本申请中会直接使用QPU来指代量子处理器,QPU会受到QCP控制。
12、量子汇编(quantum assembly):量子指令的低级表示方式,类似于经典计算机中的汇编码。量子汇编包含了一条指令需要执行的基本信息,如量子操作的类别和对应的量子比特等。
13、量子编译器(quantum compiler):将量子高级语言转换为量子指令的软件,最终会生成能在硬件上执行的量子汇编指令。
14、量子高级语言(quantum high-level language):用于描述量子电路的高级语言,使用了便于描述和编写的高级语义,达到有效表述复杂量子操作的目的。
15、量子芯片结构(quantum chip layout):量子芯片的具体版图结构,包含了量子比特数量、量子比特连接情况等信息,需要提供给量子编译器和量子控制微体系结构,来完成量子程序到底层量子硬件之间的转换。
16、指令级并行(instruction-level parallelism):是关于一个计算机程序中有多少指令可以被并行处理的一种衡量方法,通常关系到处理器的指令处理能力。
17、任务级并行(task-level parallelism):一种并行任务设计的模型,通过将不同任务分配到不同的线程/计算节点中执行来完成并行运行。
18、计算机流水线(pipeline):将指令的执行拆分为数个单元,分别由不同的电路模块来运行,各个单元可以同时执行不同的指令。
19、超标量(superscalar):计算机体系结构中的一种技术,使得处理器可以同时取多条指令并进行处理,可以实现指令级并行的一种并行计算方案。具体在硬件上需要实现多个执行单元,处理器在每个时钟周期同时分发多条指令在不同执行单元中被执行,并由硬件实时检测指令间的依赖性,来判断运算是否正确。
20、超长指令字(Very Long Instruction Word,简称VLIW):和超标量一样是一种实现指令级并行的技术方案。和超标量由硬件来判断指令间的依赖不同,超长指令字的并行执行是基于编译器(软件)已确定好的一个调度,因此硬件的复杂性更低,但相应的编译器的复杂性会增加。
21、单指令多数据流(Single Instruction Multiple Data,简称SIMD):采用多个处理单元来同时处理发生在多组数据上的相同操作的一种技术。该技术大量应用于经典处理器的设计中,是一种提高指令级并行的方法。
22、量子测控系统(quantum control&measurement system):通过运行量子指令集来实现量子程序的执行,并向量子芯片提供输入信号进行控制,以及对量子芯片进行测量并采集结果的系统。针对超导量子芯片的测控系统最终产生的输出和从芯片接收到的输入都是由模拟信号来表示。
23、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列):一种可由用户自定义编程的集成电路芯片。相比于专用集成电路芯片(如我们常见的CPU(CentralProcessing Unit,中央处理器)等),FPGA可以提供更高的灵活度,以及更快速的功能实现速度(专用集成电路芯片设计周期更长)。
24、ASIC(Application Specific Integrated Circuit,专用集成电路):为某些特定功能而专门设计制造的集成电路,相比FPGA功耗低、速率高,但只能实现特定功能,且设计生产流程长。
25、模数转换(analog-to-digital convert):完成模拟信号到数字信号的转换过程(AD)。在量子测控系统中主要用作量子芯片的测量结果采集。
26、数模转换(digital-to-analog convert):完成数字信号到模拟信号的转换过程(DA)。在量子测控系统中主要用于控制信号的产生。在超导体系中,量子门的最终表现形式为一定长度的模拟信号,通过测控系统来施加到超导量子比特上去。
27、反馈控制(feedback control):量子测控系统的反馈控制包含了从量子芯片采集测量结果,进行反馈选择逻辑判断,发送选择的波形至量子芯片这整个步骤,反馈控制的延时需要尽可能低,尤其对于超导这种退相干时间较短的技术,通常希望整个反馈能在数百纳秒这个量级完成。
图1是本申请一示例性实施例提供的一种全栈可编程量子计算机的框架示意图。顶层包括量子算法、量子高级语言和量子编译器,底层是量子芯片(或称为量子电路)。为了使得两者连接在一起,与经典计算机类似,在中间层有了量子体系结构。在这样一台全栈可编程量子计算机中,量子体系结构(包括量子指令集和量子控制微体系结构)承担着沟通量子软件与量子硬件的重要作用,需要提供诸如程序流控制、反馈控制、精确的时序门操作序列等功能。
在具体的实现上,量子指令集由编译器产生,而量子控制微体系结构在硬件上实现为一个量子控制处理器(QCP),并通过执行量子指令集来完成对量子芯片的控制。该量子控制处理器的输出最终控制的是一系列模拟仪器(即图1中所示的控制&读取电子仪器),如在超导量子计算体系中,这里的模拟仪器就会将数字信号转换为模拟微波波形来对量子芯片进行控制。
图2是本申请一示例性实施例提供的一种超导量子计算机实验平台的架构示意图。图2中最右侧的是稀释制冷机21,用于为超导量子芯片25提供工作环境,超导量子芯片25工作在10mk的温度下。如前所述,超导量子芯片25由模拟波形进行控制,因此需要一套主要由FPGA和AD/DA芯片组成的测控系统22来提供控制和测量。测控系统22又由上位机23的测控软件进行控制,测控软件会决定当前需要进行的实验,以及对测控系统22进行实验配置等。
在详细介绍量子控制微体系结构之前,需要先介绍一下它和测控系统的关系。超导量子比特的退相干时间很短,目前国际上较先进的技术大概可以达到50~100微秒左右,为了达到实现容错量子计算要求的控制保真度,我们需要在测控系统上快速完成反馈控制等操作,通常要求在数百纳秒这个量级。因此,执行量子指令集的量子控制微体系结构需要和测控系统中的模拟仪器进行低延时的交互,因为一个反馈控制回路包含了从AD到指令集,进行反馈判断,再到DA这几个步骤。这就使得在超导体系下,我们无法简单地在上位机上直接实现量子指令集架构,因为现代CPU使用的PCIe(Peripheral ComponentInterconnect express,高速串行计算机扩展总线标准)等接口通常在协议层就会有数百纳秒的开销,从而使得反馈回路的延时变得不可接受。因此本申请直接将量子控制微体系结构实现在测控系统中的FPGA上,作为一个量子控制处理器来与模拟仪器进行交互,从而使得低延时反馈回路变得可能。当然,也可以使用ASIC这样的方法来实现量子控制微体系结构,但当前量子计算技术方案变化速度快,而ASIC具有开发周期长的特性,业界内尚未有相关研究使用ASIC方案。
上述相关技术提供的使用分布式架构的量子控制微体系结构,存在如下缺点:
1.由于是量子比特层次的并行,需要为每个量子比特单独配置相应的硬件子模块,如果某一量子芯片中包含的量子比特数量较多(如几十甚至上百时),就需要配置与量子比特相同数量的硬件子模块,导致整个系统结构的复杂度显著提升。
2.由于采用的是分布式架构,不同硬件子模块(或者说不同量子比特)间操作的同步还需要通过一个总控的触发分发硬件模块(简称为“总控模块”)来完成时间上的对齐,为此还添加了相应的等待、同步等指令。在量子程序开始运行之后,当不同硬件子模块间需要同步或传输测量结果时,需要通过总控模块来进行触发分发和数据传输。同样地,随着量子比特数量的增多,各硬件子模块间同步的复杂度也会同步提升。
3.由于编译器需要针对每个量子比特单独生成其所对应的指令,因此随着量子比特数量的增多,编译器的复杂度也会同步提升。
综合上述缺点,会导致相关技术提供的这种使用分布式架构的量子控制微体系结构,难以随着比特数量上升而保持扩展。
本申请提供的量子控制微体系结构,采用的是子电路层级并行的解决方案。一个量子电路可以被划分为多个子电路,每个子电路用于实现该量子电路中的一部分功能。每个子电路可用于控制一个或者多个量子比特。例如,可以从量子电路的结构或者功能模块的角度,对量子电路进行子电路划分。
本申请通过将量子电路划分为多个子电路,编译器针对每个子电路生成对应的指令,对于量子电路中可并行执行的多个子电路,由多个处理单元并行执行该多个子电路对应的指令。这种子电路层级并行的解决方案,相比于比特层级并行的解决方案,不会随着量子比特数量的增加而导致复杂度的大幅提升,因此具有更好的扩展能力。另外,在本申请可选实施例中,还提供了一种使用量子超标量架构来进行量子操作指令层级的并行处理,从而在一定时间内为量子处理器提供所需的量子操作指令。最终形成的量子控制微体系结构设计方案可以使得量子体系结构扩展至控制数百比特以上。
在经典计算机中,当现有技术无法继续增加时钟频率和每时钟周期可执行的指令数量时,人们开始探索使用多核处理器来继续提升处理器的性能,并提出了所谓的线程层级并行概念。对于一个多核处理器来说,它是通过让各个核来执行不同的线程(或进程)来达到提高并行度的目的,当然前提是这些任务是相对独立的。在经典计算机中,通常会使用编译器或者操作系统来调度一个程序中的多个任务,将其平均分配在各个核上,以达到最大程度的并行。
而在量子计算机中,本申请同样发现在一个量子电路中,很可能会包含多个子电路需要被同时处理。为了更好地说明这一问题,本申请用图3中所示的量子电路来作为例子,包括了对应量子比特0~2(图中为q0、q1和q2)的RUS子电路W1和对应量子比特3~4(图中为q3和q4)的RUS子电路W2。RUS(Repeat-Until-Success,重复直到成功)是一种不断重复某些量子操作直到得到期望的量子状态为止的一个过程,可以作为一种用有限量子操作来实现任意量子门的方法。以W1电路为例,我们需要先执行一系列电路所包含的量子操作,随后对q0和q1这两个辅助量子比特(ancilla qubits)进行测量。如果测量结果显示为失败(即没有得到期望的量子态),那么就对q2这个数据量子比特(data qubit)进行一个恢复操作使其回到开始的状态,随后再重复上述过程,直到测量结果为成功,此时视为完成了该电路的执行。图3中展示的量子电路包含了两个RUS子电路,且这两个子电路没有任何数据上的依赖性,理论上可以并行执行。
由于RUS子电路包含了反馈控制操作(即需要等到量子电路测量结果返回到量子控制处理器后,才能决定下一步指令指针跳转到量子程序的哪个位置),在使用已有的基于单核的微体系结构来执行图3所示量子电路对应的量子程序时,整个程序在结束子电路W1的操作前不会进行关于子电路W2的任何操作。这是因为单核系统只有一个程序流指针,而这个指针会被一直“阻塞”在子电路W1的指令中,直到它的测量结果为成功为止。
因此,这个程序执行出来的结果会是如图4所示的量子电路,即先完成子电路W1的执行,再完成子电路W2的执行。这显然不是期望的结果。并且,由于量子比特空闲的时间越长,积累的错误就会越多,因此两个RUS子电路顺序执行会使最终结果的错误率大于并行执行的结果。
需要再着重说明的是,这里的问题并不能单纯靠提高量子控制处理器的指令处理速度就能解决,因为这里的反馈控制操作涉及到了量子控制处理器和量子芯片(即量子电路)的交互。因此就算量子控制处理器本身具有同时处理五个量子比特上操作的能力,在这种情况下仍然需要等待量子芯片返回结果才能进行下一步。这也是我们将这种问题称为子电路层级并行的原因。
图5是本申请一示例性实施例提供的一种量子控制微体系结构的示意图。该量子控制微体系结构包括:调度器51、指令存储器52、多个处理单元53,以及该多个处理单元53分别对应的私有指令缓存器(Private Instruction Cache,简称PIC)54。
指令存储器52中存储有量子电路对应的量子程序所编译生成的量子指令集。例如,编译器对量子电路对应的量子程序进行编译,生成量子指令集,并将该量子指令集存储在指令存储器52中。该指令存储器52也可以称为主存储器,一个量子电路对应的量子程序所编译生成的所有指令,均被存放在该指令存储器52中,可被所有处理单元53共享。
在本申请提供的量子控制微体系结构中,包括多个处理单元53,每个处理单元53都拥有自己独立的私有指令缓存器54,用于存储该处理单元53执行的指令。另外,每个处理单元53还可拥有自己独立的程序计数器、寄存器和执行单元等。通过上述方式,使得各个处理单元53在执行电路时互不影响。
在本申请实施例中,量子电路包括n个子电路,上述量子指令集包括n个子电路分别对应的指令,n为大于1的整数。其中,一个量子电路可以被划分为多个子电路,每个子电路用于实现该量子电路中的一部分功能。每个子电路可用于控制一个或者多个量子比特。例如,可以从量子电路的结构或者功能模块的角度,对量子电路进行子电路划分。
调度器51用于确定量子电路中并行执行的k个子电路,k为大于1的整数;从指令存储器52中获取k个子电路分别对应的指令;将k个子电路分别对应的指令,分别存储至k个处理单元53分别对应的私有指令缓存器54中。
k个处理单元53中的目标处理单元用于从目标处理单元对应的私有指令缓存器中获取k个子电路中的目标子电路对应的指令;执行该目标子电路对应的指令;其中,k个处理单元并行执行自身对应的指令。
在示例性实施例中,如图5所示,本申请提供的量子控制微体系结构还包括信息寄存器55,该信息寄存器55中存储有以下至少一项信息:指令地址信息、子电路时序信息。
可选地,信息寄存器55中存储有n个子电路分别对应的指令地址信息,该指令地址信息用于指示子电路对应的指令在指令存储器52中的存储地址。例如,某一个子电路对应的指令地址信息,包括该子电路对应的指令在指令存储器52中的起始地址和结束地址,这样调度器51就可以基于该指令地址信息方便地将子电路对应的指令,从指令存储器52中取至处理单元53对应的私有指令缓存器54中。例如,调度器51从信息寄存器55中获取上述k个子电路分别对应的指令地址信息,基于该k个子电路分别对应的指令地址信息,从指令存储器中获取k个子电路分别对应的指令。
可选地,信息寄存器55中存储有量子电路对应的子电路时序信息,该子电路时序信息用于指示n个子电路的执行先后顺序。调度器51用于从信息寄存器55中读取子电路时序信息,基于该子电路时序信息确定量子电路中并行执行的k个子电路。量子操作的指令需要包含时序信息,这样量子控制处理器在处理指令时,才能按确定的时间将量子操作发送至量子电路上。因此,子电路也需要拥有自己的时序信息,不仅是为了延续指令的时序信息,同样方便调度器51决定哪些子电路可以并行处理。如RUS之类的量子电路在运行之前并不能得到确定的执行时间,因此本申请选择使用相对的时序信息来指定各个子电路之间的执行先后顺序,即依赖性。
表1示例性给出了一个信息寄存器55中存储信息的格式示例。通过读取子电路W1和W2的相关信息,调度器将这两个子电路的指令分别取至处理单元1和处理单元2的私有指令缓存器中,而读取到子电路W3需要在前两个子电路(即W1和W2)结束后才执行,调度器会等待处理单元1和2在结束两个子电路的执行后,再取子电路3的指令到处理单元中执行。同样地,子电路4会在子电路3结束后开始执行。
表1
子电路 | 指令起始地址 | 指令结束地址 | 依赖电路 |
W<sub>1</sub> | 0 | 10 | 无 |
W<sub>2</sub> | 11 | 20 | 无 |
W<sub>3</sub> | 21 | 40 | W<sub>1</sub>,W<sub>2</sub> |
W<sub>4</sub> | 41 | 60 | W<sub>3</sub> |
当量子程序开始运行时,调度器51会不断读取信息寄存器55中的内容来将不同程序块(即不同子电路对应的指令)分配至各个处理单元中。调度器51中的第一步是进行依赖性检查,这里先介绍一下该依赖性的具体表示方法。一种最直接的表示方法是通过将每个所依赖的电路用一位比特(bit)来表示。以量子电路总共包括n个子电路为例,那么这种表示方法下,每一个子电路对应的依赖性采用n位比特来表示。如表1的例子中,W1和W2的依赖性为4bit 0000,W3的依赖性为4bit 0011,W4的依赖性为4bit 0100。这种方法的弊端是当子电路数量增多时,信息寄存器55中表示依赖性所需要的存储也线性增长,当电路复杂时很难扩展。
在另一种可能的实现方式中,使用优先级来更简洁地表示依赖性。子电路时序信息包括n个子电路分别对应的优先级;其中,具有相同优先级的子电路是可并行执行的,具有不同优先级的子电路是不可并行执行的。如表1的例子中,W1、W2、W3和W4这四个子电路的优先级分别为0、0、1和2,表示如下表2所示:
表2
子电路 | W<sub>1</sub> | W<sub>2</sub> | W<sub>3</sub> | W<sub>4</sub> |
优先级 | 2bit 00 | 2bit 00 | 2bit 01 | 2bit 02 |
具有相同优先级的子电路意味着可以并行处理。此时,调度器51会使用一个初始值为0的优先级计数器来进行依赖性检查,而和该计数器的值相同的子电路可以通过这一步骤,进入下一步。在当前优先级的子电路都执行完成后,该计数器的值会递增,从而开始其余子电路的调度。采用这种优先级对依赖性进行表示的方法,假设量子电路中包括的n个子电路总共具有s种不同的优先级(s为正整数),那么每一个子电路对应的依赖性采用p位比特来表示,其中,p是使得2p大于或等于s的最小正整数。例如,当s为3或4时,p为2;当s为5至8中的任一整数时,p为3。可见,使用优先级能够更加简洁地表示依赖性,有助于节省子电路时序信息所需的比特存储开销。
另外,依赖性检查的结果随之被用于决定往哪个处理单元分配子电路对应的指令。本申请可以使用一系列状态寄存器来表示每个子电路的状态,包括“wait(等待)”、“inexecution(正在执行)”和“done(执行完成)”这几种状态。所有子电路的初始状态均为等待状态,当某个子电路通过了依赖性检查并且当前存在空闲的处理单元时,该子电路的状态会改变为正在执行状态。处理单元返回的执行完成信号可以被用作指示开始接下来的子电路的处理,比如之前描述的优先级计数器递增。
在调度器51进行子电路对应的指令的分发过程中,各个子电路对应的指令会从指令存储器52中被取至各个处理单元53的私有指令缓存器54。当处理单元53完成对当前子电路的执行后,其需要切换到下一个准备执行的子电路。显然,重新将指令取至缓存中需要花费一定时间,且有可能会超过期望的下个子电路中量子操作开始执行的时间。为了减少这一开销,本申请提出了如下解决方案:调度器51在k个子电路处于正在执行状态的情况下,确定量子电路中位于该k个子电路之后执行的待执行子电路,从指令存储器52中获取待执行子电路对应的指令,将待执行子电路对应的指令,存储至执行处理单元对应的空闲私有指令缓存器中;其中,执行处理单元属于上述k个处理单元。也即,本申请针对每一个处理单元53,可以对应配置2个私有指令缓存器,从而使得其中一个私有指令缓存器可以存储正在执行的子电路对应的指令,而另一个私有指令缓存器可以预先存储下一个待执行子电路对应的指令。
基于此流程,也可以为上述状态寄存器添加了一个“prefetch(预取指令)”状态。调度器51还用于在状态寄存器中存储n个子电路分别对应的状态信息;其中,任意一个子电路的状态信息为以下任意一种:等待状态、预取指令状态、正在执行状态、执行完成状态。一个该流程的示例如图6所示,在这个过程中,如图6的(a)部分所示,当子电路W3的前置电路(即子电路W1和W2)都进入正在执行状态后,该子电路W3对应的指令被预取至处理单元1对应的空闲私有指令缓存器(图6中为Cache 2)中。如图6的(b)部分所示,而当子电路W3开始执行后,子电路W4对应的指令又被预取至之前W1对应的指令所在的私有指令缓存器(图6中为Cache 1)中。基于此方法,处理单元在切换子电路时仅需进行一次switch(切换)操作,仅需一个时钟周期即可。
指令在进入处理单元53后所进行的操作大概分为以下几步:取指,解码,生成操作,送入各量子比特所对应的操作队列中,最终等待按照时序信息发射给模拟仪器。需要注意的是,在不同的量子程序中,不同的子电路所对应的量子比特是会改变的。比如图3的例子中,当两组比特q0~q1和q3~q4分别执行完两个RUS电路后,可能下一时刻就是五个比特共同执行另一个任务,这时就需要调度器51重新进行分配。在每个子电路对应的指令中,最后需要有一条类似停止的指令,来指示当前子电路的结束。当处理单元53执行到这条指令时就会通知调度器51可以开始下一个任务的操作,此时调度器51再通过访问信息寄存器55,来从指令存储器52中取出下一项任务的指令至处理单元53的私有指令缓存器54中。
本申请提供的量子控制微体系结构具有动态分配子电路的能力。量子电路包括的n个子电路是动态分配给处理单元53执行的,且每个处理单元53具有执行上述n个子电路中的任意子电路对应的指令的能力。正是因为处理单元53可以处理任意含高级语义的指令,即不同比特、不同种类的操作都可以被同一个处理单元53执行,因此使得量子控制微体系结构具有动态分配子电路的能力。从图5中可以看到,所有针对量子比特的操作在最后的发射器(emitter)处被重组为与底层模拟仪器相关的位操作,如针对同一比特的操作会被分配至不同的模拟通道,从而在整体架构上允许子电路模块的动态分配。
在经典处理器中,一个多核系统最需要关注的问题是Cache一致性,即多个处理单元向共有的Cache中写入/读取数据时,怎样保证Cache中的数据不产生冲突。量子控制微体系结构因为需要处理经典辅助指令,同样需要对寄存器进行读写操作。但就目前的量子应用而言,通常需要用到的经典寄存器数量较少,暂不需要用到统一的寄存器进行存储。因此在本申请提出的量子控制微体系结构中,每个处理单元都有自己独立的寄存器文件,避免了Cache一致性问题。
另外,一个量子控制微体系结构中的处理单元数代表着该量子控制处理器最多能支持多少子电路的并行处理。显然,当具体在硬件上实现该量子控制微体系结构时,这个值具体是多少还需视所对应的量子电路大小和需要运行的量子程序的要求来决定,很难对所有情况给出一个固定的值。
综上所述,本申请实施例提供的量子控制微体系结构,采用的是子电路层级并行的解决方案。通过将量子电路划分为多个子电路,编译器针对每个子电路生成对应的指令,对于量子电路中可并行执行的多个子电路,由多个处理单元并行执行该多个子电路对应的指令。这种子电路层级并行的解决方案,相比于比特层级并行的解决方案,不会随着量子比特数量的增加而导致复杂度的大幅提升,因此在面对更加复杂的量子应用及不断增长的量子比特时具有更好的扩展能力。
而且通过在子电路层级进行调度和执行的方法,可以在控制层面实现量子电路的任务级并行,这样的方法有助于实现更高深度、更多比特、更复杂的量子电路的实现,为量子体系结构提供了更高的可扩展性。
并且,本申请提供的量子控制微体系结构采用的是中央式架构,即所有指令在一块硬件(如由一块FPGA实现的量子控制处理器)上执行,从而可以省去硬件子模块之间的同步操作,有助于降低复杂度且节省指令执行耗时。
上文介绍了通过子电路层级并行来节省运行时间,且使得量子控制微体系结构具有更好的扩展能力。下面,将介绍本申请提供的量子操作层级并行的指令执行方法,以在此基础上进一步提升指令执行的效率和准确性。
经典计算机的体系结构中会使用一个名为指令平均周期数(Cycle PerInstruction,简称CPI)的指标来量化计算机处理器的性能。这个指标代表着处理一条指令所需要的平均时钟周期,对经典计算机来说,越低的CPI意味着越好的性能,因为这代表着计算机完成一个任务所需的时间会更短。降低CPI最直接的方法就是挖掘指令层级并行的能力,即如果指令之间有可能可以同时被处理而不产生冲突,那么就可以用一些技术手段来增加处理器的并行程度。一个理想的流水线处理器的CPI为1,而使用了超标量或VLIW等技术的处理器可能可以将CPI降至小于1。
我们同样希望量子指令集和量子控制处理器降低CPI,但和经典计算机的目的有所不同。相比于低CPI的经典处理器,一个高CPI的处理器会花更长的时间才能完成程序的运行,不过这实际上并不影响程序的运行结果,即其运行结果仍然是正确的。而对于量子指令集来说,如果不能保证量子电路在一定时间内得到所需的指令处理结果,那么最终量子程序执行的结果会发生错误(因为量子比特在等待期间会累计错误)。为了量化这一过程,本申请给出如下公式:
CES=(pipeline CEQI)*QICES
+classical instruction cycles
+classical control stalls
+QCP conditional execution delay
本公式中CES(cycles each step)代表了QCP中处理每一步中的量子操作所花的时间。在这里本申请认为这个值主要由四部分组成:(1)量子指令的处理时间,即流水线中每条量子指令(pipeline CEQI:cycles each quantum instruction)所花费的时间(理想情况下为1)乘以每一步中的量子指令数量(QICES:quantum instruction count eachstep)。(2)经典指令的处理时间(即上述公式中classical instruction cycles)。(3)经典控制流程所造成的流水线暂停(即上述公式中classical control stalls),如跳转过程。(4)反馈控制过程中QCP进行有条件执行所花的延时(即上述公式中QCP conditionalexecution delay)。关于这里所说的“每一步”,我们用图7中的例子进行解释。图7示例性示出了一种纠缠态制备的量子电路的示意图,图7中的量子电路可以被划分成五个步骤,我们可以通过计算五个步骤的CES来衡量QCP的性能。其中步骤5包含了一个反馈控制过程,因此在计算时需要加上QCP对反馈回来的信号进行处理的情况。
量子控制微体系结构的设计目标是将每一步的量子操作都及时地发送到QPU上。这一目标可以用下述时间比例(timing ratio,简称TR)来表述:
因为QPU可以完全并行地执行每一步中的量子操作,所以我们可以用gate time来表示QPU时间。QCP时间则由QCP的周期时间(即上式中的clock time)乘以CES组成。TR小于等于1即意味着在执行量子电路时QPU不需要等待QCP,即避免了产生额外的错误。
在目前技术实现的超导体系中,最短的量子操作时间通常是单比特量子门,长度大约为20ns左右。那么对于量子控制处理器来说,这个时间就是需要通过利用指令层级并行度来达到的目的。最需要关注的还是可扩展性问题——随着量子比特数增多,同时发生的操作也会增多,但量子门操作的时间不会增加。
量子指令集中的指令主要分为量子操作指令(简称为“量子指令”)和经典辅助指令(简称为“经典指令”)两部分。其中量子指令主要是指与量子电路上要进行的操作相关的指令,如单比特门、双比特门、测量指令等。经典指令是指用于实现程序流控制的指令,主要包括了简单的加减、比较等寄存器操作,以及分支跳转操作。基于这些经典指令,量子指令集可以很好地支持如循环和递归等高级语言的语义,简化量子程序的描述难度,不过这些语义出现的频率相对较低,且主要在一个程序的开头和结尾;而更重要的是这些指令可以支持反馈控制操作,而这种操作出现的频率更高,在接下来的部分也会重点讨论。
从理论上分析,量子指令是很好并行的一类指令。这主要是因为量子计算的本质是一种存算一体的结构(in-memory computing),即量子比特是存储数据的单元,计算的时候由外部将各种量子操作提供给量子比特作为输入,完成相应的运算。这一过程和经典计算是相反的,经典计算中电路代表着操作,计算时将数据输入到电路中,得到输出的数据。因为量子计算这一特质,经典计算中指令并行时需要考虑的数据冒险等问题都不存在,即不同量子比特上进行的操作本质上就是可以并行的。
虽然量子指令理论上很好并行,但在真实的实验环境中处理量子指令集时,这种理想情况却又很难达到,其中最根本的原因是因为有反馈控制等经典指令的加入。
为了提高量子指令集的并行度,我们需要在量子控制微体系结构中采用多执行单元(execution unit)来处理量子指令。正如前文所介绍的,量子指令之间不存在数据依赖性等问题,因此几乎不需要额外的硬件开销来进行冒险检测,也就是说超标量和VLIW的硬件实现难度并没有太大区别。相比之下,使用超标量结构可以不改变单条指令的宽度,避免了使用变长指令字的情况,相比VLIW更有优势,因此本申请提出了一种量子超标量结构来提高量子控制微体系结构的量子操作指令层级的并行度。通过使用多执行单元,前文CES的计算公式中第一项可以被修改为:
其中,number of execution units代表执行单元的数量。
图8展示了一个执行单元数量为4的超标量结构示例。在多核量子控制微体系结构下的每个处理单元53内有1条经典流水线53a和4条量子流水线53b,分别对经典指令和量子指令进行解码、执行等操作。因为多执行单元并不涉及经典指令,因此经典流水线53a的个数固定为1,即每个时钟周期最多处理一条经典指令,而4条量子流水线53b可以分别处理4条量子指令。这个结构主要的难点在于如何取指令至各流水线,为此本申请在处理单元53中设计了预解码器53c。
以目标处理单元为例,目标处理单元(如目标处理单元的预解码器)从自身对应的私有指令缓存器中获取目标子电路对应的m条指令,m等于目标处理单元包含的量子流水线的数量,m为正整数。之后,在上述m条指令均为量子指令的情况下,预解码器将m条指令分发给m个量子流水线进行处理,每个量子流水线用于处理一条量子指令。
可选地,在上述m条指令中存在经典指令的情况下,预解码器将经典指令按序逐条分发给经典流水线进行处理。可选地,若存在执行顺序位于经典指令之前的a条量子指令,则预解码器将该a条量子指令分发至a个量子流水线中,每个量子流水线用于处理一条量子指令,a为正整数。若存在执行顺序位于经典指令之后的b条量子指令,则预解码器将该b条量子指令存储至指令缓存器中,b为正整数。
在图8所示的执行单元(是指用于执行量子指令的量子执行单元)数量为4的超标量结构中,当预解码器53c从指令缓存器和标志位寄存器(用于存储各个指令的标志位,该标志位用于指示该指令是量子指令还是经典指令)中取出数据后,需要进行分发选择。在执行单元为4的这个例子中,每次取指会固定取4条指令,即默认情况下每个程序计数器的值加4。取回的4条指令有以下几种情况:
a)取回的4条指令均是量子指令:这种情况下直接将4条指令分别分发至4条量子流水线进行处理即可。
b)取回的4条指令中有经典指令:有经典指令意味着本次取回的指令不能全部一次性进行并行处理。在经典指令前的连续量子指令依然会被一次性送入量子流水线中进行处理,而经典指令只能一条接一条地被处理。这也意味着在本周期内不是所有取出的4条指令都会被发送出去。在下个周期,还未被发送的指令和新取回的部分指令重新组成4条指令来进行发送检查,而额外的指令则被存放在一个指令缓存器中,该指令缓存器的深度需要至少为4。当指令缓存器中的值为4时可以暂停取指一个周期,因为无论何种情况当前指令缓存器中的指令数量已满足需求,而持续的取指可能会造成指令缓存器溢出。另外,本申请不建议根据指令缓存器中的值来修改程序计数器中的值,因为这会造成额外的延时。
综上所述,本申请提供了一种使用量子超标量架构来进行量子操作指令指令层级的并行处理,从而在一定时间内为量子处理器提供所需的量子操作指令,保证了指令执行的高效性和准确性。
本申请一示例性实施例还提供了一种量子控制处理器,该量子控制处理器具有上文实施例介绍的量子控制微体系结构。可选地,该量子控制处理器可以是FPGA或ASIC。
图9是本申请一示例性实施例提供的一种量子指令执行方法的流程图。该方法可应用于上文实施例介绍的量子控制微体系结构中。该方法可以包括如下步骤:
步骤910,调度器确定量子电路中并行执行的k个子电路,k为大于1的整数。
可选地,调度器从信息寄存器中读取子电路时序信息,基于子电路时序信息确定量子电路中并行执行的k个子电路。
可选地,子电路时序信息包括n个子电路分别对应的优先级;其中,具有相同优先级的子电路是可并行执行的,具有不同优先级的子电路是不可并行执行的。
步骤920,调度器从指令存储器中获取k个子电路分别对应的指令。
可选地,调度器从信息寄存器中获取k个子电路分别对应的指令地址信息,基于该k个子电路分别对应的指令地址信息,从指令存储器中获取k个子电路分别对应的指令。
步骤930,调度器将k个子电路分别对应的指令,分别存储至k个处理单元分别对应的私有指令缓存器中。
步骤940,k个处理单元中的目标处理单元从目标处理单元对应的私有指令缓存器中获取k个子电路中的目标子电路对应的指令。
步骤950,目标处理单元执行目标子电路对应的指令;其中,k个处理单元并行执行自身对应的指令。
在示例性实施例中,调度器在k个子电路处于正在执行状态的情况下,确定量子电路中位于k个子电路之后执行的待执行子电路;从指令存储器中获取待执行子电路对应的指令;将待执行子电路对应的指令,存储至执行处理单元对应的空闲私有指令缓存器中;其中,执行处理单元属于k个处理单元。
可选地,调度器在状态寄存器中存储n个子电路分别对应的状态信息;其中,任意一个子电路的状态信息为以下任意一种:等待状态、预取指令状态、正在执行状态、执行完成状态。
在示例性实施例中,目标处理单元从目标处理单元对应的私有指令缓存器中获取目标子电路对应的m条指令,m等于目标处理单元包含的量子流水线的数量,m为正整数;在m条指令均为量子指令的情况下,将m条指令分发给m个量子流水线进行处理,每个量子流水线用于处理一条量子指令。
可选地,目标处理单元在m条指令中存在经典指令的情况下,将经典指令按序逐条分发给经典流水线进行处理。
可选地,若存在执行顺序位于经典指令之前的a条量子指令,则目标处理单元将该a条量子指令分发至a个量子流水线中,每个量子流水线用于处理一条量子指令,a为正整数;若存在执行顺序位于经典指令之后的b条量子指令,则目标处理单元将该b条量子指令存储至指令缓存器中,b为正整数。
对于本申请方法实施例中未详细说明的内容,可参见上文关于量子控制微体系结构的实施例中的介绍说明,此处不再赘述。
综上所述,本申请提供的量子指令执行方法,采用的是子电路层级并行的解决方案。通过将量子电路划分为多个子电路,编译器针对每个子电路生成对应的指令,对于量子电路中可并行执行的多个子电路,由多个处理单元并行执行该多个子电路对应的指令。这种子电路层级并行的解决方案,相比于比特层级并行的解决方案,不会随着量子比特数量的增加而导致复杂度的大幅提升,因此具有更好的扩展能力。另外,在本申请可选实施例中,还提供了一种使用量子超标量架构来进行量子操作指令层级的并行处理,从而在一定时间内为量子处理器提供所需的量子指令。最终形成的量子控制微体系结构设计方案可以使得量子体系结构扩展至控制数百比特以上。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种量子控制微体系结构,其特征在于,所述量子控制微体系结构包括:调度器、指令存储器、多个处理单元,以及所述多个处理单元分别对应的私有指令缓存器;其中,所述指令存储器中存储有量子电路对应的量子程序所编译生成的量子指令集,所述量子电路包括n个子电路,所述量子指令集包括所述n个子电路分别对应的指令,所述n为大于1的整数;
所述调度器,用于确定所述量子电路中并行执行的k个子电路,所述k为大于1的整数;从所述指令存储器中获取所述k个子电路分别对应的指令;将所述k个子电路分别对应的指令,分别存储至k个处理单元分别对应的私有指令缓存器中;
所述k个处理单元中的目标处理单元,用于从所述目标处理单元对应的私有指令缓存器中获取所述k个子电路中的目标子电路对应的指令;执行所述目标子电路对应的指令;其中,所述k个处理单元并行执行自身对应的指令。
2.根据权利要求1所述的量子控制微体系结构,其特征在于,所述量子控制微体系结构还包括信息寄存器,所述信息寄存器中存储有以下至少一项信息:
所述量子电路对应的子电路时序信息,所述子电路时序信息用于指示所述n个子电路的执行先后顺序;
所述n个子电路分别对应的指令地址信息,所述指令地址信息用于指示所述子电路对应的指令在所述指令存储器中的存储地址。
3.根据权利要求2所述的量子控制微体系结构,其特征在于,所述调度器用于:
从所述信息寄存器中读取所述子电路时序信息;
基于所述子电路时序信息确定所述量子电路中并行执行的k个子电路。
4.根据权利要求2所述的量子控制微体系结构,其特征在于,所述调度器用于:
从所述信息寄存器中获取所述k个子电路分别对应的指令地址信息;
基于所述k个子电路分别对应的指令地址信息,从所述指令存储器中获取所述k个子电路分别对应的指令。
5.根据权利要求2所述的量子控制微体系结构,其特征在于,所述子电路时序信息包括所述n个子电路分别对应的优先级;其中,具有相同优先级的子电路是可并行执行的,具有不同优先级的子电路是不可并行执行的。
6.根据权利要求1所述的量子控制微体系结构,其特征在于,所述调度器还用于:
在所述k个子电路处于正在执行状态的情况下,确定所述量子电路中位于所述k个子电路之后执行的待执行子电路;
从所述指令存储器中获取所述待执行子电路对应的指令;
将所述待执行子电路对应的指令,存储至执行处理单元对应的空闲私有指令缓存器中;其中,所述执行处理单元属于所述k个处理单元。
7.根据权利要求6所述的量子控制微体系结构,其特征在于,所述调度器还用于:
在状态寄存器中存储所述n个子电路分别对应的状态信息;
其中,任意一个子电路的状态信息为以下任意一种:等待状态、预取指令状态、正在执行状态、执行完成状态。
8.根据权利要求1所述的量子控制微体系结构,其特征在于,所述n个子电路是动态分配给所述处理单元执行的,且每个所述处理单元具有执行所述n个子电路中的任意子电路对应的指令的能力。
9.根据权利要求1所述的量子控制微体系结构,其特征在于,所述目标处理单元用于:
从所述目标处理单元对应的私有指令缓存器中获取所述目标子电路对应的m条指令,所述m等于所述目标处理单元包含的量子流水线的数量,所述m为正整数;
在所述m条指令均为量子指令的情况下,将所述m条指令分发给m个量子流水线进行处理,每个量子流水线用于处理一条量子指令。
10.根据权利要求9所述的量子控制微体系结构,其特征在于,所述目标处理单元还用于:
在所述m条指令中存在经典指令的情况下,将所述经典指令按序逐条分发给经典流水线进行处理。
11.根据权利要求10所述的量子控制微体系结构,其特征在于,所述目标处理单元还用于:
若存在执行顺序位于所述经典指令之前的a条量子指令,则将所述a条量子指令分发至a个量子流水线中,每个量子流水线用于处理一条量子指令,所述a为正整数;
若存在执行顺序位于所述经典指令之后的b条量子指令,则将所述b条量子指令存储至剩余指令缓存器中,所述b为正整数。
12.一种量子控制处理器,其特征在于,所述量子控制处理器具有如权利要求1至11任一项所述的量子控制微体系结构。
13.一种量子指令执行方法,其特征在于,应用于量子控制微体系结构中,所述量子控制微体系结构包括:调度器、指令存储器、多个处理单元,以及所述多个处理单元分别对应的私有指令缓存器;其中,所述指令存储器中存储有量子电路对应的量子程序所编译生成的量子指令集,所述量子电路包括n个子电路,所述量子指令集包括所述n个子电路分别对应的指令,所述n为大于1的整数;所述方法包括:
所述调度器确定所述量子电路中并行执行的k个子电路,所述k为大于1的整数;从所述指令存储器中获取所述k个子电路分别对应的指令;将所述k个子电路分别对应的指令,分别存储至k个处理单元分别对应的私有指令缓存器中;
所述k个处理单元中的目标处理单元从所述目标处理单元对应的私有指令缓存器中获取所述k个子电路中的目标子电路对应的指令;执行所述目标子电路对应的指令;其中,所述k个处理单元并行执行自身对应的指令。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110393763.7A CN113326066B (zh) | 2021-04-13 | 2021-04-13 | 量子控制微体系结构、量子控制处理器及指令执行方法 |
JP2022513529A JP7317218B2 (ja) | 2021-04-13 | 2021-09-10 | 量子制御システム、量子制御処理器及び量子命令セットの実行方法 |
PCT/CN2021/117616 WO2022217823A1 (zh) | 2021-04-13 | 2021-09-10 | 量子控制系统、量子控制处理器及量子指令集的执行方法 |
KR1020227004548A KR20220142992A (ko) | 2021-04-13 | 2021-09-10 | 양자 제어 시스템, 양자 제어 프로세서, 및 양자 명령어 세트를 실행하기 위한 방법 |
EP21835925.5A EP4095766B1 (en) | 2021-04-13 | 2021-09-10 | Quantum control system, quantum control processor, and execution method for quantum instruction set |
US17/585,329 US20220327413A1 (en) | 2021-04-13 | 2022-01-26 | Quantum control system, quantum control processor, and quantum instruction set execution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110393763.7A CN113326066B (zh) | 2021-04-13 | 2021-04-13 | 量子控制微体系结构、量子控制处理器及指令执行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113326066A true CN113326066A (zh) | 2021-08-31 |
CN113326066B CN113326066B (zh) | 2022-07-12 |
Family
ID=77414715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110393763.7A Active CN113326066B (zh) | 2021-04-13 | 2021-04-13 | 量子控制微体系结构、量子控制处理器及指令执行方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113326066B (zh) |
WO (1) | WO2022217823A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778528A (zh) * | 2021-09-13 | 2021-12-10 | 北京奕斯伟计算技术有限公司 | 指令发送方法、装置、电子设备及存储介质 |
CN114565099A (zh) * | 2022-02-28 | 2022-05-31 | 中国科学技术大学 | 基于fpga生成超导量子门线路的方法 |
CN114897171A (zh) * | 2022-03-29 | 2022-08-12 | 顾中建 | 超导量子比特低延迟反馈控制电路及超导量子反馈控制方法 |
WO2022217823A1 (zh) * | 2021-04-13 | 2022-10-20 | 腾讯科技(深圳)有限公司 | 量子控制系统、量子控制处理器及量子指令集的执行方法 |
CN116187455A (zh) * | 2022-12-16 | 2023-05-30 | 中国人民解放军战略支援部队信息工程大学 | 一种经典及量子混合指令流水线设计方法及装置 |
WO2023093335A1 (zh) * | 2021-11-29 | 2023-06-01 | 上海商汤智能科技有限公司 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110311A1 (en) * | 2015-11-13 | 2016-04-21 | Robert Ralph Tucci | Method For Projecting Out Irreducible Representations From a Quantum State of n Particles with d Colors |
US20170192780A1 (en) * | 2015-12-30 | 2017-07-06 | Robert Valentine | Systems, Apparatuses, and Methods for Getting Even and Odd Data Elements |
US20190042973A1 (en) * | 2018-09-27 | 2019-02-07 | Xiang Zou | Apparatus and method for arbitrary qubit rotation |
US20190042971A1 (en) * | 2018-09-27 | 2019-02-07 | Xiang Zou | Apparatus and method for scalable qubit addressing |
CN109643326A (zh) * | 2016-08-17 | 2019-04-16 | 国际商业机器公司 | 有效减少在量子硬件上模拟费米子哈密顿量所需资源 |
CN110490327A (zh) * | 2019-07-23 | 2019-11-22 | 湖北工业大学 | 量子计算机量子处理单元、量子电路以及量子电路量子算法 |
CN111915011A (zh) * | 2019-05-07 | 2020-11-10 | 合肥本源量子计算科技有限责任公司 | 一种单振幅量子计算模拟方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201274060Y (zh) * | 2008-09-18 | 2009-07-15 | 王鹏 | 量子并行机群系统 |
WO2018119522A1 (en) * | 2016-12-30 | 2018-07-05 | 1Qb Information Technologies Inc. | Methods and systems for unified quantum computing frameworks |
CN113326066B (zh) * | 2021-04-13 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 量子控制微体系结构、量子控制处理器及指令执行方法 |
-
2021
- 2021-04-13 CN CN202110393763.7A patent/CN113326066B/zh active Active
- 2021-09-10 WO PCT/CN2021/117616 patent/WO2022217823A1/zh unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110311A1 (en) * | 2015-11-13 | 2016-04-21 | Robert Ralph Tucci | Method For Projecting Out Irreducible Representations From a Quantum State of n Particles with d Colors |
US20170192780A1 (en) * | 2015-12-30 | 2017-07-06 | Robert Valentine | Systems, Apparatuses, and Methods for Getting Even and Odd Data Elements |
CN109643326A (zh) * | 2016-08-17 | 2019-04-16 | 国际商业机器公司 | 有效减少在量子硬件上模拟费米子哈密顿量所需资源 |
US20190042973A1 (en) * | 2018-09-27 | 2019-02-07 | Xiang Zou | Apparatus and method for arbitrary qubit rotation |
US20190042971A1 (en) * | 2018-09-27 | 2019-02-07 | Xiang Zou | Apparatus and method for scalable qubit addressing |
CN111915011A (zh) * | 2019-05-07 | 2020-11-10 | 合肥本源量子计算科技有限责任公司 | 一种单振幅量子计算模拟方法 |
CN110490327A (zh) * | 2019-07-23 | 2019-11-22 | 湖北工业大学 | 量子计算机量子处理单元、量子电路以及量子电路量子算法 |
Non-Patent Citations (3)
Title |
---|
ARUTE, F 等: "Quantum supremacy using a programmable superconducting processor", 《NATURE》 * |
COLM A.RYAN等: "Hardware for Dynamic Quantum Computing", 《REVIEW OF SCIENTIFIC INSTRUMENTS 》 * |
吴楠等: "通用量子计算机:理论、组成与实现", 《计算机学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022217823A1 (zh) * | 2021-04-13 | 2022-10-20 | 腾讯科技(深圳)有限公司 | 量子控制系统、量子控制处理器及量子指令集的执行方法 |
CN113778528A (zh) * | 2021-09-13 | 2021-12-10 | 北京奕斯伟计算技术有限公司 | 指令发送方法、装置、电子设备及存储介质 |
CN113778528B (zh) * | 2021-09-13 | 2023-03-24 | 北京奕斯伟计算技术股份有限公司 | 指令发送方法、装置、电子设备及存储介质 |
WO2023093335A1 (zh) * | 2021-11-29 | 2023-06-01 | 上海商汤智能科技有限公司 | 数据处理电路及人工智能芯片、数据处理方法和装置 |
CN114565099A (zh) * | 2022-02-28 | 2022-05-31 | 中国科学技术大学 | 基于fpga生成超导量子门线路的方法 |
CN114897171A (zh) * | 2022-03-29 | 2022-08-12 | 顾中建 | 超导量子比特低延迟反馈控制电路及超导量子反馈控制方法 |
CN116187455A (zh) * | 2022-12-16 | 2023-05-30 | 中国人民解放军战略支援部队信息工程大学 | 一种经典及量子混合指令流水线设计方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113326066B (zh) | 2022-07-12 |
WO2022217823A1 (zh) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113326066B (zh) | 量子控制微体系结构、量子控制处理器及指令执行方法 | |
CN107810480B (zh) | 根据性能度量的指令块分配 | |
US5404469A (en) | Multi-threaded microprocessor architecture utilizing static interleaving | |
Hsu et al. | Highly concurrent scalar processing | |
EP3314401B1 (en) | Block-based architecture with parallel execution of successive blocks | |
US11531552B2 (en) | Executing multiple programs simultaneously on a processor core | |
Lam | Instruction scheduling for superscalar architectures | |
US20080046689A1 (en) | Method and apparatus for cooperative multithreading | |
JP2016526220A (ja) | プログラム可能な最適化を有するメモリネットワークプロセッサ | |
US10268519B2 (en) | Scheduling method and processing device for thread groups execution in a computing system | |
US20150150019A1 (en) | Scheduling computing tasks for multi-processor systems | |
US20140143524A1 (en) | Information processing apparatus, information processing apparatus control method, and a computer-readable storage medium storing a control program for controlling an information processing apparatus | |
CN114168202A (zh) | 指令调度方法、指令调度装置、处理器及存储介质 | |
US20220327413A1 (en) | Quantum control system, quantum control processor, and quantum instruction set execution method | |
Gaitan et al. | Predictable CPU architecture designed for small real-time application-concept and theory of operation | |
US20230195526A1 (en) | Graph computing apparatus, processing method, and related device | |
US10853077B2 (en) | Handling Instruction Data and Shared resources in a Processor Having an Architecture Including a Pre-Execution Pipeline and a Resource and a Resource Tracker Circuit Based on Credit Availability | |
JP2004503872A (ja) | 共同利用コンピュータシステム | |
Zagan | Improving the performance of CPU architectures by reducing the Operating System overhead | |
CN116670644A (zh) | 通用计算核上的交错处理的方法 | |
KR101373699B1 (ko) | 모바일 환경의 멀티 코어 멀티 스레드 시스템의 단일 프로세스 병렬화를 위한 분기 방법 | |
Guo et al. | Automatic Loop-based Pipeline Optimization on Reconfigurable Platform | |
WO2020053618A1 (en) | A processor and a method of operating a processor | |
Chiu et al. | Design of Instruction Address Queue for High Degree X86 Superscalar Architecture. | |
US20130061028A1 (en) | Method and system for multi-mode instruction-level streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40050614 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |