1-Architecture.pptx

Embed Size (px)

Citation preview

Chapitre 1

Chapitre 1Architecture des systmes embarqusIntroductionUn systme embarqu dispose dune architecture semblable celle des ordinateurs standardsOn y retrouve les mmes composants :Un processeurDe la mmoireDes dispositifs dentre/sortieCes lments sont interconnects entre eux travers des busProcesseurMmoireE/SE/SBusVue simplifieLes mmoiresDans un systme embarqu on y retrouve plusieurs types de mmoires quon peut classer selon diffrents critres Les mmoires non volatilesROMPROMEPROMEEPROMFLASHLes mmoires volatilesSRAMDRAMSDRAMToutes ces mmoires sont accs alatoire. DDR-SDRAMLes mmoires non volatilesROM (Read Only Memory)Elle existe en gnral sous une petite taille dans un systme embarqu.Elle contient le programme de dmarrage du systme (bootstrap) et ventuellement quelques donnes initialesLe rle principal de ce programme est de charger lapplication (ou un autre programme de dmarrage plus sophistiqu) depuis une source bien dtermine. (en gnral depuis la mmoire flash dans un systme embarqu)La ROM nest accessible quen lecture seule et son temps daccs est plus lent que les RAMCest des ROM vierges quon peut programmer une seule foisPROM (Programmable Read Only Memory)Une fois programmes, il nest plus possible de les reprogrammerEPROM (Erasable Programmable Read Only Memory)Utilises souvent durant les phases de dveloppement des bootstrapCes mmoires peuvent tre effaces et rcrites en utilisant des dispositifs spcifiquesLeffacement rpt finit par endommager la mmoire. Elle nest pas donc conseille dans les systmes finaux.Lecriture peut se faire sur une ligne spcifique de lEPROM (en appliquand une tension spcifique (+12 V). Leffacement se fait sur toute la mmoire (en lexposant aux rayons ultraviolets) Les mmoires non volatilesEEPROM (Electrically Erasable Programmable Read-Only Memory)Ce sont des mmoires non volatiles quon peut crire et effacer en appliquant des tensions lectriques Elles existent sur les systmes embarqus en de trs petites tailles (plus petite que la ROM)Elles contiennent en gnral des donnes qui peuvent changer au fil du temps mais qui doivent rester aprs extinction du systmeAdresse de la carte rseauParamtres de configurationNumro de srie, Lcriture et leffacement ne ncessite pas de dispositif spcifique comme ce qui est de lEPROM et peut se faire sur une ligne spcifique Leffacement rpt nendommage pas lEEPROMLes mmoires non volatilesLes mmoires FlashLes mmoires Flash fournissent une grande densit de sauvegarde compares aux EEPROM avec un temps daccs quivalent aux RAMs lentes (DRAM par exemple)Elles sont utilises pour sauvegarder le logiciel (le Firmware) du systme embarquLcriture et leffacement ne ncessite pas de dispositifs supplmentaire Leffacement se fait par secteur et pas par ligne (la taille dun secteur varie entre 16ko et 64ko)Il existe deux types de mmoires FlashLa NAND-FLASH : grande densit de sauvegarde mais lenteLa NOR-FLASH : petite densit de sauvegarde mais rapideLcriture rpte altre la mmoire Flash mais des mcanismes appropris permettent disoler les secteurs dfectueuxEn pratique, ce logiciel est charg de la mmoire Flash vers la RAM pour lexcuter (par le bootstrap se trouvant fig dans la ROM)LES RAMsLes RAMs sont des mmoires volatiles accs alatoire en lecture et en critureIl existe deux types de RAMs:Les SRAM (Static RAM)Trs rapidesPetite densit de sauvegarde et coute cher (6 transistors par bit mmoire)Utilises surtout dans les mmoires cache et Scratchpad pour excuter des portions de code les plus frquentes ou les plus critiques (vecteurs dinterruption, piles et Heap, etc)Les DRAM (Dynamic RAM)Trs grande densit de sauvegarde ( 1 transistor par bit mmoire)Moins rapideNcessite des dispositifs supplmentaires (pour le rafraichissent entre autres)Contient le programme en excution et ses donnes de travailLa mmoire SRAMSlection du motBitBitStructure dun bit mmoireLa mmoire est adressable par mot (en lecture et en criture)Elle peut donc tre facilement connecte au bus du processeur10LectureMettre la ligne de slection du mot 1Lire les niveaux des lignes Bit et BitEcriture Mettre les lignes Bit et Bit aux niveaux appropris (ex: pour un 1, Bit = 1, Bit =0) Mettre la ligne de slection 1La mmoire DRAMLa DRAM est organise sous une forme matricielleChaque cellule mmoire est compose dun transistor et dune capacitligneColonnebitLinformation est sauvegarde dans la capacit 0 capacit dcharge1 capacit chargeLes capacits se dchargent rapidement (au bout de quelques millisecondes). Un dispositif de rafraichissement est ncessaireSDRAM et DDR-SDRAM sont des amliorations des DRAMLes DRAMs ne sont pas interfaables directement avec le bus du processeur. Un contrleur mmoire est ncessaireLes priphriques dentres/sortiesTout comme les ordinateurs conventionnels, les systmes embarqus disposent dun ensemble de priphriques dentres/sorties permettant au processeur de dialoguer avec lenvironnement extrieurLes priphriques des systmes embarqus sont plus nombreux et plus varis que les ordinateurs classiquesOn y retrouve gnralement comme interface Des ports dentres sortie usage gnral pour interfacer des dispositifs externesDes contrleurs audio, vido, rseau, etcDes ports srie pour interfacer les quipements en mode srie, UART, USB, SSP, I2C, etc Des convertisseurs analogiques/ numriques (CANs) intrfaant des capteursLes priphriques dialoguent avec le processeur laide dintrfaces dentres/sortieDes Timers/compteurs pour des applications temps relDispositifs dentres/sortiesLes priphriques dentres/sorties sont trs varis et fonctionnent de manire diffrentesLes processeurs, par contre, peuvent uniquement crire sur le bus ou lire du busPour rduire cet cart, on utilise des dispositifs dentres/sorties pour relier le priphrique au processeurLe dispositif dentres/sortie est une interface entre le priphrique et le processeurIl interprte les commandes du processeur et les transforme en commandes spcifiques du priphriqueChaque priphrique ncessite en gnral un dispositif particulier dentres/sortiesUn dispositif dentres/sorties peut sadapter plusieurs priphriques diffrentsUn mme dispositif dentres/sorties peut connecter la fois plusieurs priphriques diffrents

Structure gnrale dun dispositif dentres/sortiesLes dispositifs dentres sorties se ressemblent.Il sont connects au bus du processeur dun cot, et au priphrique interfac de lautreLe registre de donnesA laide de ce registre, le processeur fournit une donne au priphrique ou rcupre une valeur de ce dernier (le car crire pour un cran par exemple)Les registre de commande et dtatFournissent la commande excuter sur le dispositif et rcuprent ltat dexcution de cette commande (effectue, erreur, attente, etc) La logique de contrlePeut tre un autre processeur spcifique. Il lit la donne et la commande, il excute la commande puis renvoie ltat dexcution de la commandeLa logique de dinterfaageSe charge de gnrer les signaux adapts aux priphriques interfacsLes busTous les lments dun systme embarqu sont interconnects travers des busUn bus est une collection de fils vhiculant des informations entre le processeur, la mmoire et les priphriquesOn distingue en gnral trois bus:Le bus de donnes Vhiculant les donnesbidirectionnelLe bus dadressesVhiculant ladresse de la location mmoire ou du priphriqueUnidirectionnelLe bus de commandeVhiculant la commande effectuer (lecture, ecriture)Fournit dautres informations de contrleHorlogeTaille de linformation (octet, demi-mot, mot).Interconnexion processeur-mmoireEn prsence de multiples banc mmoire (ROM, SRAM, DRAM, etc), une logique de rpartition de lespace dadressage est ncessaireCette rpartition (dite aussi mappage) est ralise en utilisant des lignes du bus dadresses et ventuellement un dcodeur Le bus de donnes, quand lui est reli aux bus de donnes de tous les bancsExempleSoit un microcontrleur avec un bus de donnes de 8 bits et un bus dadresse de 16 bits. On souhaite lui connecter un module ROM de 2 KO et 2 modules RAM de 4 KO chacun. la taille du bus de donnes des RAM est 8 bitsProposez un mappage adquat en mettant la ROM dans lespace des adresses bassesTaille du bus dadresse de la ROM = 11 bits car 211 = 2KTaille du bus dadresse de chaque RAM = 12 bits car 212 = 4KTaille du bus de donnes des mmoire = 8 bitsInterconnexion processeur-mmoireModuleBus dadresseTailleA15 A14A13 A12A11A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0ROM 0 0

0 0 0 0

0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 10x0000 (2K)0x07FFRserv 0 0

0 0 0 0

0 0 1

1 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 10x0800 2K0x0FFFRAM1 0 0

0 0 0 1

0 1 0

1 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 4KRAM2 0 0

0 0 1 0

1 0 0

1 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 1 4KRserv 0 0

1 1 1 1

1 1 0

1 0 0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 152KExempleInterconnexion processeur-mmoireExempleOn utilisera les bits dadresses de poids forts pour crer des lignes de slectionRserv, 2KROM, 2KRAM1, 4KRAM2, 4KRserv, 52KCSROMA15 A14 A13 A12 A11CSRAM1CSRAM2CSCSCS0x00000x07FF0x08000x0FFF0x10000x1FFF0x20000x2FFF0x30000xFFFFDes espaces non mapps peuvent rsulter dun mappage particulier. Ces espaces peuvent tre utilises pour des extensions mmoires ou des mappages dentres/sortiesInterconnexion processeur-Entres/SortiesIl existe deux technologies dinterfaage des entres/sorties Les entres/sorties isolesLe processeur dispose de deux bus-- Un bus pour la mmoire-- Un autre bus pour les entres/sortiesProcesseurBus mmoireRAMROMBus E/SE/SE/SE/SLe processeur dispose dinstructions spcifiques pour chaque accs-- Load et Store pour laccs la mmoire-- IN et OUT pour laccs aux entres/sorties Les entres/sorties mappes en mmoireProcesseurBus mmoireRAMROMUn seul bus partag par la mmoire et les entres/sortiesE/SE/SLes mmes instruction (Load et Store) sont utilises pour laccs aux E/SMappage des entres/sorties en mmoireDans les systmes embarqus, on prfre utiliser les entres/sorties mappes pour plusieurs avantagesGain en espace et en nergie car on nutilise quun seul busSimplicit dutilisation car on accde aux entres/sorties comme on accde la mmoireExemple de mappageSoit un contrleur daffichage pouvant interfacer un cran pour afficher du texte. Ce contrleur dispose dun ensemble de registresUn registre DATA pour fournir le caractre afficherUn registre POS pour fournir la position de lcran o afficher le caractreUn registre de commande (Ecriture ou effacement)Un registre dtat Contrleur daffichageBus de donnesInterface cranA0A1CSAdresseA1 A0Registre0 0DATA0 1POS 0Commande1 1EtatDonner un schma de mappage du contrleur vers les adresses les plus hautesDonnez les adresse des 4 registres en fonction de ce mappageEcrire un programme ARM permettant dafficher le caractre A la position 0Mappage des entres/sorties en mmoireExemple de mappageA2A3A4A14A15Contrleur daffichageCSA0A1A0A1Zone mmoire du contrleurAutre espace mmoire0x00000xFFFC0xFFFFRDATA equ 0xFFFC ; adresse du registre DATARPOSequ 0xFFFD ; adresse du registre POSRCOMequ 0xFFFE ; adresse du registre commandeRETATequ 0xFFFF ; adresse du registre tat; afficher un A la position 0 ; crire le code du car dans le registre DATAldr R0, =RDATAmov R1, code_ascii_Astr R1, [R0]

; donner la position du car dans le registre POSldr R0, =POSmov R1, #0str R1, [R0]ldr R0, =RCOM

; commande dcrituremov R1, #Code_de_la_commande_daffichagestr R1, [R0]Environnements multi-busLes priphriques dentres/sorties sont gnralement plus lents que le processeur et la mmoireLes interfacer directement au bus processeur-mmoire rduit les performances du systmePour maintenir les performances du processeur tout en interfaant des priphriques lents, on peut utiliser plusieurs bus.Un bus systme pour le processeur et la mmoireUn bus externe pour les priphriquesPour relier les deux bus, on utilise un circuit spcial dit Bridge qui adapte les signaux des deux busProcesseurBus systmeMmoireBridgeBus priphriquesE/SE/SLe processeur accde aux priphriques de la mme faon quavant. Le Bridge lui adapte les signaux, mmorise les info et insre des cycles dattenteOn peut retrouver des configurations plus sophistiques o le processeur dispose dun bus pour la mmoire cache, un bus pour la mmoire et un ou plusieurs bus pour priphriques Accs direct la mmoire(DMA)Certains priphriques manipulent de grands volumes dinformation (comme les priphriques, vidos, audio, rseau, disques durs, etc)Si le processeur doit grer lui-mme ces transferts, il passera beaucoup de temps effectuer des lectures/critures entre la mmoire et les priphriquesLe transfert dun bloc de 100 KO ncessite 25600 instructions de lecture et 25600 instructions dcriturePour palier cela, la technique daccs direct la mmoire est utiliseUn circuit spcifique dit DMAC (DMA Contrller) est ajout au systmeCe circuit remplace le processeur dans les oprations transfert de donnes dune source la destinationLes oprations quun contrleur DMA peut effectuer sont :Transfert dune zone mmoire vers un priphriqueTransfert dun priphrique vers une zone mmoireTransfert dune zone mmoire vers une autre Transfert dun priphrique vers un autrePendant que le DMAC effectue le transfert, il doit prendre le contrle du bus. Le processeur doit donc librer le bus en le mettant en haute impdancePendant le transfert DMA, le processeur na pas accs la mmoire. Ceci ne pose pas de grands problmes dans la mesure ou la plupart du temps il en a pas besoin (les instructions sont dans le cache et les donnes dans les registres)Accs direct la mmoire(DMA)Fonctionnement du contrleur DMALe processeur prpare le circuit DMA en spcifiant: Le type de transfertLadresse dbut des donnesLa quantit de donne transfrerLe priphrique demande un transfert DMA laide de DREQLe DMAC demande au processeur de librer le bus avec un signal HOLDLe processeur libre le bus et informe le DMAC avec le signal HDLALe DMAC effectue le transfert et signale la fin du transfert au processeur laide de INT et au priphrique laide de DACKProcesseurBusDMACE/SMmoireHOLDHLDAINTDREQDACKEnvironnement multi-masters En prsence dun circuit DMAC, le processeur nest plus le seul lment qui contrle le bus un moment donn. Certains contrleurs (vido, ethernet, etc) disposent de leur propre circuit DMA intgr qui peuvent chacun prendre le contrle du busOn peut distinguer dans ce cas deux entitsLe maitre (Master)Cest lquipement qui prends le contrle du bus et qui initie une transaction(mettre la donne et ladresse dans le bus, fournir la commande de lecture/ecriture)Processeur, DMA, Contrleur vido, etc Lesclave (Slave)La mmoire ou le priphrique sur lequel la transaction est lanceAvant de prendre le contrle du bus, un master doit donc sassurer quaucun autre master na pris le contrle de ce dernier. Une logique darbitrage est donc necessaireUn nouvel lment rentre en jeu. Cet lment est dit arbitre du bus Larbitre du bus reoit toutes les demandes HOLD des master (mme celle du processeur quand il veut accder la mmoire) et rserve le bus pour un dentre eux en fonction de la politique darbitrage utiliseUn master dans une transaction peut tre slave dans une autreLe processeur joue toujours le rle du masterNormes de busUn bus nest pas quune collection de fil mais il est dfinit par plusieurs caractristiquesLe nombre de bits du bus dadresseLe nombre de bits du bus de donnesLe nombre de bits du bus de commandeRgles dacomplissement des transactions, Rgles darbitrageSynchrone ou asynchroneDbit, Vitesse, etc.Plusieurs normes de bus existent ayant chacune leurs propres caractristiques ISAPCIAMBAetcTous les lments (dont le processeur) doivent tre compatibles avec la norme du busAMBA (Advanced Microcontroller Bus Architecture)AMBA est une norme de bus ouverte destines aux systmes embarqus bass sur les processeurs ARMGrce cette norme, les constructeurs peuvent raliser toutes sortes dquipement pouvant sinterfacer facilement avec les processeurs ARMLa norme AMBA repose sur une structure multi-bus et multi-mastersDans la norme AMBA on distingue trois busAHB (Advanced High Performance Bus)Relie le processeur la mmoire et ventuellement dautres mastersCest un bus multi-masterAPB (Advanced Peripheral Bus)Connecte les priphriques lents aux systmeConnect au bus systme via un bridgeCest le bus systmeFAB (Fast Access BUS)Un autre bus pour les priphriques plus rapidesConnect au bus systme via un bridgeAMBA (exemples)

System On ChipUn systme On Chip ou SoC est un circuit intgr contenant un ensemble dlements (processeurs, mmoires, entres/sorties) interconnects pour raliser une fonction (ou un type de fonctions) spcifique Cest un circuit plus spcialis quun microcontrleur classiquePuce tlphoniqueSystme dacquisition intgrSystme intgr pour ordinateur de bord,etc.Un Systme On Chip peut tre conu de faon personnalise en utilisant les technologies dintgration actuellesASICFPGAetcLes lments dun SoC peuvent galement tre conus et interfacs de faon personnaliss. Ils sont dits IP (Intellectual Property)Les exemples de la diapositive prcdente sont en ralit des SoC

LPC32x0Les SoCs de la famille LPC32x0 sont des SoCs de haute performance et consommation rduiteConus par la socit NXP pour embarquer des applications complexesIls sont bas sur le processeur ARM926EJ-S ayant les caractristiques suivantesArchitecture de type HarvardPipeline 5 tages32Ko de cache instruction32KO de cache de donnesVitesse de 266MHZSupport matriel pour le calcul flottant et lexcution java byte codeAdapts un systme dexploitation embarqu comme LinuxIls disposent de mmoire SRAM interne allant jusqu 256KO et dun contrleur mmoire externe pour une ventuelle extension mmoireIls disposent dun grand nombre de priphriques externes pour sadapter aux besoinsApplications :MdicalesIndustriellesRseauxspcifiquesComposants du LPC32x0ROM de 16kO contenant le bootstrapSRAM interne Contrleur mmoire externe pouvant interfacer des mmoire SRAM, SDRAM et DDR-SDRAMContrleur pour mmoire Flash (NAND Flash et NOR Flash)Contrleur DMA 8 canauxContrleur clavier 64 touchesContrleur etherne 10/1007 interfaces srie UART2 interfaces srie SSP2 interfaces srie I2C2 interfaces srie I2S2 interfaces srie SPI1 interface USBContrleur LCDContrleur pour carte SDGPIO (12 GPI, 24 GPO, 51 GPIO)1 convertisseur analogique/numrique qui peut oprer comme clavier tactile10 Timers. Structure du LPC32x0

System On Module (SoM)Un SoM est une association dun SoC et dun ensemble dlments supplmentaires comme une extension de mmoire, dautres priphriques, des connecteurs pour les priphriques internes du SoC, etcLe SoC et ses extensions ne sont pas implmets sur puce mais sont implments sur circuit imprim (PCB)On peut le considrer comme la carte mre dun systme embarquLe SoM est gnralement de taille rduite (10 cm x 10cm) et dispose de connecteurs facilitant son dploiementUn SoM est un systme autonome et ne ncessite quun minimum dajout pour fonctionner (Une alimentation et ventuellement des connexions au systme externe)PCM-040 (LPC3250 SoM)

Vue de dessusVue de dessousLe SoM LPC3250 est conu par la socit PyTec (filiale de Philips) et runis dans le mme PCB les lments suivants:Un SoC LPC3250Son dispositif dalimentation (dont support pour batterie)64MO de SDRAM externe64MO de mmoire Flash NAND2MO de mmoire Flash NOR32KO de mmoire EEPROM2 interfaces RS-232Un Interface USBUne interface Ethernet

Mappage mmoire du LPC3250 SOM