OS X, l’USB 3.0 et l’UASP

Avec l’arrivée de l’USB 3.0 et d’un nouvel OS, Apple a profité de l’occasion pour utiliser un nouveau protocole pour les disques durs externes, l’UASP (USB Attached SCSI Protocol).

Un peu d’explications : depuis les débuts de l’USB — norme 1.x dans les années nonante — on travaille en mode « bulk » pour les données. En gros, on envoie une commande, on attend un retour, on envoie une donnée, on attend un retour, etc. C’était efficace avec de l’USB 1.x à 1,5 Mo/s, moins avec de l’USB 2.0, encore moins avec de l’USB 3.0.

Le protocole UAS est plus complet : il permet d’envoyer commandes et données séparément et de mieux gérer l’ordre des commandes (le NCQ). Sur un disque, si on demande le secteur 7, puis le 100, puis le 8, puis le 101, on va faire beaucoup d’accès en travaillant en Bulk. En UASP, on peut envoyer 7, 8, 100, 101, ce qui accélère les traitements.

Pour ceux qui veulent plus d’explications, c’est expliqué là (en anglais). En résumé ? Ca va plus vite.

Avec un SSD et un bon boîtier, il est possible d’augmenter les performances de 20 % assez facilement avec l’UASP : en gros passer de 300 Mo/s à 360 Mo/s par exemple. C’est proche du maximum pratique que les concepteurs de la norme USB 3.0 estiment : environ 400 Mo/s.

La question : pourquoi tout le monde ne travaille pas dans ce mode ?

Plusieurs raisons. d’abord, il faut un contrôleur USB 3.0 compatible, avec un firmware à jour. Bonne nouvelle, l’Intel intégré aux chipsets des Mac est compatible.

Ensuite, il faut un boîtier compatible. C’est plus dur, parce que le contrôleur du boîtier soit être compatible mais le firmware aussi. Pour tester sous OS X, j’utilise un boîtier modifié par le concepteur de la puce, mais les derniers LaCie (Rugged) et un boîtier Thermaltake le sont. Attention, le must est un boîtier ouvert (donc pas les LaCie) avec un contrôleur USB 3.0 compatible SATA 6 gigabits/s. Et c’est rare. OWC travaille pour mettre à jour les siens.

Enfin, il faut un système d’exploitation compatible ou un pilote. OS X Mountain Lion l’est, je n’ai pas testé Mac OS X Lion mais il l’est a priori aussi. Sous Windows, le futur Windows 8 l’est, alors qu’il faut des pilotes dédiés pour Windows 7.

Je ne peux pas vraiment vous donner des résultats parlants, pour deux raisons : d’une part je ne sais pas comment forcer le boîtier de test en mode Bulk et d’autre part il est équipé d’une puce USB 3.0 vers SATA 3 gigabits/s, qui bride donc en partie le SSD. Dès qu’OWC proposera un firmware adapté pour mon boîtier USB 3.0, je testerais.

Par contre, il est possible de vérifier qu’OS X utilise bien le boîtier en mode UASP. Il faut aller télécharger un outil de développement chez Apple (c’est gratuit avec un simple Apple ID), le IOUSBFamily Log Release for OS X 10.8 et l’installer.

Après l’installation, il faut lancer USB Prober, se rendre dans Bus Probe, sélectionner le disque dur externe, choisir Configuration Descriptor (current config) et vérifier les valeurs Interface #0 – Mass Storage/SCSI.

En mode Bulk, on ne retrouve que la valeur Interface Protocol : 80, alors qu’en UASP on a aussi Interface Protocol : 98.

Notons enfin que c’est théoriquement utilisable en USB 2.0 mais que mes tests n’ont pas permis de le vérifier.

Au final, c’est un mode d’avenir et on peut espérer — vraiment — que les boîtiers USB 3.0 l’utiliseront tous dans le futur. Mais pour le moment, ça reste malheureusement anecdotique.