0
\$\begingroup\$

I need to read in data off of a fiber optic (or copper, though I figured fiber optic would be faster) cable, convert it to bits, do something with it that should only take a clock cycle or two, then send it to the next computer to deal with it. It'll need to jump between 100 to 1000 computers that are 50 to 1000 ft apart from eachother.

If I can shave half a nanosecond off of the time it takes get it in and back out again that would be great just because it needs to travel through so many computers.

So the question is, how quickly can I do this? Would doing it analog for some reason be faster than digital? Anything else that might speed up this process.

\$\endgroup\$
1
  • \$\begingroup\$ Sounds a lot like a token-passing ring network. Can you elaborate a bit more on the application? How much data needs to be processed per step? \$\endgroup\$
    – Dave Tweed
    Mar 13, 2014 at 16:00

1 Answer 1

2
\$\begingroup\$

High frequency trading? Video?

A lot depends on what the processing you need to do is. As soon as you need to buffer it that will insert latency. If you need to (eg) de-serialise it, examine two bytes, potentially replace them with a different two bytes, and re-serialise it, that will need a buffer of at least two bytes and realistically another byte for the cycle in which you do the processing plus a byte in each of the serdes implementations.

If you need to assemble a whole frame in order to apply the processing, then your latency is one frame per hop.

Buffering in the analog domain is hard, so this is only suitable if your processing is "cut-across" from one analog stream to another.

(Note that high speed fiber transcievers are expensive. There are 10G ethernet switches which have fiber input and output and an embedded low-latency FPGA for processing. I have one on my desk. It costs >$10,000 so we're only borrowing it)

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.