Kit Wai Chan - Fotolia

Choisir entre la mémoire flash NAND et la mémoire flash NOR

Il existe deux types de mémoire Flash. Lorsqu’une entreprise conçoit un objet connecté, elle pense spontanément à le doter de mémoire NAND, le plus souvent sous la forme d’un SSD. Mais une mémoire NOR serait sans doute plus efficace.

Cet article est extrait d'un de nos magazines. Téléchargez gratuitement ce numéro de : STORAGE: Storage 36 - Une déferlante de projets pour accélérer le stockage

La mémoire NAND, caractérisée par sa structure d’adressage par blocs et sa haute densité, est devenue dans l’esprit de tout le monde le synonyme de la mémoire Flash (« non volatile »), celle à partir de laquelle sont fabriqués les SSDs et autres petites cartes de stockage, SD ou clés USB. Pour autant, il existe un autre type de mémoire Flash, la mémoire NOR. Sa topologie de conception est différente et, surtout, elle est plus adaptée que la NAND dans certaines applications.

Les puces de mémoire NOR sont bien moins capacitives que celles de NAND, comptez 2 Go par puce NOR, quand une seule puce NAND de génération similaire peut grimper à 1 To. En revanche, les puces NOR sont bien plus rapides et bien plus résistantes. De fait, les mémoires NOR sont plus adaptées à des équipements tous terrains où les traitements en temps réel priment.

Principes de base des circuits NAND et NOR

Les mémoires NAND et NOR ont toutes deux été inventées par le même ingénieur de Toshiba au milieu des années 1980. Pour comprendre les différences et l’appellation des deux variétés, il faut revoir brièvement les principes de base des portes logiques, au cœur de chaque composant électronique.

Schéma de sortie NAND et NOR en réponse à deux entrées binaires. Source : Kurt Marko ©TechTarget
Sortie NAND et NOR en réponse à deux entrées binaires.

NAND et NOR font référence aux fonctions logiques booléennes qui sont respectivement l’inverse de AND et de OR. Une porte logique AND produit un « 1 » uniquement quand les deux chiffres binaires qu’elle reçoit en entrée valent tous les deux « 1 » : « 00 », « 01 » et « 10 » produiront « 0 », tandis que « 11 » produira « 1 ». Une porte logique NAND produit simplement le résultat opposé : « 11 » sera le seul à produire un « 0 », tandis que les trois autres combinaisons produiront « 1 ».

Une porte logique OR produit un « 1 » quand au moins l’un des deux chiffres binaires qu’elle reçoit en entrée est un « 1 » : « 01 », « 10 » et « 11 » produiront un « 1 », tandis que « 00 » produira « 0 ». Une porte logique NOR produit le résultat opposé : seule la combinaison « 00 » produit un « 1 », les trois autres produisent « 0 ».

Ce qu’il faut retenir, c’est que les portes logiques NAND supportent de produire la bonne valeur malgré la présence d’un grand nombre de configurations électroniques. Dans les faits, cela permet de réduire considérablement le nombre de lignes dans le circuit : plusieurs cellules sont montées en séries, sur le substrat de silicium, mais aussi empilées verticalement, pour être activées en même temps (elles forment un groupe dont la taille correspond à un multiple d’un octet, selon la taille de la puce), et seule la cellule qui permet de vérifier la correspondance NAND est lue ou écrite.

Cette faculté exclusive de fonctionner en série signifie que la mémoire flash NAND est souvent 100 fois plus dense que la mémoire Flash NOR.

Le problème de la mémoire Flash NAND est qu’il faut parcourir tout un groupe de transistors avant de trouver celui qui vérifie la condition. Cela crée de la latence et, donc, des ralentissements. À l’inverse, une porte logique NOR doit être sélectionnée directement, ce qui multiplie la quantité de lignes dans la grille de la puce, donc réduit la densité mémoire de celle-ci. En revanche, il n’y a pour ainsi dire pas de latence en lecture. Comptez dans les 61 Mo/s sur une puce NOR, quand une puce NAND de même génération n’atteint que 20,5 Mo/s.

