Circular Buffer Processor for Reducing Filter Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processors following a load store architecture, frequent memory accesses for filter coefficients and data in filter operations lead to increased processing time and power consumption due to repeated loading and address calculations.

Innovation Solution

A processor with a circular buffer that supplies data in a circular manner, reducing overlapping memory accesses by allowing data to be loaded into and stored from the buffer, and enabling operations between data in the buffer and general-purpose registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is repeatedly loaded from memory in filter operations, then data can be accessed, but processing time and power consumption increase

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

Solution Approach 1:

The circular buffer pre-loads and stores filter coefficients and data in advance, making them immediately available for repeated operations without requiring repeated memory accesses. This preliminary action eliminates waiting time and reduces both processing time and power consumption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The circular buffer acts as an intermediary between memory and the operation unit. Instead of directly accessing memory repeatedly, data flows through the circular buffer which maintains it in ready state, reducing the frequency of memory accesses and thereby lowering power consumption and processing time.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory is accessed frequently for filter operations, then data can be supplied, but the number of instructions and memory accesses increases

Engineering Contradiction:
Improvedata supply efficiencyVSAvoidnumber of instructions
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The circular buffer serves multiple functions: it stores filter coefficients, stores input data, and provides data to the operation unit in a circular manner. This multi-functionality eliminates the need for separate storage structures and reduces the number of instructions required for data management.

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

Solution Approach 2:

The circular buffer enables continuous data supply to the operation unit without interruption. By maintaining data in a ready state and providing it continuously, the system achieves high productivity without requiring repeated load instructions, thereby reducing instruction count while maintaining efficient data supply.

Inventive Principle:
Principle #20Continuity of useful action

3Ease of operation

If data is loaded and stored repeatedly in memory, then operations can be performed, but processing time increases

Engineering Contradiction:
Improveoperation feasibilityVSAvoidprocessing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

Data and filter coefficients are loaded into the circular buffer in advance before the operation begins. This preliminary loading ensures that all necessary data is immediately available during the operation, eliminating repeated memory access wait times and significantly reducing total processing time while maintaining operational feasibility.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11029956B2Processor and information processing system for instructions that designate a circular buffer as an operand
Publication Date: 2021.06.08 SONY SEMICON SOLUTIONS CORP
  • US11029956B2 patent drawing
  • US11029956B2 patent drawing
  • US11029956B2 patent drawing

AI summary

Data is supplied in a circular manner and overlapping memory accesses is suppressed in a processor. The processor includes a circular buffer and an instruction executing part. The circular buffer has a function of holding a plurality of pieces of data and reading the plurality of pieces of data in circulation. The instruction executing part executes an instruction that designates the circular buffer as an operand. That is, this processor has an instruction that designates the circular buffer as an operand, as an instruction set. With this configuration, the data is supplied in a circular manner from the circular buffer in the execution of the instruction by the processor.