Exercices Corrigés Architecture Processeur (CPU) et mémoire langage système

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 :

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)
-----------------------------------------------

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

----------------------------------------------------------------------------------------------
                        

Article plus récent Article plus ancien

Leave a Reply