1460951185-3899447e-f1cd-4674-bf19-087e22e62d71

1. A method for generating dynamic super blocks for a non-volatile memory, the non-volatile memory comprising a plurality of physical blocks and each physical block comprising a plurality of physical pages, the method comprising:
determining that at least one physical page of one of the physical blocks is not suitable for storing data in an original mode, but is suitable for storing data in a mode that has a lower capacity than the original mode, wherein the at least one determined page is mapped to a first block that requires its physical pages to store data in the original mode;
remapping the at least one determined page from the first block to a dynamic super block, wherein the dynamic super block is a block that requires its physical pages to store data in the mode that has a lower capacity than the original mode, and wherein a number of physical pages mapped to the dynamic super block increases as additional determined pages are remapped to the dynamic super block; and
accessing the at least one physical page mapped to the dynamic super block in the mode that has a lower capacity than the original mode.
2. The method of claim 1, wherein the mode is a lower page only mode.
3. The method of claim 2, wherein the accessing the plurality of memory locations of the dynamic super block comprises accessing lower pages of each block of a plurality of blocks of the dynamic super block in a virtual single level cell (\u201cSLC\u201d) mode.
4. The method of claim 1, wherein the determining comprises detecting at least one access failure in a first subset of word lines of the physical block.
5. The method of claim 4, wherein the selecting comprises further comprising:
selecting a second subset of word lines of the physical block;
performing at least one test on the second subset of word lines;
determining that the second subset of word lines passes the at least one test; and
selecting the second subset of word lines as the subset of memory locations determined page.
6. The method of claim 1, wherein the determining comprises:
determining that a memory location of the block has a raw bit error rate that is below a pre-determined threshold;
performing at least one test on the memory location;
selecting the memory location as the at least on determined page if the memory location passes the at least one test.
7. The method of claim 1, wherein the accessing the plurality of memory locations of the dynamic super block comprises programming data into the plurality of memory locations in a SLC mode.
8. A memory interface for accessing a non-volatile memory, the non-volatile memory comprising a plurality of dies, each die comprising a plurality of physical blocks, the memory interface comprising:
a bus controller operative to communicate with the non-volatile memory; and control circuitry operative to:
determine that a block of a die of the plurality of dies is not suitable for storing data in a multi-level cell (\u201cMLC\u201d) mode, wherein the determined block is mapped to a first block that requires its data to be stored in the MLC mode; and
remap the determined block from the first block to a dynamic single level cell (\u201cSLC\u201d) super block, wherein the dynamic SLC super block is a block that requires its data to be stored in a SLC mode that has a lower capacity than the MLC mode, and wherein a number of physical blocks mapped to the dynamic SLC super block increases as additional determined blocks are remapped to the dynamic SLC super block.
9. The memory interface of claim 8, wherein the control circuitry is operative to direct the bus controller to access memory locations of the dynamic SLC super block in a virtual SLC mode.
10. The memory interface of claim 9, wherein the data stored in the determined block is stored in lower pages of the block.
11. The memory interface of claim 8, wherein the control circuitry is operative to direct the bus controller to program data into memory locations of the dynamic SLC super block in a SLC mode.
12. The memory interface of claim 8, wherein the control circuitry is operative to:
detect at least one access failure in a portion of the dynamic SLC super block; and
retire at least a portion of the dynamic SLC super block.
13. The memory interface of claim 12, wherein the control circuitry is operative to retire the dynamic SLC super block.
14. The memory interface of claim 12, wherein the control circuitry is operative to retire only the portion of the dynamic SLC super block that has the at least one access failure.
15. A method for managing grown bad blocks of a non-volatile memory, the method comprising:
selecting at least a subset of memory locations of multiple grown bad blocks of the non-volatile memory to form a dynamic super block;
detecting that the dynamic super block needs to be erased;
preparing the dynamic super block for reprogramming; and
reconstructing a new dynamic super block from the dynamic super block by progressively increasing the size of the new dynamic super block.
16. The method of claim 15, wherein each grown bad block of the multiple grown bad blocks is on a different die of the non-volatile memory.
17. The method of claim 15, wherein the selecting further comprises programming only recoverable data in the dynamic super block.
18. The method of claim 17, wherein the recoverable data comprises at least one of user data, index page, swap page files, and translation layer metadata.
19. The method of claim 17, wherein the selecting further comprises aliasing the recoverable data at the end of the dynamic super block.
20. The method of claim 15, wherein the selecting further comprises applying error correction coding (\u201cECC\u201d) engines that have higher strengths to data stored in the dynamic super block.
21. The method of claim 15, wherein the selecting further comprises using a higher number of parity pages in the dynamic super block.
22. The method of claim 15, wherein the reconstructing further comprises:
determining first memory locations of the dynamic super block with reliability measurements that exceed a first pre-determined threshold; and
selecting the first memory locations as the new dynamic super block.
23. The method of claim 22, further comprising:
determining that additional spare memory locations are needed;
determining second memory locations of the dynamic super block with reliability measurements that exceed a second pre-determined threshold, wherein the second pre-determined threshold is lower than the first pre-determined threshold; and
adding the second memory locations to the new dynamic super block.
24. The method of claim 15, wherein the reconstructing further comprises selecting memory locations based on physical positions of the memory locations in the non-volatile memory.
25. The method of claim 24, wherein the memory locations are selected based on a geometric relationship between the memory locations.

