A 20% to 30% increase in USB 2 and USB 3 transfer speed is easily done by:
1:
Changing the size of the blocks of data sent to the USB drive from the default of 64 KB to larger blocks. (up to 2MB)
The larger blocks reduce protocol overhead; increasing speed.
2:
Windows only pretends to enable write caching on all file systems besides NTFS.
Let me repeat that:
Windows does NOT enable write caching on USB flash drives unless the drive is formatted NTFS. It only pretends to do so…!
(But that preset can be overridden!)
This means that the net is full of advice to format USB to NTFS “because it’s fastest”, while it IS NOT!
It’s simply write cached where exFAT (the true fastest FS if aligned) and FAT32 etc are not, even if windows says that the write cache is enabled.
1:
USBSTOR Maximum Transfer Length Tool
Can be changed manually by looking for VID/PID you want to speed up in the registry under:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbstor
BUT there is a much easier way:
Uwe Sieber (the USB guru) has written the USBSTOR Maximum Transfer Length Tool.
You can read more on it and download it here:
(I am especially proud of this app as I was the one to bring the tweak to Uwe’s attention. He then wrote the app)
NB that you want to set the Maximum Transfer Length to the average file size you are reading/writing from/to the USB attached device.
ie:
For large files, like movies, you can go with the maximum of 2MB.
For running an OS or app off the drive you want to keep the default of 64KB.
(NB that over 60% of windows I/O is Random 4K, NOT the large sequential numbers advertisers like to wave around like burning flags…!)
Or do you…?
NAND is read in small blocks called pages and are quick. (low latency)
But writes happen in large blocks called Erase Blocks and are much slower:
If 1 bit in an Erase Block needs to be changed, unless the drive is brand new, the whole erase block has to be read into RAM, the change made, and then the whole lot written back to the NAND chip/s.
So; if the Maximum Transfer Length matches the erase block size; you are likely to see better write performance than you would by following the above advice…
So what is the Erase Block size of your drive: who knows! That info is availabel if you can read the printing on the NAND itself and do an extensive search.
Its quicker and easier to try different sizes and see what benches best for you.
512KB is often the sweet spot and is the default for the new UASP enabled USB drives.
2:
USB-WriteCache V0.2
(Same link as above)
This app will add registry value WriteCacheEnableOverride (and UserRemovalPolicy) under HKLM\SYSTEM\CurrentControlSet\Enum<DeviceInstanceID>\Device Parameters\Classpnp
Once this is done (and the device restarted or the USB drive re-inserted) you will experience what write caching can do for exFAT (or FAT 32 etc) for the very 1st time.
My testing shows exFAT to be quite a bit faster than NTFS. Especially if the allocation unit size is also set to match the average file size as far as possible.
On Aligning USB Flash drives:
There are all sorts of command line options to align partitions and FS allocation unit size.
But I prefer Bootice by Pauly.
(No link as the one I had bookmarked has expired and I cannot yet speak to the integrity of the files/app available on other download sites.
As always run everything past VirusTotal before installing. They have a nice ‘upload’ app and an even nicer ‘send to us to check before you even download it’ browser extension)
What you want to do is tick the “4K aligned” option and then start your partition aligned to the beginning of the 2nd erase block, leaving the 1st to the internal workings of the drive and its ctlr chip.
Here trial and error and benchmarks are again easiest, unless you know the tech specs of your NAND chips.
On UASP:
UASP enabled USB devices are by far the fastest and allow you to TRIM the drive just for a start!
You can read up on it at Wikipedia:
Tomshardware has a nice write up too:
Basically you need USB hardware that’s UASP enabled all the way through the chain and nowadays windows will auto do the software side for you.
NB:
Be wary of vendors advertising UASP enabled drive enclosures as what they do NOT advetise is the fact that while the ctlr chip is in fact UASP enabled; its a SATA 2 ctlr chip (300 MB/s), not a SATA 3 ctlr chip. (600 MB/s)
Thats OK…ish for HDDs (you only lose burst speed to the HDD’s DRAM buffer) but NOT OK for SATA SSDs!
(This is not a driver, but as many people come here looking to get the last bit of performance out of their hardware; I thought it the best place to post…?)