You are on page 1of 9

EXERCICES D'ARCHITECTURE DES ORDINATEURS

18/10/2010
CHAPITRES 1&2 1. CONVERTION DANS DAUTRES BASES crire 101101102 en dcimal. crire 3456 en binaire, puis en hexadcimal. 2. CODAGE EN COMPLEMENT A 2 Sur 8 bits, donner les codages en complment 2, lorsque cest possible, des nombres suivants : 0, -1, +10, -10, +64, -64, +127, -127, +200 3. ARITHMETIQUE BINAIRE Sur 8 bits, effectuer la somme en binaire : 1011 01012 + 1100 00112 et interprter le rsultat en criture dcimale, en arithmtique signe et non signe. Indiquer dans chaque cas sil y a dbordement. Mme question pour la somme : 111 01012 + 1100 00112 1. ALGEBRE DE BOOLE Simplifier lexpression suivante, en utilisant les thormes de lalgbre de Boole : . . + . . + . +

4. ALGEBRE DE BOOLE : QUINE MC CLUSKEY Simplifier lexpression suivante, en utilisant lalgorithme de Quine McCluskey : (1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31) 5. ALGEBRE DE BOOLE : GLITCH Enumrer tous les glitches que peut prsenter lexpression suivante : = + +

Proposez une expression modifie qui supprime tous ces glitches. 6. ALGEBRE DE BOOLE Prouver algbriquement (par un calcul) que le schma suivant est un additionneur complet :

7. ALGEBRE DE BOOLE Rcrire lexpression suivante, uniquement avec loprateur complet NAND : XOR(A,B) 8. CIRCUIT COMBINATOIRE : SYNTHESE PAR TABLE DE VERITE On souhaite concevoir un circuit combinatoire qui calcule la valeur absolue en binaire pur sur 4 bits x,y,z,t dun nombre cod en complment 2 sur 4 bits, a,b,c,d. Donner la table de vrit de ce circuit combinatoire, puis fournir les quations de x,y,z,t en fonction de a,b,c,d en les simplifiant au besoin laide de tables de Kanaugh. 9. CIRCUIT COMBINATOIRE : SYNTHESE FONCTIONNELLE On souhaite concevoir un circuit combinatoire qui commande louverture dune porte de jardin publique, ouverte en hiver de 10h 18h et en t de 8h 20h. Lheure est code sur 5 bits, sous forme dun nombre entier H compris entre 0 et 23 ; la saison est code sous forme dun signal S (0=hiver, 1=t). Concevoir un circuit dinterface PORTE(H[4..0], S : M) tel que M=1 si et seulement si : S = 0 et 10 H 18, ou S = 1 et 8 H 20

On concevra le circuit de faon fonctionnelle, en combinant uniquement : 2 comparateurs non signs sur 5 bits 2 multiplexeurs 2 :1 oprant sur des bus de 5 bits une porte ET deux entres

10. CIRCUIT COMBINATOIRE : CONCEPTION MODULAIRE Construire un encodeur de priorit 8 entres avec 2 encodeurs de priorit 4 entres. Les circuits ont linterface : prioencoder4(e[3..0] : num[1..0], act) prioencoder8(e[7..0] : num[2..0], act)

11. CIRCUIT COMBINATOIRE : CONCEPTION MODULAIRE Construire un multiplexeur 8 :1 avec 2 multiplexeurs 4 :1 et un multiplexeur 2 :1 12. CIRCUIT COMBINATOIRE : CONCEPTION MODULAIRE Construire un dcodeur 3 : 8 avec 2 dcodeurs 2 : 4 13. CIRCUIT COMBINATOIRE : CONCEPTION MODULAIRE Construire un comparateur non sign de 8 bits, dinterface : ucmp8(a[7..0], b[7..0] : sup, eq) avec 2 comparateurs non signs de 4 bits, dinterface : ucmp4(a[3..0], b[3..0] : sup, eq)

14. MEMOIRES Associer 4 modules mmoires de 4K mots de 4 bits, dinterface mem4Kx4(addr[11..0], W, CE, OE : data[3..0]) pour former un module de 16K mots de 4 bits.

CHAPITRES 3&4 15. CIRCUIT SEQUENTIEL : CONCEPTION AVEC GRAPHE DETATS Concevoir un circuit squentiel synchrone dinterface croissant(rst, clk, a[1..0] : up) tel que up=1 si et seulement si la valeur de a[1..0] au front dhorloge est plus grande ou gale (comparaison non signe) la valeur de a[1..0] au front dhorloge prcdent (= si a[1..0] croit ou reste stable). dessiner le graphe de MEALY de ce circuit synthtiser le circuit avec des bascules D

