ELE-542 Systèmes ordinés en temps réels. Cours # 4 Mesure de performance et aspects matériels



Documents pareils
1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Chapitre 4 : Les mémoires

Rappels d architecture

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Exécution des instructions machine

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Architecture des Ordinateurs. Partie II:

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Conception de circuits numériques et architecture des ordinateurs

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Architecture des ordinateurs

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

IV- Comment fonctionne un ordinateur?

Leçon 1 : Les principaux composants d un ordinateur

Guide Mémoire NETRAM

Cours 3 : L'ordinateur

Conception de circuits numériques et architecture des ordinateurs

Cours Informatique 1. Monsieur SADOUNI Salheddine

Structure de base d un ordinateur

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Matériel & Logiciels (Hardware & Software)

Compilation (INF 564)

Vers du matériel libre

Programmation assembleur : aperçu

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Programmation C. Apprendre à développer des programmes simples dans le langage C

ELP 304 : Électronique Numérique. Cours 1 Introduction

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

GPA770 Microélectronique appliquée Exercices série A

ASR1 TD7 : Un microprocesseur RISC 16 bits

Structure et fonctionnement d'un ordinateur : hardware

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Prise en main. Prise en main - 0

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

I00 Éléments d architecture

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Le traitement du temps

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Fiche technique CPU 315SN/PN (315-4PN33)

Architecture matérielle des systèmes informatiques

Conférence sur les microcontroleurs.

QUESTION 1 {2 points}

CM2 L architecture MIPS32

Fonctionnement et performance des processeurs

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Ordinateurs, Structure et Applications

REALISATION d'un. ORDONNANCEUR à ECHEANCES

PIC : COURS ASSEMBLEUR

Architecture des ordinateurs Introduction à l informatique

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

PIC 16F84. Philippe Hoppenot

Structure d un programme

Éléments d'architecture des ordinateurs

IFT1215 Introduction aux systèmes informatiques

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Organisation des Ordinateurs

PIC EVAL Dev Board PIC18F97J60

Temps Réel. Jérôme Pouiller Septembre 2011

Séminaire RGE REIMS 17 février 2011

La mémoire. Un ordinateur. L'octet. Le bit

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Tests de performance du matériel

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Tout savoir sur le matériel informatique

Introduction aux systèmes temps réel. Iulian Ober IRIT

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Fiche technique CPU 314SC/DPM (314-6CG13)

Une version javascript sera disponible directement dans le cours prochainement.

Structure fonctionnelle d un SGBD

Traitement de données

Cours de Systèmes d Exploitation

Architecture des calculateurs

La carte à puce. Jean-Philippe Babau

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Partie 7 : Gestion de la mémoire

Initiation à LabView : Les exemples d applications :

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Introduction à la microinformatique et à la programmation OO

Bases de programmation. Cours 5. Structurer les données

Jeu d instructions NIOS II

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

I- Définitions des signaux.

Systèmes et traitement parallèles

Ordinateurs, Structure et Applications

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Transcription:

ELE-542 Systèmes ordinés en temps réels Cours # 4 Mesure de performance et aspects matériels Jean-Marc Beaulieu et Bruno De Kelper Site internet: http://www.ele.etsmtl.ca/academique/ele542/ Systèmes ordinés en temps réel Cours n o 4 1 Mesure de la performance Objectif : Améliorer l exécution des portions critiques de notre code en langage C. Mesure : Chronométrage des fonctions Nous allons voir 3 façons d estimer le temps d exécution d une section de code : Mesure directe Décompte d instructions Décompte des entrées / sorties Systèmes ordinés en temps réel Cours n o 4 2 ELE542 Cours 04 1

