> There are a few good reasons for trying an FPGA:
> 1. You don't run the same applications all the time.
> What's commonly best might not give as good performance as
> optimised logic switched in for a specific application (even with
> FPGA overhead).
> Imagine a router with the network stack fast path processed as the
> bits come in...
Can't be done. Its been looked at, and for a fully feature networking
stack, its much harder than this.
Look at what cisco have, its pretty much bleeding edge, and its
nowhere near this flash. Implementing a sull network stack or even
fib in silicon I fear is far from trivial.
> Admittedly this is hard to get right with general multitasking, as
> all but the tiniest and fastest FPGAs take a few hundred
> milliseconds to program.
It sounds to me like you don't want an FPGA in/on the CPU - you want
a FPGA device on a PCI hard with some other fancy stuff. These are
available, with PPC (604?) host processors and 8MB on the card too.
That way, you program it via /dev/fgpa or some such.
> 2. FPGAs can do whacky and very fast I/O things for those who like to
> play with soldering irons. Think gigabit ethernet/PCI speeds (just
Again, I doublt you'll get GB ethernet going on an FPGA. GB ethernet
done properly is already pushing the spectrum of what cost a
effective dedicate ASIC can do, let alone the added complexity and
overhead and an FPGA.
> 3. Sometimes you choose things to implement in custom silicon and...
> you get it wrong! Think of the MMX switching overhead -- it makes
> mixing MMX and FP on a P5 a waste of time.
Actually... IMO the biggest brain-damage of MMX is that it is
miss-designed. The instructions available are MMX-integer only, you
can mix them with normal CPU registers and it doesn't support carry
(umm... maybe it does, if so, someone please clue me in on this).
Non-Intel MMX like thingies, such as the Sparc VIS stuff also overlay
the media registers with the FPU and it indeed seems to be worth
while and well implemented there (so I'm told).
> 4. The application programmers may be able to do a lot better than
> you thought possible, given the freedom to play (Hi Matt ;-)
Right now, they are free to use MMX, but almost noone does.
> 5. Parallelism. Even if MMX does what you need to draw a picture,
> process a wavy modem line, checksum TCP packets etc, you can't do
> much else at the same time. Even with a superscalar CPU you can't
> practically do these things in parallel, you can just max out all
> the busses. You can of course do SMP, but sometimes... overkill,
Still sounds like you want a FPGA on a card... not as a CPU
Not to mention, modern CPUs are complex beats - you can't just tack
on functional units and expecting evetything to work.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
Please read the FAQ at http://www.tux.org/lkml/faq.html