16. CIRCUIT SEQUENTIEL : CONCEPTION FONCTIONNELLE Concevoir de faon fonctionnelle un circuit analogue au prcdent oprant sur des nombres de 4 bits avec un registre 4 bits et un comparateur non sign sur 4 bits. 17. CIRCUIT SEQUENTIEL : CONCEPTION AVEC GRAPHE DETATS Concevoir un circuit de commande de chaudire dinterface
module chaudiere(rst, clk, chaud, froid : m)

froid = 1 ssi il fait moins de 18 ; chaud = 1 ssi il fait plus de 22 La chaudire doit se mettre en marche lorsquil fait froid, et doit sarrter lorsquil fait chaud 18. CIRCUIT SEQUENTIEL Dessiner le graphe de MOORE dun circuit squentiel qui dtecte la squence 1,1 ; concevoir ce circuit laide dun registre dcalage de 2 bits. Transformer le graphe de MOORE en graphe de MEALY, puis concevoir le circuit correspondant. En sinspirant du rsultat obtenu, produire un circuit de MEALY qui dtecte la squence 1,0,1. 19. MODIFICATION DUN COMPTEUR Modifier un compteur de Johnson 3 tats pour quil ne compte que sur 5 tats, en passant de 001 000. 20. MODIFICATION DUN COMPTEUR Concevoir et donner le code MDL dun compteur-dcompteur sur 4 bits, qui compte selon la squence 0, 1, , 14, 15, 14,, 2, 1, 0, 1, On produira aussi en sortie un signal down qui indique si le compteur est en phase descendante (=1) ou ascendante (=0). 21. COMPTEUR AVEC INITIALISATION Concevoir un compteur 4 bits synchrone dinterface cpt4ini(rst, clk, load, ini[3..0] : s[3..0]) tel que, lorsque load = 0 il compte normalement, et lorsque load=1 la valeur du compteur est initialise avec ini[3..0] au front dhorloge.

AJOUTER EXERCICE DE REVERSE ENGNEERING DUN CIRCUIT EXISTANT, avec simplification et resynthse

CHAPITRES 5 22. AJOUT D'UNE NOUVELLE INSTRUCTION On souhaite ajouter CRAPS une nouvelle instruction (et NON une instruction synthtique), d'criture assembleur : swap %r<i>, %r<j> Cette instruction doit permuter le contenu de %r<i> et %r<j>, sans modifier aucun autre registre (utilisateur). Proposer un nouveau code machine pour cette instruction, dans le groupe des instructions de calcul, et dcrire toutes les modifications effectuer pour limplmenter. 23. AJOUT D'UNE NOUVELLE INSTRUCTION On souhaite ajouter CRAPS une nouvelle instruction (et NON une instruction synthtique), d'criture assembleur :

max %rs1, %rs2, %rd Cette instruction copie dans %rd la plus grande des deux valeurs des registres %rs1 ou %rs2, considres comme signes. Proposer un nouveau code machine pour cette instruction, dans le groupe des instructions de calcul, et dcrire toutes les modifications effectuer pour limplmenter. 24. SEQUENCE DE MICROCOMMANDES ASSOCIEES A L'INSTRUCTION Complter le tableau suivant avec la suite des microcommandes envoyer pour excuter l'instruction : ld areg breg [%rs1+simm13], %rd dreg cmd_ual oe_num write commentaire

25. ACCELERATION DE LEXECUTION DUNE INSTRUCTION On souhaite acclrer les instructions de lecture en mmoire lorsquelles ont la forme particulire suivante (registre rs2 nul): ld [%ri+%r0],%rj (1)

%ri et %rj sont deux registres utilisateurs ; elle est habituellement crite ld [%ri],%rj dessiner le code machine de cette instruction (les champs i et j seront indiqus de faon gnrique) dessiner le sous-graphe de squencement des instructions ld avec 2 t vu en TDTP Modifier ce graphe pour acclrer les instructions du type (1).
me

oprande registre, tel quil a

26. AJOUT DUN BOITIER MEMOIRE On souhaite rajouter un boitier mmoire la machine CRAPS, de taille 1024 mots de 32 bits, partir de ladresse 0x50000000 dans lespace dadressage du processeur. Dcrire toutes les modifications effectuer. 27. DECODAGE DADRESSE

