SATA physical coding uses a line encoding system known as
8b/10b This scheme serves multiple functions required to sustain a differential serial link. First, the stream contains necessary synchronization information that allows the SATA host/drive to extract the clock. Note the SATA link has no clock line. The 8b/10b encoded sequence embeds periodic edge transitions to allow the receiver to achieve bit-alignment without the use of a separately transmitted reference clock waveform. The sequence also maintains a neutral bitstream, which lets transmit drivers and receiver inputs be AC Coupled. Generally, the actual SATA signaling is half-duplex, meaning that it can only read or write data at any one time, although Full Duplex operation is physically present.
Also, SATA uses some of the special characters defined in 8b/10b. The PHY layer uses the comma character to maintain symbol-alignment. A specific four-symbol sequence, the ALIGN primitive, is used for clock rate-matching between the two devices on the link. Other special symbols communicate flow control information produced and consumed in the higher layers (link and transport).
Separate point-to-point AC-coupledLVDS) links are used for physical transmission between host and drive.
The Physical layer is responsible for detecting the other SATA/device on a cable, and link initialization. During the link-initialization process, the PHY is responsible for locally generating special out-of-band signals by switching the transmitter between electrical-idle and specific 10b-characters in a defined pattern, negotiating a mutually supported signaling rate (1.5, 3.0, or 6.0 Gbit/s), and finally synchronizing to the far-end device’s PHY-layer data stream. During this time, no data is sent from the link-layer.
Once link-initialization has completed, the link-layer takes over data-transmission, with the PHY providing only the 8b/10b conversion before bit transmission.