On 10/14/2011 03:40 PM, Keith M wrote:
The vast
majority of embedded development these days is done in C, with
some things (notably some low-level device handling, as you know) are
done in assembler. You can't really do any serious embedded work without
doing at least SOME assembler, for the C startup code (crt0.[so]), but
the "canned" ones distributed with cross compilers are getting closer to
being able to handle all "before calling main()" needs.
C will be the king in the embedded space for a long time, I suspect.
So I have some basic familiarity with high-end router design, and it
seems that there is a trend (for some time) to move the datapath design
away from FPGAs (or ASICs) housing multiple soft-processors whose custom
software was written in assembly to using off the shelf Network
Processing Units.
Or in general, a move away from custom hardware to standard (like
Intel's NPUs) CPU-like designs running at a faster clock rate.
I don't know how widespread the trend is but it is interesting to me
nonetheless.
I think that's not necessarily a bad thing, if the COTS NPUs are
actually good at what they're supposed to do.
A few years ago, I moved my network from a studly, very fast Cisco
Catalyst 5500 to a Cisco Catalyst 3548XL. That moved me from packets
switched in FPGA-based hardware to packets switched in firmware running
on a PowerPC chip, a 405 I think. My power bill dropped by about $50/mo
(which was the goal) but man the performance drop was huge.
If these new NPUs can do their jobs as quickly and efficiently as the
FPGA-based switching (whether it's done by firmware running on soft
cores or directly switched by an FPGA-based hardware switching fabric),
personally I think that's ok.
-Dave
--
Dave McGuire
New Kensington, PA