Faculté des sciences et techniques de l'ingénieur STI, Section d'électricité, Institut de traitement des signaux ITS (Laboratoire de traitement des signaux 3 LTS3)

Adding limited reconfigurability to superscalar processors

Epalza, Marc ; Mlynek, Daniel (Dir.)

Thèse sciences techniques Ecole polytechnique fédérale de Lausanne EPFL : 2004 ; no 3124.

Ajouter à la liste personnelle
    Summary
    For the last thirty years, electronics, at first built with discrete components, and then as Integrated Circuits (IC), have brought diverse and lasting improvements to our quality of life. Examples might include digital calculators, automotive and airplane control assistance, almost all electrical household appliances, and the almost ubiquitous Personal Computer. Application-Specific Integrated Circuits (ASICs) were traditionally used for their high performance and low manufacturing cost, and were designed specifically for a single application with large volumes. But as lower product lifetimes and the pressures of fast marketing increased, ASICs' high design cost pushed for their replacement by Microprocessors. These processors, capable of implementing any functionality through a change in software, are thus often called General Purpose Processors. General purpose processors are used for everyday computing tasks, and found in all personal computers. They are also often used as building blocks for scientific supercomputers. Superscalar processors such as these require ever more processing power to run complex simulations, video games or versatile telecoms services. In the case of embedded applications, e.g. for portable devices, both performance and power consumption must be taken into account. In a bid to adapt a processor to some extent to select applications, fully reconfigurable logic can greatly improve the performance of a processor, since it is shaped for the best possible execution with the available resources. However, as reconfigurable logic is far slower than custom logic, this gain is possible only for some specific applications with large parallelism, after a detailed study of the algorithm. Even though this process can be automated, it still requires large computing resources, and cannot be performed at run time. To reduce the loss in speed compared to custom logic, it is possible to limit the reconfigurability to increase the breadth of applications where performance can be improved. However, as the application space increases, a careful analysis and design of the reconfigurability is required to minimize the speed loss, notably when dynamic reconfiguration is considered. As a case study, we analyze the feasibility of adding limited reconfigurability to the Floating Point Units (FPUs) of a general purpose processor. These rather large units execute all floating point operations, and may also be used for integer multiplication. If an application contains few or infrequent instructions that must be executed by the FPU, this idle hardware only increases power consumption without enhancing performance. This is often the case in non-scientific applications and even many recent and detailed video games which make heavy use of hardware display accelerators for 3D graphics. In a fast multiplier such as can be found in the FPU of a high performance processor, the logic to perform multiplication is a large tree of compressors to add all the partial products together. It is possible to add logic to allow the reconfiguration of part of this tree as several extra Arithmetic and Logic Units (ALU). This requires a detailed timing analysis for both the reconfigurable FPU and the extra ALUs, taking into account effects such as added wires and longer critical paths. Finally, the algorithm to decide when and how to reconfigure must be studied, in terms of eciency and complexity. The results of adding this limited reconfigurability to a mainstream superscalar processor over a large set of compute intensive benchmarks show gains of up to 56% in the best case, with an average gain of 11%. The application to an idealized huge top processor still shows slightly positive average gains, as the limits of available parallelism are reached, bounded by both the application and many of the characteristics of the processor. In all cases, binary compatibility is maintained, allowing the re-use of all existing software. We show that adding limited reconfigurability to a general purpose superscalar processor can produce interesting gains over a wide range of applications while maintaining binary compatibility, and without large modifications to the original design. Limited reconfigurability is worthwhile as it increases the design space, allowing gains to apply to a larger set of applications. These gains are achieved through careful study and optimization of the reconfigurable logic and the decision algorithm.
    Résumé
    Durant les trente dernières années, l'électronique, d'abord construite avec des composants discrets, puis sous forme de Circuits Intégrés (IC)), a apporté de nombreuses améliorations durables à notre qualité de vie. Les calculatrices, l'aide au pilotage de voitures ou d'avions, presque tous les appareils ménagers et le presque omniprésent Ordinateur Personnel (PC) en sont des exemples. Les Circuits Intégrés Dédiés à une Application (ASIC) ont traditionellement été utilisés pour leurs hautes performances et leur bas prix de fabrication, et étaient concus spécialement pour une seule application et produits en très grandes quantités. Mais la diminution de la durée de vie des produits et les pressions pour les mettre le plus rapidement possible sur le marché ont poussé au remplacement des ASICs aux coûts de développement élevés par des Microprocesseurs. Ces processeurs, capables d'implémenter n'importe quelle fonctionnalité par une modification du logiciel, sont donc souvent appellés Processeurs Génériques. Les processeurs génériques sont utilisés pour les tâches informatiques de tous les jours et présents dans tous les ordinateurs personnels. Ils sont aussi souvent utilisés comme blocs de base pour la construction de superordinateurs. Ces processeurs superscalaires ont besoin d'encore plus de puissance de calcul pour éxécuter des jeux vidéo ou des simulations complexes. Dans le cas d'applications embarquées, par exemple pour des appareils portables, la puissance de calcul et la consommation d'énergie doivent être pris en compte. Dans le but de s'adapter dans une certaine mesure à quelques applications précises, un circuit entièrement reconfigurable peut améliorer de fa¸con notable les performances d'un processeur, dans la mesure où ce circuit prend alors la forme la plus ecace possible vu les resources disponibles. Cependant, comme les circuits reconfigurables sont beaucoup plus lents que les circuits dédiés, ce gain de performances n'est possible que pour certaines applications bénéficiant d'un large parallélisme, et suite à une étude détaillée de l'algorithme concerné. Même en automatisant ce processus, une grande puissance de calcul est nécessaire et la reconfiguration ne peut donc pas être effectuée pendant l'utilisation du circuit. Pour minimiser la perte de vitesse face à un circuit dédié, il est possible de limiter la reconfigurabilité pour accroître l'éventail des applications dont la performance peut être améliorée. Cependant, une conception minutieuse de la reconfigurabilité est nécessaire pour réduire au maximum la perte de vitesse qui accompagne l'élargissement de l'espace des applications, en particulier lorsque la reconfiguration dynamique entre en jeu. Comme exemple, la faisabilité d'ajouter une reconfiguration limitée aux unités de calcul en virgule flottante (FPU) d'un processeur générique sera analysée. Ces unités plutôt volumineuses exécutent toutes les instructions à virgule flottante, et peuvent aussi être utilisées pour les multiplications entières. Si une application contient des instructions nécessitant la FPU qui sont peu nombreuses ou intermittentes, ces transistors ne font que consommer de l'énergie. Ceci est souvent le cas dans des applications non scientifiques, ainsi que dans beaucoup de jeux vidéo récents qui font grand usage d'accélérateurs graphiques pour les images en 3 dimensions. Dans un multiplieur rapide tel que celui présent dans la FPU d'un processeur à haute performance, le circuit effectuant la multiplication est un grand arbre de compression qui sert à additionner tous les produits partiels. Il est possible d'ajouter des transistors pour permettre la reconfiguration d'une partie de cet arbre sous la forme de plusieurs unités arithmétiques (ALU) supplémentaires. Cette opération requiert une analyse temporelle détaillée pour la FPU reconfigurable et les ALUs supplémentaires, en tenant compte d'effets dus à des fils supplémentaires et un chemin critique plus long, par exemple. Enfin, l'algorithme pour décider de la configuration à prendre à chaque instant doit aussi être analysé en termes d'ecacité et de complexité. Les résultats de l'addition de cette reconfigurabilité limitée à un processeur superscalaire de moyenne gamme montrent des gains jusqu'à 56% dans les meilleurs cas, avec un gain moyen de 11% sur une vaste palette de programmes utilisant intensivement le processeur. L'application à un processeur haut de gamme idéalisé montre encore des gains très légèrement positifs, alors que les limites du parallélisme disponible sont atteintes, celui-ci étant borné par les applications et les nombreuses caractéristiques du processeur. Dans tous les cas, la compatibilité binaire est préservée, permettant l'utilisation de tous les logiciels existants sur ce processeur reconfigurable. Cette thèse montre que l'ajout d'une reconfigurabilité limitée à un processeur superscalaire générique donne des gains de performance intéressants sur une vaste palette d'applications et ce en maintenant la compatibilité binaire et avec peu de changements à apporter au processeur original. La reconfigurabilité limitée est intéressante car elle augmente l'espace des choix du concepteur en permettant des gains dans un plus grand éventail d'applications. Ces gains sont obtenus au prix d'une étude rigoureuse et d'une optimisation des circuits reconfigurables et de l'algorithme de décision.