CM5

Transcription

CM5
Les circuits logiques
séquentiels
Les registres de mémorisation
• Un registre permet la mémorisation de n bits. Il est donc constitué de n
bascules,mémorisant chacune un bit. L'information est emmagasinée sur un
signal de commande et ensuite conservée et disponible en lecture.
Entrées
Écriture
Lecture
Sorties
Registre de 4 bits commandé par les entrées W et R
Les registres à décalage
Il existe deux types de transmission :
Transmission parallèle : codage spatial.
Transmission série : codage temporel.
Les registres à décalage permettent de passer d’un codage à l’autre. Dans un
registre à décalage les bascules sont interconnectées de façon à ce que l'état
logique de la bascule de rang i puisse être transmis à la bascule de rang i+1 quand
un signal d'horloge est appliqué à l'ensemble des bascules. L'information peut être
chargée de deux manières dans ce type de registre :
• Entrée parallèle : comme dans le cas d'un registre de
mémorisation. En général une porte d'inhibition est nécessaire pour
éviter tout risque de décalage pendant le chargement parallèle.
• Entrée série : l'information est présentée séquentiellement bit
après bit à l'entrée de la première bascule. A chaque signal d'horloge
un nouveau bit est introduit pendant que ceux déjà mémorisés sont
décalés d'un niveau dans le registre.
Les registres à décalage
. série - Sortie parallèle et série :
Entrée
Démonstration
Ce type de registre permet de transformer un codage temporel en un codage
spatial.
1
Registre à
0
décalage
0
0 1 0 0 1
1
La sortie série peut également être utilisée. L'intérêt d'utilisation d'un registre à
décalage en chargement et lecture série réside dans la possibilité d'avoir des
fréquences d'horloge différentes au chargement et à la lecture. Le registre
constitue alors un tampon.
Les registres à décalage
. parallèle et série - Sortie série :
Entrée
Démonstration
Si X = 1
l'entrée parallèle est inhibée et l'entrée série est validée.
Si X = 0
l'entrée série est bloquée et les entrées parallèles sont
validées.
Ce type de registre permet de transformer un codage temporel ou spatial
en un codage temporel.
Les registres à décalage
Entrée parallèle et série - Sortie parallèle et série :
Démonstration
du 4035B
X=0
X=1
Pr = Cr = 1
H =1 :validée
H = 0, Cr=E0, Pr = E0
 Ei = 0 ⇒ (Pr = 1, Cr = 0,) ⇒ Q i = 0

 Ei = 1 ⇒ (Pr = 0, Cr = 1,) ⇒ Q i = 1
