Pipelining και Παράλληλη Επεξεργασία
Εισαγωγή Σωλήνωση - Pipelining Βασισμένη στην ιδέα σωλήνα που στέλνει νερό χωρίς να περιμένει το νερό που μπαίνει σε ένα σωλήνα να τελειώσει water pipe Μπορεί να οδηγήσει σε μείωση του κρίσιμου μονοπατιού σε ένα κύκλωμα Αυξάνει την ταχύτητα ρολογιού (ή την sampling ταχύτητα) ή μειώνει την κατανάλωση ισχύος στην ίδια ταχύτητα ενός DSP συστήματος. Παράλληλη επεξεργασία -Parallel Processing Στην ίδια χρονική περίοδο πολλαπλά αποτελέσματα μπορούν να υπολογιστούν παράλληλα. Η ενεργή ταχύτητα δειγματοληψίας αυξάνεται ανάλογα με το επίπεδο παραλληλισμού Μπορεί να οδηγήσει σε μείωση της κατανάλωσης ισχύος 2
Εισαγωγή ΙΙ παράδειγμα 1: έστω ένα 3-tap FIR φίλτρο: y(n)=ax(n)+bx(n-1)+cx(n-2) x(n) D x(n-1) D x(n-2) a b c T M : καθυστέρηση πολλαπλασιασμού T Α : Καθυστέρηση πρόσθεσης y(n) Το κρίσιμο μονοπάτι (ή ο ελάχιστος χρόνος ώστε να επεξεργαστώ ένα νέο δείγμα σήματος) περιορίζεται από 1 πολλαπλασιασμό και 2 προσθέσεις. Έτσι η «περίοδος δειγματοληψίας» θα είναι: T f sample sample T T M M + 2 T 1 + 2 T A A 3
Εισαγωγή ΙΙΙ Αν σε ένα σύστημα πραγματικού χρόνου υπάρχουν απαιτήσεις για πιο γρήγορο ρυθμό δειγματοληψίας τότε η προηγούμενη δομή δεν μπορεί να χρησιμοποιηθεί! Σε τέτοια περίπτωση παρεμβάλλονται οι τεχνικές pipelining ή parallel processing. Pipelining: Μειώνω το ενεργό κρίσιμο μονοπάτι εισάγοντας pipelining latches ή flip flops κάπου στο κρίσιμο μονοπάτι δεδομένων. Parallel Processing: αυξάνω το ρυθμό δειγματοληψίας με το να δημιουργώ αντίγραφα του υλικού ώστε αρκετές είσοδοι να μπορούν να επεξεργαστούν παράλληλα και αρκετές έξοδοι να παραχθούν παράλληλα σε μια χρονική στιγμή. 4
Εισαγωγή ΙV Παράδειγμα 2 Figure (a): A data path Figure (b): The 2-level pipelined structure of (a) Figure (c): The 2-level parallel processing structure of (a) Chap. 3 5
Pipelining του FIR Ψηφιακού Φίλτρου Η pipelined υλοποίηση: Εισάγοντας 2 επιπλέον latches στο παράδειγμα 1, το κρίσιμο μονοπάτι μειώνεται από TM+2TA σε TM+TA. Η ακολουθία γεγονότων στο pipelined σύστημα φαίνεται στο παρακάτω πίνακα. Σε κάθε στιγμή, 2 ακολουθιακές έξοδοι υπολογίζονται με interleaved τρόπο. Clock Input Node 1 Node 2 Node 3 Output 0 x(0) ax(0)+bx(-1) 1 x(1) ax(1)+bx(0) ax(0)+bx(-1) cx(-2) y(0) 2 x(2) ax(2)+bx(1) ax(1)+bx(0) cx(-1) y(1) 3 x(3) ax(3)+bx(2) ax(2)+bx(1) cx(0) y(2) D D D a b c 3 y(n) D 1 2 Chap. 3 6
Pipelining του FIR Ψηφιακού Φίλτρου ΙΙ Σε pipelined σύστημα: Σε ένα M-level pipelined σύστημα Μ-επιπέδων, ο αριθμός των στοιχείων καθυστέρησης (π.χ. Latches, Flip Flop) σε κάθε μονοπάτι από είσοδο σε έξοδο είναι (M-1) μεγαλύτερος από το ίδιο μονοπάτι στο αρχικό ακολουθιακό κύκλωμα ΠΡΟΣΟΧΗ: Το Pipelining μειώνει το κρίσιμο μονοπάτι ΑΛΛΑ οδηγεί σε ένα αντίτιμο (penalty) όσον αφορά σε latency Latency: Η χρονική διαφορά από την χρονική στιγμή που εισέρχεται ένα δεδομένο στην είσοδο μέχρι την χρονική στιγμή που υπολογίζεται το αποτέλεσμα για αυτήν την είσοδο. Latency για pipeline: Η διαφορά στην διαθεσιμότητα των δεδομένων πρώτης εξόδου μεταξύ του pipelined συστήματος και του αρχικού ακολουθιακού συστήματος Μειονεκτήματα: αύξηση του αριθμού των latches και του συνολικού latency Συνεπώς: Η ταχύτητα μιας αρχιτεκτονικής DSP (ή η περίοδος του ρολογιού) καθορίζεται από μεγαλύτερο μονοπάτι μεταξύ δύο 2 στοιχείων καθυστέρησης (latches), ή μεταξύ μιας εισόδου και ενός στοιχείου καθυστέρησης ή μεταξύ ενός στοιχείου καθυστέρησης και μιας εξόδου ή μεταξύ μιας εισόδου και μιας εξόδου
Pipelining του FIR Ψηφιακού Φίλτρου ΙΙΙ Το μεγαλύτερο μονοπάτι σε ένα κύκλωμα (το κρίσιμο μονοπάτι) μπορεί να μειωθεί με τη χρήση στοιχείων καθυστέρησης pipeline σε μια DSP αρχιτεκτονικής Τα pipelining στοιχεία καθυστέρησης τοποθετούνται στο feedforward cutset του γράφου Δύο σημαντικοί ορισμοί Cutset: είναι ένα σύνολο από ακμές ενός γράφου τέτοιες ώστε αν αυτές οι ακμές του γράφου φύγουν τότε ο γράφος γίνεται disjoint Feed-forward cutset: ένα cutset λέγεται πρόσθιας τροφοδότησης (feed-forward) αν τα δεδομένα μετακινούνται σε εμπρόσθια κατεύθυνση σε όλες τις ακμές του cutset
Pipelining του FIR Ψηφιακού Φίλτρου ΙV Signal-flow graph αναπαριστώντας ένα Cutset Αρχικό SFG Υποθέτουμε: Ο χρόνος υπολογισμού σε κάθε κόμβος είναι 1 unit time cutset (α) Το κρίσιμο μονοπάτι είναι A3 A5 A4 A6, συνολικός χρόνος: 4 u.t. (b) δεν είναι έγκυρο pipeline γιατί δεν είναι feed-forward cutset feed-forward cutset (c) έχει 2-επιπέδων pipelining, γιατί είναι feed-forward cutset. Κρισιμο μονοπάτι 2 u.t. 9
Pipelining του FIR Ψηφιακού Φίλτρου V Pipelining of FIR Digital Filters (cont d) Fine-Grain Pipelining Έστω ότι TM=10 u.t. και TA=2 u.t.. Αν ένας πολλαπλασιαστής μπορεί να είναι χωρισμένος σε δύο μικρότερα κομμάτια με χρόνος επεξεργασίας 6 u.t και 4 u.t, αναλογικά τότε βάζοντας latches σε μια οριζόντια τομή (cutset) σε όλο τον πολλαπλασιαστή σημαίνει ότι η επιθυμητή περίοδος ρολογιού θα γίνει (TM+TA)/2 Παράδειγμα ενός fine-grain pipelined FIR φίλτρου x(n) c b a D D y(n)
Παράλληλη Επεξεργασία Η παράλληλη επεξεργασία και η τεχνική του pipelining εξυπηρετούν την ίδια αρχή: Αν ένας υπολογισμός μπορεί να γίνει με pipeline, τότε μπορεί να γίνει παράλληλη επεξεργασία. Και οι δύο τεχνικές εκμεταλλεύονται την ύπαρξη παραλληλίας κατά την διάρκεια υπολογισμών με διαφορετικό τρόπος. Πως μπορούμε να σχεδιάζουμε ένα παράλληλο FIR σύστημα; Έστω ένα μίας εισόδου μιας εξόδου (single-input single-output (SISO)) FIR φίλτρο : y(n)=a*x(n)+b*x(n-1)+c*x(n-2) Μετατρέπουμε το SISO σύστημα σε πολλαπλών εισόδων πολλαπλών εξόδων (MIMO (multiple-input multiple-output)) σύστημα ώστε να μπορούμε να εκμεταλλευτούμε την δομή παράλληλης επεξεργασίας Για παράδειγμα: για να πάρουμε ένα σύστημα που έχει 3 εισόδους ανά κύκλο ρολογιού (δηλ, επίπεδο παράλληλης επεξεργασίας L=3) θα πρέπει να κάνουμε: y(3k)=a*x(3k)+b*x(3k-1)+c*x(3k-2) y(3k+1)=a*x(3k+1)+b*x(3k)+c*x(3k-1) y(3k+2)=a*x(3k+2)+b*x(3k+1)+c*x(3k)
Παράλληλη Επεξεργασία ΙΙ Η παράλληλη επεξεργασία μπορεί επίσης να οριστεί και σαν επεξεργασία τμήματος, ενώ ο αριθμός των εισόδων που επεξεργάζονται κάθε χρονική στιγμή μπορεί να ονομαστεί και μέγεθος τμήματος. x(3k) y(3k) x(n) SISO y(n) x(3k+1) x(3k+2) MIMO y( 3 k+1) y( 3k+2) Ακολουθιακό Σύστημα 3 επιπέδου Παράλληλο Σύστημα Στο παραπάνω σύστημα παράλληλης επεξεργασίας στον k-th κύκλο ρολογιού, 3 είσοδοι x(3k), x(3k+1) και x(3k+2) επεξεργάζονται και τρία σήματα y(3k), y(3k+1) και y(3k+2) παράγονται στην έξοδο Παρατήρηση 1: Σε μια MIMO δομή, βάζοντας ένα latch σε μια γραμμή παράγει μια ενεργή καθυστέρηση από L κύκλους ρολογιού στο ρυθμό δειγματοληψίας (L: το μέγεθος του τμήματος). Έτσι, κάθε στοιχείο καθυστέρησης αναφέρεται σαν καθυστέρηση τμήματος (ή αλλιώς σαν L-slow)
Παράλληλη Επεξεργασία ΙΙΙ Παράδειγμα: Όταν το μέγεθος τμήματος είναι 2, ένα στοιχείο καθυστέρησης = 2 καθυστερήσεις δειγματοληψίας x(2k) D x(2 k-2) Όταν το μέγεθος τμήματος είναι 10, ένα στοιχείο καθυστέρησης = 10 καθυστερήσεις δειγματοληψίας x(10k) D X(10k-10) Chap. 3 13
Παράδειγμα FIR φίλτρου με Παράλληλη Επεξεργασία Παράδειγμα αρχιτεκτονικής παράλληλης επεξεργασίας για ένα 3-tap FIR φίλτρο με μέγεθος τμήματος L= 3 y(3k)=a*x(3k)+b*x(3k-1)+c*x(3k-2) y(3k+1)=a*x(3k+1)+b*x(3k)+c*x(3k-1) y(3k+2)=a*x(3k+2)+b*x(3k+1)+c*x(3k)
Παράλληλη Επεξεργασία ΙV Παρατήρηση 2: Το κρίσιμο μονοπάτι ενός τμήματος ή και ολόκληρου του παράλληλου συστήματος παραμένει το ίδιο. Αλλά αφού L δείγματα (στο παράδειγμα μας 3 δείγματα) σε κάθε χρονική στιγμή (σε ένα κύκλο ρολογιού), η περίοδος επανάληψης (η περίοδος δείγματος) δίνεται από την παρακάτω εξίσωση: T clock T M + 2T A = T clock T M + 2T T A iteration = T sample L 3 Σε παράλληλο σύστημα Tsample Tclock, ενώ σε pipelined σύστημα Tsample = Tclock Παράδειγμα: ένα πλήρες σύστημα παράλληλης επεξεργασίας με L=4
Στοιχεία του Υποδείγματος παράλληλης επεξεργασίας με L=4 Ένας serial-to-parallel converter Sample Period T/4 x(n) T/4 T/4 T/4 D D D T T T T 4k+3 x(4k+3) x(4k+2) x(4k+1) x(4k) Ένας parallel-to-serial converter y(4k+3) y(4k+2) y(4k+1) y(4k) 4k 0 T D T D T D T y(n) T/4 T/4 T/4 Chap. 3 16
Γιατί Παράλληλη επεξεργασία αντι για pipeline Αν το παρακάτω chip set, όπου η καθυστέρηση κρίσιμου μονοπατιού είναι μικρότερη από αυτή του I/O ορίου T I/O : Τ op + Τ ip + T communication Τ op : καθυστέρηση output-pad Τ ip : καθυστέρηση input-pad T communication : καθυστέρηση του καναλιού (καλωδίου) μεταξύ των δύο chip Τότε το σύστημα είναι περιορισμένο από την επικοινωνία (communication bounded) Τότε ξέρουμε ότι pipelining μπορεί να χρησιμοποιηθεί μονο μέχρι το όριο όπου η καθυστέρηση κρίσιμου μονοπατιού φτάνει το όριο του Τ Ι/Ο. Όταν φτάσουμε αυτό το όριο οποιαδήποτε περαιτέρω μείωση κρίσιμου μονοπατιού δεν έχει επιπλέον όφελος σε ταχύτητα. Chip 1 T communicat ion Chip 2 output pad input pad T computation
Γιατί Παράλληλη επεξεργασία αντί για pipeline ΙΙ Σε κάποιες περιπτώσεις το pipelining μπορεί να συνδυαστεί με παράλληλη επεξεργασία ώστε να αυξήσουμε περεταίρω την ταχύτητα ενός DSP συστήματος Συνδυάζουμε παράλληλη επεξεργασία (με μέγεθος τμήματος: L) και pipelining (με pipelining επίπεδα: M), και πετυχαίνουμε περίοδο δειγματοληψίας που είναι: Titeration = T sample T = clock L M Επειδή μπορούμε να μεγαλώσουμε την ταχύτητα χωρίς να αυξήσουμε τη συχνότητα του ρολογιού, η παράλληλη επεξεργασία μπορεί να χρησιμοποιηθεί για να κρατήσουμε χαμηλά την κατανάλωση ισχύος ενός συστήματος
Συνδυάζοντας Παράλληλη επεξεργασία με Pipelining σε 3-tap FIR φίλτρο y(3k)=a*x(3k)+b*x(3k-1)+c*x(3k-2) y(3k+1)=a*x(3k+1)+b*x(3k)+c*x(3k-1) y(3k+2)=a*x(3k+2)+b*x(3k+1)+c*x(3k)
Pipelining, Παράλληλη επεξεργασία και χαμηλή κατανάλωση Δυο βασικά πλεονεκτήματα της χρήσης pipelining και παράλληλης επεξεργασίας: Μεγαλύτερη ταχύτητα και Χαμηλότερη κατανάλωση ισχύος Χρήσιμοι τύποι: Υπολογισμός της καθυστέρησης διάδοση (propagation delay) T pd ενός CMOS κυκλώματος C charge : Η χωρητικότητα των T pd = πυκνωτών που πρέπει να φορτιστούν ή εκφορτιστούν σε ένα κύκλο ρολογιού C charge V 0 k (V V ) 2 0 t Υπολογισμός κατανάλωσης ισχύος σε ένα CMOS κύκλωμα 2 P CMOS = C total V C 0 f total : η συνολική χωρητικότητα των πυκνωτών ενός CMOS κυκλώματος V 0 : η τάση τροφοδοσίας του CMOS κυκλώματος f: συχνότητα λειτουργίας CMOS κυκλώματος V t : Τάση κατωφλιού CMOS κυκλώματος
Pipelining, Παράλληλη επεξεργασία και χαμηλή κατανάλωση ΙΙ Pipelining για χαμηλή κατανάλωση Η κατανάλωση ισχύος του αρχικού ακολουθιακού FIR φίλτρου P seq = C total V 0 2 f, f = 1 T seq Tseq: Η περίοδος ρολογιού του αρχικού ακολουθιακού FIR φίλτρου Έστω M-επιπέδου pipelined σύστημα τότε: Η καθυστέρηση κρίσιμου μονοπατιού είναι 1/M της αρχικής Η συνολική χωρητικότητα του πυκνωτή που φορτίζεται/εκφορτίζεται σε ένα κύκλο ρολογιού είναι 1/M της αρχικής. Αν διατηρήσω την ίδια συχνότητα f μόνο 1/M της αρχικής χωρητικότητας φορτίζεται/εκφορτίζεται για δεδομένο χρονικό διάστημα. Μπορώ λοιπόν να μειώσω την τάση τροφοδοσίας κατά ένα συντελεστή β(0<β <1). Έτσι: 2 P pip = C total β 2 V 0 f = β 2 P seq Η κατανάλωση Ισχύος σε σχέση με το αρχικό έχει μειωθεί κατά β 2
Pipelining, Παράλληλη επεξεργασία και χαμηλή κατανάλωση ΙΙΙ Πως καθορίζω το β; Χρησιμοποιώ την σχέση μεταξύ καθυστέρησης διάδοσης του αρχικού και του pipelined φίλτρου Αρχικό (critical path) (V 0 ) T seq C charge V 0 T seq =, k (V V ) 2 0 t Pipelined: (critical path για M=3) (β V 0 ) T seq T seq T seq Tpip = (C charge k ( βv V ) 2 0 M ) βv 0 t Διατηρώντας την ίδια ταχύτητα ρολογιού (ίδια καθυστέρηση διάδοσης) αρκεί να λύσω την παρακάτω εξίσωση M (βv V ) 2 = β (V V ) 2 0 t 0 t
Pipelining, Παράλληλη επεξεργασία και χαμηλή κατανάλωση ΙV Χαμηλή κατανάλωση σε παράλληλο σύστημα Έστω L-επιπέδου παράλληλο σύστημα τότε: Η καθυστέρηση κρίσιμου μονοπατιού παραμένει σταθερή σε σχέση με αρχικό Η συνολική χωρητικότητα των πυκνωτών που φορτίζονται/εκφορτίζονται αυξάνεται κατά L της αρχικής. Για να διατηρήσω τον ίδιο ρυθμό δειγματοληψίας, η περίοδος ρολογιού του παράλληλου συστήματος πρέπει να αυξηθεί κατά L*Tseq Αυτό σημαίνει ότι οι φορτισμένοι πυκνωτές μπορούν να φορτίζονται/εκφορτίζονται L φόρες αργότερα (αφού LTseq). Άρα και η τάση τροφοδοσίας μπορεί να μειωθεί κατά β (0<β<1) αφού υπάρχει περισσότερος χρόνος για να φορτίζονται πυκνωτές ίδιας χωρητικότητας.
Pipelining, Παράλληλη επεξεργασία και χαμηλή κατανάλωση V Sequential(critical path): T seq Parallel: (critical path με L=3) (V 0 ) C charge V 0 T seq =, k (V V ) 2 0 t 3T seq 3T seq 3T (βv 0 ) seq Τ para =L T seq = C charge k ( β V V ) 2 0 β V 0 t Χρησιμοποιώντας τις παραπάνω σχέσεις μπορώ να βρω το β: L ( β V V ) 2 = β (V V ) 2 0 t 0 t Η κατανάλωση ισχύος για το L-επίπεδου παράλληλο σύστημα είναι P para = ( LC 2 f total L )( β V 0 ) = β 2 P seq
Συνδυάζοντας Παράλληλα και Pipeline συστήματα για χαμηλή κατανάλωση ισχύος Το pipelining μειώνει την χωρητικότητα των πυκνωτών που φορτίζονται/εκφορτίζονται σε 1 κύκλο ρολογιού Ενώ η παράλληλη επεξεργασία αυξάνει την χρονική περίοδο για φόρτιση/εκφορτιση της αρχικής χωρητικότητας T 3T 3T 3T 3T 3T 3T Η καθυστέρηση διάδοσης του L-παράλληλου M-pipelined φίλτρου μπορεί να βρεθεί: L C charge V 0 k ( β V V ) 2 k (V V ) 2 0 t 0 t (C charge M ) β V L*T 0 pd = = Και τελικά μπορούμε να βρούμε το β λύνοντας : LM ( β V V ) 2 = β (V V ) 2 0 t 0 t