Diapositiva 1 - Ingegneria elettrica ed elettronica

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