Metodologie per la realizzazione hardware di specifiche di sistema descritte in Occam
Autore
Simona Bernardi - Politecnico di Milano - [1996-97]
Documenti
Abstract
I sistemi dedicati rappresentano la classe di sistemi progettati per applicazioni specifiche, generalmente realizzati con tecnologia digitale e spesso di piccole dimensioni. Tali sistemi sono solitamente orientati al controllo e alla elaborazione di dati forniti da altri apparati ai quali sono collegati. L'architettura di un sistema dedicato è di tipo eterogeneo, includendo un processore sul quale viene eseguito il software ad alte prestazioni, e alcuni moduli hardware dedicati che interagiscono con l'ambiente esterno e con il processore. La tecnologia attuale permette di realizzare, per sistemi di piccole dimensioni, un singolo ASIC (Application Specific Integrated Circuit) con logica dedicata, il microprocessore per il controllo e le parti di interfacciamento con i segnali derivanti dall'ambiente. Dato l'utilizzo finale a cui sono destinati i sistemi dedicati, è indispensabile riuscire ad ottenere un buon compromesso tra i costi dovuti alle componenti hardware e le prestazioni fornite dal software.
Per raggiungere soluzioni ottimali di integrazione tra i vari componenti che costituiscono il sistema sarebbe necessario esplorare un numero notevole di configurazioni architetturali. Tuttavia la forte competizione del mercato costringe a completare in tempi rapidi la realizzazione di un sistema, forzando i progettisti a fermarsi non appena viene raggiunto un raffinamento accettabile delle specifiche con processori più veloci e memorie più grandi del necessario. Inoltre, lo studio e l'analisi di un sistema embedded vengono effettuate nella primissima fase di progettazione, dopodiché lo sviluppo della parte software e della parte hardware procedono parallelamente ma senza una significativa interazione, con problemi notevoli nella fase finale di integrazione.
Da quanto detto risulta chiara la necessità di un nuovo flusso di progettazione che utilizzi metodologie e strumenti in grado di evitare i problemi legati ad uno sviluppo non integrato delle parti hardware e software, fornendo la possibilità di una progettazione concorrente e la valutazione di soluzioni differenti di allocazione delle funzionalità nelle due partizioni, oltre alla simulazione dell'intero sistema e alla valutazione dei costi di implementazione prima della realizzazione finale.
Il co-design ha come scopo l'unificazione della progettazione hardware e software ad un unico livello di astrazione, prescindendo dalla reale tecnologia implementativa e permettendo l'acquisizione delle funzionalità dell'intero sistema (co-specifica). Inoltre fornisce un'alta flessibilità nell'allocazione delle risorse (partizionamento), la possibilità di ottimizzare la specifica del sistema tramite una ristrutturazione basata sul calcolo di metriche statiche e dinamiche e la verifica delle funzionalità del sistema tramite la simulazione ad alto livello o la co-simulazione delle sezioni hardware e software sintetizzate.
Il lavoro di tesi affronta le problematiche legate alla sintesi delle sezioni hardware. In particolare vengono presentate due strategie alternative di sintesi hardware che si basano su architetture circuitali differenti. Tali strategie sono state sviluppate in modo da poter essere facilmente integrate nel flusso di sviluppo di sistemi dedicati realizzati in un ambiente di progettazione concorrente hardware-software e gli algoritmi ideati sono stati implementati in C++. Viene inoltre affrontato lo studio della valutazione della bontà di tali strategie e, nell'ultima parte, viene presentato un confronto tra le due soluzioni, attraverso l'implementazione di un sistema reale.
Per raggiungere soluzioni ottimali di integrazione tra i vari componenti che costituiscono il sistema sarebbe necessario esplorare un numero notevole di configurazioni architetturali. Tuttavia la forte competizione del mercato costringe a completare in tempi rapidi la realizzazione di un sistema, forzando i progettisti a fermarsi non appena viene raggiunto un raffinamento accettabile delle specifiche con processori più veloci e memorie più grandi del necessario. Inoltre, lo studio e l'analisi di un sistema embedded vengono effettuate nella primissima fase di progettazione, dopodiché lo sviluppo della parte software e della parte hardware procedono parallelamente ma senza una significativa interazione, con problemi notevoli nella fase finale di integrazione.
Da quanto detto risulta chiara la necessità di un nuovo flusso di progettazione che utilizzi metodologie e strumenti in grado di evitare i problemi legati ad uno sviluppo non integrato delle parti hardware e software, fornendo la possibilità di una progettazione concorrente e la valutazione di soluzioni differenti di allocazione delle funzionalità nelle due partizioni, oltre alla simulazione dell'intero sistema e alla valutazione dei costi di implementazione prima della realizzazione finale.
Il co-design ha come scopo l'unificazione della progettazione hardware e software ad un unico livello di astrazione, prescindendo dalla reale tecnologia implementativa e permettendo l'acquisizione delle funzionalità dell'intero sistema (co-specifica). Inoltre fornisce un'alta flessibilità nell'allocazione delle risorse (partizionamento), la possibilità di ottimizzare la specifica del sistema tramite una ristrutturazione basata sul calcolo di metriche statiche e dinamiche e la verifica delle funzionalità del sistema tramite la simulazione ad alto livello o la co-simulazione delle sezioni hardware e software sintetizzate.
Il lavoro di tesi affronta le problematiche legate alla sintesi delle sezioni hardware. In particolare vengono presentate due strategie alternative di sintesi hardware che si basano su architetture circuitali differenti. Tali strategie sono state sviluppate in modo da poter essere facilmente integrate nel flusso di sviluppo di sistemi dedicati realizzati in un ambiente di progettazione concorrente hardware-software e gli algoritmi ideati sono stati implementati in C++. Viene inoltre affrontato lo studio della valutazione della bontà di tali strategie e, nell'ultima parte, viene presentato un confronto tra le due soluzioni, attraverso l'implementazione di un sistema reale.
Questa tesi è correlata alla categoria