Thread Atomicity for Unambiguous Parameter Sampling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In heterogeneous multi-core or multi-threaded processor environments, existing redundancy schemes face challenges in obtaining accurate and synchronized counter and state samples due to bus latencies and separate read cycles, leading to ambiguous results and loss of information.

Innovation Solution

The implementation of thread atomicity with deterministic synchronization, where thread requests are masked and commands are executed only after bus activity ceases and routines are completed, ensuring synchronous and lossless operations for counter and state sampling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple transmitters each have their own thread running on separate processor cores to control transmission and protocol state machine, then transmission control and protocol execution are improved, but accurate simultaneous sampling of counters and states becomes impossible due to bus latencies and separate read cycles

Engineering Contradiction:
Improvetransmission control capabilityVSAvoidsampling accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system separates the sampling control mechanism into individual thread masks for each transmitter thread. Each thread has its own mask bit that can be independently controlled, allowing the CPU to selectively mask specific threads during sampling operations while leaving others unaffected. This segmentation enables precise control over which threads are paused during the sampling window.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A new intermediary mechanism is introduced: a mask register and associated control logic that sits between the CPU and the thread execution units. This intermediary allows the CPU to atomically mask/unmask threads without directly interfering with their execution, providing a clean interface for synchronization. The mask register acts as a mediator that coordinates thread pausing with the sampling operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If the CPU performs multiple temporally dislocated read operations to obtain counter and state values, then reading flexibility is maintained, but deterministic synchronization and coherent snapshots cannot be achieved

Engineering Contradiction:
Improvereading flexibilityVSAvoidsynchronization determinism
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary action by masking the thread requests before the actual sampling read operations occur. The CPU sets the mask bit in advance, which prevents the thread from making any bus transactions or modifying counters/states during the sampling window. This preliminary masking ensures that when the CPU subsequently performs its read operations, the values it reads are guaranteed to be coherent and from the same moment in time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The masking mechanism maintains continuity by ensuring that the thread's useful action (data transmission and counter updating) is seamlessly paused during sampling and then resumed without interruption or data loss. The mask is temporarily applied only for the duration of the sampling operation, and the thread continues its normal operation immediately after unmasking, maintaining continuous productive work.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If cache-based approaches are used to provide deterministic synchronization in homogeneous core complexes, then cache coherency is improved, but hardware complexity increases and the approach cannot be applied to heterogeneous systems without data cache hardware

Engineering Contradiction:
Improvecache coherencyVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The invention extracts the synchronization function from the cache subsystem and relocates it to a simpler, dedicated masking mechanism. Instead of relying on complex cache coherency protocols and hardware to enforce synchronization, the system removes this dependency by using software-controlled thread masking that works independently of cache architecture. This extraction simplifies the hardware requirements while maintaining synchronization reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The masking mechanism is designed as a universal solution that works across heterogeneous processor architectures. Unlike cache-based approaches that require specific homogeneous core complexes with data cache hardware, the thread masking mechanism can be implemented on any processor that supports register operations, including heterogeneous systems with different core types, embedded processors, and systems without traditional cache hierarchies.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Reliability

If the counter or state is reset after the read operation, then counter overflow is prevented, but information may be lost during the period between read and write reset

Engineering Contradiction:
Improvecounter overflow preventionVSAvoiddata loss during reset interval
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system applies preliminary anti-action by masking the thread before the counter is reset. The mask prevents the thread from executing any operations that could modify the counter or state during the critical window between the CPU's read operation and the subsequent reset write operation. This preliminary masking counteracts the potential harm of information loss by ensuring the thread remains inert during the entire read-reset interval.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS9612881B2Method, apparatus, and system for unambiguous parameter sampling in a heterogeneous multi-core or multi-threaded processor environment
Publication Date: 2017.04.04 NXP USA INC
  • US9612881B2 patent drawing
  • US9612881B2 patent drawing
  • US9612881B2 patent drawing

AI summary

Apparatuses, methods, and systems are configured to perform unambiguous parameter sampling in a heterogeneous multi-core or multi-threaded environment by masking one or more thread requests; and, in response to bus activity ceasing for the one or more masked thread requests and completing any routine being processed for the one or more masked threads, processing a command by executing at least one of a command routine or a command thread, wherein the command routine or the command thread reads the parameter using thread atomicity with deterministic synchronization. One or more thread requests may be selected for masking by monitoring thread activity for each of a plurality of threads.