IP Library Granted Patent US 10,228,883
Granted Patent B2
US 10,228,883 · App. 15/442,344 · Granted Mar 12, 2019

Storage device that postpones completion of read command to begin execution of a non-read command

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,228,883
App. No.
15/442,344
Granted
Mar 12, 2019
Kind
B2
Abstract

A storage device includes a non-volatile storage, and a controller configured to carry out, in parallel, operations in response to a plurality of commands received from a host and queued in a command queue. When the controller receives, from the host, a read command and then a subsequent command before all data read from the non-volatile storage are transmitted to the host in response to the read command, the controller transmits a response to the subsequent command after part of the data read from the non-volatile storage are transmitted to the host and before the all data read from the non-volatile storage are transmitted to the host.

Claims (41)

1. A storage device comprising:

a non-volatile storage;

a data buffer; and

a controller configured to carry out, in parallel, operations in response to a plurality of commands received from a host and queued in a command queue, wherein

when the controller receives, from the host, a read command and then a subsequent command before all data read from the non-volatile storage are transmitted to the host in response to the read command, the controller transmits a response to the subsequent command after part of the data read from the non-volatile storage are transmitted to the host and before the all data read from the non-volatile storage are transmitted to the host, and wherein

the controller is configured to temporarily store the data read from the non-volatile storage in the data buffer in response to the read command, determine the number of data transmissions based on a size of the data stored in the data buffer, and transmit the response to the subsequent command to the host upon completing data transmissions of the determined number, and

the controller postpones the transmission of at least part of the data stored in the data buffer, after determining that a difference between the determined number of data transmissions and a number of data transmissions that have been carried out in response to the read command is greater than a threshold.

2. The storage device according to claim 1 , wherein

when the subsequent command is a non-data command that does not require exchange of data between the storage device and the host, the response includes status information of the storage device.

3. The storage device according to claim 1 , wherein

when the subsequent command is a write command, the response includes a notification that the storage device is ready to receive write data from the host.

4. The storage device according to claim 3 , wherein

when the subsequent command is the write command, the controller further transmits a completion notification of the write command before the all data read from the non-volatile storage are transmitted to the host.

5. The storage device according to claim 3 , wherein

communication between the storage device and the host supports a full duplex communication system in accordance with which data transmission from the host to the storage device and data transmission from the storage device to the host can be carried out in parallel.

6. The storage device according to claim 1 , wherein

when the storage device is connected to a plurality of hosts, the controller transmits the response to the subsequent command after determining that the read command and the subsequent command are received from the same host.

7. The storage device according to claim 1 , wherein

when the subsequent command is a write command and the controller receives, from the host, a second subsequent command before all of write data to be written into the non-volatile storage are received from the host in association with the write command, the controller postpones completion of the write command and transmits a response to the second subsequent command.

8. The storage device according to claim 7 , wherein

when the second subsequent command is a non-data command that does not require exchange of data between the storage device and the host, the response to the second subsequent command includes status information of the storage device.

9. A method of operating a storage device including a non-volatile storage and a data buffer, comprising:

receiving a read command from a host;

in response to the read command, temporarily storing the data read from the non-volatile storage in the data buffer, determining the number of data transmissions based on a size of the data stored in the data buffer, and starting data transmission of data read from the non-volatile storage to the host; and

when a subsequent command is received from the host before all data read from the non-volatile storage are transmitted to the host, transmitting a response to the subsequent command after part of the data read from the non-volatile storage are transmitted to the host and before the all data read from the non-volatile storage are transmitted to the host, wherein

the response to the subsequent command to the host is transmitted upon completing data transmissions of the determined number, and

the transmission of at least part of the data stored in the data buffer is postponed, after determining that a difference between the determined number of data transmissions and a number of data transmissions that have been carried out in response to the read command is greater than a threshold.

10. The method according to claim 9 , wherein

when the subsequent command is a non-data command that does not require exchange of data between the storage device and the host, the response includes status information of the storage device.

11. The method according to claim 9 , wherein

when the subsequent command is a write command, the response includes a notification that the storage device is ready to receive write data from the host.

12. The method according to claim 11 , wherein

when the subsequent command is the write command, a completion notification of the write command is transmitted before the all data read from the non-volatile storage are transmitted to the host.

13. The method according to claim 11 , wherein

communication between the storage device and the host supports a full duplex communication system in accordance with which data transmission from the host to the storage device and data transmission from the storage device to the host can be carried out in parallel.

14. The method according to claim 9 , wherein

when the storage device is connected to a plurality of hosts, the response to the subsequent command is transmitted after determining that that the read command and the subsequent command are received from the same host.

15. The method according to claim 9 , wherein

when the subsequent command is a write command and a second subsequent command is received from the host before all of write data to be written into the non-volatile storage are received from the host in association with the write command, the completion of the write command is postponed and a response to the second subsequent command is transmitted.

16. The method according to claim 15 , wherein

when the second subsequent command is a non-data command that does not require exchange of data between the storage device and the host, the response to the second subsequent command includes status information of the storage device.

Assignments (5)
MERGER Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: K.K. PANGEA
Reel/Frame 055659/0471 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 055669/0001 →
CHANGE OF NAME AND ADDRESS Recorded Jan 22, 2021
From: K.K. PANGEA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 055669/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043194/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2017
From: MYOUGA, NOBUYUKI
To: KABUSHIKI KAISHA TOSHIBA
Reel/Frame 041375/0696 →