Quantum Computer Architecture
The architecture of a computer is the arrangement of its parts: how many subsystems does it have, what does each of the subsystems do, how do the various parts talk to each other?
This is similar to the architecture of a building: what type of rooms does it have, how big is each room, where are they located, how are they connected together? To a certain extent, the architecture of a computer depends on the technology you’re going to use to build it, just as in with a building, the architecture varies depending on whether it is brick, wood, concrete or steel. And just like the architecture of a building, the architecture of a computer is judged by how useful it is for your purpose.
A quantum computer has both classical and quantum parts. The program is (at least for the moment) entirely classical, stored in a classical controller. A quantum algorithm uses both classical and quantum data.
One way to look at the overall system is to treat the quantum part as a coprocessor to a classical system. Like the GPU (graphics processing unit) in your desktop or laptop computer, a quantum computer is used to perform specific tasks in the context of a larger program.
Fig.1. The basic model of quantum computer architecture
Last week, we saw that a quantum computer’s memory is called the quantum register. It holds our quantum data for the algorithm. For most types of quantum hardware, this register sits still, and the quantum operations are executed on the quantum data where it sits. Some types of quantum computers move individual atoms around, but not far, so we can still think in terms of a register being in a specific place; the important exception to this is computers that use photons for qubits, since the photons naturally fly at the speed of light.
Of course, all interesting quantum algorithms require more than one variable. The quantum register can be made to hold several data values by subdividing it into several registers or sub-registers.
Classical computers generally have several types of memory, such as registers for holding small amounts of data that is being actively used, and main memory (RAM) for larger amounts of data being kept around for later use. Most proposed quantum computer architectures do not make a distinction between the register(s) and a more passive memory equivalent to a classical computer’s RAM.
Although we talk in terms of “quantum gates”, like classical logic gates like AND and OR, it is better to think of quantum gates as instructions in a classical computer.
The classical controller holds the program, and instructs the devices controlling each qubit what to do at every step. Depending on the type of hardware, the individual devices may adjust a voltage, generate a burst of microwave radiation, or aim a laser. These very low-level details will be hidden by the system so that programmers can develop applications using the CNOT, Hadamard and other gates we discussed previously.
Generally, the sequence of gates is nearly fixed; sometimes in programs we have to apply a gate based on the outcome of some measurement. This happens when we are executing error correction, and also because some gates effectively execute different operations, depending on the result of a measurement.
You may recall that we said that quantum computers are not good at problems involving big data, in part because input/output of data is difficult. The same controllers that execute gates execute measurement operations for us; depending on the technology, sometimes those operations may be either fast or slow compared to gate operations. Input can involve initializing a qubit (which is slow in many technologies) then applying a gate to create the proper value.
Even with the advantages in complexity that we have emphasized, the performance of the quantum computer still matters: the “clock” speed (how fast we can execute each operation) and how efficient it is to move quantum data around inside the quantum computer combine with the structure of the quantum algorithm to determine how quickly we can solve an individual problem.
It is common to read in popular media articles, and even in the technical literature, that quantum computers will be amazingly fast. For example, one recent article said that a problem that would take three years on a classical computer would take one second on a quantum computer. There are specific cases where that is likely to be true, but it is not the case that all problems will be solvable a hundred million times faster on a quantum computer!
We will talk in detail about this when we see how to put Shor’s algorithm together.
© Keio University