“Processors are overdesigned for most applications," says Rakesh Kumar, an associate professor of electrical and computer engineering at the University of Illinois. It's a well-known and necessary truth: In order to have programmability and flexibility, there's simply going to be more stuff on a processor than any one application will use. That's especially true of the type of ultralow-power microcontrollers that drive the newest embedded computing platforms such as wearables and Internet of Things sensors. These are often running one fairly simple application and nothing else (not even an operating system), meaning that a large fraction of the circuits on a chip never, ever see a single bit of data.
Kumar, University of Minnesota assistant professor John Sartori (formerly a student of Kumar's), and their students decided to do something about all that waste. Their solution is a method that starts by looking at the design of a general-purpose microcontroller. They came up with a rapid way of identifying which individual logic gates are never engaged for the application it's going to run. They then strip away all those excess gates. The result is what Kumar calls a “bespoke processor." It's a physically smaller, less-complex version of the original microcontroller, designed to perform only the application needed. Kumar and Sartori detailed the bespoke processor project in June at the 44th International Symposium on Computer Architecture, in Toronto.
“Our approach was to figure out all the hardware that an application is guaranteed not to use, irrespective of the input," says Kumar. What's left is “a union, or superset, of all possible paths that data can take. Then we take away the hardware that's not touched."
Starting with an openMSP430 microcontroller, they produced bespoke designs meant to perform applications such as the fast Fourier transform, autocorrelation, and interpolation filtering. These designs had fewer than half of the logic gates that were part of the original microcontroller design. In fact, none of the 15 common microcontroller apps they studied needed more than 60 percent of the gates. On average, the resulting chips were 62 percent smaller and consumed 50 percent less power. By exploiting the timing savings from signals traveling a shorter distance, the average power savings jumped to 65 percent.
In an analysis of the logic gates used in two applications—intFilt and Scrambled intFilt—on an openMSP430 microcontroller, the gray dots are gates not used by either application. Red dots are gates unused only by Scrambled intFilt.Image: University of Minnesota and University of Illinois
“It's surprising," Sartori says. “Most people think that in such a small, simple processor, pretty much everything gets used all the time; but for a given application, there's actually a lot of logic that can be completely eliminated, and the software still works perfectly."
The method also works if you want the processor to perform two or more applications; it can even handle an operating system plus an application. When run by itself, the real-time OS they tested, FreeRTOS, left 57 percent of the gates completely untouched. Though no pairing of FreeRTOS with any of the 15 apps left fewer than 27 percent of the gates unused, Kumar points out that these applications typically run “bare metal"—no operating system needed.
Why not just order up an ASIC (application-specific integrated circuit)? In a word: cost. Embedded microcontrollers are used for such low-volume, low-profit-margin purposes that it would cost too much to do the ground-up design and testing needed for an ASIC, says Kumar. By starting with a standard microcontroller design, the process is simplified and cheaper.
It's like “a black box," says Kumar. “Input the app, and it outputs the processor design."
It might not be that simple, says Tom Hackenberg, principal analyst for embedded processors at market research firm IHS. Testing, validation, and other costs encountered on the road to putting out a new application-specific chip will still remain. If the technique can't reduce the cost of the design process enough, cheap microcontrollers—which average about US $1 but can be as little as 25 cents—will still be the winning solution.
Still, if the concept “can do what they're saying it can do, then it might be a much more simple process to design a very application-specific processor," says Hackenberg.
Research engineers at ARM, in Cambridge, England, are hoping it is that simple. They've been working hard on a project called Plastic ARM—an attempt to construct 1-cent disposable microcontrollers on plastic using printed electronics. Their first attempt occupied 7.5 square centimeters. It took a full year of hard design work to shrink it below their 1 cm2 target and to customize it for their application, says the project's leader, James Myers. This summer, with the help of Hari Cherupalli one of Sartori's students, they plan to use the bespoke processor technique to see if they can achieve the same or better results with a fraction of the effort.
“With printed electronics, there should be a lower barrier to entry" than to silicon, he says. “There should be more opportunity for application-specific designs, but not if the design costs stay the same. What I want is to reduce the design cost as well as the fabrication cost of these things. If you can automatically generate a bespoke version of the processor…then that's a huge benefit."
A version of this article appears in our Tech Talk blog.