source: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Documents/article-morpheo-share_architectural_ressources_between_hardware_context/fr.old/03_experimentation.tex @ 2

Last change on this file since 2 was 2, checked in by kane, 17 years ago

Import Morpheo

File size: 5.5 KB
Line 
1\section{Experimentations}\label{experimentations}
2Le SMT est une solution Bas coût d'obtenir une SMT. Elle à aussi l'avantage de tirer profit des systèmes Single Thread. Car Comme les ressources sont intégralement partagé, s'il n'y a qu'un seul thread à éxecuter, il pourra utiliser l'intégralité des ressources du processeur. Avoir plusieurs thread éxecutable en parralléle permet de mieux exploiter les ressources du processeur.
3
4Malheuresement cette solution à deux problèmes importants. Le premier est que comme les threads sont en compétition pour obtenir les ressources, la rapidité d'execution d'un thread dépend des autres thread en compétition. Par exemple si tous les threads font des accès mémoires fréquents, l'unité mémoire va rapidement saturée. Le deuxième problème étant la polution des ressources partagées. Les meilleurs exemples sont les caches et la BTB (Branch Target Buffer). Suivant les activités des autres threads, des lignes de caches peuvent être désalloué à un thread en faveur à un autre même s'il elle lui était utile. De plus les actions comme le prefetch ou la prediciton de branchement risque de privé des threads de lignes utiles contre une hypothétique ligne utile pour le thread bénéficiaire.
5
6Pour ces raisons, nous allons faire varier le degré de partage des ressources. Des travaux équivalent ont été réalisé. Dans \cite{2004_dolbeau}, ils étudient l'influence du partage des des unités à latence longue (multiplication, division ...), du prédicteur de branchement, ainsi que des caches Instructions et Données. Pour ce faire, ils ont implémentés l'architecture {\bf CASH} (CMP And SMP Hybrid) qui consiste en 4 cores. Dans un autre article, \cite{2004_kumar}, il y a une étude en terme de performance d'éxecution mais également en terme de surface du partage des unités flottantes, des ports du crossbar reliant les Caches à la mémoire et des caches instructions et données. Ici l'équipe de Tullsen à valider leur hypothèses sur un système à 8 cores. Le partage des ressources ce fait entre deux cores voisins.
7
8Notre approche consiste à tester l'incidence du partage des caches, des Unités d'éxecutions et du Front End et Back end (Que les threads se partage tous les ressources qui ne sont pas les unités d'excutions).
9
10Nous démominons les partage comme suit :
11\begin{description}
12\item[Cluster :] Les clusters ce partage les caches de niveaux 2 et les unités d'executions.
13\item[Unité de lancement :] Les unités d'éxecutions ce partage les ports des caches de niveaux 1 et les unités d'éxecutions.
14\item[Contexte :] Les contextes ce partages l'accès au décodeur, au icache et au prédicteur de branchement.
15\end{description}
16
17L'expérimentation ce fait avec le générateur de processeur MORPHEO (acronyme de ``Multi ORganisation for a Processor HEterogeneous and Open''). Une vue d'ensemble de l'architecture résultante peut être vue dans la figure \ref{MORPHEO_overview}.
18
19\printgraph{MORPHEO_overview}{0.45}{MORPHEO - Vue d'ensemble}
20
21Notre allons analyser l'incidence du partage des ressources au niveau Cluster, UL et Contexte dans un système à 4 Threads, pouvant lancer à chaque cycle 8 instructions. Trois tableaux rémusent les caractérisques communes de chaque instance ainsi que les paramètres spécifiques pour les configurations avec 1,2 et 4 cores (nous définisions un core une UL ou un cluster). Le troisème résument le systèmes mémoires
22
23\begin{center}
24\begin{tabular}{|l|c|}
25  \hline
26  \multicolumn{2}{|c|}{Caractéristiques communes}               \\
27  \hline
28  Unité d'éxecutions                           & 8              \\
29  Profondeur des Stations de Réservations      & 4              \\
30  Nombre de branchements spéculés              & 8              \\
31  Return Address Stack                         & 16             \\
32  Réseau de bypass                             & Complet        \\
33  Nombre de port de lecture                    & 12             \\
34  Nombre de port d'écriture                    & 8              \\
35  \hline
36\end{tabular}
37\end{center}
38
39\begin{center}
40\begin{tabular}{|l|ccc|}
41  \hline
42  \multicolumn{4}{|c|}{Caractéristiques spécifiques}            \\
43  \hline
44                                               & 1 core         & 2 cores       & 4 cores       \\
45  \hline
46  Largeur du pipeline                          & 8              & 4             & 2             \\
47  Taille - Ifetch\_queue                       & 8              & 4             & 2             \\
48  Taille - Issue queue                         & 32             & 16            & 8             \\
49  Taille - Re Order Buffer                     & 128            & 64            & 32            \\
50  Taille - autres                              & 16             & 8             & 4             \\
51  Largeur des fenêtres                         & 16             & 8             & 4             \\
52  Branch Target Buffer                         & 256            & 128           & 64            \\
53  Méta prédicteur                              & 16k            & 8k            & 4k            \\
54  Banc de Registres                            & 256            & 128           & 64            \\
55  \hline
56\end{tabular}
57\end{center}
58   
59\begin{center}
60\begin{tabular}{|l|cc|}
61  \hline
62  \multicolumn{3}{|c|}{Caractéristiques du système mémoire}\\
63  \hline
64                             & L1          & L2             \\
65                             & I/D séparé  & unifié         \\
66        \hline
67        Taille               & 8 ko        & 2 Mo           \\
68        Nombre de lignes     & 128*        & 16k            \\
69        Nombre de mots/ligne & 16          & 32             \\
70        Associativité        & 4 voies     & 4 voies        \\
71        Latence - Hit        & 2 cycles    & 6 cycles       \\
72        Pénalités - Miss     & 4 cycles    & 100 cycles     \\
73  \hline
74\end{tabular}
75\end{center}
76
77(Le nombre de lignes du premier niveau de cache est divisé par le nombre de cluster).
78
79Nous allons maintenant voir la méthodologie de test.
Note: See TracBrowser for help on using the repository browser.