Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPARATUS AND METHOD FOR GENERATING DESCRIPTORS TO REACCESS A NON-VOLATILE SEMICONDUCTOR MEMORY OF A STORAGE DRIVE DUE TO AN ERROR
Document Type and Number:
WIPO Patent Application WO/2014/144043
Kind Code:
A4
Abstract:
A storage drive including a first module and a second module. The first module is configured to, based on an instruction signal of a first descriptor, transfer a block of data to or from a non-volatile semiconductor memory in the storage drive. The second module is configured to: monitor a status of the transfer of the block of data; determine whether an error exists with respect to the transfer of the block of data; and independent of communication with a host device, initiate generation of a second descriptor if the error exists. The second module is configured to, according to the second descriptor, perform a reaccess event including reaccessing the non-volatile semiconductor memory to again transfer the block of data to or from the non-volatile semiconductor memory.

Inventors:
XU WEI (US)
SUN FEI (US)
Application Number:
PCT/US2014/028286
Publication Date:
November 20, 2014
Filing Date:
March 14, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MARVELL WORLD TRADE LTD (BB)
XU WEI (US)
SUN FEI (US)
International Classes:
G06F3/06; G06F11/10; G06F11/14; G06F13/16
Attorney, Agent or Firm:
WIGGINS, Michael D. et al. (Dickey & Pierce P.L.C.,P.O. Box 82, Bloomfield Hills Michigan, US)
Download PDF:
Claims:
57

AMENDED CLAIMS

received by the International Bureau on 02 October 2014 (02.10.2014)

What is claimed is:

1. A storage drive comprising:

a first module configured to, based on an instruction signal of a first descriptor, transfer a block of data to or from a non-volatile semiconductor memory in the storage drive; and

a second module configured to

monitor a status of the transfer of the block of data,

determine whether an error exists with respect to the transfer of the block of data, and

independent of communication with a host device, initiate generation of a second descriptor if the error exists,

wherein each of the first descriptor and the second descriptor includes a respective set of instructions,

wherein each of the sets of instructions comprises addresses of the block of data and indicates (i) an amount of data to be transferred during a corresponding data transfer event, or (ii) whether the corresponding data transfer event is a read event or a program event, and

wherein the second module is configured to, according to the second descriptor, perform a reaccess event including reaccessing the non-volatile semiconductor memory to again transfer the block of data to or from the non-volatile semiconductor memory.

2. The storage drive of claim 1, further comprising:

a third module configured to control transfer of the block of data between the host device and the storage drive,

wherein the first module is configured to transfer the block of data between the third module and the non-volatile semiconductor memory;

a fourth module configured to generate the first descriptor to transfer the block of data between the first module and the non-volatile semiconductor memory; and 58 a fifth module configured to generate the instruction signal based on the first descriptor,

wherein the first module, when performing the reaccess event, reaccesses the non-volatile semiconductor memory to again transfer the block of data between the third module and the non-volatile semiconductor memory.

3. The storage drive of claim 1, further comprising:

a third module configured to, according to the first descriptor, prior to the transfer of the block of data, and prior to the generation of the second descriptor, generate a third descriptor to transfer the block of data between the first module and the non-volatile semiconductor memory; and

a fourth module configured to (i) generate the instruction signal in response to the third descriptor, and (ii) generate a descriptor type bit indicating a type of the third descriptor,

wherein the first module is configured to, based on the descriptor type bit, transfer status information to the second module, wherein the status information indicates a status of the transfer of the block of data, and

wherein the second module is configured to (i) based on execution of the third descriptor by the first module and the status information, determine whether the error exists with respect to the transfer of the block of data, and (ii) initiate the generation of the second descriptor if the error exists.

4. The storage drive of claim 3, wherein the third module is configured to:

access a template;

update fields in the template based on a plurality of parameters in the first descriptor; and

generate the second descriptor or the third descriptor according to the template.

The storage drive of claim 4, where

the template is a first template; an< the third module is configured to access the first template to generate the second descriptor and access a second template to generate the third descriptor.

6. The storage drive of claim 4, further comprising a fifth module sets values of the plurality of parameters based on status information for the block of data. 7. The storage drive of claim 3, wherein:

the second module is configured to trigger the third module to generate a plurality of reaccess descriptors corresponding respectively to a plurality of reaccess events for the block of data;

the plurality of reaccess descriptors includes the second descriptor;

the third module is configured to

access a template for each of the plurality of reaccess events, wherein each of the templates comprises a plurality of fields,

update the plurality of fields in the templates based on the first descriptor; and

generate the plurality of reaccess descriptors according to the templates.

8. The storage drive of claim 1, further comprising:

a third module configured to process data transferred between the first module and the non-volatile semiconductor memory and generate an indication signal if the error exists,

wherein the second module is configured to, based on the indication signal, generate a trigger signal to trigger the generation of the second descriptor; and

a fourth module configured to generate the second descriptor based on the trigger signal.

9. The storage drive of claim 1, further comprising a third module is configured to set a maximum number of reaccess events for the block of data, wherein: the second module is configured to track a number of reaccess events performed for the block of data, trigger generation of a plurality of reaccess descriptors corresponding respectively to the reaccess events performed for the block of data, and cease generation of reaccess descriptors if the number of reaccess events is equal to or greater than the maximum number of reaccess events; and

