22 octobre 2005 Couche physique et logique, repr´esentation ...
JE adr saut `a l’adresse adr si A=B
JNE adr saut `a l’adresse adr si A6=B
JG adr saut `a l’adresse adr si A > B
JGE adr saut `a l’adresse adr si A≥B
JL adr saut `a l’adresse adr si A < B
JLE adr saut `a l’adresse adr si A≤B
CALL adr saut `a l’adresse adr
RET retour d’appel
Pour les 6 premi`eres instructions un appel pr´ealable `a l’instruction CMP doit ˆetre effectu´e. Pour l’ins-
truction CALL, l’adresse de la prochaine instruction `a ex´ecuter est plac´ee sur la pile. L’instruction
RET permet de revenir `a cette instruction.
•des instructions de manipulation de la pile
PUSH A empiler le contenu de A
PUSH B empiler le contenu de B
POP A d´epiler et mettre le sommet de pile dans A
POP B d´epiler et mettre le sommet de pile dans B
2.2.4.2 Influence de la longeur des adresses
Lors de la conception d’un microprocesseur, le codage des instructions revˆet un aspect important. Il
s’agit pour le concepteur de d´efinir un format d’instruction qui permette de coder l’instruction `a r´ealiser
mais ´egalement les donn´ees ou adresses sur lesquelles on doit travailler.
En effet,plus les instructions sont courtes plus elles sont efficaces : si une machine poss`ede une m´emoire
ayant un d´ebit de dbits/s et que la longueur moyenne de ses instructions est de nbits, alors cette m´emoire
peut d´elivrer d/n instructions par seconde.
Il faut ´egalement prendre en compte la largeur en bits d’une instruction et s’arranger pour que les
instructions aient une taille multiple de la largeur des donn´ees manipul´ees par le processeur afin d’´eviter le
gaspillage de la m´emoire.
La largeur des adresses influe ´egalement sur les performances. Consid´erons par exemple une m´emoire
de 64 Ko. Celle-ci peut ˆetre organis´ee sous deux formats diff´erents :
–cas n◦1: une m´emoire de 216 octets
–cas n◦2: une m´emoire de 214 mots de 4 octets
Si on d´esire comparer 1 octet avec un autre octet, dans le cas 2 cela entraˆıne un surcoˆut car il faut
charger 2 fois 4 octets depuis la m´emoire et extraire les octets correspondants. Cependant, plus une adresse
est courte, plus l’instruction correspondante est courte. Il y a donc un compromis `a trouver.
2.2.4.3 Code op´
eration expansif
Consid´erons une machine codant des instructions sur m=c+abits, soit cbits pour le code op´eration
et abits pour l’adresse. Cette codification permet de repr´esenter 2cinstructions et 2aadresses. On peut
d´esirer modifier ce codage des instructions de la mani`ere suivante :
–c+ 1 bits pour le code op´eration et a−1bits pour l’adresse, soit 2 fois plus d’instructions mais 2 fois
moins d’adresses
– ou c−1bits pour le code op´eration et a+ 1 bits pour l’adresse, soit 2 fois moins d’instructions mais
2 fois plus d’adresses
Le proc´ed´e qui consiste `a modifier le nombre de bits r´eserv´es au codage des instructions en fonction de
leur nombre et de l’adressage m´emoire s’appelle code op´eration expansif. Exemple :
00 xxxxxxxxxxxxxx 3 instructions avec adresse sur 14 bits
01 xxxxxxxxxxxxxx
10 xxxxxxxxxxxxxx
1100 xxxxxxxxxxxx 3 instructions avec adresse sur 12 bits
1101 xxxxxxxxxxxx
1110 xxxxxxxxxxxx
27