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