Sistemi Embedded A.A. 2008/2009
Sistemi Embedded Ing. Francesca Palumbo, Ing. Paolo Meloni Corso di laurea in Ingegneria Elettronica Anno Accademico: Ore di lezione: 40 ore (ca) Ore di esercitazione: 20 ore (ca) Esame: scrittoFrancesca PalumboPaolo Meloni Non sono strettamente necessarie basi solide di conoscenze relative al verilog, ma è consigliabile aver seguito propedeuticamente SDP.
Programma Introduzione ai Sistemi Embedded Metriche di valutazione di un processore Richiami sul MIPS, esempi di codifica Assembly per il MIPS, cenni sul Framework di simulazione che verrà usato per le esercitazioni Gestione della Memoria, gestione delle chiamate a funzione, debug di un sistema embedded Gestione delle periferiche di sistema: Polling e Memory Mapping Classificazione di Flynn, concetti di parallelismo applicato ai processori (ILP, DLPe TLP), richiami sul Pipelining Processori Superscalari, processori VLIW, cenni sulle architetture Tile- Based, esempi di Chip Multi-Processor, architetture per il DSP Gerarchia di Memoria, Cache Multiprocessors System On Chip: introduzione, modelli di memoria, cache coherency, sincronizzazione, modello di programmazione, esempi Soluzioni classiche per linterconnessione: AMBA Soluzioni alternative per linterconnessione: Network on Chip
Le ultime parole famose… "I think there is a world market for about five computers" Remark attributed to Thomas J. Watson (Chairman of IBM) 1943 Oggi… If you round off the fractions, embedded systems consume 100% of the worldwide production of microprocessors Jim Turley (Computer Industry Analyst)
Definisci un sistema embedded… Sistemi embedded (incapsulati, dedicati): sistemi elettronici a microprocessore progettati appositamente per una determinata applicazione, con una piattaforma hardware ad hoc, integrati nel sistema che controllano e in grado di gestirne le funzionalità. In pratica, tutto ciò che non è general purpose GP. Viene affrontato un solo campo di applicazione e si cerca di ottimizzare larchitettura di calcolo per quel determinato campo
Attenzione!!! Il confine tra GP e embedded non è così marcato: – I GPP costano sempre meno – Anche i campi di applicazione specifici richiedono capacità computazionali rilevanti – Sempre maggiore richiesta di mobilità (Come classifichiamo un palmare?) Lo studio di architetture per i sistemi embedded e lo studio delle architetture tout-court si compenetrano decisamente.
Come classificare i SE? Per tipo di processing engine – Computational micros – Embedded general purpose micros (ARM cores) – Digital signal processors (TI, Motorola) – Microcontrollers Per area di applicazione – Image processing, consumer market (stampanti, audio, video, macchine fotografiche, home entertainment) – Communication market (telefonia, data network) – Automotive (controlli di sicurezza, controllo motore, navigazione, controllo impianto frenante)
Come classificare i SE? Per tipo di funzione e di carico di lavoro – Funzione di controllo (funzionalità tipica dei SE) – Funzione di switching e routing (tipicamente nel campo del networking, grandi moli di dati) – Media Processing (stressa le capacità computazionali del sistema)
Perché sistemi embedded Il mercato moderno pone dei limiti in termini di performance. Applicazioni sempre più complesse e sempre maggiore portabilità. Lapproccio embedded permette di fornire le performance richieste gestendo in maniera ottimale – Costi – Consumo di potenza e efficienza energetica – Dimensioni
Costi Es. – Prezzo al cliente $199 – Costo di costruzione $100 – Costo componenti elettronici $30-50 – poco budget per il processore nonostante i miglioramenti della tecnologia – SoC Design – Platform Based Design – Necessità di toolchain efficienti
Power and Energy Il consumo di potenza di un dispositivo influisce – sulle modalità di alimentazione del dispositivo stesso – Sulle modalità di dissipazione termica e dunque impatta fortemente sui costi del dispositivo Lefficienza energetica influisce sul battery life-time
Dimensioni Mobilità Costi
Larte dellembedded design Esistono molti gradi di libertà esposti al progettista Scegliere una soluzione che soddisfi i requisiti richiesti è necessario per lutilità del prodotto Scegliere la soluzione ottimale dal punto di vista dei costi hardware è necessario per imporsi sul mercato Fare embedded design è una disciplina complicata ed affascinante Architecture Design is the Science of trade-offs (Yale Patt, INTEL Pentium branch predictor designer) TIME TO MARKET – CAD Tools
Microarchitecture design Problem __________________________________________________________________________________________________________________________________ Algorithm __________________________________________________________________________________________________________________________________ Program __________________________________________________________________________________________________________________________________ Instruction Set Architecture __________________________________________________________________________________________________________________________________ Microarchitecture __________________________________________________________________________________________________________________________________ Circuits __________________________________________________________________________________________________________________________________ Electrons
Architetture di processori IL PROCESSORE È UNA MACCHINA SEQUENZIALE CHE ESEGUE DELLE ISTRUZIONI RESIDENTI IN MEMORIA ALLO SCOPO DI MANIPOLARE DEI DATI A LORO VOLTA RESIDENTI IN MEMORIA. LINSTRUCTION SET ARCHITECTURE (ISA) SPECIFICA LINSIEME DELLE CARATTERISTICHE DEL PROCESSORE VISIBILI AL PROGRAMMATORE. ESSO DEFINISCE LINTERFACCIA TRA HARDWARE E SOFTWARE. L'ISA SPECIFICA LA FUNZIONALITA' DEL PROCESSORE IN TERMINI DI: DATI GESTITI REGISTRI INTERNI DESTINATI A CONTENERE I DATI DA MANIPOLARE ISTRUZIONI CHE PRELEVANO DA MEMORIA E MANIPOLANO QUESTI DATI ISTRUZIONI DI "SALTO" MODALITA' DI FUNZIONAMENTO SPECIALI ISTRUZIONI SPECIALI
Per chiarirci…
Come valutare una architettura Larchitettura X è n volte più veloce dellarchitettura Y
Come valutare una architettura Execution time – Wall-clock time (the latency to complete a task) – Cpu time (the time the CPU is computing) User CPU time System CPU time Benchmarks – Applicazioni reali – Applicazioni reali modificate – Kernel – Toy Benchmarks – Synthetic Benchmarks
Si può sbagliare?? A è 10 volte più veloce di B per il programma P1 B è 10 volte più veloce di A per il programma P2 A è 20 volte più veloce di B per il programma P1 C è 50 volte più veloce di A per il programma P2 B è 2 volte più veloce di C per il programma P1 C è 5 volte più veloce di B per il programma P2
Si può usare il tempo totale?? B è 9,1 volte più veloce di A per i programmi P1 e P2 C è 25 volte più veloce di A per i programmi P1 e P2 C è 2,75 volte più veloce di A per i programmi P1 e P2 Equivale ad utilizzare la media aritmetica dei tempi
Ancora execution time Se i programmi A e B non sono eseguiti lo stesso numero di volte è necessario fare una media pesata.
CPU Performance Equation Permette di considerare le singole componenti che partecipano a determinare lexecution time Ogni computer ha un segnale di sincronizzazione (clock) Lexecution time può essere definito in base ad esso o alternativamente
CPU Performance Equation Definiamo inoltre instruction count (IC) il numero di istruzioni eseguite durante un programma Possiamo, conoscendo IC e il numero di clock cycles, calcolare la grandezza CPI (clocks per instruction) o la sua grandezza inversa IPC come E dunque Clock cycles= IC x CPI
CPU Performance Equation Sostituendo Clock cycles= IC x CPI nella espressione del tempo di esecuzione troviamo che il tempo di esecuzione è dipendente allo stesso modo da tre caratteristiche Hardware technology and Optimization ISA and compiler Microarchitecture organization and ISA