Broadcast system and method for event distribution

WO2026162927A1PCT designated stage Publication Date: 2026-08-06RIVERLANE LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
RIVERLANE LTD
Filing Date
2026-01-26
Publication Date
2026-08-06

Smart Images

  • Figure GB2026050092_06082026_PF_FP_ABST
    Figure GB2026050092_06082026_PF_FP_ABST
Patent Text Reader

Abstract

A messaging system for a distributed quantum system, comprising: a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices, wherein the plurality of real-time units are assigned into groups and wherein each group is addressable as a single group, each of the real-time units in a group being configured to receive a message sent to the group, the message comprising an identifier, and each of the real-time units in a group being configured to ignore the message dependent on the content of the identifier.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Broadcast System and Method for Event Distribution

[0002] Field of the Invention

[0003] The invention relates to the conveying of messages using broadcast systems and methods, for example for use in quantum computing.

[0004] Background

[0005] Quantum computers have the potential to perform computations that would be intractable on even the most powerful classical computers.

[0006] Instead of representing information using classical bits, quantum computers generally use qubits that can be in a simultaneous superposition of multiple quantum states. Qubits are prone to error, and achieving quantum advantage will require the use of quantum error correction codes to identify and correct qubit errors. Even with quantum error correction, qubits must be controlled with extraordinary precision in order to reduce error rates below threshold levels required for quantum error correction.

[0007] Existing real-time control systems are generally only capable of controlling relatively small numbers of qubits. Scaling to larger numbers of qubits requires distributed control systems with separate processing units responsible for controlling different groups of qubits.

[0008] In a highly distributed quantum control system, data needs to be moved around in the lowest possible latencies (100s of nanoseconds) from a set of sources to a disjoint set of destinations. The list of sources and destinations can also be arbitrary and determined during quantum circuit compilation time.

[0009] Summary of the invention

[0010] According to a first aspect, there is provided a messaging system for a distributed quantum system. The messaging system comprising a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices. The plurality of real-time units are assigned into groups and wherein each group is addressable as a single group and each of the real-time units in a group are configured to receive a message sent to the group. The messagecomprising an identifier, and each of the real-time units in a group being configured to ignore the message dependent on the content of the identifier.

[0011] In an example, the real-time units are configured to compare the identifier of the message with respective pre-stored information, the real-time units being configured to ignore the message if the identifier of the message does not match the pre-stored information. The identifier may be a unique identifier which is provided in a field in the message.

[0012] In an example, the messaging system may further comprise a sending unit, the sending unit being configured to send the message to at least one target real-time unit in a group. The message being sent as a broadcast message to all real-time units in the same group as the at least one target real-time unit, the real-time units that receive the message which are not the at least one target real-time unit being configured to ignore the message. When a real-time unit receives a message, it will compare the unique ID of the message with the IDs held by the real time unit. If there is no match for the unique ID, then the real-time unit will ignore the message by not processing the message further, for example by not processing a command in the message. If the IDs match, then the real-time unit will process the message further, for example, by processing a command in the message.

[0013] The sending unit may be one of the plurality of real-time units or the sending unit may be another unit in the system.

[0014] The sending unit may be in a different group to a target unit or in the same group.

[0015] The message may further comprise an identifier which indicates a group to which the message is to be broadcast. If there are a plurality of target real-time units assigned to different groups and wherein the identifier indicates that the message is broadcast to the plurality of groups containing the plurality of target real-time units. The real time units may be arranged in a hierarchical structure and the identifier will indicate that broadcast is to be performed at the lowest level of the hierarchy which allows broadcast to all of the plurality of target units. Thus, the identifier comprises an indication of the hierarchical level to which the message was sent.

[0016] The hierarchical structure may be a tree structure comprising a plurality of nodes with the plurality of real-time units as respective leaf nodes. Each node that is not a leaf nodemay be provided in a respective one of the hierarchical levels and communicatively coupled to a plurality of nodes in a lower hierarchical level.

[0017] The groups may be formed using the logical and / or physical arrangement of the circuit. For example, at least some of the plurality of real-time units are assigned into groups such that at least one group comprises quantum devices that comprise physical qubits which correspond to the same logical qubit. In further examples, at least some of the plurality of real-time units are assigned into groups such that at least one group comprises real-time units that route messages in the same region of routing space.

[0018] In an example, the quantum system is a quantum control system, wherein a plurality of the real-time units are provided in the quantum control system. In a further embodiment, the quantum devices comprise qubits and the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits.

[0019] The quantum system may be a quantum error correction system configured to communicate with a quantum control system, wherein a plurality of the real-time units are provided in the quantum error correction system. These real-time units may be decoders or the like.

[0020] The quantum system may be a quantum error correction system configured to communicate with a quantum control system, wherein the plurality of the real-time units are distributed across the quantum error correction system and the quantum control system.

[0021] According to a second aspect, there is provided a messaging system for a distributed quantum system. The messaging system comprising: a plurality of real-time units each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices. The plurality of real-time units are assigned into a plurality of groups and where each group is addressable as a single group. The messaging unit is configured to send a message to a target real-time unit, the message being sent as a broadcast message to all real-time units in the same group as the target real-time unit, the real-time units that receive the message which are not the target real-time unit being configured to ignore the message.According to a third aspect, there is provided a real-time unit configured to send a message in a distributed quantum system, wherein the distributed quantum system comprises a plurality of real-time units arranged in a hierarchical structure,

