IP Library Granted Patent US 9,141,475
Granted Patent B2
US 9,141,475 · App. 12/276,344 · Granted Sep 22, 2015

Methods for tag-grouping of blocks in storage devices

Inventors: Idan Alrod (Herzliya, IL); Eran Sharon (Rishon Lezion, IL)
Assignee: SanDisk Technologies
G06F11/1068
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,141,475
App. No.
12/276,344
Granted
Sep 22, 2015
Kind
B2
Abstract

Embodiments described herein disclose methods, devices, and media for storing data. Methods including the steps of: receiving data to be stored in a memory that includes at least three blocks, wherein each block, for storing the data, has at least one metadata value, associated with each block, that is dependent upon a writing time of each block; grouping at least three blocks into at least two block groups, wherein at least one block group contains at least two blocks; associating a respective metadata value with each block group; and associating the respective metadata value of a respective block group with each block storing the data contained in the respective block group, without storing a dedicated copy of at least one metadata value for each block. In some embodiments, at least one metadata value is stored in a block-group table.

Claims (78)

1. A method for storing data, the method comprising the steps of:

(a) receiving data to be stored in a memory that includes a plurality of blocks, wherein each block from the plurality of blocks has at least one block metadata value associated with said each block, said block metadata value being dependent upon a writing time of said each block;

(b) grouping said plurality of blocks into block groups, wherein at least one block group contains at least two blocks;

(c) associating a group metadata value with each block group; and

(d) associating each group metadata value with each block in a respective block group, wherein each block from the plurality of blocks does not store a dedicated copy of said block metadata value, and each block utilizes the group metadata value instead of the block metadata value.

2. The method of claim 1 , wherein said group metadata value is value selected from a group consisting of: a data age, an optimal-reading threshold-voltage, an optimal-verify threshold-voltage, a number of soft bits read, or data related to error correction.

3. The method of claim 1 , wherein said group metadata value is stored in a block-group table.

4. The method of claim 1 , wherein said step of grouping is based on a tag that is common to all blocks in a block group, wherein said tag is associated with an approximate relative time for writing said blocks of said block group.

5. The method of claim 4 , wherein a time since power-up of said memory is divided into time intervals, and wherein blocks written during different time intervals are associated with different tags.

6. The method of claim 5 , wherein blocks written during two different power-up sessions of said memory are associated with different tags.

7. A method for storing data, the method comprising the steps of:

(a) receiving data to be stored in a memory that includes a plurality of blocks, wherein each block from the plurality of blocks has at least one block metadata value associated with said each block, said block metadata value being dependent upon a writing time of said each block;

(b) grouping said plurality of blocks into block groups, wherein at least one said block group contains at least two blocks;

(c) associating a sequential tag with each block group, wherein blocks in a first block group having a previous sequential tag are written before blocks in a second block group having a subsequent sequential tag; and

(d) associating a group metadata value with each respective sequential tag, wherein each block from the plurality of blocks does not store a dedicated copy of said block metadata value, and each block utilizes the group metadata value instead of the block metadata value.

8. The method of claim 7 , wherein said group metadata value is selected from a group consisting of: a data age, an optimal-reading threshold-voltage, an optimal-verify threshold-voltage, a number of soft bits read, or data related to error correction.

9. The method of claim 7 , wherein said group metadata value is stored in a block-group table.

10. The method of claim 7 , wherein a time since power-up of said memory is divided into time intervals, and wherein blocks written during different time intervals are associated with different tags.

11. The method of claim 10 , wherein two blocks written during two different power-up sessions of said memory are associated with different tags.

12. A method for storing data, the method comprising the steps of:

(a) receiving data to be stored in a memory that includes a plurality of word-lines, and wherein each word-line has at least one line metadata value associated with said each word-line, said line metadata value being dependent upon a writing time of said each word-line;

(b) grouping said plurality of word-lines into word-line groups, wherein at least one word-line group contains at least two word-lines;

(c) associating a group metadata value with each word-line group; and

