Utilisateur:Animorlus/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Architecture de processeur transformable[modifier | modifier le code]

L’architecture de processeur transformable est une architecture de processeur visant à bénéficier des avantages des différentes architectures déjà existantes tout en tentant de minimiser les inconvénients. Le but visé par ces prototypes de micro-architecture est généralement de bénéficier de la puissance d’un cœur large, généralement à exécution dans le désordre, ainsi que du rendement d’un petit cœur, le plus souvent à exécution ordonnée, sans toutefois être une solution trop spécifique, permettant une alternance entre les deux types de performances selon le besoin.

Origine[modifier | modifier le code]

Le processeur Intel I7-970 est un processeur multi-cœur

L'évolution des technologies ainsi que la miniaturisation des transistors a permis la diminution de la taille des processeurs et de ce fait, l'apparition des processeurs multicœurs hétérogènes. L'apparition de ce type de processeur a aussi permis de contrer les problèmes de surchauffe qui étaient liés à l'élévation de la puissance des processeurs monocœurs.

L'ajout de cœurs aux unités de processeurs a vu l'apparition de deux types de cœurs ; les cœurs larges, efficaces pour des threads simples, ainsi que les petits cœurs, efficaces pour des threads de parallélisme élevé.

Il serait toutefois difficile de se contenter d’un seul type de cœurs tout en restant performant dans la plupart des tâches qui peuvent être requises à un ordinateur. Les processeurs issus de ces contraintes doivent malgré tout rester économes en coût énergétique afin de rester accessibles au plus grand nombre d’appareils possible, comme les ordinateurs portables ainsi que les téléphones intelligents[1].

Plusieurs prototypes de microarchitectures furent conçus afin de répondre aux besoins d’économie énergétique et de performances élevées autant pour des threads multiples que simples. Ces prototypes s’opposent en quelque sorte au calcul hétérogène par le fait que celui-ci est généralement une solution spécifique alors que les processeurs transformables sont une solution plus généralisée, du fait que les processeurs hétérogènes possèdent souvent des unités de processeurs réservées à certaines tâches.

Évolution[modifier | modifier le code]

Les premiers prototypes de processeurs transformables suivaient une architecture fusionnelle, c’est-à-dire que plusieurs petits cœurs étaient fusionnés en un cœur plus puissant, entrainant une forte consommation énergétique. L’un des designs le plus représentatif de cette architecture fut l’architecture CoreFusion, basée sur la difficulté que représente la parallélisassions des processus au niveau de la programmation. En effet, peu de programmes utilisaient à ce moment les fonctionnalités des multiples cœurs des microprocesseurs. L’architecture proposée utilise plusieurs petits cœurs homogènes et permet de les fusionner afin d’imiter les performances d’un cœur large lors de processus simples, ou bien de les utiliser comme de cœurs séparés lors de tâches parallèles, et cela selon les besoins de la machine[2].

Toutefois, plusieurs ne furent pas satisfaits de la consommation énergétique de l’architecture CoreFusion lors de l’utilisation de son mode mono-cœur. Des études furent effectuées, concluant que la fusion de cœurs homogènes ne pouvaient pas présenter de réels avantages.

Un autre prototype fut présenté, à structure hétérogène, afin de minimiser la consommation énergétique tout en augmentant plus que possible les performances lors de la fusion en un mono-cœur. La structure hétérogène devait aussi permettre une spécialisation des cœurs, ce qui selon l’équipe de recherche, aurait permis d’augmenter les performances parrallèles[3].

Morph Core fut un prototype proposé s’opposant aux architectures semblables à CoreFusion, qui employait des petits cœurs qui étaient fusionnés, leur reprochant le manque de puissance du monocoeur comparativement à la haute consommation énergétique requise pour cette fonctionnalité. L’architecture de Morph Core est conçue à l’opposé de celle de ses prédécesseurs ; L’architecture veut employer des cœurs larges pour émuler le comportement de plusieurs petits cœurs[4].

CoreFusion[modifier | modifier le code]

L’architecture CoreFusion est un des premiers prototypes d’architecture transformable, produit par une équipe de recherche de l’université de Cornell en but du Symposium International sur l’Architecture Informatique.

But[modifier | modifier le code]

