Let’s say you’re shopping for a new car. (Congratulations.) You head down to your town’s Auto Row and start browsing all the dealerships. There’s the Ford dealer; next door is the Toyota dealer. Across the street you see the BMW dealer, the Chevy dealer, the Kia/Hyundai dealer, and so on. They all make fine cars, and you spend some time at each place, kicking the tires and slamming the doors.
Then, down at the very end of the street, you notice something different. There, under the overpass, is a man living in a cardboard box, holding up a hand-made sign that says, “Dmitiri’s Cars.” He gestures you over.
Curious, but also slightly repelled, you come closer. His eyes brighten and he leans closer – a bit too close, perhaps – and tells you about an amazing new car that he and his friends have been developing. “It gets ten times better gas mileage than these things,” he says, gesturing to the better-known brands you’ve just been perusing. “Ten times!”
Seeing no such car nearby, you ask if you can take a test drive. Or maybe just see the car? To get an idea of what it looks like? “No,” says Dmitri, spitting into his handkerchief. “Production is behind schedule. We have no models to show. We have good simulation, though.” Leading you aside, he lifts the cover off a decrepit PlayStation, revealing some very nonstandard-looking wires, ROMs, and hardware hacks. “Here,” he says, thrusting a controller into your hands. “Take virtual test drive.”
As promised, the simulated car seems to get 10x better gas mileage than all the conventional cars you’ve just been evaluating. The PlayStation’s virtual gas gauge shows the imitation tank nearly full, and after hundreds of miles of pretend driving, it’s barely moved. Miraculous.
You starting thinking that this might be a genuine alternative to the “normal” cars up the road – cars that now start looking distinctly antiquated and old-school. This is the future, you decide. Maybe this Dmitri guy is really on to something.
“I make you good price, too,” Dmitri promises. “And fuel… eh… shouldn’t be problem.”
Sorry, what? What’s the deal with fuel? Why would he bother to say it’s not a problem?
“Ah, that side-effect of technical breakthrough,” Dmitri explains with a smile. “New car doesn’t use gasoline. This car runs on Pocari Sweat. No problem. We make deals with third-party suppliers real soon.” Until then, he explains, you’ll have to get all of your Pocari Sweat fuel directly through Dmitri, in the cardboard box under the overpass.
So, is this a deal-breaker for you? How much risk are you willing to take in exchange for a quantum leap in fuel-efficiency? On the one hand, Dmitri’s unusual vehicle seems to offer incredible benefits, at least in simulation. You’ll be miles ahead of your friends and neighbors in terms of efficiency, cost savings, and green credentials. Sure, the nuisance of buying special fuel from a single source might be an irritation, but no progress without pain, right? The trailblazers always have to put up with a bit of inconvenience. The Mayflower, the Conestoga wagons, and the Apollo 11 capsule probably weren’t very comfortable, either.
On the other hand, all those mainstream cars arrayed along Auto Row are so safe… so reliable… so well-engineered. They’re backed by huge multinational corporations with global dealer networks, experienced mechanics, and plentiful spare parts. And they use normal fuel that you can buy anywhere, at competitive prices. Your parents probably had a car just like that one over there, and when your neighbor brought home that new model from that company over there it looked so shiny in the driveway…
That’s the kind of dilemma facing microprocessor users, engineers, and programmers today. Do you go with the safe choice, or should you take a leap of faith and try something bold? The safe choices depend on your particular industry, product plans, budget, experience, and geography, but they probably include names like Intel, Microchip, Qualcomm, ARM, or Freescale. Like the mainstream automakers grouped along Auto Row, they all offer competitive, yet oddly similar, products. The differences are increasingly delegated to the details. All the basic stuff is solid. There isn’t a lemon in the lot.
But over on the horizon underneath that virtual overpass are a number of microprocessor startup companies developing completely new, and sometimes strange, new architectures. Some promise 10x better integer performance than the other guys. Some yield better power-efficiency (at least, in simulation). Some run circles around standard CPUs, DSPs, or FPGAs. Some might even do all of these.
What they have in common, however, is a complete dearth of software. You can’t develop a radically new processor and still have it run old x86, ARM, or 8051 code. (Well, you can, but it severely restricts your design freedom and generally defeats the purpose of a new architecture.) So you’ve got a classic chicken-and-egg problem: There’s no software for the new processor because it’s too radical and has zero market acceptance, but you can’t get traction in the market because there’s no software for it. What’s a genius/processor architect/entrepreneur to do?
Historically, what you did was spends millions of dollars subsidizing (read: bribing) third-party software developers to support your new CPU. Then, after about five years, you give up and go broke. That’s how it’s worked for the past 20 years or so. Time after time, processor companies spent huge sums developing a new architecture, and then they spent even huger sums trying to kick-start a software base for it. And we’re not talking just garage-bound startups, either. Intel, Freescale, DEC, HP, and many other big firms all saw their new CPU family trees cut off at the roots. Anybody want a compiler for an 88000? How about M-Core, i860, Clipper, Transputer, Itanium, or Prism? Designing a new processor is the easy part. Convincing people to write software for it is hard. Very hard, indeed.
So, as a designer, how much risk are you willing to take? How much better does a new, better, faster CPU have to be before it’s worth the effort to switch? The glib answer is that a 10x improvement is necessary before most engineers would be willing to jettison their old CPU family and start over with a new one. Yet we have examples that disprove that notion, both positive and negative. Plenty of designers have switched CPUs for far less than a 10x improvement. Such order-of-magnitude changes are exceedingly rare; if we all waited for 10x improvements in performance or power-efficiency, we’d never change processors at all. Conversely, those rare examples of processors that have delivered 10x improvements often languish, unable to find enough takers. Clearly there’s something more at work here than just the magic motion of the decimal point.
What will you tell Dmitri?