Mémoires mortes et circuits programmables F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 1
Mémoires mortes on vient d'étudier les mémoires vives accessibles en lecture et en écriture mais volatiles de nombreuses applications demandent de pouvoir conserver des informations, même si l'alimentation électrique est coupée mémoires mortes, le plus souvent accessibles en lecture seulement ROM (Read Only Memory) les informations stockées ne peuvent être modifiées, ni intentionnellement ni accidentellement accès généralement très rapide F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 2
Mémoires mortes principe bloc mémoire sans lignes d'entrée ni commande d'écriture k lignes d'adresse 2 k mots de n bits CS n lignes de sortie F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 3
Mémoires mortes chaque mot peut être considéré comme un code et la mémoire réalisée avec un encodeur de 2 k lignes et n sorties associées à un décodeur pour activer une de ces 2 k lignes F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 4
Mémoires mortes exemple d'une mémoire de 4 mots de 4 bits table de vérité adresse X 1 X 0 Y 3 Y 2 Y 1 Y 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 2 1 0 0 0 1 0 3 1 1 1 1 1 1 réalisation possible de l'encodeur avec des diodes F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 5
Mémoires mortes justification de l'utilisation des diodes A D A A B état des diodes S 0 0 D A et D B bloquées 0 B D B S +V 0 D A passante, D B bloquée +V 0 +V D bloquée, D A B +V passante +V +V D A et D B passantes +V A B S 0 0 0 0 1 1 1 0 1 1 1 1 OU inclusif F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 6
Mémoires mortes exemple d'une mémoire de 4 mots de 4 bits table de vérité adresse X 1 X 0 Y 3 Y 2 Y 1 Y 0 0 0 0 1 0 1 0 1 0 1 1 1 0 1 2 1 0 0 0 1 0 3 1 1 1 1 1 1 réalisation possible de l'encodeur avec des diodes F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 7
Mémoires mortes on préfère le plus souvent une organisation matricielle une partie de l'adresse identifie les lignes l'autre partie identifie les colonnes mêmes remarques pour l'assemblage de blocs mémoires que pour les mémoires vives F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 8
Mémoires mortes applications des ROMs stockage de programmes dans des systèmes embarqués téléphonie mobile BIOS calculatrice machine à laver F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 9
Mémoires mortes réalisation du transcodeur du TD adr. b 3 b 2 b 1 b 0 g f e d c b a contenu 0 0 0 0 0 1 40 1 0 0 0 1 1 1 1 1 1 79 2 0 0 1 0 1 1 24 3 0 0 1 1 1 1 30 4 0 1 0 0 1 1 1 19 5 0 1 0 1 1 1 12 6 0 1 1 0 1 02 7 0 1 1 1 1 1 1 1 78 8 1 0 0 0 00 9 1 0 0 1 1 10 A 1 0 1 0 1 08 B 1 0 1 1 1 1 03 C 1 1 0 0 1 1 1 46 D 1 1 0 1 1 1 21 E 1 1 1 0 1 1 06 F 1 1 1 1 1 1 1 0E F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 10
Mémoires mortes génération de fonction numérique exemple : sin(x), x [0, /2] l'intervalle [0, π/2] est divisé en N = 2 k intervalles, la variable x i prenant les valeurs centrales : x i = i 1 2 x avec i [0, N 1 ] et x = 2N chacune des valeurs est identifiée par l'indice i, qui peut être utilisé comme une adresse si on code dans la cellule mémoire associée à l'adresse i le nombre f i = Partie Entière [(2 n - 1) sin x i ] on obtient une grandeur proportionnelle à sin x i codée sur la totalité de la gamme dynamique des n bits Look-up Table associée à un compteur et un convertisseur numériqueanalogique : possibilité de génération de signaux périodiques F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 11
Mémoires mortes génération de fonctions logiques exemple : pouvoir effectuer une des 8 fonctions logiques sur 2 variables f 0 a, b = a.b f 1 a,b = a b f 2 a,b = a.b f 3 a, b = a b f 4 a,b = a b f 5 a,b = a b f 6 a,b = a b f 7 a, b = a b facile d'écrire la table de vérité des 8 fonctions par rapport aux 4 combinaisons de a et b, puis de mémoriser les 32 valeurs dans une ROM: a b f i 32 bits S F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 12
Mémoires mortes f 2 f 1 f 0 b a f f 2 f 1 f 0 b a f 0 0 0 0 0 0 1 0 0 0 0 1 a b 0 0 0 0 1 0 0 0 0 1 0 0 a b 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 1 a b 0 0 1 0 1 1 0 0 1 1 0 0 a b 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 0 0 0 0 a b 0 1 0 0 1 1 0 1 0 1 0 1 a b 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 a b 0 1 1 0 1 1 0 1 1 1 0 1 a b 1 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 13
Mémoires programmables par l'utilisateur PROM Programmable Read Only Memory pour éviter d'avoir à demander une fabrication spéciale des mémoires mortes coûteux lent intéressant pour la phase de développement d'un produit ou pour de petites séries F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 14
Mémoires programmables par l'utilisateur techniques de programmation méthode des fusibles une diode et un fusible à chaque noeud de la matrice initialement tous les fusibles sont conducteurs et donc tous les bits sont à 1 la définition des 0 se fait à l'aide d'un programmateur de PROM qui est capable de détruire les fusibles en indiquant l'adresse du bit du mot à modifier et en injectant un courant sur la sortie correspondante mais la manœuvre est risquée pour le circuit... F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 15
Mémoires programmables par l'utilisateur méthode des anti-fusibles aucune connexion initialement on fait fondre un diélectrique dans une zone de faibles dimensions située à l'intersection de 2 électrodes 1 ère électrode en silicium polycristallin 2 ème électrode réalisée dans un implant fortement dopé n+ diélectrique constitué de couches d'oxyde et de nitrure de silicium la fusion du diélectrique entraîne la diffusion des dopants F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 16
Mémoires programmables par l'utilisateur d'autres technologies sont possibles, faisant intervenir diverses combinaisons électrodes-diélectrique mais toutes ces technologies sont irréversibles du point de vue de la configuration de la PROM F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 17
Mémoires programmables par l'utilisateur multi-programmation des PROM en utilisant des transistors à effet de champ MOS avec une grille flottante la grille permet d'induire un canal entre la source et le drain une tension positive sur la grille va attirer les électrons et repousser les trous. Une partie des électrons va se recombiner avec les trous, créant une inversion de population induisant un canal n entre les implants de la source et du drain Le transistor est alors passant pour programmer le nœud, on fait passer un courant intense entre la source et le drain. Des électrons acquièrent une énergie suffisante pour atteindre la grille flottante où ils sont piégés. Quand la charge piégée est suffisante, elle masque le champ induit par la grille et le transistor est bloqué de façon permanente F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 18
Mémoires programmables par l'utilisateur pour "déprogrammer" le circuit, il faut décharger la grille flottante exposition aux rayonnements UV pendant quelques dizaines de minutes Erasable Programmable Read-Only Memory (EPROM) par effet tunnel en appliquant des tensions électriques suffisamment importantes entre la grille, la source et le drain action plus rapide et sans être obligé de retirer le circuit du système où il est monté Electrically Erasable Programmable Read-Only Memory (EEPROM) le cycle d'écriture d'une EEPROM est environ 1000 fois plus lent que celui d'une RAM les temps d'accès en lecture des RAM, ROM, EPROM, EEPROM sont comparables F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 19
Mémoires programmables par l'utilisateur mémoires flash EEPROM dans laquelle on peut atteindre plusieurs cellules en parallèle (octet ou mot), diminuant sensiblement les temps d'accès en écriture l'effacement ne peut se faire que par bloc on trouve maintenant des circuits pour lesquels on mesure la quantité d'électrons piégés dans la grille flottante, permettant ainsi de stocker plusieurs bits dans une même cellule (MLC, ou Multi-level cell) 2 grandes familles : mémoires de technologie «NOR» mémoires de technologie «NAND» toutes les 2 basées sur l'architecture EEPROM à grille flottante se différencient par l'organisation logique des cellules F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 20
Mémoires programmables par l'utilisateur mémoires flash «NOR» par défaut dans un état logique «0» la programmation les met dans un état logique «1», qui peut s 'effectuer au niveau de la page, de l'octet ou du mot remises à 0 par un effacement de la grille, qui se fait sur une base d'accès par bloc accès en lecture en mode random au niveau de l'octet utilisées surtout pour stocker du firmware exécutable mémoire flash «NAND» organisation logique différente des cellules en série, qui permet l'adressage également au niveau du bit densité des cellules plus importante, d'où des capacités de stockage plus importantes, mais des risques d'erreur plus grands (nécessité de codes de correction) bien adaptée au stockage de masse (USB) F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 21
Mémoires programmables par l'utilisateur limitations gestion complexe des cycles d'écriture on peut mettre un bit individuellement à «1» mais l'effacer pour le remettre à «0» nécessite d'effacer tout le bloc risques de modification des cellules voisines lors de la lecture il est préférable de gérer le nombre d'opérations effectuées et de réécrire périodiquement les cellules voisines ne peuvent subir qu'un nombre limité de cycles écriture/effacement (détérioration du support sous l'effet des forts courants électriques) de l'ordre de 100 000 pour la plupart des produits courants peut aller jusqu'à 1 000 000 pour les plus récents F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 22
Mémoires programmables par l'utilisateur de plus en plus de technologies de stockage basées sur ces mémoires Solid State Drives (SSD) NVRAM (Non volatile RAM) Flash associée à une RAM. Sert à sauvegarder rapidement (< 10ms) le contenu de la RAM en cas de coupure de courant recherche très active en ce moment pour avoir la non volatilité et une vitesse d'accès comparable aux SRAM RAM ferroélectriques (FRAM) structure analogue aux DRAM mais basées sur la polarisation électrique d'un alliage Zr/Ti RAM magnétorésistives (MRAM) utilisent des éléments magnétiques (cf mémoires à tore) plusieurs technologies en cours de développement Mémoires Millipedes nanotechnologie (encore trop lent) F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 23
Circuits logiques programmables la famille des circuits logiques programmables (Programmable Logic Device, ou PLD) est vaste et variée PAL, PLA, SPLD, EPLD, CPLD, FPGA peuvent être purement combinatoires ou contenir des éléments de logique séquentielle F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 24
Circuits logiques programmables «ancêtre» des PLD : Programmable Logic Array (PLA) combinaison de portes ET et OU permettant de réaliser de façon programmable des somme canoniques de produits caractérisés par le nombre d'entrées n le nombre de sorties m le nombre de minterms p PLA n x m avec p produits généralement p << 2 n F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 25
Circuits logiques programmables exemple d'un PLA 4x3 avec 6 produits 4 lignes d'entrée E k 6 portes ET à 8 (2x4) entrées pouvant recevoir E k ou fabricant les minterms P k 3 portes OU à 6 entrées fabricant les sorties O n, à partir des minterms P k E k F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 26
Circuits logiques programmables exemple d'un PLA 4x3 avec 6 produits E 1 E 2 E 3 E 4 P 1 P 2 P 3 P 4 P 5 P 6 O 1 O 2 O 3 F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 27
Circuits logiques programmables exemple d'un PLA 4x3 avec 6 produits E 1 E 2 E 3 E 4 P 1 P 2 P 3 P 4 P 5 P 6 O 1 O 2 O 3 F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 28
Circuits logiques programmables exemple d'un PLA 4x3 avec 6 produits E 1 E 2 E 3 E 4 P 1 P 2 P 3 P 4 P 5 P 6 exemple O 1 O 1 = E 1.E 2 +E 1.E 2.E 3. E 4 O 2 O 3 O 2 = E 1.E 3 +E 1.E 3.E 4 +E 2 O 3 = E 1. E 2 +E 1.E 3 +E 1.E 2.E 4 F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 29
Circuits logiques programmables exemple d'un PLA 4x3 avec 6 produits E 1 E 2 E 3 E 4 exemple O 1 O 2 O 1 = E 1.E 2 E 1.E 2.E E 3. 4 O O 2 = E 1.E 3 E 1.E 3.E 4 E 2 3 O 3 = E 1.E 2 E 1.E 3 E 1.E 2.E 4 F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 30
Réseaux logiques programmables Programmable Array Logic (PAL ) matrices des connexions OU figée Fixed-OR element (FOE) matrice des connexions ET programmable F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 31
Réseaux logiques programmables toujours plus de sophistication dans les catalogues des fabricants canaux d'entrée/sortie bidirectionnels grâce à des portes 3- états qui permettent de commander le sens d'utilisation possibilité de ré-injecter des sorties dans le réseau des ET (variables intermédiaires) utilisation d'un réseau de bascules D avec une horloge commune entrée programmable au niveau des portes ET et OU sortie accessible à l'extérieur et pouvant être utilisée comme variable interne injectée dans le réseau de connexions programmables programmation de fonctions séquentielles F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 32
Réseaux logiques programmables exemple d'une PLA combiné à une bascule D F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 33
Réseaux logiques programmables Complex Programmable Logic Devices (CPLD) plusieurs PLD rassemblés en cellules (macrocellules) PLD PLD PLD PLD Interconnection programmable blocs d'entrée-sortie PLD PLD PLD PLD macrocellules regroupées en blocs logiques qui peuvent être reliés par une matrice de connexions programmable F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 34
Réseaux logiques programmables plus efficaces que un "gros" PLD problèmes de connectique capacité importante, courants de fuite temps de réponse plus long F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 35
Réseaux logiques programmables Field Programmable Gate Arrays (FPGA) blocs d'entrée/sortie blocs logiques constitués de portes et de bascules D matrices de connexions programmables techniques de programmation analogues à celles des ROMs peut se faire aussi avec une SRAM blocs d'entrée/sortie blocs logiques réseau de connexion programmable F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 36
CPU F. Touchard Polytech Marseille IRM3 2016-17 Cours Architecturevdes ordinateurs Mémoires mortes et circuits programmables 37