IUP SI - L3 Architecture d’un ordinateur UPS Architecture des ordinateurs Plan du cours : ➽ Architecture d’un ordinateur ➽ Codage des informations ➽ Unit ´ e Arithm ´ etique et Logique ➽ Chemin de donn ´ ees ➽ Exemple d’architecture ➾ Instructions de traitement ➾ Instructions de transfert ➾ Instructions de branchement ➾ Programmation modulaire ➽ Synth ` ese de l’unit ´ e de commande Jean-Michel ENJALBERT - [email protected], 2005/2006 –1– IUP SI - L3 Architecture d’un ordinateur UPS Unit ´ es fonctionnelles d’un ordinateur : Memoire Processeur bus Interfaces E/S – Processeur (CPU) : coeur de l’ordinateur. C’est lui qui traite les informations. –M ´ emoire : stocke les instructions et les donn ´ ees des programmes. – Entr ´ ees/Sorties : Permettent ` a l’ordinateur de communiquer avec l’ext ´ erieur. Les diff ´ erentes unit ´ es sont reli ´ es par des bus de communication. Jean-Michel ENJALBERT - [email protected], 2005/2006 –2– IUP SI - L3 Architecture d’un ordinateur Processeur : – Unit ´ es de calcul : – Unit ´ e Arithm ´ etique et logique (UAL) – Eventuellement, unit ´ e de calcul sur les flottants (FPU) –M ´ emoire interne (registres) : Utilis ´ es pour stocker temporairement des informations – Unit ´ e de commande : Automate qui envoie les ordres aux registres, aux unit ´ es de calcul, au bus, a la m ´ emoire et aux syst ` eme d’entr ´ ees/sorties pour ex ´ ecuter les instructions d’un programme. – Bus internes : permettent de tranf ´ erer les informations entre la m ´ emoire, les unit ´ es de calcul et l’unit ´ e de commande. Remarque : Unit ´ es de calcul+Registres+Bus=chemin des donn ´ ees Jean-Michel ENJALBERT - [email protected], 2005/2006 IUP SI - L3 Architecture d’un ordinateur M ´ emoire Instructions et donn ´ ees sont cod ´ ees en binaire et stock ´ ees en m ´ emoire dans des registres de n bits constitu ´ es de la concat ´ enation de n bascules. Une m ´ emoire est un vecteur de registres, chacun ´ etant rep ´ er ´ e par une adresse ( ´ equivalente ` a l’indice d’un tableau). Memoire Adresse Donnees WR RD On peut y acc ´ eder en lecture ou en ´ ecriture : – En lecture, le signal RD met, sur le bus de donn ´ eees, le contenu de la m ´ emoire correspondant ` a l’adresse pr ´ esente sur le bus d’adresses. – En ´ ecriture, le signal WR stocke la valeur pr ´ esente sur le bus de donn ´ ees ` a l’emplacement correspondant ` a l’adresse pr ´ esente sur le bus d’adresses. Jean-Michel ENJALBERT - [email protected], 2005/2006
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
– 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.
– 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
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.
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
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.
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.
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).
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.
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.
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.
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).
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
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.
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).
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.
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..
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.
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.
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
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
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.
– 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
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
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).
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
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.
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).
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
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.
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
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.
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.
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...
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.
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.
ß 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.
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
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.
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.
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.
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
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 :
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.
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.
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.
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.
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.
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.