This disclosure generally relates to quantum computing, and particularly to the design and operation of components used for programming and operating other quantum components.
A quantum computer is a system that makes direct use of at least one quantum-mechanical phenomenon, such as superposition, tunneling, or entanglement, to perform operations on data. The elements of a quantum computer are quantum binary digits, known as qubits. One model of quantum computing is adiabatic quantum computing. Adiabatic quantum computing can be suitable for solving hard optimization problems, for example. Further details on adiabatic quantum computing systems, methods, and apparatus are described, for example, in U.S. Pat. Nos. 7,135,701 and 7,418,283.
Quantum annealing is a computational method that may be used to find a low-energy state of a system, typically preferably the ground state of the system. Similar in concept to classical simulated annealing, the method relies on the underlying principle that natural systems tend towards lower energy states because lower energy states are more stable. While classical annealing uses classical thermal fluctuations to guide a system to a low-energy state, quantum annealing may use quantum effects, such as quantum tunneling, as a source of delocalization to reach an energy minimum more accurately and/or more quickly than classical annealing. In quantum annealing, thermal effects and other noise may be present. The final low-energy state may not be the global energy minimum.
Adiabatic quantum computation may be considered a special case of quantum annealing. In adiabatic quantum computation, the system ideally begins and remains in its ground state throughout an adiabatic evolution. Thus, those of skill in the art will appreciate that quantum annealing systems and methods may generally be implemented on an adiabatic quantum computer. Throughout the present application, any reference to quantum annealing is intended to encompass adiabatic quantum computation unless the context requires otherwise.
Quantum components are structures in which quantum mechanical effects are observable. Quantum components may also be referred to as quantum devices. Quantum components include circuits in which current transport is dominated by quantum mechanical effects. Such components include spintronics, where electronic spin is used as a resource, and superconducting circuits. A superconducting circuit is a circuit that includes a superconducting device. A superconducting device is a device that includes a superconducting material. A superconducting material is a material that has no electrical resistance below critical levels of current, magnetic field, and temperature. Both spin and superconductivity are quantum mechanical phenomena. Quantum components can be used for measurement instruments, in computing machinery, and the like.
A quantum processor may take the form of a superconducting quantum processor. A superconducting quantum processor may include a number of superconducting qubits and associated components that provide a local bias. A superconducting quantum processor may also include coupling devices (also known as couplers) that selectively provide communicative coupling between qubits.
A quantum processor can be a superconducting quantum processor that includes superconducting qubits. Wendin G. and Shumeiko V. S., “SUPERCONDUCTING QUANTUM CIRCUITS, QUBITS AND COMPUTING” (arXiv:cond-mat/0508729v1, 2005), provides an introduction to the physics and principles of operation of quantized superconducting electrical circuits for quantum information processing.
Superconducting qubits are solid state qubits based on circuits of superconducting materials. Operation of superconducting qubits is based on the underlying principles of magnetic flux quantization, and Josephson tunneling. Superconducting effects can be present in different configurations and can give rise to different types of superconducting qubits including flux, phase, charge, and hybrid qubits. The different configurations can vary in the topology of the loops, the placement of the Josephson junctions, and the physical parameters of elements of the superconducting circuits, such as inductance, capacitance, and Josephson junction critical current.
In one implementation, a superconducting qubit includes a superconducting loop interrupted by a Josephson junction. The ratio of the inductance of the Josephson junction to the geometric inductance of the superconducting loop can be expressed as 2πLIC/Φ0 (where L is the geometric inductance, IC is the critical current of the Josephson junction, and Φ0 is the flux quantum). The inductance and the critical current can be selected, adjusted, or tuned, to increase the ratio of the inductance of the Josephson junction to the geometric inductance of the superconducting loop, and to cause the qubit to be operable as a bistable device. In some implementations, the ratio of the inductance of the Josephson junction to the geometric inductance of the superconducting loop of a qubit is approximately equal to three.
In one implementation, a superconducting coupler includes a superconducting loop interrupted by a Josephson junction. The inductance and the critical current can be selected, adjusted, or tuned, to decrease the ratio of the inductance of the Josephson junction to the geometric inductance of the superconducting loop, and to cause the coupler to be operable as a monostable device. In some implementations, the ratio of the inductance of the Josephson junction to the geometric inductance of the superconducting loop of a coupler is approximately equal to, or less than, one.
Further details and implementations of exemplary quantum processors that may be used in conjunction with the present systems and components are described in, for example, U.S. Pat. Nos. 7,533,068; 8,008,942; 8,195,596; 8,190,548; and 8,421,053.
The foregoing examples of the related art and limitations related thereto are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent to those of skill in the art upon a reading of the specification and a study of the drawings.
According to an aspect, there is provided a digital to analog converter (DAC) comprising a first stage comprising a first storage loop interrupted by a first Josephson junction, the first storage loop having an interface operable to communicate with an external component, a second stage comprising a second storage loop interrupted by a second Josephson junction, the second storage loop galvanically coupled to the first storage loop, the first Josephson junction and the second Josephson junction coupled in series to a first control line, and a first quantum flux parametron (QFP) loop and a second quantum QFP loop, the first and the second QFP loops galvanically coupled to and extending from a respective one of the first stage and the second stage.
According to other aspects the DAC may further comprise a third stage galvanically coupled to the second stage and a fourth stage galvanically coupled to the third stage, the third and fourth stages comprising a third storage loop and a fourth storage loop, the third and the fourth storage loops interrupted by a third Josephson junction and a fourth Josephson junction respectively, the third and the fourth Josephson junctions being coupled in series to the first control line and a third QFP loop and a fourth QFP loop, the third and the fourth QFP loops galvanically coupled to and extending from a respective one of the third stage and the fourth stage. Each QFP loop may comprise a respective Josephson junction, the respective Josephson junction of each QFP loop may comprise a respective compound Josephson junction, the first and second Josephson junctions may each comprise a compound Josephson junction, and the first and the second QFP loops may be symmetrically connected to the respective one of the first stage and the second stage, and the first QFP loop may be isolated from the second QFP loop. The first control line may bisect each of the first storage loop and the second storage loop, each of the first storage loop and the second storage loop may comprise a respective Josephson junction on each of a respective first side and a respective second side of each storage loop, and each of the first and the second QFP loops may be coupled to extend from the respective first side of the respective storage loop to the respective second side of the respective storage loop. Each of the first and the second QFP loops may be galvanically coupled to one or more additional QFP loops, the DAC may further comprise a second control line extending at least approximately perpendicularly to the first control line, and the second control line may be positioned to be inductively coupled to each of the first storage loop and the second storage loop, the first and the second QFP loops may be galvanically coupled along the first control line, the first, the second, the third, and the fourth QFP loops may be galvanically coupled along the first control line, the DAC may further comprise a flux bias line communicatively coupleable to the first QFP loop, the flux bias line may comprise a QFP stage of a QFP shift register, and the flux bias line may comprise a signal line.
According to an aspect, there is provided a method of selectively programming a programmable component of a quantum processor, the method comprising loading a first persistent current into a first digital to analog converter quantum flux parametron (DAC-QFP) loop, the first DAC-QFP loop galvanically coupled to a first digital to analog converter (DAC) storage loop, the first persistent current corresponding to an intended state of the first DAC storage loop, loading a second persistent current into a second DAC-QFP loop, the second DAC-QFP loop galvanically coupled to a second DAC storage loop, the second DAC storage loop galvanically coupled to the first DAC storage loop, the second persistent current corresponding to an intended state of the second DAC storage loop, applying a signal to one or more control lines in communication with the first DAC-QFP loop to introduce a first amount of flux into the first DAC storage loop based on the first persistent current of the first DAC-QFP loop via a first intervening Josephson junction, applying a signal to one or more control lines in communication with the second DAC-QFP loop to introduce a second amount of flux into the second DAC storage loop based on the second persistent current of the second DAC-QFP loop via a second intervening Josephson junction, and transferring a flux bias to the programmable component based on a combined flux comprising the first amount of flux within the first DAC storage loop and the second amount of flux within the second DAC storage loop through an interface carried by the first DAC storage loop that communicates with the programmable component.
According to other aspects, loading a first persistent current into a first DAC-QFP loop may comprise applying a current bias to a first quantum flux parametron (QFP) of a QFP shift register to provide a first current and shifting the first current through at least one first intervening QFP of the QFP shift register to reach the first DAC-QFP loop, loading a second persistent current into a second DAC-QFP loop may comprise applying a current bias to a second QFP of the QFP shift register that is electrically isolated from the first QFP of the QFP shift register to provide a second current and shifting the second current through at least one second intervening QFP of the QFP shift register to reach the second DAC-QFP loop, and loading a persistent current into a second QFP loop may comprise loading the second persistent current into the first QFP loop and shifting the second persistent current into the second QFP loop through one or more intermediate QFP loops, the intermediate QFP loop galvanically coupled to an intermediate DAC storage loop, wherein the first DAC storage loop, the intermediate DAC storage loop, and the second DAC storage loop are galvanically connected. Transferring a flux bias to the programmable component may comprise transferring a flux bias to one of a qubit, a coupler, a programming component, or a readout component.
According to an aspect, there is provided a quantum processor comprising one or more programmable superconducting components, a shift register comprising two or more rows extending in a first direction and formed from a plurality of quantum flux parametron (QFP) based shift register stages, each QFP based shift register stage within a respective row coupled to at least one other QFP based shift register stage of the plurality of QFP based shift register stages, a respective digital to analog converter quantum flux parametron (DAC-QFP) coupled to one QFP based shift register stage of each row in the shift register, a respective digital to analog converter (DAC) storage loop galvanically coupled to each DAC-QFP by a galvanic coupler, the galvanic coupler including a Josephson junction, each of the respective DAC storage loops being galvanically coupled along a second direction perpendicular to the first direction, and one of the respective DAC storage loops being in communication with one of the one or more programmable superconducting components.
According to other aspects, the DAC-QFPs may be arranged in an array, a power line may extend in the second direction between QFPs in a column extending along the first direction, a global signal line may extend perpendicular to the power line in the first direction and along a first row of QFPs, and the DAC storage loop may comprise a compound Josephson junction (CJJ) and the DAC-QFP may be galvanically coupled symmetrically to either side of the CJJ.
According to an aspect, there is provided a method of programming a target stage of a DAC comprising applying a bias current to a first QFP stage, shifting the bias current to a target QFP stage through an intermediate QFP stage, and applying current through one or more control lines to introduce flux into a target DAC storage loop.
According to other aspects, shifting the bias current to a target QFP stage through an intermediate QFP stage and applying current through one or more control lines to transfer flux into a target DAC storage loop may comprise applying a flux bias to a first Josephson junction carried by the first QFP stage, applying a flux bias to an intermediate Josephson junction carried by the intermediate QFP stage, suppressing the first Josephson junction of the first QFP stage, loading a pulse into the target DAC storage loop via the target QFP stage comprising, applying a flux bias to a target Josephson junction of the target QFP stage, introducing a current to a first control line in communication with the target DAC storage loop, introducing a current to a second control line in communication with a DAC Josephson junction to increase the current through the DAC Josephson junction over a threshold to cause the bias current to transfer from the target QFP stage into a galvanically coupled target DAC storage loop, removing the current from the first and second control lines, suppressing the flux bias of the target QFP stage, and iteratively loading flux into the target DAC storage loop via the target QFP stage until an intended number of flux quanta are introduced into the target DAC storage loop.
In other aspects, the features described above may be combined together in any reasonable combination as will be recognized by those skilled in the art.
In the drawings, identical reference numbers identify similar elements or acts. The sizes and relative positions of elements in the drawings are not necessarily drawn to scale. For example, the shapes of various elements and angles are not necessarily drawn to scale, and some of these elements may be arbitrarily enlarged and positioned to improve drawing legibility. Further, the particular shapes of the elements as drawn, are not necessarily intended to convey any information regarding the actual shape of the particular elements and may have been solely selected for ease of recognition in the drawings.
In the following description, certain specific details are set forth in order to provide a thorough understanding of various disclosed implementations. However, one skilled in the relevant art will recognize that implementations may be practiced without one or more of these specific details, or with other methods, components, materials, etc. In other instances, well-known structures associated with computer systems, server computers, and/or communications networks have not been shown or described in detail to avoid unnecessarily obscuring descriptions of the implementations.
Unless the context requires otherwise, throughout the specification and claims that follow, the word “comprising” is synonymous with “including,” and is inclusive or open-ended (i.e., does not exclude additional, unrecited elements or method acts).
Reference throughout this specification to “one implementation” or “an implementation” means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrases “in one implementation” or “in an implementation” in various places throughout this specification are not necessarily all referring to the same implementation. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more implementations.
As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. It should also be noted that the term “or” is generally employed in its sense including “and/or” unless the context clearly dictates otherwise.
The headings and Abstract of the Disclosure provided herein are for convenience only and do not interpret the scope or meaning of the implementations.
The digital processor(s) 106 may be any logic processing unit or circuitry (for example, integrated circuits), such as one or more central processing units (“CPUs”), graphics processing units (“GPUs”), digital signal processors (“DSPs”), application-specific integrated circuits (“ASICs”), programmable gate arrays (“FPGAs”), programmable logic controllers (“PLCs”), etc., and/or combinations of the same.
In some implementations, computing system 100 comprises an analog computer 104, which may include one or more quantum processors 126. Quantum processor 126 may include at least one superconducting integrated circuit using systems and methods described in the present application. Digital computer 102 may communicate with analog computer 104 via, for instance, a controller 118. Certain computations may be performed by analog computer 104 at the instruction of digital computer 102, as described in greater detail herein.
Digital computer 102 may include a user input/output subsystem 108. In some implementations, the user input/output subsystem includes one or more user input/output components such as a display 110, mouse 112, and/or keyboard 114.
System bus 120 may employ any known bus structures or architectures, including a memory bus with a memory controller, a peripheral bus, and a local bus. System memory 122 may include non-volatile memory, such as read-only memory (“ROM”), static random-access memory (“SRAM”), Flash NAND; and volatile memory such as random-access memory (“RAM”) (not shown).
Digital computer 102 may also include other non-transitory computer- or processor-readable storage media or non-volatile memory 116. Non-volatile memory 116 may take a variety of forms, including: a hard disk drive for reading from and writing to a hard disk (for example, a magnetic disk), an optical disk drive for reading from and writing to removable optical disks, and/or a solid state drive (SSD) for reading from and writing to solid state media (for example NAND-based Flash memory). Non-volatile memory 116 may communicate with digital processor(s) via system bus 120 and may include appropriate interfaces or controllers 118 coupled to system bus 120. Non-volatile memory 116 may serve as long-term storage for processor- or computer-readable instructions, data structures, or other data (sometimes called program modules) for digital computer 102.
Although digital computer 102 has been described as employing hard disks, optical disks and/or solid-state storage media, those skilled in the relevant art will appreciate that other types of nontransitory and non-volatile computer-readable media may be employed. Those skilled in the relevant art will appreciate that some computer architectures employ nontransitory volatile memory and nontransitory non-volatile memory. For example, data in volatile memory may be cached to non-volatile memory or a solid-state disk that employs integrated circuits to provide non-volatile memory.
Various processor- or computer-readable instructions, data structures, or other data may be stored in system memory 122. For example, system memory 122 may store instruction for communicating with remote clients and scheduling use of resources including resources on the digital computer 102 and analog computer 104. Also, for example, system memory 122 may store at least one of processor executable instructions or data that, when executed by at least one processor, causes the at least one processor to execute various algorithms and/or instructions. In some implementations system memory 122 may store processor- or computer-readable calculation instructions and/or data to perform pre-processing, co-processing, and post-processing to analog computer 104. System memory 122 may store a set of analog computer interface instructions to interact with analog computer 104.
Analog computer 104 may include at least one analog processor such as quantum processor 126. Analog computer 104 may be provided in an isolated environment, for example, in an isolated environment that shields the internal elements of the quantum computer from heat, magnetic field, and other external noise. The isolated environment may include a refrigerator, for instance a dilution refrigerator, operable to cryogenically cool the analog processor, for example to temperature below approximately 1 K.
Analog computer 104 may include programmable elements such as qubits, couplers, and other components. Qubits may be read out via readout control system 128. Readout results may be sent to other computer- or processor-readable instructions of digital computer 102. Qubits may be controlled via a qubit control system 130. Qubit control system 130 may include on-chip Digital to Analog Converters (DACs) and analog lines that are operable to apply a bias to a target device. Couplers that couple qubits may be controlled via a coupler control system 132. Coupler control system 132 may include tuning elements such as on-chip DACs and analog lines. Qubit control system 130 and coupler control system 132 may be used to implement a quantum annealing schedule as described herein on analog processor 104. Programmable elements may be included in quantum processor 126 in the form of an integrated circuit. Qubits and couplers may be positioned in layers of the integrated circuit that comprise a first material. Other components, such as readout control system 128, may be positioned in other layers of the integrated circuit that comprise a second material.
Superconducting flux storage components are also referred to in the present application as superconducting digital-to-analog converters (DACs) or flux DACs.
Quantum processors may have a plurality of programmable devices (also referred to herein as programmable components) for performing computations with quantum effects. Programmable devices may include qubits, couplers (which programmably couple qubits), and components thereof. Programmable devices are programmed via signals applied to influence their operation—for example, a biasing signal may be applied to a flux qubit to affect its flux during computation. On-chip control circuitry may be used to selectively apply static flux biases to superconducting loops in order to realize control parameters.
Such signals may require conversion and/or storage prior to being applied to programmable components. For example, a classical computer may generate digital signals for the quantum processor, and those digital signals may be converted to analog form via one or more digital-to-analog converters (DACs). The converted analog signal may be applied to the programmable component. As another example, a signal (which may be digital or analog) may be received by the quantum processor at one time before or during a computation and stored via a DAC until the signal is to be applied to a programmable component at a later time. DACs have many applications and may be used for one or more of these purposes (i.e., conversion and/or memory) and/or for other purposes. Examples of applications of DACs for these and other purposes are described in greater detail in, for example, U.S. Pat. Nos. 7,876,248 and 8,098,179.
Although the term DAC is used throughout, it will be understood that the described components may be used for a variety of purposes which are not necessarily restricted to converting digital signals to analog signals (and, in some implementations, do not involve such conversion at all). For example, as described above, superconducting DACs may be used by quantum processors to store a signal for a period of time (e.g., thereby operating as a form of memory).
A quantum flux parametron (QFP) is a superconducting Josephson junction device similar in some respects to a compound RF-SQUID. A particular potential energy curve may be generated with a QFP device. This potential energy curve may resemble a “W” where the central peak or “barrier” is adjustable in height, as are the independent depths of the two wells on either side of the central barrier. Although the word “quantum” appears in the name of the QFP device, the device is generally operated in a classical manner. In short, quickly raising the height of the central barrier is classically believed to greatly disrupt the energy configuration of the system. QFP devices such as QFP shift registers are described further in U.S. Pat. No. 10,528,886.
Quantum processor 200 includes a plurality of interfaces 221-225 that are used to configure and control the state of quantum processor 200. Each of interfaces 221-225 may be realized by a respective inductive coupling structure, as illustrated, as part of a programming subsystem and/or an evolution subsystem. Alternatively, or in addition, interfaces 221-225 may be realized by galvanic coupling structures. As used herein, galvanic coupling refers to coupling achieved through one or more elements (e.g., a wire) that is physically shared between the coupled circuits. Galvanic coupling may also be referred to as a direct conductive connection. A direct conductive connection is formed between the circuits through the shared element, providing a direct electrical connection to couple the circuits. In contrast, inductive coupling refers to coupling achieved through interaction of magnetic field between the circuits without a direct electrical connection. A current through a portion of a first circuit creates a magnetic field around the first circuit, inducing a current in the second circuit. In some implementations, one or more of interfaces 221-225 may be driven by one or more DACs. Such a programming subsystem and/or evolution subsystem may be separate from quantum processor 200, or may be included locally (i.e., on-chip with quantum processor 200).
In the operation of quantum processor 200, interfaces 221 and 224 may each be used to couple a flux signal into a respective compound Josephson junction (CJJ) 231 and 232 of qubits 201 and 202, thereby realizing a tunable tunneling term in the system Hamiltonian. This coupling provides the off-diagonal σx terms of the Hamiltonian and these flux signals are examples of “delocalization signals”.
Similarly, interfaces 222 and 223 may each be used to apply a flux signal into a respective qubit loop of qubits 201 and 202, thereby realizing the hi terms (dimensionless local fields for the qubits) in the system Hamiltonian. This coupling provides the diagonal σz terms in the system Hamiltonian. Furthermore, interface 225 may be used to couple a flux signal into coupler 210, thereby realizing the Jij term(s) (dimensionless local fields for the couplers) in the system Hamiltonian. This coupling provides the diagonal σizσjz terms in the system Hamiltonian. Examples of Hamiltonians (and their terms) used in quantum computing are described in greater detail in, for example, US Publication No. 20140344322.
Throughout this specification and the appended claims, the term “quantum processor” is used to generally describe a collection of physical qubits (e.g., qubits 201 and 202) and couplers (e.g., coupler 210). The physical qubits 201 and 202 and the coupler 210 are referred to as the “programmable components” of the quantum processor 200 and their corresponding parameters (e.g., the qubit hi values and the coupler Jij values) are referred to as the “programmable parameters” of the quantum processor. In the context of a quantum processor, the term “programming subsystem” is used to generally describe the interfaces (e.g., “programming interfaces” 222, 223, and 225) used to apply the programmable parameters to the programmable components of the quantum processor 200 and other associated control circuitry and/or instructions.
In order to control quantum devices (also referred to herein as programmable components) such as qubits 201, 202, and coupler 210 as described above, DACs may be used to couple flux into the respective device. These DACs may, in some implementations, be addressed or programmed using an XYZ scheme as described in U.S. Pat. No. 10,528,886. However, this type of programming requires lines that uniquely address each DAC and may result in a large number of lines being used. Managing these devices generally requires control over a number of parameters through communication with outside circuitry, that is, communication from outside the processor architecture. As processor sizes increase, providing sufficient control lines may become difficult. As such, it may be beneficial to provide DACs that can be programed using fewer lines.
As previously described, the programming interfaces of the programming subsystem may communicate with other subsystems which may be separate from the quantum processor or may be included locally on the processor. The programming subsystem may be configured to receive programming instructions in a machine language of the quantum processor and execute the programming instructions to program the programmable components in accordance with the programming instructions. Similarly, in the context of a quantum processor, the term “evolution subsystem” generally includes the interfaces (e.g., “evolution interfaces” 221 and 224) used to evolve the programmable components of the quantum processor 200 and other associated control circuitry and/or instructions. For example, the evolution subsystem may include annealing signal lines and their corresponding interfaces (221, 224) to the qubits (201, 202).
Quantum processor 200 also includes readout devices 251 and 252, where readout device 251 is associated with qubit 201 and readout device 252 is associated with qubit 202. In some implementations, such as shown in
While
Examples of superconducting qubits include superconducting flux qubits, superconducting charge qubits, and the like. In a superconducting flux qubit, the Josephson energy dominates or is equal to the charging energy. In a charge qubit the energy relationship is the reverse. Examples of flux qubits that may be used include radio frequency superconducting quantum interference devices (RF-SQUIDs), which include a superconducting loop interrupted by one Josephson junction, persistent current qubits, which include a superconducting loop interrupted by three Josephson junctions, and the like.
Programming interfaces such as 222, 223, and 225 of the example implementation of
Storing flux in the DAC includes adding flux through the CJJ of the DAC into the storage loop of the DAC (i.e., into the superconducting loop of the DAC). Flux can be added to the storage loop of the superconducting DAC through the CJJ using one or more control signals or biases. Multiple flux quanta can be stored in a superconducting DAC implemented using a CJJ. See, for example, Johnson M. W. et al. “A scalable control system for a superconducting adiabatic quantum optimization processor”, arXiv:0907.3757v2, 24 Mar. 2010 for a description of flux DACs operable to control superconducting devices in an integrated circuit. Further details regarding implementations of programmable DACs can be found in U.S. patent application Ser. No. 16/098,801.
Referring to
QFP loop 308 extends from storage loop 304 and has a body 314 interrupted by CJJ 316 that is coupled to a third control line 318. When a current is introduced by third control line 318 into CJJ 316, a flux quanta may be introduced into QFP loop 308. As used herein, CJJs generally include two electrically parallel current paths, each interrupted by a Josephson junction. First control line 310 and second control line 312 may then have current introduced to introduce flux into DAC storage loop 304 based on the current in QFP loop 308. This series of control pulses formed by current introduced into signal lines may be repeated in order to program a selected number of flux quanta into DAC storage loop 304. DAC storage loop 304 may be coupled to other DAC storage loops, may be coupled to a programmable component, and/or may be coupled to other DAC stages that are collectively coupled to a programmable component, as will be discussed further below. In the implementation shown in
Circuit 300 may be formed from a combination of low inductance materials and high inductance materials, as previously defined in more detail. In some implementations, QFP loop 308 and DAC storage loop 304 may be low inductance material, high inductance material, or a combination thereof. In some implementations, QFP loop 308 may be formed from primarily low inductance superconducting material, while DAC storage loop 304 may be formed from primarily high inductance superconducting material. In some implementations the low inductance superconducting material may be one of Ta, Nb, and Al, while the high inductance superconducting material may be one of WSi, MoN, NbN, NbTiN, TiN, and granular Aluminum.
The example implementation of
DAC-QFPs 408 may be used in combination with power line 418 (shown with a long dashed line for clarity) in communication with each DAC storage loop 412 and global signal line 420 (shown with a short dashed line for clarity) which extends along the row of QFPs 406. In some implementations DAC storage loops 412 have a CJJ 416, and power line 418 is in communication with CJJ 416. In some implementations, DAC-QFP 408 is coupled symmetrically to either side of CJJ 416. It will be understood that while three stages are shown in the implementation of
In some implementations, multi-stage DAC 414 may be programmed with a number of flux quanta provided to each DAC storage loop 412 to provide an intended value to be transmitted to programmable component 402. Once programmable component 402 has been programmed, it may be desired to reset multi-stage DAC 414. This may be done by unloading flux quanta from each DAC storage loop 412 by loading a number of pulses in the opposite direction of the loading pulse through switching the direction of the current provided by power line 418 and repeating a similar procedure to that described for programming multi-stage DAC 414. For example, where a stage of a DAC is loaded with a positive flux quanta, it may be unloaded with a negative pulse, and vice versa. In some implementations, such as in a four stage DAC, different stages of the DAC may be loaded with pulses in opposite directions (e.g., four stages loaded as (−4 +2 −1 0)), and may therefore be unloaded by pluses having the reverse direction of each stage. In other implementations, reset may be achieved by applying varying signals to global signal line 420 and/or power line 418.
As discussed above, circuit 400 may be formed from a combination of low inductance materials and high inductance materials. In some implementations, DAC-QFP 408 may be formed from primarily low inductance superconducting material, while DAC storage loop 412 may be formed from primarily high inductance superconducting material. In some implementations, the links connecting neighbouring QFP stages (e.g. 406 and 408) may be formed from high inductance materials. In some implementations the low inductance superconducting material may be one of Ta, Nb, and Al, while the high inductance superconducting material may be one of WSi, MoN, NbN, NbTiN, TiN, and granular Aluminum.
Referring to
In some implementations DAC storage loops 512 have a CJJ 516, and DAC-QFP 508 is coupled symmetrically to either side of CJJ 516. As shown, the rows of DAC-QFPs 508 are electrically isolated from communication with one another and the columns of DAC storage loops 512 are electrically isolated from communication with one another. It will be understood that the portion of quantum processor 500 is not limited to the three columns of four stage DACs 522 shown in the implementation of
DAC programming may be achieved in a number of ways, such as XYZ addressing as discussed above. As processor sizes increase and the number of DACs to be controlled within the processor scales accordingly, the number of lines required for programming increases. It may be beneficial to introduce other programming schemes that require fewer control lines to allow for increases in device numbers. The DAC incorporating a QFP stage discussed herein may beneficially allow for DAC programming with fewer lines and may also beneficially allow for parallel programming of large numbers of DACs with few control lines.
Referring to
As show in
While the example implementation of
In some implementations, such as in the example implementation of
Method 700 includes acts 702 to 708, and those of skill in the art will appreciate that in alternative implementations certain acts may be omitted and/or additional acts may be added. Those of skill in the art will appreciate that the illustrated order of the acts is shown for exemplary purposes only and may change in alterative implementations.
Method 700 starts, for example, in response to an initiation of the programming. At 702, a first persistent current is loaded into a first DAC-QFP loop that is galvanically coupled to a first DAC storage loop. Persistent current may be loaded by a flux bias line or signal line, or through a shift register as discussed above. The persistent current corresponds to an intended state (or number of flux quanta) of the first DAC storage loop after receiving the current loaded into the first DAC-QFP loop. For example, if it is desired to load a flux quanta into the respective DAC storage loop, the persistent current in the DAC-QFP loop may be in a first direction (for example, clockwise) while if it is not desired to load a flux quanta into the respective DAC storage loop, the persistent current in the DAC-QFP loop may be in a second direction (for example, counterclockwise).
At 704, a second persistent current is loaded into a second DAC-QFP loop. The second DAC-QFP loop is galvanically coupled to a second DAC storage loop, and the second DAC storage loop is galvanically coupled to the first DAC storage loop. As above, the second persistent current corresponds to an intended state of the second DAC storage loop.
In some implementations, where a QFP shift register is connected to the DAC-QFP loops (see
At 706, a signal is applied to one or more control lines in communication with the first DAC-QFP loop to shift an amount of flux into the first DAC storage loop based on the persistent current of the first DAC-QFP loop via a first intervening Josephson junction. For example, if the persistent current in the DAC-QFP loop was clockwise, the combined contribution of the DAC-QFP loop and the one or more control lines is sufficient to push flux through the JJ and introduce a flux quanta into the DAC storage loop. The power level required is selected to cause a flux quantum to be added into the intervening Josephson junction when an upper threshold is exceeded by combining the contributions of the DAC-QFP and the one or more control lines. As discussed above, in some implementations, this may be achieved by two control lines in communication with each stage.
In some implementations, the signal applied to the one or more control lines in communication with the first DAC-QFP loop also applies a signal to one or more control lines in communication with the second DAC-QFP loop to shift an amount of flux into the second DAC storage loop based on the persistent current of the second DAC-QFP loop via a second intervening Josephson junction. In other implementations, this signal may be applied in a separate act.
Loading one or more flux quanta into the DAC storage loop is also referred to in the present application as programming the DAC. Programming the DAC can also include removing one or more flux quanta from the DAC storage loop. In one implementation, removing one or more flux quanta from the DAC storage loop includes reversing a signal on an address line. It will be understood that programming may require both raising and lowering the signal on a control line such as an address line in order to cause a flux quantum to move into the DAC storage loop.
At 708, a flux bias is transferred to the programmable component based on the combined flux within the first DAC storage loop and the second DAC storage loop through an interface carried by the first DAC storage loop that communicates with the programmable component.
The method may then end until it is begun again, or the method may be repeated in an iterative manner or in parallel to program multiple programmable components.
Method 800 includes acts 802 to 806, though those of skill in the art will appreciate that in alternative implementations certain acts may be omitted and/or additional acts may be added. Those of skill in the art will appreciate that the illustrated order of the acts is shown for exemplary purposes only and may change in alterative implementations.
Method 800 starts, for example in response to an initiation of the programming. At 802, a bias current is applied to a first QFP stage.
At 804, the bias current is shifted to a target QFP stage through an intermediate QFP stage. In some implementations, this may include applying a flux bias to a first Josephson junction carried by the first QFP stage and applying a flux bias to an intermediate Josephson junction carried by the intermediate QFP stage, and then suppressing the first Josephson junction of the first QFP stage such that the state of the first QFP stage is transferred to the intermediate QFP stage. A pulse may be loaded into the target DAC storage loop via the target QFP stage by then applying a flux bias to a target Josephson junction of the target QFP stage in order to copy the state of the intermediate QFP stage into the target QFP stage.
At 806, current is applied through one or more control lines to transfer flux into a target DAC storage loop. In some implementations, this may include introducing a current to a first control line in communication with the target DAC storage loop and introducing a current to a second control line in communication with the DAC Josephson junction to increase the current through the DAC Josephson junction over a threshold to cause the bias current to transfer from the target QFP stage into a galvanically coupled target DAC storage loop. The current may then be removed from the first and second control lines, and the flux bias of the target QFP stage may be suppressed. As the state remains in the intermediate QFP stage, these acts may be repeated to iteratively load pulses into the target DAC storage loop via the target QFP stage until an intended number of pulses have been introduced into the target DAC storage loop.
The method may then end until it is begun again, or the method may be repeated in an iterative manner or in parallel to load multiple DAC storage loops.
In some implementations, the reverse in direction that occurs when transferring a pulse between QFP stages results in the need for an odd number greater than one (e.g., three) of QFP stages in line to transmit a state to a target QFP stage. The first QFP stage receives the state intended for the target QFP stage, and transfers it to the intermediate QFP stage, where it is in the reverse direction. The intermediate QFP stage then transfers the state to the target QFP stage, where it is returned to the original direction. In this manner, an array of QFP stages can be used to program one-third of the DAC storage loops for each programming act. This may beneficially allow for parallel programming of a large number of DAC storage loops within a quantum processor. Additionally, in some implementations, QFP states may be preloaded into a shift register that is in communication with the array of QFP stages and DAC storage loops.
Referring to
Referring to
The above described method(s), process(es), or technique(s) could be implemented by a series of processor readable instructions stored on one or more nontransitory processor-readable media. Some examples of the above described method(s), process(es), or technique(s) method are performed in part by a specialized device such as an adiabatic quantum computer or a quantum annealer or a system to program or otherwise control operation of an adiabatic quantum computer or a quantum annealer, for instance a computer that includes at least one digital processor. The above described method(s), process(es), or technique(s) may include various acts, though those of skill in the art will appreciate that in alternative examples certain acts may be omitted and/or additional acts may be added. Those of skill in the art will appreciate that the illustrated order of the acts is shown for exemplary purposes only and may change in alternative examples. Some of the exemplary acts or operations of the above described method(s), process(es), or technique(s) are performed iteratively. Some acts of the above described method(s), process(es), or technique(s) can be performed during each iteration, after a plurality of iterations, or at the end of all the iterations.
The above description of illustrated implementations, including what is described in the Abstract, is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Although specific implementations of and examples are described herein for illustrative purposes, various equivalent modifications can be made without departing from the spirit and scope of the disclosure, as will be recognized by those skilled in the relevant art. The teachings provided herein of the various implementations can be applied to other methods of quantum computation, not necessarily the exemplary methods for quantum computation generally described above.
The various implementations described above can be combined to provide further implementations. All of the commonly assigned US patent application publications, US patent applications, foreign patents, and foreign patent applications referred to in this specification and/or listed in the Application Data Sheet are incorporated herein by reference, in their entirety, including but not limited to: U.S. patent application Ser. Nos. 16/098,801; 63/136,987; U.S. Pat. Nos. 7,135,701; 7,418,283; 7,533,068; 7,876,248; 8,008,942; 8,098,179; 8,195,596; 8,190,548; 8,421,053; 10,528,886, and PCT Patent Publication No. WO2012064974.
These and other changes can be made to the implementations in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific implementations disclosed in the specification and the claims, but should be construed to include all possible implementations along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2022/012000 | 1/11/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63136987 | Jan 2021 | US |