Avant de réaliser un design sur silicium, une des étapes cruciales réside dans la simulation des performances du bouzin, afin de ne pas se lancer directement dans la conception coûteuse d’une puce au résultat trop incertain. Une fois le design théorique réalisé dans ses grandes lignes, des simulateurs RTL prenant en entrée un langage de description matériel bas niveau existent, mais ces derniers sont affreusement lents, si bien que leur principale utilisation est le debugage de morceau de circuits.

 

Du coup, pour estimer convenablement les performances d’une puce — ou dans les cas ou le projet risque de manquer de financement pour arriver jusqu’à l’implémentation physique — des simulateurs dits semi-cycle accurate ont été développés dans la sphère académique, dont ce gem5, un incontournable du secteur. Ce terme indique que la précision du simulateur se situe dans l’ordre de grandeur de la dizaine de cycles par une modélisation poussée des différents blocs logiques du CPU, sans que leur fonctionnement interne soit entièrement simulé. Notez que le prototypage est loin d’être le seul cas d’usage de l’outil, puisque la simulation permet également d’avoir accès à de nombreuses métriques quantifiant la qualité d’exécution du code sur une machine donnée, permettant ainsi d’optimiser toujours plus finement une application à une machine cible.

 

gem5 logo

 

Comme vous l’aurez surement lu dans le titre, l’utilitaire est passé en version 20, et ce depuis... le 21 mai dernier. Pourquoi accuser un tel retard dans le traitement de cette information, alors ? Après 9 années d’existence en tant que gem5 — lui-même issue de la fusion d’un simulateur CPU m5, et un simulateur de mémoire/cache, GEMS — ses principaux contributeurs se sont dit qu’il était temps de refaire le point sur les avancées du projet au moyen d’un papier scientifique.

 

Au fil du temps et des partenariats, gem5 est devenu bien plus qu’un simulateur CPU, avec, ici, une collaboration pour la simulation de GPU AMD sous GCN 3 (Tonga et Fiji)

 

Pour faire le tour des principales fonctionnalités rajoutées depuis sa naissance, citons en vrac le support croissant du RISC-V, ce jeu d’instruction libre qui plait beaucoup ces derniers temps, la possibilité de changer de modèle de simulation à chaud afin de n’utiliser les versions les plus détaillées (et donc les plus lentes) que pour certaines parties ciblées d’un programme, et utiliser les extensions d’accélération matérielle KVM pour le reste. Également, le projet s’est rapproché de certains industriels comme AMD — pour la prise en charge de GPU — ou ARM pour la modélisation fine de l’exécution des processeurs Out-of-Order, un des objectifs principaux du projet. Enfin, le sous-système mémoire a vu de grandes évolutions afin de pouvoir être manuellement configuré via le modèle Ruby, et des statistiques de consommation globales prenant en compte les fonctionnements du type Turbo Boost sont désormais disponibles, cette métrique prenant de plus en plus d’importance avec l’IoT. Si vous êtes réellement intéressés, le mieux reste encore de faire joujou par soi-même afin de se rendre compte de la profondeur du bouzin !

 

 Le simulateur CPU libre orienté recherche se met à jour, l'occasion de refaire le point sur ses principales améliorations. 

Sur le comptoir, au même sujet

 
 

afficher plus de prixAffichez donc moi tout, nom de nom

Plus d'infos avec le comptoir de l'info

Voir plus de news
Les 10 Ragots
   
Les ragots sont actuellement
ouverts à tous, c'est open bar !