Developer Guide

  • 2021.1
  • 11/03/2021
  • Public

Real-Time Configuration and Optimization

The following tools help you configure the underlying Intel processor to optimize it for your real-time application.
  • Data streams optimizer
  • Cache configurator and cache allocation library
They can be used separately or together depending on the unique needs of your real-time use case.
data streams optimizer
is a command-line tool that helps improve data movement between processor subsystems. For example, it can be used to optimize the transfer of data packets between an Ethernet card connected to a PCIe port and system memory. The tool iteratively adjusts the values of multiple registers as it searches for the configuration customized to your application and other systen characteristics such as power, thermal and best effort throughput.”
cache configurator
is a command-line tool that enables you to reserve cache for use by the cache allocation library and other caching agents (such as GPU or I/O) and provides a visual representation of the cache on your system.
cache allocation library
is a set of C language APIs that help reduce memory access latency by allocating buffers that are less likely to be evicted from cache. The library is intended for an application that performs periodic computations on the same data set and is sensitive to access timings to this data set which cannot be satisfied by standard memory allocation practices like malloc.
The following diagrams show the tool workflows:
Data streams optimizer flow:
  1. The user provides inputs, such as requirements and environment files.
  2. The data streams optimizer selects a tuning configuration that presumably can configure the target system to satisfy user requirements, generates a UEFI BIOS capsule, transfers it to the target system into a corresponding UEFI BIOS sub-region, and triggers reboot.
  3. During boot, the BIOS parses the contents of the sub-region, applies a tuning configuration to Intel processor registers and continues the normal boot flow.
  4. The user’s real-time application, wrapped into a validation script, is used to determine whether user requirements have been met with the selected tuning configuration. A pass/fail result is passed back to data streams optimizer.
  5. The data streams optimizer’s command-line interface presents the tuning results to the user. If tuning was successful, the flow stops; otherwise, the data streams optimizer attempts another tuning configuration and steps 2-4 repeat.
Cache configurator and cache allocation library flow:
  1. The user runs the cache configurator to see the current cache configuration of the target system and makes changes to it as needed using a command-line interface.
    If users want to change the cache configuration, they should use the cache configurator before using the cache allocation library.
  2. (Optional) If the user made changes to the cache configuration, the cache configurator generates a UEFI BIOS capsule, transfers it to the target system into a corresponding UEFI BIOS sub-region, and triggers reboot.
  3. (Optional, if step 2 took place) During boot, the BIOS parses the contents of the sub-region, applies the new configuration to the Intel processor cache, publishes it to agents in the upper software layers, and continues normal boot flow. The new cache configuration can be read by the cache configurator and presented to the user.
  4. The real-time application invokes cache allocation library APIs during runtime to allocate some of its data in processor cache, leveraging software components throughout the software stack underneath.
Learn more about these tools:
Allocates Level 2 (L2) and Level 3 (L3) cache for real-time application use and configures parts of the cache available for different caching agents.
Optimizes the transfer of data between two processor subsystems, referred to as data streams.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at