N. Louvet – Circuits logiques séquentiels.

publicité
Circuits logiques séquentiels
1
2
3
4
Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (ip-op)
Registres
Automates
Notion d'automate ni
Automate ni synchrone
Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
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
2
3
4
Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (ip-op)
Registres
Automates
Notion d'automate ni
Automate ni synchrone
Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
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
0
1
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
S
Q
R
Q
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 :
D
Q
C
Q
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
D
Q
C
temps
cycle 1
cycle 2
cycle 3
cycle 4
cycle 5
Il existe aussi des verrous régis par le niveau bas de l'horloge.
D
Q
C
latch
niveau haut
N. Louvet Circuits logiques séquentiels.
D
Q
C
latch
niveau bas
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 :
signaux
D
Q
D
d0
d1
d2
d3
d0
d1
d2
d3
cycle 1
cycle 2
cycle 3
cycle 4
Q
H
C
H
temps
cycle 0
Bascule régie par le front montant de l'horloge :
signaux
D
Q
D
d0
Q
H
C
d1
d2
d3
d0
d1
d2
d3
cycle 1
cycle 2
cycle 3
cycle 4
H
temps
cycle 0
On peut raisonner de la même manière avec les deux types de bascules :
il sut 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 :
E
D
I
Q
D
Q
verrou
niveau bas
verrou
niveau haut
C
C
S
H
La bascule mémorise l'entrée E sur le front montant de l'horloge H :
signaux
E
d0
I
d1
d0
S
d2
d1
d3
d2
d3
d0
d1
d2
d3
cycle 1
cycle 2
cycle 3
cycle 4
H
temps
cycle 0
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 r , qui est mémorisé sur
l'entrée D de la bascule à la n du cycle ;
au cours du cycle suivant :
i
I
I
le résultat du cycle précédent r est disponible et constant sur la sortie Q ;
on calcule un résultat r +1 , mémorisé à la n du cycle.
i
i
Le résultat calculé au cycle i est typiquement la sortie d'un circuit combinatoire.
signaux
D
Q
C
temps
cycle 1
cycle 2
cycle 3
cycle 4
N. Louvet Circuits logiques séquentiels.
cycle 5
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 :
E7
E6
E5
E4
E3
E2
E1
E0
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
C
C
C
C
C
C
C
C
C
S7
S6
S5
S4
S3
S2
S1
S0
On obtient le type de chronogramme suivant :
signaux
E data1
data2
data3
data4
data5
S data0
data1
data2
data3
data4
cycle 2
cycle 3
cycle 4
cycle 5
C
temps
cycle 1
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 :
E7
E6
E5
E4
E3
E2
E1
E0
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
D
Q
flip−flop
C
C
C
C
C
C
C
C
C
W
S7
S6
S5
S4
S3
S2
S1
S0
Voici un exemple de chronogramme :
signaux
E data1
S data0
data2
data1
data3
data4
data2
data3
cycle 4
cycle 5
W
C
temps
cycle 1
cycle 2
cycle 3
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
2
3
4
Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (ip-op)
Registres
Automates
Notion d'automate ni
Automate ni synchrone
Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
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 de
l’exécution
Chargement d’une
instruction
Exécution de
l’instrution chargée
Fin de
l’exécution
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 s à un état s chaque fois qu'il existe une transition de
s à s . On étiquette la èche avec l'événement qui déclenche la transition.
i
i
j
j
N. Louvet Circuits logiques séquentiels.
20 mars 2016
15 / 30
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 :
Exemple :
é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.
CD passe de 0 à 1
barrière
ouverte
barrière
fermée
GD
CD passe de 0 à 1
CG passe de 0 à 1
CG passe de 0 à 1
barrière
fermée
DG
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 à eet.
Pour simplier, on introduit une horloge, et on suppose que les transitions
ne peuvent intervenir que sur un front montant de l'horloge,
se produisent susamment 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.
on aurait pu se baser sur le front descendant d'une horloge ; l'important
est qu'une transition se produise à chaque n de cycle.
Rem :
N. Louvet Circuits logiques séquentiels.
20 mars 2016
18 / 30
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 (q1 q0 ) le registre d'état de l'automate que l'on cherche à construire.
Exemple :
e=0
01
e=1
e=1
00
e=0
10
e=1
e=0
e=1
11
e=0
q1
q0
e
F1 (q1 , q0 , e )
F0 (q1 , q0 , e )
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
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
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
fonction de
transition
e
F
registre d’état
On trouve F0 (q1 , q0 , e ) = q0 ⊕ e , et F1 (q1 , q0 , e ) = q1 ⊕ (q0 e ). Bref, on sait
construire un petit circuit combinatoire qui calcule F (q1 , q0 , e ).
On pourra donc implanter facilement l'automate demandé :
q0
q0
C
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
I
reçoit les n bits du registre d'état, et k signaux codant l'entrée courante ;
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 :
fonction de
entrée
k
transition
F
n
registre d’état
n
n
sortie
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
2
3
4
Circuits élémentaires de mémorisation : les bascules
Verrou (latch)
Bascule (ip-op)
Registres
Automates
Notion d'automate ni
Automate ni synchrone
Banc de registres et RAM
Banc de registres
Généralités sur la RAM
Mémoire SRAM
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 :
#rrA
3
#rrB
3
8
rdataA
8
rdataB
8 registres
8 bits
#rw
3
wdata
8
write
1
1
C
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
I
rdataA en fonction de #rrA,
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
3
décodeur
3 vers 8
#rw
wdata
register 0
8
register 1
8
register 2
8
register 3
8
register 4
8
register 5
8
register 6
8
register 7
8
mux 64 vers 8
3
8
rdataA
mux 64 vers 8
#rrA
#rrB
8
rdataB
3
8
1
C
1
write
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 signie 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 2 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.
m
add
15
SRAM
64 Ki 8 bits
(64 Kio)
8
data
write
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
dont les sorties ne dépendent que des entrées. Ces circuits
permettent d'eectuer les calculs pour les instructions arithmétiques ou logiques.
combinatoires,
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
Téléchargement