Cours Synthèse des Systèmes Numériques Cours Synthèse des Systèmes Numériques Bertrand Granado Enseignant-Chercheur Laboratoire des Instruments et Systèmes d’Ile de France 3 rue Galilée - Bâtiment ”Le Raphaël” 94200 Ivry-sur-seine Mél : [email protected] Printemps 2005 Cours Synthèse des Systèmes Numériques Les mémoires - types Il existe deux Acronymes pour définir les Mémoires : ROM : Read Only Memory (Mémoire Lecture Seule) Mémoire Morte RAM : Random Access Memory (Mémoire à accès Aléatoire) Mémoire Vive Ces acronymes définissent tous les deux des mémoires à accès Aléatoire Mais il existe aussi des mémoires à accès séquentiel Cours Synthèse des Systèmes Numériques Les mémoires - types ROM : Read Only Memory = Mémoire Lecture Seule ? Les noms n’ont de sens que pour les auteurs ! Il existes des mémoires avec différentes caractéristiques Cours Synthèse des Systèmes Numériques Les mémoires - Une classification Quels Critères pour classifier ? Critères pertinents ou apparaissant comme tels. Critères pas forcément indéfiniment valides. Cours Synthèse des Systèmes Numériques Les mémoires - Une classification Lecture Seule ROM RAM Statique Lecture Ecriture Electrique Accès Aléatoire RAM Dynamique Disques Dur Bandes Magnétique Accès Séquentiel Cours Synthèse des Systèmes Numériques Les mémoires - Définitions Définition sur les données manipulées bit : Binary digIT - Plus petite quantité binaire octet (byte) : information codée sur 8 bits - Unité de référence mot (word) : référence la taille du bus de données utilisé dépendant du système - Un processeur 16 bits a une taille de mot de 16 bits, un processeur 64 bits a une taille de mot de 64 bits - Taille égale la taille du bus. Cours Synthèse des Systèmes Numériques Les mémoires - Définitions Bus : interfaces entre mémoire et monde extérieur Bus de données (M bits) : délivre un mot de M bits de la mémoire Bus d’adresses (N bits) : sélectionne 1 mot parmi 2N Signaux de contrôle - Il existe au moins CS : Chip Select (Sélecteur de boitier) - Commande de l’état haute impédance du bus de données R : Read (Lecture) - Indique que l’accès à la mémoire est une lecture W : Write (Ecriture) - Indique que l’accès à la mémoire est une écriture Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie SRAM Mot Dj T4 T6 T3 T5 T2 Bit Bit Vdd T1 Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie SRAM Lecture Mot Dj T4 T6 T3 T5 T2 Bit Bit Vdd T1 Vdd Sortie Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie SRAM Ecriture Mot Dj T4 T6 T3 T5 T2 Bit Bit Vdd T1 Entrée W Cours Synthèse des Systèmes Numériques Les mémoires RAM - Autres Cellules SRAM Cellule biport : permet d’accèder simultanément à 2 données en mémoires Cellule CAM : cellule adressée par contenu, utile pour les mémoires caches associatives Cours Synthèse des Systèmes Numériques Les mémoires RAM - les Biports Cours Synthèse des Systèmes Numériques Les mémoires RAM - les CAM Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie SRAM Bilan Rapide Cellule Statique : Rétention infinie tant qu’alimentation Faible Consommation (CMOS) Cellule volumineuse Chère Volatile Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie DRAM Bit T1 C Mot Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie DRAM Bilan Compact Faible Consommation (CMOS) Lecture destructrice : nécessité de réécriture Rafraı̂chissement régulier pour combler la décharge du condensateur Volatile Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Interne DM-1DM-2DM-3 CS R Tampon d’Entrées/Sorties W A1 A0 Décodeur de Ligne N AN-1 AN-2 D2 D1 D0 2 N-1 2 1 bit 2 1 Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Interne Adressage Simple : une adresse ⇒ une donnée Grande capacité mémoire ⇒ bus de donnée large Scinder l’adresse en deux parties : ligne et colonne Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Interne CS R Tampon d’Entrées/Sorties Multiplexeur 1 <-> K W K 2 K-1 2 2 1 AN-1 AN-2 AK+1 AK Décodeur de Ligne N-K 2 N-K-1 2 1 bit 2 1 K 2 K-1 2 2 1 Décodeur de Colonne AK-1AK-2 A1 A0 D0 Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Interne CS R Tampon d’Entrées/Sorties Multiplexeur 4 <-> K W K 2 K-1 2 2 1 AN-1 AN-2 AK+1 AK Décodeur de Ligne N-K 2 N-K-1 2 1 bit 2 1 K 2 K-1 2 2 1 Décodeur de Colonne AK-1AK-2 A1 A0 D3 D2 D1 D0 Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Externe Association de plusieurs blocs mémoire pour Augmenter la capacité de stockage Augmenter la taille des données Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Externe CS Adresses Données N bits M bits R W Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Externe CS Adresses Données 10 bits 4 bits R W Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Externe CS RW D15-D12 4 bits Adresse 10 bits CS RW D11-D8 4 bits CS RW D7-D4 4 bits CS RW D3-D0 4 bits Cours Synthèse des Systèmes Numériques Les mémoires RAM - Organisation Externe A11-A10 CS CS CS CS RW RW RW RW A9-A0 10 bits D3-D0 4 bits Cours Synthèse des Systèmes Numériques Les mémoires RAM - Cycles Pour un bon fonctionnement de la mémoire Repect de temps indiqué dans les cycles de lecture et d’écriture Cours Synthèse des Systèmes Numériques Les mémoires RAM - Cycle de lecture Tdur ADRESSE R/W Tad CS Tcdsh Tcsdb DONNEE VALIDE T1 T2 T3 T4 Cours Synthèse des Systèmes Numériques Les mémoires RAM - Cycle d’écritue Tdur ADRESSE Taw R/W Tdurw CS Tcdsh Tcsw T1 DONNEE VALIDE T2 T3 T4 Cours Synthèse des Systèmes Numériques Vhdl : mémoire entity memoire is port (donnee : in std_logic_vector(7 downto 0); adresse: in std_logic_vector(6 downto 0); rw : in std_logic; cs : in std_logic; sortie: out std_logic_vector(7 downto 0)); end entity memoire; Cours Synthèse des Systèmes Numériques Vhdl : mémoire architecture comport of memoire is begin process(cs,adresse,donnee,rw) is type memory is array (0 to 79) of std_logic_vector(7 downto 0); variable mem : memory; begin if cs=’0’ then if rw=’1’ then sortie <= mem(conv_integer(adresse)); elsif rw=’0’ then mem(conv_integer(adresse)) := donnee; end if; else sortie<= "ZZZZZZZZ"; end if; end process; end architecture comport; Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie SDRAM Jusque là : technologie asynchrone Difficile de maitriser les temps de propagation Nécessité de synchroniser les accès mémoire SDRAM: Synchone DRAM Introduction du mode Rafale (BURST) Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie SDRAM 128K x 16Bit x 2 Banks Synchronous DRAM FEATURES ï ï ï ï ï ï ï ï ï 3.3V power supply LVTTL compatible with multiplexed address Dual banks operation MRS cycle with address key programs -. CAS Latency ( 2 & 3) -. Burst Length (1, 2, 4, 8 & full page) -. Burst Type (Sequential & Interleave) All inputs are sampled at the positive going edge of the system clock Burst Read Single-bit Write operation DQM for masking Auto & self refresh 15.6us refresh duty cycle (1K/16ms) S8S3122X16 I/O Control Data Input Register Bank Select Output Buffer 128K x 16 Sense AMP Row Decoder ADD Row Buffer Refresh Counter Col. Buffer LRAS Column Decoder LCBR Address Register CLK 128K x 16 Latency & Burst Length LCKE Programming Register LRAS LCBR LCAS LWE LWCBR Timing Register CLK CKE CS RAS CAS WE L(U)DQM LDQM LWE LDQM DQi Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie DDRAM Fréquence Processeur = 800 MHz, fréquence SDRAM = 100 MHz Nécessité de réduire cet écart Idée : lire sur le front montant et descendant de l’horloge DDRAM : Double rate DRAM (DRAM à double débit) Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie DDRAM (L)WE I/O Control 8 /16 CK, CK Data Input Register LDM(x8) L(U)DM(x16) Serial to parallel Bank Select 16/ 32 2Mx16/ 1Mx32 2-bit prefetch 16/32 8/16 Output Buffer 2Mx16/ 1Mx32 Sense AMP Row Decoder Refresh Counter Row Buffer ADD Address Register CK, CK 2Mx16/ 1Mx32 x8/x16 DQi 2Mx16/ 1Mx32 Column Decoder Col. Buffer LRAS LCBR Latency & Burst Length DLL Strobe Gen. Programming Register LCKE LRAS LCBR LWE LCAS LWCBR Timing Register CK, CK CKE CS RAS CAS WE L(U)DM(x16) CK, CK LDM(x8) DM Input Register DM(x8) L(U)DM(x16) Data Strobe Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie DDRAM CS RAS CAS WE Register Extended MRS H X L L L L OP CODE Register COMMAND Mode Register Set CKEn-1 CKEn H X L L L L OP CODE X Refresh Self Refresh Auto Refresh Entry Exit Bank Active & Row Addr. Read & Column Address Auto Precharge Disable Write & Column Address Auto Precharge Disable Auto Precharge Enable Auto Precharge Enable Burst Stop Precharge Bank Selection All Banks Active Power Down H H L L L L H L H H H BA0,1 A10/AP L H H X X X H X L L H H V H X L H L H V H X L H L L H X L H H L H X L L H L H X X X Entry H L Exit L H Entry H L Exit L H Precharge Power Down Mode DM(UDM/LDM for x16 only) H No operation (NOP) : Not defined H L V V V X X X X H X X X L H H H H X X X L V V V X X X V Row Address L Column Address H L Column Address H X V L X H X X X X H X X X L H H H A0 ~ A9, A11 X Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie DDRAM K K# W# R# Add res s Data -I/O C C# A B D (A ) +1 +2 +3 Q (B) +1 +2 +3 Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie QDRAM Idée1 : lire sur le front montant et descendant de l’horloge comme une DDRAM Idée2 : dissocier entrée et sortie pour permettre une lecture et une écriture simultanée QDRAM : Quad rate DRAM (DRAM à quadruple débit) Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie QDRAM W# Data -In 18 36 Data 256 K x 36 Memory Array 36 Data Read P ort 17 Write P ort Add ress BW0 # , BW1# R# 2 C, C# Data -Out 18 2 K, K# V RE F ZQ Co nt rol Logic Data flow is in one direction Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie QDRAM K K# W# R# Add res s A B C D E F G H Data -In D (B) +1 D (D) +1 D (F) +1 D (H ) +1 Data -Out C C# Q (A ) +1 Q (C) +1 Q (E) I J +1 Q (G) Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie QDRAM K K# W# R# Add res s Data -In Data -Out C C# A B D (A ) C +1 +2 D +3 Q (B) D (C) +1 E +1 +2 +2 +3 +3 Q (D) Cours Synthèse des Systèmes Numériques Les mémoires RAM - Technologie QDRAM 288Mb QDR III 500MHz + 144Mb QDR III 500MHz + 72Mb QDR III 500MHz 36Mb QDR III 500MHz 288Mb QDR II 300MHz+ 72Mb QDR II 300MHz 18/36Mb QDR II 250/(300)MHz 144Mb QDR II 300MHz+ 18/36Mb QDR I 200MHz 2003 2004 2005 2006 2007 2008 Cours Synthèse des Systèmes Numériques Les mémoires ROM Nécessité de mémoire non-volatile Bios de micro-ordinateur Stockage de programmes dans des systèmes embarqués Reconfiguration automatique des FPGA Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie Mask - ROM : réalisé lors de la fabrication du circuit PROM : Fusible - One Time Programming EPROM : Transistors à Grille Flottante - Reprogrammabilité NOVRAM : RAM + Pile Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie - Mask - ROM Aucune Souplesse Faible Coût Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie - PROM Aluminium Aluminium Fusible Antifusible Silicium Polycristallin Silicium n+ Diélectrique Oxyde de Silicium Très faible Utilisation Cours Synthèse des Systèmes Numériques Les mémoires ROM - Cellules BL BL BL VDD WL WL WL 1 BL WL BL BL WL WL 0 GND Diode ROM MOS ROM 1 MOS ROM 2 Cours Synthèse des Systèmes Numériques Les mémoires ROM - OR ROM BL[0] BL[1] BL[2] BL[3] WL[0] V DD WL[1] WL[2] V DD WL[3] V bias Pull-down loads Cours Synthèse des Systèmes Numériques Les mémoires ROM - NOR ROM V DD Pull-up devices WL[0] GND WL [1] WL [2] GND WL [3] BL [0] BL [1] BL [2] BL [3] Cours Synthèse des Systèmes Numériques Les mémoires ROM - NAND ROM V DD Pull-up devices BL [0] WL [0] WL [1] WL [2] WL [3] BL [1] BL [2] BL [3] Cours Synthèse des Systèmes Numériques Les mémoires ROM : La Grille Flottante Grille de Programmation Grille Flottante Source Drain Piège des électrons dans la grille flottante Cours Synthèse des Systèmes Numériques La Grille Flottante - programmation Vpp Grille Flottante GND Programmation Cours Synthèse des Systèmes Numériques La Grille Flottante - programmation GND Grille Flottante Vpp Effacement Cours Synthèse des Systèmes Numériques La Grille Flottante - programmation Tension Flottante Valeur Stockée Tension Substrat Utilisation Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie - EPROM UV-EPROM : Effacement aux ultra-violet EEPROM : Effacement électrique par mot mémoire FLASH : Effacement électrique par bloc Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie - UV-EPROM Programmation hors système Effacement hors système Temps d’effacement long (15 minutes pour les UV-EPROM) Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie - E-EPROM Programmation ISP (In Situ Programming ou In Serial Programming) Effacement ISP Programmation par mot ou bloc Temps d’effacement rapide Coût élevé car effacement par mot mémoire Cours Synthèse des Systèmes Numériques Les mémoires ROM - Technologie - FLASH Programmation ISP Effacement ISP Programmation par mot ou bloc Temps d’effacement très rapide Coût limité car effacement par bloc Cours Synthèse des Systèmes Numériques Les mémoires FLASH - NAND Versus NOR Cours Synthèse des Systèmes Numériques Les mémoires FLASH - NAND Versus NOR Cours Synthèse des Systèmes Numériques Les mémoires FLASH - Organisation NAND Cours Synthèse des Systèmes Numériques Les mémoires FLASH - Lecture Cours Synthèse des Systèmes Numériques Les mémoires FLASH - Programmation Cours Synthèse des Systèmes Numériques Les mémoires FLASH - Effacement Cours Synthèse des Systèmes Numériques Les mémoires FLASH - Roadmap Memory cap. Tablet PC 2GB Camcorder 1GB 512MB 512MB Game 256MB 256MB 128MB 128MB SSMP DSC UFD Camcorder 64MB 64MB Smart 32MB 32MB PDA Phone Color ~ 2002 VOD 2003 2004 2005 2006 Cours Synthèse des Systèmes Numériques Les mémoires FLASH - NAND et NOR Unify Code&Data NAND for Data Strorage CPU Code Data Dynamic loading CPU Code RAM Data NOR Storage NAND RAM Storage NAND High speed shadowing for fast boot up Fast loading code for speedy execution High speed write to store data Quick review requires high speed read Cours Synthèse des Systèmes Numériques Les mémoires FLASH - One NAND MCU Code Data MCU Work Code Demand-paging Work Data NOR NAND RAM OneNANDTM RAM High performance Flash solution of NAND and onon-chip logic Unified Flash for Code and Data Storage upon demanddemand-paging Cours Synthèse des Systèmes Numériques Les mémoires FLASH - NAND Versus One NAND NAND (512Mb) OneNAND TM (512Mb) 512B / 16KB 2KB / 128KB Double buffering N/A Yes Burst Interface N/A 54Mhz (0.12um) 66Mhz (90nm) 14.5 MB/s (x8) 21MB /s (x16) 31.5 MB/s(0.12um) 108 MB/s (90nm) Effecti ve Data Rate (Read) 10MB /s (x8) 15MB /s (x16) Same as spec. max Program 2.6 MB/s 6.4MB/s (0.12um) 8.2MB/S (90nm) EDC/ECC Host ECC or Host SW On-chip Package 8.5 mm x 15 mm 9.5mm x 12mm Items Page Size / Block Size Spec. Data Rate (Read) Cours Synthèse des Systèmes Numériques Les mémoires - Bus parallèle Bus Adresses Micro Bus Données Processeur RAM Bus Commandes ROM Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C le bus I2C n’est constitué que de deux lignes de transmission : La ligne SDA (= Serial DAta), véhicule toutes les informations (données, adresses, commandes). La ligne SCL (= Serial CLock), sert à transmettre l’horloge communes à tous les périphériques qui partagent un même bus I2C Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C chaque entrée/sortie a une structure ’drain ouvert’ permettant de relier ensemble plusieurs sorties résistance de tirage Rt pour fixer le potentiel lorsque tous les transistors sont bloqués l’ensemble réalise une fonction logique ’ET’ câblée état de repos de la ligne est l’état logique ’1’ chaque périphérique pouvant ’prendre la ligne’ en la mettant à ’0’. Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C Dialogue entre deux périphériques I2C - 2 rôles : Un maı̂tre ; il initie le dialogue, envoie les commandes, et génère le signal d’horloge sur SCL. Un esclave : en fonction des ordres et du signal d’horloge, il envoie ou reçoit des données (octets). Bus inactif, les lignes sont au niveau logique ’1’. Bus actif, l’état de repos de la ligne SCL est l’état ’0’ Chaque bit lu ou envoyé (sur SDA) est validé par une impulsion positive sur SCL Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C L’état de la ligne SDA ne doit pas changer pendant que SCL est à ’1’ Deux exceptions: les instructions ’START’ et ’STOP’ qui servent respectivement à initier et à clore le dialogue Elles se produisent quand SCL est à ’1’ : par un front descendant sur SDA, suivi d’un front descendant sur SCL, pour ’START’. par un front montant sur SCL, puis sur SDA, pour ’STOP’. Les signaux ’START’ et ’STOP’ sont bien sûr délivrés par le maı̂tre. Un périphérique peut soit être tantôt maı̂tre, soit tantôt esclave. Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C Cours Synthèse des Systèmes Numériques Les mémoires ROM Série - le bus I2C Cours Synthèse des Systèmes Numériques Les mémoires - Les MRAM SRAM : Rapidité DRAM : Densité Flash : Permanence Allier ces trois caractéristiques : MRAM Cours Synthèse des Systèmes Numériques Les mémoires - MRAM Cours Synthèse des Systèmes Numériques Les mémoires - MRAM Cours Synthèse des Systèmes Numériques Les mémoires - MRAM Cours Synthèse des Systèmes Numériques Les mémoires - MRAM