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

Comment cloner un disque dur

Comment cloner un disque dur

À l’ère numérique moderne, où les données constituent un atout précieux, le clonage d’un disque dur sous Windows peut être un processus crucial pour beaucoup. Ce guide complet

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Êtes-vous confronté au message d'erreur lors du démarrage de votre ordinateur indiquant que le pilote WUDFRd n'a pas pu se charger sur votre ordinateur ?

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Rencontrez-vous le code d’erreur 0x0003 de l’expérience NVIDIA GeForce sur votre bureau ? Si oui, lisez le blog pour savoir comment corriger cette erreur rapidement et facilement.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Comment supprimer un GPU dun PC Windows en 2023

Comment supprimer un GPU dun PC Windows en 2023

Avez-vous besoin de retirer le GPU de votre PC ? Rejoignez-moi pour expliquer comment supprimer un GPU de votre PC dans ce guide étape par étape.

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Vous avez acheté un nouveau SSD NVMe M.2 mais vous ne savez pas comment l'installer ? Lisez la suite pour savoir comment installer un SSD NVMe sur un ordinateur portable ou un ordinateur de bureau.

Quest-ce quune bombe logique ?

Quest-ce quune bombe logique ?

Une bombe logique est un incident de sécurité où un attaquant met en place une action différée. Continuez à lire pour en savoir plus.

Quest-ce que Stuxnet ?

Quest-ce que Stuxnet ?

Stuxnet était un ver auto-propagé. Il s'agissait de la première utilisation d'une cyber-arme et du premier malware.

Quest-ce quun hacker éthique ?

Quest-ce quun hacker éthique ?

Un hacker éthique est un hacker qui agit dans les limites de la loi. Continuez à lire pour en savoir plus sur le sujet.

Quest-ce que le chiffrement symétrique ?

Quest-ce que le chiffrement symétrique ?

Il existe de nombreuses parties différentes de la cryptographie. Si vous souhaitez chiffrer certaines données, vous pouvez utiliser deux types d'algorithmes : symétrique