The Michigan researchers wrote software that automatically specifies the electrical input to chips being tested and analyzes their output to find problem areas. Ideally, engineers would want to know the output of each transistor on a chip. But consumer chips will soon have more than a billion transistors, which will make such precise testing far too time consuming, explains Bertacco. So the Michigan algorithm tests a number of inputs across a large portion of the chip. Based on the output errors, it knows which part of the chip to concentrate on, “narrowing down a search to a few promising candidate bugs,” says Bertacco. In a similar manner, the software identifies ways to fix the bugs, running through a series of simulations to find a design variation that offers the fastest and most cost-effective solution.
One of the big advantages of the Michigan researchers’ approach, says Rutenbar, is that their software can sometimes come up with counterintuitive solutions. An engineer, he says, might see that the logical way to fix a bug is to rewire a number of circuits. But the software can tell when flipping a few wires will get the same result. “When humans look at it, it’s not at all obvious,” Rutenbar says.
In case studies, the researchers showed that their software can automatically repair about 70 percent of major silicon bugs, and they claim that they could reduce the amount of time required to find a particular bug from weeks to days.
Intel is keeping an eye on the work, as it is always looking for better ways to improve the chip-making process. Debugging silicon is a “serious problem,” says Shekhar Borkar, an Intel research fellow. He says that Intel uses “the same kind of techniques” that the Michigan researchers do, “but maybe in a different form.” Borkar adds that “there are some advances in the [Michigan] paper.” He says that the Michigan research is a good start to solving the problem but still needs to be proved outside the lab.