Real-Time Configuration and Optimization
- Data streams optimizer
- Cache configurator and cache allocation library
- The user provides inputs, such as requirements and environment files.
- 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.
- 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.
- 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.
- 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.
- 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.Important:If users want to change the cache configuration, they should use the cache configurator before using the cache allocation library.
- (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.
- (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.
- 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.