Circular Buffer State Tracking for Lock-Free Data Flow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for determining the state of shared circular buffers in embedded systems are inefficient, resource-intensive, and prone to issues like deadlocks, priority inversion, and hardware dependency, making it challenging to achieve parallel processing without complex mechanisms.

Innovation Solution

A system and method using producer and consumer lap indicators, in-pointer and out-pointer positions, and paperclipping to determine buffer states, enabling efficient data synchronization without locks, allowing parallel processing and reducing resource overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If locking mechanisms are used to determine buffer state, then data integrity is ensured, but system throughput decreases due to sequential operation requirements

Engineering Contradiction:
Improvedata integrityVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the state determination logic from traditional locking mechanisms by introducing a dedicated state variable that independently tracks buffer status. This separation allows the buffer state to be queried without acquiring locks, enabling parallel access while maintaining data integrity through the isolated state tracking mechanism.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a state variable as an intermediary between the buffer and access operations. This intermediary captures the buffer's full/empty state without requiring direct lock management, allowing producer and consumer entities to check buffer status and operate concurrently without mutual exclusion overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If traditional buffer state determination methods are used, then parallel processing is enabled, but resource overhead increases due to complex synchronization mechanisms

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidsynchronization mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the synchronization logic from complex traditional mechanisms by implementing a simplified state variable that directly represents buffer status. This extraction reduces the synchronization subsystem to essential state tracking, eliminating unnecessary complexity while preserving parallel processing capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter representation from complex lock states to a simple full/empty state variable. This parameter transformation simplifies the synchronization model by using straightforward boolean-like state indicators instead of intricate lock and semaphore mechanisms, reducing overall system complexity.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If buffer state checking is performed continuously, then data loss is prevented, but processor time is wasted due to busy waiting

Engineering Contradiction:
Improvedata loss preventionVSAvoidprocessor time consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent implements feedback through the state variable that continuously reflects buffer status without requiring active polling. Producer and consumer entities can check the state variable efficiently, and the system provides immediate feedback on buffer availability, eliminating the need for continuous busy-waiting loops while preventing data loss.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250329355A1Systems and methods for data synchronization
Publication Date: 2025.10.23 PATTERSON THOMAS J
  • US20250329355A1 patent drawing
  • US20250329355A1 patent drawing
  • US20250329355A1 patent drawing

AI summary

Embodiments describe a data synchronization mechanism, focusing on the efficient management of a circular buffer between producer and consumer processes. In an embodiment, a method uses a lapping technique to facilitate parallel processing without the need for locking mechanisms, ensuring continuous data flow and real-time responsiveness. Further, the method uses a paperclipping technique to record the state of the buffer prior to lap transitions to accurately determine buffer fullness without ambiguity, even when the producer and consumer pointers coincide. Additionally, a reset technique enables the system to mitigate dropped production items by allowing the producer to overwrite outdated data when the buffer is full, and the consumer is lagging. The mechanism is hardware-independent, operating system-agnostic, and can be implemented across various programming languages, making it highly adaptable for a broad range of applications in computing systems.