Mesure directe de la performance Mesure du temps d exécution dans une boucle t 1 = temps(); for (i=0, i < Nb_itération ; i++) { RIEN, Pas de code, nada } t 2 = temps(); t base = t 2 t 1 ; t 1 = temps(); for (i=0, i < Nb_itération ; i++) { Code à mesurer } t 2 = temps(); t mesuré = t 2 t 1 ; t code = (t mesuré -t base )/Nb_itération Avantage : Pas besoin d une mesure très précise de l horloge Inconvénients : Attention à l impact du compilateur (i.e. optimisation). Vérifier la linéarité pour Nb_itération assez grand. Systèmes ordinés en temps réel Cours n o 4 3 Mesure du temps La mesure de temps dépend : Du matériel disponible : Horloge temps réel (real-time clock - RTC) Chronomètre/Compteur Du système d exploitation Services disponibles Du langage Fonctions disponibles (librairies) Systèmes ordinés en temps réel Cours n o 4 4 ELE542 Cours 04 2

Mesure du temps dans un PC Horloge temps réel (RTC Motorola 6818) : Disponible dans les ordinateurs de type PC. Tient à jour la date et l heure. Toujours en fonction, même quand l ordinateur est éteint. Accessible par les services du système d exploitation. Lut par le système d exploitation au démarrage. Résolution : ± 1 seconde Systèmes ordinés en temps réel Cours n o 4 5 Mesure du temps dans un PC Chronomètre d intervalle programmable (PIT Intel 8253) : Circuit qui génère des interruptions à intervalle régulier (DOS : 18.2/sec, Windows : 1000/sec) Sert habituellement à cadencer le «scheduler» de l OS Sert à la mise à jour de l horloge «software» de Windows Fréquence d horloge = 1.19318 MHz Résolution = 1.676 µs à 54.93 ms Accessible par les services du OS et par les fonctions de la librairie «timer.h» (ANSI-C) time() clock() Systèmes ordinés en temps réel Cours n o 4 6 ELE542 Cours 04 3

ANSI C Fonction date & time time_t time( time_t *timer ); // timer.h Get current system time as type time_t Résultat : struct tm { int tm_sec; /* seconds after the minute - [0,59] */ int tm_min; /* minutes after the hour - [0,59] */ int tm_hour; /* hours since midnight - [0,23] */ int tm_mday; /* day of the month - [1,31] */ int tm_mon; /* months since January - [0,11] */ int tm_year; /* years since 1900 */ int tm_wday; /* days since Sunday - [0,6] */ int tm_yday; /* days since January 1 - [0,365] */ int tm_isdst; /* daylight savings time flag */ }; Résolution : ± 1 seconde Systèmes ordinés en temps réel Cours n o 4 7 ANSI C Fonction clock clock_t clock( void ); // timer.h Retourne le nombre de ticks de l horloge Notes : typedef long clock_t; Temps en secondes = clock_t/clocks_per_sec; Sous Windows2000, CLOCKS_PER_SEC = 1 000; Sous DOS (TurboC), CLOCKS_PER_SEC = 18.2. Résolution = 0.99985 ms Systèmes ordinés en temps réel Cours n o 4 8 ELE542 Cours 04 4

Mesure du temps Processeurs INTEL Pentium Time Stamp Counter (TSC) : Compteur incrémenté à chaque cycle de l horloge du processeur. Compteur de 64 bits divisé en 2 registres : EDX EAX 32 bits 32 bits Accessible seulement par la commande RDTSC et la lecture des registres EDX et EAX en assembleur (pas encore supporté en C) Exemple : Union { struct { unsigned LowB; unsigned HighB; } unsigned long Ticks; } Clock; Clock.Ticks = 0; asm { pushad Pour la sérialisation CPUID RDTSC mov Clock.LowB,eax mov Clock.HighB,edx popad } Systèmes ordinés en temps réel Cours n o 4 9 Mesure du temps dans un système embarqué Chronomètre/Compteur (Timer/Counter) : Les systèmes embarqués contiennent habituellement un ou plusieurs Timer/Counter sophistiqués. Servent souvent à cadencer le «scheduler» de l OS. Servent aussi à générer des signaux périodiques ou à mesurer des intervalles entre des évènements. Accessible par des fonctions spécialisées, codées directement ou fournies par des librairies spécialisées. Résolution : Configurable Souvent très bonne (> 10 6 /sec) ATMega16 : f horloge = 14.7456 MHz Résolution Max = 0.13563 µs Systèmes ordinés en temps réel Cours n o 4 10 ELE542 Cours 04 5

