Memory Controller Randomness-Property Control for Data Access Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Memory devices, such as Flash memory, face performance reduction due to excessive internal operations in response to host-side write requests, leading to insufficient transmission bandwidth for DMA operations, and existing solutions may introduce side effects.
Innovation Solution
A method and apparatus for data access management using randomness-property control, involving seed-aware garbage collection, where data is randomized with seeds before programming into single level cell blocks and non-SLC blocks, optimizing internal operations without occupying DRAM bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the controller IC frequently accesses the DRAM to perform internal operations, then the internal operations can be completed, but the transmission bandwidth of the DRAM becomes insufficient for DMA operations
Solution Approach 1:
The patent segments the memory system into multiple channels: a first channel for DMA operations between the host device and DRAM, and a second channel for internal operations between the controller IC and DRAM. This segmentation allows simultaneous operation of DMA and internal operations without bandwidth contention, resolving the contradiction between completing internal operations and maintaining DRAM transmission bandwidth.
2Reliability
If the memory device spends too much time on internal operations in response to host-side write requests, then data can be managed properly, but the overall performance is reduced
Solution Approach 1:
The patent implements preliminary action by pre-randomizing data with seeds before programming into SLC blocks during the data reception stage. This preliminary randomization enables more efficient garbage collection operations later, as the randomized data distribution allows for faster identification and consolidation of valid data, thereby improving overall performance while maintaining reliable data management.
Solution Approach 2:
The patent introduces an intermediary mechanism using randomized data with seeds as a mediator between data reception and garbage collection. By randomizing data with seeds before storage, the system creates an intermediate state that facilitates more efficient subsequent operations, reducing the time spent on internal operations while maintaining data integrity and management reliability.
3Productivity
If data is randomized with seeds before programming into SLC blocks, then garbage collection efficiency is improved, but additional processing steps are required
Solution Approach 1:
The patent applies self-service by having the system randomize data with seeds during the initial data reception stage, which then automatically benefits subsequent garbage collection operations. The randomized data structure serves itself by enabling more efficient garbage collection without requiring additional complex processing steps during the garbage collection phase, as the seed information is already embedded in the stored data.
Data Source
AI summary
A method for performing data access management of a memory device with aid of randomness-property control and associated apparatus are provided. The method may include: receiving a plurality of host commands from a host device and performing data access on the NV memory according to the plurality of host commands, for example, in response to at least one host write command, programming data into at least one single level cell (SLC) block to be first stored data corresponding to a data reception stage; and performing a seed-aware garbage collection (GC) procedure to collect valid data among the first stored data of the at least one SLC block into at least one non-SLC block to be second stored data corresponding to a data storage stage, for example, performing a randomness-property checking operation on multiple seeds to selectively determine respective data of multiple pages within the SLC block as target data.


