Fonctionnement du processeur : exécution des instructions machine

Documents pareils
Ordinateurs, Structure et Applications

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

Architecture des ordinateurs

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Transmissions série et parallèle

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

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Structure d un programme

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Structure fonctionnelle d un SGBD

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

Chapitre 4 : Les mémoires

Ordinateurs, Structure et Applications

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Exécutif temps réel Pierre-Yves Duval (cppm)

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

Chapitre 4 : Exclusion mutuelle

IV- Comment fonctionne un ordinateur?

Cours de Systèmes d Exploitation

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Rappels d architecture

Support de cours système d exploitation

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Les liaisons SPI et I2C

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

NOTIONS DE RESEAUX INFORMATIQUES

Architecture des ordinateurs

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

ASR1 TD7 : Un microprocesseur RISC 16 bits

Cours Informatique 1. Monsieur SADOUNI Salheddine

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

PocketNet SNMP/Modbus

GESTION DE STOCKS AVEC CIEL GESTION COMMERCIALE

Jeu d instructions NIOS II

COACH-II Manuel d utilisation

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Licence Sciences et Technologies Examen janvier 2010

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Informatique Générale

IFT1215 Introduction aux systèmes informatiques

Logique séquentielle

Compilation (INF 564)

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

Fonctionnement et performance des processeurs

VIII- Circuits séquentiels. Mémoires

Conception de circuits numériques et architecture des ordinateurs

Encryptions, compression et partitionnement des données

Mise en oeuvre TSM 6.1

Architecture des ordinateurs Introduction à l informatique

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Réplication des données

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Cryptographie et fonctions à sens unique

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

PROGRAMMATION D'UN MICROCONTRÔLEUR

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

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

Réseaux - Cours 3. BOOTP et DHCP : Amorçage et configuration automatique. Cyril Pain-Barre. IUT Informatique Aix-en-Provence

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Leçon 1 : Les principaux composants d un ordinateur

TP_Codeur_Incrémental

Configuration automatique

îundesdruokerei Berlin

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

Conception de circuits numériques et architecture des ordinateurs

PIC : COURS ASSEMBLEUR

Manuel d utilisation Enregistreur autonome de poche. Version 1.1 TRO-TR-BADL100C-03-F

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

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

Short Message Service Principes et Architecture

BM Le bus USB 09/05/2013. Le Port USB

COMMANDER la puissance par MODULATION COMMUNIQUER

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

1 Mesure de la performance d un système temps réel : la gigue

Xen. Quelques notes autour de Xen

Exécution des instructions machine

Partie 7 : Gestion de la mémoire

SYSTÈME DE GESTION DE FICHIERS

Démarrer et quitter... 13

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

3. Structure des ordinateurs. 3.1 L' Unité Centrale (UC) ou processeur (Central Processing Unit CPU)

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

KL5121. Pour activer des sorties en fonction de la position d'un codeur

PIC 16F84. Philippe Hoppenot

GESTION DES FICHIERS C/UNIX

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

Mise en place Active Directory / DHCP / DNS

CAA/SE N O T I C E D E M O N T A G E E T D U T I L I S A T I O N KIT DE MONTAGE. Clavier lumineux codes DIGICODE

Bases de données Cours 1 : Généralités sur les bases de données

L exclusion mutuelle distribuée

Transcription:

Fonctionnement du processeur : exécution des instructions machine RUPTURE DE PROGRAMME : les INTERRUPTIONS Joëlle Delacroix - NFA004

Notion d interruptions L exécution d un programme s effectue instruction après instruction. Une interruption est un mécanisme permettant de stopper l exécution du programme en cours afin d aller exécuter une tâche jugée plus prioritaire. Une interruption permet de signaler un événement survenu sur la machine et d exécuter un traitement spécifique (programme de service ou routine d interruption) lié à cet événement. Elle travaille DRING! Elle répond au téléphone Elle reprend son travail Joëlle Delacroix - NFA004 2

Notion d interruptions Une interruption est un mécanisme permettant de stopper l exécution du programme en cours afin d aller exécuter une tâche jugée plus prioritaire. Elle est caractérisée par un numéro et un traitement associé (la routine ou traitant d interruption - ISR - Interrupt Service Routine) On distingue principalement deux types d événements : Les interruptions externes ou matérielles sont émises par les périphériques du processeur (fin d écriture disques, plus de papier imprimante ). Ce sont les IRQs. Les interruptions internes ou logicielles sont émises par le processeur lui-même lorsqu il rencontre une erreur dans l exécution du programme (division par zéro, accès mémoire illégal). Ce sont les trappes. Joëlle Delacroix - NFA004 3

