What is the actual speed of SATA 3?

48

6

Google says it is running at 6Gb/s. The throughput is at 600MB/s. 600MB/s equals 4.8Gb/s.

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

Space Ghost

Posted 2015-06-04T03:58:33.693

Reputation: 993

1That is the difference in theoretical vs real world. Specs are achieved in laboratories and not on consumer PC's. – Moab – 2015-06-04T04:19:21.033

11@Moab No, that's not the reason. My answer, and sawdust's, explain the real reason. – MariusMatutiae – 2015-06-04T06:08:41.837

@MariusMatutiae, YES, "throughput would be defined as the averaged actual data-rates you could obtain in actual practice." pretty much what I said. – Moab – 2015-06-04T11:47:48.830

6@Moab: No, 600MB/s is the theoretical upper limit of what you can achieve, in the same sense in which 6Gb/s is an absolute maximum. Performance degradation due to the use of real hardware and real data are not included in either estimate. – MariusMatutiae – 2015-06-04T11:51:04.310

Answers

81

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.

MariusMatutiae

Posted 2015-06-04T03:58:33.693

Reputation: 41 321

2Using "a mere 600MB/s" is pretty misleading. I was thoroughly confused until I remembered it's 6 giga bits. We all know SATA isn't 6 gigabytes per sec, but 6 giga bits per sec – Cole Johnson – 2015-06-04T19:03:06.923

5@ColeJohnson You are confused: I correctly stated that SATA is 6Gb/s = 6 Gigabits per second, but that, due the presence of the encoding, only 600 MB/s = 600 Mega Bytes per second are used. – MariusMatutiae – 2015-06-04T19:21:15.760

Can you describe the benefits of avoiding a DC bias, as well as clock extraction (as opposed to, say, differential pairs with a separate clock)? – Reinstate Monica - ζ-- – 2015-06-04T23:33:08.250

4@hexafraction Yes, if you ask a new question. – MariusMatutiae – 2015-06-05T03:27:10.203

@ColeJohnson I agree with you, there's no mistake in the answer, but having mixed bits and bytes, mega and giga, requires an on-the-fly conversion to compare the two figures that can easily be confusing. – DarioP – 2015-06-05T10:28:15.413

1@DarioP I get the feeling it was left as an exercise to the reader. – Mindwin – 2015-06-05T17:09:33.843

@MariusMatutiae I got a new SATA HDD (ST1000DM003) and using `hdparm -tT /dev/sda' it show throughput as 200 MBps. Is it that the hard disk is lowering the bandwidth? – Ethan Collins – 2015-10-31T11:18:29.263

@EthanCollins See here, https://wiki.archlinux.org/index.php/Solid_State_Drives#Tips_for_Maximizing_SSD_Performance

– MariusMatutiae – 2015-10-31T11:36:51.747

Since the throughput is 4.8Gb/s then shouldn't the bandwidth be called 6GT/s (where T refers to transfers)? Isn't that more accurate? Or am I mistaken? – Everyone – 2017-09-28T22:19:29.040

@Everyone No: T is not used for transfer, but for Tera, which means a thousand billions. Besides, GB/s is a unit of information flow speed, and means: 1 Giga (= one billion) Bytes per second. There is no shorthand for transfer. – MariusMatutiae – 2017-09-30T16:05:55.247

14

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.

sawdust

Posted 2015-06-04T03:58:33.693

Reputation: 14 697

1I would make the distinction as something like signal rate = 6Gbit/s, data rate = 4.8Gbit/s, throughput = whatever you get out of a drive in the real world. – hobbs – 2015-06-04T21:43:19.797

1

Something similar happens with networking. Due to protocol overhead/10bits physical for 8 bits of pure data, it turns out a wash of 1:10 ratio rather than 1:8 when it comes to translating G or Mbps to real G or MBps.

So Sata 3 is 6Gbps? Expect maximum 600MB/s. Ethernet at 100Mbps? 10MB/s. And so on.

SirDaShadow

Posted 2015-06-04T03:58:33.693

Reputation: 11

0

Be careful when reading "Bps" (BYTES per second) vs. "bps" (bits per second). Bps is generally shown 1/8th the value of bps.

After this it comes down to whether people are using decimal M and G versus binary M and G for megabytes and gigabytes.

In regular decimal math 1 MB/s would be 1,000,000 Bytes/second, but if the author of the spec is using binary/computer math, that would change to be 1,048,576 Bytes/second.

For more details on the different SATA specs, go directly to the owners of the specification at http://www.sata-io.org/

Rob Gagnon

Posted 2015-06-04T03:58:33.693

Reputation: 29

1This explains why the OP's original question stated that 600MB/s equals 4.687Gb/s, when in fact it equals 4.8 Gb/s. The OP converted from mebibytes per second to gibibits per second, instead of from megabytes per second to gigabits per second. Doesn't really answer the question though. – Ajedi32 – 2015-06-04T13:38:36.080