architecture des ordinateurs - laas
Post on 18-Oct-2021
9 Views
Preview:
TRANSCRIPT
IUP SI - L3 Architecture d’un ordinateur UPS
Architecture des ordinateursPlan du cours :
ý Architecture d’un ordinateur
ý Codage des informations
ý Unite Arithmetique et Logique
ý Chemin de donnees
ý Exemple d’architecture
þ Instructions de traitement
þ Instructions de transfert
þ Instructions de branchement
þ Programmation modulaire
ý Synthese de l’unite de commande
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –1–
IUP SI - L3 Architecture d’un ordinateur UPS
Unites fonctionnelles d’un ordinateur :
MemoireProcesseur
bus
Interfaces E/S
– Processeur (CPU) : coeur de l’ordinateur. C’est lui qui traite les informations.– Memoire : stocke les instructions et les donnees des programmes.– Entrees/Sorties : Permettent a l’ordinateur de communiquer avec l’exterieur.
Les differentes unites sont relies par des bus de communication.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –2–
IUP SI - L3 Architecture d’un ordinateur UPS
Processeur :– Unites de calcul :
– Unite Arithmetique et logique (UAL)– Eventuellement, unite de calcul sur les flottants (FPU)
– Memoire interne (registres) : Utilises pour stocker temporairement desinformations
– Unite de commande : Automate qui envoie les ordres aux registres, aux unites decalcul, au bus, a la memoire et aux systeme d’entrees/sorties pour executer lesinstructions d’un programme.
– Bus internes : permettent de tranferer les informations entre la memoire, lesunites de calcul et l’unite de commande.
Remarque : Unites de calcul+Registres+Bus=chemin des donnees
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –3–
IUP SI - L3 Architecture d’un ordinateur UPS
MemoireInstructions et donnees sont codees en binaire et stockees en memoire dans desregistres de n bits constitues de la concatenation de n bascules.
Une memoire est un vecteur de registres, chacun etant repere par une adresse(equivalente a l’indice d’un tableau).
MemoireAdresse
DonneesWRRD
On peut y acceder en lecture ou en ecriture :– En lecture, le signal RD met, sur le bus de donneees, le contenu de la memoire
correspondant a l’adresse presente sur le bus d’adresses.– En ecriture, le signal WR stocke la valeur presente sur le bus de donnees a
l’emplacement correspondant a l’adresse presente sur le bus d’adresses.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –4–
IUP SI - L3 Architecture d’un ordinateur UPS
Entrees-Sorties– Unites d’entree : Clavier, souris, scanner, convertisseur analogique/digital, etc...– Unites de sortie : Ecran, imprimante, convertisseur numerique/analogique, etc...– Unites d’entree/sortie : Transferts d’information de et vers l’ordinateur. Memoires
de masse ou secondaires : disquettes, CD-ROM, DVD, clefs USB, etc...
United’E/S
United’E/S
United’E/S
MemoireProcesseur
bus systeme
bus peripherique
Interfaces E/S(controleurs)
Les unites d’entree/sortie sont reliees au processeur par l’intermediaire d’interfaces.L’acces se fait par des adresses memoires.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –5–
IUP SI - L3 Architecture d’un ordinateur UPS
Bus de communicationUn bus est un ensemble de fils qui assurent la transmission d’informations dememe type vehiculees en parallele. On distingue trois types de bus :
– Bus de donnees : bidirectionnel. Nombre de lignes egal a la capacite detraitement de l’UAL.
– Bus d’adresses : unidirectionnel. Permet de selectionner les informations dans unespace memoire. Pour un bus de m bits, on peut distinguer 2m adresses.
– Bus de commande : assure la synchronisation des flux d’informations sur les busde donnees et d’adresses.
Un bus est une ressource partagee (par les differents boitiers d’E/S notamment).Une fonction de decodage d’adresse permet de selectionner le boitier pouvantacceder au bus a un instant donne.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –6–
IUP SI - L3 Architecture d’un ordinateur UPS
Caracteristiques d’un processeur– nombre de bits de l’Unite Arithmetique et Logique– dimension de l’espace adressable– frequence de fonctionnement (nombre de cycles par seconde)– jeu d’instructions– architecture interne– puissance en Mips (Millions d’instructions par seconde) et en Mflops (Millions
d’operations flottantes par seconde)
Types de processeurs– processeurs “universels” : Exemples Pentium, Athlon, PowerPC, ...– micro-controleurs : interfaces d’E/S integres.– DSP : processeurs specialises en traitement du signal
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –7–
IUP SI - L3 Architecture d’un ordinateur UPS
Architecture multi-niveaux– Niveau Applications :
– Niveau 6 : Langages d’applications (Matlab, langage G, mapple, ...)– Niveau 5 : Langages evolues (Pascal, Ada, C, ...)– Niveau 4 : Langage d’assemblage (assembleur)
– Niveau Systeme :– Niveau 3 : Systeme d’exploitation (Unix, Windows, ...)– Niveau 2 : Macro-machine (langage machine)– Niveau 1 : Micro-machine (micro-instructions)– Niveau 0 : Machine physique (circuits logiques)
Chaque niveau fait appel aux services du niveau inferieur.
Machine virtuelle : L’utilisation d’une machine a un niveau donne peut faireabstraction des niveaux inferieurs.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –8–
IUP SI - L3 Codage des informations UPS
Codage des informations– Les informations que peut traiter un ordinateur sont des suites de bits (0 ou 1), un
codage est donc necessaire pour passer des donnees symboliques etinstructions d’un programme a une forme exploitable par l’ordinateur.
– L’objet de taille minimale accessible est un octet (byte en anglais) soit 8 bits.Le codage de donnees et d’instructions utilise donc des multiples d’octets.
– Notation hexadecimale (base 16 :{0,1,...,E,F}) : permet de representer demaniere plus synthetique un ensemble de bits. 4 bits peuvent etre representespar un seul symbole. Ex : 3EF5h=0011111011110101b
– Codage des caracteres : On utilise essentiellement le codage ASCII qui permetde coder 128 caracteres en utilisant 7 bits. Les codes 0 a 31 sont des codes decontrole.
– Codage des nombres : le codage varie suivant qu’il s’agit d’entiers naturels(non-signes), d’entiers relatifs ou de reels.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –9–
IUP SI - L3 Codage des informations UPS
Codage des entiers naturels (non-signes) sur n bitsOn utilise une numeration positionnelle : chaque symbole du code a un poids quidepend de sa position. Les poids sont croissants de la gauche vers la droite enpuissance de 2 en binaire (puissance de 10 en decimal et de 16 en hexadecimal)
Soit A = an−1an−2...a1a0 un code binaire, la valeur decimale N(A) de l’entiernaturel represente par A peut etre calcule par :
N(A) =
n−1∑
i=0
ai2i
Exemple : le code 0101 0111b (en hexadecimal : 57h) represente l’entier 87 codesur 8 bits.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –10–
IUP SI - L3 Codage des informations UPS
Codage des entiers relatifs (signes) sur n bits– Codage par signe et valeur absolue : le bit le plus a gauche ( bit le plus
significatif) represente le signe du nombre (1 : nombre negatif).
S(A) = (−1)an−1
n−2∑
i=0
ai2i
– Codage par complement a 2 : les nombres negatifs sont representes par leurcomplement a 2. Cela revient a donner un poids negatif au bit le plus significatif.
Z(A) = −an−12n−1
n−2∑
i=0
ai2i
– Codage par excedent : Les nombres sont decales d’une valeur e (en generale = 2n−1 ou e = 2n−1 − 1).
χe(A) =
n−1∑
i=0
ai2i− e
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –11–
IUP SI - L3 Codage des informations UPS
Codage des reels en virgule fixePour un codage sur n bits, on reserve m bits pour coder la partie fractionnaire.
Soit m le nombre de bits codant la partie fractionnaire du reel :
Φm(A) = −an−12n−1−m +
n−2∑
i=0
ai2i−m = 2−mZ(A)
Exemple : Soit A=3E20h representant un reel code sur 16 bits avec m = 7 :
Φ7(A) = 124, 25
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –12–
IUP SI - L3 Codage des informations UPS
Codage des reels en virgule flottanteNorme IEEE P754
En simple precision, le codage se fait sur 32 bits :
31 30 ... 23 22 ... 0
S E F
– Le bit S code le signe du nombre (1 pour un nombre negatif).– La mantisse est recadree entre 1 et 2 (2 exclu) avant d’etre codee. Elle est de la
forme : m = 1, f . Seule la partie fractionnaire f est codee et ceci sur 23 bits(Φ23(F )).
– L’exposant est codee sur 8 bits par excedent 127.
Le code A=S|E|F represente le reel :
R(A) = (−1)S(1 + Φ23(F ))2χ127(E)
Exemple : le nombre 1 a pour code : 3F800000h
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –13–
IUP SI - L3 Codage des informations UPS
Codage des instructions– Types d’instructions :
– Instructions de traitement.– Instructions de chargement/rangement.– Instructions de controle d’execution.
– Format : depend du type d’instruction. Exemples :– traitement :
code operation adresse 1er operande adresse 2eme operande adresse resultat– chargement/rangement :
code operation adresse registre adresse mot en memoire– controle :
code operation code condition adresse de branchement
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –14–
IUP SI - L3 Codage des informations UPS
Codage des caracteres. Code ASCII sur 7 bits
code 0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT NP CR SO SI
0x10 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
0x20 SP ! ” # $ % & ’ ( ) * + , - . /
0x30 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
0x40 @ A B C D E F G H I J K L M N O
0x50 P Q R S T U V W X Y Z [ \ ] ˆ
0x60 ‘ a b c d e f g h i j k l m n o
0x70 p q r s t u v w x y z { — } ˜ DEL
Les caracteres 0 a 31 et 127 sont des caracteres de controle.
Le 8eme bit peut avoir divers usages :– controle de parite– definition de caracteres etendus (accentues par exemple).
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –15–
IUP SI - L3 Codage des informations UPS
Caracteres de controle et proprietes du code asciiï Les lettres de l’alphabet sont dans l’ordre croissant et se suivent : Un tri
alphabetique se ramene a un tri numerique.
ï Le passage de minuscule en majuscule et vice-versa se fait simplement eninversant le bit 5 du code (soit + ou - $20)
ï Le passage d’un chiffre a son code ASCII consiste a rajouter $30 a ce chiffre.
Quelques caracteres de controles :
NUL absence de caractere SOH debut d’entete STX debut de texte
ETX fin de texte EOT fin de transmission ENQ interrogation
ACQ accuse reception BEL sonnette BS retour arriere
HT tabulation horizontale LF ligne suivante VT tabulation verticale
FF page suivante CR retour chariot NAK recu avec erreur
SYN synchronisation CAN annulation SUB substitution
ESC echappement FS separateur de fichier GS separateur de groupe
RS separateur d’article US separateur d’unite DEL effacer
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –16–
IUP SI - L3 Unite Arithmetique et Logique UPS
Unite Arithmetique et logiqueAu coeur du processeur, l’UAL effectue le traitement des informations.
UAL
n n
n
.......m
E2E1
S
pindicateurs
f
C’est un circuit combinatoire qui produit un resultat (S) sur n bits fonction desdonnees presentes sur ses entrees (E1 et E2) et de la fonction a realiser (f) et met ajour des indicateurs.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –17–
IUP SI - L3 Unite Arithmetique et Logique UPS
Fonctions de l’UALL’UAL permet de realiser differents types d’operations sur des donneees de la formeS=f(E1,E2) :
– Des operations arithmetiques : additions, soustractions, ...– Des operations logiques : ou, et, ou exclusif, ...– Des decalages et rotations.
Elle met par ailleurs a jour des indicateurs en fonction du resultat de l’operationeffectuee :
– Z : indicateur mis a 1 si le resultat de l’operation est 0.– N : indicateur mis a 1 pour un resultat negatif (bit le plus a gauche egal a 1).– C : mis a 1 en cas de retenue ou debordement en contexte non signe.– V : mis a 1 en cas de debordement en contexte signe.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –18–
IUP SI - L3 Unite Arithmetique et Logique UPS
Additionneur binaire– Demi-additionneur 1 bit :
s = a⊕ b r = a.b
– Additionneur complet 1 bit :
si = ai ⊕ bi ⊕ ri ri+1 = ai.bi + ((ai ⊕ bi).ri)
– Additionneur n bits a propagation de retenue :
add
s
a b
rradd
s
a b
0
0 0
0
1
1 1
1
2r
add
s
b
rn−1
n−1 n−1
nr
a
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –19–
IUP SI - L3 Unite Arithmetique et Logique UPS
Addition d’entiers naturels– Addition d’entiers codes sur n bits :
N(S) + 2nrn = N(A) + N(B)
Le resultat est exact si rn = 0 (pas de retenue).Soit le bit C (Carry) du registre de condition egal a 0 (C=rn).
– Addition d’entiers codes sur k × n bits (precision multiple).Sequence de k additions en commencant par les poids faibles et en tenantcompte de la retenue (bit C) du niveau precedent.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –20–
IUP SI - L3 Unite Arithmetique et Logique UPS
Addition d’entiers relatifs– On utilise un codage par complement a 2.
Si le mot-code X represente le nombe Z(X), on peut ecrire :Z(X) = N(X)− 2nxn−1
– Soit A et B les codes des nombres Z(A) et Z(B) et S le code du resultat telque Z(S) = Z(A) + Z(B). On montre que le resultat de Z(A) + Z(B) estle meme que le resultat de N(A) + N(B) si
V = rn−1 ⊕ rn = 0
– L’addition d’entiers relatifs est donc identique a celle d’entiers naturels. La seulechose qui change, c’est l’indicateur qui permet de savoir si le resultat est exact (Cen non-signe, V en signe).
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –21–
IUP SI - L3 Unite Arithmetique et Logique UPS
Soustraction– Entiers naturels :
Soit B le complement a 2 de B. N(B) = 2n −N(B). Si on additionne A et Bon obtient S tel queN(S) + 2nrn = N(A) + N(B) = N(A)−N(B) + 2n Le resultat estcelui de la soustraction si rn = 1. Dans ce cas, on calcule C = rn.
– Entiers relatifs :Z(B) = −Z(B) d’ou : Z(A)− Z(B) = Z(A) + Z(B). Le resultat estexact si celui de l’addition est exact soit si V=0.
– En resume, la soustraction se traite de la maniere suivante :– Prendre le complement a 2 de B– l’ajouter a A– Verifier le resultat : C=0 en contexte non-signe, V=0 en contexte signe
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –22–
IUP SI - L3 Unite Arithmetique et Logique UPS
Operations logiquesUne Unite Arithmetique et Logique permet d’executer les fonctions logiques debase : ET (AND), OU (OR), OU EXCLUSIF (XOR), PAS (NOT). Ces fonctions, pourdes mots de n bits sont effectues en parallele. Elles sont obtenus par juxtapositiond’operateurs logiques 1 bit :
ab
i
i
0 1 2fs i
3
La commande f du multiplexeur permet de selectionner l’operation a effectuer.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –23–
IUP SI - L3 Unite Arithmetique et Logique UPS
Operations de decalageLes operations de decalage sont obtenus au moyen d’un multiplexeur situe a lasortie de l’Unite Arithmetique et Logique. Suivant la commande f , le resultat S peutne pas etre decale (f = 0), ou etre decale d’un bit vers la droite (f = 1) ou vers lagauche (f = 2).
0 1 2
dn−1
0 1 2
d1
0 1 2
d0
sss 01n−1
f
s 2s n−2
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –24–
IUP SI - L3 Chemin de donnees UPS
Unite de commande– Automate qui elabore les ordres pour assurer l’execution de chaque instruction.– Peut etre modelise par une machine a etats synchrone.– Machine de Moore : la fonction de sortie ne depend que de l’etat courant.
sortiesfonction de sortie
fonction etat suivantentrees
horloge
registreetat courant etat suivant
– Entrees : code instruction et indicateurs d’etat (C, V, etc...).– Sorties : signaux de commande pour piloter le chemin de donnees.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –25–
IUP SI - L3 Chemin de donnees UPS
Chemins de donnees– Registre : Element de base constitue de n bascules de type D. Permet de
conserver des mots-codes de n bits.
L R R
n
n
E
S
L’activation du signal LR provoque la copie de la donnee presente sur le bus Edans le registre R.
– Bus direct entre registres :
L R
n
L R
R
n
n
Rs
dd
s
L’activation du signal LRdprovoque la copie de la donnee du registre Rs dans le
registre Rd, operation notee : Rd ← Rs.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –26–
IUP SI - L3 Chemin de donnees UPS
MultiplexeurSeule la ligne correspondante au code de selection se retrouve en sortie.
s0 s1
e0
e1
e2
e3
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –27–
IUP SI - L3 Chemin de donnees UPS
Memoire
Decodage
WR RD
Donnee
Adresse
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –28–
IUP SI - L3 Chemin de donnees UPS
Transfert bus→ registre
LR1 LR2
bus
WR
registre 1 registre 2 Memoire
Adresse
Transfert registre→ bus
Memoire
RD
registre 2 registre 3
mux 0 1
registre 1
E
bus
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –29–
IUP SI - L3 Chemin de donnees UPS
Differentes Architectures– Choix pour le stockage transitoire des donnees :
– accumulateurs (registres specialises)– pile– registres generaux– pas de stockage
– Sources de donnees pour l’UAL :– registres/memoire– registres/registres– memoire/memoire
ñ 2 types d’architectures :
– CISC : accumulateurs, calculs registres/memoire– RISC : registres generaux, calculs registres/registres
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –30–
IUP SI - L3 Chemin de donnees UPS
RISC et CISC– Processeurs de type CISC (Complex Instruction Set Computer) : nombreuses
instructions de la plus simple a la plus complexe. Formats tres variables(non-homogene). Decodeur d’instructions et unite de commande complexes.Nombreux modes d’adressage. Faible nombre de registresExemples : familles Intel 80x86 et Motorola 680x0.
– Processeurs de type RISC (Reduced Instruction Set Computer) : Jeud’instructions reduit mais execution plus rapide (moins de cycles d’horloge).Homogeneite du format et regularite de l’execution. Decodeur simple maiscompilateur plus complexe. Nombreux registres.Exemples : PowerPC, Alpha, MIPS, Sparc, etc..
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –31–
IUP SI - L3 Chemin de donnees UPS
Von Neumann vs Harvard
Architecture de Harvard
CPU
adressesdonnees
adressesinstructions
instructions donnees
memoiredonnees
memoireinstructions
Architecture de Von Neumann
CPU
bus adresses
bus donnees
Memoire
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –32–
IUP SI - L3 Exemple d’architecture UPS
Exemple d’architecture d’un processeurLe processeur pris comme exemple d’etude comporte :– Une Unite Arithmetique et Logique traitant des mots de 16 bits.– Une banque de 16 registres generaux de 16 bits relies par deux bus de donnes
Yi et Yj aux entrees E1 et E2 de l’UAL– Un bus de donnees bidirectionnel de 16 bits DBUS– Un bus d’adresses de 12 bits ABUS (Espace adressable : 8 Ko)– Un registre PC contenant l’adresse de la prochaine instruction a executer.– Un registre IR contenant le code de l’instruction a executer– Un registre SP contenant l’adresse du sommet de la pile systeme– Un registre d’indicateurs d’etats I.– Une unite de commande generant les divers signaux de controle.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –33–
IUP SI - L3 Exemple d’architecture UPS
Jeu d’instructionsLe jeu d’instructions que l’on veut fournir au processeur est divise en 4 familles :
1. Instructions de traitement : operations arithmetiques et logiques effectuees parl’UAL entre registres (pas d’operations directement avec la memoire)
2. Instructions de chargement/rangement : instructions permettant des transfertsregistre/registre et registre/memoire.
3. Instructions de branchement : branchements conditionnels et inconditionnel.
4. Instructions pour la programmation modulaire : gestion de la pile systeme,sous-programmes et interruptions.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –34–
IUP SI - L3 Exemple d’architecture UPS
Fonctions de l’UALf S fonction f S fonction
0 0 mise a zero 8 E1 complement a 1
1 E1+E2 addition 9 E1.E2 ET logique
2 E1+E2+C addition avec retenue A E1+E2 OU logique
3 E1-E2 soustraction B E1⊕ E2 OU exclusif
4 E1-E2+C soustraction avec retenue C ←−E1 decalage a gauche
5 E1+1 incrementation D −→E1 decalage a droite
6 E1-1 decrementation E c©←−E1 rotation a gauche via C
7 -E1 negation F −→E1 c© rotation a droite via C
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –35–
IUP SI - L3 Exemple d’architecture UPS
R[15]
R[1]R[0]
Yi
Yj
WRF
Dec
odag
e
15
0
15
016
i
j
16
4
Banque de registres
Din
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –36–
IUP SI - L3 Exemple d’architecture UPS
Recherche et decodage des instructions– Recherche de l’instruction en memoire (etat R1) :
– L’adresse de l’instruction dans PC est sur le bus d’adresses ABUS– L’activation du signal RD, met sur DBUS le code de l’instruction– Le signal LR charge le contenu de DBUS dans le registre IR– Le signal LPC charge le compteur PC avec sa valeur incremente de 1 pour
preparer la recherche de l’instruction suivante.Pendant l’etat R1, les sorties actives sont RD, LR et LPC .Le signal d’horloge fait passer l’unite de commande de l’etat R1 a l’etat R2. Lesoperations : IR←M [PC] et PC ← PC + 1 (notation RTL) sont effectivesau moment du changement d’etat.
– Decodage de l’instruction (etat R2) : L’analyse du contenu de IR par l’unite decommande permet de generer les signaux permettant d’executer l’instruction
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –37–
IUP SI - L3 Exemple d’architecture UPS
L IR
E1
S
E2
H
Commande
Unitede
+
ABUS
12LPC
L IR
LPC
Processeur V.1
16
WR RD
Memoire
16
f4
Registres
Z N V C
PC
SP
IR
DBUS
WRRD
+1
I
12
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –38–
IUP SI - L3 Exemple d’architecture UPS
Machine a etats pour la recherche d’instructions
R1
R2
IR<−M[PC], PC<− PC+1H
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –39–
IUP SI - L3 Exemple d’architecture UPS
-
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –40–
IUP SI - L3 Instructions de traitement UPS
Format des instructions de traitementLes instructions de traitement sont effectuees par l’Unite Arithmetique et Logique.Ce sont des operations du type : R[i]← f(R[i], R[j]) codees sur 16 bits suivantle format (appele format a) :
15...12 11...8 7...4 3...0
c.o. c.c.o i j
– c.o : code operatoire. Egal a 0 pour toutes les instructions de traitement(instruction generique).
– c.c.o. : complement au code operatoire. Permet de selectionner l’operation aeffectuer. Signal f de l’UAL.
– i : indice du registre contenant le 1er operande– j : indice du registre contenant le second operande
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –41–
IUP SI - L3 Instructions de traitement UPS
Jeu d’instructions de traitementc.o. c.c.o mnemonique fonction
0 0 clr Ri R[i]← 0
0 1 add Ri,Rj R[i]← R[i] + R[j]
0 2 adc Ri,Rj R[i]← R[i] + R[j] + C
0 3 sub Ri,Rj R[i]← R[i]−R[j]
0 4 sbc Ri,Rj R[i]← R[i]−R[j]− C
0 5 inc Ri R[i]← R[i] + 1
0 6 dec Ri R[i]← R[i]− 1
0 7 neg Ri R[i]← −R[i]
0 8 comp Ri R[i]← R[i]
0 9 and Ri,Rj R[i]← R[i].R[j]
0 A or Ri,Rj R[i]← R[i] + R[j]
0 B xor Ri,R[j] R[i]← R[i]⊕R[j]
0 C lsl Ri R[i]←←−−R[i]
0 D lsr Ri R[i]←−−→R[i]
0 E rol Ri R[i]←←−−R[i] via C
0 F ror Ri R[i]←−−→R[i] via C
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –42–
IUP SI - L3 Instructions de traitement UPS
L IR
E1
S
E2
H
EUAL
L IR
LPC
EUALL IWRF
ijf
WRRD
Yj
Commande
Unitede
+
ABUS
12LPC
WRF
SPL
L I
Processeur V.2
16
WR RD
Memoire
16
f4
4
4
16
16
16
Registres
i
j
Y
Din
i
Z N V C
PC
SP
4
IR
DBUS
+1
12
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –43–
IUP SI - L3 Instructions de traitement UPS
Analyse des instructions de traitementcommande actions
i=IR(7..4) Yi ← R[i], E1← Yi
j=IR(3..0) Yj ← R[j], E2← Yj
f=IR(11..8) S ← f(E1, E2)
EUAL = 1 DBUS ← S, Din ← DBUS
WRF = 1 R[i]← Din
LI = 1 maj indicateurs
Machine a etats
H
HH
R1
R2
IR<−M[PC], PC<− PC+1
E0c.o.=0
R[i]<−f(R[i],R[j])
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –44–
IUP SI - L3 Instructions de transfert UPS
Transferts de donnees– Operations de l’UAL : registres→ registres– Transferts :
– registre→ registre– registre→ memoire– memoire→ registre
Modes d’adressage– Adressage direct de registre : R[i]← R[j].– Adressage absolu implicite : R[0]←M [adresse] ou M [adresse]← R[0]
– Adressage indirect : R[i]←M [R[j]] ou M [R[j]]← R[i]
– Adressage immediat : R[i]← valeur
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –45–
IUP SI - L3 Instructions de transfert UPS
Formats des instructions de transfert15...12 11...8 7...4 3...0
a : c.o. 0 i j
15...12 11...0
b : c.o. adresse
15...12 11...8 7...4 3...0
c : c.o. 0 i 0
valeur
Jeu d’instructionsformat c.o. mnemonique fonction
a 1 move Ri,Rj R[i]← R[j]
b 2 load adresse R[0]← M [adresse]
b 3 store adresse M [adresse]← R[0]
a 4 load Ri,[Rj] R[i]← M [R[j]]
a 5 store [Rj],Ri M [R[j]]← R[i]
c 6 load Ri,valeur R[i]← valeur
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –46–
IUP SI - L3 Instructions de transfert UPS
Modifications de l’architecturePour effectuer les instructions de transfert qui viennent d’etre definies, desameliorations doivent etre apportees a l’architecture de notre processeur :
– Il faut pouvoir connecter Ri et Rj en sortie sur DBUS. On rajoute pour cela lesportes 3 etats commandees par ERi et ERj .
– Le bus d’adresses ABUS doit pouvoir etre alimente par Rj (adressage indirect) oupar les 12 bits de poids faible du registre IR (adressage absolu). On rajoute pourcela le multiplexeur muxAd.
Ceci conduit a la version 3 de notre processeur.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –47–
IUP SI - L3 Instructions de transfert UPS
L IR
E1
S
E2
H
EUAL
L IR
LPC
EUALL IWRF
ijf
WRRD
Yj
E Ri
E Rj
E Ri
Commande
Unitede
+
ABUS
12LPC
E Rj
WRF
SPL
L I
Processeur V.3
16
WR RD
Memoire
16
f4
5
4
4
16
16
16
Registres
i
j
Y
Din
i
muxAd
Z N V C
2
1
0PC
SP
muxAd
IR(11..0)
4
IR
DBUS
+1
12
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –48–
IUP SI - L3 Instructions de transfert UPS
Analyse des instructions (1)E1 : R[i]← R[j]
– On selectionne R[j] et on le relie a DBUS : j=IR(3..0), ERj = 1
– On selectionne R[i] et on copie DBUS dedans : i=IR(7..4), WRF = 1
E2 : R[0]←M [adresse]– On place adresse contenue dans IR sur ABUS : muxAd=1– on place la donnee (M(adresse)) sur DBUS : RD=1– On selectionne R[0] et on copie DBUS dedans : i=0, WRF = 1
E3 : M [adresse]← R[0]– On place adresse contenue dans IR sur ABUS : muxAd=1– On selectionne R[0] et on le connecte a DBUS : i=0, ERi = 1
– On copie DBUS dans M [adresse] : WR=1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –49–
IUP SI - L3 Instructions de transfert UPS
Analyse des instructions (2)E4 : R[i]←M [R[j]]– On selectionne R[j] et on le connecte a ABUS : j=IR(3..0), muxAd=2– On place M[R[j]] sur DBUS : RD=1– On selectionne R[i] et on copie DBUS dedans : i=IR(7..4), WRF = 1
E5 :M [R[j]]← R[i]– On selectionne R[i] et on le connecte a DBUS : i=IR(7..4), ERi = 1
– On selectionne R[j] et on le connecte a ABUS : j=IR(3..0), muxAd=2– On effectue l’ecriture en memoire (M [ABUS]← DBUS) : WR=1E6 :R[i]← valeur
– PC est connecte a ABUS, on connecte M[PC] a DBUS : muxAd=0, RD=1– On selectionne R[i] et on ecrit dedans : i=IR(7..4), WRF = 1
– On incremente PC pour l’instruction suivante : LPC = 1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –50–
IUP SI - L3 Instructions de transfert UPS
H
HH
R1
R2
IR<−M[PC], PC<− PC+1
E0c.o.=0
R[i]<−f(R[i],R[j])
c.o=6
c.o=1
c.o.=2
c.o.=3
c.o.=4
c.o.=5
E6
E5
E4
E3
E2
E1R[i]<−R[j]
R[0]<−M[adresse]
M[adresse]<−R[0]
R[i]<−M[R[j]]
M[R[j]<−R[i]
R[i]<−M[PC], PC<−PC+1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –51–
IUP SI - L3 Instructions de transfert UPS
Resume des signaux de commande :– E0 : muxAd=0, i=IR(7..4), j=IR(3..0), f=IR(11..8), EUAL = 1, WRF = 1,
LPC = 1
– E1 : j=IR(3..0), ERj = 1, i=IR(7..4), WRF = 1
– E2 : muxAd=1, RD=1, i=0, WRF = 1
– E3 : muxAd=1, i=0, ERi = 1, WR=1– E4 : j=IR(3..0), muxAd=2, RD=1, i=IR(7..4), WRF = 1
– E5 : i=IR(7..4), ERi = 1, j=IR(3..0), muxAd=2, WR=1– E6 : muxAd=0, RD=1, i=IR(7..4), WRF = 1, LPC = 1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –52–
IUP SI - L3 Instructions de branchements UPS
Instructions de ruptures de sequencePrincipe : Si une condition est verifiee : sauter a une adresse specifiee
Sinon : continuer en sequence.
cond?faux
vrai
suite
– Condition de branchement : basee sur les indicateurs mis a jour par l’UAL(Z,N,V,C).
– Adresse de branchement : on veut coder l’instruction sur un seul mot-code (16bits). Or, c.o : 4 bits, adresse : 12 bits. Il faudrait un c.o. different pour chaque test.Solution choisie : On utilise 3 bits (c.c.o) pour coder le test (8 possibilites) et onne code qu’un deplacement relatif sur 9 bits (-256 a +255).
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –53–
IUP SI - L3 Instructions de branchements UPS
Format d’instruction :format c :
15...12 11...9 8...0
c.o. c.c.o deplacement
(deplacement est un entier relatif code sur 9 bits.)
Jeu d’instructions :c.o. c.c.o. mnemonique condition
7 0 bra deplacement 1
7 1 bns deplacement N
7 2 bvs deplacement V
7 3 beq deplacement Z
7 4 blo deplacement C
7 5 blt deplacement N⊕ V
7 6 bls deplacement C + Z
7 7 ble deplacement Z +(N⊕ V)
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –54–
IUP SI - L3 Instructions de branchements UPS
Interpretation des conditions de branchementGeneralement, une instruction de branchement conditionnel est precede d’uneoperation de comparaison ente 2 registres c’est a dire une soustraction : A-B.
Les conditions de saut peuvent alors etre interpretees ainsi :
– beq : branchement si A=B (A-B=0 d’ou Z=1)– blo : branchement si A < B en contexte non-signe– blt : branchement si A < B en contexte signe– bls : branchement si A≤ B en contexte non-signe– ble : branchement si A≤ B en contexte signe
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –55–
IUP SI - L3 Instructions de branchements UPS
Modifications de l’architectureL’instruction de branchement (instruction generique) peut etre execute de la manieresuivante :
– On calcule la condition a l’aide d’un circuit combinatoire :Z N V C
c.c.o.=IR(9..11)Calcul condition
conditionCe calcul est fait dans l’unite de commande.
– On rajoute la possibilite d’additionner PC avec les bits 0..9 de IR (deplacement) :c’est le role du multiplexeur mux1.
– Le deplacement etant un entier relatif sur 9 bits, on doit l’etendre a 12 bits pourconserver l’information de signe (circuit EXT).
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –56–
IUP SI - L3 Instructions de branchements UPS
L IR
E1
S
E2
H
EUAL
L IR
LPC
EUALL IWRF
ijf
WRRD
Yj
E Ri
E Rj
E Ri
Commande
Unitede
+
ABUS
12LPC
E Rj
WRF
SPL
L I
Processeur V.4
16
WR RD
Memoire
16
f4
5
4
4
16
16
16
Registres
i
j
Y
Din
i
muxAd
Z N V C
mux1
2
1
0PC
SP
muxAd
0
+1 EXT
IR(8..0)
mux11
IR(11..0)
4
IR
DBUS
12
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –57–
IUP SI - L3 Instructions de branchements UPS
Analyse de l’instructionSi condition=1, l’execution de l’instruction peut etre representee, en notation RTL,par : PC← PC+deplacement.
Les signaux de commande sont donc : mux1=1 et LPC = 1.
Dans le cas contraire, il n’y a rien a faire.
On peut representer ceci par la machine a etats :
H
HH
E7PC<−PC+deplacement
c.o=7condition=1
R1
IR<−M[PC], PC<− PC+1
E0c.o.=0
R[i]<−f(R[i],R[j])
c.o.=7 et condition=0
R2
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –58–
IUP SI - L3 Programmation modulaire UPS
Programmation modulaireSous-programmes, fonctions.
Principe : Interrompre le programme en cours pour executer un sous-programmepuis revenir au programme en cours (programme appelant).
Programmeappelant
Instruction
jsr
rts
Sous−Programme
Necessite de stocker l’adresse de retour.
Registre specialise : un seul niveau de sous-progamme possible.
ñ Utilisation d’une structure de donnees de type pile
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –59–
IUP SI - L3 Programmation modulaire UPS
Pile systemeStructure de donnees de type LIFO implementee en memoire.
Branchement a un sous-programme : empilage de l’adresse de retour
Retour du sous-programme : depilage de l’adresse de retour
Pointeur de pile : registre SP contenant l’adresse du sommet de la pile.
Implementation de la pile : adresses hautes (Ex : FFFh) et empilage vers lesadresses basses.
SPFFFFFEFFD...
valeur 1 valeur 1 valeur 1valeur 2 SP
SP
depilageempilage
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –60–
IUP SI - L3 Programmation modulaire UPS
Formats des instructions de pile15...12 11...8 7...4 3...0
a : c.o. 0 i 0
15...12 11...0
b : c.o. adresse
Jeu d’instructionsformat c.o. mnemonique fonction
b 8 jsr adresse saut au sous-programme adresse
a 9 rts retour d’un sous-programme
a A push Ri M [SP ]← R[i], SP ← SP + 1
a B pop Ri SP ← SP + 1, R[i]←M [SP ]
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –61–
IUP SI - L3 Programmation modulaire UPS
Modification de l’architecturePour implementer les instructions pour la programmation modulaire, il faut :
– Pouvoir relier SP a ABUS : rajout de l’entree 3 de muxAd.– Pouvoir incrementer et decrementer SP : rajout de mux2 et d’une entree sur
mux1.– Pouvoir charger ou ranger PC en memoire : rajout de mux3 et de la porte 3 etats
commandee par EPC .– Pouvoir connecter la sortie de IR sur DBUS : rajout de la porte 3 etats
commandee par EIR.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –62–
IUP SI - L3 Programmation modulaire UPS
L IR
E1
S
E2
H
EUAL
L IR
LPC
EUALL IWRF
ijf
WRRD
Yj
E Ri
E Rj
E Ri
Commande
Unitede
+
ABUS
12LPC
E Rj E PCWRF
SPL
L I
Processeur V.5E PC
E IR
E IR
16
WR RD
Memoire
16
f4
5
4
4
16
16
16
Registres
i
j
Y
Din
i
muxAd
Z N V C
mux1
2
1
0PC
SP3
muxAd
0
+1 EXT
IR(7..0)
mux11 2
−1
0 1mux2
IR(11..0)0 1mux3
mux3mux2
4
IR
DBUS
12
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –63–
IUP SI - L3 Programmation modulaire UPS
Analyse des instructions (1)jsr adresse
L’instruction doit realiser, en notation RTL :– Sauvegarde de l’adresse de retour sur la pile M [SP ]← PC et decrementation
de la pile : SP ← SP − 1.Les signaux de commande sont donc : muxAd=3, EPC = 1, WR=1 ainsi que :mux1=2, mux2=1, LSP = 1 et sont generes dans l’etat E81.
– Branchement a la 1ere instruction du sous-progammme : PC ← IR(11..0). Letransit de IR vers PC se fait par DBUS. Il faut pour cela generer les commandes :mux3=1, EIR = 1 et LPC = 1. C’est fait dans l’etat E82.
rts L’instruction doit– Incrementer SP : mux1=0, mux2=1, LSP = 1 (etat E91)– Mettre M[SP] dans PC : muxAd=3, RD=1, mux3=1, LPC = 1 (etat E92)
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –64–
IUP SI - L3 Programmation modulaire UPS
Analyse des instructions (2)push Ri : Pour realiser M [SP ]← R[i] il faut :– Selectionner R[i] : i=IR(7..4), et le connecter a DBUS : ERi = 1,– connecter SP a ABUS : muxAd=3,– envoyer un ordre d’ecriture a la memoire : WR=1,– decrementer SP : mux1=2, mux2=1, LSP = 1.pop Ri : Pour realiser R[i]←M [SP ] il faut :– incrementer SP : mux1=0, mux2=1, LSP = 1 puis :– connecter SP a ABUS : muxAd=3,– envoyer l’ordre de lecture a la memoire : RD=1,– selectionner R[i] et charger DBUS dedans : i=IR(7..4), WRF = 1
Cette instruction prend 2 cycles (etats EB1 et EB2).
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –65–
IUP SI - L3 Programmation modulaire UPS
Machine a etats
H
HH
M[SP]<−PC, SP<−SP−1c.o=8 E81 E82
PC<−adresse
SP<−SP+1c.o=9 E91 E92
PC<−M[SP]
M[SP]<−R[i], SP<−SP−1c.o=A EA
EB1 EB2R[i]<−M[SP]
c.o=BSP<−SP+1
R1
IR<−M[PC], PC<− PC+1
E0c.o.=0
R[i]<−f(R[i],R[j])R2
push
jsr
rts
pop
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –66–
IUP SI - L3 Interruptions UPS
Interruptions materielles– Une interruption consiste a interrompre le programme en cours (tache de fond)
pour executer un sous-programme totalement independant.– Une interruption materielle est provoquee par un evenement externe provenant
d’une unite peripherique (Exemple : appui d’une touche du clavier).– Elle se materialise sur notre processeur par l’activation d’une ligne relie a l’unite
de commande du processeur (ligne int).– Le sous programme a executer est localisee a une adresse fixee par le
concepteur du systeme (vecteur d’interruption).– L’interruption du programme ne peut se faire qu’a la fin de l’execution en cours
(retour vers l’etat R1).– Le registre d’indicateurs (I) doit etre sauvegarde sur la pile avant le depart en
interruption et restaure au retour.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –67–
IUP SI - L3 Interruptions UPS
Masque d’interruptions– Le depart en interruption consiste a charger le pointeur de programme PC avec
l’adresse du sous programme d’interruption apres la fin d’une instruction et avantle retour a l’etat R1 (recherche de la prochaine instruction).
– La ligne de demande d’IT (int) n’est desactivee qu’a la fin du SP d’IT. Il fautdonc rajouter un indicateur indiquant que l’on est en train de traiter une demanded’IT. C’est le role de l’indicateur IE.
– Si IE=1 et int=1, on se deroute vers le SP d’IT et on met IE a 0.Sinon (IE=0 ou int=0), on traite les instructions normalement.
– A la fin du SP d’IT, on remet a 1 l’indicateur IE pour pouvoir traiter la prochaineinterruption.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –68–
IUP SI - L3 Interruptions UPS
Modification de l’architecture– on rajoute la ligne d’entree int– on rajoute le bit IE au registre d’indicateurs I. Ce bit peut etre mis a 1 (signal SIE)
ou a 0 (signal CIE)– on connecte le registre I au bus de donnees en lecture et ecriture : rajout du
multiplexeur muxI et de de la porte 3 etats EI .– on rajoute une entree au multiplexeur muxAd fixant l’adresse du vecteur
d’interruptions.
“Instruction” d’interruption
notation RTL Etat signaux de commande
M [SP ]← PC, SP ← SP − 1 I1 muxAd=3, EP C = 1, WR=1 mux1=2, mux2=1, LSP = 1
M [SP ]← I , SP ← SP − 1 I2 muxAd=3, EI = 1, WR=1 mux1=2, mux2=1, LSP = 1
PC ← addIT , IE ← 0 I3 muxAD=4, RD=1, mux3=1, LP C = 1, CIE=1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –69–
IUP SI - L3 Interruptions UPS
L IR
E1
S
E2
H
EUAL
L IR
LPC
EUALL IWRF
ijf
WRRD
Yj
E Rj
E Ri
Commande
Unitede
+
ABUS
12LPC
E Rj E PCWRF
SPL
L I
Processeur V.6E PC
C IE
E I
E Ri
E I
E IR
E IR
S IE
16
WR RD
Memoire
16
f4
5
4
4
16
16
16
Registres
i
j
Y
Din
i
muxAd
Z N V C
mux1
2
1
0PC
SP3
muxAd
0
+1 EXT
IR(8..0)
mux11 2
−1
0 1mux2
IR(11..0)0 1mux3
mux3mux2
4
IR
DBUS
12
muxI 1 0
IE
muxIint
4AddIT
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –70–
IUP SI - L3 Interruptions UPS
Instructions supplementairesformat c.o. mnemonique fonction
a C sei Autorisation interruptions
a D cli Interdiction interruptions
a E rti retour d’interruption
Analyse des instructionsinstruction notation RTL Etat signaux de commande
sei IE ← 1 EC SIE = 1
cli IE ← 0 ED CIE = 1
rti SP ← SP + 1 EE1 mux1=0, mux2=1, LSP = 1
I ← M [SP ], SP ← SP + 1 EE2 muxAd=3, RD=1, muxI=1, LI = 1
mux1=0, mux2=1, LSP = 1
PC ← M [SP ] EE3 muxAd=3, RD=1, mux3=1, LP C = 1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –71–
IUP SI - L3 Interruptions UPS
Machine a etats
HH
c.o=C ECIE<−1
c.o=D EDIE<−0
R1
IR<−M[PC], PC<− PC+1
E0c.o.=0
R[i]<−f(R[i],R[j])R2
c.o=E EE1PC<−M[SP]
EE3SP<−SP+1
EE2
I<−M[SP]SP<−SP+1
I3 I2
I<−M[SP]SP<−SP−1
PC<−M[SP]SP<−SP−1 I1
PC<−addITIE<−0
H
int=1 et IE=1
int=0 ou IE=0
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –72–
IUP SI - L3 Interruptions UPS
Interruptions logicielles– Une interruption logicielle est une interruption provoquee par le programmeur
(instruction trap). On parle aussi de “trappe logicielle”.– Une difference avec un sous-programme (instruction jsr) est qu’une trappe
correspond a une adresse pre-fixee (numero de trappe correspondant a uneentree d’un vecteur d’interruption)
– Elle permet d’executer une procedure du systeme d’exploitation de manieretransparente.
– Comme une IT materielle, une trappe logicielle provoque la sauvegarde dans lapile du registre d’indicateurs I.
Pour notre processeur, le codage choisi et de format b qui permet de coderl’adresse dans l’instruction. En general, c’est un numero qui est code dansl’instruction a partir duquel une adresse et calculee.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –73–
IUP SI - L3 Interruptions UPS
Instruction de trappe :
c.o instruction notation RTL Etat signaux de commande
F trap adresse M [SP ]← PC, SP ← SP − 1 EF2 muxAd=3, EP C = 1, WR=1
mux1=2, mux2=1, LSP =1
M [SP ]← I , SP ← SP − 1 EF1 muxAd=3, EI = 1, WR=1
mux1=2, mux2=1, LSP =1
PC ← IR(11..0) EF3 muxAd=1, RD=1, mux3=1, LP C = 1
EF1PC<−adresse
EF3SP<−SP−1
EF2
M[SP]<−ISP<−SP−1
c.o=F
M[SP]<−PC
H IR<−M[PC], PC<− PC+1
R2
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –74–
IUP SI - L3 Unite de commande UPS
Synthese de l’unite de commandeL’unite de commande a ete modelisee comme une machine a etats synchrone.Deux solutions peuvent etre mises en oeuvre pour la realiser :
ý Synthese par PLA : Solution utilisee dans les processeurs de type RISC.– Peu d’instructions ï complexite limitee– Rapidite ï grande frequence de fonctionnementý Synthese par Micro-Programmation : processeurs de type CISC.– synthese par PLA trop complexe.– evolutivite plus grande.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –75–
IUP SI - L3 Unite de commande UPS
Programmable Logic ArrayMatrices de portes ET et OU permettant de realiser des fonctions logiques de typeSIGMA-PI. Exemple :
c
b
a
f1f2
f1 = a.b + a.b + a.c
f2 = a.b.c + a.b + a.c
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –76–
IUP SI - L3 Unite de commande UPS
Synthese par PLAApplication a une machine de Moore synchrone :
MatriceET
OUMatrice
entrees
etat courant
etat suivant
sorties
termesproduitsHorloge registre
– Codage des etats ï fonction etat suivant=f(etat present,entrees)– Sorties : ne dependent que de l’etat present : signaux de commandes– Entrees : code instruction...
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –77–
IUP SI - L3 Unite de commande UPS
Fonction Etat SuivantEtape 1 : codage des etats : La solution la plus simple est de coder les etats de lamachine a etats par des codes binaires croissants en partant de R1.
Etats de la MEF : R1, R2, E0, E1, E2, E3, E4, E5, E6, E7, E81, E82, E91, E92, EA,EB1, EB2, EC, ED, EE1, EE2, EE3, EF1, EF2, EF3, I1, I2, I3. Soit 28 etats. Il fautdonc 5 bits pour coder un etat.
Etape 2 : On construit un tableau dont chaque ligne represente une transition de lamachine a etat dans laquelle on code l’etat suivant en fonction de l’etat courant etdes entrees (code operatoire : c.o. et condition).
Demande d’interruption : dans le cas d’une demande d’IT, l’etat suivant depend dela prise en compte ou pas de la demande. Si une demande doit etre prise encompte, l’etat suivant est R1 sinon, c’est I1.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –78–
IUP SI - L3 Unite de commande UPS
Etat code c.o. cond etat suiv. code etat suiv. code
courant IR(15..12) si IE.int=0 si IE.int=1
R1 00h - - R2 01h R2 01h
R2 01h 0 - E0 02h E0 02h
R2 01h 1 - E1 03h E1 03h
... ... ... ... ... ... ... ...
R2 01h 7 0 R1 00h R1 00h
R2 01h 7 1 E7 08h E7 08h
... ... ... ... ... ... ... ...
E0 02h - - R1 00h I1 19h
E1 03h - - R1 00h I1 19h
... ... ... ... ... ... ... ...
I1 19h - - I2 1Ah I2 1Ah
... ... ... ... ... ... ... ...
I4 1Ch - - R1 00h R1 00h
Bilan : 5 fonctions logiques a 11 entrees.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –79–
IUP SI - L3 Unite de commande UPS
Signaux de commandeA chaque etat est associe des signaux de commandes a activer, par exemple pourR1 : RD=1, LR = 1, LPC = 1, muxAD=0.
A partir de la, il faut determiner l’expression logique de chaque signal de commandeen fonction du code des etats dans lesquels le signal apparaıt.
Par exemple, RD doit etre active dans les etats : R1, E2, E4, E6, E92, EB2, EE2,EE3, EF3 et I3 dont les codes respectifs sont : 0, 4, 6, 8, 13, 16, 20, 21, 24 et 27.
L’expression logique est ecrite sous forme d’une somme de produits pour etreimplemente grace a un reseau PLA.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –80–
IUP SI - L3 Unite de commande UPS
Unite de commande micro-programmee
ß L’unite de commande peut etre vue comme un interpreteur d’instructions qui, apartir du code operation, ordonne une sequence de micro-instructions pour enassurer l’execution.
ß Chaque instruction du processeur est vue comme un micro-programme, chaquecycle correspondant a une micro-instruction de ce micro-programme.
ß Le role d’une micro-instruction est d’activer certains signaux de commande pouractiver un chemin de donnees. Les bits qui composent la micro-instruction sontdonc les signaux de commande du chemin de donnees.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –81–
IUP SI - L3 Unite de commande UPS
L’unite de commande peut-etre realisee au moyen d’une architecture semblable acelle d’un processeur c’est a dire composee :– d’une memoire qui stocke les micro-instructions.– d’une micro-unite de commande (micro-sequenceur) qui lit les instructions
successives d’un micro-programme.– d’un registre micro-pointeur de programme (µPC).Les dispositifs devant etre mis en oeuvre sont :– un dispositif d’incrementation de µPC– un dispositif de chargement de µPC avec l’adresse de debut d’un
micro-programme– un dispositif de retour a la phase de recherche d’instruction (etat R1) a la fin
d’une instruction courante.– la possibilite de se derouter vers une procedure d’interruption
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –82–
IUP SI - L3 Unite de commande UPS
Unite de commande
5
5
4
5
2
ROM de commande
Signaux de commande
distributeur
+1
muPC
2
1
AdIT=19h
0 1
condIR(15..12)
0
int.IE
0
mux
+
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –83–
IUP SI - L3 Unite de commande UPS
FonctionnementROM de commandeLa memoire de commande est constitue de mots (1 par micro-instruction)possedant autant de bits que de signaux de commande plus deux bits decommande du multiplexeur mux.
La premiere adresse contient le code (signaux de commande) de lamicro-instruction correspondant a l’etat R1 (phase 1 de la recherche d’instruction).
Reamarque : Les micros-instructions sont stockees a des adresses correspondantau codage des etats choisis pour la realisation par PLA. Un autre choix aurait etepossible.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –84–
IUP SI - L3 Unite de commande UPS
Commande du multiplexeur mux :– La commande mux=0 permet, s’il n’y a pas d’interruption a prendre en compte
(int.IE=0), de charger µPC avec l’adresse 0 et donc de demarrer une recherched’instruction. Si une interruption doit etre traitee, µPC sera chargee avecl’adresse de la micro-instruction correspondante (I1).La derniere instruction de chaque micro-programme contiendra donc ce code decommande de mux.
– La commande mux=1 incremente µPC et permet donc de passer a lamicro-instruction suivante du micro-programme (par exemple de l’etat E91 a E92).
– La commande mux=2 va charger µPC avec l’adresse fourni par le distributeur quidepend des entrees c.o et cond. Cette adresse est celle du micro-programmecorrespondant a l’instruction a executer.On retrouve cette commande dans la micro-instruction R2. Elle correspond audecodage de l’instruction du processeur a executer.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –85–
IUP SI - L3 Unite de commande UPS
DistributeurLe distributeur doit associer l’adresse d’un micro-programme (dans la ROM decommande) a un code operation (c.o.) suivant la valeur de cond.
Il est realise a l’aide d’une ROM de 16 mots de 5 bits contenant les adresses desmicro-programmes.
A l’adresse correspondant a la valeur de c.o. est codee l’adresse dumicro-programme, l’entree cond etant traitee grace a un multiplexeur.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –86–
IUP SI - L3 Unite de commande UPS
Schema du distributeur
10adressemicro−programme
EF
10 0 0 0 1 0
0 0 0 1 1
1 0 1 1 01 1 0 0 1
Adresse
5
0
c.o.=7 et cond=0
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –87–
IUP SI - L3 Unite de commande UPS
-
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –88–
IUP SI - L3 Architecture de la memoire UPS
Architecture de la memoireDeux classes de memoire :
ß Memoire principale (ou centrale) :– reliee directement au processeur par un bus rapide– capacite limitee : typiquement 1 Go– volatile– acces aleatoire : temps d’acces independant l’adresse de stockage
ß Memoire secondaire (ou de masse) :– reliee au bus systeme par un processeur d’E/S– supports magnetiques ou optiques, capacite importante : plusieurs centaines
de Go.– non-volatile– acces sequentiel : acces par blocs
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –89–
IUP SI - L3 Architecture de la memoire UPS
Memoire principale
ß Memoire vive (volatile) : RAM– statique– dynamique
ß Memoire morte (non-volatile) : ROM– PROM– EPROM– EEPROM– flash
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –90–
IUP SI - L3 Architecture de la memoire UPS
Boıtier memoire
boitiermemoire
OER/W
Din
Dout
m
2
m
k x m bitsCS
kadresse
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –91–
IUP SI - L3 Architecture de la memoire UPS
Association de boıtiers (banque de memoire)Exemple : realisation d’une banque memoire de 2 Mega-mots de 16 bits a partir deboıtiers de 1 Mega-mot de 4 bits :
Extension du nombre de mots
d’adresseDecodeur
12A20..A31
A0..A19 A0
A19
...
D3..D0
A0
A19
...
D3..D0
CS
CS
CS1
CS2
4bus donnees
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –92–
IUP SI - L3 Architecture de la memoire UPS
Association de boıtiers (suite)Extension de la longueur des mots
d’adresseDecodeur
12A20..A31
CS
bus donnees
A0
A19
...
D3..D0CS
A0
A19
...
D3..D0CS
A0
A19
...
D3..D0CS
A0..A19
D3..D0D11..D8D15..D12
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –93–
IUP SI - L3 Architecture de la memoire UPS
Decodage d’adresseL’adresse d’un mot-memoire peut etre decompose en deux parties : l’adresse dumot-memoire dans le boitier et l’adresse localisant le boitier dans l’espaceadressable (poids forts de l’adresse).
ß Decodage complet : on utilise toutes les lignes d’adresse pour realiser lafonction de selection. Le boitier n’utilise que sa propre dimension dans l’espaceadressable.
ß Decodage partiel : On n’utilise qu’un sous-ensemble des lignes d’adresse pourrealiser la fonction de selection.Si x lignes ne sont pas utilisees, le boitier occupe 2x fois sa dimension dansl’espace adressable. On parle d’efffet de miroir. La meme information estdisponible a partir d’adresses differents.
Le decodage partiel est facile a realiser mais gaspille l’espace adressable. Il estreserve aux micro-systemes figes.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –94–
IUP SI - L3 Architecture de la memoire UPS
Exemple de micro-systeme
R/W
A13A14A15
R/W R/W
A0A1
ProcesseurDecodeurd’adresses
A0.A12
CS
D7..D0
A0.A12
EPROM
13
8
R
3
D7..D0
CS
D7..D0
A0.A1213
8
CS
D7..D08
2
PIARAM
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –95–
IUP SI - L3 Architecture de la memoire UPS
Decodage d’adresse0000
FFFF
8Ko x 4
4Ko x 2
4o x 4096
Decodage partiel
0000
FFFCFFFF 4o
Decodage complet
2000EPROM 8Ko
8Ko
EPROM
8000A000
RAM RAM8000
C000
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –96–
IUP SI - L3 Architecture de la memoire UPS
Hierarchie de memoires
ß Memoire secondaire
ß Memoire principale
ß Memoire cache de niveau 2
ß Memoire cache de niveau 1
ß Registres internes
Plus on descend dans la hierarchie, plus la capacite mais aussi le temps d’accesdiminuent.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –97–
IUP SI - L3 Architecture de la memoire UPS
Memoire cacheLorsque le processeur doit acceder a une information, la recherche est effectueed’abord dans la memoire cache.– Si l’information est presente, elle est fournie immediatement au processeur– Sinon, il y a defaut de cache. La lecture doit se faire dans la memoire principale
ce qui bloque le processeur pendant plusieurs cycles.C’est le gestionnaire de cache qui se charge de gerer cela. Pour le processeur,cette gestion est transparente.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –98–
IUP SI - L3 Architecture de la memoire UPS
Taux de succes et taux d’echecLa memoire cache est d’autant plus efficace que les defauts de cache sont rares.Soit h le taux de succes et n le rapport en nombre de cycles entre un acces a lamemoire principale et un acces au cache, la reduction du temps d’acces peut etreevalue par la relation : R = n/(h + n(1− h))
Exemple : Pour h = 0, 95 et n = 50, on obtient R = 14, 5, soit un temps moyend’acces divise par 14,5.
Les taux de succes eleves sont obtenus grace aux principes de localite spatiale ettemporelle.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –99–
IUP SI - L3 Architecture de la memoire UPS
Localite spatiale et temporelle
Le principe de localite affirme que les informations auxquelles va acceder leprocesseur ont une forte probabilite d’etre localisees dans une fenetre spatiale etune fenetre temporelle.
ß Localite spatiale : A un instant donne le processeur fait reference a des objetsproches du dernier qu’il a utilise : code sequentiel (sauf rupture de sequence),donnees consecutives : tableaux, structures
ß Localite temporelle : En general, si un processeur a fait recemment reference aun objet, il va tres probablement y faire a nouveau reference (structuresiteratives).
La localite spatiale suggere de copier des blocs de mots dans le cache plutot quedes mots isoles.
La localite temporelle suggere de conserver pendant quelque temps dans le cacheles informations auxquelles on vient d’acceder.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –100–
IUP SI - L3 Architecture de la memoire UPS
Decoupage de l’espace adressableQuelle que soit l’organisation physique de la memoire, on peut definir uneorganisation purement logique et decouper celle-ci de differentes manieres.
ß Bloc memoire (ou ligne) : un bloc memoire represente un nombre fixe de motsmemoire. La memoire est decoupee en blocs et une adresse memoire peut etrevue comme la concatenation de l’adresse d’un bloc et de l’adresse du motmemoire dans le bloc.
ß Page memoire : On peut regrouper les blocs pour definir une page memoire dela meme maniere que l’on regroupe des mots pour definir un bloc.
L’adresse d’un mot memoire se decompose alors en un numero de page , unnumero de bloc et une position dans le bloc.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –101–
IUP SI - L3 Architecture de la memoire UPS
Memoire associative
mot 0
mot 1
mot 2^k−1
Encodeurde priorite
Decodeur presence
adresse
donnee
n
k
0n−1
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –102–
IUP SI - L3 Architecture de la memoire UPS
Memoire cache
ß totalement associative : solution la plus naturelle mais complexe a realiser.
ß a correspondance directe : simple a realiser mais moins efficace.
ß a plusieurs voies (hybride) : compromis entre l’efficacite de la techniqueassociative et la simplicite du cache a correspondance directe.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –103–
IUP SI - L3 Architecture de la memoire UPS
Memoire cache associative
...
bloc[2^l−1]
bloc[1]bloc[0]etiq[0]
etiq[2^l−1]
etiq[1]...
etat
presence
waitR/W logique de com.
memoireprincipale
motadresse dans le bloc
num. blocadresse
donnee
ll
l
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –104–
IUP SI - L3 Architecture de la memoire UPS
Remplacement d’un blocSi le cache est plein et que le processeur a besoin d’un bloc qui n’est pas dans lecache, il faut remplacer un des blocs du cache. Plusieurs politiques deremplacement sont possibles :
ß aleatoire : tres rapide mais peut supprimer un bloc a acces frequent.
ß FIFO : on utilise une file circulaire. Simple a implementer et relativementefficace.
ß LRU (Least Recently Used) :La ligne dont le dernier acces et le moins recent etcelle qui sera remplacee.
Implementation pratique : un bit d’etat A est mis a 1 chaque fois que leprocesseur accede a un bloc. A intervalle regulier, tous les bits A sont remis a 0.Le gestionnaire remplace le premier bloc dont le bit A est a 0.
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –105–
IUP SI - L3 Architecture de la memoire UPS
Memoire cache a correspondance directe
...
bloc[2^l−1]
bloc[1]bloc[0]
etiq[0]
etiq[2^l−1]
etiq[1]...
memoireprincipale
motadresse dans le bloc
num. blocadresse
donnee
ll
etat
waitR/W
l
logique de com.
presencenum page
Jean-Michel ENJALBERT - enjalber@laas.fr, 2005/2006 –106–
top related