1 | %============================================================================== |
---|
2 | \section{Contexte et Sujet} |
---|
3 | %============================================================================== |
---|
4 | |
---|
5 | % reviewed 0.2 |
---|
6 | % [Contexte : La simulation c'est bien mais c'est lent] |
---|
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 |
---|
12 | \o Il n'est pas nécessaire d'avoir à sa disposition le processeur |
---|
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 | |
---|
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. |
---|
24 | \EI |
---|
25 | \end{frame} %------------------------------------------------------------------- |
---|
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 | |
---|
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 |
---|
62 | \o La hiérarchie de cache |
---|
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 |
---|
82 | des systèmes multiprocesseurs ou multic\oe urs. |
---|
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, |
---|
87 | notamment quant à sa vitesse d'exécution, mais c'est un logiciel |
---|
88 | propriétaire que nous n'avons pas testé |
---|
89 | \EI |
---|
90 | \EI |
---|
91 | |
---|
92 | \end{frame} %------------------------------------------------------------------- |
---|