Claims
- 1. A method for storing data in first and second write-once memory devices, the method comprising:
(a) sending, from a first write-once memory device to a file system, an indication of a minimum number of memory cells of the first write-once memory device that can be written into during a write operation; (b) with the file system, writing data into no less than the indicated minimum number of memory cells of the first write-once memory device; (c) sending, from a second write-once memory device to the file system, an indication of a minimum number of memory cells of the second write-once memory device that can be written into during a write operation; and (d) with the file system, writing data into no less than the indicated minimum number of memory cells of the second write-once memory device.
- 2. The method of claim 1, wherein the indication in at least one of (a) and (c) is sent in response to a read command sent from the file system.
- 3 . The method of claim 1, wherein the indication in at least one of (a) and (c) is sent in response to a reset command sent from the file system.
- 4. The method of claim 1, wherein the indication in at least one of (a) and (c) is automatically sent to the file system.
- 5. The method of claim 1, wherein the indication of at least one of the first and second write-once memory devices is written during a format operation.
- 6. The method of claim 1, wherein the indication of at least one of the first and second write-once memory devices is pre-written by a manufacturer of the device.
- 7. The method of claim 1, wherein at least one of the first and second write-once memory devices is logically organized into a plurality of lines, and wherein a line comprises the minimum number of memory cells.
- 8. The method of claim 1, wherein the file system is implemented in a data storage system comprising a driver, and wherein the driver is operative to facilitate communication between the file system and the first and second write-once memory devices but is not operative to dynamically respond to variability in the indicated minimum number of memory cells of the first and second write-once memory devices.
- 9. The method of claim 1, wherein at least one of the first and second write-once memory devices comprises a three-dimensional write-once memory device.
- 10. A method for overwriting data in a memory device comprising a first and second set of memory cells, the method comprising:
(a) storing data in a first set of memory cells in a memory device; (b) storing an error code in a second set of memory cells in the memory device, the error code representing the data stored in the first set of memory cells; (c) writing a destructive pattern into at least some of the first set of memory cells, wherein the error code no longer represents the data stored in the first set of memory cells after the destructive pattern is written; and (d) disregarding the error code.
- 11. The method of claim 10, wherein (d) comprises disabling a comparison of the data stored in the first set of memory cells with the error code.
- 12. The method of claim 10 further comprising comparing the data stored in the first set of memory cells with the error code and detecting that the error code does not represents the data stored in the first set of memory cells, and wherein (d) comprises ignoring the detection.
- 13. The method of claim 12, wherein the data stored in the first set of memory cells is compared with the error code when the data is read.
- 14. The method of claim 12, wherein the data stored in the first set of memory cells is compared with the error code when the destructive pattern is written into at least some of the first set of memory cells.
- 15. The method of claim 10 further comprising storing an indication that the destructive pattern was written into at least some of the first set of memory cells, and wherein the error code is disregarded in (d) in response to a determination that the indication was stored.
- 16. The method of claim 15, wherein the indication comprises a flag bit designated in a file listing.
- 17. The method of claim 15, wherein the indication comprises an entry stored in a table.
- 18. The method of claim 10 further comprising recognizing that a destructive pattern is stored in the first set of memory cells, and wherein the error code is disregarded in (d) in response to the recognition.
- 19. The method of claim 10, wherein the error code comprises an error checking and correcting (ECC) code.
- 20. The method of claim 10, wherein the memory device is logically organized into a plurality of lines, and wherein a line comprises the first and second sets of memory cells.
- 21. The method of claim 10, wherein the first set of memory cells comprises a minimum number of memory cells that can be written into during a write operation.
- 22. The method of claim 10, wherein the memory device comprises a write-once memory device.
- 23. The method of claim 10, wherein the memory device comprises a three-dimensional write-once memory device.
- 24. A method for storing first and second files in a memory device, the method comprising:
(a) providing a memory device logically organized into a plurality of blocks, each block comprising a plurality of lines; (b) allocating a set of blocks for a first file; (c) storing the first file in the set of blocks, wherein the first file only partially fills one of the blocks; (d) determining a set of available lines in the block that is partially filled with the first file; and (e) storing a second file in the set of available lines of the block that is only partially filled with the first file.
- 25. The method of claim 24, wherein a line comprises a minimum number of memory cells that can be written into the memory device.
- 26. The method of claim 24 further comprising storing the first and second files in a memory cache prior to storing them in the memory device.
- 27. The method of claim 24, wherein the set of available lines stores only part of the second file, and wherein the method further comprises:
(f) allocating a second set of blocks for the second file; and (g) storing the second file in the second set of blocks.
- 28. The method of claim 24, wherein the memory device comprises a write-once memory device.
- 29. The method of claim 24, wherein the memory device comprises a three-dimensional write-once memory device.
- 30. A method for storing first and second files in a memory device, the method comprising:
(a) allocating a block for a first file in a memory cache, the block comprising a plurality of lines; (b) storing the first file in the block, wherein the first file only partially fills the block; (c) determining a set of available lines in the block; (d) storing a second file in the set of available lines of the block; (e) over-writing at least one of the first and second files with a third file; and (f) storing the block in the memory device.
- 31. The method of claim 30, wherein the memory device comprises a write-once memory device.
- 32. The method of claim 30, wherein the memory device comprises a three-dimensional write-once memory device.
- 33. A method for storing a file in a contiguous set of memory cells in a memory device, the method comprising:
(a) reserving at least one memory cell in a contiguous set of memory cells for a file structure of a file to be stored in the contiguous set of memory cells; (b) storing the file in the contiguous set of memory cells, wherein the file is stored only in unreserved memory cells; and (c) storing the file structure in the reserved at least one memory cell.
- 34. The method of claim 33, wherein (c) is performed if the file structure cannot be stored in unreserved memory cells.
- 35. The method of claim 34 further comprising:
(d) if the file structure can be stored in unreserved memory cells, storing the file structure in unreserved memory cells.
- 36. The method of claim 35 further comprising:
(e) storing a second file in the at least one reserved memory cell.
- 37. The method of claim 33 further comprising, before the act of reserving, determining a number of memory cells needed to store the file structure.
- 38. The method of claim 33, wherein the file structure comprises a file structure selected from the group consisting of a file footer, a file name, a file attribute, and a file descriptor.
- 39. The method of claim 33, wherein the reserved at least one memory cell is at an end of the contiguous set of memory cells.
- 40. The method of claim 33, wherein the memory device is logically organized into a plurality of blocks, each block comprising a plurality of lines; and wherein the reserved at least one memory cell comprises a line.
- 41. The method of claim 40, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 42. The method of claim 33, wherein the memory device is logically organized into a plurality of blocks, each block comprising at least one line; and wherein the reserved at least one memory cell comprises a block.
- 43. The method of claim 42, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 44. The method of claim 33, wherein the memory device comprises a write-once memory device.
- 45. The method of claim 33, wherein the memory device comprises a three-dimensional write-once memory device.
- 46. A method for partitioning memory cells in a write-once memory device comprising a plurality of memory cells, the method comprising:
(a) creating a partition of memory cells in a write-once memory device; (b) reserving at least one memory cell in the partition for a file system structure of the partition; (c) storing a file in the partition, wherein the file is stored only in unreserved memory cells in the partition; and (d) storing the file system structure in the reserved at least one memory cell.
- 47. The method of claim 46 further comprising, before the act of reserving, determining a number of memory cells needed to store the file system structure.
- 48. The method of claim 46, wherein the file system structure comprises a file system structure selected from the group consisting of an allocation table, a listing of stored files, a search tree, a boot block, a partition header, a partition footer, a description of contents of the write-once memory device, and configuration information.
- 49. The method of claim 46, further comprising:
(e) locating a file or free memory cells in the partition using the file system structure stored in the reserved at least one memory cell.
- 50. The method of claim 46, wherein the reserved at least one memory cell is at an end of the partition.
- 51. The method of claim 46, wherein the memory device is logically organized into a plurality of blocks, each block comprising a plurality of lines; and wherein the reserved at least one memory cell comprises a line.
- 52. The method of claim 51, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 53. The method of claim 46, wherein the memory device is logically organized into a plurality of blocks, each block comprising at least one line; and wherein the reserved at least one memory cell comprises a block.
- 54. The method of claim 53, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 55. The method of claim 46, wherein the memory device comprises a three-dimensional write-once memory device.
- 56. A method for writing file system structures of two file systems into a partition of memory cells of a memory device, the method comprising:
(a) creating a partition of memory cells in a memory device; (b) reserving a first set of memory cells in the partition for a file system structure of a first file system; (c) reserving a second set of memory cells in the partition for a file system structure of a second file system; (d) storing the file system structure of the first file system in the reserved first set of memory cells; and (e) storing the file system structure of the second file system in the reserved second set of memory cells.
- 57. The method of claim 56, wherein (e) is performed in response to a request from a user of the memory device.
- 58. The method of claim 56, wherein (e) is performed automatically by a file system in communication with the memory device.
- 59. The method of claim 56, wherein the memory device is logically organized into a plurality of blocks, each block comprising a plurality of lines; and wherein at least one of the reserved first and second sets of memory cells comprises a line.
- 60. The method of claim 59, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 61. The method of claim 56, wherein the memory device is logically organized into a plurality of blocks, each block comprising at least one line; and wherein at least one of the reserved first and second sets of memory cells comprises a block.
- 62. The method of claim 61, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 63. The method of claim 56, wherein the memory device comprises a write-once memory device.
- 64. The method of claim 56, wherein the memory device comprises a three-dimensional write-once memory device.
- 65. A method for writing file system structures of two file systems into a partition of memory cells of a memory device, the method comprising:
(a) creating a partition of memory cells in a memory device; (b) storing a file system structure of a first file system in the partition; and (c) storing a file system structure of a second file system in the partition.
- 66. The method of claim 65, wherein the memory device comprises a write-once memory device.
- 67. The method of claim 65, wherein the memory device comprises a three-dimensional write-once memory device.
- 68. A memory device comprising a partition of memory cells, the memory device comprising:
a first set of memory cells in a partition storing a file system structure of a first file system; and a second set of memory cells in the partition storing a file system structure of a second file system.
- 69. The memory device of claim 68, wherein the memory device comprises a write-once memory device.
- 70. The invention of claim 68, wherein the memory device comprises a three-dimensional write-once memory device.
- 71. A method for permanently preventing modification of a partition of a memory device, the method comprising:
(a) creating a partition of memory cells in a memory device; and (b) permanently preventing the partition from being modified.
- 72. The method of claim 71, wherein (b) comprises permanently preventing a file system from allocating memory cells in the partition.
- 73. The method of claim 71, wherein (b) comprises disabling an allocator that is operative to allocate memory cells in the partition.
- 74. The method of claim 71, wherein (b) comprises replacing a first allocator that is operative to allocate memory cells in the partition with a second allocator that is prevented from allocating memory cells in the partition.
- 75. The method of claim 71, wherein (b) comprises permanently storing an indicator in a file system structure of the partition, and wherein a file system is prevented from modifying the partition in response to recognizing the indicator in the file system structure.
- 76. The method of claim 71, wherein the memory device comprises a write-once memory device.
- 77. The method of claim 71, wherein the memory device comprises a three-dimensional write-once memory device.
- 78. A method for permanently preventing modification of a file stored in a memory device, the method comprising:
(a) storing a file in at least one memory cell of a memory device; and (b) permanently preventing the file from being modified.
- 79. The method of claim 78, wherein (b) comprises permanently preventing a file system from over-writing the at least one memory cell.
- 80. The method of claim 78, wherein (b) comprises permanently storing an indicator in a file structure of the file, and wherein a file system is prevented from modifying the file in response to recognizing the indicator in the file structure.
- 81. The method of claim 78, wherein the memory device comprises a write-once memory device.
- 82. The method of claim 78, wherein the memory device comprises a three-dimensional write-once memory device.
- 83. A method for identifying memory cells storing data in a memory device, the method comprising:
(a) providing a set of memory cells in a memory device, the set of memory cells storing an identification pattern; (b) overwriting some of the memory cells storing the identification pattern with data; and (c) identifying the memory cells storing the data by identifying the memory cells that are adjacent to the memory cells storing the identification pattern.
- 84. The method of claim 83, wherein (c) comprises identifying the memory cells that are within a predetermined number of memory cells adjacent to the memory cells storing the identification pattern.
- 85. The method of claim 83, wherein (c) comprises identifying the memory cells that are between two sets of memory cells storing the identification pattern.
- 86. The method of claim 83, wherein (c) comprises identifying the memory cells that are between a set of memory cells storing a predetermined pattern of data and a set of memory cells storing the identification pattern.
- 87. The method of claim 83, wherein the memory cells that are overwritten in (b) are between memory cells storing the identification pattern and memory cells storing previously-stored data.
- 88. The method of claim 83, wherein the memory cells storing the identification pattern are all in an unprogrammed logic state.
- 89. The method of claim 83, wherein some of the memory cells storing the identification pattern are in an unprogrammed logic state and other memory cells storing the identification pattern are in a programmed logic state.
- 90. The method of claim 83, wherein the data comprises a description of a file stored in the memory device.
- 91. The method of claim 83, wherein the data comprises a pointer to a file stored in the memory device.
- 92. The method of claim 83, wherein the data comprises an entry to a calendar application run by a data storage system coupled with the memory device.
- 93. The method of claim 83, wherein the data comprises a picture stored by a picture editing application run by a data storage system coupled with the memory device.
- 94. The method of claim 83, wherein the memory device is logically organized into a plurality of blocks, each block comprising at least one line.
- 95. The method of claim 94, wherein a line comprises a minimum number of memory cells that can be written into during a write operation.
- 96. The method of claim 83, wherein the memory device comprises a write-once memory device.
- 97. The method of claim 83, wherein the memory device comprises a three-dimensional write-once memory device.
- 98. A method for identifying memory cells storing data in a memory device, the method comprising:
(a) storing data in a first set of memory cells of a memory device; (b) storing an identifier in a second set of memory cells adjacent to the first set of memory cells, the identifier indicating which memory cells adjacent to the identifier store the data; and (c) identifying the first set of memory cells using the identifier.
- 99. The method of claim 98, wherein the identifier is stored at an end of the stored data.
- 100. The method of claim 98, wherein the data is stored before and after the identifier.
- 101. The method of claim 98, wherein the identifier is fixed.
- 102. The method of claim 98, wherein the identifier is dynamic.
- 103. The method of claim 98, wherein the identifier indicates whether the data stored before the identifier is valid.
- 104. A write-once memory device comprising:
error checking and correcting (ECC) code circuitry; and a plurality of write-once memory cells, wherein at least one data bit and at least one ECC bit generated by the ECC code circuitry based on the at least one data bit are stored in the plurality of write-once memory cells.
- 105. The invention of claim 104, wherein the write-once memory device comprises an electronic memory device.
- 106. The invention of claim 105, wherein the electronic memory device comprises a three-dimensional electronic memory device.
- 107. The invention of claim 105, wherein the electronic memory device is selected from the group consisting of a semiconductor-transistor-technology-based memory device, a magnetic-based memory device, and an organic-electronics-based memory device.
- 108. The invention of claim 104, wherein the write-once memory device comprises an optical memory device.
- 109. A method for storing data and error checking and correcting (ECC) code bits in a write-once memory device, the method comprising:
with a write-once memory device, receiving at least one data bit to be stored in the memory device; with ECC code circuitry integrated with the write-once memory device, generating at least one ECC bit based on the at least one data bit; and storing the at least one data bit and the at least one ECC bit in the write-once memory device.
- 110. The invention of claim 109, wherein the write-once memory device comprises an electronic memory device.
- 111. The invention of claim 110, wherein the electronic memory device comprises a three-dimensional electronic memory device.
- 112. The invention of claim 110, wherein the electronic memory device is selected from the group consisting of a semiconductor-transistor-technology-based memory device, a magnetic-based memory device, and an organic-electronics-based memory device.
- 113. The invention of claim 109, wherein the write-once memory device comprises an optical memory device.
- 114. A three-dimensional electronic memory device comprising:
error checking and correcting (ECC) code circuitry; and a plurality of memory cells arranged in the three-dimensional electronic memory device, wherein at least one data bit and at least one ECC bit generated by the ECC code circuitry based on the at least one data bit are stored in the plurality of memory cells arranged in the three-dimensional electronic memory device.
- 115. The invention of claim 114, wherein the three-dimensional electronic memory device comprises a write-once memory device.
- 116. The invention of claim 114, wherein the three-dimensional electronic memory device is selected from the group consisting of a semiconductor-transistor-technology-based memory device, a magnetic-based memory device, and an organic-electronics-based memory device.
- 117. A method for storing data and error checking and correcting (ECC) code bits in a three-dimensional electronic memory device, the method comprising:
with a three-dimensional electronic memory device, receiving at least one data bit to be stored in the three-dimensional electronic memory device; with ECC code circuitry integrated with the three-dimensional electronic memory device, generating at least one ECC bit based on the at least one data bit; and storing the at least one data bit and the at least one ECC bit in the three-dimensional electronic memory device.
- 118. The invention of claim 117, wherein the three-dimensional electronic memory device comprises a write-once memory device.
- 119. The invention of Claim 117, wherein the three-dimensional electronic memory device is selected from the group consisting of a semiconductor-transistor-technology-based memory device, a magnetic-based memory device, and a organic-electronics-based memory device.
RELATED APPLICATIONS
[0001] This is a continuation-in-part of U.S. patent application Ser. No. 09/662,953, filed Sep. 15, 2000, which is incorporated by reference herein.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09662953 |
Sep 2000 |
US |
Child |
09748589 |
Dec 2000 |
US |