Notion d interruptions Une interruption est un mécanisme permettant de stopper l exécution du programme en cours afin d aller exécuter une tâche jugée plus prioritaire. Elle évite au processeur de scruter les périphériques Y-a-t-il le feu chez vous? As tu une donnée? Événement Il y a le feu Événement IRQ J ai une donnée SCRUTATION : Toutes les 5 minutes INTERRUPTION : quand l événement survient Joëlle Delacroix - NFA004 4

Mécanisme des interruptions CPU INT IRQ non Int? oui UE Fetch décodage exécution Un périphérique signale un événement au processeur en émettant une interruption matérielle. Le processeur teste sa ligne d entrée d interruption (INT) avant de commencer le traitement de l instruction suivante du programme qu il exécute. Acquittement Identification IRQ Traitement de l'interruption Joëlle Delacroix - NFA004 5

Les interruptions Mémoire centrale CPU INT INTA Numéro adresse 000 2 00 3 500 4 2000 IRQ numéro UE. L'UE envoie un signal d'interruption : INT 2. Le CPU acquitte avec le signal INTA 3. L'UE transmet un numéro d'interruption. Ce numéro indexe une table en mémoire centrale le vecteur d'interruption, qui pour chaque numéro d interruption donne l'adresse de la routine associée en mémoire centrale. Joëlle Delacroix - NFA004 6

Les Interruptions Table des vecteurs d'interruptions (adresse 00000) 007 IRQ 3 007 traitant IRQ3 Programme 002 Programme 002 Interruption n 3 Latence <-- 007 Traitant d'irq n 3 007 Traitement IRQ 002 <-- 002 La table des vecteurs d interruptions est à l adresse 00000 sur un pc; Elle occupe Ko (256 entrées de 4 octets) Joëlle Delacroix - NFA004 7

Adresses Processeur (Brochage) Microprocesseur Données Numéro IRQ Alimentation et masse INT INTA Vcc GND A0 A A2 A3 A4 A5 A6 A7 A8 A9 A0 A A2 A3 A4 A5 D0 D D2 D3 D4 D5 D6 D7 Read Write Entrée horloge ou cristal Joëlle Delacroix - NFA004 8

Hiérarchisation des interruptions Le processeur dispose d une seule broche INT pour recevoir les interruptions. Que faire : Si deux interruptions arrivent en même temps? Si une interruption survient durant le traitement d une autre interruption? On introduit une notion de priorité (niveau) entre interruptions. Les interruptions sont dites hiérarchisées. Exemple : 8 niveaux Niveau 0 2 3 4 5 6 7 Plus forte priorité Plus faible priorité Joëlle Delacroix - NFA004 9

Hiérarchisation des interruptions Le processeur dispose d une seule broche INT pour recevoir les interruptions. Que faire : Si deux interruptions arrivent en même temps? On traite d abord la plus prioritaire Si une interruption survient durant le traitement d une autre interruption? Elle interrompt le traitement en cours seulement si elle est de priorité supérieure On introduit une notion de priorité (niveau) entre interruptions. Exemple : 8 niveaux Niveau 0 2 3 4 5 6 7 Plus forte priorité Plus faible priorité Joëlle Delacroix - NFA004 0

Arrivée IRQ 5, 6 Traitement IRQ 5, IRQ 6 en attente Hiérarchisation des interruptions Arrivée IRQ 7; IRQ 6, 7 en attente Arrivée IRQ 2 On interrompt le traitement de IRQ5 Fin traitement IRQ 2, Reprise traitement IRQ 5 Traitement IRQ 2, IRQ 6, 7, 5 en attente Arrivée IRQ On interrompt le traitement de IRQ2 Fin traitement IRQ, Reprise traitement IRQ 2 Traitement IRQ, IRQ 6, 2, 7, 5 en attente Fin traitement IRQ 5, Traitement IRQ 6, puis IRQ 7 Joëlle Delacroix - NFA004

Le contrôleur d interruption La gestion des priorités entre interruptions matérielles est à la charge d un circuit spécifique : le contrôleur d interruption. Il reçoit les priorités délivrées par les périphériques du processeur, mémorise les interruptions reçues, arbitre les priorités et délivre l interruption la plus prioritaire au processeur. Les ponts gèrent et intègrent : L accès aux bus; L adressage des unités d échanges; Le contrôleur d interruptions Le contrôleur DMA Le contrôleur de mémoire centrale Joëlle Delacroix - NFA004 2