[0022] the real-time unit configured for sending a message comprising an internal instruction memory, the internal instruction memory comprising a plurality of IDs, each I D having a plurality of fields, wherein one of the plurality of fields comprises an indication of the level of hierarchy to which a message is to be distributed.

[0023] According to a fourth aspect, there is provided a method of messaging in a distributed quantum system, the distributed quantum system, comprising:

[0024] a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices, the plurality of real-time units being assigned into groups and wherein each group is addressable as a single group,

[0025] the method comprising:

[0026] broadcasting a message to a group the message comprising an identifier; receiving the message by each of the real-time units in the group to which the message was broadcast; and

[0027] each real-time unit processing or ignoring the message dependent on the content of the identifier.

[0028] Brief description of the drawings

[0029] Examples of the present invention will now be described in detail with reference to the accompanying drawings, in which:

[0030] Fig. 1 is a schematic of a quantum computing system;

[0031] Fig. 2 is a schematic of real-time units, for example, from a quantum computation system, arranged in a tree structure;

[0032] Fig. 3 is a schematic of a further tree structure;

[0033] Fig. 4 is schematic of the structure of an identifier;

[0034] Fig. 5 is a schematic of a quantum computer system with a quantum error correction stack; and

[0035] Fig. 6 is a schematic of a hierarchical structure where the real-time units are provided in a quantum control system and a quantum error correction stack.Detailed description

[0036] The ability to perform low-latency operations is a critical aspect of quantum computing, especially for qubits that have very short coherence times, such as superconducting qubits. As quantum computing systems are extended to handle more qubits, the systems become more distributed. Further, quantum error correction is sometimes provided and needs to operate in real time with a quantum control system.

[0037] The present invention provides a broadcast system and method which allows groups of real-time units such as sequencers and decoders to be addressed. The broadcast method and system supports a protocol which comprises an ID that identifies the level in a hierarchy to which a message is to be broadcast. The protocol defines an ID which is small enough to allow the IDs of the internal instruction memory of a sequencer or the like to be used. This allows a sequencer or other real-time unit to obtain the ID from its internal instruction memory and then forward the message for broadcast without the need of intervening resource heavy components such as a CAM.

[0038] The broadcast protocol can be used within a quantum control system, a quantum error correction stack or across both a quantum control system and error correction stack.

[0039] A schematic of a quantum computing system 100 is shown in Fig. 1. The quantum computing system 100 comprises an application processing unit (APU) 102 connected to an event synchronisation unit 104 (also referred to herein as an event distribution unit) and first and second quantum control units 106a, 106b (also referred to herein as control units) by a bus 114. The event distribution unit and quantum control units may also be referred to as “real time units”.

[0040] The APU 102 is a classical processing device responsible for tasks such as compiling and / or distributing runtime instructions to the quantum control units 106a, 106b and event synchronisation unit 104 ahead of (and potentially during) runtime, and system management such as status reporting and updating. The event synchronisation unit 104 and quantum control units 106a, 106b are likewise classical processing devices. One or more of the APU 102, event synchronisation unit 104 and quantum control units 106a, 106b may be provided on the same hardware (e.g. on the same FPGA or ASIC), or one of more of these components may be distributed across different hardware devices (e.g. on separate FPGAs and / or ASICs). The bus may use any suitable communicationsprotocol, for example the Advanced extensible Interface (AXI) protocol or an Ethernet based protocol.

[0041] In an embodiment, the event synchronisation unit 104 is responsible for orchestrating runtime events to ensure runtime synchronicity between the quantum control units 106a, 106b. The event synchronisation unit 104 may optionally be integrated into a quantum control unit such as one of the illustrated quantum control units 106a, 106b. Alternatively, the event synchronisation unit may be integrated into a different part of the quantum computing system 100, or it may be a dedicated component. The event synchronisation unit 104 may also be responsible for starting a quantum computation, for example by distributing synchronised start event messages to the first and second quantum control units 106a, 106b, e.g. in response to a start trigger received from the APU 102.

[0042] The first and second quantum control units 106a, 106b may be, or may comprise, micro sequencer devices (also referred to herein as sequencers). The first quantum control unit 106a is connected to the event synchronisation unit 104 by a bidirectional event channel 116a that carries event messages between the event synchronisation unit 104 and the first quantum control unit 106a. The second quantum control unit 106b is connected to the event synchronisation unit 104 by a downstream event channel 116b that carries event messages from the event synchronisation unit 104 to the second quantum control unit 106b. The event channels are preferably dedicated communication links used only for event messages; this avoids contention issues and ensures deterministic communication latency between devices. The communication channels between the event synchronisation unit 104 and the first and second quantum control units 106a, 106b (e.g. the bidirectional event channel 116a and the downstream event channel 116b) may be referred to herein as event channels or event communication channels.

[0043] The first and second quantum control units 106a, 106b comprise respective buffers 128a, 128b (e.g. instruction buffers). Runtime instructions are pre-compiled ahead of runtime (e.g. by the APU 102) and distributed (e.g. via the bus 114) to the first and second quantum control units 106a, 106b for storage in the buffers 128a, 128b, the buffers 128a, 128b are also referred to as the internal instruction memory. The runtime instructions contain information required for the first and second quantum control units 106a, 106b to distribute instructions to its peripherals at the correct times during runtime.The event synchronisation unit 104 may similarly comprise a buffer (not shown) for storing runtime instructions, and devices may have additional unillustrated buffers, such as communication buffers (e.g. transmission and reception buffers for transmitting and receiving event packets).

