一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于量子计算设备的流水线硬件解码器的制作方法

2022-03-19 18:04:11 来源:中国专利 TAG:

用于量子计算设备的流水线硬件解码器


背景技术:

1.量子比特容易出现高出错率,并且受益于主动纠错。量子纠错码可以用于将逻辑量子比特编码成物理量子比特的集合。然后,可以使用测量来检测错误并使用错误解码器来纠错。量子比特通常在非常低的温度下工作,并且数据在更高的工作温度下传送到错误解码器。


技术实现要素:

2.提供本发明内容是为了以简化的形式介绍下面在具体实施方式中进一步描述的概念的选择。本发明内容无意于标识所要求保护主题的关键特征或必要特征,也无意于用于限制所要求保护主题的范围。此外,所要求保护主题不限于解决本公开的任何部分中所提到的任何或所有缺点的实现。
3.一种量子计算设备包括:至少一个量子寄存器,包括多个量子比特;以及硬件解码器。该硬件解码器被配置为:从多个量子比特中的一个或多个量子比特接收伴随数据;以及通过经由包括两个或更多个流水线级的硬件微架构实现并查解码算法,对接收到的伴随数据进行解码。这使得能够以近乎线性的时间复杂度进行高通量纠错。
附图说明
4.图1示意性地示出了量子计算组织的示例。
5.图2示意性地示出了示例量子计算机的方面。
6.图3图示了布洛赫球,其图形地表示了量子计算机中一个量子比特的量子态。
7.图4示意性地示出了在具有交替的数据量子比特和奇偶量子比特的晶格中的逻辑量子比特。
8.图5示意性地示出了两轮连续的伴随测量。
9.图6是指示在变化条件下存储伴随测量数据所需的存储器容量的曲线图。
10.图7示意性地示出了示例压缩方案。
11.图8示意性地示出了在用于基于几何形状的压缩的表面码晶格上的多个区域。
12.图9示出了用于在量子计算设备内压缩伴随数据的示例方法。
13.图10示出了使用基于几何形状的压缩器在量子计算设备内压缩伴随数据的示例方法。
14.图11示意性示出了示例解码器设计。
15.图12示意性地示出了示例并查解码器。
16.图13示意性地示出了示例图生成器模块。
17.图14示意性地示出了图生成器模块中的主要组件在图生成期间的状态。
18.图15示意性地示出了示例簇和根表条目。
19.图16示意性地示出了深度优先搜索引擎和用于纠错的示例图。
20.图17示出了在校正引擎中执行的针对示例错误图的剥离的示例。
21.图18示出了用于实现硬件并查解码器的流水线版本的示例方法。
22.图19示意性地示出了l个逻辑量子比特的基线组织。
23.图20示出了解码器模块的示例设计。
24.图21示意性地示出了可扩展容错量子计算机的示例微架构。
25.图22示出了用于在量子计算设备内路由伴随数据的示例方法。
26.图23示意性地示出了蒙特卡罗仿真器框架。
27.图24是指示跨码距的不同出错率的均值压缩比的曲线图。
28.图25是指示逻辑量子比特的不同出错率和码距的平均簇直径的曲线图。
29.图26是指示实现生成树存储器所需的总存储器容量的曲线图。
30.图27是指示固定的码距和物理出错率的簇中的边的数目的分布的曲线图。
31.图28是示出不同的码距和出错率的簇中的边的平均数目的曲线图。
32.图29是指示图生成器模块与深度优先搜索引擎中的执行时间之间的相关性的曲线图。
33.图30是指示用于对3d图进行解码的执行时间的分布的曲线图。
34.图31示出了示例经典计算设备的示意图。
具体实施方式
35.量子比特(量子计算机中的基本信息单位)容易出现高出错率。为了支持容错量子计算,可以对这些量子比特应用主动纠错。量子纠错码(qecc)使用冗余数据和奇偶量子比特对逻辑量子比特进行编码。纠错通过被称为错误解码的过程,通过分析奇偶量子比特的测量来诊断数据量子比特上的错误。目前,大多数解码方法是以算法层面的量子比特错误为目标,并且没有考虑到将用于设计它们的底层设备技术。
36.在本文中,以设计这些解码器时所涉及的架构挑战为目标,并且描述了用于并查解码器的硬件实现的3级流水线微架构。纠错算法被设计为适合硬件实现。关于实现所需的存储量和带宽,评估对于不同噪声机制的数据压缩的可行性。公开了一种架构,该架构针对大量逻辑量子比特来扩展所提出的解码器设计,并且支持实用的容错量子计算。这样的设计可以通过跨多个逻辑量子比特的资源共享将三个流水线级中的每个流水线级的总成本分别降低2x、4x和4x,而不影响解码器正确性和错误阈值。作为一个示例,对于11的码距和10-3
数量级的物理出错率,逻辑出错率是10-8

