I NTRODUCTION
Depuis plusieurs années, l’un des principaux moteurs de la performance permettant de répondre aux nouvelles exigences des applications, de plus en plus complexes, vient de l’augmentation des capacités de traitement en parallèle des architectures. Par exemple, l’approche « more-than-moore » propose d’intégrer sur un même support matériel, la puce électronique, de très nombreuses fonctionnalités, on parle alors de systèmes sur puce complexes (« System-On-Chip ») ou SoC. Ces systèmes offrent des capacités de traitement très fortes en partie grâce aux recherches en architecture de machines. En effet, la diminution de finesse de gravure des circuits intégrés n’explique pas tout à elle seule. Certes, elle permet d’intégrer plus d’éléments de calcul, de mémorisation et de communication sur une même puce, mais il faut organiser ces nombreux éléments afin de les faire travailler collectivement de façon efficace. Nous assistons à la généralisation des systèmes multiprocesseurs, homogènes ou hétérogènes, à la fois dans le monde du calcul généraliste (« General Purpose Computing ») et dans le monde des systèmes embarqués, au sein duquel on peut même observer l’apparition d’architectures massivement parallèles. Cette augmentation de la complexité des circuits va cependant de pair avec les coûts de conception et de fabrication qui évoluent également de manière exponentielle, combinés à des contraintes de « time to market » toujours plus fortes, et des standards/normes de plus en plus complexes.
Les architectures de ces systèmes tirent parti de ces incroyables possibilités technologiques avec l’augmentation du nombre de cœurs et de la volumétrie des hiérarchies mémoires internes, l’ajout d’accélérateurs de calcul intégrés, etc. Mais il ne faut pas croire que tout ceci peut se faire simplement en appliquant les techniques connues. Il est nécessaire de repenser les méthodes de conception des architectures, les mécanismes d’utilisation efficace des ressources présentes dans ces nouvelles architectures ainsi que les méthodes de conception de circuits pour pouvoir exploiter ce potentiel.
Les articles de ce numéro présentent les résultats de différents travaux de recherche effectués dans la communauté de l’architecture des machines en France.
Ceux-ci couvrent le large spectre de la gestion complexe des ressources (sur des aspects de contrôle et mémorisation), de l’évaluation des performances atteintes (traces d’exécution et précision de certains calculs arithmétiques) mais adressent aussi les problèmes de conception de nouvelles architectures (prédiction de branchement et architectures reconfigurables). Loin de couvrir l’ensemble des travaux effectués en France, les articles présentés ici permettent une approche de certains verrous encore bloquants en conception d’architectures de machines, embarquées ou non.
Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com
150 TSI. Volume 32 – n° 2/2013
L’article, « Reconvergence de contrôle implicite pour les architectures SIMT » de Nicolas Brunie et Sylvain Collange, traite d’un point limitant les performances dans les processeurs massivement parallèles de type Single Instruction Multiple Data (SIMD) comme les GPU. Lorsque les cœurs de calcul parallèles effectuent un test pour lequel les résultats d’évaluation de la condition sont différents, les deux parties (alors et sinon) seront exécutées séquentiellement jusqu’au prochain point de convergence. Deux nouvelles techniques de gestion des divergences sont présentées, comparées à l’état de l’art et enfin leur potentiel d’implantion matérielle est discuté.
Dans l’article, « Évaluation de la précision en virgule fixe dans le cas des structures conditionnelles », Jean-Charles Naud, Daniel Ménard et Olivier Sentieys présentent une méthodologie, et son implantation dans un outil automatique, pour la conversion de codes en virgule flottante vers la virgule fixe. Dans les systèmes embarqués, l’arithmétique virgule fixe est très majoritairement employée du fait de sa faible emprunte silicium et sa faible consommation d’énergie comparativement à la virgule flottante. Dans cet article, les auteurs proposent une extension des travaux de leur équipe pour le cas complexe des structures conditionnelles. Jusqu’ici les travaux de l’état de l’art se concentraient sur des portions de codes linéaires. La prise en compte des structures conditionnelles avec une approche analytique rapide va permettre de traiter des codes plus importants et plus réalistes.
« Un système de cache hiérarchique pour les E/S présentant des motifs séquentiels pour les mémoires flash NAND » de Pierre Olivier et Jalil Boukhobza propose une approche permettant d’augmenter la durée de vie des mémoires flash.
Ces mémoires sont de plus en plus utilisées dans les architectures au vu de leurs propriétés intéressantes (non-volatilité, faible coût, tolérance à certains rayonnements…). Elles souffrent cependant de deux problèmes majeurs qui sont leur temps d’accès et leur robustesse dans le temps. Dans cet article, des solutions à ces problèmes sont abordées et une solution novatrice est développée. Elle est basée sur la gestion d’un cache, introduit à l’entrée de la mémoire. L’objectif majeur est d’améliorer les temps d’accès à la mémoire flash tout en réduisant le nombre de cycles d’effacement de ce type de mémoire. Les nombreux résultats et la discussion finale sont convaincants et montrent l’intérêt de la méthode ainsi que le chemin restant à parcourir pour une solution vraiment optimale.
L’article « De quoi est faite une trace d’exécution ? » de Bernard Goossens, Ali El Moussaoui, Ke Chen, et David Parello, revisite un problème identifié depuis de longues années, la quantification du parallélisme d’instructions (ILP ou « instruction level parallelism ») de façon didactique, et identifie des cas représentatifs. La structure générale d’une exécution – qui caractérise son parallélisme – se compose essentiellement de deux parties opposées : l’une est d’ILP élevé, qui peut augmenter sans limite avec la longueur de la trace considérée et l’autre est d’ILP très faible (voisin de 1), qui peut s’allonger sans limite avec la trace. La première partie vient des contrôles des boucles à borne initiale constante alors que la seconde vient des transmissions de paramètres/résultats entre fonctions. Les auteurs démontrent ainsi que l’ILP des boucles et des fonctions est très élevé (voire maximum) dans les
Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com
Introduction 151
premiers cycles de l’exécution. Mieux, cet ILP du début augmente au fur et à mesure que la trace considérée s’allonge, et ce fort parallélisme de départ est très utile car il assure un stock d’instructions exécutables dans lequel piocher celles qui assurent la meilleure alimentation des opérateurs.
L’article « Méthodologie dédiée aux applications parallèles sur plateforme reconfigurable dynamiquement » de Clément Foucher, Fabrice Muller et Alain Giulieri présente des architectures reconfigurables qui permettent, grâce à leur nature malléable à distance et en service, d’implémenter des accélérateurs matériels dédiés à une application. Si l’on constate que les architectures de calcul parallèle commencent progressivement à intégrer de telles unités matériellement reconfigurables, sans un outillage adéquat, cette évolution ne permettra pas de tirer parti de l’accélération maximale potentiellement à portée. Cet article adresse ce problème à travers la proposition d’une plateforme, illustrée par plusieurs mises en œuvre, ainsi que d’un flot logiciel assurant une capacité de co-design en ligne sans perte d’héritage à valeur (« IP legacy »).
La conception de systèmes embarqués est abordée dans l’article « Introduction de la prédiction de branchement dans la synthèse de haut niveau » de Vianney Lapôtre, Philippe Coussy et Cyrille Chavet. Cet article propose une approche permettant de combiner la spéculation d’opérations et la prédiction de branchement dans la synthèse de haut niveau. L’approche proposée est originale et permet des solutions d’implémentation de mécanismes complexes intéressantes. Ainsi des mécanismes complexes sont pris en compte dans les phases de haut niveau de la conception de circuits et permettent d’envisager une implémentation efficace en termes de performances mais aussi en termes de ressources requises pour le support des mécanismes proposés.
Nous tenons à remercier chaleureusement les membres du comité de lecture ainsi que les relecteurs externes pour leur aide précieuse dans l’élaboration de ce numéro.
LOÏC LAGADEC ENSTA Bretagne, Brest
SÉBASTIEN PILLEMENT IETR,Université de Nantes
ARNAUD TISSERAND CNRS, IRISA, Lannion
Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com
Cet article des Editions Lavoisier est disponible en acces libre et gratuit sur tsi.revuesonline.com