A side note of one LinkedIn discussion on a major FPGA Group was that low latency networks -- the big FPGA-based innovation that is sweeping the financial trading industry -- is pretty much limited to that industry. For example, consider an article that appeared on the Network Computing Website: Arista Outpaces Cisco Again With FPGA Switch.
In reality, however, there are many other players carving out a niche with low-latency, high-throughput networks and networked devices. Some of these take a very serious side, like the AFDX and ARINC 664 networks driving the avionics systems in the Airbus A380 and the Boeing 787 Dreamliner, among others. (You can find our more information on AFDX and similar networks on the Xilinx and Actel Websites.) These networks improve reliability and save weight, while the low latency and high throughput hardware in the FPGAs and ASICs that run the lowest layers of the links help guarantee that all the date arrives in a safe and timely manner. Similar networks are employed in the rail and marine industries.
Additional applications include feedback and links for vibration control and motion control through a variety of custom and commercial protocols. And many other applications involve making the standard Internet faster, and less laggy for tasks such as video conferencing and telemedicine (the use of telecommunication and information technologies to provide clinical health care at a distance).
Network security is another area for which low latency and high performance is important – thereby facilitating the ability to react to threats faster than those threats can propagate through the mainstream network. (See also the Advanced IO Website for discussions on Defense, Financial, and Telecommunications applications.)
What goes into a low latency network device? First, the wires or optics must enter via a connector. This must then be routed to the physical interface IC, which then translates the analog signals into a digital waveform for use with the FPGA. In a low-latency design, the FPGA then performs similar processing to a conventional MAC, but it may include hardware layers above the conventional MAC layers, such as everything required to send the CPU a fully-formed UDP data set. The FPGA might not store packets out in the main system RAM right away, but rather sort packets into a fast on-board RAM. The FPGA may also perform filtering on packets so that any high-priority packets are handled first by the CPU. This is usually bound with a custom driver for the operating system (OS) that gives priority to these packets. A developer can then use this driver to build an application that responds to these packets much faster than normal.
The difference between a standard system and a low latency network can be very significant. Consider an application like Ping being run on a standard system. In this case we might expect to see something like the following:
Running Ping on a standard network.
By comparison, in the case of a low latency network, one will see sub-1ms response times as illustrated below:
Running Ping on a low latency network.
In the case of vibration and motor control, the required response times may be in the 10s or 100s of microseconds. This can require throwing out portions of the stack and using a more “raw” form of data in the protocol. It may even require trimming the sizes of the packets.
What are some other possible uses for low-latency? Well, manufacturing comes to mind. If one is trying to build and test a million widgets an hour, the factory automation network may sometimes be the bottleneck.
How about food and pharmaceuticals? Making and labeling large quantities of prescription and non-prescription items with lot codes, date codes, and all the FDA traceability data requires high bandwidth printing for large volumes of products. In Europe, each pill must be blister packed and traceable. Required print rates can be in the hundreds of linear feet per minute -- and all of it unique.
And low-latency is not just for the "serious stuff." For example, there is a company in Austin, Texas, that develops low-latency NIC cards for hard-core online gamers who are looking to out-gun and/or out-run their competition on the web (visit KillerGaming.com for more details).
Hopefully, this has made you thinking about how you can put a low latency, high throughput network or link to use in your own industry or product. For example, securely transporting 2,500 MRI/CT images from a workstation across town to the radiologist and the ER doctor up the hall – STAT! An FPGA-based solution can perform both the encryption and the low latency, high throughput link at the server and the workstation, along with the previously-mentioned low latency switch, thereby saving valuable time while maintaining privacy and security.
What do you think? Can you name some low latency applications in other industries I've not mentioned?