IP Library Granted Patent US 9,891,847
Granted Patent B2
US 9,891,847 · App. 14/811,277 · Granted Feb 13, 2018

Block management in a dual write memory system

Inventors: Narendhiran Chinnaanangur Ravimohan (Bangalore, IN); Abhijeet Manohar (Bangalore, IN); Muralitharan Jayaraman (Bangalore, IN)
Assignee: SanDisk Technologies LLC
G06F3/0619G06F3/065G06F3/067G06F3/0616
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,891,847
App. No.
14/811,277
Granted
Feb 13, 2018
Kind
B2
Abstract

A storage device with a memory may improve yield by reducing the allocation of blocks for secondary writes in a dual programming system. In a dual programming system, all host writes are written to both a primary copy and to a secondary copy. If the secondary copy blocks that are available have a higher endurance, then the overall allocation of available blocks for use as a secondary copy block can be reduced (improving yield). In one embodiment, utilizing different trim parameters for the secondary copy blocks may be used to increase the endurance for those blocks. Before programming the secondary copy, the trim parameters may be adjusted to increase endurance and after programming the secondary copy, the trim parameters may be adjusted back to the default value that is used when programming the primary copy.

Claims (44)

1. A method for data transfer in a dual programming memory system comprising:

receiving a request to write data from a host;

programming the data in a primary copy with a default value for trim parameters;

modifying the trim parameters to improve endurance;

programming the data in a secondary copy with the modified trim parameters, wherein the primary copy and the secondary copy are used for the dual programming;

modifying the trim parameters back to the default value; and

wherein in response to the request, the dual programming comprises:

checking for errors from the programming of the data to the primary copy;

committing the data from the primary copy when there are no errors or failures with the primary copy; and

committing the data from the secondary copy when there are errors or failures with the primary copy.

2. The method of claim 1 wherein the default value of the trim parameters results in an endurance that is lower than when the trim parameters are modified to improve endurance.

3. The method of claim 2 wherein the trim parameters comprise a program voltage, a step-up voltage, a delta voltage, a number of loops for the delta voltage, or a program pulse width.

4. The method of claim 3 wherein a level of the program voltage is modified to allow for an increased error tolerance.

5. The method of claim 1 wherein the data is only committed from the secondary copy when there are errors or failures with the primary copy.

6. The method of claim 1 further comprising:

compacting the data when committed from the secondary copy.

7. The method of claim 6 wherein the compacting further comprises:

transferring the data from the secondary copy to a controller;

correcting any bits of the data in error; and

transferring back to the memory system at a block different from the primary copy or the secondary copy.

8. The method of claim 1 wherein a pool of blocks from which the secondary copy is chosen from is reduced by the programming of the secondary copy with the modified trim parameters.

9. A dual programming system comprising:

a memory comprising a plurality of blocks, wherein the dual programming includes writing data to a primary block and writing a copy of that data to a secondary block;

a controller coupled with the memory and configured to receive a host write command and write the same data to both the primary block and the secondary block; and

a dual write trim adjustment module coupled with the controller that is configured to adjust trim parameters before writing to the secondary block to improve endurance.

10. The system of claim 9 wherein the controller, for the dual programming, is configured to:

program, from the host write command, data to both the primary block and the secondary block;

check for errors due to the program of the primary block;

commit the host write command from the primary block when there are no errors or failures with the primary block; and

commit the host write command from the secondary block when there are errors or failures with the primary block.

11. The system of claim 9 wherein the trim parameters comprise a program voltage, a step-up voltage, a delta voltage, a number of loops for the delta voltage, or a program pulse width.

12. The system of claim 9 wherein the trim parameters are adjusted back to a default value after writing to the secondary block.

13. The system of claim 12 wherein the default value of the trim parameters results in an endurance that is lower than when the trim parameters are adjusted.

14. The system of claim 9 wherein the memory comprises non-volatile memory.

15. The system of claim 14 wherein the non-volatile memory comprises a flash memory and the flash memory comprises a three-dimensional (3D) memory configuration, and wherein the controller is associated with operation of and storing to the flash memory.

16. A method for reducing block allocation in a memory system, the method comprising:

establishing a primary block and a secondary block for dual programming;

receiving a host write for the dual programming, wherein data for the host write is programmed into the primary block and the same data is also programmed into the secondary block; and

adjusting one or more trim parameters before programming the secondary block in response to the host write in order to improve endurance.

17. The method of claim 16 wherein the dual programming comprises programming both the primary block and the secondary block, wherein the secondary block is a backup for when there are errors in the primary block.

18. The method of claim 16 further comprising:

adjusting the one or more trim parameters back to a default value after programming the secondary block.

19. The method of claim 18 wherein the default value of the trim parameters results in a lower endurance than the adjusted trim parameters.

20. The method of claim 16 wherein the secondary block comprises single level cell (SLC) memory.

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 038812/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: RAVIMOHAN, NARENDHIRAN CHINNAANANGUR; MANOHAR, ABHIJEET; JAYARAMAN, MURALITHARAN
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 036198/0339 →
Continuity (1)
Related Publication 20170031612A1 · Feb 2, 2017