Upload
trankhanh
View
225
Download
0
Embed Size (px)
Citation preview
Circuits logiques séquentiels
1 Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (�ip-�op)
Registres
2 Automates
Notion d'automate �ni
Automate �ni synchrone
3 Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
4 Conclusion
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 1 / 30
Introduction
Dans cette partie, nous présentons certains circuits dits séquentiels, dans
lesquels la notion de chronologie des événements joue un rôle central.
Un tel circuit peut se trouver dans un nombre �ni d'états, et les entrées du
circuit provoquent des transitions à des instants précis.
Pour respecter les relations temporelles requises, un circuit séquentiel reçoit un
signal d'horloge :
niveau
temps
un cycle
Ce signal permet de synchroniser des événements, soit sur le front montant, soit
sur le front descendant.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 2 / 30
Plan
1 Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (�ip-�op)
Registres
2 Automates
Notion d'automate �ni
Automate �ni synchrone
3 Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
4 Conclusion
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 3 / 30
L'idée de base vient du fait que l'on sait concevoir des circuits ressemblant au
circuit suivant (qui n'est pas un circuit combinatoire bien formé) :
Ce circuit présente deux états stables :
0 1
1 0
1
0 1
0
Le tout est de savoir comment passer d'un état à un autre. . .
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 4 / 30
Bascule RS
Q
QS
R
En résumé :
si S (Set) prend momentanément la valeur 1, la bascule prend l'état Q=1 ;
si R (Reset) passe momentanément à 1, la bascule prend l'état Q=0 ;
La bascule se souvient donc qui de R ou de S a été activé pour la dernière fois :
c'est tout ce dont on a besoin pour mémoriser un bit.
Par contre, il faut éviter d'avoir R = S = . . .
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 5 / 30
Verrou (latch)
On interdit la possibilité du S = R = 1, et on ajoute un signal de commande C :
Q
QD
C
On obtient un verrou commandé par le signal C :
si D=1 et que la commande C=1, la bascule passe à l'état Q=1,
si D=0 et que la commande C=1, la bascule passe à l'état Q=0,
quand C=0, le verrou ne peut plus changer d'état.
Lorsque C est activé, la valeur D est stockée : mémoire 1 bit.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 6 / 30
Ce verrou stocke D lorsque C est à son niveau haut. Souvent C est un signal
d'horloge : on dit qu'il s'agit d'un verrou régi par le niveau haut de l'horloge.
signaux
temps
cycle 1 cycle 2 cycle 3 cycle 4 cycle 5
C
Q
D
Il existe aussi des verrous régis par le niveau bas de l'horloge.
D Q
C
D Q
C
niveau haut niveau bas
latch latch
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 7 / 30
Bascule (�ip-�op)La mémorisation se produit à la �n d'un cycle, et le bit mémorisé est maintenu
sur la sortie de la bascule pendant tout le cycle suivant.
On peut mettre au point deux types de bascules.
Bascule régie par le front descendant de l'horloge :
temps
d2d1d0
cycle 3cycle 2cycle 1cycle 0
d3
cycle 4
d0 d1 d2 d3
signaux
Q
DD Q
C HH
Bascule régie par le front montant de l'horloge :
temps
signaux
Q
DD Q
C
d1
d0 d1
d2 d3
d2
d0
d3
cycle 0 cycle 1 cycle 2 cycle 3 cycle 4
HH
On peut raisonner de la même manière avec les deux types de bascules :
il su�t d'aligner correctement la dé�nition des cycles d'horloge.N. Louvet � Circuits logiques séquentiels. 20 mars 2016 8 / 30
En plaçant en série un verrou régi par le niveau bas de l'horloge, puis un autre
régi par le niveau haut, on obtient une bascule :
D
C
Q
verrou
D
C
Q
niveau haut
verrou
E SI
H
niveau bas
La bascule mémorise l'entrée E sur le front montant de l'horloge H :
temps
I
S
E d0 d1 d2 d3
d0 d1 d2 d3
d0 d1 d2 d3
cycle 1cycle 0 cycle 2 cycle 3 cycle 4
signaux
H
On travaillera par la suite avec des bascules régies par le front montant.
Rem : Avec en série un verrou régi par le niveau haut, puis un autre régi par le
niveau bas, on a une bascule mémorisant sur le front descendant de l'horloge.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 9 / 30
Registres
Nos registres sont fabriqués à partir de bascules régies par un front d'horloge.
Cette convention �xe la manière d'utiliser les bascules :
sur un cycle d'horloge on calcule un résultat ri , qui est mémorisé sur
l'entrée D de la bascule à la �n du cycle ;
au cours du cycle suivant :
I le résultat du cycle précédent ri est disponible et constant sur la sortie Q ;
I on calcule un résultat ri+1, mémorisé à la �n du cycle.
Le résultat calculé au cycle i est typiquement la sortie d'un circuit combinatoire.
signaux
temps
cycle 1 cycle 2 cycle 3 cycle 4 cycle 5
C
Q
D
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 10 / 30
Le registre le plus simple que l'on puisse imaginer consiste simplement à monter
des �ip-�ops en parallèle, en les connectant au même signal d'horloge :
E5 E0E1E2E3E4E6E7
S6 S5S7 S4 S3 S2 S1 S0
C
D Q
C
D Q
C
D Q
C
D Q
C
D Q
C
D Q
C
D Q
C
D Q
C
flip−flop flip−flop flip−flop flip−flop flip−flop flip−flop flip−flop flip−flop
On obtient le type de chronogramme suivant :
data1 data2 data3 data4 data5
data1 data2 data3 data4data0
signaux
temps
cycle 1 cycle 2 cycle 3 cycle 4 cycle 5
E
S
C
A chaque �n de cycle, l'entrée E est stockée et est disponible au cycle suivant.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 11 / 30
Pour mémoriser une donnée sur plusieurs cycles, on ajoute un signal W :
C
W
E5 E0E1E2E3E4E6E7
S6 S5S7 S4 S3 S2 S1 S0
D Q
C
D Q
C
D Q
C
D Q
C
flip−flop flip−flop flip−flop flip−flop
D Q
C
D Q
C
D Q
C
D Q
C
flip−flop flip−flop flip−flop flip−flop
Voici un exemple de chronogramme :
temps
cycle 1 cycle 2 cycle 3 cycle 4 cycle 5
C
data1
data0
data2 data3 data4
data1 data2 data3
signaux
E
S
W
A chaque �n de cycle,
soit W=1 et l'entrée E est stockée pour être disponible au cycle suivant ;
soit W=0 et la sortie S conserve la même donnée au cycle suivant.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 12 / 30
Plan
1 Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (�ip-�op)
Registres
2 Automates
Notion d'automate �ni
Automate �ni synchrone
3 Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
4 Conclusion
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 13 / 30
Notion d'automate �ni
Il faut un formalisme prenant en compte le temps dans les circuits séquentiels. . .
Exemples :
Un passage à niveau doit réagir à l'événement � un train approche � en
fermant ses barrières et en faisant passer des feux au rouge. . .
Un processeur passe par les étapes du cycle d'instruction.
Début del’exécution l’exécution
Fin deChargement d’uneinstruction
Exécution del’instrution chargée
Un automate �ni est une abstraction du comportement d'un circuit séquentiel :
c'est le pendant d'une fonction booléenne pour un circuit combinatoire.
Cette abstraction est a priori asynchrone (l'automate réagit à des événements),
mais on s'intéressera rapidement à des automates �nis synchrones, dans lesquels
les événements sont synchronisés par un signal d'horloge.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 14 / 30
Formellement, un automate �ni est un quadruplet (S ,E ,T , s0) où
S est un ensemble �ni d'états (States) ;
E est un ensemble �ni d'événements (Events) ;
T est une fonction de transition de S × E → S ;
s0 ∈ S est un état spécial appelé état initial.
Graphiquement, on fait des dessins avec
un rond par état, et une �èche pour indiquer l'état initial ;
des �èches d'un état si à un état sj chaque fois qu'il existe une transition de
si à sj . On étiquette la �èche avec l'événement qui déclenche la transition.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 15 / 30
Exemple : un passage à niveaux a deux capteurs (CG et CD), à 300 m de
chaque côté, qui sont normalement à 0, et sont à 1 lorsqu'un train pèse dessus.
On suppose que les trains peuvent se croiser au passage à niveaux :
états : S = {barrière ouverte, barrière fermée GD, barrière fermée DG} ;
événements : E = {CG 0 à 1,CD 0 à 1} ;
état initial : s0 = barrière ouverte.
barrière
ferméeouverte
CG passe de 0 à 1
CD passe de 0 à 1
GD
barrière
barrière
fermée
DG
CD
pa
sse
de
0 à
1
CG
pa
sse
de
0 à
1
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 16 / 30
Automate �ni synchrone
Dans les d'automates �nis, on considère qu'un événement peut se produire à
n'importe quel instant : on prend surtout en compte la relation de cause à e�et.
Pour simpli�er, on introduit une horloge, et on suppose que les transitions
ne peuvent intervenir que sur un front montant de l'horloge,
se produisent su�samment rapidement pour qu'on puisse les considérer
comme instantanées.
De plus, on remplace l'ensemble des événements E par un ensemble de valeurs
d'entrées possibles I (Inputs). Un évènement est donc modélisé par le fait que
l'entrée de l'automate a une certaine valeur lors d'un front montant de l'horloge.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 17 / 30
Un automate �ni synchrone est un quadruplet (S , I ,T , s0) où
S est un ensemble �ni d'états (States) ;
I est un ensemble �ni d'entrées (Inputs) ;
T est une fonction de transition de S × I → S ;
s0 ∈ S est un état spécial appelé état initial ;
une transition se produit à chaque front montant d'une horloge.
Rem : on aurait pu se baser sur le front descendant d'une horloge ; l'important
est qu'une transition se produise à chaque �n de cycle.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 18 / 30
Exemple : on construit un compteur 2 bits modulo 4, qui s'incrémente si son
entrée e = 1, et qui conserve sa valeur si e = 0.
Notons (q1q0) le registre d'état de l'automate que l'on cherche à construire.
00
01
11
10
e=1 e=1
e=1e=1
e=0
e=0
e=0e=0
q1 q0 e F1(q1, q0, e) F0(q1, q0, e)
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
1 0 1 1 1
1 1 0 1 1
1 1 1 0 0
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 19 / 30
q1 q0 e F1(q1, q0, e) F0(q1, q0, e)
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
1 0 1 1 1
1 1 0 1 1
1 1 1 0 0
On trouve F0(q1, q0, e) = q0 ⊕ e, et F1(q1, q0, e) = q1 ⊕ (q0e). Bref, on sait
construire un petit circuit combinatoire qui calcule F (q1, q0, e).
On pourra donc implanter facilement l'automate demandé :
regis
tre d
’éta
tfonction de
transition
F
C
e
q
q0
0
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 20 / 30
Un automate �ni synchrone peut être implanté en matériel de la façon suivante.
Un registre à n bits stocke l'état courant de l'automate.
La fonction de transition F est réalisée par un circuit combinatoire, qui
prend en entrée :
I reçoit les n bits du registre d'état, et k signaux codant l'entrée courante ;
I ressort l'état suivant, qui sera stocké par le registre d'état en �n de cycle.
Un tel automate peut être implanté par le circuit suivant :
reg
istr
e d
’éta
t
fonction de
transition
F
n n
kentrée
sortie
n
C
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 21 / 30
Si on est capable de décrire formellement un automate �ni synchrone, on arrivera
toujours à déduire de cette description un circuit séquentiel pour le réaliser.
Il existe d'autres types d'automates que ceux décrits jusqu'à présent : dans un
automate de Moore, la sortie n'est pas simplement l'état de courant de
l'automate, mais une fonction (combinatoire) de cet état courant.
On pourrait envisager de concevoir la totalité d'une UCT comme un automate :
mais il serait impossible de s'y retrouver parmi tous les états possibles.
Par contre, on peut concevoir l'unité de contrôle de l'UCT comme un automate,
chargé d'activer de façon coordonnée les di�érents circuits de l'UCT.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 22 / 30
Plan
1 Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (�ip-�op)
Registres
2 Automates
Notion d'automate �ni
Automate �ni synchrone
3 Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
4 Conclusion
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 23 / 30
Banc de registres
Un banc de registre est un circuit qui regroupe un ensemble de registres, chacun
identi�é par un numéro : chacun peut être lu ou écrit.
Pour permettre les lectures,
le banc prend en entrée un certain nombre de numéros de registres #rrX,
un nombre identique de ports de lecture rdataX en sortie.
Le banc de registre maintient en permanence sur son port de lecture rdataX la
donnée contenue dans le registre dont l'indice est spéci�é sur l'entrée #rrX.
Pour les écritures sur le front montant de l'horloge, le banc présente en entrée
un numéro de registre #rw et un port d'écriture wdata,
un signal d'horloge C et un signal d'écriture write.
Si sur un front montant de l'horloge C le signal write est activé, la donnée
présente sur le port d'écriture wdata est placée dans le registre #rw.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 24 / 30
Voici par exemple un banc de 8 registres 8 bits, avec deux ports de lecture :
rdataA
rdataB
write
wdata
#rw
#rrB
#rrA 3
3
3
8
1
1
8
8
C
8 registres
8 bits
Pour implanter un tel banc de registres, on peut utiliser :
8 registres 8 bits ;
2 multiplexeurs 64 vers 8 pour sélectionner parmi les registres :
I rdataA en fonction de #rrA,
I rdataB en fonction de #rrB.
un décodeur 3 vers 8 pour adresser le registre à écrire d'après #rw.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 25 / 30
8
8
8
8
8
8
8
8
décodeur
3 vers 8
register 0
register 1
register 2
register 3
register 4
register 5
register 6
register 7
mu
x 6
4 v
ers
8m
ux 6
4 v
ers
8
8
8
3
8
3
3
rdataA
rdataB
wdata
#rw
#rrB
C write
1 1
#rrA
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 26 / 30
Généralités sur la RAM
Les registres et les bancs de registres fournissent les éléments de base pour la
construction de petites mémoires.
Pour la construction de mémoire plus grandes, comme la mémoire centrale d'un
ordinateur, on doit recourir à d'autres technologies. On distingue essentiellement
deux types de mémoires RAM :
Dans une SRAM (Static RAM), les bits sont stockés par des verrous : les
données stockées se conservent tant que l'ordinateur est sous tension.
Dans une DRAM (Dynamic RAM), les bits sont stockés à l'aide de
condensateurs, dont il faut rafraîchir la charge à intervalles de temps
réguliers : ils ne conservent leur charge que pendant quelques ms.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 27 / 30
Qu'est-ce qui distingue la SRAM et la DRAM?
A capacité équivalente :
le temps d'accès à une DRAM est 5 à 10 fois plus long qu'avec une SRAM,
une SRAM présente un coût beaucoup plus élevé qu'une DRAM.
La SRAM et la DRAM jouent des rôles di�érents dans la hiérarchie mémoire :
la SRAM est utilisée pour les niveaux de cache du processeur (≈Mio),
la DRAM compose la mémoire centrale (≈Gio).
Certaines mémoires RAM sont asynchrones, ce qui signi�e qu'elles ne sont pas
cadencées par une horloge. Mais il existe aussi des DRAM synchrones :
SDRAM (Synchronous DRAM) : opérations sur un front d'horloge.
DDR SDRAM (Double Data Rate SDRAM) : sur les deux fronts d'horloge.
Dans la suite, on va s'intéresser brièvement à la SRAM.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 28 / 30
Mémoire SRAM
Une SRAM de 2m mots de k bits de présente typiquement en entrée :
m lignes d'adresse formant add,
k lignes data pour l'écriture ou la lecture d'un mot de k bits en mémoire,
un signal write qui doit être activé pour l'écriture depuis data,
si write est à 0, alors on est en lecture, et la donnée est lue sur data.
SRAM
64 Ki 8 bits
(64 Kio)
add 15
data
write
8
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 29 / 30
Conclusion
Dans le cours précédent, nous avons fait des rappels sur les circuits logiques
combinatoires, dont les sorties ne dépendent que des entrées. Ces circuits
permettent d'e�ectuer les calculs pour les instructions arithmétiques ou logiques.
Nous avons présenté les circuits séquentiels, dans lesquels les sorties dépendent
de l'état courant et des entrées. Ces circuits permettent de mémoriser des
données, et de gérer l'exécution des instructions dans un processeur.
Les deux types de circuits seront utilisés dans les TP consacrés à la mise au
point d'un processeur implantant l'architecture LC3.
N. Louvet � Circuits logiques séquentiels. 20 mars 2016 30 / 30