[0044] The first and second quantum control unit 106a, 106b are each connected to respective signal generation modules 108 by respective downstream signal generation channels 118a, 118b. The first quantum control unit 106a is additionally coupled to a readout module 110 by a downstream readout channel 120 and an upstream readout channel 122.

[0045] The signal generation modules 108 and readout module 110 are peripherals of the first and second quantum control units 106a, 106b. The first and second quantum control units 106a, 106b can send commands to these peripherals using commands to request a readout or send specific pulses through the qubit control lines. Additionally, the first and second quantum control units 106a, 106b can wait for a fixed periods using the wait delay instructions. The first and second quantum control units 106a, 106b may also support conditional and unconditional jump instructions to incorporate if-else and while logic in the program flow. These instructions have fixed latencies and as such have deterministic runtimes that can be calculated precisely at compilation time.

[0046] The signal generation modules 108 (which are responsible for controlling the qubits) transmit control signals to quantum devices (e.g. qubits) in the quantum hardware 112 via control lines 130. The signal generation modules 108 may receive digital instructions (e.g. digital pulse instructions and / or instructions defining quantum gates / operations) and may use a digital-to-analogue converter (DAC) to generate analogue control pulses for transmission to the quantum hardware 112. The control lines 130 may be waveguides or any other connection suitable for transmitting control signals to the quantum hardware 112.

[0047] The readout module 110 (which is responsible for reading qubit states) transmits readout signals to the quantum hardware 112 via readout drive lines 124 and receives readout information via readout acquisition lines 126 (the readout drive lines 124 and readout acquisition lines 126 are collectively referred to herein as readout lines 124, 126). The readout module 110 may receive digital readout instructions (e.g. digital pulse instructions and / or instructions defining quantum measurement operations) and may usea DAC to generate analogue readout pulses for transmission to the quantum hardware 112. The readout module 110 may receive analogue readout signals from the quantum hardware via the readout acquisition lines 126 and may convert the analogue readout signals into digital form, e.g. using an analogue-to-digital converter (ADC). In use, the first quantum control unit 106a may send a request to the readout module 110 to measure one or more qubit states. Once measured, the readout information is fed back from the readout module 110 to the first quantum control unit 106a.

[0048] The quantum hardware 112 may comprise quantum devices such as qubits, qutrits, qudits, resonators, coupling devices etc. For example, each control or readout line 124, 126, 128 may be connected to one or more qubits or couplers. A single qubit may be controlled by different quantum control units: for example, one of the quantum control units may be responsible for controlling couplings between qubits, and another may be responsible for control pulses that act on the coupled qubits. Such arrangements require extreme timing precision to ensure that all operations are perfectly synchronised.

[0049] The quantum hardware 112 may comprise any type of quantum devices capable of storing quantum information (i.e. any devices suitable for encoding information using quantum computational states). Such quantum devices may be qubits or they may be other devices capable of storing quantum information, such as qudits or qutrits. While the description herein will primarily refer to qubits, any reference herein to qubits should be understood to also encompass other types of quantum devices unless explicitly stated otherwise.

[0050] The first and second quantum control units 106a, 106b and the event synchronisation unit 104 form part of the quantum control system (also referred to herein as the control system) of the quantum computing system 100. The APU 102, signal generation modules 108 and / or readout module 110 may also form part of the quantum control system, or they may be treated as separate components (for example, the APU 102 may be considered to be part of the quantum control system or part of a compilation system or of a higher-level algorithmic or user-interface system etc.).

[0051] The illustrated quantum computing system 100 features two quantum control units. However, alternative examples may include additional quantum control units coupled to the event synchronisation unit 104. Similarly, while the illustrated quantum computing system features a single readout module 110 and two signal generation modules 108,alternative examples may comprise additional readout and / or signal generation modules. For example, the second quantum control unit 106b may be connected to a second readout module (not shown); in such an arrangement the downstream event channel 116b may be replaced by a second bidirectional event channel or supplemented by an additional upstream event channel. Any illustrated bidirectional channel may be replaced by two unidirectional channels and vice-versa.

[0052] Alternative examples are also envisaged in which multiple event synchronisation units 104 are used, each connected to a subset of quantum control units. In such an arrangement, an additional master event synchronisation unit (not shown) may be used in a hierarchical structure to coordinate events between different quantum control units connected to different event synchronisation units. One of the event synchronisation units may optionally perform the functions of such a master event synchronisation unit (i.e. the master event synchronisation unit may not require a dedicated hardware device).

[0053] Fig. 1 has shown a simplified situation with just two quantum control units 106a, 106b. However, in practice, there are likely to be many quantum control units 106a, 106b provided each with a need to communicate with other quantum control units 106a, 106b. For example, once a readout module 110 has performed a readout operation, that readout will need to be communicated.

[0054] Fig. 2 shows a simplified diagram with eight quantum control units 201a, 201b, 201c, 201 d, 201 e, 201f, 201g, 201 h. In the system of Fig. 2, the event synchronisation unit 104 is not shown, but may be present in the structure, at, for example, the root node 207. The plurality of quantum control units 201a, 201b, 201c, 201d, 201e, 201 f, 201g, 201h are arranged in a four level hierarchical structure with the eight quantum control units 201a, 201b, 201c, 201d, 201e, 201f, 201g, 201 h comprising the first level leaf nodes and a root node 207 at the top level. This is purely an illustration, fewer or more levels may be present. Further, the number of nodes at each level and the grouping of the nodes is also an example. Different numbers of nodes may exist at each level and their grouping may differ from that shown in Fig. 2.

