Sheet numer 1 Architecture et micro-rchitecture des processeurs Bernrd Goossens Sheet numer 1
Sheet numer 2 Sheet numer 2
Sheet numer 3 Je dédie ce livre à l mémoire de Louis Nolin, mon mître. Sheet numer 3
Sheet numer 4 Sheet numer 4
Sheet numer 5 Préfce de Jen-Luc Gudiot Professeur à University of Cliforni, Irvine (UCI) Une fois de plus, l rchitecture des ordinteurs se trouve à une croisée des chemins. Le succès du modèle RISC et les progrès pportés pr les modèles supersclires nous ont donné des mchines individuelles ussi puissntes que ce qui étit considéré comme un superordinteur il y seulement quelques nnées. Ce spectculire gin de performnce n été possile qu en cominnt les vncées technologiques (comme l rélistion de circuits VLSI vec une finesse de grvure sumicronique) à de nouveux modèles de mémoires (à l RAMBUS), à des strtégies modernes d orgnistion, insi qu à des rchitectures innovntes. Cependnt, plusieurs pproches rchitecturles sont en compétition pour les processeurs du futur, llnt de mchines supersclires à réordonnncement dynmique de degré élevé, ux concepts VLIW (Very Long Instruction Word) et EPIC (Explicitly Prllel Instruction Computing). Il est intéressnt de remrquer que des pproches hier totlement imprticles pour des risons de restriction de ressources mtérielles sont soudin devenues rélistes, voire nécessires, lors que des constructions complexes du pssé sont devenues osolètes sns doûte pr le seul fit de l profusion de ressources. C est cette jungle de mchines, de techniques rchitecturles et d implnttions existntes que Bernrd Goossens vient mettre en ordre en se snt sur le principe selon lequel l rchitecture des ordinteurs ne peut exister pour elle-même, étnt fermement ncrée ux technologies d implnttion. Il s est insi efforcé de vous emmener vous, le lecteur, pour un voyge prtnt du plus profond de l implnttion, u niveu des trnsistors, et mennt ux concepts rchitecturux les plus vncés, pour décrire l microrchitecture d un puissnt microprocesseur d ujourd hui. Cette pproche et l ccent mis sur l compréhension des couches sses de l construction donnent à l ouvrge un crctère unique, très pédgogique et même, d une certine fçon, divertissnt. L uteur commence s description en construisnt une hypothétique mchine typique, comprle à celle qui nous est fmilière et qui est devenu un produit de consom- Sheet numer 5
Sheet numer 6 mtion cournte. Il fit insi llusion à l interction entre les divers éléments (processeur, mémoire et différents contrôleurs), ux stndrds des composnts mémoires et des us d interconnexion, à l structure des entrées-sorties et à l fonctionnlité glole telle qu elle est perçue pr l utilisteur, décrivnt pr exemple l suite des événements internes qui interviennent à l suite d un déplcement rusque et létoire de l souris. Cel met certinement en ppétit pour les deux chpitres qui suivent: une description exhustive des principes ctuels de conception des circuits et de l fçon dont les trnsistors CMOS peuvent être tout d ord optimlement utilisés pour construire les portes usuelles et ensuite ssemlés en circuits de complexité vrile (tels que les dditionneurs, les contrôleurs, les mémoires, etc.). Ce chpitre montre ussi l orgnistion des contrôleurs de mémoire cche vec un dmirle luxe de détils, insi que l orgnistion complète d un processeur simple. Les chpitres suivnts s ppuient sur ces connissnces fondmentles et décrivent d ord un jeu d instructions (Instruction Set Architecture, l mchine telle que l perçoit le progrmmeur ou le concepteur de compilteur) et l optimistion d un ensemle d instructions dns un microprocesseur moderne. L uteur introduit ensuite un exemple d implnttion (micro-rchitecture) du processeur insi défini et de son système mémoire. Ce fut un honneur d écrire cette préfce. Entre utre, j i pris un immense plisir à lire le mnuscrit. Les exercices judicieusement disséminés dns le texte sont perspicces et en même temps incitent à l réflexion. Le livre de Bernrd Goossens vient à propos et profiter ux étudints comme ux prticiens de l rchitecture des ordinteurs. Jen-Luc Gudiot. Sheet numer 6
Sheet numer 7 Tle des mtières Préfce Remerciements Avnt-propos v xi xiii 1 : Introduction 1 1 L crte mère d un PC.............................. 1 2 L exécution d un progrmme sur un PC.................... 4 3 L interction entre logiciel et mtériel..................... 9 4 L structure du livre............................... 13 2 : Des trnsistors ux portes 17 1 Les trnsistors.................................. 17 1.1 Le trnsistor nmos............................ 17 1.2 Le trnsistor pmos............................ 20 1.3 L porte de trnsfert CMOS........................ 21 2 Les portes logiques................................ 23 2.1 L logique complémentire ou le pssge de constntes......... 23 2.2 Les portes de trnsmission ou l trnsmission de vriles....... 27 2.3 L logique dynmique........................... 30 2.4 Les séprteurs: verrous et scules.................... 35 2.5 Les cellules mémoire............................ 38 3 Représenttion symolique des opérteurs élémentires............ 44 Sheet numer 7
Sheet numer 8 viii Tle des mtières 3 : Des portes ux circuits 47 1 Les opértions logiques.............................. 47 1.1 Les fonctions ooléennes à plus de deux vriles............ 47 1.2 L extension du multiplexeur........................ 48 1.3 Les comprteurs.............................. 49 2 Les opértions rithmétiques.......................... 55 2.1 Le décodeur................................. 55 2.2 Le codeur.................................. 57 2.3 L dditionneur............................... 59 2.4 L incrémenteur............................... 64 2.5 Le décrémenteur.............................. 65 2.6 Le décleur................................. 65 3 Les opértions de séprtion........................... 71 3.1 L extension des portes de trnsfert.................... 71 3.2 L extension des verrous.......................... 71 3.3 L extension des scules.......................... 72 3.4 Verrous et registres de séprtion..................... 72 4 Les opértions de mémoristion......................... 75 4.1 L extension des verrous-d......................... 75 4.2 L extension des cellules de mémoire.................... 76 4.3 L mémoire ssocitive........................... 78 4.4 L mémoire à doule ccès........................ 79 4.5 Les registres................................. 80 5 L représenttion symolique des circuits sttiques.............. 82 6 L composition des circuits........................... 84 6.1 Une mémoire d octets........................... 84 6.2 Une mémoire de mémoires ssocitives.................. 90 6.3 Un chemin de données........................... 92 7 Les cches..................................... 96 8 Un petit processeur et son lngge mchine.................. 100 8.1 Le processeur LUC3............................ 100 8.2 Le lngge mchine LUC3......................... 102 8.3 Les instructions du premier groupe.................... 103 8.4 Les instructions du deuxième groupe................... 105 8.5 Les instructions du troisième groupe................... 106 8.6 Exemple de progrmme LUC3....................... 107 8.7 L extrction des instructions LUC3.................... 109 8.8 L lecture des registres........................... 110 8.9 L constitution de l dresse de lecture/écriture en mémoire de donnée 111 8.10 L sélection des sources de l oîte à opértion............. 111 8.11 L écriture du résultt en registre ou en mémoire............. 112 9 Projet....................................... 113 9.1 Présenttion................................. 113 9.2 Syntxe................................... 115 9.3 Exemples.................................. 117 9.4 Sémntique................................. 119 Sheet numer 8
Sheet numer 9 Tle des mtières ix 9.5 Trduction................................. 120 9.6 Exécution.................................. 123 10 Utilistion des outils LUC3........................... 126 4 : L rchitecture d un processeur 129 1 Les éléments du lngge mchine........................ 132 1.1 Le contrôle des progrmmes........................ 132 1.2 Les données................................. 136 1.3 Les zones de mémoristion des vriles................. 137 1.4 Le prllélisme de données......................... 138 1.5 Le prllélisme d instructions....................... 139 2 Le jeu d instructions............................... 141 2.1 Le jeu d instructions entières....................... 144 2.2 Le jeu d instructions systèmes....................... 170 2.3 Le jeu d instructions flottntes...................... 172 2.4 Le jeu d instructions vectorielles entières................. 182 2.5 Le jeu d instructions vectorielles flottntes................ 196 3 L rchitecture EPIC............................... 204 3.1 Prllélisme d instructions: déroulge de oucles............ 204 3.2 Le pipeline logiciel............................. 209 5 : L micro-rchitecture d un processeur spécultif 223 1 Un processeur composé de mchines concurrentes............... 223 2 L mchine d extrction............................. 228 2.1 L prédiction des suts........................... 230 2.2 Le renommge des registres........................ 240 3 Les mchines d exécutions............................ 251 3.1 Le tritement des instructions prédictives................ 259 3.2 Le tritement des instructions de sut.................. 259 3.3 Le tritement des instructions d ccès mémoire............. 261 3.4 Le tritement des instructions de clculs entiers............. 271 3.5 Le tritement des instructions de clculs flottnts............ 273 3.6 Le tritement des instructions de chrgements vectoriels........ 291 3.7 Le tritement des instructions de clculs vectoriels entiers....... 292 3.8 Le tritement des instructions de clculs vectoriels flottnts...... 299 3.9 Le tritement des instructions de trnsferts inter-types......... 300 4 Le cdencement de l micro-rchitecture.................... 301 4.1 Le cdencement de l mchine d extrction............... 302 4.2 Le pipeline du processeur......................... 309 5 Extensiilité du degré supersclire....................... 310 6 Projet de TER (Techniques d Études et de Recherches)........... 312 6 : L mémoire 317 1 L rchitecture de l mémoire.......................... 318 Sheet numer 9
Sheet numer 10 x Tle des mtières 1.1 De l mémoire théorique à l mémoire virtuelle............. 318 1.2 De l mémoire virtuelle à l mémoire réelle............... 322 1.3 L trduction d une dresse virtuelle en dresse réelle......... 324 1.4 Les trductions inchevées: défut de pge et dresse invlide..... 325 1.5 Le contrôle de l vlidité de l ccès.................... 328 1.6 L ccélértion des trductions....................... 330 1.7 L mise en plce de l hiérrchie des tles et son évolution...... 332 2 L micro-rchitecture de l mémoire physique................. 334 2.1 L hiérrchistion de l mémoire réelle.................. 334 2.2 L performnce des cches......................... 336 2.3 Petit cche à deux niveux ou grnd cche à un niveu?........ 340 3 L ccès mémoire du processeur......................... 341 3.1 L trduction des dresses dns le processeur.............. 341 3.2 Le tritement non loqunt de l échec.................. 343 3.3 L modifiction dns un cche de données................ 344 4 Le processeur et son environnement...................... 345 4.1 Le démrrge de l ordinteur....................... 350 Index 353 Sheet numer 10
Sheet numer 11 Remerciements Je tiens à remercier mes qutre relecteurs qui ont tous effectué un trvil que je sis ingrt: lire de multiples fois, à différents niveux, le même texte pour tenter d en déceler les différents types d erreurs. Pr ordre lphétique: Jen-Luc Gudiot, Professeur à l Université de Cliforni Irvine (UCI) qui m en outre fit l mitié, mis surtout l honneur, d ccepter de préfcer l ouvrge. Bernrd Lecussn, Professeur à SupAéro, qui gentiment ccepté que je présente son enfnt, le petit processeur LUC3 comme illustrtion et synthèse du chpitre sur l circuiterie. Dniel Litize, Professeur à Toulouse. Murice Mrgenstern, Professeur à Metz, qui en plus de ce pensum été dès l origine à mes côtés sur ce projet de longue hleine. Je remercie églement André Seznec, Directeur de recherche à l IRISA, pour voir relu un mnuscrit ntérieur. Ses remrques ont fortement influencé l spect de ce livre. Je remercie ussi Dniel Etiemle, Professeur à l université de Toronto, de l intérêt qu il mnifesté pour cet ouvrge et de son expertise sur le chpitre des trnsistors. Je remercie encore Dniel Kro, Directeur de recherche u CNRS et Directeur du LIAFA-Pris 7, et Michel Morvn, Professeur à l ENS Lyon, tous deux codirecteurs de collection chez Springer-Frnce, pour l confince qu ils m ont constmment ccordée concernnt ce projet éditoril. Je remercie enfin l correctrice de Springer-Frnce pour son trvil méticuleux (moi qui croyis mîtriser le frnçis). Sheet numer 11
Sheet numer 12 Sheet numer 12
Sheet numer 13 Avnt-propos Vous qui pssez pr ces lignes, cheteur potentiel, en quoi ce livre peut-il vous être utile? Si vous êtes simple utilisteur de l ordinteur, surfeur sur l Internet, médecin utilisteur du logiciel de gestion de votre cinet ou encore pssionné de jeux vidéos 3D, le fonctionnement précis de votre mchine ne peut relever que de l curiosité. Cet ouvrge v lors très certinement ien u-delà de votre ttente. En revnche, si vous êtes informticien de métier, ou pprenti, lors tout ou prtie de ce livre vous est indispensle. Même si pr le pssé vous vez reçu une formtion en rchitecture, il y fort à prier pour que vos connissnces ne soient plus d ctulité. Même si, étudint que vous êtes, vous n vez ps l mition de trviller dns le domine des mchines, mis de vous spéciliser dns le logiciel de hut niveu, vous ne pouvez fire l impsse sur le mtériel, u risque de ne ps très ien comprendre comment s exécute un progrmme. Enfin, si vous êtes, ou rêvez de devenir, concepteur de processeurs ou de logiciels de s niveux, pr exemple de compilteurs ou de systèmes d exploittion, l connissnce de tout ce qui se trouve dns ce livre et même u-delà, vous est indispensle. Ce livre est sudivisé de mnière à former le mtériu de se de trois cours sur le mtériel. L introduction est un survol rpide de l structure et du fonctionnement de l environnement d un processeur dns une mchine de type PC. Cette entrée en mtière peut servir d initition à l informtique côté mtériel soit une ou deux leçons de niveu DEUG. Cet ouvrge comprend ensuite deux chpitres qui peuvent former un cours de circuiterie. De fçon scendnte, en prtnt des trnsistors, on construit un processeur rudimentire. En implntnt le processeur en circuits, on peut se fire une idée très précise de l exécution d un progrmme en mchine. Le lngge mchine que le processeur définit permet de fire le lien vec les lngges évolués que tout informticien mnipule. Le pulic visé est l ensemle des étudints en informtique. Un cours de ce type dure environ un semestre (une trentine d heures de cours et utnt d exercices; cette prtie s chève pr l description précise d un sujet de projet de synthèse). Sheet numer 13
Sheet numer 14 Une fois ce premier plier frnchi, le livre propose un chpitre conscré à l rchitecture. Il forme un cours qui complète les enseignements de compiltion et de système. On y découvre ce que sont les lngges mchines d ujourd hui: clcul entier, clcul flottnt, clcul sclire, clcul vectoriel; instructions prédictives, instructions de contrôle, instructions systèmes; rchitectures RISC et EPIC. Typiquement, il s git d un enseignement qui prend s plce en licence d informtique, sur une durée pouvnt ller de 20 à 30 heures de cours (et utnt pour les exercices), selon que l on se contente de présenter le clcul entier et le clcul flottnt ou que l on y inclut le clcul SIMD (unités vectorielles). En plus de l rchitecture, le livre présente églement un chpitre sur l micro-rchitecture. C est là l prtie des spécilistes. Elle étudie l implnttion de l rchitecture à prtir des circuits présentés dns l première prtie du livre. Il s git de l étt de l rt, en l occurrence une micro-rchitecture spécultive et supersclire. L description inclut les unités de clculs, y compris les opérteurs flottnts et vectoriels. Les cches, le renommge des registres, l prédiction des suts et le tritement en prllèle des instructions en sont les thèmes centrux. Le chpitre s chève sur l présenttion d un sujet de TER (Techniques d Étude et de Recherche) typique de l ctivité de recherche d un micro-rchitecte. Ce cours s plce comme option de mîtrise ou encore en DESS ou DEA orienté vers le mtériel, sur une durée d environ 25 heures. Enfin, le livre se termine pr un chpitre conscré à l environnement du processeur: s mémoire hiérrchisée et les us qui le relient ux périphériques. Sheet numer 14
Sheet numer 15 1 Introduction Dns cette introduction, en nous ppuynt sur l description sommire d un microordinteur ctuel, nous montrons comment un processeur intergit vec son environnement pour exécuter des progrmmes insi que les communictions d informtions que cel induit. Ensuite, nous définissons l rchitecture et l micro-rchitecture et nous fisons pprître les liens entre ces deux domines et les utres domines de l informtique. Enfin, nous pssons en revue les différents spects de l rchitecture et de l micro-rchitecture d un processeur en précisnt dns quel chpitre du livre ils sont trités. 1 L crte mère d un PC L figure 1.1 p.4 représente l crte mère d un micro-ordinteur de ureu ctuel. L crte mère est l colonne vertérle de l ordinteur. Il s git d un support imprimé de pistes métlliques relint ses circuits et ses connecteurs. Prmi ces circuits, on trouve le processeur, l mémoire et des circuits de contrôle. Les liisons entre les circuits forment des us, dont l crctéristique principle est l nde pssnte, produit de l fréquence pr l lrgeur (l nde pssnte se mesure en octets pr seconde; l lrgeur d un us doit donc être exprimée en octets ou frction d octet). Les us peuvent déoucher sur des connecteurs et des ports, qui servent de prise pour rncher une crte ou un périphérique. Ces connecteurs et ces ports respectent différents stndrds (qui évoluent vec l technologie) uxquels se conforment les constructeurs de périphériques. Le processeur est relié à un contrôleur de mémoire qui prend à s chrge les liisons entre le processeur et l mémoire centrle (chrgement des cches), entre le processeur et l mémoire vidéo (construction d imge pour l écrn grphique), entre l mémoire vidéo et l mémoire centrle (rngement/chrgement d imge sns psser pr le processeur), entre le processeur et le contrôleur d entrées-sorties (entrée-sortie du processeur), entre le contrôleur d entrées-sorties et l mémoire centrle (ccès en DMA: Direct Memory Access; pr DMA, le contrôleur d entrées-sorties peut lire ou écrire Sheet numer 15
Sheet numer 16 2 Chpitre 1 : Introduction un loc de données en mémoire centrle sns intervention du processeur) et enfin entre le contrôleur d entrées-sorties et l crte grphique (trnsfert d imges de ou vers l extérieur, sns intervention du processeur). Le us relint le processeur u contrôleur de mémoire est le us système, prfois ppelé us FSB (Front-Side Bus). Il est cdencé à 266 Mhz et une lrgeur de huit octets (cs d un Athlon XP; on commence à voir des us FSB à 333 Mhz), ce qui lui donne un déit crête de 2,128 GO/s ou 400 Mhz (cs d un Pentium IV). L nde pssnte est lors de 3,2 GO/s. Le us mémoire, qui relie le contrôleur de mémoire à l mémoire centrle, est conforme u rochge et u cdencement des composnts mémoires. Aujourd hui, l mémoire centrle est composée de SDRAM (Synchronous Dynmic Rndom Access Memory) 133 Mhz ou de DDRAM (Doule dt rte DRAM) 266 Mhz (pprition récente de DDRAM 333 Mhz). Le us d ccès occupe qutre octets de lrge, ce qui ssure un déit de 533 MO/s pour l SDRAM et 1,066 GO/s pour l DDRAM. Pour les deux types de mémoire, le us est cdencé u même rythme. Mis pour l DDRAM, l trnsmission de données peut s effectuer deux fois pr cycle. Enfin, on peut églement réliser l mémoire centrle vec des composnts RDRAM (Rmus DRAM). Ces composnts peuvent être cdencés à 800Mhz, ce qui donne u us mémoire un déit crête de 3,2 GO/s. En ce qui concerne le domine grphique, le stndrd ctuel est le us AGP-4X (Accelerted Grphics Port). Il relie le contrôleur de mémoire à l crte grhique qui contient de l mémoire vidéo (sous forme de SDRAM ou de DDR-SDRAM). Le us AGP est cdencé à 66 Mhz, vec qutre ccès mximum pr cycle (pour AGP-4X. On trouve de l AGP, AGP-2X, AGP-4X et ientôt AGP-8X) et une lrgeur de qutre octets. S nde pssnte est donc de 1,066 GO/s (266 MO/s pour l version de se AGP, 533 MO/s pour l version 2X et 2,128 GO/s pour l version 8X). Étnt donné l position centrle du us système, il est clir que s nde pssnte doit être l plus élevée possile pour lui permettre de fire fce ux diverses demndes du processeur. Nénmoins, il ne fut ps perdre de vue qu une prt très importnte des échnges d informtions qui ont lieu u sein de l crte mère ne concerne ps le processeur et s effectue directement entre un périphérique et l mémoire. Les contrôleurs mémoire et les deux us mémoire (mémoire centrle et mémoire grphique) sont lors mis à contriution. Leur nde pssnte est donc tout ussi importnte. Derrière le contrôleur de mémoire se trouve le contrôleur d entrées-sorties. Celui-ci gère le pilotge des différents us de liisons vec l grnde vriété de périphériques que l on peut connecter à un ordinteur: périphériques ccédés pr locs (disques, CD/DVD-ROM), périphériques ccédés pr crctères trnsmis sur une voie d un octet (trnsmission prllèle; lecteur de disquette), périphériques ccédés pr crctères trnsmis sur une voie d un it (trnsmission série; clvier/souris). Pour les disques, le stndrd sur PC est le us IDE/UDMA-ATA/100 (IDE: Integrted Drive Electronics; ATA: AT Attchment; Ultr ATA ou Ultr DMA ou ATA/33; ATA/66 ou UDMA/66; ATA/100 ou UDMA/100). Contrirement u us AGP, le us IDE n est ps synchronisé pr une horloge. Le protocole d échnge est étli à prtir de signux de contrôles synchrones. L technologie et l longueur employées pour l trnsmission des signux définissent l vitesse d échnge mximle. Le us IDE véhicule des données de deux octets. L norme ATA/100 permet d tteindre un déit Sheet numer 16
Sheet numer 17 L crte mère d un PC 3 crête de 100 MO/s (33 MO/s pour ATA/33 et 66 MO/s pour ATA/66). Pour les liisons séries (trnsmission d un it à l fois), le stndrd est le us USB (Universl Seril Bus). Le us est cdencé à 12 Mhz ce qui utorise un déit crête de 1,2 MO/s. À chque extrémité du us, un circuit est chrgé de sérier les its de l octet à trnsmettre et de régglomérer ceux de l octet reçu. Sur le us USB se connectent des clviers, des souris, mis ussi des modems (un modem 56 K un déit crête de 5,6 KO/s). Le stndrd USB 2.0 est une extension de l USB. Le us est cdencé à 480 Mhz pour un déit de 48 MO/s. On peut connecter d utres périphériques à l ordinteur pr l intermédiire d une crte enfichée sur l un des connecteurs d extensions de l crte mère. L crte fille sert à l fois de contrôleur et de point de rnchement du périphérique (l crte fille dispose d une prise qui déouche sur l rrière du oîtier du PC). Les connecteurs d extensions de l crte mère respectent tous le formt PCI (Peripherl Component Interfce). Les connecteurs PCI sont reliés u contrôleur d entrées-sorties pr le us PCI, qui est cdencé à 33 Mhz et fit qutre octets de lrgeur. Nous otenons un déit crête de 133 MO/s. Au formt PCI, on trouve des crtes sons, des crtes SCSI (Smll Computer System Interfce) etc. Cette interfce est de même nture que l IDE. On lui connecte principlement des disques. Le us SCSI est cdencé à 80Mhz -Ultr SCSI160- et fit deux octets de lrge pour un déit crête de 160 MO/s. Cependnt, sur un PC, le us SCSI étnt dépendnt du us PCI, le déit de ce dernier ride celui du premier. Mis sur PC, l vntge du SCSI n est ps l vitesse mis l extensiilité. Il permet en effet de connecter des périphériques supplémentires u-delà des qutre offerts pr l interfce IDE, ce qui est utile pr exemple sur un serveur doté de plus de qutre disques. Le stndrd PCI-2 est une extension du stndrd PCI. Le us psse à 64 its u lieu de 32 et est cdencé à 66 Mhz u lieu de 33, ce qui lui donne un déit de 528 MO/s. Après le contrôleur d entrées-sorties, on trouve le contrôleur de configurtion et du démrrge. Ce circuit n est en reltion vec le processeur que pendnt l phse de démrrge de l ordinteur (ce qui explique s position éloignée du processeur). Il contrôle l PROM (Progrmmle Red Only Memory) qui renferme le progrmme de démrrge. Pendnt cette phse, les ccès mémoires du processeur sont cheminés u trvers du contrôleur de mémoire et du contrôleur d entrées-sorties jusqu u contrôleur de configurtion. Celui-ci délivre en prticulier le progrmme de démrrge qui commence pr l procédure POST (Power-On Self Test). Celle-ci se se sur le descriptif de l configurtion de l ordinteur qui est conservé dns l RAM flsh pour démrrer et tester les contrôleurs et circuits de l mchine: pr exemple, démrrge du rfrîchissement de l mémoire centrle, vérifiction de son on fonctionnement... Le démrrge se poursuit pr l recherche d un volume contennt le système. Le rôle du contrôleur de configurtion s chève dès que le système été instllé en mémoire centrle (il reprend du service lors de chque réinitilistion de l ordinteur). Les trois contrôleurs - de mémoire, d entrées-sorties et de configurtion - forment le jeu de circuits d ccompgnement du processeur (le chipset). À chque nouvelle génértion de processeur, le chipset chnge. En revnche, les us - us mémoire, us AGP, us IDE, us PCI, us USB - ne chngent ps ussi fréquemment et doivent être comptiles vec leurs versions ntérieures. Dns le cs contrire, les constructeurs de périphériques devrient rutlement modifier l interfçge de leurs produits vec le PC. Sheet numer 17
Sheet numer 18 4 Chpitre 1 : Introduction mémoire centrle contrôleur disques disques CD/DVD ports séries clvier/souris modem us mémoire centrle us mémoire de msse us stndrd d extensions séries processeur et cches us système contrôleur mémoire crte grphique mémoire vidéo us mémoire grphique contrôleur d E/S connecteurs de crtes d extensions us stndrd d extensions prllèles crte son crte SCSI crte Ethernet crte ADSL contrôleur de configurtion et démrrge PROM RAM flsh tterie écrn grphique Figure 1.1 : L crte mère d un micro-ordinteur. Exercice 1.1: un film est lu à prtir d un disque connecté sur le us IDE. On suppose que le trnsfert se fit à vitesse mximum (ATA/100). Le film est présenté dns une fenêtre de 512 pr 384 pixels en 256 couleurs. Les imges ne sont ps compressées. Quels sont les us utilisés pour le trnsfert? Quelle prt (pourcentge) de leur nde pssnte est consommée qund on trnsfère 24 imges pr seconde? Exercice 1.2: cette fois, le film est lu à prtir d un nvigteur Internet et vi un modem ssurnt un déit moyen de 4 KO/s. Quels sont les us utilisés pour le trnsfert? Comien de temps fut-il pour trnsférer une imge? Comment peut-on méliorer l vitesse d ffichge? 2 L exécution d un progrmme sur un PC À prtir de l figure 1.1, on peut montrer le cheminement des informtions induit pr l exécution d un progrmme. Tout commence pr un clic de souris sur une icône. Plus précisément, supposons que le PC soit dns un étt de veille, crctérisé soit pr un écrn noir, soit pr un économiseur d écrn en exécution. Dns ces deux cs, le ureu (l ensemle des icônes définissnt les liens vec les progrmmes directement ccessiles depuis le terminl) n est ps pprent à l écrn. En ccéléré, le lncement d un progrmme nécessite un ordre en provennce de l souris (grâce à un doule-clic sur une icône représentnt le progrmme à exécuter ou en provennce du clvier, grâce à l sisie de son nom). Le progrmme est lors chrgé en mémoire centrle depuis le disque et devient un processus. Le processeur en exécute les instructions et l effet du progrmme pprît, soit en mémoire, soit sur les Sheet numer 18
Sheet numer 19 L exécution d un progrmme sur un PC 5 périphériques. Mis pour mieux pprécier l sophistiction du procédé, il fut regrder les choses en détil. mémoire centrle contrôleur disques ports séries souris USB déplcement processeur et cches interruption contrôleur mémoire contrôleur d E/S contrôleur de configurtion et démrrge crte grphique mémoire vidéo connecteurs de crtes d extensions écrn grphique Figure 1.2 : Effet du déplcement de l souris. Le mouvement de l souris sur son tpis v voir un certin nomre d effets (on ne prle ps encore du mouvement du pointeur sur l écrn; cel ne viendr que plus trd, en réction). Le mouvement de l souris équivut dns un premier temps à un déplcement mécnique. En effet, une première roue dentée, représentnt le déplcement horizontl, et une seconde roue, représentnt le déplcement verticl, tournent dns un certin sens et se déclent d un certin nomre de crns. D utres dispositifs équivlents peuvent trnsformer le mouvement en quntité. Un mouvement de grnde mplitude se trduit pr une succession de déplcements prtiels. Ce déplcement mécnique est ensuite converti en une informtion numérique qui est trnsmise it pr it à l un des ports USB uquel est relié l souris. De là, l informtion psse dns le contrôleur d entréessorties vi le us USB (voir l figure 1.2), puis dns le contrôleur de mémoire (qui ne sert que de relis). En émettnt une interruption, le contrôleur de mémoire signle u processeur l rrivée d une donnée en provennce de l souris. Cette interruption pour effet de dérouter l exécution du progrmme en cours sur le processeur vers un sous-progrmme d ccueil de l donnée. Le processus interrompu est pr exemple l économiseur d écrn (le processeur peut églement être en étt de veille, pour ne ps gspiller d énergie; l interruption l ctive donc). Le processeur, en exécutnt le gérnt d interruption, récupère du contrôleur de mémoire ce qui provient de l souris et le dépose en mémoire. Dns un premier temps, cel reste interne u processeur, celuici disposnt d un cche. Un mot dns le cche n est évcué vers l mémoire centrle que lorsqu il fut l y remplcer. Ce qui provient de l souris est plcé dns une zone pprtennt u processus gestionnire du terminl grphique. Ce processus est pour l instnt en sommeil, ttendnt le client. Le gérnt d interruption, en même temps qu il Sheet numer 19
Sheet numer 20 6 Chpitre 1 : Introduction dépose l informtion en provennce de l souris, réveille le gestionnire de terminl grphique, qui est son destintire. Exercice 1.3: à quel déit s effectue l trnsmission des informtions concernnt le déplcement de l souris? Ce processus, une fois réveillé, récupère le déplcement de l souris et s en sert pour clculer s nouvelle position. Pour que l utilisteur ne s imptiente ps trop, le gestionnire ordonne un déplcement équivlent u pointeur sur l écrn: voir l figure 1.3. Cette figure représente une succession d ordres prtnt du processeur vers l crte grphique vi le contrôleur de mémoire. Chque ordre modifie les pixels formnt l imge ffichée: le pointeur disprît cr l on donne à ses pixels l couleur du fond à cet endroit, puis il répprît un crn plus loin dns l direction de s cile, et insi de suite jusqu à ce que celle-ci soit tteinte. Après plusieurs déplcements successifs de l souris et du pointeur (USB vers processeur et processeur vers écrn), le pointeur de l souris tteint l icône du progrmme à lncer. L utilisteur, voynt désormis son pointeur u-dessus de l icône, effectue un doule-clic (voir l figure 1.4 p.7). L ordre est trnsmis u gestionnire de terminl. Le terminl reproduit le doule-clic en grisnt l imge de l icône à l écrn (figure 1.5 p.7). Le gestionnire de terminl, pr l position cournte du pointeur, détermine le nom et le type ssocié à l icône (c est-à-dire le nom du progrmme à lncer et son type: progrmme exécutle, donnée ssociée à un progrmme mnipulteur, dossier ou ctlogue,...). Le gestionnire de terminl réveille l interpréteur de commndes et lui communique une phrse signifint un ordre d exécution du progrmme (en employnt le clvier plutôt que l souris, on compose soi-même cette phrse, que l on peut enrichir de prmètres destinés u progrmme lncé). mémoire centrle contrôleur disques ports séries processeur et cches déplcer le pointeur contrôleur mémoire contrôleur d E/S contrôleur de configurtion et démrrge crte grphique mémoire vidéo connecteurs de crtes d extensions rfrîchissement de l imge à 70 100 Hz écrn grphique Figure 1.3 : Effet du déplcement de l souris sur l écrn. Sheet numer 20
Sheet numer 21 L exécution d un progrmme sur un PC 7 mémoire centrle contrôleur disques ports séries souris USB doule clic processeur et cches interruption contrôleur mémoire contrôleur d E/S contrôleur de configurtion et démrrge crte grphique mémoire vidéo connecteurs de crtes d extensions écrn grphique Figure 1.4 : Effet du doule-clic de l souris sur le processeur. mémoire centrle contrôleur disques ports séries processeur et cches contrôleur mémoire contrôleur d E/S contrôleur de configurtion et démrrge crte grphique mémoire vidéo connecteurs de crtes d extensions griser l icône sélectionnée écrn grphique Figure 1.5 : Effet du doule-clic de l souris sur l écrn. Exercice 1.4: à quel déit s effectue l trnsmission des informtions concernnt le déplcement du pointeur sur l écrn? L interpréteur de commndes chrge une prtie du progrmme en mémoire. Pour cel, il communique u noyu du système le nom du fichier exécutle correspondnt u Sheet numer 21
Sheet numer 22 8 Chpitre 1 : Introduction progrmme (ce que l on ppelle l référence solue). Le noyu en déduit le support physique où se trouve le fichier (disque, CD-ROM, disquette) et son emplcement sur ce support (pour un disque: prtition, cylindre, piste et secteurs). En fonction du support concerné (nous supposons dns l suite qu il s git d un disque), le noyu fit ppel à un pilote dpté. Le pilote contcte le contrôleur d entrées-sorties pr l intermédiire du contrôleur de mémoire (figure 1.6) et lui réclme l lecture de différents locs (ceux qui forment le déut du fichier exécutle). Cette lecture se fit en DMA, sns intervention du processeur (figure 1.7 p.9). Le contrôleur d entrées-sorties et le contrôleur de mémoire se chrgent du trnsfert du disque vers l mémoire centrle. Un ordre de lecture est trnsmis u contrôleur IDE pr le us IDE. Le contrôleur IDE pilote lors le disque et lui ordonne d effectuer le déplcement rdil de l tête pour tteindre le cylindre visé à prtir du cylindre cournt. Les secteurs souhités sont lus et leur contenu est trnsmis pr le us IDE u contrôleur d entrées-sorties, deux octets à l fois. Le contrôleur de mémoire plce ces données dns une pge mémoire choisie pr le pilote du noyu (écriture pr mot de qutre octets vi le us mémoire). Cette pge fit prtie de l espce mémoire réservé ux entrées-sorties pr le système et est liée à l interpréteur de commndes à l origine de l lecture. Une fois l morce du progrmme instllée en mémoire, le contrôleur de mémoire signle pr interruption l fin de l échnge DMA u processeur (figure 1.8 p.10). Entre temps, celui-ci pu effectuer d utres tâches ou à défut se mettre en veille. mémoire centrle contrôleur disques ports séries ordre de lecture disque processeur et cches contrôleur mémoire progrmmtion d un cnl DMA entre IDE et mémoire crte grphique mémoire vidéo contrôleur d E/S connecteurs de crtes d extensions contrôleur de configurtion et démrrge écrn grphique Figure 1.6 : Chrgement d un progrmme en mémoire: initilistion du cnl DMA. Exercice 1.5: à quel déit s effectue le chrgement du progrmme en mémoire? L interpréteur de commndes peut désormis jouter un nouveu processus à ceux déjà lncés. Ce processus est relié ux pges de l mémoire centrle contennt son code et ses données initiles. Son exécution peut enfin démrrer. Au cours de cette exécution, de nouvelles entrées-sorties peuvent être nécessires (ffichge à l écrn, Sheet numer 22
Sheet numer 23 L interction entre logiciel et mtériel 9 lecture u clvier, extension de l espce mémoire résident pr jout de code, de pile ou de ts, lecture ou écriture de fichiers locux ou distnts, etc...). Dns tous les cs, le processus s en remet u système en ppelnt un pilote dpté u périphérique visé. Le pilote dilogue vec les contrôleurs pour lncer l entrée-sortie. Comme celle-ci est de longue durée en regrd de l vitesse du processeur, le système met le processus en sommeil. Il est réveillé pr l interruption du contrôleur de mémoire qui signle l fin de l échnge. Plus précisément, dns un système multi-tâches préemptif comme Unix, le gérnt d interruption remet le processus à l étt prêt et reprend l exécution du processus interrompu. Le processus en entrée-sortie ne redevient ctif qu à son tour. mémoire centrle contrôleur disques ports séries processeur et cches contrôleur mémoire cnl DMA du disque à l mémoire contrôleur d E/S contrôleur de configurtion et démrrge crte grphique mémoire vidéo connecteurs de crtes d extensions écrn grphique Figure 1.7 : Chrgement d un progrmme en mémoire: trnsfert pr le cnl DMA. Exercice 1.6: à quel déit s effectue l exécution du progrmme (cette fois, le déit doit être exprimé en instructions pr seconde plutôt qu en octets pr seconde)? 3 L interction entre logiciel et mtériel Si l on se contente d utiliser un ordinteur pour exécuter des pplictions toutes fites, il n est ps nécessire d en connître plus sur l informtique. Dns ce cs, l ordinteur n est qu un outil, u même titre qu une utomoile pour une personne désirnt se déplcer. En revnche, si l on veut soi-même développer des pplictions, il en v tout utrement. Mis à prt quelques cs prticuliers d pplictions à l spect et u comportement stndrdisés (pr exemple une fenêtre, un menu sous forme de outons et un ensemle de réctions simples ux événements comme le clic de l souris: pplictions Windows ou pges We enrichies d pplets), le développement nécessite des connissnces dns des domines divers. D ord en progrmmtion: mîtrise d un lngge, de ses outils (liriries, clsses d ojets) et de s trduction (compiltion, Sheet numer 23
Sheet numer 24 10 Chpitre 1 : Introduction semi-compiltion ou interpréttion). Ensuite en système: exécution du processus, lloction de s mémoire, tritement de ses entrées-sorties, prise en chrge des exceptions. L écriture du code source nécessite églement de onnes compétences dns le domine trité pr l ppliction et, d une fçon générle, en lgorithmique. mémoire centrle contrôleur disques ports séries processeur et cches fin de DMA interruption contrôleur mémoire contrôleur d E/S contrôleur de configurtion et démrrge crte grphique mémoire vidéo connecteurs de crtes d extensions écrn grphique Figure 1.8 : Chrgement d un progrmme en mémoire: fin du trnsfert DMA. L rchitecture d un processeur est le niveu d strction formnt l cile des compilteurs (le jeu d instructions du lngge mchine, ses types de données - essentiellement entier et flottnt, voire ooléen - et ses vriles - les registres et l mémoire -). L micro-rchitecture est l implnttion de l rchitecture dns un processeur. Pr exemple, les PC sont ujourd hui construits vec des processeurs Pentium IV, Pentium III, Celeron, Duron et Athlon qui sont utnt de micro-rchitectures d une seule et même rchitecture, l IA-32 (que l on ppelit 80x86 pr le pssé). Les imcs sont construits vec des Power G3 ou G4, qui sont deux micro-rchitectures de l rchitecture PowerPC. L informticien doit-il voir des connissnces en rchitecture? Si le domine trité pr l ppliction qu il souhite développer est le mtériel lui-même (cs d un logiciel de se), l réponse est clirement oui. Il en v de même si l ppliction est un compilteur. Mis l rchitecture des processeurs contient des notions qui sont essentielles à l onne progrmmtion, quelle que soit l ppliction visée. Cel commence pr l représenttion des types de données: le signe des entiers vec l représenttion du complément à deux (chpitre 3) et le formt flottnt IEEE-754 (chpitre 4). L connissnce de ces représenttions est indispensle chque fois que l on fit emploi de fonctions de conversions, qu elles soient explicites ou implicites (en C, une déconvenue clssique de tout progrmmeur est de déclrer unsigned une vrile qui à l exécution prend une vleur négtive; l nomlie n est en générl détectée que trdivement, près que diverses comprisons ient été fondées sur une interpréttion positive de l vleur négtive). Pour les flottnts, svoir que les clculs ne sont ps excts cr rrondis est Sheet numer 24
Sheet numer 25 L interction entre logiciel et mtériel 11 vitl pour ne ps ccorder une confince veugle ux chiffres composnt un résultt, voire pour simplement contrôler une oucle de convergence (il se peut que l fonction en clcul exct converge, mis qu en clcul rrondi on cesse de converger à quelques ps du résultt; on contrôle ce type de oucle en chevnt le clcul lorsqu une précision donnée est tteinte: écrt entre l vleur précédente et l nouvelle vleur inférieur en vleur solue à un terme constnt ɛ). En plus de leurs représenttions, il est églement utile de connître les opértions de se pplicles ux entiers (chpitre 3 pour l rélistion de l ddition et des déclges en circuits, chpitre 5 pour l multipliction et l division entières) et ux flottnts (chpitre 5). Les opértions de se sont celles que l on sit câler dns une micro-rchitecture. Elles sont d emploi suffismment fréquent pour figurer dns le jeu d instructions mchine. Pr exemple, certines rchitectures ne considèrent ps l division entière comme une opértion de se. Elle est émulée à prtir de l multipliction ou clculée dns l unité flottnte près conversion. Ce peut même être le cs de l multipliction entière, qui est fréquente surtout sous l forme c v où c est une constnte puissnce de deux. Dns ce cs, un simple déclge suffit. Associées ux opérteurs, il y leurs exceptions: le déordement d intervlle dns les clculs entiers (chpitre 3), ignoré dns un lngge comme C, mis tritle pr un gestionnire d exception en C++; les exceptions de l norme IEEE-754 pour les clculs flottnts (chpitre 4) vec les nomres dénormlisés, les NN et les infinis. Après les types de données, l rchitecture définit les vriles. Le modèle universellement dopté est celui d un ensemle de registres (chpitre 2 pour l description d une cellule mémoire multi-port, chpitre 3 pour l description d un nc de registres, chpitre 4 pour l définition des registres dns une rchitecture). On prle d rchitecture registre-registre. Seule une étude détillée de l rchitecture d un processeur, et même de s micro-rchitecture, permet d expliquer pourquoi on n emploie ps un modèle orgnisé utour de l mémoire en ccès direct ou en ccès pr empilement/dépilement. De tels modèles ont existé pr le pssé mis ont été ndonnés. En prticulier, il fut oulier l justifiction reposnt sur l vitesse: un ensemle de n registres de m its est plus lent d ccès qu une mémoire de n mots de m its cr le nc de registres occupe une plus grnde surfce de silicium que l mémoire. Il existe un nc de registres pour chque type de données (entier, flottnt, ooléen,...). Le nc de registres entiers et le nc de registres flottnts peuvent éventuellement communiquer. Le jeu d instructions qui prévoit une instruction de trnsfert dns un sens ou dns l utre précise ce point (trnsfert sns conversion; l conversion est une opértion de l unité flottnte). Sns une telle communiction, une conversion d entier vers flottnt ou de flottnt vers entier nécessite un pssge pr l mémoire (le compilteur produit les instructions nécessires qund ce cs pprît dns un progrmme, pr exemple lors des conversions implicites en C). Vient ensuite le jeu d instructions proprement dit. Le modèle CISC (Complex Instruction Set Computer qui est le modèle sous-jcent de l rchitecture IA-32) est en compétition vec le modèle RISC (Reduced ISC qui est le modèle de toutes les utres rchitectures: PowerPC, DEC Alph AXP, HP PA, Sun SPARC, MIPS). En rélité, il n y plus guère de compétition. En effet, les processeurs d rchitecture CISC ctuels trnsforment leurs instructions en micro-instructions RISC. Avec l rchitecture IA-64, Intel et HP tentent d imposer un nouveu type d rchitecture et de jeu d instructions: Sheet numer 25
Sheet numer 26 12 Chpitre 1 : Introduction le modèle EPIC (Explicitly Prllel Instruction Computer qui est présenté à l fin du chpitre 4). Que l rchitecture soit de type CISC, RISC ou EPIC, le jeu d instructions peut être divisé en cinq grndes ctégories (voir le chpitre 4). Il existe des instructions de contrôles principlement composées de suts conditionnels, des instructions de clculs (que l on peut encore sudiviser en clculs entiers et flottnts) et des instructions d entrées-sorties, c est-à-dire d ccès à l mémoire (instructions dites de chrgement et de rngement. Dns les systèmes modernes, l espce des entrées-sorties est mppé en mémoire (chpitre 6)). Pr conséquent, lire ou écrire sur un périphérique revient à chrger ou rnger une donnée en mémoire (à l extérieur du processeur, l dresse émise est reconnue comme identifint le périphérique visé). Il existe en outre des instructions SIMD (Single Instruction Multiple Dt; voir le chpitre 4 pour leur sémntique et le chpitre 5 pour leur implnttion). Celles-ci permettent le tritement en prllèle des éléments d un vecteur. Elles s pprentent ux instructions de clculs (entiers et flottnts), en en proposnt une extension vectorielle et en joutnt quelques opértions spécifiques (en prticulier, sur les entiers, une rithmétique à sturtion en plus de l trditionnelle rithmétique modulo). Enfin, il existe quelques instructions dévolues u système (chpitre 4): ccès ux différentes prties de l micro-rchitecture pour permettre le chngement de contexte dns les systèmes préemptifs comme Unix ou Windows-NT (suvegrde-resturtion des registres, mise à jour de l MMU (Memory Mngement Unit), mode noyu et mode utilisteur), mis ussi le tritement des exceptions (défut de pge pr exemple, voir le chpitre 6). L principle différence entre les modèles CISC, RISC et EPIC est l richesse de chcune des cinq ctégories et le mode de codge des instructions (chpitre 4). Le modèle CISC repose sur un codge de tille vrile. Les instructions les plus fréquentes qui ne nécessitent ps d utre référence que le nc de registres, sont codées sur deux octets. Cel limite l tille du nc de registres à un mximum de huit registres. Les utres instructions nécessitent des compléments, soit vec un préfixe d extension, soit vec des données en suffixe. Cel permet une grnde souplesse de codge, à tel point que le jeu d instructions est même extensile (ce qui permis pr exemple d jouter les instructions MMX u jeu de se). En revnche, cel induit une grnde complexité de décodge. Pr exemple, le jeu d instructions permet de mnipuler ussi ien des registres que des vriles en mémoire (pour pllier le mnque de registres, on dispose d instructions de clcul ynt une source en mémoire; c est une utre différence notle vec les rchitectures RISC et EPIC). Il contient ussi de nomreux modes d dressge (ce qui s pprente à du tritement de pointeur en C). Les instructions de clcul comprennent des opértions d rithmétique décimle et de tritement de chînes de crctères. Le modèle RISC implique l codifiction des instructions en un mot de 32 its découpé en quelques chmps (une instruction est à peu de choses près un qudruplet: deux sources, une destintion et une opértion). Comme chque chmp est de tille réduite, suf l un d entre eux qui peut servir pour coder les constntes, le modèle RISC limite l tille du nc de registre à 32 registres. Il limite églement le nomre d opértions (de l ordre d une centine, tout type confondu). Les instructions prennent leurs sources et ont leur destintion dns le nc de registre, à l exception des instructions de chrgement et de rngement. Les chrgements ont une source en mémoire. Les rngements Sheet numer 26
Sheet numer 27 L structure du livre 13 ont une destintion en mémoire (le modèle exclut les instructions de clcul ynt une source en mémoire). En générl, l rchitecture ne prévoit qu un seul mode d dressge de type se plus déplcement. Le modèle EPIC regroupe plusieurs instructions en un pquet (undle). Dns l rchitecture IA-64, un pquet regroupe trois instructions de 41 its chcune ccompgnées de cinq its exprimnt leurs dépendnces. Cette tille supérieure de codge des instructions permet à l fois de disposer d un plus grnd nomre de registres (128 u lieu de 32) et d un plus grnd nomre d opértions (à mi-chemin entre CISC et RISC). Le jeu d instructions IA-64 introduit en prticulier de nouveux concepts, tous orientés vers le prllélisme d instructions: instructions conditionnelles grdées pr un prédict pour éviter les suts de file mplitude, gestion en pile des registres pour fciliter le déroulge des oucles en pipeline logiciel, chrgements nticipés et conditionnels pour sorer l ltence des ccès mémoire. Le découpge en chmps réguliers inspiré du modèle RISC simplifie le décodge. L micro-rchitecture enfin se compose d un certin nomre de détils d implnttion qui sont essentiels à une onne orgnistion des clculs. Prmi ceux-ci figure l hiérrchistion de l mémoire qui repose sur le principe de loclité (chpitres 3 et 6; il est importnt de connître les crctéristiques des cches composnt l hiérrchie pour fixer leur tux d échec et leur temps d ccès). En font églement prtie, l exécution en prllèle et en recouvrement des instructions (orgnistion supersclire et pipelinée du processeur, voir le chpitre 5), l prédiction des suts vec l pénlité et le tux de muvises prédictions, le renommge des registres pour ugmenter le prllélisme d instructions et l exécution en désordre des instructions, selon un modèle à flot de donnée (chpitre 5; une instruction démrre son exécution qund ses données sont disponiles et non ps lorsque l instruction précédente démrré). S y joutent, l ltence des opértions (opértion courte, opértion longue, opértion de durée vrile comme les chrgements dont l ltence dépend de l hiérrchie mémoire; les longues ltences peuvent être sorées pr l exécution en désordre) et enfin le fonctionnement des opértions vectorielles. Si tous les processeurs ctuels sont construits à prtir d une micro-rchitecture de modèle unique (exécution supersclire, spécultive et en désordre, voir chpitre 5), cette unnimité risque d être remise en cuse pr l micro-rchitecture de l Itnium, le nouveu processeur Intel-HP fondé sur l rchitecture IA-64. Comme cette rchitecture fit pprître le prllélisme d instructions u sein des pquets, il n est ps nécessire que l micro-rchitecture ugmente le prllélisme d instructions à l exécution. L micro-rchitecture de l Itnium exécute les instructions en ordre, à chrge pour le compilteur de préprer un ordonnncement des instructions u sein des pquets qui recouvre u mximum les ltences. 4 L structure du livre Ce livre compte six chpitres (y compris cette introduction), qui décrivent un processeur et son environnement de fçon scendnte. L figure 1.9 p.14 montre comment s enchînent les chpitres. On commence (deuxième chpitre) pr les trnsistors servnt à former les cellules de se: portes, séprteurs et cellules mémorisntes. Sheet numer 27
Sheet numer 28 14 Chpitre 1 : Introduction Ensuite (troisième chpitre), on présente un ensemle de circuits: circuits logiques, rithmétiques, de séprtion, de mémoristion. Ces circuits constituent un ensemle suffisnt pour construire n importe quelle micro-rchitecture ctuelle. Ce troisième chpitre représente un premier plier. Il se termine pr quelques exemples d ssemlge de circuits permettnt notmment de former un cche, mis il présente en outre un exemple d rchitecture et de micro-rchitecture élémentires, le processeur LUC3. Ce premier plier s chève pr l description d un projet de synthèse conscré à l implnttion d un simulteur de circuits devnt servir à l rélistion d un simulteur du processeur donné en exemple. logique ooléenne chpitre 2 trnsistors portes chpitre 3 circuits cours de circuiterie circuits lngge C cours d rchitecture chpitre 4 rchitecture lngge mchine chpitre 5 micro rchitecture système processeur cours de micro rchitecture utilistion d un ordinteur chpitre 1 introduction chipset et us chpitre 6 mémoire cours de mtériel crte mère Figure 1.9 : Enchînement logique des chpitres. Au qutrième chpitre, on définit une rchitecture de processeur réel, à mi-chemin entre RISC et EPIC. Elle inclut un jeu d instructions flottntes respectnt l norme IEEE-754. On définit églement un jeu d instructions vectorielles entières et flottntes (équivlent des jeux MMX, SSE1 et SSE2 de l rchitecture IA-32/64). Le cinquième chpitre est conscré à l micro-rchitecture à proprement prler. On y présente l prédiction de sut, le renommge des registres, l exécution en désordre, le réordonnncement des ccès mémoire, le mtériel des opérteurs rithmétiques complexes (multiplieur, diviseur, opérteurs flottnts, opérteurs vectoriels), l orgnistion supersclire (prllélisme de simultnéité) et enfin l orgnistion pipelinée (prllélisme de recouvrement). Ce chpitre s chève pr un sujet de TER (Technique d Étude et de Recherche; il s git des sujets d initition à l recherche que les cursus de mîtrise doivent proposer ux étudints). Le sixième et dernier chpitre trite de l environne- Sheet numer 28
Sheet numer 29 L structure du livre 15 ment du processeur: s hiérrchie mémoire et le fonctionnement des cches, son unité de gestion mémoire (MMU) et l mémoire virtuelle insi que les différents types de us et les entrées-sorties. Il n est ps indispensle de lire ce livre linéirement. Le deuxième chpitre ne nécessite ps d utre connissnce qu un peu de logique ooléenne (tles de vérité des fonctions ooléennes de deux vriles). Le troisième chpitre présuppose l existence des portes répertoriées à l fin du deuxième chpitre. Il présente le fonctionnement générl d un processeur simple du point de vue mtériel et de se fmiliriser vec un chemin de données et un chemin d instructions. Le qutrième chpitre suppose l connissnce d un lngge de progrmmtion comme C. Il est préférle de l order près voir frnchi le premier plier que constituent les trois premiers chpitres. Le cinquième chpitre présuppose l lecture des chpitres 2 et 3. On peut nénmoins emprunter un rccourci en se fisnt une idée l plus précise possile de l ensemle des circuits récpitulés en fin de troisième chpitre. L connissnce de l totlité du qutrième chpitre n est ps indispensle, mis l première section (générlités sur le lngge mchine) et l prtie de l seconde section concernnt les instructions entières sont nécessires. Pour le sixième chpitre, il fut posséder des connissnces prélles en système (espce mémoire d un processus, système d entrées-sorties), mis l lecture des chpitres 4 et 5 n est ps indispensle. Pour résumer, on peut âtir à prtir de ce livre trois cours orientés vers le mtériel. Tout d ord, un cours de circuiterie, permettnt de psser des trnsistors à un petit processeur (chpitres 2 et 3, ce qui représente environ 30 heures de cours et utnt d exercices en trvux dirigés et constitue une entrée en mtière à l portée d un étudint de DEUG). Ensuite, un cours d rchitecture (chpitre 4, qui représente utnt de temps mis s dresse cette fois à des étudints de licence en rison qu il présuppose des connissnces en progrmmtion). Enfin, un cours de micro-rchitecture (chpitre 5). Ce cours de spéciliste, qui occupe l même durée que les précédents, peut s insérer dns un cursus de mîtrise, de DESS ou de DEA. Pr illeurs, cette présente introduction suivie de l dernière section du chpitre 6 peuvent servir de support à quelques heures de cours et de trvux dirigés formnt une initition à l informtique, en ce qui concerne le mtériel. Comme dns ce chpitre, environ 300 exercices sont disséminés dns les différentes sections du livre, et ps seulement en fin de chpitre. Le plus souvent, ce sont des pplictions immédites. Il v sns dire qu il est importnt de prendre le temps de les fire (mis cel v mieux en le disnt). Pr illeurs, chque chpitre se termine pr quelques références iliogrphiques, certines ccessiles sur le We. Voilà du surf utile. On consulter en prticulier le site suivnt qui fournit une liste (dernière mise à jour en oût 2000) des dresses URL de tous les rticles de recherches et documenttions de constructeurs qu il fut lire en mtière d rchitecture. http://www.mkp.com/rchitecture-redings/wc/ On noter églement l dresse URL du site centrl des rchitectes: http://www.cs.wisc.edu/~rch/www/ Sheet numer 29
Sheet numer 30 16 Chpitre 1 : Introduction Concernnt plus prticulièrement les différents éléments présentés dns cette introduction, on consulter vec profit les sites We des constructeurs ou orgnismes suivnts (le site www.pcguide.com contient une description exhustive de tout ce que renferme un PC): Crte mère: www.pcguide.com/ref/msys/moo www.sus.com Processeur Pentium, Celeron, Athlon, Duron, HP8500 et Itnium; rchitecture IA-32, IA-64; rchitecture HP-PA: developer.intel.com www.hp.com www.md.com Mémoires SDRAM, DDR-SDRAM et RDRAM: www.elpid-memory.com www.rmus.com Crte et co-processeur grphique TnT et GeForce: www.nvidi.com Bus AGP, PCI, IDE/ATA, USB, SCSI: developer.intel.com/technology/gp (norme du us AGP) www.pcisig.com (norme du us PCI) www.us.org (norme du us USB) www.pcguide.com/ref/hdd/if/scsi (us SCSI) www.pcguide.com/ref/hdd/if/ide (us IDE ATA) Périphériques: consulter le site www.pcguide.com. Sheet numer 30
Sheet numer 31 2 Des trnsistors ux portes Dns ce chpitre, nous llons définir les opérteurs élémentires qui interviennent dns l construction des composnts électroniques digitux. Il s git des portes logiques, des séprteurs et des cellules mémoires. Pour cel, nous nous ppuierons sur l technologie CMOS ujourd hui dominnte. Dns l suite du texte, les opérteurs logiques et et ou seront désignés pr les symoles et. Le surlignement indiquer l complémenttion. L opérteur ou exclusif ser symolisé pr. Sur les figures, les noms des opérteurs (et, ou) seront employés éventuellement sous une forme régée (xou pour le ou exclusif). L complémenttion ser indiquée pr le crctère # jouté en préfixe de l expression à complémenter (pr exemple, #et désigner ce que l on coutume d ppeler le nnd). Dns l suite du texte, l vleur 0 représenter le terme fux et l vleur 1 représenter le terme vri. 1 Les trnsistors 1.1 Le trnsistor nmos Un trnsistor nmos (voir figure 2.1 p.18) peut être considéré comme un trnsmetteur qui, selon l commnde, est pssnt ou non. Lorsqu il est pssnt, l sortie l même vleur logique que l entrée. Lorsqu il ne l est ps, les deux extrémités ont des vleurs logiques indépendntes l une de l utre. Afin de fire strction des détils électriques qund ils ne sont ps nécessires, on peut représenter le trnsistor nmos pr une fonction de multiplexge (que l on peut encore ppeler si lors sinon): sortie = si (commnde) lors entrée sinon Z Sheet numer 31
Sheet numer 32 18 Chpitre 2 : Des trnsistors ux portes L vrile commnde prend s vleur dns {0,1} (0 pour fux et 1 pour vri). Les vriles sortie et entrée prennent leur vleur dns {0, Z, 1}. L vleur Z ser électriquement et logiquement définie un peu plus loin fin de présenter l effet de l connexion en série ou en prllèle des trnsistors. Pour le moment, contentons-nous de dire que ce n est ni 0, ni 1. Pr définition, le trnsistor nmos est pssnt lorsque s commnde vut 1 (vri). On peut s en souvenir en ssocint le n de nmos à négtif, le signe - étnt lui-même usuellement représenté pr 1. commnde entrée sortie Figure 2.1 : Trnsistor nmos. Deux trnsistors nmos plcés en série (l sortie de l un est l entrée de l utre; voir figure 2.2) ne pssent une donnée d que si les deux commndes sont à 1: s = si (p ) lors (si (p) lors d sinon Z) sinon Z = si (p p ) lors d sinon Z p p p et p d s d s Figure 2.2 : Trnsistors nmos en série. S ils sont plcés en prllèle (les entrées et les sorties sont communes; voir figure 2.3 p.19), ils sont pssnts si l une des deux commndes est à 1. s = (si (p) lors d sinon Z) (si (p ) lors d sinon Z) = si (p p ) lors d sinon Z Nous voyons que pour donner un sens logique à l connexion de trnsitors en prllèle, il fut préciser l vleur de l opérteur qund il est ppliqué à Z. L opérteur utilisé pour le clcul de l vleur d une sortie commune à plusieurs trnsistors est insi défini: x {0,Z,1} x Z = Z x = x, x {0,Z,1} x x = x On peut remrquer que 0 1 et 1 0 ne sont ps définis. Si deux trnsistors reliés pr leur sortie sont simultnément pssnts et qu ils pssent l un 1 et l utre 0, l sortie n est ps définie. Il fut ttendre que l un des deux trnsistors cesse d être pssnt pour que l vleur pssée pr l utre s impose. Sheet numer 32
Sheet numer 33 Le trnsistor nmos 19 D un point de vue électrique, Z est l étt de hute impédnce, que l on représente grphiquement pr une vleur à mi-chemin entre 0 et 1. Souvent, ce troisième étt logique, ni 0 ni 1, n ps esoin d être précisé cr un utre dispositif connecté en prllèle impose un 0 ou un 1 (0 Z= 0 et 1 Z= 1). Pr exemple (voir l figure 2.4), on peut prtger une sortie s en y connectnt n dispositifs fournissnt n entrées e 0 à e n 1. L ccès de chque dispositif à l sortie commune est filtré pr un trnsistor commndé pr un signl c i. Supposons qu un trnsistor u plus soit pssnt (c i = 1 et c j = 0, j i), l sortie commune s reçoit Z en sortie des n 1 dispositifs non pssnts (c j = 0, j i) et soit 0, soit 1 du seul dispositif pssnt (e i ). C est lui, pr son entrée e i, qui étlit l vleur logique de l sortie commune (s = e i ). p p ou p d s d s p Figure 2.3 : Trnsistors nmos en prllèle. Nous verrons cependnt des cs dns ce chpitre où il est indispensle d ssocier une vleur logique (0 ou 1) à l étt de hute impédnce (voir l figure 2.5 p.20; l sortie du premier trnsistor commnde le second; rppelons que pr définition, l commnde d un trnsistor prend s vleur dns {0,1}). Pour cel, il fut considérer Z comme l mémoire de ce que pssit le trnsistor vnt de devenir non pssnt. Une fois le trnsistor non pssnt, il reste une chrge en sortie, qui représente un 0 ou un 1 porté pr une très file intensité (un cournt de fuite, très file, psse pr le trnsistor). Cette chrge peut suffire à commnder un utre trnsistor pendnt un temps limité (l chrge disprît progressivement à cuse du cournt de fuite): si s vleur logique est 1, le trnsistor nmos qu elle commnde reste pssnt. Si c est un 0, le trnsistor qu elle commnde reste non pssnt. Dns l exemple de l figure 2.5, selon, l chrge en x près que le trnsistor commndé pr it été rendu non pssnt ( = 0) est soit 0 ( = 0), soit 1 ( = 1), Dns le second cs, le second trnsistor continue de psser (c et d sont reliés). D utre prt, Z Z=Z. Si deux trnsistors reliés pr leur sortie sont non pssnts, l chrge ccumulée en sortie (Z) provient de l entrée du dernier trnsistor à être devenu non pssnt. e0 c0 e1 c1... en 1 cn 1 s= (si c0 lors e0 sinon Z) (si c1 lors e1 sinon Z)... (si cn 1 lors en 1 sinon Z) Figure 2.4 : Prtge de l ccès à une sortie commune. Exercice 2.1: démontrer les églités: (si (p ) lors (si (p) lors d sinon Z) sinon Z) = (si (p p ) lors d sinon Z) Sheet numer 33
Sheet numer 34 20 Chpitre 2 : Des trnsistors ux portes (si (p) lors d sinon Z) (si (p ) lors d sinon Z) = (si (p p ) lors d sinon Z) Exercice 2.2: étlir l éqution ssociée u montge de l figure 2.5 pour une sortie en d. Que vut x qund = 0 (ttention u domine de définition de x qui commnde un trnsistor)? c x d Figure 2.5 : Deux trnsistors nmos. 1.2 Le trnsistor pmos Un trnsistor pmos (voir figure 2.6) peut être représenté pr l fonction de multiplexge suivnte: sortie = si (commnde) lors Z sinon entrée L vrile commnde prend s vleur dns {0,1}. Les vriles sortie et entrée prennent leur vleur dns {0, Z, 1}. Pr définition, le trnsistor pmos est pssnt lorsque s commnde vut 0 (fux). On peut s en souvenir en ssocint le p de pmos à positif, le signe + étnt lui-même usuellement représenté pr 0. commnde entrée sortie Figure 2.6 : Trnsistor pmos. Deux trnsistors pmos en série s expriment insi (voir figure 2.7): s = si (p ) lors Z sinon (si (p) lors Z sinon d) = si (p p ) lors Z sinon d p p p ou p d s d s Figure 2.7 : Trnsistors pmos en série. En prllèle (voir figure 2.8 p.21): s = (si (p) lors Z sinon d) (si (p ) lors Z sinon d) = si (p p ) lors Z sinon d Sheet numer 34
Sheet numer 35 L porte de trnsfert CMOS 21 p p et p d s d s p Figure 2.8 : Trnsistors pmos en prllèle. Exercice 2.3: démontrer les églités suivntes: (si (p ) lors Z sinon (si (p) lors Z sinon d)) = (si (p p ) lors Z sinon d) (si (p) lors Z sinon d) (si (p ) lors Z sinon d) = (si (p p ) lors Z sinon d) Exercice 2.4: étlir l éqution ssociée u montge de l figure 2.5 p.20 en remplçnt les trnsistors nmos pr des trnsistors pmos. Que vut x qund = 1? 1.3 L porte de trnsfert CMOS Pour des risons d ordre électrique que nous ne préciserons ps, le trnsistor nmos psse correctement un 0 (c est-à-dire rpidement et sns l ffilir), mis médiocrement un 1. Inversement, un trnsistor pmos psse efficcement un 1 mis ps un 0. Pour psser ien un 0 comme un 1, on utilise donc deux trnsistors dont les sorties sont reliées, l un de type nmos pour psser le 0 et l utre de type pmos pour psser le 1. Ce type de montge est une porte de trnsfert CMOS (voir figure 2.9): s = (si (p) lors d sinon Z) (si (p) lors Z sinon d) p p d s d t s = si p lors d sinon Z #p Figure 2.9 : Porte de trnsfert CMOS. Qund p = 1, l porte de trnsfert CMOS est pssnte. Si d = 1, le trnsistor pmos psse un on 1. Si d = 0, le trnsistor nmos psse un on 0. Dns les deux cs, l sortie s correspond à l entrée d non dégrdée. À droite de l figure proprement dite se trouve l représenttion symolique de l porte de trnsfert (dénommée t). Attention, le symole ne permet plus de voir que le signl p doit églement être fourni sous forme complémentée. Sheet numer 35
Sheet numer 36 22 Chpitre 2 : Des trnsistors ux portes On exprime comme suit deux portes de trnsfert CMOS en série (voir figure 2.10): s = (si (p ) lors (si (p) lors (d) sinon Z) sinon Z) (si (p ) lors Z sinon (si (p) lors Z sinon (d))) = (si (p p ) lors (d) sinon Z) (si (p p ) lors Z sinon (d)) = (si (p p ) lors (d) sinon Z) (si (p p ) lors Z sinon (d)) #p #p #p ou #p = #(p et p ) d s d s p p p et p Figure 2.10 : Portes de trnsfert CMOS en série. Deux portes en prllèle s expriment insi (voir figure 2.11): s = (si (p) lors (d) sinon Z) (si (p) lors Z sinon (d)) (si (p ) lors (d) sinon Z) (si (p ) lors Z sinon (d)) = (si (p p ) lors (d) sinon Z) (si (p p ) lors Z sinon (d)) = (si (p p ) lors (d) sinon Z) (si (p p ) lors Z sinon (d)) #p #p et #p = #(p ou p ) d p s d s #p p ou p p Figure 2.11 : Portes de trnsfert CMOS en prllèle. Sheet numer 36
Sheet numer 37 Les portes logiques 23 Exercice 2.5: démontrer l églité suivnte: (si (p ) lors (si (p) lors (d) sinon Z) sinon Z) (si (p ) lors Z sinon (si (p) lors Z sinon (d))) = (si (p p ) lors (d) sinon Z) (si (p p ) lors Z sinon (d)) Exercice 2.6: démontrer l églité suivnte: (si (p) lors (d) sinon Z) (si (p) lors Z sinon (d)) (si (p ) lors (d) sinon Z) (si (p ) lors Z sinon (d)) = (si (p p ) lors (d) sinon Z) (si (p p ) lors Z sinon (d)) 2 Les portes logiques 2.1 L logique complémentire ou le pssge de constntes 2.1.1 L inverseur CMOS En relint l entrée du trnsistor nmos à 0 et celle du trnsistor pmos à 1, puis les deux commndes à une même source p, on otient un inverseur CMOS (voir figure 2.12; à droite se trouve l représenttion symolique de l inverseur, dénommé #): s = (si (p) lors 0 sinon Z) (si (p) lors Z sinon 1) p 0 1 p s = #p # s Figure 2.12 : Inverseur CMOS. Lorsque l commnde commune p vut 1, elle est pssnte pour le trnsistor nmos et non pssnte pour le trnsistor pmos. Le premier lisse psser son entrée (0). L sortie vut 0. Lorsque l commnde commune vut 0, c est le trnsistor pmos qui lisse psser son entrée (1) et l sortie vut 1. Ainsi, p {0,1}, on s {0,1} (s Z). On peut noter que l inverseur CMOS est monté de telle mnière que le trnsistor nmos ne psse jmis de 1 (son entrée est reliée à 0) et que le trnsistor pmos ne psse jmis de 0 (son entrée est reliée à 1). On peut églement remrquer que l structure de l porte montée en inverseur, vec l prtie nmos reliée à 0 et l prtie pmos reliée à 1, est l implnttion excte de l tle de vérité de l fonction ooléenne de complémenttion. Sheet numer 37
Sheet numer 38 24 Chpitre 2 : Des trnsistors ux portes Ce principe peut être ppliqué à l construction d une porte CMOS représentnt une fonction ooléenne quelconque. Un réseu de trnsistors nmos est chrgé de fournir les 0 de l fonction tndis qu un réseu de trnsistors pmos est chrgé de fournir les 1. Dns chque construction, il doit exister u moins un chemin de trnsistors nmos pssnts, de 0 à l sortie, pour chque cominison d entrées donnnt à l fonction l vleur 0. Pour ces cominisons d entrées, il ne doit exister ucun chemin de trnsistors pmos pssnts, relint 1 à l sortie. Inversement, il doit exister u moins un chemin de trnsistors pmos pssnts, de 1 à l sortie, pour chque cominison d entrées donnnt à l fonction l vleur 1 et ucun chemin de trnsistors nmos pssnts, relint 0 à l sortie. D un point de vue électrique, ce type de porte présente l prticulrité de posséder une sortie provennt de l limenttion ou reliée à l msse. On utilise les commndes pour ouvrir ou fermer les chemins mennt de l limenttion à l sortie ou de l sortie à l msse. Nous ppellerons ces montges des trnsmetteurs de constntes. 2.1.2 L construction d un trnsmetteur de constntes D une mnière générle, une fonction ooléenne f se rélise à prtir de: f = (si (f) lors 0 sinon Z) (si (f) lors Z sinon 1) En exprimnt f sous forme normle disjonctive (f = mt 1... mt n, les mt i étnt des min-termes, c est à dire de l forme mt i = e x... e y ), l éqution précédente devient: f = (si (mt 1... mt n ) lors 0 sinon Z) (si (mt 1... mt n ) lors Z sinon 1) = (si (mt 1... mt n ) lors 0 sinon Z) (si (mt 1... mt n ) lors Z sinon 1) = (si (mt 1 ) lors (si (mt 2 ) lors (...) sinon Z) sinon Z) (si (mt 1 ) lors Z sinon 1... si (mt n ) lors Z sinon 1) On otient un réseu nmos et un réseu pmos commndés pr les min-termes mt i complémentés. On peut otenir ces réseux directement en prtnt de l tle de vérité de f. On construit les chemins nmos produisnt les 0 de l fonction, puis les chemins pmos produisnt les 1. Soit pr exemple l fonction suivnte (voir figure 2.13 p.25): s = () () (l opértion ) De l tle de vérité, on tire le réseu nmos (0 de l fonction): nmos(s) = (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) Sheet numer 38
Sheet numer 39 L construction d un trnsmetteur de constntes 25 De l tle de vérité, on tire églement le réseu pmos (1 de l fonction): pmos(s) = (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) En ppliqunt les règles de trnsformtion des prgrphes 1.1 et 1.2 (trnsistors en série et en prllèle), on otient pour le réseu nmos: nmos(s) = (si () lors (si () lors 0 sinon Z) sinon Z) On otient pour le réseu pmos: (si () lors (si () lors 0 sinon Z) sinon Z) pmos(s) = (si () lors Z sinon (si () lors Z sinon 1)) Le montge CMOS s exprime insi: (si () lors Z sinon (si () lors Z sinon 1)) s = (si () lors (si () lors 0 sinon Z) sinon Z) (si () lors (si () lors 0 sinon Z) sinon Z) (si () lors Z sinon (si () lors Z sinon 1)) (si () lors Z sinon (si () lors Z sinon 1)) Le montge pprît en figure 2.13. On perçoit dns le s du schém le symole de l porte ou exclusif dénommé xou. # # # 0 1 s # s = xou xou Figure 2.13 : s =. Voyons comment construire des portes et en logique complémentire. Voici : = (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) Sheet numer 39
Sheet numer 40 26 Chpitre 2 : Des trnsistors ux portes En ppliqunt u réseu nmos l règle de simplifiction suivnte: (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) = (si () lors 0 sinon Z) on simplifie le montge : = (si () lors 0 sinon Z) (si () lors 0 sinon Z) (si () lors Z sinon (si () lors Z sinon 1)) 0 # s # # 1 et s = et # Figure 2.14 : s =. Voici : = (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) En ppliqunt u réseu pmos l simplifiction suivnte: (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) = (si () lors Z sinon 1) on simplifie le montge : = (si () lors (si () lors 0 sinon Z) sinon Z) (si () lors Z sinon 1) (si () lors Z sinon 1) 0 # # s # 1 ou s = ou # Figure 2.15 : s =. Sheet numer 40
Sheet numer 41 Les portes de trnsmission ou l trnsmission de vriles 27 De ces portes, on déduit et en ppliqunt les églités de de Morgn: = et =. On peut remrquer que les portes et utilisent les compléments des vriles mis ps les portes et. Ainsi, si ces compléments ne sont ps fournis, le et le peuvent être construits soit en clculnt explicitement ces compléments, soit en inversnt l sortie d un pour le et d un pour le. Exercice 2.7: vec les équtions de définition des portes, et, clculer les tles de vérités de ces trois opérteurs. Exercice 2.8: même question à prtir des figures 2.13 (p.25), 2.14 (p.26) et 2.15 (p.26). Exercice 2.9: construire l porte. Exercice 2.10: démontrer que le schém de l figure 2.16 est l opértion. # # 0 1 # s Figure 2.16 : s =. # Exercice 2.11: construire l porte c. 2.2 Les portes de trnsmission ou l trnsmission de vriles 2.2.1 L trnsmission de vriles On peut simplifier les montges en fisnt psser pr les trnsistors des vriles ooléennes plutôt que les constntes 0 et 1. Afin d otenir des portes rpides, il est utile que tous les 0 de l fonction soient issus du réseu nmos et tous les 1 du réseu pmos. Cel lisse l possiilité de psser un 0 simultnément pr les deux réseux, le on 0 provennt du réseu nmos; ou encore de psser un 1 simultnément pr les deux réseux, le on 1 provennt du réseu pmos. D une fçon générle, une fonction f et son complément f peuvent commnder deux trnsistors, l un nmos (commnde f) et l utre pmos (commnde f), pour lisser psser une vrile (le trnsistor nmos fit psser le 0 et le trnsistor pmos le 1). Le pssge n est ouvert que si f est à 1 (les deux trnsistors sont simultnément pssnts). Réduit à l extrême, un tel montge est une simple porte de trnsfert CMOS, représentnt un verrou. L commnde n est plus une fonction, mis un simple signl et son complément (voir l figure 2.9 p.21). Le même principe s pplique à tous les montges. Nous ppellerons les trnsistors qui pssent des vriles des trnsmetteurs de vriles. Sheet numer 41
Sheet numer 42 28 Chpitre 2 : Des trnsistors ux portes 2.2.2 L construction d un trnsmetteur de vriles On peut déduire un trnsmetteur de vriles à prtir du trnsmetteur de constntes ssocié à l même fonction. Voici les règles de pssge des trnsmetteurs de constntes ux trnsmetteurs de vriles: (si () lors () sinon Z) (si () lors Z sinon ()) = (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) (si () lors () sinon Z) (si () lors Z sinon ()) = (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) (si () lors () sinon Z) (si () lors Z sinon ()) = (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) (si () lors () sinon Z) (si () lors Z sinon ()) = (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) Voyons pr exemple comment on peut réliser l opértion en se servnt de trnsmetteurs de vriles: = (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) = (si () lors () sinon Z) (si () lors () sinon Z) (si () lors Z sinon ()) (si () lors Z sinon ()) Le montge de l porte ne comprend plus que qutre trnsistors. Il est représenté sur l figure 2.17. On peut remrquer que le même symole est employé pour les portes construites pr trnsmission de constntes ou de vriles. # # s # xou s = xou # Figure 2.17 : Porte. Sheet numer 42
Sheet numer 43 L construction d un trnsmetteur de vriles 29 Voici mintennt (voir figure 2.18) vec des trnsmetteurs de vriles (trois trnsistors): = (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) = (si () lors 0 sinon Z) (si () lors () sinon Z) (si () lors Z sinon ()) 0 # # et s = et s Figure 2.18 : Porte. Voici (voir figure 2.19) vec des trnsmetteurs de vriles (trois trnsistors): = (si ( ) lors 0 sinon Z) (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) (si ( ) lors Z sinon 1) = (si () lors Z sinon 1) (si () lors Z sinon ()) (si () lors () sinon Z) # # s 1 ou s = ou Figure 2.19 : Porte. De ces montges, on déduit ceux de et. Le multiplexeur est une porte qui sélectionne l une des deux entrées. En somme, il s git de l opértion: si lors sinon c Sheet numer 43
Sheet numer 44 30 Chpitre 2 : Des trnsistors ux portes Voici le multiplexeur vec des trnsmetteurs de vriles (voir figure 2.20): m = (si ( c) lors 0 sinon Z) (si ( ) lors 0 sinon Z) (si ( c) lors Z sinon 1) (si ( ) lors Z sinon 1) = (si () lors () sinon Z) (si () lors (c) sinon Z) (si () lors Z sinon ()) (si () lors Z sinon (c)) # # c s c c mux s = si lors sinon c Figure 2.20 : Porte multiplexeur. Exercice 2.12: à prtir des équtions de définition des portes,, et mux pr trnsmission de vriles, clculer l tle de vérité des fonctions ooléennes correspondntes. Exercice 2.13: même question à prtir des figures 2.17 à 2.20 (p.28 à 30). Exercice 2.14: démontrer chcune des qutre règles de pssge des trnsmetteurs de constntes ux trnsmetteurs de vriles. Exercice 2.15: construire une porte vec des trnsmetteurs de vriles. Exercice 2.16: construire une porte c vec des trnsmetteurs de vriles. 2.3 L logique dynmique On désigne insi les montges contrôlés pr un signl périodique (pr exemple une horloge). Ainsi, qund le signl périodique est ctif, l sortie d une porte dynmique est chrgée (vleur ooléenne). Une fois que le signl périodique s est inversé, l chrge est isolée cr l porte n est plus pssnte (vleur Z que l on peut interpréter comme l mémoire de l vleur ooléenne). L logique dynmique peut être employée pour réliser des portes, mis elle sert surtout à construire des séprteurs. 2.3.1 Le contrôle temporel pr un signl unique: l logique TSPC L figure 2.21 p.31 montre une porte dynmique TSPC (True Single Phse Clock: portes dynmiques commndées pr un signl périodique unique). L porte proprement Sheet numer 44
Sheet numer 45 Le contrôle temporel pr un signl unique: l logique TSPC 31 dite est représentée pr ses réseux nmos et pmos. Plus précisément, si l porte est l fonction ooléenne f, les réseux nmos et pmos sont l implnttion de l fonction f cr l logique dynmique TSPC joute un inverseur (sur l figure, les deux trnsistors connectés ux limenttions). L prtie dynmique se compose de deux trnsistors nmos. L porte est pssnte qund h = 1. On dit qu elle est ctive ou trnsprente à l étt hut. Symétriquement, on dit qu elle est opque qund h est à l étt s. x h x nmos n p pmos x = #f(x) h 0 1 s = f(x) Figure 2.21 : Porte dynmique TSPC. Le chronogrmme de l figure 2.22 p.32 montre l évolution de s en fonction des vritions de x et du cycle de h. Les vritions de h sont représentées en niveu (trit hut pour 1 et trit s pour 0). Celles de l entrée et de l sortie pprissent en vleur ritrire (doule trit pour 0 ou 1, croisement pour un chngement de vleur). Le chronogrmme montre qu une nouvelle entrée x rrive un peu près l descente de h à chque cycle. Il montre ussi que l sortie s s étlit un peu près l montée de h. S vleur pendnt l phse sse de h est une chrge (Z). On peut l représenter pr un trit unique à mi-chemin entre le trit hut du 1 et le trit s du 0 (représenttion usuelle de Z). Dns le cs présent, puisque l chrge en s qund h = 0 est l mémoire de l vleur ooléenne f(x) et qu elle est renouvelée tous les cycles, elle peut être confondue vec l vleur en s qund h = 1. En supposnt que x reste stle à l vleur x i qund h = 1, les deux trnsistors commndés pr h étnt pssnts, on s = f(x i ). En effet, si f(x i ) = 0, c est le trnsistor pmos de l inverseur qui est pssnt et s = 1. Si f(x i ) = 1, c est le trnsistor nmos de l inverseur qui est pssnt et s = 0. Qund h s inverse (x restnt stle à l vleur x i ), les trnsistors nmos commndés pr h deviennent non pssnts. Si f(x i ) = 1, le réseu nmos qui fixe s n est plus pssnt. Donc s = Z, ce Z étnt une chrge représentnt l vleur logique 0. Si f(x i ) = 0, le réseu nmos étlissnt x n est plus pssnt. L commnde x est à Z, qui représente 0. Cette chrge lisse le trnsistor pmos de l inverseur pssnt et s = 1. En conclusion, s = f(x i ). Sheet numer 45
Sheet numer 46 32 Chpitre 2 : Des trnsistors ux portes h x x0 x1 x2 x3 x? x 0? x 1? x 2? s s0 s1 s2 Figure 2.22 : Chronogrmme d une porte TSPC. Pendnt que h = 0, on sustitue x i+1 à x i. Si f(x i+1 ) = 1, on x = 1 vnt même que h ne s inverse cr le réseu pmos étlissnt x reste pssnt (il est indépendnt de h). Si u contrire f(x i+1 ) = 0, le terme x continue de représenter f(x i ) jusqu à ce que h monte, puisque le réseu nmos fixnt x dépend de h (en x il y l chrge f(x i ), isolée de f(x i+1 ) pr le trnsistor commndé pr h et pr le réseu pmos, tous deux non pssnts). C est ce qu indique le chronogrmme en montrnt que l vleur de x est incertine entre le chngement de x et l montée de h. Mlgré tout, tnt que h est s, l possile vrition de x (de 0 à 1) est sns effet sur s. Elle rend non pssnt le trnsistor pmos de l inverseur, ce qui isole s (s = Z; ce Z représente un 1). Qund h monte, l nouvelle vleur de x, soit f(x i+1 ), psse en s en s inversnt (si f(x i+1 ) = 1, l entrée 0 de l inverseur frnchit le réseu nmos étlissnt s; si f(x i+1 ) = 0, le trnsistor pmos de l inverseur fixe s à 1). En interclnt des trnsistors pmos commndés pr h entre les réseux nmos et pmos, plutôt que des trnsistors nmos, on forme une porte dynmique trnsprente à l étt s et opque à l étt hut. L figure 2.23 montre le montge. x h x nmos n x = #f(x) p pmos h 0 1 s = f(x) Figure 2.23 : Porte TSPC trnsprente à l étt s. Exercice 2.17: construire une porte TSPC trnsprente à l étt s. 2.3.2 L connexion de portes dynmiques TSPC Pour relier des portes dynmiques TSPC en série, on lterne les portes ctives à l étt hut vec celles ctives à l étt s. L figure 2.24 p.33 montre le montge. Sheet numer 46
Sheet numer 47 L connexion de portes dynmiques TSPC 33 x h x nmos n t1 p pmos x = #f(x) h 0 1 t2 y = f(x) h nmos n t3 p pmos y = #g(y) h 0 1 t4 z = g(y) Figure 2.24 : Portes dynmiques TSPC en série. Qund h = 1, les trnsistors t1 et t2 sont pssnts tndis que les trnsistors t3 et t4 sont non pssnts. Les rôles s inversent qund h = 0. Le chronogrmme de l figure 2.25 montre les évolutions de x, x, y, y et z en fonction de h. Comme nous l vons remrqué ci-dessus, l vrition de x qund h = 0 peut voir un effet sur x en le fisnt psser de 0 à 1 (ce qui est représenté pr un trit olique montnt sur le chronogrmme). On vu que cel étit sns effet sur y. Il en est de même pour y qui peut psser de 1 à 0 qund h = 1, sns effet sur z. h x x0 x1 x2 x3 x? x 0? x 1? x 2? y y0 y1 y2 y? y 0? y 1? y 2 z z0 z1 z2 Figure 2.25 : Chronogrmme de deux portes TSPC en série. Dns l rélité, les qutre trnsistors ne reçoivent ps l vrition de h u même instnt. Supposons que le signl h les tteigne en ordre décroissnt (ce qui peut se Sheet numer 47
Sheet numer 48 34 Chpitre 2 : Des trnsistors ux portes réliser en fisnt progresser h dns le sens inverse des portes). Le chronogrmme de l figure 2.26 montre les évolutions de x, x, y, y et z en fonction de h i (h i est le signl h commndnt le trnsistor t i ). On constte que le montge fonctionne vec pour seule différence pr rpport à l figure précédente des périodes d instilité pour y et z (sur l figure, elles sont représentées pr les zones hchurées). En effet, qund t2 devient pssnt (h 2 = 1), t1 reste non pssnt pendnt un instnt (h 1 = 0). L vleur en x (indéterminée: déjà f(x i ) ou encore f(x i 1 )) psse en y. Ce n est pourtnt ps forcément l vleur définitive pour le cycle. Qund h 1 monte à son tour, x s étlit définitivement pour le cycle à f(x i ), qui s inverse et psse en y qui à son tour est stilisé jusqu u prochin cycle. L sitution est l même pour z entre l descente de h 4 et celle de h 3. Il fut églement noter que pendnt un court instnt, les qutre trnsistors t i sont simultnément pssnts (h 3 = h 4 = 0 et h 1 = h 2 = 1). Pendnt cet instnt, il est crucil que x ne vrie ps encore. Le chngement de vleur ne peut intervenir qu une fois h 1 redescendu (donc h 2 ussi puisque l on suppose qu il descend vnt). Si x vriit de x i à x i+1, il ne serit ps impossile de retrouver g(f(x i+1 )) en z u lieu de g(f(x i )). h1 h2 h3 h4 x x0 x1 x2 x3 x? x 0? x 1? x 2? y y z? y0 y1 y2 y 0? y 1? y 2 z0 z1 z2 Figure 2.26 : Chronogrmme détillé de deux portes TSPC en série. Exercice 2.18: dessiner le chronogrmme de deux portes TSPC en série, l une trnsprente à l étt hut clculnt y =, l utre trnsprente à l étt s clculnt z = y c. 2.3.3 Les portes à préchrgement On peut utiliser l logique dynmique pour réliser des portes CMOS économiques pour le nomre de trnsistors. Plutôt que de construire à l fois le réseu nmos et le réseu pmos d une porte, l logique dynmique permet de ne construire qu un seul des deux réseux (en générl, c est le réseu nmos) et de remplcer l utre pr un trnsistor de préchrgement. L figure 2.27 p.35 montre une porte c d construite selon ce principe. Sheet numer 48
Sheet numer 49 Les séprteurs: verrous et scules 35 c d 0 0 0 0 #pre 1 s = nor(,,c,d) Figure 2.27 : Porte c d à préchrgement. L phse de préchrgement (#pre = 0) fixe l sortie à 1. On initilise en quelque sorte s à 1 pr défut. Pendnt ce temps, les entrées,, c et d sont stilisées, de sorte que les trnsistors nmos commndés pr les entrées soient stles vnt que #pre ne s inverse. Une fois #pre mis à 1, si le réseu nmos est pssnt (u moins un prmi,, c et d est un 1), l chrge ccumulée en s lorsque le trnsistor pmos étit pssnt s évcue et s psse à 0. Dns le cs contrire, l chrge reste et s = 1. Exercice 2.19: construire une porte c d à préchrgement. Exercice 2.20: construire une porte c d à préchrgement. 2.4 Les séprteurs: verrous et scules 2.4.1 Les verrous En logique TSPC, si l on remplce les réseux nmos et pmos de l porte TSPC pr des trnsistors uniques (un trnsistor nmos et un trnsistor pmos ctivés pr une commnde commune), on otient un verrou (ltch en nglis) en logique TSPC. Ainsi, l figure 2.28 représente un verrou trnsprent qund h = 1. e h 0 n p 1 h 0 1 e v h s = si h lors e sinon s s Figure 2.28 : Verrou TSPC. L figure 2.29 p.36 représente un verrou trnsprent qund h = 0, ce que nous dénommerons dns l suite du texte un #verrou. Sheet numer 49
Sheet numer 50 36 Chpitre 2 : Des trnsistors ux portes e h 0 1 h h 0 1 e #v s = si h lors s sinon e s Figure 2.29 : #Verrou TSPC. Exercice 2.21: dessiner un chronogrmme de fonctionnement d un verrou. À prtir de l figure 2.28 p.35, étudier ce qui se psse qund l vrition de l entrée e est proche de l montée de h. 2.4.2 Les scules En plçnt un #verrou et un verrou en série (voir l figure 2.30), on otient une scule (flip-flop en nglis). Si le verrou précède le #verrou (voir figure 2.31 p.37), il s git d une scule ctive sur front descendnt, que nous ppellerons une #scule dns l suite. Dns le cs d une scule, une nouvelle entrée ne se retrouve en sortie qu près l montée de h qui suit. Ceci est toujours vri, que l nouvelle donnée rrive pendnt que h = 0 ou que h = 1. Dns ce cs, il fudr que h descende puis remonte pour que l sortie reflète l nouvelle entrée. L scule est un séprteur pssnt son entrée en sortie sur le front montnt de l horloge, lors que le verrou est un séprteur pssnt son entrée en sortie pendnt que l horloge est u niveu hut. On dit que les scules fonctionnent sur front et les verrous sur niveu. h e h #v v s e s = qund h monte lors e utrement s Figure 2.30 : Bscule TSPC. Pour grntir le fonctionnement d une scule, il fut que l nouvelle entrée soit stle un peu vnt que le front montnt de h ne rende le verrou trnsprent (ce que l on ppelle le temps d étlissement ou en nglis set up time). À cet instnt, h étnt encore s, le #verrou est trnsprent et l nouvelle entrée ptiente devnt le verrou. Sheet numer 50
Sheet numer 51 Les scules 37 Elle doit rester stle u moins tnt que le #verrou n est ps redevenu opque (ce qui correspond u temps de mintien ou en nglis hold time). h e h v #v s e # s = qund h descend lors e utrement s Figure 2.31 : #Bscule TSPC. En plçnt une porte et devnt le #verrou d une scule, on permet s remise à zéro synchrone (voir figure 2.32). Notons que le signl #z de remise à zéro, ctif à l étt s et neutre à l étt hut, peut se réduire à une impulsion utour du front montnt de h pour provoquer s = 0. #z e h et #v v s #z e z h s = qund h monte lors e et #z utrement s Figure 2.32 : Bscule TSPC à remise à zéro synchrone. Exercice 2.22: quelles différences y -t-il entre une porte de trnsfert CMOS et un verrou? Exercice 2.23: étudier un montge composé de deux verrous en série, trnsprents sur niveu hut, le premier commndé pr h et le second pr h. On suppose que le signl h rrive un peu près h, si ien que les qutre trnsistors du montge commutent dns l ordre t2, t1, t4 puis t3. Exercice 2.24: dessiner un chronogrmme du fonctionnement d une scule et d une #scule. Exercice 2.25: comment peut-on ppeler une scule dont l porte et de remise à zéro est plcée entre le #verrou et le verrou? Exercice 2.26: dessiner le chronogrmme de l sortie h du montge de l figure 2.33. Quelle est l fréquence de h pr rpport à celle de h? h # h Figure 2.33 : Deux signux h et h. Exercice 2.27: pour rendre une scule inctive on emploie l un des deux montges de l figure 2.34 p.38. Lequel est préférle? Pourquoi? Sheet numer 51
Sheet numer 52 38 Chpitre 2 : Des trnsistors ux portes d h ct et s d h ct mux s 2.5 Les cellules mémoire Figure 2.34 : Rendre une scule inctive. En logique CMOS, l fonction de mémoristion nécessite un mécnisme de conservtion d hoc. Les séprteurs (verrous et scules) n en contiennent ps puisque leur sortie est périodiquement mise à jour pr l ctivtion de l horloge. 2.5.1 Le mintien d une vleur verrouillée e #e d c # mux s #q q 0 0 e #e d d s #q q e #e e d vd s = si e lors d sinon s 1 1 Figure 2.35 : Verrou-d. L figure 2.35 présente un verrou-d (d-ltch en nglis). Ce montge CMOS mémorise une vleur ooléenne. Le signl d écriture e permet de mémoriser l donnée d. Elle est conservée tnt que e reste à l étt s (verrou-d opque), elle est ensuite remplcée pr l nouvelle vleur de d qund e est hut (verrou-d trnsprent). e = 1 s = d q = d q = d L entrée d doit rester stle tnt que e = 1. e = 0 s = q Sheet numer 52
Sheet numer 53 L cellule de mémoire sttique 39 Si on sustitue d à d, s ne chnge ps tnt que e = 0. On voit que l mémoristion est ssurée pr une pire d inverseurs dont les limenttions mintiennent l dernière vleur entrée. Exercice 2.28: dessiner le chronogrmme de fonctionnement d un verrou-d. 2.5.2 L cellule de mémoire sttique Le montge précédent emploie huit trnsistors. On peut en réduire le nomre à six, ce qui est prticulièrement vntgeux si une telle cellule doit être dupliquée, comme c est le cs pour un composnt mémoire. On remplce le multiplexeur pr deux trnsistors trnsmetteurs de vriles comme indiqué dns l figure 2.36 qui présente une cellule de srm. d #d m #m d srm q q #q Figure 2.36 : Cellule de mémoire sttique à six trnsistors. dk #dk pi dl #dl ligne i colonne k colonne l pj ligne j qk #qk ql #ql Figure 2.37 : Mtrice de cellules de mémoires sttiques. Le montge tire prti de l symétrie de l entrée et de l sortie d un trnsistor nmos. En lecture, les entrées sont en m et #m et les sorties en q et #q. En écriture, le sens Sheet numer 53
Sheet numer 54 40 Chpitre 2 : Des trnsistors ux portes s inverse: entrées en d et #d, sorties en m et #m. C est l différence d intensité des cournts ppliqués en d et m (respectivement en #d et #m) qui détermine le sens. En lecture, le signl d ccès est ctivé, rendnt pssnts les trnsistors d ccès à l cellule. L vleur mémorisée en m psse en q et symétriquement son complément psse de #m en #q. En écriture, les chrges en d et #d sont portées pr un cournt de plus forte intensité que celui portnt les chrges en m et #m. Dès que les trnsistors d ccès sont pssnts, les chrges en d et #d (l vleur à écrire et son complément) l emportent sur celles en m et #m (l vleur à remplcer et son complément). L différence entre lecture et écriture est mrquée pr une commnde externe à l cellule mémoire dont le rôle est de lisser psser (écriture) ou ps (lecture) une donnée d. Notons que d un point de vue logique, un seul des deux trnsistors d ccès est suffisnt pour procéder à l lecture comme à l écriture. Cependnt, d un point de vue électrique l écriture est fcilitée (ccélérée) pr l emploi des deux ccès (cs des mémoires sttiques). On peut églement en tirer vntge pour énéficier de deux voies d ccès séprées, l une pour l lecture et l utre pour l écriture (cs des registres; dns ce cs, les commndes des deux trnsistors d ccès sont distinctes). L figure 2.37 p.39 montre comment un ensemle de cellules se prtgent des voies d ccès et des signux de commndes. On lit ou (exclusif) on écrit une ligne à l fois. L ligne visée est sélectionnée pr p. Si c est l ligne i, p i = 1 et p j = 0, j i. En joutnt des trnsistors d ccès à l cellule, on fournit des voies d ccès supplémentires. L figure 2.38 montre une cellule à huit trnsistors offrnt un port d écriture (ccès commndé pr e 0 ) et trois ports de lecture (ccès u port i commndé pr l i ). Le symole qui l ccompgne désigne une cellule multiport offrnt m ports de lecture (commndes l 0 à l m 1 et données lues q 0 à q m 1 ) et n ports d écriture (commndes e 0 à e n 1 et données à écrire d 0 à d n 1 ). On y lit et y écrit à des instnts distincts. En outre, en écriture, un port u plus est pssnt. e0 l0 d0 q #q #q0 l[m 1,0] l1 #q1 d[n 1,0] multiport_m,n q[m 1,0] l2 e[n 1,0] #q2 Figure 2.38 : Cellule de mémoire sttique multiport. Exercice 2.29: construire une cellule de mémoire sttique à qutre ports d ccès: deux Sheet numer 54
Sheet numer 55 L cellule de mémoire dynmique 41 ports en lecture, deux en écriture. Que se psse-t-il si les deux ports en écriture sont simultnément pssnts? 2.5.3 L cellule de mémoire dynmique d q d drm Figure 2.39 : Cellule de mémoire dynmique. Un seul trnsistor suffit (voir figure 2.39), dont l une des extrémités sert de cpcité (c est-à-dire qu elle conserve l chrge de l vleur mémorisée). Le trnsistor est rendu pssnt pr une demnde d ccès (lecture ou écriture). En écriture, une chrge, correspondnt à l vleur à écrire, est ppliquée en entrée d. Elle est mintenue jusqu u chrgement de l cpcité en q. En lecture, l chrge sortnt du trnsistor en d qund = 1 commnde un mplificteur (des inverseurs en série), dont l sortie est reouclée sur l cellule. Ainsi, l chrge s évcue, est mplifiée et rechrgée (l lecture est destructrice et nécessite une ré-écriture). Même lorsque l cellule n est ps en ccès ( = 0), l chrge ccumulée dns le trnsistor s évcue pr un cournt de fuite. Il fut donc à intervlles réguliers rechrger l cellule. C est le rfrîchissement (on procède à une lecture qui effectue l ré-écriture). Le symole de l cellule fit pprître que l voie de donnée d est idirectionnelle. Il s git d une cellule de drm. 2.5.4 L cellule de mémoire ssocitive d m #m #d d cm s = si d!=m lors 0 sinon Z 0 d xou m s Figure 2.40 : Cellule de mémoire ssocitive. Une mémoire ssocitive (CAM ou Content-Adressle Memory: mémoire tteinte pr contenu) est une mémoire dns lquelle on recherche. On y ccède donc non ps pr Sheet numer 55
Sheet numer 56 42 Chpitre 2 : Des trnsistors ux portes dressge, mis en fournissnt une donnée qui y est recherchée. L mémoire peut ussi être utilisée en mode de remplissge: l donnée n est plus recherchée, mis écrite. L entrée modifiée est désignée pr un dressge, l dresse étnt fournie pr un lgorithme de sélection de l entrée à remplcer. Une cellule de mémoire ssocitive (voir figure 2.40 p.41) se compose d une cellule srm (pour l mémoristion et l écriture) complétée d un comprteur d églité (pour l recherche). Pour conserver à l cellule cm l compcité de l cellule srm, le comprteur est implnté sous l forme de deux trnsistors nmos (réseu nmos d une porte ). S sortie est filtrée pr une porte de trnsfert (trnsistor nmos) pour permettre l réunion de plusieurs comprisons (comprison de mot). dk pi dl #pre 1 cm cm ei ligne i colonne k pj colonne l 1 cm cm ej ligne j Figure 2.41 : Mémoire ssocitive. On emploie l cellule soit en recherche soit en écriture. En recherche, on fournit d et son complémentire #d et on lisse à 0 (les trnsistors d ccès de l cellule srm restent non pssnts). L sortie s vut 0 si le contenu m de l cellule n est ps égl à d. Dns le cs contrire, elle vut Z. En écriture, on procède comme pour une cellule srm, en ouvrnt l ccès à l cellule à écrire en ctivnt. Une mémoire cm (voir l figure 2.41) se compose de cellules cm orgnisées en lignes. Les cellules d une même ligne sont solidires: elles sont tteintes ensemle. Ainsi, l recherche concerne le mot formé pr les cellules d une ligne. L écriture concerne toutes les cellules d une même ligne. Pour cel, les trnsistors d ccès des cellules d une même ligne sont reliés à une même commnde (commnde p i pour l ligne i). De plus, les sorties de comprison d une même ligne sont reliées, formnt un signl d églité de ligne (signl e i pour l ligne i). Ce signl est préchrgé à 1 en ctivnt l commnde #pre (#pre = 0). Prllèlement, le mot d = d 0...d n 1 et son complémentire sont fournis. Puis on désctive #pre (#pre = 1). Chque ligne i dont le mot mémorisé est égl à d lisse son signl e i à 1. Chque ligne j dont le mot mémorisé est différent de d voit son signl e j remis à 0 pr une cellule cm. Sheet numer 56
Sheet numer 57 L cellule de mémoire ssocitive 43 Remrquons qu en écriture on modifie une et une seule ligne (l dressge permet de n ctiver qu un et un seul des signux p i ). En revnche, en recherche, plusieurs lignes peuvent être égles à l donnée d. Exercice 2.30: construire une cellule cm permettnt de comprer son contenu simultnément à deux entrées d 1 et d 2, vec un port d écriture unique. En déduire le nomre de trnsistors d une cellule cm multiports à n ports de comprisons et un port d écriture. et s = et #et s = #et ou s = ou #ou s = #ou xou s = xou #xou s = #xou s = si lors s = # mux # sinon c c Figure 2.42 : Représenttion symolique des portes. v h s = si h lors sinon s #v h s = si h lors s sinon t p s = si p lors sinon Z #t p s = si p lors Z sinon h s = qund h monte lors # sinon s h s = qund h descend lors sinon s h s = qund h h s = qund h monte descend lors et #z lors et #z z #z sinon s sinon s #z #z Figure 2.43 : Représenttion symolique des séprteurs. Sheet numer 57
Sheet numer 58 44 Chpitre 2 : Des trnsistors ux portes 3 Représenttion symolique des opérteurs élémentires Nous llons récpituler l ensemle des portes, séprteurs et cellules mémoires vus jusqu ici et qui forment l première couche de l construction des circuits digitux. L figure 2.42 p.43 montre l représenttion symolique des portes, fisnt strction du mode de trnsmission (constntes ou vriles). L figure 2.43 p.43 montre les représenttions symoliques des séprteurs. L figure 2.44 montre les représenttions symoliques des cellules de mémoire. Notons que pour une srm ou une drm, l différencition entre lecture et écriture se fit de fçon externe à l cellule. Pour une cellule cm, l commnde e/#r est une écriture qund elle vut 1 et une recherche qund elle vut 0. p p d vd s = si p lors d sinon s d #vd s = si p lors s sinon d p p d srm q d drm l[m 1,0] e/#r d[n 1,0] multiport_m,n q[m 1,0] d cm s = si d!=m lors 0 sinon Z e[n 1,0] Figure 2.44 : Représenttion symolique des cellules de mémoires. Références N. Weste et K. Eshrghin: Principles of CMOS VLSI Design: A Systems Perspective, deuxième édition, 1993, Addison-Wesley, Reding, Mss. Voilà un excellent ouvrge sur l technologie CMOS. On y trouve toutes les crctéristiques électriques des trnsistors nmos et pmos qui ne sont ps décrites ici. Y sont églement tritées des rélistions détillées de toutes les portes et de on nomre des circuits qui seront décrits u chpitre suivnt. Dniel W. Doerpuhl, Richrd T. Witek: A 200-MHz 64-it Dul-Issue CMOS Microprocessor. Digitl Technicl Journl, Vol. 4/4, 1992. Cet rticle technique présente le processeur DEC Alph 21064 à s sortie en 1992. On y trouve une rélistion de verrous TSPC et l référence à l rticle de J. Yun et C. Svensson qui ont introduit cette logique en 1989. L rticle (insi Sheet numer 58
Sheet numer 59 Représenttion symolique des opérteurs élémentires 45 que tous ceux du Digitl Technicl Journl) peut être otenu (sns les schéms mlheureusement) à l dresse We suivnte: http://www.digitl.com/info/dtj800/ À défut, on peut églement trouver cet rticle dns l revue IEEE JSSC: Dniel W. Doerpuhl, Richrd T. Witek: A 200-MHz 64-it Dul-Issue CMOS Microprocessor. IEEE Journl of Solid Stte Circuits, vol. 27, n o 11 (novemre 1992), pges 1555-1565. J. Yun et C. Svensson: High-Speed CMOS Circuit Techniques. IEEE Journl of Solid-Stte Circuits, vol. 24, n o 1 (février 1989), pges 62-70. Cet rticle introduit l logique TSPC sur lquelle sont fondés les séprteurs d ujourd hui. Peter Vn Znt: Microchip Friction: A Prcticl Guide to Semiconductor Processing, Mc Grw Hill, 4 e édition, vril 2000. Ce livre trite de l friction des circuits intégrés et de leur coût. Sheet numer 59
Sheet numer 60 46 Chpitre 2 : Des trnsistors ux portes Sheet numer 60