For all the progress that’s been made in open-source technology, there’s one area that hasn’t seen the same growth: hardware. For decades software has been updated and refined, with millions of programmers making breakthroughs that then get adopted halfway across the world. Meanwhile, the open-hardware community has existed for years but made minimal in-roads.
According to MIT professor Arvind, the reason we should care is because of security. With the recent discovery of the Meltdown and Spectre vulnerabilities, it’s never been easier for hackers to break into our microprocessors to access data.
“Such bugs have demonstrated the need to rethink hardware design and enable more engineers to develop methods for developing more secure processors,” says Arvind.
Arvind’s team at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) has recently developed a new approach that aims to make processor design much smoother.
Dubbed “composable modular design” (CMD), their method allows users to change a few parts of a design without having to understand any of the other ones - all while still keeping the core system intact.
“If one part of the design is changed but still does what it’s supposed to do, our methodology enables the whole design to continue to work,” says Arvind. “We’re hopeful that this sort of approach could allow future generations of engineers to refine microprocessor designs in more dynamic ways.”
The researchers refer to the different parts of a processor as “modules”, which can be thought of as the hardware equivalent of “objects” in object-oriented languages like C++. These modules interact with each other according to a particular set of rules, with individual modules combining to become so-called “parent” modules.
One rule is that a module can only be acted on if it is ready; another is that, if there’s a parent module designed to update the state of two other modules, either both modules will be updated, or neither will. (This is called an “atomic action.”)
“It’s something of a radical idea to think of hardware as a bunch of modules communicating via these atomic actions instead of traditional physical wire connections,” says Arvind. “On top of that, we are saying that you can’t use a method to update various modules unless they’re ready, which is a concept that basically doesn’t exist in software.”
Arvind co-wrote a new paper about the project with lead author Sizhuo Zhang, a PhD student at CSAIL. Their co-authors include graduate students Andrew Wright and Thomas Bourgeat. The team presented their findings this week at the annual IEEE/ACM International Symposium on Microarchitecture (MICRO) in Fukuoka City, Japan.
Open-source hardware is a challenge because of a range of factors, from intellectual property barriers to the tangible difficulties of physical producing things like microprocessors. Even the 2010 release of the open-source Reduced Instruction Set Computer (RISC-V) chip hasn’t yielded the kinds of growth that many in the community would have hoped for.
“With billions of transistors and complicated architectures, processors have traditionally been very difficult to modify,” Zhang says. ‘They’re like swiss watches - you change one part, and the whole thing breaks down.”
The team’s hope is that using a system like CMD in conjunction with open-source designs like RISC-V could allow designers to iterate on chips more nimbly, especially with respect to designs that will have more robust security guarantees.