Les cartes Raspberry Pi, depuis la version corrigée du premier modèle, reposent sur des cartes microSD pour le stockage. Et même s'il est possible de démarrer sur une clé USB ou un SSD NVMe avec le bon adaptateur, ce type de carte reste la solution de base… malgré des performances parfois très faibles. Pour améliorer ce point, les créateurs viennent de mettre en place deux choses : une optimisation au niveau de l'OS et des cartes microSD vendues sous la marque Raspberry Pi, avec les optimisations en question.
Commençons par les optimisations. Les cartes microSD reposent au départ sur une interface assez lente avec des accès aléatoires très lents. La carte Raspberry Pi 5 peut travailler en mode SDR104 qui — comme son nom l'indique — peut atteindre 104 Mo/s1. Mais les accès aléatoires restent assez lents, surtout comparativement à un SSD moderne. Une carte classique peut atteindre des débits de l'ordre de 7 Mo/s en lecture aléatoire et de 4 Mo/s en écriture aléatoire, quand un SSD NVMe peut atteindre 20x plus. Ce n'est pas anodin car les accès en question peuvent réduire les performances, même pour des usages basiques : des débits faibles peuvent amener des ralentissements très visibles pendant une séance de surf ou même en lisant une vidéo en streaming.
Il existe une solution simple : les cartes microSD Express. Elles remplacent l'interface d'origine par du PCI-Express et du NVMe, comme s'il s'agissait d'un SSD. Mais en attendant (peut-être) le Raspberry Pi 6, le choix a été fait d'activer le CQHCI (Command Queueing Host Controller Interface). C'est une technologie dérivée de ce qui existe dans les SSD et les disques durs, et qui permet de créer une file d'attente pour les commandes. Dans une carte classique, chaque commande est exécutée séquentiellement : une demande implique l'attente d'une réponse de la carte, ce qui peut réduire les performances.
Le CQHCI permet la création d'une file d'attente qui peut être réorganisée par le contrôleur de la carte pour optimiser les résultats et fournir le plus rapidement possible un résultat. Le CQHCI nécessite trois choses : un lecteur compatible (c'est le cas de celui intégré dans le système sur puce), un système d'exploitation compatible — c'est le cas de GNU/Linux depuis cette année — et une carte compatible. C'est ce point qui pose peut-être le plus de problèmes : la technologie est relativement récente et peu utilisée, donc la mise en place dans les cartes peut contenir des bugs.
Des cartes adaptées
Pour éviter les bugs, le choix a été fait de proposer des cartes dédiées. Elles ont une capacité de 32 Go (9,6 €), 64 Go (12,6 €) ou 128 Go. Ce sont des cartes compatibles avec le CQHCI mais aussi bardées de certifications. On retrouve de l'UHS-1 (104 Mo/s), un logo Class 10 (10 Mo/s en écriture au moins), V30 (30 Mo/s au moins), U3 (30 Mo/s au moins) et A2. C'est le point le plus important : les cartes doivent fournir au moins 4 000 IOPS (16 Mo/s) en lecture et 2 000 IOPS (8 Mo/s) en écriture dans des conditions précises. Compte tenu des performances annoncées, les cartes se placent assez bien sur le plan tarifaire : une carte Sandisk Extreme avec les mêmes certifications vaut 19 € dans sa version 64 Go.
Il faut tout de même noter que si les nouvelles cartes doivent offrir de bonnes performances et être au-delà d'une carte lambda, il s'agit tout de même de simples cartes microSD un peu améliorées. Si vous avez vraiment besoin de performances sur un Raspberry Pi 5, le M.2 HAT+ couplé à un SSD M.2 NVMe offrira de bien meilleurs résultats, même si le prix n'est pas le même.
Test du M.2 HAT+, un SSD NVMe dans votre Raspberry Pi 5
-
Les normes UHS-II et -III peuvent atteindre 312 Mo/s et 624 Mo/s mais les cartes et les appareils compatibles sont rares. ↩︎