System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US-9330033-B2 · May 3, 2016 · US
US9817777B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9817777-B2 |
| Application number | US-201514674721-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 31, 2015 |
| Priority date | Mar 31, 2015 |
| Publication date | Nov 14, 2017 |
| Grant date | Nov 14, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
The invention claimed is: 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 .
with centralised access control · CPC title
on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title
Electrical coupling · CPC title
Serial ATA [SATA] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.