Introduction to Intel® Time Coordinated Computing (Intel® TCC)
Learn about Intel® Time Coordinated Computing, and the hardware and BIOS options to create hard real-time applications.
Intel® Time Coordinated Computing including Intel® TCC Tools
Intel® processors are multipurpose and can serve a wide range of use cases from data analysis in the cloud, to gaming PCs, traditional office laptops, and devices working at the network's edge. Intel is introducing a new set of features called Intel® Time Coordinated Computing (Intel® TCC) to augment the compute performance of its processors with the ability to address the stringent temporal requirements of real-time applications.
Hardware support for Intel® TCC will debut with the Intel Atom® x6000E Series processor (code name Elkhart Lake), 11th Generation Intel® Core™ processors (codename Tiger Lake UP3), and Intel® Xeon® processors (formerly know as Tiger Lake H).
The ongoing industry transformation drives the demand for converged solutions capable of satisfying real-time requirements while staying generally power-efficient and leaving sufficient performance for concurrent tasks. The key value of Intel® TCC is performance improvements for latency-sensitive applications when they are running alongside non time-constrained applications on the same system.
While Intel® TCC features reside in the processor, their full potential is unlocked when the whole solution stack is optimized from top-to-bottom. Intel offers a reference real-time software stack that abstracts these hardware features to accelerate hardware configuration and application development.
There are various definitions of real-time as a market segment or set of technologies or just real-time in general. The one that we use establishes a taxonomy of real-time systems based on requirements and usages they can satisfy. Many of consumers use cases feature real-time characteristics, which are either soft or firm according to the proposed taxonomy. What they have in common is that any delays in data processing or event handling leading to visible quality of service degradation or failure can be recovered from. Hard real-time, unlike the other two, are super-sensitive to temporal precision, which, if violated, can lead to irrecoverable system damage. Intel’s IoT products are primarily focused on satisfying hard real-time use cases, and hardware and software systems that must operate within defined rules and deadlines. These systems are necessary, for instance in industrial automation, robotics, automotive, and other areas. The projected real-time compute performance using Intel TCC allows for:
- 1 ms cycle time with the out-of-box configuration
- Sub-200 us cycle time with the Intel® Time Coordinated Computing Mode (Intel® TCC Mode) set in the BIOS
- Flexible real-time tuning for a range of cycle times by using Intel® TCC Tools
So, what does it take to employ Intel TCC to attain real-time requirements.
As a starting point you need to pick the processor that supports Intel TCC. Review the Intel TCC website for the latest list of supported platforms and SKUs.
Basic real-time requirements are covered using board support packages with real-time optimizations that are based on Yocto Project* distribution of Linux* with real-time kernel and optimized drivers to address latency introduced by the OS. This can help you satisfy cycle times in the low milliseconds range out of the box.
If that is not enough to satisfy your hard real-time requirements, the next step is to enable Intel® TCC Mode in the BIOS. This further reduces latency by disabling most of the power management features and by enabling key Intel® TCC features, and other optimizations via a single BIOS setting. Intel TCC Mode offers system software optimization that already may be sufficient to satisfy cycle times in the milliseconds to hundreds of microseconds range.
Finally, you may need optimizations to decrease cycle times to sub-100 microseconds, balance system power consumption, or address unique demands of some real-time applications. This requires granular tuning techniques that configure cache, IO, and the processor fabric. This is the more advanced level of tuning that is possible with Intel TCC Tools.
Here's a more detailed view of how the Intel TCC tools are aligned with the systems software stack. You can see that Intel provides tools for the complete optimization workflow, starting with the hardware down at the bottom, continuing with the firmware, drivers, OS, middleware all the way up to the different levels of support that come with each of those.
All these layers can be used together or separately so that the entire software stack meets your requirements for real-time systems.
In addition to implementing TCC support in the firmware and operating system, Intel is introducing a new product called Intel TCC Tools, which contains APIs, utilities, sample applications, documentation and more to help customers and developers unlock the potential of Intel processors real-time capabilities.
The features offering real-time configuration and optimization focus on workload-aware processor tuning and optimizations to help bound data access timings for applications.
The time synchronization and communications features offer samples that you can use as starting points for the applications requiring precise time synchronization.
Finally, measurement and analysis provides APIs and samples to help you in debugging, troubleshooting, and finding out your measurement and analysis needs.
Here’s a more detailed look at how the various components of Intel® TCC Tools work to solve your real-time needs.
Step 1: Set up your target system with the board support package, which provides a real-time kernel and optimized drivers. Run your real-time application along with other applications, per your expected use case, under worst-case conditions. Check whether deadlines and system requirements are met. If not, proceed to the next step.
Step 2: Enable Intel® TCC Mode in the firmware. Diagnose whether you have additional real-time needs and where your performance bottlenecks are. If needed, then proceed with Intel® TCC Tools, which provide advanced-level tuning by using features in the processor and BIOS.
Step 3: Install Intel® TCC Tools. Use the real-time readiness checker to verify the configuration of your system, and that it is real-time ready.
Step 4: Run your real-time application along with other applications again to recheck the deadlines.
Step 5: Instrument your code with measurement library APIs. Use Intel® VTune™ Profiler or other profiling tools to help find the hot spots and bottlenecks in your code.
Step 6a: If you find that data access latencies exceeds requirements, use the cache configurator to create a software SRAM buffers, choosing from initial presets if you’d like. Add cache allocation library APIs into your real-time application to use the software SRAM buffers and improve data access timings.
Step 6b: If you find that data transfer latencies exceed requirements, or you need a better balance of power savings and performance, use the data streams optimizer. It can balance real-time performance with system power consumption or computational resources available for other tasks.
In summary, we're offering Intel TCC enabled hardware and various software components that can be used together or separately, giving you the greatest amount of flexibility in delivering real-time performance.
To find out more, I'd encourage you to visit the Intel IoT Real-Time Technologies page. To understand the foundations of real-time tuning that Intel offers. Please read the published tuning guides for the supported processor families, and to get hands-on experience with Intel TCC, download the board support package and other basic software packages from the Intel Resource and Design Center. Finally, download and try the TCC tools package from the Intel® Developer Zone.
Product and Performance Information
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.