26
Tecnologie per sistemi embedded Marco Cesati Schema della lezione Metodologie di sviluppo Application Specific Integrated Circuit Programmable Logic Device Microprocessori SERT’13 E2.1 Lezione E2 Tecnologie per sistemi embedded Sistemi embedded e real-time 4 ottobre 2012 Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Tecnologie per sistemi embedded - sert13.sprg.uniroma2.itsert13.sprg.uniroma2.it/lucidi/lez-E02-p1.pdf · Tecnologie per sistemi embedded Marco Cesati Schema della ... Tradizionalmente

  • Upload
    vanhanh

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.1

Lezione E2Tecnologie per sistemi embedded

Sistemi embedded e real-time

4 ottobre 2012

Marco Cesati

Dipartimento di Ingegneria Civile e Ingegneria InformaticaUniversità degli Studi di Roma Tor Vergata

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.2

Di cosa parliamo in questa lezione?

In questa lezione parliamo di alcuni aspetti legati al processo direalizzazione di un sistema embedded

1 Metodologie di sviluppo2 Varie tecnologie hardware3 Gli ASIC4 I chip programmabili5 I microprocessori

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.3

Lo sviluppo dei sistemi embedded

Per realizzare un sistema embedded è necessario consideraretre aspetti fondamentali:

ArchitettureApplicazioniMetodologie

Nei sistemi informatici “general-purpose” è possibileapprofondire ciascuno di questi aspetti in modo relativamenteindipendente dagli altri

Al contrario, nei sistemi embedded architettura, applicazione emetodologia di sviluppo sono fortemente interdipendenti

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.4

Obiettivi dello sviluppo di sistemi embedded

Alla base dello sviluppo di un sistema embedded c’è sempre lanecessità di realizzare una determinata applicazione

L’applicazione determina i requisiti funzionali enon-funzionali del sistema

Esempi di requisiti funzionali:

Capacità di elaborazione, memorizzazione, comunicazionePrestazioni (media e caso peggiore, throughput e latenza,di picco e a regime, . . . )Consumo di energia (durata della batteria) e consumo dipotenza (dissipazione di calore)Affidabilità e robustezza (tempo di vita)Sicurezza del prodotto

Esempi di requisiti non-funzionali del sistema:

Costi di fabbricazione, costi di progetto, costi dimanutenzione dell’hardware e del softwareDurata della fase di progettazioneNumero di pezzi da produrre

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.5

Metodologie di sviluppo

Perché è indispensabile definire una metodologia di sviluppo?

Lo sviluppo di un sistema embedded richiede:

creatività per scoprire nuove soluzioni e adattarevecchie ideeripetibilità per evitare di ricominciare sempre da zero ilprocesso di sviluppo di un nuovo prodottorapidità per rispettare i vincoli sulla durata della fase diprogettoprevedibilità dei costi di progettazione, fabbricazione emanutenzione

Definire una buona metodologia di sviluppo è essenziale persoddisfare questi requisiti (tranne quello della creatività!)

La metodologia di sviluppo non è (solo) unaastrazione od una teoria da seguire: deve esseredefinita in termini di strumenti e risorse disponibili!

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.6

Le difficoltà dello sviluppo

Il processo di sviluppo comprende molte fasi diversePer molte di queste fasi non esiste alcuno strumento disintesi, quindi è necessario operare molte analisi esimulazioniÈ necessario costruire rapidamente simulatori dellaspecifica applicazione embeddedNon è possibile simulare con elevati livelli di accuratezza ilsistema, a causa dei vincoli sulla durata della fase diprogetto e dei limiti di costo dello sviluppoSono necessari strumenti sofisticati per progettarearchitetture eterogenee con diversi tipi di processori,memorie, dispositivi di comunicazione, . . .

Tradizionalmente le metodologie di sviluppo utilizzate per ilsoftware sono differenti da quelle utilizzate per l’hardware

Che tipo di metodologia adottare per i sistemi embedded?

L’ideale è una metodologia ibrida con il meglio dei due mondi!

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.7

Sviluppo del software “a cascata”

Requisiti

Specifiche

Architettura

Codifica

Manutenzione

Le fasi di progettazionesono rigidamentegerarchiche

Per progettare un livelloè necessario definirecompletamente il livellosuperiore

È molto costosoapportare modifiche adun livello superiorementre si sta definendoun livello inferiore

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.8

Sviluppo del software “a spirale”

Codifica

Requisiti

Architettura

Lo sviluppo è un processoiterativo che alterna tra lediverse fasi

