Memory Controller Garbage Collection Block Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face challenges in minimizing complexity and performance deterioration while maximizing the use efficiency of memory devices, particularly in selecting optimal memory blocks for data processing to reduce loading and scanning times.
Innovation Solution
A memory system and method that utilize a controller to select source memory blocks with the least loading and scanning times by calculating and registering map data, map segments, and valid addresses, and performing garbage collection operations based on these parameters to optimize data transfer and storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the controller performs garbage collection on all memory blocks sequentially, then all memory blocks are cleaned, but the processing time and system complexity increase significantly
Solution Approach 1:
The controller pre-calculates and stores map data information (number of map segments, number of valid addresses) for each memory block before garbage collection. This preliminary action allows the controller to identify and prioritize memory blocks that require cleaning, avoiding the need to process all memory blocks equally and thereby reducing overall processing time while ensuring complete cleaning of necessary blocks.
2Measurement precision
If the controller loads and scans map data for all memory blocks, then accurate garbage collection decisions are made, but the loading and scanning time increase
Solution Approach 1:
The controller applies different processing strategies to different memory blocks based on their specific characteristics. By using pre-stored map data information, the controller can quickly identify memory blocks with high valid address density or specific patterns, focusing detailed map data analysis only where necessary rather than uniformly processing all blocks, thus maintaining decision accuracy while reducing overall time.
Solution Approach 2:
Map data information including the number of map segments and valid addresses is pre-calculated and stored in a data table during normal operation. This preliminary preparation eliminates the need to load and scan complete map data during garbage collection, as the controller can make accurate decisions based on the pre-computed metrics, significantly reducing loading and scanning time.
3Measurement precision
If detailed map data is stored for all memory blocks, then precise tracking of valid addresses is achieved, but the memory complexity and storage requirements increase
Solution Approach 1:
The controller extracts only the essential information from complete map data and stores it in a compact data table. Specifically, it stores the number of map segments and the number of valid addresses for each memory block, rather than storing the entire map data structure. This extraction approach maintains the precision needed for garbage collection decisions while significantly reducing the storage complexity and memory requirements.
4Productivity
If the controller selects memory blocks based on comprehensive parameters, then the most efficient blocks are chosen, but the calculation and selection complexity increase
Solution Approach 1:
The controller uses pre-calculated parameters (number of map segments, number of valid addresses) to represent memory block characteristics. By changing from analyzing complete map data structures to using these aggregated parameters, the controller can efficiently compare and select memory blocks based on simple numerical criteria stored in the data table, thereby improving selection efficiency while reducing calculation and selection complexity.
Data Source
AI summary
A memory system includes: a memory device suitable for including a plurality of pages where data are stored and a plurality of memory blocks including the pages; and a controller suitable for receiving a plurality of commands from a host, performing command operations in response to the commands in the memory blocks, updating map data for the memory blocks according to the command operations being performed, and registering information on the map data in a data table for each of the memory blocks.


