Memory Data Update Method Preventing Overwrite

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing methods for updating blocks of data elements in memory face challenges due to changes in data size after encoding, leading to inconsistent memory usage and potential data overwriting, especially when updating data that expands in size.

Innovation Solution

A method that reads and updates data for a block of data elements in memory by processing and writing back data in a way that avoids overwriting other data groups, using a selected memory address and alternating between encoded and uncompressed data to manage memory efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data for a block of data elements is read in from memory, processed, and written back to the same memory region, then the data can be updated efficiently, but the updated data may overwrite data for other blocks that has not yet been read in

Engineering Contradiction:
Improvedata update efficiencyVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The memory system is segmented into a first memory region for storing original block data and a second memory region for storing updated block data. This spatial segmentation allows independent access and processing of different memory regions, preventing data overwriting while maintaining efficient update operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A second memory region acts as an intermediary buffer between the original data in the first memory region and the final updated data. This intermediary region allows data to be processed and temporarily stored without affecting the integrity of the original data or other blocks that have not yet been processed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If data is encoded to compress it and reduce bandwidth and memory consumption, then memory usage is reduced, but the size of updated data may change (increase) after processing

Engineering Contradiction:
Improvememory consumptionVSAvoiddata size flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The system dynamically adapts to varying data sizes by providing a dedicated second memory region that can accommodate updated data of any size. The memory allocation is flexible and adjusts to the actual size requirements of processed blocks, whether compressed or expanded, without affecting other data storage.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The solution moves from one-dimensional memory usage (single memory region) to two-dimensional memory usage (first memory region for original data, second memory region for updated data). This dimensional change allows independent size variations in each region without conflict.

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

3Productivity

If data for a block is processed and the updated data size differs from the original block size, then encoding efficiency varies, but consistent memory allocation becomes difficult

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Memory is segmented into dedicated regions that simplify management. The first memory region handles original blocks with consistent allocation, while the second memory region handles updated blocks with flexible allocation. This segmentation reduces the complexity of managing variable-sized data while maintaining processing efficiency.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10824357B2Updating data stored in a memory
Publication Date: 2020.11.03 ARM LTD
  • US10824357B2 patent drawing
  • US10824357B2 patent drawing
  • US10824357B2 patent drawing

AI summary

A process of updating data for a block of an array of data elements stored in an allocated memory region for the block comprises reading in data for a first group of the data elements, updating the data for the first group, and then writing back the updated data to memory. The process can avoid overwriting data for a second group of the data elements that is yet to be read in from the memory region by writing back the updated data for the first group starting at a selected memory address, for example other than the start address of the memory region. The data for the second group of data elements can then be read in and updated, and the updated data can be written back to memory. The process can reduce the amount of memory bandwidth and local cache that needs to be used.