[0055] The first level leaf nodes are divided into four groups, with each group in contact with a second level node 203a, 203b, 203c, 203d such that a first group of quantum control units 201a, 201b are connected to second level node 203a, a second group of quantum control units 201c, 201 d are connected to second level node 203b, a third group ofquantum control units 201 e, 201 f are connected to second level node 203c, and a fourth group of quantum control units 201g, 201 h are connected to second level node 203d.

[0056] The second level nodes 203a, 203b, 203c and 203d are divided into two groups with each group in contact with a cluster level node 205a, 205b such that a first group of second level nodes 203a, 203b are connected to cluster level node 205a and a second group of second level nodes 203c, 203d are connected to cluster level node 205b. The cluster level nodes 205a, 205b are connected to root node 207. The connections between all nodes and quantum control units may be bidirectional event channels of the type described in relation to Fig. 1.

[0057] In an embodiment, when a quantum control unit 201a, 201b, 201c, 201d, 201e, 201f, 201g, 201 h sends an event to another quantum control unit, the sending quantum control unit sends the event to the root node 207 for further distribution. In an embodiment, the root node may be an event synchronisation unit 104 of the type described with reference to Fig. 1. However, the root node may also just be a further quantum control unit.

[0058] The quantum control units 201 a-201 h are configured to either ignore or act upon a signal that is sent to them. This allows communication with the quantum control units 201a-201 h using a broadcast protocol. An event can be sent to all quantum control units 201a-201 h, a subset of quantum control units 201 a-201 h or a single one of quantum control units 201a-201h.

[0059] The above description has referred to quantum control units. However, these are just an example of a real-time unit which may be arranged in a hierarchical structure and addressed via a broadcast protocol. The real-time units may be decoder modules used in quantum error correction.

[0060] Fig. 2 is schematic and only illustrates two quantum control units in each group. However, larger number of real-time units are possible. The grouping may be based on the physical or logical arrangement of a quantum computation circuit. For example, in one embodiment, the groups are based on a logical qubit given a physical qubit that is associated with it. A logical qubit is a qubit that is encoded using a collection of physical qubits. Logical qubits are used in quantum error correction schemes to allow fault tolerant quantum computing.In a further embodiment, the grouping of the leaf nodes is based on routing space. Here, groupings are determined based on the location of channels which carry signals to and from qubits. For example, qubits which are connected to channels which are adjacent to one another may be grouped together. In a superconducting quantum computer, to control every physical qubit, signals, such as RF signals are provided by cables which are connected between the quantum control units and the qubits which are provided in a cryogenic environment. Each of these RF signals is driven by a sequencer which at least forms part of a quantum control unit. In one embodiment, sequencers that are connected to cables which are adjacent to one another are grouped together. In some embodiments, different types of groupings, e.g. logical qubit based and routing space based may be combined such that different type of groupings are present in the same device.

[0061] A simple tree hierarchy is shown in Fig. 2. However, in practice, other configurations of hierarchical structures can be used. Fig. 3 shows schematically a plurality of nodes connected to computational end points.

[0062] During operation, it is desired to communicate events to the quantum control units, this may be from another quantum control unit or from another component such as an event distribution unit. The hierarchical structure facilitates communication throughout the structure.

[0063] In an embodiment, the real-time units are configured to either ignore or process a received message. The message comprises an ID which will be referred to as a “destination ID”. The destination ID comprises a unique identifier(UID), a command and an indication of the destination. The indication of the destination defines which real-time units are to receive the message. The real time units which receive the message then determine whether to ignore the message or process the command included in the message by matching the UID with pre-stored UIDs on the real time units. The real-time units have a list of UIDs which indicate which UIDs are to be processed.

[0064] The indication of the destination comprises a field which indicates the level of the hierarchy to which the message is broadcast. For example, a message can be sent to all real-time units that are in the same tree as a root node or just the group of real time units that are connected to a cluster node or a second level node.Fig. 4 shows an example of a destination ID 301. The destination ID 301 is 16 bits and comprises 6 fields, 303a to 303f. The first field 303a is the UID which allows any realtime unit which receives the message to determine if it should ignore or process the message.

[0065] The second field 303b is a “HINT” field, this field indicates the level of the hierarchy to which the message is to be broadcast. This specific example corresponds to a 4 level hierarchy with the plurality of leaf nodes, connected to parent nodes which are second level nodes. The plurality of second level nodes are grouped and each group is connected to a third level cluster node. The plurality of cluster nodes (third level nodes) are connected to the root node.

[0066] In this specific example, the bits are allocated as follows:

[0067] 00 - fixed

[0068] 01- broadcast_node

[0069] 10- broadcast_cluster

[0070] 11 - broadcast_root

[0071] It will be appreciated this is a specific example and there is certainly no requirement for the two bits to be allocated to the specific levels identified above. However, in this specific example, if the two bits of the HINT field 303b are set to 00, then this indicates that the message will be sent to a single real-time unit. If the HINT field 303b is set to 01, then the message is sent to a second level node, which means that the message is broadcast to all real-time units connected to the second level node.

[0072] If the HINT field 303b is set to 10, then the message is sent to all real-time units which are connected via second level nodes to a broadcast cluster. If the HINT field 303b is set to 11, then the message is broadcast to all real-time units which are connected via second level nodes and cluster nodes to a root node.

[0073] The fourth field, 303d is a cluster identifier. This identifies to which cluster the message is to be broadcast if the HINT field 303b indicates that the message is to be sent to a specific cluster, or specific second level node or specific sequencer. In such a situation, the HINT field will be set to 00 (fixed), 01 (broadcast_node) or 10 (broadcast_cluster). If the HINT field 303b indicates that the message is to be broadcast to everything connected to the root node, then the cluster ID is set to COUNT.In an embodiment, COUNT is used to indicate the number of sequencers that are configured to process the message, for example the sequencers which have instruction memories programmed with the UID of the message.