37.量子计算使用量子力学性质来支持对于特定应用的计算,而在常规(即,非量子)的最先进计算机上,在合理时间量内执行这种应用是不可行的。示例应用包括质因子分解、数据库搜索、物理和化学仿真。量子计算机上的基本计算单位是量子比特。量子比特不可避免地与环境相互作用,并且失去它们的量子态。不完美的量子门操作加剧了该问题,这是由于量子门是从连续的可能值中选择的酉变换,从而无法以完美的准确度实现。为了保护量子态不受噪声的影响,已开发了qecc。在任何qecc中,逻辑量子比特是用几个物理量子比特进行编码的,以支持容错量子计算。容错产生资源开销(通常每逻辑量子比特20-100x),并且实际上在当前可用的小型原型机上是不可行的。然而,为了在容错量子计算机上运行有用的应用,量子纠错被认为是非常有价值的,如果不是完全必要的话。
38.qecc不同于像三模冗余(tmr)或单纠错双检错(secded)的经典纠错技术。这些差
异源于量子比特的基本性质和高出错率(通常在10-2
的数量级)。例如,量子比特无法被复制(不可克隆定理),并且在被测量时失去它们的量子态。qecc使用冗余量子比特,以通过使用与数据量子比特相互作用的辅助(ancilla)量子比特来创建编码空间。通过测量辅助量子比特,可以使用解码器检测和校正数据量子比特上的错误。
39.错误解码算法规定了将如何处理伴随(syndrome)(辅助测量的结果)以检测数据量子比特的编码块中的错误。解码器的设计和性能取决于解码算法、qecc、物理出错率、噪声模型和实现技术。出于实用目的,解码器处理伴随测量的速率必须快于错误发生的速率。它们还必须考虑到对于低温环境工作的特定技术约束并扩展到大量量子比特。
40.完美的错误解码是np困难的(非确定性多项式时间(non-deterministic polynomial-time)),其具有指数的时间复杂度。因此,最佳解码算法权衡纠错能力以降低时间复杂度。尽管解码器对容错量子计算具有开创性,但是大多数解码技术仅在算法层面进行了研究,并且没有考虑底层实现技术。诸如基于查找表的解码器或深度神经解码器的其他方法不可扩展到大量量子比特。并查(union-find)解码器算法是简单的,并且其时间复杂度近乎线性,从而使其对于可扩展的容错量子计算来说是合适的候选方案。在此,公开了一种用于并查解码器的硬件实现的微架构,其中算法被重新设计以降低硬件复杂度,并且允许扩展到大量逻辑量子比特。
41.为了支持更快处理并降低传送延迟,解码器被设计为在非常接近物理量子比特的温度(77k或4k)下工作,而不是在室温(300k)下工作。图1中示出了指示温度梯度105的示例量子计算系统100。量子计算系统100包括一个或多个在20mk下工作的量子比特寄存器110,通常在4k或77k下工作的解码器115和控制器120,以及在300k(室温)下工作的主机计算设备125和终端用户计算设备130。取决于解码器115是在77k还是4k下工作,底层实现技术和设计约束提供了不同的权衡。在4k下的超导逻辑设计与物理量子比特非常接近,并且具有显著的能效,但是受到器件密度和存储器容量的限制。在77k下工作的常规cmos可以针对具有更大存储器占用的应用推动复杂的设计,但是它的能效低于超导逻辑,并且从驻留在15-20mk下的物理量子比特来回移动数据产生数据传输开销。
42.在本文中,公开了用于并查解码器的硬件实现的微架构。讨论了与用于低温环境工作的存储器容量和带宽相关联的实现挑战。表面码用作对于底层qecc和各种噪声模型的示例,尽管已考虑了其他实现。表面码是很有前途的qecc候选方案,它用交替的数据量子比特和辅助量子比特在2维布局中布置一组量子比特。数据量子比特中的任何错误可能被其相邻的辅助量子比特检测到,由此只需要最近邻连接。描述了这样的设计对于大规模容错量子计算机的可行性和可扩展性。
43.在此,公开了解决量子计算领域中许多问题的系统和方法。例如,分析了qec解码器的设计,包括它们在热域中的放置和设计复杂度。提出了用于并查解码器硬件实现的微架构,其证明在77k下操作解码器更为实用。
44.计算了存储伴随测量所需的存储器容量,并且示出了在4k下将它们存储在超导存储器中可能是不可行的。然而,将数据传送到77k需要很大的带宽。为了克服这两个挑战,提出了可以用于压缩伴随测量数据的技术。描述了动态零压缩和稀疏表示的实现。另外,提出了基于几何形状的压缩方案,其考虑了表面码晶格的底层结构。另外,对于不同的噪声机制描述了压缩方案及其适用性。
45.细化了并查解码器算法,以便降低硬件成本,并且用于增强噪声模型中的改进实现。原始的并查解码算法只考虑了在空间中成对的数据量子比特上的门错误。本文中所描述的硬件微架构还考虑了测量错误,这些测量错误在时间上成对,并且使用若干轮的伴随测量对其进行解码。
46.另外,描述了针对大量逻辑量子比特扩展这些解码器的硬件系统架构。这样的实现可以考虑各个解码单元中的流水线级的利用差异,并且支持多个逻辑量子比特之间的优化资源共享以降低硬件成本。
47.量子比特是量子计算机上的基本信息单位。量子计算的基础依赖于两种量子力学性质:叠加和纠缠。量子比特可以被表示为它的两个基态的线性组合。如果基态是|0》和|1》,则量子比特|》可以被表示为|ψ》=α|0》 β|1》,其中并且|α|2 |β|2=1。当概率幅α、β的幅度或/和相位改变时,量子比特的状态改变。例如,幅度翻转(或者,比特翻转)将|》的状态改变为β|0》 α|1》。备选地,相位翻转将其状态改变为α|0》-β|1》。量子指令使用量子门操作来修改概率幅,量子门操作使用单位矩阵(i)和泡利矩阵来表示。泡利矩阵x、z和y分别表示比特翻转、相位翻转或两者的效果。
48.在一些实施例中,本文中所描述的方法和过程可以与一个或多个量子计算设备的量子计算系统联系在一起。图2示出了被配置为运行量子逻辑操作的示例量子计算机210的方面(参阅下文)。常规计算机存储器将数字数据保存在比特阵列中,并且进行逐比特的逻辑操作,而量子计算机将数据保存在量子比特阵列中,并且对量子比特进行量子力学操作,以便实现期望的逻辑。相应地,图2的量子计算机210包括至少一个寄存器212,该寄存器包括量子比特阵列214。所图示的寄存器的长度为八个量子比特;还设想了包括更长的和更短的量子比特阵列的寄存器,也设想了包括任意长度的两个或更多个寄存器的量子计算机。
49.寄存器212的量子比特可以取决于量子计算机210的期望架构而采取各种形式。作为非限制性示例,每个量子比特214可以包括:超导约瑟夫森结、俘获离子、耦合到高精细度腔的俘获原子、被局限在富勒烯内的原子或分子、被局限在主体晶格内的离子或中性掺杂原子、呈现离散空间状态或自旋电子状态的量子点、经由静电阱夹带的半导体结中的电子空穴、耦合量子线对、通过磁共振可访问的原子核、氦中的自由电子、分子磁体或类金属碳纳米球。更一般地,每个量子比特214可以包括任何粒子或粒子系统,这些粒子能够在可以通过实验测量和操纵的两个或更多个离散量子态下存在。例如,量子比特也可以在与通过线性光学元件(例如,反射镜、分束器和移相器)的不同光传播模式相对应的多个处理状态下实现,以及在玻色-爱因斯坦凝聚体内积累的状态下实现。
50.图3是布洛赫球216的图示,其提供了各个量子比特214的一些量子力学方面的图形描述。在该描述中,布洛赫球的北极和南极分别对应于标准基向量|0》和|1》——例如,电子或其他费米子的上自旋状态和下自旋状态。布洛赫球的表面上的点集合包括量子比特的所有可能的纯态|ψ》,而内部的点对应于所有可能的混合态。给定量子比特的混合态可能是由去相干(decoherence)引起的,去相干可能是由于与外部自由度的不期望耦合而发生的。
51.现在回到图2,量子计算机210包括控制器218。控制器可以包括常规电子部件,包括至少一个处理器220和相关联的存储机器222。术语“常规”在本文中被应用于可以被建模为粒子集合的任何组件,而不考虑任何单个粒子的量子态。例如,常规电子组件包括集成的微刻晶体管、电阻器和电容器。存储机器222可以被配置为保存程序指令224,这些程序指令
使处理器220执行本文中所描述的任何过程。下文中描述了控制器218的附加方面。
52.量子计算机210的控制器218被配置为接收多个输入226并提供多个输出228。输入和输出可以各自包括数字和/或模拟的线路。输入和输出中的至少一些可以是通过其向量子计算机提供数据并从量子计算机提取数据的数据线。其他输入可以包括经由其可以调节或以其他方式控制量子计算机的操作的控制线。
53.控制器218经由接口230被可操作地耦合到寄存器212。接口被配置为与控制器双向交换数据。接口还被配置为与寄存器双向交换与数据相对应的信号。取决于量子计算机210的架构,这样的信号可以包括电信号、磁信号和/或光信号。经由通过接口传送的信号,控制器可以询问或以其他方式影响寄存器中所保存的量子态,如由量子比特阵列214的集体量子态所定义的。为此,接口包括至少一个调制器232和至少一个解调器234,每个调制器和每个解调器被可操作地耦合到寄存器212的一个或多个量子比特。每个调制器被配置为基于从控制器接收的调制数据向寄存器输出信号。每个解调器被配置为感测来自寄存器的信号,并且基于该信号向控制器输出数据。在一些场景中,从解调器接收的数据可以是对寄存器中所保存的量子态的测量的可观测值的估计值。
54.更具体地,来自调制器232的适当配置的信号可以与寄存器212的一个或多个量子比特214物理地相互作用,以触发对一个或多个量子比特中所保存的量子态的测量。解调器234然后可以依据测量来感测由一个或多个量子比特释放的结果信号,并且可以向控制器提供与结果信号相对应的数据。换言之,解调器可以被配置为基于接收到的信号来揭示对反映寄存器的一个或多个量子比特的量子态的可观测值的估计值,并且将该估计值提供给控制器218。在一个非限制性示例中,调制器可以基于来自控制器的数据,向一个或多个量子比特的电极提供适当的电压脉冲或脉冲序列,以发起测量。简而言之,解调器可以感测来自一个或多个量子比特的光子发射,并且可以在进入控制器的接口线上断言对应的数字电压电平。一般来说,量子力学状态的任何测量是由与要测量的可观测值相对应的算符定义的;测量的结果r保证是允许的的特征值之一。在量子计算机210中,r在统计上与测量之前的寄存器状态相关,但是不是由该寄存器状态唯一确定的。
55.依据来自控制器218的适当输入,接口230还可以被配置为实现一个或多个量子逻辑门,以对寄存器212中所保存的量子态进行操作。常规计算机系统的每种逻辑门的功能根据对应的真值表来描述,而每种量子门的功能由对应的算符矩阵来描述。算符矩阵对表示寄存器状态的复向量进行操作(即,相乘),并且在希尔伯特空间中实现该向量的特定旋转。
56.继续图2,来自接口230的调制器232的适当配置的信号可以与寄存器212的一个或多个量子比特214物理地相互作用,以便断言任何期望的量子门操作。如上所述,期望的量子门操作是表示寄存器状态的复向量的专门定义的旋转。为了实现期望的旋转接口230的一个或多个调制器可以在预定的持续时间ti内应用预定的信号电平si。
57.在一些示例中,多个信号电平可以被应用于多个序列或其他相关联的持续时间。在更具体的示例中,多个信号电平和持续时间被布置为形成复合信号波形,该复合信号波形可以被应用于寄存器的一个或多个量子比特。通常,每个信号电平si和每个持续时间ti是通过控制器218的适当编程可调整的控制参数。在其他量子计算架构中,不同的可调整控制参数集可以控制应用于寄存器状态的量子操作。
58.量子比特通过与它们周围的不同自由度的相互作用,不可避免地失去了它们的量子态。即使量子比特可以完美地与环境噪声隔离,量子门操作也是不完美的,并且无法以精确的准确度进行应用。这给在量子计算机上运行任何应用带来了各种限制。因此,由量子计算机操纵的量子态必须使用量子纠错码(qecc)进行纠错。qecc将逻辑量子比特编码成物理量子比特的集合,使得逻辑量子比特的出错率低于物理出错率。只要物理出错率低于可接受的阈值,qecc就能支持容错量子计算,代价是物理量子比特的数目的增加。近年来,已提出了几种纠错协议。在本文中应用了表面码,它被认为是最有前途的用于容错量子计算的qecc。qec将任意噪声建模为量子操作的叠加。因此,qecc使用泡利矩阵将错误的效应捕获为比特翻转、相位翻转或两者的组合。
59.表面码被广泛认为适合于可扩展的容错量子计算。它用交替的数据量子比特和奇偶量子比特对晶格中的逻辑量子比特进行编码。图4的400处示出了这样的晶格的示意性表示,晶格400具有2d距离-3(d=3)表面码。每个x稳定器402和y稳定器404被耦合到其相邻的数据量子比特406。每个数据量子比特406仅与其最近的相邻奇偶量子比特408相互作用,从而通过测量本地支持的算符,可以诊断数据量子比特406上的错误,如410处所示。在该示例中,数据量子比特a 414上的z错误412被奇偶量子比特p0 416和p1 418捕获。类似地,数据量子比特b 422上的x错误420被奇偶量子比特p2 424和p3 426捕获。在最简单的实现中,距离d的表面码使用(2d-1)2个物理量子比特来存储单个逻辑量子比特,其中d是冗余和容错的度量。更大的码距导致更大的冗余和增加的容错。
60.逻辑算符包括两个相对边之间的一串单量子比特算符。编码空间是所有稳定器生成器(如图4中所示)具有 1个特征值的子空间。通过构造,逻辑状态在稳定器生成器的应用下是不变的。应用泡利算符的任何闭环将保持逻辑状态不变。稳定器生成器的测量检测出一系列错误的端点。纠错基于该信息,并且稳定器测量被称为伴随。
61.在qec中,通过应用适当的泡利门来逆转错误的效应。例如,如果量子比特遇到比特翻转错误,则应用泡利x门将其翻转回预期状态。以前已表明,只要将克利福德门应用于量子比特,就不需要执行主动纠错。相反,在软件中跟踪泡利帧就足够了。因此,量子纠错的主要焦点是错误解码,而不是纠错。最优错误解码是一个计算困难的问题。量子错误解码器将伴随测量作为输入,并且返回对数据量子比特中的错误的估计值。除了检测错误的能力之外,解码器还依赖于高操作速度来防止错误的累积。换言之,必须比错误发生的速度更快地检测到错误。
62.由于错误解码必须快速,所以解码器必须提供高性能,并且在物理量子比特附近工作。如关于图1所述,量子比特通常在15-20mk下工作。取决于解码器被设计用于在4k下还是在77k下工作,实现技术提供了不同的权衡,如表1中所示。由于接近物理量子比特,被设计为在4k下工作的硬件必须满足严格的功率要求。这是为了确保热噪声得到控制。另外,这些设计必须使用复杂而昂贵的液氦冷却器进行冷却。解码器可以使用在4k下的cmos或超导逻辑来设计。cmos具有功耗,从而无法用于大规模量子计算机。超导逻辑提供了低功耗,但是存在主要缺点,诸如器件密度有限和存储容量低,这使得制造复杂且大型的设计极其困难。在77k下工作的传统cmos提供了设计具有更大存储器和功率预算的复杂系统的能力。与77k相关联的冷却开销比4k低一个数量级。然而,被设计为在77k工作的解码器必须考虑传送延迟,并且满足在4k与77k之间来回传输数据所需的带宽。在4k下的超导技术与在77k下
的cmos之间的权衡被列于表1中。
63.参数超导技术传统cmos工作温度4k77k工作频率10ghz4ghz存储器容量123-512字节4gb功率预算1wn/a特征尺寸248nm7-16nm冷却开销1000x/400x10x
64.表1
65.在本文中,检查了在真实噪声模型下设计用于量子纠错的解码器的微架构时的挑战。量子比特错误可以大致分为三种类型:去相干错误、门错误和测量错误。量子比特只在短持续时间(被称为去相干时间)内保持它们的量子态,从而导致去相干错误。非理想的门操作导致量子比特上的门错误。量子比特测量的不完美导致测量错误。解码器可能将伴随测量错误误解为数据量子比特错误,并且校正非错误的数据量子比特,从而引入错误。解码器在解码错误的同时必须考虑这样的伴随测量错误。这直接影响了解码器的微架构和设计选择。
66.图5示出了示图500,该示图指示两轮连续的伴随测量502和504,并且示出测量错误506如何在时间上成对以及数据量子比特错误508如何在空间上成对。示图500示出了,如果解码器只检查第0轮502的测量结果,则它将误解奇偶量子比特p0 510上的错误,并且强制对无错误的d0 512进行校正。当前的解码器通过检查d轮测量来解决伴随测量错误,其中d是码距。必须存储通过d轮伴随测量生成的数据和每数据量子比特的错误日志,以使解码器正确工作。这需要高达几兆字节的存储空间(取决于码距和逻辑量子比特的数目)。
67.图6示出了指示存储d(码距)轮的伴随测量数据和n个逻辑量子比特的错误日志所需的存储器容量(以kb为单位)的示例曲线图600。所需的容量远高于在4k下的超导逻辑中的可用存储器。为了在77k下执行错误解码,测量数据必须从4k传送到77k。对于具有l个逻辑量子比特的给定量子比特平面以及使用码距为d的表面码进行编码的每个量子比特,必须在每个伴随测量周期结束时发送2d(d-1)l个比特。假设合理数目的逻辑量子比特和码距,4k-77k链路需要几gb/s数量级的带宽范围。在较低带宽下的数据传输减少了用于错误解码的剩余有效时间,这是由于它必须在d个伴随测量周期内提供对错误的估计值(例如,表面码周期可以被分解成d个伴随测量周期)。因此,设计在77k下的任何解码器时的主要挑战是所需带宽非常大。
68.一种有效处理高速缓存和主存储器中的容量和带宽需求的方法是数据压缩。测量数据的稀疏性可以如本文中所述地进行分析和估计。例如,令p为数据量子比特上z错误的概率,并且令u为n个数据量子比特的错误的指示向量(注意,相同的分析也适用于x伴随)。如果有4个数据量子比特且前两个有z错误,那么u=1100。假设完全相同且独立的错误分布(iid),伴随的汉明权重的上限由等式(1)给出,其中|u|是错误指示向量u的汉明权重(例如,1的数目)。
69.70.因此,存在m个或更多个错误的概率由等式2给出:
[0071][0072]
使用并入边界(union-bound),伴随比特总数s(zu)的上限由等式3给出。
[0073]
s(zu)≤2|u|
ꢀꢀꢀ
(等式3)
[0074]
假设码距为11并且出错率为10-3
,具有10个或更多个错误(对于给定码距,错误数目相当大)的概率为6.2x10-14
。因此,观测到具有较大汉明权重的伴随的概率极低。该分析表明,压缩伴随数据以降低存储的存储开销和/或满足带宽要求是有可能的。本文中描述了用于伴随数据的不同压缩技术,这是由于压缩技术的有用性取决于数据的熵。在本文中,描述了三种压缩技术,尽管已考虑了其他技术。分析了可以应用这些技术的不同噪声机制。所描述的示例分别具有使用简单编码且不需要较大硬件复杂度的压缩方案。
[0075]
动态零压缩(dzc)最初是为了减少零值字节的高速缓存访问所需的能量而引入的。可以采用类似的技术来压缩伴随数据。图7的700处示出了一个示例。长度为l的伴随705被分组成分别为w比特的k个块,其中w是压缩宽度710。如果最后一个块的比特数少于w比特,则可以添加额外的填充零。k比特宽的零指示器比特(zib)向量715包括每块1比特。如果第i个块的所有比特是0,则zib中的对应的比特(zib[i])可以被设置为1。否则,该比特可以被设置为0。要传输的数据720可以通过在zib向量的末尾处附加非零块725来获得。
[0076]
如750处所示,稀疏表示可以被认为类似于存储稀疏矩阵的传统技术,在传统技术中,稀疏矩阵760的非零元素通过仅存储行和列索引765来存储。稀疏表示比特(srb)755被用于指示是否所有伴随比特为零。如果在伴随中有一个或多个非零比特,则可以不设置srb,并且非零元素的索引755可以与所传输的数据775中的srb一起发送。
[0077]
基于几何形状的压缩(geo-comp)可以被认为是还考虑了表面码晶格的几何形状的一种dzc的改编。基于几何形状的压缩方案可以一起压缩x伴随和z伴随的区域,而不是分开压缩x伴随和z伴随。整个表面码晶格可以被分割成多个区域,其中每个区域大致包含相等数目的伴随比特(类似于dzc的压缩宽度)。图8示意性地示出了用于基于几何形状的压缩的、包括多个区域(801、802、803、804;由虚线表示)的表面码晶格800。图8示出了码距为5的表面码晶格如何被分割为4个区域的一个示例。针对每个区域使用zib并仅传输来自非零区域的伴随数据可以压缩伴随。当在数据量子比特上发生y错误时,x伴随比特和z伴随比特翻转以指示错误。当两种类型的伴随被独立压缩时,对于给定的压缩宽度,非零块的总数更高。例如,如果图8中所示的数据量子比特d0 810遇到y错误,则x伴随比特x0 811和x1 812以及z伴随比特z0 813和z1 814翻转。在诸如dzc的压缩方案中,(x0 811,x1 812)和(z0 813,z1 814)位于不同的数据块上,并且被分开压缩。然而,如果考虑晶格的几何形状,则非零伴随比特通常位于同一区域内,除非数据量子比特在区域边界上(例如,晶格800中的d1 815)。
[0078]
一般来说,对于给定的噪声模型,可以通过计算包含平凡(trivial)伴随(全零)的块的预期数目来调整区域的数目和尺寸。然而,较大尺寸的区域通过增加逻辑深度导致复杂的硬件。因此,即使对于非常低的出错率,也可以分析较小区域尺寸(取决于码距)。区域不需要尺寸相等,并且区域的尺寸和/或数目可以基于包含平凡伴随的数据块的预期数目来确定。
[0079]
图9示出了用于在量子计算设备内压缩伴随数据的示例方法900。在一些示例中,方法900可以由包括并查解码器的硬件实现(例如,图12中示意性描绘的解码器)的量子计算设备实现。
[0080]
在910处,方法900包括从包括l个逻辑量子比特的至少一个量子寄存器生成伴随数据,其中l是正整数。所生成的伴随数据可以至少包括x伴随数据和z伴随数据。
[0081]
在920处,方法900包括,对于每个逻辑量子比特:将所生成的伴随数据路由到压缩引擎,压缩引擎被配置为压缩伴随数据。量子计算设备可以包括多个压缩引擎。在一些示例中,至少一个压缩引擎被配置为使用动态零压缩来压缩伴随数据。在一些示例中,至少一个压缩引擎被配置为使用稀疏表示来压缩伴随数据。在一些示例中,至少一个压缩引擎被配置为使用基于几何形状的压缩来压缩伴随数据。量子计算设备可以包括耦合到两种或更多种类型的压缩引擎的两个或更多个逻辑量子比特扇区。在一些示例中,方法900可以包括在4k下操作压缩引擎。然而,可以使用更高(例如,8k)或更低(例如,2k)的温度。
[0082]
在930处继续,方法900包括将经压缩的伴随数据路由到解压缩引擎,解压缩引擎被配置为:接收经压缩的伴随数据;以及解压缩接收到的经压缩的伴随数据。在940处,方法900包括将经解压缩的伴随数据路由到解码器块。在一些示例中,经解压缩的伴随数据可以被路由到解码器块的图生成器模块。在一些示例中,方法900可以包括在77k下操作解压缩引擎和/或解码器块。然而,可以使用更高(例如,85k)或更低(例如,70k)的温度。在一些示例中,量子计算设备包括d个解码器块的集合,其中d《2*l。
[0083]
图10示出了用于在量子计算设备内使用基于几何形状的压缩来压缩伴随数据的示例方法1000。在一些示例中,方法1000可以由包括并查解码器的硬件实现(例如,图12中示意性描绘的解码器)的量子计算设备实现。
[0084]
在1010处,方法1000包括从包括l个逻辑量子比特的至少一个表面码晶格生成伴随数据,其中l是正整数,例如,该表面码晶格基于晶格几何形状被分割成两个或更多个区域,如图8中所示。在一些示例中,区域的数目可以基于包含平凡伴随的数据块的预期数目来确定。
[0085]
在1020处,方法1000包括,对于每个逻辑量子比特:将所生成的伴随数据路由到压缩引擎,压缩引擎被配置为使用基于几何形状的压缩来压缩伴随数据。在1030处,方法1000包括对表面码晶格的两个或更多个区域中的每个区域使用零指示器比特来压缩伴随数据。在1040处,方法1000包括仅从非零区域传输伴随数据。换言之,可以假设,如果没有从区域接收到数据,则该区域仅包括平凡(例如,全零)数据。
[0086]
在1050处,方法1000包括将经压缩的伴随数据路由到解压缩引擎,解压缩引擎被配置为:接收经压缩的伴随数据;以及解压缩接收到的经压缩的伴随数据。解压缩引擎可以基于压缩引擎所使用的基于几何形状的压缩方案来编程。
[0087]
qec的解码器被用于处理伴随测量数据,并且标识损坏数据量子比特的错误。在本文中,对用于表面码的并查解码器的硬件实现的微架构进行了改进。在表面码中,对量子比特的晶格上的局部算符进行测量以及使用解码器处理伴随生成了对数据量子比特上最可能的错误的估计值。解码器微架构被设计为防止错误的累积,同时保持较低的硬件复杂度,以满足低温环境下的操作的严格功率预算。本文中所提出的架构被设计为支持扩展到数千个逻辑量子比特,以支持容错量子计算。
[0088]
量子错误解码是np困难的问题。因此,大多数解码算法在错误阈值与较低时间和算法复杂度之间进行权衡。一种很有前途的错误解码技术是基于图的最小权重完美匹配(mwpm)解码器。虽然mwpm解码器提供了高错误阈值,但是它遭受了很高的时间复杂度(o(n2))。备选地,一种简单的设计解码器的方法是基于使用查找表。该表由伴随比特索引,并且对应的条目存储数据量子比特的错误信息。然而,查找表解码器是不可扩展的,并且即使对于较小码距也需要万亿字节的存储器。深度神经解码器是流行的,并且在训练阶段学习与所测量的伴随序列相对应的可能错误的概率密度函数。使用推断,评估给定伴随的错误模式。然而,神经解码器需要更多的硬件来用于计算,并且当码距增加时不可扩展。最近提出的并查解码器提出了一种算法,该算法围绕非平凡伴随(非零伴随)形成簇(cluster),并且使用图遍历在几乎线性的时间内进行纠错。并查解码器因此提供了简单性、时间复杂度和高错误阈值。
[0089]
并查解码器的操作如图11中所示。在1100处,图1102上的每条边表示数据量子比特,并且每个顶点表示奇偶量子比特(例如,1104,1106)。解码开始于生长生成森林(spanning forest)1108以覆盖所有错误伴随比特,从而形成一个或多个偶数簇,如1110处所示。数据量子比特a 1112和b 1114可以分别被分配未知的泡利错误1116和1118。通过遍历森林,可以检测到错误,如1120处所示。簇遍历步骤(在1122、1124处示出)可以用于对错误进行检测、分类(例如,z错误)和校正。
[0090]
如图12的框图1200中所示,可以实现该算法的改编。经压缩的伴随数据1210被路由到解压缩引擎1215。经解压缩的伴随数据1220然后被路由到图生成器(gr-gen)模块1225。gr-gen模块1225可以被配置为生成生成树(spanning tree)存储器(stm)数据。深度优先搜索引擎(dfs)1230可以被配置为访问stm数据,并且基于stm数据来生成边堆栈。校正(corr)引擎1235可以被配置为访问边堆栈,基于被访问的边堆栈来生成存储器请求,并且更新错误日志1240。
[0091]
如果伴随测量错误被忽略,则使用从单轮的伴随测量生成的2d图来执行解码。为了考虑错误的测量,必须一起解码d轮连续的伴随测量,其中d是码距,从而导致3d图。并查解码器可以用于这两种情况。主要差异是所需的存储器量随表面码的码距呈二次地(对于2d)或三次地(对于3d)生长。为了简单起见,在2d中描述了并查解码器的微架构,并且将其推广到3d。所描述的所有相关结果是针对3d图获得的。解码设计包括3个流水线级,从而支持改进的设计扩展。
[0092]
gr-gen模块在解压缩之后将伴随作为输入,并且通过围绕非平凡伴随比特(非零伴随比特)生长簇来生成生成森林。生成森林可以使用两种基本图运算来构建:union()和find()。图13示意性地示出了示例gr-gen模块1300。模块1300包括生成树存储器(stm)1310、零数据寄存器(zdr)1315、根表1320、尺寸表1325、奇偶寄存器1330和融合边堆栈1335。该设计与前面描述的用以降低硬件资源成本的并查算法略有不同。每个组件的尺寸是码距d的函数。stm 1310为每个顶点存储1比特,并且每边存储2比特。每边使用2比特,这是由于根据原始算法,簇围绕顶点或现有簇边界生长一半的边宽。zdr 1315每stm行存储1比特。如果行的内容为0,则该比特存储0,并且如果行中至少一比特为1,则对应的行的zdr比特存储1。由于伴随数据是稀疏的,并且生成森林中的边总数将较低,所以zdr 1315加速了stm 1310遍历。fes 1335存储新生长的边,使得它们可以被添加到现有的簇中。根表1320
和尺寸表1325分别存储簇的根和尺寸。树遍历寄存器1340存储在find()运算中访问的每个簇的顶点。gr-gen模块与dfs引擎之间的接口1345可以允许dfs引擎访问存储在stm 1310处的数据。
[0093]
如图14中所示,根表条目(根表[i])被初始化为索引(i)。如1400处所示,非平凡伴随比特的尺寸表条目被初始化为1。这些表帮助union()和find()运算在如1410处所示的增长阶段之后将簇合并成如1420处所示的最终状态。它们由簇索引进行索引。针对可能的最大簇数设置表的尺寸,最大簇数等于表面码晶格中顶点的总数。可以存储每个簇的边界列表。然而,在与实际应用相关的噪声机制中,平均簇直径非常小。簇直径可以被定义为簇边界上两个顶点之间的最大距离。因此,可以不存储边界列表,而是可以在簇生长阶段计算边界指数。原始算法生长所有奇数簇,直到奇偶性为偶数。因此,必须快速检测出奇数簇。为了做到这一点,可以使用奇偶寄存器,如图11中所示。奇偶寄存器可以每簇存储1比特奇偶性,这取决于它是奇数还是偶数。对于11的合理码距,七个32比特寄存器可以是足够的。对于更大的码距,附加的奇偶信息可以被存储在存储器中并被预先读取,以便隐藏存储器延迟。
[0094]
控制逻辑可以读取奇偶寄存器,并且通过写入stm、zdr并向fes添加新添加的接触其他簇边界的边,来生长具有奇数奇偶性的簇(被称为生长阶段)。对于连接到其他簇的边,stm可能不更新,以防止双重生长。当通过从fes进行读取来合并簇时,它可以被更新。该逻辑可以通过读取由边连接的顶点(将这些称为首要顶点)的根表条目来检查新添加的边是否连接两个簇。这相当于find()运算。如图15中的1500处所示,在路径上被访问以查找每个首要顶点的根的顶点被存储在树遍历寄存器中。如1510处所示,这些顶点的根表条目可以被更新为直接指向簇的根,以最小化树的深度来用于未来的遍历。该操作(被称为路径压缩)被包含在并查算法中,并且允许将树的深度保持为较短,从而摊销find()运算的成本。例如,在1500处,图15示出了在某个时刻的两个簇和根表的状态。假设在生长步骤之后,顶点0和6被连接,并且两个簇必须被合并。树遍历寄存器可以用于更新顶点0的根,如1500处所示。由于树的深度被连续压缩,所以只有几个寄存器是足够的。在一个示例中,每首要顶点使用5个寄存器,尽管也可以使用更多或更少的寄存器。如果首要顶点属于不同的簇,则较小簇的根可以被更新为指向较大簇的根。
[0095]
dfs引擎可以处理由存储生长的偶数簇的集合的gr-gen产生的stm数据。它可以使用dfs算法来生成针对stm中的每个簇形成生成树的边列表。在其他示例中,可以使用广度优先搜索探索,尽管dfs通常更节省存储器。在图16的1600处示出了示例dfs引擎。该逻辑可以使用有限状态机1610和两个堆栈1620和1622来实现。可以使用堆栈,这是由于在生成树中寻访边的次序可以被反转,以通过剥离(peeling)来执行校正。边堆栈1620可以存储受访的边的列表,而待定边堆栈1622可以存储稍后将在正在进行的dfs中受访的边。例如,如图16的1630处所示,当fsm寻访生成树的顶点1时,边a被推送到边堆栈,并且边c被推送到待定边堆栈。当到达当前路径的末端时,可以弹出并遍历待定边。为了支持流水线操作并提高性能,微架构可以被设计为包括备选边堆栈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,降低了生成簇的有效成本。zdr1315降低了逐行遍历stm 1310的成本。
[0096]
corr引擎可以执行解码器的剥离过程,并且可以识别要应用的泡利校正。corr引擎可以访问边列表(其存储在堆栈上)和与沿着边列表的顶点相对应的伴随比特。伴随比特可以通过解压缩经压缩的伴随和/或通过访问stm来访问。然而,前者可能增加逻辑复杂度和延迟,而后者可能增加stm需要应付的存储器请求的数目。为了降低存储器流量并消除对于附加的解压缩逻辑的需要,伴随信息可以与边索引信息一起由dfs引擎存放。由剥离引起的临时伴随变化被存放在本地寄存器中。在corr引擎中执行的示例错误图的剥离示例如图17中所示。图17示出了步骤1 1700、步骤2 1710和步骤3 1720的示例伴随保存寄存器、错误日志、边堆栈和错误图的示例。corr引擎还可以读取最后一个表面码周期错误日志,并且可以更新当前边的泡利校正。例如,如果边e0上的错误在前一逻辑周期中是z,并且它在当前周期中也遇到z错误,则e0的泡利错误可以被更新为i,如1720处所示。
[0097]
图18示出了量子计算设备的示例解码方法1800。在一些示例中,解码方法1800可以由包括并查解码器的硬件实现(诸如,图12中示意性描绘的解码器)的量子计算设备实现。
[0098]
在1805处,方法1800包括从多个量子比特(诸如,驻留在量子寄存器中的逻辑量子比特)中的一个或多个量子比特接收伴随数据。接收到的伴随数据可以包括x伴随数据和/或z伴随数据。
[0099]
在1810处,方法1800包括用包括两个或更多个流水线级的硬件实现的并查解码器对接收到的伴随数据进行解码。作为示例,这可以包括图12中所示的包括三个流水线级的硬件实现的并查解码器:图生成器模块级、深度优先搜索引擎级和校正引擎级。然而,可以使用任何数目或组合的两个或更多个流水线级。
[0100]
可选地,在1820处,对伴随数据进行解码可以包括在gr-gen模块通过围绕非平凡伴随比特生长簇来生成生成森林。在一些示例中,可以使用union()和find()图运算来生成生成树。
[0101]
可选地,在1825处,对伴随数据进行解码可以包括在gr-gen模块处将关于生成森林的数据存储在生成树存储器(stm)和零数据寄存器中。在一些示例中,新生长的边可以被存储在融合边堆栈处。
[0102]
可选地,在1830处,对伴随数据进行解码可以包括在dfs引擎处访问存储在stm中的数据。可选地,在1835处,对伴随数据进行解码可以包括在dfs引擎处基于存储在stm中的数据来生成一个或多个边堆栈。例如,如图16中所示,基于存储在stm中的数据来生成一个或多个边堆栈可以包括生成首要边堆栈,该首要边堆栈包括受访的边的列表的。附加地或备选地,基于存储在stm中的数据来生成一个或多个边堆栈可以包括生成待定边堆栈,该待定边堆栈包括将受访的边的列表。附加地或备选地,基于存储在stm中的数据来生成一个或多个边堆栈可以包括生成备选边堆栈,该备选边堆栈被配置为保存来自生成森林的簇的剩余边。
[0103]
可选地,在1840处,对伴随数据进行解码可以包括在corr引擎处访问一个或多个
所生成的边堆栈。可选地,在1845处,对伴随数据进行解码可以包括在corr引擎处基于被访问的边堆栈来生成存储器请求。可选地,在1850处,对伴随数据进行解码可以包括在corr引擎处对每个被访问的边堆栈执行迭代剥离解码。可选地,在1855处,对伴随数据进行解码可以包括在corr引擎处基于迭代剥离解码的结果来更新解码器的错误日志。
[0104]
如本文中所讨论的,基于单轮测量的解码将不考虑伴随测量错误。为了应付测量错误,解码器检查d(码距)轮测量。该类型的纠错可以在对设计进行最小改变的情况下应付。例如,解码器可以分析3d图,而不是在2d平面上形成图。每个顶点可以连接到最多4个邻居。然而,对于3d图,每个顶点现在可以具有多达两条与前一轮测量和下一轮测量相对应的附加边。为了降低存储开销,可以存储每轮伴随测量的stm。可以优化stm,使得stm的每一行存储表面码晶格的一行的顶点、下一行的顶点的边信息以及连接下一轮的表面码晶格中对应的顶点的边信息。
[0105]
本文中所描述的压缩技术可以减少存储数据量子比特的伴随数据和错误日志所需的存储器量。然而,并查解码器的微架构也使用存储器,并且所需的总容量与超导存储器所提供的总容量相差甚远。因此,该设计可以通过使用常规cmos在77k下工作来实现。这也可以减少在靠近量子衬底的低温环境中产生的热噪声,这是由于该设计在物理上远离量子衬底。
[0106]
对于基线设计,朴素的实现可以为每个逻辑量子比特的每个x伴随和每个z伴随分配解码器,如图19的1900处所示。图19示意性地示出了量子寄存器1910内的大量逻辑量子比特的系统结构。量子寄存器1910被示为包括逻辑量子比特0 1910a、逻辑量子比特1 1910b和逻辑量子比特l 1910l作为在15-20mk下工作的代表性逻辑量子比特。每个逻辑量子比特被配置为从控制逻辑1915接收信号,并且将伴随数据输出到压缩引擎(例如,1920a、1920b
……
1920l)。控制逻辑1915和压缩引擎1920a
……
1920l被示为在比量子寄存器更高的温度4k下工作。然而,可以使用更高(例如,8k)或更低(例如,2k)的温度。
[0107]
每个压缩引擎将经压缩的伴随数据路由到在77k下工作的解压缩引擎(1925a,1925b
……
1925l)。解压缩引擎解压缩经压缩的伴随数据,并且将经解压缩的x伴随数据和z伴随数据路由到解码块1930。在该示例中,每个解压缩引擎耦合到在77k下工作的一对流水线并查解码器(1935a、1935b、1935c、1935d
……
1935k、1935l)。每个并查解码器分析从解压缩引擎接收的伴随数据,并且更新错误日志1940。尽管被示为在77k下工作,但是可以使用更高(例如,85k)或更低(例如,70k)的温度来操作解压缩引擎和解码器,尽管解压缩引擎和解码器的工作温度通常可以高于压缩引擎的工作温度。
[0108]
因此,对于基线设计,解码逻辑可以每逻辑量子比特使用2l个并查解码器。在该实现中,每个逻辑量子比特使用自己的专用解码器。然而,每个流水线级的利用率可能不同。因此,在1900处示出的架构可能不提供资源的最佳分配。对于大量的量子比特,片上组件未得到充分利用,并且散发热量。由于整个系统在77k下工作,所增加的功耗线性地增加冷却的成本。
[0109]
这样,可以使用包括减少数目的流水线单元的解码器块的架构。在图20的2000示出了这样的解码器块的示例设计。包括多个逻辑量子比特的量子比特寄存器2005将伴随数据传输到gr-gen模块集合。gr-gen模块2010组可以共享一个或多个dfs引擎2020,并且dfs引擎2020组可以共享一个或多个corr引擎2030。硬件开销包括将gr-gen模块2010组耦合到
一个dfs引擎2020的第一复用器集合2035,以及将dfs引擎2020组耦合到一个corr引擎2030的第二复用器集合2040。由corr引擎2030生成的存储器请求可以使用解复用器2045被路由到正确的存储器位置。选择逻辑2050可以优先考虑第一就绪组件,并且可以使用轮询(round robin)仲裁来为复用器2035和2040生成适当的选择信号。例如,如果四个gr-gen模块2010共享dfs引擎2020,并且第二个gr-gen模块比其他模块更早完成簇形成,则它可以首先访问对应的dfs引擎2020。因此,轮询策略在共享资源的同时确保了公平性。
[0110]
在图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)的值,以最小化整体硬件成本。这可以被框定为受约束的优化问题。
[0111]
对大规模系统进行解码的一种方式是为每个逻辑量子比特分配一个解码器。然而,该方法导致关于硬件的线性增长,从而导致功率成本的线性增长。因而,该设计不是很高效,并且本身不可扩展。本文的设计支持对特定设计组件的重用,以便当解码器块被扩展用于大量逻辑量子比特时降低实际成本。
[0112]
资源可以在解码单元内和/或整个解码单元之间共享。考虑到解码时间的分布,不太可能需要同时解码几个非常长的伴随向量,因此可以共享资源。
[0113]
该共享独立于解码器或解码算法,包括解码算法具有取决于伴随的运行时间的情况,因此一些伴随可能比其他伴随更难以解码或解码时间更长。例如,一些基于机器学习的解码器不依赖于伴随。机器学习解码器可以具有多层神经网络。一旦对第一层上的一个量子比特执行解码,第二量子比特就可以使用第一层,而第一量子比特工作在网络的第二层上。
[0114]
图22示出了量子计算设备的示例方法2200。方法2200可以由复用的量子计算设备(诸如,图20和图21所示的计算设备)来执行。在2205,方法2200包括从包括l个逻辑量子比特的至少一个量子寄存器生成伴随,其中l是正整数。所生成的伴随可以包括x伴随和z伴随。在2210,方法2200包括将所生成的伴随路由到与至少一个量子寄存器耦合的d个解码器块的集合,其中d《2*l。如关于图20和图21所描述的,这允许量子计算设备的可扩展性,这是由于需要少于两个解码器来应付对每个逻辑量子比特的x伴随和z伴随的处理。
[0115]
在一些示例中,每个解码器块被配置为从n个逻辑量子比特的集合接收解码请求,其中n》1。在一些示例中,每个解码器块包括g个gr-gen模块,其中0《g≤l,每个gr-gen模块被配置为基于接收到的伴随来生成生成树存储器(stm)数据。在一些示例中,每个解码器块还包括α*l个dfs引擎,其中0《α《1。在一些示例中,两个或更多个gr-gen模块经由第一复用器集合中的一个复用器耦合到每个dfs引擎。
[0116]
可选地,在2215,方法2200包括在每个dfs引擎处经由第一复用器集合中的一个复用器访问由两个或更多个gr-gen模块生成的stm数据。可选地,在2220,方法2200包括在每
个dfs引擎处基于stm数据生成边堆栈。在一些示例中,每个解码器块还包括β*l个corr引擎,其中0《β《1。在一些示例中,两个或更多个dfs引擎经由第二复用器集合中的一个复用器耦合到每个corr引擎。
[0117]
可选地,在2225,方法2200包括在每个corr引擎处经由第二复用器集合中的一个复用器访问由两个或更多个dfs引擎生成的边堆栈。可选地,在2230,方法2200包括基于被访问的边堆栈来生成存储器请求。可选地,在2235,方法2200包括经由一个或多个解复用器将由每个corr引擎生成的存储器请求路由到存储器位置。可选地,在2240,方法2200包括基于轮询仲裁通过第一复用器集合和第二复用器集合中的每个复用器路由返回信号。
[0118]
当在一个逻辑周期(t)内解码d轮伴随测量时,纠错成功,这限制了解码器可以容忍的最大延迟。当解码器无法解码逻辑周期内的所有伴随时,错误可能不被检测到。该类型的故障可以被称为超时故障。由于解码器是不完美的并且表现出阈值行为,所以当由解码器生成的校正改变量子比特的逻辑状态时,也存在发生逻辑错误的可能性。因此,解码器的故障可以归因于超时故障或逻辑错误。为了保持错误阈值相同并防止系统故障率增加,超时故障的概率(p
tof
)必须低于逻辑错误的发生概率(p
log
),如等式(4)所示。对于优化设计,只要p
tof
足够小,资源共享就是可能的。
[0119]
p
tof
≤p
log
ꢀꢀꢀ
(等式4)
[0120]
假设具有完全相同的出错率的n个逻辑量子比特共享k个解码单元。解码n个逻辑量子比特的总执行时间由等式(5)给出:
[0121][0122]
其中,τi表示解码第i个逻辑量子比特的伴随的执行时间。在这种情况下,超时故障的概率p
tof
必须满足等式(6)。
[0123][0124]
优化目标是最小化给定数目的逻辑量子比特n的解码单元数目k,使得满足由等式(4)给出的约束。p
tof
可以使用从仿真器获得的执行时间来建模。
[0125]
解码器性能可以通过研究读取次数来建模。所执行的写入操作可以是读取-修改-写入,并且写回可能不在关键路径上。对于存储器访问和4ghz时钟频率,假设4个周期的延迟。用于给定伴随的gr-gen中的存储器请求总数与簇直径(di)成正比。然而,它与dfs引擎和corr引擎中的簇尺寸(si)成比例。等式(7)和(8)给出了在用于具有n个簇的伴随的gr-gen(tgg)、dfs引擎(tdfs)和corr引擎(tce)中花费的执行时间。
[0126][0127]
τ
dfs
=τ
ce
=∑isiꢀꢀꢀ
(等式8)
[0128]
在优化设计中,每个gr-gen单元为x伴随和z伴随生长簇。两个或更多个gr-gen单元使用一个dfs引擎模块,并且两个或更多个dfs引擎使用一个corr引擎。要共享的单元的这些数目可以由每个流水线级中花费的总执行时间的分数来确定。
[0129]
下面,讨论用于在解码器微架构中进行设计选择的仿真基础设施。该基础设施支持对并查解码器的一些关键统计数据的估计,并且还支持对本文中所描述的压缩技术的性能的研究。
[0130]
蒙特卡罗仿真器用于分析不同压缩技术的性能,并且获得并查解码器的性能的统计数据。图23示意性地示出了蒙特卡罗仿真器2300。不同的配置跨越四种不同的物理出错率、十种不同的码距和四种噪声模型,每种仿真了一百万次试验。所选择的出错率为10-6
(最乐观)、10-4
、10-3
和10-2
(最悲观)。仿真器2300接受码距2302、噪声模型2304和压缩算法2306。基于码距2302,仿真器2300经由晶格生成器2308生成表面码晶格。取决于所选择的噪声模型2304,仿真器经由错误注入2310在表面码晶格的数据量子比特上注入错误,并且生成输出伴随2312。输出伴随2312然后根据输入压缩算法2306经由压缩器2314被压缩,以生成压缩伴随2316。仿真器2300然后输出压缩比。作为确定最合适的压缩方案的品质因数,使用压缩比(由等式(9)确定)和不可压缩伴随的百分比。仿真被重复一百万次,以计算平均压缩比和不可压缩伴随的百分比。
[0131][0132]
仿真器还经由解码器2318对伴随2312运行并查解码算法。统计生成器2320然后通过对硬件建模来分析簇尺寸的分布、给定晶格上的簇的平均数目以及解码器2318的每个流水线级中花费的执行时间。这些统计数和性能数提供了有助于解码器硬件实现的微架构设计并且推动可扩展设计的见解。
[0133]
解码器的性能在很大程度上取决于底层量子比特的噪声模型。因此,探索了四种不同的错误模型。假设完全相同且独立分布(iid)的错误,并且选择去极化噪声模型作为最基本的噪声模型。在去极化噪声模型中,如果出错率为p,则每个物理量子比特遇到错误的概率为p,并且保持无错误的概率为(1-p)。另外,在该错误模型中,x、y和z错误分别以相等的概率p/3出现。其他三种噪声模型假设x错误和z错误的概率不同,如表2中所示。
[0134][0135]
表2
[0136]
本文讨论了伴随压缩、基线并查解码器设计和可扩展性分析的结果。基线解码器和可扩展性分析的结果基于本文中所描述的d(码距)轮伴随测量。
[0137]
每种压缩方案的性能取决于噪声模型。对于去极化噪声模型而言,与稀疏表示相比,像dzc和geo-comp之类的压缩方案在取决于出错率的低码距下提供了更好的性能。对于针对特定类型的错误(诸如,p
x
=10pz和p
x
=100pz)具有相对偏差的噪声模型而言,dzc比geo-comp效果更好。对于较低的码距,即使稀疏表示提供了较高的压缩比,对于较大的出错率,不可压缩伴随的百分比也更高(高达6%)。对于一种类型的错误概率比另一种类型的错误概率大得多的噪声模型,通过以更大的硬件复杂度为代价分开压缩x伴随和z伴随,获得
更好的压缩比。如果由于硬件约束只能使用一种类型的压缩,则对于较低的码距,dzc的性能更好。表3规定了不同的噪声机制以及在每种机制中最有效的适当的压缩方案。总的来说,对于在低出错率的机制中的大多数情况,稀疏表示的性能更好。
[0138][0139]
表3
[0140]
图24示出了曲线图2400,曲线图2400针对不同物理出错率和噪声机制示出使用所选压缩方案的去极化噪声信道的x伴随的均值压缩比。去极化噪声通道被视为代表性候选方案。对于z伴随观测到类似的结果。
[0141]
从仿真中确定了簇直径的分布。如本文定义的,簇直径是簇的任意两个边界顶点之间的最大距离。图25示出了曲线图2500,曲线图2500指示对于逻辑量子比特的不同出错率和码距的平均簇直径。平均簇直径较低。该结果被用于消除在硬件中维护每个簇的边界列表(即,在原始的并查算法中所使用的功能)时产生的存储成本。这降低了gr-gen模块的硬件成本。簇直径将变小的概率随着出错率的减小而增加。
[0142]
由gr-gen模块和dfs引擎使用的生成树存储器(stm)占据大部分存储成本。图26示出了曲线图2600,曲线图2600指示对于给定的码距(d)和逻辑量子比特数目(n)而言生成树存储器(stm)所需的总存储器容量。这是示出的结果是使用d轮测量构建的3d图。曲线图2600表明,即使对于大量的逻辑量子比特(诸如,1000个)而言,对于非常大的码距(d)和d轮测量,解码x伴随和z伴随两者所需的总存储器也小于10mb。如果解码器不需要考虑d轮测量(假设将来可能有完美的测量),则所需的总存储器容量将减少d倍。
[0143]
根表和尺寸表可能的最大条目数目是d(码距)轮伴随测量的伴随比特总数(等于2d(d-1))。每个根表条目包括可以使用log22d2(d-1)个比特来唯一标识的根。类似地,可行的最大簇尺寸包括所有伴随比特。因此,对于每个逻辑量子比特,根表和尺寸表的总尺寸是2d2(d-1)log22d2(d-1)个比特。
[0144]
堆栈的尺寸可以通过分析来自蒙特卡罗仿真的簇内的最大边数来确定。簇中的边数遵循泊松分布。图27示出了指示对于码距d=11和物理出错率p=10-3
的这样的分布的示例曲线图2700。因此,堆栈尺寸可以被设计为最大边数的一半。图28是示出了对于不同的码距和出错率的簇中的平均边数的曲线图2800。每个堆栈存储两个顶点(log24d2(d-1)个比特)、生长方向(2比特)和1比特伴随。值得注意的是,每个dfs引擎包括2个用于流水线的堆栈。如果簇的尺寸大于每个堆栈所能保存的尺寸,则可以设置溢出比特,并且在可用时使用
备选堆栈。
[0145]
图29示出了指示gr-gen与dfs引擎中的执行时间之间的相关性的曲线图2900。这意味着在解码期间更多时间被花费在gr-gen单元中。如本文所述,该数据被用于选择要在解码器块内共享的资源数目。图30示出了指示对于码距(d)为11、出错率(p)为0.5x10-3
的单个解码器块(例如,如图20所示)的执行时间分布的曲线图3000。阴影区域指示可能导致超时故障的概率增加的事件。在实现资源共享的情况下,超时故障的概率p
tof
低于逻辑出错率为10-8
的概率。对于l个逻辑量子比特,在该架构中使用的gr-gen模块、dfs引擎和corr引擎的数目分别为l、l/2和l/2。因此,gr-gen模块、dfs引擎和corr引擎的总数分别减少了2x、4x和4x。
[0146]
纠错是与量子计算机相关的经典计算的组成部分。错误解码算法被设计为获得更高的纠错能力(阈值)。在本文中,公开了并查解码器的硬件实现的微架构,其使用在77k下工作的cmos。伴随压缩是可行的,以便满足4k

