Exercice 1
Question 1 : Commentez cycle par cycle ce qui se passe lors de l'exécution de la suite d'octets (située en mémoire d'instructions :
Question 1 : Commentez cycle par cycle ce qui se passe lors de l'exécution de la suite d'octets (située en mémoire d'instructions :
ILOAD
1
Question 2 : Même question avec la suite d'octets :
WIDE
ILOAD
1
0
Remarque : la micro-instruction wide_iload 1 est située à 256 mots d’écart de la micro-instruction iload1.
Exercice 2
On considère la fonction C suivante:
-----------------------------------------------
int sommen(int n)
int i, s=0;
for (i=1,i<=n,i++)
s=s+i
return(s)
-----------------------------------------------
int sommen(int n)
int i, s=0;
for (i=1,i<=n,i++)
s=s+i
return(s)
-----------------------------------------------
Question 1 : Écrire une fonction qui implémente la fonction sommen en langage IJVM. On supposera que lors de l'appel à cette fonction, le paramètre n est stocké à l'adresse LV+1, la variable s à l'adresse LV+2 et la variable i à l'adresse LV+3. Juste avant l'instruction de retour, la pile contiendra la valeur à retourner.
Question 2 : A l'aide du microprogramme, calculer le nombre de cycles d'horloge nécessaires pour réaliser un appel à sommen(4). Indiquez également le nombre d'octets nécessaires pour ranger les instructions de sommen.
Question 3 : Écrire une implémentation des instructions de cette fonction dans le langage du jeu d'instruction dit « jeu projet ». On notera @n,@s et @i les adresses (constantes) des variables correspondantes.
Question 4 : On considère maintenant l'implémentation récursive de la même fonction C:
-----------------------------------------------
int sommenrec(int n)
{if (n==0) return(0);
return(n+sommenrec(n-1));}
-----------------------------------------------
Ecrire une implémentation de cette fonction en IJVM (avec appel récursif). On supposera que la fonction est numérotée 5 dans la zone des constantes pointée par CPP.
Question 5 : Décrire les états successifs de la mémoire lors de l'exécution de l'appel à sommenrec(4).
Question 6 : A l'aide du micro-programme calculer le nombre de cycles d'horloge nécessaires pour réaliser un appel à sommenrec(4). Indiquez également le nombre d'octets nécessaires pour ranger les instructions de sommenrec.
Question 7 : Quelle est l'implémentation la plus efficace?
Exercice 3
Que fait la suite de micro instructions suivantes ? :
myst1 MAR=SP=SP+1 goto myst2
myst2 H=MDR=TOS if (N) goto myst3bis else goto myst3
myst3 wr, goto main1
myst3bis TOS=MDR=-H;goto myst3
----------------------------------------------------------------------------------------------
Aucun commentaire:
Enregistrer un commentaire