<GIF-17456: Calendrier+examens passés

Calendrier des examens partiels

[introduction]: retour à la page d'introduction du cours

Trimestre visé: Hiver - 2002

Partiel 1

Partiel 2

Note importante: les examens se passent "à livres ouverts"

Exemples de questions d'examens partiels passés

Examen Partiel 1.1 - A

Répondre directement sur le questionnaire
durée: 8h30 à 10h20
Toute documentation permise

Question 1 (5 points)

Expliquez brièvement à quoi sert une "barrière de statuts" (seules les 5 premières lignes de votre réponse seront corrigées).

[Barrière de status: cela permet d'empêcher qu'une interruption de priorité inférieure vienne interrompre le travail de l' interruption en cours]

Question 2 (5 points)

Expliquez brièvement les particularités de l'adressage du "SFR" dans le 8031 (seules les 5 pre mières lignes de votre réponse seront corrigées).

[Le SFR est à la fois adressable par bit (adresses 80h à FFh) et par bytes (adresses 80h à FFh). Les principaux registres de configuration du 8031 ont une adresse se terminant par 0 ou 8 ce qui permet une plage d'adresse continue de 80h à FFh. L'adressage du SFR se fait en mode direct uniquement.]

Question 3 (10 points)

Dans la documentation de l'ALU 2903, on trouve deux pins qui ont les affectations suivantes "G et SIGN" et aussi "P et OVR". Expliquez brièvement cette double affectation (seules les 10 pre mières lignes de votre réponse seront corrigées)

[Cette double affectation sert lorsqu'on cascade plusieurs unités d'ALU. SIGN et OVR servent pour la tranche la plus significative (MSS), G et P servent pour l'anticipation de retenue et sont produites par les tranches de pooids moindres (intermédiaire ISS et basse LSS). En effet, lors de l'anticipation de retenue - carry look ahead -, le carry de la dernière tranche MSS est produit à partir des lignes G et P des autres tranches. La tranche MSS produit à son tour les lignes SIGN et OVR pour l'ensemble du mot.]

Question 4 (30 points)

On veut programmer le "Timer 0" d'un 8031 en mode de rechargement automatique (auto-reload) sur 8 bits. La valeur de rechargement est 5610. On veut aussi que l'interruption associée à ce timer soit activée (basse priorité). On emploit l'oscillateur du 8031 pour l'incrementation du timer.
On vous demande de fournir le contenu de tous les registres nécessaires pour accomplir cette tâche. Fournissez les explications appropriées.

TMOD: xxxx 0010
TCON: xxx1 xxxx
TL0: 1111 1111 ou 0011 1000 (i.e. 56)
TH0: 0011 1000 (i.e. 56) valeur de rechargement
IP: xxxx xx0x
IE: 1xxx xx1x

Question 5 (40 points)

Écrivez le microcode nécessaire à l'exécution de la macro-instruction "JCREL", c'est-à-dire, jump (sauter) de façon relative si le carry de l'ALU est à un. Si le carry est nul, on poursuit l'exé cution à la prochaine macro-instruction sans effectuer de saut. C'est une instruction sur deux octets, le premier octet contient l'opcode (7#, # -> sans objet), le second octet contient l'offset pour le saut relatif (c'est-à-dire saut par rapport à la valeur courante du PC: valeur du nouveau PC = valeur courante du PC + offset). Vous n'avez pas besoin de vérifier si l'addition (valeur courante du PC + offset) cause un débordement.
Servez-vous du simulateur que vous avez employé pour réaliser les exercices, assumez-le sans bug. Optimiser votre microcode. Placez l'origine du microcode pour JCREL à 60H.
On vous demande de fournir: 1 un organigramme pour JCREL, 2 le microcode de JCREL (source commentée).

[Ca peut s'écrire en 6 micro instructions.]


Examen Partiel 1.2 - A

Répondre directement sur le questionnaire
durée: 8h30 à 10h20
Toute documentation permise
L'examen est sur 100 points

Question 1 (40 points)

Vous devez concevoir un canal de communication bidirectionnel série à basse fréquence. Le sys tème emploie 2 micro-contrôleurs 8031 (un à chaque extrémité). On veut:
10 bits de transmission: start bit (0), 8 bits de données, 1 stop bit (1)
réception et transmission
validation en réception
baud rate de 5 Hz, fréquence du cristal du 8031: 11.059 Mhz

Déterminez le contenu de tous les registres de configuration (e.g. SCON, etc.) - 20 points
Justifiez le contenu des registres avec des commentaires appropriés. Si du code assembleur spé cial est nécessaire, incluez-le. - 20 points

Solution:
10 bits donc mode 1
réception et transmission donc on active RE (reception enable)
validation donc SM2 à 1
il faut aussi activer les interruptions série et timer

SCON: 0111 xxxx
PCON: 0xxx xxxx (baud rate très lent)

Baud rate = 5 hz = 2^SMOD * Freq. Osc / 32 *12* ?
donc ? = 5760 décimal
Il faut Timer 1 en mode 16 bits (> 255) et un reload en logiciel
Valeur de rechargement: 65536 - 59776 = 5760, donc le timer 1 chargé avec 59776 = Hex E980
TH1: Hex E9
TL1: Hex 80

TMOD: 0001xxxx
TCON: x1xx xxxx
IE: 1xx1 1xxx
IP: xxx0 0xxx

Routine d'assembleur en réponse à l'interruption du Timer 1 (localisée à l'adresse Hex 001B):

MOV TL1, 80H ; TL1 <- 80
MOV TH1, E9H; TH1 <- E9
RETI ; retour de l'interruption
L'interruption est effacée automatiquement en sautant à la routine de service

Question 2 (20 points)

On a un système microprogrammé simple qui emploie un RALU Am2901, donc 1 seule unité de 4 bits. On veut réaliser une opération de décalage à droite sur 8 bits. Il y a donc 2 registres de 4 bits qui sont impliqués (adresse du registre C = 14 et adresse du registre D = 15. On vous demande d'écrire les micro-mots de contrôle du Am2901, iéeé (seulement ceux-là):

I8 I7 I6 I5 I4 I3 I2 I1 I0 Cin AAAA BBBB

Notez qu'à la fin des opérations, on veut que D' (le registre D décalé) soit disponible à la sortie Y du Am2901

Exemple:

Au départ: [D] = 0101 et [C] = 1101
A la fin: [D] = 1010 et [C] = 1110 et Y = 1010

bits de contrôle 12 points
Connexion 3 points
commentaires 5 points

Solution
1ère micro-instruction (C->F->Q)
I8 I7 I6 I5 I4 I3 I2 I1 I0 Cin AAAA BBBB
000 000 100 0 AAAA=14 et BBBB = 15
OREG R+S 0A

2ième micro-instruction (D/2->D, C/2->Q)
I8 I7 I6 I5 I4 I3 I2 I1 I0 Cin AAAA BBBB
100 000 011 0 AAAA=14 et BBBB=15
RAMQD R+S 0B

3ième micro-instruction (C/2-> C et D' en sortie)
I8 I7 I6 I5 I4 I3 I2 I1 I0 Cin AAAA BBBB
010 000 010 0 AAAA=15 et BBBB=14
RAM A et F->B R+S 0Q


et connexions:

RAM3 - RAM0 et Q3-Q0

Question 3 (40 points)

Écrivez le microcode pour implanter la macro-instruction BOUCLE: on charge un registre avec un compteur et l'adresse de retour sur la pile. A la fin du code, on decrémente et teste le compteur. S'il est nul, on ré-exécute le code sinon on poursuit les opérations.
Organigramme et code commenté à fournir.
Format BOUCLE (sur 1 octet): 8 registre
Exemple $85 (registre 5 employé).

[Ca peut s'écrire en 8 micro instructions.]


Examen Partiel 2.1 - B

Répondre directement sur le questionnaire
durée: 8h30 à 10h20
Toute documentation permise

Question 1 (10 points)

Donnez 4 caractéristiques liées à la fabrication des circuits intégrés de type "full costom" (10 lignes max).


Question 2 (5 points)

Combien y a-t-il de microcycles par instruction machine dans un TMS320C25? Pourquoi? (2 lignes maximum).

Un micro-cycle par instruction machine. Ces DSP ne sont pas micro-codées.

Question 3 (5 points)

Quelle caractéristique particulière du TMS320C40 distingue cette famille de DSP des autres familles de TMS320? (2 lignes maximum).

Communication inter-processeurs à 6 liens qui n'affecte pas l'activité du CPU.

Question 4 (20 points)

On emploie un code par résidu modulo 7 pour s'assurer de la validité des additions effectuées dans un CPU. Lors de l'addition des nombres 327 et 115, le système renvoit une somme de 463 et un résidu de 1. Discutez des chiffres obtenus (c'est-à-dire 463 et 1). La base 10 est employée ici. (10 lignes maximum).

327 mod 7 = 5
115 mod 7 = 3

327+ 115 = 442 et 5 + 3 = 8, or 8 mod 7 =1

On obtient 463 et le résidu modulo 7 de 463 est aussi 1. Donc on a affaire ici à une faille du cod age par résidus: aucune erreur ne sera déclanchée puisque la somme est en erreur d'un nombre égal à 463 - 442 = 21 = 3fois le modulo 7 utilisé.
C'est une erreur pru fréquente puisqu'elle correspond à 21 = 16+4+1 = b^2(10101), donc 5 bits en erreur.

Question 5 (40 points)

Employez un PAL 16L8 pour réaliser un multiplicateur non-signé de deux nombres de 2 bits (nb_a et nb_b). Le produit produit est obtenu sur 4 bits. Le circuit a une entrée supplémentaire: "active". Si le signal "active" est à 1, alors les sorties du PAL sont activées à leur état respectifs, autrement elles restes flottantes.

Écrivez la source ABEL qui permettra d'implanter ces fonctions dans le PAL 16L8, n'oubliez pas les vecteurs-tests, fournissez les explications requises pour que votre démarche soit claire.

Assumez que le niveau de réduction 2 suffit pour que votre design soit réalisable avec un PAL 16L8.


Exigences:


Piste de solution: il s'agit de bâtir une table de vérité avec 4 entrées (nb_a et nb_b) et 4 sorties (produit).
Pour ce qui est du signal "active," on procède avec un enable.
Solution partielle:
module q5 flag '-r2'
title 'nultiplicateur 2x2 non signé'
U1 device 'P16L8';
...
p0,p1,p2,p3 pin 12, 13, 14, 15;
active pin 9;
...
produit = [p3,p2,p1,p0]
...
enable produit = active;
...
test_vectors ...

end q5

Examen Partiel 2.2 - B

Répondre directement sur le questionnaire
durée: 8h30 à 10h20
Toute documentation permise

Question 1 (5 points)

Comment peut-on se servir d'un circuit intégré de mémoire comme machine d'états (5 lignes max).

On peut se servir d'un circuit intégré de mémoire comme machine d'états en la connectant à un compteur qui incrémente l'adresse à chaque coup d'horloge. On place les veleurs des états désirés dans les cases de la mémoire. En parcourant la mémoire, on passera à travers tous les états.

Question 2 (5 points)

Vous devez réaliser en quelques milliers d'exemplaires un circuit numérique d'une complexité de 200 portes environ, quelle approche choississez-vous?

On choisit les PALs car:


Question 3 (10 points)

A partir de tests de fiabilités, on obtient des données sur la fiabilité de 3 types de circuits dif férents, type C1,C2,C3. Pour ces circuits, on mesure une fiabilité de 0.5 après respectivement t1 = 42 minutes, t2 = 24 minutes et t3 = 10 minutes (les temps sont mesurés à partit du début de la vie utile des circuits en question). A partir de ces données, quel est le type de circuits le plus fiable? Pourquoi?

R=0.5 = exp (-lambda*t) donc lambda = (0.69/t)
Calculons le taux de panne (le + faible <=> le + fiable)
lambda1 = 0.69/42 = 0.0165 pannes/heure
lambda2 = 0.69/24 = 0.0280 pannes/heure
lambda3 = 0.69/10 = 0.0690 pannes/heure
Donc la réponse est le type C1 (lambda = 0.0165)

Question 4 20 (points)

Les nombres 3900 et 563 sont additionnés à l'aide d'un additionneur numérique équipé d'une unité détectrice d'erreur se servant de la méthode des résidus modulo 17. L'unité détectrice d'erreur revoit un résidu modulo 17 de 8. La base 10 est employée. Que déduisez-vous?

R(3900) = 7
R(0563) = 2

3900+563 = 4463 et R(4463) = 9
Si l'opération s'était effectuée correctement, on aurait eu un résidu de 7+2 = 9, mais on obtient plutôt un résidu de 8. On en déduit qu'il y a erreur dans le circuit d'addition ou dans le circuit de calcul du résidu.

Question 5 (40 points)

On vous demande d'écrire la source ABEL qui servira à configurer un PAL 16R4 en compteurs 2 bits (Q1 et Q0) à 2 vitesses: lente (Le): 2 coups d'horloge requis par changement d'état et rapide (Ra): 1 coup d'horloge requis par changement d'état. Le compteur a les entrées suivantes: Vitesse [Le=0, Ra=1], Clear [0 on efface tout et 1 pas d'effet].Il y a aussi l'entrée OE (output enable) du chip qui place les sorties en haute impédance.
Clock = pin 1
Clear = pin 2
Vitesse = pin 3
OE - pin 11
Q1 = pin 16
Q0 = pin 17


Exigences:


Piste de solution: employer un 'state diagram' et définir un compteur a huit états (000 à 111). Les 2 bits de poids faible correspondent à Q1 et Q0 ce qui permet d'accomoder les deux vitesses (La et Re): 'La' on passe à travers tous les états et 'Re' on passe de S0 -> S2 -> S4 - S6 -> S0, etc.


Code de résidu - préversation lors des opérations arithmétiques, exemple:

Soit les nombres 73 et 233. On emploit le résidu modulo 7.
R(73) = 3 et R(233) = 2 et donc somme des résidus = 2 + 3 = 5
Somme: 73+233 = 306 et résidu de la somme R(306) = 5
Cet exemple illustre que:
La somme des résidus = résidu de la somme, préservation des résidus lors de cette opération arithmétique.

Bon Succès à tous et à toutes!


Cette page a été mise à jour, le 22 novembre 2001