Do you really want what’s good for you?
As engineers, we’re trained to find the best solution to a set of problems. Granted, the definition of “best” can be a bit loose. Sometimes it’s the cheapest way to get the job done. Other times it’s the product you can conjure up the most quickly. And, on rare occasions, it’s actually the one with the best performance, lowest power consumption, and highest reliability. But whatever the parameters, we’re predisposed to find the optimal solution to a given set of constraints.
So why do we make bad decisions on purpose?
Take x86 microprocessors—please. As everybody knows, today’s x86 chips are the result of a slow, lurching evolutionary process that began in 1971 with the 4004 chip. That clunky, low-end processor architecture lives on today and is still one of the best-selling processors in the world.
At the opposite end of the spectrum, we have user-configurable processors from Tensilica, ARC (now part of Synopsys), IMEC, and others. These are all CPU designs that you, as a mere mortal, can hand-tune for your application. Then there are the special-purpose processor companies that make chips that have been designed from the ground up to kick butt at encryption, or network-packet inspection, or motor control, or any of a dozen other hard problems.
You’d think that the specialty processors would flourish and that general-purpose CPUs would be circling the drain by now. But that hasn’t happened. In fact, we see just the opposite: x86 chips ship in record numbers, ARM is growing by leaps and bounds, MIPS and PowerPC are both doing well, and all the old 8-bit and 16-bit chip families are still alive and kicking.
What’s up with that? Why are we buying the old chips instead of the good chips?
The success of each CPU family seems to be inversely proportional to its flexibility. The x86 has remained rock hard over the ages. Every ARM core is exactly like every other one since the dawn of the Acorn RISC Machine. MIPS chips and PowerPC processors can still run their old binaries. And heaven knows the 8051, 6805, and other old microcontrollers haven’t advanced in millennia.
In contrast, the specialty and configurable processors move all over the place; that’s what they do. They zig and they zag, chasing the newest application bottlenecks and the latest thinking in computer design. They’re always up to date. In a word, they’re optimized. In another word, they’re unpopular. Why is that?
You’d think that, as engineers, we’d always opt for the best technical solution to any problem. Even when cost is the controlling variable, specialty processors often are much cheaper than the generic alternatives. They’re more power-efficient, too. In fact, they’re better in every conceivable way, and yet we generally opt for the option-less alternative. We follow the herd. We stick to the middle of the road.
There are several possible reasons for this. One is that we’re just unimaginative. Or that we don’t have the time to evaluate all the alternatives so we pick from among the few options that we know about. Or that we prefer to reuse familiar hardware, thereby perpetuating older architectures. Maybe we don’t believe the claims of the upstart specialty-processor companies. Perhaps the software guys in the other building don’t want to learn a new compiler. Maybe our pointy-haired boss has dictated an old-fashioned processor because his retirement plan is tied up in their stock.
Whatever the cause(s), we industriously avoid the “best” hardware for the job. I think part of the reason is control. We like to control some—but not all—of our own designs. Maybe it’s the application software; maybe it’s the peripheral hardware; maybe it’s the user interface. But there are some parts of every design that we readily abandon to outsiders. Sometimes we just feel better when someone else takes control.
The constraint-versus-control dilemma depends on the person or the circumstances. Infants like to be tightly wrapped in their blankets, and they’ll startle or cry if given too much room to move. Teenagers want just the opposite. In political terms, the relative merits of individual freedom can spark fierce debate—or worse. Citizens of tightly controlled states (think North Korea) believe strongly that their system of government is the best. Residents of relatively loosely controlled nations think the same thing. There’s clearly no single answer for everyone.
Working engineers (that is, those with a paying job) know that a successful design is all about tradeoffs, and that you can’t obsess over every decision all the time. “Good enough” is what separates engineering from science and academia. An expeditious choice of processor is the first step toward a speedy product completion. Relying on the rock of an old processor can be better than getting mired in the soft place of a configurable one. Abandon control of the CPU to someone else and concentrate on innovating elsewhere. It’s not always the “best” solution, nor the most glamorous, but it’s often the most expedient and successful. And that’s never a bad decision.