Les différentes normes de l’USB, c’est compliqué. Pour l’USB 3.x, il y a trois variantes principales : l’USB 3.0 (ou 3.x Gen 1) à 5 Gb/s, l’USB 3.1 (ou 3.2) Gen 2 à 10 Gb/s et l’USB 3.2 Gen 2×2 à 20 Gb/s. Cette version est de plus en plus courante, mais Apple ne la prend pas en charge dans ses contrôleurs. Mais le pilote xHCI de macOS, lui, accepte la norme.
Bon, ça nécessite un peu d’explications. En USB, il y a le contrôleur (la partie physique) qui communique avec un pilote plus ou moins standard, via le protocole xHCI (pour l’USB 3.x). Dans les SoC Apple (M1 à M4), l’USB 3.2 à 20 Gb/s n’est pas pris en charge. Si vous branchez un SSD compatible, vous aurez au mieux 10 Gb/s, soit environ 1 Go/s. Mais il y a d’autres contrôleurs qui prennent en charge la norme, comme le contrôleur Thunderbolt 5 d’Intel ou la puce ASM3242 d’Asmedia, qu’on trouve dans de nombreuses cartes (vers 30 €). Si vous branchez un contrôleur compatible sur un Mac, le pilote xHCI d’Apple prend bien la norme en charge et donc vous aurez les débits attendus.
Avec une carte ASM3242
J’ai une carte PCI-Epress compatible depuis quelques années (je l’avais testée en 2020) et elle fonctionne enfin sous macOS dans un boîtier Thunderbolt. Quand j’en avais parlé (sous macOS Catalina), la norme n’était pas gérée : macOS voyait uniquement un contrôleur USB 2.0. Mais depuis, Apple a corrigé son pilote. Dixit ce sujet sur les forums de MacRumors, ça fonctionne avec macOS Sonoma et Sequoia (que j’ai utilisé) mais pas avec les OS précédents (ce que j’avais noté aussi). Dans tous les cas, avec un OS récent, il est possible de travailler à 20 Gb/s sur les Mac compatibles. Comme il faut Sonoma, c’est limité aux modèles équipés d’une puce T2 (j’ai testé dans un Mac mini Intel de 2018).
Pour les essais, j’ai donc pris un SSD Crucial X10 Pro, une carte à base d’ASM3242 et un boîtier Thunderbolt. C’est franchement overkill pour cet usage, on est d’accord : la carte et le boîtier valent plus qu’un SSD externe en Thunderbolt ou en USB4. Mais une fois branché, on peut bien atteindre environ 2 Go/s en lecture et à peu près 1 300 Mo/s en écriture.
On peut évidemment se demander pourquoi Apple ne prend pas en charge l’USB 3.2 à 20 Gb/s. Je n’ai pas la réponse, mais je peux supposer qu’au moment de la conception des SoC, ce n’était pas une priorité. La norme est déployée en théorie depuis 4 à 5 ans, mais les fabricants de SSD externes ne proposent des modèles compatibles en masse que depuis un an environ. Apple a peut-être pensé que l’USB4 allait prendre le pas rapidement sur cette norme, je n’en sais rien. Les fabricants de station d’accueil pourraient mettre un contrôleur compatible dans leurs appareils sur le papier, mais le fonctionnement des stations Thunderbolt 4 et 5 n’aide pas. Avec ces normes, c’est le contrôleur de la machine qui prend la main avec ce qu’on appelle l’USB Tunneling. En gros, au lieu de communiquer en PCI-Express avec un contrôleur tiers, toutes les commandes sont envoyées directement au contrôleur principal du système. C’est un choix intéressant quand le contrôleur USB externe est moins rapide que l’interne (la majorité des cas) mais qui amène comme effet de bord que quand l’externe est plus rapide dans un cas précis, on perd la fonction.
Actuellement, l’absence d’USB 3.2 à 20 Gb/s peut être vu comme un problème tout de même : les SSD externes compatibles sont deux fois plus rapides en lecture (en écriture, ça va dépendre des SSD) et le surcoût de l’USB 3.2 à 20 Gb/s est assez léger. Je pense que ce défaut disparaîtra de lui-même quand les SSD USB4 ou Thunderbolt 5 se démocratiseront.
Le cas Thunderbolt 5
Il y a un autre cas un peu spécifique que je n’ai pas pu tester, dont j’ai parlé sur MacG : le Thunderbolt 5. Dans les stations Thunderbolt, il y a toujours un contrôleur USB pour prendre en charge les prises. Il peut s’agir d’un contrôleur dédié (on trouve souvent du Fresco FL1100, assez lent) ou dans les modèles récents, du contrôleur Intel. C’est là que c’est un peu compliqué : quand on branche une station moderne (Thunderbolt 4 ou 5) en direct sur un Mac ARM, le contrôleur USB Intel est désactivé : c’est le contrôleur d’Apple qui prend la main avec l’USB Tunneling. Quand on branche la station sur un Mac Intel ou quand on intercale un périphérique Thunderbolt 3, le contrôleur USB Intel est utilisé.
Et le contrôleur Intel en question, dans sa version Thunderbolt 5, prend en charge l’USB 3.2 à 20 Gb/s. L’essai dont j’ai parlé a été fait avec une station Thunderbolt 5 Kensington (comptez 425 €) sur un Mac Intel, et la norme est bien prise en charge. SI vous le branchez en direct sur un Mac ARM, donc, ça ne marche pas, par contre (en tout cas de ce que j’ai compris). Mais vu le prix de la station, on est de toute façon dans le même cas que le montage précédent : c’est bien trop cher pour être intéressant. Pour le prix d’un SSD USB 3.2 à 20 Gb/s et de la station, on peut acheter un SSD USB4 ou même Thunderbolt 5, bien plus rapide.
Petit essai en bonus
J’ai sorti trois anciennes cartes USB 3.0 pour vérifier si Apple avait modifié le comportement de son pilote avec les vieilles puces. Ce n’est pas le cas : ma carte à base de Fresco FL1100 fonctionne bien (c’est la puce employée dans le Mac Pro ou dans certaines stations Thunderbolt) mais celle à base de FL1000, une puce plus ancienne, non (au moins, elle ne plante pas le Mac). Même chose avec la puce Nec, qui est vraiment datée : elle est reconnue comme un contrôleur xHCI mais les pilotes ne se chargent pas. Donc Apple n’a pas corrigé ce vieux problème.
Bonjour,
Une puce T2 n’est pas nécessaire pour faire tourner Sonoma.
L’iMac Intel 2019 qui n’en a pas supporte Sonoma et Sequoia.
Par contre je ne pense pas qu’il atteigne les 20 Gb/s.
Je crois qu’il est limité à 5 Gb/s (USB 3.0 ou USB 3.x Gen 1) comme l’iMac Intel 2020 qui est le premier iMac à intégrer la puce T2.
J’oublie toujours les iMac. Mais oui, ça ne change rien, ils ne sont pas en 20 Gb/s (ni même en 10 Gb/s). Mais le premier iMac avec une puce T2, c’est l’iMac Pro.
Pas faux, je ne pense jamais à la gamme pro des iMac qui a été très brève.