Final - ift1215 Nom: Code: Examen Final IFT-1215 22 avril 2013 Directives Documentation autorisée : une page manuscrite recto. Pas de calculatrice, téléphone, ou autre appareil électronique autorisé. Répondre sur le questionnaire dans l'espace libre qui suit chaque question. Utiliser le verso de la page si nécessaire. Chaque question vaut 5 points pour un total maximum de 25 points. Les questions ne sont pas placées par ordre de diculté. 0 Nom et prénom (1 point de bonus) Écrire son nom et prénom et son code permanent en haut de chaque page. 1 Final - ift1215 1 Nom: Code: Circuits logiques Mettre au point un circuit séquentiel qui détecte les changements dans son entrée. Il a 2 bits d'entrée I0 et I1 , une horloge, et une sortie O. À chaque cycle, la sortie vaut 0 si les entrées étaient diérentes qu'au cycle antérieur et 1 sinon. 1. Donner la table de vérité de la partie combinatoire du circuit. 2. Dessiner le circuit avec ses portes logiques et ses registres. 2 Final - ift1215 2 Nom: Code: LMC Soit l'exécution de l'instruction ADD dans LMC-0 ci-dessous : → cycle 0 PC cycle 1 attendre mémoire MAR cycle 2 MDR cycle 3 IR[adr] cycle 4 attendre mémoire cycle 5 A + MDR cycle 6 PC + 1 → IR → MAR → → A PC 1. Si ce processeur LMC-0 fonctionne à une fréquence de 50MHz et que la mémoire a une latence de 100ns, combien d'instructions ADD le processeur peut-il exécuter en une seconde ? 2. Si on remplace le processeur (sans toucher la mémoire) par un LMCSP super-boosté qui fonctionne en pipeline et tourne à une fréquence de 10GHz, quel est le maximum d'instructions ADD qu'il pourra exécuter en une seconde ? 3. Si on remplace le processeur par un LMC-C identique à LMC-0 mais avec un cache de latence 20ns, quel est le maximum d'instructions ADD qu'il pourra exécuter en une seconde ? 4. Si on le remplace par un LMC-CP identique au LMC-C sauf qu'il fonctionne en pipeline, quel est le maximum d'instructions ADD qu'il pourra exécuter en une seconde ? 5. Finalement, si on le remplace par un LMC-C2P identique au LMC-CP mais qui a un deuxième cache (aussi de latence 20ns) ; i.e., un cache pour les instructions et un pour les données. Quel est le maximum d'instructions ADD qu'il pourra exécuter en une seconde ? 3 Final - ift1215 3 Nom: Code: Mémoires caches Soit une mémoire cache de niveau 1 de type direct-mapped (à correspondance directe). Ce cache prend des adresses de 32bit (pour une mémoire où chaque adresse contient un byte, comme d'habitude) et les divise en trois parties : un index de 9bits qui indique la ligne de cache correspondante, un étiquette Quelle est la taille de chaque étiquette ? qui indique le byte dans cette ligne, et une 1. oset de 5bits qui contient le reste. 2. Laquelle des trois parties contient les bits les plus signicatifs de l'adresse (MSB), et laquelle contient les bits les moins signicatifs (LSB) ? 3. Combien de bytes peuvent être gardés dans ce cache ? 4. Si la mémoire a une latence de 100ns et une bande passante de 1GB/s, quel est le temps nécessaire pour aller y chercher une ligne de cache ? 5. Pour une taille de cache xe, donner l'avantage principal d'augmenter la longueur de ses ligne ; et l'avantage principal de raccourcir ses lignes. 4 Final - ift1215 4 Nom: Code: Performance des disques Soit un disque dur de 1TB avec des blocs de 512B, qui tourne à 4000rpm, avec un seek time moyen de 5ms et une bande passante maximale de 50MB/s. 1. Combien de temps faudra-t-il pour lire séquentiellement un chier de 1GB disposé de manière optimale sur le disque ? 2. Combien de temps faudra-t-il si ce chier est divisé en morceaux de 1MB, où les blocs d'un morceau sont bien placés séquentiellement, mais les morceaux sont répartis aléatoirement sur le disque ? 3. Combien de temps faudra-t-il si le chier est disposé séquentiellement comme avant, mais qu'on le lit par blocs de 512B en commençant par la n du chier ? 4. Combien de blocs peut-on lire par seconde (IO/s) si ces blocs sont disposés de manière aléatoire sur le disque ? 5. Lorsqu'on fait une lecture séquentielle, combien de megabytes peut-on transférer pendant qu'un autre disque identique saute entre deux blocs choisis aléatoirement ? 5 Final - ift1215 5 Nom: Code: Entrées/Sorties Soit une interruption qui intervient dans un serveur de calcul parce qu'un senseur détecte une température trop élevée. 1. Qui interrompt qui ? 2. Que faudrait-il faire si l'ordinateur ne pouvait pas utiliser de telles interruptions ? 3. Dans quelle situation est-il préférable d'utiliser cette autre technique ? 4. Décrire les diverses opérations qui ont lieu dans le CPU à la réception de cette interruption. 5. Décrire les diverses opérations qui ont lieu dans le système d'exploitation à la réception de cette interruption. 6. 6