Ordinateurs, Structure et Applications



Documents pareils
Ordinateurs, Structure et Applications

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Temps Réel. Jérôme Pouiller Septembre 2011

GPA770 Microélectronique appliquée Exercices série A

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Ordinateurs, Structure et Applications

Manuel de l utilitaire Computer Setup (F10) HP Compaq Business Desktops Modèles d220 et d230

Structure d un programme

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Sélection du contrôleur

DÉMARRER LE PC SUR UNE CLÉ USB OU UN CD

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Leçon 1 : Les principaux composants d un ordinateur

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Architecture des ordinateurs

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Structure de base d un ordinateur

Cours de Systèmes d Exploitation

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Manuel d installation De la Cryptolib CPS Dans un environnement client/serveur TSE/CITRIX

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Principe de fonctionnement des périphériques des ordinateurs en vue de la programmation. Patrick Cégielski

Guide pour l Installation des Disques Durs SATA et Configuration RAID

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

I00 Éléments d architecture

Conception de circuits numériques et architecture des ordinateurs

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

Démarrer et quitter... 13

Rappels d architecture

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

Compilation (INF 564)

GUIDE DE L USAGER DE LA MESSAGERIE VOCALE

PIC 16F84. Philippe Hoppenot

Cours Informatique 1. Monsieur SADOUNI Salheddine

Tutoriel déploiement Windows 7 via serveur Waik

Installation ou mise à jour du logiciel système Fiery

Epreuve E4 Conception et maintenance de solutions informatiques DESCRIPTION D UNE SITUATION PROFESSIONNELLE

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

AudiParc Recommandations IMPORTANTES. AudiParc Principe de fonctionnement. AudiParc Installation Déployement

Guide de démarrage rapide du TruVision NVR 10

Manuel d administration de Virtual Box MANUEL D UTILISATION VIRTUAL BOX

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Éléments d'architecture des ordinateurs

ASR1 TD7 : Un microprocesseur RISC 16 bits

Call Center View Alarm Reporter

IV- Comment fonctionne un ordinateur?

Structure et fonctionnement d'un ordinateur : hardware

Conception et développement d'un périphérique USB pour le simulateur de vol Microsoft Flight Simulator

Modules d automatismes simples

Contrôleur de communications réseau. Guide de configuration rapide DN

Spécifications détaillées

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Spécifications. Caractéristiques. Panneau de contrôle PC1550. Programmation par le clavier. Mémoire EEPROM

eps Network Services Alarmes IHM

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Présentation et description détaillée du S8400 Media Server

Tests de performance du matériel

Les avantages de la virtualisation sont multiples. On peut citer:

Démontage d'un ordinateur

DYNTEST AML (Alarme/Moniteur/Logger) Surveillance du filtre à particules

Caractéristiques principales : 1. Prise en charge des réseaux GSM et PSTN 2. Quadri-bande : 850/900/1 800/1 900 MHz 3. Enregistrement vocal sur 2

CH.3 SYSTÈMES D'EXPLOITATION

Développement d une application Android pour l Association des Paralysés de France

Manuel d installation serveurs

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

TRANSMETTEUR TELEPHONIQUE TTX = SINTEL X

Configuration de l'ordinateur Manuel de l'utilisateur

EN Télécom & Réseau S Utiliser VMWARE

Rappels réseaux TCP/IP

Utiliser le Notebook GIGABYTE pour la première fois

Le multiplexage. Sommaire

COACH-II Manuel d utilisation

PIC : COURS ASSEMBLEUR

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Félicitations pour l'achat de votre Notebook GIGABYTE.

Programmation système I Les entrées/sorties

Les principes physiques de l enregistrement magnétique

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Guide de mise à niveau pas à pas vers Windows 8 CONFIDENTIEL 1/53

13/11/2009 DUT-MUX-0185 /V2.0

IFT1215 Introduction aux systèmes informatiques

L informatique en solo

ProCod. Manuel d utilisation. Software de programmation pour codeurs absolus TWK modèles CRF et DAF CRF DF 08 / 10

Spécifications détaillées

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Pour les caméras IP de modèles : QSTC201 QSTC211. Surveillance à distance via Internet Guide de démarrage

EN Télécom & Réseau S Utiliser VMWARE

Cours 1 : Qu est-ce que la programmation?

GUIDE Excel (version débutante) Version 2013

Gestionnaire d'appareil à distance de Bell Foire aux questions

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

9 - Installation RDS sur 2008R2 SOMMAIRE. Chapitre 1 Mise en place RDS sous Windows 2008 R2 2

Architecture des ordinateurs

Transcription:

Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1