Le but de l’architecture proposée par l’équipe est de permettre des performances semblables à celle d’un processeur hétérogène comportant des cœurs larges ainsi que des petits cœurs, sans toutefois être limitée à une architecture fixé au moment de la production. Les processeurs issus de cette architecture devaient aussi bénéficier de performances plus stables ainsi que moins variantes par rapport au type de travail exigé par le processeur, problème touchant les processeurs hétérogènes, dont les performances sont contraintes par le logiciel de gestion des performances. L’architecture fusionnelle cherche plutôt à permettre la synthèse dynamique de la combinaison la plus performante en chaque moment.

Fonctionnement[modifier | modifier le code]

Une architecture CoreFusion devrait de façon standard être composée de plusieurs processeurs de cœurs moyens à exécution dans le désordre indépendant. Ces groupes de processeurs seraient optimisés pour des travaux d’exécution de parallélisme intensif, mais dont chaque groupe de quatre processeurs pourraient fusionnés en un seul processeur large sur demande, permettant l’utilisation de chacun des caches et des mémoires comme ceux d’un seul processeur. Ces processeurs larges seraient indépendants chacun des autres, dans l’optique d’un multiprocesseur composé de plus de quatre processeurs, afin de permettre l’exécution des programmes même si l’un des groupes de processeurs rencontrerait un bug.

Contrairement aux architectures énoncées avec elle, tel que l’architecture Bahurupi[5], Fusion Core ne nécessite pas de changement afin d’être compatible avec le bus informatique standard et permet l’exécution des binaires sans passer par un compilateur de processeur[4]. Cela fait en sorte que chaque exécution, peu importe la configuration des cœurs, devrait fonctionner de façon similaire[2].

Les changements de l’architecture dynamique nécessiteraient toutefois de nettoyer la cache des processeurs à chaque changement et peut causer certains problèmes dus à la migration des données entre les processeurs, sans compter le fait que passer des données entre processeurs de la sorte cause des latences.[3]

Impact[modifier | modifier le code]

L’architecture CoreFusion est probablement une des architectures transformables la plus évoquée dans des travaux sur ce type de processeur. Cette architecture est souvent employée pour comparer les performances d’un autre processeur transformable avec celle d’un processeur de la classe CoreFusion, c’est-à-dire un processeur à fusion de cœurs hétérogènes[2] [3] [4].

Fusion de cœur asymétrique[modifier | modifier le code]

L’architecture à fusion de cœur asymétrique est basée sur l’idée de fusionner des cœurs hétérogènes en un seul cœur selon les besoins de la machine. Cette architecture a été développée, entre autres, par une équipe de chercheurs de l’université de Massachussetts à Amherst et Lowell.

But[modifier | modifier le code]

Le but de l’architecture est de permettre d’obtenir de bonnes performances comme pour un processeur hétérogène composé de cœurs spécialisés lors d’activités de parallélisme élevé, tout en maintenant de hautes performances lors de l’absence de parallélisme par la fusion des cœurs différents. L’utilisation de cœurs de différentes spécialisations permettrait d’obtenir de très bonnes performances dans ces différentes spécialisations lors d’activités parallèles, et lorsque fusionnés, permettraient des performances plus élevées que l’utilisation d’un seul des cœurs[6].

Fonctionnement[modifier | modifier le code]

Une architecture fusion à cœur asymétrique est composée de plusieurs petits cœurs à exécution dans l’ordre qui sont assignés à des champs de spécialité. Ces multiples cœurs permettent des activités de parallélisme, tout en laissant la possibilité de fusionner en un seul cœur à exécution dans le désordre sur demande, ce qui permet la combinaison de presque toute la cache possédée par les différents cœurs spécialisés.

La spécialisation des cœurs permet un gain de puissance de calcul selon le type de travail exigé, même allant jusqu’à 100% de gains selon l’équipe de recherche. La spécification des cœurs nécessite toutefois l’utilisation d’un logiciel de gestion des performances, et limiterait aussi certaines tâches à un seul cœur, ce qui pourrait limiter l’exécution[7].

Contrairement à l’architecture CoreFusion, les cœurs ne peuvent fusionner qu’en un seul cœur large. Les cœurs qui sont employés étant petits, la consommation énergétique est beaucoup moindre que celle des architectures semblables à CoreFusion. Toutefois, comme avec l’architecture CoreFusion, la cache des cœurs doit être nettoyée lors des changements de configuration, et certains problèmes de latences dus à la communication entre les cœurs ne sont pas à exclure.

MorphCore[modifier | modifier le code]

