IP Library › Granted Patent US 11,816,358
Granted Patent B2
US 11,816,358 · App. 17/410,228 · Granted Nov 14, 2023

Preserving application data order in memory devices

Inventors: Pierre Labat (Campbell, CA); Nabeel Meeramohideen Mohamed (Round Rock, TX)
Assignee: Micron Technology, Inc.
G06F3/0659G06F3/064G06F3/0604G06F3/0679G06F12/0246G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,816,358
App. No.
17/410,228
Granted
Nov 14, 2023
Kind
B2
Abstract

A system and method for reordering data blocks received from a zone of a memory device. An example method includes sending, by a host system to a memory sub-system comprising a memory device, a plurality of write commands; receiving, by the host system from the memory sub-system, block allocation metadata, wherein the block allocation metadata references one or more locations in the memory device corresponding to a zone; generating, by the host system, a reorder map based on the block allocation metadata; reading a plurality of data blocks associated with the zone; and reordering, by the host system, the plurality of data blocks based on the reorder map.

Claims (43)

1. A method comprising:

sending, by a host system to a memory sub-system comprising a memory device, a plurality of write commands;

receiving, by the host system from the memory sub-system, block allocation metadata, wherein the block allocation metadata references one or more locations in the memory device corresponding to a zone;

generating, by the host system, a reorder map based on the block allocation metadata and file metadata associated to the plurality of write commands, wherein the reorder map associates each data block of a set of data blocks to its corresponding programmed position in the zone;

storing the reorder map in a file system associated with the host system;

reading a plurality of data blocks associated with the zone; and

reordering, by the host system, the plurality of data blocks based on the reorder map.

2. The method of claim 1 , wherein the memory sub-system comprises a Solid State Drive (SSD) and wherein the zone comprises a mapping space associated with logical block address space.

3. The method of claim 1 , wherein the reorder map comprises a data structure that indicates a mapping of a position of each data block in a structured set of data correlated to a logical block number as counted from an initial zone write pointer position.

4. The method of claim 1 , wherein the reorder map comprises a data structure that indicates an offset value between a position of each data block in the structured set of data and a logical block number as counted from an initial zone write pointer position.

5. The method of claim 1 , further comprising:

storing data associated with the reordered plurality of data blocks in a cache.

6. The method of claim 1 , further comprising:

sending, by a application to the file system, the reorder map using a system call.

7. The method of claim 1 , wherein the block allocation metadata comprises, for each of the plurality of data blocks, a corresponding logical block address.

8. The method of claim 1 , further comprising

generating the reordered map using file metadata associated with the plurality of data blocks.

9. The method of claim 1 , wherein generating the reorder map is performed by an application operating on a kernel of the host system.

10. The method of claim 1 , wherein reordering the plurality of data blocks based on the reorder map is performed by a file system operating on a kernel of the host system.

11. The method of claim 1 , wherein reading a plurality of data blocks associated with the zone comprises issuing a memory mapping instruction using an mmap( ) system call.

12. A system comprising:

a memory device; and

a processing device, operatively coupled with the memory device, to perform operations comprising:

responsive to a read access request, issuing a memory mapping instruction to establish a mapping between logical block addresses of a plurality of data blocks programmed to a zone of a memory sub-system to an address space in the memory device;

sending, to a file system, a reorder map generated based on block allocation metadata associated with the plurality of data blocks programmed to the zone and file metadata associated to the plurality of write commands, wherein the reorder map associates each data block of a set of data blocks to its corresponding programmed position in the zone;

reordering, by the file system, the plurality of data blocks based on the reorder map;

storing data associated with the reordered plurality of data blocks in a cache; and

accessing the reordered plurality of data blocks from the cache.

13. The system of claim 12 , wherein the reorder map comprises a data structure that indicates a mapping of a position of each data block in a structured set of data correlated to a logical block number as counted from an initial zone write pointer position.

14. The system of claim 12 , wherein the reorder map comprises a data structure that indicates an offset value between a position of each data block in the structured set of data and a logical block number as counted from an initial zone write pointer position.

15. The system of claim 12 , wherein the reorder map is generated using file metadata associated with the plurality of data blocks.

16. The system of claim 12 , wherein the memory mapping instruction comprises an mmap( ) system call.

17. A non-transitory computer-readable medium storing instructions, which when executed by a processing device, cause the processing device to perform operations comprising:

sending a plurality of write commands;

receiving block allocation metadata, wherein the block allocation metadata references one or more locations in a memory device corresponding to a zone;

generating, by a host system, a reorder map based on the block allocation metadata and file metadata associated to the plurality of write commands, wherein the reorder map associates each data block of a set of data blocks to its corresponding programmed position in the zone;

storing the reorder map in a file system associated with the host system;

reading a plurality of data blocks associated with the zone; and

reordering the plurality of data blocks based on the reorder map.

18. The non-transitory computer-readable medium of claim 17 , wherein the reorder map comprises a data structure that indicates a mapping of a position of each data block in a structured set of data correlated to a logical block number as counted from an initial zone write pointer position.

19. The non-transitory computer-readable medium of claim 17 , wherein the reorder map comprises a data structure that indicates an offset value between a position of each data block in the structured set of data and a logical block number as counted from an initial zone write pointer position.

20. The non-transitory computer-readable medium of claim 17 , wherein the processing device further performs operations comprising:

storing data associated with the reordered plurality of data blocks in a cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2022
From: LABAT, PIERRE; MOHAMED, NABEEL MEERAMOHIDEEN
To: MICRON TECHNOLOGY, INC.
Reel/Frame 059016/0377 →
Continuity (1)
Related Publication 20230065300A1 · Mar 2, 2023