IP Library › Granted Patent US 12,164,435
Granted Patent B2
US 12,164,435 · App. 18/160,225 · Granted Dec 10, 2024

Devices, systems, and methods of logical-to-physical address mapping

Inventors: Ashutosh Kumar Das (Cupertino, CA); Manuel Antonio d'Abreu (El Dorado Hills, CA)
Assignee: SMART IOPS, INC.
G06F12/10G06F2212/657
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 12,164,435
App. No.
18/160,225
Granted
Dec 10, 2024
Kind
B2
Abstract

Devices, systems, and methods are provided that cause a controller to receive a first command to read or write first data from or to a first logical address; and determine a first mapped logical address that the first logical address is mapped to. A first plurality of logical addresses is mapped to the first mapped logical address and includes the first logical address. The controller reads a first data structure at the first mapped logical address. The first data structure includes a pointer to a first intermediate physical address. The controller reads a second data structure at the first intermediate physical address. The second data structure includes a plurality of pointers to target physical addresses. The plurality of pointers includes a pointer to a first target physical address for the first logical address. The controller reads or writes the first data from or to the first target physical address.

Claims (49)

1. A solid-state storage system, comprising:

a controller;

on-controller memory configured to provide instructions for execution by the controller to perform operations; and

a plurality of memory devices coupled to the controller, the plurality of memory devices for storing data and comprising non-volatile memory;

wherein the controller is configured to:

manage a logical-to-physical address mapping for mapping a plurality of logical addresses to a plurality of target physical addresses, wherein the plurality of logical addresses comprises a plurality of groups of logical addresses having more than one logical address, wherein each group of the plurality of groups is mapped to a respective mapped logical address of a plurality of mapped logical addresses such that each logical address of a respective group is mapped to the respective mapped logical address, wherein the target physical addresses are locations in the plurality of memory devices, and wherein the plurality of mapped logical addresses are locations in the on-controller memory;

manage a plurality of first data structures comprising a respective first data structure at each respective mapped logical addresses, wherein each respective first data structure comprises a respective first pointer that points to a respective intermediate physical address of a plurality of intermediate physical addresses; and

manage a plurality of second data structures comprising a respective second data structure at each respective intermediate physical address, wherein each respective second data structure comprises a respective plurality of second pointers that each point to respective target physical addresses of the plurality of target physical addresses, and wherein each respective plurality of second pointers comprises a second pointer for each logical address in one of the plurality of groups of logical addresses.

2. The solid-state storage system of claim 1 , wherein at least one first data structure further comprises a cached location for an alternative pointer to a target physical addresses, and wherein the managing of the plurality of second data structures comprises:

caching the alternative pointer to the cached location of the at least one first data structure; and

mapping one of the logical addresses based on the alternative pointer instead of the respective first pointer in the at least one first data structure.

3. The solid-state storage system of claim 2 , wherein the at least one first data structure comprises less than or equal to N−1 number of pointers to target physical addresses stored in cached locations, wherein the respective group of logical addresses that is mapped to the at least one first data structure has N number of logical addresses, and wherein the N−1 number of pointers to target physical addresses is stored in cached locations for the respective group of logical addresses.

4. The solid-state storage system of claim 3 , wherein the on-controller memory comprises dynamic random access memory (DRAM), wherein the plurality of first data structures is located in the DRAM, and wherein the plurality of second data structures is located in the plurality of memory devices and absent in the on-controller memory.

5. The solid-state storage system of claim 2 , wherein the at least one first data structure further comprises additional cached locations for additional alternative pointers to target physical addresses, wherein the managing of the plurality of second data structures further comprises:

caching the additional alternative pointers to the additional cached location of the at least one first data structure; and

mapping additional logical addresses based on the additional alternative pointers instead of the respective first pointer in the at least one first data structure.

6. The solid-state storage system of claim 2 , wherein the caching of the alternative pointer is performed in response to reading one of the second data structures, and wherein the alternative pointer comprises one of the second pointer from read second data structure.

7. The solid-state storage system of claim 1 , wherein the on-controller memory comprises dynamic random access memory (DRAM), wherein the plurality of first data structures is located in the DRAM, and wherein the plurality of second data structures is located in the plurality of memory devices and absent in the on-controller memory.

8. A method for mapping logical addresses to target physical address in a solid-state storage system, the method comprising:

receiving, by a controller, instructions from an on-controller memory, the instructions for execution by the controller to perform operations; and

sending, by the controller, read and write commands to a plurality of memory devices coupled to the controller, the plurality of memory devices for storing data and comprising non-volatile memory;

managing, by the controller, a logical-to-physical address mapping for mapping a plurality of logical addresses to a plurality of target physical addresses, wherein the plurality of logical addresses comprises a plurality of groups of logical addresses having more than one logical address, wherein each group of the plurality of groups is mapped to a respective mapped logical address of a plurality of mapped logical addresses such that each logical address of a respective group is mapped to the respective mapped logical address, wherein the target physical addresses are locations in the plurality of memory devices, and wherein the plurality of mapped logical addresses are locations in the on-controller memory;

managing, by the controller, a plurality of first data structures comprising a respective first data structure at each respective mapped logical addresses, wherein each respective first data structure comprises a respective first pointer that points to a respective intermediate physical address of a plurality of intermediate physical addresses;

