US-12619498-B2 - Data storage device and method for transaction recovery using extra timeout
Abstract
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.
Inventors
- Eyal HAMO
- Sagi TARAGAN
- Michael Edry
Assignees
- SanDisk Technologies, Inc.
Dates
- Publication Date
- 20260505
- Application Date
- 20240529
Claims (19)
- 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.
Description
BACKGROUND A host can send read and write requests to a data storage device to read data from and store data in a memory of the data storage device. A specification under which the data storage device and host operate can specify a time period for the data storage device to complete a command sent by the host. If the command is not executed within that time period, the data storage device can be considered to have timed-out. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1A is a block diagram of a data storage device of an embodiment. FIG. 1B is a block diagram illustrating a storage module of an embodiment. FIG. 1C is a block diagram illustrating a hierarchical storage system of an embodiment. FIG. 2A is a block diagram illustrating components of the controller of the data storage device illustrated in FIG. 1A according to an embodiment. FIG. 2B is a block diagram illustrating components of the data storage device illustrated in FIG. 1A according to an embodiment. FIG. 3 is a block diagram of a host and a data storage device of an embodiment. FIG. 4 is a flow diagram illustrating a timeout problem. FIG. 5 is a flow diagram of a method of an embodiment for transaction recovery using extra timeout. DETAILED DESCRIPTION The following embodiments generally relate to a data storage device and method 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. In some embodiments, 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. In some embodiments, 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. In some embodiments, the request specifies an amount of time for the extension. In some embodiments, the host determines an amount of time for the extension. In some embodiments, information about the timeout window is provided to the data storage device by the host. In some embodiments, 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. In some embodiments, the one or more processors, individually or in combination, are further configured to: perform a data-storage-device-initiated reset prior to expiration of the extension of the timeout window. In some embodiments, the command will not be completed prior to expiration of the timeout window due to a high volume of commands. In some embodiments, the command will not be completed prior to expiration of the timeout window due to a lack of available memory. In some embodiments, the data storage device begins processing the command without performing a handshake with the host to confirm that processing of the command should begin. In some embodiments, 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. In some embodiments, the memory comprises a three-dimensional memory. In another embodiment, a method is provided that is performed in a data storage device comprising a memory. The method comprises: after beginning processing a command received a host, determining whether that the command will be completed prior to expiration of a predetermined period of time; in response to determining that the command will not be completed prior to expiration of the predetermined period of time, sending a request to the host to add additional time to the predetermined period of time; and without waiting for a response to the request from the host, continuing to process the command. In some embodiments, the request is sent by raising an exception bit on a communication line with the host. In some embodiments, the request is sent by toggling a communication line with the host. In some embodiments, information about the predetermined period of time is provided to the data storage device by the host. In some embodiments, the command will not be completed prior to expiration of the predetermined period of time due to a high volume of commands. In some embodiments, the command will not be completed prior to expiration of the predetermined period of time due to a lack of available memory. In another embodiment, a data storage device is provided comprising: a memor