• Aucun résultat trouvé

Examen 2

N/A
N/A
Protected

Academic year: 2022

Partager "Examen 2"

Copied!
6
0
0

Texte intégral

(1)

GIF-16116, 30 avril 2008 Nom/Matricule : _________________________

Examen 2

Cet examen vaut 40% de la note totale du cours. Les questions seront corrigées sur un total de 40 points.

La valeur de chaque question est indiquée avec la question. Une calculatrice scientifique peut être utilisée.

Cependant, aucune documentation, autre que les deux annexes, n’est permise. Vous devez répondre aux questions dans le cahier bleu mis à votre disposition.

Q1 (3 points) : Associez la définition avec le mot s’y rattachant dans un contexte de bus de communication.

# Définition # Mot

1 Arbitrage A Se dit d’une ligne de bus ayant plusieurs usages

2 Asynchrone 3 Canal

multiplexeur B Se dit d’un bus avec une ligne d'horloge

4 Canal sélecteur 5 Interruption C Méthode utilisée afin de déterminer qui contrôle un bus

6 Dédiée 7 Multiplexée D Se dit d’un bus où les bits d’un mot sont envoyés un à un

8 Synchrone 9 Série E Se dit d’un bus où les évènements dépendent des

évènements antérieurs 10 Parallèle

F Se dit d’un bus ou les bits d’un mot sont transmis au même instant.

11 Isochrone

Q2 (3 points) : Dites dans quelle composante de votre ordinateur (Caches, Chipset, CPU, Entrée/Sortie, Mémoire ou Disque Dur) se retrouvent habituellement les structures de données suivantes :

A Process Control Bloc (PCB) B Table de pages

C Table Look-Aside Buffer (TLB) D Inode

E Fichier de registres (registres) F Master File Table (MFT)

Q3 (3 points) : Si on suppose un 8086 avec des instructions tel que décrit en annexe B et si le bus de données a 16 bits, combien d’accès mémoire seront requis pour lire et

exécuter la séquence d’instructions suivante : PUSH AX

ADD AX,CX MOV [BX],AX

Expliquez brièvement votre réponse en donnant le détail pour chaque instruction.

(2)

Q4 (2 points) : Énumérez quatre raisons qui pourraient expliquer pourquoi un bus de votre ordinateur avec une vitesse théorique de 100 Gbps opère, en réalité, à 80 Gbps.

Q5 (3 points) : Lorsque des tables de pages sont utilisées pour placer plusieurs

programmes en mémoire, l’espace mémoire perdue en raison de fragmentation est très faible. Expliquez pourquoi.

Q6 (3 points) : Pour transférer des données d’un périphérique vers la mémoire, le DMA (Direct Memory Access) permet de gagner du temps par rapport à l’exécution d’un programme par le CPU effectuant le même transfert. Expliquez pourquoi.

Q7 (10 points) : Tous les énoncés suivant sont totalement ou partiellement faux. Dites brièvement pourquoi ou dites comment rendre l’énoncé vrai. Un énoncé peut être faux pour plusieurs raisons.

# Énoncé Faux

A Le programme exécuté lors d’une interruption dépend du microprocesseur. Si on change le microprocesseur, on change donc la routine de gestion de l’interruption.

B Si le bus de données a 16 bits, la mémoire doit être agencé en mots de 16 bits, les registres doivent avoir 16 bits, le bus d’adresse doit avoir 16 bits et on dit alors que le microprocesseur est un microprocesseur 16 bits.

C Lorsque l’on programme, il faut spécifier dans le code le secteur du disque dur que l’on veut lire ou écrire lors d’accès à un fichier. L’accès au fichier sera transformé en requête d’E/S vers le disque dur.

D Les clusters sont regroupés en blocs de donnés parce que gérer les blocs

individuellement demanderait trop de temps et d’espace mémoire. Plus les clusters sont gros, plus la mémoire sera facile à gérer et moins l’espace perdue à l’intérieur des clusters sera grand.

