Global Sources
EE Times-India
EE Times-India > EDA/IP

MIT study shows how to program unreliable chips

Posted: 07 Nov 2013     Print Version  Bookmark and Share

Keywords:MIT  transistor  Rely  compiler  programming 

With the looming challenge of unreliable chips, a research group at the Massachusetts Institute of Technology's Computer Science and Artificial Intelligence Laboratory has developed a programming framework that enables software developers to specify when errors may be tolerable. According to them, the system can calculate the probability that the software will perform as it is intended. The language lets coders reason about the trade-off between fidelity of execution and power or time savings in the computers of the future.

As transistors get smaller, they also become less reliable. So far, computer-chip designers have been able to work around that problem, but in the future, it could mean that computers stop improving at the rate we've come to expect.

"If the hardware really is going to stop working, this is a pretty big deal for computer science," noted Martin Rinard, a professor in the department of electrical engineering and computer science, MIT. "Rather than making it a problem, we'd like to make it an opportunity. What we have here is a system that lets you reason about the effect of this potential unreliability on your program."

Last week, two graduate students in Rinard's group, Michael Carbin and Sasa Misailovic, presented the system at the Association for Computing Machinery's Object-Oriented Programming, Systems, Languages and Applications conference, where their paper, co-authored with Rinard, won one a best-paper award.

The researchers' system, which they've dubbed Rely, begins with a specification of the hardware on which a program is intended to run. That specification includes the expected failure rates of individual low-level instructions such as the addition, multiplication, or comparison of two values. In its current version, Rely assumes that the hardware also has a failure-free mode of operation—one that might require slower execution or higher power consumption.

A developer who thinks that a particular program instruction can tolerate a little error simply adds a period—a "dot," in programmers' parlance—to the appropriate line of code. So the instruction "total = total + new_value" becomes "total = total +. new_value." Where Rely encounters that telltale dot, it knows to evaluate the program's execution using the failure rates in the specification. Otherwise, it assumes that the instruction needs to be executed properly.

Compilers—applications that convert instructions written in high-level programming languages such as C or Java into low-level instructions intelligible to computers—typically produce what's called an "intermediate representation," a generic low-level program description that can be straightforwardly mapped onto the instruction set specific to any given chip. Rely simply steps through the intermediate representation, folding the probability that each instruction will yield the right answer into an estimation of the overall variability of the program's output.

1 • 2 Next Page Last Page

Comment on "MIT study shows how to program unrel..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top