Memory Controller Validity Check via Segmented Block Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory systems face inefficiencies in garbage collection, particularly in determining valid data within memory blocks, leading to increased operational complexity and performance degradation, especially when handling large amounts of data.
Innovation Solution
A memory system with a controller that splits memory blocks into parts based on valid and invalid data attributes, using a valid page count to determine data validity and migrate data accordingly, thereby reducing the need for extensive validity checks and optimizing resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the controller checks validity of each data in every memory block during garbage collection, then data validity accuracy is improved, but the time and resources required for garbage collection increase significantly
Solution Approach 1:
The memory block is divided into a first part and a second part. The controller checks validity of data only in the first part (which contains data programmed before a reference time), while assuming data in the second part (programmed at or after reference time) is valid. This segmentation reduces the number of validity checks needed while maintaining accuracy.
Solution Approach 2:
The controller performs preliminary organization of data by programming time, separating data into two parts based on a reference time. This preliminary action enables the controller to make assumptions about data validity in the second part without exhaustive checking, thereby reducing garbage collection time while maintaining accuracy through the structured approach.
2Manufacturing precision
If the controller performs exhaustive validity checks on all data in memory blocks, then data migration accuracy is improved, but operational complexity and resource usage increase
Solution Approach 1:
The memory block is segmented into a first part (data programmed before reference time) and a second part (data programmed at or after reference time). This segmentation simplifies the operational complexity by reducing the scope of validity checks to only the first part, while maintaining migration accuracy through the time-based classification approach.
Solution Approach 2:
The controller performs preliminary classification of data based on programming time before migration. This preliminary action organizes data into two parts, enabling the controller to determine validity more efficiently and reduce operational complexity while maintaining accurate data migration decisions.
3Reliability
If the controller checks every page in a memory block for valid data, then garbage collection completeness is improved, but productivity and processing speed decrease
Solution Approach 1:
The memory block is divided into a first part and a second part based on a reference time. The controller checks validity only in the first part and migrates data from both parts based on this check. This segmentation maintains garbage collection completeness for the first part while significantly improving processing speed by avoiding redundant checks in the second part.
Solution Approach 2:
The controller performs preliminary time-based classification of data pages before garbage collection processing. This preliminary action enables the controller to identify which pages require validity checks (first part) and which can be processed more efficiently (second part), thereby maintaining completeness while improving overall processing speed and productivity.
Data Source
AI summary
A memory system includes a memory device including plural memory blocks storing plural pieces of data classified by a first attribute and a second attribute different from the first attribute, and a controller configured to determine whether each data stored in each page in a first part of a target memory block for garbage collection in the memory device has either the first attribute or the second attribute, to determine that all data stored in a second part of the memory block has one of the first attribute and the second attribute, based on a first attribute page count of the memory block and the number of pages storing data of the first attribute in the first part of the memory block, and to migrate data having one of the first attribute and the second attribute to another memory block.


