M2 - MICRO - Architecture interne des microprocesseurs 2005-2006 François Anceau, CNAM / ASIM - LIP6 Nathalie Drach-Temam, UPMC / ASIM - LIP6 Advanced Architecture and Compiler for High-Performance Embedded Processors Cours : Jeudi 14h-17h Excepté jeudi 16/02 : pas de cours jeudi 02/03 : cours de 9h-12h et de 14h-17h 1
La Recherche de Performance Comment augmenter la performance des applications (jusqu à maintenant)? Augmenter la vitesse des composants. Extraire du parallélisme de grain fin. Réduire le coût des communications. Mais tendance actuelle ralentissement de l augmentation de la fréquence : Augmenter la performance en augmentant le nombre de composants sur une même puce. Un chip contient aujourd hui 50 millions de transistors ; d ici 10-15 ans 1 milliard de transistors : Utilisation / exploitation des transistors on-chip, Communications très rapides au sein d un chip architectures possibles très variées. 2
Pour la petite histoire Craig Barret, (ex PDG d'intel), s'excusant publiquement de ne pas respecter la promesse de cette compagnie de mettre sur le marché un Pentium 4 fonctionnant à 4Ghz! La course à la vitesse est arrêtée... 19 octobre 2004 - Orlando 3
Contraintes des Applications ASIC DSP Processeur Processeur FPGA embarqué ASICs (Application Specific Integrated Circuit) : Performances élevées pour une application. Introduire performances élevées dans système à très bas coût. DSP (Digital Signal Processors) : Faible coût Flexibilité non nulle mais faible (adaptation aux nouveaux algorithmes). Performance : réseaux, traitement du signal. Basse consommation : applications mobiles (téléphonie) Embarqués : Flexibilité importante Performance Faible coût et/ou basse consommation pour un usage universel. Processeurs généralistes/hautesperformances : Performance PCs, stations, serveurs. Produits grand public «enfouis». 4
Pas de Fusion mais Intersection Croissante Probable Rapprochement car besoin croissant en performance des processeurs enfouis/embarqués. Généralistes Embarqués Généralistes Embarqués DSPs Intel 4004 DSPs Processeur embarqué/enfoui Processeur haute-performance DSP Passage progressif des innovations des processeurs haute-performance vers processeurs embarqués et DSPs. Etudier surtout les composants hauteperformance. 5
Les Questions Posées Quelle architecture de composants (processeurs) pour atteindre de hautes performances? Comment programmer ces composants pour atteindre de hautes performances? Comment intégrer les problèmes spécifiques des systèmes enfouis (consommation, coût, vitesse de fonctionnement...)? 6
A Court Terme Adapter les Programmes aux Architectures Architectures actuelles très complexes. Difficile d écrire un programme performant pour ces architectures. Comment optimiser un programme pour une architecture? 7000 6000 5000 4000 3000 2000 1000 0 Peut-on effectuer cette optimisation automatiquement? 86/5-197 8 386/20-1 9 88 4 86 /50-19 90 P /100-1994 P/200M MX-1996 P II/350-1 9 98 P III/700-1999 PIV/15 0 0-2000 INT FP Max 7
A Moyen Terme Evolution des Composants Comment les processeurs/composants actuels vont évoluer dans les années qui viennent? Différentes formes de parallélisme, Projets des constructeurs, Limitations? Comment résoudre les problèmes spécifiques aux systèmes enfouis/embarqués : Consommation, coût, temps-réel, génération de code,... 8
A Long Terme Trouver de Nouveaux Paradigmes Les deux principaux problèmes sont : Trouver un paradigme d architecture qui se «dimensionne» facilement avec la technologie, Trouver un paradigme d architecture pour lequel il soit facile de concevoir un programme performant. Comprendre et anticiper les conséquences des nouvelles technologies sur les architectures. Quelles sont les problèmes de miniaturisation? Quelles nouvelles technologies? Nanotechnologie. Quels sont les problèmes associés à ces nouvelles technologies? Quelles conséquences sur la machine? Doit-on modifier les architectures? Nouveaux paradigmes nécessaires? Quelles conséquences sur la compilation? 9
Plan du Cours Les architectures haute-performance vues au travers de l évolution de la gamme x86 François Anceau. Les architectures haute-performance à travers les différentes évolutions et les tendances Nathalie Drach. Fonctionnement et optimisations des mémoires cache. Architectures haute-performance et embarquées - Evolutions des architectures. Programmation des architectures : optimisations manuelles et automatiques. Nouvelles technologies et nouveaux paradigmes. 10
Références 11
WWW Computer Architecture Page - geo Références Conférences ASPLOS - International Conference on Architectural Support for Programming Languages and Operating Systems ISCA - International Symposium on Computer Architecture CGO : ACM/IEEE International Symposium on Code Generation and Optimization SIGMETRICS - International Conference on Measurement and Modeling of Computer Systems PLDI - ACM SIGPLAN Programming Language Design and Implementation ICS - International Conference on Supercomputing HPCA - Annual Symposium on High Performance Computer Architecture MICRO - Annual IEEE/ACM International Symposium on Microarchitecture PACT - International Conference on Parallel Architectures and Compilation Techniques Euro-Par : European conference on all aspects of parallel computing Revues : IEEE Computer et IEEE Micro. 12