[0074] Every sequencer that matches the UID will indicate, for example, to the event synchronisation unit (Fig. 1), that it found a match. When the event synchronisation unit (Fig. 1) receives COUNT number of matches, it knows that particular UID is complete and can be released for re-use. If it is not possible to release an UID for further use, global UIDs are used which are not re-used.

[0075] The fifth field 303e indicates which second level node is the subject of the broadcast if the HINT field 303b indicates that the message is to be broadcast is to be to a specific real-time unit or a specific second level node. If the HINT field 303b indicates that broadcast is at root node level or cluster node level, this field is set to COUNT.

[0076] The sixth field, 303f indicates which real-time unit is the subject of the “broadcast” if the HINT field 303b indicates that broadcast is to a specific real-time unit. Similarly, as described for the other fields, if the HINT field 303b indicates that broadcast is at a higher level than a specific unit, then the sixth field 303f is set to COUNT.

[0077] Thus, using the above scheme, it is possible to either broadcast at the root level, cluster level, second level node or directly to an identified real-time unit.

[0078] As noted above, the fourth field, 303d, fifth field, 303e and sixth field, 303f may be set to COUNT depending on the HINT field which indicates the level to which the message is broadcast. If the message is broadcast at the second node level, then the just the sixth field 303f is set to COUNT and this is large enough to indicate a COUNT of all sequencers which may be waiting for the message. If the message is broadcast at the cluster level, then both the fifth 303e and sixth 303f fields are set to COUNT, specifically the fifth 303e and sixth 303f fields are combined to indicate the COUNT. If the broadcast level is set at the cluster level, then there are a larger number of sequencers which may be waiting for the message than if the broadcast level is set at the second node level. Therefore, if the broadcast level is set to the cluster level, the combined field of, in this example, 7 bits, may be used to indicate the COUNT. Similarly, if the message isbroadcast at the root level, the COUNT can be indicated using the combined fourth 303d, fifth 303e and sixth 303f fields.

[0079] If it is desired to message to real-time units / sequencers which are connected to the same second level node, the message can be broadcast to the single second level node to which the real-time units are connected. If the message is intended for two real-time units which are connected to different second level nodes, then communication is provided at the cluster node level. Thus, the message just needs to be sent once via a single instruction to reach the desired real-time units.

[0080] In the example of Fig. 4, the third field, 303c is a command field. In this specific example, it is shown as a two-bit field. Here, four exemplary commands are shown which are reset, sync_hw, sync_sw and a command indicating the data is following.

[0081] Two examples of types of use cases for the message are as follows.

[0082] 1) The first group does not contain any event data, e.g.:

[0083] a) Internal sequencer synchronisation mechanism.

[0084] b) External triggers will be converted to events to pass between sequencers. These triggers can be used for synchronisation with external control systems.

[0085] 2) The second group is for forwarding time critical data during runtime. This is a list of example use cases with detail:

[0086] a) Active reset: one sequencer reads a qubit, if the measured bit is 1 , another sequencer must apply a quantum gate on it. Repeat till it is 0. The measured bit is passed as an event.

[0087] b) QEC: Read multiple ancilla qubits, pack their measured bits into a message and send them to a decoder. Each of the readout messages is passed to a decoder as an event.

[0088] c) Soft information higher decoding accuracy: data about multiple measurements of a single qubit shall be packaged together and passed to a decoder as an event. d) QEC: Decoder actions are passed as events between sequencers. Applicable for centralised decoders (e.g. CC) or decentralised ones (e.g. LCD)

[0089] The content of each event can be broken in two parts: the data which is known only during runtime, and event ID which is determined at the compile time of execution program. For instance, some events would not need any runtime data and will containonly the ID, e.g. sequencers synchronisation. In other cases, the data is necessary, e.g. measurement bits. The event ID is always needed.

[0090] To address a destination, a CAM (content addressable memory) may be used. A CAM is a look up table which grows linearly with the size of the system and the number of instructions executed. The width of the look up table determines the size of the system, and the depth is the number of instructions. The look up table is also required at every point in the network for filtering. A CAM is hardware resource intensive.

[0091] When using a CAM, the event ID is provided to the CAM in order to perform the look-up of the destination. A CAM is in addition to an instruction memory that is already present on a real-time unit such as a sequencer. The purpose of a CAM is basically to precisely identify each and every sequencer. This means that a CAM needs to be of a certain size in order to store all of the sequencers destinations. A CAM lives outside of the sequencer logically. A further sending step is incorporated as the sequencer needs to send the instruction to the CAM and the CAM sends it on.

[0092] However, in an embodiment, the form of the event ID itself is used to determine the destination. In this embodiment, the internal instruction memory of the real-time unit is used to store the event ID which will be referred to as the “destination ID”. If the realtime unit is a sequencer, then the destination ID can be the ID which is stored in the internal instruction memory of the sequencer. If encoded in the sequencer memory the instruction can be directly routed from one sequencer to the other

[0093] The ID width is fundamentally limited in size which is dictated by the width of the instruction. The form of destination ID of Fig. 4 demonstrates an ID which is limited in size to the instruction size in the instruction memory. To achieve this, the destination ID comprises a field, the HINT field, which indicates the level at which the message is to be broadcast.

