Eeprom emulation using flash memory
AssigneeSilicon Laboratories Inc.
InventorsKAFAI LEUNG, WILLIAM DURBIN
Life of this patent
Estimating the term…
Abstract
A device is provided wherein a traditional EEPROM device is emulated by using two or more pages of block-erasable memory and mapping each traditional EEPROM write instruction to an incremented active data sector in a first page of the block-erasable memory while a second page of the block-erasable memory is being partially or fully erased. Then, when the first page of block-erasable memory has had its plurality of data sectors written, changing the active page to the second block-erasable memory and mapping traditional EEPROM writes to incremented data sectors therein while the previously written block-erasable memory is being partially or fully erased.
Claims21
A method of writing to and reading data from a circuit comprising control logic circuitry, a first block-erasable memory page and a second block-erasable memory page, the method comprising:
- a first writing of a predetermined number of data bytes to a first address space;
- a first mapping and writing, by the control logic circuitry, of the predetermined number of data bytes to an active data sector, the active data sector being the next data sector of a plurality of data sectors in the first block-erasable memory page, the first block-erasable memory page comprising a first memory space being a multiple of the predetermined number of data bytes;
- repeating the first writing and the first mapping and writing until a last data sector of the plurality of data sectors in the first block-erasable memory page is written;
- erasing the second block-erasable memory page during at least one repeated first mapping and writing;
- a second writing of the predetermined number of data bytes to the first address space;
- a second mapping and writing, by the control logic circuitry, of the predetermined number of data bytes to the active data sector, the active data sector being the next data sector of a plurality of data sectors in the second block-erasable memory page, the second block-erasable memory page comprising a second memory space being the multiple of the predetermined number of data bytes, the second mapping and writing occurring after the last data sector of the plurality of data sectors in the first block-erasable memory page is written;
- repeating the second writing and the second mapping and writing until a last data sector of the plurality of data sectors in the second block-erasable memory page is written;
- and
- erasing the first block-erasable memory page during at least one repeated second mapping and writing.
A method of reading data from and writing data to a block-erasable memory comprising a plurality of pages and a control logic circuit,
- the method of reading data from the block-erasable memory comprising:
- receiving, by the control logic circuit, a read request;
- determining, by the control logic circuit, an active page of the plurality of pages;
- determining, the control logic circuit, an active sector of the active page;
- reading active data from the active sector of the active page to a register, the active data read to the register being output data;
- and
- making the output data valid data and available to a peripheral circuit;
- and
- the method of writing data to the block-erasable memory comprising:
- determining, by the control logic circuit, the active page of the plurality of pages, each one of the plurality of pages having a plurality of data sectors;
- determining, by the control logic circuit, the active data sector of the plurality of data sectors of the active page;
- if the active data sector is not the last data sector of active page, then changing the active data sector to be a next data sector of the plurality of data sectors of the active page;
- if the active data sector is the last data sector of the active page, then changing the active page to a next page of the plurality of pages and changing the active data sector to a first data sector of the active page;
- if the first data sector of the active page is not the active data sector, then erasing at least a partial amount of at least one page of the plurality of pages, the at least one page not being the active page;
- and
- writing register data to the active data sector of the active page.
A method of emulating a traditional EEPROM in a device comprising a plurality of pages of block-erasable memory and a control logic circuit, the method of emulating comprising a method of writing to an active data sector of one of the plurality of pages of block-erasable memory and a method of reading from the active data sector of one of the plurality pages of block-erasable memory;
- the method of writing comprising:
- first interpreting, by the control logic circuit, from a first contents of a first tag data associated with a first block-erasable memory page and from a second contents of a second tag data associated with a second block-erasable memory page, whether the first block-erasable memory page or the second block-erasable memory page is an active page;
- if the first block-erasable memory page is the active page, then interpreting, by the control logic circuit, from the first contents an active data sector;
- if the second block-erasable memory page is the active page, then interpreting, by the control logic circuit, from the second contents the active data sector;
- second interpreting, by the control logic circuit, whether the active data sector is a last data sector of the active page;
- if the active data sector of the active page is not the last data sector, then advancing the active data sector such that the active data sector becomes equal to a next data sector of the active page, the active page having a predetermined number of data sectors;
- erasing at least a partial amount of a block-erasable memory page that is not the active page;
- calculating a checksum for a register data received from a peripheral circuit, the register data being a predetermined number of bytes;
- updating the first contents if the active page is the first block-erasable memory page or updating the second contents if the active page is the second block erasable memory page such that the updated first or second contents comprises an indication of the advanced active data sector and the checksum, the checksum being considered an active data checksum for the active data sector;
- and
- writing the register data to the active data sector, the register data being active data when in the active data sector.
Dependencies are inferred from the claim text.