具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<量子芯片控制器>
图2示出了根据一个实施例的量子芯片控制器的示意性框图。
如图2所示,量子芯片控制器20包括:指令执行单元21和量子芯片队列控制单元22。指令执行单元21用于执行量子指令以产生量子事件及其对应的时间点。指令执行单元21例如执行非定时域的操作。量子芯片队列控制单元22包括时间队列221、时间计数器222和事件队列223。
时间队列221用于存储与所要执行的量子事件相对应的时间点。事件队列223用于存储所要执行的量子事件。例如,所述事件队列和所述时间队列可以是先入先出队列。
时间计数器222用于对时间进行计数。当时间计数器222中计数的时间与时间队列221中的时间点相等时,从事件队列读取该时间点对应的量子事件,用于由量子芯片执行相应的量子事件。
时间计数器222包括使能控制部分2221,用于控制时间计数器的计数的开始和暂停。
这里,考虑到量子比特对于时序的要求,增加了对时间计数器的控制,从而可以根据需要控制时间计数器的计数。这样,可以避免由于时间计数器的计数操作过快,导致其他部分的处理发生故障。另外,也可以通过这种方式,控制程序执行的进度,例如,可以方便程序的调试。
可以通过多种方式来实现所述使能控制。例如,所述使能控制部分2221是所述时间计数器的控制管脚。通过设置所述控制管脚的电位(例如,设置成逻辑“1”或“0”),从而实现所述使能控制。可选地,可以通过所述时间计数器的控制位实现所述使能控制部分2221。例如,在所述时间计数器包括内部控制寄存器,通过改变内部控制寄存器的控制位来实现所述使能控制。
在一个例子中,可以基于时间队列中的队列状态设置所述使能控制部分,以控制时间计数器的计数的开始和暂停。
对于时间计数器的控制信号与时间队列相关联。即,由时间队列的状态决定时间计数器的计数。通过这种方式,确保时间队列与时间计数器的协同操作,避免量子操作的错误。
例如,在时间队列中仅包含一个时间点时,设置所述使能控制部分,以暂停时间计数器的计数。通过这种方式,一方面,可以确保时间计数器不会超越时间队列,从而造成错误。另一方面,可以确保在最后一个时间点的所有事件都到达之后,才执行该时间点的事件,从而避免在某个时间点的事件未全部到达的情况下执行该时间点的部分事件。这种方式可以简单且有效地防止时钟计数器的时间计数超过时间队列,从而造成量子比特操作错误。例如,可以在时间队列中仅包含一个时间点且时间计数器的计数值与该时间点的值相同时,设置所述使能控制部分,以暂停时间计数器的计数。
图3示出了根据另一个实施例的量子芯片控制器的示意性框图。
如图3所示,在量子芯片控制器20,指令执行单元21可以包括指令处理单元211。该指令处理单元211用于处理量子指令以产生量子事件及其对应的时间点。
指令执行单元21还可以包括事件寄存器213和事件写入寄存器214。事件寄存器213存储要放入到事件队列223中的量子事件。事件写入寄存器214,用于记录与时间点对应的事件编号,其中,当新时间点被写入时间队列时,事件编号被更新,并且在有要放入到事件队列223中的量子事件的情况下,该原事件编号与所述量子事件一起被写入到事件队列223。具体的,事件编号可以从0开始记录,当新时间点被写入时间队列时,则事件编号加1。通过这种设置可以控制将事件写入事件队列的时机,从而避免给事件队列的处理造成过大的负担。此外,通过这种方式,也可以使得相同时间点的事件被统一绑定到同一个事件编号上并写入事件队列,从而提高事件队列的处理效率。将同一时间点的不同量子比特的事件绑定到同一个事件编号上,使得当时间计数器计数的时间与时间队列队首元素表示的时间点相同,触发该事件时,可以根据事件编号从每个比特的事件队列的队首元素中找到该时刻需要输出的事件。
指令执行单元21还可以包括时间寄存器212,存储要放入到时间队列221中的时间点。当在所述指令执行单元21中所执行的量子指令产生新时间点时,将该新时间点存储到所述时间寄存器212,同时将该新时间点输出到时间队列221,以及将上一时间点的量子事件从事件寄存器213输出到事件队列223。在图3中,量子芯片队列控制单元22还包括判断装置224和事件读出寄存器225,事件读出寄存器225存放的也是事件编号,即记录要从事件队列读出的事件的事件编号,其中,当时间计数器中计数的时间与时间队列中的时间点相等时,从事件队列读取与事件读出寄存器中的事件编号相同的量子事件。。判断装置224用于判断时间计数器222的时间计数是否与时间队列221中的时间点相等,例如是否与时间队列221队首的时间点相等。当二者相等时,判断装置224指示时间队列221中的该时间点出队列,并向事件队列发送事件的读出申请,事件队列223根据读出申请,将与事件读出寄存器225中编号相同的事件读出,并将所读出的事件发送给量子比特控制装置例如是波形发生装置(任意波形发生器等等),以控制量子比特执行相应的事件操作。然后,判断装置224指示事件读出寄存器225内的值更新为下一事件的编号,例如指示事件读出寄存器225的值加1。
在另一个例子中,在时间计数器222的计数暂停的情况下,当指令执行单元21执行的量子指令产生新的时间点时,指令执行单元21通过旁路23,绕过事件队列,而输出上一时间点对应的量子事件。例如,在时间队列221中仅包含一个时间点且时间计数器222的计数值与该时间点的值相同时,判断装置224指示时间计数器222暂停计数(具体是指示使能控制部分2221暂停计数)。当指令执行单元21接收到的下一个新量子指令的前缀表示相对于距离该时间点的间隔为“0”(间隔0个单位时间,即,该量子指令未产生新时间点)时,将新量子指令包含的量子事件存入事件寄存器213,作为该时间点对应的量子事件;当指令执行单元21接收到的下一个新量子指令的前缀表示相对于距离该时间点的间隔不为“0”(即,该量子指令产生新时间点也就是该时间点的下一时间点)时,指令执行单元21通过旁路23,直接输出(并排空)事件寄存器213存储的该时间点对应的量子事件,这样,该时间点对应的量子事件不需要进入事件队列。同时,将新时间点对应的量子事件存入事件寄存器213,将新时间点存入时间寄存器212并输出到时间队列221,时间计数器222从而继续计数,并清除时间队列221中的该时间点。通过这种方式,可以简化量子指令对应的事件操作的处理,例如,省略将事件放入事件队列和从事件队列取出事件的操作。
本领域技术人员应当理解,图3仅仅是一种具体的实现方式,图3中所示的一些单元不是用于实现本发明所必需的。本领域技术人员,根据图3所示的实施例,还可以想到许多其他替换方式,或者可以省略图3中所示的一些单元。
<量子计算处理系统>
图4示出了根据一个实施例的量子计算处理系统的示意性框图。
如图4所示,量子计算处理系统30包括:译码转换设备31、量子芯片控制器20、量子比特控制装置32和量子比特33。译码转换设备31产生量子程序。量子芯片控制器20例如是上面所描述的量子芯片控制器。量子比特控制装置32可以与相应的量子比特33相匹配。例如,对于频率可调的超导量子比特,量子比特控制装置32可以是任意波形发生器。
量子芯片控制器20接收译码转换设备31产生的量子程序中的量子指令并获取对应的时间点及量子事件。量子芯片控制器20通过量子比特控制装置32控制量子比特33执行相应的量子操作。
<电子设备>
图5示出了根据一个实施例的电子设备的示意性框图。
如图5所示,电子设备40包括这里公开的量子计算处理系统30。量子计算处理系统30可以为电子设备40提供计算能力。电子设备40例如可以是量子计算机或者具有量子计算能力的其他电子设备。
<例子>
下面描述这里公开的一个具体例子。例如,一段量子程序包括如下量子指令:
在上面的量子指令中,诸如“0|……”、“0|……”、“6|……”等的前缀代表该量子指令包含的时间点与上条量子指令包含的时间点的时间间隔。“QWAIT 30”指令表示在该条指令产生的时间点距上一时间点30个单位时间(单位时间可以是预设的),为等待指令。为了方便描述,在上面,为各条指令提供编号1、2、3……7。其中,H门(Hadamard,阿达马门)、X门(Pauli-X,泡利-X门)、Y门(Pauli-Y,泡利-Y门)为操作单个量子比特的单量子逻辑门,CNOT门(Control-Not,控制非门)为操作两个量子比特的双量子逻辑门。
例如,采用图3所示的量子芯片控制器20来处理上述量子程序。表1示出了处理上述量子程序中的量子指令时各个寄存器及队列状态。
表1
在表1中,各栏中的数字代表如下:
时间寄存器:时间点;事件写入寄存器:事件编号;事件寄存器:指令编号;发送到时间队列:时间点;发送到事件队列:“|”左边是事件编号、右边是事件编号对应的指令编号;时间队列中的元素:时间点,以“\”分开;事件队列中的元素:“发送到事件队列”中的元素,以“\”分开。
如上表所示,时间队列的元素总是比事件队列中的元素所对应的时间点超前一个时间点。实际上,事件寄存器存放的是指令编号是对应指令所代表的量子操作(下述事件操作码),也可以被称为量子事件,事件队列存放的是事件编号以及对应指令所代表的量子操作。表2示出了事件寄存器和事件队列的变化。
表2
在表2中,事件队列中的“A|B”的含义如下:A代表事件编号,B代表事件操作码。例如,“0|H”表示事件0,操作码H。“Q0”、“Q1”、“Q2”分别对应各个量子比特。
首先,进行初始化。时间寄存器被置为0,事件写入寄存器也置为0,事件寄存器清空。
量子指令1表示:在0时间点对编号为0的比特Q0执行H门,对编号为1的比特Q1执行X门。量子指令1的时间前缀为0,没有创建新的时间点,可理解为初始时间点为0。因此,只是将该量子指令的事件编码写入到相应的事件寄存器中,该事件的事件编号即为事件写入寄存器的初值0:量子比特Q0的事件寄存器写入H门操作码,量子比特Q1的事件寄存器写入X门的操作码。不需要更新时间队列和事件队列,接着便解析下一条指令。
量子指令2表示:对量子比特Q1和Q2执行CNOT门,量子比特Q1控制量子比特Q2,即,Q1为控制比特,Q2为受控比特。因为量子指令2的时间前缀不为0,因此,创建了新的时间点,这会导致事件队列的写入。在产生新的时间点时,量子芯片队列控制单元发送更新信号,以对各个寄存器进行更新:时间寄存器加上指令的时间前缀,变为1,同时将新的时间点写入至时间队列;将事件寄存器存放的前一时间点对应的事件及事件编号0(存放在事件写入寄存器)写入到事件队列中;然后,事件写入寄存器加1,变为1;并将事件寄存器中的数据清空,再写入量子指令2的事件码。在时间队列中,以时间点的形式存储时间。
量子指令3的时间前缀为0,没有创建新的时间点。所以并不需要进行事件队列的写入,也不需要进行时间寄存器和事件写入寄存器的更新。这里,只是将量子指令3的事件码叠加到上一条指令的事件码上。即,在同一个时间点,对量子比特Q1和Q2执行CNOT门,对量子比特Q0执行Y门。
量子指令4的时间前缀不为0,创建了新的时间点。量子指令4的执行过程与量子指令2类似。其中,事件写入寄存器加1,变为2。在这里省略重复的描述。
量子指令5是QWAIT指令。它的作用是使系统等待一段时间。在QWAIT指令的时间点不为0的情况下,将对各个队列和寄存器进行更新。将时间寄存器更新为30+7=37,同时将37写入时间队列;将事件写入寄存器中的事件编号2及事件寄存器存放的之前时间点的量子事件(对应量子指令4)写入到事件队列中;最后将事件写入寄存器加1变为3,并将事件寄存器清空。
量子指令6表示:对量子比特Q0、Q1、Q2都执行H门。量子指令6的时间前缀为0。量子指令6的执行过程与量子指令3类似。在这里省略重复的描述。
量子指令7类似于量子指令5。在这里省略重复的描述。
接下来,说明量子芯片队列控制单元中的处理。
首先,假设指令执行单元21的处理速度很快,量子芯片队列控制单元22不需要等待。
在初始化阶段,时间计数器222从0开始计数;事件读出寄存器225也从0开始读出事件队列中的事件;时间队列221保留一个时间点0;事件队列223清空。
当时间计数器222中的时间计数与时间队列221中的队首时间点相同时,将具有与事件读出寄存器225中的编号相同的事件操作码读出事件队列223。然后,排出时间队列221中的该队首时间点,将事件读出寄存器225加1。
其次,如果指令执行单元21的处理速度较慢,量子芯片队列控制单元22中的时间队列221可能变空。这可能导致错误。为此,通过使能控制部分2221,当时间计数器222中的时间计数与时间队列221中的队首时间点相同且时间队列221中仅包含一个时间点时,暂停时间计数器222的计数。当下一个新时间点要写入时,意味着上一时间点的所有事件都已到达并被放入事件寄存器213,则不需要将事件寄存器213存放的事件写入到事件队列223,而是可以通过旁路23直接输出,此时,事件读出寄存器225也可以照常更新。
例如,在量子指令5即QWAIT 30停止后(量子指令5产生了新的时间点),接收到后续量子指令6:0|H{111},表示对Q0、Q1、Q2均执行H门操作。量子指令6的时间前缀为0,该指令对应的事件被放入事件寄存器213。接着,解析下一条指令,这时又产生了新的时间点“47”,说明上一时间点的所有事件全部到达且只有量子指令6对应的事件,此时时间队列中最后剩下的唯一时间点就是量子指令6对应的时间点,然而时间计数已经到达该时间点并处于暂停,所以不需要将量子指令6放入事件队列223,而是直接通过旁路23输出量子指令6对应的事件。
本领域技术人员应当理解,上面具体例子仅用于举例说明实施例的实现方式,而不用于限制本公开的范围。
除非明确说明,否则,这里的“第一”、“第二”……仅仅用于区分其后面的名词所指代的事物,而不表示所述事物的先后顺序和/或优先级。
上面的实施例可以互相参考。因此,为了简洁起见,在后面实施例的描述中省略了与前面的实施例重复的部分。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。