In ogni ciclo costituito datutte le fasi si ottiene unaversione del prodotto piùevoluta

In ogni ciclo si sfruttal’esperienza accumulatanei cicli precedenti

È più facile introdurremodifiche e raffinamenti inciascuna fase

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.9

Sviluppo dell’hardware a sintesi digitale

Le metodologie di sviluppo dell’hardware utilizzano tecnichesofisticate assenti nei processi di sviluppo del software

Ad esempio:

Algoritmi di sintesi dei circuiti basati su tecniche di ricercaAlgoritmi per la stima delle metriche (consumo di energia,influenza elettromagnetica, area occupata,. . . )Algoritmi predittivi per la valutazione dei modelli cheoperano su definizioni incomplete del progetto

Perché tecniche equivalenti non sono largamente usate nellaproduzione del software?

Nel progetto dell’hardware le metriche di valutazione delprodotto sono obiettive e facili da quantificareCiascuna metrica rappresenta quasi sempre un vincoloprogettuale molto forte e deve quindi essere ottimizzataI cicli di sviluppo dell’hardware sono in genere più brevi

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.10

Sviluppo dell’hardware a sintesi digitale (2)

Specifica RTL(register-transfer)

Assegnazione stati,minimizzazione, . . .

Sintesi logica indipen-dente dalla tecnologia

Sintesi logica dipen-dente dalla tecnologia

Piazzamento e percorsi

Layout

Modello percorsi

Analisi temporale

Modello cablaggio

Analisi temporale

Analisi temporale

Libreriadelle celle

Databasetecnologico

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.11

Co-design di sistemi embedded

Quale è il passaggio fondamentale nello sviluppo di unqualunque sistema embedded?

Partizionamento hardware/software

Decisione critica: stabilire quale funzionalità del prodotto dovràessere realizzata direttamente in hardware e quale dovràessere realizzata dal software di un dispositivo programmabile

La metodologia di sviluppo co-design (da “concurrent design”):

Analizza i requisiti e determina un opportunopartizionamento hardware/software

Definisce l’architettura generale del sistema embedded,ed in particolare l’interfacciamento tra hardware e software

Determina le specifiche dell’hardware e del software

Consente di realizzare le componenti hardware e softwareseparatamente e contemporaneamente

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.12

Co-design di sistemi embedded (2)

Specifiche

Analisi del sistema

Partizionamentohardware/software

Analisi prestazioniAnalisi consumi

Specifichehardware Architettura

Specifichesoftware

Implementazionehardware

Implementazionesoftware

Integrazione edebugging

Sistema

Modulihardware

Modulisoftware

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.13

Sviluppo di sistemi embedded basati su piattaforma

Spesso i sistemi embedded vengono sviluppati definendo odutilizzando una piattaforma di riferimento

Metodologia molto comune per i Systems-on-Chips (SoC)

La piattaforma è un dispositivo o una architettura di baseche può essere facilmente modificata per realizzare nuovefunzionalità o modificare quelle esistenti

Molto utile quando il sistema embedded deve realizzarefunzioni definite e regolate da standard (esempi: lettoreDVD, access point IEEE 802.11, stampante PostScript)

Il processo di sviluppo è costituito da due fasi:

1 Si definisce la piattaforma in termini di funzionalità di base,prestazioni e riconfigurabilità

2 Si utilizza la piattaforma così definita per progettare unprodotto specifico basato su di essa

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.14

Sviluppo di sistemi embedded basati su piattaforma (2)

Requisitidi sistema

Grado di ri-configurabilità

Progettodella piattaforma

Piattaforma

Requisitidel prodotto

Utilizzodella piattaforma

Prodotto

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.15

Tecnologie hardware per sistemi embedded

Alla base dei sistemi embedded è la tecnologia integrata

inventata alla fine degli anni ’50

basata su un processo di fabbricazione planare

ha avuto un progresso tecnologico molto veloce

In pratica, il progettista ha ampia possibilità di scelta tra:

componenti COTS (Commercial, Off-the-Shelf)

microprocessori, inclusi microcontrollori e processorispecializzati (DSP, . . . )

logiche programmabili

ASIC (Application-Specific Integrated Circuit)

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.16

Tecnologie per ASIC

Se un progettista deve affidare una certa funzione di unprodotto ad un circuito integrato apposito:

può utilizzare un circuito integrato già prodotto ecommercializzato (componente COTS)può sviluppare in proprio un circuito specializzato perquella specifica funzione (componente ASIC)

