source: trunk/IPs/systemC/processor/Morpheo/Documentation/Source/Documents/presentation-internal_seminary_overview/fr/root.tex @ 23

Last change on this file since 23 was 23, checked in by rosiere, 17 years ago

Documentation pour chaque composant.
Documentation : ajout d'un poster et d'un article.
RegisterFile_Multi_Banked_Glue - non encore stable.

File size: 10.4 KB
Line 
1\section{Motivations}
2
3\ContentsCurrent
4
5\slidetitle{Motivations}
6           {
7             Sécurité du hardware :
8             \begin{description}
9             \item[Ancienne tendance :] IPs (Intellectual Propritie) fermées labelisés sécuritaires.
10             \item[Nouvelle tendance :] Ouverture des IPs, intégration de System On Chip (SOC)
11             \end{description}
12           }
13           {
14             
15           }
16
17
18
19%\section{Besoins}
20%
21%\ContentsCurrent
22%
23%\slidetitle{Besoins}
24%          {Besoins pour les processeurs embarquées :
25%           
26%            \begin{itemize}
27%            \item Maîtrise du système
28%            \item Souplesse
29%            \item Performance
30%            \end{itemize}
31%          }
32%          {
33%            Où : téléphone portable, baladeur mp3/vidéo, automobile ...
34%
35%            \begin{description}
36%            \item[Maitrise du système :] Les processeurs généralistes sont utilisés dans un vaste échantillon d'application. Ceci touche également la sécurité.
37%            \item[Souplesse           :] Pour un concepteur de système embarqués : bien dimensionner son système
38%            \item[Performance         :] Application cible de plus en plus gourmande en ressources : beaucoup de threads avec des impératifs de rapidité.
39%            \end{description}
40%          }
41%
42%\subsection{Maîtrise du système}
43%\slidetitle{Besoin de la Maîtrise du système}
44%          {
45%            {\bf Plate-forme de confiance totale}
46%
47%            \begin{itemize}
48%            \item Projet Open
49%            \item ISA Open
50%            \item Instructions customisables
51%            \end{itemize}
52%          }
53%          {
54%            Morpheo s'inscrit dans le cadre du projet plate-forme de confiance totale.
55%
56%            Instructions customisables : possibilité à l'utilisateur de rajouter de nouvelles instructions. Comme par exemple pour le chiffrement ou le déchiffrement ...
57%%           On doit supposer que la mémoire d'instruction et de donnée ce trouve en milieu accéssible par les pirates. Leur chiffrement en devient obligatoire.
58%%
59%%           En hard dans le proc? cache? interconnect? I/O?
60%          }
61%
62%
63%\subsection{Souplesse}
64%\slidetitle{Besoin de Souplesse}
65%          {
66%            {\bf Adapation aux besoins des concepteurs}
67%
68%            \begin{itemize}
69%            \item Processeur hautement paramètrables
70%            \item Ressources internes hétérogènes
71%            \item FPGA
72%            \end{itemize}
73%          }
74%          {
75%            Souplesse : s'adapter aux besoins des concepteur de SoC.
76%
77%            \begin{description}
78%            \item[Paramètrables :] Fournir un grand jeu de paramètres afin de satisfaire les contraintes du concepteur
79%            \item[Hétérogènes :] En découle des paramètres
80%            \item[FPGA :] Cible de + en + utilisé, Si mappage possible sur les ressources limités d'un FPGA, alors possible également sur un ASIC
81%            \end{description}
82%          }
83%
84%\subsection{Performance}
85%\slidetitle{Besoin de Performance (1) - ILP vs TLP}
86%          {
87%            {\bf Exploitation des différentes formes de parallélisme}
88%           
89%            Paquet d'instruction pouvant s'éxecuter en parallèle :
90%            \begin{itemize}
91%            \item {\it Intra flot} : exploitation de l'ILP\newline limitation intrasèque au soft (3-5 instructions)
92%            \item {\it Inter flot} : exploitation du TLP  \newline limitation intrasèque au système cible
93%            \end{itemize}
94%          }
95%          {
96%            \begin{itemize}
97%            \item ILP : superscalaire, OutOfOrder, Spéculation
98%            \item TLP : CMP, SMT
99%            \end{itemize}
100%          }
101%
102%\slidetitle{Besoin de Performance (2) - CMP vs SMT}
103%          {
104%            \printgraph{GENERAL_type_of_multi_thread}{0.5}
105%           
106%%           (schéma)
107%%           
108%%           Comparaison théorique de 5 types d'architectures :
109%%           ||Mono Coeur           ||Mono Contexte           ||Largeur infini||Idéal       ||
110%%           ||Mono Coeur           ||Mono Contexte           ||Largeur 4     ||Monolithique||
111%%           ||Multi Coeur d'ordre 4||Mono Contexte           ||Largeur 1     ||CMP         ||
112%%           ||Mono Coeur           ||Multi Contexte d'ordre 4||Largeur 4     ||SMT         ||
113%%           ||Multi coeur d'ordre 2||Multi Contexte d'ordre 2||Largeur 2     ||CMP de SMT  ||
114%          }
115%          {
116%            \begin{itemize}
117%            \item A et B : 17 instructions en 7 UT idéale
118%            \item (1) : 14 UT
119%            \item (2) : 17 UT, 34 slot vide, occupation 50\%
120%            \item (3) : 12 UT, 14 slot vide, occupation 70\%
121%            \item (4) : 11 UT, 10 slot vide, occupation 77\%
122%            \end{itemize}
123%          }
124%\slidetitle{Besoin de Performance (3) - Entre le CMP et le SMT}
125%          {
126%            \begin{description}
127%            \item[CMP :] L'intégralité des ressources d'un coeur sont dédiées   à un contexte.
128%            \item[SMT :] L'intégralité des ressources d'un coeur sont partagées entre tous les contextes.
129%            \item[Hybride :] Multitude de possibilité de partage des ressources internes.\\
130%              Une ressource est soit dédiée à un contexte soit partagée entre un certain nombre de contextes.
131%            \end{description}
132%          }
133%          {
134%            Définir ce qu'est une ressource : ALU, predicteur de branchement, cache ...
135%          }
136%
137%
138%\section{Solution}
139%\ContentsCurrent
140%\subsection{Initiatives actuelles}
141%\slidetitle{Initiatives actuelles}
142%          {
143%            Tous les processeurs sont des RISC scalaires.
144%
145%            \begin{description}
146%            \item[OpenRISC 1200 :] 32 bits, 5 étages. Jusqu'à 8 contextes.
147%            \item[Leon 2        :] 32 bits, 5 étages.
148%            \item[Leon 3        :] Leon 2 en 7 étages.
149%            \item[OpenSparcS1   :] 1 coeur 64bits, 6 étages et CMT 4.
150%            \item[OpenSparcT1   :] OpenSparcS1 avec 8 coeurs. Version OpenSource du Niagara.
151%            \item[Micro32       :] 32 bits, 6 étages.
152%            \item[OpenFire      :] 32 bits, 3 étages. Dérivés du MicroBlaze
153%            \item[aeMB          :] 32 bits, 3 étages. Dérivés du MicroBlaze
154%            \end{description}
155%          }
156%          {
157%            \begin{description}
158%            \item[OpenRISC 1200 :] Présence icache, dcache, immu, dmmu. Taille des caches, des opérandes, du banc de registres. Matériel spécifique : div, rotate, mul, mac.
159%            \item[Leon 2 et 3   :] Présence de div, mul, mac, floating point. Taille du banc de registres . Nombre de load delai. Configuration avancé du cache et de la MMU (fetch, decod, execute, memory, write) (fetch, decod, register access, execute, memory, exception, write)
160%            \item[OpenSparc     :] Présence de la Stream Processing Unit (cryptographie), 1 seul thread par coeur.
161%            \item[Micro32       :] Présence icache, dcache, debug. Taille des caches. Matériel spécifique : div, rotate, mul pipeline, extension de signes.
162%            \item[OpenFire      :] 3 étages (Fetch, Decod, Execute). Faiblement configurable (largeur des données, espace d'addressage, presence de mul et de cmp). Aucun support de caches
163%            \item[aeMB          :] 3 étages (Fetch, Decod, Execute). Support de caches. Pas configurable (Juste la largeur de l'espace d'addressage)
164%            \end{description}
165%          }
166%
167%\slide     {
168%            \printgraph{GENERAL_Art_of_State-Comparaison}{0.8}
169%          }
170%          {
171%          }
172%\subsection{Solution proposée}
173%\slidetitle{Solution proposée}
174%          {
175%            \begin{itemize}
176%            \item Partir d'une micro-architecture HighPerf.
177%            \item Ajout de la gestion du multi-thread.
178%            \item Rendre paramétrable les ressources internes.
179%            \item Mappage des instances de ce générateur de processeur sur les ressources limitées d'un FPGA.
180%            \end{itemize}
181%          }
182%          {
183%            Pentium 4, MipsR10000, Power5
184%          }
185%         
186%\subsection{Métrique}
187%\slidetitle{Métrique}
188%          {
189%            \begin{itemize}
190%            \item Obtenir le meilleur compromis Performance / Complexité.
191%              \begin{itemize}
192%              \item Performance : nombre de cycles nécessaire pour éxecuter les Benchmarks.
193%              \item Compléxité  : surface occupée du FPGA.
194%              \end{itemize}
195%            \item Obtenir le meilleur partage des ressources entre les contextes matériels. (Gain Performance / Coût surface).
196%              \begin{itemize}
197%              \item Gain en performance : rapport entre la performance MT sur la performance ST.
198%              \item Coût en surface     : rapport entre la surface     MT sur la surface     ST.
199%              \end{itemize}
200%            \end{itemize}
201%          }
202%          {
203%            benchmark : SPECINT2k, Dhrystone
204%
205%            FPGA : virtex5LX 330
206%          }
207%
208%\section{Morpheo}
209%\ContentsCurrent
210%
211%\subsection{Micro Architecture}
212%\slidetitle{Micro Architecture : Overview}
213%          {
214%            \printgraph{MORPHEO_micro_architecture-overview}{0.48}
215%          }
216%          {
217%            3 grandes parties :
218%            \begin{description}
219%            \item[Front end :] Amène des paquets d'instructions en séquence, et les décodes. Calcules les addresses suivantes (spéculation) et maintiens l'état des threads (idle, wait, run ...)
220%            \item[Out Of Order Engine :] Renome les registres (annulations des dépendances RAW, WAW et WAR). Re Order Buffer : mettre à jour l'état du contexte dans l'ordre d'arrivé des threads.
221%            \item[Execution Loop :] Boucle ``Read, execute, Write''. Ainsi que les bypass. Instructions peuvent ce lancer dans le désordres.
222%            \end{description}
223%          }
224%
225%\slidetitle{Micro Architecture : Front end}
226%          {
227%            \printgraph{MORPHEO_micro_architecture-front_end}{0.7}
228%          }
229%          {
230%          }
231%
232%\slidetitle{Micro Architecture : Out Of Order Engine}
233%          {
234%            \printgraph{MORPHEO_micro_architecture-out_of_order_engine}{0.7}
235%          }
236%          {
237%          }
238%
239%\slidetitle{Micro Architecture : Execution Loop}
240%          {
241%            \printgraph{MORPHEO_micro_architecture-execute_loop}{0.7}
242%          }
243%          {
244%          }
245%
246%\subsection{Méthodologie}
247%\slidetitle{Service proposé}
248%          {
249%            \printgraph{MORPHEO_service}{0.75}
250%          }
251%          {
252%            libMorpheo :
253%            \begin{itemize}
254%            \item Simulation systemC
255%              \begin{itemize}
256%              \item TestBench Vhdl
257%              \item Statistiques lors de la simulation
258%              \end{itemize}
259%            \item Vhdl : synthétisable sur FPGA
260%            \item Positions: Point d'entrée d'un outil de visualisation architectural (Stage M1)
261%            \end{itemize}
262%          }
263%   
264%\slidetitle{Méthodologie - Boucle d'Iteration}
265%          {
266%            \printgraph{MORPHEO_methodologie}{0.3}
267%          }
268%          {
269%            \begin{enumerate}
270%            \item SystemC
271%              \begin{enumerate}
272%              \item Ecriture du modèle systemC
273%              \item Ecriture d'un TestBench pour le systemc - goto 1.1
274%              \end{enumerate}
275%            \item VHDL
276%              \begin{enumerate}
277%              \item Ecriture du vhdl
278%              \item Validation de la stricte compatibilité entre le systemC et le Vhdl - goto 2.1 ou 1.1
279%              \end{enumerate}
280%            \item FPGA
281%              \begin{enumerate}
282%              \item Synthèse sur FPGA - goto 2.1, 1.1
283%              \item Mappage sur FPGA
284%              \end{enumerate}
285%            \end{enumerate}
286%          }
287%
288%\subsection{Perspective}
289%\slidetitle{Comment remplir nos journées?}
290%          {
291%            Il "reste" à faire ...
292%          }
293%          {
294%          }
295
296\slide{}{}
Note: See TracBrowser for help on using the repository browser.