Memory Controller Buffer Reordering for Disordered Flash Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Flash memory devices face challenges in improving access speed, particularly due to disordered data transfer and inefficient handling of access information.
Innovation Solution
A memory controller architecture that includes a buffer memory, memory interface, microprocessor, and host interface, which reads and writes data portions with assigned tag values, generates descriptors in chronological order, and uses a routing manager and DMA engine to ensure correct data transfer order.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is read from memory device in parallel portions, then data transfer speed is improved, but data order becomes disordered
Solution Approach 1:
The patent divides data into multiple portions with different tag values (first portion, second portion, third portion, etc.) that can be read in parallel from the memory device. Each portion is assigned a unique tag to enable later identification and reordering, thus achieving both parallel reading speed and data order stability.
Solution Approach 2:
The patent introduces a buffer memory as an intermediary component between the memory device and the host device. The buffer memory temporarily stores the disordered data portions and enables their reordering before transmission to the host, acting as a mediator that decouples the parallel reading process from the sequential data delivery requirement.
2Reliability
If descriptors are generated after all data transfer is complete, then data integrity is ensured, but processing time increases
Solution Approach 1:
The patent generates descriptors during the data transfer process itself, rather than waiting for completion. When a data portion is transferred to the buffer memory, its corresponding descriptor is generated immediately with the correct sequential order information. This preliminary generation of descriptors maintains data integrity while eliminating idle processing time.
Solution Approach 2:
The patent ensures continuous processing by generating descriptors concurrently with data transfer operations. The descriptor generation process does not wait for data transfer to complete but proceeds continuously as each portion arrives at the buffer, maximizing utilization of processing resources and eliminating idle time.
3Stability of the object's composition
If microprocessor waits for chronological order of access information, then data order is maintained, but productivity decreases
Solution Approach 1:
The patent implements a self-service mechanism where the buffer memory automatically manages the reordering of data portions based on tag values without requiring microprocessor intervention. The buffer memory includes a reordering unit that autonomously sorts incoming data portions into chronological order, freeing the microprocessor to perform other productive tasks while maintaining data order integrity.
4Speed
If data portions are read in parallel, then access speed is improved, but device complexity increases
Solution Approach 1:
The patent designs the buffer memory with multi-functional capabilities: it serves as both a temporary storage location for parallel data portions and an automatic reordering unit. The buffer memory's reordering unit uses tag values to automatically sort data portions chronologically, eliminating the need for separate complex control logic and reducing overall device complexity while maintaining parallel access speed.
Data Source
AI summary
A data processing method includes reading a memory device in response to a read command to respectively read multiple portions of predetermined data; respectively writing the portions in a buffer memory to complete data transfers of the portions of the predetermined data; sequentially providing access information corresponding to each portion of the predetermined data in response to completion of the data transfer of the corresponding portion; obtaining the access information of the predetermined data and accordingly generating multiple descriptors in chronological order of obtaining the access information; receiving and buffering the descriptors in a descriptor pool; sequentially selecting a latest descriptor from the descriptor pool according to a tag value and providing the latest descriptor to a direct memory access engine; and reading the buffer memory according to the latest descriptor to obtain at least a portion of the predetermined data by the direct memory access engine.


