USB 3.0 : xHCI, BOT, UASP, Windows 7 et 8... pas si simple !
Publié le 21/03/2013 par Guillaume Louel
Lancé officiellement en novembre 2008, le standard USB 3.0 est arrivé avec une promesse simple : augmenter les débits de 480 Mbit/s pour l'USB 2.0 à 5 Gbps. En pratique, et comme nous l'avions vus en 2011, les choses sont un peu plus complexes. Les 5 Gbps théoriques reposent sur un encodage de chaque octet sur 10 bits, ce qui réduit à environ 500 Mo/s la vitesse théorique atteignable.
Extrait de la specification USB 3.0 à propos de l'efficacité
Vitesse à laquelle il faut encore soustraire les différents protocoles utilisés pour piloter l'interface en elle-même, pouvant atteindre environ 20%. En soit, cette question n'est pas nouvelle puisque même aujourd'hui, nos cartes mères peinent à dépasser les 35 Mo secondes en lecture en USB 2.0, loin du débit théorique maximal de l'interface.
Malgré tout, les marges de progression par rapport à l'USB 2.0 sont importantes mais comme nous l'avons vus au fil des années (par exemple ici, là, là, ou encore là), s'approcher des 400 Mo/s sur un port reste relativement rare.
Certaines cartes mères peuvent intégrer plusieurs contrôleurs USB 3.0. A gauche les deux premiers ports sont gérés par un contrôleur ASM1042, à droite par le chipset Intel.
Au fil des tests, beaucoup de raisons nous sont venues pour expliquer ces performances, certes elevées pour l'utilisation qu'un tout à chacun peut faire de ces ports, mais médiocres par rapport aux possibilités. L'absence de gestion native sous Windows 7 de l'USB 3.0 est un facteur qui revient souvent, tout comme la qualité des contrôleurs, que l'on parle de ceux de la carte mère ou de ceux intégrés dans les périphériques. Suite à l'arrivée de Windows 8, qui intègre - lui - une gestion native de l'USB 3.0, nous avons voulu revenir sur le sujet et voir si le nouvel OS de Microsoft permet à l'USB 3.0 de tenir toutes ses promesses !
Pour essayer de comprendre un peu mieux, revenons un instant sur la genèse de l'USB 3.0. Le standard a été développé par un consortium d'entreprises informatiques regroupés au sein de l'USB-IF . Parmi les membres, on retrouve en tête Intel et Microsoft, accompagnés d'autres sociétés comme HP, Renasas, ST-Ericsson et Texas Instruments.
La spécification USB 3.0 écrite par les membres de l'USB-IF est un document très complet. Un peu plus de 530 pages qui définissent tout ce qui concerne le standard, du mode de fonctionnement "SuperSpeed" aux protocoles de transferts, en passant par les prises et câbles utilisés. Au-delà du fait d'augmenter les débits théoriques, la spécification introduit d'autres nouveautés. Une des limitations de l'USB 2.0 était son protocole utilisé pour communiquer avec les périphériques de stockage, appelé "Bulk-Only Transport" et souvent abrégé BOT. L'idée de ce mode est d'envoyer des blocks de commande pour initier les communications avec le périphérique, commandes qui doivent recevoir une réponse (ACK) avant de pouvoir envoyer la suivante.
Si ce mode de fonctionnement à l'avantage d'être simple à implémenter (il faut se rappeler que la première version de l'USB date de 1996 !), il n'est plus réellement au gout du jour. En effet, les transactions devant s'exécuter les unes après les autres, le protocole BOT est de facto "mono-thread". Qui plus est, les transactions sont unidirectionnelles, on peut envoyer ou recevoir, mais l'on ne peut pas effectuer les deux en même temps. Impossible également de mettre en queue plusieurs opérations pour gagner du temps. Bref, le mode BOT est singulièrement dépassé, ce qui a valu le développement en simultané d'une autre spécification…
Extrait de la specification USB 3.0 à propos de l'efficacité
Vitesse à laquelle il faut encore soustraire les différents protocoles utilisés pour piloter l'interface en elle-même, pouvant atteindre environ 20%. En soit, cette question n'est pas nouvelle puisque même aujourd'hui, nos cartes mères peinent à dépasser les 35 Mo secondes en lecture en USB 2.0, loin du débit théorique maximal de l'interface.
Malgré tout, les marges de progression par rapport à l'USB 2.0 sont importantes mais comme nous l'avons vus au fil des années (par exemple ici, là, là, ou encore là), s'approcher des 400 Mo/s sur un port reste relativement rare.
Certaines cartes mères peuvent intégrer plusieurs contrôleurs USB 3.0. A gauche les deux premiers ports sont gérés par un contrôleur ASM1042, à droite par le chipset Intel.
Au fil des tests, beaucoup de raisons nous sont venues pour expliquer ces performances, certes elevées pour l'utilisation qu'un tout à chacun peut faire de ces ports, mais médiocres par rapport aux possibilités. L'absence de gestion native sous Windows 7 de l'USB 3.0 est un facteur qui revient souvent, tout comme la qualité des contrôleurs, que l'on parle de ceux de la carte mère ou de ceux intégrés dans les périphériques. Suite à l'arrivée de Windows 8, qui intègre - lui - une gestion native de l'USB 3.0, nous avons voulu revenir sur le sujet et voir si le nouvel OS de Microsoft permet à l'USB 3.0 de tenir toutes ses promesses !
Un standard complet et complexe
Pour essayer de comprendre un peu mieux, revenons un instant sur la genèse de l'USB 3.0. Le standard a été développé par un consortium d'entreprises informatiques regroupés au sein de l'USB-IF . Parmi les membres, on retrouve en tête Intel et Microsoft, accompagnés d'autres sociétés comme HP, Renasas, ST-Ericsson et Texas Instruments.
La spécification USB 3.0 écrite par les membres de l'USB-IF est un document très complet. Un peu plus de 530 pages qui définissent tout ce qui concerne le standard, du mode de fonctionnement "SuperSpeed" aux protocoles de transferts, en passant par les prises et câbles utilisés. Au-delà du fait d'augmenter les débits théoriques, la spécification introduit d'autres nouveautés. Une des limitations de l'USB 2.0 était son protocole utilisé pour communiquer avec les périphériques de stockage, appelé "Bulk-Only Transport" et souvent abrégé BOT. L'idée de ce mode est d'envoyer des blocks de commande pour initier les communications avec le périphérique, commandes qui doivent recevoir une réponse (ACK) avant de pouvoir envoyer la suivante.
Si ce mode de fonctionnement à l'avantage d'être simple à implémenter (il faut se rappeler que la première version de l'USB date de 1996 !), il n'est plus réellement au gout du jour. En effet, les transactions devant s'exécuter les unes après les autres, le protocole BOT est de facto "mono-thread". Qui plus est, les transactions sont unidirectionnelles, on peut envoyer ou recevoir, mais l'on ne peut pas effectuer les deux en même temps. Impossible également de mettre en queue plusieurs opérations pour gagner du temps. Bref, le mode BOT est singulièrement dépassé, ce qui a valu le développement en simultané d'une autre spécification…
D'autres standards complémentaires : UASP, xHCI
Sommaire
Vos réactions
Contenus relatifs
- [+] 03/04: Intel lance la 2ème vague de sa 8èm...
- [+] 14/03: Des failles de sécurité spécifiques...
- [+] 11/01: CES: Thermaltake annonce son Level ...
- [+] 02/10: La spécification de l'USB 3.2 a été...
- [+] 07/08: Quels chipsets pour Cannon Lake ?
- [+] 27/07: L'USB 3.2 double le débit et attein...
- [+] 06/10: Contrôleur USB Type-C/SATA chez VIA
- [+] 29/09: Carte mère Apollo Lake chez Asus
- [+] 05/09: AMD lance les Bristol Ridge desktop...
- [+] 18/04: MAJ : Protocole d'authentification ...