Processeurs

3.3691618681759 (1563)
Posté par rachel 18/03/2009 @ 22:13

Tags : processeurs, matériel, informatique, high-tech

Dernières actualités
Kaspersky Lab commercialise une suite antivirus spéciale netbooks - ZDNet
Sécurité - L'éditeur de solutions de sécurité a dévoilé une suite spécialement développée pour les netbooks tournant sous Windows XP avec des processeurs Intel et Via. Véritable innovation ou opportunisme marketing ? Selon Kaspersky, sa suite Internet...
Des processeurs Intel 6-cores pour la fin de l'année - Cowcotland
Selon une information de Bit-Tech, nous pourrions voir débarquer les premiers processeurs Intel Nehalem en 6 cores d'ici la fin de l'année, en même temps que les Lynnfield et la plateforme P55. Le plus intéressant réside surement dans le compatibilité...
Amende record pour Intel - Team-aAa.com
Cette amende se justifie par le fait que le géant américain aurait eu recours à diverses pratiques visant à empêcher, à son profit, son principal concurrent AMD de vendre ses processeurs x86. Entre autres, la commission européenne accuse la société...
Un processeur à 600MHz et 256Mo de RAM pour l'iPhone 3GS - Mac4ever
Ainsi un processeur à 600MHz et 256Mo de RAM sont présents. Comparé aux processeurs actuels (412 MHz pour l'iPhone et 532 MHz pour le touch) et aux 128Mo de RAM, on comprend d'où vient la puissance accrue annoncée par Apple. Côté graphimes, on savait...
Apple signe la fin du PowerPC, et monte à 600 MHz sur l'Iphone - Journal du Net
La prochaine version de Mac OS X se limitera aux Mac équipés de processeurs Intel. Parallèlement, une fuite chez T-Mobile dévoile la configuration matérielle du prochain iPhone. Le PowerPC sera définitivement mort et enterré en septembre prochain lors...
Nouveaux processeurs CULV chez Intel - Matbe.com
Intel a récemment ajouté plusieurs nouveaux processeurs dans sa gamme CULV. Le Celeron 743 est un dual-core cadencé à 1.3 GHz. Gravé en 45 nm, son TDP est de 10 watts seulement. Il dispose de 1 Mo de L2 est nécessite un FSB800....
Java, mieux adapté aux processeurs ARM ? - Silicon.fr
Sun Microsystems et Qualcomm ont effectué un travail d'optimisation important, afin d'adapter Java aux processeurs Snapdragon, des puces ARM 32 bits. La nouvelle version de Java SE 6 for Embedded (pour Linux et ARM) serait ainsi 32 fois plus rapide que...
OpenSolaris s'ouvre aux processeurs ARM - LeMagIT
OpenSolaris vient d'être adapté aux architectures ARM. Une première version est immédiatement disponible au téléchargement. Il ne s'agit encore que d'une ancienne version d'OpenSolaris, la 2008.5. Mais celle-ci tire déjà profit de certaines...
La loi Moore des centres de traitement de données - Enerzine
Environ un tiers de l'électricité consommée par les grands centres de traitement de données est employé à refroidir les serveurs, et ce volume devrait augmenter au même rythme que la puissance des processeurs et la popularité des services du Cloud....
Istanbul : AMD prend de l'avance sur le marché des processeurs ... - Journal du Net
AMD met sur le marché de nouveaux processeurs Opteron, destinés aux serveurs. La gamme Istanbul est gravée en 45 nanomètres, et conserve la compatibilité avec le socket F du fondeur. Dotés de 6 cœurs, ces processeurs se répartissent en deux catégories....

Processeur

Diagramme fonctionnel d'un processeur simple

Le processeur, (ou CPU, Central Processing Unit, « Unité centrale de traitement » en français) est le composant essentiel d'un ordinateur qui interprète les instructions et traite les données d'un programme.

La vitesse de traitement d'un processeur est encore parfois exprimée en MIPS (million d'instructions par seconde) ou en Mégaflops (millions de floating-point operations per second) pour la partie virgule flottante, dite FPU (Floating Point Unit). Pourtant, aujourd'hui, les processeurs sont basés sur différentes architectures et techniques de parallélisation des traitements qui ne permettent plus de déterminer simplement leurs performances. Des programmes spécifiques d'évaluation des performances (benchmarks) ont été mis au point pour obtenir des comparatifs des temps d'exécution de programmes réels.

C'est le processeur qui apporte aux ordinateurs leur capacité fondamentale à être programmés, c'est un des composants nécessaires au fonctionnement de tous les types d'ordinateurs, associés aux mémoires primaires et aux dispositifs d'entrée/sortie. Un processeur construit en un seul circuit intégré est communément nommé microprocesseur, à l'inverse, certains fabricants ont développé des processeurs en tranches, dans ce cas les fonctions élémentaires (ALU, FPU, séquenceur, etc.) sont réparties dans plusieurs circuits intégrés spécialisés.

L'invention du transistor en 1947 a ouvert la voie de la miniaturisation des composants électroniques et le terme d'unité centrale (CPU) est utilisé dans l'industrie électronique dès le début des années 1960 (Weik 1961). Depuis le milieu des années 1970, la complexité et la puissance des microprocesseurs n'a cessé d'augmenter au-delà de tous les autres types de processeurs au point qu'aujourd'hui les termes de processeur, microprocesseur ou CPU, s'utilisent de manière indifférenciée pour tous les types de processeurs.

Les processeurs des débuts étaient conçus spécifiquement pour un ordinateur d'un type donné. Cette méthode coûteuse de conception des processeurs pour une application spécifique a conduit au développement de la production de masse de processeurs qui conviennent pour un ou plusieurs usages. Cette tendance à la standardisation qui débuta dans le domaine des ordinateurs centraux (mainframes à transistors discrets et mini-ordinateurs) a connu une accélération rapide avec l'avènement des circuits intégrés. Les circuits intégrés ont permis la miniaturisation des processeurs dont les dimensions sont réduites à l'ordre de grandeur du millimètre. La miniaturisation et la standardisation des processeurs ont conduit à leur diffusion dans la vie moderne bien au-delà des usages des machines programmables dédiées. On trouve les microprocesseurs modernes partout, de l'automobile aux téléphones portables, en passant par les jouets pour enfants.

Avant l'arrivée des machines qui ressemblent aux unités centrales de traitement d'aujourd'hui, les ordinateurs tels que l'ENIAC devaient être physiquement recâblés avant d'exécuter chaque programme, c'est pour cette raison qu'on les a appelés « ordinateurs à un programme ». Puisque le terme « unité centrale de traitement » est généralement défini comme dispositif d'exécution de logiciel (programme machine), les premiers dispositifs que l'on pourrait appeler processeur sont arrivés avec les ordinateurs à programme enregistré.

L'idée d'un ordinateur à programme enregistré était déjà présente pendant la conception d'ENIAC, mais avait été volontairement écartée pour que la machine soit terminée plus tôt. Le 30 juin 1945, avant qu'ENIAC ait été achevé, le mathématicien John von Neumann a diffusé le document intitulé « première ébauche d'un rapport sur l'EDVAC. » Il a décrit la conception d'un ordinateur à programme enregistré qui sera par la suite complété en août 1949 (von Neumann 1945). EDVAC a été conçu pour exécuter un certain nombre d'instructions (ou opérations) de divers types. Ces instructions pouvaient être combinées pour créer des programmes utiles au fonctionnement de l'EDVAC. De manière significative, les programmes écrits pour EDVAC ont été stockés dans de la mémoire d'ordinateur à grande vitesse plutôt que définis par le câblage physique de l'ordinateur. Ceci a surmonté une limitation importante d'ENIAC, qui était la grande quantité de temps et d'effort nécessaires pour modifier l'ordinateur en vue d'exécuter un nouveau programme. Avec la conception de von Neumann, le programme, ou le logiciel, qu'EDVAC exécutait pouvait être changé par simple modification du contenu de la mémoire d'ordinateur.

Tandis que von Neumann le plus souvent est crédité de la conception de l'ordinateur à programme enregistré en raison de sa conception d'EDVAC, d'autres avant lui tel que Konrad Zuse avaient suggéré des idées semblables. De plus, l'architecture de Harvard (Harvard Mark I), qui a été réalisée avant EDVAC, a également utilisé une conception à programme enregistré en utilisant le ruban perforé plutôt que la mémoire électronique. La différence principale entre les architectures von Neumann et Harvard est que la dernière sépare le stockage et le traitement des instructions et des données d'unité centrale de traitement, tandis que l'autre utilise le même espace mémoire pour les deux. La plupart des unités centrales de traitement modernes sont principalement von Neumann dans la conception, mais des éléments de l'architecture de Harvard y sont généralement ajoutés.

Comme tous les dispositifs numériques, les processeurs traitent des états discrets et requièrent donc des éléments de commutation pour différencier et changer ces états. Avant l'acceptation commerciale du transistor, les relais électromécaniques et les tubes électroniques étaient utilisés généralement comme éléments de commutation. Bien que ceux-ci présentent des avantages certains de vitesse sur les précédents, de conception purement mécanique, ils étaient peu fiables pour différentes raisons. Par exemple, réaliser des circuits de logique séquentielle à courant continu avec des relais impose du matériel additionnel pour régler le problème du rebond de contact. Tandis que les tubes à vide ne souffrent pas du rebond de contact, ils doivent être préchauffés avant de devenir complètement opérationnels et par la suite peuvent cesser de fonctionner brutalement. Régulièrement, quand un tube tombe en panne il faut procéder à un diagnostic de l'unité centrale de traitement en localisant et en remplaçant l'élément défaillant. Par conséquent, les ordinateurs électroniques plus récents (utilisant des tubes à vide) étaient généralement plus rapides mais moins fiables que les anciens (utilisant des relais) ordinateurs électromécaniques. Les ordinateurs à tubes comme EDVAC fonctionnaient en moyenne huit heures entre les pannes, tandis que les ordinateurs à relais (plus lents mais arrivés plus tôt) d'architecture Harvard ne tombaient en panne que très rarement (Weik 1961:238). En fin de compte, les unités centrales de traitement à tubes ont supplanté les autres parce que leurs avantages significatifs de vitesse ont été prépondérants par rapport aux problèmes de fiabilité. La plupart de ces premières unités centrales de traitement synchrones ont fonctionné à de basses fréquences de base comparées aux conceptions microélectroniques modernes. Les fréquences de signal d'horloge s'étendant de 100 kilohertz à 4 mégahertz étaient très communes à l'époque, limitées en grande partie par la vitesse des dispositifs de commutation qu'elles utilisaient.

