What is the actual speed of SATA 3?

Does this mean that the bandwidth is 6Gb/s but the actual throughput is 4.8Gb/s ?

Yes it does. It is interesting to understand why.

While data is actually sent at 6Gb/s, it is encoded to counteract two common defects in telecommunications, DC bias and Clock Recovery. This is often accomplished using a specific coding algorithm called 8b/10b encoding. It is not the only encoding algorithm which has been devised to this end, (there is for instance also a Manchester encoding), but it has become the de facto standard for SATA data transfer.

In the (aptly named) 8b/10b coding, eight bits of signal are replaced by 10 bits of (signal+code). This means that, out of the 6Gb the channel sends in a second, only 8/10 =4/5 are signal. 4/5's of 6Gb are 4.8Gb, which in turn equal 600MB. This is what degrades the 6Gb/s channel into a mere (??) 600MB/s channel.

The advantages obtained by compensating for DC bias and allowing for Clock Recovery more than compensate for this slight degradation.


Does this mean that the bandwidth is 6Gb/s but the actual throughput is 4.687Gb/s ?

No, throughput would be defined as the averaged actual data-rates you could obtain in actual practice.

The 600MB per second is still a raw transfer number, but is the usable rate due to encoding on the SATA bus to achieve DC-balance and a minimum amount of signal activity. Every eight bits of data are expanded into 10 bits for transmission on the SATA cable. So the wire speed of 6.00Gbit per second is effectively reduced to 4.8Gbits per second for the actual data.

See the wikipedia article on 8b/10b_encoding for the particulars on that topic. Note that all versions of SATA, i.e. since 1.0, have used 8b/10b encoding.