Nulik
Nulik

Reputation: 7360

Understanding the parallelism of FPGAs

I am having a bit of a problem understanding the benefits of FPGAs for parallel processing. Everybody says it is parallel, but It looks to me like it is not truly parallel. Let's see this example:

I have a data signal coming on some pins, at 1 bit per clock cycle. The FPGA will receive this data and since it has the data already inside the integrated circuit it can start processing it right away. But this is called serial processing, not parallel. If the FPGA waits for the data to accumulate, to later process it in parallel, then we can say FPGA processing is truly parallel but what is the benefit of waiting for the data to arrive in large quantities, we will just lose time, for example, if we wait for 8-bit data, we will lose 7 cycles. So where is the benefit of parallelism of FPGAs?? I can't get it.

It would be parallel if the data were coming in parallel, like when you use the old DB-25 Parallel Port connector. However, this technology became obsolete since parallel ports can not support high speeds. Today's USB standard is serial, Ethernet is serial, so .... where is the parallelism??

Upvotes: 2

Views: 2486

Answers (2)

Paebbels
Paebbels

Reputation: 16231

Parallelism has several levels, which need to be understood if you want to under stand computer architectures. FPGAs are just a tool to build a "computer".

The levels are:

  • bit level: multiple bits or datawords are processed in parallel.
    For example you can build adders of 8 bit, 32 bit or 4096 bit, which add two integer numbers in just one cycle
  • instruction level: multiple instructions of one control flow are executed in parallel
    => pipelining, super scalar architecture
  • thread level: multiple control flows are executed in paralell
    => multi threading, multi core, n-socket systems
  • application level: execute multiple applications in parallel
    => multi processing
  • dataflow processing: every thing in parallel :)

FPGAs can use each level to do everything in parallel.

Upvotes: 1

TezlaCoil
TezlaCoil

Reputation: 134

The parallelism comes in if you have data that arrives in chunks, and the chunks arrive faster than they can be processed, and the chunks can be processed individually. Rather than having to slow-down the data sender, an FPGA allows you to add more processing "blocks" so that the processing goes faster.

Example: You receive data (serially or in parallel, doesn't matter) at 1MB/s in 50kB chunks, but your algorithm only allows 1 chunk to be processed per second. In an FPGA, you can wire up the "receiver" to distribute the chunks across 20 "processors", so now your sender can still send at full speed, and your receiver sees less overall lag.

Upvotes: 2

Related Questions