managing, by the controller, a plurality of second data structures comprising a respective second data structure at each respective intermediate physical address, wherein each respective second data structure comprises a respective plurality of second pointers that each point to respective target physical addresses of the plurality of target physical addresses, and wherein each respective plurality of second pointers comprises a second pointer for each logical address in one of the respective plurality of groups of logical addresses.

9. The method of claim 8 , wherein at least one first data structure further comprises a cached location for an alternative pointer to a target physical addresses, and wherein the managing of the plurality of second data structures comprises:

caching the alternative pointer to the cached location of the at least one first data structure; and

mapping one of the logical addresses based on the alternative pointer instead of the respective first pointer in the at least one first data structure.

10. The method of claim 9 , wherein the at least one first data structure comprises less than or equal to N−1 number of pointers to target physical addresses stored in cached locations, wherein the respective group of logical addresses that is mapped to the at least one first data structure has N number of logical addresses, and wherein the N−1 number of pointers to target physical addresses is stored in cached locations for the respective group of logical addresses.

11. The method of claim 10 , wherein the on-controller memory comprises dynamic random access memory (DRAM), wherein the plurality of first data structures is located in the DRAM, and wherein the plurality of second data structures is located in the plurality of memory devices and absent in the on-controller memory.

12. The method of claim 9 , wherein the at least one first data structure further comprises additional cached locations for additional alternative pointers to target physical addresses, wherein the managing of the plurality of second data structures further comprises:

caching the additional alternative pointers to the additional cached location of the at least one first data structure; and

mapping additional logical addresses based on the additional alternative pointers instead of the respective first pointer in the at least one first data structure.

13. The method of claim 9 , wherein the caching of the alternative pointer is performed in response to reading one of the second data structures, and wherein the alternative pointer comprises one of the second pointer from read second data structure.

14. The method of claim 8 , wherein the on-controller memory comprises dynamic random access memory (DRAM), wherein the plurality of first data structures is located in the DRAM, and wherein the plurality of second data structures is located in the plurality of memory devices and absent in the on-controller memory.

15. A non-transitory computer-readable storage medium storing one or more programs for execution by a controller of a solid-state storage system, the one or more programs including instructions for performing operations comprising:

receiving, by a controller, instructions from an on-controller memory, the instructions for execution by the controller to perform operations; and

sending, by the controller, read and write commands to a plurality of memory devices coupled to the controller, the plurality of memory devices for storing data and comprising non-volatile memory;

managing, by the controller, a logical-to-physical address mapping for mapping a plurality of logical addresses to a plurality of target physical addresses, wherein the plurality of logical addresses comprises a plurality of groups of logical addresses having more than one logical address, wherein each group of the plurality of groups is mapped to a respective mapped logical address of a plurality of mapped logical addresses such that each logical address of a respective group is mapped to the respective mapped logical address, wherein the target physical addresses are locations in the plurality of memory devices, and wherein the plurality of mapped logical addresses are locations in the on-controller memory;

managing, by the controller, a plurality of first data structures comprising a respective first data structure at each respective mapped logical addresses, wherein each respective first data structure comprises a respective first pointer that points to a respective intermediate physical address of a plurality of intermediate physical addresses;

managing, by the controller, a plurality of second data structures comprising a respective second data structure at each respective intermediate physical address, wherein each respective second data structure comprises a respective plurality of second pointers that each point to respective target physical addresses of the plurality of target physical addresses, and wherein each respective plurality of second pointers comprises a second pointer for each logical address in one of the respective plurality of groups of logical addresses.

16. The non-transitory computer-readable storage medium of claim 15 , wherein at least one first data structure further comprises a cached location for an alternative pointer to a target physical addresses, and wherein the managing of the plurality of second data structures comprises:

caching the alternative pointer to the cached location of the at least one first data structure; and

mapping one of the logical addresses based on the alternative pointer instead of the respective first pointer in the at least one first data structure.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the at least one first data structure comprises less than or equal to N−1 number of pointers to target physical addresses stored in cached locations, wherein the respective group of logical addresses that is mapped to the at least one first data structure has N number of logical addresses, and wherein the N−1 number of pointers to target physical addresses is stored in cached locations for the respective group of logical addresses.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the on-controller memory comprises dynamic random access memory (DRAM), wherein the plurality of first data structures is located in the DRAM, and wherein the plurality of second data structures is located in the plurality of memory devices and absent in the on-controller memory.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the at least one first data structure further comprises additional cached locations for additional alternative pointers to target physical addresses, wherein the managing of the plurality of second data structures further comprises:

caching the additional alternative pointers to the additional cached location of the at least one first data structure; and

mapping additional logical addresses based on the additional alternative pointers instead of the respective first pointer in the at least one first data structure.

20. The non-transitory computer-readable storage medium of claim 16 , wherein the caching of the alternative pointer is performed in response to reading one of the second data structures, and wherein the alternative pointer comprises one of the second pointer from read second data structure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2023
From: DAS, ASHUTOSH KUMAR; D'ABREU, MANUEL ANTONIO
To: SMART IOPS, INC.
Reel/Frame 062503/0225 →
Continuity (3)
Continuation 16996827 · Aug 18, 2020
Provisional Application 62888508 · Aug 18, 2019
Related Publication 20230251974A1 · Aug 10, 2023