I costi di progettazione e sviluppo di un ASIC sono molto alti

Quando si giustifica la scelta di progettare un ASIC?

si richiedono altissime prestazioniil mercato richiede volumi molto elevatinessun componente COTS è adeguato

È soprattutto l’enorme costo di sviluppo di nuovi circuitiintegrati che ha portato l’industria a definire piattaforme diriferimento da cui derivare nuovi prodotti

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.17

Tecnologia standard cell

Per semplificare i problemi di progettazione degli ASIC è stataintrodotta una tecnologia nota come standard cell

si alza il livello di astrazione con il quale si progettano icircuiti: dal transistor si passa alla cella

una cella è un circuito digitale completo già progettato eottimizzato da riutilizzare a piacimento

le definizioni delle celle sono raccolte in libreriecommerciali

ciascuna libreria contiene da 500 a 2000 tipi di celle perrealizzare altrettante funzioni (logiche di base, multiplexer,adder, flip-flop, registri, memorie, . . . )

tutte le celle, quando realizzate nel silicio del circuitointegrato, hanno la stessa altezza

esistono programmi che calcolano il piazzamento ottimaledelle celle nel silicio per realizzare le interconnessionirichieste

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.18

Tecnologia gate array

Anche la tecnologia gate array è stata introdotta persemplificare la progettazione degli ASIC

È simile alla tecnologia standard cell, nel senso che unvenditore fornisce una libreria di circuiti digitali completi

In standard cell il chip è costruito su un die di silicio puro(quindi le celle sono molto flessibili)

In gate array il chip è parzialmente fabbricato: il silicio ègià organizzato in gruppi di transistor (gate base)organizzati in righe regolari separate da canali di routingper le interconnessioni

Una variante nota come sea of gates non possiede canalidi routing: le interconnessioni sono affidate ad uno stratodi metallo posto sopra i transistor

Dieci anni fa si progettavano decine di migliaia di nuovi ASICogni anno; oggi forse un migliaio. Il calo è dovuto alla nuovafrontiera dei sistemi embedded: le logiche programmabili!

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.19

Logiche programmabili

Le logiche programmabili (o PLD, Programmable Logic Device)sono chip che integrano risorse logiche e linee diinterconnessione completamente fabbricate

I chip sono programmabili nel senso che:ciascuna risorsa logica può essere configurata persvolgere una specifica funzioneciascuna linea di interconnessione può essere collegata omeno a varie risorse logiche

I PLD hanno differenti gradi di programmabilità:

one-time programmable (OTP): la configurazione del chipè irreversibile ed è ottenuta applicando tensioni elettrichepiù alte di quelle della normale alimentazioneriprogrammabili: la configurazione può essere effettuatapiù volte; le interconnessioni sono transistor pilotati dai bitdi un circuito di memoria volatile (RAM statica) oppurepersistente (EEPROM, Flash)riconfigurabili: la configurazione può essere effettuta piùvolte mentre il circuito è in funzione ed in modo selettivo

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.20

Complessità e organizzazione dei PLD

I PLD si distinguono anche in base alla complessità dellerisorse logiche elementari (celle)

Ad un estremo, una cella è costituita da una o due portelogiche, oppure da un multiplexer a 2 o 4 ingressi, oppureda un latch o flip-flop

All’altro estremo, una cella contiene una o due circuiti ingrado di realizzare qualunque funzione booleana a 4ingressi, qualche porta logica, uno o due multiplexer equalche flip-flop

Quali sono vantaggi delle celle semplici e quali quelli delle cellecomplesse?

Il vantaggio delle celle semplici è che il silicio è maggiormentesfruttato: il rischio di sotto-utilizzare qualche cella è ridotto

Il vantaggio delle celle complesse è che ne servono di meno,quindi è più facile realizzare le loro interconnessioni

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.21

Tipologie di PLD

PLA (Programmable Logic Array): costituito da zone diporte AND e OR e da aree di interconnessioneconfigurabili (OTP)

PAL (Programmable Array Logic): come i PLA, ma piùsemplici: la configurazione delle porte OR è prefissata

GAL (Generic Array Logic): include diversi PAL, conmultiplexer per retro-azionare le uscite, e con flip-flop;inoltre può essere riprogrammato

CPLD (Complex PLD): basato su celle complesse (GAL)ed un bus comune configurabile per mezzo di unamemoria EEPROM

FPGA (Field Programmable Gate Array): celle complessee interconnessioni sono distribuite regolarmente nel chip;la configurazione è in memoria generalmente volatile

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.22

