IP Library Granted Patent US 8,386,537
Granted Patent B2
US 8,386,537 · App. 12/638,496 · Granted Feb 26, 2013

Method for trimming data on non-volatile flash media

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,386,537
App. No.
12/638,496
Granted
Feb 26, 2013
Kind
B2
Abstract

A method for trimming data on non-volatile flash media is generally presented. In this regard, in one embodiment, a method is introduced comprising allocating a temporary file that occupies free space on a flash memory, determining specific blocks of the flash memory that the temporary file occupies, generating TRIM commands for the specific blocks, and deleting the temporary file. Other embodiments are described and claimed.

Claims (45)

1. A non-transitory storage medium comprising content which, when executed by an accessing machine, causes the accessing machine to:

allocate a temporary file that occupies free space in a filesystem;

determine logical block addresses (LBA's) of the filesystem that the temporary file occupies;

generate TRIM commands for the specific LBA's;

confirm the filesystem is not remapping LBA's, the content for confirming that the files system is not remapping LBA's further comprising content to:

create a test file containing a unique identifier;

write the test file to the filesystem;

determine specific blocks in the filesystem that the test file occupies; and

read raw contents from at least one flash memory block to determine if the unique identifier was stored without remapping; and

delete the temporary file.

2. The non-transitory storage medium of claim 1 , wherein the filesystem comprises NAND flash memory.

3. The non-transitory storage medium of claim 2 , wherein the NAND flash memory comprises a solid state disk.

4. The non-transitory storage medium of claim 2 , wherein the NAND flash memory comprises a hard disk drive cache.

5. The non-transitory storage medium of claim 1 , wherein the content to determine LBA's of the filesystem that the temporary file occupies comprises content to query a partition manager for volume offsets and filesystem clusters the temporary file occupies.

6. The non-transitory storage medium of claim 1 , wherein the content to allocate a temporary file that occupies free space in a filesystem comprises content to: determine an amount of free space in the filesystem; and allocate an exclusive rights file that occupies substantially all of the free space in the filesystem.

7. A system comprising:

a processor;

a network controller; and

a storage device, wherein the storage device includes a flash memory and a trim engine, the trim engine to:

allocate a temporary file that occupies free space on a flash memory;

determine specific blocks of the flash memory that the temporary file occupies;

generate TRIM commands for the specific blocks;

confirm that the flash memory logical block addresses are not remapped, further comprising directing the trim engine to:

create a test the containing a unique identifier;

write the test file to the flash memory;

determine specific blocks of flash memory that the test file occupies; and

read raw contents from at least one flash memory block to determine if the unique identifier was stored without remapping;

and

delete the temporary file.

8. The system of claim 7 , wherein the flash memory comprises NAND flash memory.

9. The system of claim 7 , wherein the trim engine to determine specific blocks of the flash memory that the temporary file occupies comprises the trim engine to query a partition manager for volume offsets and filesystem clusters the temporary file occupies.

10. The system of claim 7 , wherein the trim engine to allocate a temporary file that occupies free space on a flash memory comprises the trim engine to: determine an amount of free space on the flash memory; and allocate an exclusive rights file that occupies substantially all of the free space on the flash memory.

11. A method comprising:

allocating a temporary file that occupies free space in a filesystem;

determining specific logical block addresses (LBA's) of a solid state drive (SSD) that the temporary file occupies;

generating TRIM commands for the specific LBA's;

confirming the filesystem LBA's are not remapped, further comprising:

creatin a test containing a unique identifier;

writing the test file to the flash memory;

determining specific blocks of flash memory that the test file occupies; and

reading raw contents from at least one flash memory block to determine if the unique identifier was stored without remapping and

deleting the temporary file.

12. The method of claim 11 , wherein determining specific LBA's of the SSD that the temporary file occupies comprises querying a partition manager for volume offsets and filesystem clusters the temporary file occupies.

13. The method of claim 11 , wherein allocating a temporary file that occupies free space in a filesystem comprises: determining an amount of free space in the filesystem; and allocating an exclusive rights file that occupies substantially all of the free space in the filesystem.

14. The method of claim 11 , wherein the filesystem comprises NAND flash memory.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2023
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP.
Reel/Frame 062437/0329 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2010
From: BOYD, JAMES A.; GRIMSRUD, KNUT S.
To: INTEL CORPORATION
Reel/Frame 024379/0553 →