Arrivée IRQ 5, 6 Traitement IRQ 5, IRQ 6 en attente _RT5 num Adresse routine Adresse _RT 2 Adresse _RT2 3 Adresse _RT3 4 Adresse _RT4 5 Adresse _RT5 AR_SP5 Fin traitement IRQ 2, Reprise traitement IRQ 5 Fin traitement IRQ 5, Traitement IRQ 6, puis IRQ 7 _RT2 Traitement IRQ 2, IRQ 6, 7, 5 en attente AR_SP2 Fin traitement IRQ, Reprise traitement IRQ 2 _RT Traitement IRQ, IRQ 6, 2, 7, 5 en attente Il faut mémoriser les adresses AR_SP5, AR_SP2 Registres (nombre?) Pile Joëlle Delacroix - NFA004 3

La structure de pile La pile est une zone de la mémoire centrale constituée d un ensemble de mots. Seul le mot au sommet de la pile est accessible. Son adresse est contenue dans le registre du processeur RSP Deux opérations sont seulement autorisées : Ajouter un mot au sommet de la pile (PUSH) Oter le mot au sommet de la pile (POP) RSP Pile Joëlle Delacroix - NFA004 4

La structure de pile Ajouter un mot au sommet de la pile PUSH Rg R0 Le contenu du registre R0 est écrit dans le mot dont l adresse est (RSP). RSP est incrémenté RSP R0 23 40 0 2 RSP 40 0 2 Joëlle Delacroix - NFA004 5

La structure de pile Ajouter un mot au sommet de la pile loop : POP Rg R JMP loop RSP 23 40 0 2 RSP 40 0 2 R R RSP est décrémenté. Le contenu du mot dont l adresse est (RSP) est mis dans le registre R. RSP 0 2 R Joëlle Delacroix - NFA004

La structure de pile La pile est une structure de données régie par une politique LIFO : Last In First Out. Le dernier élément ajouté à la pile est le premier à en être ôté 00 A 04 B 08 C 2 D 6 E Mémoire centrale 96 RB Loop : load Im R2 3 load B R 4 push Rg R add Im RB 4 add Im R2 - jmpp loop pop Rg R3 R R R R A B C D D R3

La pile est une zone de la mémoire centrale constituée d un ensemble de mots Dans le cadre des interruptions, cette zone est utilisée pour sauvegarder les adresses contenues dans la, quand le processeur passe du programme utilisateur aux routines d interruptions. Programme La structure de pile 002 Interruption n 3 On écrit dans, l adresse de la routine d IRQ <-- 007. 002 Auparavant, on mémorise la valeur du (002) dans la pile X Y Traitant d'irq n 3 007 Traitement IRQ RTI 002 002 0035 Le traitement de l IRQ est terminé. On retourne dans le programme utilisateur à l adresse où il a été interrompu. On remet dans la valeur écrite au sommet de pile Joëlle Delacroix - NFA004 8

0 20 30 40 50 60 70 80 IRQ 0 IRQ 2 20 IRQ 3 30 IRQ 4 40 IRQ 5 50 IRQ 6 60 IRQ 7 70 IRQ 8 80 Routine irq Routine irq2 Routine irq3 Routine irq4 Routine irq5 Routine irq6 Routine irq7 Routine irq8 Hiérarchisation des interruptions Le processeur exécute le programme X, arrivée de IRQ 5 002 IRQ 5 002 50 Le processeur exécute le traitant IRQ 5, arrivée de IRQ 2 55 IRQ 2 55 002 20 Le processeur achève le traitant IRQ 2, reprise du traitant IRQ 5 55 002 29 55 002 000 00 002 003 004 005 I I2 I3 I4 I5 I6 Programme X Le processeur achève le traitant IRQ 5, reprise du programme X 002 59 002 Joëlle Delacroix - NFA004 9

Le masquage des interruptions Une interruption masquée n est pas prise en compte par le processeur lorsque celle-ci survient. Deux niveaux de masquage : Au niveau du processeur Au niveau du contrôleur 20

Le masquage des interruptions Registre PSW du processeur S O C Z I I =, Interruptions masquées I = 0, Interruptions démasquées - O : positionné à si Overflow, 0 sinon - Z : positionné à si résultat opération nul, 0 sinon - C : positionné à si carry, 0 sinon - S : positionné à 0 si résultat opération positif, sinon Au niveau du processeur, masquage, démasquage global EI : Enable Interrupt les interruptions sont démasquées DI : Desable Interrupt les interruptions sont masquées LOAD Im R 0 DI ADD Im R 20 ADD D R 00 ADD I R 20 EI MUL R R 50 Interruptions masquées IRQ Prise en compte IRQ attente Joëlle Delacroix - NFA004 2

Le masquage des interruptions ISR Contrôleur d interruptions IRR Au niveau du contrôleur, masquage, démasquage par niveau IMR Résolveur de priorités IRQ 4 masquée IRQ 2 en service IRQ 0 IRQ IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 Les interruptions 2, 4 et 7 sont délivrées au contrôleur. L interruption 4 est masquée; elle est ignorée. L arbitrage se fait entre les interruptions 2 et 7 L interruption 2 entre en service 0 0 0 0 0 0 IRR : registre des requêtes d interruptions ISR : registre des interruptions en services IMR : registre des interruptions masquées 22

