Patentable/Patents/US-6581134
US-6581134

Logic partitioning of a nonvolatile memory array

PublishedJune 17, 2003
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A FLASH memory is organized in a plurality of physical sectors which may be split into a plurality of singularly addressable logic sectors. Each logic sector may include a memory space of a predetermined size and a chain pointer assuming a neutral value or a value pointing to a second logic sector associated with a respective chain pointer at the neutral value. Each logic sector may also include a status indicator assuming at least one of a first value if the logic sector is empty, a second value if the data therein belongs to the logic sector, a third value if the data does not belong to the logic sector, and a fourth value if the data has been erased. Further, each logic sector may include a remap pointer assuming the neutral value or a value pointing directly or indirectly to the chain pointer of a third logic sector.

Patent Claims
18 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A FLASH memory comprising: a plurality of physical sectors each comprising a plurality of singularly addressable logic sectors corresponding to a memory space of a predetermined size, each logic sector comprising a storage space and a header space, the header space comprising a chain pointer assuming a neutral value or a value pointing to another logic sector with a chain pointer having the neutral value, a status indicator assuming a first value if the storage space of the logic sector is empty, a second value if the data stored in the storage space is for the logic sector, a third value if the data stored in the storage space is not for the logic sector, and a fourth value if the data stored in the storage space has been erased, and a remap pointer assuming the neutral value or a value pointing to a chain pointer of another logic sector.

2

2. The FLASH memory of claim 1 wherein the FLASH memory is initialized by setting the chain pointers and the remap pointers to the neutral value and setting all of the status indicators to the first value.

3

3. The FLASH memory of claim 1 wherein the value assumed by the chain pointer pointing to the other logic sector points directly to the other logic sector.

4

4. The FLASH memory of claim 1 wherein the value assumed by the chain pointer pointing to the other logic sector points indirectly to the other logic sector.

5

5. The FLASH memory of claim 1 wherein the value assumed by the a remap pointer pointing to the chain pointer of the other logic sector points directly to the chain pointer of the other logic sector.

6

6. The FLASH memory of claim 1 wherein the value assumed by the a remap pointer pointing to the chain pointer of the other logic sector points indirectly to the chain pointer of the other logic sector.

7

7. A FLASH memory comprising: a plurality of physical sectors singularly addressable by a physical address and each comprising a memory space of a predetermined size; a logical address; and a status indicator assuming a first value if said logical address has a neutral value, assuming a second value if said memory space is being written to and if said logical address does not have the neutral value, assuming a third value when said memory space comprises valid data and when said memory space is empty, and assuming a fourth value if said memory space comprises data to be erased.

8

8. The FLASH memory of claim 7 wherein only one physical sector has an address equal to the neutral value.

9

9. A method of managing a FLASH memory comprising a plurality of physical sectors each comprising a plurality of singularly addressable logic sectors corresponding to a memory space of a predetermined size, each logic sector comprising a storage space and a header space, the header space comprising a chain pointer assuming a neutral value or a value pointing to another logic sector with a chain pointer having the neutral value, a status indicator assuming a first value if the storage space of the logic sector is empty, a second value if the data stored in the storage space is for the logic sector, a third value if the data stored in the storage space is not for the logic sector, and a fourth value if the data stored in the storage space has been erased, and the header space further comprising a remap pointer assuming the neutral value or a value pointing to a chain pointer of another logic sector, the method comprising: initializing the FLASH memory by setting the chain pointers and the remap pointers to the neutral value and setting all of the status indicators to the first value; erasing a first predetermined logic sector whose respective chain pointer has the neutral value by setting the respective status indicator of the predetermined logic sector to the fourth value; reading data corresponding to a logic sector by reading a null value if the respective status indicator of the logic sector has at least one of the first or fourth values, if the status indicator has not assumed one of the first or fourth values and if the respective remap pointer of the logic sector has a neutral value, reading at least one of the data stored in the logic sector if the respective chain pointer of the logic sector has a neutral value and the data stored in another logic sector addressed by the chain pointer, and if the remap pointer points to a chain pointer of a second predetermined first logic sector, reading data stored in the second predetermined logic sector if the respective chain pointer has the neutral value and in another logic sector addressed by the chain pointer; writing data in at least one of the logic sectors by writing the data in the respective storage space of the at least one logic sector and assigning to the respective status indicator at least one of the second and third values if the respective status indicator of the at least one logic sector has the first value, repeating writing the data and assigning at least one of the second and third values on a first empty logic sector, setting the respective status indicator of the first empty logic sector to have the third value, and setting the chain pointer of the logic sector addressed by the chain pointer of the at least one logic sector to have the address of the first empty logic sector if the status indicator has the second value, repeating writing the data and assigning at least one of the second and third values to a second empty logic sector, setting the respective status indicator to have the third value, and setting the respective remap pointer to have the address of the second empty logic sector if the respective status indicator has at least one of the third value and the fourth value and if the remap pointer of the at least one logic sector has a neutral value, repeating writing the data and assigning at least one of the second and third values on a third empty logic sector, setting the respective status indicator to have the third value, setting the respective chain pointer of a logic sector addressed by the remap pointer equal to the address of the third empty logic sector if the remap pointer does not have the neutral value; and re-writing data stored in a physical sector by saving valid data in logic sectors whose respective chain pointers have the neutral value and whose respective status indicators do not have the fourth value, saving the address of the respective logic sector for the valid data, physically erasing the data stored in the physical sector, and writing the saved data in the respective logic sectors and setting the respective status indicators to have the second value.

10