Mesure du temps dans un système embarqué ATMega16 Systèmes ordinés en temps réel Cours n o 4 11 Décompte des instructions Analyse du code assembleur Évaluation du temps d exécution de chaque instruction. Difficultés et limites Pas facile / impossible d estimer le temps d exécution d une séquence d instructions sur les architectures complexes; Souvent le temps d exécution varie; Travail laborieux. Exemple : Entrée / sortie par interrogation BYTE8 Serial_Input(void) { /* Attendre l arrivée d une nouvelle donnée */ while ((inportb(status_port) & READY) == 0) {} return inportb(data_port) ; } void Serial_Output(BYTE8 ch) { /* Attendre que le périphérique soit prêt */ while ((inportb(status_port) & READY) == 0){} outportb(data_port, ch) ; } Réf. : Lewis, Chap. 6 Systèmes ordinés en temps réel Cours n o 4 12 ELE542 Cours 04 6

Décompte des instructions _Serial_Input: MOV DX,02FDh ; DX Status Port Address SI1: IN AL,DX ; Read Input Status Port TEST AL,00000001B ; Check the Ready Bit JZ SI1 ; Continue to wait if not ready MOV DX,02F8h ; Else load DX with Data Port Address XOR EAX,EAX ; Pre-clear most significant bits of EAX IN AL,DX ; Read Data Port RET ; return to caller with data in EAX Réf: Lewis Chap 6. Systèmes ordinés en temps réel Cours n o 4 13 Décompte des lectures / écritures Modèle approximatif basé sur l observation que la performance est souvent limitée par le temps nécessaire aux accès mémoire. On doit inclure : La lecture des instruction; Les accès aux registres des périphériques. On néglige : Les facteurs d accélération dus à la mémoire cache, à la présence d un pipeline et de plusieurs ALU; L estimation est donc pessimiste. ET TRÈS IMPRÉCISE Réf: Lewis Chap 6. Systèmes ordinés en temps réel Cours n o 4 14 ELE542 Cours 04 7

Décompte des lectures / écritures ; Opcode Immediate Stack I/O _Serial_Input: ; Bytes Bytes Bytes Transfers MOV DX,02FDh ; 1 2 SI1: IN AL,DX ; 1 1 TEST AL,00000001B ; 1 1 JZ SI1 ; 1 1 MOV DX,02F8h ; 1 2 XOR EAX,EAX ; 1 IN AL,DX ; 1 1 RET ; 1 4 14 octets pour les instructions, 4 octets pour la pile, 2 octets pour les entrées / sorties Réf. : Lewis, Chap. 6 Systèmes ordinés en temps réel Cours n o 4 15 Décompte des lectures / écritures Exemple : Architecture considérée ( c.f. lewis) Accès en mémoire 60 ns; Bus PCI 33 MHz 30 ns par accès. En général, les transferts demandent plusieurs cycles d accès. Décompte: (14 octets / (4 octets par cycle)) * 60 ns = 240 ns (instructions) (4 octets / (4 octets par cycle)) * 60 ns = 60 ns (pile) 2 octets * 30 ns = 60 ns (Entrée / sortie) Total = 360 ns Taux de transfert maximum = 1/360 ns = 2.78 Moctets/s Réf. : Lewis, Chap. 6 Systèmes ordinés en temps réel Cours n o 4 16 ELE542 Cours 04 8

Importance des aspects matériels Pourquoi considérer les aspects matériels? Sélection de la plate-forme matérielle Comprendre le fonctionnement de bas niveau de notre solution Éléments logiciels ET matériels Meilleure utilisation des ressources : Accès à des fonctionnalités spéciales Performance Fiabilité Prédictibilité Systèmes ordinés en temps réel Cours n o 4 17 Introduction Le processeur Le processeur joue un rôle capital dans le STR. Le choix du CPU est largement dicté par les contraintes temporelles fixées lors de la conception. Temps de réponse nécessaire Nature et complexité du traitement (calcul) à faire Nature du transfert de données Connaître les mécanismes internes est nécessaire pour un choix éclairé. Systèmes ordinés en temps réel Cours n o 4 18 ELE542 Cours 04 9

