Building Multipurpose Systems With Dynamic Function Exchange

Fully use system resources using the DFX design methodology.


One of the most-common oversights that designers can make is to not fully use available system resources. Typically, design and optimization efforts are focused on performance and efficiency. Mission-critical and real-time tasks are allocated hardware-based resources to accelerate their execution. But when large portions of the architecture are underutilized – in other words, they remain idle for long stretches of time – it’s likely the overall design is less efficient, consumes more power, and is more expensive to implement than it actually needs to be.

Consider a platform streaming live video to customers. As the content provider moves its compute to cloud, the density increases because of consolidation. Thus, a single rack might manage thousands of streams, and the CPU can easily become a bottleneck. At this density, streaming must be implemented in hardware. This hardware can be implemented as a GPU supporting software-based stream management or as a custom ASIC/SoC optimized for high-density streaming.

One of the key characteristics of delivering streaming video is that demand is dynamic. For example, for three hours in the evening, a content provider might experience a peak of users wanting to either upload or download video, depending upon what kind of video services the provider offers. Where inefficiencies arise is during the other 21 hours of the day when the average number of users is significantly less.

For the sake of illustration, consider a provider supporting 200,000 users during peak usage and averaging 100,000 users the rest of time. With a GPU and/or ASIC/SoC approach, the provider needs to provision its network to support the peak load. For the other 87.5% of the time, half the capacity – and a large portion of the capital investment – sits idle.

This three-part article will explore how to fully use system resources using the design methodology known as Dynamic Function Exchange (DFX). In addition to outlining what DFX is, we will detail how DFX can be implemented as well as how optimizing the use of system resources can improve the quality, reliability, and adaptability of systems.

Dynamic Function Exchange

Dynamic Function Exchange (DFX) is an approach to design that reallocates system resources that are currently not in use to another task that can use them. Much like the way an MCU can change functionality by running different software, DFX changes a system’s functionality by reconfiguring its hardware resources.

DFX is implemented on an adaptive computing platform built around programmable logic. An adaptive computing platform changes how developers work and design with reconfigurable hardware resources. In the past, FPGAs and programmable logic were considered the domain of hardware engineers. Engineers had to design at the gate level and so were focused on the low-level details of how to make the system do what they wanted.

Adaptive computing has eliminated much of the complexity of working with reconfigurable hardware. Rather than designing with gates, developers work with complete functional blocks. The focus is on what the system needs to do, not how to implement specific tasks in logic. Working at a block level accelerates design and facilitates using a dynamic function exchange approach to building out an architecture.

Dynamic Function Exchange (DFX) is implemented by reprogramming certain regions of an FPGA while the rest of the device continues to run. This enables the FPGA to switch out functions that are no longer needed and replace them with new capabilities.

DFX changes how systems are designed in several ways. First, one device can serve the role of many different components. Second, DFX takes advantage of the fact that not all system functionality is needed at the same time.

Consider an autonomous vehicle (see figure 1). Its video system employs multiple cameras for surround vision to provide driver assistance for tasks such as parking and lane changes. Low latency tasks include stitching together images captured by the multiple cameras and then analyzing the images to detect and identity objects of interest.

Fig. 1: The automotive video system employs multiple cameras for surround vision to provide driver assistance for tasks such as parking at low speeds and lane changes at high speeds.

These cameras are used in different ways, depending upon how the car is moving. For example, different algorithms are used with video from the rear camera to detect potential hazards when a car is backing up compared to when the car is moving forward and about to change lanes. As it takes less than a second to reconfigure programmable logic to swap functionality, an adaptive computing platform can be ready with the correct hardware configuration whenever the car slows or speeds into a different operating mode.

Rather than have dedicated hardware for each function, DFX allows developers to optimize compute resource utilization by using the same resources to implement capabilities that don’t need to be active at the same time. There is no reason for both functions to take up valuable space in terms of footprint, memory, and power consumption. The system can bring in the functionality it needs, when it needs it, and achieves all the benefits of hardware acceleration. This also makes it possible to build smaller systems that provide the same hardware-based accelerated functionality as more complex systems. In addition, rather than design a customized SoC or ASIC that takes 18 months to create and locks in functionality, developers can implement all the functionality of multiple SoCs into a single device quickly and easily.

Some functions are well-suited for software configurability, where a generic MCU changes its capabilities by changing the software it runs. With DFX, the flexibility of software reprogrammability is extended to hardware, enabling systems to achieve hardware-based acceleration for critical real-time functions. This is important for functions such as ADAS that must minimize latency when the vehicle is moving at high speeds on the highway.

With DFX, the same hardware resources can be used to enable the ADAS system to optimize object tracking based on different use cases. For example, the ADAS employs different object detection algorithms closer to the car when moving at low speed in a parking lot. DFX enables the computing resources used for these algorithms to be shifted to long-range detection algorithms when the vehicle is on the highway.

In our next article, learn how an adaptive computing platform with DFX can be used to provision and manage resources, allowing users to optimize application performance in real-time.


Tina Francis says:

Great article, Ed.

Leave a Reply

(Note: This name will be displayed publicly)