La complexité de conception des unités centrales de traitement s'est accrue lorsque diverses technologies ont facilité la construction de dispositifs électroniques plus petits et plus fiables. La première de ces améliorations est apparue avec l'avènement du transistor. Les processeurs transistorisés des années 1950 et des années 1960 n'ont plus besoin de faire appel à des éléments de commutation encombrants, peu fiables et fragiles comme les tubes à vide et les relais électromécaniques. Avec cette amélioration, des unités centrales de traitement plus complexes et plus fiables ont été construites sur une ou plusieurs cartes de circuit imprimé contenant des composants discrets (individuels). Au cours de cette période, une nouvelle méthode de fabrication a vu le jour, permettant de grouper un grand nombre de transistors sur une surface réduite de matériau semi-conducteur, le circuit intégré (IC) était né.

Au tout début, des circuits numériques non spécialisés, tels que les portes NOR, ont été miniaturisés dans des circuits intégrés. Les unités centrales de traitement basées sur ces modules élémentaires sont généralement appelés dispositifs à faible intégration (SSI, pour Small Scale Integration). Les circuits intégrés SSI, comme ceux utilisés dans l'ordinateur de guidage de la station spatiale Apollo, ne comptent généralement qu'une dizaine de transistors. Construire une unité centrale de traitement entièrement en circuits SSI nécessite des milliers de circuits intégrés individuels, mais consomme toujours beaucoup moins d'espace et de puissance que les montages à transistors discrets précédents. Pendant que la technologie microélectronique avançait, un nombre croissant de transistors ont été intégrés dans les circuits, de ce fait diminuant le nombre de circuits individuels nécessaires pour une unité centrale de traitement complète.

Ces distinctions ont peu à peu perdu de leur utilité avec la croissance exponentielle du nombre de portes. Aujourd'hui plusieurs centaines de millions de transistors (plusieurs dizaines de millions de portes) représentent un chiffre normal (pour un microprocesseur ou un circuit intégré graphique haut de gamme).

En 1964 IBM a présenté son architecture d'ordinateur System/360, qui a été employée dans une série d'ordinateurs qui pouvaient exécuter les mêmes programmes à différentes vitesses et performances. C'était significatif à un moment où la plupart des ordinateurs étaient incompatibles entre eux, même ceux construits par le même fabricant. Pour développer cette avancée, IBM mis au point le concept de microprogramme (souvent appelé « microcode »), dont l'utilisation est encore fréquente dans des unités centrales de traitement modernes. L'architecture System/360 était si populaire qu'elle a dominé le marché des ordinateurs centraux pendant plusieurs décennies laissant un héritage encore utilisé par des ordinateurs modernes comme les zSeries d'IBM. Au cours de la même année (1964), Digital Equipment Corporation (DEC) a présenté un autre ordinateur déterminant destiné au marché des ordinateurs scientifiques et de recherche, le PDP-8. DEC lancera plus tard la famille très populaire des PDP-11 qui fut à l'origine basée sur des circuits intégrés SSI puis finalement dotée de circuits LSI dès que ceux-ci furent disponibles. Contrastant avec ses prédécesseurs SSI et MSI, la première implémentation en LSI du PDP-11 comportait une unité centrale de traitement à seulement quatre circuits intégrés.

Les ordinateurs à transistors avaient plusieurs avantages certains par rapport à leurs prédécesseurs. Hormis la meilleure fiabilité et la moindre consommation d'énergie, les transistors ont permis aux processeurs de fonctionner à des vitesses beaucoup plus élevées car les temps de commutation des transistors sont beaucoup plus courts que ceux des tubes et des relais. Grâce à ces deux avancées, la fréquence d'horloge des processeurs s'est accrue considérablement pour atteindre plusieurs gigahertz. Alors que les processeurs à transistors et à circuits intégrés étaient d'usage courant, de nouveaux concepts d'architecture à haute performance comme les processeurs vectoriels et le SIMD (Simple Instruction Multiple Data - données multiples instruction simple) commencèrent à apparaître et ouvrirent la voie au développement des supercalculateurs spécialisés comme ceux qui furent réalisés par la société Cray Research.

L'introduction du microprocesseur dans les années 1970 a marqué de manière significative la conception et l'implémentation des unités centrales de traitement. Depuis l'introduction du premier microprocesseur (Intel 4004) en 1970 et du premier microprocesseur employé couramment (Intel 8080) en 1974, cette classe de processeurs a presque totalement dépassé toutes les autres méthodes d'implémentation d'unité centrale de traitement. Les fabricants d'ordinateurs centraux (mainframe et miniordinateurs) de l'époque ont lancé leurs propres programmes de développement de circuits intégrés pour mettre à niveau les architectures anciennes de leurs ordinateurs et ont par la suite produit des microprocesseurs à jeu d'instructions compatible en assurant la compatibilité ascendante avec leurs anciens modèles. Les générations précédentes des unités centrales de traitement comportaient un assemblage de composants discrets et de nombreux circuits faiblement intégrés sur une ou plusieurs cartes électroniques. Les microprocesseurs sont construits avec un très petit nombre de circuits très fortement intégrés (ULSI), habituellement un seul. Les microprocesseurs sont implémentés sur une seule puce électronique, donc de dimensions réduites, ce qui veut dire des temps de commutation plus courts liés à des facteurs physiques comme par exemple la diminution de la capacité parasite des portes. Ceci a permis aux microprocesseurs synchrones d'augmenter leur fréquence de base de quelques dizaines de mégahertz à plusieurs gigahertz. De plus, à mesure que la capacité de fabriquer des transistors extrêmement petits sur un circuit intégré a augmenté, la complexité et le nombre de transistors dans un seul processeur a considérablement augmenté. Cette tendance largement observée est décrite par la loi de Moore, qui s'est avérée être jusqu'ici un facteur prédictif assez précis de la croissance de la complexité des processeurs (et de tout autre circuit intégré).

Les processeurs multi cœur (multicores) récents comportent maintenant plusieurs cœurs dans un seul circuit intégré, leur efficacité dépend grandement de la topologie d'interconnexion entre les cœurs. De nouvelles approches comme la superposition de la mémoire et du cœur de processeur (memory stacking) sont à l'étude et devraient conduire à un nouvel accroissement des performances. En se basant sur les tendances des 10 dernières années, les performances des processeurs devraient atteindre le Pétaflop, vers 2010 pour les serveurs, et à l'horizon 2030 dans les PC.

Début juin 2008 le supercalculateur militaire IBM Roadrunner est le premier à franchir cette barre symbolique du Pétaflop.

