Claims
- 1. A computer for storing data on a flash medium, comprising: one or more processors and a file system, the file system configured to store data on the flash medium as a series of linked lists by storing pointers in each physical sector of the flash medium in which valid data is also stored, wherein each pointer indicates a next physical sector in the flash medium in which valid data is located.
- 2. The computer as recited in claim 1, wherein the file system is further configured to store data in a first region of the physical sectors.
- 3. The computer as recited in claim 1, wherein the file system is further configured to store the pointer in a second region of the physical sectors.
- 4. The computer as recited in claim 1, wherein each pointer is metadata.
- 5. The computer as recited in claim 1, wherein the data comprises file system information including at least one of file data, directories, and file attributes.
- 6. A method for storing data on a flash medium, comprising:
storing data in a first region of a first physical sector of the flash medium; and storing a pointer in a second region of the first physical sector indicating a next physical sector in which valid data is located on the flash medium.
- 7. The method as recited in claim 6, wherein the pointer is metadata used to link locations of the first physical sector to the next physical sector in which valid data is stored on the flash medium.
- 8. The method as recited in claim 6, wherein the data comprises file system information including at least one of file data, directories, and file attributes.
- 9. The method as recited in claim 6, wherein the first region is larger than the second region.
- 10. The method as recited in claim 6, wherein the second region of the first physical sector is a spare area.
- 11. One or more computer-readable media comprising computer executable instructions that, when executed, direct a computer to:
store data in a first region of a first physical sector of the flash medium; and store a pointer in a second region of the first physical sector indicating a next physical sector in which valid data is located on the flash medium.
- 12. One or more computer-readable media as recited in claim 11, wherein the pointer is metadata used to link locations of the first physical sector to the next physical sector in which valid data is stored on the flash medium.
- 13. One or more computer-readable media as recited in claim 11, wherein the data comprises file system information including at least one of file data, directories, and file attributes.
- 14. One or more computer-readable media as recited in claim 11, wherein the first region is larger than the second region.
- 15. One or more computer-readable media as recited in claim 11, wherein the second region of the first physical sector is a logical metadata region within a data region of a physical sector.
- 16. In a computer having a flash medium, a method for recording a transaction log, comprising:
receiving requests to perform file transactions; storing transaction information associated with the file transactions at arbitrary physical sector addresses on a flash medium.
- 17. The method as recited in claim 16, wherein the arbitrary physical sector addresses include valid physical sector addresses not restricted to any fixed region of physical sector addresses on the flash medium.
- 18. The method as recited in claim 16, wherein the transaction information includes transaction log data.
- 19. The method as recited in claim 16, wherein the transaction information includes metadata indicating that the arbitrary physical sector addresses contain transaction information.
- 20. The method as recited in claim 16, further comprising identifying the arbitrary physical sector addresses containing the transaction information.
- 21. The method as recited in claim 16, further comprising identifying the arbitrary physical sector addresses containing the transaction information by writing transaction log metadata into a spare area of the physical sector corresponding to the arbitrary physical sector addresses.
- 22. The method as recited in claim 16, further comprising:
identifying the arbitrary physical sector addresses containing the transaction information by: writing transaction log metadata into spare areas of each of the physical sectors corresponding to the arbitrary physical sector addresses; and scanning the spare areas of the physical sectors on the flash medium for any physical sectors containing the transaction log metadata.
- 23. The method as recited in claim 16, further comprising:
writing a transaction log bit into spare areas of each of the physical sectors corresponding to the arbitrary physical sector addresses that store transaction information; and scanning the spare areas of the physical sectors on the flash medium for any physical sectors containing the transaction log bit to identify those physical sector addresses containing transaction information.
- 24. The method as recited in claim 16, further comprising marking at least one of the arbitrary physical sector addresses containing transaction information dirty when at least one of the file transactions corresponding to the transaction information is completed.
- 25. A computer, comprising:
a processor; a flash medium containing physical sector addresses; a file system configured to perform a file transaction, wherein the file system is configured to maintain a transaction log of the file transaction by storing transaction information associated with the file transaction at an arbitrary physical sector address on the flash medium.
- 26. The computer as recited in claim 25, wherein the arbitrary physical sector address includes a valid physical sector address not restricted to any fixed region of the physical sector addresses on the flash medium.
- 27. The computer as recited in claim 25, wherein the transaction information includes transaction log data.
- 28. The computer as recited in claim 25, wherein the transaction information includes metadata indicative that the arbitrary physical sector address contains transaction information.
- 29. The computer as recited in claim 25, wherein the file system is further configured to identify the arbitrary physical sector address containing the transaction information.
- 30. The computer as recited in claim 25, wherein the file system is further configured to identify the arbitrary physical sector address containing the transaction information by writing transaction log metadata into a spare area of the physical sector corresponding to the arbitrary physical sector address.
- 31. The computer as recited in claim 25, wherein the file system is further configured to identify the arbitrary physical sector address containing the transaction information by writing transaction log metadata into a spare area of the physical sector corresponding to the arbitrary physical sector address; and scan spare areas of the physical sectors on the flash medium for the physical sector containing the transaction log metadata.
- 32. The computer as recited in claim 25, wherein the file system is further configured to write a transaction log bit into a spare area of the physical sector corresponding to the arbitrary physical sector address; and scan spare areas of the physical sectors on the flash medium for the physical sector containing the transaction log bit to identify the physical sector address containing the transaction information.
- 33. The computer as recited in claim 25, wherein the file system is further configured to mark the arbitrary physical sector address containing the transaction information dirty when the file transaction corresponding to the transaction information is completed.
- 34. One or more computer-readable media comprising computer executable instructions that, when executed, direct a computer to:
receive requests to perform file transactions; and record transaction information associated with the file transactions at arbitrary physical sector addresses on a flash medium, wherein the arbitrary physical sector addresses include valid physical sector addresses not restricted to any fixed region of physical sector addresses on the flash medium.
- 35. One or more computer-readable media as recited in claim 34, wherein the transaction information includes transaction log data.
- 36. One or more computer-readable media as recited in claim 34, wherein the transaction information includes metadata indicating that the arbitrary physical sector addresses contain transaction information.
- 37. One or more computer-readable media as recited in claim 34, further comprising computer executable instructions that, when executed, direct a computer to identify the arbitrary physical sector addresses containing the transaction information.
- 38. One or more computer-readable media as recited in claim 34, further comprising computer executable instructions that, when executed, direct a computer to identify the arbitrary physical sector addresses containing the transaction information by writing transaction log metadata into a spare area of the physical sector corresponding to the arbitrary physical sector addresses.
- 39. One or more computer-readable media as recited in claim 34, further comprising computer executable instructions that, when executed, direct a computer to identify the arbitrary physical sector addresses containing the transaction information by writing transaction log metadata into spare areas of each of the physical sectors corresponding to the arbitrary physical sector addresses; and scanning the spare areas of the physical sectors on the flash medium for any physical sectors containing the transaction log metadata.
- 40. One or more computer-readable media as recited in claim 34, further comprising computer executable instructions that, when executed, direct a computer to write a transaction log bit into spare areas of each of the physical sectors corresponding to the arbitrary physical sector addresses that store transaction information; and scan the spare areas of the physical sectors on the flash medium for any physical sectors containing the transaction log bit to identify those physical sector addresses containing transaction information.
- 41. One or more computer-readable media as recited in claim 34, further comprising computer executable instructions that, when executed, direct a computer to mark at least one of the arbitrary physical sector addresses containing transaction information dirty when at least one of the file transactions corresponding to the transaction information is completed.
- 42. In a computer having a flash medium containing physical sectors to store data, a method for maintaining a transaction log on the flash medium, comprising:
storing a transaction log in a physical sector of a flash medium, the transaction log containing information associated with performing a file request; indicating that the physical sector contains a transaction log by writing metadata into a spare area of the physical sector; and marking the physical sector dirty, if the file request is completed.
- 43. The method as recited in claim 42, further comprising initializing the computer, and scanning the physical sectors for the physical sector containing the metadata indicative that the physical sector contains a transaction log.
- 44. The method as recited in claim 42, further comprising:
initializing the computer, scanning the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; and concluding that the file request is completed, if the physical sector containing the metadata is not located.
- 45. The method as recited in claim 42, further comprising:
initializing the computer, scanning the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; and concluding that the file request was not completed, if the physical sector containing the metadata is located.
- 46. The method as recited in claim 42, further comprising:
initializing the computer; scanning the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; concluding that the file request was not completed, if the physical sector containing the metadata is located; and attempting to perform the file request specified by the transaction log.
- 47. The method as recited in claim 42, wherein information associated with performing the file request includes operation code indicating what command is associated with the file request.
- 48. The method as recited in claim 42, wherein the metadata is a bit in the spare area.
- 49. The method as recited in claim 42, wherein the physical sector containing the transaction log is located at an arbitrary physical sector address on the flash medium, wherein the arbitrary physical sector address includes any valid physical sector address not restricted to a fixed region of physical sector addresses on the flash medium.
- 50. One or more computer-readable media comprising computer executable instructions that, when executed, direct a computer to:
store a transaction log in a physical sector of a flash medium, the transaction log containing information associated with performing a file request; indicate that the physical sector contains a transaction log by writing metadata into a spare area of the physical sector; mark the physical sector dirty, if the file request is completed; initialize the computer; scan the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; conclude that the file request was not completed after initialization, if the physical sector containing the metadata is located; and attempt to perform the file request specified by the transaction log.
- 51. One or more computer-readable media as recited in claim 50, wherein the physical sector containing the transaction log is located at an arbitrary physical sector address on the flash medium, wherein the arbitrary physical sector address includes any valid physical sector address not restricted to a fixed region of physical sector addresses on the flash medium.
- 52. A computer, comprising:
a processor; and a file system configured to (i) store a transaction log in a physical sector of a flash medium, the transaction log containing information associated with performing a file request; (ii) indicate that the physical sector contains a transaction log by writing metadata into a spare area of the physical sector; and (iii) mark the physical sector dirty, if the file request is completed.
- 53. The computer as recited in claim 52, wherein the physical sector containing the transaction log is located at an arbitrary physical sector address on the flash medium, wherein the arbitrary physical sector address includes any valid physical sector address not restricted to a fixed region of physical sector addresses on the flash medium.
- 54. The computer as recited in claim 52, wherein after the computer is initialized, the file system is further configured to scan the physical sectors for the physical sector containing the metadata indicative that the physical sector contains a transaction log.
- 55. The computer as recited in claim 52, wherein after the computer is initialized, the file system is further configured to scan the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; and conclude that the file request is completed, if the physical sector containing the metadata is not located.
- 56. The computer as recited in claim 52, wherein after the computer is initialized, the file system is further configured to scan the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; and conclude that the file request was not completed, if the physical sector containing the metadata is located.
- 57. The computer as recited in claim 52, wherein after the computer is initialized, the file system is further configured to scan the physical sectors not marked dirty for the physical sector containing the metadata indicative that the physical sector contains a transaction log; conclude that the file request was not completed, if the physical sector containing the metadata is located; and attempt to perform the file request specified by the transaction log.
- 58. The computer as recited in claim 52, wherein information associated with performing the file request includes operation code indicating what command is associated with the file request.
- 59. A system, comprising:
means for storing a transaction log in a physical sector of a storage device, the transaction log containing information associated with performing a file request; means for indicating that the physical sector contains a transaction log by writing metadata into a spare area of the physical sector; and means for marking the physical sector dirty, if the file request is completed wherein the physical sector containing the transaction log is located at an arbitrary location on the storage device, wherein the arbitrary location includes any valid address not restricted to a fixed region of addresses on the storage device.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present patent application is a Continuation-In-Part of U.S. patent application Ser. No. 10/087,672, entitled “Open Architecture Flash Driver,” by Aasheim, et al., having a filing date of Feb. 27, 2002, and is commonly assigned herewith (hereinafter referred to as “Aasheim '672”). The contents of the aforementioned application are fully incorporated herein by reference.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10087672 |
Feb 2002 |
US |
Child |
10301519 |
Nov 2002 |
US |