Les interruptions du 8086 Une interruption interrompt l exécution séquentielle des instructions par le CPU. Lors d une interruption, l exécution du programme principal est suspendue. Une sous-routine traitant l interruption est exécutée, puis le programme principal est continué. Les sauts conditionnels ou inconditionnels ainsi que les appels de sous-routines ne sont pas des interruptions. Il existe plusieurs catégories d interruptions: les exceptions, les interruptions matérielles et les interruptions logicielles. Les interruptions matérielles surviennent lorsque les lignes RST, NMI ou INTR du 8086 sont activées. Les interruptions logicielles surviennent lorsque l instruction INT apparaît et les exceptions se produisent quand le microprocesseur ne peut exécuter une instruction (exemples: instruction invalide, division par zéro, ). Toutes les interruptions ont un numéro de 0 à 255d, sauf reset. Certains numéros sont fixés par le matériel, d autres par les concepteurs du 8086 et finalement il en reste de disponibles pour le programmeur. Les interruptions ont des priorités. Elles sont, du plus prioritaire au moins prioritaire: Reset, Exceptions, INT, NMI et INTR. À l intérieur d une de ces catégories, l INT avec le numéro le plus bas est habituellement la plus prioritaire. Une interruption de haute priorité peut interrompre une interruption de priorité inférieure. Une interruption de basse priorité ne peut pas interrompre une interruption de priorité égale ou supérieure. L interruption Reset est la plus prioritaire. Cours 10, p.2

Interruptions vectorisées La table des vecteurs d interruption contient l adresse de la sous-routine à exécuter lorsqu un interruption survient. Pour chaque interruption, la table contient 4 bytes d information: CS et IP. Chaque entrée de la table est un vecteur qui mène aux instruction à exécuter pour traiter l interruption. La taille de la table des vecteurs d interruption est donc 256ints * 4bytes = 1Ko. La table des vecteurs d interruption commence à l adresse 00000h et elle finit à l adresse 003FFh. Ne pas mettre de segments à cet endroit!!! Lorsqu une interruption survient, le numéro de l interruption permet de trouver l emplacement des instructions à exécuter. Le numéro de l interruption est multiplié par 4 afin de trouver l adresse du CS et du IP à rechercher (IP est à l adresse inférieure, suivi de CS). Puis un JMP à CS:IP est fait. CS:IP est un «vecteur» vers le code à exécuter afin de répondre à l interruption. - Exemple: Si le contenu de la mémoire, à partir de l adresse 00000h est 00h, 01h, 02h, 03h, 04h, 05h, 06h, 07h, 08h, etc... et que l interruption 1 survient, alors la routine à l adresse 0706:0504 sera exécutée. Reset est la seule interruption sans numéro. Pour reset, CS:IP = FFFF0H. Ce sont les valeurs de CS et IP au démarrage de l ordinateur # d'int 4 07564h (0706:0504) 00004h 00000h Mémoire 07 06 05 04 Code exécuté lorsque l'int1 survient CS et IP pour Int 4 CS et IP pour Int 3 CS et IP pour Int 2 CS et IP pour Int 1 CS et IP pour Int 0 Cours 10, p.3

Séquence d évènements après une interruption Lors d une interruption logicielle ou matérielle, les évènements suivants se produisent: Le 8086 termine l instruction en cours. Le drapeau IF est testé si l interruption provient de la ligne d interruption matérielle (INTR). Si le drapeau est à 0, l interruption est masquée (ignorée, mais toujours active). Si une autre interruption de priorité supérieure ou égale est en cours, l interruption est mise de côté pour être exécutée ultérieurement. Trois registres sont mis sur la pile (PUSH) dans l ordre qui suit: les drapeaux, CS actuel, puis IP actuel. Le drapeau IF est mis à 0 après le PUSH des flags. Un JMP est exécuté à l adresse CS:IP trouvée dans la table des vecteurs d interruption à partir du numéro de l interruption. La routine de service de l interruption (ISR ou Interrupt Service Routine) désignée par la table des vecteurs d interruption est exécutée. Théoriquement, la dernière instruction de l ISR est IRET (Interrupt RETurn). Un IRET est équivalent à trois POP dans cet ordre: IP, CS et drapeaux. Cours 10, p.4

Exceptions Les exceptions surviennent quand un évènement logiciel spécial arrive. Lors de la plupart des exceptions le microprocesseur ne peut pas exécuter l instruction en cours pour diverses raisons: instruction invalide, division par 0, référence à une adresse invalide, accès invalide à une adresse protégée (pas avec le 8086), faute matérielle, etc. Voici quelques exceptions du 8086: L interruption 0 survient lorsque le diviseur de DIV ou IDIV est 0. L interruption 4 survient lorsque le drapeau Overflow est 1 et que l instruction INTO est exécutée. Les interruptions 1 et 3 servent pour du debug de programme. Les exceptions désactivent les interruptions matérielles et elles sont plus prioritaires que les interruptions logicielles. Cours 10, p.5

