Sistemi Embedded A.A. 2008/2009 • Sistemi Embedded Ing. Francesca Palumbo, Ing. Paolo Meloni Corso di laurea in Ingegneria Elettronica Anno Accademico: 2008-09 Ore di lezione: 40 ore (ca) Ore di esercitazione: 20 ore (ca) Esame: scritto • 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 TileBased, 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 l’interconnessione: AMBA • Soluzioni alternative per l’interconnessione: 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 l’architettura 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à. • L’approccio 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 • L’efficienza energetica influisce sul battery life-time Dimensioni • Mobilità • Costi L’arte dell’embedded design • Esistono molti gradi di libertà esposti al progettista • Scegliere una soluzione che soddisfi i requisiti richiesti è necessario per l’utilità 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. L’INSTRUCTION SET ARCHITECTURE (ISA) SPECIFICA L’INSIEME DELLE CARATTERISTICHE DEL PROCESSORE VISIBILI AL PROGRAMMATORE. ESSO DEFINISCE L’INTERFACCIA 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 • L’architettura X è n volte più veloce dell’architettura 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 l’execution time • Ogni computer ha un segnale di sincronizzazione (clock) • L’execution 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 ISA and compiler Hardware technology and Optimization Microarchitecture organization and ISA