IP Library Granted Patent US 7,822,791
Granted Patent B2
US 7,822,791 · App. 11/770,640 · Granted Oct 26, 2010

Method and apparatus for flash memory reclaim

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 7,822,791
App. No.
11/770,640
Granted
Oct 26, 2010
Kind
B2
Abstract

Machine-readable media, methods, apparatus and system for flash memory reclaim are described. In some embodiment, a system may comprise a flash memory having a plurality of flash memory blocks, and a managing logic to manage a file operation on the flash memory. The managing logic may, during a foreground reclaim of the flash memory which is triggered by the file operation, select a foreground reclaim block from the plurality of flash memory blocks; search the foreground reclaim block for valid data; and copy the valid data from the foreground reclaim block to a flash memory block of the plurality of flash memory blocks, if the valid data is found. The managing logic may further erase the foreground reclaim block during a next reclaim of the flash memory.

Claims (55)

1. A system, comprising:

a flash memory comprising a plurality of flash memory blocks; and

a managing logic to manage a file operation related to the flash memory, wherein during a foreground reclaim of the flash memory which is triggered by the file operation, the managing logic is further to:

select a foreground reclaim block from the plurality of flash memory blocks;

search the foreground reclaim block for valid data; and

copy the valid data from the foreground reclaim block to a flash memory block of the plurality of flash memory blocks, if the valid data is found, and wherein during a next reclaim of the flash memory, the managing logic is further to erase the foreground reclaim block;

wherein, the managing logic is further to determine whether the next reclaim of the flash memory is a background reclaim or a next foreground reclaim, wherein the background reclaim is not triggered by any file operations; and if the next reclaim is the background reclaim, then during the background reclaim and after the erasing of the foreground reclaim block, the managing logic is further to:

select a background reclaim block from the plurality of flash memory blocks,

search the background reclaim block for valid data,

copy the valid data from the background reclaim block to the foreground reclaim block if the valid data is found, and

erase the background reclaim block.

2. The system of claim 1 , wherein the managing logic is further to manage the file operation performed after the foreground reclaim and before the erasing of the foreground reclaim block.

3. The system of claim 1 , wherein the managing logic is further to manage the file operation performed after the foreground reclaim and at the same time as the erasing of the foreground reclaim block.

4. The system of claim 1 , wherein if the next reclaim is the next foreground reclaim, then during the next foreground reclaim and after the erasing of the foreground reclaim block, the managing logic is further to:

select a next foreground reclaim block from the plurality of flash memory blocks,

search the next foreground reclaim block for valid data; and

copy the valid data from the next foreground reclaim block to the foreground reclaim block if the valid data is found, and wherein the next foreground reclaim block is erased during a yet next reclaim of the flash memory.

5. The system of claim 1 , wherein the file operation includes an operation selected from a group comprising writing a file to the flash memory, deleting the file from the flash memory, and updating the file stored on the flash memory.

6. A method, comprising:

during a foreground reclaim which is triggered by a file operation related to a flash memory,

selecting a foreground reclaim block from a plurality of flash memory blocks of the flash memory;

searching the foreground reclaim block for valid data; and

copying the valid data from the foreground reclaim block to a flash memory block of the plurality of flash memory blocks, if the valid data is found;

erasing the foreground reclaim block during a next reclaim of the flash memory;

determining the next reclaim is a background reclaim or a next foreground reclaim, wherein the background reclaim is not trigger by any file operations and if the next reclaim is the background reclaim, then during the background reclaim and after the erasing of the foreground reclaim block:

selecting a background reclaim block from the plurality of flash memory blocks;

searching the background reclaim block for valid data;

copying the valid data from the background reclaim block to the foreground reclaim block, if the valid data is found; and

erasing the background reclaim block.

7. The method of claim 6 , further comprising performing the file operation related to the flash memory after the foreground reclaim and before the erasing of the foreground reclaim block.

8. The method of claim 6 , further comprising performing the file operation related to the flash memory after the foreground reclaim and at the same time as the erasing of the foreground reclaim block.

9. The method of claim 6 , further comprising: if the next reclaim is the next foreground reclaim, then during the next foreground reclaim and after the erasing of the foreground reclaim block:

selecting a next foreground reclaim block from the plurality of flash memory blocks;

searching the next foreground reclaim block for valid data; and

copying the valid data from the next foreground reclaim block to the foreground reclaim block if the valid data is found,

wherein the next foreground reclaim block is erased during a yet next reclaim of the flash memory.

10. The method of claim 7 , wherein the file operation includes an operation selected from a group comprising writing a file to the flash memory, deleting the file from the flash memory and updating the file stored on the flash memory.

11. A machine-readable medium comprising a plurality of instructions which when executed result in a system:

during a foreground reclaim which is triggered by a file operation related to a flash memory,

selecting a foreground reclaim block from a plurality of flash memory blocks of the flash memory;

searching the foreground reclaim block for valid data; and

copying the valid data from the foreground reclaim block to a flash memory block of the plurality of flash memory blocks, if the valid data is found;

erasing the foreground reclaim block during a next reclaim of the flash memory; and

determining the next reclaim is a background reclaim or a next foreground reclaim, wherein the next foreground reclaim is trigger by a next file operation related to the flash memory and if the next reclaim is the next foreground reclaim, then during the next foreground reclaim and after the erasing of the foreground reclaim block;

selecting a next foreground reclaim block from the plurality of flash memory blocks;

searching the next foreground reclaim block for valid data; and

copying the valid data from the next foreground reclaim block to the foreground reclaim block if the valid data is found,

wherein the next foreground reclaim block is erased during a yet next reclaim of the flash memory.

12. The machine-readable medium of claim 11 , wherein the plurality of instructions further result in the system, performing the file operation related to the flash memory after the foreground reclaim and before the erasing of the foreground reclaim block.

13. The machine-readable medium of claim 11 , wherein the plurality of instructions further result in the system, performing the file operation related to the flash memory after the foreground reclaim and at the same time as the erasing of the foreground reclaim block.

14. The machine-readable medium of claim 11 , wherein the plurality of instructions further result in the system, if the next reclaim is the background reclaim, then during the background reclaim and after the erasing of the foreground reclaim block:

selecting a background reclaim block from the plurality of flash memory blocks;

searching the background reclaim block for valid data;

copying the valid data from the background reclaim block to the foreground reclaim block, if the valid data is found; and

erasing the background reclaim block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2023
From: INTEL CORPORATION
To: INTEL NDTM US LLC
Reel/Frame 064928/0832 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2009
From: CHU, CRANE
To: INTEL CORPORATION
Reel/Frame 023670/0738 →