Jump to content

Is this scary? SATA3 vs USB 3.0

So I have my internal HDD, HGST HTS721010A9E630, and my Samsung T3 500GB SSD. I ran a speedtest on both drives and I got a result of 121MB/s write and a 129MB/s read. On my external SSD connected via my monitors USB hub I get a 362MB/s write and 404MB/s read. Is this normal, like I know SATA3 bottlenecks. I also tested my external 3TB HDD connected via USB 3.0 and I got 144MB/s write and 151MB/s read, and for lolz I tested my NVME SSD... 948MB/s read and 1410MB/s write. I did spike to 1200MB/s on both but it slowed due to the way Blackmagic's disk speed test works.

DiskSpeedTestSSD.png Ext SSD

DiskSpeedTestHDD.pngInternal HDD

DiskSpeedTestExtHDD.png External HDD

DiskSpeedTestNVME.png Internal NVME SSD

Link to comment
Share on other sites

Link to post
Share on other sites

Sata 3's transfer rate is 750 MB/s, USB 3.0 is 625 MB/s, USB 3.1 gen 1 is also 625 and USB 3.1 gen 2 is 1250.

So yeah, unless you're using it via USB 3.1 gen 2, SATA 3 is the winner when it comes to transfer rates

Remember kids, the only difference between screwing around and science is writing it down. - Adam Savage

 

PHOΞNIX Ryzen 5 1600 @ 3.75GHz | Corsair LPX 16Gb DDR4 @ 2933 | MSI B350 Tomahawk | Sapphire RX 480 Nitro+ 8Gb | Intel 535 120Gb | Western Digital WD5000AAKS x2 | Cooler Master HAF XB Evo | Corsair H80 + Corsair SP120 | Cooler Master 120mm AF | Corsair SP120 | Icy Box IB-172SK-B | OCZ CX500W | Acer GF246 24" + AOC <some model> 21.5" | Steelseries Apex 350 | Steelseries Diablo 3 | Steelseries Syberia RAW Prism | Corsair HS-1 | Akai AM-A1

D.VA coming soon™ xoxo

Sapphire Acer Aspire 1410 Celeron 743 | 3Gb DDR2-667 | 120Gb HDD | Windows 10 Home x32

Vault Tec Celeron 420 | 2Gb DDR2-667 | Storage pending | Open Media Vault

gh0st Asus K50IJ T3100 | 2Gb DDR2-667 | 40Gb HDD | Ubuntu 17.04

Diskord Apple MacBook A1181 Mid-2007 Core2Duo T7400 @2.16GHz | 4Gb DDR2-667 | 120Gb HDD | Windows 10 Pro x32

Firebird//Phoeniix FX-4320 | Gigabyte 990X-Gaming SLI | Asus GTS 450 | 16Gb DDR3-1600 | 2x Intel 535 250Gb | 4x 10Tb Western Digital Red | 600W Segotep custom refurb unit | Windows 10 Pro x64 // offisite backup and dad's PC

 

Saint Olms Apple iPhone 6 16Gb Gold

Archon Microsoft Lumia 640 LTE

Gulliver Nokia Lumia 1320

Werkfern Nokia Lumia 520

Hydromancer Acer Liquid Z220

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, revsilverspine said:

Sata 3's transfer rate is 750 MB/s, USB 3.0 is 625 MB/s, USB 3.1 gen 1 is also 625 and USB 3.1 gen 2 is 1250.

So yeah, unless you're using it via USB 3.1 gen 2, SATA 3 is the winner when it comes to transfer rates

The thing is I do have a USB 3.1 connector but I DON'T USE IT, my SSD is connected to my monitor which is connected to my laptop with a USB 3.0.

Link to comment
Share on other sites

Link to post
Share on other sites

What you're actually seeing is the limitation of a mechanical HDD NOT the SATA interface.

Please quote my post, or put @paddy-stone if you want me to respond to you.

