19. interruptions Flashcards

1
Q

Une interruption interrompt

A

l’exécution des instructions
par le microprocesseur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Lors d’une interruption: 3 étapes

A
  1. l’exécution du programme principal est suspendue;
  2. une routine (fonction) traitant l’interruption est exécutée;
  3. puis le programme principal est continué.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelle est la différence entre une interruption et un
branchement?

A

les interruptions peuvent survenir n’importe quand pendant
l’exécution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4 Types d’interruptions

A
  • Système: reset, faute matérielle générale, etc.
  • Exception: erreur au cours de l’exécution des instructions, par
    exemple:
  • instruction invalide
  • division par 0
  • tentative d’accès à de la mémoire protégée
  • Matérielles: générées par les périphériques, par exemple:
  • le clavier dans notre scénario 1 plus haut
  • l’imprimante lorsqu’elle a terminé, etc.
  • Logicielles: générées par le programmeur avec une instruction
    spéciale (présente dans tous les jeux d’instructions)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Il y a 7 types d’interruptions dans le microprocesseur ARM

A
  1. Reset: redémarrage du microprocesseur
  2. Interruption logicielle: activée par l’instruction SVC pour utiliser les
    fonctions systèmes (par exemple pour communiquer avec les
    périphériques);
  3. Data abort: accès mémoire invalide lors d’un LDR;
  4. Prefetch abort: accès mémoire invalide lors de la lecture d’une
    instruction (étape « lecture » dans le pipeline)
  5. Instruction indéfinie: erreur dans le décodage d’une instruction
  6. IRQ: activée par un périphérique (Interrupt ReQuest)
  7. FIQ: activée par un périphérique, mais qui peut être traité plus
    rapidement qu’une IRQ (Fast Interrupt reQuest)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

expliquer concept de priorité

A

une interruption
de haute priorité peut interrompre une interruption
ayant un niveau de priorité plus bas.
* Certaines interruptions peuvent survenir n’importe
quand, même pendant une autre interruption.
* Certaines interruptions, comme «reset», ont une
priorité (maximale pour «reset») qui ne peut pas
être changée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

lister ordre de priorité (haut vers bas)

A

reset, data abort, FIQ, IRQ, prefetch abort, interruption logicielle et instruction indéfinie

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’arrive-t-il si une interruption survient lorsqu’on
traite une interruption?

A

Cela dépend de la priorité
* Si la priorité de la nouvelle interruption est plus élevée:
* On interrompt l’exécution et on traite cette nouvelle
interruption

  • Si la priorité de la nouvelle interruption est moins élevée:
  • On attend que le traitement de l’interruption à plus haute
    priorité soit terminé, et on traite cette nouvelle interruption
    par la suite
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

étapes de traitement d’interruptions

A

Interruption!
1. Terminer l’instruction en cours
2. Déterminer s’il faut traiter l’interruption.
3. Sauvegarder le contexte
4. Déterminer l’adresse de la routine de traitement de l’interruption
5. Exécuter cette routine

Traitement de l’interruption…
1. Restaurer le contexte
2. Reprendre là ou le processeur était rendu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

fonctions « spéciales » que l’on appelle que pour
traiter les interruptions

A

Les routines de traitement d’interruptions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Où sont-elles situées?

A
  • en mémoire!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Comment fait-on pour savoir:
* quelle routine exécuter pour quelle interruption?
* à quelle adresse est cette routine?

A

Grâce à la table des vecteurs d’interruption

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Table des vecteurs d’interruption
* Contient une—— (en ARM) qui branche vers
la ——- de l’interruption
* Commence à l’adresse —– de la mémoire
* peut être déplacée ——-
* dans un système complet, la table est modifiée par le
————.

A

Table des vecteurs d’interruption
* Contient une instruction (en ARM) qui branche vers
la routine de traitement de l’interruption
* Commence à l’adresse 0x0 de la mémoire
* peut être déplacée ailleurs
* dans un système complet, la table est modifiée par le
système d’exploitation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

nombre de registre ARM et leur utilité

A

16 registres de 32 bits:
* R0 à R12: registres généraux

  • R13 à R15: registres spécifiques (ayant des
    fonctionnalités pré-établies)
  • R13: Pointeur de pile (Stack Pointer ou SP)
  • R14: Registre de liens (Link Register ou LR)
  • R15: Compteur de programme (Program Counter ou PC)
  • 1 registre d’état, le Current Program Status Register
    (CPSR)
  • mémorise les résultats d’opérations arithmétiques
  • stocke le « mode d’exécution »
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Un microprocesseur possède plusieurs

A

modes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

En temps normal, le microprocesseur est en mode

A

utilisateur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Lorsqu’une interruption survient, le microprocesseur
adopte le mode correspondant à

A

l’interruption
traitée

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Le microprocesseur ARM possède 6 modes, qui
correspondent aux interruptions disponibles:

A

User: le mode « par défaut » disponible pour le programmeur
2. Supervisor: activé par une instruction du programmeur pour
utiliser les fonctions systèmes (par exemple pour communiquer
avec les périphériques);
3. Abort: activé lors d’un accès mémoire invalide;
4. Undefined: activé lors d’une erreur dans le décodage d’une
instruction (instruction invalide)
5. IRQ: activé par un périphérique (Interrupt ReQuest)
6. FIQ: activé par un périphérique, mais qui peut être traité plus
rapidement qu’une IRQ (Fast Interrupt reQuest)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Chaque mode possède ses ——- qui lui sont
propres
* le microprocesseur ARM vu dans le cours possède —-
—– physiques en tout!
* seulement— sont accessibles à la fois

