IFT-19638 Organisation matérielle et logicielle de l'ordinateur Corrigé du TP2 À remettre le ou avant le vendredi 27 octobre 2000. 1. Donnez un circuit capable de déterminer si un nombre de 4 bits A = A3A2A1A0 est plus grand qu'un nombre de 4 bits B = B3B2B1B0. Si A3 = 1 et B3 = 0, A > B quelle que soit la valeur des autres bits. Pour ce cas, on a A > B = A3B3.Si A3 = B3, A > B si A2 = 1 et B2 = 0, quelle que soit la valeur des autres bits. Pour ce cas, on a A > B = (A 3 ⊕ B 3)A 2B2 . On obtient donc finalement : A > B = A3 B3 +( A3 ⊕ B3 )A2 B2 + (A3 ⊕ B3 )(A2 ⊕ B2 )A1 B1 + (A3 ⊕ B3 )( A2 ⊕ B2 )(A1 ⊕ B1 )A0 B0 d'où le circuit : 2. Considérez le circuit d'un additionneur 4 bits (supplément, p. 23, transparent 144), où chaque carré contient un circuit additionneur de 1 bit (Transparent 143). En supposant que le délai de propagation (temps entre l'application d'une entrée et l'apparition de la sortie) des porte ET et OU est de 1 ns et que celui d'une porte OUexclusif est de 3 ns, quel temps faut-il pour que les quatre bits S3 à S0 du résultat soient valides. Quel temps faut-il pour que la retenue C4 soit correcte ? Le circuit ci-dessous est le circuit de chaque additionneur. Les chiffes au-dessus de chaque fil indiquent le temps où le signal est valide dans le cas de l'additionneur de droite, i.e. le moins significatif. A B 0 0 3 6 S 0 C 3 0 4 0 1 5 C’ 0 Pour l'additionneur suivant, puisque la sortie C' du premier est appliquée à l'entrée C, elle n'est valide qu'au bout de 5 ns. On a donc : A B C 0 0 3 8 S 5 3 5 6 0 1 7 C’ 0 On voit donc que les sorties sont retardées de 2 ns chacune par rapport à celles du premier additionneur. En raisonnant ainsi sur les quatre additionneurs, les sorties S0, S1, S2 et S3 seront donc valides respectivement aux temps 6, 8, 10, et 12 ns, tandis que la sortie C4 ne sera disponible qu'au bout de 11 ns. Cet exercice avait pour but de vous faire réaliser qu'un tel additionneur serait beaucoup trop lent pour un processeur moderne. Si on faisait une additioneur de 32 bits de la sorte, le résultat de 32 bits ne serait valide qu'au bout de 68 ns. Or, les processeurs actuels exécutent une instruction environ chaque ns. La solution consiste à calculer les retenues en parallèle plutôt qu'en série. 3. Dans beaucoup de dispositifs électroniques (montres, voltmètres, etc), on trouve des afficheurs numériques. Dans ce problème, nous nous intéressons au fonctionnement de tels dispositifs. Considérons un afficheur pour un chiffre décimal. Il est constitué de 7 segments, numérotés de a à g, comme les représente la figure ci-dessous. Chaque segment est allumé ou éteint selon le chiffre décimal que l’afficheur doit représenter: a. Déterminez les entrées et les sorties du circuit logique qui contrôle l’afficheur et faites sa table de vérité : ABCD 0000 0001 0010 ... abcdefg 1111110 0110000 1101101 ... b. Trouvez l’équation logique simplifiée pour le segment b. c. Tracez le circuit résultant pour le segment b. La table de vérité complète est : ABCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 abcdefg 1111110 0110000 1101101 1111001 0110011 1011001 1011111 1110000 1111111 1111011 xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx xxxxxxx Pour le segment b, on a les tables de Karnaugh suivantes : CD AB 00 01 11 10 00 1 1 1 1 01 1 0 1 0 11 1 1 x x 10 x x x x b = A + B + C.D + C.D =A+B+C⊕D On obtient le circuit suivant : B A C b D 4. Donnez le circuit d'un détecteur de séquence 0-0-1 synchrone. On applique dans le temps une séquence de bits quelconques à l'entrée de ce circuit. Si l'entrée 0-0-1 se présente lors de trois périodes d'horloge successives, alors la sortie devient 1 pour une période d'horloge, sinon elle est 0. (Voir la page Exemples, circuits logiques, circuits séquentiels). On obtient le diagramme d'états et la table de transition : 1/0 A 1/0 0/0 0/0 B C État Entrée État présent futur A 0 B A 1 A B 0 C B 1 A C 0 C C 1 D D 0 B D 1 A 0/1 D 0/0 1/1 Sortie 0 0 0 0 0 0 1 1 On assigne arbitrairement des valeurs à A, B, C et D : 00, 01, 11 et 10. On remplace ces valeurs dans la table de transition : Q1Q2 x 00 00 01 01 10 10 11 11 Q1Q2 00 01 11 10 x 0 0 1 0 1 0 1 0 1 0 1 0 1 Q1+Q2+ Sortie D1 D2 01 00 10 00 10 11 01 00 x 1 0 0 0 1 D1 D1 = Q 1Q2 + x.Q 1Q2 01 00 10 00 10 11 01 00 0 0 0 0 0 0 1 1 Q1Q2 00 01 11 10 0 1 0 0 1 1 0 0 1 0 D2 D2 = x.Q 2 + x.Q 1Q2 + x.Q 1Q2 = x.Q2 + Q1 (xQ 2 + x.Q2 ) = x.Q2 + Q1 (x ⊕ Q 2) x D1 Q1 D2 Q2 Q1 Q2 Ck 5. Un DIMM de mémoire DRAM de 256 Mo est réalisé au moyen de puces de 16 M x 4. a. Combien y a-t-il de puces sur le DIMM. b. Combien de lignes d'adresses chaque puce comporte-t-elle? d. Dessiner le circuit de cette mémoire en incluant les lignes RAS, CAS, R/W, etc. comme à la figure de la p. 52 du supplément. a. Il y a 32 puces sur le DIMM : 2 puces de 16 M x 4 donnent 16 Mo. Il faut 256 Mo. 256 Mo / 16 Mo = 16. Il faut donc 16 fois x 16 M x 4 x 2. b. Chaque puce a besoin de log2(16M) bits d'adresse, soit 24 bits d'adresse. Toutefois, comme il s'agit de mémoires dynamiques, ces 24 bits sont appliqués en deux moitiés successives sur 12 fils (lignes) d'adresse. c. Circuit : 6. Le Pentium II possède deux caches de niveau I : un cache de données et un cache d'instructions. Chacun de ces caches a une capacité de 16 Ko et est accociatif par ensembles de 4 blocs. Chaque bloc ou ligne contient 32 octets. Dans chacun de ces caches, a. Quel est le nombre de bits dans le champ étiquette d'une adresse de 36 bits ? b. Combien y a-t-il de bits dans le champ index ? c. Dans quel ensemble trouverait-on l'étiquette de l'adresse 00000ABCDh ? a. Le cache a 16 Ko. Il possède 16 K / (4 x 32) = 128 rangées. Le champ index contiendra donc 7 bits (log2 128). Il faut 5 bits dans le champ adresse dans le bloc pour adresser chacun des 32 octets (log2 32). Il reste donc 36 - 12 = 24 bits pour l'étiquette. b. 7 bits. c. On écrit l'adresse en binaire. Les bits en rouge sont l'étiquette, en bleu, l'index et en vert, l'adresse dans le bloc. 0000 0000 0000 0000 0000 1010 1011 1100 1101 Cette étiquette sera dans la rangée 1011110 ou 5E16 ou 9410. Sa valeur sera 00000A16.