This message is from the T13 list server.

Hale Landis wrote:
This message is from the T13 list server.


Jeff Garzik wrote:

This message is from the T13 list server.
More generally, there is an inherent conflict between ATA queueing and queueing that's already defined by the command set. If we are to support ATAPI NCQ, I would think that would involve some amount of coupling inside the device firmware between the ATA and SCSI command responses, and behaviors.

meetings? If so, sorry.) What is the "inherent conflict" - a PACKET command using NCQ is no different than a R/W FPDMA command - The command and command parameters including the tag number are sent to the device, the device transfers data using SATA NCQ data transfer protocol. And of course this would require new firmware in SATAPI devices. What additional "coupling" is required beyond what is there today in an ATAPI device?

If the underlying command set doesn't handle queuing, then you don't get a whole lot of useful queueing. In the standard command set (sidebar: why is ATA/ATAPI so vague about calling it SCSI?), SCSI, there is some notion of task [queue] management.


Ultimately, SATA is just a protocol for transporting anonymous data packets. There, no state diagrams needed...


So on a SATA interface command packets, status packets and data packets can be sent in any order at any time by host or device? If that is so

Pretty much, yes. Example: one could program the device, and the host controller, to converse 100% in app-specific frames (FIS's).

In practice, that doesn't happen, but FIS-based host controllers support support the concept of "unknown FIS", which means the device sent the host something totally weird... or app-specific.

Certainly there are specific state sequences considered to be standard SATA, for the purpose of ATA command protocol(s) execution, but the underlying technology is nothing but a packet-shuffling point-to-point network link.

        Jeff


Reply via email to