Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 17

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 17 — #17 i 1.1. SISTEMI EMBEDDED i 17 di performance con una combinazione di hardware e software appositamente progettati. Risulta difficile caratterizzare la velocità o i costi di un sistema embedded generico, anche se soprattutto per sistemi che devono processare una grande quantità di dati, il progetto stesso assorbe la maggior parte dei costi. Fortunatamente, la maggior parte dei sistemi embedded ha delle necessità di performance che possono essere soddisfatte con una combinazione di hardware dedicato ed una quantità limitata di software ad elevate prestazioni. Per avere un’idea, basti pensare ad un decoder per una televisione satellitare. Nonostante un sistema come questo debba processare decine di megabit di dati al secondo, la maggior parte del lavoro è svolta da hardware dedicato che separa, regola e decodifica il flusso digitale multicanale in un’uscita video. Alla CPU embedded spetta il compito di determinare i percorsi dei dati nel sistema, gestire gli interrupt, gestire la grafica, e così via. Spesso, quindi, la gran parte dell’hardware di un sistema embedded deve sottostare a dei requisiti di performance molto meno severi di quelli che, invece, deve rispettare l’hardware primario del sistema stesso. Questo permette all’architettura di un sistema embedded di essere intenzionalmente semplificata rispetto a quella di un computer generico che deve eseguire le stesse operazioni, usando ad esempio una CPU più economica che tutto sommato si comporta discretamente anche per queste funzioni secondarie. Nel caso di sistemi che devono essere commercializzati in massa, come un lettore di musica portatile, ridurre i costi diventa una priorità. Sistemi di questo tipo, infatti, spesso sono dotati di alcuni chip, una CPU altamente integrata, un chip dedicato a tutte le altre funzioni ed un singolo banco di memoria. In questo caso ogni componente è selezionato e progettato per ridurre il più possibile i costi. Il software utile a gestire molti sistemi embedded, in particolare quelli senza hard disk, è talvolta chiamato firmware. Il firmware è un tipo di software che, ad esempio è possibile trovare nei chip delle memorie ROM o Flash. Ai sistemi embedded è spesso richiesto di essere attivi continuamente per anni, idealmente senza contrarre errori. Pertanto il software ed il firmware sono progettati e testati con molta più attenzione rispetto a software tradizionale per personal computer. Molti sistemi embedded, infatti, evitano di incorporare componenti con parti meccaniche in movimento (come gli hard disk), poiché essi sono meno affidabili rispetto a componenti allo stato solido come le memorie Flash. In aggiunta, i sistemi embedded potrebbero non essere fisicamente accessibili (ad esempio i componenti