Data storage device and method for transaction recovery using extra timeout
A data storage device and method are disclosed for transaction recovery using extra timeout. In one embodiment, a data storage device is provided comprising a memory and one or more processors. The one or more processors, individually or in combination, are configured to: receive a command from a host, wherein the command is associated with a timeout window; begin processing the command; and after beginning processing the command but prior to expiration of the timeout window: determine that the command will not be completed prior to expiration of the timeout window; and send a request to the host for an extension of the timeout window. Other embodiments are provided.
1 . A data storage device comprising:
a memory; and
one or more processors, individually or in combination, configured to:
receive a command from a host, wherein the command is associated with a timeout window;
begin processing the command; and
after beginning processing the command but prior to expiration of the timeout window:
determine that the command will not be completed prior to expiration of the timeout window;
send a request to the host for an extension of the timeout window; and
perform a data-storage-device-initiated reset prior to expiration of the extension of the timeout window.
2 . The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:
receive an acknowledgment from the host that the request has been granted.
3 . The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:
receive a command from the host to reset the data storage device in response to the request not being granted.
4 . The data storage device of claim 1 , wherein the request sent to the host specifies an amount of time for the extension.
5 . The data storage device of claim 1 , wherein the host determines an amount of time for the extension.
6 . The data storage device of claim 1 , wherein information about the timeout window is provided to the data storage device by the host.
7 . The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:
continue processing the command irrespective of whether a response to the request was received by the host.
8 . The data storage device of claim 1 , wherein the command will not be completed prior to expiration of the timeout window due to a high volume of commands or an internal background operation task that overloads the data storage device and prevents the command from being completed prior to expiration of the timeout window.
9 . The data storage device of claim 1 , wherein the command will not be completed prior to expiration of the timeout window due a lack of available memory that leads to the controller freeing more space in the memory by relocating data.
10 . The data storage device of claim 1 , wherein the data storage device begins processing the command without performing a handshake with the host to confirm that processing of the command should begin.
11 . The data storage device of claim 1 , wherein the data storage device begins processing the command without first determining that the command will be able to be completed prior to expiration of the timeout window.
12 . The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.
13 . A method comprising:
performing in a data storage device comprising a memory:
receiving a command from a host, wherein the command is to be completed prior to an expiration of a predetermined period of time;
beginning processing the command without knowing whether the command will be completed prior to the expiration of the predetermined period of time;
after beginning processing the command, determining that the command will not be completed prior to the expiration of the predetermined period of time due to a delay caused by an issue internal to the data storage device that was unknown before beginning processing the command;
in response to determining that the command will not be completed prior to the expiration of the predetermined period of time, sending a request to the host to add additional time to the predetermined period of time, wherein the additional time is to resolve the issue internal to the data storage device that is causing the delay; and
without waiting for a response to the request from the host, continuing to process the command.
14 . The method of claim 13 , wherein the request is sent by raising an exception bit on a communication line with the host.
15 . The method of claim 13 , wherein the request is sent by toggling a communication line with the host.
16 . The method of claim 13 , wherein information about the predetermined period of time is provided to the data storage device by the host.
17 . The method of claim 13 , wherein the command will not be completed prior to expiration of the predetermined period of time due to a high volume of commands or an internal background operation task that overloads the data storage device and prevents the command from being completed prior to expiration of the predetermined period of time.
18 . The method of claim 13 , wherein the command will not be completed prior to expiration of the predetermined period of time due to a lack of available memory that leads to the data storage device freeing more space in the memory by relocating data.
19 . A data storage device comprising:
a memory; and
means for:
receiving a command from a host, wherein the command is to be completed prior to an expiration of a predetermined period of time;
beginning processing the command without knowing whether the command will be completed prior to the expiration of the predetermined period of time;
after beginning processing the command, determining that the command will not be completed prior to the expiration of the predetermined period of time due to a delay caused by an issue internal to the data storage device that was unknown before beginning processing the command;
in response to determining that the command will not be completed prior to the expiration of the predetermined period of time, sending a request to the host to add additional time to the predetermined period of time, wherein the additional time is to resolve the issue internal to the data storage device that is causing the delay; and
without waiting for a response to the request from the host, continuing to process the command.