Sujet du test3 2014-15 (variante blanche) - Moodle
Transcription
Sujet du test3 2014-15 (variante blanche) - Moodle
ICC MT & EL Test N° 3 vendredi 19 décembre 2014 Ne PAS retourner ces feuilles avant d’en être autorisé! Merci de poser votre carte CAMIPRO en évidence sur la table. Vous pouvez déjà compléter et lire les informations ci-dessous: NOM ____________________________________________________________ Prénom _____________________________________________________________ Numéro SCIPER _________________________________________________________ Signature _______________________________________________________________ 14h15 15h30 Le test écrit commence à: Retourner les feuilles avec la dernière page face à vous à : les contrôles écrits ICC sont SANS document autorisé, ni appareil électronique Total sur 20 points = 12 points pour la partie Quizz et 8 points pour les questions ouvertes La partie Quizz (QCM) comporte 12 questions : chaque question n’a qu’une seule réponse correcte parmi les 4 réponses proposées. Chaque réponse correcte donne 1 point. Aucun point n’est donné en cas de réponses multiples, de rature, ou de réponse incorrecte. Indiquez vos réponses à la partie Quizz dans le tableau en bas de cette page. La partie « question ouverte » comporte 2 questions. Chaque question rapporte 4 points. A B C D 1 2 3 4 Questions du Quizz 5 6 7 8 9 1 10 11 12 A B C D QUIZZ Question 1 : quel circuit a pour sortie X selon la table de vérité suivante -> Réponse : A A 0 0 1 1 B B 0 1 0 1 X 1 1 0 0 C D -------------------------------------------------------------------------------------------------------------------------Question 2 : Quelle est la table de vérité de la sortie X de ce circuit -> A 0 0 1 1 Réponse : B 0 1 0 1 A X 1 1 1 0 A 0 0 1 1 B 0 1 0 1 X 1 0 1 1 A 0 0 1 1 B B 0 1 0 1 C 2 X 0 1 1 1 A 0 0 1 1 B 0 1 0 1 D X 1 1 0 1 Question 3 : on désire réduire le temps pour effectuer une addition sur 64 bits par un facteur de (presque) 4. L’idée est de gagner un facteur 2 supplémentaire par rapport à la solution vue en cours en remplaçant les additionneurs sur 32 bits par des additionneurs sur 16 bits. Combien faut-il d’additionneurs 16 bits en tout ? A B C D 3 15 7 16 -------------------------------------------------------------------------------------------------------------------------Question 4 : un laptop est équipé d’un processeur avec un niveau de mémoire cache (latence 10ns), une mémoire centrale (latence 150 ns) et un disque dur (latence 1ms). On observe la répartition suivante des accès aux données lorsqu’on travaille sur une tâche T : 60% des accès aux données tirent parti de la mémoire cache ; pour les autres accès, 90% sont obtenus de la mémoire centrale tandis que le reste doit être demandé au disque dur. Quelle est la latence moyenne (en ns) pour cette tâche T ? A 100 B 40’060 C 181 D 100’141 ----------------------------------------------------------------------------------------------------------------------------Le programme assembleur suivant est exécuté avec une valeur entière strictement positive disponible dans le registre r0. Le résultat est chargé dans r4. Voici quelques précisions sur des instructions pouvant présenter une ambiguïté : cont_egal a, b, c fait continuer l’exécution à la ligne c si les registres a et b sont égaux. divise ra, rb, rc effectue la division entière de rb par rc et range le résultat dans ra 0 1 2 3 4 5 6 7 8 : : : : : : : : : charge charge charge cont_egal divise somme continue charge stop r1, r2, r3, r0, r0, r2, 3 r4, 1 0 2 r1, 7 r0, r3 r2, r1 r2 Question 5 : Lorsque r0 vaut 9 comme valeur initiale, le résultat de l’exécution est : A 2 B 3 C 4 D 1 Question 6 : quel est l’ordre de complexité de ce programme en fonction de r0 ? A O(1) B O(r0) C O(r02) D O(log(r0)) 3 Question 7 : Dest. A B D E Dir. A B D E Ce graphe de routeurs Internet montre la distance entre chaque nœud à coté de chaque lien. Par exemple, la distance entre A et B est de 3. Indiquer quelle est la table de routage du nœud C parmi les choix suivants. Pour chaque destination (colonne de gauche) on indique la direction du prochain nœud (colonne du milieu) et la distance du plus court chemin (colonne droite). Dist. 8 4 3 1 Dest. A B D E Dir. B E B E Dist. 7 3 3 1 Dest. A B D E Dir. E E E E Dist. 6 3 2 1 Dest. A B D E Dir. E E D E Dist. 6 3 3 1 A B C D -------------------------------------------------------------------------------------------------------------------------Question 8 : on considère un réseau contenant plusieurs routeurs (A,B, C, …, N). On connaît seulement les tables de routage des nœuds A, F et H données ci-dessous : A F H Dest. Dir. Dist. Dest. Dir. Dist. Dest. Dir. Dist. G B 2 K N 3 D G 2 D C 2 L E 2 F N 2 N x y J I 2 J N 3 Réponse : En se basant uniquement sur les informations fournies par ces tables et sur la règle de mémoriser seulement le plus court chemin dans une table, indiquer les valeurs correctes de x et de y : A x = C et y = 4 B x = B et y = 5 C x = C et y = 5 D x = B et y = 4 4 Question 9 : supposons que l’EPFL soit reliée à d’autres nœuds du réseau suisse comme ceci : Le réseau comporte 5 nœuds : EPFL, UniBe, ETHZ, UniSG, USI. Les tables ci-dessous indiquent seulement la direction du nœud suivant pour une destination, ou un ensemble de destinations données. Dans cette question, on peut remarquer que le chemin entre deux nœuds n’est pas déterminé par le plus petit nombre de sauts. En effet, les tables prennent en compte aussi la capacité des liens. Par exemple, la capacité du lien EPFL -> USI n’est pas suffisante pour supporter la bande passante requise pour les communications entre EPFL et ETHZ, c’est pourquoi les communications EPFL->ETHZ passent par UniBe comme première étape, puis par USI car les liens UniBe->USI et USI->ETHZ ont une plus grande capacité (remarque : un centre de calcul important est installé à USI). Enfin, il faut aussi remarquer que la capacité des liens dépend de la direction de transmission, ce qui explique qu’une communication entre deux sites ne va pas forcément utiliser le même chemin dans les deux sens. Voici les tables : EPFL Dest. Dir. UniBe, ETHZ, UniSG USI UniBe USI UniBe Dest. Dir. EPFL EPFL ETHZ Dest. Dir. USI UniSG UniSG Dest. EPFL EPFL USI, ETHZ, UNISG USI UniBe UniBe UniBe UniBe EPFL, USI USI ETHZ, UniSG ETHZ Dir. UniSG Dest. Dir. ETHZ ETHZ USI, UniBe, EPFL USI Indiquer la bonne réponse pour une communication établie entre l’EPFL et UniSG dans les deux sens : A EPFL->UniBe->USI->ETHZ->UniSG et UniSG->ETHZ->USI->UniBe->EPFL B EPFL-> USI-> UniSG et UniSG->USI->EPFL C EPFL-> USI-> UniSG et UniSG->ETHZ->USI->UniBe->EPFL D EPFL->UniBe->USI->ETHZ->UniSG et UniSG->USI->EPFL -------------------------------------------------------------------------------------------------------------------------Question 10 : Soit un ordinateur avec un processeur d’horloge 2 GHz et une mémoire cache de 16 blocs, chaque bloc ayant une taille de 128 octets. La mémoire centrale présente une latence de 100 cycles d’horloge du processeur. On désire exécuter un programme pour traiter séquentiellement un ensemble de données de 8 KiB (c'est-à-dire 213 octets) présent en mémoire centrale. Le programme lit un octet à la fois et accumule sa valeur dans un registre du processeur. On considère que cette accumulation (=addition) représente un cycle d’horloge du processeur. Quel est le temps nécessaire pour réaliser cette tâche ? A 8192 ns B 3200 ns C 4146 ns D 7296 ns 5 Question 11 : L’expression memory wall désigne : A Un accroissement croissant du coût des technologies de stockage B L’impossibilité de donner un accès rapide à une grande masse de donnée au processeur du fait de l’espace nécessaire pour mémoriser une grande quantité de données. C Une baisse de coût insuffisante des technologies de stockage à long terme D L’accroissement des performances des mémoires en terme de capacité alors que les processeurs s’améliorent en terme de vitesse. -------------------------------------------------------------------------------------------------------------------------Question 12 : Le stockage des données d’un fichier sur le disque dur est … A organisé comme pour un tableau en mémoire centrale (en un seul bloc) B constitué d’un ensemble de blocs qui sont systématiquement déplacés à chaque modification du fichier pour être dans des secteurs consécutifs du disque. C constitué d’un ensemble de blocs dont les adresses sont mémorisées dans une table qui est entièrement recopiée en mémoire centrale lorsqu’on lit des données du fichier D soumis au risque de fragmentation à cause des chocs thermiques. 6 Questions Ouvertes Question 1 : Assembleur Le pseudocode suivant calcule le PGCD (plus grand commun diviseur) de deux nombres entiers strictement positifs a et b, avec a>b : Tant que a%b (a modulo b) est différent de 0 c←b b←a%b a←c Le résultat final est dans b. On demande d’exprimer ce pseudocode en assembleur en supposant que les valeurs initiales de a et de b sont respectivement dans r0 et r1. Le résultat doit être rangé dans r2. Voici quelques précisions sur des instructions pouvant présenter une utilité : cont_egal ra, rb, c fait continuer l’exécution à la ligne c si les registres ra et rb sont égaux. modulo ra, rb, rc calcule le reste de la division entière de rb par rc et range le résultat dans ra …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………………………………. Question 2 : Analyse des accès au cache Nous voulons analyser l’efficacité d’un programme qui réalise un produit de matrices 2x2. Chaque valeur d’une matrice est un mot (4 octets, 32 bits). // x_mn = élément mn de la matrice x (m = ligne, n = colonne) Pour i de 0 à 1: pour j de 0 à 1: r0 = 0 Pour k de 0 à 1: r1 = a_ik r2 = b_kj r0 = r0 + (r1 * r2) p_ij = r0 7 Les matrices sont rangées ligne par ligne en mémoire. Par exemple, une matrice A serait rangée comme suit : ... A_00 A_01 A_10 A_11 ... La mémoire cache a les caractéristiques et le comportement suivants : • Le cache contient deux blocs • Chaque bloc du cache contient deux mots de 4 octets chacun (= 8 octets) • Approche de type Least Recently Used (LRU) lorsque’un bloc doit être remplacé • Une action d’écriture du cache vers la mémoire centrale n’est faite que lorsqu’un bloc modifié doit être remplacé par un autre bloc. • Lorsque le programme prend fin, les dernières actions d’écriture du cache vers la mémoire centrale doivent aussi être faites. Alignement des matrices en mémoire : le premier élément d’une matrice apparait comme le premier élément du cache. Par exemple, la lecture de A_00 provoque la lecture du bloc contenant A_00 et A_01. Dans l’analyse de l’exécution de ce programme on peut supposer que les variables i, j et k sont mémorisées dans des registres et ne produisent pas de défaut de cache. Lorsque le programme commence son exécution, aucune des 3 matrices A, B et P ne sont dans le cache. Compléter le tableau ci-dessous en indiquant seulement les accès à la mémoire centrale en lecture ou en écriture (pas les accès au cache). Préciser dans la colonne « bloc remplacé » quel est le bloc, s’il y en a un, qui laisse sa place au nouveau bloc. il peut y avoir plus de lignes que nécessaire : Bloc lu A_00 A_01 B_00 B_01 B_10 B_11 Type d’opération : lecture/écriture lecture lecture lecture 8 Bloc remplacé aucun aucun B_00 B_01 Page vide utilisable comme brouillon, ne pas détacher 9 Ne rien écrire sur cette page, Rappel : avez-vous complété le tableau en p1 ? Présenter cette page sur le dessus dans les 2 cas suivants : 1) vous avez fini avant 15h30 2) les copies sont ramassées 10