Rewriting flash memories by message passing
US-2016224408-A1 · Aug 4, 2016 · US
US9760301B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9760301-B2 |
| Application number | US-201514826183-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 13, 2015 |
| Priority date | Aug 13, 2015 |
| Publication date | Sep 12, 2017 |
| Grant date | Sep 12, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system for write-once memory (WOM) code emulation of EEPROM-type devices includes, for example, a host processor for sending data words for storing in a WOM (Write-Only Memory) device. A host interface receives the data words for encoding by a WOM controller. An emulator programs the WOM-encoded data and an address identifier as an entry of the WOM device. The emulator overwrites previously programmed WOM-encoded data by searching entries of a current active page of a WOM device to locate a programmed WOM entry that includes the searched-for address identifier and the previously written WOM-encoded data word. When the previously written WOM-encoded word cannot be correctly overwritten, the contents of the second WOM-encoded word are stored in a new entry. When the current active page is substantially full, the new entry is stored a new page and the current active page is block-erased.
Opening claim text (preview).
What is claimed is: 1. A circuit, comprising: a host interface operable to receive a first and second data word, the first and second data words each including at least one original symbol being associated with an address identifier for addressing the first and second data word; a WOM (Write-Only Memory) controller operable to generate a first WOM-encoded word in response to the at least one original symbol of the first data word and to generate a second WOM-encoded word in response to the at least one original symbol of the second data word; and an emulator operable to search entries of a first current page of a WOM device to locate a programmed WOM entry in a first location having a first field including the address identifier, to determine whether stored contents of a second field of the located entry are operable to be overwritten in accordance with the contents of the second WOM-encoded word, and if the stored contents of a second field of the located entry are operable to be overwritten, to store the contents of the second WOM-encoded word by overwriting the contents of the first WOM-encoded word in the first location, and if the stored contents of a second field of the located entry are not operable to be overwritten, to store the contents of the second WOM-encoded word by allocating a new entry and storing the second WOM-encoded word and the address identifier in the allocated new entry; and wherein the determination of whether the stored contents of the second field of the located entry are operable to be overwritten is made in accordance with P=[c x (0)·c x (1)]+[c x (0)·c x (2)]+[c x (1)·c x (2)], where P=1 indicates the stored contents are operable to be overwritten, P=0 indicates the stored contents are not operable to be overwritten, and wherein: c x (0) is a first encoded bit of the stored contents of the second field; c x (1) is a second encoded bit of the stored contents of the second field; and c x (2) is a first encoded bit of the stored contents of the second field. 2. The circuit of claim 1 , wherein the emulator is operable to write contents of the first WOM-encoded word and the address identifier to the first location by changing a block-initialized state of selected bits in the first location of the located entry. 3. The circuit of claim 2 , wherein the address identifier is not stored using a WOM encoding. 4. The circuit of claim 2 , wherein the bits of the first location have a block-initialized state of being “1”s. 5. The circuit of claim 2 , wherein the emulator is operable to determine whether the new entry is allocated in the first current page, and in response to the determination the new entry is not allocated in the first current page, to select a different page as a second current page. 6. The circuit of claim 5 , wherein the contents of the second WOM-encoded word in the allocated new entry are stored in the second current page. 7. The circuit of claim 6 , wherein data contents are copied to the second current page in accordance with contents of the entries stored in the first current page. 8. The circuit of claim 7 , wherein the data contents copied to the second current page are copied from volatile memory having data contents stored in accordance with the contents of the entries stored in the first current page. 9. The circuit of claim 5 , wherein the emulator is operable to determine whether the new entry is allocated in a first current region including the first location of the first current page, and in response to a determination the new entry is not allocated in the first current region, to select a different region as a second current region, wherein the search to locate the programmed WOM entry in the first location searches for the programmed WOM entry in the latest of the first and second current regions. 10. The circuit of claim 5 , wherein the first current page is block-erased in response to the selection of the different page as the second current page. 11. A system, comprising: a host processor operable to send a first and second data word, the first and second data words each including at least one original symbol being associated with an address identifier for addressing the first and second data word; a WOM (Write-Only Memory) device communicatively coupled to the host processor and operable to be block-initialized in accordance with a block-initialized state; a host interface operable to receive the first data word; a WOM controller operable to generate a first WOM-encoded word in response to the original symbol of the first data word and to generate a second WOM-encoded word in response to the original symbol of the second data word; and an emulator operable to search entries of a selected active page of a WOM device to locate a programmed WOM entry in a first location, to determine whether a second field of the located entry includes stored contents of the first WOM-encoded word operable to be overwritten to store the contents of the second WOM-encoded word, and when the first WOM-encoded word is operable to be overwritten, to store the contents of the second WOM-encoded word by overwriting the contents of the first WOM-encoded word, and when the first WOM-encoded word is not operable to be overwritten, to store the contents of the second WOM-encoded word by allocating a new entry and storing contents of the second WOM-encoded word in the allocated new entry; wherein the emulator is operable to determine whether a second filed of the located entry includes stored contents of the first WOM-encoded word operable to be overwritten to store the contents of the second WOM-encoded word in accordance with P=[c x (0)·c x (1)]+[c x (0)·c x (2)]+[c x (1)·c x (2)], where P=1 indicates the stored contents are operable to be overwritten, P=0 indicates the stored contents are not operable to be overwritten, and wherein: c x (0) is a first encoded bit of the stored contents of the second field; c x (1) is a second encoded bit of the stored contents of the second field; and c x (2) is a first encoded bit of the stored contents of the second field. 12. The system of claim 11 , wherein the emulator is operable to write contents of the first WOM-encoded word and the address identifier to the first location by changing a block-initialized state of selected bits in the first location of the located entry. 13. The system of claim 12 , wherein the original symbol of the first data word is at least two bits and is WOM-encoded and stored in the WOM device as at least three bits. 14. The system of claim 12 , wherein the emulator is operable to determine whether a first current page including the first location is substantially full, and in response to the determination the current page is substantially full, to select a different page as a second current page, to copy a memory image associated with data stored in the first current page to the second current page, and to block-erase the first current page. 15. The system of claim 14 , wherein the emulator is operable to determine whether a first current region including the first location is substantially full, and in response to the determination the current region is substantially full, to select a different region as a second current region such that a search to locate a WOM entry subsequently programmed in the second current region is started in accordance with the second current region. 16. A method, comprising: receiving a first and second data word, the first and second data words each including at least one original symbol being associated with an address identifier; generating a first WOM-encoded wor
of program code stored in read-only memory [ROM] · CPC title
One time programmable [OTP] memory, e.g. PROM, WORM · CPC title
in block erasable memory, e.g. flash memory · CPC title
Physics · mapped topic
in relation to life time, e.g. increasing Mean Time Between Failures [MTBF] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.