IP Library Granted Patent US 9,870,153
Granted Patent B2
US 9,870,153 · App. 14/584,315 · Granted Jan 16, 2018

Non-volatile memory systems utilizing storage address tables

Inventor: Alan Welsh Sinclair (Falkirk, GB)
Assignee: SANDISK TECHNOLOGIES LLC
G06F3/061G06F3/0659G06F3/0688G06F12/0246G06F12/0253G06F2212/702G06F2212/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 9,870,153
App. No.
14/584,315
Granted
Jan 16, 2018
Kind
B2
Abstract

Non-volatile memory systems utilizing storage address tables are disclosed. A non-volatile memory system may include a non-volatile memory, a memory die command manager in communication with the memory, and a command manager in communication with the memory die command manager. The memory die command manager is configured to identify a free die of the memory to store data, where the free die of the memory is identified independent of a host logical block address associated with the data; store the data at a physical block address at the free die; and generate an entry in a first address table, the first address table associating the physical block address with a virtual logical block address. The command manager is configured to generate an entry in a second address table, the second address table associating the virtual logical block address with a host logical block address received with the host write command.

Claims (59)

1. A non-volatile memory system comprising:

non-volatile memory comprising a plurality of die, wherein each die comprises a set of non-volatile memory cells and associated circuitry for managing a physical operation of the set of non-volatile memory cells and wherein the plurality of die is arranged into a plurality of channels of die;

a plurality of memory die command managers in communication with the non-volatile memory, wherein each memory die command manager is configured to manage a different channel of die of the plurality of channels of die, and wherein each memory die command manager is configured to:

identify, independent of a host logical block address associated with the data, a free die of the plurality of die of the channel of die managed by the memory die command manager that is idle and available to store data;

store the data at a physical block address at the free die; and

generate an entry in a first address table, the first address table associating the physical block address with a virtual logical block address; and

a command manager in communication with the plurality of memory die command managers, the command manager configured to generate an entry in a second address table, the second address table associating the virtual logical block address with a host logical block address received with a host write command.

2. The non-volatile memory system of claim 1 , wherein the non-volatile memory comprises a silicon substrate and a plurality of memory cells forming at least two memory layers vertically disposed with respect to each other to form a monolithic three-dimensional structure, wherein at least one layer is vertically disposed with respect to the silicon substrate.

3. The non-volatile memory system of claim 2 , wherein the command manager and the plurality of memory die command managers are on the same substrate as the memory cells.

4. The non-volatile memory system of claim 1 , where the non-volatile memory system is embedded in a host.

5. The non-volatile memory system of claim 1 , where the non-volatile memory system is removably connectable to a host.

6. The non-volatile memory system of claim 1 , wherein the command manager is further configured to:

receive, from a host, the host write command with the associated data, the host write command associated with the host logical block address;

buffer the data;

determine that a sufficient amount of host data is stored in the buffer to complete the writeable unit; and

communicate a command request to a memory die command manager of the plurality of memory die command managers after determining that the sufficient amount of host data is stored in the buffer to complete a writeable unit, the command request comprising a size and a location of the buffered data.

7. The non-volatile memory system of claim 1 , wherein the writeable unit is an amount of data that can be programmed in parallel within one die of memory.

8. The non-volatile memory system of claim 1 , wherein each memory die command manager of the plurality of memory die command managers is further configured to adjust the entry in the first address table after performing a garbage collection operation such that a second physical block address for the free die is associated with the virtual logical block address, wherein the entry in the second address table associated with the virtual logical block address does not reflect a change in the physical block address associated with the virtual logical block address.

9. The non-volatile memory system of claim 1 , wherein the command manager is further configured to translate a second host logical block address, received from a host in association with a host read command, to a second virtual logical block address, the second virtual logical block address comprising a logical die address and a logical block address at the die, and to send a command to a memory die command manager of the plurality of memory die command managers to read data stored at the second virtual logical block address; and

wherein the memory die command manager of the plurality of memory die command managers is further configured to translate the second virtual logical block address to a physical die address and a physical block address at the die of the non-volatile memory and retrieve the data stored at the second virtual logical block address.

10. The non-volatile memory system of claim 9 , wherein the command manager is configured to translate the second host logical block address to the second virtual block address utilizing the second address table; and

wherein the memory die command manager of the plurality of memory die command managers is configured to translate the second virtual logical block address to the physical die address and the physical block at the physical die address utilizing the first address table.

11. A method for managing data, the method comprising:

