Interrupt Descriptor Table

L'IDT ou Interrupt Descriptor Table est un tableau de données localisé dans la mémoire d'un ordinateur d'architecture x86, et permettant au microprocesseur de gérer les interruptions.



Catégories :

Architecture x86 - Microprocesseur

Recherche sur Google Images :


Source image : iutc3.unicaen.fr
Cette image est un résultat de recherche de Google Image. Elle est peut-être réduite par rapport à l'originale et/ou protégée par des droits d'auteur.

Page(s) en rapport avec ce sujet :

  • Une table permet d'associer a chaque interruption une routine a executer, c'est la table IDT (Interrupt Descriptor Table)..... +------------------ masque d'interruption etabli (1) ou non (0) chaque bit correspond a une IRQ... On remplit chaque registre en envoyant sur le port aproprie les bonnes donnees.... (source : jojo.ouvaton)
  • Pour en connaître la valeur, le BIOS possède une table à l'adresse... Quand le bit 0 est à 1, aucune demande d'interruption n'est en cours.... termios à un descripteur de fichier (file- descriptor) ouvert sur un terminal donné (par... (source : aurel32)
  • Table d'interruptions. ∎ Table dispositif (IDT) à 256 entrées de ... Description en mode superviseur. Pile dispositif. @ basses. @ hautes. EFLAGS avant IT... EFLAGS courant : bit I selon type de vecteur d'interruption. 11/02/08... Le port d'E/S 0x21 sert à lire ou modifier le masque d'interruption pour les ... (source : ensiwiki.ensimag)

L'IDT ou Interrupt Descriptor Table est un tableau de données localisé dans la mémoire d'un ordinateur d'architecture x86, et permettant au microprocesseur de gérer les interruptions.

Il s'agit d'un tableau comportant au maximum 256 descripteurs de 8 octets chacun, soit un descripteur par interruption. Son emplacement en mémoire est enregistré à l'intérieur du registre IDTR du processeur. Lors du déclenchement d'une interruption, le processeur lit la ligne correspondante dans l'IDT et effectue un traitement différent suivant les valeurs lues sur cette ligne.

Les 32 premières interruptions (numéro 0 à 31) sont réservées aux exceptions (erreurs) générées par le microprocesseur. Les 16 interruption matérielles sont le plus souvent associées aux interruptions numéro 32 à 47. Néanmoins l'ensemble des interruptions sont librement appelables par les programmes utilisateurs par le biais de l'instruction int[1] à condition que le système d'exploitation le lui autorise.

Chaque descripteur a la structure suivante : (des bits les plus hauts vers les bits les plus bas)

Classification et terminologie Intel

Il existe différents types de porte :

Classification et terminologie Linux

Linux classe différemment les différents types de portes (descripteur) qu'il intègre dans l'IDT :

Emplacement mémoire de l'IDT

Quand le BIOS s'arrête et passe la main au système d'exploitation, aucune IDT n'existe. En effet, l'IVT utilisée par le microprocesseur en mode réel ne possède pas le même format que l'IDT et n'est par conséquent pas utilisable en mode protégé. Cela n'est cependant pas un problème car le drapeau d'interruption (IF) est à 0, empêchant le déclenchement de toute interruption masquable tant que cela est indispensable.

Le dispositif d'exploitation s'occupe alors de créer les différentes entrées de l'IDT puis d'apporter son emplacement et sa longueur au microprocesseur par l'intermédiaire de l'instruction d'assembleur lidt. Cet emplacement est le plus souvent localisé près du code du noyau. Il est néanmoins à noter que le microprocesseur applique la pagination lors de la lecture de l'IDT, ce autorise l'O/S (bien que ce ne soit appliqué par aucun des principaux dispositifs d'exploitations) de créer une IDT différente pour chaque programme en cours d'exécution.

IDT sur d'autres architectures de processeurs

Il existe des équivalents à l'IDT sur de nombreuses autres architectures de processeur, mais ceux-ci ont un format bien différent.

Notes

  1. (en) INT (x86 instruction)

Recherche sur Amazone (livres) :




Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Interrupt_Descriptor_Table.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu