Developer Guide

  • 2021.1
  • 11/03/2021
  • Public
Contents

Reserve Software SRAM

You can use the tool to add or delete software SRAM.
Intel recommends doing this after you have tried the presets, if you need to further refine the configuration.

Effects of Editing Software SRAM

Software SRAM buffers are created by reserving a portion of the cache specifically for satisfying low-latency memory requests. This means that once a software SRAM buffer is created, the underlying cache space is unavailable for use by non-real-time (best effort) applications. The tool enables you to allocate all but 1 cache way to software SRAM regions to allow for maximum flexibility. However, be aware of the performance implications of allocating large portions of cache to software SRAM buffers. Non-real-time applications may see significant slowdown as a result of reduced cache capacity.
To learn more about how editing software SRAM affects your existing configuration, see Creating a Custom Cache Partitioning Scheme.

Prerequisites

The tool will ask you to specify the following information:
  • Latency or cache level (your choice)
  • Size of the buffer required
  • Processor core where the real-time application will run
Latency refers to the maximum tolerable access latency for the buffer. For more information, see Before Using the Cache Allocation Library.
The tool automatically assesses the underlying platform and produces a “recommended” configuration which may be different from your request. Reasons for this include:
  • Cache architecture: Depending on the inclusivity of the cache, additional space reservations may be required resulting in a larger software SRAM buffer than originally requested. For this reason, the tool satisfies L2 buffer requests by reserving portions of L2 and L3.
  • Size of cache way: Software SRAM buffers must be a multiple of the size of a cache way. If the requested software SRAM is not a multiple of the cache way size, the tool rounds the allocation up to the nearest cache-way granularity.
Cache way size is platform dependent. For details about the cache architecture of your platform, see:

Add a Buffer by Specifying Latency

You can add a buffer by specifying the maximum tolerable access latency for the buffer. The flow of the user interface is as follows:
  1. If you have not already done so, launch the tool as described in Launch the Cache Configurator.
  2. At this prompt, enter
    A
    to add a buffer:
    Would you like to add (A) or delete (D) a cache allocation? Or would you like to change the way the configuration is partitioned? (P)
  3. Enter
    L
    to specify latency.
    Do you want to specify for Latency (L) or Cache Level (C)?
  4. Enter the maximum tolerable access latency for this buffer. For more information about latency, see Before Using the Cache Allocation Library.
    Please enter the desired value for maximum tolerable buffer access Latency in nanoseconds (estimated from 74 to 158 ns):
  5. Enter the CPU core where the real-time application will run. This application is the one that will use the buffer via Cache Allocation Library.
    Available cores are: 0, 1, 2, 3 Please enter the CPU core that your real-time application will use:
  6. Enter the size of the buffer in bytes.
    Please enter the buffer size, in bytes: (estimated from 1 to 1310720 bytes):
  7. The tool shows a summary of your entered values, plus the cache level that corresponds to your request. Enter
    Y
    to confirm.
    Example:
    The following buffer will be created: BUFFER 1 LATENCY(ns): 100 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 262144 Confirm (Y) to proceed to configure this buffer, a reboot will be required to complete the configuration. Or continue (C) configuring your total requested configuration (reboot will be required later). Or press (U) to undo the current operation and return to the main menu:
  8. After you have confirmed your request, the tool shows a summary, including existing buffers and requested buffers. It may also indicate that it cannot configure the buffers exactly as requested and shows the allocation that it can complete. Reasons why the tool adjusts requested buffers, such as inclusivity and granularity, are explained in the introduction to this topic.
    In this example, the tool can satisfy the buffer request but needs to adjust the existing buffer at the L3 cache level from 1,048,576 bytes to 2,097,152 bytes.
    Enter
    Y
    to proceed to apply this configuration. The system will reboot.
    Example:
    Requested configuration: BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: [0, 1, 2, 3] BUFFER SIZE(bytes): 1048576 NEW BUFFER 1 LATENCY(ns): 100 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 262144 The REQUESTED CONFIGURATION could not be set exactly as specified. See below for the requested and PROPOSED configuration that is closest to satisfy your buffer request. See the Intel® TCC Developer Guide for some reasons why your request may have been altered: common causes are needing to round up the buffer size or inclusiveness Proposed configuration: EDITED BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: [0, 1, 2, 3] BUFFER SIZE(bytes): 2097152 NEW BUFFER 1 LATENCY(ns): 100 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 262144 Confirm (Y) to proceed to apply this configuration, a reboot will be required to complete the configuration. Or press (U) to cancel the current operation and return to the main menu:
  9. After the system reboots, the tool shows the current configuration and exits.
    Waiting for reboot... Connected. Tuning binary has been signed. Capsules have been generated... Applying capsules for ``hostname``... Rebooting ``hostname`` Attempt 1. Reconnecting to ``hostname``... Connection attempt failed. Trying again... Attempt 2. Reconnecting to ``hostname``... Connection attempt failed. Trying again... Attempt 3. Reconnecting to ``hostname``... Connected. ******************************************************************************** Remote Machine is successfully rebooted. SUCCESS: Current configuration: CURRENT BUFFERS ALLOCATED: 2 BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: [0, 1, 2, 3] BUFFER SIZE(bytes): 2097152 BUFFER 1 LATENCY(ns): 100 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 262144 Before using the cache allocation library, enable RTCM on the target system.
  10. After use, enable RTCM to allow the cache allocation library to work properly. You can enable RTCM with the following commands:
    /usr/share/tcc_tools/scripts/setup_ssram/control_rtcm.sh enable reboot

