Upload
independent
View
1
Download
0
Embed Size (px)
Citation preview
Les registres de mémorisation
• Un registre permet la mémorisation de n bits. Il est donc constitué de nbascules,mémorisant chacune un bit. L'information est emmagasinée sur unsignal de commande et ensuite conservée et disponible en lecture.
Entrées
Registre de 4 bits commandé par les entrées W et R
Sorties
Écriture
Lecture
Les registres à décalage
Il existe deux types de transmission :
Les registres à décalage permettent de passer d’un codage à l’autre. Dans unregistre à décalage les bascules sont interconnectées de façon à ce que l'étatlogique de la bascule de rang i puisse être transmis à la bascule de rang i+1 quand
Transmission parallèle : codage spatial .
Transmission série : codage temporel.
logique de la bascule de rang i puisse être transmis à la bascule de rang i+1 quandun signal d'horloge est appliqué à l'ensemble des bascules. L'information peut êtrechargée de deux manières dans ce type de registre :
• comme dans le cas d'un registre demémorisation. En général une porte d'inhibition est nécessaire pouréviter tout risque de décalage pendant le chargement parallèle.
• l'information est présentée séquentiellement bitaprès bit à l'entrée de la première bascule. A chaque signal d'horlogeun nouveau bit est introduit pendant que ceux déjà mémorisés sontdécalés d'un niveau dans le registre.
Entrée parallèle :
Entrée série :
Les registres à décalage
.Entrée série - Sortie parallèle et série :
DémonstrationDémonstration
Ce type de registre permet de transformer un codage temporel en un codagespatial.
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 desfréquences d'horloge différentes au chargement et à la lecture. Le registreconstitue alors un tampon.
0 1 0 0 1
Registre àdécalage
1001
Les registres à décalage
.Entrée parallèle et série - Sortie série :
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 sontvalidées.
Ce type de registre permet de transformer un codage temporel ou spatialen un codage temporel.
Les registres à décalage
Entrée parallèle et série - Sortie parallèle et série :
Démonstration
X = 0Pr = Cr = 1
H =1 :validée
X = 1 H = 0, Cr=E0, Pr = E0
( )( )
1 Q ,1 Cr ,0 Pr 1
0 Q ,0 Cr ,1 Pr 0
i
i
=⇒==⇒==⇒==⇒=
i
i
E
EiE Qi =
du 4035B
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 :
( )1010 H H SSSSClk +⋅=⋅+=Le signal d'horloge sera donc inhibé si S + S = 0
Pour sélectionner le chargement parallèle (entrées A, B, C et D) il faut :
Le signal d'horloge sera donc inhibé si S0 + S1 = 0
1 1010 =⋅=+ SSSS
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) :
Pour le décalage à gauche (entrée E0, sortie QA) :
S0 = 1 et S1 = 0
S0 = 0 et S1 = 1
S0 S1 Fonction
0 0 Registre bloqué0 0
0 1
1 0
1 1
Registre bloqué
Décalage à gauche
Décalage à droite
Chargement parallèle
Rq : un registre à décalage à droite et à gauche permet d'effectuer desmultiplications et des divisions entières par des puissances de 2.
Les compteurs
Un compteur est un ensemble de n bascules interconnectées par des porteslogiques. Ils peuvent donc mémoriser des mots de n bits. Au rythme d'unehorloge, ils peuvent décrire une séquence déterminée c'est-à-dire occuper unesuite d'états binaires et peut représenter au maximum 2n combinaisons. Cesétats restent stables et accessibles entre les impulsions d'horloge. Le nombretotal 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 defonctionnement.
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 codagepermettant de réduire au maximum le CCS :
S2 S1 S0
les sorties Q0, Q1 et Q2 fournissent des signaux périodiques de fréquencesrespectivement 2, 4 et 8 plus faibles que celle de H. La division de fréquence estune des applications des compteurs.
Les compteurs synchrones
# Top Q2 Q1 Q0 K2=J2 K1=J1 K0=J0
0 0 0 0
1 0 0 1
0
0
0
1
1
1
En utilisant des bascules JK comme des bascules T
K0=J0=
K1=J1=
1
Q0
( J = K )
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
8 = 0 0 0 0 - - -
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
K1=J1= Q0
K2=J2= Q1Q0
En généralisant :K i = Ji = Qi-1 …..Q0
OuK i = Ji = Ji-1 Qi-1= Ki-1 Qi-1
Les décompteurs synchrones
# Top Q2 Q1 Q0 K2=J2 K1=J1 K0=J0
0 1 1 1
1 1 1 0
0
0
0
1
1
1
En utilisant des bascules JK comme des bascules T
K0=J0=
K1=J1=
1
Q01 1 1 0
2 1 0 1
3 1 0 0
4 0 1 1
5 0 1 0
6 0 0 1
7 0 0 0
8 = 0 1 1 1 - - -
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
K1=J1=
K2=J2=
Q0
Q1Q0
En généralisant :K i = Ji = Qi-1 …..Q0
OuK i = Ji = Ji-1 Qi-1= K i-1 Qi-1
Les compteurs synchrones
Aux deux manières d'exprimer les relations de récurrence des équations decommutation correspondent deux types de circuits.
• K i = Ji = Qi-1 …..Q0 est dit à report parallèle
• K i = Ji = Ji-1 Qi-1 est dit à report série
évite ainsi des portes à multiples entrées évite ainsi des portes à multiples entrées mais limite la fréquence de l’horloge !!!!
Compteur Décompteurà report parallèle
X= 0 => Compteur, X = 1 => Décompteur
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
H
1 T QQ0 Q1
T Q T QQ2
& T Q
Q3
&
Compteur synchrone à report série : Tmin(H) > Tp(bascule) + (n-2) * Tp(porte ET)Compteur synchrone à report série : Tmin(H) > Tp(bascule) + (n-2) * Tp(porte ET)
H
1 T QQ0 Q1
T Q T QQ2
& T Q
Q3
&
Compteur synchrone à report parallèle : Tmin(H) > Tp(bascule) + Tp(porte ET)
Compteur synchrone
Compteur en anneau : rapide (pas de porte)
D QQ0
D Q D QQ1 Q2
Registre à décalage bouclé
HD Q D Q D Q
Q Q 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
000 110011
100 101010 001 111
Compteur synchrone
HD Q
Q0D Q D Q
Q1 Q2
Compteur de Johnson : Le plus rapide (pas de porte)
Registre à décalage bouclé par inversion
HQ Q Q
N bascules : 2 cycles de comptage Un nominal de longueur 2N-2 étatsUn cycle piège de 2 états
101010
000100110111011001
Compteur chaîné asynchrone (principe)
H
Cascade de diviseurs de fréquence par deux sur fronts montants. Les bascules n’ont plus la même horloge
T Q1 T Q T Q Décompteurbinaire
Q0 Q1 Q2
HQ0
Q1
Q20 7 6 5 4 3 2 ...
Structure à éviter car asynchrone
H
Cascade de diviseurs de fréquence sur fronts descendants
T0
Q0
1 T1 Q1 T2 Q2 Compteurbinaire
Q0
Q1 Q2
Compteur chaîné asynchrone (principe)
HQ0
Q1
Q2
0 1 2 3 4 5 6 ...
Structure à éviter car asynchrone
Accumulation des temps de propagation : baisse de la fréquence
Exemple : passage de 7 à 8
H
Q0 tp
Compteur chaîné asynchrone (principe)
Q1
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
Tmin (H)> n.tp+marge
Les compteurs synchrones (modulo N)
� Exemple du compteur décimal 0-9� Compteur synchrone 4 bits en binaire naturel
� 4 bascules JK
� Si J=K : bascules T
Il va compter jusqu’à 15!
J
K
Q
~Q
SET
RESET
J
K
Q
~Q
SET
RESET
J
K
Q
~Q
SET
RESET
J
K
Q
~Q
SET
RESET
1
2
3&
4
5
6&
Q3
Q2Q1
Q0
H
1
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)
( )( )( ) )2()10(
)2()10(
)2()10(
1100)12(
1011)11(
1010)10(
=
=
=
Remise à l’état initial (0000) pour tous les états hors cycle par une action sur le reset des bascules : Synthèse risque minimal
Etats hors cycle( )( )( )( ) )2()10(
)2()10(
)2()10(
)2()10(
1111)15(
1110)14(
1101)13(
=
=
=
Q0
Q1Q2
Q3
RESET = Q3(Q2+Q1)
Etats hors cycle
Compteur synchrone74161 compteur intégré synchrone 4 bits binaireprogrammable cascadable de la famille TTL (16 broches (pins))
74161ENTENP
Co
E0-3LD
CP : horloge (front montant)Q0-3 : sorties du compteurE0-3 : entrées parallèles (de prog)74161ENP
CP
CLRQ0-3
Vcc+Gnd
CoE0-3 : entrées parallèles (de prog)CLR : RAZ asynchrone active à 0LD : chargt parallèle synchrone
actif au niveau basprioritaire sur le comptage
ENP/ENT : autorisation de comptagecomptage si ENP.ENT=1
Co : retenue =1 si Q3Q2Q1Q0.ENT=1(ENT agit sur Co en asynchrone)
Compteur synchrone de (A)(2) à (B)(2)
H
(E)(2)
Compteur synchrone
Utilisation d’un compteur avec chargement parallèle : lorsque le modulo est détecté, on recharge le compteur (entrée prioritaire)
H
Détection de B
LD Détecteur
&
Q3-0 Q3
Q2
Q1
Q0
Load
Si B = 1001 => Load=1Q3-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 00000000 0000 0001
...
Il faut 3 compteurs 4 bits
Le premier compte tout le temps.
... 0000 0000 11110000 0001 00000000 0001 0001
... 0000 1111 11110001 0000 0000
Le deuxième ne compte que quand le premier est à 15.
(le troisième compte quand premier=15 et deuxième=15)
Cascadage des compteursCompteur MSB (de 0 à 15)
Compteur LSB (de 0 à 15)
Compteurs synchrones cascadés
3 techniques dont 2 mauvaises (!!!!)
Cascade asynchrone
1
ENPENT
Co ENPENT
Co ENPENT
Co
H
Compteurs synchrones cascadés
Cascade synchrone série :
1 ENPENT
Co ENPENT
Co ENPENT
Co
H
Co = Q3.Q2.Q1.Q0.ENTLSB
Tmin (H)> Tp(Clk/Co) + 2 Tp(Ent/Co)
Période de H :
Compteurs synchrones cascadés
Cascade synchrone parallèle :
1 ENPENT
Co ENPENT Co
ENPENT
Co
H
ENParallèle et ENThru
1
Tmin > Tp(Clk/Co) + Tp(Ent/Co)
C’est la bonnetechnique
Période de H :
Entrée : Device : machine à laverTemps : Washerpd= 30 mnFonction : laver,essorer
L’architecture pipeline : Extrait du cours du MIT l09-1
Optimisation de machine séquentielle complexe :
Le pipe line
32
Sortie :
Fonction : laver,essorer
Device : sèche lingeTemps : Drierpd= 60 mnFonction : sécher
En négligeant les 30 premières minutes
Approche optimisée (pipeline) :
Le pipe line
35
Approche traditionnelle :
Approche optimisée :
Temps de propagation
Fréquence d’obtention d’un bac de linge
90 mn
120 mn*
1/90mn
1/60mn
* : les changements ont lieu à chaque fin de lavage
Application aux systèmes logiques séquentielles :
Le pipe line
36
F et G sont « en attente » (idle) lorsque H établit son niveau
Tp : temps de propagation du circuit,1/Tp : fréquence.
En posant : Tp(F)=15ns,Tp(G)=20ns,Tp(H)=25ns
Le temps de propagation de ce circuit est de 45ns
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
Le pipe line
37
Pipeline à 2 étages
Approche traditionnelle :
Approche optimisée :
Temps de propagation
45 ns 1/45 ns
1/25 ns 50 ns*
* : l’élément le plus lent fixe la fréquence de l’horloge
Fréquence
Clock
Etage du pipeline
Diagramme d’un pipeline :
Le pipe line
38
Etage du pipeline
Propagation en diagonale des signaux dans le diagrammeTemps de chargement du pipeline
L’exécution schématique d’une instruction est la suivante :
1. Chargement d’une instruction de la mémoire (fetch : chercher),
Fetch, Decode, Execute, Save
Application aux traitement des instructions :
Le pipe line
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
Pipeline sur une machine de Harvard :
IF RO EX WBInstruction 1 :
Clock0 1 2 3 4 5 6 7
Temps de Traitement d’une instruction
IF RO EX WB
Le pipe line
Instruction 2 :Traditionnel
40
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, )…
IF RO EX WB
IF RO EX WB
IF RO EX WB
Instruction 2 :
Instruction 3 :
Instruction 4 :
IF RO EX WB
Instruction 1 :
Instruction 2 :
IF RO EX WB
Pipe line
Les mémoires : Une mémoire est un dispositif de stockage de l’information. Chaqueinformation stockée est appelée « donnée » (data). Comme il est possible destocker plusieurs données dans une mémoire, il est nécessaire d’organiser lestockage de celle-ci. Pour cela, on attribut une adresse à chaque casemémoire. De même, on utilise un signal de validation du circuit mémoire.
Les mémoires
MémoireDonnée(m bits)
Adresse ( n bits)
(Chip select)Sélection Commande
(écriture ou/et lecture)
Les mémoires
BusAdresse
SM : activation de labascule sinon état Hiz
Validation du circuit
Lecture
Écriture
Bus deDonnées
64*8=512
Les mémoires : organisation
Une mémoire contenant 512 mots de 4 bits possède 512 portes ETpour 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 1 bit64 ET
3 bits
Multiplexeur 8 vers 1 pour le choix du bit à lire
Donnée 4 bitsMUX
Au final :64 ET4 (8 ET+1 OU)
100 portes logiques
1 bit
8 ET1 OU
8 ET1 OU
8 ET1 OU
8 ET1 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 lacolonne. Cela permet de réduire le nombre de broches de connexion, donc l'encombrement et lecoût des circuits. Cependant cela demande environ deux foisplus de temps par transmettre l'adressecomplète.
Si on cherche à accéder à des informations stockées dans une même ligne il peut être possible dedé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éesdans une même ligne il peut être possible de définirune fois la ligne, puis pour chaque mot de n'avoir àenvoyer que l'adresse de la colonne.
Adresse Ligne (k)
CAS
Adresse Colonne (k) Adresse Colonne (k+1)
RAR
Temps d’accès data(k)
Data (k) Data(k+1)
Temps d’accès data(k)
Les mémoires : organisation
Augmentation du nombre de motsDe même la figure suivante montre la réalisation d'un bloc de4 x 2k mots de n bits à l'aide de4 boîtiers de 2k x n bits. Il nous faut k+2 lignes d'adresse. Les k bits de bas poids de l'adressesont appliqués simultanément sur les 4 boîtiers. Les deux bits de poids forts attaquent undé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 motsLa figure suivante montre qu'il est aisé d'associer deux boîtiers de 2k mots de n bits pour obtenirun 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 pileOn 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, 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émoirescontenant 4 mots de 3 bits.o entrée horlogeo entrée E2-0 : valeur de la donnée à mémorisero 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écompteur2 bits en binaire naturel.
o entrée horlogeo 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.
Gestion d’une pile
=⋅ −+ QCQC QCQC +
Analyse de machine séquentielle :
K0=J0=
K1=J1=
1 : Bascule T
=⋅ −+ 00 QCQC00 QCQC −+ +K1=J1=
Q1+= 1111 QKQJ + 11 QJ ⊕=
00 QCQC ++= −+
Gestion d’une pile
C+C- Q1 Q0 K1 Q1+
01 0 0
01 0 1
01 1 0
1
0
Q0+
1
01
1 100 01
01
01 1 1
10 0 0
10 0 1
10 1 0
10 1 1
1 0
1
0
1
0
0
1
0
1
0
11 10
01
01/1010
1
1
1
1