in a non-volatile memory system comprising a non-volatile memory, a plurality of memory die command managers in operative communication with the non-volatile memory, and a command manager in operative communication with the plurality of memory die command managers, the non-volatile memory comprising a plurality of die arrange into a plurality of channels of die, wherein each channel of die is managed by a different memory die command manager of the plurality of memory die command managers and each die comprises a set of non-volatile memory cells and associated circuitry for managing a physical operation of the set of non-volatile memory cells:

receiving at the command manger a host write command with associated data, the host write command associated with a host logical block address;

buffering the data;

communicating a command request from the command manager to a memory die command manager of the plurality of memory die command managers, the command request comprising a size and a location of the buffered data;

identifying, with the memory die command manager of the plurality of memory die command managers, independent of a host logical block associated with the data, a free die of the plurality of die of the channel of die manage by the memory die command manager that is idle and available to store the data;

storing the buffered data at a physical block address at the free die;

generating an entry in a first address table, the first address table containing the physical block address associated with a virtual logical block address;

communicating the virtual logical block address to the command manager; and

generating an entry in a second address table, the entry in the second address table associating the virtual logical block address with the host logical block address.

12. The method of claim 11 , further comprising:

determining that a sufficient amount of host data is stored in the buffer to complete the writeable unit;

wherein the command manager communicates the command request to the memory die command manager of the plurality of memory die command managers after determining that the sufficient amount of host data is stored in the buffer to complete a writeable unit.

13. The method of claim 11 , further comprising:

adjusting the entry in the first address table after performing a garbage collection operation such that a second physical block address for the free die is associated with the virtual logical block address, wherein the entry in the second address table does not reflect a change in the physical block address associated with the virtual logical block address.

14. The method of claim 11 , further comprising:

receiving at the command manager a host read command from the host, where the host read command is associated with a second host logical bock address;

translating, with the command manager, the second host logical block address to a second virtual logical block address, the second virtual logical block address comprising a logical die address and a logical block address at the die;

sending a command from the command manager to the memory die command manager of the plurality of memory die command managers to read data stored at the second virtual logical block address;

translating, with the memory die command manager of the plurality of memory die command managers, the second virtual logical block address to a physical die address and a physical block address at the die of the non-volatile memory;

retrieving the data stored at the second virtual logical block address; and

transmitting the data stored at the second virtual logical block address to the host.

15. The method of claim 14 , wherein the command manager translates the second host logical block address to the second virtual block address utilizing the second address table; and

wherein the memory die command manager of the plurality of memory die command managers translates the second virtual logical block address to the physical die address and the physical block at the physical die address utilizing the first address table.

16. The method of claim 11 , wherein the non-volatile memory comprises a silicon substrate and a plurality of memory cells forming at least two memory layers vertically disposed with respect to each other to form a monolithic three-dimensional structure, wherein at least one layer is vertically disposed with respect to the silicon substrate.

17. The method of claim 16 , wherein the command manager and the plurality of memory die command managers are on the same substrate as the memory cells.

18. The method of claim 11 , where the non-volatile memory system is embedded in the host.

19. A non-volatile memory system comprising:

non-volatile memory comprising a plurality of die, wherein each die comprises a set of non-volatile memory cells and associated circuitry for managing a physical operation of the set of non-volatile memory cells and where the set of the non-volatile memory cells and the associated circuitry for each die are formed on a single separate substrate and wherein the plurality of die is arranged into a plurality of channels of die;

a plurality of means for managing a channel of die, wherein each means for managing a channel of die manages a different channel of die of the plurality of channels of die, and wherein each means for managing a channel of die is further for:

identifying, independent of a host logical block address associated with the data, a free die of the plurality of die of a channel of die managed by the means for managing a channel of die that is idle and available to store data;

storing the data at a physical block address at the free die;

generating an entry in a first address table, the first address table associating a physical block address where the data is stored with a virtual logical block address; and

means for generating an entry in a second address table, the second address table associating the virtual logical block address with a host logical block address for the data received with a host write command.

20. The non-volatile memory system of claim 19 , further comprising:

means for performing a garbage collection operation to store at least a portion of the data at a second physical block address at the memory die; and

means for updating the entry in the first address table to associate the second physical block address with the virtual logical block address, where the entry in the second address table associated with the virtual logical block address does not reflect a change in the physical block address associated with the virtual logical block address.

Assignments (5)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2014
From: SINCLAIR, ALAN WELSH
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 034598/0757 →
Continuity (1)
Related Publication 20160188206A1 · Jun 30, 2016