Tandis que la complexité, la taille, la construction, et la forme générale des processeurs ont fortement évolué au cours des soixante dernières années, la conception et la fonction de base n'ont pas beaucoup changé. Presque tous les processeurs communs d'aujourd'hui peuvent être décrits très précisément comme machines à programme enregistré de von Neumann. Alors que la loi de Moore, mentionnée ci-dessus, continue à être vérifiée, des questions ont surgi au sujet des limites de la technologie des circuits intégrés à transistors. La miniaturisation des portes électroniques est si importante que les effets de phénomènes comme l'électromigration (dégradation progressive des interconnexions métalliques entraînant une diminution de la fiabilité des circuits intégrés) et les courants de fuite (leur importance augmente avec la réduction des dimensions des circuits intégrés, ils sont à l'origine d'une consommation d'énergie électrique pénalisante), auparavant négligeables, deviennent de plus en plus significatifs. Ces nouveaux problèmes sont parmi les nombreux facteurs conduisant les chercheurs à étudier d'une part, de nouvelles technologies de traitement telles que l'ordinateur quantique l'usage du calcul parallèle, et d'autre part, d'autres méthodes d'utilisation du modèle classique de von Neumann.

Le rôle fondamental de la plupart des unités centrales de traitement, indépendamment de la forme physique qu'elles prennent, est d'exécuter une série d'instructions stockées appelées "programme".

Les instructions (parfois décomposées en micro instructions) et les données transmises au processeur sont exprimées en mots binaires (code machine). Elles sont généralement stockées dans la mémoire. Le séquenceur ordonne la lecture du contenu de la mémoire et la constitution des mots présentées à l'ALU qui les interprète.

L’ensemble des instructions et des données constitue un programme.

Le langage le plus proche du code machine tout en restant lisible par des humains est le langage d’assemblage, aussi appelé langage assembleur (forme francisée du mot anglais « assembler »). Toutefois, l’informatique a développé toute une série de langages, dits de haut niveau (comme le BASIC, Pascal, C, C++, Fortran, Ada, etc), destinés à simplifier l’écriture des programmes.

La première étape, FETCH (recherche), consiste à rechercher une instruction dans la mémoire vive de l'ordinateur. L'emplacement dans la mémoire est déterminé par le compteur de programme (PC), qui stocke l'adresse de la prochaine instruction dans la mémoire de programme. Après qu'une instruction a été recherchée, le PC est incrémenté par la longueur du mot d'instruction. Dans le cas de mot de longueur constante simple, c'est toujours le même nombre. Par exemple, un mot de 32 bits de longueur constante qui emploie des mots de 8 bits de mémoire incrémenterait toujours le PC par 4 (excepté dans le cas des sauts). Le jeu d'instructions qui emploie des instructions de longueurs variables comme l'x86, incrémentent le PC par le nombre de mots de mémoire correspondant à la dernière longueur d'instruction. En outre, dans des unités centrales de traitement plus complexes, l'incrémentation du PC ne se produit pas nécessairement à la fin de l'exécution d'instruction. C'est particulièrement le cas dans des architectures fortement parallélisées et superscalaires. Souvent, la recherche de l'instruction doit être opérée dans des mémoires lentes, ralentissant l'unité centrale de traitement qui attend l'instruction. Cette question est en grande partie résolue dans les processeurs modernes par l'utilisation de caches et d'architectures pipelines.

L'instruction que le processeur recherche en mémoire est utilisée pour déterminer ce que le CPU doit faire. Dans l'étape DECODE (décodage), l'instruction est découpée en plusieurs parties telles qu'elles puissent être utilisées par d'autres parties du processeur. La façon dont la valeur de l'instruction est interprétée est définie par le jeu d'instructions (ISA) du processeur. Souvent, une partie d'une instruction, appelée opcode (code d'opération), indique quelle opération est à faire, par exemple une addition. Les parties restantes de l'instruction comportent habituellement les autres informations nécessaires à l'exécution de l'instruction comme par exemples les opérandes de l'addition. Ces opérandes peuvent prendre une valeur constante, appelée valeur immédiate, ou bien contenir l'emplacement où retrouver (dans un registre ou une adresse mémoire) la valeur de l'opérande, suivant le mode d'adressage utilisé. Dans les conceptions anciennes, les parties du processeur responsables du décodage étaient fixes et non modifiables car elles étaient codées dans les circuits. Dans les processeurs plus récents, un microprogramme est souvent utilisé pour traduire les instructions en différents ordres. Ce microprogramme est parfois modifiable pour changer la façon dont le CPU décode les instructions, même après sa fabrication.

Après les étapes de recherche et de décodage arrive l'étape EXECUTE (exécution) de l'instruction. Au cours de cette étape, différentes parties du processeur sont mises en relation pour réaliser l'opération souhaitée. Par exemple, pour une addition, l'unité arithmétique et logique (ALU) sera connectée à des entrées et des sorties. Les entrées présentent les nombres à additionner et les sorties contiennent la somme finale. L'ALU contient la circuiterie pour réaliser des opérations d'arithmétique et de logique simples sur les entrées (addition, opération sur les bits). Si le résultat d'une addition est trop grand pour être codé par le processeur, un signal de débordement est positionné dans un registre d'état (voir ci-dessous le chapitre sur le codage des nombres).

La dernière étape WRITEBACK (écriture du résultat), écrit tout simplement les résultats de l'étape d'exécution en mémoire. Très souvent, les résultats sont écrits dans un registre interne au processeur pour bénéficier de temps d'accès très courts pour les instructions suivantes. Dans d'autres cas, les résultats sont écrits plus lentement dans des mémoires RAM, donc à moindre coût et acceptant des codages de nombres plus grands.

Certains types d'instructions manipulent le compteur de programme plutôt que de produire directement des données de résultat. Ces instructions sont appelées des sauts (jumps) et permettent de réaliser des boucles (loops), des programmes à exécution conditionnelle ou des fonctions (sous-programmes) dans des programmes. Beaucoup d'instructions servent aussi à changer l'état de drapeaux (flags) dans un registre d'état. Ces états peuvent être utilisés pour conditionner le comportement d'un programme, puisqu'ils indiquent souvent la fin d'exécution de différentes opérations. Par exemple, une instruction de comparaison entre deux nombres va positionner un drapeau dans un registre d'état suivant le résultat de la comparaison. Ce drapeau peut alors être réutilisé par une instruction de saut pour poursuivre le déroulement du programme.

Après l'exécution de l'instruction et l'écriture des résultats, tout le processus se répète, le prochain cycle d'instruction recherche la séquence d'instruction suivante puisque le compteur de programme avait été incrémenté. Si l'instruction précédente était un saut, c'est l'adresse de destination du saut qui est enregistrée dans le compteur de programme. Dans des processeurs plus complexes, plusieurs instructions peuvent être recherchées, décodées et exécutées simultanément, on parle alors d'architecture pipeline, aujourd'hui communément utilisée dans les équipements électroniques.

La manière dont un CPU représente les nombres est un choix de conception qui affecte de façon profonde son fonctionnement de base. Certains des ordinateurs les plus anciens utilisaient un modèle électrique du système numérique décimal (base 10). Certains autres ont fait le choix de systèmes numériques plus exotiques comme les systèmes trinaires (base 3). Les processeurs modernes représentent les nombres dans le système binaire (base 2) dans lequel chacun des chiffres est représenté par une grandeur physique qui ne peut prendre que 2 valeurs comme une tension électrique "haute" ou "basse".

Le concept physique de tension électrique est analogique par nature car elle peut prendre une infinité de valeurs. Pour les besoins de représentation physique des nombres binaires, les valeurs des tensions électriques sont définies comme des états 1 et 0. Ces états résultent des paramètres opérationnels des éléments de commutation qui composent le processeur comme les niveaux de seuil des transistors.

En plus du système de représentation des nombres, il faut s'intéresser à la taille et la précision des nombres qu'un processeur peut manipuler. Dans le cas d'un processeur binaire, un "bit" correspond à une position particulière dans les nombres que le processeur peut gérer. Le nombre de bits (chiffres) qu'un processeur utilise pour représenter un nombre est souvent appelé "taille du mot" (word size, bit width, data path width) ou "précision entière" lorsqu'il s'agit de nombres entiers (à l'opposé des nombres flottants). Ce nombre diffère suivant les architectures, et souvent, suivant les différents modules d'un même processeur. Par exemple, un CPU 8-bit gère des nombres qui peuvent être représentés par 8 chiffres binaires (chaque chiffre pouvant prendre 2 valeurs), soit 28 ou 256 valeurs discrètes. En conséquence, la taille du nombre entier défini une limite à la plage des nombres entiers que le logiciel exécuté par le processeur pourra utiliser.

La taille du nombre entier affecte également le nombre d'emplacements mémoire que le processeur peut adresser (localiser). Par exemple, si un processeur binaire utilise 32 bits pour représenter une adresse mémoire et que chaque adresse mémoire est représentée par un octet (8 bits), la taille mémoire maximum qui peut être adressée par ce processeur est de 232 octets, ou 4 Gio. C'est une vision très simpliste de l'espace d'adressage d'un processeur et beaucoup de conceptions utilisent des types d'adressages bien plus complexes, comme la pagination, pour adresser plus de mémoire que la taille du nombre entier le leur permettrait avec un espace d'adressage à plat.

De plus grandes plages de nombres entiers nécessitent plus de structures élémentaires pour gérer les chiffres additionnels, conduisant à plus de complexité, des dimensions plus importantes, plus de consommation d'énergie et des coûts plus élevés. Il n'est donc pas rare de rencontrer des microcontrôleurs 4-bit ou 8-bit dans des applications modernes, même si des processeurs 16-bit, 32-bit, 64-bit et même 128-bit sont disponibles. Pour bénéficier des avantages à la fois des tailles d'entier courtes et longues, beaucoup de CPU sont conçus avec différentes largeurs d'entiers dans différentes parties du composant. Par exemple, le System/370 d'IBM est doté d'un CPU nativement 32-bit mais qui utilise une unité de calcul flottant (FPU) de 128-bit de précision pour atteindre une plus grande précision dans les calculs avec les nombres flottants. Beaucoup des processeurs les plus récents utilisent une combinaison comparable de taille de nombres, spécialement lorsque le processeur est dédié à un usage généraliste pour lequel il est nécessaire de trouver le juste équilibre entre les capacités à traiter les nombres entiers et les nombres flottants.

La plupart des processeurs, et plus largement la plupart des circuits de logique séquentielle, ont un fonctionnement synchrone par nature. Cela veut dire qu'ils sont conçus et fonctionnent au rythme d'un signal de synchronisation. Ce signal, qu'on appelle généralement signal d'horloge, prend souvent la forme d'une onde carrée périodique. En calculant le temps maximum que prend le signal électrique pour se propager dans les différentes branches des circuits du processeur, le concepteur peut sélectionner la période appropriée du signal d'horloge.

Cette période doit être supérieure au temps que prend le signal pour se propager dans le pire des cas. En fixant la période de l'horloge à une valeur bien au-dessus du pire des cas de temps de propagation, il est possible de concevoir entièrement le processeur et la façon dont il déplace les données autour des "fronts" montants ou descendants du signal d'horloge. Ceci a pour avantage de simplifier significativement le processeur tant du point de vue de sa conception que de celui du nombre de ses composants. Par contre, ceci a pour inconvénient le ralentissement du processeur puisque sa vitesse doit s'adapter à celle de son élément le plus lent, même si d'autres parties sont beaucoup plus rapides. Ces limitations sont largement compensées par différentes méthodes d'accroissement du parallélisme des processeurs (Voir ci-dessous).

Les améliorations d'architecture ne peuvent pas, à elles seules, résoudre tous les inconvénients des processeurs globalement synchrones. Par exemple, un signal d'horloge est sujet à des retards comme tous les autres signaux électriques. Les fréquences d'horloge plus élevées que l'on trouve dans les processeurs à la complexité croissante engendrent des difficultés pour conserver le signal d'horloge en phase (synchronisé) à travers toute l'unité centrale de traitement. En conséquence, beaucoup des processeurs d'aujourd'hui nécessitent la fourniture de plusieurs signaux d'horloge identiques de façon à éviter que le retard d'un seul signal ne puisse être la cause d'un dysfonctionnement du processeur. La forte quantité de chaleur qui doit être dissipée par le processeur constitue un autre problème majeur dû à l'accroissement des fréquences d'horloge. Les changements d'état fréquents de l'horloge font commuter un grand nombre de composants, qu'ils soient ou non utilisés à cet instant. En général, les composants qui commutent utilisent plus d'énergie que ceux qui restent dans un état statique. ainsi, plus les fréquences d'horloge augmentent et plus la dissipation de chaleur en fait autant, ce qui fait que les processeurs requièrent des solutions de refroidissement plus efficaces.

La méthode dite de clock gating permet de gérer la commutation involontaire de composants en inhibant le signal d'horloge sur les éléments choisis mais cette pratique est difficile à implémenter et reste réservée aux besoins de circuits à très faible consommation.

Une autre méthode consiste à invalider le signal global d'horloge, la consommation d'énergie et la dissipation thermique sont réduites mais la conception du circuit devient plus complexe. Certaines conceptions ont été réalisés sans signal global d'horloge, comme par exemple les familles de processeurs ARM ou MIPS, d'autres ne présentent que des parties asynchrones comme par exemple l'utilisation d'un ALU asynchrone avec un pipelining superscalaire pour atteindre des gains de performance dans les calculs arithmétiques. Il n'est pas certain qu'un processeur totalement asynchrone puisse délivrer un niveau de performance comparable ou supérieur à un processeur synchrone alors qu'il est évident qu'il sera meilleur dans les opérations mathématiques simples, il sera donc plutôt réservé aux applications embarquées (ordinateurs de poche, consoles de jeux...).

L'overclocking aussi noté o/c est une méthode qui consiste pour l'utilisateur à augmenter la fréquence de l'horloge du processeur (ou, plus généralement, d'un composant) pour bénéficier de plus de performances.

Le fonctionnement des composants à une vitesse supérieure à leur vitesse nominale est possible dans certaines limites non garanties et souvent non documentées par les constructeurs. La mise au point de tels systèmes s'avère donc délicate et nécessite une démarche progressive et empirique, notamment pour la définition des moyens de refroidissement complémentaires.

La description du mode de fonctionnement de base d'un processeur présentée au chapitre précédent présente la forme la plus simple que peut prendre un CPU. Ce type de processeur, appelé subscalaire, exécute une instruction sur un ou deux champs de données à la fois.

Ce processus est inefficace et inhérent aux processeurs subscalaires. Puisqu'une seule instruction n'est exécutée à la fois, tout le processeur attend la fin du traitement de cette instruction avant de s'intéresser à la suivante avec pour conséquence que le processeur reste figé sur les instructions qui nécessitent plus d'un cycle d'horloge pour s'exécuter. L'ajout d'une seconde unité de traitement (voir ci-dessous), ne permet pas d'améliorer notablement les performances, ce n'est plus une unité de traitement qui se trouve figée mais 2, en augmentant encore le nombre de transistors inutilisés. Ce type de conception, dans laquelle les ressources d'exécution du CPU ne traitent qu'une seule instruction à la fois ne peut atteindre que des performances scalaires (une instruction par cycle d'horloge), voire subscalaires (moins d'une instruction par cycle d'horloge).

L'ILP cherche à augmenter la vitesse à laquelle les instructions sont exécutées par un CPU (c’est-à-dire augmenter l'utilisation des ressources d'exécution présentes dans le circuit intégré). L'objectif du TLP est d'accroître le nombre de threads que le CPU pourra exécuter simultanément. Chaque méthode diffère de l'autre d'une part, par la façon avec laquelle elle est implémentée et d'autre part, du fait de leur efficacité relative à augmenter les performances des processeurs pour une application.

Une des méthodes les plus simples pour accroître le parallélisme consiste à démarrer les premières étapes de recherche (fetch) et décodage (decode) d'une instruction avant la fin d'exécution de l'instruction précédente. C'est la forme la plus simple de la technique de pipelining, elle est utilisée dans la plupart des processeurs modernes non spécialisés. Le pipelining permet d'exécuter plus d'une instruction à la fois en décomposant le chemin d'exécution en différentes étapes. Ce découpage peut être comparé à une chaîne d'assemblage.

Le pipelining peut créer des conflits de dépendance de données, lorsque le résultat de l'opération précédente est nécessaire à l'exécution de l'opération suivante. Pour résoudre ce problème, un soin particulier doit être apporté pour vérifier ce type de situation et retarder, le cas échéant, une partie du pipeline d'instruction. Naturellement, les compléments de circuits à apporter pour cela ajoutent à la complexité des processeurs parallèles. Un processeur parallèle peut devenir presque scalaire, ralenti uniquement par les attentes du pipeline (une instruction prend moins d'un cycle d'horloge par étape).

Les développements suivants du pipelining ont conduit au développement d'une méthode qui diminue encore plus les temps d'attente des composants du processeur. Les conceptions dites superscalaires comportent un pipeline à instruction longue et plusieurs unités d'exécution identiques. Dans un pipeline superscalaire, plusieurs instructions sont lues et transmises à un répartisseur qui décide si les instructions seront exécutées en parallèle (simultanément) ou non. Le cas échéant, les instructions sont réparties sur les unités d'exécution disponibles. En général, plus un processeur superscalaire est capable d'exécuter d'instructions en parallèle et plus le nombre d'instructions exécutées dans un cycle sera élevé.

La plupart des difficultés rencontrées dans la conception des architectures de processeurs superscalaires résident dans la mise au point du répartisseur. Le répartisseur doit être disponible rapidement et être capable de déterminer sans erreur si les instructions peuvent être exécutées en parallèle, il doit alors les distribuer de façon à charger les unités d'exécution autant qu'il est possible. Pour cela, le pipeline d'instructions doit être rempli aussi souvent que possible, créant le besoin d'une quantité importante de mémoire cache. Les techniques de traitement aléatoire comme la prédiction de branchement, l'exécution spéculative et la résolution des dépendances aux données deviennent cruciales pour maintenir un haut niveau de performance. En tentant de prédire quel branchement (ou chemin) une instruction conditionnelle prendra, le processeur peut minimiser le nombre de fois que tout le pipeline doit attendre jusqu'à la fin d'exécution de l'instruction conditionnelle. L'exécution spéculative améliore les performances modestes en exécutant des portions de code qui seront, ou ne seront pas, nécessaires à la suite d'une instruction conditionnelle. La résolution de la dépendance aux données est obtenue en réorganisant l'ordre dans lequel les instructions sont exécutées en optimisant la disponibilité des données.

Lorsque seule une partie de processeur est superscalaire, la partie qui ne l'est pas rencontre des problèmes de performance dus aux temps d'attente d'ordonnancement. Le Pentium original (P5) disposait de 2 ALU superscalaires qui pouvaient chacune accepter une instruction par cycle. Ensuite le P5 est devenu superscalaire pour les calculs sur les nombres entiers mais pas sur les nombres à virgule flottante. Les successeurs des architectures Pentium d'Intel, les P6, ont été dotés de capacités superscalaires pour les calculs sur les nombres à virgule flottante améliorant par là leurs performances en calcul flottant.

Les conceptions de pipelining simple et superscalaires augmentent le parallélisme (ILP) des CPU en permettant à un processeur unique d'exécuter des instructions à un rythme de plus d'une instruction par cycle. La plupart des processeurs d'aujourd'hui ont au moins une partie superscalaires. Au cours des dernières années, certaines évolutions dans la conception des processeurs à fort parallélisme ne se trouvent plus dans les circuits du processeur mais ont été placées dans le logiciel ou dans son interface avec le logiciel (ISA). La stratégie des instructions très longues (very long instruction word) conduit à implémenter certains parallélismes directement dans le logiciel, cela réduit la participation du processeur au gain de performance mais en réduit la complexité.

Une autre stratégie communément employée pour augmenter le parallélisme des processeurs consiste à introduire la capacité d'exécuter plusieurs programmes (threads) simultanément. De manière générale, les processeurs multi-threads ont été utilisés plus longtemps que les processeurs à architecture pipeline. Bon nombre des conceptions pionnières, réalisées par la société Cray Research, datant de la fin des années 1970 et des années 1980, mettaient en œuvre principalement la méthode TLP, dégageant alors de très grandes capacités de calcul (pour l'époque). En fait, le multithreading était connu dès les années 1950 (Réf : Smotherman 2005). Dans le cas des processeurs simples, les 2 méthodologies principales employées pour développer des TLP sont le multiprocessing au niveau des circuits (Chip-level multiprocessing - CMP) et le multithreading simultané (Simultaneous multithreading - SMT). À un plus haut niveau, il est d'usage de réaliser des ordinateurs avec plusieurs processeurs totalement indépendants dans des organisations de type symétrique (symetric multiprocessing - SMP)ou à accès mémoire non uniforme (non uniform memory access - NUMA). Alors que ces techniques diffèrent par les moyens qu'elles mettent en œuvre, elles visent toutes le même but : augmenter le nombre de threads qu'un processeur peut exécuter en parallèle.

Les méthodes de parallélisme CMP et SMP sont assez semblables, elles demandent plus d'effort de conception que l'utilisation de 2 ou 3 processeurs totalement indépendants. Dans le cas du CMP, plusieurs cœurs (core, en anglais) de processeurs sont intégrés dans le même boîtier, parfois même dans le même circuit intégré. Les SMP, eux, utilisent plusieurs boîtiers indépendants. NUMA est comparable au CMP mais met en œuvre un modèle d'accès mémoire non uniforme (les temps d'accès sont différents suivant que la mémoire est locale ou non locale à un processeur donné). Cette caractéristique est fondamentale dans les ordinateurs à plusieurs processeurs car pour les modèles SMP à mémoire partagée, les temps d'accès à la mémoire sont rapidement dégradés en cas d'accès simultané par plusieurs processeurs. À ce titre, NUMA est considéré comme un modèle plus évolutif en nombre de processeurs.

SMT diffère des autres améliorations de TLP puisqu'il vise à dupliquer aussi peu de portions de CPU que possible. La mise en œuvre d'une stratégie de type TLP ressemble à une architecture superscalaire et se trouve souvent utilisée dans les microprocesseurs superscalaires (comme les POWER5 d'IBM). Plutôt que de dupliquer un CPU complet, la conception SMT ne duplique que les parties nécessaires pour la recherche (fetch), le décodage, (decode) et la répartition des instructions (dispatch) ainsi que les registres non spécialisés. Ceci permet a un processeur SMT de maintenir ses unités d'exécution occupées plus souvent, en leur fournissant des instructions en provenance de 2 programmes différents. Comme on vient de la voir, le SMT est proche de l'architecture ILP superscalaire mais, plutôt que d'exécuter simultanément plusieurs instructions en provenance de 2 programmes différents, elle permet d'exécuter simultanément plusieurs instructions en provenance du même programme.

En haut



IA-64

IA-64 (pour Intel Architecture 64 bits) est une architecture de processeurs Intel.

Les processeurs Itanium et Itanium 2 qui intègrent cette architecture ont été conçus par Intel en coopération avec différents constructeurs informatiques (exemple : HP, Bull, etc.), pour l'intégration dans leur offre serveurs. Ces processeurs sont aujourd'hui présents presque uniquement dans des serveurs d'applications et des serveurs de base de données d'entreprise de forte capacité et traitant des volumes importants de données ou avec forte demande de calculs.

L'objectif de ces processeurs est de proposer une architecture plus performante que RISC (dont les limites sont atteintes dans des processeurs comme SPARC ou PA-RISC exécutant une instruction à chaque cycle d'horloge), en faisant appel à la technologie EPIC qui permet à plusieurs instructions d'être exécutées à chaque cycle d'horloge comme dans les ordinateurs à processeur superscalaire mais pour un coût matériel inférieur.

La motivation de capacité de calcul et le renouveau dans l'offre serveurs étant le moteur principal des différents constructeurs, reste néanmoins que le coût final et le non portage de certaines applications par les éditeurs de logiciels, rendent discrète la percée du marché de ce type de serveurs.

En haut



Architecture de processeur

Une architecture externe de processeur, ou architecture de jeu d'instructions (ISA, de l'anglais instruction set architecture), ou tout simplement architecture (de processeur),,, est la spécification fonctionnelle d'un processeur, du point de vue du programmeur en langage machine. L'architecture comprend notamment la donnée d'un jeu d'instructions, d'un ensemble de registres visibles par le programmeur, d'une organisation de la mémoire et des entrées sorties, des modalités d'un éventuel support multiprocesseurs, etc.

