Hard drive manufacturers and manufacturers of data recovery tools love to boast data transfer speeds. Unfortunately, many customers fall for this trick. Today we will tell you about the maximum speed of hardware in theory and in practice.

Let’s take a WD drive (1 Tb WDC WD10EZEX-60ZF5A0) and make simple measurements: run the PC-3000 Express, go to Tests -> Surface test -> Logical test, mark only “Reading”, and leave it for some hours.

The results are presented below(perfomance chart):

As we can see, the maximum reading speed is 137 MB/s, the total time of reading the whole drive is 2 h 5 min. The reading speed of PC-3000 Express and UDMA-E controller limited to 150 MB/s (UDMA 150).

Next, let’s do the same measurement by using a full-featured SATA controller. We used a Gigabyte GA-A75-D3H motherboard (Marvell 9128 inside) and our free Disk Analyser software (which is able to test motherboard-connected drives). As you see, it can read good SATA drives a little bit faster than PC-3000 Express (read a drive at the maximum speed that the drive’s surface is able to reach). Reading will take the same time on any other modern full-featured SATA controller based on a chip like Marvell 88se9235, Marvell 88SE6445, etc.

As a result, the maximum reading speed is 190 MB/s, total time of reading the whole drive is 1 h 49 min.

Let’s combine the results into one single graph to make a clear comparison:

and draw the lines of maximum theoretical speed of SATA standards:

The theoretical speed limits of popular interfaces are as follows:

SATA Revision 1.0 – up to 1.5 Gbit/s ( 192 MB/s)

SATA Revision 2.0 – up to 3 Gbit/s ( 384 MB/s)

SATA Revision 3.0 – up to 6 Gbit/s ( 768 MB/s)

As we can see, the real maximum reading speed (190 MB/s) is close to SATA I maximum speed (192 MB/s), but only at first LBA’s. Drive is being read “stepwise”, the speed drops when it comes close to the last LBA. So the real speed is never close to SATA II and SATA III maximum speeds.

You may ask, are HDD manufacturers cheating us so much about the actual reading speed? In fact, it’s possible to reach 768 Mb/s when reading small files and when a drive has cache and uses read-ahead mechanisms. But you will never reach such speeds when imaging the whole drive.

You can also see on the graph that even for healthy drives the loss in speed when imaging is insignificant. Reading a 1Tb SATA 3.0 compatible drive via any full-featured SATA controller on a chip took 1 h 49 min, whereas via PC-3000 Express or UDMA-E it took 2 h 5 min. So the time difference is only 15 minutes.

For the majority of drives, there will be no difference in speed when you read them via a full-featured SATA controller or via the PC-3000 Express/UDMA-E controller.

The graphs above were received in the “ideal” conditions: computer was left to perform the reading process, with no other processes running. When a computer is used for any other tasks simultaneously with the reading process (especially when the Internet is actively used), the speed will also drop a little bit. In such cases, the graph becomes more “hairy”.

It seemed interesting to us to make the following experiment: to read the same drive (500 GB Samsung ST500LT012) in different conditions:

In the “ideal” conditions (when no other software running), the reading took 1h 37min. At the 100% CPU usage, it took 6 min more – 1h 43 min.

Below is the graph processed by moving average and with the X axis converted to time scale to make it clearer:

So we can draw one more conclusion: the reading speed is a little bit lower when the CPU is highly loaded.

What about reading damaged drives?

Present-day full-featured SATA controllers on chip have the data transfer protocol that is hardware-implemented. Of course, there is a considerable gain in speed, but you can not manage the reading parameters. This fact becomes crucial in case of a damaged drive because the damaged HDD violates the SATA protocol. In other words, present-day SATA controllers on chip can not work with most of damaged drives via SATA techno mode. That’s why PC-3000 Express and PC-3000 UDMA-E contain a unique proprietary controller that can handle such issues.

So when your purpose is data recovery from damaged drives, there is no need to chase after speed 😉

P.S. You can download raw data here and easily reproduce our experiment or make your own. We use this script for csd->csv conversion and visualize the data via GNU Octave plotting software (script for auto-plotting).

P.P.S. You are welcome to share the results of your reading tests in comments.