A

Chaque mode possède ses registres qui lui sont
propres
* le microprocesseur ARM vu dans le cours possède 31
registres physiques en tout!
* seulement 16 sont accessibles à la fois

20
Q

Une pile spéciale est disponible pour chaque type
d

A

interruption

21
Q

On peut donc sauvegarder les registres avec —- et
—- à l’intérieur des routines de traitement de l’interruption

A

On peut donc sauvegarder les registres avec PUSH et
POP à l’intérieur des routines de traitement de l’interruption

22
Q

Le « contexte » d’un programme représente

A

informations importantes à son bon déroulement.

23
Q

Quelles sont ces informations

A
  • PC (notre vieil ami)
  • Les drapeaux dans le CPSR
  • Les registres
24
Q

Qu’arrive-t-il au contexte lors d’une interruption

A

PC (notre vieil ami)
* est sauvegardé automatiquement dans LR

  • Le CPSR
  • est sauvegardé automatiquement dans le SPSR
  • Les registres
  • dépend du mode!
25
Q

Dans la routine de traitement de l’interruption, on peut simplement
utiliser les registres —- —–

A

Dans la routine de traitement de l’interruption, on peut simplement
utiliser les registres comme d’habitude

26
Q

Dans plusieurs architectures, une instruction spéciale est utilisée
pour indiquer

A

la fin d’une interruption

27
Q

En ARM, c’est, comment dire, un peu bizarre… il faut

A

utiliser une
instruction
* qui change les drapeaux (avec S)
* et qui stocke son résultat dans PC (!)

28
Q

Les interruptions de l’ordinateur sont gérées par

A

le contrôleur
d’interruption

29
Q

rôle du contrôleur d’interruptions

A

reçoit les signaux d’interruptions
* peut activer (masquer) ou désactiver certaines interruptions.
* modifier la priorité des interruptions.
* signale les interruptions au microprocesseur à l’aide de fils dédiés à
cette fin.
* peut être configuré via des instructions dans la mémoire

30
Q

Dans le cas du processeur ARM, le contrôleur d’interruptions
est inclus dans

A

le coeur

31
Q

L’interruption —- est l’interruption système la plus
prioritaire

A

L’interruption reset est l’interruption système la plus
prioritaire

32
Q

Cette interruption peut survenir pour
plusieurs raisons

A

mise sous tension, activation de la broche reset du
microprocesseur, instruction reset, etc.

33
Q

Lors d’un reset, toutes les autres interruptions sont

A

ignorées

34
Q

Les exceptions surviennent quand

A

un évènement
logiciel spécial arrive. Par exemple:
* instruction invalide
* division par 0
* référence à une adresse invalide
* accès invalide à une adresse protégée

35
Q

Les exceptions ont un très —– niveau de priorité
parce que

A

Les exceptions ont un très haut niveau de priorité
parce le microprocesseur est dans une impasse: il
ne peut exécuter l’instruction en cours en raison
d’une erreur de programmation!

36
Q

Les interruptions matérielles sont générées par

A

les
périphériques

37
Q

La plupart des périphériques ont une ligne de
contrôle reliée———— qui permet de —————-

A

La plupart des périphériques ont une ligne de
contrôle reliée au contrôleur d’interruptions qui leur
permet de signaler un événement.

38
Q

Lors d’une interruption de périphérique, le
microprocesseur obtient automatiquement le —– de
l’interruption du contrôleur et utilise ce —- pour
trouver l—– à exécuter à partir de —-

A

Lors d’une interruption de périphérique, le
microprocesseur obtient automatiquement le # de
l’interruption du contrôleur et utilise ce numéro pour
trouver l’ISR à exécuter à partir de la table des
vecteurs d’interruptions

39
Q

Les interruptions logicielles sont

A

des interruptions
« provoquées » par le programmeur. Le programmeur
utilise une instruction qui déclenche une interruption

40
Q

Les interruptions logicielles ont un effet similaire à un
appel de fonction avec une différence fondamentale

A

l’adresse de la fonction appelée est dans la table des vecteurs
d’interruption plutôt qu’être une adresse relative au programme

41
Q

Les interruptions logicielles servent souvent à

A

appeler des
fonctions du système d’exploitation dont l’adresse est
inconnue du programmeur, mais gérée par le système
d’exploitation (grâce à la table des vecteurs
d’interruption).

42
Q

2 utilités principales des interruptions

A

accès aux périphériques
* exécution de plusieurs processus

43
Q

C’est le —————-() qui rend les programmes « indépendants » du
matériel. Comment?

A

système d’exploitation (Operating System

C’est l’OS qui modifie les routines de traitement des
interruptions à exécuter en fonction du matériel branché dans
l’ordinateur (via la table des vecteurs d’interruption)

44
Q

Les programmes peuvent donc utiliser

A

la table des
vecteurs d’interruption comme d’habitude

45
Q

Le système d’exploitation permet au même
programme de

A

parler » à plusieurs modèles de
claviers et d’imprimantes

46
Q

Les interruptions permettent l’exécution de
plusieurs processus
* Comment?

A

Une horloge génère des interruptions périodiquement
* À chaque interruption, on change le processus à
exécuter