Interruptions matérielles (1) Cours 10, p.6

Interruptions matérielles (2) Le 8086 a trois broches pour les interruptions matérielles: RESET, NMI et INTR. La broche RESET crée un reset du CPU si elle est HIGH pendant au moins quatre cycles d horloge. La broche NMI (Non Maskable Interrupt) déclenche l interruption 2 lorsqu elle passe de LOW à HIGH. L interruption NMI n est pas désactivé lorsque IF est 0, contrairement aux interruptions sur INTR, d où son nom. Une utilisation typique de NMI est la détection de mise hors tension. La broche INTR sert à toutes les autres interruptions matérielles du 8086. Une interruption est se produit lorsque la ligne est à Vcc. Étant donné que le 8086 n utilise qu une ligne pour la plupart des interruptions matérielles (INTR), un PIC (Programmable Interrupt Controler) servait initialement a multiplexer 8 interruptions pour n en former qu une seule. Comme 8 interruptions s est révélé rapidement insuffisant, un autre PIC a été ajouté. Afin de respecter le design déjà en place, l interruption matérielle 2 a été re-dirigée (voir plus loin). Le 8086 supporte donc 16 interruptions matérielles (nommées IRQ0 à IRQ15). De nos jours, les PICs sont inclus dans le chipset. À chaque interruption matérielle correspond un numéro d interruption qui n est pas égal au numéro d interruption matériel. Par exemple, IRQ0 est l INT 08. La page suivante donne une correspondance typique entre les IRQ et les périphériques du PC. Cours 10, p.7

Interruptions matérielles (3) INT (Hex) IRQ Function 77 IRQ15 Reserved 76 IRQ14 Hard Disk Drive 75 IRQ13 Maths Co-Processor 74 IRQ12 PS/2 Mouse 73 IRQ11 Reserved 72 IRQ10 Reserved 71 IRQ9 Redirected IRQ2 70 IRQ8 Real Time Clock 0F IRQ7 Parallel Port 0E IRQ6 Floppy Disk Controller 0D IRQ5 Reserved/Sound Card 0C IRQ4 Serial Port 0B IRQ3 Serial Port 0A IRQ2 PIC2 09 IRQ1 Keyboard 08 IRQ0 System Timer Cours 10, p.8

Interruptions matérielles (4) La séquence d évènements suivante se produit lorsqu un périphérique produit une interruption: Le PIC reçoit et traite l interruption Un registre interne du PIC permet au programmeur du 8086 de masquer (désactiver) certaines interruptions Le PIC met l interruption dans un buffer Le PIC regarde les priorités des interruptions et détermine si l interruption matérielle courante est la plus prioritaire La ligne INTR est activée par le PIC pour dire au 8086 qu il y a interruption Un pulse de 0Vdc provenant du 8086 apparaît sur la ligne INTA pour signaler au PIC que l interruption est reçue (Acknowledged). La ligne INTR est désactivée après le pulse. Un deuxième pulse de 0Vdc provenant du 8086 demande au PIC de mettre le numéro de l interruption sur le bus de donnée. Le PIC met le numéro de l INT sur le bus de donnée: il ne met pas le numéro de l IRQ. Le 8086 exécute la routine de service de l interruption Une instruction à la fin de la routine envoie un EOI (End Of Interrupt) au PIC pour lui signaler que l interruption est traitée. Cours 10, p.9

Interruptions matérielles (5) L insertion d un deuxième PIC sur la ligne IRQ2 du premier PIC a plusieurs conséquences découlant surtout d un désir de conserver la compatibilité avec les designs n ayant qu un seul PIC: Les périphériques connectées sur IRQ2 ont été connectés sur IRQ9 (redirection). Comme le vecteur d interruption de IRQ9 n est pas le même que celui de IRQ2, il faut que IRQ9 appelle le vecteur d interruption de IRQ2 pour les designs avec un seul PIC. Désactiver l IRQ2 à l intérieur du PIC principal désactive les IRQ8 à IRQ15. Les interruptions matérielles 8 à 15 sont plus prioritaires que les interruptions matérielles 3 à 7. Les routines de service d interruptions matérielles IRQ8 à IRQ15 doivent gérer deux PICs, c est-à-dire envoyer deux End Of Interrupt. Cours 10, p.10

