GELE2442 Chapitre 8 - Université de Moncton
Transcription
GELE2442 Chapitre 8 - Université de Moncton
GELE2442 Chapitre 8 : Mémoire et logique programmable Gabriel Cormier, Ph.D., ing. Université de Moncton Hiver 2015 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 1 / 32 Contenu 1 RAM 2 Décodage de mémoire 3 ROM 4 PLA 5 PAL 6 Dispositifs séquentiels programmables Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 2 / 32 Mémoire Mémoire: élément clé des systèmes numériques Tout traitement d’information nécessite une mémoire Deux types de mémoire utilisées dans les systèmes numérique: RAM (Random-Access Memory, ou mémoire à accès aléatoire) et ROM (Read-Only Memory) RAM: lecture et écriture ROM: lecture seulement Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 3 / 32 ROM Dispositif logique programmable. Autres types: PLA: programmable logic array PAL: programmable array logic FPGA: field-programmable gate array Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 4 / 32 RAM Mémoire Mémoire: ensemble de cellules de stockage avec les circuits complémentaires nécessaires pour transférer l’information d’un dispositif L’architecture de la mémoire est conçue de sorte que l’information peut être accédée à n’importe quel endroit Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 5 / 32 RAM Mémoire Stocker de l’information en groupes de bits appelés des mots Mot: groupe de 1 et 0 qui représente un chiffre, une instruction, un caractère alphanumérique ou autre La capacité d’une mémoire est normalement donnée en fonction du nombre total de bytes de la mémoire. Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 6 / 32 RAM Mémoire Communication entre la mémoire et son environnement obtenue par une entrée et une sortie, une adresse, et des lignes de contrôle lecture/écriture n lignes d’entrée k lignes d’adresse Lecture Unité mémoire 2n mots n bits par mot Écriture n lignes de sortie Figure 1 : Schéma bloc d’une mémoire Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 7 / 32 RAM Mémoire n lignes d’entrée permettent d’écrire dans la mémoire lorsque Écriture est à 1 n lignes de sortie permettent de lire les valeurs en mémoire lorsque Lecture est à 1 Choix du mot à lire ou écrire est effectué par les k bits d’adresse (où n = 2k normalement) Ex: mémoire de 10 bits aura une capacité maximale de 1024 bits (210 ) ou 1K Ex: mémoire de 32 bits a une taille maximale de 4Gb Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 8 / 32 Décodage de mémoire Exemple de cellule de 1 bit Select S Entrée Q Sortie R Entrée Lire/Écrire Select CM Sortie Lire/Écrire Figure 2 : Cellule de mémoire et schéma bloc Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 9 / 32 Décodage de mémoire Exemple de cellule de 1 bit Composée d’un verrou SR avec des portes logiques qui forment une bascule D. Normalement, une cellule a 4 ou 6 transistors Pour activer la cellule (pour la lecture ou l’écriture) on doit activer l’entée Select (Select=1) Pour faire la lecture, Lire/Écrire = 1, et pour faire l’écriture, Lire/Écrire = 0 Cette cellule de base permet de construire des mémoire plus complexes Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 10 / 32 Décodage de mémoire Exemple de mémoire 4×4 In0 In1 In2 In3 Mot 0 CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM Mot 1 A1 A0 Enable Décodeur 2x4 Mot 2 EN Mot 3 Lire/Écrire Out0 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Out1 Out2 Out3 Hiver 2015 11 / 32 Décodage de mémoire Mémoire RAM Deux types de mémoire volatile: SRAM (statique): conserve l’information en mémoire aussi longtemps qu’elle est alimentée SRAM: nécessite normalement 4 ou 6 transistors DRAM (dynamique): perd sa charge au fil du temps. Il faut rafraı̂chir la mémoire périodiquement (un minimum de millisecondes). Il faut donc lire et ré-écrire tous les bits en mémoire à toutes les millisecondes DRAM: nécessite 1 seul transistor DRAM: occupe beaucoup moins d’espace Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 12 / 32 ROM ROM Circuit combinatoire avec k entrées et n sorties Entrées: adresses Sorties: données Un ROM mémorise la table de vérité d’une fonction logique à k entrées et n sorties Ex: un ROM à 3 entrées et 4 sorties serait appelé un ROM 8 × 4 (8 = 23 ) ROM est une mémoire non volatile: l’information est conservée même si le ROM n’est pas sous tension. Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 13 / 32 ROM ROM Mécanismes internes utilisés pour stocker l’information varient selon le fabriquant du ROM En général, la présence ou l’absence d’une diode ou d’un transistor fait la différence entre un 0 ou un 1 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 14 / 32 ROM ROM BL VDD BL BL 1 WL WL WL BL BL WL BL WL WL 0 Diode MOS OR MOS NOR Figure 3 : Exemple de cellules ROM Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 15 / 32 ROM ROM Il existe plusieurs types de ROM: PROM: Programmable ROM. On utilise un programme pour enregistrer les valeurs sur le ROM. EPROM: Erasable PROM. Comme le PROM, sauf qu’on peut effacer le programme en l’exposant à de la lumière UV pour 5 à 10 minutes. EEPROM: Electrically Erasable PROM. Comme un EPROM, sauf qu’on peut effacer les bits électroniquement. Le nombre de cycles lecture/écriture est limité. Utilisé lorsque les données ne changeront pas souvent, comme le BIOS d’un ordinateur. FLASH: transistors programmables. Nombre de cycles lecture/écriture limité, mais un peu plus que le EEPROM. Permet d’obtenir des densités (MB/mm2 ) très élevées. Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 16 / 32 ROM Avantages et désavantages Pour des fonctions de complexité moyenne, un ROM est habituellement plus rapide qu’un circuit avec plusieurs appareils SSI/MSI et des PLD, et souvent plus rapide qu’un FPGA ou LSI Pour des fonctions de complexité simples à moyennes, le ROM est généralement plus coûteux, consomme plus d’électricité ou est plus lent qu’un circuit conçu avec des SSI/MSI. Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 17 / 32 ROM Types de PLD Types de PLD Trois types principaux de PLD: le PROM, le PAL et le PLA. Le PLA offre plus de flexibilité. Matrice AND fixe (décodeur) Entrées Matrice OR programmable Sorties Matrice OR fixe Sorties Matrice OR programmable Sorties a) PROM Matrice AND programmable Entrées b) PAL Matrice AND programmable Entrées c) PLA Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 18 / 32 PLA PLA Similaire au PROM Ne permet pas de décoder complètement les variables d’entrée Ne génère pas tous les mintermes Constitué d’une série de portes AND programmables et de portes OR programmables, et normalement une série de portes XOR à la sortie Les portes XOR permettent d’obtenir une fonction complémentée si nécessaire Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 19 / 32 PLA PLA: exemple On veut programmer les deux fonctions suivantes: F1 = AB 0 + AC + A0 BC 0 F2 = (AC + BC)0 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 20 / 32 PLA A B × × C × × × × × × × × × × × × × × 0 1 F1 F2 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 21 / 32 PLA Tableau de programmation Représentation de la programmation du PLA AB 0 AC BC A0 BC 0 Produit 1 2 3 4 Entrées A B C 1 0 – – 1 1 – 1 1 0 1 0 Sorties V C F1 F2 1 – 1 1 – 1 1 – Figure 4 : Tableau de programmation PLA Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 22 / 32 PAL PAL Dispositif programmable qui a une série de portes OR fixe et une matrice de portes AND programmables Plus facile à programmer, mais moins flexible Exemple à la diapo suivante Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 23 / 32 PAL 1 F1 2 3 I1 4 F2 5 6 I2 7 F3 8 9 I3 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 24 / 32 PAL Exemple Donner le circuit et le tableau de programmation pour les fonctions suivantes, si on utilise le PAL de la diapo précédente. X (1, 3, 6, 7) W = ABC X= X (1, 3, 4, 5, 6) ABC Y = X (0, 1, 3, 6, 7) ABC Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 25 / 32 PAL Exemple (suite) On peut simplifier les fonctions avec des diagrammes de Karnaugh, et ainsi obtenir: W = A0 C + AB X = C + AB 0 Y = A0 C + AB + A0 B 0 = W + A0 B 0 Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 26 / 32 PAL Exemple (suite) On obtient alors le tableau de programmation de la figure 5, et le circuit de la figure 6. Produit 1 2 3 4 5 6 7 8 9 Entrées AND A B C W 0 – 1 – 1 1 – – – – – – – – 1 – 1 0 – – – – – – – – – 1 0 0 – – – – – – Sorties W = A0 C + AB X = C + AB 0 Y = W + A0 B 0 Figure 5 : Tableau de programmation PAL de l’exemple Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 27 / 32 PAL A A’ B B’ C C’ W’ W 1 2 × × × × W × 3 I1 4 5 × × × X × 6 I2 × 7 8 × × × 9 I3 Gabriel Cormier (UdeM) Y GELE2442 Chapitre 8 Hiver 2015 28 / 32 Dispositifs séquentiels programmables Dispositifs séquentiels programmables Constitués de portes logiques et des bascules: Dispositif logique séquentiel programmable (SPLD) Dispositif logique programmable complexe (CPLD) Matrice de portes programmables à effet de champ (FPGA, field-programmable gate array) Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 29 / 32 Dispositifs séquentiels programmables SPLD Entrées Sorties Matrice AND-OR (PAL ou PLA) Bascules Figure 7 : Schéma-bloc d’un SPLD Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 30 / 32 Dispositifs séquentiels programmables CPLD PLD Bloc IO PLD PLD PLD Bloc IO Matrice programmable PLD PLD PLD PLD Figure 8 : Schéma-bloc d’un CPLD Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 31 / 32 Dispositifs séquentiels programmables FPGA Circuit VLSI qui peut être programmé Possède normalement des millions de blocs logiques et des blocs d’entrés et de sortie programmables, le tout branché ensemble par des interconnexions programmables Un bloc logique typique d’un FPGA contient des multiplexeurs, portes, bascules et SRAM Le SRAM permet de programmer n’importe quelle fonction logique. Gabriel Cormier (UdeM) GELE2442 Chapitre 8 Hiver 2015 32 / 32