Reconfigurable systems will surge to prominence in the next several years, propelled by a change in system design requirements from cost performance to cost-performance-per-watt. The transition from microprocessor-based implementation to reconfigurable systems will be difficult because it must overcome a thirty-year stall in the development of design methods. Here’s the story.
Before the invention of the computer, engineers were responsible for both structure and procedure in systems design. That is, the engineer selected and built the hardware resources (adders, shifters, registers, etc.) and designed the state sequencer that made the system do what it was supposed to do. Circuit-based implementation employs static hardware and static algorithms.
Invention of the computer was a breakthrough in problem solving: it separated the algorithm from the hardware. The computer provided the hardware; the problem solver provided the algorithm in the form of a program. Computer-based implementation employs static hardware and dynamic algorithms.
Ten years of integrated-circuit improvement led to the commercial introduction of the microprocessor in 1971. The microprocessor brought the computer’s problem-solving methods to systems design. The general-purpose microprocessor suited a broad range of applications, ensuring high-volume production and its consequences of lower cost and of higher performance. The microprocessor provided hardware resources and a state sequencer; the engineer provided the algorithm in the form of a program. Microprocessor-based systems interpret instructions and mimic the behavior of what would otherwise be custom logic. Microprocessor-based implementations had adequate performance and low cost—a winning combination for high-volume, consumer-oriented embedded systems. Instruction-based implementations raised the level of abstraction from logic design to programming, trading system efficiency for engineering productivity. The pool of system designers increased to include programmers. The combination helped grow the market for embedded microprocessors to billions of units a year.
But times are changing. The world is splitting into tethered and untethered systems. Tethered systems get their power from wall outlets; untethered systems carry their power. Increased emphasis on untethered systems requires flexibility to meet evolving requirements and it changes the design goal from cost performance to cost-performance-per-watt.
Application-specific integrated circuits (ASICs) and application-specific standard products (ASSPs) are too inflexible and too expensive to meet the challenges of untethered systems. Microprocessor and digital signal processors (DSPs) don’t have enough absolute performance and they use too much energy. Programmable logic devices (PLDs) offer the flexibility ASICs and ASSPs lack and they offer the performance of direct hardware implementation, but today’s PLDs have too much overhead in personalization memory, they are too slow, and they use too much energy. That leaves no components adequate for the future’s untethered systems.
ARC and Tensilica, and more recently MIPS and ARM, have discovered the value of configurable microprocessors. They begin with a base instruction set and let the designer add application-specific instructions with their own hardware assists. The result is a fixed, application-specific microprocessor. These application-specific microprocessors can speed application performance by ten or a hundred times. It’s a step in the right direction, but configurable processors don’t allow run-time adjustment and they still suffer the inefficiencies of instruction-based processing (memory, bus, and processing bottlenecks).
Reconfigurable systems offer the possibility
of direct, efficient, circuit-based implementation and hardware paging.
They avoid the inefficiencies of instruction accesses and instruction interpretation.
Reconfigurable systems employ dynamic hardware and dynamic algorithms.
The difficulty in moving from microprocessor-based
implementation to reconfigurable systems is that for thirty years, design-method
development has been stalled in a “programming is problem solving” environment
of static hardware (the microprocessor) and dynamic algorithms (programming
the application).
The importance of conferences such as Engineering
of Reconfigurable Systems and Architectures is that they aid the rediscovery
of structural specification (the resources that are needed to solve a problem)
as a part of the problem-solving process. In fact, reconfigurable systems
carry structural specification into a new dimension—time-based structural
requirements. The resources required by an application may vary with time,
such as the various phases of initiation, set-up, conversation, and tear-down
in a cellular phone call. Dynamic reallocation of hardware may provide
to the application vastly more resources than could be justified in a static
implementation, leading to increased performance and reduced energy consumption.
Reconfigurable systems promise hundreds or thousands of times the performance
of microprocessor-based implementations, the efficiency of application-specific
circuits, and at lower energy budgets than alternatives can achieve.