Saturday, February 18, 2006

Future of Classical Computing HW: Magnetic Quantum Cellular Automata

Geek Press points to a Wired article about some research on magnetic quantum dot cellular automata. This is based on a paper in Science by Imre, Porod and others from Notre Dame, and an associated perspective by Cowburn.

The research is fantastic. But I dislike Wired's characterization of it. Let's look at the science first. What they have done is used quantum effects to build classical logic; they are not using superposition or entanglement to run "quantum algorithms" like Shor's factoring algorithm. They have created nanometer-scale magnets which can be arranged so that they form a quantum cellular automaton (QCA). The magnets are a nickel/iron alloy, patterned using standard lithography on a silicon substrate. Set up properly, this QCA can perform a majority gate of three inputs. If two or more inputs are one, the output is zero, otherwise, it's one. This is a useful primitive, both directly (for e.g. calculating carry chains in adders) and because it trivially transforms to NAND or NOR. Similar work was done by Cowburn et al. a few years ago; the difference is that they used charge, whereas this work is spin (magnetism). The new work has two major advantages: it can be run at room temperature, and it can be non-volatile. They estimate that, running at 100MHz switching rate, 10^10 gates would dissipate 100milliwatts.

The Wired article described this as important for its nonvolatility (true), density (false), speed (false) and lack of wires (false). The technology has some things in common with FeRAM, and a good, low-power, dense, room-temperature, random-access, non-volatile memory will be a huge boon. But fast it is not, in its current form. 100MHz is not an especially quick switching speed, as Cowburn noted. As to density, as long as the structures are lithographically defined, they are not inherently dramatically better than normal chips (bits on magnetic tape or disk, in contrast, are much smaller than individual transistors).

More importantly, the lack of wires that Wired seems to like actually creates a problem: how do you get information from one part of a chip to another? Well, you have to create a chain of automata that form a switching channel, clocking data from place to place down the chain. This is going to be very slow, compared to standard electrical signal propagation in a wire. It may also be wider, I'm not sure, and space for wires is one of the biggest problems we have in chip design today.

But there are interesting possibilities in combining this with normal, charge-based logic. Something similar to FeRAM definitely has possibilities. One thing suggested is that you can put some processing with the data. This idea is not new; the Berkeley iRAM project has been pushing it for a decade or so. The success or failure of MQCA, in my opinion, does not hinge on the success or failure of iRAM, but might work well with it.

In summary: 1) this is fantastic work, and might change the way we build chips and ultimately systems; 2) Wired doesn't quite understand why it's fantastic; 3) I need to think about this more before I understand how to best take advantage of it; and 4) there are probably others with better ideas than me...

No comments: