MIC - Cours de microprocesseurs
Appartient à l'UE Systèmes d'exploitation I
Personnes enseignantes
Description générale du cours
Concept fondamentaux liés aux microprocesseurs : machine virtuelle, représentation des données, gestion des entrées / sorties, segmentation de la mémoire, mode réel et protégé, coprocesseur mathématique, étapes de démarrage d’un ordinateur, décodage du set d’instructions élémentaires d’un microprocesseur, x86
Matières de base utilisées
Cours de structure des ordinateurs, cours de système d’exploitation.
Objectifs
Permettre aux étudiants de comprendre le fonctionnement d’un microprocesseur et de se familiariser avec le set d’instructions assembleur afin de favoriser la compréhension des langages de haut niveau.
Acquis d’apprentissage
- Connaître le fonctionnement de base d’un processeur, au travers d’un modèle simplifié mettant en évidence les principes du calcul automatisé.
- Connaître les différences entre le mode réel et le mode protégé des processeurs Intel x86, en termes de gestion de la mémoire centrale et des instructions disponibles.
- Comprendre l’organisation de la mémoire centrale en mode réel sous Intel x86
- Connaître les principes d’encodage binaire du code-machine, et savoir traduire en binaire des instructions assembleur basiques (INC, MOV, ADD, …).
- Connaître les principes de fonctionnement du BIOS et son rôle dans le démarrage de l’ordinateur.
- Connaître le fonctionnement de base du co-processeur mathématique 8087, ainsi que certaines de ces instructions de base (FLD, FST, FADD, FMUL, …).
- Avoir une vue diachronique de l’évolution technologique des processeurs depuis le Intel 8086 (co-processeurs, pipeline, instructions SIMD, instructions SSE, multi-coeurs, …).
Plan du cours
Fonctionnement d’un microprocesseur
- Un ordinateur simplifié
- Composantes du processeur
- Déroulement d’un processus
- Interruption (pourquoi, comment ça fonctionne, sécurité, mode protégé)
- exemple de programme assembleur (compilation, exécution).
- Résumé avec GDB
Langage d’assemblage
- Qu’est-ce que l’assembleur ?
- Pourquoi utiliser l’assembleur
- Inconvénients de l’assembleur
- Pourquoi connaître l’assembleur
- Les assembleurs
- Déboguer un programme assembleur
Les modes du x86
- mode protégé
- mode réel
- segmentation en mode protégé
- segmentation en mode réel
- exemple de programme en mode réel
- la table des interruptions et son emplacement)
Cartographie de la RAM d’un PC en mode réel
- accès à la ROM
- accès à la RAM
- accès aux périphériques
- exemples d’accès à un périphérique
- cartographie de la mémoire en mode réel
- affichage en mode réel
Démarrage d’un ordinateur
- À la mise sous tension
- BIOS
- Secteur de boot d’une disquette, d’un disque (ou USB)
- Un premier process sans interruption du BIOS
Jeu d’instruction du x86
- Structure d’un code machine x86
- Code machine x86 : code des registres
- Visualiser le code machine
- Code machine sur un byte fixe
- Code machine avec valeur immédiate
- Instructions simples
- ModR/M en 32 bits
- Byte SIB
- Préfixes de segmentation
- Préfixes de répétition
- Préfixes de taille
- Exemples
Coprocesseur mathématique
- Rôle
- Historique
- Architecture et représentation des nombres
- Valeurs extrêmes
- Pile du coprocesseur
- Jeu d’instruction
- Exemples
Évolution des microprocesseurs
- Historique
- Loi de Moore
- Co-processeurs
- Processeurs pipe-line
- Classement SISD, SIMD
- Jeu d’instruction MMX 3DNow!
- Jeu d’instruction SSE
- Processeurs 64 bits
- Processeurs dual core
Bibliographie
- Assembleur X86 (Livre)
- Kip Irvine, Assembleur X86, CampusPress (ISBN: 2-7440-1534-2)
- Assembleur X86 (Livre)
- Jean-Bernard Emond, Assembleur X86, Des bases de la programmation jusqu’à l’interfaçage avec les langages de haut niveau, CampusPress (ISBN: 2-7440-1564-4)