Le terme externe employé ici permet de bien faire la différence avec la microarchitecture ou architecture interne, qui s'intéresse à l'implémentation pratique du comportement spécifié par une architecture externe. Une architecture externe donnée peut être implémentée sous forme de plusieurs microarchitectures.

Une architecture externe de processeur est le modèle du processeur vu de l'extérieur, c'est-à-dire par le programmeur en langage machine, le compilateur ou le noyau du système d'exploitation. Il s'agit de l'interface entre le matériel et le logiciel.

Cette interface peut être implémentée dans divers processeurs. L'organisation pratique de ces derniers est appelée microarchitecture ou architecture interne. Par opposition à l'architecture qui correspond au modèle de la machine vu par le programmeur, les spécificités d'une microarchitecture sont invisibles pour ce dernier. Par exemple, la microarchitecture peut spécifier l'existence de mémoires cache, de renommage de registres, de pipelines, de prédiction de branchement, etc. Une microarchitecture peut ensuite donner lieu à une ou plusieurs réalisations matérielles.

Pour une architecture donnée, on peut avoir plusieurs microarchitectures, et une microarchitecture donnée peut servir de base à plusieurs réalisations. Par exemple l'architecture System 360 d'IBM a été disponible dès le départ en cinq microarchitectures différentes ayant naturellement des performances et un coût différent (c'est d'ailleurs dans le contexte de la définition de cette architecture que la nomenclature ci-dessus a été raffinée). Chez Intel, l'architecture IA-32, implémentée pour la première fois dans le 80386, possède des implémentations ultérieures très différentes : par exemple, le Pentium a introduit une microarchitecture pipelinée de type superscalaire avec prédiction de branchement. En outre, l'architecture IA-32 a été implémentée par d'autres fondeurs, en particulier AMD.

