IP Library Granted Patent US 8,250,333
Granted Patent B2
US 8,250,333 · App. 12/348,782 · Granted Aug 21, 2012

Mapping address table maintenance in a memory device

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,250,333
App. No.
12/348,782
Granted
Aug 21, 2012
Kind
B2
Abstract

A method and system maintains an address table for mapping logical groups to physical addresses in a memory device. The method includes receiving a request to set an entry in the address table and selecting and flushing entries in an address table cache depending on the existence of the entry in the cache and whether the cache meets a flushing threshold criteria. The flushed entries include less than the maximum capacity of the address table cache. The flushing threshold criteria includes whether the address table cache is full or if a page exceeds a threshold of changed entries. The address table and/or the address table cache may be stored in a non-volatile memory and/or a random access memory. Improved performance may result using this method and system due to the reduced number of write operations and time needed to partially flush the address table cache to the address table.

Claims (69)

1. A method of maintaining an address table in a memory device, the address table for mapping logical groups to physical addresses in the memory device, the method comprising:

receiving a request to set an entry in the address table, the entry for mapping a logical group to a physical address in the memory device, where the address table comprises a plurality of pages;

determining whether the entry exists in an address table cache that stores changes to the address table;

determining whether the address table cache meets a flushing threshold criteria; and

if the entry does not exist in the address table cache and the address table cache meets the flushing threshold criteria:

selecting a quantity of pages of the address table less than the total number of pages in the address table, the selected pages comprising changed entries and unchanged entries, wherein the selected pages of the address table each have a number of the changed entries that exceeds a threshold of changed entries;

flushing changed entries for the selected pages from the address table cache to the address table;

allocating the entry for the logical group in the address table cache; and

setting the entry for the logical group in the address table cache based on the request.

2. The method of claim 1 , where:

the flushing threshold criteria comprises a maximum capacity of the address table cache; and

determining whether the address table cache meets the flushing threshold criteria comprises determining whether a number of entries in the address table cache is at the maximum capacity of the address table cache.

3. The method of claim 1 , where:

the flushing threshold criteria comprises the threshold of changed entries; and

determining whether the address table cache meets the flushing threshold criteria comprises determining whether a number of changed entries in the selected pages of the address table exceeds the threshold of changed entries.

4. The method of claim 1 , where the threshold of changed entries is set so the selected pages are the pages with the greatest number of changed entries.

5. The method of claim 1 , where the threshold of changed entries is varied so that the quantity of pages selected is one.

6. The method of claim 1 , where flushing comprises updating the entries in the address table for the selected pages with the changed entries in the address table cache.

7. The method of claim 1 , further comprising:

if the entry exists in the address table cache:

updating the existing entry for the logical group based on the request;

if the entry does not exist in the address table cache and the address table cache does not meet the flushing threshold criteria:

allocating the entry for the logical group in the address table cache; and

setting the entry for the logical group in the address table cache based on the request.

8. The method of claim 1 , where one or more of the address table or the address table cache are stored in one or more of a non-volatile memory or a random access memory.

9. A memory device, comprising:

an address table for mapping logical groups to physical address in the memory device;

an address table cache that stores changes to the address table; and a controller configured to:

receive a request to set an entry in the address table, the entry for mapping a logical group to a physical address in the memory device, where the address table comprises a plurality of pages;

determine whether the entry exists in the address table cache;

determine whether the address table cache meets a flushing threshold criteria; and

if the entry does not exist in the address table cache and the address table cache meets the flushing threshold criteria:

select a quantity of pages of the address table less than the total number of pages in the address table, the selected pages comprising changed entries and unchanged entries;

flush changed entries for the selected pages from the address table cache to the address table;

allocate the entry for the logical group in the address table cache; and

set the entry for the logical group in the address table cache based on the request.

10. The memory device of claim 9 , where:

the flushing threshold criteria comprises a maximum capacity of the address table cache; and

determining whether the address table cache meets the flushing threshold criteria comprises the controller configured to determine whether a number of entries in the address table cache is at the maximum capacity of the address table cache.

11. The memory device of claim 9 , where:

the flushing threshold criteria comprises a threshold of changed entries; and

determining whether the address table cache meets the flushing threshold criteria comprises the controller configured to determine whether a number of changed entries in the selected pages of the address table exceeds the threshold of changed entries.

12. The memory device of claim 9 , where selecting the quantity of pages comprises the controller configured to select the pages with the greatest number of changed entries.

13. The memory device of claim 9 , where selecting the quantity of pages comprises the controller configured to select the pages that have a number of changed entries above a predetermined threshold of changed entries.

14. The memory device of claim 9 , where the quantity of pages selected is one.

15. The memory device of claim 9 , where flushing comprises the controller configured to update the entries in the address table for the selected pages with the changed entries in the address table cache.

16. The memory device of claim 9 , where the controller is further configured to:

if the entry exists in the address table cache:

update the existing entry for the logical group based on the request;

if the entry does not exist in the address table cache and the address table cache does not meet the flushing threshold criteria:

allocate the entry for the logical group in the address table cache; and

set the entry for the logical group in the address table cache based on the request.

17. The memory device of claim 9 , further comprising a non-volatile memory and a random access memory and where one or more of the address table or the address table cache are stored in one or more of the non-volatile memory or the random access memory.

18. A method of maintaining an address table in a memory device, the address table for mapping logical groups to physical addresses in the memory device, the method comprising:

receiving a request to set an entry in the address table, the entry for mapping a logical group to a physical address in the memory device, where the address table comprises a plurality of pages, and setting the entry comprises adding or updating the entry;

determining whether the address table cache meets a flushing threshold criteria, wherein the flushing threshold criteria is based on a number of changed pages from the address table; and

if the address table cache meets the flushing threshold criteria:

selecting a quantity of pages of the address table less than a total number of pages in the address table, the selected pages comprising changed entries and unchanged entries;

flushing changed entries for the selected pages from the address table cache to the address table;

allocating the entry for the logical group in the address table cache; and

setting the entry for the logical group in the address table cache based on the request.

19. The method of claim 18 , where:

the flushing threshold criteria comprises a maximum capacity of the address table cache; and

determining whether the address table cache meets the flushing threshold criteria comprises determining whether a number of entries in the address table cache is at the maximum capacity of the address table cache.

20. The method of claim 18 , where:

the flushing threshold criteria comprises a threshold of changed entries; and

determining whether the address table cache meets the flushing threshold criteria comprises determining whether a number of changed entries in the selected pages of the address table exceeds the threshold of changed entries.

21. The method of claim 18 , where selecting the quantity of pages comprises selecting pages with the greatest number of changed entries.

22. The method of claim 18 , where selecting the quantity of pages comprises selecting pages that have a number of changed entries above a predetermined threshold of changed entries.

Assignments (3)
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 16, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026284/0496 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2009
From: GOROBETS, SERGEY ANATOLIEVICH; PALEY, ALEXANDER; ZILBERMAN, EUGENE; BENNETT, ALAN DAVID; TRAISTER, SHAI
To: SANDISK CORPORATION
Reel/Frame 022448/0189 →
Continuity (1)
Related Publication 20100174869A1 · Jul 8, 2010