Voici les principales instructions du jeu d’instruction de ce processeur :
LOAD Ra, Rb/valeur ´ecrit dans le registre Ra le contenu `a l’adresse m´emoire pr´ecis´ee directement
ou contenue dans le registre Rb
STORE Ra, Rb/valeur ´ecrit la valeur du registre Ra `a l’adresse m´emoire pr´ecis´ee directement ou
dans le registre Rb
ADD Rs, Ra, Rb fait l’addition de Ra et Rb et place le r´esultat dans Rs
MUL Rs, Ra, Rb fait la multiplication de Ra et Rb et place le r´esultat dans Rs
INC/DEC Ra, x/Rb incr´emente/d´ecr´emente Ra d’une valeur xou de la valeur contenue dans Rb
JMP add/Ra saut `a une adresse du programme pr´ecis´ee directement ou dans le registre Ra
MOV Ra, Rb/valeur ´ecrit dans Ra le contenu de Rb ou la valeur pr´ecis´ee
JE/JG/JL/JGE/JLE Ra, Rb, add/Rc saut `a une adresse – pr´ecis´ee directement ou dans le registre
Rc – si Ra est ´egal/plus grand/plus petit/plus grand ou ´egal/plus petit ou ´egal que/`a Rb
1.3 Pipeline d’ex´ecution
Le s´equencement de l’ex´ecution des op´erations comporte 5 phases distinctes, chacune durant un cycle
d’horloge, ex´ecut´ees dans l’ordre suivant :
1. LE Lecture de l’instruction via un acc´es en m´emoire `a l’adresse contenue dans CO. RI contient
l’instruction `a ex´ecuter.
2. DE D´ecodage de l’instruction contenue dans RI.
3. CH Chargement des registres A,B de l’UAL ou des registres RA et/ou RM pour acc`es m´emoire, `a
partir des registres g´en´eraux.
4. EX Ex´ecution de l’instruction dans l’UAL ou acc`es en m´emoire.
5. ENR Enregistrement du r´esultat de l’op´eration (si r´esultat) : copie du registre C de l’UAL ou du
registre RM dans un registre g´en´eral ou ´ecriture du registre CO pour une instruction de saut.
Un saut consiste `a modifier le contenu du registre CO pour pr´eciser l’adresse de la prochaine branche
du programme `a suivre. Ce registre est par d´efaut automatiquement incr´ement´e de 4 `a chaque cycle
d’horloge pour pointer sur l’adresse de la prochaine instruction `a ex´ecuter.
Pour une op´eration d’acc`es en m´emoire, le registre RA est ´ecrit avec la valeur de l’adresse m´emoire `a
acc´eder. Le registre RM contient la valeur lue pour une op´eration de lecture et `a ´ecrire pour une op´eration
d’´ecriture. On supposera que le temps de lecture/´ecriture en m´emoire prend un seul cycle d’horloge (via
la m´emoire cache).
2 Questions
1. Traduire en assembleur le programme du TD 4 sur la m´emoire cache. La premi`ere instruction du
programme est plac´ee `a l’adresse 1000 en m´emoire.
2. V´erifier que les estimations d’acc`es m´emoire faites pendant le TD4 ´etaient valides et que le taux de
succ`es du cache ´etait correct.
3. Montrer quelques exemples d’al´eas structurels, de donn´ees et de contrˆole.
4. Optimiser le programme (version assembleur) pour limiter ces al´eas ainsi que le nombre d’acc`es en
m´emoire. Proposer des modifications mat´erielles simples pour limiter les al´eas.
2