Cours Synth`ese des Syst`emes Numériques

publicité
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
Téléchargement