Circular Buffer Subsets for Parallel Data Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processing systems, such as embedded processors, face performance and power consumption challenges in performing iterative operations like the least-mean-square (LMS) adaptive FIR filter due to sequential execution and lack of data reuse.

Innovation Solution

Organizing a circular buffer into subsets and using memory load commands with offset and subset parameters to identify and load data addresses, enabling parallel processing and data reuse across iterative steps.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential execution is used for iterative processing operations, then power consumption is reduced, but performance and processing speed deteriorate

Engineering Contradiction:
Improveprocessing speedVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The circular buffer is segmented into multiple subsets (e.g., even and odd subsets), allowing different data elements to be accessed in parallel during iterative operations. This segmentation enables simultaneous reads from different buffer locations, improving processing throughput without proportionally increasing power consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a subset dimension to the traditional circular buffer addressing scheme. By organizing buffers into subsets and using subset parameters alongside offset parameters, the system enables parallel access paths that effectively add a dimensional layer to data retrieval operations, thereby improving performance without linearly increasing energy usage.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If data is loaded into circular buffer at each iterative step, then data availability is improved, but power consumption increases

Engineering Contradiction:
Improvedata availabilityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary organization of data into circular buffer subsets before iterative processing begins. By pre-positioning data elements in appropriate buffer subsets based on their access patterns, the system ensures data availability during iteration without requiring repeated load operations, thereby reducing power consumption while maintaining data accessibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The circular buffer structure allows old data to be automatically overwritten (discarded) when new data is loaded, while the subset organization enables recovery and reuse of previously loaded data in subsequent iterations. This reduces the frequency of new data loads, lowering power consumption while maintaining data availability when needed.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If input values are not shared between calculations, then calculation accuracy is maintained, but performance deteriorates

Engineering Contradiction:
ImproveperformanceVSAvoidcalculation accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The circular buffer subset mechanism creates implicit copies of data elements at different buffer locations. When the same input value is needed for multiple calculations in an iterative step, the buffer structure provides replicated access points through different subset references, enabling parallel performance without compromising calculation accuracy through shared state modifications.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11630671B1Circular buffer accessing device, system and method
Publication Date: 2023.04.18 STMICROELECTRONICS BEIJING R& D
  • US11630671B1 patent drawing
  • US11630671B1 patent drawing
  • US11630671B1 patent drawing

AI summary

A device includes a circular buffer, which, in operation, is organized into a plurality of subsets of buffers, and control circuitry coupled to the circular buffer. The control circuitry, in operation, receives a memory load command to load a set of data into the circular buffer. The memory load command has an offset parameter indicating a data offset and a subset parameter indicating a subset of the plurality of subsets into which the circular buffer is organized. The control circuitry responds to the command by identifying a set of buffer addresses of the circular buffer based on a value of the offset parameter and a value of the subset parameter, and loading the set of data into the circular buffer using the identified set of buffer addresses.