[17] | 1 | %============================================================================== |
---|
| 2 | \section{Contexte et Sujet} |
---|
| 3 | %============================================================================== |
---|
| 4 | |
---|
[19] | 5 | % reviewed 0.2 |
---|
| 6 | % [Contexte : La simulation c'est bien mais c'est lent] |
---|
[17] | 7 | \begin{frame} \FT{Contexte} |
---|
| 8 | \BI |
---|
| 9 | \o La simulation de processeurs a acquis une importance capitale pour le |
---|
| 10 | développement de compilateurs et d'applications, pour bon nombre de raisons : |
---|
| 11 | \BI |
---|
[19] | 12 | \o Il n'est pas nécessaire d'avoir à sa disposition le processeur |
---|
[17] | 13 | \o Elle permet un diagnostic spécifique à un processeur des performances |
---|
| 14 | d'un programme |
---|
| 15 | \EI |
---|
| 16 | \o Les simulateurs les plus répandus prennent en considération des détails |
---|
| 17 | très nombreux des processeurs, il en découle des simulations très lentes, |
---|
| 18 | voire inutilisables pour simuler des architectures multic\oe ur. |
---|
[19] | 19 | |
---|
| 20 | \o Un facteur de ralentissement de 10 à 10000 est constaté entre |
---|
| 21 | l'exécution native et la simulation d'un programme. À titre d'exemple, il |
---|
| 22 | n'est pas rare que la simulation d'un programme s'exécutant nativement en |
---|
| 23 | dix minutes dure jusqu'à trois semaines. |
---|
[17] | 24 | \EI |
---|
| 25 | \end{frame} %------------------------------------------------------------------- |
---|
[19] | 26 | |
---|
| 27 | % reviewed 0.2 |
---|
| 28 | % [Problématique : Est-ce qu'on peut simplifier la simulation pour aller plus |
---|
| 29 | % vite ?] |
---|
| 30 | \section{Problématique et approche} |
---|
| 31 | \begin{frame} \FT{Problématique} |
---|
| 32 | \BI |
---|
| 33 | \o Les simulations complètes sont trop longues pour être exploitables |
---|
| 34 | \o Les simulations entraînent souvent des approximations du fait de |
---|
| 35 | certaines spécificités non toujours documentées des différents processeurs. |
---|
| 36 | \o Les modèles de simulation doivent donc être simplifiés, tout en |
---|
| 37 | préservant la pertinence de la simulation : on doit garder une bonne |
---|
| 38 | approximation du comportement des applications, notamment dans le cas |
---|
| 39 | d'applications utilisant des fonctionnalités multic\oe urs. |
---|
| 40 | \EI |
---|
| 41 | \end{frame} |
---|
| 42 | |
---|
| 43 | % reviewed 0.1++ |
---|
| 44 | % [Approche : simuler seulement le comportement de la mémoire] |
---|
| 45 | \begin{frame} \FT{Approche} |
---|
| 46 | \BI |
---|
| 47 | \o % simulation gros grain |
---|
| 48 | \o % hum hum : la mémoire est un facteur déterminant |
---|
| 49 | \o % modèle choisi : intégrer uniquement la simulation |
---|
| 50 | % des accès mémoire et un temps de traitement des |
---|
| 51 | % instructions |
---|
| 52 | \o % et le 1 |
---|
| 53 | \EI |
---|
| 54 | \end{frame} |
---|
| 55 | |
---|
| 56 | |
---|
[17] | 57 | \begin{frame} \FT{Description détaillée} |
---|
| 58 | \BI |
---|
| 59 | \o On cherche à simuler le comportement d'un programme en se focalisant sur |
---|
| 60 | l'aspect mémoire : |
---|
| 61 | \BI |
---|
[19] | 62 | \o La hiérarchie de cache |
---|
[17] | 63 | \o La communication entre les cache |
---|
| 64 | \o La gestion de la cohérence entre les caches partagés |
---|
| 65 | \o La simulation des délais de traitement |
---|
| 66 | \EI |
---|
| 67 | \o L'objectif est donc d'obtenir des estimations suivantes : |
---|
| 68 | \BI |
---|
| 69 | \o le nombre de hit/miss |
---|
| 70 | \o comptabiliser ces hit/miss pour chaque c\oe ur et pour chaque cache, |
---|
| 71 | \EI |
---|
| 72 | \EI |
---|
| 73 | \end{frame} |
---|
| 74 | |
---|
| 75 | \begin{frame} \FT{État de l'art} |
---|
| 76 | \BI |
---|
| 77 | \o Il existe quelques simulateurs, qui sont, pour la plupart orientés vers |
---|
| 78 | une simulation complète et précise, il en résulte qu'ils sont toujours |
---|
| 79 | relativement lents : |
---|
| 80 | \BI |
---|
| 81 | \o SimpleScalar, qui est inutilisable (sans extension) pour simuler |
---|
[19] | 82 | des systèmes multiprocesseurs ou multic\oe urs. |
---|
[17] | 83 | \o Unisim, qui est beaucoup plus modulaire, mais qui procure un |
---|
| 84 | framework assez important, dont il aurait fallu extraire la |
---|
| 85 | simple modélisation de cache. |
---|
| 86 | \o Simics, semble offrir des avantages considérables sur les autres, |
---|
[19] | 87 | notamment quant à sa vitesse d'exécution, mais c'est un logiciel |
---|
[17] | 88 | propriétaire que nous n'avons pas testé |
---|
| 89 | \EI |
---|
| 90 | \EI |
---|
| 91 | |
---|
| 92 | \end{frame} %------------------------------------------------------------------- |
---|