IP Library Granted Patent US 9,817,777
Granted Patent B2
US 9,817,777 · App. 14/674,721 · Granted Nov 14, 2017

Multi-operating state serial ATA devices and methods of operation therefor

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 9,817,777
App. No.
14/674,721
Granted
Nov 14, 2017
Kind
B2
Abstract

Methods and SATA devices having more than one operating state suitable for providing efficient command and data transfers over a SATA bus. A SATA device is provided for communicating with a host. The host sends commands to the SATA device and the SATA device sends data to the host in response to the commands being received by the SATA device. The SATA device has a queue of commands received from the host. The SATA device is configured to operate in a first operating state wherein the commands are received by the SATA device and the data are not sent to the host, and a second operating state wherein the commands are received by the SATA device and the data are sent to the host wherein data being sent to the host has priority over receiving commands by the SATA device.

Claims (29)

1. A Serial Advanced Technology Attachment (SATA) device for communicating with a host, the host sending commands to the SATA device and the SATA device sending data to the host in response to the commands being received by the SATA device, the SATA device having a queue of commands received from the host, wherein only one of either the commands from the host and the data from the SATA device is sent at a time, the SATA device comprising:

a first operating state wherein the commands are received by the SATA device and the data are not sent to the host; and

a second operating state wherein the commands are received by the SATA device and the data are sent to the host, wherein data being sent by the SATA device to the host has priority over commands being received by the SATA device from the host,

wherein, during the first operating state, the SATA device is configured to determine an occurrence of one or more conditions at which to transition from the first operating state to the second operating state, wherein at least one condition of the one or more conditions is based on if any commands are received by the SATA device.

2. The SATA device of claim 1 , wherein in the second operating state if the SATA device has commands in the queue to which the SATA device is prepared to response by beginning a data phase in which the data are sent to the host then the SATA device starts the data phase, and if the SATA device does not have commands in the queue to which the SATA device is prepared to respond or the SATA device is otherwise busy then the host sends commands to the SATA device.

3. The SATA device of claim 1 , wherein the SATA device is configured to transition from the second operating state to the first operating state if a total number of commands in the queue of the SATA device reaches a minimum threshold.

4. The SATA device of claim 3 , wherein the minimum threshold is a value that is large enough such that the time to complete a number of data transfer cycles equal to the value is greater than a read access latency of the SATA device.

5. The SATA device of claim 1 , wherein the occurrence of the one or more conditions corresponds to when a total number of commands in the queue of the SATA device reaches a maximum threshold.

6. The SATA device of claim 5 , wherein the maximum threshold is a largest number of commands that the SATA device can hold in the queue.

7. The SATA device of claim 1 , wherein the occurrence of the one or more conditions corresponds to when a timeout period is reached wherein the SATA device has not received a command within a predetermined period of time.

8. The SATA device of claim 7 , wherein the occurrence of the one or more conditions further corresponds to when a total number of commands in the queue of the SATA device reaches a maximum seen threshold, the maximum seen threshold being a highest number of commands seen in the queue before the timeout period is reached.

9. The SATA device of claim 1 , wherein the occurrence of the one or more conditions corresponds to when a total number of commands in the queue of the SATA device reaches a maximum threshold, and a timeout period is reached wherein the SATA device has not received a command within a predetermined period of time.

10. The SATA device of claim 9 , wherein the SATA device records whether a transition occurred due to a timeout period being reached, or due to the maximum threshold being reached, if the timeout period was reached, then the maximum threshold is decremented, and if the maximum threshold was reached and the maximum threshold is less than a largest number of commands that the SATA device can hold in the queue, then the maximum threshold is incremented.

11. The SATA device of claim 9 , wherein the occurrence of the one or more conditions further corresponds to when a total number of commands in the queue of the SATA device reaches a maximum seen threshold, the maximum seen threshold being the highest number of commands seen in the queue before the timeout period is reached.

12. A method of managing communication between a host and a SATA device, the method comprising:

sending commands from the host to the SATA device while the SATA device is operating in a first operating state, the commands received by the SATA device being stored in a queue in the SATA device;

transitioning the SATA device from the first operating state to a second operating state;

sending data from the SATA device to the host in response to the commands stored in the queue while the SATA device in the second operating state; and

sending commands from the host to the SATA device if the SATA device does not have commands in the queue to which the SATA device is prepared to respond or the SATA device is otherwise busy while the SATA device is operating in the second operating state; and

in the first operating state, determining an occurrence of one or more conditions at which to transition from the first operating state to the second operating state, wherein at least one condition of the one or more conditions is based on if any commands are received by the SATA device,

wherein data are not sent from the SATA device to the host while the SATA device is operating in the first operating state.

13. The method of claim 12 , further comprising transitioning the SATA device from the second operating state to the first operating state when a total number of commands in the queue of the SATA device reaches a minimum threshold.

14. The method of claim 12 , wherein the occurrence of the one or more conditions corresponds to when a total number of commands in the queue of the SATA device reaches a maximum threshold.

15. The method of claim 12 , wherein the occurrence of the one or more conditions corresponds to when a timeout period is reached wherein the SATA device has not received a command within a predetermined period of time.

16. The method of claim 15 , wherein the occurrence of the one or more conditions further corresponds to when a total number of commands in the queue of the SATA device reaches a maximum seen threshold, the maximum seen threshold being the highest number of commands seen in the queue before the timeout period is reached.

17. The method of claim 12 , wherein the occurrence of the one or more conditions corresponds to when a total number of commands in the queue of the SATA device reaches a maximum threshold, and a timeout period is reached wherein the SATA device has not received a command within a predetermined period of time.

18. The method of claim 17 , further comprising recording whether transitioning the SATA device from the first operating state to the second operating state is performed due to a timeout period being reached or due to the maximum threshold being reached, wherein if the timeout period was reached, then the maximum threshold is decremented, and if the maximum threshold was reached and the maximum threshold is less than a largest number of commands that the SATA device can hold in the queue, then the maximum threshold is incremented.

19. The method of claim 17 , wherein the occurrence of the one or more conditions further corresponds to when a total number of commands in the queue of the SATA device reaches a maximum seen threshold, the maximum seen threshold being the highest number of commands seen in the queue before the timeout period is reached.

20. The SATA device of claim 12 .

Assignments (7)
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 Aug 1, 2017
From: KABUSHIKI KAISHA TOSHIBA
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 043397/0380 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2016
From: OCZ STORAGE SOLUTIONS, INC.
To: TOSHIBA CORPORATION
Reel/Frame 038434/0371 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 035406 FRAME: 0499. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 24, 2015
From: ROSE, PHILIP DAVID
To: OCZ STORAGE SOLUTIONS INC.
Reel/Frame 035498/0428 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2015
From: ROSE, PHILIP DAVID
To: OCZ TECHNOLOGY GROUP, INC.
Reel/Frame 035406/0499 →