E Dans le NTFS (NT File System), les clusters d’un fichier sont indiqués dans une liste chaînée. Dans FAT32, les clusters d’un fichier sont indiqués dans un enregistrement et sous Unix, les clusters d’un fichier sont dans des inodes.

F NTFS, Inodes et FAT32 ont des noms de fichiers en unicode, sont résistants à la corruption de données et supportent des disques durs de 10 Gigabytes.

G Lorsqu’un nouvel appareil USB est branché, le PlugNPlay détecte les périphériques et charge le gestionnaire de périphérique qui traitera les IRP (I/O Request Packet) destinés à l’appareil.

H Le BIOS est un programme en mémoire non-volatile qui détermine quel processus sera exécuté lors du prochain quantum. Il contient des routines pour accéder aux périphériques sous forme d’ISR.

I Le DOS est un programme en mémoire volatile qui détermine quel processus sera exécuté lors du prochain quantum. Il contient des routines pour accéder aux périphériques sous forme d’ISR.

J Windows est un programme en mémoire non-volatile qui détermine quel processus sera exécuté dans le prochain quantum. Il contient des routines pour accéder aux périphériques sous forme de pilote de périphérique.

(3)

Q8 (2*5 points) : Répondez à 2 questions seulement parmi 9A, 9B et 9C.

Dans les situations suivantes, votre employeur vous demande de concevoir un appareil électronique connecté à un ordinateur. Dans chaque cas, déterminez quel port du PC est le mieux adapté à la situation (port série, port parallèle, USB, Firewire, carte d’extension PCI). Défendez votre choix et expliquez à votre employeur quelles seront les difficultés rencontrées lors du projet. Vous devez aussi évaluer le temps, le matériel et le logiciel nécessaire à l’exécution du projet. Une ébauche du design serait également grandement appréciée.

A) Vous êtes responsable de la sécurité et de l’appareillage électrique dans une scierie. Dernièrement, un ingénieur de la CSST a fait remarqué que le convoyeur Alpha devrait être pourvu d’un bouton d’arrêt d’urgence et de trois voyants pour être conforme aux normes de santé et sécurité au travail. Comme il ne faut pas badiner avec la sécurité, mais en tenant compte des difficultés de l’industrie forestière, votre patron vous charge du mandat avec les contraintes suivantes :

a. Il est possible d’acheter un nouvel ordinateur (un seul), mais si vous utilisez l’ordinateur poussiéreux du coin, tant mieux.

b. Un capteur produit un signal électrique 0-10V donnant l’état du

convoyeur. Moyennant trois comparateurs (conversion du signal en trois sorties TTL ou CMOS) ou un ADC (Analog to Digital Converter, conversion fournie sur 8 bits avec 8 broches sortant de l’ADC), le signal se convertit facilement en TTL ou en CMOS.

c. L’ordinateur supervisant le convoyeur doit être à au moins trois mètres du convoyeur.

B) Un chercheur du COPL (Centre d’Optique Photonique et Laser) vous a engagé pour recueillir les données de quatre capteurs installés sur le toit du pavillon Pouliot (on aurait choisi le pavillon Vachon, mais des doutes sur la stabilité de la structure ont écarté ce choix). Les capteurs mesurent un signal de l’infra-violet à l’ultra-rouge (c’est une technologie vraiment moderne) et produisent environ 8Mbps de données par seconde, par capteur. Puisque le chercheur veut orienter les capteurs selon les mesures, il faut transmettre ces 8Mpbs en temps réel. Dès que les données sont disponibles, elles doivent apparaître sur le PC. Voici d’autres exigences :

a. Il est possible d’acheter un nouvel ordinateur (un seul), mais si vous utilisez l’ordinateur poussiéreux du coin, tant mieux.

b. Les quatre capteurs sont disposés en carré, avec 1.6116m d’arête. On ne peut pas mettre l’ordinateur sur le toit, mais dans une pièce à 4 mètres du centre du carré.

