La struttura dei sistemi embedded: unità di calcolo ...

62
La struttura dei sistemi embedded: unità di calcolo, memorie, bus Braione Pietro, revisione Domenico G. Sorrenti Sistemi Embedded Anno accademico 2019/20

Transcript of La struttura dei sistemi embedded: unità di calcolo ...

Lastrutturadeisistemiembedded:unitàdicalcolo,

memorie,busBraione Pietro,revisioneDomenicoG.Sorrenti

SistemiEmbedded

Annoaccademico2019/20

Obiettivi

• Analizzarelacomposizionediunsistemaembedded

• Nellediversevariantitecnologiche

Livellidiscala

LivellidiscalaIntegrated Circuit(IC)

LivellidiscalaIntegrated Circuit(IC)

SystemOnChip(SOC)

LivellidiscalaIntegrated Circuit(IC)

SystemInPackage(SIP)

SystemOnChip(SOC)

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

Tipologiemicroprocessori

• CISCvsRISC• ArchitetturaVonNeumann vsarchitetturaHarvard

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

SRAMeDRAM

VDD

GND

GND

wordlinebitline bitline

wordlinebitline

CellaRAMstatica CellaRAMdinamica

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

MPU

registri

SCRATCHPAD

MEMORIACENTRALE

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

Esempio:FPGA(2)

LUT

LUT MUX

FA

abc

d

cin

cout

MUX

MUX

D

clk

out

LOGICBLOCK

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(3)

MCU

Regolarizzazionedigital inputcontriggerdiSchmidt

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à

JTAG

• Protocollohardwareperiltesting dicircuitiintegratiestampati

• Originariamentecreatoperilboundary testing (ossia,testdeipindeicircuitiintegratipresentisullascheda)

• NelleimplementazionipiùrecentiJTAGvieneusataanchecomeportaperildebugging