one of the plurality of reaccess descriptors generated for the reaccess events is the second descriptor.

10. The storage drive of claim 9, wherein the second module is configured to report: a pass for the block of data if the error no longer exists as a result of one of the reaccess events performed for the block of data clearing the error; and

a failure for the block of data if the number of reaccess events performed for the block of data is equal to or greater than the maximum number of reaccess events.

11. The storage drive of claim 1, further comprising:

a third module,

wherein the block of data is a first block of data;

a fourth module configured to control transfer of a plurality of blocks of data between the host device and the storage drive,

wherein the plurality of blocks of data include the first block of data, and wherein the first module is configured to transfer the plurality of blocks of data to and from the non-volatile semiconductor memory in the storage drive; and

a fifth module configured to generate the first descriptor to transfer the plurality of blocks of data between the second module and the non-volatile semiconductor memory,

wherein the third module is configured to, according to the first descriptor, generate a plurality of third descriptors, wherein each of the plurality of third descriptors corresponds to a respective one of the plurality of blocks of data, and

wherein the second module is configured to, based on the third descriptors, transfer the plurality of blocks of data between the second module and the non-volatile semiconductor memory.

12. A method comprising:

based on an instruction signal of a first descriptor, transferring a block of data to or from a non-volatile semiconductor memory in a storage drive;

monitoring a status of the transfer of the block of data;

determining whether an error exists with respect to the transfer of the block of data;

independent of communication with a host device, initiating generation of a second descriptor if the error exists,

wherein each of the first descriptor and the second descriptor includes a respective set of instructions, and

wherein each of the sets of instructions comprises addresses of the block of data and indicates (i) an amount of data to be transferred during a corresponding data transfer event, or (ii) whether the corresponding data transfer event is a read event or a program event; and

according to the second descriptor, performing a reaccess event including reaccessing the non-volatile semiconductor memory to again transfer the block of data to or from the non-volatile semiconductor memory.

13. The method of claim 12, further comprising:

controlling transfer of the block of data between the host device and the storage drive;

generating the first descriptor to transfer the block of data to or from the nonvolatile semiconductor memory; and

generating the instruction signal based on the first descriptor.

14. The method of claim 12, further comprising according to the first descriptor, prior to the transfer of the block of data, and prior to generation of the second descriptor, generating a third descriptor to transfer the block of data to or from the non-volatile semiconductor memory, wherein:

the instruction signal is generated in response to the third descriptor;

generate a descriptor type bit indicating a type of the third descriptor; 62 based on the descriptor type bit, generate status information indicating a status of the transfer of the block of data; and

based on execution of the third descriptor and the status information,

the determination of whether the error exists with respect to the transfer of the block of data is performed, and

the generation of the second descriptor is initiated if the error exists.

15. The method of claim 14, further comprising:

accessing a template;

updating fields in the template based on a plurality of parameters in the first descriptor; and

generating the second descriptor or the third descriptor according to the template.

16. The method of claim 15, wherein:

the template is a first template;

the first template is accessed to generate the second descriptor; and

a second template is accessed to generate the third descriptor.

17. The method of claim 15, further comprising setting values of the plurality of parameters based on status information for the block of data.

18. The method of claim 14, further comprising:

triggering generation of a plurality of reaccess descriptors corresponding respectively to a plurality of reaccess events for the block of data, wherein the plurality of reaccess descriptors includes the second descriptor;

accessing a template for each of the plurality of reaccess events, wherein each of the templates comprises a plurality of fields;

updating the plurality of fields in the templates based on the first descriptor; and

generating the plurality of reaccess descriptors according to the templates. 63

19. The method of claim 12, further comprising:

processing data transferred to or from the non-volatile semiconductor memory; generating an indication signal if the error exists;

based on the indication signal, generating a trigger signal to trigger the generation of the second descriptor; and

generating the second descriptor based on the trigger signal.

20. The method of claim 12, further comprising:

setting a maximum number of reaccess events for the block of data;

tracking a number of reaccess events performed for the block of data;

triggering generation of a plurality of reaccess descriptors corresponding respectively to the reaccess events performed for the block of data, wherein one of the plurality of reaccess descriptors generated for the reaccess events is the second descriptor; and

ceasing generation of reaccess descriptors if the number of reaccess events is equal to or greater than the maximum number of reaccess events.

21. The method of claim 20, further comprising reporting:

a pass for the block of data if the error no longer exists as a result of one of the reaccess events performed for the block of data clearing the error; and

a failure for the block of data if the number of reaccess events performed for the block of data is equal to or greater than the maximum number of reaccess events.

22. The method of claim 12, wherein:

the block of data is a first block of data; and

the method further comprises

transferring a plurality of blocks of data between the host device and the storage drive, wherein the plurality of blocks of data include the first block of data, transferring the plurality of blocks of data to or from the non-volatile semiconductor memory in the storage drive, 64

generating the first descriptor to transfer the plurality of blocks of data to or from the non-volatile semiconductor memory,

according to the first descriptor, generating a plurality of third descriptors, wherein each of the plura lity of third descriptors corresponds to a respective one of the plura lity of blocks of data, a nd

based on the third descriptors, transferring the plurality of blocks of data to or from the non-volatile semiconductor memory.