Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 6: MPSoC Απόδοση, Μοντελοποίηση και Ανάλυση Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών
ΕΙΣΑΓΩΓΗ Οι απαιτήσεις παραγωγικότητας ενός πολυεπεξεργαστικού system-on-chip (MPSoC) σχεδίου μπορούν να επιτευχθούν μόνο με συστηματική επαναχρησιμοποίηση κομματιών (components) και υποσυστημάτων. Τα components ενός MPSoC είναι εξειδικευμένα για συγκεκριμένες εφαρμογές και είναι συνδεδεμένα με μια υποδομή επικοινωνίας πάνω στο chip.
ΠΟΛΥΠΛΟΚΕΣ ΕΤΕΡΟΓΕΝΕΙΣ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ Παράδειγμα MPSoC όπου φαίνονται τα components του και οι διασύνδεση τους. (Philips Viper)
ΠΟΛΥΠΛΟΚΕΣ ΕΤΕΡΟΓΕΝΕΙΣ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ Το σχήμα δείχνει πως το software ενός προγραμματιζόμενου component μπορεί να δομηθεί πάνω στο hardware
ΠΟΛΥΠΛΟΚΕΣ ΕΤΕΡΟΓΕΝΕΙΣ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ Συνεπώς, σε ένα ικανοποιητικά πολύπλοκο MPSoC θα βρούμε διάφορες hardware/software αρχιτεκτονικές για component και διάφορες στρατηγικές χρονικού προγραμματισμού (scheduling) Οι ετερογενείς hardware αρχιτεκτονικές οδηγούν σε παρόμοιες ετερογενείς software αρχιτεκτονικές.
ΠΡΟΚΛΗΣΕΙΣ ΣΧΕΔΙΑΣΜΟΥ Η ολοκλήρωση των component μπορεί να περιλαμβάνει αλληλεπίδραση component και υποσυστήματος, σχεδιασμός χωρικής εξερεύνησης και βελτιστοποίησης, επιβεβαίωση ολοκλήρωσης και σχεδιασμός ολοκλήρωσης διεργασιών. Η MPSoC επιβεβαίωση (verification) χωρίζεται σε: 1. Επιβεβαίωση Διεργασίας 2. Επιβεβαίωση απόδοσης της αρχιτεκτονικής 3. Παρέχει ικανοποιητική επεξεργαστική και επικοινωνιακή απόδοση για να τρέξει η εφαρμογή 4. Επιτυγχάνει τους περιορισμούς χρόνου 5. Αποφεύγει το underflow ή overflow μνήμης 6. Δεν εισαγάγει συμπεριφορές εξαρτώμενες στο χρόνο τρεξίματος, όπως deadlocks
ΠΡΟΚΛΗΣΕΙΣ ΣΧΕΔΙΑΣΜΟΥ Νέα στο σχεδιασμό MPSoC είναι η ετερογένεια των αλγορίθμων χρονοπρογραμματισμού (scheduling) που οδηγεί σε πολλούς σχεδόν αυθαίρετους συνδυασμούς Σαν component ορίζεται ένα κομμάτι μιας υπολογιστικής αρχιτεκτονικής π.χ επεξεργαστής, μνήμη κ.τ.λ. Σαν υποσύστημα ορίζεται ένα σύνολο από components που ελέγχονται από μια κοινή στρατηγική χρονοπρογραμματισμού και μια απλή software αρχιτεκτονική επιπέδων αν υπάρχει
Η ΚΑΤΑΣΤΑΣΗ ΣΤΗΝ ΠΡΑΞΗ Η εξομοίωση είναι η πιο πρόσφατη μέθοδος για επιβεβαίωση απόδοσης. Συνήθως γίνεται συνεξομοίωση hardware και software μαζί στο συνολικό σύστημα. Πλεονεκτήματα: Επιβεβαίωση απόδοσης και διεργασίας γίνονται μαζί Μοτίβα εξομοίωσης component ή υποσυστήματος μπορούν να χρησιμοποιηθούν για ολοκλήρωση συστήματος Η εξομοίωση παρέχει περιπτώσεις χρήσης για ένα δοσμένο set μοτίβων εισόδου που βοηθούν στην κατανόηση και εκσφαλμάτωση του συστήματος.
Η ΚΑΤΑΣΤΑΣΗ ΣΤΗΝ ΠΡΑΞΗ Μειονεκτήματα επιβεβαίωσης απόδοσης: Είναι πιο χρονοβόρα από την επιβεβαίωση διεργασίας γιατί χρειάζεται χρονισμένα μοντέλα εξομοίωσης Μια λύση είναι η χρήση αφαιρετικών μοντέλων απόδοσης αλλά με κόστος την εισαγωγή και άλλων ομάδων μοντέλων εξομοίωσης Παρόλο που στην επιβεβαίωση διεργασίας όπου η ολοκλήρωση επιβεβαίωσης ελέγχει τη σωστή διεργασία γνωστών component αλληλεπιδράσεων, στην επιβεβαίωση απόδοσης οι component αλληλεπιδράσεις είναι μερικώς ορατές από την διεργασία συστήματος
Η ΚΑΤΑΣΤΑΣΗ ΣΤΗΝ ΠΡΑΞΗ Component εξάρτηση εισαγόμενη από μοίρασμα πόρων (resource sharing)
Η ΚΑΤΑΣΤΑΣΗ ΣΤΗΝ ΠΡΑΞΗ Το μοίρασμα πόρων εισαγάγει μια δυσνόητη ποικιλία από run-time interdependencies. Οδηγούν σε εξαρτώμενες από δεδομένα παροδικές runtime επιπτώσεις που είναι δύσκολο να ανιχνευτούν και να εκσφαλματωθούν. Αυτό δυσκολεύει πολύ την επιβεβαίωση και εξομοίωση απόδοσης
ΔΟΜΩΝΤΑΣ ΤΗΝ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Η Συμβατική software ανάλυση απόδοσης διαφοροποιεί δύο προβλήματα: Συμβατική απόδοση ανάλυσης διεργασίας Αναλύει το χρόνο εκτέλεσης μιας διεργασίας που τρέχει σε ένα επεξεργαστή χωρίς μοίρασμα πόρων Ανάλυση Χρονοπρογραμματισμού Αναλύει τα αποτελέσματα του μοιράσματος πόρων σε ένα ή περισσότερους επεξεργαστές Οι προσεγγίσεις για software ανάλυση απόδοσης μπορεί να επεκταθούν για hardware/software συστήματα
ΔΟΜΩΝΤΑΣ ΤΗΝ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Τα διάφορα προβλήματα της ανάλυσης απόδοσης. Εισαγάγουμε μοντέλα ενεργοποίησης που ορίζουν την ενεργοποίηση των διεργασιών
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ COMPONENT ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Για μοντελοποίηση και ανάλυση σε επίπεδο component υπάρχουν τρία είδη component αρχιτεκτονικής: Επεξεργαστικά στοιχεία Στοιχεία επικοινωνίας Μνήμες
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΕΠΕΞΕΡΓΑΣΤΙΚΩΝ ΣΤΟΙΧΕΙΩΝ Για ανάλυση υποσυστήματος η μοντελοποίηση και ανάλυση επεξεργαστικών στοιχείων πρέπει να παρέχει χρόνο εκτέλεσης και επικοινωνιακή κίνηση. Ο χρόνος εκτέλεσης ενός μονοπατιού εκτέλεσης είναι ο χρόνος που χρειάζεται για να εκτελεστεί αυτό το μονοπάτι Ο χρόνος εκτέλεσης καθορίζεται από Το μονοπάτι εκτέλεσης και Την υλοποίηση της διεργασίας.
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΕΠΕΞΕΡΓΑΣΤΙΚΩΝ ΣΤΟΙΧΕΙΩΝ Μονοπάτι εκτέλεσης Αν το μονοπάτι εκτέλεσης ενός component, που είναι γενικά ανεξάρτητο από την hardware αρχιτεκτονική, εξαρτάται από δεδομένα εισόδων τότε το component θα έχει χρόνους εκτέλεσης εξαρτώμενους από δεδομένα
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΕΠΕΞΕΡΓΑΣΤΙΚΩΝ ΣΤΟΙΧΕΙΩΝ Η υλοποίηση διεργασιών ασχολείται με την επιρροή της τελικής συνολικής αρχιτεκτονικής Στην πράξη η ανάλυση επεξεργαστικών στοιχείων γίνεται με εξομοίωση διεργασιών
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΣΤΟΙΧΕΙΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ Η μοντελοποίηση και ανάλυση στοιχείων επικοινωνίας ακολουθεί τις ίδιες αρχές με την ανάλυση επεξεργαστικών στοιχείων. Πέραν της εξομοίωσης μπορεί να χρησιμοποιηθεί προτυποποίηση και στατιστική ανάλυση φορτίου
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΣΤΟΙΧΕΙΩΝ ΜΝΗΜΗΣ Οι διάφοροι τύποι μνήμης κατηγοριοποιούνται ανάλογα με τις ιδιότητες χρονισμού τους. Στις SRAMs, ο χρόνος προσπέλασης είναι ανεξάρτητος από την ακολουθία προσπέλασης μνήμης Οι FLASH και EEPROM έχουν διαφορετικό χρόνο ανάγνωσης και εγγραφής αλλά κατά τα άλλα είναι παρόμοιες με τις SRAM Η Δυναμική RAM έχει εσωτερική δομή πολλαπλής βάσης για να μειώνει το φαινόμενο του διαφορετικού χρόνου προσπέλασης γραμμής και στήλης με διαστρωμάτωση.
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΣΤΟΙΧΕΙΩΝ ΜΝΗΜΗΣ Στα MPSoC, οι μνήμες εντολών και δεδομένων είναι συνήθως FLASH ή SRAM. Ο χρόνος γεμίσματος (latency) περιλαμβάνεται στην ανάκληση εντολής και τον χρόνο πρόσβασης οπότε περιλαμβάνεται στην ανάλυση επεξεργαστικού στοιχείου Η DRAM χρονική ανάλυση εξαρτάται από την αρχιτεκτονική μνήμης. Ο χρόνος προσπέλασης εξαρτάται επίσης από την ύπαρξη cash ή όχι Αν η επικοινωνιακή σύνδεση μεταξύ μνήμης και επεξεργαστικού στοιχείου είναι μοιρασμένος πόρος τότε ο χρόνος προσπέλασης είναι μη-λειτουργικά εξαρτώμενος από άλλες διεργασίες. Αυτό κάνει την εξομοίωση και ανάλυση πιο δύσκολη
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΚΤΕΛΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ Μέχρι τώρα επικεντρωθήκαμε στον χρονισμό μιας μόνο εκτέλεσης διεργασίας ή επικοινωνιακής κίνησης. Για να προσδιοριστεί το φορτίο ενός component, ο αριθμός τέτοιων εκτελέσεων στο χρόνο είναι απαραίτητος
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΝΕΡΓΟΠΟΙΗΣΗΣ Για την μοντελοποίηση της εκτέλεσης μιας διεργασίας πρέπει να γνωρίζουμε πως αυτή ενεργοποιείται. Υπάρχουν δύο τύποι διεργασιών: Διεργασίες που ξεκινούν μια φορά και τρέχουν για πάντα μέσω ενός εσωτερικού βρόχου. Ο χρόνος εκτέλεσης και η επικοινωνιακή ένταση είναι άπειρα. Τέτοιες διεργασίες καταναλώνουν όσους πόρους είναι διαθέσιμοι, και περιορίζονται από χρονο-οδηγούμενους αλγόριθμους για μοίρασμα πόρων. Διεργασίες με πεπερασμένο χρόνο εκτέλεσης οι οποίες ενεργοποιούνται ανά χρονικά διαστήματα ή από κάποιο γεγονός και με αυτές συνήθως ασχολούμαστε
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΝΕΡΓΟΠΟΙΗΣΗΣ Εκτός από την εξομοίωση που ασχολείται με κάθε γεγονός ξεχωριστά υπάρχει και η formal ανάλυση που χρησιμοποιεί αφαιρετικές ακολουθίες γεγονότων. Ακολουθούν μερικές από τις πιο γνωστές κλάσεις αφαιρετικών μοντέλων γεγονότων που χρησιμοποιούνται στην πραγματικού χρόνου επεξεργασία
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΝΕΡΓΟΠΟΙΗΣΗΣ
ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΝΕΡΓΟΠΟΙΗΣΗΣ
Η ΕΠΙΔΡΑΣΗ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΤΟΥ HARD/SOFTWARE COMPONENT Όλα τα hardware και software components πρέπει να περιλαμβάνονται στον υπολογισμό του μονοπατιού καθυστέρησης
ΑΡΧΕΣ ΚΑΙ ΕΠΙΔΡΑΣΗ ΤΟΥ ΜΟΙΡΑΣΜΑΤΟΣ ΠΟΡΩΝ (RESOURCE SHARING) Το μοίρασμα πόρων απαιτεί χρονοπρογραμματισμό και μεταγωγή περιβάλλοντος Οι στρατηγικές χρονοπρογραμματισμού χωρίζονται σε: Στατικής τάξης εναντίον δυναμικής τάξης χρονοπρογραμματισμός Προεκτοπιστικός (Preemptive) χρονοπρογραμματισμός (interrupt) ή μη προεκτοπιστικός (non-preemptive) χρονοπρογραμματισμός( run-to-completion ) Η μεταγωγή περιβάλλοντος υπονοεί overhead Στα επεξεργαστικά στοιχεία τα στάδια pipeline και τα περιεχόμενα των registers πρέπει να σωθούν και να αποθηκευτούν ενώ οι cashes να καθαριστούν (μερικώς) Στα στοιχεία επικοινωνίας η μεταγωγή περιβάλλοντος περιλαμβάνει όλα to overhead της διαιτησίας διαύλου.
ΑΡΧΕΣ ΚΑΙ ΕΠΙΔΡΑΣΗ ΤΟΥ ΜΟΙΡΑΣΜΑΤΟΣ ΠΟΡΩΝ (RESOURCE SHARING) Οι κλάσεις στρατηγικών χρονοπρογραμματισμού διεργασίας και επικοινωνιών χωρίζονται σε: Στατικής τάξης εκτέλεσης χρονοπρογραμματισμός Χρονοδηγούμενος χρονοπρογραμματισμός χωρισμένος σε: Ανάθεση Σταθερής θυρίδας χρόνου Ανάθεση Δυναμικής θυρίδας χρόνου Χρονοπρογραμματισμός οδηγούμενος από προτεραιότητες χωρισμένος σε: Ανάθεση Σταθερής προτεραιότητας Ανάθεση Δυναμικής προτεραιότητας
ΣΤΑΤΙΚΗΣ ΤΑΞΗΣ ΕΚΤΕΛΕΣΗΣ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΟΔΗΓΟΥΜΕΝΟΣ ΑΠΟ ΧΡΟΝΟ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ο (Time-driven) οδηγούμενος από χρόνο χρονοπρογραμματισμός είναι μια πολύ ευέλικτη στρατηγική που αναθέτει θυρίδες χρόνουs σε διεργασίες ή επικοινωνιακές συνδέσεις ανεξάρτητα από την ενεργοποίηση, τους χρόνους εκτέλεσης ή την εξάρτηση δεδομένων. Τέτοιου τύπου χρονοπρογραμματισμός είναι το TDMA και ο Round Robin αλγόριθμος
ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΟΔΗΓΟΥΜΕΝΟΣ ΑΠΟ ΠΡΟΤΕΡΑΙΟΤΗΤΑ Η Ανάθεση Σταθερής προτεραιότητας αποφορτίζει το πρόβλημα του χρονοπρογραμματισμού χρησιμοποιώντας μια απλή μονάδα από διακοπές (interrupt). Οι Διανυσματικές interrupt μονάδες μειώνουν το interrupt latency και την μεταγωγή περιβάλλοντος έτσι ώστε ουσιαστικά διεργασία χρονοπρογραμματισμού και μονάδα ελέγχου να μην χρειάζονται
ΑΝΑΘΕΣΗ ΣΤΑΘΕΡΗΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Μοντέλο 1. Οι διεργασίες ενεργοποιούνται από την άφιξη ενός γεγονότος εισόδου. Το deadline της διεργασίας είναι στο τέλος της περιόδου. Ο ρυθμός εκτέλεσης κάθε διεργασίας μπορεί να έχει διαφορετική περίοδο Μοντέλο 2. Σαν το μοντέλο 1 μόνο που μια υπομάδα των διεργασιών είναι εξαρτόμενες έτσι που μια διεργασία που εξαρτάται από κάποια άλλη θα πρέπει να εκτελεστεί αφού η άλλη έχει τελειώσει σε αυτήν την περίοδο. Προφανώς οι δύο αυτές διεργασίες έχουν ίδια περίοδο. Μοντέλο 3. Σαν το μοντέλο 1 αλλά με αυφαίρετα deadlines
ΑΝΑΘΕΣΗ ΔΥΝΑΜΙΚΗΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Οι αλγόριθμοι ανάθεσης σταθερής προτεραιότητας δεν μπορούν να φτάσουν την μέγιστη χρησιμοποίηση των πόρων. Για να επιτευχθεί αυτό οι προτεραιότητες πρέπει να ανατίθενται στο χρόνο τρεξίματος δυναμικά Η καλύτερη στρατηγική ανάθεσης δυναμικής προτεραιότητας είναι εκείνη που δίνη στην διεργασία με το συντομότερο deadline την υψηλότερη προτεραιότητα (EDF)
ΓΕΝΙΚΗ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Καμία στρατηγική μοιράσματος πόρων δεν είναι αρκετά βελτιστοποιημένη για όλες της διεργασίες σε ένα MPSoC. Κάθε υποσύστημα του MPSoC μπορεί να έχει διαφορετική στρατηγική μοιράσματος πόρων
ΓΕΝΙΚΗ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Η προσέγγιση σε τέτοια πολύπλοκα συστήματα χωρίζεται σε τρεις κλάσεις: Συναφής ανάλυση για διάφορα υποσυστήματα Γενίκευση του μοντέλου γεγονότων για μια ομάδα από στρατηγικές χρονοπρογραμματισμού Προσαρμογή του μοντέλου γεγονότων
ΓΕΝΙΚΗ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ ΠΑΡΑΔΕΙΓΜΑ Δύο υποσυστήματα είναι ενσωματωμένα σε ένα MPSoC και μοιράζονται το επικοινωνιακό δίκτυο on chip, NoC. Το υποσύστημα 1 αποτελείται από έναν αισθητήρα, Sens, o οποίος στέλνει σποραδικά μπλοκ 8-KB δεδομένων στην διεργασία P1 που τρέχει σε μια ΚΜΕ. Τα σποραδικά στοιχεία έχουν μια ελάχιστη απόσταση 590 ms, που αντιστοιχεί σε μια μέγιστη συχνότητα γεγονότος 1,7 khz. Η διεργασία P3 τρέχει στην ίδια ΚΜΕ, εκτελείται με μια περίοδο 50 ms, και παράγει γεγονότα εξοδου 3 KB στην ίδια συχνότητα. Αυτά τα στοιχεία στέλνονται σε μια module "HW" επιταχυνσης hardware που μπορεί να χειριστεί σποραδική είσοδο σε μια ελάχιστη απόσταση 20 ms. Το υποσύστημα 2 αποτελείται από διάφορα IP modules που στέλνουν περιοδικά μπλοκ δεδομενων 1-KB σε ένα DSP. Το DSP σχεδιάζεται στατικα για να εργαστεί με αυτήν την περιοδική ακολουθία σημάτων εισόδου. Εάν λειτουργούν μόνα τους, και τα δύο υποσυστήματα λειτουργούν σωστά.
ΓΕΝΙΚΗ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Σχήμα παραδείγματος
ΓΕΝΙΚΗ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Τα δύο υποσυστήματα είναι ενσωματωμένα χρησιμοποιώντας έναν δίαυλο (NoC) που υιοθετεί διαφορετικά μεγέθη πακέτων 128..256, ή 1024 Β με μια επικεφαλίδα 6-byte. Το πρωτόκολλο διαύλου χρησιμοποιεί τη στατική προτεραιότητα. Η επικοινωνία υποσυστημάτων μοντελοποιείται με λογικά κανάλια C1 - C3, τα οποία μοιράζονται το δίαυλο. Παρατηρούμε μια διαστρέβλωση της περιοδικης ροής πέρα από C3 σαν συνεπεία της παρεμβολής λευκών σελίδων από τις άλλες ροές. Αυτό οδηγεί σε jitter, το οποίο πρέπει να αποφευχθεί με έναν buffer (EAF) για να αποκατασταθεί η περιοδική απαίτηση εισόδου αλλά κάτι τέτοιο θα οδηγησει σε μη λειτουργική εξάρτηση. Ο σχεδιαστής επίσης μπορεί να εισαγάγει ένα μορφωποιητή κίνησης (traffic shaper ) στο C2 κανάλι. Αυτό θα σπάσει την μη λειτουργική εξάρτηση και θα ελέγξει το jitter οδηγώντας σε σύστημα με μικρότερους buffers και χαμηλότερο latency.
ΓΕΝΙΚΗ ΑΝΑΛΥΣΗ ΑΠΟΔΟΣΗΣ Τα πειράματα 1 μέχρι 3 δεν έχουν κανέναν buffer στο C2, ενω τα 4 μέχρι 6 χρησιμοποιούν έναν buffer στο C2 που μειώνει το jitter και, ως εκ τούτου, το χειρότερο δυνατό latency. Στο πείραμα 3, το jitter αυξάνεται πέρα από τα όρια