Choix d'un processeur/microcontrôleur Un problème ayant plusieurs dimensions : Consommation dissipation Coût Vitesse de calcul Vitesse de E/S Mémoire Interruptions Capacités annexes Performance Systèmes ordinés en temps réel Cours n o 4 19 Architecture des processeurs Architecture de base : Machine de Von Neumann Le programme est emmagasiné en mémoire Cycle d'exécution séquentiel : Alimenter-exécuter 1 ) Unité de traitement instruction Mémoire programme 2 ) Unité de traitement exécution Mémoire programme Processus : Lecture Exécution Systèmes ordinés en temps réel Cours n o 4 20 ELE542 Cours 04 10

Le matériel Bus de données Programme (instructions) Pile Bus d adresse Données Processeur Mémoire Systèmes ordinés en temps réel Cours n o 4 21 Lien entre le matériel et le programme Processus en 3 phases : Une instruction Lecture de l instruction Compteur de programme Bus d adresse et de donnée Registre d instruction Décodage de l instruction Décodeur d instruction Micro-mémoire Lignes de contrôle Exécution de l instruction Registres adresse/donnée ALU Bus d adresse et de donnée Structure d une instruction : Op code Adresse Opérand 1 Adresse Opérand 2 Donnée immédiate Taille 16 à 48 bits 8 bits 8 bits 8, 16, 32 bits Systèmes ordinés en temps réel Cours n o 4 22 ELE542 Cours 04 11

Lien entre le matériel et les données Modes d adressage : (une instruction peut utilisé plus qu un mode d adressage) Implicite : - L emplacement de la donnée est implicite dans l instruction - Pas de lecture de donnée en mémoire - Code d instruction court (16 bits) ex. : CLS (Clear Signed Test Flag) Immédiat : - La donnée est fournie dans l instruction - La donnée est lue en même temps que l instruction - Taille de l instruction dépend de la taille de la donnée Donnée Instruction 4 bits 16 bits > 4 bits 16 bits + taille de la donnée ex. : LDI R1,5 (Load Immediat) Systèmes ordinés en temps réel Cours n o 4 23 Lien entre le matériel et les données Modes d adressage : (une instruction peut utilisé plus qu un mode d adressage) Direct : - L adresse de la donnée est fournie de façon immédiate (Direct) ou la donnée est fournie par un registre (Register Direct) - L adresse de la donnée est lue en même temps que l instruction et la donnée est lue lors de l exécution - Code d instruction long : Op code (16 bits) + adresse (32 bits) ex. : ADD R3,$00FA Indirect : - L adresse de la donnée se trouve à l adresse fournie de façon immédiate (Indirect) ou dans un registre d adresse (Register Indirect) - L adresse de la donnée est lue en même temps que l instruction et la donnée est lue lors de l exécution - Code d instruction long : Op code (16 bits) + adresse (32 bits) ex. : MUL D3,($00B4) ou MUL D7,(A3) Systèmes ordinés en temps réel Cours n o 4 24 ELE542 Cours 04 12

Architecture des processeurs et systèmes en temps réel Plusieurs éléments sont à considérer lorsque l'on doit comparer plusieurs choix possibles de processeur : Le pipeline Structure des instructions : CISC RISC Processeur spécialisé - DSP Type d'opérations arithmétiques La mémoire cache Systèmes ordinés en temps réel Cours n o 4 25 Architecture avec pipeline Objectif : Accélérer le traitement Diviser les instructions en plusieurs étapes ou phases Exécuter plusieurs instructions en même temps Exemple : Instruction 1 Instruction 2 Instruction 3 lecture décodage exécution lecture décodage lecture exécution décodage Questions pour le traitement en temps réel : le pipeline doit être vidé lorsqu il y a branchement ( interruption) Le temps d exécution est difficile à prédire Systèmes ordinés en temps réel Cours n o 4 26 ELE542 Cours 04 13