10. A method of managing a FLASH memory comprising a plurality of physical sectors each comprising a plurality of singularly addressable logic sectors corresponding to a memory space of a predetermined size, each logic sector comprising a storage space and a header space, the header space comprising a chain pointer assuming a neutral value or a value pointing to another logic sector with a chain pointer having the neutral value, a status indicator assuming a first value if the storage space of the logic sector is empty, a second value if the data stored in the storage space is for the logic sector, a third value if the data stored in the storage space is not for the logic sector, and a fourth value if the data stored in the storage space has been erased, and the header space further comprising a remap pointer assuming the neutral value or a value pointing to a chain pointer of another logic sector, the method comprising: initializing the FLASH memory by setting the chain pointers and the remap pointers to the neutral value and setting all of the status indicators to the first value; and erasing a first predetermined logic sector whose respective chain pointer has the neutral value by setting the respective status indicator of the predetermined logic sector to the fourth value.

11

11. The method of claim 10 further comprising reading data corresponding to a logic sector by: reading a null value if the respective status indicator of the logic sector has at least one of the first or fourth values; if the status indicator has not assumed one of the first or fourth values and if the respective remap pointer of the logic sector has a neutral value, reading at least one of the data stored in the logic sector if the respective chain pointer of the logic sector has a neutral value and the data stored in another logic sector addressed by the chain pointer; and if the remap pointer points to a chain pointer of a second predetermined first logic sector, reading data stored in the second predetermined logic sector if the respective chain pointer has the neutral value and in another logic sector addressed by the chain pointer.

12

12. The method of claim 10 further comprising writing data in at least one of the logic sectors by: writing the data in the respective storage space of the at least one logic sector and assigning to the respective status indicator at least one of the second and third values if the respective status indicator of the at least one logic sector has the first value; repeating writing the data and assigning at least one of the second and third values on a first empty logic sector, setting the respective status indicator of the first empty logic sector to have the third value, and setting the chain pointer of the logic sector addressed by the chain pointer of the at least one logic sector to have the address of the first empty logic sector if the status indicator has the second value; repeating writing the data and assigning at least one of the second and third values to a second empty logic sector, setting the respective status indicator to have the third value, and setting the respective remap pointer to have the address of the second empty logic sector if the respective status indicator has at least one of the third value and the fourth value and if the remap pointer of the at least one logic sector has a neutral value; and repeating writing the data and assigning at least one of the second and third values on a third empty logic sector, setting the respective status indicator to have the third value, setting the respective chain pointer of a logic sector addressed by the remap pointer equal to the address of the third empty logic sector if the remap pointer does not have the neutral value.

13

13. The method of claim 10 further comprising re-writing data stored in a physical sector by: saving valid data in logic sectors whose respective chain pointers have the neutral value and whose respective status indicators do not have the fourth value; saving the address of the respective logic sector for the valid data; physically erasing the data stored in the physical sector; and writing the saved data in the respective logic sectors and setting the respective status indicators to have the second value.

14

14. A method of managing a FLASH memory comprising a plurality of physical sectors singularly addressable by a physical address each comprising a memory space of a predetermined size, a logical address, and a status indicator assuming a first value if the logical address has a neutral value, assuming a second value if the memory space is being written to and if the logical address does not have the neutral value, assuming a third value when the memory space comprises valid data and when the memory space is empty, and assuming a fourth value if the memory space comprises data to be erased, and at least one logical address having the neutral value, the method comprising: accessing a predetermined physical sector by scanning all physical sectors of the memory and building a look up table associating each scanned physical address with a respective logical address upon start-up of the FLASH memory, and finding the physical address of the predetermined physical sector to be accessed based upon its respective logical address using the look up table; partially erasing data stored in each physical sector associated with a logical address by locating a free physical sector whose status indicator has the first value, assigning the second value to the respective status indicator of the free physical sector, setting the respective logical address of the free physical sector to have the logical address of the physical sector to be erased, copying in the free physical sector data to be saved that is stored in the physical sector to be erased, assigning the third value to the status indicator of the free physical sector, assigning the fourth value to the respective state of the physical sector to be erased, erasing the data in the physical sector to be erased, assigning the first value to the status indicator of the physical sector to be erased and setting the respective logical address to the neutral value, and updating the look up table; effecting a boot erasing of the memory by examining one by one each physical sector of the FLASH memory and erasing all physical sectors whose status indicator indicates invalid data, has the second value, has the fourth value, and has the third value if the logical address of the physical section is already assigned to a different physical sector, assigning the first value to the respective status indicators of the erased physical sectors, and assigning a respective logical address to any free physical sector not having a logical address; and formatting the memory by examining one by one the physical sectors of the FLASH memory whose status indicator has the first value, setting at least one logical address of a physical sector to have the neutral value, and setting the status indicators of the remaining physical sectors to have the third value and assigning respective logical addresses thereto.

15

15. The method of claim 14 wherein access to a predetermined physical sector is provided by scanning the physical sectors until verifying an identity of the logical address associated therewith based upon a required address.

16

16. The method of claim 14 wherein only one physical sector has an address equal to the neutral value.

17

17. A method for managing a FLASH memory comprising a plurality of physical sectors singularly addressable by a physical address and each comprising a memory space, a logical address, and a status indicator, the method comprising: assigning a first value to the status indicator if the logical address has a neutral value; assigning a second value to the status indicator if the memory space is being written to and if the logical address does not have the neutral value; assigning a third value to the status indicator when the memory space comprises valid data and when the memory space is empty; and assigning a fourth value to the status indicator if the memory space comprises data to be erased.

18

18. The method of claim 17 wherein only one physical sector has an address equal to the neutral value.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

March 26, 2001

Publication Date

June 17, 2003

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Logic partitioning of a nonvolatile memory array” (US-6581134). https://patentable.app/patents/US-6581134

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.