I was recently researching external storage for my Mac, looking for the “fastest” and most “reliable”. There are so many options, and of course, so many different price points! It’s all very confusing: NGFF M.2? NVMe M.2? USB 3.1 Gen 1 (5 Mbps)? USB 3.1 Gen 2 (10 Gbps)? USB 3.1 Gen 2x2 (20 Gbps)? Thunderbolt 3? Thunderbolt 4? USB 4.0?

Nothing below is to be trusted. I am no expert!

TL;DR for Mac users: Just go with Thunderbolt 3 USB-C enclosure and a PCIe 3.0 NVMe.

Regarding Solid State Drives (SSDs)

  • Generally, there are two protocols that use the M.2 connector, so make sure you check: NGFF implements SATA 3.0 (Gbps), and is therefore slower than NVMe.
  • NVMes nowadays are typically PCIe 3.0 (up to 985 Mbps per lane x 4 lanes maximum for 3.9 Gbps theoretical), but the latest, costlier NVMes support PCIe 4.0 which doubles the speed (rounded up, that’s up to 8 Gbps for 4 lanes, theoretical)
  • Regarding M.2 “keying”: B-keyed is 2 lanes, M-keyed is 4 lanes, but surprisingly, both B+M is 2 lanes! Modern NVMes should be M-keyed.
  • SSD densities are increasing by cramming more bits per cell on the NAND chips - from Single-Layer, to (double) Multi-Layer, Triple-Layer, and now with Quad-Layer Cells (SLC/MLC/TLC/QLC).
  • SLC is least dense but fastest and potentially highest endurance (long lasting) because there is less impact of cell charge leakage ... and at the densest end of the spectrum, TLCs may be faster and longer lasting than QLCs.
  • Manufacturers quote an “endurance rating” in Total Bytes Written (TBW), and since SSDs use multiple memory chips, the higher the capacity, the higher the TBW. Some manufactures quote such high numbers I do not know if they are reliable... like the Kingston KC3000 I bought.
  • And, SSD controllers with wear leveling features and on-board DRAM (i.e. not using HMB) may result in higher endurance and be faster.
  • And on a final note, SSDs are not suitable for long-term cold archival - its best ensure they power up occasionally. Per JDEC SSD standards, data retention is at minimum 1 year 30°C at for “client” application class storage, while for enterprise-class SSDs, expect a minimum of 3 months at 40°C.

I checked these lists to find out more, but I do not know how accurate they are. Manufactures have been known to swap parts to meet cost targets during the recent shortages, resulting in performance downgrades:

Regarding USB and Thunderbolt

System Information for Acasis AC-TB34 Thunderbolt 3 enclosure

  • M1 Macs don’t fully implement USB 3.1 Gen 2x2 and therefore do not support USB 20Mbps NVMe enclosures. From System Information > USB > ”Speed = Up to 10 Gb/s” (if via a hub, you might even get a paltry 5 Gb/s)
  • However, Macs do support Thunderbolt 3 via a USB-C connector, and therefore Thunderbolt 3 NVMe enclosures provide faster speeds. From System Information > Thunderbolt/USB4 > ”Speed = Up to 40Gb/s x1”
  • Thunderbolt 3 data transfer speeds max out 16 Gb/s PCIe 3.0, and from System Information > NVMExpress (and similarly under PCI), I see ”Link Width = x4” and ”Link Speed = 8.0 GT/s”.
  • The latest Macs (specifically Mac Studio, Mac Mini M2 2023 and some MacBook Pros as listed here), do support Thunderbolt 4 and PCIe data transfer at 32 Gb/s. Thunderbolt 4 comes into its own when you have an 8K display or two 4K displays, or eGPUs due support of double the PCIe tunnelling bandwidth... but for simple NVMe storage, there is little additional benefit.
  • And what of USB 4.0? Well, USB4 implements Thunderbolt 3, and in fact, USB4 has lower minimum requirements than Thunderbolt 4. Pluggable explains this more clearly, What’s the Difference Between Thunderbolt 3, Thunderbolt 4, and USB4.
  • Therefore, USB 4.0 encolsures with “Thunderbolt 3/4” support are really just Thunderbolt 3, like the Acasis TBU401 and Acasis TBU405 - both use the Intel JHL7440 controller which supports USB 4.0 with Thunderbolt 3.
  • If it’s still available, the cheaper Acasis AC-TB34, which uses an older Intel JHL6340, should offer the same speeds. Just without support for USB 4.0 which can downgrade automatically on older PCs... but since Macs have always supported full Thunderbolt 3, this is not of concern.
  • I believe Orico’s M234C3 enclosure also use an Intel Thunderbolt 3 controller, but their product page does not specify which. FYI only Intel JH8340, JH8440 and JH8550 chips support Thunderbolt 4, but like I said, it makes no difference for my external storage use case.

More confused than before? I am. If you are curious I bought the Kingston KC3000 PCIe 4.0 and Acasis AC-TB34 SSD enclosure (now discontinued).

Bonus: Smartmontools

If you want to find out more about your NVMe on macOS, download and compile smartmontools. After downloading and extracting the tarball:

./configure
make

To run smartctl you need to first determine the Disk ID for external disks. diskutil will mark these disks as external, physical, e.g. disk3 in this example:

diskutil list
./smartctl -a disk3

I doubt SMART will warn you of NAND failure, but you may be interested in the data units written value:

smartmontools -A disk3
smartctl 7.3 2022-02-28 r5338 [Darwin 22.2.0 arm64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        32 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    138 [70.6 MB]
Data Units Written:                 2,066 [1.05 GB]
Host Read Commands:                 1,626
Host Write Commands:                2,341
Controller Busy Time:               0
Power Cycles:                       2
Power On Hours:                     0
Unsafe Shutdowns:                   1
Media and Data Integrity Errors:    0
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 2:               42 Celsius