Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

Erase operations are performed on a flash memory device by monitoring the entropic nature of the flash memory device. In one implementation, flash abstraction logic, tracks how many physical sectors are free to receive data; track how many physical sectors contain data that is dirty, and compare whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty. A compactor performs an erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data. In another implementation, the flash abstraction logic tracks how many physical sector addresses are free to receive data, and track when the physical sector addresses that are free to receive data are insufficient in quantity to receive write requests from a file system. The compactor executes an erase operation of one or more blocks if the physical sector addresses that are free to receive...

InventorsJered Donald Aasheim, Yongqi Yang
Original AssigneeMicrosoft Corporation
Primary Examiner: Son T. Dinh
Attorney: Lee & Hayes, PLLC
Current U.S. Classification365/185.29; 365/185.33; 365/218; 711/103; 711/E12.008
International Classification: G11C/700

View patent at USPTO
Search USPTO Assignment Database
Download USPTO Public PAIR data

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US5530828Jun 22, 1993Jun 25, 1996Hitachi, Ltd.Semiconductor storage device including a controller for continuously writing data to and erasing data from a plurality of flash memories
US5598370Apr 26, 1995Jan 28, 1997International Business Machines CorporationNonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same
US5734816Mar 10, 1994Mar 31, 1998International Business Machines CorporationNonvolatile memory with flash erase capability
US5745418Nov 25, 1996Apr 28, 1998Macronix International Co., Ltd.Flash memory mass storage system
US5867641Oct 27, 1995Feb 2, 1999SCM Microsystems (U.S.) Inc.Flash translation layer cleanup system and method
US5887198Apr 7, 1997Mar 23, 1999The United States of America as represented by the Secretary of the NavyProgrammable stand-alone drive apparatus for interfacing a host computer with PCMCIA memory cards having multiple formats
US5937425Oct 16, 1997Aug 10, 1999M-Systems Flash Disk Pioneers Ltd.Flash file system optimized for page-mode flash technologies
US5956473Nov 25, 1996Sep 21, 1999Macronix International Co., Ltd.Method and system for managing a flash memory mass storage system
US6014724Sep 17, 1996Jan 11, 2000SCM Microsystems (U.S.) Inc.Flash translation layer block indication map revision system and method
US6279069Dec 26, 1996Aug 21, 2001Intel CorporationInterface for flash EEPROM memory arrays
US6347051May 30, 2001Feb 12, 2002Hitachi, Ltd.Storage device employing a flash memory

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6762948Oct 10, 2002Jul 13, 2004Samsung Electronics Co., Ltd.Semiconductor memory device having first and second memory architecture and memory system using the same
US7076599May 25, 2005Jul 11, 2006Microsoft CorporationTransactional file system for flash memory
US7080232Feb 27, 2004Jul 18, 2006Microsoft CorporationFree sector manager for data stored in flash memory devices
US7082512Nov 4, 2005Jul 25, 2006Microsoft CorporationDynamic data structures for tracking file system free space in a flash memory device
US7093101Nov 4, 2005Aug 15, 2006Microsoft CorporationDynamic data structures for tracking file system free space in a flash memory device
US7139883Nov 21, 2002Nov 21, 2006Microsoft CorporationTransactional file system for flash memory
US7178061Nov 21, 2002Feb 13, 2007Microsoft CorporationPower failure detection and correction in a flash memory device
US7272696May 4, 2006Sep 18, 2007Micron Technology, Inc.Dynamic volume management
US7340647Apr 6, 2006Mar 4, 2008Microsoft CorporationPower failure detection and correction in a flash memory device
US7350105Apr 7, 2006Mar 25, 2008Microsoft CorporationPower failure detection in a flash memory device
US7363421Jan 13, 2005Apr 22, 2008STMicroelectronics S.r.l.Optimizing write/erase operations in memory devices
US7480760Dec 17, 2003Jan 20, 2009Wegener Communications, Inc.Rotational use of memory to minimize write cycles
US7493442Dec 13, 2006Feb 17, 2009Micron Technology, Inc.Multiple segment data object management
US7516295Feb 7, 2005Apr 7, 2009Samsung Electronics Co., Ltd.Method of remapping flash memory
US7529882Jul 25, 2007May 5, 2009Micron Technology, Inc.Dynamic volume management for flash memories
US7533214Feb 27, 2002May 12, 2009Microsoft CorporationOpen architecture flash driver
US7564721May 25, 2006Jul 21, 2009Micron Technology, Inc.Method and apparatus for improving storage performance using a background erase
US7594064Nov 14, 2005Sep 22, 2009Microsoft CorporationFree sector manager for data stored in flash memory devices
US7620961Nov 21, 2002Nov 17, 2009Microsoft CorporationOpen-architecture file system
US7657701Jan 3, 2007Feb 2, 2010The General Electric CompanySystem and method of flash memory wear leveling using distributed write cycles
US7676627Jan 10, 2007Mar 9, 2010Micron Technology, Inc.Single segment data object management
US7742344Jun 25, 2009Jun 22, 2010Micron Technology, Inc.Method and apparatus for improving storage performance using a background erase
US7779426Mar 30, 2006Aug 17, 2010Microsoft CorporationDescribing and querying discrete regions of flash storage
US7894153Feb 8, 2008Feb 22, 2011Lenovo (Singapore) Pte. Ltd.Secure data disposal for disk drive

Claims

1. A method for managing erasures on a flash memory device having addressable physical sectors organized as blocks, comprising:

tracking how many physical sectors are free to receive data;
tracking how many physical sectors contain data that is dirty;
comparing whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty; and
executing an erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data.

