Preface – This post is part of the Quantum Computing series.
Table of Contents
In the previous module, we discussed some of the most important concepts in Quantum Mechanics and how they are being utilized to design a functional Quantum Computer. In this module, we will discuss the basic architecture of a Quantum Computer.
The architecture of a Quantum Computer
Image Source: Fu, Xiang et al. “A heterogeneous quantum computer architecture.” Proceedings of the ACM International Conference on Computing Frontiers (2016): n. pag.
Layers of Quantum Computer
As shown in the figure above, there are total of seven layers that can be divided into five main categories as follows:
The two bottom-most layers implement the main hardware of the Quantum Computer. The bottom-most layer is the Quantum Chip which contains the actual arrangement of qubits. Right above the quantum chip, there exists a Quantum-Classical Interface. The primary function of the Quantum Classical Interface is to make the measurement. Classical bits are required to make measurements on a qubit.
A compiler is mainly a translator. It translates a high-level language program into the corresponding machine code. Quantum Computers also need Compilers to translate high-level instructions into corresponding low-level instructions that can be executed on the hardware level.
The Compiler block shown in the figure consists of two main parts: a Conventional Host Compiler and a Quantum Accelerator Compiler.
The Conventional Host Compiler compiles the classical logic and the Quantum Accelerator Compiler produces the quantum circuits. The quantum compiler will perform quantum gate decomposition, reversible circuit design, and circuit mapping and translates the logical quantum operations into a series of physical operations.
The third dimension in the figure represents the error correction schemes that drive the logical to the physical transformation of the quantum instructions.
3. Quantum Instruction Set Architecture (QIST)
QIST is the main divide between Quantum Hardware and Software. The Quantum Instruction set provides the programmer with the basic logical instruction set to facilitate the designing of quantum algorithms. The Instruction set also allows the programmer to go with various encoding schemes and provides error correction functionality.
The block right below QIST is divided into two parts:
QEC refers to Quantum Error Correction. Quantum Computers are error-prone, so some error correction schemes must be implemented to make sure the programs on the computers give accurate results. The First Error Correction Codes for Quantum Computers was given by Peter Shor called Shor codes. Since then, various error-correcting codes have been developed making QED an active area of research in the Quantum Computing Community.
QEX refers to Quantum Execution. QEX executes the instructions generated by the Compiler.
The Programming Paradigm and languages block represent the high-level interface used by the programmer or algorithm designer to program a Quantum Computer. Some famous programming frameworks to program Quantum Computers are Qiskit, Cirq, Q#, and many more.
5. Quantum Algorithm
Quantum Algorithm is the topmost layer in the Quantum Architecture Stack. Quantum Algorithms are designed by exploiting the Quantum-Mechanical properties of the hardware layers. The high-level programming languages and compilers must be developed such that the algorithms can easily exploit the underlying quantum hardware.
Information Source: Fu, Xiang et al. “A heterogeneous quantum computer architecture.” Proceedings of the ACM International Conference on Computing Frontiers (2016): n. pag.