Can you do quantum computing in a von neuman architecture? If not, why? What is the constraint? If you control a qbit, can a quantum computer use the von neuman architecture?
Thanks.
Theoretical Computer Science Stack Exchange is a question and answer site for theoretical computer scientists and researchers in related fields. It only takes a minute to sign up.
Sign up to join this communityCan you do quantum computing in a von neuman architecture? If not, why? What is the constraint? If you control a qbit, can a quantum computer use the von neuman architecture?
Thanks.
What do you mean by von Neumann architecture?
I'll use the Wikipedia definition, and say that it's a computer which keeps its program and its data in the same random-access memory. This works well as a theoretical model of a quantum computer, but there are severe drawbacks to implementing such a device. In particular, for a quantum computer, the data has to be quantum. If the data and program are stored in the same memory device, this would imply that the program has to be quantum, as well. So the computer would then have to be able to implement a superposition of instructions in its instruction set. This is orders of magnitude more difficult experimentally than just having the memory in superposition.
In fact, even indirect memory retrieval, including RAM, pointers, and so forth, appears to be quite difficult to implement experimentally.
This has resulted in the default model of a quantum computer being the uniform quantum circuit model, which is both easier to imagine implementing experimentally and tractable to deal with theoretically from a TCS perspective. The circuit model is able to simulate the von Neumann architecture with only a polynomial slowdown, so quantum complexity classes are not changed by this change of model.
There is a recent article on implementing a quantum von Neumann architecture. They do this via superconducting qubits, of course the implementation is very small, with only 7 quantum parts: two superconducting qubits, a quantum bus, two quantum memories, and two zeroing registers. This allows their quantum CPU to perform one-, two-, and three-qubit gates on qubits, and the memory allows (data) qubits to be written, read out, and zeroed. As is mentioned in Peter Shor's answer, implementing a quantum superposition of gates is very difficult, and so the program is stored classically.
There is a Nielsen and Chuang result about programmable quantum gate arrays due to that states of program should be orthogonal (if it is deterministic case, but stochastic case is other long story). So you may store both program and data in the same place, but formally the program is “quasi-classical,” because you should not use superpositions (despite the fact, that you could do it, in principle). I think it better should be called a “modified Harvard” architecture, despite I myself called that von Neumann architecture of quantum computer sometimes.
The Von Neumann architecture relies heavily on memory. One of the biggest challenge in implementation of qubits being coherence time, that is, the time for which a qubit can maintain its state before being flipped, which it is very short. Also, every operation done in a quantum computer has to be reversible, this is not the case in classical computing architectures.
Most of the quantum algorithms designed thus far are ad hoc. There is not yet a universal quantum computer, to which you give code and it executes it as in everyday computers. From a quantum algorithm, we can design a circuit that implements it, which can even depend on the size of the instance of the problem to be solved (i.e. you could have to initialize log(n) qubit registers for a problem of size n). This most likely implies that there will always be classical computers that will be required to run quantum computers as a subroutine.