Introduction
Si la norme USB 2.0 était très appréciable lorsqu’elle a été lancée en 2000, ses 480 Mbits/s (60 Mo/s) en débit théorique maximum sont trop faibles pour les standards actuels : lorsque l’on rajoute la latence de traitement, on se retrouve avec des débits réels de l’ordre de 20 à 30 Mo/s. L’USB 3.0 a donc le mérite de rendre le stockage externe à nouveau attractif.
La troisième version de l’USB permet d’atteindre un maximum théorique de 4,8 Gbits/s, soit 10 fois plus qu’en 2.0. Malheureusement pour nous, le marché a été long à prendre conscience de son intérêt : bien que la norme ait été annoncée le 12 novembre 2008, il aura fallu attendre un an pour voir Buffalo Technology proposer les premiers disques durs externes 3.0. De plus, les cartes mères gérant l’USB 3.0 n’étaient pas légion à l’époque.
Presque trois ans plus tard, la situation s’est tout de même nettement améliorée : l’immense majorité des cartes mères actuelles proposent au moins un port USB 3.0 même s’il faut souligner le fait qu’Intel persiste à faire l’impasse sur ses chipsets, X79 y compris.
L’USB 3.0 ayant gagné en maturité, reste donc à voir comment se départagent les contrôleurs les plus courants à l’heure actuelle.
Les contrôleurs
Si les premières cartes mères et cartes filles USB 3.0 s’appuyaient sur le contrôleur NEC PD720200, on trouve maintenant des modèles plus performants comme l’ASMedia ASM10421 et l’Etron EJ168.
Ces deux contrôleurs proposent deux ports USB 3.0 à partir d’une ligne PCIe pour faciliter leur intégration sur les cartes mères.
Du côté d’Intel, il s’agit d’une nécessité étant donné qu’aucun des chipsets compatibles Sandy Bridge pour parler des plus récents ne propose d’USB 3.0 en natif. Ce sera également le cas des futures cartes mères X79 et il faudra donc attendre 2012 pour voir du changement.
Le retard d’Intel est d’autant plus décevant qu’AMD a su évoluer plus vite, même si tout n’est pas rose chez les verts pour autant. Les APU Llano sont par exemple liés à un chipset A75 ou A55, sachant que le second est diminué du côté connectivité : SATA 3 Gbits/s, pas de commutation FIS (Frame Information Structure) et pas d’USB 3.0.
AMD A75 | AMD A55 | |
---|---|---|
Plateforme | Socket FM1 (Lynx desktop) | Socket FM1 (Lynx desktop) |
SATA | 6 ports 6 Gbits/s | 6 ports 3 Gbits/s |
RAID logiciel | 0, 1, 10 | 0, 1, 10 |
Commutation FIS | Oui | Non |
Audio HD | Oui | Oui |
PCIe hors port primaire | 4 lignes PCI Express 2.0 | 4 lignes PCI Express 2.0 |
UMI (connexion à l’APU) | PCIe 4x + DisplayPort | PCIe 4x + DisplayPort |
USB 3.0/2.0/1.1 | 4/10/2 | 0/14/2 |
Contrôleur SD | Oui | Oui |
PCI | Jusqu’à trois ports | Jusqu’à trois ports |
Gestion mSATA | Oui | Oui |
La meilleure configuration USB 3.0 ?
L’USB est une connectique tellement courante que l’on a vite fait d’utiliser tous les ports disponibles, a fortiori dans le cas des configurations multi-GPU où une carte graphique peut bloquer l’accès à un connecteur interne. Ceci peut avoir des répercussions considérables sur les performances : l’USB 2.0 est par exemple limité à 60 Mo/s maximum sur un contrôleur, mais il faut savoir que ce débit est réparti sur tous les ports utilisés. Un seul périphérique n’arrivera pas à saturer toute la bande passante disponible mais à partir de deux ou trois, on peut voir les performances globales en souffrir.
Quand on veut transférer rapidement une quantité importante de données vers une clé ou un disque dur USB, mieux vaut donc éviter d’utiliser d’autres périphériques USB en même temps.
L’approche la plus simple pour contourner le problème reste l’utilisation de plusieurs contrôleurs, ce que l’on fera aujourd’hui grâce à une carte Highpoint RocketU 1144A. Cette dernière propose 4 ports USB 3.0 dont le débit est sensé être optimal vu qu’elle emploie quatre contrôleurs ASMedia ASM1042 reliés à un commutateur PEX8609 : chaque contrôleur est ainsi relié à sa propre ligne PCIe. On arrive ainsi à une limite théorique de 500 Mo/s par port, ce qui reste en-deçà du maximum tel qu’il figure dans les spécifications officielles de l’USB 3.0 à savoir 625 Mo/s.
Comparons maintenant ceci à deux cartes mères Llano. La Gigabyte A75-UD4H et l’Asus F1A75-V Pro gèrent chacune quatre ports USB 3.0 via le FCH (Fusion Controller Hub) de l’A75. En revanche, l’A75-UD4H emploie deux contrôleurs EJ168 pour gérer 4 ports USB 3.0 supplémentaires là où Asus a choisi un seul contrôleur ASM1042 gérant deux ports additionnels. Le recours aux contrôleurs tierce partie n’est pas considéré comme idéal du fait que chaque paire de ports doit partager la bande passante d’une seule ligne PCIe.
Ceci nous amène à plusieurs questions :
- Y a-t-il un contrôleur USB 3.0 qui sort du lot ?
- Dans quelle mesure les goulets d’étranglement existent-ils ? Un périphérique USB voit-il son débit diminuer lorsque l’on en branche un second sur le même contrôleur ?
Pour y voir plus clair, nous avons évalué les performances des contrôleurs USB réunis dans les configurations suivantes :
RocketU 1144A et A75FCH :
- Un périphérique USB 3.0
- Deux périphériques USB 3.0
- Quatre périphériques USB 3.0
EJ168 et ASM1042 :
- Un périphérique USB 3.0
- Deux périphériques USB 3.0
Configuration du test
Composants | |
---|---|
Processeur | AMD A8-3800 (Llano) CPU @ 2,4 GHz (24×100 MHz), GPU @ 600 MHz (400 MHz pour les shaders), quad core, socket FM1, 4 Mo de cache L2, économies d’énergie activées |
Cartes mère | Asus F1A75-V Pro, BIOS 1102 Gigabyte A75-UD4H, BIOS F6 |
DRAM | Kingston Hyper-X 8 Go (2x 4 Go) DDR3-1333 @ DDR3-1333, 1,5 Volt |
Stockage OS | OCZ Vertex 3 240 Go SATA 6Gb/s, firmware 2.06 |
Carte graphique | Palit GeForce GTX 460 1 Go |
Alimentation | Seasonic 760 Watts, 80 PLUS Gold |
Logiciels | |
OS | Windows 7 Ultimate 64-bit |
DirectX | Version 11 |
Pilotes | Graphiques: ForceWare 275.33 RST: 10.5.0.1022 Virtu: 1.1.101 ASMedia: 1.10.0.0 Etron:105 A75: 8.863 |
Benchmarks | |
---|---|
Iometer | v1.1.0 |
Lors du récent comparatif de « clés » USB 3.0, nous avions été satisfaits des performances du Kingston HyperX Max 3.0. Nous en avons réuni quatre pour cet article du fait que les disques durs externes USB 3.0 sont trop lents pour saturer le bus, sachant que l’idée est d’illustrer le pire des cas de figure.
L’USB 3.0 comme 2.0 ne gérant pas le NCQ, les tests ont été effectués avec une seule commande en file d’attente.
Lecture & écriture aléatoire
Dans le domaine du stockage externe, il est très rare de traiter des opérations E/S aléatoires ; le protocole USB ne gérant pas le NCQ, les données sont généralement écrites de manière séquentielle. De ce fait, la lecture de ces données est elle aussi séquentielle.
Cependant, l’écriture séquentielle ne se traduit pas toujours par une lecture séquentielle : le démarrage de Windows 7 à partir d’un périphérique USB implique par exemple de lire beaucoup de petits fichiers répartis sur plusieurs blocs, ce qui n’est pas nécessairement fait en respectant l’ordre dans lequel ces données ont été écrites.
Les performances E/S aléatoires ne sont donc pas vitales pour un périphérique USB mais il faut tout de même s’y pencher. Nous nous concentrons exclusivement sur les fichiers 4 Ko vu qu’il s’agit de la taille la plus fréquente lors des opérations E/S aléatoires.
En lecture comme en écriture, le transfert de fichiers 4 Ko est limité par les performances du périphérique vu qu’un seul Kingston HyperX Max 3.0 évolue entre 10 et 20 Mo/s. Quand bien même on passe à deux périphériques sur l’EJ168 et l’ASM1042, la bande passante du lien PCIe est largement suffisante pour éviter une saturation.
Lecture/écriture séquentielle de fichiers 128 Ko
Après avoir fait bon nombre de relevés à la trace grâce à l’IPEAK d’Intel, nous avons eu la confirmation que les transferts de petits fichiers sont rares lors des opérations séquentielles. L’analyse se porte donc spécifiquement sur les fichiers de 128 Ko vu qu’ils sont particulièrement représentatifs des transferts de fichiers PDF, vidéo et photos vers un périphérique externe.
En lecture comme en écriture séquentielle, un seul Kingston HyperX Max 3.0 évolue à environ 170 Mo/s. Les performances ne souffrent donc pas du passage à deux voir quatre périphériques sur les différents contrôleurs tant qu’il s’agit d’un modèle compatible USB 3.0.
En effet, c’est avec l’USB 2.0 que l’on constate un goulet d’étranglement puisque l’on perd 10 % par rapport à un port USB 3.0 avec un seul HyperX Max 3.0. Les performances avec quatre périphériques montrent que l’on sature complètement la bande passante aux alentours de 43 Mo/s : du fait des latences de traitement, on n’utilise en pratique que 70 % de la bande passante théorique maximale de l’USB 2.0, à savoir 60 Mo/s.
Le contrôleur USB 3.0 intégré à l’A75 domine les débats en affichant une avance moyenne d’environ 14 Mo/s pour chaque périphérique par rapport à la carte contrôleur Highpoint 1144A.
Quelles conséquences en pratique ?
Si nos tests synthétiques font bien apparaitre un échelonnement des performances, on ne peut pas vraiment transposer les résultats dans le cadre d’une utilisation courante : exception faite des clés, la majorité d’entre nous n’a qu’un seul périphérique de stockage USB. Dans ce contexte, le pire des cas de figure reste encore d’envoyer de multiples commandes E/S comme c’est le cas lorsque l’on essaie de copier deux fichiers en même temps. Rappelons que le protocole USB ne gère pas le NCQ, d’où le fait que la file d’attente se limite toujours à une seule commande. Ceci dit, l’OS utilise un tampon mémoire pour répartir les commandes de manière à ce qu’il soit possible d’écrire et lire vers/depuis un périphérique USB en même temps.
En pratique, le débit en écriture se ralentit à chaque fois que l’on ajoute une copie de fichier en simultané, mais le débit de tous les transferts réunis reste égal à ce que l’on constaterait avec une seule opération.
La situation est différente en lecture vu que tout est mis en mémoire tampon, ce qui ne pénalise presque pas les débits. Cette situation devient évidente lorsque l’on lit un fichier tout en faisant une copie en parallèle : grâce à l’action de l’OS, le débit en écriture ne baisse pas vraiment.
Sur ces deux vidéos, nous lisons une copie de Blu-Ray brute (30 Gio) tout en écrivant vers le même périphérique. Le débit en écriture ne baisse pas de façon durable, de même que la lecture vidéo reste fluide. La seule différence entre USB 2.0 et USB 3.0 tient alors au temps nécessaire pour copier le fichier.
Conclusion
La quasi-totalité des cartes mères vendues actuellement proposent des ports USB 3.0 et comme nous avons pu le voir, la saturation du bus n’est pas un souci à court terme vu que le goulet d’étranglement est ailleurs. En effet, il n’y a pas de périphérique USB 3.0 sur le marché capable de dépasser 500 Mo/s en lecture séquentielle, c’est-à-dire la limite des lignes PCIe 1x sur lesquelles les contrôleurs USB 3.0 sont reliés.
Notons cependant que l’absence de problèmes au niveau de l’échelonnement des performances/saturation du bus s’explique par le fait que les plus performants des périphériques de stockage actuels s’appuient sur des SSD SATA 3 Gbits/s. Il faudrait donc quelque chose comme une paire de Vertex 3 120 Go avec un pont SATA vers USB pour voir l’échelonnement des performances souffrir.
Ce cas de figure étant complètement irréaliste, un contrôleur offrant deux ports USB 3.0 sur une carte mère à partir d’une seule ligne PCIe n’est pas réellement moins performant qu’une carte fille embarquant un contrôleur par port USB 3.0. A moyen terme, on n’imagine toujours pas un fabricant proposer un périphérique de stockage externe USB 3.0 s’appuyant sur un SSD dernière génération comme les Crucial M4, OCZ Vertex 3 ou encore Samsung 830 Series pour une simple raison de coût. Quand on achète un SSD récent c’est généralement pour en tirer le maximum, c’est-à-dire en tant que périphérique de stockage système sur un port SATA 6 Gbits/s.
C’est en fait Windows 8 qui va départager les contrôleurs USB 3.0 vu que Microsoft compte proposer un support logiciel natif de l’USB Attached SCSI (UAS) : ceci permettrait la gestion du NCQ sur l’USB et donc de files d’attentes contenant plusieurs commandes. Les conditions seraient alors réunies pour voir des goulets d’étranglement mais on est en fait encore loin d’arriver à cette situation.
Une simple mise à jour de l’OS ne suffira pas à gérer le NCQ via l’USB, sachant qu’en plus du pilote au niveau de l’OS, il faudra également un contrôleur et un périphérique compatibles. ASMedia a d’ores et déjà fait savoir que l’ASM1042 serait compatible UAS, mais nous ne savons pas ce qu’il en est pour l’Etron EJ168 ni pour l’A75 chez AMD. La situation est encore plus obscure au niveau des périphériques puisqu’aucun constructeur n’a encore mis en avant la compatibilité UAS. En attendant, il faut surtout retenir qu’un contrôleur USB 3.0 est finalement aussi bon qu’un autre avec l’ensemble des périphériques actuels, contrairement aux clés.