Naturellement les interactions entre les trois niveaux sont complexes. Les contraintes de réalisation limitent les choix micro-architecturaux et le désir de pouvoir choisir une microarchitecture donnée influence la définition de l'architecture. Si les avantages de la compatibilité forcent à vouloir garder l'architecture constante, vouloir avoir une microarchitecture et une réalisation efficace pousse vers une évolution, soit par extension compatible (ajout d'instructions par exemple), soit en précisant des zones floues ou même en invalidant ce qui autrefois était autorisé.

Dans la plupart des architectures, les programmes manipulent des registres de travail. Ces derniers sont donc à la base de l'architecture. Cependant, le processeur peut comporter d'autres registres, internes, non visibles du programmeurs : ceux-ci ne font pas partie de l'architecture.

L'accès aux données de la mémoire se fait selon un certain nombre de modes d'adressage qui sont spécifiés au niveau de l'architecture. De plus, cette dernière définit la vue logique qu'ont les programmes de la mémoire, et la façon dont est réalisée la liaison avec la mémoire physique. De même on spécifie les modalités d'accès aux entrées-sorties : registres spécialisés (c'est souvent le cas dans les microcontrôleurs), espace mémoire particulier (auquel cas les modes d'adressage sont souvent plus réduits que dans les espaces mémoire normaux), adresses particulières dans l'espace mémoire normal. Les types de données manipulés par le processeur doivent être précisés.

Les registres, la mémoire et les entrées-sorties sont manipulées par les instructions machine des programmes. Le jeu d'instructions est donc une donnée conséquente de l'architecture : il spécifie très précisément le comportement de chaque instruction machine.

Une architecture définit la façon dont sont gérées les erreurs ou exceptions.

Dans le cas d'une architecture qui supporte le multiprocesseurs, la façon dont les différents processeurs communiquent et se synchronisent doit être spécifiée.

Idéalement, on peut penser que les divers caches que peut intégrer un processeur (mémoire cache, TLB, etc.) pourraient être transparents pour le programmeur, donc hors du champ de l'architecture externe. Cependant, il est le plus souvent nécessaire que les programmes (en général le système d'exploitation) interagissent avec les caches (par exemple, pour invalider des entrées du TLB lorsque nécessaire). L'architecture externe décrit alors le rôle et l'interface de ces caches.

Une architecture CISC propose de nombreux modes d'adressage, dont certains sont souvent complexes. Le jeu d'instructions est généralement fourni.

Exemples : x86 étendue en IA-32, elle-même étendue en x64 ; Motorola 680x0.

Une architecture RISC propose un jeu d'instructions relativement réduit. Les modes d'adressage sont plus simples que dans une architecture CISC. L'architecture propose en général un nombre important de registres généraux. Ces caractéristiques favorisent une utilisation optimale du pipeline au niveau de la microarchitecture.

Exemples : SPARC, POWER et PowerPC, MIPS, ARM.

Ce concept fait reposer une partie de la gestion du pipeline sur le compilateur : le processeur reçoit des instructions longues qui regroupent plusieurs instructions plus simples.

Alors que les instructions des processeurs traditionnels traitent un nombre (un scalaire) à la fois, les instructions des processeurs vectoriels peuvent travailler sur des vecteurs.

Exemples : les machines Cray.

En haut



PowerPC 600

Le prototype du PowerPC 601 vit sa première réalisation achevée en octobre 1992.

La famille des processeurs PowerPC 600 fut la première génération de processeurs construits sur les spécifications de l'architecture PowerPC. Leur désign était réalisé dans les laboratoires Somerset à Austin (Texas), une unité formée d'ingénieurs issus d'IBM et de Motorola et fondée dans le cadre de l'Alliance AIM. Somerset entra en activité à partir de 1992 et son but était de réaliser d'une part le premier processeur PowerPC et de définir la ligne des futurs processeurs de cette famille destinés aux ordinateurs personnels. La famille PowerPC 601 apparut ainsi en 1993, et la seconde génération fut rapidement suivie des processeurs PowerPC 603, PowerPC 604, ainsi que du processeur 64 bits PowerPC 620.

Les "vrais" noms sont : 601, 603, 604 et 620. Les autres sont ou des dérivés ou des processeurs totalements différents, partageant simplement un même nom de prototype.

Le processeur PowerPC 601 constitua la première génération de microprocesseur supportant l'ensemble d'instructions de base PowerPC en 32 bits. Le désign de la puce débuta en 1991 et les premiers prototypes furent livrés en automne 1992. Ces premiers processeurs apparurent d'abord dans une station de travail IBM de type RS/6000 en octobre 1993 (en même temps que la ligne de processeurs voisins POWER2 d'IBM) ainsi que dans les ordinateurs Power Macintosh de la compagnie Apple en avril 1994. Le 601 était le premier processeur implémentant sur une seule puce l'architecture PowerPC; il fut réalisé en un temps record pour affirmer la place de cette architecture dans le marché de l'informatique et pour dynamiser l'alliance AIM. Pour réaliser les innovations technologiques prévues par ce processeur dans le temps très court imparti aux ingénieurs (performance en fréquence, nouvel ensemble d'instructions, impémentation d'un premier noyau de calcul symétrique à plusieurs processeurs) une structure d'organisation exceptionnelle fut mise en place. L'équipe d'ingénieurs simplifia considérablement la structure de base et les parties d'un processeur RISC d'IBM, tout en incluant le support de la majorité des instructions PowerPC qui ne figuraient pas sur ce processeur de départ. Toutes les parties de ce processeur de départ furent modifées considérablement ou changées en totalité pour répondre aux nouveaux designs concernant différentes unités telles les entrées-sorties, la structure des bus et la cohérence mémoire pour le SMP.

Pour inclure le plus rapidement possible l'architecture de bus 88000 de Motorola au nouveau processeur 601, cette compagnie élabora une stratégie complète aboutissant à une spécification de l'architecture de bus 88110, ainsi qu'un ensemble d'outils pour l'implémentation logique et la vérification du bus 60x. L'équipe d'ingénieurs d'Apple était familière avec la structure I/O du 88110, qui était particulièrement bien documentée par Motorola. Ainsi, l'équipe en charge du processeur 601 adopta rapidement cette technologie de bus. La nomenclature passa de "88110" à "60x" pour une implémentation sur le processeur PowerPC 601. Cette poignée d'ingénieurs d'Apple et de Motorola reçut l'aide de plus de 120 ingénieurs d'IBM pour achever la création complète et la fabrication du processeur PowerPC 601. Voir the Bus Interface for 32-Bit Microprocessors – IBM.com.

L'utilisation de l'architecture 88110 de Motorola s'avèra très profitable sur de nombreux points. Tout d'abord pour l'équipe d'ingénieurs d'Apple, car l'adoption de ces technologies Motorola réduisit la charge de "redesign" de leurs ASICs existants et leur permit de sortir en un temps record la documentation et le processus de spécification de la nouvelle structure de bus et de son interface, en évitant au passage l'apparition d'une "guerre des bus" qui était redoutée par l'équipe du 601 si les bus 88110 ou les RSC précédents n'avaient pas été adoptés. Il est intéressant de remarquer que cet effort en vue de l'acceptation de l'architure 88110 de Motorola, pour le bébéfice d'Apple, se fit au détriment de l'équipe d'IBM en charge du RS/6000 qui avaient leurs ASICs déja implémentés et opérationnels autour du RSC d'uns structure de bus complètement différente.

Le bus 60x devint par la suite la base d'une longue série de variantes adaptées aux processeurs 601, 603, 604, G3, G4 et le PowerQUICC de Motorola/Freescale.

