Benefits

Why Using Context Switching?

Context switching basically helps to fit a design onto a smaller FPGA or to allow more modules on a given device. This saves monetary cost, power, and space. A simple example would be an FPGA-based network processor that loads packet processing modules to the FPGA with respect to the present protocols that have been identified in the network traffic:

Instead providing sufficient instances for all peak workload scenarios that may occur for a particular protocol, we assume to share a reconfigurable area among all instances over time. This utilizes the fact that not all worst case

scenarios can occur at the same time. Note that context switching can be applied to all systems that contain mutual exclusive functionality.

Improving Speed and Latency

Partial run-time reconfiguration can also be used for speeding up sequential tasks in a system by spending more area (which is equivalent to exploit more parallelism) for each particular task:

speedup_by_ PR

For example, this may be used to speed up an SSL connection. Here we have to compute a session key using asymmetric crypto in a first step before exchanging the actual data in a second step. For the latter, the session key will now be used by a symmetric cipher. Note that the symmetric cipher can only start if the key exchange has been completed.

As a further example, reconfiguration can be use to accelerate the boot process of a system. For instance, in Linux-based embedded systems, a memory image is decompressed during system start by the boot loader. Using a dedicated decompression module that can be replaced afterwards, the boot process can be materially boosted without additional hardware cost for the FPGA.

Published Apr. 16, 2010 12:18 PM - Last modified Apr. 4, 2011 9:28 AM