Spoiler
  • PCs:- 
  • Main PC build  https://uk.pcpartpicker.com/list/2K6Q7X
  • ASUS x53e  - i7 2670QM / Sony BD writer x8 / Win 10, Elemetary OS, Ubuntu/ Samsung 830 SSD
  • Lenovo G50 - 8Gb RAM - Samsung 860 Evo 250GB SSD - DVD writer
  •  
  • Displays:-
  • Philips 55 OLED 754 model
  • Panasonic 55" 4k TV
  • LG 29" Ultrawide
  • Philips 24" 1080p monitor as backup
  •  
  • Storage/NAS/Servers:-
  • ESXI/test build  https://uk.pcpartpicker.com/list/4wyR9G
  • Main Server https://uk.pcpartpicker.com/list/3Qftyk
  • Backup server - HP Proliant Gen 8 4 bay NAS running FreeNAS ZFS striped 3x3TiB WD reds
  • HP ProLiant G6 Server SE316M1 Twin Hex Core Intel Xeon E5645 2.40GHz 48GB RAM
  •  
  • Gaming/Tablets etc:-
  • Xbox One S 500GB + 2TB HDD
  • PS4
  • Nvidia Shield TV
  • Xiaomi/Pocafone F2 pro 8GB/256GB
  • Xiaomi Redmi Note 4

 

  • Unused Hardware currently :-
  • 4670K MSI mobo 16GB ram
  • i7 6700K  b250 mobo
  • Zotac GTX 1060 6GB Amp! edition
  • Zotac GTX 1050 mini

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Both SATA3 and USB 3 use 10:8 data transmission, meaning for every 10 bits of data, only 8 are actual information... the other 2 bits are error correction.

 

So you have SATA 3 with a maximum bandwidth of 6 gbps or 6 billion bits per second. That means an actual  (6 / 10) * 8 = 4.8 gbps .. There's 8 bits in a byte.. so you're looking at 4.8 * 1,000,000,000 / 8  = 600,000,000 bytes per second.  That's 600 MB/s or 572 MiB/s (the measurement unit used when you look at file sizes, you'd transfer 572 MB file in one second)

USB 3 or USB 3.1 gen 1 has a maximum bandwidth of 5gbps .. doing the same math, we have a maximum speed of 500,000,000 bytes per second

 

So:


SATA 3 : 600,000,000 bytes per second.

 USB 3 : 500,000,000 bytes per second.

 

USB 3 has other disadvantages over SATA3 ..

 

1. it's half duplex, meaning a device can not send and receive data through the cable at the same time.

 

So when you transfer a file through USB 3 from an external device, several times during transfer the hard drive has to pause to receive message from the other end which says "Ok, i got everything so far, keep going" or "Hey dude, this packet of data is damaged, send it again" and then it will resume transferring data...  SATA 3 will keep transferring while it receives messages from the sata controller, without pauses.

 

2. USB 3 packs all the data that goes through the cable in packets of certain sizes, and there's a limited number of packets that can be sent through the cable to the PC within each second. Because of this packaging of data, for every packet of data, there's a number of bytes of information that's part of the "packet definition" which don't contain useful information, they just make it easier for the usb controller to process the data packets going through the cable. So even though the maximum bandwidth is 500 million bytes, you don't even get those 500 million bytes

 

Also due to the limited number of data packets that can go within a second, it's quite possible that you could not actually send up to 500,000,000 bytes in a second. These limitations were more severe with USB 2.0 where even though the theoretical maximums were something like 46 MB/s in reality, you wouldn't be able to transfer more than around 33-35 MB/s due to the way data was packed and send through the cable.

 

Your NVME SSD connects to the computer through multiple pci-e lanes, where each pci-e lane is capable of 500 MB/s in each direction (for pci-e v2.0 lanes) or 980 MB/s in each direction (for pci-e v3.0 lanes)

Your SSD probably used 4 pci-e lanes to communicate with the computer, giving it a maximum speed of 2 GB/s or ~3.9 GB in both directions.  The benchmarks show 1400 MB/s when reading from SSD which indicate the use of at least 2 pci-e v3.0 lanes, or 4 pci-e v2.0 lanes.

 

The mechanical hard drive performance is limited by the mechanical drive itself, not the interface.

 

Have a look at the datasheet: https://www.hgst.com/sites/default/files/resources/TS-7K1000-ds.pdf

 

As you can see, the maximum transfer rate (from platters to the 32 MB of cache memory on the hard drive) is listed as 1284 megabits per second - if you divide that by 8, you have 160.5 MB/s (millions of bytes).

 

The interface is SATA3 (6 gbps or 600 MB/s) and you could potentially get such high speeds if you're reading data from hard drive's cache all the time (for example you load a playlist in your music player, play a song and then go automatically to next song.. if the files were physically one after another on the hard drive, the drive could copy the next song already in its 32 MB cache and when your music player tries to read the file, it could read it in memory at up to 600 MB/s)

 

