Patent US5809558A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5809558A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and data storage system for storing data in blocks without file reallocation before erasure

Assignee: Intel Corp
•
Filing: 1997-03-17
•
Granted: 1998-09-15
•
Expires: 2017-03-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory management method is provided for a nonvolatile memory having a plurality of blocks each of which can be electrically erased and programmed. A data file to be stored in the nonvolatile memory is received. A number of blocks that are available for data storage are located from the plurality of blocks. The data file is stored in a first block of the number of blocks if the size of the data file is smaller than the total storage space of the first block. The data file is stored in the first block and a second block of the number of blocks if the size of the data file is larger than the total storage space of the first block but smaller than the total storage space of the first and second blocks. Unoccupied space of the first or second block by the data file is not used to store other data files such that no file reallocation operation is needed when the first or second block is to be erased. A data storage system having an erasable and programmable memory and a memory management program is also described.

Inventors

  • 👤 Walter S. Matthews
  • 👤 Markus A. Levy

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 19:57
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0238; G06F12/0246; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99956

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 324 words
A memory management method for a nonvolatile memory having a plurality of blocks each of which can be electrically erased and programmed, comprising the steps of: (A) receiving a data file to be stored in the nonvolatile memory; (B) locating a number of blocks from the plurality of blocks that are available for data storage for storing the data file therein; (C) storing the data file in a first block of the number of blocks if the size of the data file is smaller than or equal to the total storage space of the first block, wherein any unoccupied space of the first block by the data file is not used to store other data files such that no file reallocation is needed when the first block is erased; (D) sequentially storing the data file in the first block and a second block of the number of blocks if the size of the data file is larger than the total storage space of the first block but smaller than the total storage space of the first and second blocks, wherein any unoccupied space of the second block by the data file is not used to store other data files such that no file reallocation is needed when the second block is erased; (E) storing an identifier bit in each of the plurality of blocks, said identifier bit operable to be set in a first state and a second state, said first state indicating that the respective one of the plurality of blocks contains a portion of a data file in at least a portion of the respective block and that a portion of a different data file cannot be stored in the respective block; and (F) storing a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 2
Dependent Claim 324 words
A memory management method for a nonvolatile memory having a plurality of blocks each of which can be electrically erased and programmed, comprising the steps of: (A) receiving a data file to be stored in the nonvolatile memory; (B) locating a number of blocks from the plurality of blocks that are available for data storage for storing the data file therein; (C) storing the data file in a first block of the number of blocks if the size of the data file is smaller than or equal to the total storage space of the first block, wherein any unoccupied space of the first block by the data file is not used to store other data files such that no file reallocation is needed when the first block is erased; (D) sequentially storing the data file in the first block and a second block of the number of blocks if the size of the data file is larger than the total storage space of the first block but smaller than the total storage space of the first and second blocks, wherein any unoccupied space of the second block by the data file is not used to store other data files such that no file reallocation is needed when the second block is erased; (E) storing an identifier bit in each of the plurality of blocks, said identifier bit operable to be set in a first state and a second state, said first state indicating that the respective one of the plurality of blocks contains a portion of a data file in at least a portion of the respective block and that a portion of a different data file cannot be stored in the respective block; and (F) storing a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 3
Dependent Claim 33 words
The memory management method of claim 1, wherein the identifier bit in each of the plurality of blocks is a first addressable memory cell of the respective one of the plurality of blocks.
Claim 4
Dependent Claim 22 words
The memory management method of claim 1 wherein the file identification value is stored adjacent to said identifier bit in each block.
Claim 5
Dependent Claim 23 words
The memory management method of claim 1, wherein the first state is a programmed state and the second state is an erased state.
Claim 6
Dependent Claim 39 words
The memory management method of claim 4, wherein the step (B) further comprises the step of identifying the number of blocks by determining if the identifier bit of each of the number of blocks is in the erased state.
Claim 7
Dependent Claim 48 words
The memory management method of claim 5, wherein the step (C) further comprises the step of programming the identifier bit of the first block to the programmed state to indicate that the first block no longer belongs to the number of blocks that are available for data storage.
Claim 8
Dependent Claim 67 words
The memory management method of claim 6, wherein the step of sequentially storing the data file in the first and second blocks further comprises the step of programming the identifier bit in each of the first and second blocks to the programmed state to indicate that each of the first and second blocks no longer belongs to the number of blocks that are available for data storage.
Claim 9
Dependent Claim 309 words
A memory management method for a nonvolatile memory having a plurality of blocks each of which can be electrically programmed and erased, comprising the steps of: (A) establishing an identifier bit in each of the plurality of blocks to indicate if the respective block of the plurality of blocks is available for data storage, wherein if the identifier bit is in a first state, the respective block of the plurality of blocks contains a portion of a data file in at least a portion of the respective block and a portion of a different data file cannot be stored in the respective block, and wherein if the identifier bit is in a second state, the respective block of the plurality of blocks does not contain a portion of a data file in at least a portion of the respective block and a portion of any data file can be stored in the respective block: (B) locating a number of blocks from the plurality of blocks that have their respective identifier bit in the second state; (C) receiving a data file to be stored in the nonvolatile memory; (D) if the size of the data file is smaller than the total storage space of a first block of the number of blocks, then storing the data file in the first block and changing the identifier bit of the first block from the second state to the first state to cause unoccupied space of the first block by the data file not to store other data files such that no file reallocation is needed when the first block is then erased; and (E) storing a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 10
Dependent Claim 309 words
A memory management method for a nonvolatile memory having a plurality of blocks each of which can be electrically programmed and erased, comprising the steps of: (A) establishing an identifier bit in each of the plurality of blocks to indicate if the respective block of the plurality of blocks is available for data storage, wherein if the identifier bit is in a first state, the respective block of the plurality of blocks contains a portion of a data file in at least a portion of the respective block and a portion of a different data file cannot be stored in the respective block, and wherein if the identifier bit is in a second state, the respective block of the plurality of blocks does not contain a portion of a data file in at least a portion of the respective block and a portion of any data file can be stored in the respective block: (B) locating a number of blocks from the plurality of blocks that have their respective identifier bit in the second state; (C) receiving a data file to be stored in the nonvolatile memory; (D) if the size of the data file is smaller than the total storage space of a first block of the number of blocks, then storing the data file in the first block and changing the identifier bit of the first block from the second state to the first state to cause unoccupied space of the first block by the data file not to store other data files such that no file reallocation is needed when the first block is then erased; and (E) storing a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 11
Dependent Claim 115 words
The memory management method of claim 8 further comprising the step of, if the size of the data file is larger than the total storage space of the first block but smaller than the total storage space of the first block and a second block of the number of blocks, sequentially storing the data file in the first and second blocks and changing the identifier bit of each of the first and second blocks from the second state to the first state to cause unoccupied space of the second block by the data file not to store other data files such that no file reallocation is needed when the second block is to be erased.
Claim 12
Dependent Claim 23 words
The memory management method of claim 8, wherein the first state is a programmed state and the second state is an erased state.
Claim 13
Dependent Claim 33 words
The memory management method of claim 8, wherein the step (B) further comprises the step of accessing the identifier bit of each of the plurality of blocks to identify the number of blocks.
Claim 14
Dependent Claim 33 words
The memory management method of claim 8, wherein the identifier bit in each of the plurality of blocks is a first addressable memory cell of the respective one of the plurality of blocks.
Claim 15
Dependent Claim 255 words
A data storage system, comprising: (A) a nonvolatile memory array that comprises (i) a plurality of blocks, each being electrically erasable and programmable; (ii) an identifier bit in each of the plurality of blocks for indicating if the respective block of the plurality of blocks contains a portion of a first data file in at least a portion of the respective block; (B) a microcontroller for controlling memory operations of each of the plurality of blocks; and (C) a memory management program operative on the microcontroller for managing data storage of the nonvolatile memory array, wherein the memory management program accesses the identifier bit in each of the plurality of blocks to locate a number of blocks from the plurality of blocks that are available for data storage, wherein if the size of the data file is smaller than or equal to the total storage space of a first block of the number of blocks, the memory management program (1) stores a data file in the first block, (2) changes the state of the identifier bit of the first block so as to cause unoccupied space in the first block by the data file not to store portions of other data files such that no file reallocation is needed when the first block is erased, and (3) stores a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 16
Dependent Claim 255 words
A data storage system, comprising: (A) a nonvolatile memory array that comprises (i) a plurality of blocks, each being electrically erasable and programmable; (ii) an identifier bit in each of the plurality of blocks for indicating if the respective block of the plurality of blocks contains a portion of a first data file in at least a portion of the respective block; (B) a microcontroller for controlling memory operations of each of the plurality of blocks; and (C) a memory management program operative on the microcontroller for managing data storage of the nonvolatile memory array, wherein the memory management program accesses the identifier bit in each of the plurality of blocks to locate a number of blocks from the plurality of blocks that are available for data storage, wherein if the size of the data file is smaller than or equal to the total storage space of a first block of the number of blocks, the memory management program (1) stores a data file in the first block, (2) changes the state of the identifier bit of the first block so as to cause unoccupied space in the first block by the data file not to store portions of other data files such that no file reallocation is needed when the first block is erased, and (3) stores a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 17
Dependent Claim 113 words
The data storage system of claim 13, wherein if the size of the data file is larger than the total storage space of the first block but smaller than the total storage space of the first block and a second block of the number of blocks, the memory management program then (1) stores the data file in the first and second blocks and (2) changes the state of the identifier bit of each of the first and second blocks so as to cause unoccupied space in the second block by the data file not to store other data files such that no file reallocation is needed when the second block is then erased.
Claim 18
Dependent Claim 68 words
The data storage system of claim 13, wherein when the identifier bit of one of the plurality of blocks is in a programmed state, the respective one of the plurality of blocks is not available for data storage, wherein when the identifier bit of one of the plurality of blocks is in an erased state, the respective one of the plurality of blocks is available for data storage.
Claim 19
Dependent Claim 33 words
The data storage system of claim 13, wherein the identifier bit in each of the plurality of blocks is a first addressable memory cell of the respective one of the plurality of blocks.
Claim 20
Dependent Claim 24 words
The data storage system of claim 13, wherein the identifier bit in each of the plurality of blocks is a last addressable memory cell.
Claim 21
Dependent Claim 22 words
The data storage system of claim 13 wherein the file identification value is stored adjacent to said identifier bit in each block.
Claim 22
Dependent Claim 249 words
A memory device residing on a single semiconductor substrate, comprising: (A) a nonvolatile memory array that comprises (i) a plurality of blocks, each being electrically programmable and erasable; (ii) an identifier bit in each of the plurality of blocks for indicating if the respective block of the plurality of blocks contains a portion of a first data file in at least a portion of the respective block; (B) a microcontroller for controlling memory operations of each of the plurality of blocks; and (C) a memory management system stored in the memory array and operative on the microcontroller for managing data storage of the memory array, wherein the memory management system locates a first block of the plurality of blocks that is available for data storage by accessing the identifier bit of the first block, wherein the memory management system changes the state of the identifier bit of the first block when the first data file is stored in the first block such that a portion of a second data file cannot be stored in the first block even though the first block includes storage space unoccupied by the first data file so that no file reallocation is needed when the first block is erased, and wherein the memory management system further stores a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 23
Dependent Claim 249 words
A memory device residing on a single semiconductor substrate, comprising: (A) a nonvolatile memory array that comprises (i) a plurality of blocks, each being electrically programmable and erasable; (ii) an identifier bit in each of the plurality of blocks for indicating if the respective block of the plurality of blocks contains a portion of a first data file in at least a portion of the respective block; (B) a microcontroller for controlling memory operations of each of the plurality of blocks; and (C) a memory management system stored in the memory array and operative on the microcontroller for managing data storage of the memory array, wherein the memory management system locates a first block of the plurality of blocks that is available for data storage by accessing the identifier bit of the first block, wherein the memory management system changes the state of the identifier bit of the first block when the first data file is stored in the first block such that a portion of a second data file cannot be stored in the first block even though the first block includes storage space unoccupied by the first data file so that no file reallocation is needed when the first block is erased, and wherein the memory management system further stores a file identification value in each of said plurality of blocks that contains a portion of a data file, said file identification value identifying the data file stored in the corresponding block of said plurality of blocks.
Claim 24
Dependent Claim 67 words
The memory device of claim 19, wherein when the identifier bit of one of the plurality of blocks is in a programmed state, the respective one of the plurality of blocks is not available for data storage, wherein when the identifier bit of one of the plurality of blocks is in an erased state, the respective one of the plurality of blocks is available for data storage.
Claim 25
Dependent Claim 71 words
The memory device of claim 20, wherein the memory management system programs the identifier bit of the first block into the programmed state when the first data file is stored in the first block, wherein the identifier bit of the first-block is erased into the erased state when the first block is erased such that the memory management system requires minimized storage space to store and minimized processing power to operate.
Claim 26
Dependent Claim 236 words
A memory device residing on a single semiconductor substrate, comprising (A) a nonvolatile memory array that comprises a plurality of blocks, each being electrically programmable and erasable, wherein each of the plurality of blocks includes an identifier bit; (B) a microcontroller for controlling memory operations of each of the plurality of blocks; and (C) a memory management system stored in the memory array and operative on the microcontroller for managing data storage of the memory array, wherein the memory management system locates a first block of the plurality of blocks that is available for data storage by accessing the identifier bit of the first block, wherein the memory management system changes the state of the identifier bit of the first block when a portion of a first data file is stored in the first block such that a portion of a second data file cannot be stored in the first block even though the first block includes storage space unoccupied by the data file so that no file reallocation is needed when the first block is erased, and wherein the memory management system assigns a file identifier to the data file when the data file is stored by the memory management system in a number of the plurality of blocks such that no file allocation table is required to retrieve the data file even when some of the number of the plurality of blocks are erased.
Claim 27
Dependent Claim 236 words
A memory device residing on a single semiconductor substrate, comprising (A) a nonvolatile memory array that comprises a plurality of blocks, each being electrically programmable and erasable, wherein each of the plurality of blocks includes an identifier bit; (B) a microcontroller for controlling memory operations of each of the plurality of blocks; and (C) a memory management system stored in the memory array and operative on the microcontroller for managing data storage of the memory array, wherein the memory management system locates a first block of the plurality of blocks that is available for data storage by accessing the identifier bit of the first block, wherein the memory management system changes the state of the identifier bit of the first block when a portion of a first data file is stored in the first block such that a portion of a second data file cannot be stored in the first block even though the first block includes storage space unoccupied by the data file so that no file reallocation is needed when the first block is erased, and wherein the memory management system assigns a file identifier to the data file when the data file is stored by the memory management system in a number of the plurality of blocks such that no file allocation table is required to retrieve the data file even when some of the number of the plurality of blocks are erased.
Claim 28
Dependent Claim 21 words
The memory device of claim 22 wherein the file identification value is stored adjacent to said identifier bit in each block.

References Cited (Backward Citations)

US4896262A Cited
EP0175458A2 Cited
US4775932A Cited
US4800520A Cited
US4802117A Cited
US4797810A Cited
EP0392895B1 Cited
US5200959A Cited
GB2251323A Cited
GB2251324A Cited
US5270979A Cited
CA2088442A1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-09-14 2002-03-16 2002-09-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-09-14 2006-03-16 2006-09-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-09-14 2010-03-16 2010-09-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag