Informatique Industrielle - legtux.org
Transcript of Informatique Industrielle - legtux.org
Olivier Snoeck
Informatique Industrielle
Microcontrôleurs
Arduino
Le microcontrôleur
Le microcontrôleur (µC)=
1 microprocesseur (µP)+
Des périphériques adaptés (...)µP
Le µP (ou processeur) ne peut pas fonctionner seul !
Il a besoin de :
HorlogeCadence à une fréquence (8MHz) le µP
ROM : Read-Only MemoryMémoire morte qui contient quelques lignes de programmes ineffaçables
RAM : Random Access MemoryMémoire vive où sont stockées les instructions, les calculs,...
I/O : Input/OutputLes périphériques d’entrées / sorties
+ Mémoire FlashMémoire vive, assez rapide, qui garde en mémoire les données ….
Le microprocesseurLa logique programmée
UALMémoire
Données
&
Programmes Unité decommande
UAL : Unité Arithmétique et Logique
Fabrication
Fabrication
Présentation
Evolution de l’intégration
● L’Unité de contrôle– Décodage des instructions– Chargement des informations depuis la mémoire
dans l ’UAL– Contrôle du flux du programme
● L’Unité Arithmétique et Logique– Réalisation des opérations
● Calculs entiers● Calculs sur les nombres réels● Comparaisons
Microprocesseur = Unité Contrôle + UAL
Le langage machine
● Ensemble d ’instructions élémentaires traitées par le microprocesseur– Environ un millier d’instructions
Branchements Calculs sur les entiersComparaisons Communication mémoireCalculs sur les réels Opérations «multimédia» (MMX…)
● Codage dans la mémoire – « code instruction » : 08F537B8….
● Assembleur : – Représentation « lisible » du langage machine– Mnémonique: représentation des instructions :
LD pour load ; ST pour Store ;….
De l’assembleur au code machine
OUTBUF EQU 80H
LD A,'A'-1NCB: INC A
OUT (OUTBUF),ACP 'Z'JP NZ,NCBHALT
Langage assembleur Code machine
Les registres
● Mémoires contenues dans le microprocesseur● Codés sur n bits
– Capacité de traitement du processeur– 64 bits dans les microprocesseurs modernes– 4/8 bits dans les processeurs anciens
● 3 types de registres– Registres entiers : Traitement des nombres entiers– Registres de contrôle : état et déroulement du programme– Registres calcul flottant
Principaux registres de contrôle
● Registre d ’instruction : RI– Code de l ’instruction courante
● Registre de position dans le programme : CO– Compteur Ordinal : adresse de la prochaine instruction à éxecuter
● Registre de pile : SP– Permet de créer une « pile » dans la mémoire
● Registres d ’état– États du microprocesseur
● Débordements de capacité● Comparaisons● Mode d ’exécution
● Accumulateur– Registre de travail principal
Exemple d’instructions
● Chargement depuis la mémoire– LD Registre, Adresse : Place dans un registre le contenu de l’adresse
Chargement d’une valeur– LD Registre, Valeur : Place dans un registre la valeur fournie
● Sauvegarde en mémoire– LD Registre, Adresse : Place dans la mémoire le contenu du registre
● Addition– ADD Registre1, Registre2 : Ajoute Registre2 à Registre 1– ADD Registre, Valeur : Ajoute la valeur au registre
● Multiplication (n’existe pas)– Mult Registre1, Registre2 : Multiplie Registre1 par Registre 1
Mult Registre, Valeur : Multiplie le registre par la valeur● Comparaison
– CP Registre1, Registre2 : Compare le registre 1 au registre 2 et place les bits d’état● Sauts inconditionnel
– JP, JR Adresse (ou libellé) : Effectue un saut inconditionnel vers l’adresse spécifiée (ou le libellé pour simplifier)
L’horloge
● Cadence les traitements dans l ’ordinateurCycle du microprocesseur <=> Traitements effectués en un top d ’horlogeDétermine la vitesse du microprocesseur
● Ne suffit pas pour connaître la performance réelle d ’une machine
Liaisons avec la mémoire
● Registre d ’adresse et registre mot– Stockage de l ’adresse mémoire et de la donnée– Sélection de l ’opération
● Lecture● Écriture
– Transfert 1 transfert par cycle au maximum
– Dépend de la vitesse du bus mémoire– Processeurs actuels très dépendants de vitesses d’échange
L’adressage
● Adressage direct– Spécification de l ’adresse
LD (0120H),A : Charge dans A la valeur contenue en 0120H● Adressage indirect
– L ’adresse à considérer est stockée (indirection)LD BC, 0120HLD (BC),A
● Adressage indexé– Utilisation d ’un registre d ’index (IX, IY sur Z80)
● Adresse = Base + indexLD (IX+3), 72 : Charge 72 à l’adresse IX+3
● La pile– Empilage (push) et dépilage (pop ou pull)– En général pas de contrôle de ces opérations !
Exemple: le Z80
Structure complexe
● 2,5 unités d ’exécution– Arithmétique
● Calcul et comparaison des nombres entiers– Calcul flottant :
● coprocesseur mathématique => calcul sur les nombres réels– Unité multimédia
● MMX/SSE/3DNow! : exécution particulière de certaines opérations
Exécution en pipeline
● Exécution de plusieurs instructions en même temps– Partage de l ’UAL– 1 instruction prend « 1 cycle »
● Pb : – Vidage du pipeline– Instructions de branchement
Exécution parallèle/prédictives
● Mise à disposition de plusieurs UAL– Problème de remplissage du pipeline
● Exécution prédictive
Exemple: le pentium
Exemple: l ’Athlon
Exemple : le Pentium 4
Pipeline Réel
● PIV : 20 Niveaux● PIII: 10 Niveaux● Athlon: 11 Niveaux
L’Hyper Threading
● Simule deux processeurs sur un seul– 2 files d’exécution– Mêmes UAL
● Nécessite des applications compatibles– Augmente la disponibilité du système
Optimisation de l’utilisation des ressources
3 architectures : RISC/CISC/VLIW
● CISC● RISC● VLIW
Exemple de compilation : Factorielle
En algorithmiqueFact = 1Pour i allant
de 2 à NFact = Fact * i Fin pour
En CInt fact(int n)
{ int i = 2 ; int result = 1 ; while(i <= N) { result *= i ; i++ ; } fact = result ;} ;
En assembleur Load A, adresse de NLoad B, 1Load C, 2Boucle Cmp A,CJmp FinMult B,CAdd C,1Jmp BoucleFin RTN