La puce était conçue pour une grande variété d'applications et supportait un cache CPU L2 ainsi qu'une implémentation pour le symmetric multiprocessing. Elle possédait un pipeline d'instructions à quatre étages, quatre unités fonctionnelles incluant une unité de calcul flottant, une unité d'artihmétique entière, une unité de branchement, une unité de séquencement (un héritage peu utilisé de RSC). Elle possédait de plus une unité mémoire.

First launched in IBM systems in the fall of 1993, it was manufactured by IBM as the PPC601 (but marketed by Motorola as MPC601), using a 0.6 µm aluminum based CMOS process, at speeds ranging from 50 to 80 MHz. The die was 121 mm² large, had 2.8 million transistors and included 32 kB unified L1 cache which was very much at the time. Thanks partly to the large cache it was considered a high performance processor in its segment, readily beating Intel's competitor Pentium. PowerPC 601 was used in the first Power Macintosh computers from Apple, and in a variety of RS/6000 workstations and SMP servers from IBM and GroupBull.

IBM was the sole manufacturer of the 601 & 601+ microprocessors in its Burlington (Vermont) and East Fishkill (New York) production facilities. The 601 used the IBM CMOS-4s process and the 601+ used the IBM CMOS-5x process. An extremely small number of these 601/601+ processors were relabeled with Motorola logos/part numbers and distributed through Motorola. These facts are somewhat obscured given there are various pictures of the "Motorola MPC601", particularly one specific case of masterful Motorola marketing where the 601 was named one of TIME Magazine's 1994 "Products of the Year" with a Motorola marking.

The 601+ design was remapped from CMOS-4s to CMOS-5x by an IBM-only team. To avoid time-to-market delays from design tool changes and commonizing fab groundrules, both the 601 and 601+ were designed with IBM EDA tools on IBM systems and were fabricated in IBM-only facilities.

An updated version, PowerPC 601v or PowerPC 601+, 74 mm² small using a 0.5 µm fabrication process, followed in 1994 with speeds 100-120 MHz.

The PowerPC 603 was the first processor implementing the complete 32-bit PowerPC Architecture as specified. It was designed to be a low cost, low end processor for portable and embedded use. One of the main features was power saving functions (doze, nap and sleep mode) that could dramatically reduce power requirements, drawing only 2 mW in sleep mode. The 603 has a four stage pipeline and five execution units: integer unit, floating point unit, branch prediction unit, load/store unit and a system registry unit. It has separate 8 KB L1 caches for instructions and data and a 32/64 bit 60x memory bus, reaching up to 75 MHz. The 603 core doesn't support SMP in hardware.

The PowerPC 603 had 1.6 million transistors and was manufactured by IBM and Motorola on a 0.5 µm fabrication process. The die was 85 mm² large drawing 3W at 80 MHz. The 603 architecture is the direct ancestor to the PowerPC 750 architecture, marketed by Apple as the PowerPC "G3".

It was used in low end and portable Macintosh models but also found widespread use in different embedded appliances. The processor got a somewhat bad reputation in Apple's computers since the 68k emulation software didn't fit into the relatively small caches causing some degraded performance in older software. This poor performance made it unacceptable as a laptop CPU and was not used in such, delaying the Apple PowerBook 5300 and PowerBook Duo 2300 introduction.

The performance issues of the 603 were addressed in the PowerPC 603e. The L1 cache was enlarged and enhanced to 16 kB four-way set-associative data and instruction caches. The clock speed of the processors was doubled too, reaching 200 MHz. Shrinking the fabrication process to 0.35 µm allowed for speeds of up to 300 MHz. This part is sometimes called PowerPC 603ev. The 603e and 603ev have 2.6 million transistors each and are 98 mm² and 78 mm² large respectively. The 603ev draws a maximum of 6 W at 300 MHz.

The PowerPC 603e was the first mainstream desktop processor to reach 300 MHz. The 603e was also used in accelerator cards from Phase5 for the Amiga line of computers, with CPUs ranging in speeds from 160 to 240 MHz. The PowerPC 603e is still sold today by IBM and Freescale, and others like Atmel and Honeywell who makes the radiation hardened variant RHPPC. The PowerPC 603e was also the heart of the BeBox from Be Inc. The BeBox is notable since it is a multiprocessing system, something the 603 wasn't designed for. IBM also used PowerPC 603e processors in the ThinkPad 800 series laptop computers. The 603e processors also power all 66 Iridium satellites. The satellites each contain seven Motorola/Freescale PowerPC 603E processors running at roughly 200 MHz each.

The PowerPC 603e core, renamed G2 by Freescale, is the basis for many embedded PowerQUICC II processors, and as such it keeps on being developed. Freescale's PowerQUICC II SoC processors bear the designation MPC82xx, and come in a variety of configurations reaching 450 MHz.

Modèle:Main article Freescale has enhanced the 603e core, calling it e300, in the PowerQUICC II Pro embedded processors. Larger 32/32 KB L1 caches and other performance enhancing measures were added. Freescale's PowerQUICC II Pro SoC processors bear the designation MPC83xx, and come in a variety of configurations reaching speeds up to 667 MHz. The e300 is also the core of the MPC5200B SoC processor that is used in the small EFIKA computer.

The PowerPC 604 was introduced in 1994 alongside the 603 and was designed as a high performance chip for workstations and entry level servers and as such had support for symmetric multiprocessing in hardware. The 604 was used extensively in Apple's high end systems and was also used in Macintosh clones, IBM's low end RS/6000 servers and workstations, accelerator boards to Amigas and as an embedded CPU for telecom applications.

The 604 is a superscalar processor capable of issuing four instructions simultaneously. The 604 has a six stage pipeline and six execution units that can work in parallel, finishing up to six instructions every cycle. Two simple and one complex integer units, one floating point unit, one branch processing unit managing out-of-order execution and one load/store unit. It has separate 16 KB data and instruction L1 caches and a 32/64 bit 60x memory bus, reaching up to 50 MHz.

The PowerPC 604 contains 3.6 million transistors and was fabricated by IBM and Motorola with a 0.5 µm CMOS process. The die was 196 mm² large and drew 14 to 17W at 133 MHz. It operated at speeds between 100 and 180 MHz.

The PowerPC 604e was introduced in 1996 and added a condition register unit and separate 32 KB data and instruction L1 caches among other changes to its memory subsystem and branch prediction unit, resulting in a 25% performance increase compared to its predecessor. It had 5.1 million transistors and was manufactured by IBM and Motorola on a 0.35 µm fabrication process. The die was 148 mm² or 96 mm² large, manufactured by Motorola and IBM respectively, drawing 16-18W at 233 MHz. It operated at speeds between 166 and 233 MHz and supported a memory bus up to 66 MHz.

The PowerPC 604ev, 604r or "Mach 5" was introduced in 1997 and was essentially a 604e fabricated by IBM and Motorola with a newer process, reaching higher speeds with a lower energy consumption. The die was 47 mm² small manufactured on a 0.25 µm process drawing 6W at 250 MHz. It operated at speeds between 250 and 400 MHz and supported a memory bus up to 100 MHz.

While Apple dropped the 604ev in 1998, in favor for the PowerPC 750, IBM kept using it in entry-level models of its RS/6000 computers for several years.

The PowerPC 620 was the first 64-bit processor implementing the entire PowerPC Architecture. It was a second generation PowerPC alongside the 603 and 604, but geared towards the high end workstation and server market. It was powerful on paper and was initially supposed to be launched alongside its brethren but it was delayed until 1997. When it did arrive, the performance was comparably poor and the considerably cheaper 604e beat it. The 620 was therefore never produced in large quantities and found very little use. The sole user of PowerPC 620 was Groupe Bull in its Escala UNIX machines, but they didn't deliver any large numbers. IBM, which intended to use it in workstations and servers, decided to wait for the even more powerful RS64 and POWER3 64-bit processors instead.

The 620 was similar to the 604. It has a five stage pipeline, same support for symmetric multiprocessing and the same number of execution units; a load/store unit, a branch unit, an FPU, and three integer units. With a larger 32/32 KB L1 cache, access to up to 128 MB large L2 caches, and more powerful branch and load/store units that had more buffers, the 620 was very powerful. The branch prediction table was also larger and could dispatch more instructions so that the processor can handle out of order execution more efficiently than the 604. The floating point unit was also enhanced compared to the 604. With a faster fetch cycle and support for several key instruction in hardware (like sqrt) made it, combined with faster and wider data buses, more efficient than the FPU in the 604.

The system bus was a wider and faster 128 bit memory bus called the "6XX bus" and was also used in POWER3, RS64 and 601 and 604 based RS/6000 systems (with a bridge chip). The bus later evolved into the "GX bus" of the POWER4, and later GX+ and GX++ in POWER5 and POWER6 respectively.

The 620 was produced by Motorola in a 0.5 µm process, it had 6.9 million transistors, and the die was 311 mm² large. Speeds at 120-150 MHz, drawing 30 W at 133 MHz. A later model was built using a 0.35 µm, reaching 200 MHz.

The PowerPC 602 was a stripped down version of PowerPC 603, specially made for game consoles by Motorola and IBM in 1995. It has reduced L1 caches (4k instruction and 4k data), a singe-precision floating point unit and a back scaled branch prediction unit. It was offered at speeds ranging from 50 to 80 MHz, and drew 1.2 W at 66 MHz. It consisted of 1 million transistors and it was 50 mm² large manufactured at a 0.5 µm process.

3DO developed the M2 game console with two PowerPC 602, but it was never marketed.

In 1996 the fabless semiconductor company Quantum Effect Devices (QED) made a PowerPC 603 compatible processor named "PowerPC 603Q" which didn't have anything, but the name, in common with any other 603. It was a from ground up implementation of the 32 bit PowerPC specification targeted at the high end embedded market. As such it was small, simple, energy efficient, but powerful; equaling the more expensive 603e while drawing less power. It had an in order, 5 stage pipeline with a single integer unit, a double precision floating point unit and separate 16 kB instruction and 8 kB data caches. It was 69 mm² small using a 0.5 µm fabrication process and drew just 1.2 W at 120 MHz.

