Developer Guide

  • 2021.2
  • 06/11/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 buffers 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.
If too much of the cache was allocated to software SRAM buffers, simply re-run the tool and reduce the size of L2 or L3 software SRAM buffers.
The cache configurator follows certain rules when allocating cache space to software SRAM buffers. These include:
  • The location of software SRAM buffers (which cache ways are used)
  • Rearrangement of other masks to avoid overlap (software SRAM buffers must be exclusive)
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 that 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 Cache Architecture.

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. On the target system, confirm that the
    Software SRAM
    option in system firmware is enabled. For details, see Software SRAM Setting.
  2. If you have not done so, launch the tool as described in Launch the Cache Configurator.
  3. 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)
  4. Enter
    L
    to specify latency.
    Do you want to specify for Latency (L) or Cache Level (C)?
  5. 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):
  6. 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:
  7. Enter the size of the buffer in bytes.
    Please enter the buffer size, in bytes: (estimated from 1 to 1310720 bytes):
  8. The tool shows a summary of your entered values, plus the cache level that corresponds to your request. Enter
    Y
    to confirm.
    Output 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:
  9. 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.
    Output 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:
  10. After the system reboots, the tool verifies that the configuration was applied successfully. If the current configuration does not match the requested configuration, you can either keep the current configuration or undo the changes and restore the last successful configuration.
    Output example:
    Waiting for reboot... Connected. Capsule was generated. Copying capsules from host to target ``hostname`` Capsules was copied Applying capsules for ``hostname``... Capsules were applied 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.
  11. After the cache configurator exits, enable RTCM to allow the cache allocation library to work properly. You can enable RTCM with the following commands:
    For systems running the PR1 release of the Yocto Project*-based BSP for Intel Atom® x6000E Series processors, run:
    /usr/share/tcc_tools/scripts/setup_ssram_v1/control_rtcm.sh enable reboot
    For other systems, run:
    /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 the cache level. The flow of the user interface is as follows:
  1. On the target system, confirm that the
    Software SRAM
    option in system firmware is enabled. For details, see Software SRAM Setting.
  2. If you have not done so, launch the tool as described in Launch the Cache Configurator.
  3. 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)
  4. Enter
    C
    to specify cache level.
    Do you want to specify for Latency (L) or Cache Level (C)?
  5. Enter the desired cache level.
    Please enter the desired cache level for this buffer L2 (2):
  6. 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:
  7. Enter the size of the buffer in bytes.
    Please enter the buffer size, in bytes: (estimated from 1 to 1310720 bytes):
  8. The tool shows a summary of your entered values, plus the latency value associated with your request. Enter
    Y
    to confirm.
    Output 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:
  9. 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 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.
    Output 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:
  10. After the system reboots, the tool verifies that the configuration was applied successfully. If the current configuration does not match the requested configuration, you can either keep the current configuration or undo the changes and restore the last successful configuration.
    Output example:
    Waiting for reboot... Connected. Capsule was generated. Copying capsules from host to target ``hostname`` Capsules was copied Applying capsules for ``hostname``... Capsules were applied 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.
  11. After the cache configurator exits, enable RTCM to allow the cache allocation library to work properly. You can enable RTCM with the following commands:
    For systems running the PR1 release of the Yocto Project*-based BSP for Intel Atom® x6000E Series processors, run:
    /usr/share/tcc_tools/scripts/setup_ssram_v1/control_rtcm.sh enable reboot
    For other systems, run:
    /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 intend to delete
    all
    software SRAM: On the target system, confirm that the
    Software SRAM
    option in system firmware is disabled. For details, see Software SRAM Setting.
  2. If you have not done so, launch the tool as described in Launch the Cache Configurator.
  3. 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)
  4. Specify the buffer to delete. You can choose to delete individual buffers or delete all.
    Specify which of the following cache allocations you wish to delete 1. L3 core [0, 1, 2, 3] (1048576 bytes) 2. Delete All Enter the option you want to proceed with:
  5. The tool shows a summary. Enter
    Y
    to confirm.
    Output 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:
  6. After you have confirmed your request, enter
    Y
    to apply the configuration. The system will reboot.
    Output example:
    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:
  7. After the system reboots, the tool verifies that the configuration was applied successfully. If the current configuration does not match the requested configuration, you can either keep the current configuration or undo the changes and restore the last successful configuration.
    Output example:
    Waiting for reboot... Connected. Capsule was generated. Copying capsules from host to target ``hostname`` Capsules was copied Applying capsules for ``hostname``... Capsules were applied 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.
  8. After the cache configurator exits, enable RTCM to allow the cache allocation library to work properly. You can enable RTCM with the following commands:
    For systems running the PR1 release of the Yocto Project*-based BSP for Intel Atom® x6000E Series processors, run:
    /usr/share/tcc_tools/scripts/setup_ssram_v1/control_rtcm.sh enable reboot
    For other systems, run:
    /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.