Caractéristique Macro-instructions Mode d adressage Nombre d instructions Programme exécutable Temps de décodage Temps d exécution Exemples RISC VS CISC RISC Reduced Instruction Set Computer Simple (JMP, LOAD, STORE, ADD) Nombre restreint < 100 Plus long Rapide Rapide & constant (meilleur pour pipeline) Mise sur un bon compilateur mais optimisation plus facile DEC ALPHA, PowerPC, SUN CISC Complex Instruction Set Computer Complexe (MUL, DIV, SQRT, MATMUL) Nombreux & complexes > 250 Plus court Plus long Lent & plus variable PENTIUM, 68332, VAX Systèmes ordinés en temps réel Cours n o 4 27 Processeur spécialisé Processeur pour le traitement numérique des signaux (DSP ou Digital Signal Processor) Il possède un jeu d instructions orienté vers une tâche spécifique; donc, il sera le meilleur dans son champ d expertise, mais inférieur ailleurs. Exemple : Instructions spéciales pour les filtres numériques et les FFT «Multiplication et addition» pour le calcul de sommes de la forme a ix = i a1x1 + a2 x2 + + an 1xn + an xn Forces : 1 Instructions puissantes Communications rapides Systèmes ordinés en temps réel Cours n o 4 28 ELE542 Cours 04 14

Technologie en évolution Processeur RAW en développement à MIT Systèmes ordinés en temps réel Cours n o 4 29 Type d opérations mathématiques Les processeurs manipulent des nombres binaires; les jeux d instructions possèdent donc toujours des opérations sur les nombres entiers. Processeur avec arithmétique entière En ingénierie, il y a beaucoup 1234 de calculs en valeurs réelles ALU Entier 5678 Notations : 0.12345 x 2.346 Mantisse 1234 2346 Exposant 10-4 10-3 (généralement, en base 2) Pour les processeurs avec arithmétique entière, les opérations «point flottant» sont plus longues parce qu elles demandent plusieurs manipulations. Systèmes ordinés en temps réel Cours n o 4 30 ELE542 Cours 04 15

Type d opérations mathématiques (suite) Solution : Processeurs à arithmétique réelle Ajouter les éléments matériels au processeur pour réaliser un ALU effectuant directement les opérations réelles 2 sortes : point fixe ou point flottant Les processeurs à point fixe peuvent effectuer des calculs à points flottants avec 2 opérations (1 pour la mantisse, 1 pour l exposant) Les processeurs «entiers» sont moins complexes que ceux en «point flottant»; donc, pour le même prix, le processeur «entier» aura une cadence d exécution plus rapide L utilisation d un processeur «point flottant» se justifie lorsque le traitement à faire contient beaucoup d opérations «point flottant» Systèmes ordinés en temps réel Cours n o 4 31 Type d opérations mathématiques (suite) Coprocesseur point flottant Un processeur spécialisé (exemple 80387) Permet d étendre le répertoire des instructions mais ne permet pas le traitement en parallèle Fonctionnement : Processeur transfère les données (registres) Processeur lance le coprocesseur et se met en attente («idle») Processeur reçoit les résultats Nouvelle technologie : coprocesseur à base de FPGA Questions pour le traitement en temps réel : Peut-on interrompre le coprocesseur? Plus de registres à sauvegarder lors d un changement de contexte? Systèmes ordinés en temps réel Cours n o 4 32 ELE542 Cours 04 16

Accès mémoire et mémoire cache Le temps d accès aux instructions et aux données est un facteur déterminant dans la performance d un processeur Principe de localité : lors de 2 accès successifs, les données/instructions cibles sont «proches» l une de l autre Pyramide des E/S : Temps d accès rapide lent Registres 1 Cache 1 er niveau 10 Cache 2 ième niveau 100 Mémoire RAM 1000 Unité de temps arbitraire Disque dur 10000 Systèmes ordinés en temps réel Cours n o 4 33 Mémoire cache Avantages - Accès très rapide. - Contient une copie d une partie des instructions du programme. - Contient une copie des données les plus fréquemment utilisées. - Réduit le temps d accès moyen dans la mémoire. Désavantages - Les «fautes de cache» coûte très cher en temps d exécution (L1 : environ 10 cycles, L2 : environ 200 cycles). - Problème de cohérence lors d accès DMA par un périphérique. Systèmes ordinés en temps réel Cours n o 4 34 ELE542 Cours 04 17

