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 ?

  • 1
    That is the difference in theoretical vs real world. Specs are achieved in laboratories and not on consumer PC's. – Moab Jun 4 '15 at 4:19
  • 11
    @Moab No, that's not the reason. My answer, and sawdust's, explain the real reason. – MariusMatutiae Jun 4 '15 at 6:08
  • @MariusMatutiae, YES, "throughput would be defined as the averaged actual data-rates you could obtain in actual practice." pretty much what I said. – Moab Jun 4 '15 at 11:47
  • 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 Jun 4 '15 at 11:51

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.

| improve this answer | |
  • 2
    Using "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 Jun 4 '15 at 19:03
  • 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 Jun 4 '15 at 19:21
  • 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)? – nanofarad Jun 4 '15 at 23:33
  • 4
    @hexafraction Yes, if you ask a new question. – MariusMatutiae Jun 5 '15 at 3:27
  • 1
    @DarioP I get the feeling it was left as an exercise to the reader. – Mindwin Jun 5 '15 at 17:09

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.

| improve this answer | |
  • 1
    I 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 Jun 4 '15 at 21:43

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.

| improve this answer | |

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/

| improve this answer | |
  • 1
    This 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 Jun 4 '15 at 13:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.