source: trunk/IPs/systemC/processor/Morpheo/Documentation/doc/presentation-morpheo-microarchitecture/tex/root.tex @ 91

Last change on this file since 91 was 91, checked in by rosiere, 15 years ago

Documentation

  • Property svn:executable set to *
File size: 9.3 KB
Line 
1%------------------------------------------------------------------------------
2% $Id$
3%------------------------------------------------------------------------------
4
5\section{Introduction}
6\ContentsCurrent
7
8\subsection{Motivations}
9\slidetitle{Cadre de la thèse}
10           {
11             \begin{itemize}
12             \item {\it Cadre :}\newline
13               Collaboration avec Bull sur le projet PFC\newline
14               (Plate-forme de confiance totale)
15             \item {\it Notre contribution :}\newline
16               Réalisation d'un générateur de processeur ouvert.
17             \end{itemize}
18           }
19           {
20           }
21
22\subsection{Cahier des charges}
23\slidetitle{Besoins : Cahier des charges}
24           {
25             Il faut une architecture :
26             \begin{description}
27             \item [Ouverte :] Évite les fonctionnalités cachées.
28             \item [Pérenne :] Évite les problèmes d'approvisionnements.
29             \item [Paramétrable :] S'adapte aux critères de l'application.
30             \item [Performante :] Applications nécessitant de la puissance de calculs.
31             \end{description}
32           }
33           {
34%            Concevoir un cpu pour PFC :
35%           
36%            ouverte, pérenne, paramétrable, performante.
37%
38%            Applications cibles : cryptographique.
39           }
40
41%\subsection{Architecture Performante}
42\slidetitle{Architecture Performante}
43           {
44             \begin{center}
45               {\it Exécution de plusieurs instructions simultanément}
46             \end{center}
47
48             Exploitation de toutes les formes de parallélisme.
49
50             \begin{description}
51             \item[ILP :] Instruction Level Parallelism
52             \item[TLP :] Thread      Level Parallelism
53             \item[DLP :] Data        Level Parallelism
54             \end{description}
55           }
56           {
57           }
58
59\section{Micro Architecture}
60\ContentsCurrent
61
62\subsection{Vue d'ensemble}
63\slidetitle{Vue d'ensemble}
64           {
65%             3 Parties :\\
66             \begin{description}
67             \item [Front end :] Chargement de paquets d'instructions, décodage
68             \item [Out Of Order Engine :] Renommage, Lancement des instructions, Maintien dans l'ordre du programme
69             \item [Execute Loop :] Lecture des opérandes, Execution, Ecritures des résultats
70             \end{description}
71
72             \printgraph{MORPHEO_micro_architecture-part}{0.7}
73           }
74           {
75           }
76
77\slide
78           {
79             \printgraph{MORPHEO_micro_architecture-overview}{0.48}
80           }
81           {
82           }
83
84\subsection{Front End}
85\slidetitle{Front End}
86           {
87             \printgraph{MORPHEO_micro_architecture-front_end}{0.75}
88           }
89           {
90           }
91
92\slidetitle{Fetch unit}
93           {
94             \begin{description}
95             \item[Address\_management :] Gère le programme counter.
96             \item[Ifetch\_queue :] FIFO (classique) récupérant les réponses provenant du cache.
97             \end{description}
98             \printgraph{MORPHEO_micro_architecture-front_end-fetch_unit}{0.75}
99           }
100           {
101           }
102
103\slidetitle{Prediction Unit}
104           {
105             \printgraph{MORPHEO_micro_architecture-front_end-prediction_unit}{0.6}
106           }
107           {
108           }
109
110\slidetitle{Decod Unit}
111           {
112             \begin{description}
113             \item[Decod :] Décodage - branchement et évènement (exception, instructions spéciales)
114             \item[Decod\_queue :] FIFO classique, Supprime les instructions incorrects
115             \end{description}
116             \printgraph{MORPHEO_micro_architecture-front_end-decod_unit}{0.8}
117           }
118           {
119           }
120
121%\slidetitle{Context State}
122%           {
123%             \printgraph{MORPHEO_micro_architecture-front_end-context_state}{0.75}
124%           }
125%           {
126%           }
127
128\subsection{Out Of Order Engine}
129\slidetitle{Out Of Order Engine}
130           {
131             \printgraph{MORPHEO_micro_architecture-out_of_order_engine}{0.8}
132           }
133           {
134           }
135
136\slidetitle{Rename Unit}
137           {
138             \printgraph{MORPHEO_micro_architecture-out_of_order_engine-rename_unit}{0.65}
139           }
140           {
141           }
142
143\slidetitle{Issue Queue}
144           {
145             Route vers les ports de sorties les instructions.
146
147             \printgraph{MORPHEO_micro_architecture-out_of_order_engine-issue_queue-1}{0.75}
148           }
149           {
150           }
151
152\slidetitle{Reexecute Unit + SPR}
153           {
154             Des instructions doivent être réinjectés dans la boucle d'execution
155             \begin{itemize}
156               \item Accès aux registres spéciaux
157               \item Store en tête du Re Order Buffer
158             \end{itemize} 
159             \printgraph{MORPHEO_micro_architecture-out_of_order_engine-reexecute_unit}{0.75}
160           }
161           {
162           }
163
164\slidetitle{Commit Unit}
165           {
166             \printgraph{MORPHEO_micro_architecture-out_of_order_engine-commit_unit}{0.75}
167           }
168           {
169           }
170
171\subsection{Execute Loop}
172\slidetitle{Execute Loop}
173           {
174             \printgraph{MORPHEO_micro_architecture-execute_loop}{0.75}
175           }
176           {
177           }
178
179\slidetitle{Read unit}
180           {
181             \begin{description}
182             \item[Read\_queue :] FIFO classique, Lecture des opérandes depuis le banc de registres.
183             \item[Reservation\_station :] Attente de la disponibilité de toutes les opérandes. Lancement des instructions prêtes.
184             \end{description}
185
186             \printgraph{MORPHEO_micro_architecture-execute_loop-read_unit}{0.75}
187           }
188           {
189           }
190
191%\slidetitle{Functionnal Unit}
192%           {
193%             \printgraph{MORPHEO_micro_architecture-execute_loop-functionnal_unit}{0.75}
194%           }
195%           {
196%           }
197%
198\slidetitle{Load Store Unit}
199           {
200             \begin{description}
201             \item[speculative\_access\_queue :] FIFO classique. Accès au cache
202             \item[load\_queue :] Attente des réponses puis vérification des dépendances RAW.
203             \item[store\_queue :] File stockant les écritures. Attente d'être en tête du ROB.
204             \end{description}
205
206             \printgraph{MORPHEO_micro_architecture-execute_loop-load_store_unit}{0.8}
207           }
208           {
209           }
210
211\slidetitle{Write Unit}
212           {
213             \begin{description}
214             \item[Write\_queue :] FIFO classique, Ecriture des résultats vers le banc de registres.
215             \item[Execute\_queue :] (Optionnel) FIFO classique
216             \end{description}
217
218             \printgraph{MORPHEO_micro_architecture-execute_loop-write_unit}{0.75}
219           }
220           {
221           }
222
223\slidetitle{Register File}
224           {
225             \begin{minipage}{0.45\textwidth}
226             \printgraph{MORPHEO_micro_architecture-execute_loop-register_unit}{0.75}
227             \end{minipage}
228             \begin{minipage}{0.45\textwidth}
229               \begin{description}
230               \item[RegisterFile :] Multi bancs
231               \item[Status List :] Registre de validité (1 bit)
232               \end{description}
233             \end{minipage}
234           }
235           {
236           }
237
238\section{Exemple d'instance}
239\ContentsCurrent
240
241\slide
242           {
243             \printgraph{MORPHEO_micro_architecture-overview}{0.48}
244           }
245           {
246           }
247
248\slide
249           {
250             \printgraph{MORPHEO_micro_architecture-ex01}{0.48}
251           }
252           {
253             Hypoth<E8>se de d<E9>part
254
255             SMT 2
256           }
257
258\slide
259           {
260             \printgraph{MORPHEO_micro_architecture-ex02}{0.48}
261           }
262           {
263             contexte x4 pr<E9>dicteur d<E9>di<E9>
264           }
265
266\slide
267           {
268             \printgraph{MORPHEO_micro_architecture-ex03}{0.48}
269           }
270           {
271             Select ...
272           }
273
274\slide
275           {
276             \printgraph{MORPHEO_micro_architecture-ex04}{0.48}
277           }
278           {
279             possibilit<E9> de CMP
280           }
281
282%\section{Custom Unit}
283%\ContentsCurrent
284%
285%\subsection{Spécification}
286%\slidetitle{Spécification}
287%           {
288%           }
289%           {
290%           }
291%
292%\subsection{Interface}
293%\slidetitle{Interface - Decod}
294%           {
295%           }
296%           {
297%           }
298%
299%\slidetitle{Interface - Functionnal Unit}
300%           {
301%           }
302%           {
303%           }
304%
305%\subsection{Exemple}
306%\slidetitle{Exemple : Pseudo Crypto unit}
307%           {
308%           }
309%           {
310%           }
311%
312%\slidetitle{Exemple : Random unit}
313%           {
314%           }
315%           {
316%           }
317%
318%\section{Optimisation future}
319%\ContentsCurrent
320%
321%\slidetitle{Différente algorithme de priorité / équilibrage de charge}
322%           {
323%           }
324%           {
325%           }
326%
327%\slidetitle{Différente implémentation de la Load Store Queue}
328%           {
329%             \begin{description}
330%             \item[NO\_SPECULATIVE\_LOAD     : ] each load wait all previous store before the data cache access
331%             \item[SPECULATIVE\_LOAD\_ACCESS : ] each load wait all previous store before the commiting
332%             \item[SPECULATIVE\_LOAD\_COMMIT : ] each load commit the result before the end of dependence's check
333%             \item[SPECULATIVE\_LOAD\_BYPASS : ] each load bypass the result before the end of dependence's check
334%             \end{description}
335%           }
336%           {
337%           }
338%
339%\slidetitle{MAC Unit - Custom Unit}
340%           {
341%           }
342%           {
343%           }
344%
345%\slidetitle{ICache Management}
346%           {
347%           }
348%           {
349%           }
Note: See TracBrowser for help on using the repository browser.