On souhaite rajouter la micromachine 8 autres leds, mappes ladresse 0x80000000 dans lespace dadressage du processeur. Dcrire toutes les modifications effectuer. 28. PROGRAMMATION DE CRAPS On suppose que %r2=0x8000 Pour chacun des cas suivants, crire une (seule) instruction qui effectue lopration demande : Ecrit en mmoire %r3 ladresse 0xFC Fait en sorte que le flag Z indique la nullit de %r1 (dautres flags peuvent tre modifis)

29. ASSEMBLAGE Donnez le code machine des instructions suivantes, en binaire et en hexadcimal : umulcc ld loop : ba %r1, -3, %r2 [%r3+%r4], %r5 loop

30. DESASSEMBLAGE Donnez lcriture assembleur des instructions de codes suivants : 0xC4204000 0x81C7E004 31. ACCELERATION DE LEXECUTION DUNE INSTRUCTION On dsire acclrer lexcution des instructions ld avec 2
me

oprande immdiat.

Ide : faire faire simultanment par lUAL le calcul de lextension de signe de la constante ET la somme des deux oprandes pour le calcul de ladresse mmoire. Proposer une modification du graphe de squencement de cette instruction ET lajout dune nouvelle fonction de lUAL (que ncessite cette mthode). On spcifiera la nouvelle fonction de lUAL (par une formule ou une phrase) sans dcrire son implmentation, et on dessinera le sous-graphe de squencement modifi.

CHAPITRE 6 32. GESTION DUN CACHE Voici un cache de type directed mapped pour une mmoire de 512 mots de 16 bits, avec son contenu.
valid dirty 00 01 10 11 0 1 1 0 0 1 0 0 Tag (7 bits) 0101100 1110000 0101010 0000000 7 address TAG Data (1 word) 0000 0000 0000 0000 1000 0000 1000 0000 0101 0000 0000 0000 0000 0000 0000 1100 2 LINE 4 cache lines

Le mot dadresse 0b010110001 est-il dans le cache ? Si oui quelle est la valeur associe ? Si oui, la mmoire est-elle jour ? Le mot dadresse 0b111000001 est-il dans le cache ? Si oui quelle est la valeur associe ? Si oui, la mmoire est-elle jour ? Le mot dadresse 0b000000011 est-il dans le cache ? Si oui quelle est la valeur associe ? Si oui, la mmoire est-elle jour ? Si la donne 0x1234 situe en mmoire ladresse 0x1BA tait dans le cache, comment apparaitraitelle ?

33. PROTOCOLE MESI DE COHERENCE DE CACHES On suppose lexistence de 3 processeurs CPU1CPU3 ayant chacun une cache line CL1CL3 pour une mme zone de donnes en mmoire, nomme A. On suppose galement que cette zone A est accde par les 3 CPU selon la squence suivante : CPU1 lit A ; CPU2 lit A ; CPU1 modifie A ; CPU3 modifie A ; CPU1 lit A Dcrire lvolution des bits MESI de ces caches lines, depuis une situation initiale o ils sont tous invalides Indiquer tous les accs mmoire (lecture et criture) effectus

34. MEMOIRE VIRTUELLE PAGINEE On suppose lexistence dune mmoire relle de 4 pages frames, et dune mmoire virtuelle de 8 pages, avec une table des pages de la forme suivante :

present page # 0 1 2 3 4 5 6 7 dirty adresse disque page frame #

On suppose que le systme utilise la stratgie FIFO lorsquune page frame est recopie sur le disque. On suppose galement que la traduction dadresse est faite sur le schma suivant :
page # 100 1101000110 adresse virtuelle page frame # 11 1101000110 adresse relle

1.

Quelle est la taille de la mmoire virtuelle ? De la mmoire relle ? Quelle est la taille des pages ? On part dun tat initial o aucune page nest prsente et le processeur fait un premier accs mmoire, en criture, ladresse virtuelle 0x0F46. Dcrire lvolution des bits: present, dirty, page frame dans la table des pages, et indiquer quels accs la mmoire relle et quels accs disque ont t effectus. Faire de mme en continuant avec les accs suivants du processeur : lecture en 0x0F46 ; criture en 0x0800 ; criture en 0x0F00 ; lecture en 0x0804 ; lecture en 0x0C00 ; lecture en 0x1800 ; lecture en 0x1C00 ; lecture en 0x0400

2.

3.

35. PIPELINE On considre le programme suivant : setq clr loop: add deccc bne i6 i7 Indiquer dans le tableau suivant comment les instructions progressent dans le pipeline, initialement compltement rempli de bulles. On supposera que les branchements introduisent systmatiquement un ala de contrle sans prdiction. cycle 1 PC o Instr o Args o Calc o Mem o Result o 10, %r1 %r2 %r1, %r2, %r2 %r1 loop

You might also like