Utilizzo di microprocessori in sistemi embedded

Molti sistemi embedded sono realizzati sfruttandomicroprocessori più o meno evoluti e specializzati

Quali sono i vantaggi dell’uso del microprocessore?

Vantaggio principale è la flessibilità: il software consente diavere un sistema molto più mantenibile ed estendibile

Altro vantaggio è che se l’applicazione da realizzare ècomplessa, il sistema basato su microprocessore è alla fine piùsemplice ed economico

Quali sono gli svantaggi nell’utilizzo dei microprocessori?

Lo svantaggio principale sono le prestazioni peggiori (rispettoall’implementazione in hardware della stessa funzionalità)

Tra le prestazioni si devono considerare anche il consumo dienergia, la dissipazione di potenza, la memoria richiesta, iltempo di inizializzazione. . .

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.23

Tipologie di microprocessore per sistemi embedded

Si utilizzano sia microprocessori general purpose (GPP) chemicroprocessori dedicati (ASP, Application Specific Processor)

Ancora una volta la scelta è frutto di un compromesso traflessibilità, tempi di sviluppo e prestazioni

Un’altra caratteristica molto importante è la forma in cuiacquisire il microprocessore: COTS oppure IP

I microprocessori COTS sono chip fisicamenteindipendenti da integrare nel sistema

I microprocessori IP (Intellectual Property) sonodescrizioni a vario livello di astrazione dei circuiti:

Soft-macro: a livello Register-transfer in linguaggio VHDL,Verilog o equivalenteFirm-macro: a livello di gate (netlist per specifici PLD oASIC)Hard-macro: a livello di layout per specifici PLD o ASIC

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.24

Digital Signal Processor

I DSP sono la classe principale di processori dedicati, e sonoottimizzati per l’elaborazione numerica

Alla base di quasi tutte le elaborazioni numeriche dei segnali sitrova una sola operazione ricorrente: zt+1 = zt + x · yLa complessità di un dato algoritmo è espressa in numero diMAC (Multiply and Accumulate) e le prestazioni in MMAC/s(milioni di MAC al secondo)

Le architetture per DSP:

Realizzano l’operazione MAC con una singola istruzioneOttimizzano l’esecuzione di cicli piccoli e con numero diiterazioni prefissatoHanno istruzioni per operare su più dati in parallelo (SIMD)Generalmente hanno insiemi di istruzioni VLIW (VeryLarge Instruction Word)Hanno gerarchie di memoria che distinguono tra codice edati (architettura Harvard), o tra codice, dati e costanti(architettura SHARC, Super Harvard Architecture)

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.25

Network Processor

I network processor (NP, od anche packet processor) sonosystem-on-chip usati negli apparati di rete e telecomunicazione

Funzioni tipiche: la bufferizzazione dei pacchetti, l’elaborazionedelle testate, la ricerca di indirizzi in tabelle, il calcolo di codicidi controllo, la ritrasmissione di un pacchetto

L’architettura di ogni NP è multi-processore: a ciascun canale èdedicato un processore specifico (CP, Channel Processor)

Alcuni processori RISC si occupano della supervisione e dellosmistamento dei pacchetti tra canali diversi

Il collegamento tra i vari processori è dato da un insieme di busad altissima velocità (∼ 100 Gbps)

La programmazione dei processori RISC è in genere in C

La programmazione dei CP è effettuata in assembler oppurecon linguaggi basati su regole lessicali per patter recognition

Tecnologie persistemi embedded

Marco Cesati

Schema della lezione

Metodologie disviluppo

Application SpecificIntegrated Circuit

Programmable LogicDevice

Microprocessori

SERT’13 E2.26

Microcontrollori

I microcontrollori (o MCU) sono microprocessori chedispongono di molte periferiche ed interfacce in un singolo chip

Sono particolarmente adatti per applicazioni che richiedonopoca potenza di calcolo ma stretta interazione con l’hardware

Unità aritmetico-logica (ALU) molto semplicePochissimi registri, un registro “accumulatore”Un solo bus internoMemorie integrate (RAM, ROM, EEPROM) di pochi KBTimer hardwarePiedini programmabili per I/OConvertitori analog./digitale (ADC) e digitale/analog. (DAC)Interfacce I2C, SPI, JTAG, UART, PWM, . . .

Quasi sempre non possiedono interfaccie sofisticate verso lamemoria esterna (bus e MMU): perché?

Soprattutto per tenere basso il numero di piedini (pin) del chip!