300 likes | 394 Views
CHAPITRE 2:. Architectures conventionnelles Processeurs RISC,CISC M₫moires. Les march₫s des processeurs:. Actuellement il y a 3 types de march₫:
E N D
CHAPITRE 2: Architectures conventionnelles Processeurs RISC,CISC M₫moires
Les march₫s des processeurs: • Actuellement il y a 3 types de march₫: • Le march₫ des processeurs g₫n₫raux est celui de la manipulation de donn₫es comme le traitement de texte et la gestion des bases de donn₫es repr₫sent₫ par le d₫placement A -> B et la condition Si A=B Alors... • Le march₫ du calcul au sens arithm₫tique du terme, utilis₫ en science, en ingeni₫rie et en traitement du signal. • Le march₫ du calcul au sens de l'alg₫bre lin₫aire.
La conception et la fabrication: • La conception d'un processeur est un travail consid₫rable, le Pentium a ₫t₫ con₫u par 300 ing₫nieurs, le PentiumPro par 500. • Le point mort, au delà duquel apparaissent les premiers b₫n₫fices, est ₫loign₫ : 3 à 4 millions d'unit₫s. • La premi₫re conception n'est pas tout. Un travail permanent est n₫cessaire pour diminuer le taux de rebuts et augmenter la fr₫quence de fonctionnement. • La valeur du produit d₫croît tr₫s vite, le prix de vente est divis₫ par 10 en 2 à 3 ans. • Un processeur n'est pas tout, des composants nouveaux doivent l'accompagner sur la carte. • Le concepteur n'est pas libre. Il doit conserver des compatibilit₫s. Le lancement d'un nouveau jeu d'instructions semble si peu r₫aliste que les jeux anciens perdurent pendant des dizaines d'ann₫es.
Un processeur actuel a des constituants : · le d?codeur d'instructions, · le s?quenceur, · l'unit? arithm?tique et logique, · les registres g?n?raux et particuliers, · l'horloge. Mais il a aussi une structure (ou architecture) d?crite par les moyens de fonctionnement : · les mod?les de m?moire, externe, virtuelle, interne, caches, · les processus de traitement, ordonnancement des instructions, · le jeu d'instructions qui est la partie visible par le programmeur.
Mod?le d'acc?s aux donn?es (1): • Les processeurs ont ?volu? sous la forme de familles plus ou moins ?toff?es plutôt que de g?n?rations: • La premi?re famille avait un accumulateur unique (ann?es 1940) • Les suivants ont ?t? des variantes à un accumulateur et un ou des registres d'index (ann?es 1950). • Une s?paration a eu lieu dans les ann?es 1960 qui a produit : • La famille peu nombreuse des machines à piles (certaines limit?es à un seul langage ALGOL). Le nom de machine-langage est donn? à des machines dont le seul langage disponible est de niveau ?lev?.Disparition depuis le milieu des ann?es 1980. • Rem:Toute machine a un langage d'assemblage, cette cat?gorie n'est pas nomm?e. • La famille nombreuse des machines à plusieurs registres. Elles apparaissent avec les circuits int?gr?s et la microprogrammation. Le plus bel exemple est la s?rie IBM 360 dont le jeu d'instructions a perdur? jusqu'à ce jour sans beaucoup de changements. Les jeux d'instructions ont augment? en volume jusqu'à m?riter le nom CISC.
Mod?le d'acc?s aux donn?es (2): • Une famille peu repr?sent?e jusqu'aux ann?es 1980, celle des machines dites lit-?crit (load-store) à grand nombre de registres. Le premier grand repr?sentant est le CDC 6600. Ses repr?sentants actuels sont les machines RISC. • La famille peu nombreuse des machines microprogrammables : IMP de National Semiconductors (1974), microprocesseurs en tranches AMD 2900, bien d'autres encore. • Quant à l'architecture de Harvard ou de Aiken, propos?e par lui en 1947, s?pare m?moire de programme et m?moire de donn?es en leur donnant des capacit?s d'acc?s simultan?s. Non usit?e avant les ann?es 90 notament par le coût des m?moires.
Les grands courants actuels : CISC, RISC et VLIW. Il existe aujourd'hui trois types de processeurs dont deux principaux nomm?s : CISC pour "Complex Instruction Set Computer", RISC pour "Reduce Instruction Set Computer", VLIW pour "Very long instruction word" (Crusoë de Transmeta) La mesure de capacit? d'une unit? centrale peut, entre autres, ?tre caract?ris?e par trois facteurs multiplicatifs : . le nombre d'instructions à ex?cuter pour une m?me tâche, NI . le nombre de cycles d'horloge par instruction, NH . la dur?e du cycle d'horloge. DH La plus grande rapidit? sera obtenue pour le produit NI x NH x DH minimal. · DH est fix? par la technique, · on peut diminuer NI en faisant ex?cuter des actions plus complexes par chaque instruction, en contre partie, NH augmente, on tend vers le CISC. · on peut diminuer NI en faisant ex?cuter plusieurs actions simultan?ment par chaque instruction, NH augmente peu, on tend vers le VLIW. · on peut diminuer NH en construisant des instructions ex?cutables en un seul cycle d'horloge, elles apportent en plus une simplification du d?codeur et du s?quenceur, mais alors NI augmente, on tend vers le RISC.
Diff?rences entre CISC et RISC (1): Caract?res CISC RISC Taille des instructions tr?s diff?rentes m?me taille Dur?es d'ex?cution des instructions tr?s diff?rentes les m?mes, sauf les acc?s à la m?moire Nombre de formats grand petit Modification implicite des codes de oui non condition par les instructions Utilisation de la microprogrammation presque toujours presque jamais Alignement des instructions et non, mises bout oui, sur des adresses multiples des donn?es à bout de leur longueur Nombre de registres petit, au plus 16 beaucoup, couramment plus de 100
Diff?rences entre CISC et RISC (2): Le NI d'un RISC est couramment 1,3 fois plus grand que celui d'un CISC. Le format fixe des instructions d'un RISC induit un d?codage simple r?alisable par un s?quenceur câbl? et non plus microprogramm?. Le s?quencement occupe 10 à 20% de la puce au lieu de 50 à 60%. Les seules instructions d'acc?s à la m?moire sont les LOAD et STORE directs ou par indirection sur registres qui sont alors n?cessaires en grand nombre. En plus la notion de fen?tre de registres, lin?aire ou circulaire, est utilis?e pour limiter le nombre d'acc?s à la m?moire lors des passages de param?tres aux proc?dures.
L'?volution des CISC a ?t? lente. • Les premiers processeurs, constitu?s de lampes ?taient fabriqu?s avec un souci permanent d'?conomie de composants qui a continu? à s'imposer pendant tout le temps des transistors isol?s. Le nombre d'instructions ?tait faible, 44 dans l'IBM650 de 1953 et jamais plus de 80. La situation a chang? à l'arriv?e les circuits int?gr?s. • La microprogrammation pouvait ?tre install?e puisqu'on disposait de deux jeux de m?moires : les tores magn?tiques pour la m?moire centrale, relativement lents, les composants ?lectroniques chers mais beaucoup plus rapides pour contenir des microinstructions. • Le nombre de soudures a consid?rablement diminu?. • A partir des ann?es 1960, il ?tait possible d'augmenter le nombre d'instructions en termes de codes d'op?rations. L'objectif ?tait de r?duire l'?cart entre le langage machine et les langages dits ?volu?s. On estimait alors que le code ex?cutable devait ?tre le plus court possible et le compilateur le plus simple possible • Le processeur CISC masque son architecture interne. • Il prend en charge une partie de la complexit? des programmes
L'origine du RISC tient à des id?es nouvelles et à des id?es anciennes qui sont revenues. Une id?e revenue est l'instruction simple "lit-?crit" apparue dans le CDC6600 en 1965. D?s 1976, on savait que le processeur utilise 20% de ses instructions pour 80% des besoins (r?gle dite des 80-20 valable dans bien d'autres domaines). Ces instructions sont donc responsables de la plus grande partie du temps de traitement. Le processeur ?tait d?jà plus rapide que la m?moire. Il ?tait pr?f?rable d'avoir des instructions complexes ?conomes de m?moire m?me si elles prenaient du temps pour ?tre d?cod?es. La premi?re r?alisation de machine RISC commence chez IBM en 1975 sous le num?ro 801. Dans ses objectifs figuraient l'acc?l?ration de l'ex?cution des instructions les plus fr?quemment utilis?es. Il contenait 32 registres de 32 bits, sans virgule flottante et sans mode superviseur s?par? et deux caches de Harvard. Vers 1981, l'universit? de Berkeley lance les projets RISC I, puis RISC II. Les SPARC et UltraSparc en sont issus. A Stanford, le projet MIPS est lanc?. Son premier descendant a ?t? le MIPS R2000.
Un processeur est consid?r? comme de type RISC si : 1) il a un petit nombre d'instructions, 2) il fonctionne en lit-?crit, 3) les instructions ont toutes la m?me longueur, 4) le d?codage est câbl?, 5) le nombre de registres est grand, 6) les branchements sont retard?s, 7) le rythme de production est une instruction par cycle. Le processeur RISC laisse visible son architecture interne.Le programme prend en charge toute la complexit? des algorithmes.
Le VLIW est r?cent (1). Cette technique naît avec les unit?s fonctionnelles multiples, par exemple deux unit?s enti?res, une unit? flottante, un d?caleur, deux organes de lecture et un d'?criture. Puisque ces op?rations peuvent ?tre ex?cut?es en m?me temps, autant grouper plusieurs instructions en un seul mot qui devient tr?s long, d'où le nom de la technique. L'instruction longue commande plusieurs op?rations dans un m?me cycle. Elle est charg?e à partir d'un cache d'instructions pour ?viter d'avoir un bus de m?moire exag?r?ment large. Chaque unit? fonctionnelle est aliment?e en instructions par un pipeline particulier qui suit une unit? de d?groupage et d?codage des champs de l'instruction tr?s longue. Le premier VLIW a ?t? l'Advanced Flexible Processor de Control Data à mot d'instructions de 210 bits en 1982.
Le VLIW est r?cent (2): Ce fonctionnement exige que les instructions regroup?es en un mot long soient ind?pendantes l'une de l'autre, c'est à dire qu'aucune n'utilise le r?sultat d'une autre, en d'autres termes, qu'il n'y ait pas d?pendance des donn?es. Les conflits sont pr?vus et r?gl?s par le compilateur. Des processeurs tr?s r?cents nomm?s CRUSOE sont propos?s en plusieurs versions par la soci?t? Transmeta. Ils sont constitu?s d'un micro noyau de type RISC, enrob? par un noyau de type VLIW. Le fabricant annonce une diminution de la place affect?e à des caches et une diminution de la dissipation.
Classification des diff?rents processeurs par les op?randes La distinction entre CISC et RISC a un succ?s m?rit? mais elle n'est pas la seule pertinente. Toujours en consid?rant le seul jeu de codes d'op?rations, on peut utiliser l'origine des op?randes pour distinguer les processeurs. Registre à registre, les deux ou trois op?randes sont dans des registres: SPARC, MIPS, HP-PA, PowerPC, Alpha. Le processeur est simple, l'ex?cution rapide, le programme contient un grand nombre d'instructions load/store. C'est la situation des RISC. Registre à m?moire,un des op?randes est en m?moire : Motorola 68000, PDP-10, IBM 360. Le programme contient moins d'instructions load/store, le code est plus compact. C'est d?jà du CISC. M?moire à m?moire, les deux op?randes sont en m?moire : PDP-11, NS32x32, IBM 360(SS set). Le code du programme est tr?s compact, le processeur est complexe. C'est toujours du CISC.
ARCHITECTURE INDUITE PAR LE JEU D'INSTRUCTIONS (1) La pr?sentation des architectures à travers le jeu d'instructions (ISA ou instruction set architecture) est la plus fr?quente dans les ouvrages et dans les enseignements. Le jeu d'instructions d?finit une machine. Pr?senter l'architecture d'un syst?me informatique mat?riel par le jeu d'instructions, c'est pr?senter une machine ?mul?e sur celle que l'on voudrait connaître. Le premier grand exemple de machines pr?sent?es via leur jeu d'instructions a ?t? la s?rie IBM 360. Ses r?alisations, du 360/20 au 360/91, avaient toutes le m?me jeu d'instructions. Il existait donc UNE architecture 360. Les mod?les ?taient diff?rents par la quantit? de câblage et par une quantit? sensiblement inverse de microprogrammation. On a aujourd'hui deux grands exemples de telles architectures : L'Intel x86. Sa mise en œuvre est tr?s diff?rente selon les fabricants Cyrix, AMD et Intel et chez chacun d'eux selon le produit. Le SPARC V8, d?fini par Sun Microsystems. Il a plusieurs autres r?alisations comme les Cypress CY7C601 et Fujitsu MB86900/1A.
ARCHITECTURE INDUITE PAR LE JEU D'INSTRUCTIONS (2) L'int?r?t majeur de cette fa?on de proc?der est de travailler sur un jeu d'instructions dont la dur?e de vie est beaucoup plus grande que celle de telle ou telle r?alisation. Le jeu x86 date de 1979 avec des ajouts. Le jeu IBM360 date de 1964. L'inconv?nient pour nous est que l'on ne voit alors que le fonctionnement logiciel. Les composants architecturaux, certains tr?s importants, ne sont plus visibles. Par exemple, le jeu x86 a ?t? r?alis? sans puis avec un pipeline, sans puis avec un ou des caches, sans puis avec une pagination, etc. Si l'on veut n?anmoins consid?rer le jeu d'instructions, on doit examiner ses cinq dimensions principales le nombre d'op?randes explicites : 0, 1, 2, 3. les modes d'acc?s à la m?moire ou comment l'adresse en m?moire est-elle sp?cifi?e. où les donn?es sont elles charg?es : registres g?n?raux ou non, pile, etc. les types et tailles des op?randes : octet, entier, etc. et la fa?on dont ils sont sp?cifi?s. le jeu d'op?rations : addition, multiplication, etc. Parmi les autres aspects, on doit examiner : comment est d?fini le successeur de l'instruction et de la donn?e. les codes de conditions. le parall?lisme.
Etude abr?g? d'un CISC: Intel 80386 Cette organisation est dite « pipeline », car les informations, instructions ou donn?es, sont trait?es au fil du d?placement qui leur est impos? d'unit? en unit?. Ce pipeline est asynchrone, car, bien que le tout soit r?gi par une horloge de base, les temps de traitement de chaque organe sont diff?rents et deux informations de m?me nature n'ont pas n?cessairement le m?me temps de traitement (instructions CISC de complexit? et de longueurs variables). L'horloge fournit un rythme de base mais chaque organe ?volue s?par?ment des autres. Chacun doit donc disposer de tampons d'entr?e et de sortie pour r?tablir une synchronisation de disponibilit?. Dans les machines RISC, les pipelines sont synchrones. On dit aussi qu'il y a anticipation, puisqu'une instruction commence à ?tre trait?e, sinon ex?cut?e avant la fin de l'ex?cution des pr?c?dentes
Fonctions dans un processeur PRÉRECHERCHE D'INSTRUCTION. Re?oit : les limites de validit? des adresses, l'adresse du mot, l'instruction. Fait : les tests de limite d'adressage (par rapport au segment et à la page).un stockage de plusieurs octets de code. Émet : l'adresse vers le bus, les codes vers le pr?d?codage. PRÉDÉCODAGE D'INSTRUCTION. Re?oit : les codes de la pr?recherche. Fait : une premi?re transformation du code en adressage interm?diaireun stockage de deux instructions d?cod?es. Émet : les instructions d?cod?es vers la commande,les valeurs de d?placement vers la segmentation. COMMANDE ou SÉQUENCEUR ou PIPELINE Re?oit : les instructions pr?d?cod?es, les drapeaux d'?tat fournis par l'UAL. Fait : le calcul des commandes ou celui de l'adresse de la microinstruction à rechercherpuis le transcodage de la microinstruction en commandes. Émet : les commandes de tous les organes via le bus interne,les ordres d'op?ration et les op?randes imm?diats vers l'UAL. UAL : UNITE ARITHMÉTIQUE ET LOGIQUE OU UNITÉS FONCTIONNELLES Re?oit : les ordres et op?randes imm?diats de la COMMANDE,les donn?es du bus externe. Fait : les lectures et ?critures des registres,les op?rations arithm?tiques et logiques. Émet : les adresses sur bus internes vers la SEGMENTATION,les drapeaux d'?tat,les r?sultats des op?rations vers un bus interne. SEGMENTATION Re?oit : les adresses calcul?es dans l'UAL,les indications de d?placement issues du d?codage. Fait : les combinaisons-additions d'adresses,entretient les registres descripteurs de segments. Émet : les adresses calcul?es vers la pagination et la pr?recherche. PAGINATION Re?oit : les adresses dans les segments,les adresses physiques. Fait : les op?rations sur les adresses,entretient la table des pages Émet : les adresses physiques vers le bus et la pr?recherche COMMANDE DU BUS Re?oit : les adresses des donn?es à lire et à ?crire,les adresses des instructions,les signaux de la commande. Fait : les multiplexages et d?multiplexages,le codage des priorit?s sur les demandes. Émet : les donn?es, les instructions, les commandes d'interruption.
COMMANDE CÂBLÉE OU MICROPROGRAMMÉE On a vu les grandes divisions d'un processeur. Dans sa partie centrale, on a distingu? la partie arithm?tique et logique proprement dite (UAL), appel?e parfois "chemin de donn?es" et la partie de commande et non pas contrôle (control). La partie UAL ou chemin de donn?es est constitu?e de registres, de chemins et de portes, relativement faciles à d?finir. La commande consiste en : .l'interpr?tation des instructions, .la fabrication des commandes ?l?mentaires d'activation des divers organes, .l'?mission de ces microcommandes. Pour cela, il faut que les organes soient commandables, mais cela ?tait d?jà suppos?. Il faut de plus mod?liser le trio : .entr?es, le contenu de l'instruction, .variables d'?tat, l'?tat de l'UAL, .variables de sorties, les microcommandes. La voie de la commande câbl?e consiste à faire la synth?se de ce syst?me s?quentiel à la mani?re des automaticiens, ?ventuellement en plusieurs ?tapes. Les outils de mod?lisation existent. La r?alisation est faite avec des r?seaux logiques programmables (PLA pour programmable logic array).
La voie de la commande microprogramm?e utilise l'invention de Maurice Wilkes (1951). Elle consiste à ins?rer une machine extr?mement r?duite (micromachine). Ses entr?es sont les instructions, ses sorties sont les commandes. Sa m?moire contient deux tables. La premi?re met en correspondance les codes d'op?ration et les adresses de la deuxi?me table. La deuxi?me table contient les commandes à ?mettre. Le processeur tr?s simple g?re ces adresses et ces donn?es. La technique est nomm?e microprogrammation. On ajoute le pr?fixe micro aux ?l?ments de cette machine r?duite : micromachine (parfois machine à nombre fini d'?tats ou FSM finite state machine), microm?moire, microcontrôleur, microinstructions, microcode, microprogramme. La micromachine a eu plusieurs variantes de r?alisation. On les classe en trois groupes : · microprogrammation horizontale, · microprogrammation verticale, · microprogrammation diagonale.
Dans la microprogrammation horizontale, les microinstructions sont tr?s longues (plus de 100 bits). Les microcommandes à raison d'un ou plusieurs bits par signal sont log?es dans des champs nombreux. Chaque microinstruction commande donc plusieurs organes. Cette microprogrammation veut exploiter au mieux les capacit?s de fonctionnement simultan? des organes du processeur. Exemples : AMD 2900 et AMD29000, Vax 11/780. Dans la microprogrammation verticale, les mots sont courts (16 bits par exemple). Ils ne contiennent que des bits repr?sentant des signaux mutuellement exclusifs. Des descripteurs de champs rep?rent la signification des bits. Ces microinstructions ressemblent à des instructions ordinaires du langage d'assemblage : un code qui porte la signification des arguments, des arguments qui sont les listes des signaux de commande. Elles sont simples à concevoir et manipuler, beaucoup plus rapides à ex?cuter. Elles exploitent moins bien les simultan?it?s possibles. Exemples : Multi6 d'Intertechnique, Intel 80486. La microprogrammation diagonale tente de combiner les deux pr?c?dentes.Les microinstructions ont des longueurs moyennes de quelques dizaines de bits. Une autre voie a ?t? explor?e, celle du nanocode. Le processeur est alors constitu? de trois machines imbriqu?es. Le processeur visible, la micromachine command?e par des microinstructions courtes (type vertical). Toutefois ces microinstructions ne contiennent pas les signaux de commande. Ceux-ci sont stock?s dans une nanomachine sous la forme de nanoinstructions de type horizontal. Exemple : Motorola 68000.
Exemple de la microinstruction du Vax 11/780 : .Longueur 96 bits, .Nombre de champs 30, .Nombre de microinstructions pour r?aliser le jeu d'instructions : 4096, .Taille de la m?moire de microinstructions 400K bits. (Les modes d'adressage du Vax ?taient extraordinairement nombreux.) D?tail de quatre champs : Les performances de la microprogrammation sont li?es à celles de la micromachine. Dans les p?riodes où l'on dispose de m?moires de petite taille nettement plus rapides que des m?moires de grande taille et tenant compte des coûts respectifs, la microprogrammation est utilisable. Dans les p?riodes où ce n'est pas le cas, la commande câbl?e l'emporte
Avantages et Inconv?nients de la microprogrammation. A Souplesse : facilit? à commander des op?rations simultan?es, retours sur erreurs facilit?s. On peut construire des jeux d'instructions libres et puissants, on peut construire des op?rations complexes, On peut construire plusieurs jeux d'instructions sur la m?me machine. I On peut construire des op?rations inutilement complexes, L'ex?cution est lente à cause de l'acc?s à la micromachine, compar?e au d?codage direct. Le concepteur est encourag? à faire compliqu? plutôt que simple en ?crivant des microprogrammes longs. Des s?quences simples sont souvent plus rapides qu'une s?quence complexe.
LES MÉMOIRES Les m?moires ?lectroniques ont : une structure d'organisation en cellules, la cellule est l'unit? d'acc?s à la m?moire. Une structure est r?sum?e en deux nombres : · n nombre de cellules · t taille de la cellule en bits. un jeu de caract?ristiques temporelles : · temps d'acc?s, temps n?cessaire pour acc?der à une valeur d'adresse donn?e. · temps de transfert, une fois l'acc?s r?alis?, temps n?cessaire pour que la donn?e arrive à destination, · temps de cycle, temps total pendant lequel un banc de m?moire n'est pas accessible suite à un acc?s. une technique de fabrication : RAM (Random Acces Memory) => SRAM et DRAM,SDRAM La m?moire ROM, La m?moire PROM (programmable 1 fois) La m?moire EPROM et EEPROM (peuvent ?tre reprogramm?es) La m?moire FRAM (F pour flash)
Dans la RAM dynamique, la structure est parfaitement r?guli?re sous la forme d'un tableau de lignes et colonnes. L'enregistrement d'un bit est fait par la charge d'un condensateur de capacit? tr?s faible, 30 à 50 femtofarads. Chacun est associ? à un transistor à effet de champ (MOSFET : metal-oxyde silicium field effect transistor) qui lit ou ?crit cette charge. Le circuit est muni d'un registre tampon de manipulation de ligne. · D'une part, le condensateur se d?charge lentement. La charge doit ?tre reconstitu?e p?riodiquement par l'op?ration dite de rafraîchissement qui consiste en une lecture syst?matique avant ?puisement de la charge et une r?criture. Cette op?ration est faite avec une p?riodicit? de quelques millisecondes. · D'autre part les op?rations de lecture et d'?criture portent sur une ligne enti?re. En lecture, la ligne est lue, copi?e dans le tampon, le bit demand? en est extrait et la ligne est RÉCRITE car l'op?ration de lecture a vid? les condensateurs de leur charge. En ?criture, la ligne est lue, copi?e dans un registre, le bit est ins?r? et la ligne est RÉCRITE. Le temps d'acc?s, parfois dit temps de latence, de l'affichage de l'adresse à la disponibilit? de la donn?e sur le bus, va de 50 à 80 ns. Le temps de cycle, de l'affichage d'une adresse à l'affichage utile de la suivante, est le temps d'acc?s plus le temps de pr?charge, soit 100 à 160 ns.