(d) associating each group metadata value with each word-line in a respective word-line group, wherein each word-line from the plurality of word-lines does not store a dedicated copy of said group metadata value.

13. The method of claim 12 , wherein said group metadata value is selected from a group consisting of: a data age, an optimal-reading threshold-voltage, an optimal-verify threshold-voltage, a number of soft bits read, or data related to error correction.

14. The method of claim 12 , wherein said group metadata value is stored in a word-line-group table.

15. The method of claim 12 , wherein each said word-line is contained in a block, and wherein at least one block contains two word-lines belonging to different word-line groups.

16. The method of claim 12 , wherein said step of grouping is based on a tag that is common to all word-lines in a word-line group, wherein said tag is associated with an approximate relative time for writing said word-lines of said word-line group.

17. The method of claim 16 , wherein a time since power-up of said memory is divided into time intervals, and wherein word-lines written during different time intervals are associated with different tags.

18. The method of claim 16 , wherein word-lines written during two different power-up sessions of said memory are associated with different tags.

19. A method for storing data, the method comprising the steps of:

(a) receiving data to be stored in a memory that includes a plurality of word-lines, and wherein each word-line has at least one line metadata value associated with said each word-line, said line metadata value being dependent upon a writing time of said each word-line;

(b) grouping said plurality of word-lines into word-line groups, wherein at least one word-line group contains at least two word-lines;

(c) associating a sequential tag with each word-line group, wherein word-lines in a first word-line group having a previous sequential tag are written before blocks in a second word-line group having a subsequent sequential tag; and

(d) associating a group metadata value with each respective sequential tag, wherein each word-line from the plurality of word-lines does not store a dedicated copy of said line metadata value, and each word-line utilizes the group metadata value instead of the line metadata value.

20. The method of claim 19 , wherein said group metadata value is selected from a group consisting of: a data age, an optimal-reading threshold-voltage, an optimal-verify threshold-voltage, a number of soft bits read, or data related to error correction.

21. The method of claim 19 , wherein said group metadata value is stored in a word-line-group table.

22. The method of claim 19 , wherein each said word-line is contained in a block, and wherein at least one block contains two word-lines belonging to different word-line groups.

23. A memory device comprising:

(a) a controller for storing data in a memory that includes a plurality of blocks, wherein each block from the plurality of blocks has at least one block metadata value associated with said each block, said block metadata value being dependent upon a writing time of said each block, said controller configured for:

(i) grouping said plurality of blocks into block groups, wherein at least one block group contains at least two blocks;

(ii) associating a group metadata value with each block group; and

(iii) associating each group metadata value with each block in a respective block group, wherein each block from the plurality of blocks does not store a dedicated copy of said block metadata value, and each block utilizes the group metadata value instead of the block metadata value.

24. A memory device comprising:

(a) a controller for storing data in a memory that includes a plurality of blocks, wherein each block from the plurality of blocks has at least one block metadata value associated with said each block, said block metadata value being dependent upon a writing time of said each block, said controller configured for:

(i) grouping said plurality of blocks into block groups, wherein at least one block group contains at least two blocks;

(ii) associating a sequential tag with each block group, wherein blocks in a first block group having a previous sequential tag are written before blocks in a second block group having a subsequent sequential tag; and

(iii) associating a group metadata value with each respective sequential tag, wherein each block from the plurality of blocks does not store a dedicated copy of said block metadata value, and each block utilizes the group metadata value instead of the block metadata value.

25. A memory device comprising:

(a) a controller for storing data in a memory that includes a plurality of word-lines, wherein each word-line has at least one line metadata value associated with said each word-line, said line metadata value being dependent upon a writing time of said each word-line, said controller configured for:

(i) grouping said plurality of word-lines into at least two word-line groups, wherein at least one word-line group contains at least two word-lines;

(ii) associating a group metadata value with each word-line group; and

(iii) associating each group metadata value with each word-line in a respective word-line group, wherein each word-line from the plurality of word-lines does not store a dedicated copy of said group metadata value.

