Thunderbolt : la longueur de la chaîne influence les performances

Le logo Thunderbolt

Le Thunderbolt, la technologie d’Intel portée par Apple, a une fonction souvent mise en avant : la possibilité de chaîner les périphériques. Comme en FireWire, le fonctionnement est simple : certains périphériques ont deux connecteurs Thunderbolt (ce n’est pas généralisé) et il est possible de chaîner les périphériques. Il y a quelques limites : on peut installer six périphériques au maximum et les écrans DisplayPort doivent être placés en fin de chaîne.

Et les performances ?

Nous avons voulu mesurer une chose précise : l’impact de la longueur de la chaîne sur les performances des périphériques. Techniquement, le bus Thunderbolt est en simplifiant un bus PCI-Express 1.1 avec quatre lignes (PCI-Express 2.0 dans le cas du Thunderbolt 2), avec un peu de latence au niveau des accès. Les valeurs typiques sont 6 microsecondes pour accéder au premier périphérique de la chaîne et ensuite environ 4,8 microsecondes pour chaque appareil dans cette dernière. C’est un problème pour les périphériques de stockage, qui sont généralement incapables de cacher totalement cette latence.

Pour le test, nous avons utilisé un MacBook Air 2012, équipé d’un contrôleur Thunderbolt classique (10 gigabits/s), un SSD SATA rapide (un Samsung 840 Pro) et six périphériques Thunderbolt. Nous avons installer une station CalDigit, un LaCie eSATA hub, un LaCie Little Big Disk, deux Seagate GoFlex Desk et un Seagate GoFlex. Ce dernier n’étant équipé que d’un seul connecteur Thunderbolt, il a été systématiquement placé en fin de chaîne.

Nous avons ensuite mesuré les débits du SSD en augmentant au fur et à mesure la longueur de la chaîne. Quand le SSD est placé en début de chaîne, il atteint environ 350 Mo/s en écriture et 390 Mo/s en lecture, la limite du contrôleur SATA intégré dans le boîtier. Plus on avance, plus le débit en écriture diminue : 293 Mo/s, 215 Mo/s (etc.) avant d’atteindre seulement 143 Mo/s en écriture quand le SSD est placé en sixième position. Pendant les tests, les différents périphériques de la chaîne étaient évidemment désactivés pour éviter qu’ils ne faussent les résultats. Au niveau de la lecture, les performances ne bougent pas : on reste aux alentours de 390 Mo/s quelle que soit la position.

Débit en écriture

En théorie, il est possible de régler le problème en augmentant la taille des buffers pour les commandes SATA : Sonnet explique que la majorité des contrôleurs utilisent un buffer de 8 commandes, qui est trop petit pour cacher la latence sur le bus, mais qu’un buffer de 16 ou 32 commandes permet de régler le souci. Certaines cartes du constructeur utilisent cette technique, et nous testerons dès que possible une carte de ce type.

Lors des tests, nous avons aussi essayé de saturer le bus en utilisant plusieurs SSD en RAID0 et la limite du Thunderbolt de première génération, sur un seul bus, semble être d’environ 800 Mo/s, ce qui est assez loin de la valeur théorique maximale de 1 Go/s.

En conclusion, si vous utilisez des périphériques Thunderbolt et que vous avez besoin de performances, attention à la position dans la chaîne. Sur les ordinateurs équipés de plusieurs connecteurs (ou de plusieurs bus indépendants), il est donc préférable de connecter les périphériques de stockage en début de chaîne quand c’est possible.