DMI – Corso di laurea magistrale in Informatica
Copyleft
2020 Giuseppe Scollo
di che si tratta:
modelli di alto livello per il progetto di sistemi: diagrammi a blocchi
grafi dataflow: modello matematico dei diagrammi a blocchi
esempio: diagramma a blocchi di un sistema di modulazione di ampiezza a 4 livelli (PAM-4)
esempio: modulazione di ampiezza di segnali a 4 livelli (PAM-4)
Schaumont, Figure 2.1 - (a) sistema di modulazione di ampiezza (b) formazione del segnale
Schaumont, Figure 2.2 - modello dataflow del sistema di modulazione di ampiezza
un modello software del sistema PAM-4 è fattibile, v. per esempio il programma C in Schaumont, Listing 2.1, dove ciascun blocco è rappresentato da una funzione, tuttavia:
nel modello in figura le funzioni sono rappresentate da attori collegati da canali di comunicazione modellati da code FIFO
Schaumont, Figure 2.3 - modello dataflow di un'addizione
gli attori sono unità funzionali di elaborazione privi di stato interno
nei grafi dataflow multirate ogni attore può consumare più di un token su ciascun canale d'ingresso e produrre più di un token su ciascun canale di uscita, ad ogni attivazione
quando i tassi di produzione e consumo sono fissi, il grafo è detto grafo dataflow sincrono (SDF)
Schaumont, Figure 2.8 - i grafi SDF sono deterministici
proprietà desiderabili di un grafo SDF:
Schaumont, Figure 2.9 - quale grafo SDF va in stallo e quale è instabile?
Schaumont, Figure 2.10 - grafo SDF di esempio per la costruzione di una PASS
PASS: schedule sequenziale ammissibile periodica
algoritmo di costruzione di PASS, se ne esiste una (Lee):
Schaumont, Figure 2.11 - un grafo in stallo
Schaumont, Figure 2.12 - matrice topologica del sistema PAM-4
applicazione del metodo di Lee:
modellare il flusso del controllo con i grafi SDF non è facile...
alcuni aspetti problematici:
estensioni minime, preservano la semantica SDF:
utili per l'analisi di prestazioni e per la valutazione di trasformazioni volte a migliorarle
Schaumont, Figure 2.15 - Estensione del modello SDF con risorse: latenza di attori, buffer per code FIFO
nello stato iniziale i buffer contengono sempre un token
un buffer può detenere un token per la durata di una attivazione dell'attore a valle
Schaumont, Figure 2.16 - tre grafi dataflow
con l'aggiunta di buffer, il pipelining può migliorare il throughput di un grafo SDF
numero e distribuzione dei buffer in un grafo SDF ne influenzano il throughput
anche le maglie, o cicli, nel grafo influiscono su latenza e throughput; due concetti per rendersene conto:
Schaumont, Figure 2.17 - Calcolo di limiti di maglia e d'iterazione
il throughput di un grafo SDF non può superare il (reciproco del) suo limite d'iterazione
Schaumont, Figure 2.18 - limite d'iterazione per un grafo lineare
trasformazioni che non alterano la funzionalità ma possono migliorare le prestazioni di grafi SDF
quattro le più frequenti:
trasformazione di un grafo SDF multirate in single-rate, in 5 passi:
questa trasformazione redistribuisce i buffer senza alterarne il numero totale
Schaumont, Figure 2.21
- Retiming: (a) grafo originale.
(b) grafo dopo la prima trasformazione di re-timing.
(c) grafo dopo la seconda trasformazione di re-timing
pipelining = aggiunta di buffer + retiming
Schaumont, Figure 2.22
- pipelining: (a) grafo originale (b) grafo dopo l'aggiunta di due stadi
di pipeline
(c) grafo dopo il retiming degli stadi di pipeline
replica del grafo SDF in più copie per aumentare il parallelismo dell'elaborazione del flusso di dati in ingresso
il ν-unfolding di un grafo SDF genera un grafo con ν copie di ogni attore e di ogni arco
se l'arco AB connette gli attori A e B nel grafo originale, dove ha n buffer, allora nel grafo trasformato, per i = 0..ν-1:
letture raccomandate:
per ulteriore consultazione: