ARCHITECTURE DES ORDINATEURS Filière : InfoTronique Chap. 5 : Les interruptions Dr. Abdelhakim Khouas Email : sm5_archi@hotmail.fr Département de Physique Faculté des Sciences
Objectif de ce chapitre Comprendre le fonctionnement des interruptions du microprocesseurs 8086 C est quoi une interruption Gestion des interruptions Types d interruptions Matérielles Logicielles Table des vecteurs d interruption Architecture Chap. 5 1
Plan 1. Introduction 2. Définition d une interruption 3. Gestion des interruptions 4. Types d interruptions 1. Interruptions matérielles 2. Interruptions logicielles 3. Exceptions 5. Table des vecteurs d interruptions 6. Les interruptions du 8086 7. Exemples d utilisation des interruptions 8. Conclusion Architecture Chap. 5 2
Rappel Architecture d un ordinateur Architecture Von Newmann Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 5 3
1. Introduction Pour recevoir des informations des périphériques (entrées/sorties), le microprocesseur utilise deux méthodes : 1. Scrutation périodique «Polling» : 2. Interruption Architecture Chap. 5 4
1. Introduction Scrutation périodique «Polling» : Le programme principale scrute cycliquement (périodiquement) l état des entrées/sorties Avantage : Facile à programmer Inconvénients : 1. Perte de temps, en particulier, lorsqu on a beaucoup de périphériques 2. Perte de données, lorsqu elles changent rapidement 3. Perte de temps lorsqu il n y a pas de nouvelles données Architecture Chap. 5 5
1. Introduction Interruption : Le circuit d entrée/sortie signale au microprocesseur la présence d une donnée par l initiation d une demande d interruption IRQ «Interrupt Request» Avantages : Gain de temps, car le microprocesseur effectue une lecture des ports d entrées/sorties seulement lorsqu une donnée est présente Pas de perte de données Inconvénient : 1. Relativement difficile à imlémenter Architecture Chap. 5 6
2. Définition d une interruption Définition : Une interruption est une requête spéciale au microprocesseur pour lui indiquer un événement particulier nécessitant l attention du microprocesseur Architecture Chap. 5 7
2. Définition d une interruption Une interruption peut être initiée par : 1. Un des composants électroniques de l unité centrale (e.g. clavier, souris, interface, imprimante, disque dur, etc.) 1. --> Interruption matérielle 2. Le programme en cours d exécution 1. --> Interruption logicielle 3. Une erreur dans le programme en cours d exécution --> Exception Remarque : Une interruption peut être initiée par le microprocesseur luimême en cas de problèmes (e.g. division par zéro, mémoire défectueuse, etc.) Architecture Chap. 5 8
3. Gestion des interruptions Quand une interruption survient : 1. Le μp termine l exécution de l instruction en cours 2. Le μp émet un accusé de réception «Interrupt Aknowledge» indiquant que la demande d interruption est acceptée 3. Le μp suspend (interrompt) l exécution du programme en cours et sauvegarde le contexte des principaux registres dans la pile 4. Le μp exécute un sous-programme résident en mémoire appelé routine de service d interruption ISR«interrupt Service Routine» 5. Le μp reprend l exécution du programme suspendu Remarque : Pour certaines interruptions masquables, le μp peut refuser la demande d interruption, on dit que l interruption est masquée. Architecture Chap. 5 9
3. Gestion des interruptions Gestion des interruptions Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 5 10
3. Gestion des interruptions Routine de service d interruption ISR «interrupt Service Routine» Lorsqu une interruption survient, le μp exécute un sous-programme résident en mémoire appelé routine de service d interruption ISR Problématique : Le μp a donc besoin de connaître l adresse de la routine ISR à exécuter pour chaque interruption Solution : Le μp utilise le code de l interruption pour chercher dans une table mémoire centrale l adresse du début de la routine ISR à exécuter --> Interruptions vectorisées Architecture Chap. 5 11
4. Table des vecteurs d interruptions Vecteur d interruption Chaque adresse du début du sous-programme (routine) ISR à exécuter s appelle vecteur d interruption Table des vecteurs d interruptions La table mémoire centrale contenant les adresses des débuts des routines ISR à exécuter s appelle table des vecteurs d interruption Avantage des interruptions vectorisées l emplacement d une routine ISR peut être n importe où dans la mémoire, il suffit de spécifier le vecteur d interruption correspondant Architecture Chap. 5 12
4. Table des vecteurs d interruptions Chargement de la table des vecteurs d interruptions La table des vecteurs d interruptions est chargée par le système d exploitation au démarrage du système Détournement des vecteurs d interruptions La table des vecteurs d interruptions peut être modifiée en cours de fonctionnement Architecture Chap. 5 13
4. Table des vecteurs d interruptions Table des vecteurs d interruptions Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 5 14
5. Types d interruptions Types d interruptions Architecture Chap. 5 15
5.1 Les interruptions matérielles Une interruption matérielle est un arrêt de l exécution d un programme suite à un événement matériel Les demandes d interruptions matérielles sont effectuées par les périphériques Signaux d interruptions matérielles Les périphériques utilisent les signaux d interruption du microprocesseur pour signaler un évènement Architecture Chap. 5 16
5.1 Les interruptions matérielles Contrôleur d interruptions matérielles PIC «Programmable Interrupt Contrôler» Comme plusieurs demandes d interruptions peuvent être initiées simultanément, elles sont envoyées au PIC Le PIC résout les priorités des interruptions et les transmet ensuite au microprocesseur le signal d interruption et le numéro d interruption Un PIC peut traiter un nombre limité de demandes d interruption simultanément Plusieurs PIC peuvent être utilisés pour augmenter le nombre de demandes Architecture Chap. 5 17
5.1 Les interruptions matérielles Schéma de connexion d un contrôleur d interruption Architecture Chap. 5 18
5.1 Les interruptions matérielles Schéma du contrôleur d interruption 8259 d Intel Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 5 19
5.1 Les interruptions matérielles Schéma de connexion de 3 contrôleurs d interruptions pour gérer 16 demandes d interruptions simultanément Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 5 20
5.2 Les interruptions logicielles Une interruption logicielle est un arrêt de l exécution d un programme pour exécuter une routine d interruption du DOS ou BIOS Pour le 8086, les interruptions logicielles sont provoquées par l instruction INT suivie du numéro d interruption INT 21h : pour les interruptions du DOS INT 14h : pour les interruptions du BIOS L instruction INTO est équivalente à INT 4 si overflow=1 Architecture Chap. 5 21
5.3 Les exceptions Une exception est la réponse normale du microprocesseur à une situation détectée lors de l exécution d une instruction et qui nécessite une gestion spéciale Les exceptions sont internes au microprocesseur et ne peuvent pas être masquées Les exceptions ont une priorité plus élevée que les interruptions provenant des signaux d interruption Il existe trois types d exceptions Faute, trappe, et arrêt Architecture Chap. 5 22
6. Les interruptions du 8086 Le 8086 possède 3 signaux d interruptions qui sont : 1. NMI : Signal d interruption non masquable «Non Masquable interruption» 2. INTR : Demande d interruption «Interruption» 3. RESET : Signal de reinitialisation Signaux du 8086 Réf. : Microprocesseur, support de cours Dr. J. Y. Haggège Architecture Chap. 5 23
6. Les interruptions du 8086 Le 8086 peut gérer jusqu à 256 interruption. Chaque interruption a un numéro compris entre 0 et 255 appelé type ou numéro d interruption Les interruptions matérielles sont activées par les signaux NMI et INTR Les interruptions logicielles sont activées par l instruction INT n ou INTO, avec n est le numéro d interruption Ordre de priorité des interruptions Logicielle, ensuite NMI, et en dernier INTR Architecture Chap. 5 24
6. Les interruptions du 8086 Table des vecteurs d interruption pour le 8086 La table des vecteurs d interruptions doit obligatoirement être chargée en mémoire centrale à l adresse 00000h Chaque vecteur d interruption est constitué de 4 octets, 2 octets pour le segment CS et 2 octets pour le pointeur IP Adresse du début de la routine ISR = CS:IP (i.e. CS*16+IP) L adresse du vecteur d interruption de type n est donnée par : adresse du vecteur d interruption = n * 4 Exemple : l adresse de l interruption 20h est 4*20h=80h Architecture Chap. 5 25
6. Les interruptions du 8086 Organisation de la table des vecteurs d interruptions pour le 8086... CS / FFh 003CF CS / FFh 003CE IP / FFh 003CD IP / FFh 003CC......... 00008h CS / 01h 00007h CS / 01h 00006h IP / 01h 00005h IP / 01h 00004h CS / 00h 00003h CS / 00h 00002h IP / 00h 00001h IP / 00h 00000h Vecteur de l interruption 255 Vecteur de l interruption 1 Vecteur de l interruption 0 Architecture Chap. 5 26
6. Les interruptions du 8086 Exemples de type d interruption du 8086 : N -Adresse -Fonction 00-000-003 - CPU : Division par zéro 01-004-007 - CPU : Pas à pas 02-008-00B - CPU:NMI (défaut circuit RAM) 03-00C-00F - CPU : Break point atteint 04-010-013 - CPU : Débordement numérique 08-020-023 - IRQ0: Timer 09-024-027 - IRQ1: Clavier 0A - 028-02B - IRQ2: 2nd 8259 (AT uniquement) 0B - 02C-02F - IRQ3: Interface sérielle 2 0C - 030-033 - IRQ4: Interface sérielle 1 0D - 034-037 - IRQ5: Disque dur 0E - 038-03B - IRQ6: Disquette 0F - 03C-03F - IRQ7: Imprimante Architecture Chap. 5 27
6. Les interruptions du 8086 Exemples de type d interruption du 8086 : N -Adresse -Fonction 10-040-043 - BIOS: Fonction vidéo 11-044-047 - BIOS: Déterminer configuration 12-048-04B - BIOS: Déterminer la taille mémoire de la RAM 13-04C-04F - BIOS: Fonctions disquettes/disque dur 14-050-053 - BIOS: Accès à l'interface sérielle 15-054-057 - BIOS: Fonctions cassettes ou étendues 16-058-05B - BIOS: Test du clavier 17-05C-05F - BIOS: Accès à l'imprimante parallèle 18-060-063 - Appel du BASIC en ROM 19-064-067 - BIOS: Lancer système (ALT CTRL DEL) 1A - 068-06B - BIOS: Lire date et heure Architecture Chap. 5 28
6. Les interruptions du 8086 Déroulement d une interruption matérielle 1. Le μp reçoit le signal INTR (si l indicateur IF=0, le signal est ignoré) 2. Si la demande est acceptée, le μp met le signal INTA 3. Le contrôleur place le numéro d interruption sur le bus de donnée 4. Le μp utilise le numéro d interruption pour trouver le vecteur d interruption 5. Le μp met IF=0, sauvegarde les registres d état, CS, et IP dans la pile, et charge le vecteur d interruption dans CS:IP 6. Le μp exécute la routine d interruption qui se termine par l instruction IRET 7. Le μp restaure les registres d état, CS, et IP et reprend l exécution du programme en cours Architecture Chap. 5 29
6. Les interruptions du 8086 Déroulement d une interruption logicielle 1. Le μp reçoit l instruction INT suivie du numéro d interruption 2. Le μp utilise le numéro d interruption pour trouver le vecteur d interruption 3. Le μp met le flag IF=0 (IF est le flag d interruption), sauvegarde dans la pile le registre d état, et les registres CS et IP, et charge le vecteur d interruption dans CS:IP 4. Le μp exécute la routine d interruption qui se termine par l instruction IRET 5. Le μp restaure le registres d état et les registres CS et IP, et reprend l exécution du programme en cours Architecture Chap. 5 30
7. Exemples d utilisation des interruptions Saisie avec écho d un caractère au clavier MOV AH, 1 INT 21 --> Met dans le registre AL, le caractère lu au clavier. Saisie sans écho d un caractère au clavier MOV AH, 8 INT 21 --> Met dans le registre AL, le caractère lu au clavier. Affichage d un caractère à l écran MOV AH, 2 INT 21 --> Affiche à l écran le caractère contenu dans le registre DL. Architecture Chap. 5 31
7. Exemples d utilisation des interruptions Saisie d une chaîne de caractères au clavier MOV AH, 0A INT 21 --> Saisie une chaîne de caractères au clavier et la sauvegarde en mémoire à partir de l adresse contenu dans DS:DX. Le 1er octet représente la taille maximum à réserver et le 2éme octet, le nombre de caractères à lire. Affichage d une chaîne de caractères à l écran MOV AH, 9 INT 21 --> Affiche à l écran la chaîne de caractères qui se trouve en mémoire à partir de l adresse contenu dans DS:DX. La chaîne de caractères doit se terminer par le caractère de fin de chaîne $. Architecture Chap. 5 32
7. Exemples d utilisation des interruptions Lecture de l heure courante MOV AH, 2C INT 21 --> CH : heures --> CL : minutes --> DH : secondes --> DL : centièmes de secondes Lecture de la date courante MOV AH, 2A INT 21 --> AL : jour de la semaine codé (0 : dimanche, 1 : lundi,...) --> CX : année --> DH : mois --> DL : jour Architecture Chap. 5 33
8. Conclusion Ce qui est important à retenir : C est quoi une interruption Types d interruptions Matérielle Logicielle Exception Gestion des interruptions Table des vecteurs d interruptions Les interruptions du 8086 Architecture Chap. 5 34