Add a Buffer by Specifying Cache Level

You can add a buffer by specifying cache level. The flow of the user interface is as follows:
  1. If you have not already done so, launch the tool as described in Launch the Cache Configurator.
  2. At this prompt, enter
    A
    to add a buffer:
    Would you like to add (A) or delete (D) a cache allocation? Or would you like to change the way the configuration is partitioned? (P)
  3. Enter
    C
    to specify cache level.
    Do you want to specify for Latency (L) or Cache Level (C)?
  4. Enter the desired cache level.
    Please enter the desired cache level for this buffer either L2 (2):
  5. Enter the CPU core where the real-time application will run. This application is the one that will use the buffer via Cache Allocation Library.
    Available cores are: 0, 1, 2, 3 Please enter the CPU core that your real-time application will use:
  6. Enter the size of the buffer in bytes.
    Please enter the buffer size, in bytes: (estimated from 1 to 1310720 bytes):
  7. The tool shows a summary of your entered values, plus the latency value associated with your request. Enter
    Y
    to confirm.
    Example:
    The following buffer will be created: BUFFER 1 LATENCY(ns): 74 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 256000 Confirm (Y) to proceed to configure this buffer, a reboot will be required to complete the configuration. Or continue (C) configuring your total requested configuration (reboot will be required later). Or press (U) to undo the current operation and return to the main menu:
  8. After you have confirmed your request, the tool shows a summary, including existing buffers and requested buffers. It may also indicate that it cannot configure the buffers exactly as requested and shows the allocation that it can complete. Reasons why the tool adjusts requested buffers, such as inclusivity and granularity, are explained in the introduction to this topic.
    In this example, the tool can satisfy the L2 buffer request but needs to increase the size of the new buffer being created at L2 cache level from the requested size of 256,000 bytes to 262,144 bytes. The tool also needs to adjust the existing buffer at the L3 cache level from 1,048,576 bytes to 2,097,152 bytes.
    Enter
    Y
    to proceed to apply this configuration. The system will reboot.
    Example:
    Requested configuration: BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: 0 BUFFER SIZE(bytes): 1048576 NEW BUFFER 1 LATENCY(ns): 74 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 256000 The REQUESTED CONFIGURATION could not be set exactly as specified. See below for the requested and PROPOSED configuration that is closest to satisfy your buffer request. See the Intel® TCC Developer Guide for some reasons why your request may have been altered: common causes are needing to round up the buffer size or inclusiveness Proposed configuration: EDITED BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: 0 BUFFER SIZE(bytes): 2097152 NEW BUFFER 1 LATENCY(ns): 74 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 262144 Confirm (Y) to proceed to apply this configuration, a reboot will be required to complete the configuration. Or press (U) to cancel the current operation and return to the main menu:
  9. After the system reboots, the tool shows the current configuration and exits.
    Waiting for reboot... Connected. Tuning binary has been signed. Capsules have been generated... Applying capsules for ``hostname``... Rebooting ``hostname`` Attempt 1. Reconnecting to ``hostname``... Connection attempt failed. Trying again... Attempt 2. Reconnecting to ``hostname``... Connection attempt failed. Trying again... Attempt 3. Reconnecting to ``hostname``... Connected. ******************************************************************************** Remote Machine is successfully rebooted. SUCCESS: Current configuration: CURRENT BUFFERS ALLOCATED: 2 BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: [0, 1, 2, 3] BUFFER SIZE(bytes): 2097152 BUFFER 1 LATENCY(ns): 74 CACHE LEVEL: 2 CPU CORE: 3 BUFFER SIZE(bytes): 262144 Before using the cache allocation library, enable RTCM on the target system.
  10. After use, enable RTCM to allow the cache allocation library to work properly. You can enable RTCM with the following commands:
    /usr/share/tcc_tools/scripts/setup_ssram/control_rtcm.sh enable reboot

