Comparatif de 20 clefs USB 3.0 128 Go

Publié le 27/10/2014 par
Imprimer
Conscient du fait que le mode BOT, bien qu'amélioré, était insuffisant pour les usages modernes que l'on peut faire des disques, l'USB-IF a travaillé en parallèle sur un mode de transfert alternatif, optionnel, mais qui comme le mode BOT a pour vocation d'être géré en standard par les contrôleurs et les drivers des systèmes d'exploitation.

L'UASP : les commandes SCSI encapsulées

Comme nous l'avons vu précédemment, le mode BOT a été adapté aux changements apportés par l'interface USB 3.0 en elle-même (deux voies indépendantes pour les communications dans chaque sens, stream pipes pour rajouter une simultanéité), mais ne répond que partiellement aux besoins. Le mode BOT peut désormais en effet traiter plusieurs commandes en simultanées, mais chacune de ces commandes est traitée de manière séquentielle, si bien que le concept de queue n'existe toujours pas.

Plutôt que d'inventer un énième protocole de transfert, l'USB-IF a choisi d'opter pour quelque chose de simple avec l'UASP (USB Attached SCSI Protocol). Attention cependant, lorsque l'on évoque le SCSI, on a tendance à penser à l'interface à gros connecteurs, utilisée pour des disques ou des périphériques dans les années 90. Si cette interface à laissé sa place, les protocoles qui définissent le SCSI (à tous les niveaux, et pas simplement au niveau du jeu de commande) sont encore très utilisés aujourd'hui !

Dans le cas de l'UASP, on utilise cette fois ci les stream pipes et les voies indépendantes pour faire transiter le jeu de commande SCSI directement au travers de l'USB 3.0. Techniquement il s'agit du SCSI Architecture Model 4 (SAM-4) qui est implémenté par les périphériques. Cette architecture permet d'utiliser un des jeux de commandes SCSI au choix (il y en a au moins six de supportés officiellement, SCSI Primary Commands, SCSI Block Commands, Reduced Block Command Set, etc…) entre le périphérique et le contrôleur. Les commandes sont envoyées en profitant (lorsque l'UASP fonctionne en USB 3.0) des deux voies séparées afin de les rendre asynchrones. En pratique, cet asynchronisme, cumulé à l'un des jeux d'instructions et l'implémentation de SAM-4 permet de profiter de queues d'instructions directement dans le périphérique. Pour l'exemple, voici à quoi ressemble une lecture de données en UASP sur un bus USB 3.0 :


Pour le système d'exploitation, la clef se retrouve vue comme un disque SCSI, connecté à un contrôleur SCSI dans le gestionnaire de périphérique, vous pouvez comparer les deux modes sous Windows 8.1 :

[ Mode BOT ]  [ Mode UASP ]


En pratique cependant, Windows dispose d'un modèle de gestion des disques unifié (Storage Class Driver). Ce schéma issu de la spécification UASP, bien que générique, illustre le point :


Microsoft utilise des Storage Class Drivers  afin que la gestion soit transparente pour les applications qui accèderont aux disques, qu'ils soient SATA, SCSI, Firewire, UASP ou BOT de la même manière. A compter de Windows 8, l'UASP est géré directement par les pilotes du système d'exploitation et l'utilisation devient transparente. Et au cas où tout cela ne vous semble pas encore assez confus, les Storage Class Drivers sous Windows utilisent une partie du protocole SCSI de haut niveau, l'interface class/port qui utilise des Command Descriptor Blocks (CDB) pour passer les commandes vers les pilotes de plus bas niveaux (comme le xHCI). Un détail qui va avoir son importance.

Au-delà de l'avantage sur les performances que peut conférer l'utilisation d'un protocole disque comme le SCSI, on peut retrouver un autre point important lorsque l'on parle de mémoire NAND, et dont nous vous avons déjà beaucoup parlé dans nos tests de SSD : la notion de TRIM.

TRIM : pour la tenue des performances

Pour rappel, TRIM est une commande qui a été ajoutée au jeu d'instruction ATA (elle dispose d'un équivalent, unmap, en SCSI) qui permet au système d'exploitation d'indiquer au contrôleur d'un SSD qu'un bloc de donnée n'est plus utilisé. Cette commande est nécessitée par le fait que les disques sont gérés par le système d'exploitation d'une manière très dirigiste. Lors de la suppression d'un fichier, les blocs qui étaient occupés par le fichier son marqués comme non utilisés au niveau du système de fichier et le système d'exploitation pourra décider de les écraser quand il le souhaite.

