Traditional hardware design is a top-down process. If you need a CPU, you choose one from the various manufacturers’ catalogues and then build your device around its specifications. If a given part doesn’t suit your needs perfectly, you can sometimes work around its limitations in software, but otherwise you’re stuck. Only the largest electronics vendors can afford to dabble with custom components.
But what if chip design could work more like open source software? What if even smaller customers could have input into the components that power their devices? If a whole community of engineers could work together to tweak and adjust a processor design, a single chip might grow into a family of parts that serves the needs of a variety of unique niches.
This is what Sun Microsystems hopes for its 64-bit, multicore, multithreaded UltraSparc T1 processor, also known by the code name Niagara. In March, Sun released the full source code of the T1 under the Gnu GPL (General Public Licence) as part of the OpenSparc Project. As a result, independent developers can not only contribute suggestions and fixes to Sun’s designs, but they can also create their own, entirely new versions of the T1, without paying Sun any licence fees.
When I first heard about OpenSparc I thought it was a publicity stunt. So what if the design is open source? Compiling software on your Linux workstation is one thing, but how many basement tinkerers have the equipment to fabricate their own chips? And even if they could, who’d want to compete with Sun?
As it turns out, however, open source silicon isn’t as crazy as it sounds. Remember, not even Sun has chip fabrication facilities of its own; it outsources Sparc to Fujitsu and others. And with the advent of service providers such as MOSIS (Metal Oxide Semiconductor Implementation Service), independent developers can produce short runs of custom chips very affordably.
In the old days, Sun might have released the plans to the OpenSparc chip as a giant schematic diagram. You’d need a couple walls to view it all. Today, however, it can publish the design as code written in a special language called Verilog.
Using simulation software, independent engineers can model the Verilog code to give them a higher-level view of the final design that they can work with and explore. They need fabricate nothing until they reach their final prototype design.
Sun isn’t alone in pursuing the idea of open source silicon. For example, a website called Opencores.org hosts open source core designs that can be incorporated into a variety of chips. The OpenSparc T1 is the most ambitious open source hardware project to date, however, being the only one to offer a complete, modern microprocessor design for community development.
What can the community do with such a resource? Well, for one thing, collaborative development can potentially isolate and eliminate flaws in the processor design, such as the notorious floating-point division bug that plagued the early Pentiums. But the most valuable thing about OpenSparc is that it allows third parties to create specialised variants of the T1 that serve specific niche applications.
The first such product appeared in early September, from a company called Simply RISC. The S1 Core processor is based on Sun’s T1 but with just one processor core instead of the T1’s eight. Where the T1 is ideal for high-end servers, the S1 Core is targeted at embedded systems. And it, too, is open source.
These are developments the industry should watch closely. As hardware design increasingly moves towards specialised chips for a variety of purposes, such as handhelds, routers and video-game consoles, open source silicon could be an idea whose time has come. Broader participation in the component design process can welcome new competitors into the market and lower the barrier to entry for innovative ideas. Customers can only benefit.