Memory Data Update Method Preventing Overwrite
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


