Quest-ce quune barrière de mémoire ?

Historiquement, les processeurs étaient des machines parfaitement séquentielles. C'est très logique et facile à comprendre, mais cela peut être un problème de performances. Au fil des ans, de nombreux ajustements ingénieux ont été apportés aux conceptions de processeurs pour extraire autant de performances que possible des tranches de silicium. L'une des plus intéressantes, cependant, est l'exécution dans le désordre. Dans les processeurs d'exécution dans le désordre, les instructions n'ont pas nécessairement besoin d'être exécutées dans l'ordre dans lequel elles sont émises.

Bloquer l'ordre

Le principal problème de performances rencontré par un processeur dans l'ordre s'appelle un décrochage du pipeline. Cela se produit lorsqu'une instruction dépend d'une mémoire, mais que cette mémoire n'est pas directement disponible dans un registre. Dans ce cas, le CPU doit trouver cette valeur en mémoire. Le cache du processeur est vérifié en premier car il s'agit du niveau de mémoire le plus rapide. Si la valeur n'est pas là, la RAM système est vérifiée. Pendant ce temps, le processeur doit rester inactif, car l'instruction dépendante de la mémoire doit être terminée dans l'ordre avant les instructions suivantes.

L'impact sur les performances d'un blocage de pipeline n'est peut-être pas si grave, mais il peut également être relativement grave. Par exemple, le cache L1 peut généralement renvoyer un résultat de l'ordre de grandeur de 5 cycles CPU. Le cache L2 peut prendre 20 cycles, L3 environ 200 cycles et la RAM système environ 400 cycles. Étant donné qu'un processeur peut fonctionner à environ 5 GHz, soit 5 milliards de cycles d'horloge par seconde, même 400 cycles ne sont pas si mauvais (0,000008%). Mais si vous avez de nombreuses instructions nécessitant de référencer des données plus bas dans les niveaux de cache, l'effet cumulatif peut entraîner un ralentissement notable.

Exécution dans le désordre et changement de nom de registre

L'exécution dans le désordre est une technique qui permet au planificateur de réorganiser les instructions dans sa file d'attente. Grâce à cette réorganisation, il peut choisir de donner la priorité à des threads spécifiques par rapport aux autres. Il peut également repousser les instructions dans la file d'attente lorsqu'elles ont une dépendance de données qui n'a pas encore été satisfaite. Cela évite autant que possible les décrochages de pipeline, minimisant les cycles d'inactivité.

L'exécution dans le désordre nécessite une fonctionnalité appelée renommage de registre. La CPU peut accéder aux données contenues dans les registres en un seul cycle. Les registres sont utilisés pour stocker les données en cours de lecture et d'écriture. Cependant, il est essentiel de s'assurer que l'ordinateur dans son ensemble voit tout ce qui se passe dans l'ordre logique, et non dans l'ordre désordonné et optimisé du cycle CPU. Pour permettre cela, les CPU ont beaucoup plus de registres logiques que l'architecture CPU n'en demande.

Les données qui doivent être écrites, mais qui ont une instruction "précédente" qui n'a pas encore été terminée, sont placées dans un registre de maintien. Ces données ne sont pas transférées vers une autre caisse une fois la commande réglée. Au lieu de cela, le nom du registre d'attente est remplacé par celui du registre dans lequel il devrait se trouver. Cela revient un peu à préparer un dessert avant le plat principal mais à le conserver ensuite au réfrigérateur jusqu'au moment de le servir.

Ces registres logiques sont entièrement non adressés. Le CPU ne peut vraiment adresser que les registres logiques qui partagent actuellement le nom des registres architecturaux. Cela dit, la CPU en est également suffisamment consciente pour que si d'autres instructions réordonnées reposent sur les données du registre de maintien logique, elles peuvent les utiliser plutôt que les données "obsolètes" du registre architectural à ce moment empirique particulier.

Barrières de la mémoire

