Historically, one of the larger bottlenecks to computing performance hasn't been processor speed; it has been getting data and instructions to and from the processor. Working with memory isn't only a performance bottleneck, as the multiple layers of caches and high-speed memory add significantly to a computer's power budget. Other systems, like the extremely power-efficient neuron, mix processing and memory in individual cells.

That has inspired some computer scientists to try to figure out if we could do the same. Resistance-based memory, like memristors and phase-change memory, operate based on physics that make them amenable to performing calculations, and a few proof-of-concept demonstrations have been done using them. But a team from IBM Zurich has now gone beyond proof of concept, and it has used an array of a million phase change memory bits as an analog computer, performing tests for temporal correlations on real-world weather data.

Memory as an analog computer

Phase change memory is based on materials that can take two different forms as a solid. When cooled slowly from a liquid state, they'll form a crystalline material that is a decent conductor of electricity. If cooled quickly, they form a glassy, disordered structure that's an insulator. Once set, the states remain stable, allowing it to provide long-term memory storage even in the absence of power.

To turn this material into useful memory, most of the focus has been on ensuring that the two different states are consistently distinguishable—that way, even as you shrink the device size, the two phases are always distinct enough that you never mistake a 1 for a 0. But the new IBM work relies on the possibility of creating mixed states, where partial heating turns some of the phase change material crystalline while leaving other parts in an insulating state. As they spend some time in their paper demonstrating, this effect is additive: repeated short bursts of heating, each individually too small to flip a bit, can add up and push the bit to be more conductive. That is the basis for performing calculations.

In this demonstration, the team was looking for correlations over time between different points in a large data set. But it is simplest to understand in terms of correlations between just two points. Do both points tend to be "on" (binary one) at the same time? To do that, a traditional processor looked at each data point, determined whether it was on or not at a specific point in time, and then determined if both of them were on at the same time. (While this was done using a regular processor, the authors note it is a simple and efficient calculation that could be performed by the ASIC that controls the phase change memory.)

If they were both on at the same time, a bit in the memory was given a small bit of heat, turning a tiny portion of it crystalline. That's not enough to get it to read as a 1, but it pushes it slightly in that direction. As the process is repeated for more time points, however, repeated correlations would cause additional heating, pushing the bit further and further toward conducting. The bit is no longer a binary on or off; instead, it is analog, allowing a spectrum of responses in between its conducting and insulating states.

Shut up and calculate

It sounds good in principle, but does it work? To find out, the research team put together a synthetic data set, where some points had a slight correlation over time (arranged as a grid, these correlations created a bitmap image of Alan Turing and Albert Einstein). Even though the correlation coefficient was 0.1, running the algorithm in memory efficiently identified most of the correlated points, achieving results similar to a traditional classifier implemented in software. There were, however, both false positives and false negatives.

Part of the problem is inherent in the physics of the phase change. While a few weak heatings won't flip a bit most of the time, in a few rare cases it will, simply because the heating/cooling process is subject to random variations. This variation is compounded by the fact that our manufacturing isn't good enough to ensure that every device is essentially identical to start with. As a result, the cutoff for "correlated" will always be a bit arbitrary, and a few bits will fall on the wrong side of it for their actual identity.

The authors also note that if you run the test for long enough, every bit will experience enough random heating to register as a false positive. So, while the image of Alan Turing became apparent at 1,300 tests—and clear by 10,000—if you ran the tests out to 100,000 time points, you would end up with a completely black screen due to spurious noise adding up.

To get around some of these issues, the team added some redundancy. In a test with real-world weather data, they ran it in parallel on four different phase change memory chips; correlations were then determined by a majority vote from the four chips. Again, the in-memory calculation worked about as well as a simple software algorithm, but it required almost no CPU time. With a large enough data set to sift through, the authors determined that the in-memory calculation would be 200 times faster than if it were performed on four state-of-the-art GPUs (ironically, because the GPU's memory interface becomes a bottleneck).

The authors note that a variety of other calculations, like factorization and matrix manipulations, can be performed using phase change memory arrays, meaning this isn't a one-trick pony. The primary limitation, in the end, may be with developing a sufficient market for phase change as memory. If it ends up being mass produced, then adapting it for calculations would probably be relatively simple. But phase change memory has been on the periphery of the market for nearly a decade now, and there's no clear indication that it will be taking off. Until that changes, using it for analog computing will be a niche within a niche.

Nature Communications, 2017. DOI: 10.1038/s41467-017-01481-9 (About DOIs).