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