Download - Informatique Industrielle - legtux.org
![Page 1: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/1.jpg)
Olivier Snoeck
Informatique Industrielle
Microcontrôleurs
Arduino
![Page 2: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/2.jpg)
Le microcontrôleur
![Page 3: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/3.jpg)
Le microcontrôleur (µC)=
1 microprocesseur (µP)+
Des périphériques adaptés (...)µP
![Page 4: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/4.jpg)
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 ….
![Page 5: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/5.jpg)
Le microprocesseurLa logique programmée
![Page 6: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/6.jpg)
UALMémoire
Données
&
Programmes Unité decommande
UAL : Unité Arithmétique et Logique
![Page 7: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/7.jpg)
Fabrication
![Page 8: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/8.jpg)
Fabrication
![Page 10: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/10.jpg)
Présentation
![Page 11: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/11.jpg)
Evolution de l’intégration
![Page 12: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/12.jpg)
● 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
![Page 13: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/13.jpg)
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 ;….
![Page 14: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/14.jpg)
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
![Page 15: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/15.jpg)
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
![Page 16: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/16.jpg)
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
![Page 17: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/17.jpg)
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)
![Page 18: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/18.jpg)
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
![Page 19: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/19.jpg)
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
![Page 20: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/20.jpg)
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 !
![Page 21: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/21.jpg)
Exemple: le Z80
![Page 22: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/22.jpg)
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
![Page 23: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/23.jpg)
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
![Page 24: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/24.jpg)
Exécution parallèle/prédictives
● Mise à disposition de plusieurs UAL– Problème de remplissage du pipeline
● Exécution prédictive
![Page 25: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/25.jpg)
Exemple: le pentium
![Page 26: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/26.jpg)
Exemple: l ’Athlon
![Page 27: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/27.jpg)
Exemple : le Pentium 4
![Page 28: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/28.jpg)
Pipeline Réel
● PIV : 20 Niveaux● PIII: 10 Niveaux● Athlon: 11 Niveaux
![Page 29: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/29.jpg)
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
![Page 30: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/30.jpg)
Optimisation de l’utilisation des ressources
![Page 31: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/31.jpg)
3 architectures : RISC/CISC/VLIW
● CISC● RISC● VLIW
![Page 32: Informatique Industrielle - legtux.org](https://reader030.vdocuments.pub/reader030/viewer/2022012102/6169f8eb11a7b741a34d6947/html5/thumbnails/32.jpg)
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