Les mémoires 2 grandes catégories : RAM Mémoire vive Random Acces Memory, accès lecture/écriture Volatile : semi-conducteur Non volatile : magnétique ROM Mémoire morte Read Only Memory, lecture seulement (pour accès rapide) Écriture lente, programmation 1 ou plusieurs fois Systèmes ordinés en temps réel Cours n o 4 35 Mémoires RAM Magnétique Principe : électroaimant t accès: lent (10us) P consommé : Densité : $$ : Insensible à l électrostatique et aux particules chargées dans l espace Application militaire et spatiale Statique (SRAM) Principe : bascule 4 xtors t accès : rapide (10ns) P consommé : Densité : moyenne $$ : Utilisée comme mémoire cache RDRAM Transfert à haut débit ( 800 Mhz) Bus de 16 bits DDR $$ : Dynamique (DRAM) Principe : 1 xtors + 1 condensateur t accès : moyen (50ns) P consommé : moyen Densité : $$ : Nécessite un cycle de rafraîchissement pour le condo SDRAM Synchronous Dynamic RAM t accès : rapide (10ns) $$ : Systèmes ordinés en temps réel Cours n o 4 36 ELE542 Cours 04 18

Mémoires ROM PROM Principe : fusible t accès : rapide (50ns) P consommé : Moyenne $$ : Reprogrammable : Non UVPROM Principe : charge entre 2 niveaux isolants (condensateur) t accès : rapide (50ns) P consommé : moyenne $$ : Reprogrammable : oui en exposant à la lumière UV FLASH MEMORY Principe : idem à UVPROM t accès : ultra-rapide (20ns) $$ :. EEPROM Principe : idem à UVPROM t accès : + lent que UVPROM P consommé : $$ : Reprogrammable : oui sur signal de commande électrique Systèmes ordinés en temps réel Cours n o 4 37 Caractéristiques des entrées/sorties Concernant le processeur, il y a 3 méthodes pour le transfert de données : 1. Canal programmé d'e/s (I/O mapped) 2. Canal programmé projeté dans l'espace mémoire (Memory mapped) 3. Accès direct à la mémoire DMA ou "Direct memory access" Systèmes ordinés en temps réel Cours n o 4 38 ELE542 Cours 04 19

Canal programmé d'entrée/sortie Le jeu d'instructions contient des instructions spéciales pour les E/S Exemple : INTEL Instruction IN et OUT en ASM Fonctions inportb() et outportb en C Avantages : Pas besoin de circuits spéciaux ou de câblage pour la redirection des accès mémoire Plage mémoire entièrement utilisable pour les accès mémoire Désavantages : Instructions spéciales plus d'instructions Mode d'adressage plus limité Code spécifique au matériel Systèmes ordinés en temps réel Cours n o 4 39 Canal d'e/s projeté en mémoire Certaines adresses mémoire correspondent à des unités d'e/s Pour le processeur, les accès E/S = accès mémoire Exemple : MOTOROLA (68332) Processeur Décodeur d'adresses Mémoire E/S E/S Avantages : Programmation plus facile Désavantages : Circuits spéciaux pour les accès mémoire Utilise une partie de la plage mémoire Peut nécessiter des "états d'attente" (wait state) pour synchroniser l'accès (accès en mode synchrone) Systèmes ordinés en temps réel Cours n o 4 40 ELE542 Cours 04 20