603Q was designed for Motorola, but they withdrew from the contract before 603Q went into full production and QED could not continue to market the processor since they lacked a PowerPC license of their own.

Similar to PowerPC 613, the "PowerPC 614" might have been a name given by Motorola to a third generation PowerPC, and later renamed by the same reason as 613. It's been suggested that the part was renamed "PowerPC 7400", and Motorola even bumped it to the fourth generation PowerPC even though the architectural differences between "G3" and "G4" was small. There are hardly any sources confirming any of this though and it might be pure speculation, or a reference to a completely different processor.

The "PowerPC 615" is a little known PowerPC processor announced by IBM in 1994. Its main feature was to incorporate an x86 core on die, thus making the processor able to natively process both PowerPC and x86 instructions. An operating system running on PowerPC 615 could either chose to execute 32 bit or 64 bit PowerPC instructions, 32 bit x86 instructions or a mix of three. Mixing instructions would involve a context switch in the CPU with a small overhead. Minix and a special developer version of OS/2 could run.

It was 330 mm² large and manufactured by IBM on a 0.35 µm process. It was pin compatible with Intel's Pentium processors and comparable in speed. The processor was only produced in prototype examples and the program was killed in part by the fact that Microsoft would probably never give support for the processor. Engineers working on the PowerPC 615 would later find their way to Transmeta working on their Crusoe processor.

En haut



Intel Core Architecture

Diagramme de l'Intel Core Architecture

« Core » est en anglais un nom commun signifiant « noyau » ou « cœur », et désignant en informatique l'ensemble des structures constituant un seul microprocesseur : unités de décodages, de prédiction, d'exécution, cache L1, etc. La tendance actuelle est de réunir plusieurs microprocesseurs sur un même die (puce de silicium), constituant ainsi un bi-cœur, quadri ou plus (dual, quad ou multi core). Ceci explique le choix d'Intel dans le nom de cette architecture Core, ainsi que dans le choix des noms commerciaux « Core », « Core 2 », « Pentium dual-core ».

Techniquement, Intel Core ressemble à l'Intel Mobile Architecture +1 décodeur rapide, +1 ALU, +1 unité supplémentaire load/store, + unités vectorielles flottantes dédiées (SSE flottants traitées par la FPU auparavant). Le cache L1 est toujours de 64 ko par cœur (32 ko données + 32 ko instructions). On retrouve la fusion des micro instructions, apparue sur le Pentium M. De NetBurst (Pentium 4) sont repris le bus FSB, les instructions x86-64.

Instructions interprétées : x86, x86-64, XD, SSE 1, 2, 3, 3+.

Modèles bi-cœur pour ordinateurs de bureau. Articles connexes : Core 2 Duo Conroe, Celeron Conroe, Pentium Dual-Core Conroe, Core 2 Extreme Conroe, Xeon Conroe.

Modèles bi-cœur basse consommation destinés aux ordinateurs portables. Articles connexes : Centrino, Core 2 Duo Merom, Pentium Dual-Core Merom, Celeron Merom, Core 2 Extreme Merom.

Quadri-cœur, mono-processeur. Articles connexes : Core 2 Quad Kentsfield, Core 2 Extreme Kentsfield, Xeon Kentsfield.

Pour serveur, bi-cœur, bi-processeur. Article connexe : Xeon Woodcrest.

Pour serveur, quadri-cœur, bi-processeur. Article connexe : Xeon Clovertown.

Pour serveur, bi et quadri-cœur, quadri-processeur. Article détaillé : Xeon Tigerton.

La version 45 nm de Intel Core Architecture, parfois nommée « Penryn » ou « Enhanced Intel Core Architecture », est un die-shrink de la précédente génération 65 nm en 45 nm, dont la commercialisation a débuté en janvier 2008 pour la gamme grand public et novembre 2007 pour la gamme serveur.

Articles connexes : Core 2 Duo Wolfdale, Pentium Dual-Core Wolfdale, Xeon Wolfdale.

Le Wolfdale est le successeur du Conroe. À l'image des modèles Conroe E4xxx, la gamme E7xxx possède un cache L2 réduit de moitié par rapport aux E8xxx, d'un FSB plus faible et est destiné à l'entrée de gamme (hors Celeron).

Conçu avant tout pour les ordinateurs portables, le Penryn est un die shrink du Merom destiné dans un premier temps à rafraichir la plateforme Centrino Santa Rosa avant d'inaugurer la nouvelle plateforme Montevina prévue pour troisième trimestre 2008 bien qu'annoncée initialement pour le second trimestre. La gamme utilise dans les deux cas le socket P et s'articule autour d'une enveloppe thermique (TDP) relativement basse. Tous ces modèles sont distribués sous plusieurs référence de package. Articles connexes : Centrino, Core 2 Duo Penryn, Celeron Penryn, Core 2 Extreme Penryn.

La gamme pour Santa Rosa est relativement réduite car elle ne sert qu'à rafraichir l'offre en attendant Montevina. Elle cohabite avec la gamme précédente à base de Merom tout en y ajoutant le premier Core 2 Extreme mobile. Les processeurs sont tous limités à un FSB de 800 MT/s.

La gamme pour la plate-forme Montevina (Centrino 2) est conséquente avec l'apparition des premiers « quad-core » (quadri cœur) pour portables dont un modèle Core 2 Extreme. Ces modèles ne sont pas adaptés à une véritable mobilité mais davantage destinés à des PC transportables. En outre leur échauffement relativement important sera compensé par un système inédit de compresseurs organisés en cylindre de 2 cm de diamètre sur 10 cm de long permettant d'abaisser de 10°C la température d'un chassis.

Intel propose aussi des modèles faible consommation (LV) et très faible consommation (uLV) destinés aux ultra portables pour remplacer les Merom équivalents. Ces modèles seront équipés d'un BGA (Ball Grid Array) 22 x 22 mm.

À noter que les processeurs E8x35 utilisé par Apple dans la seconde génération desiMac aluminium ne sont pas cadencés à la fréquence d'origine. Du fait qu'ils soient aussi architecturés autour d'un chipset PM965 mais avec un FSB de 1066 MT/s, on peut considérer que ces processeurs se trouvent sur une plate-forme Santa Rosa «sur-cadencée.

Le Yorkfield est un processeur quadri-cœur d'Intel rassemblant 2 cœurs Wolfdale sur un même die, il sera donc équipé d'un cache L2 partagé 2×6 Mo. D'après les informations fournies par Intel la technique en:Trusted Execution Technology serait incluse. Articles connexes : Core 2 Quad Yorkfield, Core 2 Extreme Yorkfield, Xeon Yorkfield.

Suite à la découverte d'un problème de fonctionnement des modèles Core 2 Quad avec les cartes mères actuellement en vente,, la commercialisation de ces derniers, initialement prévu pour début janvier 2008, a été retardé au mois de mars 2008. Les cartes mères à quatre couches causeraient un PSB noise empêchant le processeur de fonctionner normalement. Intel a donc décidé de modifier les Core 2 Quad en conséquence (révision C1). Toutefois ce problème n'affecte pas les Core 2 Extremes car ces derniers sont compatibles uniquement avec des cartes mères haut de gamme à 6 couches.

Pour contrer l'offensive en termes de prix d'AMD avec ses Phenom, Intel serait en train de préparer un modèle bas coût : le Q9100. Il s'agira finalement de la série Q8xxx qui se distingue surtout par l'absence de technologie de virtualisation VT, et vient concurrencer les modèles triple cœur de AMD .

Des déclinaisons Xeon ont été développé à partir des modèles Core 2 Quad dont ils reprennent l'ensemble des caractéristiques. Ils sont dédiés aux plate-formes mono-processeurs.

Les Xeon Hapertown sont les premiers processeurs disponible avec l'Enhanced Intel Core Architecture. Article connexe : Xeon Hapertown.

À partir du 3 juillet 2008, Intel évoluera sa gamme Hapertown en renouvellement la vieillissante révision C0 en E0. À cette occasion le TDP du X5482 devrait baisser. En outre cette nouvelle révision imposera une mise à jour du BIOS et un nouveau CPUID sera associé à ces processeurs E0 : 0xA005b013 contre 0x1067A précédemment.

Les modèles Dunnington disposent de 2 ou 3 dual-core par die, selon les modèles, et sont destinés à fonctionner en multiprocesseur avec jusqu'à quatre processeurs en parallèle ce qui permettra des machines équipés de 24 cœurs. En outre les Dunnington se distinguent du reste de la gamme Core 2 Duo par la présence d'une grosse mémoire cache L3 partagée entre tous les cœurs tandis que le cache L2 reste propre à chaque couple de processeur. Cette architecture unique chez Intel, et qui sera reprise par les prochains Nehalem, rappelle l'architecture K10 de AMD à la seule différence que chez ces deux derniers le cache L2 est propre à chaque processeur. Les Dunnington restent enfin compatibles avec les sockets pour Tigerton et fonctionnent avec l'actuel chipset Clarksboro. Article connexe : Xeon Dunnington.

En haut



Processeur double cœur

L'Intel Core 2 Duo E6600 est un processeur double cœur.

Un processeur double cœur (dual core en anglais) est un processeur équipé de deux cœurs (ou unités de calcul) qui travaillent en parallèle.

En effet, la puissance d'un processeur semble aujourd'hui limitée à une certaine fréquence, qu'il est difficile de dépasser sans hausse substantielle du coût de fabrication (en grand public, on trouve des processeurs standard de l'ordre de 3,2 GHz). Après avoir atteint ce seuil critique dans l'évolution naturelle de la puissance des processeurs essentiellement basée sur la course aux gigahertz, les fondeurs AMD et Intel travaillent maintenant sur des processeurs plus sophistiqués. Ainsi, la puissance d'un processeur double cœur est de l'ordre du double du processeur de référence.

La différence majeure entre les processeurs à double cœur et les ordinateurs utilisant plusieurs processeurs est qu'un processeur double cœur n'est en fait qu'un seul processeur, qui lui, finalement, contient deux cœurs avec un système de mise en commun, alors qu'un ordinateur biprocesseurs a deux processeurs distincts.

Avant l’apparition des processeurs multicœurs, les constructeurs de processeurs augmentaient la puissance de leurs produits en élevant la fréquence de calcul de leurs processeurs monocœurs. Ainsi, les processeurs, capables d’effectuer plus de calculs à la seconde, devenaient progressivement plus puissants.

