Engineers Invent New Way to Speed Up Computer Memory
Memory modules using Intel’s 3D XPoint technology are arriving, and engineers at NC State have already figured out how to speed them up with a new method.
July 6, 2018 Charles Hall
New memory modules pioneered by Intel and Micron Technology using their new 3D XPoint technology is arriving, with significant advantages over the traditional DRAM chips found in conventional computers. Unlike those DRAM chips, 3D XPoint is non-volatile and recovers nearly instantly from power loss, meaning its data isn’t lost when the computer loses power.
Additionally, “this kind of memory is cheaper and denser than DRAM,” says Yan Solihin, professor of electrical and computer engineering at North Carolina State University. “So people are predicting—including myself—that eventually DRAM will gradually be replaced by this memory.”
However, the new technology has its drawbacks—it uses more energy and takes longer to write data than traditional DRAM. But this is where research by Solihin, associate professor James Tuck, and doctoral candidate Mohammad Alshboul comes into play. In a paper presented at the 45th International Symposium on Computer Architecture in June, they showed how they’d managed to significantly reduce the amount of writing needed, thereby speeding up the memory.
Storing data that’s on a computer’s memory on a solid-state (SSD) or hard disk drive—making it persistent—involves safeguards to avoid data corruption in the event of a crash. The data is copied from the memory to the processor’s cache, and then when that process is complete, the data is sent on to the non-volatile memory (traditionally the hard disk or SSD). However, in the event of a power loss, some of that data may be lost in transit. To prevent that, “eager persistency” is used, at the expense of a nine percent increase in the transaction time. It also involves about 21 percent more writing to the non-volatile memory—a problem with SSDs with limited writing lifespans.
The method proposed by the team is a significant shift—named “lazy persistency“—that leverages the thinking that normal operation should be considered the norm and crashes the exception. Therefore, rather than increasing the amount of work for each everyday operation, the extra work is put in to recover from a crash instead. “Crashes are rare”, says Solihin, “so we want to make the common case really fast.”
Whereas eager persistency uses the natural eviction of data from the cache to the main memory as tasks complete in addition to a high rate of artificial eviction that safeguards against data loss, the team’s lazy persistency allows the natural cycle to simply work without additional effort. Instead, they add a checksum that, in the event of a crash, gets compared by the processor to determine if the data is matched on the non-volatile memory. If the number doesn’t match, that data is recopied.
“The recovery process is more complex, but the common case execution becomes a lot faster,” explains Solihin. Only one percent additional effort is added to the process—as opposed to the traditional nine percent—and uses only three percent more writes instead of 21 percent.