Informatique Industrielle : Examen Systèmes à Microprocesseurs 2016
Télécharger PDFExamen Systèmes à Microprocesseurs – Instrumentation Pétrolière (Master 1)
Exercice 1 : Interruptions du microprocesseur 6800
[06 points]
1. **Interruptions logicielles et matérielles du 6800** :
Les interruptions du microprocesseur 6800 se divisent en deux catégories :
- Interruptions logicielles :
- Interruptions matérielles :
2. **Rôle d’une interruption** :
Une interruption permet au microprocesseur de suspendre temporairement l’exécution d’un programme principal pour répondre à une demande urgente ou imprévue. Par exemple, un périphérique comme un clavier envoie une interruption lorsque l’utilisateur appuie sur une touche, ce qui déclenche une routine spécifique pour traiter cette entrée.
3. **Actions du microprocesseur lors d’une requête d’interruption** :
Lorsqu’une interruption est demandée, le microprocesseur :
- Termine l’instruction en cours.
- Vérifie si l’interruption est masquée (bit I = 1).
- Si non masquée :
- Empile le contenu des registres (PC, CCR, A, B, X).
- Mets le bit d’interruption (I) à 1 pour bloquer les nouvelles interruptions.
- Charge l’adresse de la routine d’interruption dans le PC.
- Exécute la routine d’interruption.
- Restaure les registres (PC, CCR, A, B, X) depuis la pile.
- Retourne au programme principal.
- Si masquée : Ignore l’interruption.
4. **Différence entre une interruption normale (IRQ) et une interruption NMI** :
| IRQ | NMI |
|---|---|
| Ligne d’interruption normale | Ligne d’interruption prioritaire |
| Peut être masquée par le bit I = 1 | Non masquable |
| Routine d’interruption à l’adresse [FFF8] – [FFF9] | Routine d’interruption à l’adresse [FFFC] – [FFFD] |
Exercice 2 : Comptage des « 1 » dans un mot binaire
[07 points]
1. **Organigramme pour compter les « 1 » dans le mot binaire « 11111010 »** :
L’organigramme doit inclure les étapes suivantes :
- Initialiser un compteur (registre B) à 0.
- Tester le bit le plus significatif (MSB) du mot binaire.
- Si le bit est 1, incrémenter le compteur.
- Décaler le mot vers la droite pour examiner le bit suivant.
- Répéter jusqu’à ce que tous les bits soient testés.
2. **Programme assembleur avec le registre B pour le comptage** :
Utiliser les instructions BCC pour le test et BRA pour le branchement.
3. **Modification du programme avec le registre X pour le comptage** :
Remplacer le registre B par le registre X et utiliser BNE pour le branchement.
4. **Améliorations apportées par ces changements** :
- Utilisation du registre X, plus adapté pour des opérations de comptage complexes.
- L’instruction BNE (Branch if Not Equal) peut simplifier la logique de test en comparant directement avec zéro.
- Possibilité d’étendre le programme pour d’autres opérations sans modifier la structure de base.
Exercice 3 : Échange de deux blocs de données en mémoire
[07 points]
1. **Schéma du résultat attendu après l’échange** :
Avant échange :
| Adresse | Valeur |
| 0000 | 09 |
| 0001 | 0A |
| 0002 | 0B |
| 0003 | 0C |
| 0004 | 00 |
| 0005 | 01 |
| 0006 | 02 |
| 0007 | 03 |
| 0008 | 04 |
| 0009 | 05 |
| 000A | 06 |
| 000B | 07 |
Après échange :
| Adresse | Valeur |
| 0000 | 04 |
| 0001 | 05 |
| 0002 | 06 |
| 0003 | 07 |
| 0004 | 09 |
| 0005 | 0A |
| 0006 | 0B |
| 0007 | 0C |
| 0008 | 00 |
| 0009 | 01 |
| 000A | 02 |
| 000B | 03 |
2. **Solution proposée sous forme d’étapes** :
- Copier le premier bloc de données dans une zone temporaire.
- Déplacer le deuxième bloc vers l’emplacement du premier.
- Déplacer le premier bloc (initialement copié) vers l’emplacement du deuxième.
- Vérifier la cohérence des données après l’échange.
3. **Programme assembleur pour échanger les blocs** :
Utiliser des instructions de chargement, de stockage et de boucle pour transférer les données.
4. **Deuxième programme utilisant la pile** :
- Empiler les adresses et les valeurs du premier bloc.
- Déplacer le deuxième bloc vers l’emplacement du premier.
- Restaurer les valeurs du premier bloc depuis la pile vers l’emplacement du deuxième.
- Vérifier la cohérence des données après l’échange.
FAQ sur les Interruptions et les Microprocesseurs
Qu’est-ce qu’une interruption matérielle ?
Une interruption matérielle est un signal envoyé par un périphérique ou un composant matériel pour demander l’attention du microprocesseur. Elle est souvent utilisée pour gérer des événements externes comme une entrée clavier ou une réception de données.
Comment différencier une interruption IRQ d’une NMI ?
L’IRQ est une interruption normale qui peut être masquée par le microprocesseur, tandis que la NMI (Non-Maskable Interrupt) est une interruption prioritaire qui ne peut pas être ignorée, même si le bit de masquage est activé.
Pourquoi utiliser la pile pour échanger des blocs de données ?
La pile permet de sauvegarder temporairement les données sans utiliser de mémoire supplémentaire. Elle simplifie l’échange en évitant de manipuler des zones de stockage externes et garantit une restauration correcte des valeurs initiales.