Pages vues depuis 25/07/2007 : 28 401 470
H. "geennaam" Kanning vient de mettre à disposition un tout nouveau pilote permettant le support des disques au format NVMe.
Bien entendu, puisqu'aucun système permettant de faire fonctionner AmigaOS 4.1 n'est équipé d'un port NVMe natif, il faudra passer par un adapateur PCIe. Voir plus bas les explications.
Télécharger le pilote NVMe 53.1
Questions réponses de l'auteur :
Qu'est ce que le format NVMe :
NVMe signifie Non-Volatile Memory express. Il s'agit principalement d'un protocole de transfert d'un périphérique de masse.
Contrairement au SATA, le format NVMe est prévu dès l'origine pour des disques à mémoire flash. Il n'y a pas de contrôleur de support séparé. A la place, un SSD NVMe est directement connecté au bus PCIe au travers d'un slot M.2.
L'interface PCIe et le ptrotocole NVMe offrent une bande passante et un nombre d'IOps qui vont bien au-délà ce que peut fournir une interface SATA. Cette bande passante élevée est rendue possible grâce au fait que les disques NVMe se connectent aux slots M.2 dotés de 4 lignes PCIe. Au moment d'écrire ces lignes, les premiers disques PCIe 5.0 comment à arriver. Ces disques ont une vitesse maximum théorique de 16Go/s alors que les disques actuels ne dépassent pas les 10Go/s.
A terme, les SSD NVMe vont remplacer les SSD SATA en tant que standard.
Comment relier un NVMe à nos systèmes NG :
Aucun de nos ordinateurs fonctionnant sous AmigaOS 4.1 ne contient de port NVMe sur leurs cartes mères. Mais puisqu'un slot NVMe M.2 est simplement un slot PCIe 4x dans un format différent, il suffit d'utiliser un simple adaptateur très facilement trouvable.
Ces adaptateurs sont disponibles au format PCIe 1x ou 4x. Ne pas utiliser d'adaptateur contenant plusieurs slots M.2, il ne fonctionnera pas.
L'AmigaOne X5000 a à la fois un port PCIe 1x et un port 4x disponibles mais il y aura des limitations :
- Le port PCIe 4x est bloqué si l'on utilise une carte graphique ayant besoin d'un double slot. Mais avec un câble d'extension PCIe, on peut controurner le problème.
- Tous les slots PCIe, à l'exception du 16x sur lequel la carte graphique est connectée, sont reliés à un switch PCIe, ce qui cause une certaine latence.
- Les slots PCIe sont limités à la norme 2.0, ce qui signifie que la vitesse maximum possible sera de 500Mo/s en 1x ou 2 Go/s en 4x. Cela sera de toute façon plus rapide que les ports SATA 2.0 du X5000 (300Mo/s maximum).
Quel SSD NVMe fonctionne avec ce pilote :
Ce pilote devrait fonctionner avec n'importe quel disque NVMe. Il a été développé dans le respect des dernières spécifications NVMe (2.0c).
Un grand nombre de caractéristiques ne sont pas encore implémentées, comme le Host Memory Buffer pour les disques dépourvus de mémoire cache. Mais vu les limites de nos bus systèmes, je doute que cela impacte réellement les performances.
Pour le moment, le pilote a été testé sur X5000 dans un slot PCIe 4x avec ces modèles :
- Samsung 970 EVO 1To
- WD Black SN770 1To
-----------------------------------------------------------------------
Installation :
Copier "nvme.device" dans sys:kickstart/ et ajouter la ligne "MODULE Kickstart/nvme.device" au fichier kicklayout.
Vous pouvez aussi l'utiliser d'une autre manière : copier nvme.device" dans DEVS: et monter les partitions à la main avec sys:system/Mounter (ne pas oublier les réglages ToolType).
-----------------------------------------------------------------------
FAQ (créée par geennaam lui-même vu que c'est la première version du pilote) :
Q: Ouaiiis !! Je vais enfin atteindre des Go/s en vitesse de transfert, n'est pas ?
A: Euh, non. Le format NVMe est prévu pour les échanges "multihreadés" et en flux continu. En gros, pour faire du "streaming" : cela prendra un petit moment pour la mise en place du transfert mais ensuite le train se met en marche.
Vu que vous risquez surtout d'utiliser NGFS, ce système de fichier n'utilise qu'un seul thread et limite en interne le transfert maximum à 32kb/128kb. Les petits transferts seront impactés en terme de vitesse dans un environnement n'utilisant qu'un seul thread.
Le système de "message port" de l'Amiga est lent et le fait qu'il fut décidé que toutes les versions d'AmigaOS >3.9 doivent faire du "gatekeeping" pour les tranferts non alignés n'aide pas non plus (et c'est peu de le dire).
Au final : la vitesse sera supérieure aux ports SATA en utilisant le même système de fichiers mais n'attendez pas de miracle.
Q: Bon, alors c'est rapide à quel point ?
A: Avec NGFS, à peine plus rapide qu'un disque SATA. SFS2, de son côté, utilise une taille de transfert maximum de 16Mo. J'ai pu mesurer des vitesses de 384Mo/s lors d'un transfert d'un fichier d'1Go entre RAM: et une partition SFS2. On est donc au-delà de la vitesse du SATA mais bien loin du potentiel du NVMe.
Cela peut encore être amélioré un petit peu mais n'attendez pas de miracle.
Q: Je ne vous crois pas, je vais allez jouer avec les réglages de Media Tool Box et modifier les tailles de blocs (blocksize), tampons (buffers), masques (Mask) et transferts maximum (maxtransfer) !
A: Nope, ces réglages sont totalement ignorés sur les systèmes de fichiers PPC. Vous embêtez pas à les changer. Ils ne sont là que pour l'héritage. Tout est décidé par le système de fichier pour vous.
Q: Attendez une minute. Ne dit-on pas que les SSD modernes comme les SSD NVMe doivent passer à des tailles de blocs de 4096 octets au lieu de 512 ?
A: Il s'agit d'une légende urbaine. Les disques NVMe ont besoin a minima de pages mémoire de 4ko. Le disque lui-même peut supporter jusqu'à 64 tailles de blocs différentes. Le disque indiquera lui-même la meilleure taille de blocs qui donnera les meilleurs résultats. Jusqu'ici, mon Samsung 970 EVO ne supporte que 512 octets. Le plus moderne WD black SN770 supporte 512o et 4ko mais est formaté en 512 octets en sortie d'usine. Quoiqu'il en soit, mon pilote indiquera au système de fichiers le type de formatage.
Peut-être que dans une future mise à jour, je fournirai un outil permettant de changer la taille de blocs et reformater le disque avec les nouvelles valeurs. (Notez bien le "peut-être").
Q: Ok, tout cela me semble bien décevant. Mais je devrais pouvoir démarrer depuis ce disque, n'est-ce pas ?
A: Encore faux. Actuellement, aucun de nos systèmes NG ne permet de démarrer depuis un disque NVMe. U-boot en lui-même supporte les NVMe depuis 2017 mais il m'a été confirmé qu'il faudrait totalement réécrire U-Boot pour le X5000 pour ajouter le support. En d'autres termes : jamais.
Q: Ok, très bien mais quel estl'intérêt de ce pilote alors ?
A: La prochaine fois, je me poserai cette question avant d'attaquer le développement.
A faire :
Beaucoup . Comme :
- Un outil de contrôle et de supervision
- HMB pour les disques dépourvus de cache
- Support de plus d'un disque.
- .....
Les commentaires sont la propriété de leurs auteurs. Nous ne sommes pas responsables de leur contenu.