2. The method as recited in claim 1, further comprising: scheduling the execution of the erase operation as a low priority thread.

3. The method as recited in claim 1, further comprising:

tracking when the physical sectors that are free to receive data are insufficient in quantity to receive write requests from a file system; and
executing a second erase operation of one or more blocks if the physical sectors that are free to receive data are insufficient in quantity.

4. The method as recited in claim 3, further comprising scheduling the execution of the second erase operation as high priority thread.

5. One or more computer-readable media comprising computer executable instructions that, when executed, perform the method as recited in claim 1.

6. A method for managing erasures on a flash memory device having addressable physical sectors organized as blocks, comprising:

tracking how many physical sectors are free to receive data;
tracking when the physical sectors that are free to receive data are insufficient in quantity to receive write requests from a file system; and
executing an erase operation of one or more blocks if the physical sectors that are free to receive data are insufficient in quantity.

7. The method as recited in claim 6, further comprising scheduling the execution of the erase operation as high priority thread.

8. The method as recited in claim 6, further comprising:

tracking how many physical sectors contain data that is dirty;
comparing whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty; and
executing a second erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data.

9. The method as recited in claim 8, further comprising: scheduling the execution of the second erase operation as a low priority thread.

10. One or more computer-readable media comprising computer executable instructions that, when executed, perform the method as recited in claim 6.

11. A system for flash memory having addressable locations organized as blocks, comprising:

flash abstraction logic, configured to track how many physical sectors are free to receive data; track how many physical sectors contain data that is dirty, and compare whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty; and
a compactor, configured to perform an erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data.

12. The system as recited in claim 11, wherein when the compactor performs an erase operation, the compactor advances through a sequence of the physical sector addresses and if a particular physical sector address corresponding to a physical sector in the memory contains valid data, the compactor moves the valid data to a physical sector address corresponding to a physical sector in the memory that is free to receive data before performing the erase operation.

13. The system as recited in claim 11, wherein the compactor performs the erase operation as low priority thread.

14. The system as recited in claim 11, wherein the flash abstraction logic is further configured to track how many physical sector addresses are free to receive data,

track when the physical sector addresses that are free to receive data are insufficient in quantity to receive write requests from a file system; and
the compactor is further configured to execute an erase operation of one or more blocks if the physical sector addresses that are free to receive data are insufficient in quantity.

15. A system for flash memory having addressable locations organized as blocks, comprising:

flash abstraction logic configured to track how many physical sector addresses are free to receive data, and track when the physical sector addresses that are free to receive data are insufficient in quantity to receive write requests from a file system; and
a compactor, configured to execute an erase operation of one or more blocks if the physical sector addresses that are free to receive data are insufficient in quantity.

16. The system as recited in claim 15, wherein when the compactor performs an erase operation, the compactor advances through a sequence of the physical sector addresses and if a particular physical sector address corresponding to a physical sector in the memory contains valid data, the compactor moves the valid data to a physical sector address corresponding to a physical sector in the memory that is free to receive data before performing the erase operation.

17. The system as recited in claim 15, wherein the flash abstraction logic is further configured to track how many physical sectors are free to receive data; track how many physical sectors contain data that is dirty, and compare whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty; and

the compactor, is further configured to perform an erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data.

18. The system as recited in claim 15, wherein the compactor performs the erase operation as a high priority thread.

19. One or more computer-readable media comprising computer-executable instructions that, when executed by a computer, causes the computer to:

organize a flash memory having addressable locations into blocks;
track how many physical sectors are free to receive data;
track how many physical sectors contain data that is dirty;
compare whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty; and
perform an erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data.

20. One or more computer-readable media as recited in claim 19, that causes the computer when performing the erase operation to:

advance through a sequence of the physical sector addresses; and
if a particular physical sector address corresponding to a physical sector in the memory contains valid data, to move the valid data to a physical sector address corresponding to a physical sector in the memory that is free to receive data before performing the erase operation.

21. One or more computer-readable media as recited in claim 19, wherein the computer treats the erase operation as low priority thread.

22. One or more computer-readable media as recited in claim 19, that causes the computer to: further track how many physical sector addresses are free to receive data, track when the physical sector addresses that are free to receive data are insufficient in quantity to receive write requests from a file system; and perform an erase operation of one or more blocks if the physical sector addresses that are free to receive data are insufficient in quantity.

23. One or more computer-readable media comprising computer-executable instructions that, when executed by a computer, causes the computer to:

organize a flash memory having addressable locations into blocks;
track how many physical sector addresses are free to receive data;
track when the physical sector addresses that are free to receive data are insufficient in quantity to receive write requests from a file system; and
execute an erase operation of one or more blocks if the physical sector addresses that are free to receive data are insufficient in quantity.

24. One or more computer-readable media as recited in claim 23, that causes the computer when performing the erase operation to:

advance through a sequence of the physical sector addresses; and
if a particular physical sector address corresponding to a physical sector in the memory contains valid data, to move the valid data to a physical sector address corresponding to a physical sector in the memory that is free to receive data before performing the erase operation.

25. One or more computer-readable media as recited in claim 23, that causes the computer to further track how many physical sectors are free to receive data; track how many physical sectors contain data that is dirty, and compare whether the physical sectors that are free to receive data outnumber the physical sectors that contain data that is dirty; and perform an erase operation of one or more blocks when the physical sectors that contain data that is dirty outnumber the physical sectors that are free to receive data.

26. One or more computer-readable media as recited in claim 23, wherein the computer treats the erase operation as a high priority thread.