[0094] Thus, in the above embodiment, the real-time unit memory that already exists for instructions is used. The destination ID is encoded as part of the instruction itself and thus the size of the real-time unit memory does not need any modification to be able to handle the destination ID.In the real-time unit memory, there is a set of instructions to allow the real-time unit to perform a number of instructions. One of the instructions is to send an event. In an embodiment, the instruction has a first part which is an ID and a second part that is data.

[0095] In an embodiment, each real-time unit is programmed to be waiting for a message. When it receives a message, it reads the UID. Each sequencer is programmed to be able to determine if the message is to be processed or ignored by reading the UID. Thus some events are accepted and then processed by a real-time unit if the real-time unit matches the UID to an ID held in the memory of the receiving real-time unit. If the UID does not match an ID held in the memory of a receiving real-time unit, then a receiving real-time unit ignores the message and performs no further processing of the message.

[0096] If the HINT field indicates that the broadcast is to a higher level which is higher than a lower level in the tree structure, the field corresponding to the lower level provides a count of the units in this level. This is shown in Fig. 4, for example, in the fifth field, 303e, if the HINT= fixed (i.e. addressing an individual sequencer) or the HINT=broadcast_node then node ID is provided in the fifth field. However, if the HINT=broadcast_root or broadcast_cluster then the fifth field comprises a count of the nodes.

[0097] In a further embodiment, the system is configured to determine if all sequencers and / or other devices that were waiting for an event with a particular UID have received that event. In this embodiment, the receiving sequencers are all pre-programmed with a particular UID and will advertise that they are waiting for an event with the particular UID. This advertising may be made to the event synchronisation unit (104 of Fig. 1). Thus the event distribution block, on knowing that certain sequencers are waiting for an event, count allows the event synchronisation unit 104 to be able to determine if the event has been sent to the sequencers which are awaiting the event. In further embodiments, the event synchronisation unit is able to determine whether the event has been received by the sequencers.

[0098] Once it has been determined that all sequencers which are waiting for an event have received that event, the UID may be released for use with a further event. The sequencers will be pre-programmed to accept certain UIDs. However, the UID may be re-used for a second or further event if the second or further event is to be executed by the same sequencers as the first event.The number of hierarchical levels which can be specified by the HINT field can be changed to adapt for a specific architecture. However, changes to the size of the field will be made while considering the total length of the destination ID that can be handled by the internal instruction memory of the real time unit. The size of the UID field, command field and the fields relating to the different levels of the hierarchy may also be varied depending on use providing that the total length of the destination ID that can be handled by the internal instruction memory of the real time unit.

[0099] Fig. 5 shows a schematic of a quantum computing system with a quantum error correction stack. A logical layer 401 is provided which performs the initial processing of an input algorithm. The system comprises quantum computing hardware 403 and a quantum error correction stack 409.

[0100] The quantum computing hardware comprises a quantum control system 405 which is configured to perform readout and control operations on the physical qubits during a quantum computation. For example, the quantum control system 405 may perform functions such as issue sequence instructions, generate pulses (four controlling qubits) capture readout data and discriminate readout data. The control system interfaces to the qubit array 407.

[0101] A quantum error correction (QEC) stack 409 is provided as a separate unit to the quantum computing hardware 403. The QEC stack 409 is capable of performing realtime decoding during quantum computations. The QEC Stack 409 communicates with the quantum control system 405 via a “QEC interface” 413, 415.

[0102] The QEC interface 413, 415 is configured to communicate information such as error syndromes, which are outcomes of multi-qubit measurements that are indicative of error locations in the physical qubits that make up the logical qubits. In an embodiment, the QEC stack 409 comprises at least one decoder that receives these syndromes and processes them to determine correction information - this correction information is communicated back to the control system 405. In an embodiment, these corrections are not applied to the physical qubits but are instead used to correct logical qubit states when they are measured.

[0103] There are various types of event and information that can be distributed. One example is a qubit measurement outcome, which will originate in the quantum control system 405and could either stay within the quantum control system 405 (e.g. in the case of activereset operations where the control system is checking whether a qubit has been successfully reset to a 0 state) or it could be communicated to the QEC stack 409 (e.g. if it is a measurement of a physical “syndrome” qubit - syndrome qubits are physical qubits that are not used to encode logical states, but they may nonetheless be associated with a logical qubit because they are used to perform syndrome measurement operations on physical qubits that do encode logical states). It is also possible to have events that originate and stay within the QEC stack 409, for example, the decoding problem can be divided into separate “windows” that are decoded by separate decoders in the QEC stack, and information may to be passed between these windows / decoders.

[0104] Thus, the real-time units which are arranged in a hierarchical structure can be spread across both a quantum control system and a quantum error correction unit. In the quantum error correction unit, the real-time units will comprise units such as decoders.

[0105] Fig. 6 is a schematic of a hierarchical structure split over a quantum control system and a QEC stack. The root node 501 is linked to a plurality of cluster nodes 503a-503n. The first two cluster nodes, 503a and 503b are connected to nodes 505a and 505b which are located within the quantum control system. However, the final cluster, 503n is connected to nodes 505n which are provided within the quantum error stack. The nodes are then further connected to individual real-time units which are represented by the smaller squares within the nodes 505a-505n.

[0106] In this particular example, a cluster, 503n is provided for the quantum error correction stack. However, it is possible for multiple clusters to be provided within the quantum error stack. Also, it is possible for clusters to be divided between the quantum error stack and the quantum control system.

[0107] Similarly, in this example, nodes are either shown within the quantum control system or the quantum error stack. However, it is possible for nodes to be connected to both realtime units located in the quantum error correction stack and the quantum control system.