Déroulement des interruptions CPU INT INTA EOI 2 Arrivée IRQ 2, 4, 7 Traitement ISR IRQ 2 Logique de contrôle ISR Interruptions Avertir CPU IRR IRQ 0 IRQ INT INTA EOI 2 Résolveur de priorités IRQ 4, IRQ 7, IRQ 2 en attente IRQ 2 en service IMR IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 0 0 0 0 0 0 0 0 Contrôleur d interruptions 23

Déroulement des interruptions CPU Traitement ISR IRQ 5 Traitement ISR IRQ 2 INT INTA EOI ISR 5 Logique de contrôle IRR Arrivée IRQ 5 IRQ 0 FIN ISR IRQ 2 IRQ INT INTA EOI 5 IMR Résolveur de priorités IRQ Priorité 5 et IRQ5 7 en < IRQ attente 2 IRQ 5 en En service attente IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 0 0 0 0 0 0 0 0 Contrôleur d interruptions 24

Déroulement des interruptions CPU Traitement ISR IRQ 5 INT INTA EOI 5 Logique de contrôle IRR Fin IRQ 2 ISR IRQ 0 FIN ISR IRQ 2 IRQ INT INTA EOI 5 IMR Résolveur de priorités IRQ Priorité 5 et IRQ5 7 en < IRQ attente 2 IRQ 5 en En service attente IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 0 0 0 0 0 0 0 0 Contrôleur d interruptions 25

Déroulement des interruptions. Le contrôleur d interruptions reçoit les signaux IRQi émis par les périphériques sur ses bornes IRQi. Les interruptions reçus sont mémorisées dans le registre IRR. Le contrôleur active le signal INT 2. Le processeur prend en compte le signal. Si l indicateur I= au niveau du registre d état, le signal est ignoré, sinon, la demande d interruption est acceptée. 3. Si la demande est acceptée, le processeur met sa sortie INTA pour indiquer au contrôleur qu il prend en compte sa demande. 4. En réponse, le contrôleur d interruption arbitre les priorités entre les IRQs en attente et place le numéro de l interruption IRQi de plus forte priorité sur le bus de données. Le bit correspondant dans ISR est mis à et remis à 0 dans IRR. 5. Le processeur lit le numéro de l interruption sur le bus de données et l utilise pour trouver le vecteur d interruption (afin de traiter l interruption). Le processeur sauvegarde le courant sur la pile et le charge avec l adresse du traitant d interruption. 6. La procédure traitant l interruption se déroule. Lorsqu elle est terminée, le processeur avertit le contrôleur en activant le signal EOI. Si des interruptions sont en attente, le process reprend. 26

Déroulement des interruptions CPU Traitement ISR IRQ Traitement ISR IRQ 5 INT INTA EOI ISR Logique de contrôle IRR Arrivée IRQ IRQ 0 Suspension ISR IRQ 5 INT INTA EOI Résolveur de priorités IRQ plus prioritaire que IRQ 5 IRQ IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IMR IRQ 7 0 0 0 0 0 0 0 0 Contrôleur d interruptions 27

Les Interruptions matérielles asynchrones Table des vecteurs d'interruptions (adresse 00000) 007 IRQ 3 007 traitant IRQ3 Mode utilisateur Programme 002 Mode noyau 002 Irq 3 PUSH Rg 002 Programme Interruption n 3 007 Traitant d'irq n 3 007 POP Rg Traitement IRQ 002 002 Les interruptions externes ou matérielles sont émises par les périphériques du processeur (fin d écriture disques, plus de papier imprimante ). Ce sont les IRQs. 28

Les Interruptions logicielles trappes synchrones Table des vecteurs d'interruptions (adresse 00000) 0040 EXCP 0 0040 traitant EXCP 0 Mode utilisateur Programme I = 0; A = 2, Mode noyau 002 PUSH Rg Div A, 0 EXCP 0 002 Programme A = A / I ; 002 Levée exception 0 0040 Traitant Exception 0 0040 Traitement Exception 0 Arrêt du programme Les interruptions internes ou logicielles sont émises par le processeur lui-même lorsqu il rencontre une erreur dans l exécution du programme (division par zéro, accès mémoire illégal). Ce sont les trappes. 29

Instructions machine / assembleur Instructions liées aux interruptions Instructions liées à la pile EI : Autoriser les interruptions DI : Masquer les interruptions RTI : retour de traitant d interruption POP Rg R : Le sommet de pile est mis dans R PUSH Rg R : R est placé au sommet de la pile Joëlle Delacroix - NFA004 30