This number is less than the maximum USB 3 or SATA3 or even SATA 2 (3 gbps or 300 MB/s)  but SATA 2 or SATA3 should give slightly faster transfer speeds than USB 3 simply because of that half duplex thing of usb 3.0 and because the extra processing time that the chip which converts sata to usb brings in.

 

Hopes these explanations help.

 

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

  • 3 years later...
On 6/26/2017 at 2:49 PM, mariushm said:

Both SATA3 and USB 3 use 10:8 data transmission, meaning for every 10 bits of data, only 8 are actual information... the other 2 bits are error correction.

 

So you have SATA 3 with a maximum bandwidth of 6 gbps or 6 billion bits per second. That means an actual  (6 / 10) * 8 = 4.8 gbps .. There's 8 bits in a byte.. so you're looking at 4.8 * 1,000,000,000 / 8  = 600,000,000 bytes per second.  That's 600 MB/s or 572 MiB/s (the measurement unit used when you look at file sizes, you'd transfer 572 MB file in one second)

USB 3 or USB 3.1 gen 1 has a maximum bandwidth of 5gbps .. doing the same math, we have a maximum speed of 500,000,000 bytes per second

 

So:


SATA 3 : 600,000,000 bytes per second.

 USB 3 : 500,000,000 bytes per second.

 

USB 3 has other disadvantages over SATA3 ..

 

1. it's half duplex, meaning a device can not send and receive data through the cable at the same time.

 

So when you transfer a file through USB 3 from an external device, several times during transfer the hard drive has to pause to receive message from the other end which says "Ok, i got everything so far, keep going" or "Hey dude, this packet of data is damaged, send it again" and then it will resume transferring data...  SATA 3 will keep transferring while it receives messages from the sata controller, without pauses.

 

2. USB 3 packs all the data that goes through the cable in packets of certain sizes, and there's a limited number of packets that can be sent through the cable to the PC within each second. Because of this packaging of data, for every packet of data, there's a number of bytes of information that's part of the "packet definition" which don't contain useful information, they just make it easier for the usb controller to process the data packets going through the cable. So even though the maximum bandwidth is 500 million bytes, you don't even get those 500 million bytes

 

Also due to the limited number of data packets that can go within a second, it's quite possible that you could not actually send up to 500,000,000 bytes in a second. These limitations were more severe with USB 2.0 where even though the theoretical maximums were something like 46 MB/s in reality, you wouldn't be able to transfer more than around 33-35 MB/s due to the way data was packed and send through the cable.

 

Your NVME SSD connects to the computer through multiple pci-e lanes, where each pci-e lane is capable of 500 MB/s in each direction (for pci-e v2.0 lanes) or 980 MB/s in each direction (for pci-e v3.0 lanes)

Your SSD probably used 4 pci-e lanes to communicate with the computer, giving it a maximum speed of 2 GB/s or ~3.9 GB in both directions.  The benchmarks show 1400 MB/s when reading from SSD which indicate the use of at least 2 pci-e v3.0 lanes, or 4 pci-e v2.0 lanes.

 

The mechanical hard drive performance is limited by the mechanical drive itself, not the interface.

 

Have a look at the datasheet: https://www.hgst.com/sites/default/files/resources/TS-7K1000-ds.pdf

 

As you can see, the maximum transfer rate (from platters to the 32 MB of cache memory on the hard drive) is listed as 1284 megabits per second - if you divide that by 8, you have 160.5 MB/s (millions of bytes).

 

The interface is SATA3 (6 gbps or 600 MB/s) and you could potentially get such high speeds if you're reading data from hard drive's cache all the time (for example you load a playlist in your music player, play a song and then go automatically to next song.. if the files were physically one after another on the hard drive, the drive could copy the next song already in its 32 MB cache and when your music player tries to read the file, it could read it in memory at up to 600 MB/s)

 

This number is less than the maximum USB 3 or SATA3 or even SATA 2 (3 gbps or 300 MB/s)  but SATA 2 or SATA3 should give slightly faster transfer speeds than USB 3 simply because of that half duplex thing of usb 3.0 and because the extra processing time that the chip which converts sata to usb brings in.

 

Hopes these explanations help.

 

 

 

I subscribed to say thanks, @mariushm!

