Developer Guide

  • 2021.2
  • 06/11/2021
  • Public
Contents

Real-Time Configuration and Optimization Tools

The following tools help you configure the underlying Intel processor to optimize it for your real-time application.
  • Data streams optimizer
  • Cache allocation tools: Cache configurator and cache allocation library
The data streams optimizer can be used with cache allocation tools, but requires some configuration. For details, see Compatibility between Data Streams Optimizer and Cache Allocation.
In this diagram, the tools are shown in Steps 6a and 6b. For simplicity, cache allocation tools are shown first, but you can choose to use them after the data streams optimizer.
Collectively, the
cache configurator
and
cache allocation library
address deadline violations caused by cache misses.
  • The
    cache configurator
    is a command-line tool that enables you to discover and manage cache resources. You can partition the cache between applications or caching agents (CPU, GPU, or I/O), as well as reserve portions of the cache for software SRAM buffers.
    The ability to partition the cache for I/O operations is not available on all platforms.
  • The
    cache allocation library
    is a set of C language APIs that allow your real-time application to use the software SRAM buffers reserved by the cache configurator. The library is intended for an application that performs periodic computations on the same data set and is sensitive to memory access latency. You can replace malloc with the cache allocation library.
The
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 system characteristics such as power, thermal, and best-effort throughput.
Cache Configurator and Cache Allocation Library Workflow
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 changes it as needed using a command-line interface.
    Important:
    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 changed the cache configuration, the cache configurator generates a UEFI BIOS capsule, transfers it to the target system into a corresponding UEFI BIOS subregion, and triggers reboot.
  3. (Optional, if step 2 took place) During boot, the BIOS parses the contents of the subregion, 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.
    The BIOS will only apply cache partitioning masks. If software SRAM regions were present in the cache partitioning scheme, the regions are only enabled after booting the RTCM or a hypervisor supporting software SRAM.
  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.
Data Streams Optimizer Workflow
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 subregion, and triggers reboot.
  3. During boot, the BIOS parses the contents of the subregion, 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, determines 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 the results say tuning was successful, the flow stops; otherwise, the data streams optimizer attempts another tuning configuration and steps 2-4 repeat.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.