L’écriture des données est une histoire différente, car elle suppose tout un processus électrique d’effacement des cellules avant de pouvoir écrire dessus. Or, dans ce contexte, le système d’activation par groupe de cellules de la NAND est bien plus efficace que celui d’activation individuelle des cellules. Ainsi, une puce NAND sera capable d’écrire des données à la vitesse de 3,2 Mo/s quand une puce NOR de génération similaire sera limitée à… 470 Ko/s.

Le fait de n’activer qu’une cellule sur une puce NOR lors d’une écriture, plutôt que toute une série de cellules sur une puce NAND, fait que la puce NOR s’use moins vite que la puce NAND… proportionnellement à sa taille. Cependant, cet argument entre peu en compte en pratique, puisque la puce NAND a suffisamment de capacité pour enregistrer les données dans de nouvelles cellules à chaque modification d’un contenu, plutôt que réutiliser toujours les mêmes cellules.

À noter qu’interconnecter les cellules via des portes logiques NAND ou NOR ne change rien au fait que ces cellules peuvent contenir plusieurs bits. Il existe des mémoires NOR à cellules MLC au même titre que l’on trouve des mémoires NAND à cellules MLC.

Catégories de produits NOR et NAN

Les différences de caractéristiques et de performances influencent le type d’applications pour lesquelles chaque type de mémoire Flash est le mieux adapté.

 Pour déterminer le type de NAND le mieux adapté à une charge de travail, il faut tenir compte des compromis entre la densité des données et la fiabilité. Par exemple, les dispositifs NAND ayant une densité de stockage plus élevée – un plus grand nombre de bits par cellule, par exemple une NAND QLC a quatre bits par cellule contre seulement un pour une NAND SLC – présenteront généralement une endurance et une robustesse des données moindres.

 Par ailleurs, il faut considérer que tout support basé sur de la NAND intègre nécessairement, en plus de la capacité mémoire, un circuit de contrôle qui gère le niveau d’usure des groupes de cellules, les blocs défectueux et la redondance des données. Ce contrôleur embarqué dans les SSD produit nécessairement de la latence. Et cette latence peut s’amplifier au fil de la carrière d’un SSD.

Tableau des différences entre la flash NAND et la flash NOR
La flash NAND est plus appropriée au stockage en mode blocs et fichiers, tandis que la flash NOR est plus adaptée au stockage et à l’exécution de code.

Les mémoires NOR sont disponibles soit sous la forme de dispositifs à connexion série, soit sous celle de dispositifs à connexion parallèle. Les dispositifs série réduisent le nombre de broches du boîtier en n’exposant que quelques signaux d’E/S – généralement d’un à huit. Ils sont idéaux pour les applications qui nécessitent des lectures rapides et continues. La Flash NOR est couramment utilisée dans des dispositifs dédiés pour charger rapidement l’OS en RAM : ce sont des clients légers, des décodeurs, des imprimantes ou encore des appareils de mesure ou de contrôle de machines-outils dans lesquels on souhaite pouvoir régulièrement mettre à jour le système.

 Les produits NOR avec connexion parallèle transfèrent plusieurs octets à la fois et sont plus adaptés à une lecture directe d’un firmware par le processeur. On les trouve notamment dans les appareils photo, les smartphones ou tout autre équipement embarqué.

 En fin de compte, si vous devez développer un système qui charge un logiciel dédié au démarrage, ou qui nécessite de lire rapidement les données prélevées par un capteur, il est probable qu’une mémoire de stockage de type NOR soit plus adaptée à votre projet que les SSDs ou les cartes SD auxquels vous aviez spontanément pensé.

Cet article, initialement rédigé par Kurt Marko en 2020, a été mis à jour en 2023.

Pour approfondir sur Disques durs, SSD et Unités de stockage