IP Library Granted Patent US 8,332,577
Granted Patent B2
US 8,332,577 · App. 12/316,159 · Granted Dec 11, 2012

Program control of a non-volatile memory

Assignee: SanDisk Technologies Inc.
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 8,332,577
App. No.
12/316,159
Granted
Dec 11, 2012
Kind
B2
Abstract

A method of storing data onto a non-volatile memory includes receiving, from a host, first data that is originally assigned to a first storage area, programming the first data to a second storage area, receiving second data from the host, and while receiving the second data from the host, programming, to the first storage area, the first data that has been programmed to the second storage area, wherein the second data is received from the host simultaneously with the first data being programmed to the first storage area. The second storage area is capable of having data stored thereon faster than the first storage area.

Claims (28)

1. A method of storing data onto a non-volatile memory, comprising:

receiving, from a host, first data that is assigned to a first storage area;

programming the first data to a second storage area, the second storage area being capable of having data stored therein more quickly than the first storage area;

receiving second data from the host; and

while receiving the second data from the host, programming, to the first storage area, the first data that has been programmed to the second storage area, wherein the second data is received from the host simultaneously with the first data being programmed to the first storage area;

wherein if the first data includes less than a maximum amount of data capable of being programmed to a meta-page of a non-volatile memory, the method further comprises:

subsequent to the programming of the first data to the second storage area and prior to the receiving of the second data, receiving additional data that is assigned to the first storage area, and programming the additional data to the second storage area,

wherein the programming of the first data to the first storage area includes programming a) the first data and b) the additional data that have been programmed to the second storage area to the first storage area.

2. The method of claim 1 , wherein the meta-page includes multiple physical pages that are distributed across multiple planes.

3. The method of claim 1 , wherein the meta-page includes multiple physical pages that are distributed over multiple storage devices.

4. The method of claim 1 , wherein the first data and the additional data are associated with a same command.

5. The method of claim 1 , wherein the first data and the additional data are associated with separate commands.

6. A storage device, comprising:

a non-volatile memory capable of storing data, the non-volatile memory having a first storage area and a second storage area, the second storage area being capable of having data stored therein more quickly than the first storage area; and

a controller that is operative to manage programming of data, which program management includes: receiving, from a host, first data that is assigned to the first storage area, programming the first data to the second storage area, receiving second data from the host; and while receiving the second data from the host, programming, to the first storage area, the first data that has been programmed to the second storage area, wherein the second data is received from the host simultaneously with the first data being programmed to the first storage area;

wherein if the first data includes less than a maximum amount of data capable of being programmed to a meta-page of the non-volatile memory, the controller is operative, subsequent to programming the first data to the second storage area and prior to receiving the second data: to receive additional data that is assigned to the first storage area, and to program the additional data to the second storage area, wherein the programming of the first data to the first storage area includes programming a) the first data and b) the additional data that have been programmed to the second storage area to the first storage area.

7. The storage device of claim 6 , wherein the meta-page includes multiple physical pages that are distributed across multiple planes of the non-volatile memory.

8. The storage device of claim 6 , wherein the meta-page includes multiple physical pages that are distributed over multiple storage devices.

9. The storage device of claim 6 , wherein with the storage device communicating with the host, the controller is further operative to indicate to the host that it is ready to receive the additional data.

10. The storage device of claim 6 , wherein the first data and the additional data are associated with a same command.

11. The storage device of claim 6 , wherein the first data and the additional data are associated with separate commands.

12. A storage controller comprising:

an interface being coupled to a non-volatile memory; and

a processing unit coupled to the interface and operative to manage programming of data content, which program management includes: receiving, from a host, first data that is assigned to a first storage area on the non-volatile memory, programming the first data to a second storage area on the non-volatile memory, receiving second data from the host; and while receiving the second data from the host, programming, to the first storage area, the first data that has been programmed to the second storage area, wherein the second data is received from the host simultaneously with the first data being programmed to the first storage area,

wherein the second storage area is capable of having data stored therein more quickly than the first storage area;

wherein if the first data includes less than a maximum amount of data capable of being programmed to a meta page of the non-volatile memory, the processing unit is operative, subsequent to programming the first data to the second storage area and prior to receiving the second data: to receive additional data that is assigned to the first storage area, and to program the additional data to the second storage area, wherein the programming of the first data to the first storage area includes programming a) the first data and b) the additional data that have been programmed to the second storage area to the first storage area.

13. The storage controller of claim 12 , wherein the first data and the additional data are associated with a same command.

14. The storage controller of claim 12 , wherein the first data and the additional data are associated with separate commands.

Assignments (7)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2016
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 039753/0092 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026280/0214 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2008
From: TRAISTER, SHAI; HSU, JONATHAN
To: SANDISK CORPORATION
Reel/Frame 022026/0347 →
Continuity (1)
Related Publication 20100146186A1 · Jun 10, 2010