Around 1998 we got introduced to USB 1.0. The pure data bit rate could reach an amazing 12Mbits/s (approx 1MByte/s in real life). Then we got USB 2 at the start of the new Millenium which gave us up to 60MBytes/s (much faster than slow-spinning CDs!).
Later still (after 2008) we got USB 3, 3.1 and 3.2 with up to 2.4GBytes/s and very recently we have USB 4 (based on Thunderbolt 3) and are promised speeds of up to a staggering 40GBytes/s.
The names which were given to these different technologies (and seem have been randomly assigned with little forethought) are:
- USB 1 - Low Speed
- USB 1 - Full Speed
- USB 2 - High Speed
- USB 3 - Super Speed
- USB 3.1 Gen 1 Super Speed
- USB 3.1 Gen 2 Super Speed+
- USB 3.2 Gen 1x1
- USB 3.2 Gen 2x1
- USB 3.2 Gen 2x2
- USB 4 Gen 2x2
- USB 4 Gen 3x2 - USB4 routing for tunnelling of USB3.x, DisplayPort 1.4a and PCI Express traffic and host-to-host transfers, based on the Thunderbolt 3 protocol
So what started out as 1MB/s wired protocol has ended up as having a 40+GB/s Input/Output transfer protocol zipping along at radio frequencies!
Now when considering booting from a PC or Notebook, the BIOS/Firmware driver is responsible for USB I/O communication. Most computers which have USB 3 ports, have both USB 3 and USB 2 drivers embedded in the firmware. However, these BIOS drivers will probably not be fully featured like full-blown Windows or Linux drivers. Hence, they may not fully implement the Super Speed protocols and error handling may be limited.
The transfer protocols used by the driver will determine how fast I/O access is and thus how fast we can boot from the USB drive. Moving large blocks of data using a high-speed USB block-transfer protocol under Windows can give us those high speeds, but the BIOS firmware is probably using a more primitive and slower protocol to access the USB drive.
Another point to keep in mind is what BIOS code is used. If we Legacy\MBR-boot from the USB drive it will use the real-mode IBM-compatible BIOS USB driver, but if we UEFI-boot then a completely different UEFI USB driver will be used by the BIOS.
Because the BIOS\Firmware knows what USB chipset is present, it is possible for the BIOS developers to make sure that the USB speeds are optimized. However, most BIOS developers just use generic USB 2/3 drivers to add into their Firmware whilst others may spend some time and effort tweaking the USB BIOS code (e.g. Apple).
Gotcha's