[0108] Any method described herein may be computer-implemented and may be provided as a computer program product and / or on a computer readable medium such as a non-transitory computer readable medium.It should be understood that any method of the present disclosure could include additional steps, and any device could include additional components. In addition, unless indicated otherwise or technically infeasible, the method steps disclosed herein may be performed in alternative orders, and any order described herein should be considered as exemplary rather than limiting.

[0109] Furthermore, one skilled in the art will appreciate that any computation that can be performed by a classical processing device can also be performed by a quantum computing device. Accordingly, any methods or described herein that is performed on a classical computing device (such as a CPU) can also be performed by a quantum processing device, such as a quantum processing unit (QPU) comprising a plurality of qubits or other quantum information devices.

[0110] Numbered clauses

[0111] Features of the invention are described in the following numbered clauses. The features described in these numbered clauses may be combined with features described above.

[0112] Clause 1. A messaging system for a distributed quantum system, comprising: a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices,

[0113] wherein the plurality of real-time units are assigned into groups and wherein each group is addressable as a single group,

[0114] each of the real-time units in a group being configured to receive a message sent to the group, the message comprising an identifier, and each of the real-time units in a group being configured to ignore the message dependent on the content of the identifier.

[0115] Clause 2. A messaging system according to clause 1, wherein the real-time units are configured to compare the identifier of the message with respective pre-stored information, the real-time units being configured to ignore the message if the identifier of the message does not match the pre-stored information.

[0116] Clause 3. A messaging system according to either of clauses 1 or 2, further comprising a sending unit, the sending unit being configured to send the message to at least one target real-time unit in a group, the message being sent as a broadcast message to all real-time units in the same group as the at least one target real-time unit,the real-time units that receive the message which are not the at least one target realtime unit being configured to ignore the message.

[0117] Clause 4. A messaging system according to clause 3, wherein the target real-time unit is configured to process the message.

[0118] Clause 5. A messaging system according to either of clauses 3 or 4, wherein the sending unit is one of the plurality of real-time units.

[0119] Clause 6. A messaging system according to clause 5, wherein the sending unit is in a different group to the target unit.

[0120] Clause 7. A messaging system according to any of clauses 3 to 6, wherein the identifier indicates a group to which the message is to be broadcast.

[0121] Clause 8. A messaging system according to any of clauses 3 to 7, wherein there are a plurality of target real-time units assigned to different groups and wherein the identifier indicates that the message is broadcast to the plurality of groups containing the plurality of target real-time units.

[0122] Clause 9. A messaging system according to any preceding clause, wherein at least some of the plurality of real-time units are assigned into groups such that at least one group comprises quantum devices that comprise physical qubits which correspond to the same logical qubit.

[0123] Clause 10. A messaging system according to any preceding clause, wherein at least some of the plurality of real-time units are assigned into groups such that at least one group comprises real-time units that route messages in the same region of routing space.

[0124] Clause 11. A messaging system according to any preceding clause, wherein the plurality of real-time units are assigned to groups that are arranged in a hierarchical structure.

[0125] Clause 12. A messaging system according to clause 11, wherein the hierarchical structure is a tree structure comprising a plurality of nodes with the plurality of real-time units as respective leaf nodes.Clause 13. A messaging system according to clause 12, wherein the tree structure comprises a plurality of hierarchical levels, with each node that is not a leaf node being in a respective one of the hierarchical levels and communicatively coupled to a plurality of nodes in a lower hierarchical level.

[0126] Clause 14. A messaging system according to clause 13, wherein the identifier comprises an indication of the hierarchical level to which the message was sent.

[0127] Clause 15. A messaging system according to clause 14, wherein there are a plurality of real-time units which are configured to process the message provided in plurality of different groups, and the identifier indicates the lowest level of the hierarchy which contains all real time units which are configured to process the message.

[0128] Clause 16. A messaging system according to any preceding clause, wherein at least one real-time unit is allocated to more than one group.

[0129] Clause 17. A messaging system according to any preceding clause, wherein the quantum system is a quantum control system, wherein a plurality of the real-time units are provided in the quantum control system.

[0130] Clause 18. A messaging system according to clause 17, wherein the quantum devices comprise qubits and the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits.

[0131] Clause 19. A messaging system according to any of clauses 1 to 16, wherein the quantum system is a quantum error correction system configured to communicate with a quantum control system, wherein a plurality of the real-time units are provided in the quantum error correction system.

[0132] Clause 20. A messaging system according to any of clauses 1 to 16, wherein the quantum system is a quantum error correction system configured to communicate with a quantum control system, wherein the plurality of the real-time units are distributed across the quantum error correction system and the quantum control system.Clause 21. A messaging system according to either of clauses 19 or 20, wherein the plurality of real-time units which are provided in the quantum error correction system are configured to perform decoder actions.

[0133] Clause 22. A messaging system for a distributed quantum system, comprising: a plurality of real-time units each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices,

[0134] wherein the plurality of real-time units are assigned into a plurality of groups and where each group is addressable as a single group,

[0135] wherein a messaging unit is configured to send a message to a target real-time unit, the message being sent as a broadcast message to all real-time units in the same group as the target real-time unit, the real-time units that receive the message which are not the target real-time unit being configured to ignore the message.

[0136] Clause 23. A real-time unit configured to send a message in a distributed quantum system, wherein the distributed quantum system comprises a plurality of real-time units arranged in a hierarchical structure,