Mais cette méthode a fini par atteindre ses limites : en effet, l’augmentation de puissance d’un processeur nécessite l’augmentation de la puissance électrique fournie, et par conséquent l’énergie thermique créée à dissiper. C’est pour ces raisons que les microprocesseurs devenaient de plus en plus gourmands en énergie (ce qui pose problème pour les ordinateurs portables notamment), et créaient de plus en plus de chaleur. Cette contrainte est devenue de plus en plus importante à mesure que les constructeurs ont fabriqué des processeurs à la puissance croissante. Les processeurs monocœurs les plus puissants utilisés dans les ordinateurs de grande distribution ont des puissances ne dépassant en général pas les 3 ou 4 GHz, car au-delà les problèmes cités plus haut deviennent trop contraignants. On a pu observer dans certains salons de technologie des processeurs de fréquence bien plus élevée, mais ils étaient équipés de processus de refroidissement impressionnants, bien entendus pas reproductibles pour la grande distribution.

C’est pour contourner cette limite que les constructeurs se sont tournés vers la fragmentation des puces. Il existait déjà des ordinateurs fonctionnant avec plusieurs processeurs distincts (par exemple, les supercalculateurs). L’idée ici est de reproduire ce parallélisme au sein d’un unique processeur : en bref, introduire plusieurs unités de calcul dans un même processeur. Le principe est simple : plutôt que d’avoir un processeur « simple » à fréquence élevée, on utilise par exemple deux cœurs, de fréquence moitié moindre que l’autre. On obtient alors un processeur théoriquement de même puissance, mais de fréquence d’horloge beaucoup plus basse : il ne rencontre pas les problèmes d’alimentation et de surchauffe de son homologue monocœur.

En plus de ces avantages purement techniques, il s’avère que ces microprocesseurs sont également bien plus efficaces dans le traitement multitâche. Si plusieurs applications sont exécutées simultanément sur l’ordinateur, celui-ci peut dès lors répartir ce travail entre les cœurs de processeurs, plutôt que d’effectuer les opérations en alternance sur un seul processeur.

Cependant, l’élaboration de tels processeurs a du nécessiter des ajustements et adaptations aux différents niveaux de l’ordinateur. Il se pose tout d’abord la question de la communication entre les différentes unités : comment répartir le travail pour que les deux processeurs se complètent, plutôt que de se neutraliser. Il a également fallu mettre à jour les différents logiciels existants pour leur permettre d’exploiter cette nouvelle technologie. En effet, les composants d’un processeur multicœur ont une puissance individuelle inférieure à celle d’un processeur monocœur classique ; un logiciel non adapté au multicœur (et qui ne saura donc effectuer ses différents calculs qu’à l’aide d’un seul des cœurs du processeur) se verra par conséquent ralenti (et verra ses performances diminuer) alors qu’il utilise un processeur supposé plus puissant ! Afin de pallier cette contrainte, de nombreuses mises à jour ont été émises pour permettre aux logiciels de s’adapter. Ces mises à jour touchent également les systèmes d’exploitation (exemple : Windows en 2005), qui peuvent diviser par eux-mêmes les calculs effectués par les logiciels qu’ils exécutent. Cela permet d’utiliser la technologie multicœur même avec des logiciels non adaptés à ce type de traitement, même si bien entendu cette utilisation est moins performante que si le logiciel indique directement comment doivent se diviser les calculs. De telles adaptations sont nécessaires à chaque augmentation du nombre de cœurs dans les processeurs. Ce n’est que lorsque celles-ci ont été effectuées que les nouveaux processeurs peuvent exploiter leur nouvelle puissance.

Au final, avec un peu de recul cette technologie n’a pour réel inconvénient que celui de toute nouvelle technologie : elle est évolutive, et nécessite de nombreux ajustements qui feront état jusqu’à ce qu’une autre technologie vienne la remplacer. Mais elle présente en tout cas l’avantage de ne pas créer de rupture : à ce jour les applications utilisant les processeurs multicoeurs peuvent également fonctionner avec des processeurs monocœurs, et les applications « classiques » conçues pour des processeurs monocœurs fonctionnent également avec les nouveaux multicœurs (à l’inverse d’autres évolutions de technologie créant une rupture totale (passage de disquette à CD : les lecteurs CD ne peuvent pas lire les disquettes et inversement) ou partielle (passage de CD à DVD : les lecteurs DVD lisent les CD, mais pas l’inverse).

Le premier processeur double cœur chez Sun fut l'UltraSPARC IV composé de 2 cœurs UltraSPARC III en 2003. En développement, Les nouveaux processeurs UltraSparc T1 possèderont jusqu'à 8 cœurs par processeur (octo-core).

Le premier processeur PA-RISC double cœur chez HP fut le PA-8800 composé de 2 cœurs PA-8700 en 2004.

Les processeurs double cœur Intel ont été lancés le 1er avril 2005 et la marque Core 2 a été introduite le 27 juillet 2006. Le premier processeur était un Pentium Extreme Edition 840 à 3,2 Ghz (composé de 2 cœurs Pentium 4 540) suivi peu de temps après des Pentium D. Le modèle EE (Extreme Edition), modèle de « démonstration », son prix étant le triple des Pentium D, était destiné à dévoiler l’architecture double cœur avant le concurrent AMD. Il était constitué de deux cœurs Pentium 4 Prescott 540 réunis sur une même puce. Cette solution a permis d’augmenter les performances des processeurs sans augmenter la fréquence.

Le premier modèle « grand public » était le Pentium D 820 : il comptait 230 millions de transistors, était gravé en 90 nm et cadencé à 2,8 GHz. Dans le cas de ce processeur, les deux cœurs Pentium 4 Prescott 520 ne pouvaient communiquer que par le bus système, ils ne partagent pas vraiment de ressources communes.

Cependant, ces processeurs n’étaient pas vraiment adaptés au marché des ordinateurs portables (alors en plein essor) à cause d’une fréquence trop élevée qui entrainait de fortes consommation électrique et dissipation thermique. De plus, l’agencement des deux cœurs était loin d’être parfait notamment au niveau de la mémoire cache.

C’est pourquoi Intel a lancé le 27 juillet 2006 ses processeurs Core 2 Duo. Ces derniers ont pallié aux inconvénients engendrés par les processeurs haute fréquence et a permis à Intel de regagner des parts dans le marché des ordinateurs portables. Avec une fréquence inférieure au Pentium D et une profondeur des pipelines réduite, ces processeurs ont de meilleures performances et ont vu leurs consommation électrique et dissipation thermique diminuées. Ces évolutions ont permis d’optimiser les performances par un traitement plus efficace des informations et une meilleure gestion de l’énergie.

L’évolution des Core 2 Duo actuelles concerne principalement la finesse de gravure (qui permet une baisse des dégagements thermiques à fréquence identique) mais aussi l’augmentation de la mémoire cache L2. En effet, les processeurs disposent de plusieurs mémoires caches. Cependant, alors que dans les premiers Pentium D chaque cœur disposait d’un cache L2 indépendant, les Core 2 Duo développés par la suite embarquaient un cache L2 commun aux deux cœurs. Cela a permis de réduire le trafic dans le bus externe et les temps de latence. Ainsi l’attribution du cache peut être alors optimale pour chaque cœur.

AMD a lancé ses premiers processeurs double cœur en avril-mai 2005 juste après son concurrent Intel. Ainsi, le 21 avril 2005, AMD commercialise l’Athlon 64 X2 avec quatre modèles dont le modèle d’entrée de gamme l’Athlon 64 X2 3800+ pour concurrencer le Pentium D 820 d’Intel.

Ce modèle comptait 230 millions de transistors, était gravé en 90 nm et cadencé à 2 Ghz. Il était constitué par deux cœurs Athlon 64 3800+ à 2,4 Ghz mais l’agencement de ses deux cœurs était différent de celui proposé par Intel. En effet, les deux cœurs peuvent ici communiquer directement entre eux sans passer par le chipset externe de la carte mère comme chez Intel, ils se partagent le même contrôleur mémoire intégré et chaque cœur dispose de son propre cache L2 (comme pour les Pentium D mais différent des Core 2 Duo).

Le gros avantage de ces processeurs au moment de leurs sorties est qu’ils étaient compatibles avec les cartes mères existantes, une simple mise à jour du bios suffisant à les intégrer. Encore une politique radicalement différente de Intel qui avait décidé de développer un nouveau socket pour ses doubles cœurs. Ainsi même si les processeurs AMD étaient proposés à un prix plus élevé que ceux d’Intel (380€ pour un Athlon 64 X2 3800+ contre 280€ pour un Pentium D 820), les utilisateurs n’avaient pas besoin de changer de carte mère. De plus, les Athlon 64 X2 ne chauffaient et consommaient pas plus que les modèles haut de gamme simple cœur de AMD alors que les Pentium D avaient une forte dissipation thermique et une consommation élevée par rapport à ses prédécesseurs simple cœur.

Finalement, malgré un prix plus élevé, ces processeurs bénéficiaient d’un meilleur rapport qualité/prix grâce à une conception plus travaillée que les modèles Intel. Les performances sont ainsi globalement meilleures par rapport au Pentium D. Ils ont ainsi permis à AMD de se hisser au niveau d’Intel malgré des problèmes de stocks dans la période qui a suivi le lancement. L’évolution des Windsor concerne la finesse de gravure mais aussi la diminution du cache L2 à cause de la forte demande actuelle pour ce type de processeur.

AMD a aussi développé des processeurs tri et quadri cœurs récemment avec la gamme Phenom. C’est la première génération de processeurs à utiliser la dernière architecture K10 de AMD. Les versions tri-cœurs sont des versions quadri-cœurs où un de ces derniers a été désactivé. Ces processeurs ont été développés afin de limiter les pertes en sortie des lignes de production.

Quant à la gamme des ordinateurs portables, ce sont les Turion 64 X2 qui sont dédiés à ces machines. Les premiers sont apparus en mai 2006 et la gamme est renouvelée environ une fois par an. Ces processeurs sont moins utilisé que leurs homologues chez Intel du fait d’une campagne publicitaire beaucoup moins importante.

En haut



Source : Wikipedia