architecture des ordinateurs - laas

27
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

Upload: others

Post on 18-Oct-2021

9 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –4–

Page 2: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –8–

Page 3: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –12–

Page 4: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –16–

Page 5: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –20–

Page 6: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –24–

Page 7: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –27–

IUP SI - L3 Chemin de donnees UPS

Memoire

Decodage

WR RD

Donnee

Adresse

Jean-Michel ENJALBERT - [email protected], 2005/2006 –28–

Page 8: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –32–

Page 9: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –36–

Page 10: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –39–

IUP SI - L3 Exemple d’architecture UPS

-

Jean-Michel ENJALBERT - [email protected], 2005/2006 –40–

Page 11: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –44–

Page 12: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –48–

Page 13: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –52–

Page 14: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –56–

Page 15: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –60–

Page 16: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –64–

Page 17: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –68–

Page 18: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –72–

Page 19: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –76–

Page 20: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –80–

Page 21: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –84–

Page 22: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –87–

IUP SI - L3 Unite de commande UPS

-

Jean-Michel ENJALBERT - [email protected], 2005/2006 –88–

Page 23: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –92–

Page 24: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –96–

Page 25: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –100–

Page 26: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 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 - [email protected], 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 - [email protected], 2005/2006 –104–

Page 27: Architecture des ordinateurs - LAAS

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 - [email protected], 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 - [email protected], 2005/2006 –106–