La struttura dei sistemi embedded: unità di calcolo ...
Transcript of La struttura dei sistemi embedded: unità di calcolo ...
Lastrutturadeisistemiembedded:unitàdicalcolo,
memorie,busBraione Pietro,revisioneDomenicoG.Sorrenti
SistemiEmbedded
Annoaccademico2019/20
LivellidiscalaIntegrated Circuit(IC)
Printed circuit board(PCB)
SystemInPackage(SIP)
SystemOnChip(SOC)
LivellidiscalaIntegrated Circuit(IC)
Network(tightly – loosely coupled)
Printed circuit board(PCB)
SystemInPackage(SIP)
SystemOnChip(SOC)
Microcontrollori
• Microcontrollore=microprocessore+memoria+periferichesuunchipsingolo
• Diversitipidimemoria(SRAM,EEPROM,FLASH)didimensionilimitate(pochikB – pochiMB)
• Diversitipidiperifericheon-chip(I/O,timer,convertitoriA/DeD/A,PWM,controllermemoriaesterna,interfaccedirete,etc.)
• Relativamentebassavelocitàdicalcolo(KHz– MHz,oggimenovero)
• Bassiconsumiecosti(0,25– O(10US$)/unità)
• Possonoesserea4,8,16,32bit
Microcontrollori:esempi(1)
• EPSONS1C60N16• 4-bitMCUperapplicazioniabassissimiconsumi(interruttori,orologi…)• CPU:32kHz– 1MHz• ROM:4kWords(12bit),RAM:256Words(4bit)• Periferiche:timer,driverperLCD,comunicazioneseriale,I/Odigitale8bit
• ATMega 328P• 8-bitMCUusatosullaschedaArduinoUNO• Core:AVR,16MHz• SRAM:2kB,EEPROM:1kB,FLASH:32kB• Periferiche:I/Odigitale,PWM,ADC,SPI,I2C,timer
Microcontrollori:esempi(2)
• Silicon Labs C8051F020• IlMCUusatonellaboratoriodiquestoinsegnamentonegliscorsianni• Core:8051(8bit),25MHz• SRAM:4kB,FLASH:64kB• Periferiche:timer,digital I/O(8+4bit),I2C,SPI,UART,DAC,ADC,memoriaesterna,sensoretemperatura
Microcontrollori:esempi(3)• ST33
• FamigliaMCUpersmartcards• Core:32-bitARMSC300(derivatodalCortex M3),22.5MHz• RAM:fino30kB,FLASH:fino1.2MB• ComunicazioneISO7816,SPI;coprocessoriperCRC,RSA,ECC,DES…;randomnumber generator
• STM32F0:• Entry-level ARM32bit• Core:ARMCortex M0,max 48MHz• SRAM:max 32kB,FLASH:max 256kB• Diverseperiferiche(timer,I2C,SPI,CAN,USB,UART,USART…)
• STM32H7:• MassimapotenzateoricadelcoreM7a32bit• Core:ARMCortex M7,400MHz,conistruzioniDSPeFP• RAM:1MB,FLASH:2MB• Perifericheavanzate(timer,I2C,SPI,CAN,USB,UART,USART,LCDTFT,Ethernet,S/PDIF,HDMI,camera…
UnSoC avanzato:NVIDIATegra K1
• Quad-coreARMprocessor
• GPUcon192CUDAcores• Audio/videodecoder• Videoencoder• Displayinterface• Controllermemoriaconindirizzamentovirtuale
• Piùcontroller/interfacceperUSB,SATA,PCIe,I2C,SPI…
NoC:motivazioni• Oggièpossibilemetteresuunchipunnumeromoltoelevatodiunità(multi-cores)
• Inoltreesisteunmercatoapertopertaliunità(IPcores)
• Interconnettereleunitàconbus,crossbar oconnessionipunto-puntooaltrodiventasempremenofacile:• Bassascalabilità• Comunicazioneinaffidabile• Standardizzazione
• UnNoC èunsistemadiinterconnessionechesfruttaicriteridellacomunicazionedirete:• Separazionestratodatalink/rete/trasporto• Usodirouters• Controllodierrore/ritrasmissione
• Vantaggi:• Comunicazioneapacchetti• Scalabilità• Parallelismo
• Vendors:Sonics (https://sonicsinc.com/network-on-chip-noc/),Arteris (http://www.arteris.com/technology),NetSpeed systems (http://netspeedsystems.com/)
Unitàdielaborazione
• General-purpose• Microprocessori(MPU)emicrocontrollori(MCU)• Logicheprogrammabili(FPGA,…)
• Special-purpose• DigitalSignalProcessors(DSP)• GraphicProcessingUnits(GPU)• Application-specificintegratedcircuits(ASIC)
Microprocessore
• ADDR:lineeindirizzo,indicanochedativuoleleggere/scrivere
• DATA:lineedati,servonopercomunicareidati
• R/W:indicanosel’MPUvuoleleggere,scrivereonessunodeidue
• CLK:segnalediclock,persincronizzazione
MPU
ADDR
DATA
R/W
CLK
2
CISCvsRISC
• ISA(Instruction SetArchitecture)=l’insiemediistruzionidiunprocessore• DuefamigliediISA:CISCeRISC• CISC=Complex Instruction SetComputer:
• Istruzionicheeseguonooperazionicomplesse,anchecontrasferimentimultiplida/amemoria(es.OTIRdiZ80)
• Lunghezzaistruzionepuòvariare(istruzionipiùcomunipiùcorte)• Pochiregistri
• RISC=Reduced Instruction SetComputer:• Distingueistruzioniload/store (trasferimentoda/amemoria)daistruzionidimanipolazionecheoperanosolosuiregistri
• Lunghezzaistruzionefissa• Moltiregistri
PerchéCISC?
• L’architettura CISC è motivata dalla situazione fino alla fine degli annisettanta:• Programmazione in assembly, quindi necessità di istruzioni complesse perfacilitare il compito• Memorie costose, quindi istruzioni a lunghezza variabile per ridurrel’occupazione del codice in memoria• Velocità processore e memoria paragonabile, quindi accessi multipli inmemoria non problematici
• Ma verso la fine degli anni settanta la situazione cambia
LafilosofiaRISC• Nuovetendenzeapartiredallafinedegliannisettanta:
• Diffusionecompilatorielinguaggiadaltolivello:menonecessitàdiistruzioniassembly complesse
• Aumentalavelocitàdelprocessorerispettoaquelladellamemoria:necessitàdiridurreitrasferimentida/amemoria
• Minorecostodellamemoria:minorenecessitàdirisparmiarespazioconistruzionialunghezzavariabile
• LafilosofiaRISCquindi:• Usaunalunghezzadiistruzioneomogenea(persemplificarelastrutturaedaumentareilclockdelprocessore)
• Limitaimodidiindirizzamento(architetturaload/store)• Aumentailnumerodiregistriperridurrelanecessitàdiusarelamemoria
• Semplificazionedell’architetturasignificaanche:• Piùspazioperregistriecachesulchip• Piùspaziosulchip,anchepercontrollodeldatapath inpipelining
EsempidiprocessoriCISCeRISC
• CISC• x86ex86-64(nellamaggiorpartediPCeserver,maoggi“dentro”sonoRISC)• 8051(nelleschedeusateinlaboratorionegliannipassati)
• RISC• AVR(nelleschedeArduino)• ARM(maleistruzioniThumb fannoinparteeccezione)• MIPS• POWER
Memorie
• RWM (Read-Write Memory): il contenuto della memoria èmodificabile ed è mantenuto finché questa è alimentata (sono volatili)
• NVRWM (Non-Volatile RWM): il contenuto della memoria èmodificabile ed è mantenuto anche quando questa non è alimentata
• ROM (Read-Only Memory): il contenuto della memoria è cablato enon modificabile e si mantiene anche quando questa non èalimentata
Caratteristichememorievolatili
• SRAM(Static RAM):utilizzacircuitibistabili(flip-flop)• Elevatissimavelocità• Bassoconsumoenergetico• Bassadensità• Costielevati
• DRAM(Dynamic RAM):utilizzacaricaincondensatore(necessitarefresh)• Elevatavelocità• Elevatoconsumoenergetico• Altadensità• Costibassi
Caratteristichememorienonvolatili
• ROM(Read-Only Memory):mascherateoprogrammabili(PROM)• Altadensità• Bassocosto• Affidabile
• EPROM(Electrically Programmable ROM):ilcontenutodellamemoriaèprogrammabileelettricamenteecancellabileconraggiUV
• EEPROM(Electrically Erasable Programmable ROM):ilcontenutopuòesserecancellatoelettricamentealivellodibyte• Bassadensità• Altocosto• Mediamenteaffidabile
• FLASH:EEPROMcancellabileablocchi,tempidicancellazionelunghi• Altedensità• Bassocosto• Mediamenteaffidabile
ArchitetturediVonNeumann eHarvard
• Nell’architettura di Von Neumann il programma e i dati sonocontenuti nella stessa memoria (c’è un unico spazio di indirizzamento)
• Nell’architettura Harvard vengono usate memorie distinte perprogrammi e dati e bus distinti per accedervi (spazi di indirizzamentodistinti)
• L’architettura Harvard:• consente un maggior parallelismo con pipelining• consente una larghezze di bus diverse per dati e istruzioni• fornisce una maggior sicurezza (i dati non possono essere eseguiti)
Gerarchiedimemoria
• Le memorie più veloci sono più costose e a minore densità
• Risulta pertanto utile organizzare le memorie in maniera gerarchica:• Più “vicina” al processore la memoria più veloce e più piccola• Se non trovo un dato in un livello gerarchico di memoria, accedo al livellogerarchico successivo
• Sfrutta le proprietà di località del software• Svantaggi: il tempo di accesso diviene variabile (in situazioni non real-time questo non sarebbe un problema)
Gerarchiedimemoria
MPU
registri
L1CACHE
L2CACHE
L3CACHEMEMORIACENTRALE
FLASH
SRAM DRAM
PERIFERICHEMAPPATEINMEMORIA
Mappememoria
• Definisce la relazione tra indirizzie memoria fisica / periferichemappate in memoria
• Esempio: mappa memoria ARMCortex M3
• Notare che la mappa dellamemoria non definisce quantamemoria fisica esiste!
Configurazioniprocessore-memoria
MPU
ADDR
DATACLK MEM
OEWE
OE=OutputEnableWE=WriteEnable
Configurazionecon1chipdimemoria
RW
Configurazioniprocessore-memoria
MPU
ADDR
DATA
R
CLK
W
ROM
OE
OE=OutputEnableWE=WriteEnableCE=ChipEnable
Configurazioneconpiùchipdimemoria
RAM
OEWE
CE
CE
PAL
ConfigurazioneMCU8051
8051
ADDR
ADDR/DATASRAM
OEWE
RW
A[16:8] A[16:8]
AD[7:0]
ALE LE
D Q A[7:0]
D[7:0]
Special-purpose processors
• I processori special-purpose contengono istruzioni progettate perspecifiche categorie di applicazioni
• Esempi:• Digital Signal Processors (DSP) = generica elaborazione di segnali digitali (es.,filtraggio audio, immagini, video => MAC - Multiply And Cumulate)• Graphics Processing Units (GPU) = rendering grafico 3D• Cryptoprocessors = operazioni crittografiche
• Tipicamente CISC e Harvard architecture
Esempio:DSP(1)
• IDSPcontengonoistruzionipereffettuareelaborazionidisegnalidigitali
• Importantecategoria:filtriFIR(FiniteImpulse Response)
• Ottenuticomesommapesatadell’inputritardatoneltempo(MAC)
! " =$%& ' ([" − +]-
&./
Esempio:DSP(2)
• PerfacilitareladefinizionedifiltriFIRilDSPdellafamigliaTMS320c54x(TexasInstruments)haleistruzioni:• rpt:ripetel’instruzione successivauncertonumerodivolte(zero-overhead loop)• mac:multiply-and-cumulate;hatreargomentiespecifical’operazionea:=a+x*y(moltiplicaxey,accumulailrisultatoina)
• ÈcosìpossibilerealizzareunfiltroFIRinesattamenteN cicliclock:
rpt N-1 ;ripete N volte l'istruzione successivamac *ar2+, *ar3+, a ;moltiplica i valori puntati da ar2/3, accumula in a,
; incrementa ar2/3;se ar2/3 puntano ad una regione speciale di memoria on-chip, i due accessi; in memoria vengono effettuati contemporaneamente
Logicheprogrammabili
• Sonocircuitiprogrammabiliinhardware
• Compostidacellecherealizzanovariefunzioni
• Programmazione=stabilireinterconnessionitracelleetracelleepindiingresso/uscita
Esempio:FPGA(1)
• FieldProgrammable Logic Arrays(FPGA)=logicheprogrammabili“sulcampo”,ossiadopocheilchipèstatomontatonelsistema
• Sonomatricidicellelogiche(finoadiversimilioni)collegatedainterconnessioniprogrammabili
• LaprogrammazionedicelleeinterconnessioniavvienecaricandolaconfigurazioneinunaRAM
SviluppareperFPGA
• Linguaggi:Verilog,VHDL(maanchelinguaggidiprogrammazionecomeilC)
• CompilazioneperprodurreRTLnetlists
• Sintesipermapparelanetlist sulleunitàdellaFPGA
• Placing androuting perstabilirequaliunitànellamatricebidimensionaleutilizzareedinterconnettere
• Output:bitfile chevienecaricatonellamemoriadellaFPGA
Sistemidicomunicazione
• Permettonodifardialogarelapartedielaborazionediunsistemaembedded conaltrisottosistemidigitalioconilmondoesterno• Diversetipologiecondiversecaratteristiche:
• Digitalevsanalogico• Wiredvswireless• Serialevsparallelo• Sincronovsasincrono• Point-to-point vsbusvsstellavs…• Campionatootriggerato daeventi• Bitrate• Requisitielettrici(voltaggio,corrente)• Controlloaccesso,sicurezza,autenticazione• Connettorifisici(pin,porte…)
Segnaledigitalevsanalogico
• Digitale=livellifissidicorrente/tensione• Esempio:bit0→0V,bit1→5V• Utilizzatiperinput/outputditiponumerico,soprattuttodacomputeracomputer• setensionidi0/1sonopiùgrandi,avròpiùresistenzaalrumore,mamenovelocitàditrasmissione(bandapassanteanalogicainferiore)
• Analogico=corrente/tensionevariabileinundeterminatorange• Esempio:tutteletensionicompresetra0Ve5V• Utilizzatiperinterfacciamentoconpartefisicadelsistema• NecessitàdiconversioneA/D(input)oD/A(output)
General-Purpose I/O(GPIO)
• Pinusatiperinpute/ooutputdigitale• Generano/leggonolivellidivoltaggiobinari,ingenere0Ve5V• Inactive highlogic (logicadiretta)0V→bit0e5V→bit1• Inactive low logic (logicanegataoinversa)0V→bit1e5V→bit0
• Usatoperinterfacciamentocondispositiviesternifisici
InterfacciamentoconGPIO(1)
• Attenzione alla compatibilità elettrica!• Se un pin GPIO impone 5 V di tensione, la corrente nel dispositivo esterno è 5/R,dove R è la resistenza del dispositivo
• La corrente potrebbe superare la tolleranza del dispositivo (o del microcontrollore)!
• Se un pin GPIO è disconnesso (“flottante”) non è ben chiaro qual è l’input• Se un pin GPIO è collegato ad un dispositivo esterno, questo potrebbeavere caratteristiche elettriche tali da introdurre rumore nelmicrocontrollore• Infine, potrebbe essere necessario collegare più GPIO output allo stessodispositivo (es., controllo con ridondanza)• Open collector / drain• Tri-state
InterfacciamentoconGPIO(2)
MCU
GND
Resistenzaperlimitazionecorrentesupindioutput
MCU
VDD
GND
Resistenzapull-downperdigital inputadaltaimpedenza
MCU
VDD
GND
Resistenzapull-upperdigital inputadaltaimpedenza
InterfacciamentoconGPIO(4)
MCU1
VDD
GND
MCU2
GND
MCU3
GND
Circuitiopendrain inconfigurazionewired NOR
Pulse Width Modulation (1)
• La pulse width modulation (PWM) è un modo per fornire un segnale“pseudo-analogico” con dinamica lenta utilizzando esclusivamentecircuiti digitali con commutazioni molto più frequenti
• Idea: commutare rapidamente il voltaggio su un pin di output digitale:0 V → 5 V → 0 V → 5 V → 0 V… se la velocità di questa commutazioneè molto maggiore delle ostanti di tempo del circuito che riceve il“segnale”, allora quel circuito non percepisce le commutazioni, masolo il valore efficace (RMS)
Pulse Width Modulation (1b)
• Utile per comandare unità la cui risposta a cambiamenti ditensione/corrente è lenta rispetto alla frequenza a cui il sistemadigitale può lavorare• Luci LED e ad incandescenza• Motori elettrici• Elementi termici (riscaldamento a resistenza)
• Ottimo metodo per controllare la potenza trasmessa ad un caricosenza dissipare potenza aggiuntiva
Pulse Width Modulation (2)
• Principaliparametri:• Frequenza=numerodicommutazionialsecondo
• Dutycycle=%tempoincuiilvoltaggioèalto
• Ildutycycle determinalatensionemedia(pseudo-analog voltage):• LuceLED:impostandoildutycycle possocomandareil“dimming”dellaluce
• Motoreelettricoacorrentecontinua:impostandoildutycycle possocomandarelavelocitàdirotazionedelmotore
• Elementotermico:impostandoildutycycle controllolatemperaturadell’elementotermico
Pulse Width Modulation (2)
Si ipotizzi di fornire una tensione inuscita lavorando con PWM allafrequenza di 100KHz e di voler essere ingrado di parzializzare la tensione RMSsu 256 livelli. A quale frequenza minimadovrà lavorare la periferica che accendee spegne l’uscita?Si ipotizzi che il microcontrollore usatonon abbia altro modo che gestire acontrollo di programma questaperiferica. Si facciano delle ipotesi suicicli / istruzione e si determini qualefrequenza minima deve avere il clockdel processore.
Pulse Width Modulation (3)
MCU
M
GND
POWER
MCU
GND
Collegamentoacaricoridotto(LED)conresistenzaperlimitarelacorrente
Collegamentoacaricoelevato(motore)inconfigurazioneopendrain condiodoflyback
Connessionidigitaliwired
• Parallelo=1lineaperognibit,perunacertaampiezzadiparola• (parallel)ATA,PCI,IEEE1284
• Seriale=1lineaperdirezionediflusso,singolibitinviatiinsequenza• RS232,USB,SATA,SPI,I2C
• Mixed=unaopiù“lanes”seriali• PCIexpress
Serialevsparallelo
• Un’interfacciaparallelarichiedeunelevatonumerodipin• Pocoadattoperunsistemaembedded• Disolitoun’interfacciaparallelaèhalf duplexperdimezzareilnumerodilinee
• Inoltrelelineedeidiversibit:• Devonoesseresincronizzatetradiloro(problematicoall’aumentaredelladistanzapercorsa)
• Fannointerferenzareciproca(inter-symbol interference)esonopiùsensibilialrumore
• Devonoessere“pilotate”piùlentamenteacausadellamutuainduttanza/capacità
• Oggitutteleinterfaccepiùrecenti(eveloci)sonoseriali• Leinterfacceparallelesonospessoemulateperretrocompatibilità usandoipinGPIO
RS-232(1)
• Un“antico”protocolloancorainuso(lavecchia“portaseriale”deiPC)
• Progettatopercomunicazioneterminale-modem
• Protocollopoint-to-pointasincrono(quelloa9pin)
• Velocitànonmaggioredi20Kbit/secamax 300mdidistanza
RS-232(2)
• Sincronizzazioneconbitdistart(1)edistop(1o2)
• Trasmissionedeibitconlivelliditensionetra-15Ve-3V(bit1)etra3Ve15V(bit0)
• Duratabitasecondadellavelocitàditrasmissionenegoziata
UARTeUSART
• UART=UniversalAsynchronous Receiver/Transmitter
• USART=UniversalSynchronous/Asynchronous Receiver/Transmitter
• Sonocomponentidiuncomputerembedded (ediunPC)chetrasformanounaopiùparoledimemoriainunasequenzaditrasmissionesuunlinkseriale,eviceversa
• Usatiperdiversitipidiprotocolliseriali(RS-232,RS-422,RS-485)
UniversalSerialBus(USB)
• Protocolloseriale,topologiaadalberoconuncontrollore(master),glialtridispositivisonocontrollati(slave),ma”appare”comeunbus• Max25mdistanza,max 10Gbit/sec• ElettricamentepiùsempliceerobustodiRS-232,richiedeunalogicadicontrollosofisticata• Consentedicollegareunagrandissimavarietàdidispositivi
Inter-Integrated Circuits (I2C)eSystemManagementBus(SMBus)• Busdicomunicazioneserialetracircuitiintegrati,conmulti-masterearbitrazione• Max3.4Mbit/sec,cortadistanza• Solo2fili!• Interfacciamentoopendrain(richiederesistenzedipull-up)• Principalmentepercomunicazionetracomponentiabassavelocitàsustessascheda,oanchesuschedediverse• LedifferenzetraI2CeSMBussonominime(compatibilità!)
SerialPeripheral Interface(SPI)
• Unaltrotipodibusseriale• DifferenzeconI2C:• Nonrichiederesistenzedipull-up(minoriconsumi)• Ilnumerodilineeèpiùelevato• Ilthroughput èmoltopiùalto• Supportaunsingolomaster
• SPIèpiùadattopertrasferiredatastreams,I2Cèpiùadattopertrasferireparolesingole
ControllerAreaNetwork(CAN)bus
• BusserialesviluppatodaBoschperconnessionedispositiviinambitoindustriale(elevatorumoreelettromagnetico)
• Fino1Mbit/s sottoi40m,max500ma125Kbit/s
• Asincrono,multi-masterbasatosupriorità