The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.

1. A method for providing voice feedback to a user of an electronic device, comprising:
displaying a plurality of elements;
identifying at least two of the plurality of elements for which to provide voice feedback;
determining tiers associated with the display of each of the identified at least two plurality of elements; and
providing voice feedback for the identified at least two plurality of elements in an order of the determined tiers.
2. The method of claim 1, further comprising:
retrieving audio files associated with each of the identified at least two plurality of elements; and
playing back the retrieved audio files.
3. The method of claim 2, wherein playing back further comprises playing back in the order of the determined tiers.
4. The method of claim 1, further comprising:
generating an initial queue comprising the identified at least two plurality of elements in response to identifying and determining; and
ordering the identified elements in the initial queue based on the determined tiers.
5. The method of claim 4, wherein providing further comprises providing voice feedback for the elements of the initial queue in the order of the elements in the initial queue.
6. The method of claim 4, further comprising:
changing at least one of the displayed plurality of elements; and
updating at least a portion of the initial queue in response to changing.
7. The method of claim 6, further comprising:
re-identifying at least two of the plurality of elements for which to provide voice feedback in response to changing;
re-determining tiers associated with the display of each of the re-identified at least two plurality of elements; and
generating a revised queue comprising the re-identified at least two of the plurality of elements.
8. The method of claim 7, further comprising:
detecting the identified element for which voice feedback was provided during changing;
determining that the detected element has the same position and tier in the initial queue and the revised queue; and
providing voice feedback from the revised queue starting with the detected element.
9. The method of claim 8, further comprising:
completing the voice feedback for the detected element.
10. The method of claim 7, further comprising:
detecting the identified element for which voice feedback was provided during changing;
comparing the initial queue and the revised queue to identify common portions of the queues;
determining that the detected element is not in a portion of the revised queue that is in common with the initial queue; and
stopping providing voice feedback for the detected element.
11. The method of claim 10, further comprising:
identifying the first element of the revised queue following the common portions of the queues; and
providing voice feedback from the revised queue starting with the identified first element.
12. An electronic device operative to provide audio feedback for displayed content, comprising a processor, a display, and an audio output, the processor operative to:
direct the display to display a plurality of elements in views, wherein speakable properties are associated with at least two of the plurality of elements;
determine tiers associated with the views of each of the at least two of the plurality of elements from the associated speakable properties;
generate a queue comprising the at least two of the plurality of elements, wherein the order of the queue elements is set by the determined tiers; and
direct the audio output to sequentially speak each queue element in the order of the queue.
13. The electronic device of claim 12, wherein the processor is further operative to:
direct the display to display at least two text strings; and
direct the audio output to provide voice feedback for the at least two text strings.
14. The electronic device of claim 12, wherein the processor is further operative to:
detect a transaction; and
generate a revised queue comprising modified elements with which a speakable property is associated.
15. The electronic device of claim 14, wherein the processor is further operative to:
direct the audio output to provide audio associated with each element of the revised queue in the order of the revised queue.
16. The electronic device of claim 14, wherein the processor is further operative to:
determine that a displayed element of the plurality of elements with which a speakable property is associated has changed; and
detect a transaction.
17. The electronic device of claim 16, wherein the processor is further operative to:
detect a user input changing a displayed element of the plurality of elements with which a speakable property is associated; and
detect a transaction.
18. The electronic device of claim 17, wherein the input comprises at least one of a user selection of a displayed option and a user instruction to move a highlight region.
19. A method for speaking text of elements displayed by an electronic device, comprising:
defining a plurality of elements with which speakable properties are associated;
displaying the plurality of elements in a plurality of views, wherein each view is associated with a speakable order;
generating a queue comprising the plurality of elements, wherein the order of the plurality of elements in the queue is set from the speakable order;
pausing for a first timeout;
identifying audio files associated with each of the plurality of elements of the queue, wherein the audio files comprise text to speak for each element;
sequentially playing back the identified audio files in the order of the queue; and
pausing for a second timeout.
20. The method of claim 19, wherein identifying further comprises retrieving audio files associated with each of the plurality of elements from a hash of the text to speak.
21. The method of claim 19, wherein the audio files are received from a host device.
22. The method of claim 21, wherein the host device generates the audio files using a text to speech engine.
23. The method of claim 22, further comprising:
providing the text to speak for each of the plurality of elements to the host device; and
receiving audio files generated using a text to speech engine applied to the provided text to speak for each of the plurality of elements.
24. The method of claim 19, further comprising:
changing at least one of the displayed plurality of elements; and
generating a revised queue comprising the changed displayed plurality of elements ordered from the speakable orders associated with the displayed views.
25. A computer readable media for providing voice feedback to a user of an electronic device, the computer readable media comprising computer program logic recorded thereon for:
displaying a plurality of elements;
identifying at least two of the plurality of elements for which to provide voice feedback;
determining tiers associated with the display of each of the identified at least two plurality of elements; and
providing voice feedback for the identified at least two plurality of elements in an order of the determined tiers.