Q i = Ei
Les registres à décalage
Registre à décalage à droite et à gauche
<>
Les registres à décalage
Les diverses possibilités sont sélectionnées par les lignes commande S0 et S1.
Considérons la ligne transportant le signal d'horloge aux bascules, elle est
gouvernée par l'expression logique :
(
Clk = H + S 0 ⋅ S1 = H ⋅ S 0 + S1
)
Le signal d'horloge sera donc inhibé si S0 + S1 = 0
Pour sélectionner le chargement parallèle (entrées A, B, C et D) il faut :
S0 +S1 = S0 ⋅S1 = 1
S0 = S1 = 1. Le chargement parallèle se fait sur un front actif
d'horloge.
Les registres à décalage
Pour sélectionner le décalage à droite (entrée E1, sortie QD) : S = 1 et S = 0
0
1
Pour le décalage à gauche (entrée E0, sortie QA) : S = 0 et S = 1
0
1
S0
S1
Fonction
0
0
Registre bloqué
0
1
Décalage à gauche
1
0
Décalage à droite
1
1
Chargement parallèle
Rq : un registre à décalage à droite et à gauche permet d'effectuer des
multiplications et des divisions entières par des puissances de 2.
Les compteurs
Un compteur est un ensemble de n bascules interconnectées par des portes
logiques. Ils peuvent donc mémoriser des mots de n bits. Au rythme d'une
horloge, ils peuvent décrire une séquence déterminée c'est-à-dire occuper une
suite d'états binaires et peut représenter au maximum 2n combinaisons. Ces
états restent stables et accessibles entre les impulsions d'horloge. Le nombre
total N des combinaisons successives est appelé le modulo du compteur.
On a N ≤ 2n. Si N < 2n un certain nombre d'états sont hors du cycle nominal de
fonctionnement.
Les compteurs binaires peuvent être classés en deux catégories :
• les compteurs asynchrones;
• les compteurs synchrones.
De plus on distingue les compteurs réversibles ou compteurs-décompteurs.
Les compteurs synchrones
Soit un compteur modulo 8 comptant en binaire naturel, nous choisissons un codage
permettant de réduire au maximum le CCS :
S2
S1
S0
les sorties Q0, Q1 et Q2 fournissent des signaux périodiques de fréquences
respectivement 2, 4 et 8 plus faibles que celle de H. La division de fréquence est
une des applications des compteurs.
Les compteurs synchrones
(J=K)
En utilisant des bascules JK comme des bascules T
# Top Q2
Q1
Q0
K2=J2
K1=J1
K0=J0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
2
0
1
0
0
0
1
3
0
1
1
1
1
1
4
1
0
0
0
0
1
5
1
0
1
0
1
1
6
1
1
0
0
0
1
7
1
1
1
1
1
1
8=0
0
0
0
-
-
-
K0=J0= 1
K1=J1= Q0
K2=J2= Q1Q0
En généralisant :
Ki = Ji = Qi-1 …..Q0
Ou
Ki = Ji = Ji-1 Qi-1= Ki-1 Qi-1
Les décompteurs synchrones
En utilisant des bascules JK comme des bascules T
# Top Q2
Q1
Q0
K2=J2
K1=J1
K0=J0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
2
1
0
1
0
0
1
3
1
0
0
1
1
1
4
0
1
1
0
0
1
5
0
1
0
0
1
1
6
0
0
1
0
0
1
7
0
0
0
1
1
1
8=0
1
1
1
-
-
-
K0=J0= 1
K1=J1= Q0
K2=J2= Q1Q0
En généralisant :
Ki = Ji = Qi-1 …..Q0
Ou
Ki = Ji = Ji-1 Qi-1= Ki-1 Qi-1
Les compteurs synchrones
Aux deux manières d'exprimer les relations de récurrence des équations de
commutation correspondent deux types de circuits.
• Ki = Ji = Qi-1 …..Q0 est dit à report parallèle
• Ki = Ji = Ji-1 Qi-1 est dit à report série
évite ainsi des portes à multiples entrées
mais limite la fréquence de l’horloge !!!!
X= 0 => Compteur, X = 1 => Décompteur
Compteur Décompteur
à report parallèle
Les compteurs synchrones
Compteur Décompteur
à report série
Si le temps de propagation d’une porte NAND : MAX(TpHL, TpLH) = δ s (15 ns pour TTL)
TH >>6δ
Compteur synchrone
1
T
Q
T
Q
Q0
H
&
T
Q
Q1
&
Q3
T
Q
Q2
Compteur synchrone à report série : Tmin(H) > Tp(bascule) + (n-2) * Tp(porte ET)
Q3
1
H
T
Q
T
Q0
Q
&
Q1
T
Q
&
T
Q
Q2
Compteur synchrone à report parallèle : Tmin(H) > Tp(bascule) + Tp(porte ET)
Compteur synchrone
Compteur en anneau : rapide (pas de porte)
Registre à décalage bouclé
D
H
Q
Q
Q0
D
Q
Q1
D
Q
N bascules : plusieurs cycles de comptage
Beaucoup de cycles piège : obligation
d’ajouter une logique pour les casser (cf
synthèse synchrone) : moins rapide
Q
Q2
Q
000 110
011
100 101
010
001 111
Compteur synchrone
Compteur de Johnson : Le plus rapide (pas de porte)
Registre à décalage bouclé par inversion
D
H
Q
Q
Q0
D
Q
Q1
Q
N bascules : 2 cycles de comptage
Un nominal de longueur 2N-2 états
Un cycle piège de 2 états
D
Q
Q2
Q
000 101
100 010
110
111
011
001
Compteur chaîné asynchrone (principe)
Cascade de diviseurs de fréquence par deux sur fronts montants. Les
bascules n’ont plus la même horloge
1
T
Q
T
Q
T
Q
Décompteur
binaire
H
Q0
H
Q0
Q1
Q2
0
7
6
Q1
5
4
Q2
3
2
...
Structure à éviter car asynchrone
Compteur chaîné asynchrone (principe)
Cascade de diviseurs de fréquence sur fronts descendants
1
T0 Q 0
T1 Q 1
T2 Q 2
Q0
Q1
Q2
H
Compteur
binaire
H
Q0
Q1
Q2
0
1
2
3
4
5
6
...
Structure à éviter car asynchrone
Compteur chaîné asynchrone (principe)
Accumulation des temps de propagation : baisse de la fréquence
Exemple : passage de 7 à 8
H
Q0
tp
Q1
Tmin (H)> n.tp+marge
Q2
Q3
7
6
4
0
8
Si n bascules changent d’état : n-1 états transitoires, par
contre les excitations des bascules sont synchronisées
Les compteurs synchrones (modulo N)
Exemple du compteur décimal 0-9
Compteur synchrone 4 bits en binaire naturel
4 bascules JK
Il va compter jusqu’à 15!
Si J=K : bascules T
4
1
SET
1
J
SET
J
Q1
Q0
~Q
RESET
H
J
Q
K
~Q
2
K
~Q
Q2
RESET
RESET
&
J
Q
K
~Q
5
Q
Q
K
SET
3
&
SET
6
RESET
Q3
Les compteurs synchrones (modulo N)
Q3
Q2
Q1
Q0
0
0
0
0
0
1
0
0
0
1
2
0
0
1
0
3
0
0
1
1
4
0
1
0
0
5
0
1
0
1
6
0
1
1
0
7
0
1
1
1
8
1
0
0
0
9
1
0
0
1
Bouclage
0
0
0
0
Les compteurs synchrones (modulo N)
Remise à l’état initial (0000) pour tous les états hors cycle par une action
sur le reset des bascules : Synthèse risque minimal
(10) (10) = (1010 )( 2 )
(11) (10) = (1011)( 2)
(12) (10) = (1100 )( 2 )
(13) (10) = (1101)( 2)
Etats hors cycle
(14) (10) = (1110 )( 2 )
(15) (10) = (1111)( 2 )
Q0
Q1
Q2
Q3
RESET = Q3(Q2+Q1)
Compteur synchrone
74161 compteur intégré synchrone 4 bits binaire
programmable cascadable de la famille TTL (16 broches (pins))
LD
ENT
ENP
E0-3
74161
CP
CLR
Co
Vcc+Gnd
Q0-3
CP : horloge (front montant)
Q0-3 : sorties du compteur
E0-3 : entrées parallèles (de prog)
CLR : RAZ asynchrone active à 0
LD : chargt parallèle synchrone
actif au niveau bas
prioritaire sur le comptage
ENP/ENT : autorisation de comptage
comptage si ENP.ENT=1
Co : retenue =1 si Q3Q2Q1Q0.ENT=1
(ENT agit sur Co en asynchrone)
Compteur synchrone
Présentation du
74161 ou 74163
Chronogramme
ENP
ENT
CO
Compteur synchrone de (A)(2) à (B)(2)
Utilisation d’un compteur avec chargement parallèle : lorsque le modulo
est détecté, on recharge le compteur (entrée prioritaire)
(E)(2)
Compteur synchrone
H
Détecteur
LD
Q3-0
Détection de B
Q3
Q2
Q1
Q0
Load
&
Si B = 1001 => Load=1
Q3-0= (A)(2)
Compteurs synchrones cascadés
On dispose de compteurs 4 bits, on veut compter sur N bits (N>4)
Exemple (N=12) :
0000 0000
0000 0000
...
0000 0000
0000 0001
0000 0001
...
0000 1111
0001 0000
0000
0001
1111
0000
0001
1111
0000
Il faut 3 compteurs 4 bits
Le premier compte tout le
temps.
Le deuxième ne compte que
quand le premier est à 15.
(le troisième compte quand
premier=15 et deuxième=15)
Compteur LSB (de 0 à 15)
Compteur MSB (de 0 à 15)
Cascadage des compteurs
Compteurs synchrones cascadés
3 techniques dont 2 mauvaises (!!!!)
Cascade asynchrone
1
H
ENP
ENT
Co
ENP
ENT
Co
ENP
ENT
Co
Compteurs synchrones cascadés
Co = Q3.Q2.Q1.Q0.ENT
Cascade synchrone série :
1
H
LSB
ENP
ENT
Co
ENP
ENT
Co
ENP
ENT
Période de H :
Tmin (H)> Tp(Clk/Co) + 2 Tp(Ent/Co)
Co
Compteurs synchrones cascadés
Cascade synchrone parallèle : ENParallèle et ENThru
1
H
ENP
ENT
Co
1
ENP
ENT
Co
ENP
ENT
Période de H :
Tmin > Tp(Clk/Co) + Tp(Ent/Co)
C’est la bonne
technique
Co
Le pipe line
Optimisation de machine séquentielle complexe :
L’architecture pipeline : Extrait du cours du MIT l09-1
Entrée :
Device : machine à laver
Temps : Washerpd= 30 mn
Fonction : laver,essorer
Sortie :
Device : sèche linge
Temps : Drierpd= 60 mn
Fonction : sécher
32
Le pipe line
Approche Traditionnelle (one shot) :
33
Le pipe line
Approche Traditionnelle :
34
Le pipe line
Approche optimisée (pipeline) :
En négligeant les 30 premières minutes
Temps de propagation
Approche traditionnelle :
Approche optimisée :
Fréquence
d’obtention d’un
bac de linge
90 mn
1/90mn
120 mn*
1/60mn
* : les changements ont lieu à chaque fin de lavage
35
Le pipe line
Application aux systèmes logiques séquentielles :
Tp : temps de propagation du circuit,
1/Tp : fréquence.
F et G sont « en attente »
(idle) lorsque H établit son
niveau
En posant : Tp(F)=15ns,
Tp(G)=20ns,
Tp(H)=25ns
Le temps de propagation de ce circuit est de 45ns
36
Le pipe line
Positionnons des bascules synchrones à la sortie de chaque partie :
F et G peuvent traiter Xi+1 alors que
H traite les sorties F(Xi) et G(Xi)
contenu dans les bascules.
Pipeline à 2 étages
Temps de propagation
Approche traditionnelle :
Approche optimisée :
Fréquence
45 ns
1/45 ns
50 ns*
1/25 ns
* : l’élément le plus lent fixe la fréquence de l’horloge
37
Le pipe line
Diagramme d’un pipeline :
Etage du pipeline
Clock
Temps de
chargement du
pipeline
Propagation en diagonale des signaux dans le diagramme
38
Le pipe line
Application aux traitement des instructions :
L’exécution schématique d’une instruction est la suivante :
Fetch, Decode, Execute, Save
1. Chargement d’une instruction de la mémoire (fetch : chercher),
2. Analyse l'instruction (decode : …),
3. Exécution de l’instruction (execute : …)
4. Sauvegarde du résultat (save : …)
Le nombre d’étape peut varier en fonction de l’architecture de processeur
Le pipe line
Pipeline sur une machine de Harvard :
Temps de Traitement
d’une instruction
Clock
Traditionnel
Instruction 1 :
0
1
IF
2
RO
3
4
IF
Instruction 2 :
Pipe line
Instruction 3 :
Instruction 4 :
IF
6
7
EX WB
Instruction 2 :
Instruction 1 :
5
RO
RO
EX WB
IF
RO
EX WB
IF
RO
EX WB
IF
RO
Les inconvénients :
Programmation plus complexe de la structure,
Gestion des interruptions (charge et décharge du pipeline),
Erreur d’exécution (pipeline hazard, boucle, )…
EX WB
EX WB
40
Les mémoires
Les mémoires :
Une mémoire est un dispositif de stockage de l’information. Chaque
information stockée est appelée « donnée » (data). Comme il est possible de
stocker plusieurs données dans une mémoire, il est nécessaire d’organiser le
stockage de celle-ci. Pour cela, on attribut une adresse à chaque case
mémoire. De même, on utilise un signal de validation du circuit mémoire.
Commande
(écriture ou/et lecture)
Sélection
(Chip select)
Donnée
(m bits)
Mémoire
Adresse ( n bits)
Les mémoires
SM : activation de la
bascule sinon état Hiz
Bus
Adresse
Validation
du circuit
Lecture
Bus de
Données
Écriture
Les mémoires : organisation
Schéma du décodeur
d’adresse
4 mots mémoire
=
4 portes ET
Les mémoires : organisation
Une mémoire contenant 512 mots de 4 bits possède 512 portes ET pour réaliser le décodeur…
Largeur du bus de données (n) et d’adresse (k) : n=4 et k=9 (29=512)
Organisation bidimensionnelle : matrice de 64 lignes et 32 colonnes (8*4 bits)
6 bits
=
64 ET
64*8=512
1 bit
Au final :
64 ET
4 (8 ET+1 OU)
100 portes logiques
MUX
3 bits
Multiplexeur 8 vers 1
pour le choix du bit à lire
8 ET
1 OU
8 ET
1 OU
8 ET
1 OU
Donnée 4 bits
8 ET
1 OU
Les mémoires : organisation
Nombre de portes en fonction de la géométrie
Représentation carrée
donne la plus
grande économie
Les mêmes lignes d'adresse peuvent être utilisées pour identifier successivement la ligne puis la
colonne. Cela permet de réduire le nombre de broches de connexion, donc l'encombrement et le
coût des circuits. Cependant cela demande environ deux fois plus de temps par transmettre l'adresse
complète.
Si on cherche à accéder à des informations stockées dans une même ligne il peut être possible de
définir une fois la ligne, puis pour chaque mot de n'avoir à envoyer que l'adresse de la colonne.
Les mémoires : organisation
Si on cherche à accéder à des informations stockées
dans une même ligne il peut être possible de définir
une fois la ligne, puis pour chaque mot de n'avoir à
envoyer que l'adresse de la colonne.
Adresse Ligne (k)
Adresse Colonne (k)
Adresse Colonne (k+1)
CAS
RAR
Data (k)
Temps d’accès data(k)
Data(k+1)
Temps d’accès data(k)
Les mémoires : organisation
Augmentation du nombre de mots
De même la figure suivante montre la réalisation d'un bloc de 4 x 2k mots de n bits à l'aide de
4 boîtiers de 2k x n bits. Il nous faut k+2 lignes d'adresse. Les k bits de bas poids de l'adresse
sont appliqués simultanément sur les 4 boîtiers. Les deux bits de poids forts attaquent un
décodeur à quatre sorties. Chacune de ces quatre lignes permet de sélectionner un boîtier
(entrée de validation du boîtier : CS). Un seul boîtier est alors connecté aux lignes de sortie.
Les mémoires : organisation
Augmentation de la longueur des mots
La figure suivante montre qu'il est aisé d'associer deux boîtiers de 2k mots de n bits pour obtenir
un bloc de 2k mots de 2 n bits. L'adressage doit être appliqué simultanément aux deux circuits,
l'un fournissant les n bits de bas poids et l'autre les n bits de haut poids.
2n
Gestion d’une pile
On veut concevoir une pile de 4 éléments de 3 bits. Il s’agit d’une machine logique synchrone dans laquelle on peut insérer ou extraire
un élément. Il s’agit d’une mémoire qualifiée de LIFO (Last Input, First Output) : on ne peut extraire de la pile que la dernière donnée à
avoir été mémorisée.
Outre une horloge H, le circuit comporte 3 entrées :
E2E1E0 : entrée sur 3 bits que l’on souhaite insérer dans la pile.
W : entrée sur 1 bit qui, lorsqu’elle est à 1, indique que l’on veut insérer la valeur présente sur E2E1E0 au prochain
front d’horloge.
R : entrée sur 1 bit qui, lorsqu’elle est à 1, indique de l’on veut extraire, au prochain front d’horloge, le dernier élément
inséré dans la pile.
Il possède 3 sorties :
S2S1S0 : valeur d’un élément extrait
P : sortie sur 1 bit qui est à 1 quand la pile est pleine (4 éléments insérés et non extraits)
V : sortie sur 1 bit qui est à 1 quand la pile est vide (tous les éléments insérés par le passé ont été extraits).
Si l’on essaie d’insérer un élément quand la pile est pleine ou d’extraire un élément lorsque la pile est vide, il ne se passe rien. De plus,
on considère que la combinaison W=R=1 est interdite.
Pour réaliser ce circuit, on suppose que l’on dispose des composants suivants (dont on ne demande pas le schéma) :
De mémoires contenant 4 mots de 3 bits.
o entrée horloge
o entrée E2-0 : valeur de la donnée à mémoriser
o entrée X2-0 : adresse de la donnée à mémoriser.
o sortie S2-0 : valeur contenue dans la mémoire à l’adresse X2-0.
o entrée :load : commande de mémorisation si load=1, la valeur en entrée est mémorisée sur un front
montant d’horloge à l’adresse X2-0.
un compteur/décompteur 2 bits en binaire naturel.
o entrée horloge
o entrée : c+. Lorsque cette entrée est à 1, la valeur du compteur est incrémentée au prochain front montant
de l’horloge.
o entrée : c- . Lorsque cette entrée est à 1, la valeur du compteur est décrémentée au prochain front montant
de l’horloge.
o entrée
init : cette entrée asynchrone, active à l’état bas, permet d’initialiser la valeur du compteur à
Q1Q0=00.
o sorties N1N0: valeur du compteur.
logigramme
+Vc
cR
0
V
R
&
H
&
ec
+
1
H
Q1
Q0
&P
c
-
≥1V
1
E2-0
W
X1 X0
H
S2-0
Gestion d’une pile
Analyse de machine séquentielle :
K0=J0= 1 : Bascule T
K1=J1=
C+ Q0 ⋅ C− Q0 = C+ Q0 + C− Q0
= C+ Q0 + C− + Q0
Q1+= J1 Q1 + K1Q1 = J1 ⊕ Q1
Gestion d’une pile
Q1+
Q0+
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
10
1
0
1
0
1
10
1
1
1
0
0
C+C-
Q1
Q0
01
0
0
01
0
1
01
1
0
01
1
1
10
0
10
K1
1
01
00
01
01/10
10
11
10
01
Gestion d’une pile
K0=J0= 1 : Bascule T
Porte ET sur C- en NAND
K1=J1=
C+C-
Q1
Q0
K1
Q1+
Q0+
01
0
0
1
1
1
01
0
1
0
0
01
1
0
0
1
01
1
1
1
0
10
0
0
0
1
10
0
1
1
0
10
1
0
1
1
10
1
1
0
0
1
1
1
C+ Q0 ⋅ C− Q0 = C+ Q0 + C− Q0
10
00
01
01
01
10
11
10
01
01
10
10