Les joies du PCI-Express, du NVMe et du Thunderbolt

Récemment, je vous parlais d’une carte PCI-Express qui permet de prendre en charge deux SSD PCI-Express (NVMe) et qui fonctionne en Thunderbolt. La carte marche bien, mais c’était un prêt. Et donc pour mon installation personnelle, j’ai acheté une carte Asus Hyper M.2. Mais ça ne fonctionne pas. Explications.

L’idée, c’est de mettre plusieurs SSD PCI-Express NVMe sur un seul emplacement PCI-Express, le tout dans un boîtier Thunderbolt. Ca donne de bonnes performances pour du stockage externe. Mais certaines cartes ne fonctionnent pas en Thunderbolt, parce qu’il existe plusieurs méthodes pour séparer les lignes.

Avec deux SSD M.2

La première est celle de la carte que j’avais testé : un switch PCI-Express (souvent de marque PLX). Il s’agit d’une puce qui va proposer d’un côté une interface PCI-Express complète et de l’autre des liens pour les différents composants. On trouve ce genre de puces dans les cartes haut de gamme (comptez au moins 150 € pour un modèle avec deux emplacements M.2) mais aussi dans les dock Thunderbolt, par exemple. La puce permet pas mal de configurations, en fonction des besoins. Dans un dock Thunderbolt, on peut réserver une ligne à une interface lente (Ethernet, FireWire, etc.), deux lignes à un truc plus rapide (USB 3.0, SATA, etc.), en fonction des besoins. En pratique, la bande passante varie en fonction des choix, parfois c’est fixe, dans d’autres cas partagés, etc. Cette technique fonctionne en Thunderbolt. C’est ce qu’utilisent QNAP ou Synology pour leurs cartes dédiées aux NAS. Le défaut, c’est évidemment le prix et le fait que la puce doit être refroidie.

Une carte HighPoint avec une puce PLX

La seconde se retrouve sur les cartes d’entrée de gamme. Typiquement, on trouve des cartes PCI-Express 16x qui acceptent quatre SSD M.2 pour 50 à 150 €. Genre la Asus Hyper M.2 ou la Asrock Ultra Quad M.2. Pourquoi cette différence de prix ? Parce qu’il n’y a pas de puce pour gérer le PCI-Express. Les cartes se basent sur une technologie qui porte le nom de PCI-Express Bifurcation qui va diviser physiquement les lignes. Dans le cas présent, le système – s’il supporte la technologie – va voir quatre SSD en PCI-Express 4x. Il n’y a pas de partage de la bande passante, chaque SSD est indépendant. Cette solution pose deux problèmes. Premièrement, il faut un système compatible au niveau de l’UEFI et du chipset (ce n’est pas généralisé). Mais – surtout – ça ne fonctionne pas réellement avec du Thunderbolt ou des cartes mères qui réduisent le nombre de lignes. Si vous avez un connecteur physiquement en 16x mais câblé en interne en 4x (le cas du Thunderbolt ou d’une carte mère dotée de deux emplacements avec une compatibilité CrossFire X), ça ne marchera pas. Enfin, plus exactement, ça ne fonctionnera qu’avec un SSD. La Bifurcation, c’est bête et méchant : les quatre premières lignes pour le premier SSD, les quatre suivantes pour le second, etc.

Une carte Asus sans PLX

En Thunderbolt, on ne récupère donc que le premier SSD. Avec un connecteur limité en CrossFire X aussi, tout comme avec les cartes qui partagent un connecteur 16x en deux 8x pour du SLI ou du CrossFire X plus rapide. Ce genre de carte ne fonctionne réellement qu’avec les cartes mères qui disposent de plusieurs emplacements 16x câblés en 16x, ce qui n’est pas le cas le plus courant. Ou alors en mettant les SSD à la place d’une carte graphique, et en limitant le GPU (ou en passant par l’IGP).

Dans mon cas, en Thunderbolt, je n’ai donc pas le choix : soit j’installe un seul SSD, soit je passe par une carte dotée d’un switch PCI-Express, capable de diviser les lignes de façon intelligente. Mais c’est plus cher.