Duckduckgo :) sent me here because the ducks felt I should learn about "transfer speeds sata3 vs usb3 vs pcie3". And I enjoyed reading your easy essay. (The only bit I couldn't get is what you might mean with "pci-e lane")

Next, I gonna duck for "connect sata3 ssd to PCIe x16 v3?", because I am curious if any cable can connect the two to see if I can prise more speed out of this NO-NVME-Motherboard that I got for peanuts (almost)...

 

Link to comment
Share on other sites

Link to post
Share on other sites

49 minutes ago, Neckbiter said:

 (The only bit I couldn't get is what you might mean with "pci-e lane")

 

Pci express is designed with the concept of pci-e lanes in mind.  A pci-e lane is a direct connection between two devices, for example a video card and the pci-e controller inside the processor, or the pci-e controller inside the chipset.

In this pci-e lane, there's 1s and 0s going between the devices

Depending on pci-e version, the bits can "fly" between devices at a certain speed. 

Depending on pci-e version, after a certain number of bits, there are a few bits that aren't data but rather error correction information - it helps the pci-e controller receiving data from a device like a video card to check if those bits have arrived correctly and in some cases, may even be able to use those bits to determine what got damaged and correct the transmission instead of having to ask the device to send that bit of information again, wasting time.

 

So you can see in the chart below how much speed each pci-e lane gives you.

 

For example, a pci-e version 2.0 lane can achieve 5 Gigatransactions or 5,000,000,000 bits per second moving between devices. But, in every 10 bits, 2 bits are used for error correction ... so only 8 bits are actually useful data.

So, the actual amount usable is 5,000,000,000 / 10 * 8 = 4,000,000,000 bits. 

If we further divide this by 8 to get bytes, we end up with 500,000,000 bytes per second.  

If we use multiples of 1000, this means 500 MB/s.

 

In version 3.0, they upgraded the speed to 8 Gigatransaction per second which is not quite double what was possible in pci-e version 2.0, but they switched from using 2 bits for every 8 bits of data for error correction, to using 2 bits for every 128 bits of data, and that frees up a lot of bits for actual data.

Because of this, you now 8,000,000,000 bits / 130 x 128 =  approx. 7,876,923,077 bits per second of useful data. 

If we divide this number by 8, we get  984,615,384 bytes per second or almost 985 MB/s 

 

Now, pci-e slots are designed to be modular, allowing a slot to have between 1 and 16 pci-e lanes in it.

A physical slot can be up to 16 pci-e lane wide, but does not have to actually have up to 16 pci-e lanes actually connected inside the slot - the physical look of the slot is not locked to the actual electrical wiring between the slot and the component where the wires go (the cpu or the chipset)

 

When you insert a pci-e device into a slot, there's contacts in the slot which make it possible for the motherboard to detect up to how many pci-e lanes the card is designed to use, but that's just informative.

The  pci-e card can not expect the slot will have that amount of pci-e lanes, the only guarantee is 1 pci-e lane available.

The motherboard is also not obligated to use that many pci-e lanes to "talk" to the pci-e card.  

So, this makes it possible to insert a pci-e x1 card into a pci-e x4 or x8 or x16 slot, and the card will happily work at pci-e x1 speeds.

This  also makes it possible for a pci-e x8 or pci-e x16 card to be inserted in a pci-e slot that physically is sized at pci-e x16, but only has electrical wires in it allowing up to 4 pci-e lanes.  The card will simply run at pci-e x4 speeds, using only 4 pci-e lanes.

 

The pci-e card will also "talk" to the pci-e controller, and will initially talk using version 1 or version 2 of the pci-e standard, and the pci-e controller will tell the pci-e device that it supports up to a specific version, allowing the pci-e device to select the optimum pci-e version this way.  This is backwards compatibility, this is what allows a pci-e 3.0 video card or a pci-e 4.0 M.2 SSD to work in older generation slots, but at reduced speed.

 

Some devices will also switch between pci-e versions on purpose, for various reasons, but mostly to save power. The higher the transfer speed, more power is needed to push the bits on each pci-e lane toward their destination. If there's no need for that speed, some devices may switch between pci-e modes (versions) and may turn off a number of pci-e lanes in order to reduce power. For example, when you're watching a movie on Youtube, the video card knows it doesn't have to quickly transfer gigabytes of information, so there's no need to use all 16 pci-e lanes and stay in pci-e 3.0 mode to transfer 20-50 MB/s, so it may switch to pci-e 2.0 mode and maybe go down to only 4 or 8 pci-e lanes, instead of 16 pci-e lanes.

 

image.png.10641ed42432ef87015b40ae1b2dc202.png

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×