Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 Codage des nombres en base 2, logique booléenne, circuits combinatoires Optimisation combinatoire, circuits séquentiels Circuits séquentiels, suite Construction circuits complexes Machines à état Synthèse de circuits PC/PO Optimisation de circuits PC/PO Conception de circuits élémentaires CMOS Micro-architecture et fonctionnement des mémoires Interprétation d'instructions Interprétation d'instructions aux caches 2 / 21 Plan Plan détaillé du cours d'aujourd'hui 1 3 / 21
Plan 1 4 / 21 : regroupement massif d'éléments mémorisants CE OE Mémoire WE A n A n D D Signaux d'interface usuels : combinatoire A adresses, sur n A bits pour 2 n A éléments D données, sur n D bits CE Chip Enable, activation de la mémoire OE Output Enable, génère sur D le contenu de la case d'adresse A WE Write Enable, échantillonne dans case d'adresse A donnée sur D 5 / 21 Types de mémoire Non-volatile : conserve son état même non alimentée ROM : Read Only Memory Mémoire en lecture seulement Programmées à la fabrication Lecture : A = a/ce = 0/OE = 0 D = Mem(a) PROM : Programmable Read Only Memory Mémoire en lecture seulement (presque) Eaçable par ultra-violet (EPROM) ou électriquement (E 2 PROM, Flash) Reprogrammable, par paquets, et par des chemins détournés : interface spéciale, tension élevée, etc Nombre de programmation limité : de 1 (OTP) à 100K (Flash) Durée de rétention de 10 à 20 ans Dissymétrie des temps de lecture et d'écriture Lecture : A = a/ce = 0/OE = 0 D = Mem(a) 6 / 21
Types de mémoire Volatile : RAM : Random Access Memory Nommée par opposition aux bandes et autres cartes perforées de la préhistoire Temps de lecture et d'écriture sensiblement identiques Généralement asynchrone, parfois synchrone (CK) Statique ou dynamique Lecture : A = a/ce = 0/OE = 0 D = Mem(a) Écriture : A = a/ce = 0/WE = 0 Mem(a) = D CAM : Content-Addressable Memory Mémoire associative Usages spécialisés pour la recherche de la présence d'une donnée Prend une donnée et produit l'adresse à laquelle elle se trouve Peu répandue en volume, mais incontournable 7 / 21 d'accès à une SRAM : chronogramme lecture 8 / 21 d'accès à une SRAM : temps lecture 9 / 21
d'accès à une SRAM : chronogramme écriture 10 / 21 d'accès à une SRAM : temps écriture 11 / 21 Architecture générique des mémoires 12 / 21
Organisation du plan mémoire Attention! Pas de lecture/écriture simultanée Granularité minimale : ligne de mots 13 / 21 Point mémoire ROM 14 / 21 Micro-architecture d'une ROM W i sélectionne une ligne de mots Principe : CK = 0 : Précharge à 1 des lignes de bits CK = 1 : sélection W i par les A p 1..p 2, mise à la masse des lignes à travers les TN connectés, sélection d'1 bit parmi 4 par A 1..0 Note : les mêmes bits de 4 mots successifs sont voisins dans cette architecture 15 / 21
Point mémoire SRAM Point mémoire statique : conserve sa valeur si alimenté 16 / 21 Micro-architecture d'une SRAM Mux possible en sortie des sense ampliers Lecture : Précharge à 1 des lignes bit et bit Évaluation par mise à 1 du bon W i Sense accélère le choix dès que (V bit, V bit ) 10 mv Écriture : Force bit = D j et bit = D j Mise à 1 du bon W i Conit électrique gros drivers sur lignes de bits 17 / 21 Mémoire DRAM Dynamique : perte de l'information au cours du temps 18 / 21
Mémoire DRAM Dynamique = gros problèmes Durée de rétention de l'information limité Standard JEDEC : T r = 64 ms à 70 Rafraichir chaque point en une période T r échantillonner une ligne entière dans un registre restocker la ligne à sa place Lecture destructrice réécrire la valeur lue échantillonner une ligne entière dans un registre sélectionner la donnée du registre restocker la ligne à sa place Dynamique = coût imbattable 1 transistor par bit : 6 fois moins cher que SRAM 19 / 21 Mémoire CAM Mémoire SRAM usuelle Intègre un comparateur Compare bit j et iv j Précharge : bit j = bit j = hz Évaluation : bit j et bit j positionnés, match i calculé 20 / 21 Mémoire CAM match line préchargée à 1 match line partagée par l'ensemble des bits d'un mot match i = 0 si il existe au moins un bit du mot tel que bit j = 0 et iv j = 1 ou bit j = 0 et iv j = 1 21 / 21