Accès direct en mémoire (DMA) Communication entre la mémoire et les périphériques sans intervention du processeur Sans accés DMA, les données de périphériques transit par le processeur avant d arriver dans la mémoire Transfert par bloc très rapide Contrôleur DMA gère les accès au bus et les transferts Processeur Mémoire BUS GRANT TRANSFERT Contrôleur DMA DMARQ DMACK E/S Systèmes ordinés en temps réel Cours n o 4 41 Accès direct en mémoire (suite) Avantages : Permet les transferts sans intervention du CPU Amélioration de la performance, surtout pour le transfert de grandes quantités d'information Désavantages : Circuits spéciaux sont nécessaires "Vol de cycles" au processeur Processeur en attente du BUS Systèmes ordinés en temps réel Cours n o 4 42 ELE542 Cours 04 21

Entrées/Sorties numériques Entées/sorties parallèles : - Sur un PC, on a le port parallèle qui sert habituellement pour communiquer avec une imprimante. - Les µcontrôlleurs ont habituellement plusieurs ports parallèles Port C Port D MCU MUX MEM Port A Port B Port d expansion Port d entrées/sorties tout usage - Taille 8 bits, bidirectionnel - Configurable, multi-usage Port d expansion du système - Permet d augmenter le système (ajouter de la mémoire, ) Systèmes ordinés en temps réel Cours n o 4 43 Entrées/Sorties numériques Entées/sorties sérielles : - Sur un PC, le port série (UART) qui servait pour communiquer avec la souris ou certaines imprimantes série. - Les µcontrôlleurs ont habituellement un port série synchrone et un port série asynchrone de type UART. MCU A/D A/D D/A D/A - Synchrone : pour communication à courte distance. - Asynchrone : pour communication à longue disctance. Systèmes ordinés en temps réel Cours n o 4 44 ELE542 Cours 04 22

Périphériques analogiques 2 types de périphériques analogiques : ADC : Analog to Digital Converter DAC : Digital to Analog Converter Taux d échantillonnage : Théorème de Nyquist : f ech f max Systèmes ordinés en temps réel Cours n o 4 45 Convertisseurs Convertisseurs les plus fréquents : Double rampe lent (33ms); immunité au bruit; 12-16 bits Approximation successive rapide (30-50us) bruyant $$ 8-12 bits Convertisseur Flash très rapide (1us) $$ 6-8 bits Systèmes ordinés en temps réel Cours n o 4 46 ELE542 Cours 04 23

Convertisseur A - D Double rampe lent (33ms); immunité au bruit; 12-16 bits Systèmes ordinés en temps réel Cours n o 4 47 Convertisseur A - D Approximation successive rapide (30-50us) bruyant $$ 8-12 bits Systèmes ordinés en temps réel Cours n o 4 48 ELE542 Cours 04 24

Convertisseur A - D Flash Converter très rapide (1us) $$ Ï 6-8 bits Systèmes ordinés en temps réel Cours no 4 49 Cours no 4 50 Convertisseur D - A 1 type de convertisseur : réseau R-2R Rapide, économique Systèmes ordinés en temps réel ELE542 Cours 04 25

Chien de garde du système (Watchdog) - Le Watchdog Timer sert à surveiller le système en s assurant que les tâches critiques se terminent dans un temps spécifié. - S assure que le système ne reste pas bloqué (Deadlock). Watchdog RESET CLK INT CPU - Initialisé avec un compte de départ. - Doit être réinitialisé avant que le compte arrive à zéro, sinon le Watchdog génère une interruption. - L interruption a pour but de redémarrer le système. Systèmes ordinés en temps réel Cours n o 4 51 Sélection et comparaison de microcontrôleurs Périphériques Gestion des entrées/sorties Internes plus rapides (mais généralement moins complets) Externes reliés au traitement des IRQ et des entrées/sorties Architecture Nombre d ALU Structure interne Registres, bus, pipeline Gestion des accès mémoire Registre, Cache, ROM/RAM Traitement des interruptions Jeu d instructions Nombre d instructions disponibles et capacité Horloge interne Nombre de cycles/instructions Mode d adressage et performance Caractéristiques physiques Systèmes ordinés en temps réel Cours n o 4 52 ELE542 Cours 04 26