Folding
Να καθορίσουμε συστηματικά τα κυκλώματα ελέγχου μιας DSP αρχιτεκτονικής χρησιμοποιώντας folding μετασχηματισμό ώστε να πραγματοποιούμε πολλαπλές αλγοριθμικές πράξεις σε ένα λειτουργικό στοιχείο με ένα πολυπλεγμένο στο χρόνο μηχανισμό. Να μειώσουμε τον αριθμό των hardware λειτουργικών στοιχείων functional units (FUs) κατά ένα παράγοντα N αυξάνοντας τον χρόνο υπολογισμών κατά αντίστοιχο παράγοντα N. Να οδηγηθούμε σε μια αρχιτεκτονική που έχει μεγάλο αριθμό καταχωρητών και να εφαρμόσουμε τεχνική ελαχιστοποίησης καταχωρητών
Λειτουργικό Στοιχείο Functional Unit (FU)
Μια συστηματική τεχνική ώστε να σχεδιάζουμε hardware κυκλώματα ελέγχου (συνήθως) όπου αρκετές αλγοριθμικές λειτουργίες πραγματοποιούνται στο ίδιο λειτουργικό στοιχείο με ένα πολυπλεγμένο στο χρόνο μηχανισμό. U, V: κόμβοι (λειτουργίες) του αρχικού DFG H U, H V : κόμβοι (λειτουργικά στοιχεία) του folded DFG W (x) : x-th επανάληψη του κόμβου W U e V: μια ακμή e από τον κόμβο U στον V w(e): αριθμός στοιχείων καθυστέρησης στην ακμή e Παράγοντας Folding N Ο αριθμός των λειτουργιών που πραγματοποιούνται χρησιμοποιώντας ένα FU Folding Σύνολο Ένα ταξινομημένο σύνολο από λειτουργίες που θα εκτελούνται στο ίδιο FU H θέση της λειτουργίας U στο folding σύνολο λέμε ότι είναι η folding τάξη του U Το folding σύνολο αναπαριστά τον χρησιμοποιούμενο folding μετασχηματισμό
P U : αριθμός pipeline επιπέδων του H U. P U = 0 σημαίνει ότι H U δεν είναι pipelined. e D F (U V): (folding εξίσωση) αριθμός κύκλων για τους οποίους το αποτέλεσμα του H U πρέπει να είναι αποθηκευμένο D F (U V ) = [N(l + w(e))] + v] [Nl + P U + u] = Nw(e) P U + v u Αρνητική τιμή στην folding εξίσωση D F είναι δυνατή πριν από retiming των folding εξισώσεων κόμβοι (λειτουργικά στοιχεία) e Lan-Da Van VL
Ο Folding Μετασχηματισμός U (l) w(e) V (l+w(e)) N folded N folded H U (Nl+u) P U +D F H V (N(l+w(e))+v) Lan-Da Van VLSI - DSP- 6-6
Folding factor N = 4 Folding Σύνολο S 1 = {4, 2, 3, 1}, S 2 = {5, 8, 6, 7}, όπου S 1 αναφέρεται σε όλες τις προσθέσεις και S 2 αναφέρεται σε όλους τους πολλαπλασιασμούς. Υποθέτω ότι Πρόσθεση: 1 u.t. Πολλαπλασιασμός: 2 u.t. Lan-Da Van Χρησιμοποιώ αθροιστές 1-επιπέδου πολλ/στες 2-επιπέδων pipeline
Folding Retimed Biquad Φίλτρο folding εξισώσεις e D F (U V ) = [N(l + w(e))] + v] [Nl + P+ u] = Nw(e) P U + v u Για να είναι εφικτό το folding πρέπει D F (U V ) 0 για όλες τις ακμές
Lan-Da Van VLSI- DSP- 6-9
Είναι μια διαδικασία ώστε να υπολογίζω τον ελάχιστο αριθμό καταχωρητών που χρειάζονται στην υλοποίηση ενός DSP αλγορίθμου σε υλικό. Γραμμική Ανάλυση Χρόνου Ζωής Κυκλική Ανάλυση Χρόνου Ζωής Υπολογίζεται ο αριθμός των ενεργών μεταβλητών σε κάθε χρονικό unit Ο μέγιστος αριθμός των ενεργών μεταβλητών προσδιορίζεται Τεχνική κατανομής καταχωρητών Forward-backward Lan-Da Van VLSI- DSP- 6-10
Μεταβλητές {a, b, c} max {0,1,2,2,2,2,2,2}=2 Έμμεση περιοδικότητα Τρείς επαναλήψεις με N=6
a b c d e f g h i Ανάστροφος a d g b e h c f i i h g f e d c b a Matrix Transpose i f c h e b g d a
VLSI Digital Signal Processing Systems T zlout = zero-latency χρόνος εξόδου T diff = T zlout T input T output = T zlout + max{-t diff }
Γραμμικό Lifetime διάγραμμα Κυκλικό Lifetime διάγραμμα Ο ελάχιστος αριθμός καταχωρητών είναι 4.
Βήμα 1: Βρίσκω τον ελάχιστο αριθμό καταχωρητών με lifetime ανάλυση. Βήμα 2: Βάζω κάθε μεταβλητή εισόδου στο χρονικό βήμα που αντιστοιχεί στην αρχή της διάρκειας ζωής της Βήμα 3: Κάθε μεταβλητή κατανέμεται με forward τρόπο μέχρι να απενεργοποιηθεί (να είναι νεκρή) ή να φτάσει τον τελευταίο καταχωρητή. Βήμα 4: Μια και η κατανομή είναι περιοδική, η κατανομή της συγκεκριμένης επανάληψης θα επαναλαμβάνεται και στις μελλοντικές επαναλήψεις. Άρα αρκεί να κατανήμουμε τις θέσεις των καταχωρητών στα πλαίσια μιας περιόδου N. Βήμα 5: Αν μια μεταβλητή που φτάσει στον τελευταίο καταχωρητή είναι ακόμα ενεργή, τότε αυτή η μεταβλητή κατανέμεται σε καταχωρητή με backward τρόπο. Βήμα 6: Επαναλαμβάνω τα βήματα 4 και 5 όσες φορές χρειάζεται μέχρι η κατανομή ολοκληρωθεί.
Βήμα 1: Κάνω retiming για την folded αρχιτεκτονική Βήμα 2 Γράφω τις folding εξισώσεις Βήμα 3: Χρησιμοποιώ τις folding εξισώσεις για να φτιάξω το τον lifetime πίνακα Βήμα 4: Φτιάχνω το lifetime διάγραμμα και καθορίζω τον αριθμό των απαραίτητων καταχωρητών Βήμα 5: Κάνω forward-backward κατανομή καταχωρητών Βήμα 6: σχεδιάζω την folded αρχιτεκτονική με τον ελάχιστο αριθμό καταχωρητών
Step 1: Retiming Retiming Invalid folding: DF(1 2) = -3 DF(6 4) = -4 DF(8 4) = -3 DF(7 3) = -3
Step 2: Folding Equations D F (U V) = Nw(e) P u + v u D F (1 2) = 4(1) 1 + 1 3 = 1 D F (1 5) = 4(1) 1 + 0 3 = 0 Step 3: Construct the lifetime table D F (1 6) = 4(1) 1 + 2 3 = 2 D F (1 7) = 4(1) 1 + 3 3 = 3 D F (1 8) = 4(2) 1 + 1 3 = 5 D F (3 1) = 4(0) 1 + 3 2 = 0 D F (4 2) = 4(0) 1 + 1 0 = 0 D F (5 3) = 4(0) 2 + 2 0 = 0 D F (6 4) = 4(1) 2 + 0 2 = 4 D F (7 3) = 4(1) 2 + 2 3 = 1 D F (8 4) = 4(1) 2 + 0 1 = 1 T input T output = u + P u = u + P u + max v {D F (U V) }
Step 4: Draw the Lifetime Chart Folding Factor = 4 Step 5: Register Allocation Ο ελάχιστος Αριθμός των καταχωρητών είναι 2.
Step 6: Folded Architecture VLSI Digital Signal Processing Systems
Step 1: Retiming Retiming Invalid folding: DF(3 1) = -3 DF(4 1) = -2
Step 2: Folding Equations Step 3: Construct the lifetime table D F (U V) = Nw(e) P u + v - u D F (1 2) = 4(1) 1 + 1 3 = 0 D F (2 3) = 4(1) 1 + 0 3 = 5 D F (2 4) = 4(1) 1 + 2 3 = 2 D F (3 1) = 4(1) 1 + 3 3 = 1 D F (4 1) = 4(2) 1 + 1 3 = 0 T input T output = u + P u = u + P u + max v {D F (U V) }
Step 4: Draw the Lifetime Chart Step 5: Register Allocation Folding Factor = 2 The minimum number of registers is 3.
Step 6: Folded Architecture