1、一种高效容错的通用量子计算机体系结构一种高效、容错的通用量子计算机体系结构吴 楠 宋方敏 南京大学计算机软件新技术国家重点实验室,江苏 南京 210093计算机科学与技术系摘要:通用量子计算机(universal quantum computer)在求解某些在经典计算机上具有超多项式复杂度的问题上存在着潜在的巨大优势。通用量子计算机体系结构在很大程度上影响量子计算功效和量子程序设计风范。本文提出一种通用量子计算机的体系结构,并考虑了在该体系结构下的计算能力扩展和容错性能等问题。关键词:通用量子计算机 体系结构 量子存储器 可扩展性 容错A Novel Kind of Architecture
2、with High-efficiency and Error-tolerance of Universal Quantum ComputerWU Nan SONG FangminState Key Laboratory of Novel Software Technology, Nanjing University, Nanjing 210093, ChinaCorresponding author: Phn +86-25-83593673, E-mail: fmsongAbstract: Universal quantum computer offers great potential ad
3、vantage for solving some problems which are of super-polynomial time complexity by contrasting with classical computer. The architecture of universal quantum computer will much affect quantum computing efficiency and the paradigm of quantum programming. This paper proposes a new kind of architecture
4、 of universal quantum computer, and considers the enhancement of computing efficiency together with error-tolerance under this architecture.Keywords: universal quantum computer, architecture, quantum memory, expandability, error-tolerance1 概 述量子计算机在求解诸如数的质因子分解、无序数据库搜索等在经典计算机上尚未找到有效算法的问题上具有潜在的巨大优势,可在
5、多项式时间内完成上述诸类运算(见表1),同时在处理保密光通信等问题上远远优于目前的经典计算机1。目前,量子计算理论和量子计算机的研究业已成为热点,包括中国在内的许多国家已就该领域的研究提出远景规划:美国军方对量子计算的研究及量子计算机的研制给予高度重视,DAPRA专门制定了“量子信息科学和技术发展规划”,目标是2012年前开发出包括核磁共振量子计算、离子阱量子计算、光量子计算、固态量子计算等新型量子计算实现平台并深入研究量子算法、量子保密通信等相关基础理论2;2004年以来,中国科学技术大学潘建伟等学者先后在国际上首次实现5粒子、6粒子光量子系统纠缠态以及终端开放的两字隐态传输实验3,引起了国
6、际学术界的广泛关注;另外,欧洲、日本等多个研究机构都对量子计算的理论和实现平台的研究投入了大量的人力和物力4。表1. 几种量子算法与经典算法复杂度比较1,4,5,17待 解 问 题经典算法复杂度量子算法复杂度非结构化搜索 (Grover算法)平衡函数确定 (Deutsch-Jossa算法)快速傅立叶变换(FFT) (QFT算法)整数质因子分解 (Shor算法)量子计算机的物理实现已经成为现实,性能也在不断提高,但目前实现的量子计算设备大都只能处理特定问题或算法,计算机科学家和物理学家正在尝试建造通用量子计算机,即可以在不改变体系结构的情况下求解各类量子计算问题。可以预见,一旦通用量子计算机研制
7、成功,即可针对各种待解问题使用量子程序设计语言编写相应的量子程序,交由通用量子计算机执行,这样人们就可以像操作经典计算机一样方便地控制量子计算机进行高效运算。为此,需要设计相应于通用量子计算机体系结构的通用量子指令系统。现今通用量子计算机的体系结构和指令系统在国外研究较少,国内迄今未见相关论述。在对通用量子计算机的体系结构及其指令系统进行探讨的基础上,本文提出了一种通用量子计算机体系结构,并考虑了在该体系结构上的量子计算可扩展性和容错性,旨在为未来通用量子计算机和通用量子程序设计语言的设计提供理论基础。2 通用量子计算机的组成定义(通用量子计算机,Deutsch 1984年)5:通用量子计算机
8、Q是满足如下条件的计算设备:(1) 可精确模拟任意图灵机;(2) 可以以任意精度模拟任何量子计算机或量子计算模拟设备;(3) 可以模拟多种现实或理论的物理系统,其中有些是经典通用图灵机T 无法模拟的;(4) 可以完全模拟任意的有穷物理系统。我们必须在通用量子计算模型上考虑量子计算机的体系结构。通用量子计算模型目前有多种,如通用量子图灵机(universal quantum Turing Machine),通用量子随机存取机(universal quantum random access machine)等,它们已被证明在计算能力上相互等价1。量子图灵机模型首先由Deutsch提出5,后由Ber
9、nstein等推广为如下定义的通用量子图灵机模型:定义(通用量子图灵机,Bernstein 1997年)6:令是由这样的复数构成的集合:存在在的多项式时间内计算的实部和虚部并精确到之内的算法。一台通用量子图灵机M 定义为一个三元组,其中以空白符号#结束的有穷字母串;Q是以初始状态和终止状态标识的有穷状态集合;是量子状态转换函数:。量子图灵机具有一条两个方向均无穷长的纪录纸带,纸带上方格的下标设为Z,一个读/写头可沿纸带向左(对应于转换函数中的L)或向右(对应于转换函数中的R)任意移动。量子图灵机中格局(configurations)、初始格局和终止格局的定义均和确定性图灵机中的定义完全一致。设
10、M 为一台通用量子图灵机,令S是M 的格局的有穷复线性组合上的满足欧几里德归一化条件的内积空间,称S中的每个元素为M 的一个叠加。量子图灵机M 定义了一个线性算符,称为M 的时间演化算符:如果M 以格局c起始,当前状态为p并且扫描了一个标识符;下一步动作时,M将会被置为格局的叠加:,其中每个非零的都与一个转换对应,是由向c施行转换得到的新的格局。通过线性时间演化算符可以将这种操作扩展到整个S空间。经典的冯诺依曼体系结构计算机是以经典确定性图灵机为计算模型的,这是一种以程序储存为核心的计算机体系结构。经典冯诺依曼体系结构的提出以经典确定性图灵机的主要组成部分为依据。可从如下五个主要部分考虑:分别
11、为运算器、控制器、存储器、输入设备和输出设备;每个部分都与经典的确定性图灵机模型中的要件一一对应:存储器对应于图灵机中的“纸带”,输入输出设备对应于图灵机中的“读/写头”,而控制器则对应于状态转移函数的作用,运算则对应确定性图灵机中格局的变化。仿照经典冯诺依曼体系结构计算机的设计思路,我们从通用量子图灵机的构成入手,以量子计算的物理背景为依据,提出了构成通用量子计算机的“部件”。首先,通用量子图灵机也拥有一条无限长的“纸带”,由此可设置一个量子存储器;量子存储器可以储存量子计算的中间结果,也可以用于输入数据、输出数据的暂存。量子图灵机中的读/写头和状态转移函数提示在通用量子计算机中应设置输入设
12、备、输出设备以及控制器;与经典图灵机不同,通用量子图灵机中存在着状态的叠加,即量子态叠加(quantum superposition of states),而经典图灵机中引起的“格局变化”的“动作”(可理解为运算)在量子图灵机中由一个时间演化算符(酉演化算符)取代。因此,在通用量子计算机中有必要加入一个部件来进行专门的“量子运算”,即负责处理量子图灵机运行时刻所需的量子叠加态和酉演化。由此,一台通用量子计算机则可具有如下组成,所使用的计算模型是通用量子图灵机:(1)存储器;(2)运算器;(3)控制器;(4)输入设备;(5)输出设备。3 通用量子计算机体系结构上一节我们提出了一种通用量子计算机的
13、组成方案,本节我们详细讨论通用量子计算机的体系结构。学术界普遍认为,虽然量子计算模型在计算能力上不弱于经典概率图灵机模型7,也就是说所有经典计算机可以处理的计算问题用量子计算机一定也可以处理,但考虑到功效和实现的复杂性,目前认为量子计算机将不会取代经典计算机而将成为经典计算机的一个重要补充。我们认为,经典计算机在处理普通的算术运算和控制方面具有相当优势:一方面,已经证明量子计算机在处理普通算术逻辑运算等多项式复杂度问题(P问题)上的功效不会优于经典计算机6,让经典计算机去处理类似的运算是毫无问题的;另一方面,如果使用量子计算机对量子计算的流程进行控制,则要消耗大量量子资源。“控制”则是现代经典
14、计算机的一大优势,因此用经典计算机控制量子计算流程十分简单直接。基于上述原因,我们认为通用量子计算机应该由经典计算部分和量子计算部分两者联合完成运算,其中经典计算机负责控制量子运算流程以及进行普通算术逻辑运算,量子计算部分则专门负责处理几类已知的目前在经典计算机上未见有效算法,而在量子计算机上存在有效算法的问题(BQP问题)。学术界目前认为比较理想的通用量子计算机体系结构模型是一种混成结构(hybrid architecture)的模型,它由经典计算设备和量子计算设备以及两者之间的通信系统构成。最常见的混成结构由Knill提出8,9,如图1所示,经典计算部分作为量子计算机的主控端,量子计算部分
15、则作为受经典部分控制的协同处理端。图1. 通用量子计算机的混成结构我们所提出的通用量子计算机的体系结构建立在Knill提出的混成结构之上,主控端是经典计算机,负责量子计算中的算术和逻辑计算并控制量子计算部分;量子计算设备作为协同处理端,专门负责处理以量子态形式所表示的数据。根据上述的基本框架,我们可以将第二节提出的通用量子计算机应该具备的五个部分按照物理实现方式(经典实现/量子实现)进行分类:(1)存储器:存储器负责储存量子计算中所涉及的经典数据和/或量子数据的中间结果或最终结果,我们将存储器分为两类:经典存储器储存经典计算部分所产生的经典数据(二进制形式)以及经典计算机控制量子计算部分时所产
16、生的数据;量子存储器负责储存量子计算所产生的量子态,包括运算中间结果和最终结果,值得注意的是,量子存储器还是量子运算发生的场所,也就是说量子数据是不流动的,这与经典体系结构不同。由于量子计算的特殊物理背景,这样设计量子存储器可以有效避免“计算”这一相对独立和集中的动作被分散到多个物理器件中,并对提高量子计算的容错性和提高量子计算的功效很有好处。(2)运算器:经典计算机中的运算器称为“算术逻辑运算器(ALU)”,在我们提出的通用量子计算机体系结构中,它负责经典算术和逻辑运算以及控制所需要的经典运算,ALU可直接与经典控制器进行控制信息的通信,并与经典存储器进行数据流的交互,经典的算术和逻辑运算均
17、发生在ALU中;在量子计算部分,专门处理量子计算的部件谓之量子运算器,量子运算器受主控端控制,仅负责根据地址改变量子存储器中某个或者某几个量子位的状态,量子运算器可对指定量子位进行一些基本量子门的操作,这些量子门操作可作为该体系结构下的基本量子指令。量子运算器与主控端和量子存储器间存在控制流的交互,量子运算器作用于量子存储器内的量子态。(3)控制器:通用量子计算机的控制器是主控端经典计算机的控制器,控制器不仅控制着经典计算部分的运算,还在相应系统软件的操纵下通过主控端与量子计算部分的接口和通信设备控制着量子协处理端的各个部件。因此,控制器是该体系结构中起控制作用的核心部件,它与经典存储器、AL
18、U、量子存储器、量子运算器以及经典输入、输出设备和量子输入、输出接口(界面)设备之间均存在着控制流的交互。另外,由于冯诺依曼程序储存体系结构的需要,程序和数据(包括控制量子运算部分的程序和数据)是储存在经典存储器当中的,因此在经典存储器和控制器之间还有一条数据流。(4)输入设备:该体系结构中经典计算机部分的输入设备与冯诺依曼体系结构中所述的输入设备无异;量子计算部分的输入设备是一种将经典计算所用的数据转换为量子计算所用数据的经典设备,称之为“量子输入界面设备”。它接受主控端的指令及经典数据信息并将其转换为概率幅信息。必须强调的是,量子输入界面设备本身不操控量子态,而仅受控产生量子态的概率幅信息
19、,真正将概率幅信息转换为量子数据的物理态并置入量子存储器的过程需要通过量子运算器完成。量子输入界面设备与量子运算器之间存在单向数据流,并通过通信接口与控制器存在控制流交互。(5)输出设备:该体系结构中经典计算机部分的输出设备与冯诺依曼体系结构中所述的输出设备无异;量子计算部分的输出设备是一种将量子态转换为经典数据的设备,它即具有量子物理属性又具有经典物理属性的,称之为“量子输出界面设备”。量子输出界面设备中内置一个量子测量器件,该器件属于量子设备。量子输出界面设备接受主控端的控制,直接根据地址访问量子存储器中的某个量子位,并由量子测量器件对其进行投影测量,测量造成该量子位的状态向其本征值(“0
20、”或者“1”)坍缩,坍缩导致反映量子态的某个物理量发生可测的变化,这个变化被测量器件探测到并根据其矢量的正负或者相位将其映射为经典数值0或者1,并将其以经典比特的形式输出。量子输出界面设备通过通信接口与控制器存在控制流交互,在量子输出界面设备与量子存储器之间存在单向数据流。我们给出一个所提出的通用量子计算机体系结构的示意图,见图2。从图中可以清晰地看出通用量子计算机各个组成部件之间的数据流和控制流。图2 通用量子计算机体系结构示意图为了清晰地说明上述体系结构下的量子计算流程,有必要简述通用量子计算机一般的解题过程。目前被普遍认同的量子计算理论建立在一套量子力学的数学框架之上,这个框架被总结为量
21、子力学的“四大公设(postulates)”10。根据该框架,通用量子计算的一般步骤是11:(1)初化(initialization):在量子设备中产生初态的过程。即在量子设备中制备输入数据对应的量子物理态,初态既可以是确定的基态也可以是已知概率幅的叠加态;(2)演化(evolution):在量子计算设备的操控下,量子位的态遵从量子力学原理在孤立物理环境下随时间进行变化的过程。由量子力学的第二公设可知,所有量子态的演化都是酉演化(unitary evolution),任何酉演化都可用酉矩阵精确描述;(3)测量(measurement):量子计算部分完成所有演化后,计算结果存在于量子态中,欲将其
22、转换为经典数据,必须执行测量步骤。该步骤一般是对计算结果所在量子位进行量子投影测量,测量使量子位状态向本征值坍缩,坍缩到不同本征值的概率为其叠加态中不同基态所对应的概率幅之辐角主值。量子投影测量仪器会将量子态坍缩得到的本征值通过表征物理量的变化转换为经典信息0或者1,坍缩所引起的信息损失是不可逆的。一经测量,当前量子计算操作即宣告结束,要进行新一轮计算必须将原计算所涉及的所有量子位重置为零基态。经过测量,所需要的结果就会以经典形式得到,这个结果以经典数据形式传出并送往经典计算部分,通过进一步分析该数据的可信度以确定使用此数据还是重新进行该步骤的量子计算。在假设通用量子计算机已经具有相应的系统软
23、件(包括经典软件系统和量子软件系统)的情况下,下面将详细阐述在所提通用量子计算机体系结构下一个通用量子计算的流程。4 本文体系结构下通用量子计算的流程根据我们所提通用量子计算机体系结构以及量子图灵机计算模型,在计算开始之前,所有的程序和数据(包括量子程序、量子数据和经典数据)均以经典数据的形式储存于经典存储器内。通用量子计算机的主控部分在操作系统软件的支撑下将经典存储器内的程序所对应的指令逐一执行。在本文所提体系结构中,所有不涉及量子运算的经典计算均由主控端负责,当需要进行量子计算时,量子协处理端就会在执行第一条量子指令前由主控端启动;启动时,协处理端将量子存储器内的所有量子位的状态制备为零基
24、态(即量子位0态的概率幅为1,1态的概率幅为0),等待初化指令的到来。量子计算部分的工作以初化指令开始,此时主控端控制器通过经典-量子部分的通信接口向量子输入界面设备发出初化指令(包含要初化的量子位在量子存储器内的绝对地址),同时经典输出设备也通过通信接口向量子输入界面设备发送待初化的量子数据(经典形式)。例如,量子输入界面设备接收到的信息可表示为“将001地址的量子位初始化为1”,得到这些信息之后,量子输入界面设备会将经典形式的量子数据信息转换为量子形式的信息,如将上例中的“1”转换为“0态的概率幅为0,1态的概率幅为1”,这些信息随同绝对地址一起交由量子运算器。量子运算器同样在主控端控制器
25、的控制下开始动作,它首先确定绝对地址所指向的量子位,如将001地址定位为量子存储器中第一个量子位,然后对指定量子位进行相应的量子门操作,将其状态改变为计算所需的初态。如上例,量子运算器对第一个量子位进行“非变换”(对换0,1态的概率幅),就可将001地址量子位由量子0态置为1态,从而完成了这条初化指令。经过若干次这样的操作,所有指定的量子变量就具有了初值。接下来是演化过程,在量子协处理端该过程仅量子运算器和量子存储器参与。执行过程中,主控端控制器依次向量子运算器发送量子门的代号和要操作量子位的绝对地址(均为经典形式),量子运算器则根据这些信息依次对量子存储器内的相应量子位定位并发出各种门的演化
26、信号(如射频脉冲)从而完成量子状态的酉演化。值得注意的是,与经典算术逻辑运算不同,量子运算器进行的量子计算完全是在量子存储器内进行的,在前者与后者之间仅有量子控制流(可改变量子位状态的控制流),而没有任何数据流,量子存储器内量子位的状态演化完全是依据时间进行的(由量子力学第二公设决定),因此每一步量子门运算是否完成将依赖于两次计算的时间间隙(根据不同量子门而存在差异)。在所有的演化完成后,量子输出界面设备在主控端控制器的命令下根据地址对量子存储器中的特定量子位发出测量信号,使该量子位发生坍缩,获取坍缩后的本征值状态并将其转换为经典比特0或者1,进而将量子计算设备输出的结果回送到主控端经典存储器
27、内,由主控端处理。测量操作之后,本轮量子计算完成,量子计算部分将重新制备零基态,等待新一轮量子计算的开始。5 通用量子计算机量子存储器的结构与经典计算相比,由于其物理背景的特殊性,量子计算物理实现中的某些问题在目前以及未来相当长时间内不论从理论上还是技术上都有巨大的困难。然而,通过对通用量子计算机体系结构的合理修改,可以在很大程度上避免这些问题。量子计算的物理实现所面临的最重要的困难是退相干(decoherence)问题,这已经在实验上得到了证实12。简言之,产生退相干的原因是由于进行量子计算的物理系统不可能对外界环境绝对封闭,外界的影响可造成呈相干量子态的量子位的相干性减弱或者消失。退相干对
28、量子计算影响极大:一方面随着量子态相干性的减弱,量子态将开始自行向其本征态演化,造成信息的丢失,根据量子态不可克隆原理,退相干造成的量子信息流失将直接导致计算的失败或结果错误;另一方面,量子计算中对某个量子位的控制一般是依靠若干量子态间的相干性来完成的,退相干将破坏这种间接的控制力,使得许多量子位无法被有效操控。退相干是与量子位受控时间和相干环境内量子位数目有关的非线性效应,它的产生机理尚不十分明确13。从有效量子态制备成功之时到量子态受到退相干现象干扰而发生信息损失之间的时间称为相干时间(coherence time),在目前技术状况下根据不同的物理实现方式,10个量子位的量子体系相干时间一
29、般介于秒,且随量子位数目的增加指数级减少,这相对于复杂的量子计算来说相当短暂。因此,在物理学界尚无有效办法避免退相干现象时,如何减小退相干对通用量子计算的影响成为设计量子计算体系结构所考虑的一个重要问题。在我们所提的通用量子计算机体系结构下,所有的计算和存储均发生在量子存储器内,量子存储器也是唯一包含量子位的量子设备。以此为前提,我们在Oskin等提出的容错量子计算机存储体系结构14的基础上提出了一种改进量子存储体系结构以期避免退相干现象对量子计算和量子存储的影响。本文提出的改进量子存储体系结构示意图见图3。量子存储器中有若干量子存储池(quantum memory pool),每个存储池中包
30、含若干可用量子位及一个量子隐形传态(quantum teleportation)控制器和一个量子位相干性保持单元。图3 量子存储体系结构示意图在量子存储池中,每组(图中的行)中的每两个相邻的量子位之间均保持量子相干效应,这种相干效应伴随着量子存储器初化而开始具有并由量子相干性保持单元保持。量子相干性保持单元是一种量子设备,它通过向相干量子体系中补充能量、保持概率幅或者相位校正等方式来校正因外界干扰导致能量耗散(energy dissipation)、概率幅衰减(amplitude damping)或者相位随机化(phase randomization)而产生的退相干效应13。因此,这种量子存储
31、体系结构具有硬件容错性,可避免或减小使用量子纠错码所产生的额外量子位存储空间开销。所有量子器件之间的通信都是量子信息的传输,这依靠称之为量子线(quantum wire)的逻辑信息通路进行。量子线由Oskin等提出15,事实上是一列辅助量子位加上一些制备好的EPR对并依赖量子隐形传态控制设备进行量子隐形传态的物理实体。使用量子线的好处有二:一是量子线上的所有量子位通过EPR对形成一种相互纠缠的“猫态(cat state)”,这种纠缠度最大的纠缠态为量子信息传输过程中的容错和纠错提供了很好的条件16;二是Gottesman等提出,量子隐形传态控制器在通过量子线向某个量子位传送量子信息的同时可以进
32、行一个任意量子门的计算17,这大大提高了量子计算和存储体系的协同性和并行性。另外,使用量子线还为量子存储体系提供了良好的可扩充性,如可以在图3中中心量子线的顶端加入新的量子存储器池;量子位数目的扩充将使量子计算能力指数级提高1。6 本文体系结构下量子程序运行效率分析为了验证所提体系结构在计算效率上的优势,我们针对本模型和另一种存储迁移体系结构模型分别设计了模拟实验。存储迁移体系结构模型的特点是,在量子运算器和量子输出设备中设置量子寄存单元(quantum register),量子计算发生的位置在量子运算器而非本文体系结构下的量子存储单元;同样,量子计算结果的读出也发生在量子输出设备中。这样计算过程中必须大量运用对换(swap)指令将寄存单元中的数据置入主存(主量子存储单元)或从主存中读出,不但影响计算的效率,还严重影响了体系
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1