Mixed-granularity higher-level redundancy for NVM provides improved higher-level redundancy operation with better error recovery and/or reduced redundancy information overhead. For example, pages of the NVM that are less reliable, such as relatively more prone to errors, are operated in higher-level redundancy modes having relatively more error protection, at a cost of relatively more redundancy information. Concurrently, blocks of the NVM that are more reliable are operated in higher-level redundancy modes having relatively less error protection, at a cost of relatively less redundancy information. Compared to techniques that operate the entirety of the NVM in the higher-level redundancy modes having relatively less error protection, techniques described herein provide better error recovery. Compared to techniques that operate the entirety of the NVM in the higher-level redundancy modes having relatively more error protection, the techniques described herein provide reduced redundancy information overhead.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: operating in a first higher-level redundancy mode comprising storing M information portions in M respective areas of memory, each of the M respective areas being a same first size; operating in a second higher-level redundancy mode comprising storing N information portions in N respective areas of the memory, each of the N respective areas being a same second size; wherein the M information portions comprise respective M-J data information portions and respective J redundant information portions computed to protect the respective M-J data information portions; wherein the N information portions comprise respective N-K data information portions and respective K redundant information portions computed to protect the respective N-K data information portions; wherein each of the M respective areas and the N respective areas are non-overlapping areas of the memory; wherein the first size is different than the second size; wherein each of the M respective areas is in a respective one of M physical devices of the memory and wherein each of the N respective areas is in a respective one of N physical devices of the memory; wherein the memory comprises a plurality of flash devices; wherein the M respective areas correspond to M respective blocks of a first one or more of the flash devices and the first size corresponds to a block; and wherein the N respective areas correspond to N respective pages of a second one or more of the flash devices and the second size corresponds to a page.
2. The method of claim 1 , wherein at least some of the M physical devices are at least some of the N physical devices.
3. The method of claim 1 , further comprising accessing one or more locations comprised entirely in a particular area that is any one of the M respective areas or any one of the N respective areas, the accessing comprising determining the size of the particular area.
4. The method of claim 1 , further comprising detecting a failure of one of the M respective blocks, and in response, operating at least the failing block in the second higher-level redundancy mode.
5. The method of claim 4 , wherein J is not equal to K.
6. A system comprising: means for managing memory according to respective first and second higher-level redundancy modes; means for storing to the memory, responsive to the means for managing memory; wherein the means for managing memory is enabled to direct the means for storing to store M information portions in M respective areas of memory, each of the M respective areas being a same first size; wherein the means for managing memory is further enabled to direct the means for storing to store N information portions in N respective areas of the memory, each of the N respective areas being a same second size; wherein the M information portions comprise respective M-J data information portions and respective J redundant information portions computed to protect the respective M-J data information portions; wherein the N information portions comprise respective N-K data information portions and respective K redundant information portions computed to protect the respective N-K data information portions; wherein each of the M respective areas and the N respective areas are non-overlapping areas of the memory; wherein the first size is different than the second size; wherein each of the M respective areas is in a respective one of M physical devices of the memory and wherein each of the N respective areas is in a respective one of N physical devices of the memory; wherein the memory comprises a plurality of flash devices; wherein the M respective areas correspond to M respective blocks of a first one or more of the flash devices and the first size corresponds to a block; and wherein the N respective areas correspond to N respective pages of a second one or more of the flash devices and the second size corresponds to a page.
7. The system of claim 6 , wherein at least some of the M physical devices are at least some of the N physical devices.
8. The system of claim 6 , further comprising means for accessing one or more locations comprised entirely in a particular area that is any one of the M respective areas or any one of the N respective areas, the means for accessing enabled to determine the size of the particular area.
9. The system of claim 6 , wherein the means for managing memory is enabled to detect a failure of one of the M respective blocks and to operate at least the failing block in the second higher-level redundancy mode in response to the detecting.
10. The system of claim 9 , wherein J is not equal to K.
11. An apparatus comprising: higher-level redundancy control circuitry enabled to control memory according to respective first and second higher-level redundancy modes; storage circuitry, responsive to the higher-level redundancy control circuitry; wherein the higher-level redundancy control circuitry is enabled to direct the storage circuitry to store M information portions in M respective areas of memory, each of the M respective areas being a same first size; wherein the higher-level redundancy control circuitry is further enabled to direct the storage circuitry to store N information portions in N respective areas of the memory, each of the N respective areas being a same second size; wherein the M information portions comprise respective M-J data information portions and respective J redundant information portions computed to protect the respective M-J data information portions; wherein the N information portions comprise respective N-K data information portions and respective K redundant information portions computed to protect the respective N-K data information portions; wherein each of the M respective areas and the N respective areas are non-overlapping areas of the memory; wherein the first size is different than the second size; wherein each of the M respective areas is in a respective one of M physical devices of the memory and wherein each of the N respective areas is in a respective one of N physical devices of the memory; wherein the memory comprises a plurality of flash devices; wherein the M respective areas correspond to M respective blocks of a first one or more of the flash devices and the first size corresponds to a block; and wherein the N respective areas correspond to N respective pages of a second one or more of the flash devices and the second size corresponds to a page.
12. The apparatus of claim 11 , wherein at least some of the M physical devices are at least some of the N physical devices.
13. The apparatus of claim 11 , further comprising accessing circuitry enabled to access one or more locations comprised entirely in a particular area that is any one of the M respective areas or any one of the N respective areas, the accessing circuitry further enabled to determine the size of the particular area.
14. The apparatus of claim 11 , wherein the higher-level redundancy control circuitry is further enabled to detect a failure of one of the M respective blocks and to operate at least the failing block in the second higher-level redundancy mode in response to the detecting.
15. The apparatus of claim 14 , wherein J is not equal to K.
16. A non-transitory machine-readable medium having a set of instructions stored therein that when executed by a processing element cause the processing element to perform and/or control operations comprising: operating in a first higher-level redundancy mode comprising storing M information portions in M respective areas of memory, each of the M respective areas being a same first size; operating in a second higher-level redundancy mode comprising storing N information portions in N respective areas of the memory, each of the N respective areas being a same second size; wherein the M information portions comprise respective M-J data information portions and respective J redundant information portions computed to protect the respective M-J data information portions; wherein the N information portions comprise respective N-K data information portions and respective K redundant information portions computed to protect the respective N-K data information portions; wherein each of the M respective areas and the N respective areas are non-overlapping areas of the memory; wherein the first size is different than the second size; wherein each of the M respective areas is in a respective one of M physical devices of the memory and wherein each of the N respective areas is in a respective one of N physical devices of the memory; wherein the memory comprises a plurality of flash devices; wherein the M respective areas correspond to M respective blocks of a first one or more of the flash devices and the first size corresponds to a block; and wherein the N respective areas correspond to N respective pages of a second one or more of the flash devices and the second size corresponds to a page.
17. The non-transitory machine readable medium of claim 16 , wherein at least some of the M physical devices are at least some of the N physical devices.
18. The non-transitory machine readable medium of claim 16 , wherein the operations further comprise accessing one or more locations comprised entirely in a particular area that is any one of the M respective areas or any one of the N respective areas, the accessing comprising determining the size of the particular area.
19. The non-transitory machine readable medium of claim 16 , wherein the operations further comprise detecting a failure of one of the M respective blocks, and in response, operating at least the failing block in the second higher-level redundancy mode.
20. The non-transitory machine readable medium of claim 19 , wherein J is not equal to K.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 2, 2012
October 7, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.