Contrôleur CPU, SSD et Flash, comment les informations se déplacent sur PC

Contrôleur CPU, SSD et Flash

Dans tous les SSD il y a une puce centrale qui se charge de communiquer les puces NVMe avec le reste des composants du PC, c'est le contrôleur flash qui se trouve dans chacun SSD unité, qu'il s'agisse d'une unité M.2, d'un disque SSD au format 2.5 pouces ou d'un SSD externe. Mais comment fonctionne ce matériel informatique ? On vous l'explique.

La mémoire flash est ce que nous appelons non volatile RAM ou NVRAM, c'est pourquoi l'accès à ce type de mémoire se fait avec une interface très similaire, sinon presque la même qu'une interface mémoire classique. Cependant, du fait de la nature et de l'emplacement de la mémoire Flash NAND de type NVMe dans le hardware du SSD, son fonctionnement est totalement différent des interfaces avec mémoire RAM classique.

Qu'est-ce qu'un contrôleur flash ?

Contrôleur Flash

Un contrôleur flash est la puce centrale présente dans chaque lecteur SSD, qui doit exécuter une série de fonctions essentielles à son fonctionnement. Il s'agit d'adresser et de copier des données de la mémoire flash SSD vers la RAM système ou la VRAM. Ci-dessous, nous décrivons la raison et le fonctionnement de ces deux processus et la manière dont le contrôleur flash les exécute.

Oficina Correos

Pour comprendre l'utilité du contrôleur flash dans le SSD, il est préférable de faire une comparaison dans laquelle nous avons deux bureaux de poste, un étatique qui a toutes les adresses des villes du pays mais pas de manière conventionnelle. Pour mieux le comprendre, pensez que chaque adresse dans notre exemple n'est pas une rue avec un numéro, mais une boîte postale ou, en d'autres termes, un numéro. Et le deuxième bureau de poste ? Eh bien, cela fonctionne à l'échelle d'un endroit beaucoup plus petit, comme une province ou une petite ville.

Puisque chaque bureau va attribuer toutes les adresses de la première à la dernière en fonction du nombre d'adresses dont il dispose, alors on constate que la numérotation de chaque adresse attribuée par chacun des bureaux de poste ne correspondra pas entre elles. Eh bien, le premier bureau de poste est l'ensemble des unités de gestion de mémoire ou MMU qui génèrent les adresses virtuelles pour accéder aux données en mémoire physique, mais le CPU doit avoir un moyen d'accéder au-delà de la RAM et c'est pourquoi son adressage inclut non seulement toutes les adresses mémoire qui se trouvent dans la RAM système mais aussi au-delà.

Sur le plan physique, la RAM traditionnelle et non volatile, ce que nous appelons la mémoire flash, ont adressage différent car leur interface commence à compter sur elle-même et non globalement. Par conséquent, l'une des tâches du contrôleur Flash est le transfert des adresses mémoire afin que le CPU ou tout autre processeur puisse y accéder.

Traduction d'adresse en FLASH

Traslado direcciones Controlador Flash Chaque contrôleur flash a une mémoire RAM attribuée , sauf en DRAM-Less où il utilise la RAM du système avec la latence ajoutée et la perte de performances que cela implique. Mais, contrairement à ce que l'on peut conclure à l'œil nu, cette mémoire sert non seulement de tampon de données intermédiaire, mais sert également au transfert d'adresses.

C'est-à-dire que la mémoire RAM attribuée au contrôleur flash stocke les adresses envoyées par la CPU, la table de transfert et grâce à une opération simple, génère les adresses de mémoire physique qui lui permettent d'accéder aux données à l'intérieur des puces NVMe composées de cellules Flash NAND, soit pour les lire, soit pour les écrire. Et il faut tenir compte du fait que cette table deviendra de plus en plus grande au fur et à mesure que le SSD aura de la mémoire à l'intérieur, d'où la nécessité d'une puce mémoire RAM conventionnelle.

Nous pouvons le voir par exemple dans l'unité SSD intégrée de PlayStation 5, où l'on peut voir une petite puce mémoire accompagnant les puces NVMe, ce qui est courant dans la grande majorité des unités SSD, sauf, comme nous l'avons mentionné précédemment, nous parlons d'un lecteur SSD sans DRAM.

Copie de données de Flash vers RAM ou VRAMContrôleur Flash movimiento datos

La mémoire flash est meilleure qu'un disque dur classique car elle n'hérite pas des problèmes d'accès des lecteurs de disque classiques. Comme sa vitesse de transfert élevée. Malgré cet avantage par rapport aux disques durs, ce n'est pas une mémoire idéale pour que le CPU puisse fonctionner avec lui directement, encore moins un GPU . Si pour les mémoires DDR classiques avec une bande passante plus élevée, nous avons besoin d'utiliser des caches pour pallier le manque de vitesse de celle-ci, dans le cas des mémoires flash, c'est pire.

C'est pourquoi le contrôleur flash doit copier les données à la RAM pour que le CPU puisse y accéder, mais il y a un problème d'entrée, pour des raisons de sécurité la RAM est divisée en deux espaces différents. Une à laquelle les applications peuvent accéder et une autre qui est exclusivement accessible par le système d'exploitation et où les programmes ne peuvent pas accéder. En vertu de cette prémisse, comment le contrôleur flash sait-il où copier les données ? Eh bien, une partie de la RAM est prise comme tampon intermédiaire et les données y sont copiées. C'est le CPU du système lui-même, s'il n'y a pas d'accélérateur en charge de cette tâche, celui qui serait chargé de vérifier les données dans le buffer et de les copier dans la partie correspondante de la RAM.

En ce qui concerne la VRAM, selon le type de GPU et d'API que nous utilisons, dans un GPU avec un support complet avec DX12 Ultimate, le GPU lui-même est celui qui peut prendre les données du SSD, dans un sans ledit support, il nécessite la participation du CPU, qui est un double travail car vous devez ensuite les copier de la RAM vers la VRAM en appelant les mécanismes de copie des données CPU et GPU.