USB 3.0 : xHCI, BOT, UASP, Windows 7 et 8... pas si simple !

Tag : USB 3;
Publié le 21/03/2013 par
Imprimer
Afin de réaliser nos tests, nous avons utilisés le logiciel IOmeter afin de mesurer les performances en lecture et en écriture. Nous avons optés pour deux tailles de blocs différentes, des blocs de 2 Mo, représentatifs d'opérations sur de gros fichiers, et des blocs de 4 Ko, représentatifs d'opérations sur de petits fichiers. Indépendamment du scénario, nous faisons varier la taille de la queue de commande (Queue Depth) de 1 à 8. En théorie, les pilotes UASP devraient profiter d'un avantage lorsque l'on augmente cette longueur.

Notez que nous utilisons des données fortement compressibles pour nos tests. Cela à l'avantage de stresser au maximum les interfaces et de nous permettre de déterminer les débits maximums ! Les SSD utilisant un contrôleur Sandforce sont en effet capables de compresser à la volée certains types de données utilisés, principalement, dans les benchmarks. Nous vous renvoyons pour plus de détails sur ce sujet vers notre comparatif de SSD !

Pour résumer, nous allons comparer les sept scénarios suivants sous Windows 7 :
- Boitier connecté sur un port AMD en mode BOT
- Boitier connecté sur un port AMD en mode Turbo (driver Asrock Xfast USB/Fnet)
- Boitier connecté sur un port Asmedia en mode BOT
- Boitier connecté sur un port Asmedia en mode UASP (driver Asus USB Boost/MCCI)
- Boitier connecté sur un port EtronTech en mode BOT
- Boitier connecté sur un port Intel en mode BOT
- Boitier connecté sur un port Intel en mode Turbo (driver Asus USB Boost/MCCI)

Opérations sur blocs de 2 Mo

Commençons par le cas le plus classique, celui de l'utilisation de blocs de 2 Mo. Il simule les opérations sur de gros fichiers et permet de déterminer les débits maximaux théoriques que l'on peut obtenir via les interfaces USB 3.0. Les résultats seront donc assez proches de ceux obtenus dans nos mesures de débits séquentiels (sur un port) dans nos tests de cartes mères. Ils ne sont cependant pas équivalents, pour rappel nous utilisons un boitier différent !


Merci d'utiliser un navigateur compatible HTML5 pour voir le graphique.

[ Lecture ]  [ Ecriture ]

Beaucoup d'enseignements à tirer de ces premiers résultats. Regardons d'abord du côté de l'Asmedia, nous avons mesuré les performances en mode BOT et en mode UASP (on ne peut pas activer le mode Turbo lorsque l'UASP est possible via l'utilitaire d'Asus). Le simple fait de passer du mode BOT à l'UASP permet de gagner environ 70 Mo par secondes en lecture/écriture lorsque l'on est en mode QD1. La différence s'explique assez facilement, au delà de la qualité du pilote UASP de MCCI, il faut rappeler qu'une des volontés derrière le développement de l'UASP était de réduire l'impact du protocole de communication (l'overhead, estimé à environ 20% en mode bot) sur les performances. En écriture, le pilote UASP de MCCI permet au contrôleur d'Asmedia de tutoyer celui d'Intel, tout de même.

Si l'on regarde - toujours sur l'Asmedia - ce qui se passe lorsque l'on augmente le nombre de commandes (QD2 et supérieurs), on voit que si le QD2 apporte un tout petit gain (plus particulièrement en écriture) en mode BOT, il est plus net en UASP même si, au-delà, on ne voit pas de gains. Est on au maximum de ce que peut offrir l'interface, ou est on limité par le pilote ? On verra par la suite ce qui se passe sur des blocs de 4 Ko.

Jetons maintenant un œil du côté des performances des contrôleurs Intel, disponibles en mode BOT (classique) et en mode Turbo via l'utilitaire fourni par Asus. Il s'agit, nous l'avions vus dans nos tests de cartes mères précédemment, du contrôleur qui semble le plus efficace. Il obtient les meilleurs performances, y compris sans Turbo. Notez cependant que les gains apportés par le mode Turbo sont énormes : 130 Mo/s en lecture et 80 en écriture. Et comme précédemment, l'ajout du mode QD2 apporte un petit gain dans les deux scénarios, mais rien qui ne soit réellement significatif ou qui évolue au-delà.

En ce qui concerne le contrôleur AMD, pour rappel d'origine NEC/Renasas et intégré aux chipsets du constructeur, ses performances sont un peu en dessous en mode BOT en lecture, et les moins bonnes du comparatif en écriture. Activer le mode Turbo via Xfast USB permet de gagner 70 Mo/s en lecture, mais en écriture les performances deviennent littéralement folkloriques. Ce n'est pas la première fois que l'on voit des pertes de performances via Xfast USB sur les contrôleurs Renasas, il est possible que cela soit lié aux optimisations utilisées par le pilote.

Terminons enfin sur l'EtronTech, ses performances en lecture et en écriture sont assez modestes, surtout qu'il n'est aidé ici par aucun mode Turbo. L'écart en lecture avec l'Intel en mode Turbo va du simple au double tout de même !

Passons maintenant aux tests sur des blocs de 4 Ko pour voir si la hiérarchie évolue !

Opérations sur blocs de 4 Ko

Nous utilisons cette fois ci des blocs de 4 Ko, simulant des transferts effectués sur de petits fichiers. Il s'agit du scénario qui devrait montrer, s'il y en a un, un gain assez net pour les pilotes UASP lorsque l'on fait varier le QD !


Merci d'utiliser un navigateur compatible HTML5 pour voir le graphique.

[ Lecture ]  [ Ecriture ]

Commençons une fois de plus par l'Asmedia avec une première constatation : activer l'UASP, en mode QD1, ralentit légèrement les débits. Au-delà cependant, on commence à voir très clairement l'intérêt de l'UASP : en QD8, les performances sont tout de même 3.7 plus rapides qu'en mode QD1 ! Ici, l'avantage avec le mode bot est particulièrement net et indiscutable en lecture. Notez que notre boitier Thermaltake a refusé catégoriquement de réaliser notre test d'écriture 4 Ko branché en UASP sur le contrôleur Asmedia

Les autres contrôleurs sont dans un mouchoir, mais il faut noter le cas particulier du contrôleur AMD/Renasas qui offre ici des performances largement au dessus du lot en mode Turbo/Xfast USB. Le driver Asrock/Fnet fait des miracles sur les blocs 4 Ko aussi bien en lecture qu'en écriture. Le problème, c'est que ces performances, bien que constantes sur plusieurs tests, sont au dessus de ce que l'on peut obtenir théoriquement avec le Vertex 3 MaxIOPS. Y a-t-il une astuce dans le pilote qui concatène des accès consécutifs pour maximiser les résultats dans les benchs ? Nous restons méfiants sur ce résultat.

Maintenant que nous avons fait le tour des performances sous Windows 7, il est temps de regarder le cas, plus compliqué, de Windows 8 !
Vos réactions

Top articles