Wednesday, December 14, 2011

#ALGORITHMS: "Mobile Device Design Gets Smarter"

Smarter mobile devices could soon be defined with rules rather than instructions, by virtue of a new paradigm for developing hardware and software.

Next spring, a smarter paradigm for designing mobile devices will debut at the Association for Computing Machinery’s 17th International Conference on Architectural Support for Programming Languages and Operating Systems. There, researchers at the Massachusetts Institute of Technology's (MIT's) Computer Science and Artificial Intelligence Laboratory (CSAIL) will unveil a language that describes a mobile device's functions as sets of rules instead of as instructions. This will allow the functions to be optimally partitioned into hardware and software on an ad hoc basis.
"What we’re trying to give people is a language where they can describe the algorithm once and then play around with how the algorithm is partitioned," said Myron King, a doctoral candidate in the lab of MIT professor Arvind (who uses just one name). "It's precisely this way of thinking about computation that allows you to generate both hardware and software." (King and Arvind also collaborated with Nirav Dave, now a computer scientist at SRI International.)

BlueSpec’s Synthesizable Virtual Platform (SVP) allows software for a new system-on-chip to be developed and tested before the hardware is actually built.
Smarter designs can result from thinking about computations as sets of rules that describe a function, rather than as instructions defining modules of hardware and software, according to the MIT researchers. By creating a language in which the functions of a new mobile device can be described, and then adjusting which will be performed by hardware and which by software, the system can be optimized for performance, battery savings, or low cost--depending on the budget and market to be addressed and all without building a single physical prototype.
Today, designers of a new mobile device must trust the expertise of engineers in deciding which functions need to be performed in hardware and which in software. In this approach, there are few opportunities to change that partition during the development process even if the prototype shows that too much reliance on software is slowing the device down or too much reliance on hardware is running down the battery. Often any repartitioning has to wait until the next generation device, since changes in prototypes are often too costly and time-consuming to justify.
MIT claims that by switching to its description language, all the functions to be performed by the device can be defined ahead of time, allowing the engineers to experiment with different partitions into hardware and software. This allows them to use analytics to compare performance, energy consumption and cost before deciding on an optimized system to implement as a prototype.
Arvind previously invented a language for defining hardware functions, called BlueSpec, for which he founded a commercial company in 2003 called BlueSpec. The new software system is an extension of BlueSpec, but created by Arvind, Kind and Dave at MIT to describe functions without committing to whether they are hardware or software. Once specified by the designer, the extended BlueSpec compiler outputs code for each--Verilog-code that specifies the hardware chips along with C-code that specifies the software algorithms. The extended BlueSpec compiler also alerts designers to any functions that cannot be performed within the stated constraints, and marries general-purpose processors with any application-specific integrated circuits (ASICs) needed to realize a design.
Further Reading