Vous êtes sur la page 1sur 7

Nom :

Prénom

Examen Session 1
Architecture des circuits microprogrammés
Vendredi 21 janvier 2022
Durée : 2 heures
Calculatrice et documents non autorisés

Questions de cours :

1. A quoi correspondent l'acronyme "MIPS"? Quelle est la différence avec la fréquence


processeur?

2. Combien existe-t-il de famille d'architectures pour un processeur non spécialisé? Les décrire
succinctement.

3. Comment un microcontrôleur fait-il pour communiquer avec ses périphériques?

4. Les processeurs possédant un jeu d'instruction réduit peuvent ne pas contenir d'instructions de
type "comparaison" (supérieur à, inférieur à, égal, ...). Comment les comparaisons sont-elles
alors effectuées?

5. Donnez le schéma générale d'une ALU. Décrivez en quelques lignes quels sont les blocs
principaux qui la constitue (vous pouvez vous aidez d'un schéma)?
Nom :
Prénom

Exercice 1:

1. L’architecture simplifiée du microcontrôleur DSPIC33EP512 est donnée en ANNEXE 1.


Décrivez en quelques lignes les rôles des blocs entourés en rouge
2. Le « port map » du DSPIC33EP512 est donné en ANNEXE 2.
Quels types de données peuvent être stockées dans la zone encadrée en rouge ? Quelles est
sa capacité en mots de 16 bits et en ko?

Exercice 2 :
On désire réaliser l'opération suivante avec le microcontrôleur DSPIC33EP512:
𝑅 = 𝐴−𝐵+𝐶
Les données A, B et C sont déjà respectivement enregistrées aux adresses mémoire 0x3010, 0x3012
et 0x3014. On désire enregistrer le résultat R à l'adresse 0x2500. Les données (A, B et C) ne doivent
pas être supprimées ou écrasées durant les calculs.
1. Décrivez les étapes nécessaires (en terme d'instructions) pour réaliser ce calcul. Vous
pouvez par exemple réaliser une description en pseudocode ou à l'aide d'un diagramme
séquentiel.

2. Ecrire les codes assembleur (les instructions assembleur sont données en ANNEXE 3)
utilisées pour chacune des étapes décrites précédemment.

3. Quelles est le temps nécessaire, en nombre de cycles instructions, pour réaliser ce calcul?
Quel est ce même temps en seconde si le processeur fonctionne à 10MIPS?
Nom :
Prénom

Exercice 3:
Dans cet exercice, nous désirons utiliser le PORT B, relié physiquement à un convertisseur Numérique
Analogique pour générer un signal. Le processeur fonctionne à 10MIPS.

1. En vous aidant du programme ci-dessus, et sans donner les détails pour chaque ligne, décrivez les
principales parties composant un programme en langage C pour microcontrôleur.

Quel est le rôle de la boucle for(;;)?

Quel est le rôle de la fonction "_T3interrupt" et de l'instruction "IFS0bits.T3IF = 0;"?

2. Le code de la fonction "init_tmr3_interrupt ()" est donné en ANNEXE 4.


Quel est le signal obtenu en sortie du PORT B? Vous pouvez vous aidez d'un chronogramme.

Ce signal est-t-il périodique? Justifiez. Si oui, quelle vaut sa période en seconde?


Nom :
Prénom

ANNEXE 1 Architecture simplifiée du microcontrôleur DSPIC33EP512


Nom :
Prénom

ANNEXE 2 Port Map du microcontrôleur DSPIC33EP512


Nom :
Prénom

ANNEXE 3 Extrait du jeu d’instruction du microcontrôleur DSPIC33EP512


Nom :
Prénom

ANNEXE 4 code de la fonction "init_tmr3_interrupt ()"

void init_tmr3_interrupt (void)


{
T3CONbits.TON = 0; // Stop any 16-bit Timer3 operation
T2CONbits.TON = 0; // Stop any 16/32-bit Timer2 operation
T2CONbits.T32 = 1; // Enable 32-bit Timer mode
T2CONbits.TCS = 0; // Select internal instruction cycle clock
T2CONbits.TGATE = 0; // Disable Gated Timer mode
T2CONbits.TCKPS = 0b00; // Select 1:1 Prescaler
TMR3 = 0x00000; // Clear 32-bit Timer (lsw)
TMR2 = 0x00000; // Clear 32-bit Timer (msw)
PR3 = 0x0100; // Load 32-bit period value (lsw)
PR2 = 0x0000; // Load 32-bit period value (msw)
IPC2bits.T3IP = 0x01; // Set Timer3 Interrupt Priority Level
IFS0bits.T3IF = 0; // Clear Timer3 Interrupt Flag
IEC0bits.T3IE = 1; // Enable Timer3 interrupt
T2CONbits.TON = 1; // Start 32-bit Timer */
}

Rappel:

24 =16; 28 =256; 212 =4096; 216 =65536; 220 =1048576; 224 =16777216; 228
=268435456; 232 =4294967296;

Vous aimerez peut-être aussi