77k链路的带宽要求。不同的压缩方案在不同的噪声机制下表现不同,其中稀疏数据表示通常对于较低的出错率和较大的码距而言表现更好。所公开的微架构被设计为记住解码器需要扩展到几千个逻辑量子比特。该架构包括三个流水线级,并且针对高性能、高吞吐量和低硬件复杂度进行调谐。可以针对用于实际容错量子计算的更大数目的逻辑量子比特来扩展该设计。在每个流水线级中花费的时间不同,从而每一级的利用率也不同。通过考虑这一点,公开了一种依赖于跨多个逻辑量子比特的资源共享的架构。支持这样的资源共享,使得逻辑出错率不受影响,并且由于缺少解码资源而无法解码错误所导致的系统故障率被最小化。
[0147]
在一些实施例中,本文中所描述的方法和过程可以与一个或多个计算设备的计算系统相关联。具体地,这样的方法和过程可以被实现为计算机应用程序或服务、应用编程接口(api)、库和/或其他计算机程序产品。
[0148]
图31示意性地示出了计算系统3100的非限制性实施例,计算系统3100可以实施一个或多个上述方法和过程。计算系统3100以简化的形式示出。计算系统3100可以体现如上描述并在图1中示出的主机计算机设备。计算系统3100可以采取一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备以及可穿戴计算设备(诸如,智能腕表和头戴式增强现实设备)的形式。
[0149]
计算系统3100包括逻辑处理器3102、易失性存储器3104和非易失性存储设备3106。计算系统3100可以可选地包括显示子系统3108、输入子系统3110、通信子系统3112和/或图31中未示出的其他组件。
[0150]
逻辑处理器3102包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。这样的指令可以被实现来执行任务、实现数据类型、转换一个或多个组件的状态、获得技术效果或者以其他方式达到期望的结果。
[0151]
逻辑处理器可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或备选地,逻辑处理器可以包括被配置为执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器3102的处理器可以是单核或多核的,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。可选地,逻辑处理器的各个组件
可以分布在两个或更多个分开的设备当中,这些设备可以位于远处和/或被配置用于协同处理。逻辑处理器的方面可以由以云计算配置进行配置的远程可访问的联网计算设备来虚拟化和执行。在这种情况下,可以理解,这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。
[0152]
非易失性存储设备3106包括被配置为保存可由逻辑处理器执行的指令以实现本文中所描述的方法和过程的一个或多个物理设备。当实现这样的方法和过程时,非易失性存储设备3106的状态可以被转换——例如,以保存不同的数据。
[0153]
非易失性存储设备3106可以包括可移除和/或内置的物理设备。非易失性存储设备3106可以包括光学存储器(例如,cd、dvd、hd-dvd、蓝光光盘等)、半导体存储器(例如,rom、eprom、eeprom、闪存等)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、mram等)或其他大容量存储设备技术。非易失性存储设备3106可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可访问、文件可访问和/或内容可访问的设备。将理解的是,非易失性存储设备3106被配置为即使在非易失性存储设备3106断电时也保存指令。
[0154]
易失性存储器3104可以包括含有随机存取存储器的物理设备。逻辑处理器3102通常利用易失性存储器3104在软件指令处理期间临时存储信息。将理解的是,当易失性存储器3104断电时,易失性存储器3104通常不继续存储指令。
[0155]
逻辑处理器3102、易失性存储器3104和非易失性存储设备3106的方面可以一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(fpga)、程序和应用特定集成电路(pasic/asic)、程序和应用特定标准产品(pssp/assp)、片上系统(soc)和复杂可编程逻辑器件(cpld)。
[0156]
当被包括时,显示子系统3108可以用于呈现由非易失性存储设备3106保存的数据的视觉表示。视觉表示可以采取图形用户界面(gui)的形式。由于本文中所描述的方法和过程改变了由非易失性存储设备保存的数据,从而变换了非易失性存储设备的状态,因此显示子系统3108的状态同样可以被变换以可视地表示底层数据的变化。显示子系统3108可以包括利用几乎任何类型技术的一个或多个显示设备。这样的显示设备可以与共享外壳中的逻辑处理器3102、易失性存储器3104和/或非易失性存储设备3106相结合,或者这样的显示设备可以是外围显示设备。
[0157]
当被包括时,输入子系统3110可以包括一个或多个用户输入设备(诸如,键盘、鼠标、触摸屏或游戏控制器),或者与用户输入设备对接。在一些实施例中,输入子系统可以包括选定的自然用户输入(nui)组件,或者与选定的nui部件对接。这样的部件可以是集成的或外围的,并且输入动作的转换和/或处理可以在系统上或系统外应付。示例nui部件可以包括用于语音和/或话音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感测组件;以及/或任何其他合适的传感器。
[0158]
当被包括时,通信子系统3112可以被配置为将本文中所描述的各种计算设备彼此通信耦合,并且与其他设备通信耦合。通信子系统3112可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置为经由无线电话网络、或者有线或无线局域网或广域网(诸如,wi-fi连接上的hdmi)进行通信。在一些实施例中,通信子系统可以允许计算系统3100经由诸如互联网的网络向其他设备发送消息
和/或从其他设备接收消息。
[0159]
作为示例,一种量子计算设备包括:至少一个量子寄存器,包括多个量子比特;以及硬件解码器,被配置为:从多个量子比特中的一个或多个量子比特接收伴随数据;以及通过经由包括两个或更多个流水线级的硬件微架构实现并查解码算法,对接收到的伴随数据进行解码。在这样的示例或任何其他示例中,两个或更多个流水线级附加地或备选地包括:图生成器(gr-gen)模块,被配置为:通过围绕非平凡伴随比特生长簇来生成生成森林;以及将关于生成森林的数据存储在生成树存储器(stm)和零数据寄存器中;深度优先搜索(dfs)引擎,被配置为:访问存储在stm中的数据;以及基于存储在stm中的数据来生成一个或多个边堆栈;以及校正(corr)引擎,被配置为:访问一个或多个边堆栈;基于被访问的边堆栈来生成存储器请求;以及基于经解码的伴随数据来更新错误日志。在任何前述示例或任何其他示例中,dfs引擎被附加地或备选地配置为生成:首要边堆栈,包括受访的边的列表;待定边堆栈,包括将受访的边的列表;以及备选边堆栈,被配置为保存来自生成森林的簇的剩余边。在任何前述示例或任何其它示例中,两个或更多个流水线级中的至少一个流水线级附加地或备选地经由复用器耦合到两个或更多个上游的流水线级。
[0160]
在另一示例中,一种量子计算设备包括:至少一个量子寄存器,包括多个逻辑量子比特;以及硬件解码器,被配置为从多个逻辑量子比特中的一个或多个逻辑量子比特接收伴随数据,以及对接收到的伴随数据进行解码,硬件解码器包括:图生成器(gr-gen)模块,被配置为:通过围绕非平凡伴随比特生长簇来生成生成森林;以及将关于生成森林的数据存储在生成树存储器(stm)和零数据寄存器中;深度优先搜索(dfs)引擎,被配置为:访问存储在stm中的数据;以及基于存储在stm中的数据来生成一个或多个边堆栈;以及校正(corr)引擎,被配置为:访问一个或多个边堆栈;以及基于被访问的边堆栈来生成存储器请求。在这样的示例或任何其他示例中,corr引擎被附加地或备选地配置为:对每个被访问的边堆栈执行迭代剥离解码;以及基于迭代剥离解码的结果来更新硬件解码器的错误日志。在任何前述示例或任何其他示例中,硬件解码器附加地或备选地在3d图中一起分析d轮连续的接收到的伴随数据,其中d是码距。在任何前述示例或任何其他示例中,gr-gen模块被附加地或备选地配置为使用union()和find()图运算来生成生成森林。在任何前述示例或任何其他示例中,gr-gen模块附加地或备选地包括被配置为存储新生长的边的融合边堆栈。在任何前述示例或任何其他示例中,附加地或备选地,基于从融合边堆栈接收到两个或更多个簇已被合并的指示,更新stm。在任何前述示例或任何其他示例中,dfs引擎被附加地或可替换地配置为生成:首要边堆栈,包括受访的边的列表;待定边堆栈,包括将受访的边的列表;以及备选边堆栈,被配置为保存来自生成森林的一个或多个簇的剩余边。在任何前述示例或任何其他示例中,经解压缩的伴随数据被附加地或备选地从解压缩引擎路由到gr-gen模块。在任何前述示例或任何其他示例中,两个或更多解压缩引擎被附加地或备选地耦合到硬件解码器。
[0161]
在又一示例中,一种用于量子计算设备的解码方法包括:从多个量子比特中的一个或多个量子比特接收伴随数据;以及用包括两个或更多个流水线级的硬件实现的并查解码器对伴随数据进行解码。在这样的示例或任何其他示例中,用包括两个或更多个流水线级的硬件实现的并查解码器对伴随数据进行解码附加地或备选地包括:在图生成器(gr-gen)模块处:通过围绕非平凡伴随比特生长簇来生成生成森林;以及将关于生成森林的数
据存储在生成树存储器(stm)和零数据寄存器中;在深度优先搜索(dfs)引擎处:访问存储在stm中的数据;以及基于存储在stm中的数据来生成一个或多个边堆栈;以及在校正(corr)引擎处:访问一个或多个生成的边堆栈;以及基于被访问的边堆栈来生成存储器请求。在任何前述示例或任何其他示例中,解码方法附加地或备选地包括,在corr引擎处:对每个被访问的边堆栈执行迭代剥离解码;以及基于迭代剥离解码的结果来更新硬件实现的并查解码器的错误日志。在任何前述示例或任何其他示例中,解码方法附加地或备选地包括在3d图中在硬件实现的并查解码器处一起分析d轮连续的伴随数据,其中d是码距。在任何前述示例或任何其他示例中,解码方法附加地或备选地包括在gr-gen模块处使用union()和find()图运算来生成生成森林。在任何前述示例或任何其他示例中,解码方法附加地或备选地包括在gr-gen模块处在融合边堆栈存储新生长的边。在任何前述示例或任何其他示例中,解码方法附加地或备选地包括在dfs引擎处:生成首要边堆栈,该首要边堆栈包括受访的边的列表;生成待定边堆栈,该待定边堆栈包括将受访的边的列表;以及生成备选边堆栈,该备选边堆栈被配置为保存来自生成森林的簇的剩余边。
[0162]
将理解的是,本文中所描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应被认为是限制性的,因为许多变化是可能的。本文中所描述的特定例程或方法可以表示任何数目的处理策略中的一个或多个。这样,所示出和/或描述的各种动作可以以所示出和/或描述的顺序、以其他顺序、并行地执行,或者被省略。同样,上述过程的次序可以被改变。
[0163]
本公开的主题包括本文中所公开的各种过程、系统和配置以及其他特征、功能、动作和/或性质的所有新颖且非显而易见的组合和子组合,以及其任何和所有等同物。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献