[0137] the real-time unit configured for sending a message comprising an internal instruction memory, the internal instruction memory comprising a plurality of IDs, each I D having a plurality of fields, wherein one of the plurality of fields comprises an indication of the level of hierarchy to which a message is to be distributed.

[0138] Clause 24. A method of messaging in a distributed quantum system, the distributed quantum system, comprising:

[0139] a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices, the plurality of real-time units being assigned into groups and wherein each group is addressable as a single group,

[0140] the method comprising:

[0141] broadcasting a message to a group the message comprising an identifier; receiving the message by each of the real-time units in the group to which the message was broadcast; and

[0142] each real-time unit processing or ignoring the message dependent on the content of the identifier.

Claims

CLAIMS:

1. A messaging system for a distributed quantum system, comprising:a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices,wherein the plurality of real-time units are assigned into groups and wherein each group is addressable as a single group,each of the real-time units in a group being configured to receive a message sent to the group, the message comprising an identifier, and each of the real-time units in a group being configured to ignore the message dependent on the content of the identifier.

2. A messaging system according to claim 1, wherein the real-time units are configured to compare the identifier of the message with respective pre-stored information, the real-time units being configured to ignore the message if the identifier of the message does not match the pre-stored information.

3. A messaging system according to either of claims 1 or 2, further comprising a sending unit, the sending unit being configured to send the message to at least one target real-time unit in a group, the message being sent as a broadcast message to all realtime units in the same group as the at least one target real-time unit, the real-time units that receive the message which are not the at least one target real-time unit being configured to ignore the message.

4. A messaging system according to claim 3, wherein the target real-time unit is configured to process the message.

5. A messaging system according to either of claims 3 or 4, wherein the sending unit is one of the plurality of real-time units.

6. A messaging system according to claim 5, wherein the sending unit is in a different group to the target unit.

7. A messaging system according to any of claims 3 to 6, wherein the identifier indicates a group to which the message is to be broadcast.

8. A messaging system according to any of claims 3 to 7, wherein there are a plurality of target real-time units assigned to different groups and wherein the identifier indicates that the message is broadcast to the plurality of groups containing the plurality of target real-time units.

9. A messaging system according to any preceding claim, wherein at least some of the plurality of real-time units are assigned into groups such that at least one group comprises quantum devices that comprise physical qubits which correspond to the same logical qubit.

10. A messaging system according to any preceding claim, wherein at least some of the plurality of real-time units are assigned into groups such that at least one group comprises real-time units that route messages in the same region of routing space.

11. A messaging system according to any preceding claim, wherein the plurality of real-time units are assigned to groups that are arranged in a hierarchical structure.

12. A messaging system according to claim 11, wherein the hierarchical structure is a tree structure comprising a plurality of nodes with the plurality of real-time units as respective leaf nodes.

13. A messaging system according to claim 12, wherein the tree structure comprises a plurality of hierarchical levels, with each node that is not a leaf node being in a respective one of the hierarchical levels and communicatively coupled to a plurality of nodes in a lower hierarchical level.

14. A messaging system according to claim 13, wherein the identifier comprises an indication of the hierarchical level to which the message was sent.

15. A messaging system according to claim 14, wherein there are a plurality of realtime units which are configured to process the message provided in plurality of different groups, and the identifier indicates the lowest level of the hierarchy which contains all real time units which are configured to process the message.

16. A messaging system according to any preceding claim, wherein at least one realtime unit is allocated to more than one group.

17. A messaging system according to any preceding claim, wherein the quantum system is a quantum control system, wherein a plurality of the real-time units are provided in the quantum control system.

18. A messaging system according to claim 17, wherein the quantum devices comprise qubits and the real-time units are configured to perform an operation selected from a read-out, reset or gate operation on said qubits.

19. A messaging system according to any of claims 1 to 16, wherein the quantum system is a quantum error correction system configured to communicate with a quantum control system, wherein a plurality of the real-time units are provided in the quantum error correction system.

20. A messaging system according to any of claims 1 to 16, wherein the quantum system is a quantum error correction system configured to communicate with a quantum control system, wherein the plurality of the real-time units are distributed across the quantum error correction system and the quantum control system.

21. A messaging system according to either of claims 19 or 20, wherein the plurality of real-time units which are provided in the quantum error correction system are configured to perform decoder actions.

22. A messaging system for a distributed quantum system, comprising:a plurality of real-time units each real-time unit communicatively couplable to a respective proper subset of the plurality of quantum devices,wherein the plurality of real-time units are assigned into a plurality of groups and where each group is addressable as a single group,wherein a messaging unit is configured to send a message to a target real-time unit, the message being sent as a broadcast message to all real-time units in the same group as the target real-time unit, the real-time units that receive the message which are not the target real-time unit being configured to ignore the message.

23. A real-time unit configured to send a message in a distributed quantum system, wherein the distributed quantum system comprises a plurality of real-time units arranged in a hierarchical structure,the real-time unit configured for sending a message comprising an internal instruction memory, the internal instruction memory comprising a plurality of IDs, each I D having a plurality of fields, wherein one of the plurality of fields comprises an indication of the level of hierarchy to which a message is to be distributed.

24. A method of messaging in a distributed quantum system, the distributed quantum system, comprising:a plurality of real-time units, each real-time unit being communicatively couplable to a respective proper subset of a plurality of quantum devices, the plurality of real-time units being assigned into groups and wherein each group is addressable as a single group,the method comprising:broadcasting a message to a group the message comprising an identifier; receiving the message by each of the real-time units in the group to which the message was broadcast; andeach real-time unit processing or ignoring the message dependent on the content of the identifier.