Exercices sur l'architecture des ordinateurs - examen, Examens de Programmation informatique. Ecole des Ingénieurs de la Ville de Paris
Christophe
Christophe

Exercices sur l'architecture des ordinateurs - examen, Examens de Programmation informatique. Ecole des Ingénieurs de la Ville de Paris

3 pages
3Numéro de téléchargement
921Numéro de visites
100%sur 1 votesNuméro de votes
1Numéro de commentaires
Description
Exercices d’informatique sur l'architecture des ordinateurs - examen. Les principaux thèmes abordés sont les suivants: exercices.
20 points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 3
Télécharger le document

s*l"&Examen fi nal d'architecture Denis Barthou, ENSEIRB-MATMECA 2009-201,0

La durée de I'examen est de 2h. Les documents ont autorisés. Les exercices sont indépendants. Calculatrices t téléphones portables interdits.

1. Conversions (2 points)

o Convertir en binaire sur 8 bits, en représentation à complément à 2, les nombres uivants: -66, -80

. Poser et calculer en binaire sur 8 bits, en complément à 2 la somme -66- 80. Expliquez ce résultat.

2. feu d'instructions (4 points)

On considère une machine disposant de 32 registres pour représenter les entiers sur 32 bits: r0 jusqu'à r31 et de 64 registres pour représenter les entiers flottants sur 64 bits: f0 jusqu'à f63. Le jeu d' instruction est donné par la table suivante, où ri , r j représentent n'importe lequel des registres entiers, fi, fj n'importe lequel des registres flottants.

. Proposer un codage de toutes ces instructions sur 16 bits.

3. Traduction en assembleur MIPS (3 points)

Traduire n assembleur MIPS le programme C suivant:

æ' @;

'f*'hF- / l rFI i Êl i tS! lR,B t i l :ÉTnâc*

f ie f i OPf j avec FOP une opérat ion parmi addf, subf, mulf, divf

loadf fi, (rj) f i e la valeur 64bits à l 'adresse r j

storef (ri), fj valeur 64bits à I 'adresse r i e fk

load ri , (r j) ri e- la valeur-32 bits à l'adresse rj store (ri), rj valeur 32bits à I 'adresse ri <- 4 OP ri, rj r i er i OPrj

avec OP une opération parmi add, sub, mul, div, xof oç and ri e cst avec cst une constante entière en complément à 2, sur 10 bits. continue I 'exécution à I 'adresse ri continue I 'exécution à I 'adresse rj si r i=:0.

docsity.com

for ( i :100; i>0; i - - ) { i f (AI x l !=y; x=xt2i else {

Alx l -A[ x- ] . 1+1; . X=x-1; )

) On supposera que x, y et A correspondent à des Iabels en mémoire (des adresses). Les valeurs de x et y seront placées et gardées dans des registres.

4. Exécution pipelinée (5 points) On considère le code suivant MIPS:

I lw $1, ($2) 2 sub $2, $4, $1 j add $1, $1, $3 q sw ($2), $2 radd $3, $2, $1 C lw $3, ($5) ?add $2, $3, $10

a- On supposera, comme en cours, que l 'architecture MIPS est pipelinée, avec 5 étages (qu'on notera lF, lD, EX, MEM, WB) et qu'une instruction seulement est commencée chaque cycle.

. Ecrire le diagramme de temps montrant à quel étage du pipeline se trouve chaque instruction en fonction du cycle d'exécution (sans tenir compte des dépendances). Quelles ont les dépendances entre instructions ?

. Corriger le diagramme précédent en supposant que I 'architecture n'a pas de mécanisme de forwarding. En combien de cycles ce programme s'exécute-t-il ?

. Même question, en supposant cette fois que le chemin des données dispose de forwarding entre tous les étages du pipeline.

b- On suppose maintenant que I 'architecture est superscalaire et exécute 2 instructions par cycle.

. Réécrire le code en faisant du renommage de registres. Les registres physiques eront nommés P0, ... P3L. On cherchera à uti l iser le plus de registres possibles, ans changer le sens du calcul.

. Ecrire le diagramme de temps montrant à quel étage du pipeline se trouve chaque instruction en fonction du cycle d'exécution (sans tenir compte des dépendances). En prenant en compte les instructions après renommage des registres, quelles ont les dépendances entre instructions ?

. En supposant qu' i l y a du forwarding entre tous les étages, en combien de cycle s'exécute ce programme ? Expliquez votre résultat.

5. Caches (6 points)

On considère le code suivant:

for ( i=0; i<N; i++) {

docsity.com

Al i l -Bl i+11 xcl i l Al i l =Al i l +B[ i ] xcl i+11

) avec A et B des tableaux d'entiers ur 4 octets. Le tableau A commence à I'adresse 0, le tableau B à I 'adresse 8000, le tableau C à l 'adresse L6000. On rappelle que le numéro du set dans lequel est placé la valeur à une adresse adr pour un cache k-associatif de tai l le T octets et dont les l ignes font L octets peut être calculé par la formule:

(adr/L) modulo T/(k*L) On supposera que les accès se feront dans I 'ordre: B[i+L], C[i] puis A[i] , A[i] , Bl i l , Cl i+11 et Al i l pour chaque i térat ion i .

a- Localité . Expliquez ce qu'est la localité spatiale pour un code, quel intérêt cela a

pour un cache et trouvez un exemple de localité spatiale dans le code précédent

. Même question pour la localité temporelle.

b- Etude de structure de caches On étudie les 2 premières itérations de la boucle (14 accès mémoire) et différentes tructure de caches. Montrer quels sont les hits et miss se produisant pour les L4 premiers accès mémoire pour les caches uivants:

. Un cache 2-associatif , write al locate, d'une tai l le de 8Ko, et des l ignes de 8 octets chacune. Le cache uti l ise une polit ique de remplacement LRU.

. Un cache direct ff iap, write al locate, d'une tai l le de 8Ko et des l ignes de 8 octets chacune.

. Un cache complètement associatif d'une tai l le de 64 octets, et des l ignes de 8 octets chacune.

IBONUSI Quelle est la plus petite tai l le de cache (en octets) et quelles ont les caractérist iques de ce cache (tai l le de la l igne, associativité) permettant d'uti l iser toute la localité temporelle de la boucle ? Justif iez la réponse.

docsity.com