XPERT OPINION
Why Software Programmability
of Electronics is a Game Changer
The architecture of the future has an embedded microprocessor at its heart
and a series of hardware accelerators to handle particular tasks.
by Jacques Benkoski
USVP Venture Partner;
Executive Chairman,
Synfora
jacques.benkoski@synfora.com
The common wisdom says that the semiconductor
industry is in serious trouble, as
increased design cost, growth in the
amount of intellectual property (IP) necessary
to put a product together and soaring
mask costs combine to make any but the
highest-volume chips economically unfeasible.
This view foresees a world populated
by microprocessors and a few consumer
systems-on-chip (SoCs), with the FPGA
vendors focused on serving the low-volume
price- and power-insensitive applications.
In fact, the drive to enable software programmability
of integrated circuits will
turn that conventional view upside-down.
Entering the scene are tools coming from
the compilation world that are able to map
the software description onto automatically
created hardware extensions. The electronics
are, in fact, software programmed
and automatically compiled, without going
through the equivalent of assembly language
that RTL represents.
The resulting architecture is clean, with
an embedded microprocessor at the heart
of the IC and a series of hardware accelerators
neatly brought to bear on the appropriate
tasks. This is true of a dedicated
ASSP or ASIC, but is equally applicable to
a modern FPGA with embedded cores.
The Problem with Multicore
Executing a given task in software on a
generic processor architecture, as opposed
to dedicated hardware, has been proven to
be two orders of magnitude off in cost,
power and performance. The pressure to
reach low-power solutions is now pervasive
beyond mobile applications. With all
due respect to the embedded cores, they
would have to run at impossible speed to
swallow a 5-Gbit/second stream, perform
live video transcoding or aim a beamshaping
antenna array.
Although some argue that multicore is
the solution, with dedicated cores earmarked
for specific applications, the multicore
programming problem remains
stubbornly elusive beyond the simple multithreading
on an identical architecture.
Nobody seems able to master the
unbounded complexity of heterogeneous
processing engines with different characteristics
communicating over ill-characterized
buses and networks-on-chips. At the same
time, the number of software engineers
continues to grow and the number of hardware
engineers continues to shrink—at least
on a relative basis. Yet in most cases, companies
give away the software as a necessary
component of a platform rather than as the
valuable differentiator it is made to be.
FPGA as Distributed Compute Engine
The FPGA world has been undergoing its
own revolution. No longer simply seen as
gobs of glue logic, FPGAs have now
emerged as an attractive alternative implementation
for many applications focused on
power, price and performance. This alternative
is now making its way into consumer
and even mobile applications. Yet FPGAs
also emerge as a fascinating distributed compute
fabric with a regular architecture of
computational elements and memories.
They suddenly represent a quasi-systolicarray
alternative to the Von Neumann digi-
16 Xcell Journal Fourth Quarter 2009