Une barrière mémoire - également appelée instruction membar, barrière mémoire ou clôture - est une instruction en code informatique. Il permet à un programmeur d'appliquer une contrainte d'ordre sur les opérations de mémoire émises avant et après la barrière mémoire. La barrière de mémoire demande au planificateur de CPU de s'assurer que toutes les instructions sont traitées avant toute instruction après la barrière. Ceci est fait pour s'assurer que les opérations importantes sont effectuées dans le bon ordre.

Généralement, sur les ordinateurs modernes, cela ne devrait pas être nécessaire. L'exécution dans le désordre et le changement de nom de registre sont des domaines bien établis et matures. Néanmoins, une barrière mémoire peut être utile pour les processeurs plus anciens, moins sophistiqués, en panne ou utilisés dans des opérations de mémoire critiques.

Les barrières de mémoire peuvent avoir un impact négatif sur les performances. En effet, ils empêchent activement le planificateur de la CPU d'optimiser des parties spécifiques du flux d'instructions. Cela augmente le risque de blocage du pipeline.

Conclusion

Une barrière mémoire est une instruction qui assure une contrainte d'ordre sur les opérations mémoire. Ceci est important car les processeurs d'exécution dans le désordre peuvent réorganiser des instructions spécifiques. Bien que le renommage du registre soit une méthode bien établie pour garantir l'intégrité de la mémoire dans cet environnement, il peut être utile de s'en assurer manuellement.

La barrière de mémoire oblige le planificateur de CPU à s'assurer que les instructions sont terminées avant toute instruction après la barrière. Cela empêche les opérations de mémoire d'être réordonnées. Cela empêche également le processeur d'optimiser le flux d'instructions, ce qui peut avoir un impact sur les performances.



Leave a Comment

Fix Always on Display ne fonctionne pas sur Galaxy Watch

Fix Always on Display ne fonctionne pas sur Galaxy Watch

Pour résoudre les problèmes de Always on Display sur Samsung Galaxy Watch, désactivez le mode d

La mémoire du Chromebook peut-elle être mise à niveau ?

La mémoire du Chromebook peut-elle être mise à niveau ?

Découvrez si la mémoire du Chromebook peut être mise à niveau et comment optimiser ses performances avec la gestion de la RAM.

Comment numériser sur Canon MX492

Comment numériser sur Canon MX492

Apprenez à numériser à partir de limprimante et du scanner multifonctions Canon MX492.

Principes de base de limpression 3D : astuces pour lisser les impressions PLA

Principes de base de limpression 3D : astuces pour lisser les impressions PLA

Vous avez du mal à lisser les impressions PLA ? Ce guide convivial pour les débutants vous montrera comment vous pouvez le faire facilement avec des méthodes efficaces.

Correction dune erreur Chromebook lors de la configuration de limprimante

Correction dune erreur Chromebook lors de la configuration de limprimante

Si votre Chromebook indique qu

Quest-ce que le TDP ?

Quest-ce que le TDP ?

Découvrez ce qu

Comment réinitialiser la clé Amazon Fire TV aux paramètres dusine

Comment réinitialiser la clé Amazon Fire TV aux paramètres dusine

Découvrez comment effectuer une <strong>réinitialisation d

Comment utiliser Spotify dans le nouveau Garmin Venu

Comment utiliser Spotify dans le nouveau Garmin Venu

Découvrez comment connecter votre montre Garmin Venu à Spotify et profitez de vos playlists préférées tout en restant actif !

Comment utiliser Samsung Flow

Comment utiliser Samsung Flow

Découvrez comment utiliser Samsung Flow pour connecter votre smartphone Samsung à votre PC et bénéficier de fonctionnalités avancées telles que le partage de fichiers et la synchronisation des notifications.

Comment faire une capture décran sur un ordinateur portable Chromebook

Comment faire une capture décran sur un ordinateur portable Chromebook

Découvrez comment faire une capture d