Developer Guide

  • 2022.1
  • 09/08/2022
  • Public
Contents

Real-Time Communication Demo

Demo shows technologies and how to write code using those technologies. Demo is not a performance benchmark. The output examples shown here are for illustration only. Your output may vary.
The
tcc_rt_communication_demo
is a set of example programs and scripts that demonstrates the benefit of combining the Cache Allocation Library with Time-Sensitive Networking (TSN) provided by Intel. The
tcc_rt_communication_demo
operates in two modes: non-optimized (
nonopt
) and optimized (
opt
).
The following describes the
tcc_rt_communication_demo
in
nonopt
mode:
  • Does not use
    Intel® TCC Mode
    in the BIOS, so the platform is not optimized for real-time tasks.
  • Uses raw sockets (
    AF_PACKET
    ) to send or receive data over the network. Network traffic competes with TCC network packets.
  • Does not use L2/L3 cache usage optimizations, so data processed on the same core evicts TCC data from the cache and increases the time to access the data.
The following describes the
tcc_rt_communication_demo
in
opt
mode:
  • Uses
    Intel® TCC Mode
    set to
    ON
    in the BIOS so the platform is optimized for real-time task executions.
  • Uses the eXpress Data Path (
    AF_XDP
    ) packets optimized for packet processing time. Packets will travel to the memory faster.
  • Uses the
    Software SRAM
    feature to keep data in the cache with a predictable access time.
Demo shows TSN as a set of standards for real-time Ethernet communication, created by the IEEE 802.1 working group. Demo also uses the OPC Unified Architecture (OPC UA*) for data transfer between systems. The Pub/Sub type of communication implemented by the open62541 library is used by this demo.
In this guide, the IEEE terms “grandmaster” and “slave” are referred to as “primary” and “secondary,” respectively.
The demo requires two target systems, referred to as Board A and Board B to simulate two scenarios.
In the first, or
basic
scenario, Board A runs a data processing workload and sends a network packet to Board B every 500 µsec.
In the second, or
single-input single-output (SISO)
scenario, Board A runs a data processing workload and sends a network packet to Board B. Board B receives the network packet, runs a data processing workload, and returns the network packet to Board A.
To simulate a data processing task, the boards run a cyclic workload. The workload generates a pseudo-random linked list and walks through the list.
The demo supports optimized (
opt
) and non-optimized (
noopt
) modes of operation. In the
opt
mode, the pseudo-random linked list is placed into cache using the Cache Allocation Library to make data access time more predictable. You can run the demo in each mode and compare the results.
The network packet is an L2 Ethernet-based packet. The packet contains sequence number and source timestamp information. To generate network interference, the demo uses the Linux* program, iperf3.

Product and Performance Information

1

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