Une situation qui n'est pas idéale pour les puces mémoires de type NAND qui gèrent leur pagination en interne de manière différente de la vision idéale du système d'exploitation, pour optimiser les performances. Une particularité de la NAND est qu'il est très rapide d'écrire des pages vides, mais si une page est occupée, on est obligé de lire un bloc entier (un ensemble de pages dont la taille peut varier entre 2 et 8 Mo), de l'effacer complètement, puis réécrire le bloc entièrement avec la page modifiée pour simplement pouvoir changer la page concernée. On passe d'une simple écriture à une lecture de bloc, effacement de bloc, puis réécriture de tout le bloc avec la page modifiée.

Le but de la commande TRIM est d'aider le SSD en lui indiquant lors d'une suppression de fichier que les blocs doivent être considérés comme libres. Le contrôleur du disque pourra alors optimiser ses futurs cycles de lecture/écriture en fonction de ces informations, et également via son garbage collector. Pour plus de détails sur ce sujet compliqué, nous vous renvoyons vers notre dernier comparatif de SSD.

Gérer le TRIM sera un avantage évident pour la tenue des performances des clefs USB dans la durée, mais comme nous le verrons en pratique, bien peu de modèles supportent cette fonction !

Du TRIM sans UASP ?

Avant de commencer notre comparatif, nous pensions que la présence du TRIM était forcément liée à l'utilisation de l'UASP. Il y avait une certaine logique derrière ce raisonnement, puisque l'UASP encapsule le protocole SCSI, qui gère lui-même l'UNMAP/TRIM. En pratique c'est un peu plus compliqué. En effet nous avons pu voir que d'autres clefs rapportent leur gestion du TRIM sous CrystalDiskInfo, alors qu'elles utilisent le mode BOT ! De la même manière, une clef UASP connectée sous Windows 7 fonctionne en mode BOT… mais indique supporter le TRIM.

Pour cela, les contrôleurs inclus dans les clefs USB utilisent une autre technique, l'ATA Pass Through. Il s'agit d'une extension de la norme SCSI qui permet – très simplement - de faire transiter des commandes ATA par le protocole haut niveau SCSI.


On retrouve sur ce schéma le protocole CDB de haut niveau utilisé par Windows dans ses Storage Class Drivers. C'est en effet ici que les choses se compliquent puisque l'ATA Pass Through ne fait pas partie directement de la spécification USB ! Son utilisation repose donc sur le bon vouloir du système d'exploitation, du pilote xHCI et du contrôleur côté PC, et aussi de la compréhension de ces commandes par le contrôleur intégré dans le périphérique USB ! Les conditions pour lesquelles le TRIM peut être géré sont donc minces. Qui plus est, les logiciels qui déterminent l'existence du TRIM utilisent une autre commande via l'ATA Pass Through qui permet de détecter ce que rapporte le disque, au travers des contrôleurs. Ce qui est rapporté, et ce qui se passe en réalité peuvent être des choses très différentes, nous reviendrons au cas par cas sur les modèles qui annoncent cette caractéristique.


CrystalDiskInfo permet d'obtenir ces informations via l'ATA Pass Through, ici sur un modèle UASP

Dernier point important, si l'ATA Pass Through permet en théorie de faire passer n'importe quelle commande ATA vers un périphérique, certaines commandes particulières peuvent poser problèmes, c'est notamment le cas du SECURE ERASE utilisé pour remettre à zéro les SSD. La particularité de cette commande est qu'elle peut mettre un temps particulièrement long à s'exécuter. Le problème intervient dans la manière dont les contrôleurs USB dans les périphériques gèrent la notion de timeout, parfois trop courte et qui peut pousser le contrôleur à tenter d'effectuer un reset du périphérique ATA connecté derrière qui peut rendre le périphérique inaccessible. Attention donc avant de tenter ce genre de manipulation !
Vos réactions

Top articles