Conception de circuits numériques et architecture
Transcription
Conception de circuits numériques et architecture
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2016-2017 Conception de circuits numériques et architecture des ordinateurs Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique booléenne, portes logiques, circuits combinatoires Circuits séquentiels Construction circuits complexes Micro-architecture et fonctionnement des mémoires Machines à état Synthèse de circuits PC/PO Optimisation de circuits PC/PO Interprétation d'instructions Interprétation d'instructions Interprétation d'instructions Introduction aux caches 2 / 15 Conception de circuits numériques et architecture des ordinateurs Plan Plan détaillé du cours d'aujourd'hui 1 2 Introduction aux caches Machine Quelques chires Caches Principes 3 / 15 Conception de circuits numériques et architecture des ordinateurs Introduction aux caches Plan 1 2 Introduction aux caches Machine Quelques chires Caches Principes 4 / 15 Conception de circuits numériques et architecture des ordinateurs Introduction aux caches Machine Structure d'une machine CPU (circuit intégré) Banc de registres ALU Bus mémoire Controleur mémoire Pont E/S Interface Mémoire centrale Bus système Bus périphérique Controleur USB Souris Carte graphique Controleur de disque Extensions (réseau, son, ...) Clavier Moniteur Disque 5 / 15 Conception de circuits numériques et architecture des ordinateurs Introduction aux caches Machine Structure d'une machine Accès mémoire centrale Processeur émet requête activant : Interface processeur contrôleur mémoire → bus système → → mémoire pont → bus mémoire → Purement électronique, symétrique Processeur en attente du résultat Accès disque Processeur émet (commande, numéro de secteur, adresse) : Interface E/S → bus système → pont → bus périphérique → contrôleur de disque Contrôleur disque → → disque contrôleur mémoire Contrôleur disque → → → bus périphérique → pont → bus mémoire mémoire (DMA) processeur (interruption). Électronique et mécanique Transfert asymétrique Processeur en attente ou passe à une autre tâche 6 / 15 Conception de circuits numériques et architecture des ordinateurs Introduction aux caches Quelques chires À propos du stockage des données Évolution de la taille et du temps d'accès Mémoire statique Metrique $/MB Tacc (ns) 1980 19,200 300 1985 2,900 150 1990 320 35 1995 256 15 2000 100 3 2005 75 2 2010 60 1.5 2010÷1980 320 200 1980 8,000 375 0.064 1985 880 200 0.256 1990 100 100 4 1995 30 70 16 2000 1 60 64 2005 0.1 50 2,000 2010 0.06 40 8,000 2010÷1980 130,000 9 125,000 1980 500 87 1 1985 100 75 10 1990 8 28 160 1995 0.30 10 1,000 2000 0.01 8 20,000 2005 0.005 4 160,000 2010 0.0003 3 1,500,000 2010÷1980 1,600,000 29 1,500,000 Mémoire dynamique Metrique $/MB Tacc (ns) Taille typ.(MB) Disque Metrique $/MB Tacc (ms) Taille typ.(MB) 7 / 15 Conception de circuits numériques et architecture des ordinateurs Introduction aux caches Quelques chires À propos de la fréquence des CPU INTEL CPU MHz (ns) C÷urs Teff (ns) Tcycle 1980 8080 1 1000 1 1000 1990 386 20 50 1 50 1995 Pentium 150 6 1 6 2003 P-III 600 1.6 1 1.6 2004 P-4 3300 0.3 1 0.3 2005 Core 2 2000 0.50 2 0.25 Tendance similaire chez les autres constructeurs 2010 Core i7 2500 0.4 4 0.1 2010 :1980 2500 2500 4 10,000 8 / 15 Conception de circuits numériques et architecture des ordinateurs Introduction aux caches Quelques chires Tendance Écart grandissant entre temps cycle CPU et temps accès mémoire 100,000,000.0 Disk 10,000,000.0 1,000,000.0 SSD 100,000.0 Disk seek time Flash SSD access time DRAM access time SRAM access time CPU cycle time Effective CPU cycle time ns 10,000.0 1,000.0 DRAM 100.0 10.0 1.0 0.1 CPU 0.0 1980 1985 1990 1995 2000 Année 2003 2005 2010 9 / 15 Conception de circuits numériques et architecture des ordinateurs Caches Plan 1 2 Introduction aux caches Machine Quelques chires Caches Principes 10 / 15 Conception de circuits numériques et architecture des ordinateurs Caches Principes Principe de la hiérarchie mémoire Constat Larges espaces de stockage lents et lointains Petits espaces de stockage proches et rapides Idée Copier les zones utiles de la grosse mémoire dans la petite Et le faire automatiquement sans intervention du programme Problème Collisions ! Comment faire tenir des données d'adresses très variées dans le cache ? 11 / 15 Conception de circuits numériques et architecture des ordinateurs Caches Principes Pourquoi cela marche-t-il ? Repose sur une propriété fondamentale des programmes : la localité Principe de localité Les programmes tendent à utiliser des instructions et des données dont les adresses sont identiques ou proches de celles qu'ils ont utilisé récemment Localité temporelle Des variables accédées récemment ont de fortes chances d'être accédées de nouveau dans le futur proche Localité spatiale Des variables qui ont des adresses proches ont de fortes chances d'être accédés à des temps proches 12 / 15 Conception de circuits numériques et architecture des ordinateurs Caches Principes Utilisation de la localité Spatiale et temporelle Lecture d'un mot 1 recopie le mot et ses n voisins (une ligne) de la mémoire centrale dans le cache s'il n'y est pas 2 retourne le mot qui est dans le cache déplacement adresse ligne numéro de ligne CPU CPU émet @18. Que se passe-t-il ? Cache 0 1 2 3 0 1 2 3 t nn l ff s mm k ee r ll j dd q kk i cc 0 1 2 3 t nn l ff s mm k ee r ll j dd q kk i cc Mémoire 0 4 8 C 10 14 18 1C 20 24 28 2C d h l p t x bb ff jj nn rr ww 3 c g k o s w aa ee ii mm qq uu 2 b f j n r v z dd hh ll pp tt 1 a e i m q u y cc gg kk oo ss 0 0 4 8 C 10 14 18 1C 20 24 28 2C d h l p t x bb ff jj nn rr ww 3 c g k o s w aa ee ii mm qq uu 2 b f j n r v z dd hh ll pp tt 1 a e i m q u y cc gg kk oo ss 0 0 4 8 C 10 14 18 1C 20 24 28 2C d h l p t x bb ff jj nn rr ww 3 c g k o s w aa ee ii mm qq uu 2 b f j n r v z dd hh ll pp tt 1 a e i m q u y cc gg kk oo ss 0 13 / 15 Conception de circuits numériques et architecture des ordinateurs Caches Principes Architecture d'un cache à correspondance directe Principe Structure : l = 2n lignes de m = 2p mots on ignore les octets dans le mot : les adresses considérés nissent par 00 adresse d'une ligne en mémoire : alignée sur la taille de la ligne, i.e. multiple de m × 4 numéro de ligne de cache index dans le cache d'une donnée placée en am : index = amn+p+1..p+1 adresse offset de la donnée dans la ligne : offset = amp+1..2 comment diérencier les diérentes lignes ? nécessaire de conserver am31..n+p+2 pour comparaison 14 / 15 Conception de circuits numériques et architecture des ordinateurs Caches Principes Architecture d'un cache à correspondance directe ADDR[31:0] tag 31 n+p+2 n+p+1 OE WE CE DATA[u-2:v] == index offset p+2 p+1 DOUT[31:0] DIN[31:0] 2 10 SDx SD0 WEDx WED0 ADDR[m-1:0] DATA[u-1] DATA[v-1:0] HIT 15 / 15