L’architecture MorphCore a été développée afin de bénéficier de la puissance d’un cœur à exécution dans le désordre et pour se faire, mise sur l’utilisation d’un cœur large modifié qui permettrait d’être utilisé comme plusieurs petits cœurs. Cette architecture a été développé à l’université du Texas à Austin.

But[modifier | modifier le code]

Le but de l’architecture est de permettre de hautes performances à thread simple qui peut aussi se transformer en un processeur puissant lors de moments de threads élevés. L’utilisation d’un processeur qui est à la base monocoeur permettrait d’exécuter avec de hautes performances des calculs qui n’ont pas été programmés pour être exécutés en plusieurs threads, et permettrait aussi d’exécuter de façon efficace des programmes qui ont été codés de façon à exploiter le parallélisme, et cela sans requérir à une demande de changement de configuration.

Fonctionnement[modifier | modifier le code]

L’architecture MorphCore emploie un puissant cœur large à exécution dans le désordre qui, moyennant une légère perte de performances, peut bénéficier aussi d’une exécution à threads multiples simultanée. L’exécution standard s’effectue dans le désordre alors que l’exécution à threads multiples s’effectue dans l’ordre pour chacun de ses threads[4].

Contrairement à l’architecture CoreFusion, l’architecture MorphCore n’a pas à recevoir de signal afin d’effectuer de changement de configuration, celui-ci se fait automatiquement lorsque des applications à threads multiples sont exécutées. Cette technique permet donc de respecter la structure déjà programmée des applications, peu importe si elles ont été conçues pour tenir compte des cœurs multiples ou pas. Un changement de configuration ne nécessite pas d’effacer la cache, contrairement aux architectures à fusion des petits cœurs[8].

Contrairement aux architectures énoncées précédemment, celle de MorphCore emploie un seul cœur large, ce qui lui permet d’économiser de l’énergie lorsque l’on compare les niveaux de puissance de ces différentes architectures. Selon les données présentées par l’équipe de chercheur l’ayant mise au point, l’architecture MorpCore permettrait une augmentation de la vitesse d’exécution en threads multiples de 22%, compensant une perte d’environ 2,5% de vitesse lors d’exécution à thread simple, alors que la consommation énergétique ne serait augmentée que de 1% par rapport à un processeur monocoeur standard[4].

Impact[modifier | modifier le code]

Un processeur Dual-core (Intel Conroe), spéculé comme équipé de la technologie MorphCore.

Suite à la publication de l’étude sur l’architecture MorphCore et dut à la participation d’Intel, certains ont spéculés que cette nouvelle architecture serait incorporée à la prochaine lignée de processeurs Intel, soit Skylake[8] , voire même à ceux de son concurrent AMD dans sa série de microprocesseurs Zen. Toutefois, aucun des deux fabricants n’ont jamais fait mention de l’incorporation de cette nouvelle technologie dans leurs produits à venir.

Notes et références[modifier | modifier le code]

  1. (en) A. Shye, B. Scholbrock et G. Memik, « Into the wild: Studying real user activity patterns to guide power optimizations for mobile architectures », 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-42), New York,‎ , p. 168 - 178 (ISBN 978-1-60558-798-1, ISSN 1072-4451, DOI 10.1145/1669112.1669135)
  2. a b et c (en) « CoreFusion: Accommodating Software Diversity in Chip Multiprocessors », sur http://www.cs.rochester.edu/ (consulté le )
  3. a b et c (en) « Improving Performance per Watt of Asymmetric Multicore Processors via Online Program Phase Classification and Adaptive Core Morphing Multicores », sur http://citeseerx.ist.psu.edu/ (consulté le )
  4. a b c d et e (en) « MorphCore: An Energy-Efficient Microarchitecture for High Performance ILP and High Throughput TLP », sur http://hps.ece.utexas.edu/ (consulté le )
  5. (en) « Bahurupi: A Polymorphic Polymorphic Heterogeneous Multi‐core Architecture », sur http://home.deib.polimi.it/
  6. (en) « Specialized Processors », sur http://alumni.media.mit.edu/
  7. (en) « A Dynamic Reconfiguration Framework to Maximize Performance/Power in Asymmetric Multicore Processors », sur http://scholarworks.umass.edu/
  8. a et b (en) « Intel Preparing Something ‘Big’ and ‘Disruptive’ with Skylake Microarchitecture », sur http://wccftech.com/ (consulté le )