c. Chaque capteur met les données acquises dans une mémoire installée à même le capteur permettant d’emmagasiner 16.116 minutes de données.

Des connecteurs permettent d’accéder à cette mémoire à l’aide de signaux digitaux. Il est aussi possible d’accéder aux données brutes à partir d’un signal TTL sur 16 broches en parallèle (les bits changent à la fréquence de 500kHz).

(4)

C) Hier, votre employeur était furieux parce que des traces d’arachides ont été découvertes dans ses biscuits pourtant fabriqués dans une usine « nut free ».

Encore un peu sous le coup de l’émotion, il vous demande d’installer une caméra de surveillance discrète reliant son bureau à un secteur précis de l’usine où il soupçonne d’autres employés, ou des écureuils, de déguster des arachides en cachette. Voici les contraintes de votre contrat :

a. Quatre fils partent du bureau de votre employeur vers le lieu potentiel du méfait. Vous ne pouvez utiliser d’autres fils que ces fils d’une

cinquantaine de mètres (il faut être discret).

b. La communication avec la caméra doit être bidirectionnelle à environ 20kbps.

c. Votre employeur peut doter son ordinateur de l’interface désirée.

d. La caméra à utiliser (le modèle a été choisi par votre employeur) n’a pas d’interface. Elle produit l’image en envoyant les pixels un par un, sur 16 broches à une fréquence de 1200Hz. Six lignes de contrôle (des signaux TTL) permettent de synchroniser l’image et d’orienter la caméra.

e. Votre employeur n’est pas du genre « patient ». Il veut le montage pour

« hier ».

Q9 (3 points) : Pourquoi retrouve-t-on une copie des registres et des pointeurs sur une pile dans un PCB (Process Control Bloc) relié à un processus?

Q10 (Bonus --- 2 points) : Vous devez faire le design de caches L1 et L2 pour un nouveau microprocesseur supportant Windows. Pour vérifier si une donnée ou une instruction est dans une cache L1 ou L2, est-il mieux d’utiliser une adresse physique ou une adresse logique/virtuelle? Expliquez pourquoi et ce que cela implique (pas

d’explication = pas de points).

(5)

Annexe A : Liste non exhaustive des instructions du 8086 Instruction Description

ADD a,b Effectue a = a+b.

AND a,b Effectue a = a ET b, où ET est un ET logique.

CALL proc Appelle la procédure proc et empile l’emplacement de retour.

CLC Met à 0 le drapeau de retenue (carry).

CMP a,b Effectue a-b, a et b sont inchangés.

DEC a Décrémente a.

DIV mot Effectue AX = DXAX/mot, non signé, le résultat est tronqué (arrondi inférieur).

IDIV mot Effectue AX = DXAX/mot, signé, le résultat est tronqué (arrondi inférieur).

IMUL mot Effectue DXAX = AX*mot, signé.

IN dst, port Met la valeur lue sur le port de I/O port dans dst.

INC a Incrémente a.

INT a Appelle la routine de service d’interruption a. Empile les drapeaux et l’emplacement de retour.

IRET Retourne d’une int. en dépilant l’emplacement de retour et les drapeaux.

JC label Saute à l’instruction désignée par label si le drapeau Carry est 1.

JMP label Saute à label. La prochaine instruction exécutée est désignée par label.

JNC label Saute à l’instruction désignée par label si le drapeau Carry est 0.

JNZ label Saute à l’instruction désignée par label si le drapeau Zéro est 0.

JNS label Saute à l’instruction désignée par label si le drapeau Signe est 0.

JZ label Saute à l’instruction désignée par label si le drapeau Zéro est 1.

JS label Saute à l’instruction désignée par label si le drapeau Signe est 1.

LEA dst,var Met l’adresse de la variable var dans dst.

MOV dst,src Met le contenu de src dans dst. Ne change pas les drapeaux.

MUL byte Effectue AX = AL*byte, non signé.

NEG a Inverse tous les bits de a, puis ajoute 1.

