1 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Cours microprocesseurs IUT GEII S2 Deuxième partie : Le microprocesseur
2 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Licence P aternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette création au public * de modifier cette création, selon les conditions suivantes : Paternité. Vous devez citer le nom de l'auteur original. Pas d'Utilisation Commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales. Partage des Conditions Initiales à l'Identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identiqueà celui-ci. * A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création. * Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits. Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...) voir le contrat complet sous :
3 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Microprocesseur On caractérise un microprocesseur par : son architecture (organisation interne), sa fréquence d’horloge : en MHz ou Ghz sa puissance de calcul : c'est le nombre d’instructions par secondes qu’il est capable d’exécuter : Mips (10 6 instructions/s) Mflops (10 6 ins sur float /s) la taille de son bus de données : en bits Il existe des microprocesseurs 4, 8, 16, 32 ou 64 bits.
4 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Exemples de microprocesseurs IBM BlueGene/L 280 TFlops (groupement de µP) Pentium 4 32bits 2.5 Gflops à 2.8 Ghz MIPS R /64 bits (à 333Mhz dans PSP ~2.7Gflops) ARM7 32bits 15 Mips à 16.8Mhz (utilisé dans GBA) ARM9 32bits 200 Mips à 180 Mhz Microchip 18F bits 10 Mips à 40Mhz Microchip dsPIC33F 16 bits 40 Mips à 40 Mhz Cerveau humain : estimations entre 10 7 et Mips ( ) Grossièrement 1 flops = 2 à 10 Mips (dépend de l'architecture)
5 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 L'horloge L'horloge cadence toutes les activités du microprocesseur. Sa période fixe la vitesse d'exécution des instructions. Pour une architecture donnée : Fréquence horloge élevée = Grande puissance de calcul Mais La consommation augmente avec la fréquence de l'horloge. Le prix d'un µP est très lié à la fréquence d'horloge. Dans des applications alimentées par batteries ou à faible coût, il n'est pas toujours souhaitable d'utiliser une fréquence d'horloge élevée. On peut faire varier la fréquence d'horloge en fonction des phases de fonctionnement de l'application.
6 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Le problème de l'échauffement La puissance consommée par le processeur dépend de sa tension de fonctionnement et sa fréquence d'horloge : P = k. V 2. F => diminuer la tension de fonctionnement du coeur => utiliser la fréquence horloge minimale permettant d'obtenir les performances souhaitées.
7 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Puissance de calcul L a fréquence de l'horloge n'est qu'un facteur parmi d'autres qui intervient sur les performances d'un µP. Il faut également considérer : Le nombre de bits (taille des données manipulées) La présence d'unités de calculs spécialisées (MAC, multiplieur,...) L'architecture générale (pipeline, traitements parallèles,...) Ainsi que les autres composants du système : taille et vitesse de la mémoire.... mémoire cache.... canaux DMA....
8 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Un microprocesseur (CPU) se compose : d'une unité de commande qui : lit l'instruction en mémoire la décode (prépare les opérations suivantes) prépare la lecture de l'instruction suivante d'une unité de traitement qui exécute l'instruction (ALU) met à jour les registres internes en fonction du résultat sauve éventuellement les résultats en mémoire Constitution d'un microprocesseur
9 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Le compteur programme PC : program counter (compteur ordinal) C'est un registre du µP qui contient l'adresse en mémoire de l'instruction à exécuter. Au départ (au RESET), il prend une valeur fixe. (généralement la première ou la dernière adresse de l'espace mémoire) A chaque instruction, il est incrémenté pour contenir l'adresse de l'instruction suivante.
10 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Unité arithmétique et logique : ALU W Bits fixant l'opération Opérande 1Opérande 2 Registre recevant le résultat de l'opération (accumulateur) L'ALU est la partie du µP effectuant les opérations (+,-,ET,OU,XOR,....) Le type d'opération est déterminé par des bits issus du code l'instruction Les opérandes peuvent être issus du code de l'instruction ou bien lus en mémoire Registre d'état
11 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Registre d'état bit N : indique si le résultat est <0 bit OV : dépassement de capacité bit Z : indique si le résultat est 0 bit DC : retenue sur le 4 ème bit bit C : retenue sur le MSB Ces bits sont utilisés par les instructions conditionnelles pour déterminer les prochaines instructions exécutées.
12 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Cycle machine Il correspond à un multiple d'une période de l'horloge du µP. Les durées des instructions sont des multiples du temps de cycle. Un cycle compose de : Lecture en mémoire du code de l'instruction (adresse PC) Décodage (configuration pour les actions suivantes) Exécution de l'instruction Sauvegarde du résultat en mémoire Le PC pointant maintenant l'instruction suivante, un nouveau cycle recommence.
13 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Instructions Une instruction réalise une opération élémentaire. (addition, soustraction, test d'un bit, écriture mémoire,etc...) Elle est codée par un ou plusieurs mots en mémoire. Son format est spécifique au type de microprocesseur.
14 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Instructions courantes Un microprocesseur possède généralement des instructions : de lecture et d'écriture dans la mémoire (move) entre mémoire et registre interne (parfois entre deux cases mémoires) de calculs arithmétiques et logiques addition, soustraction, ET, OU, décalage de bit,.... (parfois multiplication, division,...) de branchement et de saut (conditionnel ou non) ces instructions permettent la réalisation d'opération conditionnelle (if/else, boucles) et les appels de fonctions (saut à une adresse et retour) spéciales (liées aux périphériques), mise en veille, etc...
15 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Instructions (exemple) Le code binaire de cette instruction est 0x0F15
16 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Instructions (exemple)
17 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Cycles d'un move
18 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Branchement conditionnel (exemple) Effectue un branchement à 2n cases mémoires de l'instruction courante (PC+2+2n) si le bit Z du registre d'état vaut 1. Donc si le résultat de l'instruction précédente était 0. => if/else, boucles...
19 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Branchement conditionnel (exemple)
20 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Architecture de Von Neuman Unité centrale Mémoire Bus d'adresses Bus de données Le même espace mémoire est utilisée pour stocker des données et des instructions
21 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Système minimum (Von Neuman) µPRAMFlash Bus d'adresses Bus de données Périphériques d'E/S horloge ( Instructions, constantes ) (variables)
22 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Architecture de Harvard µP Mémoire Programme Bus d'adresses programme Bus de données programme Deux espaces mémoires indépendants pour stocker les données (variables) et les instructions (programme). Plus de broches mais accès simultané données/instructions Mémoire données Bus d'adresses données Bus de données données
23 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Architecture mixte µP Prog data Prog & data Harvard interne / Von Neuman externe
24 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 CISC / RISC CISC : Complex Instruction Set Computer Beaucoup d'instructions Format d'instruction variable Les instructions s'exécutent sur un ou plusieurs cycles Ex : Intel 8051, Pentium, Freescale 68XXX RISC : Reduced Instruction Set Computer Seulement les instructions les plus utilisées Format d'instruction fixe Les instructions s'exécutent toutes en un cycle machine Ex : Microchip PIC, PowerPC, ARM
25 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Système embarqué Un système informatique embarqué est un système comprenant un microprocesseur mais qui n'est pas vu comme un ordinateur par l'utilisateur final. Exemples : un lecteur DVD, un autoradio, une machine à laver une télécommande, un appareil photo,... un téléphone ? de moins en moins On parle également de système informatique enfoui.
26 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Système embarqué (Von Neuman) µPRAMFlash Bus d'adresses Bus de données Périphériques d'E/S horloge ( Instructions, constantes ) (variables) Un programme unique (mise à jour exceptionnelle)
27 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Ordinateur généraliste L'utilisateur d'un ordinateur généraliste peut charger et exécuter les programmes qu'il souhaite. Ces programmes peuvent même être inconnus lors de la conception de la machine. La sécurité et la sûreté sont donc plus difficiles à garantir. On utilise un périphérique de stockage de masse pour stocker les différents programmes (disque dur, compact flash). Comme ces périphériques sont généralement lent, on charge le programme en RAM avant de l'exécuter. Ordinateur généraliste : Programme et variables en Ram
28 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Ordinateur généraliste RAM µP Stockage de masse permanent programmes et données Stockage temporaire programmes et données pendant leur utilisation
29 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 L'ordinateur de bureau Un ordinateur de bureau est donc un ordinateur généraliste Cependant il est constitué de nombreux systèmes enfouis : carte mère (avec son BIOS stocké dans une mémoire Flash) carte vidéo (système complet : ram, processeur spécialisé,...) disque dur ( µP + RAM cache ) clavier souris.....
30 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Microcontrôleur Un microcontrôleur est un circuit unique qui constitue un système minimum. Il permet de réaliser une application complexe avec très peu de composants annexes. Il comprend : un microprocesseur, de la mémoire RAM (pour stocker les variables), de la mémoire Flash ou OTP (pour stocker le programme), et de nombreux périphériques : - Ports d'entrées/sorties logiques - Convertisseurs analogique/numérique - Périphériques de communications (série,I2C,CAN,USB...) - Timers (compteurs utilisés pour la gestion du temps) - Générateur de signaux PWM etc....
31 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Microcontrôleur PIC18F4520 µP Harvard/Risc 8 bits Instructions codées sur 16 bits 32 ko de Flash (16kinstructions) 1.5ko de RAM jusqu' à 10 Mips à 40Mhz multiplieur 8bx8b câblé
Alu Ram Program counter Flash PIC18F4520PIC18F4520 Décodage des instructions horloge
33 © Copyright 2005, Philippe Arlotto tln.fr Creative Commons Attribution-ShareAlike 2.0 license 18/09/2016 Périphériques du 18F ports d'entrées sorties logiques (jusqu'à 34 broches E/S) 4 timers (2 sur 8bits, 2 sur 16bits) 2 modules PWM, capture, compare (génération et mesures de signaux) 1 port série synchrone (I2C ou SPI) 1 port série asynchrone (utilisable en USB, RS232, RS485 avec un adaptateur externe) 1 convertisseur analogique numérique 10 bits (jusqu'à 11 canaux d'entrées) watch dog, détection tension alimentation basse fréquence horloge modifiable par programme 256o de mémoire EEPROM