Changeset 19


Ignore:
Timestamp:
Jun 26, 2009, 5:23:11 AM (15 years ago)
Author:
guillaumeb
Message:

relecture des slides

Location:
trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc

    • Property svn:ignore
      •  

        old new  
        55*.toc
        66*.snm
         7.*.swp
  • trunk/doc/slides

    • Property svn:ignore set to
      .*.swp
  • trunk/doc/slides/1_contexte_sujet.tex

    r17 r19  
    33%==============================================================================
    44
     5% reviewed 0.2
     6% [Contexte : La simulation c'est bien mais c'est lent]
    57\begin{frame} \FT{Contexte}
    68    \BI
     
    810    développement de compilateurs et d'applications, pour bon nombre de raisons :
    911       \BI
    10        \o Il n'est pas nécessaire d'avoir à sa disposition le micro-processeur
     12       \o Il n'est pas nécessaire d'avoir à sa disposition le processeur
    1113       \o Elle permet un diagnostic spécifique à un processeur des performances
    1214       d'un programme
     
    1517    très nombreux des processeurs, il en découle des simulations très lentes,
    1618    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.
    1724    \EI
    1825\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
    1957\begin{frame} \FT{Description détaillée}
    2058    \BI
     
    2260    l'aspect mémoire :
    2361        \BI
    24         \o La hierarchie de cache
     62        \o La hiérarchie de cache
    2563        \o La communication entre les cache
    2664        \o La gestion de la cohérence entre les caches partagés
     
    4280        \BI
    4381        \o SimpleScalar, qui est inutilisable (sans extension) pour simuler
    44         des systèmes multi-processeurs ou multic\oe urs.
     82        des systèmes multiprocesseurs ou multic\oe urs.
    4583        \o Unisim, qui est beaucoup plus modulaire, mais qui procure un
    4684        framework assez important, dont il aurait fallu extraire la
    4785        simple modélisation de cache.
    4886        \o Simics, semble offrir des avantages considérables sur les autres,
    49         notemment quant à sa vitesse d'exécution, mais c'est un logiciel
     87        notamment quant à sa vitesse d'exécution, mais c'est un logiciel
    5088        propriétaire que nous n'avons pas testé
    5189        \EI
  • trunk/doc/slides/2_definition_analyse_probleme.tex

    r17 r19  
    33%==============================================================================
    44
    5 \begin{frame} \FT{Simulation de caches de processeurs multicoeurs}
     5\begin{frame} \FT{Simulation de caches de processeurs multic\oe urs}
    66    \BI
    77    \o La simulation doit prendre en compte les aspects suivants :
    8         - hierarchie paramétrabe de plusieurs caches, de façon modulaire
     8        - hiérarchie paramétrable de plusieurs caches, de façon modulaire
    99        (cache L1, L2, etc.)
    10     \o communications entres les caches hierarchiques
    11     \o gestion de caches de processeurs multicoeurs :
     10    \o communications entres les caches hiérarchiques
     11    \o gestion de caches de processeurs multic\oe urs :
    1212        \BI
    1313        \o caches partagés
  • trunk/doc/slides/3_principe_solution.tex

    r17 r19  
    55\begin{frame} \FT{Principe de la solution}
    66    \BI
    7     \o Modélisation de la hierarchie de cache
     7    \o Modélisation de la hiérarchie de cache
    88    \o Traitement d'une séquence d'accès (read, write) à des adresses
    99    \o Un modèle très simplifié pour le reste des instructions:
     
    1111        \o pas d'analyse de dépendances
    1212        \o pas de prédiction de branchement
    13         \o constantes pour les temps d'execution des instructions
     13        \o constantes pour les temps d'exécution des instructions
    1414        \EI
    1515    \o le traitement des autres instructions est encore à définir
  • trunk/doc/slides/4_identification_taches.tex

    r17 r19  
    77    \o Étude modèle simplifié du processeur, différentes approches possibles
    88        \BI
    9         \o intrumentation d'un exécutable (modèle de valgrind)
     9        \o instrumentation d'un exécutable (modèle de Valgrind)
    1010        \o émulation
    1111        \EI
  • trunk/src/l1cache.cpp

    r16 r19  
    11#include "l1cache.h"
    22
     3// TODO il manque un signal pour faire des requetes au L2
    34
    45void L1Cache::read()
     
    1920    miss_info = false;
    2021    hit_info = false;
     22    out_activate = false;
    2123   
    2224   
     
    4042        Address element(req, cstore->get_line_width());
    4143
    42         //
    43         //  XXX FIXME A PARTIR d'ICI C'EST N'IMPORTE QUOI
    44         //
    4544        //  rappel : processing queue c'est le chargement interne. Si un élement
    4645        //  est déjà chargé dans le cache, il va dans la processing queue,
    4746        //  sinon, il part en requete dans le L2
    4847        //
    49         //  ca m'apprendra a faire du copier coller et commiter sans verifier
    5048        //
    5149        // Si la donnée est chargée dans le cache
    5250        if (cstore->is_loaded(element)) {
    53            
    54             out_activate = true;
     51            processing_queue->insert(element, latency);
     52            hit_info = true;
    5553
    5654            // affichage de l'action
    57             cout << sc_time_stamp() << " L1Cache : access to loaded data [" << element << "]  -> hit" << endl;
     55            cout << sc_time_stamp() << " L1Cache : access to data [" << element << "]  -> hit ... [start loading]" << endl;
    5856
    59             hit_info = true;
    60             out_data = in_data;
    6157        } else {
     58            // XXX requete a un module exterieur
    6259
    6360            // affichage de l'action
    64             cout << sc_time_stamp() << " L1Cache : access to loaded data [" << element << "]  -> miss" << endl;
     61            cout << sc_time_stamp() << " L1Cache : access to data [" << element << "]  -> miss" << endl;
    6562
     63            out_data = in_data;
    6664            miss_info = true;
    67             processing_queue->insert(element, latency);
    68             processing_queue->print();
    6965        }
    70 
    71         //
    72         // XXX JUSQU'A ICI, C'est N'IMPORTE QUOI
    73         //
    7466    }
    7567
Note: See TracChangeset for help on using the changeset viewer.