Interruptions logicielles Une interruption logicielle s appelle avec l instruction INT # où # est le numéro de l interruption. Chaque interruption peut avoir des sous-fonctions. Pour spécifier une sousfonction, il faut placer dans un registre prédéterminé le numéro de la sousfonction voulu avant d'appeler l'interruption (le registre est souvent AH). La sous-routine de service de l interruption testera la valeur du registre prédéterminé et aiguillera la sous-routine en conséquence. Voici quelques exemples tirés de EMU8086: INT 20h - Quitte le système d'exploitation. INT 21h / AH=09h - Sortie d'une chaîne de caractères depuis DS:DX. INT 21h / AH=0Ah - Entrée d'une chaîne de caractères vers DS:DX, le premier octet indique la taille du buffer, le deuxième octet indique le nombre de caractères réellement lus. INT 21h / AH=4Ch - Quitte le système d'exploitation. INT 21h / AH=01h - lit un caractère sur l'entrée standard, avec écho, le résultat est stocké dans AL. INT 21h / AH=02h - écrit un caractère vers la sortie standard, DL = le caractère à écrire, après exécution, AL = DL. Cours 10, p.11

Interruptions logicielles et système d exploitation Les systèmes d exploitations gèrent habituellement les périphériques. Les programmes de l usager accèdent aux périphériques par la biais de fonctions du système d exploitation. Les ordinateurs ont souvent du matériel différent et les fonctions permettant d accéder à ce matériel changent en fonction du matériel. Le programmeur ne veut pas se soucier de toutes les configurations de matériel possibles lorsqu il accède à un périphérique. La table des vecteurs d interruption permet de changer facilement l adresse de la routine traitant l interruption d un périphérique. Avec le 8086, cette table est habituellement gérée par le système d exploitation. Le programmeur ne veut pas apprendre les adresses des fonctions du système d exploitation, ni changer son programme si le système d exploitation change. Les interruptions logicielles sont généralement utilisées pour appeler des fonctions du système d exploitation, principalement afin d accéder aux périphériques. Le BIOS fournit un ensemble de fonctions d accès aux périphériques Le système fournit un ensemble de fonctions d accès aux périphériques. Il change la table des vecteurs d interruption en fonction du matériel de l ordinateur. Périphérique = clavier, écran, horloge Les interruptions sont habituellement exécutées en mode superviseur: il s agit d un mode privilégié (celui du système d exploitation) ayant tout le contrôle du système. Le terme SVC (SuperVisor Call instruction) est habituellement employé pour désigner une interruption logicielle appelant une fonction du système d exploitation. Cours 10, p.12

Table résumée des INTs INT (Hex) IRQ Common Uses 00-01 Exception Handlers - 2 Non-Maskable IRQ Non-Maskable IRQ (Parity Errors) 03-07 Exception Handlers - 8 Hardware IRQ0 System Timer 9 Hardware IRQ1 Keyboard 0A Hardware IRQ2 Redirected 0B Hardware IRQ3 Serial Comms. COM2/COM4 0C Hardware IRQ4 Serial Comms. COM1/COM3 0D Hardware IRQ5 Reserved/Sound Card 0E Hardware IRQ6 Floppy Disk Controller 0F Hardware IRQ7 Parallel Comms. 10-6F Software Interrupts - 70 Hardware IRQ8 Real Time Clock 71 Hardware IRQ9 Redirected IRQ2 72 Hardware IRQ10 Reserved 73 Hardware IRQ11 Reserved 74 Hardware IRQ12 PS/2 Mouse 75 Hardware IRQ13 Math's Co-Processor 76 Hardware IRQ14 Hard Disk Drive 77 Hardware IRQ15 Reserved 78 - FF Software Interrupts - Tiré de: http://www.beyondlogic.org/interrupts/interupt.htm Cours 10, p.13

Détournement des Interruptions Lors du démarrage du PC, la table des vecteurs d interruption, en RAM parce qu il faut pouvoir la changer, est chargée avec des valeurs par défaut. Pour détourner une interruption, il suffit de changer la table des vecteurs d interruptions. Changer le CS et l IP à l adresse 4*(# de l INT à détourner) permet de changer le code exécuté lorsque l interruption se produira. En temps normal, la nouvelle ISR appellera l ancienne ISR sous certaines conditions. Pour cette raison, sauvegarder le CS et l IP de l instruction que l on remplace est une pratique recommandée (habituellement la sauvegarde se fait dans des variables déclarées à cet effet). Le fichier DetourneInt21h.asm est un exemple de programme détournant une interruption. Cours 10, p.14

Références et exercices Références Irv Englander, section 9.3 DetourneInt21h.asm http://www.beyondlogic.org/interrupts/interupt.htm http://coen.boisestate.edu/ssmith/ee332/overheads/interrupts-11.pdf Exercices Qu est qu une interruption? Supposons que les 256 premiers bytes de la mémoire valent de 00h à FFh. À quelle adresse se trouvera le code à exécuter lors de l IRQ2? Donnée la priorité de chaque interruption dans la «Table résumée des INTs». Mettre 0 pour l INT la plus prioritaire et 255 pour la moins prioritaire. Comment fonctionnent les interruptions matérielles d un 8086 avec 2 PICs? Cours 10, p.15