Delete a Buffer

You can delete a buffer from the system. The flow of the user interface is as follows:
  1. If you have not already done so, launch the tool as described in Launch the Cache Configurator.
  2. At this prompt, enter
    D
    to delete a buffer.
    Would you like to add (A) or delete (D) a cache allocation? Or would you like to change the way the configuration is partitioned? (P)
  3. Specify the buffer to delete. You can choose to delete individual buffers or delete all.
    Specify which of the following cache allocations do you wish to delete 1. L3 core [0, 1, 2, 3] (1048576 bytes) 2. Delete All Which option you want to proceed with:
  4. The tool shows a summary. Enter
    Y
    to confirm.
    Example:
    The following buffer will be deleted: BUFFER 0 LATENCY(ns): 159 CACHE LEVEL: 3 CPU CORE: [0, 1, 2, 3] BUFFER SIZE(bytes): 1048576 Confirm (Y) to proceed to delete this buffer, a reboot will be required to complete the configuration. Or continue (C) configuring your total requested configuration (reboot will be required later). Or press (U) to undo the current operation and return to the main menu:
  5. After you have confirmed your request, enter
    Y
    to apply the configuration. The system will reboot.
    Requested Configuration: CURRENT BUFFERS ALLOCATED: 0 DELETED BUFFER 1 LATENCY(ns): 50 CACHE LEVEL: 3 CPU CORES: [0, 1, 2, 3] BUFFER SIZE(bytes): 1048576 Confirm (Y) to proceed to apply this configuration, a reboot will be required to complete the configuration. Or press (U) to cancel the current operation and return to the main menu:
  6. After the system reboots, the tool shows the current configuration and exits.
    Waiting for reboot... Connected. Tuning binary has been signed. Capsules have been generated... Applying capsules for ``hostname``... Rebooting ``hostname`` Attempt 1. Reconnecting to ``hostname``... Connection attempt failed. Trying again... Attempt 2. Reconnecting to ``hostname``... Connection attempt failed. Trying again... Attempt 3. Reconnecting to ``hostname``... Connected. ******************************************************************************** Remote Machine is successfully rebooted. SUCCESS: Current configuration: CURRENT BUFFERS ALLOCATED: 0 Before using the cache allocation library, enable RTCM on the target system.
  7. After use, enable RTCM to allow the cache allocation library to work properly. You can enable RTCM with the following commands:
    /usr/share/tcc_tools/scripts/setup_ssram/control_rtcm.sh enable reboot

Product and Performance Information

1

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