Architecture SoC: comment fonctionnent les processeurs hétérogènes

Architecture SoC

Aujourd'hui, nous avons tous un appareil qui a au moins un SoC comme processeur principal, que ce soit un smartphone, une console de jeux vidéo ou même un PC. Saviez-vous qu'ils ont tous une structure commune entre eux? Dans cet article, nous vous présentons l'architecture commune aux SoC.

Bien qu'ils soient utilisés dans différents appareils, pour différentes applications, ils exécutent différents binaires et il y a des points qui les différencient, tous les SoC ont une architecture commune, ce qui affecte leurs performances et leur nature dans son ensemble.

Qu'est-ce qu'un SoC?

SoC PS5

Aujourd'hui, chaque processeur est un SoC, mais nous appelons SoC ceux qui rassemblent un Processeur et GPU dans le même espace, pour les différencier de ces SoC qui ne servent que de processeurs centraux ou de puces graphiques qui sont encore appelés respectivement CPU et GPU.

Les SoC se retrouvent aujourd'hui dans tous les types d'ordinateurs et présentent l'avantage économique de combiner plusieurs composants sur une même puce. La raison en est que le procédé économise non seulement la fabrication de plusieurs puces en les simplifiant en une seule, mais également les tests correspondants.

Les SoC ne sont donc rien de plus qu'un produit de l'intégration continue des composants grâce à la loi de Moore, dans laquelle petit à petit le nombre de composants sur les cartes mères a été réduit au fur et à mesure de leur intégration les uns dans les autres. Une telle intégration, cependant, a un certain nombre de compromis qui affectent ses performances et rendent une conception basée sur SoC moins performante en utilisant une puce séparée.

Architecture générale d'un SoC

SoC Architecture Générale

Quel que soit le type de SoC dont nous parlons, ils ont tous une série d'éléments en commun en ce qui concerne leur organisation. Que voulons-nous dire par là? L'organisation ou l'architecture est la manière dont les composants d'un processeur sont interconnectés les uns avec les autres au sein d'une puce intégrée.

Dans les SoC, tous les éléments partagent un accès commun à la même mémoire, cela signifie que dans tous les SoC, l'accès à la mémoire se fait via un seul composant. Qui est dans toutes les architectures le Northbridge ou north bridge, qui communique tous les composants du CPU entre eux et avec le RAM mémoire.

Interconnexions

Le Northbridge n'exécute pas vraiment de programmes, mais il organise l'envoi et la réception des données, donc en interne, le SoC traite une grande quantité de données en continu et est la partie la plus importante lors de la conception. un SoC.

Il existe un mythe parmi les utilisateurs selon lequel la création d'un SoC consiste à coller les différentes pièces ensemble. La réalité est très différente puisque l'interconnexion entre les composants nécessite la construction d'une infrastructure d'intercommunication spécifique et différente pour chaque SoC.

Architecture dans un SoC et accès mémoire

ASCII

Dans les SoC, tous les composants partagent l'accès à la mémoire RAM, ce qui pose des problèmes de contention. Qu'est-ce qu'un problème de confinement? C'est lorsque les demandes de mémoire sont si élevées que cela finit par ajouter plus de latence que la normale et ainsi rendre les performances de chaque élément du SoC pires qu'avec chaque élément ayant son propre type de mémoire.

La meilleure façon de remédier à cela est d'utiliser plusieurs canaux de mémoire en même temps, il est habituel pour les PC d'utiliser deux canaux de mémoire par SoC, 4 postes de travail et 8 serveurs. Chaque canal mémoire peut être utilisé par un composant matériel en même temps, mais en raison du grand nombre d'éléments accédant en même temps, cela ne suffit pas.

De plus, la gestion d'une interface mémoire multicanaux complique encore le Northbridge et augmente ainsi la taille de son SoC. C'est pourquoi les SoC pour serveurs ont la plus grande taille, non seulement en raison d'un plus grand nombre de cœurs, mais parce que l'espace plus grand pour le Northbridge leur permet d'ajouter une plus grande complexité face aux interfaces mémoire.

Mémoire cohérente versus mémoire non cohérente

Dans un SoC, bien que l'accès à la mémoire soit unifié au niveau physique, il ne l'est pas au niveau de l'adressage. Lorsque nous disons qu'un composant du SoC est cohérent en termes de mémoire, nous voulons dire qu'ils pointent tous vers les mêmes adresses mémoire et lorsqu'un changement est effectué dans chaque partie de la mémoire RAM, le reste des éléments est conscient.

La cohérence se produit en ce qui concerne le processeur, mais il existe des composants dans le SoC qui peuvent fonctionner sans mécanisme de cohérence. Cela oblige, par rapport à la mémoire externe, une partie est affectée à la partie cohérente et d'autres aux parties non cohérentes. Lorsque le Northbridge du SoC reçoit une demande de mémoire dans un SoC qui a les deux types, il divise l'adressage de la mémoire, de telle sorte que les composants cohérents avec le CPU accèdent à une partie de la mémoire et à d'autres à une autre partie. de la mémoire.

La meilleure façon d'atteindre la cohérence de la mémoire est d'ajouter un niveau de cache supplémentaire, qui ne se trouve pas dans chacun des composants mais dans le Northbridge, un élément dans lequel ils communiquent tous en commun. Cette méthode est courante parmi les SoC de smartphone et est la plus simple à mettre en œuvre pour assurer la cohérence de la mémoire.

Noyade thermique dans les SoC

Architecture SoC ahogamiento termal

Un autre problème des SoC est le fait que les composants sont très proches les uns des autres, ce qui signifie qu'ils peuvent atteindre moins de température que s'ils étaient montés en tant que composants séparés. Cela signifie que les vitesses d'horloge que chaque composant peut atteindre sont inférieures à séparément, ce qui affecte les performances.

Donc, dans un SoC, si vous voulez qu'un composant atteigne la vitesse maximale, il le fait parjure du reste des composants. Même sur les SoC avec des processeurs multicœurs, cela se produit entre différents cœurs, où certaines conceptions permettent à un seul cœur de fonctionner plus rapidement que les autres.

C'est aussi pourquoi de nombreux SoC ont la possibilité de connecter et de déconnecter différentes parties du GPU lorsqu'ils ne sont pas utilisés, mais cela doit être implémenté dans l'architecture du SoC lui-même et donc dans sa conception.