IP Library › Granted Patent US 11,755,491
Granted Patent B2
US 11,755,491 · App. 17/681,384 · Granted Sep 12, 2023

Mapping supporting non-sequential writes at sequentially-written memory devices

Inventor: Kumar VKH Kanteti (Sunnyvale, CA)
Assignee: Micron Technology, Inc.
G06F12/0873G06F9/4498G06F12/0246G06F12/0804G06F12/0862G06F13/1673G06F2212/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,755,491
App. No.
17/681,384
Granted
Sep 12, 2023
Kind
B2
Abstract

A system includes integrated circuit (IC) dice having memory cells and a processing device coupled to the IC dice. The processing device is to perform operations including: causing a logic to enter an initial state associated with a first group of memory cells in response to an input-output (IO) write request directed at the first group of memory cells; retrieving a write pointer that includes a location within the first group of memory cells; causing the logic to transition from the initial state to a sequential IO state; and in response to determining the IO write request is directed to the location of the write pointer, causing data of the IO write request to be written to the plurality of IC dice starting at the location of the write pointer.

Claims (103)

1. A system comprising:

a plurality of integrated circuit (IC) dice having memory cells; and

a processing device coupled to the plurality of IC dice, the processing device to perform operations comprising:

causing a logic to enter an initial state associated with a first group of memory cells in response to an input-output (IO) write request directed at the first group of memory cells;

retrieving a write pointer that comprises a location within the first group of memory cells;

causing the logic to transition from the initial state to a sequential IO state; and

in response to determining the IO write request is directed to the location of the write pointer, causing data of the IO write request to be written to the plurality of IC dice starting at the location of the write pointer.

2. The system of claim 1 , wherein the operations being performed are executed by a kernel of an operating system on which a host file system is being executed, and wherein the logic comprises a state machine.

3. The system of claim 2 , wherein the kernel is programmed with access to physical addresses of groups of memory cells of the plurality of IC dice, wherein the kernel is to target sequential write operations and subsequent read operations to the physical addresses.

4. The system of claim 1 , further comprising:

a non-volatile memory (NVM) buffer coupled to the processing device and to the plurality of IC dice; and

wherein the operations further comprise:

allocating memory within the NVM buffer for the first group of memory cells; and

in response to a subsequent IO write request being directed at a second group of memory cells:

causing the logic to transition from the sequential IO state to a free state;

freeing the allocated memory within the NVM buffer associated with the first group of memory cells; and

causing the logic to transition from the free state to a completed state with reference to memory allocation for the first group of memory cells.

5. The system of claim 1 , further comprising:

a non-volatile memory (NVM) buffer coupled to the processing device and to the plurality of IC dice; and

wherein the operations further comprise:

allocating memory within the NVM buffer for the first group of memory cells;

updating the location of the write pointer upon completion of the IO write request; and

in response to determining that a subsequent IO write request is directed at a target address within the plurality of IC dice that is greater than an address of the location of the write pointer:

causing the logic to transition from the sequential IO state to a non-sequential write state; and

causing second data associated with the subsequent IO write request, and with IO write requests directed at a remainder of unwritten memory cells of the first group of memory cells, to be written to the allocated memory of the NVM buffer.

6. The system of claim 5 , wherein the operations further comprise:

storing, to a logical-to-physical (LTP) mapping data structure, an entry that maps the second data from a logical block address (LBA) to a memory chunk in the NVM buffer allocated to the first group of memory cells; and

in response to a read request directed at the LBA address, returning data stored in the memory chunk of the NVM buffer.

7. The system of claim 5 , wherein the operations further comprise:

detecting a non-sequential IO write request being directed at a second group of memory cells; and

in response to the detecting:

causing the logic to transition from the non-sequential write state to a reclaim state;

causing the second data to be written to the first group of memory cells starting from the location of the write pointer;

closing the first group of memory cells to further writing;

causing the logic to transition from the reclaim state to a free state; and

freeing the allocated memory within the NVM buffer associated with the first group of memory cells.

8. The system of claim 1 , further comprising:

a non-volatile memory (NVM) buffer coupled to the processing device and to the plurality of IC dice; and

wherein the operations further comprise:

allocating memory within the NVM buffer for the first group of memory cells;

updating the location of the write pointer upon completion of the IO write request; and

in response to determining that a subsequent IO write request is directed to a target address within the plurality of IC dice that is less than an address of the location of the write pointer:

causing the logic to transition from the sequential IO state to a pre-fetch state;

causing second data associated with the subsequent IO write request, and that has already been written from a beginning of the first group of memory cells, to be written to the allocated memory of the NVM buffer; and

causing the logic to transition from the pre-fetch state to a metadata state.

9. The system of claim 8 , wherein the operations further comprise storing, to a logical-to-physical (LTP) mapping data structure, an entry that maps the second data from a logical block address (LBA) to a memory chunk in the NVM buffer allocated to the first group of memory cells.