NOT a Inverse tous les bits de a.

OR a,b Effectue a = a OU b, où OU est un OU logique.

OUT port, src Met la valeur de src sur le port de I/O port.

POP mot Dépile un mot. Ne change pas les drapeaux.

POPF Dépile les drapeaux.

PUSH mot Empile un mot. Ne change pas les drapeaux.

PUSHF Empile les drapeaux.

RET et RETF Retourne d’une procédure en dépilant l’emplacement de retour. RET dépile IP. RETF dépile IP puis CS.

RCL a,b Fait une rotation de b bits vers la gauche. La rotation inclut le bit de Carry.

RCR a,b Fait une rotation de b bits vers la droite. La rotation inclut le bit de Carry.

SAL a,b Décale tous les bits de a vers la gauche d’un nombre de bits égal à b. Des zéros sont mis à droite.

SAR a,b Décale tous les bits de a vers la droite d’un nombre de bits égal à b. Le bit le plus significatif de a est mis à gauche.

STI Met à 1 le drapeau des interruptions.

SUB a,b Effectue a = a-b.

TEST a,b Effectue a ET b, où ET est un ET logique.

XOR a,b Effectue a = a XOR b, où XOR est un OU eXclusif.

(6)

Annexe B : Table ASCII et codes op (opcodes) du 8086

Dec Hex Chr

65d 41h A

66d 42h B

76d 4Ch L

90d 5Ah Z

97d 61h a

98d 62h b

108d 6Ch l

122d 7Ah z

Sous-ensemble de la table ASCII

Instruction Taille Opcode Paramètres

ADD Reg/Reg 3 bytes 21h Deux bytes pour décrire les deux registres qu'il faut additonner ADDA Reg 2 bytes 22h Un byte pour décrire le registre qu'il faut additonner à AX

JMP Reg 2 bytes 40h Un byte pour décrire le registre désignant la prochaine instruction (IP) JMP dest 3 bytes 41h Deux bytes pour décrire le IP de la prochaine instruction

MOV Reg/Reg 3 bytes 80h Deux bytes pour décrire le registre source et le registre destination MOV Reg/Mem 4 bytes 81h Un byte pour décrire le registre et deux byte pour décrire l'adresse MOV Mem/Reg 4 bytes 83h Un byte pour décrire le registre et deux byte pour décrire l'adresse POP Reg 2 bytes A0h Un byte pour décrire le registre qu'il faut dépiler

POP Mem 3 bytes A2h Deux byte pour décrire l'adresse qu'il faut dépiler PUSH Reg 2 bytes A1h Un byte pour décrire le registre qu'il faut empiler PUSH Mem 3 bytes A3h Deux byte pour décrire l'adresse qu'il faut empiler Opcodes et paramètres fictifs d'instructions 8086

Note: Les données contenues dans cette table sont fictives

Références

Documents relatifs

« Tourisme équitable et solidaire dans « le cœur de l’Inde » : Ethnographie d’une arène émergente » Amandine Southon, EHESS / Université Paris 1 Panthéon Sorbonne?. «

C’est toujours le seul centre de cadets en France géré par un régiment de la Légion étrangère, une opportunité pour les cadets de découvrir.. cet environnement très spécifique,

lorsque la grandeur réglée y(t) atteint la consigne w(t) , il est vraisemblable (mais pas garanti) que la réponse indicielle (en régulation de correspondance) du système

Just like our previous bits of code, we’re using variables in place of values to define what our shapes will look like with pygame.draw.rect. This code, however, has something

This module contains all the special purpose math routines used in the Widget firmware... ScrReg9 Jp

Apis mellifera / Varroa jacobsoni / chemical control / formic acid /

La quantité de fluvalinate a été recherché dans des lanières avant utilisation et après que cer- taines sont restées en place dans les colonies le temps nécessaire

Avec un cache de remplissage monté utilisable sur rail comme simple boîte d’épissures ou aussi comme boîte d’épissures de passage pour jusqu’à 12 (24)