Approches alternatives pour améliorer les performances en l'abscence de parallélisme d'instructions
Institution:
Paris 11Disciplines:
Directors:
Abstract EN:
Current integration technologies and advances in semiconductor manufacturing open the way to an unprecedented number of transistors on a single processor die. Still, current architectures can do little with applications having complex data structures or irregular data access patterns. Integer applications particularly suffer from such properties. The main bottlenecks lying in non-numeric applications are the low ILP and irregular data structures that leads to irregular memory accesses having low spatial locality. In this thesis we propose alternative approaches to exploit on-chip space and reduce the memory wall effect. In Chapter 2, we present a state of the art of several approaches that exploit on-chip space differently. We split these approaches in two categories: reconfigurable architectures, and grid architectures. We discuss the strength and limitations of the different approaches as well as the motivation to our work. In Chapter 3, we propose a novel approach that collapses dependent instructions to functions that execute independently and in parallel. Because the collapsing approach is limited by dependent memory accesses, we propose in Chapter 4 we propose the "load squared", an approach that improves performance of dependent loads that have high miss ratios by adding logic closer to memory. We finally investigate in Chapter 5 a generalization of this concept by presenting a decoupled architecture associated with a language extension that explicitly separates execution for data accesses. We summarize our research work and propose several directions for future research in Chapter 6.
Abstract FR:
La possibilité d'intégrer plus d'un milliard de transistors dans un processeur offre un potentiel inégalé pour la haute performance. L'exploitation de cette immense capacité d'intégration est conditionnée par la quantité de parallélisme que l'on peut extraire. Cependant, pour certain codes, notamment les SPECINT 2000, les performances obtenues sont loin des performances crêtes des processeurs, cette écart est principalement du à l'irrégularité de l'application et des structures de données utilisées. Cette irrégularité empêche l'obtention de hautes performances pour, d'une part, l'existence de longues chaînes d'instructions dépendantes empêchant leur exécution en parallèle et, d'une autre part, l'irrégularité des structures de données empêchant le chargement (ou le préchargement) des données en parallèle. Dans cette thèse nous proposons plusieurs méthodes pour réduire l'effet de ces deux problèmes. Le Chapitre 1 introduit les motivations ainsi que les contributions de la thèse. Dans le Chapitre 2, nous présentons un état de l'art des différentes approches et architectures qui exploitent la surface de la puce différemment, en dédiant plus d'espace pour le calcul. Le Chapitre 3 présente une approche alternatives pour améliorer les performances des séquences d'instructions dépendantes. Dans le Chapitre 4, nous présentons les " load squared ", une méthode qui permet d'accélérer deux loads dépendants ne se trouvant pas dans les caches. Finalement, nous introduisons dans le Chapitre 5 une approche dans laquelle nous découplons explicitement le calcul des accès de donnée via une extension du langage C. Nous concluons dans le Chapitre 6.