10. The system of claim 8 , wherein, within the metadata state, the operations further comprise:

accessing an additional IO write request directed to the first group of memory cells; and

causing third data associated with the additional IO write request to be written to the allocated memory of the NVM buffer.

11. The system of claim 10 , wherein the operations further comprise:

detecting a non-sequential IO write request being directed at a second group of memory cells; and

in response to the detecting:

causing the logic to transition from the metadata state to a reclaim state;

causing the second data and the third data to be written to the first group of memory cells starting from the beginning of the first group of memory cells to the location of the write pointer;

closing the first group of memory cells to further writing;

causing the logic to transition from the reclaim state to a free state; and

freeing the allocated memory within the NVM buffer associated with the first group of memory cells.

12. A method comprising:

accessing an input/output (IO) write request associated with first data, the IO write request directed at a first group of memory cells of a plurality of integrated circuit (IC) dice;

retrieving, by a processing device, a write pointer that comprises a location within the first group of memory cells;

allocating memory, by the processing device, within a non-volatile memory (NVM) buffer for the first group of memory cells; and

in response to determining that a subsequent IO write request is directed to a target address that is greater than an address of the location of the write pointer:

causing, by the processing device, a logic to transition from a sequential IO state to a non-sequential write state; and

causing, by the processing device, second data to be written to the allocated memory of the NVM buffer, wherein the second data is associated with one of the subsequent IO write request or an IO write request directed at a remainder of unwritten memory cells of the first group of memory cells.

13. The method of claim 12 , further comprising:

causing the logic to transition from an initial state to the sequential IO state; and

causing, by the processing device, the first data of the IO write request to be written to the plurality of IC dice starting from the location of the write pointer.

14. The method of claim 12 , further comprising:

storing, to a logical-to-physical (LTP) mapping data structure, an entry that maps the second data from a logical block address (LBA) to a memory chunk in the NVM buffer allocated to the first group of memory cells; and

in response to a read request directed at the LBA address, returning data stored in the memory chunk of the NVM buffer.

15. The method of claim 12 , further comprising:

detecting a non-sequential IO write request being directed at a second group of memory cells; and

in response to the detecting:

causing the logic to transition from the non-sequential write state to a reclaim state;

causing the second data to be written to the first group of memory cells starting from the location of the write pointer;

closing the first group of memory cells to further writing;

causing the logic to transition from the reclaim state to a free state; and

freeing the allocated memory within the NVM buffer associated with the first group of memory cells.

16. A method comprising:

accessing an input/output (IO) write request associated with first data, the IO write request directed at a first group of memory cells of a plurality of integrated circuit (IC) dice;

retrieving, by a processing device, a write pointer that comprises a location within the first group of memory cells;

allocating memory, by the processing device, within a non-volatile memory (NVM) buffer for the first group of memory cells; and

in response to determining that a subsequent IO write request is directed at a target address that is less than an address of the location of the write pointer:

causing, by the processing device, a logic to transition from a sequential IO state to a pre-fetch state associated with the first group of memory cells; and

causing, by the processing device, second data to be written to the allocated memory of the NVM buffer, wherein the second data is associated with the subsequent IO write request and has been written from a beginning of the first group of memory cells.

17. The method of claim 16 , further comprising:

causing the logic to transition from an initial state to the sequential IO state; and

causing the first data of the IO write request to be written to the plurality of IC dice starting from the location of the write pointer.

18. The method of claim 16 , further comprising:

storing, to a logical-to-physical (LTP) mapping data structure, an entry that maps the second data from a logical block address (LBA) to a memory chunk in the NVM buffer allocated to the first group of memory cells; and

in response to a read request directed at the LBA address, returning data stored in the memory chunk of the NVM buffer.

19. The method of claim 16 , the method further comprising:

causing the logic to transition from the pre-fetch state to a metadata state;

accessing an additional IO write request to the first group of memory cells; and

causing third data associated with the additional IO write request to be written to the allocated memory of the NVM buffer.

20. The method of claim 19 , further comprising:

detecting a non-sequential IO write request being directed at a second group of memory cells; and

in response to the detecting:

causing the logic to transition from the metadata state to a reclaim state;

causing the second data and the third data to be written to the first group of memory cells starting from the beginning of the first group of memory cells to the location of the write pointer;

closing the first group of memory cells to further writing;

causing the logic to transition from the reclaim state to a free state; and

freeing the allocated memory within the NVM buffer associated with the first group of memory cells.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2022
From: KANTETI, KUMAR VKH
To: MICRON TECHNOLOGY, INC.
Reel/Frame 060411/0224 →
Continuity (2)
Continuation 16949850 · Nov 17, 2020
Related Publication 20220179794A1 · Jun 9, 2022