26. A memory device comprising:

(a) a controller for storing data in a memory that includes a plurality of word-lines, wherein each word-line has at least one line metadata value associated with said each word-line, said line metadata value being dependent upon a writing time of said each word-line, said controller configured for:

(i) grouping said plurality of word-lines into word-line groups, wherein at least one word-line group contains at least two word-lines;

(ii) associating a sequential tag with each word-line group, wherein word-lines in a first word-line group having a previous sequential tag are written before blocks in a second word-line group having a subsequent sequential tag; and

(iii) associating a group metadata value with each respective sequential tag, wherein each word-line from the plurality of word-lines does not store a dedicated copy of said line metadata value, and each word-line utilizes the group metadata value instead of the line metadata value.

27. A computer-readable non-transitory storage medium having computer-readable code embodied therein, the computer-readable code comprising:

(a) driver code for a memory device having a memory that includes a plurality of blocks, wherein each block from the plurality of blocks has at least one block metadata value associated with said each block, said block metadata value being dependent upon a writing time of said each block, said driver code configured for:

(i) grouping said plurality of blocks into block groups, wherein at least one block group contains at least two blocks;

(ii) associating a group metadata value with each block group; and

(iii) associating each group metadata value with each block in a respective block group, wherein each block from the plurality of blocks does not store a dedicated copy of said block metadata value, and each block utilizes the group metadata value instead of the block metadata value.

28. A computer-readable non-transitory storage medium having computer-readable code embodied therein, the computer-readable code comprising:

(a) driver code for a memory device having a that includes a plurality of blocks, wherein each block from the plurality of blocks has at least one block metadata value associated with said each block, said block metadata value being dependent upon a writing time of said each block, said driver code configured for:

(i) grouping said plurality of blocks into block groups, wherein at least one block group contains at least two blocks;

(ii) associating a sequential tag with each block group, wherein blocks in a first block group having a previous sequential tag are written before blocks in a second block group having a subsequent sequential tag; and

(iii) associating a group metadata value with each respective sequential tag, wherein each block from the plurality of blocks does not store a dedicated copy of said block metadata value, and each block utilizes the group metadata value instead of the block metadata value.

29. A computer-readable non-transitory storage medium having computer-readable code embodied therein, the computer-readable code comprising:

(a) driver code for a memory device having a memory that includes a plurality of word-lines, and wherein each word-line has at least one line metadata value associated with said each word-line, said line metadata value being dependent upon a writing time of said each word-line, said driver code configured for:

(i) grouping said plurality of word-lines into word-line groups, wherein at least one word-line group contains at least two word-lines;

(ii) associating a group metadata value with each word-line group; and

(iii) associating each group metadata value with each word-line in a respective word-line group, wherein each word-line from the plurality of word-lines does not store a dedicated copy of said group metadata value.

30. A computer-readable non-transitory storage medium having computer-readable code embodied therein, the computer-readable code comprising:

(a) driver code for a memory device having a memory that includes a plurality of word-lines, and wherein each word-line has at least one line metadata value associated with said each word-line, said line metadata value being dependent upon a writing time of said each word-line, said driver code configured for:

(i) grouping said plurality of word-lines into word-line groups, wherein at least one word-line group contains at least two word-lines;

(ii) associating a sequential tag with each word-line group, wherein word-lines in a first word-line group having a previous sequential tag are written before blocks in a second word-line group having a subsequent sequential tag; and

(iii) associating a group metadata value with each respective sequential tag, wherein each word-line from the plurality of word-lines does not store a dedicated copy of said line metadata value, and each word-line utilizes the group metadata value instead of the line metadata value.

Assignments (6)
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 038809/0600 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2014
From: SANDISK IL LTD.
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 033070/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2008
From: SHARON, ERAN; ALROD, IDAN
To: SANDISK IL LTD.
Reel/Frame 021878/0737 →
Continuity (1)
Related Publication 20100131697A1 · May 27, 2010