NEW ROSE Robotique et Systèmes Embarqués Architecture matérielle des systèmes électroniques embarqués Brève histoire des SE 1967 : Apollo Guidance Computer, premier système embarqué. Environ un millier de circuits intégrés identiques (portes NAND). 1960-1970 : Missile Minuteman, guidé par des circuits intégrés. 1971 : Intel produit le 4004, premier microprocesseur, à la demande de Busicom. Premier circuit générique, personnalisable par logiciel. 1972 : lancement de l’Intel 8008, premier microprocesseur 8 bits (48 instructions, 800kHz) 1974 : lancement du 8080, premier microprocesseur largement diffusé. 8 bits, 64KB d’espace adressable, 2MHz – 3MHz. 1978 : création du Z80, processeur 8 bits 1979 : création du MC68000, processeur 16/32 bits Système embarqué : définition Un système embarqué est un système : qui contient un processeur, dont la fonction première n’est pas "d’être un ordinateur", souvent créé pour accomplir une tâche spécifique, en cachant la présence de processeur / logiciel à l’utilisateur. Système embarqué : définition Système embarqué Ordinateur programmes souvent exécutés à partir d'une mémoire non volatile programmes exécutés à partir de la RAM "embarqué" = enfoui, autocontenu architecture ouverte, extensible spécialisé non spécialisé, standardisé tolérant aux fautes, fiable les fautes sont tolérées (!) Systèmes embarqués : exemples Exemples de systèmes embarqués : distributeur de billets carte à puce téléphone portable système de contrôle de vol d’avion console de jeux robot four micro-ondes disque dur Caractéristiques des SE Un système embarqué: récupère éventuellement des stimuli extérieurs prend des décisions en fonction de ces stimuli et de son état interne altère son état interne et agit de manière perceptible par l’extérieur en fonction des décisions prises Un système embarqué peut être : atomique : montre à quartz hiérarchique : formé de plusieurs sous systèmes embarqués Caractéristiques des SE (2) Contraintes matérielles exercées sur un système embarqué : encombrement poids / portabilité consommation d’énergie coût robustesse sécurité interne de l’environnement maniabilité performance réactivité Architecture matérielle des SE Logiciel alimentation Effecteurs mémoire CPU Capteurs port de diagnostics port de communications circuit(s) spécifique(s) (ASIC) écran / clavier (IHM) A.M. des SE : capteurs Capteurs : récupèrent des informations physiques de l’environnement virtuellement, tous les stimuli physiques peuvent être captés température lumière, couleur son vélocité accélération (linéaire, angulaire) pression champ magnétique tension, courant, capacité… Interfaces pour ces capteurs alimentation isolation et amplification filtrage multiplexage conversion A/N FPAA A.M. des SE : capteurs Signaux analogiques : continus en amplitude et dans le temps bruités non manipulables par un processeur Signaux numériques : discrets en amplitude et dans le temps non bruités (généralement…) manipulés par les microprocesseurs représentation imparfaite des signaux analogiques A.M. des SE : capteurs Filtrage : nécessaire : théorème de Nyquist généralement passe-bas attention aux effets de bord (intégration, dérivation, …) A.M. des SE : capteurs Convertisseurs AD : approximations successives simple rampe / tracking double rampe (intégrateur) parallèle (flash) parallèle 2 étages sigma-delta A.M. des SE : capteurs Convertisseur à approximations successives : entrée comp registre sortie DA complexité : O(log(n)) rapidité : O(log(n)) généralement utilisé pour les comparateurs 12-16 bits nécessite un échantillonneur - bloqueur A.M. des SE : capteurs Simple rampe / tracking : entrée comp compteur sortie DA simple rampe : à chaque acquisition, on part de 0 et on augmente tracking : le compteur part du dernier sample et compte ou décompte complexité : O(log(n)) rapidité : O(n) nécessite un échantillonneur - bloqueur A.M. des SE : capteurs Double rampe (intégrateur) : entrée integ comp logique sortie -ref phase 1 : intégration de l'entrée pendant un temps T1 phase 2 : décharge de l'intégrateur vers 0 à vitesse constante. Le temps T2 mis à décharger l'intégrateur donne la valeur d'entrée A.M. des SE : capteurs Double rampe (intégrateur) : entrée integ -ref intégration décharge T1 T2 12 - 18 bits, 0 - 500 kHz filtre naturellement le bruit du signal d'entrée comp logique sortie A.M. des SE : capteurs Parallèle (flash) : comp entrée comp encodeur comp comp rapides mais complexes complexité : O(log(n)) rapidité : O(log(n)) 8-12 bits, 0 – 500MHz sortie A.M. des SE : capteurs Parallèle 2 étages : entrée flash AD flash DA - + flash AD registre sortie première étape : conversion grossière, puis le résultat est soustrait de l'entrée deuxième étape : la différence est aussi numérisée de façon précise pratiquement aussi performants que les convertisseurs parallèles A.M. des SE : capteurs Facteurs clefs : temps de conversion résolution précision linéarité codes manquants fenêtre d'acquisition impédance d'entrée bruit A.M. des SE : effecteurs Effecteurs : influent sur l’environnement moteurs servomoteurs valves restitution de son (haut-parleurs, buzzers, …) relais afficheurs Contrôleurs d’effecteurs conversion N/A amplification interrupteurs de puissance (IGBT, MOS, …) relais générateurs PWM FPAA A.M. des SE : effecteurs Convertisseurs DA : sortie quantifiée et échantillonnée filtrage souvent nécessaire ! deux types principaux : binaire échelle R-2R A.M. des SE : effecteurs Convertisseur binaire : Bn R Bn-1 2R Bn-2 22 R B0 2n R inconvénient : R aop grande précision = grand nombre de valeurs de résistances problèmes de stabilité en température sortie A.M. des SE : effecteurs Convertisseur échelle R – 2R : VREF B0 B1 B2 B3 2R 2R 2R 2R R R R 2R R R aop sortie avantage : pas besoin de beaucoup de valeurs de résistances inconvénient : besoin d'interrupteurs SPDT A.M. des SE : effecteurs Facteurs clefs : résolution linéarité temps de conversion glitches : échantillonneur – bloqueur en sortie bruit… A.M. des SE : effecteurs PWM : modulation en largeur d'amplitude utilisée pour les systèmes naturellement passe-bas A.M. des SE : IHM Interface homme machine entrées de données clavier boutons poussoirs interrupteurs à main, à pied dispositifs de pointage souris touchpad stylos optiques afficheurs LED afficheurs LCD écrans CRT, sortie télévision Interfaces associées multiplexage du clavier protection / isolation de l’environnement alimentation des afficheurs A.M. des SE : mémoire de masse (NVM) Mémoire non volatiles stockage du programme (firmware) de données de calibration ou de configuration encore peu de disques durs, ou bien disques amovibles horloges temps réel (RTC) sauvegardées par batteries Types mask-ROM / OTP-ROM EPROM EEPROM Flash RAM sauvegardées par batteries A.M. des SE : NVM : mémoires Flash Flash non volatile alimentation simple (5V, 3.3V, 1.8V) cellule de base : transistor MOS avec une porte isolée (entre la porte de commande et le canal MOSFET) les cellules peuvent être arrangées en série, formant des portes NAND implicites parallèle, formant des portes NOR implicites la taille des contacts (bit line, source line) est le facteur limitant pour la réduction de la taille des cellules. A.M. des SE : NVM : mémoires Flash Flash A.M. des SE : NVM : mémoires Flash (2) Fonctionnement d’une Flash source : Samsung A.M. des SE : NVM : mémoires Flash (3) Fonctionnement d’une Flash (suite) source : Samsung A.M. des SE : NVM : mémoires Flash (4) NOR NAND 1MB - 16MB 8MB – 128MB interface type SRAM IO nécessite du matériel supplémentaire pour exécuter directement un code de boot lecture rapide, aléatoire moins rapide, séquentielle par bloc écriture lente (6µs) rapide (0.4µs) effacement (bloc) TRES lent : 0.5s lent (2ms) cycles 10 000 – 100 000 100 000 – 1000 000 fiabilité pas d’ECC ECC (16B pour 512B de data) utilisation code données coût >2x x capacité A.M. des SE : NVM : mémoires Flash (4) Flash NOR / NAND A.M. des SE : NVM : mémoires Flash (5) Flash NOR lentes, chères, faciles à mettre en œuvre, adaptées au code (XIP). Flash NAND rapides, moins chères, difficiles à mettre en œuvre, adaptées aux données. Certains processeurs intègrent directement une interface Flash spécialisée (NAND et/ou série) : MiMagic5 de NeoMagic (ARM922T). Disk on Chip : NAND à interface SRAM Flash NAND + SRAM + contrôleur au démarrage, recopie automatique du premier secteur dans la SRAM interface standard SRAM intègrent la correction d’erreur intègrent souvent un système de fichiers nécessitent un délai au Reset… A.M. des SE : NVM : mémoires Flash (6) Problème de la production programmation avant montage sur outils dédiés programmation in situ JTAG (lent, coûts fixes faibles) lit a clous (rapide, coûts fixes élevés, possibilité de le faire lors du test électrique de la carte) doit être anticipée lors de la création des schémas A.M. des SE : mémoire vive (RAM) Mémoire vive types statique : SRAM, SSRAM, ZBT-RAM, NoBL-RAM, … dynamique : DRAM, SDRAM, DDRAM, … intégrée au processeur ou non cache, générique ou mixte généralement de petite taille fonction fonctionnement du CPU acquisition / restitution de données à haut débit (tampons) Le choix du type de RAM est souvent dicté par le type d’interface disponible sur le processeur A.M. des SE : RAM : DRAM Organisation une DRAM est organisée en matrice de rangées colonnes chaque point de la matrice correspond à w bits (largeur de bus de la mémoire) capacité = Nrangées * Ncolonnes * largeur profondeur = Nrangées * Ncolonnes une capacité est souvent donnée sous la forme taille matrice * largeur A.M. des SE : RAM : DRAM (2) Fonctionnement l’adresse est passée sous forme rangée puis colonne d’abord RAS : sélection d’une rangée puis CAS : sélection d’une colonne la donnée est disponible un certain temps plus tard nécessité d’une logique de contrôle spécialisée : contrôleur DRAM Limitations des DRAM RAS doit être actif pendant tout le cycle : empêche le pipeline des accès. une certaines forme de pipeline peut être implémentée sous forme de bancs de mémoire entrelacés : accroissement de la complexité de la logique de contrôle des DRAM. A.M. des SE : RAM : SDRAM SDRAM et DRAM Synchronisation des transactions sur l’horloge microprocesseur. Tous les signaux de contrôle sont échantillonnés sur front d’horloge. RAS et CAS n’ont besoin d’être positionnés que pendant un cycle d’horloge : pipeline des opérations possible. source : Hitachi A.M. des SE : RAM : SDRAM (2) Organisation une SDRAM est organisée en bancs chaque banc en matrice de rangées colonnes chaque point de la matrice correspond à w bits (largeur de bus de la mémoire) capacité = Nbancs * Nrangées * Ncolonnes * largeur profondeur = Nbancs * Nrangées * Ncolonnes une capacité est souvent donnée sous la forme taille matrice * largeur * nombre de bancs Exemple : SDRAM 64Mb en x32 (512k x 32 x 4) profondeur : 2M largeur : 32 bits 4 bancs capacité : 64Mb A.M. des SE : RAM : SDRAM (3) Organisation (suite) la sélection des bancs se fait par les bits d’adresse de poids fort. chaque banc peut être adressé de façon indépendante. une fois qu’une rangée d’un banc a été sélectionnée, une nouvelle colonne peut être sélectionnée à chaque cycle d’horloge. de plus, si différentes rangées sont requises et se situent dans des bancs différents, la plupart des temps de précharge peuvent être éliminés. Un banc peut être utilisé pendant que les autres sont en précharge. A.M. des SE : RAM : SDRAM (4) Rafraîchissement principe : sélection d’une rangée, toutes les colonnes sont ensuite rafraîchies. taux de rafraîchissement standard nombre de rangées a rafraîchir pour rafraîchir toute la (S)DRAM. généralement 1k, 2k, 4k ou 8k. le circuit de sélection de colonne consomme plus de puissance que celui de sélection de rangée, un rafraîchissement sélectionnant plus de colonnes par rangée consomme donc plus : a taille égale, 1k consomme plus (en pointe) que 8k… compromis entre vitesse de rafraîchissement et consommation. A.M. des SE : RAM : SDRAM (5) Fréquence des cycles de rafraîchissement distribués : cycles régulièrement espacés. burst : rafraîchissement de toute la mémoire en bloc. cycles standards (tous les environ 15.6µs au minimum) les DRAM EDO disposent de cycles étendus (125µs). A.M. des SE : RAM : SDRAM (6) pour les DRAM RAS only externe, le contrôleur spécifie la rangée à rafraîchir. CAS before RAS le contrôleur initie le cycle l’adresse de la rangée a rafraîchir est interne à la RAM, et incrémentée à chaque cycle pas de lignes d’adresse a piloter : économise de l’énergie hidden extension du cycle de lecture ou écriture pour faire un rafraîchissement aussi lent qu’un accès en écriture puis rafraîchissement normal pour les SDRAM auto équivalent du CAS before RAS self refresh rafraîchissement même quand le système est en veille (pas d’horloge transmise) : une horloge interne est produite. besoin de commandes spéciales pour sortir de ce mode. A.M. des SE : RAM : SDRAM (7) Câblage les contrôleurs (S)DRAM ne supportent pas tous toutes les configurations possibles de (S)DRAM !!! vérifier que le contrôleur (S)DRAM supporte bien la mémoire choisie largeur du bus multiplexage adresse colonne à partir de 80MHz environ, les contraintes d’intégrité du signal deviennent critiques pour les SDRAM. cf. le cours / les TP d’intégrité du signal A.M. des SE : RAM : SRAM (1) SRAM une SRAM est plus rapide qu’une DRAM cellule de base SRAM : 6 transistors DRAM : 1 transistor pas besoin de rafraîchissement consommation pic plus faible, consommation moyenne plus élevée A.M. des SE : RAM : SRAM (2) Types asynchrones synchrones standard flow through pipelined synchrones ZBT-RAM (NoBL, NT-RAM) QDR-SRAM DDR-SRAM SigmaRAM, … simple port / multi ports A.M. des SE : RAM : SRAM asynchrones Architecture adresses lignes de contrôle mémoire data (sortie) asynchrones : nécessité de maintenir les adresses / signaux de contrôle pendant toute la durée du cycle nécessité de définir des temps d’accès minimum aux ressources synchrone Æ asynchrone : lentes A.M. des SE : RAM : SRAM synchrones 2 architectures flow through adresses lignes de contrôle registres d’entrée mémoire registres d’entrée mémoire data (sortie) pipelined adresses lignes de contrôle registres de sortie data (sortie) séparation du chemin mémoire – pin – registre d’entrée du processeur en deux augmentation de la fréquence de travail (débit) introduction d’une latence d’un ou deux cycles en lecture A.M. des SE : RAM : SRAM synchrones (2) Caractéristiques compteur burst interne (2bits) linéaire entrelacé créées spécifiquement pour des caches sur des bus à deux maîtres (processeur et contrôleur cache) le choix pipelined / flow through dépend du chipset utilisé, de la fréquence de fonctionnement. La fréquence de transition se situe vers 66MHz. source : Micron A.M. des SE : RAM : SRAM synchrones (3) Retournement de bus la longueur de pipeline n’est pas la même en lecture et écriture lecture : donnée 1 ou 2 cycles après l’adresse écriture : donnée en même temps que l’adresse donc insertion de cycle(s) mort(s) quand on passe d’un cycle de lecture à un cycle d’écriture adaptées à des bus dont le sens d’utilisation est globalement constant ! A.M. des SE : RAM : SRAM synchrones (4) cycles morts (pipelined) cycle mort (flow through) source : Micron A.M. des SE : RAM : SSRAM : ZBT (1) ZBT (Zero Bus Turnaround) crées par Micron, pour éviter l’insertion de cycles morts lors des retournement de bus reprises par d’autres fabricants (NoBL, NT-RAM) principe : équilibrage des pipe de lecture et écriture adaptées aux changement fréquents de direction de bus nécessitent un contrôleur spécial le signal R/W ne peut plus servir d’indicateur de direction de bus : possibilité de contention de bus A.M. des SE : RAM : SSRAM : ZBT (2) fonctionnement des ZBT (pipeline) fonctionnement des ZBT (flowthrough) source : Micron A.M. des SE : RAM : SSRAM : ZBT (3) limitation des ZBT les temps de commutations (turn off) des drivers sont fixes pour éviter la contention de bus, les fréquences d’utilisation doivent rester dans la zone 50 – 166MHz. au-delà, des cycles d’attente doivent être insérés… A.M. des SE : RAM : SSRAM : QDR et DDR (1) Les systèmes embarqués pour les réseaux demandent des RAM toujours plus puissantes (Intel IXP2x00, Cognigine CGN16100, SNP1000, …) Facteurs clefs : ratio lecture / écriture application de look-up : lectures fréquentes, écritures occasionnelles applications buffer : autant de lectures que d’écritures applications QoS : ratio dépendant du trafic possibilité ou non d’augmentation de la bande passante par augmentation de la largeur de bus latence acceptable En fonction de ces différents facteurs, trois nouvelles sortes de SRAM synchrones ont été crées : QDR DDR IO séparées DDR IO communes A.M. des SE : RAM : SSRAM : QDR et DDR (2) QDR bus de données lecture et d’écriture séparés chaque bus fonctionne en DDR : transferts sur chaque front d’horloge les deux bus fonctionnent de façon concurrente (cohérence assurée) optimisée pour un ratio RW proche de 1 (balancé à court terme) packet buffering (petits paquets) facteur limitant : une adresse à chaque front d’horloge le bus d’adresse a souvent un fan out élevé : bus lent, la matrice interne doit être rapide (deux accès par cycle d’horloge). DDR CIO un seul bus, DDR un seul type d’accès à la fois optimisée pour des bus maintenus dans une même direction (ratio RW = 0 ou ∞) lookup, data streaming (gros paquets) A.M. des SE : RAM : SSRAM : QDR et DDR (3) DDR SIO mélange de QDR et DDR CIO, pour remédier aux facteurs limitant fréquentiels de la QDR et fonctionnels de la DDR CIO pour certaines applications, les cycles morts de turn-around ne sont pas tolérables, et un débit constant d’adresses doit être maintenu. donc bus de données lecture et écriture séparés, un seul type d’accès à la fois. tout se paye : chaque broche n’est occupée que 50% du temps… A.M. des SE : RAM : SSRAM : QDR et DDR (4) source : Micron A.M. des SE : RAM : SSRAM : bref ! Bilan (ouf…) choix des SRAM dicté par le chipset ! le type d’application le type d’accès le plus souvent effectué dans les applications cibles source : www.qdrsram.com et si ça ne suffit pas ? QDR II : 333MHz (48Gb/s sur une x36) DDR II : 333MHz… A.M. des SE : unité centrale Unité centrale : circuits intégrés microprocesseur plus circuits additionnels (IO, contrôleur RAM) microcontrôleur DSP microcontrôleur "single chip" (µC + RAM) circuit dédié (SoC) système complet préexistant (PC104, VME…) Souvent équipée de : protection contre les crashs (watchdog) référence temporelle (timer) CPU pour systèmes embarqués (1) Source : Industry Analyst En 2003 CPU pour systèmes embarqués (2) Entre 40 et 50 processeurs par habitation aux ÉtatsUnis, plus 10 processeurs par PC. Une voiture moderne comporte une douzaine de processeurs (63 pour une BMW série 7, 65 pour une Mercedes classe S). Dans un PC : processeur central (Intel, AMD, …) processeurs 8/16 bits clavier (Philips ou Intel 8048) souris interface USB, Ethernet lecteur disquette disque dur, lecteur CD-ROM (Z80, H8S, 8051, SuperH, …) CPU pour systèmes embarqués (3) Il n’existe pas de CPU dominant sur le marché de l’embarqué (comme sur le marché des PC). Au contraire, le nombre de types de processeurs embarqués augmente. Les plus grandes familles ARM 68K (Motorola) MIPS SuperH PowerPC SPARC x86 évolution du marché des processeurs embarqués RISC CPU pour systèmes embarqués (4) Grandes familles de processeurs pour l’embarqué : ARM (Advanced RISC Machines) le 32 bits le plus vendu actuellement. équipe la majorité des téléphones portables. ARM ne vend que des licences de cœurs de processeurs. plus de 151 processeurs utilisent des cœurs d’ARM (ARM7, StrongArm / XScale pour la plupart), utilisés dans les imprimantes (HP, Lexmark, Samsung, Xerox), les appareils photos (Agfa, Kodak, Konica), les Set Top Box (Pace, RCA), les portable MP3 (Sony, iRiver), les consoles de jeux (Gameboy Advance, Dreamcast) les téléphones portables (Alcatel, Ericsson, NEC, Nokia, Panasonic, Siemens, Samsung) les modems [câble, ADSL, 802.11] (Agere, 3Com, D-Link, SMC, US Robotics) les PDA (HP iPaq, IBM, Psion, Sagem, Sony, Toshiba, ) … CPU pour systèmes embarqués (5) ARM (suite) cœur de très petite taille, simple. faible consommation. StrongARM, développé par DEC, racheté par Intel (et devenu XScale) 232MHz – 700MHz majoritairement processeurs orienté réseaux / réseaux sans fil Exemples : Intel IXP12xx0 Intel SA110 – SA1100 Intel IXP2x00 Intel PXA2x0 Samsung S3C4xx0 Atmel AT91xxxxxx Motorla DragonBall MX1 Altera Excalibur (EPXAx) CPU pour systèmes embarqués (6) 68k / 68HCxxx (Motorola) architecture CISC historiquement, une des plus grandes familles 68k : l’un des processeurs 32 bits les plus utilisés 68HCxx : famille de microcontrôleurs 8 – 16 – 32 bits environ 80 millions de pièces de 68k vendues par an toute la famille 68k est compatible (logiciel) utilisés dans automobiles PDA téléphones portables réseaux / réseaux sans fil électroménager appareils photos … CPU pour systèmes embarqués (7) x86 8086, 286, 386, 486, Pentium, AMD Athlon / Hammer architecture CISC 5ème rang, derrière ARM, 68K, MIPS et SuperH. architecture mal adaptée à l’embarqué : lents consommation élevée difficiles à programmer. MIPS (Microprocessor without Interlocked Pipeline Stages) architecture RISC 32 et 64bits, couvrant une large gamme : ultra faible consommation (SmartMIPS MIPS32 4KSc ) pour cartes à puce très haute puissance (MIPS64 20Kc) vente (licence) d’architectures et de cœurs. équipe la majeure partie des set top box numériques (31%) consoles de jeux (76%, Playstation 1 et 2, Nintendo 64) routeurs imprimantes laser couleurs exemples : R4000 / R5000 CPU pour systèmes embarqués (8) SuperH (Hitachi) architecture RISC super scalaire, 16, 32 et 64 bits. exemples : SH7750 et SH7751. utilisé principalement dans la DreamCast. maintenant : alliance avec ST pour licencier des cœurs de SH4 et SH5. optimisés pour puissance (SH7750 : 430 MIPS @ 240MHz, 1.7GFLOPS) faible consommation (900mW) densité de code faible taille sur silicium PowerPC (Motorola et IBM) utilisés sur la plateforme SPIF architecture créée en 1991 par IBM et Motorola, étendue en 1999 par le Book E pour assurer une compatibilité entre les différentes architectures PowerPC embarquées. architecture RISC, 32 bits, de 33Mhz à 2GHz. encore peu utilisés dans l'embarqué CPU pour systèmes embarqués (9) PIC (Microchip) picocontrôleurs, RISC, 8 ou 16 bits taillés pour des applications réduites : peu de RAM on chip pas de bus processeur (à une exception près) OTP, EPROM ou Flash (512 mots à 64k mots) minimisent le nombre de composants externes périphériques embarqués UART, I2C, SPI, CAN Timers, watchdog, PWM analogiques : convertisseurs AD, comparateurs CPU pour systèmes embarqués (10) Comment choisir un CPU ? prix, disponibilité… caractéristiques électriques tension(s) d’alimentation consommation fréquence de fonctionnement alimentations séparées cœur - entrée/sorties design logique statique / mise en veille boîtier impact routage et PCB (prix) impact dissipation impact fréquence CPU pour systèmes embarqués (11) Comment choisir un CPU ? (suite) possibilités performances MIPS / FLOPS… impact de l’environnement doit prendre en compte l’application cible EEMBC nombre et types de périphériques embarqués interfaces le nombre de broches impacte directement le routage et le prix du produit un bus est soumis à des contraintes de fan out : limité en fréquence, surtout s’il est multiplexé (SuperH, …). les interfaces rapides posent des problèmes d’intégrité et de CEM. CPU pour systèmes embarqués (12) Comment choisir un CPU ? (suite) adaptation aux applications timer (OS multitâche) protection crash (watchdog) architecture densité de code (CISC / RISC) : critère majeur dans l’industrie de l’embarqué ! manipulations de bits (BTST, BCLR, BSET) gestion des alignements (vidéo, réseaux) fenêtres de registres (SPARC) prédiction des branchements cache présence ou non possibilité de le désactiver write-back / write-through ? (périphériques mappés en mémoire) prédictibilité / déterminisme des performances du comportement CPU pour systèmes embarqués (13) Comment choisir un CPU ? (suite) il est donc capital d’avoir une idée de l’application à exécuter en termes de puissance de calcul requise débit de données matériel nécessaire contraintes de sécurité Le dialogue hard – soft n’est pas juste une question de politesse, il est capital ! A.M. des SE : circuits spécifiques Circuits périphériques, utilisés quand la quantité d’informations à traiter est trop grande pour le processeur central coprocesseurs génération de signaux ASIC dédiés FPGA souplesse nécessite aussi une mémoire de configuration coût élevé A.M. des SE : communications Interface de communication RS232 RS422 Ethernet, Arcnet (temps de transmission garanti) I2C CAN (automobiles) USB, PCMCIA, IrDA wireless (802.11, Bluetooth) fibre optique (SPDIF) A.M. des SE : ports de diagnostic Ports de diagnostics / debug Importants, les SE ne disposant souvent pas d’entrées sorties standards (écran, clavier) basiques afficheurs, LED points de test (pour analyseur logique) évolués, nécessitent une couche logicielle spéciale (moniteur / stubs) RS 232 Ethernet USB dédiés JTAG BDM, AMDebug, On-Chip-Debug-Infineon ICE (In Circuit Emulator) A.M. des SE : alimentations Alimentation souvent le point le plus critique des systèmes embarqués facteurs décisifs stabilité précision (10ppm) autonomie taille (poids) sécurité sources externe (secteur) autonome (batterie) dépendantes de l’environnement (panneaux solaires, générateurs magnétiques, …) types linéaires à découpage module A.M. des SE : conclusion On a vu : CPU mémoires NVM (Flash) RAM Les prochains cours sur le matériel : alimentations capteurs / effecteurs IHM PCB Intégrité du signal