Legal claims defining the scope of protection, as filed with the USPTO.
1. An apparatus comprising: a non-volatile memory comprising a plurality of R-blocks; and a controller coupled to said non-volatile memory, wherein said controller is configured to (i) write data using said R-blocks as a unit of allocation and (ii) perform recycling operations selectively on either an entire one of said R-blocks or a portion less than all of one of said R-blocks.
2. The apparatus according to claim 1 , wherein said controller is further configured to perform said recycling operations on said entire one of said R-blocks as part of garbage collection.
3. The apparatus according to claim 1 , wherein said controller is further configured to perform said recycling operations on said portion less than all of one of said R-blocks as part of error handling.
4. The apparatus according to claim 3 , wherein: said error handling is enabled in response to detection of a program error in a block of said non-volatile memory; and said portion less than all of one of said R-blocks is a portion of said block of said non-volatile memory.
5. The apparatus according to claim 3 , wherein: said error handling is enabled in response to detection of a program error in a block of said non-volatile memory; and said portion less than all of one of said R-blocks is an R-page.
6. The apparatus according to claim 3 , wherein: said error handling is enabled in response to detection of a read disturb condition of a block of said non-volatile memory; and said portion less than all of one of said R-blocks is said block of said non-volatile memory affected by said read disturb condition.
7. The apparatus according to claim 1 , wherein said controller is configured to perform said recycling operations on a granularity less than that of an entire one of said R-blocks by performing said recycling operations on said portion less than all of one of said R-blocks.
8. The apparatus according to claim 1 , wherein: said portion less than all of one of said R-blocks comprises a plurality of pages of said non-volatile memory, with said plurality of pages storing at least a portion of one or more valid data items; and said controller is configured to perform said recycling operations on said portion less than all of one of said R-blocks by making a determination whether a particular one of said one or more valid data items spans into or out of the portion less than all of one of said R-blocks and, based upon the determination, selectively performing recycling operations that recycle all of the one or more valid data items.
9. The apparatus according to claim 1 , wherein said portion less than all of one of said R-blocks comprises at least one of a single non-volatile memory block, a portion of said single non-volatile memory block, a single R-page, a single e-page.
10. A method for recycling non-volatile memory (NVM) blocks in an R-block comprising the steps of: reading a NVM page in a selected NVM block; locating data unit within said NVM page; determining whether said data unit within said NVM page spans outside said selected NVM block; determining whether said data unit is valid; if said data unit is valid, also determining which, if any, neighbor NVM pages are affected; if neighbor NVM pages are affected, reading any neighbor NVM pages so all portions of said data unit are available along with any related meta-data associated with the span of said data unit; recycling the valid data unit by re-writing the data unit to another NVM location outside the area being recycled.
11. The method according to claim 10 , wherein said R-block comprises a combination of NVM blocks providing cross-die redundancy for error correction.
12. The method according to claim 10 , wherein said span of said data unit comprises one or both of (i) a data unit starting in one or more previous NVM blocks and (ii) a data unit continuing into one or more subsequent NVM blocks.
13. The method according to claim 12 , wherein meta-data within the data indicates spanning of data units.
14. The method according to claim 13 , further comprising parsing the meta-data to determine whether previous NVM blocks, subsequent NVM blocks, or both previous and subsequent NVM blocks are needed.
15. The method according to claim 10 , further comprising calculating the neighbor NVM pages based on worst case spanning conditions.
16. A method for recycling a single R-page comprising: reading one or more NVM pages in a selected R-page; locating data units within the one or more NVM pages; determining if data units in the one or more NVM pages span outside the selected R-page; determining which data units are valid; for each data unit that is valid, also determining which neighbor NVM pages are affected; if neighbor NVM pages are affected, reading the neighbor NVM pages so all portions of said data units along with any related meta-data associated with the span of data units are available; recycling the valid data units by re-writing the data units to another NVM location.
17. The method according to claim 16 , wherein said R-page comprises a set of NVM pages and each neighbor NVM page as defined by a write order can be on one or both of a different NVM block and a different NVM die.
18. The method according to claim 16 , wherein said R-page contains cross-die or cross-block redundancy.
19. The method according to claim 16 , wherein the NVM pages in the selected R-page are read in sequence or concurrently.
20. The method according to claim 16 , further comprising updating the map information with a new location and size for each data unit being rewritten after the re-write.
Unknown
March 3, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.