Control system and control method for quantum computer
Patent Information
- Application Number
- JP2022135822
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-08-29
- Publication Date
- 2026-09-18
- Estimated Expiration
- 2042-08-29
AI Technical Summary
【0013】 本発明によれば、ユーザは、種々のレイヤの知識を有していなくても量子コンピュータを制御できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
Smart Images

Figure 0007923658000001 
Figure 0007923658000002 
Figure 0007923658000003
Abstract
Description
Technical Field
[0001] The present invention relates to control technology for quantum computers. Background Art
[0002] The miniaturization of semiconductor devices, which has supported the development of computers, is reaching its limit, making it difficult to improve computing power through extensions of conventional classical computers. Under such circumstances, quantum computers are expected to be one of the attempts to break through performance limits using new computing principles and devices.
[0003] A quantum computer is a computer that realizes exponentially massive parallel computing using quantum mechanical phenomena such as superposition and quantum entanglement. It is considered that if a quantum computer operates as theoretically predicted, it will enable faster computation than classical computers. Attempts to put quantum computers into practical use have spread worldwide, and the realization of gate-type quantum computers with around several tens of qubits has been reported so far (see, for example, Non-Patent Document 1).
[0004] However, currently developed quantum computers do not have an error correction function, and are far from a true general-purpose quantum computer that requires on the order of one million qubits. Studies are being conducted toward the realization of large-scale quantum computers.
[0005] Patent Document 1 discloses a silicon electron spin type massively parallel quantum computer in which a quantum operation unit having a plurality of qubits is configured with a qubit array. In addition, Non-Patent Document 2 discusses a method for realizing large scale through a qubit device and quantum peripheral circuits for controlling the same. Prior Art Documents Patent Documents
[0006] Patent Document 1 Japanese Unexamined Patent Publication No. 2021-170198 [Non-patent literature]
[0007] [Non-Patent Document 1] Frank Arute, et al., "Quantum supremacy using a programmable superconducting processor," Nature, Vol 574, pp. 505 - 511, 2019. [Non-Patent Document 2] Petit, L. et al., "Universal quantum logic in hot silicon qubits," Nature, Vol 580, pp.355-359, 2020. [Overview of the project] [Problems that the invention aims to solve]
[0008] While there are hardware attempts to scale up quantum computers, verification remains limited to experimental setups involving a small number of qubits directly connected to a control device. Controlling large-scale quantum computers requires not only the development of qubit devices but also the development of systems that can efficiently control a large number of qubits.
[0009] Developing large-scale quantum computer systems requires knowledge of different layers, including quantum devices, control circuits, and quantum algorithms, as well as the development of related elemental technologies. As the number of qubits being controlled increases, and the surrounding control circuit systems also become more complex and difficult to understand.
[0010] Therefore, there is a need for a system that allows users developing and verifying quantum computers to control them more intuitively, without having to use knowledge at various layers, such as hardware settings.
[0011] This invention was made in view of the above-mentioned problems, and aims to provide a technology that allows users to control a quantum computer even without knowledge of various layers. [Means for solving the problem]
[0012] A typical example of the invention disclosed in this application is as follows: A control system for controlling a quantum computer, comprising a computer having a processor, a memory connected to the processor, and a network interface connected to the processor, connected to an analog control unit that generates control signals for controlling a qubit device having a plurality of qubits, holding first setting information relating to setting parameters for controlling the qubit device, second setting information relating to the control of the analog control unit, and third setting information relating to the format of a control data pattern for generating the control signals, wherein the processor, The system receives first control flow data that defines the control content of the qubit device, described in a waveform format that allows the user to visually understand the control content, and converts the first control flow data into second control flow data that defines the same control content of the qubit device as defined in the first control flow data, Based on the first and second configuration information, Second The control flow data defines the control content of the qubit device by the analog control unit. Third Convert to control flow data, and based on the third setting information, Third Multiple control data patterns are generated from the control flow data. [Effects of the Invention]
[0013] According to the present invention, users can control a quantum computer without having knowledge of various layers. Other problems, configurations, and effects will be clarified by the following description of the embodiments. [Brief explanation of the drawing]
[0014] [Figure 1] This is a block diagram showing an example of the hardware configuration of the quantum computer in Example 1. [Figure 2] This is a block diagram showing an example of the functional configuration of the digital control unit in Example 1. [Figure 3]FIG. 1 is a diagram showing an example of control flow data (code description) and control flow data (waveform description) for controlling the qubit device of Example 1. [Figure 4] FIG. 3 is a diagram showing an example of parameters of the control flow of Example 1. [Figure 5] FIG. 6 is a diagram showing an example of control flow data (waveform description) of Example 1. [Figure 6] This is an example of control flow data (code description) of Example 1. [Figure 7] FIG. 12 is a diagram showing a functional configuration related to a user description level of the digital control unit of Example 1. [Figure 8] FIG. 15 is a flowchart for explaining an example of a user description level executed by the digital control unit of Example 1. [Figure 9] FIG. 18 is a diagram showing an example of a GUI of Example 1. [Figure 10] FIG. 21 is a diagram showing an example of a structure of the qubit device of Example 1. [Figure 11] FIG. 24 is a diagram showing an example of signal information of Example 1. [Figure 12] FIG. 27 is a diagram showing an example of bias voltage information of Example 1. [Figure 13] FIG. 30 is a diagram showing a functional configuration related to a control unit level, a constraint consideration level, and a data pattern conversion level of the digital control unit of Example 1. [Figure 14] FIG. 33 is a flowchart for explaining an example of an overview executed by a control data pattern generation unit of Example 1. [Figure 15] FIG. 36 is a diagram showing an example of execution command information of Example 1. [Figure 16] FIG. 39 is a diagram showing an example of a control unit level code of Example 1. [Figure 17] FIG. 42 is a diagram showing an example of constraint information of Example 1. [Figure 18] FIG. 45 is a diagram showing an example of a constraint-considered control unit level code of Example 1. [Figure 19] FIG. 48 is a diagram showing an example of a format of control data of Example 1. [Figure 20] This figure shows an example of bit correspondence information in Example 1. [Figure 21] This figure shows an example of control data pattern information from Example 1. [Figure 22] This figure shows a modified example of the functional configuration of the control data pattern generation unit in Example 1. [Figure 23] This figure shows the functional configuration related to the execution control level of the digital control unit in Example 1. [Figure 24] This flowchart illustrates an example of the execution control level performed by the digital control unit of Example 1. [Figure 25] This figure shows an example of the data format of the calculation results in Example 1. [Modes for carrying out the invention]
[0015] The embodiments of the present invention will be described below with reference to the drawings. However, the present invention is not to be construed as being limited to the embodiments described below. It will be readily apparent to those skilled in the art that the specific configuration can be modified without departing from the spirit or intent of the present invention.
[0016] In the configuration of the invention described below, identical or similar components or functions are denoted by the same reference numerals, and redundant descriptions are omitted.
[0017] The designations "First," "Second," "Third," etc., used in this specification are for the purpose of identifying constituent elements and do not necessarily limit their number or order.
[0018] The positions, sizes, shapes, and ranges of each component shown in the drawings, etc., may not represent the actual positions, sizes, shapes, and ranges, etc., in order to facilitate understanding of the invention. Therefore, the present invention is not limited to the positions, sizes, shapes, and ranges, etc., disclosed in the drawings, etc. [Examples]
[0019] Example 1 describes a control system that, in the research and development and verification of large-scale quantum computers, for example, for users developing quantum devices and systems, conceals the complex settings of layers different from the quantum device and enables control of the quantum device as required by the user.
[0020] Figure 1 is a block diagram showing an example of the hardware configuration of the system in Example 1.
[0021] The system consists of a quantum computer 10 and a control system 11. The quantum computer 10 consists of an analog control unit 102 and a qubit device 103. The quantum computer 10 and the control system 11 are powered by a power supply 104.
[0022] The control system 11 controls the entire quantum computer 10. The analog control unit 102 generates analog control signals, such as bias voltage, RF signal, and timing signal, for controlling the qubit device 103 based on the output of the control system 11. The analog control unit 102 includes, for example, an analog control circuit or a signal generator. The qubit device 103 is a device that performs quantum operations and is equipped with multiple qubits. The qubit device 103 includes, for example, a qubit chip on which qubits are arranged.
[0023] The qubit device 103 is placed in an extremely low-temperature region inside the dilution refrigerator to ensure stable operation of the qubit. The analog control unit 102, which directly controls the qubit device 103, is placed in a low-temperature region around the qubit device 103. The control system 11 is placed in a room temperature region.
[0024] The analog control unit 102 and the qubit device 103, which are located in close proximity, are directly connected via wiring 109, and the control system 11 and the analog control unit 102 are connected via communication cable 108.
[0025] The control system 11 includes a processor 110, a storage device 111, an input / output device 112, and a communication device 113. The control system 11 may also be composed of multiple computers.
[0026] The processor 110 executes the program stored in the memory device 111. By executing processing according to the program, the processor 110 operates as a functional unit (module) that realizes a specific function. In the following description, when the processing is described with the functional unit as the subject, it indicates that the processor 110 is executing the program that realizes that functional unit. The memory device 111 stores the program executed by the processor 110 and the information used by the program. The memory device 111 is also used as a work area.
[0027] The input / output device 112 includes a keyboard, mouse, touch panel, and display, and accepts various types of information as input and outputs various types of information. The communication device 113 communicates with the analog control unit 102.
[0028] The control system 11 may be composed of multiple computers, each having a processor 110, a storage device 111, an input / output device 112, and a communication device 113.
[0029] Figure 2 is a block diagram showing an example of the functional configuration of the control system 11 in Embodiment 1.
[0030] The control system 11 includes a GUI (Graphical User Interface) 210, a code description input / output unit 211, a waveform description input / output unit 212, a description conversion unit 213, an API (Application Programming Interface) 214, a recording unit 215, a control data pattern generation unit 216, a control unit 217, a calculation result storage unit 218, a communication unit 219, and an API 220.
[0031] GUI210 accepts input of control flow data (control flow data) that defines the control content of the qubit device 103. In Embodiment 1, GUI210 can accept input of two control flow data (code description) 230 and control flow data (waveform description) 231 that have different representation methods. GUI210 outputs the received control flow data (code description) 230 to the code description input / output unit 211 and outputs the received control flow data (waveform description) 231 to the waveform description input / output unit 212.
[0032] In the following explanation, if control flow data (code description) 230 and control flow data (waveform description) 231 are not distinguished, they will be referred to simply as control flow data.
[0033] When the description conversion unit 213 detects an execution trigger for processing to convert the representation method of the control flow data, it performs a conversion between the control flow data (code description) 230 and the control flow data (waveform description) 231.
[0034] The GUI210, code description input / output unit 211, waveform description input / output unit 212, and description conversion unit 213 may be combined into a single control flow reception unit.
[0035] API214 receives input regarding the analog control unit 102 and the qubit device 103. Specifically, API214 receives signal information 232 and bias voltage information 233 as information regarding setting parameters for controlling the qubit device 103. API214 also receives execution command information 234 and constraint information 235 as information regarding control by the analog control unit 102. Furthermore, API214 receives format information 236 and bit correspondence information 237 as information regarding the data structure of the control data pattern 251 used to generate control signals for controlling the qubit device 103 that can be executed by the analog control unit 102. The recording unit 215 stores the various information received by API214.
[0036] API 214 and recording unit 215 may be combined into a single information setting unit.
[0037] The control data pattern generation unit 216 acquires control flow data (code description) 230 from the code description input / output unit 211, and uses the control flow data (code description) 230 and the information stored in the recording unit 215 to generate a control signal used to control the qubit device 103.
[0038] The control unit 217 acquires and stores control data pattern information 1312 (see Figure 13) containing multiple control data patterns 251 from the control data pattern generation unit 216. When the control unit 217 detects an execution trigger for the control processing of the quantum computer 10, it outputs the control data pattern 251 to the communication unit 219. The control unit 217 also receives the calculation result 252 from the communication unit 219 and stores it in the calculation result storage unit 218.
[0039] The communication unit 219 controls the communication device 113 to transmit the control data pattern 251 to the analog control unit 102. The communication unit 219 also controls the communication device 113 to receive the calculation result 252 from the analog control unit 102 and outputs it to the control unit 217.
[0040] The control unit 217, the calculation result storage unit 218, and the communication unit 219 may be combined into a single control execution unit.
[0041] API 220 receives execution triggers for various processes and file inputs from user program 241. API 220 also outputs the execution results of various processes (error information, calculation results 252, etc.) to user program 241.
[0042] The processing performed by the control system 11 consists of five processing levels: user description level, control unit level, constraint consideration level, data pattern conversion level, and execution control level.
[0043] (Level 1) User-Described Level The user description level is a process executed by the control flow reception unit, and is a conversion process between control flow data (code description) 230 and control flow data (waveform description) 231.
[0044] Figure 3 shows an example of control flow data (code description) 230 and control flow data (waveform description) 231 for controlling the qubit device 103 of Example 1. Figure 4 shows an example of the control flow parameters of Example 1. Figure 5 shows an example of the control flow data (waveform description) 231 of Example 1. Figure 6 shows an example of the control flow data (code description) 230 of Example 1.
[0045] Figure 3 shows the control flow data for a qubit device 103 in which qubits are arranged in an array. Figure 3 shows the control flow data for controlling the qubits indicated by circles. The control flow defines the timing of actions such as applying bias voltage to the signal terminals and applying RF signals to control the qubits.
[0046] The control flow data (code description) 230 and the control flow data (waveform description) 231 are equivalent data, although they use different description methods. The control flow data (code description) 230 describes the control flow using the same expression as program code, while the control flow data (waveform description) 231 describes the control flow using a sequence of signal waveforms.
[0047] From the perspective of users developing and verifying the qubit device 103, the control flow data (waveform description) 231, which closely resembles the representation of measuring devices such as testers, is easy to handle. The control flow data (waveform description) 231 shown in Figure 3 intuitively represents the control that induces a reverse current in the wiring adjacent to the qubit.
[0048] On the other hand, from a system perspective, control flow data (code description) 230, which resembles program code, is easier to handle. Although control flow data (code description) 230 is less visually perceptible than control flow data (waveform description) 231 because it does not provide a visual representation of the control content, it offers superior flexibility in expression, such as the potential for reuse of repetitive processing and generalization through parameterization of qubit addresses. Control flow data (code description) 230 is also easier to handle than control flow data (waveform description) 231 in processing on the control system 11.
[0049] (Level 2) Control Unit Level The control unit level is one of the processes performed by the control data pattern generation unit 216, and is the process of converting control flow data (code description) 230 into commands (control unit level codes 1310) of an executable granularity for the analog control unit 102. At the control unit level, signal information 232, bias voltage information 233, and execution command information 234 are referenced.
[0050] (Level 3) Constraint Consideration Level The constraint consideration level is one of the processes performed by the control data pattern generation unit 216, and it is a process that converts the control unit level code 1310 to a constraint-considered control unit level code 1311 in accordance with the constraints related to control by the analog control unit 102. The constraint consideration level refers to the constraint information 235.
[0051] (Level 4) Data Pattern Transformation Level The data pattern conversion level is one of the processes performed by the control data pattern generation unit 216, and is the process of converting the constraint-considered control unit level code 1311 into a control data pattern 251. The format information 236 and bit correspondence information 237 are referenced in the data pattern conversion level.
[0052] (Level 5) Execution Control Level The execution control level is the process of controlling the quantum computer 10 using the control data pattern 251. At the execution control level, processes such as transmitting the control data pattern 251 to the analog control unit 102, and receiving and storing the calculation results are performed.
[0053] The control system 11 of Example 1 accepts reusable control flow data (code description) 230 and highly visible control flow data (waveform description) 231 from a user who develops and verifies the qubit device 103, or a user who develops and verifies the system, via the GUI 210. The control flow data (waveform description) 231 is for the qubit device 103. development Furthermore, it is a suitable representation for users performing verification to intuitively manipulate qubits, and is easy to use.
[0054] The control system 11 of Embodiment 1 has a separate API 214 that receives information used for processing and an API 220 that receives execution triggers for processing, so that each of the five processing levels can be executed independently.
[0055] By pre-configuring the information used at each processing level, users can perform verification at a predetermined processing level without having to perform the complex configuration of other processing levels. For example, a user developing and verifying a qubit device 103 can control the qubit device 103 without having any knowledge of the analog control unit 102. In addition, the user can obtain error information, processing results for each processing level, and calculation results 252, etc., via the API 220.
[0056] Next, the processes executed by the control system 11 in this embodiment will be described for each processing level. In addition, the information referenced will be explained in conjunction with the description of the processes.
[0057] The signal information 232, bias voltage information 233, execution command information 234, constraint information 235, format information 236, and bit correspondence information 237 are assumed to be stored in the recording unit 215 in advance via the API 214.
[0058] (User-defined level) Figure 7 shows the functional configuration related to the user description level of the control system 11 of Example 1. Figure 8 is a flowchart illustrating an example of the user description level performed by the control system 11 of Example 1. Figure 9 shows an example of the GUI 210 of Example 1. Figure 10 shows an example of the structure of the qubit device 103 of Example 1. Figure 11 shows an example of the signal information 232 of Example 1. Figure 12 shows an example of the bias voltage information 233 of Example 1.
[0059] The control flow reception unit displays a GUI 210 as shown in Figure 9 and accepts control flow data input. The GUI 210 includes a code input / display field 901, a waveform input / display field 902, and a save button 903.
[0060] The code input / display field 901 is a field for inputting or displaying a control flow expressed in code. The waveform input / display field 902 is a field for inputting or displaying a control flow expressed in waveform. The save button 903 is an operation button for saving the control flow entered in either the code input / display field 901 or the waveform input / display field 902. When the save button 903 is operated, the control flow data entered in either the code input / display field 901 or the waveform input / display field 902 is input to the control flow reception unit.
[0061] The control flow reception unit stores the control flow data and then monitors the execution trigger (step S801).
[0062] Specifically, the code description input / output unit 211 and the waveform description input / output unit 212 monitor the execution trigger. The execution trigger is received from the user program 241 via the API 220. Alternatively, the GUI 210 may implement a function to receive the execution trigger. For example, when the save button 903 is pressed, the control flow... data Alternatively, the system may be configured to allow input of an execution trigger for the conversion process. Furthermore, a button for inputting an execution trigger at the control unit level may be provided on GUI210.
[0063] Furthermore, the control flow reception unit can accept edits to the control flow data while monitoring the execution trigger.
[0064] When the control flow reception unit detects an execution trigger, it determines whether or not the execution trigger is an execution trigger for control flow data conversion processing (step S802).
[0065] The detected execution trigger is in the control flow data If it is a trigger for the execution of a conversion process, the control flow reception unit will receive the control flow data The conversion process is executed (step S803). Details of the control flow conversion process will be described later.
[0066] The control flow reception unit receives the control flow data Determine whether the conversion process has completed successfully (step S804).
[0067] control flow data If the conversion process does not complete successfully, the control flow reception unit outputs error information to the user program 241 (step S805) and terminates the process.
[0068] If the control flow conversion process is completed successfully, the control flow receiving unit displays the converted control flow on the GUI210 (step S806), and then returns to step S801.
[0069] In step S802, if it is an execution trigger at the control unit level, the control flow reception unit terminates monitoring of the execution trigger and sends control flow data (code description) 230 to the control data pattern generation unit 216 (step S807).
[0070] Here, the control flow data The conversion process will now be explained. The control flow conversion process is performed by the description conversion unit 213.
[0071] (Conversion 1) When control flow data (code description) 230 is received, the description conversion unit 213 uses the signal information 232 and the bias voltage information 233 to convert the control flow data (code description) 230 into control flow data (waveform description) 231.
[0072] Figure 10 shows the structure of a portion of the qubit device 103. "XJNi0", Y "JW0", etc., represents the signal name of the signal terminal. The qubit is controlled by applying a bias voltage to the signal terminal. In order to describe the control flow, the signal name, as well as the name and value of the bias voltage, etc., are required. Signal information 232 is information that defines the signal name, which is a setting parameter, and bias voltage information 233 is information that defines the name and value of the bias voltage, which is a setting parameter. The signal information 232 of the qubit device 103 shown in Figure 10 is, for example, the information shown in Figure 11. Also, the bias voltage information 233 of the qubit device 103 shown in Figure 10 is, for example, the information shown in Figure 12.
[0073] The description conversion unit 213 refers to the signal information 232 and bias voltage information 233 and determines whether there are any errors in the signal names and bias voltage names, etc., in the control flow data (code description) 230. If there are errors in the description, the description conversion unit 213 outputs error information and terminates the conversion process. If there are no errors in the description, the description conversion unit 213 converts the control flow data (code description) 230 to control flow data (waveform description) 231 based on the correspondence between the code description and the waveform description. The description conversion unit 213 stores the control flow data (waveform description) 231 in the waveform description input / output unit 212. The waveform description input / output unit 212 outputs the control flow data (waveform description) 231 to the GUI 210, and the GUI 210 displays the control flow data (waveform description) 231 in the waveform input / display field 902. The GUI 210 can accept edits to the control flow data (waveform description) 231. The editing results for the control flow data (waveform description) 231 are stored in the waveform description input / output unit 212 via the GUI 210.
[0074] (Conversion 2) When control flow data (waveform description) 231 is received, the description conversion unit 213 converts the control flow data (waveform description) 231 to control flow data (code description) 230 based on a predetermined correspondence between the code description and the waveform description. The description conversion unit 213 refers to the signal information 232 and the bias voltage information 233 and converts the signal name and in the control flow data (code description) 230. Bias voltage name The system determines whether there are any errors in the description. If there are errors in the description, the description conversion unit 213 outputs error information and terminates the conversion process. If there are no errors in the description, the description conversion unit 213 stores the control flow data (code description) 230 in the code description input / output unit 211. The code description input / output unit 211 outputs the control flow data (code description) 230 to the GUI 210, and the GUI 210 displays the control flow data (code description) 230 in the code input / display field 901. The GUI 210 can accept edits to the control flow data (code description) 230. The edit results for the control flow data (code description) 230 are stored in the code description input / output unit 211 via the GUI 210.
[0075] The control system 11 can accept both control flows written in highly reusable code and control flows written in waveforms that allow for visual understanding of the control content. Furthermore, the control system 11 can convert control flows with different representations between them and present them to the user. The user can efficiently edit the control flow by referring to the converted control flow.
[0076] (Control unit level, constraint consideration level, data pattern transformation level) Figure 13 is a diagram showing the functional configuration of the control unit level, constraint consideration level, and data pattern conversion level of the control system 11 of Example 1. Figure 14 is a flowchart illustrating an example of the overview performed by the control data pattern generation unit 216 of Example 1. Figure 15 is a diagram showing an example of execution command information 234 of Example 1. Figure 16 is a diagram showing an example of control unit level code of Example 1. Figure 17 is a diagram showing an example of constraint information 235 of Example 1. Figure 18 is a diagram showing an example of constraint-considered control unit level code of Example 1. Figure 19 is a diagram showing an example of the control data format of Example 1. Figure 20 is a diagram showing an example of bit correspondence information 237 of Example 1. Figure 21 is a diagram showing an example of control data pattern information of Example 1.
[0077] The control data pattern generation unit 216 includes a code-level conversion unit 1301 that performs control unit level operations, a code constraint consideration unit 1302 that performs constraint consideration level operations, and a data pattern conversion unit 1303 that performs data pattern conversion level operations.
[0078] The control data pattern generation unit 216 receives control flow data (code description) 230 and, upon detecting an execution trigger, begins the process of generating a control data pattern 251. The execution trigger is received from the user program 241 via the API 220. Alternatively, the GUI 210 may implement a function to receive execution triggers.
[0079] The code-level conversion unit 1301 receives control flow data (code description) 230 and, if it detects an execution trigger, executes a code-level conversion process to generate a control unit-level code 1310 from the control flow data (code description) 230 (step S1401).
[0080] (S1401-1) The code level conversion unit 1301 refers to the signal information 232 and the bias voltage information 233 and determines whether there are any errors in the signal name and bias voltage name, etc. If there are errors, the code level conversion unit 1301 generates error information and terminates the code level conversion process.
[0081] (S1401-2) If there are no errors, the code level conversion unit 1301 generates a control unit level code 1310 as shown in Figure 16 by decomposing the control flow data (code description) 230 into a granularity that the analog control unit 102 can execute, based on the correspondence between the control flow data (code description) 230 and the execution commands of the analog control unit 102 defined in the execution command information 234 as shown in Figure 15. For example, the bias application in the control flow data (code description) 230 is decomposed into DBS and BSE in the control unit level code, and the application of the RF signal is decomposed into RFW and RFS.
[0082] The code level conversion unit 1301 determines whether the code level conversion process has been completed successfully (step S1402).
[0083] If the code level conversion process does not complete successfully, the code level conversion unit 1301 outputs error information (step S1407) and terminates the entire process.
[0084] If the code level conversion process is completed successfully, the code level conversion unit 1301 outputs the control unit level code 1310 to the code constraint consideration unit 1302.
[0085] When the code constraint consideration unit 1302 receives the control unit level code 1310 and detects an execution trigger, it executes a code constraint consideration process to generate a constraint-considered control unit level code 1311 from the control unit level code 1310 (step S1403).
[0086] In the code constraint consideration process, constraint information 235, as shown in Figure 17, is used. Constraint information 235 includes simultaneous constraint information 1701, sequential constraint information 1702, and numerical constraint information 1703.
[0087] The simultaneous constraint information 1701 defines constraints regarding control commands that can be executed simultaneously. If there are control commands that can be executed simultaneously in the analog control unit 102, or if there are control commands that can be set multiple times simultaneously, the code constraint consideration unit 1302 optimizes the control commands included in the control unit level code 1310.
[0088] The sequence constraint information 1702 defines constraints regarding the execution order of control commands. In order to apply the device voltage to the qubit device 103, the analog control unit 102 must execute control commands in a predetermined order. For example, DBS, BSW, and BSE have sequential dependencies on a signal.
[0089] Numerical constraint information 1703 defines constraints regarding the value range of the setting parameter. The value of the setting parameter must be set within the specified range.
[0090] (S1403-1) For example, the code constraint consideration unit 1302 determines whether the control unit level code 1310 satisfies the numerical constraint information 1703. If the numerical constraint information 1703 is not satisfied, the code constraint consideration unit 1302 generates error information and terminates the code constraint consideration process.
[0091] (S1403-2) If the numerical constraint information 1703 is satisfied, the code constraint consideration unit 1302 optimizes the control unit level code 1310 based on the simultaneous constraint information 1701 and the sequential constraint information 1702 to generate a constraint-considered control unit level code 1311 as shown in Figure 18.
[0092] The code constraint consideration unit 1302 determines whether the code constraint consideration process has completed successfully (step S1404).
[0093] If the code constraint consideration process does not complete successfully, the code constraint consideration unit 1302 outputs error information (step S1407) and terminates the entire process.
[0094] If the code constraint consideration process is completed successfully, the code constraint consideration unit 1302 outputs the constraint consideration control unit level code 1311 to the data pattern conversion unit 1303.
[0095] When the data pattern conversion unit 1303 receives the constraint-considering control unit level code 1311 and detects an execution trigger, it executes a data pattern conversion process to generate a control data pattern 251 from the constraint-considering control unit level code 1311 (step S1405).
[0096] The data pattern conversion process uses format information 236, which defines the format of the control data pattern as shown in Figure 19, and bit correspondence information 237, as shown in Figure 20. The format information 236 defines the bit fields of the control data pattern 251. The bit correspondence information 237 defines the correspondence between, for example, a bias voltage name or signal name and its bit representation (codes 2001, 2002).
[0097] The data pattern conversion unit 1303 converts the control commands and setting data included in the constraint-considered control unit level code 1311 into a bit sequence, according to the bit fields defined in the format information 236. At this time, the data pattern conversion unit 1303 refers to the bit correspondence information 237 and adds setting data corresponding to the signal name. This generates the control data pattern information 1312 shown in Figure 21. Each row corresponds to one control data pattern 251.
[0098] The data pattern conversion unit 1303 determines whether the data pattern conversion process has been completed successfully (step S1406).
[0099] If the data pattern conversion process does not complete successfully, the data pattern conversion unit 1303 outputs error information (step S1407) and terminates the entire process.
[0100] If the data pattern conversion process is completed successfully, the data pattern conversion unit 1303 monitors the execution trigger at the execution control level (step S1408).
[0101] When an execution trigger at the execution control level is detected, the data pattern conversion unit 1303 outputs control data pattern information 1312 to the control unit 217 (step S1409), and the entire process is terminated.
[0102] Figure 22 shows a modified example of the functional configuration of the control data pattern generation unit 216 in Example 1.
[0103] The control data pattern generation unit 216 may have two timing chart conversion units 2200 and 2201. The timing chart conversion unit 2200 converts the processing results at the control unit level into a timing chart and presents it to the user. The timing chart conversion unit 2201 converts the processing results at the constraint consideration level into a timing chart and presents it to the user.
[0104] The control data pattern generation unit 216 may also output the processing results of each processing level directly via the API 220.
[0105] By analyzing the outputted processing results, users can incorporate feedback into various types of information, such as signal information 232.
[0106] The control system 11 can convert the control flow data (code description) 230 into commands of a granularity that the analog control unit 102 can execute. Furthermore, the control system 11 can optimize the control flow data (code description) 230, taking into account the constraints on the control of the analog control unit 102. Additionally, the control system 11 can convert the control flow data (code description) 230 into a control data pattern 251.
[0107] Knowledge of different layers, such as signal information, parameter settings, and control constraints, can be individually configured via API 214. This allows users without knowledge of various layers to control the qubit device 103.
[0108] (Execution control level) Figure 23 is a diagram showing the functional configuration related to the execution control level of the control system 11 of Example 1. Figure 24 is a flowchart illustrating an example of the execution control level performed by the control system 11 of Example 1. Figure 25 is a diagram showing an example of the data format of the calculation result 252 of Example 1.
[0109] Execution triggers are received from user program 241 via API 220. Alternatively, the function for receiving execution triggers may be implemented in GUI 210.
[0110] When the control unit 217 receives the control data pattern information 1312 and detects an execution trigger, it initializes the address (step S2401).
[0111] The control unit 217 reads the control data pattern 251 corresponding to the address from the control data pattern information 1312 (step S2402).
[0112] The control unit 217 determines whether or not the reading of all control data patterns 251 has been completed (step S2403). Specifically, it determines whether or not a control data pattern 251 corresponding to an address exists. If no control data pattern 251 corresponding to an address exists, the control unit 217 determines that the reading of all control data patterns 251 has been completed.
[0113] Once all control data patterns 251 have been read, the control unit 217 terminates the execution control level.
[0114] If the reading of all control data patterns 251 has not been completed, the control unit 217 determines whether the read control data pattern 251 is a control data pattern that instructs the acquisition of the calculation result 252 (step S2404).
[0115] If the read-out control data pattern 251 is not a control data pattern that instructs the acquisition of the calculation result 252, the control unit 217 instructs the communication unit 219 to transmit the read-out control data pattern 251 (step S2405). If the communication unit 219 receives the instruction, it transmits the control data pattern 251 to the analog control unit 102.
[0116] The analog control unit 102 stores the received control data pattern 251 in memory and detects the storage of the control data pattern 251 as an execution trigger. The analog control unit 102 generates a control signal based on the control data pattern 251 and uses this control signal to control the qubit device 103.
[0117] The control unit 217 increments the address (step S2409), and then returns to step S2402.
[0118] If the read-out control data pattern 251 is a control data pattern that instructs the acquisition of the calculation result 252, the control unit 217 instructs the communication unit 219 to send setting data for reading the calculation result 252 (step S2406), and then transitions to a waiting state. The communication unit 219 sends the setting data for reading the calculation result 252 to the analog control unit 102.
[0119] The analog control unit 102 generates a calculation result 252 in the data format shown in Figure 25 based on the setting data and transmits it to the control system 11.
[0120] The control unit 217 determines whether or not it has received the calculation result (step S2407).
[0121] If no calculation result has been received, the control unit 217 returns to step S2407 after a certain period of time has elapsed.
[0122] When the calculation result is received, the control unit 217 stores the calculation result 252 in the calculation result storage unit 218 (step S2408), increments the address (step S2409), and then returns to step S2402.
[0123] The calculation result storage unit 218 can output the calculation result 252 to the user program 241 via the API 220.
[0124] As described above, the control system 11 of Example 1 allows the user to control the qubit device 103 in the development and verification of a large-scale quantum computer, even if the user does not have knowledge of various layers such as the qubit device 103 and system control.
[0125] It should be noted that the present invention is not limited to the embodiments described above, and various modifications are included. Furthermore, for example, the embodiments described above are detailed explanations of the configuration in order to clearly illustrate the present invention, and are not necessarily limited to those having all the configurations described. In addition, some of the configurations in each embodiment can be added to, deleted from, or replaced with other configurations.
[0126] Furthermore, each of the above-mentioned configurations, functions, processing units, processing means, etc., may be implemented in hardware, in whole or in part, for example, by designing them as integrated circuits. The present invention can also be implemented by software program code that realizes the functions of the embodiment. In this case, a storage medium on which the program code is recorded is provided to a computer, and the processor of that computer reads the program code stored in the storage medium. In this case, the program code read from the storage medium itself realizes the functions of the embodiment described above, and the program code itself and the storage medium on which it is stored constitute the present invention. Examples of storage media used to supply such program code include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, and the like.
[0127] Furthermore, the program code that implements the functions described in this embodiment can be implemented in a wide range of programming or scripting languages, such as assembler, C / C++, Perl, Shell, PHP, Python, and Java (registered trademark).
[0128] Furthermore, the program code for the software that implements the functions of the embodiment may be distributed via a network and stored in a storage means such as a computer's hard disk or memory, or in a storage medium such as a CD-RW or CD-R, and the computer's processor may read and execute the program code stored in the storage means or storage medium.
[0129] In the above-described embodiment, the control lines and information lines shown are those deemed necessary for illustrative purposes, and not all control lines and information lines are necessarily shown in the actual product. All components may be interconnected. [Explanation of Symbols]
[0130] 10 Quantum Computers 11 Control System 102 Analog control unit 103 qubit devices 104 Power supply 108 Communication Cable 109 Wiring 110 processors 111 Storage Devices 112 Input / Output Devices 113 Communication devices 210 GUI 211 Code Description Input / Output Section 212 Waveform Description Input / Output Section 213 Description Conversion Unit 214, 220 APIs 215 Records Section 216 Control data pattern generation unit 217 Control Unit 218 Calculation result storage unit 219 Communications Department 230 Control flow data (code description) 231 Control flow data (waveform description) 232 Signal Information 233 Bias Voltage Information 234 Execution command information 235 Constraint information 236 Control Data Format Information 237-bit compatibility information 241 User Programs 251 Control Data Patterns 252 Operation result 1301 Code Level Conversion Unit 1302 Code Constraint Consideration Section 1303 Data Pattern Conversion Unit 1310 Control Unit Level Code 1311 Constraint-Conscious Control Unit Level Code 1312 Control Data Pattern Information 1701 Concurrent Constraint Information 1702 Order constraint information 1703 Numerical constraint information 2200, 2201 Timing chart conversion unit
Claims
1. A control system for controlling a quantum computer, A computer comprising a processor, memory connected to the processor, and a network interface connected to the processor, It is connected to an analog control unit that generates control signals for controlling a qubit device having multiple qubits, It holds first setting information relating to setting parameters for controlling the qubit device, second setting information relating to the control of the analog control unit, and third setting information relating to the format of the control data pattern for generating the control signal. The aforementioned processor, It receives first control flow data that defines the control content of the qubit device, which is described in a waveform format that allows the user to visually understand the control content. The first control flow data is converted into second control flow data, which is written in code format and defines the same control content for the qubit device as defined in the first control flow data. Based on the first and second setting information, the second control flow data is converted into a third control flow data that defines the control content of the qubit device by the analog control unit. A control system characterized by generating a plurality of control data patterns from the third control flow data based on the third setting information.
2. A control system according to claim 1, The aforementioned processor, Upon receiving the second control flow data, A control system characterized by converting the second control flow data into the first control flow data and outputting it.
3. A control system according to claim 1, The first setting information includes signal information defining the setting parameters for the signal in the qubit device, and bias voltage information defining the setting parameters for the bias voltage in the qubit device. The second setting information includes execution command information that defines the commands to be executed by the analog control unit, and constraint information that defines the constraints on the control of the analog control unit. The aforementioned processor, Based on the signal information, the bias voltage information, and the execution command information, the second control flow data is converted into first intermediate control flow data consisting of a set of commands with a granularity that the analog control unit can execute. A control system characterized by converting the first intermediate control flow data into a third control flow data consisting of a set of commands that satisfy the constraints of the analog control unit and are optimized, based on the constraint information.
4. A control system according to claim 3, The control system is characterized in that the processor outputs the first intermediate control flow data and the third control flow data.
5. A control system according to claim 3, The control system is characterized in that the processor converts the first intermediate control flow data and the third control flow data into a timing chart and outputs it.
6. A control system according to claim 1, The aforementioned processor, Multiple control data patterns are transmitted to the analog control unit. A control system characterized by acquiring the calculation results of the qubit device from the analog control unit.
7. A control system according to claim 1, The control system is characterized in that the processor presents an interface for setting the first setting information, the second setting information, and the third setting information.
8. A method for controlling a quantum computer that is performed by a control system, The control system is The computer includes a processor, memory connected to the processor, and a network interface connected to the processor, It is connected to an analog control unit that generates control signals for controlling a qubit device having multiple qubits, It holds first setting information relating to setting parameters for controlling the qubit device, second setting information relating to the control of the analog control unit, and third setting information relating to the format of the control data pattern for generating the control signal. The control method for the quantum computer is: The first step involves the processor receiving first control flow data that is described in a waveform format that allows the user to visually understand the control content, and that defines the control content of the qubit device. The processor performs a second step of converting the first control flow data into second control flow data which is written in code format and defines the same control content for the qubit device as defined by the first control flow data, The third step is that the processor converts the second control flow data into third control flow data that defines the control content of the qubit device by the analog control unit, based on the first setting information and the second setting information. A method for controlling a quantum computer, characterized in that the processor generates a plurality of control data patterns from the third control flow data based on the third setting information.
9. A method for controlling a quantum computer according to claim 8, The processor receives the second control flow data, A method for controlling a quantum computer, characterized in that the processor converts the second control flow data into the first control flow data and outputs it.
10. A method for controlling a quantum computer according to claim 8, The first setting information includes signal information defining the setting parameters for the signal in the qubit device, and bias voltage information defining the setting parameters for the bias voltage in the qubit device. The second setting information includes execution command information that defines the commands to be executed by the analog control unit, and constraint information that defines the constraints on the control of the analog control unit. Step 3 above is, The processor converts the second control flow data into first intermediate control flow data consisting of a set of commands with a granularity that the analog control unit can execute, based on the signal information, the bias voltage information, and the execution command information. A method for controlling a quantum computer, characterized in that the processor converts the first intermediate control flow data into a third control flow data consisting of a set of optimized commands that satisfy the constraints of the analog control unit, based on the constraint information.
11. A method for controlling a quantum computer according to claim 10, A method for controlling a quantum computer, characterized in that the processor outputs the first intermediate control flow data and the third control flow data.
12. A method for controlling a quantum computer according to claim 10, A method for controlling a quantum computer, characterized in that the processor includes the step of converting the first intermediate control flow data and the third control flow data into a timing chart and outputting it.
13. A method for controlling a quantum computer according to claim 8, The processor transmits a plurality of control data patterns to the analog control unit. A method for controlling a quantum computer, characterized in that the processor obtains the calculation result of the qubit device from the analog control unit.
Citation Information
Patent Citations
Silicon electron spin type super parallel quantum computer
JP2021170198A
System and method for automatic real-time calibration of cubit chip
JP2022100226A
Concurrent results processing in a quantum control system
US20210357798A1
Systems and methods for unified computing on digital and quantum computers
WO2021118464A1