Organisation de la mémoire RAM: UMA, NUMA et différences

Les systèmes informatiques peuvent être classés selon la manière dont l'organisation de leur RAM la mémoire est conçue, et donc dans deux groupes différents: système UMA et systèmes NUMA. Nous expliquons les différences fondamentales entre ces manières d'organiser un système selon l'organisation de la mémoire et quels sont les avantages et les inconvénients de chaque type.

Lors de la conception d'un système, l'une des premières choses qui est placée sur la table de conception est la façon dont la RAM sera organisée, car cela indiquera non seulement à quoi ressemblera l'architecture du système, mais aussi ses performances, son coût de fabrication et ses extensibilité.

Organisation de la mémoire RAM

Organisation de la mémoire RAM: UMA

Organisation Memoria UMA

UMA est l'acronyme de Uniform Memory Access et fait référence à tous les systèmes où la RAM est un seul puits partagé en termes d'accès par le Processeur et le reste des processeurs du système. Ce type de configuration est surtout utilisé dans les SoC d'aujourd'hui, où les différents composants partagent l'accès à la mémoire.

Le système UMA est également celui utilisé dans les consoles de jeux vidéo, en général c'est le système de mémoire utilisé dans chaque système où ses composants sont montés sur une carte commune, où le routage de deux types différents de puits de mémoire est une complication sur les chemins. et les lignes de communication qui traversent la plaque.

C'est donc le moyen le plus simple de construire un système de mémoire dans n'importe quel type d'ordinateur, mais cela entraîne une série de problèmes tels que le fait que le partage de l'accès mémoire finit par créer un effet de contention, dans lequel il est créé une «liste d'attente ”Pour accéder aux données, ce qui ne peut être allégé qu'avec l'utilisation de types de mémoire RAM avec différents canaux d'accès.

Organisation de la mémoire RAM: NUMA

Organisation mémoire NUMA

L'organisation de la mémoire NUMA ou Non-Uniform Memory Access. Désigne les systèmes dans lesquels plusieurs puits de mémoire différents sont utilisés dans le même système. C'est le cas du PC où, par exemple, on peut voir comment les cartes graphiques ont leur propre mémoire différente de la RAM principale du système.

Les systèmes NUMA ne souffrent pas du problème de contention dans l'accès mémoire des systèmes UMA, mais en fait, afin de communiquer les différents composants du système entre eux, il en résulte un système très complexe. La raison en est que chacun des composants doit avoir des mécanismes d'accès à la mémoire RAM principale pour communiquer avec le CPU, par exemple les GPU ont des unités DMA qui leur permettent d'accéder à la RAM principale du système et de faire des copies de certaines données à partir de RAM à VRAM.

Ce type d'organisation de la mémoire est utilisé lorsque nous voulons créer un système avec des capacités d'extension, pour eux, il est nécessaire de créer ce que l'on appelle des ports d'extension, qui sont utilisés pour la communication du CPU du système avec les systèmes de mémoire RAM du système. chaque composant faisant partie du système.

Adressage vs organisation physique

RAM CPU

L'un des idéaux du PC est le système de mémoire totalement cohérent, dans lequel l'adressage des différents composants qu'il contient est commun à tous. Cela signifie que si nous modifions l'adresse, disons, par exemple, F4. Ensuite, tous les composants lors du passage à l'adresse mémoire F4, tout autre composant du PC devrait se référer à la même adresse mémoire.

On pourrait penser d'emblée que puisque les systèmes UMA ont toujours leur mémoire partagée au niveau physique, il en sera de même au niveau de l'adressage, puisque nous parlons du même pool de mémoire au niveau physique. La réalité est bien différente, car il faut que les différents composants soient cohérents en termes de mémoire, ce qui signifie qu'en prenant l'exemple précédent si on écrit la valeur 30 dans l'adresse F4 alors tous les composants savent qu'il y a une valeur 30 là.

CoreLink-Cache-Réseau

Le moyen pour que tous les composants d'un SoC soient totalement cohérents n'est donc pas d'utiliser le même contrôleur mémoire, mais d'ajouter un dernier niveau de cache juste avant ledit contrôleur, qui serait au-delà du CPU, le GPU. et d'autres composants et seraient considérés par tous comme un dernier niveau de cache.

Le fait d'ajouter un cache de dernier niveau avant le contrôleur mémoire est typique des systèmes PostPC, puisque tous ont été conçus pour les SoC depuis le début, il n'y a pas de programmes qui font des copies de données d'un espace à un autre. Dans PC, cependant, ce n'est pas courant et bien que Intel et AMD lancent des SoC depuis des années où tous les composants sont unifiés dans une seule puce, l'accès aux différents éléments du SoC ne l'est pas et des parties de la RAM sont isolées exclusivement pour un composant spécifique. Par exemple, lorsque nous avons un graphique intégré et que nous attribuons une quantité de mémoire audit graphique, ce que nous faisons, c'est dire au CPU que son espace ne peut pas le toucher, car il est hors de son allocation.