DMI – Corso di laurea magistrale in Informatica
Copyleft
2018 Giuseppe Scollo
di che si tratta:
modello di programmazione = progetto del controllo + progetto dei dati
il modello di programmazione, cioè la vista software di un modulo hardware, include:
seguono alcune considerazioni sull'impatto che questi due tipi di decisioni di progetto hanno sul progetto del driver software del modulo hardware custom
la mappa degli indirizzi riflette l'organizzazione di elementi di memoria del modulo hardware accessibili al software in lettura e in scrittura; il suo progetto dovrebbe procedere dal punto di vista del progettista del software piuttosto che dell'hardware, perciò:
il progetto di un buon insieme di istruzioni è un problema difficile, che si pone al progettista in termini di bilanciamento tra flessibilità ed efficienza
ecco alcune generiche linee-guida per il progetto:
in una recente esercitazione è stata presentata una realizzazione software del calcolo del delay di una traiettoria di Collatz di dato inizio
realizzazioni hardware della stessa funzione sono state oggetto di precedenti esperienze di laboratorio
le misure di prestazione condotte sulla realizzazione software mostrano che essa assorbe quasi tutto il tempo di esecuzione del programma
una prima alternativa da valutare: integrare la funzione hardware come istruzione custom o come coprocessore mappato in memoria?
altre decisioni di progetto dipendono da questa prima decisione, come segue
la descrizione VHDL del circuito di calcolo della funzione va incorporata in un componente dotato di interfacce Avalon per i segnali di Clock, Reset e di Avalon MM Slave, sì da ricevere il dato iniziale da un'operazione di scrittura e fornire il risultato in risposta a un'operazione di lettura
indirizzamento del coprocessore: poiché le operazioni di scrittura (del dato iniziale) e lettura (del risultato) avvengono in tempi diversi e hanno la stessa dimensione del dato, un solo indirizzo è sufficiente
driver software : si possono definire due macro e una funzione per l'interfaccia software di accesso al bus: DC_RESET(d), DC_START(d,x0), unsigned int delay(d), dove d è l'indirizzo assegnato al coprocessore
letture raccomandate:
per ulteriore consultazione: