Options

Question about Hard Drive Speeds?

Robbo777Robbo777 Member Posts: 331 ■■■□□□□□□□
]Hi, i have a question about SATA and SAS interfaces, i'm aware that they're obviously different cables and connectors that can transfer different amounts of data at different speeds but with the example below from Wikipedia, I have a question regarding one or two queries.

"Second-generation SATA interfaces run with a native transfer rate of 3.0 Gbit/s that, when accounted for the 8b/10b encoding scheme, equals to the maximum uncoded transfer rate of 2.4 Gbit/s (300 MB/s). " <<<<<<quote from Wiki

SATA 2 is advertised to support transfer rates of up to 3Gbs but obviously at the moment no current device can reach that because spinning disks just cant reach those levels, i'm curious above does it indicate that while it is advertised at 3Gb, it has only been able to reach around 300MB transfer rates? (I dont know what the 2.4Gb means though if someone could shine some light on that?)

Cheers

Comments

  • Options
    fmitawapsfmitawaps Banned Posts: 261
    I'd like to know who decided that hard drive speeds should be 4200, 5400, 5900, and 7200 rpm. Then the 10000 and 15000 rpm enterprise drives.
  • Options
    stryder144stryder144 Member Posts: 1,684 ■■■■■■■■□□
    8b/10b encoding has overhead. So, while the bus can move 3Gbits/s, the encoding takes up approximately 600Mbits/s. 2.4Gbits/s divided by 8 bits to a byte, equals 300MB/s.
    The easiest thing to be in the world is you. The most difficult thing to be is what other people want you to be. Don't let them put you in that position. ~ Leo Buscaglia

    Connect With Me || My Blog Site || Follow Me
  • Options
    Robbo777Robbo777 Member Posts: 331 ■■■□□□□□□□
    Ah right, i haven't came across that anywhere to be honest. Even when reading up on HDD transfer rates either, what exactly is it there for? Whats the point in even advertising the transfer rate at 3Gb then? Are they getting by on technicalities there?
  • Options
    OctalDumpOctalDump Member Posts: 1,722
    Robbo777 wrote: »
    Ah right, i haven't came across that anywhere to be honest. Even when reading up on HDD transfer rates either, what exactly is it there for? Whats the point in even advertising the transfer rate at 3Gb then? Are they getting by on technicalities there?

    Hard drives have cache, and reads/writes to cache can occur at these speeds. Typical performance is quite uneven so ~80Mbyte/s might be an average speed but there will be times where it is much higher (reading from cache), a bit higher (sequential reads), a bit lower, or a lot lower. Also, you can use SSDs on SATA busses and they can easily saturate a 3Gbit link, and even a 6gbit link.
    2017 Goals - Something Cisco, Something Linux, Agile PM
  • Options
    Robbo777Robbo777 Member Posts: 331 ■■■□□□□□□□
    I heard that SSD's could only reach around 600MB at the highest, is that incorrect then?
  • Options
    OctalDumpOctalDump Member Posts: 1,722
    Robbo777 wrote: »
    I heard that SSD's could only reach around 600MB at the highest, is that incorrect then?

    Yeah, 600Mbyte/s would be the speed of a SATA 3.0 (6 Gbit per second) link. I am guessing that is what was meant. Faster drives are using different interconnect like PCIe, such as the Fusion-Io drives (now part of SanDisk) which offer speeds in the 2-3 GByte/s range, or 12Gbps SAS.
    2017 Goals - Something Cisco, Something Linux, Agile PM
  • Options
    Robbo777Robbo777 Member Posts: 331 ■■■□□□□□□□
    stryder144 wrote: »
    8b/10b encoding has overhead. So, while the bus can move 3Gbits/s, the encoding takes up approximately 600Mbits/s. 2.4Gbits/s divided by 8 bits to a byte, equals 300MB/s.
    OctalDump wrote: »
    Yeah, 600Mbyte/s would be the speed of a SATA 3.0 (6 Gbit per second) link. I am guessing that is what was meant. Faster drives are using different interconnect like PCIe, such as the Fusion-Io drives (now part of SanDisk) which offer speeds in the 2-3 GByte/s range, or 12Gbps SAS.



    I have never come across an SSD that uses PCI express and connects directly into the motherboard. What sort of speeds are we talking with those then? And does that method not use the same equations as mentioned with SATA 2 cables?

    What are the actual equations for figuring out how fast for example, a SAS HDD will go then? If a SAS cable could have a potential transfer rate of 6Gb, how do you work out what the actual transfer rate will all be???

    Its even more confusing when they advertise the cables at having say, 3Gb transfer rates but HDD will never be able to reach that! Whats the point in saying it? They may as well just advertise the actual transfer rates instead.

    Also, why are we dividing "2.4Gbits/s by 8 bits to a byte, equals 300MB/s.", i'm sorry i'm just not as comfortable with how the formulas work because i have never really seen anything that deep before with regarding hard drive cables etc...
  • Options
    Mike7Mike7 Member Posts: 1,107 ■■■■□□□□□□
    Robbo777 wrote: »
    I have never come across an SSD that uses PCI express and connects directly into the motherboard.
    See PCI Express Archives | The SSD Review
  • Options
    OctalDumpOctalDump Member Posts: 1,722
    Robbo777 wrote: »
    I have never come across an SSD that uses PCI express and connects directly into the motherboard. What sort of speeds are we talking with those then? And does that method not use the same equations as mentioned with SATA 2 cables?

    If you are using 6Gbit/s SATA, then that is the fastest you can transfer data, so it means for the manufacturers that there isn't much point building drives that can achieve much higher sustained rates, since the bottleneck is in the SATA.

    PCIe has much higher bandwidths available. PCIe 1.0 does about 2.5Gbit/s per lane, PCIe 2.0 is twice that. PCIe (v 1.x and 2.0) also uses an 8bit/10bit encoding system, so that the bandwidth for one lane of PCIe 1.0 is about 250Mbyte/s, 4 lanes is about 1Gigabyte/s, and 4 lanes of PCIe 2.0 is 2Gigabytes/s - much, much faster than the 600Mbyte/s of SATA 3.0.

    This increase bandwidth means that the maximum speed of storage can be much higher, and it becomes worthwhile to invest in making the rest of the storage system fast enough to take advantage of that higher bandwidth. This could be by using more RAM, faster controllers, striping, faster types of flash memory and probably other things.
    What are the actual equations for figuring out how fast for example, a SAS HDD will go then? If a SAS cable could have a potential transfer rate of 6Gb, how do you work out what the actual transfer rate will all be???

    For SATA it's simply a matter of dividing the Gbit/s to arrive at the Mbyte/s. The actual speeds you see depend on all the components, and will be limited by the slowest link in the chain. Sometimes that is the SATA link itself, usually it's other factors. These vary a lot between drives, systems, usage.
    Its even more confusing when they advertise the cables at having say, 3Gb transfer rates but HDD will never be able to reach that! Whats the point in saying it? They may as well just advertise the actual transfer rates instead.

    Because those speeds are a limitation of the SATA spec itself. The speeds a hard drive might reach are limitations of that hard drive. The hard drive can be built to comply with SATA 2.0 (or whatever) which will give it a theoretical transfer peak rate of 300Mbyte/s. It might only reach that peak when it is reading from the 32Mbyte cache on the drive controller board. Or maybe its peak is lower than 300Mbyte, but higher than the 150Mbyte of SATA 1.5Gbit/s.

    The problem is that it is virtually impossible for a hard drive manufacturer to say that their drive will give an average speed of x byte/s. There are far too many variables at work. But it is easier for them to give a peak speed, and very simple for them to quote the interface speed.

    Also, why are we dividing "2.4Gbits/s by 8 bits to a byte, equals 300MB/s.", i'm sorry i'm just not as comfortable with how the formulas work because i have never really seen anything that deep before with regarding hard drive cables etc...

    Serial transfers use various encodings to support error detection/correction or for control signalling. In the case of SATA each byte is encoded using 10 bits, which makes the maths easy - 3Gbit/s SATA means 300Mbyte transfers. So although storage throughput was traditionally given as Byte/s, serial is traditionally given as Bits per second. So, yeah, it's just one of those things.
    2017 Goals - Something Cisco, Something Linux, Agile PM
  • Options
    fmitawapsfmitawaps Banned Posts: 261
    Another annoying thing about hard drives is how manufacturers LIE and label a drive as 1 TB and you only get 931 GB. Yes, that technically is correct under the base 2 numbering system, and you are getting 1 trillion bits of space on the drive, but the drive should have 1000 GB, to be 1 TB under the base 10 numbering system that normal people use.

    It bothers me, anyhow.
  • Options
    Robbo777Robbo777 Member Posts: 331 ■■■□□□□□□□
    OctalDump wrote: »
    Serial transfers use various encodings to support error detection/correction or for control signalling. In the case of SATA each byte is encoded using 10 bits, which makes the maths easy - 3Gbit/s SATA means 300Mbyte transfers. So although storage throughput was traditionally given as Byte/s, serial is traditionally given as Bits per second. So, yeah, it's just one of those things.

    Can you explain it with an example? Because although its very useful information for when i know about it a bit more, at the moment i'm just not seeing how that all adds up to 300MB still.
    Maybe an example of the 3Gb Sata connection you touched on but a more in depth explanation of it with the formula for working it out?

    Thanks again.
  • Options
    OctalDumpOctalDump Member Posts: 1,722
    Robbo777 wrote: »
    Can you explain it with an example? Because although its very useful information for when i know about it a bit more, at the moment i'm just not seeing how that all adds up to 300MB still.
    Maybe an example of the 3Gb Sata connection you touched on but a more in depth explanation of it with the formula for working it out?

    Thanks again.

    The actual encoding is relatively involved. Basically what it comes down to is that 10 bits are transmitted for every 8 bits of actual data. 3Gbit/s is the bandwidth available before this 8b/10b encoding takes place.

    So it takes 10 bits to send one byte (8 bits), or 10,000 bits (10 kilobits) to send 1,000 bytes (1kilobytes), 10,000,000 bis (10 megabits) for sending 1,000,000bytes (1 megabyte), and so on. So it's a simple matter of dividing the speed in Bit/s by 10 to arrive at the speed in Bytes/s.

    Not all serial transports will use 8b/10b. PCIe 3.0 actually uses 128b/130b. 10Gbe uses 64b/66b, USB3.1 uses 128b/132b.

    You can read up on all this at wikipedia Line Codes.

    Wireless Filess uses similar encoding schemes.
    2017 Goals - Something Cisco, Something Linux, Agile PM
  • Options
    Robbo777Robbo777 Member Posts: 331 ■■■□□□□□□□
    Right! Got it, very useful bit of info mate.

    Cheers.
Sign In or Register to comment.