Memory Buffer Synchronization for Multidimensional Data Transforms

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data manipulation operations in memory, particularly in the context of neural networks, are inefficient and burdensome for CPUs due to the need for software interactions and lack of efficient hardware solutions for handling multidimensional array transformations.

Innovation Solution

A hardware unit with a memory reading block, a memory writing block, and a control channel is used to synchronize data operations, allowing for efficient manipulation of multidimensional arrays through nested loops and dynamic iteration adjustments based on loop indices and software flags, reducing CPU load.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If CPU software interacts with memory to perform data manipulation operations, then data transformation flexibility is improved, but processing speed and CPU performance deteriorate

Engineering Contradiction:
Improvedata transformation flexibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

A dedicated hardware unit is introduced as an intermediary between the CPU and memory, specifically designed to handle data manipulation operations. This hardware unit includes a reading block that reads data from memory, an internal buffer for temporary storage, and a writing block that writes processed data back to memory, thereby offloading processing tasks from the CPU and improving processing speed while maintaining transformation flexibility

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The hardware unit is designed to autonomously perform data manipulation operations without requiring continuous CPU intervention. The reading block, internal buffer, and writing block work together in a self-contained manner to complete data transformation tasks independently, allowing the CPU to focus on higher-level operations and thereby improving overall system productivity

Inventive Principle:
Principle #25Self-service

2Productivity

If hardware unit uses internal buffer for data manipulation, then processing efficiency is improved, but synchronization complexity between reading and writing blocks increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A control channel is established between the reading block and writing block to enable bidirectional communication and synchronization. The reading block and writing block exchange control signals through this channel to coordinate their operations, ensuring that data is properly synchronized as it moves through the internal buffer while maintaining high processing efficiency

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12602185B2Maintaining synchronisation between memory writing and reading blocks using an internal buffer and a control channel
Publication Date: 2026.04.14 IMAGINATION TECH LTD
  • US12602185B2 patent drawing
  • US12602185B2 patent drawing
  • US12602185B2 patent drawing

AI summary

A hardware unit for manipulating data stored in a memory comprises an internal buffer, a memory reading block, configured to read the data from the memory and write the data to the internal buffer. a memory writing block, configured to read the data from the internal buffer and write the data to the memory. The hardware unit optionally also comprises a control channel between the memory reading block and the memory writing block, wherein the memory reading block and the memory writing block are configured to communicate via the control channel to maintain synchronisation between them when writing the data to the internal buffer and reading the data from the internal buffer, respectively. The hardware unit may be configured to apply one or more transformations to multidimensional data in the memory. The hardware unit may be configured to traverse the multidimensional array using a plurality of nested loops.